专栏首页企鹅号快讯Anti-Spoofing之人脸活体检测

Anti-Spoofing之人脸活体检测

每周精选

Algorithm System

Anti-Spoofing

之人脸活体检测

在小编之前的文章系列中曾介绍过的对抗样本攻击,是目前Deep Learning比较火热的一个研究方向,因为它掀起了关注深度学习在安全领域潜在问题的热潮。虽然活跃于学术界的对抗样本目前还未渗入到工业界中,anti-spoofing(反欺诈)仍一直是大家关注的焦点。人脸识别是大家最为熟悉的应用深度学习的例子,结合人脸识别技术的APP在市面上比比皆是,本文将简单介绍在人脸识别应用中的反欺诈技术——人脸活体检测。

人脸识别,顾名思义,就是在给定一张人脸后鉴定它的身份信息。目前大部分人脸识别系统的流程:输入一张图片,通过人脸检测的方法,将图片中的人脸框出来,结合关键点回归技术得到的关键点信息,将人脸对齐作规范化;然后利用深度学习的方法提取人脸图片的特征信息,通过度量学习或简单计算特征向量距离(例如欧氏距离)来从数据库中搜寻最相似的人脸,最终得到输入图片的人脸身份信息。人脸活体检测模块处于人脸检测阶段或之后,是目前人脸识别系统部署时不可或缺的一部分。

接下来,小编将从人脸欺诈攻击和相关反欺诈技术两个方面来揭开活体检测的神秘面纱。

提起人脸欺诈攻击,小编猜大家第一反应想到的肯定是尼古拉斯凯奇出演的那部《变脸》,为了迷惑匪党,直接去医院把脸给换了。当然,现实生活中并不会发生这样的事情,如果有,那么也不会是广大AI从业者需要担心的问题(微笑脸,给policeman打call)。现实中的攻击手段主要有Print, Replay, 3D mask这三种,相比小编接触的对抗样本生成方法,这些攻击方法简直是简单的逆天了。Print即打印照片,通过目标人物的社交动态,例如朋友圈、QQ空间等获取TA的肖像照并打印出来;Replay即获取目标人物的动态信息,提前录好目标人物的视频信息,以回放的方式展示在人脸识别系统前,同时,现在也有可以让静态图片合成说话动作等连续行为的APP;3D mask即把目标人物的人脸以3D打印的方式呈现出来。为了应对活体检测,常用的数据集有:

NUAA[1]是一个照片打印欺诈数据集,包含15个人的图像,通过webcam采集得到,如图1所示,左边两列是live human,右边两列是照片:

图1

图2

IDIAP Replay-Attack[2]是一个视频回放的人脸欺诈数据集,通过macbook采集,包含1300段视频,50个人。CASIA FASD[3]是一个包含视频和照片打印的人脸反欺诈数据库,通过三种不同质量的摄像头采集,包含600段视频,50个人,同时还对图片做了warp和crop。MSU MFSD[4]不同于其他数据集,为了迎合手机移动支付的场景,加入了手机采集,同时打印的照片质量相比IDIAP和CASIA较好一些,包含280段视频,35个人,如图2所示。IDIAP 3DMAD[13]数据集包含255段视频,17个人,是一个3D面具欺诈的数据集。为了比较算法之间的有效性,HTER(Half Total Error Rate)经常被用来反映模型的性能。HTER综合了FAR(False Acceptance Rate)和FRR(False Rejection Rate),具体计算方式为:

相比指纹、虹膜,人脸特征的获取相对容易很多,商用的步伐也发展的很快。目前的人脸识别技术可以说是相当的强悍,在LFW[5]数据集上各大商业人脸识别系统,准确率都在99%以上,甚至能达到99.8%以上,简直残暴(已超越了人类性能)。但是,人脸欺诈攻击并未计入其中。大数据时代的盛行,使得人脸相关的数据集均来源于网络,同时真实人脸和打印人脸或其他欺诈性人脸,并没有提前做区分,那么,逐渐用于支付、监控和安全等领域的人脸识别技术,着实需要活体检测的帮助。

通常所说的活体检测是当系统从合法用户那里取得生物特征信息时,判断该生物特征信息是否来源于具有生物活体的合法用户身上。一些活体检测方法是运用一些额外的传感器[6][7],剩下的方法可以简单分为两类:静态检测和动态检测。

静态方法,即不考虑图像之间的时序关联关系。首先,可以利用纹理信息,如傅里叶频谱分析[8],利用人脸照片在频域中的高频分量比真人脸要少来区分。还有的利用图像多尺度和多区域的LBP特征进行二元SVM分类来区分真伪。而动态方法,便可以利用人脸的动态信息来帮助区分,例如眨眼睛的动作、嘴部的动作或者人脸多个部件的时序运动信息,或者使用背景和前景的光流信息来区分[9]等。

当然,上述的方法局限于hand-crafted特征来帮助区分攻击。既然人脸识别技术归功于CNN,那么他挖的坑也可以借助CNN来填。如果说hand-crafted没法获取足够具有区分度的人脸特征细节,那么就可以用有监督的方法借助CNN来学习具有高区分度的特征。2014年,Yang et al. [10]使用AlexNet用作特征提取器,最后加上SVM做分类器。这是强大的CNN首次被应用在人脸反欺诈中。他们在CASIA和IDIAP Replay-Attack两个数据集上的HTER均小于5%。2017年,Lucena et al.[11]使用迁移学习的思想将CNN应用在人脸反欺诈上,如下为论文中提到的FASNet[12]网络架构:

首先,他们选择VGG-16预训练模型作为基础结构,然后在人脸欺诈数据集上进行微调网络权重。除了移除最后的全连接层和将另两个全连接层的尺寸修改为256和1将其转换为一个二分类器外,FASNet和VGG-16完全一致。FASNet在3DMAD和REPLAY-ATTACK数据集上分别能达到0.0%和1.2%HTER,几乎能达到最好的水平。FASNet的思路简单,可以很容易的扩展至其他网络结构或结合其他动态特征进行检测等。

让FASNet落败的胜者,Multi-cues intergration NN方法[14],还是在2016年发表的。它在3DMAD和REPLAY-ATTACK数据集上的HTER为0.0%和0.0%,只用了神经网络,还没用到CNN和LSTM等结构。由此可见,结合多种互补的方法,确实是个不错的思路。Mutli-cues主要包含三个方面的活体特征:shearlet图像质量特征(SBIQF),脸部运动光流特征以及场景运动光流特征,然后使用神经网络做二分类问题,模型如下图所示:

最后,小编不得不吐槽一句百度搜索的学术气息,爱学习的小编只想了解技术细节,不想试用各大公司的人脸API。有兴趣的童鞋可以尝试用文中提到的攻击方法测试下大佬们的API(坏笑脸)。

参考资料:

1. http://parnec.nuaa.edu.cn/xtan/data/nuaaimposterdb.html

2. https://www.idiap.ch/dataset/replayattack

3.http://www.cbsr.ia.ac.cn/english/FaceAntiSpoofDatabases.asp

4.http://biometrics.cse.msu.edu/Publications/Databases/MSUMobileFaceSpoofing/index.htm

5. http://vis-www.cs.umass.edu/lfw/

6. Zhang, Z., Yi, D., Lei, Z., Li, S.Z.:Face liveness detection by learning multispectral reflectance distributions.In: Face and Gesture 2011. (March 2011) 436–441

7. Seal, A., Ganguly, S., Bhattacharjee,D., Nasipuri, M., Basu, D.K.: Automated thermal face recognition based onminutiae extraction. CoRR abs/1309.1000 (2013)

8. Li, J., Wang, Y., Tan, T., Jain, A.K.:Live face detection based on the analysis of fourier spectra. Volume 5404.(2004) 296–303

9. Anjos, A., Chakka, M.M., Marcel, S.:Motion-based counter-measures to photo attacks in face recognition. IETBiometrics 3(3) (Sept 2014) 147–158

10. Yang J, Lei Z, Li S Z. LearnConvolutional Neural Network for Face Anti-Spoofing[J]. Computer Science, 2014,9218:373-384.

11. Lucena O, Junior A, Moia V, et al.Transfer Learning Using Convolutional Neural Networks for FaceAnti-spoofing[J]. 2017.

12. https://github.com/OeslleLucena/FASNet

13. http://www.idiap.ch/dataset/3dmad

14. Feng L, Po L M, Li Y, et al.Integration of image quality and motion cues for face anti-spoofing: A neuralnetwork approach [J]. Journal of Visual Communication & Image Representation,2016, 38(C):451-460.

THE END

本文来自企鹅号 - PKUFineLab媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 别@微信团队了,我用Python给自己戴上了圣诞帽!

    引言 大家纷纷@官方微信 给自己的头像加上一顶圣诞帽。当然这种事情用很多P图软件都可以做到。但是作为一个学习图像处理的技术人,还是觉得我们有必要写一个程序来做这...

    企鹅号小编
  • 从传统方法到深度学习,人脸关键点检测方法综述

    人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别、表情分析、三维人脸重建及三维动画等其它人脸相关问题的前提和突破口。近些年来,深度学习方法由...

    企鹅号小编
  • Git 分支开发入门

    这两天开始准备在GitHub和别人一起开发,然后fork了别人的项目,然后发现自己git不是很熟练,尤其是协同开发的时候。 今天就简单总结几条命令。 创建分支 ...

    企鹅号小编
  • 【杂谈】如果你想快速系统掌握计算机视觉大部分领域,学习人脸图像是唯一选择

    笔者是从传统图像算法开始进入计算机视觉行业的,那一批人基本上都是从人脸图像和文本图像开始学,而如今很多计算机视觉从业者却从来没有接触过人脸图像相关的算法,或许真...

    用户1508658
  • 深度学习之视频人脸识别系列二:人脸检测与对齐

    人脸检测解决的问题为给定一张图片,输出图片中人脸的位置,即使用方框框住人脸,输出方框的左上角坐标和右下角坐标或者左上角坐标和长宽。算法难点包括:人脸大小差异、人...

    磐创AI
  • 一篇文章搞懂人脸识别的十个概念

    人脸技术基本概念介绍 1. 人脸检测   “人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。   人脸检测算法的输入是一张图片,...

    小莹莹
  • [深度应用]·基于卷积神经网络人脸识别的原理及应用开发(转)

    这里简单讲下OpenFace中实现人脸识别的pipeline,这个pipeline可以看做是使用深度卷积网络处理人脸问题的一个基本框架,很有学习价值,它的结构如...

    小宋是呢
  • 人脸识别登录认证:加强系统认证

    早在很久之前,公司同事已经实现了在网站的登陆模块加上人脸识别认证登陆功能,自己也就萌生了动手在自己的系统中加上这样的功能,通过不断的学习和搜所资料,发现...

    乐哉开讲
  • Google最新最权威的未来人工智能技术之一:人脸领域

    首先祝大家七夕情人节愉快,能和喜欢的人度过浪漫的一天,也祝在科研的同学抽出时间陪伴你的伴侣,一起度过一年一次的中国情人节,若还处于单身的同学,希望你们不仅科研成...

    计算机视觉研究院
  • 人脸识别(二)——训练分类器

    这是关于人脸的第②篇原创!(源码在第三篇) 上一篇简单整理了下人脸识别的相关基础知识,这一篇将着重介绍利用pencv(2.4.9)已有的模型进行分类器训练。 ...

    小小詹同学

扫码关注云+社区

领取腾讯云代金券