王寶珠,高 瑜,吳金龍
(1.河北工業大學 信息工程學院,天津 300401;2.河北省鐵路管理局 河北 石家莊 050051)
隨著經濟的發展以及城市化進程的逐步加快,我國的車輛數量正在迅速增長,這樣就給城市交通帶來的嚴峻的挑戰——交通擁堵[1]。交通擁堵不但使事故發生率加大,而且也加劇了環境污染,造成了資源浪費[2]。為了緩解交通壓力,減少車輛延誤和環境污染,實現智能交通信號控制是建設資源節約型社會的必然選擇。
在我國,現如今交通信號控制系統主要采取定時控制的方式[3]。定時控制不能根據車流量自動調節紅綠燈時間,必然會造成車輛延誤及交通擁塞等情況。因此根據具體的車流量來控制紅綠燈時間,可有效的分配交通資源,減少交通擁堵。
傳統的基于視頻的車流量檢測方法包括光溜檢測法,幀差法,背景消減法,邊緣檢測法等[4],這些方法運算復雜,處理數據量大,且易受外部環境的影響。因此文中采取一種設置檢測線的車流量檢測的方法,通過在車輛行駛的道路前方垂直于道路的方向設置檢測線,當車輛經過時車身陰影會造成檢測線灰度值的劇烈變化,進而即可統計出車流量。該方法簡單易行,且處理的數據量小,運算速度快,可得到較好的結果。
預處理是實現算法的重要部分,首先將視頻分成幀序列。設置于交通路口的攝像頭拍攝到的視頻一般是1秒25幀的標準視頻格式,由于車輛一般在交通路口行駛速度不快,故而不需要十分密集的幀序列,為了減少數據處理量而又不影響實驗結果,采取隔一幀取一次的方法,這樣數據量即成為原來的一半。
將視頻分成圖像序列后,要將其轉換成灰度圖像,方可進行后續的工作,如圖1所示。通過大量實驗的驗證,轉換成灰度圖像后,使用閾值0.4,再進行二值化,可以清晰的將車身、車身前的車影與道路明顯的區分開來,如圖2所示。

圖1 灰度圖像Fig.1 Gray-level image

圖2 圖像二值化Fig.2 Image binarization
由圖2可以看出,路面上有很多不連貫的黑色區域和黑點,這些噪聲會對檢測結果產生不利的影響,因此,將上述二值化后的圖像序列再進行中值濾波,采用5*5的檢測窗口,可以去濾掉圖像上大部分的椒鹽噪聲,起到保護邊緣信息的作用,如圖3所示。

圖3 中值濾波后Fig.3 Image after median filter
由圖2及圖3清晰可見,經過二值化后的圖像,車身前方的陰影呈黑色,路面呈白色,因此能把車身前方的陰影部分和路面信息清晰的分隔開來。當車輛行駛到某一位置時,車身前方的陰影一定會造成車輛前方的路面上的區域的灰度值發生劇烈的變化。因此,當發生一次劇烈變化,計數器計一次數,這樣即可計算出行駛過的車輛的數量。
在車輛行駛的道路前方,設置一虛擬檢測區域,便可以實現上述過程。傳統的虛擬檢測區域可以分為3類:基于特征點、基于檢測線、基于檢測窗口。由于檢測點包含的信息量太少,且易受噪聲干擾;而檢測區域過大,當車輛經過時,容易造成重復計數,因此文中將采取基于檢測線的檢測方法[5]。如圖4所示。
當車輛即將行駛到檢測線上時,車身前方的陰影會迅速覆蓋檢測線,造成檢測線上的灰度值發生劇烈的變化。通過設定閾值,若灰度變化大于閾值,可判斷為有一輛車到達,若灰度變化小于閾值,就判斷為沒有車輛通過,這樣便完成了整個檢測過程。

圖4 設置檢測線Fig.4 Set a test line
由上可知,我們只需處理每一幀圖像的一行像素值,因此大大減少了數據的存儲空間,從而使計算機的處理速度更快。在實際處理中,用前一幀圖像減去后一幀圖像,比較差值圖像檢測線位置的像素值,此處通過大量實驗數據,設定閾值為15,若其值大于該閾值,則可判斷有車輛通過,若小于該閾值,則沒有車輛通過。所有檢測線位置像素值做差后,可得到如圖5所示的數據曲線。

圖5 像素差數據曲線Fig.5 Data analysis curve
由圖5可見,圖像的正值尖峰,可看做一輛車的到來,通過設定閾值,可將小的尖峰部分濾掉,小的尖峰部分是車身及車窗造成的干擾,故通過此方法,可得到具體通過路口的車輛的數量。
統計寬闊路口的車流量,可將整個路口分成幾個車道,對幾個車道分別用此方法進行統計,最終求和,即可實現車流量的統計。
FPGA即現場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。FPGA的使用非常靈活,同一片FPGA通過不同的編程數據可以產生不同的電路功能。FPGA在通信、數據處理、網絡、儀器、工業控制、軍事和航空航天等眾多領域得到了廣泛的應用。
文中通過使用matlab對上述算法進行仿真,我們可以得到視頻圖像每一幀的像素信息,并將該信息作為一個數據矩陣儲存到后綴名為dat的二進制數據文件中,作為FPGA硬件仿真的輸入激勵,即像素點檢測的輸入部分。
基于FPGA平臺來完成實時算法的硬件實現,文中根據算法復雜度及資源使用情況,選取Xilinx公司的SpartanIII XC3S50芯片完成實現。
XC3S50是Xilinx公司推出的SpartanIII系列中資源可用量較少的一款芯片,它包含768個slices、4塊18×18乘法器、4塊獨立RAM(每塊RAM容量為18K)。經過綜合計算以及篩選,在節約成本的基礎上,確定XC3S50為交通信號燈路口的車流量檢測算法的硬件實現平臺。
電路設計的開發環境采用ise12.4,并使用modelsim6.5se進行硬件電路仿真。
圖6是該算法在FPGA上實現的電路設計圖。

圖6 FPGA電路設計框圖Fig.6 Block diagram of circuit design
如圖6所示,視頻幀切換脈沖到來時啟動計數器進行時序控制計數,計數到37后保持,等待下一個脈沖的啟動,在計數過程中將數值輸出至其他電路。累加器接收到計數后,對每一幀更新的并行灰度信號進行逐位累加處理,當37位累加完畢,輸出累加結果至減法器。減法器在時序計數控制下將當前幀的累加值與寄存器存放的上一幀灰度累加值做差,將結果輸出至比較器。比較器將差值與門限值進行比較,如果超過門限,則輸出一個高脈沖,作為有車經過的標志。
圖7是采用modelsim的仿真結果。

圖7 modelsim仿真結果Fig.7 Simulation result of modelsim
仿真采用的系統時鐘為65.536 MHz,對應時鐘周期約為15.2 ns,如圖7所示,每一幀的處理時間僅需38*15.2 ns≈577 ns,可以滿足快速處理的需要。圖中output_signal為比較器輸出的結果,即為監測是否有車輛通過的標志,該結果與matlab算法仿真結果完全一致。該算法實現簡單,有很高的實時性和可操作性。
文中的算法是利用Matlab編程實現的,而硬件實現是在ise12.4+modelsim6.5se的環境下編譯完成的。通過對一段3分48秒的交通路口視頻進行驗證,準確率在97%以上。文中與其他實現車流量統計的算法相比較,優點在于完成該算法的硬件實現,且就算法本身而言,實現簡單,數據處理量小,處理速度快。但該算法自適應性較弱,容易受到外界干擾影響,需要進一步加強對檢測算法的優化和改進研究,以提高檢測算法的準確度和自適應性。
[1]王衛峰,王錕,郝志峰.基于視頻的車流量統計算法[J].科學技術與工程,2011,17(11):4080-4082.
WANG Wei-feng,WANG Kun,HAO Zhi-feng.Video-based statistical algorithm for traffic flow[J].Science Technology and Engineering,2011,17(11):4080-4082.
[2]楊永輝,黃磊,劉昌平.基于視頻分析的車輛排隊長度檢測[J].計算機應用研究,2011,28(3):1037-1041
YANG Yong-hui,HUANG Lei,LIU Chang-ping.Mesurement of vehicle queue length based on video analysis[J].Application Research of Computers,2011,28(3):1037-1041.
[3]洪清輝.基于PLC的智能紅綠燈專家控制系統[J].漳州師范學院學報:自然科學學版,2007(3):42-46.
HONG Qing-hui.Expert control system of intelligent traffic light controlled by PLC[J].Journal of Zhangzhou Normal University:Nat.Sci.,2007(3):42-46.
[4]張輝,董育寧.基于視頻的車流量檢測算法綜述[J].南京郵電大學學報:自然科學版,2007,3(27):88-94.
ZHANG Hui,DONG Yu-ning.Survey on video based vehicle detection algorithms[J].Jounnal of Nanjing University of Posts and Telecommunications:Natural Science,2007,3(27):88-94.
[5]劉章軍.基于差分圖像的車流量檢測算法及實現[D].西南交通大學,2011.
[6]司紅偉,全蕾,張杰.基于背景估計的運動檢測算法[J].計算機工程與設計,2011,32(1):262-266.
SIHong-wei,QUAN Lei,ZHANG Jie.Motiondetection algorithm based on background estimated[J].Computer Engineering and Design,2011,32(1):262-266.