论文笔记(YOLOv4)-2020-YOLOv4: Optimal Speed and Accuracy of Object Detection

YOLOv4: Optimal Speed and Accuracy of Object Detection

Alexey Bochkovskiy,Chien-Yao Wang (Institute of Information Science, Academia Sinica, Taiwan),Hong-Yuan Mark Liao (Institute of Information Science, Academia Sinica, Taiwan)

论文地址:https://arxiv.org/pdf/2004.10934.pdf

源码:https://github.com/AlexeyAB/darknet


目录

YOLOv4: Optimal Speed and Accuracy of Object Detection

Abstract

1. Introduction

2. Related work

2.1. Object detection models

2.2. Bag of freebies

2.3. Bag of specials

3. Methodology

3.1. Selection of architecture

3.2. Selection of BoF and BoS

3.3. Additional improvements

3.4. YOLOv4

4. Experiments

4.1. Experimental setup

4.2. Influence of different features on Classifier training

4.3. Influence of different features on Detector training

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

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

5. Results

6. Conclusions

7. Acknowledgements

 


Abstract

据说大量的特征可以提高卷积神经网络(CNN)的精度。需要在大型数据集上对这些特征组合进行实际测试,并对结果进行理论论证。有些特征只适用于某些模型和某些问题,或只适用于小规模数据集;而一些特征,如 batch-normalization 和 residual-connections,适用于大多数模型、任务和数据集。我们假设这些普遍特征包括 Weighted-Residual-Connections (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,DropBlock regularization 和 CIoU loss,并结合其中的一些,以达到最先进(state-of-the-art)的结果:在 MS COCO 数据集上,在Tesla V100上的实时速度为 65 帧/秒(FPS),43.5% AP (65.7% AP50)。源代码在https://github.com/AlexeyAB/darknet.

 


1. Introduction

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

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

  1. 我们开发了一个高效和强大的目标检测模型。它让每个人都可以使用 1080 Ti 或 2080 Ti GPU 来训练一个超级快速和准确的目标检测器。
  2. 我们验证了 state-of-the-art 的 Bag-of-Freebies 和 Bag-of-Specials 方法在检测器训练期间对目标检测的影响。
  3. 我们改进了目前 state-of-the-art 的方法,使其更加有效,适合于单个 GPU 训练,包括 CBN[89]、PAN[49]、SAM[85] 等。

 


2. Related work

2.1. Object detection models

一个现代的检测器通常由两部分组成,一个是在 ImageNet 上预先训练的 backbone,一个是用来预测物体的类和边界框(bounding box, 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 由多条自下而上的路径和多条自上而下的路径组成。具有这种机制的网络包括特征金字塔网络(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”。目标检测方法通常采用的并且满足 bag of freebies 定义的方法是 数据增强(data augmentation)。data augmentation 的目的是增加输入图像的可变性,使所设计的目标检测模型对不同环境下获得的图像具有更高的鲁棒性。例如,光度畸变(photometric distortions)和几何畸变(geometric distortions)是两种常用的数据增强方法,它们肯定有利于目标检测任务。在处理 photometric distortions 时,我们调整图像的亮度、对比度、色调、饱和度和噪声。对于 geometric distortions,我们添加了随机缩放、剪切、翻转和旋转。

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

与上面提出的各种方法不同,其他一些 bag of freebies 方法是专门解决数据集中的语义分布可能存在偏差的问题。在处理语义分布偏差问题时,一个非常重要的问题是不同类别之间存在数据不平衡的问题,而这一问题通常通过 two-stage 目标检测器中的 hard negative example mining[72] 或 online hard example mining[67] 来解决。但是 example mining 方法并不适用于 one-stage 目标检测器,因为这类检测器属于密集预测结构。因此 Lin 等人[45]提出了 focal loss 来解决不同类别之间数据不平衡的问题。另一个非常重要的问题是,很难用 one-hot hard representation 来表达不同类别之间的关联程度关系。在进行标注时经常使用这种表示方式。在[73]中提出的 label smoothing 是将 hard label 转换为 soft label 进行训练,这样可以使模型更加鲁棒。为了获得更好的 soft label,Islam 等[33]引入了 knowledge distillation 的概念来设计标签细化网络。

最后一类 bag of freebies 方法是 BBox 回归的目标函数。传统的目标检测器通常使用均方误差(MSE)直接执行回归中心点坐标和 BBox 的高度、宽度,即 ,或左上角和右下角点,即 。基于 anchor 的方法是估算相应的偏移量,例如  以及 。然而,直接估算 BBox 中每个点的坐标值就是将这些点作为自变量,而实际上并没有考虑到目标本身的完整性。为了更好地处理这一问题,最近有研究人员提出了 IoU loss[90],它考虑了预测 BBox 区域和 ground truth BBox 区域的覆盖范围。IoU loss 的计算过程将触发 BBox 的四个坐标点的计算,用 ground truth 计算 IoU,然后将生成的结果连接成一个完整的代码。由于 IoU 是一个尺度不变的表示,可以解决传统方法计算  的 L1 loss 或 L2 loss 时,损耗会随着尺度的增大而增大的问题。近年来,一些研究人员一直在继续改善 IoU loss。例如 GIoU loss[65] 除了覆盖区域外还包括目标的形状和方向,他们提出寻找能够同时覆盖预测 BBox 和 ground truth BBox 的最小面积的 BBox,并以此 BBox 作为分母来替代原来用于 IoU loss 的分母。DIoU loss[99] 额外考虑了目标中心的距离。CIoU loss[99] 同时考虑了重叠面积、中心点之间的距离和长宽比,CIoU 可以在 BBox 回归问题上取得较好的收敛速度和精度。

2.3. Bag of specials

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

常用的增强感受野的模块有 SPP[25]、ASPP[5] 和 RFB[47]。SPP 模块源于空间金字塔匹配(Spatial Pyramid Matching, SPM) [39],SPM 原始方法是将特征映射分割成多个  分块,其中  可以是 ,从而形成空间金字塔,进而提取词袋(bag-of-word)特征。SPP 将 SPM 集成到 CNN 中,使用 max-pooling 操作而不是 bag-of-word 操作。由于 He 等人[25]提出的 SPP 模块会输出一维特征向量,所以在全卷积网络(Fully Convolutional Network, FCN)中应用不可行。因此,在 YOLOv3[63] 的设计中,Redmon 和 Farhadi 将 SPP 模块改进为内核大小为  的 max-pooling 输出的拼接,其中 ,stride = 1。在这种设计下,相对较大的  的 max-pooling 可以有效增加 backbone 特征的感受野。在添加了改进版本的 SPP 模块之后,YOLOv3-608 在 MS COCO 目标检测任务上将 AP50 提升了 2.7%,但代价是额外增加了 0.5% 的计算量。ASPP[5] 模块与改进后的 SPP 模块在操作上的区别主要在于原始  核的大小,几个  核大小的 max-pooling 的 stride 等于1,膨胀比等于 ,并且在膨胀卷积(dilated convolution)操作中的 stride 等于 1。RFB 模块是利用几个  核的 dilated convolution,膨胀比为 ,stride为 1,来获得比 ASPP 更全面的空间覆盖。RFB[47] 只需要 7% 的额外推断时间就可以将 SSD 在 MS COCO 上的 AP50 增加 5.7%。

目标检测中常用的 attention 模块主要分为 channel-wise attention 和 point-wise attention,这两种 attention 模型的代表分别是 Squeeze-and-Excitation (SE)[29] 和 Spatial Attention Module (SAM)[85]。尽管 SE 模块可以提高 ResNet50 在 ImageNet 图像分类任务中 1% top-1 的准确率,代价是只增加 2% 的计算工作量,但在 GPU 上通常会增加 10% 的推断时间,所以它更适合用于移动设备。而对于 SAM,只需要额外支付 0.1% 的计算量,就可以提高 ResNet50-SE 在 ImageNet 图像分类任务上 0.5% top-1 的准确率。最重要的是,它根本不影响在 GPU 上的推理速度。

在特征融合方面,早期的做法是使用 skip connection[51] 或 hyper-column[22] 将低级物理特征集成到高级语义特征。随着 FPN 等多尺度预测方法的流行,人们提出了许多集成不同特征金字塔的轻量级模型。这类模块包括 SFAM[98]、ASFF[48] 和 BiFPN[77]。SFAM 的主要思想是利用 SE 模块在多尺度级联的特征图上执行 channel-wise 级别的重新加权。对于 ASFF,它使用 softmax 作为 point-wise 级别的重新加权,然后添加不同尺度的特征图。在 BiFPN 中,提出了多输入加权残差连接来执行 scale-wise 级别的重新加权,然后添加不同尺度的特征图。

在深度学习的研究中,一些人把重点放在寻找好的激活函数上。一个好的激活函数可以使梯度更有效地传播,同时不会造成太多额外的计算成本。2010年,Nair 和 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,它可以过滤那些预测同一对象的不好的 BBox,只保留响应较高的候选 BBox。NMS 试图改进的方式与优化目标函数的方法是一致的。由于原始 NMS 提出的方法没有考虑上下文信息,因此 Girshick 等[19] 在 R-CNN 中添加了分类置信度得分(confidence score)作为参考,并根据 confidence score 的顺序,按照得分高到低的顺序进行 greedy NMS。对于 soft NMS[1],考虑了目标的遮挡可能导致 greedy NMS 中基于 IoU 得分的 confidence score 退化的问题。DIoU NMS[99] 开发者的思路是在 soft NMS 的基础上,将中心点距离的信息添加到 BBox 筛选过程中。值得注意的是,由于上述后处理方法均不直接用于所捕捉到的图像特征,因此在后续的 anchor-free 方法开发中不再需要后处理。

 


3. Methodology

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

  • 对于 GPU,我们在卷积层中使用少量的 group(1-8):CSPResNeXt50 / CSPDarknet53
  • 对于 VPU,我们使用了分组卷积(grouped-convolution),但我们避免使用 SE 块,具体来说,这包括以下模型:EfficientNet-lite / MixNet[76] / GhostNet[21] / MobileNetV3

3.1. Selection of architecture

我们的目标是在输入网络分辨率、卷积层数、参数数量(filter_size2 * filters * channel / groups)和输出层数(filters)之间找到最佳的平衡。例如,我们的大量研究表明,在 ILSVRC2012 (ImageNet) 数据集[10]上的目标分类方面,CSPResNext50 比 CSPDarknet53 要好得多。但是,相反地,在 MS COCO 数据集[46]上目标检测方面,CSPDarknet53 比 CSPResNext50 要好。

下一个目标是选择额外的块来增加感受野,以及最佳的方法来针对不同的检测器级别对不同的 backbone 层级进行参数融合:例如 FPN、PAN、ASFF、BiFPN。

最适合分类的参考模型并不总是最适合检测器的。与分类器相反,检测器需要以下内容:

  • 更高的输入网络大小(分辨率),检测多种小型目标
  • 更多的层次,以更高的感受野来覆盖增大的输入网络
  • 更多的参数,一个更大容量的模型,在一张图像中检测多个不同大小的目标

假设,我们可以选择一个感受野较大( 的卷积层数较多)和参数数量较多的模型作为 backbone。1显示了 CSPResNeXt50、CSPDarknet53 和 EfficientNet B3 的信息。CSPResNext50 仅包含 16 个  的卷积层,一个  的感受野和 20.6M 参数,而 CSPDarknet53 包含 29 个  的卷积层,一个  的感受野和 27.6M 的参数。这一理论论证,以及我们的大量实验,都表明在使用这两种算法作为 backbone 的检测器中,CSPDarknet53 神经网络是最优模型。

不同大小的感受野的影响归纳如下:

  • 取决于目标大小,允许查看整个目标
  • 取决于网络大小,允许查看目标周围的上下文
  • 超过网络大小,增加图像点和最终激活之间的连接数

我们在 CSPDarknet53 上添加 SPP 块,因为它显著地增加了感受野,分离出最重要的上下文特征,并且几乎没有降低网络操作速度。我们使用 PANet 作为针对不同的检测器级别对不同的 backbone 层级进行参数融合的方法,而不是 YOLOv3 中使用的 FPN。

最后,我们选择 CSPDarknet53 作为 backboneSPP 作为附加模块PANet path-aggregation 作为 neckYOLOv3(基于anchor的)的 head 组成 YOLOv4 的架构

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

我们不使用 Cross-GPU Batch Normalization(CGBN或SyncBN)或昂贵的专用设备。这允许任何人在传统图形处理器上复制我们的 state-of-the-art 的结果,例如 GTX 1080Ti 或 RTX 2080Ti。

3.2. Selection of BoF and BoS

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

  • Activations:ReLU,leaky-ReLU,parameterical-ReLU,ReLU6,SELU,Swish 或 Mish
  • Bounding box regression loss:MSE,IoU,GIoU,CIoU,DIoU
  • Data augmentation:CutOut,MixUp,CutMix
  • Regularization method:DropOut,DropPath[36],Spatial DropOut[79] 或 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] 或 Cross-Iteration Batch Normalization(CBN)[89]
  • Skip-connections:Residual connections,Weighted residual connections(WRC),Multi-input weighted residual connections 或 Cross stage partial connections(CSP)

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

3.3. Additional improvements

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

  • 介绍了一种新的 data augmentation 方法 Mosaic,以及 Self-adversarial-training (SAT)
  • 在应用 genetic algorithm 时,我们选择了最优 hyper-parameter
  • 我们修改了一些现有的方法,使我们的设计适合于有效的训练和检测。改进的 SAM,改进的 PAN 和 Cross mini-Batch Normalization(CmBN)

Mosaic 是一种新的混合 4 幅训练图像的 data augmentation 方法,因此有 4 种不同的上下文混合,而 CutMix 只混合 2 个输入图像。这允许检测超出正常上下文的对象。此外,BN 计算每一层上 4 个不同图像的激活统计信息。这显著减少了对大的 mini-batch 尺寸的需求。

SAT 也代表了一种新的 data augmentation 技术,在两个前向后向阶段操作。在第一阶段,神经网络改变原始图像而不是网络的权值。通过这种方式,神经网络对自己实施了一种对抗性的攻击,改变原始图像,制造出图像上没有想要的物体的假象。在第二阶段,训练神经网络以正常的方式检测修改后的图像上的目标。

CmBN 表示 CBN 的修改版本,如4所示,定义为 CmBN。这只收集单个批次中的 2 个 mini-batch 之间的统计信息。

我们将 SAM 从 spatial-wise attention 修改为 point-wise attention,将 PAN 的 shortcut connection 替换为 concatenation,分别如图5图6所示。

3.4. YOLOv4

在本节中,我们将详细说明 YOLOv4 的细节。

 


4. Experiments

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

4.1. Experimental setup

在 ImageNet 图像分类实验中,默认的 hyper-parameter 如下:training step 为 800万;batch size 为 128,mini-batch size 为 32;采用多项式衰减学习率调度策略(polynomial decay learning rate scheduling strategy),初始学习率为 0.1;warm-up step 为 1000;momentum 和 weight decay 分别设为 0.9 和 0.005。我们所有的 BoS 实验使用相同的 hyper-parameter 作为默认设置,并且在 BoF 实验中,我们添加了额外的 50% 的 training step。在 BoF 实验中,我们验证了 MixUp、CutMix、Mosaic、Bluring data augmentation 和 label smoothing regularization 方法。在 BoS 实验中,我们比较了 LReLU、Swish 和 Mish 激活函数的效果。所有实验都使用 1080 Ti 或 2080 Ti GPU 进行训练。

在 MS COCO 目标检测实验中,默认的 hyper-parameter 如下:training step 为 500500;采用阶跃衰减学习率调度策略(step decay learning rate scheduling strategy),初始学习率为 0.01,在 40 万步和 45 万步上乘以因子 0.1;momentum 和 weight decay 分别设为 0.9 和 0.0005。所有的架构都使用单个 GPU 来执行 batch size 为 64 的多尺度训练,而 mini-batch size 为 8 或 4 取决于架构和 GPU 内存限制。除了使用 genetic algorithm 进行 hyper-parameter 搜索实验外,其他实验均使用默认设置。genetic algorithm 使用 YOLOv3-SPP 进行 GIoU loss 训练,搜索 300 个 epoch 得到 min-val 5k sets。在 genetic algorithm 实验中,我们采用了 searched learning rate 为 0.00261、momentum 为 0.949、设定 ground truth 的 IoU 阈值为 0.213、loss normalizer 为 0.07。我们已经验证了大量的 BoF,包括 grid sensitivity elimination、Mosaic data augmentation、IoU threshold、genetic algorithm、Class label smoothing、CmBNSAT、cosine annealing scheduler、dynamic mini-batch size、DropBlock、Optimized Anchors、不同类型的 IoU 损失。我们还对各种 BoS 进行了实验,包括 Mish、SPP、SAM、RFB、BiFPN 和 Gaussian YOLO[8]。在所有的实验中,我们只使用一个 GPU 进行训练,所以没有使用像 SyncBN 这样可以优化多个 GPU 的技术。

4.2. Influence of different features on Classifier training

首先研究了不同特征对分类器训练的影响;具体来说,Class label smoothing 的影响、不同 data augmentation 技术的影响(bilateral blurring、MixUp、CutMix 和 Mosaic,如7所示),以及不同激活函数的影响(如 Leaky-ReLU(默认)、Swish 和 Mish)。

在我们的实验中,如2所示,通过引入 CutMix 及 Mosaic data augmentation、Class label smoothing 和 Mish activation 等特征,分类器的精度得到了提高。因此,我们用于分类器训练的 BoF backbone(Bag of Freebies) 包括以下内容:data augmentation 方法 CutMix 和 Mosaic,Class label smoothing。此外,我们使用 Mish activation 作为补充选项,如23所示

4.3. Influence of different features on Detector training

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

进一步研究了不同的 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所示。我们注意到,具有最佳分类准确度表征的模型在检测器精度方面并不总是最好的。

首先,虽然用不同特征训练的 CSPResNeXt- 50 模型的分类准确率比 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 size 训练模型得到的结果进行分析,结果如7所示。从7的结果中我们发现,在加入 BoF 和 BoS 训练策略后,mini-batch size 对检测器的性能几乎没有影响。这个结果表明引入 BoF 和 BoS 后,不再需要使用昂贵的 GPU 进行训练。换句话说,任何人都可以只用一个传统的 GPU 来训练一个优秀的检测器。

 


5. Results

8显示了与其他 state-of-the-art 的目标检测器得到的结果的比较。我们的 YOLOv4 位于 Pareto 最优曲线上,在速度和精度方面都优于最快和最准确的检测器。

由于不同的方法使用不同架构的 GPU 进行推理时间验证,我们在常用的 Maxwell、Pascal 和 Volta 架构的 GPU 上运行 YOLOv4,并与其他 state-of-the-art 的方法进行比较。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

我们提供了 state-of-the-art 的检测器,比所有可用的替代检测器更快(FPS)和更准确(MS COCO AP50…95 和 AP50)。该检测器可在 8-16 GB-VRAM 的传统 GPU 上训练和使用,这使其具有广泛的应用前景。基于 anchor 的 one-stage 检测器的原始概念已经证明了它的可行性。我们已经验证了大量的特征,并选择使用这些特征来提高分类器和检测器的准确性。这些特征可以作为未来研究和发展的最佳实践。

 


7. Acknowledgements

作者要感谢 Glenn Jocher 提出的 Mosaic data augmentation、使用 genetic algorithm 选择 hyper-parameters 以及解决 grid sensitivity 问题。https://github.com/ ultralytics/yolov3。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值