Yolov7论文详解

这篇具有很好参考价值的文章主要介绍了Yolov7论文详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

论文地址:https://arxiv.org/pdf/2207.02696.pdfhttps://arxiv.org/pdf/2207.02696.pdf

项目地址: WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors (github.com)https://github.com/WongKinYiu/yolov7

目录

摘要

1、介绍

2、相关工作 

2.1、 实时目标探测器

2.2、 模型重参数化

2.3、 模型缩放

3、 结构

3.1、扩展的高效层聚合网络

3.2、基于级联模型的模型缩放

4、可训练的bag-of-freebies

4.1、计划重参数卷积

4.2、粗为辅助,细为导引损失

4.3、其他可训练的bag-of-freebies

5、 实验

5.1、 实验设置

5.2、基础

5.3、与最新技术的比较

5.4、消融研究

5.4.1、提出的复合标度法

5.4.2、提出的计划再参数化模型

5.4.3、辅助头的拟议辅助损失

6、结论

7、致谢

8、更多比较


摘要

        Yolov7在速度和精度上都超过了所有已知的物体探测器,在5 fps到160 fps的范围内,并在所有已知的30 fps或更高的GPU V100实时物体探测器中拥有最高的精度56.8%AP。 YOLOV7-E6目标检测器(56 fps V100,55.9%AP)在速度和精度上优于基于变压器的检测器Swinl级联掩码R-CNN(9.2 fps A100,53.9%AP)509%和2%;基于卷积的检测器Convnext-XL级联掩码R-CNN(8.6 fps A100,55.2%AP)551%和0.7%AP;YOLOV7在速度和精度上优于:YOLOR、YOLOX、Scaled-YOLOV4、YOLOV5、DETR、DETR、DINO-5Scale-R50、VIT-Adapter-B和许多其他目标检测器。 此外,我们只在MS COCO数据集上从头开始训练Yolov7,而不使用任何其他数据集或预训练的权值。

Yolov7论文详解
图1:与其他实时目标检测器相比,我们提出的方法达到了最先进的性能。 

1、介绍

        实时目标检测是计算机视觉中一个非常重要的研究课题,因为它往往是计算机视觉系统中必不可少的组成部分。 例如多目标跟踪、自动驾驶、机器人、医学图像分析等,执行实时目标检测的计算设备通常是一些移动CPU或GPU,以及各大厂商开发的各种神经处理单元(NPU)。 例如,Apple Neural Engine(苹果)、Neural Compute Stick(英特尔)、Jetson AI Edge Devices(英伟达)、Edge TPU(谷歌)、Neural Processing Engine(高通)、AI Processing Unit(联发科)和AI SoC(Kneron)都是NPU。 上面提到的一些边缘设备侧重于加快不同的操作,如香草卷积、深度卷积或MLP操作。 本文提出的实时目标检测器主要是希望它能够同时支持移动GPU和从边缘到云端的GPU设备。

        近年来,针对不同边缘设备的实时目标检测器仍在不断发展。 例如,McUnet和Nanodet的发展集中在生产低功耗单片机和提高边缘CPU的推理速度上。 至于Yolox和Yolor等方法,则侧重于提高各种GPU的推理速度。 近年来,实时目标检测器的发展主要集中在高效体系结构的设计上。 至于可在CPU上使用的实时物体检测器,其设计大多基于MobileNet、ShuffleNet或GhostNet。 另一种主流的实时目标检测器是针对GPU开发的,它们大多使用ResNet、DarkNet或DLA,然后使用CSPNet策略来优化体系结构。 本文提出的方法与当前主流实时目标检测器的发展方向不同。 除了体系结构优化,我们提出的方法将侧重于训练过程的优化。 我们的重点将是一些优化模块和优化方法,这些优化模块和优化方法可以在不增加推理成本的情况下,加强训练成本,提高目标检测的准确性。 我们将所提出的模块和优化方法称为可训练的免费袋。

        近年来,模型重新参数化和动态标记分配已成为网络训练和目标检测中的重要课题。 主要是在上述新概念提出后,目标检测器的训练出现了许多新的问题。 在本文中,我们将介绍一些我们发现的新问题,并设计有效的方法来解决这些问题。 在模型重参数化方面,利用梯度传播路径的概念,分析了适用于不同网络层的模型重参数化策略,提出了有计划的模型重参数化。 另外,当我们发现使用动态标记赋值技术时,多输出层模型的训练会产生新的问题。 即:如何为不同分支的输出分配动态目标?针对这个问题,我们提出了一种新的标签分配方法,称为粗到细引导标签分配。

        本文的主要贡献如下:

  1. 设计了几种可训练的免费包检测方法,使得实时目标检测在不增加推理代价的前提下,大大提高了检测精度;
  2. 对于对象检测方法的发展,我们发现了两个新的问题,即重新参数化模块如何代替原来的模块,以及动态标记分配策略如何处理对不同输出层的分配。 此外,我们还提出了解决这些问题所产生的困难的方法;
  3. 提出了“扩展”和“复合缩放”两种实时目标检测方法,能够有效地利用参数和计算量;
  4. 该方法能有效地减少现有实时目标检测器40%左右的参数和50%的计算量,具有更快的推理速度和更高的检测精度。

2、相关工作 

2.1、 实时目标探测器

        目前最先进的实时目标检测器主要基于YOLO和FCOS。能够成为最先进的实时目标检测器通常需要以下特征:

  1. 更快、更强的网络架构;
  2. 一种更有效的特征集成方法[22,97,37,74,59,30,9,45];
  3. 更精确的检测方法[76,77,69];
  4. 更为稳健的损失函数[96,64,6,56,95,57];
  5. 一种更有效的标签分配方法[99,20,17,82,42];
  6. 一种更有效的训练方法。  

        在本文中,我们不打算探索需要额外数据或大型模型的自监督学习或知识蒸馏方法。 取而代之的是,我们将设计新的可训练的免费赠品袋方法,以解决从上面提到的(4)、(5)和(6)相关的最先进的方法中衍生出来的问题。

2.2、 模型重参数化

        模型再参数化技术在推理阶段将多个计算模块合并为一个。 模型再参数化技术可以看作是一种集成技术,可以分为模块级集成模型级集成两大类。 模型级重新参数化以获得最终推断模型有两种常见的做法。 一种是用不同的训练数据训练多个相同的模型,然后对多个训练模型的权重进行平均。 二是对不同迭代次数的模型权重进行加权平均。 ModuleVel再参数化是近年来比较热门的研究课题。 这类方法在训练时将一个模块分解成多个相同或不同的模块分支,在推理时将多个分支模块集成成一个完全等价的模块。 然而,并不是所有提出的再参数化模块都能完美地应用于不同的体系结构。 考虑到这一点,我们开发了新的再参数化模块,并针对各种体系结构设计了相关的应用策略。  

2.3、 模型缩放

        模型缩放是一种向上或向下缩放已经设计的模型并使其适合不同计算设备的方法。 模型缩放方法通常使用不同的缩放因子,如分辨率(输入图像的大小)、深度(层数)、宽度(通道数)和阶段(特征金字塔数),以实现网络参数量、计算量、推理速度和精度的良好权衡。 网络体系结构搜索(NAS)是常用的模型缩放方法之一。 NAS可以自动地从搜索空间中搜索合适的缩放因子,而无需定义太复杂的规则。 NAS的缺点是需要非常昂贵的计算来完成模型缩放因子的搜索。 在[15]中,研究者分析了缩放因子与参数和运算量之间的关系,试图直接估计某些规律,从而得到模型缩放所需的缩放因子。 查阅文献,我们发现几乎所有的模型标度方法都是独立分析单个标度因子的,甚至在复合标度范畴中的方法也是独立优化标度因子的。 这是因为大多数流行的NAS体系结构处理不太相关的伸缩因素。 我们观察到所有基于级联的模型,如DenseNet或VovNet,当这些模型的深度被缩放时,会改变某些层的输入宽度。 由于所提出的体系结构是基于级联的,我们必须为该模型设计一种新的复合缩放方法。  

3、 结构

3.1、扩展的高效层聚合网络

        在大多数关于设计高效体系结构的文献中,主要考虑的不只是参数数、计算量和计算密度。 从存储器访问开销的特点出发,Ma等人。 [55]还分析了输入/输出通道比、体系结构分支数、按元素操作等对网络推断速度的影响。 多尔等人。 [15]在进行模型缩放时还考虑了激活,即更多地考虑卷积层输出张量中的元素数。 图2(b)中的cspvovnet的设计是vovnet的变体。 CSPVOVNET的体系结构除了考虑上述基本的设计问题外,还分析了梯度路径,以使不同层的权值能够学习更多不同的特征。上面描述的梯度分析方法使推论更快更准确。 图2(c)中的Elan[1]考虑了以下设计策略--“如何设计一个高效的网络?”他们得出了一个结论:通过控制最短最长梯度路径,更深的网络可以有效地学习和收敛。 在本文中,我们提出了一种基于ELAN的扩展ELAN(E-ELAN),其主要结构如图2(d)所示。

Yolov7论文详解
图2:扩展的高效层聚合网络。 所提出的扩展ELAN(E-ELAN)完全不改变原有体系结构的梯度传输路径,而是使用群卷积来增加所添加特征的基数,并以洗牌合并基数的方式组合不同群组的特征。 这种操作方式可以增强不同特征图学习到的特征,改善参数和计算的使用。 

        无论在大规模ELAN中梯度路径长度和计算块的堆叠数,都达到了稳定状态。 如果无限制地堆叠更多的计算块,这种稳定状态可能会被破坏,参数利用率会降低。 提出的E-ELAN采用扩展、洗牌、合并基数等方法,在不破坏原有梯度路径的前提下,不断增强网络的学习能力。 在体系结构方面,E-ELAN只改变了计算块上的体系结构,而过渡层的体系结构完全不变。 我们的策略是使用群卷积来扩展计算块的信道和基数。 我们将对一个计算层的所有计算块应用相同的组参数和信道乘法器。 然后,将每个计算块计算出的特征映射按照设定的组参数G洗牌成G组,再将它们串联在一起。 此时,每组特征图中的通道数将与原架构中的通道数相同。 最后,我们添加G组特征映射来执行合并基数。 除了保持原有的ELAN设计架构,E-ELAN还可以指导不同的计算块组学习更多样的特征。

3.2、基于级联模型的模型缩放

        模型缩放的主要目的是调整模型的某些属性,生成不同尺度的模型,以满足不同推理速度的需要。 例如,效率网[72]的缩放模型考虑了宽度、深度和分辨率。 至于Scaled-Yolov4[79],其缩放模型是调整级数。 在[15]中,Doll'ar等人。 分析了Vanilla卷积和Group卷积在进行宽度和深度缩放时对参数量和计算量的影响,并据此设计了相应的模型缩放方法。 以上方法主要用于PlainNet或ResNet等架构中。 当这些体系结构执行向上或向下缩放时,各层的进度和出度不会发生变化,因此可以独立分析各缩放因子对参数量和计算量的影响。 然而,如果将这些方法应用到基于级联的体系结构中,我们会发现,当在深度上进行向上或向下伸缩时,紧接在基于级联的计算块之后的转换层的in-degree会减小或增加,如图3(a)和(b)所示。   

Yolov7论文详解
图3:基于级联的模型的模型缩放。 从(a)到(b),我们观察到当对基于级联的模型执行深度缩放时,计算块的输出宽度也增加。 这种现象会导致后续传输层的输入宽度增加。 因此,我们提出了(c),即对基于级联的模型进行模型缩放时,只需缩放计算块中的深度,传输层的剩余部分进行相应的宽度缩放。 

        从以上现象可以推断,对于一个基于级联的模型,我们不能单独分析不同的缩放因素,而必须将其结合起来考虑。 以扩展深度为例,这样的动作会引起过渡层输入通道和输出通道之间的比值变化,这可能会导致模型的硬件使用减少。 因此,我们必须针对一个基于级联的模型提出相应的复合模型缩放方法。 当我们缩放一个计算块的深度因子时,我们还必须计算该块输出通道的变化。 然后,我们将在过渡层上执行宽度因子缩放,以相同的变化量,结果如图3(c)所示。 我们提出的复合缩放方法可以保持模型在初始设计时的性质,并保持最优结构。

4、可训练的bag-of-freebies

4.1、计划重参数卷积

        虽然Repconv在VGG上取得了优异的性能,但当我们直接将其应用于Resnet和DenseNet等架构时,其精度会显著降低。 利用梯度流传播路径分析了再参数化卷积如何与不同的网络相结合。 我们还相应地设计了有计划的再参数化卷积。

        RepConv实际上在一个卷积层中结合了3×3卷积、1×1卷积和标识连接。 通过对RepConv与不同体系结构的组合和性能分析,发现RepConv中的身份连接破坏了ResNet中的残差和DenseNet中的级联,为不同的特征映射提供了更多的梯度多样性。 基于上述原因,我们使用无标识连接的repconv(repconvn)来设计计划重参数化卷积的体系结构。 在我们的思维中,当一个带有残差或级联的卷积层被重新参数化的卷积替换时,应该没有恒等式连接。 图4显示了在PlainNet和ResNet中使用的我们设计的“计划的重新参数化卷积”的示例。 至于基于残差模型和基于级联模型的完整计划重参数卷积实验,将在消融研究部分提出。

Yolov7论文详解
图4:计划的重新参数化模型。在我们提出的规划的重参数化模型中,我们发现一个有残留连接或连接连接的层,其RepConv应该没有身份连接。在这些情况下,可以用不包含标识连接的RepConvN替换它。

4.2、粗为辅助,细为导引损失

        深度监督是训练深度网络时经常使用的一种技术。 其主要思想是在网络的中间层增加额外的辅助头,以辅助损失为导向的浅层网络权重。 即使对于ResNet和DenseNet等通常收敛良好的架构,深度监管仍然可以显著提高模型在许多任务上的性能。 图5(a)和(b)分别显示了“没有”和“有”深度监视的对象检测器体系结构。 在本文中,我们把负责最终输出的头部称为导引头,用来辅助训练的头部称为辅助头。  

Yolov7论文详解
图5:粗为辅助,细为铅头标签分配器。 与正常模型(A)相比,(B)中的图式具有辅助中心。 与通常的独立标号分配器(C)不同,我们提出了(d)引导标号分配器和(e)粗到细引导标号分配器。 该标签分配器通过引导头预测和地面真实度对标签分配器进行优化,同时得到训练引导头和辅助头的标签。 详细的从粗到细的实现方法和约束设计细节将在Apendix中阐述。 

        接下来我们要讨论标签分配的问题。 以往在深度网络的训练中,标签赋值通常直接参考地面真值,按照给定的规则生成硬标签。 但近年来,如果以物体检测为例,研究人员往往利用网络输出预测的质量和分布,然后与地面真相一起考虑使用一些计算和优化方法,生成一个可靠的软标签。 例如,Yolo使用包围盒回归预测的IOU和地面真值作为客观性的软标签。 本文将网络预测结果与地面真实值相结合,并赋予软标签的机制称为“标签赋值器”。

        无论辅助头或领导头的情况如何,深度监督都需要对目标目标进行训练。 在软标签分配器相关技术的发展过程中,我们偶然发现了一个新的衍生问题,即“如何将软标签分配给辅助头和引导头”,据我们所知,相关文献至今还没有对此问题进行过探讨。 目前最流行的方法结果如图5(c)所示,是将辅助头和引导头分开,然后利用各自的预测结果和地面真相执行标签赋值。 本文所提出的方法是一种新的标签分配方法,它通过引导头预测来指导辅助头和引导头。 也就是说,我们以领先头预测为指导,生成由粗到细的分层标签,分别用于辅助头和领先头学习。 两个被提出的深度监督标签分配策略分别如图5(d)和(e)所示。

        导引头标签分配器主要是根据导引头的预测结果和地面真实情况进行计算,并通过优化过程生成软标签。 这套软标签将同时作为辅助头和引导头的目标训练模型。 之所以这样做,是因为Lead Head具有相对较强的学习能力,因此由其生成的软标签应该更能代表源数据与目标之间的分布和相关性。 此外,我们可以把这种学习看作是一种广义残差学习。 通过让较浅的辅助头直接学习引导头已经学习的信息,引导头将更能够专注于学习尚未学习的剩余信息。 

        由粗到细导联标签分配器还利用导引联预测结果和地面真实值生成软标签。 然而,在该过程中,我们生成了两组不同的软标签,即粗标签和细标签,细标签与引导标签分配器生成的软标签相同,粗标签是通过放松正样本分配过程的约束,允许更多的网格作为正目标来生成的。 究其原因,辅助头的学习能力不如引导头强,而为了避免丢失需要学习的信息,我们将重点优化辅助头在物体检测任务中的回忆。 对于引导头的输出,我们可以从高查全率的结果中过滤出高查准率的结果作为最终的输出。 但必须注意的是,如果粗标签的附加权重与细标签的附加权重接近,在最终预测时可能会产生较差的先验。 因此,为了使这些额外的粗正网格的影响更小,我们在解码器中设置限制,使额外的粗正网格不能完美地产生软标记。 该机制允许在学习过程中动态调整细标签和粗标签的重要性,并使细标签的可优化上界始终高于粗标签。

4.3、其他可训练的bag-of-freebies

        在这一节中,我们将列出一些可训练的bag-of-freebies。 这些免费赠品是我们在训练中使用的一些技巧,但最初的概念不是我们提出的。 附录中详细阐述了这些免费服务的训练细节,包括:

  1. conv-bn-activation拓扑中的批归一化:这部分主要是将批归一化层直接连接到卷积层。 这样做的目的是在推理阶段将批归一化的均值和方差集成到卷积层的偏差和权重中。
  2. Yolor中的隐式知识与卷积特征映射的加法和乘法相结合:在推理阶段通过预先计算,可以将Yolor中的隐式知识简化为一个向量。 该向量可以与前一个或后一个卷积层的偏置和权重相结合。
  3. ema模型:ema是mean教师中使用的一种技术,在我们的系统中,我们纯粹使用ema模型作为最终的推理模型。

5、 实验

5.1、 实验设置

        利用Microsoft COCO数据集进行实验,验证了本文提出的目标检测方法。 我们所有的实验都没有使用预先训练的模型。 也就是说,所有的模型都是从零开始训练的。 在开发过程中,我们使用Train 2017集进行训练,然后使用Val 2017集进行验证和选择超参数。 最后,我们在Test 2017集上展示了目标检测的性能,并与目前最先进的目标检测算法进行了比较。 详细的训练参数设置见附录。

        我们设计了边缘GPU、普通GPU和云GPU的基本模型,分别称为Yolov7Tiny、Yolov7和Yolov7-W6。 同时,针对不同的服务需求,采用BASIC模型进行模型缩放,得到不同类型的模型。 对于YOLOV7,我们在Neck上进行堆栈缩放,并使用提出的复合缩放方法对整个模型的深度和宽度进行缩放,从而得到YOLOV7-x。 对于YOLOV7-W6,我们用新提出的复合标度方法得到了YOLOV7-E6和YOLOV7-D6。 另外,我们将所提出的EELAN用于YOLOV7-E6,从而完成了YOLOV7E6E。 由于Yolov7-Tiny是一个面向边缘GPU的架构,它将使用Leaky Relu作为激活函数。 对于其他模型,我们使用SILU作为激活函数。 我们将在附录中详细描述每个模型的缩放因子。

5.2、基础

        我们选择早期版本的YOLO和Stateof-the-Art对象检测器YOLOR作为基线。 表1显示了我们提出的Yolov7模型和那些用相同设置训练的基线的比较。

Yolov7论文详解
表1:基线物体探测器的比较。 

         结果表明,与Yolov4相比,Yolov7的参数减少了75%,计算量减少了36%,计算效率提高了1.5%。 与现有的Yolor-CSP相比,Yolov7的参数减少了43%,计算量减少了15%,AP提高了0.4%。 在Tiny模型的性能方面,与Yolov4-Tiny-31相比,Yolov7Tiny模型的参数数减少了39%,计算量减少了49%,但AP保持不变。 在云GPU模型上,我们的模型在减少19%的参数数和33%的计算量的同时,仍然可以有更高的AP。

5.3、与最新技术的比较

        我们将所提出的方法与现有的通用GPU和移动GPU的目标检测器进行了比较,结果如表2所示。 从表2中的结果我们知道,所提出的方法具有最佳的速度-精度综合权衡。 如果我们将Yolov7-Tiny-Silu与Yolov5-N(R6.1)相比,我们的方法在AP上的速度快127 fps,准确度高10.7%。 此外,Yolov7在161 fps的帧率下拥有51.4%的AP,而同样AP的PPYoloe-L只有78 fps的帧率。 在参数使用方面,YOLOV7比PPYOLOE-L少41%。 如果我们将114 fps推理速度的Yolov7-X与99 fps推理速度的Yolov5-L(R6.1)相比,Yolov7-X可以提高3.9%的AP。 如果将Yolov7x与相似尺度的Yolov5-x(R6.1)进行比较,Yolov7-x的推断速度要快31 fps。 此外,在参数和计算量方面,Yolov7-x比Yolov5-x(R6.1)减少了22%的参数和8%的计算量,但AP提高了2.2%。  

Yolov7论文详解
表2:最先进的实时物体检测器的比较。 

        如果我们使用1280的输入分辨率来比较Yolov7和Yolor,Yolov7-W6的推断速度比Yolor-P6快8 fps,检测率也提高了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、消融研究

5.4.1、提出的复合标度法

        表3显示了使用不同的模型缩放策略进行缩放时获得的结果。 其中,我们提出的复合缩放方法是将计算块深度缩放1.5倍,过渡块宽度缩放1.25倍。 与仅增大宽度的方法相比,该方法在参数和计算量较少的情况下,可使AP提高0.5%。 如果与只增加深度的方法相比,我们的方法只需要增加2.9%的参数数和1.2%的计算量,就可以使AP提高0.2%。 从表3的结果可以看出,我们提出的复合缩放策略可以更有效地利用参数和计算。

Yolov7论文详解
表3:对拟议模型缩放的消融研究。 

5.4.2、提出的计划再参数化模型

        为了验证我们提出的计划重参数化模型的通用性,我们分别将其用于基于级联模型和基于残差模型的验证。 我们选择的基于级联的模型和基于残差的模型分别是3层的ELAN和CSPDarkNet。

        在基于级联模型的实验中,我们用REPCONV替换了3层叠ELAN中不同位置的3×3卷积层,详细配置如图6所示。 从表4所示的结果中,我们看到所有较高的AP值都出现在我们提出的计划重新参数化模型上。

Yolov7论文详解
图6:规划的RepConv3堆叠的elan。 蓝色圆圈是我们用repconv代替conv的位置。 
Yolov7论文详解
表4:计划再串联模型的消融研究。 

         在基于残差模型的实验中,由于原来的暗块没有符合我们设计策略的3×3反向卷积块,我们额外设计了一个反向暗块用于实验,其结构如图7所示。 由于带有暗块和反向暗块的CSPDarkNet具有完全相同的参数和操作量,因此比较是公平的。 表5所示的实验结果充分证实了所提出的计划重参数化模型对基于残差的模型同样有效。 我们发现RepcspresNet的设计也符合我们的设计模式。

Yolov7论文详解
图7:反转的CSPDarkNet。 我们颠倒了暗块中1×1和3×3卷积层的位置,以适应我们计划的重新参数化模型设计策略。 
Yolov7论文详解
表5:有计划的represdual模型的消融研究。 

5.4.3、辅助头的拟议辅助损失

        在辅助头的辅助损失实验中,我们比较了一般的独立标号分配方法和辅助头方法,以及两种引导标号分配方法。 我们在表6中显示了所有的比较结果。 从表6中列出的结果来看,很明显,任何增加助手损失的模型都可以显著提高整体性能。 此外,在AP、AP50和AP75中,我们提出的引导标签分配策略比一般的独立标签分配策略具有更好的性能。 对于我们提出的粗为辅助和细为铅标记分配策略,它在所有情况下都取得了最好的结果。 在图8中,我们展示了在辅助头和引导头用不同方法预测的客观图。 从图8中我们发现,如果辅助头学习导联引导的软标记,它确实有助于导联头从一致目标中提取剩余信息。

Yolov7论文详解
表6:拟议辅助头的消融研究。
Yolov7论文详解
图8:辅助头和引导头用不同方法预测的客观度图。

        在表7中,我们进一步分析了所提出的从粗到细导联引导标签分配方法对辅助磁头解码器的影响。 即我们比较了有/没有引入上限约束的结果。 从表中的数字来看,用离物体中心的距离来约束物体的上界的方法可以取得更好的性能。  

Yolov7论文详解
表7:约束辅助头的消融研究。 

        由于提出的Yolov7使用多个金字塔来联合预测目标检测结果,我们可以直接将辅助头连接到中间层的金字塔进行训练。 这种类型的训练可以弥补下一级金字塔预测中可能丢失的信息。 基于以上原因,我们在提出的E-ELAN架构中设计了部分辅助头。 我们的方法是在合并基数之前,在其中一组特征映射后连接辅助头,这种连接可以使新生成的特征映射集的权重不因辅助头的丢失而直接更新。 我们的设计允许每个铅头金字塔仍然从不同大小的物体中获取信息。 表8显示了使用两种不同方法获得的结果,即粗到细铅引导法和部分粗到细铅引导法。 显然,部分粗到细导铅法具有较好的辅助效果。

Yolov7论文详解
表8:部分辅助头的消融研究。 

6、结论

        本文提出了一种新的实时对象检测器体系结构和相应的模型缩放方法。 此外,我们发现目标检测方法的发展过程产生了新的研究课题。 在研究过程中,我们发现了重参数化模块的替换问题和动态标记赋值的分配问题。 为了解决这一问题,我们提出了一种可训练的免费包方法来提高目标检测的准确性。 在此基础上,我们开发了YOLOV7系列目标检测系统,取得了最先进的结果。

7、致谢

        作者希望感谢国家高性能计算中心(NCHC)提供的计算和存储资源。

8、更多比较

        Yolov7在5 fps到160 fps范围内的速度和精度都超过了所有已知的物体检测器,在GPU V100上的30 fps或更高的所有已知实时物体检测器中,它具有最高的精度56.8%AP Test-Dev/56.8%AP Min-Val。 YOLOV7-E6目标检测器(56 fps V100,55.9%AP)在速度和精度上优于基于转换的检测器SWIN-L级联掩模R-CNN(9.2 fps A100,53.9%AP)509%和2%;基于卷积的检测器Convnext-XL级联掩模R-CNN(8.6 fps A100,55.2%AP)551%和0.7%AP;YOLOV7在速度和精度上优于:YOLOR、YOLOX、Scaled-YOLOV4、YOLOV5、DETR、DETR、DINO-5Scale-R50、VIT-Adapter-B和许多其他目标检测器。 此外,我们只在MS Coco数据集上从头开始训练Yolov7,而不使用任何其他数据集或预先训练的权值。

        在COCO数据集上,Yolov7-E6E实时模型的最大精度(56.8%AP)比目前最精确的Meituan/Yolov6-S模型(43.1%AP)高出+13.7%AP。 在COCO DataSet和Batch=32的V100 GPU上,我们的Yolov7-Tini(35.2%AP,0.4ms)模型比Meituan/Yolov6-n(35.0%AP,0.5ms)快+25%,高+0.2%AP。  文章来源地址https://www.toymoban.com/news/detail-434684.html

Yolov7论文详解
表9:更多的比较(BATCH=1,no-TRT,没有额外的对象检测训练数据)
Yolov7论文详解
图9:与其他对象检测器的比较。 
Yolov7论文详解
图10:与其他实时对象检测器的比较。
Yolov7论文详解
表10:不同设置的比较。
Yolov7论文详解
图11:与其他实时对象检测器的比较。 

到了这里,关于Yolov7论文详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)

    终于读到传说中的YOLOv7了~≖‿≖✧ 这篇是在美团的v6出来不到一个月就高调登场,作者还是我们熟悉的AB大神(对,就是v4那个),读起来又是“熟悉”的感觉(贯穿了我的整个五一假期(╯-_-)╯╧╧)。 其实关于YOLOv7的网络结构还有很多细节值得深入研究,以及代码

    2024年02月02日
    浏览(75)
  • 剑指YOLOv7改进最新MPDIoU损失函数(23年7月首发论文):论文实测YOLOv7模型涨点,超越现有多种G/D/C/EIoU,高效准确的边界框回归的损失

    💡 本篇内容 :剑指YOLOv7改进最新MPDIoU损失函数(23年7月首发论文):论文实测YOLOv7模型涨点,超越现有多种G/D/C/EIoU,高效准确的边界框回归的损失 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv7 按步骤操作运行改进后的代码即可 💡:重点:该 专栏 《剑指YOLOv7原创改进》只

    2024年02月15日
    浏览(49)
  • 目标检测论文解读复现【NO.21】基于改进YOLOv7的小目标检测

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创

    2023年04月09日
    浏览(49)
  • yolov7.yaml文件详解

    (1)nc代表目标检测所检测的种类 (2)depth_multiple:控制通道的深度的系数,表示channel的缩放系数,就是将配置里面的backbone和head部分有关通道的设置,全部乘以该系数即可; width_multiple:控制网络宽度的系数; 在此解释一下网络深度与网络宽度 网络深度 实际在构建网络

    2024年01月18日
    浏览(46)
  • YOLOv7 Backbone| 原文源码详解

    YOLOv7 Backbone结构详解 在之前的文章中,我们以YOLOv5为对象,详细解剖了一只麻雀的内部构造,包括anchor机制、backbone的结构、neck的结构和head的结构。在本篇文章中,我们将以YOLOv7v0.1版本的代码为目标,结合作者团队的YOLOv7原文,详细介绍一下其骨架网络的整体架构及各部分

    2024年03月24日
    浏览(42)
  • 参数详解:yolov7模型 训练部分(train.py)

    GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors 本人认为yolov7有三个重要的配置文件 第一个是cfg→training下面的yolov7配置文件具体见本人写的博客 yolov7.yaml文件详解_把爱留给SCI的博客-CSDN博客 第二个是data文件下的

    2024年02月04日
    浏览(45)
  • YOLOv7(目标检测)入门教程详解---C++部署

    目录 一.前言 二.源码下载 三.环境安装  opencv安装 四.ONNX模型导出 五.总结      我们在之前的yolov7入门教程中讲到了如何进行环境的安装和python终端运行:        YOLOv7(目标检测)入门教程详解---环境安装        YOLOv7(目标检测)入门教程详解---检测,推理,训练    

    2024年02月04日
    浏览(47)
  • 深入浅出 Yolo 系列之 Yolov7 基础网络结构详解

    从 2015 年的 YOLOV1 ,2016 年 YOLOV2 , 2018 年的 YOLOV3 ,到 2020 年的 YOLOV4 、 YOLOV5 , 以及最近出现的 YOLOV76 和 YOLOV7 可以说 YOLO 系列见证了深度学习时代目标检测的演化。对于 YOLO 的基础知识以及 YOLOV1 到 YOLOV5 可以去看大白的 YOLO 系列,本文主要对 YOLOV7 的网络结构进行一个梳理

    2024年02月04日
    浏览(48)
  • 三万字硬核详解:yolov1、yolov2、yolov3、yolov4、yolov5、yolov7

    mAP是综合衡量Precision与Recall的一种指标值,理论上mAP的最优值=1。 举例理解:在所有预测图片中, 取某一个类别的P-R曲线图 P-R曲线图 :以Recall为横轴,Precision为纵轴,并将Precision [0, 1] 范围内的每个点对应recall的值连接起来形成一条折线。 如左图的蓝色曲线 曲线特点:随着

    2023年04月15日
    浏览(60)
  • YOLO Air:YOLO科研改进论文推荐 | 改进组合上千种搭配,包括Backbone,Neck,Head,注意力机制,适用于YOLOv5、YOLOv7、YOLOX等算法

    🔥🔥🔥YOLOAir开源算法库!!! 💡统一使用 YOLOv5、YOLOv7 代码框架, 结合不同模块来构建不同的YOLO目标检测模型。 🌟本项目包含大量的改进方式,降低改进难度,改进点包含 【Backbone特征主干】 、 【Neck特征融合】 、 【Head检测头】 、 【注意力机制】 、 【IoU损失函数】

    2024年02月01日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包