林达坤 黄世国 张飞萍 梁光红 吴松青 胡 霞 王 荣
(1. 福建农林大学 智慧农林褔建省高校重点实验室 福州 350002; 2. 福建农林大学 生态公益林重大有害生物防控福建省高校重点实验室 福州 350002)
鳞翅目(Lepidopteran)昆虫是昆虫纲(Insecta)中第二大目,包括蛾、蝶2类,对林木和农作物危害严重,尽早发现并准确鉴别对其生物防治具有重要意义。但鳞翅目昆虫种类繁多,形态各异,尤其是森林生态系统的复杂性,导致其鳞翅目昆虫种类多样性远高于农田生态系统(赵汗青等, 2002),极大地增加了基层林业部门及时、科学地防控害虫的难度。因此,研发该类昆虫自动识别技术十分必要。
20世纪90年代以来,图像处理技术的发展使昆虫自动识别成为可能,通过计算机视觉技术模拟人类识别标本的方式实现昆虫自动识别的研究取得了实质性进展(竺乐庆等, 2013)。Tofilski(2004)开发出DrawWing软件,通过提取昆虫翅脉交点实现了昆虫识别。Ashaghathra等(2007)基于图像的模板匹配技术,自动识别出象甲类昆虫。Larios等(2010)采用Haar方法提取图像特征,并将其与一种具有空间匹配核的支持向量机(support vector machine, SVM)相结合,自动识别了石蝇类昆虫。Yang等(2015)通过提取昆虫翅膀轮廓特征实现了昆虫自动识别,并开发出相应的软件系统。竺乐庆等(2015a)提取鳞翅目昆虫图像的颜色名和OpponentSIFT(Opponent scale invariant feature transform)特征,并使用SVM进行分类,有效实现了对鳞翅目昆虫图像的识别。蔡小娜等(2016)利用蛾类右前翅翅脉特征对7种夜蛾昆虫进行数字化分类研究,证明该特征参数可用于蛾类昆虫的数字化分类鉴定。周爱明等(2017)运用迁移学习方法对已训练好的CaffeNet模型进行参数微调,获得了蝴蝶科级标本图像自动识别的卷积神经网络模型。
然而,现有研究尚存在一些问题:一是基于深度学习的昆虫图像识别需要大量图像,在小的图像数据集上的识别性能不理想;二是传统图像识别方法在图像数量较少的情况下也有可能取得较好效果,但较少考虑相关特征、冗余特征以及噪声特征对分类性能的影响,性能仍有提升的空间;三是较少使用开源的鳞翅目昆虫图像数据集。
特征选择是影响昆虫识别性能的重要因素,在鳞翅目昆虫识别过程中,纹理特征已被证明是有效识别特征之一(竺乐庆等, 2015b),笔者局部二值模式是表征纹理特征的有效方法(黄世国, 2008; 李小林等, 2016),但特征选择对昆虫识别的影响还需进一步研究(Mehtaetal., 2016)。
鉴于此,本研究采用开源的利兹蝴蝶数据集和拍摄的以森林鳞翅目昆虫为主的数据集,利用局部二值模式算法提取昆虫图像特征形成特征矩阵,应用改进的差分进化算法进行特征选择,并将筛选后的特征输入到基于概率协同表示的分类器(probabilistic collaborative representation based classifier, PROCRC)中(Caietal., 2016),构建高效率、高识别率的昆虫识别模型,以准确、快速地识别出鳞翅目昆虫种类。
本研究使用2个鳞翅目昆虫图像数据集,分别为利兹蝴蝶数据集(Wangetal., 2009)和本课题组拍摄的鳞翅目昆虫标本照。这些鳞翅目昆虫大多栖息在森林中,其中马尾松毛虫(Dendrolimuspunctatus)、柳杉毛虫(Dendrolimushoui)、榕透翅毒蛾(Perinanuda)、绿尾大蚕蛾(Actiasseleneningpoana)、茶蚕蛾(Andracabipunctata)、灰白蚕蛾(Ocinaravarians)、蕾鹿蛾(Amatagermana)等还是重要的林业害虫。
利兹蝴蝶数据集为开源数据集,包含10种蝴蝶,共832幅蝴蝶图像(图1)。拍摄的图像均来自不同的蝴蝶样本,姿态各异。
图1 利兹蝴蝶数据集的10种蝴蝶图像Fig.1 Images of ten species of butterflies from Leeds butterfly datasetA: 黑脉金斑蝶 Danaus plexippus; B: 黄条袖蝶 Heliconius charitonius; C: 红带袖蝶 Heliconius erato; D: 鹿眼蛱蝶 Junonia coenia; E: 红灰蝶 Lycaena phlaeas; F: 丧服蛱蝶 Nymphalis antiopa; G: 美洲大芷凤蝶 Papilio cresphontes; H: 白粉蝶 Pieris rapae; I: 优红蛱蝶 Vanessa atalanta; J: 小红蛱蝶 Vanessa cardui.
鳞翅目昆虫标本照是在不同拍摄条件用数码相机拍摄获得的,其拍摄条件分别为是否开闪光、不同感光度(400、800、1 600、3 200和6 400)、不同快门速度(1/250 s、1/500 s、1/1 000 s、1/2 000 s和1/3 200 s)、不同光圈大小(F5.6、F8、F11、F16、F22)以及不同拍摄角度(0°和90°)。拍摄了12种鳞翅目昆虫,共1 761幅图像(图2)。该数据集是针对不同种类的多个标本进行拍摄的,每个种类的原始标本数量不等。
图2 12种鳞翅目昆虫的标本图像Fig.2 Images of twelve Lepidopteran species taken from specimensA: 檗黄粉蝶 Eurema blanda; B: 茶蚕蛾 Andraca bipunctata; C: 东方粉蝶 Pieris canidia; D: 斐豹蛱蝶 Argynnis hyperbius; E: 黄星尺蛾 Arichanna melanaria fraternal; F: 灰白蚕蛾 Ocinara varians; G: 蕾鹿蛾 Amata germana; H: 柳杉毛虫 Dendrolimus houi; I: 绿尾大蚕蛾 Actias selene ningpoana; J: 马尾松毛虫 Dendrolimus punctatus; K: 榕透翅毒蛾 Perina nuda; L: 长喙天蛾 Macroglossum corythus luteata.
鳞翅目昆虫翅膀具有明显的纹理特征。纹理是指存在于图像中某一范围内的形状很小的、半周期性或有规律地排列的图案,而纹理特征则是对纹理的数字化描述。局部二值模式是描述纹理的有效方法,主旋转局部二值模式(Dominant rotated local binary patterns, DRLBP)(Mehtaetal., 2016)则是具旋转不变性的局部二值模式方法。同时,由于背景简单,在本研究中,直接对整张图像应用DRLBP提取昆虫图像纹理特征。该算法能有效提取完整结构信息,具有旋转不变性和计算效率高的特点。
群智能计算方法在全局搜索方面比传统特征选择算法更具优势,其中差分进化算法(Stornetal., 1997)是有代表性的群智能计算方法,其二进制差分进化算法(binary differential evolution, BDE)已用于特征选择(Pamparaetal., 2006)。该算法包括初始化种群、评价种群、变异操作、交叉操作、选择操作等。
为了将算法从连续空间变换到离散空间,初始化种群时采用下式:
(1)
式中:xi,j代表种群里第i个粒子在第j维上的取值;randj代表在[0,1]之间产生的随机数。
评价种群应用5-fold交叉验证划分数据,采用基于概率协同表示的分类器(probabilistic collaborative representation based classifier, PROCRC)预测鳞翅目昆虫种类,该分类器是比支持向量机和K最近邻具有更好的分类性能(Zhangetal., 2011; Caietal., 2016)。
变异操作方式为DE/current-to-best/1,见下式:
(2)
交叉操作见下式:
(3)
上述操作中,CR和F的取值是否适当将显著影响算法的性能。
为此,本研究提出一种具有动态变化F值的二进制差分进化算法,简称二进制自适应差分进化算法(binary adaptive differential evolution, BADE)。该算法的主要思想是根据种群多样性的变化来自适应地调节F值。
BADE采用汉明距离来度量两粒子间的相似性,见下式:
(4)
式中:D是维数;Xi,Xj是种群中2个不同的粒子。
通过计算种群中粒子两两之间的相似性,可得种群的多样性,见下式:
(5)
式中:N代表种群大小;mean表示求平均值。
在算法迭代过程的前期需要较多的全局搜索,后期随着种群多样性慢慢递减则需要较多的局部搜索。一般缩放因子F的取值在[0,2]之间,因此根据种群多样性的递减情况可构造出下式来自适应地计算F值:
(6)
式中:Avet代表第t次迭代时种群的多样性;Ave0代表种群初始化时的多样性。
本研究提出的BADE方法的伪代码如算法1所示。
算法1
输入: 种群粒子的数量N,算法的总迭代次数T,问题的维数D。
输出: 问题的最优解,最佳适应度值。
初始化种群
Whilet 利用式(6)计算当前迭代的F值。 Fori=1 toN 利用式(2)进行变异操作。 利用式(3)进行交叉操作。 评价产生的新粒子后,进行选择操作。 End End 该算法中适应度值即昆虫识别的准确率用下式表示: (7) 为说明BADE算法的性能,采用K近邻(Knearest neighbor, KNN)(李凡, 2015)和PROCRC分类器,比较了无特征选择、基于频繁出现模式的特征选择(Mehtaetal., 2016)、BDE、BADE方法的鳞翅目昆虫识别准确率。同时,为了进一步说明算法的鲁棒性,本研究也给出了F1得分值,该指标基于混淆矩阵,综合考虑了查准率和召回率(周志华等, 2009)。其计算公式如下: (8) 式中:R和P分别是召回率和查准率。 KNN分类器的K值为5。BADE的参数设置为: 种群大小为50,最大迭代次数为200,CR为0.6,BDE的F值为0.9。 所有算法操作由美国MathWorks公司出品的MATLAB(R2014b)编程实现。所有试验均在3.40 GHz CPU和8 GB RAM的Intel Core i5机器上运行。 对利兹蝴蝶数据集和本课题组收集的鳞翅目昆虫图像数据集用DRLBP提取纹理特征,将其作为PROCRC和KNN分类器的输入。同时,为了保证算法的鲁棒性,算法重复运行5次。每次运行均采用5折交叉验证方法,每次将数据集分成5份,任意选择其中4份作为训练集,剩余1份作为测试集。应用t检验衡量不同方法在识别准确性上的差异显著性(薛薇, 2011)。其分类结果见表1。 表1 2个数据集的识别结果Tab.1 Recognition result of two datasets 由表1可知,对利兹蝴蝶数据集,使用PROCRC分类器和KNN分类器的平均识别率为81.73%和39.61%; 对本课题组收集的鳞翅目昆虫图像数据集,则平均识别率分别为88.18%和83.87%。这说明对上述2个数据集PROCRC分类器的识别性能均显著高于KNN分类器。 由表2可知,分类器对不同种类的昆虫识别率差异较大。在利兹数据集中,红带袖蝶体色红、白、黑相间,体表较为光滑,纹理特征不明显,样本数量较少; 优红蛱蝶的花纹较为复杂,轮廓与黑脉金斑蝶、白粉蝶和小红蛱蝶相似,容易造成误判。因此,2种分类器对红带袖蝶和优红蛱蝶的分类性能均较差。在本课题组中拍摄的昆虫图像数据集中,2种分类器对檗黄粉蝶、东方粉蝶、斐豹蛱蝶和长喙天蛾的识别性能不理想,其主要原因是檗黄粉蝶、东方粉蝶、斐豹蛱蝶和长喙天蛾的样本数量相对较少,不利于模型的构建,其样本数量分别为7、12、5和27。 综上所述,对于鳞翅目昆虫图像识别而言,PROCRC分类器具有更优的识别性能。同时,该分类器对不同种类的昆虫识别性能差异大,说明该方法在性能上有进一步提升的空间。 为了进一步评价本研究提出的BADE算法的性能,将其与基于频繁出现模式的特征选择方法、BDE进行比较。 利用2.1部分提取的昆虫图像纹理特征数据集,分别利用频繁出现模式、BDE和BADE方法筛选纹理特征,其识别准确性见表3。由表3可知,对利兹蝴蝶数据集和本课题收集的图像数据集,基于频繁出现模式的PROCRC算法的识别率分别为65.92%和84.55%,与原来相比分别降低了15.81%和3.63%,这说明该方法在特征选择过程中可能滤掉了部分有用的特征; 基于频繁出现模式的KNN算法的识别率与原来相比则分别提升了12.64%和0.24%。BDE特征选择方法也能有效提高分类器的识别准确性,其对PROCRC算法的提升率分别为3.29%和0.68%,对KNN算法的提升率分别为9.93%和2.29%。与BDE相比,BADE更进一步提高了识别准确性,用PROCRC分类器时,其准确性分别提高了5.81%和1.66%,用KNN分类器时则分别提高了13.49%和3.09%。 由上可知,应用合适的特征选择方法有助于提高鳞翅目昆虫的识别准确性。本研究提出的BADE算法在不同的数据集下均比BDE算法和基于频繁出现模式的特征选择方法取得最优的分类准确性。 为了进一步说明BADE算法的性能,本研究给出了该算法对2个数据集的每类昆虫识别率的影响(表4)。 由表4可知,对利兹蝴蝶数据集分类时,使用PROCRC分类器,BADE方法提升了黑脉金斑蝶、红带袖蝶、鹿眼蛱蝶、红灰蝶、丧服蛱蝶以及美洲大芷凤蝶的识别率,其提升率分别为2.43%、7.95%、10%、4.7%、3%、8.03%,这说明了BADE有效去除了降低识别率的冗余特征。使用KNN分类器时,除了白粉蝶外,其他种类的昆虫的识别率均得到提升,其中黑脉金斑蝶的识别提升率甚至达到29.41%,这说明在利兹蝴蝶数据集分类识别中,BADE方法也显著提升了KNN算法的分类性能。 表2 2个数据集中每类昆虫的识别率Tab.2 Recognition rate of each insect species in two datasets 对本试验收集的图像数据集进行分类时,使用PROCRC分类器时,BADE方法提升了黄星尺蛾、柳杉毛虫和马尾松毛虫的识别率,其提升率分别为1.85%、0.27%、0.28%。使用KNN分类器时,BADE方法则提升了檗黄粉蝶、黄星尺蛾、蕾鹿蛾、柳杉毛虫、绿尾大蚕蛾、榕透翅毒蛾以及长喙天蛾的识别率,其提升率分别为20%、0.61%、16.66%、1.07%、20%、1.73%、11.34%。 由上可知,在不同的鳞翅目数据集中,BADE算法可以显著提升大部分昆虫类别的识别准确性。为了进一步说明BADE算法的优点,分别从算法稳定性、降低的维数和运行时间进行评价。应用F1值评价不同特征选择方法的稳定性(表5)。由表5可知,BADE在不同数据集和不同分类算法上的F1值均大于其他2种特征选择方法。 表3 基于特征选择的2个数据集识别结果Tab.3 Recognition result of two datasets based on feature selection 表4 基于BADE的2个数据集中每类昆虫的识别率Tab.4 Recognition rate of each insect species in two datasets based on BADE 表5 BADE与其他2种特征选择方法的F1值Tab.5 F1-score between BADE and other two feature selection methods 由表6可知,使用BADE算法后,2个数据集的维数均显著降低,其维数下降率接近50%。由图3可知,经BADE特征选择后,简化了识别过程的计算量使昆虫的识别时间都减小了,其时间减少率最高达到50%。 表6 BADE选择后的特征维数Tab.6 Dimension of feature after BADE selection 图3 BADE特征选择后的时间差异Fig.3 Time difference after BADE feature selectionLBD-PROCRC: 对利兹蝴蝶数据集使用PROCRC进行分类 Classify Leeds butterfly dataset by PROCRC; LBD-KNN: 对利兹蝴蝶数据集使用KNN进行分类 Classify Leeds butterfly dataset by KNN; LID-PROCRC: 对鳞翅目昆虫数据集使用PROCRC进行分类Classify Lepidopteran insect dataset by PROCRC; LID-KNN: 对鳞翅目昆虫数据集使用KNN进行分类 Classify Lepidopteran insect dataset by KNN. 近年来,随着计算机图像处理技术的发展,基于图像的昆虫识别取得了许多突破,但在实际应用中仍存在一定的问题。 在图像收集方面,目前大部分研究在收集图像时都采用统一的标准,例如赵汗青等(2002)在拍摄昆虫图像时,统一了焦距且利用昆虫左右对称原理修补了残缺的图像; 竺乐庆等(2015a)在拍摄鳞翅目昆虫图像时,统一了光圈大小、快门速度、焦距以及排放姿态。这些措施提高了图像的识别精度,但降低了识别模型的普适性。因此,本研究在拍摄标本图像时,采用不同的拍摄条件,其拍摄条件分别为是否开闪光、不同感光度、不同快门速度、不同光圈大小以及不同拍摄角度。同时我们还利用了开源的利兹蝴蝶数据集。基于这些数据集更能测试模型的普适性和鲁棒性。 在特征提取方面,传统的图像特征往往是颜色、形状特征、翅脉特征等。颜色特征对图像本身尺寸、方向、视角的依赖性较小,从而具有较高的鲁棒性,但基于颜色特征的昆虫自动识别难点在于同种昆虫颜色特征差异有可能很大; 形态特征适用于体态较完整的昆虫以及个体和形态差异较大的昆虫识别,但昆虫样本的完整性和标本摆放一致性严重影响识别结果。同时,卷积神经网络方法可以有效获得图像的特征,但要求有大量的图像集作为训练数据(Krizhevskyetal., 2012)。因此,本研究利用DRLBP算法提取鳞翅目昆虫图像的纹理特征。该算法保留了传统算法有效提取完整结构信息的优点,对噪声有较强的抵抗能力,也适用于小数据集。与传统纹理特征提取算法相比,DRLBP提取的纹理特征具有更强的辨别能力与旋转不变性(Mehtaetal., 2016)。 已有的昆虫图像的特征向量过多,降低了模型的识别精度、增加了识别时间,存在冗余或者不相关的特征。因此,本研究引进智能优化算法进行特征选择,并提出了改进的BADE算法。该算法具有结构简单、易于实现的优点,且得到的特征子集的分类性能较好。同时,注意到在本研究中当某种昆虫样本数量较少时,该种类的识别率易受到影响,如本研究中个别昆虫种类在特征选择后其识别率反而降低了。这说明足够数量的昆虫样本对于识别也很重要。 在分类器选择方面,目前应用于昆虫识别的分类器有SVM(Lariosetal., 2010; 竺乐庆等, 2015a; 周爱明等, 2017)、BP神经网络(竺乐庆等, 2013)等。这些分类器适用性能良好、稳定,但难以应对类别量大的复杂场景,不利实际应用。相比之下,PROCRC算法具有良好的分类性能与高计算效率,能够应对类别量大的复杂场景。同时,为了比较不同分类器对识别性能的影响,也选用了经典的分类器KNN。 本研究提出一种利用DRLBP算法提取鳞翅目昆虫图像纹理特征进行图像自动识别的方法,且将该方法成功应用于2种不同的鳞翅目昆虫图像数据集上。识别过程中加入了BADE方法进行特征选择操作。同时也为防止分类器与模型出现过度拟合现象,选择PROCRC与KNN2种分类器进行识别。 应用DRLBP算法提取昆虫图像的纹理特征,并通过合适的特征选择算法进行特征筛选,可有效提高昆虫的分类准确性。笔者提出的BADE算法结合PROCRC分类器时,与不做特征选择相比,在2个数据集上其准确性分别提高了5.81%和1.66%。与现有的频繁出现模式和BDE特征选择方法相比,BADE算法的准确性也显著提高。本研究也表明与传统的KNN算法相比,PROCRC是更理想的分类器。本研究利用2种不同的鳞翅目昆虫图像数据集建立识别模型是为了提高所建立的鳞翅目昆虫图像识别模型的普适性。因此,如何进一步扩大数据集,提高识别模型的普适性,使其更具实用价值,是今后的研究目标。1.4 参数设置
2 结果与分析
2.1 无特征选择的鳞翅目昆虫图像识别
2.2 基于改进的差分进化算法的鳞翅目昆虫识别
3 讨论
4 结论