摘要:動態交通車輛的識別是智能交通系統的重要環節,是采集有關道路交通動態信息的各種參數的主要方法。車輛邊界鏈檢測是車輛識別的前提。利用邊緣檢測,腐蝕膨脹、填充和Freeman鏈碼等一系列圖像處理的技術,設計一個合理有效的算法,能夠快速實時的查找視頻中運動車輛的邊界鏈信息。
關鍵詞:交通事件監測,車輛識別,邊界鏈,圖像處理。
Vision-based dynamic cars’ borderline detection
ZHANG Xue, LIU Jian-li
Beijing University of Technology 100124
Abstract: As a significant part of Intelligent Transportation Systems, Dynamic cars Recognition is main technique to get information form transportation. Furthermore, cars’ borderline detecting is the foundation of Dynamic cars Recognition. The main techniques include Edge Detection, Morphology, Fulfill Image and Freeman chain code. Design an efficient arithmetic which can detect the cars’ borderline at short notice.
Key words: Detecting of traffic incident, Cars Recognition, Borderline, Image Processing.
一、 引言
交通事件是指非周期性發生且使道路通行能力下降的事件,交通事件的發生是隨機的, 其發生的時間和地點都不可預知。事件的發生不但對道路正常運行造成嚴重影響,也降低了交通的安全性[1][2]。采用交通事件自動檢測系統(Automatic Incident Detection Systems, AIDs[3])能夠對交通事件進行快速準確的檢測,及時發現交通事件,從而減少或避免交通擁堵,預防和減少二次交通事故的發生[4][5]。
有效的交通事件自動檢測系統需要精良的檢測數據,以及有效的分析檢測算法。減少車輛檢測算法的計算量和提高實時性是提高系統檢測準確度和穩定度的關鍵。然而,實際中光照的變化、背景中不相干運動物體的干擾、運動目標的影子、攝像機的抖動以及運動目標的自遮擋和互遮擋現象的存在,這些都會影響車輛檢測和分割的精度,必須在算法中考慮這些因素的影響及其去除的方法。
在視頻交通事件檢測過程中,車輛檢測與識別是主要部分,是排除視頻噪聲干擾準確判斷事故發生與否的關鍵技術。從視頻序列圖像中提取運動物體是包括視頻監視在內的許多視覺系統的基礎和關鍵。運動物體提取處理的目的主要有兩個:一是對有效的物體進行檢測,即從場景的視頻監視序列圖像中正確檢測到真實的運動物體;二是為分析運動物體的運動規律提供依據。
二、 Freeman鏈碼快速查找算法
1961年Freeman提出了Freeman鏈碼[6]。Freeman鏈碼方法主要用于物體邊界的識別。Freeman鏈碼有兩種編碼方法:八方位鏈碼和四方位鏈碼。其中八方位鏈碼是以數字0~7分別表示八個方位,各方位的數字標記如圖1(a)所示。從邊界鏈第一個點開始,存儲當前點在邊界鏈上的下一個點的相對位置信息,以追蹤邊界鏈。
表1列出了相鄰兩個點的對應位置關系,在已知當前點的前繼點Freeman鏈碼標志位時,利用該表可以查出前繼點相對于當前點的八鄰域位置。
表1 兩點對應位置關系
點1相對于點2的位置 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
點2相對于點1的位置 |
4 |
5 |
6 |
7 |
0 |
1 |
2 |
3 |
圖1 Freeman鏈碼算法實例圖
2.1 Freeman鏈碼快速查找算法
這一小節簡單敘述一下Freeman鏈碼快速查找算法。以圖1(b)為例,圖像中有兩類像素點;疑c為待識別物體的像素點,白色點為背景。Freeman鏈碼快速查找算法的思想如下:
(1) 若當前點為起始點,則從該點的左上角位置開始查找邊界鏈上的下一個灰點;若當前點不是起始點,利用表1查出前繼點的位置,從其前繼點的下一個點開始查找邊界鏈上的下一個灰點。
(2) 將當前點置為其后繼點,跳步驟(1)。如此循環直至算法收斂。
在圖1(b)中,以左上第一點為起始點,圖中標有數字的灰色點中的數字為后繼點相對于當前點的相對位置編號。Freeman鏈碼的輸出結果是:
該算法收斂條件有兩個:一是當前點與邊界起始點重合,此時判斷邊界鏈閉合;二是當前點八鄰域的所有灰點都已經被標記過了,而且當前點不是起始點,此時判斷邊界鏈不閉合。
2.2算法分析
該算法在保證查找準確性的同時可以使平均訪問點數最優,圖1(b)中邊界鏈上的總點數為35,查找Freeman鏈碼的平均訪問點數為:
算法實現時根據相鄰兩點的位置關系決定查找后繼點的起始方位,可以保證遍歷方向同邊界鏈走向一致。
但算法也存在一些缺點,如圖1(c)所示,P點八鄰域只有一個灰點Q,且點Q是其前繼點,當查找算法運行到P點時,Q點已經被標記過,點P的八鄰域沒有其他灰點可以成為其后繼點,算法收斂,并初步判斷邊界鏈不閉合,但從圖中可以看出這個判定是錯誤的。所以首先要從圖像中去掉這樣的“凸點”才能保證Freeman 鏈碼快速獲取算法的正確性。解決這個問題可以將原圖像進行一次膨脹操作,所有的“凸點”都會被八鄰域點“包圍”,膨脹后的圖像將不存在“凸點”的干擾。
在提取物體形狀特征時,物體外邊界是主要依據。但Freeman鏈碼檢測算法在圖1(d)中的檢測結果不是物體的外邊界。由于該算法將用于檢測動態車輛的外邊界,而車輛的外形有近似矩形的特點,因此找到車輛行駛方向,利用該方向及與其垂直的方向兩條掃描線對邊界圖像進行掃描,若圖像的邊緣鏈與掃描線有兩個以上的交點,則判定該邊緣鏈不閉合。由于圖像邊緣鋸齒現象較多,會有多交點的情況。當掃描線掃描到接近邊界邊緣的地方如果出現多于兩個交點的情況時,不作為判定依據,當掃描線在圖像內部時,累計交點多于兩個的掃描線個數,如果超過一定閾值則判斷為不閉合。
三、 動態車輛邊界鏈檢測方法
基于視頻的交通事件檢測系統的主要工作包括背景建模和幀差檢測運動車輛,在此基礎上進行車輛邊界鏈檢測,從而對車輛進行分類并分析車流運動規律。
其中幀間差法檢測運動車輛的目的是將查詢運動車輛邊界的范圍縮小到一個矩形框中,減少背景干擾和計算量(如圖2)。該項工作得到了視頻流關鍵幀中分割后的運動車輛圖像。

圖2 幀間差檢測到的運動車輛范圍
對此合描uan來過模型鍵幀通事件檢測系統,動態車輛邊界鏈檢測是利用已經得到的背景模型和分割后的運動車輛圖像,經過基于邊緣的背景差算法和Freeman鏈碼查找算法來求得運動車輛的邊界,其工作流程如圖3所示。
圖3 邊界鏈檢測算法流程圖
在檢測到的車輛邊緣基礎上,可以進行車輛特征信息的提取,比如大小、形狀等,對視頻中出現的所有運動物體按照特征分類,排除非車輛的干擾;跟蹤車輛及狀態分析,進而判斷有無交通事故發生。
3.1 基于邊緣的背景差算法
本文所基于的算法是一種模糊的識別算法,不需要識別出運動物體的具體細節;谛螤畹哪繕俗R別方法是解決問題的首選算法。該方法的目的是提取物體形狀特征,物體邊緣是本算法感興趣的區域。
圖4背景差結果
基于已有的背景模型和車輛圖像,很容易想到采用背景差法[7]檢測運動車輛。圖4(a)(b)是分割后的運動車輛圖像和背景圖像,圖4(c)是直接背景差的試驗結果圖,得到的運動物體仍然包含大量背景信息,而且干擾背景的分布不均勻。車輛周圍有很多道路像素,甚至在車輛內部也有被誤分為背景的車體像素。利用簡單的背景差法很難去掉背景干擾,分析其原因有兩點:
1)背景的提取需要實時更新,以防止光線、環境變化的影響,采取的是每24幀統計提取,不可避免的帶有路面上車輛行駛過后殘留的信息干擾,使得背景顯現不均勻、灰度不連續,影響背景圖片質量,導致后續的背景差操作中誤差的產生。
2)視頻流圖像本身分辨率不高。在交通事故檢測系統中,視頻的采景范圍是整個路面,所以每輛車在幀圖片中所占面積較小,細節不突出。再加上環境因素的影響,如大風,灰塵或霧氣,使得在反映真實車輛信息時產生誤差,所得到的背景建模圖片精確度不夠。
綜合以上兩點,使得背景差操作后的圖片不能準確的標識運動車輛的位置信息。
獲取車輛的外邊界鏈信息能夠更好地識別運動車輛信息。采用基于邊緣的背景差方法提取物體信息,既可以減少背景和幀圖像分辨率不高帶來的影響,又可以達到提取運動車輛形狀特征的目的。算法的主要思想是:將幀圖像以及背景同時進行邊緣檢測[8],在幀圖像邊緣圖像中減去背景的邊緣,得到一個相對“干凈”的物體邊緣。
圖4(d)(e)即是Sobel算子針對切割后的幀圖像和背景檢測到的結果。Sobel算子邊緣檢測算法是離散性差分算子,用來運算圖像亮度函數的梯度之近似值。在圖像的任何一點使用此算子,將會產生對應的梯度向量或是其法向量。Sobel邊緣檢測算子不但可以產生較好的邊緣效果,而且對噪聲具有平滑作用,減小了對噪聲的敏感性,提取出的邊緣沒有多余的細節,有利于輪廓特征的提取。
經過上述操作后,發現Sobel算子并沒有將圖像的主體與背景嚴格地區分開來。由于Sobel算子沒有嚴格地模擬人的視覺生理特征,提取的圖像輪廓中包含背景干擾信息。為了準確提取運動物體的位置,需要進行“背景差”操作,即將幀邊緣圖像與背景邊緣相減,以去掉背景的干擾。由圖4(f)看出在經過了背景差之后的圖像仍然存在少量干擾點,但大都是孤立的離散點。
3.2 查找Freeman鏈碼
圖5(a)和(b)是對圖4(f)進行一次開運算[9]的結果,即先腐蝕后膨脹。其作用是消除小物體、在纖細點處分離物體、平滑較大物體的邊界的同時并不明顯改變原物體面積。所用窗口尺寸是3×3,實驗結果表明該方法可以很好的去除圖像中的噪聲點,只留下車體部分。
圖5查找Freeman鏈碼過程
為了提取車輛的形狀信息,找到車輛的擬合邊界,查找Freeman鏈碼時需要物體外邊界是閉合的。從圖5(b)中看出物體的邊界明顯存在缺口。解決物體外邊界不閉合簡單而有效的辦法是將該圖像膨脹數次,得到一個外邊界封閉的物體區域。該算法可以再有限時間內收斂,最大膨脹次數為物體邊緣點中距離最大的兩點的距離。
圖5(c)顯示的是膨脹了6次得到的結果,可以看出其邊界鏈已經閉合。在算法設計中需要注意的一點是如何確定膨脹的次數,判斷收斂,這就要借助邊界鏈碼求取算法中的閉合判斷算法來判定。算法設計如下:
(1) 膨脹一次,求取Freeman鏈碼。
(2) 如果邊界鏈不閉合,說明膨脹操作還未達到應有的次數,繼續轉操作(1);如果邊界鏈閉合,存儲該邊界鏈碼信息,算法結束。
根據上述算法得到的邊界鏈是膨脹后車輛的邊界鏈,需要收縮到原來的大小,得到原物體的邊界。腐蝕的次數應該同膨脹的相同。但單純的腐蝕得到的圖像仍然是邊緣不閉合的,所以要先進行填充之后再腐蝕,實驗結果如圖5(d)(e)所示。腐蝕和膨脹算法窗口大小都是3×3,所以腐蝕操作后邊界位置與原車輛邊界位置幾乎相同。這樣就得到了車體的確切位置信息。
在腐蝕后的填充圖中利用改進的Freeman鏈碼查找算法檢測邊界鏈,即可得到原物體的邊界,從圖5(f)中可以看出求得的邊界鏈可以擬合大部分車輛的輪廓,只有車輪部分由于與路面灰度近似,輪廓不明顯。
四、結論
文中利用邊緣檢測、Freeman鏈碼查找算法、凸凹性判斷、腐蝕膨脹、填充等一系列圖像處理技術和圖形算法,設計出一個簡單、有效、實時性強的邊界鏈檢測算法。實驗表明該算法抗干擾能力強、檢測效果穩定、能準確定位運動車輛位置和形狀信息。
參考文獻
[1] 姜紫峰,劉小坤. 基于神經網絡的交通事件檢測算法[J].西安公路交通大學學報, 2000, 20(3): 67-69.
[2] 趙建有,趙麗平. 基于多智能體的城市交通流控制原型系統[J].交通運輸工程學報, 2003,3(3): 101-105.
[3] 姜桂艷,溫慧敏,楊兆升.高速公路交通事件自動檢測系統與算法設計[J].交通運輸工程學報,2001,1(1):77-79
[4] J VERSAVEL. Road Safety through Video Detection [C]. The Proceedings of the IEEE International Conference on Intelligent Transportation Systems, 1999: 753- 757.
[5] H IKEDA, T MATSUO, Y KANEDO, K TSUJI. Abnormal Incident Detection System Employing Image Processing Technology [C]. The Proceedings of the IEEE International Conference on Intelligent Transportation Systems, 1999: 748- 752.
[6] Fu Chang , Chun - Jen Chen , Chi - Jen Lu. A linear - time component - labeling algorithm using contour tracing technique[J] . Computer Vision and Image Understanding, 2004, (2) :206 -220.
[7] 韓忠濤,董 平,王志良,劉冀偉.基于背景差的實時行人檢測和記數的圖像系統[J].計算機工程,2005,31(17).
[8]馬艷,張治輝.幾種邊緣檢測算子的比較[J].工礦自動化,2004,(1).
[9]P.Soille. Morphological Image Analysis Principles and Applications[M].王小鵬譯. 清華大學出版社.2008:1-81.
作者簡介
張雪,北京工業大學計算機學院研究生,研究方向是圖像處理、并行計算。
10315