郑建华,朱立学,朱 蓉
(1.仲恺农业工程学院 信息科学与技术学院,广州 510225;2.仲恺农业工程学院 机电工程学院,广州 510225)
葡萄味美可口且营养价值高。近年来,葡萄的种植面积不断扩大,数据显示,2017年全球葡萄园面积达到760万 hm2。但葡萄在种植环节中容易发生病害,比如常见的白粉病、黑腐病、霜霉病和褐斑病等,从而影响葡萄品质[1,2]。传统葡萄病害的诊断基本上是凭借人工经验进行分析与判断,速度慢、成本高、实时性差,诊断结果依赖人的经验值,容易出现偏差。
葡萄病害的致病机理不同,从而导致其在叶片病斑纹理、形状、颜色上也存在很大差异,因此近年来不断有相关研究利用计算机图像处理和机器学习技术对葡萄病害进行识别,并取得了一些成果。田有文[3]基于CIE XYZ颜色空间,提取了病害彩色纹理图像特征,针对黑痘病、白粉病和霜霉病特征,应用SVM算法实现分类识别;在另一篇文献中,田有文[4]以病害纹理特征、病斑形状特征以及CIELab颜色特征,并采用SVM算法进行分类识别;Tian Youwen[5]聚焦病斑的纹理特征、颜色等特征,采用SVM方法进行识别。类似的,朱林[6]在病斑区域对于颜色的HSV分量分别提取了基于GLCM灰度共生矩阵的4种纹理特征以及颜色特征,然后以人工神经网络为分类器进行病害诊断;刘媛[7]通过提取叶片上病斑处的颜色和灰度共生矩阵的纹理特征共28种特征,使用22种分类器进行了训练和测试,结果表明Bagged Trees分类器识别效果最好;王利伟[8]以白粉病、黑腐病、霜霉病为研究对象,提取病害叶片的病斑区域形状、颜色和纹理的共15个特征,采用支持向量机算法予以识别,类似的Narvekar1[9]也完成相关工作。但是,在受病害的葡萄中,其叶片常常有多个病斑,用一个或几个代表性的病斑代表自然环境下的叶片病害图像显然是片面的,因此这种方式比较适合于在实验室检测使用,并不适用于自然环境下的检测。图像特征可以分为全局特征和局部特征[10],常见的颜色特征、纹理和形态特征为全局特征;典型的局部特征主要有:HOG[11,12]、Gabor[13]、LBP[14]、SIFT[15]和SURF[16]等。经典模式识别方法的病虫害识别研究表明,与全局特征相比,基于HOG、Gabor等局部特征,能更好克服自然环境中光照不均、姿态变化等全局干扰问题,对病虫害昆虫具有较好的识别效果[17],而以上关于葡萄病害识别的研究均采用全局特征,因此在适用范围上存在一定局限性。
近年来深度学习在计算机视觉上取得一定成功,刘阗宇[18]采用Faster-RCNN葡萄叶片,实现了一种基于卷积神经网络的病害检测方法,可有效去除背景因素对病害区域干扰,降低错误率。类似的还有刘媛[19]对于包含复杂背景完整染病叶片样本,使用Faster - RCNN模型先检测图像中的叶片,在检出的叶片区域再进行病斑检测,根据用外接矩形框出叶片上病斑区域,最后将该矩形图像送入CNN进行病害类型识别。虽然深度学习在图像识别中已经取得较好的表现,但是它严重依赖于训练大数据,在一定程度上限制了其使用范围。
上述研究表明,不管是传统的研究方法还是基于卷积神经网络的方法,均能取得较好的识别效果,但各有使用局限。针对小样本数据,如何利用传统的识别方法,同时避免特定病斑特征而进行葡萄病害识别是本研究主要目标。本研究将以葡萄三种病害为研究对象,融合病害叶片的全局和局部多特征,采用支持向量机分类器,实现小样本下非病斑特征的葡萄病害识别,为后续实现基于云机器人的远程自然环境葡萄病害识别奠定基础。
本研究以葡萄叶片轮斑病、黑腐病、褐斑病为研究对象,采用机器视觉技术完成图像预处理,并提取图像特征。传统识别方法主要利用全局特征,比如颜色、纹理、形态,其中特别看重病斑的形态特征,诸如矩形长度、长宽比、病斑面积[4]等,但是一个叶片上实际可能存在多个病斑,如何综合度量多个病斑特征是个难题。目前较多采用聚焦病斑形状特征的识别方法,该方法比较适合实验室环境测试,为此本研究选择RGB颜色矩特征、基于HSV颜色直方图特征、基于GLCM灰度共生矩阵的纹理特征。与全局特征相比,局部图像特征具有在图像中蕴含数量丰富、特征间相关度小、遮挡情况下不会因为部分特征的消失而影响其他特征的检测和匹配等特点,近年来局部图像特征在行人检测、目标跟踪等领域得到了广泛应用[12,14]。在以上诸多的局部特征中,文献[20]表明HOG特征对水稻昆虫识别表现得更好,另一方面,Gabor特征产生的特征矩阵维度一般达几千甚至上万,虽然可以通过将样本图像缩小以减少特征维度,但是相对于其他特征而言特征维度还是非常大,出现不同特征之间特征维度不平衡问题,因此本文采用了HOG特征。本文将以上多个葡萄病害图像特征进行级联拼接融合,并采用支持向量机进行训练与测试,从而实现葡萄病害识别。识别方法流程示意框图如图1所示。
图1 基于多特征融合与支持向量机的葡萄病害识别流程示意框图
图1将基于多特征融合与支持向量机的葡萄病害识别分成两个阶段,第一个阶段是模型训练阶段,第二个阶段是模型测试阶段。第一个阶段先将葡萄叶片病害样本图像经过预处理,预处理主要是考虑到图像采集过程中灰尘、水雾等因素可能会对采集到的图像产生噪声,影响对叶片病害特征提取效果,本文采用3×3中值滤波对图像进行去噪处理。然后进入到特征工程模块,在该模块主要实现特征提取和特征融合,然后送入到基于支持向量机算法模块进行模型训练,最终得到一个葡萄病害识别模型。在第二阶段,葡萄叶片病害测试图像同样经过预处理和特征工程后,基于第一阶段的识别模型,完成相关测试,最终得到识别结果。
1.2.1 葡萄病害特征提取设计
1)RGB颜色矩特征。RGB颜色模型可以表征待识别对象的丰富的颜色信息。本文利用Stricker[21]和Orengo提出的颜色矩来表征验证特征,该方法利用颜色一阶矩、颜色二阶矩和颜色三阶矩来描述RGB颜色模型的颜色分布。在RGB颜色模型中每个像素有3个颜色通道,因此需要采用9个数据来表示颜色矩。
3个颜色矩的数学定义如下:
式中pi,j表示彩色图像第j个像素的第i个颜色分量;N表示图像中的像素个数。
图像的3个分量R,G,B图像的三阶颜色矩组成一个9维特征向量,即图像的颜色特征表示如下:
2)HSV颜色直方图特征。RGB颜色模型3个分量具有高度相关性,易受光照强度等因素影响,稳定性较差。HSV色彩模型3个分量色调、饱和度、明度基本不相关,对光照变化表现稳健,能更好反映颜色的本质信息[22]。因此,本文将图像从RGB颜色空间转换到HSV色彩空间,并提取该空间下直方图特征,作为图像的另一种全局颜色特征。根据公式(4)[23]将HSV分量均匀量化,H、S、V分量分别均匀划分为16、4、4个区间,通过级联链接,共获得颜色直方图256维的全局颜色特征。即HSV颜色直方图特征表示为
3)基于灰度共生矩阵(GLCM)的纹理特征。纹理指人们所观察到图像像素的灰度变化规律,本文使用灰度共生矩阵[24](Gray Level Cooccurrence Matrix GLCM)来提取葡萄病害图像的纹理特征。矩阵中的元素值代表两个灰度级之间的联合条件概率密度ρ(i,j|d,θ),即在给定空间距离d和方向θ时,以灰度级i为起点,灰度级j出现的概率。本文设定统计距离为d=1,共生矩阵生成方向为θ=0°,45°,90°,135°,得到8个纹理特征:能量、熵、对比度、相关性及其标准差等,本文选择这8个值作为纹理特征。具体计算公式如下[25]:
其中µ1µ2σ1σ2分别为:
这样葡萄病害的纹理特征表示为
4)局部HOG特征。Dalal[26]等提出的HOG特征是一种表述图像局部信息的方式。HOG特征描述将整个检测窗口划分为块(block),每一块由若干单元格(cell)组成,对单元格内像素的一维梯度方向直方图进行统计,将所有单元格内梯度方向直方图组合起来,用于描述整个图像的特征。在本文中,把葡萄叶片病害样本图像大小调整为64×64,每8×8的像素组成一个cell,把每个cell内分成9个区间后统计每个cell内所有像素的梯度值,分别在各个区间进行直方图统计,从而形成一个9维特征向量,而一个block由4个cell构造,故这样一个block就有36维特征向量。整幅图就包含7×7=49个block,总共有36×7×7=1 764维特征。故葡萄病害的HOG特征表示为:
1.2.2 特征融合模块设计
单一特征一般难以全面反映图像的各方面信息,只根据单一特征对病害图像进行分类识别的准确率一般不高,相反,多特征能全面地反映图像各个方面的信息,给图像分类提供更多的参考依据,但需要对多特征进行融合。本文对葡萄病害经过预处理操作后,分别提取各类病害样本图像的RGB颜色矩,HSV颜色直方图特征、GLCM纹理特征、和HOG特征。在特征融合方面,本文采用级联拼接的方式,它通过将各特征向量直接拼接在一起,形成一个更高维度的特征向量,其维度是各特征的维度之和。同时为了检验不同的特征对分类效果的影响,将RGB颜色矩分别与HSV颜色直方图特征、GLCM纹理特征和HOG特征级联逐次拼接,形成以下6种特征集:
为了构造葡萄病害识别训练模型,需要进一步构建分类器,并对参数寻优。目前广泛使用的分类器有诸如KNN、决策树、支持向量机、朴素贝叶斯、集成分类器等。其中支持向量机(Support Vector Machine)[27]是机器学习中的一种监督学习模型,经常用于分类问题和回归分析,获得广泛的认可。
支持向量机以结构化、风险最小化为原则来提高学习机泛化能力,通过解二次规划问题, 寻找将数据分类的最佳超平面,从而实现经验风险和置信范围的最小化,达到在统计样本量较少的情况下也能获得良好的分类结果的目的[28]。对于非线性问题,我们可以通过核函数把非线性问题转化为高维空间中的线性问题,而后转换为简单的SVM问题来求解。常用的核函数包括多项式核函数、径向基核函数、线性核函数和Sigmoid核函数。
在具体使用中,SVM中的惩罚因子C,核函数及其参数的变化对SVM分类的结果以及模型的泛化能力有较大的影响。常见的传统SVM参数寻优方法有经验、网格搜索法以及基于GA、PSO之类的群智能算法[29]。
在本文中将使用支持向量机来构造葡萄病害识别训练模型,并采用网格搜索法进行参数寻优。
本次实验设备计算机型号为HP,配置为I 73 632 QM (2.2GHz) ,16 G DDR3内存。在Matlab 2014 b环境中编写图像预处理、特征提取算法,在Python环境实现病害分类与测试。
本实验采用全球AI挑战赛的“农作物病害检测”比赛项目[30]的数据集作为本文实验数据集,共有健康葡萄叶片294副,葡萄黑腐病叶片共462副,葡萄轮斑病叶片共427副,葡萄褐斑病叶片共630副,合计1 813副图像,根据前面的流程,首先图像进行预处理,然后提取相关特征,最后输入到支持向量机进行训练与测试。
为了评估不同特征对分类效果的影响,本文采用准确率作为评价标准,采用5折交叉验证方法来计算识别准确率,经过网格搜索法参数寻优,确定当核函数为RBF,惩罚参数C为88时,分类效果最好,如表1所示。
表1 不同特征下分类准确率一览表
由表1可知,采用GLCM纹理特征是所有的特征里面识别准确率最低的,在颜色特征方面,HSV颜色直方图特征取得不错的效果,当采用RGB颜色矩与HSV颜色直方图特征结合后可以达到86.12%的识别准确率。当把颜色和纹理结合纹理特征后可以达到88.77%的识别准确率,远高于文献[8]提出的颜色与纹理相结合特征的识别正确率。而当把颜色、纹理和局部的HOG特征结合之后,病害识别准确率大幅提高,达到了93.41%,这说明HOG特征的确为叶片病害的精细描述提供了帮助。相较于之前的研究会考虑病斑的形状特征,而本文的结果在不考虑病斑形状特征的情况下,病害识别准确率高于最新的文献[7]提到的平均86.4%,这说明本文提出的融入局部HOG特征后,即使不考虑病斑形状特征也能够较好地满足葡萄病害识别,为以后的基于云机器人的在线葡萄病害识别奠定了良好的基础。
另一方面,为了检验不同病害识别的难易程度,本文将1 813副图像按照75%作为训练集,25%作为测试集的方式,采用前面提到的支持向量机优化参数,得到F6特征集下的不同病害的准确率、召回率、F1指标如表2所示。从表中可以清晰看出本文提出的特征及算法对健康葡萄和褐斑病葡萄叶具有较高的识别率,准确率分别可到99%和98%,而黑腐病葡萄叶的识别准确率较低,只有86%,这说明当前的特征组合对黑腐病的特征抽取支持度最差。
表2 F6特征下不同病害的识别指标值
本文以葡萄的三种常病害(黑腐病、轮斑病、褐斑病)为研究对象,提出了融合RGB颜色矩、HSV颜色直方图特征、GLCM纹理特征、HOG特征等4类特征,并以支持向量机为分类器的葡萄病害识别方法,该方法平均识别率达93.41%,对于褐斑病的识别率达98%,该方法有效地避免了传统中需要识别和分割病斑,并抽取病斑形状特征的计算过程,且达到了较高的识别准确度,说明本方法具有较高的实用性。葡萄病害不仅仅是本文测试的这三种,还有比如白粉病和霜霉病等,这需要在后续的研究中继续完成。另外,如何提取更多的病害特征,以提高比如黑腐病的识别准确率还有待进一步深入研究。再者,如何在现有的基础上,实现全过程葡萄病害自动化识别仍是一个重要的研究课题。