杜學峰,高 越,楊 偉,張 勇
(長安大學 汽車學院,陜西 西安 710064)
關鍵字:OpenCV;Adaboost 算法;自動駕駛;車輛檢測
隨著車輛數量的增加,交通狀況也愈加復雜,從而導致車輛安全性尤為重要。在一些突發狀況或是駕駛員注意力不集中的情況下,我們很難對即將發生的事故作出正確的判斷及有效反應。基于車輛自身對前方車輛的檢測是一項較為基礎的技術,其廣泛應用于自動巡航,防碰撞系統中,可幫助駕駛員對路面環境進行有效的判斷。
目前一般使用各種傳感器進行前方車輛的識別,如激光、雷達、攝像頭等,其各有優缺點。在汽車行駛時,路面狀況瞬息萬變,這就要求在檢測前方車輛時要具有較高的實時性及準確性。同時,為了能使該系統能在各種環境下都能正常工作,其應該具有良好的魯棒性。本文設計了一種基于機器視覺的方法,通過使用OpenCV 庫及Adaboost 算法,實現了對前方車輛的檢測[2-3]。
訓練分類器需要采集大量樣本。樣本分為正樣本和負樣本。其中,正樣本是我們需要檢測的對象及車輛的圖片,負樣本是不含有需要檢測的對象的任意圖像。樣本圖片可從網上下載或拍攝獲得。以下分別為一些訓練用正樣本和負樣本的圖片。

圖2 訓練所用負樣本
特征是某一類物體或事物所共有的一種屬性和標志,通過計算機對車輛特征的提取,實現將車輛從圖片中分理出來的目的。想要達到這個目的,車輛特征的選取合適與否至關重要。本文對于車輛的檢測和識別是基于Haar-like 特征實現的[4-5]。其包括以下幾種類型:

圖3 不同類型的Haar-like 特征
在圖像中,Haar-like 特征的計算原理為:首先計算白色矩形所包含的像素之和及黑色矩形所包含的像素之和,然后計算出它們的差值。所得到的值即為Haar-like特征的特征值。本文中,采用積分圖的方法進行特征值的計算。
在上文所提到的樣本中,積分圖計算后可以提取出很多矩形特征。本文采用Adaboost 算法識別車輛的Haar-like 特征,它的基本原理是,對于一個樣本集,訓練出多個弱分類器,然后把它們組合起來,這樣就構成了一個強分類器。實現過程如下:(1)將訓練樣本中的各個元素所占有的權值調成相同的,即如果有N 個樣本,則每個樣本的權值為1/N;(2)訓練弱分類器;對于第一個弱分類器,將全部樣本分類過后,把其中成功分類出來的樣本所占的權值減小,未成功分類的樣本的權值增加,改變過樣本權值后的新的訓練集用來訓練第二個弱分類器,重復此步驟,訓練出需要的多個弱分類器;(3)將得到的弱分類器進行級聯,形成強分類器,其中,每個弱分類器對于車輛檢測的誤差不同,通過計算它們的誤差,可以得知哪些弱分類器的誤差較小,所以在組合成的強分類器中,提高這類分類器所起到的作用,即增加它們在強分類器中所占的權值。可以減小車輛的誤檢率[6]。流程圖如下:

圖4 Adaboost 級聯分類器訓練流程
基于該原理,使用OpenCV 庫對樣本進行灰度化、去噪等一系列預處理后,對其進行訓練得到各級車輛分類器。

圖5 訓練所得的分類器
分類器訓練完成并通過測試后,在各種戶外條件下進行車輛識別檢測。以檢驗通過使用Haar-like 特征的Adaboost級聯分類器對車輛的檢測效果。部分結果如下圖。


圖6 實驗結果
對樣本預處理后訓練得到的分類器進行實驗,通過導入了外部視頻和接入攝像頭兩種方法在長安大學校內實驗,得出以下結論:該分類器具有良好的實時性及魯棒性,基本可以對前方車輛做出準確識別。