顧炯,趙曙光,王宏斌
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
視頻監(jiān)控場(chǎng)景中的人頭定位和人數(shù)統(tǒng)計(jì)在現(xiàn)代公共場(chǎng)所的安保、交通客流統(tǒng)計(jì)、企業(yè)視頻會(huì)議、人機(jī)交互等領(lǐng)域有著重要作用,在如銀行、商店、停車場(chǎng)、校園等得到了廣泛應(yīng)用[1]。以前傳統(tǒng)的對(duì)于行人定位和人數(shù)統(tǒng)計(jì),大多是進(jìn)行人身整體的一個(gè)檢測(cè)和跟蹤,并且也取得了很好的應(yīng)用。然而當(dāng)人體相互遮擋、攝像頭拍攝距離較近、室內(nèi)狹小環(huán)境的情況時(shí),就很難拍攝到整個(gè)人的身體,故基于全身的人體檢測(cè)就很難有好的效果[2]。因此,在這種情況下,人體上半身,特別是頭肩部位通常體現(xiàn)地較為完整,且出現(xiàn)頻率一般較高,可以作為人體目標(biāo)檢測(cè)的依據(jù)。
復(fù)雜背景下的頭肩部檢測(cè) (Head-Shoulder Detection)系統(tǒng)的研究越來越熱。具體來說,其實(shí)人頭部檢測(cè)又主要分為兩類,近距離正面頭臉區(qū)域檢測(cè)和遠(yuǎn)距離頭部整體檢測(cè)。近距離檢測(cè)要求圖像拍攝質(zhì)量較高,因?yàn)橐话憷妹娌考?xì)節(jié)特征,即人臉檢測(cè)。人臉檢測(cè)可以達(dá)到精確識(shí)別的功能層次,多用在門禁系統(tǒng)、銀行ATM機(jī)、公安領(lǐng)域的身份驗(yàn)證等。在大多數(shù)實(shí)際應(yīng)用中,攝像頭的拍攝角度或者遠(yuǎn)近等原因,無法得到清晰的人臉信息,這時(shí)就只能進(jìn)行遠(yuǎn)距離檢測(cè),可以采取頭肩部輪廓,紋理,膚色,發(fā)色等作為識(shí)別特征。根據(jù)選取的頭部特征和采用的特征檢測(cè)方法的差異,一般分為模板匹配、外觀分類和全局特征的提取等方法。
本文的研究工作是對(duì)于有一定俯視角度的稍遠(yuǎn)距離的視頻場(chǎng)景中的人流進(jìn)行頭肩檢測(cè)。在這個(gè)角度與距離下,采用了頭肩輪廓類似“Ω”形狀作為參考特征[3],基于統(tǒng)計(jì)學(xué)習(xí)的思想訓(xùn)練頭肩分類器,采取Haar-like與HOG特征的級(jí)聯(lián)分類方法,對(duì)圖像局部區(qū)域進(jìn)行掃描判決并最終得到檢測(cè)目標(biāo)。
基于統(tǒng)計(jì)學(xué)習(xí)模型的目標(biāo)檢測(cè)系統(tǒng)總的來說一般分為這幾個(gè)步驟[4]:
1)局部特征分析及特征提取階段;
2)輸入場(chǎng)景的掃描判決階段;
3)后處理階段。
第一步可以說是整個(gè)系統(tǒng)最關(guān)鍵的一環(huán),很多情況下決定檢測(cè)系統(tǒng)的性能好壞并不是分類器的設(shè)計(jì),而正是一開始的判決特征選擇的好不好。不同的應(yīng)用場(chǎng)景下選擇的特征也往往不同,而且其算法復(fù)雜度和處理速度往往是一對(duì)矛盾,根據(jù)實(shí)際應(yīng)用兼顧速度與準(zhǔn)確性,挑選合適的樣本特征。本文考慮到在復(fù)雜場(chǎng)景下需要提高檢測(cè)的準(zhǔn)確率,采用了由Dalal等[5]提出的HOG特征并進(jìn)行了適當(dāng)改進(jìn),同時(shí)引入了“組合的HOG”思想。
選定并提取出特征向量后,接下來就是用預(yù)先通過大量樣本訓(xùn)練好的頭肩分類器,對(duì)輸入圖像密集掃描的一系列窗口送入分類器進(jìn)行判決。這一步是檢測(cè)的核心環(huán)節(jié),分類器的設(shè)計(jì)至關(guān)重要。本文采用結(jié)合SVM和AdaBoost的訓(xùn)練算法,將包含頭肩樣本和不包含頭肩樣本的Joint HOG特征向量作為基礎(chǔ)分類器的SVM,然后通過AdaBoost算法自舉提煉出最終的強(qiáng)分類器。
后處理包括目標(biāo)框的融合、標(biāo)記和穩(wěn)定等一些策略。這部分的工作可以根據(jù)用戶需求再具體設(shè)定。
系統(tǒng)運(yùn)行的整體流程如圖1所示。
圖1 頭肩檢測(cè)系統(tǒng)整體框圖Fig.1 Flow chart of the whole detection system
方向梯度直方圖最初由Dalal和Triggs[5]等人提出用于行人檢測(cè),并表現(xiàn)出優(yōu)良的性能。HOG的本質(zhì)就是圖像局部區(qū)域的灰度梯度的統(tǒng)計(jì)信息,而梯度主要存在于物體邊緣的地方,所以HOG特征能夠很好的描述圖像的邊緣輪廓信息。HOG特征現(xiàn)在已經(jīng)被普遍采用,也有許多學(xué)者對(duì)其進(jìn)行了一些修改或是擴(kuò)充。關(guān)于HOG的詳細(xì)原理這里不再贅述,具體可以參考文獻(xiàn)[5]。
Dalal等提出的HOG提取過程是將每個(gè)Block的HOG直方圖獨(dú)立計(jì)算,一個(gè)Block稱為一個(gè)basic HOG(基礎(chǔ)特征向量),訓(xùn)練樣本圖片的像素大小為32×32,分成4×4的64個(gè)Cell,每 4個(gè)緊鄰的 Cell組成一個(gè) 8×8大小的 block,每個(gè)Block 里根據(jù) Dalal的方法生成一個(gè) 36 維(4 個(gè) cell,0~180°的9個(gè)bin方向)的特征向量。所以一張樣本圖片的特征池包含了49個(gè)基礎(chǔ)HOG特征向量。
Haar-like特征和HOG特征利用了目標(biāo)的梯度,對(duì)噪聲和光照變化有較強(qiáng)的魯棒性。特別地,HOG特征將局部領(lǐng)域里的灰度梯度進(jìn)行了直方圖的統(tǒng)計(jì)歸一化處理后,對(duì)抗光照變化和陰影的影響尤為健壯。但是由于HOG及Haar-like等基礎(chǔ)描述特征比較單一化,很多情況下對(duì)復(fù)雜區(qū)域的描述較為困難。基于此,筆者提出了一種從眾多的低級(jí)特征中提取出有效描述的特征的方法,根據(jù)頭肩對(duì)稱性形成組合的HOG特征,即Joint HOG,如圖2所示。
由于人體是對(duì)稱的,反應(yīng)在拍攝的圖像上,其輪廓也是基本對(duì)稱的,筆者用組合兩個(gè)相同尺寸的基礎(chǔ)HOG特征作為一個(gè)實(shí)際檢測(cè)用HOG特征向量,稱之為Joint HOG,并結(jié)合支持向量機(jī)(SVM)和AdaBoost算法,訓(xùn)練時(shí)程序可自動(dòng)從Joint HOG特征池中挑選出最優(yōu)特征形成最終的分類器。假設(shè)第i和第j個(gè)Block分別用bi和bj表示,那么樣本x的 Joint HOG特征可以表示為:
圖2 頭肩Joint HOG特征提取示意圖Fig.2 Illustration of local Joint-HOG feature extraction
設(shè)像素(x,y)處的灰度值 L,梯度幅值 g,梯度方向 θ,為簡(jiǎn)便起見,采用[-1,0,1]的一維中心梯度算子,即水平和垂直方向的梯度分別為:
則(x,y)像素點(diǎn)的梯度可用下列式子表示:
計(jì)算出每個(gè)像素的梯度后,在Cell內(nèi)將梯度幅值按梯度方向權(quán)值累加到各自的bin方向上,得到一個(gè)梯度直方圖??紤]到背景與上衣的顏色不固定的因素,對(duì)于行人的HOG特征采用了0~180°的方向范圍,且每20°進(jìn)行分割,這樣一共由9個(gè)bin方向構(gòu)成。最終生成的Joint HOG特征可用式(6)表示:
最后要將得到的HOG特征向量進(jìn)行歸一化,以便使各個(gè)Block的特征值表示統(tǒng)一。
人體頭肩輪廓的對(duì)稱性和連續(xù)性,使得利用Joint HOG特征相比于單一的HOG特征具有更強(qiáng)的區(qū)分度,能在一定程度上提升檢測(cè)的準(zhǔn)確度。
圖3中的joint HOG特征是一個(gè)普遍的表述法,筆者設(shè)想將樣本的基礎(chǔ)HOG特征分成不同尺寸大小的Block塊,即對(duì)于 Cell來說尺寸不一。 選取了 4×4、6×6、8×8 3 種尺寸,每一組Joint HOG必須保證兩個(gè)基礎(chǔ)HOG特征尺寸一致??紤]到人頭略微的偏轉(zhuǎn)情況,實(shí)際的Joint HOG特征并不一定完全中軸對(duì)稱。
其中x是輸入向量,w是動(dòng)態(tài)可變的權(quán)重向量,b是偏移。尋找最優(yōu)分類器實(shí)質(zhì)就是依照式(7)找到一個(gè)超平面,它不但能將兩類(這里只考慮了兩類訓(xùn)練樣本)無錯(cuò)誤的分開,而且要使得兩類的分類間隔最大,稱為最優(yōu)超平面。
所謂支持向量,就是指那些在分類間隔邊界的訓(xùn)練樣本點(diǎn),它們是訓(xùn)練集中的關(guān)鍵元素。最后我們實(shí)際是利用下面的式子來對(duì)輸入的樣本進(jìn)行判決,稱為最優(yōu)分類函數(shù)。式中,αi是支持向量xi對(duì)應(yīng)的權(quán)系數(shù)。
AdaBoost算法的基本思想是將大量分類能力一般的弱分類器,通過一定提升方法疊加起來,這個(gè)過程稱作Boostiing,從而構(gòu)成一個(gè)分類能力較強(qiáng)的強(qiáng)分類器。AdaBoost會(huì)針對(duì)不同的訓(xùn)練集訓(xùn)練同一個(gè)弱分類器,在訓(xùn)練的過程中可以自適應(yīng)的調(diào)整樣本的權(quán)重,以便挑選出最優(yōu)特征。有學(xué)者已經(jīng)證明,只要每個(gè)弱分類器分類能力比隨機(jī)性猜測(cè)好,就可以實(shí)現(xiàn)無差錯(cuò)分類,即當(dāng)弱分類器個(gè)數(shù)趨向無窮時(shí),強(qiáng)分類器的錯(cuò)誤率將趨向于零。若再將若干個(gè)強(qiáng)分類器前后串聯(lián)起來,就構(gòu)成了級(jí)聯(lián)的強(qiáng)分類器。AdaBoost算法已被大量應(yīng)用于人臉檢測(cè)系統(tǒng)中。
1)初始化m個(gè)樣本的權(quán)重,假設(shè)樣本分布為均勻分為Dt(i)=1/m,Dt(i)表示在第 t輪迭代中樣本 xi的權(quán)重。2)設(shè)定迭代次數(shù)T,即最終的弱分類器個(gè)數(shù)。3)For t=1,2,…T:
①根據(jù)樣本分布及選取的不同特征,按照同一個(gè)弱學(xué)習(xí)算法訓(xùn)練若干個(gè)弱分類器,選擇其中分類錯(cuò)誤率ε最小的作為本輪迭代的弱分類器:
其中Zt是一個(gè)規(guī)范化因子,以保證更新后的樣本權(quán)重分布符合ΣDt+1(i)=1。
4)得到最終的強(qiáng)分類器:
其中[·]中不等號(hào)成立為 1,否則為 0。
②若εj≥1/2,則循環(huán)結(jié)束。
③令 αt(i)=(1/2)ln[(1-εt)/εt],更新權(quán)重:
在實(shí)際的應(yīng)用中,一般采用更為強(qiáng)健的AdaBoost分類器,即將若干個(gè)由上述訓(xùn)練得到的強(qiáng)分類器先后串聯(lián)起來,構(gòu)成一個(gè)級(jí)聯(lián)的強(qiáng)分類器(Classifier Cascade)。
選擇線性SVM作為弱學(xué)習(xí)算法。首先通過樣本的像素信息,按照第2節(jié)所討論的特征表述方法生成對(duì)應(yīng)Joint HOG特征池。對(duì)于一幅32×32像素大小的RGB彩色圖片I來說,按照2.3節(jié)所介紹的方法,可以得到1 332個(gè)72維大小的浮點(diǎn)型特征向量,于是樣本I從單純的二維像素空間映射到了高維特征空間F(特征池)。選擇線性SVM的決策函數(shù),如式(8)。這樣,針對(duì)每一個(gè)特征向量,監(jiān)督訓(xùn)練m個(gè)正負(fù)樣本都能得到一個(gè)線性SVM弱分類器。依照上節(jié)所介紹的方法,級(jí)聯(lián)SVM分類器[6-8]訓(xùn)練流程如圖3所示。
圖3 Cascade AdaBoost的訓(xùn)練流程Fig.3 Flow chart of Cascade AdaBoost training
這里還要提到的一點(diǎn)是,每次訓(xùn)練都要重新計(jì)算1 332個(gè)特征所對(duì)應(yīng)的SVM,顯然這是非常耗時(shí)的。根據(jù)文獻(xiàn)[6]提到的方法,可以抽取最少的樣本數(shù)并能夠達(dá)到對(duì)原來樣本集的近似估計(jì)。為了找到這個(gè)比例,通常從5%的估計(jì)里面能夠保證95%的概率近似分布。這里借鑒此方法,在每一輪中隨機(jī)抽取并訓(xùn)練100個(gè)特征對(duì)應(yīng)的SVM。
接下來就是對(duì)待檢測(cè)場(chǎng)景的密集掃描檢測(cè)。一般掃描檢測(cè)可以有兩種方法,即縮放圖像和縮放窗口。縮放圖像的方法即每對(duì)全圖進(jìn)行一次掃描后,對(duì)上一次的場(chǎng)景幀乘以一個(gè)縮放因子,然后繼續(xù)進(jìn)行掃描。這種方法適合于幀尺寸不大,特征窗口大小固定的情況;縮放窗口的方法是不改變幀圖像的大小,每次掃描僅對(duì)特征窗口進(jìn)行縮放,一般對(duì)像素沒有區(qū)間劃分要求的情況下建議使用這種算法,相對(duì)比縮放整張幀圖片稍快一點(diǎn)。由于本文利用的是HOG特征,因其對(duì)像素劃分有嚴(yán)格要求,故采用了縮放圖像的密集掃描方法對(duì)視頻幀序列進(jìn)行掃描。
由于特定的人體頭肩樣本資源比較缺少,實(shí)驗(yàn)用的樣本圖片大多通過現(xiàn)有的一些行人樣本集,手工摳取頭肩區(qū)域形成的圖片,用于訓(xùn)練和測(cè)試。原始行人及背景樣本集來自INRIA、PETS2000、MIT樣本集及互聯(lián)網(wǎng)上下載的一部分人物圖片。訓(xùn)練集共包含2 947張頭肩圖像,非頭肩樣本足夠多,在訓(xùn)練過程中程序可以按照所輸入?yún)?shù)自動(dòng)從背景圖片中選取所需數(shù)量負(fù)樣本;測(cè)試集共有448張或有或無行人的圖像,具備不同場(chǎng)景、角度、姿態(tài)、衣著等,包含大約1 600個(gè)明顯頭肩。
筆者設(shè)定每一層最小檢出率dmin=0.997,最大虛警率fmax=0.6。實(shí)驗(yàn)在一臺(tái)CPU為Intel Core2 DuoT6670 2.2 GHz,內(nèi)存為1.25 G的PC上,用Visual C++結(jié)合OpenCV函數(shù)庫實(shí)現(xiàn)。
為了更客觀地描述本文提出的檢測(cè)算法的性能,筆者將其與其他一些常用算法進(jìn)行了對(duì)比試驗(yàn)。對(duì)上述的同一個(gè)測(cè)試集進(jìn)行了3次試驗(yàn)(見表1)。
表1 測(cè)試樣本集的結(jié)果Tab.1 Performances for 3 times testing
圖4所示為通過AdaBoost訓(xùn)練得到的層級(jí)和SVM個(gè)數(shù)之間的關(guān)系。筆者發(fā)現(xiàn),在分類器的開頭幾層包含的SVM較少,相應(yīng)地它們的分類能力應(yīng)該最好。越到后面級(jí)數(shù)SVM的個(gè)數(shù)就增加了,分類能力也就減弱。圖5所示為不同算法的ROC曲線,可以看出,當(dāng)虛警率較低的時(shí)候,文中提出的基于Joint HOG的分類器的漏檢率最低,表現(xiàn)出了良好的檢測(cè)性能。表2所示為不同算法的耗時(shí)情況掃描的圖片大小為320×240。
圖4 層疊分類器每一層的SVM個(gè)數(shù)Fig.4 Number of SVMs in each cascade level
表2 掃描檢測(cè)耗時(shí)比較Tab.2 Time required to detect an image
圖5 3種HOG分類算法的ROC性能曲線Fig.5 ROC curves of comparing three HOG features
圖6所示為一張320×240大小,包含10個(gè)行人的圖片,行人的朝向各異,且存在大致三分之一人數(shù)前后或左右遮擋的情況。其中頭肩部位被遮擋也有幾個(gè),但都不是特征嚴(yán)重。從檢測(cè)結(jié)果可以看出,漏檢了2個(gè),誤報(bào)了1個(gè)。圖中藍(lán)色框表示的是經(jīng)第一級(jí)Haar分類器檢測(cè)得到的候選目標(biāo)框,紅色框表示了經(jīng)Joint HOG分類器驗(yàn)證通過和合并處理后的單一目標(biāo)框??梢钥吹?,文中的算法在很低的錯(cuò)誤率下也能夠檢測(cè)出大部分的頭肩目標(biāo)區(qū)域,效果良好。
圖6 行人場(chǎng)景的實(shí)際檢測(cè)結(jié)果Fig.6 Detecting result of an image with some pedestrians
文中針對(duì)復(fù)雜場(chǎng)景下的行人的頭肩部位進(jìn)行了識(shí)別的研究,基于頭肩的“Ω”輪廓特征,經(jīng)過Haar分類器的粗過濾,以及基于Joint HOG特征的級(jí)聯(lián)SVM分類器的精細(xì)驗(yàn)證,完成了頭肩的檢測(cè)識(shí)別。實(shí)驗(yàn)結(jié)果表明該算法具有很好的檢測(cè)率和處理速度。
筆者只研究了行人頭肩的檢測(cè),今后的工作將考慮人頭的跟蹤和人數(shù)統(tǒng)計(jì)等更深入一層的研究。
[1]朱效正.復(fù)雜條件下人頭檢測(cè)與計(jì)數(shù)技術(shù)研究與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2009.
[2]蘇海明.基于頭部特征的人體檢測(cè)[J].信息與電腦,2010(3):16-17.
SU Hai-ming.Human body detection and tracking based on body-head feature[J].China Computer&Communication,2010(3):16-17.
[3]LI Min,ZHANG Zhao-xiang,HUANG Kai-qi,et al.Rapid and robust human detection and tracking based on omegashape[C]//16th IEEE International Conference on Image Processing,2009:2545-2548.
[4]藺廣逢,范引娣.智能視頻監(jiān)控中的人體檢測(cè)與識(shí)別[J].計(jì)算機(jī)應(yīng)用,2007,27(B12):91-92,127.
LIN Guang-feng,F(xiàn)AN Yin-di.Human body detection and recognition in intelligent video surveillance[J].Journal of Computer Application,2007,27(B12):91-92,127.
[5]Dalal N,Triggs B.Histograms of oriented gradients for human detection [C]//Coference on Computer Vision and Pattern Recognition(CVPR),2005:886-893.
[6]Zhu Q,Avidan S,Yeh M C,et al.Fast human detection using a cascade of histograms of oriented gradients[C]//Conference on Computer Vision and Pattern Recognition(CVPR),2006:1491-1498.
[7]LI Min,ZHANG Zhao-xiang,HUANG Kai-qi,et al.Estimating the uumber of people in crowded scenes by MID based foreground segmentation and head-shoulder detection[C]//16thIEEE International Conference on Pattern Recognition,2009:1-4.
[8]DING Xi-feng,XU Hui,CUI Peng,et al.A cascade SVM approach for head-shoulder detection using histograms of oriented gradients[C]//IEEE International Symposium on Circuits and Systems,2009:1791-1794.