APP下载

基于改进SVM算法的植物叶片分类研究

2018-11-06马娜李艳文徐苗

关键词:布谷鸟样本量形状

马娜,李艳文,徐苗

(山西农业大学 信息科学与工程学院,山西 太谷 030801)

近年来计算机视觉技术快速发展,已经被应用于植物物种分类中,为搜索已知和未知植物种群提供方法[1]。植物物种可以通过几何和外貌特征来识别,例如根、叶子、花和果实等。然而,有些特征在不同物种之间的差异通常是微妙的,并且无法转化为数学模型进行计算。研究发现,植物的叶子包含丰富的信息,可以用来进行物种识别[2]。首先,与果实、花卉相比,叶子停留时间更长;其次,叶子具有独特的形状和纹理特征。形状是在姿态、位置和大小等信息去除后,在对象边界内重新形成的几何信息[3]。因此,利用叶片识别植物物种得到广泛应用。Mouine S[4]等以叶片为研究对象,提出一种基于多尺度形状的叶片图像检索方法来识别叶片,证明基于形状的方法可以实现叶片高检索精度。R Hu[5]等提出了一种基于轮廓的形状描述符识别植物叶片,具有良好的效果。Cope J S[6]等通过提取叶片的形状和纹理特征来识别植物物种。Park J K[7]等采用依赖于叶子形状和叶内的静脉几何形状识别植物物种。深度学习方法也较多用于植物叶片的特征提取中。Lee S H[8]等以44种植物叶片为对象,采用卷积神经网络CNN算法提取不同物种特征值。Barré P[9]等通过采用深度学习方法学习叶子的特征值,从而为叶子图像提供更好的特征表示来鉴别不同物种。Zhao Z Q[10]等提出了一种用于植物叶片鉴定的不断增长的卷积神经网络(GCNN),并用ImageCLEF2012植物鉴定数据库进行了验证,得到较好结果。Wu S G[11]等通过提取叶子特征,采用概率神经网络算法对特征数据训练学习得到植物物种识别模型,并在Flavia数据集上验证,识别准确率达到90%。除此之外,支持向量机SVM算法在植物物种的分类中也具有广泛应用。魏蕾[12]等以木瓜、女贞、三角枫和五角枫4种植物为例,通过提取10个叶片形状特征参数,采用SVM算法建立分类模型对植物物种进行识别,有较好的分类效果。张昭[13]等采用基于SVM算法对植物物种进行分类,提取叶片特征参数后,用主成分分析方法选择了3个主成分作为SVM算法的输入数据,建立植物物种分类模型。郑一力等[14]以叶片图像为对象,提取高维特征参数,降维后使用SVM算法进行训练。余秀丽[15]等以小麦为例,通过提取小麦病斑区域形状特征和纹理特征,利用SVM算法得到小麦叶部常见病害识别模型。

综上,在现有植物叶片识别方法中,存在叶片图像需求样本量大,叶片特征提取任务量大和自动分类建模时间长等缺陷,因此本文采用支持向量机SVM算法建立植物叶片分类模型,期望在样本量较小的情况下也有较好分类效果;同时采用布谷鸟CS算法对SVM算法进行优化,以节约前期数据处理和建模时间。

1 布谷鸟搜索算法

布谷鸟搜索算法(Cuckoo Search,CS)是根据自然界中布谷鸟孵化幼雏的行为提出的。其思想主要基于布谷鸟的巢寄生性和莱维飞行机制[16]。布谷鸟通过随机游走的方式搜索得到一个最优的鸟窝来孵化自己的鸟蛋,这种方式可以达到一种高效的寻优模式。

布谷鸟位置更新公式为:

xg+1,i=xg,i+∂⊕L(β)(i=1,2,...n)

(1)

式中xg,i为第i个鸟窝在第g代的鸟窝位置,∂为步长,L(β)为莱维随机搜索路径函数。

步长∂计算公式为:

∂=∂0(xg,i-xbest)

(2)

式中∂0为常数,xbest为当前最优解。

L(β)服从莱维概率分布:

L(β)~u=t-β

(3)

为了计算方便,一般用式(4)产生莱维随机路径:

(4)

式中u,v服从标准正态分布,β为常数,φ计算公式为:

(5)

综上,布谷鸟的位置更新公式为:

(6)

SVM算法的好坏取决于惩罚因子c和核函数参数g的取值,本文利用CS算法参数少、操作简单、易实现、随机搜索路径优和寻优能力强等优点寻找最优的惩罚因子c和核函数参数g。

2 数据预处理

2.1 植物叶片数据获取

本文试验数据来源于两部分:UCI公开数据集[17]和自主拍摄采集的叶片图像。

(1)UCI公开数据集

目前该数据库包含30种不同的植物物种。数据集有340条记录,每个叶片有16种属性,包括形状属性和纹理属性。

(2)自主采集的叶片图像

随机采集了15种植物叶片图像,如图1所示。每种植物采集了75个叶片,其属性见表1。为了保证拍摄参数一致,将背景设定为白色。将采集的叶片平铺在白纸上,使灯光均匀打在白纸上。以EOS600D相机(日本Canon公司,1 800万像素)为拍摄设备,采集分辨率为1 400×2 500的24位彩色图片,每种植物图片各75张。

2.2 数据预处理,提取特征向量

将采集到的彩色图像转换为灰度图,然后用最大类间方差法选择合适的阈值,将灰度图转换为二值图像,效果如图2所示,其中图2(a)是采集到的彩色图,图2(b)是对应的灰度图,图2(c)是处理得到的二值图像。

图2 图像预处理结果Fig.2 Image preprocessing result

然后采用八联通方法,提取叶片的周长、面积、长短轴之比、质心、离心率等6个形状特征值,结果如表1所示。

表1 15种叶片的特征参数Table 1 Characteristic parameters of 15 plant leaves

3 试验结果及分析

3.1 公开数据集测试

对UCI公开数据集进行测试,叶片种类标记为1~15、22~36。训练数据由245个样本组成,测试数据由114个样本组成。最终测试的114个样本中分类正确的样本为100个,准确率达到87.72%。每种叶片的分类结果如表2所示。

表2 30种叶片分类结果Table 2 30 leaf classification results

样本预测分类与实际分类对比结果如图3所示。图3中纵坐标表示树叶样本,横坐标表示测试样本集的大小。红色点表示预测出的叶片种类,蓝色点表示叶片实际的种类。从图3中可以看到,大部分红色区域与蓝色区域是重合的,说明预测结果与实际结果类似,分类效果良好。

图3 样本预测分类与实际分类对比Fig.3 Comparison of sample prediction results with actual results

从试验结果可以看到,虽然公开数据集中每种植物叶片数据较少,但是在样本量较少的情况下,改进的CS-SVM算法对植物叶片的分类也有良好的效果。

3.2 自主采集数据集测试

对表1中鹅耳草榆属、槭属等前8种植物叶片进行分类,每种叶片训练数据选取50个,测试数据选取25个,因此训练数据集大小为400,测试数据集大小为200。利用CS-SVM算法对叶片分类,采用不同的核函数进行分类的结果如表3所示。

表3鹅耳草榆属、槭属等8种叶片分类不同核函数结果对比

Table3 Comparison of different nuclear function results of 8 species of leaf species such as asparagus and acer

核函数Kernel functionsBestcBestg准确率/%Accuracy时间/sTime线性20.112.2995.50 (191/200)8.94多项式25.321.7095.50(191/200)9.08RBF函数27.782.8295.50(191/200)8.68sigmoid22.141.9795.50(191/200)9.08

对表1中红柳、杨属等15种植物叶片进行分类,每种叶片训练数据选取50个,测试数据选取25个,则训练数据集大小为750个,测试数据集大小为375个。利用CS-SVM算法对叶片分类,采用不同的核函数进行分类,结果如表4所示。

表4红柳、杨属等15种叶片不同核函数结果对比

Table4 Comparison of different nuclear functions of 15 species of leaves such as red willow and populus

核函数Kernel functionsBestcBestg准确率/%Accuracy时间/sTime线性497.611.3784.27 (316/375)40.08多项式833.811.1884.00 (315/375)39.56RBF函数810.251.1584.27 (316/375)39.83sigmoid474.551.4384.27 (316/375)41.90

由表4可以看出,无论叶片种类是否增加,CS-SVM算法对植物物种的分类采用RBF核函数在准确率和速度方面均有优势;随着物种种类的增多,CS-SVM算法对植物物种的分类效果有所下降,所需要的处理时间也显著增加;在叶片数据特征值较少(只有6个)的情况下,CS-SVM算法对植物叶片也有良好的分类效果,分类准确率达到84%以上。

3.3 CS-SVM与PSO-SVM叶片分类方法对比

有学者[18,19]采用粒子群算法(PSO)对SVM算法进行优化,为了进一步证明CS对SVM算法的优化效果,本文对比了CS-SVM算法与PSO-SVM算法对叶片分类的效果,结果如表5所示。

表5 PSO-SVM与CS-SVM分类效果对比Table 5 Comparison of classification between PSO-SVM and CS-SVM

从表5可以看出,在不同的测试样本下,CS-SVM算法对植物叶片分类的平均准确率为89.75%,PSO-SVM算法对植物叶片分类的平均准确率为88.83%。CS-SVM算法与PSO-SVM算法对植物叶片分类在准确率上无显著差异,在速度上快10 s左右。因此,CS-SVM算法比PSO-SVM算法分类效率高。

4 结论

针对现有植物叶片分类方法在需求样本量大、特征提取复杂和建模时间长等方面不足,本文提出了基于布谷鸟(CS)算法改进的支持向量机(SVM)方法建立植物叶片分类模型从而对植物物种识别。

(1)本文在不同数据集、不同特征值、不同样本量下验证了该模型的有效性。在UCI数据集上试验,叶片分类准确率达到87.72%。在自主采集叶片数据集鹅耳草榆属、槭属等8种植物叶片和红柳、杨属等15种植物叶片不同样本量上试验,准确率分别达到95.5%和84.27%。试验表明无论在样本量或特征属性值较少的情况下,CS-SVM算法对植物叶片的分类都具有良好的效果。

(2)与PSO-SVM算法相比,CS-SVM算法对植物叶片分类在准确率上无显著差异,平均分类准确率为89.75%,在速度上提高了大概10 s。因此,采用CS-SVM算法利用叶片对植物物种识别是有效且便捷的。

猜你喜欢

布谷鸟样本量形状
挖藕 假如悲伤有形状……
布谷鸟读信
布谷鸟读信
医学研究中样本量的选择
样本量估计及其在nQuery和SAS软件上的实现*——均数比较(十一)
你的形状
火眼金睛
布谷鸟叫醒的清晨
样本量估计及其在nQuery和SAS软件上的实现——均数比较(二)
自适应样本量调整中Fisher合并P值法和传统检验法的模拟比较