《YOLOv4: Optimal Speed and Accuracy of Object Detection》

链接地址

发表会议: CVPR 2020

Alexey Bochkovskiy Chien-Yao Wang Hong-Yuan Mark Liao

Institute of Information Science Academia Sinica, Taiwan

Abstract:

有大量的功能据说可以提高卷积神经网络(CNN)的准确性。需要在大型数据集上对这些特性的组合进行实际测试,并对结果进行理论验证。某些特性可用于某些特定的问题,或仅用于小规模的数据集;而一些特性,如批处理规范化和剩余连接,则适用于大多数模型、任务和数据集。我们假设这些通用特性包括加权剩余连接(WRC)、跨阶段部分连接(CSP)、跨小批量标准化(CmBN)、自反训练(SAT)和激活。我们使用新特性:拉力,CSP, CmBN,坐,米什激活,马赛克数据增加,CmBN, DropBlock正规化,意识丧失,并结合一些实现先进的结果:43.5%的美联社(65.7% AP50)女士可可数据集的实时速度∼65 FPS特斯拉V100。源代码在https://github.com/AlexeyAB/darknet

1. Introduction:

大多数基于cnn的对象检测器基本上只适用于推荐系统。例如,通过城市摄像机寻找免费停车位是由慢速准确的模型执行,而汽车碰撞警告与快速不准确的模型相关。提高实时目标探测器的准确性不仅可以用于提示生成推荐系统,还可以用于独立流程管理和减少人工输入。传统图形处理单元(GPU)上的实时对象检测操作允许它们以可承受的价格大量使用。最精确的现代神经网络不能实时运行,需要大量的gpu来进行大规模的小批量训练。我们通过创建一个在传统GPU上实时运行的CNN来解决这些问题,而训练只需要一个传统GPU。

图1:所提议的YOLOv4与其他最先进的对象探测器的比较。YOLOv4的运行速度比EfficientDet快两倍,性能也差不多。分别提高YOLOv3的AP和FPS 10%和12%。

这项工作的主要目标是在生产系统中设计一个快速运行的目标探测器,并对并行计算进行优化,而不是设计一个低计算量的理论指示器(BFLOP)。我们希望设计的对象可以很容易地训练和使用。例如,任何使用传统GPU进行训练和测试的人都可以获得实时、高质量、令人信服的对象检测结果,如图1所示的YOLOv4结果。我们的贡献总结如下:

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

2. 我们验证了在检测器训练过程中,最先进的袋- offreebies和袋- specials对象检测方法的影响。

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

2. Related work:

2.1. Object detection models:

现代探测器通常由两个部分组成,一个是在ImageNet上预先训练的主干,另一个是用来预测物体的类和边界框的头部。对于那些运行在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]等。近年来发展起来的目标探测器常常在基干和头之间插入一些层,这些层通常用来收集不同阶段的特征图。我们可以称它为物体探测器的颈部。通常,一个领由几个自底向上的路径和几个自顶向下的路径组成。具有该机制的网络包括特征金字塔网络(Feature Pyramid Network, FPN)[44]、路径汇聚网络(Path Aggregation Network, PAN)[49]、BiFPN[77]和NAS-FPN[17]。除了上述模型外,一些研究者还着重于直接构建一个新的主干(DetNet [43], DetNAS[7])或一个新的整体模型(SpineNet [12], HitDetector[20])用于对象检测。

综上所述,一个普通的物体探测器由以下几个部分组成:

2.2. Bag of freebies:

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

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

与上述各种方法不同,其他一些免费赠品方法致力于解决数据集中的语义分布可能存在偏差的问题。在处理语义分布偏差问题时,一个非常重要的问题是存在着不同类之间的数据不平衡问题,这一问题通常通过两阶段对象检测器中的硬反例挖掘[72]或在线硬例挖掘[67]来解决。但实例挖掘方法不适用于单级目标探测器,因为这种探测器属于稠密预测结构。因此,Lin等人提出了焦损来处理各类之间存在的数据不平衡问题。另一个非常重要的问题是,很难用一个热的硬表示法来表达不同类别之间关联程度的关系。这种表示法常用于执行标记。文献[73]提出的标签平滑是将硬标签转换为软标签进行训练,使模型更加稳健。为了获得更好的软标签,Islam等人在[33]中引入了知识蒸馏的概念来设计标签细化网络。

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

2.3. Bag of specials:

对于那些仅增加少量推理成本,却能显著提高目标检测精度的插件模块和后处理方法,我们称之为“特价包”。这些插件模块一般用于增强模型中的某些属性,如扩大接受域、引入注意机制、增强特征集成能力等,后处理是筛选模型预测结果的一种方法。

可以用来增强感受野的常用模块有SPP[25]、ASPP[5]和RFB[47]。SPP模块源于空间金字塔匹配(SPM) [39], SPMs原始方法是将feature map分割成若干个d×d等块,其中d可以是{1,2,3,…,从而形成空间金字塔,然后提取bag-of-word特征。SPP将SPM集成到CNN中,使用max-pooling操作,而不是bag-of-word操作。由于He等人提出的SPP模块会输出一维特征向量,因此在全卷积网络(FCN)中应用是不可行的。因此,在YOLOv3[63]的设计中,Redmon和Farhadi将SPP模块改进为最大池输出与内核大小k×k的级联,其中k = {1,5,9,13}, stride = 1。在本设计中,较大的k×k maxpooling有效地增加了骨干特征的接受域。在添加SPP模块的改进版本后,YOLOv3-608在MS COCO对象检测任务上对AP50by进行了2.7%的升级,增加了0.5%的额外计算量。ASPP[5]模块与改进后的SPP模块在运算上的区别主要体现在原始的k×k核大小上,stride的最大池大小为1到几个3×3核大小,扩展比为k,扩展卷积运算的stride为1。RFB模块是利用k×k kernel的几个扩张卷积,扩张比等于k, stride等于1,比ASPP获得更全面的空间覆盖。RFB[47]仅花费7%的额外推断时间来增加MS COCO上SSD的ap50 5.7%。

在目标检测中经常使用的注意模块主要分为两种:通道式注意和点态注意,这两种注意模型的代表分别是挤压-激励(squeeze -and-激励,SE)[29]和空间注意模块(Spatial attention module, SAM)[85]。尽管SE模块可以改善的力量ResNet50 ImageNet图像分类任务中排名前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中,提出了多输入加权剩余连接来执行按比例加权的水平重加权,然后加入不同比例的特征映射。

在深度学习的研究中,一些人把重点放在寻找良好的激活功能上。一个好的激活函数可以使梯度更有效地传播,同时也不会造成过多的计算开销。2010年,Nair和Hinton[56]提出ReLU,从本质上解决了传统tanh和sigmoid激活函数中经常遇到的梯度消失问题。随后,LReLU[54]、PReLU[24]、ReLU6[28]、标度指数线性单元(SELU)[35]、Swish[59]、hard-Swish[27]、Mish[55]等也被用于解决梯度消失问题。LReLU和PReLU的主要目的是解决输出小于0时ReLU的梯度为零的问题。对于ReLU6和hard-Swish,它们是专门为量化网络设计的。为了实现神经网络的自归一化,提出了SELU激活函数。需要注意的一点是,Swish和Mish都是连续可微的激活函数。

基于深度挖掘的对象检测中常用的后处理方法是NMS,它可以过滤那些对同一对象预测较差的bbox,只保留响应较高的候选bbox。NMS试图改进的方法与优化目标函数的方法是一致的。NMS提出的原始方法没有考虑上下文信息,所以Girshick等人[19]在R-CNN中加入了分类置信度评分作为参考,按照置信度评分的顺序,从高到低依次进行贪婪NMS。对于soft NMS[1],考虑了在IoU评分的贪心NMS中,对象的遮挡可能会导致信心评分下降的问题。DIoU NMS[99]开发人员的思路是在软NMS的基础上,将中心点距离信息添加到BBox筛选过程中。值得一提的是,由于以上的后处理方法都不直接引用捕获的图像特征,因此在后续的无锚方法开发中不再需要后处理。

表1:用于图像分类的神经网络参数。

3. Methodology:

其基本目标是在生产系统中提高神经网络的运行速度和并行计算的优化速度,而不是低计算量理论指标(BFLOP)。我们提出了实时神经网络的两种选择:

* 对于GPU,我们在卷积层中使用少量的组(1 - 8):CSPResNeXt50 / CSPDarknet53

* 对于VPU,我们使用grouped-convolution,但是我们不使用挤压和兴奋(SE)块,具体来说,这包括以下模型:高效率的net -lite / MixNet [76] / GhostNet [21] / MobileNetV3

3.1. Selection of architecture:

我们的目标是在输入网络分辨率、卷积层数、参数数(滤波器尺寸2滤波器通道/组)和层输出数(滤波器)之间找到最优平衡点。例如,我们的大量研究表明,在ILSVRC2012 (ImageNet)数据集[10]上的对象分类方面,CSPResNext50要比CSPDarknet53好得多。然而,相反地,CSPDarknet53在检测MS COCO数据集[46]上的对象方面优于CSPResNext50。

下一个目标是从不同的检测水平,如FPN、PAN、ASFF、BiFPN,从不同的主干水平选择额外的块来增加感受野,并从不同的主干水平选择参数聚合的最佳方法。

对分类最优的参考模型不一定对检测器最优。与分类器相比,检测器需要:

* 更高的输入网络尺寸(分辨率)-用于检测多个小尺寸对象

* 更多的层-为一个更高的接受域覆盖输入网络的增加大小

* 更多的参数-更大的能力,一个模型,以检测多个对象的不同大小在一个单一的形象

假设我们可以选择一个接受域较大(卷积层数较多,3×3)、参数较多的模型作为骨干。表1显示了CSPResNeXt50, CSPDarknet53, efficient entnet B3的信息。CSPResNext50仅包含16个卷积层3×3,一个425×425的接受域和20.6 M的参数,而CSPDarknet53包含29个卷积层3×3,一个725×725的接受域和27.6 M的参数。这一理论证明,以及我们的大量实验,表明CSPDarknet53神经网络是作为探测器主干的两者的最佳模型。

不同大小的感受野的影响总结如下:

* 对象大小-允许查看整个对象

* 网络大小-允许查看对象周围的上下文

* 超过网络大小-增加图像点和最终激活之间的连接数量

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

最后,我们选择CSPDarknet53主干、SPP附加模块、PANet路径聚集颈和基于YOLOv3锚的头部作为YOLOv4的架构。

在未来,我们计划对探测器的免费赠品包(BoF)的内容进行大幅扩展,理论上可以解决一些问题,提高探测器的精度,并以实验的方式依次检查每个特征的影响。

我们不使用跨gpu批处理标准化(CGBN或SyncBN)或昂贵的专用设备。这使得任何人都可以在传统的图形处理器(如GTX 1080Ti或RTX 2080Ti)上重现我们的最新成果。

3.2. Selection of BoF and BoS:

为了提高目标检测训练,CNN通常使用以下方法:

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

3.3. Additional improvements:

为了使设计的检测器更适合于单GPU上的训练,我们做了如下的额外设计和改进:

* 介绍了一种新的数据增强镶嵌和自对抗训练方法。

* 应用遗传算法选择最优超参数

* 我们修改了一些现有的方法,使我们的设计适合于有效的培训和检测-修改的SAM,修改的PAN,和交叉小批量标准化(CmBN)

提出了一种混合四幅训练图像的数据增强方法。因此有4种不同的上下文混合,而CutMix只混合2个输入图像。这允许检测正常上下文之外的对象。此外,批处理标准化计算激活统计从4个不同的图像在每一层。这大大减少了对大型迷你批处理大小的需求。

图3:Mosaic表示一种新的数据扩充方法。

自对抗训练(SAT)也代表了一种新的数据扩充技术,它分前后两个阶段进行操作。在第一阶段,神经网络改变原始图像而不是网络权值。通过这种方式,神经网络对自己执行一种对抗性攻击,改变原始图像,制造图像上没有期望对象的假象。在第二阶段,神经网络以正常的方式对修改后的图像进行检测。

图4:跨迷你批处理规范化。

CmBN表示CBN的修改版本,如图4所示,定义为跨微批量标准化(CmBN)。这仅收集单个批中的小批之间的统计信息。

我们将SAM从空间上的注意修改为点注意,并将PAN的快捷连接改为拼接,分别如图5和图6所示。

3.4. YOLOv4:

在本节中,我们将详细介绍YOLOv4。

YOLOv4包括:

* Backbone: CSPDarknet53 [81]

* Neck: SPP [25], PAN [49]

* Head: YOLOv3 [63]

YOLO v4 uses:

* Bag of Freebies (BoF) for backbone: CutMix and Mosaic data augmentation, DropBlock regularization, Class label smoothing

* Bag of Specials (BoS) for backbone: Mish activation, Cross-stage partial connections (CSP), Multiinput weighted residual connections (MiWRC)

* Bag of Freebies (BoF) for detector: CIoU-loss, CmBN, DropBlock regularization, Mosaic data augmentation, Self-Adversarial Training, Eliminate grid sensitivity, Using multiple anchors for a single ground truth, Cosine annealing scheduler [52], Optimal hyperparameters, Random training shapes

* Bag of Specials (BoS) for detector: Mish activation, SPP-block, SAM-block, PAN path-aggregation block, DIoU-NMS

4. Experiments:

我们在ImageNet (ILSVRC 2012 val)数据集上测试了不同的训练改进技术对分类器精度的影响,然后在MS COCO (test-dev 2017)数据集上测试了检测器的精度。

4.1. Experimental setup:

在ImageNet图像分类实验中,默认的超参数如下:训练步骤为8,000,000;批大小和小批大小分别为128和32;采用多项式衰减学习速率调度策略,初始学习速率为0.1;热身1000步;动量衰减为0.9,重量衰减为0.005。我们所有的BoS实验都使用与默认设置相同的超参数,在BoF实验中,我们添加了额外的50%的训练步骤。在BoF实验中,我们验证了混合、切分、镶嵌、模糊数据增强和标签平滑正则化方法。在BoS实验中,我们测试了flrelu、Swish和mish的激活功能。所有实验都使用1080 Ti或2080 Ti GPU进行训练。

MS COCO对象检测实验中,默认的超参数为:训练步骤为500500;采用初始学习速率0.01的步进衰减学习速率调度策略,在400000步和450000步分别乘以因子0.1;动量衰减为0.9,重量衰减为0.0005。所有的架构都使用一个GPU来执行批处理大小为64的多尺度训练,而小批处理大小为8或4取决于架构和GPU内存限制。除了使用遗传算法进行超参数搜索实验外,其他实验均使用默认设置。遗传算法利用YOLOv3-SPP进行带GIoU损失的训练,搜索300个epoch的min-val 5k集。遗传算法实验采用搜索学习率0.00261、动量0.949、IoU阈值分配ground truth 0.213、损失归一化器0.07。我们已经验证了大量的BoF,包括网格敏感性消除、马赛克数据增强、IoU阈值、遗传算法、类标记平滑、交叉小批量标准化、自对抗训练、余弦退火调度器、动态小批量大小、DropBlock、优化锚点、不同类型的IoU损失。我们还对各种BoS进行了实验,包括Mish、SPP、SAM、RFB、BiFPN和Gaussian YOLO[8]。对于所有的实验,我们只使用一个GPU进行训练,所以像syncBN这样优化多个GPU的技术并没有被使用。

4.2. Influence of different features on Classifier training:

首先,研究了不同特征对分类器训练的影响;具体来说,如Fugure 7所示,类标签平滑、不同数据增强技术、双侧模糊、混合、CutMix和马赛克的影响,以及不同激活的影响,如Leaky-ReLU(默认)、Swish和Mish。

图7:V数据扩充的各种方法。

在我们的实验中,如表2所示,通过引入CutMix和Mosaic数据增强、Class label平滑、Mish激活等特征,提高了分类器的准确率。因此,我们用于分类器训练的bof主干(免费包)包括以下内容:CutMix和Mosaic数据增强和类标签平滑。此外,我们使用Mish激活作为一个补充选项,如表2和表3所示。

4.3. Influence of different features on Detector training:

进一步研究不同袋型-袋型(BoF-detector)对检测器训练精度的影响,如表4所示。我们通过研究不同的特征显著地扩展了BoF列表,在不影响FPS的情况下提高了检测精度:

* S:消除网格敏感性equationbx =σ(tx) +残雪,由=σ(ty) + cy,哪里cxand cyare总是整数,为评估对象用于YOLOv3坐标,因此,极高的txabsolute bxvalue所需的值接近cxor cx + 1的值。我们通过将sigmoid乘以一个超过1.0的因子来解决这个问题,从而消除了网格对物体不可检测的影响。

* M:马赛克数据增强——在训练中使用4幅图像的马赛克代替单幅图像

* IT:IoU阈值-使用多个锚为一个单一的地面真相IoU(真相,锚)> IoU阈值

* GA:使用遗传算法在网络训练的前10%的时间段内选择最优超参数

* LS:使用类标签平滑来激活sigmoid

* CBN: CmBN -使用跨小批标准化来收集整个批内的统计数据,而不是收集单个小批内的统计数据

* CA:改变正弦波训练的学习速率

* DM:动态小批量大小-在小分辨率训练中,通过使用随机的训练形状自动增加小批量大小

* OA:优化锚点-使用优化的锚点进行训练,网络分辨率为512x512

* 使用不同的损失算法进行有界盒回归

进一步研究了不同的特殊Bagof-Specials (boss -detector)对检测器训练精度的影响,包括PAN、RFB、SAM、Gaussian YOLO (G)、ASFF,如表5所示。在我们的实验中,当使用SPP、PAN和SAM时,检测器的性能最佳。

4.4. Influence of different backbones and pretrained weightings on Detector training:

进一步研究不同骨干网模型对检测精度的影响,如表6所示。我们注意到,具有最佳分类精度的模型在检测器精度方面并不总是最佳的。

首先,与CSPDarknet53模型相比,cspresnext50modelstrainedwithdifferent featu抵抗的分类精度更高,但CSPDarknet53模型在目标检测方面具有更高的精度。

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

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

4.5. Influence of different mini-batch size on Detector training:

最后,我们对不同小批量模型训练得到的结果进行了分析,结果如表7所示。从表7的结果可以看出,加入BoF和BoS训练策略后,小批量的训练对检测器的性能几乎没有影响。这一结果表明,在引入BoF和BoS之后,不再需要使用昂贵的gpu进行培训。换句话说,任何人都只能使用传统的GPU来训练一个优秀的检测器。

图8:不同物体探测器速度和精度的比较。(有些文章只说明了其中一个gpu的探测器的FPS: Maxwell/Pascal/V olta)

5. Results:

得到的结果与其他最先进的物体探测器的比较如图8所示。我们的YOLOv4位于Pareto最优性曲线上,在速度和精度上都优于最快最准确的检测器。

由于不同的方法使用不同架构的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列出了使用V olta GPU的帧率比较结果,可以是Titan V olta,也可以是Tesla V100 GPU。

6. Conclusions:

我们提供最先进的探测器,更快(FPS)和更准确(MS COCO AP50…(95和AP50)超过所有可用的替代探测器。描述的探测器可以训练和使用传统的GPU与8-16 GB-VRAM,这使它的广泛使用成为可能。基于锚点的单级检波器的概念已经被证明是可行的。我们已经验证了大量的特征,并选择使用这些特征来提高分类器和检测器的准确性。这些特性可以作为未来研究和开发的最佳实践。

7. Acknowledgements:

作者感谢Glenn Jocher提出了镶嵌数据增强、利用遗传算法选择超参数和解决网格灵敏度问题的思想https://github.com/ultralytics/yolov3

【论文翻译】YOLOv4: Optimal Speed and Accuracy of Object Detection相关推荐

  1. 论文翻译YOLOv4: Optimal Speed and Accuracy of Object Detection YOLOv4:目标检测的最佳速度和精度 论文中文翻译

    摘要 有大量的特征被认为可以提高卷积神经网络(CNN)的精度.需要在大型数据集上对这些特性的组合进行实际测试,并对结果进行理论验证.某些特性在特定的建模中起决定性作用,而在特定的强制确定问题中起决定性 ...

  2. 【读点论文】YOLOv4: Optimal Speed and Accuracy of Object Detection,讲明目标检测结构,分析先进的涨点tricks,实现一种精度与速度的平衡

    YOLOv4: Optimal Speed and Accuracy of Object Detection Abstract 据说有大量的特征可以提高卷积神经网络(CNN)的准确性.需要在大型数据集 ...

  3. 论文笔记-YOLOv4: Optimal Speed and Accuracy of Object Detection

    论文地址:https://arxiv.org/pdf/2004.10934v1.pdf code:https://github.com/AlexeyAB/darknet. 摘要 有大量的技巧可以提高C ...

  4. Paper:《YOLOv4: Optimal Speed and Accuracy of Object Detection》的翻译与解读

    Paper:<YOLOv4: Optimal Speed and Accuracy of Object Detection>的翻译与解读 目录 YOLOv4的评价 1.四个改进和一个创新 ...

  5. AI实战: YOLOv4: Optimal Speed and Accuracy of Object Detection

    前言 YOLOv4: Optimal Speed and Accuracy of Object Detection [Submitted on 23 Apr 2020] [是的,你没看错,2020年0 ...

  6. 论文精读:YOLOv4: Optimal Speed and Accuracy of Object Detection

    Abstract  大量的特征据说可以提高卷积神经网络(CNN)的精度.需要在大数据集上对这些特征的组合进行实际测试,并对结果进行理论证明.有些特性只适用于某些模型,只适用于某些问题,或仅适用于小规模 ...

  7. YOLOv4阅读笔记(附思维导图)!YOLOv4: Optimal Speed and Accuracy of Object Detection

    今天刷看到了YOLOv4之时,有点激动和兴奋,等了很久的YOLOv4,你终究还是出现了 论文地址:https://arxiv.org/pdf/2004.10934.pdf GitHub地址:https ...

  8. 【论文笔记】YOLOv4: Optimal Speed and Accuracy of Object Detection

    简介: 笔者原本计划接着解读一篇有关NAS的文章的,奈何今天YOLOv4突然闪亮登场,经不住诱惑,那篇有关NAS的文章就只能后面再写了.好了,废话不多说,进入正题. 论文链接 代码链接 本文链接 前言 ...

  9. 【YOLOv4原文+翻译】YOLOv4:Optimal Speed and Accuracy of Object Detection

    最近新出了YOLOV4,我系统的从V1开始整理出稿,传送门: [YOLOv1原文+翻译]You Only Look Once Unified, Real-Time Object Detection [ ...

最新文章

  1. class viewController has no initializers解决办法
  2. web自动化测试---概述
  3. 深入理解并行编程-分割和同步设计(四)
  4. LeetCode 543二叉树的直径-简单
  5. antd 能自适应吗_一种能自适应识别母线运行方式的备自投装置应用探讨
  6. sobel prewitt算法 模板加权模糊的解释 + 两类边缘下的二阶导数值
  7. Android异常总结---3.Failed to install *.apk on device 'emulator-5554': timeout 错误提示:
  8. Spring的核心机制依赖注入简介
  9. Leetcode 516.最长回文子序列
  10. 最经典25本Python编程开发电子书精粹
  11. 服务器换主板要重装系统吗,换主板需要重装系统吗【解决方案】
  12. 十大抽奖软件推荐 抽奖软件排行榜 在线抽奖软件有哪些
  13. html与css笔记(旧)
  14. 高斯函数的傅里叶变换
  15. python给全局变量赋值_Python 进程之间共享数据(全局变量)的方法 python 全局变量赋值的问题...
  16. ps2模拟器bios3dm_呆萌PS2模拟器bios文件下载|呆萌PS2模拟器专业版下载v3.1.2-乐游网安卓下载...
  17. 求解n个二进制数之间的最小码距
  18. sscom串口网络数据调试器使用post方法向华为云obs桶上传文件和图片
  19. 移动宽带连接电信服务器不稳定,如何解决移动宽带网速不稳定的問題?
  20. POJ2228 Naptime 【例题精讲】

热门文章

  1. Linux Rootkit Learning
  2. 杰奇安装 mysql失败_关于杰奇CMS安装乱码的解决方法
  3. 解决 {ret:100030,msg:this api without user authorization} android QQ第三发登录成功后获取用户信息失败的问题
  4. Life:最新上海落户政策(以一名普通研究生为例计分)
  5. 我,27岁,渣本理科男,目前考虑转行python,但又不知道该从何学起......
  6. 软考计算机网络知识点,2020年计算机软考《网络工程师》复习知识点汇集
  7. android nfc 原始读取,Android NFC读取数据
  8. 如何调整Linux内核启动中的驱动初始化顺序
  9. Uigg - 免费开源、灵活的高颜值前端 UI 工具套件,专为设计师打造
  10. arch检验python_arch效应检验的一些要点