计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述
原標(biāo)題:計(jì)算機(jī)視覺方向簡(jiǎn)介 | 人臉識(shí)別中的活體檢測(cè)算法綜述
本文轉(zhuǎn)載自“SIGAI人工智能學(xué)習(xí)與實(shí)踐平臺(tái)”(ID:SIGAICN)
導(dǎo)言
1. 什么是活體檢測(cè)?
判斷捕捉到的人臉是真實(shí)人臉,還是偽造的人臉攻擊(如:彩色紙張打印人臉圖,電子設(shè)備屏幕中的人臉數(shù)字圖像 以及 面具 等)
2. 為什么需要活體檢測(cè)?
在金融支付,門禁等應(yīng)用場(chǎng)景,活體檢測(cè)一般是嵌套在人臉檢測(cè)與人臉識(shí)別or驗(yàn)證中的模塊,用來驗(yàn)證是否用戶真實(shí)本人
3. 活體檢測(cè)對(duì)應(yīng)的計(jì)算機(jī)視覺問題:
就是分類問題,可看成二分類(真 or 假);也可看成多分類(真人,紙張攻擊,屏幕攻擊,面具攻擊)
Anti-spoofing 1.0 時(shí)代
從早期 handcrafted 特征的傳統(tǒng)方法說起,目標(biāo)很明確,就是找到活體與非活體攻擊的difference,然后根據(jù)這些差異來設(shè)計(jì)特征,最后送給分類器去決策。
那么問題來了,活體與非活體有哪些差異?
1. 顏色紋理
2. 非剛性運(yùn)動(dòng)變形
3. 材料 (皮膚,紙質(zhì),鏡面)
4. 圖像or視頻質(zhì)量
所以這段時(shí)期的文章都是很有針對(duì)性地設(shè)計(jì)特征,列舉幾篇比較重要的:
Image Distortion Analysis[1], 2015
如下圖,單幀輸入的方法,設(shè)計(jì)了 鏡面反射+圖像質(zhì)量失真+顏色 等統(tǒng)計(jì)量特征,合并后直接送SVM進(jìn)行二分類。
Image Distortion Analysis[1]
Cons: 對(duì)于高清彩色打印的紙張 or 高清錄制視頻,質(zhì)量失真不嚴(yán)重時(shí),難區(qū)分開
Colour Texture[2], 2016
Oulu CMVS組的產(chǎn)物,算是傳統(tǒng)方法中的戰(zhàn)斗機(jī),特別簡(jiǎn)潔實(shí)用,Matlab代碼(課題組官網(wǎng)有),很適合搞成C++部署到門禁系統(tǒng)。
原理:活體與非活體,在RGB空間里比較難區(qū)分,但在其他顏色空間里的紋理有明顯差異
算法:HSV空間人臉多級(jí)LBP特征 + YCbCr空間人臉LPQ特征 (后在17年的paper拓展成用Color SURF特征[12],性能提升了一點(diǎn))
Colour Texture[2]
Pros: 算法簡(jiǎn)潔高效易部署;也證明了活體與非活體在 HSV等其他空間也是discriminative,故后續(xù)深度學(xué)習(xí)方法有將HSV等channel也作為輸入來提升性能。
Motion mag.-HOOF + LBP-TOP[3], 2014
DMD + LBP[4], 2015
前面說的都是單幀方法,這兩篇文章輸入的是連續(xù)多幀人臉圖;
主要通過捕獲活體與非活體微動(dòng)作之間的差異來設(shè)計(jì)特征。
一個(gè)是先通過運(yùn)動(dòng)放大來增強(qiáng)臉部微動(dòng)作, 然后提取方向光流直方圖HOOF + 動(dòng)態(tài)紋理LBP-TOP 特征;一個(gè)是通過動(dòng)態(tài)模式分解DMD,得到最大運(yùn)動(dòng)能量的子空間圖,再分析紋理。
PS:這個(gè) motion magnification 的預(yù)處理很差勁,加入了很多其他頻段噪聲(18年新出了一篇用 Deep learning 來搞 Motion mag[13]. 看起來效果挺好,可以嘗試用那個(gè)來做運(yùn)動(dòng)增強(qiáng),再來光流or DMD)
Motion mag.-HOOF + LBP-TOP[3]
DMD + LBP[4]
Cons: 基于Motion的方法,對(duì)于 仿人臉wrapped紙張抖動(dòng) 和 視頻攻擊,效果不好;因?yàn)樗俣嘶铙w與非活體之間的非剛性運(yùn)動(dòng)有明顯的區(qū)別,但其實(shí)這種微動(dòng)作挺難描述與學(xué)習(xí)~
Pulse + texture[5], 2016
第一個(gè)將 remote pluse 應(yīng)用到活體檢測(cè)中,多幀輸入(交代下背景:在CVPR2014,Xiaobai Li[14] 已經(jīng)提出了從人臉視頻里測(cè)量心率的方法)
算法流程:
1. 通過 pluse 在頻域上分布不同先區(qū)分 活體 or 照片攻擊 (因?yàn)檎掌械娜四樚崛〉男穆史植疾煌?
2. 若判別1結(jié)果是活體,再 cascade 一個(gè) 紋理LBP 分類器,來區(qū)分 活體 or 屏幕攻擊(因?yàn)槠聊灰曨l中人臉心率分布與活體相近)
Pulse + texture[5]
Pros: 從學(xué)術(shù)界來說,引入了心理信號(hào)這個(gè)新模態(tài),很是進(jìn)步;從工業(yè)界來看,如果不能一步到位,針對(duì)每種類型攻擊,也可進(jìn)行 Cascade 對(duì)應(yīng)的特征及分類器的部署方式
Cons: 由于 remote heart rate 的算法本來魯棒性也一般,故出來的 pulse-feature 的判別性能力很不能保證;再者屏幕video里的人臉視頻出來的 pulse-feature 是否也有微小區(qū)別,還待驗(yàn)證~
Anti-spoofing 2.0 時(shí)代
其實(shí)用 Deep learning 來做活體檢測(cè),從15年陸陸續(xù)續(xù)就有人在研究,但由于公開數(shù)據(jù)集樣本太少,一直性能也超越不了傳統(tǒng)方法:
CNN-LSTM[6], 2015
多幀方法,想通過 CNN-LSTM 來模擬傳統(tǒng)方法 LBP-TOP,性能堪憂~
PatchNet pretrain[7],CNN finetune, 2017
單幀方法,通過人臉分塊,pre-train 網(wǎng)絡(luò);然后再在 global 整個(gè)人臉圖 fine-tune,作用不大
Patch and Depth-Based CNNs[8], 2017
第一個(gè)考慮把 人臉深度圖 作為活體與非活體的差異特征,因?yàn)橄衿聊恢械娜四樢话闶瞧降?#xff0c;而紙張中的人臉就算扭曲,和真人人臉的立體分布也有差異;
就算用了很多 tricks 去 fusion,性能還是超越不了傳統(tǒng)方法。
Deep Pulse and Depth[9], 2018
發(fā)表在 CVPR2018 的文章,終于超越了傳統(tǒng)方法性能。
文章[8]的同一組人,設(shè)計(jì)了深度框架 準(zhǔn)端到端 地去預(yù)測(cè) Pulse統(tǒng)計(jì)量 及 Depth map (這里說的“準(zhǔn)”,就是最后沒接分類器,直接通過樣本 feature 的相似距離,閾值決策)
在文章中明確指明:
1. 過去方法把活體檢測(cè)看成二分類問題,直接讓DNN去學(xué)習(xí),這樣學(xué)出來的cues不夠general 和 discriminative
2. 將二分類問題換成帶目標(biāo)性地特征監(jiān)督問題,即 回歸出 pulse 統(tǒng)計(jì)量 + 回歸出 Depth map,保證網(wǎng)絡(luò)學(xué)習(xí)的就是這兩種特征(哈哈,不排除假設(shè)學(xué)到了 color texture 在里面,黑箱網(wǎng)絡(luò)這么聰明)。
Deep Pulse and Depth[9]
回歸 Depth map,跟文章[8]中一致,就是通過 Landmark 然后 3DMMfitting 得到 人臉3D shape,然后再閾值化去背景,得到 depth map 的 groundtruth,最后和網(wǎng)絡(luò)預(yù)測(cè)的 estimated depth map 有 L2 loss。
而文章亮點(diǎn)在于設(shè)計(jì)了 Non-rigid Registration Layer 來對(duì)齊各幀人臉的非剛性運(yùn)動(dòng)(如姿態(tài),表情等),然后通過RNN更好地學(xué)到 temporal pulse 信息。
Non-rigid Registration Layer[9]
為什么需要這個(gè)對(duì)齊網(wǎng)絡(luò)呢?我們來想想,在做運(yùn)動(dòng)識(shí)別任務(wù)時(shí),只需簡(jiǎn)單把 sampling或者連續(xù)幀 合并起來喂進(jìn)網(wǎng)絡(luò)就行了,是假定相機(jī)是不動(dòng)的,對(duì)象在運(yùn)動(dòng);而文中需要對(duì)連續(xù)人臉幀進(jìn)行pulse特征提取,主要對(duì)象是人臉上對(duì)應(yīng)ROI在 temporal 上的 Intensity 變化,所以就需要把人臉當(dāng)成是相機(jī)固定不動(dòng)。
Micro-texture + SSD or binocular depth[10] , 2018
ArXiv 剛掛出不久的文章,最大的貢獻(xiàn)是把 活體檢測(cè) 直接放到 人臉檢測(cè)(SSD,MTCNN等) 模塊里作為一個(gè)類,即人臉檢測(cè)出來的 bbox 里有 背景,真人人臉,假人臉 三類的置信度,這樣可以在早期就過濾掉一部分非活體。
所以整個(gè)系統(tǒng)速度非常地快,很適合工業(yè)界部署~
至于后續(xù)手工設(shè)計(jì)的 SPMT feature 和 TFBD feature 比較復(fù)雜繁瑣,分別是表征 micro-texture 和 stereo structure of face,有興趣的同學(xué)可以去細(xì)看。
texture + SSD or binocular depth[10]
De-Spoofing[11], ECCV2018
單幀方法,與Paper[8]和[9]一樣,是MSU同一個(gè)課題組做的。
文章的idea很有趣,啟發(fā)于圖像去噪denoise 和 圖像去抖動(dòng) deblur。無論是噪聲圖還是模糊圖,都可看成是在原圖上加噪聲運(yùn)算或者模糊運(yùn)算(即下面的公式),而去噪和去抖動(dòng),就是估計(jì)噪聲分布和模糊核,從而重構(gòu)回原圖。
文中把活體人臉圖看成是原圖
,而非活體人臉圖看成是加了噪聲后失真的 x ,故 task 就變成估計(jì) Spoof noiseN(
) ,然后用這個(gè) Noise pattern feature 去分類決策。
De-spoofing process[11]
那問題來了,數(shù)據(jù)集沒有像素級(jí)別一一對(duì)應(yīng)的 groundtruth,也沒有Spoof Noise模型的先驗(yàn)知識(shí)(如果有知道Noise模型,可以用Live Face來生成Spoofing Face),那拿什么來當(dāng)groundtruth,怎么設(shè)計(jì)網(wǎng)絡(luò)去估計(jì) Spoofing noise 呢?
如一般Low-level image 任務(wù)一樣,文中利用Encoder-decoder來得到 Spoof noise N,然后通過殘差重構(gòu)出
,這就是下圖的DS Net。為了保證網(wǎng)絡(luò)對(duì)于不同輸入,學(xué)出來的Noise是有效的,根據(jù)先驗(yàn)知識(shí)設(shè)計(jì)了三個(gè)Loss來constrain:
Magnitude loss(當(dāng)輸入是Live face時(shí),N盡量逼近0);
Repetitive loss(Spooing face的Noise圖在高頻段有較大的峰值);
01Map Loss(讓Real Face 的 deep feature map分布盡量逼近全0,而Spoofing face的 deep feature map 盡量逼近全1)
De-spoofing網(wǎng)絡(luò)架構(gòu)[11]
那網(wǎng)絡(luò)右邊的 VQ-Net 和 DQ-Net 又有什么作用呢?因?yàn)闆]有 Live face 的 Groundtruth,要保證重構(gòu)出來的分布接近 Live face,作者用了對(duì)抗生成網(wǎng)絡(luò)GAN (即 VQ-Net )去約束重構(gòu)生成的
與Live face分布盡量一致;而用了文章[8]中的 pre-trained Depth model 來保證
的深度圖與Live face的深度圖盡量一致。
Pros: 通過可視化最終讓大眾知道了 Spoofing Noise 是長(zhǎng)什么樣子的~
Cons: 在實(shí)際場(chǎng)景中難部署(該模型假定Spoofing Noise是 strongly 存在的,當(dāng)實(shí)際場(chǎng)景中活體的人臉圖質(zhì)量并不是很高,而非活體攻擊的質(zhì)量相對(duì)高時(shí),Spoofing noise走不通)
后記:不同模態(tài)的相機(jī)輸入對(duì)于活體檢測(cè)的作用
1. 近紅外NIR
由于NIR的光譜波段與可見光VIS不同,故真實(shí)人臉及非活體載體對(duì)于近紅外波段的吸收和反射強(qiáng)度也不同,即也可通過近紅外相機(jī)出來的圖像來活體檢測(cè)。從出來的圖像來說,近紅外圖像對(duì)屏幕攻擊的區(qū)分度較大,對(duì)高清彩色紙張打印的區(qū)分度較小。
從特征工程角度來說,方法無非也是提取NIR圖中的光照紋理特征[15]或者遠(yuǎn)程人臉心率特征[16]來進(jìn)行。下圖可見,上面兩行是真實(shí)人臉圖中人臉區(qū)域與背景區(qū)域的直方圖分布,明顯與下面兩行的非活體圖的分布不一致;而通過與文章[5]中一樣的rPPG提取方法,在文章[]中說明其在NIR圖像中出來的特征更加魯棒~
NIR人臉區(qū)域與背景區(qū)域直方圖[15]
2. 結(jié)構(gòu)光/ToF
由于結(jié)構(gòu)光及ToF能在近距離里相對(duì)準(zhǔn)確地進(jìn)行3D人臉重構(gòu),即可得到人臉及背景的點(diǎn)云圖及深度圖,可作為精準(zhǔn)活體檢測(cè)(而不像單目RGB或雙目RGB中仍需估計(jì)深度)。不過就是成本較高,看具體應(yīng)用場(chǎng)景決定。
3. 光場(chǎng) Light field
光場(chǎng)相機(jī)具有光學(xué)顯微鏡頭陣列,且由于光場(chǎng)能描述空間中任意一點(diǎn)向任意方向的光線強(qiáng)度,出來的raw光場(chǎng)照片及不同重聚焦的照片,都能用于活體檢測(cè):
3.1 raw光場(chǎng)照片及對(duì)應(yīng)的子孔徑照片[17]
如下圖所示,對(duì)于真實(shí)人臉的臉頰邊緣的微鏡圖像,其像素應(yīng)該是帶邊緣梯度分布;而對(duì)應(yīng)紙張打印或屏幕攻擊,其邊緣像素是隨機(jī)均勻分布:
光場(chǎng)相機(jī)圖
3.2 使用一次拍照的重聚焦圖像[18]
原理是可以從兩張重聚焦圖像的差異中,估計(jì)出深度信息;從特征提取來說,真實(shí)人臉與非活體人臉的3D人臉模型不同,可提取差異圖像中的 亮度分布特征+聚焦區(qū)域銳利程度特征+頻譜直方圖特征。
至此,Face anti-spoofing 的簡(jiǎn)單Survey已完畢~
毫無疑問,對(duì)于學(xué)術(shù)界,后續(xù)方向應(yīng)該是用DL學(xué)習(xí)更精細(xì)的 人臉3D特征 和 人臉微變化微動(dòng)作(Motion Spoofing Noise?) 表征;而也可探索活體檢測(cè)與人臉檢測(cè)及人臉識(shí)別之間更緊密的關(guān)系。
對(duì)于工業(yè)界,可直接在人臉檢測(cè)時(shí)候預(yù)判是否活體;更可借助近紅外,結(jié)構(gòu)光/ToF等硬件做到更精準(zhǔn)。
Reference:
[1] Di Wen, Hu Han, Anil K. Jain. Face Spoof Detection with Image Distortion Analysis. IEEE Transactions on Information Forensics and Security, 2015
[2] Zinelabidine Boulkenafet, Jukka Komulainen, Abdenour Hadid. Face Spoofing Detection Using Colour Texture Analysis. IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, 2016
[3] Samarth Bharadwaj. Face Anti-spoofing via Motion Magnification and
Multifeature Videolet Aggregation, 2014
[4] Santosh Tirunagari, Norman Poh. Detection of Face Spoofing Using Visual Dynamics. IEEE TRANS. ON INFORMATION FORENSICS AND SECURIT, 2015
[5] Xiaobai Li, , Guoying Zhao. Generalized face anti-spoofing by detecting pulse
from face videos, 2016 23rd ICPR
[6] Zhenqi Xu. Learning Temporal Features Using LSTM-CNN Architecture for Face Anti-spoofing, 2015 3rd IAPR
[7] Gustavo Botelho de Souza, On the Learning of Deep Local Features for
Robust Face Spoofing Detection, 2017
[8] Yousef Atoum, Xiaoming Liu. Face Anti-Spoofing Using Patch and Depth-Based CNNs, 2017
[9] Yaojie Liu, Amin Jourabloo, Xiaoming Liu, Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision ,CVPR2018
[10] Discriminative Representation Combinations for Accurate Face Spoofing Detection,2018 PR
[11] Amin Jourabloo, Face De-Spoofing: Anti-Spoofing via Noise Modeling, ECCV2018
[12]Zinelabidine Boulkenafet, Face Antispoofing Using Speeded-Up Robust Features and Fisher Vector Encoding, IEEE SIGNAL PROCESSING LETTERS, VOL. 24, NO. 2, FEBRUARY 2017
[13]Tae-Hyun Oh, Learning-based Video Motion Magnification, ECCV2018
[14]Xiaobai Li, Remote Heart Rate Measurement From Face Videos Under Realistic Situations
[15]Xudong Sun, Context Based Face Spoofing Detection Using Active Near-Infrared Images, ICPR 2016
[16]Javier Hernandez-Ortega, Time Analysis of Pulse-based Face Anti-Spoofing in Visible and NIR, CVPR2018 workshop
[17]Sooyeon Kim, Face Liveness Detection Using a Light Field Camera, 2014
[18]Xiaohua Xie, One-snapshot Face Anti-spoofing Using a Light Field Camera, 2017返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python删除文件夹中的jpg_Pyt
- 下一篇: 伦敦交易所推出的“环球版”是什么?有什么