静默活体检测
文章目錄
- 1 靜默活體檢測技術
- 2 靜默活體檢測特點:
- 3 相關應用原理
- 3.1 基于PCA和SURF的活體檢測
- 3.2 傅里葉頻譜圖輔助的RGB圖像活體檢測
1 靜默活體檢測技術
活體檢測技術主要判別機器前出現的人臉是真實的還是偽造的,其中借助其他媒介呈現的人臉都可以定義為虛假的人臉,包括打印的照片、顯示屏幕視頻、硅膠面具、立體的3D人像等。目前主流的活體檢測方案為配合式活體檢測和非配合式活體檢測(靜默活體檢測)等。配合式活體檢測需要用戶根據提示完成指定的動作,然后進行活體校驗,靜默活體檢測與動態活體檢測相反,主要在沒有眨眼、張嘴等一系列的動作配合下判斷到底是不是一個真活體,不僅在技術上實現難度更高,在實際應用中對準確性要求也更高,簡言之, 靜默活體檢測則在用戶無感的情況下直接進行活體校驗,具有更好的用戶體驗。
非配合式活體根據成像源的不同一般分為紅外圖像、3D 結構光和 RGB 圖像三種技術路線:紅外圖像濾除了特定波段的光線,天生抵御基于屏幕的假臉攻擊;3D 結構光引入了深度信息,能夠很容易地辨別紙質照片、屏幕等 2D 媒介的假臉攻擊;RGB 圖片主要通過屏幕拍攝出現的摩爾紋、紙質照片反光等一些細節信息進行判別。基于以上分析不難發現,基于 RGB 圖片的活體檢測與其他兩種方法相比,僅能通過圖像本身的信息進行判別,在實際的開放場景中面臨著更大的挑戰性。
2 靜默活體檢測特點:
- 1 速度快:無需動作指令配和,能夠在更短的時間內出結果。
- 2、自然性好:無論是在有意還是無意的情況喜喜啊,均不影響檢測結果,不同于其他識別可以有意識的后天模仿和改變。
- 3、簡單方便:識別速度快,操作簡單便捷。
- 4、非接觸性。
3 相關應用原理
3.1 基于PCA和SURF的活體檢測
基于傳統特征的世紀晟靜默活體檢測 。
(1)檢測系統實現原理:
傳統特征有LBP、SIFT、SURF、HOG等,這里我們使用了SURF,計算生成特征描述子,并利用PCA將這些特征描述子投影到主成分,然后利用GMM進行主成分編碼,得到一個長度為76800的特征碼,最后送入SVM二分類。
(2)基于PCA和SURF的活體檢測
基于傳統圖像處理特征算子的方法在實際應用和測試過程中,或多或少的都會受到光線、角度和距離等不可抗因素的影響,所以我們在算法實際設計過程中做了相關改進,如引入PCA主成分分析,以及加入LBP特征,實現雙重特征的重檢,以增加算法的魯棒性能。
3.2 傅里葉頻譜圖輔助的RGB圖像活體檢測
傅里葉頻譜圖在一定程度上能反應真假臉在頻域的差異,因此小視科技采用了一種基于傅里葉頻譜圖輔助監督的靜默活體檢測方法,模型架構由分類主分支和傅里葉頻譜圖輔助監督分支構成。
https://www.ctolib.com/minivision-ai-Silent-Face-Anti-Spoofing.html
小視科技團隊開源的基于 RGB 圖像的活體檢測模型,是專門面向工業落地場景,兼容各種復雜場景下的模型。該自研的剪枝輕量級模型,運算量為 0.081G,在麒麟 990 5G 芯片上僅需 9ms。同時基于 PyTorch 訓練的模型能夠靈活地轉化成 ONNX 格式,實現全平臺部署。
活體任務的定義
基于 RGB 圖像的活體檢測是一個分類任務,目標是有效地區分真臉和假臉,但又有別于其他類似于物品分類的任務。其中的關鍵點在于攻擊源分布過于廣泛,如圖 1 所示:不同的攻擊媒介,不同設備的成像質量,不同的輸入分辨率都對分類結果有著直接的影響。為了降低這些不確定因素帶來的影響,小視科技團隊對活體的輸入進行了一系列限制:活體的輸入限制在特定的分辨率區間;輸入圖片均為實時流中截取的視頻幀。這些操作大大降低了活體模型在實際生產部署上失控的風險,提升了模型的場景魯棒性。
基于成像介質種類的不同,小視科技團隊將樣本分為真臉、2D 成像(打印照片,電子屏幕)以及 3D 人臉模具三類,根據上述的準則整理和收集訓練數據。活體檢測的主要流程如圖 2 所示。
開源模型技術路線
小視科技團隊采用自研的剪枝輕量級網絡作為 backbone 訓練模型,使用 Softmax + CrossEntropy Loss 作為訓練分類的監督。使用不同尺度的圖片作為網絡的輸入訓練數據,增加模型間的互補性,從而進行模型融合。考慮到用于真假臉判別的有效信息不一定完全分布在臉部區域,可能在取景畫面的任何地方(如邊框,摩爾紋等),小視科技團隊在 backbone 中加入了 SE(Squeeze-and-Excitation)的注意力模塊,動態適應分散的判別線索。同時小視科技團隊也通過實驗發現真假臉在頻域中存在明顯的差異,為此引入傅里葉頻譜圖作為模型訓練的輔助監督,有效提升了模型精度。
自研的輕量級剪枝網絡
小視科技團隊使用自研的模型剪枝方法,將 MoboileFaceNet 的 flops 從 0.224G 降低到了 0.081G,剪枝的網絡結構如圖 3 所示。模型觀測誤檢率在十萬一對應的真臉通過率,在精度沒有明顯損失的情況下,模型前向運行的速度提升了 40%。
注意力機制
考慮到用于真假臉判別的有效信息不一定完全分布在臉部區域,也有可能在取景畫面的任何地方(如邊框,摩爾紋等)。小視科技團隊在 backbone 中加入了 SE(Squeeze-and-Excitation)的注意力模塊,動態適應分散的判別線索,熱力圖如圖 4 所示。對于假臉,模型更關注于邊框信息和屏幕的摩爾紋信息,對于真臉更加關注臉部以及周圍的信息。
數據預處理
使用人臉檢測器獲取圖像中的人臉框坐標,按照一定比例 (scale) 對人臉框進行擴邊,圖 5 展示了部分 patch 的區域,為了保證模型的輸入尺寸的一致性,將 patch 區域 resize 到固定尺寸。
傅里葉頻譜圖
將假臉照片與真臉照片轉化生成頻域圖,對比發現假臉的高頻信息分布比較單一,僅沿著水平和垂直方向延伸,而真臉的高頻信息從圖像的中心向外呈發散狀,如圖 6 所示。根據以上的實驗,小視科技團隊發現真臉和假臉的傅里葉頻譜存在差異,從而引入了傅里葉頻譜對模型訓練進行輔助監督。
基于傅里葉頻譜圖的輔助網絡監督
基于對于真臉和假臉在頻域的觀察分析,小視科技團隊提出了基于傅里葉頻譜圖進行輔助網絡監督的訓練方法,整理架構圖如圖 7 所示。網絡的主分支采用 Softmax+ CrossEntropy 作為網絡的監督,如公式(1)所示。其中, f_j表示輸出類別的第 j 個置信度, y_i 表示樣本的真實標簽,N 為訓練樣本的個數。
小視科技團隊采用在線的方式生成傅里葉頻譜圖,使用 L2 Loss 作為損失函數。輸入圖片的尺寸為 3x80x80,從主干網絡中提取尺寸為 128x10x10 特征圖,經過 FTGenerator 分支生成 1x10x10 的預測頻譜圖 F_P 。通過傅里葉變換,將輸入圖片轉化成頻譜圖,再進行歸一化,最后 resize 成 1x10x10 尺寸得到 F_G ,使用 L2 Loss 計算兩特征圖之間差異,如公式(2)所示。
為了控制 L_FT在訓練過程中對梯度的貢獻作用,分別引入了α和β平衡兩個損失函數L_Softmax和L_FT,如公式(3)所示,其中α+β=1。在實驗中設置α=β=0.5。
其他模型策略
1 使用大體量網絡 ResNet34 蒸餾剪枝網絡 MiniFASNetV1 和 MiniFASNetV2,精度得到提升。
2 使用模型融合的機制,針對于不同輸入尺度、不同網絡結構以及不同迭代次數的模型進行融合,充分挖掘模型間對分類任務的互補性,提升模型精度。
實驗結果
測試集建立
小視科技團隊基于實際的生產場景建立了 100W 量級的測試集,從移動設備的視頻流中實時獲取圖像。真臉數據包含了強光、暗光、背光、弱光以及陰陽臉等各種復雜場景。基于 2D 的假臉數據使用打印紙、銅版紙、照片紙以及電腦屏幕、平板 Pad 屏幕、手機屏幕,在不同的距離、角度和光線下進行采集。基于 3D 的假臉數據則采用頭模、硅膠面具和紙質照片摳洞的人臉面具進行采集。
模型評價指標
小視科技團隊采用 ROC 曲線作為模型的觀測指標,控制十萬一的誤檢率,保證模型在 97%+ 的通過率。與一般的分類任務不同,團隊采用了 ROC 曲線而非分類精度作為度量指標,其原因是:生產落地場景對活體模型的誤檢控制具有很高的要求。
為了降低活體在應用場景發生誤檢的概率,小視科技團隊控制模型誤檢率在十萬一量級的同時,保證了較高的真臉通過率。團隊將活體定義為三分類任務,為了適應 ROC 曲線的評價指標,將真臉以外的類別都定義成假臉,從而解決了使用 ROC 曲線適應多分類的問題。
最終的開源融合模型,包含了兩個剪枝網絡的單模型,在測試集上的觀測指標如表 2 所示。開源模型誤檢控制在 1e-5 的情況下,真臉通過率能夠達到 97.8%。未開源的高精度模型在相同的誤檢率下,真臉通過率達到 99.5%。
速度指標
開源融合模型在不同芯片上速度指標如表 3 所示,在麒麟 990 5G 上僅需要 19ms。
此方法知識內容參考:https://mp.weixin.qq.com/s/01X6UyoPGwASTDWgC6X6qQ
總結
- 上一篇: redis事务的简单介绍
- 下一篇: C/C++中的占位符