近日,美团视觉智能部公布了 YOLOv6 3.0 版本,再一次将指标检测的综合性能推向新高。本次更新除了对 YOLOv6-N/S/M/L 模型进行全系列降级之外,还推出了大分辨率 P6 模型。其中,YOLOv6-L6 检测精度和速度超过 YOLOv7-E6E,获得以后实时指标检测榜单 SOTA。本文次要介绍了 YOLOv6 3.0 版本中引入的技术创新和优化,心愿能为从事相干工作的同学带来一些启发或帮忙。
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 珍藏,随时取用。
注:YOLOv6 系列模型均在训练 300epoch 且不应用预训练模型或额定检测数据集下取得,“‡”示意采纳了自蒸馏算法,“*”示意从官网代码库对公布模型进行从新测评的指标。以上速度指标均在 T4 TRT7.2 环境下测试。
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 能够看到,在 YOLOv6-S/L 模型上,仅在 PAN 网络自上而下的传输门路引入 BiC 模块后,对推理速度影响放弃在 4% 的状况下,检测精度别离晋升 0.6% 和 0.4% AP。当咱们尝试额定地在自底向上的信息流中将惯例联结替换成 BiC 模块时,反而没有取得进一步正向的增益,因而咱们仅在自上而下的门路中利用 BiC 模块。与此同时,咱们还留神到,BiC 模块可能为小指标的检测精度带来 1.8% AP 的晋升。
在表 3 中,咱们对不同的 SPP 模块对模型精度和速度影响做了试验比照,其中包含通过咱们简化设计的 SPPF、SPPCSPC 和 CSPSPPF 模块。除此之外,咱们还尝试了在骨干网络 C3、C4 和 C5 的输入特色后别离采纳了 SimSPPF 模块以增强特色的聚合表白,在表中用 SimSPPF * 3 示意。从试验后果来看,重复使用 SimSPPF 模块尽管减少了计算量,但并没有带来检测精度的进一步晋升。
经简化设计的 SPPCSPC 模块比照 SimSPPF 模块 在 YOLOv6-N/S 模型上别离晋升了 1.6% 和 0.3% AP,但对推理速度 FPS 升高约 10%。而当咱们将 SimSPPF 模块替换为优化后的 SimCSPSPPF 模块后,在 YOLOv6-N/S/M 模型上别离获得了 1.1%/0.4%/0.1% 的精度增益,同时推理速度比照 SimSPPCSPC 模块有较大的晋升。因而,为了更好的精度 - 效率衡量,在 YOLOv6-N/S 上采纳 SimCSPSPPF 模块,而在 YOLOv6-M/L 上采纳 SimSPPF 模块。
2.2 全新的锚点辅助训练(Anchor-Aided Training)策略
基于深度学习的指标检测技术从学习范式上次要可分为 Anchor-based 和 Anchor-free 两大类,这两类办法针对不同尺度的指标检测上别离存在不同的劣势。咱们应用 YOLOv6-N 作为基线,对 Anchor-based 和 Anchor-free 范式的异同点进行了相干的试验和剖析。
从表 4 中能够看出,当 YOLOv6-N 别离采纳 Anchor-based 和 Anchor-free 训练范式时,模型的整体 mAP 简直靠近,但采纳 Anchor-based 的模型在小、中、大指标上的 AP 指标会更高。从以上的试验能够得出结论:相比于 Anchor-free 范式,基于 Anchor-based 的模型存在额定的性能增益。
同时咱们发现,YOLOv6 应用 TAL 进行标签调配时,其模型精度的稳定性与是否采纳 ATSS 预热有较大关系。当不应用 ATSS 预热时,对同样参数配置的 YOLOv6-N 进行屡次训练,模型精度最高可达 35.9% mAP,最低至 35.3% mAP,雷同模型会有 0.6% mAP 的差别。但当应用 ATSS 预热时,模型精度最高却只能达到 35.7% mAP。从试验后果能够剖析得出,ATSS 的预热过程利用了 Anchor-based 的预设信息,进而达到稳固模型训练的目标,但也会在肯定水平上限度网络的峰值能力,因而并不是一种最优的抉择。
受到上述工作的启发,咱们提出了基于锚点辅助训练(Anchor-Aided Training,AAT)策略。在网络训练过程中,同时交融 Anchor-based 和 Anchor-free 的两种训练范式,并对全阶段网络进行映射及优化,最终实现了 Anchor 的对立,充分发挥了联合不同 Anchor 网络的各自劣势,从而进一步晋升了模型检测精度。具体来说:
- 一方面,咱们会在网络的分类头和回归头上别离增加 Anchor-based 辅助分支,在训练阶段,该分支与 Anchor-free 分支别离进行独立的 Loss 计算,之后会对 Loss 进行相加,各自反向流传进行网络的优化。通过 Anchor-based 辅助分支,为网络训练引入额定的内嵌领导信息,并与 Anchor-free 分支的信息进行整合,从而达到对联合不同 Anchor 网络的全方位交融的目标,进一步开掘网络本身的后劲,充分发挥其效力。
- 另一方面,在网络标签匹配的过程中引入了同特色点密集采样的机制。通过扩充每次样本匹配过程中所选取候选框的范畴,减少候选框中正样本的数量,并且对同一特色点反复投放采样点,进一步晋升在训练过程中候选框的品质。与此同时,在网络的每一层中还会搭配原始的 Anchor-free 分支,进一步晋升候选框的多样性。
除此之外,咱们还提出灵便配置的训练策略,仅在训练过程中引入额定的辅助分支,在测试过程中不予应用。最终在不减少推理工夫的状况下,晋升网络精度,无痛涨点。最终 AAT 策略的示意图如下图 3 所示:
采纳 AAT 训练策略的融化试验后果如下表 5 所示。咱们在 YOLOv6 的各尺寸模型上进行了试验,其中 YOLOv6-S 模型采纳 AAT 策略后有 0.3% 的精度增益,而在 YOLOv6-M/L 模型上别离带来了 0.5% 的精度增益。值得注意的是,YOLOv6-N/S/M 在小指标检测的精度指标失去了显着加强。
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 所示:
在表 6 中,咱们在 YOLOv6-S 模型上别离比照了训练双倍轮数和采纳 DLD 策略对模型性能的影响,从试验数据能够看出,当训练 600epoch 时,YOLOv6-S 仅能达到 44.6% mAP。而采纳 DLD 蒸馏策略后,YOLOv6-S 检测精度比应用双倍轮数训练的高 0.5%,最终达到 45.1%。由此可得,DLD 蒸馏策略可在不影响推理效率的前提下,晋升小模型的检测精度,实现无痛涨点。
3. 总结
本文对 YOLOv6 3.0 版本的技术创新和优化进行了具体解析,心愿能帮忙用户了解相干算法设计的思路以及具体实现。
将来,咱们还会继续欠缺 YOLOv6 社区生态,同时也欢送社区同学退出咱们,独特建设一个适宜工业界利用的更快更准的指标检测框架。
再次附上 YOLOv6 Github 的传送门:https://github.com/meituan/YOLOv6,感谢您的 Star 珍藏。
4. 作者简介
- 楚怡、奕非、露露等,均来自美团视觉智能部。
浏览更多
| 在美团公众号菜单栏对话框回复【2022 年货】、【2021 年货】、【2020 年货】、【2019 年货】、【2018 年货】、【2017 年货】等关键词,可查看美团技术团队历年技术文章合集。
| 本文系美团技术团队出品,著作权归属美团。欢送出于分享和交换等非商业目标转载或应用本文内容,敬请注明“内容转载自美团技术团队”。本文未经许可,不得进行商业性转载或者应用。任何商用行为,请发送邮件至 tech@meituan.com 申请受权。