目标检测 ~ Yolov4论文笔记 ~《YOLOv4: Optimal Speed and Accuracy of Object Detection》

 有兴趣的朋友可以相互讨论技术

论文:https://arxiv.org/abs/2004.10934

官方代码:https://github.com/AlexeyAB/darknet

 Abstract

有大量的技巧可以提高卷积神经网络(CNN)的准确率(accuracy)。需要在大数据集下对这种技巧的组合进行实际测试,并对结果进行理论论证。某些技巧仅在某些模型上使用和专门针对某些问题,或只针对小规模的数据集;而一些技巧,如批处理归一化、残差连接等,适用于大多数的模型、任务和数据集。我们假设这种通用的技巧包括Weighted-Residual-Connection(WRC)加权残差连接、Cross-Stage-Partial-connections (CSP)跨阶段部分连接、Cross mini-Batch Normalization(CmBN)交叉小批量归一化, Self-adversarial-training(SAT)自对抗训练和Mish-activation(误激活)。我们在本文中使用这些新的技巧:WRC、CSP、CmBN、SAT,Mish-activation,Mosaic data augmentation(Mosaic数据增强)、CmBN、DropBlock regularization(DropBlock正则化)和CIoU loss(CIoU损失),以及将其组合以达到最好的效果。在MS COCO数据集中的AP 43.5%(65.7% AP50),在实际应用中,Tesla V100上速度可达到65FPS。

1. Introduction

大多数基于CNN的目标检测器基本上都仅适用于推荐系统。例如:通过城市摄像头寻找免费停车位,它由精确的慢速模型执行,而汽车碰撞警示由快速精度低模型执行。改善实时目标检测器的精度,使其能够不但用于提示生成推荐系统,也用于独立的流程管理和减少人力投入。实时目标检测可以在GPU上以可负担的价格运行,最准确的现代神经网络不是实时运行的,需要大量的GPU训练和大的mini-batch-size。我们通过创建一个CNN在GPU上实时操作来解决这样的问题(对于训练只需要一个GPU)。

这项工作的主要目标是设计一个应用生产环境快速运行的目标检测器,并且进行并行计算优化,而不是低计算量的理论指标(BFLOP)。我们希望所设计的对象易于训练和使用。例如,任何使用传统GPU训练和测试可以实现实时、高质量、有说服力的目标检测结果,YOLOv4的结果如图1所示。现将我们的贡献总结如下:

  • 我们构建了一个快速强大的模型,这使得大家都可以使用1080 Ti或2080 Ti GPU来训练一个超快、准确的目标检测器。
  • 我们验证了最先进的Bag-of-Freebies 和 Bag-of-Specials方法在训练期间的影响
  • 我们修改了最先进的方法,使其更为高效,适合单GPU训练。包括CBN[89]、PAN[49]、SAM[85]等。

2. Related work

2.1. Object detection models

目前目标检测器通常由两部分组成。ImageNet上预训练的backbone和用于预测类别和BBOX的检测器head。对于那些在GPU平台上运行的检测器,其backbone可以是VGG[68],ResNet[26]、ResNeXt[86]、或 DenseNet [30]。对于那些运行在CPU平台上的检测器,它们的backbone可以是SqueezeNet[31]、MobileNet[28,66,27,74],或ShuffleNet[97,53]。至于head部分,它通常被分两类:即one-stage目标检测器和two-stage目标检测器。最有代表性的two-stage检测器是R-CNN[19]系列。包括 fast R-CNN [18], faster R-CNN [64], R-FCN [9]和Libra R-CNN [58]。也可以使一个two-stage的目标检测器成为一个anchor-free的目标检测器,如RepPoints[87]。对于one-stage检测器来说,最代表性的有YOLO[61、62、63]、SSD[50]、和RetinaNet[45]。近几年来,anchor-free one-stage目标探测器被开发,如CenterNet[13],CornerNet[37,38],FCOS[78]等。近年来发展起来的检测器,往往会在backbone和head之间插入一些层,这些层用于收集不同阶段的特征图。我们可以称它为检测器的neck。通常情况下neck是由几个bottom-up paths and 几个 top-down paths组成。网络具有的功能包括:Feature Pyramid Network (FPN)[44], Path Aggregation  Network(PAN)[49]、BiFPN[77]和NAS-FPN[17]。除上述模型外,有的研究者重新构建backbone(DetNet[43], DetNAS[7])或重新构建整个模型(SpineNet[12],HitDetector[20])用于目标检测。总结,通常目标检测模型有如下架构:

2.2. Bag of freebies

通常情况下,传统的目标检测器的训练都是在离线进行的,因此,研究者们总是喜欢研究更好的训练方法,使之目标检测器在不增加推理损耗的情况下达到更好的精度。我们将这些只需转变训练策略或只增加训练量成本的方法称为为 " bag of freebies "。目标检测经常采用这种方法,并符合这个定义的就是数据增强。数据增强的目的是:增加输入图像的可变性,从而使设计的目标检测模型对不同环境的图片具有较高的鲁棒性。比如photometric distortions(光学畸变)和geometric distortions(几何畸变)是两种常用的数据增强方法,它们对检测任务肯定是有好处的。在处理photometric distortions,我们调整亮度,对比度。图像的色相、饱和度和噪声。对于geometric distortions,我们添加了随机缩放、裁剪、翻转和旋转。

上面提到的数据增强方法都是像素的调整,所有原始像素信息在调整后的区域被保留下来。此外,一些从事数据增强工作的研究者,把重点放在了模拟目标遮挡问题。他们在图像分类和目标检测取得了好的结果。例如,random erase [100] and CutOut [11]可以随机的选取图像中的矩形区域,并随机填入或补充值为零。至于hide-and-seek [69]和grid mask [6],他们随机或均匀地选择多个图像中的矩形区域,并将其替换为全0。如果将类似的概念应用到特征图中,就是DropOut[71]、DropConnect[80]和DropBlock[16]方法。此外,有研究者提出了多张图像一起进行数据增强。例如,MixUp[92]使用了两个图像乘以不同系数的乘法叠加,并根据叠加的比率调整标签。至于CutMix[91],它将裁剪后的图像覆盖到其他图像的矩形区域,并根据混合区域的大小调整标签。除了以上提到的方法,style transfer GAN[15]也是数据增强方法,这种方法可以有效的减少CNN学习的纹理偏差。

与上面提出的各种方法不同。其他的一些Bag of freebies方法是专门解决数据集中的语义分布偏差。在处理语义困扰的问题上,有一个很重要的问题是不同类别之间的数据不平衡,而two-stage 检测器处理这个问题通常是通过hard negative example mining [72]或online hard example mining [67]。但example mining method不适用于one-stage 目标检测器,因为这种检测器属于密集预测架构。因此,Linet al.[45]提出了focal loss解决数据不平衡问题。另一个很重要的问题是,one-hot编码很难表达出类与类之间关联程度问题。在执行标签化通常使用这种表示方式。在[73]中提出的label smoothing方案是将硬标签转化为软标签进行训练,可以使模型更鲁棒。为了获得更好的软标签,Islam等[33]将知识蒸馏的概念引入标签细化网络设计中。

最后一个bag of freebies是目标函数 Bounding Box (BBox) 回归。检测器通常使用MSE对BBOX的中心点和宽高进行回归,至于anchor-based方法,它是为了估算出对应的偏移量。但是,要直接估计BBOX的点坐标值,是要将这些点作为独立变量,但实际上未考虑对象本身的完整性。为了使这一问题得到更好的处理,一些研究人员最近提出的IoU损失[90],同时考虑预测的BBox面积和ground truth BBox面积。IoU损失计算过程将通过执行IoU和ground truth来触发BBox的四个坐标点的计算,然后将生成的结果连接成一个完整的代码。由于IoU是一个尺度不变的表示,它可以解决传统方法计算{x,y,w,h}的l1或l2损失时,损失随尺度的增大而增大的问题。最近,一些研究人员不断改善IOU损失。例如GIoU损失[65]除覆盖面积也考虑物体的形状和方向。他们建议找到能同时覆盖预测BBOX和ground truth BBox的最小面积BBOX,并使用这个BBox作为分母,以取代IoU损失的分母。至于 DIoU 损失[99],它另外还包括考虑物体中心的距离,CIoU损失[99],另一方面,同时考虑到重叠区域,中心点之间的距离,以及长宽比。CIoU可以在BBox回归问题上实现更好的收敛速度和精度。

2.3 Bag of specials

对于那些插件模块和后处理方法只会增加少量的推理成本,但可显著提高目标检测的准确性,我们称其为 “Bag of specials”。一般来说,这些插件模块是用来增强某些属性的,如扩大感受野,引入注意力机制或增强特征整合能力等,而后处理是一种筛选模型预测结果方法。

可用于扩大感受野的模块有SPP[25]、ASPP[5]和RFB[47]。SPP模块起源于Spatial Pyramid Match(SPM)[39],而SPMs的原始方法是将特征图分割成几个d×d等量的块,其中d可以是{1,2,3,…},从而形成空间金字塔,然后提取bag-of-word特征。SPP将SPM集成到CNN并使用max-pooling操作取代bag-of-word运算,由于He等人提出的SPP模块[25]将输出一维特征向量,而不可能应用于全卷积网络(FCN)中。因此,在YOLOv3的设计[63]中,Redmon和Farhadi改进了YOLOv3的设计将SPP模块改进为融合k×k核的max-pooling输出,其中k = {1,5,9,13},并且步长等于1。在这种设计下,一个相对较大的k×k max-pooling有效地增加了backbone的感受野。增加了SPP模块的改进版后,YOLOv3-608在MS COCO上AP 50提升2.7%,但要付出0.5%的额外计算成本。ASPP[5]模块和改进后的SPP模块在操作上的区别是主要由原来的步长1、k×k核的max-pooling到几个3×3核的max-pooling、空洞率为k、步长1的空洞卷积。RFB模块是使用几个k×k核的空洞卷积,空洞率为k,步长为1以获得比ASPP更全面的空间覆盖率。RFB[47]只需额外增加7%推理时间却在MS COCO上提升SSD的AP50 5.7%。

在目标检测中经常使用的注意力模块,通常分为channel-wise attention和point-wise attention。代表模型是Squeeze-and-Excitation (SE) [29] and Spatial Attention Module (SAM) [85]。虽然SE模块可以提高ResNet50在ImageNet图像分类任务1% top-1准确率而计算量增加2%,但是在GPU上,通常情况下,它将增加推理时间的10%左右,所以更适合用于移动端设备。但对于SAM,它只需要额外0.1%计算量提高ResNet50-SE 0.5% Top-1 精度,且它完全不影响GPU上的推理速度。

在特征融合方面,早期的做法是用skip connection [51]或hyper-column [22]来融合低级和高级特征。由于FPN等多尺度预测方法已成为流行,许多轻量级模块集成了不同的特征金字塔。包括SFAM[98]、ASFF[48]和BiFPN[77]。SFAM的主要思想是利用SE模块在多尺度叠加特征图上来执行channel-wise级别re-weighting。至于ASFF,它用softmax进行 point-wise级别的re-weighting,然后添加不同尺度的特征图。在BiFPN中,提出了多输入加权残差连接的方法,实现了按比例的层次重加权,然后加入不同尺度的特征映射。

在深度学习的研究中,有人注重于寻找好的激活函数。一个好的激活函数可以使梯度更有效地传播,也不会造成太多的额外计算成本。2010年,Nair and Hinton [56]提出了ReLU来实质性地解决梯度消失的问题,这也是tanh和sigmoid中经常遇到的问题。随后就是LReLU[54], PReLU[24], ReLU6[28], Scaled Exponential Linear Unit (SELU)[35]、Swish[59]、hard-Swish[27]、和Mish[55]等,也是用来解决梯度问题的。LReLU和PReLU其主要目的是:是为了解决输出小于零时,ReLU的梯度为零的问题。至于ReLU6和Hard-Swish,它们是专为量化网络设计。对于自归一化的神经网络,提出了SELU的激活函数满足子归一化的目的。有一点需要注意的是,Swish和Mish都是连续可微激活函数。

后处理方法常用的是NMS,它可以用于过滤那些对同一个目标预测错误的BBoxes,并只保留较高的候选BBoxes。NMS努力改进的方式与目标函数的优化方法一致。NMS原始方法没有考虑背景信息,所以Girshick等人[19]在R-CNN中增加了置信度评分作为参考,并根据置信度评分的顺序,从高分到低分的顺序执行greedy NMS。至于soft NMS [1],它考虑的是:在greedy NMS的IoU评分中,目标的遮挡可能导致置信度评分下降的问题。DIoU NMS[99]的开发者想法是在soft NMS基础上将中心点距离信息增加到BBox筛选过程中,值得一提的是,由于上述处理方法都没有直接参考提取的特征图,因此在anchor-free方法的后续开发中不再需要后处理。

3. Methodology

基本目标是提高神经网络在生产系统中的运行速度和并行计算的优化。

我们提出了两种实时神经网络。

  • 对于GPU,我们在卷积层使用少量组(1-8):CSPResNeXt50 / CSPDarknet53
  • 对于VPU,我们使用组卷积,但不使用Squeeze-and-excitement (SE) blocks。具体来说,包括以下模型:EfficientNet-lite / MixNet [76] / GhostNet[21] / MobileNetV3

3.1. Selection of architecture

我们的目的是寻求最佳平衡,把网络输入分辨率、卷积层数、卷积层数、参数量和输出层的数量。例如,我们的大量研究表明,CSPResNext50与CSPDarknet53相比,在ILSVRC2012(ImageNet)数据集的物体分类方面明显更好[10]。然而,相反地,CSPDarknet53比CSPResNext50在MS-COCO数据集上检测效果更好[46]。

下一个目标是选择额外的block来扩大感受野,为不同的检测器级别,从不同的backbone级别,找到进行参数聚合的最佳方法:如FPN、PAN、ASFF、BiFPN。

一个最佳的分类参考模型并不总是最佳的检测器。相对于分类器,检测器需要满足:

  • 更高的输入网络尺寸(分辨率):用于检测多个小物件
  • 更多的层数:提高模型的感受野,能应对网络输入尺寸增加
  • 更多的参数:为了提高模型在单个图像中检测不同大小的多个对象的能力。

我们可以假设一个模型具有较大的感受野(很多3×3卷积层),应该选择很多参数的backbone,表1显示了CSPResNeXt50,CSPDarknet53和EfficientNet B3的信息。CSPResNext50仅包含16个3×3卷积层、425×425感受野大小和20.6M个参数,而CSPDarknet53包含29个3×3卷积、725×725感受野大小和27.6M个参数。 这种理论上的证明,连同我们的大量实验表明,CSPDarknet53神经网络是两个最佳的backbone之一。

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

  • 最大对象尺寸-允许查看整个对象
  • 最大网络大小-允许查看对象周围的环境物体 
  • 超出网络规模-图片输入和最终激活值的连接数

我们将SPP模块添加到CSPDarknet53上,因为它大大增加了感受野,分离出最重要的环境(context)特征,几乎不会导致网络运行速度降低。我们使用PANet作为来自不同backbone的参数聚合方法而不是YOLOv3中使用的FPN。

最后,我们选择CSPDarknet53为backbone,SPP(添加模块),PANet (路径聚合的neck)和YOLOv3(anchor based) head作为YOLOv4架构。

将来,我们计划大幅扩展Bag of Freebies(BoF)的内容,可以解决一些问题并增加检测器准确性,并顺序检查每个功能的影响。

我们不使用Cross-GPU Batch Normalization(CGBN或SyncBN)或昂贵的专用设备。这个使任何人都可用常规图形处理器再现我们最新的成果,例如GTX 1080Ti或RTX2080Ti。

3.2. Selection of BoF and BoS

为了改善目标检测训练,CNN通常会使用:

  •  Activations(激活函数): ReLU, leaky-ReLU, parametric-ReLU,ReLU6, SELU, Swish, or Mish
  •  Bounding box regression loss(回归损失函数): MSE, IoU, GIoU, CIoU, DIoU
  •  Data augmentation(数据增强): CutOut, MixUp, CutMix
  •  Regularization method(正则化): DropOut, DropPath [36], Spatial DropOut [79], or DropBlock
  •  Normalization of the network activations by their mean and variance(用均值和方差归一化网络): Batch Normalization (BN) [32],Cross-GPU Batch Normalization (CGBN or SyncBN)[93], Filter Response Normalization (FRN) [70], or Cross-Iteration Batch Normalization (CBN) [89]
  •  Skip-connections(跳过连接): Residual connections, Weighted residual connections, Multi-input weighted residual connections, or Cross stage partial connections (CSP)

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

3.3. Additional improvements

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

  • 我们介绍一种新的数据增强方法MosaicSelf-Adversarial Training (SAT)
  • 我们应用遗传算法选择最优的超参数
  • 我们修改一些现有的方法,使我们的设计适用于有效的训练和检测:修改后的SAM,修改后的PAN,和Cross mini-Batch Normalization (CmBN).

Mosaic代表了一种新的数据增强方法,混合了4个训练图像。因此混合4个不同的contexts,而CutMix只混合了2个输入图像。这个使得可以探测到正常contexts之外的物体。在此外,batch normalization从每层上的4个不同的图像计算激活数据。这显著地减少了对大batch size的需要。

Self-Adversarial Training(SAT)也代表了一种新的数据扩增技术,以2个前向的方式进行操作。在第一个阶段,神经网络改变的是原始图像而不是的网络权重。这样神经网络对其自身进行对抗性攻击,改变原有的形象,创造出图像上没有物体的假象。在第二个阶段中,神经网络以通常方式训练检测物体。

CmBN是CBN的修改版,在图4中,定义为Cross mini-Batch Normalization(CmBN),这只收集一个批次内mini-batches之间的数据。

我们modify SAM,从spatial-wise attention修改为point-wise attention,并将PAN的shortcut connection改为connection。如图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 Mosaic data augmentation, DropBlock regularization, Class label smoothing
  • Bag of Specials (BoS) for backbone: Mish activation, Cross-stage partial connections (CSP), Multi-input 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 hyper-parameters, Random training shapes
  • Bag of Specials (BoS) for detector: Mish activation, SPP-block, SAM-block, PAN path-aggregation block, DIoU-NMS

4. Experiments

我们测试了不同的训练改进的影响。包括(ILSVRC 2012年val)ImageNet数据集分类准确性,MS COCO(test-dev 2017)数据集的检测准确性。

4.1. Experimental setup

在ImageNet的图像分类实验中,默认超参数如下:训练步数8000000(800万);batch sizemini-batch size为128和32;采用多项式衰减学习率调度策略,初始学习率为0.1。warm-up steps为1000;momentum and weight decay分别设定为0.9和0.005。我们所有的BoS实验中使用的超参数为默认设置,而在BoF实验中,我们增加了一个额外的50%的训练步数。在BoF实验中,我们验证MixUp, CutMix, Mosaic, Bluring数据增强、和label smoothing regularization方法。在BoS的经验中我们比较了LReLU、Swish和Mish的效果。所有的实验都是用1080Ti或2080 Ti GPU。

在MS COCO目标检测实验中,默认参数如下:训练步数为500500;采用阶跃衰减学习速率调度策略,初始学习率为0.01,并分别在40万步和45万步时乘以系数0.1。momentum and weight decay分别设置为0.9和0.0005。所有的架构执行多尺度训练的都使用单GPU,batch size 64,mini-batch size是8或4,取决于架构和GPU显存容量限制。除了超参数搜索使用遗传算法,所有其他实验使用默认设置。遗传算法实验使用YOLOv3-SPP以GIoU损失进行训练,搜索300个周期的最小值5k组。我们采用搜索过的学习率0.00261,动量0.949,IoU阈值对ground truth为 0.213,遗传算法的实验loss normalizer为0.07。我们已经验证了大量的BoF,包括grid sensitivity elimination, mosaic data augmentation, IoU threshold, genetic algorithm,class label smoothing, cross mini-batch normalization, self adversarial training, cosine annealing scheduler, dynamic mini-batch size, DropBlock, Optimized Anchors, different kind of IoU losses。我们还对各种BoS验证,包括Mish、SPP、SAM、RFB、BiFPN、BiFPN和Gaussian YOLO[8]。对于所有的实验,我们只使用一个GPU训练,因此,诸如syncBN这样的技术可以优化多GPU训练并未使用。

4.2. Influence of different features on Classifier training

首先,我们研究了不同技巧对分类训练的影响;具体而言,Class label smoothing的影响,不同的数据增强的影响,bilateral blurring, MixUp, CutMix and Mosaic,如图7所示,以及不同激活函数影响,如Leaky-ReLU(默认情况下)、Swish和Mish。

在我们的实验中,如表2所示,引入了以下技巧提高了精度,如CutMix和Mosaic数据增强,Class label smoothing,和Mish activation。因此,我们的分类器训练BoF-backbone (Bag of Freebies)是: CutMix和Mosaic data augmentation和Class label smoothing,此外我们还使用Mish activation作为补充方案,如表2和表3所示。

4.3. Influence of different features on Detector training

深入研究考虑不同Bag-of-Freebies (BoF-detector)在检测器训练中的影响,如表4所示,我们通过研究在不影响FPS的情况下提高探测器精度的不同特性,显著扩展了BoF列表:

S:Eliminate grid sensitivity(消除网格敏感性)

M: Mosaic data augmentation(Mosaic 数据增强)

 IT:  IoU threshold(IoU阈值)

GA:Genetic algorithms(遗传算法)

LS: Class label smoothing(类标签平滑)

CBN: CmBN( Cross mini-Batch Normalization)

CA: Cosine annealing scheduler(余弦退火衰减)

DM: Dynamic mini-batch size(动态小批量)

OA: Optimized Anchors(优化Anchors)

GIoU, CIoU, DIoU, MSE

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

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

我们进一步研究不同backbone对精度的影响,如表6所示。我们注意到具有最佳的分类特征精度模型并不总是最好的检测精度。

首先,虽然CSPResNeXt50的分类准确率高于 CSPDarknet53,CSPDarknet53模型在目标检测方面有更高的精度。

第二,使用BoF和Mish对CSPResNeXt50训练,提高了其分类精度,但进一步应用这些预先训练过的权重降低了检测器的精度。然而,使用BoF和Mish用于CSPDarknet53分类器的训练均提高了分类器和检测器的精度。结果是,backbone CSPDarknet53比CSPResNeXt50更适合用于检测器。

我们观察到,CSPDarknet53模型显示了更大的能力来提高检测器的精度,这是因为各种改进。

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

最后,我们分析了不同mini-batch sizes训练模型的结果,其结果如表7所示。从表7所示的结果来看,我们发现,在加入BoF和BoS训练策略后,发现mini-batch size几乎对检测器的每一个batch的检测结果没有任何影响。这一结果表明,在引进了BoF和BoS,它不再需要使用昂贵的GPU进行训练。换句话说,任何人都可以只使用一个传统的GPU来训练一个优秀的探测器。

5. Results

与其他SOTA检测器结果比较如图8所示,YOLOv4位于Pareto optimality curve(帕累托最优曲线)上,并且是最快和最准确的检测器。

由于不同的方法使用不同架构的GPU,为了进行推理时间验证,我们让YOLOv4运行在Maxwell,Pascal和Volta等常用的GPU,并将其与其他最新技术进行比较。表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. Conclusions

我们提供最先进的检测器,比所有可用的检测器更快(FPS)和更精确(MS COCO AP 50…95和AP 50)。所描述的检测器可以训练和使用在传统的GPU(具有8-16GB-VRAM)上,这使得它的广泛应用成为可能。单阶段anchor-based的检测器是可行的。我们已经验证了大量的特征,并选择使用这些特征来提高分类器和检测器的精度。这些特性可以作为未来研究和开发的最佳实践。

 

参考:

https://blog.csdn.net/popoffpopoff/article/details/105759698

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》,课程链接 https://edu.csdn.net/course/detail/29865【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来!  代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利器:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《YOLOv4目标检测实战:训练自己的数据集》《YOLOv4-tiny目标检测实战:训练自己的数据集》《YOLOv4目标检测实战:人脸口罩佩戴检测》《YOLOv4目标检测实战:中国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值