YOLO部分网络结构详解

Focus层

操作类似于空洞卷积,将w-h平面上的信息转换到通道维度,再通过卷积的方式提取不同特征。采用Focus层的目的应该是下采样(下采样在神经网络中主要是为了减少参数量达到降维的作用,同时还能增加局部感受野),但是相比于使用使用步长为2的卷积层或者池化层,Focus层能够有效减少下采样带来的信息损失,同时减少计算量

 

空洞卷积

空洞卷积在标准卷积中注入了空洞,增加了感受野,空洞卷积比普通卷积多了个超参数称为dilation rate,指的是kernel的间隔数量。普通卷积的dilation rate为1。

普通卷积

 

空洞卷积

 

空洞卷积在不做池化损失信息的情况下,加大了感受野,使得内部数据结构得到保留。

 

SPP结构

 1.为什么要引入SPP?

因为卷积层和池化层是滑动窗操作,可以接受任意大小的图片输入,而全连接层是向量与矩阵乘积操作,需要固定大小的输入(参数的个数固定),因此需要固定全连接层的前一层的尺寸,若无SPP则需要固定输入图片的大小来保证全连接层的参数固定,为了适应输入任意尺寸的图片所以引入SPP。

2.SPP的构成

SPP层分为1x1,2x2,4x4三个pooling结构,对每个输入都作max pooling操作

3.SPP说明

SPP是接在最后一层卷积层之后,替换原来的池化层,以便输入给全连接层的特征个数保持固定。SPP是对最后一层卷积层的特征图做不同的分割操作。

SPPF结构

 SPPF结构说明

SPPF是在SPP结构基础之上稍加改进的,它每个池化层都对上一个操作完成的max pooling进行计算,所以它的计算量相比较与SPP小了很多,模型速度得到提升。

C3结构

 

 在新版yolov5中,作者将BottleneckCSP(瓶颈层)模块转变为了C3模块,其结构作用基本相同均为CSP架构。 C3相对于BottleneckCSP模块不同的是,经历过残差输出后的Conv模块被去掉了,concat后的标准卷积模块中的激活函数也由LeakyRelu变为了SiLU。

SiLU是Sigmoid和ReLU的改进版。SiLU具备无上界有下界、平滑、非单调的特性。SiLU在深层模型上的效果优于 ReLU。可以看做是平滑的ReLU激活函数。

 Bottleneck模块

一个1×1的卷积后接一个3×3的卷积,其中1×1的卷积将通道数减半,3×3的卷积将通道数加倍,然后加上输入(注意这里是add操作,不是concat操作)。所以经过Bottleneck模块之后输入大小是不会发生改变的。

BottleneckCSP模块 

CSP将输入数据分为两个部分,一个部分正常通过网络,另一个直接concat到block的输出

C2f结构

C2f模块参考了C3模块以及ELAN的思想进行的设计,让YOLOv8可以在保证轻量化的同时获得更加丰富的梯度流信息。

 

ELAN

ELAN模块是一个高效的网络结构,它通过控制最短和最长的梯度路径,使网络能够学习到更多的特征,并且具有更强的鲁棒性。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值