APP下载

基于特征交换的CNN图像分类算法研究

2020-09-18马建飞杨瑞欣

计算机工程 2020年9期
关键词:数据量卷积准确率

生 龙,马建飞,杨瑞欣,吴 迪

(河北工程大学 a.信息与电气工程学院; b.河北省安防信息感知与处理重点实验室,河北 邯郸 056038)

0 概述

随着计算机硬件技术的快速发展,更高集成度的处理器和显卡大幅提升了计算机的串行与并行计算能力,这使得图像处理领域的经典算法卷积神经网络(Convolutional Neural Network,CNN)取得了较高的图像识别准确率。

CNN是由简单的神经网络改进而来,使用卷积层和池化层替代全连接层结构,卷积层能够有效地将图像中的各种特征提取出并生成特征图。当前的CNN都偏向于更深层的网络结构,文献[1]将CNN的卷积层数增加至5层构成深度卷积神经网络(Deep Convolutional Neural Network,DCNN),随后文献[2]又将网络进一步增加到22层。近年来,研究人员采用了“残差学习”平衡深度信号传递和准确率的关系,使得ILSVRC的深层残差网络[3]可以达到152层。深层的网络结构带来更高的准确率,但也产生更多的网络参数。为此,深层卷积神经网络需要使用足够多的带标注数据来训练网络,但获取足够数量的带标签数据难度较大。本文针对神经网络在识别小样本时准确率较低的问题,提出一种自混合CNN算法与模型,旨在充分提取并利用较少数据集的特征来提高网络识别率。

1 算法分析

CNN[4]中的卷积层能够提取特征图,对全卷积神经网络[5]可以使用反卷积将图像信息划分区域进行定位,本文将CNN卷积特征图按照一定比例进行混合以形成新的特征训练集。具体方法是通过对单个图像设置卷积核个数以提取特征图并保存,与同标签数据特征提取的特征图集进行同位交换,相同位置保存的信息将会充分融合同类数据的特征,从而提高特征利用率。

结合CNN和全卷积神经网络的特征提取特点,构建经典CNN架构,即LeNet-5[6],将本文所提方法应用于基于人脸的男女性别识别、手写数字识别[7]和VOC2007数据集图像分类问题的实验,以验证本文方法在数据样本较小时的性能。

1.1 卷积神经网络

CNN在图像分类与识别方面都有较好的表现,其最早是受到生物的视觉细胞分化感受的启发。生物观察物体是通过分级的视觉皮层的处理来进行,通过逐层扫描来判断颜色、纹理以及轮廓,最后抽象出物体更高级的特征从而进行物体识别[8]。1989年,LECUN等人将BP算法用于训练多层CNN从而识别手写数字,随后不断地对CNN进行完善,最后构建一种多层的人工神经网络,取名为LeNet-5,其在手写数字识别上取得了较好的效果[9]。但是,在面对复杂图像数据时,由于缺乏大量的训练数据、缺少对约束函数的研究以及计算机性能的约束,导致LeNet-5没有取得较为理想的识别率。经过不断分析,研究人员提出了新的模型AlexNet[10],其在图像识别任务中取得了突破性的进展。AlexNet增加了网络层数,相较于LeNet-5网络,其运用了非线性激活函数ReLU[11],为了防止网络过拟合,AlexNet运用Dropout[12]方法并取得了优异的结果,这使得CNN成为图像识别领域的研究热点。随后,研究人员又提出了其他的改进方法,其中典型的为VGGNet[13]、GoogleNet[14]和ResNet[15]等。CNN的层数逐渐加深,ResNet作为2015年ILSVRC的冠军,其网络深度为AlexNet的20多倍,同时也是VGGNet的8倍。增加网络深度的同时会增加可利用的非线性函数,通过叠加使得网络逼近目标函数的结构,最终得到更好的特性表征。但网络深度的增加也提高了网络的整体复杂度和信息传递的困难度,使网络参数难以优化,极易出现过拟合或者网络不收敛等问题。

CNN能够直接读取图片像素信息并进行特征提取。首先,其采用卷积方法扫描图片,提取各个部分的细节特征图,经过池化进一步删减冗余参数,提高特征提取效率。经典CNN网络结构如图1所示。

图1 CNN网络结构Fig.1 CNN network structure

经典CNN结构由输入层、卷积层、池化层和全连接层组成,通常将卷积层和池化层并称为卷积层。由于数据集分类复杂度增加,研究人员相继提出线性纠正函数ReLU[16]、PReLU[17]和Dropout等增强CNN的拟合能力,提高CNN处理复杂数据的能力。CNN的卷积过程如图2所示。

图2 CNN的卷积过程Fig.2 Convolution process of CNN

卷积过程的具体公式为:

yi=w1x1+w2x2+…+wixi

(1)

其中,yi是卷积后结果,wi为卷积核的参数,xi为原始图的像素值,i为卷积核序列数。

CNN将输入的图像经过卷积过程映射到下一个网络的计算如下:

(2)

池化层通过降低特征图的分辨率来获得具有空间不变性的特征[18]。池化层进一步提取特征,常用的池化方法有最大池化、均值池化和随机池化[19-20]。池化层的计算公式如下:

(3)

全连接层就是通常的神经网络,主要用于分类数据集,全连接层可以整合特征提取的局部信息[21]。

1.2 全卷积神经网络

全卷积神经网络将CNN的全连接层换成卷积层,从而解决CNN在图像分割时精度不高的问题。文献[22]提出FCN,解决了图像中的物体分类问题,并且其使用图像像素之间的差异进行图像中的物体分割。

将全连接层替换为卷积核大小为1×1的卷积层,然后得到heatmap图,即低像素的卷积特征图,再利用反卷积操作将heatmap图还原成原图大小,对每一层特征图反卷积得到原图,对原图进行融合以分析图像像素的最大概率,最终完成图像分割。FCN的结构如图3所示。

图3 FCN结构Fig.3 FCN structure

2 特征图交换算法

2.1 特征图交换思路

受到全卷积网络可以定位像素的启发,图像经过卷积处理能够交换图像位置信息,同类图像通过交换同位特征图共享特征。如图4所示,2个男士的特征分别为一个无头发而戴眼镜,另一个无眼镜但有头发。由于提供的数据较少,没有包含既有头发又戴眼镜的男士,因此通过交换卷积特征图将同类图像特征相融合,从而增加识别范围。

图4 2种图像样本Fig.4 Two image samples

基于上述分析,本文将同类图像进行卷积,特征图按规律交换,使同类图像之间的差异特征能够进行融合,从而提高识别准确率,增大识别范围,以应对样本不足的问题。

2.2 网络参数初始化与迁移学习

迁移学习是运用已有经验和知识对不同但相关领域的问题进行研究的机器学习方法[23],其也是应对样本数量较小问题的有效方法。迁移学习将现有训练好的网络参数直接迁移到新网络进行训练,参数经过了充分训练,在新数据集上无需很大的训练次数。参数微调将网络不同层参数进行冻结,只针对部分网络参数进行训练。

本文利用较少数据集对网络进行参数预调制,将网络准确率调整到能够进行基础识别、测试准确率达到60%以上,如果实验数据训练网络难以达到所需要的精度,则使用迁移学习初始化网络参数。本文进行图像分类问题研究,使用随机数训练和参数微调初始化方法,利用非实验部分的小样本数据将网络训练到预设精度,然后对实验结果进行对比分析,以验证本文方法的有效性。

2.3 算法描述

数据预处理可以扩大样本数量,常见的预处理方法有尺度变换、旋转变换和平移变换等。本文提出一种基于CNN的特征提取方法,将其称为特征图交换算法,具体描述如下:

算法1特征图交换算法

输入初始特征图集A=(A1,A2,…,Ai),初始特征图集B=(B1,B2,…,Bk),j和k分别为A和B的替换角标

输出交换特征图集Y=(YAj,YBk)

1.For j,k=n→i/n(n为分组),且每次A和B均只替换相同位,具体计算见式(4);

2.For j=1→j=i (n=1时);

3.(A1,A2,…,Ai) →(B1,B2,…,Bk);

4.YAj={(A1,B2,B3,…,Bk),(B1,A2,B3,…,Bk),(B1,B2,A3,…,Bk),…,(B1,B2,B3,…,Ai)};

5.End for;

6.For k=1→k=i;

7.(B1,B2,…,Bk)→(A1,A2,…,Ai);

8.YBk={(B1,A2,A3,…,Ai),(A1,B2,A3,…,Ai),(A1,A2,B3,…,Ai),…,(A1,A2,A3,…,Bk)};

9.End for;

10.Y←YAj∪YBk;

11.End for;

12.Output Y=(YAj,YBk)

A、B是同标签图像的初始特征图集,本文算法首先将A特征图依次替换到B特征图集中,再将B替换到A特征图集中,且每次A和B均只替换相同位置的特征图。算法将n设置为1,则表示A或B以1为单位分组,替换到B或A图集中。n可以根据不同需求设置为不同的整数,如n=4,则表示A或B以4为单位分组,即将(A1,A2,A3,A4)替换为(B1,B2,B3,B4)。

特征图交换具体公式如下:

YX=2X/n

(4)

其中,YX表示混合特征处理结果,X为卷积核。具体交换方式为两两不重复地交换n个特征图,即得到(b1,a2,a3)、(a1,b2,a3)、(a1,a2,b3)、(a1,b2,b3)、(b1,a2,b3)和(b1,b2,a3)6组数据,得到6组新的由相同卷积层提取出的特征图,图5中展现了3组特征图。

图5 特征图交换示意图Fig.5 Schematic diagram of feature map exchange

本文提出的数据交换可以在各个卷积层中进行。为了简化实验过程,仅对第1个卷积层进行特征图交换。本文的CNN第1个卷积层共有32个卷积核,对每张图像提取出32张特征图并进行交换,交换过程中设置n=4,4幅特征图为一组进行交换得到新的数据集,具体交换结果如表1所示。

表1 前4组特征图交换结果Table 1 Exchange results of the first four groupsof feature maps

如果10张同标签的数据经过32卷积核提取出32组数据,经过交换得到720组数据,充分融合数据可以获得大量的可训练数据。但是,该过程也会产生较多的冗余数据并延长了训练时间。

2.4 网络训练流程

保存交换后的数据,将第1层卷积网络进行参数冻结,交换后的数据训练剩余网络参数,然后每层都用相同方法进行训练。网络训练流程如图6所示。数据1需要进行交换得到原始数据,此时网络已经初始化,参数都通过训练达到基本的提取功能,即准确率能达到60%左右。将数据1输入当前CNN网络,经过第1层卷积层和池化层后将输出特征图保留标签并保存到数据2中,然后经过本文提出的方法生成新的数据集,即数据3。将数据3通过第2层卷积层输入剩余的CNN中进行训练,除第1层卷积层和池化层,更新其余网络层的参数,最后完成网络训练。

图6 网络训练流程Fig.6 Procedure of network training

3 实验结果与分析

3.1 实验设置

对图像进行简单的预处理,包括灰度处理、统一大小和位深。灰度处理具体如下:

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j)

(5)

其中,i、j分别是图像的横、纵坐标值,R、G、B分别是图像的三原色。

图像大小设置为:人脸图像112像素×92像素,MNIST图像28像素×28像素、VOC2007图像500像素×375像素。所有图像位深为8。

男女识别、MNIST、VOC2007实验数据分别代表3种情况,即类别少难分辨、类别多好分辨、类别多难分辨。MNIST数据集取出各数字10张图像共100张作为训练集,100张作为测试集。男女识别图像为网上爬虫数据,选取男女图像50张作为训练集,100张作为测试集。VOC2007为分类数据集,包含20个种类,分别选取10张图像作为训练集,100张作为测试集。

搭建3层卷积神经网络进行实验,以Pytorch作为框架。计算机处理器为I7 8700型号,搭配NVIDIA GeForce GTX 1050型号显卡,GPU的并行处理能力能够加快图像数据的处理速度。实验采用留一交叉验证(Leave-One-Out Cross Validation,LOO-CV)方法,这种方法适用于小样本情况,得到的结果精准,但是其计算复杂度较高。网络参数设置为 6层卷积神经网络,卷积核个数分别是32、64、96、128、160、160。表2所示为网络参数设置。

表2 网络参数设置Table 2 Network parameters setting

使用准确率(Accuracy)和召回率(Recall)作为评估标准。准确率计算公式为:

Accuracy=(TP+TN)/(TP+TN+FP+FN)

(6)

其中,TP和TN分别表示被正确划分为正类和负类的个数,FP和FN分别表示被错误划分为正类和负类的个数。

召回率计算公式为:

Recall=TP/(TP+FN)

(7)

召回率表示所有正例中被划分正确的比例,其衡量分类器对正例的识别能力,是一种查全率。

3.2 仿真结果分析

按前文设置进行实验,取原数据集2倍和3倍数量的训练集,利用CNN算法进行实验与对比。表3~表7中给出的实验数据均为10次以上实验的平均值,时间为达到最优值所需要的时间平均值。

表3所示为实验经过第1层卷积提取的卷积特征图组和自混合后的卷积特征图组数情况。从表3可以看出,1倍数据在自混合后生成的特征图组和未经过自混合后生成的特征图组对比,其提取组数量基本在2倍到3倍数据量之间。特殊情况是男女识别数据集,由于同标签样本基数较大,自混合后生成的特征图组数远超3倍数据量提取组数。

表3 第1层卷积特征图组数Table 3 The number of sets of convolution feature maps in the first layer

从表4、表5可以看出,本文方法对标注数据缺乏情况有一定的改善,虽然其增加了运行时间,但运行时间与提取特征图组数成比例关系正常增加。1倍数据量是10幅图像,2倍数据量经过第1层卷积提取后是640组,而1倍数据量经过特征图交换可得720组数据,相差不多,但是由于存在冗余数据,因此1倍数据质量低于2倍数据质量。

表4 1倍数据实验结果Table 4 Experimental results of 1-fold data

表5 1倍数据结合特征图交换方法的实验结果Table 5 Experimental results of 1-fold data combined with feature map exchange method

通过表6可以看出,在2倍数据量时,虽然其提取的特征图组数与本文算法提取的特征图组数相似,并且1倍数据量还存在不少冗余组,但是1倍数据量加特征图交换方法,在准确率上要比2倍数据量更高,可以证明特征图交换能有效解决标注数据不足的问题。

表6 2倍数据实验结果Table 6 Experimental results of 2-fold data

从表7可以看出,当数据量为3倍时,部分数据集超过1倍数据量的准确率,证明当分类图像较复杂时,本文方法得到的准确率提升幅度较小,对于简单图像的分类准确率提升较多,并且本文算法在运行时间上并没有超过3倍数据量时的运行时间,因此,该方法的运行时间合理。

表7 3倍数据实验结果Table 7 Experimental results of 3-fold data

综上,本文方法能够在训练数据不足的情况下,通过将现有数据的卷积特征图进行交换,使同类图像特征产生新的组合,从而增加样本多样性,提高识别准确率。

4 结束语

本文提出一种基于特征交换的CNN图像分类算法。对CNN的特征提取方式进行改进,降低其对数据量的依赖性。实验结果表明,该算法可在样本不足的情况下通过生成新的数组来增加样本数量,且基数越大组合成新的数据量越大,从而提高了图像识别准确率。然而,随着新数据量的增加,本文算法训练时间会有所增加,并且会产生较多的冗余数据,不利于网络训练。下一步将针对生成数组冗余数量较多的问题,通过交换不同的卷积层来提高特征交换效率。此外,针对图像相似度不同的现象,将探索有效的图像预处理方法,以保留图像主要信息并且使图像特征具有位置相似性。

猜你喜欢

数据量卷积准确率
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于大数据量的初至层析成像算法优化
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
高刷新率不容易显示器需求与接口标准带宽
卷积神经网络的分析与设计
宽带信号采集与大数据量传输系统设计与研究
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法