计算两张人脸对应关键点位置之间的l2距离_7. 人脸特征提取与验证 - DeepID2

DeepID2是DeepID的改进版,通过结合Identification和Verification的联合优化,在LFW数据集上取得了优异的人脸识别效果。该文介绍了如何通过L2距离来优化验证目标,探讨了不同gamma值对识别和验证平衡的影响,并对比了不同验证损失函数的表现。
摘要由CSDN通过智能技术生成

Paper name

Deep learning face representation by joint identification-verifications

Paper Reading Note

URL: http://www.ee.cuhk.edu.hk/~xgwang/papers/sunCWTnips14.pdf

TL;DR

DeepID2作为DeepID的改进版本,在DeepID仅基于Identification优化方式的基础上,提出了Identification-Verification的联合优化方式,在LFW数据集上取得了当时最优的效果。


Dataset/Algorithm/Model/Experiment Detail

数据集

文章使用了LFW数据集作为测试集,LFW数据集包含5749个id的13233张人脸图片数据。考虑到LFW的数据量较少,并且其中大部分的id只有一张图片,这不利于Verification的优化(Verification的优化需要利用同一id的不同人脸图片),作者使用了CelebFaces+作为训练集,CelebFaces+与LFW没有重合部分,其中8192个id的图片用于训练优化Identification,另外的1985个id的图片用于挑选特征和学习verification模型(Joint Bayesian)。

实现方式

实现方式主要包含两个步骤,人脸特征提取与基于特征的人脸验证
- 人脸特征提取
- 网络结构:DeepID2的特征提取网络依然是基于简单的卷积网络,其中layer3和layer4共同连接到DeepID2layer上,同时layer3和layer4采用了局部权值共享的卷积方式

dd2106105de92283878c6d9e91e23ec5.png
  • 训练方式:虽然网络结构相比于DeepID并没有太大的变化,但是训练方式上有较大改进,最主要区别是现在训练基于两个优化目标实现:identification与verification两个优化目标
    • identification优化目标:使用传统的softmax分类8192个id,其训练目标基于优化传统的交叉熵损失,在模型训练阶段让模型学习分类这么多的id数量作者认为可以是模型学习到生成具备identity-related 的特征,也就是使不同的人生成的人脸特征具有较大的变化

b0759c29e45aee02e48dc8152c2eded5.png
    • verification优化目标:
      verification优化作者尝试了基于L2实现loss,如下式所示,本文的核心贡献就是这个loss函数的设计,在进行相同id的两张人脸图片验证时,希望两个feature的差别越小越好,而当不同id的两张人脸图片验证时,希望两个feature的差别要大于一个margin。

288f53ae4f832f3ec2c8fd38e6944fac.png


并且也同时尝试了基于L1与余弦距离实现的loss。

  • 训练优化算法:
    如下表所示,在训练过程中基于identification和verification的梯度会通过gamma超参数调节他们之间的权重比,值得注意的是下表中的优化方式都是基于SGD反向传播进行训练,但是L2的verification的loss中的m其实也是需要被训练的超参数,但是这个超参数不能通过SGD进行训练,因为模型会学出的m都是趋向于0,这样能使得loss最大程度降低,但是这无法使不同id的人脸feature增加区分度。

e4e588455f161e5556f049e527682067.png
  • 人脸验证
    人脸验证阶段即基于特征提取网络提取的DeepID2特征搭配训练的Joint贝叶斯实现。如下图所示,作者会基于SDM算法跑出的21点人脸关键点提出不同的人脸patch,作者基于不同位置、不同scale、不同channel、水平翻转等可以在单个人脸上提出400个patch,然后作者基于贪婪算法在400个patch中选出25个对于人脸验证作用最大的patch进行后续验证操作,这25个patch的示意图如下,而基于这个25个patch得到的得分也都标注在相应的patch下方。

32412dd71229498b4a532dd4fe20cf50.png


实验结果

  • identification与verification的平衡性实验
    这部分实验应该是本文所有实验的精华所在,作者首先是探索了使用不同的gamma值对于平衡两者的影响,根据下图可以看出加入verification后对于得分肯定是有有效果的,当gamma取0.1时两个优化目标能取得平衡的效果。

a189002c153d201fec37452a0fa2ab6d.png


作者为了验证两个优化目标为什么在gamma为0.05时有更好的效果,使用了LDA来对inter和intra-person的variations进行分析,可以看到以下左图是不同gamma值的inter-person的variance变化,不同人的feature的variance跨度越大越利于分类,可见gamma为0.05时与0时相比并没有使inter-personal的variance降低,其中某些区域的值甚至升高了;当gamma趋于无穷大时会导致identification目标不被优化,这时不同人之间的feature的variance小,难以分开不同的id;如下右图所示为intra-person的变化图,可以看到gamma为0.05时每个id的各个图片的feature的invariance得到降低。

83cdfe5db2d8e7d0125902263272f34c.png


下图能够更明显得看出gamma对于提取的feature的影响。可以看到当gamma为0时,模型只优化identification目标,这导致每个人的不同图片直接差异较大,难以将人脸很好验证出来;而当gamma趋于无穷时,虽然能够将类内距离极大降低,但是不同的ID之间的重合度增加,难以区别出不同的id人脸。

20e8b00d6673278020febba3de0a3fac.png
  • 不同verification的loss形式的实验对比

388d1c0e09a9151a6bedf0832dab45ea.png
  • 结果对比实验,可以看出DeepID2在LFW上取得了最好的效果

ceb500a4af1c0d2b8929f5fc8eebf0ec.png

Thoughts
这篇文章作为DeepID的续集,依然是人脸识别领域的经典之作,最主要的创新点其实很简单,就是增加类间距离的同时缩小类内距离,这也取得了在当时SOTA的效果。文章的实验的布置方法也非常值得借鉴,以LDA对特征的variance进行分析,并基于对PCA降维后的feature可视化的方法可以让读者直观感受到verification的loss加入对于特征学习的影响。论文中作者并没有强调论述的基于贪婪算法选择人脸patch以及基于7个不同的选择出的模型进行ensemble的过程也值得在打比赛等刷精度的任务中采用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值