姚燕,胡立坤,郭军
(广西大学 电气工程学院, 广西 南宁 530004)
传统的地形识别算法过分依赖人工提取图像特征,受主观因素影响比较大,对于大规模数据集,提取特征过程比较复杂。与传统方法相比,现今发展迅猛的深度学习网络能够自动进行图像特征的提取,实现图像的高效分类。近年来,深度学习模型AlexNet[1]、VGG[2]、GoogLeNet[3]、ResNet[4]等纷纷涌现,同时越来越多的研究人员开始专门针对深度神经网络做算法和模型的优化,深度学习算法在图像分类中取得不断的突破。
在地形识别算法方面,LIU等[5]设计了一种复杂的地形样本分割方案,在分割的基础上,采用了图分割和分水岭分割相结合的方法对地形图像区域进行识别。在特征提取方面,将颜色直方图特征与LBP(local binary pattern)特征进行序列融合,融合后的特征对多光照、多抖动的地形样本具有较好的鲁棒性和准确性。YAN等[6]提出了一种用于大规模遥感影像地形分类框架,该框架采用性能良好的基于多尺度超像素细分的分割方法生成均匀且形状不规则的区域,通过部署迁移学习技术,利用优越的预训练卷积神经网络(convolutional neural network)模型来获得有代表性的深层特征。XUE等[7]针对地面地形识别任务,构建了一种叫深度编码池网络(deep encoding pooling network)的纹理网络,以全监督的方式学习特征空间中的参数分布,给出了类之间的距离关系,并提供了隐式表示模糊类边界的方法。王羽徵等[8]提出了一种基于改进式VGG网络的海洋单细胞藻类识别算法AlgaeNet,该算法通过对传统VGG网络减少卷积核数量,并添加批归一化(batch normalization)层进行神经网络加速,最终获得99.32%的准确率。余圣新等[9]设计一种高精度的手写体数字分类网络,该网络引入连续非对称卷积,深度可分离卷积和残差网络,最后根据softmax进行分类,在MNIST数据集上获得99.45%的识别率。上述方法得到的识别准确率较高,但模型参数大,不适用于移动端。除上述方法外,还有近些年兴起的轻量级网络ShuffleNet[10]和GhostNet[11]等,这些网络训练过程中参数量和计算量都大大降低,但网络的准确率和收敛速度有待提升。
通过以上分析,在运用卷积神经网络对图像进行特征提取的时候,存在以下问题:①参数多,结构复杂,网络训练难度大,计算机硬件资源要求高且训练好的模型不利于移植到移动端;②网络训练需要大量已标注数据集,实际中往往比较难找到合适的分类数据集,构建大型数据集需要花费大量人力物力。针对目前地形识别算法存在的不足,本文提出一种基于深度迁移网络MobileNetV3[12]的地形识别算法,利用较少数据,就可训练得到较高识别率的模型,并且可以部署到移动端进行地形实时识别。
传统的机器学习必须要有足够的可利用训练样本才能学习得到一个好的分类模型,若样本数量缺乏,效果则不甚理想,迁移学习的目的是迁移已有知识来解决目标领域中仅有少量有标签样本的学习问题[13]。对比传统的机器学习识别算法中人工设计特征,迁移学习在解决小样本学习问题上有较好的效果,按照应用场景不同,迁移学习可分为如图1所示的三种方法。
图1 迁移学习三种方法
方法一保持预训练模型原有卷积神经网络结构和初始权重不变,在自建新数据集上,根据预训练模型权重进行初始化,重新训练模型,最后利用训练好的模型对输入进行预测,这是迁移学习中最理想的情况;方法二保持模型初始层的权重不变,冻结部分神经网络层,然后在新的数据集上对神经网络高层进行训练,进而得到新的分类模型,再利用该分类模型对输入进行预测;方法三冻结所有的神经网络层,将网络模型结构的输出层去掉后,剩下的整个网络可当做一个固定的特征提取器装置,在新的数据集中,应用特征提取器装置把提取到的特征输入分类器进行预测[14]。
随着深度学习的发展,结合深度学习的迁移算法也得到迅速发展。刘颖等[15]探讨了深度神经网络特征迁移问题,发现在卷积神经网络中,底层卷积提取的是一些颜色,纹理和边缘等低级特征,这些低级特征具有局部性和一般性,随着卷积操作的不断进行,提取到的特征信息进行交叉合并,高层语义特征逐渐显现。对输入图像来说,高层特征具有全局性和独特性。本文实验首先根据源任务训练得到相应的预训练模型,然后对预训练模型神经网络中大规模共享参数进行迁移,同时,借助一些辅助功能,对自建数据集进行数据增强以扩充数据集,最后根据自建数据集进行新的训练,在训练过程中对相关参数进行调整,微调模型,进而训练出符合地形识别任务的网络模型,实现对目标任务的预测。结合深度学习的迁移算法,通过预训练基础进行了参数的迁移,将已经学会的知识迁移到另一个新的领域中,而不必重新设计网络结构就可获得符合目标任务的模型。
MobileNet[16]系列模型是Google针对嵌入式设备提出的一种轻量级深层神经网络模型,与传统的卷积神经网络相比,MobileNet具有参数少,延时低等特点。MobileNet系列有MobileNet、MobileNetV2[17]和MobileNetV3三种模型。
1.2.1 MobileNet
MobileNet是一种基于深度可分离卷积的模型,其核心思想是将传统卷积分解为深度卷积和1×1的逐点卷积。对于MobileNet而言,深度卷积针对每单个输入通道应用单个卷积核进行卷积,然后逐点卷积应用1×1卷积操作结合所有深度卷积得到输出。而标准卷积通过一步操作即对所有输入进行结合得到新的一系列输出。深度可分离卷积[18]将其分成了两步,针对每个单独层进行卷积然后下一步再进行结合。深度可分离卷积的这种操作,使其性能与标准卷积相当的同时,使用更少的参数来进行特征学习,能够有效减少计算量和模型参数。标准卷积[16]结构如图2所示,深度可分离卷积[16]结构如图3和图4所示。
图2 标准卷积
图3 深度卷积
图4 逐点卷积
假设输入特征图大小为GF×GF×M,做卷积核大小为BK×BK的卷积,输出特征图大小为GF×GF×N,当使用标准卷积时,其计算量如式(1)所示:
MAC1=BK×BK×M×N×GF×GF。
(1)
使用深度可分离卷积时,其计算量如式(2)所示:
MAC2=BK×BK×M×GF×GF×M×N×GF×GF。
(2)
深度可分离卷积计算量与标准卷积计算量的比值如式(3)所示:
(3)
由以上分析可知,当MobileNet使用3×3的深度可分离卷积时,相较于标准卷积少了8到9倍的计算量。
1.2.2 其他轻量级网络
MobileNetV2在MobileNet的基础上改变通道数,提出倒残差(inverted residuals)概念,在深度卷积之前加入一个逐点卷积用来升维,这样深度卷积均在相对更高维工作,然后,在末尾引入线性激活函数。通过这些改进,网络的参数量和计算量大大减少,进而从空间和时间上优化了网络。MobileNetV3在MobileNetV2的基础上,增加了以下功能。
① 引入SE注意力模型
MobileNetV3在MobileNetV2的基础上引入基于SE[19](squeeze and excitation)结构的轻量级注意力模型,SE结构模型是在特征提取通道维度上引入注意力机制,主要包含压缩(squeeze)和激励(excitation)两种操作,专注于通道关系,使网络从全局信息出发,选择对网络性能好的特征通道权重进行提升,抑制对网络性能不好的特征通道权重,让网络模型对特征进行校准,即对通道权重进行重新分配。SE模块以最小的额外计算成本显著提升了现有最新深度架构的性能。其中压缩操作的公式表达如式(4)所示:
(4)
式中,z是压缩操作输出;Fsq是压缩操作;f是二维特征图集合;w和h分别表示特征图空间信息的宽和高。
激励操作的公式表达如式(5)所示
s=Fex(z,W)=σ(g(z,W))=φ(W2δ(W1z)),
(5)
在激励操作之后,将产生的权重与原始特征进行相乘,计算公式如式(6)所示:
x=Fscale(f,s)=s×f,
(6)
式中,x是SE模块最后输出X中的一个值,X=[x1,x2,…,xc];Fscale是scale操作;f为原始输入特征;s是激励操作输出。
② 使用新的激活函数h-swish[x]
MobileNetV3在模型的后半部分,使用一种新的激活函数h-swish[x],h-swish是基于swish[20]的改进,其公式表达如式(7)所示:
(7)
为了满足移动端和嵌入式端深度学习应用的需求,可采用轻量级MobileNet系列网络进行迁移学习,而MobileNetV3代表了目前主流的轻量级神经网络模型,与其他网络相比,由于其更小的计算量,在相同的预测速度下,MobileNetV3网络精度更具竞争力。
通过以上分析,可知MobileNetV3网络模型具有参数少,延时低等特点,针对目前地形识别算法存在的不足,可在MobileNetV3网络基础上应用迁移学习。地形识别设备一般部署在移动端,对模型参数量和网络实时性要求较高,因此参数多,结构复杂的模型不适合部署到移动端,提出算法选择现阶段主流的轻量级网络MobileNetV3进行迁移学习,可以实现识别准确率和预测耗时之间较好的折中。基于ImageNet数据集的网络输出是1 000类,因此,选定轻量级网络后,并不能直接对其进行训练,需要把网络转换成实验所需的6类输出,而且不同任务的图像类型和属性都会对网络训练产生影响,因此需要对迁移网络进行修改以满足实际要求。在迁移学习过程中,先将预训练模型神经网络的大规模共享参数进行迁移,把源域模型初始权重迁移到新的训练网络进行初始化,进而继承大数据集上的先验知识;随后,依据自建数据集进行新的训练,通过后续学习,对模型中的参数进行微调,进而得到所需分类模型以实现对识别任务的预测。结合迁移学习的地形识别算法,不仅提高了网络模型的训练效率和准确率,同时基于大数据集预训练基础,在训练最后所得模型具有更好的泛化能力和鲁棒性,算法性能得到提升。地形识别算法流程如图5所示。
图5 地形识别算法流程
目前可用于地形分类的数据集较少,因此建立适用于地形分类的数据集GXU-Terrain6。GXU-Terrain6数据集包含了实验所识别的六类典型地形:柏油路面、草地、光滑瓷砖地面、粗糙瓷砖地面、护根覆盖地面和水泥地面,图片像素值为224×224,总量2 000张,其中每种类型图片数量约300张,大部分图片在不同光照条件和天气状况下拍摄采集而成,图片拍摄设备为:Panasonic DMC-GF5。GXU-Terrain6典型地形如图6所示。
(a) 柏油路面
在收集完所需的地形图片之后,对图片进行增强处理,具体处理如图7所示。
(a) 原图
通过对图片进行随机裁剪,水平镜像翻转,改变亮度和对比度等操作,将数据集扩增至7 800张图片。最后对7 800张图片按照6∶2∶2的比例随机分成训练集,验证集和测试集。
在图像识别任务算法中,衡量一种识别算法性能的重要指标包括图像识别准确率,预测时间以及模型参数量。在评价指标方面,Top1表示排名第一的类别与实际结果相符的准确率,Top5表示排名前五的类别包含实际结果的准确率。在对网络模型进行训练时,使用随机梯度下降法(stochastic gradient descent)优化损失函数,初始学习率设置为0.1,学习率下降方式采用余弦下降(cosine decay),动量(momentum)为0.9,L2权重衰减(weight decay)为1e-4,批尺寸(batch size)设置为256,训练次数为60次(epoch)。实验所用的操作系统为64位windows10,CPU为Intel(R)Core(TM)i7-8700K CPU @ 3.70 GHz 3.70 GHz,RAM为32 G,编程软件平台为python3.7和PaddlePaddle1.7.2,GPU为Tesla v100。
为确定迁移学习方法的有效性,选取经典的VGG16,InceptionV4,ResNet50和MobileNetV3网络模型,模型采用Top1和Top5识别准确率作为评价指标。为了对迁移学习方法的效果进行评价,实验采用原始模型和迁移学习后模型试验结果对比分析,其中迁移学习后模型,是在预训练网络结构的基础上,将所有权重初始化,然后在自建数据集进行训练。迁移学习对比结果如图8所示,迁移算法验证结果见表1。
(a) MobileNetV3
表1 迁移算法验证结果
由表1可看出,4种模型在迁移学习后的Top1和Top5都获得了较大幅度的提升。说明运用迁移学习后,模型间的一些共享参数进行了迁移,使网络获得了较高的识别准确率。图8是4种模型迁移学习前后的Top1准确率对比曲线,从图中可看到,在未运用迁移学习前,曲线的起点在15%~35%,运用迁移学习后,曲线从60%~80%起步,说明运用迁移学习后,模型中的初始性能得到提高,曲线有了更高的起点;在未运用迁移学习前,曲线在训练次数接近40的时候,才达到峰值,运用迁移学习后,曲线在训练次数为10左右时就可达到峰值,说明运用迁移学习后,模型性能得到迅速提高;在未运用迁移学习前,曲线在训练次数接近50的时候,才逐渐趋于稳定,运用迁移学习后,曲线在训练次数为30左右时就趋于稳定,说明运用迁移学习后,模型有了更好的融合性,曲线能够在更短的时间内趋于渐近线。
将不同深度迁移识别算法与本文提出算法做实验对比,证明提出算法的可取性。不同迁移模型精度对比如图9所示,不同迁移模型对比参数见表2。
图9 不同迁移模型精度对比
表2 不同迁移模型对比
由图9和表2可看出,4种迁移模型在收敛速度上相差不大,本文提出算法的Top1准确率为93.86%,训练时间为0.30 h,模型参数量为5.47 MB,与基于VGG16和ResNet50网络迁移识别算法相比,提出算法效果明显更好,其Top1准确率分别高出3.46%、0.17%,训练时间分别减少0.56、0.09 h,模型参数量分别降低132.87、20.09 MB。基于InceptionV4网络迁移识别算法训练时间最长,其模型参数量比提出算法高37.21 MB,模型参数过大会导致移植到移动端困难的问题。因此,在准确率相差不大的情况下,提出算法模型参数量有着数量级的减少,这对于移植到移动端极有优势。
为进一步验证本文方法的优越性,选取目前用于识别算法的轻量级网络ShuffleNet、GhosttNet和MobileNet系列分别做对比实验。其中提出算法与ShuffleNet和GhosttNet对比实验结果如图10所示,提出算法与MobileNet系列对比实验结果如图11所示,不同轻量级迁移模型对比结果见表3。
图10 不同类型轻量级迁移模型精度对比
图11 MobileNet系列迁移模型精度对比
表3 不同轻量级迁移模型对比
由图10和表3可看出,3种不同类型轻量级迁移模型在收敛速度上相差不大,本文提出算法准确率最高,代表了目前主流的轻量级神经网络模型。在模型参数量和预测时间方面,三者不相上下。提出算法采用了1×1的卷积方式,该操作方式虽然会提升模型参数量,但对其计算量影响不大,所以如果仅从存储角度评价,提出算法的优势不是最好,但由于其更小的计算量,使得提出算法拥有更快的推理速度。
由表3可看出,MobileNet系列模型的参数值均较小,本文提出算法的Top1准确率为93.86%,预测时间为3.75 ms,与系列中基于MobileNetV1和MobileNetV2网络迁移识别算法相比,其Top1准确率分别高出4.24%、2.67%,预测时间分别减少0.57 ms、0.78 ms。由图11可看出,相较于其余两个模型算法,提出算法更容易收敛,达到稳定后曲线也更平滑。
综合以上分析得出,本文提出算法具有较高可取性和优越性。
为进一步验证提出算法性能,采用K折交叉验证(K-folder cross validation)对模型进行验证,如图12所示。其中K取10,将训练集和验证集总和随机分割成K个大小相同的互斥子集,每次选择K-1份作为训练集,剩下的1份做验证集进行验证,最后对每个子集模型计算平均值[21],实验结果见表4。
图12 10折交叉验证
表4 10折交叉验证准确率
由表4可看出,在10折交叉验证中,各个子集模型的验证准确率相差不大,说明提出模型具有一定的稳定性和泛化能力。验证集为D4的准确率偏低,是因为训练集随机分配,有可能无法完全覆盖验证集的地形种类,因此这些地形种类的准确率下降明显。在训练样本不够丰富的情况下,采用交叉验证,可以减少网络的随机性,防止模型出现过拟合现象。
为验证不同模型迁移学习后的预测效果,在测试集上对最后所得模型进行不同类别地形预测实验,以Top1识别准确率作为评价指标,不同模型预测对比结果见表5。
由表5可看出,4种模型在光滑瓷砖地面和粗糙瓷砖地面上的准确率均偏低,是因为这两类地形在颜色和纹理特征方面比较相似,神经网络提取的低层特征比较泛化,针对性不高。本文提出算法预测时间最短,为3.75 ms。综合来看,提出算法在保证识别准确率的同时兼顾了算法执行时间,实现了识别准确率和模型参数量之间较好的平衡。
表5 不同模型预测对比
针对传统地形识别算法模型参数大,所需训练数据多且训练时间长的问题,本文提出了一种基于深度迁移网络的地形识别算法。该方法以ImageNet上预训练模型的权重参数为基础,运用迁移学习相关知识,将模型的一些共享参数进行迁移,然后在自建数据集上进行二次训练,把模型在大数据集上继承的先验知识应用到自建小数据集中。提出算法在GXU-Terrain6测试集上的平均预测准确率为93.00%,预测时间为3.75 ms。提出算法在较少数据集的情况下进行地形识别实验,结果证明是可行的,有效的,同时可向移动端移植。