張玉祖,羅素云
(201620 上海市 上海工程技術大學 機械與汽車工程學院)
近年來,隨著我國城市化進程的加快,機動車保有量和駕駛員人數不斷增加,城市的交通安全問題日益突出。我國的交通安全不容樂觀[1]。據調查,大多數交通事故的發生是因為駕駛員在駕駛時注意力分散。而駕駛員如果能在潛在危險發生前 1.5 s 得到提醒,則90%左右的交通事故就可以避免[2]。因此,智能交通系統和無人駕駛技術的研究熱度高漲。車輛檢測作為其中的重要一環,也受到了廣泛關注。在實際檢測中,由于易受光照、角度、圖像質量等外界因素影響,容易產生車輛的誤檢、漏檢。故本文對圖像的HOG直方圖特征和Haar-like 矩形特征進行研究,在將2 種圖像特征進行融合的基礎上,建立特征值向量;然后采用AdaBoost 算法從特征值向量中提取若干個有效特征,針對每個有效特征建立相應的弱分類器,根據各弱分類器分類正確率高低,將弱分類器加權組合成強分類器;構建級聯分類器,實現車輛的檢測。
目標檢測系統主要分為2個階段:學習階段和檢測階段,具體如圖1所示。

圖1 目標檢測算法Fig.1 Target detection algorithm
學習階段:首先是收集大量的目標樣本,組成正樣本集(即訓練數據集),同時獲取大量的負樣本,組成負樣本集;然后提取每一個正、負樣本的特征向量;最后訓練形成檢測時使用的分類器。
檢測階段:首先對視頻中的每幀圖像進行特征提取;然后將提取出的特征向量送到訓練好的分類器中,對每幀圖像進行目標檢測;最后用矩形框標注檢測出的目標。
Haar-like 特征最先由Paul Viola 等人提出[3-5],后經Rainer Lienhart 等擴展引入45°傾斜特征[6-9]。在利用 Haar 特征對圖像進行描述時,主要有邊緣特征、線性特征、中心特征(圓心環繞特征)和對角線特征4 種特征模板,如圖2 所示。這些模板都是由黑色和白色的矩形塊構成,特征值就是白色矩形塊中的像素值的和減去黑色矩形塊中的像素值的和。

圖2 Haar 特征的4 種模板Fig.2 Four templates for Haar characteristics
矩形特征用如下公式表示:

式中:ui——第k 個矩形的權重值;RecSum(rk)——第k 個矩形內像素值總和;N——矩形特征featuresk含有的矩形總個數。
矩形特征值為:

在進行圖像處理時,由于每張圖像都有大量的Haar-like 特征值要計算,使得特征提取的時間大量增加。為了解決這個問題,將積分圖像應用于Haar-like 特征的計算。
積分圖像是一個和原始圖像大小一致的矩陣,矩陣中的每個元素值是從原始圖像左上角到該點組成的矩形區域內所有像素值的和。積分圖像通過一次遍歷整張原始圖像能得到矩陣中各個元素的值,能描述出圖像的全局信息。積分圖像計算如圖3 所示。積分圖像中任一點(x,y) 處的值,由公式(7)可求得:

式中:S(x,y)——積分圖像(x,y)點處的元素值;f(x,y)——原始圖像(x,y)點處的像素值。

圖3 積分圖像計算示意圖Fig.3 Schematic diagram of integral image calculation
因此,圖3 中矩形ABCD 中的像素值累加和可以通過公式(4)求得:

因為車輛檢測最多的是垂直方向和水平方向灰度的變化,故本文采用兩矩形特征和三矩形特征,如圖4 所示。其他的形狀特征可以通過使用HOG 特征進行補充,從而減少了 Haar-like 特征的特征數。

圖4 本文采用的Haar 特征Fig.4 Haar features adopted in this paper
HOG 特征是由Dalal 于2005 年提出的[10-12],是指通過使用梯度的幅值和方向圍繞感興趣點或圖像一個區域構建直方圖。在目標檢測與識別的算法中,由于目標區域一般為矩形區域,故大多采用矩形單元的HOG 特征。
HOG 特征提取的主要流程:
(1)對圖像進行灰度化處理和Gamma 空間標準化,使圖像處理的運算簡單化,并減小了光照強度和局部陰影對檢測結果的影響。
Gamma 壓縮公式:

式中:Gamma=1/2。
(2)由像素點的灰度值計算圖像中每個像素點的梯度大小和方向。進一步削弱光照強度對檢測的影響,獲得目標的輪廓信息。計算梯度方向θ(x,y)和梯度大小G(x,y)公式:

式中:f——一個圖像;f(x,y)——圖像在像素點(x,y)處的灰度值;θ(x,y),G(x,y)——圖像像素點(x,y)處的梯度強度的方向和大小。
(3)將圖像劃分成若干個矩形單元格(cell),將 cell 中每個像素點的梯度值對梯度方向進行加權,形成cell 的方向梯度直方圖。
(4)將n×n 個單元格組成一個連通的區域(block),對每個 block 塊內的方向梯度直方圖進行歸一化處理。歸一化選用L2-Hys 范數[14]對每個block 進行歸一化:

式中:x——標準化前的特征向量;e——一個很小的標準化量以防止除數為0。
(5)為了提高特征的利用率,對所有的block 塊的特征向量串聯,得到該圖像的 HOG 特征向量,從而實現 HOG 特征的提取。
為了更全面獲得特征信息,使得車輛可以被準確檢測出來,可采用多尺度特征,即檢測窗口中采用不同長寬比塊和不同大小塊遍歷時的移動步長,本文采用3 種尺度,見表1。

表1 本文采用的3 種尺度Tab.1 Three scales used in the paper
為加快提取特征的速度,使用積分直方圖的方法進行HOG 特征的提取。因為 HOG 特征主要是為了彌補Haar-like 特征的不足,使得車輛檢測在 Haar-like 特征表現不足的區域,HOG 特征可能會得到好的檢測結果,故HOG 特征對圖像進行密集的遍歷。
由于Haar-like 特征和HOG 特征都是以局部矩形區域內的像素和為基礎的,故將矩形區域內像素值的和作為一階特征。一階特征的公式為

式中:I(x,y)——一個圖像;(x,y)——在圖像中的空間域的像素點的位置;R(x,y)——圖像的基礎變換。在一階特征的基礎上計算的Haar-like特征、HOG 特征稱之為2 階特征。Haar-like 特征相當于2 個1 階特征的差值,HOG 特征相當于多個1 階特征的和值。在1 階特征的基礎之上,通過變換矩形框的大小、長寬和特征近似的方法,構建了一個融合的特征集合F{FHaar-like,FHOG}。此集合包含了車輛的顏色、梯度和邊緣信息,能夠為分類器的訓練提供更加完備的特征集合。
由于不同特征之間存在著較大的耦合性,數據處理計算量大且復雜。為了減少計算量,本文在每次訓練弱分類器時,隨機選擇3 000 個1 階特征作為訓練弱分類器的1 階特征集合。在1 階特征的基礎上,計算2 階特征用于弱分類器的訓練,并篩選出最具判別能力的分類器進行分類。
AdaBoost 算法先使用初始訓練集訓練出一個弱分類器,根據該弱分類器的分類錯誤率,調整相應訓練樣本的權重;基于調整后的樣本權重對下一個弱分類器進行訓練;直到弱分類器數量達到指定值或者分類器的分類正確率達到指定閾值;最后,將弱分類器相級聯形成最終的強分類器[13,15]。AdaBoost 算法流程如下:
(1)給定樣本圖像集(x1,y1),…,(xn,yn)其中 yi=0,1 分別表示負例樣本和正例樣本。
(3)選擇εj=argminεj,并將其對應的弱分類器作為hj。
如果樣本圖像xi被正確分類則ei=0,否則ei=1,其中
(5)最后輸出強分類器

T 個循環中,每個循環都是用一個特征來構架的,最終用帶權值的線性表達式來組合這T 個循環中訓練出來的簡單分類器,其中,權值和訓練錯誤成反比。
本文針對AdaBoost 分類器目標檢測存在漏檢、誤檢導致檢測過程的不準確性,通過將HOG 特征和Haar-like 特征融合,減少每一層強分類器的特征個數;用置信度的實值分類器代替了二值分類器,并且針對 HOG 特征和 Haar-like特征設計不同的弱分類器,用AdaBoost 算法訓練強分類器,減少了整個級聯結構使用的特征數,降低了誤識率并保持好的檢測性能。
實驗是在Intel(R)Core(TM)i5-10210U@1.60Ghz電腦上的Pycharm 中實現的。
在實驗中需要用到大量的正、負樣本進行訓練與分類,故需要采集大量的車輛和非車輛圖片。正樣本圖像中最好是只包含車輛,盡可能不含有其他的背景;負樣本圖像不含車輛,而且選取的負樣本最好是和實際應用的環境有關,如道路的場景、樹木等。在測試過程中,必須使用同一測試數據集來保持一致性,本文選擇KITTI 數據集的一部分,圖片大小為64×64 像素,該數據集一共包含正樣本數量2 000 張,負樣本數量5 000張。如圖5 所示。

圖5 數據集Fig.5 Data set
車輛檢測系統的檢測流程如圖6 所示。

圖6 車輛檢測流程Fig.6 Vehicle detection process
圖7 分別給出了對交通視頻中直線行駛、彎道行駛和超車行駛的實驗結果。

圖7 車輛檢測效果圖Fig.7 Vehicle detection effect diagram
為了驗證算法的有效性,我們設計了3 組實驗。第1 組采用HOG 特征和SVM 分類器進行車輛檢測,第2 組是采用Haar-like 特征和AdaBoost 分類器進行檢測,第3 組是本文方法采用Hog 特征和Haar-like 特征融合和AdaBoost 級聯分類器進行檢測。

表2 各算法的實驗結果Tab.2 Experimental results of each algorithm
由表2 知,在準確率和精確度上,本文的算法車輛檢測系統對真實場景下的檢測效果較理想。
本文提出了一種基于HOG 特征和Haar-like特征融合和AdaBoost 級聯分類器進行前方車輛檢測方法。采用了多尺度的HOG 特征和Haar-like特征描述車輛,訓練階段提取特征向量,并將這些特征向量引入AdaBoost 算法中進行最優特征選擇和強分類器的訓練,最后得到強的級聯分類器。該方法在實時性、識別率上取得了良好的效果,但在實際的應用中仍然存在著一些缺陷,在復雜背景下的嚴重遮擋問題表現較差,因此要進一步對這一方面做出更深入的研究。