在一些业务需要中,需要识别场景中的用户是否为"真人",因此需要活体检测技术,这篇文章将针对当前行业中的活体检测技术进行总结。
一:活体检测面临的问题
在人脸检测之中,攻击者往往会通过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分类器进行二分类
以上为比较传统的机器学习的活体检测方法,虽然这些算法有一些历史,但大致流程不变,我们仍可以学习其处理的内核精神,下一篇文章将介绍下现在比较主流的基于深度学习的活体检测!