IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 实时目标检测新高地之#YOLOv7#更快更强的目标检测器 -> 正文阅读

[人工智能]实时目标检测新高地之#YOLOv7#更快更强的目标检测器

在这里插入图片描述
单位:台湾中科院信科所(王建尧)
ArXiv:https://arxiv.org/abs/2207.02696
Github:https://github.com/WongKinYiu/yolov7

导读:本该一天完成该论文的精读,愣是拖了三天;也算是在8月第一天完成,向军人精神致敬。YOLO系列的论文比较多,已经没有了刚出来时惊为天人的那种快感,该领域迭代速度快,内卷严重。读完本篇文章,最大的感受就是大小技巧一起卷。如果说YOLOv5是在结构上小改,那么YOLOv7是从头到脖子都在整改,重参数化、模型缩放、粗细标签结合。刚把v5版本解读完毕,又出一个v7版本,对我来说是不是好事吗?哎!

在这里插入图片描述



摘要

YOLOv7在5-160FPS范围的速度与精度超过了所有已知的目标检测器,在GPU V100上超过30FPS甚至更高速度的实时检测器中具有最高的56.8%检测精度。YOLOv7-E6取得了(V100,56FPS和55.9% AP),比基于Transformer的检测器Swin Cascade-Mask R-CNN(A100,9.2FPS和53.9%AP)速度上快了509%,精度上提升2%;比基于卷积的检测器ConvNeXt-XL Cascade-Mask R-CNN(A100 8.6FPS,55.2% AP)速度快551%倍,精度上提升0.7%;同样,YOLOv7在精度上超过了YOLOR、YOLOX、Scaled-YOLOv4、YOLOv5、DETR、Deformable DETR、DINO-5scale-R50、ViT-Adapter-B和很多其他的目标检测器。此外,作者仅使用MS COCO数据集上从头开始训练,而不使用其他数据集和预训练的权重。源代码已发布。


一、介绍

实时目标检测器是计算机视觉中一个非常重要的主题,因为它在视觉系统中扮演重要成分,例如,多目标追踪、自动驾驶、机器人、医学图像分析等。执行实时目标检测的计算装置通常是移动CPU或GPU,和各大厂商开发的神经处理单元NPU,如Apple神经引擎,Intel神经计算棒,Nvidia Jetson 边缘设备,Google边缘TPU,Qualcomm神经处理引擎,MediaTek AI处理单元,Kneron AI嵌入式都是NPUs。上述提到的边缘设备通过不同的操作来关注提速,如vanilla CNN,DW-CNN,MLP。本文中,作者提出的实时目标检测器希望能够同时支持移动GPU和从边缘到云端的GPU设备。

近些年,实时目标检测仍在针对不同的边缘设备而进行开发。例如,MCUNet和NanoDet专注于生产低功耗单芯片并提升边缘CPU的推理速度。而对于诸如YOLOX和YOLOR等方法专注在各种GPUs上提升推理速度。最近,实时目标检测器的发展关注高效架构的设计。对于能够在CPU上工作的实时目标检测器,它们的设计大多基于MobileNet、ShuffleNet和GhostNet。另一个主流是针对GPU而发展的,多数使用ResNet,DarkNet和DLA,然后使用CSPNet策略去优化架构。本篇文章提出的发展方向不同于当前主流的实时目标检测器。除了架构优化之外,作者提出的方法将专注训练过程的优化。作者的重点将放在一些优化的模块和优化方法上,他们可能会增加训练成本以提升目标检测的精度,但不会增加推理成本。作者将提出的模块和优化方法称为可训练的免费赠品。

Our focus will be on some optimized modules and optimization methods which may strengthen the training cost for improving the accuracy of object detection, but without increasing the inference cost. We call the proposed modules and optimization methods trainable bag-of-freebies.

最近,模型重参数化和动态标签分配已成为网络训练和目标检测的重要主题。主要是在上述概念提出之后,目标检测器的训练演变出很多新问题。作者将展示一些新的问题和设计解决方法。对于模型重参数化,作者用梯度传播路径的概念分析了适用于不同网络层的模型重参数化策略,并提出了有计划的重参数化策略。此外,作者发现使用动态标签分配技术时,具有多个输出层模型的训练会产生新问题,如“如何为不同分支的输出分配动态目标”。针对这个问题,作者提出一个新的标签分配方法,称为由粗到细的引导式标签分配。

本文贡献总结如下:

  • 设计了若干可训练的免费包方法,很大提升了检测精度而不增加推理成本。
  • 发现了两个有关目标检测器演变过程中的新问题,即如何重参数化模型以替代原始模型;动态标签分配策略如何处理分配给不同输出层的问题。此外,作者提出方法来解决上述难题。
  • 作者为实现实时目标检测,提出了“扩展”和“复合缩放”方法,可以有效利用参数与计算。
  • 作者提出的方法有效减少了领先实时目标检测器40%的参数量和50%运算量,并且具有最快推理速度和更高的检测精度。

二、相关工作

2.1 实时目标检测器

当前领先的实时目标检测器主要基于YOLO,FCOS。能够成为领先的实时目标检测器需要以下特征:

  1. 一个更快更强的网络架构;
  2. 一个更有效的特征集成方法;
  3. 一个更准确地检测方法;
  4. 一个更鲁棒损失函数;
  5. 一个更有效的标签分配方法;
  6. 一个更有效的训练策略。
    本篇文章,作者不打算去探索自训练或者知识蒸馏方法,它们需要额外的数据或者更大的模型。相反,作者针对上述(4,5,6)相关的先进方法衍生的问题,将设计新的可训练免费包方法,即new trainable bag-of-freebies method

2.2 模型重参数化

模型重参数化技术在推理阶段将多个计算模块合并为一个。模型重参数化技术可以看成是一种集成技术,我们可以将之分为两类:模型级别的集成,模块级别的集成。模型级别的重参数化有两个常见的做法来获取最终的推力模型。一种是用不同的训练数据训练多个相同的模型,然后对多个训练模型的参数进行加权平均。另一种是在不同迭代次数的模型权重进行加权平均。模块级别的重参数化是一种更流行的研究方法。这种方法在训练时将一个模块拆分为多个相同或不同的模块分支,在推理时将多个分支模块集成为一个完全等效的模块。然而,并非所有重参数化模块能够完美应用到不同架构上。考虑到这一点,作者开发了一种新的重参数化模块,并为不同架构设计了相关的应用策略。

2.3 模型缩放

模型缩放是一种放大或缩小已设计模型并使其适合不同计算设备的方法。模型缩放方法通常使用不同的缩放因子,例如分辨率(输入图像的大小),深度(层数),宽度(通道数)和阶段(特征金字塔的层数),在参数量、运算量、推理速度和精度之间的良好权衡。

网络架构搜索(network architecture search, NAS)是常用的模型缩放方法之一。NAS可以自动从搜索空间 搜索到合适的缩放因子,而不需定义过多复杂的规则。它的缺点是需要非常昂贵的计算来完成对模型缩放因子的搜索。在研究中,学者分析了缩放因子与参数量运算量之间的关系,试图直接估计一些规则从而获得模型缩放所需要的缩放因子。查阅文献,作者发现几乎所有模型缩放方法都独立分析单个缩放因子,甚至复合缩放类别中的方法也独立优化缩放因子。这是因为多数流行的NAS架构处理的比例因子不是很相关。作者观察到所有基于串联模型,如DenseNet或VoVNet,在当这些模型的深度被缩放时,将会改变某些层的输入宽度。由于所提出模型是采用串联的,作者得设计新的复合缩放方法。

三、架构

3.1 扩展的高效的特征聚合网络

Extended efficient layer aggregation networks

在多数关于设计高效架构的文献中,主要考虑因素无非是参数量、运算量和计算密度。从内存访问成本的特点出发,有文献分析了输入\输出通道比、架构分支数量、和逐元素相加对推理速度的影响。也有研究额外考虑激活功能,在执行模型缩放时,即更多考虑卷积层输出张亮的元素数量。

在这里插入图片描述

在这里插入图片描述

图2 b)中CSPVoVNet的设计是VoVNet的一个变体。除了考虑上述基本的设计问题外,CSPVoV还分析了梯度路径,以使不同层的权重能够学习更多样化的特征,这种梯度分析方法使得推理更快、更准确。
图2 c)中ELAN考虑如下设计策略,即如何设计高效网络?作者得出一个结论:通过控制最短的长梯度路径,一个更深的网络能够有效地学习与收敛。本文中作者提出扩展的ELAN,即E-ELAN,如图2 d)所示。

在这里插入图片描述

无论梯度路径长度和大规模ELAN中计算块的堆叠数量如何,它都达到了稳定状态。如果无限堆叠计算块,这种平衡状态会被打破,参数利用率会降低。E-ELAN使用扩展、洗牌(这里翻译成,打乱次序再组合)、合并基数来不断提升网络学习能力而不破快原始的梯度路径。在架构方面,E-ELAN只改变了计算块,而架构的传导层完全没有改变。作者的策略是使用组卷机去扩展计算块的通道和基数。作者将采用相同的组参数和通道乘数到每一个计算层的所有计算块上。然后,通过每个计算块计算的特征图将会根据设置的组参数g打乱成g个组,然后再串联到一起。此时,每组特征图的通道数与原始架构的通道数相同。最后,作者添加g组特征图来执行合并基数。除了保持原始的ELAN设计架构,E-ELAN还可以知道卷积块的不同组学习更多样的特征。

3.2 基于串联模型的模型缩放

Model scaling for concatenation-based models

模型缩放的主要目的是调整模型的一些属性,产生不同尺度的模型以满足不同推理速度的要求。例如,EfficientNet的缩放模型考虑了宽度、深度和分辨率。至于scaled-YOLOv4,它是调整阶段的数量。有研究分析了当缩放宽度与深度时,原始卷积和组卷积在参数量和运算量上的影响,并以此设计了相应的模型缩放方法。以上方法主要用在PlainNet和ResNet等架构中,它们在执行扩容或缩容时,每一层的出入度都不会发生变化,因此,我们能够独立分析每个缩放因子对参数量和计算量的影响。但是,如果这些方法应用在基于串联的架构上,作者发现当在深度上执行扩充或缩放时,在串联计算模块后接上的传导层它的入度将会对应减少或增加,如图3所示。

在这里插入图片描述

从上述想先可以推断,对于基于串联的模型我们不能分开分析不同的缩放因子而是要一起考虑。拿扩充深度为例,这样的操作将会引起传导层的输入通道和输出通道之间的比例改变,这将导致模型的硬件使用量减少。因此,作者提出对应的复合模型缩放方法来应对串联模型。当我们缩放一个计算模块的深度时,必须还要计算该模块的输出通道的变化。然后,作者对传导层进行等量变化的宽度因子缩放。作者提出的复合缩放方法能够保持原始设计的属性,并能保持最佳结构。

在这里插入图片描述
图 3:基于串联的模型的模型缩放。从 (a) 到 (b),我们观察到当在基于串联的模型上执行深度缩放时,计算块的输出宽度也会增加。这种现象会导致后续传输层的输入宽度增加。因此,我们提出?,即对基于concatenation的模型进行模型缩放时,只需要对计算块中的深度进行缩放,其余的传输层进行相应的宽度缩放。

四、可训练的免费包

Trainable bag-of-freebies

4.1 重参数化卷积

尽管RepConv在VGG上获得优秀的表现,当我们直接将之应用到ResNet和DenseNet和其他架构上时,它的精度将会明显下降。作者使用梯度流传播路径去分析重参数化卷积如何结合不同的网络。作者同样设计了对应的重参数化卷积,即RepConv。

RepConv实际上将3×3,1×1,恒等连接结合到一个卷积层中。在分析RepConv和不同架构的组合与性能后,作者发现RepConv中的恒等连接破坏ResNet中的残差和DenseNet中的串联,而它们为不同特征图提供了梯度的多样性。基于以上原因,作者使用不带有恒等连接的RepConv,即RepConvN,去设计架构中的冲参数化卷积。在作者看来,当带有残差或串联的卷积层被重参数化卷积替代,应该不再有恒等映射。下图展示了作者在ResNet和PlainNet中设计的重参数化卷积,至于基于残差模型和串联模型的完整的重参数化卷积实验,将在腐蚀实验中学习。

在这里插入图片描述

4.2 粗为辅助,细为主导损失

Coarse for auxiliary and fine for lead loss

深度监督是一种常用于训练深度网络的技术。它的主要概念是添加额外的辅助头到网络的中间层,和浅层网络权值的辅助损失作为指导。甚至对于ResNet和DenseNet架构等通常收敛良好,深度监督仍然能显著提高模型在很多任务上的性能。图5分别展示没有、有深度监督两种情况下的目标检测架构。本文作者将对最终输出负责的头称为主导头,辅助训练的头称为辅助头。

在这里插入图片描述
与普通的模型(a)比较,模型(b)中的策略有额外的辅助头。

接着讨论标签分配的问题。过去在训练深度网络时,标签分配通常直接指向人工标注,并产生硬标签。但是最近,如果我们把目标检测作为一个例子,研究者经常使用网络输出的质量与分布的预测,然后与真实标注一起考虑,使用一些计算和优化方法去产生可靠的软标签。例如,YOLO使用预测的边界框与真实框之间的IoU作为目标的软标签。本文中,作者将这种考虑网络预测结果与真实标注,并分配软标签的机制为“标签分配者”。

无论辅助头还是主导头的情况如何,深度监督需要在目标上训练。在软标签分配相关的技术发展中,作者偶然发现一个新的衍生问题,即“如何分配软标签到辅助头和主导头”。据目前所知,还没有文献探索这个问题。当前最流行方法的结果如下图所示,就是将辅助头和主导头分开,然后使用他们自己的预测结果和真实标注去执行标签分配。

在这里插入图片描述
Figure 5: Coarse for auxiliary and fine for lead head label assigner. Compare with normal model (a), the schema in (b) has auxiliary head. Different from the usual independent label assigner ?, we propose (d) lead head guided label assigner and (e) coarse-to-fine lead head guided label assigner. The proposed label assigner is optimized by lead head prediction and the ground truth to get the labels of training lead head and auxiliary head at the same time. The detailed coarse-to-fine implementation method and constraint design details will be elaborated in Apendix.
标签分配器:由粗为辅助,精为主导。普通的独立标签分配器(c),作者提出主导头引导的标签分配器(d),和由粗到细的主导头引导的标签分配器。作者提出的标签分配器被主导头预测和真实标签优化,以获取同时训练主导头和辅助头的标签。在原文附件中作者详细展示了由粗到细的实现方法和约束设计细节。

而作者提出的方法是一种新的标签分配方法,通过主导头的预测来同时指导辅助头和主导头。也就是说,作者使用主导头预测作为一种辅导来生产从粗到细的分层标签,并被用于辅助头和主导头的学习。作者提出的两种方法分别如上图所示。

主导头引导的标签分配器

该方法主要基于主导头的预测结果与真实标签来计算的,通过优化过程会产生软标签。这组软标签将会用作辅助头和主导头的目标训练模型。这么做得理由是主导头有一个相对强的学习能力,因此它产生的软标签应该在源数据与目标之间的分布和关联上更有具有代表性。此外,作者将这样的学习方法当作某种泛化的残差学习。通过让浅层的辅助头直接学习主导头学习到的信息,主导头将会更加专注学习还没有学习到的残差信息。

由粗到精的主导头引导的标签分配器

该方法同样适用主导头的预测结果与真实标注去产生软标签。但是,在这个过程中,作者产生了两组不同的软标签,即粗标签与精标签,其中精标签与由主导头产生的软标签是一样的,而粗标签通过放宽正样本分配过程的约束而允许更多格子被当成正样本来生成粗标签。这么做的理由是辅助头的学习能力不如主导头强,为了避免需要学习的信息受到损失,作者将重点放在辅助头的召回率优化上。对于主导头的的输出,作者能够从高召回率结果中过滤高精度作为结果。但是,必须注意到如果粗标签的附加权重接近精标签,将会产生不良先验。因此,为了使这些这些额外生产的粗颗粒度的正样本格子影响更小,作者在解码器中设置了限制,使得它们不能完美地产生软标签。这种机制能够允许在学习过程中动态调整精细和粗糙标签的重要性,使得细标签的可优化上限始终高于粗标签。

4.3 其他可训练的免费包

作者还列举了一些可训练的免费包,主要是在训练过程中用到的技巧,包括:

  • 在Conv-BN-Activation拓扑结构中的BN,主要将BN直接连接到卷积层,目的是在推理阶段将BN的均值和方法整合到卷积层的偏差和权重;
  • YOLOR中的隐式知识以加法与乘法方式与结合卷积特征图:YOLOR中的隐式知识可以通过在推理阶段的预计算简化为向量。这个向量能够与卷积层的偏差与权重相结合。
  • EMA模型:它是一种平均教师模型中的技术,在此系统中仅作为最终的推理模型。

五、实验

5.1 实验设置

作者使用 Microsoft COCO 数据集进行实验并验证目标检测方法。所有的实验都没有使用预训练模型。也就是说,所有模型都是从头开始训练的。在开发过程中,我们使用train 2017 set进行训练,然后使用val 2017 set进行验证和选择超参数。最后,我们展示了对象检测在 2017 年测试集上的性能,并将其与最先进的对象检测算法进行了比较。详细的训练参数设置在附录中描述。

  • 作者设计了基本的模型用于边缘GPU,普通GPU和云GPU,分别对应YOLOv7-tiny,YOLOv7和YOLOv7-W6。
  • 同时,作者也使用基本模型进行模型缩放,以满足不同的业务需求。对于YOLOv7,作者在Neck上做了stack
    scaling,并使用复合缩放方法去执行整个模型的宽度和深度的进行扩展,并得到YOLOv7-X。
  • 对于YOLOv7-W6,作者使用新提出的复合缩放方法获得YOLOv7-E6和YOLOv7-D6。
  • 此外,作者提出的E-ELAN用于YOLOv7-E6,因此得到YOLOv7-E6E。

由于YOLOv7-tiny是面向边缘GPU的架构,它采用弱ReLUctant作为激活函数;对于其他模型,作者采用SiLU作为激活函数。作者将在附录中详细描述每个模型的缩放因子。

5.2 基线模型

作者采用以前版本的YOLOv5、YOLOX、YOLOR作为基线。表格对比YOLOv7系列模型与这些基线模型在相同设置下训练的结果。
从表格中发现:

  • 与YOLOv4相比,YOLOv7减少了75%参数,36%运算量,带来了1.5%AP提升。
  • 和其他领先的YOLOR-CSP相比,YOLOv7减少了43%参数,15%运算量和0.4%AP提升。
  • 与迷你模型比较,如YOLOV4-tiny-31相比,YOLOv7-tiny减少了39%参数量和49%运算,而保持AP不变;
  • 在云GPU模型上,减少19%参数量和33%的运算量,AP反而提升。

在这里插入图片描述

5.3 与领先的方法对比

作者也对比通用GPU和移动GPU下的领先目标检测器的性能,如图所示,可以发现作者提出的方法在速度-精度的均衡上达到最好:

  • 同YOLOv5-N(r6.1)相比,YOLOv7-tiny-SiLU达到更快的127fps,AP提升了10.7%;
  • 同PPYOLOE-L相比,它仅78fps,而YOLOv7达到161fps,参数量减少41%,保持AP不变;
  • 同YOLOv5-L(r6.1)相比,它有99fps推理速度,而YOLOv7-X具有114fps,提升3.9%AP;
  • 同YOLOv5-X相比,YOLOv7-X具有相似的容量,但快了31fps,并且减少了22%参数量和8%运算量,AP提升了2.2%;

在这里插入图片描述

  • 在输入1280分辨率下,同YOLOR相比,YOLOv7-W6比YOLOR-P6快了8fps,AP提升1%;
  • 同YOLOv5-X相比,YOLOv7-E6降低45%参数量,63%运算,而推理速度提升47%,AP也增加0.9%;
  • 同YOLOR-E6相比,YOLOv7-D6虽然速度差不多,但AP提升了0.8%;
  • 同YOLOR-D6比较,YOLOv7-E6E速度差不多,但AP提升了0.3%;
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:44:55  更:2022-08-06 10:47:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/24 15:40:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码