APP下载

基于深度反馈的卷积神经网络的图像分类

2023-11-07刘海华童顺延

计算机与现代化 2023年9期
关键词:花卉卷积神经网络

吴 甜,刘海华,童顺延

(中南民族大学,湖北 武汉 430074)

0 引 言

图像分类是根据不同类别信息在图像中所反映的不同特征,把不同类别的目标分开的图像处理方法。花卉图像分类是计算机视觉研究的一个重要领域。快速地自动识别花卉图像可以给植物研究学家带来极大便利。但由于花卉图像种类繁多,类间差距甚微,同一种花卉在不同的生长时期也表现出不同的形态,使得花卉图像分类任务比其他类别(如汽车、猫狗、桌面等)的分类任务更难以很好进行。目前花卉图像分类方法主要有2 大类:基于传统的手工提取特征分类方法和基于深度学习的分类方法。

基于传统的手工提取特征的算法利用HOG、SIFT、Haar等特征描述符提取特征[1-3],并利用支持向量机(Support Vector Machine,SVM)、KNN 等分类器实现图像分类[1,4-5]。由于基于传统的手工提取特征的方法过程繁琐,对噪声敏感并且分类的效果并不理想,于是随着最近几年深度学习在提取图像深层特征方面有很大突破,深度学习的方法就被广泛应用于图像分类任务当中。LeNet-5 是由Lecun 等人[6]在1998 年设计的卷积神经网络,它是早期深度学习方法中最具代表性的算法模型之一。随后,RNN[7]、AlexNet[8]、GoogleNet[9]、VGG[10]、ResNet[11]、DenseNet[12]等深度学习算法模型相继涌现出来。RNN 擅长处理序列数据,由于图片与序列相差很大,所以它对图片的处理效果并不理想,另外,RNN 也不能处理长期依赖的问题,这是RNN 最致命的。因此,针对RNN 的问题,在2016 年,ResNet 和DenseNet 相继被提出,它们借鉴RNN 处理序列关联性的特点,用于处理图片。ResNet发明了‘快捷连接’,解决了神经网络深度过大效果反而下降的问题。然而,在ResNet中,虽然网络看起来很深,但实际起作用的网络层数并不多,大部分网络层都在解决模型退化和误差过大的问题,但又不能完全解决网络退化,只能做到相对的缓解。于是,DenseNet 在ResNet 的基础上,做了进一步改进,它把前面每一个卷积的输出都“快捷连接”到后面各个卷积的输出,加强特征的传递。另外,DenseNet通过特征在通道上的连接来实现特征重用,带来了更快的收敛速度。但是,DenseNet在显存和计算量上比ResNet 稍有不足,这使得实时模型想要用上DenseNet 比较难以实现,这也是为什么DenseNet受到的关注度并不是很大的原因。

基于深度学习方法在图像处理方面取得的优异表现,更多的研究者青睐于根据现有的网络进行改进。2016 年 张 川[13]对ResNet 做 出 改 进 提 出 将ResNet_ELU 用 于 图 像 分 类。2017 王 丽 雯[14]基 于AlexNet构建了一种深度网络用于花卉识别。2019年高建瓴等人[15]提出了一种改进的DenseNet 网络模型,提高了图像识别的准确性。2020 年郭玉荣等人[16]提出了一种端到端双通道特征重标定DenseNet图像分类方法。虽然应用这些深度学习的方法对图像的分类都取得了一定程度的成效,但仍存在各自的缺陷,并且以上的卷积神经网络模型没有充分结合视觉感知特性,所以分类效果并不理想。

针对以上问题,本文针对图像分类提出一种符合视觉感知的深度反馈卷积神经网络(DF-RNN-CNN)模型。该模型不仅解决了RNN 中存在的不能处理图片和长期依赖的问题,还解决了上文提到的ResNet和DenseNet 中存在的问题。本文模型具体的实现是借鉴RNN 的思想,把t时刻卷积的输入分为2 个部分的和,一部分为1~t-1 时刻每个卷积的输出经过激活函数后的和,另一部分为输入图片经过卷积之后的特征图。这就是本文提出的深度反馈循环神经网络(DF-RNN)。此种构造方法可以避免丢失前面学习到的较好的特征,另外模型采用参数共享机制,很大程度地减少了计算量。最后把DF-RNN 连接到VGG16 的第一个Poolling 层,同时去掉VGG16 的前2个卷积层,构成一个全新的卷积神经网络。

1 深度反馈卷积神经网络模型

卷积神经网络由卷积层、池化层和激活层组成,并经过多层次的叠加与交替可以实现对图片进行特征提取操作,完成对不同图像的分类。本文模拟视觉神经元的经典感受野和反馈连接机制,构建基于CNN结构的深度反馈卷积神经网络模型。

1.1 DF-RNN-CNN模型结构

在基于CNN 的网络模型中,最典型的模型是由牛津大学几何组(Visual Geometry Group)提出来的VGG16[10]。该模型具体有6个结构块,结构块与结构块之间用max-pooling(最大池化,2×2)分开,每个结构块由卷积层构成,总共有16 个卷积层(含全连接层),用于完成图像分类任务。在每一个结构块中通道数相同,而后一个结构块的卷积通道数是前一个结构块通道数的2倍。每个结构块里包含2个或3个卷积层,所有的卷积核都是3×3的大小,所有的激活函数都采用ReLU函数。该模型的详细结构如图1所示。

图1 VGG16模型结构图

本文提出的DF-RNN-CNN 网络模型是在如图1所示的VGG16 模型基础上构建的。其具体的工作是利用DF-RNN 模型代替VGG16 中的第一个结构模块,而其他结构模块不变。完整的DF-RNN-CNN 模型详细结构如图2所示。

图2 DF-RNN-CNN 模型结构图

1.2 循环神经网络

RNN 是一种用来处理序列数据的网络模型,与普通的神经网络的结构的主要不同在于隐藏层部分。RNN 的隐藏层除了接收来自上一层神经元的信息外,它还会接收同一层神经元之间的信息,这就是所称的循环。由此可见,RNN 隐藏层的循环结构使得RNN 具有一定的联想记忆功能,其结构如图3 所示,其中左边为简约结构,右边为展开形式。

图3 循环神经网络

标准的RNN 由输入层X,隐藏层h和输出层y组成。网络在t时刻的状态ht不仅与t-1 时刻的网络状态ht-1,而且与Xt相关;而网络在t时刻的输出yt由该时刻的网络状态决定。因此,RNN 网络的状态和输出为:

其中,符号·代表矩阵乘运算,V是输出y的权重矩阵,U是输入序列X的权重矩阵,W是上一时刻状态ht-1的权重矩阵。在网络中,所有的参数(V,U,W)都是一样的,即参数共享。f和g都是激活函数,在RNN 中f选双曲正切函数tanh 作为激活函数,g一般选softmax作为激活函数。

在标注的RNN 模型中,通常处理的是一维矢量数据。然而,图像是二维数据,为了处理图像序列,在RNN 网络中引入CNN 中神经元经典感受野的概念,则RNN网络的状态和输出为:

其中,符号*代表卷积运算。

1.3 深度反馈循环神经网络

为了发挥RNN 模型的联想记忆功能,有效地提取图像的特征,可以用恒定的输入图像代替RNN 模型的输入序列来完成该任务。然而,由于RNN 存在一个固有的问题,即在处理较长序列时会出现梯度现象。为了避免该问题,引入深度反馈重新构建RNN模型,其系统框结构在图4(t=4)中给出了详细描述,系统的状态和输出方程为:

图4 DF-RNN模型的结构(t=4)图

其中,ht是t时刻的输出特征,X是DF-RNN 模型的恒定输入图,U仍然是输入的权重矩阵,W是状态权重矩阵,U和W均采用参数共享机制,s是sigmoid 激活函数,符号*表示卷积运算,符号+表是矩阵相加运算。

虽然大尺寸的卷积核可以扩大感受野,但引用大尺寸的卷积核会增加计算量,所以该网络模型全部采用3×3大小的卷积核进行特征提取。

2 实验结果与分析

2.1 实验数据与实验环境

本文的实验数据采用公开的牛津大学视觉几何组创建的Oxford flower-102 花卉图像数据集。此数据集由102 类花卉图像组成,总共包含8189 张图片。本文实验每类随机选用10 张作为验证集,另外再每类选取10张作为测试集,剩下的6149张作为训练集,训练集里面每类花卉由20~238 张图片组成。由于不同种类的花卉图像之间相似度很高,如图5 所示,同一种类的花卉图像的差别也很大,如图6 所示,这就使得花卉图像的识别任务具有较高难度。

图5 english marigold(左)和barbeton(右)

图6 snapdragon

在网络开始训练前,由于花卉图像类间相似度高,类内差别大,数据数量小,所以在输入训练集进行训练之前要先对训练数据做数据增强处理,以达到扩充训练数据、有效减少网络过拟合、增加网络的识别能力、提高网络的泛化能力等目的。采用数据增强的方法有:水平、竖直翻转,错切变换和放大。

在对训练集做完数据增强之后,接着对所有的数据图片,即数据增强后的训练集、原始的验证集和测试集做图像预处理。首先对图片像素做归一化处理,把原始0~255 的像素归一化到0~1 之间,以达到减少网络的计算量,简化网络输入的目的。第二由于所有图片的大小不一,将所有图片统一缩放到224×224 大小,以完成网络统一化输入的要求。

本文所进行的实验在中南民族大学视觉认知科学实验室完成,实验软硬件环境配置如表1所示。

表1 实验软硬件环境

2.2 对比实验模型

为了验证DF-RNN模块的有效性,将本文方法分别与残差网络的残差块和密集网络的密集块做对比实验。将DF-RNN模块分别替换成2个残差块和1个密集块,在各自参数最优的条件下进行网络训练并测试。残差块与密集块的结构如图7所示。

图7 残差块(左)和密集块(右)结构图

2.3 评估标准与参数选择

本文实验选用Adam 作为优化器,学习率设置为0.00001,训练迭代次数为900。为了定量地分析本网络模型的性能并且与其他文献所采用的方法做比较,采用Accuracy(Acc)作为评价指标,该评价指标的计算公式为:

其中,right表示分类正确的样本数,all表示样本总数,Acc越大表示分类的准确率越高,网络的性能越好。

此外因为本文实验是多分类实验,所以选用多分类交叉熵(categorical_crossentropy)作为损失函数,其定义公式为:

多分类交叉熵损失函数一般搭配Softmax 激活函数使用,其中n为类别数量,yi是其真实值为其实际输出值,当实际输出值越接近真实值时,多分类交叉熵越小,分类结果越好。图8 是验证集在训练过程中的损失函数loss 值随着训练轮数增加的曲线变化图,训练轮数达到900的时候,loss值为1.01,此时loss曲线已趋近平稳,表明模型已有较好的分类性能,模型训练结束。

图8 loss随epoch增加的变化图

一般而言,卷积层越多,网络获取的信息越多,特征也越丰富,但实验表明,随着网络加深,优化效果反而会越差,并且网络的训练会变得越来越困难,而卷积层过少,网络提取特征的能力就会下降。本文实验综合以上问题,并且考虑到本实验数据集规模较小,如果DF-RNN 中的t一直增大的话,整体的网络预测的效果反而会降低,会出现过拟合现象,经过多次实验证明,t=4 的时候是效果最好的。表2 是当t取不同值时得到的实验结果。

表2 t取不同值时的实验结果

从表2 中可以看出,当t取2~4 的时候,网络整体的性能是上升的,到t=5 的时候开始下降,因此最终选取了t的值为4。

2.4 结果分析与比较

为了验证本文网络模型的有效性,做了3 组对比实验。一是原始的VGG16 网络,另外2 个是将DFRNN 模块分别替换成2 个残差块和1 个密集块。这些实验都是在相同的数据集、相同的数据处理方法和相同的实验软硬件环境下进行的。实验结果见表3。

表3 不同模块的实验结果比较表

从表3 中可以看出,本文提出的DF-RNN-CNN与原始的VGG16 相比,对花卉的识别率提升了9.6 个百分点,表明DF-RNN 模块的有效性。把DF-RNN模块换成密集块与残差块后,对花卉的识别准确率都有不同程度的下降,分别下降了8.8个百分点和5.3个百分点,表明DF-RNN模块的构造方式可以学习到更多的浅层特征,并把学习到的浅层特征传递到深层加以利用,实现特征复用。因此,本文提出的DF-RNN比密集块和残差块的构造方式更加强大,具有更好的分类效果。

另外本文实验还与传统的花卉图像分类模型和其他基于深度学习的花卉图像分类模型的实验结果进行对比。实验结果见表4和表5。

表4 本文模型与传统花卉图像分类模型实验结果比较表

表5 本文模型与基于深度学习的花卉图像分类模型实验结果比较表

从表4可以看出,传统分类模型方法对花卉的识别率较低,主要是因为手工提取的特征对于不同类别的花卉的通用性较差,适用于某一类花卉的特征不适合另一类,而且本文实验数据集类别一共有102类,要想手工提取到通用的特征非常难,而且工作量也非常繁重。综上分析,本文方法可以取得较高的分类准确率。

从表5 可以看出,本文构造的分类网络优于其他基于深度学习方法构造的网络。与其他方法相比,本文方法最高提高了15.8 个百分点,显示本文建议的DF-RNN 网络实现的联想记忆功能与浅层特征重复利用方法对整个网络的分类能力起到了极大的作用,表明本文方法具有更好的实用性。

3 结束语

本文卷积神经网络的结构是在VGG16 的基础上进行改进的,把VGG16 的第一个结构块替换成符合人眼视觉感知特性的DF-RNN 模块,此模块结合RNN 的特性,首先采用参数共享机制,减少网络的计算量;其次添加记忆连接,一定程度上防止了其丢失网络底层学到的重要的特征信息,改善了RNN 短时记忆的缺陷,具备一定的长时记忆的功能。本文实验结果表明加入了具有符合人眼视觉感知特性的DFRNN模块的VGG网络对花卉的识别率高于其他网络,达到86.8%。但DF-RNN模块对于人眼视觉感知系统来说还是过于简单,如何设计一种完全符合人眼视觉感知特性的卷积神经网络是今后进一步研究的方向。

猜你喜欢

花卉卷积神经网络
李鱓·花卉十二开
基于3D-Winograd的快速卷积算法设计及FPGA实现
三招搞定花卉病虫害
神经网络抑制无线通信干扰探究
《花卉之二》
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
水晶泥花卉栽培技术
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用