YOLOV5的架构和工作流程

1.YOLOv5的网络结构图

在这里插入图片描述

2.YOLOv5的网络结构

2.1输入端

输入图像,进行图像的预处理,在预处理阶段会进行Mocaic数据增强/自适应锚框计算/自适应图片缩放等处理。

  1. Mocaic数据增强 :利用随机缩放、随机裁剪、随机排布的方式进行拼接;
    在这里插入图片描述

  2. 自适应锚框计算:针对不同的数据集,都会有初始设定长宽的锚框。在网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数。

  3. 自适应图片缩放 :在常用的目标检测算法中,不同的图片长宽都不相同,因此常用的方式是将原始图片统一缩放到一个标准尺寸,再送入检测网络中。

2.2主干网络(Backbone Network)

提取一些通用的特征表示 。其中主要包括CSP结构+Focus结构。

  1. 特征提取 :骨干网络是用于提取图像特征的主要组件。它接受输入图像并通过一系列卷积和池化层提取特征。这些特征从原始像素级别逐渐升级,捕获了图像中的结构、纹理和上下文信息。

  2. 多尺度特征:骨干网络通常包括多个分支,每个分支负责提取不同尺度的特征。这是为了捕获图像中不同尺度的物体和结构。小物体通常需要更高分辨率的特征来识别,而大物体可以使用更低分辨率的特征。

  3. 信息融合:一些现代的骨干网络使用跳跃连接(Skip Connections)和特征金字塔(Feature Pyramid)等技巧,以帮助有效融合不同尺度的特征。这有助于提高模型对不同尺度信息的感知。

  4. 预训练模型:骨干网络通常在大规模图像数据上进行预训练。这使它们能够捕获通用的图像特征,然后可以在特定任务上进行微调。

2.2.1CSP结构

输入特征图分成两部分,一部分经过一个小的卷积网络(称为子网络)进行处理,另一部分则直接进行下一层的处理。然后将两部分特征图拼接起来,作为下一层的输入。
具体来说,CSP结构包括以下几个步骤:

将输入特征图分成两部分,一部分进行子网络的处理,另一部分直接进行下一层的处理。

在子网络中,先使用一个卷积层将输入特征图进行压缩,然后进行一系列卷积操作,最后再使用一个卷积层进行扩张。这样可以提取出相对较少的高层次特征。

在下一层中,将经过子网络处理的特征图与直接处理的特征图进行拼接,然后再进行一系列卷积操作。这样可以将低层次的细节特征和高层次的抽象特征结合起来,提高特征提取的效率。

2.2.2Focus结构

用于特征提取的卷积神经网络层,用于将输入特征图中的信息进行压缩和组合,从而提取出更高层次的特征表示。对输入特征图进行行下采样,减少计算量和参数量。

2.3颈部网络(Neck Network)

进一步提升特征的多样性。其中主要是SPP结构+PAN结构

Neck网络结构具体说明
SPP(Spatial Pyramid Pooling)结构一种金字塔池化结构,可以对不同大小的特征图进行池化,从而增强模型对不同尺度目标的感知能力。具体地,SPP结构将输入特征图分别进行1x1、2x2和3x3的池化操作,并将不同尺度的池化结果拼接起来,作为SPP结构的输出。
PAN(Path Aggregation Network)结构一种多尺度特征融合结构,它可以将不同层次的特征进行有效融合,并且避免信息丢失。具体地,PAN结构首先通过上采样将较高层次的特征图尺度与较低层次的特征图尺度对齐,然后通过特征融合模块将它们进行融合,并最终输出融合后的特征图。
  1. 特征增强:颈部网络位于骨干网络和Head输出端之间,用于进一步处理特征。它的主要目标是增强骨干网络提取的特征,以提高目标检测性能。

  2. 多尺度特征融合:颈部网络通常包括多层卷积层和上采样层,用于将不同尺度的特征图进行融合。这有助于将不同尺度的信息结合在一起,使模型能够更好地检测不同大小的目标。

  3. 减小特征图的分辨率:有时,颈部网络还可以减小特征图的分辨率,以加速计算并提高效率。这对于实时目标检测任务非常重要。

骨干网络和基准网络的区别:骨干网络以提取原始图像的特征,包括多尺度的信息;颈部网络负责进一步处理和融合这些特征,提高性能。

2.4Head输出端

生成目标框,模型执行非极大值抑制去除重叠的目标框,保留最可信的目标框,完成目标检测结果的输出 ,采用GIoU_Loss做Bounding box的损失函数。

3.YOLOv5目标检测的执行流程

1.输入图像首先通过骨干网络,以提取原始图像的特征,包括多尺度的信息;然后通过颈部网络,负责进一步处理和融合这些特征,提高性能。特征提取过程中通道数是不断增加的,尺寸是不断减小的。

2.将特征图输入到head输出端当中,进行自上而下的融合,再进行自下而上的融合,然后会取几个特征层的图片进行检测。会设置不同尺寸的anchor来分别预测不同尺寸的目标。

目标检测通常是在模型的输出端(即检测头)完成的。下述过程即是在输出端所完成的操作。

3.检测:生成目标框,类别概率和中心点,确定图像中的目标位置和类别。

4.后处理:模型执行非极大值抑制去除重叠的目标框,保留最可信的目标框。

5.输出结果:输出检测到的目标的位置和类别。

  • 5
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLOv5工作流程可以简单地分为两个主要部分:目标检测和目标分类。 首先,YOLOv5使用一种称为“锚框”的技术来预测目标的位置。锚框是一组预定义的矩形框,每个框都有一个固定的宽度和高度,但可以在图像中移动和缩放。YOLOv5使用锚框来预测每个目标的位置,每个锚框都与一个特定的类别相关联。 然后,YOLOv5使用卷积神经网络来提取特征。这些特征被送入一个全连接层,来预测每个锚框是否包含对象,以及属于哪个类别。最后,使用非极大值抑制来合并重叠的锚框,以最终确定每个对象的位置和类别。 具体地说,YOLOv5的数学推导可以分为以下步骤: 1. 首先,使用卷积神经网络提取图像的特征。其中,YOLOv5使用了一种称为CSPNet的网络架构,该架构包括一些卷积层、池化层和残差块,以及一些跨层连接来提高特征的表达能力。 2. 然后,将这些特征发送到一个称为“头部”的模块,以进行目标检测和分类。YOLOv5的头部包括三个卷积层和一个全连接层。 3. 在头部的第一个卷积层中,YOLOv5使用1x1卷积来减少特征图的通道数,并且使用3x3卷积来增加特征图的分辨率。 4. 接下来,在头部的第二个卷积层中,YOLOv5使用3x3卷积来进一步提取特征,并且使用2x2的最大池化层来减小特征图的分辨率。 5. 最后,在头部的第三个卷积层中,YOLOv5使用1x1卷积来进一步减小特征图的通道数,并且使用3x3卷积来进一步提取特征。 6. 然后,使用全连接层来预测每个锚框是否包含对象,以及属于哪个类别。这个全连接层由一个1x1卷积层和一个Flatten层组成,其中1x1卷积层用于将特征图转换为一维向量,Flatten层用于将这个向量展平。 7. 最后,使用非极大值抑制来合并重叠的锚框,以最终确定每个对象的位置和类别。这个步骤涉及到一些数学计算,包括计算锚框和对象之间的IoU(交并比),以及使用阈值来过滤掉低置信度的检测结果。 总的来说,YOLOv5的数学推导涉及到一系列卷积、池化、全连接和非极大值抑制等计算步骤,其中每个步骤都需要一定的数学知识和技能才能理解和实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值