程 鴻 芳
(蕪湖職業(yè)技術學院, 安徽 蕪湖 241000)
人臉識別也叫人像識別、面部識別,這是基于人的臉部特征信息進行身份識別的一種生物識別技術。它是用攝像機采集含有人臉的圖像或視頻流,然后借助于一系列算法和相關技術,自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別[1]。本次研究,提出了一種基于視頻分析的偽裝人臉檢測系統(tǒng)。
對進行了偽裝的人臉的檢測,包含圖像采集、傳輸、存儲、處理和顯示等環(huán)節(jié)[2]。首先通過攝像頭實時采集視頻,然后對實時采集到的圖像幀進行檢測和識別;顯示終端將處理后的圖像顯示在屏幕上,以供監(jiān)控;圖像輸出端存儲檢測到的偽裝圖片,以便查看和分析。該系統(tǒng)以Win7為操作系統(tǒng),以C++作為編譯語言,以OpenCV為視覺庫。
偽裝人臉檢測系統(tǒng)有用戶檢測模塊、墨鏡偽裝檢測模塊、口罩偽裝檢測模塊和帽子偽裝檢測模塊。用戶檢測模塊檢測當前視頻中是否存在人像,如果存在人臉,則通過背景差分法[3]和連續(xù)幀間差分法[4]進行人臉定位。墨鏡偽裝檢測模塊通過訓練好的墨鏡篩選式級聯(lián)分類器[5],快速提取出可能存在的墨鏡偽裝,通過Gabor濾波剔除墨鏡誤報。帽子偽裝檢測模塊利用篩選式級聯(lián)分類器,提取視頻中可能存在帽子偽裝的區(qū)域,并通過K均值聚類,識別存在的帽子偽裝并進行報警??谡謧窝b檢測模塊通過訓練好的口罩篩選式級聯(lián)分類器,快速提取圖像中可能存在口罩偽裝的區(qū)域,利用膚色在圖像中的比例,判斷該區(qū)域是否為真正的口罩偽裝。
對人臉偽裝的檢測,第一步是檢測視頻中是否存在人像。攝像頭實時采集的視頻信息有動態(tài)的和靜止的,故采用背景差分法和連續(xù)幀間差分法[6-7]來檢測。
幀間差分對動態(tài)環(huán)境有很強的自適應性。通過連續(xù)幀間差分對人臉信息進行粗略檢測,圖像濾波處理幀差圖像。采用背景減法將當前圖像和背景圖像做差分,設置合理的閾值,二值化處理圖像,突出人臉圖像,完成人臉定位。
Step1:從視頻中提取連續(xù)的20幀圖像,對序列圖像進行高斯平滑預處理,去掉圖像隨機噪聲。
Step2:在視頻圖像序列中選取連續(xù)的20幀圖像,做絕對差值圖像。設n幀圖像序列,表示為{f1(x,y),…fl(x,y),…fn(x,y),其中n=20},分別計算連續(xù)的兩幀圖像的絕對差值:
d(20,19)(x,y)=|f20(x,y)-f19(x,y)|
d(19,18)(x,y)=|f19(x,y)-f18(x,y)|
………
d(2,1)(x,y)=|f2(x,y)-f1(x,y)|
20幀絕對差值圖像的均值:
∑D=d(20,19)(x,y)+d(19,18)(x,y)+…+
d(2,1)(x,y)
Step3:中值濾波處理幀差圖像。
Step4:根據(jù)公式進行背景差分,得到背景差分后的二值圖像。
背景差分圖像
Dk(x,y)=|Pk(x,y)-Pb(x,y)|
二值圖像
適當選取閾值M。當被分割圖像的像素小于M時,認為該點像素是背景像素;當被分割圖像像素大于M時,將該點像素看作人臉像素[5]。
人臉檢測包含4個關鍵點:將矩形圖像區(qū)域的Haar特征作為方法的輸入;使用積分圖像技術加速Haar輸入特征的計算;使用AdaBoost機器學習方法,創(chuàng)建兩類分類器問題的弱分類器節(jié)點;將弱分類器節(jié)點組成篩選式級聯(lián)組合[8]。
2.2.1 Harr特征提取
提取人臉的Haar-like特征。計算Haar特征的方法有很多種,選用Paul Viola提取積分圖快速運算特征。
積分圖的定義:
其中,位置(x,y)上對應的積分圖中的像素,為該位置的左上角所有的像素之和。
遞歸計算:
s(x,y)=s(x,y-1),ii(x,y)=(x-1,y)
其中,s(x,-1)=0,ii(-1,y)=0
2.2.2 AdaBoost分類方法
AdaBoost算法是通過N個簡單的、精度比較隨機的、猜測略好的弱分類器(弱學習規(guī)則h1,…,hN)來構造出一個高精度的強分類器。
以X表示樣本空間,若是二值分類問題,則Y={-1,+1}。令S={(xi,yi)|i=1,2,3,…,m}為訓練樣本集合,其中xi∈X,yi∈Y。
Step1:初始化樣本權值。給m個樣本賦相同的權值,即Dt(i)=1m。Dt(i)表示第t輪迭代中賦予樣本(xi,yi)的權值(t=1,2,3,…,T,T為迭代的次數(shù))。
Step2:根據(jù)樣本分布Dt,通過對訓練集S進行抽樣,產(chǎn)生子訓練集St。
Step3:在訓練集St上訓練分類器ht。
Step4:用分類器ht對S中的所有樣本分類,得到本次的分類器ht:X→Y。計算錯分樣本的權重和(εt)。令αt=12ln[(1-εt)εt],則
其中,Zi為正則因子。令∑iDi+1(i)=1。
Step2、Step3、Step4循環(huán)T次。最終結果為
H(x)=1,表示人臉區(qū)域存在偽裝。H(x)=-1,表示人臉區(qū)域不存在偽裝。
實際應用中有一個強分類器是無法滿足的,需要將所有分類器按一定的方法組合訓練出強分類器。每個節(jié)點都由AdaBoost分類器組成,每個分類器對應一個Haar特征。經(jīng)過最后一個節(jié)點的判別后,幾乎所有的無偽裝區(qū)域都被拒絕,只剩下偽裝區(qū)域。篩選式級聯(lián)分類器的節(jié)點個數(shù)設置,關系到系統(tǒng)的錯誤率和識別率。實踐中,可將分類器的節(jié)點個數(shù)設定為20。
采集的訓練樣本,存在偽裝區(qū)域的為正樣本,不屬于正樣本的則為負樣本。樣本采集過程中需要注意:(1) 保證樣本背景和光照的多樣性;(2) 正樣本要包含適量的背景和噪聲;(3) 負樣本要保證有足夠的多樣性;(4) 正負樣本的數(shù)量比例要適當。實驗中,將正負樣本的數(shù)量比例設置為1∶3(見表1)。
表1 訓練樣本
實驗采用的視頻為自拍視頻,模擬銀行ATM機的視頻。視頻數(shù)據(jù)如表2所示。通過基于Haar特征的篩選式級聯(lián)分類器進行偽裝檢測,能夠檢測識別出視頻中大部分的偽裝人臉。測試結果如表3所示。其中,偽裝檢測率=檢測識別出的偽裝人數(shù)視頻中存在的偽裝總人數(shù);誤報率=誤報的總人數(shù)測試視頻出現(xiàn)的總人數(shù);漏報率=1-偽裝檢測率。
表2 采集的視頻數(shù)據(jù)
表3 實驗測試結果
設計的基于視頻分析的偽裝人臉檢測系統(tǒng),包括用戶人臉檢測、墨鏡偽裝檢測、口罩偽裝檢測和帽子偽裝檢測4個模塊,綜合運用了連續(xù)幀差分法和背景差分法。與單純運用幀間差分法的做法相比,該檢測系統(tǒng)可以在不增加計算量的基礎上,獲得更好的人臉定位效果,削減了環(huán)境因素和噪聲的影響。該檢測系統(tǒng)涉及的算法主要是連續(xù)圖像幀差求和及求平均,算法簡單,時效高,易于實現(xiàn),適合銀行ATM機的硬件環(huán)境?;贖aar特征的篩選式級聯(lián)分類器進行偽裝人臉檢測,由于AdaBoost分類器的自適應性較強,不需要弱學習器的先驗知識,因此更容易付諸實踐。