登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 计算机类 > 计算机科学与技术 > 正文

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

 2022-08-27 10:00:36  

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


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

Florian Schroffamp;Dmitry Kalenichenkoamp;James Philbin

摘要

尽管人脸识别领域最近取得了重大进展[10,14,15,17],但大规模高效地实现人脸验证和识别对现有方法提出了严峻挑战。在这篇论文中,我们提出了一个叫做FaceNet的系统,它可以直接从人脸图像学习到一个紧凑的欧几里德空间的映射,其中距离直接对应于人脸相似性的度量。一旦生成了这个空间,使用以FaceNet嵌入为特征向量的标准技术就可以轻松地实现人脸识别、验证和聚类等任务。

我们的方法使用一个经过训练的深度卷积网络来直接优化嵌入本身,而不是像以前的深度学习方法那样使用一个中间的bottleneck层。为了进行训练,我们使用了一种新的在线triplet挖掘方法生成的大致对齐的匹配/非匹配人脸patchs的三元组(triplets)。我们的方法的好处是更大的表征效率:我们实现了最好的人脸识别性能,每张人脸只用128字节(即为每张人脸生成128维的特征向量)。

在广泛使用的人脸(LFW)数据集中,我们的系统达到了99.63%的新记录精度。YouTube上的DB则达到了95.12%。我们的系统将两个数据集的错误率与最佳公布结果[15]相比降低了30%。

我们还引入了谐波嵌入和谐波三元组loss的概念,它们描述了不同版本的面嵌入(由不同的网络产生),它们彼此兼容,并允许彼此之间的直接比较。

  1. 介绍

在本文中,我们提出了一个统一的人脸识别系统(这是同一个人吗),识别(谁是这个人)和聚类(在这些人脸中找到普通的人)。我们的方法是基于每幅图像使用深度卷积网络学习欧几里德嵌入层。对网络进行训练,使L2距离在嵌入空间中的平方直接对应于人脸相似度:同一个人的脸距离小,不同人的脸距离大。

一旦产生了这种嵌入,那么前面提到的任务就变得很简单:人脸验证只需要对两个嵌入之间的距离进行阈值化;识别成为一个k-NN分类问题;而聚类可以使用离轴技术,如k-means或凝聚聚类来实现。

以往基于深度网络的人脸识别方法是在一组已知人脸身份的基础上训练一个分类层[15,17],然后利用中间瓶颈层作为特征表示,将识别推广到训练中使用的一组识别之外。这种方法的缺点是它的间接性和低效性:我们必须希望瓶颈表示能很好地泛化到新面孔;通过使用瓶颈层,每个人脸的表征size通常非常大(1000维)。最近的一些工作[15]使用PCA降低了这种维数,但这是一个线性变换,可以在网络的一层轻松学习。

与这些方法相反,基于LMNN的FaceNet使用基于triplet损失函数直接训练输出为128-D的嵌入。我们的triplets由两个匹配的人脸缩略图和一个不匹配的人脸缩略图组成,loss的目的是在一定距离上将positive pair和negative pair区分开。缩略图是从人脸区域crop(随机裁剪)得到,没有二维或三维对齐,只执行缩放和平移。

在curriculum learning[1]的启发下,我们提出了一种新的在线负人脸样本挖掘策略,该策略保证了随着网络训练,triplets的难度不断增加。为了提高聚类精度,我们还探索了hard-positive挖掘技术,该技术鼓励球状聚类用于单个人的嵌入。

为了说明我们的方法可以处理的不可思议的可变性,请参见图1。如图所示,来自PIE[13]的图像对,以前被认为是人脸验证系统非常困难的。

图1照明和姿态不变性。

姿态和光照是人脸识别中一个长期存在的问题。

这张图显示了FaceNet的输出距离,在相同和不同的人的脸在不同的姿势和照明组合。0.0的距离意味着两个面是相同的,4.0对应的是相反的光谱,两个不同的身份。

您可以看到,1.1的阈值可以正确地分类每一对。

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

  1. 相关工作

类似于最近其他使用深度网络的研究[15,17],我们的方法是一种纯数据驱动的方法,直接从人脸的像素中学习其表示。我们不是使用工程特征,而是使用一个大的标记人脸数据集以实现姿势、光照和其他变化条件不变性。

在本文中,我们探讨了两种不同的深度网络架构,它们最近在计算机视觉社区中获得了巨大的成功。两者都是深度卷积网络[8,11]。第一个架构基于Zeileramp;Fergus[22]模型,该模型由多个交错的卷积层、非线性激活层、局部响应归一化层和最大池化层组成。此外,我们还添加了几个1times;1times;d卷积层,灵感来自于[9]的工作。第二种架构基于Szegedy等人的Inception模型,该模型最近被用作ImageNet 2014[16]的成功方法。这些网络使用混合层,这些混合层并行运行几个不同的卷积和池化层,并将它们的响应连接起来。我们发现,这些模型可以将参数的数量减少至多20倍,并且有潜力减少可比较性能所需的FLOPS。

有大量的人脸验证和识别工作。对它的回顾超出了本文的范围,因此我们只简要讨论最近相关的工作。

[15,17,23]的工作都采用了一个复杂的多阶段系统,将深度卷积网络的输出用PCA进行降维,然后采用SVM进行分类。

Zhenyao等人利用深度网络将人脸“warp”成一个标准的正面视图,然后学习CNN将每张脸分类为属于一个已知身份的人脸。在人脸识别中,采用了基于PCA的网络输出和SVM的集成方法。

Taigman等人提出了一种多阶段方法可以把人脸对齐到一般的三维形状模型。一个多分类网络被训练来执行4000多个身份的人脸识别任务。作者还用所谓的暹罗网络进行了实验,他们直接优化了两个面部特征之间的L1距离。他们在LFW上的最佳表现(97.35%)源于三个使用不同对齐和颜色通道的网络的集成。预测的距离(非线性支持向量机预测基于chi;2内核)的网络使用非线性支持向量机相结合。

Sun等人[14,15]提出了一种紧凑的,因此相对便宜的计算网络。他们使用了25个这样的网络,每个网络在不同的人脸patch上运行。对于他们在LFW上的最终表现(99.47%[15]),作者结合了50个响应(常规和翻转)。采用PCA和联合贝叶斯模型[2],有效地对应于嵌入空间中的线性变换。他们的方法不需要显式的2D/3D对齐。该网络采用分类和验证损失相结合的方法进行训练。验证损失类似于我们使用的triplet损失[12,19],因为它使相同身份的人脸之间的 L2 距离最小化,并强制不同身份的人脸之间的距离保持一定的距离。主要的不同之处在于,只有图像对的比较,而triplet损失则鼓励相对距离约束。

Wang等人在[18]中探索了类似的损失,用于根据语义和视觉相似性对图像进行排序。

  1. 方法

FaceNet使用深度卷积网络。我们将讨论两种不同的核心架构:Zeileramp;Fergus [22]风格网络和最近的Inception网络[16]。3.3节描述了这些网络的详细信息。

考虑到模型的细节,并将其视为一个黑盒子(参见图2),我们方法的最重要部分在于整个系统的端到端学习。为了达到这个目的,我们使用了triplet损失,它直接反映了我们在人脸验证、识别和聚类方面想要达到的效果。也就是说,我们努力将图像x嵌入到特征空间中,使相同身份的所有人脸之间的平方距离(不依赖于成像条件)都很小,而来自不同身份的一对人脸图像之间的平方距离很大。

图2 模型结构

我们的网络由一个batch输入层和一个深度CNN组成,然后L2归一化,实现了人脸的embedding,接下来是训练中的triplet loss。

虽然我们没有直接与其他损失进行比较,如[14]式(2)中使用的正负对损失,但我们认为triplet损失更适合于人脸验证。其动机是[14]的损失鼓励将同一身份的所有人脸投射到嵌入空间(embedding space)中的一个点上。然而,triplet loss试图在每对人脸之间建立一个从一个人到所有其他人脸的margin。这允许一个人的所有人脸处于一个流上,同时仍然保持距离,从而区别于其他人脸。

下一节将介绍这种三重态损失,以及如何在规模下有效地学习它。

Triplet Loss

embedding由表示。它将图像x嵌入到d维欧氏空间中。此外,我们将这个embedding限制在d维超球面上,即。这种损失是在[19]中最近邻分类的上下文中引起的。在这里,我们想要确保一个特定的人的图像(anchor) 比任何其他人的图像(negative) 更接近同一个人的所有其他图像(positive)。如图3所示:

图3 triplet loss使anchor与positive之间的距离最小化,

两者具有相同的identity,并使anchor与不同identity的negative之间的距离最大化。

因此我们希望:

其中alpha;是一个迫使positive pairs和negative pairs之间有一个margin。是训练集中所有可能的三元组(triplets)的集合,基数为N。

被最小化的损失L =

生成所有可能的三元组(triplets)将生成许多容易满足的三元组(即满足式(1)中的约束)。这些三元组对训练没有帮助,并且会导致更慢的收敛速度,因为它们仍然会通过网络。关键是要选择hard triplets,他们是活跃的,因此可以帮助改进模型。下一节将讨论triplet选择的不同方法。

Triplet 选择

为了确保快速收敛,选择违反式(1)约束的triplets很重要。这意味着,给定,我们想要选择一个(hard positive)。即,同样(hard negative),即。

在整个训练集中计算argmin和argmax是不可行的。此外,这可能导致训练质量差,因为错误的标签和较差的图像将主导hard positives 和 hard negatives。有两个明显的选择可以避免这个问题:

1.每n步离线生成triplets,使用最新的网络checkpoint并计算数据子集上的argmin和argmax。

2.在线生成triplets。这可以通过在一个mini-batch中选择hard positive/negative 样本来实现。

在这里,我们将重点放在在线生成上,并按照数千个样本的顺序使用较大的mini-batch,并且只在一个mini-batch中计算argmin和argmax。

为了获得一个有意义的 anchor-positive 距离表示,需要确保在每个mini-batch中出现任意一个identity的最小数量的示样本(就是说,在一个mini-batch中要保证每个identity至少出现的数量)。在我们的实验中,我们对训练数据进行抽样,这样每个mini-batch的每个identity就会选择大约40张人脸。此外,随机抽样的negative faces被添加到每个mini-batch。

我们没有选择hardest positive,而是在一个mini-batch中使用所有的anchor-positive pairs,同时仍然选择hard negatives。我们没有对mini-batch内的hard anchor-positive pair和所有anchor-positive pair进行并排比较,但我们在实践中发现,所有anchor-positive方法在训练开始时更稳定,收敛速度略快。

我们还探索了triplet的离线生成与在线生成的结合,这可能允许使用更小的batch-size,但实验尚未得出结论。

在训练的早期,选择hardest negative会导致糟糕的局部极小值,特别是它会导致一个崩溃的模型(即,f(x) = 0)。为了缓解这种情况,可以这样选择:

我们称这些负样本为semi-hard的,因为它们比正样本离anchor更远,但仍然是hard,因为平方距离接anchor-positive的距离。这些negatives位于margin-alpha;内。

如前文所述,正确的triplet选择对于快速收敛是至关重要的。一方面,我们希望使用小mini-batch的方法,因为在随机梯度下降(SGD)[20]过程中,这些方法可以提高收敛性。另一方面,实现细节使十到数百个样本batches更加有效。然而,与batch-size有关的主要约束是我们从mini-batch中选择hard相关的triplets的方式。在大多数实验中,我们使用大约1800个样本的batch-size。

深度卷积网络

在我们所有的实验中,我们使用随机梯度下降(SGD)和标准的backprop[8,11]和AdaGrad[5]对CNN进行训练。在大多数实验中,我们以0.05的学习率开始,然后我们降低学习率来最终确定模型。这些模型是随机初始化的,类似于[16],并在CPU集群上训练1000到2000小时。在500小时的训练后,los

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


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

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

企业微信

Copyright © 2010-2022 毕业论文网 站点地图