YOLOv9: Bước tiến vượt bậc trong công nghệ phát hiện đối tượng#
YOLOv9 đánh dấu bước tiến đáng kể trong lĩnh vực phát hiện đối tượng 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 đáng kể về hiệu quả, độ 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 bộ dữ liệu MS COCO. Dự án YOLOv9, dù do một nhóm mã nguồn mở độc lập phát triển, được xây dựng dựa trên codebase vững chắc do Ultralytics YOLOv5 cung cấp, thể hiện tinh thần hợp tác của cộng đồng nghiên cứu AI.
Xem: Huấn luyện YOLOv9 trên dữ liệu tùy chỉnh bằng Ultralytics | Dataset gói hàng công nghiệp

Giới thiệu về YOLOv9#
Trong hành trình tìm kiếm giải pháp phát hiện đối tượng 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 thách thức mất thông tin vốn có trong mạng nơ-ron sâu. Bằng cách tích hợp PGI và kiến trúc GELAN linh hoạt, YOLOv9 không chỉ tăng cường khả năng học của model mà còn đảm bảo giữ lại thông tin quan trọng trong suốt quá trình phát hiện, từ đó đạt độ chính xác và hiệu năng vượt trội.
Những đổ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 nơ-ron sâu gây ra. Nguyên lý Nút thắt Thông tin và việc sử dụng Hàm khả nghịch theo cách đổi mới là trọng tâm trong thiết kế, giúp YOLOv9 duy trì hiệu quả 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 căn bản trong học sâu: khi dữ liệu đi qua các lớp liên tiếp của mạng, nguy cơ mất thông tin tăng lên. Hiện tượng này được biểu diễn bằng công thức:
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 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 xuyên suốt chiều sâu mạng, đảm bảo tạo gradient đáng tin cậy hơn và nhờ đó cải thiện hội tụ cũng như hiệu năng của model.
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 thức sau:
X = v_zeta(r_psi(X))trong đó 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. Tính chất này rất quan trọng đối với kiến trúc học sâu, vì cho phép mạng duy trì luồng thông tin hoàn chỉnh, từ đó cập nhật tham số model chính xác hơn. YOLOv9 tích hợp 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 lớp 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 model gọn nhẹ#
Giải quyết vấn đề mất thông tin đặc biệt quan trọng đối với các model gọn nhẹ, vốn thường có quá ít tham số và dễ mất một lượng thông tin đáng kể trong quá trình truyền xuôi. Kiến trúc YOLOv9, thông qua việc sử dụng PGI và hàm khả nghịch, đảm bảo rằng ngay cả với model được tinh giả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 giữ lại 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 để xử lý 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 lớp sâu của mạng. Nhờ đó, model có thể tạo ra gradient đáng tin cậy, hỗ trợ cập nhật model chính xác và cải thiện hiệu năng phát hiện tổng thể.
Mạng Tổng hợp Lớp Hiệu quả Tổng quát (GELAN)#
GELAN là một cải tiến kiến trúc mang tính chiến lược, giúp YOLOv9 sử dụng tham số hiệu quả hơn và tăng hiệu quả tính toán. Thiết kế này cho phép tích hợp linh hoạt nhiều khối tính toán, giúp YOLOv9 thích ứng với nhiều ứng dụng mà không phải hy sinh tốc độ hoặc độ chính xác.

Benchmark YOLOv9#
Benchmark YOLOv9 bằng Ultralytics bao gồm đánh giá hiệu năng của model đã huấn luyện và xác thực trong các tình huống thực tế. Quy trình này bao gồm:
- Đánh giá hiệu năng: Đánh giá tốc độ và độ chính xác của model.
- Định dạng xuất: Kiểm thử model trên nhiều định dạng xuất 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 framework toàn diện trong package Ultralytics để 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 benchmark, 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 năng cao trong các ứng dụng thực tế.
Xem: Cách benchmark model YOLOv9 bằng package Python của Ultralytics
Hiệu năng trên bộ dữ liệu MS COCO#
Hiệu năng của YOLOv9 trên bộ dữ liệu COCO thể hiện những tiến bộ đáng kể trong lĩnh vực phát hiện đối tượng 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 so sánh toàn diện các bộ phát hiện đối tượng thời gian thực tiên tiến nhất, cho thấy hiệu quả vượt trội và độ chính xác của YOLOv9.
Các phiên bản YOLOv9, từ biến thể t nhỏ nhấ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 (chỉ số mAP) mà còn về hiệu quả, với số lượng tham số và nhu cầu tính toán (FLOPs) giảm xuống. Bảng này nhấn mạnh khả năng đạt độ chính xác cao của YOLOv9 trong khi vẫn duy trì hoặc giảm chi phí tính toán so với các phiên bản trước và model cạnh tranh.
Khi so sánh, YOLOv9 cho thấy mức cải thiện đáng kể:
- Model gọn nhẹ: YOLOv9s vượt trội hơn YOLO MS-S về hiệu quả tham số và tải tính toán, đồng thời cải thiện AP thêm 0.4∼0.6%.
- Model cỡ trung đến lớn: YOLOv9m và YOLOv9e cho thấy tiến bộ đáng kể trong việc cân bằng giữa độ phức tạp của model và hiệu năng 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 cho thấy hiệu quả của các tối ưu hóa kiến trúc. Model này sử dụng ít hơn 42% tham số và cần ít hơn 21% tài nguyên 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 quả của YOLOv9. Ngoài ra, model YOLOv9e thiết lập chuẩn mực mới cho model lớn, với ít hơn 15% tham số và giảm 25% nhu cầu tính toán so với YOLOv8x, đồng thời cải thiện AP thêm 1.7%.
Những kết quả này cho thấy các cải tiến chiến lược trong thiết kế model của YOLOv9, nhấn mạnh hiệu quả được nâng cao mà không làm giảm độ chính xác cần thiết cho các tác vụ phát hiện đối tượng thời gian thực. Model không chỉ mở rộng giới hạn của các chỉ số hiệu năng mà còn nhấn mạnh tầm quan trọng của hiệu quả tính toán, 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#
Ra mắt vào tháng 2 năm 2024, YOLOv9 đánh dấu bước phát triển then chốt trong lĩnh vực phát hiện đối tượng thời gian thực, mang lại những cải thiện đáng kể về hiệu quả, độ 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 then chốt với 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 vào thời điểm ra mắt. Dù các model mới hơn như YOLO11 và YOLO26 đã ra mắt với nhiều cải tiến bổ sung, những đổi mới kiến trúc của YOLOv9 vẫn tiếp tụ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ề huấn luyện và suy luận YOLOv9. Để xem tài liệu đầy đủ về các nội dung này và những chế độ khác, hãy xem các trang tài liệu Dự đoán, Huấn luyện, Xác thực và Xuất.
Có thể truyền các model *.pt pretrained PyTorch cũng như các file cấu hình *.yaml vào class YOLO() để tạo một instance model trong Python:
from ultralytics import YOLO
# Tạo model YOLOv9c từ đầu
model = YOLO("yolov9c.yaml")
# Tạo model YOLOv9c từ trọng số đã huấn luyện trước
model = YOLO("yolov9c.pt")
# Hiển thị thông tin model (không bắt buộc)
model.info()
# Huấn luyện model trên dataset mẫu COCO8 trong 100 epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Chạy suy luận bằng model YOLOv9c trên ảnh 'bus.jpg'
results = model("path/to/bus.jpg")Các tác vụ và chế độ được hỗ trợ#
Dòng YOLOv9 cung cấp nhiều model, mỗi model được tối ưu hóa cho tác vụ phát hiện đối tượng hiệu năng 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, nhờ đó phù hợp với nhiều ứng dụng.
| Model | Tên tệp | Tác vụ | Huấn luyện | Validation | Suy luận | 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 đối tượng | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp tổng quan chi tiết về các biến thể model YOLOv9, nêu bật khả năng xử lý tác vụ phát hiện đối tượng và khả năng tương thích với nhiều chế độ hoạt động như Suy luận, Xác thực, Huấn luyện và Xuất. Khả năng hỗ trợ toàn diện này đảm bảo người dùng có thể tận dụng tối đa các model YOLOv9 trong nhiều tình huống phát hiện đối tượng.
Huấn luyện 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ó kích thước tương đương.
Trích dẫn và lời cảm ơn#
Chúng tôi xin ghi nhận những đóng góp đáng kể của các tác giả YOLOv9 trong lĩnh vực phát hiện đối tượng 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 bản tiền xuất bản trên arXiv. Các tác giả đã công khai công trình của mình và codebase có thể được truy cập 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.
Câu hỏi thường gặp#
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 mất thông tin trong mạng nơ-ron sâu, đảm bảo hiệu quả, độ 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 lớp 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ề những đổi mới cốt lõi của YOLOv9, giúp thiết lập các chuẩn mực mới trên bộ dữ liệu MS COCO.
YOLOv9 vượt trội hơn các bộ phát hiện đối tượng thời gian thực tiên tiến nhất nhờ đạt độ chính xác và hiệu quả cao hơn. Trên bộ dữ liệu COCO, các model YOLOv9 có điểm mAP vượt trội ở nhiều kích thước khác nhau trong khi vẫn duy trì hoặc giảm chi phí tính toán. Ví dụ, YOLOv9c đạt độ chính xác tương đương với số tham số ít hơn 42% và nhu cầu tính toán thấp hơn 21% so với YOLOv7 AF. Xem so sánh hiệu năng để biết các chỉ số chi tiết.
Bạn có thể huấn luyện model YOLOv9 bằng cả lệnh Python lẫn CLI. Với Python, khởi tạo model bằng lớp
YOLOrồi gọi phương thứctrain:from ultralytics import YOLO # Tạo model YOLOv9c từ trọng số đã huấn luyện trước và huấn luyện model model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Để huấn luyện bằng CLI, hãy chạy:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Tìm hiểu thêm về ví dụ sử dụng cho tác vụ huấn luyện và suy luận.
YOLOv9 được thiết kế để giảm thiểu tình trạng mất thông tin, điều đặc biệt quan trọng đối với các model gọn nhẹ vốn thường dễ mất lượng 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à hàm khả nghịch, YOLOv9 đảm bảo giữ lại dữ liệu thiết yếu, cải thiện độ chính xác và hiệu quả của model. Nhờ đó, YOLOv9 rất phù hợp với các ứng dụng cần model nhỏ gọn nhưng có hiệu năng cao. Để biết thêm chi tiết, hãy xem mục về tác động của YOLOv9 đến model gọn nhẹ.
YOLOv9 hỗ trợ nhiều tác vụ, bao gồm phát hiện đối tượng và phân đoạn thực thể. Model tương thích với nhiều chế độ hoạt động như suy luận, xác thực, huấn luyện và xuất. 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 thời gian thực. Tham khảo mục các tác vụ và chế độ được hỗ trợ để biết thêm thông tin.