加入注意力机制的YOLOV7神经网络脐橙裂果检测方法
未命名
08-02
阅读:100
评论:0

加入注意力机制的yolov7神经网络脐橙裂果检测方法
技术领域
1.本发明涉及人工智能检测领域,更具体地说,涉及一种加入注意力机制的yolov7神经网络脐橙裂果检测方法。
背景技术:
2.中国是脐橙生产和消费大国,目前脐橙采后初级分级仍然以人工筛选为主要手段,需耗费大量人力和时间。其中,脐橙裂果在因在运输、储存、销售极易腐烂,是脐橙分选中最常见的劣果。目前的机器视觉检测方案容易出现脐肚裂果、脐肚与脐把的错检情况。且传统的机器视觉检测模型检测速度慢,yolov7作为新一代目标检测模型,具有检测速度快,检测精度高等优点,故针对现有机器视觉检测方案的不足,提出一种基于改进的yolov7神经网络的脐橙裂果检测方法。
技术实现要素:
3.本发明要解决的技术问题在于,提供一种加入注意力机制的yolov7神经网络脐橙裂果检测方法,能够在提高检测精度的同时,提高检测速度。
4.本发明解决其技术问题所采用的技术方案是:构造一种加入注意力机制的yolov7神经网络脐橙裂果检测方法,包括以下步骤:
5.s1、采集脐橙裂果图像,并标注裂果标签,形成脐橙裂果数据集,对数据集进行预处理;
6.s2、对yolov7神经网络进行改进,添加卷积注意力机制模块;
7.s3、将标注好的所述数据集按照符合网络要求的格式输入所述改进后的yolov7神经网络进行训练并测试结果;
8.s4、将训练好的模型部署到移动端进行脐橙裂果的检测与识别。
9.按上述方案,在所述步骤s1中,所述脐橙裂果图片采集方法包括:
10.将脐橙裂果位置水平朝上,分别在脐橙裂果位置水平方向,竖直方向以及斜45度角方向拍摄脐橙裂果图像;拍摄图像分辨率为1440x1080像素。
11.按上述方案,在所述步骤s1中,对所述数据集的预处理包括,
12.利用图像标注工具labelimg对所述图像数据集进行标注;
13.利用yolo官方指定数据集格式将标注后的所述图像数据集保存为txt格式标注文件,并将所述数据集根据8:2的比例划分为训练集和测试集。
14.按上述方案,在所述步骤s2中,添加卷积注意力机制模块包括通道注意力机制模块和空间注意力机制模块。
15.按上述方案,所述通道注意力模块包括:
16.输入的特征图,即h
×w×
c,分别经过基于h和w的全局最大池化层和全局平均池化,得到两个1
×1×
c的特征图;将所述特征图分别送入一个两层的神经网络,第一层的神经元个数为c/r,激活函数为relu,第二层的神经元个数为c;将输出的特征进行元素求和操
作并激活,生成通道注意力模块,即mc;将mc与输入特征进行乘法运算,生成空间注意力模块需要的输入特征,其具体实现公式如下:
[0017][0018]
其中,h和w分别为输入特征图的高和宽,σ表示sigmoid函数,f表示输入的特征,和分别表示经过所述平均池化和所述最大池化操作后的特征,w0和w1分别表示每层神经网络的权重函数。
[0019]
按上述方案,所述空间注意力模块包括:
[0020]
将所述通道注意力模块输出的特征作为所述空间注意力模块的输入特征图;所述输入特征图通过所述最大池化层和所述平均池化层,得到两个h*w*1的特征图;将所述两个特征图进行concat融合并通过一个7*7的卷积层,降维为一个channel,并经过sigmoid函数生成空间注意力模块即ms;将ms与空间注意力模块的输入特征图做乘法运算,得到最终生成的特征,其具体实现公式如下:
[0021][0022]
其中,σ表示sigmoid函数,f7×7表示尺寸为7*7的卷积操作,f表示输入的特征,和分别表示经过平均池化和最大池化操作后的特征。
[0023]
按上述方案,在所述步骤s3中,训练所述yolov7神经网络并测试结果的过程包括:
[0024]
输入端采用mosaic数据增强,对输入的图像进行随机缩放,随机剪切,随机排布的方式进行拼接;
[0025]
自适应锚框计算;
[0026]
自适应图片缩放。
[0027]
按上述方案,在所述步骤s3中,改进后的yolov7神经网络结构包括:
[0028]
input模块:输入3*640*640的三通道彩色图片;
[0029]
backbone模块:用于特征提取,由若干cbs层、e-elan层、mpconv层以及cbam层组成,其中cbs层由卷积层+bn层+激活函数组成,采用reakyrelu作为激活函数;e-elan为高效层聚合网络,能在不破坏原始梯度路径情况下,提升网络的学习能;mpconv卷积层在bcov层的基础上加上最大池化层,构成上下两个分支,最后使用concat操作对上下分支提取到的特征进行融合,提高网络特征提取能力;cbam层包括通道注意力模块和空间注意力模块,通道注意力机制使用最大池化和平均池化对feature map进行压缩,得到两个不同的空间背景描述,使用mlp组成的共享网络对所述两个不同的空间背景描述进行计算得到;空间注意力机制在channel的维度上使用最大池化和平均池化得到两个不同的特征描述,利用concat进行特征融合,并使用卷积操作生成空间注意力模块;
[0030]
head模块:用于预测,首先使用spp金字塔结构,使得头部网络适用于多尺寸输入,然后采用聚合特征金字塔网络结构,将底层信息沿着字底向上的路径传递到高层,实现不同层次特征的融合,最后通过repcon结构对不同尺度的特征进行通道数调整。
[0031]
按上述方案,在所述步骤s4中,将训练好的权重模型部署到移动端,通过摄像头获取视频并输入移动端,对视频中出现的脐橙裂果进行实时检测,并输出检测结果;根据检测结果,配合机械手将脐橙裂果挑出。
[0032]
实施本发明的加入注意力机制的yolov7神经网络脐橙裂果检测方法,具有以下有
益效果:
[0033]
本发明所构建的脐橙裂果检测网络模型是在yolov7网络结构的基础上,嵌入了卷积注意力机制,从而使网络在裂果识别中精度更高,检测速度快,很好解决了当前在脐橙裂果检测中容易出现裂果与脐把和脐肚容易误检的问题。
附图说明
[0034]
下面将结合附图及实施例对本发明作进一步说明,附图中:
[0035]
图1为本发明一个实施例提供的一种加入注意力机制的yolov7神经网络脐橙裂果检测方法的基本流程示意图;
[0036]
图2为本发明一个实施例提供的一种加入注意力机制的yolov7神经网络脐橙裂果检测方法的卷积注意力模块整体实现示意图;
[0037]
图3为本发明一个实施例提供的一种加入注意力机制的yolov7神经网络脐橙裂果检测方法的通道注意力模块实现示意图;
[0038]
图4为本发明一个实施例提供的一种加入注意力机制的yolov7神经网络脐橙裂果检测方法的空间注意力模块实现示意图;
[0039]
图5为本发明一个实施例提供的一种加入注意力机制的yolov7神经网络脐橙裂果检测方法的yolov7结构示意图;
[0040]
图6为本发明一个实施例提供的一种加入注意力机制的yolov7神经网络脐橙裂果检测方法的改进网络训练后的检测结果示意图;
[0041]
图7为本发明另一个实施例提供的一种加入注意力机制的yolov7神经网络脐橙裂果检测方法的改进网络训练后的检测结果示意图。
具体实施方式
[0042]
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
[0043]
实施例1
[0044]
参照图1~6,为本发明的一个实施例,提供了一种加入注意力机制的yolov7神经网络的脐橙裂果检测方法,包括以下步骤:
[0045]
s1:采集脐橙裂果图像,并标注裂果标签,形成脐橙裂果数据集,对数据集进行预处理;
[0046]
需要说明的是,采集图像方法包括:将脐橙裂果位置水平朝上,分别在脐橙裂果位置水平方向,竖直方向以及斜45度角方向拍摄脐橙裂果图像;拍摄图像分辨率为1440x1080像素;脐橙品种为红心脐橙又名卡拉卡拉红肉脐橙;需要说明的是,对数据集标注及预处理方法,包括:利用图像标注工具labelimg对所述图像数据集进行标注;利用yolo官方指定数据集格式将标注后的所述图像数据集保存为txt格式标注文件,并将所述数据集根据8:2的比例划分为训练集和测试集。
[0047]
s2:对yolov7神经网络进行改进,添加卷积注意力机制模块;
[0048]
需要说明的是,如添加通道注意力模块包括,将输入的特征图,即h
×w×
c,分别经过基于h和w的全局最大池化层和全局平均池化,得到两个1
×1×
c的特征图;将所述特征图
分别送入一个两层的神经网络,第一层的神经元个数为c/r,激活函数为relu,第二层的神经元个数为c;将输出的特征进行元素求和操作并激活,生成通道注意力模块,即mc;将mc与输入特征进行乘法运算,生成空间注意力模块需要的输入特征,其具体实现公式如下:
[0049][0050]
其中,h和w分别为输入特征图的高和宽,σ表示sigmoid函数,f表示输入的特征,和分别表示经过所述平均池化和所述最大池化操作后的特征,w0和w1分别表示每层神经网络的权重函数。
[0051]
添加空间注意力模块包括,将所述通道注意力模块输出的特征作为所述空间注意力模块的输入特征图;所述输入特征图通过所述最大池化层和所述平均池化层,得到两个h*w*1的特征图;将所述两个特征图进行concat融合并通过一个7*7的卷积层,降维为一个channel,并经过sigmoid函数生成空间注意力模块即ms;将ms与空间注意力模块的输入特征图做乘法运算,得到最终生成的特征,其具体实现公式如下:
[0052][0053]
其中,σ表示sigmoid函数,f7×7表示尺寸为7*7的卷积操作,f表示输入的特征,和分别表示经过平均池化和最大池化操作后的特征。
[0054]
s3:将标注好的所述数据集按照符合网络要求的格式输入所述改进后的yolov7神经网络进行训练并测试结果。
[0055]
需要说明的是,mosaic数据增强,输入端采用mosaic数据增强,对输入的多个图像进行随机缩放,随机剪切,随机排布的方式进行拼接;自适应锚框计算,在yolo模型中,针对不同的数据集都会有初始设定长宽的锚框,在网络训练时,网络会在初始的锚框基础上输出预测框,进而和真实框groundtruth做对比,计算出二者之间的差距,再反向更新,不断地迭代网络参数,在之前的yolo版本中,需要单独运行这种锚框的程序以达到效果,在yolov7中,将自适应锚框程序嵌入到整体训练程序中,加快了数据处理和训练的速度,在每次训练时都可以自适应地计算训练集中最佳的锚框;自适应图片缩放,在常用的检测算法中,会将输入的原始图片统一缩放到一个标准尺寸,再送入检测网络中,此种方法会由于很多图片长宽比不同,没有达到640*640分辨率的图片会缩放填充,导致有些图片黑边较多,存在信息冗余,影响推理速度,yolov7对letterbox函数进行了修改,对原始图像自适应的添加最少的黑边,提升了目标检测的速度;
[0056]
需要说明的是,yolov7各模块详解如下:
[0057]
input模块:输入3*640*640的三通道彩色图片。
[0058]
backbone模块:用于特征提取,由若干cbs层、e-elan层、mpconv层以及cbam层组成,其中cbs层由卷积层+bn层+激活函数组成,采用reakyrelu作为激活函数;e-elan为高效层聚合网络,能在不破坏原始梯度路径情况下,提升网络的学习能;mpconv卷积层在bcov层的基础上加上最大池化层,构成上下两个分支,最后使用concat操作对上下分支提取到的特征进行融合,提高网络特征提取能力;cbam层包括通道注意力模块和空间注意力模块,通道注意力机制使用最大池化和平均池化对feature map进行压缩,得到两个不同的空间背
景描述,使用mlp组成的共享网络对所述两个不同的空间背景描述进行计算得到;空间注意力机制在channel的维度上使用最大池化和平均池化得到两个不同的特征描述,利用concat进行特征融合,并使用卷积操作生成空间注意力模块。
[0059]
head模块:用于预测,首先使用spp金字塔结构,使得头部网络适用于多尺寸输入,然后采用聚合特征金字塔网络结构,将底层信息沿着字底向上的路径传递到高层,实现不同层次特征的融合,最后通过repcon结构对不同尺度的特征进行通道数调整。
[0060]
s4:将训练好的模型部署到移动端进行脐橙裂果的检测与识别。
[0061]
如权利要求9所述的加入卷积注意力机制模块的yolov7神经网络脐橙裂果检测方法,其特征在于:将训练好的权重模型部署到移动端,通过摄像头获取视频并输入移动端,对视频中出现的脐橙裂果进行实时检测,并输出检测结果;
[0062]
s5:根据检测结果,配合机械手将脐橙裂果挑出。
[0063]
实施例2
[0064]
该实施例为本发明另一个实施例,该实施例不同于第一个实施例的是,提供了一种加入注意力机制的yolov7网络的脐橙裂果识别方法的验证测试,为对本方法中采用的技术效果加以验证说明,本实施例采用现有方案与本发明方案进行对比测试,以科学论证的手段对比试验结果,以验证本方法所具有的真实效果。
[0065]
本实施例使用训练cpu为intel(r)xeon(r)gold 5117 cpu@2.00ghz,gpu为nvidia tesla ph402 sku 200,使用的深度学习框架为pytorch1.9.0,cuda版本为11.1,再按照实施例1的步骤将图片数据输入未改进的yolov7网络中训练并测试,比较两者测试效果,其结果如表1所示:
[0066]
表1:实验结果对比表。
[0067]
modelmapfpsyolov70.94341.2yolov7-cbam0.96845.4
[0068]
其中,map是是指对所有类别的平均精度值求平均值,能反应模型的精度,fps是该网络模型每秒能识别的图像帧数,可以看出加入了注意力机制的模型识别的精度有所提高,且模型的识别速率也有所提高,并且在训练时模型的收敛速度也有显著提升。
[0069]
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
技术特征:
1.一种加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,包括以下步骤:s1、采集脐橙裂果图像,并标注裂果标签,形成脐橙裂果数据集,对数据集进行预处理;s2、对yolov7神经网络进行改进,添加卷积注意力机制模块;s3、将标注好的所述数据集按照符合网络要求的格式输入所述改进后的yolov7神经网络进行训练并测试结果;s4、将训练好的模型部署到移动端进行脐橙裂果的检测与识别。2.根据权利要求1所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,在所述步骤s1中,所述脐橙裂果图片采集方法包括:将脐橙裂果位置水平朝上,分别在脐橙裂果位置水平方向,竖直方向以及斜45度角方向拍摄脐橙裂果图像;拍摄图像分辨率为1440x1080像素。3.根据权利要求1所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,在所述步骤s1中,对所述数据集的预处理包括,利用图像标注工具labelimg对所述图像数据集进行标注;利用yolo官方指定数据集格式将标注后的所述图像数据集保存为txt格式标注文件,并将所述数据集根据8:2的比例划分为训练集和测试集。4.根据权利要求1所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,在所述步骤s2中,添加卷积注意力机制模块包括通道注意力机制模块和空间注意力机制模块。5.根据权利要求4所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,所述通道注意力模块包括:输入的特征图,即h
×
w
×
c,分别经过基于h和w的全局最大池化层和全局平均池化,得到两个1
×1×
c的特征图;将所述特征图分别送入一个两层的神经网络,第一层的神经元个数为c/r,激活函数为relu,第二层的神经元个数为c;将输出的特征进行元素求和操作并激活,生成通道注意力模块,即m
c
;将m
c
与输入特征进行乘法运算,生成空间注意力模块需要的输入特征,其具体实现公式如下:其中,h和w分别为输入特征图的高和宽,σ表示sigmoid函数,f表示输入的特征,和分别表示经过所述平均池化和所述最大池化操作后的特征,w0和w1分别表示每层神经网络的权重函数。6.根据权利要求5所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,所述空间注意力模块包括:将所述通道注意力模块输出的特征作为所述空间注意力模块的输入特征图;所述输入特征图通过所述最大池化层和所述平均池化层,得到两个h*w*1的特征图;将所述两个特征图进行concat融合并通过一个7*7的卷积层,降维为一个channel,并经过sigmoid函数生成空间注意力模块即m
s
;将m
s
与空间注意力模块的输入特征图做乘法运算,得到最终生成的特征,其具体实现公式如下:
其中,σ表示sigmoid函数,f7×7表示尺寸为7*7的卷积操作,f表示输入的特征,和分别表示经过平均池化和最大池化操作后的特征。7.根据权利要求1所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,在所述步骤s3中,训练所述yolov7神经网络并测试结果的过程包括:输入端采用mosaic数据增强,对输入的图像进行随机缩放,随机剪切,随机排布的方式进行拼接;自适应锚框计算;自适应图片缩放。8.根据权利要求1所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,在所述步骤s3中,改进后的yolov7神经网络结构包括:input模块:输入3*640*640的三通道彩色图片;backbone模块:用于特征提取,由若干cbs层、e-elan层、mpconv层以及cbam层组成,其中cbs层由卷积层+bn层+激活函数组成,采用reakyrelu作为激活函数;e-elan为高效层聚合网络,能在不破坏原始梯度路径情况下,提升网络的学习能;mpconv卷积层在bcov层的基础上加上最大池化层,构成上下两个分支,最后使用concat操作对上下分支提取到的特征进行融合,提高网络特征提取能力;cbam层包括通道注意力模块和空间注意力模块,通道注意力机制使用最大池化和平均池化对feature map进行压缩,得到两个不同的空间背景描述,使用mlp组成的共享网络对所述两个不同的空间背景描述进行计算得到;空间注意力机制在channel的维度上使用最大池化和平均池化得到两个不同的特征描述,利用concat进行特征融合,并使用卷积操作生成空间注意力模块;head模块:用于预测,首先使用spp金字塔结构,使得头部网络适用于多尺寸输入,然后采用聚合特征金字塔网络结构,将底层信息沿着字底向上的路径传递到高层,实现不同层次特征的融合,最后通过repcon结构对不同尺度的特征进行通道数调整。9.根据权利要求1所述的加入注意力机制的yolov7神经网络脐橙裂果检测方法,其特征在于,在所述步骤s4中,将训练好的权重模型部署到移动端,通过摄像头获取视频并输入移动端,对视频中出现的脐橙裂果进行实时检测,并输出检测结果;根据检测结果,配合机械手将脐橙裂果挑出。
技术总结
本发明涉及一种加入注意力机制的YOLOV7神经网络脐橙裂果检测方法,包括以下步骤:S1、采集脐橙裂果图像,并标注裂果标签,形成脐橙裂果数据集,对数据集进行预处理;S2、对YOLOv7神经网络进行改进,添加卷积注意力机制模块;S3、将标注好的所述数据集按照符合网络要求的格式输入所述改进后的YOLOv7神经网络进行训练并测试结果;S4、将训练好的模型部署到移动端进行脐橙裂果的检测与识别。本发明所构建的脐橙裂果检测网络模型是在YOLOv7网络结构的基础上,嵌入了卷积注意力机制,从而使网络在裂果识别中精度更高,检测速度快,很好解决了当前在脐橙裂果检测中容易出现裂果与脐把和脐肚容易误检的问题。脐肚容易误检的问题。脐肚容易误检的问题。
技术研发人员:王陆辉 邹承明
受保护的技术使用者:武汉理工大学
技术研发日:2023.04.28
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/