Meituan YOLOv6#
概览#
Meituan YOLOv6 于 2022 年发布,在速度和精度之间实现了良好平衡,因此成为实时应用的热门选择。该模型在架构和训练方案上引入了多项显著改进,包括实现双向拼接模块 (BiC)、锚点辅助训练策略 (AAT),以及改进的骨干网络和颈部设计,从而在 COCO 数据集上实现高精度。
YOLOv6 概览。 模型架构图展示了经过重新设计的网络组件和训练策略,这些改进带来了显著的性能提升。(a) YOLOv6 的颈部(图中展示了 N 和 S)。注意,对于 M/L,RepBlocks 被 CSPStackRep 替代。(b) BiC 模块的结构。(c) 一个 SimCSPSPPF 模块。(来源)。
主要特性#
- 双向拼接模块 (BiC): YOLOv6 在检测器的颈部引入了 BiC 模块,增强了定位信号,并在速度几乎不受影响的情况下提升了性能。
- 锚点辅助训练策略 (AAT): 该模型提出了 AAT,使模型能够兼具基于锚点和无锚点范式的优势,同时不影响推理效率。
- 增强的骨干网络和颈部设计: 通过加深 YOLOv6,在骨干网络和颈部中各增加一个阶段,该模型发布时便在高分辨率输入下的 COCO 数据集上实现了出色性能。
- 自蒸馏策略: 通过实施一种新的自蒸馏策略,YOLOv6 的较小模型性能得到提升;该策略在训练期间增强辅助回归分支,并在推理时将其移除,以避免速度明显下降。
性能指标#
YOLOv6 提供了多种不同规模的预训练模型:
- YOLOv6-N:在 COCO val2017 上达到 37.5% AP,使用 NVIDIA T4 GPU 时为 1187 FPS。
- 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 训练和推理示例。有关这些模式及其他模式的完整文档,请参阅预测、训练、验证和导出文档页面。
YOLOv6 *.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")支持的任务和模式#
YOLOv6 系列提供了一系列针对高性能目标检测优化的模型。这些模型能够满足不同的计算需求和精度要求,因此适用于广泛的应用场景。
| 模型 | 文件名 | 任务 | 训练 | 验证 | 推理 | 导出 |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | 对象检测 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | 对象检测 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | 对象检测 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | 对象检测 | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | 对象检测 | ✅ | ✅ | ✅ | ✅ |
此表详细概述了 YOLOv6 的模型变体,重点介绍它们在目标检测任务中的能力,以及与推理、验证、训练和导出等不同操作模式的兼容性。这种全面的支持确保你能够在广泛的目标检测场景中充分利用 YOLOv6 模型的能力。
引用与致谢#
我们谨此感谢以下作者在实时目标检测领域作出的重要贡献:
@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}
}YOLOv6 的原始论文可在 arXiv 上找到。作者已公开其研究成果,代码库可在 GitHub 上访问。我们感谢他们为推动该领域发展并让更广泛的社区能够访问其成果所作出的努力。
常见问题#
Meituan YOLOv6 于 2022 年发布,是一种在速度和精度之间取得平衡、专为实时应用设计的目标检测器。它具有显著的架构改进,例如双向拼接模块 (BiC) 和锚点辅助训练策略 (AAT)。这些创新在速度几乎不受影响的情况下带来了显著的性能提升,使 YOLOv6 成为目标检测任务中具有竞争力的选择。
你可以使用简单的 Python 或 CLI 命令,通过 Ultralytics 训练 YOLOv6 模型。例如:
示例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)如需更多信息,请访问训练页面。
YOLOv6 提供多个版本,每个版本都针对不同的性能要求进行了优化:
- YOLOv6-N:达到 37.5% AP,速度为 1187 FPS
- YOLOv6-S:达到 45.0% AP,速度为 484 FPS
- YOLOv6-M:达到 50.0% AP,速度为 226 FPS
- YOLOv6-L:达到 52.8% AP,速度为 116 FPS
- YOLOv6-L6:实时场景下具备业界领先的精度
这些模型使用 NVIDIA T4 GPU 在 COCO 数据集上进行评估。有关性能指标的更多信息,请参阅性能指标部分。
YOLOv6 中的锚点辅助训练 (AAT) 融合了基于锚点和无锚点方法的要素,在不影响推理效率的情况下增强了模型的检测能力。该策略在训练期间利用锚点来改善边界框预测,使 YOLOv6 能够有效执行多种目标检测任务。
YOLOv6 支持多种操作模式,包括推理、验证、训练和导出。这种灵活性使你能够在不同场景中充分发挥模型的能力。请查看支持的任务和模式部分,详细了解每种模式。