【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解

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 整体网络

整体网络如下所示:

【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解

; 4.2.1 框架建构

backbone:

  • CSPResNeXt50
  • CSPDarknet53(√)
  • EfficientNet-B3

【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解

感受野大小影响:

  • 达到目标大小:模型可以感受到整个目标对象
  • 达到网络大小:模型可以考虑到目标对象的临近对象
  • 超过网络大小:增加图像点之间联系和增加了最后的激活作用

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为例):

【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解

; 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也罢, 相较于其前的网络都有非常明显的进步。

Original: https://blog.csdn.net/deepsprings/article/details/126347319
Author: 天真的和感伤的想象家
Title: 【YOLO系列】YOLO.v4 & YOLO.v5算法原理详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/650941/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球