Meituan YOLOv6#
Tổng quan#
YOLOv6 của Meituan, ra mắt năm 2022, cân bằng tốt giữa tốc độ và độ chính xác, nhờ đó 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ú ý về kiến trúc và phương pháp huấn luyện, bao gồm triển khai module Bi-directional Concatenation (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 để đạt độ chính xác cao trên dataset COCO.
Tổng quan về YOLOv6. Sơ đồ kiến trúc model thể hiện các thành phần mạng và chiến lược huấn luyện được thiết kế lại, mang lại 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 bằng CSPStackRep. (b) Cấu trúc của module BiC. (c) Khối SimCSPSPPF. (nguồn).
Tính năng chính#
- Module ghép nối hai chiều (BiC): YOLOv6 giới thiệu module BiC trong neck của bộ phát hiện, giúp tăng cường tín hiệu định vị và cải thiện hiệu năng mà gần như không làm giảm tốc độ.
- 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ả phương pháp 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 nâng cao: Bằng cách mở rộng YOLOv6 để bổ sung một stage vào backbone và neck, model này đạt hiệu năng cao trên dataset COCO với đầu vào độ phân giải cao tại thời điểm ra mắt.
- 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 để nâng cao hiệu năng của các model YOLOv6 nhỏ hơn; chiến lược này tăng cường nhánh hồi quy phụ trong quá trình huấn luyện và loại bỏ nhánh đó khi suy luận để tránh giảm đáng kể tốc độ.
Chỉ số hiệu năng#
YOLOv6 cung cấp nhiều model pretrained với các kích thước 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 hiện đại 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 hóa 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 mode này và các mode khác, hãy xem các trang tài liệu Dự đoán, Huấn luyện, Đánh giá và Xuất.
Có thể truyền các tệp YOLOv6 *.yaml vào class YOLO() để dựng model tương ứng trong Python:
from ultralytics import YOLO
# Dựng model YOLOv6n từ đầu
model = YOLO("yolov6n.yaml")
# Hiển thị thông tin model (không bắt buộc)
model.info()
# Huấn luyện model trên dataset mẫu COCO8 trong 100 epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Chạy suy luận bằng model YOLOv6n trên ảnh 'bus.jpg'
results = model("path/to/bus.jpg")Các tác vụ và chế độ được hỗ trợ#
Dòng YOLOv6 cung cấp nhiều model, mỗi model được tối ưu hóa cho Phát hiện đối tượng hiệu năng cao. Các model này đáp ứng những 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.
| Model | Tên tệp | Tác vụ | Huấn luyện | Validation | Suy luận | 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 thực hiện tác vụ phát hiện đối tượng và khả năng tương thích với nhiều mode hoạt động như Suy luận, Xác thực, Huấn luyện và Xuất. Phạm vi hỗ trợ toàn diện này đảm bảo người dùng có thể khai thác tối đa khả năng của model YOLOv6 trong nhiều tình huống phát hiện đối tượng.
Trích dẫn và lời cảm ơn#
Chúng tôi xin ghi nhận những đóng góp quan trọng của các tác giả trong lĩnh vực phát hiện đối tượng theo 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}
}Có thể tìm thấy bài báo YOLOv6 gốc 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ể truy cập trên GitHub. Chúng tôi trân trọ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.
Câu hỏi thường gặp#
Meituan YOLOv6, ra mắt năm 2022, là bộ phát hiện đố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 kiến trúc đáng chú ý như module Bi-directional Concatenation (BiC) và chiến lược Anchor-Aided Training (AAT). Những đổi mới này cải thiện đáng kể hiệu năng mà chỉ làm giảm tốc độ ở mứ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 Bi-directional Concatenation (BiC) trong YOLOv6 tăng cường tín hiệu định vị ở neck của bộ phát hiện, cải thiện hiệu năng mà hầu như không ảnh hưởng đến tốc độ. Module này kết hợp hiệu quả các feature map khác nhau, tăng 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 # Dựng model YOLOv6n từ đầu model = YOLO("yolov6n.yaml") # Huấn luyện model trên dataset mẫu COCO8 trong 100 epoch results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Để biết thêm thông tin, hãy truy cập trang Huấn luyện.
YOLOv6 có nhiều phiên bản, mỗi phiên bản được tối ưu hóa 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 hiện đại nhất trong các tình huống thời gian thực
Các model này được đánh giá trên dataset COCO 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.
Anchor-Aided Training (AAT) trong YOLOv6 kết hợp các yếu tố 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.
YOLOv6 hỗ trợ nhiều mode hoạt động, bao gồm Suy luận, Xác thực, Huấn luyện và Xuất. 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 nhiều tình huống khác nhau. Hãy xem mục Tác vụ và mode được hỗ trợ để biết tổng quan chi tiết về từng mode.