提出目标:相比低计算量(BFLOP),更着重于优化并行计算,在production system中实现快速计算。

YOLOv4的作者阵容里并没有Joe Redmon,
一作为俄罗斯 Alexey Bochkovskiy ,是 YOLO 的 windows 版本github的作者。
并得到YOLO官方github的认可,
文章也对pytorch 版的yolo做了致谢。

paper YOLOv4: Optimal Speed and Accuracy of Object Detection
107ref 17 pages
权重代码链接:https://pan.baidu.com/s/1BRdijXZDjiNLnOKrs9AxUg
提取码:s1ib
翻译
https://tongtianta.site/paper/89863

1 概况

(1)效果

越右上越好。在 MS COCO 数据集上获得了 43.5% 的 AP 值 (65.7% AP50),在 Tesla V100 上实现了 ∼65 FPS 的实时速度。
在取得与 EfficientDet 同等性能的情况下,速度是 EfficientDet 的二倍!
与 YOLOv3 相比,新版本的 AP 和 FPS 分别提高了 10% 和 12%。
YOLOV4 论文原理 模型分析 代码权重

  • 提出适合单GPU 训练一个快速准确的目标检测器。
  • 验证了当前最优 Bag-of-Freebies (训练阶段优化方法)和 Bag-of-Specials(测试阶段优化方法) 目标检测方法在检测器训练过程中的影响。

(2)总体结构

YOLOV4 论文原理 模型分析 代码权重
YOLOV4 论文原理 模型分析 代码权重

(3)改进方法

堆了20多种skills进行了对比和选择

分两类: Bag-of-Freebies (训练阶段优化方法)和 Bag-of-Specials(测试阶段优化方法)

训练阶段优化方法

骨干网络训练阶段优化

  • 数据增强Mosaic data augmentation
  • 正则化DropBlock regularization
  • 类标签平滑Class label smoothing
  • Cutmix

骨干网络检测阶段优化

  • Mish ** Mish-activation
  • Cross-stage partial connections (CSP)
  • Multi-input weighted residual connections (MiWRC)加权残差连接

detector训练阶段优化

  • 损失CIoU loss
  • Cross mini-Batch Normalization (CmBN)
  • 正则化DropBlock regularization
  • 数据增强Mosaic data augmentation
  • 自对抗训练Self-adversarial-training (SAT)
  • Eliminate grid sensitivity
  • Using multiple anchors for a single ground truth
  • Cosine annealing scheduler [52]
  • 使用遗传算法选择最优超参数Optimal hyper-parameters
  • Random training shapes

detector检测阶段优化

  • Mish ** Mish-activation
  • SPP-block
  • SAM-block
  • PAN path-aggregation block
  • DIoU-NMS

(4)对比试验

横向上对比了其他检测算法

efficientdet tridentnet
YOLOV4 论文原理 模型分析 代码权重

纵向上,在自身模型上对上述方法加上与否做了对比,

数据增强方法对比

YOLOV4 论文原理 模型分析 代码权重
有效方法:

  • CutMix
  • Mosaic
  • LabelSmoothing
  • Mish

YOLOV4 论文原理 模型分析 代码权重

训练方法对比

YOLOV4 论文原理 模型分析 代码权重

  • M: Mosaic data augmentation - using the 4-image mosaic during training instead of single image 有效
  • GA: Genetic algorithms - using genetic algorithms for selecting the optimal hyperparameters during network 有效
  • 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 有效
  • GIoU, CIoU, DIoU, MSE - using different loss algorithms for bounded box regression CIoU 最有效

对yolov4无效的方法

  • IT: IoU threshold - using multiple anchors for a single ground truth IoU (truth, anchor) > IoU threshold training on the first 10% of time periods
  • S: Eliminate grid sensitivity
  • LS: Class label smoothing - using class label smoothing for sigmoid activation
  • 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

测试阶段方法对比

有效方法

  • PANet
  • SPP
  • SAM
    YOLOV4 论文原理 模型分析 代码权重

骨干网络选择

cspdarknet优于cspresnext

  • Mish 有效

YOLOV4 论文原理 模型分析 代码权重

minibatch 大小影响

minibatch越大越好,cspdarknet对minibatch不敏感,利于单卡训练
YOLOV4 论文原理 模型分析 代码权重

2 结构

(1)骨干网络 backbone

**目的:**找出输入网络分辨率、卷积层数量、参数量(滤波器大小滤波器通道/组)和层输入数量(滤波器)四者之间的最优平衡。

在卷积层中使用少量组(1-8 组):CSPResNeXt50 / CSPDarknet53
CSPNet块思路:
类似块级别的跳层连接。把上一部分层分成两部分,分别不被处理和处理后,在concat
YOLOV4 论文原理 模型分析 代码权重

CSPNet开源了一部分cfg文件,其中一部分cfg可以直接使用AlexeyAB版Darknet还有ultralytics的yolov3运行。

https://github.com/WongKinYiu/CrossStagePartialNetworks

利用netron可视化cfg,可以看到cspdarknet 一个netron的结构

左侧不处理,最后和右侧concat
YOLOV4 论文原理 模型分析 代码权重

csp介绍

(2)Neck 额外块

理解为多尺度特征融合
目的是挑选能够增加感受野的额外块(additional block),以及针对不同级别的检测器从不同骨干层中挑选最佳的参数聚合方法,如 FPN、PAN、ASFF 和 BiFPN 网络。

SPP块

Spatial pyramid pooling in deep convolutional networks for visual recognition
研究者在 CSPDarknet53 上添加了 SPP 块,因为它能够极大地增加感受野,分离出最显著的上下文特征,并且几乎没有降低网络运行速度。

分别使用1,5,9,13的maxpool
YOLOV4 论文原理 模型分析 代码权重

PANet

Path aggregation network for instance segmentation
针对不同级别的检测器,挑选 PANet 作为对不同backbone层进行参数聚合的方法,而放弃了 YOLOv3 中使用的 FPN 网络。

concat 能够提供更丰富的信息。
YOLOV4 论文原理 模型分析 代码权重

SAM

(3)Head

YOLOV3 基于anchor的预测方法

3 改进方法

(1) 训练阶段优化方法

数据增强方法

mosaic

新型数据增强方法 Mosaic 混合了 4 张训练图像,而 CutMix 只混合了两张输入图像,具体如下图所示:
YOLOV4 论文原理 模型分析 代码权重

自对抗训练(SAT)

也是一种新的数据增强方法,它包括两个阶段。第一个阶段中,神经网络更改原始图像;第二阶段中,训练神经网络以正常方式在修改后的图像上执行目标检测任务。

(2) 测试阶段优化方法

相关文章:

  • 2021-08-04
  • 2021-08-15
  • 2021-05-01
  • 2022-12-29
  • 2022-12-23
  • 2021-12-18
  • 2021-05-31
猜你喜欢
  • 2021-10-02
  • 2021-11-16
  • 2021-09-26
  • 2021-09-11
  • 2021-09-04
  • 2022-12-23
  • 2021-09-20
相关资源
相似解决方案