介绍

英文: 即One-shot face recognition,
问题: 测量的学习算法仅看一眼就能识别人员的能力;
 (较好的小样本人脸识别的例子。)
目标:为普通人脸(可以看多次)和”one-shot”人脸共同建立一个更有效的泛化的人脸分类器

常见实例应用:

  1. 大规模名人识别中,某些名人只有一个或很少量的可用图像的情况
  2. 执法场景中,对目标人员只有一个身份证照片可用。

问题挑战:

  1. 需要一个表示模型,用于将人脸图像转换为一种可区分特征的领域
    办法:典型办法:
    利用来自不同人群的许多图像(称为基本集,并且列出训练图像数量有限的人员为low-shot集),并且使用来自基本集的图像训练一个表示模型,用来为low-shot集中的图像提取面部特征。
    问题:当两个面部数据集的分布非常不同时,在前者上训练的表示模型在后者上可能没有足够的判断力。
  2. “one-shot”面部识别的挑战来自于在特征空间中评估给定人物的分区。
    表示模型将同一人的面部图像转换到特征空间中的点簇中,要识别给定任务的所有面孔,我们需要估算该人物在特征空间中的形状,大小和位置。然而,仅利用一张图像(对应于特征空间中的一个点),就不容易准确而可靠地估计要是被的人的面部分布,这使得在特征空间中估计此人的分区边界非常困难。

最近改善:

  1. 加强表示模型的泛化和区分能力:
    比如range loss, fisher face, center invariant loss, marginal loss, sphere face等
  2. 改善对特征空间的划分的评估,包含两个准则:数据增强和分类器适应。
    数据增强:

    1. 使用一种分期推断的变种自动编码器来学习数据集统计信息。

    2. 设计了一种为数据匮乏的新奇种类变幻出额外样本的方法。

    3. 基于一种生成对抗网络的附加生成器网络,其中判别器使用的是建议的成对残差网络

      分类器适应:
      思想是通过多层转换或者某种特定的loss来使基本分类器适应新的分类器,从而扩大“one-shot”人脸类的分类器空间。

本篇办法:

  1. 阶段1:表示学习
    使用基础集的所有训练图像来构建人脸表示模型

  2. 阶段2:”one-shot”学习
    根据阶段1学习的表示模型来训练一个多类分类器,来区分基本集和one-shot集中的人。

    本实验设计了一种生成式的one-shot学习模型来改善我们在one-shot集中人脸的辨别性能。生成模型的核心思想是合成对one-shot类有效的辅助数据,借此跳过one-shot类的特征空间以实现one-shot人脸识别。(这是目前较为先进的一种方法)

主要贡献:

  1. 在为基础类和新类训练一个通用分类器时,我们将生成对抗网络合并起来使用了。详细的说,生成器试图为one-shot类合成更多有效的假数据以丰富one-shot类的数据空间,同时判别器用于指导人脸数据的生成,模拟基本类的数据变化并适应以生成新类。
  2. 我们首先通过在我们的基本类1上训练一个深层卷积网络得到一个特征域,我们在此基础上设计了生成对抗网络。也就是说,我们利用辅助分类器建立了条件生成对抗网络以增加更有效的特征,并且增强了one-shot类的通用分类器的学习。
  3. 我们在一个大型的one-shot面部数据集上评估了我们提出的模型,并且在one-shot分类中取得了显著的改进,准确率为99%的覆盖率达到了94.98%。同时,我们的模型仍然可以获得非常吸引人的性能,对于基本类Top1的准确率达到了99.80%。
1. 我们在特征域而不是图像域上训练生成模型。特别是,图像合成是一个比图像分类分析更加具有挑战性的一项任务。特别是现在的生成模型,如何生成多场景下有意义的高质量面部图像仍然是一个公认的问题。这也许也是我们没有找到一个现存的使用能够合成面部图像的生成模型 的one-shot学习模型的原因。另外,我们将生成模型和深层结构结合成一个统一的模型,以寻求更通用的特征提取器。

相关工作

在整个图像识别领域,最近的low-shot(慢镜头?)学习工作也引来了很多的关注。他们的基本任务和one-shot面部识别是非常相似的,不过在整个图像识别领域:作者们将“ImageNet”的数据分为基本类和low-shot类(或是新类),目标是能够同时分辨出基本类和low-shot类中的图像。由于领域不同,他们的解决方法和我们的也相当不同。篇幅有限就不复述人家的解决方案了,不过列出结果以作对比。

整体而言,one-shot学习仍然是一个开放性的问题。一个自然地信息资源来源是通过花式的“数据生产”得到额外的数据。广义上讲,要学习新类,就需要挖掘和迁移熟悉类中得到的知识。也就是说,需要我们在识别新类的时候,模仿人类改编之前获取经验的能力。接下来我们将回顾一下不同类别的one-shot学习方法,包括最流行的“广义特征学习”,分类器学习和适应 以及 数据增强。

提到的算法

Generative One-Shot Learning

卷积生成对抗网络模型尝试在图像空间合成虚假的数据。许多种改进变体吸收类标签或者潜在信息以获得类条件样本。要在真实与合成数据中找到对应的区别是所有基于GAN方法的共同问题。在我们提到的生成式one-shot学习中,我们要在特征空间中增强one-shot类。一个通识是在特征空间而非图像空间中让两种区别更加一致会更容易一些。

考虑到随机噪音 $ z\in \mathbb{R^{d_z}} $,真实特征$\phi{(x)} \in \mathbb{R^{d_x}}$,以及它的one-hot标签$y \in \mathbb{R^{d_y}}$。在生成器中,将先验输入噪音$p_z(z)$和one-hot标签y在共同隐性表示中结合,并且对抗性训练框架在如何组成这种隐性表示方面提供了相当大的灵活性;在判别器中,$\phi(x)$和y是作为输入和判别函数,其中$\phi{(\cdot)}$是样本x的特征提取器。二乘最小最大函数方程是:

\mathcal{L^f_d} = \mathbb{E}[\log{(1-D(G(z|y)))}] \\\mathcal{L^r_d} = \mathbb{E}[\log(D(\phi(x)))]

其中生成器旨在使得生成的特征与真实特征相似,尝试使$\mathcal{L_d^f}$最小; 而判别器旨在通过最大化$\mathcal{L^r_d + L^f_d}$区分真假特征。

Knowledge Transferable Generator

上面的卷积生成模型不包括基本类的变化,这样的话模型可能不能有效的将基本类中的知识改编用在one-shot类中。我们假设基本类和one-shot类遵循相同的真实分布。当基本类中的实例在真实分布中取样良好的时候,而one-shot实例在采样范围中。通过将一个基本类的类内方差迁移到一个one-shot类中,我们可以将该one-shot类中的特征分布丰富到与基本类的相似。接下来的任务是将类内方差建模。通过假设方差服从一个多元高斯分布,Cao提出了一种联合贝叶斯模型,该模型将身份特征+类内方差作为面部特征。就研究者观察,特征中心很好地拟合了身份特征。因此,面部特征可以表示为:$\phi(x_i) = c_i + v_i$,其中c~i~是第i个类的特征中心,$\phi(x_i)$是类中的任意一个样本,而v~i~表示从任意特征到特征中心的方差。

[ 生成式one-shot面部识别器的示意图,其中z时随机噪音向量,y是one-hot标签,$X_r = \phi(X)$是真实特征,而X~f~是生成的虚假特征,$G(\cdot)$是带有随机噪音z,原本真实特征X~r~,和one-hot标签y作为输入的生成器。带归一的$N(\cdot)$的生成器的输出将获得虚假特征X~f~。$D(\cdot)$是判别器,作用是区分真实和虚假的特征,$C(\cdot)$是一个常规的多类别分类器]

总结

这个网络的功能是输入面部图像,通过一个卷积网络提取人脸的真实身份特征,利用生成网络生成一个更加通用的面部图像,然后交给判别器分辨身份特征的真假,同时给其中的分类器得出类别标签(即个人身份)。思想是通过从基本类数据集中提取面部基本信息用于补偿单镜头类的数据,从而增强单镜头类的数据信息。

由于是单镜头面部图像,图像数量较少导致信息较少。该方法的思想是通过使用其它较充足的面部图像数据(基本集)预训练一个人脸的表示模型,然后通过这个拥有人脸基本特征的表示模型 来训练一个多类别的分类器来对数据集进行分类,这个数据集包含单镜头面部图像集和基本集。

而生成网络部分选择先提取特征,通过特征空间而不是图像空间的一致来维持身份信息。这里使用的生成器将 基本集中的特征的平均值与 该类的类内方差 相加作为面部特征的表示,从而得到更加通用的面部图像。判别器和分类器同时进行训练学习,而生成器则与它们同步。