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 lĩnh vự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ư 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 vượt trội 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 bộ 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ã 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.
Xem: Huấn luyện YOLOv9 trên Dữ liệu tùy chỉnh bằng Ultralytics | Bộ dữ liệu gói công nghiệp
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 để vượt qua 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ỉ tăng cường khả năng học hỏi 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 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 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 nút cổ chai thông tin và việc sử dụng sáng tạo các Hàm khả nghịch là trung 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à f
và g
lần lượt đại diện cho các hàm biến đổi với các tham số theta
và phi
. YOLOv9 chống lại thách thức này bằng cách triển khai Thông tin Gradient có thể lập trình (PGI), giúp bảo toàn dữ liệu thiết yếu trên toàn bộ độ sâu của mạng, đảm bảo tạo ra gradient đáng tin cậy hơn và do đó, hội tụ và hiệu suất mô hình tốt hơn.
Các hàm обратимым
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 làm mất bất kỳ thông tin nào, như được thể hiện bằng:
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ó. Thuộc tính này rất quan trọng đối với kiến trúc học sâu , vì nó cho phép mạng giữ lại một 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 khả nghịch trong kiến trúc của nó để 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 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 đối với các mô hình nhẹ
Giải quyết tình trạng mất thông tin đặc biệt quan trọng đối với các mô hình gọn 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 khả nghịch, đảm bảo rằng ngay cả với một mô hình được sắp xếp hợp lý, thông tin thiết yếu cần thiết cho việc 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 để chống lại vấn đề nút cổ chai thông tin, đảm bảo bảo toàn dữ liệu thiết yếu 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 cho việc 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 khả năng sử dụng tham số vượt trội và hiệu quả tính toán. 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, làm cho YOLOv9 có khả năng 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.
Điểm chuẩn YOLOv9
Đánh giá chuẩn trong YOLOv9 bằng cách sử dụng Ultralytics liên quan đến việc đánh giá hiệu suất của mô hình đã được huấn luyện và xác thực của bạn 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 Sử Dụng Gói Ultralytics Python
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 lĩnh vự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 trình phát hiện đối tượng theo thời gian thực hiện đại, minh họa hiệu quả vượt trội và độ chính xác của YOLOv9.
Hiệu suất
Mô hình | Kích thước (pixels) |
mAPval 50-95 |
mAPval 50 |
Tham số (M) |
FLOPs (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 |
Mô hình | Kích thước (pixels) |
mAPbox 50-95 |
mAPmask 50-95 |
Tham số (M) |
FLOPs (B) |
---|---|---|---|---|---|
YOLOv9c-seg | 640 | 52.4 | 42.2 | 27.9 | 159.4 |
YOLOv9e-seg | 640 | 55.1 | 44.3 | 60.5 | 248.4 |
Các phiên bản của YOLOv9, từ phiên bản nhỏ nhất t
đến phiên bản mở rộng e
cho thấy sự cải thiện không chỉ 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à nhu cầu tính toán giảm (FLOPs). Bảng này nhấn mạnh khả năng của YOLOv9 trong việc mang lại hiệu năng độ 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ể:
- Các 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 trong khi đạt được mứ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.
Mô hình 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 vẫn đạt được độ chính xác tương đương, chứng minh những cải tiến đáng kể về hiệu quả 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 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 mức cải thiện gia tăng 1,7% về AP.
Những kết quả này thể hiện 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 này không chỉ đẩy mạnh các ranh giới 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, khiến nó trở thành một phát triển then chốt trong lĩnh vực thị giác máy tính.
Kết luận
YOLOv9 đại diện cho một bước phát triển then chốt trong lĩnh vực 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 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 đặt ra một tiền lệ mới cho nghiên cứu và ứng dụng trong tương lai. Khi cộng đồng AI tiếp tục phát triển, YOLOv9 nổi bật như một 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ụ đơ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 Predict, Train, Val và Export.
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 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, làm cho chúng trở nên linh hoạt cho một loạt các ứng dụng.
Mô hình | Tên tập tin | Nhiệm vụ | Suy luận | Xác thực | Huấn luyện | Xuất |
---|---|---|---|---|---|---|
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 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 của chúng với các chế độ hoạt động khác nhau như Suy luận, Xác thực, Huấn luyện và Xuất. 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 một loạt các tình huống phát hiện đối tượng.
Lưu ý
Việc huấn luyện các mô hình YOLOv9 sẽ đòi hỏi 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.
Trích dẫn và ghi nhận
Chúng tôi xin ghi nhận những đóng góp to lớn 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 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 họ và có thể truy cập codebase 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à 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 những cải tiến nào cho việc phát hiện đối tượng theo 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 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 thiết yếu 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ề những đổi mới cốt lõi của YOLOv9 đã thiết lập các chuẩn mực mới trên bộ dữ liệu MS COCO.
So với các mô hình khác, YOLOv9 hoạt động như thế nào trên bộ dữ liệu MS COCO?
YOLOv9 vượt trội hơn so với các trình phát hiện đối tượng theo 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 bộ dữ liệu COCO, các mô hình 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 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. Khám phá so sánh hiệu suất để biết các số liệu chi tiết.
Làm cách nào để huấn luyện mô hình YOLOv9 bằng Python và CLI?
Bạn có thể huấn luyện 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 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 ưu điểm của việc sử dụng Ultralytics YOLOv9 cho các mô hình gọn nhẹ là gì?
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 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 khả 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 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, huấn luyện và xuất. Tính linh hoạt này làm cho YOLOv9 có khả năng thích ứng với các ứng dụng thị giác máy tính theo thời gian thực khác nhau. Tham khảo phần các tác vụ và chế độ được hỗ trợ để biết thêm thông tin.