BroadFace

BroadFace

人脸识别的数据集包含了大量的身份和实例,但传统的方法很难反映数据集的整体分布,因为小批量的数据只包含了所有身份的一小部分。然而,传统的方法很难反映整个数据集的分布,因为一个小规模的minibatch只包含所有身份的一小部分。为了克服这个困难,我们提出了一种名为BroadFace的新方法,这是一个全面考虑大量身份集的学习过程。在BroadFace中,线性分类器从过去迭代积累的大量嵌入向量中学习身份之间的最优决策边界。通过一次引用更多的实例,分类器在整个数据集上的最优性自然而然地提高了。因此,通过引用分类器的权重矩阵,编码器也得到了全局优化。此外,我们还提出了一种新型的补偿方法,以增加训练阶段引用实例的数量。BroadFace可以很容易地应用在许多现有的方法上,以加速学习过程,并在推理阶段不需要额外的计算负担,就能获得明显的准确性改进。我们在各种数据集上进行了广泛的消融研究和实验,以展示BroadFace的有效性,同时也实证了我们补偿方法的有效性。在1:1人脸验证和1:N人脸识别任务中,BroadFace在数据集上实现了最先进的结果,并且在图像检索中也是有效的。

1 Introduction

人脸识别是电子支付、智能手机锁屏、视频监控等多种生物识别认证应用的关键技术。人脸识别的主要任务可分为人脸验证和人脸识别。在人脸验证中,将一对人脸进行比较,以验证其身份是否相同或不同。在人脸识别中,通过将某张脸与预先登记的身份库进行比较来确定其身份。关于人脸识别的许多研究[1,3,4,19,27,34,38,44,47]已经进行了几十年。最近采用的卷积神经网络(CNNs)[6,7,22,32,37,39,40,41]极大地提高了识别精度。然而,人脸识别的许多难题仍有待解决。

以前的研究大多集中在提高嵌入空间的辨别力上,因为人脸识别模型是在独立的数据集上评估的,这些数据集包括了未知的身份。最近研究的主流[6,22,39,40]是引入一个新的目标函数,以最大化类间的可分辨性和类内的紧凑性;他们尝试通过引用一个身份代表向量来考虑所有身份,该向量是身份分类的最后一个全连接层的权重向量。

在这里插入图片描述

图1. (a)在典型的mini-batch学习中,编码器f的参数 θ \theta θ和线性分类器的参数W是在一个小的小批量X上优化的。 (b)在所提出的方法中,编码器的参数是在一个小的mini-batch上优化的,但分类器的参数是在小批量和包含过去迭代的嵌入向量e-的大队列E上优化的。

然而,传统方法仍然难以一次覆盖大量的身份集,因为这些方法使用的小批量(图1a)由于内存限制而使用的身份数量远远少于身份的数量。用小规模的mini-batch检验成千上万个身份需要大量的迭代,这使得在一个嵌入空间中学习最优决策边界的任务变得复杂,同时考虑所有的身分。增加mini-batch的大小可能会缓解一些问题,但一般来说,由于内存限制,此解决方案是不切实际的;它也不能保证提高精度[9,12,18,48]。

我们提出了一种新的方法,称为BroadFace,它是一个学习过程,全面考虑海量的身份集(图1b)。BroadFace有一个大队列来保存过去迭代中积累的大量嵌入向量。我们的学习过程通过考虑每次迭代的给定小批量和大队列的嵌入向量,提高了分类器的决策边界的最优性

模型的参数是迭代更新的,所以经过几次迭代后,enqueued embedding向量的误差逐渐增大。因此,我们引入了一种补偿方法,通过参考当前和过去迭代的identity-representative向量之差来降低当前和enqueued嵌入向量之间的预期误差(Therefore, we introduce a compensation method that reduces the expected error between the current and enqueued embedding vectors by referencing the difference of the identity-representative vectors of current and past iterations.)我们的BroadFace有几个优点。(1)通过大量的嵌入向量来更新identity-representative向量,以增加每次迭代所考虑的训练集的部分,(2)通过引用全局优化的identity-representative向量,提高了模型在整个数据集上的优化性,(3)加速了学习过程。我们将这些贡献总结如下:

我们提出了一种新的方式,通过从大量样本中学identity-representative向量,让一个嵌入空间在广泛的视角下区分众多身份。

我们对其行为进行了广泛的消融研究,并在各种数据集上进行了实验,以显示所提出的方法的有效性,并实证了我们补偿方法的有效性。

BroadFace可以很容易地应用在许多现有的人脸识别方法上,以获得明显的改进。此外,在推理过程中,它不需要任何额外的计算负担。

2 Related Works

最近的人脸识别研究倾向于引入一种新的目标函数,通过利用identity-representative向量学习嵌入空间。NormFace[39]揭示了利用identity-representative向量和嵌入向量之间的余弦相似性进行优化比利用内积进行优化更有效。为了提高学习到的特征的判别能力,SphereFace[22]、CosFace[40]和ArcFace[6]在嵌入空间中采用了不同种类的余量。此外,一些作品还采用了额外的损失函数来调节identity-representative向量。

RegularFace[52]最小化了identity-representative向量之间的余弦相似性,UniformFace[8]均衡了所有簇中心之间的距离。然而,由于这些方法是基于mini-batch学习的,因此它们可能会受到大量身份和实例的影响。我们的BroadFace克服了mini-batch学习的限制,并且,它可以很容易地应用于这些人脸识别方法。

在保存模型对以前访问过的数据的知识方面,持续学习[13,20]与BroadFace有着相似的概念。然而,BroadFace与持续学习是不同的,因为BroadFace保存的是同一数据集的先前数据的知识,而持续学习保存的是不同数据集的先前数据的知识

3 Proposed Method

我们描述了人脸识别中广泛采用的学习方案,然后详细说明了提出的BroadFace。

3.1 Typical Learning

Learning of Face Recognition. 一般来说,人脸识别网络分为两部分。(1)从给定图像中提取嵌入向量的编码器网络;(2)将嵌入向量映射为身份概率的线性分类器。通过比较未知身份的图像上的嵌入向量来进行评估,因此在推理阶段,分类器被丢弃。这里,f是指从给定图像 x : e = f ( x ; θ ) x:e=f(x;\theta) x:e=f(x;θ)中提取D维嵌入向量e的编码器网络,其模型参数为 θ \theta θ 。线性分类器从一个CxD维的权重矩阵W的嵌入向量e中对C个身份进行分类。对于一个mini-batch X,目标函数如angular softmax losses的变体[6,22,39]被用来优化编码器和分类器。

在这里插入图片描述

其中 y i y_i yi x i x_i xi的身份标签, ⋅ ^ \hat\cdot ^代表给定向量被 L 2 L_2 L2规范化( e . g .   ∥ e ^ ∥ 2 = 1 e.g.\,\parallel\hat e\parallel_2=1 e.g.e^2=1)。在公式2中, W ^ y i \hat W_{y_i} W^yi作为给定身份 y i y_i yi的representative instance,使其与嵌入向量 e i e_i ei的余弦相似度最大化。因此, W ^ y \hat W_y W^y可以看作是identity-representative向量,也就是样本属于y的期望。

在这里插入图片描述

在这里插入图片描述

图2. 我们的学习在训练阶段参考更多实例来学习分类器。

Limitations of Mini-batch. 模型的参数在一个迭代过程中更新,该过程考虑了一个mini-batch,该mini-batch在每个步骤中只包含整个数据集的一小部分(图2)。然而,使用小的mini-batch可能不能代表整个训练数据集的分布。此外,在人脸识别中,身份的数量非常大,每个mini-batch只包含其中的少数几个,例如,MSCeleb-1M[10]有10M张100k名人的图像。因此,模型的每一次参数更新都可能偏重于少量的身份,这种限制使得寻找最佳决策边界的任务变得复杂。扩大mini-batch sizes可能会缓解这个问题,但这个解决方案需要编码器的大量计算,与batch sizes成正比。

3.2 BroadFace

我们介绍BroadFace,它是一种简单而有效的方法来覆盖大量的样本和身份。BroadFace从大量的嵌入向量中学习全局优化的身份代表向量(图2)。例如,在单个Nvidia V100 GPU上,ResNet-100的mini-batch处理规模最多为256个,而BroadFace可以同时利用8k多个实例。下文介绍了每个步骤。

(1) Queuing Past Embedding Vectors. BroadFace有两个预定义(pre-defined)大小的队列。E存储嵌入向量;W存储过去的identity-representative向量。对于每一次迭代,在模型更新后,给定的mini-batch的嵌入向量 { e i } i ∈ X \{e_i\}_{i\in X} {ei}iX被enqueued到E,每个实例的identity-representative向量 { W y i } i ∈ x \{W_{y_i}\}_{i\in\mathbf x} {Wyi}ix被enqueued到W。通过参考队列中过去的嵌入向量来计算损失 L ( X ⋃ E ) \mathcal L(\mathbf X\bigcup E) L(XE),网络在每次更新时增加探索的实例和身份的数量。

在这里插入图片描述

图3. (a)由于参数更新,过去的嵌入向量(灰圈)与当前迭代的嵌入向量(蓝圈)相距较远,这表明存在显著误差。(b)通过考虑过去和当前迭代的identity-representative 向量(类中心)之间的差异,补偿后的嵌入向量(橙色圈)接近当前迭代的嵌入向量。

(2) Compensating Past Embedding Vectors. 随着编码器的模型参数 θ \theta θ 的迭代更新,过去的嵌入向量 e − ∈ E e^-\in E eE与当前参数的嵌入空间发生冲突(图3a); ϵ = e − e − \epsilon=e-e^- ϵ=ee其中 θ − \theta^- θ为编码器的过去参数权重, e − = f ( x ; θ − ) e^-=f(x;\theta^-) e=f(x;θ)。从过去迭代次数少时,误差 ϵ \epsilon ϵ 的大小相对较小。但是,误差是在迭代过程中逐渐积累起来的,误差阻碍了高效的训练。我们为每个身份引入一个补偿函数 ρ ( y ) \rho(y) ρ(y)来减少误差,作为一个加法模型: e i ∗ = e − + ρ ( y ) e^*_i=e^-+\rho(y) ei=e+ρ(y),其中 e i ∗ e^*_i ei是从补偿的过去嵌入向量得到的当前嵌入向量(图3b)。补偿函数应使属于y的当前嵌入向量和补偿后的过去嵌入向量之间的期望平方误差J最小化

在这里插入图片描述

J相对于 ρ ( y ) \rho(y) ρ(y)的偏导数为:

在这里插入图片描述

因此,最佳补偿函数是当前嵌入向量与过去嵌入向量的期望值之差:

在这里插入图片描述

其中 W − ∈ W W^-\in W WW是identity-representative向量,它在与 e i − ∈ E e_i^-\in E eiE相同的迭代期间被排队到队列中。如公式3所解释的,当向量投射到超球上时,identity-representative向量和期望嵌入向量指向相同的方向,但向量的尺度(scale)不同。因此,我们在每个样本中应用一个简单的归一化项来调整这些尺度: λ = ∥ e i − ∥ / ∥ w y i − ∥ \lambda=\parallel e^-_i\parallel/\parallel w^-_{y_i}\parallel λ=ei/wyi.那么补偿嵌入向量 e ∗ e^* e的计算方式为:

在这里插入图片描述

在实证研究中,compensation function可以显著降低误差。

(3) Learning from Numerous Embedding Vectors. 通过执行前面的两步,BroadFace从过去生成额外的大规模嵌入向量。在我们的方法中,编码器和之前一样,在一个mini-batch上进行训练,而分类器则在mini-batch和额外的嵌入向量上进行训练。编码器和分类器的目标函数定义为:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

图4.提出的方法的学习过程。BroadFace部署了大型队列来存储嵌入向量及其每次迭代的相应identity-representative向量。队列中存储的过去实例的嵌入向量被用来计算identity-representative向量的损失。BroadFace每次迭代都能有效地从数以万计的实例中学习。

编码器的参数 θ \theta θ通过 L e n c o d e r ( X ) \mathcal L_{encoder}(\mathbf X) Lencoder(X)来更新,分类器的权重 W W W通过 L c l a s s i f i e r ( X ⋃ E ) \mathcal L_{classifier}(\mathbf X\bigcup E) Lclassifier(XE)来更新。队列中大量的嵌入向量有助于学习高度精确的identity-representative向量,这些向量在mini-batch上显示出reduced bias,并在整个数据集上增加优化。精确的identity-representative向量可以加速学习过程。此外,我们的方法可以通过在学习过程中添加多个队列来实现(图4),并且在推理阶段没有任何计算成本的情况下显著提高了人脸识别的准确性。

3.3 Discussion

在这里插入图片描述

图5. (a)当前迭代和过去迭代的嵌入向量之间的余弦误差的平均值,有补偿和无补偿,这些误差是在64次迭代中随机抽样计算的。(b)过去(64次迭代前)、当前和补偿后的64次嵌入向量的散点图。

在这里插入图片描述

图6.传统小批量学习的内存消耗说明 传统的小批量学习(蓝线)和提议的BroadFace(红线)的内存消耗说明,取决于小批量的大小。蓝色虚线表示通过线性回归估计大尺寸mini-batch的内存消耗。

在这里插入图片描述

图7. (a)BroadFace中根据队列大小的召回率,有无我们的compensation function;红线表示ArcFace(基线)在测试集上的召回率。(b)当队列大小为32k时,测试集的学习曲线;ArcFace在第45个epoch时达到最高召回率,我们的BroadFace在第10个epoch时达到最高召回率,没有我们的补偿功能时,学习过程会崩溃。

Effectiveness of Compensation. 我们表明,该补偿方法在经验上是有效的。在少量迭代后,enqueued嵌入向量的误差也很小,不需要采用补偿方法。然而,在大量的迭代之后,误差会增加,补偿方法就成为保留大量嵌入向量的必要手段(图5a)。大的累积误差可能会降低网络的训练过程(图7a和图7b)。我们通过t-SNE[24]来说明补偿函数是如何减小过去和当前嵌入向量在二维空间中的差异的(图5b)。应用补偿后,过去的嵌入向量接近于当前的嵌入向量。这说明所提出的补偿函数在实践中工作正常。

Memory Efficiency. 我们将BroadFace与扩大minibatch的大小在内存消耗方面进行了比较(图6)。naive minibatch学习需要大量的内存来forward and backward整个网络。

当基于ResNet-100的模型在32GB的NVidia V100上进行训练时,一个minibatch的最大大小约为240个实例。然而,BroadFace只需要在E中的嵌入向量和权重矩阵W之间进行矩阵乘法(式2)。BroadFace的边际计算成本使得分类器能够从海量的实例集中学习决策边界,例如,单个GPU的8192个实例。需要注意的是,将一个minibatch的大小扩大到8192个,需要大约952 GB的内存,这对于单个GPU来说是难以承受的。

4 Experiments

4.1 Implementation Details

Experimental Setting. 作为预处理,我们通过使用来自两只眼睛、鼻子和两个嘴角的5个面部点,将人脸图像归一化为112x112[6,22,40]。在最近的工作中,我们使用了ResNet-100[11]作为骨干网络[6,15]。在ResNet-100的res5c层之后,部署了批量a block of batch normalization, fully-connected and batch normalization layers,计算出512维的embedding向量。计算出的嵌入向量和线性分类器的权重向量经过L2归一化后,由ArcFace[6]进行训练。我们的模型在4个同步的NVidia V100 GPU上进行训练,并为每个GPU分配了128张图像的minibatch。BroadFace的队列为每个GPU存储了64次迭代积累的多达8192个嵌入向量,因此4个GPU的队列总大小为32768个。为了避免嵌入空间的突然变化,BroadFace的网络是由arcface loss[6]预训练网络训练出来的。

我们采用了随机梯度下降(SGD)优化器,学习率设置为前50k为5x10-3,20k为5x10-4,10k为5x10-5,权重衰减为5x10-4,动量为0.9。

Datasets. 所有的模型都是在MSCeleb-1M[10]上训练的,MSCeleb-1M是由100k个身份的约10M张图片组成的。我们使用重命名的版本[6],通过去除MSCeleb-1M的噪声标签,它包含了85k个身份的3.8M张图像。在测试中,我们对以下各种数据集进行评估:LFW,YouTube Faces,MegaFace,CFP(每个对象有10张正面和4张侧面图像),AgeDB-30(包含12240幅440个年龄变化身份的图像,适用于评价给定方法在年龄变化方面的敏感性),IARPA Janus Benchmark (IJB)(是为了评估无约束的人脸识别系统而设计的,是公开的最具挑战性的数据集之一。IJB-B[42]由67k张人脸图像、7k人脸视频和10k张非人脸图像组成。IJB-C[25]在IJB-B的基础上增加了更多的新被试,增加了遮挡度和地域多样性,由138k张人脸图像、11k张人脸视频和10k张非人脸图像组成。)

4.2 Evaluations on Face Recognition

我们在所述的各种数据集上进行实验,以显示所提出的方法的有效性。

在这里插入图片描述

LFW和YTF被广泛用于评估非限制环境下的验证性能。LFW,包含图像对,通过比较给定图像对的两个嵌入向量来评估一个模型。YTF包含的视频是一组图像;从最短的48帧剪辑到最长的6070帧剪辑。为了比较一对视频,YTF比较一对视频代表嵌入向量,这些嵌入向量是从每个视频中收集的图像的平均嵌入向量。即使这两个数据集的精度高度饱和,我们的BroadFace还是优于其他最近的方法(表1)。

在这里插入图片描述

Table 3. Identi cation and verifi cation evaluation on MegaFace [17]. Ident indicates
rank-1 identifi cation accuracy (%) and Verif indicates a true accept rate
(%) at a false accept rate of 1e-6.

表3。MegaFace的识别和验证评估[17]。Ident rank-1级识别准确率(%),Verif表示真实接受率(%),错误接受率为1e-6。

在这里插入图片描述

CALFW、CPLFW、CFP-FP和AgeDB-30也被广泛用于验证方法对姿势和年龄变化的稳健性。CALFW和AgeDB-30对不同年龄的同一身份有多个实例,CPLFW和CFP-FP对不同姿势(正面和正面)的同一身份有多个实例。BroadFace在所有数据集上都显示出较好的验证精度(表2)。

MegaFace的设计是为了评估人脸识别和验证任务在大量分心者造成的困难下进行的。我们在MegaFace挑战赛1中评估了BroadFace,训练数据集是超过50万张图片。BroadFace在人脸识别和验证任务中都优于其他排名靠前的人脸识别模型(表3)。在改版后的MegaFace[6]上,去除噪声标签,BroadFace也超过了其他模型。

在这里插入图片描述

IJB-B和IJB-C是评估无约束人脸识别最具挑战性的数据集。我们报告了BroadFace与CosFace[40]和BroadFace与ArcFace[6]在验证任务中没有任何增强,如在测试时间内的水平翻转。我们的BroadFace在所有的FAR标准上都有明显的改进(表4)。在IJB-B[42]中,与ArcFace[6]的结果相比,BroadFace在FAR=1e-6上提高了8.25个百分点,在FAR=1e-5上提高了1.48个百分点,在FAR=1e-4上提高了0.36个百分点。

4.4 Analysis of BroadFace

表6.BroadFace对不同队列大小和队列类型的影响 BroadFace改变队列大小和骨干网络类型对IJB-B数据集在人脸识别中的影响。

在这里插入图片描述

Size of Queue. BroadFace只有一个超参数,即队列的大小,以确定过去迭代中积累的最大嵌入向量数量。使用单一参数使得我们的方法很容易调整,而且该参数在决定识别-准确率方面起着非常重要的作用。随着队列规模的增长,性能稳步提高(表6a)。特别是在没有我们的补偿方法的情况下,当队列的大小明显偏大时,就会出现精度下降的情况。然而,我们的补偿方法通过修正enqueued嵌入向量来缓解退化。我们展示了另一个关于图像检索中队列从0到32000的巨大尺寸的实验(图7a)。图7a)。在提出的补偿下,随着队列大小的增加,召回率不断提高。然而,在没有提出补偿的情况下,当队列的大小超过16k时,模型的召回率会下降。

Generalization Ability. 我们的BroadFace普遍适用于任何目标函数和任何骨干网络。我们将BroadFace应用于CosFace[40]和ArcFace[6]这两个广泛使用的目标函数。对于CosFace和ArcFace,BroadFace都提高了识别精度(表4)。我们还将BroadFace应用于一些骨干网络,如MobileFaceNet[5]、ResNet-18[11]和ResNet-34[11]。我们对MobileFaceNet和ResNet-18等轻骨干网络设置了嵌入向量的维度为128,对ResNet-34和ResNet-100等重骨干网络设置了512。BroadFace对所有骨干网都有显著效果(表6b)。特别是,用BroadFace训练的ResNet-34与仅用ArcFace训练的ResNet-100的性能相当,尽管ResNet-34的GFlops少得多

在这里插入图片描述

图7. (a)BroadFace中根据队列大小的召回率,有无我们的compensation function;红线表示ArcFace(基线)在测试集上的召回率。(b)当队列大小为32k时,测试集的学习曲线;ArcFace在第45个epoch时达到最高召回率,我们的BroadFace在第10个epoch时达到最高召回率,没有我们的补偿功能时,学习过程会崩溃。

)BroadFace中根据队列大小的召回率,有无我们的compensation function;红线表示ArcFace(基线)在测试集上的召回率。(b)当队列大小为32k时,测试集的学习曲线;ArcFace在第45个epoch时达到最高召回率,我们的BroadFace在第10个epoch时达到最高召回率,没有我们的补偿功能时,学习过程会崩溃。

Learning Acceleration. 我们的BroadFace可以加速人脸识别和图像检索的学习过程。在人脸识别中,为了克服高饱和度数据集上各方法之间性能的微小差距,还需要多次迭代,因此,我们在图像检索中进行了加速学习过程的实验,以明确显示其有效性(图7b)。因此,我们在图像检索中实验了学习过程的加速,以清楚地显示其有效性(图7b)。我们的BroadFace比基线模型更快更高地达到了性能峰值。如果没有我们的补偿方法,模型就会gradually collapses。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值