Ultralytics YOLO27:
Get Started

Meituan YOLOv6#

概述#

Meituan YOLOv6 于 2022 年发布,在速度和准确率之间实现了良好平衡,因此成为实时应用的热门选择。该模型在架构和训练方案方面进行了多项重要改进,包括采用双向拼接 (BiC) 模块、锚点辅助训练 (AAT) 策略,以及改进的主干网络和颈部设计,从而在 COCO 数据集上实现高准确率。

Meituan 推出的 YOLOv6 实时目标检测模型 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:在 COCO val2017 上 AP 为 37.5%,使用 NVIDIA T4 GPU 时速度为 1187 FPS。
  • YOLOv6-S:AP 为 45.0%,速度为 484 FPS。
  • YOLOv6-M:AP 为 50.0%,速度为 226 FPS。
  • YOLOv6-L:AP 为 52.8%,速度为 116 FPS。
  • YOLOv6-L6:实时场景下实现先进的准确率。

YOLOv6 还提供适用于不同精度的量化模型,以及针对移动平台优化的模型。

使用示例#

本示例提供了简单的 YOLOv6 训练和推理示例。如需查看这些及其他模式的完整文档,请参阅预测、训练、验证和导出文档页面。

示例

YOLOv6 *.yaml 文件可传递给 YOLO() 类,以便在 Python 中构建对应模型:

from ultralytics import YOLO

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

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

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

# 使用 YOLOv6n 模型对“bus.jpg”图像运行推理
results = model("path/to/bus.jpg")

支持的任务和模式#

YOLOv6 系列提供了多种模型,每种模型都针对高性能目标检测进行了优化。这些模型适用于不同的计算需求和准确率要求,因此可灵活应用于各种场景。

模型文件名任务训练验证推理导出
YOLOv6-Nyolov6n.yaml目标检测✅✅✅✅
YOLOv6-Syolov6s.yaml目标检测✅✅✅✅
YOLOv6-Myolov6m.yaml目标检测✅✅✅✅
YOLOv6-Lyolov6l.yaml目标检测✅✅✅✅
YOLOv6-Xyolov6x.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 成为目标检测任务的有力选择。

  • YOLOv6 中的双向拼接 (BiC) 模块增强了检测器颈部的定位信号,在速度几乎不受影响的情况下提升了性能。该模块能够有效融合不同的特征图,增强模型准确检测目标的能力。如需了解 YOLOv6 特性的更多详情,请参阅关键特性部分。

  • 你可以使用简单的 Python 或 CLI 命令,通过 Ultralytics 训练 YOLOv6 模型。例如:

    示例
    from ultralytics import YOLO
    
    # 从头开始构建 YOLOv6n 模型
    model = YOLO("yolov6n.yaml")
    
    # 使用 COCO8 示例数据集训练模型 100 个 epoch
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    如需了解更多信息,请访问训练页面。

  • YOLOv6 提供多个版本,每个版本都针对不同的性能需求进行了优化:

    • YOLOv6-N:AP 为 37.5%,速度为 1187 FPS
    • YOLOv6-S:AP 为 45.0%,速度为 484 FPS
    • YOLOv6-M:AP 为 50.0%,速度为 226 FPS
    • YOLOv6-L:AP 为 52.8%,速度为 116 FPS
    • YOLOv6-L6:在实时场景中实现先进的准确率

    这些模型使用 NVIDIA T4 GPU 在 COCO 数据集上进行评估。如需了解更多性能指标,请参阅性能指标部分。

  • YOLOv6 中的锚点辅助训练 (AAT) 结合了基于锚点和无锚点方法的特点,在不影响推理效率的情况下增强模型的检测能力。该策略在训练期间利用锚点来改进边界框预测,使 YOLOv6 能够有效应对各种目标检测任务。

  • YOLOv6 支持多种运行模式,包括推理、验证、训练和导出。这种灵活性使用户能够在不同场景中充分发挥模型的能力。如需详细了解每种模式,请参阅支持的任务和模式部分。

评论