YOLOv7 so với YOLOv5: So sánh kỹ thuật chi tiết
Khi lựa chọn một mô hình phát hiện đối tượng, các nhà phát triển thường cân nhắc sự đánh đổi giữa tốc độ, độ chính xác và tính dễ sử dụng. Ultralytics YOLOv5 và YOLOv7 là hai mô hình then chốt trong lĩnh vực thị giác máy tính, mỗi mô hình có những thế mạnh riêng biệt. Trang này cung cấp một so sánh kỹ thuật chi tiết để giúp bạn quyết định mô hình nào phù hợp nhất với nhu cầu dự án của bạn, làm nổi bật sự khác biệt về kiến trúc, điểm chuẩn hiệu suất và các ứng dụng lý tưởng của chúng.
Trong khi YOLOv7 đẩy lùi các ranh giới của độ chính xác khi phát hành, Ultralytics YOLOv5 đã tự khẳng định mình là một chuẩn mực cho hiệu quả, triển khai nhanh chóng và khả năng tiếp cận, được hỗ trợ bởi một hệ sinh thái mạnh mẽ và được duy trì tốt.
YOLOv7: Tập trung vào độ chính xác cao
YOLOv7, được tạo ra bởi Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao, được phát hành vào ngày 6 tháng 7 năm 2022. Nó giới thiệu một số tối ưu hóa kiến trúc và chiến lược huấn luyện, được gọi là "trainable bag-of-freebies", nhằm mục đích thiết lập một tiêu chuẩn hiện đại mới về độ chính xác cho các công cụ phát hiện đối tượng theo thời gian thực trong khi vẫn duy trì tốc độ cao.
Tác giả: Chien-Yao Wang, Alexey Bochkovskiy, và Hong-Yuan Mark Liao
Tổ chức: Viện Khoa học Thông tin, Academia Sinica, Đài Loan
Ngày: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
Tài liệu: https://docs.ultralytics.com/models/yolov7/
Kiến trúc và các tính năng chính của YOLOv7
Kiến trúc của YOLOv7 được xây dựng dựa trên một số cải tiến quan trọng được thiết kế để cải thiện khả năng học đặc trưng và tối ưu hóa mô hình để suy luận nhanh hơn sau quá trình huấn luyện.
- Mạng tổng hợp lớp hiệu quả mở rộng (E-ELAN): Mô-đun này trong backbone giúp tăng cường khả năng học hỏi của mạng bằng cách quản lý các đường dẫn gradient hiệu quả hơn, cho phép nó học các đặc trưng đa dạng hơn.
- Điều chỉnh tỷ lệ mô hình: Triển khai một phương pháp điều chỉnh tỷ lệ phức hợp cho các mô hình dựa trên ghép kênh, điều chỉnh độ sâu và chiều rộng của mô hình cho phù hợp với các mức ngân sách tính toán khác nhau.
- Trainable Bag-of-Freebies: Tận dụng các kỹ thuật đào tạo nâng cao, chẳng hạn như các auxiliary head và tối ưu hóa việc gán nhãn, để tăng độ chính xác mà không làm tăng chi phí suy diễn. Các auxiliary head này chỉ được sử dụng trong quá trình đào tạo để tăng cường việc học các đặc trưng và được loại bỏ đối với suy diễn.
Điểm mạnh của YOLOv7
- Độ chính xác cao: Đạt được điểm số mAP cao trên các bộ đánh giá như COCO, thường vượt trội hơn các mô hình đương thời về độ chính xác.
- Efficient Training Techniques: Kết hợp các chiến lược huấn luyện mới giúp tối đa hóa hiệu suất mà không làm tăng thêm chi phí tính toán trong quá trình suy luận.
Điểm yếu của YOLOv7
- Độ phức tạp: Kiến trúc và quy trình huấn luyện, với các tính năng như auxiliary heads (đầu phụ trợ), có thể phức tạp hơn để hiểu và sửa đổi so với phương pháp tiếp cận tinh gọn của Ultralytics YOLOv5.
- Hệ sinh thái và Hỗ trợ: Thiếu tài liệu mở rộng, hướng dẫn và hệ sinh thái tích hợp do Ultralytics cung cấp. Điều này có thể làm cho việc triển khai và khắc phục sự cố trở nên khó khăn hơn cho các nhà phát triển.
- Tốn nhiều tài nguyên: Các mô hình YOLOv7 lớn hơn đòi hỏi tài nguyên tính toán đáng kể cho việc huấn luyện, có khả năng hạn chế khả năng tiếp cận của chúng đối với người dùng có phần cứng hạn chế.
Các trường hợp sử dụng cho YOLOv7
- Phát hiện hiệu suất cao: Thích hợp cho các ứng dụng mà việc đạt được độ chính xác tuyệt đối cao nhất là rất quan trọng, chẳng hạn như giám sát nâng cao hoặc xe tự hành.
- Nghiên cứu và Đánh giá chuẩn: Thường được sử dụng trong nghiên cứu học thuật để khám phá các kỹ thuật phát hiện đối tượng hiện đại và thúc đẩy các giới hạn hiệu suất.
Ultralytics YOLOv5: Tốc độ và sự đơn giản
Ultralytics YOLOv5, được tạo bởi Glenn Jocher, đã được phát hành vào ngày 26 tháng 6 năm 2020. Nó nhanh chóng trở thành một trong những mô hình phát hiện đối tượng phổ biến nhất nhờ sự cân bằng vượt trội giữa tốc độ, độ chính xác và quan trọng nhất là tính dễ sử dụng. Nó được xây dựng trên PyTorch và được thiết kế để huấn luyện nhanh chóng, triển khai mạnh mẽ và khả năng tiếp cận.
Tác giả: Glenn Jocher
Tổ chức: Ultralytics
Ngày: 2020-06-26
Arxiv: Không có
GitHub: https://github.com/ultralytics/yolov5
Tài liệu: https://docs.ultralytics.com/models/yolov5/
Kiến trúc và các tính năng chính của YOLOv5
YOLOv5 có một kiến trúc đơn giản nhưng mạnh mẽ, được tối ưu hóa cao cho cả huấn luyện và suy luận.
- Kiến trúc dựa trên CSP: Sử dụng mạng Cross Stage Partial (CSP) trong cả backbone và neck (PANet) để tối ưu hóa luồng đặc trưng và giảm các nút thắt tính toán.
- Họ mô hình có khả năng mở rộng: Cung cấp một loạt các mô hình từ Nano (YOLOv5n) đến Extra-Large (YOLOv5x), cho phép người dùng chọn sự cân bằng hoàn hảo giữa tốc độ và độ chính xác cho các nhu cầu cụ thể của họ, từ các thiết bị biên nhẹ đến các máy chủ đám mây hiệu suất cao.
- Trải nghiệm ưu tiên nhà phát triển: Được thiết kế từ đầu để đơn giản. Nó có tính năng tự động tạo anchor, theo dõi thử nghiệm tích hợp và quy trình huấn luyện được sắp xếp hợp lý, dễ sử dụng cho cả người mới bắt đầu và chuyên gia.
Điểm mạnh của Ultralytics YOLOv5
- Dễ sử dụng: YOLOv5 nổi tiếng với trải nghiệm người dùng đơn giản. Với một
pip install ultralytics
command, thân thiện với người dùng CLI, và mở rộng tài liệu, việc bắt đầu cực kỳ nhanh chóng. - Hệ sinh thái được duy trì tốt: Hưởng lợi từ quá trình phát triển liên tục bởi Ultralytics, một cộng đồng mã nguồn mở vững mạnh và tích hợp liền mạch với các công cụ như Ultralytics HUB để đào tạo và triển khai không cần code.
- Cân bằng hiệu suất: Đạt được sự đánh đổi tuyệt vời giữa tốc độ và độ chính xác. Các mô hình nhỏ hơn của nó, như YOLOv5n, cực kỳ nhanh và lý tưởng cho suy luận thời gian thực trên CPU và thiết bị biên.
- Hiệu quả huấn luyện: Quá trình huấn luyện đạt hiệu quả cao, với thời gian hội tụ nhanh hơn và yêu cầu bộ nhớ thấp hơn so với nhiều mô hình khác. Các trọng số đã được huấn luyện trước có sẵn và việc huấn luyện tùy chỉnh rất đơn giản.
- Tính linh hoạt: Hỗ trợ nguyên bản nhiều tác vụ, bao gồm phát hiện đối tượng (object detection), phân vùng thể hiện (instance segmentation) và phân loại ảnh (image classification).
Điểm yếu của Ultralytics YOLOv5
- Độ chính xác cao nhất: Mặc dù có tính cạnh tranh cao, các mô hình YOLOv5 lớn nhất có thể không đạt được mAP đỉnh cao như các biến thể YOLOv7 lớn nhất trên một số chuẩn nhất định, vì YOLOv7 được thiết kế đặc biệt để tối đa hóa số liệu này.
Các trường hợp sử dụng cho Ultralytics YOLOv5
- Ứng dụng thời gian thực: Lý tưởng cho các ứng dụng yêu cầu suy luận nhanh, chẳng hạn như robot học, thị giác máy bay không người lái và phân tích video trực tiếp.
- Triển khai biên: Rất phù hợp để triển khai trên các thiết bị biên bị hạn chế về tài nguyên như NVIDIA Jetson do thiết kế hiệu quả và kích thước mô hình nhỏ.
- Tạo mẫu Nhanh chóng: Một lựa chọn tuyệt vời để phát triển và triển khai nhanh chóng các giải pháp phát hiện đối tượng, nhờ tính dễ sử dụng và hỗ trợ mở rộng.
Hiệu năng và điểm chuẩn: YOLOv7 so với YOLOv5
Sự khác biệt chính về hiệu suất nằm ở các ưu tiên thiết kế của chúng. YOLOv7 hướng đến độ chính xác cao nhất, trong khi YOLOv5 cung cấp một loạt các tùy chọn cân bằng và thiết thực hơn.
Mô hình | Kích thước (pixels) |
mAPval 50-95 |
Tốc độ CPU ONNX (ms) |
Tốc độ T4 TensorRT10 (ms) |
Tham số (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ư bảng cho thấy, các mô hình YOLOv7 đạt được điểm mAP ấn tượng với tốc độ GPU cạnh tranh. Tuy nhiên, Ultralytics YOLOv5 cung cấp một loạt các tùy chọn vượt trội cho các tình huống triển khai khác nhau. Các mô hình YOLOv5n và YOLOv5s nhanh hơn đáng kể trên cả CPU và GPU, khiến chúng trở thành lựa chọn rõ ràng cho các ứng dụng có độ trễ thấp và biên.
Kết luận: Bạn nên chọn mô hình nào?
Việc lựa chọn giữa YOLOv7 và YOLOv5 phụ thuộc nhiều vào các ưu tiên của dự án.
-
Chọn YOLOv7 nếu mục tiêu chính của bạn là đạt được độ chính xác phát hiện cao nhất có thể và bạn có tài nguyên tính toán và kiến thức kỹ thuật để quản lý kiến trúc và quy trình đào tạo phức tạp hơn của nó. Đây là một mô hình tuyệt vời cho nghiên cứu và các ứng dụng chuyên biệt, nơi hiệu suất là tối quan trọng.
-
Chọn Ultralytics YOLOv5 nếu bạn coi trọng sự phát triển nhanh chóng, dễ sử dụng và tính linh hoạt trong triển khai. Quy trình làm việc hợp lý, tài liệu phong phú và sự cân bằng hiệu suất mạnh mẽ của nó làm cho nó trở thành lựa chọn lý tưởng cho hầu hết các ứng dụng thương mại và thực tế. Cho dù bạn là người mới bắt đầu hay một chuyên gia có kinh nghiệm, hệ sinh thái mạnh mẽ của YOLOv5 sẽ đẩy nhanh hành trình từ ý tưởng đến sản xuất.
Đối với hầu hết các nhà phát triển, những lợi thế thiết thực và hỗ trợ toàn diện của Ultralytics YOLOv5 khiến nó trở thành một lựa chọn hấp dẫn hơn. Những phiên bản kế nhiệm của nó, như Ultralytics YOLOv8, tiếp tục di sản này bằng cách cung cấp hiệu suất tốt hơn và nhiều tính năng hơn trong cùng một khuôn khổ thân thiện với người dùng.
Khám phá các Mô hình Khác
Đối với những ai quan tâm đến những tiến bộ mới nhất, bạn nên khám phá các mô hình mới hơn trong hệ sinh thái Ultralytics.
- Ultralytics YOLOv8: Phiên bản kế nhiệm của YOLOv5, mang lại độ chính xác, tốc độ được cải thiện và một API thống nhất cho phát hiện, phân đoạn, ước tính dáng điệu và theo dõi. Xem so sánh trực tiếp giữa YOLOv8 và YOLOv7.
- Ultralytics YOLOv10: Một mô hình hiện đại tập trung vào phát hiện end-to-end không NMS để giảm độ trễ và cải thiện hiệu quả.
- Ultralytics YOLO11: Mẫu tiên tiến mới nhất từ Ultralytics, nhấn mạnh vào tốc độ, hiệu quả và dễ sử dụng với thiết kế không neo.