多模態PCANet:一種高精度、低複雜度的魯棒3D活體檢測方案
多模態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.
相關文章
- 活體檢測API對接php語言方式-人臉靜態/動態活體檢測免費APIPHP
- DDD之理解複雜度、尊重複雜度、掌控複雜度複雜度
- 活體檢測
- 複雜度分析的套路及常見的複雜度複雜度
- OCR活體檢測
- 易被忽略的知識點之 ---- 各種時間複雜度和空間複雜度時間複雜度
- 時間複雜度與空間複雜度時間複雜度
- 時間複雜度和空間複雜度時間複雜度
- 時間複雜度跟空間複雜度時間複雜度
- 第一講 複雜度分析複雜度
- 人臉活體檢測
- 活體檢測技術
- 複雜異常檢測如何快速落地?看看百度怎麼做
- 高精度定位的幾種解決方案
- 複雜度分析複雜度
- 時間複雜度O(n)和空間複雜度時間複雜度
- 淺析程式碼圈複雜度及認知複雜度複雜度
- SCRDet——對小物體和旋轉物體更具魯棒性的模型模型
- 阿里研究員:警惕軟體複雜度困局阿里複雜度
- 演算法(一)時間複雜度演算法時間複雜度
- 122 演算法的時間複雜度和空間複雜度詳解演算法時間複雜度
- 考勤系統的應用實踐 - 靜態活體檢測 API 技術API
- 一文講透演算法中的時間複雜度和空間複雜度計算方式演算法時間複雜度
- DashVector + DashScope升級多模態檢索
- DashVector + ModelScope 玩轉多模態檢索
- 系統困境與軟體複雜度,為什麼我們的系統會如此複雜複雜度
- 時間複雜度一定的演算法能處理的資料規模時間複雜度演算法
- 時間複雜度怎麼算?如何計算時間複雜度?時間複雜度
- 那些年忽略的知識:時間複雜度和空間複雜度詳解時間複雜度
- 降低程式碼的圈複雜度——複雜程式碼的解決之道複雜度
- 高精度+低精度加法
- 高精度 除/ 低精度
- 演算法的複雜度分析演算法複雜度
- AAAI 2021 | 投票的平滑複雜度AI複雜度
- 時間複雜度的計算時間複雜度
- 面試中的複雜度分析面試複雜度
- Shell排序複雜度分析排序複雜度
- dijkstra 複雜度證明複雜度