黃磊


摘 要:車輛檢測系統是智能交通系統的重要環節,基于視頻圖像的車型識別和車輛檢測技術研究也越來越多。本文以實時視頻為基礎,介紹了一種車輛特征提取算法-彈性松弛袋算法,來提取車輛的車長車高特征,從而實現對車輛的檢測和分類。本文著重介紹了彈性松弛袋算法提取車型特征的程序實現,通過實驗的結果,驗證了該算法的可行性。
【關鍵詞】車輛檢測 車輛特征 彈性松弛袋
我國在“十五”綜合交通體系發展規劃中明確指出要以可持續發展為前提,以市場經濟為導向,建立智能交通系統即ITS (Intelligent Transportation Systems)。其中,車輛動態監測和高速公路收費站全自動收費對公路交通自動化程度的提高,促進智能交通系統的發展具有極其重大的實際意義。而車型檢測和識別技術在車輛動態監測和高速公路全自動收費中起著至關重要的作用。近年來基于圖像處理的視頻車輛檢測方法發展很快,由于它具有系統設置靈活、檢測區域大等突出的優點,已成為車輛檢測領域研究的一個重點方向。本文的目的是旨在采用“視頻采集和預處理設備+應用軟件”的最小系統結構模式,實現對車輛的檢測和識別。
1 車輛檢測程序過程分析
在車輛檢測中,通常先使用攝像頭和視頻采集卡來采集AVI視頻流,圖像采集卡接收到視頻圖像信號后,通過采樣和量化將其二值化,實時顯示并逐幀將圖像存入計算機內存中。然后通過對這些圖像的分析與處理,提取出車輛的車型特征,即車輛的長度和高度數據,由此判斷出檢測車輛的車型。
2 車輛特征提取算法-彈性松弛袋算法
通過對車輛檢測程序過程的分析,我們可以得出以下算法:判定車輛存在與該車輛車型特征提取算法——彈性松弛袋算法。
該算法表述如下:
輸入:視頻當前圖像與背景圖像之差,即幀差圖像。
算法處理過程:
(1)在當前背景圖像的右邊建立兩根豎線TAG1和TAG2。其中,TAG1作為車輛的最右端判斷依據,TAG2作為車輛的左端判定依據。如圖1所示。
(2)當車輛進入到攝像區域內時,檢測到右側的按列投影將發生急劇的變化,此時當前列的像素個數大于deltaA,其中deltaA是一個給定的閾值,只要TAG2始終處于劇烈變化塊中,即TAG2所在列的像素個數大于deltaA,TAG1便跟隨著急劇變化塊向左端推進。
(3)當上一幀圖片內TAG2處在車型塊中,而在當前幀中TAG1沒有處在車型塊中,TAG1不再往左端推進。
(4)此時,可以從投影圖片的右側開始往左側尋找,確定車型的右邊界位置,然后繼續往左尋找,確定車型左側位置,兩者之差即為車長,如圖2所示。
(5)在第四步處理結束后,對提取車長length進行后續處理,跳轉到第7步。
(6)將TAG1和TAG2歸位。跳轉到第2步。
(7)如果length滿足一定的分類要求,可以作出檢測到某一類型車的判定,否則,認為是無用噪點的影響,直接舍棄。
以上是通過彈性松弛袋算法提取車輛車長的方法,對于提取車輛的車高,只需要將兩根豎線設置為垂直的即可。
3 利用彈性松弛袋算法,提取車輛的車長車高特征,對車輛進行分類
在彈性袋松弛算法中,當一輛車從右至左行駛進入攝像區域(因為該算法假定如此,當然也可以沿相反方向,結果一樣)時,偵測到的車長在不斷增大,直到下一幀偵測到的車長小于某個設定的最小值,就認為該車輛的偵測結束。根據以上結論,程序結構流程圖如圖3所示。
其程序如下:
bool bTag = false;//標志變量,標示是否有下一輛車進入攝像區域
int preLength = 0;//preLength為前一幀上偵測到的車長
int curLength = 0;//curLength為當前幀上偵測到的車長
int preHeight = 0;//preHeight為前一幀上偵測到的車高
int curHeight = 0;//curHeight為當前幀上偵測到的車高
int minLength = 70;//minLength為系統設定的最小車長
int minHeight = 10;//minHeight為系統設定的最小車高
Trait t = getNextFrame();//Trait為車輛提取特征類
while (t != null)
{ curLength = t.length;
curHeight = t.height;
if (preLength < curLength && curLength > minLength && preHeight < curHeight && curHeight > minHeight)
{ bTag = true;}
else
{ Console.WriteLine(velCheck(curLength, curHeight));
preLength = curLength;//當前幀替換前一幀
preHeight = curHeight;
t = getNextFrame();//getNextFrame()為獲得下一幀圖像的相關信息 }}
//車輛檢測分類
static string velCheck(int length ,int height)
{ string s = "";
if (length>=400 && length <1000 && height>=100 && height<110)
{ s = "公交車";}
if (length >= 270 && length < 400 && height >= 80 && height < 100)
{ s = "小型貨車";}
if (length >= 180 && length < 270&& height >= 60 && height < 80)
{ s = "面包車";}
if (length >= 110 && length < 180 && height >= 40 && height < 60)
{ s = "轎車";}
return s;
}
4 實驗結果
在實驗中,選用了一段實時視頻,該視頻是由安裝在道路上的攝像機獲取的。在整段實時視頻里,總共有48輛不同類型的汽車。除此之外,還包括了行人、自行車等干擾信號。實驗中采用兩種統計方法,分別是通過人工統計,以及通過提取車輛車長車高信息進行綜合統計。通過實驗后,統計結果如表1所示。
從表1的實驗結果可以看出,通過提取車輛車長車高信息進行車輛識別的結果還是可以接受的。誤差主要是由以下原因造成的:一是建立的背景可能還不夠理想,含有噪點;二是實時視頻中的車輛不是在一個單向的車道上,相向車輛相互影響。
5 結束語
目前,視頻圖像檢測技術作為一種新興的交通信息檢測技術,在智能交通系統的研究和開發工作中已經得到了廣泛的應用。但是在我國這種技術尚處在起步階段。視頻圖像檢測技術在算法上具有適應能力強和柔性大等特點,本文以彈性松弛袋算法為基礎,分析了車輛進入攝像區域的整個過程,通過提取車輛的車長車高特征,對車輛進行分類,并取得了不錯的效果。
參考文獻
[1]張全元.基于實時視頻流的車型識別系統設計[J].中國地質大學(武漢)碩士學位論文,2007.
[2]王春波,張衛東.智能交通系統運動車輛的視覺檢測[J].紅外與毫米波學報,2001(20).
[3]張帆,基于視頻流的車型識別特征提取方法研究[J].中國地質大學(武漢)碩士學位論文,2010.
[4]林曉梅,李琳娜.基于小波邊緣檢測的圖象去噪方法[J].光學精密工程,2004.
[5]王耀南等.計算機圖像處理與識別技術[M].北京:高等教育出版社,2001.
[6]范伊紅.基于視頻的車型自動識別系統的實現[D].(學位論文)鄭州:鄭州大學,2006(05).
[7]高大山.智能交通系統中運動目標檢測方法的研究[J].清華大學(碩士學位論文),2002.
作者單位
廣東省高級技工學校 廣東省惠州市 516100