APP下载

基于混合卷积神经网络的花卉种类识别研究

2020-07-27李倩倩张恩宝余大为

关键词:特征提取花卉卷积

李倩倩,张恩宝,孙 敏,余大为,李 旸

(安徽农业大学 信息与计算机学院,安徽 合肥 230036)

随着计算机技术的迅速发展,借助计算机手段对花卉等植物进行分类的方法应运而生[1]。Guyer[2]在20世纪90年代首先对四十多种植物进行了科学分类。随后,Chai等[3]通过对密集的SIFT特征、兴趣点和整幅图的Lab特征进行提取,最后选择使用SVM分类器实现了图片分类的效果。Nils back等[4]通过对花冠的颜色、形状和纹理等方面的视觉词袋的描述,也获得了较好的识别准确率。柯逍等[5]通过标记矩阵与RGB相结合的方法实现了图像分割,并使用SVM分类器对花卉图像进行识别。张娟等[6]通过对梅花的外观纹理和表面形状特征进行提取,提出了一种识别梅花种类的方式,但识别方式不能通用于所有花卉,存在一定的局限性。白帆等[7]提出了一种基于花卉特征编码分类的方式识别植物种类,但该方式对花卉的花蕊区域无法识别,也存在局限性。此外,张宁的K近邻判别方法[8]、李萍的最近邻准则[9]等方法都对植物分类的准确率有了显著的提高。

为了进一步提高花卉种类识别的准确率,首先通过使用Gabor滤波器对图片进行预处理操作。为了对同一张花卉图片进行特征提取并对提取到的特征进行融合,使用卷积神经网络中的LeNet-5模型和GoogLeNet模型进行模拟试验。最后,为了对花卉进行种类识别以及模型训练,采用了SoftMax多分类器方法。

1 模型及其优化方案

为了充分处理图片中花卉的特征,采取混合卷积神经网络对图片对象进行特征提取,具体流程如图1所示。其中:卷积神经网络1是在传统的LeNet-5模型[10]基础上进行重新设计的,交叉连接是将网络的第一池层向后连接,并与完全连接的层连接,输出层由SoftMax分类器分类网络,输入32×32像素的图片。改进LeNet-5结构的具体参数描述如表1所示,包括每层的类型(Type)、卷积核大小(Patch Size)、步长(Stride)以及每层输出的大小(Output Size)。卷积神经网络2是为了对花卉图像进行特征提取而采用的GoogLeNet网络[11]中的Inception结构。Inception的具体结构如图2所示。

Inception Module是GoogLeNet的核心组成单元,有多种嵌套结构。通过多个卷积核提取图像不同尺度的信息,最后进行融合,可以得到图像更好的表征。低维嵌套主要采用的是一种浓密且压缩的信息形式,本文的表达方式更加稀疏。

图1 混合卷积神经网络框架

表1 改进的LeNet-5网络参数

图2 Inception结构

当信号聚集时才会进行压缩操作,本文采用1×1卷积、3×3卷积、5×5卷积和3×3最大池化。在这些卷积操作前需要对1×1卷积进行降维处理,1×1卷积中引入了ReLU非线性激活。因此,通过上述结构可以提取到更多的特征信息且具有较好的稀疏性[12]。在获得Inception结构的结果后对其进行一次卷积和下采样处理后输入到全连接层,降维后得到一个与花卉特征1维数相同的特征向量即花卉特征2。

在提取到的两个特征之后,需要将其融合在一起。从计算机的视角来说,深度学习算法会表现出局部极小的现象,这些现象对应的泛化性能较差,多特征融合可以降低陷入糟糕局部极小点的概率[13]。

2 改进方案

2.1 BN算法

通常情况下,在使用神经网络进行训练时,大多数激活函数用于非线性因素,旨在提高线性模型的表达能力。但是,由于网络层深度的变化,此方法导致输入值在更改非线性变化之前发生,这将导致非线性函数的分布值范围接近两端,并且下端由于神经网络的灰度等级低,会降低训练速度并导致结果难以收敛。BN算法使用标准化运算来处理输入值并且发生在进行非线性更改之前,更改为标准正态分布。转换后的输入值将位于非线性转换函数的范围内,不仅能避免梯度丢失也有助于加快训练速度。具体算法如下:

(1)以n个样本为批次计算u个批次和批次变体σ的平均值[14]

(1)

(2)

(2)数据标准化处理

(3)

当获得新数据Xi(平均值0,方差1)时,需要设置常数∈以防止批次方差σ从0开始。

(3)为了不破坏原始数据的特征分布,将数据进行归一化处理,并进行重构变换

yi=γixi+βi

(4)

(5)

βi=E[x]

(6)

式中:Var代表方差函数;E代表平均值函数。

通过以上网络训练可得到γi与βi,从而恢复原始数据。

2.2 Swish函数

定义[15]:在非极限状态下有一个常数为C的激活函数,当该激活函数的一阶导数大于或小于常数C且恒定为零时,该激活函数为饱和函数,否则为软饱和函数。

由于在进行BP算法(误差逆传播算法)权重等参数更新时应用了卷积神经网络,可证明产生梯度弥散问题的原因是饱和函数会导致卷积神经网络的性能大幅下降。目前大多采用的sigmod和tanh等激活函数都存在饱和问题。

Swish是Google在2017年10月提出的一种新型激活函数,其原始公式为:

f(x)=xsigmod(x)

(7)

(8)

由公式(7)和公式(8)可得其图像和导函数特性,如图3所示。由图3知,Swish函数具有有上界而无下界的特点,与多数激活函数一样具有特殊的非单调性。同时,其一阶导数具有平滑特性,避免了存在饱和的问题,明显提高了卷积神经网络的性能。

图3 Swish函数特性

2.3 Gabor滤波器

为了提升花卉分类的准确率,采取偶对称Gabor滤波器[16]对花卉图像进行预处理,其一般形式如下:

(9)

(10)

式中:θ为滤波器的方向;f为花卉轮廓的频率;[aθ,bθ]表示坐标轴[a,b]逆时针转角度θ;δa和δb分别是沿着a和b轴的高斯包络常量[17]。

由于Gabor函数与哺乳动物的视觉感受野相当吻合,且具有频率和方向的选择性。因此,通过Gabor滤波器处理后的图像,不仅可以去除噪声,还可以将图像中的边缘轮廓等特征不失真的保留下来,更有益于CNN模型的识别。

3 实验分析

3.1 数据处理

混合卷积神经网络模型在一个包含了5种花卉的图片数据集上进行训练和测试。该数据集包含了雏菊、玫瑰、向日葵、郁金香和蒲公英等5种花卉共约6 000幅多姿态、多光照的图像,每种花卉具有约1 000张不同姿态、不同角度和不同光照条件的图像,每幅图片具有不同的尺寸。在卷积神经网络进行特征提取前,会将图片尺寸统一为100×100,通过Gabor滤波器[18]对图像进行预处理,如图4所示。

图4 原始数据集图像与预处理后的数据集图像

3.2 模型训练

实验模型由两个特征提取层构成,具体结构如图5所示。其中:第一个特征提取层由4层卷积池化层组成,并在池化层之后加入了BN层来进一步对输入图像进行特征向量的提取和优化;第二个特征提取层沿用传统的GoogLeNet中的Inception结构对输入图像进行特征提取。实验中的激活函数使用了最新的Swish激活函数,可以有效避免神经网络陷入局部极值的情况。在得到两个不同的特征向量后对其进行融合,本文使用了加权平均法的融合策略。由于在实际仿真中GoogLeNet模型的泛化性能略高于LeNet-5模型,设置GoogLeNet模型的权重为0.6、LeNet-5模型的权重为0.4,即最后将加权求和后得到的特征向量输入到多分类器中进行花卉种类的识别和分类。

图5 混合卷积神经网络模型

3.3 实验数据

为了确保公平的衡量混合卷积神经网络模型的优劣,单独对传统的GoogleNet模型和LeNet-5模型进行了仿真实验。各模型均在迭代次数相同的情况下进行参数训练,并设置在测试集上的两个参数来衡量模型的优劣,分别是准确率(train acc)和验证集上的拟合率(val acc),具体数据如图6和表2所示。其中:train acc和 val acc表示混合卷积神经网络模型的拟合和泛化能力;train acc2和val acc2表示GoogLeNet模型的拟合和泛化能力。

图6 混合卷积神经网络与GoogLeNet模型的性能比较

从图6和2表可以看出,优化后的混合卷积神经网络模型在收敛速度上有了明显提高,准确率达到96.8%,在象征泛化能力的拟合率上也提高了16个百分点。对于采用相同网络结构的GoogLeNet模型,优化后的混合卷积神经网络模型在准确率上提高15个百分点,在拟合能力上达到了0.73,比GoogLeNet模型的泛化能力提高了4个百分点。

表2 混合卷积神经网络与传统卷积神经网络的精度比较

4 结 语

在GoogLeNet和LeNet-5神经网络基础上,对卷积神经网络进行重构和设计优化,提出了一种适用于花卉种类识别的混合卷积神经网络模型。实验结果表明混合卷积神经网络在拟合能力方面比单一的LeNet-5模型和GoogLeNet模型分别提高了16和11个百分点达到了96.8%,泛化能力分别提高了16和4个百分点,有较好的识别效果,具有一定的应用和实践价值。

猜你喜欢

特征提取花卉卷积
李鱓·花卉十二开
基于3D-Winograd的快速卷积算法设计及FPGA实现
三招搞定花卉病虫害
卷积神经网络的分析与设计
《花卉之二》
基于Gazebo仿真环境的ORB特征提取与比对的研究
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
水晶泥花卉栽培技术