【FaceNet学习】论文阅读

论文地址:FaceNet:A Unified Embedding for Face Recognition and Clustering

摘要

本文提出FaceNet算法,它直接学习从人脸图像到一个欧几里德空间的映射,这其中的距离则对应于人脸的相似程度。

这种映射关系也可以称之为嵌入(embedding),即将原特征映射到一个新的特征空间,新的特征就被看作是一种嵌入。

在LFW(Labeled Faces in the Wild)数据集上,准确率达99.63%

简介

人脸验证 face verification (is this the same person)
人脸识别 face recognition(who is this person)
人脸聚类 face clustering (find common people among these faces)

只要生成了上文所说的嵌入,那么以上三种任务就会变得简单明了

人脸验证–对两个嵌入间的距离进行阈值判断
人脸识别–K-NN分类问题
人脸聚类–使用k-means等聚类问题

在这里插入图片描述
姿态和光照是人脸识别中长期存在的一个问题,上图显示了在不同姿势和光照的组合下,相同的和不同的人脸之间的 FaceNet的输出距离。可见,阈值为1.1可以正确地判断身份是否相同。

模型结构

在这里插入图片描述
可见,网络由批处理输入层和深度CNN组成,然后经过L2正则化后得到人脸嵌入,紧接着的就是三元组损失。

Triplet Loss

三元组(Triplet)即由Anchor(A),Negative(N),Positive(P)组成。
在这里插入图片描述

三元组损失(Triplet Loss)
使Anchor(A)和Positive(P)之间的距离最小,
使Anchor(A)和Positive(P)之间的距离最大。

即在学习过程中,A、P的欧式距离逐渐减小,A、N的欧式距离增大,使类间距离大于类内距离。
在这里插入图片描述
上式中,第一个二范数表示类内距离,第二个二范数表示类间距离,α是一个常量。学习过程就是使用梯度下降法使Loss不断下降,即对应于类内距离不断下降,类间距离不断提升。

需要注意的是,生成所有可能的三元组会产生许多满足约束的三元组,但是这些三元组对训练没有帮助,收敛速度较慢,所以选择适合训练的三元组是一个非常重要的问题。

三元组的选择

在给定anchor的条件下,我们会选择
hard positive——
在这里插入图片描述
和hard negative——
在这里插入图片描述
但是,选择‘the hardest negatives’会导致局部最小值的问题,甚至会导致模型崩溃。

为了缓解上述问题,我们可以使用下面的做法(semi-hard):
在这里插入图片描述

深度卷积神经网络

Tabel 1. NN1.——Zeiler&Fergus
在这里插入图片描述
Tabel 2. NN2.(基于GoogLeNet style Inception models)
在这里插入图片描述

实验

1.不同的网络配置下的VAL(validation rate)
在这里插入图片描述
2.不同的训练数据集的大小
在这里插入图片描述
3.不同嵌入层特征维度下的VAL(validation rate)
在这里插入图片描述
4.不同的图像质量下的VAL(validation rate)
在这里插入图片描述
5.错误情况
在这里插入图片描述
6.人脸聚类
在这里插入图片描述

以上图片均出自论文。

学习记录,不足之处还请指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值