李警波,李密生,唐 博,李瑞东
(河北科技师范学院数学与信息科技学院,河北秦皇岛,066004)
随着计算机技术的不断发展,蔬菜叶片的病害识别和诊断已成为现代化农业发展的重要环节。郭小清等[1]提取番茄叶部病害的图像,通过选择HSV模型中的色调分量H值作为颜色特征,按照灰度等级的顺序,将能量、对比度、熵等特征参数作为纹理特征,通过粒子群算法(POS)来分类训练SVM模型,结果表明,番茄几种叶片病害识别率达到90%。王利伟等[2]提取葡萄叶部常见的3种病害图像,将病斑数量、面积、周长等参数作为形状特征;提取R,G,B每个通道一阶矩和二阶矩的分量作为颜色特征;将能量、熵、对比度、相关性等参数作为纹理特征,利用SVM分类器对葡萄叶部常见病害进行分类识别,病害识别率达到95%。郭青等[3]提取小麦叶部白粉病和条锈病等两种主要病害,通过在试验基地的小麦两种病害的采集,利用最大类间方差法对图像叶片病害区域进行分割,将方向一致特征描述作为特征提取的依据,再利用DKC和EOH特征算法的比较应用到识别分类中,结果小麦白粉病和条锈病病斑的识别率达到99%。张云龙等[4]通过采集苹果叶部常见的落叶病、花叶病和锈病为主要研究对象,通过mean-shift方法对苹果叶部斑病进行分割,提取苹果叶部3种主要病害的颜色特征及和差直方图特征,最后利用颜色特征与和差直方图的苹果病害识别方法,通过验证这个识别方法的可行性,最终识别率达到96%以上。田凯等[5]以茄子叶部最常见的褐纹病为研究对象,通过Grabcut算法对茄子叶部斑病进行分割,将提取茄子叶部斑病的颜色、形状及纹理特征参数,利用Fisher判别函数对茄子叶部褐纹病进行分类识别,结果识别率达到90%以上。以上的研究都取得了较好的识别效果,但是所研究的病害都是基于简单背景或局部病害区域,对基于复杂背景下白菜叶部病害的研究还很少,也尚未形成一个通用的模式识别系统。因此本次研究采用计算机视觉技术、数字图像处理等技术应用到白菜叶部病害的识别中,对霜霉病、炭疽病和白斑病进行预处理、病害提取有效特征,最后利用支持向量机技术对白菜3种主要病害进行识别,以弥补人工识别的缺陷和不足,提高病害识别的准确率,为实现白菜叶片常见斑病的高效、准确快速的诊断具有重要的意义。
支持向量机是一种新的模式识别方法,它在解决小样本问题上有着独特的优势,而且在现在农业领域有着非常广泛的应用。张芳等[6]以黄瓜叶部最常见的白粉病和霜霉病为研究对象,采用分水岭等算法对斑病进行分割,将提取的颜色、形状、纹理3个方面的特征参数,利用支持向量机技术有效地进行黄瓜白粉病和霜霉病的识别,结果识别率达到95%。
OTSU算法在1979年首次由日本研究人员大津提出,根据灰度特征,将图像分为两部分:目标和背景。目标和背景之间的差异越大,图像的两个部分之间的差异越大。因此,选取类间方差最大时的阈值将目标和背景分离[7]。
基于上述学者的研究成果,本次研究拟采用支持向量机技术对白菜叶部常见病害检测,将提取白菜叶部常见斑病的颜色、形状和纹理特征作为特征参数,利用SVM分类器对白菜主要病害分类识别,期望得到更好的病害分类识别效果,快速诊断识别白菜叶部常见的病害。
将白菜病害叶片作为主要研究对象,到试验田里通过摄像机对白菜的病害叶片进行大量的采集,收集了900张白菜3种常见叶片斑病图片,主要包含3种病害:白菜炭疽病、白菜霜霉病、白菜白斑病(图1)。
a 炭疽病 b 霜霉病 c 白斑病图1 白菜叶片常见的3种病害
白菜的生长时期主要包含发芽期、幼苗期、莲座期、结球期和休眠期,每个时期出现的斑病都有不同的症状,经过调查一般的病斑出现在莲座期,这个时期的白菜叶片需要适宜的水分和光照条件等,同时这个时期是形成大白菜的关键时期,会出现各种斑病影响白菜的生长,所以本次研究对白菜处于莲座期出现的常见3种病害进行研究。
炭疽病:属真菌病害,病菌随病株残体在土壤里或在种子上越冬,病原主要从植株伤口入侵,靠雨水和昆虫传播蔓延。一般在4~9月份随着温度的升高和雨水量的增加,适合炭疽病的发生。
霜霉病:属真菌病害,病菌主要通过气流、浇水、农事及昆虫传播,春末夏初或秋季连续阴雨天气最易发生。
白斑病:属真菌病害,病菌主要通过田间借风雨传播,有再侵染,8~10月份气温偏低、连阴雨天气可促进病害的发生,气温下降、相对湿度增高、夜露增多的条件下产生。
由于采集出来的图片会受光照等条件的影响,所以要对白菜主要叶片病斑进行预处理的操作,白菜3种常见叶片斑病的识别主要采取的是平滑、滤波等处理方式。可以减少无关噪声对所有用信息的干扰。同时,为后期的白菜3种病害识别提供有利的条件。
图像分割就是按照图像中记录内容的特点把图像分割成不同的区域,以便后期方便对其加工、分析、处理[8]。图像的分割对后期病害提取和计算的准确度至关重要。本次研究选用OTSU算法来对图像进行分割处理。
基本原理如下:
前景比例:w0=N0/M×N
(1)
背景比例:w1=N1/M×N
(2)
像素点总数:N0+N1=M×N
(3)
前景和背景概率之和:w0+w1=1
(4)
平均灰度值:μ=w0×μ0+w1×μ1
(5)
类间方差:g=w0(μ0-μ)2+w1(μ1-μ)2
(6)
将上述公式(4)和(5)带入(6)中可以得到等价公式:
g=w0×w1(μ0-μ)2
其中,w0为背景比例,其均值为μ0;w1为前景比例,其均值为μ1;μ为均值;g为类间方差;图像大小为M×N。[9]
经过预处理的白菜叶部病害图像见图2。
a 炭疽病 b 霜霉病 c 白斑病图2 白菜叶片常见3种病害的图像预处理
不同病害的白菜叶部斑病的颜色也各不相同,如白菜炭疽病的病斑呈灰褐色至灰白色,叶片表面出现稍凹陷的圆斑,严重时病斑为半透明状,易穿孔;白菜霜霉病的病斑呈淡黄色。当空气中的湿度高时,白菜叶片的背面出现白色至灰白色霜状的霉层;白菜白斑病的病斑呈灰褐色至灰白色,其边缘部分有淡黄绿色的圈。空气中湿度越高,则白菜叶片的背面出现一层淡灰色霉层,严重时可使整株白菜叶片干枯死亡。
本次研究的图像处理环节是将RGB模型转化为HIS模型,转化过程中提取的各通道白菜叶部常见病害颜色特征。
通过归一化直方图分别计算颜色直方图分别提取R,G,B,H通道的均值、方差等。
(1)均值:首先求出图像各通道的灰度值
p(b)=H(b)/M
上式中的b为白菜图像的灰度值,H(b)是当灰度值为b时的像素数,M为白菜图像的总像素数。最后,得到的均值为:
(2)方差:
纹理特征主要是通过图像灰度等级的变化,进而提取相应的参数作为属性。而实现纹理特征的提取的一般方法是灰度共生矩阵,因为它能够很好的反映图像的粗糙程度,深浅程度及相似度等等。通过能量、对比度、熵、相关性作为白菜叶部常见病害的纹理特征。
(1)能量:主要反映图像纹理的精细程度和图像分布的纹理粗糙程度。
(2)对比度:可以将图像很逼真地呈现出来,同时,还可以将图像分布的纹理深浅程度表现出来。
(3)熵:主要反映图像所有的信息大小。
(4)相关性:主要反映图像的相似度。
形状特征主要通过矩形度、圆形度、形状复杂度、内接圆半径、伸长度等参数作为形状特征。
(1)矩形度:主要描述白菜叶部病害区域与最小外接矩形的偏离程度。
R1=A/(H×W)
(2)圆形度:主要描述白菜病斑区域与圆形的近似程度。
R2=4πA/L2
(3)形状复杂度:主要描述整个白菜病斑区域的离散程度。
R3=L2/A
(4)内接圆半径:
R4=2A/L
(5)伸长度:主要描述白菜病斑区域扩展程度。
R5=H/W
上述计算式中,A-面积,L-周长,W-长轴,H-短轴。
支持向量机(SVM)是基于统计学原理的一种分类识别方法。在解决非线性、小样本及高维模式识别的问题上有着独特的优势,因此将SVM应用到白菜病害分类识别中。
支持向量机通过构造函数的引入分为可分线性和不可分线性支持向量机,本次研究将引入一个合适的核函数来解决线性不可分的问题。常用的核函数有:
(1)线性核函数
(2)多项式核函数
(3)径向基核函数
K(Xi,Xj)=exp(-γ‖Xi-Xj‖2)
(4)Sigmoid核函数
通过MATLAB软件编程,对SVM分类器进行编译。对上一节的常用的核函数进行比较,最后使用径向基核函数,通过提取白菜叶部常见斑病的颜色特征、纹理特征和形状特征作为数据集,使用300幅训练集样本进行SVM训练。
径向基核函数主要通过函数svmtrain()和svmclassify()来实现SVM训练集和分类。当γ=1的时候,实现3种病害的分类效果最佳,从数据集中随机选取200幅作为白菜3种常见叶片病害样本训练集,其中白菜健康的叶片、白菜炭疽病叶片、白菜白斑病叶片、白菜霜霉病叶片各选取50幅图片;剩下的100幅作为白菜3种主要病害的测试样本,其中白菜健康的叶片、白菜炭疽病叶片、白菜白斑病叶片、白菜霜霉病叶片各选取25幅进行分类识别试验。
试验结果表明,利用SVM分类器,对随机选取的测试样本和训练样本,通过提取斑病的颜色特征、纹理特征和形状特征作为特征参数,可以得到白菜3种病害的平均识别率达到96%(表1)。可以看出,利用径向基核函数对白菜的3种病害分类识别效果最好。
通过上述试验可以看出,提取的颜色、纹理和形状作为特征参数,每一个单一的特征种类的正确识别率低于3个特征参数组合的识别正确率,所以通过3个参数组合起来利用SVM分类器识别率达到96%(表2)。
表1 白菜3种病害测试样本的最佳测试结果
表2 白菜3种病害特征组合的测试结果
基于SVM对白菜叶部常见病害识别,首先进行图像的采集、图像预处理和特征提取,最后通过SVM分类器对白菜常见病害识别。为了实现病害识别的准确率,将提取的斑病颜色、纹理和形状特征组合起来,识别率达到96%,说明本研究方法是一种合理的有效方法,并且有较高的病害识别率。因此,本次研究对白菜叶部的炭疽病、霜霉病和白斑病能有效地识别出来,更加验证了利用SVM分类器对白菜叶部常见病害的准确识别是可行的。
试验采集的白菜叶片病害图片的时间大多为叶片发病早中期,而且该研究是叶片上存在常见的炭疽病、白斑病、霜霉病的情况,不能反映发病过程中的病害特征变化,存在着一定的局限性。因此,面对多种复杂病害发病周期的识别有待进一步的研究。