YOLOv5 so với YOLOv9 Sự tiến hóa của phát hiện đối tượng thời gian thực
Lĩnh vực phát hiện đối tượng thời gian thực đã phát triển mạnh mẽ trong vài năm qua. Trong khi YOLOv5 thiết lập tiêu chuẩn về khả năng sử dụng và ứng dụng công nghiệp vào năm 2020, YOLOv9 đã giới thiệu các khái niệm kiến trúc mới vào năm 2024 để đẩy mạnh giới hạn về độ chính xác và hiệu quả. Hướng dẫn này cung cấp so sánh kỹ thuật chi tiết để giúp các nhà phát triển lựa chọn công cụ phù hợp cho các dự án thị giác máy tính của họ.
Nguồn gốc và thông số kỹ thuật của mẫu xe
Việc hiểu rõ nguồn gốc của các mô hình này giúp làm rõ triết lý thiết kế và các trường hợp sử dụng dự định của chúng.
YOLOv5: Tiêu chuẩn công nghiệp
Được Glenn Jocher và Ultralytics ra mắt vào tháng 6 năm 2020, YOLOv5 Ưu tiên tính dễ sử dụng, khả năng xuất khẩu và tốc độ. Nó trở thành sản phẩm đầu tiên YOLO Mô hình được triển khai nguyên bản bằng PyTorch , giúp nó dễ tiếp cận với một cộng đồng lớn. Python các nhà phát triển.
- Tác giả: Glenn Jocher
- Tổ chức:Ultralytics
- Ngày: 2020-06-26
- Kho lưu trữ:GitHub
- Trọng tâm: Tính khả dụng, các phương thức xuất dữ liệu mạnh mẽ ( ONNX , CoreML , TFLite ), và đào tạo nhanh chóng.
YOLOv9: Đổi mới kiến trúc
Được phát hành vào tháng 2 năm 2024 bởi Chien-Yao Wang và Hong-Yuan Mark Liao từ Viện Hàn lâm Khoa học Trung Quốc. YOLOv9 Tập trung vào việc giải quyết vấn đề "nút thắt cổ chai thông tin" trong mạng nơ-ron sâu.
- Tác giả: Chien-Yao Wang, Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Academia Sinica
- Ngày: 2024-02-21
- Kho lưu trữ:GitHub
- Bài báo:arXiv:2402.13616
- Trọng tâm: Hiệu quả tham số và giám sát chuyên sâu bằng cách sử dụng Thông tin Gradient có thể lập trình (PGI).
Sự khác biệt về kiến trúc
Sự khác biệt cốt lõi nằm ở cách các mô hình này xử lý việc trích xuất đặc trưng và dòng gradient.
YOLOv5 sử dụng kiến trúc xương sống CSPNet (Cross Stage Partial Network). Thiết kế này chia nhỏ luồng gradient để giảm thiểu tính toán trong khi vẫn duy trì độ chính xác, điều này mang tính cách mạng trong việc tạo ra các mô hình nhỏ gọn phù hợp với hệ thống nhúng . Đầu phát hiện dựa trên điểm neo của nó được tối ưu hóa cao cho các tác vụ đa năng, mang lại sự cân bằng vẫn cạnh tranh đối với nhiều ứng dụng cũ.
YOLOv9 giới thiệu hai cải tiến quan trọng: GELAN (Generalized Efficient Layer Aggregation Network) và PGI (Programmable Gradient Information). GELAN tối ưu hóa việc sử dụng tham số, cho phép mô hình nhẹ hơn trong khi học được các đặc trưng phức tạp hơn. PGI giải quyết vấn đề mất thông tin khi dữ liệu lan truyền qua các lớp sâu bằng cách cung cấp một nhánh giám sát phụ trợ, đảm bảo tạo ra gradient đáng tin cậy ngay cả trong các kiến trúc rất sâu.
Bạn có biết?
Trong khi YOLOv9 Mang đến sự đổi mới về kiến trúc, hệ sinh thái Ultralytics YOLOv5 vẫn không có đối thủ về khả năng triển khai. Nó hỗ trợ xuất dữ liệu sang các định dạng như... TensorRT và Edge TPU , đơn giản hóa quy trình từ đào tạo đến sản xuất.
Phân tích hiệu suất
Khi so sánh các chỉ số, YOLOv9 thường đạt được kết quả cao hơn mAP val đối với một số lượng tham số nhất định, đặc biệt là trong các biến thể mô hình lớn hơn. Tuy nhiên, YOLOv5 Nhờ kiến trúc đơn giản hơn, nó vẫn duy trì khả năng cạnh tranh đáng kinh ngạc về tốc độ suy luận trên CPU và phần cứng thế hệ cũ.
Các chỉ số benchmark
Bảng dưới đây nêu bật những sự đánh đổi. YOLOv9c đạt được 53,0%. mAP , vượt trội hơn YOLOv5x (50,7%) trong khi sử dụng ít tham số hơn đáng kể (25,3 triệu so với 97,2 triệu). Điều này chứng tỏ hiệu quả của kiến trúc GELAN. Ngược lại, kích thước nhỏ hơn YOLOv5 Các phiên bản (Nano và Small) có độ trễ cực thấp, khiến chúng trở nên khả thi cho các thiết bị tiêu thụ điện năng cực thấp.
| 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 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 86.7 | 205.7 |
| 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 |
Lưu ý: Bảng này phản ánh tiêu chuẩn thông thường. COCO Các chỉ số đánh giá. Các giá trị in đậm cho biết hiệu suất tốt nhất trong hạng mục cụ thể đó.
Dễ sử dụng và hệ sinh thái
Đây là điểm mà sự phân biệt này trở nên thiết thực nhất đối với các nhà phát triển.
Cái Ultralytics Kinh nghiệm ( YOLOv5 )
YOLOv5 Được thiết kế dành cho trải nghiệm của nhà phát triển. Hệ sinh thái Ultralytics cung cấp quy trình làm việc liền mạch:
- API đơn giản: Tải và huấn luyện mô hình chỉ với vài dòng lệnh. Python .
- Công cụ tích hợp: Tự động tích hợp với các công cụ theo dõi thí nghiệm như... Comet Và ClearML .
- Triển khai: Xuất sang ONNX chỉ với một cú nhấp chuột. CoreML , TFLite , Và OpenVINO .
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model
model = YOLO("yolov5su.pt")
# Train on custom data
model.train(data="coco8.yaml", epochs=100)
# Export to ONNX for deployment
model.export(format="onnx")
YOLOv9 Triển khai
Mặc dù rất chính xác, bản gốc YOLOv9 Kho lưu trữ này tập trung vào nghiên cứu. Tuy nhiên, YOLOv9 hiện đã được hỗ trợ đầy đủ trong gói Ultralytics , mang lại sự dễ sử dụng tương tự cho kiến trúc mới hơn này. Điều này có nghĩa là bạn không cần phải hy sinh tính dễ sử dụng để truy cập các cải tiến kiến trúc mới nhất; bạn chỉ cần thay đổi chuỗi tên mô hình.
Hiệu quả huấn luyện và Bộ nhớ
Một lợi thế quan trọng của Ultralytics các mô hình, bao gồm YOLOv5 và tích hợp YOLOv9 Đó là hiệu quả bộ nhớ.
- Bộ nhớ GPU : Ultralytics Các vòng lặp huấn luyện được tối ưu hóa để giảm thiểu mức sử dụng bộ nhớ CUDA . Điều này cho phép người dùng huấn luyện với kích thước lô lớn hơn trên phần cứng cấp người tiêu dùng (như...) NVIDIA RTX 3060/4090) so với các mô hình dựa trên Transformer thường ngốn nhiều bộ nhớ.
- Sự hội tụ: YOLOv5 Nổi tiếng với khả năng "huấn luyện ngay lập tức", chỉ cần điều chỉnh tối thiểu các siêu tham số . YOLOv9 Cùng với nhánh phụ PGI, hệ thống này cũng thể hiện sự hội tụ ổn định, mặc dù kiến trúc phức tạp hơn.
Các ứng dụng thực tế
Việc lựa chọn mô hình phù hợp phụ thuộc vào các ràng buộc triển khai của bạn.
Các Trường hợp Sử dụng Lý tưởng cho YOLOv5
- AI biên trên phần cứng cũ: Nếu bạn đang triển khai trên các mẫu Raspberry Pi cũ hơn hoặc thiết bị di động mà mỗi mili giây độ trễ suy luận đều quan trọng, YOLOv5n (Nano) là lựa chọn không thể tốt hơn.
- Tạo mẫu nhanh: Đối với các cuộc thi hackathon hoặc các công ty khởi nghiệp cần bằng chứng về tính khả thi (PoC) trong vài giờ, nguồn tài liệu khổng lồ và các hướng dẫn từ cộng đồng sẽ giúp bạn. YOLOv5 Đẩy nhanh tiến độ phát triển.
- Ứng dụng di động: Hỗ trợ gốc cho iOS CoreML và Android TFLite Điều này khiến nó trở thành công cụ thiết yếu đối với các nhà phát triển ứng dụng di động.
Các Trường hợp Sử dụng Lý tưởng cho YOLOv9
- Kiểm tra độ chính xác cao: Trong kiểm soát chất lượng sản xuất, nơi việc phát hiện các khuyết tật nhỏ nhất là vô cùng quan trọng, khả năng trích xuất đặc điểm vượt trội của GELAN giúp tạo nên sự khác biệt. YOLOv9 một sự lựa chọn tốt hơn.
- Chụp ảnh y tế: Đối với các tác vụ như phát hiện khối u , nơi độ chính xác quan trọng hơn tốc độ xử lý, YOLOv9e cung cấp các tính năng cần thiết. mAP tăng.
- Các cảnh phức tạp: Môi trường có độ che khuất hoặc lộn xộn cao sẽ được hưởng lợi từ các gradient có thể lập trình, giúp mô hình giữ lại thông tin quan trọng xuyên suốt các lớp sâu.
Tương lai: Gặp gỡ YOLO26
Trong khi YOLOv5 là một cỗ máy làm việc đáng tin cậy và YOLOv9 Với độ chính xác cao, lĩnh vực này đã có những bước tiến vượt bậc. Đối với các dự án mới bắt đầu từ năm 2026, Ultralytics YOLO26 đại diện cho đỉnh cao về hiệu suất và hiệu quả.
Tại sao nên nâng cấp lên YOLO26?
- Hoàn toàn từ đầu đến cuối: Không giống như YOLOv5 và v9 yêu cầu NMS xử lý hậu kỳ, YOLO26 là NMS - Miễn phí, đơn giản hóa quy trình triển khai.
- Công cụ tối ưu hóa MuSGD: Lấy cảm hứng từ quá trình huấn luyện LLM, công cụ tối ưu hóa này đảm bảo quá trình huấn luyện nhanh hơn và ổn định hơn.
- Tính linh hoạt: Hỗ trợ phát hiện, phân đoạn , tư thế, OBB và phân loại ngay từ đầu.
Dành cho người dùng hiện đang sử dụng YOLOv5 Việc chuyển sang YOLO26 mang lại tốc độ nhanh hơn đáng kể (lên đến 43% nhanh hơn). CPU (suy luận) và cải thiện khả năng phát hiện vật thể nhỏ thông qua ProgLoss + STAL , khiến nó trở thành hướng đi được khuyến nghị cho cả triển khai ở biên và trên đám mây.
Kết luận
Cả hai kiến trúc đều có vị trí riêng. YOLOv5 vẫn là vua về sự đơn giản và khả năng tương thích rộng rãi với nhiều thiết bị, hoàn hảo cho các nhà phát triển cần một giải pháp "chỉ cần hoạt động". YOLOv9 mang đến cái nhìn thoáng qua về tương lai của học sâu hiệu quả với các gradient có thể lập trình, mang lại độ chính xác hàng đầu.
Tuy nhiên, việc sử dụng hệ sinh thái Ultralytics đảm bảo bạn không bị ràng buộc. Bạn có thể đào tạo YOLOv5 , YOLOv9 và YOLO26 tiên tiến sử dụng cùng một API, cho phép bạn so sánh hiệu năng của chúng trên dữ liệu của riêng mình và chọn ra công cụ tốt nhất cho ứng dụng cụ thể của bạn.
Tóm tắt so sánh
| Tính năng | YOLOv5 | YOLOv9 |
|---|---|---|
| Trọng tâm chính | Tốc độ, Dễ sử dụng, Triển khai | Độ chính xác, Hiệu quả tham số |
| Kiến trúc | Mạng trục CSPNet, dựa trên điểm neo | GELAN Backbone, PGI, Anchor-Based |
| Hệ sinh thái | Tự nhiên Ultralytics Ủng hộ | Được tích hợp vào Ultralytics |
| Tốt nhất cho | Hệ thống di động, biên, hệ thống cũ | Nghiên cứu độ chính xác cao, các cảnh phức tạp |
| Suy luận | Cực kỳ nhanh ( CPU / GPU ) | Độ chính xác cao / Tốc độ chậm hơn |
Khám phá các mẫu khác trong Ultralytics gia đình:
- YOLO11 - Phiên bản tiền nhiệm mạnh mẽ của YOLO26.
- YOLOv8 - Một khung phần mềm thống nhất cho việc phát hiện, phân đoạn và xác định tư thế.
- RT-DETR - Phát hiện dựa trên Transformer theo thời gian thực.