倪朋朋,顧海全,董鋒格,王文斌
(常州星宇車燈股份有限公司,江蘇常州 213000)
車輛檢測是計算機視覺領域廣泛研究的熱點之一,研究車輛檢測對于智能駕駛、道路交通安全建設有著重要意義。通過車載攝像頭,車輛可以實時檢測道路上的車輛,從而為駕駛員提供駕駛輔助信息,降低交通事故率。
目前較常用的車輛檢測方法是通過環(huán)形磁感線圈、超聲波、微波雷達、紅外線、氣動導管、光電式傳感器等設備儀器進行檢測,目前比較流行的是基于視頻分析的車輛檢測方法[1]。視頻檢測是計算機圖形處理領域的分支,機器視覺具有信息來源廣、信息量大、屬于非接觸測量等優(yōu)點[2]。而實現高精度的圖像檢測重點是選取目標特征和設計分類算法。目前主要使用的方法是根據車輛陰影、邊緣特征進行的車輛檢測[3]。光流法主要通過路面中車輛與攝像頭相對運動速度實現[4],但該方法受光線響較大且計算復雜。VIOLA等[5]提出實時性強、檢測速率快、準確率高的Haar-like人臉檢測算法。隨后,甘玲、劉曉克等[6-7]以Haar-like算法為基礎進行深入研究,提出了基于旋轉Haar-like的算法。
本文作者在上述研究人員提出的Haar-like算法的基礎上提出新的Haar-like特征提取算法,并且通過多通道的級聯分類器分別檢測畫面中不同狀態(tài)的車輛,然后合并各個通道提取的特征信息,提高車輛識別的準確性。
Haar-like是一種經典的圖像特征提取算法。它最早是由Papageorigiou等用于人臉描述[8]。基于Haar-like特征的Adaboost算法能夠有效識別圖像中的物體,判斷是否存在車輛。首先通過訓練樣本進行特征提取,然后計算特征值并建立弱分類器,最后通過加權投票的方式將其構造成為強分類器。目前常用的Haar-like特征可以分為4類:邊緣特征、線性特征、點特征(中心特征)、對角線特征,如圖1所示。
這些特征方塊的大小不固定,但其中的黑色和白色矩陣的比例總是固定的,將白色區(qū)域和黑色區(qū)域內部所有像素灰度值之和的差值作為特征值,通過積分圖[9]能夠快速獲得區(qū)域中的像素和。為了提高檢測率,本文作者采用Haar-like特征和擴展Haar-like特征(新特征)來表示車輛的特征結構,如圖2所示。
圖1 Haar-like特征
圖2 新特征與Haar-like特征
如圖3所示,在車輛正面的匹配過程中,尤其是在兩個車燈之間的區(qū)域,新特征一不僅可以很好反映灰度特征的變化,還可以將弱分類器訓練得更強。在車輛局部小范圍灰度變化中,新特征具有較高的精度。車燈區(qū)域灰度比車燈之間區(qū)域灰度更淺,通過這種新的Haar-like特征能夠對車輛分離較開的區(qū)域進行差異判斷。新特征二能夠更好地描述單個車燈與車燈周圍灰度變化特征,能夠顯著地將車輛檢測的準確度提高。Haar-like特征傾斜60°時可以反映車輛A柱(車前后擋風玻璃邊框)范圍內的邊緣信息。通過采用這種新的特征矩形,還能減少弱分類器的數目。
圖3 車輛矩形特征
本文作者使用的訓練樣本圖片統(tǒng)一歸一化為20像素×20像素,邊緣特征能夠在該樣本圖片中生成21 000個特征,線性特征能夠生成13 230個特征,中心特征能夠生成8 464個特征,對角線特征則能夠生成20 736個特征。因此,普通Haar-like特征在樣本圖片中就能產生97 660個特征。新特征一由于是一種離散的特征,如果不加以約束,則計算較難并且特征數量會很龐大,因此限定新特征一的3個矩陣大小相同,長寬均為3像素,步長為1。限定后,新特征一生成的特征數量為778 688個。新特征二類似于對角線特征,產生的特征數量仍然為20 736個。本文作者也用到旋轉60°的邊緣特征,如圖4所示。
圖4 旋轉60°的Haar-like特征計算示意
該特征可以由一個五元組r(x,y,h,w,α)表示,其中(x,y)表示矩形左上頂點,w為矩形的長度,h為矩形的寬度,α為矩形的旋轉角度,假設圖片樣本尺寸大小為W×H,旋轉矩形的長為a,寬為b,令X為W/w是沿x方向上的縮放系數,Y為H/h是y方向上縮放系數,公式(1)是計算該特征個數的方法:
(1)
傾斜60°邊緣特征生成的特征數量為20 540個。由上述可得,通過擴展Haar-like特征,雖然可以提高檢測的準確度,但是會使數據的運算量增加很多,導致訓練時間變得更長。
為了快速算出Haar-like特征在樣本中的特征值,VIOLA提出一種利用積分圖像法快速計算Haar-like特征的方法[2],通過構造一張積分圖(Integral Image),然后任何一個Haar-like特征的特征值都可以通過類似查表的方式和有限次簡單運算得到。對于圖像中的一點A(x,y),該點灰度值為I(x,y),I(x′,y′)表示輸入圖像上相關位置的灰度值,其積分圖ii(x,y)的計算方法為
(2)
圖5為基于Haar-like特征積分圖的描述,i(x,y)為輸入特征圖像的某點(x,y)的像素值,s(x,y)為點(x,y)所在行的像素值的和,則計算積分圖可以通過以下的遞歸方式:
s(x,y)=s(x,y-1)+i(x,y)
(3)
ii(x,y)=ii(x-1,y)+s(x,y)
(4)
圖5 積分圖描述
當點(x,y)處于一個初始狀態(tài)時,即s(x,-1)、s(-1,y)時,像素和是0。在圖5中點2的積分圖值為A+B,點3的積分圖值為A+C,點4的積分圖值為ii5+ii1-(ii2+ii4),通過積分圖,程序讀取一次圖像的灰度值就能夠獲得該Haar-like特征的特征值,而且它的計算時間也是一個常量。
本文作者給出的新特征一的計算公式為
[ii1+ii4-ii2-ii3]+[ii9+ii12-ii10-ii11]-[ii5+ii8-ii6-ii7]
(5)
新特征二的計算公式為
2×(ii2-ii5+ii4)-ii3+ii9-ii7-ii1
(6)
Adaboost 算法是一種簡單、學習精度高的分類器算法,1995年由Yoav FREUND和Robert SCHAPIRE提出。Adaboost算法將許多分類能力一般的弱分類器組合成一個分類能力強的強分類器,再串聯起多個強分類器完成圖像中物體的檢測,檢測系統(tǒng)對錯誤率和識別速率的要求是級聯級數的重要依據。
弱分類器分類的準確性一般大于50%,因為它是根據一些粗略的經驗來分類的分類器,因此每一個Haar特征都對應了一個弱分類器,所有的弱分類器定義都是依據它所對應的Haar特征的參數。弱分類器定義如下:
(7)
其中:hj(x)為一個Haar-like特征的分類器值;x為待測子窗口;fj(x)為特征值;θj為閾值;pj為符號因子。
多個弱分類器構成強分類器,強分類器能夠更好地處理對象,通過對訓練出的多個強分類器進行級聯,可以加快對圖像中車輛進行分類檢測的速度,排除大部分非車輛樣本。強分類器訓練過程如下:
(1)對已知的N個訓練樣本(x1,y1)、(x2,y2)、......、(xn,yn)的弱分類器權重進行初始化,N個樣本中有M個為非車輛樣本,L個為車輛樣本,對于yi=0的樣本w1~M=1/(2M),對于yi=1的樣本w1~L=1/(2L)。
(2)進行t次迭代
①歸一化權重:
(8)
②計算每個Haar-like特征所對應的弱分類器hj(x)的加權錯誤率:
(9)
③選取具有最小錯誤率的弱分類器hj(x)加入到強分類器中:
(10)
④加大錯誤率大的弱分類器權重,減小錯誤率小的弱分類器權重:
(11)
式中:如果輸入特征被正確分類,那么e=0,否則e=1。
⑤經過t次迭代弱分類器級聯成強分類器:
(12)
通過以上訓練可以實現對已知樣本的正確分類,通過T次重新劃分樣本權重,強化了對錯誤樣本的訓練,最后,將所有的弱分類器通過權重組合形成強分類器。
將大量的Haar特征弱分類器通過級聯的策略組成一系列的強分類器。為了迅速除去數量較多的非車輛樣本,每層弱分類器都要去除許多反例樣本,同時正例樣本必須要逐級通過所有層次的驗證。訓練層次越深,車輛和非車輛的樣本就越難識別,通過增加每一層弱分類器數量以排除非車輛樣本。因為很多非車輛子窗口在前期分類器層已經被排除掉,所以即使弱分類器不斷被添加,該方法也不會因此而降低檢測速度。為提高實時檢測路面上各種車輛的魯棒性,本文作者提出多通道分類器方式。多通道指的是對車輛正面、背面以及側面樣本分別訓練出的強分類器,將不同的分類器檢測結果合并,最后輸出到圖像中的所有車輛位置,如圖6所示。多通道強分類器方法實現上比較簡單,但可能會導致檢測速度變慢。
圖6 多通道分類器檢測
訓練時采用的是歸一化為20像素×20像素的車輛樣本,正樣本來自MIT CBCL數據庫以及作者所采集的圖像共6 000張,主要包括車輛前后視圖以及側面視圖。負樣本主要為不包含車輛信息但是具有與車輛日常行駛環(huán)境相關信息的圖片,負樣本共12 350張,尺寸大小為60像素×60像素到128像素×96像素之間。圖7為部分樣本訓練集,為了提高分類器的檢測率,所選正樣本包含了有一定傾斜度的車輛圖像。
文中使用OpenCV開源計算機視覺庫實現Adaboost算法對上述樣本的訓練。訓練環(huán)境與測試環(huán)境為Intel Core i5、4G內存,訓練時單個階段分類器最小命中率設定為0.985,每個階段的虛警率為0.5,訓練層數為35層。
測試樣本是從MIT Car Database、 INRIA Car Dataset車輛圖像庫以及網絡中搜尋的,共516張,樣本大小介于128像素×128像素和512像素×409像素之間。首先對測試樣本進行灰度化,然后進行直方圖均衡化,對該樣本庫進行測試,正確率達到91.5%,而且每張圖片的處理時間可以達到22 ms,如表1所示。
圖7 正負訓練樣本
表1 車輛檢測結果
本文作者組建了車輛運行的視頻庫用來測試分類器的實時性,對于30 幀/s、480 dpi×320 dpi的視頻,處理1幀時間為50 ms。在整個行車視頻試驗中,車輛檢測率能夠達到87%以上,在一定程度上能夠滿足實時檢測路面車輛的要求。圖8為各種狀況下的車輛實時檢測結果示例。
圖8 車輛不同狀態(tài)下實時檢測結果
在Haar-like特征的基礎上,提出了新的特征集以及其特征計算公式,使用新的特征集訓練出更優(yōu)的分類器,提高了檢測精度。通過Adaboost算法訓練出不同車輛姿態(tài)所對應的分類器,合并各個分類器的檢測結果,實現多通道級聯分類器。實驗結果表明:新增加Haar-like 特征可以使Adaboost訓練過程中的弱分類器精確度得到提高,特別在檢測同一圖像中出現各種狀態(tài)的車輛時具有較高的魯棒性。訓練出的強分類器較原始Haar-like特征分類器檢測率得到明顯提高,并且也能滿足實時檢測的要求。