牛勝石,毛曉暉,侯建華,熊承義
(中南民族大學(xué) 電子信息工程學(xué)院,湖北 武漢 430074)
視頻圖像中的人頭檢測(cè),就是在視頻序列中及時(shí)地發(fā)現(xiàn)并提取人頭位置和尺度信息,為下一步的跟蹤、計(jì)數(shù)及運(yùn)動(dòng)分析等算法提供目標(biāo)數(shù)據(jù)。
目前視頻監(jiān)控中常用的人臉、人頭檢測(cè)算法主要有:Boost[1-5]、支持向量機(jī) SVM(Support Vector Machine)[6]和神經(jīng)網(wǎng)絡(luò)[7]?;贐oost的方法主要采用基于灰度差的類Haar特征,該方法對(duì)相對(duì)簡(jiǎn)單的面部特征提取簡(jiǎn)單有效、檢測(cè)精度較高,但人頭檢測(cè)因同時(shí)包含了人臉、頭發(fā)和部分背景信息,單純的鄰近區(qū)域灰度差特征并不十分精確;SVM方法,由于需要計(jì)算完所有特征后才能進(jìn)行判決,當(dāng)檢測(cè)窗口及特征維數(shù)較多時(shí),耗時(shí)較大,難以達(dá)到實(shí)時(shí)性要求;基于神經(jīng)網(wǎng)絡(luò)的方法,由于算法復(fù)雜度高,耗時(shí)同樣較大,多用于PC機(jī),對(duì)于嵌入式平臺(tái),很難達(dá)到實(shí)時(shí)性的要求?;谝陨先N方法存在的問(wèn)題,參考文獻(xiàn)[2]提出了一種基于梯度的特征,但該方法中的特征計(jì)算復(fù)雜度較高,同時(shí)存在較多的誤檢。
本文在參考文獻(xiàn)[2]算法的基礎(chǔ)上,對(duì)梯度特征進(jìn)行了改進(jìn),并加入自生長(zhǎng)梯度特征,使特征在較低復(fù)雜度下具備了較高的分類能力和穩(wěn)定性。同時(shí),針對(duì)Adaboost檢測(cè)存在的誤檢現(xiàn)象,引入級(jí)聯(lián)SVM分類器對(duì)Adaboost檢測(cè)結(jié)果進(jìn)行篩選,去除其中的誤檢,從而實(shí)現(xiàn)人頭的精確檢測(cè)。這種方法解決了因特征的高復(fù)雜度而導(dǎo)致的非實(shí)時(shí)性問(wèn)題,同時(shí)對(duì)Adaboost存在的誤檢進(jìn)行了有效去除,具備良好的實(shí)時(shí)性和較高的檢測(cè)精度,且對(duì)圖像的信噪比要求不高,對(duì)低對(duì)比度、強(qiáng)光照、陰影等復(fù)雜場(chǎng)景具有較好的魯棒性。
本文特征訓(xùn)練及檢測(cè)均在梯度空間進(jìn)行。首先對(duì)人頭樣本進(jìn)行Adaboost訓(xùn)練,利用Adaboost算法從特征庫(kù)中挑選具備較強(qiáng)區(qū)分能力的特征,并級(jí)聯(lián)成強(qiáng)分類器,得到人頭模型。同時(shí),對(duì)負(fù)樣本進(jìn)行聚類,并對(duì)每個(gè)聚類與人頭正樣本單獨(dú)進(jìn)行SVM訓(xùn)練,得到SVM級(jí)聯(lián)分類器。檢測(cè)時(shí),首先將輸入的視頻圖像轉(zhuǎn)換到梯度空間,用訓(xùn)練好的Adaboost檢測(cè)器進(jìn)行多尺度檢測(cè),檢測(cè)所得到的結(jié)果進(jìn)入SVM級(jí)聯(lián)檢測(cè)器進(jìn)行二次檢測(cè),去除其中的絕大多數(shù)誤檢,而后根據(jù)重疊面積進(jìn)行尺度合并,并輸出檢測(cè)結(jié)果。系統(tǒng)結(jié)構(gòu)及流程如圖1所示。
圖1 人頭檢測(cè)系統(tǒng)總體結(jié)構(gòu)圖
機(jī)器學(xué)習(xí)及訓(xùn)練需要大量的樣本。為了減少工作量,本文對(duì)手工截取的樣本進(jìn)行了左右鏡像和小角度旋轉(zhuǎn),以增加樣本的多樣性。負(fù)樣本由不包含人頭的圖片隨機(jī)截取。
本文特征提取在梯度圖像上進(jìn)行,梯度取4個(gè)方向,模板如式(1)所示。梯度模板與圖像卷積,將灰度圖像映射為不同方向的梯度圖;之后利用積分圖原理將梯度圖映射為梯度積分圖,以快速計(jì)算梯度特征。由于篇幅限制,積分圖原理此處不再贅述。
本文選用參考文獻(xiàn)[2]所提出的部分特征窗,并對(duì)特征計(jì)算方法進(jìn)行改進(jìn),同時(shí)引入自生長(zhǎng)梯度特征鏈。具體如下:
非鏈?zhǔn)教卣鞔坝?個(gè)或2個(gè)不相鄰子窗隨機(jī)組合構(gòu)成,如圖2所示。
圖2 非鏈?zhǔn)教卣鞔邦愋?/p>
式中,ε為一較小的值,以避免分母為0。
多窗情況下,若各子窗仍采用隨機(jī)方式組合,隨著子窗數(shù)目的增加,組合結(jié)果將呈指數(shù)增長(zhǎng),而所得到的組合中只有極少數(shù)為有用特征,這就需要在后續(xù)Adaboost訓(xùn)練時(shí)從這些海量組合中挑選,其間每種組合都需要不斷地進(jìn)行反復(fù)運(yùn)算和比較,大大增加了訓(xùn)練的復(fù)雜度和存儲(chǔ)空間及所消耗的時(shí)間??紤]到人頭邊緣具有一定程度的連續(xù)性,因此,對(duì)多窗特征組合方式進(jìn)行限制,引入特征窗自生長(zhǎng)機(jī)制,根據(jù)正樣本的梯度分布,沿邊緣延伸方向?qū)⑾噜弳未耙来芜B接成鏈,以使特征子窗特征盡可能落在人頭邊緣上。自生長(zhǎng)鏈?zhǔn)教卣鳂?gòu)造方法如下:
(1)首先確定正樣本數(shù)目ns、梯度方向數(shù)nd(本文取nd=4)及如圖3所示的單窗數(shù)目nw、每個(gè)單窗的位置和尺度。
(2)設(shè)定種子判決閾值θ,對(duì)所有單窗W進(jìn)行如下操作:
圖3 鏈?zhǔn)教卣鞔白陨L(zhǎng)過(guò)程
(4)通過(guò)步驟(3)共獲得若干個(gè)梯度特征鏈 FeaC,假設(shè)某個(gè)鏈 FeaC的長(zhǎng)度為 l,Winm表示FeaC的第 m個(gè)子窗,fm表示窗Winm在其有效梯度方向上的梯度累加和,fm⊥表示窗Winm在其有效梯度垂直方向上的梯度累加和,則鏈?zhǔn)教卣鞯谋磉_(dá)形式為:
本文采用參考文獻(xiàn)[4]所述的Real Adaboost方法[5]。Real Adaboost分類器由若干個(gè)強(qiáng)分類器組成,每個(gè)強(qiáng)分類器又包含若干個(gè)弱分類器(特征),這種級(jí)聯(lián)形式的分類器能夠快速排除圖像中大部分非人頭區(qū)域。訓(xùn)練步驟如下:
(1)對(duì)于訓(xùn)練集合(x1,y1),…,(xN,yN),x1∈X 為樣本向量,類別標(biāo)簽yi∈(+1,-1)分別表示正、反例樣本。
(3)尋找 T 個(gè)弱分類器 ht(t=1,…,T):
①根據(jù)所有樣本的相同特征的數(shù)值式(2)~(5)對(duì)樣本空間 X進(jìn)行劃分,得到 X1,X2,…,XM區(qū)間。
②使用訓(xùn)練樣本的Dt(xi)統(tǒng)計(jì)各個(gè)區(qū)間的權(quán)重和:
③計(jì)算選擇特征的準(zhǔn)則函數(shù)值:
④選擇使得Z最小化的特征來(lái)生成當(dāng)前的弱分類器:
式中,弱分類器h根據(jù)各樣本的特征所在區(qū)間而定:
式中,ε為一個(gè)較小的正常數(shù),i=1,…,N。
⑤對(duì)所有樣本的權(quán)重進(jìn)行歸一化:
(4)最終的強(qiáng)分類器為:
式中,b為手動(dòng)設(shè)定的閾值,默認(rèn)為0。
采用上述Adaboost方法所產(chǎn)生的誤檢與參考文獻(xiàn)[3]中的誤檢情況類似,如圖4所示,在人體的軀干、腿部以及箱包等區(qū)域易產(chǎn)生誤檢。該類誤檢由Adaboost算法本身難以去除,原因在于訓(xùn)練時(shí),Adaboost只對(duì)局部特征進(jìn)行組合,只要局部特定位置上的梯度特征滿足判決條件則整個(gè)樣本被判斷為真,在整體上并無(wú)考量。
圖4 Adaboost存在的誤檢
本文引入支持向量機(jī)(SVM),利用SVM分類器的全局性把每個(gè)樣本作為一個(gè)整體進(jìn)行分類??紤]到負(fù)樣本多樣性對(duì)SVM的分類性能存在影響,在SVM訓(xùn)練前先對(duì)負(fù)樣本進(jìn)行聚類,對(duì)每類負(fù)樣本與所有正樣本進(jìn)行訓(xùn)練,并進(jìn)行級(jí)聯(lián),得到SVM級(jí)聯(lián)器。本文聚類采用KMean(K-均值)聚類算法(由于篇幅限制,SVM和 KMean算法此處不再贅述)。主要過(guò)程如下:
(1)對(duì)正、負(fù)樣本提取梯度直方圖(HOG)特征;
(2)根據(jù)HOG特征對(duì)負(fù)樣本進(jìn)行聚類,聚類數(shù)為N;
(3)負(fù)樣本的每個(gè)聚類分別與所有正樣本進(jìn)行SVM訓(xùn)練,得到N個(gè)Sub-SVM分類器;
(4)級(jí)聯(lián)各Sub-SVM分類器為SVM級(jí)聯(lián)器。
考慮到樣本的多樣性,本文選取80余個(gè)視頻場(chǎng)景(包括室內(nèi)、室外、傍晚、燈光、低對(duì)比度、強(qiáng)光照、雨霧等不同情況),其中60余個(gè)作為樣本采集視頻,剩余的20個(gè)留作測(cè)試。共挑選不同姿態(tài)和背景下的行人2 000位,對(duì)每位行人截取3張作為正樣本,并在此基礎(chǔ)上進(jìn)行旋轉(zhuǎn)和鏡像,得到正樣本24 000張。負(fù)樣本由樣本視頻中不包含人頭的圖片獲得,其中Adaboost負(fù)樣本自舉薦產(chǎn)生,SVM負(fù)樣本從圖片中多尺度隨機(jī)截取,并進(jìn)行聚類,共八類。
表1是加入自生長(zhǎng)梯度特征鏈前后,Adaboost對(duì)相同正負(fù)樣本在相同訓(xùn)練參數(shù)下的訓(xùn)練結(jié)果。從表1可以看出,加入梯度鏈特征后分類器所用特征數(shù)目明顯減少。
表1 加入自生長(zhǎng)特征前后的Adaboost訓(xùn)練結(jié)果
表2是SVM級(jí)聯(lián)器中,各Sub-SVM分類器對(duì)所有正樣本和各自對(duì)應(yīng)聚類內(nèi)負(fù)樣本的分類能力。
表2 SVM訓(xùn)練結(jié)果
為了驗(yàn)證所提出的算法對(duì)多視角人頭的檢測(cè)效果,從測(cè)試視頻中截取200張圖片作為測(cè)試集進(jìn)行了人頭檢測(cè)實(shí)驗(yàn),測(cè)試集包含805個(gè)不同視角的人頭。表3是加入自生長(zhǎng)鏈?zhǔn)教卣髑昂蟮?個(gè)Adaboost檢測(cè)器以及加入自生長(zhǎng)鏈?zhǔn)教卣骱蟮腁daboost+SVM組合檢測(cè)器對(duì)測(cè)試集上的實(shí)驗(yàn)結(jié)果??梢钥闯?,加入自生長(zhǎng)鏈?zhǔn)教卣骱螅瑱z測(cè)性能有所提高,Adaboost+SVM組合檢測(cè)器雖然在檢測(cè)率上略有下降,但在去除誤檢方面卻有著非常優(yōu)越的性能。圖5為Adaboost檢測(cè)器對(duì)復(fù)雜場(chǎng)景的檢測(cè)結(jié)果,圖6為Adaboost+SVM組合檢測(cè)器對(duì)同一幅圖片的檢測(cè)結(jié)果。
表3 三種檢測(cè)器在測(cè)試集上的實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)中測(cè)試視頻及測(cè)試圖片集的圖像大小為352、288像素,在雙核、2 GB內(nèi)存PC機(jī)上運(yùn)行速度為10~15 ms/幀,因此完全可以達(dá)到實(shí)時(shí)檢測(cè)的要求。
圖5 Adaboost檢測(cè)結(jié)果
圖6 Adaboost+SVM檢測(cè)結(jié)果
本文通過(guò)對(duì)Adaboost梯度特征的改進(jìn),在一定程度上提高了檢測(cè)率,同時(shí)有效減少了特征的計(jì)算復(fù)雜度。同時(shí),通過(guò)加入SVM級(jí)聯(lián)器,對(duì)Adaboost檢測(cè)結(jié)果進(jìn)行逐級(jí)篩選,極大地減少了誤檢。本人頭實(shí)時(shí)檢測(cè)系統(tǒng)對(duì)雨霧、低對(duì)比度以及復(fù)雜場(chǎng)景有較好的魯棒性,在檢測(cè)效果和運(yùn)行速度上為后續(xù)的人頭計(jì)數(shù)及人流量統(tǒng)計(jì)奠定了堅(jiān)實(shí)的基礎(chǔ)。進(jìn)一步結(jié)合幀間信息,如運(yùn)動(dòng)和跟蹤等策略,效果將會(huì)有進(jìn)一步的提升,這也是下一步主要的研究工作。
[1]VIOLA P,JONES M.Rapid object detection using a boosted cascade of simple features[C].//Proc.of the 2001 IEEE Computer Society Conference,Computer Vision and Pattern Recognition,2001:I-511-518.
[2]CHEN Mao Lin, MA Geng Yu, KEE S.Multi-view human head detection in static images[C].//MVA2005 IAPR Conference on Machine Vision Application,Tsukuba Science City, Japan, May 16-18, 2005:100-103.
[3]林鵬.基于Adaboost算法的人臉檢測(cè)研究及實(shí)現(xiàn)[D].西安:西安理工大學(xué)計(jì)算機(jī)學(xué)院,2007.
[4]郭志波.人臉快速檢測(cè)和特征抽取方法的研究[D].南京:南京理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2007.
[5]SCHAPIRE R E,SINGER Y.Improved boosting algorithms using confidence-rated predictions[J].Machine Learning,1999,37(3):297-336.
[6]童舜海.改進(jìn)的SVM在入侵檢測(cè)中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(34):113-115.
[7]ROWLEY H.Neuralnetwork-based face detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998,20(1):23-38.