So sánh YOLOv7 và YOLOv5#
Khi xây dựng các pipeline computer vision hiện đại, việc lựa chọn kiến trúc object detection phù hợp là rất quan trọng để cân bằng giữa độ chính xác, tốc độ inference và khả năng sử dụng tài nguyên. So sánh toàn diện này kiểm tra hai model có ảnh hưởng lớn trong không gian computer vision: YOLOv7 và Ultralytics YOLOv5.
Bằng cách phân tích những khác biệt về kiến trúc, các số liệu hiệu năng và các kịch bản triển khai lý tưởng, chúng tôi nhằm mục đích giúp các nhà phát triển và nhà nghiên cứu chọn được mô hình tốt nhất cho các yêu cầu cụ thể của họ.
Bối cảnh và nguồn gốc mô hình#
Việc hiểu rõ nguồn gốc của các mô hình này cung cấp bối cảnh cho các triết lý thiết kế và các trường hợp sử dụng mục tiêu của chúng.
YOLOv5#
Được phát hành bởi Glenn Jocher và nhóm tại Ultralytics vào ngày 26 tháng 6 năm 2020, YOLOv5 đã cách mạng hóa lĩnh vực này bằng cách cung cấp một implementation PyTorch gốc ưu tiên tính dễ sử dụng mà không hy sinh hiệu suất. Nó nhanh chóng trở thành tiêu chuẩn công nghiệp nhờ hệ sinh thái được tinh giản đáng kể và động lực huấn luyện đáng tin cậy. Bạn có thể khám phá mã nguồn trên YOLOv5 GitHub repository hoặc truy cập model trực tiếp thông qua Ultralytics Platform.
YOLOv7#
Được giới thiệu bởi Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao từ Viện Khoa học Thông tin, Academia Sinica, Đài Loan vào ngày 6 tháng 7 năm 2022. YOLOv7 tập trung mạnh mẽ vào các cải tiến kiến trúc như Extended Efficient Layer Aggregation Networks (E-ELAN) và "bag-of-freebies" có thể huấn luyện để thúc đẩy độ chính xác đạt mức state-of-the-art. Chi tiết có thể được tìm thấy trong official Arxiv paper của họ và YOLOv7 GitHub repository. Để tích hợp liền mạch, hãy xem Ultralytics YOLOv7 documentation.
Cả hai mô hình này đều được tích hợp đầy đủ vào gói Python của Ultralytics, cho phép bạn chuyển đổi giữa chúng chỉ bằng cách thay đổi chuỗi mô hình trong mã của mình!
Cải tiến kiến trúc#
Thiết kế của Ultralytics YOLOv5#
YOLOv5 sử dụng backbone CSPDarknet53 được sửa đổi kết hợp với neck Path Aggregation Network (PANet). Thiết kế này được tối ưu hóa cao cho feature extraction nhanh chóng và hiệu quả bộ nhớ. Không giống như các kiến trúc cũ hoặc các model transformer nặng, YOLOv5 đòi hỏi ít bộ nhớ CUDA hơn đáng kể trong quá trình huấn luyện, cho phép các batch sizes lớn hơn trên GPU phổ thông tiêu chuẩn. Hơn nữa, framework Ultralytics hỗ trợ vốn có nhiều loại tác vụ vượt ra ngoài bounding boxes tiêu chuẩn, bao gồm image segmentation và image classification.
Thiết kế của YOLOv7#
YOLOv7 giới thiệu một số kỹ thuật tái tham số hóa cấu trúc và kiến trúc E-ELAN, cho phép mạng học các đặc trưng đa dạng hơn mà không phá hủy đường dẫn gradient ban đầu. Nó cũng triển khai một head phụ trợ cho việc giám sát trung gian trong quá trình huấn luyện. Mặc dù những tiến bộ này mang lại mean Average Precision (mAP) cao, chúng thường giới thiệu các cấu trúc tensor phức tạp có thể làm cho việc export sang các định dạng edge như ONNX hoặc TensorRT trở nên khó khăn hơn một chút so với các bản export được tinh giản vốn có của các model Ultralytics.
Phân tích Hiệu suất#
Khi so sánh các model này, các nhà phát triển phải cân bằng mAPval, tốc độ inference và độ phức tạp tính toán (FLOPs). Bảng dưới đây thể hiện hiệu suất của cả hai kiến trúc được đánh giá trên COCO dataset.
| Mô hình | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Những điểm chính cần ghi nhớ#
- Độ chính xác tối đa: YOLOv7x đạt độ chính xác tổng thể cao nhất ở mức ấn tượng 53.1 mAPval, khiến nó trở nên cạnh tranh cao cho các kịch bản mà việc tối đa hóa hiệu suất phát hiện là mục tiêu chính.
- Tốc độ và Hiệu suất: Ultralytics YOLOv5n là một kỳ quan về hiệu suất, mang lại inference latency cực kỳ nhanh chóng (1.12 ms trên T4 TensorRT) với dung lượng bộ nhớ cực nhỏ chỉ 2.6M parameters. Điều này làm cho nó trở thành một lựa chọn tuyệt vời cho các triển khai edge bị ràng buộc nghiêm ngặt.
- Cân bằng hiệu năng: Dòng YOLOv5 cung cấp một dải mô hình đặc biệt. YOLOv5l mang lại sự cân bằng tuyệt vời, chỉ kém YOLOv7l một biên độ chính xác nhỏ nhưng lại cung cấp một quy trình triển khai vô cùng hoàn thiện.
Lợi thế từ hệ sinh thái Ultralytics#
Kiến trúc của một mô hình chỉ là một nửa phương trình; hệ sinh thái bao quanh nó mới quyết định khả năng thực tế của nó. Đây là nơi các mô hình Ultralytics thực sự tỏa sáng.
Tính Dễ Sử Dụng: Ultralytics cung cấp một Python API thống nhất, trực quan cao. Bạn có thể train, validate và deploy các model với lượng mã soạn sẵn tối thiểu, được hỗ trợ bởi official documentation phong phú. Hệ Sinh Thái Được Duy Trì Tốt: Sự phát triển tích cực đảm bảo các bản cập nhật liên tục, sửa lỗi và tích hợp liền mạch với các công cụ theo dõi hiện đại như Weights & Biases. Hiệu Suất Huấn Luyện: Sử dụng các bộ tải dữ liệu được tối ưu hóa và smart caching, YOLOv5 giảm đáng kể thời gian huấn luyện. Hơn nữa, các trọng số được huấn luyện sẵn sàng sử dụng giúp tăng tốc transfer learning trên nhiều lĩnh vực khác nhau.
Ví dụ mã nguồn: Huấn luyện tinh gọn#
Với gói Ultralytics, việc bắt đầu một quá trình huấn luyện hầu như giống hệt nhau bất kể kiến trúc bạn chọn là gì.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model (can easily swap to "yolov7.pt")
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 example dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Export the trained model to ONNX format for deployment
success = model.export(format="onnx")Các trường hợp sử dụng lý tưởng#
Khi nào nên chọn YOLOv7#
- Đánh giá học thuật: Hoàn hảo cho các nhà nghiên cứu cần so sánh các kỹ thuật mới với một baseline năm 2022 được ghi chép đầy đủ.
- Xử lý đám mây GPU cao cấp: Khi triển khai trên phần cứng máy chủ mạnh mẽ, nơi việc đạt được mAP cao nhất tuyệt đối trên các cảnh dày đặc quan trọng hơn sự đơn giản khi xuất mô hình.
Khi nào nên chọn YOLOv5#
- Triển Khai Production: Lý tưởng cho các ứng dụng thương mại đòi hỏi độ ổn định cao, các model deployment options đơn giản và khả năng tương thích đa nền tảng rộng rãi.
- Thiết bị biên: Các biến thể nhỏ hơn (YOLOv5n và YOLOv5s) chạy cực tốt trên điện thoại di động và các hệ thống nhúng.
- Yêu Cầu Đa Tác Vụ: Nếu dự án của bạn cần phát triển từ việc nhận diện đơn giản sang pose estimation hoặc phân đoạn bằng cách sử dụng một framework thống nhất.
Đang tìm kiếm các phiên bản gần đây hơn? Hãy cân nhắc khám phá Ultralytics YOLOv8 hoặc Ultralytics YOLO11 để có thêm những tiến bộ trong việc nhận diện không mỏ neo (anchor-free) và khả năng học đa tác vụ.
Thế hệ tiếp theo: Ultralytics YOLO26#
Mặc dù YOLOv5 và YOLOv7 giữ những vị trí quan trọng trong lịch sử AI thị giác, nhưng bối cảnh đang liên tục thay đổi. Được phát hành vào tháng 1 năm 2026, Ultralytics YOLO26 đại diện cho công nghệ phát hiện đối tượng tiên tiến nhất, vượt qua các thế hệ trước trên mọi số liệu.
YOLO26 giới thiệu một số tính năng thay đổi mô hình:
- Thiết kế không NMS từ đầu đến cuối: Dựa trên các khái niệm tiên phong trong các phiên bản trước, YOLO26 là end-to-end về bản chất. Điều này loại bỏ hoàn toàn quá trình hậu xử lý Non-Maximum Suppression (NMS), cắt giảm các điểm nghẽn độ trễ và đơn giản hóa đáng kể logic triển khai.
- MuSGD Optimizer: Lấy cảm hứng từ Kimi K2 của Moonshot AI, bộ tối ưu hóa mang tính cách mạng này kết hợp sự ổn định của SGD tiêu chuẩn với động lượng gia tốc của Muon, đưa các cải tiến huấn luyện LLM tiên tiến trực tiếp vào lĩnh vực computer vision.
- Tăng tốc CPU: Bằng cách loại bỏ Distribution Focal Loss (DFL) một cách chiến lược, YOLO26 đạt được tốc độ inference trên CPU nhanh hơn tới 43%, biến nó trở thành nhà vô địch tuyệt đối cho việc triển khai trên thiết bị biên và thiết bị IoT tiêu thụ điện năng thấp.
- ProgLoss + STAL: Các hàm mất mát (loss functions) tiên tiến này mang lại những cải tiến lớn trong việc nhận diện đối tượng nhỏ, vốn rất quan trọng đối với hình ảnh trên không và robot chính xác.
- Cải Tiến Theo Tác Vụ: Có tính năng tổn thất phân đoạn ngữ nghĩa (Semantic segmentation loss) để tạo mặt nạ, Residual Log-Likelihood Estimation (RLE) cho Pose tracking và tổn thất góc chuyên dụng để giải quyết các vấn đề về biên Oriented Bounding Box (OBB) khó nhằn.
Kết luận#
Cả YOLOv5 và YOLOv7 đều cung cấp các giải pháp mạnh mẽ cho việc phát hiện đối tượng theo thời gian thực. YOLOv7 vẫn là lựa chọn mạnh mẽ cho độ chính xác thuần túy trên phần cứng tính toán cao, trong khi YOLOv5 nổi bật là công cụ thân thiện với nhà phát triển nhất, cung cấp sự cân bằng đặc biệt giữa tốc độ, hiệu quả và một hệ sinh thái đẳng cấp thế giới.
Tuy nhiên, đối với các nhà phát triển muốn bảo vệ các pipeline của họ trước tương lai và đạt được sự kết hợp tối ưu giữa tốc độ, sự đơn giản và độ chính xác state-of-the-art, chúng tôi đặc biệt khuyến nghị chuyển sang Ultralytics YOLO26. Nó gói gọn tính dễ sử dụng huyền thoại của nền tảng Ultralytics đồng thời mang lại những cải tiến kiến trúc đột phá.