Paper Reading 6|YOLOv7:Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
摘要
YOLOv7在5FPS到160FPS范围内的速度和精度都超过了所有已知的目标检测算法,在GPU V100上具有30FPS的帧率,在所有已知的30FPS以上的实时目标检测器中,YOLOv7的准确率最高,达到56.8% AP。
Introduction
- 实时目标检测是计算机视觉领域中的一个重要课题,是计算机视觉系统中必不可少的组成部分。在多目标跟踪、自动驾驶、机器人、医学图像分析等领域都有体现。YOLOV7主要希望它能够同时支持移动GPU和从边缘到云端的GPU设备。
- 近年来,针对不同边缘设备的实时目标检测仍在不断发展。
- MCUNet和NanoNet——专注于生产低功耗单片机和提高边缘CPU上的推理速度;
- YOLOX和YOLOR等——专注于提高各种GPU的 推理速度;
- 实时目标检测器——主要集中在高效体系结构的设计上;
- 可以在CPU上使用的实时目标检测器——MobileNet,ShuffleNet或GhostNet
- 针对GPU开发的实时目标检测器——ResNet、DarkNet或DLA(Deep Layer Aggregation,一种深度网络特征融合方法,CVPR2018)
- 本文所提出的方法,其发展方向不同于目前主流的实时目标检测器。除了架构优化之外,该方法是将重点放在训练过程的优化上,即一些优化的模块和优化方法,可能会增强训练成本以提高目标检测的准确性,但不增加推理成本。这种模块和优化方法称为可训练的免费包(bag-of-freebies)。
- 近年来,模型重新参数化(model re-parameterization)和动态标签分配(dynamic label assignment)已成为网络训练和目标检测中的重要课题。在上述新概念提出后,目标检测器的训练又发展出许多新问题,本论文中作者介绍了一些发现的新问题,并设计了解决这些问题的有效方法。
本文的贡献总结:
(1) 我们设计了几种可训练的bag-of-freebies方法,使得实时目标检测可以在不增加推理成本的情况下大大提高检测精度;
(2) 对于目标检测方法的演进,我们发现了两个新问题,即重新参数化的模块如何替换原始模块,以及动态标签分配策略如何处理分配给不同输出层的问题。此外,我们还提出了解决这些问题所带来的困难的方法;
(3) 我们提出了实时目标检测器的“扩展”和“复合缩放”方法,可以有效地利用参数和计算;
(4) 我们提出的方法可以有效减少最先进的实时目标检测器约40%的参数和50%的计算量,并且具有更快的推理速度和更高的检测精度。
相关工作
实时物体检测器
目前最先进的实时目标检测器主要基于 YOLO 和 FCOS .能够成为最先进的实时目标检测器通常需要以下特性:
(1)更快更强的网络架构;
(2) 更有效的特征整合方法;
(3) 更准确的检测方法;
(4) 更稳健的损失函数 ;
(5) 一种更有效的标签分配方法 ;
(6) 更有效的训练方法。
在本文中,将针对与上述 (4)、(5) 和 (6) 相关的最先进方法衍生的问题设计新的可训练免费赠品方法。
模型重新参数化
模型重新参数化是在推理阶段将多个计算模块合并为一个。有两种方法:
模块级集成:模块级重新参数化是最近比较热门的研究问题。这种方法在训练时将一个模块拆分为多个相同或不同的模块分支,在推理时将多个分支模块整合为一个完全等效的模块。
模型级集成:模型级重新参数化有两种做法来获得最终的推理模型。一种是用不同的训练数据训练多个相同的模型,然后对多个训练模型的权重进行平均。另一种是对不同迭代次数的模型权重进行加权平均。
模型缩放
模型缩放是一种放大或缩小已设计模型并使其适合不同计算设备的方法。模型缩放方法通常使用不同的缩放因子,例如分辨率(输入图像的大小)、深度(层数)、宽度(通道数)和阶段(特征金字塔的数量),从而在网络参数量、计算量、推理速度和准确率之间取得良好的折衷。
NAS(Network architecture search,网络架构搜索)是一种常用的模型扩展方法。
- 优点:从搜索空间中自动搜索合适的缩放因子,而不需要定义太复杂的规则;
- 缺点:需要非常昂贵的计算来完成模型缩放因子的搜索。
通过查阅文献发现几乎所有的模型缩放方法都是独立分析单个缩放因子的,甚至复合缩放类别中的方法也是独立优化缩放因子的。这是因为大多数流行的NAS架构都处理不太相关的伸缩因子。
网络结构
扩展的高效层聚合网络
在大多数关于高效建筑结构设计的文献中,主要考虑的因素在于参数的数量、计算量和计算密度,有些还涉及到内存访问代价等,分析输入/输出信道比、体系结构分支数量和单元操作对网络推理速度的影响。上图(b)中的CSPVoVNet设计时VoVNet的变体,CSPVoVNet的架构除了考虑上述的基本设计问题外,还对梯度路径进行了分析,使不同层的权值能够学习到更多样化的特征,这样的梯度分析方法使推断更快、更准确。上图(c)中的ELAN考虑了以下设计策略——通过控制最短最长梯度路径,深度网络可以有效学习和收敛。在本文中,作者提出了基于ELAN的Extended-ELAN(E-ELAN),其主要架构如上图(d)所示。
Partial -> Partial Convolutional (部分卷积)
部分卷积的概念由英伟达在ECCV2018发表的论文《Image Inpainting for Irregular Holes Using Partial Convolutions》中提出,最初用于图像修复。
哪天想起来了爷再看。
基于串联的模型的模型缩放
模型缩放的主要目的是调整模型的一些属性,生成不同尺度的模型,以满足不同推理速度的需要。例如,EfficientNet的缩放模型考虑了宽度、深度和分辨率;scaled-YOLOv4的缩放模型是调整阶段数。上述方法主要应用于PlainNet、ResNet等架构中,当这些架构在执行放大或缩小时,每一层的入度和出度不会发生变化,因此我们可以独立分析每个缩放因子对参数量和计算量的影响。然而,如果将这些方法应用到基于连接的体系结构中,我们将发现当对深度进行放大或缩小时,位于基于连接的计算块之后的转换层的程度将减少或增加,如上图的 (a)和(b)所示。
从上述现象可以推断,对于基于串联的模型,我们不能单独分析不同的缩放因子,而必须综合考虑。以scaling-up depth为例,这样的动作会导致transition layer的输入通道和输出通道的比例发生变化,这可能会导致模型的硬件使用率下降。因此,我们必须为基于级联的模型提出相应的复合模型缩放方法。当我们缩放计算块的深度因子时,我们还必须计算该块的输出通道的变化。然后,我们将对过渡层进行等量变化的宽度因子缩放,结果如上图(c)所示。我们提出的复合缩放方法可以保持模型在初始设计时的特性并保持最佳结构。
可训练的bag-of-freebies
重新参数化卷积
问题:虽然RepConv在VGG上已经取得了优异的性能,但将其应用在ResNet和DenseNet等架构时,其精度会显著降低;
原因:RepConv实际上是在一个卷积层中结合了3×3卷积、1×1卷积和恒等连接。但 RepConv 中的恒等连接破坏了 ResNet 中的残差和 DenseNet 中的连接,因此文中提出了RepConvN;
解决方法:用梯度流传播路径来分析重新参数化卷积如何与不同的网络相结合,并据此设计了规划的重新参数化卷积,即RepConvN。
具体描述:当一个带有残差或连接的卷积层被重新参数化的卷积取代时,应该没有恒等连接。
上图显示了在PlainNet和ResNet中使用的“Planned re-parameterized convolution”的示例。
标签分配(粗为辅助,细为主要损失)
深度监督是一种常用的深度网络训练技术。其主要思想是在深度神经网络的某些中间隐藏层加了一个辅助的分类器作为一种网络分支来对主干网络进行监督。
YOLOv7将负责最终输出的头部称为引导头(lead head),辅助训练的头部称为 辅助头(auxiliary head).
问题:
过去:标签分配通常直接指向ground truth,根据给定的规则生成硬标签;
近年:以目标检测为例,利用网络预测输出的质量和分布,再结合真实信息考虑,使用一些计算和优化方法生成可靠的软标签。如YOLO利用bounding box回归预测IoU和ground truth作为软标签;
目前:针对“如何将软标签分配给辅助头和引导头”的问题还没有相关文献进行探讨;
本文作者将网络预测结果和地面真实值一起考虑,然后分配软标签的机制称为标签分类器
- 解决方法:
- 流行方法:是将辅助头和引导头分开,利用各自的预测结果和ground truth执行标签分配。
- 本文方法:通过引线头预测同时引导辅助引线头和引线头的标签分配新方法。也就是说,我们以导头预测为指导,生成粗到细的层次标签,分别用于辅助导头学习和导头学习。
这两种深度监管标签分配策略如下图所示:
- 导头引导标签分配器:根据根据引导头的预测结果和ground truth进行计算,通过优化过程生成软标签。这套标签将作为辅助头和导头的目标获取训练模型。这样做的原因是lead head具有较强的学习能力,因此由它生成的软标签应该更能代表源数据与目标数据之间的分布和相关性。此外,可以把这种学习看作一种广义剩余学习,通过让较浅的辅助头直接学习引导头已经学习过的信息,引导头将更能专注于学习尚未学习到的剩余信息。
- 粗到细导头引导标签分配器:利用引导头的预测结果和ground truth生成软标签,但是,在这个过程中生成了两组不同的软标签,即粗标签和细标签,其中细标签与引导头引导标签分配器生成的软标签相同,而粗标签是通过降低正样本分配过程的约束没让更多的网络作为正目标来生成的。这是因为辅助头的学习能力不如导头强,为了避免丢失学习的信息,重点将优化辅助头在对象检测任务中的回忆。对于引导头的输出,可以从高查全率的结果中过滤出高精度的结果作为最终输出。
ground truth:基准真相,是一个相对概念。它是指相对于新的测量方式得到的测量值,作为基准的,由已有的、可靠的测量方式得到的测量值(即经验证据)。人们往往会利用基准真相,对新的测量方式进行校准,以降低新测量方式的误差和提高新测量方式的准确性。机器学习领域借用了这一概念。使用训练所得模型对样本进行推理的过程,可以当做是一种广义上的测量行为。因此,在有监督学习中,ground truth 通常指代样本集中的标签。可以理解为真实信息。
其他可训练的bag-of-freebies
- 批处理归一化:将批处理归一化直接连接到卷积层;
- YOLOR中的隐形知识结合卷积特征映射的加法和乘法方式:通过推理阶段的预计算,将YOLOR中的隐性知识简化为向量,该向量可以与前一层或后一层的偏差和权重相结合;
- EMA模型:EMA是mean teacher中使用的一种技术,在本文中使用EMA模型作为最终推断模型。