1.摘要:
首先,我们总结了在deep-fr方法快速发展过程中提出的不同的网络结构和损失函数。其次,将相关的人脸处理方法分为“一对多增强”和“多对一规范化”两类。然后,我们总结和比较了模型训练和评估中常用的数据库。第三,我们回顾了深层fr中的各种场景,如交叉因子、异质性、多元素和行业场景。最后,重点介绍了当前生物特征识别方法面临的技术挑战以及生物特征识别在安全性、融合性和保密性等方面的发展方向。
2.引言
发展方向:
1990年代初期 fr开始流行,模板匹配 随着历史特征面方法的开始
1990年代和2000年代 通过某种分布假设去直接获取低维度的表征,子空间算法( PCA( 线性降维技术)、LDA( 线性降维技术) 、 流形学习( 非线性降维)、 核(kernel)技术( 非线性降维))
无法解决与先前假设不符的不受控制的面部变化
2000年代初 人工特征+分类器 (HOG、SIFT、Gabor、LBP)+ 传统机器学习算法)
手工设置的特征缺少独特性和紧凑性
2010年代初 基于学习的局部描述子方法,学习了本地过滤器以提高识别性,并学习编码码本以提高紧凑性
对复杂的非线性面部外观变化的鲁棒性的不可避免的限制
传统方法提升缓慢,大多数方法仅旨在解决面部表情不受约束的一个方面,例如光照,姿势,表情或伪装。没有任何集成技术可以整体解决这些无限制的挑战。结果,经过十多年的不断努力,“浅层”方法只能将LFW基准的准确性提高到约95%。
2012年 深层学习方法,使用多个处理单元的分层进行特征提取和转换。它们学到的多层表征可以对应不同层级的抽取。这些层级构成了概念的层次结构,显示了在复杂数据集上的超越特征不变性
前期:模型结构、输入数据优化
后期:集中在损失函数修改上
2014年 DeepFace在著名的LFW基准上达到了最先进的准确性,首次在不受约束的条件下接近了人类的表现(DeepFace:97.35%,而人类:97.53%)。并且在短短三年内,其准确性就大大提高到了99.80%以上.
本文组织架构如下:
• 第二部分,介绍了一些背景概念和术语,然后简短的介绍了FR每个组件;
• 第三部分,介绍了不同的网络结构和损失函数;
• 第四部分,总结了人脸处理的一些算法;
• 第五部分,介绍了一些数据集和评估方法
• 第六部分, 介绍了在不同场景下的一些深度FR方法。
• 第七部分,总结和展望。
3 概述
3.1 背景知识
整个系统需要三个模块:
a. 人脸检测(face_detect)用于在图像或视频中定位人脸
b. 使用面部坐标检测器,将面部与标准化的规范坐标对齐
c. 利用这些对齐的人脸图像实现FR模块(重点)
FR模块分为人脸验证和人脸识别两类,不论是哪种,都需要提供训练集(gallery)和测试集(probe)。
人脸验证是验证两人是不是同一人(1:1)
人脸识别是检测目标人的身份(1:N)
当测试的人脸出现在训练集中,该问题叫做闭集识别(closed-set identification)
当测试的人脸不在训练集中,该问题叫开集识别(open-set identification)
3.2 人脸识别的组成
在人脸图片输入到FR模块之前,还需要进行人脸反欺骗(即活体检测,用来识别当前的人脸是活的还是一张相片),从而避免一部分的攻击。然后就可以进行人脸识别了。一个FR模块包含人脸处理,深度特征提取,人脸匹配。其可以描述成:
M[F(Pi(Ii)),F(Pj(Ij))]
ii和ij分别是两个人脸图像;p表示用于处理个人内部变化(例如姿势、照明、表达式和遮挡)的人脸处理;f表示用于编码身份信息的特征提取;m表示用于计算相似度得分的人脸匹配算法。
1) 人脸处理
尽管基于深度学习的方法由于其强大的表示能力而被广泛使用,但姿势,照明,表情和遮挡等各种条件仍然会影响深度FR的性能,并且面部处理是有必要的。由于在自动FR应用中,将姿态变化广泛视为主要挑战,因此我们主要对姿态进行总结。 其他变化可以通过类似的方法解决。面部处理方法分为“一对多增强”和“多对一规范化”
人脸处理分为两类:
“一对多增强”:从单个图像生成多个姿态变化的补丁或图像,使深层网络能够学习姿态不变表示。
“多对一规范化”:从非正面视图的一个或多个图像中恢复面部图像的标准视图;然后,可以像在受控条件下一样执行fr。
2) 深度特征提取
网络架构
可以将体系结构分为骨干网和组合网络,典型的CNN架构,例如AlexNet,VGGNet,GoogleNet,ResNet和SENet引入并广泛用作FR(直接或略微修改)的基线模型。除了主流之外,还有一些新颖的体系结构为FR设计,以提高效率。
损失函数
softmax损失通常用作对象识别中的监督信号,并鼓励特征的可分离性。 但是,对于FR:
• 类间(inter)差别不大,因为大家脸都长得差不多;
• 类内(intra)差别很大,同一个人在不同的姿态,光照,表情,年龄,和遮挡下有着十分巨大的变化。
当类内差别可能大于类间差别时,softmax损失对于FR并不足够有效。许多工作着重于创建新颖的损失函数,以使特征不仅更可分离而且具有区分性:
a.基于欧氏距离的损失:基于欧氏距离压缩类内方差并扩大类间方差
b.基于角度/余弦边际的损失:学习角度相似性方面的区分性面部特征,从而导致学习的特征之间可能存在更大的角度/余弦可分离性。
c. softmax损失及其变化:直接使用softmax损失或对其进行修改以提高性能,例如对特征或权重进行L2归一化以及噪声注入。
3) 基于深度特征的人脸匹配
用大量数据和适当的损失函数训练深度网络后,每个测试图像都将通过网络传递以获得深度特征表示。一旦提取了较深的特征,大多数方法便会使用余弦距离或L2距离直接计算两个特征之间的相似度。然后通过最近邻或者阈值比较的方式去完成人脸识别和验证的任务。
4.网络结构与训练损失函数
具有明显改进的深层FR方法的不同损耗函数和网络体系结构
4.1判别性损失函数的演变
从目标分类网络发展至今,最开始的FR网络如Deepface和DeepID[都是采用基于softmax loss的交叉时进行特征学习的。然后人们发现softmax不足以去学习有大边际的特征,所以更多的研究者开始利用判别性损失函数去增强泛化能力。这也变成了深度FR研究中最火热的研究点,在2017年之前,基于欧式距离的损失函数占据主流;在2017年,角/余弦边际的损失函数,特征与权重归一化这两个开始流行。虽然许多损失函数的基本思想差不多,不过最新的损失函数都是设计成采用更容易的参数或者采样方法去方便训练。
基于欧式距离的loss
欧式距离loss是一种度量学习[171,185],即通过将图片嵌入到欧式空间中,完成压缩类内方差扩大类间方差的目的
基于角/余弦边际的loss
softmax及其变种
4.2网络结构的演变
骨干网络:
特殊结构:
4.3 用深度特征进行人脸匹配
在测试中,余弦距离和L2距离通常是用来对两个深度特征x1x1,x2x2进行测量他们的相似度的。然后通过阈值对比或者最近邻分类器去做人脸验证和识别的任务。除了这两个常用的方法,还有一些其他方法。
人脸验证
人脸识别
略
5 训练和识别中的人脸处理
5.1 one-to-many的增强
数据增强:
常见的数据增强方法包括光度变换和几何变换,如过采样(通过不同尺度裁剪获得的多个块),镜像,以及旋转。
3D模型:
CNN模型:
判别性的隐藏层神经元可以学习ID特征,而随机隐藏神经元可以去抓取视角特征。通过采样不同的随机神经元,不同姿态的人脸图片都是合成的。
GAN模型:
在使用一个3D模型生成侧面图像,DA-GAN可以通过GAN提炼该图像,该GAN结合了数据分布和人脸知识(姿态和ID认知loss)的先验。
5.2 many-to-one的归一化
该方法是生成正脸,并减少测试数据的变化性,从而让人脸能够容易做对齐和验证
SAE,CNN和GAN三种
6 人脸数据集和评估方案
6.1 大规模通用训练数据集
CASIA-WebFace首次提供了一个超大数据集,其中包含1w个名人,50十万张图片。其数据量和ID不够多,还是无法推进更多更好的深度学习方法
VGGFace2的是基于深度的大规模训练集,其限制了ID的个数扩展了每个ID的图片个数。数据集的深度增强了模型处理较大类内变化的能力,例如光照,姿态和年龄
MS-Celeb-1M和Megeface(挑战2)提供了基于广度的大规模训练集,其中包含了很多iD,不过限制了每个ID的图片个数。数据集的广度增强了模型处理类间变化的能力。
6.2 训练方案
目标依赖(subject-dependent):所有的测试ID都出现在训练集中,所以该情况的问题可以看成是一个分类问题,其中特征都期望是可分的
目标独立(subject-independent):测试ID通常不出现在训练集中。因为无法将人脸分类给训练集,所以目标独立的表征是有必要的。
6.3 评估任务和性能指标
在测试任务中,人脸识别模型的性能会基于人脸验证,闭集人脸识别,开集人脸识别上评估