基于复杂环境的番茄叶部图像病虫害识别*
2021-09-23杨英茹吴华瑞张燕朱华吉李瑜玲田国英
杨英茹,吴华瑞,张燕,朱华吉,李瑜玲,田国英
(1. 石家庄市农林科学研究院,石家庄市,050041; 2. 石家庄市农业信息化技术创新中心,石家庄市,050041; 3. 国家农业信息化工程技术研究中心,北京市,100097; 4. 北京农业信息技术研究中心,北京市,100097)
0 引言
番茄作为重要的蔬菜作物,因其具有较好的食用性及较高的营养价值,被各国大面积种植。但番茄易感染多种病虫害,严重影响番茄品质及产量,从而造成经济损失[1]。番茄病害种类较多且传播较快,及时准确的病害识别有助于把握最佳防治期[2-3]。
植物病虫害的无损检测是近年来研究的重要课题[4],利用机器视觉技术对病害类型辨别[5-6]及自动诊断[7-8]是当前研究的热点。一般意义上讲,图像通常被解释为颜色、纹理和形状特征。其中,颜色作为主要特征可定义为矩、直方图、对比度、均匀性、方差和熵等特征。马超等[9]以田间开放环境下采集的水稻主要病害图片为研究对象,提取病害HOG特征输入支持向量机(SVM)对水稻病害进行检测,通过人工选择样本病斑集和非病斑集训练识别模型,对多种病斑检测的综合识别率为94%以上,病斑定位正确率为91.7%。刘翠翠等[10]以川麦冬叶部黑斑病、炭疽病、叶枯病3种病害为研究对象,采用k-means聚类分割技术分离出病斑,抽取病斑颜色特征、形状特征和纹理特征构成46维特征向量,将主成分分析降维的特征输入SVM进行病害识别,准确率达到94.4%。刘君等[11]研究提出采用CNN与传统的HOG+SVM算法相结合的方法,将CNN抽取番茄叶部病害的浅层特征与抽取的HOG特征合并,利用SVM分类器对6种番茄病害和1组健康番茄进行分类,平均识别率达92.49%。王雪等[12]探索基于颜色和形状特征的黄瓜霜霉病的自动识别,利用k近邻法对样本进行分类识别,识别率达到95%。郭小清等[13]为了提高基于数字图像识别番茄叶部病害的准确率,适应不同分辨率条件下的应用需求,并满足实践拍摄条件的不确定性,对番茄三种病害进行识别,提取颜色特征和纹理特征组成7维特征向量,输入用粒子群算法(PSO)优化的SVM模型,识别率达90%。邹永杰等[14]通过提取有病虫害和无病虫害的番茄样本的HOG特征和LBP特征,然后结合SVM分类器进行番茄叶片病虫害检测,识别率达99.49%。张红涛等[15]基于超绿特征的最大类间方差法分割出谷子病害叶片,提取叶片病害19维特征,包括:颜色、形态、纹理等特征,采用蚁群优化算法选择了8个特征,运用布谷鸟算法优化支持向量机,对谷瘟病、白发病、红叶病、锈病共4种谷子叶片病害进行识别,识别率达99%。
但大多数研究中病害图像的背景相对简单,而实际场景中所采集图像通常同时存在枝、叶、土壤等复杂背景。而基于复杂背景下现场采集的图像的病斑探测、自动提取需要高复杂度、高计算算法,无法满足轻量实时平台的应用要求。本文以温室大棚内采集的番茄叶部图像作为研究对象,针对白粉病、早疫病和斑潜蝇三种常见番茄病虫害,提出了一种结合颜色纹理特征的基于支持向量机的CCL-SVM方法,对复杂环境下番茄叶部图像病虫害进行识别。将原始番茄叶部病害图像切割成子图像,选取不包含背景的叶片子图像作为试验样本,从而实现样本数量和样本多样性的增加,并降低样本复杂背景的影响。通过对子图像数据抽取颜色纹理特征,采用CCL-SVM方法对番茄早疫病、白粉病、斑潜蝇和健康叶片分类识别。
1 材料与方法
1.1 图像采集
本文中番茄病害图像采集于北京市昌平区小汤山镇国家精准农业小汤山示范基地内温室番茄大棚,包括白粉病、早疫病和斑潜蝇等病虫害,所采集图像均为生长状态及自然光照下番茄叶部图像,如图1所示。图像采集时以能够清晰拍摄番茄叶部病斑,且以叶片图像最大化占据画面主要原则,共195张原始病害叶部图像,包括白粉病67张,早疫病63张和斑潜蝇65张。从图1可以看出,图片背景较为复杂,且存在一定的光照、拍照角度、拍照距离影响。
(a) 早疫病 (b) 白粉病 (c) 斑潜蝇
1.2 小样本及复杂背景图像识别预处理方法
由于农业环境尤其是病害的发生具有季节性和随机性的特点导致数据采集难度较大,目前普遍采样对小样本数据进行数据增强,典型的数据增强方法有翻转、平移、缩放、色彩抖动、加噪声等。另一方面,实际现场采集图像数据背景复杂需对识别目标切割提取后识别,常见方法有超像素分割、语义分割等。本文根据番茄叶部病害的特点及结合未来移动终端或边缘节点配置的需求,采用叶部子图像生成及无背景子图像数据库构建方法,通过识别叶部子图像病斑来判断病害类别。该方法在增加了样本数量的同时排除了背景的影响。预处理过程如下。
步骤1:滑动窗口切割生成子图像:本文采集的图像大小为4 224像素×5 632像素,为提高病斑的识别精度,子图像尺寸及数据库样本图像特性的合理设计至关重要。如果将滑动窗口大小和步长设置过小,则所包含病斑将失去典型特征;如果将滑动窗口大小和步长设置过大,则将包含过多病斑外信息且不利于样本数量增加。通过试验,本文所采用滑动窗口大小为640像素×480像素,横向滑动步长为300像素,纵向滑动步长为250像素(图2)。该滑动窗口将每一张原始图像切割成255张子图像,分别生成白粉病子图像17 095张,早疫病子图像16 065张,斑潜蝇子图像 16 575 张。图2(a)为复杂环境下所采集原始图像,图2(b)为采用滑动窗口切割后生子图像,其中图2(a)蓝色方框为滑动窗口。
(a) 番茄早疫病原始图像样本 (b) 切割后的小尺寸图
步骤2:无背景子图像选取:从切割生成的子图像中选出含有早疫病、白粉病、斑潜蝇图像,本文的训练数据集共包括4类:早疫病(类1)、白粉病(类2)、斑潜蝇(类3)和健康叶(类4)。每一类样本集各400张,共1 600张(400张/类×4类),如图3所示。
(a) 早疫病(类1) (b) 白粉病(类2)
1.3 颜色纹理特征提取
保证番茄病害识别准确性的关键在于病斑图像特征的选取,针对番茄病害病斑不同特点选择图像特征,用于保证选取的病斑特征能最大程度区分三种病害。
番茄三种病害叶部病斑的特点如下[16]。
1) 早疫病病斑[16-17]:叶片初期呈褐色、黑色圆形或椭圆形的坏死小斑点,后扩展为近圆形病斑有边缘深褐色、中央灰褐色的同心轮纹,叶片变黄干枯,天气潮湿时,病斑上长有黑色霉。
2) 白粉病病斑[18]:发病初期叶片正面出现小型的放射状白色霉点,后扩大成白色圆形粉斑,且白色粉状物逐渐加密、扩大,严重时布满全叶,叶片像被撒上一层面粉,后期使整叶变褐枯死。
3) 斑潜蝇病斑[19]:叶片上表皮出现典型蛇形虫道,呈曲折蜿蜒的食痕,不规则线状伸展,终端可明显变宽,严重的潜痕密布,致叶片发黄、枯焦或脱离。
通过分析番茄叶部三种病害病斑的特点发现三个类之间颜色特征和纹理特征差异明显,本文提取图像的颜色特征包括颜色矩[20](Color Moments,CM)和颜色聚合向量[21](Color Coherence Vector,CCV),局部二值模式统计直方图(LBP)纹理特征[22]作为本文的识别特征。
1.3.1 颜色矩
图4给出本文训练数据的颜色矩的火柴杆图。从图4中可以看出颜色矩向量值主要集中在颜色分量一阶矩中,且四个类的颜色矩特征差异明显,可以作为分类特征。
(a) 早疫病(类1) (b) 白粉病(类2)
颜色矩[20]是由Stricker和Orengo提出的一种简单有效的颜色特征,该方法以数学为基础,将图像中的颜色分布用其矩表示。由于颜色信息主要分布于低阶矩中,所以用颜色一阶矩(平均值Average)、颜色二阶矩(方差Variance)和颜色三阶矩(偏斜度Skewness)足以描述图像的颜色分布。该方法的优点在于不需要颜色空间量化,特征向量维数低,为了避免分辨能力低,通常与其他特征结合使用。三个颜色矩的数学定义
(1)
(2)
(3)
式中:Pi, j——彩色图像第j个像素点的第i个颜色分量,i={r,g,b};
N——图像像素点个数;
μi——第i个颜色分量的一阶矩;
σi——第i个颜色分量的二阶矩;
si——第i个颜色分量的三阶矩。
本文采用RGB三通道的颜色三阶矩计算出9×维特征向量Frgb,分别为三个颜色分量R、G、B和每个分量上的三个低阶矩。
Frgb=[μr,μg,μb,σr,σg,σb,sr,sg,sb]
(4)
式中:μr、μg、μb——三个颜色分量R、G、B的一阶矩;
σr、σg、σb——三个颜色分量R、G、B的二阶矩;
sr、sg、sb——三个颜色分量R、G、B的三阶矩。
1.3.2 颜色聚合向量
图5为本文训练数据的颜色聚合向量的统计火柴杆图,横坐标中0~50为聚合向量量化级通道,51~100为非聚合向量量化级通道。从图5可以看出,颜色聚合向量主要集中在0~30的颜色量化级通道,而颜色非聚合向量值主要集中在60~80的颜色量化级通道,且四个类的颜色聚合向量也能很清晰地体现四个类的类间差异。
(a) 早疫病(类1) (b) 白粉病(类2)
颜色聚合向量[21](Color Coherence Vector,CCV)是一种更复杂颜色直方图,它将直方图中每一个颜色簇划分为聚合的(coherence pixels)或非聚合的(incoherence pixels)两部分。它包含了颜色分布的空间信息,克服了颜色直方图无法表达图像色彩的空间位置的缺点。其核心思想是:通过计算量化后的彩色图像的连通域将图像中的像素分成两部分,如果该区域内的某些像素所占据的连续区域的面积大于给定的阈值,则该区域内的像素作为聚合像素,否则作为非聚合像素。本文基于RGB三通道图像计算颜色聚合向量,首先对RGB图像进行3×3高斯平滑,去除噪声,使得颜色联通区域提取的效果更好;其次进行量化处理,将每个像素的像素值转化到一个相对小一点的离散空间,以减少计算连通区域过程中的复杂度,本文采用一般的均匀量化,量化级数为50,即得到50个颜色区间bin;然后通过遍历量化后的像素值矩阵划分8连通区域,根据聚合像素阈值划分聚合连通区域和非聚合联通区域。通常聚合像素阈值取整幅图像素数的1%,本文设置聚合像素阈值为1。图像的聚合向量特征CCV可以用式(5)表示。
CCV=〈(∂1,β1),…,(∂k,βk),…,(∂n,βn)〉
(5)
式中:k——颜色量化级通道数;
∂k——颜色量化级通道k中聚合像素的个数;
βk——颜色量化级通道k中非聚合像素的个数。
本文n=50,CCV为50×2的矩阵,将CCV中的聚合向量和非聚合向量串联起来组成本文的颜色聚合向量特征,维数为100×1。
1.3.3 旋转不变自相关LBPs
LBP(Local binary pattern)最初设计为局部区域的纹理描述,称为微模式,它由表示局部区域中心像素与其相邻像素之间大小关系的二进制模式组成,并已经扩展到基于LBP的各种类型的特征[22]。LBP直方图(Local binary pattern histogram)是近年来图像识别领域研究的热点,其基本思想是将整个图像表示为多个LBPs,每个LBP从图像的局部区域提取。由于LBP只考虑中心和相邻像素强度之间的大小关系,使得它具有对整个图像强度均匀变化的不变性和对光照变化的鲁棒性。本文采用Nosaka等[23]在2012年提出的RIC-LBP(Rotation Invariant Co-occurrence amaong Adgacent LBPs)特征,该特征在原始LBP[24]的基础上通过引入旋转等价类来获得旋转不变性,因此RIC-LBP具有旋转不变性和高度的描述能力,参数设置为:LBP半径s=1,2,4 pixels;LBP对间隔r=2,4,8 pixels。本文设置s=1 pixels,r=2 pixels,抽取的RIC-LBP特征维数为136×1。图6为本文训练数据的LBP特征的火柴杆图。从图6可以看出三个类的不同的LBP对的数量差异较大,表明提取的RIC-LBP特征具有较好的辨别能力。
(a) 早疫病(类1)
1.3.4 本文抽取的颜色纹理特征
本文融合颜色矩、颜色聚合向量、局部二值模式统计直方图,构成颜色纹理特征。
图7为本文训练数据的颜色纹理特征的火柴杆图,横坐标0~50表示颜色聚合向量特征区间,51~100表示颜色非聚合向量特征区间,101~110表示颜色矩特征区间,111~245表示RIC-LBP特征区间。从颜色矩、颜色聚合向量和LBP特征融合图7来看,将颜色纹理特征合并后,四个类的差异性更加明显,区分度更高。
(a) 早疫病(类1) (b) 白粉病(类2)
1.4 复杂背景下病虫害识别模型CCL-SVM
1.4.1 支持向量机SVM
支持向量机[25-26](Support Vector Machines,SVM)广泛应用于模式识别,基本思想是引入几何间隔最大化目标在样本中找最优分割线或最佳超平面将样本分开,所以SVM算法是推导目标函数的最优化问题。在优化过程中,引入核函数将非线性特征由低维空间转换到高维空间,通过kernel技巧将高维空间的内积运算转化为低维空间的内积计算,很大程度上简化了计算,并将支持向量机扩展到非线性问题。不同核函数的选择决定将原始数据空间向不同的高维空间映射。常用SVM核函数包括多项式核(Polynomial)、径向基函数(radial basis function, RBF)、线性核(linear)等。其中径向基核函数(RBF)效果较好,被更广泛地用在小样本、非线性及高维数据的识别中。
SVM引入RBF需要选取两个最优参数:惩罚系数c和核参数g。其中参数c是支持向量机引入的松弛向量参数,即正则项系数,用于平滑经验风险和模型复杂度。当参数c较小时,分界面较平滑,而当c增加增大时,模型可以自由地选择更多的支持向量来确保模型分类精确度;核参数g定义单个训练样本的影响大小,表征RBF核函数的宽度,参数g越大影响半径越小,易出现过拟合(overfitting),参数g越小影响半径越大,易出现欠拟合(underfitting)。选取最优参数c和g能使分类器有较高的分类精确率,由于选取参数c和g没有一定的先验知识,需要做参数搜索,但是即使在训练数据上识别精度较高,也不能保证在测试集上具有较高的预测精度,所以通常采用交叉验证方法提高预测精度。本文采用9-折交叉验证(9-cross validation)方法搜索最佳模型参数c和核函数参数g。
1.4.2 识别模型CCL-SVM步骤
图8为本文提出的复杂环境下番茄病害识别模型CCL-SVM训练过程,步骤如下。
1) 复杂背景下番茄叶部病害(早疫病、白粉病、斑潜蝇)图像采集。
2) 基于滑动窗口数据增强:(1)滑动窗口大小、步长设置及图像遍历、小区域图像切割;(2)训练样本二次采样:选取早疫病样本、白粉病样本、斑潜蝇样本和健康叶样本共4类高质量训练样本,每类400张,共 1 600 张(4类×400张)样本。
3) 颜色纹理特征CCL(CM、CCV、LBP)提取融合,CCL=[CM,CCV,LBP]。
4) 训练数据设置:将每一类平均分为10份,训练集∶验证集∶测试集=8∶1∶1。
5) 输入RBF-SVM径向基核函数分类器,基于9-折交叉验证选取最优参数c和g。
6) 基于RBF-SVM最优参数c和g,计算训练模型CCL-SVM。
图8 CCL-SVM模型训练过程
2 试验和结果
2.1 试验环境
本文试验的运行平台为Window10,处理器为Intel(R) Core(TM) i7-7700 CPU @ 3.60 GHz 3.60 GHz,RAM 8.0 GB。运行环境为:MATLAB R2015a。深度学习模型VGG和Alexnet的运行环境为:ubuntu 18.04,cuda 10.1,tensorflow-gup 1.4.0,acaconda3,JetBrains PyCharm Community Edition。
2.2 试验数据设置
本文试验数据由早疫病、白粉病、斑潜蝇和健康叶4类构成,每一类400张子图片,共1 600张(400张×4类)子图片。本文抽取的图像特征包括:颜色矩(CM,长度为9),颜色聚合向量(CCV,长度为100),纹理LBP特征(LBP,长度为136),合并颜色特征和纹理特征,本文抽取特征长度为245。设置训练集∶验证集∶测试集=8∶1∶1,采用9折交叉验证训练SVM模型及参数,最后一组作为测试集验证算法的可行性。
2.3 试验结果分析
通过9-折交叉验证,得出训练模型最优参数惩罚因子c和最优径向核函数g,表1列出分类模型最优参数及识别结果,其中t=2表明SVM模型选择径向基函数,基于颜色特征的CC-SVM分类模型的最优参数c=45.254 8,g=0.25,测试集识别率为88.75%。基于纹理特征的LBP-SVM分类模型的最优参数c=16,g=0.044 194,测试集识别率为93.75%。本文提出的CCL-SVM分类模型的最优参数c=32,g=0.044 194,识别率为97.5%,比CC-SVM分类模型高出8.75个百分点,比LBP-SVM分类模型高出3.75个百分点。
表1 分类模型参数设置、特征及识别正确率Tab. 1 Parameter setting, feature and accuracy of classification models
图9为基于不同特征的识别率混淆矩阵。从图9(a) 基于颜色特征的识别率混淆矩阵可以看出,早疫病有4个被误识别为白粉病,2个被误识别为斑潜蝇,早疫病识别率为85%;白粉病有1个被误识别为早疫病,2个被误识别为健康叶,白粉病识别率为92.5%;斑潜蝇有2个被误识别为早疫病,1个被误识别为白粉病,斑潜蝇识别率为92.5%;健康叶有2个被误识别为早疫病,4个被误识别为白粉病,健康叶识别率为85%。上述结果表明单独基于颜色特征的容易误识别,这是因为当病斑占样本图像的面积较小时,绿色占主要颜色特征,其中白粉病和斑潜蝇主要颜色特征为白色,也容易发生混淆。从图9(b)基于纹理LBP特征的识别率混淆矩阵可以看出,早疫病、白粉病和健康叶的识别率相同为92.5%,斑潜蝇识别率较高为97.5%,基于纹理LBP特征的每一类的识别都高于基于颜色特征的,误识别除了白粉病类,其他三个类都低于基于颜色特征的,表明纹理LBP特征能较好的将四个类区分开。为了提高识别率,降低误识别率,将颜色特征与纹理特征合并,从图9(c)可以看出,早疫病识别率进一步提高,达100%,误识别率降低为0;白粉病和健康叶比仅仅使用LBP特征提高了5个百分点,误识别率同时降低了5个百分点;斑潜蝇的识别率相对于LBP特征降低了2.5个百分点,但比仅用颜色特征提高了2.5个百分点。
(a) 基于颜色特征 (b) 基于LBP特征 (c) 基于CCL特征
从图9中三个混淆矩阵中四个类的误识别率的变化可以看出:早疫病的误识别率,从基于颜色特征的15%降低到LBP特征的7.5%,到颜色纹理特征结合误识别降低为0;白粉病的误识别率,基于颜色特征和基于LBP特征的误识别率都为7.5%,颜色纹理特征结合,误识别率降低到2.5%,下降5个百分点;斑潜蝇的误识别率从基于颜色特征的7.5%降低到基于LBP特征的2.5%,颜色纹理特征结合,误识别率又上升了2.5个百分点,但误识别率5%低于基于颜色特征的7.5%,说明颜色特征结合纹理特征,可以降低误识别率;健康叶误识别率从基于颜色的15%降低到基于LBP特征的7.5%,颜色纹理特征结合,误识别率又降低了5个百分点。
从识别率变化和误识别的变化来看,基于颜色纹理特征的CCL-SVM识别模型识别率较高,误识别率较低,表明本文提出的颜色纹理特征CCL对本文目标类有较好的区分能力。
2.4 与其他模型对比
将本文提出的CCL-SVM方法与SVM方法、深度学习模型VGG16及Alexnet网络(基础型)进行对比,对比结果如表2所示。深度学习模型输入统一为RGB图像,训练集样本遍历一次为一次迭代epoch,VGG16输入图像尺寸设置为224×224×3,选取学习率(Learning_rate)为0.001,批尺寸(batch_size)为8,当epoch为240时,损失函数从快速下降状态趋于维持在一个较低的水平,说明模型达到收敛,此时识别率为92.5%。AlexNet输入图像尺寸227×227×3,学习率(Learning_rate)为0.001,批尺寸(batch_size)为30,当epoch为54时,识别率达到96.67%。从表2可以看出,本文提出的CCL-SVM方法识别准确率显著高于Gray-SVM方法,且高于深度学习模型VGG16和Alexnet网络。从训练时间和单张平均测试时间上看,CCL-SVM模型训练时间和单张平均测试时间远低于深度学习模型。
表2 不同识别模型对比Tab. 2 Comparison of different recognition models
3 结论
1) 复杂背景下番茄叶部病虫害的快速识别对番茄及时诊断和防治具有重要意义。为了快速识别复杂背景下番茄叶部病虫害,本文提出了基于滑动窗口的样本生成方法,从而增加了样本的数量和多样性,并降低了样本的复杂背景的影响;根据生成样本的特点设计了具有较好区分能力的颜色纹理特征CCL,将CCL特征输入径向基支持向量机SVM中对生成样本进行CCL-SVM模型训练和分类。
2) 为了验证本文方法的有效性,本文在实际复杂环境下采集早疫病、白粉病、斑潜蝇和健康叶图像进行试验测试,分别训练CC-SVM、LBP-SVM和CCL-SVM模型,得出各个训练模型在最优参数惩罚因子c和最优径向核函数g下的最优识别率,分别为88.75%、93.75%和97.5%,本文提出的CCL-SVM方法识别率最高。同时与深度模型VGG16和AlexNet进行比较,本文提出的CCL-SVM方法的识别率高于VGG16和AlexNet,且本文CCL-SVM方法在训练时间和测试时间上也占有较大优势,远低于VGG16和Alexnet。
3) 本文提出的CCL-SVM方法识别率高,计算时间较快,对设备要求较低,为移动终端及边缘计算节点等低端配置系统在复杂背景下病虫害识别应用提供一种新的思路与方法。