一种基于改进YOLOv7的鱼虾病体识别方法

未命名 08-14 阅读:126 评论:0

一种基于改进yolov7的鱼虾病体识别方法
技术领域
1.本发明涉及智能识别领域,尤其涉及一种基于改进yolov7的鱼虾病体识别方法。


背景技术:

2.目前,鱼类和虾类成为主要的渔业资源,在生产过程中,鱼类和虾类经常爆发疾病造成渔业生产的重大经济损失。鱼类中经常出现的疾病有竖鳞病、水霉病、赤皮病等,患病的鱼体体表颜色、纹理与正常的鱼体体表明显不同;虾类中经常出现的疾病有对虾黑斑病、对虾白斑病、对虾红体病等,病虾的体表与正常虾的体表明显不同。
3.随着计算机技术的发展,可以利用水下成像技术对水体中的生物进行监测,但是由于水中光线的衰弱和散射,色彩失真、曝光不足和模糊导致图像退化,得到的原始水下图像并非真实水下图像,对同一个生物进行水上和水下拍摄,得到的图像的生物体的颜色不同。因此现有的鱼虾病体识别技术没有充分考虑原始水下图像和真实水下图像的差异,导致实际应用中对鱼虾病体的识别并不精准。


技术实现要素:

4.为了解决上述技术问题,本发明的目的是提供一种基于改进yolov7的鱼虾病体识别方法,能够将原始水下场景图像转化为逼真水下场景图像,解决原始水下场景中图像失真的问题,使得对病鱼病虾的识别更加准确。
5.本发明所采用的第一技术方案是:一种基于改进yolov7的鱼虾病体识别方法,包括以下步骤:
6.采集病鱼病虾的原始水下图像数据和水上图像数据并进行标注,得到带标注的原始水下图像数据和带标注的水上图像数据;
7.采用生成式对抗网络将所述带标注的原始水下图像数据转化为逼真水下图像数据;
8.利用所述带标注的原始水下图像数据、所述带标注的水上图像数据和所述逼真水下图像数据构建数据集并进行划分,得到训练集数据;
9.引入注意力机制,对yolov7网络进行改进,得到引入注意力机制的yolov7网络;
10.对主干特征提取网络轻量化处理,并采用新边框回归损失函数,得到最终识别网络;
11.利用训练集数据对所述最终识别网络进行训练,得到训练好的最终识别网络。
12.在本技术方案中,采用改进的对尺度密集生成式对抗网络依据原始水下图像数据生成逼真水下图像数据,消除水下因光线衰减、散射、色彩失真等因素造成的图片失真的问题,提高识别精度,另外,对yolov7的改进使得在提升检测效果的同时不增加其它参数和计算量,实现了网络的轻量化,还加速了收敛速度,提高了回归精度。
13.进一步,所述采用生成式对抗网络将所述带标注的原始水下图像数据转化为逼真水下图像数据这一步骤,其具体为:
14.将所述带标注的原始水下图像数据输入至所述生成式对抗网络中;
15.利用生成器基于所述带标注的原始水下图像数据生成水下合成图像;
16.利用判别器将所述水下合成图像与所述带标注的原始水下图像数据区分开,得到逼真水下图像数据。
17.进一步,所述生成式对抗网络所使用的损失函数包括双重对比损失、l1损失和梯度损失。
18.进一步,所述引入注意力机制,对yolov7网络进行改进,得到引入注意力机制的yolov7网络这一步骤,其具体为:
19.在主干特征提取网络中,分别把第一层和第三层conv模块替换成simam模块;
20.在yolov7 head中接收从主干特征提取网络传输来的特征图的前两个conv层后添加simam模块;
21.得到引入注意力机制的yolov7网络。
22.进一步,所述对主干特征提取网络轻量化处理包括:
23.在所述引入注意力机制的yolov7网络的所述主干特征提取网络中引入ghostsppcspc模块和ghostconv模块;
24.将所述主干特征提取网络中的conv模块和sppcspc模块,分别替换成ghostconv模块和ghostsppcspc模块;
25.将bep unit与ghostconv模块结合,构建bepghostc3模块,之后将bepghostc3模块替换ghostsppcspc模块中的ghostc3模块。
26.进一步,所述新边框回归损失函数采用eiou loss损失函数,包括重叠损失、中心距离损失和宽高损失,所述eiou loss损失函数的惩罚项公式表示为:
[0027][0028]
其中,l
iou
表示iou损失,l
dis
表示距离损失,l
asp
表示方向损失,iou表示真实框与预测框的重叠程度,b
p
和b
gt
分别表示预测框和目标框中心点的坐标,d(b
p
,b
gt
)表示预测框中心点与目标框中心点之间的欧氏距离,ωc和hc是预测框和目标框最小外界矩形的宽高,ω
p
和ω
gt
分别表示预测框和目标框的相关信息,d(ω
p

gt
)表示预测框与目标框宽度的差值,h
p
和h
gt
分别表示预测框的高和目标框的高,d(h
p
,h
gt
)表示预测框的高和目标框的高之间的欧式距离。
[0029]
进一步,所述利用所述带标注的原始水下图像数据、所述带标注的水上图像数据和所述逼真水下图像数据构建数据集并进行划分,得到训练集数据这一步骤之后,还包括:
[0030]
对所述训练集数据进行数据增强。
[0031]
本发明提供的一种基于改进yolov7的鱼虾病体识别方法的有益效果是:通过改进uwgan,将病鱼病虾的原始水下图像数据转化为逼真的水下数据,解决了因水中光线的衰弱、散射、色彩失真曝光不足等因素造成的水下图片失真的问题;另外,改进yolov7网络,引入注意力机制,并采用ghostnet网络作为主干特征提取网络,实现网络轻量化,提高了计算速度和精度。
附图说明
[0032]
图1是本发明一种基于改进yolov7的鱼虾病体识别方法的步骤流程图。
具体实施方式
[0033]
下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
[0034]
如图1所示,本发明提供了一种基于改进yolov7的鱼虾病体识别方法,该方法包括以下步骤:
[0035]
1、采集病鱼病虾的原始水下图像数据和水上图像数据并进行标注,得到带标注的原始水下图像数据和带标注的水上图像数据。
[0036]
在本实施例中,分别采用水下高清相机和水上高清相机多机位拍摄病鱼病虾体表图像,得到病鱼病虾的原始水下图像数据和水上图像数据,同时使用网络爬虫技术获取网络中所有研究病鱼病虾的相关图像数据,接着对所获取的关于病鱼病虾的所述原始水下图像数据、水上图像数据和网络中的病鱼病虾的相关图像数据进行筛选,去除像素模糊且无法识别的图片数据,并将筛选后的图像数据进行分类,具体的,将获取的病鱼图像数据按照赤皮病、水霉病、竖鳞病、出血病、白点病和本尼登虫病进行划分,得到这六类病变图像数据;将获取的病虾图像数据按照对虾黑斑病、对虾白斑病、对虾红体病和对虾藤壶附着症进行分类,得到这四类病变图像数据,接着对分好类的病鱼图像数据和病虾图像数据进行标注,得到所述带标注的原始水下图像数据和所述带标注的水上图像数据。
[0037]
2、采用生成式对抗网络将所述带标注的原始水下图像数据转化为逼真水下图像数据。
[0038]
在本实施例中,将所述带标注的原始水下图像数据输入至多尺度密集生成式对抗网络中,利用生成器基于所述带标注的原始水下图像数据生成水下合成图像,再利用判别器将所述水下合成图像与所述带标注的原始水下图像数据区分开,得到所述逼真水下图像数据。
[0039]
所述生成式对抗网络uwgan包括生成器网络和判别器网络,所述生成器网络的全卷积网络采用残差msdb模块,即rmsdb模块。首先在msdb模块中,每个串联操作具有五或六个特征图,其中一个特征直接来自上一层的输出,其中两条中间路径的内核大小不同,以不同比例检测特征图,最后引入1
×
1卷积作为瓶颈层,促进特征融合,提高计算速率。msdb模块中的具体操作表示如下:
[0040][0041][0042][0043][0044][0045][0046]
其中,o1表示特征图x
n-1
经过1
×
1卷积和使用leaky relu激活函数激活后的输出
特征图,t1表示特征图x
n-1
经过3
×
3卷积和使用leaky relu激活函数激活后的输出特征图,f1表示特征图x
n-1
经过5
×
5卷积和使用leaky relu激活函数激活后的输出特征图,t2表示特征图t1、f1、x
n-1
相加后经过3
×
3卷积和使用leaky relu激活函数激活后的输出特征图,f2表示特征图t1、f1、x
n-1
相加后经过5
×
5卷积和使用leaky relu激活函数激活后的输出特征图,xn表示特征图x
n-1
经过rmsdb模块处理后得到的特征图,x
n-1
表示经过了n-1次处理得到的特征图,ω表示权重,*表示卷积操作,表示卷积核大小为1
×
1,并处于rmsdb模块第1个卷积层的权重,表示卷积核大小为3
×
3,并处于rmsdb模块第1个卷积层的权重,表示卷积核大小为5
×
5,并处于rmsdb模块第1个卷积层的权重,表示卷积核大小为5
×
5,并处于rmsdb模块第2个卷积层的权重,表示卷积核大小为3
×
3,并处于rmsdb模块第2个卷积层的权重,表示卷积核大小为1
×
1,并处于rmsdb模块第3个卷积层的权重,l(x)表示leaky relu激活函数,[t1,f1,x
n-1
]、[t1,f1,x
n-1
]、[t2,f2,o1,x
n-1
]指代特征图的串联。
[0047]
然后在msdb模块中加入跳跃连接,构建rmsdb模块,以充分利用信息流和梯度。
[0048]
所述判别器网络用于将生成器生成的合成图像与相应的真实水下图像区分开。在所述多尺度密集生成式对抗网络中所采用的损失函数包括双重对比损失、l1损失和梯度损失,具体表示为:
[0049][0050]
其中,l
uwgan
表示多尺度密集生成式对抗网络的损失函数,和表示双重对比损失,l
l1
(g)表示l1损失,lg(g)梯度损失,λ1表示l1损失的权重,λg表示梯度损失的权重。
[0051]
其中,双重对比损失表示为:
[0052][0053][0054]
其中,d(x)表示x来自真实水下图像的输出概率,λ1和λg分别为l1损失和梯度损失的权重,g(y)表示由生成器生成的图像值,d(g(y))表示来自生成器生成的图像的输出概率。
[0055]
l1损失和梯度损失分别表示为:
[0056]
l
l1
(g)=e[‖x-g(y)‖1]
[0057][0058]
其中,x表示真实水下图像值,表示真实水下图像值的偏导数,表示由生成器生成的图像值的偏导数。
[0059]
3、利用所述带标注的原始水下图像数据、所述带标注的水上图像数据和所述逼真水下图像数据构建数据集并进行划分,得到训练集数据。
[0060]
在本实施例中,将得到的所述带标注的原始水下图像数据、所述带标注的水上图像数据和所述逼真水下图像数据混合,然后按照一定的比例划分为训练集数据、测试集数据和验证集数据,比如可以按照8:1:1的比例进行划分,当然也可以按照其它的方式进行划分。在得到所述训练集数据后,对所述训练集数据进行增强,优选的,采用mosaic数据增强方法,每次从所述训练集数据中随机抽取4张图像,进行随机位置的裁剪拼接,在裁剪拼接图像的时候,随机取得的4张图片依次以一个随机位置的十字线裁剪,取对应的部分进行拼接。同时,每个原图对应的目标框也会受十字线裁剪的限制,不会超过原图裁剪范围,将裁减后的四张图片合成为新图片。
[0061]
4、引入注意力机制,对yolov7网络进行改进,得到引入注意力机制的yolov7网络。
[0062]
在本实施例中,在主干特征提取网络中,分别把第一层和第三层conv模块替换成simam模块,然后在yolov7 head中接收从主干特征提取网络传输来的特征图的前两个conv层后添加无参注意力simam模块。所述simam模块不同于现有的通道注意力模块和空间注意力模块,simam模块无需额外参数为特征图推导出3d注意力权值,simam模块使用能量函数推导出一种快速解析解,避免了过多的结构调整。所述能量函数的具体表达式为:
[0063][0064]
其中,w
t
为权重,b
t
为偏置,y为输出特征,xi为输入特征单个通道中的其他神经元,m为通道上的神经元数量,λ一个表示非负整数。
[0065]
所述解析解的表达式为:
[0066][0067][0068]
其中,w
t
为权重,t为输入特征单个通道中的目标神经元,u
t
为在该通道中除t之外的所有神经元上计算的均值,为在该通道中除t之外的所有神经元上计算的方差
[0069]
5、对主干特征提取网络轻量化处理,并采用新边框回归损失函数,得到最终识别网络。
[0070]
在本实施例中,所述对主干特征提取网络轻量化处理是将主干特征提取网络替换为更轻量的ghostnet网络,再结合bep unit与ghostconv模块,构建bepghostc3模块。具体的,在引入注意力机制后的主干特征提取网络中引入ghostsppcspc模块和ghostconv模块,并将引入注意力机制后的主干特征提取网络中的conv模块和sppcspc模块,分别替换成ghostconv模块和ghostsppcspc模块;然后将bep unit与ghostconv模块结合,构建bepghostc3模块,将bepghostc3模块替换ghostsppcspc模块中的ghostc3模块。采用轻量化的新主干特征提取网络,可以生成更多的特征映射,具体来说,可以基于一组内在特征映射,应用成本计算量的线性变换得到许多ghost特征映射,这样可以充分揭示内在特征隐含的信息,再利用bepghostc3模块来达到更好的精度与速度之间的平衡。
[0071]
另外,采用eiou loss作为所述新边框回归损失函数。所述eiou loss将纵横比的损失项拆分成预测的宽高分别与最小外接框宽高的差值,加速了收敛提高了回归精度,使
回归过程专注于高质量锚框。所述eiou loss损失函数包含三个部分:重叠损失,中心距离损失,宽高损失,其中宽高损失直接使目标盒与锚盒的宽度和高度之差最小。所述eiou loss的惩罚项表达式为:
[0072][0073]
其中,l
iou
表示iou损失,l
dis
表示距离损失,l
asp
表示方向损失,iou表示真实框与预测框的重叠程度,b
p
和b
gt
分别表示预测框和目标框中心点的坐标,d(b
p
,b
gt
)表示预测框中心点与目标框中心点之间的欧氏距离,ωc和hc是预测框和目标框最小外界矩形的宽高,ω
p
和ω
gt
分别表示预测框和目标框的相关信息,d(ω
p

gt
)表示预测框与目标框宽度的差值,h
p
和h
gt
分别表示预测框的高和目标框的高,d(h
p
,h
gt
)表示预测框的高和目标框的高之间的欧式距离。
[0074]
基于上述对yolov7网络的改进,得到最终识别网络。
[0075]
6、利用训练集数据对所述改进yolov7网络进行训练,得到训练好的最终识别网络。
[0076]
在本实施例中,采用上述通过mosaic数据增强后的训练集数据对改进yolov7网络进行训练,得到训练好的最终识别网络,再将待测图像数据输入到训练好的最终识别网络中进行检测,得到病鱼病虾的识别数据。
[0077]
需要说明的是,本实施例在实验中所使用的硬件配置为intel core i5-7300hq@2.50ghz处理器、nvidiageforce rtx 3060ti,8g显存gpu,内存16g,操作系统为windows 10,开发平台使用pycharm,编程语言为python,深度学习的框架为pytorch,gpu加速库为cuda10.2。
[0078]
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。

技术特征:
1.一种基于改进yolov7的鱼虾病体识别方法,其特征在于,包括以下步骤:采集病鱼病虾的原始水下图像数据和水上图像数据并进行标注,得到带标注的原始水下图像数据和带标注的水上图像数据;采用生成式对抗网络将所述带标注的原始水下图像数据转化为逼真水下图像数据;利用所述带标注的原始水下图像数据、所述带标注的水上图像数据和所述逼真水下图像数据构建数据集并进行划分,得到训练集数据;引入注意力机制,对yolov7网络进行改进,得到引入注意力机制的yolov7网络;对主干特征提取网络轻量化处理,并采用新边框回归损失函数,得到最终识别网络;利用训练集数据对所述最终识别网络进行训练,得到训练好的最终识别网络。2.根据权利要求1所述一种基于改进yolov7的鱼虾病体识别方法,其特征在于,所述采用生成式对抗网络将所述带标注的原始水下图像数据转化为逼真水下图像数据这一步骤,其具体为:将所述带标注的原始水下图像数据输入至所述生成式对抗网络中;利用生成器基于所述带标注的原始水下图像数据生成水下合成图像;利用判别器对所述水下合成图像辨别真伪,与所述生成器进行对抗训练,输出逼真水下图像数据。3.根据权利要求2所述一种基于改进yolov7的鱼虾病体识别方法,其特征在于,所述生成式对抗网络所使用的损失函数包括双重对比损失、l1损失和梯度损失。4.根据权利要求1所述一种基于改进yolov7的鱼虾病体识别方法,其特征在于,所述引入注意力机制,对yolov7网络进行改进,得到引入注意力机制的yolov7网络这一步骤,其具体为:在主干特征提取网络中,分别把第一层和第三层conv模块替换成simam模块;在yolov7 head中接收从主干特征提取网络传输来的特征图的前两个conv层后添加simam模块;得到引入注意力机制的yolov7网络。5.根据权利要求1所述一种基于改进yolov7的鱼虾病体识别方法,其特征在于,所述对主干特征提取网络轻量化处理包括:在所述引入注意力机制的yolov7网络的所述主干特征提取网络中引入ghostsppcspc模块和ghostconv模块;将所述主干特征提取网络中的conv模块和sppcspc模块,分别替换成ghostconv模块和ghostsppcspc模块;将bep unit与ghostconv模块结合,构建bepghostc3模块,之后将bepghostc3模块替换ghostsppcspc模块中的ghostc3模块。6.根据权利要求1或5任一项所述一种基于改进yolov7的鱼虾病体识别方法,其特征在于,所述新边框回归损失函数采用eiou loss损失函数,包括重叠损失、中心距离损失和宽高损失,所述eiou loss损失函数的惩罚项公式表示为:其中,l
iou
表示iou损失,l
dis
表示距离损失,l
asp
表示方向损失,iou表示真实框与预测框
的重叠程度,b
p
和b
gt
分别表示预测框和目标框中心点的坐标,d(b
p
,b
gt
)表示预测框中心点与目标框中心点之间的欧氏距离,ω
c
和h
c
是预测框和目标框最小外界矩形的宽高,ω
p
和ω
gt
分别表示预测框和目标框的相关信息,d(ω
p

gt
)表示预测框与目标框宽度的差值,h
p
和h
gt
分别表示预测框的高和目标框的高,d(h
p
,h
gt
)表示预测框的高和目标框的高之间的欧氏距离。7.根据权利要求1所述一种基于改进yolov7的鱼虾病体识别方法,其特征在于,所述利用所述带标注的原始水下图像数据、所述带标注的水上图像数据和所述逼真水下图像数据构建数据集并进行划分,得到训练集数据这一步骤之后,还包括:对所述训练集数据进行数据增强。

技术总结
本发明公开了一种基于改进YOLOv7的鱼虾病体识别方法,该方法包括:采集病鱼病虾的原始水下图像数据和水上图像数据并进行标注;采用生成式对抗网络将所述带标注的原始水下图像数据转化为逼真水下图像数据;利用所述带标注的原始水下图像数据、所述带标注的水上图像数据和所述逼真水下图像数据构建数据集并进行划分;引入注意力机制,对YOLOv7网络进行改进;对主干特征提取网络轻量化处理,并采用新边框回归损失函数,得到最终识别网络;利用训练集数据对所述最终识别网络进行训练,得到训练好的最终识别网络。采用本技术方案,能够去除水下环境对图像真实度的影响,得到逼真水下图像数据,使得模型对病鱼病虾的检测更加准确,精度更高。精度更高。精度更高。


技术研发人员:王卓薇 阮柱康 程良伦 江晓琦
受保护的技术使用者:广东工业大学
技术研发日:2023.05.22
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐