一种基于YOLOv5s的密集目标检测方法

文档序号:31862549发布日期:2022-10-19 06:10阅读:367来源:国知局
一种基于YOLOv5s的密集目标检测方法
一种基于yolov5s的密集目标检测方法
技术领域
1.本发明涉及计算机视觉目标检测领域,具体涉及一种基于yolov5s的密集目标检测方法。


背景技术:

2.视觉目标检测旨在定位和识别图像中存在的物体,属于计算机视觉领域的经典任务之一,也是许多计算机视觉任务的前提与基础,在自动驾驶、视频监控、水产养殖、智慧农业等领域具有重要的理论研究意义和实际应用价值。随着深度学习技术的飞速发展,目标检测取得了巨大的进展。以往的人工检测方式准确率差,效率低,耗时耗力。随着图像处理技术的不断发展,传统的机器学习通过支持向量机,进行分类识别,该方法检测结果准确率不高,且容易造成漏检误检等情况。近年来,对于诸多领域内存在密集目标的情况,采用计算机视觉技术结合深度学习方法进行检测逐渐成为主流,目标检测识别算法它通过卷积神经网络来自动提取目标特征,相较于以往的方法,具有更快的检测速度和更高的检测准确率。


技术实现要素:

3.针对上述存在的问题,提出一种基于yolov5s的密集目标检测模型。采用该模型能够较好的满足密集目标检测检测任务的需求。
4.为了实现上述目的,本发明采用的技术方案如下:一种基于yolov5s的密集目标检测方法,包括如下步骤:
5.1)将检测装置置于投饵船前端检测鱼群数量情况,所述检测装置包括摄像装置和照明装置;所述摄像装置用于拍摄鱼群进行数量检测;所述照明装置保持常亮用于水下照明;
6.2)构建鱼类数据集d2,划分训练集d
train
和验证集d
test

7.3)构建yolov5s网络模型,所述yolov5s网络模型包括input、backbone、neck、prediction;所述input包括mosaic数据增强、自适应锚框计算、自适应图片缩放;所述backbone包括focus模块、spp模块和c3模块;所述颈部网络neck包括fpn模块、pan模块、c3模块;所述prediction包括bounding box损失函数和nms;
8.4)修改主干网络卷积模块,将主干网络卷积模块修改为repvgg block模块;
9.5)修改主干网络结构,在repvgg模块与spp模块之间插入sa注意力机制;
10.6)修改yolov5s颈部网络的上采样方式,将最邻近上采样改为carafe上采样方式;
11.7)将评价目标框和预测框的类损失和置信度损失的损失函数focal loss修改为varifocal loss损失函数;
12.8)对鱼类数据集d2进行迁移训练,得到训练权重w;即用giou_loss作为损失函数,当模型损失曲线趋近于0且无明显波动时,停止训练,得到训练权重w,否则继续训练;
13.9)输入图像,进行鱼群检测,将获取到的鱼群图像输入到训练权重为w的模型中,
模型根据权重自动识别鱼群数量。
14.进一步地,上述步骤2)包括如下步骤:
15.2.1)从鱼类公共数据集选取n张,构建数据集d1;
16.2.2)使用标注工具labelimg对数据集d1中每一张图像中的鱼类进行标注,构建鱼类数据集d2;
17.2.3)按照比例将鱼类数据集d2划分为训练集d
train
和验证集d
test

18.进一步地,上述步骤4)包括如下步骤:
19.4.1)训练多分支模型:在训练时,为每一个3
×
3卷积层添加平行的1
×
1卷积分支与恒等映射分支;
20.4.2)将多分支模型等价转换为单路模型:将1
×
1卷积看成卷积核中有很多0的3
×
3卷积,恒等映射是一个特殊1
×
1卷积;根据卷积的可加性原理,每个repvgg block模块三个分支则可以合并为一个3
×
3卷积;
21.4.3)结构参数重构:通过实际数据流,将多分支网络的权值转移到简单网络中。
22.进一步地,上述步骤5)包括如下步骤:
23.5.1)特征分组:假设输入特征为x∈rc×h×w,其中c、h、w分别表示通道数、高度和宽度,特征分组会将输入x沿着通道维度拆分为g组,使得每个子功能在训练过程中逐渐捕获特定的语义响应;
24.5.2)使用通道注意力机制,捕获通道相关性信息,计算公式如下:
[0025][0026]
x

k1
=σ(w1s+b1)
·
x
k1
[0027]
式中:s表示信道统计,x
k1
为在通道维度被分成的一个分支,x

k1
表示通道注意力的最终输出,σ为sigmoid激活函数,w1与b1是形状为c/2g
×1×
1的参数。
[0028]
5.3)使用空间注意力机制,捕获空间相关性信息,计算公式见下:
[0029]
x

k2
=σ(w2·
gn(x
k2
)+b2)
·
x
k2
[0030]
式中:x
k2
为在通道维度被分成的一个分支,x

k2
表示空间注意力的最终输出,w2与b2是形状为c/2g
×1×
1的参数,gn表示组归一化方法;
[0031]
5.4)聚合:在完成通道注意力、空间注意力计算后,对两种注意力进行集成,通过concat进行融合得到:x
′k=[x

k1
,x

k2
]∈r
c/2g
×h×w,采用通道置换操作(channel shuffle)进行组间通信。
[0032]
进一步地,上述步骤6)中,包括如下步骤:
[0033]
6.1)特征图通道压缩:假设上采样倍率为σ,对于形状为c
×h×
w的输入特征图,其中c、h、w分别表示通道数、高度和宽度,用1
×
1卷积将它的通道数压缩到cm;
[0034]
6.2)内容编码及上采样核预测:对步骤6.1)压缩后的输入特征图,利用的卷积层预测上采样核,假设上采样的卷积核为k
up
×kup
,输入通道数为cm,输出通道数为将通道维在空间维展开,得到形状为的上采样核;
[0035]
6.3)上采样核归一化:对步骤6.2)得到的上采样核每个通道k
up
×kup
利用softmax进行归一化,使得卷积核权重和为1;对于输出特征图中的每个位置,将其映射回输入特征
图,取出以之为中心的k
up
×kup
的区域,和预测出的该点的上采样核作点积,得到输出值;相同位置的不同通道共享同一个上采样核。
[0036]
进一步地,上述步骤7)中,所述varifocal loss损失函数公式如下:
[0037][0038]
式中:p是预测的iacs,q是目标iou得分,对于正样本,q是预测包围框和gt框之间的iou,对于负样本,q为0。
[0039]
进一步地,上述步骤8)中,所述giou_loss损失函数转换公式如下:
[0040][0041]
式中:
[0042][0043]
iou表示两个重叠矩形框之间的交并比;i表示两个矩形的重叠部分,u表示的是两个矩形面积之和a
p
+ag掉两个矩形相交面积i,ac是两个矩形的最小外界面积。
[0044]
本发明提供一种基于yolov5s的密集目标检测方法,采用了融合了repvgg模块,注意力机制和carafe上采样模块的检测模型。该方法能够有效提高在密集目标图像检测任务中的综合性能,极大提高检测准确性,对自动驾驶、视频监控、水产养殖业的发展具有重要意义。
附图说明
[0045]
图1为本发明中基于yolov5s的密集目标检测方法流程图。
[0046]
图2为本发明中yolov5s网络结构图。
[0047]
图3为本发明中主干网络repvgg block模块结构图。
[0048]
图4为本发明中sa注意力机制结构图。
具体实施方式
[0049]
下面结合附图以及具体实施例对本发明做进一步的说明,需要指出的是,下面仅以一种优选的技术方案对本发明的技术方案以及设计原理进行详细阐述,但本发明的保护范围并不限于此。
[0050]
所述实施例为本发明的优选的实施方式,但本发明并不限于上述实施方式,在不背离本发明的实质内容的情况下,本领域技术人员能够做出的任何显而易见的改进、替换或变型均属于本发明的保护范围。
[0051]
本发明提供的一种基于yolov5s的密集目标检测方法流程见图1,包括如下步骤:
[0052]
1)将检测装置置于投饵船前端检测鱼群数量情况,所述检测装置包括摄像装置和照明装置;所述摄像装置用于拍摄鱼群进行数量检测;所述照明装置保持常亮用于水下照明;
[0053]
2)构建鱼类数据集d2,划分训练集d
train
和验证集d
test

[0054]
3)构建yolov5s网络模型,yolov5s网络结构图见图2,所述yolov5s网络模型包括
input、backbone、neck、prediction;所述input包括mosaic数据增强、自适应锚框计算、自适应图片缩放;所述backbone包括focus模块、spp模块和c3模块;所述颈部网络包括fpn模块、pan模块、c3模块;所述prediction包括bounding box损失函数和nms;其中,所述主干网络c3模块其结构分为两支,一支使用多个bottleneck堆叠和3个标准卷积层,另一支仅经过一个基本卷积模块,最后将两支进行concat操作;
[0055]
4)修改主干网络卷积模块,将主干网络卷积模块修改为repvgg block模块;
[0056]
5)修改主干网络结构,在repvgg模块与spp模块之间插入sa注意力机制;
[0057]
6)修改yolov5s颈部网络的上采样方式,将最邻近上采样改为carafe上采样方式。
[0058]
7)将评价目标框和预测框的类损失和置信度损失的损失函数focal loss修改为varifocal loss。
[0059]
8)对鱼类数据集d2进行迁移训练,得到训练权重w;即用giou_loss作为损失函数,当模型损失曲线趋近于0且无明显波动时,停止训练,得到训练权重w,否则继续训练;
[0060]
9)输入图像,进行鱼类检测,将获取到的鱼类图像输入到训练权重为w的模型中,模型根据权重自动识别鱼类数量。
[0061]
作为本发明的优选实施例,步骤2)包括如下步骤:
[0062]
2.1)从鱼类公共数据集选取n张,构建数据集d1;
[0063]
2.2)使用标注工具labelimg对数据集d1的中每一张图像中的鱼类进行标注,构建鱼类数据集d2;
[0064]
2.3)按比例将鱼类数据集d2划分为训练集d
train
和验证集d
test

[0065]
作为本发明的优选实施例,repvgg block卷积结构如图3所示,上述步骤4)包括如下步骤:
[0066]
4.1)训练多分支模型。在训练时,为每一个3
×
3卷积层添加平行的1
×
1卷积分支与恒等映射分支。
[0067]
4.2)将多分支模型等价转换为单路模型。将1
×
1卷积看成卷积核中有很多0的3
×
3卷积,恒等映射是一个特殊1
×
1卷积。根据卷积的可加性原理,每个repvgg block模块三个分支则可以合并为一个3
×
3卷积。
[0068]
4.3)结构参数重构。通过实际数据流,将多分支网络的权值转移到简单网络中。
[0069]
作为本发明的优选实施例,sa模块结构见图4,上述步骤5)包括如下步骤:
[0070]
5.1)特征分组,假设输入特征为x∈rc×h×w,其中c、h、w分别表示通道数、高度和宽度,特征分组会将输入x沿着通道维度拆分为g组,使得每个子功能在训练过程中逐渐捕获特定的语义响应;
[0071]
5.2)使用通道注意力机制。捕获通道相关性信息,计算公式如下:
[0072][0073]
x

k1
=σ(w1s+b1)
·
x
k1
[0074]
式中:s表示信道统计,x
k1
为在通道维度被分成的一个分支,x

k1
表示通道注意力的最终输出,σ为sigmoid激活函数,w1与b1是形状为c/2g
×1×
1的参数。
[0075]
5.3)使用空间注意力机制。捕获空间相关性信息,计算公式见下:
[0076]
x

k2
=σ(w2·
gn(x
k2
)+b2)
·
x
k2
[0077]
式中:x
k2
表示在通道维度被分成的一个分支,x

k2
表示空间注意力的最终输出,w2与b2是形状为c/2g
×1×
1的参数,gn表示组归一化方法。
[0078]
5.4)聚合。在完成前面两种注意力计算后,对其进行集成,首先通过简单的concat进行融合得到:x
′k=[x

k1
,x

k2
]∈r
c/2g
×h×w。最后采用通道置换操作(channel shuffle)进行组间通信。
[0079]
作为本发明的优选实施例,上述步骤6)包括如下步骤:
[0080]
6.1)特征图通道压缩,假设上采样倍率为σ,对于形状为c
×h×
w的输入特征图,其中c、h、w分别表示通道数、高度和宽度,用1
×
1卷积将它的通道数压缩到cm,减少后续步骤计算量。
[0081]
6.2)内容编码及上采样核预测,对于第一步中压缩后的输入特征图,利用的卷积层来预测上采样核,假设上采样的卷积核为k
up
×kup
,输入通道数为cm,输出通道数为将通道维在空间维展开,得到形状为的上采样核。
[0082]
6.3)上采样核归一化,对得到的上采样核每个通道k
up
×kup
利用softmax进行归一化,使得卷积核权重和为1。对于输出特征图中的每个位置,我们将其映射回输入特征图,取出以之为中心的k
up
×kup
的区域,和预测出的该点的上采样核作点积,得到输出值。相同位置的不同通道共享同一个上采样核。
[0083]
作为本发明的优选实施例,上述步骤7)中的varifocal loss损失函数公式如下:
[0084][0085]
其中,p是预测的iacs,q是目标iou得分,对于正样本,q是预测包围框和gt框之间的iou,对于负样本,q为0。
[0086]
作为本发明的优选实施例,步骤8)中的giou_loss损失函数转换公式如下:
[0087][0088]
式中,
[0089][0090]
iou表示两个重叠矩形框之间的交并比;i表示两个矩形的重叠部分,u表示的是两个矩形面积之和a
p
+ag掉两个矩形相交面积i,ac是两个矩形的最小外界面积。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1