顧炯,趙曙光,王宏斌
(東華大學 信息科學與技術學院,上海 201620)
視頻監控場景中的人頭定位和人數統計在現代公共場所的安保、交通客流統計、企業視頻會議、人機交互等領域有著重要作用,在如銀行、商店、停車場、校園等得到了廣泛應用[1]。以前傳統的對于行人定位和人數統計,大多是進行人身整體的一個檢測和跟蹤,并且也取得了很好的應用。然而當人體相互遮擋、攝像頭拍攝距離較近、室內狹小環境的情況時,就很難拍攝到整個人的身體,故基于全身的人體檢測就很難有好的效果[2]。因此,在這種情況下,人體上半身,特別是頭肩部位通常體現地較為完整,且出現頻率一般較高,可以作為人體目標檢測的依據。
復雜背景下的頭肩部檢測 (Head-Shoulder Detection)系統的研究越來越熱。具體來說,其實人頭部檢測又主要分為兩類,近距離正面頭臉區域檢測和遠距離頭部整體檢測。近距離檢測要求圖像拍攝質量較高,因為一般利用面部細節特征,即人臉檢測。人臉檢測可以達到精確識別的功能層次,多用在門禁系統、銀行ATM機、公安領域的身份驗證等。在大多數實際應用中,攝像頭的拍攝角度或者遠近等原因,無法得到清晰的人臉信息,這時就只能進行遠距離檢測,可以采取頭肩部輪廓,紋理,膚色,發色等作為識別特征。根據選取的頭部特征和采用的特征檢測方法的差異,一般分為模板匹配、外觀分類和全局特征的提取等方法。
本文的研究工作是對于有一定俯視角度的稍遠距離的視頻場景中的人流進行頭肩檢測。在這個角度與距離下,采用了頭肩輪廓類似“Ω”形狀作為參考特征[3],基于統計學習的思想訓練頭肩分類器,采取Haar-like與HOG特征的級聯分類方法,對圖像局部區域進行掃描判決并最終得到檢測目標。
基于統計學習模型的目標檢測系統總的來說一般分為這幾個步驟[4]:
1)局部特征分析及特征提取階段;
2)輸入場景的掃描判決階段;
3)后處理階段。
第一步可以說是整個系統最關鍵的一環,很多情況下決定檢測系統的性能好壞并不是分類器的設計,而正是一開始的判決特征選擇的好不好。不同的應用場景下選擇的特征也往往不同,而且其算法復雜度和處理速度往往是一對矛盾,根據實際應用兼顧速度與準確性,挑選合適的樣本特征。本文考慮到在復雜場景下需要提高檢測的準確率,采用了由Dalal等[5]提出的HOG特征并進行了適當改進,同時引入了“組合的HOG”思想。
選定并提取出特征向量后,接下來就是用預先通過大量樣本訓練好的頭肩分類器,對輸入圖像密集掃描的一系列窗口送入分類器進行判決。這一步是檢測的核心環節,分類器的設計至關重要。本文采用結合SVM和AdaBoost的訓練算法,將包含頭肩樣本和不包含頭肩樣本的Joint HOG特征向量作為基礎分類器的SVM,然后通過AdaBoost算法自舉提煉出最終的強分類器。
后處理包括目標框的融合、標記和穩定等一些策略。這部分的工作可以根據用戶需求再具體設定。
系統運行的整體流程如圖1所示。

圖1 頭肩檢測系統整體框圖Fig.1 Flow chart of the whole detection system
方向梯度直方圖最初由Dalal和Triggs[5]等人提出用于行人檢測,并表現出優良的性能。HOG的本質就是圖像局部區域的灰度梯度的統計信息,而梯度主要存在于物體邊緣的地方,所以HOG特征能夠很好的描述圖像的邊緣輪廓信息。HOG特征現在已經被普遍采用,也有許多學者對其進行了一些修改或是擴充。關于HOG的詳細原理這里不再贅述,具體可以參考文獻[5]。
Dalal等提出的HOG提取過程是將每個Block的HOG直方圖獨立計算,一個Block稱為一個basic HOG(基礎特征向量),訓練樣本圖片的像素大小為32×32,分成4×4的64個Cell,每 4個緊鄰的 Cell組成一個 8×8大小的 block,每個Block 里根據 Dalal的方法生成一個 36 維(4 個 cell,0~180°的9個bin方向)的特征向量。所以一張樣本圖片的特征池包含了49個基礎HOG特征向量。
Haar-like特征和HOG特征利用了目標的梯度,對噪聲和光照變化有較強的魯棒性。特別地,HOG特征將局部領域里的灰度梯度進行了直方圖的統計歸一化處理后,對抗光照變化和陰影的影響尤為健壯。但是由于HOG及Haar-like等基礎描述特征比較單一化,很多情況下對復雜區域的描述較為困難?;诖耍P者提出了一種從眾多的低級特征中提取出有效描述的特征的方法,根據頭肩對稱性形成組合的HOG特征,即Joint HOG,如圖2所示。
由于人體是對稱的,反應在拍攝的圖像上,其輪廓也是基本對稱的,筆者用組合兩個相同尺寸的基礎HOG特征作為一個實際檢測用HOG特征向量,稱之為Joint HOG,并結合支持向量機(SVM)和AdaBoost算法,訓練時程序可自動從Joint HOG特征池中挑選出最優特征形成最終的分類器。假設第i和第j個Block分別用bi和bj表示,那么樣本x的 Joint HOG特征可以表示為:

圖2 頭肩Joint HOG特征提取示意圖Fig.2 Illustration of local Joint-HOG feature extraction

設像素(x,y)處的灰度值 L,梯度幅值 g,梯度方向 θ,為簡便起見,采用[-1,0,1]的一維中心梯度算子,即水平和垂直方向的梯度分別為:

則(x,y)像素點的梯度可用下列式子表示:

計算出每個像素的梯度后,在Cell內將梯度幅值按梯度方向權值累加到各自的bin方向上,得到一個梯度直方圖??紤]到背景與上衣的顏色不固定的因素,對于行人的HOG特征采用了0~180°的方向范圍,且每20°進行分割,這樣一共由9個bin方向構成。最終生成的Joint HOG特征可用式(6)表示:

最后要將得到的HOG特征向量進行歸一化,以便使各個Block的特征值表示統一。
人體頭肩輪廓的對稱性和連續性,使得利用Joint HOG特征相比于單一的HOG特征具有更強的區分度,能在一定程度上提升檢測的準確度。
圖3中的joint HOG特征是一個普遍的表述法,筆者設想將樣本的基礎HOG特征分成不同尺寸大小的Block塊,即對于 Cell來說尺寸不一。 選取了 4×4、6×6、8×8 3 種尺寸,每一組Joint HOG必須保證兩個基礎HOG特征尺寸一致??紤]到人頭略微的偏轉情況,實際的Joint HOG特征并不一定完全中軸對稱。


其中x是輸入向量,w是動態可變的權重向量,b是偏移。尋找最優分類器實質就是依照式(7)找到一個超平面,它不但能將兩類(這里只考慮了兩類訓練樣本)無錯誤的分開,而且要使得兩類的分類間隔最大,稱為最優超平面。
所謂支持向量,就是指那些在分類間隔邊界的訓練樣本點,它們是訓練集中的關鍵元素。最后我們實際是利用下面的式子來對輸入的樣本進行判決,稱為最優分類函數。式中,αi是支持向量xi對應的權系數。

AdaBoost算法的基本思想是將大量分類能力一般的弱分類器,通過一定提升方法疊加起來,這個過程稱作Boostiing,從而構成一個分類能力較強的強分類器。AdaBoost會針對不同的訓練集訓練同一個弱分類器,在訓練的過程中可以自適應的調整樣本的權重,以便挑選出最優特征。有學者已經證明,只要每個弱分類器分類能力比隨機性猜測好,就可以實現無差錯分類,即當弱分類器個數趨向無窮時,強分類器的錯誤率將趨向于零。若再將若干個強分類器前后串聯起來,就構成了級聯的強分類器。AdaBoost算法已被大量應用于人臉檢測系統中。

1)初始化m個樣本的權重,假設樣本分布為均勻分為Dt(i)=1/m,Dt(i)表示在第 t輪迭代中樣本 xi的權重。2)設定迭代次數T,即最終的弱分類器個數。3)For t=1,2,…T:
①根據樣本分布及選取的不同特征,按照同一個弱學習算法訓練若干個弱分類器,選擇其中分類錯誤率ε最小的作為本輪迭代的弱分類器:


其中Zt是一個規范化因子,以保證更新后的樣本權重分布符合ΣDt+1(i)=1。
4)得到最終的強分類器:

其中[·]中不等號成立為 1,否則為 0。
②若εj≥1/2,則循環結束。
③令 αt(i)=(1/2)ln[(1-εt)/εt],更新權重:
在實際的應用中,一般采用更為強健的AdaBoost分類器,即將若干個由上述訓練得到的強分類器先后串聯起來,構成一個級聯的強分類器(Classifier Cascade)。
選擇線性SVM作為弱學習算法。首先通過樣本的像素信息,按照第2節所討論的特征表述方法生成對應Joint HOG特征池。對于一幅32×32像素大小的RGB彩色圖片I來說,按照2.3節所介紹的方法,可以得到1 332個72維大小的浮點型特征向量,于是樣本I從單純的二維像素空間映射到了高維特征空間F(特征池)。選擇線性SVM的決策函數,如式(8)。這樣,針對每一個特征向量,監督訓練m個正負樣本都能得到一個線性SVM弱分類器。依照上節所介紹的方法,級聯SVM分類器[6-8]訓練流程如圖3所示。

圖3 Cascade AdaBoost的訓練流程Fig.3 Flow chart of Cascade AdaBoost training
這里還要提到的一點是,每次訓練都要重新計算1 332個特征所對應的SVM,顯然這是非常耗時的。根據文獻[6]提到的方法,可以抽取最少的樣本數并能夠達到對原來樣本集的近似估計。為了找到這個比例,通常從5%的估計里面能夠保證95%的概率近似分布。這里借鑒此方法,在每一輪中隨機抽取并訓練100個特征對應的SVM。
接下來就是對待檢測場景的密集掃描檢測。一般掃描檢測可以有兩種方法,即縮放圖像和縮放窗口。縮放圖像的方法即每對全圖進行一次掃描后,對上一次的場景幀乘以一個縮放因子,然后繼續進行掃描。這種方法適合于幀尺寸不大,特征窗口大小固定的情況;縮放窗口的方法是不改變幀圖像的大小,每次掃描僅對特征窗口進行縮放,一般對像素沒有區間劃分要求的情況下建議使用這種算法,相對比縮放整張幀圖片稍快一點。由于本文利用的是HOG特征,因其對像素劃分有嚴格要求,故采用了縮放圖像的密集掃描方法對視頻幀序列進行掃描。
由于特定的人體頭肩樣本資源比較缺少,實驗用的樣本圖片大多通過現有的一些行人樣本集,手工摳取頭肩區域形成的圖片,用于訓練和測試。原始行人及背景樣本集來自INRIA、PETS2000、MIT樣本集及互聯網上下載的一部分人物圖片。訓練集共包含2 947張頭肩圖像,非頭肩樣本足夠多,在訓練過程中程序可以按照所輸入參數自動從背景圖片中選取所需數量負樣本;測試集共有448張或有或無行人的圖像,具備不同場景、角度、姿態、衣著等,包含大約1 600個明顯頭肩。
筆者設定每一層最小檢出率dmin=0.997,最大虛警率fmax=0.6。實驗在一臺CPU為Intel Core2 DuoT6670 2.2 GHz,內存為1.25 G的PC上,用Visual C++結合OpenCV函數庫實現。
為了更客觀地描述本文提出的檢測算法的性能,筆者將其與其他一些常用算法進行了對比試驗。對上述的同一個測試集進行了3次試驗(見表1)。

表1 測試樣本集的結果Tab.1 Performances for 3 times testing
圖4所示為通過AdaBoost訓練得到的層級和SVM個數之間的關系。筆者發現,在分類器的開頭幾層包含的SVM較少,相應地它們的分類能力應該最好。越到后面級數SVM的個數就增加了,分類能力也就減弱。圖5所示為不同算法的ROC曲線,可以看出,當虛警率較低的時候,文中提出的基于Joint HOG的分類器的漏檢率最低,表現出了良好的檢測性能。表2所示為不同算法的耗時情況掃描的圖片大小為320×240。

圖4 層疊分類器每一層的SVM個數Fig.4 Number of SVMs in each cascade level

表2 掃描檢測耗時比較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個行人的圖片,行人的朝向各異,且存在大致三分之一人數前后或左右遮擋的情況。其中頭肩部位被遮擋也有幾個,但都不是特征嚴重。從檢測結果可以看出,漏檢了2個,誤報了1個。圖中藍色框表示的是經第一級Haar分類器檢測得到的候選目標框,紅色框表示了經Joint HOG分類器驗證通過和合并處理后的單一目標框??梢钥吹?,文中的算法在很低的錯誤率下也能夠檢測出大部分的頭肩目標區域,效果良好。

圖6 行人場景的實際檢測結果Fig.6 Detecting result of an image with some pedestrians
文中針對復雜場景下的行人的頭肩部位進行了識別的研究,基于頭肩的“Ω”輪廓特征,經過Haar分類器的粗過濾,以及基于Joint HOG特征的級聯SVM分類器的精細驗證,完成了頭肩的檢測識別。實驗結果表明該算法具有很好的檢測率和處理速度。
筆者只研究了行人頭肩的檢測,今后的工作將考慮人頭的跟蹤和人數統計等更深入一層的研究。
[1]朱效正.復雜條件下人頭檢測與計數技術研究與實現[D].南京:南京理工大學,2009.
[2]蘇海明.基于頭部特征的人體檢測[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]藺廣逢,范引娣.智能視頻監控中的人體檢測與識別[J].計算機應用,2007,27(B12):91-92,127.
LIN Guang-feng,FAN 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.