一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于改进Xception算法的葡萄叶片病害识别方法

2023-02-06 20:00:15 来源:中国专利 TAG:

基于改进xception算法的葡萄叶片病害识别方法
技术领域
1.本发明涉及机器视觉图像识别和图像分类领域,特别涉及一种基于改进xception算法的葡萄叶片病害识别方法。


背景技术:

2.葡萄是我国一种重要的经济作物,营养丰富,味道甜美,用途广泛,极具经济价值。随着培育技术的提高,我国葡萄产量逐年上升,是葡萄生产大国。然而,受气候变化等影响,葡萄叶片病害发生的种类不断增多,包括黑腐病、轮斑病、褐斑病等,如果不及时准确防治,就会严重影响葡萄的产量,对果农造成严重的经济损失。因此,对葡萄叶片病害种类进行及时准确的分类识别,有利于果农精确防治,减少损失。
3.传统识别葡萄叶片病害的方法主要是靠有经验的果农或者葡萄病害领域的专家通过对葡萄叶片的肉眼识别来人工判断,而这种使用人工诊断病害的方式需要耗费大量的人力,效率及其低下,对于日益增加的葡萄种植户来说可行性并不高,而且仅依靠经验判断病害的结果差别比较大,很难保证检诊断结果的准确性。因此,找出一种高效精准的葡萄叶片病害识别方法,对于葡萄病害防治具有重要意义。
4.深度学习则能够自动提取图片特征,不需要复杂的特征工程,在计算机视觉领域应用广泛。其中,作为最经典的深度学习算法,卷积神经网络(convolutional neural networks,cnn)在图像识别领域取得了很好的成果。相对于深度卷积网络庞大的参数量,xception网络作为轻量化的卷积神经网络,对于部署在移动端非常高效。


技术实现要素:

5.针对上述内容,本发明创造了一种基于改进xception算法的葡萄叶片病害识别方法,提高葡萄病害识别精度,降低模型参数量。
6.为了实现上述内容,本发明采用的技术方案如下:
7.一种基于改进xception算法的葡萄叶片病害识别方法,包括如下步骤:
8.步骤1:搜集葡萄叶片健康、黑腐病、轮斑病、褐斑病四种叶片图像,制作葡萄叶片病害识别数据集,作为本实验的训练数据集,并进行预处理;
9.步骤2:获取xception网络作为实验的基础网络模型,对xception网络进行改进,搭建有效的葡萄病害识别网络grape-xception;
10.步骤3:下载imagenet数据集,将改进的xception网络在imagenet数据集上进行充分地预训练,训练轮次设置为1000,保存训练后的模型参数,以.pth的格式进行存储;
11.步骤4:输入训练数据集数据,下载在imagenet上预训练好的参数模型作为初始参数,在制作的葡萄病害数据集上训练改进的xception模型,直到网络的测试损失趋于平稳的时候,停止训练,并保存测试精度最高的模型参数,将其按照.pth的格式进行存储;
12.步骤5:载入充分训练后的参数,并将葡萄病害彩色图像输入到训练后的xception网络中,对其进行病害识别;
13.优选地,所述的步骤1具体为:
14.搜集获得葡萄病害叶片图像,包括黑腐病、轮斑病、褐斑病、健康叶四种叶片图像,使用imgaug库对其进行数据增强处理,包括增强亮度、减弱亮度、增强锐度、增加高斯噪声、水平翻转、旋转任意角度,以拟合显示拍摄情况,并将数据集扩增至原来的7倍;
15.优选地,所述的步骤2包括:
16.首先,搭建xception网络,其主要包括:entry flow部分,middle flow部分和exit flow三部分。网络的基本组成单元为:深度可分离卷积(depthwise separable convolution,dsc)、残差结构和全连接层。其中:
17.深度可分离卷积包括逐深度卷积(depthwise convolution,dc)和逐点卷积(pointwise convolution,pc)两个部分,depthwise convolution是对输入的一个特征图(feature map)的每一个通道分别进行卷积操作,然后再进行拼接获得输出,每个卷积核对应一个通道单独进行卷积。pointwise convolution是对dc之后的输出进行通道融合并改变输出通道的数量。对于输入特征图为f∈rc×h×w,所需n个大小为f
×f×
c的的卷积核,进行dc操作所需的计算量为h
×w×f×f×
c,pc操作的计算量为c
×n×h×
w,进行dsc操作所需的计算总量为h
×w×f×f×
c c
×n×h×
w,相较于普通卷积计算量大大降低。
18.对于输入样本x,设输出结果为h(x),残差结构的表达式为:f(x)=h(x)-x,当f(x)极小时,输出h(x)≈x,此时就为恒等映射,则不需要再次学习映射函数。解决了网络层数不断加深时导致的梯度消失问题。
19.全连接层使用的是全局平均池化层。其公式为:gapk=avg{(x
ij
)k}。其中,(x
ij
)k是指第k个feature map的信息值。
20.然后,对xception网络进行改进。
21.首先,替换原激活函数relu为elu,relu是分段线性函数,其公式为:使得所有正值不变,非正值变为0,使得神经网络中的部分神经元不参与计算,引入了稀疏性,增强了神经网络的鲁棒性。
22.然而,由于relu激活函数的输出可能为0,会导致梯度无法更新,进而形成“神经元永久死亡”的问题。elu函数的公式为:其正区间的表达式与relu相同,同样可以避免梯度消失的问题,并且其对于负区间的梯度不为零,从而避免了神经元死亡的问题,从而使得网络可以学习更多的特征。
23.然后,引入通道注意力机制se,并对其进行改进,se模块,其包括压缩(squeeze)和激励(excitation)、重定权重(reweight)三个部分。
24.squeeze操作,将空间上的通道特征压缩成一个实数,用来表达全局的感受野,此操作的计算公式为:其中,z是指输入特征在空间维度w
×
h执行squeeze操作后的结果,vk(i,j)为经过一系列卷积之后的feature map,c为v的通道数。
25.excitation操作,引入参数w为通道生成各自权重,表示各通道之间的相关性,具
体操作是先通过一个全连接层进行降维,再通过一个relu激活函数,再通过一个全连接层升维,最后通过一个sigmoid激活函数生成一个0~1之间的权重系数。其计算公式为:s=f
ex
(z,w)=σ(g(z,w))=σ(w2δ(w1z)),其中,σ表示sigmoid函数,δ表示relu激活函数,和是两个全连接层的参数,用于减少全连接层的维度。
26.reweight操作,将excitation得到的权重系数逐通道加权到原先的特征上,实现对各个通道的重要性标注,其公式为:
27.然后,使用全局最大池化层替换全局平均池化层,其公式为:gmpk=max{(x
ij
)k}。在原网络最后一层网络层之后添加一层失活概率为0.5的dropout层和分类层,增加网络深度,提高分类效果。
28.优选地,步骤3包括:
29.下载公开的imagenet大型图像分类数据集,将改进的grape-xception网络在imagenet数据集上进行充分的训练,训练轮次为1000轮,保存每轮训练结束后的模型参数,以.pth文件形式存储,选择1000轮中测试精度最高的一轮的模型参数作为最终的实验初始网络参数。
30.优选地,步骤4包括:
31.选择交叉熵损失函数crossentropyloss作为本实验的损失函数,其公式为:其中x是网络最后一层输入的结果,class是输入对应的类别标签。
32.选择adam作为实验网络的优化器,权重衰减系数设置为0.002。
33.优选地,步骤5包括:
34.葡萄病害叶片的feature map在分类层全局平均池化中得到训练,训练后生成一个权重矩阵用于属于葡萄病害每一类的概率计算,通过softamx层最终输出生成的葡萄病害的类别信息。
35.本发明相较现有技术具有以下有益效果:
36.本发明基于改进xception网络的葡萄病害识别方法解决了现阶段葡萄病害识别精度不高的问题。使用数据增强的方法,通过引入注意力机制,改进全连接层,改进激活函数,并使用迁移学习的方法,提出的grape-xception模型提高了葡萄病害识别的精度,模型参数量降低。
37.针对葡萄病害叶片图像数据较少的问题,本发明通过使用imgaug库对原始数据集进行数据增强处理,通过增强亮度、减弱亮度、增强锐度、增加高斯噪声、水平翻转、旋转任意角度等操作,模拟现实拍摄情况,提高了模型的鲁棒性。
38.经过实验验证,本发明所提出的葡萄病害识别方法在准确度上相比现阶段的葡萄病害识别方法有了较明显的提高。这验证了本发明创造的grape-xception网络模型在复杂现实栽种情况下的多类别葡萄病害识别任务中的优越性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1是本发明提供的基于改进xception算法的葡萄叶片病害识别方法流程图;图2是本发明提供的葡萄病害叶片数据集示例图;图3是本发明提供的葡萄病害叶片图像部分数据增强效果图(原始、增加亮度、减弱亮度、增加锐度);图4是本发明提供的葡萄病害叶片图像部分数据增强效果图(增加高斯噪声、水平翻转、翻转任意角度);图5是本发明提供的grape-xception网络结构图;图6是本发明提供的grape-xception网络中的深度可分离卷积结构;图7是本发明提供的grape-xception网络中的se模块结构图;图8是本发明提供的grape-xception网络训练和测试精度曲线图;图9是本发明提供的grape-xception网络训练和测试损失曲线图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
40.具体的,本发明实施例公开了一种基于改进xception算法的葡萄叶片病害识别方法,首先本发明的整体实验步骤(详见图1)如下:
41.步骤1:搜集葡萄叶片健康、黑腐病、轮斑病、褐斑病四种叶片图像,制作葡萄叶片病害识别数据集,作为本实验的训练数据集,并进行预处理;
42.步骤2:获取xception网络作为实验的基础网络模型,对xception网络进行改进,搭建有效的葡萄病害识别网络grape-xception;
43.步骤3:下载imagenet数据集,将改进的xception网络在imagenet数据集上进行充分地预训练,训练轮次设置为1000,保存训练后的模型参数,以.pth的格式进行存储;
44.步骤4:输入训练数据集数据,下载在imagenet上预训练好的参数模型作为初始参数,在制作的葡萄病害数据集上训练改进的xception模型,直到网络的测试损失趋于平稳的时候,停止训练,并保存测试精度最高的模型参数,将其按照.pth的格式进行存储;
45.步骤5:载入充分训练后的参数,并将葡萄病害彩色图像输入到训练后的xception网络中,对其进行病害识别;
46.优选地,所述的步骤1具体为:
47.搜集获得葡萄病害叶片图像,包括黑腐病、轮斑病、褐斑病、健康叶四种叶片图像,示例葡萄病害图像见图2,由于数据集数据较少,使用imgaug库对原始数据集进行数据增强处理,包括增强亮度、减弱亮度、增强锐度、增加高斯噪声、水平翻转、旋转任意角度几种操作,以拟合显示拍摄情况,具体数据增强效果见图3、4,并将数据集扩增至原来的7倍。
48.优选地,所述的步骤2包括:
49.首先,搭建xception网络,其主要包括:entry flow部分,middle flow部分和exit flow三部分,其整体网络结构见图5,网络的基本组成单元为:深度可分离卷积(depthwise separable convolution,dsc)、残差结构和全连接层。其中:
50.深度可分离卷积包括逐深度卷积(depthwise convolution,dc)和逐点卷积(pointwise convolution,pc)两个部分,具体结构见图6,depthwise convolution是对输入的一个特征图(feature map)的每一个通道分别进行卷积操作,然后再进行拼接获得输出,每个卷积核对应一个通道单独进行卷积。pointwise convolution是对dc之后的输出进行通道融合并改变输出通道的数量。对于输入特征图为f∈rc×h×w,所需n个大小为f
×f×
c的的卷积核,进行dc操作所需的计算量为h
×w×f×f×
c,pc操作的计算量为c
×n×h×
w,进行dsc操作所需的计算总量为h
×w×f×f×
c c
×n×h×
w,相较于普通卷积计算量大大降低。
51.对于输入样本x,设输出结果为h(x),残差结构的表达式为:f(x)=h(x)-x,当f(x)极小时,输出h(x)≈x,此时就为恒等映射,则不需要再次学习映射函数。解决了网络层数不断加深时导致的梯度消失问题。
52.全连接层使用的是全局平均池化层。其公式为:gapk=avg{(x
ij
)k}。其中,(x
ij
)k是指第k个feature map的信息值。
53.然后,对xception网络进行改进。
54.首先,替换原激活函数relu为elu,relu是分段线性函数,其公式为:使得所有正值不变,非正值变为0,使得神经网络中的部分神经元不参与计算,引入了稀疏性,增强了神经网络的鲁棒性。
55.然而,由于relu激活函数的输出可能为0,会导致梯度无法更新,进而形成“神经元永久死亡”的问题。elu函数的公式为:其正区间的表达式与relu相同,同样可以避免梯度消失的问题,并且其对于负区间的梯度不为零,从而避免了神经元死亡的问题,从而使得网络可以学习更多的特征。
56.然后,引入通道注意力机制se,se模块结构图见图7,se模块包括压缩(squeeze)和激励(excitation)、重定权重(reweight)三个部分。
57.squeeze操作,将空间上的通道特征压缩成一个实数,用来表达全局的感受野,此操作的计算公式为:其中,z是指输入特征在空间维度w
×
h执行squeeze操作后的结果,vk(i,j)为经过一系列卷积之后的feature map,c为v的通道数。
58.excitation操作,引入参数w为通道生成各自权重,表示各通道之间的相关性,具体操作是先通过一个全连接层进行降维,再通过一个relu激活函数,再通过一个全连接层升维,最后通过一个sigmoid激活函数生成一个0~1之间的权重系数。其计算公式为:s=f
ex
(z,w)=σ(g(z,w))=σ(w2δ(w1z)),其中,σ表示sigmoid函数,δ表示relu激活函数,和是两个全连接层的参数,用于减少全连接层的维度。
59.reweight操作,将excitation得到的权重系数逐通道加权到原先的特征上,实现对各个通道的重要性标注,其公式为:
60.然后,使用全局最大池化层替换全局平均池化层,其公式为:gmpk=max{(x
ij
)k}。在原网络最后一层网络层之后添加一层失活概率为0.5的dropout层和分类层,增加网络深度,提高分类效果。
61.优选地,步骤3包括:
62.下载公开的imagenet大型图像分类数据集,将改进的grape-xception网络在imagenet数据集上进行充分的训练,训练轮次为1000轮,保存每轮训练结束后的模型参数,以.pth文件形式存储,选择1000轮中测试精度最高的一轮的模型参数作为最终的实验初始网络参数。
63.优选地,步骤4包括:
64.选择交叉熵损失函数crossentropyloss作为本实验的损失函数,其公式为:其中x是网络最后一层输入的结果,class是输入对应的类别标签。
65.选择adam作为实验网络的优化器,权重衰减系数设置为0.002。
66.经过充分训练,grape-xception网络的精度得到很大的提升,具体训练和测试精度曲线图见图8,训练和测试损失曲线图见图9。
66.优选地,步骤5包括:
67.葡萄病害叶片的feature map在分类层全局平均池化中得到训练,训练后生成一个权重矩阵用于属于葡萄病害每一类的概率计算,通过softamx层最终输出生成的葡萄病害的类别信息。
68.本发明相较现有技术具有以下有益效果:
69.本发明基于改进xception网络的葡萄病害识别方法解决了现阶段葡萄病害识别精度不高的问题。使用数据增强的方法,通过引入注意力机制,改进全连接层,改进激活函数,并使用迁移学习的方法,提出的grape-xception模型提高了葡萄病害识别的精度,模型参数量降低。
70.针对葡萄病害叶片图像数据较少的问题,本发明通过使用imgaug库对原始数据集进行数据增强处理,通过增强亮度、减弱亮度、增强锐度、增加高斯噪声、水平翻转、旋转任意角度等操作,模拟现实拍摄情况,提高了模型的鲁棒性。
71.经过实验验证,本发明所提出的葡萄病害识别方法在准确度上相比现阶段的葡萄病害识别方法有了较明显的提高。这验证了本发明创造的grape-xception网络模型在复杂
现实栽种情况下的多类别葡萄病害识别任务中的优越性。
72.对上述所公开的发明的说明,使得本研究领域专家能够实现本发明。对上述发明的修改方法对本领域的学者来说是清晰明了的,本发明中所使用的一般原理方法可以在不脱离本发明的范围的情况下,在其它发明中使用。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本发明所公开的方法和创新点相一致的最大的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献