关键词:live detection、 Face Anti-Spoofing、 Presentation Attack
1、简单介绍
什么是活体检测,是指计算机判别检测的人脸是真实的人脸,还是伪造的人脸攻击,比如合法用户图片、提前拍摄的视频等。传统方法将其视为一个“活体”VS“假体”的二分类问题,当然也可看成多分类问题,如真人、图片攻击、视频回放攻击、面具攻击等)
目前主要研究机构:OULU大学(有多篇论文)、MSU(多篇论文Department of Computer Science and Engineering,Michigan State University)、HKBU(和OULU合作)、IDIAP(提供了很多数据集)、国内(旷视、百度、商汤、虹软等都有提供)
目前攻击方法有打印照片、视频回放、面具攻击,反攻击也是针对这几种方式,例如用户配合动作检测、语音校验、颜色纹理、光流、远程心率rPPG,还有一些借助外部设备,如红外摄像头、深度摄像头。
应该针对具体情境制定方案,嵌入式还是移动端,是否需要减少交互增强用户体验(静默活体检测)、是否允许额外设备支持等。
2、数据集
见另一篇博客:https://blog.csdn.net/liuxiao214/article/details/85214154
3、攻击与反攻击方法
简要分为以下几类:
欺骗 | 反欺骗 | 隐患 | 升级 | 备注 |
---|---|---|---|---|
图片:具体包括使用合法用户的纸质打印照片、彩色打印照片、手机里保存的照片等 | 交互动作活体检测:指定动作 | 将图片抠掉眼睛嘴巴,做指定动作 | 抠眼抠嘴巴的伪造一般很劣质,不足以对算法造成攻击 | 深度摄像头 |
视频:提前录制的视频回放,包含眨眼、转头、张嘴等动作指令欺骗 | 使用屏幕播放视频,画面质量会下降,出现摩尔纹。 | 换用高清屏幕 | 仍会有反光、倒影问题,且画面总有模糊、失真,可从这些角度反欺骗 | 深度摄像头 |
立体面具:简单的塑料面具 | 与人皮肤材质相差较大,使用纹理特征识别 | 进一步升级,如乳胶、硅胶、3D打印面具等 | 外观和皮肤较为接近,但材料表面反射率与皮肤还是不同 |
此外,除上述反欺骗方法,还有静默活体检测、红外活体检测、获取生物信号(心率等)、光流场、深度摄像头、语音指令配合等。
静默活体检测:相对于动态活体检测方法,静默活体检测是指,不需要用户做任何动作,自然面对摄像头3、4秒钟即可。由于真实人脸并不是绝对静止的, 存在微表情,如眼皮眼球的律动、眨眼、嘴唇及周边面颊的伸缩等,可通过此类特征反欺骗。
红外活体检测:利用额外设备红外摄像头不管是可见光还是红外光,其本质都是电磁波。我们最终看到的图像长什么样,与材质表面的反射特性有关。真实的人脸和纸片、屏幕、立体面具等攻击媒介的反射特性都是不同的,所以成像也不同,而这种差异在红外波反射方面会更加明显,比如说,一块屏幕在红外成像的画面里,就只有白花花的一片,连人脸都没了,攻击完全不可能得逞。
光流法:利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”,从图像序列中得到各个像素点的运行信息,采用高斯差分滤波器、LBP特征和支持向量机进行数据统计分析。同时,光流场对物体运动比较敏感,利用光流场可以统一检测眼球移动和眨眼。这种活体检测方式可以在用户无配合的情况下实现盲测。
3D摄像头:拍摄人脸,得到相应的人脸区域的3D数据,并基于这些数据做进一步的分析, 最终判断出这个人脸是来自活体还是非活体。这里非活体的来源是比较广泛的,包括手机和Pad等介质的照片和视频、各种打印的不同材质的照片(包含各种情形的弯曲、折叠、剪裁、挖洞等情形)等。关键是,基于活体和非活体的3D人脸数据,如何选择最具有区分度的特征来训练分类器,利用训练好的分类器来区分活体和非活体。
参考链接:
https://zhuanlan.zhihu.com/p/26112838