YOLO Vision 2026:

YOLOv9: Bước nhảy vọt trong công nghệ Object Detection#

YOLOv9 đánh dấu một bước tiến đáng kể trong việ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 Lập trình được (PGI) và Mạng Tổng hợp Lớp Hiệu quả Tổng quát (GELAN). Model này thể hiện những cải tiến đáng chú ý 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, mặc dù được phát triển bởi một nhóm mã nguồn mở riêng biệt, nhưng được xây dựng dựa trên cơ sở 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

YOLOv9 performance comparison

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 cách tiếp cận đổi mới nhằm vượt qua các thách thức mất mát thông tin vốn có trong các neural networks 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 năng lực 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, từ đó đạ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 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.

Nguyê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 hỗ trợ lẫn nhau, và f cùng g đại diện cho các hàm biến đổi với các tham số thetaphi tương ứng. YOLOv9 giải quyết thách thức này bằng cách triển khai Thông tin Gradient Lập trình được (PGI), giúp bảo tồn dữ liệu thiết yếu xuyên suốt độ sâu của mạng, đảm bảo việc 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.

Cá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 psizeta lần lượt là các tham số cho hàm khả nghịch và hàm ngược của nó. Thuộ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 giữ lại dòng thông tin hoàn chỉnh, từ đó cho phép cập nhật chính xác hơn các tham số của model. YOLOv9 tích hợp các hàm khả nghịch trong 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 tầng sâu hơn, đảm bảo bảo tồ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 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ả.

Programmable 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ể.

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 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.

YOLOv9 architecture comparison

Các điểm chuẩn (Benchmarks) của YOLOv9#

Việc đánh giá chuẩn (benchmarking) trong YOLOv9 bằng cách sử dụng Ultralytics liên quan đến việc đánh giá hiệu suất của model đã được 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 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

Hiệu suất trên tập dữ liệu MS COCO#

Hiệu suất của YOLOv9 trên COCO dataset minh họa cho những tiến bộ đáng kể của nó trong việ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 các 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 bộ dò tìm đối tượng thời gian thực tiên tiến, minh họa hiệu suất vượt trội và accuracy của YOLOv9.

Hiệu suất
Mô hìnhkích thước
(pixel)
mAPval
50-95
mAPval
50
params
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5

Các phiên bản của YOLOv9, từ biến thể nhỏ t đến model lớn e, 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 quả với số lượng tham số và nhu cầu tính toán giảm đi (FLOPs). Bảng này nhấn mạnh khả năng của YOLOv9 trong việc mang lại precision 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 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ụ thể, model YOLOv9c làm nổi bật tính 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 lại đạt được độ chính xác tương đương, minh họa 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 ít hơn 15% tham số và nhu cầu tính toán thấp hơn 25% so với YOLOv8x, đi kèm với mức cải thiện AP tăng thêm 1,7%.

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ế model, nhấn mạnh hiệu suất nâng cao mà không làm giảm độ chính xác thiết yếu cho các tác vụ phát hiện đối tượng thời gian thực. Model này không chỉ đẩy lùi các 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, biến nó thành một cột mốc phát triển quan trọng 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, là một cột mốc phát triển quan trọng trong việc phát hiệ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 đổ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 phát hành. Mặc dù các model mới hơn như YOLO11YOLO26 kể từ đó đã được phát hành với các cải tiến bổ sung, những đổ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.

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 với YOLOv9. Để xem toàn bộ tài liệu về các modes này và các chế độ khác, hãy xem các trang tài liệu Predict, Train, ValExport.

Ví dụ

Các model *.pt được huấn luyện trước bằng PyTorch cũng như các file 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 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 Object Detection hiệu suất cao. Các model 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, giúp chúng trở nên linh hoạt cho một loạt các ứng dụng.

Mô hìnhTên tệpTác vụHuấn luyệnValidationSuy luậnXuất (Export)
YOLOv9yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.ptPhát hiện đối tượng
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptPhân đoạn Cá thể

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, nêu 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 các chế độ hoạt động khác nhau như Inference, Validation, TrainingExport. Hỗ trợ toàn diện này đảm bảo rằng người dùng có thể tận dụng triệt để các khả năng của model YOLOv9 trong một loạt các kịch bản phát hiện đối tượng.

Lưu ý

Huấn luyện các model YOLOv9 sẽ đòi hỏi nhiều tài nguyên hơn mất nhiều thời gian hơn so với YOLOv8 model có kích thước tương đương.

Trí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:

Trích dẫn
@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 nghiên cứu chính thức về YOLOv9 đã được xuất bản trong Springer ECCV 2024 proceedings, với bản in trước (preprint) trên arXiv. Các tác giả đã công khai công sức nghiên cứu của họ và có thể truy cập mã nguồn trên GitHub. Chúng tôi đánh giá cao 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ọ có thể tiếp cận được với cộng đồng rộng lớn hơn.

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 Lập trình được (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 mát thông tin trong deep neural networks, đảm bảo hiệu suất, độ chính xác và khả năng thích ứng cao. PGI bảo tồn dữ liệu thiết yếu qua các tầng 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ề YOLOv9's core innovations đã thiết lập các chuẩn mực mới trên dataset 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 bằng cách đạt được độ chính xác và hiệu suất cao hơn. Trên COCO dataset, các model YOLOv9 thể hiện điểm số mAP vượt trội ở các 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 í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á performance comparisons để biết các metric chi tiết.

  • Bạn có thể huấn luyện một model YOLOv9 bằng cả lệnh Python và CLI. Đối với Python, hãy khởi tạo một model bằng cách sử dụng class 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=640

    Tìm hiểu thêm về usage examples cho việc 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 này đặc biệt quan trọng đối với các model gọn nhẹ vốn dễ bị mất nhiều thông tin. Bằng cách tích hợp Thông tin Gradient Lập trình được (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 đòi hỏi 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ề YOLOv9's impact on lightweight models.

  • YOLOv9 hỗ trợ nhiều tác vụ khác nhau bao gồm phát hiện đối tượng và instance segmentation. Nó 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 các ứng dụng computer vision thời gian thực đa dạng. Tham khảo phần supported tasks and modes để biết thêm thông tin.

Bình luận