Bỏ qua 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 bước tiến đáng kể trong việc phát hiệ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 chứng minh 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 chuẩn mực 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 nguồn mở riêng biệt, nhưng được xây dựng dựa trên cơ sở mã mạnh mẽ 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.



Đồng hồ: Đào tạo YOLOv9 về Dữ liệu tùy chỉnh bằng cách sử dụng Ultralytics | Bộ dữ liệu gói công nghiệp

So sánh hiệu suất YOLOv9

Giới thiệu về YOLOv9

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

Những cải tiến 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 những thách thức do mất thông tin trong mạng nơ-ron sâu gây ra. Nguyên tắc thắt nút thông tin và việc sử dụng sáng tạo các hàm có thể đảo ngược 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 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ơ 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, khả năng mất thông tin tăng lên. Hiện tượng này được biểu diễn về mặt toán học như sau:

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

Ở đâu I biểu thị thông tin lẫn nhau, và fg biểu diễn các hàm biến đổi với các tham số thetaphi, tương ứng. 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), hỗ trợ bảo toàn dữ liệu cần thiết 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 đó, hiệu suất và sự hội tụ của mô hình tốt hơn.

Các hàm đảo ngược

Khái niệm về hàm có thể đảo ngược là một nền tảng khác của thiết kế YOLOv9. Một hàm được coi là có thể đảo ngược nếu nó có thể được đảo ngược mà không mất bất kỳ thông tin nào, như được thể hiện bởi:

X = v_zeta(r_psi(X))

với psizeta như các tham số cho hàm đảo ngược và hàm nghịch đảo của nó, tương ứng. Thuộc tính này rất quan trọng đối với 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, do đó cho phép cập nhật chính xác hơn các tham số của mô hình. YOLOv9 kết hợp các hàm có thể đảo ngược trong kiến trúc của nó để giảm thiểu rủi ro suy thoái thông tin, đặc biệt là ở 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 các mô hình nhẹ

Việc xử lý tình trạng mất thông tin đặc biệt quan trọng đối với các mô hình nhẹ, thường được tham số hóa không đầy đủ và dễ bị mất thông tin quan trọng trong quá trình truyền tiếp. Kiến trúc của YOLOv9, thông qua việc sử dụng PGI và các hàm có thể đảo ngược, đảm bảo rằng ngay cả với một mô hình hợp lý, thông tin cần thiết để 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 để giải quyết vấn đề tắc nghẽn thông tin, đảm bảo bảo toàn dữ liệu cần thiết trên 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 cập nhật mô hình chính xác và cải thiện hiệu suất phát hiện 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 hiệu quả sử dụng tham số và 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ó thể thích ứng với nhiều ứng dụng mà không ảnh hưởng đến tốc độ hoặc độ chính xác.

So sánh kiến trúc YOLOv9

Điểm chuẩn YOLOv9

Đánh giá chuẩn trong YOLOv9 bằng Ultralytics bao gồm việc đánh giá hiệu suất của mô hình đã được đào tạo và xác thực 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 nhiều định dạng xuất khác nhau để đảm bảo mô hình đá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ợ khung: Cung cấp một khung toàn diện trong Ultralytics YOLOv8 để tạo điều kiện cho những đá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á 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 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ế.



Đồng hồ: Làm thế nào để đánh giá chuẩn mô hình YOLOv9 bằng cách sử dụng Ultralytics Python Bưu kiện

Hiệu suất trên Bộ dữ liệu MS COCO

Hiệu suất của YOLOv9 trên tập dữ liệu COCO minh họa cho những tiến bộ đáng kể của nó trong việc phát hiện đối tượng theo 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 mô hình khác nhau. Bảng 1 trình bày so sánh toàn diện về các máy dò đối tượng theo thời gian thực hiện đại, minh họa hiệu quả và độ chính xác vượt trội của YOLOv9.

Bảng 1. So sánh các máy dò đối tượng thời gian thực hiện đại

Hiệu suất

Người mẫu kích cỡ
(điểm ảnh)
giá trị mAP
50-95
giá trị mAP
50
tham số
(Nam)
Thất bại
(B)
YOLOv9t 640 38.3 53.1 2.0 7.7
YOLOv9s 640 46.8 63.4 7.2 26.7
YOLOv9m 640 51.4 68.1 20.1 76.8
YOLOv9c 640 53.0 70.2 25.5 102.8
YOLOv9e 640 55.6 72.8 58.1 192.5
Người mẫu kích cỡ
(điểm ảnh)
hộp mAP
50-95
mặt nạ mAP
50-95
tham số
(Nam)
Thất bại
(B)
YOLOv9c-phân đoạn 640 52.4 42.2 27.9 159.4
YOLOv9e-phân đoạn 640 55.1 44.3 60.5 248.4

Các phiên bản của YOLOv9, từ những phiên bản nhỏ t biến thể của sự mở rộng e mô hình, chứng minh những cải tiến không chỉ về độ chính xác (số liệu 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 (FLOP). Bảng này nhấn mạnh khả năng cung cấp hiệu suất cao của YOLOv9 độ 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 thì YOLOv9 cho thấy những cải tiến đáng kể:

  • Các mẫu nhẹ : YOLOv9s vượt trội hơn YOLO MS-S về hiệu quả tham số và tải tính toán trong khi đạt được mức cải thiện 0,4∼0,6% trong AP.
  • Các mô hình từ trung bình đến lớn : YOLOv9m và YOLOv9e cho thấy những tiến bộ đáng kể 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 phát hiện, mang lại khả năng giảm đáng kể các tham số và phép tính trong bối cảnh độ chính xác được cải thiện.

Mô hình YOLOv9c, nói riêng, 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à ít hơn 21% nhu cầu tính toán so với YOLOv7 AF, nhưng vẫn đạt được độ chính xác tương đương, chứng minh những cải tiến hiệu quả đáng kể của YOLOv9. Hơn nữa, mô hình YOLOv9e đặt ra 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à ít hơn 25% nhu cầu tính toán so với YOLOv8x , cùng với cải tiến gia tăng 1,7% trong 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 của nó 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 theo thời gian thực. Mô hình không chỉ đẩy ranh giới của số liệu 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 .

Phần kết luận

YOLOv9 đại diện cho sự phát triển then chốt trong phát hiện đối tượng theo 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 những 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 tạo ra tiền lệ mới cho nghiên cứu và ứng dụng trong tương lai trong lĩnh vực này. Khi cộng đồng AI tiếp tục phát triển, YOLOv9 là minh chứng cho sức mạnh của sự hợp tác và đổi mới trong việc thúc đẩy tiến bộ công nghệ.

Ví dụ sử dụng

Ví dụ này cung cấp các ví dụ đào tạo và suy luận YOLOv9 đơn giản. Để biết 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 , ValExport .

Ví dụ

PyTorch được đào tạo trước *.pt mô hình cũng như cấu hình *.yaml các tập tin có thể được chuyển đến YOLO() lớp để 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")

CLI các lệnh 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

Nhiệm vụ và chế độ được hỗ trợ

Dòng YOLOv9 cung cấp nhiều mẫu, mỗi mẫu được tối ưu hóa cho Phát hiện đối tượng hiệu suất cao. Các mẫu này đáp ứng các nhu cầu tính toán và yêu cầu về độ chính xác khác nhau, giúp chúng linh hoạt cho nhiều ứng dụng.

Người mẫu Tên tập tin Nhiệm vụ Suy luận Xác thực Đào tạo Xuất khẩu
YOLOv9 yolov9t yolov9s yolov9m yolov9c.pt yolov9e.pt Phát hiện đối tượng
YOLOv9-phân đoạn yolov9c-seg.pt yolov9e-seg.pt Phân đoạn trường hợp

Bảng này cung cấp 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 của chúng với nhiều chế độ hoạt động khác nhau như Suy luận , Xác thực , Đào tạoXuất . Hỗ trợ toàn diện này đảm bảo rằng người dùng có thể tận dụng đầy đủ 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.

Ghi chú

Việc đào tạo các mô hình YOLOv9 sẽ cần nhiều tài nguyên hơ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 muốn ghi nhận những đóng góp quan trọng của các tác giả YOLOv9 trong lĩnh vực phát hiện đối tượng theo 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 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 họ và có thể truy cập cơ sở mã 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 trình của họ 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 những cải tiến nào để phát hiện vật thể 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 cải tiến này giải quyết các thách thức về 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 cần thiết trên 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 cải tiến cốt lõi của YOLOv9 thiết lập các chuẩn mực 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 máy dò đối tượng thời gian thực hiện đại 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 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 hơn 42% tham số và ít hơn 21% nhu cầu tính toán so với YOLOv7 AF. Khám phá so sánh hiệu suất để biết số liệu chi tiết.

Làm thế nào tôi có thể đào tạo một mô hình YOLOv9 bằng cách sử dụng Python Và CLI ?

Bạn có thể đào tạo mô hình YOLOv9 bằng cả hai Python Và CLI lệnh. Đối với Python , khởi tạo một mô hình bằng cách sử dụng YOLO lớp và gọi train phương pháp:

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)

Vì CLI đào tạo, thực hiện:

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 cho đào tạo và suy luận.

Những lợi ích của việc sử dụng là gì? Ultralytics YOLOv9 dành cho các mẫu xe nhẹ?

YOLOv9 được thiết kế để giảm thiểu 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 quan trọng. Bằng cách tích hợp Programmable Gradient Information (PGI) và các hàm có thể đảo ngược, YOLOv9 đảm bảo lưu giữ dữ liệu cần thiết, 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 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 đố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ể hiện . Nó tương thích với nhiều chế độ hoạt động như suy luận, xác thực, đào tạo và xuất. Tính linh hoạt này giúp YOLOv9 có thể thích ứng với nhiều ứng dụng thị giác máy tính thời gian thực khác nhau. Tham khảo phần tác vụ và chế độ được hỗ trợ để biết thêm thông tin.

📅 Được tạo cách đây 9 tháng ✏️ Đã cập nhật cách đây 2 tháng

Bình luận