基于树木整体图像和集成迁移学习的树种识别

2019-09-09 10:47冯海林胡明越杨垠晖
农业机械学报 2019年8期
关键词:分类器树种准确率

冯海林 胡明越 杨垠晖 夏 凯

(1.浙江农林大学信息工程学院, 杭州 311300; 2.浙江省林业智能监测与信息技术研究重点实验室, 杭州 311300; 3.林业感知技术与智能装备国家林业局重点实验室, 杭州 311300)

0 引言

地球上树木种类繁多,对其进行自动分类识别在植物多样性保护以及进行植物学研究方面有重要意义,且具有重要的实际应用价值。树种识别具体包括叶片识别、花卉识别、树皮纹理识别以及木材纹理识别等,是一项非常复杂的任务。研究树种识别问题面临诸多难点,如:①区分不同树种的特征信息非常多:植物的形态、纹理、颜色等,基于传统机器学习的方法很难通过人工提取特征的方式提取到区分不同树种的关键特征。②自然环境下复杂背景的植物图像有很多噪声干扰,对树种图像分割造成很大影响。③同一树种在不同生长阶段、不同季节也会表现出差异性。④树种图像数据库不完善。尽管如此,国内外学者在树种识别问题上已经进行了很多研究,并取得了一定的进展。

文献[1]提出了基于多特征降维的植物叶片识别方法,首先通过Hu不变矩[2]、灰度共生矩阵、局部二值模式、Gabor滤波器等技术分别提取植物叶片的形状、纹理特征,共得到2 183维特征参数,然后采用主成分分析(PCA)进行降维,再使用支持向量机(SVM)分类器对降维后的数据进行训练。文献[3]开发了基于多特征融合的植物叶片识别系统,手动提取了植物叶片的形状、纹理以及颜色特征,然后使用SVM对叶片进行分类,最终在构建的叶片数据集上达到了91.41%的识别率。随着深度学习的发展,文献[4]将卷积神经网络(Convolutional neural network, CNN)与SVM以及softmax分类器相结合,设计了一个分层卷积神经网络系统,对植物叶片进行识别,该网络可以自主学习叶片特征,减少了人工干预的过程。该系统的训练数据来自PlantNet[5]叶片库及自扩展的叶片图库,共33 293幅图像(共231种树)。实验表明:该方法对单一背景的叶片图像识别率达到90%左右,但是对复杂背景的叶片图像识别率仅34.38%。近年来,随着深度神经网络层数的增长,训练小样本数据集易出现过拟合问题,所以基于卷积神经网络和迁移学习的图像识别方法逐渐得到应用。文献[6]提出了一种基于残差网络迁移学习的花卉识别系统,设计了一个152层的残差网络,先在ImageNet[7]数据集进行预训练,然后迁移到目标花卉数据集上,训练得到了一个识别率90.8%的模型。文献[8]也提出了一种基于迁移学习的卷积神经网络植物叶片图像识别方法,利用AlexNet[9]以及Inception-V3[10]预训练模型在ICL[11]叶片数据集的测试集上分别得到95.31%和95.40%的识别率。在国外,从2011年到2017年,CLEF(Cross language evaluation forum)论坛组织了7次植物识别相关比赛。在PlantCLEF 2017比赛中,MARIO设计的基于CNN的分类系统达到了88.5%的准确率[12]。此外,基于木材的近红外光谱图像也被广泛用于树种识别问题中。文献[13]利用木材的近红外光谱数据,结合传统机器学习方法进行树种识别,但也存在不同树种近红外光谱数据难以获得和成本较高等弊端。

本文提出一种基于树木整体图像和集成迁移学习的树种识别方法。首先基于4种经典的深度卷积神经网络结构(AlexNet、VggNet-16[14]、Inception-V3、ResNet-50[15]),由ImageNet数据集预训练好的模型,在自主构建的TreesNet树种图像数据集上进行迁移学习,训练出4个不同的分类模型,然后通过相对多数投票法和加权平均法建立集成模型。设计多类实验,结合实验数据对比4种深度卷积神经网络模型与集成模型在树种识别上的性能差异,并将本文提出的树种识别方法与传统的图像分类算法进行分析比较,以期为复杂背景下的树种识别问题提供解决思路。

1 数据集与数据增强

目前网络上公开的用于植物识别的图像数据集包括:PlantNet[5]、Leafsnap[16]以及Flavia[17]等,大都是植物叶片图像数据集。还尚未有公开的树木整体图像数据集。所以本文采用自主拍摄和网络爬取相结合的方式构建了一个树种图像数据集TreesNet。树的分类单位从大到小可依次分为门、纲、目、科、属、种等,所以TreesNet数据集以门、纲、目、科、属、种来划分每一类树。图像按照不同树种分别存放在不同文件夹下,文件夹以树种名命名。同时,对这些数据(主要是网络爬取的数据)进行了人工筛选,删除掉标签与实际不符合的数据。本文实验数据取自TreesNet数据集的10种树木,具体信息如表1所示。

基于深度卷积神经网络的图像识别问题通常需要大规模的带标签的训练数据样本,避免因模型过于复杂而数据量太少出现过拟合的问题。除了获取更多的数据,过拟合问题的解决办法还有很多,本文基于TreesNet数据集采用了数据增强的方法。实验结果表明,数据增强对解决过拟合问题有十分显著的效果。

本文使用的数据增强方法具体包括以下几种:①改变图像的亮度、饱和度、对比度等。②对原始图像进行水平/垂直翻转。③先采用最近邻差值、双线性差值、双三次差值等方式对图像进行缩放,然后随机裁剪图像5个区域生成新的图像。在实验中,使用上述数据增强方式的组合,将原始数据集扩充了10倍。数据增强实例如图1所示。

表1 实验数据Tab.1 Experimental data

图2 树种图像识别集成模型结构Fig.2 Structure of tree species recognition ensemble model

图1 数据增强实例Fig.1 Example of data augmentation

2 基于集成迁移学习的树种识别方法

迁移学习是指利用已有的源领域信息对相关的目标领域问题进行求解[18],目的是将已知的源领域学习到的有用信息应用到目标领域中[6]。 在深度学习中,CNN的训练通常需要使用大量的带标记的样本,在小样本集上一般是直接使用预训练好的模型进行特征提取[19]。本文提出的基于集成迁移学习的树种图像识别模型结构如图2所示,首先使用AlexNet、VggNet-16、Inception-V3和ResNet-50这4种模型在ImageNet(包含120多万幅共1 000种树木类别的图像)大型图像数据集上训练得到预训练模型,预训练模型已经具备了一些有助于图像分类的基本特征(边缘、颜色特征等)提取能力,然后将这些模型迁移到目标树种小数据集微调训练(finetune)出4个不同的分类模型,最后通过相对多数投票法和加权平均法建立集成模型。这4种模型都是基于卷积神经网络,并且在ILSVRC(ImageNet large scale visual recognition challenge)比赛中都取得了很大的成功(http:∥www.image-net.org/ challenges/LSVRC/2012/)。

2.1 卷积神经网络预训练

迁移学习首先需要在ImageNet大规模数据集上预训练CNN,本文选取的AlexNet、VggNet-16、Inception-V3以及ResNet-50这4种网络结构都基于CNN,并且都具有一定的代表性。从AlexNet到ResNet-50,网络的层数不断增多,并且Inception-V3使网络“变宽”,ResNet-50加入了“跨层连接”。CNN一般由输入层、卷积层、池化层、全连接层以及输出层组成。网络层的深度可通过增加卷积层、池化层或者全连接层的个数来调节。通常情况下,卷积层和池化层可交替设计。

输入层读取图像数据,产生一个特定尺寸的向量作为网络的输入。本文AlexNet网络的输入层图像尺寸为227像素×227像素,VggNet-16和ResNet-50为224像素×224像素,Inception-V3为299像素×299像素。不同的输入层图像尺寸更利于多尺度图像的识别。

卷积层目的在于特征提取,其过程可描述为

xi=act(xi-1⊗ki+bi)

(1)

式中xi——卷积神经网络第i层的特征图

ki——第i层卷积核

bi——第i层的偏置向量

⊗——卷积运算符号

act(·)——激活函数

常见的激活函数有sigmoid、tanh、ReLU以及LeakyReLU等。本文采用ReLU激活函数,公式为

act(x)=max(0,x)

(2)

池化层即下采样层。池化后减小了原特征图的尺寸,但同时不会过多丢失原特征图的信息,所以在一定程度上提高了整个网络运算效率。并且,池化操作在一定范围内保证了平移不变性。常见的池化运算有最大池化、均值池化和随机池化。

输出层采用softmax函数进行归一化。输出的是一个n行1列的向量,n为类别数。通过softmax函数计算后每一行的数值代表图像属于该行所对应类别的概率值。softmax函数表示为

(3)

式中wj——权重bj——偏置

在分类的任务中,一般使用交叉熵损失函数来评估真实值与预测值之间的差距,交叉熵公式为

(4)

式中m——输入网络的样本数

yji——真实的标签

Closs——损失值

随机梯度下降法(Stochastic gradient descent,SGD)在模型训练过程中用于参数的更新,其原始形式为

(5)

式中θ——模型需要更新的参数

α——学习率J(θ)——损失函数

近年来,出于加快模型收敛速度的考虑,梯度下降法出现了很多的变体,Adam(Adaptive moment estimation)是其中的一种, Adam是文献[20]提出的一种自适应学习率的梯度更新方法,Adam更少地依赖初始学习率的设置,并且有效地减少了出现局部最优解的情况。本文通过实验也验证了使用Adam比使用SGD收敛得更快。所以,本文使用Adam自适应学习率优化算法。

2.2 模型迁移学习

完成4种CNN模型预训练,需要将预训练的CNN迁移到目标树种数据集TreesNet上进行微调(finetune)。由于这4种网络模型的结构有所不同,所以使用预训练的模型对目标数据进行再训练的时候,选择微调的网络层也有所不同。

AlexNet模型是一个8层的网络结构,包含5个卷积层和3个全连接层。其中卷积层所使用的卷积核尺寸有11×11,也有3×3,这里将后面3个全连接层分别命名为fc6、fc7、fc8。VggNet-16模型在AlexNet的基础上增加了网络的深度,共有16层,由13个卷积层和3个全连接层构成,同时卷积核的尺寸均取3×3。同样地,这里也将最后3个全连接层分别命名为fc6、fc7、fc8。采用AlexNet和VggNet-16模型进行微调训练时,保留所有卷积层的参数,然后分别训练后面的全连接层fc6~fc8。由于3个全连接层也有3种不同的组合方式([(fc6,fc7),fc8];[fc6,(fc7,fc8)];[(fc6,fc7, fc8)]),其中[(fc6,fc7),fc8]表示保留fc6、fc7的参数,只训练fc8层,其他依此类推。本文对这3种组合方式分别进行实验。

Inception-V3模型由一般的卷积层、池化层以及3个Inception模块组构成。由于Inception模块组的出现使得网络“变宽”,这种宽的结构会使得整个网络的参数量大大减少。Inception-V3最后一层为卷积层,将卷积核的数目设置成种类数目,再通过softmax激活函数分类。使用Inception-V3模型进行树种识别的迁移学习时,只训练最后一层用于目标树种数据集的拟合,其余层参数直接采用预训练模型所习得的参数。另外,本文在Inception-V3模型的基础上新增了一层全连接层,对模型进行微调训练时,同时训练新增的全连接层和网络的最后一层。本文也对这两种方式分别进行实验。

ResNet-50独创性地加入了残差结构使得网络能够往更深的方向发展,共有50个卷积层,使用该模型进行微调训练时,只训练最后一层全连接层。

基于这4种模型,本文采用上述微调的策略共训练出4个不同的分类模型。这4个模型具有一定的差异性,因此,本文集成4种模型,提出一种新的树种识别方案。

2.3 模型集成策略

集成学习(Ensemble learning,EL)的一般思想是:先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据产生,如果个体学习器是同种类型的,例如全是基于神经网络的,此时也可称个体学习器为基学习器。集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能。

本文在4个基学习器的基础上,采用相对多数投票法和加权平均法两种集成策略,得到最终的分类结果。4个基学习器分别为AlexNet、VggNet-16、Inception-V3和ResNet-50迁移训练出的模型。首先取得4个基学习器softmax层的结果,然后采用下面两种集成方式:

(1)相对多数投票法(Vote-ensemble)。假设4个基分类器的输出分别为Oi(i=1,2,3,4),相对多数投票法[21]就是先统计4个基分类器输出结果中相同结果的个数,最终输出结果为相同个数最多的结果。当个数一样时,则随机选择一个结果为最终输出结果。

(2)加权平均法(Weight-ensemble)。当第i个基分类器的预测分类结果为

该矩阵每一行的数值代表分类器预测结果为该行所表示的树种类别的概率,那么集成模型的分类输出O可通过取各基分类器分类结果的平均值得到

(6)

其中

(7)

其中di的取值根据各个基分类器在测试集上的准确率排序(di=1,2,3,4)来确定,准确率最高的模型di=4,最低的模型di=1。

3 实验与结果分析

3.1 实验环境与设置

实验在Windows 10 64位操作系统下进行,其中神经网络的搭建、训练以及测试是利用Python语言调用TensorFlow[22]深度学习库来实现的。服务器的配置为16 GB内存的Intel Xeon E3-1225 v5 CPU,11 GB内存的Nvidia GeForce GTX 1080 Ti GPU。

首先通过实验对比分析与图像识别相关的深度神经网络(AlexNet、VggNet-16、Inception-V3以及ResNet-50)在树种识别上的表现,分别直接进行训练和微调训练,以此来对比两种策略的优劣。并且将本文提出的集成模型与4种基分类器的结果进行对比。最后,为了对比本文设计的识别框架与其他分类系统的识别效果,将基于该方法进行树种识别的实验结果与传统的KNN、SVM以及BP神经网络在本文构建的数据集下得到的识别结果进行了分析比较。

网络模型的超参数设置如下:在微调训练模式下使用4种网络模型在ImageNet数据集训练出来的参数来初始化权重,直接训练模式下使用标准差为0.001的高斯分布进行初始化。使用Adam优化器进行网络的训练。初始学习率以及网络迭代次数的设置,不同的网络模型以及在不同的数据规模下有所区别。

表2为原始数据集下各模型部分参数的设置情况。包括:初始学习率、批大小、迭代次数以及各模型微调训练的网络层。其中AlexNet和VggNet-16进行微调时训练fc6、fc7和fc8 3个全连接层。 Inception-V3进行微调时,在最后一层全连接层前面增加了一层全连接层并训练后面两层。ResNet-50进行微调时,只训练了最后一层全连接层。

数据增强后的网络模型的迭代次数会做适当调整。数据集越多,迭代次数设置越大。并且数据增强前和增强后的数据集均被随机分为训练集和测试集两部分,其中训练集占80%,测试集占20%。

表2 原始数据集下模型部分参数的设置Tab.2 Setting of part model parameters under original dataset

3.2 评价指标

实验使用测试集的准确率Ptop1(即识别的结果与图像原始标签一致的准确率)评价模型,其计算

公式为

(8)

式中t——测试集图像的总数量

a——模型测试正确的数量

3.3 实验结果与分析

3.3.1SGD和Adam训练效率对比

首先通过实验对比了使用SGD和Adam进行网络参数优化的效率情况,采用AlexNet、VggNet-16、Inception-V3和ResNet-50这4种模型,分别使用SGD和Adam迭代训练8 000次,其他的参数设置保持一致。训练过程中使用TensorFlow[22]自带的可视化工具Tensorboard记录了训练的细节,并绘制了迭代次数与训练集、测试集Closs的变化曲线,结果如图3所示。

图3 分别使用SGD和Adam训练4种模型Closs值随训练步数的变化情况Fig.3 Changes of loss value with training steps using SGD and Adam

从图3可以看出,在训练相同次数的情况下,每种模型使用Adam,都会使Closs值下降得更低。也就是说,使用Adam能使模型更快收敛,提高了实验效率。

3.3.2迁移学习实验

使用AlexNet、VggNet-16、Inception-V3和ResNet-50这4种模型分别在原始树种数据集(1X)以及数据增强后的树种数据集(10X)进行迁移训练时,保留卷积层的参数只对模型的全连接层进行微调,并且对含有多个全连接层的模型也采用不同的组合方式分别进行实验。实验结果如表3所示。由表3可知,模型训练的全连接层越多,准确率越高。图4为各模型微调训练过程中Closs值的变化情况,Closs值随着模型迭代次数的增多,呈下降趋势,直至收敛。

3.3.3模型集成前后结果对比

使用4种分类模型(AlexNet、VggNet-16、Inception-V3、ResNet-50)分别在原始树种数据集以及数据增强后的树种数据集上进行直接训练(如AlexNet),与上述迁移学习训练出最好结果的模型(如AlexNet-finetune)作比较,并且采用加权平均法和相对多数投票法两种集成策略分别对直接训练和迁移学习训练生成的模型进行集成。表4为基分类器和集成分类器在测试集上的准确率实验结果,从表4可以看出:数据增强后的识别率均高于在原始数据集上直接训练得出的准确率,由此可以说明数据增强的有效性。同时,从实验结果可以看出:采用迁移学习训练出的模型准确率均高于直接训练的准确率。并且,采用两种策略集成后的模型准确率均高于各个基分类器的准确率,说明本文采取的集成策略对模型的准确率有一定的提升效果,并且基于加权平均法的集成策略优于相对多数投票法,准确率达99.15%。

表3 4种不同模型迁移学习实验结果对比Tab.3 Comparison of four different models transfer learning results %

注: “AlexNet-fc8”表示只训练AlexNet模型的fc8层,“AlexNet-fc8,fc7”表示训练AlexNet模型的fc8和fc7层。“AlexNet-fc8,fc7,fc6”表示训练AlexNet模型的fc8、fc7和fc6层。依此类推,VggNet-16模型与AlexNet模型表示含义一样。“Inception-V3”表示只训练Inception-V3模型的最后一层。“Inception-V3-a1”表示在Inception-V3后面增加一个全连接层,然后训练后面两层。“ResNet-50”表示训练最后一层全连接层。

3.3.4本文方法与传统方法对比

将传统的KNN、SVM以及BP神经网络图像分类系统应用于本文构建的原始数据集以及数据增强后的树种数据集上,并与本文基于集成迁移学习的树种识别方法进行比较,实验结果如图5所示。其中在图像输入之前采用了不同的特征提取方法对树种图像进行了特征提取,如HSV颜色直方图和方向梯度直方图(Histogram of oriented gradient,HOG)。

从图5可以看出,对于复杂背景下的树木整体图像识别问题,本文提出的基于集成迁移学习方法得到的树种识别准确率明显高于传统的图像分类系统。主要由于传统的识别方法依赖特征的手动提取,难以基于实际数据和具体识别任务做自适应最优调整。而基于集成迁移学习的方法能够自动提取图像的高层特征,更加利于复杂背景下的树种识别。

图4 原始数据集下各模型微调训练过程中的Closs值变化情况Fig.4 Loss changes during finetune of each model under original dataset

%

图5 本文方法与传统分类系统的识别率比较Fig.5 Comparison of tree species recognition accuracy in different classification systems

4 结束语

提出了一种基于集成迁移学习的方法,解决自然场景下拍摄的树木整体图像的识别问题。自主构建了一个新的树种图像数据集TreesNet。通过实验对比了4种CNN模型在TreesNet树种数据集上的测试结果。结果表明,利用数据增强可以有效地解决深度神经网络的过拟合问题,训练得到的模型拥有更好的泛化能力,识别准确率更高,并且基于微调训练的效果优于直接训练。采取集成策略提高了模型的准确率,图像识别准确率达到99.15%。表明本文提出的方法相对于传统的基于植物叶片的识别方法识别精度有较大提升,为后续进一步研究提供了思路。

猜你喜欢
分类器树种准确率
学贯中西(6):阐述ML分类器的工作流程
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
基于朴素Bayes组合的简易集成分类器①
基于GC-MS流苏树种子挥发性成分分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
树种的志向
树种的志向
基于特征选择的SVM选择性集成学习方法