在过去的十年里,利用先进的机器学习方法改善人脸识别算法的进展一直是稳步的。损失函数在这个过程中起着至关重要的作用,并扮演着改变游戏规则的角色。这些损失函数主要探索了类内或类间分离的差异。本研究关注人脸识别问题中的面部对称的自然现象。 左半边和右半边面部的对称性在近几十年的许多研究领域中得到了广泛应用。本文适度地采用这种简单的方法,将人脸图像垂直地分为两部分。 假设面部对称的自然现象可以增强人脸识别方法,作者假设分出的两个输出嵌入向量在输出嵌入空间中必须非常接近。 受到这个概念的启发,作者根据对称分出的两张脸的嵌入差异来惩罚网络。对称损失有可能最小化由面部表情和光线条件造成的微小区间特征,从而显著增大类别间的差异,导致更可靠的人脸嵌入。 这种损失函数使得任何网络的性能都优于其基准性能,实现所有现有网络架构和配置的最高性能,使作者能够实现最先进的结果。
左右半脸的对称性是一个自然现象。两面脸的绝对对称并不常见,但同时拥有高度不对称脸的人也不多。脸部对称程度因人而异;有些人可能拥有高度对称的脸,而有些人则不然。面部对称性可能源于各种因素,包括遗传倾向、发育异常、创伤事故或其他会影响面部结构形成和生长的因素。这些因素可能导致面部特征(如眼睛、鼻子、嘴巴和耳朵)在定位和比例上的明显差异,这在面部对称性病例中常常可见。在许多研究领域,脸部对称性研究具有重要作用。研究行人通常将脸部对称性作为评估吸引力的指标[1, 2],评估情绪表达[3],研究神经系统疾病[4]和深度伪造分析[5]的度量标准;它的应用领域涵盖心理学、人类学、医学等领域,为人类生物学、行为和感知等方面提供了洞察等。
由于左右半脸存在对称行为,作者在现有人脸识别方法中应用了对称性。在正确放置摄像头的前提下,测量人脸数据中的对称性是可行的。尽管从3D转换到2D会丢失一些对称性方面的信息,但从分析中获得的2D图像仍然保留了一定的对称性信息。现有的人脸数据集[6, 7]包括在不同角度和位置拍摄的人脸图像(如图1所示),导致人脸视点和方向存在较大变化。这是自然现象,但在现有人脸识别数据集中会带来实际困难,可能会影响网络学习面部识别问题的对称性因素的能力。当作者分析极端视点角度的人脸时,观察到大脑很难识别半脸之间的对称性。在这些情况下,只有半脸可见。因此,作者从这些图像中并未推导出对称性因素,这些图像的倾斜角度大于边缘角。然而,作者将这些图像输入到网络中,不对称性因素进行补充。这种方法使作者能够应用对称性效果到良好的定位人脸图像上。这样,网络可以更精确地提取图像中的非对称特征,并在侧面姿态数据集[8, 9]上超越基准。
作者已经开发了一种标准技术称为3点对称分割算法(3PSS),用于评估和分配面部特征的对称定向系数(ρ)。高值ρ意味着检测对称性的好方向,而低值ρ意味着在面部特征中检测对称性的方向 Poor。3PSS算法专门用于分析对称定向在二维空间中的对称性。因此,由于二维空间中的面部方向,图像可能被归类为较低的ρ,尽管个人具有自然对称的面部。然而,3PSS为作者提供了有关面部对称性的宝贵洞察,但只能用于特定类型的研究,并建议避免得出错误的结论。3PSS将数据集中的每个图像分类为对称或不对称,并相应地分配ρ值。
在过去的十年中,为了增强网络的区分能力并展示出色的面部识别领域结果,探索了许多新颖方法。以前研究的主要原则是增加类别间的差异并减少类别间的差异。网络输出,即两个同一类别输入图像向量在嵌入空间中的位置,应投影得尽量靠近。因此,作者假设同一个人属于同一输入的所有竖直分开的面在嵌入空间中也应尽可能地靠近。依据这个假设,作者引入了一种新颖的方法来集成SymFace损失。网络可以训练为最小化任何完整的面部特征与类别中同一半脸之间的距离。在添加标准面部损失的同时,加入SymFace损失实现了在各种网络中达到最高性能的结果,并超过了在面部识别领域现存基准数据集[8, 9, 10, 11, 12]。
该方法的主要特点可以总结如下:
以往的研究中,脸部识别解决方案中的镜面对称行为已得到探讨。文献[13]研究了面部不对称性如何影响面部识别,主要关注表情变化、性别分类和表情区分。输入图像通过密度差异(D-face)和边缘方向对称(S-face)计算出不对称性得分。作者采用主成分分析(PCA)降低维度并使用线性判别分析(LDA)方法进行分类。另一种方法[14]提出了一种在不遮挡和变化照明条件下增强面部识别准确性的技术。它将局部二值模式(LBP)与多镜面对称相结合,捕捉面部纹理并利用反射属性。该过程包括图像预处理、计算LBP直方图和与镜像面部特征配合使用最近邻分类器进行识别。文献[15]计算了输入空间中左右半脸图像的差异,并尝试使用计算出的差异与其他属性相结合来分类面部图像。
来自不同领域的先进神经网络方法在脸部识别领域得到了应用。特别是在增强脸部识别损失函数方面具有重要意义的一个领域。分类任务涉及对来自图像及其标签的softmax损失进行评估,如下所示:
在这里,i-th图像样本 分配标签 (总共类别C中的一个),嵌入 的长度 嵌入大小,权重矩阵为 ,偏置项设为零。从softmax[16, 17, 18] 开始,然后采用权重和嵌入归一化 [19, 20, 21],使得研究社区进入了角空间:
在这里, 是特征 和权重 之间的角度, 是角空间中的缩放因子。
这一新型方法开启了人脸识别的新前沿。使用这种新方法,在余弦空间(公式3)[22]、乘法(公式4)[23]和加法(公式5)[24]中,margin在theta空间(而不是cosine空间)的作用下展现出卓越的效果。
在(公式3 - 公式5)中, 是最重要的变量,是添加惩罚的margin。
[25]使用的方法是针对较低的margin进行训练易样本和较高margin进行复杂样本,强调了在训练周期中适应性的实际性质。 AdaFace[26] 进一步强调基于图像质量和利用特征归一化进行易难样本的划分。作者简单地引入了一种可以轻松添加到任何现有损失函数的损失函数,以帮助组合人脸损失函数变得更加强大。作者的提出的对称性损失函数通过将面部对称性的自然现象集成到余弦空间中,进一步扩展了这种方法。虽然传统损失通过角度margin增强嵌入,但他们并没有明确利用人类面孔中固有的对称性。通过将对称性约束集成到余弦相似度框架中,作者的方法在使得嵌入更接近自然面部结构的同时,进行嵌入优化。
更好的性能需要更好的网络结构,因此出现了许多针对面部识别性能的改进网络架构。当前,由于其在自动驾驶车辆、机器人以及无人机等领域的广泛应用,基于移动的网络已经成为必不可少的解决方案。针对边缘设备进行网络设计需要考虑其较低的计算需求,特别是对浮点运算(FLOPs)的需求和相关参数的减少。尽管已提出许多用于面部验证的网络以满足这些需求,但要达到预期的效果仍然具有挑战性。一些网络[38, 35]成功降低了FLOPs,提高了计算效率,但以增加更多参数为代价。相反,参数数量较低的网络[32]往往需要更高的FLOPs,这构成了权衡困境。这也强调了在提高计算效率和模型复杂性之间实现创新方法的重要性。本研究将提出的SymFace损失集成到现有轻量级面部识别架构中,并取得了显著的性能提升。
ResNet50和ResNet100架构在各种新开发的面部识别方法[39, 40, 41, 42, 43]中表现出色。但是,在MS1M-V2上训练的ResNet100在LFW上的准确度仅为99.82%。提高损失函数可以增强任何网络精确分辨和区分面部特征的能力。其他方法,如BroadFace [44],通过利用线性分类器来考虑大量身份来优化面部识别。由Sphere Confidence Face [46]实现的概率面部嵌入[45]在欧几里得空间和球形空间之间计算确信学习。这样的一定程度的改进可能会导致显著提高准确性和性能,最终提升面部识别系统在各种应用的能力,包括安全、监视、生物识别、等。
为了在开发人脸识别模型时利用面部对称性,作者引入了一个面部前方度量,称为,旨在识别捕捉到人脸正面的图像。然后将这些图像分成两部分以生成单独的嵌入,它们的相似性预计是相似的。
这种相似性通过作者额外的面部对称性损失,SymFace,来实现。以下部分描述了作者的新3PSS(3点对称分割)算法,该算法测量面部前方度并执行图像分割。然后作者将解释如何在一级训练中使用SymFace损失。
作者使用预训练的RetinaFace模型[47]提取三个面部特征点,分别是左右眼睛和鼻子,表示左眼和右眼的x坐标分别为和,鼻子的x坐标为。为了认为图像有正脸视角,两只眼睛的中点的x坐标应该接近于鼻子的x坐标。两个值之间有显著差异表明人脸 Either倾斜,使得将人脸分为两部分变得不切实际。因此,作者计算这个差异(称为)如下:
并以此来计算作者称之为对称方向系数()的方法如下:
这些步骤可以参见图6,在带有眼睛(用黄色圆点表示)和鼻子(用鲜红色圆点表示)的面部草图上绘制。
请注意,作者将值指定为0的条件是RetinaFace的标志点检测器无法检测到特征点。
从小等式(7)可以看出,D越低,ρ的值越高。因此,ρ值较高的图像将更有可能被选为正面脸图像。
作者使用一个阈值ρ和一个参数τ(设置为0.2)来确定一张图像是否为对称图像,即,如果ρ > τ,则图像被认为 "对称";否则,被认为 "非对称"。然而,在某些情况下,将每一合格图像进行拆分是不希望的,因为在这种情况下的网络将从未在完全对称的正面脸图像上进行训练,并且会增加不必要的图像数量。所以,在这些图像的任何一次迭代中,只将其中的一部分(设置为0.3)进行拆分。
图3中的图像显示出各种ρ值的面部。图2(a)由于其较低的ρ值被认为是非对称,而图2(b)和图2(c)被认为是对称的。
图4:面部图像拆分过程
对于被分类为对称的所有图像,作者将正面脸图像垂直拆分为两半:用n_x表示鼻子标记点的x坐标的所有图像的左半部分为,右半部分为。其中表示具有列号从n_x到n_x的图像部分,表示其余部分。这两个部分通过零填充转换为与原始图像相同大小的图像,以使它们位于生成图像和的中心,如图4所示。
训练过程
从方程(7)可以看出,D越低,ρ的值越高。因此,ρ值较高的图像将更有可能被选为正面脸图像。
作者使用一个阈值ρ和一个参数τ(设置为0.2)来确定一张图像是否为对称图像,即,如果ρ > τ,则图像被认为 "对称";否则,被认为 "非对称"。然而,在某些情况下,将每一合格图像进行拆分是不希望的,因为在这种情况下的网络将从未在完全对称的正面脸图像上进行训练,并且会增加不必要的图像数量。因此,在这些图像的每个迭代中,只将其中的一部分(设置为0.3)进行拆分。
图4显示了面部图像拆分的流程。图3比较了不同ρ值的数据集中的图像。图2展示了3PSS对图像进行评估的过程。
对于被分类为对称的所有图像,作者将每个图像的正面脸图像沿垂直方向拆分为两半:使用n_x表示鼻尖标记点的x坐标的图像的左半部分为,右半部分为。其中表示具有列号从n_x到n_x的图像部分,表示其余部分。这两个部分通过零填充转换为与原始图像相同大小的图像,以使它们位于生成图像和的中心,如图4所示。
在每个时代,通过将原数据集中对称图像的其中一部分随机拆分,任何时代的训练样本()数量将增加,如图所示:
其中 可以定义如下:
其中 是原始数据集中图像的索引。在每个时代,将存在两种类型的样本:全图像和半图像。全图像用 表示,半图像用 或 表示,分别表示左右脸图像。 表示在某个时代,全图像 是否已经被拆分为 和 。
作者的SymFace损失定义如下:
在这里,表示图像的识别网络的输出嵌入。想法是只将新的损失应用于从合格图像中挑选出的选择图像。如图5所示,这种损失试图将这两个嵌入更接近。
让作者定义单个样本的标准损失函数为 ,其中 代表图像, 代表图像标签。现在,作者可以定义通用人脸损失如下:
请注意,分母是 ,而不是 ,因为该损失函数为全图像和半图像两种情况优化。
最后,作者将讨论的两个损失结合起来,得到了作者最终的损失:
作者使用包含580万张85K个身份的人脸图像(MS1MV2数据集)的训练周期,以及包含420万张人脸图像(Webface数据集)。该数据集中的图像首先使用预训练的RetinaFace模型[[47]]为每个图像标记了三个面部关键点(两个眼睛和一个鼻子点),同时与图像数据一起使用了值。
验证周期包括以下数据集:包含5749人、共13,233张人脸图像(LFW数据集)[[10]],包含500人、共7000张人脸图像(CFP-FP数据集)[[8]],包含5,749人、共11,652张人脸图像(CP-LFW数据集)[[9]],包含568人、共16,488张人脸图像(AgeDB数据集)[[11]],以及包含5,749人、共12,174张人脸图像(CA-LFW数据集)[[12]]。
在本实验中,SymFace损失被用作现有损失函数ArcFace [24]和AdaFace [26]之上额外的损失。在训练阶段,使用最终的组合损失。在本实验中,作者使用不同的网络来测试SymFace损失的影响。作者使用两种轻量级的网络,MobileFaceNet [34](0.99M参数)和ShuffleFaceNet [36](2.6M参数),作为网络 Backbone 。作者还使用在[24]中讨论的重量级网络 Backbone ,如ResNet50和ResNet100。
对于轻量级网络,作者使用3个A100 NVIDIA GPUs,而对于重量级网络,作者使用8个A100 GPUs。在数据集类别对中进行配对时,轻量级网络的批量大小为75,而重量级网络的批量大小为256。将网络输入为 ConCat 张量,增加总批次大小。将AdaFace和ArcFace损失函数与SymFace损失函数相结合(见公式12)。对于轻量级网络和重量级网络,分别采用128和512大小的嵌入。
通过减去127.5然后除以128进行像素归一化。训练期间使用水平翻转。对于轻量级网络的ArcFace+SymFace(将ArcFace与SymFace相结合)损失,比例设置为32,边际为0.45。
在本研究中,如[26]所引入的,未添加任何增强(裁剪,缩放,和光度抖动)。
在保证结果公正对比的情况下,作者对基准配置(网络和损失函数)进行了实验操作[24, 26, 34, 36, 50]。SymFace损失的引入显著增强了ArcFace和AdaFace的鉴别能力,推动了网络实现更好的收敛性。
对MobileFaceNet和ShuffleFaceNet,作者在嵌入大小为128的情况下计算ArcFace+SymFace损失。如表1所示,结果超过了现有成绩的66%。使用额外的SymFace损失训练的ResNet50在70%的时间内超越了标准损失函数,对应的最高性能结果已在表2中展示。所提出的损失函数在大部分验证集上超越了LFW数据集。在大多数验证数据集上,ResNet50主干网络优于其对比网络;另一方面,在MS1M V2上对ResNet100主干网络进行训练时,它在LFW和年龄有关的数据集上取得了更好的结果,但给出了Ablation Study。
神经网络接受多个值的正切值,观察到当正切值非常低(小于0.1)或非常高(大于0.3)时,模型性能提升不明显(参见图6)。在0.2 0.05的范围内,ρ值报告了更好的结果。在作者进行的实验中,作者发现仅提供分割增强但不对称损失(仅使用标准人脸损失)的网络,增加了模型准确性,但并未达到SymFace损失的程度。当仅使用标准损失训练ResNet100网络时,其达到了99.82%的准确率,而基础网络的准确率为99.8%。当将额外的分割图像提供给ResNet100网络时,且只使用对称损失,作者观察到99.85%的更好准确率(参见表4)。结合标准人脸损失和不对称人脸损失优于大部分验证数据集。作者还应用了SymFace损失,对尺寸为112X96的CASIA-WebFace进行训练,LFW数据集上的准确率从基准结果[51]的99.18%提升到了99.31% (参见表1)。为探索对称现象的潜在潜力,作者在没有知识蒸馏的情况下,在MS1MV2上从头训练VarGFaceNet并采用AdaFace损失,取得了LFW数据集上的准确率99.76,而基础模型的准确率为99.67%。
在表2中,作者对WebFace4M数据集的结果进行了分析,发现它相较于姿态变异数据集(CP-LFW和CFP-FP)在MS1M数据集上表现更优。在与MS1MV2数据集的比较中,CP-LFW和CFP-FP数据集的不同损失函数得分在93.x%到98.x%之间,而WebFace4M数据集得分的范围更高,为94.x%在CP-LFW数据集和99.x%在CFP-FP数据集。这种行为是由于WebFace数据集中包含质心姿态变异图像的较低值ρ(参见表5)。作者分析了双重损失函数改善对其网络判别能力的不同人脸图像更好特征表示的提高。作者对CASIA-WebFace数据集的类间方差进行分析,并提出双重损失函数应增强类间距离的分析,如图3所示。这种行为的解释显而易见:网络通常会被惩罚来寻找不对称性。因此,网络学会提取不对称信息的隐藏特征来生成输出嵌入,并基于这些隐藏的不对称特征来区分不同的类。
本文讨论了SymFace损失作为标准面部损失的额外损失。为了使用此损失,作者使用预训练的RetinaFace模型识别面部landmarks,基于此作者定义了面部方向的度量,即对称方向系数,用ρ表示。这使作者能够根据2D面部属性将面部图像分组,提取对称特征。
作者还提出了一种定制的训练过程,在其中作者将图像对(包括标签及其相应的ρ值)传递,并确保两种类型的面部图像以适当的方式处理组合损失。
结果支持作者的假设,即识别面部对称特征可以增强面部识别过程。
由于该研究的核心思想是半面之间的对称性,因此在此方法在LFW或以年龄为基础的数据集(AgeDB,CA-LFW)中的表现更好,而在关注的挑战性姿态识别(CP-LFW,CFP-FP)的数据集中的表现相当。
这进一步开启了研究结合对称性的姿态变化面部样本的新领域。
[1].SymFace: Additional Facial Symmetry Loss for Deep Face Recognition.