YOLOv6

YOLOv6#

作者:Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, MengCheng, Bo Zhang, Zaidan Ke, Xiaoming Xu, Xiangxiang Chu, Meituan Inc.

摘要: YOLOv6 v3.0 是 YOLO 系列的最新版本,它在网络架构和训练策略上进行了全面改进。该版本在 COCO 数据集上取得了显著的性能提升,同时保持了高效的推理速度。YOLOv6 v3.0 的关键特性包括 Bi-directional Concatenation (BiC) 模块、锚点辅助训练 (AAT) 策略、更深的网络设计以及新的自蒸馏策略。

1. 解决的问题: 论文旨在提升 YOLO 系列在实时目标检测中的准确性,同时保持高效的推理速度。

2. 是否是新问题: 这不是一个全新的问题,但 YOLOv6 v3.0 提供了新的解决方案来进一步提升性能。

3. 科学假设: 通过引入 BiC 模块、AAT 策略、更深的网络设计和自蒸馏策略,可以提高目标检测的准确性,同时保持高效的推理速度。

4. 相关研究:

  • YOLO 系列:YOLOv1-3, YOLOv4, YOLOv5, YOLOv7, YOLOv8

  • 其他目标检测框架:YOLOX, PP-YOLOE

  • 网络设计:FPN, BiFPN, PANet

  • 训练策略:自蒸馏 相关研究归类为单阶段目标检测器的发展和优化。领域内值得关注的研究员包括 YOLO 系列的创始人 Joseph Redmon 和 Ali Farhadi。

5. 解决方案关键:

  • BiC 模块: 提供更精确的定位信号。

  • AAT 策略: 结合锚点基础和无锚点范式的优点。

  • 更深的网络设计: 增加网络的深度以提高对大尺寸物体的检测性能。

  • 自蒸馏策略: 提升小模型的性能,同时避免推理速度下降。

6. 实验设计: 实验在 COCO 2017 数据集上进行,使用 FP16 精度在 NVIDIA Tesla T4 GPU 上通过 TensorRT 进行评估。模型性能通过吞吐量和 GPU 延迟来衡量。

7. 数据集和代码: 使用 COCO 2017 数据集进行评估。代码已在 GitHub 上开源:https://github.com/meituan/YOLOv6。

8. 实验结果支持假设: 实验结果表明,YOLOv6 v3.0 在不同规模的模型上都取得了优于现有主流检测器的性能,支持了提出的科学假设。

9. 论文贡献:

  • 提出了 YOLOv6 v3.0,一个为实时目标检测设计的高效框架。

  • 引入了 BiC 模块、AAT 策略、更深的网络设计和自蒸馏策略来提升性能。

  • 在保持推理速度的同时,提高了目标检测的准确性。

  • 开源了实现 YOLOv6 v3.0 的代码。

10. 下一步工作:

  • 进一步优化 YOLOv6 以适应不同的硬件平台和应用场景。

  • 探索更高级的数据增强和训练策略以进一步提升模型性能。

  • 将 YOLOv6 应用于更广泛的视觉任务,如视频理解、多目标跟踪等。

回答问题:

  1. 解决的问题:提升实时目标检测的准确性和推理速度。

  2. 新问题:不是新问题,但提供了新的解决方案。

  3. 科学假设:结合多种优化策略可以提升目标检测性能。

  4. 相关研究:YOLO 系列和其他目标检测框架,由领域内多位重要研究员贡献。

  5. 解决方案关键:BiC 模块、AAT 策略、更深的网络设计、自蒸馏策略。

  6. 实验设计:在 COCO 2017 数据集上测试,使用 TensorRT 在 T4 GPU 上评估。

  7. 数据集和代码:使用 COCO 2017,代码已开源。

  8. 实验结果支持假设:是的,实验结果支持了提出的假设。

  9. 论文贡献:提出了改进的 YOLOv6 框架,提高了目标检测性能,并开源了代码。

  10. 下一步工作:优化 YOLOv6,探索新的训练策略,并将 YOLOv6 应用于更多视觉任务。


yolov6 30-fig1 这张图表展示了YOLOv6与其他模型在COCO数据集上的性能对比,具体包括吞吐量(Throughput)和延迟(Latency)两个方面的表现。图表中使用了Tesla T4 GPU和TensorRT 7进行测试,分别在FP16精度下测量。

图表描述

  • 左图:展示了不同模型在不同吞吐量(FPS)下的COCO AP(平均精度)。

    • 横轴表示吞吐量(FPS),即每秒处理的帧数。

      • 纵轴表示COCO AP(%),即在COCO数据集上的平均精度。

      • 各条曲线代表不同的模型(YOLOv6、YOLOv5、YOLOX、PPYOLOE等)。

  • 右图:展示了不同模型在不同延迟(Latency)下的COCO AP(平均精度)。

    • 横轴表示延迟时间(毫秒)。

    • 纵轴表示COCO AP(%)。

    • 各条曲线代表不同的模型(YOLOv6、YOLOv5、YOLOX、PPYOLOE等)。

性能分析

  • 吞吐量(Throughput)

    • 在左图中,YOLOv6系列模型在高吞吐量下表现出色,尤其是YOLOv6-N和YOLOv6-S在保持较高FPS的同时,达到了较高的COCO AP。

    • YOLOv6-L在较低的FPS下也能保持较高的精度,显示出其在高精度任务中的优势。

    • 相比之下,YOLOv5和YOLOX系列模型在高吞吐量下的精度略低。

  • 延迟(Latency)

    • 在右图中,YOLOv6系列模型在低延迟下表现出色,尤其是YOLOv6-N和YOLOv6-S在保持较低延迟的同时,达到了较高的COCO AP。

    • YOLOv6-L在较高延迟下也能保持较高的精度,显示出其在高精度任务中的优势。

    • 相比之下,YOLOv5和YOLOX系列模型在低延迟下的精度略低。

总结

  • 综合性能

    • YOLOv6系列模型在吞吐量和延迟两个方面都表现出色,尤其是YOLOv6-N和YOLOv6-S在保持高吞吐量和低延迟的同时,达到了较高的COCO AP。

    • YOLOv6-L在需要高精度的任务中表现尤为突出,能够在较低吞吐量和较高延迟下保持高精度。

  • 模型选择

    • 根据具体应用需求,可以选择不同版本的YOLOv6模型。例如,对于需要高吞吐量和低延迟的应用,可以选择YOLOv6-N或YOLOv6-S;对于需要更高精度的应用,可以选择YOLOv6-L。

通过这些对比和分析,可以看出YOLOv6系列模型在目标检测任务中具有显著的优势,能够在不同应用场景中提供高效且高精度的检测性能。


yolov6 30-fig2

这张图展示了YOLOv6模型的结构,具体包括三个部分:RepBi-PAN、BiC模块和SimCSPSPPF模块。以下是对每个部分的描述以及输入输出流程的分析。

(a) RepBi-PAN

  • 结构描述

    • RepBi-PAN是YOLOv6模型的颈部结构,主要用于特征融合和增强。

    • 该结构包含多个RepBlock和卷积层(Conv),通过不同尺度的特征图进行融合。

    • 特征图通过上采样(Upsample)和下采样(Downsample)操作进行多尺度融合。

    • 最终的特征图通过通道维度进行连接(Concatenate)。

  • 输入输出流程

    1. 输入特征图通过多个RepBlock进行处理。

    2. 处理后的特征图通过上采样和下采样操作进行多尺度融合。

    3. 多尺度特征图通过通道维度进行连接,输出融合后的特征图。

(b) BiC Module

  • 结构描述

    • BiC模块用于特征图的上采样和下采样操作。

    • 该模块包含一个上采样层(Upsample)和一个下采样层(Downsample),以及两个卷积层(Conv)。

  • 输入输出流程

    1. 输入特征图通过上采样层进行上采样操作。

    2. 上采样后的特征图通过卷积层进行处理。

    3. 处理后的特征图通过下采样层进行下采样操作。

    4. 下采样后的特征图通过另一个卷积层进行处理,输出最终特征图。

(c) SimCSPSPPF Block

  • 结构描述

    • SimCSPSPPF模块用于特征图的空间金字塔池化(SPP)和跨阶段部分连接(CSP)。

    • 该模块包含多个卷积层(Conv)、池化层(Pooling)和连接操作(Concatenate)。

    • 特征图通过不同尺度的池化操作进行多尺度特征提取,并通过CSP结构进行融合。

  • 输入输出流程

    1. 输入特征图通过多个卷积层进行初步处理。

    2. 处理后的特征图通过不同尺度的池化层进行多尺度特征提取。

    3. 多尺度特征图通过连接操作进行融合。

    4. 融合后的特征图通过CSP结构进行进一步处理,输出最终特征图。

总结

  • RepBi-PAN:用于特征融合和增强,通过多尺度特征图的上采样和下采样操作进行融合。

  • BiC Module:用于特征图的上采样和下采样操作,通过卷积层进行处理。

  • SimCSPSPPF Block:用于多尺度特征提取和融合,通过SPP和CSP结构进行处理。

这些模块共同构成了YOLOv6模型的颈部结构,能够有效地进行特征融合和增强,提高目标检测的精度和效率。


yolov6 3 0-fig3

这张图展示了YOLOv6模型的检测头(Detection Head)结构,包含分类头(Classification Head)和回归头(Regression Head),并在训练期间使用了基于锚点的辅助分支。以下是对每个部分的描述以及输入输出流程的分析。

结构描述

  • 分类头(Classification Head)

    • 包含一个卷积层(Conv)和两个线性层(Linear)。

    • 线性层分为主分支(用于无锚点的分类)和辅助分支(用于基于锚点的分类)。

  • 回归头(Regression Head)

    • 包含一个卷积层(Conv)和两个线性层(Linear)。

    • 线性层分为主分支(用于无锚点的回归)和辅助分支(用于基于锚点的回归)。

  • 标签分配(Label Assignment)

    • 无锚点标签分配(Anchor-free Label Assignment)和基于锚点的标签分配(Anchor-based Label Assignment)分别用于计算无锚点和基于锚点的损失(Loss)。

输入输出流程

  1. 输入特征图

    • 输入特征图首先进入分类头和回归头的卷积层进行初步处理。

  2. 分类头处理

    • 经过卷积层处理后的特征图进入两个线性层。

    • 主分支线性层(Linear)输出无锚点的分类结果(Clsaf)。

    • 辅助分支线性层(Auxiliary Linear)输出基于锚点的分类结果(Clsab)。

  3. 回归头处理

    • 经过卷积层处理后的特征图进入两个线性层。

    • 主分支线性层(Linear)输出无锚点的回归结果(Regaf)。

    • 辅助分支线性层(Auxiliary Linear)输出基于锚点的回归结果(Regab)。

  4. 标签分配和损失计算

    • 无锚点的分类结果(Clsaf)和回归结果(Regaf)通过无锚点标签分配模块进行处理,计算无锚点的损失(Lossaf)。

    • 基于锚点的分类结果(Clsab)和回归结果(Regab)通过基于锚点标签分配模块进行处理,计算基于锚点的损失(Lossab)。

总结

  • 分类头和回归头:分别用于目标的分类和边界框回归,包含主分支和辅助分支。

  • 标签分配和损失计算:在训练期间,使用无锚点和基于锚点的标签分配模块分别计算对应的损失。

在推理阶段,辅助分支会被移除,只保留主分支进行无锚点的分类和回归。 这种设计在训练期间利用了基于锚点的辅助信息,提高了模型的训练效果和最终的检测性能。


yolov6 3 0-table2

这张表格展示了不同YOLO系列检测器在COCO 2017验证集上的性能对比,包括精度、速度、参数量和计算量等多个指标。以下是对表格的详细分析和总结。

表格描述

  • Method:表示使用的模型名称。

  • Input Size:输入图像的尺寸。

  • APval:在COCO验证集上的平均精度(Average Precision)。

  • AP50:在IoU阈值为0.5时的平均精度。

  • AP75:在IoU阈值为0.75时的平均精度。

  • FPS:每秒处理的帧数(Frames Per Second)。

  • Latency:延迟时间(毫秒)。

  • Params:模型的参数量(百万)。

  • FLOPs:每秒浮点运算次数(Giga Floating Point Operations)。

性能分析

  1. 精度(AP)

    • YOLOv6系列模型在不同输入尺寸下的AP表现优异,尤其是YOLOv6-L和YOLOv6-X在640x640输入尺寸下的AP分别达到了52.3%和52.8%。

    • 相比之下,YOLOv5和YOLOX系列模型的AP略低,但仍然表现出色。

  2. 速度(FPS和Latency)

    • YOLOv6系列模型在速度上也表现出色,YOLOv6-N和YOLOv6-S在640x640输入尺寸下的FPS分别达到了177和142,延迟时间分别为5.7ms和7.1ms。

    • YOLOv5和YOLOX系列模型的速度也较快,但在相同输入尺寸下,YOLOv6系列模型的速度更具优势。

  3. 参数量(Params)和计算量(FLOPs)

    • YOLOv6系列模型的参数量和计算量在同类模型中相对较低,尤其是YOLOv6-N和YOLOv6-S,参数量分别为4.4M和9.0M,计算量分别为4.5G和13.0G。

    • YOLOv5和YOLOX系列模型的参数量和计算量相对较高,但在精度和速度上仍然表现出色。

总结

  • 综合性能

    • YOLOv6系列模型在精度、速度、参数量和计算量等多个方面表现出色,尤其是在640x640输入尺寸下,YOLOv6-L和YOLOv6-X的AP分别达到了52.3%和52.8%,同时保持了较高的FPS和较低的延迟。

      • 相比之下,YOLOv5和YOLOX系列模型在精度和速度上也表现出色,但在参数量和计算量上略高。

  • 模型选择

    • 根据具体应用需求,可以选择不同版本的YOLOv6模型。例如,对于需要高精度和高速度的应用,可以选择YOLOv6-L或YOLOv6-X;对于需要低参数量和低计算量的应用,可以选择YOLOv6-N或YOLOv6-S。

通过这些对比和分析,可以看出YOLOv6系列模型在目标检测任务中具有显著的优势,能够在不同应用场景中提供高效且高精度的检测性能。