黃葉玨
摘 要:針對(duì)人臉識(shí)別可以通過(guò)照片和視頻進(jìn)行攻擊的問(wèn)題,提出一種交互式隨機(jī)動(dòng)作的活體檢測(cè)方法。對(duì)認(rèn)證用戶發(fā)出隨機(jī)化的動(dòng)作指令,根據(jù)對(duì)視頻中的人臉進(jìn)行檢測(cè)和對(duì)齊跟蹤來(lái)判斷用戶是否按要求完成動(dòng)作,從而實(shí)現(xiàn)活體檢測(cè)。利用隨機(jī)化序列方式有效地抵抗了照片和視頻認(rèn)證的攻擊。
關(guān)鍵詞:人臉識(shí)別;人臉檢測(cè);活體檢測(cè);交互式隨機(jī)動(dòng)作;認(rèn)證
DOIDOI:10.11907/rjdk.1511355
中圖分類號(hào):TP306
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)012002602
0 引言
人臉識(shí)別作為一項(xiàng)成熟的生物識(shí)別技術(shù),目前已被廣泛應(yīng)用于金融、公安、社會(huì)服務(wù)、電子商務(wù)等領(lǐng)域。然而人臉很容易用視頻或照片等進(jìn)行復(fù)制,從而達(dá)到攻擊的目的,活體檢測(cè)是人臉識(shí)別能否有效應(yīng)用的前提,目前對(duì)活體檢測(cè)方法的研究有很多。大多數(shù)活體檢測(cè)方法基于特征提取與訓(xùn)練的方式,由于應(yīng)用環(huán)境的復(fù)雜性和不可控性,基于訓(xùn)練的方法的準(zhǔn)確性不可控[16]。另一類方法要求用戶做轉(zhuǎn)頭、搖頭、眨眼或者張嘴等動(dòng)作,這類方法對(duì)于視頻的防欺騙性不高,比如北京智慧眼科技有限公司的活體檢測(cè)只要求用戶眨眼即可;騰訊微眾銀行通過(guò)語(yǔ)音識(shí)別技術(shù)識(shí)別用戶是否正確認(rèn)讀數(shù)字并結(jié)合用戶嘴巴是否張開(kāi)作為輔助技術(shù)來(lái)確保用戶是活體,但是這種方法需要聲音接收設(shè)備,比常規(guī)的視頻活體檢測(cè)的應(yīng)用場(chǎng)景限制更嚴(yán)格。本文克服現(xiàn)有技術(shù)的不足,提供一種交互式隨機(jī)動(dòng)作的活體檢測(cè)方法,采用人臉對(duì)齊技術(shù),使得檢測(cè)的健壯性更高,能準(zhǔn)確判斷出當(dāng)前檢測(cè)者是否為活體真人,解決了現(xiàn)有活體檢測(cè)技術(shù)中存在的照片或視頻欺騙問(wèn)題。采用對(duì)視頻中的人臉進(jìn)行檢測(cè)、跟蹤和對(duì)齊,對(duì)用戶發(fā)隨機(jī)化的動(dòng)作指令,對(duì)人臉特征位置進(jìn)行分析來(lái)確定用戶所做的動(dòng)作是否按要求完成,從而實(shí)現(xiàn)活體檢測(cè)。通過(guò)隨機(jī)化的序列方式有效地抵抗了照片和視頻的攻擊。
1 人臉檢測(cè)與人臉對(duì)齊算法
在人臉活體檢測(cè)認(rèn)證的應(yīng)用場(chǎng)景中,一般要求人臉圖像清晰且人臉正面朝向鏡頭。在該應(yīng)用場(chǎng)景中,人臉檢測(cè)算法的要求不高,可采用OpenCV中的AdaBoost人臉檢測(cè)器實(shí)現(xiàn)人臉定位。獲取視頻中的人臉位置后,可利用人臉對(duì)齊算法[7]定位人臉的特征點(diǎn)位置。人臉對(duì)齊算法可得到比較準(zhǔn)確的人臉各個(gè)特征點(diǎn)的位置,給定圖像中n個(gè)特征點(diǎn)位置Pi∈P,通過(guò)提取對(duì)應(yīng)位置的SIFT特征[8]、HOG特征[9]或者其它特征,根據(jù)式(1)求最小化實(shí)現(xiàn)人臉特征點(diǎn)對(duì)齊:
F(P0+ΔP)=||H(P0+ΔP)-H(P*)||(1)
其中,P0為根據(jù)人臉檢測(cè)器的定位以及平均人臉對(duì)齊特征點(diǎn)計(jì)算得到的初始位置配置,P*為訓(xùn)練集中手工標(biāo)注的人臉特征點(diǎn)位置,ΔP為初始位置配置與P*的位移量,H(·)為SIFT特征或者HOG特征提取函數(shù)。
在訓(xùn)練階段,先采用人工標(biāo)注的方式對(duì)訓(xùn)練數(shù)據(jù)集人臉各個(gè)特征點(diǎn)的位置進(jìn)行標(biāo)注。使用人臉檢測(cè)器對(duì)訓(xùn)練數(shù)據(jù)集中的人臉進(jìn)行定位,根據(jù)檢測(cè)到的人臉框,計(jì)算各個(gè)特征點(diǎn)在人臉框中的局部坐標(biāo),對(duì)訓(xùn)練數(shù)據(jù)集中所有特征點(diǎn)的坐標(biāo)計(jì)算其平均值,就可以得到一個(gè)訓(xùn)練集的平均人臉特征點(diǎn)位置,將它作為人臉特征點(diǎn)位置的初始配置。人臉對(duì)齊模型訓(xùn)練通過(guò)計(jì)算每個(gè)訓(xùn)練數(shù)據(jù)的人工標(biāo)注特征點(diǎn)與初始配置特征點(diǎn)的差異,得到迭代方向和步長(zhǎng)生成對(duì)齊模型。為了提高算法的健壯性,需要對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行增強(qiáng),即在原始訓(xùn)練數(shù)據(jù)對(duì)的基礎(chǔ)上,通過(guò)對(duì)人臉檢測(cè)框進(jìn)行旋轉(zhuǎn)、平移和縮放來(lái)增加初始配置的多樣性。
訓(xùn)練得到人臉對(duì)齊模型后,就可以根據(jù)對(duì)齊模型和人臉檢測(cè)框通過(guò)迭代的方式來(lái)得到各個(gè)人臉標(biāo)注特征點(diǎn)位置。對(duì)于視頻的每一幀使用人臉檢測(cè)算法得到人臉框,人臉檢測(cè)算法可能會(huì)獲得多個(gè)人臉框。由于人臉活體檢測(cè)認(rèn)證應(yīng)用中,被認(rèn)證者是端坐在攝像機(jī)前的,所以取最大的1~2個(gè)人臉框作為候選人臉即可。然后根據(jù)人臉框使用平均人臉特征點(diǎn)位置作為初始配置,再根據(jù)人臉對(duì)齊模型進(jìn)行迭代獲得人臉特征點(diǎn)的位置。
為了進(jìn)一步提高算法的健壯性,引入一個(gè)評(píng)分模型來(lái)降低誤判。首先使用OpenCV的人臉檢測(cè)器對(duì)FDDB人臉數(shù)據(jù)庫(kù)[10]進(jìn)行檢測(cè),檢測(cè)時(shí)降低閾值以達(dá)到99%以上召回率。該人臉檢測(cè)器就可產(chǎn)生很多的誤報(bào)人臉窗口,將這些輸出結(jié)果通過(guò)人工篩選方式分成人臉和非人臉兩類。訓(xùn)練時(shí),利用前面得到的人臉對(duì)齊模型對(duì)人臉和非人臉都進(jìn)行對(duì)齊迭代,根據(jù)各個(gè)特征點(diǎn)的位置分計(jì)算32×32的128位SIFT特征,然后將這些SIFT特征連接起來(lái),輸入到線性SVM中進(jìn)行訓(xùn)練。這樣就可以根據(jù)線性SVM的得分為閾值來(lái)評(píng)判人臉對(duì)齊的結(jié)果。本文實(shí)驗(yàn)中閾值為0.3,小于0.3的就認(rèn)為該人臉對(duì)齊結(jié)果不符合要求,如圖1所示。
圖1 人臉對(duì)齊算法產(chǎn)生的人臉特征點(diǎn)位置
2 基于有限狀態(tài)機(jī)的張嘴和眨眼動(dòng)作識(shí)別
對(duì)視頻進(jìn)行人臉檢測(cè)和人臉對(duì)齊后,就可以得到如圖1(b)所示的人臉對(duì)齊特征點(diǎn)位置。可以根據(jù)各個(gè)特征點(diǎn)位置來(lái)估計(jì)人臉的姿態(tài),只需判斷張嘴和眨眼動(dòng)作即可。以右眼為例,右眼的左右眼角的特征點(diǎn)位置標(biāo)號(hào)分別為0和2,上下眼皮的特征點(diǎn)位置標(biāo)號(hào)分別為1和3,那么可以計(jì)算當(dāng)前眼睛的寬和高,并根據(jù)下式可以判斷右眼的狀態(tài):
J(P)=||P0(x)-P2(x)||P3(y)-P1(y)(2)
其中,Pi(x)和Pi(y)分別特征點(diǎn)i的x和y的坐標(biāo)值,J(P)為右眼的寬和高的比例。根據(jù)眼睛的寬和高的比例,就可以確定當(dāng)前眼睛是處于睜開(kāi)狀態(tài)還是閉眼狀態(tài),同理可以估計(jì)左眼和嘴巴的狀態(tài)。
對(duì)于張閉嘴和眨眼動(dòng)作,它們是一個(gè)序列,張閉嘴動(dòng)作表示從開(kāi)始的閉嘴狀態(tài)轉(zhuǎn)換到張嘴狀態(tài)再到閉嘴狀態(tài)來(lái)完成整個(gè)動(dòng)作,同理眨眼動(dòng)作也是由睜眼狀態(tài)轉(zhuǎn)換到閉眼狀態(tài)再轉(zhuǎn)換到睜眼狀態(tài)。通過(guò)有限狀態(tài)來(lái)完成張閉嘴和眨眼動(dòng)作的檢測(cè)。以張閉嘴動(dòng)作為例,首先算法進(jìn)入初始狀態(tài)(0),如果當(dāng)前為張嘴狀態(tài)則繼續(xù)在原狀態(tài)循環(huán),如果檢測(cè)到閉嘴狀態(tài),則轉(zhuǎn)入到閉嘴狀態(tài)(1);在閉嘴狀態(tài)(1)時(shí),如果檢測(cè)嘴巴是閉合,則繼續(xù)在原狀態(tài),如果檢測(cè)到嘴巴張開(kāi),則跳轉(zhuǎn)到張嘴狀態(tài)(2);在張嘴狀態(tài)(2)時(shí),如果檢測(cè)到嘴巴還張著,則繼續(xù)在原狀態(tài),如果檢測(cè)到嘴巴閉上,則跳轉(zhuǎn)到張嘴動(dòng)作完成狀態(tài)(3),此時(shí)表示判斷用戶完成了張閉嘴的整個(gè)動(dòng)作,返回動(dòng)作成功的結(jié)果,如圖2所示。
圖2 張閉嘴動(dòng)作檢測(cè)的有限狀態(tài)機(jī)
3 基于交互式隨機(jī)動(dòng)作序列的活體檢測(cè)
識(shí)別視頻中的人臉動(dòng)作后,就可以根據(jù)需要發(fā)出指令讓用戶來(lái)完成相應(yīng)的動(dòng)作。本文設(shè)計(jì)了“張閉嘴動(dòng)作”、“左眼睜開(kāi)右眼閉上”和“右眼睜開(kāi)左眼閉上”3種動(dòng)作,由于眨眼動(dòng)作是無(wú)意識(shí)的,讓用戶強(qiáng)行控制會(huì)不自然,所以沒(méi)有采用。在活體認(rèn)證時(shí),計(jì)算機(jī)檢測(cè)到人臉后,并進(jìn)行人臉對(duì)齊,這樣可以根據(jù)特征點(diǎn)位置來(lái)分析人臉的動(dòng)作。然后計(jì)算機(jī)從上述的3個(gè)動(dòng)作中隨機(jī)選取一個(gè),要求用戶在5秒鐘內(nèi)完成,計(jì)算機(jī)根據(jù)特征點(diǎn)位置來(lái)分析用戶是否完成動(dòng)作。交互式動(dòng)作認(rèn)證重復(fù)8次,計(jì)算機(jī)根據(jù)這8次的識(shí)別結(jié)果判斷用戶是否按要求完成動(dòng)作,以確定攝像機(jī)中的用戶是否是活體。在整個(gè)認(rèn)證過(guò)程中,計(jì)算機(jī)對(duì)用戶人臉進(jìn)行跟蹤,以防止用戶認(rèn)證過(guò)程中切換視頻,如果計(jì)算機(jī)發(fā)現(xiàn)跟蹤中斷,認(rèn)證過(guò)程中止。
由于每一次的動(dòng)作是從3個(gè)動(dòng)作中隨機(jī)選取,那么8次認(rèn)證所產(chǎn)生的可能總數(shù)為=6 561種,所以使用圖片或者預(yù)先錄制的視頻通過(guò)認(rèn)證的概率是非常低的。在實(shí)際的活體認(rèn)證應(yīng)用場(chǎng)景中,一般會(huì)限制用戶進(jìn)行認(rèn)證的次數(shù),對(duì)于異常的認(rèn)證結(jié)果會(huì)引起人工核查,所以在實(shí)際的使用中通過(guò)圖片或者預(yù)先錄制的視頻通過(guò)認(rèn)證幾乎是不可能的。活體認(rèn)證系統(tǒng)采用Visual C++實(shí)現(xiàn),在主流的計(jì)算機(jī)上運(yùn)行速度可以達(dá)到實(shí)時(shí)。
4 結(jié)語(yǔ)
本文提出了一種基于交互式隨機(jī)動(dòng)作序列的活體檢測(cè)方法,通過(guò)視頻人臉檢測(cè)和人臉對(duì)齊算法定位人臉特征點(diǎn),根據(jù)人臉特征點(diǎn)位置估計(jì)人臉動(dòng)作。設(shè)計(jì)了3種隨機(jī)動(dòng)作進(jìn)行交互式認(rèn)證,根據(jù)概率認(rèn)證了該方法可以很好地防止照片和視頻對(duì)活體認(rèn)證攻擊。
參考文獻(xiàn)參考文獻(xiàn):
[1] 楊健偉.面向人臉識(shí)別的人臉活體檢測(cè)方法研究.[D].北京:北京郵電大學(xué),2014.
[2] 羅浩.人臉識(shí)別中的活體檢測(cè)方法研究.[D].長(zhǎng)沙:湖南師范大學(xué),2015.
[3] 劉華成 .人臉活體檢測(cè)關(guān)鍵技術(shù)研究.[D].寧波:寧波大學(xué),2014.
[4] PINTO A,ROBSON SCHWARTZ W,PEDRINI H,et al.Using visual rhythms for detecting videobased facial spoof attacks[J].Information Forensics and Security,2015,10(5):10251038.
[5] X TAN,Y LI,J LIU,L JIANG.Face liveness detection from a single image with sparse low rank bilinear discriminative model[C].Proc.11th Eur.Conf.Comput.Vis,2010.
[6] W R SCHWARTZ,A ROCHA,H PEDRINI.Face spoofing detection through partial least squares and lowlevel descriptors.[C]Proc.Int.Joint Conf.Biometrics,2011.
[7] XIONGET F,DE LA TORRE.Supervised descent method and its applications to face alignment[J].CVPR,2013.
[8] DAVID G LOWE,Distinctive image features from scaleinvariant keypoints[J].International Journal of Computer Vision,2004(2):91110
[9] NAVNEET DALAL,BILL TRIGGS.Histograms of oriented gradients for human detection[C].International Conference on Computer Vision & Pattern Recognition,2005.
[10] JAIN V,LEARNEDMILLER,E FDDB.A benchmark for face detection in unconstrained settings[M]Tech.Rep.UMCS2010009,University of Massachusetts,Amherst,2010.
(責(zé)任編輯:陳福時(shí))