孫靜晶 張鵬
摘要:隨著科技的發(fā)展,人臉照片、人臉視頻、三維人臉模具越來越容易獲得,基于人臉認(rèn)證的偽造攻擊越來越多,偽造技術(shù)也越來越高,對(duì)系統(tǒng)的安全帶來了嚴(yán)重的挑戰(zhàn)。
關(guān)鍵詞 人臉活體檢測(cè); 部件相關(guān)描述子; 三維人臉結(jié)構(gòu);
一、算法流程設(shè)計(jì)
本算法實(shí)現(xiàn)流程如圖1所示。(1)首先進(jìn)行預(yù)處理,選定視頻中不在人臉可能出現(xiàn)的區(qū)域,并將該區(qū)域圖像 保存,作為對(duì)比圖像在背景對(duì)比步驟使用。然后進(jìn)行背景對(duì)比,選取一幀與預(yù)處理選定的背景圖像 相同區(qū)域的圖像 ,將 與圖像 進(jìn)行灰度化處理得到兩幅圖的灰度圖像 和 。在圖像 上尋找 個(gè)亞像素級(jí)角點(diǎn) ,使用金字塔Lucas-Kanade光流方法追蹤亞像素級(jí)角點(diǎn) 在圖像 的位置 。計(jì)算兩次角點(diǎn)位置偏移之和,大于某一閾值則認(rèn)為背景發(fā)生變化、檢測(cè)的人臉為非活體人臉。(2)背景檢測(cè)結(jié)束后,對(duì)視頻每幀圖像進(jìn)行人臉檢測(cè)和眼睛檢測(cè)。將檢測(cè)后的圖像進(jìn)行直方圖均勻化、自適應(yīng)二值化,然后進(jìn)行形態(tài)學(xué)開閉操作求出眼珠,統(tǒng)計(jì)眼珠的像素總和 。分析每幀圖像中眼珠像素總和 ,當(dāng)睜眼狀態(tài)時(shí), 的值最大,閉眼狀態(tài)時(shí), 的值為0。出現(xiàn)上述狀態(tài)時(shí),可以認(rèn)為該過程為眨眼過程。當(dāng)背景檢測(cè)相同且發(fā)生眨眼過程時(shí),則認(rèn)為檢測(cè)的人臉是活體。
二、 算法識(shí)別過程
活體人臉檢測(cè)主要包括背景對(duì)比、眨眼檢測(cè)兩個(gè)過程。(1) 背景對(duì)比。為了防止圖片、視頻偽造攻擊,本文采取背景對(duì)比的方法。選取視頻中非人臉可能子區(qū)域作為感興趣的背景對(duì)比圖像 ,將該圖像保存,在背景對(duì)比時(shí)使用。打開攝像頭,將視頻第一幀作為背景對(duì)比幀。選定與圖像 相同的區(qū)域做為背景檢測(cè)圖像 。將對(duì)比圖像 和檢測(cè)推向 進(jìn)行灰度化,得到各自的灰度圖像 和 。為了便于跟蹤,我們需要在圖像 選取一定數(shù)目的包含足夠信息且能從當(dāng)前圖像和下一圖像都能提取出來的點(diǎn)。為了便于跟蹤和測(cè)量,使用亞像素級(jí)角點(diǎn)來檢測(cè)圖像 上的便于跟蹤的點(diǎn)集 。接下來在圖像 上使用圖像LK光流方法跟蹤上述點(diǎn),找到跟蹤后的角點(diǎn)集 。設(shè)定所有角點(diǎn)漂移距離
判斷兩幅圖像的漂移距離,當(dāng)背景相同時(shí),兩次角點(diǎn)的漂移距離非常小,當(dāng)背景被覆蓋時(shí),背景角點(diǎn)的漂移距離非常大。設(shè)定合適的閾值 ,當(dāng) 則認(rèn)為背景發(fā)生了變化,檢測(cè)的人臉為非活體人臉,否則,進(jìn)行眨眼檢測(cè)繼續(xù)判斷。
(2) 眨眼檢測(cè)。人臉檢測(cè)技術(shù)經(jīng)過一段長(zhǎng)時(shí)間的發(fā)展,現(xiàn)在已經(jīng)非常成熟。各種快速人臉識(shí)別算法不斷出現(xiàn)。本實(shí)驗(yàn)采用Paul Viola 和Miachael Jones等利用Adaboost算法構(gòu)造了人臉檢測(cè)器,稱為Viola-Jones檢測(cè)器。之后Rainer Lienhart和Jochen Maydt用對(duì)角特征,即Haar-like特征對(duì)檢測(cè)器進(jìn)行擴(kuò)展。每個(gè)特征由2-3個(gè)矩形組成,淺色區(qū)域表示“累加數(shù)據(jù)”,深色區(qū)域表示“減去該區(qū)域的數(shù)據(jù)”,分別監(jiān)測(cè)邊界、線、中心特征,這些特征可表示為: 其中, 為矩形的權(quán), 為矩形 所圍圖像的灰度積分, 是組成 的矩陣個(gè)數(shù)。Adaboost是一種基于統(tǒng)計(jì)的學(xué)習(xí)算法,基本思想是利用分類能力一般的弱分類及通過一定的方法疊加(boost)起來,構(gòu)成分類能力很強(qiáng)的強(qiáng)分類器。Viola-Jones檢測(cè)器利用瀑布(Cascade)算法分類器組織為篩選式的級(jí)聯(lián)分類器,級(jí)聯(lián)的每個(gè)節(jié)點(diǎn)是AdaBoost訓(xùn)練得到的強(qiáng)分類器。在級(jí)聯(lián)的每個(gè)節(jié)點(diǎn)設(shè)置閾值 ,使得幾乎所有人臉樣本都能通過,而大部分非人臉樣本不能通過。
在尋找人臉和人眼后,選取一個(gè)眼睛區(qū)域,并記做眼部圖像 。使用自適應(yīng)二值化操作,將眼部圖像變成二值化圖像 。眼部二值化圖像包含眼珠、眼瞼等區(qū)域,需要使用形態(tài)學(xué)閉操作將非眼珠區(qū)域去除: 其中, 為開操作符號(hào), 為閉操作符號(hào), 為膨脹操作符號(hào), 為腐蝕操作符號(hào)。由于眼珠呈現(xiàn)圓形狀,故采用圓盤形的構(gòu)造核,下面是不同大小對(duì)眼珠檢測(cè)結(jié)果的影響。在檢測(cè)眼珠之后,統(tǒng)計(jì)眼珠的像素總和 。當(dāng)眼睛最大的時(shí)候,像素最多;眼睛閉上的時(shí)候,眼珠的像素總和為0。通過判斷眼珠像素總和 的變化,從而判斷眨眼過程。
三、 實(shí)驗(yàn)結(jié)果及分析
本實(shí)驗(yàn)是在Visual C++ 2010與OpenCV2.4.3開源視覺庫(kù)下完成的。實(shí)驗(yàn)平臺(tái)為Pentium(R) Dual-Core處理器,2.00GB的內(nèi)存,顯卡型號(hào)為NVIDIA GeForce 9300 GS顯存的微機(jī)。實(shí)驗(yàn)軟件是Visual C++ 2010和OpenCV2.4.3.攝像頭采用極速E40,幀頻30FPS,攝像頭像素是200萬(wàn),動(dòng)態(tài)分辨率是640*480.為了檢測(cè)本算法的正確性,我們進(jìn)行了三組實(shí)驗(yàn),分別是1000張人臉照片攻擊,1000個(gè)視頻攻擊,以及1000次活體人臉測(cè)試。測(cè)試出人臉照片和視頻攻擊的正確率和時(shí)間,以及活體人臉測(cè)試的拒絕率和時(shí)間,并與其它算法進(jìn)行對(duì)比。
四、 結(jié)論
實(shí)驗(yàn)結(jié)果表明,本文算法能夠有效辨別圖像、視頻、3D模型(非眼睛眨動(dòng))的偽造人臉攻擊,具有準(zhǔn)確率高,運(yùn)算速度快等優(yōu)點(diǎn)。同時(shí),本文的算法不能識(shí)別眼睛眨動(dòng)的3D人臉模型,這個(gè)方向?qū)⑹俏磥砦覀兊难芯糠较颉?/p>
(作者單位:鶴壁汽車工程職業(yè)學(xué)院河南省鶴壁市)