ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

YOLOv4——论文翻译

2021-04-12 21:32:04  阅读:182  来源: 互联网

标签:翻译 YOLOv4 训练 检测器 论文 目标 使用 GPU 我们


YOLOv4: Optimal Speed and Accuracy of Object Detection

概要:
据说有大量的特征可以提高卷积神经网络(CNN)的精度。需要在大数据集上对这些特征组合进行实际测试,并对结果进行理论论证。有些特征只适用于某些模型和某些问题,或只适用于小规模数据集;然而有一些特征,如批标准化和残差连接,适用于大多数模型、任务和数据集。我们假设这些普遍特征包括加权剩余连接(WRC),跨阶段部分连接(CSP),交叉小批量标准化(CmBN),自对抗训练(SAT)和Mish-activation。我们使用新特征:WRC、CSP、 CmBN、SAT、Mish-activation、马赛克数据增强、CmBN、DropBlock正规化、CIoU损失函数,将它们结合得到一个目前最好的结果:测试MS COCO数据集在Tesla V100上达到速度65 FPS且AP43.5%(65.7% AP50)。
源代码在 https://github.com/AlexeyAB/darknet。

1、 介绍
大多数基于cnn的目标检测器在很大程度上只适用于推荐系统。例如,通过城市视频摄像机搜索免费停车位是由缓慢精确的模型执行的,而汽车碰撞警告与快速不精确的模型有关。提高实时目标检测器的准确性,不仅可以用于提示生成推荐系统,还可以用于独立的过程管理和减少人力投入。实时目标探测器操作在传统图形处理单元(GPU)允许他们以合理的价格大量使用。最精确的现代神经网络并不是实时操作的,并且需要大量的gpu来进行训练。我们通过创建一个在传统GPU上实时操作的CNN来解决这些问题,并且它的训练只需要一个传统GPU。

这项工作的主要目标是设计一个在生产系统中快速运行的目标检测器,并优化并行计算,而不是低计算量的理论指标(BFLOP)。我们希望所设计的目标检测器能够易于训练和使用。例如,任何使用传统GPU进行训练和测试的人都可以获得实时、高质量和令人信服的目标检测结果,YOLOv4 的结果如图1所示:
图1:建议的YOLOv4与其他最先进的对象检测器的比较。YOLOv4的运行速度是EfficientDet的两倍,性能相当。在YOLOv3的的基础上提高了10%AP和12%FPS分别和

1、我们的贡献总结如下:

  1. 我们开发了一个高效和强大的目标检测模型。它让每个人都可以使用1080 Ti或2080 Ti GPU来训练一个超级快速和准确的目标检测器。

  2. 在目标检测器训练期间,我们验证了最先进的Bag-of-Freebies和Bag-of-Specials对目标检测的影响。

  3. 我们改进了目前最先进的方法,使其更加有效、适合于单个GPU训练,包括CBN[89]、PAN[49]、SAM[85]等。

在这里插入图片描述
2. 相关工作

2.1 对象检测模型

一个现代的目标检测器通常由两部分组成:一个是在ImageNet上预先训练的骨干backbone,一个是用来预测物体的类和边框的头部head。对于那些运行在GPU平台上的检测器,其骨干可以是VGG[68]、ResNet[26]、ResNeXt[86]或DenseNet[30]。对于那些运行在CPU平台上的检测器,其骨干可以是SqueezeNet [31], MobileNet[28, 66, 27, 74]或ShuffleNet[97,53]。对于头部,通常分为两类,即一阶段目标检测器和二阶段目标检测器。最具代表性的二阶段目标检测器是R-CNN[19]系列,包括fast R-CNN [18], faster R-CNN [64], R-FCN [9], Libra R-CNN[58]。也可以让一个二阶段的物体检测器成为一个无锚的物体检测器,例如RepPoints[87]。对于一阶段目标检测器,最具代表性的模型是YOLO[61,62,63]、SSD[50]和RetinaNet[45]。近年来发展了无锚式一阶段目标探测器。这类探测器是CenterNet[13]、CornerNet[37,38]、FCOS[78]等。近年来发展起来的目标检测器往往在主干和头部之间插入一些层,这些层通常用于收集不同阶段的特征图。我们可以称之为目标检测器的颈部Neck。通常,颈部由多条自下而上的路径和多条自上而下的路径组成。配备这种机制的网络包括特征金字塔网络(FPN)[44]、路径聚合网络(PAN)[49]、BiFPN[77]和NAS-FPN[17]。

除了上述模型外,还有一些研究者将重点放在了直接构建一个新的骨干(DetNet [43], detas[7])或一个新的整体模型(SpineNet [12], HitDetector[20])。综上所述,普通的目标检测器由以下几部分组成:
Input: Image, Patches, Image Pyramid
• Backbones: VGG16 [68], ResNet-50 [26], SpineNet[12], EfficientNet-B0/B7 [75],CSPResNeXt50 [81],CSPDarknet53 [81]
• Neck:
 • Additional blocks: SPP [25], ASPP [5], RFB[47], SAM [85]
• Path-aggregation blocks: FPN [44], PAN [49],
 NAS-FPN [17], Fully-connected FPN, BiFPN[77], ASFF [48], SFAM [98]
• Heads::
 • Dense Prediction (one-stage):
  ◦ RPN [64], SSD [50], YOLO [61], RetinaNet[45] (anchor based)CornerNet [37], CenterNet [13], MatrixNet[60], FCOS [78]   ◦(anchor free)
• Sparse Prediction (two-stage):
 ◦ Faster R-CNN [64], R-FCN [9], Mask RCNN[23] (anchor based)
 ◦ RepPoints [87] (anchor free)

2.2. Bag of freebies
通常,传统的目标检测器是离线训练的。因此,研究者们总是喜欢利用这一优势,开发出更好的训练方法,在不增加推理成本的情况下,使目标检测器获得更好的精度。我们将这些只改变训练策略或只增加训练成本的方法称为“免费赠品袋”。“目标检测方法通常采用的符合免费赠品包定义的是数据增强。”数据增强的目的是增加输入图像的可变性,使所设计的目标检测模型对不同环境下获得的图像具有更高的鲁棒性。例如,光度畸变和几何畸变是两种常用的数据增强方法,它们肯定有利于目标检测任务。在处理光度失真时,我们调整图像的亮度、对比度、色调、饱和度和噪声。对于几何失真,我们添加了随机缩放、剪切、翻转和旋转。

上述数据增强方法均为像素级调整,调整区域内的所有原始像素信息均被保留。此外,一些从事数据增强的研究人员把重点放在了模拟物体遮挡问题上。在图像分类和目标检测方面取得了较好的效果。例如随机erase[100]和CutOut[11]可以随机选择图像中的矩形区域,并填充随机值或零的互补值。捉迷藏[69]和网格掩码[6]是随机或均匀地选择图像中的多个矩形区域并将其全部为零。如果将类似的概念应用于功能地图,则有DropOut[71]、DropConnect[80]和DropBlock[16]方法。此外,一些研究人员提出了多幅图像一起进行数据增强的方法。例如,MixUp[92]使用两张图像以不同的系数比例相乘叠加,然后根据这些叠加比例调整标签。CutMix[91]是将裁剪后的图像覆盖到其他图像的矩形区域,并根据混合区域的大小调整标签。除上述方法外,还使用style transfer GAN[15]进行数据增强,这样可以有效减少CNN学习到的纹理偏置。

与上面提出的各种方法不同,其他一些免费包方法是专门解决数据集中的语义分布可能存在偏差的问题。在处理语义分布偏差问题时,一个非常重要的问题是不同类之间存在数据不平衡的问题,而这个问题在两阶段目标检测器往往通过硬反例挖掘来解决[72]或在线硬例挖掘[67]。但是实例挖掘方法并不适用于单阶段目标检测器,因为这类检测器属于密集预测体系结构。因此Lin等人[45]提出了focal loss来解决不同类别之间数据不平衡的问题。另一个非常重要的问题是,很难用单一的硬表象来表达不同类别之间的关联程度关系。在执行标记时经常使用这种表示方式。在[73]中提出的标签平滑是将硬标签转换为软标签进行训练,这样可以使模型更加鲁棒。为了获得更好的软标签,Islam等[33]引入了知识精炼的概念来设计标签细化网络。

最后一个bag of freebies是边界盒回归(BBox)的目标函数。传统的目标检测器通常使用均方误差(MSE)直接对BBox的中心点坐标和高、宽进行回归,即{xcenter, ycenter,w, h},或左上点和右下点,i.e, {xtop.left ,ytop.left, xbottom.right, ybottom.right}。基于锚点的方法是估计相应的偏移量,例如{xcenter.offset, ycenter.offset,w.offset,h.offset}或{x.top.left.offset, y.top.left.offset,
x.bottom.right.offset, y.bottom.right.offset}。然而,直接估算BBox中每个点的坐标值就是将这些点作为自变量,而实际上并没有考虑到对象本身的完整性。为了更好地处理这一问题,最近有研究人员提出了IoU loss[90],它考虑了预测BBox面积和ground truth BBox面积的覆盖。IoU loss计算过程将触发BBox的四个坐标点的计算,用ground truth计算IoU loss,然后将生成的结果连接成一个完整的代码。因为IoU是一个尺度不变表示法,可以解决传统方法计算{x, y, w,h}时的l1或l2损失,损失会随着规模的增加而增加的问题。近年来,一些研究人员一直在继续改善IoU损失。例如GIoU丢失[65],除了覆盖区域外,还包括物体的形状和方向。他们提出寻找能够同时覆盖预测BBox和地真BBox的最小面积BBox,并以此BBox作为分母来替代原来用于IoU损失的分母。DIoU损失[99]考虑了物体中心的距离,CIoU损失[99]同时考虑了重叠面积、中心点之间的距离和长宽比。CIoU可以在BBox回归问题上取得较好的收敛速度和精度。

2.3. Bag of specials
对于一些插件模块和后处理方法,虽然只增加了少量的推理成本,但却能显著提高目标检测的准确性,我们称之为“特殊包”。一般来说,这些插件模块是为了增强模型中的某些属性,如扩大接受野、引入注意机制、增强特征整合能力等,后处理是对模型预测结果进行筛选的一种方法。

常用的增强感受野的模块有SPP[25]、ASPP[5]和RFB[47]。SPP模块源于空间金字塔匹配(Spatial Pyramid Matching, SPM) [39], SPMs原始方法是将feature map分割成若干个d × d相等的块,其中d可以为{1,2,3,…},形成空间金字塔,进而提取bag-of-word特征。SPP将SPM集成到CNN中,使用max-pooling操作而不是bag-of-word操作。由于He等人[25]提出的SPP模块会输出一维特征向量,所以在全卷积网络(Fully Convolutional Network, FCN)中应用不可行。因此,在YOLOv3[63]的设计中,Redmon和Farhadi改进了SPP模块,将内核大小为k × k的max-pooling输出串联起来,其中k = {1,5,9,13}, stride = 1。在本设计下,较大的k × k maxpooling可以有效增加骨干特征的接受野。在添加了改进版本的SPP模块之后,YOLOv3-608在MS COCO对象检测任务上将AP50升级了2.7%,但代价是额外增加了0.5%的计算量。ASPP[5]模块与改进后的SPP模块在操作上的差异主要来自于原来k×k kernel size, stride的max-pooling = 1到几个3 × 3 kernel size, expanded ratio = k, expanded卷积操作中的stride = 1。RFB模块是利用k×k kernel的几个膨胀的卷积,膨胀的比例等于k, stride等于1来获得比ASPP更全面的空间覆盖。RFB[47]只需要花费7%的额外推断时间来增加MS COCO上SSD的AP50 5.7%。

在目标检测中常用的注意模块主要分为通道注意和点注意,这两种注意模型的代表分别是挤压-激励(SE)[29]和空间注意模块(SAM)[85]。尽管SE模块可以改善ResNet50的性能,在ImageNet图像分类任务中top-1提升1%精度,代价只会增加2%的计算工作,但是在GPU通常会增加约10%的推理时间,所以它更适合用于移动设备。而对于SAM,只需要额外支付0.1%的计算量,就可以提高ResNet50-SE在ImageNet图像分类任务上0.5% top-1的准确率。最重要的是,它根本不影响GPU上的推理速度。

在特性集成方面,早期的做法是使用跳跃连接[51]或超列[22]将低级物理特性集成到高级语义特性。随着FPN等多尺度预测方法的流行,人们提出了许多集成不同特征金字塔的轻量级模型。这类模块包括SFAM[98]、ASFF[48]和BiFPN[77]。SFAM的主要思想是利用SE模块对多尺度级联特征映射执行通道级重权。对于ASFF,它使用softmax作为点级调整,然后添加不同尺度的特征图。在BiFPN中,提出了多输入加权残差连接来执行尺度级重权,然后添加不同尺度的特征映射。

在深度学习的研究中,有些人专注于寻找良好的激活函数。 好的激活函数可以使梯度更有效地传播,同时不会造成过多的额外计算成本。 Nair和Hinton [56]在2010年提出ReLU来实质上解决传统的tanh和S形激活函数中经常遇到的梯度消失问题。 随后,LReLU [54],PReLU [24],ReLU6 [28],比例指数线性单位(SELU)[35],Swish [59],hard-Swish [27]和Mish [55]等也提出了用于解决梯度消失问题的方法。 LReLU和PReLU的主要目的是解决输出小于零时ReLU的梯度为零的问题。 至于ReLU6和Hard-Swish,它们是专门为量化网络设计的。 为了对神经网络进行自归一化,提出了SELU激活函数来满足这一目标。 要注意的一件事是,Swish和Mish都是连续可区分的激活函数。

基于深度学习的对象检测中常用的后处理方法是NMS,它可以用来过滤那些预测很差的BBox,而仅保留具有较高响应的候选BBox。 NMS尝试改进的方法与优化目标函数的方法一致。 NMS提出的原始方法没有考虑上下文信息,例如Girshick等。 [19]在R-CNN中添加了分类置信度得分作为参考,并且根据置信度得分的顺序,从高分到低分的顺序执行了贪婪的NMS。 对于软网络管理系统[1],它考虑到一个问题,即物体的遮挡可能会导致带有IoU分数的贪婪的网络管理系统的置信度得分下降。 DIoU NMS [99]开发人员的思维方式是在软NMS的基础上将中心点距离的信息添加到BBox筛选过程中。 值得一提的是,由于上述后处理方法均未直接涉及捕获的图像特征,因此在随后的无锚定方法开发中不再需要后处理。

3. Methodology
基本目标是在产品系统中使用神经网络以更快的速度运行,同时优化并行计算,而不是使用低计算量理论指标(BFLOP)。 我们提供了实时神经网络的两种选择:
•对于GPU,我们在卷积层中使用少量组(1-8):CSPResNeXt50 / CSPDarknet53
•对于VPU - 我们使用分组卷积,但我们避免使用挤压和激发(SE)块 - 特别是以下这些模型:EfficientNet-lite / MixNet [76] / GhostNet [21] / MobileNetV3

3.1. Selection of architecture
我们的目标是在输入网络分辨率、卷积层数、参数量(过滤器大小2 *过滤器 *通道/组)和层输出(过滤器)的数量之间找到最佳平衡。 例如,我们的大量研究表明,就ILSVRC2012(ImageNet)数据集上的对象分类而言,CSPResNext50比CSPDarknet53更好。 然而,相反,就检测MS COCO数据集上的对象而言,CSPDarknet53优于CSPResNext50 [46]。

下一个目标是针对不同的检测器级别从不同的主干级别中选择其他块来增加感受野和参数聚集的最佳方法: FPN,PAN,ASFF,BiFPN。 分类最优的参考模型对于目标检测器来说并不一定是最好的。 与分类器相比,检测器需要:
•更高的输入网络大小(分辨率)– 用于检测多个小型对象
•更高的层 – 用于更大的感受野以及覆盖输入网络的更大尺寸
•更多的参数 – 用于在单张图片中检测更多不同大小目标的能力

假设我们可以选择一个感受野尺寸较大(卷积层数较大,为3 × 3)和参数数量较大的模型作为主干。表1显示了CSPResNeXt50、CSPDarknet53和EfficientNet B3的信息。CSPResNext50仅包含16个卷积层(3 × 3),一个425 × 425的感受野和20.6M参数。而CSPDarknet53包含29个3 × 3卷积层, 725 × 725感受野,27.6 M参数。这一理论论证以及我们的大量实验表明,CSPDarknet53神经网络是这两种算法的最优模型,可以作为检测器的骨干。
在这里插入图片描述
不同大小的感受野的影响总结如下:
•达到对象大小 - 允许查看整个对象
•达到网络大小 - 允许查看对象周围的上下文
•超过网络大小 - 增加了图像点和最终激活之间的连接数量

我们在CSPDarknet53上添加了SPP块,因为它显著增大了感受野,分离出最重要的上下文特征,并且几乎不会降低网络运行速度。 我们使用PANet作为来自不同主干级别,不同检测器级别的参数聚合方法,而不是YOLOv3中使用的FPN。

最后,我们选择CSPDarknet53骨干,SPP附加模块,PANet路径聚合瓶颈和YOLOv3(基于锚)的头部作为YOLOv4的体系结构。

将来,我们计划大幅扩展用于检测器的Bag of Freebies(BoF)的内容,从理论上讲,它可以解决一些问题并提高检测器的准确性,并以实验方式依次检查每个特征的影响。

我们不使用跨GPU批量标准化(CGBN或SyncBN)或昂贵的专用设备。 这样一来,任何人都可以在传统的图形处理器上重现我们的最新技术成果,例如 GTX 1080Ti。

3.2 BoF和BoS的选择
为了改进目标检测训练,CNN通常使用以下内容:
•激活函数:ReLU,leaky-ReLU,参数化ReLU,ReLU6,SELU,Swish或Mish
•边界框回归损失函数:MSE,IoU, GIoU,CIoU,DIoU
•数据增强:CutOut,MixUp,CutMix
•正则化方法:DropOut,DropPath [36],空间DropOut [79]或DropBlock
•通过均值和方差对网络激活进行归一化:批归一化(BN) [32],跨GPU批处理规范化(CGBN或SyncBN)[93],过滤器响应规范化(FRN)[70]或跨迭代批处理规范化(CBN)[89]
•跳跃连接:残差连接,加权残差连接,多输入加权残差连接或跨级部分连接

对于训练激活函数,由于PReLU和SELU较难训练,而ReLU6是专门为量化网络设计的,因此我们将上述激活函数从候选列表中删除。在正则化的方法上,发布DropBlock的人将他们的方法与其他方法进行了详细的比较,他们的正则化方法胜出很多。因此,我们毫不犹豫地选择了DropBlock作为我们的正则化方法。在归一化方法的选择上,由于我们关注的是只使用一个GPU的训练策略,所以不考虑syncBN。

3.3 其他改进
为了使设计的检测器更适合在单个GPU上进行训练,我们进行了以下的附加设计和改进:
•我们引入了一种新的数据增强方式和自对抗训练(SAT)方法
•我们在应用遗传算法时选择了最佳超参数
•我们修改了一些现有方法,使我们的设计适合进行有效的训练和检测——修改后的SAM、修改后的PAN和跨小批量标准化(CmBN)

马赛克代表了一种新的数据增强方法,该方法混合了4个训练图像。 因此,混合了4个不同的上下文,而CutMix仅混合了2个输入图像。 这允许检测其正常上下文之外的对象。 此外,批量归一化从每层上的4张不同图像中计算激活统计信息。 这显著的减少了mini-batch size的大小。
在这里插入图片描述

自对抗训练(SAT)也代表了一种新的数据增强技术,该技术可在2个向前和向后的阶段进行操作。 在第一阶段,神经网络会更改原始图像,而不是网络权重。 以这种方式,神经网络对其自身执行对抗攻击,从而改变原始图像以产生对图像上没有想要的物体的欺骗。 在第二阶段,训练神经网络以正常方式检测此修改后的图片。
在这里插入图片描述
CmBN表示CBN修改版本,如图4所示,定义为交叉微型批处理规范化(CmBN)。 这仅收集单个批中的mini-batch之间的统计信息。

我们将SAM从空间注意改为点注意,并将PAN的快捷连接替换为串联,分别如图5和图6所示:
在这里插入图片描述
3.4. YOLOv4
在本节中,我们将详细介绍YOLOv4。
YOLOv4的组成:
• Backbone: CSPDarknet53 [81]
• Neck: SPP [25], PAN [49]
• Head: YOLOv3 [63]

YOLO v4使用:
• Bag of Freebies (BoF) for backbone: CutMix and马赛克数据增强, DropBlock正则化,分类标签平滑
• Bag of Specials (BoS) for backbone: Mish 激活函数,跨级部分连接 (CSP), 多输入加权残差连接 (MiWRC)
• Bag of Freebies (BoF) for detector: CIoU-loss,CmBN, DropBlock regularization, Mosaic data aug-mentation, Self-Adversarial Training, Eliminate grid sensitivity, Using multiple anchors for a single ground truth, Cosine annealing scheduler [52], Optimal hyper-parameters, Random training shapes
• Bag of Specials (BoS) for detector: Mish activation,SPP-block, SAM-block, PAN path-aggregation block,DIoU-NMS

4.实验
我们测试了不同训练改进技术对ImageNet(ILSVRC 2012 val)数据集上分类器准确性的影响,然后对MS COCO(test-dev 2017)数据集上检测器的准确性进行了影响。

4.1. 实验装置
在ImageNet图像分类实验中,默认的超参数如下:训练步骤为8,000,000; 批量大小和最小批量大小分别为128和32; 采用多项式衰减学习率调度策略,初始学习率为0.1。 预热步骤为1000; 动量和权重值分别设置为0.9和0.005。 我们所有的BoS实验都使用与默认设置相同的超参数,并且在BoF实验中,我们添加了额外的50%训练步骤。 在BoF实验中,我们验证了MixUp,CutMix,Mosaic,模糊数据增强和标签平滑正则化方法。 在BoS实验中,我们比较了LReLU,Swish和Mish激活功能的效果。 所有实验均使用1080 Ti或2080 Ti GPU进行培训。

在MS COCO对象检测实验中,默认的超参数如下:训练步骤为500,500;训练步骤为500,500。 采用逐步衰减学习率调度策略,初始学习率为0.01,分别在400,000步和450,000步处乘以系数0.1。 动量和重量衰减分别设置为0.9和0.0005。 所有体系结构都使用单个GPU以64的批量大小执行多尺度训练,而最小批量大小为8或4则取决于架构和GPU内存限制。 除了使用遗传算法进行超参数搜索实验外,所有其他实验均使用默认设置。 遗传算法使用YOLOv3-SPP训练GIoU损失,并搜索300个纪元的最小值5k集。 对于遗传算法实验,我们采用搜索学习率0.00261,动量0.949,IoU阈值来分配地面实况0.213,并使用损失归一化器0.07。 我们已经验证了许多BoF,包括消除网格敏感度,增加Mosic数据,IoU阈值,遗传算法,类标签平滑,交叉小批量标准化,自对抗训练,余弦退火调度程序,动态小批量大小 ,DropBlock,优化锚点,不同类型的IoU损失。 我们还对各种BoS进行了实验,包括Mish,SPP,SAM,RFB,BiFPN和Gaus sian YOLO [8]。 对于所有实验,我们仅使用一个GPU进行训练,因此未使用可优化多个GPU的诸如syncBN之类的技术。

4.2. 不同特征对分类器训练的影响
首先,我们研究了不同特征对分类器训练的影响,特别是标签类平滑的影响,不同数据增强技术、双边模糊、混合、剪切混合和马赛克的影响,如图7所示,以及不同活动的影响,如Leaky-ReLU(默认情况下)、Swish和Mish。
在这里插入图片描述
在我们的实验中,如表2所示,通过引入诸如CutMix和Mosaic数据增强,类标签平滑和Mish激活之类的功能,可提高分类器的准确性。 因此,我们用于分类器训练的BoF主干(Bag of Freebies)包括以下内容:CutMix和Mosaic数据增强和类标签平滑。 此外,我们使用Mish激活作为补充选项,如表2和表3所示:
在这里插入图片描述
4.3. 不同特征对探测器训练的影响
进一步的研究涉及到不同的Bag-of-Freebies(BoF-detector)对探测器训练精度的影响,如表4所示。我们显著扩展了BoF列表通过学习不同的能提高检测器精度但不影响FPS的特征:
• S: 消除网格敏感性,在YOLOv3中使用方程bx =σ(tx)+ cx,by = σ(ty)+ cy,其中cx和cy始终是整数来评估对象坐标,因此,tx绝对值非常高 接近cx或cx + 1值的bx值是必需的。 我们通过将S形系数乘以超过1.0的因数来解决此问题,从而消除了无法检测到物体的网格的影响。
• M: Mosaic data augmentation - 在训练时使用四张图片马赛克替代单张图片
• IT: IoU threshold - using multiple anchors for a single ground truth IoU (truth, anchor) > IoU threshold
• GA: Genetic algorithms - using genetic algorithms for selecting the optimal hyperparameters during network training on the first 10% of time periods
• LS: Class label smoothing - using class label smoothing for sigmoid activation
• CBN: CmBN - using Cross mini-Batch Normalization for collecting statistics inside the entire batch, instead of collecting statistics inside a single mini-batch
• CA: Cosine annealing scheduler - altering the learning rate during sinusoid training
• DM: Dynamic mini-batch size - automatic increase of mini-batch size during small resolution training by using Random training shapes
• OA: Optimized Anchors - using the optimized anchors for training with the 512x512 network resolution
• GIoU, CIoU, DIoU, MSE - using different loss algorithms for bounded box regression
在这里插入图片描述
进一步的研究涉及到不同的特殊袋装(BoS探测器)对探测器训练精度的影响,包括PAN,RFB,SAM,高斯YOLO(G)和ASFF,如表5所示。在我们的实验中 ,当使用SPP,PAN和SAM时,检测器将获得最佳性能。
在这里插入图片描述

4.4. 不同主干网络和预训练的权重对检测器训练的影响
进一步,我们研究了不同骨干模型对检测器精度的影响,如表6所示。我们注意到,具有最佳分类精度的模型在检测器精度方面并不总是最佳的。
在这里插入图片描述
首先,尽管与CSPDarknet53模型相比,经过不同特征训练的CSPResNeXt 50模型的分类准确性更高,但CSPDarknet53模型在对象检测方面显示出更高的准确性。

其次,使用BoF和Mish进行CSPResNeXt50分类器训练会提高其分类准确性,但是将这些预训练权重进一步用于检测器训练会降低检测器准确性。 但是,将BoF和Mish用于CSPDarknet53分类器训练可以提高分类器和使用该分类器预训练加权的检测器的准确性。 最终结果是,骨干CSPDarknet53比CSPResNeXt50更适合于检测器。

我们观察到,由于各种改进,CSPDarknet53模型显示出提高检测器精度的更大能力。

4.5. Influence of different mini-batch size on Detector training
最后,我们分析了使用不同小批量大小训练的模型获得的结果,结果显示在表7中。从表7中显示的结果中,我们发现在添加BoF和BoS训练策略之后,小批量大小 对检测器的性能几乎没有影响。 该结果表明,在引入BoF和BoS之后,不再需要使用昂贵的GPU进行训练。 换句话说,任何人都只能使用常规的GPU来训练出色的检测器。
在这里插入图片描述
5.结果
与其他最先进的物体探测器获得的结果比较如图8所示。我们的YOLOv4位于帕累托最优曲线上,在速度和速度方面均优于最快,最准确的探测器。 准确性。 由于不同的方法使用不同体系结构的GPU进行推理时间验证,因此我们在Maxwell,Pascal和Volta架构的通用GPU上运行YOLOv4,并将它们与其他最新方法进行比较。 表8列出了使用Maxwell GPU的帧速率比较结果,它可以是GTX Titan X(Maxwell)或Tesla M40 GPU。 表9列出了使用Pascal GPU的帧速率比较结果,可以是Titan X(Pascal),Titan Xp,GTX 1080 Ti或Tesla P100 GPU。 至于表10,它列出了使用Volta GPU的帧速率比较结果,可以是Titan Volta或Tesla V100 GPU。
在这里插入图片描述
6.结论
我们提供了一种最新的检测器,它比所有可用的替代检测器更快(FPS)并且更准确(MS COCO AP50 … 95和AP50)。 所描述的检测器可以在具有8-16 GB-VRAM的常规GPU上进行训练和使用,这使得它的广泛使用成为可能。 一阶段基于锚的探测器的原始概念已经证明了其可行性。 我们已经验证了许多功能,并选择使用这些功能以提高分类器和检测器的准确性。 这些功能可以用作未来研究和开发的最佳实践。

7.致谢
作者要感谢Glenn Jocher提出的马赛克数据的想法,通过使用遗传算法选择超参数并解决网格敏感性问题的方法https://github.com/ultralytics/yolov3。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签:翻译,YOLOv4,训练,检测器,论文,目标,使用,GPU,我们
来源: https://blog.csdn.net/qq_41296389/article/details/115431797

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有