唐練
(重慶市華馳交通科技有限公司,重慶 400060)
基于OpenCV技術的視頻車輛運動目標提取
唐練
(重慶市華馳交通科技有限公司,重慶 400060)
本文使用Visual Studio 2008作為開發環境,并結合OpenCV提供的圖像處理函數庫,從開發者角度闡述了視頻車輛運動目標提取的基本流程和實現方案。實驗結果能夠準確提取清晰的車輛輪廓圖像,不僅為交通量統計提供可靠依據,也能提供公路的科學管理水平。
OpenCV 運動目標 交通檢測
隨著我國路網大規模建設與完善,智能交通系統(ITS)[1]也日益普及和迅速發展,并能有效提高路網通行能力和交通運輸效率。實時采集交通信息(車流、車速、車型)是極其重要的一個環節,傳統的檢測技術包括磁頻感應技術和波頻(如紅外、超聲波、雷達)檢測技術,但都存在工作壽命、可靠性等問題。近些年,結合圖像處理和模式識別的視頻交通檢測技術[2]以檢測范圍大、靈活性強、檢測精度高等優勢被廣泛研究與應用,對實現交通管理智能化具有重要意義。
在視頻交通檢測系統中,交通信息參數的獲取依賴于車輛運動目標的識別與提取,本文從開發者實現角度,重點論述如何應用OpenCV技術有效檢測與分割車輛運動目標,為最終數據獲取提供根本的實現決策。
OpenCV是一個開源的計算機視覺庫,最早由英特爾公司于1999年啟動。它輕量級而且高效,包括500多個C/C++函數的跨平臺的中、高層API,不依賴于其它的外部庫。
本文的視頻交通檢測系統硬件平臺由視頻采集卡和嵌入式PC104主板組成,運行平臺選用微軟公司的Windows XP Embedded,開發環境采用Visual Studio 2008,并編譯配置圖像處理開源模塊OpenCV。
交通視頻可輕松通過調用采集卡配套的CGVideo庫獲取,開發者更專注于圖像處理部分。每幀圖像數據格式由OpenCV提供的IplImage結構表示,此結構作為車輛運動目標提取的基礎數據,使用頻率是非常高的。

圖1 提取車輛運動目標基本流程

圖2 基于虛擬檢測線方法示意圖

圖3 原始圖像

圖4 背景圖像

圖5 車輛輪廓
車輛運動目標提取是整個系統核心,基本流程如圖1所示。
(1)運動目標的背景提取。運動目標需要從多幅連續幀中實時將所在區域從背景(自然場景)中分割提取出來,即完成前景和背景的分離。本文通過自適應背景建模方法由當前幀不斷加權更新背景幀,消除運動對象的隨機擾動。當前幀和背景幀均為灰度圖像,有效降低運算量。cvRunningAvg為OpenCv提供的更新移動平均的函數,并由參數alpha確定加權系數,表示占背景圖像百分比。函數cvCvtColor用于圖像顏色模型轉換,即灰度化。
(2)背景差分。背景差分過程直接用當前幀的灰度圖像減去背景圖像,得到包含運動目標的差值圖,調用OpenCv中的cvSub函數實現。
(3)差值圖二值化。二值化能夠有效將運動目標從多個復雜前景對象中分割出來,但二值化的閾值選取相當關鍵,顯然,隨著時間推移,固定閾值不現實,本文考慮了自適應雙閾值法,每隔一定幀數,根據選取的一塊背景均值作為閾值計算標準。差值圖像若為正值,大于正閾值則視為是車輛運動目標;若為負值,小于負閾值則視為車輛運動目標。
(4)二值圖去噪。由于車輛顏色比較復雜,二值化后得到的運動目標會出現部分缺失,這時選用合適的形態學掩模對運動目標進行閉運算,保證車輛為矩形或類似四邊形,這就是行駛車輛輪廓。閉運算由OpenCv中的膨脹函數cvDilate及腐蝕函數cvErode先后實現。
(5)車輛輪廓提取。雖然可以通過函數cvFindContours很容易找到多個輪廓,但是車輛輪廓判斷需要一定規則條件。本文采用一種基于虛擬檢測線的方法[3]進行車輛發現及輪廓提取,如圖2所示,僅虛擬檢測范圍內的運動輪廓才可能被認為所需運動目標。
圖3為重慶一路段的車輛原始圖像,經上述圖像處理流程后,得到圖4所示結果,為提取的二值化車輛輪廓。
可見,基于OpenCV技術的視頻車輛運動目標提取能夠有效實現與獲取車輛輪廓,最終,可以由車輛輪廓得到車長、車寬、車型等多種特征參數。本文所述內容也可以根據不同時段、路段統計車流量,不僅給交通調控提供合理的統計依據,也能提高公路的科學管理水平。
[1]黃衛,陳里得.智能運輸系統(ITS).北京:人民交通出版社,1999,20-25.
[2]王曉東,施海燕.城市道路交通信息監測系統.ITS通訊,2002(1).
[3]賀春林.一種基于視頻的車輛檢測算法.計算機科學,2005,32(5):243-245.