YOLOv5网络模型的布局原理讲解(全)
前言YOLOv5有几种不同的架构,各网络模型算法性能分别如下:
https://img-blog.csdnimg.cn/c5eb18a021ed483c9fbbf1f90d25a7bc.png
1. 根本概念
YOLOv5是一种目的检测算法,其模型布局重要包括以下构成部门:
[*] 输入端:YOLOv5的Head网络由3个不同的输出层构成,分别负责检测大中小尺度的目的。
[*] Backbone网络:YOLOv5利用CSPDarknet53作为其主干网络,其具有较强的特征提取能力和盘算效率。
[*] Neck网络:YOLOv5利用的是FPN(FPN网络可以或许在不同的特征图条理上进行检测,可以进步目的检测的性能)网络,可以融合来自不同特征图条理的信息。
[*] 输出端:丧失函数,YOLOv5利用的是Focal Loss丧失函数,该函数可以缓解目的检测中类别不平衡的问题,进步模型的性能。非极大值抑制(NMS),YOLOv5在输出效果后,会对重叠的目的框进行NMS处置惩罚,以得到最终的检测效果。
[*] 激活函数,YOLOv5利用的是Mish激活函数,该函数是一种替换ReLU的激活函数,可以进步模型的性能。
总体来说,YOLOv5的模型布局相对简单,但其利用了多种技术和计谋,如CSP布局、FPN网络、Mish激活函数和Focal Loss丧失函数等,以进步模型的性能和鲁棒性。
配合代码可看我这篇文章:Yolov5 代码从入门到畅通(v6.2) 附代码解释
2. 输入端
输入端 重要由Mosaic 图像增强、自顺应锚框盘算 以及 自顺应图片缩放 构成
2.1 Mosaic 图像增强
补充:
YOLOv5图像增强支持多种模式,包括以下几种:
- Mosaic模式:将四张不同的图像拼接成一张图像,用于增加数据集的多样性。
- Random模式:包含多种图像增强方式,如随机缩放、随机裁剪、随机旋转、随机亮度调整、随机对比度调整等,可以随机地选择其中一种或多种方式进行图像增强。
- MixUp模式:将两张不同的图像进行混合,用于增加数据集的多样性和防止过拟合。
- CutMix模式:将两张不同的图像进行裁剪混合,用于增加数据集的多样性和防止过拟合。
- GridMask模式:通过在图像中加入遮罩,可以增加数据集的多样性和防止过拟合。
- AutoAugment模式:通过搜索最优的数据增强策略来提高模型的性能。
[*] 根本概念:Mosaic图像增强是一种目的检测中常用的数据增强方法,它可以通过组合多个不同的图像来生成新的练习图像。
[*] 重要作用:Mosaic图像增强可以增加练习集的多样性和难度,有助于进步目的检测模型的鲁棒性和泛化能力。同时,Mosaic图像增强还可以低落过拟合风险,进步模型的练习效果。
[*] 重要步骤:随机选择四张不同的图像,将这四张图像随机拼接成一张大图像,其中每个小图像的位置和大小都是随机的。(对于大图像中的每个目的,重新盘算其在大图像中的位置和大小。在大图像中标注每个目的的新位置和大小,并生成新的标注信息。)
实战代码模块的YOLOv5s的项目代码中,设置了两种类型,分别是Mosaic4 load和Mosaic9 load,这是两种不同的数据增强方式,它们的区别在于利用的图像数量不同。
[*] Mosaic4 load会随机选择4张不同的图像,并将它们拼接在一起,形成一张包含4个不同图像的大图像。然后,将大图像作为练习集中的一张图像,对其进行数据增强操作,如随机裁剪、大小变换等。如许可以增加练习集的多样性和难度,进步目的检测模型的鲁棒性和泛化能力。
[*] Mosaic9 load则会随机选择9张不同的图像,并将它们拼接在一起,形成一张包含9个不同图像的大图像。然后,对大图像进行数据增强操作,如随机裁剪、大小变换等。如许可以进一步增加练习集的多样性和难度,进步模型的鲁棒性和泛化能力。
总之,Mosaic4 load和Mosaic9 load都是用于数据增强的方法,它们的区别在于利用的图像数量不同,Mosaic9 load利用的图像数量更多,相应地增加了练习集的多样性和难度,但也增加了盘算量和练习时间。
2.2 自顺应锚框盘算
在目的检测算法中,锚框是指在输入图像上定义的一些预先设定好的矩形框,用于检测不同尺度和宽高比的目的。
传统的目的检测算法中,通常必要手动设置锚框的大小和宽高比等参数。然而,这些参数的选择通常必要履历和调试,容易出现不稳固和禁绝确的情况。
为相识决这个问题,自顺应锚框的方法应运而生。自顺应锚框的头脑是通过学习的方式自动盘算出最适合输入图像的锚框参数,而不必要手动设置。这种方法可以进步目的检测的精度和鲁棒性。
自顺应锚框盘算的方法重要有两种:
[*] Anchor-free方法:该方法直接回归目的的位置和尺寸,不必要利用锚框。典型的Anchor-free方法包括CenterNet和CornerNet等。
[*] Anchor-based方法:该方法利用锚框来检测目的,但是锚框的大小和宽高比等参数是根据输入图像自顺应盘算的。典型的Anchor-based方法包括RetinaNet和FSAF等。
总之,自顺应锚框的方法可以避免手动设置锚框参数的问题,进步目的检测的精度和鲁棒性。同时,自顺应锚框的方法也是目的检测领域的一个研究热门。
而 YOLOv5利用的是一种名为ATSS(Adaptive Training Sample Selection)的自顺应锚框盘算方法。
[*]ATSS是一种基于Anchor-based的目的检测算法,它通过学习的方式自动盘算出最适合输入图像的锚框参数,而不必要手动设置。ATSS算法的焦点头脑是,在练习过程中,根据样本与锚框的匹配度(即交并比IoU),自顺应地选择正负样本,从而有效地低落了难样本的影响,并进步了检测精度。ATSS算法在YOLOv5中的应用,使得YOLOv5在目的检测任务中取得了较为出色的性能体现。
2.3 自顺应图片缩放
在YOLOv5中,自顺应图片缩放(Adaptive Image Scaling)是一种基于目的尺度的图像缩放方式,它可以自顺应地缩放输入图像的尺寸,以顺应不同尺度目的的检测。
以YOLOv5s为例,详细先容一下自顺应图片缩放的原理和步骤:
阶段过程预处置惩罚阶段首先,输入图像将被缩放到一个基准尺寸,即YOLOv5s中的默认基准尺寸是640x640像素
如果输入图像尺寸小于基准尺寸,则会通过插值算法将其缩放到基准尺寸;如果输入图像尺寸大于基准尺寸,则会将其缩放到一个较小的尺寸,并在后续的缩放过程中进行恰当调整。网络输入阶段在图像输入到网络之前,YOLOv5会根据图像中最大目的的尺度,动态地调整输入图像的尺寸。具体来说,YOLOv5会盘算出图像中最大目的的尺寸,然后根据肯定的缩放规则将图像缩放到一个恰当的尺寸,以确保最大目的的尺寸可以被检测到。
例如,在YOLOv5s中,如果最大目的的尺寸小于80x80像素,则将图像缩放到640x640像素;如果最大目的的尺寸大于80x80像素但小于160x160像素,则将图像缩放到1280x1280像素;如果最大目的的尺寸大于160x160像素,则将图像缩放到1920x1920像素。网络输出阶段在网络输出时,YOLOv5会根据猜测框的位置和尺寸,将检测效果映射回原始图像坐标系。由于输入图像的尺寸大概被缩放过,因此必要进行相应的反缩放操作,以便将检测效果映射回原始图像坐标系中。 总之,YOLOv5中的自顺应图片缩放是一种基于目的尺度的图像缩放方式,它可以自顺应地缩放输入图像的尺寸,以顺应不同尺度目的的检测。这种方法可以有效地办理目的检测中存在的尺度不划一问题,进步检测精度和鲁棒性。
3. Backbone层
Backbone层重要由Focus布局 以及 CSP布局 构成
3.1 Focus布局
YOLOv5中的Focus布局是一种用于特征提取的卷积神经网络层,用于将输入特征图中的信息进行压缩和组合,从而提取出更高条理的特征体现。
Focus布局是YOLOv5中的一种特殊卷积操作,它被用作网络中的第一个卷积层,用于对输入特征图进行下采样,以减少盘算量和参数量。
https://img-blog.csdnimg.cn/a033a4fc6b4e45a6988c200f61774e72.png
具体来说,Focus布局可以将输入特征图划分成四个子图,并将这四个子图进行通道拼接,从而得到一个更小的特征图。假设输入特征图的大小为N×N×C,其中N为特征图的尺寸,C为通道数,则Focus布局的盘算过程可以分为以下几个步骤:
[*] 将输入特征图进行通道分离,得到两个大小为N×N×C/4的特征图,记为x和y。
[*] 对x和y分别进行横向和纵向的步长为2的卷积操作,得到两个大小为N/2×N/2×C/4的特征图,记为x’和y’。
[*] 将x’和y’进行通道拼接,得到一个大小为N/2×N/2×C/2的特征图,记为z。
[*] 对z进行横向和纵向的步长为2的卷积操作,得到一个大小为N/4×N/4×C/2的特征图,即为Focus布局的输出。
由于Focus布局对输入特征图进行了下采样,因此可以有效地减少盘算量和参数量,同时保存了输入特征图中的告急信息,有助于进步模型的特征提取能力。在YOLOv5中,Focus布局被广泛用于各个卷积块的第一个卷积层,以实现对输入特征图的下采样和特征压缩。
特别注意的是:
YOLOv5的代码中偶尔会将Focus布局更换为卷积层。
这是因为Focus布局在实现上比较复杂,必要进行通道分离、卷积、通道拼接等操作,导致盘算量较大,倒霉于模型的练习和推理。
为了简化网络布局并进步运行效率,YOLOv5的作者采用了一种计谋,即将Focus布局更换为标准的卷积层,从而减少盘算量和参数量。
具体来说,YOLOv5中的卷积层是以步长为2的方式进行下采样的,与Focus布局类似,它可以实现对输入特征图的压缩和下采样。因此,将Focus布局更换为卷积层可以在肯定水平上进步模型的练习和推理效率,同时减少代码的复杂度和开辟难度。
必要注意的是,由于卷积层只能进行简单的特征压缩和下采样操作,大概会丧失一些输入特征图中的细节信息。因此,在某些必要较高特征提取能力的任务中,采用Focus布局大概会更加合适。
3.2 CSP布局
CSP(Cross Stage Partial)布局是YOLOv5中的一个告急构成部门,用于构建骨干网络(backbone)。CSP布局最初在CVPR 2020中提出,可以有效地减少网络参数和盘算量,同时进步特征提取的效率。
CSP布局的焦点头脑是将输入特征图分成两部门,一部门经过一个小的卷积网络(称为子网络)进行处置惩罚,另一部门则直接进行下一层的处置惩罚。然后将两部门特征图拼接起来,作为下一层的输入。
具体来说,CSP布局包括以下几个步骤:
[*] 将输入特征图分成两部门,一部门进行子网络的处置惩罚,另一部门直接进行下一层的处置惩罚。
[*] 在子网络中,先利用一个卷积层将输入特征图进行压缩,然后进行一系列卷积操作,最后再利用一个卷积层进行扩张。如许可以提取出相对较少的高条理特征。
[*] 在下一层中,将经过子网络处置惩罚的特征图与直接处置惩罚的特征图进行拼接,然后再进行一系列卷积操作。如许可以将低条理的细节特征和高条理的抽象特征结合起来,进步特征提取的效率。
CSP布局在YOLOv5中被广泛应用,包括骨干网络中的多个阶段以及头部网络(head)中的一些模块。它可以明显地减少网络的参数和盘算量,同时进步特征提取的效率,从而加快模型的练习和推理速率。
补充:
在CSP布局中,有两种不同的实现方式:CSPDarknet53和CSPResNet50。总的来说,CSPDarknet53和CSPResNet50都采用了CSP布局进行特征提取,但具体的实现方式略有不同。它们在YOLO系列目的检测模型中都取得了很好的效果。
[*]CSPDarknet53是YOLOv4中提出的一种骨干网络,CSPDarknet53的布局类似于Darknet53
[*]CSPResNet50是YOLOv5中提出的一种骨干网络,CSPResNet50的布局类似于ResNet50
两者 重要是 加入了CSP模块,用于进步特征提取的效率和减少模型的参数量。包括多个CSP模块,每个模块将输入特征图分成两部门,一部门进行子网络的处置惩罚,另一部门直接进行下一层的处置惩罚。然后将两部门特征图拼接起来,作为下一层的输入。如许可以将低条理的细节特征和高条理的抽象特征结合起来,进步特征提取的效率。
3. Neck网络
YOLOv5中的Neck网络是指在骨干网络的底子上加入的中央特征提取网络,重要用于增强模型的特征表达能力和感受野,进一步提升模型的检测性能。
YOLOv5中采用了两种不同的Neck网络布局:SPP和PAN。
Neck网络布局具体说明SPP(Spatial Pyramid Pooling)布局一种金字塔池化布局,可以对不同大小的特征图进行池化,从而增强模型对不同尺度目的的感知能力。具体地,SPP布局将输入特征图分别进行1x1、2x2和3x3的池化操作,并将不同尺度的池化效果拼接起来,作为SPP布局的输出。PAN(Path Aggregation Network)布局一种多尺度特征融合布局,它可以将不同条理的特征进行有效融合,而且避免信息丢失。具体地,PAN布局首先通过上采样将较高条理的特征图尺度与较低条理的特征图尺度对齐,然后通过特征融合模块将它们进行融合,并最终输出融合后的特征图。 在YOLOv5中,SPP和PAN布局可以相互配合利用,以进步模型的检测性能。SPP布局可以增强模型的感知能力和尺度稳固性,而PAN布局可以增强多尺度特征的融合能力。
3.1 SPP布局
[*] SPP(Spatial Pyramid Pooling)布局是一种金字塔池化布局,可以对不同大小的特征图进行池化,从而增强模型对不同尺度目的的感知能力。
SPP布局的重要头脑是通过对输入特征图进行不同大小的池化操作,将不同尺度的信息进行融合。
常见的SPP布局有SPP1x1、SPP3x3和SPP5x5等,其中SPP1x1相称于全局平均池化,SPP3x3和SPP5x5则分别对特征图进行3x3和5x5的池化操作。
[*] SPPF(Spatial Pyramid Pooling Fusion)布局则是在SPP布局的底子上进一步引入了特征融合模块,以进一步提升模型的感知能力和检测性能。具体地,SPPF布局首先对输入特征图进行不同大小的池化操作,然后通过卷积操作将不同尺度的池化效果进行融合,并最终输出融合后的特征图。SPPF布局的特点是可以自顺应地融合不同尺度的特征信息,从而增强模型的特征表达能力和感知能力。
3.2 PAN布局
PAN(Path Aggregation Network)是一种用于目的检测的特征金字塔网络布局,旨在通过多层级的特征融合,提升模型对不同尺度目的的感知能力。
PAN布局重要由两个模块构成:特征金字塔模块和特征融合模块。
[*] 特征金字塔模块通常由多个不同大小的卷积层和池化层构成,用于生成不同尺度的特征图。不同尺度的特征图可以提供不同粒度的目的信息,同时也可以降服特征图上的位置偏差。
[*] 特征融合模块用于将不同尺度的特征图进行融合,以提升模型的特征表达能力和感知能力。
常见的特征融合方法有横向特征融合和纵向特征融合。
1.横向特征融合重要是将不同尺度的特征图进行级联,形成多尺度特征图。
2.纵向特征融合重要是将不同尺度的特征图进行聚合,通过加权平均等方式进行融合。
PAN布局中的特征融合模块利用了自上而下的特征聚合方式,即从上往下通过特征融合模块逐层融合特征,从而形成更为强大的特征体现。
总之,PAN布局通过特征金字塔和特征融合两个模块的组合,可以或许有效地提升目的检测的性能。
4. 输出端
YOLOv5的输出端重要是猜测框,每个猜测框由以下信息构成:
[*] 置信度(confidence score):体现该框内是否存在目的的概率,取值范围为0到1。
[*] 类别概率(class probabilities):体现该框内目的属于各个类别的概率,一样平常是预先定义好的类别数量。
[*] 界限框位置(bounding box coordinates):体现目的的位置和大小,一样平常用矩形框来体现。
YOLOv5中的输出层一样平常包括三个不同尺度的特征图,每个特征图对应不同尺度的猜测框,每个猜测框包含的信息如上述所述。具体地,YOLOv5在输出层通过利用anchor box来猜测目的的界限框位置和大小,同时对每个anchor box对应的猜测效果利用softmax函数来盘算类别概率。
总之,YOLOv5的输出端可以输出图像中目的的位置、大小和类别等信息,以便后续的目的识别和跟踪等任务进行处置惩罚。
4.1 Bounding box丧失函数
YOLOv5中的Bounding box丧失函数采用IoU loss函数,重要用于衡量猜测的界限框与真实界限框之间的差异。
IoU loss是Intersection over Union(IoU)的一种变形,它是一种用于测量猜测界限框与真实界限框之间重叠水平的指标。在目的检测中,IoU通常被用来评估猜测框和真实框的重叠情况,以确定猜测框是否正确。
具体而言,对于每个猜测界限框,我们盘算其与所有真实界限框的IoU值,然后选择IoU最大的那个真实界限框作为其对应的匹配目的,从而盘算出其IoU loss。
其具体利用DIOU丧失函数,公式如下:
https://img-blog.csdnimg.cn/e59f5c6570b74f7f87fc4fa7b6d746f5.png
https://img-blog.csdnimg.cn/3c7c97446ca646e18d1528f465eef4e1.png
补充如下:
DIOU、GIOU和CIOU都是目的检测中用于盘算界限框间隔的指标,它们都是对传统的IoU(Intersection over Union)指标的改进和扩展。
[*] DIOU(Distance IoU)是在IoU的底子上引入了中央点间隔,它可以有效地缓解定位误差对目的检测性能的影响。具体而言,DIOU的盘算公式如下:
https://img-blog.csdnimg.cn/12bbf5d36fce4d55b8f1bc395e83b839.png
其中, I o U ( A , B ) IoU(A,B) IoU(A,B)体现界限框 A A A和 B B B之间的IoU值, d c ( A , B ) d_c(A,B) dc(A,B)体现界限框 A A A和 B B B之间的中央点间隔, ω \omega ω体现图像对角线长度。
[*] GIOU(Generalized IoU)在DIOU的底子上进一步引入了界限框面积的比率,可以有效地缓解尺度厘革对目的检测性能的影响。具体而言,GIOU的盘算公式如下:
https://img-blog.csdnimg.cn/a25930227bc9463f86037d00e98a21a0.png
其中, c ( A , B ) c(A,B) c(A,B)体现界限框 A A A和 B B B之间的最小包含框的面积, α \alpha α是一个可调的参数,用于平衡中央点间隔和尺度比率对目的检测性能的影响。
[*] CIOU(Complete IoU)在GIOU的底子上进一步引入了角点间隔的概念,可以有效地缓解旋转和倾斜对目的检测性能的影响。具体而言,CIOU的盘算公式如下:
https://img-blog.csdnimg.cn/171ccb6ab72f464a8540d8ac0f3954cc.png
其中, s ( A , B ) s(A,B) s(A,B)体现界限框 A A A和 B B B之间的角点间隔, α \alpha α是一个可调的参数,用于平衡中央点间隔、尺度比率和角点间隔对目的检测性能的影响。
总体来说,DIOU、GIOU和CIOU都是一种更加综合、更加正确的界限框间隔度量方式,可以有效地提升目的检测性能。
4.2 NMS非极大值抑制
在目的检测任务中,一个物体大概被多个猜测框检测出来,为了避免对同一个物体进行多次检测,必要对重复的猜测框进行过滤,这个过程就黑白极大值抑制(Non-maximum suppression,简称NMS)。
在YOLOv5中,NMS重要是通过以下几个步骤实现的:
[*] 首先,对所有猜测框按照置信度从高到低进行排序。
[*] 然后,从置信度最高的猜测框开始,依次遍历每个猜测框,判定该猜测框与背面所有猜测框之间的IOU值是否大于肯定的阈值(一样平常为0.5或0.6)。
[*] 如果IOU值大于阈值,则将该猜测框从候选框列表中剔除,否则保存该猜测框。
[*] 继续遍历下一个猜测框,重复上述步骤,直到所有猜测框都被遍历一遍。
[*] 最终,保存下来的猜测框就是经过NMS处置惩罚后的效果,即每个物体只对应一个猜测框。
NMS算法的焦点是通过比较重复猜测框之间的IOU值,去除冗余的猜测框,保存最优的效果。在YOLOv5中,NMS可以避免同一个物体被重复检测的问题,进步了检测的精度和效率。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]