本文共 2629 字,大约阅读时间需要 8 分钟。
YOLOv7在实时检测任务中展现了显著的性能优势,其在速度和精度之间的平衡远超现有模型。与YOLOv5相比,YOLOv7在相同体量下实现了更高的检测精度,同时在推理速度上提升了120%的FPS,显著提升了实时检测的效率。
近年来,模型结构重参数化和动态标签分配已成为网络训练和目标检测中重要的优化方向。然而,现有方法仍存在一些不足之处,例如:
本文提出了一些关键技术和方法,具体包括:
当前最先进的目标检测器通常具有以下特点:
模型级重参数化主要有两种操作方式:
模块重参数化是近年来一个比较流行的研究课题。在训练过程中将一个整体模块分割为多个相同或不同的模块分支,但在推理过程中将多个分支集成到一个完全等价的模块中。然而并不是所有提出的重参数化的模块都可以完美地应用于不同地架构。因此作者开发了新的重参数化的模块,并为各种架构设计了相关的应用程序策略。
模型缩放通过扩大或缩小baseline中rate,使其适用于不同的计算设备。NAS是现在常用的模型缩放方法之一。缩放因子通常包括以下内容:
在高效聚合网络的设计中,除了传统的参数量、计算量和计算密度外,还需要从内存访存的角度出发考虑输入/输出信道比、架构的分支数和元素级操作对网络推理速度的影响。Shufflenet论文提出了这一观点。在执行模型缩放时还需考虑激活函数,即更多地考虑卷积层输出张量中的元素数量。
CSPVoVNet是VoVNet的一个变体,前者的体系结构还分析了梯度路径,使不同层能够学习更多样化的特征。E-ELAN是基于ELAN的扩展版本,在大规模ELAN中,无论梯度路径长度和计算模块数量如何,都达到了稳定的状态。但如果更多计算模块被无线堆叠,这种稳定状态可能会被破坏,参数利用率也会降低。本文提出地E-ELAN采用expand、shuffle、merge cardinality结构,实现在不破坏原始梯度路径情况下,提高网络地学习能力。
在体系结构方面,E-ELAN只改变了计算模块中的结构,而过渡层结构则完全不变。作者的策略:利用分组卷积来扩展计算模块的通道和基数,将相同的group parameter和channel multiplier用于计算每一层中的所有模块。然后,将每个模块计算出的特征图根据设置的分组数打乱成G组,最后将它们连接在一起。这样,每一组特征图中的通道数将与原始体系结构中的通道数相同。最后,作者添加了G组特征来merge cardinality。除了维护原始的ELAN设计架构外,E-ELAN还可以指导不同的分组模块来学习更多样化的特性。
尽管RepConv在VGG上取得了优异的性能,但将它直接应用于ResNet和DenseNet或其他网络架构时,它的精度会显著降低。作者使用梯度传播路径来分析不同的重参化模块应该和哪些网络搭配使用。通过分析RepConv与不同架构的组合以及产生的性能,作者发现RepConv中的identity破坏了ResNet中的残差结构和DenseNet中的跨层连接。
深度监督是一种常用于训练深度网络的技术,其主要概念是在网络的中间层增加额外的辅助头(Google也是这样),以及以辅助损失为指导的浅层网络权重。尽管对于像ResNet和DenseNet这样收敛效果好的网络结构,深度监督仍然可以显著提高模型在许多任务上的性能。本文中提出的方法是一种新的标签分配方法:通过引导头的预测来引导辅助头。首先使用引导头的预测作为指导,生成从粗到细的层次标签,分别用于辅助头和引导头的学习。这样做的目的是使引导头具有较强的学习能力,由此产生的软标签更能代表源数据与目标之间的分布差异和相关性。此外,作者还可以将这种学习看作是一种广义上的余量学习。通过让较浅的辅助头直接学习引导头已经学习到的信息,引导头能更加专注于尚未学习到的残余信息。
该部分内容较为详细,建议阅读原文查看具体实验结果。
转载地址:http://zqqfz.baihongyu.com/