APP下载

基于移动端的高效人脸识别算法

2019-04-12魏彪杨映波曾珍刘龙凤

现代计算机 2019年7期
关键词:人脸人脸识别精度

魏彪,杨映波,曾珍,刘龙凤

(四川大学计算机学院,成都610065)

0 引言

随着人脸数据的采集和深度学习的发展,人脸识别技术取得了长足的进展。越来越多的移动端应用都用到了人脸识别系统,如设备解锁、应用登录、移动支付等,为了给用户更加友好体验,移动端的人脸识别系统不仅要求精度高而且速度要快。然而目前人脸识别高精度的模型都是基于深度卷积神经网络结构,如VGG[1]、GoogleNet[2]、ResNet[3]等系列网络,这些模型需要大量的计算资源并不适用于移动端设备。

为解决上述问题,本文借鉴知识蒸馏算法DK[4]与FitNet[5]提出了深度特征蒸馏的算法,以高精度的大网络模型为教师网络,以高效的小网络模型为学生网络,通过教师网络提取的特征指导学生网络学习,设计了一种新的人脸损失函数,在模型压缩很小时也能达到教师网络识别准确率。本文在教师模型和学生模型网络中嵌入SENet[6]网络,进一步提高识别准确率。通过实验验证,本文提出的算法将学生模型的大小压缩至教师模型的4 倍,在LFW[7]数据集上准确率只比教师模型低0.17%。

本文的主要贡献包括:①对当前的深度卷积人脸识别模型进行了梳理与分析,揭示了当前模型实际部署的困难在于模型参数大和计算复杂度高从而检索效率低;②提出基于深度特征蒸馏的人脸识别方法大幅度压缩模型大小,设计了新的人脸识别函数。对教师模型和学生模型嵌入SENet 网络结构,学习不同特征的重要性,提高识别准确率;③在LFW 数据集上验证本文提出的两种方法的有效性。

1 相关工作

调整深度模型在准确率和性能取得好的平衡,一直是一个热门的研究领域。为提高人脸识别准确率,研究者提出了多种基于深度卷积神经网络的人脸识别方法,识别精度如表1 所示。DeepFace[8]算法通过建立3D 模型改进人脸对齐的方法,在LFW 数据集上取得了97.35%的识别精度。FaceNet[9]算法使用Triplet Loss代替常用的Softmax 多分类损失函数,在LFW 上取得99.63%的精度。L-Softmax[10]算法,对Softmax 改进,在网络设计上将最后一层分类层的偏置项去掉,直接优化特征和分类器的余弦角度,通过人为设定增加了一个角度增加了模型的学习难度,在LFW 上达到98.71%精度。SphereFace[11]算法归一化了权值W,让训练更集中优化深度映射和特征向量角度上,降低样本数量不均衡问题,在LFW 上达到99.42%精度。AMSoftmax[12]算法在SphereFace 基础上,乘性margin 改为加性margin,在权值归一化的基础上对特征也做了归一化,并采用尺度因子s,在LFW 上取得了98.89%精度。ArcFace[13]算法在SphereFace 基础上,将cos(mθ)改进为cos(θ+m),采用100 层ResNet 结构,在LFW 上得99.83%精度,目前是榜单第一名。

当前的深度模型压缩和加速方法主要分为四类:参数剪枝和共享、低秩因子分解、小型卷积网络,知识蒸馏。目前提出的小型高效网络有:SequeezeNet[14]使用瓶颈方法设计一个非常小的网络,并在ImageNet 上实现AlexNet[15]级别精度,参数减少50 倍。Mobile⁃NetV1[16]使用深度可分离卷积网络,其中的Mobile⁃NetV1-160 参数大小相同时,在ImageNet 精度比Se⁃queezeNet 高出4%。ShuffleNet[17]利用分组卷积和混淆通道操作,降低计算成本并比MobileNetV1 更高效。MobileNetV2[18]模型基于一种倒置残差结构和线性瓶颈结构,达到了小网络的最好性能。MobileFaceNet[19]提出经过最后一个卷积层提取人脸特征后,不是接全局池化层或者全连接层,而是用一种全局深度卷积网络结构对人脸特征不同的位置学习不同的权重,极大提高了识别精度。然而,这些小网络的识别精度并不太高,见表1。另一种压缩方法是知识蒸馏[20],将DeepID2+[21]作为教师网络,监督训练一个小型的学生网络,在LFW上取得97.32%的精度,模型大小为4MB,另外两种方法本文不予讨论。

卷积神经网络通常看作是在局部感受野上,将空间上的信息和特征维度上的信息进行聚合的信息聚合体。最近很多工作被提出来从空间维度层面来提升网络的性能,如Inception 结构中嵌入了多尺度信息,聚合多种不同感受野上的特征来获得性能增益;在Inside-Outside 网络中考虑了空间中的上下文信息;还有将Attention 机制引入到空间维度上,等等。SENet 则是考虑特征通道间的关系,通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征,SENet 可以嵌入到现有的所有基础网络中。

表1 当前主流的人脸识别模型在LFW 数据集上的识别精度

2 算法分析

借鉴Hitton 知识蒸馏的思想,本文采用深度特征蒸馏的方法,通过设计新的损失函数,用教师网络的特征指导监督学生网络的训练,教师网络采用Insight⁃Face 模型,将原本的512 维特征降至128 维,学生网络采用目前的高效小网络。为进一步提高识别精度,将SENet 网络结构嵌入到教师网络和学生网络模型中。

2.1 嵌入SENet网络结构

SENet 是希望显式地建模特征通道之间的相互依赖关系。另外,我们并不打算引入一个新的空间维度来进行特征通道间的融合,而是采用了一种全新的“特征重标定”策略,包括Squeeze 和Excitation 两个关键模块。首先是Squeeze 操作,顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的。其次是Excitation 操作,它是一个类似于循环神经网络中门的机制。通过参数来为每个特征通道生成权重,其中参数被学习用来显式地建模特征通道间的相关性。最后是一个Reweight 的操作,我们将Excitation的输出的权重看做是进过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。图1 是将SE 模块嵌入到Inception 模块和ResNet 模块的一个示例。

2.2 深度特征蒸馏

深度特征蒸馏分为特征回归和人脸识别分类两部分:①特征回归,学生网络从教师网络的特征中学习,从而将教师网络中知识迁移到学生网络中,让学生网络获得教师网络的特征表达能力。②人脸分类,学生网络采用最新的ArcLoss 损失函数。通过上述两种方法,在得到参数少和计算量小的学生模型同时又融合了教师模型特征的先验知识,能够取得很好的效果。

如图2 所示,深度蒸馏网络的目标是在教师网络T 提取的特征指导下训练学生网络S。对于人脸识别n 分类问题,训练集其中xi为图像数据,yi为对应的类别标签,对一个训练样本l ∈{1,0}为类别标签y 的one-hot 编码,深度网络S 最后一层输出一个d 维的特征向量p。传统的n 分类人脸问题通过最小化损失函数L( w; x,l)=H( p,l )来优化模型参数w,其中H( p,l )代表p 与l 的交叉熵。

图1 原始的Inception模块和SE-Inception模块(左),原始的Residual模块和SE-ResNet模块

本文提出的深度特征蒸馏方法改进传统的人脸损失函数,新的损失函数在原有交叉熵损失函数H( )p,l的基础上,增加与训练好的教师模型特征与学生模型特征的l2 距离如下:

式中T( x',w')为教师网络最后一层特征,S( x,w )为学生网络最后一层特征,最终的损失函数为:

式中:α 为蒸馏强度。

通过反响传播(Back-Propagation,BP)算法不断迭代优化公式(2),训练学生网络S,并最终取学生网络S的最后一层人脸特征作为学生模型的输出。

为了达到模型压缩和加速的目的,学生网络S(x,w)通常选取最新的高效小网络模型,同时教师网络T(x,w)为精度非常高的大网络模型,其输出的特征Tt=T(x,w)具有很多优良性质,因此数据对(x,Tt)相比原始数据(x,l)具有更多的知识。让(x,Tt)通过监督信号公式(1)监督训练学生网络,可以得到比直接从训练集D 更有的效果,同时让学生网络接受分类信号的监督,监督信号式(1)和分类信号共同组成了损失函数式(2)监督学生模型的训练,最终学生模型的输出融合了特征Tt和类别信息l,实现了对深度特征Tt蒸馏。

图2 深度特征蒸馏人脸识别框架

2.3 网络模型结构

如图2 所示,教师网络T 为InsightFace 模型,网络结构为100 层的ResNet+SENet,输入图像大小为112×112 像素,图像的每个像素通过减去127.5,然后除以128 来归一化。学生网络S 采用如MobileNetV1、Shuf⁃fleNet、MobileNetV2、MobileFaceNet 等小网络,同样嵌入SENet 网络结构,输入图像操作同教师模型T,输出特征维度都为128 维。

3 实验与分析

本文首先进行对教师模型ArcFace 模型嵌入SENet 网络对比实验,ArcFace 模型在L-FW 数据集上已接近饱和,因此为充分验证嵌入SENet 网络的效果在MegaFace[22]数据集上验证效果。在LFW 上利用提出的深度特征蒸馏方法和嵌入SENet 结构对多种学生网络进行对比评测,以验证方法的有效性。

3.1 实验准备

(1)采用MegaFace 数据集来验证嵌入SENet 网络的有效性,MegaFace 包含一百万张图片,690K 不同的人。预先对MegaFace 干扰集做了仔细的比对和清理,这样获得的性能才是模型本身的性能,也移除了噪音带来的随机性。

(2)LFW 用来评估学生网络的性能。LFW 包含5749 人的13233 张图片及其标注,每张图片标注一个人名,其中大约1680 个人包含两个人以上的人脸。评测时,使用提供的标准的3000 对相同人脸及3000 对不同人脸的图片,待评估模型对其中每一对人脸判断是否为同一个人,计算判断的正确率。

如图2 所示,多数据集的每张图片,使用MTCNN[23]检测人脸和关键点并对齐。将对齐后的图片缩放至112×112 尺寸,并将数据转换成TFRecord 格式,本次实验采用4 块Tesla V100 16G 显卡,深度学习框架为TensorFlow。

3.2 实验过程

(1)训练教师网络

我们用生成的TFRecord 格式数据集作为输入,采用的损失函数为ArcFace 算法的损失函数ArcLoss,即式(2)中的H( p,l )为:

其中:

实验时,令 s=64, m=0.5,权重衰减参数为0.001,统一批尺寸(batch size)为128,初始学习率为0.01,随迭代周期变小,400000 步变为0.001,560000 步变为0.0001,640000 步变为0.00001,梯度更新方式采用mini-batch SGD 优化算法,迭代周期为700000 步。网络结构为ResNet100+SENet,最后一层特征维度改为128 维,数据集是经过清洗的版本,结果对比如表2所示。

表2 MegaFace 上不同模型的识别和验证结果,“Rank1”是指取最高置信度精度,“VR”指的是虚假接受率上的面部真实接受率

(2)训练学生网络

在做学生模型数据集时,需要用训练完成的教师模型提取LFW 数据集上每张对齐后的人脸图片的人脸特征,将人脸图片和对应的人脸特征一起做成TFRecord 数据集作为输入。训练时,网络模型采用小网 络:SequeezeNet、MobileNetV1、ShuffleNet、Mobile⁃NetV2、MobileFaceNet 五种网络做对比实验,记录模型的参数和模型的大小。采用深度特征蒸馏的方法改进损失函数,如式(5):

参数见式(4),T( x',w')是教师模型提取的人脸特征,S( x,w )是学生模型输出的对应人脸特征。令s=64,m=0.5,权重衰减参数为0.001,batch_size 为128,由于是小网络模型,学习率设为0.01,蒸馏强度系数α=1,训练到180000 步时模型拟合。为充分验证方法的有效性,做了三次对比实验。第一次直接用小网络模型来训练人脸数据集,第二次用深度特征蒸馏的算法实验,第三次采用深度特征蒸馏加嵌入SENet 网络结构的思想进行实验,实验结果见表3。

表3 LFW 上三种方法的人脸识别精度

(3)结果评测

如表3 所示,教师模型ArcFace 网络嵌入SENet结构时,在MegaFace 数据集上的Rank1@106和VR@FAR 10-6评测标准中,精度分别提升了0.74%和0.48%,模型大小经过TensorFlow 框架PB 之后的大小为16MB 和16.1MB,这说明了模型大小增加很小的情况下精度得到了一定的提升,验证了嵌入SENet 网络的有效性。

表3 的三组数据对比了深度特征蒸馏和嵌入SENet 网络的效果,128 维学生网络的识别精度通过深度特征蒸馏方法最好的精度达到99.28%,比直接使用学生模型精度高了6.23%,提升非常大,比教师模型的精度低了0.5%,但模型大小压缩了接近4 倍,充分验证了深度特征蒸馏的有效性。最后一组数据是深度特征蒸馏和嵌入SENet 方法,再一次验证了嵌入SENet网络结构有助于提高识别精度。

4 结语

本文提出了深度特征蒸馏方法和嵌入SENet 网络结构的方法,以大模型为教师网络,使用教师网络指导轻量级的学生网络训练,通过改进学生网络结构和损失函数,在接近教师网络模型识别精度的情况下,模型大小压缩近4 倍,取得非常好的效果。通过本文提出的算法最终训练生成的模型,能够嵌入到移动端设备中,满足特定场景下的人脸识别算法的需求。

猜你喜欢

人脸人脸识别精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
人脸识别 等
有特点的人脸
玻璃窗上的人脸
人脸识别的“国标”来了
人脸识别技术研究与应用进展概述
荣耀畅玩7C:人脸识别
“领家系”可爱脸VS“高冷系”美人脸
以工匠精神凸显“中国精度”