yolov4网络结构_目标检测YOLO V4

一、YOLO-v4主要做了什么?

通俗的讲,就是说这个YOLO-v4算法是在原有YOLO目标检测架构的基础上,采用了近些年CNN领域中最优秀的优化策略,从数据处理、主干网络、网络训练、激活函数、损失函数等各个方面都有着不同程度的优化,虽没有理论上的创新,但是会受到许许多多的工程师的欢迎,各种优化算法的尝试。文章如同于目标检测的trick综述,效果达到了实现FPS与Precision平衡的目标检测 new baseline。

①论文主要有以下三点贡献:

  1. 开发了一个高效而强大的模型,使得任何人都可以使用一张1080Ti或者2080Ti GPU去训练一个超级快速和精确的目标检测器。

  2. 验证了一系列state-of-the-art的目标检测器训练方法的影响。

  3. 修改了state-of-the-art方法,使得他们在使用单个GPU进行训练时更加有效和适配,包括CBN,PAN,SAM等。

②作者把训练的方法分成了两类:

  1. Bag of freebies:只改变训练策略或者只增加训练成本,比如数据增强。

  2. Bag of specials:插件模块和后处理方法,它们仅仅增加一点推理成本,但是可以极大地提升目标检测的精度。

二、网络结构

  1. 上图总结了近些年的目标检测检测器的优化改进手段的方向结构组成,同时在下面对几个重要改进的部分列出了改进的方法,如下:[3]

e3208bb2ba0194a54bcfdb984937a468.png

目前主流two-stage检测器的主要架构

  • Input部分:Image,Patches,Images Pyramid(图像金字塔)

  • Backbone部分:VGG16,ResNet-50,SpineNet,EfficientNet-B0 / B7,CSPResNeXt50,CSPDarknet53

  • neck部分:

    • Additional blocks:SPP,ASPP,RFB,SAM

    • Path-aggregation blocks:FPN,PAN,NAS-FPN,Fully-connected FPN,BiFPN,ASFF,SFAM

  • Heads部分:

    • Faster R-CNN,R-FCN,Mask R-CNN(基于anchor)

    • RepPoints(无anchor)

    • RPN,SSD,YOLO,RetinaNet (基于anchor)

    • CornerNet,CenterNet,MatrixNet,FCOS(无anchor)

    • Dense Predictions(one-stage):

    • Sparse Predictions(two-stages):

2. 下图为 yolov4 网络结构的采用的算法,其中保留了yolov3的head部分,修改了主干网络为CSPDarknet53,同时采用了SPP(空间金字塔池化)的思想来扩大感受野,PANet作为neck部分。

9247b9345ef1656422e2d7858614e74c.png

Yolo-v4网络架构图

3. 下图为yolov4在技术处理的思维导图:

166e036c44aad1bc855bf60182234c64.png

YOLO-v4的backbone与detector的主要技术实现

三、算法知识点相关释义

  1. BoF(bag of freebies)

在文中是指那些能够提高精度而不增加推断时间的技术。

  • 比如数据增广的方法:图像几何变换、Cutout、grid mask等,

  • 网络正则化的方法:Dropout、Dropblock等,

  • 类别不平衡的处理方法,

  • 难例挖掘方法,

  • 损失函数的设计等,

2. BoS(bag of specials)

是指那些增加稍许推断代价,但可以提高模型精度的方法。

  • 比如增大模型感受野的SPP、ASPP、RFB等,

  • 引入注意力机制Squeeze-and-Excitation (SE) 、Spatial Attention Module (SAM)等 ,

  • 特征集成方法SFAM , ASFF , BiFPN等,

  • 改进的激活函数Swish、Mish等,

  • 或者是后处理方法如soft NMS、DIoU NMS等,

3.在目标检测训练中,通常对CNN的优化改进方法:

  • 激活函数:ReLU,leaky-ReLU,parameter-ReLU,ReLU6,SELU,Swish或Mish

  • bbox回归loss函数:MSE,IoU,GIoU,CIoU,DIoU

  • 数据增强:CutOut,MixUp,CutMix

  • 正则化方法:DropOut,DropPath,Spatial DropOut或DropBlock

  • 通过均值和方差对网络激活进行归一化:Batch Normalization (BN), Cross-GPU Batch Normalization (CGBN or SyncBN), Filter Response Normalization (FRN), orCross-Iteration Batch Normalization (CBN)

  • 跨连接:Residual connections, Weightedresidual connections, Multi-input weighted residualconnections, or Cross stage partial connections (CSP)

4.CSPDarknet53

由论文可知,CSPDarknet53包含29个卷积层,725*725的感受野,27.6M参数。

17b63add60961ec3014d9db54c32c50f.png

backbone对比

5.关于CmBN

BN是对当前mini-batch进行归一化。CBN是对当前以及当前往前数3个mini-batch的结果进行归一化,本文提出的CmBN则是仅仅在这个Batch中进行累积。在消融实验中,CmBN要比BN高出不到一个百分点。

b83b2c6bceee6be4118c85fe9d3ee1ff.png

CmBN

6.关于SAM

Attention机制中的CBAM, CBAM含有空间注意力机制和通道注意力机制,

SAM就是其中的空间注意力机制.

b8e00c535283b07977922fcb7e032756.png

SAM

7. PANet

PANet融合的时候使用的方法是Addition, 详解见:CVPR 2018 PANet

YOLOv4算法将融合的方法由加法改为乘法。

7e2865b4dfdde115342c7fa6c4661f9f.png

PANet

四、算法的实验效果

  1. 使用MS COCO数据集,在每一行不同的GPU上,使用不同的网络跟YOLOv4进行的对比结果:(横轴为FPS,纵轴为AP值)

cf6ae3338ce35370b50a712938ab24ea.png

2.因为不同的算法公布时可能在不同的GPU上进行测试,作者根据不同的GPU(Maxwell/Pascal/Volta)分别列出了YOLOv4与其他算法的更详细的比较,即Table 8、9、10,帧率大于等于30的用蓝底标出。

29a3c4c98de9faa9e72bb089b4ee3c69.png

图一

9ca288648673f540829c40c5fe64c166.png

图二

2d019d939fba817779caf17f4e36d753.png

图三

YOLOv4 算法在实时目标检测算法中精度最高,实现了精度和速度的最佳平衡。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:原理与源码解析》 【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来! 代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利器:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《Windows版YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《Windows版YOLOv4目标检测实战:训练自己的数据集》《Windows版YOLOv4-Tiny目标检测实战:训练自己的数据集》《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》《Windows版YOLOv4目标检测实战:中国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值