论文标题
《A Discriminative Feature Learning Approach for Deep Face Recognition》
一种用于深度人脸识别的判别性特征学习方法
作者
Yandong Wen、Kaipeng Zhang、Zhifeng Li 和 Yu Qiao
来自深圳市计算机视觉与专利重点实验室、中国科学院深圳先进技术研究院和香港中文大学
初读
摘要
- 卷积神经网络(CNNs)在计算机视觉领域被广泛使用,显著提高了现有技术水平。
- 在大多数可用的CNNs中,softmax 损失函数被用作训练深层模型的监督信号。
- 为了增强深度学习特征的判别力,本文为人脸识别任务提出了一种新的监督信号,称为中心损失。
- 具体来说,中心损失同时学习每个类深层特征的中心,并惩罚深层特征与其对应类别中心之间的距离。
- 更重要的是,我们证明了所提出的中心损失函数在 CNNs 中是可训练且易于优化的。
- 通过 softmax 损失和中心损失的联合监督,我们可以训练一个健壮的CNNs,以尽可能多地获得具有两个关键学习目标——类间离散性和类内紧凑性的深层特征,这对人脸识别至关重要。
- 效果:
- 令人鼓舞的是,我们的 CNNs(采用这种联合监督)在几个重要的人脸识别基准上,如 Labeled Faces in the Wild (LFW)、YouTube Faces (YTF) 和 MegaFace Challenge,取得了最先进的准确率。
- 特别是,我们的新方法在小训练集协议(包含少于 500000 张图像和少于 20000 人)下的 MegaFace (最大的公共领域人脸基准)上取得了最佳结果,显著提高了以前的结果,并为人脸识别和人脸验证任务设定了新的技术水平。
结论
- 在本文中,我们提出了一种新的损失函数,称为中心损失。
- 通过将中心损失与softmax损失结合,共同监督CNN的学习,可以显著增强深度学习特征的判别力,从而实现稳健的人脸识别。
- 在几个大规模的人脸基准上的广泛实验已经令人信服地证明了我们提出方法的有效性。
再读
Section 1 Introduction
-
CNNs:
-
卷积神经网络(CNNs)在视觉领域取得了巨大成功,显著提高了分类问题的技术水平,例如对象、场景、动作等等。这主要得益于大规模训练数据和端到端学习框架。最常用的 CNNs 执行特征学习和标签预测,将输入数据映射到深度特征(最后一层隐藏层的输出),然后到预测的标签,如图 1 所示。
- 图片注解:图 1. 卷积神经网络的典型框架。
-
在通用的对象、场景或动作识别中,可能的测试样本的类别在训练集内,这也被称为闭集识别(close-set identification)。因此,预测的标签决定了性能,而 softmax 损失能够直接解决分类问题。在这种情况下,标签预测(最后一层全连接层)就像一个线性分类器,而深度学习的特征很容易是可分离的。
-
-
人脸识别任务的判别性:
- 对于人脸识别任务,深度学习的特征不仅需要是可分离的,而且还需要具有判别性。
- 由于在实际操作中不可能预先收集所有可能的测试身份进行训练,因此 CNN 中的标签预测并不总是适用。深度学习的特征需要足够判别性和泛化能力,以便在没有标签预测的情况下识别新的未见类别。
- 判别性能力描述了特征在紧凑的类内变化和可分离的类间差异两个方面,如图 1 所示。判别性特征可以通过最近邻(NN)或k最近邻(k-NN)算法很好地进行分类,这些算法不一定依赖于标签预测。然而,softmax 损失仅鼓励特征的分离性。因此,所得到的特征对于人脸识别来说并不足够有效。
-
小批量下的损失设计:
- 在 CNNs 中为判别性特征学习构建高效的损失函数并非易事。因为随机梯度下降(SGD)是基于小批量(mini-batch)来优化 CNNs 的,这不能很好地反映深度特征的全局分布。由于训练集规模巨大,每次迭代输入所有训练样本是不切实际的。
- 作为替代方法,对比损失和三元组损失分别为图像对和三元组构建损失函数。然而,与图像样本相比,训练对或三元组的数量显著增加。这不可避免地导致收敛速度慢和不稳定。通过仔细选择图像对或三元组,问题可能会部分缓解。但这会显著增加计算复杂度,并且训练过程变得不方便。
-
中心损失(center loss):
在本文中,我们提出了一种新的损失函数,即中心损失(center loss),用以有效增强神经网络中深度学习特征的判别能力。
- 具体来说,我们为每个类别的深度特征学习一个中心(一个与特征维度相同的向量)。在训练过程中,我们同时更新中心并最小化深度特征与其对应类别中心之间的距离。
- CNNs 在 softmax 损失和中心损失的联合监督下进行训练,有一个超参数来平衡这两个监督信号。直观地说,softmax 损失强制不同类别的深度特征保持分离。中心损失有效地将同一类别的深度特征拉向它们的中心。
- 在联合监督下,不仅类间特征差异被放大,而且类内特征变化也被减少。因此,深度学习特征的判别能力可以得到高度增强。
-
本文贡献
我们的主要贡献总结如下:
- 我们提出了一种新的损失函数(称为中心损失)来最小化深度特征类内距离。据我们所知,这是第一次尝试使用这样的损失函数来帮助监督 CNN 的学习。在中心损失和 softmax 损失的联合监督下,可以获得高度判别性的特征,以支持鲁棒的人脸识别,这一点得到了我们的实验结果的支持。
- 我们展示了所提出的损失函数在 CNN 中非常容易实现。我们的 CNN 模型是可训练的,并且可以通过标准的 SGD 直接优化。
- 我们在 MegaFace Challenge(具有 100 万张人脸用于识别的最大公共域人脸数据库)的数据集上进行了广泛的实验,并在小训练集评估协议下设置了新的最先进水平。我们还验证了我们的新方法在 Labeled Faces in the Wild(LFW)和 YouTube Faces(YTF)数据集上的卓越性能。
Section 2 Related work
- 近年来,通过深度学习进行的人脸识别取得了一系列的突破。将一对人脸图像映射到距离的想法始于[6]。他们训练了连体网络,使得正对(即同一个人的人脸图像对)的相似度度量小,而对负对(即不同人的人脸图像对)的相似度度量大。
- Hu 等人学习了一种非线性变换,并在正负人脸图像对之间产生了一个判别的深度度量边界。这些方法需要图像对作为输入。
- 最近,[34, 31] 通过挑战识别信号(softmax 损失函数)来监督 CNNs 的学习过程,这为深度学习特征带来了更丰富的与身份相关的信息。
- 之后,[29, 37] 采用了联合识别-验证监督信号,从而得到了更具判别性的特征。
- [32] 通过在每个卷积层添加一个全连接层和损失函数来增强监督。
- 三元组损失的有效性已在 [27, 25, 21] 中得到了证明。通过深度嵌入,将锚点与正样本之间的距离最小化,而将锚点与负样本之间的距离最大化,直到满足边际为止。它们在 LFW 和 YTF 数据集上实现了最先进的性能。
Section 3 The Proposed Approach
拟议的方法
在本节中,我们将详细阐述我们的方法。我们首先使用一个简单的例子直观地展示深度学习特征的分布。受此分布的启发,我们提出了中心损失来提高深度学习特征的判别能力,然后进行了一些讨论。
- 图片注解:表 1. 我们在简单示例中使用的 CNN 架构,称为 LeNets++。其中一些卷积层后面跟着最大池化层。\((5, 32)_{/1,2}\times2\) 表示有两个级联的卷积层,每个层有 \(32\) 个 \(5\times5\) 大小的滤波器,其中步长和填充分别为 \(1\) 和 \(2\)。\(2_{/2,0}\) 表示网格为 \(2\times2\) 的最大池化层,其中步长和填充分别为 \(2\) 和 \(0\)。在 LeNets++ 中,我们使用参数化修正线性单元(PReLU)作为非线性单元。
3.1 A toy example
简单示例
-
损失函数
softmax 损失函数如下所示:
\[\mathcal{L}_S=-\sum^m_{i=1}\log\frac{e^{\boldsymbol{W}^T_{y_i}\boldsymbol{x}_i+b_{y_i}}}{\sum^n_{j=1}e^{\boldsymbol{W}^T_j\boldsymbol{x}_i+b_j}}\qquad\qquad(1) \]- 在方程 1 中,\(x_i\in\R^d\) 表示第 \(i\) 个深度特征,属于第 \(y_i\) 类。\(d\) 是特征维度。
- \(W_j\in\R^d\) 表示最后一层全连接层中权重 \(W\in\R^{d\times n}\) 的第 \(j\) 列,\(b\in\R^n\) 是偏置项。
- 小批量的大小和类的数量分别是 \(m\) 和 \(n\)。为了简化分析,我们省略了偏置项。(实际上,性能几乎没有什么差别)。
-
二维可视化:
- 在本节中,我们展示了在 MNIST 数据集上的一个简单示例。我们将 LeNets 修改为一个更深更宽的网络,但将最后一个隐藏层的输出数量减少到 2(这意味着深度特征的维度为 2)。因此,我们可以直接在 2-D 平面上绘制特征以进行可视化。网络架构的更多细节在表 1 中给出。
- 在图 2 中绘制了得到的 2-D 深度特征,以说明其分布情况。由于最后一层全连接层像一个线性分类器一样作用,不同类的深度特征通过决策边界来区分。从图 2 我们可以观察到:
- 在 softmax 损失的监督下,深度学习特征是可分离的,
- 深度特征判别性不够,因为它们仍然显示出显著的类内变化。因此,直接使用这些特征进行识别是不合适的。
- 图片注解:图 2. 在 softmax 损失的监督下,训练集 (a) 和测试集 (b) 中深度学习特征的分布,这里我们使用 50K/10K 的训练/测试划分。不同颜色的点表示来自不同类的特征。最好在彩色中查看。
3.2 The center loss
中心损失
-
原版中心损失
那么,如何开发一个有效的损失函数来提高深度学习特征的判别能力呢?直观地说,最小化类内差异同时保持不同类别的特征可分离是关键。为此,我们提出了中心损失函数,如方程 2 所示。
\[\mathcal{L}_C=\frac{1}{2}\sum^m_{i=1}\Vert\boldsymbol{x}_i-\boldsymbol{c}_{y_i}\Vert^2_2\qquad\qquad(2) \]- \(\boldsymbol{c}_{yi}\in\R^d\) 表示第 \(y_i\) 类深度特征的类中心。
-
基于小批量进行更新的中心损失
-
这个公式有效地刻画了类内差异。理想情况下,\(\boldsymbol{c}_{y_i}\) 应该随着深度特征的变化而更新。换句话说,我们需要考虑整个训练集,并在每次迭代中平均每个类的特征,这是低效甚至不切实际的。因此,中心损失不能直接使用。这可能是直到现在这样的中心损失从未在 CNN 中使用过的原因。
-
为了解决这个问题,我们进行了两个必要的修改。首先,我们不是根据整个训练集来更新中心,而是基于小批量进行更新。在每次迭代中,通过平均相应类的特征来计算中心(在这种情况下,一些中心可能不会更新)。其次,为了避免少数错误标记样本引起的大幅波动,我们使用一个标量 \(\alpha\) 来控制中心的学习率。\(\mathcal{L}_C\) 关于 \(x_i\) 的梯度以及 \(\boldsymbol{c}_{y_i}\) 的更新方程计算如下:
\[\begin{gather} \frac{\partial\mathcal{L}_C}{\partial\boldsymbol{x}_i}=\boldsymbol{x}_i-\boldsymbol{c}_{y_i}\qquad\qquad(3)\\ \Delta\boldsymbol{c}_j=\frac{\sum^m_{i=1}\delta(y_i=j)\cdot(\boldsymbol{c}_j-\boldsymbol{x}_i)}{1+\sum^m_{i=1}\delta(y_i=j)}\qquad\qquad(4) \end{gather} \]-
其中,如果条件满足,则 \(\delta(condition)=1\),如果不满足,则 \(\delta(condition)=0\)。\(\alpha\) 被限制在 \([0, 1]\) 范围内。
-
我们采用 softmax 损失和中心损失的联合监督来训练 CNN,以进行判别性特征学习。公式如方程 5 所示。
\[\begin{align} \mathcal{L}&=\mathcal{L}_S+\lambda\mathcal{L}_C\\ &=-\sum^m_{i=1}\log\frac{e^{\boldsymbol{W}^T_{y_i}\boldsymbol{x}_i+b_{y_i}}}{\sum^n_{j=1}e^{\boldsymbol{W}^T_j\boldsymbol{x}_i+b_j}}+\frac{1}{2}\sum^m_{i=1}\Vert\boldsymbol{x}_i-\boldsymbol{c}_{y_i}\Vert^2_2 \end{align}\qquad\qquad(5) \]
-
-
-
显然,由中心损失监督的 CNN 是可训练的,并且可以通过标准的 SGD 进行优化。一个标量 \(\lambda\) 被用来平衡这两个损失函数。如果将 \(\lambda\) 设置为 0,传统的 softmax 损失可以被认为是这种联合监督的一个特例。在算法 1 中,我们总结了在具有联合监督的 CNN 中的学习细节。
-
我们还进行了实验来说明 \(\lambda\) 如何影响分布。图 3 显示了不同的 \(\lambda\) 导致不同的深度特征分布。在适当的 \(\lambda\) 下,深度特征的判别能力可以得到显著增强。此外,特征在 \(\lambda\) 的广泛范围内具有判别性。因此,联合监督有助于深度学习特征的判别能力,这对于人脸识别至关重要。
- 图片注解:图 3. 在 softmax 损失和中心损失的联合监督下深度学习特征的分布。不同颜色的点表示来自不同类的特征。不同的 \(\lambda\) 导致不同的深度特征分布(\(\alpha=0.5\))。白色点(\(c_0, c_1,\cdots,c_9\))表示深度特征的 10 个类中心。最好在彩色中查看。
3.3 Discussion
- 联合监督的必要性
- 如果我们只使用 softmax 损失作为监督信号,得到的深度学习特征将包含大量的类内变化。
- 另一方面,如果我们只通过中心损失来监督 CNN,深度学习特征和中心将退化为零(此时,中心损失非常小)。
- 简单地使用其中任何一个都无法实现判别性特征学习。因此,有必要将它们结合起来,共同监督 CNN,这一点已经通过我们的实验得到了证实。
- 与对比损失和三元组损失相比
- 最近,对比损失和三元组损失也被提出用于增强深度学习人脸特征的判别能力。然而,对比损失和三元组损失都面临着在训练集中构成样本对或样本三元组时的数据急剧扩张问题。
- 我们的中心损失与 softmax 损失具有相同的要求,不需要对训练样本进行复杂的重新组合。因此,我们的 CNN 的监督学习更高效且易于实现。
- 此外,我们的损失函数更直接地针对类内紧凑性的学习目标,这对判别性特征学习非常有益。
Section 4 Experiments
实验
必要的实现细节在 4.1 节给出。然后我们在 4.2 节调查参数λ和α的敏感性。在 4.3 节和 4.4 节中,我们在几个公共域人脸数据集(LFW,YTF 和 MegaFace Challenge)上进行了广泛的实验,以验证所提出方法的有效性。
4.1 Implementation Details
实施细节
-
预处理(Preprocessing)
- 所有图像中的人脸及其标志点都是由最近提出的算法检测的。
- 我们使用 5 个标志点(两只眼睛、鼻子和嘴角)进行相似变换。当检测失败时,如果是在训练集中,我们就简单地丢弃该图像,但如果是一个测试图像,我们就使用提供的标志点。
- 人脸被裁剪成 \(112\times96\) 的 RGB 图像。遵循先前的惯例,RGB 图像中的每个像素(在 [0, 255] 范围内)都通过减去 \(127.5\) 然后除以 \(128\) 进行归一化。
-
训练数据(Training data)
- 我们使用网络收集的训练数据,包括 CASIAWebFace,CACD2000,Celebrity+。
- 在移除出现在测试数据集中的身份图像后,大约有 70 万张图像,涉及 17,189 个独特的人物。
- 在 4.4 节中,我们只使用了约 49 万张训练数据,遵循小训练集的协议。图像进行水平翻转以进行数据增强。与[27](2亿)、[34](4千万)和[25](2千万)相比,这是一个小规模的训练集。
-
CNNs 中的详细设置(Detailed settings in CNNs)
-
我们使用 Caffe 库以及我们的修改来实现 CNN 模型。本节中所有的 CNN 模型都具有相同的架构,具体细节在图 4 中给出。
- 图片注解:图 4. 用于人脸识别实验的 CNN 架构。采用联合监督。卷积层和局部卷积层中的滤波器大小均为 \(3\times3\),步长为 \(1\),后面跟着 PReLU 非线性单元。三个局部卷积层中的权重分别在 \(4\times4\)、\(2\times2\) 和 \(1\times1\) 的区域内部共享。卷积层的特征图数量为 \(128\),局部卷积层的特征图数量为 \(256\)。最大池化的网格为 \(2\times2\),步长为 \(2\)。第 \(4\) 个池化层和第 \(3\) 个局部卷积层的输出被连接起来作为第 \(1\) 个全连接层的输入。全连接层的输出维度为 \(512\)。最好在彩色中查看。
-
为了公平比较,我们分别训练了三种模型:在 softmax 损失监督下的模型 A,softmax 损失和对比损失监督下的模型 B,softmax 损失和中心损失监督下的模型 C。
-
这些模型在两个GPU(TitanX)上以 256 的批量大小进行训练。
- 对于模型 A 和模型 C,学习率从 0.1 开始,在 16K、24K次迭代时除以 10。完整的训练在 28K 次迭代时完成,大约需要 14 小时。
- 对于模型 B,我们发现它收敛得更慢。因此,我们将学习率初始化为 0.1,并在 24K、36K 次迭代时切换。总迭代次数为 42K,耗时 22 小时。
-
-
测试中的详细设置(Detailed settings in testing)
- 深度特征取自第一个全连接层的输出。我们提取每个图像及其水平翻转图像的特征,并将它们连接起来作为表示。
- 得分是通过两个特征在 PCA 之后的余弦距离来计算的。
- 最近邻和阈值比较用于身份识别和验证任务。注意,我们所有测试只使用单个模型。
4.2 Experiments on the parameter λ and α
参数 \(\lambda\) 和 \(\alpha\) 的实验
-
超参数 \(\lambda\) 控制着类内变化,而 \(\alpha\) 控制着模型 C 中中心 \(c\) 的学习率。这两个参数对于我们模型都是至关重要的。因此,我们进行了两个实验来调查这两个参数的敏感性。
- 图片注解:图 5. LFW 数据集上不同模型的面部验证准确率,分别由 (a) 不同 \(\lambda\) 和固定 \(\alpha=0.5\) 的模型实现。 (b) 不同 \(\alpha\) 和固定 \(\lambda=0.003\) 的模型实现。
-
在第一个实验中,我们将 \(\alpha\) 固定为 0.5,并且使 \(\lambda\) 从 0 变化到 0.1 来学习不同的模型。这些模型在 LFW 数据集上的验证准确率如图 5 所示。
- 非常明显,仅使用 softmax 损失(在这种情况下 \(\lambda\) 为 0)不是一个好的选择,导致验证性能不佳。适当选择 \(\lambda\) 的值可以提高深度学习特征的验证准确率。
- 我们还观察到,我们的模型在广泛的 \(\lambda\) 范围内验证性能保持稳定。
-
在第二个实验中,我们将 \(\lambda\) 固定为 0.003,并且使 \(\alpha\) 从 0.01 变化到 1 来学习不同的模型。这些模型在 LFW 上的验证准确率如图 5 所示。
- 同样,我们的模型在广泛的 \(\alpha\) 范围内验证性能保持稳定。
4.3 Experiments on the LFW and YTF datasets
LFW 和 YTF 数据集上的实验
-
在本部分中,我们在两个著名的不受约束环境中的人脸识别基准上评估了我们的单个模型,即 LFW 和 YTF 数据集。它们是图像和视频中人脸识别的优秀基准。其中的一些示例如图 6 所示。
- 图片注解:图 6. LFW 和 YTF 数据集中的某些人脸图像和视频。绿色框架中的脸部图像对是正对(同一个人),而红色框架中的是负对。每个图像中的白色边界框表示要测试的脸部。
-
我们的模型是在 0.7M 的外部数据上训练的,这些数据中没有与 LFW 和 YTF 中的人重叠。在本节中,我们将 \(\lambda\) 固定为 0.003,模型 C 的 \(\alpha\) 为 0.5。
-
LFW 数据集
包含来自 5749 个不同身份的 13,233 张网络收集的图像,姿态、表情和光照变化很大。遵循无限制且有标记的外部数据的标准协议。我们测试了 6,000 对人脸,并在表 2 中报告了实验结果。
-
YTF数据集
由 1,595 个人的 3,425 个视频组成,平均每人有 2.15 个视频。视频片段的持续时间从 48 帧到 6,070 帧不等,平均长度为 181.3 帧。我们再次遵循无限制且有标记的外部数据协议,并在表 2 中报告了在 5,000 个视频对上的结果。
-
-
实验结果
- - 图片注解:表 2. LFW 和 YTF 数据集上不同方法的验证性能
- 从表 2 的结果中,我们可以得出以下观察。
- 首先,模型 C(由 softmax 损失和中心损失共同监督)显著优于基线模型 A(仅由 softmax 损失监督),将性能从(LFW 上的 97.37% 和 YTF 上的 91.1%)提升到(LFW 上的 99.28% 和 YTF 上的 94.9%)。这表明联合监督可以显著增强深度学习特征的判别能力,证明了中心损失的有效性。
- 其次,与模型B(由 softmax 损失和对比损失组合监督)相比,模型 C 取得了更好的性能(99.10% 对 99.28% 和 93.8% 对 94.9%)。这显示了中心损失在设计 CNNs 中的优势。
- 最后,与两个数据库上的最先进结果相比,所提出的模型 C(使用更少的训练数据和更简单的网络架构)在两个数据库上始终位于基于两个数据库的顶级方法之列,在表 2 中大多数现有结果之上。这显示了所提出 CNNs 的优势。
4.4 Experiments on the dataset of MegaFace Challenge
在 MegaFace Challenge 数据集上的实验
-
MegaFace 数据集最近作为测试基准发布。这是一个非常具有挑战性的数据集,旨在评估在数百万个干扰项(不在测试集内的人)规模下的人脸识别算法的性能。MegaFace 数据集包括画廊集(gallery set)和探针集(probe set)。
-
图片注解:图7. MegaFace 数据集中的一些示例人脸图像,包括探针集和画廊。画廊至少包含一张正确的图像和数百万个干扰项。由于每个主题的内部变化很大,以及干扰项的多样性,身份识别和验证任务变得非常具有挑战性。
-
画廊集包含来自 690K 不同个体的超过 100 万张图像,作为来自 Yahoo 的 Flickr 照片的一个子集。
-
在这个挑战中使用的探针集包括两个现有数据库:Facescrub 和 FGNet。
- Facescrub 数据集是一个公开可用的数据集,包含 530 个独特个体的 100K 张照片(男性 55,742 张图像和女性 52,076 张图像)。通过每个身份都有足够的样本,可以减少可能的偏差。
- FGNet 数据集是一个面部老化数据集,包含来自 82 个身份的 1002 张图像。每个身份都有不同年龄(从 0 岁到 69 岁)的多张面部图像。
-
-
在两种协议(大或小训练集)下,MegaFace 数据集有几种测试场景(身份识别、验证和姿态不变性)。
- 如果它包含少于 0.5M 的图像和 20K 个主题,训练集被定义为小规模。遵循小训练集的协议,我们将训练图像的大小减少到 0.49M,同时保持身份数量不变(即 17,189 个主题)。
- 与 Facescrub 数据集重叠的图像被丢弃。
- 为了公平比较,我们也在小训练集上根据不同的监督信号训练了三种 CNN 模型。这些模型分别被称为模型 A-、模型 B- 和模型 C-。在模型 C- 中,遵循第 4.3 节的相同设置,\(\lambda\) 为 0.003,\(\alpha\) 为 0.5。我们使用提供的代码进行了实验,该代码仅在三个画廊(Set 1)中的一个上测试我们的算法。
-
身份识别(Face Identification)
-
身份识别的目的是将给定的探针图像与画廊中的同一人的图像匹配。在这个任务中,我们需要计算给定探针人脸图像与画廊之间的相似度,画廊中至少包含一张与探针图像具有相同身份的图像。
-
此外,画廊包含不同数量(从 10 到 100 万)的干扰项,,使得测试的挑战性逐渐增加。更多关于细节的信息可以在[23]中找到。在身份识别实验中,我们通过累积匹配特征(Cumulative Match Characteristics,CMC)曲线来展示结果。它揭示了正确画廊图像被排名在前 K 的概率。结果如图 8 所示。
- 图片注解:图 8. 小训练集协议下不同方法(在 Set 1 上,1M 和 10K 干扰项)的 CMC 曲线。(a)1M 干扰项,(b)10K 干扰项。其他方法的结果由 MegaFace 团队提供。
-
-
身份验证(Face Verification)
-
对于身份验证,算法应该决定给定的一对图像是否为同一人。探针和画廊数据集之间产生了 40 亿个负对。我们计算了真接受率(TAR)和假接受率(FAR),并在图 9 中绘制了不同方法的操作特征(ROC)曲线。
- 图片注解:图 9. 小训练集协议下不同方法(在 Set 1 上,1M 和 10K 干扰项)的操作特征(ROC)曲线。(a)1M 干扰项,(b)10K 干扰项。其他方法的结果由 MegaFace 团队提供。
-
-
我们将我们的方法与许多现有方法进行了比较,包括 i) LBP 和 JointBayes,ii) 我们的基线深度模型(模型A-和模型B-),以及iii) 其他小组提交的深度模型。
- 如图8和图9所示,手工特征和浅层模型表现不佳。随着干扰项数量的增加,它们的准确率急剧下降。
- 此外,基于深度学习的方法比传统方法表现更好。然而,仍然有很大的性能提升空间。
- 最后,通过 softmax 损失和中心损失的联合监督,模型 C- 取得了最佳结果,不仅明显超越了模型 A- 和模型 B-,而且显著优于其他已发表的方法。
-
干扰项对抗:
-
为了满足实际需求,人脸识别模型应该能够对抗数百万个干扰项,实现高性能。在这种情况下,只有与至少 1M 个干扰项相关的 Rank-1 识别率以及在低假接受率(例如,\(10^{-6}\))下的验证率才有实际意义。我们在表 3 和表 4 中报告了不同方法的实验结果。
- 图片注解:表 3. 在 MegaFace 数据集上,不同方法在 1M 个干扰项下的识别率。
- 图片注解:表 4. 在 MegaFace 数据集上,不同方法在 \(10^{-6}\) FAR下的验证真接受率(TAR)在 1M 个干扰项下。
-
从这些结果中,我们可以得出以下观察:
- 首先,毫不奇怪,模型 C- 在面部识别和验证任务中持续以显著优势超越模型 A- 和模型 B-,确认了设计的损失函数的优势。
- 其次,在小型训练集的评估协议下,所提出的模型 C- 在面部识别和验证任务中取得了最佳结果,在面部识别上比第二名高出 5.97%,在验证上高出 10.15%。
- 此外,值得注意的是,模型 C- 甚至超越了一些使用大训练集训练的模型(例如,北京 FaceCall 公司)。最后,Google 和 NTechLAB 的模型在大型训练集的协议下取得了最佳性能。值得注意的是,他们的私有训练集(Google 的 500M 和 NTechLAB 的 18M)比我们的(0.49M)大得多。
-