Skip to content

美团YOLOv6

概述

美团 YOLOv6 是一款前沿的目标检测器,在速度和准确性之间提供了卓越的平衡,使其成为实时应用的热门选择。该模型在其架构和训练方案中引入了多项显著改进,包括双向连接(BiC)模块的实现、锚点辅助训练(AAT)策略以及改进的骨干网络和颈部设计,以在COCO数据集上实现最先进的准确性。

美团YOLOv6 模型示例图像 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上,COCO val2017数据集上达到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:实时应用中的最先进准确性。

YOLOv6还提供了针对不同精度的量化模型和针对移动平台的优化模型。

使用示例

此示例提供了简单的YOLOv6训练和推理示例。有关这些和其他模式的完整文档,请参阅预测训练验证导出文档页面。

示例

PyTorch 预训练的 *.pt 模型以及配置 *.yaml 文件可以传递给 YOLO() 类,以在Python中创建模型实例:

from ultralytics import YOLO

# 从头构建一个YOLOv6n模型
model = YOLO("yolov6n.yaml")

# 显示模型信息(可选)
model.info()

# 在COCO8示例数据集上训练模型100个周期
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 在'bus.jpg'图像上使用YOLOv6n模型进行推理
results = model("path/to/bus.jpg")

可以直接运行模型的CLI命令:

# 从头构建一个YOLOv6n模型并在COCO8示例数据集上训练它100个周期
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

# 从头构建一个YOLOv6n模型并在'bus.jpg'图像上进行推理
yolo predict model=yolov6n.yaml source=path/to/bus.jpg

支持的任务和模式

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模型的能力。

引用和致谢

我们想对在实时目标检测领域做出重大贡献的作者表示感谢:

@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上访问。我们感谢他们在推动该领域进步并使其工作对更广泛的社区可访问方面所做的努力。

常见问题

什么是美团YOLOv6,它有什么独特之处?

美团YOLOv6是一种平衡速度和准确性的最先进目标检测器,非常适合实时应用。它具有显著的架构增强功能,如双向连接(BiC)模块和锚点辅助训练(AAT)策略。这些创新在速度几乎没有下降的情况下提供了显著的性能提升,使YOLOv6成为目标检测任务的竞争选择。

YOLOv6中的双向连接(BiC)模块如何提高性能?

YOLOv6中的双向连接(BiC)模块增强了检测器颈部的定位信号,以几乎不影响速度的方式提供性能提升。该模块有效地结合了不同的特征图,提高了模型准确检测物体的能力。有关YOLOv6功能的更多详细信息,请参阅关键功能部分。

如何使用Ultralytics训练YOLOv6模型?

您可以使用简单的Python或CLI命令使用Ultralytics训练YOLOv6模型。例如:

Example

from ultralytics import YOLO

# 从零开始构建一个YOLOv6n模型
model = YOLO("yolov6n.yaml")

# 在COCO8示例数据集上训练模型100个周期
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

更多信息,请访问训练页面。

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在多样化的目标检测任务中有效。

YOLOv6模型在Ultralytics中支持哪些操作模式?

YOLOv6支持多种操作模式,包括推理、验证、训练和导出。这种灵活性允许用户在不同场景中充分利用模型的能力。查看支持的任务和模式部分,了解每种模式的详细概述。


📅 Created 11 months ago ✏️ Updated 14 days ago

Comments