SOTA!目标检测开源框架YOLOv6 3.0版本来啦
- 1. 概述
- 2. 关键技术介绍
- 2.1 表征能力更强的 RepBi-PAN Neck 网络
- 2.2 全新的锚点辅助训练(Anchor-Aided Training)策略
- 2.3 无痛涨点的 DLD 解耦定位蒸馏策略
-
3. 总结
1. 概述
1 月 6 日,美团视觉智能部发布了 YOLOv6 3.0 版本,再一次将目标检测的综合性能推向新高。本次更新除了对 YOLOv6-N/S/M/L 模型进行全系列升级之外,还推出了大分辨率 P6 模型。其中,YOLOv6-L6 检测精度达到 57.2% AP,在 T4 卡上推理速度可达 29 FPS,超越 YOLOv7-E6E,取得当前实时目标检测榜单 SOTA。 技术报告 : YOLOv6 v3.0: A Full-Scale Reloading YOLOv6 Github 传送门: https://github.com/meituan/YOLOv6 ,欢迎 Star 收藏,随时取用。2. 关键技术介绍
本次更新主要在 Neck 网络设计、训练和蒸馏策略等方面进行了创新和优化:- 设计了表征能力更强的可重参化双向融合 PAN( RepBi-PAN )Neck 网络;
- 提出了全新的锚点辅助训练( Anchor-Aided Training )策略;
-
提出了解耦定位蒸馏(
Decoupled Location Distillation
)策略以提升小模型的性能。
2.1 表征能力更强的 RepBi-PAN Neck 网络
有效的多尺度特征融合网络对目标检测的效果尤为关键。特征金字塔网络 ( FPN ) 通过自上而下的路径来融合来自骨干网络不同 Stage 的输出特征以弥补网络学习过程中目标位置信息的损失。鉴于单向信息流传输的局限性,PANet 在 FPN 之上添加了一个额外的自底向上路径。BiFPN 为不同的输入特征引入了可学习的权重,并简化了 PAN 以实现更好的性能和更高的效率。PRB-FPN 通过具有双向融合的并行残差 FPN 结构来保留高质量的特征,以进行准确定位。 受到上述工作的启发,我们提出了一个表征能力更强的可重参化双向融合 PAN( RepBi-PAN )Neck 网络。一般而言,骨干网络浅层特征分辨率高,具有丰富的空间信息,有利于目标检测中的定位任务。为了聚合浅层特征,常见的做法是在 FPN 中增加 P2 融合层以及一个额外的检测头,但这往往会带来较大的计算成本。 为了实现更好的精度和时延权衡,我们设计了一个双向联结( Birectional Concatenate, BiC )模块,在自上而下的传输路径中引入自底向上的信息流,使得浅层特征能以更高效的方式参与多尺度特征融合,进一步增强融合特征的表达能力。此模块能够帮助保留更准确的定位信号,这对于小物体的定位具有重要意义。 此外,我们对上一版本的 SimSPPF 模块进行了特征增强优化,以丰富特征图的表示能力。我们发现 YOLOv7 使用的 SPPCSPC 模块能够提升检测精度,但对网络推理速度的影响较大。于是我们对其进行了简化设计,在检测精度影响不大的情况下,大大提升了推理效率。同时,我们引入了可重参数化思想并对 Neck 网络的通道宽度和深度进行了相应的调整。最终 RepBi-PAN 网络结构如下图 2 所示:2.2 全新的锚点辅助训练(Anchor-Aided Training)策略
基于深度学习的目标检测技术从学习范式上主要可分为 Anchor-based 和 Anchor-free 两大类,这两类方法针对不同尺度的目标检测上分别存在不同的优势。我们使用 YOLOv6-N 作为基线,对 Anchor-based 和 Anchor-free 范式的异同点进行了相关的实验和分析。2.3 无痛涨点的 DLD 解耦定位蒸馏策略
在目标检测的蒸馏任务中,LD 通过引入 DFL 分支,从而达到了在网络中对定位信息蒸馏的目的,使分类和定位信息得以同步回传,弥补了 Logit Mimicking 方法无法使用定位蒸馏信息的不足。但是,DFL 分支的添加,对于小模型速度的影响是很明显的。添加了 DFL 分支后,YOLOv6-N 的速度下降了 16.7%,YOLOv6-S 的速度下降了 5.2%。而在实际的工业应用当中,对于小模型速度的要求往往很高。因此,目前的蒸馏策略并不适合于工业落地。 针对这个问题,我们提出了基于解耦检测任务和蒸馏任务的 DLD( Decoupled Location Distillation )算法。DLD 算法会在网络每一层的回归头上分别添加了额外的强化回归分支,在训练阶段,该分支同样会参与 IoU 损失的计算,并将其累加到最终的 Loss 中。 通过增加的额外的强化回归分支,可以对网络添加更多的额外约束,从而对网络进行更全面细致的优化。并且,DLD算法在对强化回归分支进行训练时,引入了分支蒸馏学习策略。分支蒸馏学习策略会仅使用 DFL 分支参与网络标签分配的过程,并将标签分配的结果投入到强化回归分支进行引导学习,从而参与强化回归分支的损失函数计算和反向传播优化。 一方面,DFL 分支的精度更高,在整个训练周期可以起到对强化分支蒸馏的作用,进一步提升强化分支的精度。 另一方面,通过分支蒸馏进行的引导学习,可以进一步将 DFL 分支的效果传递给强化回归分支,为之后的灵活配置起到铺垫作用。 除此之外,DLD 算法同样搭配了灵活配置的训练策略,在训练过程中采用双回归分支结构,对网络进行更全面细致的优化,进一步对齐双分支的回归能力。在测试过程中,移除掉冗余的 DFL 分支,仅保留强化回归分支,在简化网络的同时保持网络精度,最终实现了对目标检测算法可无痛涨点的 DLD 蒸馏算法。DLD 的消融实验结果如下表6所示:3. 总结
本文对 YOLOv6 3.0 版本的技术创新和优化进行了详细解析,希望能帮助用户理解相关算法设计的思路以及具体实现。 未来,我们还会持续完善 YOLOv6 社区生态,同时也欢迎社区同学加入我们,共同建设一个适合工业界应用的更快更准的目标检测框架。 再次附上 YOLOv6 Github 的传送门: https://github.com/meituan/YOLOv6 ,感谢您的 Star 收藏。4. 本文作者
- 楚怡、奕非、露露等,均来自美团视觉智能部。
---------- END ---------- 推荐阅读
| 美团BERT的探索和实践 | Transformer 在美团搜索排序中的实践 | 常识性概念图谱建设以及在美团场景中的应用