許 慶,高 峰,徐國艷
(北京航空航天大學交通科學與工程學院,北京 100191)
道路上的實時前車識別與跟蹤是智能交通系統領域中的重要研究任務之一[1]。隨著近年計算機處理能力的提高和視頻技術的發展,基于視覺的實時車輛識別技術嶄露頭角。與其他方法相比,機器視覺具有信息來源廣,信息量大,屬于非接觸測量等優點。其缺點是復雜環境下的識別算法有待提高,運算量大、實時性差[2],相關設備價格昂貴等。
目前,在智能交通中常見的單目視覺檢測方法有差分法、光流法和特征檢測法等。其中,差分法實現簡單,運算速度快,幀間差分法對于動態環境自適應性很強,對光線的變化不十分敏感。但其缺點是,對于幀間差分來說,灰度均勻的對象難以準確識別,甚至會在圖像內部形成空洞[3]。
光流法對光照強度的變化非常敏感,無須預先知道場景信息。但由于前車與攝像頭相對運動的方向、速度和背景與攝像頭相對運動的速度都是不定的,故難以在前車識別中應用。文獻[4]中提出可用光流法識別對面車輛。
特征檢測法在智能交通中的應用常見于靜止的監控攝像頭,近年來國內外相關論文又多利用車輛底部陰影特征實時識別前車。但陰影特征對于環境光照要求較高,且難以分辨車輛與其他物體,故相對局限性較大。本文中重點研究了基于Haar特征的車輛識別算法。該方法最早在文獻[5]中提出并用于人臉識別。在前車識別中,由于一般來說兩車的相對運動不大,具有清晰的特征,故引入此方法依據車尾特征識別前方車輛。
Haar特征是基于灰度圖像的弱特征。該特征用于表述圖像某一位置附近矩形區域的圖像強度,并計算其強度差別。圖1中所示矩形塊表示了3類Haar特征。這些方塊特征的大小不固定,但灰色與白色方塊的形狀和大小總是相同的。其中,雙矩形特征(又名邊緣特征)用來計算水平(或垂直)兩個矩形塊之間的強度差,3矩形特征(又名線性特征)用來計算兩側與中心的強度差,4矩形特征(又名對角線特征)用來計算兩對角線對的強度差[6]。若檢測出其差值大于閾值,則判定為特征。相對其他特征檢測算法,計算速度是使用積分圖像的Haar特征檢測算法的顯著優點。
文獻[5]中提到,即便是24×24的圖像,其特征的總量也相當大(過完備的特征共有45 396個)。故須使用積分圖像以提高運算速度,如圖2所示。對區域的強度求和,即
式中:I為強度,S為對應點在積分圖像中的值。
由此可計算圖像的特征,并提高檢測速度。例如,對于圖2所示的區域D而言,其強度為
Boosting是一個將弱學習算法融合為強學習算法的方法[7]。AdaBoost(Adaptive Boosting)為 Boosting算法中的一種。AdaBoost算法根據每次訓練中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。而后,將每次訓練得到的分類器融合起來,作為最后的決策分類器。只要滿足一個特征的錯誤率比猜測的錯誤率低(e<0.5),該特征即可被用作一個弱分類器。AdaBoost訓練分類器的方法見文獻[7]。
級聯分類器的構造如圖3所示。樣本的特征被分為數個分類器。分類器串聯時,將由重要特征構成的結構相對簡單的分類器放在前面,可快速排除大量樣本。依此劃分下去,最后一個分類器留下來的就是檢測到的目標[5,8-9]。
本文中提取訓練樣本的Haar特征,得到基于車輛尾部特征的弱分類器。并由AdaBoost訓練,加權將弱分類器構造為強分類器,級聯得到40×40的汽車尾部分類器。
用于訓練樣本的車輛尾部圖片共有1 152張。其中,選用CALTECH的cars1999中的圖片126張,cars2001中的圖片526張,本文中拍攝圖片500張。另選取道路、建筑等圖片932張,作為背景樣本。
使用MIT CBCL CAR DATBASE中的汽車尾部圖片共172張(復雜背景),測試訓練出的汽車尾部分類器。測試結果表明,分類器可較有效地捕捉車輛尾部特征,對于車輛的正確識別、漏檢和誤檢的概率分別為81.4%、18.6%和8.14%。
利用訓練出的車尾分類器,分別測試了在停車場與實際道路上的實時前車識別(圖4)。同時,使用OpenCV中提供的David Bradley人體分類器識別行人(圖5),作為對比驗證。初步對比試驗表明,訓練得到的車尾分類器已基本達到研究要求,能夠較好地識別車輛。但試驗也暴露出實際使用中的一些問題,如位于遠處的車輛或行人,都因圖像分辨率低而無法被識別、存在誤檢等。針對這些問題和實際道路的特殊條件,本文中提出算法的改進方案。
3.1.1 重復識別的處理
初步試驗中,對同一待識別目標,有時會出現重合的矩形框。對此,通過計算矩形框覆蓋的重合度來合并重復識別的目標,并給定重合度閾值。試驗中定義的重合度閾值為85%,即如果一個矩形框的85%與另一矩形框重合,則判定它們為同一目標。
3.1.2 誤檢噪聲的消除
增加假設驗證模塊,利用先驗知識(如由于車輛近大遠小,很遠的地方不會存在很大的矩形框等),消除查找區域中的誤檢矩形框。利用Hough變換與攝像頭中心位置找到滅點,矩形框位置縱坐標與滅點縱坐標之差限制著矩形框大小。若矩形框與預估值大小之差的絕對值大于閾值,則判斷為誤檢。
3.1.3 遠距離目標的識別
初步試驗發現,在320×240分辨率下,上述的方法對于前方2.5~20m的車輛識別效果良好;但對于20m以外的車輛,由于特征不明顯,效果不佳;在640×480的分辨率下,因分辨率的提高,可以增加可識別的距離,但識別速度相對較慢。
假設當前車輛只對道路前方一定范圍內的車輛感興趣,依此建立感興趣區域,僅查找該區域中的車輛;并每隔數幀使用高分辨率視頻(試驗中采用2幀/s),查找位于視頻中部感興趣區域中的遠端車輛。此外,建立了簡單道路車輛模型,采用卡爾曼濾波[10]預估車輛位置。
3.1.4 檢測的判定
采用多幀過濾的方法來判定前方是否有車。令:
在第k幀時,查詢先前的n幀:
式中f為預設的判定為有效像素點的概率。如果矩形框內P=1的點數占總點數的百分比大于目標判定閾值(試驗中定為70%,視漏檢概率而定),則判定為有車。
依上述算法改進程序并在真實道路上再次試驗,發現先前測試中出現的重復識別和誤檢基本消除,漏檢得到改善。使用針對畫面中心較遠目標建立的感興趣區域,配合道路車輛模型與基于Cam-Shift的圖像跟蹤后,算法識別的有效距離增加,圖4右圖中未能識別出的車輛在圖6中已被識別。但仍存在被遮擋目標難以識出的問題。雖嘗試采用車道識別等一些方法減弱其影響,但效果均不理想。可考慮配合激光測距或GPS定位與車車通信等手段,將各類傳感器信息融合,建立出更完善的實時的道路車輛模型。
在前人對Haar特征的研究基礎上,提取車輛尾部Haar特征,將所得弱分類器由AdaBoost訓練,級聯后得到基于Haar特征的車尾級聯分類器。在復雜背景試驗中,分類器的識別率約為81.4%。針對戶外實時測試中暴露的不足改進了算法。定義矩形框重合度閾值消除重復識別,利用先驗知識減少誤檢噪聲,使用多幀過濾捕捉漏檢目標;隔幀使用高分辨率視頻查找感興趣區域內車輛增加識別距離。基本消除了車輛的重復識別和誤檢,漏檢與遠距離目標不易被識別的情況得到改善。
[1]Bensrhair A,Bertozzi M,Broggi A,et al.A Cooperative Approach to Vision-based Vehicle Detection[C].Proc.IEEE Conf.on Intelligent Transportation System,Oakland,CA,2001:207-212.
[2]高峰,等.基于模糊神經網絡的車輛碰撞預警算法[J].江蘇大學學報(自然科學版),2006(5):211-215.
[3]李平,等.自適應背景恢復差減算法[D].長春:長春理工大學,2008.
[4]Baker S,Scharstein D,Lewis J P,et al.A Database and Evaluation Methodology for Optical Flow[C].Proc.ICCV,2007.
[5]Viola Paul,Jones Michael J.Robust Real-time Object Detection[R].Cambridge Research Laboratory,2001.
[6]Jaesik Choi.Realtime On-Road Vehicle Detection with Optical Flows and Haar-like Feature Detector[R].Illinois:UIUC,2007.
[7]劉瑞禎,等.OpenCV教程[M].北京:北京航空航天大學出版社,2007:385-386.
[8]林莉鳳.快速行人偵測基于AdaBoost和樣板比對法的駕駛輔助系統[D].臺灣:國立中央大學,2007.
[9]Florian Adolf.How-to Build a Cascade of Boosted Classifiers Based on Haar-like Features[R].America:2003.
[10]黃宇辰.以視覺為基礎的車對車偵測及追蹤系統[D].臺灣:國立中央大學,2005.