美团 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 T4GPU 在 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 上访问。我们感谢他们为推动这一领域的发展和让更多人了解他们的工作所做的努力。
常见问题
什么是美团 YOLOv6,它有何独特之处?
美团 YOLOv6 是一款先进的物体检测器,兼顾了速度和准确性,是实时应用的理想之选。它具有显著的架构增强功能,如双向串联(BiC)模块和锚点辅助训练(AAT)策略。这些创新技术在大幅提升性能的同时,将速度降低到最低程度,使 YOLOv6 成为物体检测任务中极具竞争力的选择。
YOLOv6 中的双向串联 (BiC) 模块如何提高性能?
YOLOv6 中的双向串联(BiC)模块增强了探测器颈部的定位信号,在提高性能的同时对速度的影响微乎其微。该模块可有效组合不同的特征图,提高模型准确检测物体的能力。有关 YOLOv6 功能的更多详情,请参阅主要功能部分。
如何使用Ultralytics 训练 YOLOv6 模型?
您可以使用Ultralytics 和简单的Python 或CLI 命令来训练 YOLOv6 模型。例如
示例
如需了解更多信息,请访问列车页面。
YOLOv6 的不同版本及其性能指标是什么?
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 T4GPU 在 COCO 数据集上对这些模型进行了评估。有关性能指标的更多信息,请参阅 "性能指标"部分。
锚点辅助训练 (AAT) 战略如何使 YOLOv6 受益?
YOLOv6 中的锚点辅助训练(AAT)结合了基于锚点和无锚点的方法,在不影响推理效率的情况下增强了模型的检测能力。这一策略在训练过程中利用锚点来改进边界框预测,使 YOLOv6 能够有效地完成各种物体检测任务。
Ultralytics 中的 YOLOv6 型号支持哪些运行模式?
YOLOv6 支持多种运行模式,包括推理、验证、训练和导出。这种灵活性使用户能够在不同场景中充分利用模型的功能。请查看 "支持的任务和模式 "部分,了解每种模式的详细概述。