『目标检测』YOLO V4

一、数据增强

对于单一图片,除了经典的 几何畸变 和 光照畸变 外,还创新地使用了图像遮挡(Random Erase, Cutout, Hide and Seek, Grid Mask, MixUp)技术;
对于多图组合,作者混合使用了 CutMixMosaic 技术。
除此之外,还使用了 Self-Adversarial Training(SAT) 来进行数据增强。

1. 图像遮挡

  • Random Erase
    用随机值或训练集的平均像素值替换图像的区域。
  • Cutout
    仅对 CNN 第一层的输入进行剪切方块 Mask。
  • Hide and Seek
    将图像分割成一个由 S*S 图像补丁组成的网络,根据概率设置随机隐藏一些补丁,从而让模型学习整个对象的特征,而不是单独一块,比如不单独依赖动物的脸做识别。
  • Grid Mask
    将图像的区域隐藏在网格中,作用也是为了让模型学习对象的整个组成部分。
  • MixUp
    图像对及其标签的凸面叠加。

2. 多图组合

  • CutMix
    将另一个图像中的剪切部分粘贴到增强图像。图像的剪切迫使模型学会根据大量的特征进行预测。
  • Mosaic
    在 Cutmix 中组合了两张图像,而在 Mosaic 中使用四张训练图像按一定比例组合成一张图像,使模型学会在更小的范围内识别对象。其次,还有助于显著减少对 batch_size 的需求,毕竟大多数人的 GPU 显存有限。

二、自对抗训练(SAT)

Self-Adversarial Training 是在一定程度上抵抗对抗攻击的数据增强技术。CNN 计算出 Loss, 然后通过反向传播改变图片信息,形成图片上没有目标的假象,然后对修改后的图像进行正常的目标检测。需要注意的是,SAT 在反向传播的过程中,是不需要网络权值的。

三、基本知识点积累

1. 激活函数

在 yolov4 中使用 Mish 激活函数。

2. 优化器

在 yolov4 中使用 SGD 优化器。

3. 损失函数

在 yolov4 中使用 CIOU Loss 作为 bounding box 的损失。

四、YOLO V4的改进

1. 主干特征提取网络:DarkNet53 => CSPDarkNet53

2. 特征金字塔:SPP,PAN

3. 分类回归层:YOLOv3(未改变)

4. 训练用到的小技巧:

1. Mosaic数据增强
2. Label Smoothing平滑
new_onehot_labels = onehot_labels * (1 - label_smoothing) + label_smoothing / num_classes
3. CIOU
4. 学习率余弦退火衰减
余弦退火衰减法,学习率会先上升再下降,这是退火优化法的思想。
上升的时候使用线性上升,下降的时候模拟cos函数下降。执行多次。

在这里插入图片描述

5. 激活函数:使用Mish激活函数
Mish函数的公式与图像如下:

扫描二维码关注公众号,回复: 12272680 查看本文章

在这里插入图片描述

五、YOLO V4 网络结构

当输入是 416x416 时,特征结构如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/libo1004/article/details/111034487