文献阅读 - 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)

文献阅读 - Deep Face Recognition

本文提出:

(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)(a,b)(a, b)和其他用户面部图像cc
    目标:使aabb间距小于aacc间距(make aa closer to bb than cc),aa为中心脸(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 学习面部分类器

NN元分类问题(NN-ways classification problem),N=2622N = 2622

深度网络(deep architectures)ϕ\phi
训练图像(training image)ltl_tt=1,2,,Tt = 1, 2, \dots, T
得分向量(score vector)xt=Wϕ(lt)+bRN\mathbf{x}_t = \mathbf{W} \phi (l_t) + b \in \mathbb{R}^{N},全连接层输出,NN个线性预测器(inear predictors),WRN×D\mathbf{W} \in \mathbb{R}^{N \times D}bRNb \in \mathbb{R}^{N}
计算softmax(empirical softmax log-loss),比较得分向量xt\mathbf{x}_t与标签(ground-truth class identity)ct{1,2,,N}c_t \in \{ 1, 2, \dots, N \}
E(ϕ)=tlog(e<ect,xt>q=1,2,,Ne<eq,xt>)E(\phi) = - \sum_{t} \log \left( \frac{e^{\left< \mathbf{e}_{c_{t}}, \mathbf{x}_t \right>}}{\sum_{q = 1, 2, \dots, N} e^{\left< \mathbf{e}_{q}, \mathbf{x}_t \right>}} \right)
ec\mathbf{e}_{c}表示类别cc的独热编码(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输出ϕ(lt)RD\phi(l_t) \in \mathbb{R}^{D}进行l2l_2标准化(l2l^2-normalised)并投影到LLLDL \ll D)维空间中,xt=Wϕ(lt)ϕ(lt)2\mathbf{x}_t = \frac{\mathbf{W}^{\prime} \phi (l_t)}{{\| \phi (l_t) \|}_2}WRL×D\mathbf{W}^{\prime} \in \mathbb{R}^{L \times D}

固定CNN参数,仅训练投影W\mathbf{W}^{\prime},使三元组损失(empirical triplet loss)最小化:
E(W)=(a,p,n)Tmax{0,αxaxn22+xaxp22},xt=Wϕ(lt)ϕ(lt)2E(\mathbf{W}^{\prime}) = - \sum_{(a, p, n) \in T} \max \left\{ 0, \alpha - {\| \mathbf{x}_a - \mathbf{x}_n \|}_2^2 + {\| \mathbf{x}_a - \mathbf{x}_p \|}_2^2\right\}, \mathbf{x}_t = \mathbf{W}^{\prime} \frac{\phi (l_t)}{{\| \phi (l_t) \|}_2}

α0\alpha \geq 0为固定标量,表示学习余量(learning margin)、TT为训练三元组集合(a collection of training triplets)。

4.3 结构

VGG网络A、B和D

文献阅读 - Deep Face Recognition文献阅读 - Deep Face Recognition

输出全连接层维数为N=2622N = 2622NN元分类预测)或L=1024L = 1024LL维测度嵌入向量,LL-dimensional metric embedding)

4.4 训练

5 数据集及评价

LFW、YTF

6 实验

  • 实施细节

NVIDIA Titan Black GPUs:6GB显存,4核GPU

6.1 分量分析

文献阅读 - Deep Face Recognition

  • 数据策展

  • 对齐

  • 结构

  • 三元组损失嵌入向量

6.2 比较

文献阅读 - Deep Face Recognition

文献阅读 - Deep Face Recognition

结论