MobileFaceNets: Efficient CNNs for Accurate Real- Time Face Verification on Mobile Devices

摘要

  我们展示了一类极其高效的CNN模型MobileFaceNets,它使用不到100万个参数,专门为移动和嵌入式设备上的高精度实时人脸验证而定制。我们首先简单分析了普通移动网络在人脸验证方面的弱点。我们专门设计的手机已经很好地克服了这个弱点。在相同的实验条件下,我们的MobileFaceNets获得了显著更高的精度,以及比MobileNetV2高出2倍以上的实际加速。经过ArcFace loss在精致的MS-Celebe-1M上的训练,我们4.0MB大小的单个MobileFaceNet在LFW上实现了99.55%的准确性,在MegaFace上实现了92.59%的TAR@FAR1e-6,这甚至可以与数百MB大小的最先进的CNN大模型相媲美。最快的一款MobileFaceNets在手机上的实际推理时间为18毫秒。在人脸验证方面,与以前最先进的移动中枢神经系统相比,移动中枢神经系统的效率显著提高。

1 引言

  人脸验证是一种重要的身份认证技术,越来越多地应用于设备解锁、应用登录、移动支付等移动和嵌入式应用中。一些配备了人脸验证技术的移动应用,比如智能手机解锁,需要离线运行。为了在有限的计算资源下实现用户友好性,在移动设备上部署的人脸验证模型不仅要精确,而且要小而快。然而,现代高精度人脸验证模型是建立在深度和大的卷积神经网络上的,在训练阶段由新的损失函数监督。对计算资源要求较高的大型CNN模型不适合很多移动和嵌入式应用。近年来,已经提出了几种高效的神经网络体系结构,例如MobileNetV1 [1]、ShuffleNet [2]和MobileNetV2 [3],用于常见的视觉识别任务,而不是人脸验证。使用这些普通的不变的CNNs进行人脸验证是一种直截了当的方法,根据我们的实验(见表2),与最先进的结果相比,这种方法只能获得非常差的精度。
在这里插入图片描述
  本文对常见移动网络在人脸验证方面的弱点进行了简单分析。我们专门设计的MobileFaceNets很好地克服了这一弱点,这是一类非常高效的CNN模型,专为移动和嵌入式设备上的高精度实时人脸验证而定制。我们的MobileFaceNets使用不到100万个参数。在相同的实验条件下,我们的MobileFaceNets获得了显著更高的精度,以及比MobileNetV2高出2倍以上的实际加速。经过ArcFace [5]从零开始的训练,我们的单个4.0MB大小的MobileFaceNet模型在LFW [6]上实现了99.55%的人脸验证精度(见表3),在MegaFace挑战赛1 [7]上实现了92.59%的TAR@FAR10-6(见表4),这甚至可以与数百MB大小的最先进的大型CNN模型相媲美。请注意,许多现有的技术,如剪枝[37]、低比特量化[29]和知识提取[16]能够额外提高移动设备的效率,但这些不包括在本文的范围内。
  本文的主要贡献如下:(1)在人脸特征嵌入CNN的最后一个(非全局)卷积层之后,我们使用全局深度卷积层而不是全局平均汇聚层或全连通层来输出一个有区别的特征向量。从理论和实验两方面分析了这种选择的优点。(2)我们精心设计了一类嵌入人脸特征的CNNs,即MobileFaceNets,在移动和嵌入式设备上效率极高。(3)我们在LFW、AgeDB ([8])和MegaFace上的实验表明,与以前最先进的移动CNNs相比,我们的移动CNNs在人脸验证方面取得了显著提高的效率。

2 相关工作

  调整深层神经架构以在准确性和性能之间达到最佳平衡是过去几年来活跃的研究领域[3]。对于常见的视觉识别任务,最近已经提出了许多有效的体系结构[1,2,3,9]。一些高效的架构可以从零开始训练。例如,SqueezeNet ([9])使用瓶颈方法设计了一个非常小的网络,并在ImageNet [11,12]上以少50倍的参数(即125万)实现了AlexNet级别的[10]精度。MobileNetV1 [1]使用深度可分离卷积来构建轻量级深度神经网络,其中一个,即MobiLeNet-160(0.5倍),在大约相同的大小下,在ImageNet上比SkeeNet上实现了4%的更高精度。ShuffleNet [2]利用逐点组卷积和通道混洗操作来降低计算成本并实现比MobileNetV1更高的效率。mobilenev2[3]体系结构基于具有线性瓶颈的反向剩余结构,提高了移动模型在多项任务和基准测试中的最新性能。移动NASNet [13]模型是一个带有强化学习的架构搜索结果,它的结构比MobileNetV1、ShuffleNet和MobileNetV2复杂得多,在移动设备上的实际推理时间也长得多。然而,当从头开始训练时,这些轻量级的基本架构对于面部验证来说并不那么精确(见表2)。
  专门为人脸验证设计的精确的轻量级架构很少被研究。[14]提出了一个LightCNN框架来学习大规模人脸数据上的紧凑嵌入,其中LightCNN-29模型在1260万个参数的LFW上实现了99.33%的人脸验证精度。与MobileNetV1相比,Light CNN-29对于移动和嵌入式平台来说并不是轻量级的。光CNN-4和光CNN-9比光CNN-29的准确率低很多。[15]提出了基于78万参数的ShiftNet-C模型的ShiftFaceNet,在LFW上只实现了96.0%的人脸验证准确率。在[5]中,MobileNetV1的改进版本,即LMobileNetE,实现了与最先进的大模型相当的人脸验证精度。但LMobileNetE其实是112MB型号大小的大型号,而不是轻量级的型号。以上模特都是从零开始训练的。
  另一种获取轻量级人脸验证模型的方法是通过知识提取压缩预处理后的网络[16]。在[17]中,通过从教师网络DeepID2+ [33]提取知识而训练的紧凑学生网络(表示为MobileID)在具有4.0MB模型大小的LFW上达到97.32%的准确度。在[1]中,通过从预处理的FaceNet [18]模型中提取知识来训练用于人脸验证的几个小型MobileNetV1模型,并且仅报告了作者私有测试数据集上的人脸验证精度。无论小学生模型在公共测试数据集上的准确性如何,我们的移动教育中心都可以达到与LFW的强大教师模型FaceNet(见表3)和MegaFace(见表4)相当的准确性。

3 方法

  在本节中,我们将描述我们在移动设备上实现精确实时人脸验证的极其高效的CNN模型的方法,该方法克服了普通移动网络在人脸验证方面的弱点。为了使我们的结果完全可再现,我们使用弧面损失在公共数据集上训练所有的人脸验证模型,遵循[5]中的实验设置。

3.1普通移动网络在人脸验证方面的弱点

  在最新的最先进的移动网络中,有一个全局平均池化层,用于常见的视觉识别任务,例如,MobileNetV1、ShuffleNet和MobileNetV2。对于人脸验证和识别,一些研究者([14],[5]等。)观察到,有全局平均池化层的CNN不如没有全局平均池化层的CNN准确。然而,对这一现象没有给出理论分析。在这里我们对感受野理论中的这一现象做一个简单的分析[19]。
  典型的深度人脸验证流程包括预处理人脸图像,利用训练好的深度模型提取人脸特征,以及根据特征的相似度或距离匹配两张人脸。遵循[5,20,21,22]中的预处理方法,我们使用MTCNN [23]检测图像中的人脸和五个面部标志。然后根据这五个标志点通过相似性变换进行人脸对齐。对齐的人脸图像大小为112 × 112,RGB图像中的每个像素通过减去127.5然后除以128进行归一化。最后,面部特征嵌入CNN将每个对齐的面部映射到特征向量,如图1所示。不失一般性,我们在下面的讨论中使用MobileNetV2作为嵌入CNN的人脸特征。为了保持与具有224 × 224输入的原始网络相同的输出特征图大小,我们在第一卷积层中使用步幅= 1的设置,而不是步幅= 2,后者的设置导致非常差的精度。因此,在全局平均池化层之前,最后一个卷积层的输出特征图(为方便起见,表示为FMap-end)具有7 × 7的空间分辨率。尽管FMap-end的角单元和中心单元的理论感受野大小相同,但它们位于输入图像的不同位置。FMap-end角单元的感受野中心在输入图像的角上,FMend中心单元的感受野中心在输入图像的中心,如图1所示。根据[24],感受野中心的像素对输出的影响要大得多,感受野内对输出的影响分布接近高斯分布。FMap-end角单位的有效感受野[24]比FMap-end中央单位的有效感受野小得多。当输入图像是对齐的人脸时,FMap-end的角单元比中心单元携带更少的人脸信息。因此,不同的单位对提取人脸特征向量的重要性是不同的。
  在MobileNetV2中,扁平的FMap末端不适合直接用作人脸特征向量,因为它的维数太高62720。使用全局平均池(表示为GAPool)层的输出作为人脸特征向量是一种自然的选择,这在许多研究人员的实验[14,5]中获得了不如我们的验证精度(见表2)。全局平均汇集层对FMap-end的所有单元同等重视,根据以上分析不合理。另一种流行的选择是用完全连接的层来代替全局平均池层,以将FMap-end投影到紧凑的人脸特征向量,这给整个模型增加了大量的参数。即使当面部特征向量是低维128时,FMapend之后的完全连接层也将为MobileNetV2带来额外的800万个参数。我们不考虑这种选择,因为小型号是我们的追求之一。

3.2 全局深度卷积

  为了以不同的重要性处理不同的FMap-end单元,我们用全局深度卷积层(表示为GDConv)代替全局平均池化层。GDConv层是深度卷积(c.f. [25,1])层,内核大小等于输入大小,pad = 0,stride = 1。全局深度卷积层的输出计算如下:
在这里插入图片描述
其中F是大小为W×H×M的输入,K是大小为W×H×M的深度卷积核,G的第m个通道中,只有元素 G m G_m Gm,(i,j)代表F和k的空间位置,m代表通道索引。
全局深度卷积的计算成本为:在这里插入图片描述
  当在MobileNetV2中的FMap-end之后用于面部特征嵌入时,核大小为7 × 7 × 1280的全局深度卷积层输出1280维的面部特征向量,其计算成本为62720 MAdds(即通过乘加测量的操作数,c.f. [3])和62720个参数。让mobilenev2-GDConv表示带全局深度卷积层的mobilenev2。当mobilenev2和mobilenev2-GDConv都在CIASIAWebface [26]上通过弧面损失进行人脸验证时,后者在LFW和AgeDB上获得了显著更好的准确性(见表2)。全局深度卷积层是一种有效的设计手机接收器的结构。
在这里插入图片描述

3.3 MobileFaceNet架构

  现在我们详细描述我们的MobileFaceNet架构。mobilenev2[3]中提出的残差[38]瓶颈被用作我们的主要构建模块。为了方便起见,我们使用了与[3]中相同的概念。我们的主要MobileFaceNet架构的详细结构如表1所示。特别是,我们的体系结构中瓶颈的扩展因子比MobileNetV2中的小得多。我们使用PReLU [27]作为非线性,这比使用ReLU(见表2)对面部验证稍好。此外,我们在网络的开始使用快速下采样策略,在最后几个卷积层使用早期降维策略,在线性全局深度卷积层之后使用线性1 × 1卷积层作为特征输出层。批量标准化[28]在训练期间使用,批量标准化折叠(参见[29]第3.2节)在部署前应用。
  我们的主要MobileFaceNet网络的计算成本为2.21亿MAdds,使用了99万个参数。我们进一步定制我们的主要架构如下。为了降低计算成本,我们将输入分辨率从112 × 112改为112 × 96或96 × 96。为了减少参数的数量,我们从MobileFaceNet中移除线性GDConv层之后的线性1 × 1卷积层,得到的网络称为MobileFaceNet-M。从MobileFaceNet-M中,在线性GDConv层之前移除1 × 1卷积层产生最小的网络称为MobileFaceNet-S。这些MobileFaceNet网络的有效性由下一节的实验来证明。

4 实验

  在本节中,我们将首先描述我们的MobileFaceNet模型和我们的基线模型的训练设置。然后,我们将比较我们训练的人脸验证模型与以前发布的一些人脸验证模型的性能,包括几个最先进的大模型。

4.1和AgeDB上的训练设置和精度比较

  我们使用MobileNetV1、ShuffleNet和MobileNetV2(它们的第一个卷积层的步幅= 1,因为步幅= 2的设置导致非常差的精度)作为基线模型。所有MobileFaceNet模型和基线模型都是由ArcFace loss在CASIA-Webface数据集上从头开始训练的,以便在它们之间进行公平的性能比较。我们将权重衰减参数设置为4e-5,除了全局运算符(GDConv或GAPool)为4e-4之后的最后几层的权重衰减参数。我们使用动量为0.9的SGD来优化模型,批量为512。学习速率从0.1开始,在36K、52K和58K迭代中除以10。训练在60K迭代时完成。然后,在表2中比较了LFW和AgeDB-30上的人脸验证准确度。
在这里插入图片描述
  如表2所示,与普通移动网络的基线模型相比,我们的移动证据集以更快的推理速度获得了显著更好的准确性。我们的主MobileFaceNet实现了最好的精度,而输入分辨率为96 × 96的MobileFaceNet具有最快的推理速度。请注意,我们的MobileFaceNet比那些具有更大扩展因子的MobileFacenet(扩展因子× 2)和MobileNetV2GDConv更有效。
  为了追求最佳性能,MobileFaceNet、MobileFaceNet (112 × 96)和MobileFaceNet (96 × 96)也通过ArcFace loss在MS-Celebe-1M数据库[5]的干净训练集上进行训练,该训练集具有来自85K受试者的3.8M图像。在LFW和30岁时,我们的主要手机网络的准确率分别提高到99.55%和96.07%。在表3中,将三个训练模型在LFW上的准确性与先前公布的面部验证模型进行了比较。
在这里插入图片描述

4.2 Evaluation on MegaFace Challenge1

在这里插入图片描述
  在本文中,我们使用Facebrush[36]数据集作为探针集来评估我们在Megaface Challenge 1上的主要MobileFaceNet的验证性能。表4总结了我们在MegaFace的两个协议上训练的模型的结果,其中如果训练数据集的图像少于50万,则被认为是小的,否则是大的。我们的主要MobileFaceNet在两个协议上的验证任务显示了相当的准确性。

5 结论

  我们提出了一类嵌入人脸特征的神经网络,即移动人脸神经网络,可以在移动和嵌入式设备上高效地进行实时人脸验证。我们的实验表明,与以前最先进的移动核网络相比,移动核网络在人脸验证方面的效率有了显著提高。

Guess you like

Origin blog.csdn.net/chenaxin/article/details/115208554