0 引 言
在过去的几十年中,人脸识别(face recognition,FR)一直是计算机视觉和生物统计学领域活跃的研究主题。通过人脸识别进行身份确认的应用越来越多,如社区出入管理、人脸门禁考勤、车站人脸闸机等场合都离不开人脸识别技术。虽然在这期间FR技术已经取得了显著进展,但是在实际的人脸识别情景中仍然存在许多难以克服的困难,例如,光照影响、表情变化、姿态变化和遮挡等,甚至会出现多种情况并存的情况,给人脸识别任务带来诸多挑战。
在新型冠状病毒肺炎(corona virus disease 2019,COVID-19)疫情期间,中国几乎人人戴口罩,口罩让作为重要身份验证手段的人脸识别技术基本失效。所以如何消除部分面部遮挡对人脸识别产生的影响,是亟待解决的问题。
在现实情况中,遮挡的类型具有多样性,包括:光照遮挡、物体遮挡、姿态变化引起的遮挡和混合遮挡等。近年来国内外研究者对有遮挡的人脸识别技术进行了大量研究,提出了许多有效的方法。传统方法主要包括稀疏表示法、对遮挡字典的处理方法和对遮挡的误差编码方法。现代的研究方法主要包括基于深度学习的方法、基于深度学习与传统算法相结合的方法和基于3D的方法。传统方法主要利用遮挡的结构特征和人脸图像的全局结构特征对遮挡区域进行表示、限制或消除,进而减少遮挡对人脸识别的影响,提高部分遮挡人脸识别算法的精度和性能。现代的研究方法主要利用深度学习中卷积神经网络强大的特征提取的能力,提取深层特征以更好地表示数据的抽象语义信息。如DeepID2
[1]的提出,为传统的人脸识别算法提供了便利。进一步,研究者们在网络结构的改进、损失函数的构造和自适应性方面进行了大量研究工作。3D方法利用人脸3D几何信息对人脸进行描述或将深度学习运用在3D数据上,在三维空间中对遮挡进行检测、定位和分类,为二维图像的遮挡人脸识别任务提供了新思路。
本文阐述了传统的遮挡人脸识别方法,对基于深度学习的方法、基于深度学习与传统算法结合的方法和基于3D的方法进行了回顾,指出现阶段遮挡人脸识别存在的问题和未来的研究方向。
1 传统方法
1.1 稀疏表示法
稀疏表示最早是一种用在信号处理领域的统计方法,方法的初衷是对信号进行表示和压缩。在基本向量的所有子集中,选择最紧凑的子集表示输入信号,并且拒绝所有其他可能但不紧凑的子集。当时人们认为只要最佳的表示足够稀疏,就可以对稀疏表示进行计算,从而得到更低的信号采样率。
稀疏表示的主要思想是将高维图像在低维空间中进行表示,为遮挡区域建立独立的子空间,用已有的字典原子来表示遮挡,进而对遮挡人脸图像进行识别。稀疏表示分类是通过使用范数回归求出遮挡人脸图像在字典上的稀疏表示系数,然后使用稀疏表示系数对遮挡人脸图像进行重新构建,从而提高遮挡人脸识别的性能。
在基于稀疏表示的分类过程中,有两个阶段:编码和分类。首先,在具有稀疏性约束的原子字典上对图像进行编码,然后根据编码系数和原子预先定义用于稀疏编码的字典进行分类。例如,Wright等
[2]将稀疏表示用于部分遮挡人脸识别,提出了基于稀疏表示的人脸识别算法SRC(sparse representation classification)。其基本思想是:直接使用所有类别的训练样本作为字典对人脸图像进行编码,并通过评估哪个类别导致最小的重构误差来对人脸图像进行分类。He等
[3]提出了一种基于最大熵准则的稀疏表示算法,此算法可以有效地应对非高斯误差和离群值,采用熵的方法对与测试样本属于同一类的每个像素进行处理。如果测试样本中存在遮挡,则对应的像素对熵的贡献就较小,反之,则贡献较大。降低了遮挡对像素的影响,有利于提升识别效果。在SRC的基础之上,Deng等
[4]提出了一种扩展SRC(extended SRC,ESRC),其基本思想是同一个人的类内变异可以被其他人共享。即一个人带有遮挡的面部测试图像可以通过此人的面部训练图像加上另一个人的变异图像而近似得到,进而构建类内变异字典以表示训练图像和测试图像之间可能存在的变异。此方法的优点是即使在训练图像很少的情况下,也可以达到很高的识别精度。Huang等
[5]发现经典的SRC具有无法合并标签信息的缺点,所以他们提出了一种利用标签信息对图像进行有效分类的稀疏编码方法,使投影矩阵在每次迭代中都包含标签信息。在将稀疏表示应用到多视图的人脸识别研究中,Zhang等
[6]认为虽然大多数的工作都集中在提取多视图之间的共享信息以提高识别精度,但是,一方面,由于SRC无法利用查询图像的共享稀疏模式,因此它将忽略查询图像中较大姿势变化的影响;另一方面,虽然联合稀疏表示(joint sparse representation-based classification,JSRC)可以共享查询图像之间的信息,但是很容易受到姿势变化的影响,导致识别效果不佳。为了克服以上缺点,他们提出了一种混合稀疏表示分类的多视图人脸识别方法(mixed norm sparse representation classification, MSRC),此方法结合了SRC和JSRC表示的优点,在SRC的
范数和JSRC的
范数之间进行了折中,利用查询图像中不同图像之间的相关性,实现了准确的稀疏表示。Zheng等
[7]将自适应学习的权重整合到GSRC(group sparse representation classifier)中,形成了自适应权重学习的GSRC分类器IRGSRC(iterative reconstrained group sparse representation classifier)。该分类器采用加权特征和组来编码更多的结构信息和判别信息,首先通过结合特征权重学习和距离权重学习得到一个目标函数,有效地去除异常值样本和异常值特征,然后通过引入正则化项来平滑目标函数以获得最佳的表示系数。这样将自适应学习的权重无缝整合到GSRC框架中,使混合类型遮挡人脸识别的鲁棒性得到大幅提升。
稀疏表示法也适用于连续遮挡的人脸识别问题中。在核规范的误差矩阵回归(nuclear norm based matrix regression, NMR )
[8]方法的基础上,Chen等
[9]提出了一种基于稀疏正则核规范的矩阵回归算法(sparse regularized NMR, SR⁃NMR)。NMR的基本思想是认为测试样本的误差图像由于遮挡的连续性会产生具有低秩结构的信息,并采用
范数对重构系数进行约束。由于观察到对于重构误差的约束问题,
范数相比于
范数可以发现更多的稀疏表示,SR⁃NMR算法采用
范数作为约束,将NMR和基于
范数约束的稀疏表示集成到一个联合框架中,最终使用训练样本来学习线性分类器,以实现有效分类。此算法的优点是使稀疏表示应用在秩更低的误差图像而不是原始的重构误差图像中,从而使识别性能得到大幅提高。
随着稀疏表示法在遮挡人脸识别领域中的应用越来越广泛,研究者们对提高其鲁棒性的工作也相应展开。虽然SRC已经很好地应用在部分遮挡人脸识别的研究中,但是它有一个重要的假设:遮挡区域与非遮挡区域之间的误差服从高斯分布。在实际环境中,这个假设是不能适用的。另外,计算稀疏表示采用的方法是使范数最小化,此方法计算成本巨大,在实际应用中耗时太长,时间成本太高。
稀疏表示法可以将高维图像在低维空间中进行表示,对训练样本中的图像进行稀疏重构,提高了部分遮挡的人脸识别性能。但是其仍有不足之处:1) 由于原始训练图像中有较多的不确定信息,使遮挡字典不足以表示原始遮挡图像,导致遮挡字典的规模过大,造成稀疏表示的求解复杂度大幅增加;2) 将原始样本用作字典无法充分利用隐藏在训练样本中的区分信息,导致遮挡字典的判别性大大降低;3) 忽略了遮挡误差往往具有一定的空间结构等。所以在对遮挡字典的处理和遮挡误差编码方面还需要进行更多的探索。
1.2 对遮挡字典的处理方法
对遮挡字典的处理主要是通过在原始训练样本中学习得到一组新的字典,然后使用新字典来表示原始的训练样本,进而对图像进行分类。对遮挡字典进行处理的过程中有两个问题需要解决:第一,遮挡字典仅由训练样本组成,样本数量不足,因而导致其判别性不强;第二,遮挡类型存在多样性,可能会出现遮挡字典在有限的工作集上处理多个变量的情况,这样就需要扩大字典的规模,计算量大大增加。
在提高遮挡字典判别性的研究方面,Yang等
[10]在SRC的基础之上提出了一种基于Fisher判别准则学习的字典。为每个类别学习一个字典,得到表示每个类别的遮挡字典,采用Fisher准则使每个字典的稀疏编码系数具有较小的类内散布而具有较大的类间散布,这样每个字典对本类样本表达能力强而对非本类样本表达能力弱。其优点是字典原子与类标签具有对应关系,便于将与每个类稀疏编码后的重构误差用于分类。Jiang等
[11]直接使用稀疏编码系数表示人脸特征,引入一种新的标签一致性约束“区分稀疏编码误差”,将其与重构误差和分类误差相结合,形成了统一的目标函数,即将类标信息及线性分类函数一起加入字典学习框架,并使用K-SVD(K-singular value decomposition)
[12]算法对其进行优化,有效提高了遮挡字典的判别性。Ou等
[13]提出了一种鲁棒的判别性非负字典学习方法。该方法为了增强字典的判别性,采用类均值正则化使来自同一类样本的低维表示尽可能近,并通过
范数选择判别特征。
对于遮挡字典规模过大的问题,进行压缩就显得格外重要。Wei等
[14]充分利用遮挡空间的连续性与局部性,提出了一种具有簇结构的压缩字典。把遮挡图像看作是重构图像和遮挡误差之和,通过使用最小化
范数和
范数对重构系数和重构误差进行约束,进而对它们同时进行聚类,该聚类仅涉及最大可能类别中的训练图像来表示测试图像,所以聚类数是非常少的。但是这种字典仍然存在缺点,如果人脸图像中的遮挡区域仅仅占据人脸很小的一部分,那么因为这种簇遮挡字典中的每个原子所包含簇的大小是固定的,所以此遮挡字典不利于表示图像中尺度更小的遮挡信息。Yang等
[15]提出了一种基于Gabor遮挡字典的人脸识别方法。使用Gabor特征不仅增强了人脸表征的识别能力,而且能够计算出更加紧凑的遮挡字典,减少了遮挡字典的原子。此外,此方法使用
范数替代
范数以规范编码,大大降低了编码遮挡人脸图像的计算成本。
为了同时解决遮挡字典判别性不强和规模过大,Du等
[16]提出了一种基于核范数的适应性遮挡字典学习方法(nuclear norm based adapted occlusion dictionary learning,NNAODL)。一方面,该方法基于核范数约束,通过误差图像模型获得遮挡信息,并将误差图像添加到训练图像中以获得自适应重构字典,减小遮挡字典的尺寸,提高了计算效率;另一方面,该方法使用二维结构来表示目标函数中的图像特征,在像素之间保留更多的结构信息以供使用。将样本之间结构关系的约束条件组合成组稀疏表示,将较小的表示系数分配给与测试图像有较大距离的样本,提高了判别性。
1.3 对遮挡的误差编码方法
人脸识别任务中往往会有许多不确定因素引发的误差,与其他误差不同,由遮挡引发的误差具有一定的空间结构。所以在对遮挡误差进行编码时,通常需要考虑遮挡误差的空间连续性,尽可能地缩小遮挡误差,达到对遮挡的抑制甚至消除。
Zhou等
[17]提出了基于Markov随机场的稀疏误差校正算法,此算法使用Markov随机场来描述遮挡的空间连续性,原理为:如果当前像素点为遮挡点,那么此像素点只与其邻域像素点的状态有关,与距离较远的像素点的状态无关。该算法将Markov随机场模型整合到训练图像和测试图像的稀疏表示计算中,识别出被遮挡的区域,并将它们从稀疏表示中排除,进而提高人脸识别算法性能。Jia等
[18]提出了一种结构化稀疏诱导范数的遮挡人脸识别方法,相对于SRC中的
范数只能提高独立像素的稀疏性,此方法采用分层树结构稀疏诱导范数,它可以在误差的支持下合并遮挡误差先前的结构,更好地表示遮挡误差的空间连续性。分层树结构如
图1所示。
由于人主要是根据区域的形状或轮廓来识别遮挡,因此将遮挡的形状加入到遮挡的空间结构中也是很有必要的。Li等
[19]为了更好地描述编码误差的形态结构,将遮挡误差的形态学信息整合到图中,提出了一种形态图模型,结合误差度量和误差分布两个因素,研究了不同误差度量下的误差分布。利用误差支持和误差分布的结构信息,提出了一种结构稀疏误差编码的遮挡人脸识别算法(structured sparse error coding,SSEC)。Yang等
[20]提出了一种新的编码误差映射方法。该方法通过学习字典对训练样本进行编码,并计算编码误差的分布,然后采用自适应阈值法学习误差映射来检测遮挡区域,通过掩蔽遮挡像素对人脸图像进行识别。
核范数作为矩阵范数能够更好地描述结构信息。Qian等
[21]提出了一种鲁棒的核范数正则化回归分类的人脸识别方法(robust nuclear norm regularized regression,RNR),利用遮挡的结构特性,提供了一个统一的框架,将误差检测和误差支持集成到一个回归模型中。此方法通过奇异值分解(singular value decomposition,SVD)削弱不同类别之间的相关性,可以直接表示误差图像的整体结构。
人脸图像中的低秩结构可以对噪声进行抑制或消除,然而遮挡会破坏这种低秩结构,不能很好地把它从人脸图像中精确地重构出来,削弱了人脸图像之间的相关性,降低了人脸识别算法的精度和性能。为了获取低秩结构,Gao等
[22]提出了一种学习鲁棒和区分性的低秩表示(robust and discriminative low-rank representation,RDLRR),以在训练图像和测试图像均受到遮挡的情况下实现人脸识别。通过引入低秩假设来同时表示人脸图像和每一个误差项,从而捕获人脸数据的全局结构和每个误差图像的整体结构,进一步学习最优的表示形式以进行最终的分类任务。
在实际的情景中,总会出现多种遮挡类型同时存在的情况,为了更好地对这种情况下人脸图像进行识别,Li等
[23]提出了一种图像梯度方向嵌入式结构的误差编码方法(image gradient orientations-embedded structural error coding,IGO-SEC)。不同遮挡类型同时存在会导致遮挡误差分布的不可预测性,他们发现在IGO(image gradient orientations)域中,可以通过间隔[-π,π)中的均匀分布来简单地建立遮挡区域中的误差分布,并将高斯分布与Markov随机场遮挡支撑的先验分布进行结合,将图像梯度方向(IGO)嵌入到误差编码模型中,重建更好的遮挡误差结构。具体工作主要包括两方面:一方面,提出了一种结合像素和IGO的新重建方法,在像素域中计算重建图像,将其转换为IGO域,从而构建出噪声更少的高质量重建图像;另一方面,还提出了一种新颖的结构误差度量,通过将误差图像的空间结构和统计信息整合到IGO中,重新构造具有更好误差分离能力的误差图像。通过以上两方面的工作,增强后的误差图像成功地提高了IGO-SEC的性能。
表1为遮挡人脸识别传统方法的优缺点对比分析。从
表1可以看出传统方法的研究重点放在了样本表示和遮挡的处理上,对遮挡人脸识别有显著的效果,但是忽略了人脸图像的特征对提高识别鲁棒性的影响。人脸的深层特征具有表达能力强,稳定性好等优点,所以通过深度学习提取人脸的深层特征,对遮挡人脸识别具有重要意义。
2 基于深度学习的遮挡人脸识别
人脸图像往往包含丰富的特征,既包括纹理、颜色、亮度等低阶特征,也包括表情、年龄、姿态等高阶特征。这些特征通常以非线性的方式组合在一起,极易相互影响,尤其是当人脸图像存在遮挡时,遮挡特征与正常特征混合在一起,降低对人脸识别的效果。所以需要对这些特征进行多尺度、多方向的分解以进行特征提取。
使用传统特征提取方法对遮挡人脸图像进行特征提取的研究有很多
[24~26],虽然这些方法可以提取相关的识别特征,但是它们使用的是手工设计的底层特征来对遮挡人脸图像进行特征提取,这些底层特征并不能很好地保留人脸图像的细节信息。近年来深度学习在特征提取方面展示了强大的能力,仅需要输入数据就可以进行自动的多层高阶特征提取,通过从输入层到输出层的多层非线性映射和反向传播的学习机制,使提取出的特征具有更强的表达能力和稳定性,能够更好地获取鲁棒性特征。
如何获取有效的特征来减少个体内的差异、扩大个体间的差异是人脸识别的关键问题。基于此,Sun等提出了DeepID2
[1]神经网络,一方面,利用人脸识别信号提取不同人的人脸特征,增加不同个体之间的差异;另一方面,利用人脸验证信号提取同一人的人脸特征,减少相同个体内的差异,进而学习到区分性更强的特征。进一步,Sun等又提出了DeepID2+
[27]神经网络,DeepID2+在DeepID2神经网络结构的基础之上做了如下改进:将最终的全连接层特征表示从160维提升到512维,并将512维的全连接层连接到每一个卷积层。这样使得每一个卷积层中都具有了监督信息,提取到了更好的人脸特征。DeepID2和DeepID2+都是先将人脸图像样本进行划分,然后分别对划分后的样本进行训练,使卷积神经网络对训练样本进行更加充分的学习,更好地过滤掉异常特征。但是它们往往需要大量的训练数据作为支撑,为了减少对大量训练样本的依赖,Chan等
[28]提出了一种简洁的无监督深度卷积神经网络(PCANet),选择使用最基本的PCA滤波器提取主成分特征,网络的最终输出特征使用二进制码的分块直方图表示,在很大程度上对遮挡特征进行过滤,提高了遮挡人脸识别的鲁棒性,在扩展Yale B、AR、FERET数据集上进行实验,准确率分别为99.58%、97%、97.26%,证明了PCANet在学习鲁棒不变特征方面的有效性。
深度学习中损失函数是整个神经网络模型的“指挥棒”,通过对预测样本和真实样本之间产生的误差反向传播指导网络参数的学习,以获得最佳的神经网络模型。Wu等
[29]提出的基于深度学习的遮挡人脸识别系统使用了三重损失函数来衡量模型的预测性能,系统结构如
图2所示。首先把输入的人脸图像切割成固定大小的样本,然后使用Inception-ResNet-v1网络通过L2功能(||
f(
x)||
2=1)将所有图像的特征映射到超球面,最终经过嵌入层,使用三重损失函数进行学习。
三重损失函数由一个三元组表示,三元组由Anchor、Negative和Positive组成。可以将图片作为Anchor,然后将属于同一个人的图片作为Positive,将不属于同一个人的图片作为Negative。三重损失可以直接对不同人脸图像的特征进行区分:相同身份之间的人脸特征差异尽可能小,不同身份之间的人脸特征差异尽可能大。三重损失示意图如
图3所示。
同样从损失函数的角度,Trigueros等
[30]提出了一种批处理的三重损失函数,与文献[
29]不同的是,他们在原始的损失函数中增加了一个额外的项使正负分数的标准偏差最小化,并且对训练集样本进行分批次训练,改善了三重损失的性能,使识别精度得到提升。
深度学习具有强大的数据处理能力和特征提取能力,可对遮挡区域进行恢复。Cheng等
[31]提出了一种双通道SSDA神经网络(double channel stacked sparse denoising auto-encoders,DC-SSDA)来恢复被遮挡的面部区域,其训练了一个有遮挡图像的SSDA网络,并将编码参数传输到另外一个用于无遮挡图像的SSDA网络,使用有遮挡图像和无遮挡图像激活差的平均值来判断遮挡节点,进而使用无遮挡节点的激活值代替有遮挡节点的激活值,有效地消除遮挡,使用恢复之后的人脸图像进行人脸识别。Ge等
[32]发现遮挡人脸识别中存在两个关键挑战:面部信息提示不完整和遮挡区域的特征不正确。因此,他们认为有必要探索面部区域以外的信息提示,用来恢复丢失的面部提示信息。基于此,他们提出了用于检测遮挡人脸的KNN-CNN(K-Nearest Neighbor-CNN)模型。该模型由三个模块组成:Proposal Module,Embedding Module,Verification Module。Proposal Module为人脸的proposal提取模块,选择使用适当的阈值提取大量的人脸proposal。Embedding Module将Proposal Module中提取出来的描述子转化为相似度描述子,然后利用KNN(K-nearest neighbor)算法在所有人脸图像中寻找匹配,从而恢复遮挡人脸的特征。Verification Module利用被修复的人脸特征对人脸的位置和尺度进行微调,进而获取恢复更好的遮挡人脸特征。
在多数深度学习遮挡人脸识别模型中,通常将人脸的遮挡部分与非遮挡部分以等效的方式嵌入到特征的学习中。这样,对于遮挡的人脸图像所生成的面部表示的判别力就会减弱,从而导致识别精度降低。为了更好地区分人脸图像的遮挡部分和非遮挡部分,Wan等
[33]提出了MaskNet模块,该模块学习得到特征图模板,此模板自动地将较高的权重分配给非遮挡部分的隐藏单元,将较低的权重分配给被遮挡部分的隐藏单元,使神经网络专注于高保真图像特征,而忽略那些因遮挡而失真的特征。Yu等
[34]提出了一种基于深度学习的全局和局部遮挡的识别算法。该算法使用SIFT(scale invariant feature transform)和SVM算法对遮挡人脸和非遮挡人脸进行区分,并将遮挡图像进行水平裁剪,形成全局图像,对全局脸部特征和未遮挡的局部特征同时进行提取。在特征提取中将LeNet-5卷积神经网络(
图4)和改进的LeNet-5卷积神经网络(
图5)与SoftMax多分类结合在一起,使用改进的分层投票方法对人脸做出最终的决定,加快了多分类器的训练和预测速度。此算法的优点是使用了LeNet-5和改进的LeNet-5两个轻量级卷积神经网络模型对低像素图像进行特征提取,相对于其他神经网络模型,此神经网络模型对网络层数进行了精简,可以更好的拟合低像素图像。
3 基于深度学习与传统方法结合
将深度学习和传统的遮挡字典学习法进行结合,可进行高鲁棒性人脸识别。
Cen等
[35]提出的一种基于深度字典表示的遮挡人脸图像分类方法(deep dictionary representation based classification,DDRC),使用卷积神经网络对遮挡人脸图像进行深层特征提取,然后使用字典对提取的深层特征进行线性编码。此方法的重点是对遮挡字典的构造上,由于遮挡人脸图像的映射向量可以用相同模式下的其他人脸图像映射向量的线性组合来近似表示,所以该字典是由与待识别图像具有相同遮挡模式的映射向量生成的,减轻了在深度特征空间中遮挡对人脸识别的负面影响。Song等
[36]提出了一种遮挡学习策略,以在深层特征中发现和丢弃被遮挡损坏的特征元素,并消除这些特征元素对人脸识别的影响。此方法使用成对的差分孪生网络(pairwise differential siamese network,PDSN)进行特征提取,使用两张同一个人的人脸图像(一个遮挡,一个无遮挡)特征之间的差分信号促使模型关注那些由于遮挡而偏离其真实值的特征元素,并将特征元素编码到遮挡字典内,该遮挡字典的每项都捕获了随机部分遮挡下的脸部区域和损坏的特征元素之间的对应关系,将此对应关系与原始特征相乘,将损坏的特征元素从识别中剔除。
受PCANet的启发,郭伟等
[37]提出了一种PCANet下的遮挡人脸识别算法。该算法首先提取特征点以对人脸进行检测,然后根据检测结果截取人脸特征区块,在每一类特征区块上使用PCANet进行特征提取,进一步根据大多数的遮挡类型对特征进行特征拼接和补零操作,将操作之后的特征矩阵输入到传统算法SVM中进行分类。此方法为每一类的遮挡类型选择对应的特征区块生成模型,组成模型组以用于识别任务,这个模型组包括了实际情况中所有的遮挡类型。然而,此算法在遮挡的情况下,特征点定位是否准确会直接影响到最终的识别结果。为了能够准确地定位遮挡下的特征点,杨帆等
[38]提出了一种基于自适应特征的遮挡人脸特征点定位算法,该算法使用传统的逻辑回归算法检测每个特征点的遮挡状态,并估计出每个特征点被遮挡的概率值,根据概率值自适应地调整该特征点的权重,遮挡概率较大的特征点赋予较小的权重,遮挡概率较小的特征点赋予较大的权重,从而降低遮挡对人脸特征的影响,提高了特征点定位的准确度,进而改善了遮挡人脸识别的性能。
4 基于3D的遮挡人脸识别方法
随着2D人脸识别方法越来越成熟,研究者们开始把研究思路逐渐拓展到3D领域,使用3D扫描仪获取数据构建基于点云的3D人脸模型,并使用不同于2D的特征来构建3D人脸模型。3D数据包含了人脸的空间信息,这些信息是人脸本身固有的信息,因此3D人脸识别方法不会受光照变化、姿势变化、表情变化和部分遮挡等的影响,并支持对人脸特征的全面理解。
基于3D的遮挡人脸识别,一方面,使用3D几何方法提取脸部重要的几何信息,根据几何信息的变化来描述人脸的形状变化,进而对遮挡进行识别;另一方面,直接将深度学习运用在3D数据中,利用神经网络强大的学习能力对3D数据进行处理,提取人脸的3D特征,更好地描述人脸图像。
相对于2D数据,3D数据具有数据量大、无序性和稀疏性等特点,直接在3D数据中识别遮挡是有一定难度的,因此,提前对遮挡区域进行检测和定位,对识别任务会带来极大便利。常用的人脸遮挡区域检测和定位方法有:基于面部曲线的方法和基于径向曲线的方法
[39,40]。基于面部曲线的方法主要是提取面部中最具有代表性的曲线进行分析,根据面部曲线的变形来表达面部区域的变形,进而检测人脸的遮挡区域。面部曲线最常见的曲线是中央轮廓曲线,即鼻子区域的曲线。Li等
[41]提出了一种针对遮挡人脸识别的自适应区域选择方案,在最敏感的遮挡部分中或附近提取面部曲线,并进行匹配以评估面部变形,通过对变形的人脸进行分类,将重点放在那些受影响最小的区域。径向曲线是从鼻尖开始并一一穿过人脸的不同区域的曲线,基于径向曲线的方法是在所有径向曲线中适当地进行选择,以捕获曲线的局部形状来代表人脸表面。Yu等
[42]提出了一种径向弦表示和匹配方法来识别局部遮挡情况下的三维面部扫描。此方法将三维面部表面编码到一个由鼻尖发出的径向弦的索引集合中,然后使用动态规划(dynamic programming,DP)来测量两个径向弦之间的相似性。为了解决部分遮挡的识别问题,此方法建立了一个局部匹配机制,并在匹配过程中找出最具鉴别性的部分,有效地消除了遮挡。
从去除人脸遮挡并修复遮挡区域的角度,Yuan等
[43]提出了一种3D可变形模型(3D Morphable Model)为条件的GAN(generative adversarial nets)框架。此框架由一个生成器和两个判别器组成,在GAN网络之前使用3DMM,并结合全局和局部GAN网络来学习人脸去遮挡模型,3DMM不仅可以用作几何先验,而且还可以为局部判别器提供面部区域,以去除面部遮挡并恢复遮挡区域。该方法不仅消除了遮挡,而且在没有遮挡的情况下重建了正确的3D人脸模型。同样地,Dagnes等
[44]提出了一种自动3D遮挡人脸检测和修复方法。该方法依赖于人脸几何信息,设计了针对两种类型的人脸遮挡(由于手造成的眼睛和嘴部的遮挡)的识别。通过考虑遮挡区域对3D点云的影响,对遮挡进行检测、定位和分类,然后逐渐将遮挡区域去除,并使用非遮挡区域的对称信息恢复缺失信息,最后依赖于恢复的脸部信息和局部地标进行人脸识别。此方法是全自动的,还可以在以下两个方面进行改进:1)加入卷积神经网络,可以使算法性能得到大幅提升。2)对更多类型的遮挡进行研究,并扩大数据库规模以帮助在不同人脸条件和数据类型之间进行横向转换,从而达到在不同情况下的适用性,甚至“野外”的现实条件。
5 存在的问题及未来研究方向
根据现有部分遮挡人脸识别的研究方法,目前仍存在以下问题。
1) 数据集不够丰富。神经网络的训练通常需要依赖大量的样本作为数据支撑,因此遮挡人脸数据集的数量直接影响人脸识别的性能。目前常用于人脸识别的数据集主要有:Yale数据集,该数据集只包含15个人的165张图片,整个数据集非常小,图片信息也较为简单,不能满足神经网络的训练支撑;扩展Yale数据集,该数据集在Yale数据集的基础之上,增加了照片数量,包含28个人的16 128张图片,但是该数据集只包含姿态变化和光照变化引起的遮挡类型,与实际相比,遮挡类型远远不够;AR数据集包含116个人的3 288张图片,只包含眼镜遮挡和围巾遮挡两种遮挡类型,并且采集方式是在人为控制的条件下进行的,很难满足现实中的遮挡模式。3D数据集主要有:ModelNet数据集,该数据集共有662种目标分类,127 915个CAD模型,以及10类标记过方向的数据,它的缺点是结构简单,模型结构更多通过边来实现,不适合做点云数据集。ShapeNet数据集,该数据集是一个注释丰富且规模较大的3D形状数据集,它包含55种常见的物品类别和513 000个三维模型,它的缺点是只包含点云数据,且点云较为稀疏。
2) 缺少基于小样本的神经网络训练方法。目前常用的神经网络有DeepID2、DeepID2+、PCANet、Inception-ResNet-v1和LetNet-5网络等,虽然它们是受人类视觉原理启发提出的,但是针对遮挡问题与人眼不同的是,神经网络需要进行大量训练才能获取遮挡人脸图像信息,而人眼只需要观察少量图片就可以做到。因此如何训练基于小样本识别遮挡的神经网络仍然是很有必要的。
3) 更好地把深度学习应用到3D点云数据处理以进行遮挡人脸识别的研究仍然不足。3D点云数据往往数量规模巨大,分布没有规则,计算难度大。目前常用的处理点云数据的神经网络有PointNet
[45]、PointNet++
[46]和DGCNN
[47],其中PointNet无法很好地提取局部特征,因此限制了对精细场景的识别和复杂场景的泛化能力。它在ModelNet40数据集上进行分类实验,精确度为89.2%,在ShapeNet数据集上进行分割实验,精确度为80.6%,可见它对3D数据的处理效率还有待提高。PointNet++在PointNet上进行了改进,使网络能更好地提取局部特征,并且使用从小区域扩展到大区域的特征提取方式,最终提取到全局特征,在ModelNet数据集上进行分类实验,精确度为90%,在Indoor3D数据集上进行分割实验,精确度为86.6%。虽然PointNet++比PointNet的精度有所提升,但是精确度还有待提高。DGCNN的目的也是为了解决PointNet对于提取局部特征的不足,在ModelNet40数据集上进行分类任务的实验,精确度为93.5%,在S3DIS室内数据集上进行实验,精确度为84.1%。其缺点是在处理特征时没有很好地考虑邻近点与中心点的方向问题,仅仅考虑了一个差值特征。
基于深度学习的遮挡人脸识别具有很广阔的前景,因此构造样本更加完善的数据集、设计基于小样本的神经网络训练方法、更好地把深度学习运用于3D数据处理,是未来解决部分遮挡人脸识别问题的方向。
6 结 语
本文对人脸识别研究中的部分遮挡问题进行了总结。从稀疏表示、遮挡字典处理、遮挡误差编码、深度学习与传统方法结合、深度学习和3D方法等方面进行了回顾,阐述了各类方法的主要原理和优缺点,分析了现有的部分遮挡人脸识别方法存在的问题和局限性,并对未来的研究重点进行了展望。
国家自然科学基金(61802253)