基于轻量级卷积神经网络人脸识别算法的研究与应用*
2022-01-21胡佳玲施一萍谢思雅
胡佳玲, 施一萍, 谢思雅, 陈 藩, 刘 瑾
(上海工程技术大学 电子电气工程学院,上海 201620)
0 引 言
近年来,人脸识别[1]一直是很多学者们研究的热点问题。人脸识别算法目前主要分为两种:一种是机器学习算法,本质主要是通过设定人脸特征再结合Adaboost等分类算法加以实现;第二种是近年来比较流行的结合深度学习[2]的人脸识别算法。基于深度学习的人脸识别算法一般采用卷积神经网络(convolution neural network,CNN)来实现。发展至今,基于CNN[3]的人脸识别算法在准确率上已经趋于100 %,并且有越来越多效果很好的网络相续出现。2014年,香港中文大学的团队利用深度学习人脸识别算法取得了准确率为97.45 %的好成绩;准确率的提升往往伴随着CNN深度和复杂度的增加,在提高精度的同时,意味着网络深度、参数和计算量的大幅增加,训练时间也相对延长。例如Google Inception Net有22层,且ResNet达到了152层。其次,随着小型设备的应用不断广泛,越来越多的研究不仅仅局限于靠强大的服务器去训练网络。
针对上述问题,本文选用了一种轻量级MobileNet[4]模型,将改进的MoblieNet网络和区域生成网络(region proposal network,RPN)[5]融合构成一个用于人脸识别的专用网络,并对其进行了改进,有效地提高了网络的运行速度,降低了网络的参数量。最后用Jetson Nano嵌入式开发板作为训练的载体,测试网络的具体性能,并应用到实际场景中。
1 人脸识别系统
如图1所示,为本文设计构建的人脸识别模型,系统的硬件采用嵌入式开发板Jetson Nano,将搭建好的改进型轻量级人脸识别网络在开发板上训练好,并投入使用。
图1 人脸识别系统模型
2 改进型MobileNet网络
本文设计的模型具体从两个方面进行改进:首先,将MobileNet网络中SoftMax[6]层改用L-SoftMax[7]层替换;其次,网络融合入RPN,提高网络的识别效率。
2.1 MobileNet网络
2017年,Google提出MobileNet深度学习网络,与传统卷积神经网络不同在于,MobileNet网络采用深度可分离卷积[8](depthwise separable convolution),即把传统卷积分为深度卷积(depthwise convolution)和逐点卷积(pointwise convolution)。深度可分离卷积可以在保证网络不损失大量精确度的情况下大大降低网络参数和计算量。卷积的具体分解过程如图2所示。
图2 传统卷积、深度卷积和逐点卷积
如图2(a)传统卷积所示:卷积核channel=输入特征矩阵channel;输出特征矩阵channel=卷积核个数。而图2(b)中的深度卷积:卷积核channel=1;输入特征矩阵channel=卷积核个数=输出特征矩阵channel。
1×1的卷积核在深度可分离卷积中被称为逐点卷积。特征映射F的大小为(DF,DF,M),K为(DK,DK,M,N),如图2(a)传统卷积所示。其输出的特征映射G大小为(DG,DG,N)。传统卷积的计算公式如下
(1)
传统卷积的计算量为DK·DK·M·N·DF·DF。现将传统卷积(DK,DK,M,N)进行拆分,拆分为深度卷积和逐点卷积:
1)滤波由深度卷积负责,尺寸为(DK,DK,1,M),如图2(b)的深度卷积所示,输出的特征为(DG,DG,M)。
2)转换通道由逐点卷积负责,尺寸为(1,1,M,N),如图2(c)的逐点卷积所示,得到最终的输出为(DG,DG,M)。深度卷积的卷积公式为
(2)
DK·DK·M·DF·DF+M·N·DF·DF
(3)
因此,深度可分离卷积与传统卷积比值为
(4)
一般情况下,N的取值较大。假设用的卷积核为3×3大小,则这里计算量大约会减少9倍左右,训练网络的时间也大大缩短。
2.2 网络层优化
虽然,MobileNet的计算量比传统卷积神经网络高许多倍,但其检测准确率低于层数较多的卷积神经网络。MobileNet在训练时使用SoftMax分类器。但研究发现采用L-SoftMax的分类效果比SoftMax更好。最初,人脸识别采用SoftMax Loss方法,但实验发现,这种方式只能确保让其组与组间具有区分性,而对组内的约束是很小的。所以,鉴于此,L-SoftMax增加了一个代表分类间隔的超参数m,它决定了接近地面真值类的强度,产生一个角边距,使得学习特征变得更加紧凑和良好分离。
SoftMax Loss函数公式如式(5)所示
(5)
式中sj为SoftMax函数,代表属于各个类别的概率。
而L-SoftMax Loss的公式如下
(6)
式中D(θ)要求是单调递减函数,D(π/m)应等于cos(π/m)。m是一个与分类裕度密切相关的整数,随着m的增大,分类裕度变大,学习目标也变难。而这种方式,会迫使模型学习到类间距离更大,而类内距离更小的特征。因此,会使得分类效果更清晰。这一点在迭代次数多的情况下效果会更明显。表1为改进后的网络结构。
表1 改进型MobileNet网络结构
3 改进型MobileNet+RPN识别算法
3.1 RPN
为了缩小与深层卷积神经网络在识别率上的差距,本文还加入了RPN,用来确定人脸检测窗口。
RPN原理上是在卷积神经网络的卷积层后生成的特征图上产生建议选区。因其巧妙地采用了Anchor机制,所以,可以产生多尺度长宽比的建议选区。RPN网络的具体实现过程如下:首先,用一个小网络在特征图上进行滑动,一般的滑动窗口设置为3×3大小。这个滑动窗口会做全卷积操作,并根据最后卷积层的通道数,生成一个对应数目的向量。其次,将向量连向分类层,分类层将判断该区域是场景中的哪部分,并给出具体的分数。原Fast R-CNN[9]一共设置了9种Anchor。由于人脸的特殊性,一般人脸的比例是固定的。本文对LFW(labeled faces in the wild)中人脸比例情况做了粗略统计,结果表明,人脸的长宽比基本都是1︰1和2︰1,大部分在1.5左右。所以,本文的Anchor比例设置为1︰1和2︰1,尺寸和原RPN—样,都采用3种尺寸,所以,一个3×3的区域只需要产生6个Anchor,达到了减少计算量的目的,同时,加入的RPN也提升了本文算法的识别率。
3.2 改进后的模型
如图3,第一部分为MobileNet的卷积层,第二部分为加入的RPN,第三部分为全卷积层后对原SoftMax改进为L-SoftMax。改进后的算法为MobileNet-L+RPN算法。
图3 整体网络结构
4 实验结果与分析
4.1 实验数据集
本次实验采用的人脸数据库为LFW,其中的图片均来自网络,共包含13 233张人脸图片,5 749位名人,每位名人有一张或多张人脸图片且都被标注了姓名和编号。
4.1.1 数据集分类情况
针对LFW数据集,选取10 000张用于训练集,3 000张用于验证集。除此外,本文还准备了1 000张测试集,测试集来源于网络人脸和现实拍照,包括身边的同学、朋友等。
4.1.2 图像预处理
1)灰度化[10]:为使后续的图像计算量变少,本文预先对数据库进行统一的灰度化处理,采用的是传统的灰度化处理方法。
2)直方图均衡化[11]:增强灰度图像的对比度,减少不相关因素的影响。
4.2 实验结果及数据分析
Jetson Nano支持的系统为Ubuntu系统,本次安装的版本为较新的Ubuntu 18.04.2 LTS。软件部分采用Python 3.6版本下的Anaconda,采用Pytorch框架。网络训练参数的设置如下:初始学习率为0.001,学习策略采用按需调整学习率,权重衰减为0.000 4。
本文比较了3种网络模型:CNN,MobileNet,MobileNet-L+RPN。首先在带有GPU服务器的电脑设备上进行模型的评价,实验数据如图4所示:三种模型迭代15 000次的准确率折线图,从图中可以看出:采用CNN在迭代4 000~5 000次时,准确率趋于收敛,准确率最终稳定在98 %左右。MobileNet在迭代10 000左右趋于收敛,准确率稳定在95 %左右。采用MobileNet(L-SoftMax)+RPN模型在迭代8 000次左右趋于收敛,准确率最终稳定在97 %左右。对比传统的CNN,准确率还是有所下降。但比原MobileNet网络,准确率提高了2个百分点。因此,本文提出的改进MobileNet网络切实可行,且在准确率上较原MobileNet网络有提升。虽然没有达到和传统CNN一样或者更高的精确度,但这对于大大提升计算速度和大大降低网络参数而言,在性能上有了很大的提升。
图4 三种模型准确率比较折线图
三个模型试验结果对比如表2所示,由表2可以看出,本文提出的模型在降低网络参数和训练时间的同时,识别的准确率较原MobileNet网络也有提升。
表2 三种模型参数量及识别准确率比较
其次,本文又将原MobileNet模型和改进后的轻量级模型分别在Jetson Nano嵌入式平台上进行测试,最终得到的数据如表3所示。由表3可以看出,本文提出的模型在运行速度上比原MobileNet快了21.3 %左右。
表3 模型在Jetson Nano上运行速度对比 ms
5 结束语
本文提出了一种轻量级人脸识别算法,对MobileNet网络进行网络层的改进,并融合RPN,在提升网络识别速度的同时,网络的准确率也得到提升,使得网络能够在小型计算平台上得以应用(本文以Jetson Nano为例)。实验结果表明:在LFW数据库和自建的数据库上训练的人脸识别准确率达到了97.54 %。同时,本文将改进的MobileNet人脸识别运用到具体的Jetson Nano设备上,可构成完整的识别系统,运用于多个现实场景。如室外安防、打卡系统、查寝系统等。