Deep Spatial Gradient and Temporal Depth Learning for Face Anti-spoofing === >做人臉辨識遇到的最大問題莫過於真假臉的判斷,真假臉的判斷能夠防止不肖分子對辨識系統進行攻擊,所以這是非常值得深入研究的。對於真假臉的研究方法非常多,真假臉最明顯的差異就是深度,如果用影印的或是手機照片假臉都是只有平面的深度,一般的分類方法往往忽略人臉圖片的深度、時間及空間資訊。深度學習在處理影像辨識時,機器通常都可以得到high-level的features及patterns,但是low-level的features及patterns對於分辨真假臉也是非常重要的,所以為了解決這些問題,分別為1. 提出Residual Spatial Gradient Block(RSGB),透過空間梯度分辨真假臉,2.提出Spatio-Temporal Propagation Module (STPM),為了得到時間訊息(應該是指兩張在些微時間差的圖片,特徵也會有差異)。此外,為了讓新的架構能更準確的分析真假臉,定義新的計算誤差方法,Contrastive Depth Loss (CDL),也提出了新型數據集Double-modal Anti-spoofing Dataset (DMAD),這是一個對每一張人臉圖片,都有相對應的人臉深度圖的資料集。 以下這張圖可以清楚發現,真臉的梯度變化較假臉明顯。  以下這張圖可以清楚發現,真臉在不同時間相對於相機的角度變化較假臉大。  ## 以前的方法 針對真假臉的判斷,以前的方法大致分成三種,分別為,binary supervised, depth supervised及temporal-based。 * **Binary supervised Methods**: 傳統的機器學習方法,例如SVM、Random Forests,容易受到像是亮度、使用的相機不同的影響。近幾年來,深度學習的越來越受歡迎,透過CNN可以學習圖片的特徵,是更強大解決真假臉問題的方法。 * **Depth supervised Methods**: 跟binary supervised相較之下, depth supervised methods可以學習到更多的訊息。被設計來處理真假臉的CNN可以從中得到圖片的feature及depth map,而且證明可以有更好的結果。所以有人提出增加深度,結合rPPG(利用反射光亮度變化)及vanilla convolutional networks,但是結果卻無法獲得更多訊息。 * **Temporal-based Methods**: 雖然已經有使用3D CNN、LSTM,透過臉部光線變化(rPPG)做真假臉辨識,但是目前都還沒有提出基於時間變化的方式做真假臉辨識。 ## 作者提出的方法 文章所提出的方法為depth supervised spatio-temporal network,包括Residual Spatial Gradient Block (RSGB) and SpatioTemporal Propagation Module (STPM)及Contrastive Depth Loss (CDL)。將人臉圖片當作input,然後產生depth map。 * ### **Network Structure** * **Residual Spatial Gradient Block(RSGB)**: 計算圖片梯度變化輛是透過Sobel的方法,這種方法常在影像處理中做邊緣檢測,因為真假臉的梯度變化不一樣,將得到的梯度再與CNN得到的features做結合,這樣可以得到圖片更多的空間資訊,而每一張圖片經過RSGB,都會產生coarse depth map。 * **Spatio-Temporal Propagation Module**: STPM用來解析短時間內圖片之間(所以是mutiple images)的關係及資訊,主要是經由Short-term Spatio-Temporal Block (STSTB) and ConvGRU。因為傳統的LSTM及GRU,忽略hidden layer裡面node之間的關係,所以才使用ConvGRU。如下圖所示,STSTB通過結合五種特徵來提取short-term spatio-temporal信息:目前人臉特徵,目前人臉空間梯度特徵,未來人臉空間梯度特徵,時間梯度特徵和上一層STSTB的特徵。 * **Depth Map Refinement** \begin{gather*}D^t_{refined} = (1- \alpha) * (D^t_{single}) + \alpha * D^t_{multi}, \alpha ∈[0, 1]\displaystyle \end{gather*}其中D^t^~single~、D^t^~multi~分別為RSGB及STPM的output,所以α越大,代表STPM影響越大,透過這兩個depth做調整後,可以得到最後的depth map,D^t^~refined~。 * ### **Loss Function** 因為有了新的network架構,所以也重新定義一個新的loss function,Contrastive Detph Loss(CDL)。 * **Contrastive Depth Loss**: 傳統的真假臉辨識中所使用的loss function為Euclidean Distance Loss (EDL),它是計算實際上圖片的depth與預測的depth的差異。 \begin{gather*}L_{EDL} = |D_{P} - D_{G}|_2^2\displaystyle \end{gather*}EDL只對相對應的pixel進行誤差計算,而忽略相鄰pixel之間的誤差計算。因此,提出CDL,提高了真假臉辨識的準確度。   * **Overall Loss** 一開始在找出真假臉差異時,使用binary loss來當作標準,當訓練STPM時使用overall Loss。 \begin{gather*}L_{binary} = -B_{G} * log(fcs(D_{avg}))\displaystyle\end{gather*} \begin{gather*}L_{overall} = \beta * L_{binary} + (1 - \beta) * (L_{EDL} + L_{CDL})\displaystyle\end{gather*} 其中B~G~是binary groundtruth label,D~avg~是所有D^t^~refined~的平均, fcs是兩層fully connected layers加上softmax,β是一個參數,其值越大代表L~EDL~與L~CDL~影響越大。 ## 實驗 實驗中總共使用五個資料集,分別為OULU-NPU, SiW, CASIAMFSD, Replay-Attack, DMAD,而不同的資料集有不同的評分標準。 * ### Performance Metrics OULU-NPU、SiW、DMAD這三個資料集所依據的標準如下: \begin{gather*}ACER = \dfrac{(APCER + BPCER)}{2} \displaystyle\end{gather*} 其中,APCER(Attack Presentation Classification Error Rate),指從印表機或是其他機器製作的假照片中最高的誤差;BPCER(Bona Fide Presentation Classification Error Rate),實際資料集的誤差。 CASIA-MFSD、Replay-Attack所依據的標準如下: \begin{gather*}HTER = \dfrac{(F RR + F AR)}{2} \displaystyle\end{gather*} 其中,FRR(False Rejection Rate)指應該辨識通過的卻沒通過,而FAR(False Acceptance Rate)應該不能通過辨識的卻通過了 * ### **Training Strategy** 訓練分成兩階段進行,第一階段訓練是每一張圖片經過RSGB,產生coarse depth map。第二階段訓練是STPM,修正第一階段的coarse depth map。 ## 實驗結果比較 實驗中做了很多種變數的比較,這邊只列出幾種作說明。 * ### **Efficacy of the Modules and Loss Functions** 如下圖所示,Model2的結果比Model1好,證明加上CDL能夠更準確的判斷。Model3、Model4、Model5,也說明了,使用RSGB做訓練,也能降低ACER。從Model5與Model7的比較可以發現,加上binary loss效果確實比較好。 * ### **STSTB vs. OFF** 如下圖所示,Model6使用OFF(OFF只有計算圖片上的spatial gradient,忽略了不同時間的梯度變化),Model7使用STSTB,結果比Model6好,證明目前圖片的梯度與下一個時間點的圖片梯度,對結果影響是非常重要的。  * ### **Importance of Spatio-temporal Information for Depth Refinement** 如下圖所示,α太大或太小結果都不是很好,找到最佳的α能夠降低ACER。從途中也可以發現,只有使用空間梯度,也就是α=0,結果比有使用時間梯度還要差。 \begin{gather*}D^t_{refined} = (1- \alpha) * (D^t_{single}) + \alpha * D^t_{multi}, \alpha ∈[0, 1]\displaystyle \end{gather*}  * ### **Results on OULU-NPU** OULU-NPU,這是目前人臉防偽領域最具挑戰性的數據集之一,這裡面的偽造人臉非常高清,人眼都很難分辨。如下圖所示,文章提出的方法,結果比其他方法來的好。  ###### tags: `ML`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.