FaceNet:人脸识别和聚类的统一嵌入外文翻译资料

 2022-11-18 20:10:24

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


FaceNet:人脸识别和聚类的统一嵌入

摘要

尽管人脸识别领域最近取得了重大进展[10、14、15、17],但大规模有效地实施人脸验证和识别对当前的研究方法提出了严峻的挑战。在本文中,我们提出了一个叫做FaceNet的系统,它直接完成从脸部图像到紧凑的欧几里得空间的映射,在这种空间中距离直接对应于面部相似的度量。一旦制造了这种空间,就可以通过使用带有FaceNet嵌入特性的标准技术轻松实现人脸识别、验证和集群等任务。

我们使用了深度卷积网络来直接优化嵌入本身的方法,而不是像之前的深度学习方法使用中间瓶颈层的方法。我们使用一种新颖的在线三重采集方法来生成匹配或不匹配的面块。这种方法的好处是每张脸只使用128个字节,能实现最先进的人脸识别性能,代表性更强,效率更高。

在广泛使用的Wild (LFW)数据集中,我们的系统实现了99.63%的精度,创造了新记录。在YouTube上,DB达到了95.12%。与最佳发布结果[15]相比,在这两个数据集中我们的系统都将错误率降低了30%。我们还引入了谐波嵌入的概念,以及谐波三重损失,它描述的是不同版本的面层嵌入(由不同的网络生成),它们相互兼容,并允许彼此间直接进行比较。

1.介绍

在本文中,我们提出了一个统一的人脸验证系统,完成识别(同一个人)和聚类(在这些面孔中找到普通的人)。我们采用的是使用深度卷积网络学习欧几里得嵌入每张图像的方法。该网络经过训练,使嵌入空间中L2距离的平方直接对应于人脸的相似度:同一个人的2脸拥有较小的距离,而不同人群的面距离较大。

一旦生成这种嵌入,那么上述的任务就会变得很简单:脸验证仅仅涉及到两个嵌入之间的距离的阈值,识别成为了k - NN分类问题并且可以使用诸如k - means或聚集集群等现成技术来实现集群化。

之前的面部识别方法是基于使用一种分类层[15,17]的深度网络,即在一组已知的人脸上进行训练,然后将一个中间的瓶颈层作为一个代表,用来泛化未在训练中使用的人脸的识别。这种方法的缺点是它的不直接性和低效率:人们不得不寄希望于瓶颈表示能够很好地推广于新面孔。除此之外,一个瓶颈层的表示尺寸通常非常大(千计尺寸)。最近的一些工作[15]使用PCA减小了尺寸,但这是很容易在网络的一层中被学习一个线性转换。

与这些方法相比,FaceNet将其输出直接训练成一个使用基于LMNN[19]的三重损失函数的紧凑128 - d嵌入。由两个匹配的面部缩略图和一个不匹配的脸缩略图组成,其目的是通过距离边缘将正对与负对分开。缩略图是脸部区域的紧缩产物,除了缩放和翻译之外没有2D或3D对齐。

选择使用哪组三元组数据对于获得良好性能是非常重要的,并且,受课程学习的启发[1],我们提出了一个新的在线负向模板采集策略,以确保在网络训练中持续增加三元组数据的难度。为了提高聚类的准确性,我们还探索了一种正向的采集技术,这种技术支持对于单个人嵌入的球星群集。

图1例示的是我们的方法在面对极大的变化性时能处理的性能。显示的是来自PIE[13]的图像,这是以前被认为人脸验证系统难以完成的。

本文其余部分的概述如下:在第2节中,我们回顾了该领域的文献;第3.1节定义了三重损失,第3.2节描述了我们的新三合选择和训练过程;在第3.3节中,我们描述了所使用的模型架构。最后,在第四节和第五节中,我们给出了一些嵌入的定量结果,并定性地探讨了一些聚类结果。

2.相关研究

类似于其他使用深层网络的近期研究成果[15,17],我们的方法是一种纯粹的数据驱动方法,它直接从脸部的象素上来学习它的表示。没有使用工程特性,而是使用一个大数据集来实现在姿势、照明和其他条件变化的情况下的适当的不变性。

在本文中,我们探索了两种不同的深度网络架构,它们在最近计算机视觉研究圈中取得了巨大的成功。两者都是深度卷积网络[8,11]。第一个架构基于Zeileramp;amp;Fergus[22]模型,该模型由多个交错层的卷积、非线性激活、局部响应标准化和最大汇聚层组成。此外,我们还增加了几个1times;1times;d的卷积层,这是由[9]的工作所启发的。第二个架构基于Szegedy等的初始模型,该模型最近被用作ImageNet 2014[16]的顺利运行方法。这些网络使用混合层来并行运行多个不同的卷积和汇聚层,并将它们的响应连接起来。我们发现,这些模型可以将参数数量减少多达20倍,并有可能减少类似性能所需的每秒浮点运算次数。

有大量的关于面部验证和识别功能的研究成果。回顾本篇文章的研究领域,我们只简单地讨论一下最近最相关的研究成果

[15,17,23]的研究都采用了复杂的多阶段系统,即对一个带有PCA的深卷积网络的输出进行了维数减少和SVM分类的操作。

Zhenyao等[23]利用一个深度网络将面孔扭曲成一个典型的正面视图,然后学习CNN,将每个面孔分类为一个已知的个体。为了进行面部验证,使用了SVMs集成的和网络输出的PCA。

Taigman等[17]提出了一种将人脸与一般的三维形状模型相结合的多级方法。经过训练,一个多类网络对超过4000个个体进行人脸识别任务。作者也尝试了一个所谓的Siamese网络,直接优化了两个脸部特征之间的距离。他们在LFW上的最佳表现(97.35%)来自三个使用不同的对齐方式和颜色通道的网络。网络的预测距离(基于chi;2内核的非线性SVM预测)与使用非线性SVM相结合。

Sun等[14,15]提出了一个紧凑的,因而相对简易的计算网络。他们使用了25个这样的网络,每一个都使用不同的面部贴片。对于LFW的最终性能(99.47%[15]),作者将50个响应(含有规则的和翻转的)组合在一起。采用PCA和联合贝叶斯模型[2],有效地与嵌入空间中的线性变换相对应。他们的方法不需要显式的2D / 3D对齐方式。通过使用分类和验证损失的组合来训练网络。验证损失类似于我们使用的三重损失[12,19],因为它最小化了相同个体脸图之间的L2距离,并在不同个体的脸图之间的距离上增加了一个边界。与三重损失支持相对距离约束相比,其主要的区别在于只有对图像进行了比较。

在Wang等[18]的研究成果中,出现了通过语义和视觉相似度对图像进行排序的一个类似的损失概念。

3.方法

FaceNet使用一个深度卷积网络。我们讨论了两个不同的核心架构:Zeileramp;Fergus[22]样式网络和最近的Inception[16]类型网络。这些网络的细节在第3.3节中描述。

考虑到模型的细节,并将其视为一个黑盒(见图2),我们的方法最重要的部分在于整个系统的端对端学习。为此,我们采用三重损失直接反映了我们在人脸验证、识别和集群中所要达到的目标。也就是说,我们努力将图像x嵌入到一个特征空间Rd中,这样,所有人脸之间的平方距离独立于成像条件,相同的人脸距离小,而不同的人脸图像之间的平方距离是很大的。

虽然我们并没有直接与其他损失进行比较,例如,在[14]Eq .(2)中使用对正向和负向的一对,但我们认为三重损失更适合于面部验证。原因是来自于[14]的这种损失支持同一个人的所有脸图被投射到嵌入空间中的一个点上。然而,三重损失试图从一个人到所有其他的脸之中建立一个边缘。这样一来,人脸就可以在流形上存在,同时还能保持距离,从而辨别出其他身份。

下面的部分描述了这种三重损失,以及它如何大规模地被有效学习。

3.1三重损失

嵌入由d表示,它将一个图像x嵌入d维欧几里得空间。此外,我们将此嵌入限制在d维超球体上,即||f(x)||2 = 1。这一损失是存在于[19]近邻分类的背景下。在这里,我们想要确保一个特定的人的图像xia (锚)更接近于所有其他图像的xip(正),而不是其他任何一个人的图像xin (负)。如图3所示。

产生所有可能的三元组数据会导致过多三元组数据容易被满足(即满足在等式一中的条件)。这些三元组数据不会对训练有所贡献,并且因为他们仍然会通过网络从而导致集合缓慢,。选择有效的三元组数据是很重要的,因为可以帮助改进模型。下面的部分将讨论我们使用的三联选择的不同方法。

3.2.三重选择

为了确保快速收敛选择违反三重约束的三元组数据至关重要。

在整个训练集里计算argmin和argmax是不可能的,另外,这可能会导致训练不佳,因为有误的或差的成像将会主导具有代表性的正负样本。以下选择可以避免这个问题。

在每个n个步骤中,使用最近的网络检查点生成三联,并在数据的子集上计算argmin和argmax。

在线生成三元组数据。这可以通过在一个小批量中选择具有代表性的正/负样本来完成。

在这里,我们只关注在线生成,并以几千个样本的顺序使用大量迷你批次,且只在一个小批中计算argmin和argmax。

要对锚的正距离有精准的表示,需要确保在每个迷你批次中都有每张人脸的最小数量的样本。在我们的实验中,我们对训练数据进行了抽样,这些数据大约有从每个迷你批次中每个特性中选择出来的40张人脸。此外,每个迷你批次添加随机抽样的负样本人脸。

我们没有选择最具代表性正样本,而是在一个小批量中使用所有锚定正对,同时仍然选择代表性负样本。我们没有在小批量中对具有代表性的正对和所有的正对对进行并排比较,但我们在实践中发现,在训练开始时,所有的锚固正方法更加稳定,收敛速度稍微快一些。

我们还探索出了脱机与联网结合的生成三元组数据方法,它可能批量使用更小,但是实验还没有准确定论。

正如前面提到的,正确的三重选择对于快速收敛至关重要。一方面,我们希望在随机梯度下降(SGD)[20]中提高收敛性的小批量。另一方面,细节实现可以使数以百计的范例更有效。然而,对于批量大小的主要限制是我们在小批量中选择具有代表性的相关的三元组数据的方式。在大多数实验中,我们使用大约1800个样本。

3.3.深卷积网络

在我们所有的实验中,我们用带有标准的backprop[8,11]和AdaGrad[5] 的随机梯度下降(SGD)来训练CNN。在大多数实验中,我们以降低模型的最终定型的0.05的学习速度开始。这些模型是由随机的,类似于[16]来初始化的,并在CPU集群上进行了1,000到2000小时的训练。在训练500h后,损失的减少(和准确性的增加)急剧下降,但是额外的训练仍然可以显著提高性能。边缘alpha;设置为0.2。

我们使用了两种类型的体系结构,并在实验部分中详细讨论了它们的优缺点。它们的实际区别在于参数和每秒峰值速度的不同。根据应用程序的不同,最佳模型可能也不同。在数据中心中运行的模型有很多参数,需要极高的浮点运算速度,而在移动电话上运行的模型需要的参数很少,因此适合于内存。我们所有的模型都使用整流线性单位作为非线性激活函数。

第一类,如表1,按照[9]所示,在Zeileramp;amp;Fergus[22]结构的标准卷积层之间添加了1times;1times;d的卷积层,并在22层深度的模型中得到了结果。它总共有1.4亿个参数,每个图像需要大约16亿每秒浮点运算数。

我们使用的第二个类别是基于GoogLeNet的初始模型[16]。这些模型有20times;的更少的参数(大约6 M -7.5 M),和最多5times;的更低的浮点运算速度(在500M -1.6B之间)。这些模型中的一些大大减少了(深度和过滤器数量)规模,这样它们就可以在移动电话上运行了。一个是NNS1,有26M参数,每个图像只需要220M每秒浮点运算次数。另一个NNS2有4.3M参数和2000万每秒浮点运算次数。表2详细描述了最大的网络结构NN2。NN3在体系结构上是相同的,但其输入尺寸减少了160x160。NN4的输入大小仅为96x96,因此大大降低了CPU的需求(NN2为1.6B)。除了减少的输入尺寸之外,在较高的层次上,它不使用5x5的卷积,因为那时的接受域已经太小了。一般情况下,我们发现5x5的卷积可以在整个过程中被移除,但精度只有很小的下降。图4比较了我们所有的模型。

4.数据集及其评估

在四个数据集上对我们的方法进行评估,除了在Wild和YouTube上的标记人脸外,我们还评估了人脸验证任务的方法,即用两张人脸图像L2距离阈值D(xi,xj)平方值来确定相同和不同的分类。所有的脸对(i,j)都是用Psame表示的,而所有的不同的等式都用Pdiff表示。

4.1.保留测试集

我们保留了大约100万张图片,这和我们的训练集有相同的分布,但对应着不同的个体。为了评估,我们把它分成五组,每组200k的图像。在100k times;100k图像对中计算的是远端和VAL速率。从五种分段中得出标准误差。

4.2.个人照片

这是一个与我们的训练集类似的测试集,但是已经被验证了有非常纯净的标签。它由三个个人照片集合组成,总共有大约12k的图像。我们计算所有12k平方对图像的FAR和VAL速率。

4.3.学术数据集

在Wild(LFW)标记的面孔是用于面部验证的实际学术测试集[7]。遵循不受限制的标准协议,标注外部数据,并报告平均分类精度,以及平均值的标准误差。

Youtube上的DB[21]是一个新的数据集,在人脸识别领域中得到了普及[17,15]。这个设置与LFW类似,但是没有对图像进行验证,而是使用成对的视频。

5.实验

默认采用在100M-200M之间的训练脸部缩略图,其中包括大约8M不同的个体。每个图像上都有一个人脸检测器,每个面部都有一个紧密的包围圈。这些脸部缩略图被调整到相应的网络的输入尺寸。在我们的实验中,输

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[24133],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版