美团 YOLOv6
概述
美团YOLOv6 是一款先进的物体检测器,在速度和准确性之间取得了出色的平衡,是实时应用的热门选择。该模型在架构和训练方案上引入了几项显著的改进,包括双向串联(BiC)模块、锚点辅助训练(AAT)策略以及改进的骨干和颈部设计,从而在 COCO 数据集上实现了最先进的精度。
YOLOv6 概述。 模型结构图显示了重新设计的网络组件和训练策略,这些组件和策略显著提高了性能。(a) YOLOv6 的颈部(显示的是 N 和 S)。(b) BiC 模块的结构。(c) SimCSPSPPF 模块。(消息来源).
主要功能
- 双向串行 (BiC) 模块:YOLOv6 在探测器的颈部引入了双向并联(BiC)模块,可增强定位信号并提高性能,而速度降低可忽略不计。
- 锚点辅助训练(AAT)策略:该模型提出的 AAT 可同时享受基于锚和无锚范式的优势,而不会降低推理效率。
- 增强型骨干和颈部设计:通过深化 YOLOv6,在骨干和颈部加入另一个阶段,该模型在高分辨率输入的 COCO 数据集上实现了最先进的性能。
- 自蒸馏策略:为了提高 YOLOv6 较小模型的性能,我们采用了一种新的自蒸馏策略,在训练过程中增强辅助回归分支,在推理过程中去除辅助回归分支,以避免速度明显下降。
性能指标
YOLOv6 提供了不同规模的各种预训练模型:
- YOLOv6-N:使用 NVIDIA Tesla T4 GPU 以 1187 FPS 的速度在 COCO val2017 上运行 37.5% AP。
- YOLOv6-S:45.0% AP,484 FPS。
- YOLOv6-M:50.0% AP,226 FPS。
- YOLOv6-L:52.8% AP,116 FPS。
- YOLOv6-L6:最先进的实时准确性。
YOLOv6 还提供不同精度的量化模型和针对移动平台优化的模型。
使用示例
本示例提供了简单的 YOLOv6 训练和推理示例。有关这些模式和其他模式的完整文档,请参阅Predict、Train、Val和Export文档页面。
示例
PyTorch 训练有素 *.pt
模型以及配置 *.yaml
文件可以传递给 YOLO()
类在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')
CLI 命令可直接运行模型:
支持的任务和模式
YOLOv6 系列提供一系列型号,每个型号都针对高性能目标检测进行了优化。这些型号可满足不同的计算需求和精度要求,因此可广泛用于各种应用。
型号 | 预训练重量 | 支持的任务 | 推论 | 验证 | 培训 | 出口 |
---|---|---|---|---|---|---|
YOLOv6-N | yolov6-n.pt |
物体检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-S | yolov6-s.pt |
物体检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-M | yolov6-m.pt |
物体检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-L | yolov6-l.pt |
物体检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv6-L6 | yolov6-l6.pt |
物体检测 | ✅ | ✅ | ✅ | ✅ |
本表提供了 YOLOv6 模型变体的详细概述,重点介绍了它们在物体检测任务中的功能以及与推理、验证、训练和导出等各种操作模式的兼容性。这种全面的支持可确保用户在各种物体检测场景中充分利用 YOLOv6 模型的功能。
引文和致谢
我们衷心感谢作者们在实时物体检测领域做出的重大贡献:
YOLOv6 的原始论文可在arXiv 上找到。作者公开了他们的工作,代码库可以在GitHub 上访问。我们感谢他们为推动这一领域的发展和让更多人了解他们的工作所做的努力。