跳转至内容

美团YOLOv6

概述

Meituan YOLOv6 是一种先进的对象检测器,在速度和准确性之间提供了卓越的平衡,使其成为实时应用的热门选择。该模型在其架构和训练方案中引入了多项显著增强功能,包括双向连接 (BiC) 模块的实现、锚框辅助训练 (AAT) 策略以及改进的 backbone 和 neck 设计,从而在 COCO 数据集 上实现了最先进的准确性。

美团YOLOv6模型示例图片YOLOv6 概述。 模型结构图显示了重新设计的网络组件和训练策略,这些组件和策略显著提高了性能。(a)YOLOv6 的颈部(图中为 N 和 S)。(b) BiC 模块的结构。(c) SimCSPSPPF 模块。(来源)。

主要功能

  • 双向串行 (BiC) 模块: YOLOv6 在探测器的颈部引入了双向并联(BiC)模块,可增强定位信号并提高性能,而速度降低可忽略不计。
  • Anchor-Aided Training (AAT) Strategy: 该模型提出了 AAT,以享受 基于 anchor无 anchor 范例的优势,而不会影响推理效率。
  • 增强型骨干和颈部设计:通过深化YOLOv6 ,在骨干和颈部加入另一个阶段,该模型在高分辨率输入的COCO 数据集上实现了最先进的性能。
  • 自蒸馏策略:为了提高YOLOv6 较小模型的性能,我们采用了一种新的自蒸馏策略,在训练过程中增强辅助回归分支,在推理过程中去除辅助回归分支,以避免速度明显下降。

性能指标

YOLOv6 提供了不同规模的各种预训练模型:

  • YOLOv6:使用NVIDIA T4GPU 在COCO val2017 上以 1187 FPS 的速度运行 37.5%AP 。
  • YOLOv6:45.0%AP ,484 FPS。
  • YOLOv6:50.0%AP ,226 FPS。
  • YOLOv6:52.8%AP ,116 FPS。
  • YOLOv6:最先进的实时精度。

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

使用示例

本示例提供了简单的YOLOv6 训练和推理示例。有关这些模式和其他模式的完整文档,请参阅PredictTrainValExport文档页面。

示例

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")

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

# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg

支持的任务和模式

YOLOv6 系列提供一系列型号,每个型号都针对高性能目标检测进行了优化。这些型号可满足不同的计算需求和精度要求,因此可广泛用于各种应用。

模型文件名任务推理验证训练导出
YOLOv6yolov6n.yaml目标检测
YOLOv6yolov6s.yaml目标检测
YOLOv6yolov6m.yaml目标检测
YOLOv6yolov6l.yaml目标检测
YOLOv6yolov6x.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 上访问。我们感谢他们为推动这一领域的发展和让更多人了解他们的工作所做的努力。

常见问题

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

美团YOLOv6 是一款先进的目标检测器,兼顾了速度和准确性,是实时应用的理想选择。它具有显著的架构增强功能,如双向串联(BiC)模块和锚点辅助训练(AAT)策略。这些创新技术在大幅提升性能的同时,将速度降低到最低程度,使YOLOv6 成为物体检测任务中极具竞争力的选择。

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

YOLOv6 中的双向串联(BiC)模块增强了探测器颈部的定位信号,在提高性能的同时对速度的影响微乎其微。该模块可有效组合不同的特征图,提高模型准确detect 物体的能力。有关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)
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

更多信息,请访问Train页面。

YOLOv6 的不同版本及其性能指标是什么?

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

  • YOLOv6:37.5%AP ,1187 FPS
  • YOLOv6:45.0%AP ,484 FPS
  • YOLOv6:50.0%AP ,226 FPS
  • YOLOv6:52.8%AP ,116 FPS
  • YOLOv6:实时场景中的一流精确度

我们使用NVIDIA T4GPU 在COCO 数据集上对这些模型进行了评估。有关性能指标的更多信息,请参阅 "性能指标"部分。

锚点辅助训练 (AAT) 战略如何使YOLOv6 受益?

YOLOv6 中的锚点辅助训练(AAT)结合了基于锚点和无锚点的方法,在不影响推理效率的情况下增强了模型的检测能力。这一策略在训练过程中利用锚点来改进边界框预测,使YOLOv6 能够有效地完成各种物体检测任务。

Ultralytics 中的YOLOv6 模型支持哪些运行模式?

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



📅 2 年前创建 ✏️ 1 个月前更新
glenn-jocherLaughing-qY-T-GMatthewNoyceRizwanMunawar

评论