一种利用计算机视觉技术进行农作物病害检测的方法与流程

文档序号:19746968发布日期:2020-01-21 18:38阅读:497来源:国知局
一种利用计算机视觉技术进行农作物病害检测的方法与流程

本发明属于计算机视觉技术领域,尤其是一种利用计算机视觉技术进行农作物病害检测的方法。



背景技术:

农作物病害是我国主要农业灾难之一,它具有种类多、影响大并时常暴发成灾的特点,不仅对农作物生产造成损失,还会对食品安全产生威胁。因此农作物病害的诊断和鉴定,对保证作物产量、预防食品安全起着重要的作用,同时,实现精准的检测农作物病害以及病害程度的测定是对农作物病害防治的关键。但是,识别病害需要很多专业人士进行鉴定分析,得出结论,但大多数种植人员专业知识较少,经验不足,则会耽误对病害早期的预防和治疗。计算机视觉技术已经深入到农业生产的众多领域,其中利用图像处理与分析的方法实现农作物病害的检测成为近年来的研究热点。

农作物病害是农作物受到其他生物侵染,或者环境条件不适应时,不能正常地生长发育,并表现出各种病态,外观形式上主要表现为叶片异常,最终表现为产量下降、品质降低、甚至植物死亡的现象。检测农作物病害并及时加以治疗和预防是降低病害危害的关键。由于农作物病害的外观表现多为叶片异常,因此利用计算机视觉技术监测植物叶片生长状况,发现异常及时预警的方案是可行的。但是,复杂的外界环境给叶片病害检测带来很大困难,若能检测到病害区域再针对性识别,则能达到较好的识别效果。

随着深度学习的日益发展,将卷积神经网络应用于农作物病害识别中取得了较好的识别效果。深度学习中的卷积神经网络对图像具有强大的特征提取能力,可以从像素级的原始数据中抽象出语义概念并逐层提取,筛选掉冗余信息,这使得它在提取图像更详尽的全局特征方面有着突出的优势。因此,如何利用卷积神经网络进行农作物病害检测是目前迫切需要解决的问题。



技术实现要素:

本发明的目的在于克服现有技术的不足,提出一种利用计算机视觉技术进行农作物病害检测的方法,其利用神经网络可以将病害叶片从背景环境中提取出来,再根据病害叶片特征,判断农作物病害类型,进而提供对应的防治方案,为提高农作物病害预警奠定基础。

本发明解决其技术问题是采取以下技术方案实现的:

一种利用计算机视觉技术进行农作物病害检测的方法,包括以下步骤:

步骤1、构建农作物病害图像的数据集,并将该数据集分为训练集和测试集两部分;

步骤2、构建提取病害图像特征的卷积神经网络模型;

步骤3、构建病害叶片的检测模型:提取整张图像的特征后,利用区域建议网络生成可能为病害部位的候选框,利用感兴趣区域子网对病害叶片位置进行检测并识别病害类别;;

步骤4、训练神经网络模型:利用标注完成的数据集对神经网络进行训练,根据训练过程中计算得到的各项损失函数,监测神经网络训练时的收敛情况,同时分析迭代次数、网络层数、卷积核大小对训练模型结果的影响,以便及时调整网络参数;

步骤5、网络性能评估:使用测试集测试网络的检测性能,如未达到预期结果,则返回步骤4继续训练,直到得到训练好的网络模型;

步骤6、农作物病害检测:利用摄像机拍摄农作物叶片图像,输入到步骤5训练好的网络模型中,在输出端得到植物病害类别和叶片上发生病害部位的位置坐标。

进一步,所述训练集和测试集按80%:20%比例随机划分。

进一步,所述步骤2构建的卷积神经网络模型由10层3×3大小的卷积层、3层1×1大小的卷积层、3层全连接层组成,每层卷积层之后加入一次激活函数运算,每两层3×3的卷积层之后加入一次最大池化层;图像进入网络后经过卷积运算处理得到如下图像特征矩阵s(i,j):

其中,i为输入图像,m,n为i中每个像素点坐标,k为卷积核对应的二维权重参数,i,j为图像特征矩阵的像素点坐标;网络每一卷积层的输出结果都需要经过激活函数,每一层的输入和经过激活函数输出之间的关系表示如下:

sn(i,j)=max(0,sn(i,j)),n=1,2,...,n-1。

进一步,所述步骤3的具体实现方法为:建立区域建议网络,将特征提取模型提取到的特征图作为输入,输出的卷积特征图中的每个点成为锚点,以每个锚点为中心对应在原图中生成基础候选框a×a,对候选框进行不同尺度变形得到t种类型的候选框,计算生成的候选框和标记框的重叠度和网络的损失函数筛选目标候选框;建立感兴趣区域子网筛选并修正目标候选框的位置,判断病害的种类;将区域建议网络输出的目标候选框和特征提取模型中最后一层输出的特征矩阵sn-1(i,j)作为网络输入,并将每个候选框的特征图像缩放至统一大小,感兴趣区域子网包括一个512通道数7×7尺寸的最大池化层和两个4096通道数的全连接层,输出为特征矩阵cn,将特征矩阵cn分别输入至324通道数和81通道数的全连接层得到最终的目标检测框的位置坐标和病害种类。

进一步,所述检测模型中的总体损失函数为:

式中,i表示批处理一次中选取锚点的索引,pi表示锚点i是目标的预测概率,表示对应真实区域标签的预测值,ti表示预测边框的4个参数化坐标向量,表示对应真实区域边框的坐标向量,ncls表示分类样本数,nreg为回归样本数;

lcls表示分类损失函数,定义为:

lreg表示回归损失函数,定义为:

其中函数的定义为:

全连接层的计算公式如下:

cn(x)=wn*cn-1(x)+bn

其中cn-1(x)为上层网络输出的特征向量,wn和bn为全连接层的权重参数矩阵,x为特征向量坐标点。

进一步,所述步骤5的具体实现方法为:计算准确率p、召回率r及精确度和召回率的调和平均f1,若上述评估参数均大于设定的阈值,则完成训练,若网络有小于阈值的评估参数,则未达到预期结果,则返回步骤4继续训练,直到得到较好的模型:所述准确率p、召回率r及精确度和召回率的调和平均f1的计算方法为:

其中tp代表正确识别农作物病害目标的数目,fp代表错误识别农作物病害目标的数目,fn代表未识别到的农作物病害目标数目。

本发明的优点和积极效果是:

本发明设计合理,首先利用神经网络较强的特征提取能力对病害图像进行特征提取并生成目标候选框,然后利用区域建议网络和感兴趣区域子网对病害部位进行定位和识别,输出病害叶片位置和病害类型,不仅实现了真实环境中农作物病害部位的检测定位,更实现了病害类型的准确识别,适用于农作物病害的防治和预警。

附图说明

图1是本发明提出的农作物病害检测流程图。

具体实施方式

以下结合附图对本发明实施例做进一步详述。

本发明的设计思想是:利用目标检测神经网络对室外复杂环境下的农作物图像进行特征提取;利用区域建议网络(regionproposalnetwork,rpn)根据提取到的图像特征生成候选框,分析每个候选框内详细的图像特征,判断候选框中图像是背景或是病害,保留概率最大的目标候选框;将图像特征和目标候选框共同输入至感兴趣区域子网中,修正目标候选框大小和位置,并根据目标框内的图像特征判断农作物病害种类,实现农作物病害检测功能。

基于上述设计思想,本发明提出的利用计算机视觉技术进行农作物病害检测的方法,如图1所示,包括以下步骤:

步骤1、构建农作物病害图像的数据集d。对采集到的农作物病害图像数据编号{1,2,3,...,d},并对图像中的病害区域进行标注,框选出病害部位坐标并标记病害类别。数据集按80%:20%比例随机划分为两部分,其中80%的部分作为训练集进行训练,20%的部分作为图像的测试集,用于模型评估。

步骤2、构建提取病害图像特征的卷积神经网络模型。该卷积神经网络模型由10层3×3大小的卷积层、3层1×1大小的卷积层、3层全连接层组成,每层卷积层之后加入一次激活函数运算,每两层3×3的卷积层之后加入一次最大池化层。图像进入网络后经过卷积运算处理得到图像特征矩阵s(i,j),如公式(1)所示。

其中,设输入图像为i,i中每个像素点坐标为(m,n),卷积核对应的二维权重参数为k,得到的特征映射为二维网格数据s,像素点坐标为(i,j)。网络每一卷积层的输出结果都需要经过激活函数,提高网络的非线性表达能力并加快收敛速度,每一层的输入和经过激活函数输出之间的关系可以表示如下:

sn(i,j)=max(0,sn(i,j)),n=1,2,...,n-1(2)

为了降低图像维度,过滤特征图中的冗余信息,可利用最大池化层对卷积层输出的特征图矩阵sn(i,j)进行降维运算,将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。

步骤3、构建病害叶片的检测模型。提取整张图像的特征后,需要对病害叶片位置进行检测并识别病害类别,利用区域建议网络生成可能为病害部位的候选框。此网络包含一个卷积层和两个全连接层(fullyconvolutional,fc),将特征提取模型提取到的特征图作为输入,输出的卷积特征图中的每个点成为锚点,以每个锚点为中心对应在原图中生成基础候选框a×a,对候选框进行不同尺度变形得到t种类型的候选框,计算生成的候选框和标记框的重叠度和网络的损失函数筛选目标候选框。建立感兴趣区域子网(regionofinterest,roi)筛选并修正目标候选框的位置,判断病害的种类。将区域建议网络输出的目标候选框和特征提取模型中最后一层输出的特征矩阵sn-1(i,j)作为网络输入,并将每个候选框的特征图像缩放至统一大小,感兴趣区域子网包括一个512通道数7×7尺寸的最大池化层和两个4096通道数的全连接层,输出为特征矩阵cn,将特征矩阵cn分别输入至324通道数和81通道数的全连接层得到最终的目标检测框的位置坐标和病害种类。

计算网络模型总体的损失函数如公式(3):

式中,i表示批处理一次中选取锚点的索引,pi表示锚点i是目标的预测概率,表示对应真实区域标签的预测值,ti表示预测边框的4个参数化坐标向量,表示对应真实区域边框的坐标向量,ncls表示分类样本数,nreg为回归样本数。

计算公式(3)中的lcls表示分类损失函数,定义为:

计算公式(3)中的lreg表示回归损失函数,定义为:

其中函数的定义为:

全连接层的计算公式如公式(7):

cn(x)=wn*cn-1(x)+bn(7)

其中cn-1(x)为上层网络输出的特征向量,wn和bn为全连接层的权重参数矩阵,x为特征向量坐标点。

步骤4、训练神经网络模型。利用标注完成的数据集对神经网络进行训练,根据训练过程中计算得到的各项损失函数,监测神经网络训练时的收敛情况,同时分析迭代次数、网络层数、卷积核大小等超参数对训练模型结果的影响,以便及时调整网络参数。

步骤5、网络性能评估。为评价模型的有效性,使用测试集测试网络的检测性能,设置网络的准确率、召回率和调和平均等评估参数的阈值分别为q,z,h,评估网络模型,若评估参数均大于阈值则完成训练,若网络有小于阈值的评估参数,则未达到预期结果,则返回步骤4继续训练,直到得到较好的模型。

其中,p代表精度,r代表召回率,f1代表精确度和召回率的调和平均,tp代表正确识别农作物病害目标的数目,fp代表错误识别农作物病害目标的数目,fn代表未识别到的农作物病害目标数目。将测试集输入网络预测病害目标,计算模型的召回率,召回率越大时,网络的收敛效果越好。

步骤6、农作物病害检测。利用摄像机拍摄农作物叶片图像,输入到步骤5训练好的网络模型中,在输出端得到植物病害类别和叶片上发生病害部位的位置坐标。

在本发明的使用过程中,考虑到农作物病害的检测模型需要大量的人工标注数据集进行训练,为增强模型的鲁棒性,在数据集中加入单目标、多目标、弱光条件和强光条件下的不同种类图像进行训练。其中特征提取模型使用深度神经网络(如visualgeometrygroup提出的vgg16网络)效果最好,网络由10层3×3大小的卷积层、3层1×1大小的卷积层、3层全连接层,利用迁移性学习将公开的训练数据集(如imgnet比赛用数据集等)中的vgg16权重读入检测和识别模型中,继续训练分类层。

区域建议网络是在vgg网络的卷积层后添加一个1×1的卷积层和两个并行的全连接层,两个全连接层分别采用18通道的1×1卷积核和36个通道的1×1卷积核,网络中的滑动窗口大小为3×3,映射到的低维向量为512维度,候选框的基础框大小为16×16,变换方法为保持面积不变,长宽比例分别为[0.5,1,2],对不同长宽比的三种候选框进行缩放,缩放倍数为[8,16,32],最终每个锚点生成的候选框种类t为9种。感兴趣区域子网中池化操作为512通道,池化窗口大小为7×7,全连接层的特征向量为4096维度,进行分类和修正目标检测框的全连接层的维度分别为81和324。

网络训练过程中,整体学习率设置为0.001,动量因子设置为0.9,每次训练的样本数量为80,最大迭代次数设置为100000步,当模型达到40000步时,学习率调整到0.0001,达到80000步时,学习率达到0.00001,当训练精度大于0.8,三种损失函数皆小于0.1时,保留模型权重。评估模型效果,评估参数的阈值分别为q=0.95,z=0.9,h=0.85,当精度p,召回率r,调和率f1皆大于相应的阈值时,则模型性能良好,评估完成后的模型对新采集的农作物病害图像进行检测,输出叶片中病害部位的坐标和类别,达到较高的检测率,为实现智能化农作物病害预警打下基础。

本发明未述及之处适用于现有技术。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

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