文献阅读 - Deep Face Recognition
Deep Face Recognition
O. M. Parkhi, A. Vedaldi, A. Zisserman, Deep Face Recognition[C], British Machine Vision Conference, 2015
摘要
面部识别进展:(1)端到端学习(end to end learning);(2)大规模训练集(very large scale training datasets)
本文内容:(1)260万张面部图像、2600+用户数据集创建;(2)深度网络训练和面部识别
1 引言
Google的FaceNet训练数据集比公开面部数据集大三个数量级(three orders of magnitude larger than)
本文提出:
(1)创建仅需有限人力标注的大规模面部数据集的过程;
(2)利用该训练集,考查用于面部识别及验证的CNN网络结构,包括面部对齐和度量学习。
2 相关工作
-
DeepFace
孪生网络结构(siamese network architecture)、欧氏距离(Euclidean distance)、度量学习(metric learning)、3D面部对齐 -
DeepID
CNN、贝叶斯学习框架(Bayesian learning framework)训练测度(metric)、分类&验证(classification and verification)多任务学习(multi-task learning)、2D面部对齐(2D affine alignment) -
FaceNet
三元组损失(“triplet-based” loss)
三元组:同一用户面部图像(congruous)和其他用户面部图像
目标:使、间距小于、间距(make closer to than ),为中心脸(a “pivot” face)
3 数据集采集
- 步骤1:收集过滤候选用户列表,共2,622位明星
- 步骤2:为每个用户收集面部图像,每个用户2000张
- 步骤3:用Fisher面部描述符(Fisher Vector Faces descriptor)训练SVM(a one-vs-rest linear SVM),评价面部图像,每个用户保留1000张面部图像
- 步骤4:删除相似(near duplicate)图像
- 步骤5:人工过滤(manual filtering),最终面部图像982,803张,95%为正脸(frontal),5%为侧脸(profile)
4 网络结构和训练
4.1 学习面部分类器
元分类问题(-ways classification problem),
深度网络(deep architectures)
训练图像(training image),
得分向量(score vector),全连接层输出,个线性预测器(inear predictors),,
计算softmax(empirical softmax log-loss),比较得分向量与标签(ground-truth class identity):
表示类别的独热编码(one-hot vector)
4.2 基于三元组损失学习面部嵌入向量
三元组损失(a triplet loss),源于度量学习(metric learning),用于学习可分、紧致、降维投影(learn a projection that is at the same time distinctive and compact, achieving dimensionality reduction at the same time)。
对CNN输出进行标准化(-normalised)并投影到()维空间中,,
固定CNN参数,仅训练投影,使三元组损失(empirical triplet loss)最小化:
为固定标量,表示学习余量(learning margin)、为训练三元组集合(a collection of training triplets)。
4.3 结构
VGG网络A、B和D
输出全连接层维数为(元分类预测)或(维测度嵌入向量,-dimensional metric embedding)
4.4 训练
5 数据集及评价
LFW、YTF
6 实验
- 实施细节
NVIDIA Titan Black GPUs:6GB显存,4核GPU
6.1 分量分析
-
数据策展
-
对齐
-
结构
-
三元组损失嵌入向量