多模态PCANet:一种高精度、低复杂度的鲁棒3D活体检测方案
——基于ToF的3D活体检测算法研究
作者:陈发全 王伟行
当下正值新冠肺炎(COVID-19)肆虐全球之际,戴口罩成为了全民阻断病毒传播的最佳方式。然而在人脸部分遮挡或恶劣光照条件下,用户人脸识别或人脸认证的合法访问常常提示活体检测失败,甚至根本检测不到人脸。这是由于目前基于RGB等2D空间的主流活体检测方案未考虑光照、遮挡等干扰因素对于检测的影响,而且存在计算量大的缺点。而数迹智能团队研发的3D SmartToF活体检测方案则可以有效解决此问题。那么什么是活体检测?什么又是3D活体检测?以及怎么实现恶劣环境(如人脸遮挡、恶劣光照等)与人脸多姿态变化(如侧脸、表情等)应用场景下的活体检测呢?本文将会围绕这些问题,介绍数迹智能的最新成果——基于ToF的3D活体检测算法。
1. 什么是活体检测?
根据IEEE首个生物特征活体检测国际标准[26]定义,生物特征识别系统捕获访问对象并自动检测呈现攻击(Presentation Attack, PA)的过程统称为攻击检测(Presentation Attack Detection, PAD),又称为活体检测。
人脸活体检测作为人脸识别技术的先决条件,对保障人脸识别系统的安全性具有重大意义。本文讨论的呈现攻击仅限与关于人脸的非活体呈现攻击,如照片、回放视频以及人脸面具等。
2. 活体检测研究现状
根据活体检测国际标准[26],基于对象的人脸活体检测方法可分为被动检测与主动检测。主动检测通常需要用户根据指令完成规定动作,根据连续帧动作完成情况判断是否为活体,操作繁琐且耗时较长,用户体验感较差;而被动检测通过对单帧人脸图像判断是否为活体,以其自然性、实时性,更适用于不同应用场景。
本文针对被动活体检测任务,根据人脸图像数据维度分作2D活体检测、伪3D活体检测以及3D活体检测。3D活体检测是指利用双目、结构光、ToF相机,获得点云图或深度图等3D空间结构信息进行活体检测的统称。接下来将对每一类活体检测进行简单介绍与总结。
图2-1 活体检测算法分类
2.1 2D活体检测
2D活体检测未利用任何的空间结构信息,现存的2D活体检测算法包括基于传统的特征提取与基于深度学习方法。传统的特征提取方法包括特征描述子如局部二值模式(LBP)[1]、梯度方向直方图(HOG)[3]、灰度共生矩阵(GLCM)[4]等,以及利用图像失真[8]分析活体与非活体之间的差异性;传统算法根据活体与欺骗攻击的差异来设计特征,最后通过分类器决策;基于深度学习方法则是使用卷积神经网络将低阶特征(像素、纹理、方向等)逐层编码,获取图像的高阶表示。
在算法复杂度层面,传统的算法复杂度低但准确率相对较低。针对手动设计的差异如纹理、颜色等,在样本自身或者外部因素发生变化时,算法性能受到极大的影响,算法自身的泛化性和鲁棒性较差。如Schwartz等[4]利用灰度共生矩阵(GLCM)表征人脸图像灰度空间内方向、变换快慢和幅度的综合信息。基于深度学习算法的复杂度和准确率相对较高,Yang等[10]利用卷积神经网络(CNN)进行端到端的有监督学习,将活体检测当做一个二分类任务,自动提取图像特征,并直接用参数表达。与传统方法不同的是,深度学习算法的特征理解具有不可解释性,但是其自适应特征提取过程在一定程度上增强活体检测算法的泛化性能。同时深度神经网络也存在的过拟合、梯度消失、梯度爆炸等一系列问题。
2.2 伪3D活体检测
伪3D活体检测指基于RGB图像使用深度估计算法间接得到空间结构信息的活体检测算法。Wang等[15]从RGB图像中恢复稀疏的3D面部结构以进行活体检测,这也是首次将估计的3D结构信息用于活体检测。Atoum等[16]则利用RGB图像估计深度信息,设计双流CNN网络结合颜色纹理与深度结构特征实现活体检测算法,其估计3D深度信息的过程是:将训练图像从RGB空间转化到HSV、YCbCr空间,利用3D脸部匹配算法与3DMM模型计算深度图像标签。伪3D活体检测利用RGB图像估计深度信息,虽然不需要额外的深度相机设备进行采集3D数据,但是除了存在计算量大的缺点之外,最关键的是估计数据与实测数据存在较大偏差,直接影响了活体检测的准确性。
2.3 3D活体检测
3D活体检测则直接利用深度相机获取空间结构信息实现活体检测算法。Wang等[21]利用Kinect深度相机采集的深度信息,通过提取深度图的LBP特征以及CNN学习到RGB图像的纹理特征,再送入SVM分类完成活体检测。Zhang等[19][20]公开了大尺度、多模态数据集CASIA-SURF,该数据集利用Intel RealSense SR300结构光相机采集深度图和红外图,提出融合RGB、深度图与红外图的多流ResNet基准算法。该算法与前两类活体检测算法相比,其专注于人脸面部区域,消除背景对检测的干扰。作为经典的3D活体检测算法,直接使用深度相机获取空间结构信息,极其容易识别屏幕或者打印攻击。同时结合其他模态(如红外图、RGB图等),为活体检测任务提供更多准确的区分性特征,还可以降低了算法的运算复杂度。但该基准算法只针对了6种纸张打印欺骗攻击方式展开,未考虑恶劣条件下的活体检测,而且仍存在计算复杂度较大的问题。此外相较于结构光、双目视觉等消费级深度相机,ToF相机具有更强的抗干扰性能,能够准确表征人脸的立体空间结构特性,符合活体检测的应用场景条件。
3. 基于ToF的3D活体检测
3.1 ToF深度相机
ToF全称为Time-of-Flight,直译为飞行时间。飞行时间法通过连续向目标发送光脉冲,用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。测距原理如图3-1所示。
图3-1 ToF测距原理[27]
由于ToF相机不需要像双目相机一样进行匹配,也不需要像结构光相机一样进行编码,ToF相机的计算相对简单,帧率可达上百fps。在测距范围和精度方面,ToF表现非常均衡,解决了结构光相机远距离受限和双目相机近距离精度不足的问题。同时,ToF作为一种采用主动测距方式的3D相机,在黑暗环境中也能正常工作。高频调制的光源使其在强光环境下的抗光干扰表现优异,ToF相机具有明显的优势。
上海数迹智能科技有限公司开发的SmartToF®相机具有精度高、小型化的特点,测距范围可达0.3~8m,同时覆盖了近景和远景,且精度高可实现毫米级测距精度,实时输出深度数据和强度数据,如图3-2所示。本文利用SmartToF®深度相机,消除外部强干扰因素(如人脸遮挡、恶劣光照等)与人脸多姿态变化(如侧脸、表情等)影响,实现高鲁棒、高精度的3D人脸活体检测方案。更多ToF相机相关信息,欢迎访问https://www.smarttof.com 进一步了解。
图3-2 数迹智能ToF相机产品
3.2 3D活体检测算法
3.2.1 算法框架
本算法的主要创新点为:
空间层次上的预注意机制。特征学习专注于人脸区域,消除背景对检测的干扰,提取更高区分度的识别特征。鲁棒人脸特征提取。PCA网络(PCANet)[23]作为层次化鲁棒特征提取的经典网络,将CNN的卷积层引入经典的“特征图—模式图—柱状图”特征提取框架,通过层次化卷积与编码,逐阶段形成图像的高阶特征表达。多模态数据融合。本方法融合RGB图、深度图、强度图三种模态数据,不同模态数据在PCANet中学习到的特征互补,可有效地区分活体与非活体。我们提出3D活体检测算法框架主要基于特征级的多模态融合策略,首先FaceBoxes[24]人脸检测器完成人脸检测。非极大抑制(NMS)算法用于选取候选的人脸区域,根据图像中的像素面积大小得到最终的待检人脸区域。再以多模态PCANet为网络主干,对比分析一层PCANet(PCANet-1)与两层PCANet(PCANet-2)在多模态活体检测任务中融合的效果。具体地,通过PCA滤波器核卷积与编码,学习多模态数据(RGB、IR、Depth)的高阶特征,融合的直方图统计特征送入到SVM等统计学习分类器完成最终检测。算法框架如图3-3所示。
(a) (b)
图3-3 算法方案:(a) 为多模态PCANet主线框架,(b)为直方图统计融合框架
3.2.2 结果与分析
基于CASIA-SURF和数迹ToF活体检测数据集,输入人脸区域像素统一设定为:28×28,所有实验都在Dual-Core Intel Core i5 CPU上完成,除特殊说明外,融合特征均采用支持向量机(SVM)进行分类,惩罚因子C设为20。PCANet-1与PCANet-2参数设置为:所有阶段的PCA滤波器核大小K1×K2=3×3,步长为1。第一阶段PCA滤波器核数目L1=3,第二阶段PCA滤波器核数目L2=3。直方图分块大小为4×4,步长为2。由于测试数据集的正负样本数量大致均匀,本文活体检测性能衡量指标包括:分类正确率(CA)、非活体攻击呈现分类错误率(LAPCER)[26]、真实呈现分类错误率(BPCER)[26]、平均分类错误率(ACER)以及真正率与假正率组合(TPR@FPR = 10-2,指当假正率为10-2时TPR的值)[19]。
首先探究具有一层PCA滤波器核卷积的PCANet-1、具有两层PCA滤波器核卷积的PCANet-2在CASIA-SURF和数迹ToF活体检测数据集上的性能,结果如表3-1所示。
由表3-1可知,PCANet-1在ToF与CASIA-SURF活体检测数据集上的综合表现较好,其中PCANet-1在ToF数据集99.9%的正确率与0.3%的平均分类错误率。在CASIA-SURF数据集则实现98.9%的正确率与0.9%的平均分类错误率。因此本文的算法方案选取以PCANet-1为基础的多流融合算法。
在上述基础上,基于PCANet-1,在CASIA-SURF上完成了模态内组合实验,结果如表3-2所示,实验表明在不同模态组合中,深度模态为活体检测提供了最大区分度的信息,而且三模态融合方案取得最佳效果。
接下来验证了PCANet-1在强干扰因素和人脸多姿态的挑战场景下的泛化和鲁棒性能,使用SmartToF®相机采集的含有遮挡、表情、姿势变化等干扰的活体检测数据集。训练集仍然使用不包括挑战场景下的数迹ToF活体检测数据,将新采集的数据集直接利用PCANet-1网络与SVM分类器结合进行测试,结果如表3-3所示,同时在图3-4中展示了部分测试的结果。
结果表明:挑战场景下的活体检测仍然保持着99.1%的平均准确率以及1.0%的平均分类错误率。基于PCANet-1的3D活体检测算法对于强干扰因素与多姿态变化具有较强的鲁棒性。
(a) 口罩遮挡 (b) 打印欺诈攻击
(c) 表情变化 (d) 侧脸
图3-4 挑战场景下的ToF活体检测结果,在口罩遮挡、侧脸(≤90°)、表情变化等干扰因素下能正确地区分活体与欺骗攻击
进一步我们对本文提出的算法多模态PCANet-1算法与基于CASIA-SURF的基准算法[19][20]进行了比较,算法对比结果如表3-4所示,其中本文提出的多模态PCANet-1融合的ROC曲线如图3-5所示。
算法对比表明,本文提出的多流PCANet活体检测算法,结合SVM分类器下的分类正确率达到98.9%,平均攻击分类错误率为0.9%;结合k-NN分类器,算法的分类正确率达到99.2%,在平均分类错误率上仅为0.8%,显著低于其他算法,这意味着100次欺诈攻击仅有不足1次的检测失败,满足现实场景的应用。同时在ToF活体数据集上也证明了提出算法的有效性。
图3-5基于三流PCANet-1在CASIA数据集的活体检测ROC曲线
最后我们对比分析了本文提出的算法和基准算法的复杂度,以FLOPs(浮点运算次数, floating point of operations)为时间复杂度指标,针对PCANet-1与基准算法ResNet-18[20]网络主线的时间复杂度进行对比。结果如表3-5所示。
* M为输出特征图大小,K为卷积核大小,C为卷积核的通道数,I、O为全连接层的输入输出;m、n为PCANet输入分块大小,L1为滤波器核数目,K1、K2为滤波器核大小。
表3-5的结果表明:本文提出的算法主线基于简化的深度学习模型,其时间复杂度远小于深度学习基准算法主线,FLOPs仅为2.4×104。但需要注意的是,本文提出的基于三流PCANet-1的3D活体检测算法包含以SVM、k-NN为代表的统计机器学习,复杂度较小。但统计机器学习作为内存密集型算法,在样本数据较大时,其运算效率会受到内存的限制。
4. 总结
本文在现存活体检测方法容易受到光照、表情、遮挡变化等干扰因素影响的问题基础上,基于TOF相机数据,实现单帧多模态图像的人脸活体检测算法。
本文提出的基于三流PCANet的3D鲁棒活体检测算法,在公开数据集CASIA-SURF与数迹ToF数据集上的实验结果表明:本文提出的多模态融合算法对于活体检测的性能有很大的提升。在CASIA-SURF数据集上结合SVM分类器下的分类正确率达到98.9%,平均攻击分类错误率为0.9%;结合k-NN分类器,算法的分类正确率达到99.2%,在平均分类错误率上仅为0.8%,显著低于其他算法;同时在采集的ToF数据集的正确率达到99.9%,测试分类错误率仅为0.3%,满足现实场景的实际应用。算法框架基于传统FPH框架和简化深度学习模型,在算法运算复杂度上显著低于现存的深度学习基准算法,对于光照、遮挡、姿态变化等具有一定鲁棒性,保障着人脸识别系统的安全性,提高了人脸识别的性能。
5. 参考文献
[1] Chingovska I , Anjos A , Marcel S . On the Effectiveness of Local Binary Patterns in Face Anti-spoofing[C]// IEEE International Conference of the Biometrics Special Interest Group (BIOSIG). IEEE, 2012.
[2] De Freitas Pereira, Tiago, Anjos, André, De Martino, José Mario. LBP-TOP based countermeasure against face spoofing attacks[M]// Computer Vision - ACCV 2012 Workshops. Springer Berlin Heidelberg, 2013.
[3] Zeng C, Ma H. Robust Head-Shoulder Detection by PCA-Based Multilevel HOG-LBP Detector for People Counting[C] International Conference on Pattern Recognition. IEEE, 2010:2069-2072.
[4] William Robson Schwartz, Anderson Rocha, and Helio Pedrini. Face spoofing detection through partial least squares and low-level descriptors. In IJCB, 2011. 3
[5] Li Jiangwei, Wang Yunhong, Jain A K. Live face detection based on the analysis of Fourier spectra[J]. Proceedings of SPIE, 2004, 5404: 296-303.
[6] Zhang Z , Yan J , Liu S , et al. A face antispoofing database with diverse attacks[C]// Biometrics (ICB), 2012 5th IAPR International Conference on. IEEE, 2012.
[7] Boulkenafet Z , Komulainen J , Hadid A . Face Spoofing Detection Using Colour Texture Analysis[J]. IEEE Transactions on Information Forensics & Security, 2016, 11(8):1-1.
[8] Wen D, Han H, Jain A K. Face spoof detection with image distortion analysis[J]. Information Forensics and Security, IEEE Transactions on, 2015, 10(4): 746-761.
[9] Li X , Komulainen J , Zhao G , et al. Generalized face anti-spoofing by detecting pulse from face videos[C] 2016 23rd International Conference on Pattern Recognition (ICPR). IEEE, 2016.
[10] Yang J , Lei Z , Li S Z . Learn Convolutional Neural Network for Face Anti-Spoofing[J]. Computer ence, 2014, 9218:373-384.
[11] Lei Li, Xiaoyi Feng, Zinelabidine Boulkenafet, Zhaoqiang Xia, Mingming Li, and Abdenour Hadid. An original face anti-spoofing approach using partial convolutional neural network. In 2016 Sixth International Conference on Image Processing Theory, Tools and Applications (IPTA), pages 1–6. IEEE, 2016.
[12] Jourabloo A , Liu Y , Liu X . Face De-Spoofing: Anti-Spoofing via Noise Modeling[J]. 2018.
[13] Tu X , Zhang H , Xie M , et al. Deep Transfer Across Domains for Face Anti-spoofing[J]. Journal of Electronic Imaging, 2019.
[14] Liu, Yaojie, Stehouwer, Joel, Jourabloo, Amin. Deep Tree Learning for Zero-shot Face Anti-Spoofing[J]. 2019.
[15] Tao Wang, Jianwei Yang, Zhen Lei. Face Liveness Detection Using 3D Structure Recovered from a Single Camera[J]. 2013.
[16] Atoum Y , Liu Y , Jourabloo A , et al. Face Anti-Spoofing Using Patch and Depth-Based CNNs[C] The International Joint Conference on Biometrics (IJCB 2017). IEEE, 2017.
[17] Liu Y , Jourabloo A , Liu X . Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision[J]. 2018.
[18] Liu Y , Tai Y , Li J , et al. Aurora Guard: Real-Time Face Anti-Spoofing via Light Reflection[J]. 2019.
[19] Zhang S , Liu A , Wan J , et al. CASIA-SURF: A Large-scale Multi-modal Benchmark for Face Anti-spoofing[J]. 2019.
[20] Zhang S , Wang X , Liu A , et al. CASIA-SURF: A Dataset and Benchmark for Large-scale Multi-modal Face Anti-Spoofing[J]. 2018.
[21] Wang Y , Nian F , Li T , et al. Robust Face Anti-spoofing with Depth Information[J]. Journal of Visual Communication and Image Representation, 2017:S1047320317301773.
[22] 刘逸飞. 基于光谱分析与深度信息的人脸活体检测[D]. 2017.
[23] Chan T H , Jia K , Gao S , et al. PCANet: A Simple Deep Learning Baseline for Image Classification?[J]. IEEE Transactions on Image Processing, 2015, 24(12):5017-5032.
[24] Zhang S , Zhu X , Lei Z , et al. FaceBoxes: A CPU Real-time Face Detector with High Accuracy[C]// International Joint Conference on Biometrics (IJCB). 2017.
[25] He K , Zhang X , Ren S , et al. Deep Residual Learning for Image Recognition[J]. 2015.
[26] Chen Gu, Wei Guo, Qi Wang, et al. IEEE Standard for Biometric Liveness Detection[J].in IEEE Std 2790-2020, IEEESTD.2020.9080669. 2020
[27] 传感器技术mp_discard.3D视觉传感技术[EB/OL].https://www.sohu.com/a/212031137_468626,2017-12-22.