YoloV5网络结构

        YOLOv5与历代YOLO算法相似,使用了网格的概念,将图像划分为多个网格,每个网格负责预测一个或多个物体,简单来说每个网格都可以产生预测框。网格可以产生预测框的原因也很简单。网格内存有几个(一般为三个)预测框的模板,也就是"anchor"每个anchor都有预设的宽高、坐标以及置信度。置信度表示网格内存在物体的概率。在训练过程中,真实的人工标注框的中点落在哪个在网格内,哪个网格内的anchor就会朝着这个真实框疯狂“生长”或者“萎缩”,并将置信度设为1因为其存在物体,表示anchor所在的网格有物体,其他没有预测框的anchor置信度则为0。如果把anchor与真实框之间宽高的差、坐标的差看成是损失,把二元交叉熵作为置信度的损失,那么目标检测问题就会大大简化为简单的回归预测和分类问题。 

        

yolov5的主要结构为上图所示

 组成部分

1.backbone模块(背部模块)

        该模块的主要作用就是进行特征的提取,将原始的输入图像转化为多层特征图,以便后续的目标检测任务使用。在Yolov5中,使用的是CSPDarknet53或ResNet骨干网络,这两个网络都是相对轻量级的,能够在保证较高检测精度的同时,尽可能地减少计算量和内存占用。

其主要分为两个部分,第一个部分为force模块,用来对input的图像进行切片,以下举一个例子:Focus 对 608 ×608 ×3 的图像进行切片,得到 304 ×304 ×12 的特征图。然后,经过 32个卷积核的卷积,得到 304 ×304 ×32的特征图。

force切片实例

         第二个部分为csp模块(跨阶段布局网络),主要从网络结构设计的角度来解决以往工作在推理过程中需要很大计算量的问题,其能够在降低20%计算量的情况下保持甚至提高CNN的能力CSPNet通过将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确率。需要指出的是CSPNet是一种处理思想,它可以与ResNet、DenseNet、HarNet等分类网络和YOLO等目标检测网络结合。其主要思想就是将初始图分成两个部分,一个部分不进行操作,另一个部分进行卷积等操作,然后将得到的特征图进行CON融合,这样做的目的就是随着卷积深度的加深,我们没办法取控制深层次卷积的参数,因此,当这个卷积层不能给我们带来很好的效果时,我们就会采用这种类似残差的结构去直接使用另一部分也就是没有进行卷积的部分进行之后的操作,方法也很简单就是将效果不好的部分设置为0,这样我们在计算时就不再使用它。

         SPP模块(空间金字塔池化),是为了确保输入预定义全连接层的feature vector(特征向量)是固定尺寸。这样就在图片的不同尺度下取到了最大的代表特征值,并concat融合SPP的工作原理很简单,对每个特征图,使用三种不同尺寸的池化核进行最大池化,分别得到预设的特征图尺寸,最后将所有特征图展开为特征向量并融合。

2.neck模块(颈部模块)

        该模块主要作用就是用来进行特征融合,将backbone传输过来的特征图进行不同尺度的特征融合,主要采用的是FPN和PAN的结构,特征金字塔的深层特征包含有丰富的语义信息(利于分类),但分辨率低,很难准确地保存物体的位置信息;浅层特征虽然语义信息较少,但分辨率高,包含准确的物体位置信息(利于检测和分割)。FPN就是将低层特征和高层特征融合起来,得到一个识别和定位都准确的目标检测结构,上采样就是扩大图片的感受野,放大图像,主要采用的是插值的方法,即原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。下采样就是缩小图像,进一步提取图像特征。

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值