松鼠乐园 松鼠乐园
  • 注册
  • 登录
  • 首页
  • 快捷入口
    • Vue
    • Tensorflow
    • Springboot
    • 语言类
      • CSS
      • ES5
      • ES6
      • Go
      • Java
      • Javascript
    • 工具类
      • Git
      • 工具推荐
    • 服务器&运维
      • Centos
      • Docker
      • Linux
      • Mac
      • MySQL
      • Nginx
      • Redis
      • Windows
    • 资源类
      • 论文
      • 书籍推荐
      • 后端资源
      • 前端资源
      • html网页模板
      • 代码
    • 性能优化
    • 测试
  • 重大新闻
  • 人工智能
  • 开源项目
  • Vue2.0从零开始
  • 广场
首页 › 人工智能 › 人脸识别中的活体检测算法综述

人脸识别中的活体检测算法综述

迦娜王
3年前人工智能
628 0 0

1. 什么是活体检测?

–> 判断捕捉到的人脸是真实人脸,还是伪造的人脸攻击(如:彩色纸张打印人脸图,电子设备屏幕中的人脸数字图像 以及 面具 等)

2. 为什么需要活体检测?

–> 在金融支付,门禁等应用场景,活体检测一般是嵌套在人脸检测与人脸识别or验证中的模块,用来验证是否用户真实本人

3. 活体检测对应的计算机视觉问题:

–> 就是分类问题,可看成二分类(真or 假);也可看成多分类(真人,纸张攻击,屏幕攻击,面具攻击)


Anti-spoofing 1.0 时代

从早期handcrafted 特征的传统方法说起,目标很明确,就是找到活体与非活体攻击的difference,然后根据这些差异来设计特征,最后送给分类器去决策。

那么问题来了,活体与非活体有哪些差异?

1. 颜色纹理

2. 非刚性运动变形

3. 材料 (皮肤,纸质,镜面)

4. 图像or视频质量

所以这段时期的文章都是很有针对性地设计特征,列举几篇比较重要的:

Image Distortion Analysis[1], 2015

如下图,单帧输入的方法,设计了 镜面反射 图像质量失真 颜色 等统计量特征,合并后直接送SVM进行二分类。

人脸识别中的活体检测算法综述

Image Distortion Analysis[1]

Cons: 对于高清彩色打印的纸张or 高清录制视频,质量失真不严重时,难区分开

Colour Texture[2], 2016

Oulu CMVS组的产物,算是传统方法中的战斗机,特别简洁实用,Matlab代码(课题组官网有),很适合搞成C 部署到门禁系统。

原理:活体与非活体,在RGB空间里比较难区分,但在其他颜色空间里的纹理有明显差异

算法:HSV空间人脸多级LBP特征 YCbCr空间人脸LPQ特征 (后在17年的paper拓展成用Color SURF特征[12],性能提升了一点)

人脸识别中的活体检测算法综述

Colour Texture[2]

Pros: 算法简洁高效易部署;也证明了活体与非活体在HSV等其他空间也是discriminative,故后续深度学习方法有将HSV等channel也作为输入来提升性能。

Motion mag.-HOOF LBP-TOP[3], 2014

DMD LBP[4], 2015

前面说的都是单帧方法,这两篇文章输入的是连续多帧人脸图;

主要通过捕获活体与非活体微动作之间的差异来设计特征。

一个是先通过运动放大来增强脸部微动作, 然后提取方向光流直方图HOOF 动态纹理LBP-TOP 特征;一个是通过动态模式分解DMD,得到最大运动能量的子空间图,再分析纹理。

PS:这个motion magnification 的预处理很差劲,加入了很多其他频段噪声(18年新出了一篇用Deep learning 来搞Motion mag[13]. 看起来效果挺好,可以尝试用那个来做运动增强,再来光流or DMD)

人脸识别中的活体检测算法综述

Motion mag.-HOOF LBP-TOP[3]

人脸识别中的活体检测算法综述

Cons: 基于Motion的方法,对于 仿人脸wrapped纸张抖动 和 视频攻击,效果不好;因为它假定了活体与非活体之间的非刚性运动有明显的区别,但其实这种微动作挺难描述与学习~

Pulse texture[5], 2016

第一个将remote pluse 应用到活体检测中,多帧输入

(交代下背景:在CVPR2014,Xiaobai Li[14] 已经提出了从人脸视频里测量心率的方法)

算法流程:

1. 通过pluse 在频域上分布不同先区分 活体or 照片攻击 (因为照片中的人脸提取的心率分布不同)

2. 若判别1结果是活体,再cascade 一个 纹理LBP 分类器,来区分 活体or 屏幕攻击(因为屏幕视频中人脸心率分布与活体相近)

人脸识别中的活体检测算法综述

Pulse texture[5]

Pros: 从学术界来说,引入了心理信号这个新模态,很是进步;从工业界来看,如果不能一步到位,针对每种类型攻击,也可进行Cascade 对应的特征及分类器的部署方式

Cons: 由于remote heart rate 的算法本来鲁棒性也一般,故出来的pulse-feature 的判别性能力很不能保证;再者屏幕video里的人脸视频出来的pulse-feature 是否也有微小区别,还待验证~

Anti-spoofing 2.0 时代

其实用Deep learning 来做活体检测,从15年陆陆续续就有人在研究,但由于公开数据集样本太少,一直性能也超越不了传统方法:

CNN-LSTM[6], 2015

多帧方法,想通过CNN-LSTM 来模拟传统方法LBP-TOP,性能堪忧~

PatchNet pretrain[7],CNN finetune, 2017

单帧方法,通过人脸分块,pre-train 网络;然后再在global 整个人脸图fine-tune,作用不大

Patch and Depth-Based CNNs[8], 2017

第一个考虑把 人脸深度图 作为活体与非活体的差异特征,因为像屏幕中的人脸一般是平的,而纸张中的人脸就算扭曲,和真人人脸的立体分布也有差异;

就算用了很多tricks 去fusion,性能还是超越不了传统方法。

人脸识别中的活体检测算法综述

Deep Pulse and Depth[9], 2018

发表在CVPR2018 的文章,终于超越了传统方法性能。

文章[8]的同一组人,设计了深度框架 准端到端 地去预测Pulse统计量 及Depth map (这里说的“准”,就是最后没接分类器,直接通过样本feature 的相似距离,阈值决策)

在文章中明确指明:

1. 过去方法把活体检测看成二分类问题,直接让DNN去学习,这样学出来的cues不够general和discriminative

2. 将二分类问题换成带目标性地特征监督问题,即 回归出 pulse 统计量 回归出Depth map,保证网络学习的就是这两种特征(哈哈,不排除假设学到了color texture 在里面,黑箱网络这么聪明)

人脸识别中的活体检测算法综述

Deep Pulse and Depth[9]

回归Depth map,跟文章[8]中一致,就是通过Landmark 然后3DMMfitting 得到 人脸3D shape,然后再阈值化去背景,得到depth map 的groundtruth,最后和网络预测的estimated depth map 有L2 loss。

而文章亮点在于设计了Non-rigid Registration Layer 来对齐各帧人脸的非刚性运动(如姿态,表情等),然后通过RNN更好地学到temporal pulse 信息。

人脸识别中的活体检测算法综述

Non-rigid Registration Layer[9]

为什么需要这个对齐网络呢?我们来想想,在做运动识别任务时,只需简单把sampling或者连续帧 合并起来喂进网络就行了,是假定相机是不动的,对象在运动;而文中需要对连续人脸帧进行pulse特征提取,主要对象是人脸上对应ROI在temporal 上的Intensity 变化,所以就需要把人脸当成是相机固定不动。

Micro-texture SSD or binocular depth[10] , 2018

ArXiv 刚挂出不久的文章,最大的贡献是把 活体检测 直接放到 人脸检测(SSD,MTCNN等) 模块里作为一个类,即人脸检测出来的bbox 里有 背景,真人人脸,假人脸 三类的置信度,这样可以在早期就过滤掉一部分非活体。

所以整个系统速度非常地快,很适合工业界部署~

至于后续手工设计的SPMT feature 和TFBD feature 比较复杂繁琐,分别是表征micro-texture 和stereo structure of face,有兴趣的同学可以去细看。

人脸识别中的活体检测算法综述

texture SSD or binocular depth[10]

De-Spoofing[11], ECCV2018

单帧方法,与Paper[8]和[9]一样,是MSU同一个课题组做的。

文章的idea很有趣,启发于图像去噪denoise 和 图像去抖动deblur。无论是噪声图还是模糊图,都可看成是在原图上加噪声运算或者模糊运算(即下面的公式),而去噪和去抖动,就是估计噪声分布和模糊核,从而重构回原图。

人脸识别中的活体检测算法综述
人脸识别中的活体检测算法综述

De-spoofing process[11]

那问题来了,数据集没有像素级别一一对应的groundtruth,也没有Spoof Noise模型的先验知识(如果有知道Noise模型,可以用Live Face来生成Spoofing Face),那拿什么来当groundtruth,怎么设计网络去估计Spoofing noise 呢?

人脸识别中的活体检测算法综述

Magnitude loss(当输入是Live face时,N尽量逼近0);

Repetitive loss(Spooing face的Noise图在高频段有较大的峰值);

0\1Map Loss(让Real Face 的deep feature map分布尽量逼近全0,而Spoofing face的deep feature map 尽量逼近全1)

人脸识别中的活体检测算法综述

De-spoofing网络架构[11]

人脸识别中的活体检测算法综述

Pros: 通过可视化最终让大众知道了Spoofing Noise 是长什么样子的~

Cons: 在实际场景中难部署(该模型假定Spoofing Noise是strongly 存在的,当实际场景中活体的人脸图质量并不是很高,而非活体攻击的质量相对高时,Spoofing noise走不通)

后记:不同模态的相机输入对于活体检测的作用

1. 近红外NIR

由于NIR的光谱波段与可见光VIS不同,故真实人脸及非活体载体对于近红外波段的吸收和反射强度也不同,即也可通过近红外相机出来的图像来活体检测。从出来的图像来说,近红外图像对屏幕攻击的区分度较大,对高清彩色纸张打印的区分度较小。

从特征工程角度来说,方法无非也是提取NIR图中的光照纹理特征[15]或者远程人脸心率特征[16]来进行。下图可见,上面两行是真实人脸图中人脸区域与背景区域的直方图分布,明显与下面两行的非活体图的分布不一致;而通过与文章[5]中一样的rPPG提取方法,在文章[]中说明其在NIR图像中出来的特征更加鲁棒

人脸识别中的活体检测算法综述

NIR人脸区域与背景区域直方图[15]

2. 结构光/ToF

由于结构光及ToF能在近距离里相对准确地进行3D人脸重构,即可得到人脸及背景的点云图及深度图,可作为精准活体检测(而不像单目RGB或双目RGB中仍需估计深度)。不过就是成本较高,看具体应用场景决定。

3. 光场Light field

光场相机具有光学显微镜头阵列,且由于光场能描述空间中任意一点向任意方向的光线强度,出来的raw光场照片及不同重聚焦的照片,都能用于活体检测:

3.1 raw光场照片及对应的子孔径照片[17]

如下图所示,对于真实人脸的脸颊边缘的微镜图像,其像素应该是带边缘梯度分布;而对应纸张打印或屏幕攻击,其边缘像素是随机均匀分布

人脸识别中的活体检测算法综述

光场相机图

3.2 使用一次拍照的重聚焦图像[18]

原理是可以从两张重聚焦图像的差异中,估计出深度信息;从特征提取来说,真实人脸与非活体人脸的3D人脸模型不同,可提取差异图像中的 亮度分布特征 聚焦区域锐利程度特征 频谱直方图特征。

至此,Face anti-spoofing 的简单Survey已完毕~

毫无疑问,对于学术界,后续方向应该是用DL学习更精细的 人脸3D特征 和 人脸微变化微动作(Motion Spoofing Noise?) 表征;而也可探索活体检测与人脸检测及人脸识别之间更紧密的关系。

对于工业界,可直接在人脸检测时候预判是否活体;更可借助近红外,结构光/ToF等硬件做到更精准。

Reference:

[1] Di Wen, Hu Han, Anil K. Jain. Face Spoof Detection with Image Distortion Analysis. IEEE Transactions on Information Forensics and Security, 2015

[2] Zinelabidine Boulkenafet, Jukka Komulainen, Abdenour Hadid. Face Spoofing Detection Using Colour Texture Analysis. IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, 2016

[3] Samarth Bharadwaj. Face Anti-spoofing via Motion Magnification and

Multifeature Videolet Aggregation, 2014

[4] Santosh Tirunagari, Norman Poh. Detection of Face Spoofing Using Visual Dynamics. IEEE TRANS. ON INFORMATION FORENSICS AND SECURIT, 2015

[5] Xiaobai Li, , Guoying Zhao. Generalized face anti-spoofing by detecting pulse

from face videos, 2016 23rd ICPR

[6] Zhenqi Xu. Learning Temporal Features Using LSTM-CNN Architecture for Face Anti-spoofing, 2015 3rd IAPR

[7] Gustavo Botelho de Souza, On the Learning of Deep Local Features for

Robust Face Spoofing Detection, 2017

[8] Yousef Atoum, Xiaoming Liu. Face Anti-Spoofing Using Patch and Depth-Based CNNs, 2017

[9] Yaojie Liu, Amin Jourabloo, Xiaoming Liu, Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision ,CVPR2018

[10] Discriminative Representation Combinations for Accurate Face Spoofing Detection,2018 PR

[11] Amin Jourabloo, Face De-Spoofing: Anti-Spoofing via Noise Modeling, ECCV2018

[12]Zinelabidine Boulkenafet, Face Antispoofing Using Speeded-Up Robust Features and Fisher Vector Encoding, IEEE SIGNAL PROCESSING LETTERS, VOL. 24, NO. 2, FEBRUARY 2017

[13]Tae-Hyun Oh, Learning-based Video Motion Magnification, ECCV2018

[14]Xiaobai Li, Remote Heart Rate Measurement From Face Videos Under Realistic Situations

[15]Xudong Sun, Context Based Face Spoofing Detection Using Active Near-Infrared Images, ICPR 2016

[16]Javier Hernandez-Ortega, Time Analysis of Pulse-based Face Anti-Spoofing in Visible and NIR, CVPR2018 workshop

[17]Sooyeon Kim, Face Liveness Detection Using a Light Field Camera, 2014

[18]Xiaohua Xie, One-snapshot Face Anti-spoofing Using a Light Field Camera, 2017

人脸识别 活体检测算法
0
卷积神级网络特征可视化
上一篇
1×1卷积核的两个作用
下一篇
评论 (0)

请登录以参与评论。

现在登录
聚合文章
Servicios profesionales Organizaciones
1年前
在Gitee收获近 5k Star,更新后的Vue版RuoYi有哪些新变化?
1年前
vue3.x reactive、effect、computed、watch依赖关系及实现原理
1年前
Vue 3 新特性:在 Composition API 中使用 CSS Modules
1年前
标签
AI AI项目 css docker Drone Elaticsearch es5 es6 Geometry Go gru java Javascript jenkins lstm mysql mysql优化 mysql地理位置索引 mysql索引 mysql规范 mysql设计 mysql配置文件 mysql面试题 mysql高可用 nginx Redis redis性能 rnn SpringBoot Tensorflow tensorflow2.0 UI设计 vue vue3.0 vue原理 whistle ZooKeeper 开源项目 抓包工具 日志输出 机器学习 深度学习 神经网络 论文 面试题
相关文章
我收集了12款自动生成器,无聊人士自娱自乐专用
输入一张图,就能让二次元老婆动起来,宛如3D:这全是为了科学啊
使用ONNX+TensorRT部署人脸检测和关键点250fps
基于 Keras 的烟火检测
松鼠乐园

资源整合,创造价值

小伙伴
墨魇博客 无同创意
目录
重大新闻 Centos CSS Docker ES5 ES6 Go Java Javascript Linux Mac MySQL Nginx Redis Springboot Tensorflow Vue Vue2.x从零开始 Windows 书籍推荐 人工智能 前端资源 后端资源 壁纸 开源项目 测试 论文
Copyright © 2018-2022 松鼠乐园. Designed by nicetheme. 浙ICP备15039601号-4
  • 重大新闻
  • Centos
  • CSS
  • Docker
  • ES5
  • ES6
  • Go
  • Java
  • Javascript
  • Linux
  • Mac
  • MySQL
  • Nginx
  • Redis
  • Springboot
  • Tensorflow
  • Vue
  • Vue2.x从零开始
  • Windows
  • 书籍推荐
  • 人工智能
  • 前端资源
  • 后端资源
  • 壁纸
  • 开源项目
  • 测试
  • 论文
热门搜索
  • jetson nano
  • vue
  • java
  • mysql
  • 人工智能
  • 人脸识别
迦娜王
坚持才有希望
1224 文章
35 评论
242 喜欢
  • 0
  • 0
  • Top