一种基于深度学习的葡萄叶片病害检测方法

文档序号:36643763发布日期:2024-01-06 23:28阅读:23来源:国知局
一种基于深度学习的葡萄叶片病害检测方法

本发明涉及葡萄叶片病害检测方法领域,尤其是涉及一种基于深度学习的葡萄叶片病害检测方法。


背景技术:

1、在葡萄成长时,常常因为病害而受到侵蚀,不仅会降低葡萄的果品和产量,严重时甚至使葡萄园遭遇毁灭性打击。由于葡萄有重要的营养价值、药用价值和经济价值,因此提高葡萄叶片病害防治效率是提高果品质量和产量的关键。而葡萄叶片的病害种类繁多,很多发生病状相似,人工识别困难,因此如何准确高效地识别出葡萄叶片病害类型,并且给出相应的防治策略对于葡萄产业的发展具有重要的意义。目前,葡萄叶片病害仍然是人工观察为主。农民及科研人员需要用肉眼观察叶片上的病斑,根据自己的经验判断是否为哪种病害。病害种类的准确性取决于相关人员的经验。此外,葡萄叶片上的病斑区域有些是非常微小的,这在增加检测难度的同时,也极大地影响了人员的检测能力。

2、国内外的研究学者结合深度学习技术对葡萄叶片病害类型的检测进行了深入的研究,并且取得了一定的研究成果,提高了对葡萄叶片病害检测的精度,缩短了检测病害所需的时间,例如卷积神经网络,递归神经网络等。大部分葡萄叶片病害面积仅仅是整个叶片很小的一部分,因此葡萄叶片病害检测属于对小目标的检测,需要结合yolov7进行改进,设计一种能高效并且准确定位的小目标检测方法,提高葡萄叶片病害检测的准确率。


技术实现思路

1、本发明的目的在于提供一种基于深度学习的葡萄叶片病害检测方法,以解决上述背景技术中存在的问题。

2、为了实现以上发明目的,本发明采取的技术方案如下:

3、一种基于深度学习的葡萄叶片病害识别方法,包括以下步骤:

4、步骤一:获取葡萄叶片不同病害的图像,进行标签标注,构建初始数据集;

5、步骤二:对构建好的初始数据集进行数据增强,扩充数据集,并划分训练集和测试集;

6、步骤三:将训练集送入主干网络进行特征提取并对ca(coordinate attention,通道注意力)注意力进行改进,在ca注意力模块中添加最大池化、平均池化和全连接层;

7、步骤四:将非对称卷积引入到e-elan(extended-efficient long-rangeattention network,扩展高效层聚合网络)中进行改进,增强e-elan模块提取特征能力;

8、步骤五:在panet(pathaggregation network,路径聚合网络)网络中新增一个小尺度检测层,提高对小目标病害的检测精度。

9、步骤六:将损失函数ciou(complete intersection over union,完全交并比)改进为siou(smoothed intersection over union,平滑交并比),使回归框的精度更加准确;

10、步骤七:训练结束后得到模型的训练权重,利用训练权重对测试集进行验证,检验模型的实际效果。

11、进一步地,步骤一中葡萄叶片的常见病害包括褐斑病、黑腐病、轮斑病,对不同病害图像进行标签标注。

12、进一步地,步骤二中所述的扩充数据集为:

13、对图像进行仿射变换、平移、旋转方法处理,将数据集扩充,来增加数据集的丰富性,防止模型过拟合的情况出现。

14、进一步地,步骤三中所述的改进ca注意力模块为:

15、根据权利要求1所述的基于改进yolov7模型的葡萄叶片病害检测方法,其特征在于:步骤三中,改进ca注意力机制,在ca注意力中引入最大池化以获取更加丰富的特征信息,并且在ca注意力中引入平均池化和全连接层,对深层图像特征进行不同权重分配,获取通道信息和位置信息,提高模型的识别效果。在yolov7网络模型的backbone结构的最后一层和head结构的concat后面添加改进后的ca注意力机制,增强网络学习特征的表达能力,提高网络训练模型的平均精度均值。将输入特征图x∈rc×h×w在高度和宽度两个方向上进行全局平均池化(global average pooling,gap)和全局最大池化(global max pooling,gmp)操作,获得高度和宽度两个方向的特征图,具体公式为:

16、

17、

18、其中为高度为h的第c通道输出,为w的第c通道输出,xc为第c通道输入,i为宽度方向上的迭代变量,j为高度方向上的迭代变量,m为最大值函数。

19、对尺寸为c×h×w输入特征图分别按照x方向和y方向进行池化,分别生成尺寸为c×h×1和c×1×w的特征图。将生成的c×1×w的特征图进行变换,进行concat操作,之后进行利用1×1卷积核进行降维,简称f1,最后进行激活操作δ,生成特征图f。

20、

21、沿着空间维度,再将f进行split操作,分成fh∈rc/r×h×1和fw∈rc/r×1×w,然后分别利用1×1卷积进行升维度操作,用fh和fw表示。再结合sigmoid激活函数σ得到张量gh∈rc×h×1和gw∈rc×1×w。

22、gh=σ(fh(fh))

23、gw=σ(fw(fw))

24、对输入特征图x进行处理来计算合适的权重。x被用于计算两个权重之间的混合比例。通过对x进行平均池化,可以获得一个的特征图,用于表示水平和垂直注意力权重的比例。最后进行降维操作f,具体公式为:

25、

26、其中tc为输出,x为输入。最后结果用out表示,具体公式为:

27、out=tc×xc(i,j)×(gh(i,j)+gw(i,j))

28、进一步地,步骤四中所述的将非对称卷积引入到e-elan中,具体操作为:

29、对yolov7中的e-elan网络进行改进,在elab模块之间增加跳跃连接和1×3、3×1卷积结构,丰富网络提取到的特征,提高模型的检测精度。

30、进一步地,步骤五中小尺度检测层具体为:

31、为了网络获得更多的小目标信息,增加一个尺寸为160×160的新预测分支。这样原yolov7网络就扩展到四种尺度的输出,在160×160、80×80、40×40、20×20这四种尺度上进行预测,可以在保留深层特征图语义信息的同时获得更多浅层符征图的位置信息,能够更好地适用于小尺寸葡萄叶片病害的检测与识别。此外,原模型不断的对载入的信息进行上采样和下采样,这无疑会损失许多的细节信息并会降低模型检测小目标时的精度。因此,将backbone上的模块跳跃连接以保留住更多的细节信息减少信息的损耗。

32、进一步地,步骤六中所述的siou损失函数具体为:

33、siou损失函数在原始iou的基础上,引入了角度感知、距离损失和形状损失,以提高检测模型训练时的速度与推理的准确度。

34、siou添加的角度感知首先会预测通过角度是否大于45°,角度成本λ的计算为:

35、

36、其中:

37、

38、

39、

40、

41、式中,和表示目标框中心点坐标;和表示预测框中心点坐标;σ表示目标框与预测框中心点间的距离;cw和ch表示目标框与预测框中心点间在宽度和高度方向的差值。距离成本代表预测框与真实框两框的中心点距离。结合上述定义的角度成本,siou对距离成本δ重新定义如下所示:

42、

43、其中:

44、

45、

46、γ=2-λ

47、形状成本ω的定义如式所示:

48、

49、其中:

50、

51、

52、式中,θ为控制形状误差关注程度的值,其选择与具体的数据集有关,若θ=1,则会优化形状误差,从而降低预测框与真实框形状的自由移动。目标框回归损失为:

53、lbox=1-iou+(δ+ω)/2

54、进一步地,所述步骤七中,网络训练的硬件环境:intel(r)core(tm)i7-9700kram为64gb的ddr4,cuda版本为1.12.1,深度学习框架为pytorch 1.7;网络训练的软件环境:训练的参数:batch_size设置为16,学习率为0.001,权重衰减系数为0.0005,动量因子为0.937,模型迭代次数设置为200次。当模型损失函数与平均精度均值趋于稳定时,得到最终的训练权重best.pt,并用训练权重检验测试集。

55、综上所述,本发明有益效果为:

56、针对葡萄叶片小病斑检测效果差的问题,提出了基于改进yolov7的葡萄叶片病害检测算法。该算法首先构建新的特征层,并且引入改进e-elan结构。其次,在原ca注意力中引入maxpool以获取更加丰富的特征信息,在ca注意力中平均池化和全连接层,对深层图像特征进行不同权重分配,获取通道信息和位置信息,提高模型的识别效果。最后将损失函数ciou替换为siou,增强网络的定位能力。与现有技术相比,本发明通过改进yolov7算法,能够准确快速地对复杂背景下的葡萄叶片病害进行识别。本发明与yolov7相比检测精度有明显提高,可部署于移动端设备,可为葡萄叶片病害的早期防治提供指导。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1