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:在 NVIDIA T4 GPU 上以 1187 FPS 的速度在 COCO val2017 上达到 37.5% AP。
- YOLOv6-S:在 484 FPS 下达到 45.0% AP。
- YOLOv6-M:在 226 FPS 下达到 50.0% AP。
- YOLOv6-L:在 116 FPS 下达到 52.8% AP。
- YOLOv6-L6:实时检测中的顶尖精度。
YOLOv6 还提供了针对不同精度的量化模型,以及为移动平台优化的模型。
使用示例
此示例提供了简单的 YOLOv6 训练和推理示例。有关这些模式及其他模式的完整文档,请参阅 预测 (Predict)、训练 (Train)、验证 (Val) 和 导出 (Export) 文档页面。
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 上访问。我们感谢他们在推动该领域发展并使更多社区能够使用其工作方面所做的努力。
常见问题 (FAQ)
什么是 Meituan YOLOv6,它有什么独特之处?
Meituan YOLOv6 于 2022 年发布,是一款专为实时应用设计的平衡速度和精度的目标检测器。它具有显著的架构增强功能,如双向拼接 (BiC) 模块和锚框辅助训练 (AAT) 策略。这些创新在速度几乎没有下降的情况下带来了显著的性能提升,使 YOLOv6 成为目标检测任务中的有力竞争者。
YOLOv6 中的双向拼接 (BiC) 模块如何提高性能?
YOLOv6 中的双向拼接 (BiC) 模块增强了检测器颈部的定位信号,在几乎不影响速度的情况下提高了性能。该模块有效地结合了不同的特征图,增强了模型准确检测物体的能力。有关 YOLOv6 功能的更多详细信息,请参阅关键功能部分。
我该如何使用 Ultralytics 训练 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)欲了解更多信息,请访问 训练 (Train) 页面。
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 T4 GPU 上使用 COCO 数据集进行评估的。有关性能指标的更多信息,请参阅性能指标部分。
锚框辅助训练 (AAT) 策略如何使 YOLOv6 受益?
YOLOv6 中的锚框辅助训练 (AAT) 结合了基于锚框和无锚框方法的元素,增强了模型的检测能力,同时又不损害推理效率。该策略利用训练过程中的锚框来改善边界框预测,使 YOLOv6 在多样的目标检测任务中表现出色。
Ultralytics 中的 YOLOv6 模型支持哪些操作模式?
YOLOv6 支持各种操作模式,包括推理、验证、训练和导出。这种灵活性使用户能够充分利用模型在不同场景下的能力。查看支持的任务和模式部分,获取每种模式的详细概述。