「人脸识别」学习FaceNet(2)

上一步直接对FaceNet进行测试使用,但是还不是很明白其原理,看一看论文内容。

FaceNet: A Unified Embedding for Face Recognition and Clustering

要点:“In this paper we present asystem, called FaceNet, that directly learns a mapping fromface images to a compact Euclidean space where distancesdirectly correspond to a measure of face similarity.

使用深度卷积网络来训练直接优化嵌入本身;

训练时,使用 triplets(三联体)大致匹配匹配/不匹配的脸部贴片,这些贴片使用新颖的在线triplets数据挖掘方法生成。 这种方法带来的好处是更高的效率:只使用每个人脸128字节的最新面孔识别性能。

1.介绍

Present a unified system for:

face verification(is this the same person);

recognition (who is thisperson) ;

and clustering (find common people among thesefaces).

该方法基于使用深度卷积网络学习每个图像的欧几里得嵌入。 训练网络使得嵌入空间中的L2距离的平方直接对应于面部相似性:面部相似则距离小,面部相异则距离大。一旦产生了这种嵌入,上述任务变得直截了当:面部验证简单地涉及对两个嵌入之间的距离进行阈值化; 识别成为k-NN分类问题; 并且可以使用诸如k均值或凝聚聚类之类的现成技术来实现聚类。

FaceNet directly trainsits output to be a compact 128-D embedding using a tripletbasedloss function based on LMNN。

该方法的triplets由两张匹配的脸部缩略图和一张不匹配的脸部缩略图组成,loss的目的是将正对与负距离隔开一段距离。 缩略图是脸部区域的紧凑作物,除了执行缩放和平移之外,没有2D或3D对齐。

选择使用哪个triplets对于实现良好性能非常重要,并且受到  curriculum learning的启发,作者提出了一种新的在线负面范例挖掘策略,可确保网络训练持续增加triplets难度。 为了提高聚类的准确性,作者还探索了积极的挖掘技术,鼓励spherical clusters嵌入单人。

余下部分结构:在第2节中,作者回顾了这方面的文献; 第3.1节定义了triplets loss,第3.2节描述了作者的新triplets选择和训练过程; 在3.3节作者描述了所用的模型体系结构。 最后在第4节和第5节中,作者给出了我们嵌入的一些定量结果,并定性地探讨了一些聚类结果。

2. 相关工作(此处不再叙述)

3. Method

先介绍 triplets loss的作用:作者采用直接反映想要在脸部验证,识别和聚类中实现的triplets loss,即,争取从图像x到特征空间Rd的嵌入f(x),使得平方距离在所有人脸之间与成像条件无关,同一身份的距离很小,而来自不同身份的一对人脸图像之间的平方距离很大。

3.1 Triplets Loss

思路较简单:要使特定人物的图像$x^a_i$(anchor)更接近于同一个人的所有其他图像$x^p_i$(positive),而不是任何其他人的任何图像$x^n_i$(negative)
!!!!!!!!!!!!!修改插图与公式!!!!


注意:Generating all possible triplets would result in manytriplets that are easily satisfied(即满足方程(1)中的约束条件)。 这些triplets对训练没有贡献,并导致收敛速度变慢,因为它们仍然会通过网络。 选择 hard triplets是非常重要的,它们是active的,并且可以有助于改善模型。 以下部分将讨论作者用于选择triplets的不同方法。

3.2 Triplet Selection

思路上 要达到快速收敛,我们是要找使得相似图像之间参数最大化的$x^p_i$(hard positive),相异图像之间参数最小化的$x^n_i$(hard negative),但是在整个训练集中计算argmin和argmax是不可行的。 此外,这可能会导致培训差,因为错误标记和质量不佳的人脸图像将主导hard positives and negatives。由此作者提出两个建议来避免以上问题:
  • 每隔n步离线生成triplets,使用最新的checkpoint并计算数据子集上的argmin和argmax。
  • 在线生成triplets。 这可以通过从一个小批量中选择硬正/负范例来完成。

在文章中,作者使用第二种方法,在线生成triplets。为了有效地表示anchor positive distances,需要确保每个小批量中存在最少数量的任何一个身份的示例。在实验中,作者对训练数据进行采样,以便每个小批次的每个身份选择大约40张面孔。 此外,随机采样的负面人脸将被添加到每个小批量。

在使用所有的anchor positive pairs的同时,仍然选择 hard negatives,而不是选择the hardest positive。 作者没有在一个小批次内对hard anchor-positive pairs 和 所有 anchor-positive pairs 进行并排比较,但在实践中发现,the all anchor positive方法在training开始时更稳定并稍微收敛一些。

选择 the hardest negatives 可能会导致训练早期的局部极小,特别是可能导致一个崩溃的模型(即f(x)= 0)。 为了减轻这一点,选择如下的xni是有利的:

!!!!!!插入公式!!!!!

我们称这些负面示例为semi-hard的,因为它们比正面示例更远离anchor,但仍然很hard,因为平方距离接近anchor positive距离。 那些负面影响在边际α内。 如前所述,正确的triplets选择对于快速收敛至关重要。 一方面,我们希望使用小的小批量,因为这些小批量在随机梯度下降(SGD)期间倾向于改善收敛性。 另一方面, implementation details使数十到数百个样本的批次更加高效。 然而,关于批量大小的主要限制是我们从小批量中选择hard relevant triplets的方式。 在大多数实验中,我们使用大约1800个样本的批量大小。

3.3 Deep Convolutional Networks

实验步骤见论文。

4. Datasets and Evaluation

交代了判断正确/误检条件。
见论文。

5. Experiments

5.1. Computation Accuracy Trade-off

在深入探讨更具体的实验细节之前,我们将讨论精度与特定模型所需的FLOPS数量的权衡。 显示了x轴上的FLOPS以及我们用户标记为4.2节的测试数据集的0.001误接受率(FAR)的准确度。 有趣的是,模型需要的计算与其达到的准确度之间的强相关性。 该图强调了我们在实验中更详细讨论的五种模型(NN1,NN2,NN3,NNS1,NNS2)。

我们还研究了关于模型参数数量的精度折衷。 但是,在这种情况下,情况并不明显。 例如,基于初始的模型NN2实现了与NN1相当的性能,但只有20个参数。 虽然FLOPS的数量是可比的。 很显然,如果参数的数量进一步减少,性能预计会下降。 其他模型架构可以进一步降低精度,就像Inception 在这种情况下所做的那样。

5.2. Effect of CNN Model

我们现在更详细地讨论我们的四个选定模型的性能。 一方面,我们有传统的基于Zeiler和Fergus的架构,具有1×1的卷积(见表1)。 另一方面,我们有基于Inception 的模型,可以显着减少模型的大小(note: Inception模型较小)。 总的来说,在最终的性能上,两种架构的顶级型号的性能相当。 但是,我们的一些基于Inception的模型(如NN3)仍然实现了良好的性能,同时显着降低了FLOPS和模型大小。

作者从几方面测试了影响

5.3. Sensitivity to Image Quality

图片质量越好正确率越高

5.4. Embedding Dimensionality

一定程度上嵌入维度越大效果越好,但是太大了反而性能会下降

5.5. Amount of Training Data

数量级倍的增加效果越好,同级增加效果不明显

在一些数据集上的表现。。。

5.8. Face Clustering


6. Summary

作者提供了一种直接学习嵌入到欧氏空间中的方法来进行人脸验证。作者的端到端培训既简化了设置,又显示直接优化与手头任务相关的损失可提高性能。 该模型的另一个优势是它只需要最小的对齐(面部周围的紧凑作物)。 例如,文献·「17」执行复杂的3D对齐。 作者还尝试了一种相似变换对齐方式,并注意到这实际上可以稍微提高性能。 目前还不清楚是否值得额外的复杂性。 未来的工作将着重于更好地理解错误情况,进一步改进模型,并减少模型尺寸并降低CPU需求。 作者也会研究如何改善目前极其漫长的训练时间,例如 curriculum learning 的变化与较小批量和离线以及在线正面和负面挖掘。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值