Meituan YOLOv6#
Tổng quan#
Meituan YOLOv6, được phát hành vào năm 2022, mang đến sự cân bằng tốt giữa tốc độ và độ chính xác, khiến model này trở thành lựa chọn phổ biến cho các ứng dụng thời gian thực. Model này giới thiệu một số cải tiến đáng chú ý trong kiến trúc và quy trình huấn luyện, bao gồm việc triển khai module Nối hai chiều (BiC), chiến lược huấn luyện có hỗ trợ anchor (AAT), cùng thiết kế backbone và neck được cải tiến nhằm đạt độ chính xác cao trên COCO dataset.
Tổng quan về YOLOv6. Sơ đồ kiến trúc model cho thấy các thành phần mạng và chiến lược huấn luyện được thiết kế lại, mang đến những cải thiện hiệu năng đáng kể. (a) Neck của YOLOv6 (hiển thị N và S). Lưu ý: với M/L, RepBlocks được thay thế bằng CSPStackRep. (b) Cấu trúc của module BiC. (c) Một block SimCSPSPPF. (nguồn).
Tính năng chính#
- Module Nối hai chiều (BiC): YOLOv6 giới thiệu module BiC trong neck của detector, tăng cường các tín hiệu định vị và cải thiện hiệu năng với mức suy giảm tốc độ không đáng kể.
- Chiến lược Huấn luyện có hỗ trợ anchor (AAT): Model này đề xuất AAT để tận dụng lợi ích của cả hai mô hình dựa trên anchor và không dùng anchor mà không ảnh hưởng đến hiệu quả suy luận.
- Thiết kế Backbone và Neck được cải tiến: Bằng cách làm sâu YOLOv6 để bổ sung thêm một stage trong backbone và neck, model này đạt hiệu năng cao trên COCO dataset với đầu vào độ phân giải cao tại thời điểm phát hành.
- Chiến lược Tự chưng cất: Một chiến lược tự chưng cất mới được triển khai để tăng hiệu năng cho các model YOLOv6 nhỏ hơn, cải thiện nhánh hồi quy phụ trong quá trình huấn luyện và loại bỏ nhánh này khi suy luận để tránh suy giảm tốc độ đáng kể.
Metrics hiệu năng#
YOLOv6 cung cấp nhiều model được pretrained với các quy mô khác nhau:
- YOLOv6-N: 37.5% AP trên COCO val2017 ở tốc độ 1187 FPS với GPU NVIDIA T4.
- YOLOv6-S: 45.0% AP ở tốc độ 484 FPS.
- YOLOv6-M: 50.0% AP ở tốc độ 226 FPS.
- YOLOv6-L: 52.8% AP ở tốc độ 116 FPS.
- YOLOv6-L6: Độ chính xác tiên tiến nhất trong thời gian thực.
YOLOv6 cũng cung cấp các model lượng tử hóa với nhiều độ chính xác khác nhau và các model được tối ưu cho nền tảng di động.
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 YOLOv6. Để xem 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.
Các file *.yaml của YOLOv6 có thể được truyền vào class YOLO() để xây dựng model tương ứng trong Python:
from ultralytics import YOLO
# Build a YOLOv6n model from scratch
model = YOLO("yolov6n.yaml")
# 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 YOLOv6n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Các task và mode được hỗ trợ#
Dòng YOLOv6 cung cấp nhiều model, mỗi model được tối ưu cho Phát hiện đối tượng hiệu năng cao. Các model này đáp ứng nhiều nhu cầu tính toán và yêu cầu về độ chính xác khác nhau, phù hợp với nhiều ứng dụng đa dạng.
| Model | Tên tệp | Task | Training | Validation | Inference | Export |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp tổng quan chi tiết về các biến thể model YOLOv6, 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 nhiều chế độ vận hành như Suy luận, Xác thực, Huấn luyện và Export. Khả năng hỗ trợ toàn diện này đảm bảo người dùng có thể khai thác đầy đủ năng lực của các model YOLOv6 trong nhiều tình huống phát hiện đối tượng.
Trích dẫn và ghi nhận đóng góp#
Chúng tôi xin ghi nhận các tác giả vì những đóng góp quan trọng của họ trong lĩnh vực phát hiện đối tượng thời gian thực:
@misc{li2023yolov6,
title={YOLOv6 v3.0: A Full-Scale Reloading},
author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
year={2023},
eprint={2301.05586},
archivePrefix={arXiv},
primaryClass={cs.CV}
}Bài báo YOLOv6 gốc 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à có thể truy cập codebase 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 cộng đồng rộng lớn hơn tiếp cận công trình.
FAQ#
Meituan YOLOv6, được phát hành vào năm 2022, là một detector đối tượng cân bằng giữa tốc độ và độ chính xác, được thiết kế cho các ứng dụng thời gian thực. Model này có những cải tiến đáng chú ý về kiến trúc như module Nối hai chiều (BiC) và chiến lược Huấn luyện có hỗ trợ anchor (AAT). Những cải tiến này mang đến mức tăng hiệu năng đáng kể với mức suy giảm tốc độ tối thiểu, khiến YOLOv6 trở thành lựa chọn cạnh tranh cho các tác vụ phát hiện đối tượng.
Module Nối hai chiều (BiC) trong YOLOv6 tăng cường các tín hiệu định vị trong neck của detector, cải thiện hiệu năng với ảnh hưởng không đáng kể đến tốc độ. Module này kết hợp hiệu quả các feature map khác nhau, nâng cao khả năng phát hiện đối tượng chính xác của model. Để biết thêm chi tiết về các tính năng của YOLOv6, hãy tham khảo mục Tính năng chính.
Bạn có thể huấn luyện model YOLOv6 bằng Ultralytics với các lệnh Python hoặc CLI đơn giản. Ví dụ:
Ví dụfrom ultralytics import YOLO # Build a YOLOv6n model from scratch model = YOLO("yolov6n.yaml") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Để biết thêm thông tin, hãy truy cập trang Train.
YOLOv6 cung cấp nhiều phiên bản, mỗi phiên bản được tối ưu cho các yêu cầu hiệu năng khác nhau:
- YOLOv6-N: 37.5% AP ở tốc độ 1187 FPS
- YOLOv6-S: 45.0% AP ở tốc độ 484 FPS
- YOLOv6-M: 50.0% AP ở tốc độ 226 FPS
- YOLOv6-L: 52.8% AP ở tốc độ 116 FPS
- YOLOv6-L6: Độ chính xác tiên tiến nhất trong các tình huống thời gian thực
Các model này được đánh giá trên COCO dataset bằng GPU NVIDIA T4. Để biết thêm về các chỉ số hiệu năng, hãy xem mục Chỉ số hiệu năng.
Huấn luyện có hỗ trợ anchor (AAT) trong YOLOv6 kết hợp các thành phần của phương pháp dựa trên anchor và không dùng anchor, tăng cường khả năng phát hiện của model mà không ảnh hưởng đến hiệu quả suy luận. Chiến lược này tận dụng anchor trong quá trình huấn luyện để cải thiện dự đoán bounding box, giúp YOLOv6 hoạt động hiệu quả trong nhiều tác vụ phát hiện đối tượng khác nhau.
YOLOv6 hỗ trợ nhiều chế độ vận hành, bao gồm Suy luận, Xác thực, Huấn luyện và Export. Tính linh hoạt này cho phép người dùng khai thác tối đa khả năng của model trong các tình huống khác nhau. Hãy xem mục Tác vụ và Chế độ được hỗ trợ để biết tổng quan chi tiết về từng chế độ.