Yolo v4的学习

本文详细介绍了YOLOV4的网络结构,包括CSPDarknet53作为BackBone,SPP与PAN组成Neck部分。CSPDarknet53利用Mish激活函数与CrossStagePartial结构减少参数,提升训练效率。SPP增加网络感受野,PAN则通过路径增强融合不同尺度特征。总结指出,模型选择要考虑任务需求,CSPDarknet53在目标检测上表现出色。
摘要由CSDN通过智能技术生成

前言

route层是yolo中提出的一个层级概念,在一些文章中也叫做路由层。它的作用是在当前层引出之前卷积所得到的特征层

一、 YOLO V4的网络结构

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

- 主要有以下三部分组成

BackBone:CSPDarknet53
Neck:SPP+PAN
HEAD:YOLO HEAD

二、分析各部分

1.CSPDarknet53

代码如下(示例):

def darknet_body(x):
    '''Darknent body having 52 Convolution2D layers'''
    x = DarknetConv2D_BN_Mish(32, (3,3))(x)
    x = resblock_body(x, 64, 1, False)
    x = resblock_body(x, 128, 2)
    x = resblock_body(x, 256, 8)
    x = resblock_body(x, 512, 8)
    x = resblock_body(x, 1024, 4)
    return x

1.1 Mish激活函数

Relu可以实现单侧抑制(即把一部分神经元置0),能够稀疏模型, Sigmoid 型活tanh激活函数会导致一个非稀疏的神经网络,而Relu大约 50% 的神经元会处于激活状态,具有很好的稀疏性。
在这里插入图片描述
在这里插入图片描述
softplus和ReLU的曲线具有相似性,但是其比ReLU更为平滑。

在这里插入图片描述
首先其和ReLU一样,都是无正向边界的,可以避免封顶而导致对称梯度饱和;其次Mish函数是处处光滑的,光滑可以允许更好的信息深入神经网络,则准确性和泛化更好。并且在绝对值较小的负值区域允许一些负值

两者对比 Mish的梯度更平滑
在这里插入图片描述

1.2 Darknet53(yolo v3使用)

YOLO v3 算法使用的骨干网络便是Darknet53。
在这里插入图片描述
×8表示该模块重复8次
前52层用于特征提取,最后一层进行最终输出。

1.3 CSPDarknet53网络结构图(YOLO V4使用)

在这里插入图片描述
注意:YOLO V4使用时删去了最后的池化层、全连接层以及Softmax层

在每组Residual block(残差网络)加上一个Cross Stage Partial结构。并且,CSP-DarkNet中也取消了Bottleneck的结构,减少了参数使其更容易训练。

CSP输入的时候通道是什么比例划分的?
在这里插入图片描述
直接用两路的1x1卷积将输入特征进行变换。参考文章

三.Neck:SPP+PAN

参考文章
目标检测模型的Neck部分主要用来融合不同尺寸特征图的特征信息

3.1 SPP是Spatial pyramid pooling的缩写,即空间金字塔池化。

(SPP网络用在YOLOv4中的目的是增加网络的感受野。)

单纯看这个名字实在是不能理解,其实就是将SPM中的Matching前的处理过程通过池化层Pooling来解决

在这里插入图片描述
具体操作方法就是将backbone输出的feature map分别进行尺度为5×5,9×9和13×13的最大池化,然后使用route层将未池化和3种池化结果混合。

3.2 PAN是Path Aggregation Network的缩写,就是路径增强

这个是yolov3的网络结构图在这里插入图片描述
输入的尺寸是416x416,预测的三个特征层大小分别是52,26,13。
YOLOv3是先处理尺度最大的feature map;然后使用route层获取一个倒数第二次downsample的feature map,接着upsample到中尺度;最后在此基础上使用route层获取一个倒数第三次downsample的feature map,接着upsample到小尺度。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210328133215244.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MTAxNTA0Nw==,size_16,color_FFFFFF,t_70
PAN(Path Aggregation Network,上图的结构b。与图a 相比在UpSample之后又加了DownSample的操作)
图中(a)部分为常规的FPN,加入一条top-down的旁路连接,能给feature增加high-level的语义性有利于分类。由于low-level的feature是很利于定位,虽然FPN中P5也间接得有了low-level的特征,但是信息流动路线太长了,如红色虚线所示,YOLOv4标准模型达到六七十层卷积,通过图中(b)的Bottom-up Path Augmentation,可以使得最底层的特征流动到N2-N5只需要经过很少的层如绿色需要所示(仅仅有几个降维的卷积)。参考文章

在这里插入图片描述
即先将上述的y19进行上采样至大小38x38,然后再和CSPDarknet53的204层输出进行堆叠,最后通过一系列DarknetConv2D_BN_Leaky模块,获得变量y38
在这里插入图片描述

四,总结

1.作者没有采用再imagenet上跑分更高的此商品resnext50,选择cspdarknet53.
因为作者结合在目标检测上的精度上分析,cspdarknet53.效果更好。所以说在图像分类任务表现好的模型,未必适合用于目标检测。

** 2.PAN自底向上 的体现 就是y76下采样变成y38吧**

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值