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