作者:雲時之間
來源:知乎
鏈接:https://zhuanlan.zhihu.com/p/162895378
編輯:王萌
這些主要是深度學習的方法
An original face anti-spoofing approach using partial convolutional neural network
Link:ieeexplore.ieee.org/doc
模型架構:
和傳統的方法結構類似,只是使用了VGG進行特徵提取,通過CNN網絡端到端學習anti-spoofing的表示空間
Face anti-spoofing using patch and depth-based cnns
Link:cvlab.cse.msu.edu/pdfs/
基本思想:基於紋理的特徵提取
主要表現爲:局部特徵+整體深度圖
人臉活體和PA的局部區域提取出來的特徵不同,因此得到的統計特徵不同。同時採用圖片等***方法的PA模型往往呈現爲扁平,缺少面部深度特徵,如下圖,人臉活體會有深度圖狀。
模型結構:
模型主要使用了兩個CNN框架:
patch-based CNN:
端到端訓練的,併爲每個從人臉圖像中隨機抽取的patch打一個分數,取平均分。
使用patch的好處:
- 增加訓練數據
- 不用resize整張臉,保持原本的分辨率
- 在局部檢測可用於活體檢測的特徵時,設定更具挑戰性的約束條件,加強特徵提取的性能
輸入:相同大小的不同patches的RGB, HSV, YCbCr特徵圖等
輸出:pacth spoof scores
depth-based CNN:
完全卷積網絡(FCN),對人臉圖像的深度圖進行估計,並提供一個真實度評分。
研究表明高頻部分對anti-spoofing非常重要,爲避免對原圖進行resize而損失圖片的高頻部分,因此使用FCN以無視輸入特徵圖的size
並且還用到了兩個監督信號:
1:patch spoof scores
從人臉圖像中挑選某些局部區域patches,根據patch內的文理統計特徵計算一個patch spoof scores,用於監督patch-based CNN部分
2:深度圖Depth Map
面部深度圖顯示了面部不同位置的深度信息,據此計算深損失,用於監督depth-based CNN部分
整個模型的架構:
但是這個模型性能一般,甚至比不上一些傳統的算法。
Deep Convolutional Dynamic Texture Learning with Adaptive Channel-discriminability for 3D Mask Face Anti-spoofing
*這篇文章值得讀一下
這篇文章主要是針對3D面具的***。3D面具的***和其他的PA***不同,由於面具覆蓋了臉部,面具是無法呈現出人臉的臉部運動的,真實的人臉的面部運動更加的細膩,精細,比如蘋果肌,皺紋,眨眼,臉部肌肉的微動等等,我們可以認爲是動態紋理的不同。
這套算法基本流程與之前平面處理的不太一致:
1:首先需要對視頻進行預處理,這裏用到了CLNF模型,來檢測面部,對面部的68個特徵點進行檢測,並對面部進行align對齊。
CLNF模型論文地址:
cl.cam.ac.uk/research/r
CLNK模型的介紹:
2:通過VGG網絡提取特徵
從視頻流中連續的5幀選擇其中的一幀來作爲VGG網絡的輸入,3*3卷積網絡輸出的特徵圖作爲光流提取的輸入。
3:分類
使用SVM進行分類
模型結構:
網絡結構;
結果:
①:Intra-dataset
②:Cross-dataset
Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision
這篇文章還是很有意思的,性能超過了傳統方法。整篇文章的亮點在於Non-rigid Registration部分來對齊各幀人臉的非剛性運動,然後再去讓RNN學習。
模型的基本思想:
①:基於紋理:活體和PA***的面部深部圖不一致
②:基於生物信號:可以通過面部信息來測量相關的RRPG(心率)
模型的結構:
網絡結構:
CNN
若干block串聯,每個block包括三個conv+exponential linear+bn和一個pooling
每個block輸出特徵圖經過resize layer將其resize爲64×64,並將其通道維聯結
聯結後的特徵圖經過兩個branches,一個估計深度圖depth map,另一個估計特徵圖feature map
RNN
Non-rigid Registration部分*
根據估計的3D面部形狀圖S對特徵圖feature map進行對齊,保證RNN跟蹤並學習面部同一個區域的特徵隨時間和物體的變化。RNN不用考慮表情、姿態、背景的影響。
這裏最有價值的就是爲什麼設計這個對齊網絡:
結合做運動識別的任務進行思考,做運動識別時只需簡單把連續幀 合併起來喂進網絡就行了,是假定相機是不動的,對象在運動
而文中需要對連續人臉幀進行pulse特徵提取,主要對象是人臉上對應ROI在 temporal 上的 Intensity 變化,所以就需要把人臉當成是相機固定不動。
實驗結果:
但是沒有找到開源代碼,比較遺憾。
Face De-Spoofing: Anti-Spoofing via Noise Modeling
*這篇論文比較抽象,代碼雖然開源但質量一般,約等於沒有開源~
實際部署起來也比較難,主要針對print, replay, make-up類別的PA
以往的Anti-Spoofing在基於深度學習方法做的時候通常當做一個二分類,輸出是Real/Spoof,內部模型是一個黑箱。這個方法將De-Spoofing的模型的內部機理考慮了進去。
文章中假設:對於照片、視頻播放來進行的Spoof會引入噪聲,而這個噪聲普遍存在且可重複,因此,設公式爲:
其中的x是原圖,是一個與原始圖片N(x)有關的噪聲函數,這個公式就是算法的核心。通過估計x^,N(x^)並去除spoof noise、以重建x^。若給定x=x^,則其spoof noise = 0。
退化圖像的頻譜分析:
造成圖像退化的幾個原因:
1:色域:spoof介質色域更窄,顏色空間會出現錯誤
2: 顯示干擾:相機本身在輸出圖像的時候,會出現顏色近似,下采樣的過程,這樣會導致像素擾動,模糊等問題。
3:介質:存放圖像的介質會產生比如反射,表面透明度等變化
4::CMOS和CCD的傳感器陣列的成像矩陣會有光干涉,某些情況下會產生失真和摩爾紋。
以上這些噪聲干擾往往都是可加性的,因此也是可以消除,重建的。
模型結構:
模型分爲三個部分:
輸入:2562566,RGB+HSV的顏色空間
1:DS Net
2:DQ Net
3:VQ Net
效果:
Exploiting Temporal and Depth Information for Multi-frame face Anti-Spoofing
基本思想:在視頻流中,物體的運動有利於提取人臉深度信息,可將面部運動和麪部深度信息結合,用於活體檢測。
文章給出了很好的思路和結論來使用多幀,這也是繼MSU使用多幀來預測rPPG頻域後的一大進步,這樣未來face anti-spoofing將更多focus在多幀上;而不是單幀深度,單幀color texture,這些方向上。
具體的文章解讀在後續會單獨拿出一篇文章瞭解.
總結:
深度學習PA數據集
1:Replay-attack 2012
共1300視頻樣本,不能做商業用途,需由獲機構授權者提交申請並簽署EULA(End User License Agreement)才能下載
Link:idiap.ch/dataset/replay
2:MSU-USSA
全稱MSU Unconstraint Smartphone Spoof Attack Database,共9000圖像樣本(1000live+8000spoof),不能做商業用途,需簽署MSU USSA Agreement才能下載
Link:biometrics.cse.msu.edu/
3:oulu-npu 2017
共4950視頻樣本,大部分CNN-based數據集都會使用的數據集,不能做商業用途,需由在學術機構擔任永久性職位的人簽署EULA才能下載
Link:sites.google.com/site/o
- SiW 2018
165subjects共4478視頻樣本,商業用途需獲授權,需由獲機構授權者提交申請並簽署DRA(dataset release agreement)才能下載
- CASIA-SURF 2019.6
1000subjects共21000視頻樣本,目前只接受學術用途,需由學術機構簽署CASIA-SURF release agreement才能下載