YOLO v5目标检测模型

目录

1  YOLO v5模型结构

2  YOLO v5训练相关设置

3  目标检测模型评估指标


1  YOLO v5模型结构

YOLO v5模型根据其深度、宽度的差异可以分为四个不同规模的模型,分别为YOLO v5nano、YOLO v5samll、YOLO v5middle以及YOLO v5large,鉴于本文后续研究主要在YOLO v5nano以及YOLO v5small(后续简写为YOLO v5n与YOLO v5s)上开展,现将YOLO v5s的模型结构绘制如图2.3中所示。

2.3  YOLO v5small结构示意图

结合图2.3可以看到,YOLO v5主要由三个大的结构组成,即骨干网络Backbone,Neck以及检测头Head部分。在Backbone中,主要是由CBR模块、CSP1模块以及SPPF模块组成。Backbone作为输入图片在检测网络中首先经过的阶段,其主要作用即提取图片中不同尺度下的特征,并作为输出提供给Neck部分。输入图片在预处理阶段被调整为像素大小为640×640的RGB三通道图像,在原YOLO v5网络中第一层为Focus层,即对输入为640×640×3的图片进行切片处理,输出为320×320×12的特征图,随后再进行后续模块的处理,在本研究中,为提升模型在GPU等硬件平台上的效率并便于后续部署,将该层替换为该模型中常见的CBR模块。CBR模块由卷积层、BN层以及ReLU激活函数层组成,为YOLO v5模型中最基础的模块。同样是为了便于在终端硬件上行的部署,已经原模型中SiLU激活函数全部替换为图2.3中的ReLU激活。CSP1模块的结构如图2.3右下角所示,其中包含了两个分支,即输入经过两个分支的处理后经Concat算子拼接后再经CBR模块处理。需要注意到,CSP1模块后缀的数值即表示在该模型的分支中出现残差块的数量,例如在YOLO v5s的Backbone中,CSP1模块中残差块的重复次数分别为1、2、3、1;残差块的结构如图2.3右上角所示,由两个CBR模块以及一个带有Shortcut的ADD操作构成,此处的带有Shortcut的ADD操作也被称为Skip-Connection操作,即完成残差模块中两个分支的相加运算。Backbone中还有一个SPPF模块,如图2.3右部所示,其由CBR模块以及三个串行的Maxpool最大池化组成,四路输出经Concat拼接,主要作用在于通过多次池化,完成对高层次语义特征的提取与融合。

观察图2.3中的Neck部分,可以显著地看到一个自上而下的通路与一个自下而上的通路,此即一个FPN+PAN的组合结构。其中FPN即特征金字塔网络(Feature Pyramid Network)[27],用来处理来自Backbone中多个尺度的输出,进而构建出高级语义特征信息,而PAN即通道聚合网络(Path Aggregation Network)[149],在FPN中传递的底层位置信息已经较为模糊的情况下,通过PAN的自底向上的结构,弥补并融合强定位信息,最终将输出用于Head的检测中。此外,在Neck阶段,还进行了两次上采样操作,在YOLO v5中均通过最简单的最近邻插值法来完成上采样,即均通过复制左上角的像素值来填充一个2×2窗口中的另外三个值,最终得到高、宽均扩展一倍的特征图。不同于Backbone中的CSP1模块,Neck阶段采用的是CSP2模块,如图2.3右下角所示,CSP2中将原CSP1中的残差块替换为两个连续的CBR模块,即没有了Skip-Connection操作。

在检测头Head中,其网络结构较为简单,仅含有三个并行的卷积层,当输入图片的大小被调整为640×640×3时,三个卷积层的输出分别为80×80×255、40×40×255以及20×20×255;其中80、40以及20均根据输入图片的像素大小而确定,分别下降8倍、16倍以及32倍;而其中的255则主要由四类信息决定,分别为锚框数量、数据集类目数目(所采用的MS-COCO数据集中共包含80个类别)、置信度以及边界框位置信息(边界框的中心点坐标以及宽、高值)。需要注意到,三个卷积层输出的特征图需要划分为与该特征图等尺寸的网格,例如20×20的特征图即划分为20×20个网格,每个网格对应到原输入图片中一个32×32的像素块。每个网格中会包含该尺度网格下对应的三个锚框的预测信息,综上可得等式255=3×(80+1+4) ,即每个预测框均含有85个相关信息。关于锚框的确定以及对检测头输出网格信息的处理将在下一节介绍。

2  YOLO v5训练相关设置

YOLO v5模型作为一种Anchor-based检测算法,其Anchor即锚框的尺寸设置对网络精度的提升极为关键。如上一节中所述,共有三个尺度的输出特征图,其中80×80的特征图中每个网格对应原图的像素块大小为8×8,包含的多为低层次信息,用于检测小目标,因此该尺度特征图对应的三个Anchor尺度均较小;而对于20×20的特征图,其对应到原图的像素块大小为32×32,可能包含了如结构、轮廓等高层次信息,适用于检测大目标;同理,40×40的特征图适用于检测中等大小的目标。基于上述原理,YOLO v5中利用聚类算法,在每次训练时都将根据所选数据集聚类得到9个不同的原始锚框比例,随后按照大小分别对应到三个尺度的输出特征图中。

训练时,将对输入网络的图片数据进行增强处理,主要包括三种,即缩放、色彩空间调整以及Mosaic(马赛克)增强。其中Mosaic增强主要是通过利用4张图片,进行随机裁剪与缩放,最终得到随机拼接而成的图片。Mosaic增强主要用来提高小目标的检测效果,在中,定义的小目标大小为低于32×32像素值的,中目标大小为低于96×96,高于32×32的,大目标为高于96×96的;通过利用Mosaic增强,随机增加了训练时的小目标数量,极大地缓解了MS-COCO数据集中小目标分布不均进而导致对小目标检测效果较差的问题。

YOLO v5在训练阶段的损失函数主要由三部分组成,分别为分类损失、回归损失以及置信度损失。其中分类损失与置信度损失均通过二元交叉熵函数计算(BCE With Logits Loss);回归损失则通过CIOU计算得到。IOU即交并比,是预测框与真实框交集与并集的比值,传统的IOU作损失函数主要存在两个问题,即当预测框与真实框完全无交集是,比值为0,但无法知道此时两框之间的距离,而当预测框完全位于真实框之中时,比值为固定值,此时同样无法知道预测框的具体位置,这两点都严重降低了目标检测的精度。鉴于此,此处采用了CIOU来计算回归损失,其计算式如式2.3中所示。

在CIOU中,不仅考了IOU与两框之间的中心点距离,还考虑了两框的相对比例。如式2.3中所示,bbgt 分别为预测框与真实框的中心点坐标,ρ 为两框之间的欧氏距离,c 则为两框并集所形成区域的对角线距离。

按照上一节所述,在检测头Head部分得到三个输出,其中共包含了80×80×3、40×40×3以及20×20×3个预测框的信息,即共25200个预测框,显然,其中绝大多数预测框中都没有包含目标,在YOLO v5模型中将通过NMS(Non-Maximum Suppression),即非极大值抑制来筛选预测框,最终留下包含有目标的预测框,如此即完成了一次对输入图片的目标检测过程。

3  目标检测模型评估指标

鉴于在目标检测任务中,检测的每张图片中都可能包含了不同数量、不同类别的目标,所以此时再沿用图像分类任务中的评估指标precision已经不合适,而需要一个指标可同时评估模型的分类与定位性能,如此即用到了mAP评估指标,本节将详解介绍mAP的计算过程。

首先需要计算precision(精确率/查准率)、recall(召回率/查全率)以及AP(Average Precision,平均精度),前两个评估指标的计算则涉及到TP、FP等指标的计算,如表2.1中所示。

表2.1  TP/FP/FN/TN指标分类简述 

类别

与置信度阈值Pthre的关系

与交并比阈值IOUthre的关系

TP

Conf>Pthre

IOU>IOUthre

FP

Conf >Pthre

IOU<IOUthre

FN

Conf <Pthre

IOU>IOUthre

TN

Conf <Pthre

IOU<IOUthre

注:TP = True Positive(真阳性)、FP = False Positive(假阳性)、FN = False Negative(假阴性)、TN = True Negative(真阴性);

表2.1中的Conf即表示计算所得的置信度,通过与设置的置信度阈值以及交并比阈值的比较可得预测结果所属类别,基于这些统计,可得到precision与recall的计算如式2.4中所示。

 式2.4中的精确率反映的是所有预测框中正确预测的比率,召回率则反映的是数据集上的标注框被正确预测的比率;而AP平均精度的计算,则是某个类别的预测结果在置信度阈值从0变化到1的情况下,计算对应的精确率与召回率,并据此绘出PR曲线,该曲线与坐标轴合围的面积即为该类别在该数据集上的平均精度[150]。mAP的计算则是在某个设置的交并比阈值下,该数据集上所有类别的平均精度AP的平均值,例如常见的mAP50表示的是在交并比阈值设置为0.5时,所有类别平均精度的均值,而mAP50:95则表示的是交并比阈值从初值0.5开始,以0.05为步长增长到0.95的情况下,得到的10个mAP的均值。AP、mAP50以及mAP50:95的计算式如式2.5中所示。

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joejwu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值