苹果树病虫害智能识别系统设计与实现
2021-09-26李谊骏陈诗果
李 海,李谊骏,陈诗果,杨 谋
(电子科技大学成都学院,成都 611731)
中国是世界上最大的苹果生产国,苹果种植面积和产量均占世界50%以上。然而中国苹果的品质与发达国家相比还存在一定的差距,其中落后的病虫害防控水平是制约中国苹果发展的主要因素,病虫害防控对于果农行业是亟须解决的难点与痛点。所以有效的病虫害有效检测与早期防治可以提升苹果的质量与产量。
现阶段,中国防治苹果树病虫害的主要方法有两种:“防治历”和单一的病虫害检测方法。通过“防治历”对病虫害进行防治是依据往年的病虫害发生情况而进行的,其往往会错过病虫害的关键时期,效果不佳。近几年来学者们和科研工作者都进行了多方面的研究,大多都是利用神经网络和图像识别算法来提升对果树、蔬菜和林木等病虫害的识别和防治。其中常见的算法有K均值聚类算法(K-means)[1]、YOLO(you only look once)和基于卷积神经网络特征的区域方法(regions with CNN features,R-CNN)等。其中高旋等[2]提出了利用R-CNN对立木图像的检测与识别,还有学者使用Tamura方法进行病虫害的防治[3],有学者[4-5]提出了利用传统YOLO或改进YOLO-V3网络方法进行病虫害识别与防治。
由于神经网络检测本身就具有复杂性、不确定性、多样性,所以以上大部分研究本身就存在一些无法解决的问题,比如它往往识别的是果树最终的病害图像,无法在病虫害侵袭的初期就将其检测出来;因为是将植物叶子上斑点的特征与病虫害的典型特征进行对比来达到识别的目的,所以往往容易出现局部最优解和梯度消失等问题,从而导致识别率较低;还有在复杂环境下对植物病虫害无法准确识别等一系列问题。
基于以上一系列问题,现提出一种采用多层神经网络和拉普拉斯高斯(Laplacian-of-Gaussian,LOG)算法的病虫害检测系统。该系统是将摄像头采集到的图像通GrabCut方法进行图像分割,然后使用高斯拉普拉斯算子[6-8]和LOG算法将叶片中的特征点提取出来并送入神经网络进行训练,最后得到检测结果。为了解决神经网络容易陷入局部最优解和梯度消失的问题,大多采用的是DNN网络,为了进一步提高算法的准确率,现采用DNN网络为主[9-10],斑点检测算法为辅,相对于传统的DNN网络,该算法具有鲁棒性好、准确率高、检测速度快等优点。将本系统移植于嵌入式平台,平台体积小,属于手持式装备,果农可以随身携带该平台高效地进行苹果树病虫害的检测,检测的数据结果实时通过云平台反馈到监管平台,进行数据的更新,实现数据的云端共享以及数据汇总,以帮助果农实时了解苹果树的生长情况。
1 系统框架设计
系统的整体算法框架如图1所示,第一步,搭建一个基本的DNN神经网络,初始化权重矩阵W和偏置参数b并输入数据集,之后通过神经网络的前向传播算法和反向传播算法,更新权重矩阵W和偏置参数b,进一步提升神经网络的准确率。第二步,对摄像头采集到的图像采用高斯金字塔算法进行缩放,之后进行图像分割,将图像的前景和背景分离出来,接着再进行直方图均衡化,增强图像中的特征点,再之后采用LOG算法[11],将图像中的特征点提取出来,然后采用开运算处理,将噪点去除。最后将框选出来的特征点输入到训练完成的DNN神经网络进行判断,识别出苹果叶子上是否有病虫害。
图1 系统架构图Fig.1 System architecture diagram
2 整体算法设计
2.1 图像分割
图像分割就是首先将图像分为若干个特定的,具有独特性质的区域,然后再从这些区域中将感兴趣的目标区域提取出来的过程。系统采用的是GrabCut算法进行前景提取[12],将苹果树叶子从整个图像中提取出来。整个提取过程分为两个步骤:颜色模型搭建和迭代能量最小化分割算法。
2.2.1 颜色模型
在红绿蓝(red-green-blue,RGB)彩色空间内,对于每个像素而言,其不是来自某个背景高斯混合模型(Gaussian mixed model,GMM)的高斯分量,就是来自某个目标GMM[13]的高斯分量,所以可以用k个高斯分量的全协方差GMM来对目标和背景进行建模,建模之后的Gibbs能量为
E(α,k,θ,z)=U(α,k,θ,z)+V(α,z)
(1)
式(1)中:α为不透明度;θ为图像前景与背景的灰度直方图;z为图像灰度值数组;U项为区域项,表示一个像素属于目标或者背景的概率负对数,也就是将这个像素归为目标或者背景的惩罚;V项为边界项的计算方法,计算相邻两个像素颜色之间的欧式距离。
(2)
混合高斯密度的模型为
(3)
(4)
式中:πi为第i个高斯模型的样本数量Ni在总的样本数量N里面的比值;gi为第i个高斯模型的概率模型公式,其中有两个参数,均值μ和协方差矩阵∑,∑为第i个单高斯函数的协方差矩阵;d为高斯密度。
所以将混合高斯模型取负对数之后,可得
D(αn,kn,θ,zn)=-log2π(an,kn)+
∑(an,kn)-1[zn-μ(an,kn)]
(5)
式(5)中:3个GMM的参数θ中,第一个参数θ为高斯分量的权重π,第二个参数θ为高斯分量的均值向量μ,第三个参数θ为协方差矩阵∑。
θ={π(α,k),μ(α,k),∑(α,k),
α=0,1,k=1,2,…,K}
(6)
换而言之,描述目标和背景的3个GMM参数都需要通过学习来确定,随着这3个参数的确定,Gibbs能量的区域能量项也就能确定了。
一般来说,衡量RGB空间内两个像素的相似性都是通过欧式距离来计算的,而这里面最为关键的参数β则由图像的对比度决定。如果图像的对比度低,也就是本身具有差别的像素m和n,差‖zm-zn‖比较低,这时就需要乘以一个比较大的参数β来放大这种差别。而如果图像的对比度比较高,也就是本身属于同一目标像素m和n的差‖zm-zn‖比较高,这是就需要乘以一个比较小的参数β来缩小这种差别。为了能够使得V项在对比度高或者低的情况下正常工作,这里通过一个比较小的参数β来缩小差别,所以当常数γ为50,nlink的权值为
(7)
式(7)中:m和n分别为任意RGB空间内两个本身具有差别的像素;‖zm-zn‖中z为图像灰度值数组。
至此,就完成了图像分割的第一步,成功地搭建了一个颜色模型。
2.1.2 迭代能量最小化分割算法
首先通过框选目标,获取目标像素和背景像素,之后就可以根据这两个像素来估计目标和背景的GMM。这里还需要把属于目标和背景的像素通过K-means算法聚类为k类,也就是GMM中的k个高斯模型[14]。其中,每个像素分配得到的高斯分量为
(8)
式(8)中的参数均值和协方差都需要通过RGB值估计得到,而该高斯分量的权值则可以通过属于该高斯分量的像素个数和总的像素个数之比得到,即
(9)
接下来就可以根据Gibbs能量项,建立一个图,再根据这个图求出权值tlink和nlink,最后使用maxflow/mincut算法来进行图像分割,即
(10)
图像分割前后如图2所示。
图2 图像分割对比图Fig.2 Image segmentation contrast diagram
2.2 直方图均衡化
系统通过采用直方图均衡化,对图像中苹果叶子病斑的灰度值进行展宽,而对没有病斑的灰度值进行归并,从而增大对比度,使图像清晰,达到增强特征点的目的[15-16]。
图像灰度值的本质其实就是一个一维的离散函数,表达式为
h(k)=nk,k=0,1,…,L-1
(11)
式(11)中:nk为图像f(x,y)中灰度级为k的像素个数,直方图每一列的高度都会对应着一个nk。这里可以将直方图进行归一化,并将归一化后的直方图中灰度级出现的相对频率定义为Pr(k),即
Pr(k)=nk/N
(12)
式(12)中:N为图像f(x,y)的像素总数。这时用r和s分别表示原图像灰度和经直方图均衡化后的图像灰度,当r,s∈(0,1)时,像素的灰度值在黑白之间变化;当r=s=0时,像素的灰度值为黑色;当r=s=1时,像素的灰度值为白色。即在[0,1]内的任何一个r,经过变换函数T(r)都可以产生一个对应的s,且
s=T(r)
(13)
式(13)中:在0≤r≤1的范围内时,T(r)为单调递增函数,所以当0≤r≤1时有0≤T(r)≤ 1。通过概率论可得随机变量r的概率密度为Pr(r),又因为随机变量s是r的函数,所以这里假设随机变量s的分布函数为Ps(s),根据分布函数的定义可得
(14)
又因为分布函数的导数为概率密度函数,因此对两边的s进行求导可得
(15)
(16)
对于灰度级别比较离散的数字图像,可以用频率代替概率,所以变换函数T(rk)的离散形式可以表示为
(17)
由式(17)可知,均衡化后的各像素灰度级sk可直接由原图像的直方图算出来。对苹果树叶子进行直方图均衡化前后的效果如图3所示。
图3 直方图均衡化前后对比 Fig.3 Comparison before and after histogram equalization
2.3 斑点检测
2.3.1 高斯拉普拉斯算子
二维的高斯函数的表达式为
(18)
其拉普拉斯变换为
(19)
规范化的高斯拉普变换为
(20)
2.3.2 LOG算法
首先需要对图像f(x,y)采用方差为σ的高斯核进行高斯低通滤波,去除图像中的噪声点,即
L(x,y;σ)=f(x,y)*G(x,y;σ)
然后对图像进行拉普拉斯变换,公式为
(21)
即
(22)
这里采用的是先对高斯核进行拉普拉斯算子变换,之后再对图像进行卷积。
2.3.3 多尺度检测
当σ尺度一定时,只能检测其对应半径的斑点。因此,可以通过对规范化的二维拉普拉斯高斯算子进行求导,便可以进行多尺度检测。规范化的高斯拉普拉斯函数为
(23)
(24)
之后得
(25)
r2-2σ2=0
(26)
图4 斑点检测前后对比 Fig.4 Comparison before and after spot detection
2.4 形态学的开操作
使用开运算对图像进行处理时,能够在不影响原来图像的前提下,消除噪点,去除小的干扰块。因此使用斑点检测算法之后,再使用开运算,对斑点检测得到的图像先进行腐蚀操作,再进行膨胀操作,就可以将图像中的黑色干扰块去除,从而使提取出来的病斑更加鲜明。开运算前后的图像如图5所示。
图5 开运算前后对比Fig.5 Comparison before and after operation
2.5 DNN神经网络
2.5.1 前向传播算法
DNN神经网络的前向传播算法的本质其实就是利用若干个权重系数矩阵W,偏置向量b以及输入向量x进行一系列线性运算和激活运算,从输入层开始,每一层都根据前一层的输出结果来计算下一层的输出,一层层地向后进行运算,一直运算到输出层,将最后的结果输出为止。
(27)
al=σ(zl)=σ(Wlal-1+bl)
(28)
2.5.2 后向传播算法
DNN神经网络的反向传播算法其实就是对损失函数使用梯度下降法进行迭代优化求解极小值[17],从而找到最优的线性权重矩阵W和偏置向量b,让样本的输出结果尽可能地等于或接近样本标签。
首先使用均方差的方法来对度量的损失进行推导,也就是对每个样本期望最小化,表达式为
(29)
之后根据这个损失函数,使用梯度下降法迭代求解每一层的权重矩阵W和偏置向量b,对于输出层L层,W、b满足:
aL=σ(zL)=σ(WLaL-1+bL)
(30)
所以对于输出层参数,损失函数变为
(31)
输出层的梯度就可以求解为
根据式(32)进行一步步递推,就可以把L-1、L-2、…层的梯度求解出来。根据依次计算出的L层的δL和前向传播算法zl=Wlal-1+bl就可以很简单的求解出第L层的WL和bl的梯度
δl(al-1)T
(33)
(34)
zl+1=Wl+1al+bl+1=Wl+1σ(zl)+bl+1
(35)
(36)
再将式(36)代入δl和δl+1,就可以得到
(37)
之后就可以更新权重Wl和偏置bl
(38)
(39)
2.5.3DNN神经网络的应用
神经网络是基于感知机的扩展,而DNN可以理解为是有很多隐藏层的神经网络,其本质其实就是多层线性回归。DNN内部网络层可以分为三类:输入层、隐藏层和输出层,一般来说,第一层是输入层,最后一层是输出层,而中间的层数都是隐藏层,层与层之间是全连接的。
系统采用1个输入层、3个隐藏层和1个输出层,结构如图6所示,使用的激活函数为Sigmoid函数。
首先搭建一个基本的DNN神经网络,初始化权重矩阵W和偏置参数b,之后将训练集里面图像进行图像分割,直方图均衡化,斑点检测,开运算操作,得到每张图片的特征点以及它们所在位置的坐标,在原图中框选出来并将框选出来的特征图像送入神经网络进行学习,之后通过前向传播算法辨别测试集图像是否有病虫害,并计算得到准确率。最后通过后向传播算法,更新权重矩阵W和偏置参数b,再进行测试,直到最后辨别结果达到最优,得到最优模型为止,如图7所示。
图6 神经网络结构图Fig.6 Neural network structure diagram
图7 神经网络框架Fig.7 Neural network framework
3 整体部署与测试结果
3.1 硬件平台
系统的主控芯片采用的是NLE-AI800物联网平台,其CPU采用的是双核A73+双A53+单核A53,AI计算单元采用的是双核NNIE@840 MHz,并配有4 GB运存+32 G内存,具有超强的运算处理与分析能力,可以满足系统对运算速度和存储空间的需求。系统还采用了新大陆的物联网平台,它是集设备在线采集、远程控制、无线传输、数据处理、预警信息发布、决策支持、一体化控制等功能于一体的物联网系统。支持多种网关和物联网硬件设备接入,分布式地对数据进行存储、计算。可以使数据通过传输控制协议(transmission control protocol,TCP)传输到云端,便于数据的共享与可视化分析。
3.2 部署与测试结果
3.2.1 测试方案
为了更加精准地验证苹果树病虫害检测系统的准确性,试验地点选择在近年来苹果树种植面积和产量最多的陕西省。在预先选好的苹果树试验田里,实验人员手持本装置,通过摄像头实时采集苹果树叶子的图像信息,对画面进行逐帧分析,将每一帧画面进行图像处理,再送入DNN神经网络,最后将识别结果显示在屏幕上,如图8所示。
图8 苹果树叶子病虫害检测结果Fig.8 Detection results of diseases and insect pests on apple tree leaves
3.2.2 测试结果
选取了600棵苹果树作为抽样样本,将抽样样本分为6组进行试验,并将每次测试的结果都通过TCP协议传输到云端,便于对实验数据进行分析与研究,如图9所示。实验结果如表1所示。
根据上述数据可知,在各试验区,病虫害检测的准确率都在89.0%以上,如图10所示。系统识别病虫害的准确率可以满足果农对苹果树病虫害预防的需要,可以在苹果树园进行应用。但是本系统是通过摄像头进行图像的数据采集,可能会由于光源、环境、硬件等一些因素的影响,采集到的图像受到视觉干扰或图像失真等因素的干扰,使得本系统对病虫害的检测存在一定的误差,误差范围为0.2%~0.6%。
图9 手持式云平台检测结果Fig.9 Handheld cloud platform detection results
表1 苹果树病虫害概率统计表Table 1 Apple tree pest probability statistical table
图10 准确率、损失值结果Fig.10 Accuracy and loss results
4 总结
以苹果树病虫害的检测为研究对象,提出了一种基于DNN神经网络和LOG算法相结合的病虫害检测方法,实现了基于机器视觉的苹果树病虫害检测系统。
(1)以LOG算法作为特征提取、DNN神经网络作为识别模型的检测系统对苹果树叶子病虫害的识别准确率可达91.17%,表明本系统对苹果树叶子病虫害检测的效果较为清晰,病虫害识别准确率较高,优于RCNN、YOLO等单一病虫害检测方法。
(2)该设备可以应用在苹果树常见病虫害识别上,减少果农的工作量,提升识别苹果产率。
综上,通过机器视觉的图像处理方法提取出苹果树叶子的病斑特征,再构建DNN神经网络进行苹果树病虫害检测识别,能够提高对苹果树病虫害的防治能力。