美文网首页
YOLO(三) YOLOv5原理

YOLO(三) YOLOv5原理

作者: blackmanba_084b | 来源:发表于2022-01-04 13:59 被阅读0次

其实继YOLOv3之后, 发表了YOLOv4论文,以及工程化的YOLOv5。 这里做一下简要的介绍,首先先给出论文地址(YOLOv4)以及代码地址(YOLOv5)。
论文地址: YOLOv4: Optimal Speed and Accuracy of Object Detection
代码地址: ultralytics/yolov5

首先说下其实YOLOv4这篇文章将2020年以前的这段时间做的关于目标检测的很多trick以及思想做了大合集实验,并且这些实验都是再单gpu下便可进行很好训练的,所以看了这篇文章对我们有很大的收益,同时YOLOv5的工程化代码写的非常好,也便于我们普通人基于普通机器进行大规模数据训练。

一、 原理介绍

YOLOv4主要从两个方面对其进行了实验改进分别是:Bag of freebies(BOF)以及Bag of specials(BOS)

1.1 Bag of freebies(BOF)

We call these methods that only change the training strategy or only increase the training cost as “bag of freebies.” What is often adopted by object detection methods and meets the definition of bag of freebies is data augmentation

由原文可以得出我们此方法可以增加训练成本,通过该方法可以进一步的提升精度,但是不会影响我们的推理速度。该方法包括如下几个方面如:
数据增强 传统的调整亮度,对比度,饱和度,随机缩放,裁剪, 翻转,旋转, 以及该文章突出的一点的Mosaic方法。
正则化方法: Dropout,以及该文章采用的Dropblock方法。
类别不平衡以及损失函数的涉及

1.1.1 数据增强

在Mosaic数据增强方面之前, 有好几种数据增强的方式分别是:Mixup, Cutout, CutMix我们先看下他们是如何做到的, 具体的可以参考这篇文章数据增强:Mixup,Cutout,CutMix | Mosaic,并且这边文章还有对应的代码解读。

下面的这张图不仅表现了做数据增强的方法,同时咱们也需要注意其label标签的构成是soft的形式组成。
Mixup会引入不自然的为像素信息,Cutout保留了regional dropout优势能够关注到目标不容易区分的部位。CutMix种通过要求模型从局部视图识别对象,对cut区域中添加其他样本的信息,能够进一步增强模型的定位能力。而我们的YOLOv4采用的是Mosaic的增广方式。
相对于之前的两张图片进行的增广,Mosaic采用的是4张图片拼接进行增广,相当于增加了batch size大小。如下图所示:

具体步骤如下所示:
步骤一:随机选取4张图
步骤二:分别对四张图片进行翻转(对原始图片进行左右的翻转)、缩放(对原始图片进行大小的缩放)、色域变化(对原始图片的明亮度、饱和度、色调进行改变)等操作操作完成之后然后再将原始图片按照 第一张图片摆放在左上,第二张图片摆放在左下,第三张图片摆放在右下,第四张图片摆放在右上四个方向位置摆好
步骤三:完成四张图片的摆放之后,我们利用矩阵的方式将四张图片它固定的区域截取下来,然后将它们拼接起来,拼接成一 张新的图片,新的图片上含有框框等一系列的内容
当然文章也提到了其他的数据增强的方法如:Random EraseHide and SeekSelf-aderarial-training(SAT)DropBlock等方法。
Random Erase 用随机值或训练集的平均像素值替换图像的区域

Hide and Seek 根据概率设置随机隐藏一些补丁

Self-adverial-training(SAT) 通过引入噪音来增加训练难度

DropBlock dropout是随机选点(b), DropBlock是整个区域(c), 杀死一些部位,也是为了加大训练难度,增大泛化能力,防止过拟合。
1.1.2 标签平滑

对于标签我们采用了Label Smoothing的方法,集我们的label不是给绝对的标签


1.1.3 目标框损失(选用CIOU损失
IOU 损失
GIOU 损失
DIOU 损失
CIOU 损失
1.1.4 NMS
DIOU-NMS
SOFT-NMS 不满足的不直接剔除,而是通过iou把置信度先降一下

1.2 Bag of specials(BOS)

For those plugin modules and post-processing methods that only increase the inference cost by a small amount but can significantly improve the accuracy of object detection, we call them “bag of specials”. Generally speaking, these plugin modules are for enhancing certain attributes in a model, such as enlarging receptive field, introducing attention mechanism, or strengthening feature integration capability, etc., and post-processing is a method for screening model prediction results.

通过少许推断代价,但是可以提高模型进度。引入了注意力机制,网络细节涉及,特征金字塔等。

1.2.1 SPPNet(Spatial Pyramid Pooling)
SPPNet
1.2.2 CSPNet(Cross Stage Partial Network)
CSPNet

将输入先切分两块在进行运算,channel同道减少在计算为了加快计算速度。

1.2.3 SAM注意力机制

Modifyied SAM
1.2.4 PAN(Path Aggregation Network)
FPN
PAN
Modified PAN
1.2.5 Mish 激活函数
Mish 激活函数
1.2.6 eliminate grid sensitivity
1.2.7 整体网络架构

二、 代码介绍

这里推荐我同事写的这篇博客, 再分享会上分享的非常详细,目标检测 YOLOv5网络v6 0版本总结
参考文献
[1] 数据增强:Mixup,Cutout,CutMix | Mosaic
[2] 想读懂YOLOV4,你需要先了解下列技术(一)
[3] YoloV4当中的Mosaic数据增强方法(附代码详细讲解)
[4] 唐宇迪 YOLO系列
[5] Soft-NMS

相关文章

网友评论

      本文标题:YOLO(三) YOLOv5原理

      本文链接:https://www.haomeiwen.com/subject/zwriqrtx.html