尹 遠(yuǎn),何 強(qiáng),文 凱,2
(1.重慶郵電大學(xué) 通信新技術(shù)應(yīng)用研究中心, 重慶 400065; 2.重慶信科設(shè)計有限公司,重慶 400065;3.中國電信股份有限公司 重慶分公司,重慶 400065)
一種新的多視角背景下人臉檢測方法*
尹 遠(yuǎn)1,2,3,何 強(qiáng)1,文 凱1,2
(1.重慶郵電大學(xué) 通信新技術(shù)應(yīng)用研究中心, 重慶 400065; 2.重慶信科設(shè)計有限公司,重慶 400065;3.中國電信股份有限公司 重慶分公司,重慶 400065)
針對實(shí)際生活中普遍存在的多視角、多人臉檢測問題,提出了一種新的分類器訓(xùn)練方法及人臉檢測的解決方案;首先采用NPD差分特征對人臉特征進(jìn)行描述,NPD特征通過判斷兩個像素值間相對差異對人臉進(jìn)行描述,其特征值可從二維表直接獲取,能大大節(jié)省訓(xùn)練時間;同時提出了一種深度二叉特征樹結(jié)構(gòu)來訓(xùn)練分類器,可有效結(jié)合特征間的關(guān)聯(lián)性,將訓(xùn)練得到分類器與膚色算法相結(jié)合來提高檢測速度;通過在CMU人臉數(shù)據(jù)庫上對所提出算法進(jìn)行驗(yàn)證,仿真結(jié)果證明在多人臉、多視角檢測背景環(huán)境下,該算法較AdaBoost算法在檢測率提高了8.7%,誤檢率降低了4.1%,檢測速度提高了27.7%。
NPD特征;深度二叉特征樹;膚色;Adaboost算法
人臉識別的前提是成功地將人臉樣本從背景圖片中分離出來,正面人臉檢測是目前研究較成熟的一個領(lǐng)域,其中典型成果是Viola和Jones[1]提出的基于Haar-like特征的Adaboost級聯(lián)分類器,然而在另外一些復(fù)雜情況下,檢測效果并不理想。Viola和Jones之后又出現(xiàn)大量關(guān)于人臉檢測方法的研究,其主要區(qū)別集中在選取不同類型的特征和開發(fā)不同構(gòu)造的分類器。一方面有一系列復(fù)雜的特征來替代Haar-like特征,例如HOG(Histogram of Oriented Gradient)、LBP(Local Binary Pattern)、CNN(Convolutional Neural Network)、PICO(Pixel Intensity Comparison-based Object )[2]等特征,其能在一定程度上提高檢測效果,代價是需要更多數(shù)量的特征,并且耗費(fèi)更多的訓(xùn)練時間。另一方面很多不同構(gòu)造的分類器被提出來用于多視角人臉檢測,例如Parallel Cascade、Pyramid Architecture、Width-First-Search(WFS)[5],但這些方法有一個共同的缺點(diǎn),即需要對每一種視角的樣本單獨(dú)訓(xùn)練一個分類器,在實(shí)際情況中,人臉視角很難精準(zhǔn)劃分,并且隨著級聯(lián)分類器復(fù)雜度提高,計算成本也會顯著增加?;谀w色的人臉檢測算法,因?yàn)樗惴ê唵?,有著檢測速度快的優(yōu)勢,但是由于干擾眾多,其對于復(fù)雜情形下的人臉檢測效果并不理想,而AdaBoost人臉檢測算法適應(yīng)性強(qiáng),更加穩(wěn)定,但算法復(fù)雜度高,需要大量的時間訓(xùn)練分類器,雖然誤檢率較低,但僅適用于正面圖像、小角度偏轉(zhuǎn)等簡單環(huán)境的檢測。因此,針對多人臉、大角度偏轉(zhuǎn)的人臉檢測問題,結(jié)合兩類方法的優(yōu)缺點(diǎn)及新型NPD特征,提出了一種新的人臉檢測算法。
AdaBoost檢測算法可以分為兩個階段:訓(xùn)練階段和檢測階段,圖1為AdaBoost算法系統(tǒng)流程圖。
圖1 AdaBoost人臉檢測算法流程圖Fig.1 AdaBoost human face detection algorithm procedure
其中,分類器的訓(xùn)練最為繁雜,訓(xùn)練分類器的詳細(xì)步驟如下。
步驟1 給定訓(xùn)練集:(x1,y1),(x2,y2),…,(xn,yn),其中yi∈{0,1},yi=0表示xi是非人臉樣本,yi=1表示xi是人臉樣本。
步驟2 初始化樣本權(quán)重,設(shè)定第t次循環(huán)中第i個樣本的權(quán)重ωt,i,人臉樣本的初始權(quán)重為ω1,i=1/2m,非人臉樣本的起始權(quán)重為ω1,i=1/2l,其中,m是人臉正樣本集的個數(shù),l是人臉負(fù)樣本集的個數(shù),n是人臉樣本的總數(shù),滿足n=m+l。
步驟3 設(shè)t=1,2,…,T(T為訓(xùn)練過程的最大循環(huán)次數(shù))。
(1) 將權(quán)重作歸一化處理:
(1)
(2) 計算出每個弱分類器hj在全體樣本上對于特征j的檢測結(jié)果的加權(quán)錯誤率εj,公式如下:
(2)
(3) 從所有的弱分類器中挑選分類錯誤率相對更小的弱分類器ht。
步驟4 根據(jù)一定原則把弱分類器構(gòu)造成強(qiáng)分類器:
(3)
人臉檢測階段中,首先提取待檢圖像相對應(yīng)的Haar-like特征,之后將計算的特征值與分類器的閾值進(jìn)行比較,根據(jù)分類器的檢測結(jié)果,最后輸出人臉區(qū)域所在的坐標(biāo)和尺寸信息,從而確定人臉的位置。
AdaBoost算法進(jìn)行人臉檢測存在的主要問題如下:
(1) 用于弱分類器訓(xùn)練的樣本數(shù)目龐大,針對整幅圖像進(jìn)行的特征提取,Haar-like 特征數(shù)目巨大,因此,需要耗費(fèi)大量的訓(xùn)練時間。
(2) 每個弱分類器都是由多個樣本訓(xùn)練得到,有時候弱分類器的閾值設(shè)置并不合理,單閾值并不能精準(zhǔn)將樣本分類。
(3) 對于背景環(huán)境復(fù)雜的人臉檢測,效果有待提高,這是由Haar-like特征的局限性導(dǎo)致的,Haar-like特征更適用于正面人臉檢測。
NPD特征反映了一幅圖像中兩個像素之間的關(guān)系,定義如下:
(4)
其中x和y分為是兩個像素的像素值,當(dāng)x=0,y=0時f(x,y)=0,這樣的設(shè)置是合理的,因?yàn)樵谶@樣的情況下,像素x與像素y并無差異。
圖2為NPD特征取值范圍示意圖,其中橫軸與縱軸對應(yīng)了兩個像素點(diǎn)的灰度值,取值范圍為0至255,圖3為NPD特征示意圖,此特征反映了兩個像素值間的差異關(guān)系。將NPD特征與像素間灰度值的絕對值|x-y|進(jìn)行對比發(fā)現(xiàn),NPD特征的描述性更強(qiáng)。心理學(xué)家Weber指出[6]:對于兩個重物的差異感知不是取決于兩個物體重量差異的絕對值,而是取決于這一絕對值與總重量的比值,這是Weber通過“肌肉感覺”研究中得到的啟示,NPD特征具有很多良好的特性:
圖2 NPD特征取值范圍示意圖Fig.2 NPD feature extraction region
圖3 NPD特征示意圖Fig.3 NPD feature
(1)反對稱性。無論是fx,y還是f(y,x) 都能充分表述特征,從而縮小特征空間,因此一幅s×s的圖像(轉(zhuǎn)換成行向量p×1,p=s×s)的NPD特征數(shù)d=p(p-1)/2,例如對于一個20×20的模板,其NPD特征總數(shù)為79 800。
(2)尺度不變性。其計算的是像素間的相對差值,特征對于光照變化的敏感度會降低,且無論做何種變換,特征值不變。
(3)有界性。-1≤f(x,y)≤1,有界性使特征值便于量化,從而節(jié)省特征的選擇時間。
傳統(tǒng)的Adaboost人臉檢測器是通過提升單層決策樹來選擇具有代表性的特征,它通過一個特征的特征閾值將訓(xùn)練樣本分成兩部分,這也是最基本的分類器模型。對于這種結(jié)構(gòu)有以下兩種不足:沒法反映不同特征間的關(guān)聯(lián)性;簡單的閾值設(shè)置忽略了單個特征的多樣性。
因此,提出了一種深度分裂二叉樹結(jié)構(gòu)分類器,對于一個特征x,用樹的一個節(jié)點(diǎn)將其分為
mx2+nx+a (5) 其中m、n、a是常量,t是閾值,選擇合適的參數(shù)就可以將特征x分成[θ1,θ2]及另外一種情況,其中θ1與θ2是兩個經(jīng)過窮舉計算得到的閾值,對于人臉圖像的NPD特征,可將其分為以下3種情形: (6) (7) (8) 當(dāng)目標(biāo)像素值x明顯暗于像素y時對應(yīng)式(6),當(dāng)目標(biāo)像素值x明顯亮于像素y時對應(yīng)式(7),這兩個結(jié)構(gòu)的分類情況都可以被傳統(tǒng)的分類方式取代,但是對于某些特征,如圖3中的特征f3,由于背景亮度是無法確定的,故以上兩種情況無法對其進(jìn)行準(zhǔn)確描述,這也凸顯式(8)的重要性,此方法與原始的分類條件相比較,利用雙閾值進(jìn)行分類明顯比傳統(tǒng)分類方式精準(zhǔn)。 將NPD特征量化為256個單位,利用窮舉法搜素得到兩個最佳的閾值,選擇的標(biāo)準(zhǔn)為最佳加權(quán)錯誤率,由于NPD特征的有界性,量化很容易完成。與此同時,用NPD特征構(gòu)成一個深度二叉樹,改進(jìn)了之前樹樁型分類器,這種方法將多種NPD特征結(jié)合起來描述人臉結(jié)構(gòu),在訓(xùn)練階段不需要將樣本進(jìn)行姿態(tài)劃分,在檢測階段可有效識別多視角人臉,圖4為分類器的結(jié)構(gòu)及工作原理。 圖4 分類器結(jié)構(gòu)Fig.4 Classifier structure 使用膚色算法應(yīng)用在預(yù)檢階段,膚色檢測需要兩方面知識的運(yùn)用:色彩空間和膚色模型[7]。色彩空間:將顏色信息通過某種數(shù)學(xué)表達(dá)映射到三維空間。膚色空間:建立數(shù)學(xué)模型,將色彩空間的膚色與非膚色進(jìn)行區(qū)分的一種數(shù)學(xué)關(guān)系模型,通過數(shù)學(xué)的方式來判斷某個像素點(diǎn)是否屬于膚色[8]。 生活中最為常見的視頻圖像都是基于RGB色彩空間,其能夠很好地展現(xiàn)畫面的色彩效果,但是對于膚色檢測,它不能使亮度與色彩進(jìn)行分離,從而難以達(dá)到膚色聚類的效果,而YCrCb色彩空間剛好具備這一優(yōu)點(diǎn),將RGB色彩空間轉(zhuǎn)為YCrCb色彩空間,膚色會產(chǎn)生很好的類聚。簡單膚色模型的閾值選擇變化太大,相同閾值在不同情形下也易造成膚色分割誤差過大,而高斯模型與混合高斯模型的算法復(fù)雜度高,對于參數(shù)的確定計算量過大,不適合快速檢測,與此同時,橢圓邊界模型容易建立,算法運(yùn)行速度快。因此,選擇采用基于YCrCb色彩空間的橢圓邊界模型。 使用橢圓模型進(jìn)行膚色區(qū)域的判斷,其中橢圓模型由大量人臉膚色圖片的膚色點(diǎn)訓(xùn)練得到,訓(xùn)練方式如下。 (1) 將YCrCb色彩空間中的色度Cr、Cb進(jìn)行非線性變換以更好地投影其是否在膚色聚類區(qū)域: (9) (10) WCi(Y)= (11) (2) 使用上述訓(xùn)練好的橢圓模型進(jìn)行膚色檢測的過程如下: 將RGB色彩空間轉(zhuǎn)換成YCrCb色彩空間: (12) Cb′(Y)= (13) Cr′(Y)= (14) 其中,WCb(Y)和WCr(Y)為橢圓模型寬度值。將訓(xùn)練好的橢圓模型存儲在二維圖像中。將計算得到的Cb′、Cr′值投影到二值圖像,如果該點(diǎn)在橢圓區(qū)域內(nèi)部,則判斷其為膚色區(qū)域,否則為非膚色區(qū)域。在人臉檢測預(yù)處理階段使用膚色分割技術(shù),能夠準(zhǔn)確、快速地確定候選人臉區(qū)域。 采用的實(shí)驗(yàn)環(huán)境:Intel(R) Core(TM) i7-6700 CPU @3.40 GHz,8 GB內(nèi)存,Windows 7 操作系統(tǒng),在VS2010軟件平臺上使用C++語言編程實(shí)現(xiàn),相關(guān)輔助工具有OpenCV 2.4.8和Matlab R2012a。 在分類器的訓(xùn)練實(shí)驗(yàn)中,將正負(fù)樣本分辨率統(tǒng)一歸一化為24×24,對正負(fù)樣本單獨(dú)做隨機(jī)變換,最終生成20萬張正樣本和20萬張負(fù)樣本作為訓(xùn)練素材,將深度二叉特征樹的深度設(shè)置為8,在訓(xùn)練過程中將大量不同視角的樣本進(jìn)行訓(xùn)練,總的樣本根據(jù)最佳加權(quán)錯誤率被單個節(jié)點(diǎn)分成兩個子樣本再進(jìn)行訓(xùn)練,迭代訓(xùn)練得到的深度二叉特征樹分類器,進(jìn)而得到最終的強(qiáng)分類器。對于每一個樹分類器,都需要評估的8個NPD特征,單層訓(xùn)練時間大概為230 s,整個訓(xùn)練流程持續(xù)近70 h,訓(xùn)練得到的分類器包含1 017深度特征二叉樹,39 568個NPD特征。傳統(tǒng)的Adaboost分類器有25級,共41 910個特征,部分訓(xùn)練樣本如圖5所示。 圖5 部分訓(xùn)練樣本Fig.5 Part of training samples 為了對算法進(jìn)行全面總結(jié)分析,共進(jìn)行兩輪實(shí)驗(yàn),第一輪實(shí)驗(yàn)驗(yàn)證改進(jìn)算法與原算法的性能區(qū)別,第二輪實(shí)驗(yàn)驗(yàn)證改進(jìn)算法與其他優(yōu)秀多視角檢測算法的區(qū)別。 第一輪實(shí)驗(yàn)分別對單人臉圖像、多人臉圖像進(jìn)行了兩組實(shí)驗(yàn)。測試圖片中單人臉圖像100張,包含100個人臉,多人臉圖像300張,包含1 354個人臉,共計1 454個人臉,所有測試樣本均為專門挑選的具有代表性的網(wǎng)絡(luò)照片。表1、表2分別是單人臉圖像實(shí)驗(yàn)和多人臉圖像實(shí)驗(yàn)結(jié)果,其中檢測時間為該組實(shí)驗(yàn)中檢測所有樣本的時間,膚色算法、Adaboost算法、Adaboost+膚色算法和本文算法的檢測效果如圖6所示。 圖6 4種算法檢測效果圖Fig.6 The testing effect of four algorithms 檢測方法實(shí)際人臉數(shù)/個正確檢測人臉數(shù)/個人臉檢測正確率/%誤檢人臉數(shù)/個誤檢率/%檢測時長/s膚色100999954.81.72Haar?like100989843.93.54膚色+Haar?like100999932.92.57本文算法100999932.9%2.43 表2 多人臉圖像集檢測結(jié)果 由表1及表2得到的實(shí)驗(yàn)數(shù)據(jù)分析可得如下結(jié)論。 (1) 針對簡單的單人臉樣本圖像,膚色算法的檢測率很高,但是由于膚色特征受到光照等因素的干擾也比較大,導(dǎo)致此方法的誤檢率很高,但另一方面,由于膚色算法簡單,檢測速度較快;基于Haar-like特征的Adaboost算法其檢測率低于膚色算法,但由于提取了圖像的特征,誤檢率得到了降低,然而Haar-like特征數(shù)量眾多,導(dǎo)致其檢測速度較慢;基于膚色+Haar-like的檢測算法結(jié)合了兩種算法的優(yōu)點(diǎn),相比于Haar-like特征算法,提高了檢測率與檢測速度,但由于Haar-like特征的局限性,其誤檢測仍然很高;本文算法采用NPD特征和深度二叉樹訓(xùn)練分類器,進(jìn)一步優(yōu)化了膚色+Haar-like特征算法,但是由于本輪實(shí)驗(yàn)的測試樣本過于簡單,并不能突出改進(jìn)算法的優(yōu)勢。 (2) 當(dāng)測試圖像變換為復(fù)雜的多人臉圖像時,4種算法的性能均有所下降,也說明了人臉檢測課題在復(fù)雜環(huán)境下的挑戰(zhàn)性,同時也凸顯了本文算法在復(fù)雜環(huán)境下的優(yōu)勢。本輪實(shí)驗(yàn)中,將本文算法與膚色算法對比,由于膚色算法簡單,固其在檢測速度上還是有優(yōu)勢,但是其誤檢率卻明顯高于本文算法;與Haar-like特征算法、膚色+Haar-like特征算法進(jìn)行對比,本文算法檢測率、誤檢率、檢測速度均占有優(yōu)勢。 第二輪實(shí)驗(yàn)的目的是進(jìn)一步對本文算法進(jìn)行橫向比較,3種算法均在CMU的Profile測試集上進(jìn)行檢測實(shí)驗(yàn),結(jié)果如圖7所示。與本文進(jìn)行對比實(shí)驗(yàn)的是可控風(fēng)險敏感AdaBoost算法(CCS-AdaBoost,Controlled Cost-sensitive AdaBoost)[9]、基于LBP的CCS-AdaBoost算法[10]。 由圖7和表3中的實(shí)驗(yàn)數(shù)據(jù)分析可得以下結(jié)論。 CCS-AdaBoost算法和LBP+AdaBoost算法作為最小化誤分類風(fēng)險算法,對于分類器的結(jié)構(gòu)進(jìn)行了簡化,優(yōu)點(diǎn)在于檢測速度較快,本文算法的檢測速度雖不及CCS-AdaBoost算法和LBP+AdaBoost算法,但依然能達(dá)到實(shí)時檢測的要求。本文使用的NPD差分特征具有反對稱性、有界性、尺度不變性,僅根據(jù)兩個像素值即可進(jìn)行特征值的計算,并且可以直接利用表來查找值而不用二次計算,使用深度二叉樹結(jié)構(gòu)訓(xùn)練分類器,能充分利用特征之間的關(guān)聯(lián)性,提高分類器特征的效率,且雙閾值的樣本劃分更為精準(zhǔn),利用膚色算法確定膚色區(qū)域,大大減少待檢測區(qū)域,從而減少檢測時間,在誤檢數(shù)相同的情況下,本文算法較CCS-AdaBoost算法、LBP+AdaBoost算法的檢測率更高。綜合考慮,本文算法對于人臉系統(tǒng)相關(guān)應(yīng)用的開發(fā)具有重要意義。 圖7 不同多視角檢測算法對比圖Fig.7 Contrast of different multi-angle detection algorithms 算 法CCS?AdaBoostLBP+CCS?AdaBoost本文算法檢測速度/ms8.710.212.3 提出了一種基于NPD特征的人臉檢測方法,可有效解決大角度偏轉(zhuǎn)下的人臉檢測問題,NPD特征計算更為簡單,因此更加穩(wěn)定,深度二叉樹的采用,將大量特征更高效地結(jié)合起來,不同視角的人臉分別對應(yīng)不同的子樹分類器,可有效解決多視角下的人臉檢測問題,今后將進(jìn)一步改善在其他復(fù)雜情況下的檢測問題,并優(yōu)化性能,使其盡早應(yīng)用于實(shí)際視頻監(jiān)控環(huán)境中。 [1] VIOLA P, JONES M. Rapid Object Detection using a Boosted Cascade of Simple Features[C]//Proceedings of the 2001 IEEE Computer Society Conference on. IEEE, 2003(1): 511-518 [2] LI S Z, ZHU L, ZHANG Z Q, et al. Statistical Learning of Multi-view Face Detection[C]//European Conference on Computer Vision. Berlin: Springer Berlin, 2002: 67-81 [3] MITA T, KANEKO T, HORI O. Joint Haar-like Features for Face Detection[C]//Computer Vision, 2005. ICCV 2005. Tenth IEEE International Conference on. IEEE, 2005, 2: 1619-1626 [4] JEONG K, CHOI J, JANG G J. Semi-local Structure Patterns for Robust Face Detection[J]. IEEE Signal Processing Letters, 2015, 22(9): 1400-1403 [5] HUANG C, AI H, LI Y, et al. High-performance Rotation Invariant Multiview Face Detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 29(4) [6] CHEN J, SHAN S, HE C, et al. WLD: A Robust Local Image Descriptor[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(9): 1705-1720 [7] AMJAD A, GRIFFITHS A, PATWARY M N. Multiple Face Detection Algorithm Using Colour skin Modelling[J]. Iet Image Processing, 2012, 6(6):1093-1101 [8] MARKU N, FRLJAK M, PAND I S, et al. Object Detection with Pixel Intensity Comparisons Organized in Decision Trees[J]. Computer Science, 2013, 14(4):2657-62 [9] DINGLI S, BINGRU Y, FUXING Y. Study of the Cost-sensitive AdaBoost Face Detection Algorithm[C]//Proceedings of International Conference on Computer Application and System Modeling.Beijing: IEEE Press, 2010 [10] 何智翔,丁曉青 ,方馳, 等. 基于 LBP 和 CCS-AdaBoost 的多視角人臉檢測[J]. 浙江大學(xué)學(xué)報(工學(xué)版), 2013 (4): 622-629 HE Z X, DING X Q, FANG C, et al. Multiview Human Face Detection Based on LBP and ccs-AdaBoos[J]. Journal of Zhejing University (Techndogy Edition), 2013(4):622-629 A Human Face Detection Algorithm Based on Skin and Depth of a Feature Binary Tree YINYuan1,2,3,HEQiang1,WENKai1,2 (1.Research Center for Application of New Communication Technology, Chongqing University of Posts and Telecommunications, Chongqing 400065, China; 2. Chongqing Information Technology Designing Co., Ltd, Chongqing 400065, China; 3. Chongqing Branch, China Telecom Co., Ltd, Chongqing 400065, China) In this paper, a new classifier training method and human face detection solution are proposed for multi-face and multi-view face detection problems which are prevalent in real life. Firstly, NPD (Normalized Pixel Difference) feature is used to describe the facial feature, the NPD feature describes the human face by judging the relative difference between the two pixel values, its eigenvalues can be obtained directly from the two-dimensional table, which can greatly save the training time. At the same time, a kind of depth binary function tree structure is proposed to train the classifier, which can effectively combine the correlation between the features and combine the training with the skin color algorithm to improve the detection speed. Through the test of the proposed algorithm in this paper in CMU human face database, simulation results indicate that the algorithm improves the detection rate by 8.7%, error detection rate reduced 4.1%, detection speed improved 27.7% under multi-face and multi-view background. NPD feature; depth of binary tree feature; skin color; Adaboost algorithm TP 391.41 A 2017-02-12; 2017-03-30. 2015年重慶市研究生創(chuàng)新科研項目(CYS15166). 尹遠(yuǎn)(1963-),男,重慶市人,高級工程師,從事通信經(jīng)營管理、計算機(jī)視覺和移動通信研究. 責(zé)任編輯:羅姍姍4 膚色模型
5 算法實(shí)現(xiàn)及結(jié)果分析
6 結(jié)束語