Meituan YOLOv6
Tổng quan
Meituan YOLOv6, được ra mắt vào năm 2022, mang lại sự cân bằng tối ưu giữa tốc độ và độ chính xác, trở thành lựa chọn phổ biến cho các ứng dụng thời gian thực. Mô hình này giới thiệu một vài cải tiến đáng chú ý về kiến trúc và sơ đồ huấn luyện, bao gồm việc triển khai mô-đun Bi-directional Concatenation (BiC), chiến lược huấn luyện Anchor-Aided Training (AAT), cùng thiết kế backbone và neck cải tiến để đạt độ chính xác cao trên tập dữ liệu COCO.
Tổng quan về YOLOv6. Sơ đồ kiến trúc mô hình hiển thị các thành phần mạng được thiết kế lại và các chiến lược huấn luyện đã dẫn đến những cải thiện hiệu suất đáng kể. (a) Neck của YOLOv6 (N và S được hiển thị). Lưu ý đối với M/L, RepBlocks được thay thế bằng CSPStackRep. (b) Cấu trúc của mô-đun BiC. (c) Một khối SimCSPSPPF. (nguồn).
Các tính năng chính
- Mô-đun Bidirectional Concatenation (BiC): YOLOv6 giới thiệu mô-đun BiC trong neck của bộ phát hiện, giúp tăng cường tín hiệu định vị và mang lại hiệu suất cải thiện mà gần như không làm giảm tốc độ.
- Chiến lược Anchor-Aided Training (AAT): Mô hình này đề xuất AAT để tận dụng lợi ích của cả hai mô hình anchor-based và anchor-free mà không làm ảnh hưởng đến hiệu quả suy luận.
- Thiết kế Backbone và Neck Nâng cao: Bằng cách làm sâu hơn YOLOv6 để bao gồm thêm một giai đoạn trong backbone và neck, mô hình này đã đạt được hiệu suất mạnh mẽ trên tập dữ liệu COCO ở độ phân giải đầu vào cao khi ra mắt.
- Chiến lược Tự chưng cất (Self-Distillation): Một chiến lược tự chưng cất mới được triển khai để thúc đẩy hiệu suất của các mô hình YOLOv6 nhỏ hơn, giúp tăng cường nhánh hồi quy phụ trong quá trình huấn luyện và loại bỏ nó ở giai đoạn suy luận để tránh suy giảm tốc độ đáng kể.
Các chỉ số hiệu suất
YOLOv6 cung cấp nhiều mô hình được huấn luyện trước với các quy mô khác nhau:
- YOLOv6-N: 37.5% AP trên COCO val2017 tại 1187 FPS với GPU NVIDIA T4.
- YOLOv6-S: 45.0% AP tại 484 FPS.
- YOLOv6-M: 50.0% AP tại 226 FPS.
- YOLOv6-L: 52.8% AP tại 116 FPS.
- YOLOv6-L6: Độ chính xác tiên tiến trong thời gian thực.
YOLOv6 cũng cung cấp các mô hình được lượng tử hóa cho các độ chính xác khác nhau và các mô hình được tối ưu hóa cho các nền tảng di động.
Ví dụ sử dụng
Ví dụ này cung cấp các hướng dẫn đơn giản về huấn luyện và suy luận YOLOv6. Để 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, Val và Export.
Các tệp *.yaml của YOLOv6 có thể được truyền vào lớp YOLO() để xây dựng mô hình 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 tác vụ và chế độ được hỗ trợ
Dòng YOLOv6 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 phục vụ cho các nhu cầu tính toán và yêu cầu về độ chính xác khác nhau, khiến chúng trở nên linh hoạt cho hàng loạt các ứng dụng.
| Model | Tên tệp | Tác vụ | Inference | Validation | Training | Export |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | Phát hiện đối tượng (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | Phát hiện đối tượng (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | Phát hiện đối tượng (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | Phát hiện đối tượng (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | Phát hiện đối tượng (Object Detection) | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp tổng quan chi tiết về các biến thể mô hình YOLOv6, 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à tính 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à Xuất. 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 YOLOv6 trong nhiều tình huống phát hiện đối tượng.
Trích dẫn và Ghi nhận
Chúng tôi muốn 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 gốc về YOLOv6 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ơ sở mã 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à làm cho công trình của họ trở nên dễ tiếp cận với cộng đồng rộng lớn hơn.
Câu hỏi thường gặp (FAQ)
Meituan YOLOv6 là gì và điều gì làm cho nó trở nên độc đáo?
Meituan YOLOv6, ra mắt năm 2022, là một 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. Nó có các cải tiến kiến trúc đáng chú ý như mô-đun Bi-directional Concatenation (BiC) và chiến lược Anchor-Aided Training (AAT). Những cải tiến này mang lại hiệu suất đáng kể với tốc độ giảm thiểu tối thiểu, giúp YOLOv6 trở thành một lựa chọn cạnh tranh cho các tác vụ phát hiện đối tượng.
Mô-đun Bidirectional Concatenation (BiC) trong YOLOv6 cải thiện hiệu suất như thế nào?
Mô-đun Bi-directional Concatenation (BiC) trong YOLOv6 tăng cường các tín hiệu định vị trong phần neck của bộ phát hiện, mang lại những cải thiện hiệu suất với tác động tốc độ không đáng kể. Mô-đun này kết hợp hiệu quả các bản đồ đặc trưng khác nhau, làm tăng khả năng phát hiện đối tượng chính xác của mô hình. Để biết thêm chi tiết về các tính năng của YOLOv6, hãy tham khảo phần Các tính năng chính.
Làm thế nào tôi có thể huấn luyện mô hình YOLOv6 bằng Ultralytics?
Bạn có thể huấn luyện mô hình YOLOv6 bằng Ultralytics với các lệnh Python hoặc CLI đơn giản. 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 Huấn luyện.
Các phiên bản khác nhau của YOLOv6 và các chỉ số hiệu suất của chúng là gì?
YOLOv6 cung cấp 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 suất khác nhau:
- YOLOv6-N: 37.5% AP tại 1187 FPS
- YOLOv6-S: 45.0% AP tại 484 FPS
- YOLOv6-M: 50.0% AP tại 226 FPS
- YOLOv6-L: 52.8% AP tại 116 FPS
- YOLOv6-L6: Độ chính xác tiên tiến trong các tình huống thời gian thực
Các mô hình này được đánh giá trên tập dữ liệu COCO sử dụng GPU NVIDIA T4. Để biết thêm về các chỉ số hiệu suất, xem phần Chỉ số Hiệu suất.
Chiến lược Anchor-Aided Training (AAT) mang lại lợi ích gì cho YOLOv6?
Anchor-Aided Training (AAT) trong YOLOv6 kết hợp các yếu tố của phương pháp tiếp cận anchor-based và anchor-free, tăng cường khả năng phát hiện của mô hình mà không làm ảnh hưởng đến hiệu quả suy luận. Chiến lược này tận dụng các anchor trong quá trình huấn luyện để cải thiện các dự đoán bounding box, giúp YOLOv6 hiệu quả trong các tác vụ phát hiện đối tượng đa dạng.
Những chế độ vận hành nào được hỗ trợ bởi các mô hình YOLOv6 trong Ultralytics?
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à Xuất. Sự linh hoạt này cho phép người dùng khai thác tối đa khả năng của mô hình trong các tình huống khác nhau. Hãy xem phần Các tác vụ và Chế độ được hỗ trợ để có cái nhìn tổng quan chi tiết về từng chế độ.