周 瑾,王元慶+,范科峰
(1.南京大學(xué) 電子科學(xué)與工程學(xué)院,江蘇 南京 210093;2.中國電子技術(shù)標(biāo)準(zhǔn)化研究所,北京 100007)
在人臉檢測(cè)領(lǐng)域,國內(nèi)外研究者已經(jīng)提出了多種方法[1]。近年來,研究的熱點(diǎn)集中于數(shù)據(jù)和特征驅(qū)動(dòng)的統(tǒng)計(jì)學(xué)習(xí)方法[2-5],目前該方法對(duì)于弱干擾的場(chǎng)景有令人滿意的效果,同時(shí)也存在一些問題:基于統(tǒng)計(jì)學(xué)習(xí)的方法主要依賴面部器官分布的共性,而實(shí)際場(chǎng)景中不可避免地存在灰度分布和面部十分相似的區(qū)域;實(shí)際場(chǎng)景中大部分人臉都會(huì)受到不同程度的干擾,這些干擾包可能包括環(huán)境因素、姿態(tài)、表情以及遮擋;統(tǒng)計(jì)學(xué)習(xí)的訓(xùn)練十分耗時(shí)。對(duì)于這些問題已經(jīng)有研究者提出多種方法[6-11],但沒有能較好解決上述所有問題的方案。針對(duì)上述問題,本文提出若干方法:基于膚色團(tuán)塊特征提取有效候選窗口,可剔除絕大部分類人臉區(qū)域;利用人臉中某些部位比其他部位特征更穩(wěn)定的先驗(yàn)知識(shí),通過合理化訓(xùn)練樣本分布以及人工干預(yù)弱分類器權(quán)重,使得系統(tǒng)對(duì)光照、表情和姿態(tài)變化有較好的魯棒性,特別是對(duì)于大面積的遮擋有很好的性能,同時(shí)有效利用幀間冗余加速檢測(cè);針對(duì)訓(xùn)練耗時(shí)的問題,將Ada-Boost算法移植到圖形處理器(GPU)上實(shí)現(xiàn),顯著提高了訓(xùn)練速度。
針對(duì)傳統(tǒng)幾何和圖像特征處理耗時(shí)、魯棒性低的缺點(diǎn),本文提出了一種基于膚色團(tuán)塊特征的快速篩選候選區(qū)域的方法。該方法的優(yōu)勢(shì)在于:不涉及細(xì)節(jié)性的特征,在圖像分辨率較低和有遮擋的條件下也有很好的效果;不涉及形狀分析和形態(tài)學(xué)處理等復(fù)雜的計(jì)算,結(jié)合金字塔結(jié)構(gòu)和積分圖可進(jìn)一步加速運(yùn)算。
本文采用了YCbCr空間基于K-L 變換的橢圓模型[12]進(jìn)行膚色檢測(cè),如式(1)和(2)所示
本文定義了膚色覆蓋率r來標(biāo)記有效的膚色團(tuán)塊,如式(3)所示
式(3)中,m和n分別表示一個(gè)矩形窗口的長和寬,∑colorPixels表示該矩形窗口中被檢測(cè)為膚色的像素總數(shù)。在實(shí)際檢測(cè)過程中,r的計(jì)算是在金字塔搜索的過程中進(jìn)行的,事先對(duì)圖像進(jìn)行膚色檢測(cè),并構(gòu)建一個(gè)膚色積分圖,在對(duì)某一個(gè)尺度的圖像使用檢測(cè)窗口進(jìn)行遍歷的時(shí)候,先計(jì)算該窗口膚色覆蓋率r,如果r超過了某個(gè)預(yù)設(shè)閾值,則將該窗口送入后級(jí)的人臉-人眼兩層檢測(cè)器處理,否則忽略該窗口。利用積分圖計(jì)算一次r,僅需要三次整數(shù)加(減)法的運(yùn)算,這樣避免了將大量無效窗口送入分類器,節(jié)省了大量的運(yùn)算。圖1中定性地給出了候選區(qū)域選取的結(jié)果,原圖尺寸的為640×480,而圖中給出的是160×160層次的有效窗口。
圖1 候選區(qū)域選取的結(jié)果
本文使用了6種Haar-Like型特征構(gòu)建特征空間,如圖2所示,其中a-e是5類經(jīng)典特征,而標(biāo)簽為“f”的特征是本文提出的一種分離型特征,這種特征主要針對(duì)人臉的對(duì)稱性。
本文用連續(xù)型AdaBoost訓(xùn)練人臉分類器。在訓(xùn)練過程中,得到第k個(gè)弱分類器的離散概率分布的公式如式(4)所示
圖2 Haar-Like型特征
在式(4)中,ε是平滑因子,它的作用為保證真數(shù)為一個(gè)有界正數(shù),以及抑制過學(xué)習(xí)的出現(xiàn)。在一般的Ada-Boost算法中該因子是一個(gè)常數(shù),當(dāng)其取得過小時(shí),無法有效抑制過學(xué)習(xí),取得過大又會(huì)影響概率分布,在原始算法中,該因子始終為一個(gè)定值,考慮到過學(xué)習(xí)現(xiàn)象一般出現(xiàn)在訓(xùn)練過程的后期,本文提出了一種改進(jìn)策略,在第一輪訓(xùn)練時(shí)為平滑因子取定一個(gè)初始值ε0,在訓(xùn)練過程中,該因子以一個(gè)固定步長Δε遞增,如式(5)所示,這樣可以有效地解決ε的取值問題,使得訓(xùn)練過程在初期快速收斂,在后期防止過擬合
泛化能力是指機(jī)器學(xué)習(xí)算法對(duì)輸入集以外的樣本的適應(yīng)能力,當(dāng)人臉分類器有很好的泛化能力時(shí),可以有效克服環(huán)境因素、運(yùn)動(dòng)和姿態(tài)變化和遮擋的影響。
在樣本數(shù)量多到一定程度時(shí),再用增加樣本數(shù)量的方式提高分類器的泛化性能很困難,因此本文使用了兩個(gè)方法進(jìn)一步提高泛化能力:①使訓(xùn)練樣本分布合理化;②人工調(diào)整弱分類器權(quán)重。
在第一個(gè)方法中,使訓(xùn)練樣本中盡可能地包含合理比例的各種模式的樣本,每個(gè)模式都代表實(shí)際場(chǎng)景中一類典型的灰度分布模式,見表1。
表1 訓(xùn)練樣本的分布情況
在第二個(gè)方法中,本文首先對(duì)人臉的灰度分布特點(diǎn)進(jìn)行分析,得出的結(jié)論是:人臉中某些區(qū)域的灰度分布相比其他區(qū)域更加集中,即這部分特征更穩(wěn)定。如圖3 所示,區(qū)域A 中包含雙眼和鼻子,這些部位總體上受姿態(tài)、表情和個(gè)體差異等影響較小,而區(qū)域B 易受發(fā)型和裝飾物的干擾,區(qū)域C的灰度分布最為離散,因?yàn)樵搮^(qū)域包含無數(shù)種表情,且容易被遮擋。本文采用人工干預(yù)弱分類器權(quán)重的方法減小實(shí)際檢測(cè)中的干擾,具體做法是降低B和C 區(qū)域中細(xì)節(jié)性特征的權(quán)重。表2 中給出了最終訓(xùn)練得到的Haar-Like特征在各個(gè)區(qū)域中的分布情況。
圖3 人臉各區(qū)域灰度分布分析
表2 人臉各區(qū)域中的特征分布情況
如圖4所示,人臉檢測(cè)器由一系列強(qiáng)分類器級(jí)聯(lián)組成,第一級(jí)強(qiáng)分類器較為簡(jiǎn)單,從前級(jí)到后級(jí)分類器的復(fù)雜度逐級(jí)增加,主要體現(xiàn)在每一級(jí)包含的弱分類器個(gè)數(shù)上,采用這種結(jié)構(gòu)可以在前級(jí)剔除絕大多數(shù)的無效窗口,只有少數(shù)窗口可以進(jìn)入后級(jí)分類器進(jìn)行決策。在圖4中,箭頭的粗細(xì)定性地表示樣本的數(shù)量多少。
圖4 級(jí)聯(lián)分類器結(jié)構(gòu)
卡爾曼濾波算法被用于估計(jì)該人臉在下一幀中的位置,同時(shí)對(duì)當(dāng)前檢測(cè)到的位置進(jìn)行濾波??柭鼮V波器可以有效提高搜索速度,同時(shí)通過濾除噪聲提高檢測(cè)的穩(wěn)定性。
考慮真實(shí)的運(yùn)動(dòng)情景,相對(duì)于25fps的視頻流,人臉的運(yùn)動(dòng)在大部分情況下是慢速且平滑的,我們假設(shè)待檢目標(biāo)在x-y平面上的運(yùn)動(dòng)是一個(gè)被隨機(jī)的加速度所擾動(dòng)的勻速直線運(yùn)動(dòng),加速度a滿足:a~N(0,σw2)。該模型的狀態(tài)方程和量測(cè)方程如式(6)和式(7)所示
其中,x(k)和z(k)分別是時(shí)刻k的狀態(tài)向量和測(cè)量向量,x(k+1|k)表示對(duì)k+1 時(shí)刻狀態(tài)的預(yù)測(cè)。w(k)和v(k)分別是過程噪聲和觀測(cè)噪聲,它們均服從零均值多元正態(tài)分布,它們的協(xié)方差分別為Qk和Rk。A(k+1|k)和H(k)分別是狀態(tài)轉(zhuǎn)移矩陣和觀測(cè)矩陣。將x(k)、A(K+1|k)與H(k)寫成矩陣形式如式(8)和(9)所示
其中,Δt為相鄰幀的時(shí)間間隔,在本文的系統(tǒng)中為40ms(1/25s)。在算法運(yùn)行過程中,卡爾曼濾波器構(gòu)造了一個(gè)“預(yù)測(cè)-校正”模型,預(yù)測(cè)過程起到預(yù)估器的作用,而校正過程進(jìn)行去噪濾波。
不同于靜態(tài)圖像,實(shí)時(shí)視頻中有相當(dāng)?shù)娜哂嘈畔?,基于這一點(diǎn),本文將視頻幀分為檢測(cè)幀(D 幀)和跟蹤幀(T幀)。在處理D 幀時(shí),過程等同于對(duì)靜態(tài)圖像的處理,而在處理T 幀時(shí),將只對(duì)上一幀檢測(cè)到的人臉進(jìn)行跟蹤,整個(gè)過程如圖5所示。
圖5 檢測(cè)和跟蹤動(dòng)態(tài)結(jié)合
兩個(gè)相鄰的D 幀中間是K個(gè)T 幀,一般情況下K 是常數(shù),而在當(dāng)前幀檢測(cè)到的人臉數(shù)少于上一幀的情況下,下一幀將自動(dòng)切換為D 幀,以確認(rèn)是否發(fā)生跟蹤失敗。這種切換策略能在降低運(yùn)算量的同時(shí),避免檢測(cè)目標(biāo)的丟失。
本文的總體算法流程如圖6所示,分為離線訓(xùn)練和在線檢測(cè)兩個(gè)部分,圖中左邊的虛線框表示離線訓(xùn)練部分,基于GPU 運(yùn)算的連續(xù)型Adaboost算法對(duì)大量正負(fù)樣本的訓(xùn)練,得到一系列的查找表型(look-up-table,LUT)弱分類器,經(jīng)過對(duì)這些分類器的人工權(quán)重調(diào)整,最終構(gòu)成級(jí)聯(lián)強(qiáng)分類器組;圖中右邊的虛線框表示在線檢測(cè)部分,從圖中可以看出級(jí)聯(lián)分類器的輸入源有兩個(gè),即利用膚色覆蓋率提取的結(jié)果或者利用上一幀數(shù)據(jù)預(yù)測(cè)的結(jié)果。
圖6 系統(tǒng)總體流程
圖7中定量地給出了基于膚色覆蓋率的候選窗口篩選的結(jié)果,圖7中縱坐標(biāo)表示候選窗口的數(shù)目,橫坐標(biāo)表示膚色覆蓋率閾值,五條曲線分別代表5種尺度。閾值取0.6時(shí),有效窗口的數(shù)量約為總窗口數(shù)的5%,再結(jié)合卡爾曼預(yù)測(cè)和金字塔結(jié)構(gòu),最終只有少于1%的檢測(cè)窗口會(huì)被送入后級(jí)分類器。
圖7 不同閾值下有效窗口數(shù)量
在人臉檢測(cè)器的訓(xùn)練中,正樣本數(shù)為5000,每一級(jí)的負(fù)樣本數(shù)為40000,樣本大小為20×20像素,最終得到11級(jí)AdaBoost分類器,共由790個(gè)弱分類器構(gòu)成。AdaBoost算法的運(yùn)算量非常大,在本文所用樣本數(shù)量的情況下,用普通PC(單核,主頻2.6GHz)機(jī)訓(xùn)練一個(gè)弱分類器的時(shí)間約為1.5 小時(shí),總訓(xùn)練時(shí)間為:790*1.5(小時(shí))=1185(小時(shí)),約50 天。針對(duì)這個(gè)問題,本文使用基于CUDA 技術(shù)的GPU 并行計(jì)算,運(yùn)行在NVIDIA GTS450顯卡上,將每個(gè)弱分類器訓(xùn)練時(shí)間減少到38秒,總訓(xùn)練時(shí)間為8.3小時(shí),實(shí)現(xiàn)了一百多倍的加速,當(dāng)然,這里并沒有計(jì)入樣本庫生成的時(shí)間,但足可以說明將訓(xùn)練程序移植到GPU 實(shí)現(xiàn)帶來的加速效果是顯著的,且性價(jià)比極高。
攝像頭分辨率為640×480,主機(jī)處理器為奔騰雙核E5300(只用單核),主頻為2.6GHz。經(jīng)過對(duì)超過5萬個(gè)視頻幀的測(cè)試,本文的系統(tǒng)對(duì)基本沒有干擾的正面人臉檢測(cè)率達(dá)到98.8%,對(duì)有大面積遮擋的人臉檢測(cè)率達(dá)到91.5%。單幀的平均處理時(shí)間如表3 所示,本文的系統(tǒng)每幀的平均處理時(shí)間僅為7.7ms。圖8給出了部分檢測(cè)結(jié)果,其中包括了不同的光照條件、表情變化、姿態(tài)變化、大面積遮擋和多人的情況。
表3 平均單幀處理時(shí)間
圖8 部分實(shí)時(shí)檢測(cè)結(jié)果
綜上所述,使用基于積分圖和膚色覆蓋率的方法提取候選區(qū)域可以有效去除復(fù)雜背景中與人臉有相似灰度分布的區(qū)域,同時(shí)通過減少送入分類器的窗口數(shù)量提高檢測(cè)速度;有良好泛化性能的AdaBoost級(jí)聯(lián)分類器保證了低誤檢率和魯棒性,基于GPU的實(shí)現(xiàn)的訓(xùn)練程序?qū)z測(cè)速度提高了兩個(gè)數(shù)量級(jí);卡爾曼濾波和D/T 幀切換充分利用了視頻的冗余信息,在不影響檢測(cè)效果的情況下加快了處理速度。最終系統(tǒng)的檢測(cè)速度完全達(dá)到實(shí)時(shí)系統(tǒng)的要求??紤]到同一類樣本的分布不能過于離散,現(xiàn)有的方法只能檢測(cè)小角度傾斜的對(duì)象。檢測(cè)更多姿態(tài)和偏轉(zhuǎn)角度的用戶,是下一步的改進(jìn)方向。
[1]SUN Ning,ZOU Cairong,ZHAO Li.Face detection:A survey[J].Journal of Circuits and Systems,2006,11(6):101-108(in Chinese).[孫寧,鄒采榮,趙力.人臉檢測(cè)綜述[J].電路與系統(tǒng)學(xué)報(bào),2006,11(6):101-108.]
[2]YANG Chengping,WANG Yuanqing.A face detection based on frontal-inverse adaboost algorithm[J].Chinese Jourml of Electron Devices,2008,31(1):355-358.
[3]Tsao Wen Kwang,Anthony J T Lee,LIU Yingho,et al.A data mining approach to face detection[J].Pattern Recognition,2010,43(3):1039-1049.
[4]YANG Jie,LING Xufeng,ZHU Yitan,et al.A face detection and recognition system in color image series[J].Mathematics and Computers in Simulation,2008(77):531-539.
[5]ZHANG Jianming,WANG Daqing.Building multi-view realtime video face detection system based on Adaboost algorithm[J].Computer Engineering and Design,2010,31(18):4065-4067(in Chinese).[張建明,汪大慶.基于Adaboost算法的多姿態(tài)人臉實(shí)時(shí)視頻檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(18):4065-4067.]
[6]YAO Jian,ZHAO Xunjie.Face detection combined skin colormodel and Adaboost algorithm[J].Journal of Suzhou University(Natural Science Edition),2009,25(3):63-67(in Chinese).[姚建,趙勛杰.結(jié)合膚色模型和Adaboost算法的人臉檢測(cè)[J].蘇州大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,25(3):63-67.]
[7]YANG Weiguo,DONG Shufeng,CHEN Juzi.Fast composite color face detection algorithm of adaptive search object[J].Computer Engineering and Design,2011,32(4):1441-1444(in Chinese).[楊衛(wèi)國,董蜀峰,陳聚祉.自適應(yīng)搜索目標(biāo)的快速彩色復(fù)合人臉檢測(cè)方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(4):1441-1444.]
[8]ZHONG Xiang,WANG Yuanqing.Real-time face detection by Adaboost based on infrared illumination[J].Computer Engineering,2009,35(8):222-224(in Chinese).[鐘翔,王元慶.基于紅外照明的Adaboost 實(shí)時(shí)人臉檢測(cè)[J].計(jì)算機(jī)工程,2009,35(8):222-224.]
[9]HAN Jing,WANG Yuanqing.Eye detection based on real Ada-Boost and bright pupil effect[J].Electronic Measurement Technology,2009,32(8):114-117(in Chinese).[韓晶,王元慶.基于亮瞳效應(yīng)的連續(xù)AdaBoost人眼檢測(cè)[J].電子測(cè)量技術(shù),2009,32(8):114-117.]
[10]YAN Chao,WANG Yuanqing,ZHANG Zhaoyang.Robust real-time multi-user pupil detection and tracking under various illumination and large-scale head motion[J].Computer Vision and Image Understanding,2011,115(1):1223-1238.
[11]DU Xingjing,BAI Tingzhu,HE Yuqing.Study of fast partial obscured face detection algorithm[J].Computer Engineering and Design,2011,32(3):984-987(in Chinese).[杜杏菁,白廷柱,何玉青.快速局部遮擋人臉檢測(cè)算法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(3):984-987.]
[12]GAO Jianpo,WANG Yujian,YANG Hao,et al.An elliptical model based on KL transform for skin color detection[J].Journal of Electronics &Information Technology,2007,29(7):1739-1743(in Chinese).[高建坡,王煜堅(jiān),楊浩,等.一種基于KL變換的橢圓模型膚色檢測(cè)方法[J].電子與信息學(xué)報(bào),2007,29(7):1739-1743.]