腾讯AI实验室和清华大学共同发表的ICCV2019文章,针对有遮挡的人脸图像提出的人脸识别方法,在训练阶段通过网络学习出不同位置下的掩模字典,与人脸图像对应的特征张量进行点乘操作,把遮挡部分去掉。用剩下的未遮挡特征进行识别。
一、背景
问题:
- 现有的CNN人脸识别模型对有遮挡的人脸数据表现效果差
- 现实生活的人脸图像/视频中,遮挡随处可见,比如太阳镜、围巾、口罩等物品可能会将人脸的重要信息给覆盖掉。这种遮挡人脸图像的“类内差异、类间相似性“问题比正常的人脸图像更严重
启发:
人类视觉系统会隐式地忽略遮挡部分,集中于非遮挡部分的内容。
提出:
本文的核心问题是:给定一张随机局部遮挡的人脸图像,如何定位出受遮挡内容影响的特征?本文的主要工作就是要找到受遮挡的特征元素并对应的响应去除掉,避免影响识别效果。
- 为了学习出图像遮挡区域与受影响的特征元素之间的对应关系,本文提出pairwise differential siamese network(PDSN),该网络包含一个掩模生成器mask generator
- 用PSDN学习出的掩模组成一个mask dictionary,包含了不同遮挡位置对应的mask。利用该字典生成每张测试图像对应的Feature Discarding Mask,用来消除受遮挡部分影响的图像特征
二、方法
总框架图:
Ⅰ 学习掩模生成器Mask Generator
1.问题描述:
掩模生成器是利用遮挡图像和无遮挡图像对应的特征之间的差异作为输入,对遮挡导致特征信息有偏差的部分进行消除。使遮挡图像的特征在消除了偏差部分之后仍能得到正确的识别结果,并且与无遮挡图像的特征相似。
将图像分为
N
∗
N
N * N
N∗N个blocks,blocks表示为
b
j
j
=
1
N
∗
N
{b_j}_{j=1}^{N*N}
bjj=1N∗N。给定一张
b
j
b_j
bj block位置受遮挡的人脸图像特征
f
(
x
j
i
)
f(x_j^i)
f(xji),经过mask generator学习出对应的掩模
M
θ
M_\theta
Mθ,二者经过点乘后,对遮挡部分的特征进行消除,剩下的特征由下面式子表示:
f
f
f 的选择:
通常图像的特征都是取FC层的输出结果,但是FC层中每一个神经元都整合了前一层输出的所有信息,导致遮挡区域和无遮挡区域的特征信息混肴在一起。
另一方面,FC层的神经元对不同identity是有选择性的。因为本文是针对所有不同identity图像下的同一遮挡区域
b
j
b_j
bj 进行掩模mask的学习,而FC层的特征会根据identity的不同而产生不同位置的偏差特征,即使这些图像的遮挡位置是一样的。
下图验证了FC层对不同identity具有选择性:
由上图所示,要想获取受遮挡位置影响的部分偏差特征,就要消除掉不同identity带来的影响,因此本文选取最后一个卷积层输出
C
o
n
v
F
e
a
t
u
r
e
s
Conv Features
ConvFeatures 作为mask generator的输入。
M
θ
M_\theta
Mθ 的输出维度:
一般来说掩模mask都是一张维度为
W
∗
H
W*H
W∗H 的二维掩模
M
M
M,但是Conv features是三维
C
∗
W
∗
H
C*W*H
C∗W∗H的。这意味着要对同一位置下所有通道的feature共享一致的mask权重。这种做法存在一种假设:即遮挡内容对所有通道的Conv feature 元素都有影响。
下图验证了这一假设的合理性:
上图用遮挡图像和无遮挡图像的Conv Features特征,取八个通道,各通道下计算了feature maps的MED,反映同一位置下,遮挡图像与无遮挡图像特征的相对差异:
图3显示不是所有通道的特征都会受遮挡内容影响。因此取
M
θ
M_\theta
Mθ 的维度为
C
∗
W
∗
H
C*W*H
C∗W∗H。
2.Pairwise Differential Siamese Network:
为了学习掩模生成器,本文提出PSDN网络框架,以遮挡、无遮挡图像做为输入,用来提取两种图像的特征
f
(
x
j
i
)
f(x_j^i)
f(xji) 和
f
(
x
j
)
f(x_j)
f(xj):
PSDN Loss:
该网络的Loss由两部分组成,分别是分类损失softmax loss和对比损失contrastive loss:
(1)softmax loss:将
f
(
x
j
i
)
f(x_j^i)
f(xji) 乘上对应的掩模
M
θ
M_\theta
Mθ之后,因遮挡造成的特征偏差部分被消除掉,用消除后的特征进行后续的分类任务:
(2)contrastive loss:因为遮挡下的特征包含的信息判别性不足,为了充分利用同一identity下无遮挡图像的特征,本文另加一个对比损失,使遮挡特征和无遮挡特征在经过
M
θ
M_\theta
Mθ之后保持相似,提高遮挡特征的判别性:
因此,本文PSDN网络的总目标函数为:
Ⅱ 建立Mask Dictionary
利用上一阶段训练出的每一个mask generator
M
θ
M_\theta
Mθ 来建立对应的字典:
M
j
[
k
]
M_j[k]
Mj[k] 表示在block j 位置有遮挡的mask字典。假设输入P对图像,他们在block j 位置有遮挡,掩模生成器生成P个mask
m
j
1
,
m
j
2
,
.
.
.
,
m
j
P
{ m_j^1, m_j^2, ..., m_j^P}
mj1,mj2,...,mjP。对这些maks的各个位置取平均值,然后对平均值进行排序,最小的
t
∗
K
t*K
t∗K个平均值二值化为0,其余为1
Ⅲ Occlusion Robust Recognition
给定一张测试人脸,其Feature Discarding Mask (FDM) 由相应遮挡位置的Mask Dictionary 组合而成。同样把图像划分成
N
∗
N
N*N
N∗N blocks,进行遮挡位置检测。若遮挡位置与
b
j
,
b
k
,
b
l
b_j,b_k,b_l
bj,bk,bl 的IOU高于0.5,则该图像的FDM取
M
j
,
M
k
,
M
l
M_j , M_k ,M_l
Mj,Mk,Ml 的“与”操作得到。
三、实验
Face Detection : MTCNN
Image Size : 112 * 96 pixels
Occlusion Detection : FCN-8s
Network Structure : refined ResNet50 in ArcFace
Train Data : CASIA-WebFace
Test Data : LFW, MegaFace, AR dataset
Performance on LFW :
Performance on MegaFace :
Performance on AR dataset :
四、总结
- 本文在Pairwise Differential Siamese Network 基础上实现了针对遮挡人脸图像的识别任务
- 为不同遮挡位置学习出对应的特征掩模,与特征图进行点乘之后,把受遮挡内容影响的特征信息给去除掉,并用净化后的特征进行识别。
- 在PSDN中还学习了一个掩模生成器,利用遮挡和无遮挡图像的特征差异来学习出相应的掩模mask
- 将上述的masks二值化形成掩模字典。在测试阶段时,先对图像做遮挡检测,找到掩模字典中遮挡位置对应的mask进行“与”操作,得到该图像的Feature Discarding Mask (FDM)