论文地址:Occlusion Robust Face Recognition Based on Mask Learning
with Pairwise Differential Siamese Network
综述
深度卷积网络作为人脸识别领域的前沿技术,存在识别模型在有部分遮挡的人脸场景效果不佳的情况。作者根据人视觉系统注意力机制,会自动忽略被遮挡的部分的性质,提出一种掩膜学习策略,来处理人脸识别中特征损失的情况。
- 该策略首先设计一种新型网络pairwise differential siamese network(PDSN)来采集有遮挡和无遮挡人脸对在顶层卷积特征上的差异,建立mask dictionary,记录遮挡区域和特征损失上的关系;
- 当处理有遮挡的人脸图像时,从mask dictionary中选取关联项合并,并与提取人脸特征相乘,以消除特征损失的影响。
背景介绍
深度卷积网络在无约束人脸识别领域取得显著进步,研究人员主要通过采用先进的网络结构或者设计新的损失函数来提高模型的性能,目前已经在一些基准人脸库中超过了人的识别能力。
但这些模型在姿态、面部表情、光照、遮挡情况下仍未达到完美的鲁棒性,而遮挡对模型的影响是当前最需关注的方向。在真实场景中包括人脸配件(太阳镜、面巾、口罩)获取一些随机物品(书、杯子)。当模型没有对大量遮挡图像进行过训练,遮挡的图像会导致类内方差大,类间间隔小。由此提出两种解决方法:
- 一种解决办法是训练又遮挡情况下的识别模型,比如通过合成遮挡的方式进行训练数据增广。这种方法会取得性能提升,但它只能保证特征对更多局部区域进行均匀提取,并不能本质上解决遮挡对识别的影响。不同遮挡情况的人脸特征始终存在差异,如相较于戴了太阳镜,无遮挡的人脸特征在人眼区域承担了更多的信息,除非模型训练的时候不使用人眼区域(当然这是不合理的);
- 一种是本文方法。作者受人眼视觉系统忽视掉遮挡区域,只关注非遮挡区域来识别的特性,提出抛弃被遮挡的特征元素,因此面临的问题为如何确定被随机遮挡的部分会破坏哪些特征元素?传统方法如LBP、HOG、SIFT等输出特征保留了输入图像的空间关系,因此找到对应的特征并不是大问题,但深度卷积网络并不是这样。因此本文的工作是找到人脸遮挡破坏的特征元素,并在人脸识别时消除它们的影响。
要学习到被遮挡区域与受损特征的关系,作者提出PDSN网络结构,通过遮挡生成模块输出的有遮挡和无遮挡人脸作为一对输入数据。其中有遮挡和无遮挡人脸特征的差分信号会反馈回mask generator,使它发挥注意力机制作用,鼓励模型偏重由于人脸部分遮挡导致输出特征差异更大的部分。
- mask generator的损失函数是两个损失的加权:两张图像卷积特征间对比差异、有损识别的遮挡分类。由于模型的识别性能下降通常是由人脸的部分关键块被遮挡导致的,因此对人脸划分预定义的几个区域,只使用这些区域被随机遮挡的照片进行下一步训练。
- 将这些训练好的PDSN通过二值化构建mask dictionary,使字典中的每一个元素都是一条二进制掩码,可以将人脸被遮挡部分对应的特征置为0,被作者称之为Feature Discarding Mask(FDM)。这样在识别的时候将两张人脸中出现遮挡部分的特征都置0,消除遮挡对计算两张人脸相似度的影响。
总结:作者在处理遮挡人脸识别时,相较于不使用容易被遮挡的人脸区域提特征,选择找出人脸遮挡区域和人脸特征对应关系,将被遮挡区域的特征禁止参与相似度比对。
相关工作介绍
类别 | 方法 | 缺点 |
---|---|---|
传统方法 | 将人脸划分为多个区域,使用如SVM识别各区域是否被遮挡,使用未遮挡的区域做识别 | 使用浅层特征,模型性能不高 |
传统方法 | 使用稀疏约束项将训练集图像进行线性组合,来解释被遮挡区域,从而构造出无遮挡人脸 | 需要测试集与训练集类别相同 |
深度学习方法 | 发挥DeepID2+算法模型本身具备的鲁棒性 | 特征来自多张合成,识别需要特定角度 |
深度学习方法 | 通过合成遮挡图像来增加训练数据,更均衡的从更多局部区域提取特征,提升模型从可能遮挡的人脸中提取更有辨别能力的特征 | —— |
深度学习方法 | 在模型中间层添加MaskNet分支,对有遮挡的区域分配更低的激活权重 | 中间层的输出特征没有足够的辨别能力,添加的MaskNet分支缺乏足够的监督信息进行训练 |
深度学习方法 | 设计LSTM自编码器,恢复被遮挡区域 | 不能保证恢复部分能匹配上,特别是开集测试时候 |
总结:作者认为传统方法提取的特征存于浅层层次,缺乏足够辨别能力;深度学习方法由于“黑盒”原因,不能保证确定被遮挡区域与输出特征损失的对应关系,并且缺乏足够丰富的数据训练模型来保证识别性能。
算法设计
本文提到的算法策略可分为三个步骤:
- 提出并训练PDSN,获取人脸遮挡区域与未遮挡情况下的对应关系;
- 根据对应关系建立FDM;
- 测试时,根据遮挡关系,从FDM中生成掩码并与输入图像提取的特征相乘,消除遮挡的影响。
Mask Generators
送入提特征模型的人脸通过提取的关键点进行对齐,作者将对齐后的人脸划分成不重叠的N*N个区域,对每个区域训练一个Mask Generator,并以此寻找到该人脸块被遮挡下人脸特征的损失关系。对于作者手里的训练集,当N=5时,对齐的人脸划分的区域可以和人脸五官建立关系。
如何学习一个Mask Generator,从而使人脸某一快区域被遮挡时的输出特征和这个Mask Generator相乘,能消除遮挡损坏的特征,作者给了两种方法:
- 特征选择。人脸识别特征通常指分类层前的全连接输出结果,但是FC层的每个一个元素都包含了上一层全部的输出结果,所以全连接层最后的输出特征可能混合了遮挡和未遮挡区域。作者通过对比不同身份人脸对在遮挡相同区域时,在全连接层和最后一个卷积层的输出差异得出结论,全连接层的输出基于“身份”标签,具有高度的可选择性。而卷积层的输出在具备足够的局部特征信息时,遮挡破坏的特征具有空间对应关系。因此作者选择使用最后一个卷积层的输出作为所需特征。
- Mask Generators 的输出维度。有相关研究采用2维掩膜来对3维卷积特征进行处理,这意味着卷积特征在C通道上相同的空间位置共享权重,这是建立在卷积所有通道的输出响应在发生遮挡时是等同的这一假设上的。作者为了验证这一假设,使用“median relative rate of change ”(MED)的标准来获取发生遮挡后每个特征元素在偏离真实特征值的程度。具体过程为,将CASIA-WebFace随机选择N张,与添加遮挡的组队计算每个特征元素变化率,并最终计算出每个特征元素变化率的中值。如果发生遮挡时某一特征元素的MED很高,那它将是影响人脸识别的主要噪声之一。实验结果表明每个位置的特征值在卷积不同通道下变化方式是不同的。这表明最后一层卷积的不同通道虽然输入来源相同,但对于遮挡的反应存在差异,因此Mask Generators应该与最后一层卷积是相同规模。
L
θ
=
∑
i
l
c
l
s
(
θ
;
f
~
(
x
j
i
)
,
y
i
)
+
λ
l
d
i
f
f
(
θ
;
f
~
(
x
j
i
)
,
f
~
(
x
i
)
)
l
c
l
s
(
θ
;
f
~
(
x
j
i
)
,
y
i
)
=
−
l
o
g
(
p
y
i
(
F
(
f
~
(
x
j
i
)
)
)
)
f
~
(
x
j
i
)
=
M
θ
(
.
)
f
(
x
j
i
)
l
d
i
f
f
(
θ
;
f
~
(
x
j
i
)
,
f
~
(
x
i
)
)
=
∣
∣
M
θ
(
.
)
f
(
x
i
)
−
M
θ
(
.
)
f
(
x
j
i
)
∣
∣
1
M
θ
(
.
)
=
M
θ
(
∣
f
(
x
j
i
)
−
f
(
x
i
)
∣
)
L
θ
=
−
∑
i
l
o
g
(
p
y
i
(
F
(
M
θ
(
.
)
f
(
x
j
i
)
)
)
)
+
λ
∣
∣
M
θ
(
.
)
f
(
x
i
)
−
M
θ
(
.
)
f
(
x
j
i
)
∣
∣
1
\begin{aligned}\\ L_{\theta}=&\sum_i{l_{cls}(\theta;\widetilde{f}(x_j^i),y^i)+\lambda l_{diff}(\theta;\widetilde{f}(x_j^i),\widetilde{f}(x^i))} \\ &l_{cls}(\theta;\widetilde{f}(x_j^i),y^i)=-log(p_{y_i}(F(\widetilde{f}(x_j^i)))) \\ &\widetilde{f}(x_j^i)=M_\theta(.)f(x_j^i)\\ &l_{diff}(\theta;\widetilde{f}(x_j^i),\widetilde{f}(x^i))=||M_\theta(.)f(x^i)-M_\theta(.)f(x_j^i)||_1 \\ &M_\theta(.)=M_\theta(|f(x_j^i)-f(x^i)|)\\ L_{\theta}=&-\sum_i{log(p_{y_i}(F(M_\theta(.)f(x_j^i)))) + \lambda||M_\theta(.)f(x^i)-M_\theta(.)f(x_j^i)||_1} \end{aligned}
Lθ=Lθ=i∑lcls(θ;f
(xji),yi)+λldiff(θ;f
(xji),f
(xi))lcls(θ;f
(xji),yi)=−log(pyi(F(f
(xji))))f
(xji)=Mθ(.)f(xji)ldiff(θ;f
(xji),f
(xi))=∣∣Mθ(.)f(xi)−Mθ(.)f(xji)∣∣1Mθ(.)=Mθ(∣f(xji)−f(xi)∣)−i∑log(pyi(F(Mθ(.)f(xji))))+λ∣∣Mθ(.)f(xi)−Mθ(.)f(xji)∣∣1
根据以上分析,作者设计PDSN网络结构,由CNN主干和Mask Generators分支组成,CNN主干负责提取人脸特征,Mask Generators分支输出布尔量掩膜特征与人脸特征相乘。输入的人脸对只在遮挡区域有差异,Mask Generators的关键是让经过掩膜处理后的特征尽可能相似,来保证识别的准确率。损失函数如 L θ L_{\theta} Lθ所示由两部分组成:
- l c l s l_{cls} lcls分类损失,要找到被破坏的特征元素,就需要对人脸识别贡献小的特征给予更大的损失,因此利用遮挡人脸的身份信息,将最后一层卷积层经掩膜处理后再通过全连接层,计算softmax损失;
- l d i f f l_{diff} ldiff对比损失,由于遮挡会导致最后一层卷积的输出特征在对应区域产生差异,因此可以将遮挡人脸与未遮挡人脸间的特征差异作为评价特征元素是否被破坏的标志。因此该损失函数能起到注意力机制,使Mask Generators更关注于被遮挡的区域。通过对比损失来最小化有遮挡/无遮挡人脸间特征元素的差异。
权重系数
λ
=
10
\lambda=10
λ=10,
M
θ
M_\theta
Mθ模块包含多个卷积结构且针对不同的遮挡情况进行单独训练,这是因为人脸不同区域携带的有效辨别信息不同,因此
M
θ
M_\theta
Mθ的内容也不同。同时对一种区域遮挡的训练增加了指定区域四个邻域的扩展,来提升鲁棒性。对于每个
M
θ
M_\theta
Mθ作者建议使用20万组人脸对进行训练。
建立掩膜字典
由于测试阶段遮挡的情况是随机的,因此不能直接使用PDSN输出丢弃被破坏特征元素的人脸特征,作者从训练的每个
M
θ
M_\theta
Mθ中提取固定的掩码构建字典。针对每一种遮挡情况的
M
θ
j
M_{\theta_j}
Mθj,对每一组人脸对训练的
m
j
P
(
P
≈
200
k
)
m_j^P(P\approx200k)
mjP(P≈200k)进行最大最小归一化后求均值得到
m
ˉ
j
\bar{m}_j
mˉj。如果直接把它作为第
j
t
h
j^{th}
jth号区域被遮挡的FDM,那么还是会保留一些处于遮挡区域但掩膜值比较小的特征元素,由于这些元素是人脸被遮挡的区域,因此并没有意义,需要将这些区域全部置为0。二值化的FDM是将最小的前
τ
∗
K
\tau*K
τ∗K的均值置为0,其它置为1。
M
j
[
k
]
=
{
0
m
ˉ
j
[
k
]
∈
{
m
ˉ
j
[
1
]
,
.
.
.
,
m
ˉ
j
[
τ
∗
K
]
}
,
1
e
l
s
e
.
K
=
C
∗
W
∗
H
M_j[k]=\begin{cases} 0 &\bar{m}_j[k]\in\lbrace \bar{m}_j[1],...,\bar{m}_j[\tau*K] \rbrace, \\ 1 &else. \end{cases} \\ K=C*W*H
Mj[k]={01mˉj[k]∈{mˉj[1],...,mˉj[τ∗K]},else.K=C∗W∗H
建立掩膜字典
通过前期工作建立的FDM字典,任意部分的人脸遮挡都可以通过对字典项进行组合导出,即人脸划分区域中各子块有超过50%的面积被遮挡,则取出该区域被遮挡的掩码,并将所有取出的掩码进行“与”运算得到合并的掩码。
实验
实验细节
- 使用标准MTCNN检测人脸并获取5个关键点,通过相似性变化获得对齐人脸,并resize为112*96像素;
- 借鉴FCN-8s训练人脸遮挡区域检测模型,训练数据包括CASIA-WebFace及部分ARdataset进行遮挡合成(首先对VGG16骨架网络进行训练建立初始环境,最终得到的遮挡检测模型在Facescrub数据集上取得了较好的效果);
- 采用改进ResNet50的ArcFace作为CNN主干,Mask Generators使用CONV-PReLU-BN的基本形式实施并使用sigmoid函数将输出映射到[0,1]区间。
- 训练包含3步,使用CASIA-WebFace数据集及large-margin-cosine损失函数训练CNN主干、冻结CNN主干并使用人脸对训练Mask Generators(由于实验发现外围遮挡对模型性能几乎没有影响,只使用中间3*3区域的遮挡训练)、通过随机遮挡人脸来确定FDM与遮挡区域的对应关系。最后使用小学习率对模型进行微调,避免最终的 二值化掩膜导致输出结果不一致。
- 测试时,人脸的相似度是计算全连接层输出特征的余弦距离,遮挡的人脸区域应该在比对时被排除。
- 基础模型,使用CASIA-WebFace训练的最佳人脸识别模型(Trunk CNN)、使用合成25%遮挡的CASIA-WebFace微调的模型(Baseline)。
Ablation Study
τ \tau τ在0~0.45间变化,测试得到的掩膜字典在AR数据集上的效果,包含太阳镜或围巾遮挡人脸+1张无遮挡人脸底库,记录TOP1的识别准确率,当 τ = 0.25 \tau=0.25 τ=0.25时取得的效果最好。
τ \tau τ | 0 | 0.05 | 0.15 | 0.25 | 0.35 | 0.45 |
---|---|---|---|---|---|---|
Acc. | 95.84 | 97.29 | 97.36 | 98.26 | 97.98 | 97.92 |
为了验证对掩膜二值化的必要性,作者做了掩膜二值化(Binary)、保持掩膜原值(Soft)、低于阈值的置0但高于阈值的保持不变(Soft+Binary)三组实验。实验证明,保持掩膜原值的方法识别准确度下降最明显,这可能是因为掩膜值低的特征包含太多噪声,而Soft+Binary的方式取得了和Binary非常接近的效果。因此,使用完全二值化的处理方式能在取得高识别性能的同时,降低计算和存储。
Type | Binary | Soft | Soft+Binary |
---|---|---|---|
Sunglasses | 98.19 | 96.67 | 98.19 |
Scarf | 98.33 | 97.22 | 99.03 |
为了分析 l d i f f l_{diff} ldiff部分的重要性,作者设 λ = 0 \lambda=0 λ=0训练模型,实验结果证明有 l d i f f l_{diff} ldiff的情况下模型性能显著提升。
AR sunglass | AR scarf | MF1 occ | |
---|---|---|---|
无 l d i f f l_{diff} ldiff | 95.97 | 97.92 | 54.80 |
有 l d i f f l_{diff} ldiff | 98.19 | 98.33 | 56.34 |
LFW上的测试性能
测试了从LFW数据集中选取的6000对非训练数据,经过更多的遮挡数据训练的Baseline较Trunk CNN降低了0.52%,这是因为LFW数据集中大多数人脸没有遮挡的情况,这与参考文献22中提到的一个模型如果通过遮挡和无遮挡数据训练增加鲁棒性,那么它在正常情况的下性能会有下降。而本文的方法由于是抛弃被遮挡的特征元素而不是强迫模型适应被遮挡的特征,因此能保持模型性能基本不变。
MegaFace上的测试性能
与LFW上的结果一致,作者对 Facescrub数据集合成一些遮挡,包括太阳镜、口罩、手、眼罩、围巾、书、手机、杯子、帽子、水果、扩音器、头发等,结果如“MF1 occ”所示。证明经过遮挡训练的Baseline好于Trunk CNN,但本文方法性能最优。
AR Dataset上的测试性能
测试有两种方式:每个类别使用超过1张图像组成底库、每个类别只使用1张图像组成底库。本文训练的模型都没有使用这个数据集进行微调,与之对比的其它引用方法通常使用了这个数据集进行了训练。实验证明本文方法对于遮挡人脸识别较Trunk CNN有显著提升,并且由于Baseline的性能也说明对于被破坏的特征需要丢弃才能消除影响。
结论
- 设计PDSN并训练,查找人脸遮挡与特征元素破坏间的对应关系;
- 建立字典,并在识别时屏蔽被破坏的特征元素,使模型对于被遮挡的人脸识别任务具有良好的性能;
- 该方法可以在有遮挡和无遮挡的人脸识别中都具有较好的识别性能。