本發明屬于數字圖像處理、人工智能技術領域,具體涉及一種基于視頻分析的活體檢測方法和系統。
背景技術:
近年來,隨著人臉識別技術被越來越廣泛地應用在各個領域,針對人臉識別的攻擊手段也層出不窮,其中,最常見的攻擊手段包括照片人臉攻擊與視頻人臉攻擊,圍繞攻擊的防范手段圍繞著活體檢測這一中心點展開。在一個攝像頭固定的人臉識別門禁系統中,如何應用活體檢測技術來排查照片攻擊與視頻攻擊,這是本系統需要解決的問題。
技術實現要素:
本發明的目的在于提供一種能夠防止人臉識別中各種攻擊手段的基于視頻分析的活體檢測方法和系統。
本發明提出的基于視頻分析的活體檢測方法,其流程參見圖1所示,具體步驟為:
步驟(1)、采用攝像頭獲取視頻流:
攝像頭必須固定位置,攝像頭連接主機或局域網中,將攝像頭讀取的視頻流輸入進主機緩存,根據計算主機的性能自定義每秒處理的幀數;對于每一張圖像進行分析。
步驟(2)、進行系統環境背景更新:
攝像頭讀取圖像的3秒后的圖像作為系統的初始背景環境,這樣做是避免在攝像頭開啟時由于攝像頭感光元件未完全激活時產生的圖像亮度差異導致的問題。當未檢測人臉時,判斷距離上一次更新系統背景圖像是否超過60秒,如果是,則更新背景。
步驟(3)、提取人臉環境圖像與系統背景圖像:
在人臉圖像的矩形區域左側附近提取一個矩形圖像作為人臉的背景圖像,同時提取系統環境背景圖像中對應位置的矩形區域作為系統的背景圖像。需要注意的是,包含人臉的圖像中的背景區域距離人臉區域不能太遠,否則無法包含照片中或視頻中的人臉背景;也不能太近,否則容易包含人臉旁的頭發等物,影響檢測的準確度。所以系統使用一個參數,讓用戶根據具體的運行環境設定參數,從而控制背景區域與人臉的距離。
步驟(4)、對比背景圖像差異性:
使用的感知hash算法來分別計算人臉背景圖像與系統背景圖像的感知hash值,再計算感知hash值的差異,得出圖像的差異;當差異高于閾值,則認為兩個背景不相同,背景分析子系統拒絕通過;當差異小于等于閾值,則進入眨眼檢測子系統。
步驟(5)、進行人眼定位:
人眼定位是眨眼檢測的第一步,精確的人眼定位是眨眼檢測準確度的重要保障。這里使用區域增長算法,從人臉區域的左上半區進行搜索,定位出人眼的矩形區域,將人眼圖像傳給下一步驟去處理。注意,由于人眼的對稱性,眨眼檢測只對人眼左眼做檢測。
步驟(6)、判斷人眼的張合狀態:
對人眼圖像進行灰度值化、二值化處理,然后,再進行形態學操作,使得張眼與閉眼狀態的人眼的特征產生較大的差異,通過計算處理后的人眼圖像的黑色像素的個數,判斷人眼處于睜開還是閉合的狀態。
步驟(7)、所述分析張合狀態序列,判斷是否有眨眼動作:
對視頻流一系列圖像產生的張合狀態序列進行分析,如果序列中包含產生了兩次眨眼動作的子序列時,可以認為用戶做出了眨眼動作。之所以需要兩次眨眼,是為了消除偶爾的誤差帶來的誤判。
本發明步驟(4)中,所述對比背景圖像差異性,當得到系統背景圖像與人臉背景圖像時,對兩張圖像進行相似度比較,通過感知hash算法求出圖像的感知hash值,具體操作過程如下:
(a)將圖像縮小到8×8尺寸,目的是為了去除圖像的細節,只保留大體的結構以及明暗等信息;
(b)將縮小尺寸后的圖像轉換為64級灰度級;
(c)計算64個像素的平局值;
(d)將每一個像素與平均值進行比較,大于平均值則記為1,否則記為0;
(e)按照像素的位置順序排列64個0或1數字,得到一個64位的二進制數,被稱為圖像的“指紋”;
(f)比較兩張圖像“指紋”的漢明距離,距離越小,圖像相似度越高(參見圖3);距離越大,圖像相似度越低(參見圖4)。
本發明步驟(5)中,所述人眼定位采用區域增長算法,其具體步驟如下:
(1)首先估計出鼻尖的坐標位置
(2)設矩形框初始的左下角為
計算矩形框內所有像素的初始平均灰度值
其中,
(3)進行迭代,在
其中
(4)平滑處理矩形框,找到矩形框
(5)計算,若
(6)在
利用這個算法可以精準地定位人眼位置(參見圖5)。
對應于上述基于視頻分析的活體檢測方法,本發明的基于視頻分析的活體檢測系統,包括:環境背景分析子系統與眨眼檢測子系統;其中,環境背景分析子系統包括:視頻讀取模塊、系統環境背景更新模塊、人臉環境背景截取模塊、系統環境背景截取模塊、感知hash對比模塊;眨眼檢測子系統包括:人眼定位模塊、人眼張合狀態判斷模塊、人眼張合狀態序列分析模塊。其中,視頻讀取模塊為一攝像頭,用于獲取視頻流,對應于步驟(1)的操作;系統環境背景更新模塊用于更新系統環境背景,對應于步驟(2)的操作;人臉環境背景截取模塊和系統環境背景截取模塊用于提取人臉環境圖像與系統背景圖像,對應于步驟(3)的操作;感知hash對比模塊用于對比背景圖像差異性,對應于步驟(4)的操作;人眼定位模塊用于人眼定位,采用區域增長算法,對應于步驟(5)的操作;人眼張合狀態判斷模塊用于判斷人眼的張合狀態,對應于步驟(6)的操作;人眼張合狀態序列分析模塊用于分析人眼張合狀態序列,判斷是否有眨眼動作,對應于步驟(7)的操作。
本發明的有益效果是:使用的是基于視頻分析的活體檢測技術,相比于指紋、虹膜識別技術來說成本較低,而且使用的眨眼檢測與背景分析法中,不需要待測用戶的交互動作,用戶體驗友好。檢測算法中的感知hash、區域增長等算法對光照要求低,光照敏感度不高,魯棒性高,對于照片攻擊與視頻攻擊能夠起到有效的檢測作用。
附圖說明
圖1為活體檢測主要流程圖。
圖2為人臉背景與系統背景。
圖3為相似背景差異值。
圖4為不相似背景差異值。
圖5為人眼定位。
圖6為系統的初始界面。
圖7為配置文件。
圖8為打開攝像頭。
圖9為初始化。
圖10為背景相同。
圖11為背景不同。
圖12為人眼檢測中間結果。
圖13為眨眼檢測。
圖14為照片攻擊。
圖15為視頻攻擊。
圖16為合法登錄。
具體實施方式
本發明提供的基于視頻分析的活體檢測系統,根據固定位置的攝像頭,實現自動、快速的活體檢測功能,能夠有效地抵御照片人臉與視頻人臉攻擊。
針對照片攻擊手段,本系統根據照片的靜態性使用眨眼檢測法將照片攻擊與活體區分開,而對于同樣擁有眨眼動作的視頻攻擊,本系統采用背景分析算法,通過分析人臉背景與系統背景的差異來排查。
本系統主要包括兩個子系統:
(a)眨眼檢測子系統
(b)環境背景分析子系統
系統的流程:攝像頭固定在某一個位置,讀取攝像頭前的景象作為視頻流輸入,系統獲取視頻流,對每一幀圖像做以下處理:先判斷圖像中是否有人臉,若無,進入系統背景更新模塊;若有,則截取人臉的環境背景,再在系統環境背景中截取相對應區域的圖像,將兩張圖像進行相似性比較。本系統使用的圖像比較算法為感知hash值的計算,通過計算感知hash的漢明距離,來判斷圖像的差異性。
當差異值小于設定的閾值,則認為兩個背景是相同的,系統進入眨眼檢測子系統。對后續的8秒圖像先用區域增長算法進行人眼定位,然后用灰度值化、二值化后的圖像進行開-閉操作,即可判斷人眼的張合狀態。對一系列的張合狀態進行分析,判斷是否產生眨眼動作,從而判斷是否為活體用戶。
本活體檢測的兩個子系統:環境背景分析子系統與眨眼檢測子系統,只有同時通過了兩個子系統的檢測,才判定待測用戶為活體,否則為非活體。
本系統的實現使用mfc框架,利用第三方庫opencv2.4.9開發一個基于windows的桌面應用程序,系統的初始界面如圖6所示:位于界面的左上角區域是用來顯示捕捉到的實時視頻圖像,下方的區域是用來顯示背景分析子系統的中間結果、參數設置以及檢測結果的;在界面的右半區,從上到下,依次是全局設置區、控制區、活體檢測結果顯示區以及眨眼檢測子系統的中間結果顯示、參數設定和眨眼檢測結果顯示區。界面上有7個參數可以讓用戶自己設定分別為:
a)minw:人臉檢測的最小窗口尺寸;
b)maxw:人臉檢測的最大窗口尺寸;
c)widthr:關鍵區域右沿距離人臉左沿的距離;
d)hashvt:背景比對結果差異的閾值;
e)thr:區域增長算法的閾值;
f)w:形態學操作的窗口寬;
g)h:形態學操作的窗口高。
這些參數每一次設定都將保存在配置文件config.ini中,如圖7,并且每一個參數都有一個默認值,當點擊“設為默認值”按鈕,即可將參數設為默認值。
下面介紹本系統的主要步驟:
1、打開攝像頭
點擊界面右半區“打開攝像頭”按鈕,系統將打開連接著的攝像頭,并將讀取到的圖像繪制在界面上的視頻圖像區域,如圖8所示,如果攝像頭打開失敗,則會彈出錯誤提示消息框;如果打開成功,則“打開攝像頭”按鈕變不可用,“初始化并啟動活體檢測系統”按鈕變為可用。
2、初始化并啟動活體檢測
攝像頭成功打開后點擊“初始化并啟動活體檢測系統”,彈出消息框,如圖9,由于系統背景在初始化時不允許有人臉遮擋攝像頭,所以給系統管理員3秒鐘確保攝像頭前無人臉遮擋。三秒后系統啟動成功。
3、背景分析
活體檢測系統啟動后即刻開始對視頻流進行分析,如果檢測到人臉,則提取人臉背景區域圖像與對應的系統背景圖像進行比對分析,將兩個圖像顯示在系統界面的同時顯示分析的差異結果,然后根據設定的閾值,給出背景分析的結果,如圖10、圖11所示。
4、眨眼檢測
界面的右半區下半部分是關于眨眼檢測的區域,系統通過對視頻圖像的分析,在人臉上定位出人眼的位置,將人眼圖像灰度值化與二值化并將結果繪制在界面上,如圖12所示,下方還包含一個直方圖,該直方圖是統計形態學處理后的黑色素的個數,當數量低于于紅色線時,認為是閉眼狀態,否則為睜眼狀態,根據狀態序列,判斷是否有眨眼行為,如圖13所示。
5、全局展示
當使用靜態照片放置在攝像頭前時,眨眼檢測與背景分析均不通過,所以活體檢測系統的檢測結果為不通過,如圖14所示;
當使用視頻圖像放置在攝像頭前時,雖然眨眼檢測通過,但背景分析不通過,所以活體檢測不通過,如圖15所示;
當合法用戶站在攝像頭前時,眨眼檢測與背景分析均通過,活體檢測的結果為通過,如圖16所示。
參考文獻:
[1]chellappar,wilsoncl,siroheys.humanandmachinerecognitionoffaces:asurvey[j].proceedingsoftheieee,1995,83(5):705-741.
[2]yanj,zhangz,leiz,etal.facelivenessdetectionbyexploringmultiplescenicclues[c]//internationalconferenceoncontrolautomationrobotics&vision.2012:188-193.
[3]komulainenj,hadida,pietik?inenm,etal.complementarycountermeasuresfordetectingscenicfacespoofingattacks[c]//internationalconferenceonbiometrics.2013:1-7.
[4]buldasa,kroonmaaa,laanojar.keylesssignatures’infrastructure:howtobuildglobaldistributedhash-trees[m]//secureitsystems.springerberlinheidelberg,2013:313-320.
[5]phashpoho.phash.org:homeofphash,theopensourceperceptualhashlibrary[j].phash.
[6]yuilleal,hallinanpw,cohends.featureextractionfromfacesusingdeformabletemplates[j].internationaljournalofcomputervision,1992,8(2):99-111.
[7]dengjy,laif.region-basedtemplatedeformationandmaskingforeye-featureextractionanddescription[j].patternrecognition,1997,30(3):403-419.
[8]mohammedaaa,anwermssa.efficienteyeblinkdetectionmethodfordisabled-helpingdomain[j].internationaljournalofadvancedcomputerscience&applications,2014,5(5).
[9]pereiratdf,komulainenj,anjosa,etal.facelivenessdetectionusingdynamictexture[j].eurasipjournalonimage&videoprocessing,2014,2014(1):2.
[10]kimg,eums,suhrjk,etal.facelivenessdetectionbasedontextureandfrequencyanalyses[c]//iaprinternationalconferenceonbiometrics.ieee,2012:67-72.。