【论文精读】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

发布于:2022-11-28 ⋅ 阅读:(2544) ⋅ 点赞:(2)

本系列提供的论文翻译均为人工翻译,全文无机翻,由于知识储备有限,部分极专业名词可能存在翻译错误,仅作参考,供学习交流使用,转载请注明出处。

【原文】YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
【译文】YOLOv7:“可训练免费包”——创造实时目标检测模型新科技
【原文】Chien-Yao Wang, Alexey Bochkovskiy, and Hong-Yuan Mark Liao
【译文】王建尧、亚历克谢·博奇科夫斯基、廖弘源
【原文】Institute of Information Science, Academia Sinica, Taiwan
【译文】中央研究院 资讯科学研究所(中国台湾地区)
【原文】
在这里插入图片描述
【译文】摘要:YOLOv7在速度和精度方面,已经超过了所有已知的范围在5FPS到160FPS的目标检测算法,在30FPS或者更高的GPU V100中,更是具有超越其他已知的目标检测算法的最高检测精度56.8%AP。TOLOv7-E6版本的目标检测模型(56 FPS V100,55.9% AP)比基于Transform的检测模型SWIN-L Cascade-Mask R-CNN(9.2 FPS A100,53.9% AP)的速度和精度分别高出509%和2%,比基于卷积的检测模型ConvNeXt-XL Cascade-Mask R-CNN (8.6 FPS A100, 55.2% AP) 的速度和精度高出551%和0.7%。YOLOv7在速度和精度上优于YOLOR、YOLOX、Scaled-YOLOv4、YOLOv5、DETR、Deformable DETR , DINO-5scale-R50, ViT-Adapter-B和许多其他目标检测模型。此外,我们仅仅使用MS COCO数据集进行YOLOv7的训练,并没有使用任何其他数据集或预训练的权重。项目资源已经发布至https://github.com/WongKinYiu/yolov7
【原文】1. Introduction
【译文】1. 介绍
【原文】
在这里插入图片描述
【译文】实时目标检测算法是计算机视觉领域中一个非常重要的课题,因为它常常是计算机视觉系统中的一个必要组成部分。例如,多目标跟踪[94,93]、自动驾驶[40,18]、机器人[35,58]和医学图像分析[34,46]等。执行实时目标检测的计算设备通常是一些移动CPU或GPU,以及由主流制造商开发的各种神经处理单元(NPU)。例如,Apple神经引擎(苹果)、神经计算棒(英特尔)、Jetson AI边缘设备(英伟达)、边缘TPU(谷歌)、神经处理引擎(高通)、人工智能处理单元(联发科技)和AI SoCs(耐能)都是NPU。上述一些边缘设备专注于加速不同的操作,如普通卷积、深度卷积或多层感知机操作。在本文中,我们提出的实时目标检测模型主要致力于支持移动GPU和GPU设备的边缘云计算的同时进行。
【原文】
在这里插入图片描述
【译文】近年来,针对不同边缘设备的实时目标检测技术一直在发展。举个例子,MCUNet[49,48]和NanoDet[54]注重生产低功耗的单片机和提高在边缘CPU上的运算速度。对于YOLOX[21]和YOLOR[81]等,他们则更加注重提高在各种类型的GPU上的运行速度。在更近的一段时间里,实时目标检测模型的发展主要集中在高效的架构设计上。就可以在CPU上使用的实时对象检测模型[54,88,84,83]来说,他们的设计更多的基于Mobile Net[28,66,27]、ShuffleNet[92,55]或GhostNet[25]。另一种主流实时对象检测模型是为GPU开发的[81,21,97],他们中的大多数使用ResNet[26]、DarkNet[63]或者DLA[87],然后使用CSPNet[80]策略优化架构,本问提出的方法的发展方向不同于目前主流的实时目标检测模型。除了架构的优化之外,我们提出的方法将侧重于优化训练过程,我们将重点关注一些优化模块和优化方法,这些模块和方法可能会增加训练成本,以提高目标检测的准确性,但不会增加推理成本。我们将这些优化模块和优化方法称为“可训练免费包”。
【原文】
在这里插入图片描述
【译文】图1:与其他实时目标探测模型相比,我们提出的方法达到了最先进的性能
【原文】
在这里插入图片描述
【译文】最近,模型的再参数化[13,12,29]和动态标签分配[20,17,42]在网络训练和物体识别领域已经成为了重要主题。在这些新的概念提出之后,目标检测模型训练衍化出了一些新的问题。在本文中,我们将要提出几个我们发现的新问题并且提供一些有效的解决方法。对于模型的再参数化,我们利用梯度传播路径,研究了其在不同网络中的应用策略,并提出了“计划再参数化”这一网络概念。此外,当使用了动态标签分配技术后我们发现,用具有多个输出层的模型训练将产生一个新的问题,即“如何为不同分支的输出分配动态目标?”为了解决这个问题,我们提出了一个新的动态标签分配技术,我们称之为“‘粗到细’导联头标签分配”技术。
【原文】
在这里插入图片描述
【译文】对本文的贡献,可以做如下的总结:(1)我们设计了几个“可训练免费包”,以便进行实时目标检测时可以在不增加推理成本的情况下大大提高检测精度;(2)对于目标检测方法的发展,我们发现了两个新的问题,即再参数化模块如何替换原始模块,以及动态标签分配策略如何处理对于不同输出层的分配问题。此外,我们还提出了解决这些问题所带来困难的方法;(3) 针对实时目标检测模型,我们提出了“趋向”和“复合缩放”方法,可以有效地利用参数进行计算;(4)我们提出的方法可以有效地减少之前最先进的实时目标检测模型约40%的参数和50%的计算量,并且推理速度更快、检测精度更高。
【原文】2. Related work
【译文】2. 相关工作
【原文】2.1. Real-time object detectors
【译文】2.1. 实时目标探测模型
【原文】
在这里插入图片描述
【译文】目前最先进的实时目标检测模型主要基于YOLO[61,62,63]和FCOS[76,77],分别是[3,79,81,21,54,85,23]。要成为最先进的实时目标检测模型通常需要以下特征:(1)更快、更强的网络架构;(2)更有效的特征集成方法[22,97,37,74,59,30,9,45];(3)更精确的检测方法[76,77,69];(4)更稳健的损失函数[96,64,6,56,95,57];(5)更有效的标签分配方法[99,20,82,42];和(6)更有效的训练方法。在本文中,我们不打算探索需要额外数据或大型模型的自我监督学习或知识提取方法。相反,我们将设计新的“可训练免费包”方法,以期达到上述第(4)(5)和(6)条。
【原文】2.2. Model re-parameterization
【译文】2.2 模型的再参数化
【原文】
在这里插入图片描述
【译文】模型的再参数化技术 [71,31,75,19,33,11,4,24,13,12,10,29,14,78]在推理阶段将大量的计算模块合并到了一步。模型的再参数化技术可以被看作一种封装技术,我们可以将其分为两类:即模块级封装和模型级封装。模型级封装再参数化有两种常见的用以获得最终的推理模型的做法:其一是使用不同的训练数据训练出多个模型,然后平均其训练后模型的权重;其二是对不同迭代次数下的模型权重进行加权平均。模块级再参数化是一个比较流行的研究问题。模块级再参数化是近年来比较热门的研究课题。这种方法在训练过程中将一个模块拆分为多个相同或不同的模块分支,并在推理过程中将多个分支模块整合为一个完全等效的模块。然而,并非所有提出的再参数化模块都能完美地应用于不同的体系结构。有鉴于此,我们开发了新的再参数化模块,并为各种架构设计了相关的应用策略。
【原文】2.3. Model scaling
【译文】2.3. 模型缩放
【原文】
在这里插入图片描述
【译文】模型缩放[72,60,74,73,15,16,2,51]是一种放大或缩小已经设计好的模型。使其适合不同计算设备的方法,模型缩放方法通常使用不同的缩放因子,例如分辨率(输入图像的大小)、深度(层数)、宽度(通道数)和阶数(特征金字塔数),以便在网络参数的数量、计算、推理速度和准确度方面取得良好的平衡。网络体系结构搜索(NAS)是常用的模型缩放方法之一。NAS可以从搜索空间自动搜索合适的缩放因子,无需定义太复杂的规则。NAS的缺点是,它需要非常繁琐的计算来完成模型缩放因子的搜索。在[15]中,研究人员分析了缩放因子与参数和运算量之间的关系,试图直接估计一些规则,从而获得模型缩放所需的缩放因子。通过查阅文献,我们发现几乎所有模型缩放方法都独立分析单个缩放因子,甚至复合缩放类别中的方法也独立优化缩放因子。产生这一现象的原因是大多数流行的NAS体系结构处理的扩展因素都不大相关。我们观察到,对于所有基于级联的模型,如DenseNet[32]或VoVNet[39],在缩放这些模型的深度时,都会改变某些层的输入宽度。鉴于所提出的架构是基于级联的,我们必须为该模型设计一种新的复合缩放方法。
【原文】
在这里插入图片描述
【译文】图2:扩展的高效层聚合网络。(我们)提出的“延展型高效层聚合网络”(E-ELAN)并没有改变原有体系结构的梯度传输路径,而是使用组卷积来增加所添加特征的基数,并以打乱再合并基数的方式组合不同组的特征。这种操作方式可以增强不同特征映射所学习的特征,并改进参数和计算的使用。
【原文】3. Architecture
【译文】3. 架构
【原文】3.1. Extended efficient layer aggregation networks
【译文】3.1. 延展型高效层聚合网络
【原文】
在这里插入图片描述
【译文】在大多数关于高效架构设计的资料文献中,主要考虑的指标是参数的数量、计算量和计算密度。马宁宁(音译)等人[55],从内存访问成本的角度出发,还分析了输入/输出通道比例、体系结构分支数和元素操作对网络推理速度的影响。多乐(音译)等人[15]在进行模型缩放时考虑了激活,即更多地考虑卷积层输出张量中的元素数量。图2(b)中的CSPVoVNet[79]的设计是VoVNet[39]的一个变体。除了考虑上述这些指标,为了使不同层的权重能够学习更多不同的特征,CSPVoVNet还分析了梯度路径。这个梯度分析方法可以使得推断过程更快、更准确。图2(c)中的ELAN[1]思考了以下这个设计策略——“如何设计一个高效的网络?”他们得出了一个这样的结论:“借助最短的最长梯度路径,深度网络可以学习和收敛得更有效率。”在本文中,我们将基于ELAN(高效层聚合网络),提出“延展型高效层聚合网络”(E-ELAN),其主要的架构设计如图2(d)所示。
【原文】
在这里插入图片描述
【译文】在大规模的ELAN中,在忽略梯度路径长度和计算块数量堆叠的情况下,整个网络可以达到一个稳定状态。如果无限制地堆叠更多的计算块,则可能会破坏这种稳态,并使参数的利用率降低。(我们)提出的E-ELAN对基数使用扩展、打乱再合并的步骤,在不破坏原有梯度路径的情况下,来实现不断增强网络学习的能力的效果。在体系架构方面,E-ELAN只改变了计算块的体系架构,而过渡层的体系架构完全没有变化。我们的策略是使用组卷积来扩展计算块的通道数和基数。我们将对计算层的所有计算块应用相同的组参数和通道乘数。然后,根据设定的组参数g,将每个计算块计算出的特征映射分解成g组,再将他们连在一起。此时,每组特征映射中的通道数将与原始架构中的通道数目相同。最后,我们添加g组特征映射以合并基数。除了保持原有的ELAN设计架构之外,E-ELAN还可以引导不同的组计算块学习更多类型的特征。
【原文】3.2. Model scaling for concatenation-based models
【译文】3.2. 基于级联模型的缩放
【原文】
在这里插入图片描述
【译文】模型缩放的主要目的是调整模型的某些属性,生成不同比例的模型,以满足不同推理速度的需要。例如,EfficientNet[72]的缩放模型考虑了宽度、深度和分辨率。对于scaled-YOLOv4[79],其缩放模型是调整级数。在[15],多乐(音译)等人执行宽度和深度缩放的时候,(更注重)分析常规卷积和组卷积在参数和计算上的影响,并以此设计了相应的模型缩放方法。
【原文】
在这里插入图片描述
【译文】图3:基于级联模型的缩放。从(a)到(b),我们观察到当对基于级联的模型执行深度缩放时,计算块的输出宽度也会增加。这种现象将导致后续传输层的输入宽度增加。因此,我们建议(c),即在基于级联的模型上执行缩放时,只需要缩放计算块中的深度,而传输层的其余部分则使用相应的宽度缩放即可。
【原文】
在这里插入图片描述
【译文】上述方法主要用于PlainNet或者ResNet等体系架构。当这些架构在执行缩放时,每个层的入度和出度都不会改变,因此我们可以独立分析每个缩放因子对参数量和计算量的影响。当然,如果将这些方法应用于基于级联的体系结构,我们会发现,当对深度进行缩放时,紧随基于级联的计算块之后的转换层的宽度会相应降低或者增加,如图3的(a)(b)所示
【原文】
在这里插入图片描述
【译文】从上述现象可以推断,对于基于级联的模型,我们不能单独分析不同的缩放因子,必须通盘考虑。以缩放深度为例,这样的动作会导致过渡层的输入通道和输出通道之间的比率发生变化,这就会减少对模型的硬件使用需求。因此,我们对这种模型提出了相应的“基于级联模型的缩放方法”。当我们缩放计算块的深度因子时,我们还必须通过计算得出该块的输出通道的变化情况。然后我们可以在过渡层上以相同的变化量执行宽度因子缩放,结果如图3(c)所示。我们提出的“级联缩放法”可以在不改变模型初始设计特性的前提下,做到保持最佳架构。
【原文】4. Trainable bag-of-freebies
【译文】4. 可训练免费包
【原文】4.1. Planned re-parameterized convolution
【译文】4.1. “计划的再参数化卷积”
【原文】
在这里插入图片描述
【译文】尽管RepConv[13]在VGG[68]上展现了优异的性能,但当我们将其直接应用于ResNet[26]和DenseNet[32]等架构时,其精度将显著降低。我们使用梯度流传播路径来分析如何将再参数化卷积与不同的网络相结合。我们还相应地设计了“计划的再参数化卷积”(结构)。
【原文】
在这里插入图片描述
【译文】图4:“计划的再参数化模型”。在所提出的“计划的再参数化模型”中我们发现:对于具有残差块或级联结构的层,其RepConv(因本身就带有直连结构)不应该被连接,它能被不具有直连结构的RepConvN代替。
【原文】
在这里插入图片描述
【译文】实际上,RepConv结合了3×3卷积和1×1卷积,并且使用直连结构连接起来。在分析了RepConv和不同体系结构的组合后的相应性能后,我们发现RepConv中的直连结构破坏了ResNet中的残差块和DenseNet中的级联结构,这些结构原本是为不同特征映射的梯度多样性提供保证的。基于以上这些原因,我们使用不具有直连结构的RepConv(RepConvN)来设计“计划的再参数化卷积”的体系架构。图4显示了我们设计的“计划的再参数化卷积”在PlainNet和ResNet中的运用案例。至于完整的基于残差模型和基于级联模型的“计划的再参数化卷积”实验,我们将在“消融实验”那一段进行介绍。
【原文】
在这里插入图片描述
【译文】图5:粗(标签)代表辅助,细(标签)代表导联头标签分配器。与常规模型(a)相比,我们所提的模型(b)具有辅助头。不同于常规的独立标签分配器(c),我们提出了(d)“导联头指导标签分配器”和(e)“‘粗到细’导联头指导标签分配器”。我们所提出的标签分配器通过导联预测(lead head prediction)和范围审定(the ground truth)进行优化,以求同时获得训练中的导联头(lead head)和辅助头(auxiliary head)的标签。详细的“‘粗到细’导联头标签分配器”和规范的设计细节将在附录中进行详细说明。
【原文】4.2. Coarse for auxiliary and fine for lead loss
【译文】4.2. 粗为辅,细为主
【原文】
在这里插入图片描述
【译文】深度监督[38]是一种经常用于训练深度神经网络的技术,其重点就是在网络的中间层添加辅助头和以指导损失为引导的浅层网络权重。即使对于一般情况下收敛性能良好的网络架构,如ResNet[26]和DenseNet[32],深度监督[70,98,67,47,82,65,86,50]仍然可以显著提高模型在许多任务中的性能。图5(a)和(b)分别显示了目标检测模型中无有使用深度监督的结构。在本文中,我们将负责最终输出的称之为导联头,将负责协助训练的称之为辅助头。
【原文】
在这里插入图片描述
【译文】接下来我们需要讨论以下标签分配的问题。过去,在深度神经网络的训练当中,标签分配通常直接指向范围审定,然后根据给定的规则生成硬标签。然而近年来,如果注意到目标检测(领域)我们(会发现),研究人员经常会利用网络研究预测输出的质量和分布情况,然后结合范围审定的情况去估算和优化方法以生成可靠的软标签[61,8,36,99,91,44,43,90,20,17,42]。举个例子,YOLO[61]使用IoU进行测量的预测范围(bounding box)和范围审定结果作为目标的软标签。在本文中,我们将这种综合考虑网络预测结果和范围审定结果以定义软标签的机制,叫做标签分配。
【原文】
在这里插入图片描述
【译文】无论辅助头和导联头的情况怎样,都需要对目标进行深度监督训练。在开发软标签分配相关技术的过程中,我们意外地发现了一个新的衍生问题,即:“如何将软标签分配给辅助头和导联头?”据我们所知,相关文献迄今为止尚未进行这方面的探讨。目前最流行的方法其结果如图5(c)所示,即将辅助头和导联头分开并利用各自的预测结果范围审定结果来执行标签的分配。本文提出一种新的标签分配方法,它通过导联头来预测辅助头和导联头。换言之,我们使用导联头预测作为指导依据,生成由粗导向的不同层次的标签,这些标签分别用于辅助导联头和辅助头的学习。我们提出的两种深度监督标签分配策略分别如图5(d)和(e)所示。
【原文】
在这里插入图片描述
【译文】“导联头引导标签分配器”主要根据导联头和范围审定的预测结果进行计算,并通过优化过程生成软标签。这组软标签将用作辅助头和导联头的目标训练模型。之所以这样做,是因为导联头具有较强的学习能力。因此,由其生成的软标签应该更能代表源数据和目标数据之间的分布和相关性。此外,我们可以将这种学习视为一种广义的残差学习。通过让较浅层的辅助头直接学习导联头所学信息,导联头将更能专注于学习尚未学过的残差信息。
【原文】
在这里插入图片描述
【译文】“‘粗到细’导联头指导标签分配器”在软标签的分配上也利用到了引导头和范围审定给出的预测结果。当然,在该过程中,我们生成了两组不同的软标签,即粗标签和细标签。其中,细标签与“导联头引导标签分配器”生成的软标签相同,粗标签则是通过放宽正向取样过程的约束,允许更多网格被视为正向目标而生成的。原因是辅助头的学习能力不如引导头的强,为了避免丢失需要学习的信息,在目标检测任务中,我们将重点优化辅助头的召回率。至于导联头的输出,我们可以从高召回率的结果中过滤出高精度的结果作为最终输出。但是我们必须注意,如果粗标签的附加权重接近细标签的附加权重,那么在最终预测时可能会产生不好的先验结果。因此,为了使这些额外的粗标签的影响更小,我们在解码器中设置了限制。上述机制允许在学习过程中动态调整细标签和粗标签的权重,并使细标签的优化上限始终高于粗标签。
【原文】
在这里插入图片描述
【译文】表1:各类主流目标检测模型的比较
【原文】4.3. Other trainable bag-of-freebies
【译文】4.3. 其他的“可训练免费包”
【原文】
在这里插入图片描述
【译文】在这个版块中,我们将列出一些“可训练免费包”。这些免费包是我们训练过程当中的一些例子,尽管这个初始概念并不是由我们提出的。这些免费包的训练细节将在附录中进行详细展示,包括(1)conv-bn-activation拓扑结构中的批量规范化:这个部分主要负责将批量的规范化层连接到卷积层。其目的是在推理阶段将批量规范的均值和方差集成到卷积层的偏差和权值中。(2)含有与加法乘法融合的卷积特征映射的YOLOR[81]网络的隐性知识模块:通过在推理阶段进行预计算,可以将YOLOR中的隐性知识模块简化为向量。这个向量可以和前一个或后一个卷积层的偏差和权值相结合。(3)EMA模型:EMA模型是平均老师模型(mean teacher)中使用的一种技术[75],在我们的系统中,我们使用EMA模型作为最终的推理模型。
【原文】5. Experiments
【译文】5. 实验
【原文】5.1. Experimental setup
【译文】5.1. 实验设备(实验环境)
【原文】
在这里插入图片描述
【译文】我们使用Microsoft COCO数据集进行实验,并验证我们的目标检测方法。我们的所有实验均没有使用预先训练好的模型,也即,所有模型都是从头开始训练的。在开发过程中,我们使用2017版本的训练集进行训练,然后使用2017版本的验证集进行验证和超参数选择。最后,我们展示了(模型在)2017版本的测试集上的目标检测性能,并将其与最先进的目标检测算法进行了比较。训练的详细参数设置见附录。
【原文】
在这里插入图片描述
【译文】我们设计了(适用于)边缘GPU、普通GPU和云GPU的基本模型,分别命名为YOLOv7-tiny、YOLOv7和YOLOv7-W6。同时我们使用基本模型对不同服务的需求进行模型缩放,并获得不同类型的模型。对于YOLOv7,我们在关键部位进行叠加缩放,并使用所提出的“级联缩放法”对整个模型的深度和宽度进行缩放,以此获得YOLOv7-X。对于YOLOv7-W6,我们使用新提出的“级联缩放法”来获得YOLOv7-E6和YOLOv7-D6。此外我们将建议的“延展型高效层聚合网络”(E-ELAN)用于YOLOV7-E6,于是便成为了YOLOv7-E6E。由于YOLOv7-tiny是一种面向边缘GPU的架构,它将使用“leaky ReLU”作为激活函数。对于其他模型,我们使用SiLU作为激活函数。我们将在附录中详细描述每个模型的比例因子。
【原文】
在这里插入图片描述
【译文】表2:最先进的实时目标探测模型的比较
【原文】5.2. Baselines
【译文】5.2. 基准
【原文】
在这里插入图片描述
【译文】我们分别选择先前版本的YOLO[3,79]和最先进的目标探测模型YOLOR[81]作为基准。表1显示了我们提出的YOLOv7模型与那些在相同设置下的基准模型的比较。
【译文】从结果中我们可以看出,如果与YOLOv4相比,YOLOv7参数量减少了75%,计算量减少了36%,AP增加了1.5%。如果与最先进的YOLOR-CSP相比,YOLOv7的参数量减少了43%,计算量减少了15%,AP增加了0.4%。在tiny模型的性能方面,与YOLOv4-tiny-31相比,YOLOv7-tiny的参数量减少了39%,计算量减少了49%,但保持了相同的AP。在云GPU模型上,我们的模型也可以在具有更高AP的情况下,将参数量降低19%,计算量减少33%。
【原文】5.3. Comparison with state-of-the-arts
【译文】5.3. 与(先前)最高科技(模型的)比较
【原文】
在这里插入图片描述
【译文】我们将所提之方法与一些运用于普通GPU和移动GPU之上的先进方法进行了比较,结果如表2所示。从表2中的结果可以看出,我们的方法很好地兼具了最佳的速度精度。如果我们将YOLOv7-tiny-SiLU与YOLOv5-N(r6.1)做对比,我们的方法在AP方面,速度快了127fps,准确度提高了10.7%。此外,YOLOv7在161fps的帧率下有51.4%的AP,而具有相同AP的PPYOLOE-L只有78fps的帧率。在参数使用上,YOLOv7比PPYOLOE-L减少了41%。如果将YOLOv7-X在推理速度为114fps帧率时与YOLOv5-L(r6.1)在推理速度为99fps帧率时进行对比,则可以发现YOLOv7-X的AP可以更高3.9%。如果将YOLOv7-X与规模相似的YOLOv5-X(r6.1)进行比较,那么YOLOv7-X推理速度一项就快了31fps。此外,就参数量和计算量方面而言,与YOLOv5-X(r6.1)进行比较,YOLOv7-X减少了22%的参数量和8%的计算量,而且AP还提高了2.2%。
【原文】
在这里插入图片描述
【译文】如果在输入分辨率为1280×1280的条件下比较YOLOv7和YOLOR,YOLOv7-W6的推理速度比YOLO-P6快8fps,检测精度也提高了1%AP。至于YOLOv7-E6和YOLOv5-X6(r6.1)的比较,前者的AP增量比后者高0.9%,参数量少45%,计算量少63%,推理速度提高了47%。YOLOv7-D6的推理速度接近YOLOR-E6,但AP提高了0.8%。YOLOv7-E6E与YOLOR-D6推理速度接近,但AP提升了0.3%。
【原文】5.4. Ablation study
【译文】5.4. 消融实验
【原文】5.4.1 Proposed compound scaling method
【译文】5.4.1 所提“级联缩放法”
【原文】
在这里插入图片描述
【译文】表3显示了使用不同模型缩放策略进行缩放时获得的结果。其中,我们提出的“级联缩放法”是将计算块的深度放大1.5倍,将过渡块的宽度放大1.25倍。如果将我们的方法与只放大宽度的方法进行比较,我们的方法可以用较少的参数量和计算量将AP提高0.5%,我们的方法只需要将参数个数增加2.9%,计算量增加1.2%,就可以将AP提高0.2%。从表3的结果可以看出,我们提出的级联缩放策略可以更有效地利用参数进行计算。
【原文】
在这里插入图片描述
【译文】表3:在所提缩放法上进行消融研究
【原文】5.4.2 Proposed planned re-parameterized model
【译文】5.4.2 所提“计划的再参数化模型”
【原文】
在这里插入图片描述
【译文】为了验证我们提出的“计划的再参数化模型”的通用性,我们分别在基于级联的模型和基于残差的模型上使用它进行验证。我们选择用于验证的基于级联的模式和基于残差的模型分别是“3层高效层聚合网络”(3-stacked ELAN)和“CSP黑暗网络”(CSPDarknet)。
【原文】
在这里插入图片描述
【译文】在基于级联模型的实验中,我们用RepConv替换了“3层高效层聚合网络”中不同位置的3x3卷积层,详细配置如图6所示。从表4所示的结果中,我们可以发现,在我们提出的“计划的再参数化模型”中,所有的AP值都(比替代前)更高。
【原文】
在这里插入图片描述
【译文】在基于残差模型的实验中,由于原始(结构中)的暗块(dark block)没有符合我们设计策略中的3x3卷积块,我们额外设计了反向暗块(reversed dark block),其结构如图7所示。由于带有暗块和反向暗块的“CSP黑暗网络”具有完全相同的参数量和操作量,所以(该实验)是比较公平的。表5中的实验结果充分证明了所提出的“计划的再参数化模型”对于残差模型同样有效。我们发现RepCSPResNet[85]的设计也符合我们的设计模式。
【原文】
在这里插入图片描述
【译文】图6:“计划的RepConv块3层高效层聚合网络”。蓝色圆圈就是我们采用RepConv替换Conv的位置。
【原文】
在这里插入图片描述
【译文】表4:“计划的RepConcationation模型”的消融实验
【原文】
在这里插入图片描述
【译文】图7:“反向CSP黑暗网络”。我们反转了暗块中的1x1和3x3卷积层的位置以适应我们“计划的再参数化模型”的设计策略。
【原文】
在这里插入图片描述
【译文】表5:“计划的RepRestival模型”的消融实验
【原文】
在这里插入图片描述
【译文】图8:不同方法中辅助头和导联头预测的对象映射。
【原文】5.4.3 Proposed assistant loss for auxiliary head
【译文】5.4.3 所提“辅助头的指导损失”
【原文】
在这里插入图片描述
【译文】在“辅助头的指导损失”实验中,我们比较了导联头和和辅助头的一般独立标签分配,还比较了两种提到的“导联头标签分配”技术。我们在表6中显示了所有比较结果。从表6中列出的结果来看,很明显,任何增加了指导损失的模型都可以显著提高整体性能。此外,我们提出的引导标签分配策略在AP,AP50和AP75中的性能优于一半独立标签分配策略。至于说我们提到的“‘粗到细’导联头标签分配”策略,在所有情况下都能得到最好的结果。在图8中,我们显示了用不同方法在辅助头和导联头上预测的对象映射。从图8中我们看出,如果辅助头学习了导联头的引导的软标签,确实有助于导联头从连续目标中挖掘出残差信息。

【原文】
在这里插入图片描述
【译文】表6:所提“辅助头”的消融实验。
【原文】
在这里插入图片描述
【译文】在表7中,我们进一步分析了所提“‘粗到细’导联头标签分配”方法对辅助头解码器的影响。也就是说,我们比较了有/没有引入上限约束的结果。从表中的数据来看,通过远离对象中心来约束对象上限的这一方法可以获得更好的性能。
【原文】
在这里插入图片描述
【译文】约束了辅助头后的消融实验
【原文】
在这里插入图片描述
【译文】由于提出的YOLOv7使用多个金字塔共同预测目标检测结果,我们可以直接将辅助头连接到中间层的金字塔进行训练。这种类型的训练可以弥补由于上述原因在下一级金字塔预测中可能丢失的信息,我们在提出的“延展型高效层聚合网络”(E-ELAN)架构中设计了部分辅助头。我们的方法是在合并基数之前,在一组特征映射之后连接辅助头,这种连接会使新生成的一组特征映射的权重不能通过辅助损失直接更新。我们的设计允许每个导联头仍然可以从不同大小的对象中获取信息。表8显示了使用两种不同方法获得的结果,即“‘粗到细’导联头标签分配”和“局部‘粗到细’导联头标签分配”。显然,“局部‘粗到细’导联头标签分配”法具有较好的辅助效果。
【原文】
在这里插入图片描述
【译文】“部分辅助头”的消融实验
【原文】6. Conclusions
【译文】6. 结论
【原文】
在这里插入图片描述
【译文】本文提出了一种新的实时目标检测模型架构和与之配套的模型缩放方法。此外,我们发现在目标检测方法的发展过程产生了新研究话题。在研究过程中,我们发现了“再参数化模型”的替换问题和动态标签分配的问题。为了解决这些问题,为了提高目标检测的准确性,我们提出了“可训练免费包”方法。基于此,我们开发了YOLOv7系列的目标检测系统,该系统获得了最优秀的结果。
【原文】7. Acknowledgements
【译文】7. 致谢
【原文】
在这里插入图片描述
【译文】作者希望感谢“(台伪)国家高速网络与计算中心(NCHC)”所提供的计算和存储资源。
【原文】
在这里插入图片描述
【译文】表9:更多比较(批次(batch)=1,无TRT,无额外目标检测训练数据)
【原文】8. More comparison
【译文】8. 更多比较
【原文】
在这里插入图片描述
【译文】YOLOv7在速度和精度方面,已经超过了所有已知的范围在5FPS到160FPS的目标检测算法,在30FPS或者更高的GPU V100中,更是具有超越其他已知的目标检测算法的最高检测精度56.8%AP。TOLOv7-E6版本的目标检测模型(56 FPS V100,55.9% AP)比基于Transform的检测模型SWIN-L Cascade-Mask R-CNN(9.2 FPS A100,53.9% AP)的速度和精度分别高出509%和2%,比基于卷积的检测模型ConvNeXt-XL Cascade-Mask R-CNN (8.6 FPS A100, 55.2% AP) 的速度和精度高出551%和0.7%。YOLOv7在速度和精度上优于YOLOR、YOLOX、Scaled-YOLOv4、YOLOv5、DETR、Deformable DETR , DINO-5scale-R50, ViT-Adapter-B和许多其他目标检测模型。此外,我们仅仅使用MS COCO数据集进行YOLOv7的训练,并没有使用任何其他数据集或预训练的权重。
【原文】
在这里插入图片描述
【译文】图9:与其他的目标检测模型的对比
【译文】图10:与其他实时目标检测模型的对比
【原文】在这里插入图片描述
【译文】表10:不同设置条件下的比较
【原文】
在这里插入图片描述
【译文】 YOLOv7-E6E(56.8%AP)实时模型的最大精度比目前应用于COCO数据集上最精确的美团/YOLOv7-s(43.1%AP)高出了13.6AP%。在COCO数据集和批次(batch)=32的V100 GPU上,我们的YOLOv7-tiny(35.2%AP,0.4ms)模型比美团美团/YOLOv6-n(35.0%AP,0.5ms)的速度快了25%,精度高了0.2%AP。
【原文】
在这里插入图片描述
【译文】图11:与其他实时目标检测模型的比较
【原文】References:……
【译文】参考文献:……