侍新蘭 杜友福 王同喜
摘要:由于人臉極易用照片、視頻等方式進(jìn)行復(fù)制,對(duì)人臉識(shí)別與認(rèn)證系統(tǒng)安全造成威脅,使用dlib人臉識(shí)別與關(guān)鍵點(diǎn)檢測(cè),實(shí)時(shí)追蹤視頻中人臉關(guān)鍵點(diǎn),進(jìn)行人臉活體檢測(cè)(Face Anti-spoofing),以此來(lái)抵御照片、換臉、面具、遮擋以及屏幕翻拍等常見(jiàn)的攻擊手段,保障用戶的利益。
關(guān)鍵詞:人臉關(guān)鍵點(diǎn);dlib;活體檢測(cè);深度學(xué)習(xí)
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)15-0211-03
1引言
隨著人臉識(shí)別系統(tǒng)在日常生活中更加普遍的應(yīng)用,從智能手機(jī)上的人臉識(shí)別解鎖、到人臉識(shí)別打卡、門(mén)禁系統(tǒng)等等?;铙w檢測(cè)是在一些身份驗(yàn)證場(chǎng)景確定對(duì)象真實(shí)生理特征的方法,在人臉識(shí)別應(yīng)用中,活體檢測(cè)能通過(guò)眨眼、張口、搖頭、點(diǎn)頭等組合動(dòng)作,使用人臉關(guān)鍵點(diǎn)定位和人臉追蹤等技術(shù),驗(yàn)證用戶是否為真實(shí)活體本人操作。本次實(shí)驗(yàn)主要針對(duì)眨眼和張口檢測(cè)。
2相關(guān)技術(shù)
2.1Dlib
一個(gè)很經(jīng)典的用于圖像處理的開(kāi)源庫(kù),shape_predictor_68_face_landmarks.dat是一個(gè)用于人臉68個(gè)關(guān)鍵點(diǎn)檢測(cè)的dat模型庫(kù),使用這個(gè)模型庫(kù)可以很方便地進(jìn)行人臉檢測(cè),并進(jìn)行簡(jiǎn)單的應(yīng)用。臉部特征圖如圖1。
2.2眨眼檢測(cè)原理
在進(jìn)行眨眼檢測(cè)之前,首先需要確定眼睛的位置,在確定眼睛位置之后,選擇6個(gè)點(diǎn)來(lái)表示眼睛。如圖2所示,基于人臉特征圖從眼睛的左角開(kāi)始,順時(shí)針繞著眼睛進(jìn)行編號(hào)。
根據(jù)圖2標(biāo)定的6個(gè)點(diǎn)來(lái)表示眼睛睜開(kāi)和閉上的狀態(tài)。當(dāng)睜眼時(shí),上圖中垂直方向的黃色箭頭會(huì)變得伸長(zhǎng);閉眼時(shí),這個(gè)箭頭相應(yīng)縮短。由于觀看的距離、角度的不同,單從這一點(diǎn)來(lái)判斷人眼的狀態(tài)容易出現(xiàn)誤差,所以借助Soukupov6和cech在其2016年的論文“Real-Time Eye Blink D~ecfion using FacialLandmarks”中推導(dǎo)出反映這種關(guān)系的方程,稱為眼睛縱橫比EAR(Eve Aspect Ratio)。如下所示:
其中p1,……,p6是2D眼睛地標(biāo)位置。
由圖2所示的EAR曲線圖可知,當(dāng)人眼睜開(kāi)時(shí),EAR在某個(gè)值上下波動(dòng);當(dāng)人眼閉合時(shí),EAR迅速下降,理論上會(huì)接近于零。鑒于當(dāng)時(shí)的技術(shù)限制,人臉檢測(cè)模型不是很精確,所以認(rèn)為當(dāng)EAR低于某個(gè)閾值時(shí),眼睛處于閉合狀態(tài)。由于眨眼速度比較快,完成眨眼動(dòng)作一般需要1-3幀,所以為檢測(cè)眨眼次數(shù),需要設(shè)置同一次眨眼的連續(xù)幀數(shù)。關(guān)于閾值的設(shè)置要根據(jù)實(shí)際情況來(lái)定。
2.3張口檢測(cè)原理
張口檢測(cè)原理類(lèi)似于眨眼檢測(cè)。如圖3所示,同樣選擇6個(gè)關(guān)鍵點(diǎn)編號(hào)。
3人臉活體檢測(cè)實(shí)現(xiàn)
3.1提取臉部特征部位
基于dlib的shape_predictor 68 face landmarks模型檢測(cè)出人臉的68個(gè)特征點(diǎn),獲取面部標(biāo)志的索引,由特定面部的索引來(lái)提取特定的臉部結(jié)構(gòu)。
實(shí)現(xiàn)過(guò)程中對(duì)于輸入圖像,先做人臉檢測(cè),再做關(guān)鍵點(diǎn)定位。首先檢測(cè)人臉?biāo)谖恢茫ㄈ四樋颍?,再檢測(cè)關(guān)鍵點(diǎn)相對(duì)于人臉框的位置,用回歸算法去預(yù)測(cè)每一個(gè)點(diǎn)在圖像當(dāng)中的位置,得到坐標(biāo)點(diǎn)。進(jìn)而對(duì)檢測(cè)到的框進(jìn)行遍歷,對(duì)人臉框進(jìn)行關(guān)鍵點(diǎn)定位,根據(jù)位置畫(huà)點(diǎn),獲得凸包位置,并提取RIO區(qū)域,實(shí)驗(yàn)結(jié)果如圖4所示。
考慮到多目標(biāo)出現(xiàn),關(guān)鍵點(diǎn)檢測(cè)都是基于人臉框進(jìn)行,對(duì)于出現(xiàn)的人臉,遍歷每一個(gè)人臉框,得到坐標(biāo),檢查定位。
3.2人臉檢測(cè)
人臉特征點(diǎn)檢測(cè)用到了兩個(gè)關(guān)鍵函數(shù):dlib.get_fton-tal_face_detectorO和dlib.shape_predictor(predictor_path)。前者是內(nèi)置的人臉檢測(cè)算法,使用HOGpyramid,檢測(cè)人臉區(qū)域的界限(bounds)。后者是用來(lái)檢測(cè)一個(gè)區(qū)域內(nèi)的特征點(diǎn),并輸出這些特征點(diǎn)的坐標(biāo)。使用開(kāi)源模型shape_predictor 68 face land-marks.dat,可以得到68個(gè)特征點(diǎn)位置的坐標(biāo),效果如圖5所示。
3.3人臉活體檢測(cè)實(shí)現(xiàn)
3.3.1眨眼檢測(cè)
首先初始化DLIB的人臉檢測(cè)器(HOG),然后創(chuàng)建面部標(biāo)志物預(yù)測(cè),分別獲得臉部位置檢測(cè)器和臉部特征位置檢測(cè)器以及左右眼面部標(biāo)志的索引。調(diào)用攝像頭,從視頻流循環(huán)幀,讀取圖片,對(duì)圖片做維度擴(kuò)大,并進(jìn)灰度化,使用detector(gray,0)進(jìn)行臉部位置檢測(cè),循環(huán)臉部位置信息,使用predictor(gray,rectl獲得臉部特征位置的信息,將臉部特征信息轉(zhuǎn)換為數(shù)組ar-ray的格式,提取左眼和右眼坐標(biāo),構(gòu)造函數(shù)計(jì)算左右眼的EAR值,使用平均值作為最終的EAR。用cv2.convexHull獲得凸包位置,使用drawContours畫(huà)出輪廓位置,用矩形框標(biāo)注人臉。分別計(jì)算左眼和右眼的評(píng)分求平均作為最終的評(píng)分,如果小于閾值,則加1,如果連續(xù)3次都小于閾值,則表示進(jìn)行了一次眨眼活動(dòng),同時(shí)使用cv2.putText將眨眼次數(shù)進(jìn)行顯示。最后基于68個(gè)特征點(diǎn)標(biāo)識(shí),進(jìn)行畫(huà)圖操作。
3.3.2張口檢測(cè)
基于DLIB獲取唇部標(biāo)志的索引,對(duì)輸入的視頻流提取幀圖像檢測(cè)人臉,先對(duì)唇部粗定位進(jìn)行膚色分割,然后精確定位,獲取唇部特征值MAR,若MAR小于閾值,則加1,如果連續(xù)3次都小于閾值,則表示張口一次,同一次張口大約在3幀。
3.3.3實(shí)驗(yàn)結(jié)果
本次實(shí)驗(yàn)設(shè)置眼部閾值為0.2,唇部為0.5。但每個(gè)人的眼睛、嘴巴大小比例不同,應(yīng)該采取平均值計(jì)算方法——閾值的獲取方式是:先采集30次數(shù)據(jù),取其平均值作為默認(rèn)的值。為了數(shù)據(jù)的準(zhǔn)確,采集數(shù)據(jù)時(shí)應(yīng)該平視攝像頭。實(shí)驗(yàn)結(jié)果如圖6。
4總結(jié)
人臉識(shí)別系統(tǒng)逐漸向著自動(dòng)化、無(wú)人監(jiān)督化的趨勢(shì)發(fā)展,然而目前人臉識(shí)別技術(shù)能識(shí)別人臉圖像的身份但無(wú)法準(zhǔn)確辨別所輸人人臉的真?zhèn)?。那么如何自?dòng)地、高效地辨別圖像真?zhèn)蔚挚蛊垓_攻擊以確保系統(tǒng)安全已成為人臉識(shí)別技術(shù)中一個(gè)迫切需要解決的問(wèn)題。本文基于dlib人臉檢測(cè)和關(guān)鍵點(diǎn)獲取的基礎(chǔ)上對(duì)視頻流中采集到的人臉進(jìn)行追蹤與判斷,實(shí)驗(yàn)中采集到的人臉較多為平視攝像頭,對(duì)于側(cè)臉,遮擋等處理效果需要進(jìn)一步設(shè)計(jì)與改進(jìn)。