專利名稱:一種在人臉識別中應用的活體檢測方法
技術領域:
本發(fā)明屬于模式識別領域,具體涉及一種在人臉識別中應用的基于誤導性提示信 息和光流場的活體檢測方法。
背景技術:
隨著生物識別技術的發(fā)展,人臉識別技術已趨于成熟,在良好的光照條件和姿態(tài) 下,人臉識別系統(tǒng)已經可以較好的進行人臉檢測與識別,但是,對于一些諸如門禁、登錄等 系統(tǒng)的人臉識別技術而言,用戶可以憑借照片等非法手段欺騙系統(tǒng)。對于這類系統(tǒng),識別率 越高,安全隱患越大。因此,活體檢測成為這類系統(tǒng)應用人臉識別技術的瓶頸。傳統(tǒng)的人臉識別系統(tǒng)中的活體檢測大致可分為用戶配合和盲檢測兩種方法。用戶 配合的方法要求用戶按照系統(tǒng)的提示做一些特定的動作,例如嘴型變化、頭部轉動、表情變 化等。系統(tǒng)比較用戶的反應是否與預期相符合,若符合則判斷為活體,否則判斷為照片。用 戶配合的檢測方法的優(yōu)點是確?;铙w,缺點是暴露了系統(tǒng)活體檢測的判斷依據(jù)。另外,用戶 配合的檢測方法要求用戶按照提示做一系列的動作,容易使用戶產生厭煩情緒,降低了系 統(tǒng)的友好性。盲檢測的方法不需要用戶配合,是在用戶不知情的狀態(tài)下進行活體檢測。盲 檢測方法的優(yōu)點是隱蔽性強,安全性高,缺點是可以穩(wěn)定有效利用的活體特征較少。例如, 眼睛眨動是盲檢測方法常用的活體特征,但據(jù)統(tǒng)計,人平均2至4秒才眨動一次眼睛,這個 時間太長了,況且長時間不眨眼的人也不少。本發(fā)明提出一種介于用戶配合方法和盲檢測方法之間的人臉活體檢測方法。目 前,許多人臉識別系統(tǒng)為了提高識別率,往往會提示用戶正面面對攝像頭。本發(fā)明提出的活 體檢測方法是在用戶已經正面面對攝像頭的情況下,仍然不斷提示用戶正面面對攝像頭, 從而引起用戶困惑而下意識地調整自己的姿態(tài)。就正常的用戶來說,這些調整的動作是可 以預期的。本發(fā)明提出的活體檢測方法通過檢測這些動作判斷活體。1981 年,Horn 和 Schunck(參考文獻[1] :Β· K. P. Horn,B. G. Schunck, DeterminingOptical Flow,Artificial Intelligence 17,1981,pp. 185-203)最早研究光 流場的計算。光流指圖像中灰度模式運動速度。物體在光源照射下,其表面的灰度呈現(xiàn)一定 的空間分布,稱之為灰度模式。當人的眼睛觀察運動物體時,物體的景象在人眼的視網膜上 形成一系列連續(xù)變化的圖像,這一系列連續(xù)變化的信息不斷“流過”視網膜(即圖像平面), 好像是一種光的“流”,故稱之為光流。當物體運動時,在圖像上對應物體的亮度模式也在運 動。光流是指圖像亮度模式的表觀(或視在)運動(apparent motion) 0光流表達圖像的 變化,包含目標運動的信息,可用來確定目標的運動。定義光流以點為基礎。具體來說,設 (u,ν)為圖像點(x,y)的光流,則把(x,y,u,v)成為光流點。所有光流點的集合稱為光流 場。本發(fā)明利用光流場計算統(tǒng)一檢測眼眶內眼睛眨動和眼球轉動的動作。
發(fā)明內容
本發(fā)明提出一種基于誤導信息和光流場的人臉識別活體檢測方法,具體內容如下(1)系統(tǒng)給出誤導性提示信息目前,許多人臉識別系統(tǒng)為了提高識別率,都會提示用戶正面面對攝像頭。本發(fā)明 提出的活體檢測方法是在用戶已經正面面對攝像頭的情況下依然不斷提示“正面面向攝像 頭”的信息,從而使用戶產生困惑并下意識調整自己的姿態(tài)。系統(tǒng)通過檢測這些姿態(tài)進行活 體判斷。這樣做有三個目的·保證活體檢測的隱蔽性。本發(fā)明的提示信息都是許多人臉識別系統(tǒng)在“用戶配 合的應用”中經常使用的、正常的提示信息,如“請正面面對攝像頭”、“現(xiàn)場光線過暗”、“請 摘除眼鏡”等等。這些信息原本不是為了活體檢測,而是為了提高識別率。這些信息在“用 戶配合的應用”中已經廣泛使用和廣為熟悉。用戶看到這些信息不會生疑,不會知道系統(tǒng)正 在進行活體檢測,從而保證了活體檢測的隱蔽性?!ふT使用戶產生活體動作。本發(fā)明是在用戶已經滿足提示信息的前提下仍然不斷 地顯示提示信息。例如,在用戶已經正面面對攝像頭的情況下,仍然提示用戶正面面對攝像 頭。在本發(fā)明中,我們把這些信息稱為誤導信息。誤導信息的目的是誘發(fā)用戶產生困惑,從 而下意識地調整自己的姿態(tài)。不同的用戶可能會有不同的姿態(tài)調整動作。例如,有的用戶 會左右擺動自己的頭部,有的用戶會上下擺動自己的頭部,等等。但是,在“正面面對攝像 頭”的強烈心理暗示下,用戶在調整自己姿態(tài)的時侯,眼睛會一直盯住顯示屏。這是因為用 戶的視頻和系統(tǒng)的提示信息都實時顯示在顯示屏上,用戶需要通過觀察顯示屏上的圖像和 信息實時掌握自己姿態(tài)調整的效果。這意味著用戶的眼球在其眼眶的相對位置會在用戶姿 態(tài)調整時會發(fā)生變化。本發(fā)明通過檢測眼球相對于眼眶的位置變化判斷活體?!ご偈褂脩粲醚燮?,誘發(fā)眨眼動作。眨眼是人臉識別中活體檢測常用的判別依 據(jù)。但是,根據(jù)統(tǒng)計,人眼平均2到4秒才眨動一次,而且,長時間不眨眼的人也不少。因此, 誘發(fā)用戶在無意識的狀態(tài)下產生眨眼動作是盲檢測方法首要考慮的問題。本發(fā)明采用誤導 信息促使用戶產生困惑,又采用走字或閃動的方式不斷顯示這些誤導信息,造成用戶精神 和用眼的疲勞,誘發(fā)用戶眨眼。本發(fā)明通過檢測用戶眨眼判斷活體。(2)Adaboost檢測人臉、人眼區(qū)域首先對圖像進行一定的光線補償,然后利用Adaboost層疊型人臉分類器對輸入 圖像進行人臉檢測,再在檢測到的人臉區(qū)域上半部利用Adaboost層疊型眼睛分類器進行 人眼檢測。Adaboost檢測到的人眼眼眶包含了眉毛區(qū)域、眼睛左右眼角外的一些皮膚區(qū)域 和眼睛下部的一部分皮膚區(qū),因此需要按照固定比例將眉毛切除,得到候選的眼睛區(qū)域。(3)差分灰度投影精確框定人眼眼眶為精確框定眼眶,在候選的眼睛區(qū)域內進行差分灰度投影。差分灰度投影函數(shù)反 應了圖像在某個方向上的灰度變化大小。由于眼睛相對于周圍皮膚灰度值存在較大變化, 因此分別經過水平投影、垂直投影后,上下眼皮、左右眼角位置處的投影值相對周圍皮膚區(qū) 域大很多,可以由此特性確定人眼眼眶。(4)計算相鄰兩幀眼睛光流場對于相鄰兩幀人臉圖,可以由以上步驟分別得到兩幅左眼眼圖和兩幅右眼眼圖, 采取LK算法對左眼、右眼分別做光流計算,目的在于判斷眼部是否發(fā)生了較大的運動。對 于人臉而言,在姿態(tài)校正的過程中會伴隨眼珠轉動和眼睛眨動,通常針對眼珠轉動的算法
4需要精確確定眼珠位置,但這樣會帶來較大的計算量,并且目前的特征點提取算法魯棒性 不足,對于光線、姿態(tài)變化敏感;針對眼睛眨動的算法通常需要確定眼睛睜開、閉合狀態(tài),若 狀態(tài)序列符合人眼眨動過程則判斷發(fā)生了眨眼活動。本發(fā)明引入光流場的概念,可以同時 估計到這兩種運動信息,大大縮減計算量的同時使計算效果大大提高,當上述運動發(fā)生時 計算得到的光流場較大,對于照片而言,盡管照片的運動也會帶來一定的光流變化,但相較 于真實人臉的上述兩種運動,其光流場微弱許多。(5)活體判別可由光流計算的結果得到像素運動幅值,計算幅值足夠大的點數(shù)占整個圖像點數(shù) 的比重,若占到相當大的比例則判斷此時人眼區(qū)域發(fā)生了較大的運動,說明為活體,否則為 照片。發(fā)明特點本發(fā)明特點之一在于提出了一種基于誤導信息的活體檢測方法。本發(fā)明在用戶已 經正面面向攝像頭的時候仍然不斷提示用戶正面面向攝像頭,因此這是一種誤導性的提示 信息。用戶在進行姿態(tài)校正的過程中,會有一系列的反應,如轉動頭部但同時眼睛依然注視 攝像頭,這時眼珠在眼眶中的相對位置勢必會發(fā)生變化;同時,信息的提示會誘發(fā)用戶眼睛 的疲勞,使用戶較平時更易眨動眼睛。本發(fā)明則是利用了這兩方面的活體特征進行活體判 別。這種方法是介于傳統(tǒng)的盲檢測和用戶配合方式之間的一種判別方法,從本質上講屬于 盲檢測,因為用戶并不知道系統(tǒng)此時正在進行活體判別,也不知道系統(tǒng)利用了怎樣的活體 特征,在用戶反復校正姿態(tài)并觀察提示信息時,他便無意識的主動提供了系統(tǒng)可利用的運 動信息。對于照片,不論其如何旋轉、平移,人臉圖像的眼部區(qū)域始終幾乎靜止不動,所產生 的光流場也比較微弱。這種方式的優(yōu)點之一在于系統(tǒng)提取的活體特征并沒有暴露在用戶面 前,而且可以同時利用多種活體特征,增強了系統(tǒng)的隱蔽性和安全性。本發(fā)明特點之二在于采用光流場進行活體特征的估計。本發(fā)明利用的活體特征是 眼珠的轉動和眼睛眨動。對于這兩種運動而言,目前都有相關的研究算法,但計算量大且效 果不佳。本發(fā)明中利用的光流場理論,可以同時捕捉到眼珠轉動和眼睛眨動時的運動信息, 而不去關心眼珠的精確位置和眼睛眨動的開、閉具體狀態(tài)。本發(fā)明在Adaboost檢測到眼 眶大致區(qū)域后,按固定比例去掉眉毛部分,然后利用灰度投影的方法精確框定眼眶,采用LK 算法計算眼眶部位相鄰幀的光流場。記錄每幅圖上像素點的光流幅度,計算幅度足夠大的 點占所有點的比重,若該百分比大于某值則判斷眼部發(fā)生了運動,否則靜止。
圖1、基于光流場的活體檢測流程2、Adaboost檢測到的人臉和眼眶位置圖3、根據(jù)一定比例切除Adaboost后的眼眶,得到候選眼眶區(qū)域圖4、灰度投影圖及眼眶精確框定
具體實施例方式本發(fā)明以基于視頻的人臉檢測與識別的應用為例,說明本發(fā)明的具體實施過程。 試驗采用普通的500萬象素攝像頭,攝像頭與人臉的距離約為0. 4米,處于一般的室內光照環(huán)境下,人臉檢測、活體檢測、識別系統(tǒng)運行在PC機上。步驟1 系統(tǒng)提示誤導性信息當用戶輸入用戶名和密碼期待進入系統(tǒng)時,向用戶發(fā)出一條提示信息“請正面面 向攝像頭”,要求用戶進行一定的姿態(tài)校正,無論此時攝像頭是否已經抓拍到的人臉圖像是 否為正面圖。步驟2 =Adaboost人臉、人眼檢測Adaboost算法提出后被引入用作人臉檢測,使人臉檢測速度得到很大提高。隨著 國內外學者對其算法的不斷研究和改進,使得現(xiàn)在的Adaboost算法成為人臉檢測的主流
算法之一。本發(fā)明采用此算法,首先利用層疊性人臉分類器檢測人臉,檢測出的人臉頭像上 至額頭,下至下巴,左右兩側包含較多的背景圖像,見圖2 ;然后在人臉圖像的上半部分利 用層疊性眼睛分類器進行眼睛的查找,最終找到的眼部區(qū)域包含完整的眉毛、左右眼角及 眼睛下部的一些皮膚區(qū)域??砂幢壤ッ济糠?,假設Adaboost檢測到的人眼眼眶寬w,
高h,則向右舍棄^,向下舍棄$,剩余的作為候選眼眶,見圖3。這部分已經初步去除 6λ5 2
掉眉毛部分,可以用灰度投影做下一步的處理。步驟3 差分灰度投影確定人眼眼眶因人眼與周圍皮膚相比,有較強的邊緣信息,因此可利用灰度變化來提取上下眼 皮、左右眼角的位置。差分投影考慮了圖像在某個方向上的灰度變化率改變的情況,由于人 眼出較周圍皮膚的灰度變化較為顯著,因此對去除掉眉毛的人眼區(qū)域進行差分投影,對應 于人眼位置會有一相當明顯的高峰。差分投影函數(shù)定義如下若圖像尺寸為imWXimH,垂 直差分投影DPFv(X)與水平差分投影DPFh (y)可分別表示為
1 imW-iDPFv{x) = ~—
Ifft rv /=]
1 imH-\DPFh{y) = -—
imJi =Ι本發(fā)明針對候選眼眶部分左右眼分別進行水平和垂直方向的差分投影,根據(jù)投影 函數(shù)截取一定的范圍作為精確的眼眶部位,具體如圖4所示。步驟4 計算相鄰幀眼眶光流場對于視頻輸入的每一幀圖像,依次提取其左右眼眶,然后計算相鄰兩幀對應的光 流場。利用LK算法可得到光流的水平部分圖像velx和垂直部分圖像vely。為了降低系 統(tǒng)計算量,使運行速率提高,本發(fā)明只利用每個窗口 windowX window的中心點(x,y)的光 流值,并將這些點成為有效點。對于點(x,y),分別將其velx圖和vely圖windowX window 鄰域內的像素光流值取平均,作為該點的水平運動分量XX和垂直方向運動分量11。為估計 其運動信息V,計算V""= y]xx2+yy2。LK算法基于以下三點基本假設1、圖像的灰度一致性。假設圖像中的像素在運動過程中,其像素值是固定不變的, 也即幀與幀之間同一物體的同一點灰度值不會隨著時間的變化而變化;2、運動幅度較小。物體的運動速度比較小,否則幀的變化太慢捕捉不到物體的運
6動情況;3、空間中相鄰點投射到2D平面后仍然彼此相鄰,具有相似的運動特性。由假設條件有,設時刻t時,圖像上一點(X,y)處的灰度值為I (X,y,t)。在時刻 t+At時,這一點運動到新位置,其在圖像上的位置變?yōu)?χ+Δχ,y+Ay),新位置的灰度值 記為I (χ+ Δχ,γ+Δ y,t+ Δ t),根據(jù)圖像灰度一致性假設,有dl (χ, y,t) /dt = 0,則 設u和ν分別為該點光流在χ和y方向上的分量,即u = dx/dt,v = dy/dt,將上 式右邊用Taylor公式展開,略去2次以上的項,則可得灰度圖像光流場計算基本等式 Lucas-Kanade方法是一種基于像素遞歸的光流算法,就是預測矯正型的位移估算 器預測值可以作為前一個像素位置的運動估算值,或作為當前像素鄰域內的運動估算線性 組合。依據(jù)該像素上的位移幀差的梯度最小值,對預測作進一步的修正。Lucas和Kanade假設在一個小的空間鄰域上Ω運動矢量保持恒定,然后使用加權 最小二乘方估計光流。在一個小的空間鄰域Ω上,光流估計誤差定義為 其中W(X)表示窗口權重函數(shù),它使鄰域中心部分對約束產生的影響比外圍部分 更大。設V = (u, ν)τ,ν/(χ) = (/,,/」Γ,上式的解由下式給出AtW2AV = ATff2b其中,在時刻t的η個點Xi e Ω,d = ⑷,…▽/“)] AtW2AV = ATff2b的解為V = (AtW2A)TATW2b,其中當AtW2A為非奇異時可得到解析解, 因為它是一個2*2的矩陣 |_Σ『2(機(?、?Σ曠(水2⑷_,其中所有的和都是在鄰域Ω上的點得到的。對于光流的基本方程,光流的可靠性由AtW2A矩陣的特征值來決定,假設其特征值 為入工和λ 2,若它們均大于給定的閾值λ,則計算出的光流是可靠的,反之,是不可靠的。步驟5 判斷是否為活體對于計算得到的左右眼眶的光流圖,設定一閾值λ,只有該點的運動賦值ν彡λ 時才將其定義為發(fā)生了較大運動的點。計算這些運動足夠大的點占有效點數(shù)的比重P,若 P彡15% (百分比可根據(jù)實際調試確定,本發(fā)明取值為15% )時認為眼部產生了一定的運
7動,同時,只有雙眼都檢測到有運動信息時,才將其判定為活體。實驗表明,對于真實人臉, 隨著姿態(tài)的校正和眼睛的眨動,計算得到的光流值較大,光流值較大的點所占比重也較高, 系統(tǒng)可以將其判為發(fā)生了運動的圖;對于照片而言,不論照片如何平移、旋轉,所帶來的眼 部的運動均較微弱,與真實人臉存在較大差別。
權利要求
一種在人臉識別中應用的活體檢測方法,其特征在于A、利用正常提示信息進行隱蔽性活體檢測;B、利用光流場統(tǒng)一進行眨眼和眼球轉動的檢測。
2.根據(jù)權利1所述的在人臉識別中應用的活體檢測方法,其特征在于所述步驟A具體 包括在用戶已經正面面對攝像頭的情況下,仍然不斷閃現(xiàn)“請正面面對攝像頭”的提示信 息,從而引起用戶困惑,產生一些具有活體特征的可以預期的動作如用戶會下意識的矯正 姿態(tài)而眼睛卻盯住屏幕,這相當于眼球在眼眶中發(fā)生了移動;由于過度注視提示信息,使眼 睛疲勞而眨動。
3.根據(jù)權利1所述的在人臉識別中應用的活體檢測方法,其特征在于所述的步驟B具 體包括利用計算光流場統(tǒng)一檢測眼球移動和眨眼的活體動作,因為眼球移動或眨眼都可 以統(tǒng)一概括為眼眶內物體發(fā)生運動,光流場對物體運動比較敏感,利用光流場可以統(tǒng)一檢 測眼球移動和眨眼。
全文摘要
本發(fā)明提出一種在人臉識別中應用的活體檢測方法,屬于模式識別技術領域。本發(fā)明提出的算法首先不管此時用戶姿態(tài)是否正確均向登陸用戶提示“請正面面向攝像頭”,在用戶進行姿態(tài)校正的過程中,利用Adaboost人臉分類器尋找人臉和眼眶區(qū)域,再利用差分投影確定上下眼皮、左右眼角,精確框定眼眶位置。然后在輸入視頻序列中計算相鄰兩幀的光流場,采取LK算法進行計算。將得到的光流數(shù)據(jù)做進一步處理,求得光流幅值,得到幅值較大的像素點數(shù),計算其所占的比重,若比例足夠大則標定為眼部發(fā)生了運動。實驗表明,對于真實人臉而言,眼部在姿態(tài)校正和眨眼過程中會產生較大的光流,發(fā)生的運動易被檢測到;但對于照片而言,不論照片如何旋轉、平移,眼部均只會產生微弱的運動。這種方法用來進行活體檢測取得了較好的效果。
文檔編號G06K9/00GK101908140SQ201010240580
公開日2010年12月8日 申請日期2010年7月29日 優(yōu)先權日2010年7月29日
發(fā)明者劉金葵, 李靜, 譚恒良, 馬爭鳴 申請人:中山大學