专栏首页Mybatis学习YOLO V4论文解读

YOLO V4论文解读

YOLO V4论文解读

YOLO V4论文地址

一、YOLOV3回顾

Backbone: darknet53
Anchors boxes
Batch normalization
Multi-scale
取消了pooling层,改用卷积核步长进行上采样
Logistics 代替了 softmax

二、YOLOV4中

作者将很多的新方法融合到一起,具体包括:
Weighted-Residual-Connections
Cross-Stage-Partial-connections
Cross mini- Batch Normalization
Self-adversrial-training
Mish activation
Mosaic data augmentation
DropBlock regularization
CloU loss

AP:代表的是精度 FPS:代表的是检测速度 YOLOV4的精度比YOLOV3提高了很多

Input:图像或者是经过处理的图像 BackBone:特征提取网络 Neek:FPN(yolov3)、PANet(yolov4)

三、Bag of freebies

改变培训策略,或者只会增加培训成本的方法,对测试不影响

数据扩充:

1、光度畸变:调整图像的亮度、对比度、色调、饱和度和噪声
2、几何畸变:加入随机缩放、剪切、翻转和反旋转

模拟对象遮挡:

1、	random erase, CutOut :可以随机的选择图像中的矩形区域,并且填充一个随机的或者是互补的零值
2、	hide-and-seek、grid mask:随机的或者是均匀的选择图像中的多个矩形区域,并将其全部替换成0 

feature map: (在特征图上做增强) DropOut/DropConnect和DropBlock

结合多幅图像进行数据扩充:

MixUP、 CutMix Style Transfer GAN

CutMix (Mosaic data augmentation)

解决类别不平衡:

hard negative example mining (只适用两阶段) gnline hard example mining (只适用两阶段) focal loss

label smoothing

bbox:

1、	loU_ loss
2、	GloU_ loss
3、DIoU_ loss
4、CIoU_ loss(yolov4采用的)

Yolov4-use:

1、CutMix and Mosaic data augmentation. 
2、DropBlock regularization. 
3、Class label smoothing
4、CloU-loss. 
5、CmBN
6、Self-Adversarial Training
7、Eliminate grid sensitivity
8、Using multiple anchors for a single ground truth
9、Cosine annealing scheduler
10、Optimal hyperparameters(通过遗传算法找到最优的参数)
11、Random training shapes。

四、Bag of specials

只会增加少量推理成本单却能显著提高对象检测精度的plugin moduled 和 post-processing methods

1、 enhance receptive field(扩充接受阈): SPP, ASPP, RFB

2、 attention module:

1、	Squeeze-and-Excitation (SE):可以改善resnet50在分类任务上提高1%精度,但是会增加GPU推理时间10%。
2、	Spatial Attention Module (SAM):可以改善resnet50在分类任务上提高0.5%精度,并且不增加GPU推理时间。(yolov4采用)

3、feature integration:(特征集成)

早期使用skip connection、hyper-column。 随着FPN等多尺度方法的流行,提出了许多融合不同特征金字塔的轻量级模型。SFAM、 ASFF、 BiFPN。SFAM的主要思想是利用SE模块对多尺度拼接的特征图进行信道级配重权。ASFF使用softmax作为点向水平重加权,然后添加不同尺度的特征映射。BiFPN提出了多输入加权剩余连接来执行按比例加权的水平重加权,然后加入不同比例的特征映射。

4、activation function:

1、ReLU解决了tanh和sigmoid的梯度消失问题。
2、LReLU,PReLU, ReLU6, SELU, Swish ,hard-Swish ,Mish 其中Swish和Mish都是连续可微的函数。

5、post-processing method:

1、Nms: c*p
2、soft-nms:解决对象的遮挡问题
3、DIoU nms:将中心点分布信息添加到BBox筛选过程中

YOLOv4 - use:

1、Mish activation
2、CSP
3、MiWRC(简单的理解就是残差连接)
4、SPP-block.
5、SAM
6、PAN
7、DIoU-NMS

五、Selection of architecture (网络结构的选择)

在ILSVRC2012XImageNet)数据集上的分类任务,CSPResNext50要比CSPDarknet53好得多。然而,在COCO数据集. 上的检测任务,CSPDarknet53比CSPResNext50更好。 CSP是一种网络结构,可以移植在各种网络上 backbone: CSPDarknet53 additional module: SPP neck: PANet head: YOLOv3 (anchor based)

六、Additional improvements

为了使检测器更适合于单GPU.上的训练,做了如下补充设计和改进: 1、 引入了一种新的数据增强方法Mosaic和自对抗训练(SAT) 2、在应用遗传算法的同时选择最优超参数 3、修改了一些现有的方法,如: SAM, PAN, CmBN

七、细节

1、 Mosaic data augmentation(马赛克数据增强)

对于Mixup可以这样理解: 在COCO数据集上,总共有80个类别,如果有一个物体,那么这个类别就制1, 其他部位全部制0.但是对于这个Mixup,在猫上和狗上类别分别制0.5,其他部位全部制0. CutOut:遮挡 CutMix:狗的面积占百分之六十,所以狗的标签概率是0.6,猫的面积占了百分之四十,所以猫的标签概率是0.4.另外78个类别是0.

马赛克数据增强:每张图片做四个类别,每个类别根据图像所占的面积大小进行分配标签概率

2、 DropBlock regularization

Dropout:(b)图中的“x”,代表的是扔掉的像素,就是没有激活的像素,但是网络还是会从dropout掉的激活单元附近学习到同样的信息的

Dropblock:如(c)图,把整块信息dropout掉,就不能学习到这片区域的信息了,可能学到边缘的信息。通过dropout掉一部分相邻的整片的区域(比如头和脚),网络就会去注重学习狗的别的部位的特征,来实现正确分类,从而表现出更好的泛化。

3、 Class label smoothing

让标签变得平滑一点,提升精度,更好的训练模型

[0, 0, 1]   —>  [0.01, 0.01, 0.98]

公式:[…]·(1-a) + a/n·[1,1…] 一般的时候, a设置为0.05 ,n是类别数

4、 CIou-Loss

当真实框和预测框没有交集的时候,也就是如下图:

Liou的值=1,是常数,所以常数的导数为0,所以梯度消失。为了解决梯度消失的问题,

引入了GIou-Loss,相当于加入了一个惩罚项

Diou:加入了两个框的中心点位置的约束,c是对角线的长度,分子是两个中心点的平方

Ciou:是在Diou的基础上乘上了α*v,效果有时候和Diou差不多

v:是用来度量长宽比的相似性的 α:权重函数

5、 DIou-soft NMS

M是置信度最高的框的四个坐标 ,Bi是其他的框 在原始的NMS中,IoU度量被用来抑制冗余检测盒,其中重叠区域是唯一的因素, 在有遮挡的情况下常常产生错误的抑制。DIoU-NMS 不仅考虑了检测区域的重叠,而且还考虑了检测区域间的中心点距离。

6、 CmBN

一般的时候,当这个batchsize比较小的时候,我们的精度是会降低的,训练的时候,精度越来越好,CBN就是在我们batchsize比较小的时候,达到比较高的精度 作者这样做的原因就是,为了使检测器更加的适合于单GPU上训练

7、 Self-Adversarial Training(自对抗训练)

就是把我们的对抗样本训练进去,相当于在做数据增强 对抗样本的定义:以图像样本为例,在原样本上加入一些轻微的扰动,使得在人眼分辨不出差别的情况下,诱导模型进行错误分类。

8、 Elminate grid sensitivity(网格消除敏感)

通过将sigmoid乘以一个超过1.0的因子来解决这个问题

9、 Cosine annealing scheduler (模拟余弦退火)

针对学习率的,改变学习率的一种方式

10、 Using multiple anchors for a single ground truth

11、 Random training shapes (随机多尺度的训练)

12、 Mish activation

公式:

Mish=x * tanh(ln(1+e^x))

理论上对负值的轻微允许允许更好的梯度流,而不是像ReLU中那样的硬零边界。 平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化。

13、 CSP

CSPNet可以大大减少计算量,提高推理速度和准确性

14、 SPP

不管输入尺寸是怎么样的,SPP层可以产生固定大小的输出,用于多尺度的训练

15、 SAM-block

不仅在通道上加了注意力机制,在空间上也加了注意力机制

16、 PAN

PAN基于FPN和Mask RCNN模型之上提出了三点创新: 1、PANet改进了主干网络结构,加强了特征金字塔的结构,缩短了高低层特征融合的路径 2、提出了更灵活的RoI池化。之前FPN的RoI池化只从高层特征取值,现在则在各个尺度上的特征里操作; 3、预测mask的时候使用一个额外的fc支路来辅助全卷积分割支路的结果。 PANet在COCO 17实例分割竞赛中取得了第一名的成绩,在检测任务中取得了第二的成绩。

好了上面就是对YOLOv4的一些新的改进的解读,具体参考了b站的一位小伙伴,后面我将继续写下yolov4的代码具体实现。。。真的好难,加油!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 笔记分享 : 目标检测与识别算法之一 YOLO v4 精华版

    哈喽,大家好,今天我们一起学习一下CV(Computer Vision)领域中,最牛目标检测与识别算法之一:YOLO_v4论文中的精髓部分,论文名称:《YOLO...

    唐国梁Tommy
  • 全面解析YOLO V4网络结构

    作者|周威,https://zhuanlan.zhihu.com/p/150127712

    AI算法修炼营
  • YOLOv4损失函数全面解析

    来源|周威@知乎,https://zhuanlan.zhihu.com/p/159209199

    AI算法修炼营
  • YOLOv4损失函数全面解析

    转载于:周威@知乎,https://zhuanlan.zhihu.com/p/159209199

    计算机视觉联盟
  • YOLO 系目标检测算法家族全景图!

    YOLO目标检测算法诞生于2015年6月,从出生的那一天起就是“高精度、高效率、高实用性”目标检测算法的代名词。

    CV君
  • YOLO项目复活!大神接过衣钵,YOLO之父隐退2月后,v4版正式发布,性能大幅提升

    另一位曾经参与YOLO项目维护的大神Alexey Bochkovskiy,在arXiv上提交了YOLO v4,而且这篇论文已经被拉入原来YOLO之父建立的项目主...

    量子位
  • YOLO v4:物体检测的最佳速度和精度

    您只需看一次(YOLO)是快速、准确的单阶段目标检测器。最近发布的YOLO v4与其他目标检测器相比,显示出非常好的结果。

    小白学视觉
  • Jetson NANO 之 Yolo V4初体验

    git clone https://github.com/AlexeyAB/darknet.git

    GPUS Lady
  • YOLO v4它来了:接棒者出现,速度效果双提升

    两个月前,YOLO 之父 Joseph Redmon 表示,由于无法忍受自己工作所带来的的负面影响,决定退出计算机视觉领域。此事引发了极大的热议,其中一个悬念就...

    机器之心
  • 目标检测系列之五(YOLO V4)

    论文题目《YOLOv4: Optimal Speed and Accuracy of Object Detection》 论文地址:https://arxiv....

    Minerva
  • 【论文解读】​YOLOX: Exceeding YOLO Series in 2021

    YOLOv3 baseline 以Darknet53作为Baseline,给大家介绍如何一步一步过渡到现在的YOLOX-DarkNet53。YOLOv3是以D...

    磐创AI
  • 本周AI热点回顾:文章自动变视频、无人出租今起免费坐、YOLO v4复活

    两个月前,YOLO 之父 Joseph Redmon 表示,由于无法忍受自己工作所带来的的负面影响,决定退出计算机视觉领域。此事引发了极大的热议,当我们都以为再...

    用户1386409
  • YOLO之父宣布退出CV界,坦言无法忽视自己工作带来的负面影响

    「YOLO 之父」Joseph Redmon 宣布退出计算机视觉领域了!这个刚刚出现的消息着实让人工智能界感到惊讶。

    机器之心
  • 7 Papers & Radios | YOLO v4它来了;北航MangaGAN生成久保带人Style漫画形象

    论文 1:Unpaired Photo-to-manga Translation Based on The Methodology of Manga Drawi...

    机器之心
  • 经典卷积神经网络(CNN)结构可视化工具

    本文将介绍一种在线网络工具,可用于可视化各种经典的卷积神经网络结构。学习Caffe的同学,一定很熟悉Netscope。它就是用来可视化Caffe的prototx...

    Amusi
  • YOLOv5是真的吗?并不比YOLOv4强,不配这个名字

    是不是超厉害?这不正表明我们的研究和科技发展速度超快吗?毕竟这个广受欢迎的目标检测框架的新一代 v4 版本刚发布不久,下一代 v5 版本就横空出世了。YOLOv...

    机器之心
  • 目标检测实战:4种YOLO目标检测的C++和Python两种版本实现

    本文作者使用C++编写一套基于OpenCV的YOLO目标检测,包含了经典的YOLOv3,YOLOv4,Yolo-Fastest和YOLObile这4种YOLO目...

    Color Space
  • 用老旧骁龙855玩转「马保国」实时动作检测!CoCoPIE获红杉种子领投

    即便是老旧(狗头)的高通骁龙855平台,在物体检测上也能达到19FPS,比YOLO-v3的mAP精度更高。

    新智元
  • 读论文系列:Object Detection CVPR2016 YOLO

    CVPR2016: You Only Look Once:Unified, Real-Time Object Detection 转载请注明作者:梦里茶 ? ...

    梦里茶

扫码关注云+社区

领取腾讯云代金券