基于深度迁移学习模型的花卉种类识别


打开文本图片集

摘要:为了解决传统花卉识别方法中特征提取主观性强、模型泛化能力差、错分率高的问题,提出一种基于Inception_v3的深度迁移学习模型的花卉图像识别方法。本研究对5种常见花卉图像进行识别分类,首先对原始图像进行预处理,通过对每张图像进行水平翻转、旋转操作,扩增数据集;其次,采用预训练完毕的Inception_v3模型,对其在ImageNet上训练好的网络参数进行迁移学习,对各个参数进行微调,并保留原模型的特征提取能力,并将原模型的全连接层替换为符合本研究要求的5分类softmax分类输出层,从而构建基于深度迁移学习的识别模型。对5种花卉共计11 000张图像进行训练和验证,平均识别正确率达到93.73%,与传统的花卉识别方法相比,识别率得到提高,模型鲁棒性更强,具有一定的使用价值。

关键词:花卉种类;深度学习;迁移学习;识别分类

中图分类号: TP391.4 文献标志码: A

文章编号:1002-1302(2019)20-0231-05

花卉种类识别,一直是植物识别领域的热门话题之一。在国内,诸多学者在花卉种类识别的研究中,取得了一些进展。在传统方法上,吴笑鑫等采用Grab Cut分割算法,提取花卉图像特征,并将支持向量机(SVM)作为分类器,识别率达到92.5%[1];刘晶晶等通过提取牡丹纹理和形状特征,采用BP神经网络进行识别分类,提高了准确率和稳定性[2];柯逍等利用Canny算子对花卉雷同图片进行过滤分割,结合形状特征和纹理特征的边缘LBP算子,实现对花卉种类的识别[3]。翟果等通过提取菊花的颜色、形状和纹理3个方面的特征,并以此建立特征模型,最后采用KNN算法对未知观赏菊品种进行分类识别,取得了理想的识别效果[4]。但是,传统的花卉识别方法中,存在两大问题:(1)过分依赖人工提取特征,受到人的主观影响大,并且费时费力;(2)传统的方法只适合于小样本量的识别,对于海量图像数据,达不到识别要求。另外,由于花卉的种类繁多,花卉形态各式各样,目前而言,并没有一种普适性的方法能够识别所有花卉种类。

但随着理论知识和计算机技术的飞速发展,卷积神经网络在图像识别领域越来越受到欢迎。袁培森等以菊花为例,基于端到端的卷积神经网络对菊花花型和品种进行识别,并实现了移动端菊花识别系统,平均识别率达到0.95左右[5];郭子琰等基于卷积神经网络模型,并选用ReLu激活函数代替传统的Sigmoid函数,取得了理想的識别效果[6]。沈萍等基于多隐层的深度卷积神经网络,对80种常见花卉品种进行识别分类,识别率提高10%以上[7];但是,以上都是针对相同场景的花卉图像识别,而且,面对海量数据,对于模型及计算机硬件要求都是极大的考验。因此,深度迁移学习方法可以较好地解决上述问题。刘德建等基于LetNet模型构建多层的花卉识别网络,识别效果良好[8];王丽雯等将AlexNet模型进行迁移学习,对Oxford花卉种类进行识别,精度提升了10%[9];Oquab等利用迁移卷积神经网络在VOC2012上取得了很大的成功[10]。

因此,本研究提出基于Inception_v3模型[11]的迁移学习的花卉识别方法。利用预训练的源模型,此方法的优点在于不需要模型源数据与本研究具体图像数据一致,只是将Inception_v3模型的自动提取特征的能力移植过来,保留低层的结构参数,并对相关参数进行微调,从而构建适合本研究花卉识别的神经网络。为了验证本研究模型的性能,与传统的支持向量机(SVM)做比较。试验结果表明,本研究提出的方法识别正确率较传统方法来说,有了明显的提高。

1 数据与方法

1.1 数据集

本研究所用到的图像来自于中国植物主题数据库,主要选取了雏菊、蒲公英、玫瑰花、向日葵和郁金香5种常见花卉作为识别对象。5类花卉试验样本图像共采集3 670张,其中雏菊633张,蒲公英898张,玫瑰花641张,向日葵699张,郁金香799张。

为避免训练过拟合,对原始数据集进行扩增。通过Python脚本语言,将图片进行水平翻转、旋转90°,对样本量进行扩增。此时,共得到11 010张,其中雏菊1 899张,蒲公英2 694张,玫瑰花1 923张,向日葵2 097张,郁金香2 397张。每类花卉随机选取200张图片作为验证集,剩余10 010张作为训练集。表1列出了具体的数据集数量。每类花卉示例见图1。

1.2 试验方法

1.2.1 程序运行环境

本试验环境为Windows 10系统,处理器为Intel(R)CoreTM i7-6700 CPU @ 3.40 GHz 3.41 GHz,运行内存为8.00 GB。本试验所有代码均在Pycharm代码平台、基于TensorFlow开源框架[12]、采用Python3语言编写实现。

1.2.2 卷积神经网络

卷积神经网络(convolutional neural network,简称CNN)[13]结构有输入层、卷积层、池化层、全连接层、输出层。近年来,卷积神经网络之所以在图像识别领域发展迅速,得益于它的几大特点:(1)自主进行学习,自动提取特征,无需过多的人工干预;(2)多卷积结构层,增强特征提取能力;(3)利用反馈机制,能够自动更新、共享权值,不断提高正确率。

1.2.3 深度迁移学习

迁移学习属于机器学习的一种方法,是将一个任务训练得到的模型移植到其他任务的训练上来[14]。在大数据时代,要想训练深度学习模型,得到理想的结果,须要耗费巨大的资源,对计算机硬件也更高。因此,深度迁移学习就成为很受欢迎的方法。和传统的机器学习方法相比,深度迁移学习可以应用于多分类识别中,不需要训练多个模型,只需要直接应用到其他的任务中即可。图2为迁移学习和传统机器学习的比较。

1.2.4 Inception_v3模型

Inception_v3模型是基于GoogleNet卷积神经网络进行的改进。卷积神经网络(CNN)的卷积层结构通常选用单一且固定尺寸的卷积核,Inception_v3模型在卷积层结构中尝试使用不同尺寸的卷积核,并且将尺寸较大的卷积核拆分成几个较小的卷积核。Inception_v3模型的原数据集包含大约120万幅图像,1 000多个种类,包含大约 2 500 万个结构参数。

1.2.5 模型构建

图3为本研究深度迁移学习模型的构建流程图。利用在GoogleNet上预先训练好的Inception_v3模型,将具有自动提取图像特征能力的卷积、池化层迁移到本研究的模型中。当输入1张花卉图像时,对该图像特征进行提取,并用2048维张量表示,并依次存入缓存文件中。本研究还对Inception_v3的全连接层、Dropout层进行重新训练,对结构参数进行微调,以适应本研究要求。

因此,根据试验具体要求,本研究提出花卉种类识别模型的网络结构参数设置见表2。

1.2.6 试验训练过程

本研究深度迁移学习过程分为3个阶段:(1)初始化设置:对随机变换的图像与原始图像相结合,构成用于本研究训练的花卉图像数据库。基于预训练的Inception_v3模型自带的结构参数,将花卉数据库作为下一阶段模型训练的数据源;(2)除了预训练模型和最后1层全连接层以外,要重新训练完整的全连接层,并将最后的全连接层的结构参数作为下一阶段的特征提取输入源;(3)最后1个阶段是对整个模型结构层数进行微调,以适应本研究要求。最后采用Softmax分类器,作为最后的分类输出层。

2 结果与分析

2.1 迭代次数对试验的影响

试验中,迭代次数初始设置为1 000次,每次试验迭代次数依次增加1 000次。当迭代次数达到5 000次时,识别正确率略有下降。此时将迭代次数减少,直到设置为4 500次时,识别正确率最高(图4)。

2.2 学习率对试验的影响

当测试学习率对识别正确率的影响时,是在“2.1”节确定的最佳迭代次数的基础上进行的测试,测试结果见表3。当学习率为0.010 0时,识别率达到93.8%。

2.3 Dropout层对试验的影响

在模型訓练过程中,都会出现过拟合现象。所谓过拟合,具体表现为在模型识别率在训练集上效果好,测试集上效果差,这表明模型泛化能力弱,从而影响识别率。为防止训练过拟合,除在数据处理时扩增数据集之外,本研究在模型中加入Dropout层。Dropout策略是通过对模型本身结构进行修改的一种防过拟合方法。试验中共运行程序5次,来测试Dropout层对试验的影响。测试结果见表4。

2.4 不同激励函数对试验的影响

在神经网络结构中,往往加入激励函数[15],来保证网络输出的是非线性函数。常见的激励函数有Sigmoid函数、Tanh函数、ReLU函数。图5是采用不同激活函数对试验产生的结果。很明显,采用ReLU函数时,识别正确率最高。ReLU激励函数[16]为分段形式,使其前向、后向、导数的形式均为分段形式,更易于优化学习,从而解决模型收敛问题。

2.5 特征图提取

为更加直观地了解训练过程中,神经网络对图像的特征提取情况,部分特征提取如图6、图7所示。深度卷积神经网络,具有强大的自动提取特征功能,会依次提取图像低级乃至高级的抽象特征,人眼有时无法分辨出来。

2.6 识别结果

经过数据初始化、参数调整、训练模型,得到accuracy和loss迭代收敛结果(图8、图9)。当迭代次数达到 4 500 次时,准确率和损失值都接近收敛,数值不再有大的变化。

2.7 方法对比

为验证本研究方法的可行性,与传统的支持向量机(SVM)、卷积神经网络(CNN)进行比较。对于SVM模型,通过提取全局特征和局部特征,对花卉图像进行识别,平均识别率最低;对于CNN来说,平均识别率较高,达到80%以上;本研究提出的方法,对5种花卉图像的平均识别率达到 93.73%,比较结果见表5。

3 结论与讨论

本研究提出一种基于深度迁移学习模型的花卉种类识别方法,构建了基于Inception_v3的花卉种类识别模型,实现了对雏菊、蒲公英、玫瑰花、向日葵、郁金香5种花卉的有效识别,平均识别率达到93.73%。(1)基于迁移学习的花卉图像识别模型,对输入图像不用人工进行特征提取,只进行简单的类别标注即可,既节省了大量的人力和时间,又不用掌握过多的植物花卉方面的专业知识,提高了识别效率和精度。(2)本研究提出的方法,与传统的SVM方法相比,不仅识别率得到大大提高,而且更适合于处理海量数据,传统的方法仅仅适合对小样本数据集的处理。(3)本研究通过对原始图像进行随机旋转、水平翻转,扩增数据集,对模型结构权重参数进行微调,避免了过拟合现象的出现,且随着样本量的增加,模型泛化能力和鲁棒性都得到提高。

本研究用到的5种花卉的图像特征差别较明显,提出的模型对5种花卉种类有较理想的识别结果,但是否能应用到其他花卉种类识别,还有待进一步验证。同时,下一步的工作是继续增加样本集种类和数量,改进网络结构,提高分类精度,使其应用性更强。

参考文献:

[1]吴笑鑫,高 良,闫 民,等. 基于多特征融合的花卉种类识别研究[J]. 北京林业大学学报,2017,39(4):86-93.

[2]刘晶晶,侯凌燕,杨大利. 牡丹花特征提取及识别技术研究[J]. 北京信息科技大学学报(自然科学版),2017,32(1):65-71.

[3]柯 逍,陈小芬,李绍滋. 基于多特征融合的花卉图像检索[J]. 计算机科学,2010,37(11):282-286.

[4]翟 果,李志敏,路文超,等. 基于图像处理技术的观赏菊品种识别方法研究[J]. 中国农机化学报,2016,37(2):105-110,115.

[5]袁培森,黎 薇,任守纲,等. 基于卷积神经网络的菊花花型和品种识别[J]. 农业工程学报,2018,34(5):152-158.

[6]郭子琰,舒 心,刘常燕,等. 基于ReLU函数的卷积神经网络的花卉识别算法[J]. 计算机技术与发展,2018,28(5):154-157,163.

[7]沈 萍,趙 备. 基于深度学习模型的花卉种类识别[J]. 科技通报,2017,33(3):115-119.

[8]刘德建. 基于LeNet的花卉识别方法[J]. 电子技术与软件工程,2015(23):13-14.

[9]王丽雯. 基于AlexNet的Oxford花卉识别方法[J]. 科技视界,2017(14):83.

[10]Oquab M,Bottou L,Laptev I,et al. Learning and transferring mid-level image representations using convolutional neural netwoks[C]. IEEE Conference on Computer Vision and Pattern Recognition,2014.

[11]Yosinski J,Clune J,Bengio Y,et al. How transferable are features in deep neural networks?[C]. Advances in Neural Information Processing Systems,2014.

[12]Wongsuphasawat K,Smilkov D,Wexler J,et al. Visualizing dataflow graphs of deep learning models in tensorflow[J]. IEEE Transactions on Visualization and Computer Graphics,2017,24(1):1-12.

[13]周飞燕,金林鹏,董 军. 卷积神经网络研究综述[J]. 计算机学报,2017,40(6):1229-1251.

[14]王 惠. 迁移学习研究综述[J]. 电脑知识与技术,2017,13(32):203-205.

[15]张 彤,刘 志,庄新卿. 基于开发者平台和深度学习的智能识花与护花系统[J]. 工业控制计算机,2018,31(1):90-92.

[16]王双印,滕国文. 卷积神经网络中ReLU激活函数优化设计[J]. 信息通信,2018(1):42-43.

推荐访问:迁移 花卉 深度 识别 模型