YOLOv9: Bước tiến vượt bậc trong công nghệ Phát hiện đối tượng#
YOLOv9 đánh dấu một bước tiến đáng kể trong lĩnh vực phát hiện đối tượng theo thời gian thực, giới thiệu các kỹ thuật đột phá như 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). Model này cho thấy những cải thiện ấn tượng về hiệu suất, độ chính xác và khả năng thích ứng, thiết lập các chuẩn mực mới trên dataset MS COCO. Dự án YOLOv9, dù được phát triển bởi một nhóm mã nguồn mở độc lập, được xây dựng trên codebase mạnh mẽ do Ultralytics cung cấp cho YOLOv5, thể hiện tinh thần hợp tác của cộng đồng nghiên cứu AI.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Giới thiệu về YOLOv9#
Trong quá trình tìm kiếm giải pháp phát hiện đối tượng theo thời gian thực tối ưu, YOLOv9 nổi bật với phương pháp đổi mới nhằm khắc phục các thách thức về mất thông tin vốn có trong mạng neural sâu. Bằng cách tích hợp PGI và kiến trúc GELAN linh hoạt, YOLOv9 không chỉ nâng cao khả năng học của model mà còn đảm bảo duy trì thông tin quan trọng trong suốt quá trình phát hiện, qua đó đạt được độ chính xác và hiệu suất vượt trội.
Các đổi mới cốt lõi của YOLOv9#
Những cải tiến của YOLOv9 bắt nguồn sâu sắc từ việc giải quyết các thách thức do mất thông tin trong mạng neural sâu. Nguyên lý Nút thắt Thông tin và việc sử dụng sáng tạo các Hàm khả nghịch là trọng tâm trong thiết kế, đảm bảo YOLOv9 duy trì hiệu suất và độ chính xác cao.
Nguyên lý Nút thắt Thông tin#
Nguyên lý Nút thắt Thông tin cho thấy một thách thức nền tảng trong deep learning: khi dữ liệu đi qua các layer liên tiếp của mạng, nguy cơ mất thông tin sẽ tăng lên. Hiện tượng này được biểu diễn bằng toán học như sau:
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))trong đó I biểu thị thông tin tương hỗ, còn f và g lần lượt biểu thị các hàm biến đổi với các tham số theta và phi. YOLOv9 khắc phục thách thức này bằng cách triển khai Thông tin Gradient Có thể Lập trình (PGI), giúp bảo toàn dữ liệu thiết yếu qua chiều sâu của mạng, đảm bảo tạo gradient đáng tin cậy hơn và do đó cải thiện khả năng hội tụ cũng như hiệu suất của model.
Các Hàm khả nghịch#
Khái niệm Hàm khả nghịch là một nền tảng khác trong thiết kế của YOLOv9. Một hàm được xem là khả nghịch nếu có thể đảo ngược mà không làm mất thông tin, như biểu diễn dưới đây:
X = v_zeta(r_psi(X))với psi và zeta lần lượt là các tham số của hàm khả nghịch và hàm nghịch đảo của nó. Tính chất này rất quan trọng đối với các kiến trúc deep learning, vì cho phép mạng duy trì luồng thông tin đầy đủ, từ đó cập nhật các tham số của model chính xác hơn. YOLOv9 tích hợp các hàm khả nghịch vào kiến trúc để giảm thiểu nguy cơ suy giảm thông tin, đặc biệt ở các layer sâu hơn, đảm bảo bảo toàn dữ liệu quan trọng cho các tác vụ phát hiện đối tượng.
Tác động đến các Model Nhẹ#
Việc giải quyết mất thông tin đặc biệt quan trọng đối với các model nhẹ, vốn thường thiếu tham số và dễ mất thông tin đáng kể trong quá trình feedforward. Thông qua việc sử dụng PGI và các hàm khả nghịch, kiến trúc YOLOv9 đảm bảo rằng ngay cả với một model tinh gọn, thông tin thiết yếu cần cho việc phát hiện đối tượng chính xác vẫn được duy trì và sử dụng hiệu quả.
Thông tin Gradient Có thể Lập trình (PGI)#
PGI là một khái niệm mới được giới thiệu trong YOLOv9 nhằm giải quyết vấn đề nút thắt thông tin, đảm bảo bảo toàn dữ liệu thiết yếu qua các layer sâu của mạng. Điều này cho phép tạo ra các gradient đáng tin cậy, hỗ trợ cập nhật model chính xác và cải thiện hiệu suất phát hiện tổng thể.
Mạng Tổng hợp Lớp Hiệu quả Tổng quát (GELAN)#
GELAN đại diện cho một cải tiến chiến lược về kiến trúc, cho phép YOLOv9 đạt được hiệu quả sử dụng tham số và hiệu suất tính toán vượt trội. Thiết kế của GELAN cho phép tích hợp linh hoạt nhiều block tính toán khác nhau, giúp YOLOv9 thích ứng với nhiều ứng dụng mà không phải hy sinh tốc độ hay độ chính xác.

Các Benchmark của YOLOv9#
Benchmarking trong YOLOv9 bằng Ultralytics bao gồm việc đánh giá hiệu suất của model đã được train và validation trong các tình huống thực tế. Quy trình này bao gồm:
- Đánh giá hiệu suất: Đánh giá tốc độ và độ chính xác của model.
- Định dạng Export: Kiểm thử model trên nhiều định dạng export khác nhau để đảm bảo đáp ứng các tiêu chuẩn cần thiết và hoạt động tốt trong nhiều môi trường.
- Hỗ trợ Framework: Cung cấp một framework toàn diện trong gói Ultralytics nhằm hỗ trợ các đánh giá này và đảm bảo kết quả nhất quán, đáng tin cậy.
Thông qua benchmarking, bạn có thể đảm bảo model không chỉ hoạt động tốt trong môi trường kiểm thử có kiểm soát mà còn duy trì hiệu suất cao trong các ứng dụng thực tế.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Hiệu suất trên Dataset MS COCO#
Hiệu suất của YOLOv9 trên dataset COCO minh chứng cho những cải tiến đáng kể trong phát hiện đối tượng theo thời gian thực, thiết lập các chuẩn mực mới trên nhiều kích thước model. Bảng 1 trình bày sự so sánh toàn diện giữa các detector đối tượng theo thời gian thực tiên tiến nhất, cho thấy hiệu suất và độ chính xác vượt trội của YOLOv9.
Các phiên bản YOLOv9, từ biến thể tiny t đến model e lớn nhất, cho thấy những cải thiện không chỉ về độ chính xác (các metric mAP) mà còn về hiệu suất nhờ giảm số lượng tham số và nhu cầu tính toán (FLOPs). Bảng này nhấn mạnh khả năng cung cấp precision cao của YOLOv9, đồng thời duy trì hoặc giảm overhead tính toán so với các phiên bản trước và các model cạnh tranh.
So sánh cho thấy YOLOv9 đạt được những cải thiện đáng kể:
- Model nhẹ: YOLOv9s vượt qua YOLO MS-S về hiệu quả tham số và tải tính toán, đồng thời đạt mức cải thiện 0.4∼0.6% về AP.
- Model từ trung bình đến lớn: YOLOv9m và YOLOv9e cho thấy những tiến bộ đáng kể trong việc cân bằng sự đánh đổi giữa độ phức tạp của model và hiệu suất phát hiện, giảm đáng kể số lượng tham số và phép tính trong khi vẫn cải thiện độ chính xác.
Đặc biệt, model YOLOv9c làm nổi bật tính hiệu quả của các tối ưu hóa trong kiến trúc. Model này sử dụng ít hơn 42% tham số và ít hơn 21% nhu cầu tính toán so với YOLOv7 AF, nhưng vẫn đạt độ chính xác tương đương, cho thấy những cải thiện đáng kể về hiệu suất của YOLOv9. Ngoài ra, model YOLOv9e thiết lập một tiêu chuẩn mới cho các model lớn, với ít hơn 15% tham số và ít hơn 25% nhu cầu tính toán so với YOLOv8x, đồng thời cải thiện thêm 1.7% về AP.
Những kết quả này cho thấy các tiến bộ chiến lược trong thiết kế model của YOLOv9, nhấn mạnh hiệu suất được nâng cao mà không làm ảnh hưởng đến precision cần thiết cho các tác vụ phát hiện đối tượng theo thời gian thực. Model không chỉ mở rộng giới hạn của các metric hiệu suất mà còn nhấn mạnh tầm quan trọng của hiệu quả tính toán, khiến đây trở thành một bước phát triển then chốt trong lĩnh vực thị giác máy tính.
Kết luận#
YOLOv9, được phát hành vào tháng 2 năm 2024, là một bước phát triển then chốt trong lĩnh vực phát hiện đối tượng theo thời gian thực, mang lại những cải thiện đáng kể về hiệu suất, độ chính xác và khả năng thích ứng. Bằng cách giải quyết các thách thức quan trọng thông qua những giải pháp đổi mới như PGI và GELAN, YOLOv9 đã thiết lập các chuẩn mực mới tại thời điểm phát hành. Mặc dù các model mới hơn như YOLO11 và YOLO26 đã được phát hành sau đó với những cải tiến bổ sung, các đổi mới về kiến trúc của YOLOv9 vẫn tiếp tục có ảnh hưởng đến lĩnh vực này.
Ví dụ sử dụng#
Ví dụ này cung cấp các ví dụ đơn giản về training và inference YOLOv9. Để xem tài liệu đầy đủ về các nội dung này và những mode khác, hãy xem các trang tài liệu Predict, Train, Val và Export.
Các model *.pt được huấn luyện trước bằng PyTorch, cũng như các tệp cấu hình *.yaml, có thể được truyền vào class YOLO() để tạo một instance model trong Python:
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Các task và mode được hỗ trợ#
Dòng YOLOv9 cung cấp nhiều model, mỗi model được tối ưu cho Phát hiện đối tượng hiệu suất cao. Các model này đáp ứng nhiều nhu cầu tính toán và yêu cầu độ chính xác khác nhau, khiến chúng phù hợp với nhiều ứng dụng đa dạng.
| Model | Tên tệp | Task | Training | Validation | Inference | Export |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Phân đoạn instance | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp tổng quan chi tiết về các biến thể model YOLOv9, làm nổi bật khả năng của chúng trong các tác vụ phát hiện đối tượng và khả năng tương thích với nhiều mode vận hành như Inference, Validation, Training và Export. Khả năng hỗ trợ toàn diện này đảm bảo người dùng có thể tận dụng đầy đủ năng lực của các model YOLOv9 trong nhiều tình huống phát hiện đối tượng.
Training các model YOLOv9 sẽ cần nhiều tài nguyên hơn và mất nhiều thời gian hơn so với model YOLOv8 có cùng kích thước.
Trích dẫn và ghi nhận đóng góp#
Chúng tôi xin ghi nhận những đóng góp quan trọng của các tác giả YOLOv9 trong lĩnh vực phát hiện đối tượng theo thời gian thực:
@inproceedings{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
booktitle={Computer Vision -- ECCV 2024},
pages={1--21},
year={2024},
organization={Springer Nature Switzerland}
}Bài báo YOLOv9 chính thức được xuất bản trong kỷ yếu Springer ECCV 2024, cùng với một bản preprint trên arXiv. Các tác giả đã công khai công trình của mình và có thể truy cập codebase trên GitHub. Chúng tôi trân trọng những nỗ lực của họ trong việc thúc đẩy lĩnh vực này và giúp cộng đồng rộng lớn hơn tiếp cận công trình.
FAQ#
YOLOv9 giới thiệu các kỹ thuật đột phá như 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). Những đổi mới này giải quyết các thách thức về mất thông tin trong mạng neural sâu, đảm bảo hiệu suất, độ chính xác và khả năng thích ứng cao. PGI bảo toàn dữ liệu thiết yếu qua các layer của mạng, trong khi GELAN tối ưu hóa việc sử dụng tham số và hiệu quả tính toán. Tìm hiểu thêm về các đổi mới cốt lõi của YOLOv9 đã thiết lập các chuẩn mực mới trên dataset MS COCO.
YOLOv9 vượt qua các detector đối tượng theo thời gian thực tiên tiến nhất nhờ đạt độ chính xác và hiệu suất cao hơn. Trên dataset COCO, các model YOLOv9 đạt điểm mAP vượt trội ở nhiều kích thước khác nhau, đồng thời duy trì hoặc giảm overhead tính toán. Chẳng hạn, YOLOv9c đạt độ chính xác tương đương với ít hơn 42% tham số và ít hơn 21% nhu cầu tính toán so với YOLOv7 AF. Khám phá các so sánh hiệu suất để xem các metric chi tiết.
Bạn có thể train model YOLOv9 bằng cả lệnh Python và CLI. Với Python, hãy khởi tạo model bằng class
YOLOvà gọi methodtrain:from ultralytics import YOLO # Build a YOLOv9c model from pretrained weights and train model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Để training bằng CLI, hãy thực thi:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Tìm hiểu thêm về các ví dụ sử dụng cho training và inference.
YOLOv9 được thiết kế để giảm thiểu mất thông tin, điều đặc biệt quan trọng đối với các model nhẹ vốn thường dễ bị mất thông tin đáng kể. Bằng cách tích hợp Thông tin Gradient Có thể Lập trình (PGI) và các hàm khả nghịch, YOLOv9 đảm bảo duy trì dữ liệu thiết yếu, nâng cao độ chính xác và hiệu suất của model. Điều này khiến YOLOv9 đặc biệt phù hợp với các ứng dụng yêu cầu model nhỏ gọn nhưng có hiệu suất cao. Để biết thêm chi tiết, hãy xem phần tác động của YOLOv9 đến các model nhẹ.
YOLOv9 hỗ trợ nhiều tác vụ, bao gồm phát hiện đối tượng và instance segmentation. Model tương thích với nhiều mode vận hành như inference, validation, training và export. Tính linh hoạt này giúp YOLOv9 thích ứng với nhiều ứng dụng thị giác máy tính theo thời gian thực. Tham khảo phần các tác vụ và mode được hỗ trợ để biết thêm thông tin.