景 陽,劉 琳,黃鴻志,曾昭龍
(1.中國人民公安大學,北京102623;2.南京理工大學光電工程411教研室,江蘇南京210094)
行人檢測是模式識別領域的一個熱門話題,它在視頻監控、人群安全預測與管理[1]、高級人機交互等領域有很好的應用價值。關于這一問題,學者們提出了很多方案。徐發牛等人[2]采用利用最小結構誤差匹配結合角度誤差計算,將整個人體看成是一個關節性物體來進行識別,并將匹配策略進行了優化,實現了對人體的識別,這種基于關系匹配的方式容易受到外部環境的干擾,造成識別精度較低。Shaopeng Tang[3]用光流法計算出人體各部位的速度梯度,以此為依據作為人體特征進行識別。光流法精確度較高,當人體出現混疊時,多個人體之間的四肢相互干擾影響識別效果。目前,方向梯度直方圖(HOG)與支持向量機(SVM)分類器相結合的識別方式由于性能較高,已經成為人體識別領域的主要手段。HOG描述子由法國國家計算機技術和控制研究所的研究員Navneet Dalal和Bill Triggs首次提出[4],并且在人體識別領域效果顯著。Dalal方法處理對象是靜態圖像,在計算特征時,HOG描述子維數隨目標尺寸增大而迅速增多,訓練高維SVM需要的樣本數量也相當龐大,運算量很大。針對以上問題,本文主要通過降低HOG描述子的維數進行了改進。一方面,在行人檢測中,合理利用了運動目標提取技術,減小待處理的目標區域,進而降低計算量。Wang[4]利用混合高斯建模技術剔除掉大部分圖像背景,減少了偵測掃描區域,提升了檢測速度;另一方面,通過人體自身特性進行改進。人體頭肩部分不容易受到遮擋等外界干擾,往往只存在不同角度上的差異,結構比較穩定,可以用來代替整個人體進行識別。Min Li[5]等人在 Navneet Dalal思想的基礎上,采用Harr特征和HOG特征相結合的方式,提取了人體的頭肩模型,大大簡化了計算量。
傳統的人體檢測方法主要通過提取大量人體樣本的HOG特征來訓練SVM分類器,實現人體檢測。HOG的維數與樣本大小有關,樣本圖像越大,維數越多。針對整個人體計算其HOG特征,計算量很大,對內存容量也有高的要求。同時,人體運動是一個相對復雜的過程,四肢的運動形式尤其復雜,為了獲得一個識別率高的SVM分類器,必然需要大量的多種運動形式的人體樣本參與訓練,這就進一步增加了運算量,且由于四肢的運動多樣性,SVM的分類效果也有所局限。考慮到人體頭肩部分的運動相對簡單,并且具有一定的穩定性,可以用人體頭肩模型來代替整個人體,這樣做的優點有兩方面:一方面,計算頭肩模型的HOG特征要明顯小于整個人體的HOG特征,這就降低了計算量,減輕內存負擔;另一方面,無論是行人還是騎自行車的人,頭肩部分的運動除了角度上的差異,運動方式比較單一,增強了人體識別的可靠性和穩定性。基于以上兩點,采用頭肩模型代替人體進行識別是一個很好的選擇。
本文提出了基于頭肩模型的快速人體檢測方法:首先在INRIA行人數據庫中提取大量的人體頭肩模型樣本,計算正負樣本的HOG特征并訓練SVM分類器;然后對待檢測的監控視頻,先采用混合高斯模型[6]進行運動目標提取預處理,結合Sobel邊緣檢測算子[7],提取目標輪廓,并計算頭肩模型的范圍;第三,計算頭肩模型的HOG特征,并分類;第四,對分類為非人體的樣本按照Dalal方法進行二次處理。在實驗部分,采用本文方法與多文獻方法進行了性能比較,結果表明本文算法在人體識別率和識別速率上都有所改善。
結合文獻[4]中涉及的混合高斯目標提取技術來減小目標識別范圍。混合高斯模型是一種常用目標提取技術,它是Chris Stauffer[6]等人提出的。該算法的核心是通過自適應調整多個高斯模型實現前景和背景的分離。混合高斯模型如式(1)所示

式中:Xt表示時刻t像素 {x0,y0}的值;μi,t和 Σi,t分別是時刻t第i個高斯分布的均值和協方差矩陣;ωi,t是時刻t第i個高斯分布的權重;η定義為高斯密度函數;K個高斯模型通過不斷地更新參數,完成前景和背景的檢測。參數更新公式如下

某一像素與背景模型相匹配則認為該像素是背景像素,否則,則認為是前景像素,從而實現前景的提取。通過混合高斯模型可以獲得運動目標的圖像以及其目標二值圖像,為后續處理做準備。
頭肩模型包括高度和寬度兩個參數,高度表示為人體頭頂到胸腔上部,寬度為人體肩膀寬度。頭肩模型的高度和寬度可以通過人體正常比例進行估計獲得,因此,首先需要確定人體的形態。混合高斯模型提供了運動人體的二值圖像,但是混合高斯產生的二值圖像往往不夠完整,而是由很多不連續的塊組成,與實際的人體形態有很大的差異。經過腐蝕膨脹等處理后,盡管可以將不連續的塊組合在一起,但是獲得的人體邊界是畸變的,與實際的人體邊界有很大差異。為此,可以采用邊緣檢測的方式對這種畸變加以約束。
常用的邊緣檢測算子有Sobel,Canny,Prewitt邊緣檢測算子、Laplace邊緣檢測算子等[8]。在一個拍攝距離較遠的監控視頻中,混合高斯提取的運動人體目標往往比較模糊,并且噪聲比較大,因此,針對這種目標進行邊緣檢測時,應該盡可能地降低噪聲的干擾,Sobel邊緣檢測算子對噪聲具有平滑作用,可以較好地減少背景等干擾對人體邊緣提取的影響。在人體邊緣提取過程中,首先對人體目標進行Sobel邊緣檢測,此時獲得的目標輪廓往往容易受到背景輪廓的影響,因此需要對輪廓進行修正。混合高斯模型提取的目標中不存在背景像素,因此可以對Sobel提取的輪廓進行修正。若輪廓像素同時為人體二值圖的像素,則認為該像素屬于人體輪廓,否則認為該像素為背景輪廓,需要被剔除。頭肩模型提取過程如圖1所示,通過這種方式獲得一個完整準確的人體輪廓。

對輪廓進行填充,重新獲得人體二值圖像。計算其水平投影直方圖,獲取人體各處的寬度曲線。寬度曲線的第一個極小值表示為脖子的位置,即圖2中的A點。從人體頂點O到A點的范圍內,獲取寬度曲線的最大值作為頭部的寬度。根據人體正常比例關系,即可獲得人體頭肩模型的高度。從人體頂點O到頭肩模型高度范圍內的寬度曲線最大值,即為頭肩模型的寬度。從目標圖像中截取高度和寬度對應的矩形范圍,即可獲得人體頭肩模型。

Navneet Dalal和Bill Triggs首次提出了HOG的概念,HOG描述子用來計算局部圖像梯度的方向信息的統計值,可以用來描述局部目標的表象和形狀。計算HOG描述子是一個將區域特征相互疊加的過程,目標區域通過細胞單元劃分為各個小區域,然后各個小區域組合成一個塊單元,HOG特征即各個區域特征的組合,如圖3所示。

圖3 HOG計算過程
首先采用Gamma校正法對輸入圖像進行顏色空間的標準化,然后根據式(5)和式(6)計算圖像中各個像素的水平梯度Gx和垂直梯度Gy

式中:f(x,y)是圖像灰度曲線。根據式(7)和式(8)計算梯度的大小和方向

將圖像劃分為像素數為n×n的細胞單元,根據角度的不同,統計細胞內的梯度方向直方圖。角度通常限定在0°~180°,均勻分為9個通道區域,每個細胞獲得一個9維的特征向量。Dalal實驗驗證了梯度模板越簡單,分類結果越好,并且采用[-1,0,1]為模板計算每個cell的梯度效果最好。
相鄰的M×N個細胞單元組合為一個塊區域,M×N個細胞單元的特征向量串聯成塊區域的一個M×N×9的特征向量,對區域內的每個細胞的梯度結果進行統一規劃,可以使特征向量對光照、陰影和邊緣變化具有魯棒性。
在一個M×N的搜索窗口中,塊區域的移動步長為一個cell的大小,則搜多窗口的內有((M-Nn)/n+1)2個塊區域,搜索窗口的特征向量維數有((M-Nn)/n+1)2×N2×9,這就是一個搜索窗口的HOG描述子。
從INRIA中截取人體頭肩模型,并統一大小為64×64,同樣截取負樣本并統一大小。M.Kachouane[9]從提高識別速率的角度做了系列實驗,驗證了當細胞大小為8×8時,在獲得好的識別率的同時,處理速度最快。設定細胞大小為8×8,塊大小16×16,搜索窗口為64×64,則每個樣本獲得一個1 764維特征向量。對2 000個正樣本和3 000個負樣本的特征向量進行訓練,獲得SVM模型分類器。
對通過上述處理獲得的頭肩模型統一大小為64×64,設定細胞大小為8×8,塊大小16×16,搜索窗口為64×64,計算HOG特征向量并通過訓練好的SVM分類器進行分類。當人體之間存在遮擋和混疊時,混合高斯模型提取的目標包含多個人體,按照本文所述的頭肩模型提取方法提取的頭肩模型可能不準確,使得分類發生錯判。這種情況下,需要對分類為非人體的樣本做進一步處理。即采用Dalal的方法,對混合高斯模型提取出的整個運動目標重新進行識別,從而確保識別率。
本次實驗以MATLAB為平臺,針對分辨率為660×492,幀數為703的視頻分別采用Dalal算法、文獻[4]算法和本文算法進行處理。實驗手段主要依據Dalal算法,設置窗口滑動間隔為8個像素,掃描尺度為0.6~1.2,尺度變化間隔為1.2倍。文獻[4]在Dalal算法的基礎上,引進混合高斯模型,減少了背景部分的運算。3種方法在識別率和識別速率上進行了比較,實驗結果見表1。

表1 3種方法之間的性能比較表
從表1可以看出,在識別率上,混合高斯目標提取技術的應用避免了Dalal算法對某些背景區域的誤識別,但同時受到本身靈敏度的限制,可能造成對靜止人體的漏檢,造成識別率的降低,但總體上,最佳識別率與Dalal算法相比有所提高。本文算法由于選取了穩定的頭肩模型作為識別目標,避免了肢體等復雜運動的干擾,最佳識別率略有提高。從處理時間上,由于本方法結合了混合高斯目標提取,避免了傳統Dalal方法在背景區域上重復計算,同時,頭肩模型的尺寸較小,其特征向量的維數相對較少,減少了計算量,每幀的平均處理速度有很大程度的提高。
圖4為人體檢測效果圖,陰影區域表示識別為人體,長方框表示識別為非人體,其中右圖中由于兩個人體距離比較近,混合高斯模型無法精確分割兩個人體,使得頭肩模型提取錯誤而引起誤判,經過Dalal算法修正后,可以從該目標圖像中識別出兩個人體。本方法除了可以識別行人外,還可以檢測騎車等特殊行人。本文算法只需要獲得頭肩模型作為識別目標,識別結果不受頭肩部分以下的影響。由于頭肩模型的高度僅由水平投影直方圖的第一個極小值,即頭肩連接部位決定,因此,本文算法對騎車等特殊行人仍有良好的檢測效果。

本文在傳統Dalal人體識別方法的基礎上,采用混合高斯模型提取運動目標,并提取頭肩模型代替整個人體進行識別。從識別率和處理時間上,該方法都較傳統的方法有所提高。同時,由于頭肩模型提取過程中,不受頭肩部分以下運動的干擾,對騎車等特殊行人仍有很好的識別效果。然而算法仍然有需要改進的地方,頭肩部分盡管不容易受到遮擋,但當人體目標之間出現混疊時,混合高斯模型無法對獨立目標進行精確提取,往往提取的目標區域中包含多個人體,此時,盡管采用Dalal算法進行了修正,但是延長了處理時間,未來可以對此做進一步的改進。
:
[1]車志富,苗振江,王夢思.地鐵視頻監控系統中的行人檢測研究與應用[J].現代城市軌道交通,2010(2):31-36.
[2]徐發,牛黃芳,汪君.基于關系匹配的部件化人體識別[J].微計算機信息,2009,25(12):170-172.
[3] TANG S,SATOSHI G.Human detection using motion and appearance based feature[EB/OL].[2014-03-24].http://www.researchgate.net/publication/224107481_Human_detection_using_motion_and_appearance_based_feature.
[4] STAUFFER C,GRIMSON W E L.Adaptive background mixture models for real-time tracking[EB/OL].[2014-03-24].http://wenku.baidu.com/link?url=LT44XYSg5qvyBDFprTb3mvkEVlYgb9HdUQPWdse-URDdyR62EhHC4GUgnPR1XvSygq217fXCzjrLiXSJbon4Th4by2wlMylIBN AVG8ttvPK.
[5] LI Min,ZHANG Zhaoxiang,HUANG Kaiqi,et al.Rapid and robust human detection and tracking based on omega-shape features[EB/OL].[2014-03-24].http://easyscholar.ruc.edu.cn/homepage/zxzhang/index.htm.
[6] STAUFFER C M,GRIMSON W E L.Adaptive background mixture models for real-time tracking[EB/OL].[2014-03-24].http://wenku.baidu.com/link?url=-080XHhxxzvUbBiY6iJL4cZpb8hfVOIYZX6fMi_UCj1yCV1mHatv1LAYQ4fNvzw4IktVn7nrBFL4N2RumPV_58RwsYnO vCKP6uRPkmEU0h7.
[7]王康泰,戴文戰.一種基于Sobel算子和灰色關聯度的圖像邊緣檢測方法[J].計算機應用,2005,26(5):1035-1036.
[8]周道炳,朱衛綱.幾種邊緣檢測算子的評估[J].指揮技術學院學報,2000,11(1):59-63.
[9] KACHOUANE M,SAHKI S,LAKROUF M,et al.HOG based fast human detection[EB/OL].[2014-03-24].http://www.researchgate.net/publication/237047488_HOG_Based_fast_Human_Detection?ev=auth_pub.