张秋颖,金雪松
(哈尔滨商业大学 计算机与信息工程学院,哈尔滨150020)
花卉分类问题是植物学领域的重要研究热点,仅依靠植物专家的专业知识和经验进行人为判断,需要耗费大量的时间和精力.因此,运用计算机技术对图像自动分类可以节省大量时间,并且可以减少人为判断带来的经验性依赖.目前对花卉图像分类的方法可以分为两种:基于手工提取特征的方法和基于深度学习的方法.
手工提取特征方法多为提取图像的颜色特征、纹理特征和形状特征等,并结合机器学习算法进行分类.花卉图像具有颜色丰富,种类繁多等特点,因此颜色特征对不同花卉种类的区分具有重要的作用,然而,花卉图像存在类间相似而类内不同的问题,单一特征无法准确区分不同种类的花卉.通常,将图像的颜色、纹理、形状和轮廓等特征融合提高分类准确率[1-4].文献[5]提出一种基于显著图的花卉图像分类方法,将颜色特征和尺度不变特征变换(Scale-invariant feature transform,SIFT)特征融合后分类.文献[6]对特征上下文的局部信息和空间信息进行编码,并采用支持向量机分类.文献[7]提出基于对象的区域检测和全对象分割方法,实现花卉图像的细粒度分类.然而,传统方法提取特征不充分,导致分类准确率很低.
近年来,深度学习方法在图像分类领域取得了显著的成果,深度卷积神经网络[8-9]被认为是最成功、应用最广泛的深度学习方法,目前经典的卷积神经网络AlexNet[10]、VGGNet[11]、GoogLeNet[12]、ResNet[13]等.
因此,针对花卉图像数据缺乏和分类精度低等问题,本文整理一个包含5类花卉的数据集,并使用AlexNet、VGGNet、GoogLeNet三种卷积神经网络对图像分类,与传统方法相比,可以大幅度地提升分类准确率.
卷积神经网络通过多个层的交替叠加提取图像特征,较低层提取图像的底层特征,较深层则获取图像的高层信息[14].卷积神经网络最基本的层包括卷积层、激活层和池化层等.本文分别使用AlexNet、VGGNet、GoogLeNet三种网络进行实验.
AlexNet网络结构如图1所示,由5个卷积层,3个池化层和3个全连接层组成.AlexNet使用ReLU激活函数代替Sigmoid函数,缓解了网络训练的梯度弥散问题;采用dropout机制随机忽略一部分神经元,降低网络的复杂性,减少模型的过拟合问题;采用最大池化的方式代替平均池化,缓解平均池化带来的模糊效应;引入了LRN层,增强神经元的响应能力,增强模型的泛化能力.
图1 AlexNet网络结构
VGGNet网络结构如图2所示,由13个卷积层,5个池化层和3个全连接层组成.VGGNet的所有卷积层采用相同尺寸的滤波器,通过串联两个3×3滤波器和三个3×3滤波器替代更大的滤波器,可以减少整个网络的参数量并且提高了网络的学习能力,多个小卷积核的堆叠在减少计算量的同时可以提升分类准确率.VGGNet网络层数和通道数的加深,可以提取图像更多的信息.
图2 VGGNet网络结构
网络层数的加深在提升准确率的同时也带来了过拟合、梯度消失和梯度爆炸等问题,因此,GoogLeNet引入Inception模块从另一角度提升训练结果,在节省计算资源和参数量的前提下提取更丰富的特征,获取更好的分类效果.Inception模块的基本结构如图3所示,对输入特征图做4个分支的不同尺寸的卷积或池化操作,最后将多个特征维度进行融合,提取更丰富的特征,加快收敛速度;增加1(1卷积来降低特征维度,降低了计算复杂度.GoogLeNet采用平均池化代替全连接层,参数量仅为Alexnet的1/12,也能适当地提升分类准确率.
图3 GoogLeNet网络结构
卷积神经网络的训练可以分为两个过程:前向传播阶段和后向传播阶段.前向传播阶段是将输入数据依次从低层向高层计算出输出的过程,反向传播阶段是将输出结果与输入数据的误差从高层向低层传播的过程.整个训练的传播过程如图4所示.
图4 训练过程
迁移学习是将一个相关领域的知识迁移到另一个领域来提升学习效果.迁移学习涉及两个基本概念域和任务.一个域定义为D={χ,P(X)},χ表示特征空间,P(X)表示边际概率分布,其中X={x1,x2,…,xn}.一个任务定义为T={y,f(·)},y表示标签空间,f(·)表示目标预测函数.给定源域Ds和源任务Ts、目标域Dt和目标任务Tt,在Ds≠Dt且Ts≠Tt的前提下,利用Ds在解决任务Ts时获得的知识来提升Dt的目标任务Tt.
迁移学习最简单的方法是使用预训练模型微调网络[15],深度网络训练通常需要大量的训练样本,否则容易出现过拟合问题.ImageNet[16]是目前最大的图像识别数据库,包含1 000个类别,涉及范围广,样本多样性丰富.因此从ImageNet训练的模型中获得参数,根据新数据集的当前状态调整参数,解决样本小和训练时间长的限制,可以训练出良好性能的网络.
训练环境为Windows10系统,计算机配置为Intel(R) Core(TM) i5-7400 CPU @3.00 GHz,内存为8 GB,显卡为NVIDIA GeForce GTX 1050 Ti.训练CNN采用caffe深度学习框架,便于移植,操作流程简单.
本文整理了一个包含5类的花卉数据集,分别为雏菊、蒲公英、玫瑰、向日葵和郁金香,每类花卉包含600张图像.5类花卉示例如图5所示.
图5 花卉图片
网络训练过程中初始学习率设置为0.001,动量为0.9,权重衰减参数为0.000 5,学习率变化指数为0.1,step size为5 000,即每迭代5 000次对学习率进行一次调整.
增大样本量可以防止网络训练过程中出现的过拟合问题,采用平移、裁剪和亮度调整等方法对数据集进行增强.采用随机取样的方法,将数据集划分为训练集和测试集,分为三种比例7∶3、8∶2和9∶1.
网络最后一层为softmax层,输出分类准确率数值.使用不同网络和不同训练集比例的分类结果如表1所示
由表1可知,三种网络的分类准确率都达到90%以上,训练集比例越大,分类准确率越大,说明训练集数量增多使特征学习更充分.VGGnet和GoogLeNet的分类效果相近,明显优于AlexNet,说明网络层数的加深,增强特征学习能力,其中GoogLeNet的分类效果最好,具有较好的性能.
表1 CNN分类准确率
为了更好的说明卷积神经网络对花卉图像分类的有效性,采用多种传统特征对图像进行分类结果如表2所示.
由表2可知,基于传统特征的花卉分类准确率偏低,明显劣于深度学习的方法.传统特征多为提取图像的底层特征,分类效果较差,且手动提取特征费时,并存在特征选择困难的问题.传统特征无法解决复杂的实际情况,对于相似的花卉种类无法正确的区分.卷积神经网络可以提取花卉图像更高级更丰富的特征,具有很好的分类效果.
表2 传统特征分类准确率
针对花卉图像分类问题,整理了一个包含5类花卉的数据集,并分别采用AlexNet、VGGNet、GoogLeNet三种卷积神经网络对不同比例数据集进行训练,同时与传统方法进行对比.实验结果表明,卷积神经网络可以提取花卉图像的高级语义特征,大幅度地提升了分类结果,其中GoogLeNet网络性能最优,分类准确率最高并且网络参数量较少.迁移学习可以缓解因样本量小容易出现的过拟合问题,并且节约大量训练时间.后续工作主要针对网络结构的改进,以适用于更广泛的数据集和进一步提升分类的准确率.