一种基于图像处理与卷积神经网络的作物病害识别方法与流程

文档序号:20785134发布日期:2020-05-19 21:37阅读:432来源:国知局
一种基于图像处理与卷积神经网络的作物病害识别方法与流程

本发明涉及计算机视觉领域,具体涉及一种基于图像处理与卷积神经网络的作物病害识别方法。



背景技术:

作物生长的健康状况是影响我国经济作物产量的重要因素。虽然说现代的科学技术已经让我国有能力生产足够多的经济作物来满足社会的需求,但是在一些偏远地区,植物病害依然严重威胁着当地的作物生产安全。

在植物病害症状首次出现就正确识别它,是有效控制疾病蔓延并将其所造成的损失降到最小的关键步骤。传统的植物病害识别主要依靠少数研究者通过肉眼观察完成的,但具有专业知识的人员通常数量有限,而且有些患病区域地处偏远,致使传统的作物病害识别方法往往不具备很好的时效性。因此如何让机器代替人类去对作物的健康状况进行评估,成为了二十一世纪农业智慧化领域主要的研究方向之一。

随着计算机技术的飞速发展,图像处理、深度学习等方法也被应用于作物病害叶片的识别中。虽然近几年我国在该领域的研究取得了一定的成果,但现有的识别方法由于具有易受环境光线的影响、对构成复杂的背景元素处理能力较弱的缺点,导致方法的鲁棒性不强、泛化能力不高,使其还不能满足实际应用的要求。故发明一种有效的、鲁棒性较强的、泛化能力较高的综合作物病害识别方法是十分必要的。



技术实现要素:

有鉴于此,本发明提供了一种基于图像处理与卷积神经网络的作物病害识别方法。

本发明提供一种基于图像处理与卷积神经网络的作物病害识别方法,包括以下步骤:

s1:首先收集、整理和扩充作物病害图像数据作为实验数据集,具体方法如下:

s11:使用常见的搜索引擎,按照plantvillage公共数据集中所标记的作物种类以及其相对应的病害名称进行搜索,挑选叶片主体清晰、病害区域明显的图像并将其保存;

s12:将上述步骤所保存的图像每隔45度进行一次中心旋转,依次保存旋转后的图像;

s13:按照作物品种以及其所患病害种类,将s12之后的图像加入到公共作物病害数据集plantvillage中,共同构成最终的实验数据集;

s2:对步骤s1的实验数据集进行预处理,具体的预处理操作可以分为以下两个部分:(1)对实验数据集中样本图像进行平滑滤波;(2)对平滑滤波后的样本图像进行锐化,以突出图像的边缘特征信息;

s3:根据图像直方图的平均值判断s2预处理之后样本图像的亮度是否在合理范围内,即对于直方图平均值小于80的样本图像,运用带颜色恢复的多尺度视网膜图像增强算法msrcr提升样本图像的整体亮度;

s4:使用基于grabcut全局图像自动分割算法gaag对经过s3之后的样本图像进行背景分割,以突出病害叶片主体;

s5:使用迁移学习的方法,在经过步骤s4处理后的实验数据集上重新训练从imagenet数据库中学到大量先验视觉知识的mobilenetv2卷积神经网络模型的最后一层参数,使模型能够充分快速地学习到不同病害的特征,达到作物病害叶片分类的目的;

s6:对新的待识别图像调用s2、s3和s4进行处理,将处理后的图像输入到s5已经训练好的模型,进行识别分类。

进一步地,所述s2中对实验数据集进行预处理具体为:将样本图像的大小调整为224*224像素大小后使用中值滤波方法进行图像整体的降噪处理,之后使用拉普拉斯算子对样本图像进行锐化处理,突出样本图像的边缘特征。

进一步地,所述s3中运用带颜色恢复的多尺度视网膜图像增强算法msrcr提升样本图像的整体亮度的方法如下:

s31:首先计算出样本图像的入射分量l,计算公式如下:

l(x,y)=f(x,y)*s(x,y)

其中“*”表示卷积运算,s是需要处理的样本图像,f是高斯模糊的滤波器,(x,y)是二维样本图像中像素点的空间位置;

s32:在得出入射分量l后,计算在单一尺度下的作物病害叶片反射分量r,计算公式如下:

log(r(x,y))=log(s(x,y))-log(l(x,y))

其中,s是需要处理的样本图像,l为入射分量,(x,y)是二维样本图像中像素点的空间位置;

s33:对不同尺度下的作物病害叶片反射分量进行加权求和,这里的尺度指的是不同的高斯滤波器半径范围,加权求和之后所得出的反射分量r′就是亮度调整后的样本图像;

s34:对亮度调整后的样本图像进行色彩恢复,计算公式为:

rmsrcr(x,y)=c(x,y)gr′(x,y)

其中r′(x,y)为不同尺度下的作物病害叶片反射分量进行加权求和后的结果,c(x,y)为色彩恢复因子,rmsrcr(x,y)指色彩恢复后的结果;

s35:将计算所得出的结果值量化为0到255的范围,输出最终调整后的样本图像。

进一步地,所述s4中使用基于grabcut全局图像自动分割算法gaag对经过s2和s3处理后的样本图像进行背景分割的方法如下:

s41:首先使用矩形函数标记出距离样本图像边长20个像素矩形内部范围,大致规划出待分割目标物所处位置;

s42:使用超绿因子2g-b-r对矩形外围超绿因子小于阈值t的像素标记为背景;

s43:在矩形内部随机选取像素点作为拟分割目标,代替grabcut算法中需要人工框选目标区域的操作;

s44:在经过上述步骤之后,调用grabcut算法对样本图像进行分割;

s45:最后对于分割结果进行是否存在空洞的判断,即检测叶片内部像素值是否有连续3个像素点为0的地方,如果有,以这三个像素中心像素为圆心,以5个像素点为半径,判断在该圆上是否有超过80%的像素点的像素值不为0,如果有,则认定为存有黑洞并对内部存有空洞的叶片进行空洞恢复,即把原始样本图像的该位置像素值复制过来即可。

进一步地,所述s6新图像识别的具体步骤如下:

s61:将传入的待识别图像的大小调整为224*224像素,并对其进行去噪和锐化处理;

s62:根据图像直方图的平均值来判断图像整体的亮度是否偏低,即对于平均值小于80的图像判定为亮度偏低,并对其进行s3操作,否则进行s4分割操作;

s63:使用s3对图像进行亮度调整,并将输出的结果图传递至s4进行分割处理;

s64:调用训练好的mobilenet模型对图像进行特征提取及分类;

s65:得出识别结果。

本发明提供的技术方案带来的有益效果是:(1)通过该方法可以精准的识别6种常见作物的22种不同疾病;(2)采用图像亮度调整算法,可以针对亮度值较低的图像进行保持原有色彩的亮度提升,增加了识别系统对光线的适应能力;(3)设计了全新的基于grabcut的全局图像自动分割算法,可以对背景构成复杂的图像进行目标物分割,突出了病害叶片主体特征;(4)采用高效地迁移学习方式,训练了轻量化卷积神经网络模型mobilenet,在保证正确率地同时大幅度减少了识别一张图像所需要的计算量。

附图说明

图1是本发明一种基于图像处理与卷积神经网络的作物病害识别方法流程图;

图2是本发明一种基于图像处理与卷积神经网络的作物病害识别方法的图像亮度调整流程图;

图3是本发明一种基于图像处理与卷积神经网络的作物病害识别方法的分割示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地描述。

请参考图1,本发明的实施例提供了一种基于图像处理与卷积神经网络的作物病害识别方法。

s1:首先收集、整理和扩充作物病害图像数据作为实验数据集,在使用卷积神经网络模型来对图像进行准确分类的工作中,对大量数据的需求是无法避免的。通常情况下,人工收集野外环境下的图像需要耗费大量的人力物力,并不适合复杂的病情诊断系统的设计。而且如果数据太少,会直接导致模型因为训练不足所出现的欠拟合的现象。另外为提高模型的泛化能力,使之可以较好适应不同情况下的作物病害识别,所选用的数据集应该尽量包含较为全面的作物病害案例图像,因此在plantvillage公共数据集中5种作物23种病害图像的基础上,通过融入扩充的图像来提高数据集的代表能力。具体方法如下:

s11:以公共作物病害数据集plantvillage为基础,使用常见的搜索引擎,包括谷歌、百度和必应,按照plantvillage数据集中所标记的作物种类以及其相对应的病害名称进行搜索,挑选叶片主体清晰、病害区域明显的图像并将其保存;

s12:将上述步骤所收集的图像每隔45度进行一次中心旋转,保存旋转后的图像,使数据数量扩充为原始的9倍;

s13:按照作物品种以及其所患病害种类,将s12之后的图像加入到公共作物病害数据集plantvillage中,共同构成最终的作物病害叶片实验数据集。

通过上述步骤获得实验数据后,将数据按照8:2的比例随机分为供模型学习病害图像特征的训练集和供测试模型性能的测试集。

s2:对步骤s1的实验数据集进行预处理,具体的预处理操作方法为将样本图像的大小调整为224*224像素大小后使用中值滤波方法进行图像整体的降噪处理,之后使用拉普拉斯算子对图像进行锐化处理,突出样本图像的边缘特征。

s3:根据图像直方图的平均值判断s2预处理之后样本图像的亮度是否在合理范围内,即对于直方图平均值小于80的图像,运用带颜色恢复的多尺度视网膜图像增强算法msrcr提升样本图像的整体亮度,如图2所示,具体步骤如下:

s31:首先计算出图像的入射分量l,计算公式如下:

l(x,y)=f(x,y)*s(x,y)

其中“*”表示卷积运算,s是需要处理的图像,f是高斯模糊的滤波器,(x,y)是二维图像中像素点的空间位置;

s32:在得出入射分量l后,计算在单一尺度下的作物病害叶片反射分量r,计算公式如下:

log(r(x,y))=log(s(x,y))-log(l(x,y))

其中,s是需要处理的图像,l为入射分量,(x,y)是二维图像中像素点的空间位置;

s33:对不同尺度下的作物病害叶片反射分量进行加权求和,这里的尺度指的是不同的高斯滤波器半径范围,加权求和之后所得出的反射分量r′就是亮度调整后的图像;

s34:对亮度调整后的图像进行色彩恢复,计算公式为:

rmsrcr(x,y)=c(x,y)gr′(x,y)

其中r′(x,y)为不同尺度下的作物病害叶片反射分量进行加权求和后的结果,c(x,y)为色彩恢复因子,rmsrcr(x,y)指色彩恢复后的结果;

s35:将计算所得出的结果值量化为0到255的范围,输出最终调整后的图像。

s4:使用基于grabcut全局图像自动分割算法gaag对s3之后的样本图像进行背景分割,以突出病害叶片主体,gaag算法着重解决了grabcut算法需要进行人机交互、易把叶片病斑误判为背景像素的缺点,如图3所示,具体步骤如下:

s41:首先使用矩形函数标记出距离样本图像边长20个像素矩形内部范围,大致规划出待分割目标物所处位置;

s42:使用超绿因子2g-b-r对矩形外围超绿因子小于阈值t的像素标记为背景;

s43:在矩形内部随机选取像素点作为拟分割目标,代替grabcut算法中需要人工框选目标区域的操作;

s44:在经过上述步骤之后,调用grabcut算法对样本图像进行分割;

s45:最后对于分割结果进行是否存在空洞的判断,即检测叶片内部像素值是否有连续3个像素点为0的地方,如果有,以这三个像素中心像素为圆心,以5个像素点为半径,判断在该圆上是否有超过80%的像素点的像素值不为0,如果有,则认定为存有黑洞并对内部存有空洞的叶片进行空洞恢复,即把原始图像的该位置像素值复制过来即可。

s5:使用迁移学习的方法,在经过上述步骤处理后的实验数据集上重新训练从imagenet数据库中学到大量先验视觉知识的mobilenetv2卷积神经网络模型的最后一层参数,使模型能够充分快速地学习到不同病害的特征,达到作物病害叶片分类的目的,具体包括以下步骤:

s51:从tensorflowhub官网下载好预先训练完毕的mobilenetv2模型;

s52:设定mobilenetv2模型的训练参数,包括但不限于学习率设置为0.005;迭代次数设置为100000;训练批次大小设定为128;

s53:循环迭代训练,直到训练次数达到设定值。

s6:对新的待识别图像调用s2、s3和s4进行处理,将处理后的图像输入到s5已经训练好的模型,进行识别分类,具体步骤如下:

s61:将传入的待识别图像的大小调整为224*224像素,并对其进行去噪和锐化处理;

s62:根据图像直方图的平均值来判断图像整体的亮度是否偏低,即对于平均值小于80的图像判定为亮度偏低,并对其进行s3操作,否则进行s4分割操作;

s63:使用s3对图像进行亮度调整,并将输出的结果图传递至s4进行分割处理;

s64:调用训练好的mobilenet模型对图像进行特征提取及分类;

s65:得出识别结果。

通过测试,本实例最终在测试集上的识别正确率如下表所示。

在不冲突的情况下,本文中上述实施例及实施例中的特征可以相互结合。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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