作者:云时之间
来源:知乎
链接:https://zhuanlan.zhihu.com/p/162334650
编辑:王萌

在一些业务需要中,需要识别场景中的用户是否为"真人",因此需要活体检测技术,这篇文章将针对当前行业中的活体检测技术进行总结。

一:活体检测面临的问题

在人脸检测之中,***者往往会通过PA(presentation attacks)对系统进行***,常见的PA操作包括打印照片,虚假录制视频,面部伪装,3D-人脸面具等方式,如果没有活体检测,系统的安全性会比较低。在2017年之前,行业主要的实现方向是使用传统的机器视觉方法,在17年之后,较多的使用CNN卷积网络来辅助性能,在2019年CVPR中就有多篇关于活体检测的paper,已成热门方向。

二:常见活体检测方式调研

Ⅰ:基于传统图像处理的活体检测

传统的活体检测主要的思路是捕捉图像的纹理,从而进行分类。

这类方法整体的流程大致如下:

1:图像预处理,对图像进行裁剪,对齐,分割等操作,同时对图像的空间进行变换和叠加,通过从时域到频域,空域或者改变其颜色空间来进行操作。

2:使用如SIFT,HOG,LBP,SURF以及各种魔改变种来对图像的特征进行提取。
3:使用如降维,编码,多通道组合的方法进行进一步的特征提取,进行分类前的预处理
4:使用SVM/LR等特征分类器进行二分类

Ⅱ:传统方法论文思想总结:

①:通过活体和PA***纹理统计特性不一致,基于纹理特征进行分类

比较具有代表性的论文:

1:Face Spoofing Detection Using Colour Texture Analysis

通过HSV空间人脸多级LBP特征 + YCbCr空间人脸LPQ特征
Link:https://ieeexplore.ieee.org/abstract/document/7454730

2: Face anti-spoofing based on color texture analysis

通过观测在频域上分布不同,先区分活体还是照片*** (因为照片中的人脸提取的频域分布不同),若判别上述结果是活体,再设计一个纹理LBP分类器,来区分活体还是屏幕***(因为屏幕视频中人脸频率分布与活体相近)
Link:https://ieeexplore.ieee.org/abstract/document/735128

在这类论文中,活体和PA纹理不一致,如下图

可以通过LBP(局部二值)来提取其纹理特征,再对LBP进行分类:

使用到的模型架构:

②:基于纹理统计特性进行分类

代表论文:

1:Chromatic cooccurrence of local binary pattern for face presentation attack detection

Link:https://ieeexplore.ieee.org/document/8487325

模型架构:

②:On the effectiveness of local binary patterns in face anti-spoofing

Link:https://ieeexplore.ieee.org/abstract/document/6313548

模型架构:

③:LBP-TOP based countermeasure against face spoofing attacks

Link:http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=271BCC281BDD5D9B869D3DB92A278BB0?doi=10.1.1.493.6222&rep=rep1&type=pdf

模型架构:

④:Face Liveness Detection with Component Dependent Descriptor

这篇文章也是用的纹理统计,但是比较有意思的是使用了面部分割的方法

模型流程:

1:检测面部位置,将面部分割为轮廓,面部,左右眼,鼻,嘴,六个区域
2:提取面部特征,LBP+HOG,将不同部位进行特征联结
3: SVM分类器进行二分类

以上为比较传统的机器学习的活体检测方法,虽然这些算法有一些历史,但大致流程不变,我们仍可以学习其处理的内核精神,下一篇文章将介绍下现在比较主流的基于深度学习的活体检测!

五:参考文章

活体检测Face Anti-spoofing综述 - Fisher Yu余梓彤的文章 - 知乎

https://zhuanlan.zhihu.com/p/43480539

CVPR & AAAI 2020 |人脸活体检测最新进展 - Fisher Yu余梓彤的文章 - 知乎 https://zhuanlan.zhihu.com/p/114313640

©著作权归作者所有:来自51CTO博客作者mb5fca0b6a49e47的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. CV学习笔记(三十):交互式人脸活体检测
  2. CV学习笔记(二十九):活体检测总结②
  3. android OpenGLES开发 第五课 纹理映射
  4. 【Android】OpenGL ES---绘制3D图形、应用纹理贴图
  5. OpenGL ES 2.0 Shader总结
  6. Android(安卓)OpenGL ES正方体纹理贴图(每个面一张)
  7. Android(安卓)opengl es 2.0怎么学习
  8. android opengl 播放 yuv数据
  9. 【Android开发学习35】GL_TRIANGLE_STRIP之纹理贴图

随机推荐

  1. 图解 LeetCode 第 421 题:数组中两个数的
  2. 老司机开车,教会女朋友什么是「马拉车算法
  3. 五分钟学算法之经典算法题 :排序算法(某东
  4. 字典树概念与题型解析
  5. 程序员的快乐往往就是这么朴素无华且枯燥
  6. 架构 | 到底该不该使用JavaScript框架
  7. 2017年 Web 开发趋势
  8. 超详细!详解一道高频算法题:数组中的第 K
  9. 软件设计原则
  10. 短小精悍,双指针对撞,求解「两数之和 II」