劉國明
摘要:為實現(xiàn)復雜背景下快速、精準的行人檢測,研究了方向梯度直方圖(Histogram of OrientedGradient,HOG)特征描述子和局部二值模式(Local Binary Pattern,LBP)特征描述子。通過融合HOG特征和LBP特征,然后利用支持向量機(Sup-portVectorMachine,SVM)和自適應增強(AdaptiveBoosting,AdaBoost)算法對樣本特征進行訓練獲得分類器,最后在IN-RIA行人數(shù)據(jù)庫進行了三組對比試驗。實驗結果表明,HOG特征描述子在行人特征描述中要優(yōu)于LBP特征描述子,本設計使得行人檢測的實時性和識別率都有一定的提高。
關鍵詞:行人檢測;方向梯度直方圖;局部二值模式;支持向量機;自適應增強
無人駕駛汽車的快速發(fā)展,使得行人檢測技術顯得尤為重要。行人檢測技術有兩個核心的問題:行人特征提取和分類檢測。Dalai等提出了HOG特征描述子,并利用SVM分類器進行行人檢測。HOG特征是目前使用最廣泛的行人特征描述子,通過計算梯度或邊緣的方向密度,可以很好地描述局部目標的表象和形狀。雖然Dalai等基于HOG的行人檢測系統(tǒng)在行人姿態(tài)單一的MIT數(shù)據(jù)庫上檢測率接近最優(yōu),但是實際應用中的行人檢測系統(tǒng)容易受到行人姿態(tài)、人物遮擋以及光照等因素影響。因此,多姿態(tài)以及復雜背景下的行人檢測仍然是目前的研究熱點。0jala等提出LBP特征描述子,然后又針對原始LBP特征的優(yōu)化,提出了具有旋轉不變性的LBPROT以及等價模式(Uniform Pattern)ULBP特征描述子。針對HOG特征在描述局部紋理特征的不足,利用LBP特征來描述圖像局部紋理特征,據(jù)此,Wang等提出了基于HOG-LBP融合特征的行人檢測。
行人圖像的特征向量提取出來后,就利用分類器進行行人的檢測。SVM是一種有監(jiān)督式的學習模型,其定義為把訓練樣本貼好標簽,然后找到最優(yōu)化的分隔超平面,一般用于二類分類問題。Freund等改進了Boosting算法,提出了AdaBoost算法。針對AdaBoost算法,Jones等提出了由若干個AdaBoost分類器串聯(lián)組合而成的AdaBoost級聯(lián)分類器,成功實現(xiàn)了第一個實時人臉檢測系統(tǒng)。Schapire證明了AdaBoost算法的收斂性。
通過融合HOG-LBP特征,利用開源計算機視覺庫(OpenSource Computer Vision Hbrary,OpenCV)在Visual Studio 2012平臺上實現(xiàn)了靜態(tài)圖像中的行人檢測。在INRIA數(shù)據(jù)庫進行了三組對比實驗,第一組實驗通過融合HOG-LBP特征提取行人特征,并采用SVM分類器進行行人分類檢測。第二組和第三組實驗為單一特征,并采用AdaBoost分類器進行行人分類檢測。從實驗數(shù)據(jù)中觀察到,第一組實驗的識別率明顯比另外兩組高,并且訓練分類器的時間也明顯少于另外兩組實驗。
1特征提取
1.1 HOG特征提取
提出HOG特征描述子,它通過計算和統(tǒng)計圖像局部區(qū)域的梯度方向直方圖來構成特征,廣泛應用于圖像處理中進行物體檢測。提取HOG特征包括以下幾個步驟:
1)歸一化圖像。首先把輸入的彩色圖像轉灰度圖像,然后對圖像進行平方根Gamma壓縮,從而達到歸一化效果。這種壓縮處理能夠有效地降低圖像局部的陰影和光照變化,從而提高HOG特征對于光照變化的魯棒性。
2)計算圖像梯度。首先用一維離散微分模版[-1,0,1]及其轉置分別對歸一化后的圖像進行卷積運算,得到水平方向的梯度分量以及垂直方向的梯度分量。然后根據(jù)當前像素點的水平梯度和垂直梯度,得到當前像素點的梯度幅值和梯度方向。公式如下:
3)為每個細胞單元構建梯度方向直方圖。首先把尺寸為64x128的圖像分為8x16個cell,即是每個cell為8x8個像素。然后把梯度方向限定在[0,],并將梯度方向平均分為9個區(qū)間(bin),每個區(qū)間20度。最后對cell內每個像素用梯度方向在直方圖中進行加權投影,也就是說cell中的每個像素點都根據(jù)該像素點的梯度幅值為某個方向的bin進行投票,這樣就可以得到這個cell的梯度方向直方圖,也就是該cell對應的9維特征向量。
4)把細胞單元組合成大的塊(block),塊內歸一化梯度直方圖。把相鄰的2x2個cell形成一個block,這樣每個block就對應著36維的特征向量。由于局部光照的變化以及前景和背景對比度的變化,使得梯度強度的變化范圍非常大。為了進一步消除光照的影響,最后對block內的36維特征向量進行歸一化。公式如下:
其中,v是未經歸一化的描述子向量,v2是v的2范數(shù),是一個極小的常數(shù)。
5)收集HOG特征。如圖1所示,采用滑動窗口的方法,用block對樣本圖像進行掃描,掃描步長為一個cell,所以block之間其實是有重疊的。最后把所有歸一化后的block特征串聯(lián)起來就得到3780維特征向量。
1.2 LBP特征提取
文獻[2-5]提出LBP特征描述子,并針對原始LBP特征進行了優(yōu)化。LBP描述子是一種用來描述圖像局部紋理特征的算子,具有灰度不變性和旋轉不變性等顯著的優(yōu)點。提取LBP特征的基本思想是:利用中心像素點的灰度值作為閾值,其相鄰像素點的灰度值與之進行大小比較得到二進制編碼來表示局部的紋理特征。
原始的LBP算子定義在3x3的窗口,根據(jù)編碼的思想,一共有256種編碼。為了適應不同尺度的紋理特征,提出了圓形LBP算子。并且允許在半徑為R的圓形鄰域內有任意多個像素點。為達到旋轉不變性的要求,又提出旋轉不變模式的LBP,即不斷旋轉圓形鄰域得到一系列初試定義的LBP值,取其中最小值作為該鄰域的LBP值。為了解決二進制模式過多的問題,提高統(tǒng)計性,又提出了采用一種等價模式來對LBP算子的模式種類進行降維。LBP特征提取流程如圖2所示,具體步驟如下。
1)對圖片進行ULBP編碼,得到LBP圖譜。采用8個采樣點半徑為1的圓形算子對輸入圖像進行等價模式編碼。在IN-RIA行人數(shù)據(jù)庫正樣本訓練集中,圖像尺寸為96x160,首先把相鄰的8個像素的灰度值與中間像素的灰度值進行比較,若周圍像素灰度值大于中心像素時,則該像素點的位置被標記為1,否則為0。這樣就得到了8位二進制編碼,然后統(tǒng)計該二進制編碼從0到1或從1到0跳變的次數(shù),當不多于兩次跳變時,該LBP所對應的二進制就稱為一個等價模式類,除等價模式類以外的模式都歸為混合模式類。Uniform形式有58種輸出,其他的所有值為第59類,這樣就可以從原來的256維降到了59維,從而得到LBP圖譜。
2)計算每個cell的直方圖,并進行歸一化。根據(jù)上面的方法處理行人正樣本,把96x160的圖像裁剪為64x128。然后把圖像平均分成4x4個cell,即是每個cell為16x32個像素。接著統(tǒng)計每個灰度值出現(xiàn)的次數(shù),得到每個cell的灰度直方圖以及整幅圖像的直方圖。最后是對每個直方圖進行歸一化。
3)收集LBP特征。經過上面的處理,每個cell有59維特征向量,那么整幅圖像就有4x4x59=944維特征向量,加上整幅圖像的59維特征向量,把這些特征串聯(lián)起來就得到1003維特征向量。
2分類器
2.1SVM分類器
SVM是一種有監(jiān)督式的學習模型,一般用于二類分類問題。把訓練樣本貼好標簽,然后通過SVM找到最優(yōu)化的分隔超平面。訓練SVM分類器步驟如下:
1)建立訓練樣本。根據(jù)提取到的特征向量分配數(shù)組空間以及貼好相關標簽,正樣本類別為1,負樣本類別為0。
2)設置SVM參數(shù)。選擇SVM的類型為c_svc,核函數(shù)類型為HNEAR,算法終止條件中的最大迭代次數(shù)設置為1000,容許誤差為FLT_EPSILON。
3)根據(jù)訓練樣本和SVM的參數(shù)訓練支持向量機。
41預測測試樣本的類別,并標出行人的位置。
2.2 AdaBoost分類器
AdaBoost是一種迭代算法,其核心思想是針對同一個訓練集進行多輪訓練,得到多個弱分類器及每個弱分類器對應的權重,然后把這些弱分類器集合起來,構成一個強分類器。訓練AdaBoost分類器步驟如下:
1)準備正負訓練樣本。把正樣品裁剪為統(tǒng)一尺寸,而且要求負樣本的尺寸大于正樣本。
2)生成樣本描述文件。其中正樣本描述文件包括圖像的文件名,圖像類型,圖片數(shù)量以及圖片處理區(qū)域的左上角坐標和右下角坐標。
3)利用HOG、LBP特征訓練樣本,得到分類器。
4)利用訓練好的分類器進行行人檢測。
3實驗結果與分析
在INRIA行人數(shù)據(jù)庫對三種方法進行對比實驗。該數(shù)據(jù)庫訓練集中正樣本614張(包含1239個行人),負樣本1218張。測試集中正樣本288張(包含1126個行人),負樣本453張。在實驗中,對于訓練集正樣本只選取了其中的1208個行人,以及左右翻轉后的圖像,一共2416個正樣本。訓練集負樣本則從1218張無行人的圖像中隨機截取12180張64x128的無行人圖像。然后通過2416個正樣本以及12180個負樣本訓練一個初始分類器,在負樣本原圖進行行人檢測,檢測的結果都為誤報,最后把這些誤報加人訓練集負樣本,重新訓練,生成最終的分類器。
行人檢測中,滑動窗口經提取特征,經分類器分類識別后,每個窗口都會得到一個分數(shù)。但是滑動窗口會導致很多窗口與其他窗口存在包含或者大部分交叉的情況。這時就需要用到非極大值抑制(NMS)來選取那些鄰域里分數(shù)最高的窗口,并且抑制那些分數(shù)低的窗口,達到窗口融合的效果,從而使檢測的準確率更好。
三組對比實驗所采用的特征維度,訓練時間,檢測時間以及識別率如表1所示。雖然第一組實驗的特征維度相對較高,但是識別率最高,而且訓練SVM分類器的時間明顯比訓練Ad—aBoost分類器的時間短。圖3通過融合HOG-LBP特征,可以準確檢測出行人的位置。圖4和圖5為單一特征,其漏檢、誤檢增加。比較后兩組實驗,得出結論是HOG特征描述子比LBP描述子更能描述行人的特征。
4結束語
相對于單一的特征描述子,通過融合HOG-LBP特征,識別率有了很大提高。利用OpenCV在Visual Studio 2012平臺上,簡單、快速實現(xiàn)了靜態(tài)圖像中的行人檢測。對于想了解HOG和LBP特征提取具體步驟以及怎樣利用OpenCV訓練分類器有很好的參考價值。利用HOG-LBP特征融合提取行人特征的維度相對較高,但是訓練SVM分類器的時間明顯少于訓練Ada-Boost分類器的時間,并且識別率較高。實驗還表明,在采用相同的算法訓練分類器時,利用HOG特征描述子進行行人檢測的識別率比LBP描述子高。
下一步工作是從特征提取和分類識別兩個方面對行人檢測進行研究。一方面,融合多種特征以及對特征進行降維。另一方面,尋找一種計算復雜度較低,并且推廣性較好的分類算法,解決復雜背景以及半遮擋行人識別率低的問題,從而加快行人檢測的速度以及提高檢測率。