YOLOv9 so với YOLOv7#
Sự tiến hóa của object detection thời gian thực được thúc đẩy bởi nỗ lực liên tục nhằm cân bằng giữa hiệu quả tính toán và độ chính xác cao. Hai kiến trúc mang tính bước ngoặt trong hành trình này là YOLOv9 và YOLOv7, đều được phát triển bởi các nhà nghiên cứu tại Viện Khoa học Thông tin, Academia Sinica ở Đài Loan. Trong khi YOLOv7 giới thiệu tập hợp các thủ thuật huấn luyện (bag-of-freebies) mang tính cách mạng, YOLOv9 mới hơn lại giải quyết trực diện các nút cổ chai thông tin trong học sâu.
So sánh kỹ thuật toàn diện này khám phá sự khác biệt về kiến trúc, performance metrics và các kịch bản triển khai lý tưởng cho cả hai mô hình, giúp các kỹ sư và nhà nghiên cứu ML lựa chọn công cụ phù hợp cho các pipeline computer vision của họ.
So sánh Hiệu năng và Chỉ số#
Khi so sánh các mô hình này, hiệu suất thô và hiệu quả là những yếu tố quan trọng. Bảng sau đây trình bày chi tiết về mean Average Precision (mAP) và các yêu cầu tính toán cho các benchmark chuẩn trên bộ dữ liệu COCO.
| 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) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Lưu ý cách YOLOv9c đạt được độ chính xác tương đương (53.0 mAP) so với YOLOv7x (53.1 mAP) trong khi sử dụng ít tham số hơn đáng kể (25.3M so với 71.3M) và các FLOPs thấp hơn. Điều này thể hiện những cải tiến về Performance Balance trong các kiến trúc hiện đại.
YOLOv9: Giải quyết nút thắt thông tin#
Được giới thiệu vào đầu năm 2024, YOLOv9 đã thay đổi về cơ bản cách các deep neural network lưu giữ dữ liệu xuyên suốt các lớp của chúng.
- Tác giả: Chien-Yao Wang và Hong-Yuan Mark Liao
- Tổ chức: Institute of Information Science, Academia Sinica
- Ngày: 21 tháng 2 năm 2024
- Tài nguyên: Arxiv Paper | GitHub Repository
Cải tiến Kiến trúc#
YOLOv9 giới thiệu Generalized Efficient Layer Aggregation Network (GELAN) và Programmable Gradient Information (PGI). GELAN kết hợp thế mạnh của CSPNet và ELAN để tối ưu hóa hiệu quả tham số và chi phí tính toán, đảm bảo độ chính xác cao với số lượng tham số thấp hơn. PGI là một framework giám sát phụ được thiết kế để ngăn ngừa mất dữ liệu trong các mạng sâu, tạo ra các gradient đáng tin cậy để cập nhật trọng số trong quá trình huấn luyện.
Điểm mạnh và hạn chế#
Điểm mạnh chính của YOLOv9 là khả năng trích xuất các đặc trưng tinh tế mà không gây ra chi phí tính toán quá lớn, giúp nó cực kỳ có năng lực cho các tác vụ đòi hỏi độ trung thực cao của đặc trưng, chẳng hạn như medical image analysis. Tuy nhiên, cấu trúc PGI phức tạp trong quá trình huấn luyện có thể khiến việc chỉnh sửa kiến trúc tùy chỉnh trở nên thách thức hơn đối với những người mới bắt đầu so với các framework thống nhất hơn.
YOLOv7: Người tiên phong Bag-of-Freebies#
Được phát hành vào năm 2022, YOLOv7 đã thiết lập một tiêu chuẩn mới cho những gì khả thi trên phần cứng tiêu dùng, giới thiệu các cải tiến về cấu trúc giúp tăng đáng kể tốc độ real-time inference.
- Tác giả: Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao
- Tổ chức: Institute of Information Science, Academia Sinica
- Ngày: 6 tháng 7, 2022
- Tài nguyên: Arxiv Paper | GitHub Repository
Cải tiến Kiến trúc#
Đóng góp cốt lõi của YOLOv7 là Extended Efficient Layer Aggregation Network (E-ELAN). Kiến trúc này cho phép mô hình học các đặc trưng đa dạng hơn một cách liên tục. Ngoài ra, YOLOv7 sử dụng "trainable bag-of-freebies"—các kỹ thuật như convolution được tái tham số hóa có kế hoạch và gán nhãn động. Các phương pháp này cải thiện độ chính xác của mô hình trong quá trình huấn luyện mà không làm tăng chi phí inference khi triển khai.
Điểm mạnh và hạn chế#
YOLOv7 được tối ưu hóa cao cho việc xử lý biên thời gian thực và vẫn là một thành phần chủ chốt trong các hệ thống kế thừa (legacy) và các CUDA environments cũ hơn. Hạn chế chính của nó hiện nay là kích thước tham số lớn hơn so với các mô hình mới hơn. Như được hiển thị trong bảng hiệu năng, việc đạt được độ chính xác hàng đầu đòi hỏi mô hình YOLOv7x nặng, yêu cầu nhiều GPU memory hơn đáng kể so với các kiến trúc hiện đại tương đương.
Lợi thế từ Ultralytics: Triển khai tinh gọn#
Mặc dù các kho lưu trữ nghiên cứu gốc cho YOLOv9 và YOLOv7 cung cấp nền tảng học thuật xuất sắc, việc triển khai các mô hình này trong môi trường sản xuất có thể phức tạp. Việc tích hợp chúng thông qua gói ultralytics mang lại Tính dễ sử dụng vô song.
Bằng cách tận dụng Ultralytics Platform được tích hợp, các nhà phát triển được hưởng lợi từ hệ sinh thái được duy trì tốt với Python API trực quan, sự hỗ trợ cộng đồng tích cực và khả năng experiment tracking mạnh mẽ.
Sẵn sàng cho tương lai với YOLO26#
Nếu bạn đang bắt đầu một dự án computer vision mới, chúng tôi đặc biệt khuyên bạn nên khám phá YOLO26 mới ra mắt thay vì cả YOLOv9 và YOLOv7. Được phát hành như tiêu chuẩn tối tân (state-of-the-art) mới, YOLO26 mang lại những tiến bộ mang tính bước ngoặt:
- Thiết kế NMS-Free End-to-End: Loại bỏ xử lý hậu kỳ Non-Maximum Suppression, giảm đáng kể độ phức tạp và độ trễ khi triển khai.
- Tốc độ suy luận CPU nhanh hơn tới 43%: Được tối ưu hóa cho môi trường edge computing, đảm bảo ứng dụng của bạn chạy mượt mà ngay cả khi không có GPU chuyên dụng.
- Trình tối ưu hóa MuSGD: Một trình tối ưu hóa lai lấy cảm hứng từ huấn luyện LLM, mang lại sự hội tụ cực kỳ ổn định và giảm thời gian huấn luyện.
- Loại bỏ DFL: Đơn giản hóa việc xuất mô hình bằng cách loại bỏ Distribution Focal Loss, tăng cường khả năng tương thích với các thiết bị di động năng lượng thấp.
- ProgLoss + STAL: Cải thiện đáng kể hiệu năng trên bài toán phát hiện đối tượng nhỏ, biến nó thành lựa chọn hàng đầu cho aerial imagery và giám sát.
Các giải pháp thay thế phổ biến khác trong hệ sinh thái bao gồm Ultralytics YOLOv8 và YOLO11, cả hai đều mang lại tính linh hoạt lớn cho các tác vụ như instance segmentation và pose estimation.
Ví dụ triển khai#
Huấn luyện và xuất bất kỳ kiến trúc nào trong số này cực kỳ đơn giản với API thống nhất. Đoạn mã dưới đây minh họa đặc điểm Hiệu quả Huấn luyện được sắp xếp hợp lý của các công cụ Ultralytics.
from ultralytics import YOLO
# Initialize YOLOv9 or the recommended YOLO26 model
model = YOLO("yolov9c.pt") # Swap with "yolo26n.pt" for faster edge performance
# Train on a custom dataset with built-in data augmentation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Khi huấn luyện trên phần cứng cấp người tiêu dùng, hiệu quả bộ nhớ là rất quan trọng. Các triển khai YOLOv9 và YOLO26 của Ultralytics được tối ưu hóa mạnh mẽ để giảm các đột biến VRAM, không giống như các mô hình dựa trên Transformer (như RT-DETR), vốn thường gặp phải tình trạng quá tải bộ nhớ nghiêm trọng trong quá trình huấn luyện.
Các ứng dụng thực tế và trường hợp sử dụng lý tưởng#
Việc lựa chọn giữa các kiến trúc này thường phụ thuộc vào những hạn chế cụ thể trong môi trường sản xuất của bạn.
Khi nào nên sử dụng YOLOv9: YOLOv9 xuất sắc trong các môi trường cần giữ lại các chi tiết nhỏ. Khả năng trích xuất đặc trưng mạnh mẽ của nó làm cho nó lý tưởng cho retail analytics để đếm các sản phẩm được đóng gói dày đặc trên kệ hoặc cho các ứng dụng nông nghiệp nơi việc xác định bệnh cây trồng ở giai đoạn đầu trên lá nhỏ là tối quan trọng.
Khi nào nên sử dụng YOLOv7: YOLOv7 vẫn là một ứng cử viên mạnh mẽ cho các pipeline triển khai kế thừa. Nếu bạn đang tích hợp vào các hệ thống phần cứng cũ hơn (như một số thế hệ của Google Coral Edge TPU), kiến trúc CNN đơn giản của YOLOv7 có thể dễ biên dịch hơn so với các nhánh gradient phức tạp hơn của các mô hình mới.
Khi nào nên sử dụng YOLO26 (Khuyên dùng): Đối với bất kỳ việc triển khai hiện đại nào—từ drone tự hành đến traffic management thành phố thông minh—YOLO26 là lựa chọn vượt trội. Kiến trúc phi NMS của nó đảm bảo thời gian suy luận tất định, điều cần thiết cho robot quan trọng về an toàn, trong khi độ chính xác cao vượt trội hơn cả YOLOv9 và YOLOv7 trên diện rộng.