Link to this sectionYOLOv9: Một bước tiến 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 theo 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). Mô hình này thể hiện 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ở riêng biệt, được xây dựng dựa trên nền tảng mã nguồn vững chắc 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

Link to this sectionGiới thiệu về YOLOv9#
Trong nỗ lực tìm kiếm giải pháp nhận diện đối tượng theo 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 vượt qua các 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 tập của mô hình mà còn đảm bảo việc lưu giữ thông tin quan trọng trong suốt quá trình nhận diện, từ đó đạt được độ chính xác và hiệu năng vượt trội.
Link to this sectionCác đổi mới cốt lõi của YOLOv9#
Những tiến bộ 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ý Nút thắt Thông tin (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 nó, đảm bảo YOLOv9 duy trì hiệu suất và độ chính xác cao.
Link to this sectionNguyên lý Nút thắt Thông tin#
Nguyên lý Nút thắt Thông tin 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 lưới, 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 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ỗ, và f cùng g đại diện cho các hàm chuyển đổi với tham số tương ứng 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), giúp bảo toàn dữ liệu thiết yếu xuyên suốt độ sâu của mạng lưới, đảm bảo việc tạo gradient đáng tin cậy hơn và do đó, giúp mô hình hội tụ và đạt hiệu suất tốt hơn.
Link to this sectionCác hàm khả nghịch#
Khái niệm về các 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 làm mất thông tin, được biểu diễn như sau:
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 lưới 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 mô hình một cách 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 rủi ro 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.
Link to this sectionTác động đến các mô hình nhẹ#
Giải quyết mất mát thông tin đặc biệt quan trọng đối với các mô hình nhẹ, vốn thường thiếu tham số và dễ bị 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 mô hình tinh gọn, 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ả.
Link to this sectionProgrammable Gradient Information (PGI)#
PGI là một khái niệm mới được giới thiệu trong YOLOv9 để 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 xuyên suốt 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 mô hình chính xác và cải thiện hiệu suất nhận diện tổng thể.
Link to this sectionGeneralized 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 tận dụng tham số và hiệu suất tính toán vượt trội. Thiết kế của nó cho phép tích hợp linh hoạt các khối tính toán khác nhau, giúp YOLOv9 có khả năng thích ứng với nhiều ứng dụng mà không cần hy sinh tốc độ hoặc độ chính xác.

Link to this sectionCác điểm chuẩn (Benchmarks) của YOLOv9#
Việc benchmark trong YOLOv9 sử dụng Ultralytics bao gồm việc đánh giá hiệu suất của model đã được huấn luyện và kiểm định của bạn 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 mô hình.
- Định dạng xuất: Kiểm tra mô hình 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 để tạo điều kiện cho 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 đo điểm chuẩn, bạn có thể đảm bảo rằng mô hình của mình không chỉ hoạt động tốt trong môi trường kiểm tra đượ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
Link to this sectionHiệ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 việc nhận diện đối tượng theo thời gian thực, thiết lập các điểm chuẩn mới trên các kích thước mô hình khác nhau. Bảng 1 trình bày một sự so sánh toàn diện về các bộ nhận diện đối tượng theo thời gian thực tiên tiến nhất, minh họa cho hiệu suất và độ chính xác vượt trội của YOLOv9.
Các phiên bản của YOLOv9, từ biến thể t siêu nhỏ đến mô hình e lớn, thể hiện 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ố giảm và nhu cầu tính toán (FLOPs) thấp hơn. 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 bớt chi phí tính toán so với các phiên bản trước đó và các mô hình cạnh tranh.
So sánh lại, YOLOv9 cho thấy những bước tiến đáng kể:
- Mô hình nhẹ: YOLOv9s vượt qua YOLO MS-S về hiệu quả tham số và tải trọng tính toán, đồng thời đạt được sự cải thiện 0.4∼0.6% về AP.
- Mô hình trung bình đến lớn: YOLOv9m và YOLOv9e cho thấy những tiến bộ đáng chú ý trong việc cân bằng sự đánh đổi giữa độ phức tạp của mô hình và hiệu suất nhận diện, mang lại sự cắt giảm đáng kể về tham số và tính toán so với sự cải thiện về độ chính xác.
Đặc biệt, mô hình YOLOv9c 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 ít hơn 42% tham số và nhu cầu tính toán thấp hơn 21% so với YOLOv7 AF, nhưng đạt được độ chính xác tương đương, minh chứng cho những cải tiến hiệu suất đáng kể của YOLOv9. Hơn nữa, mô hình YOLOv9e thiết lập một tiêu chuẩn mới cho các mô hình lớn, với ít hơn 15% tham số và nhu cầu tính toán thấp hơn 25% so với YOLOv8x, cùng với mức tăng thêm 1.7% về AP.
Những kết quả này cho thấy những tiến bộ chiến lược của YOLOv9 trong thiết kế mô hình, nhấn mạnh hiệu suất nâng cao mà không làm giảm độ chính xác cần thiết cho các tác vụ nhận diện đối tượng theo thời gian thực. Mô hình không chỉ đẩy lùi các giới hạn về 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, biến nó thành một sự phát triển then chốt trong lĩnh vực thị giác máy tính.
Link to this sectionKết luận#
YOLOv9, được phát hành vào tháng 2 năm 2024, đại diện cho một bước phát triển then chốt trong nhận diện đối tượng theo 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 điểm chuẩn mới tại thời điểm ra mắt. Mặc dù các mô hình mới hơn như YOLO11 và YOLO26 đã được phát hành với những cải tiến bổ sung, nhưng các đổi mới về kiến trúc của YOLOv9 vẫn tiếp tục ảnh hưởng đến lĩnh vực này.
Link to this sectionVí dụ Sử dụng#
Ví dụ này cung cấp các ví dụ đơn giản về huấn luyện và dự đoán (inference) với YOLOv9. Để xem tài liệu đầy đủ về các ví dụ 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")Link to this sectionCác tác vụ và chế độ được hỗ trợ#
Dòng sản phẩm YOLOv9 cung cấp một loạt các mô hình, mỗi mô hình được tối ưu hóa cho Nhận diện đối tượng hiệu suất cao. Các mô hình này đáp ứng 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 nhiều ứng dụng.
| Mô hình | Tên tệp | Tác vụ | Suy luận | Validation | Huấn luyện | Xuất (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 cái nhìn tổng quan chi tiết về các biến thể mô hình 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 nhiều chế độ vận hành như Dự đoán, Xác thực, Huấn luyện, và Xuất. Sự hỗ trợ toàn diện này đảm bảo rằng người dùng có thể tận dụng tối đa khả năng của các mô hình YOLOv9 trong nhiều tình huống nhận diện đối tượng.
Việc huấn luyện các mô hình 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 mô hình YOLOv8 có kích thước tương đương.
Link to this sectionTrích dẫn và Ghi nhận#
Chúng tôi muốn gửi lời cảm ơn đến các tác giả của YOLOv9 vì những đóng góp quan trọng của họ trong lĩnh vực nhận diệ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 chính thức về YOLOv9 đã được xuất bản trong Springer ECCV 2024 proceedings, với bản preprint trên arXiv. Các tác giả đã công khai công trình 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à giúp cho công trình của họ dễ dàng tiếp cận với cộng đồng rộng lớn hơn.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionYOLOv9 giới thiệu những đổi mới gì cho nhận diện đối tượng theo 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 tận dụng tham số và hiệu suất 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 điểm chuẩn mới trên tập dữ liệu MS COCO.
Link to this sectionYOLOv9 hoạt động như thế nào trên tập dữ liệu MS COCO so với các mô hình khác?#
YOLOv9 vượt trội hơn các bộ 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 mô hình YOLOv9 thể hiện điểm mAP vượt trội trên nhiều kích thước 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 ít hơn 42% tham số và nhu cầu tính toán thấp hơn 21% so với YOLOv7 AF. Khám phá so sánh hiệu năng để biết các số liệu chi tiết.
Link to this sectionLàm thế nào để tôi có thể huấn luyện một mô hình YOLOv9 bằng Python và CLI?#
Bạn có thể huấn luyện một mô hình YOLOv9 bằng cả lệnh Python và CLI. Đối với Python, hãy khởi tạo một mô hình bằ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)Để 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ề các ví dụ sử dụng để huấn luyện và dự đoán.
Link to this sectionƯu điểm của việc sử dụng Ultralytics YOLOv9 cho các mô hình nhẹ là gì?#
YOLOv9 được thiết kế để giảm thiểu mất mát thông tin, điều này đặc biệt quan trọng đối với các mô hình nhẹ thường dễ bị mất dữ liệu đá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 lưu giữ dữ liệu thiết yếu, nâng cao độ chính xác và hiệu suất của mô hình. Điều này làm cho nó rất phù hợp cho các ứng dụng đòi hỏi các mô hình 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 đến các mô hình nhẹ.
Link to this sectionYOLOv9 hỗ trợ các tác vụ và chế độ nào?#
YOLOv9 hỗ trợ nhiều tác vụ bao gồm nhận diện đối tượng và phân đoạn thực thể. Nó tương thích với nhiều chế độ vận hành như dự đoán, xác thực, huấn luyện và xuất. Sự linh hoạt này giúp YOLOv9 thích ứng với các ứng dụng thị giác máy tính thời gian thực đa dạng. Tham khảo phần các tác vụ và chế độ được hỗ trợ để biết thêm thông tin.