YOLOv9: Một bước tiến nhảy vọt trong công nghệ Nhận diện đối tượng
YOLOv9 đánh dấu một bước tiến quan trọng trong nhận diện đối tượng thời gian thực, giới thiệu các kỹ thuật đột phá như Programmable Gradient Information (PGI) và Generalized Efficient Layer Aggregation Network (GELAN). Model này chứng minh những cải tiến đáng kể về hiệu suất, độ chính xác và khả năng thích ứng, thiết lập các tiêu chuẩn mới trên tập dữ liệu MS COCO. Dự án YOLOv9, mặc dù được phát triển bởi một đội ngũ mã nguồn mở độc lập, được xây dựng dựa trên nền tảng mã nguồn 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.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Giới thiệu về YOLOv9
Trong cuộc đua hướng tới nhận diện đối tượng thời gian thực tối ưu, YOLOv9 nổi bật với cách tiếp cận sáng tạo nhằm khắc phục những thách thức về mất mát thông tin vốn có trong các mạng thần kinh 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 việc duy trì thông tin quan trọng trong suốt quá trình phát hiện, từ đó đạt được độ chính xác và hiệu suất vượt trội.
Những cải tiến 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 mát thông tin trong các mạng thần kinh sâu. Nguyên lý Thông tin Nút thắt (Information Bottleneck Principle) và việc sử dụng sáng tạo các Hàm Khả nghịch (Reversible Functions) là trọng tâm trong thiết kế của model, đảm bảo YOLOv9 duy trì được hiệu suất và độ chính xác cao.
Nguyên lý Thông tin Nút thắt
Nguyên lý Thông tin Nút thắt tiết lộ một thách thức cơ bản trong deep learning: khi dữ liệu đi qua các lớp liên tiếp của một mạng, khả năng mất mát thông tin sẽ tăng lên. Hiện tượng này được biểu diễn 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ỗ (mutual information), và f cùng g đại diện cho các hàm biến đổi với tham số lần lượt là theta và phi. YOLOv9 giải quyết thách thức này bằng cách triển khai Programmable Gradient Information (PGI), hỗ trợ bảo toàn dữ liệu thiết yếu xuyên suốt độ sâu của mạng, đảm bảo tạo gradient đáng tin cậy hơn và do đó, giúp model hội tụ và đạt hiệu suất tốt hơn.
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 coi là khả nghịch nếu nó có thể được đảo ngược mà không mất mát bất kỳ thông tin nào, như được biểu diễn bởi:
X = v_zeta(r_psi(X))với psi và zeta lần lượt là các tham số cho hàm khả nghịch và hàm nghịch đảo của nó. Đặc tính này rất quan trọng đối với các kiến trúc deep learning, vì nó cho phép mạng duy trì luồng thông tin hoàn chỉnh, từ đó cho phép 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 của mình để giảm thiểu nguy cơ suy giảm thông tin, đặc biệt là ở các lớp sâu hơn, đảm bảo việc bảo toàn dữ liệu quan trọng cho các tác vụ nhận diện đối tượng.
Tác động đối với các model gọn nhẹ
Việc giải quyết tình trạng mất mát thông tin đặc biệt quan trọng đối với các model gọn nhẹ, vốn thường bị thiếu tham số và dễ mất thông tin đáng kể trong quá trình truyền tiến (feedforward). Kiến trúc của YOLOv9, thông qua việc sử dụng PGI và các hàm khả nghịch, đảm bảo rằng ngay cả với một model được tinh giản, những thông tin thiết yếu cần thiết cho việc nhận diện đối tượng chính xác vẫn được giữ lại và sử dụng hiệu quả.
Programmable Gradient Information (PGI)
PGI là một khái niệm mới được giới thiệu trong YOLOv9 nhằm chống lại vấn đề nút thắt thông tin, đảm bảo việc bảo toàn dữ liệu thiết yếu qua các lớp mạng sâu. Điều này cho phép tạo ra các gradient đáng tin cậy, tạo điều kiện cho việc 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ể.
Generalized Efficient Layer Aggregation Network (GELAN)
GELAN đại diện cho một bước tiến chiến lược về kiến trúc, cho phép YOLOv9 đạt được khả năng sử dụng tham số vượt trội và hiệu quả tính toán cao. Thiết kế của nó cho phép tích hợp linh hoạt nhiều khối tính toán khác nhau, giúp YOLOv9 thích ứng với phạm vi ứng dụng rộng lớn mà không làm giảm tốc độ hoặc độ chính xác.

Các benchmark của YOLOv9
Benchmarking trong YOLOv9 sử dụng Ultralytics bao gồm việc đánh giá hiệu suất của model đã huấn luyện và xác thực của bạn trong các kịch bản thực tế. Quá 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 xuất (Export Formats): Thử nghiệm model trên các định dạng xuất khác nhau để đảm bảo nó đá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 khác nhau.
- Hỗ trợ Framework: Cung cấp một framework toàn diện trong Ultralytics YOLOv8 để hỗ trợ các đánh giá này và đảm bảo kết quả nhất quán và đáng tin cậy.
Bằng cách thực hiện benchmarking, bạn có thể đảm bảo rằng model của mình không chỉ hoạt động tốt trong các 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 tập dữ liệu MS COCO
Hiệu suất của YOLOv9 trên tập dữ liệu COCO minh chứng cho những tiến bộ đáng kể của nó trong nhận diện đối tượng thời gian thực, thiết lập các tiêu chuẩn mới trên nhiều kích thước model khác nhau. Bảng 1 trình bày sự so sánh toàn diện về các trình nhận diện đối tượng thời gian thực hiện đại, minh họa hiệu suất vượt trội và độ chính xác của YOLOv9.
Các phiên bản của YOLOv9, từ biến thể t siêu nhỏ đến model e lớn, cho thấy những cải tiến không chỉ về độ chính xác (các chỉ số mAP) mà còn về hiệu suất với số lượng tham số và nhu cầu tính toán (FLOPs) giảm đi. Bảng này nhấn mạnh khả năng của YOLOv9 trong việc mang lại độ chính xác cao 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à các model cạnh tranh.
So sánh lại, YOLOv9 thể hiện những bước tiến đáng kể:
- Các 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 đạt được sự cải thiện 0.4∼0.6% về AP.
- Các Model Trung bình đến Lớn: YOLOv9m và YOLOv9e cho thấy những bước tiến đáng chú ý 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, mang lại sự giảm đáng kể về tham số và tính toán trên nền tảng độ chính xác được cải thiện.
Model YOLOv9c, đặc biệt, làm nổi bật hiệu quả của các tối ưu hóa kiến trúc. Nó hoạt động với số lượng tham số ít hơn 42% và nhu cầu tính toán ít hơn 21% so với YOLOv7 AF, nhưng đạt được độ chính xác tương đương, chứng minh cho những cải tiến hiệu suất đáng kể của YOLOv9. Hơn nữa, model YOLOv9e thiết lập một tiêu chuẩn mới cho các model lớn, với số lượng tham số ít hơn 15% và nhu cầu tính toán ít hơn 25% so với YOLOv8x, cùng với sự cải thiện gia tăng 1.7% về AP.
Những kết quả này giới thiệu các bước tiến chiến lược của YOLOv9 trong thiết kế model, nhấn mạnh hiệu suất được nâng cao mà không làm ảnh hưởng đến độ chính xác cần thiết cho các tác vụ nhận diện đối tượng thời gian thực. Model không chỉ vượt qua giới hạn của các chỉ số 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, trở thành một sự phát triển then chốt trong lĩnh vực computer vision.
Kết luận
YOLOv9, được phát hành vào tháng 2 năm 2024, đại diện cho một sự phát triển then chốt trong nhận diện đối tượng thời gian thực, mang lại những cải tiế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 các giải pháp sáng tạo như PGI và GELAN, YOLOv9 đã thiết lập các tiêu chuẩn 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 với những cải tiến bổ sung, các cải tiến về 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ụ huấn luyện và inference đơn giản với YOLOv9. Để xem tài liệu đầy đủ về các chế độ này và các chế độ khác, hãy xem các trang tài liệu Predict, Train, Val và Export.
PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in 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 tác vụ và chế độ được hỗ trợ
Dòng YOLOv9 cung cấp một loạt các model, mỗi model được tối ưu hóa cho Nhận diện đối tượng hiệu suất cao. Các model này phục vụ cho các nhu cầu tính toán và yêu cầu độ chính xác khác nhau, làm cho chúng trở nên linh hoạt cho một loạt các ứng dụng.
| Model | Tên tệp | Tác vụ | Inference | Validation | Training | Export |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Phát hiện đối tượng (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Instance Segmentation | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp cái nhìn 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ụ nhận diện đối tượng và khả năng tương thích với các chế độ vận hành khác nhau như Inference, Validation, Training và Export. Hỗ trợ toàn diện này đảm bảo rằng người dùng có thể khai thác tối đa khả năng của các model YOLOv9 trong một phạm vi rộng lớn các kịch bản nhận diện đối tượng.
Việc huấn luyện các model YOLOv9 sẽ yêu cầu nhiều tài nguyên hơn và mất nhiều thời gian hơn so với model YOLOv8 cùng kích thước.
Trích dẫn và Ghi nhận
Chúng tôi muốn ghi nhận các tác giả của YOLOv9 vì những đóng góp đáng kể của họ trong lĩnh vực nhận diện đối tượng thời gian thực:
@article{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Liao, Hong-Yuan Mark},
booktitle={arXiv preprint arXiv:2402.13616},
year={2024}
}Bài báo gốc về YOLOv9 có thể được tìm thấy trên arXiv. Các tác giả đã công khai nghiên cứu của họ 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à làm cho công trình của họ trở nên dễ tiếp cận đối với cộng đồng rộng lớn hơn.
Câu hỏi thường gặp (FAQ)
YOLOv9 giới thiệu những đổi mới nào cho nhận diện đối tượng thời gian thực?
YOLOv9 giới thiệu các kỹ thuật đột phá như Programmable Gradient Information (PGI) và Generalized Efficient Layer Aggregation Network (GELAN). Những đổi mới này giải quyết các thách thức về mất mát thông tin trong các mạng thần kinh 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 xuyên suốt 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ề các đổi mới cốt lõi của YOLOv9 đã thiết lập các tiêu chuẩn mới trên tập dữ liệu MS COCO.
YOLOv9 hoạt động như thế nào trên tập dữ liệu MS COCO so với các model khác?
YOLOv9 vượt trội hơn các trình nhận diện đối tượng thời gian thực hiện đại bằng cách đạt được độ chính xác và hiệu suất cao hơn. Trên tập dữ liệu COCO, các model YOLOv9 thể hiện điểm số mAP vượt trội trên 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 được độ chính xác tương đương với ít tham số hơn 42% và nhu cầu tính toán ít hơn 21% so với YOLOv7 AF. Khám phá so sánh hiệu suất để biết các chỉ số chi tiết.
Làm thế nào để tôi có thể huấn luyện một model YOLOv9 bằng Python và CLI?
Bạn có thể huấn luyện model YOLOv9 bằng cả lệnh Python và CLI. Đối với Python, khởi tạo một model sử dụng lớp YOLO và gọi phương thức train:
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)Đối với huấn luyện qua CLI, hãy thực thi:
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Tìm hiểu thêm về ví dụ sử dụng cho huấn luyện và inference.
Những lợi ích của việc sử dụng Ultralytics YOLOv9 cho các model gọn nhẹ là gì?
YOLOv9 được thiết kế để giảm thiểu mất 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 bị mất nhiều thông tin đáng kể. Bằng cách tích hợp Programmable Gradient Information (PGI) và các hàm khả nghịch, YOLOv9 đảm bảo việc giữ lại 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 làm cho nó rất phù hợp cho các ứng dụng yêu cầu model nhỏ gọn với hiệu suất cao. Để biết thêm chi tiết, hãy khám phá phần về tác động của YOLOv9 đối với các model gọn nhẹ.
YOLOv9 hỗ trợ các tác vụ và chế độ nào?
YOLOv9 hỗ trợ các tác vụ khác nhau bao gồm nhận diện đối tượng và instance segmentation. Nó tương thích với nhiều chế độ vận hành như inference, validation, training và export. Sự linh hoạt này giúp YOLOv9 thích ứng với các ứng dụng computer vision thời gian thực đa dạng. Hãy tham khảo phần các tác vụ và chế độ được hỗ trợ để biết thêm thông tin.