本發(fā)明涉及一種基于adaboost算法的人臉檢測方法,屬于人臉檢測技術(shù)領(lǐng)域。
背景技術(shù):
隨著移動(dòng)互聯(lián)網(wǎng)和智能手機(jī)市場的發(fā)展,android系統(tǒng)作為當(dāng)今整個(gè)世界上最流行的移動(dòng)設(shè)備操作系統(tǒng),在移動(dòng)互聯(lián)的大舞臺上有著更大的發(fā)揮潛質(zhì)。但是對于人臉檢測技術(shù)在移動(dòng)設(shè)備上的移植應(yīng)用很少,基于移動(dòng)設(shè)備上的人臉檢測將會有更大的發(fā)展。
雖然目前的adaboost人臉檢測算法檢測速度很高,但是算法本身訓(xùn)練比較耗時(shí),使得整個(gè)人臉檢測的時(shí)間比較長。因此有必要對傳統(tǒng)的adaboost算法進(jìn)行優(yōu)化。同時(shí),目前現(xiàn)有的基于android平臺的智能手機(jī)普遍采用基于雙眼距離的方法來檢測人臉區(qū)域。在獲取到雙眼距離的前提下,取雙眼距離的中點(diǎn),并利用中點(diǎn)坐標(biāo)與雙眼距離的數(shù)學(xué)運(yùn)算來定位人臉候選區(qū)域。而該雙眼定位算法的局限性在于要求人臉圖像的雙眼是可見的,對于發(fā)生偏轉(zhuǎn)或者雙眼部位有遮擋的人臉圖像,便無法檢測到人臉。
因此,迫切需要設(shè)計(jì)一種基于adaboost算法的人臉檢測方法,克服現(xiàn)有人臉檢測方法存在的上述缺陷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種基于adaboost算法的人臉檢測方法,其結(jié)構(gòu)緊湊,能實(shí)現(xiàn)不同光照強(qiáng)度、人臉圖像發(fā)生偏轉(zhuǎn)或眼睛被遮擋等多種環(huán)境下進(jìn)行人臉檢測,提高了人臉檢測速度和正確率,易于實(shí)施操作,穩(wěn)定可靠。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
一種基于adaboost算法的人臉檢測方法,包括如下步驟:
1)人臉圖像預(yù)處理,包括灰度歸一化、光照補(bǔ)償、濾波去噪和幾何歸一化;
2)在ycbcr顏色空間進(jìn)行膚色分割,包括顏色空間的轉(zhuǎn)換、利用色度模型進(jìn)行膚色分割,篩選出候選人臉區(qū)域;
3)adaboost人臉檢測算法進(jìn)行人臉檢測,利用adaboost算法訓(xùn)練弱分類器,將不同訓(xùn)練集中的弱分類器組合成強(qiáng)分類器,強(qiáng)分類器再串聯(lián)成級聯(lián)分類器;
4)人臉模板匹配,對篩選得到的候選人臉區(qū)域利用加權(quán)歐式距離來度量其與人臉模板的匹配度。
所述的人臉圖像預(yù)處理的灰度歸一化采用直方圖來均衡化,統(tǒng)計(jì)輸入圖像的光亮度直方圖分布,并對圖像灰度范圍進(jìn)行重新設(shè)置,使得圖像的灰度分布范圍盡可能的包含所有的灰度級,去除其中占絕對優(yōu)勢或劣勢的灰度級范圍,從而降低光照對于灰度圖像處理過程中的影響。同時(shí),采用中值濾波進(jìn)行濾波去噪,即找出某個(gè)像素點(diǎn)的領(lǐng)域內(nèi)像素點(diǎn)的灰度值的中值,并利用中值替代該像素點(diǎn)的灰度值。以此來濾出掉圖像中灰度值相對孤立異常的點(diǎn),這樣便能有效濾除圖像中的噪聲點(diǎn)。
膚色分割是基于ycbcr顏色空間的,將rgb空間轉(zhuǎn)換為ycbcr顏色空間如下式所示:
對于人體的膚色范圍分布,cb主要集中于[100,127]內(nèi),而cr主要集中于[138,170]內(nèi)。這樣處理之后的圖像,膚色范圍內(nèi)為白色,而非膚色區(qū)域和其他背景均為黑色。
膚色分割得到的人臉區(qū)域,存在的一些小噪聲點(diǎn)和斷裂的連通區(qū)域進(jìn)行腐蝕、膨脹和填充等形態(tài)學(xué)處理,從而得到比較平滑的連通區(qū)域的過程,以此來消除干擾。
人臉區(qū)域經(jīng)過一系列的形態(tài)學(xué)處理之后,仍然存在著一些比較明顯的非人臉區(qū)域,例如與人臉膚色一致的手、胳膊和腿等部位。因此需要進(jìn)一步根據(jù)膚色連通區(qū)域的面積和外界矩形的長寬比來進(jìn)行篩選。最為合理的人臉的長寬比為
adaboost人臉檢測算法是基于haar特征值,經(jīng)典的haar特征模板如圖2所示。haar特征的特征值等于上述矩形特征中白色像素值之和減去黑色像素值之和,因?yàn)橹簧婕暗较袼刂档募訙p運(yùn)算,因此計(jì)算的過程是比較簡單的。同時(shí),haar特征能較好地描述人臉灰度分布情況。
haar特征的總數(shù)由于haar特征模板在圖像窗口內(nèi)的位置和尺寸都是任意的,所以一般都比較大,需要利用積分圖來降低計(jì)算的復(fù)雜度。如式(2)所示:點(diǎn)(a,b)的積分值等于該區(qū)域的像素點(diǎn)之和。其中,i(a’,b’)為(a’,b’)坐標(biāo)處的像素值,s(a,b)表示行積分和。同時(shí),積分圖定義滿足式(3)和式(4)所表示的迭代關(guān)系。
s(a,b)=s(a-1,b)+i(a,b)(3)
ii(a,b)=ii(a-1,b)+s(a,b)(4)
所述的adaboost人臉檢測算法將不同訓(xùn)練集中的弱分類器組合起來成為強(qiáng)分類器,再將多個(gè)強(qiáng)分類器級聯(lián)得到檢測率更高、檢測速度更快的級聯(lián)分類器。
所述的人臉模板匹配采用加權(quán)歐式距離來度量候選人臉區(qū)域和平均人臉模板的相似程度。同時(shí)需要找到合適尺寸的人臉模板,并對其做相關(guān)的標(biāo)準(zhǔn)化處理。最終得到的加權(quán)歐式距離值越小,表示候選人臉區(qū)域和標(biāo)準(zhǔn)人臉模板匹配程度越高。
本發(fā)明的創(chuàng)新點(diǎn):在采用adaboost人臉檢測算法進(jìn)行人臉檢測之前,對人臉圖像進(jìn)行包括灰度歸一化、光照補(bǔ)償、濾波去噪和幾何歸一化等一系列預(yù)處理過程。在基于ycbcr顏色空間進(jìn)行膚色分割,快速巧妙地過濾掉大部分的非人臉膚色的背景區(qū)域,縮小了人臉候選區(qū)域以供進(jìn)一步檢測,一定程度上提高了人臉檢測的速度。緊接著采用adaboost人臉檢測算法,克服了只采用膚色分割檢測帶來的誤檢率高的缺陷,從而達(dá)到更高的檢測率和檢測速度。最后,對候選出的人臉區(qū)域進(jìn)行標(biāo)準(zhǔn)人臉模板匹配,對經(jīng)過處理得到的候選人臉區(qū)域利用加權(quán)歐式距離來度量與人臉模板的匹配度。本發(fā)明可以在不同光照強(qiáng)度下,人臉圖像發(fā)生偏轉(zhuǎn)或眼睛被遮擋等多種環(huán)境下進(jìn)行人臉檢測,提高了人臉檢測速度和正確率,易于實(shí)施操作,穩(wěn)定可靠。
附圖說明
圖1為本發(fā)明人臉檢測結(jié)構(gòu)框圖。
圖2為本發(fā)明經(jīng)典haar特征模板圖。
圖3為本發(fā)明adaboost算法流程圖。
圖4為本發(fā)明級聯(lián)分類器結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合具體附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明,以下實(shí)施例旨在說明本發(fā)明而不是對本發(fā)明的進(jìn)一步限定。
如圖1所示:人臉檢測方法主要包括四部分:人臉圖像預(yù)處理、膚色分割、adaboost人臉檢測和人臉模板匹配。其中人臉圖像預(yù)處理主要包括灰度歸一化、光照補(bǔ)償、濾波去噪和幾何歸一化等一系列過程;膚色分割是基于ycbcr顏色空間的,縮小人臉候選區(qū)域以待進(jìn)一步檢測;adaboost人臉檢測算法進(jìn)一步提高了人臉檢測率和檢測速度;最后的模板匹配完成最后的人臉區(qū)域判定,使得多種復(fù)雜環(huán)境下的人臉都能夠被檢測出來。
具體地,本發(fā)明人臉檢測方法包括如下步驟:
步驟s1、人臉圖像預(yù)處理:
1)直方圖均衡化進(jìn)行人臉圖像灰度歸一化,對人臉圖像進(jìn)行直方圖歸一化就是統(tǒng)計(jì)輸入圖像的光亮度直方圖分布,對圖像灰度范圍進(jìn)行重新設(shè)置,使得圖像的灰度分布范圍盡可能的包含所有的灰度級,去除其中占絕對優(yōu)勢或劣勢的灰度級范圍,從而降低光照對于灰度圖像處理過程中的影響。
2)采用中值濾波方式進(jìn)行濾波去噪,其具體流程如下:
(1)設(shè)定一個(gè)n*n的模板,并在圖像中進(jìn)行行或者列方向的滑動(dòng),同時(shí)將該模板的中心與要處理的圖像的一個(gè)像素點(diǎn)位置相重合。
(2)依次讀取該n*n模板中每個(gè)像素點(diǎn)的灰度值。
(3)對讀取到的像素點(diǎn)的灰度值進(jìn)行從小到大的排序,并選擇出其中心位置的灰度值。
(4)選擇出來的灰度值代替該模板中心位置的像素點(diǎn)的灰度值。
3)人臉圖像幾何歸一化,包括圖像旋轉(zhuǎn)、圖像剪切和圖像縮放。其中圖像旋轉(zhuǎn)是指使人臉上雙眼連線與水平夾角為零,把原始圖像中的人臉圖像進(jìn)行平面內(nèi)的旋轉(zhuǎn)處理;圖像剪切是指根據(jù)人臉的位置及人臉雙眼距離來剪切圖像,來保證人臉的位置的一致性,或是根據(jù)人臉圖像尺度要求獲取人臉部分,此方法可以在一定程度上克服背景對檢測過程中的干擾;圖像縮放是指把原始圖像縮放到統(tǒng)一的像素大小。
在圖像處理中比較常見的顏色空間包括rgb、yuv、yiq、hsv和ycbcr等,ycbcr顏色空間是電視、高級攝像機(jī)與播放器中普遍采用的編碼方式,其色彩模型與人類對色彩的感知比較類似,因此ycbcr顏色空間常被用來實(shí)現(xiàn)膚色的聚類算法。其中cb分量是藍(lán)色b與亮度y的差,而b分量占膚色的實(shí)際比重相對較小。
對于采集到的人臉彩色圖像,從rgb空間轉(zhuǎn)換為ycbcr顏色空間如下式所示:
步驟s2、膚色分割步驟:
1)對于采集到的原始圖像,膚色分割算法首先將其從rgb顏色空間轉(zhuǎn)換到y(tǒng)cbcr顏色空間,同時(shí)為了簡化計(jì)算,將亮度y分量量化。同時(shí)選用簡單的色度空間模型來降低計(jì)算復(fù)雜度。經(jīng)過統(tǒng)計(jì)發(fā)現(xiàn),對于人體的膚色范圍分布,cb主要集中于[100,127]內(nèi),而cr主要集中于[138,170]內(nèi)。這樣處理之后的圖像,膚色范圍內(nèi)為白色,而非膚色區(qū)域和其他背景均為黑色。
2)人臉區(qū)域篩選
人臉區(qū)域篩選指對人臉圖像進(jìn)行膚色分割之后,存在的一些小噪聲點(diǎn)和斷裂的連通區(qū)域進(jìn)行腐蝕、膨脹和填充等形態(tài)學(xué)處理,從而得到比較平滑的連通區(qū)域的過程,以此來消除干擾。
通過上述的形態(tài)學(xué)處理之后,仍然存在著一些比較明顯的非人臉區(qū)域,例如與人臉膚色一致的手、胳膊和腿等部位。因此需要進(jìn)一步根據(jù)膚色連通區(qū)域的面積和外界矩形的長寬比來進(jìn)行篩選。
(1)區(qū)域長寬比設(shè)定
最為合理的人臉的長寬比為
0.8<ε<2.4(2)
(2)區(qū)域面積大小設(shè)定
圖像中選定的人臉區(qū)域面積不能過小,需要滿足以下兩個(gè)條件:一是連通區(qū)域的像素點(diǎn)的個(gè)數(shù)num如式3,二是連通區(qū)域面積s與外接矩形面積s_sq的比值如式4。
20×20<mum(3)
0.55<s/s_sq(4)
因此對于得到的連通區(qū)域只有滿足式2~4三個(gè)條件才能夠被候選為人臉區(qū)域。第一個(gè)條件用作去除非人臉的手、胳膊和腿部等區(qū)域的干擾,第二個(gè)條件用作去除細(xì)小噪聲或背景的干擾,第三個(gè)條件用作去除不規(guī)則區(qū)域的干擾。
步驟s3、adaboost人臉檢測算法候選人臉區(qū)域步驟:
如圖3所示,adaboost算法應(yīng)用于人臉檢測,是通過計(jì)算人臉haar積分圖特征,再通過多層的級聯(lián)分類器來進(jìn)行人臉檢測的,主要包括以下幾個(gè)過程:
1)選擇正樣本和負(fù)樣本,提取haar特征,表示成積分圖的形式
對于一個(gè)高度為h,寬度為w的圖像,具體的迭代算法步驟如下:
(1)初始化變量,賦值(-1,0)處的積分值ii(-1,0)=0
(2)迭代運(yùn)算,fori=0,1,...,h-1
(a)中間變量s=0
(b)forj=0,1,...,w-1,計(jì)算第i行開始位置到位置j的行像素之和s=s+i(j,i),然后就可以得到(j,i)處的圖像積分值ii(j,i)=ii(j-1,i)+s
2)訓(xùn)練弱分類器,并為每個(gè)haar特征都訓(xùn)練一個(gè)弱分類器
3)循環(huán)并多次判斷人臉類型,更新每個(gè)弱分類器的權(quán)值,提取出誤檢率最小的弱分類器,并將這些弱分類器組合成強(qiáng)分類器
4)強(qiáng)分類器串聯(lián)組合成級聯(lián)分類器,得到最終的分類器
弱分類器的數(shù)學(xué)形式定義如式5所示:
其中,x表示矩形特征的類型,f(x)表示haar特征值,θ表示區(qū)分正負(fù)樣本的閾值,p表示不等號的方向,取值±1。得到弱分類器之后,再按照一定的原則將弱分類器組合成強(qiáng)分類器。對于給定一個(gè)訓(xùn)練圖像(xi,yi),i=1,2,...,n代表訓(xùn)練集圖像的數(shù)目,yi={0,1}分別代表負(fù)訓(xùn)練樣本和正訓(xùn)練樣本類別,wm,i表示第m輪訓(xùn)練第i個(gè)訓(xùn)練集圖像的權(quán)值,其具體的算法如下:
(1)初始化訓(xùn)練樣本的權(quán)值,將其賦值為訓(xùn)練集圖像個(gè)數(shù)的倒數(shù),k為訓(xùn)練集圖像數(shù)目:
(2)第m輪訓(xùn)練時(shí),form=1,2,...,m,m為訓(xùn)練輪數(shù)
(a)歸一化樣本權(quán)重:
(b)每一種矩形特征x,選擇分類誤差最小的分類器ht(x),對應(yīng)的分類誤差為εt
(c)對樣本的權(quán)值進(jìn)行更新
(3)最終的強(qiáng)分類器為,其中t為訓(xùn)練輪數(shù):
然而,單一的強(qiáng)分類器具有比較高的誤檢率,因此需要將多個(gè)強(qiáng)分類器串聯(lián)起來組成級聯(lián)分類器,如圖4所示。
步驟s4、人臉模板匹配步驟:
對于候選出的人臉區(qū)域,采用加權(quán)歐式距離來度量候選人臉區(qū)域和平均人臉模板的相似度。首先選取訓(xùn)練圖像集中的人臉樣本圖像,依據(jù)人臉模板的生成規(guī)則和方法,建立平均人臉模板。再選擇合適尺寸的人臉模板,對其進(jìn)行相關(guān)的標(biāo)準(zhǔn)化處理。
標(biāo)準(zhǔn)人臉模板灰度均值通過式6得到,候選人臉區(qū)域和標(biāo)準(zhǔn)人臉模板之間的加權(quán)歐式距離通過式7得到。加權(quán)歐式距離的值越小,表示候選人臉區(qū)域和標(biāo)準(zhǔn)人臉模板匹配程度越高。
其中,a表示候選人臉灰度矩陣,b表示標(biāo)準(zhǔn)人臉模板灰度矩陣,u和v分別為矩陣的行數(shù)和列數(shù),apq、bpq分別為候選人臉灰度矩陣a和人臉模板灰度矩陣b的第p行q列位置上的元素值,加權(quán)系數(shù)的公式如式8所示。
對于候選的人臉區(qū)域,分為多個(gè)候選人臉窗口,對每個(gè)候選人臉窗口分別計(jì)算該窗口與人臉模板的加權(quán)歐式距離,如果得到的加權(quán)歐式距離小于閾值,則將該子窗口加入人臉區(qū)域,否則的話確定為非人臉區(qū)域,自動(dòng)檢測下一個(gè)子窗口,直到所有的子窗口都遍歷一遍。
綜上所述,僅是本發(fā)明的較佳實(shí)施例,并非對本發(fā)明作任何限制,凡是根據(jù)本發(fā)明技術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、變更以及等效結(jié)構(gòu)變化,均仍屬于本發(fā)明技術(shù)方案的保護(hù)范圍內(nèi)。