YOLOv9 so với YOLOv7#
Sự phát triển của phát hiện đối tượng theo thời gian thực được thúc đẩy bởi nỗ lực không ngừng nhằm cân bằng hiệu quả tính toán với độ chính xác cao. Hai kiến trúc mang tính cột mốc 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 các kỹ thuật bag-of-freebies có thể huấn luyện mang tính cách mạng, YOLOv9 mới hơn tập trung trực tiếp vào các nút thắt thông tin trong deep learning.
Bài so sánh kỹ thuật toàn diện này phân tích sự khác biệt về kiến trúc, các chỉ số hiệu năng và các kịch bản triển khai lý tưởng cho cả hai model, giúp các kỹ sư ML và nhà nghiên cứu lựa chọn công cụ phù hợp cho pipeline computer vision của mình.
So sánh hiệu năng và các chỉ số#
Khi so sánh các model này, hiệu năng thực tế và hiệu quả là những yếu tố then chốt. Bảng sau trình bày Average Precision trung bình (mAP) và yêu cầu tính toán cho các benchmark chuẩn trên tập dữ liệu COCO.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | tham số (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 ý rằng YOLOv9c đạt độ chính xác gần tương đương (53.0 mAP) với YOLOv7x (53.1 mAP), đồng thời sử dụng ít parameter hơn đáng kể (25.3M so với 71.3M) và FLOPs hơn. Điều này cho thấy những cải tiến về Cân bằng hiệu năng 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 đã fundamentally thay đổi cách các mạng neural sâu duy trì dữ liệu qua các layer của chúng.
- Tác giả: Chien-Yao Wang và Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Academia Sinica
- Ngày: 21 tháng 2, 2024
- Tài nguyên: Bài báo ArXiv | Repository GitHub
Các cải tiến về 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 các ưu điểm của CSPNet và ELAN để tối ưu hiệu quả sử dụng parameter và chi phí tính toán, đảm bảo độ chính xác cao với số lượng parameter thấp hơn. PGI là một framework giám sát phụ được thiết kế để ngăn mất mát dữ liệu trong các mạng sâu, tạo ra gradient đáng tin cậy để cập nhật weight trong quá trình huấn luyện.
Ưu điểm và hạn chế#
Ưu điểm chính của YOLOv9 là khả năng trích xuất các đặc trưng tinh vi mà không tạo ra overhead tính toán quá lớn, khiến model đặc biệt phù hợp với các tác vụ yêu cầu độ trung thực đặc trưng cao, chẳng hạn như phân tích ảnh y tế. 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 tùy chỉnh kiến trúc trở nên khó khăn hơn đối với người mới bắt đầu so với các framework thống nhất hơn.
YOLOv7: Tiên phong của Bag-of-Freebies#
Ra mắt vào năm 2022, YOLOv7 đã thiết lập một benchmark mới về khả năng xử lý trên phần cứng phổ thông, giới thiệu các cải tiến cấu trúc giúp tăng đáng kể tốc độ suy luận theo thời gian thực.
- 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
- Ngày: 6 tháng 7, 2022
- Tài nguyên: Bài báo ArXiv | Repository GitHub
Các cải tiến về 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 model liên tục học các đặc trưng đa dạng hơn. 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 theo kế hoạch và gán nhãn động. Những phương pháp này cải thiện độ chính xác của model trong quá trình huấn luyện mà không làm tăng chi phí suy luận khi triển khai.
Ưu điểm và hạn chế#
YOLOv7 được tối ưu hóa cao cho xử lý edge theo thời gian thực và vẫn là lựa chọn phổ biến trong các hệ thống legacy cũng như các môi trường CUDA cũ. Hạn chế chính của model này hiện nay là số lượng parameter lớn hơn so với các model mới hơn. Như được thể hiện trong bảng hiệu năng, để đạt độ chính xác hàng đầu cần sử dụng model YOLOv7x nặng hơn, đòi hỏi nhiều bộ nhớ GPU hơn đáng kể so với các kiến trúc hiện đại tương đương.
Lợi thế của Ultralytics: Đơn giản hóa triển khai#
Mặc dù các repository nghiên cứu gốc của 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 model này trong môi trường production có thể phức tạp. Tích hợp chúng thông qua package ultralytics mang lại Tính dễ sử dụng vượt trội.
Bằng cách sử dụng Nền tảng Ultralytics tích hợp, các developer được hưởng lợi từ một hệ sinh thái được duy trì tốt, với Python API trực quan, cộng đồng hỗ trợ tích cực và theo dõi experiment mạnh mẽ.
Đón đầu tương lai với YOLO26#
Nếu bạn bắt đầu một dự án computer vision mới, chúng tôi đặc biệt khuyến nghị 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 state-of-the-art mới, YOLO26 mang đến những cải tiến đột phá:
- Thiết kế end-to-end không cần NMS: Loại bỏ bước hậu xử lý Non-Maximum Suppression, giảm đáng kể độ phức tạp và độ trễ triển khai.
- Suy luận CPU nhanh hơn tới 43%: Được tối ưu hóa cho các môi trường edge computing, đảm bảo ứng dụng của bạn vận hành mượt mà ngay cả khi không có GPU chuyên dụng.
- Optimizer MuSGD: Optimizer lai lấy cảm hứng từ quá trình huấn luyện LLM, mang lại khả năng hội tụ ổn định cao và rút ngắn thời gian huấn luyện.
- Loại bỏ DFL: Đơn giản hóa việc export model bằng cách loại bỏ Distribution Focal Loss, tăng khả năng tương thích với các thiết bị di động công suất thấp.
- ProgLoss + STAL: Cải thiện đáng kể hiệu năng phát hiện đối tượng nhỏ, khiến đây trở thành lựa chọn hàng đầu cho ảnh chụp từ trên không và giám sát.
Các lựa chọn 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 rất cao cho các tác vụ như phân đoạn instance và ước tính pose.
Ví dụ Triển khai#
Việc huấn luyện và export bất kỳ kiến trúc nào trong số này đều cực kỳ đơn giản với API thống nhất. Đoạn code dưới đây minh họa Hiệu quả huấn luyện được tối ưu hóa, đặc trưng 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 phổ thông, hiệu quả sử dụng bộ nhớ là yếu tố rất quan trọng. Các triển khai YOLOv9 và YOLO26 của Ultralytics được tối ưu hóa mạnh để giảm các đợt tăng đột biến VRAM, không giống các model dựa trên Transformer (chẳng hạn như RT-DETR), vốn thường gặp tình trạng phình bộ nhớ nghiêm trọng trong quá trình huấn luyện.
Ứng dụng Thực tế và Các 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 ràng buộc cụ thể của môi trường production.
Khi nào nên sử dụng YOLOv9: YOLOv9 nổi bật trong các môi trường yêu cầu duy trì những chi tiết nhỏ. Khả năng trích xuất đặc trưng mạnh mẽ khiến model này lý tưởng cho phân tích bán lẻ để đếm các sản phẩm xếp dày trên kệ, hoặc cho các ứng dụng nông nghiệp, nơi việc nhận diện bệnh cây ở giai đoạn sớm trên những chiếc lá nhỏ là yếu tố then chốt.
Khi nào nên sử dụng YOLOv7: YOLOv7 vẫn là một lựa chọn mạnh cho các pipeline triển khai legacy. Nếu bạn tích hợp vào các hệ thống phần cứng cũ (chẳng hạn như một số thế hệ Google Coral Edge TPU), kiến trúc CNN đơn giản của YOLOv7 có thể dễ biên dịch hơn các nhánh gradient phức tạp của những model mới hơn.
Khi nào nên sử dụng YOLO26 (Khuyến nghị): Đối với mọi triển khai hiện đại—từ drone tự hành đến quản lý giao thông trong thành phố thông minh—YOLO26 là lựa chọn vượt trội. Kiến trúc không cần NMS đảm bảo thời gian suy luận xác định, điều thiết yếu đối với robot trong các ứng dụng quan trọng về an toàn, trong khi độ chính xác cao của model vượt qua cả YOLOv9 và YOLOv7 trên mọi phương diện.