本文正在参加 人工智能创作者扶持计划
在计算机视觉的领域中,实时目标检测是一个非常重要的组成分支,由最开始的R-CNN
三件套,到整体结构框架趋于简单化的YOLO
,无论是在检测精度还是在检测速度上都在不断进步。YOLO
的一代代更迭在性能上更是被人们所推崇。今天就通过一篇2022年最新的YOLO论文,带大家了解一下最前沿的图像检测算法。
YOLOv7简介
近些年来,针对于不同的边缘设备,依然在进行实时目标检测器的开发,而且实时目标检测器的发展主要是集中在了有效结构的设计上,分为在CPU上应用和在GPU上应用。然而本文所提方法的发展方向与目前这两种主流的发展方向有区别,除了优化整体的架构,还在训练过程中进行了相关的工作来优化。其重点是设计出了一些新的优化模块和优化方法,并称其为可训练的免费赠品
;在不增加推理成本的基础上,实现精度的提高。
YOLOv7的架构
可扩展高效的层聚合网络
目前,在大多数的关于设计高效架构的方法中,主要考虑的因素还是参数的数量、计算量和计算密度
。
在上面的图中,图b所设计的CSPVoVNet
网络结构其实是图a中的VoVNet
的一种变化体。图b的设计除了考虑到上面提到的基本的设计问题外,还分析了梯度路径,以使不同层的权重能够学习到更多样化的特征,进行梯度分析的优势在于使得推理速度更快、更准确。
图c中的ELAN
方法将“如何设计一个高效的网络”作为着重考虑的设计策略,得出的结论是:通过控制最短和最长的梯度路径,一个更深层的网络可以进行更有效地学习和收敛。本篇文章中提出的方法是基于ELAN
的Extended-ELAN (E-ELAN)
,其结构如图d所示。通过比较图c与图d可以发现,本文所提出的方法并没有改变原来架构的梯度传输路径,而是利用分组卷积来增加新增特征的基数,并以shuffle
和merge
基数的方式将不同组别的特征组合在一起。这种方式可以增强从不同的特征图里学习到的特征,以提高参数和计算的使用率。
本篇文章提出的E-ELAN
方法利用了扩展、shuffle、merge基数,在不破坏原有梯度路径的前提下,实现了不断增强网络学习的能力。架构方面,过渡层是不变的,变化的只是计算块的组成,实现的策略就是利用组群卷积对计算块的通道和基数进行扩展。实现的流程大致如下:
-
首先,对于一个计算层的所有计算块,应用相同的组参数和通道乘法器;
-
然后,将每个计算块计算出来的特征映射按照预先设定的组参数g分配到g个组别里,再将它们拼接在一起;
注意
此时,每组特征映射中的通道数与原先架构中的通道数是相同的。 -
最后,通过添加g组特征映射来执行合并基数。除了保持原有的
ELAN
设计架构外,E-ELAN
还可以指导不同的计算块组学习更多样化的特性。
基于连接模型的模型缩放
模型缩放的主要目的是调整模型的某些属性,生成不同尺度的模型,以满足不同推理速度的需要。
如图所示,是基于连接模型的模型缩放示意图。从图中(a)和(b)可以看出,当进行深度的缩放时计算块的输出宽度也会跟着改变,这就会造成后面的传输层的输入宽度增大,并且影响在一层一层的扩大。所以,对于基于拼接的模型,不能单独分析不同的缩放因子,而必须一起考虑。以放大深度为例,这样的操作会导致过渡层的输入通道和输出通道的比例发生变化,这可能会导致模型硬件使用量的降低。因此,文章提出了一种基于拼接模型的复合模型缩放方法,只需要进行一个计算块的深度缩放,其余的传输层进行相应的宽度缩放。即当缩放一个计算块的深度因子时,还必须计算该块的输出通道的变化。然后,将在过渡层上进行相同变化量的宽度因子缩放,结果如上图 (c)所示。文章提出的复合缩放方法可以保持模型在初始设计时的属性,并保持最优结构。
Trainable bag-of-freebies(可训练的免费赠品)
计划的重新参数化的卷积
在本篇文章中,使用了梯度流传播路径来分析重新参数化卷积应该怎样与不同网络进行结合,相应地还设计了计划的重新参数化的卷积。具体的模型结构如下图。
其中,RepConv
实际上是一个把3×3卷积层、1×1卷积层和标识卷积层结合在一起的卷积层。通过分析RepConv
与不同架构的组合及其性能,可以发现RepConv
中的标识连接破坏了ResNet
中的残差和DenseNet
中的拼接,为不同的特征映射提供了更多样化的梯度。基于此原因,文中使用无单位连接的RepConv (RepConvN)
来设计规划的重新参数化卷积的体系结构。在该思路中,当一个带有残差或串联的卷积层被重新参数化的卷积所取代时,应该没有标识连接。上图展示了设计的用于PlainNet
和ResNet
的“计划重参数化卷积”的示例。在这些模型中,可以发现有剩余连接或者是串联连接的层,其RepConv
不应该有标识连接。在这种情况下,它可以被不包含标识连接的RepConvN
所取代。
辅助头与引导头
上图是一个辅助头与引导头的结构框架图。从图中可以看出与常规模型(a)相比,(b)模式具有辅助头;与通常的独立标签分配器(c)不同,文中提出(d)引导头引导标签分配器和(e)粗至细引导头引导标签分配器。该标签分配器通过前导头预测和地面真实值进行优化,同时得到训练前导头和辅助头的标签。
-
引线头导向标签分配器主要是根据引线头的预测结果和地面真实值进行计算,通过优化过程生成软标签。这套软标签将作为辅助头和带头头的目标训练模型。这样做的原因是引导头具有比较强的学习能力,因此由它生成的软标签应该更能代表源数据和目标数据之间的分布和相关性。此外,可以将这种学习看作是一种广义的剩余学习。通过让较浅的辅助头直接学习先导头已经学习过的信息,先导头将更能够专注于学习尚未学习到的剩余信息。
-
粗至细导标器也利用导标头的预测结果和地面真实值生成软标。但在该过程中,生成了两组不同的软标签,即粗标签和细标签,其中细标签与铅头引导标签分配器生成的软标签相同,粗标签是通过放宽正样本分配过程的约束,允许更多的网格作为正目标来生成的。原因是辅助头的学习能力不如先导头,为了避免丢失需要学习的信息,在目标检测任务中将重点优化辅助头的召回率。对于引线头的输出,可以从高召回率的结果中筛选出高精度的结果作为最终输出。但是必须注意,如果粗标的附加重量接近细标的附加重量,在最终预测时可能会产生不良的先验。因此,为了使那些超粗的正网格影响更小,在解码器中进行了限制,使得超粗的正网格不能完美地产生软标签。上述机制允许在学习过程中动态调整细标签和粗标签的重要性,并使细标签的可优化上界始终高于粗标签。
其它的可训练的免费赠品袋
除了文中设计的方法,这里还列出了一些困扰训练的免费包;这些免费赠品是在训练中使用的一些技巧,但最初的概念并不是这篇文章中提出的。主要包括以下几个方面:
-
在
conv-bn-activation
拓扑中的批量归一化该部分主要将批处理归一化层直接连接到卷积层。这样做的目的是在推理阶段将批归一化的均值和方差整合到卷积层的偏差和权重中。
-
YOLOR
中的隐式知识结合卷积特征映射的加乘方式在推断阶段通过预计算,可以将YOLOR中的隐式知识简化为一个向量。该向量可以与前一层或后续卷积层的偏差和权值相结合。
-
EMA
模型EMA
是mean teacher
中使用的一种技术,在本文的系统中,纯粹使用EMA
模型作为最终的推理模型。
YOLOv7的优势
-
在不增加推理成本的情况下,通过设计了几种不同的
可训练免费赠品袋(trainable bag-of-freebies)
方法,从而大大提高实时目标检测的精度; -
对于目标检测方法的演化,在
重新参数化的模块如何替换原有的模块
和动态标签赋值策略如何处理对不同输出层的赋值
两个问题上,提出了相对应的解决方法; -
提出了利用参数和计算量的实时目标检测器的
扩展
和复合缩放
的方法; -
在现有目标检测方法的基础上,有效地减少了参数和计算量,具有较高的推理速度和检测精度。
结论
文章提出了一种新的实时目标检测器体系结构和相应的模型缩放方法。在该方法的设计中,又发现了目标检测方法在发展过程产生的新研究课题。在研究过程中,发现了重新参数化模块的替换问题和动态标签分配问题。为了解决这一问题,文章提出了可训练的免费赠品袋方法来提高目标检测的准确性。在此基础上,开发了YOLOv7
系列目标检测系统,该系统获得了最先进的结果。
其他
论文中还提到了其他的,比如其他类似目标检测消融实验的细节之类的,这里就不一一列举进行比较了,感兴趣的可以自己去看一下论文。