【论文笔记】深度人脸识别综述

摘要:
2014年,DeepFace[1]首次在著名的无限制环境人脸数据集LFW上实现了与人类相当的精度。因此,本文重点研究了深度学习技术在人脸识别领域的应用和发展。通过计算测试个体和注册集个体之间的相似度来确定当前测试个体的身份。主流的网络结构是人脸识别问题。主流的网络结构基本上基于对象分类问题,从AlexNet到SENet。2014年,DeepFace[1:1]首次使用了九层卷积神经网络。经过三维人脸对准处理,在LFW上实现了97.35%的准确率。

论文题目:《Deep Face Recognition: A Survey》

论文作者:Mei Wang, Weihong Deng

论文链接http://cn.arxiv.org/pdf/1804.06655.pdf


随着2012年AlexNet赢得了ImageNet挑战赛的冠军后,深度学习技术在各个领域都发挥着重要的作用,极大地提升了许多任务的SOTA。2014年,DeepFace[1]首次在著名的非受限环境人脸数据集——LFW上取得了与人类相媲美的准确率(DeepFace: 97.35% vs. Human: 97.53%)。因此,本文主要关注深度学习技术在人脸识别领域的应用与发展。

概念和术语

人脸系统一般包括三个部分:

  • 人脸检测(face detection):对于一幅图像,检测其中人脸的位置;

  • 人脸对齐(face alignment):根据人脸关键点,将人脸对齐到一个典型的角度;

  • 人脸识别(face recognition):包括人脸处理、人脸表示和人脸匹配部分。

人脸系统示意图
  • 训练集(training set):用于训练系统的人脸集;

  • 注册集(gallery set):提前注册在系统中用于比对的标准人脸集;

  • 测试集(probe set):用于测试的人脸集。

人脸识别任务主要包括:

  • 人脸认证(face identification):为1:N的问题。通过计算测试个体与注册集个体的相似度,判断出当前测试个体的身份。根据测试集中的个体是否出现在注册集中,可分为闭集(closed-set)开集(open-set)问题。

  • 人脸验证(face verification):为1:1的问题。对测试集和验证集中的个体进行两两比对,判断是否是同一个体。

网络结构

主流结构

在人脸识别问题中,主流的网络结构基本上都借鉴于物体分类问题,一直从AlexNet到SENet。

在2014年,DeepFace[1:1]首次使用九层的卷积神经网络,经过3D人脸对齐处理,在LFW上达到了97.35%的准确率。在2015年,FaceNet[2]在一个很大的私人数据集上训练GoogLeNet,采用triplet loss,得到99.63%的准确率。同年,VGGface[3]从互联网中收集了一个大的数据集,并在其上训练VGGNet,得到了98.95%的准确率。在2017年,SphereFace[4]使用64层的ResNet结构,采用angular softmax(A-softmax)loss,得到99.42%的准确率。在2017年末,VGGFace2[5]作为一个新人脸的数据集被引入,同时使用SENet进行训练,在IJB-A和IJB-B上都取得SOTA。

主流网络结构的演变
  • AlexNet[6]:AlexNet包括五个卷积层和三个全连接层,并且集成了如ReLU、dropout、数据增强等技术;

  • VGGNet[7]:使用3×3卷积核,且每经过2×2的池化后特征图数量加倍,网络深度为16-19层;

  • GoogLeNet[8]:提出了inception module,对不同尺度的特征图进行混合;

  • ResNet[9]:通过学习残差表示,使得训练更深网络成为可能;

  • SENet[10]:提出了Squeeze-and-Excitation操作,通过显式建模channel之间的相互依赖性,自适应地重新校准channel间的特征响应。

主流网络结构示意图

特殊结构

损失函数

在一开始,人们使用和物体分类同样的基于交叉熵的softmax loss,后来发现其不适用于人脸特征的学习,于是开始探索更具有判别性的loss。

人脸损失函数的演变
不同方法在LFW数据集上的准确率

基于欧几里德距离


contrastive loss

相关文献:

  • 《Deep learning face representation by joint identification-verification》
  • 《Deepid3: Face recognition with very deep neural networks》

DeepID系列使用的loss。

[operatorname { Verif } left( f _ { i } , f _ { j } , y _ { i j } , heta _ { v e } ight) = left{ egin{array} { l l } { frac { 1 } { 2 } left| f _ { i } - f _ { j } ight| _ { 2 } ^ { 2 } } & { ext { if } y _ { i j } = 1 } \ { frac { 1 } { 2 } max left( 0 , m - left| f _ { i } - f _ { j } ight| _ { 2 } ight) ^ { 2 } } & { ext { if } y _ { i j } = - 1 } end{array} ight. ]


triplet loss

相关文献:

  • 《Facenet: A unified embedding for face recognition and clustering》

[mathcal{L} = sum _ { i } ^ { N } left[ left| f left( x _ { i } ^ { a } ight) - f left( x _ { i } ^ { p } ight) ight| _ { 2 } ^ { 2 } - left| f left( x _ { i } ^ { a } ight) - f left( x _ { i } ^ { n } ight) ight| _ { 2 } ^ { 2 } + alpha ight] _ { + } ]

triplet loss示意图

center loss

相关文献:

  • 《A Discriminative Feature Learning Approach for Deep Face Recognition》

[egin{aligned} mathcal { L } & = mathcal { L } _ { S } + lambda mathcal { L } _ { C } \ & = - sum _ { i = 1 } ^ { m } log frac { e ^ { W _ { y _ { i } } ^ { T } oldsymbol { x } _ { i } + b _ { y _ { i } } } } { sum _ { j = 1 } ^ { n } e ^ { W _ { j } ^ { T } oldsymbol { x } _ { i } + b _ { j } } } + frac { lambda } { 2 } sum _ { i = 1 } ^ { m } left| oldsymbol { x } _ { i } - oldsymbol { c } _ { y _ { i } } ight| _ { 2 } ^ { 2 } end{aligned} ]

center loss示意图

range loss

相关文献:

  • 《Range loss for deep face recognition with long-tail》

[mathcal { L } _ { R } = alpha mathcal { L } _ { R _ { intra } } + eta mathcal { L } _ { R _ { inter } } ]

[mathcal { L } _ { R _ { i n t r a } } = sum _ { i subseteq I } mathcal { L } _ { R _ { i n t r a }}^ { i } = sum _ { i subseteq I } frac { k } { sum _ { j = 1 } ^ { k } frac { 1 } { mathcal { D } _ { j } } } ]

[egin{aligned} mathcal { L } _ { R _ { ext {inter} } } & = max left( m - mathcal { D } _ { C e n t e r } , 0 ight) \ & = max left( m - left| overline { x } _ { mathcal { Q } } - overline { x } _ { mathcal { R } } ight| _ { 2 } ^ { 2 } , 0 ight) end{aligned} ]

[mathcal { L } = mathcal { L } _ { M } + lambda mathcal { L } _ { R } = - sum _ { i = 1 } ^ { M } log frac { e ^ { W _ { y _ { i } } ^ { T } x _ { i } + b _ { v _ { i } } } } { sum _ { j = 1 } ^ { n } e ^ { W _ { j } ^ { T } x _ { i } + b _ { j } } } + lambda mathcal { L } _ { R } ]


center-invariant loss

相关文献:

  • 《Deep face recognition with center invariant loss》

[egin{aligned} L = & L _ { s } + gamma L _ { I } + lambda L _ { c } \ = & - log left( frac { e ^ { mathbf { w } _ { y } ^ { T } mathbf { x } _ { i } + b _ { y } } } { sum _ { j = 1 } ^ { m } e ^ { mathbf { w } _ { j } ^ { T } mathbf { x } _ { i } + b _ { j } } } ight) + frac { gamma } { 4 } left( left| mathbf { c } _ { y } ight| _ { 2 } ^ { 2 } - frac { 1 } { m } sum _ { k = 1 } ^ { m } left| mathbf { c } _ { k } ight| _ { 2 } ^ { 2 } ight) ^ { 2 } \ & + frac { lambda } { 2 } left| mathbf { x } _ { i } - mathbf { c } _ { y } ight| ^ { 2 } end{aligned} ]

center invariant loss示意图

基于角度/余弦间隔


L-Softmax loss

相关文献:

  • 《Large-margin softmax loss for convolutional neural networks》

[L _ { i } = - log left( frac { e ^ { left| oldsymbol { W } _ { y _ { i } } ight| left| oldsymbol { x } _ { i } ight| psi left( heta _ { y _ { i } } ight) } } { e ^ { left| oldsymbol { W } _ { y _ { i } } ight| oldsymbol { w } left( heta _ { oldsymbol { y } _ { i } } ight) } + sum _ { j eq y _ { i } } e ^ { left| oldsymbol { W } _ { j } ight| left| oldsymbol { x } _ { i } ight| cos left( heta _ { j } ight) } } ight) ]

[psi ( heta ) = ( - 1 ) ^ { k } cos ( m heta ) - 2 k , quad heta in left[ frac { k pi } { m } , frac { ( k + 1 ) pi } { m } ight] ]

[f _ { y _ { i } } = frac { lambda left| oldsymbol { W } _ { y _ { i } } ight| left| oldsymbol { x } _ { i } ight| cos left( heta _ { y _ { i } } ight) + left| oldsymbol { W } _ { y _ { i } } ight| left| oldsymbol { x } _ { i } ight| psi left( heta _ { oldsymbol { y } _ { i } } ight) } { 1 + lambda } ]

L-Softmax loss二分类示意图

A-Softmax loss

相关文献:

  • 《Sphereface: Deep hypersphere embedding for face recognition》

[L _ { mathrm { ang } } = frac { 1 } { N } sum _ { i } - log left( frac { e ^ { left| oldsymbol { x } _ { i } ight| psi left( heta _ { y _ { i } , i } ight) } } { e ^ { left| oldsymbol { x } _ { i } ight| psi left( heta _ { y _ { i } } , i ight) } + sum _ { j eq y _ { i } } e ^ { left| oldsymbol { x } _ { i } ight| cos left( heta _ { j , i } ight) } } ight) ]

[psi left( heta _ { y _ { i } , i } ight) = ( - 1 ) ^ { k } cos left( m heta _ { y _ { i } , i } ight) - 2 k ]

[ heta _ { y _ { i } , i } in left[ frac { k pi } { m } , frac { ( k + 1 ) pi } { m } ight] ext { and } k in [ 0 , m - 1 ] ]

A-Softmax loss示意图

AM-Softmax loss

相关文献:

  • 《Additive margin softmax for face verification》

[egin{aligned} mathcal { L } _ { A M S } & = - frac { 1 } { n } sum _ { i = 1 } ^ { n } log frac { e ^ { s cdot left( cos heta _ { y _ { i } } - m ight) } } { e ^ { s cdot left( cos heta _ { y _ { i } } - m ight) } + sum _ { j = 1 , j eq y _ { i } } ^ { c } e ^ { s cdot c o s heta _ { j } } } \ & = - frac { 1 } { n } sum _ { i = 1 } ^ { n } log frac { e ^ { s cdot left( W _ { y _ { i } } ^ { T } f _ { i } - m ight) } } { e ^ { s cdot left( W _ { y _ { i } } ^ { T } oldsymbol { f } _ { i } - m ight) } + sum _ { j = 1 , j eq y _ { i } } ^ { c } e ^ { S W _ { j } ^ { T } oldsymbol { f } _ { i } } } end{aligned} ]

AM-Softmax loss示意图

CosFace

相关文献:

  • 《Cosface: Large margin cosine loss for deep face recognition》

[L _ { l m c } = frac { 1 } { N } sum _ { i } - log frac { e ^ { s left( cos left( heta _ { y _ { i } , i } ight) - m ight) } } { e ^ { s left( cos left( heta _ { y _ { i } } , i ight) - m ight) } + sum _ { j eq y _ { i } } e ^ { s cos left( heta _ { j , i } ight) } } ]

[egin{aligned} ext { subject to } \ W & = frac { W ^ { * } } { left| W ^ { * } ight| } \ x & = frac { x ^ { * } } { left| x ^ { * } ight| } \ cos left( heta _ { j } , i ight) & = W _ { j } ^ { T } x _ { i } end{aligned} ]

CosFace示意图

ArcFace

相关文献:

  • 《Arcface: Additive angular margin loss for deep face recognition》

[L = - frac { 1 } { N } sum _ { i = 1 } ^ { N } log frac { e ^ { s left( cos left( heta _ { y _ { i } } + m ight) ight) } } { e ^ { s left( cos left( heta _ { y _ { i } } + m ight) ight) } + sum _ { j = 1 , j eq y _ { i } } ^ { n } e ^ { s cos heta _ { j } } } ]

ArcFace示意图

Softmax及其变种


L2-Softmax

相关文献:

  • 《L2-constrained softmax loss for discriminative face verification》

[egin{array} { l l } { ext { minimize } } & { - frac { 1 } { M } sum _ { i = 1 } ^ { M } log frac { e ^ { W _ { y _ { i } } ^ { T } f left( mathbf { x } _ { i } ight) + b _ { y _ { i } } } } { sum _ { j = 1 } ^ { C } e ^ { W _ { j } ^ { T } f left( mathbf { x } _ { i } ight) + b _ { j } } } } \ { ext { subject to } } & { left| f left( mathbf { x } _ { i } ight) ight| _ { 2 } = alpha , forall i = 1,2 , ldots M } end{array} ]


Normface

相关文献:

  • 《NormFace: L2 Hypersphere Embedding for Face Verification》

[mathcal { L } _ { S' } = - frac { 1 } { m } sum _ { i = 1 } ^ { m } log frac { e ^ { s ilde { W } _ { y _ { i } } ^ { T } ilde { mathbf { f } } _ { i } } } { sum _ { j = 1 } ^ { n } e ^ { s ilde { W } _ { j } ^ { T } mathbf { f } _ { i } } } ]

[ ilde { mathbf { x } } = frac { mathbf { x } } { | mathbf { x } | _ { 2 } } = frac { mathbf { x } } { sqrt { sum _ { i } mathbf { x } _ { i } ^ { 2 } + epsilon } } ]


CoCo loss

相关文献:

  • 《Rethinking feature discrimination and polymerization for large-scale recognition》

[mathcal { L } ^ { C O C O } left( oldsymbol { f } ^ { ( i ) } , oldsymbol { c } _ { k } ight) = - sum _ { i in mathcal { B } , k } t _ { k } ^ { ( i ) } log p _ { k } ^ { ( i ) } = - sum _ { i in mathcal { B } } log p _ { l _ { i } } ^ { ( i ) } ]

[hat { oldsymbol { c } } _ { k } = frac { oldsymbol { c } _ { k } } { left| oldsymbol { c } _ { k } ight| } , hat { oldsymbol { f } } ^ { ( i ) } = frac { alpha oldsymbol { f } ^ { ( i ) } } { left| oldsymbol { f } ^ { ( i ) } ight| } , p _ { k } ^ { ( i ) } = frac { exp left( hat { oldsymbol { c } } _ { k } ^ { T } cdot hat { oldsymbol { f } } ^ { ( i ) } ight) } { sum _ { m } exp left( hat { oldsymbol { c } } _ { m } ^ { T } cdot hat { oldsymbol { f } } ^ { ( i ) } ight) } ]


Ring loss

相关文献:

  • 《Ring loss: Convex feature normalization for face recognition》

[L _ { R } = frac { lambda } { 2 m } sum _ { i = 1 } ^ { m } left( left| mathcal { F } left( mathbf { x } _ { i } ight) ight| _ { 2 } - R ight) ^ { 2 } ]

Ring loss示意图
参考文献
  1. Y. Taigman, M. Yang, M. Ranzato, and L. Wolf. Deepface: Closing the gap to human-level performance in face verification. In CVPR, pages 1701–1708, 2014. ↩︎↩︎

  2. F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A unified embedding for face recognition and clustering. In CVPR, pages 815–823, 2015. ↩︎

  3. O. M. Parkhi, A. Vedaldi, A. Zisserman, et al. Deep face recognition. In BMVC, volume 1, page 6, 2015. ↩︎

  4. W. Liu, Y. Wen, Z. Yu, M. Li, B. Raj, and L. Song. Sphereface: Deep hypersphere embedding for face recognition. In CVPR, volume 1, 2017. ↩︎

  5. Q. Cao, L. Shen, W. Xie, O. M. Parkhi, and A. Zisserman. Vggface2: A dataset for recognising faces across pose and age. arXiv preprint arXiv:1710.08092, 2017. ↩︎

  6. A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, pages 1097–1105, 2012. ↩︎

  7. K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014. ↩︎

  8. C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, A. Rabinovich, et al. Going deeper with convolutions. In CVPR, 2015. ↩︎

  9. K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In CVPR, pages 770–778, 2016. ↩︎

  10. J. Hu, L. Shen, and G. Sun. Squeeze-and-excitation networks. arXiv preprint arXiv:1709.01507, 2017. ↩︎

  11. X. Wu, R. He, Z. Sun, and T. Tan. A light cnn for deep face representation with noisy labels. arXiv preprint arXiv:1511.02683, 2015. ↩︎

  12. A. R. Chowdhury, T.-Y. Lin, S. Maji, and E. Learned-Miller. One-to-many face recognition with bilinear cnns. In WACV, pages 1–9. IEEE, 2016. ↩︎

免责声明:文章转载自《【论文笔记】深度人脸识别综述》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇工作中遇到的问题--BindExceptionJAVA构造多级菜单下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android打开相机进行人脸识别,使用虹软人脸识别引擎

上一张效果图,渣画质,能看就好 功能说明: 人脸识别使用的是虹软的FreeSDK,包含人脸追踪,人脸检测,人脸识别,年龄、性别检测功能,其中本demo只使用了FT和FR(人脸追踪和人脸识别),封装了开启相机和人脸追踪、识别功能在FaceCameraHelper中。 实现逻辑: 打开相机,监听预览数据回调进行人脸追踪,且为每个检测到的人脸都分配一个tr...

人脸识别Demo解析C#

概述 不管你注意到没有,人脸识别已经走进了生活的角角落落,钉钉已经支持人脸打卡,火车站实名认证已经增加了人脸自助验证通道,更别提各个城市建设的『智能城市』和智慧大脑了。在人脸识别业界,通常由人脸识别提供商和人脸识别应用接入方组成,从头到尾研发人脸识别技术需要极强的专用技术知识和数学算法功底,对于大多数企业来说,选择人工智能AI公司现成的人脸识别技术引擎是一...

Java版人脸识别SDK 虹软arcface (demo)

## 开发环境准备:###开发使用到的软件和工具:* Jdk8、mysql5.7、libarcsoft_face.dll(so)、libarcsoft_face_engine.dll(so)、libarcsoft_face_engine_jni.dll(so)、idea* 注:libarcsoft_face.dll(so)、libarcsoft_face_...

【新品】Face X2人脸识别一体机:新增刷卡、扫码、测温、语音播报等功能

采用高性能硬件配置,高效人脸识别算法,支持身份证、IC卡、二维码、条形码快速识别,内置双声道喇叭,实现语音播报、语音提醒;支持非接触快速测温,减少近距离接触传染,配套完善的后台管理系统,可应用于各种人脸识别智能场景中。 智能芯片,性能强劲 采用六核64位“服务器级”处理器RK3399,芯片性能强悍,主频高达1.8GHz,集成四核Mali-T860 GPU...

AI人脸识别的测试重点

最常见的 AI应用就是人脸识别,因此这篇文章从人脸识别的架构和核心上,来讲讲测试的重点。 测试之前需要先了解人脸识别的整个流程,红色标识代表的是对应AI架构中的各个阶段 首先是人脸采集。 安装拍照摄像设备之后,需要在动态的场景与复杂的背景中判断是否存在人脸,并分离出这种面像。然后采集到人脸的照片。   因此采集过程是非常重要的,一需要能够采集到内容,二...

虹软人脸识别SDK接入Milvus实现海量人脸快速检索

一、背景 人脸识别是近年来最热门的计算机视觉领域的应用之一,而且现在已经出现了非常多的人脸识别算法,如:DeepID、FaceNet、DeepFace等等。人脸识别被广泛应用于景区、客运、酒店、办公室、工地、小区等场所,极大的方便了人们的生活。在安防领域,人脸识别也展现出巨大的活力,通过人脸识别对摄像头采集的图像进行处理,可以更快的发现可疑人员。 1:1人...