论文阅读笔记:Deep Face Recognition: A Survey
论文阅读笔记
1 介绍
人脸识别( Face Recognition,FR )是一种重要的生物特征识别技术,在军事、金融、公共安全和日常生活等领域有着广泛的应用。FR一直是CVPR界长期存在的研究课题。20世纪90年代初,随着历史特征脸方法的提出,FR研究开始流行。图1展示了基于特征的人脸识别在过去几年的里程碑,其中突出了四个主要技术流的时间。整体方法通过一定的分布假设得到人脸特征的低维表示,如线性子空间,流形,稀疏表示等。这一思想在20世纪90年代和21世纪初主导了人脸识别技术。然而,一个众所周知的问题是,这些理论无法处理不受控制的面部变化。在21世纪初,为了解决这个问题,产生了基于局部特征的人脸识别,通过局部滤波的一些不变特性实现了鲁棒性能。不幸的是,手工制作的特征缺乏独特性和紧凑性。在2010年早起,基于学习的局部描述符被引入到人脸识别中,其中局部滤波器被学习以获得更好的区分性,编码码本被学习以获得更好地紧凑性。然而,这些浅层表示对于复杂的非线性面部外观变化,仍然具有不可避免的鲁棒性限制。
一般来说,传统的方法试图通过一两层的表示来识别人脸,例如过滤响应,特征码的直方图或字典原子的分布,研究界对预处理、局部描述符和特征变换分别进行了大量的研究,但这些方法对人脸识别精度的提高缓慢。更糟糕的是,大多数方法只针对无约束面部变化的某一方面,如光照,姿势,表情或伪装。没有任何集成的技术来完整的解决这些无约束的挑战。因此,经过十多年的不懈努力,浅层方法仅将LFW基线的准确率提高到95%左右,这表明浅层方法不足以提取对现实世界变化具有不变性的稳定身份特征。由于这项技术的不足,在现实应用中,人脸识别系统通常性能不稳定或有无数误报的故障。
但这一些在2012年发生了变化,AlexNet使用一种名为深度学习的技术大幅度地赢得了ImageNet的竞争。深度学习方法,如卷积神经网络,使用多层处理单元的级联来进行特征提取和转换,他们学习对应于不同抽象层次的多个层次的表示。层次之间形成概念的层次结构,对人脸姿态、光照、表情变化表现出很强的不变性,如图2所示。从图中可以看出,深度神经网络的第一层与具有多年经验的人类科学家发现的Gabor特征有一定的相似性。第二层学习更复杂的纹理特征。第三层的特征较为复杂,一些简单的结构已经出现,如高鼻梁,大眼睛等。第四,网络输出足以解释某种面部属性,可以对一些明确的抽象概念如微笑、吼叫,甚至蓝眼睛等做出特殊的反应。综上所述,在深度卷积神经网络中,低层自动学习类似Gabor和SIFT设计多年甚至几十年的特征,高层进一步学习更高层次的抽象。最后,这些更高层次的抽象的结合代表了具有前所未有的稳定性和面孔身份。
2014年,DeepFace在著名的LFW基线上测试达到了SOTA精度,通过在400万上人脸图像上训练一个9层模型,首次接近人类在无约束条件下的表现(DeepFae 97.35% vs 人类 97.53%)。收到这项工作的启发,研究重点转向了基于深度学习的方法,并且在短短三年内,准备率大幅度提升至99.8%以上,深度学习技术在算法设计、训练、测试数据集、应用场景甚至评估等几乎所有方面重塑了研究图景。因此,回顾近年来的突破和快速发展历程具有重要意义。已经有一些关于人脸识别及其子领域的研究,他们主要总结和比较了一系列与特定FR场景相关的技术,如光照不变,姿态不变FR 。不幸的是,由于它们的出版日期较早,没有一个涵盖了目前最成功的深度学习方法。这项调查只关注识别问题,可以参考Ranjan等人对具有检测和对齐的全深度FR管道的简要回顾,或参考Jin等人对人脸对齐的调查。具体来说,这项调查的主要贡献是:
-
对深度FR的网络结构和损失函数的烟花进行了系统综述。各种损失函数氛围基于欧氏距离的损失,基于角度/余弦边距的损失和softmax损失及其变体。即涵盖了主流的网络架构,如Deepface,DeepID系列,VGGFace,FaceNet和VGGFace2等。也涵盖了其他为FR设计的框架。
-
本文将基于深度学习的新的人脸处理方法,分为“一对多增强”和“多对一归一化”两类,并讨论了新兴的生成对抗网络如何促进深度FR。
-
本文对公开数据集进行了比较和分析,这些数据库对模型训练和测试都至关重要。对LFW,IJB-A/B/C,Megaface,MSCeleb-1M等主要的FR基准从训练方法,评估任务与指标、识别场景4个方面进行了综述和比较,为深度FR的训练和测试提供了有益的参考。
-
除了主要数据集定义的通用任务,本文总结了十几个场景特定的数据集和深度学习仍然具有挑战性的解决方案,例如抗攻击,交叉姿态FR和跨年龄FR。通过回顾针对这些尚未解决的问题而专门设计的方法,作者试图揭示未来深度FR研究的重要问题,如对抗样本,算法/数据偏差、模型可解释性等。
2 总览
2.1 人脸识别组件
FR系统需要三个模块,如图3所示。首先,使用人脸检测器定位图像或视频中的人脸。其次,通过人脸特征点检测器,对人脸对齐到归一化坐标。第三,利用这些对其后的人脸图像实现FR模块。本文只关注FR模块。
在将人脸输入到FR模块之前,使用识别人脸是活体还是伪造人脸的反欺骗检测,可以避免不同类型的攻击。然后进行识别。如图3©所示,一个FR模块由人脸处理,深度特征提取和人脸匹配组成,可以描述如下:
其中 I i I_i Ii 和 I j I_j Ij 分别是两幅人脸图像。 P P P 表示面孔加工,在训练和测试之前处理个体内的变化,例如姿势,光照,表情和遮挡。 F F F 表示特征提取,对身份信息进行编码。该特征提取器在训练时通过损失函数进行学习,在测试时用于提取人脸的特征。 M M M 表示一种人脸匹配算法,用于计算特征的相似度分数,以确定人脸的特点身份。与物体分类不同,FR中测试身份通常与训练数据不相交,这使得学习到的分类器不能用于测试人脸。因此,人脸匹配算法是FR中必不可少的一部分。
2.1.1 人脸处理
尽管基于深度学习的方法已经得到了广泛的应用,但有论文实验证明了如姿势,光照,表情和遮挡等各种条件下,依然会影响深度FR的性能。因此,引入了人脸处理来解决这个问题。人脸处理方法分为“一对多增强”和“多对一归一化”,如表I所示。
-
一对多增强方法:这些方法从单张图像中生成许多姿态变化的块或图像以使深度网络能够学习姿态不变的表示。
-
多对一归一化方法:这些方法从非正面视角的一副或多幅图像中回复人脸的规范视图,然后FR可以像再受控条件下一样执行。
值得注意的是,由于姿态被广泛认为是自动FR应用中的主要挑战,而其他方法可以通过类似的方法来解决,因此本文主要针对姿态变化设计的深度人脸处理方法。
2.1.2 深度特征提取
网络结构方面如表II所示,深度网络结构可分为骨干网络和组装网络。受到ImageNet挑战上非凡成功的启发,典型的CNN架构,例如AlexNet,VGGNet,GoogleNet,ResNet和SENet被引入并广泛作为FR中的基线模型。除主流网络外,一些组合网络,如多任务网络和多输入网络,也被应用到FR中。研究表明,与单个网络相比,累积组装网络的结果可以提高性能。
损失函数方面如表III所示,Softmax损失是物体识别中常用的监督信号,它鼓励了特征的可分性。然而,softmax损失对于FR来说是不够有效的,因为在识别不同的人时,类内差异可能比类间差异还大,并且需要更具有区分性的特征。许多工作致力于创建新的损失函数,以使特征不仅更加可分,而且具有判别性。
2.1.3 基于深度特征的人脸对比
FR可以分为人脸验证和人脸识别。在这两个场景中,一组已知的受试者最初被纳入系统图库,在测试期间,一个新的受试者被呈现。在合适的损失函数的监督下,深度网络在海量数据上进行训练后,将每张测试图像通过网络得到深度特征表示,利用余弦距离或L2距离,人脸验证通过计算测试人脸和图库中所有人脸的一对一相似度来判断两幅图像是否为同一主体,而人脸识别通过计算一对多的相似度来判断测试人脸的身份。除此之外,还引入了其他方法对深度特征进行后处理,以便高效准确地进行人脸匹配,如度量学习、基于稀疏表示的分类器(SRC)等。
人脸验证就是回答“你是不是某人”的问题,例如手机人脸解锁功能,而人脸识别就是回答“你是谁”的问题,例如门禁。
综上,作者在图4中介绍了FR模块及常用的方法。
3 网络结构和损失函数
对于大多数应用来说,在训练阶段很难包含候选人脸,这使得FR成为了一个零样本的学习任务。幸运的是,由于所有的人脸都具有相似的形状和问题,因此从一小部分人脸中学习到的表示可以很好的概括其余的人脸。基于该理论,提高泛化性的直接方法是在训练集中包含尽可能多的ID。例如,Facebook和Google等互联网巨头已经报道了他们的深度FR系统由 1 0 6 10^6 106 ~ 1 0 7 10^7 107 个ID训练。
不幸的是,这些个人数据集,以及用于分布式模型训练的先决GPU集群都无法被学术界访问,目前用于学术研究的公开训练数据集只有
1
0
3
10^3
103 ~
1
0
5
10^5
105 个ID。相反,学术界致力于设计有效的损失函数,并采用有效的架构,利用相对于较小的训练集使深度特征更具判别性。例如表IV所示,在过去的四年中,大多数SOTA的LFW基线精度已经从97%提高到99.8%以上。在这一部分中,作者总结了对深度FR方法有显著改进的不同损失函数和网络结构的研究工作。
3.1 判别损失函数的演化
最初的Deepface和DeepID继承了AlexNet等对象分类网络,采用基于交叉熵的softmax损失进行特征学习。在此之后,人们意识到softmax损失本身不足以学习到具有判别性的特征,更多的研究者开始探索新的损失函数以增强泛化能力。这成为深度FR研究中的热门研究课题,如图5所示。在2017年之前,基于欧氏距离的损失发挥了重要作用;2017年,基于角度/余弦边距的损失以及特征和权重会议华变得流形。值得注意的是,尽管一些损失函数具有相似的基本思想,但新的损失函数通常是通过更简单的参数或样本选择来设计的,以方便训练过程。
3.1.1 基于欧式距离的损失
基于欧式距离的损失是一种度量学习方法,它将图像嵌入到欧式空间中,在欧式空间中,内插减少,互方差增大。对比损失和Triplet损失是最常用的损失函数。对比损失需要人脸图像对,然后拉拢正对并推开负对。
其中 y i j = 1 y_{ij}=1 yij=1 意味着 x i x_i xi 和 x j x_j xj 是匹配样本, y i j = 0 y_{ij}=0 yij=0 意味着他们是非匹配样本。 f ( ⋅ ) f(·) f(⋅)是特征嵌入, ϵ + \epsilon^+ ϵ+ 和 ϵ − \epsilon^- ϵ− 分别控制匹配和非匹配对的边界。DeepID2结合了人脸识别(softmax)和验证(Contrastive loss)监督信号来学习判别表示,并应用联合贝叶斯来获得鲁棒的嵌入空间。DeepID2+在DeepID2的基础上进行了扩展,增加了隐藏表示的维度,并在早起的卷积层中加入了监督。DeepID3进一步将VGGNet和GoogleNet引入其工作中。然而,对比损失存在的主要问题是margin参数难以选择。
与考虑匹配和非匹配对的绝对距离的对比损失不同,Triplet损失考虑匹配对和非匹配对之间距离的相对差异。随着Google提出的FaceNet,Triplet损失被引入到FR中。他需要人脸三元组,然后最小化锚点与同一身份的正样本之间的距离,最大化锚点与不同身份的负样本之间的距离。FaceNet使用硬三元组人脸使 ∣ ∣ f ( x i a ) − f ( x i p ) ∣ ∣ 2 2 + α < − ∣ ∣ f ( x i a ) − f ( x i n ) ) ∣ ∣ 2 2 ||f(x_i^a)-f(x_i^p)||^2_2 + \alpha <-||f(x_i^a)-f(x_i^n))||_2^2 ∣∣f(xia)−f(xip)∣∣22+α<−∣∣f(xia)−f(xin))∣∣22,其中 x i a x_i^a xia, x i p x_i^p xip 和 x i n x_i^n xin 分别表示锚点,正样本和负样本, α \alpha α 为间隔, f ( ⋅ ) f(·) f(⋅) 表示图像嵌入到特征空间的非线性变换。受到FaceNet的启发,TPE和TSE学习了一个线性投影 W W W 来构造Triplet损失。其他方法使用Triplet损失和softmax损失来优化深度模型。他们首先用softmax训练网络,然后用Triplet损失来对网络进行微调。
然而,对比损失和Triplet损失由于需要选取有效的训练样本,偶尔会遇到训练不稳定的情况,一些文献开始探索简单的替代方案。中心损失及其变体是减少类内方差的良好选择。中心损失为每个类学习一个中心,并惩罚深度特征与其对应的类中心之间的距离,这种损失可以定义如下:
其中 x i x_i xi 表示属于第 y i y_i yi 类的第 i i i 个特征, c y i c_{y_i} cyi 表示深度特征的第 y i y_i yi 类的中心。为了处理长尾数据,使用一个范围损失,它是中心损失的变体,用于最小化一个类别中 k k k 个最大范围的调和平均值,并最大化一个批次内的最短类间距离。
3.1.2 基于角度/余弦边距的损失
2017年,人们对深度FR中的损失函数有了更深入的认识,认为应该更加严格地对样本进行分离,避免对困难样本进行错误分类。基于角度/余弦边距的损失被提出,以使学习到的特征具有更大的角度/余弦距离的潜在可分性。softmax损失中的决策边界为 ( W 1 − W 2 ) x + b 1 − b 2 = 0 (W_1-W_2)x+b_1-b_2=0 (W1−W2)x+b1−b2=0,其中 x x x 为特征向量, W i W_i Wi 和 b i b_i bi 分别为softmax损失中的权重和偏置。
将原始的softmax损失重新定义为大间隔的softmax(L-Softmax)损失,并约束
b
1
=
b
2
=
0
b_1=b_2=0
b1=b2=0,于是,第1类和第2类的决策边界分别变为
∣
∣
x
∣
∣
(
∣
∣
W
1
∣
∣
c
o
s
(
m
θ
1
)
−
∣
∣
W
2
∣
∣
c
o
s
(
θ
2
)
)
=
0
||x||(||W_1||cos(m\theta_1)-||W_2||cos(\theta_2))=0
∣∣x∣∣(∣∣W1∣∣cos(mθ1)−∣∣W2∣∣cos(θ2))=0 和
∣
∣
x
∣
∣
(
∣
∣
W
1
∣
∣
∣
∣
W
2
∣
∣
c
o
s
(
θ
1
)
−
c
o
s
(
m
θ
2
)
)
=
0
||x||(||W_1||||W_2||cos(\theta_1)-cos(m\theta_2))=0
∣∣x∣∣(∣∣W1∣∣∣∣W2∣∣cos(θ1)−cos(mθ2))=0,其中
m
m
m 为引入的角度边距正整数,
θ
i
\theta_i
θi 为
W
i
W_i
Wi 和
x
x
x 的夹角。由于余弦函数的非单调性,在大边距损失中应用了分段函数来保证单调性,其损失函数定义如下:
考虑到L-Softmax很难收敛,因此将其与softmax损失想结合,以促进和保证收敛。因此,损失函数变为:
f
y
i
=
λ
∣
∣
W
y
i
∣
∣
∣
∣
x
i
∣
∣
c
o
s
(
θ
y
i
)
+
∣
∣
W
y
i
∣
∣
∣
∣
x
i
∣
∣
ϕ
(
θ
y
i
)
1
+
λ
f_{y_i}=\frac{\lambda||W_{y_i}||||x_i||cos(\theta_{y_i})+||W_{y_i}||||x_i||\phi(\theta_{y_i})}{1+\lambda}
fyi=1+λλ∣∣Wyi∣∣∣∣xi∣∣cos(θyi)+∣∣Wyi∣∣∣∣xi∣∣ϕ(θyi) ,其中
λ
\lambda
λ 为动态超参数。A-Softmax loss在L-Softmax的基础上,进一步通过L2范数对权重进行归一化,使得归一化后的向量位于一个超球体上,进而可以在具有角度间隔的超球体流形上学习判别性的人脸特征,如图6。
二分类情况下情况下的决策边界如表V所示。
然而,基于角度/余弦边距的损失容易收到噪声的影响,在高噪声区域变得比中心损失和softmax更差,如图7所示。
3.1.3 Softmax损失及其变种
2017年,除了将softmax损失改写成如上所述的于角度/余弦边距的损失外,还有一些工作尝试将损失函数中的特征和权重进行归一化处理,以提高模型性能:
其中 α \alpha α 是一个缩放参数, x x x 是学习到的特征向量, W W W 是最后一个全连接层的权重。之后,可以用归一化的特征和权重来执行损失函数,例如softmax。
一些文献首先对权重进行归一化,然后将角度/余弦边距加入到损失函数中,以使学习到的特征更具有判别性。
3.2 网络结构的演化
3.2.1 主干网络
常用的深度学习FR架构一直沿袭着分类的网络架构,并从AlexNet快速演变为SENet。本文在图8中按照时间顺序展示了最具影响力的分类和深度人脸识别架构。
2012年,AlexNet被报道在ImageNet大规模视觉识别竞赛2012中取得了SOTA识别准确率,大幅超越了之前的最佳结果。AlexNet由5个卷积层和3个全连接层组成,并集成了多种技术,如修正线性单元(ReLU),Dropout,数据增强等。然后2014年,VGGNet提出了一种标准的网络架构,并在整个过程中使用了非常小的3×3卷积滤波器,并在2×2池化后,将特征图的数量增加一倍。它将网络的深度增加到16-19个权重层,进一步增强了通过深层结构学习渐进非线性映射的灵活性,2015年,22层的GoogleNet引入了一个“Inception”模块与混合特征图的级联,以及两个额外的中间softmax监督信号。它并行地执行若干个具有不同感受野的卷积,并将他们的特征图拼接,以融合多分辨率信息。2016年,ResNet提出让层学习一个参考层输入的残差映射,而不是直接学习一个期望的底层映射,以缓解非常深的网络的训练。作为ILSVRC 2017的冠军,SENet引入了SE模块,通过显式地建模通道之间的相互依赖关系,自适应地重新校准通道特征响应。
随着架构的演化和先进的训练技术,如批次归一化,网络变得更深,训练变得更可控。在遵循这些分类架构的同时,深度FR中的网络也在逐步发展,深度FR的性能也在不断提高。本文在图9中展示了这些主流的深度FR架构。在2014年,DeepFace首次使用了具有几个局部连接层的九层CNN,通过3D对其进行人脸处理,在LFW上达到了97.35的准确率。在2015年,FaceNet使用了一个大型的私有数据集来训练一个GoogleNet。它采用了一种新颖的在线三元组挖掘方法生成的基于粗对齐匹配、非匹配人脸块三元组的Triplet损失,取得了99.63%的良好性能。同年,VGGface设计了一个从互联网上手机大规模数据集的方法,它在该数据集上训练VGGNet,然后通过类似于FaceNet的Triplet损失对网络进行微调。VGGface获得了98.95%的准确率。2017年,SphereFace使用了64层的ResNet架构,并提出了角度Softmax损失来学习具有角度边距的判别性人脸特征,在LFW上取得了99.42%的效果。在2017年底,一个新的大规模人脸数据集,即VGGface2被引入,该数据集包含了姿态,年龄,光照,种族和职业等方面的巨大差异。
3.2.1.1 轻量级网络
使用具有数百层和数百万个参数的更深层神经网络来达到更高的精度是有代价的,需要功能强大的GPU和更大的内存,这使得在移动设备和嵌入式设备上的应用变得不切实际。为了解决这个问题,轻量级网络被提出。Light CNN提出了最大特征映射(MFM)激活函数,将全连接中maxout的概念引入到CNN中。MFM获得了紧凑表示并降低了计算成本。后续提出了基于权重选择策略,从先前学习的稠密模型中迭代地稀疏化深度网络。MobiFace采用了快速下采样和带瓶颈残差块的扩展层,在LFW数据集上取得了99.7%的性能提升。虽然其他轻量级CNN,如SqueezeNet,MobileNet,ShuffleNet和Xception在FR中的应用仍不广泛, 但它们值得更多注意。
3.2.1.2 自适应架构网络
考虑到人工设计架构是一个耗时且容易出错的过程,性能良好的自适应架构网络越来越引起人们的兴趣。例如,每层执行的操作类型(池化,卷积等)与操作相关联的超参数(如滤波器数量,卷积层的核大小和步距长度等)相关联的超参数,根据训练和测试数据的具体要求而定。目前神经架构搜索(NAS)是很有前途的方法之一,它在一些任务上优于手工设计的架构,例如图像分类或语义分割。有研究将NAS技术集成到人脸识别中。他们使用强化学习算法来指导控制器网络训练最优的子架构。除了NAS,还有其他一些探索可以自适应地学习最优架构。例如,条件卷积神经网络(c-CNN)根据样本的模态动态地激活核函数。还有研究提出了一种新的对比卷积,他有一个主干CNN和一个核生成器组成,这得益于它基于被比较的人脸动态的生成对比核。
3.2.1.3 联合对齐识别网络
最近,一个端到端的系统被提出来联合训练FR和几个模块(人脸检测,对齐等)。相比于现有的方法一般根据不同的目标对每个模块分别进行优化,这种端到端的系统根据识别目标对每个模块进行优化,从而为识别模型提供更充足、更鲁棒的输入。例如,受空间转换器的启发,Hayat等人提出了一种基于CNN的数据驱动方法,该方法学习同时注册和表示人脸(图10 ),而Wu等人为CNN设计了一种新颖的递归空间转换器( ReST )模块,允许人脸对齐和识别进行联合优化。
3.2.2 集成网络
3.2.2.1 多输入网络
在"一对多增强"中,为了增强训练数据,从一幅图像中生成多幅具有多样性的图像。将这些多幅图像作为输入,多个网络也被组合在一起,以提取和组合不同类型输入的特征,这可以优于单个网络。通过裁剪不同的人脸块来构建组合网络,然后将不同类型的块输入到不同的子网络中进行表示提取。通过合并子网络的结果,可以提高性能。其他论文使用组合网络来识别不同位姿的图像。例如,Masi等人将姿势调整到正面( 0 ° ),半侧面( 40 ° )和全轮廓法视角( 75 ° ),然后通过组合姿势网络来解决姿势变化。多视图深度网络( Multi-View Deep Network,MvDN ) 由特定视图子网络和公共子网络组成;前者去除视图特定的变化,后者获得共同的表示。
3.2.2.2 多任务网络
FR与姿势、光照、年龄等多种因素交织在一起。为了解决这个问题,引入多任务学习,从其他相关任务中迁移知识,并解耦干扰因素。在多任务网络中,身份分类是主要任务,辅助任务包括姿态、光照和表情估计等。低层在所有任务之间共享,高层被解耦到不同的子网络中,以产生特定任务的输出。任务特定的子网络被分支出来学习人脸检测,人脸对齐,姿态估计,性别识别,微笑检测,年龄估计和FR。Yin等人提出为每个边任务自动分配动态损失权重。Peng等人使用特征重构度量学习将CNN解耦成子网络,用于联合学习身份和非身份特征,如图11所示。
3.3 通过深度特征来人脸匹配
在测试过程中,通常使用余弦距离和L2距离来衡量深度特征x1和x2之间的相似性;然后,使用阈值比较和最近邻( NN )分类器进行决策,以进行验证和识别。除了这些常见的方法,还有一些其他的探索。
3.3.1 人脸验证
度量学习也可用于基于提取的深度特征的人脸匹配,其目的是寻找一种新的度量使两类更加可分。JB 模型是一种著名的度量学习方法,Hu等人证明了它可以大大提高性能。在JB模型中,一个人脸特征
x
x
x 被建模为
x
=
μ
+
ε
x = μ + ε
x=μ+ε,其中
μ
μ
μ 和
ε
ε
ε 分别是身份和个体内变化。相似度得分
r
(
x
1
,
x
2
)
r( x1 , x2)
r(x1,x2) 可以表示如下:
其中, P ( x 1 , x 2 ∣ H I ) P(x_1, x_2 | H_I) P(x1,x2∣HI)为两张面孔属于同一身份的概率, P ( x 1 , x 2 ∣ H E ) P(x_1, x_2|H_E) P(x1,x2∣HE) 为两张面孔属于不同身份的概率。
3.3.2 人脸识别
在计算余弦距离后,Cheng等人提出了一种在相似度分数水平上的启发式投票策略来组合多个CNN模型的结果,并在MSceleb - 1M 2017的Challenge 2中获得了第一名。Yang等人从人脸图像的局部区域提取局部自适应卷积特征,并使用扩展的SRC进行单样本人脸识别。Guo等人结合深度特征和SVM分类器进行识别。Wang等人首先使用乘积量化( Product Quantization,PQ )直接检索topk最相似的人脸,并通过结合深度特征和COTS匹配器对这些人脸进行重排序。此外,当训练集和测试集身份重合时,也可以使用Softmax进行人脸匹配。例如,在MS - celeb - 1M的挑战赛2中,Ding等人训练了一个21000类的softmax分类器,通过条件GAN增强特征后直接识别单样本类和正常类的人脸;Guo等人结合欠表示类提升( UP )损失项训练了softmax分类器,以增强在单样本类别上的性能。
当训练数据分布和测试数据分布相同时,上述人脸匹配方法是有效的。然而,两个数据域之间总是存在分布变化或域偏移,这会降低对测试数据的性能。迁移学习最近被引入到深度FR中来解决域迁移问题。它使用一个标记的源域(训练数据)和一个未标记的目标域(测试数据)来学习可迁移的特征,从而减少领域差异,并且在源域上训练的模型也将在目标域上表现良好。有时,这种技术被应用到人脸匹配中。例如,克罗斯怀特等人和Xiong等人通过将CNN特征与模板特定的线性SVM相结合,对模板中的媒体集合进行模板自适应。但是大多数时候,仅仅在人脸匹配阶段进行迁移学习是不够的。迁移学习应该嵌入到深度模型中,以学习到更多可迁移的表示。Kan等人提出了一种双迁移自编码网络( BAE ),用于跨视角、种族和成像传感器的域适应;而Luo等人利用多核最大均值差异( MMD )来减少域差异。Sohn等人使用对抗学习将知识从静态图像FR迁移到视频FR。此外,使用目标训练数据集从预学习的模型中微调CNN参数是迁移学习的一种特殊类型,并且通常被许多方法所使用。
4 用于训练和识别的人脸处理
按照时间顺序展示了面孔加工方法的发展,如图12所示。从图中可以看出,在2014和2015年大多数论文都试图通过autoencoder进行面孔处理。而3D模型在2016年发挥了重要作用。GAN自古德费洛等人首次提出以来,引起了深度学习和计算机视觉界的广泛关注。它可以用于不同的领域,并于2017年被引入到人脸处理中。GAN可以进行"一对多增强"和"多对一归一化",突破了人脸合成需要在监督方式下进行的限制。虽然GAN还没有被广泛应用于人脸处理中进行训练和识别,但其在预处理方面具有很大的潜力,如双Agent GANs ( DA-GAN )在NIST IJB - A 2017 FR竞赛中获得了第1名的验证和识别轨迹。
4.1 一对多增广
收集一个庞大的数据库是极其昂贵和耗时的。"一对多增广"的方法可以缓解数据收集的挑战,它们不仅可以用来增广训练数据,还可以用来增广测试数据集。我们将它们分为四类:数据增广、3D模型、自编码器模型和GAN模型。
4.1.1 数据增广
常见的数据增强方法包括光度变换和几何变换,例如对图像进行过采样(在不同尺度下裁剪得到的多个斑块),镜像和旋转。最近,数据增强在深度FR算法中得到了广泛的应用。例如,Sun等人裁剪了400个在位置、尺度和颜色通道上变化的人脸块并镜像。Liu等人在人脸区域上生成了7个以不同特征点为中心的重叠图像块,并用7个结构相同的CNN进行训练。
4.1.2 3D模型
三维人脸重建也是丰富训练数据多样性的一种方式。它们利用3D结构信息来建模姿态之间的转换。三维模型首先利用三维人脸数据获得可变形的位移场,然后应用这些位移场获得不同姿态角下的二维人脸数据。关于这个领域有大量的论文,但我们只关注使用深度方法或用于深度FR的3D人脸重建。Masi等人生成了具有新的类内面部外观变化的人脸图像,包括姿态,形状和表情,然后用真实和增强数据训练了一个19层的VGGNet。Masi等人使用通用的3D人脸和渲染固定视图来减少大量的计算工作量。Richardson等人使用了一个迭代的3D CNN,通过使用第二个输入通道将前一个网络的输出表示为图像,以重建3D人脸,如图13所示。Dou等人使用多任务CNN将3D人脸重建分为中性3D重建和表情3D重建。Tran等人通过一个很深的CNN结构直接从输入照片回归3D可变形人脸模型( 3DMM )参数。An等人使用3DMM方法合成了具有各种姿态和表情的人脸图像,然后借助MMD缩小了合成数据与真实数据之间的差距。
4.1.3 自编码器模型
自编码器模型可以直接生成2D目标图像,而不是从2D图像中重建3D模型并将其投影回不同姿态的2D图像。以人脸图像和编码目标姿态的姿态码作为输入,编码器首先学习姿态不变的人脸表示,然后解码器利用姿态不变的表示和姿态码生成在目标姿态下观看的具有相同身份的人脸图像。例如,给定目标姿态编码,多视角感知器( MVP ) 训练一些确定的隐层神经元来学习姿态不变的人脸表示,同时训练一些随机的隐层神经元来捕获姿态特征,然后解码器通过结合姿态不变的表示和姿态特征来生成目标图像。 如图14所示,Yim等人和Qian等人引入了一个辅助CNN,以生成在目标姿态下观看的更好的图像。首先,一个自动编码器生成期望的姿态图像,然后辅助CNN从生成的目标图像中重建原始输入图像,这保证了生成的图像是保身份的。编码器和解码器之间嵌入了两组单元。标识单元保持不变,通过在每个时间步对位姿单元采取行动实现图像的旋转。
4.1.4 GAN模型
在GAN模型中,生成器的目的是通过生成与真实图像相似的图像来欺骗判别器,而判别器的目的是将生成的样本与真实样本进行区分。通过生成器和判别器之间的minimax博弈,GAN可以成功地生成不同姿态的照片级真实感图像。在使用3D模型生成侧面人脸图像后,DA - GAN通过一个GAN对图像进行优化,该GAN结合了数据分布的先验知识和人脸(姿势与身份感知损失)的知识。 CVAE-GAN将变分自编码器与GAN相结合进行数据增强,同时利用统计和成对特征匹配的优势,使训练过程收敛更快、更稳定。除了从噪音中合成多样化的面孔之外,一些论文还探索通过交换不同人的身份和变化来解开身份和变化的纠缠,合成新的面孔。在CG - GAN中,生成器直接将输入图像的每个表示分解为一个变化码和一个身份码,并将这些码重新组合以交叉生成,同时判别器确保生成图像的真实性。Bao等人提取了一幅输入图像的身份表示和任意一幅输入人脸图像的属性表示。这项工作在生成具有真实感和身份保持的人脸图像方面表现出卓越的性能,即使对于训练数据集之外的身份也是如此。与以前的方法将分类器视为旁观者不同,FaceID-GAN提出了一个三人GAN,其中分类器与判别器合作,分别从面部身份和图像质量两个不同的方面与生成器竞争。
4.2 多对一归一化
与"一对多增广"不同,"多对一归一化"方法产生正面面孔,减少测试数据的外观变异性,使面孔更容易对齐和比较。它可以分为自动编码器模型、CNN模型和GAN模型。
4.2.1 自编码器模型
自编码器也可以应用于"多对一归一化"。与"一对多增广"中的自动编码器模型借助姿态码生成期望的姿态图像不同,这里的自动编码器模型通过编码器学习姿态不变的人脸表示,并通过解码器直接归一化人脸而不需要姿态码。Zhu et al 根据人脸图像的对称性和清晰度选择标准视角图像,然后采用自动编码器通过最小化重建损失误差来恢复正面视角图像。提出的堆叠渐进自编码器( SPAE ) 通过多个自编码器的堆叠,将非正面人脸逐步映射到正面人脸。SPAE的每个浅层自编码器被设计用于将大姿态下的输入人脸图像转换为小姿态下的虚拟视图,因此姿态变化沿着姿态流形逐层缩小。Zhang等人通过使用多个随机人脸作为多个编码器的目标值,构建了一个稀疏的多对一编码器来增强姿态无关特征的判别性。
4.2.2 CNN模型
CNN模型通常直接学习非正面人脸图像和正面图像之间的2D映射,并利用这些映射在像素空间中对图像进行归一化。归一化图像中的像素要么是直接的像素,要么是非正面图像中像素的组合。在LDF - Net中,位移场网络学习两个像素的平移关系,平移层将输入的非正面人脸图像转换为具有该位移场的正面人脸图像。在如图15所示的GridFace中,纠偏网络首先根据计算得到的单应矩阵,通过将原始图像中的像素向正则表达式转换,对图像进行归一化处理,然后利用隐式正则表达式先验对归一化输出进行正则化,最后,以归一化后的人脸作为输入,识别网络通过度量学习来学习判别性的人脸表示。
4.2.3 GAN模型
Huang等人提出了一个双通道生成对抗网络(双通道generative adversarial network,TP-GAN ),该网络包含四个路标定位的patch网络和一个全局编码器-解码器网络。通过结合对抗损失、对称损失和身份保持损失,TP - GAN生成正面视图,同时保留全局结构和局部细节,如图16所示。在解耦的表示学习生成对抗网络( Deentangled Representation Learning Generative Adversarial Network,DR-GAN )中,生成器作为人脸旋转器,其中编码器产生身份表示,解码器使用该表示和姿态编码在指定姿态合成人脸。并且训练鉴别器不仅可以区分真实图像和合成图像,还可以预测人脸的身份和姿态。Yin等人将3DMM融入到GAN结构中,以提供形状和外观先验来引导生成器向正面化。