介绍

DeepID可以通过具有挑战性的人脸分类任务有效地学习(把训练图像分类为nn个身份之中的一个(在这项工作中 n10000n\approx 10000)),预测任务比人脸验证更具挑战性,且有良好的泛化性。虽然是通过分类来学习的,但这些特征被证明对人脸验证和训练集中未见过的新面孔是有效的,其泛化性随着训练时要预测的人脸类别的增加而增加。

当作为分类器学习识别训练集中大约 1000010000 个人脸身份,并配置为沿着特征提取层次不断减少神经元数量时,这些CNN特征数量沿着特征提取级联继续减少,最终在最后一层生成高度紧凑的 160160DeepID

学习DeepID进行人脸验证

深度卷积网络

我们的深层 ConvNets 包含四个卷积层(带最大池化),以分层提取特征,接下来是全连接的DeepID层和预测身份类别的softmax层。

网络的输入为 对于矩形 39×31×k39 \times 31 \times k patch,以及 31×31×k31 \times 31 \times k 的正方形 patch(彩色图 k=3k=3,灰度图 k=1k=1)。上图为 39×31×339 \times 31 \times 3 预测 n=10000n=10000 类的网络架构。

特征的大小逐层减小,直到最后的DeepID层其中形成了高度紧凑和预测性的特征,只用少量维度的特征就能预测更多的身份类别。

我们使用ReLU作为隐藏神经元的激活函数,其比sigmoid更快拟合。

我们的ConvNets高层的卷积层的权重是局部共享的,以便在不同区域学习不同的中级或高级特征。

最后一个隐藏层DeepID是全连接与第三经过完全池化和第四卷积层完全相连(通过concat),这样它就能看到多尺度的特征。

ConvNet的最终输出是一个softmax预测。输出 nn 个不同身份的置信度。

特征提取

我们用Sun等人提出的面部点检测方法检测五个面部标志,包括两个眼睛中心、鼻尖和两个嘴角。根据两个眼睛的中心和两个嘴角的中点,通过相似性变换对脸部进行全局对齐。从 6060 个具有 1010 个区域、33 个尺度和RGB或灰色通道的人脸斑块中提取特征。上图显示了十个脸部区域和两个特定脸部区域的三个尺度。我们训练了60个ConvNets,每个ConvNets从一个特定的斑块和其水平翻转的对应部分提取两个160维的DeepID向量。一个特殊的情况是两个眼睛中心和两个嘴角周围的斑块,它们本身没有被翻转,但与它们对称的斑块(例如,以左眼为中心的斑块的翻转对应物是通过翻转以右眼为中心的斑块得到的)。DeepID的总长度为1920019200160×2×60160 \times 2 \times 60),这为最终的人脸验证做了准备。

人脸验证

我们使用联合贝叶斯技术进行基于DeepID的人脸验证。它表示提取的面部特征x(减去平均值后)。由两个独立的高斯变量之和组成:

x=μ+ϵx = \mu + \epsilon

其中 μN(0,Sμ)\mu \sim N(0,S_\mu) 代表人脸身份,而 ϵN(0,Sϵ)\epsilon \sim N(0,S_\epsilon) 为人外变量。联合贝叶斯 模型是在给定人内或人外变异假设的情况下,计算两个面孔的联合概率。

SμS_\muSS 可以从数据中用EM
算法学到。在测试中,它计算出似然比

r(x1,x2)=logP(x1,x2HI)P(x1,x2HE)r(x_1,x_2) = log \frac{P(x_1,x_2|H_I)}{P(x_1,x_2|H_E)}

r(x1,x2)>0r(x_1,x_2) > 0P(x1,x2HI)>P(x1,x2HE)P(x_1,x_2|H_I) > P(x_1,x_2|H_E) 就认为是同一人。

它有闭合形式的解决方案,并且比神经网络分类更有效。