与传统方法相比,深度学习的方法通过海量的数据来训练模型,使模型提取到的人脸特征更具有泛化性。最具代表性的是香港中文大学汤晓鸥团队提出的DeepID[3]系列。该团队中的Sun等提出DeepID1[4]通过使用单一的卷积网络来进行特征提取并进行分类识别,之后,又在文献[4]的基础上提出了DeepID2[5]模型,通过将人脸认证信号和人脸验证信号引入网络,以达到增大类间距缩小类内距的要求。随后,为了进一步提高模型提取特征的代表性和鲁棒性,Google提出了FaceNet[6]模型,将模型映射到欧几里德空间,并使用三元组损失Triplet loss[7]来增大类间距,从而提高模型性能;为了解决不同特征向量大小对分类效果的影响,Deng等提出Arcface[8]损失,将特征向量归一化到超球面上,使模型在角度空间对分类的边界进行最大化;为了解决训练过程中超参数的选择问题,Zhang等提出AdaCos[9]人脸损失函数,引入自适应动态缩放参数来解决超参数的选择问题。但是以上介绍的方法中主干网络大多比较复杂,模型参数较多,增加了计算量,影响计算效率以及模型的收敛速度。
本文在MobileFaceNet[10]网络的基础上加入风格注意力机制,将改进后的模型作为特征提取网络,使提取到的特征更具代表性和鲁棒性。同时引入AdaCos人脸损失函数来对模型进行训练,通过动态自适应缩放系数的调节优化训练,减少了人为调节超参数对训练的影响,提高了训练效率。
1 基于MobileFaceNet网络的人脸识别方法 1.1 MobileNetV1和MobileNetV2网络 MobileNetV1[11]是Google发布的网络架构,提出深度可分离卷积的概念。其核心就是把卷积拆分为Depthwise+Pointwise两部分。其中Depthwise卷积是指不跨通道的卷积,即Feature Map的每个通道有一个独立的卷积核,并且这个卷积核作用且仅作用在这个通道之上,输出Feature Map的通道数等于输入Feature Map的通道数,因此它并没有升维或者降维的功能。Pointwise卷积用于特征合并以及升维或者降维,一般使用1×1的卷积来实现功能。由此,可以将一个普通的卷积拆分成如图 1所示的结构,图中:N、M和Dk分别为卷积的个数、卷积通道数和卷积的宽、高。
图 1 可分离卷积示意图 Fig. 1 Schematic diagram of detachable convolution |
图选项 |
标准卷积的参数数量是Dk×Dk×M×N;卷积核的尺寸是Dk×Dk×M,一共有N个,每一个都要进行Dw×Dh次运算,所以标准卷积的计算量P1为
(1) |
式中:Dw和Dh分别为标准卷积的宽和高。
深度可分离卷积的参数量是:Dk×Dk×M+1×1×M×N;深度可分离卷积的计算量是由深度卷积和逐点卷积两部分组成:深度卷积的卷积核尺寸Dk×Dk×M,一共要做Dw×Dh次乘加运算;逐点卷积的卷积核尺寸为1×1×M,有N个,一共要做Dw×Dh次乘加运算,所以深度可分离卷积的计算量P2为
(2) |
参数数量和乘加操作的运算量下降倍数P3为
(3) |
从式(3)可以看出,深度可分离卷积在参数数量以及计算量上与标准卷积相比,大幅度的降低,提升了模型的运算效率。
深度卷积本身没有改变通道的能力,即输入通道等于输出通道若是输入通道数较少,则深度卷积只能在低维度工作,最终卷积效并不会很好。所以MobileNetV2[12]在MobileNetV1的深度卷积层之前,使用1×1的卷积进行升维操作,使网络在一个更高维的空间进行特征提取,这就使得提取到的特征更具全局性。同时,为了解决低维度Relu运算产生的信息丢失问题,将最后一个Relu替换成Linear线性激活函数。MobileNetV2网络结构如表 1所示,表中:z为通道扩张倍数;c为输出通道数;n为重复次数;v为步长;f为输入通道数。
表 1 MobileNetV2网络结构 Table 1 MobileNetV2 network structure
输入 | 卷积操作 | z | c | n | v |
224×224×3 | Conv2d | 32 | 1 | 2 | |
112×112×32 | bottleneck | 1 | 16 | 1 | 1 |
112×112×16 | bottleneck | 6 | 24 | 2 | 2 |
56×56×24 | bottleneck | 6 | 32 | 3 | 2 |
28×28×32 | bottleneck | 6 | 64 | 4 | 2 |
28×28×64 | bottleneck | 6 | 96 | 3 | 1 |
14×14×96 | bottleneck | 6 | 160 | 3 | 2 |
7×7×160 | bottleneck | 6 | 320 | 1 | 1 |
7×7×320 | Conv2d 1×1 | 1280 | 1 | 1 | |
7×7×1280 | Avgpool 7×7 | 1 | |||
1×1×f | Conv2d 1×1 | f |
表选项
1.2 MobileFaceNet人脸特征提取网络 MobileFaceNet是MobileNetV2的改进版本。由于MobileNetV2中使用的是平均池化层,但是针对同一张图片,不同像素点的权重是不同的,全局的平均池化将权重平均,网络的表现能力自然会下降。所以在MobileFaceNet中,使用一个7×7×512的可分离卷积代替原本的全局平均池化层。同时使用Prelu代替Relu激活函数,并引入归一化层来加快模型收敛,防止模型过拟合。MobileFaceNet的网络结构如表 2所示。
表 2 MobileFaceNet网络结构 Table 2 MobileFaceNet network structure
输入 | 卷积操作 | z | c | n | v |
112×112×3 | Conv 3×3 | 64 | 1 | 2 | |
56×56×64 | Depthwise Conv 3×3 | 64 | 1 | 1 | |
56×56×64 | bottleneck | 2 | 64 | 5 | 2 |
28×28×64 | bottleneck | 4 | 128 | 1 | 2 |
14×14×128 | bottleneck | 2 | 128 | 6 | 1 |
14×14×128 | bottleneck | 4 | 128 | 1 | 2 |
7×7×128 | bottleneck | 2 | 128 | 2 | 1 |
7×7×128 | Conv 1×1 | 512 | 1 | 1 | |
7×7×512 | Linear GDConv 7×7 | 512 | 1 | 1 | |
1×1×512 | Linear Conv 1×1 | 128 | 1 | 1 |
表选项
网络结构不仅保留了MobileNetV2的升降维层以及线性激活函数,同时还在全连接层之前引入7×7的可分离卷积来替代原本的平均池化层,使网络提取到的特征更具泛化性和全局性。
1.3 AdaCos人脸损失函数 Softmax目前被广泛应用于图片分类中,主要通过输出样本属于各个类的概率大小来区分不同类别之间的特征。但是Softmax并没有对类内和类间距离进行约束,这就大大影响了人脸识别的精度。最新的人脸损失函数Arcface以及AdaCos就是基于Softmax改进的。
1.3.1 Arcface损失函数 Softmax函数为
(4) |
式中:m为每一个训练批次的大小;i为图像编号;j为当前样本的真实标签;WyiTxi+byi表示全连接层输出,WyiT、xi、byi和yi分别为第i个图像类别的权重、图像的特征、图像类别的偏差和图像的真实类别的标签。通过提高WyiTxi+byi所占有的比重,提高对该类别的分类效果。但是Softmax只考虑到样本的分类正确性,而对于人脸识别这样的多分类问题,缺乏类内和类间距离约束。又因为WTx = || W|| · ||x|| ·cos θ,θ为特征向量x和权重W之间的夹角,即特征向量相乘包含有角度信息。为了让卷积网络提取到的特征可以学习到更可分的角度特性,将特征的权重值固定成一个定值s,同时为了简化模型参数,将偏置值设为0。这就将提取到的特征转化到了角度空间,使得决策边界只与角度有关。最后,通过引入一个新参数t(t>0)来控制角度余弦量值的大小,使得网络可以学习到更有区分度的特征。最终Arcface损失函数为
(5) |
1.3.2 AdaCos损失函数 AdaCos损失函数在Arcface的基础上引入一个动态自适应缩放系数sd,使得在训练过程中可以动态地调整超参数,同时去掉了控制角度余弦量值的参数t。最终AdaCos损失函数为
(6) |
式中:C1为类别的数量;θi, j为特征向量xi和对应权重之间的夹角;
(7) |
其中:θmed(t)为引入的一个调试指示变量,是所有对应类别的中心角度。当中心角度大的时候,表示网络参数距离最优还很远,需要一个弱监督信号;当中心角度较小时,表示网络参数距离最优已经很近了,需要一个较强的监督信号。Bavg(t)为所有非对应label的Logits之和的平均值,其计算公式为
(8) |
式中:N(t)为一个批次中人脸的类别数量;Nl为类别总数;kl为第i个图像的真实类别。
由AdaCos的公式可以看出,动态自适应参数在每次迭代的时候对分类概率的影响是不同的,由此就可以根据模型的收敛程度动态的产生合理的缩放系数,加快模型的收敛速度。
2 改进方法 本节在MobileFaceNet人脸特征提取网络的基础上,将风格注意力机制重新校准模块(Style-based Recalibration Module,SRM)[13]加入到MobileFaceNet网络中,进一步提高了提取特征的鲁棒性和全局性。人脸识别方法流程如图 2所示,多任务卷积神经网络(MTCNN)是一种人脸检测方法。
图 2 人脸识别方法流程 Fig. 2 Face recognition method flowchart |
图选项 |
方法流程主要分为3个部分,即数据预处理、基于SRM模块改进的MobileFaceNet人脸特征提取网络、输出人脸分类结果。之后使用自适应人脸损失函数AdaCos来监督训练过程,减少了设置超参数对训练效果的影响,同时进一步扩大类间间距,缩小类内间距。方法的整体实现是基于pytorch框架。
2.1 SRM模块 通常来说,不同的人脸图像会有不同的属性特征,卷积网络层通过提取图片特征来进行分类和识别。然而,针对不同的人脸图像会有不同的风格,这些风格属性会进一步影响卷积网络对特征的提取,进而影响之后的识别和分类精度。
SRM通过特征重新校准的形式明确地将风格信息合并到卷积神经网络(CNN)表示中。根据不同人脸图像的风格属性,动态地估计各个风格特征的相对重要性,然后根据风格的重要性动态的调整特征权重,这使得网络可以专注于有意义的风格信息,而忽略不必要的风格信息。SRM模块结构如图 3所示,C、H、W和d分别为通道的个数、特征图高度、特征图的宽度和风格特征的数量。
图 3 SRM模块结构 Fig. 3 SRM module structure |
图选项 |
SRM模块由2个主要组件组成:风格池化层(Style Pooling)和风格整合层(Style Integration)。风格池化层通过汇总不通空间维度的特征响应,从每个通道提取风格特征;风格整合层通过逐通道操作,针对图片的不同位置,利用风格特征生成相应的风格权重。同时根据不同的风格权重重新校准特征映射,以强调或隐藏它们的信息
2.1.1 风格池化层 风格池化层包括2个部分,即平均池化层和标准差池化层。对于每一个输入为X ∈ RNd×C×H×W的特征图,Nd为小批次中样本的个数,首先通过平均池化层,具体操作如下:
(9) |
式中:μnc为原特征图平均池化后的结果;xnchw为原特征图,n、c、h和w分别为Nd、C、H和W的分量。其次,将平均池化层的结果与原输入特征图进行标准差的计算,具体过程如下:
(10) |
式中:σnc为经过标准池化层后的结果。最后,经过风格池化层的结果如下:
(11) |
其中:tnc为经过风格池化层后的特征向量。
2.1.2 风格整合层 风格整合层包括3个部分,即通道全连接层(Channel-wise Fully Connected,CFC)、归一化层(Batch Normalization, BN)[14]以及激活层。将从风格池化层输出的结果作为风格整合层的输入,具体操作如式(12)~式(16)所示。
(12) |
(13) |
(14) |
(15) |
(16) |
式中:znc为与可学习的参数wc点乘后的特征向量;μc(z)为取平均值后的特征向量;σc(z)为取标准差后的特征向量;
2.2 基于风格注意力机制改进的MobileFaceNet人脸特征提取网络 MobileFaceNet人脸特征提取网络中有5个bottleneck层,其结构如图 4所示。
图 4 MobileFaceNet中bottleneck层结构 Fig. 4 Structure of bottleneck layer in MobileFaceNet |
图选项 |
将SRM模块加入到bottleneck层中后的结构如图 5所示。
图 5 MobileFaceNet-SRM bottleneck层结构 Fig. 5 MobileFaceNet-SRM bottleneck layer structure |
图选项 |
将SRM结构放在了bottleneck层中的Depthwise操作之后,使得特征提取网络可以根据特征图的风格信息来动态地增强有用的特征表达,抑制可能的噪声,提高了特征提取的鲁棒性和代表性。这一操作与MobileNetV3[15]的网络架构相似,不同的是MobileNetV3的网路架构加入SE模块[16]。
3 仿真实验与结果分析 3.1 实验设置
3.1.1 数据预处理 本文使用CASIA-Webface人脸数据集作为训练数据集,包含了10 575个人的494 414张图像。使用MTCNN[17]人脸检测方法对CASIA-Webface中的图片进行再检测,并将检测到的人脸图片裁剪成112×112个像素大小。
测试数据集选用的是LFW、CFP-FF、以及AgeDB 3个人脸数据集来进行模型的评估。LFW数据集包含5 749人共13 233张人脸图像;CFP数据集包含500个身份,每个身份有10个正脸,4个侧脸,本实验使用CFP数据集中的FP (Frontal-Profile)人脸验证,即CFP-FP(CFP with Frontal-Profile)数据集;AgeDB数据集包含440人共12 240张人脸图像。
3.1.2 实验环境及参数设置 实验中所有方法都是在pytorch框架下通过python语言实现的。训练和测试步骤在NVIDIA GTX2080Ti GPU上运行。训练总轮数epoch设置为50,训练初始学习率设置为0.1,迭代到10、25、40个epoch时,学习率每次除以10。训练中的bitchsize设置为64,总的权重衰减参数设置为5×10-4;使用随机梯度下降策略SGD优化模型,动量参数设置为0.9。
3.2 在不同backbone上的结果 不同的特征提取网络分别为Resnet-50、MobileFaceNet、MobileFaceNet-SRM,并使用AdaCos人脸识别损失来监督训练过程。ResNet50是AdaCos使用的基础网络;MobileFaceNet是改进前的特征提取网络;MobileFaceNet-SRM是加入SRM模块后的特征提取网络。评估指标包括在3个数据集上的测试准确度以及模型大小,具体表现如表 3所示。从表 3可以看出,基于MobileFaceNet人脸识别方法在3个数据集上的测试准确度与ResNet50相比,在LFW、CFP-FF、AgeDB 3个数据集上分别提升了0.49%、0.81%、2.48%,同时模型参数数量大大降低;在将SRM模块加入到MobileFaceNet后,与改进前的模型相比,模型参数数量略有提升,但是识别精度在LFW、CFP-FF、AgeDB 3个数据集上分别提升了0.25%、0.16%、0.3%,可以看出改进后的模型在精度上有所提升,证明了改进后模型的有效性。
表 3 基于AdaCos的损失函数不同卷积框架人脸识别模型性能比较 Table 3 Performance comparison of face recognition models with different convolution frames based on AdaCos loss function
网络结构 | 测试准确度/% | 模型大小/MB | ||
LFW | CFP-FF | AgeDB | ||
ResNet50 | 98.41 | 97.88 | 88.46 | 161.5 |
MobileFaceNet | 98.90 | 98.69 | 90.94 | 4.9 |
MobileFaceNet-SRM | 99.15 | 98.85 | 91.24 | 5.2 |
表选项
图 6是3种主干网络在人脸损失函数AdaCos监督训练下,在AgeDB评测数据集上的受试者工作特征(Receiver Operating Characteristic,ROC)曲线。横轴为假正率(FPR),指的是分类器识别出的假正实例占所有负实例的比例;纵轴为真正率(TPR),指的是识别出的真正实例占所有正实例的比例。从图 6可以看出,MobileFaceNet相较于ResNet50网络识别精度有明显提升,同时模型参数数量大大减少,计算效率有所提高。在向MobileFaceNet中引入风格注意力机制后,准确度相较于改进前的模型有所提升,这表明改进后的MobileFaceNet人脸识别方法的有效性。
图 6 三种主干网络在AgeDB数据集上的ROC曲线 Fig. 6 ROC curves of three backbone networks on AgeDB dataset |
图选项 |
4 结论 1) 本文基于MobileFaceNet网络提出了一种新的人脸识别方法,通过引入风格注意力机制来增强特征的表达,将改进后的模型作为特征提取网络,大大减少了模型的参数数量,提高了模型的计算效率,同时提高了提取特征的鲁棒性和代表性。
2) 使用自适应缩放损失函数AdaCos作为人脸损失函数来监督训练,通过动态自适应缩放系数,在训练过程中动态调整超参数,加快了模型的收敛速度。在LFW、CFP-FF和AgeDB 3个人脸数据集上对算法性能进行评测。
3) 实验结果表明,本文方法相较于之前的人脸识别方法,在识别精度有所提升的基础上,大大降低了模型参数的数量,有效地减少了模型的计算量以及模型复杂度。
参考文献
[1] | 徐竟泽, 吴作宏, 徐岩, 等. 融合PCA、LDA和SVM算法的人脸识别[J]. 计算机工程与应用, 2019, 55(18): 34-37. XU J Z, WU Z H, XU Y, et al. Face recognition combined with PCA, LDA and SVM algorithms[J]. Computer Engineering and Applications, 2019, 55(18): 34-37. (in Chinese) |
[2] | 任飞凯, 邱晓晖. 基于LBP和数据扩充的CNN人脸识别研究[J]. 计算机技术与发展, 2020, 30(3): 62-66. REN F K, QIU X H. Research on CNN face recognition based on LBP and data augmentation[J]. Computer Technology and Development, 2020, 30(3): 62-66. (in Chinese) |
[3] | SUN Y, WANG X G, TANG X O.Deep learning face representation from predicting 10, 000 classes[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Piscataway: IEEE Press, 2014: 1891-1898. |
[4] | SUN Y, WANG X G, TANG X O, et al.Deep learning face representation by joint identification-verification[C]//Advances in Neural Information Processing Systems, 2014: 1988-1996. http://www.researchgate.net/publication/263237688_Deep_Learning_Face_Representation_by_Joint_Identification-Verification |
[5] | SUN Y, WANG X G, TANG X O.Deeply learned face representations are sparse, selective, and robust[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Piscataway: IEEE Press, 2015: 2892-2900. |
[6] | SCHROFF F, KALENICHENKO D, PHILBIN J.FaceNet: A unified embedding for face recognition and clustering[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Piscataway: IEEE Press, 2015: 815-823. |
[7] | WANG S S, CHEN Y. A joint loss function for deep face recognition[J]. Multidimensional Systems and Signal Processing, 2019, 30(3): 1517-1530. DOI:10.1007/s11045-018-0614-0 |
[8] | DENG J, GUO J K, XUE N N, et al.Arcface: Additive angular margin loss for deep face recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Piscataway: IEEE Press, 2019: 4690-4699. |
[9] | ZHANG X, ZHAO R, QIAO Y, et al.AdaCos: Adaptively scaling cosine logits for effectively learning deep face representations[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Piscataway: IEEE Press, 2019: 10823-10832. |
[10] | CHEN S, LIU Y, GAO X, et al.MobileFaceNets: Efficient CNNs for accurate real-time face verification on mobile devices[C]//Chinese Conference on Biometric Recognition.Berlin: Springer, 2018: 428-438. https://www.researchgate.net/publication/324690622_MobileFaceNets_Efficient_CNNs_for_Accurate_Real-time_Face_Verification_on_Mobile_Devices |
[11] | HOWARD A G, ZHU M, CHEN B, et al.MobileNets: Efficient convolutional neural networks for mobile vision applications[EB/OL].(2017-04-17)[2020-02-20].https://arxiv.org/abs/1704.04861. |
[12] | SANDLER M, HOWARD A, ZHU M L, et al.MobileNetV2: Inverted residuals and linear bottlenecks[EB/OL].(2018-01-13)[2019-03-21].https://arxiv.org/abs/1801.04381. |
[13] | LEE H J, KIM H E, NAM H.SRM: A style-based recalibration module for convolutional neural networks[EB/OL].(2019-05-26)[2020-02-20].https://arxiv.org/abs/1903.10829?context=cs. |
[14] | IOFFE S, SZEGEDY C.Batch normalization: Accelerating deep network training by reducing internal covariate shift[EB/OL].(2015-03-02)[2020-02-20].http://arxiv.org/abs/1502.03167. |
[15] | CHU X X, ZHANG B, XU R J.MoGA: Searching beyond MobileNetV3[EB/OL].(2019-08-04)[2020-02-20].https://arxiv.org/abs/1908.01314v2. |
[16] | HU J, SHEN L, ALBANIE S, et al.Squeeze-and-excitation networks[J].(2017-09-05)[2020-02-20].https://arxiv.org/abs/1709.01507. |
[17] | 常思远, 李有乘, 孙培岩, 等. 一种基于MTCNN的视频人脸检测及识别方法[J]. 许昌学院学报, 2019, 38(2): 154-157. CHANG S Y, LI Y S, SUN P Y, et al. A video face detection and recognition method based on MTCNN[J]. Journal of Xuchang University, 2019, 38(2): 154-157. (in Chinese) |