一种基于轻量化YOLOv5的甘蔗蚜虫目标检测方法

allin2023-03-23  120


thunbergianae monitoring[j].insects,2021,12(4):342.


技术实现要素:

[0009]
针对现有算法的不足,本发明提出了一种适用于农田多变自然光照环境下的基于轻量化yolo v5的甘蔗蚜虫检测方法;本发明识别精度高、识别速度快、内存占用率低,有利于部署在移动端平台。
[0010]
本发明所采用的技术方案是:一种基于轻量化yolo v5的甘蔗蚜虫目标检测方法包括以下步骤:
[0011]
s1:甘蔗蚜虫图像采集;
[0012]
进一步的,使用相机采集带有甘蔗蚜虫的谷物高粱叶的图像作为实验图像数据;采集的图像包括四种光照强度:弱光、强光,直射光和漫射光,适用于农田多变的自然光照;
[0013]
s2:图像预处理;
[0014]
进一步的,将采集的原始图像分割为一定像素的若干子图像作为实验所用数据集;由于甘蔗蚜虫相对原始图像特别小,针对这种小目标,把原始图像分割处理;
[0015]
s3:制作数据集;
[0016]
进一步的,使用labelimg对数据集中每幅图像的甘蔗蚜虫进行人工标注,标注时以目标的最小外接矩形作为真实框;准备的数据集中随机选取80%图像用作甘蔗蚜虫检测算法的训练数据,剩余的20%图像作为测试数据,用于测试和验证本发明提出的甘蔗蚜虫检测方法;
[0017]
s4:对yolo v5模型轻量化改进;
[0018]
进一步的,包括如下步骤:
[0019]
s41:使用stem模块替换主干网络中的focus模块;
[0020]
stem模块是一个经济高效的模块,可以有效地提升特征表达能力且不会增加额外的计算量;stem模块的具体结构是先使用步长为2的3x3卷积进行快速降维,然后使用了两分支的结构,一个分支使用1
×
1卷积和步长为2的3x3卷积,另一个分支使用一个最大池化;最后将两个分支通过concat连接,经过1
×
1卷积输出,图片经过stem模块后完成4倍下采样;
[0021]
stem模块使用步长为2的3x3卷积和最大值池化的池化策略,而组合池化使用的是最大值池化和均值池化,本发明的stem模块可以丰富特征层;
[0022]
s42:使用shufflenetv2的inverted residual模块替换主干网络中的c3模块、conv模块和spp模块;
[0023]
shufflenet v2的inverted residual模块是由两种单元组合而成,通过传入的步长参数控制是否进行下采样操作,其具体结构为:
[0024]
当步长为1时,inverted residual模块利用不断重复的1
×
1卷积和3
×
3深度卷积来提取特征,采用短路连接来增加网络深度;在每个短路连接前加入channel split操作,将输入特征通道一分为二,有效地提高了卷积神经网络的计算效率,减少庞大的参数;将两个分支通过concat连接后加入channel shuffle模块,把每个通道打乱重排以混合特征,提高了卷积神经网络模型的特征表达能力和检测精度;channel split和channel shuffle的应用,减小了模型的计算复杂度,降低了模型的内存占用率,极大地提高了模型的计算效
率;
[0025]
当步长为2时,inverted residual模块使用下采样单元块,不再采用channel split,而是直接按原始输入,每个特征通道都采用步长为2的3
×
3深度卷积进行下采样,一个分支在之后增加一个1
×
1卷积,另一个分支在前后各增加一个1
×
1卷积;两分支通过concat连接后特征图空间大小减半,但是通道数翻倍;最后使用channel shuffle模块,把每个通道打乱重排以混合特征,提高了卷积神经网络模型的特征表达能力和检测精度;
[0026]
所述深度卷积是一个卷积核负责一个通道,一个通道只被一个卷积核卷积,即对输入层的每个通道独立进行卷积运算。
[0027]
s43:降低颈部网络宽度;
[0028]
yolo v5的颈部网络部分的c3模块和conv模块的卷积核的数量较大,生成的特征图通道数较多,这会占用较多的缓存空间,减低运行速度,影响整体网络的计算量;为了对模型轻量化,我们将yolo v5配置文件中颈部网络部分的c3模块和conv模块卷积核数量降至128,可以减少生成特征图的通道数,降低网络宽度,减少模型的参数量与计算量,加快模型运行速度;
[0029]
s44:改进检测尺度;
[0030]
当输入图像尺寸为640
×
640时,yolo v5对应的3种规格的检测尺度分别为20
×
20、40
×
40、80
×
80;对于20
×
20的检测尺度,其感受野为32
×
32大小的像素区域,主要是用来检测大型物体,而40
×
40的检测尺度,其感受野为16
×
16大小的像素区域,主要是用来检测中型物体,最后80
×
80的检测尺度,感受野为8
×
8大小的像素区域,主要是用来检测小型物体;
[0031]
在自然光照下拍摄的甘蔗蚜虫分布在叶片的各个位置,各个角落,且叶片上存在不同生长期的甘蔗蚜虫形态,所以映射到图像中的甘蔗蚜虫也有着不同大小的尺度,尤其是包含着多个甘蔗蚜虫目标的密集图像;由于需检测的单个甘蔗蚜虫个体占输入图像比例很小,多次下采样会引起训练过程中,卷积层提取到的微小目标特征信息丢失,导致体型微小的甘蔗蚜虫的幼虫无法识别;一幅密集图像中可能包含着中尺度、小尺度和微小尺度等众多甘蔗蚜虫目标;而yolo v5的小尺度检测层对这些微小的甘蔗蚜虫幼虫的适用性较差,同时大尺度检测层对甘蔗蚜虫检测难以发挥作用;为了应对自然光照下复杂的密集场景,本发明对yolo v5的三种检测尺度进行改进;在这三种检测尺度中保留40
×
40和80
×
80这两种中小型目标的检测尺度,删除20
×
20大目标的检测尺度,增加160
×
160微小尺寸的检测尺度;该微尺度检测层是通过stem模块将输入图像的维数降低4倍提取的较低的空间特征与深层语义特征融合来生成特征图;新的微尺度检测层形成了更广泛、更详细的检测网络结构,更加适用于检测农田自然光照场景下图像中微小、密集的甘蔗蚜虫,使得网络能够更好地符合要检测的目标;
[0032]
s5:输入数据集训练得到轻量化模型。
[0033]
使用pytorch1.7.0深度学习框架,训练图像尺寸设置为640
×
640;学习率、批量大小、迭代次数和类别数分别设置为0.001、16、500和1;采用yolo v5四种模型中最小的yolo v5s模型对数据集进行训练;采用yolo v5的马赛克增强(mosaic)的方法对数据集图片进行数据增强;mosaic数据增强采用随机缩放、随机裁剪、随机排布的方式对4张随机图片进行拼接,最后将拼接好的图片缩放为设定的输入尺寸,并作为新的样本传入模型;mosaic数据
增强方法丰富了目标的位置分布情况而且在一定程度上放大了小尺寸目标,从而在提高模型训练效率的同时提高模型的泛化能力;数据集输入并训练得到基于轻量化yolo v5的甘蔗蚜虫目标检测模型。
[0034]
本发明的有益效果:
[0035]
提出的基于轻量化yolo v5的甘蔗蚜虫检测方法,通过使用stem模块,shufflenetv2的inverted residual模块,减少颈部网络宽度来对yolo v5模型轻量化,同时删除大尺度检测层,增加微小尺度检测层,使得网络能够更好地符合甘蔗蚜虫中密集微小目标的检测,与原始yolo v5模型相比,具有识别精度高、识别速度快、内存占用率低等优点,有利于模型在移动终端上部署。
附图说明
[0036]
图1是基于轻量化yolo v5的甘蔗蚜虫目标检测方法的总体流程图;
[0037]
图2是基于yolo v5的甘蔗蚜虫目标检测模型结构图;
[0038]
图3是本发明的基于轻量化yolo v5的甘蔗蚜虫目标检测模型结构图;
[0039]
图4是stem模块结构图;
[0040]
图5是shufflenetv2的inverted residual模块结构图;
[0041]
图6是channel shuffle通道重排过程示意图;
[0042]
图7是改进模型的颈部网络结构图;
[0043]
图8是检测层改进前后对比图;
[0044]
图9是mosaic数据增强后的部分训练图;
[0045]
图10是基于轻量化yolo v5模型对甘蔗蚜虫图像目标检测的示意图。
具体实施方式
[0046]
下面结合附图和实施例对本发明作进一步说明,此图为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
[0047]
如图1所示,一种基于轻量化yolo v5的甘蔗蚜虫目标检测方法包括以下步骤:
[0048]
s1:甘蔗蚜虫图像采集;
[0049]
实验所用的图像来自于使用相机在农田自然光照环境下拍摄的带有甘蔗蚜虫的谷物高粱叶的图像(图像分辨率为2448
×
3264);相机与叶片的垂直距离约为0.2米;采集的图像包括四种光照强度:弱光(光照强度小于20klux)、强光(光照强度大于30klux),直射光(在太阳角度大于40
°
的晴天中午至下午1:00之间拍摄)和漫射光(拍摄时光强介于20klux和30klux之间)。
[0050]
s2:图像预处理;
[0051]
由于原始图像分辨率较大,甘蔗蚜虫占原始图像的比例过小,多次下采样会引起训练过程中,卷积层提取到的甘蔗蚜虫目标特征信息丢失,导致甘蔗蚜虫目标无法识别;因此将采集的每幅甘蔗蚜虫图像切割成4
×
4子图像,图像分辨率为612
×
816,从中随机选取了300幅带有甘蔗蚜虫目标且拍摄清晰的子图像作为本研究的数据集图像,数据集图像中共包含2443个甘蔗蚜虫目标。
[0052]
s3:制作数据集;
[0053]
使用labelimg对数据集中每幅图像的甘蔗蚜虫进行人工标注,标注时以目标的最小外接矩形作为真实框;准备的数据集中随机选取80%(240幅图像,共2230个蚜虫样本)用作本发明的甘蔗蚜虫检测算法的训练数据,剩余的20%(60幅图像,共213个蚜虫样本)作为测试数据,用于测试和验证本发明提出的甘蔗蚜虫检测方法;
[0054]
s4:对yolo v5模型轻量化改进;
[0055]
如图2所示,yolo v5模型使用c3模块作为提取图像特征的主干网络,并采用fpn(特征金字塔网络)+pan(路径聚合网络)的结构作为颈部网络,以更好地融合提取的特征,使用大、中、小三个尺度的检测头组成头部网络以检测目标对象;
[0056]
基于yolo v5的目标检测网络的基本组成模块如下:
[0057]
focus模块:对输入图像进行切片以扩展输入通道,同时保留完整的图像信息,从而为后续的特征提取保留完整的图像下采样信息,使特征提取充分;
[0058]
conv模块:由卷积层、批量归一化层和silu激活函数组成,用于提取图像特征;
[0059]
c3模块:对残差特征进行学习的主要模块,其结构分为两支,一支使用多个bottleneck堆叠和3个标准卷积层,另一支仅经过一个基本卷积模块,将两支进行concat操作,经过一个基本卷积模块输出特征;
[0060]
spp(空间金字塔池)模块:使用最大池化方法融合多尺度特征;
[0061]
如图3所示,基于yolo v5的轻量化模型结构,对yolo v5模型轻量化改进的步骤如下:
[0062]
s41:使用stem模块替换主干网络中的focus模块,具体内容为:
[0063]
stem模块是一个经济高效的模块,可以有效地提升特征表达能力且不会增加额外的计算量;如图4所示,stem模块的具体结构是先使用步长为2的3x3卷积进行快速降维,然后使用了两分支的结构,一个分支使用1
×
1卷积和步长为2的3x3卷积,另一个分支使用一个最大池化。这一部分和组合池化非常相似,stem模块使用了步长为2的3x3卷积和最大值池化两种的优势引申而来的池化策略(组合池化使用的是最大值池化和均值池化),可以丰富特征层;最后将两个分支通过concat连接,经过1
×
1卷积输出。图片经过stem模块后完成4倍下采样;
[0064]
s42:使用shufflenetv2的inverted residual模块替换主干网络中的c3模块、conv模块和spp模块;
[0065]
shufflenetv2是基于移动设备而设计的轻量级神经网络,它是根据轻量化高效网络的四大设计指南对shufflenetv1进行了以下改进:使用1
×
1卷积代替1
×
1组卷积;在模块开始时引入新的运算:channel split;在短路连接中采用串联运算代替加法操作;
[0066]
shufflenet v2的inverted residual模块是由两种单元组合而成,通过传入的步长参数控制是否进行下采样操作,其具体结构如图5:
[0067]
如图5a所示,当步长为1时,inverted residual模块利用不断重复的1
×
1卷积和3
×
3深度卷积来提取特征,采用短路连接来增加网络深度;在每个短路连接前加入channel split操作,将输入特征通道一分为二,有效地提高了卷积神经网络的计算效率,减少庞大的参数;如图6所示,将两个分支通过concat连接之后加入channel shuffle模块,把每个通道打乱重排以混合特征,提高了卷积神经网络模型的特征表达能力和检测精度。channel split和channel shuffle的应用,减小了模型的计算复杂度,降低了模型的内存占用率,极
大地提高了模型的计算效率;
[0068]
如图5b所示,当步长为2时,inverted residual模块使用下采样单元块,不再采用channel split,而是直接按原始输入,每个分支都采用步长为2的3
×
3深度卷积进行下采样,一个分支在之后增加一个1
×
1卷积,另一个分支在前后各增加一个1
×
1卷积;两分支通过concat连接后特征图空间大小减半,但是通道数翻倍;最后channel shuffle模块,把每个通道打乱重排以混合特征,提高了卷积神经网络模型的特征表达能力和检测精度;
[0069]
深度卷积是一个卷积核负责一个通道,一个通道只被一个卷积核卷积,即对输入层的每个通道独立进行卷积运算。
[0070]
s43:降低颈部网络宽度;
[0071]
如图7所示,本发明提出的改进模型继续使用yolo v5的fpn(特征金字塔网络)+pan(路径聚合网络)的结构作为颈部网络;颈部网络部分的c3模块和conv模块的卷积核的数量较大,生成的特征图通道数较多,这会占用较多的缓存空间,减低运行速度,影响整体网络的计算量;为了对模型轻量化,将配置文件中颈部网络部分的c3模块和conv模块卷积核数量降至128,可以减少生成特征图的通道数,减降低网络宽度,减少模型的参数量与计算量,加快模型运行速度。
[0072]
s44:改进检测尺度,具体内容为:
[0073]
当输入图像尺寸为640
×
640时,yolo v5对应的3种规格的检测尺度分别为20
×
20、40
×
40、80
×
80;对于20
×
20的检测尺度,其感受野为32
×
32大小的像素区域,主要是用来检测大型物体,而40
×
40的检测尺度其感受野为16
×
16大小的像素区域,主要是用来检测中型物体,最后80
×
80的检测尺度,感受野为8
×
8大小的像素区域,主要是用来检测小型物体;
[0074]
在自然光照下拍摄的甘蔗蚜虫分布在叶片的各个位置,各个角落,且叶片上存在不同生长期的甘蔗蚜虫形态,所以映射到图像中的甘蔗蚜虫也有着不同大小的尺度,尤其是包含着多个甘蔗蚜虫目标的密集图像;本发明需检测的单个甘蔗蚜虫个体占输入图像比例很小,多次下采样会引起训练过程中,卷积层提取到的微小目标特征信息丢失,导致体型微小的甘蔗蚜虫的幼虫无法识别;一幅密集图像中可能包含着中尺度、小尺度和微小尺度等众多甘蔗蚜虫目标;而yolo v5的小尺度检测层对这些微小的甘蔗蚜虫幼虫的适用性较差,同时大尺度检测层对甘蔗蚜虫检测难以发挥作用。为了应对自然光照下复杂的密集场景,如图8所示,本发明对yolo v5的三种检测尺度进行改进;在这三种检测尺度中保留40
×
40和80
×
80这两种中小型目标的检测尺度,删除原始模型中20
×
20大目标的检测尺度,增加160
×
160微小尺寸的检测尺度;该微尺度检测层是通过stem模块对输入图像的完成4倍下采样提取的较低的空间特征与深层语义特征融合来生成特征图。新的微尺度检测层形成了更广泛、更详细的检测网络结构,更加适用于检测自然光照场景下图像中微小、密集的甘蔗蚜虫,使得网络能够更好地符合要检测的目标。
[0075]
s5:输入数据集训练得到轻量化模型;
[0076]
使用pytorch1.7.0深度学习框架,训练图像尺寸设置为640
×
640;学习率、批量大小、迭代次数和类别数分别设置为0.001、16、500和1;采用yolo v5四种模型中最小的yolo v5s模型对数据集进行训练;如图9所示,采用yolo v5的马赛克增强(mosaic)的方法对数据集图片进行数据增强;mosaic数据增强采用随机缩放、随机裁剪、随机排布的方式对4张随
机图片进行拼接,最后将拼接好的图片缩放为设定的输入尺寸,并作为新的样本传入模型;mosaic数据增强方法丰富了目标的位置分布情况而且在一定程度上放大了小尺寸目标,从而在提高模型训练效率的同时提高模型的泛化能力;数据集输入并训练得到基于轻量化yolo v5的甘蔗蚜虫目标检测模型;
[0077]
本发明采用精确率(p)、召回率(r)和平均精度均值(map)作为模型性能评价的相关指标;精确率用来衡量模型检测的准确性,即查准率;召回率用来评估模型检测的全面性,即查全率;单类别精确率(ap)采用积分法计算精确率、召回率曲线以及坐标轴所包围的面积;通过对单类别的ap值相加再除以类别数,可以得到map值,一般以iou=0.5时计算map值,即map@0.5,其中,iou为交并比,为计算map的重要函数,具体公式如下所示:
[0078][0079][0080][0081][0082][0083]
式(1)中a、b分别为预测框和真实框,分母为两框交集,分子为两框并集。式(2)和(3)中tp为真阳性:将阳性目标预测为阳性;fp为假阳性:阴性目标错误预测为阳性;fn为假阴性:阳性目标错误预测为阴性。式(4)中p(r)为平滑后的精确率、召回率曲线,对其积分操作即求平滑后曲线所占的面积。式(5)中c为类别数,api表示第i个类别的精确率,其中i为序号,本发明的类别数为1。
[0084]
根据表1的实验结果表明,轻量化后的模型相比原模型总参数量减少了95.13%,模型存储空间仅有1.03mb,推理时间减少了61.75%,平均精度均值(mean average precision,map)提高了0.9%;
[0085]
表1改进模型与原始模型对比
[0086]
[0087]
说明本发明的改进方案在模型轻量化的基础上还提升了模型的精度和检测速度;如图10是本发明的轻量化yolo v5模型对甘蔗蚜虫图像目标检测的示意图,可以看出在密集的甘蔗蚜虫图像中本模型也具有较好的检测效果;因此本发明提出的适用于农田自然光照环境的甘蔗蚜虫目标检测方法具有识别精度高、识别速度快、内存占用率低等优点,有利于模型在移动终端上部署。
[0088]
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

技术特征:
1.一种基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,包括以下步骤:s1:甘蔗蚜虫图像采集;s2:图像预处理;s3:制作数据集;s4:对yolo v5模型轻量化改进;s5:输入数据集训练得到轻量化模型。2.根据权利要求1所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s1包括:采集的图像包括四种光照强度:弱光、强光,直射光和漫射光。3.根据权利要求1所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s2包括:采集的原始图像分割为一定像素的若干子图像。4.根据权利要求1所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s3包括:使用labelimg对数据集中每幅图像的甘蔗蚜虫进行人工标注,标注时以目标的最小外接矩形作为真实框。5.根据权利要求1所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s4包括:s41:使用stem模块替换主干网络中的focus模块;s42:使用shufflenetv2的inverted residual模块替换主干网络中的c3模块、conv模块和spp模块;s43:降低颈部网络宽度;s44:改进检测尺度。6.根据权利要求5所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s41包括:stem模块结构首先使用步长为2的3
×
3卷积;然后使用两分支的结构,一个分支使用1
×
1卷积和步长为2的3
×
3卷积,另一个分支使用一个最大池化;最后将两个分支通过concat连接,经过1
×
1卷积输出,图片经过stem模块后完成4倍下采样。7.根据权利要求5所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s42包括:当步长为1时,inverted residual模块利用不断重复的1
×
1卷积和3
×
3深度卷积提取特征,采用短路连接来增加网络深度;在每个短路连接前加入channel split操作,将输入特征通道一分为二;将两个分支通过concat连接后加入channel shuffle模块,把每个特征通道打乱重排以混合特征;当步长为2时,inverted residual模块使用下采样单元块,每个特征通道都采用步长为2的3
×
3深度卷积进行下采样,一个分支在之后增加一个1
×
1卷积,另一个分支在前后各增加一个1
×
1卷积,两分支通过concat连接;最后使用channel shuffle模块,把每个特征通道打乱重排以混合特征;深度卷积是一个卷积核负责一个通道,一个通道只被一个卷积核卷积。8.根据权利要求5所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s43包括:将yolo v5配置文件中颈部网络部分的c3模块和conv模块卷积核数设为128。
9.根据权利要求5所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s44包括:轻量化yolo v5对应的3种规格的检测尺度分别为40
×
40、80
×
80、160
×
160;增加的160
×
160微尺度检测层是通过stem 模块将输入图像的维数降低4倍提取的较低的空间特征与深层语义特征融合来生成特征图。10.根据权利要求1所述的基于轻量化yolo v5的甘蔗蚜虫目标检测方法,其特征在于,所述步骤s5包括:使用pytorch1.7.0深度学习框架,训练图像尺寸设置为640
×
640,学习率、批量大小、迭代次数和类别数分别设置为0.001、16、500和1;采用mosaic增强的方法对数据集图片进行数据增强。

技术总结
本发明涉及目标检测技术领域,尤其涉及一种基于轻量化YOLO v5的甘蔗蚜虫目标检测方法,包括:S1:甘蔗蚜虫图像采集;S2:图像预处理;S3:制作数据集;S4:对YOLO v5模型轻量化改进;S5:输入数据集训练得到轻量化模型。本发明使用Stem模块,ShuffleNetV2的Inverted Residual模块,减少颈部网络宽度来对YOLO v5模型轻量化,同时删除大尺度检测层,增加微小尺度检测层,使得网络能够更好地符合甘蔗蚜虫中密集微小目标的检测,与原始YOLO v5模型相比,具有识别精度高、识别速度快、内存占用率低等优点,有利于模型在移动终端上部署。有利于模型在移动终端上部署。有利于模型在移动终端上部署。


技术研发人员:徐伟悦 徐涛 王炎 陈伟 张储
受保护的技术使用者:常州大学
技术研发日:2022.04.11
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-7318.html

最新回复(0)