YOLOv5结构记录(持续更新中)

目录

YOLOv5的详细结构图

YOLOv5中的Bottleneck

YOLOv5的 6.0版本相较于5.0版本的改动:

FPN和PAN结构


YOLOv5的结构图

YOLOv5中的Bottleneck

 BottleNeck1:先是1x1的卷积层(conv+batch_norm+silu),然后再是3x3的卷积层,最后通过残差结构与初始输入相加。

BottleNeck2:先是1x1的卷积层(conv+batch_norm+silu),然后再是3x3的卷积层,没有加入残差结构。

 BottleNeck1用在主干网络中, BottleNeck2用在neck中。

YOLOv5的 6.0版本相较于5.0版本的改动

Backbone部分有一个很小改动,把网络的第一层(原来是Focus模块)换成了一个conv卷积层

Neck部分的变化还是相对较大的,首先是将SPP(Spatial Pyramid Pooling)换成成了SPPF,两者的作用是一样的,但后者效率更高。

SPP结构又被称为空间金字塔池化,能将任意大小的特征图转换成固定大小的特征向量。结构如下图所示,是将输入并行通过多个不同大小的MaxPool,通过三种尺度的池化,将任意大小的特征图固定为相同长度的特征向量,传输给全连接层。因为卷积层后面的全连接层的结构是固定的。但在现实中,我们的输入的图像尺寸总是不能满足输入时要求的大小,然而通常的手法就是裁剪(crop)和拉伸(warp),但这样做总归是不好的,其扭曲了原始的特征。而SPP层通过将候选区的特征图划分为多个不同尺寸的网格,然后对每个网格内都做最大池化,这样依旧可以让后面的全连接层得到固定的输入。

SPPF结构是将输入串行通过多个5x5大小的MaxPool层,这里需要注意的是串行两个5x5大小的MaxPool层是和一个9x9大小的MaxPool层计算结果是一样的,串行三个5x5大小的MaxPool层是和一个13x13大小的MaxPool层计算结果是一样的。SPPF把池化后得到的特征一部分拿去concat一部分继续池化,应该是想通过不同层次池化得到不同层次的特征,效果好一些。

FPN和PAN结构

FPN:Feature Pyramid Network  特征金字塔网络

PAN:Path Aggregation Network  路径聚合网络

上采样是从下边往上采,下采样是从上边往下采

如下图所示,FPN是自顶向下的,将高层的特征信息通过上采样的方式进行传递融合,得到进行预测的特征图。

PAN就是在FPN的后面添加一个自下向上的金字塔,对FPN进行补充,如下图所示,其中包含两个PAN结构,这样结合操作,将低层的定位特征传递上去。
FPN层自顶向下传达强语义特征,而特征金字塔则自底向上传达强定位特征。

 

(1)先复制特征金字塔中最底下的那层(①),变成新特征金字塔的最底层。

(2)将新特征金字塔的最底层来一个下采样操作,然后原特征金字塔的倒数第二层进行一个3 * 3卷积,步幅为2;然后与下采样后的最底层进行一个横向连接,两者相加。最后再来一个3 * 3卷积来融合他们的特征,进而得到新特征金字塔的中间层

(3)新特征金字塔的顶层的操作与中间层步骤一致。
 

 

 

reference

YOLOv5网络详解_太阳花的小绿豆的博客-CSDN博客_yolov5网络结构详解

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值