隨著人口數量的增長,給交通帶來的壓力越來越大,智能交通系統成為近些年研究的熱點。車流量檢測是智能交通的基礎部分,在系統中占有重要地位。目前有多種方法檢測車流量,例如:電磁感應裝置法和車流信息的超聲波檢測法。而實際上,前進中的車輛速度、種類始終變化,所以普遍存在反射信號不穩定,測量誤差大的問題。與以上方法相比,基于視頻的車流量檢測方法具有許多優點:從視頻圖像中提取可靠信息,完成道路交通的監視工作,可提高道路、車輛的自動化程度;交通監視控制系統中安裝的視頻攝像機比安裝其它傳感器更經濟、且破壞性低;實際道路交通系統中已經安裝了許多攝像機用于道路交通監視和控制,可一舉兩得。
現有的傳統視頻檢測方法基于工控機,其算法成熟,且已形成相關產品。但其也有缺點:一是由于通用CPU沒有專用的硬件乘法器,故很難實現圖像的時實性處理。二是采用通用工控機,運行Windows系統,成本高,要時刻關心機器有沒死機,系統有沒感染病毒,操作系統的補丁升級等問題。基于以上兩點,本文提出了基于TMS320DM642(下簡稱DM642 )的嵌入式圖像識別方案,解決了存在的問題。
車流量檢測系統的原理與組成
車流量檢測系統的工作原理
車流量檢測系統是由視頻采集、車流量數字視頻信號處理、不同環境下車流量檢測算法、以及車流量檢測結果輸出等幾部分組成。數字圖像采集部分的核心芯片是TVP5150,它可將模擬視頻信號轉換為數字視頻信號。DM642運行圖像算法對采集進來的圖像進行數字圖像處理。車流量數字視頻檢測算法白天主要是使用改進后的幀差法進行運動檢測,夜間使用車燈檢測法。按照車道將采集到的公路圖像化分為四部分,每部分對應一條車道。在每條車道中開設一個虛擬線圈(指圖像中一個矩形檢測區域,統稱為虛擬線圈),當有車壓過虛擬線圈時會引起虛擬線圈內像素值發生變化。根據此變化控制I/O口產生每條車道的相應脈沖,處理后發出脈沖給公路交通信號機,控制交通燈,從而達到實現智能交通的目的。同時,可以通過網絡將車流量信息傳到監控中心。
車流量檢測系統硬件
DM642是德州儀器公司專門為多路視頻輸入輸出設計的數字信號處理芯片。其運算功能強大,建立在第二代高性能超長指令字結構上,可以8條指令并行執行,使這款芯片非常適用于數字圖像處理。考慮到實際工作的要求和系統的穩定性,將DM642的主頻設置為600MHz。根據實際應用環境和嵌入式系統的需要,系統除了擴展了系統必須的存儲器部分和視頻采集回放部分外,主要擴展了多路數字I/O和異步串口以及網絡接口功能,方便系統與外部通信。具體硬件實物如圖1所示。說明如下:外擴SDRAM,容量為4M×64位;外擴Flash,容量為4M×8位;2路PAL/NTSC標準模擬視頻輸入(CVBS或S端子),1路PAL/NTSC標準模擬視頻輸出;通過CPLD擴展8路數字I/O口,用于輸出車道上車流的信息;2路UART接口,接口標準RS232/RS422/RS485可配置;實時時鐘RTC+看門狗電路;10M/100Mbase-TX標準以太網接口。
圖1 硬件實物圖
系統組成如圖2所示,在圖中TMS320DM642通過64位寬的EMIF(External Memory Interface)總線擴展外部存儲器部分,包括32Mbytes的Synchronous DRAM,用于存放實際運行時用戶代碼和圖像數據。4Mbytes的FLASH用于存放bootloader,以及用戶的應用程序,啟動時將FLASH中的代碼和數據加載到內存中(SDRAM中),用戶對與虛擬線圈的配置參數也可以存放在FLASH中。SDRAM的數據寬度為64位,FLASH的數據寬度為8位,分別對應TMS320DM642的CE0和CE1空間。同樣地,通用異步收發器UART(Universal Asynchronous Receiver)和CPLD(Complex Programmable Logic Device)也是通過EMIF總線與DM642相連。UART用來擴展串口,本系統中可用其擴展了RS232接口。CPLD用來實現FLASH和UART的粘合邏輯及擴展通用數字I/O。為了方便軟件的實現,本系統中將這兩部分也連接到了DM642的CE1空間,其內部寄存器作為CE1存儲空間的一部分。
圖2系統組成圖
視頻采集輸出部分
為了統計十字路口車流量的信息,本系統設計了兩路模擬視頻輸入。系統將攝像頭采集的模擬視頻信號由TVP5150按ITU-R BT.656轉化為數字視頻流,內嵌同步信號發送到DM642的VP1口和VP2口上。圖像的行同步、場同步信號均內嵌在視頻數據流中的EAV和SAV時基信號中,視頻口只需要視頻采樣時鐘和采樣使能信號即可。DM642可通過FIFO實現數字視頻圖像三幀連續采集,當有一幀圖像正在處理時,其它兩個緩沖區還可以實現圖像的循環采集,從而解決了恒速的視頻采集與變速的圖像處理之間的矛盾。本系統擴展了一路視頻輸出,用于本地回放,當系統調試完畢后此部分功能可以不使用。視頻輸出由Phillips公司(現更名為NXP)的SAA7121芯片實現。SAA7121將DM642的VP0口傳出的數字視頻信號轉化為PAL(50Hz)制式或者NTSC(60Hz)制式模擬信號送外接視頻口輸出。
軟件部分
車流量統計算法
由于白天和晚上路面光強變化非常大,這對算法的適應性提出了更高的要求,為了能全天得到車流量的信息,所以整個算法將白天和晚上分別開來處理。程序結合當時光線的不同情況,對兩種算法進行自動的切換,從而保障整個算法的運行環境。
圖3夜間算法流程圖
·虛擬線圈的選取
虛擬線圈的選取關系到檢測算法的精度和速度,并且受到攝像頭安裝的高度和傾角,以及攝像頭景深的影響。一般情況下,虛擬線圈靠近圖像底部的位置,車輛的間距較大,便于檢測。虛擬線圈越大,相對檢測精度就越高,相應的算法執行的時間也會越長。由于整個系統要適應各種路口、路面,所以虛擬線圈的選取交給了用戶。我們用VC6.0開發了PC機軟件,用戶使用此軟件,通過串口,對各個車道的虛擬線圈的大小和位置進行設置。
·相鄰檢測幀的時間間隔
由于整個系統要與信號機通信,所以要求我們處理每條道路上圖像的總時間不能超過0.25秒。這里選取每幀相隔0.125秒。
·車流量檢測算法
由于白天使用改進后的幀差法已經在PC上有很成熟的應用。如公式1所示:
i=1,2,3,。..。..80, j=1,2,3,。..。..10
在公式1中,E保存幀差后的檢測窗平均值,R是當前幀檢測窗灰度值,R‘是前一幀檢測窗灰度值,m,n為虛擬線圈的長寬,在此就不再贅述。
晚上的路面能見度比較低,算法主要是對車燈的識別。在晚上,車燈有很強的亮度,所以只要能正確的檢測到車燈就可以進行車輛的測量。算法的干擾來自路面對車燈發出來的光線的反射。通過使用Matlab仿真試驗后發現,二值化去噪以后,車燈的亮斑基本上是車燈的形狀,而路面反光區向前發散,據此可以通過檢測窗上亮斑的形狀特征來識別車燈和路面反光區。夜間的算法如圖2夜間算法流程圖所示。對虛擬線圈二值化的閾值選取是通過大津法得到的,與經驗法相比,大津法是通過計算方差得到閾值,環境適應能力比較強,但這也增加了算法的時間和空間復雜度。圖像去噪是使用3×3的中值濾波器,我們對其進行了快速算法的改進,并且只對虛擬線圈進行。
采集到路面原始灰度圖像如圖4,圖5為其二值化處理后的圖像,圖中矩形區域為虛擬線圈,線圈中有兩個白色區域。以像素為單位,根據白色區域的最大長寬比確定是否為車燈。車燈對應的白色區域長一般長小于等于寬,如圖6所示。路面反光對應的白色區域長大于寬如圖9所示,虛擬線圈內的白色區域為路面反光。
圖4夜間路面灰度圖
圖5路面二值化后圖
圖6虛擬線圈
圖7夜間路面灰度圖
圖8路面二值化后圖
圖9虛擬線圈
系統軟件開發環境為CCS,使用了TI提供的DSP/BIOS內核以及TI倡導的RF5軟件參考框架。通過DSP/BIOS,配置了輸入、處理、輸出等線程,這些線程之間的同步通過旗語進行。使用DSP/BIOS內核,配置DSP/BIOS方便易行,便于更改,比傳統方法有許多優勢。使用DSP軟件架構RF5(Reference Framework 5),大大縮短了開發時間,同時也最大限度的保證了代碼的可移植性和健壯性。軟件架構從下往上依次為CSL(芯片支持庫)、DSP/BIOS以及Driver層,信號處理庫層,算法標準層,這三層構成RF5,最上面一層是用戶應用程序層。用戶修改維護代碼方便,只需要上層改動即可。
輸入驅動采用TI公司提供的FVID類驅動,如圖10所示,此驅動通過對結構體配置參數,實現DM642的IIC模塊對視頻采集口,以及對A/D轉換芯片TVP5150的配置,使TVP5150輸出PAL制式的數字視頻流,并將采集到的圖像通過視頻口的FIFO寫入到指定內存區。當圖像采集完成后,通過旗語發送消息給處理模塊,消息結構存儲了圖像數據所在內存的空間的首地址。隨后輸入模塊等待輸出模塊的回復,以繼續處理下一幀的圖像。處理模塊負責執行車流量統計算法。從輸入模塊發送的消息結構中提取圖像數據地址,以進行圖像算法處理,運算結果通過CPLD擴展的I/O口輸出,將車流量的監測信息傳給信號機。
代碼優化
程序主要用C語言編寫,一些核心的代碼要滿足實時性的要求進行了匯編優化。C語言程序優化的好壞直接影響程序的效率。程序中廣泛運用以空間換時間的方法來提高代碼的運行效率。代碼優化的方法比較多,主要的方法有:編譯器優化,在編譯時選擇不同的編譯優化選項,如-pm-oe選項;優化C語言編寫的代碼,加入常用的指示性信息如#Pragma MUST_ITERATE等;編寫線性匯編程序,提高程序運行速度;編寫匯編程序,實現軟件流水。排流水線可以使用多種技術手段,如依賴圖和迭代間隔時序表。在TI提供的技術文檔中有詳細描述,這里不再重復。
圖10 視頻采集驅動程序結構
實驗結果與分析
為驗證車流量檢測系統的可靠性,將算法移植入檢測系統,在多處公路天橋上使用三角架安裝攝像頭進行了實際檢測試驗。由于天橋上有一定數量的行人,導致天橋輕微晃動,對攝像頭的穩定性有一定影響。另外車輛騎線現象等造成檢測結果有一定誤差,但是檢測效果依然良好。一組測試如表1車流量檢測結果所示,在自然環境下,采集圖像大小為720×576。其中白天的測量時間為下午3點27分,晚上的時間為下午6點50分,天氣晴朗,測試地點為北京市海淀區學院路的兩條車道。采用CCD大小為1/3英寸。鏡頭焦距為3.5“8mm, 最大孔徑比為1:1.4。
表1車流量檢測結果
從表1車流量檢測結果中得知,白天視頻檢測的結果略好,夜間車燈的形狀和亮度有較大差異,有一定誤差,但系統識別準確率都在80%以上。試驗證明了該方法檢測精度高,實現成本低,系統運行可靠。
責任編輯:gt
-
嵌入式
+關注
關注
5068文章
19019瀏覽量
303267 -
控制系統
+關注
關注
41文章
6546瀏覽量
110479 -
德州儀器
+關注
關注
123文章
1690瀏覽量
140586 -
攝像機
+關注
關注
3文章
1583瀏覽量
59955 -
DM642
+關注
關注
0文章
58瀏覽量
26602
發布評論請先 登錄
相關推薦
評論