一种新型卷积神经网络植物叶片识别方法1)
2020-05-12朱良宽晏铭黄建平
朱良宽 晏铭 黄建平
(东北林业大学,哈尔滨,150040)
近年来,植物叶片识别分类技术已经成为植物信息学的研究热点。植物分类和识别一般依据植物的形态、纹理、枝干、茎叶等器官的特征。其中,植物叶片纹理颜色形态各异、差异性大,是区别植物物种的主要依据。在国内,张帅等[1]设计了一个8层卷积神经网络深度学习系统对简单背景和复杂背景叶片图像进行训练和识别,取得了较好的识别效果。王丽君等[2]开发了基于图像多特征融合的观叶种类识别系统,系统提取叶片图像的颜色、形状和纹理特征,基于支持向量机算法实现识别。王丹等[3]提出使用差异性值监督局部线性嵌入算法,充分挖掘样本之间的类别信息,提高干旱区植物叶片的识别效率。2012年,Krizhevsky et al.[4]提出了包含7层隐藏层的AlexNet网络模型,在ImageNet[5]数据集中失误率为15.4%。之后,各种经典的深度卷积神经网络不断涌现,如GoogleNet[6]、VGGNet[7]、ResNet[8]等。生成式对抗网络是2014年Goodfellow I et al.[9]依据零和博弈思想和纳什均衡原理提出的一种数据生成模型。Odena[10]设计出SGANs,使用半监督的方式使得G网络和D网络可以同时训练,相互促进、相互学习,能够明显改变生成的图像质量和学习的时间代价。为了找到纳什均衡状态,Salimans et al.[11]提出Improved-GAN,其使用的启发式动机以鼓励融合的技巧代替传统生成对抗网络中梯度下降算法并取得不错的效果。
本研究尝试提出一种新型卷积神经网络植物叶片识别方法,充分利用了深度卷积生成式对抗网络算法和迁移学习算法的优势,重点考虑了分类模型对于数据集的依赖性和参数训练的计算代价问题,旨在提高植物叶片识别精度及识别效率。
1 深度卷积生成对抗网络
GAN[12]的网络结构如图1所示。其中,生成器G接受隐变量Z作为输入。
图1 生成式对抗网络
将判别器的损失函数为一个标准二分类问题的交叉熵。真实样本对应的标签为1,生成样本对应的标签为0。生成器的损失J(D)的形式为:
(1)
对于生成器的损失函数,根据博弈形式的不同有所区别。对于最简单的零和博弈,生成器的损失即为判别器所得:
J(G)=-J(D)。
(2)
在这一设定下,可以推出GAN的关键在于优化一个判别器的值函数:
V(θ,φ)=-J(D)(θ,φ)。
(3)
在实际的训练过程中,损失函数如下所示:
Ez(z)[lb(1-D(G(z)))]。
(4)
式中:x为来自样本集中真实的图片;z为输入生成器中的噪声;Edata为样本的分布;Ez为噪声分布;D(x)为D网络判断真实图片是否真实的概率;D(G(z))为D网络判断G生成的图片是否真实的概率。DCGAN将生成器中的全连接层替换成反卷积层,使其在大多数环境下都能稳定训练[8]。
2 基于迁移学习的网络模型架构
表1给出了所提出框架的网络结构和参数,Inception V3[13]是一种用于图像分类的CNN。整个框架可以分为两部分:Inception V3网络基础部分和融合迁移学习[14]再训练部分。输入图像首先经过卷积、池化、Inception这几层的处理后,可以提取出特征点信息。然后在整个网络的末端,只替换全连接层,通过再训练,所有的特征图都以一个巨大的一维向量的形式被压平,并使用softmax函数进行分类。
表1 Inception V3网络结构
图2为全新学习与迁移学习对比图,通过迁移学习,可以将网络模型的训练过程简化,把历史学习所得知识直接应用到目前的任务中。本研究采用参数精调的迁移学习方法,将Inception V3改为用于叶片识别的网络。
图2 全新学习方式与迁移学习方式对比图
基于迁移学习的模型架构如图3所示,首先保留训练好的InceptionV3 模型中所有卷积层的参数,替换最后的全连接层。将尺寸为229×229×3像素的叶片图像输入到网络模型中,经过卷积[15]、非线性化[16]、池化[17]等操作的反复处理,最终会在全连接层输出一个1×1×2048像素的特征向量,最后再用这个特征向量来训练SoftMax分类器以输出分类结果。与传统全新学习(随机初始化网络所有层的权重,从头开始全新的训练)相比较,该方法有助于网络快速收敛。
图3 基于迁移学习的模型架构
3 实验设计
3.1 基于DCGAN的数据集扩充
从基于CNN的模型训练到评估识别算法的性能,包括预处理部分,目标识别研究的各个阶段都需要适当的数据集。如图4所示,共选取15种植物叶片用于训练集与测试集中,数据来源于CVL(Computer Vision Laboratory)研究领域中的瑞典植物叶片[18]。
图4 实验样本
为满足GoogleNet神经网络的训练集需求,利用DCGAN网络,对15种叶片进行图像生成以扩充数据集。图5展示了其中4种叶片的生成效果图。
图5 用DCGAN方法生成的图像
随着迭代次数的增加,生成的叶片图片分辨率增高,获得数据集图片所需的时间也会相应增加,本文采用迭代1 000次的生成图片作为实验所需的数据集。在1 175张图像数据的基础上,通过DCGAN网络将数据集扩充到10 575张。此方法优于传统的通过对原图随机水平翻转、垂直翻转、随机缩放、随机加入噪点等操作,提高了整体实验的快速性,使得预处理更为简单。
3.2 模型训练
模型训练与测试均是在Pytorch框架[22]下完成的。硬件环境配置:处理器Intel Core i7-7800X CPU @ 3.50GHz;内存16G;操作系统类型64位;图形 GeForce GTX 1080Ti。软件环境配置:CUDA 9.0;CUDNN V7.0;Python 3.6。综合考虑硬件的性能以及训练时间,实验中批次样本数设置为50。测试间隔设置为1个epoch(执行一次全部训练样本)。参照Inception V3的参数设置,组合两种学习方式(全新学习和迁移学习)两种数据扩充方式(一种方式是利用DCGAN算法,另一种方式为传统方法,即先对原始图像进行随机缩放,然后随机加入噪点)进行对比实验。
4 结果与分析
对比试验的结果如图6、图7所示。其中,蓝线表示训练集,红线表示测试集。横坐标代表迭代次数,纵坐标代表准确率。
数据扩充对实验结果的影响:在其他条件不变的情况下,分别采用传统方式和DCGAN算法对数据进行预处理的方式进行训练与测试。由图6可看出,在传统的扩充方式条件下,实验的迭代次数在进行到4 000次时,准确率达到95%左右。而经过DCGAN算法处理的实验在迭代次数为560左右时,准确率已经达到95%以上,并且在迭代次数为2 000次左右时,识别准确率可以达到96%~97%,说明本研究提出的DCGAN扩充数据的方法在准确率和时效性方面要优于传统方法。
迁移学习对实验结果的影响:纵向对比图6、图7可以看出,迁移学习对于加速网络的收敛和提高训练与测试的准确率有着明显的促进作用,该方法可大幅度地减少了需要训练的参数数量,从而减轻了GPU的计算负担,参数训练的迭代次数由4 000次缩短到了560次。
5 结论
本研究提出一种融合DCGAN与迁移学习的植物叶片识别方法。通过DCGAN不仅可以将有限的数据集由1 175张扩充至10 575张,而且可避免网络过拟合现象;迁移学习可减少模型训练的计算代价,保证模型更快收敛。实验结果显示,融合了DCGAN与迁移学习的识别效率高于传统扩充方式的全新学习,识别率可到达96.57%,所提出的融合方法可以在节约大量网络参数计算代价的同时,获得较为满意的识别精度。