YOLOv5 so với YOLOv9: So sánh chi tiết
Trang này cung cấp so sánh kỹ thuật giữa hai mô hình phát hiện đối tượng quan trọng: Ultralytics YOLOv5 và YOLOv9. Cả hai mô hình đều là một phần của series YOLO (You Only Look Once) có ảnh hưởng, được biết đến với sự cân bằng giữa tốc độ và độ chính xác trong phát hiện đối tượng theo thời gian thực. So sánh này khám phá sự khác biệt về kiến trúc, số liệu hiệu suất và các trường hợp sử dụng lý tưởng của chúng để giúp bạn chọn mô hình phù hợp nhất cho các dự án thị giác máy tính của mình.
Ultralytics YOLOv5: Tiêu chuẩn công nghiệp đã được thiết lập
Tác giả: Glenn Jocher
Tổ chức: Ultralytics
Ngày: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
Tài liệu: https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 nhanh chóng trở nên phổ biến sau khi phát hành nhờ sự cân bằng đáng chú ý giữa tốc độ, độ chính xác và tính dễ sử dụng. Được phát triển hoàn toàn trên PyTorch, YOLOv5 có một kiến trúc sử dụng CSPDarknet53 làm backbone và PANet để tổng hợp đặc trưng, cùng với một detection head dựa trên anchor hiệu quả. Nó cung cấp nhiều kích thước mô hình khác nhau (n, s, m, l, x), cho phép người dùng lựa chọn dựa trên tài nguyên tính toán và nhu cầu hiệu suất của họ.
Điểm mạnh
- Tốc độ và Hiệu quả Vượt trội: YOLOv5 được tối ưu hóa cao cho suy luận nhanh, khiến nó trở nên lý tưởng cho các ứng dụng thời gian thực trên nhiều loại phần cứng, bao gồm cả thiết bị biên.
- Dễ sử dụng: Ultralytics YOLOv5 nổi tiếng với trải nghiệm người dùng được tinh giản, giao diện Python và CLI đơn giản, cùng với tài liệu mở rộng.
- Hệ sinh thái được duy trì tốt: Hưởng lợi từ hệ sinh thái Ultralytics tích hợp, bao gồm phát triển tích cực, một cộng đồng lớn và hỗ trợ, cập nhật thường xuyên và các tài nguyên toàn diện như Ultralytics HUB để đào tạo không cần code.
- Cân bằng hiệu suất: Đạt được sự đánh đổi mạnh mẽ giữa tốc độ suy luận và độ chính xác phát hiện, phù hợp với các tình huống triển khai thực tế đa dạng.
- Tính linh hoạt: Hỗ trợ nhiều tác vụ bao gồm phát hiện đối tượng, phân vùng thể hiện và phân loại hình ảnh.
- Hiệu quả huấn luyện: Cung cấp quy trình huấn luyện hiệu quả, các trọng số đã được huấn luyện trước có sẵn và yêu cầu bộ nhớ thường thấp hơn so với nhiều kiến trúc khác, đặc biệt là các mô hình dựa trên transformer.
Điểm yếu
- Độ chính xác: Mặc dù có độ chính xác cao vào thời điểm đó, các model mới hơn như YOLOv9 có thể đạt được điểm mAP cao hơn trên các chuẩn đánh giá như COCO.
- Dựa trên Anchor: Dựa vào các hộp neo (anchor box) được xác định trước, có thể cần điều chỉnh nhiều hơn cho các bộ dữ liệu cụ thể so với các phương pháp không dùng anchor.
Các Trường hợp Sử dụng
- Giám sát video và hệ thống an ninh thời gian thực.
- Triển khai trên các thiết bị biên hạn chế về tài nguyên như Raspberry Pi và NVIDIA Jetson.
- Tự động hóa công nghiệp và kiểm soát chất lượng, chẳng hạn như cải thiện sản xuất bằng thị giác máy tính.
- Tạo mẫu và phát triển nhanh chóng nhờ tính dễ sử dụng và hệ sinh thái mạnh mẽ.
YOLOv9: Nâng cao độ chính xác với các kỹ thuật mới
Tác giả: Chien-Yao Wang, Hong-Yuan Mark Liao
Tổ chức: Viện Khoa học Thông tin, Academia Sinica, Đài Loan
Ngày: 2024-02-21
Arxiv: https://arxiv.org/abs/2402.13616
GitHub: https://github.com/WongKinYiu/yolov9
Tài liệu: https://docs.ultralytics.com/models/yolov9/
YOLOv9 giới thiệu những đổi mới kiến trúc đáng kể, cụ thể là Thông tin Gradient có thể lập trình (PGI) và Mạng tổng hợp lớp hiệu quả tổng quát (GELAN). PGI nhằm mục đích giảm thiểu tình trạng mất thông tin khi dữ liệu truyền qua các mạng sâu bằng cách cung cấp thông tin đầu vào đầy đủ để tính toán hàm mất mát. GELAN là một kiến trúc mới được thiết kế để sử dụng tham số vượt trội và hiệu quả tính toán. Những tiến bộ này cho phép YOLOv9 đạt được độ chính xác cao hơn trong khi vẫn duy trì được hiệu quả.
Điểm mạnh
- Độ chính xác Nâng cao: Thiết lập kết quả hiện đại mới trên bộ dữ liệu COCO cho các công cụ phát hiện đối tượng theo thời gian thực, vượt trội hơn YOLOv5 và các mô hình khác về mAP.
- Cải Thiện Hiệu Quả: GELAN và PGI đóng góp vào các mô hình đòi hỏi ít tham số và tài nguyên tính toán (FLOPs) hơn để có hiệu suất tương đương hoặc tốt hơn so với các mô hình trước đó.
- Bảo toàn thông tin: PGI giải quyết hiệu quả vấn đề nút thắt thông tin, điều này rất quan trọng để đào tạo các mạng sâu hơn và phức tạp hơn một cách chính xác.
Điểm yếu
- Tài Nguyên Huấn Luyện: Việc huấn luyện các mô hình YOLOv9 có thể tốn nhiều tài nguyên và thời gian hơn so với Ultralytics YOLOv5, như đã lưu ý trong tài liệu YOLOv9.
- Kiến trúc mới hơn: Vì là một mô hình gần đây hơn từ một nhóm nghiên cứu khác, hệ sinh thái, hỗ trợ cộng đồng và tích hợp của bên thứ ba ít hoàn thiện hơn so với Ultralytics YOLOv5 đã được thiết lập tốt.
- Tính linh hoạt của tác vụ: Chủ yếu tập trung vào phát hiện đối tượng, thiếu sự hỗ trợ tích hợp cho phân đoạn, phân loại và ước tính tư thế được tìm thấy trong các mô hình Ultralytics như YOLOv5 và YOLOv8.
Các Trường hợp Sử dụng
- Các ứng dụng đòi hỏi độ chính xác phát hiện đối tượng cao nhất có thể.
- Các tình huống mà hiệu quả tính toán là rất quan trọng cùng với hiệu suất cao.
- Phân tích video nâng cao và kiểm tra công nghiệp với độ chính xác cao.
- AI trong quản lý giao thông và các ứng dụng thành phố thông minh đòi hỏi khả năng phát hiện hàng đầu.
Hiệu năng và điểm chuẩn: YOLOv5 so với YOLOv9
Khi so sánh hiệu suất, các mô hình YOLOv9 thường đạt được điểm mAP cao hơn so với các đối tác YOLOv5 của chúng, cho thấy hiệu quả của các cải tiến kiến trúc của nó. Tuy nhiên, Ultralytics YOLOv5 vẫn duy trì một vị thế vững chắc nhờ tốc độ suy luận vượt trội và việc triển khai được tối ưu hóa cao, khiến nó trở thành một lựa chọn đáng gờm cho các ứng dụng thời gian thực, nơi số khung hình trên giây (FPS) là một chỉ số quan trọng.
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) |
---|---|---|---|---|---|---|
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 |
YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Tìm hiểu sâu về kiến trúc
Kiến trúc YOLOv5
Kiến trúc của Ultralytics YOLOv5 là một triển khai tinh tế các nguyên tắc của họ YOLO. Nó bao gồm ba phần chính:
- Backbone: Mạng CSPDarknet53, là một phiên bản sửa đổi của Darknet-53, kết hợp các mô-đun Cross Stage Partial (CSP) để giảm tính toán trong khi vẫn duy trì độ chính xác.
- Neck: Mạng tổng hợp đường dẫn (Path Aggregation Network - PANet) được sử dụng để tổng hợp các đặc trưng từ các cấp độ backbone khác nhau, cải thiện khả năng phát hiện các đối tượng ở nhiều tỷ lệ khác nhau.
- Head: Detection head dựa trên anchor, dự đoán các bounding box từ các hình dạng anchor box được xác định trước, điều này góp phần vào tốc độ cao của nó.
Kiến trúc YOLOv9
YOLOv9 giới thiệu các khái niệm mới để vượt qua các ranh giới về độ chính xác và hiệu quả:
- Thông tin Gradient có thể lập trình (PGI): Cơ chế này được thiết kế để chống lại vấn đề tắc nghẽn thông tin trong các mạng sâu. Nó đảm bảo rằng thông tin đầu vào đầy đủ có sẵn để tính toán hàm mất mát, dẫn đến các cập nhật gradient đáng tin cậy hơn và sự hội tụ mô hình tốt hơn.
- Mạng tổng hợp lớp hiệu quả tổng quát (GELAN): Đây là một kiến trúc mạng mới xây dựng dựa trên các nguyên tắc của CSPNet và ELAN. GELAN được thiết kế để tối ưu hóa việc sử dụng tham số và hiệu quả tính toán, cho phép mô hình đạt được độ chính xác cao hơn với ít tài nguyên hơn.
Đào tạo và Hệ sinh thái
Trải nghiệm đào tạo và hỗ trợ hệ sinh thái là nơi Ultralytics YOLOv5 thực sự tỏa sáng.
- Dễ sử dụng: YOLOv5 mang đến trải nghiệm vô cùng thân thiện với người dùng nhờ các API dòng lệnh và Python đơn giản, hướng dẫn chi tiết và tài liệu toàn diện.
- Hệ sinh thái được duy trì tốt: Là một mô hình Ultralytics chính thức, YOLOv5 là một phần của hệ sinh thái mạnh mẽ bao gồm phát triển tích cực, một cộng đồng lớn trên GitHub và Discord, cập nhật thường xuyên và tích hợp liền mạch với các công cụ MLOps như Ultralytics HUB.
- Hiệu quả huấn luyện: YOLOv5 huấn luyện rất hiệu quả, với các trọng số đã được huấn luyện trước có sẵn và yêu cầu bộ nhớ thấp hơn so với các kiến trúc phức tạp hơn. Điều này làm cho nó có thể truy cập được đối với người dùng với nhiều loại phần cứng hơn.
Trong khi YOLOv9 là một mô hình mạnh mẽ, quá trình đào tạo của nó có thể đòi hỏi khắt khe hơn và hệ sinh thái của nó không hoàn thiện hoặc tích hợp như các mô hình Ultralytics. Đối với các nhà phát triển đang tìm kiếm một con đường suôn sẻ, được hỗ trợ tốt từ đào tạo đến triển khai, YOLOv5 mang lại một lợi thế rõ ràng.
Kết luận: Bạn nên chọn mô hình nào?
Cả YOLOv5 và YOLOv9 đều là những mô hình tuyệt vời, nhưng chúng phục vụ cho các ưu tiên khác nhau.
-
Ultralytics YOLOv5 là lựa chọn lý tưởng cho các nhà phát triển ưu tiên tốc độ, dễ sử dụng và một hệ sinh thái trưởng thành, được hỗ trợ tốt. Sự cân bằng hiệu suất vượt trội của nó làm cho nó trở nên hoàn hảo cho các ứng dụng thời gian thực, tạo mẫu nhanh và triển khai trên các thiết bị AI biên có tài nguyên hạn chế. Tính linh hoạt của nó trên nhiều tác vụ thị giác làm tăng thêm giá trị của nó như một framework AI thị giác đa năng.
-
YOLOv9 phù hợp nhất cho các ứng dụng mà việc đạt được độ chính xác phát hiện đối tượng cao nhất có thể là mục tiêu chính và tài nguyên tính toán cho việc đào tạo ít được quan tâm hơn. Kiến trúc cải tiến của nó mang lại kết quả hiện đại trên các điểm chuẩn đầy thách thức.
Đối với hầu hết người dùng, đặc biệt là những người tìm kiếm một mô hình đáng tin cậy, nhanh chóng và dễ sử dụng với sự hỗ trợ mạnh mẽ từ cộng đồng và thương mại, Ultralytics YOLOv5 vẫn là một đề xuất hàng đầu. Đối với những người quan tâm đến những tiến bộ mới nhất từ Ultralytics, các mô hình như YOLOv8 và YOLO11 mới nhất mang lại hiệu suất và tính linh hoạt cao hơn nữa trong khi vẫn giữ được trải nghiệm thân thiện với người dùng vốn là đặc trưng của hệ sinh thái Ultralytics.