基于SPSO+SVM 的水稻叶部病害识别方法研究

2022-01-04 02:12杨化龙
上海农业学报 2021年6期
关键词:梯度病斑粒子

陈 宇,路 阳*,蔡 娣,姜 峰,杨化龙,2

(1 黑龙江八一农垦大学电气与信息学院,大庆 163319;2 鸡西市公安局,鸡西 158100)

北方是我国水稻主要产区,水稻种植过程中常常会出现各种病害,其中以稻瘟病、纹枯病、白叶枯病造成的影响最为严重。 这些病害造成水稻品质下降、减产,给种植户带来严重的经济损失。 为有效降低损失,需要对病害进行高效正确的识别。 传统诊断方法主要依靠植物保护专家的经验,肉眼观察,存在专家数量不足、主观性强等缺点。

基于机器学习的水稻病害识别方法目前主要有两类。 一类方法是基于图像分割提取病斑特征,通常通过对水稻病斑图像进行预处理、病斑分割和特征提取实现分类识别,比较典型的方法有增长法[1]、自适应阈值分类法[2]、非监督的颜色聚类识别法[3]、水平集分割法[4]等。 此类方法以水稻病斑的颜色、大小和形态差异为基准,对于光线、图片质量要求较高,在实用性等方面不强。 另一类方法是基于深度学习的水稻病斑分类识别。 通过深度学习提取水稻病斑的特征,排除了人工提取特征的步骤,对复杂环境下的识别适应性更强。 但基于深度学习的病斑识别准确度与初始训练样本的数量和质量成正比,且很难在短期内构建大样本病害图像库。 支持向量机(Support vector machine,SVM)的理论和算法成熟,实用性强,其在语音识别、故障诊断、数据预测等方面取得了一定进展。 支持向量机能够处理非线性可分数据,具有受非支持向量影响小、泛化能力较好等优点,广泛应用在农作物病害识别等领域[5-8]。

本试验以北方寒地采集的水稻叶部病害图像为研究对象,采用方向梯度直方图(Histograms of oriented gradient,HOG)提取水稻病害多种特征,并使用交换粒子群算法(Switching particle swarm optimization,SPSO)寻找支持向量机最优参数,最后在matlabR2018a 环境下构建SPSO-SVM 模型并训练和测试样本,以提高识别速率和准确性,弥补传统识别方法的不足。

1 材料与方法

选取3 种危害较大的水稻稻瘟病、纹枯病、白叶枯病作为研究对象。 水稻病害叶片均在自然光下使用手机拍摄,照片像素为1 312 px×1 104 px。 每种病害选择100 幅图像作为样本,每幅图像采用JPG 格式存储。 采集的原始水稻病害图像如图1 所示。

图1 3 种水稻叶部病害图像Fig.1 Images of 3 kinds of rice leaf diseases

2 水稻叶部病害图像预处理

水稻病害图像采集的过程会受到各种因素影响,导致样本图像有噪声、病斑边缘部分模糊等问题。中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术[9-10]。 其原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,从而消除孤立的噪声点。 二维中值滤波输出为:

其中,f(x,y)、g(x,y)分别为原始图像和处理后图像,W为二维模板。 本试验用5 ×5 的二维滑动模板,模板内像素按照单调上升排序,滤波降噪后图像如图2 所示。

图2 3 种水稻叶片病害分割的病斑Fig.2 Disease spot segmentation of 3 kinds of rice leaf diseases

3 水稻病斑特征提取

方向梯度直方图(HOG),是用梯度的方向密度来描述图像局部特征。 通过计算和统计图像局部区域的梯度方向直方图来构成特征,具有几何和光学形变的不变性[11-13]。 本试验中提取HOG 特征步骤如下:

(1)对图像进行gamma 校正,归一化图像。 由于图像的颜色信息对于方向梯度直方图特征没有影响,因此对滤波后的灰度图像进行平方根gamma 压缩,归一化特征向量。 这种压缩处理有效降低了图像局部的阴影和光照变化。

(2)求出图像水平垂直梯度分量。 首先用一维离散微分模板[-1,0,1]及其转置分别对gamma 校正过的水稻叶部图像进行卷积运算,得到水平方向的梯度分量以及垂直方向的梯度分量。 通过像素点的垂直梯度和水平梯度,计算当前像素点的梯度幅值和梯度方向,如公式(2)—(5)所示。

其中,Gx(x,y)、Gy(x,y)、H(x,y)分别表示当前像素点的水平梯度、垂直梯度和像素值。G(x,y)、α(x,y)分别为当前像素点的梯度幅值和梯度方向。

(3)建立梯度方向直方图。 对尺寸为64 px×128 px 的水稻叶部病害图像进行分割,分为8 ×16 个网格,每个网格的像素为8 px×8 px。 梯度方向范围为[0,π],平均分成9 个区间梯度方向,20°为一个区间,加权投影每个像素梯度直方图,建立每个网格对应的9 维向量。

(4)合成块,归一化块内梯度直方图。 每两个2 ×2 网格合成一个块,每个块对应36 维特征向量。 水稻叶部病害图像的光照变化以及前后背景对比度差异,会导致梯度强度变化范围巨大,需要消除负面影响,最后进行归一化处理,如公式(6)所示。

其中,v是未经归一化的描述子向量,是v的2 范数,ε是一个极小的常数。

(5)特征收集。 如图3 所示,使用滑动窗口法对水稻叶部病害图像进行扫描,以1 个网格为1 个扫描步长,8 ×16 个网格需要7 个水平方向扫描窗口和15 个垂直方向扫描窗口,块之间会产生重叠,串联所有归一化后的块,最后得到36 ×7 ×15 =3 780 维特征向量。

图3 HOG 特征提取Fig.3 HOG feature extraction

4 基于支持向量机的水稻病害识别

水稻叶部病害特征复杂,特征维数大大多于样本数,样本数据线性可分。 因此,本试验采用基于核函数支持向量机(SVM)进行训练和分类识别。 支持向量机算法的基本思想是在特征空间中找到最优的分离超平面,使训练集上的正负样本间隔最大化。 假设训练样本集T={(xi,yi),i=1,2,…,N},其中xi∈Rn,yi∈R,N是训练样本的大小,超平面的描述如下:

其中ω为权向量,b为偏移向量,偏移向量决定了超平面与原点平面的距离。 引入松弛变量ξi和定义优化问题如下:

其中,c是惩罚参数,ξi和是非负松弛变量。 通过引入拉格朗日乘数,将公式(8)转化为二元形式,具体如下:

为了避免空间灾难问题,通常将核函数φ(xi)φ(xj)替换为k(xi,yi)的radial 核函数,核函数的基本作用就是接受两个低维空间里的向量,能够计算出经过某个变换后在高维空间里的向量内积值。 本试验采用radial 核函数,即径向基核函数,公式为:

5 交换粒子群算法对支持向量机参数进行优化

粒子群优化算法(Particle swarm optimization,PSO)源于对鸟群捕食的研究,其基本思路为:通过群体中个体之间的相互协作和信息共享来寻求最优解。 PSO 的优势在于简单容易实现并且没有过多参数的调节。 目前广泛应用于函数优化等各种领域[14]。 粒子群算法通过一群初始化随机粒子,通过迭代寻找最优解,粒子通过公式(13)、(14)进行速度更新和位置更新:

式中:i=1,2,…,N,N是粒子总数。υi是粒子的速度。 rand():介于(0,1)之间的随机数。xi:粒子当前位置。c1,c2:学习因子,通常c1=c2=2。υi的最大值为υmax(大于 0),如果vi大于vmax,则vi=vmax。 以公式(13)、(14)为基础形成粒子群算法标准公式,如公式(15)所示:

ω为惯性因子,其值较大时,全局寻优能力强,局部寻优能力弱;其值较小时,全局寻优能力弱,局部寻优能力强。 动态ω能获得比固定值更好的寻优结果。

PSO 算法具有在执行优化任务时易于实现和快速收敛等优点,但存在早熟收敛、不一致收敛到全局最优问题,为了克服这一局限性,本试验采用改进算法:交换粒子群算法对支持向量机的参数进行优化。

支持向量机中比较重要的参数有两个:c和γ,c是惩罚因子,即对误差的宽容度,可与任意核函数搭配,c系数越高,表示不能允许误差出现,但是容易过拟合;c系数越小越容易出现欠拟合。c过大或者过小都会导致SVM 泛化能力变差。γ是径向基核函数自带的一个参数,隐含地决定了当数据被映射到新的特征空间后的分布,当γ值较小,支持向量较多,当γ值较大,支持向量则较少。 支持向量的多少会大大影响支持向量机的训练和预测速度[15]。

在交换粒子群算法中,通过引入具有马尔可夫交换参数的模式相关速度更新方程,以克服局部搜索和全局搜索之间的矛盾。 通常在搜索早期,群体中的粒子保持其独立性和群体多样性,这样有助于扩大搜索范围并避免过早收敛到局部最优。 在搜索过程的后期,所有群可能会收敛到最佳粒子,以获得更准确的解决方案。 粒子的速度和位置根据公式(16)、(17)更新:

式中,ω(ξ(k))、c1(ξ(k))和c2(ξ(k))是惯性权重和加速度系数,都依赖于马尔可夫链。 设ξ(k)为马尔可夫链,它在有限状态空间S={1,2,…,N}中具有概率转移矩阵即从i到j的转移速率和可以通过当前搜索信息进行调整,以平衡全局和局部搜索能力,如公式(18)所示:

其中,S为群大小,|L|为搜索空间中最长对角线的长度,D为目标问题的维数,xid为第i个粒子的第d个值为整个群中平均点¯x的第d个值,可通过公式(19)计算:

利用交换PSO 优化算法对SVM 两个重要参数求解最优值,优化流程为:首先初始化粒子群位置与速度,设定核函数参数的初始参数数值,计算每个粒子的适应度,根据适应度更新当前Pbest、Gbest,更新粒子的位置和速度,直到找到粒子最优解Pbest 和种群最优解Gbest,最后最优解Gbest 即为需要的最优参数。 交换PSO 伪代码见表1,交换PSO 优化SVM 参数流程如图4 所示。

图4 交换PSO 算法优化SVM 参数流程Fig.4 Optimization of SVM parameters flow by switching PSO algorithm

表1 交换PSO 伪代码Table 1 Switching PSO pseudo code

6 试验与分析

对于3 种常见水稻叶部病害稻瘟病、纹枯病、白叶枯病,每种病害各取100 幅图像进行病害识别,取其前70 幅总计210 幅图像作为训练图像集,剩余图像作为测试图像集。 对样本的图像进行预处理,使用HOG 进行特征提取。

定义交换 PSO 参数:交换 PSO 粒子数设置为20个,最大迭代次数设置为50,学习因子c1设置为1.6,c2设置为1.5,惯性权重ω 设置为0.6,惩罚参数与核函数参数范围为[0.1,1 000]。 迭代结果如图5 所示。 构建SVM 模型,使用HOG 提取的特征构造训练集进行训练和识别,水稻叶部3 种病害的识别结果如表2 所示。

图5 SPSO 优化结果Fig.5 SPSO optimization results

表2 3 种水稻叶部病害识别结果Table 2 Identification results of 3 kinds of rice leaf diseases

从表2 可以看出,当定义SVM 模型参数c和γ值为78 和0.3,3 种水稻叶部病害平均识别率为88.2%,训练时间为1 084 s。 利用PSO 算法优化SVM 模型参数得到c和γ值为100 和0.7,此时参数c达到最优,3 种水稻叶部病害平均识别率为89.3%,训练时间减少323 s。 利用SPSO 算法优化SVM 模型参数得到c和γ的最优值为100 和0.4,不仅3 种水稻叶部病害平均识别率最高,达到93.2%,而且训练时间最少,仅为459 s。

7 结论

基于交换粒子群算法优化后的支持向量机对3 种水稻叶部病害进行识别,取得了较好的识别效果。首先采用中值滤波对3 种水稻叶部病害样本图像进行预处理,并采用方向梯度直方图构建特征向量数据库,然后构建支持向量机,利用交换粒子群算法选取最优支持向量机参数,通过验证,平均识别率为93.2%。 该算法与不进行优化的支持向量机和仅用基本粒子群优化的SVM 相比,训练速度更快,泛化能力更强,而且所需的训练样本需求数量远远小于深度学习方法,可为水稻病害识别诊断提供新的思路。

猜你喜欢
梯度病斑粒子
基于应变梯度的微尺度金属塑性行为研究
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
基于Matlab GUI的云粒子图像回放及特征值提取
一个具梯度项的p-Laplace 方程弱解的存在性
内容、形式与表达——有梯度的语言教学策略研究
航磁梯度数据实测与计算对比研究
一种用于抗体快速分离的嗜硫纳米粒子的制备及表征
套袋对柠檬果实外观品质的影响
Ophiognomonia castaneae协同板栗褐缘叶枯病病原菌致病作用的研究
问:超对称是什么?