Deep learning face representation by joint identification-verifications - 人脸特征提取与验证 - DeepID2

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采用了局部权值共享的卷积方式

在这里插入图片描述

  • 训练方式:虽然网络结构相比于DeepID并没有太大的变化,但是训练方式上有较大改进,最主要区别是现在训练基于两个优化目标实现:identification与verification两个优化目标

    • identification优化目标:使用传统的softmax分类8192个id,其训练目标基于优化传统的交叉熵损失,在模型训练阶段让模型学习分类这么多的id数量作者认为可以是模型学习到生成具备identity-related 的特征,也就是使不同的人生成的人脸特征具有较大的变化
      在这里插入图片描述
    • verification优化目标:
      verification优化作者尝试了基于L2实现loss,如下式所示,本文的核心贡献就是这个loss函数的设计,在进行相同id的两张人脸图片验证时,希望两个feature的差别越小越好,而当不同id的两张人脸图片验证时,希望两个feature的差别要大于一个margin。
      在这里插入图片描述
      并且也同时尝试了基于L1与余弦距离实现的loss。
  • 训练优化算法:
    如下表所示,在训练过程中基于identification和verification的梯度会通过gamma超参数调节他们之间的权重比,值得注意的是下表中的优化方式都是基于SGD反向传播进行训练,但是L2的verification的loss中的m其实也是需要被训练的超参数,但是这个超参数不能通过SGD进行训练,因为模型会学出的m都是趋向于0,这样能使得loss最大程度降低,但是这无法使不同id的人脸feature增加区分度。
    在这里插入图片描述

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

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

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

  • 不同verification的loss形式的实验对比

在这里插入图片描述

  • 结果对比实验,可以看出DeepID2在LFW上取得了最好的效果
    在这里插入图片描述

Thoughts

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度高分辨率表示学习是一种用于视觉识别的技术,旨在从图像中学习到更高质量和更具表达力的特征表示。在传统的视觉识别任务中,如图像分类、目标检测和语义分割,传统的特征表示方法通常提取低级或中级特征,这些特征可能无法有效地捕捉到图像的复杂信息。而深度高分辨率表示学习通过多层神经网络的结构和大规模训练数据来学习更深层次、更富有语义的图像特征。 深度高分辨率表示学习方法通常包含以下几个关键步骤:首先,通过使用深度卷积神经网络(DCNN)架构来学习特征表示。DCNN是一种层次结构复杂、能够从原始像素数据中自动学习特征的神经网络。其次,利用大规模的标注数据进行训练,通过反向传播算法来更新网络的权重和偏置参数,从而最小化预测误差。最后,在训练过程中采用一些优化策略,如数据增强、正则化和优化器选择等,以提高网络的泛化能力和识别性能。 深度高分辨率表示学习在计算机视觉领域有着广泛的应用。一方面,它可以用于图像分类,通过学习到的高质量特征表示,可以在分类任务中获得更高的准确性和鲁棒性。另一方面,它也可以用于目标检测和语义分割任务,通过学习到的特征表示,可以更准确地定位和分割图像中的对象。此外,深度高分辨率表示学习还可以用于识别特定的物体、场景或人脸,从而应用于人脸识别、目标跟踪和智能安防等领域。 总之,深度高分辨率表示学习是一种能够有效提高视觉识别任务准确性和鲁棒性的技术。它通过学习到更深层次、更富有语义的图像特征表示,提供了更强大的图像分析和理解能力,为计算机视觉领域的各种应用提供了重要的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值