YOLOv7论文阅读

YOLOv7论文阅读

0.总结

1、基于ELAN的扩展E-ELAN的新模型缩放;
3、模型重参数化(model re-parameterization)(梯度流传播路径);
3、动态标签分配(dynamic label assignment)->粗细标签的指导(知识蒸馏)。

1.摘要

只在MS COCO数据集上开始训练YOLOv7,而没有使用任何其他数据集或预先训练的权重。
性能指标非常好。

2.介绍

1、实时目标检测非常重要
        例如:多目标跟踪、自动驾驶、机器人、医学图像分析等。
2、设备
        CPU或GPU,以及由主要制造商开发的各种神经处理单元(neural processing units,NPU)。我们支持移动的GPU和GPU设备。
3、实时检测发展
        MCUNet和NanoDet:专注于生产低功耗单片机,提高边缘CPU的推理速度。YOLOX和YOLOR:专注于提高各种gpu的推理速度。
    近年来,实时目标探测器的发展主要集中在高效架构的设计上。对于可以在CPU上使用的实时对象探测器,他们的设计主要基于MobileNet、ShufflfleNet或GhostNet。另一个主流的实时对象检测器是为GPU开发的,它们主要使用ResNet、DarkNet或DLA,然后使用CSPNet策略来优化架构。
4、创新点
模型再参数化(model re-parameterization)和动态标签分配(dynamic label assignment)。
        对于模型再参数化,我们用梯度传播路径的概念分析了适用于不同网络中各层的模型再参数化策略,并提出了规划的再参数化模型。
此外,当我们发现使用动态标签分配技术时,多输出层模型的训练会产生新的问题。即:“如何为不同分支的输出分配动态目标?”针对这个问题,我们提出了一种新的标签分配方法,称为粗到细引导标签分配。
5、本文的贡献
(1)设计了几种可训练的方法(track),不提高推理成本、提高检测精度;
(2)发现了两个新的问题及相应解决方法,即重新参数化模块如何取代原始模块,以及动态标签分配策略如何处理对不同输出层的分配。;
(3)我们为实时目标探测器提出了“扩展”和“复合缩放”方法,可以有效地利用参数和计算;

3.准备工作

3.1 实时检测介绍

目前最先进的实时目标探测器主要基于YOLO和FCOS。
要成为最先进的实时目标检测器,需要以下特点:
(1)更快更强的网络架构;
(2)更有效的特征集成方法;
(3)更准确的检测方法;
(4)更鲁棒的损失函数;
(5)更有效的标签分配方法;
(6)是更有效的训练方法。

本文中主要针对4、5、6。

3.2模型重新再参数化

模型重参数化技术在推理阶段将多个计算模块合并为一个计算模块。
模型重参数化技术可看作是一种集成技术,我们可以将其分为模块级集成和模型级集成两类。为了获得最终的推理模型,对于模型级重新参数化有两种常见的实践。
1、是用不同的训练数据训练多个相同的模型,然后对多个训练模型的权重进行平均。
2、是对不同迭代次数下的模型的权重进行加权平均。
模块提升重参数化,这种方法在训练过程中将一个模块分割为多个相同或不同的模块分支,并在推理过程中将多个分支模块集成到一个完全等价的模块中。然而,并不是所有提出的重新参数化的模块都可以完美地应用于不同的架构。考虑到这一点,我们开发了新的重新参数化模块,并为各种架构设计了相关的应用程序策略。

3.3模型缩放

模型缩放是一种扩大或缩小已经设计的模型,并使其适合于不同的计算设备的方法。模型缩放方法通常使用不同的缩放因子,如分辨率(输入图像的大小)、深度(层数)、宽度(通道数)和阶段(特征金字塔数),以便在网络参数的数量、计算量、推理速度和精度方面实现很好的权衡。
网络架构搜索(NAS)是目前常用的模型缩放方法之一。NAS可以在搜索空间中自动搜索合适的缩放因子,而无需定义太复杂的规则。缺点是需要非常复杂的计算来完成对模型缩放因子的搜索。
我们发现几乎所有的模型标度方法都独立分析单个尺度因子,甚至复合标度类别中的方法也独立优化了尺度因子。这样做的原因是因为大多数流行的NAS体系结构处理的比例因子的相关性不是很大。我们观察到,所有基于连接的模型,如DenseNet或VoVNet,当这些模型的深度被缩放时,都会改变某些层的输入宽度。由于所提出的架构是基于连接的,我们必须为该模型设计一种新的复合缩放方法。

4.架构

4.1扩展高效的层聚会结构

YOLOv7论文阅读_第1张图片

在大多数关于设计高效架构的文献中,主要考虑的因素仅仅是参数的数量、计算量和计算密度。
1、分析输入/输出信道比的影响、体系结构的分支数量以及网络推理速度的元素级操作;
2、在执行模型缩放时考虑了激活,即更多地考虑卷积层的输出张量中的元素数量。
3、图(b)中CSPVoVNet的设计是VoVNet的一个变体。除了考虑上述基本设计问题外,还分析了梯度路径,以使不同层的权重能够学习更多样化的特征。
4、图©中的ELAN得出结论:通过控制最短最长梯度路径,更深的网络可以有效地学习和收敛。
5、在本文中,我们提出了基于ELAN的扩展E-ELAN,其主要架构如图(d)所示。
在大规模ELAN中的计算块数,已达到稳定状态。如果更多的计算块被无限地堆叠,这种稳定状态可能会被破坏,参数利用率也会降低。所提出的E-ELAN采用扩展、洗牌、合并基数,可以在不破坏原始梯度路径的情况下不断提高网络的学习能力。在体系结构方面,E-ELAN只改变了计算块中的体系结构,而过渡层的体系结构则完全不变。我们的策略是利用群卷积来扩展计算块的通道和基数。我们将应用相同的组参数和信道倍增器用于计算层的所有计算块。然后,将每个计算块计算出的特征图根据设置的组参数g整分为g组,然后将它们连接在一起。此时,每一组特征图中的通道数将与原始体系结构中的通道数相同。最后,我们添加了g组特征映射来执行合并基数。除了维护原始的ELAN设计架构外,E-ELAN还可以指导不同的计算块组来学习更多样化的特性。

4.2 基于连接模型的模型缩放(Model scaling for concatenation-based models)

YOLOv7论文阅读_第2张图片
模型缩放的主要目的是调整模型的一些属性,生成不同尺度的模型,以满足不同推理速度的需求。
例如,高效网的缩放模型考虑了宽度、深度和分辨率。对于缩放-yolov4,其缩放模型是调整阶段数。上述方法主要用于诸如PlainNet或ResNet等架构中。当这些架构在执行放大缩放或缩小缩放时,每一层的内度和出度都不会发生变化,因此我们可以独立分析每个缩放因子对参数量和计算量的影响。
然而,如果这些方法应用于基于连接的架构,我们会发现当扩大或缩小执行深度,基于连接的翻译层的计算块将减少或增加,如图(a)和(b)所示。
从上述现象可以推断,我们不能对基于连接的模型分别分析不同的比例因子,而必须一起考虑。以放大深度为例,这样的动作会导致过渡层的输入通道和输出通道之间的比率变化,从而导致模型的硬件使用量的减少。因此,我们必须为一个基于连接的模型提出相应的复合模型缩放方法。当我们缩放一个计算块的深度因子时,我们还必须计算该块的输出通道的变化。然后,我们将对过渡层以相同的变化量进行宽度因子缩放,结果如图3©.所示我们提出的复合尺度方法可以保持模型在初始设计时的特性,并保持最优结构。

5 所提出的包

5.1 计划中的重新参数化的卷积

尽管RepConv]在VGG上取得了优异的性能,但当将它直接应用于ResNet和DenseNet和其他架构时,精度将显著降低。
于是,我们使用梯度流传播路径来分析重新参数化的卷积应该如何与不同的网络相结合。我们还相应地设计了计划中的重新参数化的卷积。
YOLOv7论文阅读_第3张图片

RepConv实际上结合了3×3卷积,1×1卷积,和在一个卷积层中的身份连接。通过分析RepConv与不同架构的组合和对应的性能,我们发现RepConv中的身份连接破坏了ResNet中的残差和DenseNet中的连接,这为不同的特征图提供了更多的梯度多样性。基于上述原因,我们使用没有身份连接的RepConv来设计计划中的重新参数化卷积的体系结构。在我们的思维中,当具有残差或连接的卷积层被重新参数化的卷积所取代时,不应该存在身份连接。
图显示了我们在PlainNet和ResNet中使用的“计划重新参数化卷积”的一个示例。

5.2 Coarse for auxiliary and fine for lead loss

YOLOv7论文阅读_第4张图片
1、深度监督常用于训练深度网络。其主要概念是在网络的中间层增加额外的辅助头(extra auxiliary head),以及以辅助损失为导向的浅层网络权值。即使对于ResNet和DenseNet,深度监督仍然可以显著提高模型性能。
图(a)和(b)分别显示了“没有”和“有”深度监督的目标检测器架构。在本文中,我们将负责最终输出的头称为引导头,将用于辅助训练的头称为辅助头。
过去,在深度网络的训练中,标签分配通常与GT进行匹配,并根据给定的规则生成硬标签(hard label)(即01分布,是或者不是,对应的是soft label,即0.1,0.9,可能是可能不是)。然而近年来,研究者经常利用网络预测输出的质量和分布,然后结合GT考虑,使用一些计算和优化方法来生成可靠的软标签(soft label)。例如,YOLO中的IOU函数。在本文中,我们将将预测框与GT框一起考虑,然后将软标签分配为“标签分配者”的机制。

2、发现新问题,即“如何将软标签分配给辅助头和引导头?”
目前最常用的方法的结果如图©所示,即将辅助头和引导头分开,然后使用预测结果和GT来执行标签分配。
本文提出一种新的标签分配方法,通过lead head预测来引导辅助头和引导头。换句话说,我们使用引导头预测作为指导,生成从粗到细的层次标签,分别用于辅助头和引导头的学习。所提出的两种深度监督标签分配策略分别如图(d)和(e)所示。
lead head指导标签匹配(这一部分也即是细soft label)利用lead head的输出结果与ground truth匹配的结果(IOU得到的soft label),并通过优化过程生成软标签。这组软标签将作为辅助头和铅头的目标训练模型。这样做的原因是领导头具有相对较强的学习能力,因此由此产生的软标签应该更能代表源数据与目标之间的分布和相关性。此外,我们还可以将这种学习看作是一种残差学习。通过让较浅的辅助头直接学习铅头已经学习到的信息,铅头将更能专注于学习尚未学习到的残余信息。
由粗到细的lead head指导标签匹配(Coarse-to-fine lead head guided label assigner)同样使用了lead head的预测结果与GT生成soft label。只不过这里用到了两种soft label。一种是粗soft label,一种是细soft label(这里的细应该是指引导头最终通过IOU函数计算得到的soft label,因为学习的更多,所以被称作细;而粗label,是由辅助头从中间网络部分得到的,学习的少,所以叫粗。在训练过程中,会将细soft label当成一个全新的GT,然后与辅助头之间建立损失函数,即辅助头的预测结果也“近似”为领导头)。作者将会在目标检测任务中去优化辅助head的找回率(recall),这样可以避免训练中一些信息的丢失。对于lead head的输出,作者提到将会从高召回率的结果中去过滤高精度(precision)结果并作为最终的输出。
但是,必须注意到,如果粗标签接近于细标签,可能会产生不良影响。因此,为了使这些超粗的正网格的影响更小,我们在解码器中进行了限制,从而使超粗的正网格不能完美地产生软标签。

5.3 其它

非YOLOv7提出的技巧。
(1)批归(BN层):这部分主要将批归一层直接连接到卷积层。其目的是将推理阶段批量归一化的均值和方差整合到卷积层的偏差和权重中。
(2)YOLOR中的隐式知识结合卷积特征映射(convolution feature map)和乘法方式:YOLOR中的隐式知识可以通过推理阶段的预计算简化为向量。这个向量可以与之前或随后的卷积层的偏差和权重相结合。
(3)EMA模型。

6.实验

为edgeGPU、普通GPU和云GPU设计了基本模型,它们分别被称为YOLOv7-tity、YOLOv7和YOLOv7-W6。
同时,使用基本模型对不同的服务需求进行模型缩放,并得到不同类型的模型。对YOLOv7,我们在neck上进行堆栈缩放,并使用所提出的复合缩放方法对整个模型的深度和宽度进行缩放,获得YOLOv7-X。
对于YOLOv7-W6,我们使用新提出的化合物缩放方法得到了YOLOv7-E6和YOLOv7-D6。
此外,我们为YOLOv7-E6使用了EELAN,从而完成了YOLOv7-E6E。
YOLOv7-tincy将使用ReLU作为激活函数。对于其他模型,使用SiLU作为激活函数。

7.结论

本文提出了一种新的实时目标检测器的体系结构和相应的模型缩放方法。解决了重新参数化模块的替换问题和动态标签分配的分配问题。

你可能感兴趣的:(论文阅读,深度学习,YOLO,论文阅读)