一种基于特征选择的农作物病害识别方法与流程

文档序号:13736551阅读:225来源:国知局

本发明属于模式识别领域,具体的说是一种基于特征选择的农作物病害识别方法。



背景技术:

传统的农作物病害识别,往往依赖于农民在生产过程中积累的经验进行判断,然而病害识别还需要专业的知识加以辅佐才能保证病害识别的正确性,对许多农民来说条件都过于苛刻,从而导致农民忽略农作物的病害或者判断产生了错误,造成农作物的损失。因此,我们需要一种工具,能够让农民直接操作而不需要耗费大量体力脑力就能知悉农作物的病害情况。

特征选择在病害识别过程中起到了至关重要的作用。优秀的特征选择方法能够从纷繁杂乱的特征维度中找到与病害分类相关性更强且维度更小的特征子集,使得后序的识别工作能够更加快速、高效的进行,同时节约了成本。最佳子集选择是进行特征选择的一种传统方式,但是当特征数量大时,它不具有计算可行性;其次,由于其固有的不连续性,它的选择结果也是多变的。从可计算的角度考虑,逐步选择可以作为最佳子集选择的一种替代方法。但是,逐步选择方法也具有高变化性的特点,而且往往会陷入局部最优解而不能得到全局最优解。现有的特征选择技术还包括最小绝对收缩和选择算子(leastabsoluteshrinkageandselectionoperator,lasso),是一种l1正则化的最小二乘方法。然而,在样本的特征维数p远远大于样本数n时,lasso的效果并不很令人满意,存在即使特征还未达到饱和也最多只能选择n维特征的问题。而且lasso方法所选出的特征可能是不一致的;后序的基于弹性网(elasticnet,en)模型的特征选择以及自适应lasso特征选择虽然相比较于lasso有所改进,但都只适用于二类别的情况。



技术实现要素:

本发明是为了解决上述现有技术存在的不足之处,提出一种基于特征选择的农作物病害识别方法,以期能解决农作物病害识别中耗时长、效率低、准确率低的问题,从而能快速、准确地识别农作物病害。

本发明为解决技术问题采用如下技术方案:

本发明一种基于特征选择的农作物病害识别方法的特点是按如下步骤进行:

步骤1、采集不同病害种类的原始农作物叶片图像样本集并进行归一化和中心化预处理,得到预处理后的叶片图像样本矩阵及其类别标签矩阵,分别记为x={x1,x2,…,xi,…,xn}t和y={y1,y2,…,yi,…,yn}t,其中,xi表示第i张叶片图像样本,并有:xi={xi1,xi2,…,xij,…,xip},xij表示第i张叶片图像样本的第j维特征,且每张叶片图像样本共有p维特征;yi表示第i张叶片图像样本所对应的病害种类标签,且yi={yi1,yi2,…,yic,…,yic},yij表示第i张叶片图像样本所对应的第j类病害,若yic=0表示第i张叶片图像样本不属于第c类病害,若yic=1,则表示第i张叶片图像样本属于第c类病害;i=1,2,…,n,j=1,2,…,p,c=1,2,…,c;c表示任意病害的种类,c表示病害的种类总数;

步骤2、利用式(1)得到初始回归系数矩阵β(0)

β(0)=(xtx)-1xty(1)

式(1)中,xt表示叶片图像样本矩阵的转置矩阵,(·)-1表示矩阵的逆矩阵;且表示第j维特征与所有病害种类的初始回归系数,并有表示第j维特征与第c类病害的初始回归系数;

步骤3、利用式(2)得到第j维特征与第c类病害的回归系数的权重wjc,从而得到初始回归系数矩阵β(0)的权重矩阵w:

式(2)中,δ表示预设的添加项,且δ>0,s表示预设的缩放参数;

步骤4、定义当前迭代次数为t,并初始化t=1,最大迭代次数为tmax,残差限界为ε,且ε>0;

步骤5、利用式(3)得到第t次迭代的辅助对角矩阵d(t)

步骤6、利用式(4)得到第t次迭代的对角矩阵m(t)

式(4)中,表示辅助对角矩阵d(t)中第j行第j列的对角元素;λ1和λ2为预设的调整参数;

步骤7、利用式(5)得到第t次迭代的回归系数矩阵β(t)的第c列元素从而得到第t次迭代的回归系数矩阵β(t)

式(5)中,yc={y1c,y2c,…,yic,…,ync}t表示类别标签矩阵y的第c列元素;

步骤8、利用式(6)得到第t次迭代的回归系数矩阵β(t)的残差ε′(t)

ε′(t)=||β(t)(t-1)||f(6)

式(6)中,||·||f表示矩阵的f范数;

步骤9、判断t>tmax是否成立,若成立,则停止迭代,并执行步骤11;否则,执行步骤10;

步骤10、判断ε′(t)<ε是否成立,若成立,则停止迭代,并执行步骤11;否则,令t+1赋值给t,并返回步骤5执行;

步骤11、输出第t次迭代的回归系数矩阵β(t),以所述第t次迭代的回归系数矩阵β(t)与任一叶片图像样本xg的乘积所得到的结果来表征叶片图像样本xg所属于的c类病害。

与现有技术相比,本发明的有益效果在于:

1、本发明能够在农作物样本数量较大,维度较高且样本所属病害类别超过两个的基础上通过迭代计算完成特征选择,且迭代计算时结果的收敛速度较快,节约了宝贵的时间;同时本发明所得到的最优特征子集具有精度高、维度低的优点,极大地方便了对实验数据以外的农作物样本的病害识别,使后序的农作物病害识别过程更加节约成本和易于操作。

2、本发明通过在目标优化函数中加入l2,1正则项,利用其特性将与所有病害种类识别都相关的特征保留,将仅与个别病害种类识别相关或与病害种类识别根本无关的特征剔除,保证了农作物样本在属于多种病害类别的情况下所选择出的特征子集依然具有一致性,解决了原有技术手段中多类别下特征选择的结果不一致的问题。

3、本发明具有较高的普适性,可应用于社会生活中其它许多问题,如手写字的识别等,本发明所公开的方法均适用,且受操作人员知识水平和仪器先进程度的限制较小。

4、本发明通过将l1范数扩展到lf范数,使本发明所公开的方法能够同时处理多个样本,在多个样本同时分析的基础上得到的最优特征子集相比于单个样本更具有准确性和说服力。

5、本发明通过对初始回归系数矩阵进行加权,且权重为初始回归系数的倒数的方式,使得初始回归系数矩阵中原本较大的回归系数在迭代过程中被放大,原本较小的回归系数被压缩,从而加快迭代的收敛速度,且提取出的特征子集更具有稳定性和准确性,解决了原有技术无法得到全局最优解的问题。

6、本发明所公开的方法是在获得初始回归系数矩阵的基础上进行迭代收敛,相比于传统的特征选择方法,本发明所提供的方法所需的时间大大减少。

附图说明

图1为本发明的整体流程图。

具体实施方式

本实施例中,如图1所示,一种基于特征选择的农作物病害识别方法,按如下步骤进行:

步骤1、采集不同病害种类的原始农作物叶片图像样本集并进行归一化和中心化预处理,得到预处理后的叶片图像样本矩阵及其类别标签矩阵,分别记为x={x1,x2,…,xi,…,xn}t和y={y1,y2,…,yi,…,yn}t,特征是标准化的,即每一维特征的均值为0方差为1,也就是说,∑jxji/n=0且标签是中心化的,即标签的均值为零其中,xi表示第i张叶片图像样本,并有:xi={xi1,xi2,…,xij,…,xip},xij表示第i张叶片图像样本的第j维特征,共有p维特征;yi表示第i张叶片图像样本所对应的病害种类标签,且yi={yi1,yi2,…,yic,…,yic},yij表示第i张叶片图像样本所对应的第j类病害,若yic=0表示第i张叶片图像样本不属于第c类病害,若yic=1,则表示第i张叶片图像样本属于第c类病害;i=1,2,…,n,j=1,2,…,p,c=1,2,…,c;c表示任意病害的种类,c表示病害的种类总数;

步骤2、利用式(1)得到初始回归系数矩阵β(0)

β(0)=(xtx)-1xty(1)

式(1)中,xt表示叶片图像样本矩阵的转置矩阵,(·)-1表示矩阵的逆矩阵;且表示第j维特征与所有病害种类的初始回归系数,并有表示第j维特征与第c类病害的初始回归系数;式(1)计算所得到的结果为最小二乘回归系数,还可以通过下式得到初始回归系数矩阵b(0)

式(2)中,λ1和λ2为预设的调整参数;ip表示大小为p×p的单位矩阵。与式(1)相比,此式计算所得到的结果为岭回归系数,虽然计算复杂度有所提高,但这样做的好处在于得到的初始回归系数矩阵更加接近最优回归系数矩阵,因此将减少后续迭代的次数,这是优势所在。实验的结果表明对于不同的样本数据矩阵和标签矩阵,两种计算初始回归系数矩阵b(0)的方法各有优劣,但差别并不明显,均可以当作实践方法。

步骤3、利用式(3)得到第j维特征与第c类病害的回归系数的权重wjc,从而得到初始回归系数矩阵β(0)的权重矩阵w:

式(3)中,δ表示预设的添加项,且δ>0,s表示预设的缩放参数;添加δ是为了防止使用式(3)计算权重时出现分母为0的情况,分母若为0,则相应的权重为无限大,失去了计算意义。同时,δ作为添加项不能影响原来的初始回归系数,因此δ必须足够小,经过试验验证,δ的取值一般为10-5较为合适。缩放参数s的目的是使得初始回归系数矩阵中的回归系数更具有区分性,以便于后续的迭代计算,经过实验发现,s的取值一般为1对特征选择最为有利,此时所得到的最优回归系数矩阵分类精度较高。

步骤4、定义当前迭代次数为t,并初始化t=1,最大迭代次数为tmax,设置tmax的目的在于防止出现某些特殊情况下出现无限次迭代计算之后结果依然不收敛的的问题,实验中tmax的值设置为103,一般问题都能在tmax次迭代以内得到最优解。残差限界为ε,且ε>0;

步骤5、利用式(4)得到第t次迭代的辅助对角矩阵d(t)

步骤6、利用式(5)得到第t次迭代的对角矩阵m(t)

式(4)中,表示辅助对角矩阵d(t)中第j行第j列的对角元素;λ1和λ2为预设的调整参数;

步骤7、利用式(6)得到第t次迭代的回归系数矩阵β(t)的第c列元素从而得到第t次迭代的回归系数矩阵β(t)

式(6)中,yc={y1c,y2c,…,yic,…,ync}t表示类别标签矩阵y的第c列元素;通过逐一求出β(t)的各个列向量,然后再拼起来构成β(t)

步骤8、利用式(7)得到第t次迭代的回归系数矩阵β(t)的残差ε′(t)

ε′(t)=||β(t)(t-1)||f(7)

式(7)中,||·||f表示矩阵的f范数;

步骤9、判断t>tmax是否成立,若成立,则停止迭代,并执行步骤11;否则,执行步骤10;

步骤10、判断ε′(t)<ε是否成立,若成立,则停止迭代,并执行步骤11;否则,令t+1赋值给t,并返回步骤5执行;

步骤11、输出第t次迭代的回归系数矩阵β(t),以所述第t次迭代的回归系数矩阵β(t)与任一叶片图像样本xg的乘积所得到的结果来表征叶片图像样本xg所属于的c类病害。在回归系数矩阵β(t)中,将有很多行所对应的回归系数全部为0,这是由于f范数和l2,1范数共同作用的结果,根据β(t)中非零行向量所在的位置即可确定用于样本分类所需的特征子集,达到特征选择的目的。同样因为β(t)中行向量大部分为0量,所以任一叶片图像样本xg与β(t)的矩阵相乘都能快速得到结果,得到样本的病害标签矩阵,完成农作物病害识别。

通过实验将本发明所公开的方法与传统的特征选择方法进行比较后发现本发明所公开的方法在选择相同数量的饱和特征下具有更高的分类准确率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1