真人還是照片?——人臉活體檢測

真人還是照片?——人臉活體檢測

介紹

隨著人臉識別、人臉解鎖等技術在金融、門禁、移動設備等日常生活中的廣泛應用,人臉防偽/活體檢測(Face Anti-Spoofing)技術在近年來得到了越來越多的關注。設想一下,假設你的Face Verification演算法做的再漂亮,而Face Anti-Spoofing做的很爛,如果這個時候恰恰有某位同學拿著馬雲臉的視頻去刷了支付寶,那............

Fig 1. 馬雲演示支付寶刷臉支付

人臉驗證(Face Verification):意思就是說,給定兩張圖,演算法要判斷出這兩張圖是不是同一個人,這是近年來一個非常熱門的研究方向,也產生了一大批模型和 Loss Function。

人臉防偽(Face Anti-Spoofing):意思就是說,你刷臉的時候,演算法要判別這張臉是不是真人活體臉,而對於合成的、或者他人照片來攻擊演算法的,應該予以拒絕。

PA(Presentation Attacks)是常用的攻擊方式,主要包含print attack(即列印出人臉照片)、replay attack(播放視頻)、mask attack(帶人臉假體面具等)。

Face Anti-Spoofing已經有好些年的研究歷史了,傳統方法將其視為一個「活體」VS「假體」的二分類問題。人臉活體檢測主要有以下三種方案(註:更多方案請參考文章末尾附錄2,3,或相關研究綜述查閱更多):

  1. Texture-based Methods

    提取人臉的幾何特徵、紋理特徵等再結合SVM、LR等分類器進行分類,為了克服光照等因素的影響,會常常將RGB輸入空間變換到HSV,YCbCr或Fourier spectrum空間;AlexNet之後,研究者們紛紛轉向設計更有效的深度神經網路結構來做二分類。
  2. Temporal-based Methods

    通過執行系統發出的「眨眼」、「點頭」、「轉向」等指令來辨別真假活體。
  3. Remote Photoplethysmography (rPPG)

    rPPG可以在不接觸皮膚的情況下獲取生物信號(例如心率等),因此可利用rPPG來進行活體檢測,之前也有基於rPPG的研究發表。

儘管這些Deep Models在很多benchmark上均取得了不錯的成績,但是筆者認為很多模型在現實中的可用性幾乎為零。利用 Softmax Loss + DNN 取得良好成績的原因極有可能是 DNN 僅僅學習到了分類因素(例如用照片攻擊時CNN學習到了照片邊框;用錄製視頻攻擊時CNN學習到了如何根據「水波紋」來區分),而並不是學習到了真正如何區分活體與非活體。所以這些模型往往都是在某一個benchmark上嚴重過擬合,在 cross-datasets testing(即將模型用於其他數據集測試) 的時候,泛化結果就會非常非常差。儘管這種現象可以通過搜集更加 diverse 的數據集來緩和,但是依然不能從根本上解決問題。下面介紹一篇CVPR2018上的 Face Anti-Spoofing 相關的文獻,大致看了一遍,還是非常不錯的工作,有興趣的讀者請去閱讀原文。

http://openaccess.thecvf.com/content_cvpr_2018/papers/Liu_Learning_Deep_Models_CVPR_2018_paper.pdf?

openaccess.thecvf.com


方法

這篇Paper的idea主要是基於這樣一個思想:

充分利用活體與假體人臉的時空信息來形成更為有效的特徵;

空間信息角度來看,活體人臉是帶有一定的距離信息的,例如正面拍照時,活體人臉的鼻子與攝像頭的距離會比臉部其他部位要近一些(因為鼻子是凸出來的嘛~),而列印的照片像素深度上往往都是平的,所以可以用來進行基本的區分。

時間信息角度來看,有研究表明,可以從真實人臉視頻中檢測出rPPG信息(例如心律信號)。因此可以利用rPPG來輔助分類。

Fig 2. pipeline

本文模型(CNN-RNN)利用CNN提取人臉特徵,然後將feature map與depth map(即從2D圖像中得到的3D形狀表達)輸入到作者提出的non-rigid registration layer,再將aligned feature maps與rPPG輸入到RNN進行分類。Method pipeline如 Fig 2. 所示。

人臉正面的3D信息 S_Fin mathbb{R}^{3	imes Q} 可以表示為identity base與expression base的線性組合:

S_F=S_0 + sum_{i=1}^{N_{id}}alpha_{id}^i S_{id}^i + sum_{i=1}^{N_{exp}}alpha_{exp}^i S_{exp}^i

由於從2D圖像中估計3D信息是一件比較困難的事情,因此在這裡對其進行歸一化到 [0, 1] 區間,然後將 Z-Buffer 演算法應用於 S 來投影到2D平面,這樣就得到了人臉圖像預估的2D depth map Din mathbb{R}^{32	imes 32}

傳統rPPG信息往往容易受到光照、人臉表情、面部姿態等因素的影響使得結果不夠精確。本文提出利用 RNN 來學習rPPG。

對於跟蹤到的人臉區域,首先計算正交色度信號:

x_f=3r_f-2g_f \ y_f=1.5r_f+g_f-1.5b_f

然後利用色度信號標準差的比例 gamma=frac{sigma(x_f)}{sigma(y_f)} 來計算血流信號:

p=3(1-frac{gamma}{2})r_f-2(1+frac{gamma}{2})g_f+frac{3gamma}{2}b_f

(註:這一塊兒的處理超出了我的知識儲備,所以我不太明白是否這樣能work,還是說先前已有生物、醫學領域的成果表明這樣能work...)

接下來對 p 應用快速傅里葉變換,就得到了50維的 rPPG 信號。

網路結構如下圖所示:

Fig 3. CNN-RNN architecture

用於預測 depth map 以及生成feature map 的 CNN 的 Loss 如下:

Theta_D = argmin_{Theta_D} sum_{i=1}^{N_d}||CNN_D(I_i;Theta_D)-D_i||_1^2

用於預測 rPPG 信號的 RNN Loss 如下:

Theta_R=argmin_{Theta_R}sum_{i=1}^{N_s}||RNN_R([{F_j}_{j=1}^{N_f}]_i;Theta_R)-f_i||_1^2

Classification score的計算方式如下:

score=||hat{f}||_2^2+lambda||hat{D}||_2^2

其中, hat{f} 代表rPPG信號, hat{D} 代表最後一幀的depth map。

為了讓 RNN學習不同時間和不同人物主體下的相同臉部區域的activation變化信息,作者添加了Non-rigid Registration Layer,個人認為是整個方法裡面一個非常亮眼的idea。

首先保留depth map中超過threshold的部分:

V=hat{D}geq threshold

然後計算mask V 和 feature map T 的內積:

U=Tigodot V

接下來再利用3D信息 S 得到frontalized image F :

F(i,j)=U(S(m_{ij},1),S(m_{ij},2))

Non-rigid Registration Layer的作用在於消除了臉部表情、姿態,背景區域,以及更好地利用depth map信息方面,從而有效地提升了spoofing recognition的性能。

Fig 4. Non-rigid Registration Layer


總結

個人覺得,這篇文章整體上idea還是不錯的,novelty也很夠。實驗結果也還比較漂亮,個人比較肯定的點在於利用時空信息結合rPPG做特徵融合,以及Non-rigid Registration Layer的助攻,來綜合提高活體檢測的性能,以及可解釋性方面的工作。而不像傳統活體檢測領域的 Paper 單純只是 train 個 binary classifier,各種花式 part-based + ensemble model 來刷分。

先前沒有做過Face Anti-Spoofing相關的東西,這篇只總結了一些我認為比較 insightful 的點,一些細節之處沒有提及,歡迎去閱讀原文!也歡迎做這個方向的童鞋指出本文可能存在的遺漏或錯誤之處~


References

  1. Yaojie Liu, Amin Jourabloo, Xiaoming Liu. Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision[C]. // IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2018
  2. 人臉識別中的活體檢測
  3. 人臉活體檢測技術簡介

推薦閱讀:

目標檢測Tensorflow object detection API之構建自己的模型
[CVPR2018筆記]Learning Face Age Progression: A Pyramid Architecture of GANs
人臉辨識技術也存在膚色和性別歧視?
iphone X或許成就不了自己卻可以成就人臉識別
世紀晟3D動態人像識別解決方案

TAG:人臉識別 | 人工智慧 | 計算機視覺 |