yolov4和yolov5对比分析
YOLO(You Only Look Once)算法原理
前言 :详细介绍了yolo系列目标检测算法的原理和发展过程。
系列:
【YOLO系列】YOLO.v1算法原理详解
【YOLO系列】YOLO.v2算法原理详解
【YOLO系列】YOLO.v3算法原理详解
【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解
4. YOLO.v4 & YOLO.v5
4.1 基本概述
论文参考:YOLOv4: Optimal Speed and Accuracy of Object Detection
回顾 yolo 发展过程:
- yolo v1 创新性提出了目标检测新框架,即 yolo 横空出世,那时候性能还很薄弱;
- yolo v2 通过加入各种技巧,使得 yolo 性能有了跟其它主流目标检测网络较劲的底气;
- yolo v3 基础网络的改变,大大提高了其性能,同时构建出了 yolo 的经典框架;至此,大厦已立。
从性能数据上看,yolo v3 已经是个很成熟很好用的网络了,具有较快检测速度和较高准确率;
事实上,也确会如此,现在 yolo v3 仍旧被诸多目标检测者广泛使用在诸多检测任务中。
AI 发展如此迅速,以至于各种网络训练、建构等小技巧层出不穷,研究者们一直在向着更快、更准的方向前进。
基于这样的背景,yolo v4 就是集技巧之大成者,调参之经典例。换句话说,就是将期间发展的各种深度学习 trick 加入到已立的大厦中。
yolo v5 似乎也有做了类似的事情。
如果简单概括地话,可以认为 yolo v4 是理论的集大成者, yolo v5 则是算法落地实现的实施者。
这也是为什么把两者放到了一个博客中。
4.2 从 YOLO v4
4.2.0 整体网络
整体网络如下所示:
4.2.1 框架建构
backbone:
- CSPResNeXt50
- CSPDarknet53(√)
- EfficientNet-B3
感受野大小影响:
- 达到目标大小:模型可以感受到整个目标对象
- 达到网络大小:模型可以考虑到目标对象的临近对象
- 超过网络大小:增加图像点之间联系和增加了最后的激活作用
neck:
- SPP
- PANet
head:
- yolov3 head
4.2.2 技巧集成 (BoF, BoS)
本部分就是向框架里堆积各种先进技巧,这些技巧可以分为两类:
- bag of freebies:不增加模型复杂度,不增加推理计算量的训练方法技巧,提升模型准确度
- bag of specials:增加少许模型复杂度或计算量,显著增加模型准确度
以下 (√) 表示 yolo v4 采纳的技巧
data augmentation
- photometric distortions: Brightness, Contrast, Hue, Saturation, Noise
- geometric distortion: Scale, Crop, Flip, Rotate
- random erase, CutOut
- Blur
- Hide-and-seek, grid mask
- MixUp
- CutMix(√)
- Mosaic(√)
- style transfer GAN
- Class label smoothing 类标签平滑(√)
- Self-Adversarial Training(SAT)自对抗训练(√)
activation function
-
ReLU (×)
-
LReLU (×)
-
PReLU (×)
-
ReLU6 (×)
-
SELU (×)
-
hard-Swish (×)
-
Leaky-ReLU (by default)
-
Swish
-
Mish(√)
bbox regression loss
- MSE
- IoU
- GIoU
- CIoU (√)
- DIoU
enhance receptive field
- SPP (√)
- ASPP
- RFB
- BiFPN
regularization method
- DropOut
- DropPath
- Spatial DropOut
- DropBlock(√)
normalization
- Batch Normalization(BN)
- Cross-GPU Batch Normalization(CGBN or SyncBN) ×
- Filter Response Normalization(FRN)
- Cross-Iteration Batch Normalization(CBN)
- Cross mini-Batch Noramlization(CmBN)(√)
Skip-connections
- Residual connections
- Weighted Residual connections
- Multi-input Weighted Residual connections(MiWRC)(√)
- Cross-Stage Partial connections(CSP)(√)
attention module
- channel-wise: Squeeze-and-Excitation (SE)
- point-wise: Spatial Attention Module (SAM) (√)
other methods
- Eliminate grid sensitivity(√)
- Cosine annealing scheduler(√)
- optimal hyper-parameters by genetic algorithms(√)
- modified PAN(√)
- DIoU-NMS(√)
- Dynamic mini-batch size(√)
4.3 到 YOLO v5
4.3.0 整体网络
整体网络如下所示(以yolov5n为例):
4.3.1 框架建构
Backbone
v4 & v5
CSPDarknet
Neck
v4 & v5
SPP/SPPF
PANET
Head
v3 & v4 & v5
(80个类别 + 置信度 + 4个坐标) * 3
4.3.2 技巧集成
注意:yolo v5 现在也在持续更新中,且更新频率很快,下面一些技巧可能是暂时的
Data Augmentation
v5
Scale
Hue
CutMix
Mosaic
Auto Learning BBox Anchors
v3
通过k-means 和 遗传算法 获得
v4
无自适应锚定框
v5
基于训练数据自动学习
Activation Function
v4
Mish
v5
中间层:Leaky ReLU
检测层:Sigmoid
Optimization Function
v4
SGD
v5
较小数据集:Adam
较大数据集:SGD
Cost Function
v4
bbox regression: CIoU loss
v5
class probability score: 二进制交叉熵
objectness score: Logits
bbox regression: GIoU loss
4.4 总结
理论上来说,yolo v4 和 yolo v5 本质上只是在yolo v3 框架基础上“调参”的改进。事实上,确实会有很多人这么认为。
但无论如何,yolo v4 也好,yolo v5也罢, 相较于其前的网络都有非常明显的进步。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/16788325.html,如有侵权联系删除