鄧 鋒胡志勇肖偉明鐘衛(wèi)為
(1.武漢郵電科學研究院 武漢 430074)(2.武漢虹信技術(shù)服務(wù)有限責任公司 武漢 430074)
經(jīng)過多年的發(fā)展,人臉識別技術(shù)已經(jīng)廣泛地應用于人們的日常生活當中,例如乘坐高鐵時刷臉進站、在店買東西直接刷臉付款等。而且相對于眾多生物識別技術(shù)而言,人臉識別技術(shù)可以最大可能地做到在不影響人們的情況下就完成了數(shù)據(jù)采集[1~2],所以其可以被人們廣泛接受,這對如何快速準確地從復雜環(huán)境中提取出人臉提出了較高的要求。
當前的人臉檢測技術(shù)可以分為三類:基于幾何特征的人臉檢測方法、基于膚色模型的方法、基于統(tǒng)計理論的方法[3~4]?;趲缀翁卣鞯娜四槞z測方法就是利用人臉的器官在現(xiàn)實生活中表現(xiàn)出來的幾何特征來進行人臉檢測,其中的代表有:基于先驗知識的人臉檢測方法[5]、Leung[6]等提出任意圖匹配的方法、層次模板匹配的方法[7]?;谀w色模型的方法則是利用人的膚色在色度空間表現(xiàn)出來的聚合性來檢測人臉。基于統(tǒng)計理論的方法則是在對大量樣本統(tǒng)計的基礎(chǔ)上來檢測人臉的方法,它主要包含子空間方法、支持向量機方法、神經(jīng)網(wǎng)絡(luò)方法以及Boost方法。
在眾多檢測方法當中,Boost方法具有深厚的理論和實踐的基礎(chǔ),Adaboost則是其中較為成功的代表之一[8],但是其計算量相較于其他算法一般比較大,所以對其的進一步研究具有一定的現(xiàn)實意義。本文中提出了一種膚色分割預處理的方法,將疑似人臉區(qū)域從背景圖片中取出來,減少Adaboost算法需要處理的數(shù)據(jù)量,來達到提速的目的。
作為一種重要的人體特征,通過膚色來將人和背景圖片分割開來一直是一個經(jīng)典課題。經(jīng)過研究表明,在生物和物理上,膚色分布具有一致性[9]。對于不同的人種,從雙色差或者色調(diào)飽和度上來看,膚色的變化差異并不大,但是從亮度上來看,膚色的差異就比較明顯。因此,我們可以利用膚色在色度方面表現(xiàn)的一致性將膚色從周邊的環(huán)境中摳出來,便于進行膚色分割。
由于膚色的差異更多在于亮度而不在于色度,所以可以選擇合適的色度空間建立合適的膚色模型,剔除亮度對于膚色分割的影響。顏色空間有許多種,例如:歸一化的RGB、CIE-XYZ、CIE-Yxy、CMYK、CMY、HSL、HSV、YUV、YCbCr等。由于YCbCr[10]既具有將亮度和色度分離出來的優(yōu)點,又具有計算簡單的特點,因此在本文中,將對圖片進行YCbCr顏色空間的色度空間轉(zhuǎn)換,其公式如下:
其中,Y為亮度,Cb為藍色色度,Cr為紅色色度。
完成色度空間的轉(zhuǎn)換后,我們接下來的工作就是根據(jù)色度的分布將落在膚色色度范圍內(nèi)的點找出了,這里可以建立一個膚色模型。一般情況下,膚色模型可以分為三種:1)統(tǒng)計直方圖模型;2)高斯模型;3)混合高斯模型??紤]到統(tǒng)計直方圖模型的建立需要大量的膚色數(shù)據(jù)、混合高斯模型計算過于復雜,在本文中選取依據(jù)高斯模型來進行膚色分割。在YCbCr色度空間中,高斯模型認為人的膚色的分布是呈現(xiàn)正態(tài)分布的,其概率密度為
由于上一步分割出來的膚色區(qū)域會有一些不連貫性,為了得到更好的效果,我們需要對膚色區(qū)域做一些預處理。具體步驟如下:
1)對膚色連通區(qū)域進行標記,幾位Pi(i=0,…,N);
2)估算每個連通區(qū)域大小,并取平均值B;
3)由公式r= Bπ計算出圓形結(jié)構(gòu)半徑。
LBP[11~13](Local Binary Pattern)是 一 種 局 部 二值模式的算子,它最早由T.Ojala,M.Pietikainen和D.harwood于1994年提出來,用于紋理特征的提取。如今,它廣泛應用于紋理分類領(lǐng)域和人臉識別領(lǐng)域,早已成為這兩個領(lǐng)域重要的特征提取方式之一。其具有旋轉(zhuǎn)不變性和灰度不變性等特點,當它應用于人臉檢測時,可以有效避免光照等因素的影響。提取LBP特征可以分為以下幾個步驟:
1)首先對于一張圖片,我們需要將它劃分為一個一個的小方塊,通常取16*16的小區(qū)域;
2)區(qū)域劃分完成后,是對每個區(qū)域的操作,對位于其中的每個像素點求出它的LBP值。首先,將目標像素相鄰的8個像素的灰度值與其進行比較,若周圍像素值大于中心像素值,則該像素點的位置被標記為1,否則為0。這樣就可以得到一個二進制數(shù),這個二進制數(shù)數(shù)就是我們要得到的LBP值;
3)雖然得到每個像素的LBP值,但是卻不好直接用它來描述圖片的特征,需要對它進行下一步的處理。一般我們會采用統(tǒng)計學的方式,計算出每個小區(qū)域的直方圖,然后對該直方圖進行歸一化處理;
4)最后將每個統(tǒng)計直方圖整合成為一個特征向量,這就是我們需要的整幅圖的LBP紋理特征向量。
為了使用AdaBoot算法訓練出最終的強分類器,需要根據(jù)LBP紋理特征向量建立一些弱分類器。對于每一個弱分類器g(x′,f,θ,p),其可以由一個LBP特征f,判定閾值θ和指示不等式方向的p組成,其公式如下:
其中x′表示待檢測的圖片,f(x′)是對待檢測圖片進行LBP特征提取后所得到的統(tǒng)計直方圖經(jīng)過相似度函數(shù)判斷后的相似度,當相似度滿足我們要求是取值為1,否則為0。
AdaBoot[14~15](Adaptive Boosting)是一種迭代算法。該算法的核心思想是針對同一個訓練集訓練不同的分類器,一般我們稱這些分類器為弱分類器,然后將這些弱分類器按照不同的權(quán)重整合到一起,這樣就構(gòu)成了最終的強分類器。弱分類器的構(gòu)成我們可以采取多種方法,由于我們提取的是圖片的LBP特征,所以我們采用基于LBP特征構(gòu)建的弱分類器,這里AdaBoot算法就相當于一個弱分類器加工廠,通過有限次數(shù)的迭代,最終得到一個在檢測率和誤檢率都表現(xiàn)不錯的最終強分類器。算法具體的過程如下:
1)選取一組訓練樣本(x1,y1),…,(xn,yn)用于分類器的訓練,其中當樣本不是人臉時yn=0,否則yn=1,N則為樣本數(shù)目;
2)為每個樣本授予權(quán)值,第一次我們設(shè)每一個樣本的權(quán)值為1 N;
3)進行迭代,通過弱分類器對樣本集來進行比對。對于每個弱分類器,分別計算出其在樣本集中的分類誤差率,其中hj(xi)表示第j個弱分類器判斷樣本i是否正確,ωi表示第i個樣本的權(quán)值)。取其中誤差率最小的弱分類器為基本分類器G1(x),其在最終分類器中的系數(shù)為
4)為每個樣本從新授予權(quán)值(目的是加大弱分類器Gj(x)識別錯誤的樣本的權(quán)值,降低識別正確樣本權(quán)值),公式如下:
其中ωm+1,i表示第i個樣本在第m+1次迭代中的權(quán)值,;
5)不斷重復步驟3)、4),直到達到指定迭代次數(shù)T,或者檢測準確率、誤差率達到設(shè)計要求;
6)將每次迭代選出的基本分類器整合起來,得到最終的強分類器:
本論文最終在1000張圖片上檢測算法的準確性(812張包含人臉(200張含多人臉),188非人臉圖片),并將它與膚色檢測方法和基于LBP的Adaboost方法做了比較。檢測結(jié)果統(tǒng)計如表1。
表1 人臉集檢測結(jié)果比較
從實驗結(jié)果來看,基于膚色的檢測方法無論是檢測單張人臉還是檢測多張人臉,都具有最高的檢測率和最短的檢測時間,但是由于其較高的誤檢率一直影響著它在實際中的應用。對于Adaboost算法而言,其在檢測率方面的表現(xiàn)也非常令人滿意,而且相較于膚色方法它的誤檢個數(shù)明顯減少了,但是其檢測速度方面表現(xiàn)稍差。本文提出的檢測方法,結(jié)合兩種算法的優(yōu)勢,最終在實驗中表現(xiàn)出較高的檢測率,最關(guān)鍵的是相對于膚色檢測其誤檢率也降低了不少。同時,就檢測時間而言,其相比與Adaboost算法有了明顯的縮短,表明該方法在正面人臉檢測中取得了較好的效果,是一種有效的人臉檢測方法。
本文提出了一種基于LBP算子的Adaboost算法之上改進的算法,通過膚色分割預處理,將疑似人臉區(qū)域提取出來(并未破壞人臉的特征信息),可以有效減少LBP算子的掃描區(qū)域,使整個算法更加關(guān)注于自己需要判斷的數(shù)據(jù),從而提高了處理的效率。實驗結(jié)果表明:該算法可以準確快速地檢測出人臉。