Chuyển đến nội dung

YOLOv9: Một 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 detect đố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). Mô hình này thể hiện những cải tiến đáng kể về hiệu quả, độ 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 nhóm mã nguồn mở riêng biệt, nhưng được xây dựng dựa trên nền tảng mã nguồn mạnh mẽ do UltralyticsYOLOv5 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 | Tập dữ liệu gói công nghiệp

So sánh hiệu suất của YOLOv9

Giới thiệu về YOLOv9

Trong hành trình tìm kiếm detect đố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 để vượt qua các thách thức mất mát thông tin vốn có trong các 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ỉ nâng cao khả năng học của mô hình mà còn đảm bảo giữ lại thông tin quan trọng trong suốt quá trình detect, từ đó đạt được độ chính xác và hiệu suất vượt trội.

Những đổ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 nơ-ron sâu. Nguyên tắc Nút thắt Thông tin và việc sử dụng sáng tạo các Hàm thuận nghịch là trọng tâm trong thiết kế của nó, đảm bảo YOLOv9 duy trì hiệu quả và độ chính xác cao.

Nguyên tắc nút cổ chai thông tin

Nguyên tắc nút cổ chai thông tin tiết lộ một thách thức cơ bản trong học sâu: khi dữ liệu đi qua các lớp kế tiếp của mạng, khả năng 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à fg lần lượt đạ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 Programmable Gradient Information (PGI), giúp bảo toàn dữ liệu thiết yếu trên toàn bộ 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ụ và hiệu suất của model.

Các hàm обратимым

Khái niệm Hàm thuận 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à thuận nghịch nếu nó có thể được đảo ngược mà không mất bất kỳ thông tin nào, như được biểu thị bằng:

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 nghịch đảo của nó. Thuộc tính này rất quan trọng đối với kiến trúc học sâu kiến trúc, vì nó cho phép mạng giữ lại luồ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 mô hình. YOLOv9 tích hợp các hàm thuận 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 ở 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ụ detect đối tượng.

Tác động đối với 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 có ít tham số và dễ bị mất thông tin đáng kể trong quá trình truyền thẳng. Kiến trúc của YOLOv9, thông qua việc sử dụng PGI và các hàm thuận 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 detect đố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 để chống lại 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 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 thuận lợi cho việc cập nhật mô hình chính xác và cải thiện hiệu suất detect 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 tiến bộ kiến trúc chiến lược, cho phép YOLOv9 đạt được khả năng sử dụng tham số và hiệu quả 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 thích ứng với nhiều ứng dụng mà không làm giảm tốc độ hoặc độ chính xác.

So sánh kiến trúc YOLOv9

Điểm chuẩn của YOLOv9

Đánh giá hiệu năng trong YOLOv9 bằng cách sử dụng Ultralytics bao gồm việc đánh giá hiệu suất của mô hình đã được huấn luyện và kiểm định trong các tình huống 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 các 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 thuận lợi 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 đánh giá hiệu năng, 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 thử nghiệm có kiểm soát mà còn duy trì hiệu suất cao trong các ứng dụng thực tế.



Xem: Cách đánh giá hiệu năng mô hình YOLOv9 bằng gói Python của Ultralytics

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 họa những tiến bộ đáng kể của nó trong phát hiệ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 mô hình khác nhau. Bảng 1 trình bày một 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, minh họa hiệu quả vượt trội và độ chính xác của YOLOv9.

Hiệu suất

Mô hìnhKích thước
(pixels)
mAPval
50-95
mAPval
50
Tham số
(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
Mô hìnhKích thước
(pixels)
mAPbox
50-95
mAPmask
50-95
Tham số
(M)
FLOPs
(B)
YOLOv9c-seg64052.442.227.9159.4
YOLOv9e-seg64055.144.360.5248.4

Các phiên bản của YOLOv9, từ mô hình nhỏ nhất t đến phiên bản mở rộng e mô hình, không chỉ thể hiện sự cải thiện về độ chính xác (các chỉ số mAP) mà còn về hiệu quả với số lượng tham số và yêu cầu tính toán (FLOPs) giảm. Bảng này nhấn mạnh khả năng của YOLOv9 trong việc mang lại hiệu suất cao độ chính xác 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 mô hình cạnh tranh.

So sánh, YOLOv9 thể hiện những cải tiến đáng kể:

  • Mô hình 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 cải thiện 0.4∼0.6% về AP.
  • Các Mô Hình Vừa đến Lớn: YOLOv9m và YOLOv9e cho thấy những tiến bộ đáng chú ý trong việc cân bằng giữa độ phức tạp của mô hình và hiệu suất phát hiện, mang lại sự giảm đáng kể về số lượng tham số và tính toán so với bối cảnh độ chính xác được cải thiện.

Đặ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à giảm 21% yêu cầu tính toán so với YOLOv7 AF, nhưng vẫn đạt độ chính xác tương đương, chứng tỏ những cải tiến đáng kể về hiệu quả 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à giảm 25% yêu cầu tính toán so với YOLOv8x, cùng với mức cải thiện 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 quả nâng cao mà không ảnh hưởng đến độ 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. Mô hình không chỉ vượt qua 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, khiến 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

YOLOv9, ra mắt vào tháng 2 năm 2024, đại diện cho một bước phát triển then chốt trong detect đối tượng thời gian thực, mang lại những cải tiế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 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 tiêu 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ư YOLO11YOLO26 đã được phát hành với những cải tiến bổ sung, nhưng 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. Để có 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 Dự đoán, Huấn luyện, Xác thựcXuất.

Ví dụ

PyTorch đã được huấn luyện trước *.pt các mô hình cũng như cấu hình *.yaml các tệp có thể được chuyển đến YOLO() class để tạo một thể hiện mô hình 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 lệnh CLI có sẵn để chạy trực tiếp các mô hình:

# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=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 mô hình, mỗi mô hình được tối ưu hóa cho tác vụ Phát hiệ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, khiến chúng trở nên linh hoạt cho nhiều ứng dụng.

Mô hìnhTên tập tinNhiệm vụSuy luậnXác thựcHuấn luyệnXuất
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 thự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ể mô hình 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 chế độ vận hành khác nhau như Suy luận (Inference), Kiểm định (Validation), Huấn luyện (Training)Xuất (Export). 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 phát hiện đối tượng.

Lưu ý

Huấn luyện các mô hình YOLOv9 sẽ yêu cầu nhiều tài nguyên mất nhiều thời gian hơn so với mô hình 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 các tác giả YOLOv9 vì những đóng góp đáng kể của họ trong lĩnh vực phát hiệ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 công trình của mình và mã nguồn có thể được truy cập trên GitHub. Chúng tôi đánh giá cao 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 công trình của họ.

Câu hỏi thường gặp

YOLOv9 giới thiệu những đổi mới nào cho detect đối tượng thời gian thực?

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 mát thông tin trong mạng nơ-ron sâu, đảm bảo hiệu quả cao, độ chính xác và khả năng thích ứng. 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 đã 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 mô hình khác?

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 bằng cách đạt được độ chính xác và hiệu quả 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 khác nhau, đồng thời 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à giảm 21% yêu cầu tính toán 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ô 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, khởi tạo một mô hình bằng cách sử dụng YOLO class và gọi train phương thức:

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 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ề các ví dụ sử dụng để huấn luyện và suy luận.

Những lợi thế khi 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 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 thuận nghịch, YOLOv9 đảm bảo giữ lại dữ liệu thiết yếu, nâng cao độ chính xác và hiệu quả của mô hình. Điều này làm cho nó rất phù hợp cho các ứng dụng yêu cầu 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 đối với các mô hình nhẹ.

YOLOv9 hỗ trợ những tác vụ và chế độ nào?

YOLOv9 hỗ trợ nhiều tác vụ khác nhau bao gồm phát hiệ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ư suy luận, kiểm định, huấn luyện và xuất. Sự 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 đ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.



📅 Được tạo 1 năm trước ✍️ Cập nhật 5 ngày trước
glenn-jocherRizwanMunawarBurhan-QY-T-Gambitious-octopusLaughing-qpderrengerMatthewNoyceUltralyticsAssistant

Bình luận