王韜,胡紫薇,王曄
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
人臉檢測(cè)的目標(biāo)是在圖像中快速準(zhǔn)確地定位出人臉的位置,大致可以分為以下幾類(lèi),艾海舟、梁路宏等人[1]提出的基于膚色和模板的人臉檢測(cè)方法,首先對(duì)圖像進(jìn)行膚色分割提取出其中的膚色區(qū)域,再對(duì)膚色區(qū)域使用模板匹配和人工神經(jīng)網(wǎng)絡(luò)進(jìn)行驗(yàn)證。對(duì)于灰度圖像無(wú)法進(jìn)行膚色分割的,梁路宏等人[2]提出了基于多關(guān)聯(lián)模板的檢測(cè)方法,首先用雙眼的模板匹配做粗篩選,再使用模板匹配做精篩選,最后通過(guò)經(jīng)驗(yàn)?zāi)P团卸ê蜻x區(qū)域是否是人臉。姜軍、張桂林[3]也提出了一種基于先驗(yàn)知識(shí)的人臉檢測(cè)方法,主要利用了人臉的生理結(jié)構(gòu)特征,提取人臉圖像的灰度和邊緣信息,使用鑲嵌圖(馬賽克圖)根據(jù)足夠多的人臉樣本建立的完備庫(kù)做分析,以達(dá)到對(duì)目標(biāo)區(qū)域的判別。崔曉青[4]則提出了改進(jìn)的AdaBoost 人臉檢測(cè)算法,這類(lèi)方法主要基于對(duì)人臉的特征提取并聯(lián)合機(jī)器學(xué)習(xí)的分類(lèi)器工作,算法會(huì)依據(jù)某類(lèi)特定的特征子,如AdaBoost 算法主要使用Haar 特征,并將多個(gè)弱分類(lèi)器組合成為一個(gè)能夠辨別人臉的強(qiáng)分類(lèi)器。江偉堅(jiān)[5]同樣采用了類(lèi)似的方法,改進(jìn)了Haar-Like 算子,并分別訓(xùn)練了正臉和側(cè)臉的級(jí)聯(lián)分類(lèi)器,獲得了不錯(cuò)的效果。另外,還有基于統(tǒng)計(jì)模型的人臉檢測(cè)方法,陳建華[6]則提出了一種在灰度圖上使用高斯模型檢測(cè)人臉的方法。最后,還有一類(lèi)算法以機(jī)器學(xué)習(xí)的原理為核心,馬勇、丁曉青[7]提出了一種基于層次型支持向量機(jī)的正面直立人臉檢測(cè)方法,使用了一個(gè)線性的支持向量機(jī)和一個(gè)非線性的支持向量機(jī)聯(lián)合工作,前者做粗檢測(cè),后者做精檢測(cè)。王魯許[8]則使用了基于神經(jīng)網(wǎng)絡(luò)的人臉檢測(cè)方法。
本文對(duì)傳統(tǒng)的基于膚色分割和人臉模板匹配的檢測(cè)方法做出了系列改進(jìn),旨在于提升此流程的人臉檢測(cè)精度。在膚色分割階段提出一種改進(jìn)的自適應(yīng)二值化方法,以盡可能的將圖像中的膚色區(qū)域提取出來(lái),在之后的連通域分析階段提出了一種基于能量分布的分析策略,進(jìn)一步篩除低概率的人臉區(qū)域,最后模板匹配階段使用了多尺度的模板匹配以獲取更精確的人臉位置,并提出了一種聯(lián)合的相似度判別法。
人臉的膚色在數(shù)字圖像中符合高斯分布,為建立膚色的高斯模型,首先需要收集膚色樣本,對(duì)這些樣本的統(tǒng)計(jì)分析以獲得該高斯模型的參數(shù)。為減輕光照影響將RBG 圖像轉(zhuǎn)換到Y(jié)CbCr 色彩空間。其中Y 是亮度分量,Cb 和Cr 分別是藍(lán)色色度分量和紅色色度分量,從RBG 轉(zhuǎn)換到Y(jié)CbCr 空間的關(guān)系式為:
本文直接采用了加利福尼亞大學(xué)信息與計(jì)算機(jī)科學(xué)學(xué)院提供的膚色像素?cái)?shù)據(jù)集[9],該膚色數(shù)據(jù)集總共包含了50859 個(gè)膚色樣本,包括了各類(lèi)人種以及不同條件下的膚色。該數(shù)據(jù)集合轉(zhuǎn)換至YCbCr 域后在CbCr平面的統(tǒng)計(jì)如圖1 所示。
圖1 膚色數(shù)據(jù)集分布
由圖1 可以看出膚色在CbCr 平面具有良好的聚集特性。已知二維高斯分布的聯(lián)合概率密度為式(2)。
其中μ1、μ2、σ1、σ2分別是隨機(jī)變量x 和y 的均值和方差,ρ 則是x 和y 的相關(guān)系數(shù),表示為:
其中E 表示均值,D 表示方差。由此,根據(jù)x,y 的均值和方差即可得到構(gòu)建的關(guān)于x 和y 的聯(lián)合概率密度模型。于是,以圖1 中Cb 和Cr 為隨機(jī)變量建立膚色高斯模型,如圖2 右所示。
由2 圖中可以看出高斯模型很好地表達(dá)了膚色樣本在CbCr 平面的分布狀態(tài)。如圖3 展示了由膚色高斯模型處理得到膚色似然圖,每個(gè)點(diǎn)的值代表了該點(diǎn)是膚色的概率,可以看出模型很好地區(qū)分了膚色區(qū)域和非膚色區(qū)域。
圖2
圖3
獲得了膚色似然圖之后需要確定一個(gè)閾值以區(qū)分膚色和非膚色區(qū)域。閾值選擇的太小則會(huì)造成大量的非膚色區(qū)域被選中,導(dǎo)致粗檢測(cè)精度太低。閾值太大則可能導(dǎo)致真正的人臉區(qū)域未被判定為膚色區(qū)域。從圖3 中也可以看出不同的人臉在不同光照下的膚色似然圖強(qiáng)度有很大差距。
設(shè)計(jì)自適應(yīng)的二值化方法,基于以下假設(shè):
(1)圖片內(nèi)的膚色區(qū)域和非膚色區(qū)域的似然值存在較大差異
(2)圖片內(nèi)的膚色區(qū)域和非膚色區(qū)域似然值有較好的聚類(lèi)特性,即對(duì)于兩個(gè)區(qū)域的點(diǎn)而言,它們各自的似然值是比較接近的,方差較小。
我們期望膚色區(qū)域的均值和非膚色區(qū)域的均值差異盡量大,而二者各自的方差盡可能小。根據(jù)此原理王金庭等人[10]提出了Fisher 函數(shù)(式5)作為選擇閾值t的標(biāo)準(zhǔn):
式中skinNum 表示膚色像素的數(shù)目,w 和h 分別為圖像的寬和高。為抵消(5)式更傾向于分配少量膚色區(qū)域的影響,本文在(6)式中增加了兩個(gè)因子,以控制膚色區(qū)域被提取出來(lái)的面積。大部分情況下膚色區(qū)域和背景色之間差異很大,這時(shí)使用(6)式的膚色提取就會(huì)更準(zhǔn)確。
圖4
圖4 是根據(jù)(6)式策略實(shí)現(xiàn)的自適應(yīng)二值化,可以看到即使似然圖中的膚色區(qū)域強(qiáng)度很低,該方法依然可以很好地將其提取出來(lái)。本文還對(duì)固定閾值分割、(5)、(6)三種方案做了對(duì)比實(shí)驗(yàn)。對(duì)比實(shí)驗(yàn)使用了Wei Ren Tan[11]的膚色數(shù)據(jù)集如圖5 所示。
本文對(duì)這三種方法的對(duì)比實(shí)驗(yàn)使用了3 種參數(shù),Recall(查全率)、Precision(查準(zhǔn)率)和IOU(交并比)。圖6 說(shuō)明了這三個(gè)參數(shù)的含義。
對(duì)于固定閾值的二值化方法,本文測(cè)試了由0 到0.8 區(qū)間,間隔0.02 的所有閾值在膚色數(shù)據(jù)集上的表現(xiàn),結(jié)果如圖7 所示。IOU 參數(shù)作為Recall 和Precision 的綜合,本文主要以IOU 比例為參考,對(duì)于固定閾值而言,選定IOU 最高的作為最佳閾值。
圖5 膚色數(shù)據(jù)集
圖6 測(cè)試參數(shù)
圖7 不同閾值的二值化結(jié)果
三種方法的對(duì)比結(jié)果如表1 所示??梢钥闯霰疚牡母倪M(jìn)方法在IOU 和Precision 項(xiàng)目都得到了比較好的成績(jī),固定閾值二值化方法則Precision 值較低,說(shuō)明其誤檢率很高。而(5 式)的方法則在各方面都差一些。
表1 三種二值化方法對(duì)照
二值化后的圖片中包含了很多大小不一的連通域,要對(duì)這些連通域做進(jìn)一步的篩查,然后求取其外接矩形以確定粗檢測(cè)的范圍。篩選規(guī)則包括以下幾條:
(1)去除面積較小的連通域
(2)去除外接矩形橫縱比不合適的連通域(人臉的橫縱比大約為1:1,由于是粗篩選,連通域的橫縱比本文采用0.6-1.2)
圖8 形態(tài)學(xué)處理
基于以上兩條篩選規(guī)則已經(jīng)可以篩除大部分非人臉區(qū)域,但存在如圖8 這樣的特殊情況,會(huì)使得這樣的篩選結(jié)果較差??梢钥闯鯽、b 屬于將背景識(shí)別為了皮膚,c、d 屬于兩個(gè)人臉太靠近發(fā)生了粘連,這兩種情況都會(huì)對(duì)下一步的精檢測(cè)造成不利影響,對(duì)于圖8 中的a情況,解決方案是:提取出來(lái)的膚色區(qū)域中,人臉區(qū)域應(yīng)當(dāng)是接近于矩形的塊狀區(qū)域,那么可能包含人臉的連通區(qū)域應(yīng)當(dāng)滿(mǎn)足以下條件:
其中s 表示聯(lián)通域的面積,rectangleArea 表示連通域外接矩形的面積,ρ 為一個(gè)經(jīng)驗(yàn)值,本文取0.6。這一判定條件可以有效的去除類(lèi)似圖9 所示的非人臉區(qū)域。對(duì)于c、d 情況,解決的思路是:對(duì)外接矩形的區(qū)域不斷地做形態(tài)學(xué)的腐蝕處理,直到該區(qū)域內(nèi)原來(lái)的連通域出現(xiàn)斷連,即原來(lái)的只有一個(gè)連通域的區(qū)域內(nèi)由于做了腐蝕而出現(xiàn)了多個(gè)連通域,再分別判定這兩個(gè)連通域是不是可能的人臉區(qū)域(判定的規(guī)則已有前文給出)符合要求的話(huà)就做形態(tài)學(xué)的膨脹處理以補(bǔ)償腐蝕造成的損失。對(duì)于不符合要求的則直接拋棄。當(dāng)然可能一直做腐蝕處理都沒(méi)有分裂出多個(gè)連通域,那么直到連通域被腐蝕為0 就拋棄這個(gè)聯(lián)通域。算法的實(shí)現(xiàn)效果見(jiàn)圖10。
圖9 非人臉連通域的外接矩形(虛線)
圖10 改進(jìn)的連通域分析
經(jīng)過(guò)了膚色檢測(cè)以及連通域分析之后我們已經(jīng)初步得到了人臉檢測(cè)的區(qū)域。但這些區(qū)域中有非人臉部分,為了獲得更準(zhǔn)確的人臉定位,還需要對(duì)這些可能的區(qū)域做人臉的精檢測(cè),本文采用的是模板檢測(cè)。
本文采用了英國(guó)劍橋Olivetti 研究實(shí)驗(yàn)室創(chuàng)建的ORL 人臉數(shù)據(jù)集構(gòu)建平均人臉模板。數(shù)據(jù)集的部分圖像如圖11 所示。從該數(shù)據(jù)集中選擇40 個(gè)人的正臉圖像,首先對(duì)這些圖像做灰度直方圖標(biāo)準(zhǔn)化,以使得它們之間的灰度分布統(tǒng)一,減少光照色度的影響。之后再對(duì)這些圖像做平均就得到了人臉模板。
圖11 ORL數(shù)據(jù)集
灰度直方圖均衡化是指對(duì)原始圖像做式(8)的變換:
其中,σ0、μ0分別是圖像的方差和均值,σˉ、μˉ則表示標(biāo)準(zhǔn)的灰度直方圖方差和舉止。本文中,σˉ、μˉ為所有圖像的方差、均值的平均。圖12 就是制作的平均人臉模板。
圖12 平均人臉模板
本文所設(shè)計(jì)的人臉檢測(cè)系統(tǒng)在初始階段將會(huì)把輸入圖片統(tǒng)一到250×250 像素。粗檢測(cè)獲得了圖像中的膚色區(qū)域,精檢測(cè)通過(guò)設(shè)置一系列尺寸的模板和區(qū)域的子窗口圖像逐一匹配,選取相似度最高的一個(gè)窗口,檢查其相似度是否超過(guò)經(jīng)驗(yàn)閾值,作為判定為人臉的依據(jù)。
本文設(shè)計(jì)了一種對(duì)人臉模板的縮放規(guī)則:人臉模板的尺度空間和待搜索區(qū)域(粗檢測(cè)區(qū)域高h(yuǎn),寬w)的尺寸相關(guān)。這種關(guān)聯(lián)規(guī)則為:
(1)人臉模板的橫縱比盡可能保持不變
(2)人臉模板的高bh 和寬bw 由式(9)確定
其中ra 為一系列值,間隔一般為0.1,由式(9)說(shuō)明,人臉模板的最小尺寸是和待搜索區(qū)域相關(guān)的。由于本文所處理的圖像都是統(tǒng)一250×250 像素的,并規(guī)定在這一尺度下的人臉尺寸基本在100×100 像素左右。因此,待搜索區(qū)域的長(zhǎng)或?qū)挸^(guò)180 像素則表示粗檢測(cè)區(qū)域較大,區(qū)域內(nèi)包含的信息也更多,因此采用更小尺度的精檢測(cè)模板。當(dāng)待搜索區(qū)域較小時(shí),整個(gè)帶搜索區(qū)有很大的可能就是人臉,則沒(méi)必要用更小的模板去搜索。
在模板檢測(cè)的流程中,系統(tǒng)需要從眾多的掃描窗口中選取出和模板相似度最高的一個(gè)。圖13 為搜索的示意圖。
圖13 模板匹配的搜索窗口
在基于膚色的人臉檢測(cè)算法[12]一文中采用了式(10)的度量方式。其中Win 表示窗口圖像,T 表示人臉模板,M、N 表示窗口的高和寬。這種度量方式是計(jì)算了窗口圖像和模板之間的歐氏距離。R 的取值范圍在[0,1],R 越小說(shuō)明二者的相似度越高。
在基于多關(guān)聯(lián)模板匹配的人臉檢測(cè)[2]中采用的則是一種聯(lián)合的相似度度量如式(11)(12)(13)所示,α取經(jīng)驗(yàn)值35。式(11)中μ、σ 是對(duì)應(yīng)圖像的灰度均值和方差。式(11)首先用減去了圖像的均值,使得窗口圖像和模板的灰度分布得到了一定的統(tǒng)一,消除了部分光照差異的影響。
但是基于(9)或(13)設(shè)計(jì)的相似度標(biāo)準(zhǔn),選擇所有窗口中相似度最大的窗口,最終的檢測(cè)結(jié)果會(huì)傾向于選擇那些尺度更小的窗口,如圖14 的上半部分測(cè)試樣例。更小的搜索窗口會(huì)獲得更高的相似度。這是由于本文所采用的不同尺度的人臉模板都來(lái)自于標(biāo)準(zhǔn)模板的縮放得到。如果是比標(biāo)準(zhǔn)模板小的,則通過(guò)間隔采樣完成,如果是比標(biāo)準(zhǔn)模板大的,則通過(guò)雙線性插值完成。由于模板的尺寸和粗檢測(cè)的區(qū)域大小有關(guān),有可能造成實(shí)際的人臉模板被縮得很小。對(duì)模板的縮小造成了信息的損失。在這種情況下小模板與小窗口圖像匹配的值通常大于大模板和大窗口的匹配值,也就造成了圖14 上半部分的實(shí)驗(yàn)結(jié)果。
圖14
針對(duì)以上問(wèn)題本文根據(jù)實(shí)驗(yàn)對(duì)模板檢測(cè)的相似度度量方式做出了式(14)的改良。
其中的常數(shù)為實(shí)驗(yàn)獲得的經(jīng)驗(yàn)值,r 來(lái)自式(11),ra 來(lái)自式(9),d 來(lái)自式(12),式(14)的設(shè)計(jì)思路是:
(1)式(11)作為主要的判別方式
(2)對(duì)于較小的人臉模板將給予一定的懲罰,也就是(14)的第二項(xiàng),窗口比例小于0.6 的都會(huì)導(dǎo)致第二項(xiàng)為負(fù)數(shù),這樣可以減輕小窗口的影響
(3)實(shí)際應(yīng)用中,單獨(dú)使用式(12)的d 難以得到好的結(jié)果,但d 值作為判別的標(biāo)準(zhǔn)之一時(shí)可以使得系統(tǒng)的精準(zhǔn)度更高
最終使用式(14)的結(jié)果如圖14 下半部分所示,可以看到由于加入了對(duì)小窗口的懲罰,使得系統(tǒng)不再傾向于選擇小窗口,檢測(cè)精度得到了提升。在圖15 中給出了人臉模板檢測(cè)的具體流程。最后,圖15 中所示最大的窗口模板相似度記為maxSimilarity,當(dāng)滿(mǎn)足maxsimilarity>ρ 時(shí),即判定該窗口為人臉,ρ 取經(jīng)驗(yàn)值0.45。
圖15 模板檢測(cè)流程
本文實(shí)現(xiàn)的系統(tǒng)在Multi-Task Facial Landmark(MTFL)dataset[13](后簡(jiǎn)稱(chēng)MTFL 數(shù)據(jù)集)數(shù)據(jù)集上做了人臉檢測(cè)測(cè)試。并對(duì)比了基于式(10)、(13)和(14)三種相似度度量的系統(tǒng),以說(shuō)明本文改進(jìn)方法(14)的有效性。
表2 各方法測(cè)試結(jié)果
由表2 所示,本文在MTFL 數(shù)據(jù)集中隨機(jī)抽取了4321 張單人臉圖片對(duì)三種方法實(shí)現(xiàn)的人臉檢測(cè)系統(tǒng)做了測(cè)試,可以看到改進(jìn)的方法(14)在查準(zhǔn)率和查全率兩方面都有更好的效果,說(shuō)明了改進(jìn)的有效性。圖16是一些圖片的檢測(cè)結(jié)果展示。
圖16 檢測(cè)結(jié)果展示
最后,人臉檢測(cè)是一個(gè)復(fù)雜的系統(tǒng)需要應(yīng)對(duì)復(fù)雜的檢測(cè)環(huán)境,不論是神經(jīng)網(wǎng)絡(luò)還是傳統(tǒng)方法都有各自的應(yīng)用場(chǎng)景。本文給出了對(duì)于傳統(tǒng)人臉檢測(cè)方法的一些改進(jìn)思路,在人臉檢測(cè)的流程中還有很多可以改進(jìn)和嘗試的,這些都有待于更進(jìn)一步的研究。