腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

时间:2022-10-07 15:01:38


计算机视觉研究院专栏

作者:Edison_G


ECCV 2020即将要开始,很多互联网络公司都有技术论文中标,腾讯优图就8篇入选,涵盖了目标跟踪、行人重识别、人脸识别等领域。

今天我们详细分析优图的“分布式知识蒸馏损失”应用在人脸识别领域,去较大程度改善了困难样本的技术,希望持续关注我们“计算机视觉研究院”!


腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

1、前文摘要

今天我们“计算机视觉研究院”深入解读优图的“分布式知识蒸馏损失改善人脸识别困难样本”技术。上一期我们也详细分享了什么是“知识蒸馏”技术!(链接:​​腾讯优图 | 分布式知识蒸馏损失改善困难样本​​)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

目前基于深度学习的人脸识别算法已经可以较好的处理简单样本,但对于困难样本(低分辨率、大姿态等)仍表现不佳。目前主要有两种方式尝试解决这一问题。第一种方法:充分利用某种需要处理的人脸畸变的先验信息,设计特定的结构或损失函数。这种方式通常不能方便地迁移到其他畸变类型。第二种方法:通过设计合适的损失函数,减小类内距离,增大类间距离,得到更具辨别能力的人脸特征。这种方式一般在简单和困难样本上存在明显的性能差异。

为了提升人脸识别模型在困难样本上的性能,提出了一种基于分布蒸馏的损失函数。具体来说,首先通过一个预训练的识别模型构造两种相似度分布(从简单样本构造的Teacher分布和从困难样本的Student分布),然后通过分布蒸馏损失函数使Student分布靠近Teacher分布,从而减小Student分布中的同人样本和非同人样本的相似度重合区域,提高困难样本的识别性能。

最后作者在常用的大规模人脸测试集和多个包含不同畸变类型(人种、分辨率、姿态)的人脸测试集上进行了充分的实验,验证了方法的有效性。

2、背景

大规模人脸识别在无约束图像上的一个主要挑战是处理姿态、分辨率和光照等方面的不同变化。虽然有些变化很容易解决,但许多其他变化相对困难。如下图所示。 

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

State-of-the-Art (SotA) 像Arcface这样的面部分类器很好地处理特征空间中具有紧密分组的小变化的图像。作者把这些表示为简单的样本。相反,具有较大变化的图像通常远离特征空间中的简单图像,并且更难处理。作者把这些表示为难样品。为了更好地识别这些难样本,通常有两种方案:variation-specific和generic方法。

variation-specific方法通常是为特定的任务设计的。例如,为了实现姿态不变的人脸识别,提取手工制作或学习的特征,以增强对姿态的鲁棒性,同时保持对身份的鉴别性。为了解决分辨率不变人脸识别问题,在绘制低分辨率(LR)和高分辨率(HR)图像的[Shekhar, S., Patel, V.M., Chellappa, R.: Synthesis-based recognition of low resolution faces. In: IJCB. pp. 1–6. IEEE]中,学习了一个统一的特征空间。这些工作[Zhang, K., Zhang, Z., Cheng, C.W., Hsu, W.H., Qiao, Y., Liu, W., Zhang, T.: Super-identity convolutional neural network for face hallucination. In: ECCV. pp. 183–198 (2018)]首先在LR图像上应用超分辨率,然后对超分辨图像进行识别。然而,上述方法是专门为各自的变化而设计的,因此它们从一个变化推广到另一个变化的能力是有限的。然而,处理现实世界识别系统中的多种变化是非常可取的。

与variation-specific方法不同,generic方法侧重于提高小类内距离和大类间距离的面部特征的鉴别能力。基本上,先前的工作分为两类,即基于Softmax损失的方法和基于三重态损失的方法。基于Softmax损失的方法将每个标识视为一个唯一的类来训练分类网络。由于传统的Softmax损失不足以获得判别特征,因此提出了几种提高判别能力的变体[Deng, J., Guo, J., Xue, N., Zafeiriou, S.: Arcface: Additive angular margin loss for deep face recognition. In: CVPR. pp. 4690–4699 (2019)]。相反,基于三重态损失的方法[Schroff, F., Kalenichenko, D., Philbin, J.: Facenet: A unified embedding for face recognition and clustering. In: CVPR. pp. 815–823 ]直接学习每张脸的欧几里德空间嵌入,其中来自同一个人的脸与其他人的脸形成一个单独的集群。通过大规模的训练数据和精心设计的网络结构,这两种方法都能获得不错的结果。

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

然而,这些方法的性能在难样品上急剧下降,如非常大的姿态和低分辨率的面。Arcface的强人脸分类器从HR图像中提取的特征分离得很好,但从LR图像中提取的特征不能很好地区分。从正对和负对的角度分布,我们可以很容易地观察到Arcface在LR人脸图像上存在更多的混淆区域。因此,这种通用方法在难样本上的性能更差是一个自然的结果。


腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

为了缩小简单样品和难样品之间的性能差距,作者提出了一种新的分布蒸馏损失(DDL)。通过利用variation-specific和generic方法中的最佳方法,新提出的方法是通用的,可以应用于不同的变异,以提高难样本中的人脸识别。

具体来说,首先采用当前的SotA人脸分类器作为基线(例如ArcFace)来构造教师之间的初始相似性分布(例如,下图中d3的简单样本)和学生(例如,下图中d1的难样品)。与用域数据对基线模型进行细化相比,新提出的方法首先不需要额外的数据或推理时间(即简单);其次充分利用难样本挖掘,直接优化相似分布,以提高难样本的性能(即有效);最后可以很容易地应用于解决广泛的实际应用中的各种大差异,例如时尚商店中的化妆妇女、火车站的监视面孔、寻找失踪老人或儿童的应用程序等。

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

3、新方法分布式知识蒸馏损失(DDL

首先看下不同知识蒸馏的差异:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

Sampling Strategy from PE and PH

首先,我们介绍了在训练过程中如何在一个小批中构造正负对的细节。给定来自PE和PH的两种类型的输入数据,每个小批由四个部分组成,两种正对(即(x1,x2)∼PE和(x1,x2)∼PH),以及两种具有不同身份的样品(即x∼PE和x∼PH)。

具体来说,一方面构造b正对(即2b样本),另一方面构造b样本,其身份与PE和PH不同。因此,在每个小批中有6b=(2b+b)∗2个样品(更多细节见下图)。

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

  • Positive Pairs 

正对预先离线构建,每对由两个具有相同身份的样本组成。如上图所示。每对正样本按顺序排列。通过深度网络F将数据嵌入到高维特征空间后,可以得到正对s+的相似性如下:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

  • Negative Pairs

与Positive Pairs不同,通过难负样本挖掘(hard negative mining)从具有不同身份的样本中在线构造负对,选择具有最大相似性的负对。具体而言,负对s−的相似性定义为:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

Similarity Distribution Estimation

相似分布估计的过程类似于[Ustinova, E., Lempitsky, V.: Learning deep embeddings with histogram loss. In: NIPS. pp. 4170–4178 (2016)],它是用一维直方图进行的,用一个简单的、分段可微的方式进行的,具有软分配。具体来说,来自同一人的两个样本xi,xj形成一个正对,相应的标签表示为mij=+1。相反,来自不同人员的两个样本形成一负对,标签表示为mij=−1。然后得到两个样本集S和S−分别对应于正对和负对的相似性。

采用R维直方图H+和H−,节点t1=-1,t2,...,tR=1均匀填充[−1,1]。然后,估计直方图H在每个bin的值hr+为:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

Distribution Distillation Loss


腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

利用SotA人脸识别引擎,从两种样本中获得相似分布:简单样本和难样本。在这里,简单样本表明FR引擎表现良好,其中正对和负对的相似性分布被清楚地分离(见上图中的教师分布),虽然难样本表明FR引擎性能差,其中相似分布可能高度重叠(见上图中的学生分布)。

  •  KL散度损失


为了缩小简单样本和难样本之间的性能差距,将难样本的相似性分布(即学生分布)约束为近似简单样本的相似性分布(即教师分布)。教师分布由正对和负对的两个相似分布组成,分别表示为P和P−。同样,学生分布也由两个相似分布组成,分别表示为Q和Q−。在以往KD方法的推动下,采用KL散度来约束学生和教师分布之间的相似性,定义如下:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

  • Order损失

 然而,仅使用KL损失并不能保证良好的性能。事实上,教师分布可能选择接近学生分布,导致正对和负对分布之间的更多混淆区域,这与论文的目标相反(见上图)。

为了解决这个问题,设计了一个简单而有效的术语,名为Order损失,它最小化了期望相似性分布之间的距离,从负对和正对控制重叠。提出的Order损失可以制定如下:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

最后DDL损失为:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

关于各种变化的概括

 接下来,我们讨论了DDL在各种变化上的推广,它定义了我们的应用场景,以及我们如何选择简单/难样本。基本上,我们可以根据图像是否包含可能阻碍身份信息的大的面部变化来区分容易和难样本,例如低分辨率和大姿态变化。

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

实验

result

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

与以往的难样本挖掘方法不同,在训练过程中,基于损失值挖掘难样本时,根据人类先验预先定义难样本。惩罚单个样本或三胞胎,就像以前的难样本挖掘方法一样,并不能充分利用对总体分布的上下文洞察力。 

DDL最大限度地减少了简单样本和难样本之间全局相似性分布的差异,这对于处理难样本和对噪声样本更具有鲁棒性。“global”一词意味着提出的方法利用了对小批中总体分布的足够的上下文洞察力,而不是专注于样本。

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

上图说明了各种SotA方法的估计相似性分布。为了量化这些方法之间的差异,引入了两个统计数据来进行评估,即expectation margin和histogram intersection,即:

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

通常,较小的直方图交集和较大的expectation margin表示更好的验证/识别性能,因为这意味着[Ustinova, E., Lempitsky, V.: Learning deep embeddings with histogram loss. In: NIPS. pp. 4170–4178 (2016)]学习更多的判别嵌入。DDL实现了最接近教师分布的统计,从而获得了最佳的性能。


腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)


腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)

腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)


计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!



腾讯优图——分布式知识蒸馏损失改善人脸识别困难样本(附论文代码)



扫码关注我们

公众号 : 计算机视觉研究院

关注回复“优图知识蒸馏”获取论文及源码