Occlusion Robust Face Recognition Based on Mask Learning With Pairwise Differential Siamese Network
摘要
提出了一种掩模学习策略来查找并丢弃识别中损坏的特征元素。首先,使用设计的成对差分孪生网络(PDSN),利用遮挡和无遮挡人脸对的顶部卷积特征之间的差异,可以明确地找到深度 CNN 模型中被遮挡的面部块和损坏的特征元素之间的对应关系,建立掩模字典。该字典的每一项都捕获被遮挡的面部区域和损坏的特征元素之间的对应关系,这被称为特征丢弃掩模(FDM)。当处理具有随机部分遮挡的人脸图像时,通过组合相关字典项来生成其特征丢弃掩模(FDM),然后将其与原始特征相乘,以从识别中消除那些损坏的特征元素。
网络结构
该方法的整体流程如图1所示,它将随机部分遮挡下的人脸识别问题分解为三个阶段。第一阶段:使用所提出的成对差分孪生网络(PDSN)学习掩模生成器来捕获被遮挡的面部块和损坏的特征元素之间的对应关系,其中带有掩模生成器模块,该模块获取成对图像(一个是干净的面部,另一个是被遮挡的相同面部)身份)作为输入。干净面和相应遮挡面的转换特征之间的差分信号被馈送到掩模生成器模块中。它充当注意力机制的角色,鼓励模型关注那些由于部分遮挡而偏离其真实值的特征元素。第二阶段:通过策略二值化从这些经过训练的 成对差分孪生网络(PDSN)构建掩码字典。然后,相应地建立掩模字典,该字典中的每一项都是一个二值掩模,用于合成具有随机部分遮挡的测试人脸的特征丢弃掩模(FDM),根据学习到的掩模生成器建立掩码字典。第三阶段:在测试阶段,结合该字典中随机部分遮挡的特征丢弃掩模(FDM),然后与原始特征相乘,以消除部分遮挡对识别的影响。
第一阶段:学习掩模生成器
馈入 CNN 模型的人脸图像大多通过检测到的面部关键点进行良好对齐,将对齐的人脸划分为不重叠的 N × N 块,并旨在为每个人学习一个掩模生成器bj,当该块被遮挡时找到损坏的特征元素。在实现中,根据输入图像大小设置 N = 5,以便眼睛、鼻尖和嘴巴等面部组件与块适当关联。图1中的(a)面给出了划分示例。
然后将第一阶段的核心问题定义为:给定块 bj 被遮挡的人脸图像的特征,表示为 f(xj),如何学习掩码生成器 Mθ,其输出乘以 f(xj) 以掩码掉损坏的特征元素。令纯化后的特征表示为f~(xj),则f~(xj)=Mθ(·)f(xj)。
(1)人脸特征 f 的选择
对于基于CNN的人脸识别模型,人脸特征通常是指分类层之前的最终全连接(fc)层的输出。然而,fc 层中的每个神经元都会集成来自前一层所有输出元素的信息,因此,在最终的 FC 特征中,遮挡区域可能会与非遮挡区域混合在一起。从另一个角度来看,顶层 fc 层的神经元对身份具有高度选择性。因此,即使不同的主体受到相同遮挡的遮挡,由于该遮挡而改变的特征元素的位置也将高度依赖于人脸身份,如图2最右栏所示。相反,可以从左栏看到从图2中可以看出,不同个体的相同遮挡所改变的特征元素的位置对于顶部卷积层来说是相当一致的,并且它仍然保留了局部信息,因此我们选择顶部卷积特征作为我们的f。
具有相同部分遮挡的不同受试者的两张人脸图像之间的神经反应差异。左:顶部卷积层的神经激活差异。右图:顶部 fc 层的神经激活差异。
(2)掩码生成器 Mθ 的输出维度
同一空间位置的所有 C 通道的特征元素共享来自其学习掩模的相同权重,假设所有卷积特征通道的特征元素对遮挡的响应相同。使用中值相对变化率(表示为 MED)的标准来捕获每个特征元素在部分遮挡下偏离其真实值的程度。给定一对干净的人脸图像 xclean 及其对应的遮挡人脸图像 xocc,首先计算顶部卷积层神经元激活值的相对变化率:
其中,ri表示顶部卷积层第i个特征元素值的相对变化率。从 CASIA-WebFace中随机选择 N 个图像,并在面部上添加遮挡,然后计算每个面部对的 ri。通过计算这些ri的中值来获得近似表示遮挡下第i个特征元素的改变程度的度量MED。如果当输入人脸的某个区域被遮挡时,特征元素的 MED 较高,则可能会给最终特征带来不合理的噪声。
在图3中,显示了三种遮挡类型下顶部卷积特征图的8个通道中特征元素的MED值。显然,不同通道的特征值以不同的方式改变,在相同的空间位置,某些通道的元素变化很小,而某些通道的元素变化很大。从感受野来看,不同卷积通道的相同空间位置从输入图像的同一区域收集信息,但它们实际上对遮挡的反应截然不同。因此,认为Mθ的输出维度应该与顶部卷积层特征图相同。
成对差分孪生网络
提出了成对差分孪生网络(PDSN)结构来学习遮挡的面部块和损坏的特征元素之间的关系。如图 4 所示,它由主干 CNN 和掩模生成器分支组成,形成连体架构。主干 CNN 负责提取基本人脸表示,该表示由干净和遮挡的人脸对共享,并且可以是任何 CNN 架构。成对差分孪生网络(PDSN)中的核心掩码生成器模块 Mθ 预计会输出一个掩码,其元素是 [0, 1] 中的实值,并与输入的污染特征相乘以减少其损坏的元素: f∼ (xi j) = Mθ( ·)f(xij),其中 f(·) 是顶部卷积特征,xij 表示第 i 对的被遮挡的人脸图像。输入对内的两个面部属于相同的身份yi,唯一的区别是其中一个在面部块bj上有部分遮挡。学习掩码生成器的关键要求是掩码后特征f(xij)的剩余部分应尽可能与其对应的干净特征f(xi)相似,同时保证成功识别。
将 Mθ 实现为具有多个转换块的模块,并学习不同面部块上遮挡的不同 θ。不同的 θ 解释了不同面部成分的不同属性。例如,眼睛比脸颊区域更重要,因此掩模生成器的输入分布相应变化。在学习掩码生成器j时,除了仅目标块bj被遮挡的面之外,还用其他也被遮挡的块(即目标块bj的4个邻居)来增强样本,以捕获相邻块的依赖性。
此外,通过最小化两种损失的组合来学习掩模生成器:
分类损失:确保那些损害识别的特征元素被掩盖了, ℓcls 负责评估每个特征元素对于识别的重要性,为了找到损坏的特征元素,一个直观的想法是,这些特征元素对识别输入人脸贡献不大,反而可能导致更高的分类损失。因此最直接的监督信号是身份信息,即被遮挡的人脸在掩蔽后应该被主干CNN的分类器正确分类,这给了我们第一个损失项:
〜f(xi j)是遮蔽后被遮挡人脸的顶部卷积特征,F是顶部卷积层旁边的主干CNN模型的fc层。
成对对比损失:它惩罚干净和遮挡面部的掩模卷积特征之间的巨大差异, ℓdiff 评估被遮挡人脸的特征与其真实值的距离。被遮挡面与其相应的干净面的顶部转换激活值之间的差分信号可以很好地指示哪些特征元素是潜在损坏的特征元素。换句话说,差分输入信号起到了注意机制的作用,它鼓励掩模生成器关注那些由于部分遮挡而偏离其真实值的特征元素。因此,向掩模生成器模块提供无遮挡面部特征与其遮挡面部特征之间的绝对差异。成对对比损失,可以最大限度地减少被遮挡和无遮挡面部的掩模特征之间的每个元素差异:
其中, Mθ(·) = Mθ(||f(xi j) − f(xi)||),L1 范数。显然,这种对比损失将惩罚被遮挡面部的那些与无遮挡面部有很大不同的特征元素。
总损失函数:
通过这两种损失,掩模生成器将识别那些对识别有害以及远离其真实值的特征元素,并将其识别为损坏的特征元素。
第二阶段:建立掩码字典
在测试阶段,没有输入面的配对图像,并且其遮挡位置是随机的。因此,训练后的成对差分孪生网络(PDSN)不能直接用于输出探测面的特征丢弃掩模(FDM)。在第二阶段,希望从每个经过训练的掩模生成器 Mθ 中提取固定掩模并相应地构建字典。
对于掩模生成器 Mθj ,首先向经过训练的网络提供大量面部对,其中一个在第 j 个面部块上被遮挡,并获得该生成器的输出掩模,形成一大组 m1 j ,m2 j ,…… ,mP j ,其中 P 是人脸对的数量。对每个 mi j 进行最小-最大归一化后,计算这些 mi js的逐元素平均值,并得到平均掩码 ¯mj。当第 j 个块被遮挡时,可以直接使用此¯mj作为特征丢弃掩模(FDM)。但这将保留具有非常低掩模值的特征元素,这是不合适的,因为该块内的面部成分已完全丢失。因此,认为将这些特征元素设置为零以完全消除噪声至关重要。二值化特征丢弃掩模(FDM)Mj为该掩模生成器是通过将具有最小顶部 τ * K 平均值的特征位置设置为零而导出的:
其中, k = 1, 2, …… ,K, K = C × W × H ,k 表示特征索引,{ ~mj[1], …… , ∼mj[τ ∗K]} 是 ̅mj 的排序后的最小 τ ∗ K 值。 τ 是丢弃阈值,通过这种方式,构造了一个掩码字典,其中每个项目都是一个二进制掩码,指示当对齐的面部的某个块被遮挡时是否丢弃每个特征元素。
第三阶段:遮挡鲁棒识别
利用该掩模字典,可以通过组合相关字典项来导出具有任意部分遮挡的人脸的特征丢弃掩模(FDM)。如果输入面上的遮挡区域与字典中预定义的面部块至少有 0.5 IoU,会将此块计为该面的遮挡块。例如,对于图1中戴墨镜的人脸(a),其遮挡区域覆盖块{bj}j=12-14,因此其特征丢弃掩模(FDM)计算公式为M = M12 ∧M13 ∧M14,其中∧表示逐元素逻辑“AND”,结果M仍然是一个二进制掩码。
图 5 显示了掩模字典中组合的两种遮挡类型的特征丢弃掩模的示例。