附加器

YOLOv7一种新的集成免费训练技巧

发布时间:2023/5/12 13:47:05   
白癜风医院诚信承诺 http://m.39.net/pf/bdfyy/bdfzd/

本文由适创科技智测皓微团队工程师撰写,文章聚焦于YoLov7的算法与实现,从原理出发,详尽解析了YoLo新版本对于目标检测的创新之处。

前言

近年来,许多深度学习模型应用于边缘设备上,比如手机上的CPU和GPU,或者许多厂商自研的NPU。越来越多的实时目标检测器算法被研发应用于上述芯片,比如MCUNet和NanoDet聚焦于低功率单芯片的边缘CPU,YOLOX和YOLOR聚焦于优化不同GPU上的推理速度,MobileNet、ShuffleNet、GhostNet等实时检测器聚焦于CPU推理模型的最优结构。

本文作者提出的实时目标检测器YOLOv7主要面向从边缘设备到云端的各种CPU和GPU,主要创新点包括:

1、在训练中采用多种“免费”训练技巧,极大地提高了实时检测器的检测精度。其中“免费”指仅在训练过程中起作用,不增加推理过程时间消耗。

2、解决了两个在模型训练中的问题:即重参数化方法在残差结构中的应用问题和多输出层中的动态标签分配问题。

3、提出了一种复合放缩的方法来更有效地利用实时检测器的参数和计算量。

4、YOLOv7比当前最优模型参数量小,计算量少,拥有更快的推理速度和更高的检测精度。

模型结构优化:

扩展有效层聚合网络

在模型设计阶段,作者回顾了一些其他的模型设计准则。ShuffleNetV2考虑到了输入输出特征通道数比、模型分支数量、逐点元素操作、内存访问效率等影响网络推理速度的因素。有效层聚合网络(ELAN)算法通过控制最短最长梯度路径,可以使一个更深的模型更有效地学习和收敛。但是ELAN模型在合适的梯度路径和计算模块数量的情况下已经达到了一个平衡态,当添加更多计算模块时,这种平衡态会被打破,模型参数利用率会下降。YOLOv7作者参考了上述结构,提出了Extended-ELAN(E-ELAN)。E-ELAN采用了ELAN类似的特征聚合和特征转移流程,仅在计算模块中采用了类似ShuffleNet的分组卷积、扩张模块和混洗模块,最终通过聚合模块融合特征。通过采用这种方法可以获得更加多样的特征,同时提高参数的计算和利用效率。

模型结构优化:

基于拼接的模型放缩

模型放缩的主要目的就是通过调整基础模型的放缩参数来获得满足不同推理速度需求的模型结构。例如之前的EfficientNet考虑了深度、宽度和分辨率这几个缩放因子,scale-YOLOv4调整阶段模块个数。之前的方法采用的模型主要是PlainNet或者ResNet,这些模型的一个特点是层的输入通道数和输出通道数是相同的,调整深度因子或者宽度因子不会对另一个因子产生影响。然而基于拼接的模型放缩后,拼接层的通道数会增加或者减少而不是保持不变,如图中(a)和(b)所示。为了解决这个问题,YOLOv7作者采用复合模型放缩方法,如上图(c)所示,在修改深度因子后,计算转移层对应宽度变化的比例,然后对宽度施加同样的宽度缩放。即宽度缩放因子是通过深度缩放因子带来的模型改变计算出来。这样做的好处是使模型保持最初设计,保持最优的结构模型。

上表是作者实验不同模型缩放方法的消融实验结果,采用本文提出的放缩方法得到的v7-X模型,比单独放缩深度(1.25倍)和宽度(2倍)的模型拥有更少的参数和更高的精度。

重参数化技巧

RepConv通过重参数化在VGG结构上获得了很好的表现。但当将该技巧应用于ResNet和DenseNet等其他结构上时却效果变差。RepConv通常的结构是将一个3x3卷积、1个1x1卷积和1个恒等连接组合在一个卷积层,作者通过实验发现,RepConv中的恒等连接会提供更多不一样的梯度信息,导致模型与ResNet中的恒等连接表现不同。因此作者在YOLOv7中采用了不带恒等连接的RepConv,并命名为RepConvN。上图表示作者通过实验在原始PlainNet和ResNet上不同位置替换到RepConv的实验结果,(a)(c)表示原始模块结构,对号表示实验过后有效的适合重参数化的模型结构,错号表示不适合的结构。

多标签分配策略

深度监督信息是在模型中添加额外监督信息来提升模型性能的一种技术,在即使是ResNet和DenseNet这种收敛的比较好的模型上都有提升。上图中(a)和(b)分别是有额外分支和没有额外分支的网络结构图,其中主导头(leadhead)表示负责最终输出的特征图,辅助头(auxiliaryhead)表示用于辅助训练额外添加的训练分支的特征图。

在深度网络的训练中,标签分配通常直接指的是真值(groundtruth),并根据给定的规则生成硬标签(hardlabel)。然而近年来,以目标检测为例,研究者经常利用网络预测的质量分布来结合真值,使用一些计算和优化方法来生成可靠的软标签(softlabel)。例如,YOLO使用预测框和真值的IoU作为软标签。在本文中,作者将网络预测结果与真值计算后再分配软标签的机制称为“标签分配器”(labelassigner)。目前最常用的方法如上图(c)所示,即将辅助头和主导头分离,然后利用它们各自的预测结果和真值执行标签分配。本文提出了两种标签分配器:主导头主导的标签分配器和由粗到精的主导头标签分配器。

主导头主导的标签分配器将预测结果和真值进行计算,并通过优化过程生成软标签。这组软标签将作为辅助头和主导头的训练目标来训练模型。这样做的目的是使主导头具有较强的学习能力,由此产生的软标签更能代表源数据与目标之间的分布差异和相关性。作者还将这种学习看作是一种广义上的余量学习,让较浅的辅助头直接学习主导头已经学习到的信息,这样主导头能更加专注于尚未学习到的残余信息。

由粗到精的主导头标签分配器使用了自身的预测值和真值来生成两组不同的软标签,即粗标签和细标签。其中细标签与主导头在标签分配器上生成的软标签相同,粗标签是通过放松正样本限制条件,从而允许更多样本被分为正样本。原因是一个优秀的辅助头并不需要强大的分辨正负样本的能力,而是需要尽可能学习到足够目标信息保证召回率,对于粗标签的学习就可以达到这个目的。而主导头需要学习到能精确分辨正负样本的能力,因此才需要更加准确的细标签。同时作者发现,如果粗标签的附加权重接近细标签的附加权重,可能会在最终预测时产生错误的先验结果,作者在这里设置限制使得粗标签永远大于细标签,使细标签成为粗标签上界,表6和表7分别表明该方法能有效提升模型准确率。

作者在试验后也将四种方法的检测头以可视化的形式画出来,可以发现在红圈标注的位置本文提出的方法(上图(d)(e))比单独使用主导头(上图(c))和辅助头(上图(b))能够学到更加准确和有用的特征。

其他“免费”训练技巧

1、合并BN与卷积层:目的是在推理阶段将批归一化的均值和方差整合到卷积层的偏差和权重中,可以加速推理。

2、YOLOR中的隐式知识结合卷积特征映射和乘法方式:YOLOR中的隐式知识可以在推理阶段将计算值简化为向量。这个向量可以与前一层或后一层卷积层的偏差和权重相结合。

3、EMAModel:EMA是一种在meanteacher中使用的技术,作者使用EMA模型作为最终的推理模型

实验结果与结论

网络结构方面,作者为边缘GPU、普通GPU和云GPU设计了三种模型,分别被称为YOLOv7-Tiny、YOLOv7和YOLOv7-W6。同时,还使用基本模型针对不同的服务需求进行缩放,并得到不同大小的模型。对于YOLOv7进行堆叠瓶颈缩放,并使用所提出的复合缩放方法对整个模型的深度和宽度进行缩放,此方法获得了YOLOv7-X。对于YOLOv7-W6,使用提出的缩放方法得到了YOLOv7-E6和YOLOv7-D6。此外,在YOLOv7-E6使用了提出的E-ELAN,从而完成了YOLOv7-E6E。由于YOLOv7-tiny是一个面向边缘GPU架构的模型,因此它将使用ReLU作为激活函数,对于其他模型,使用SiLU作为激活函数。

与当前检测器相比,YOLOv7模型有更高的检测精度和更少的参数量,超过目前已有的其他检测算法。作者还强调仅仅采用了COCO数据集从头训练,没有采用其他的额外数据集。

值得一提的是,作者最后在论文里也提出,与其他最新的目标检测算法相似,通过调整IoU阈值,可以获得测试集上的更高检测精度结果。另外论文里也没有说明是跑了多少个epoch的结果。根据经验,随着迭代轮次提升,准确率也会有微小提升。

作者:安宇

适创科技视觉与优化产品部,图像算法工程师,主要

转载请注明:http://www.aideyishus.com/lkzp/4476.html

------分隔线----------------------------