您的位置:首页 > 其它

论文提要“DeepFace: Closing the Gap to Human-Level Performance in Face Verification”

2015-09-22 17:01 771 查看
人脸识别步骤:检测,矫正,表示,识别。

论文使用了3D人脸模型进行矫正,9层的深度神经网络学习特征,有几层局部连接层。

人脸矫正方法:(1)3D人脸模型,(2)搜索基准点,(3)像素级相似矩阵变化。论文根据基准点对人脸进行3D建模,将裁减的人脸转化为3D模式。每次迭代,使用支持向量回归(SVR)从图像描述子LBP预测点结构。

2D矫正,图1(a)所示的六个基准点,用来对图像进行尺度变换,旋转,平移得到六个锚点位置,通过拟合Ti2d:=(si,Ri,ti)T^i_{2d}:=(s_i,R_i,t_i),锚点位置xjanchor:=si[Ri|ti]∗xjsourcex_{anchor}^j:=s_i[R_i|t_i]*x_{source}^j,最后组合成2D相似变换:T2d:=T12d∗...∗Tk2dT_{2d}:=T_{2d}^1*...*T_{2d}^k。累积变换生成2D的矫正裁切,1(b)所示。



3D矫正,2D矫正对out-of-plane的补偿不够,对非限定条件下的人脸识别不力。作者使用了广义3D模型并注册了一个3D仿射相机,将2D裁切变化为3D形式。图1(g)所示。通过在2d裁切中定位67个基准点x2dx_{2d}实现,3D广义模型通过对USF Human-ID数据库进行三维扫描的平均实现,通过后处理得到矫正后的定点vi=(xi,yi,zi)ni=1v_i=(x_i,y_i,z_i)^{n}_{i=1},将67个点放置在3D形状上,得到67个点与3D的关联方法。仿射3D-2D摄像机P使用最小平方方法拟合,x2d=X3dP→x_{2d}=X_{3d}\overrightarrow P,P最小化loss,loss(P)=rT∑−1rloss(P)=r^T\sum^{-1}r,其中r=x2d−X3dP→r=x_{2d}-X_{3d}\overrightarrow P,X3dX_{3d}是一个(67∗2)×8(67*2)\times8的矩阵。拟合的摄像机P由8个未知的P→\overrightarrow P组成的向量表示。

正脸化,拟合的摄像机P只是一个近似,将r加入到基准点中得到X^3d\hat X_{3d},正脸化通过2d到3d的变换实现,由67个基准点得到的Delaunay三角化指导。

表示

DNN结构及训练,结构如图2所示。C1层的输入是3D矫正后的3通道RGB图像,大小为152*152,32个滤波器大小为11*11*3,32个特征图输入到max-pooling(M2)层,3*3邻域的最大值,步长为2。之后输入到C3层,16*9*9。这三层的目的是提取低层特征,如边缘和纹理,最大池化层使得卷积层的输出对局部变化更鲁棒。网络pooling层较多会损失信息,因此值使用了一个pooling层。这三层只是将输入扩展到一些简单的局部特征。



L4,L5,L6层是局部连接的,类似于对卷积层使用滤波器组,不同的局部学习不同的滤波器。校正后图像的不同的区域具有不同的局部统计特征,因此卷积层不能满足。

F7,F8层是全连接层,这些层可以获得不同区域之间的联系,全连接层输出到K类的softmax层,产生类标签的分布,k-th类的输出为pk=exp(ok)/∑hexp(oh)p_k=exp(o_k)/\sum_hexp(o_h)

训练最小化cross-entropy 损失,L=−logpkL=-logp_k,最小化过程通过计算L对参数的梯度实现,使用SGD更新参数。梯度使用bp error实现。特征比较稀疏,75%是0,使用dropout解决。

归一化

特征归一化到0,1之间,之后使用L2L_2归一化,f(I):=G¯¯¯(I)i/||G(I)i||2f(I):=\overline G(I)_i/||G(I)_i||_2,其中G¯¯¯(I)i=G(I)i/max(Gi,ϵ)\overline G(I)_i=G(I)_i/max(G_i,\epsilon)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: