基于FPGA的交通路口車流量檢測方法研究
摘要:為了使車流在交通路口順暢通過,通常需要統(tǒng)計(jì)一個(gè)交通信號燈周期內(nèi)的車流量,以實(shí)現(xiàn)交通信號燈的自動(dòng)配時(shí)。文中提出了一種交通路口的車流量檢測算法。通過在道路前方設(shè)置檢測線,進(jìn)而統(tǒng)計(jì)檢測線灰度變化的情況,即可統(tǒng)計(jì)出通過的車流量。并對其進(jìn)行FPGA的硬件仿真。實(shí)驗(yàn)結(jié)果表明,此方法實(shí)現(xiàn)簡單,運(yùn)算處理速度快,能夠得到較滿意的結(jié)果。
關(guān)鍵詞:交通;車流量;檢測線;FPGA
隨著經(jīng)濟(jì)的發(fā)展以及城市化進(jìn)程的逐步加快,我國的車輛數(shù)量正在迅速增長,這樣就給城市交通帶來的嚴(yán)峻的挑戰(zhàn)——交通擁堵。交通擁堵不但使事故發(fā)生率加大,而且也加劇了環(huán)境污染,造成了資源浪費(fèi)。為了緩解交通壓力,減少車輛延誤和環(huán)境污染,實(shí)現(xiàn)智能交通信號控制是建設(shè)資源節(jié)約型社會(huì)的必然選擇。
在我國,現(xiàn)如今交通信號控制系統(tǒng)主要采取定時(shí)控制的方式。定時(shí)控制不能根據(jù)車流量自動(dòng)調(diào)節(jié)紅綠燈時(shí)間,必然會(huì)造成車輛延誤及交通擁塞等情況。因此根據(jù)具體的車流量來控制紅綠燈時(shí)間,可有效的分配交通資源,減少交通擁堵。
傳統(tǒng)的基于視頻的車流量檢測方法包括光溜檢測法,幀差法,背景消減法,邊緣檢測法等,這些方法運(yùn)算復(fù)雜,處理數(shù)據(jù)量大,且易受外部環(huán)境的影響。因此文中采取一種設(shè)置檢測線的車流量檢測的方法,通過在車輛行駛的道路前方垂直于道路的方向設(shè)置檢測線,當(dāng)車輛經(jīng)過時(shí)車身陰影會(huì)造成檢測線灰度值的劇烈變化,進(jìn)而即可統(tǒng)計(jì)出車流量。該方法簡單易行,且處理的數(shù)據(jù)量小,運(yùn)算速度快,可得到較好的結(jié)果。
1 算法設(shè)計(jì)
1.1 視頻預(yù)處理
預(yù)處理是實(shí)現(xiàn)算法的重要部分,首先將視頻分成幀序列。設(shè)置于交通路口的攝像頭拍攝到的視頻一般是1秒25幀的標(biāo)準(zhǔn)視頻格式,由于車輛一般在交通路口行駛速度不快,故而不需要十分密集的幀序列,為了減少數(shù)據(jù)處理量而又不影響實(shí)驗(yàn)結(jié)果,采取隔一幀取一次的方法,這樣數(shù)據(jù)量即成為原來的一半。
將視頻分成圖像序列后,要將其轉(zhuǎn)換成灰度圖像,方可進(jìn)行后續(xù)的工作,如圖1所示。通過大量實(shí)驗(yàn)的驗(yàn)證,轉(zhuǎn)換成灰度圖像后,使用閾值0.4,再進(jìn)行二值化,可以清晰的將車身、車身前的車影與道路明顯的區(qū)分開來,如圖2所示。
由圖2可以看出,路面上有很多不連貫的黑色區(qū)域和黑點(diǎn),這些噪聲會(huì)對檢測結(jié)果產(chǎn)生不利的影響,因此,將上述二值化后的圖像序列再進(jìn)行中值濾波,采用5*5的檢測窗口,可以去濾掉圖像上大部分的椒鹽噪聲,起到保護(hù)邊緣信息的作用,如圖3所示。
1.2 算法實(shí)現(xiàn)
由圖2及圖3清晰可見,經(jīng)過二值化后的圖像,車身前方的陰影呈黑色,路面呈白色,因此能把車身前方的陰影部分和路面信息清晰的分隔開來。當(dāng)車輛行駛到某一位置時(shí),車身前方的陰影一定會(huì)造成車輛前方的路面上的區(qū)域的灰度值發(fā)生劇烈的變化。因此,當(dāng)發(fā)生一次劇烈變化,計(jì)數(shù)器計(jì)一次數(shù),這樣即可計(jì)算出行駛過的車輛的數(shù)量。
在車輛行駛的道路前方,設(shè)置一虛擬檢測區(qū)域,便可以實(shí)現(xiàn)上述過程。傳統(tǒng)的虛擬檢測區(qū)域可以分為3類:基于特征點(diǎn)、基于檢測線、基于檢測窗口。于檢測點(diǎn)包含的信息量太少,且易受噪聲干擾;而檢測區(qū)域過大,當(dāng)車輛經(jīng)過時(shí),容易造成重復(fù)計(jì)數(shù),因此文中將采取基于檢測線的檢測方法。如圖4所示。
當(dāng)車輛即將行駛到檢測線上時(shí),車身前方的陰影會(huì)迅速覆蓋檢測線,造成檢測線上的灰度值發(fā)生劇烈的變化。通過設(shè)定閾值,若灰度變化大于閾值,可判斷為有一輛車到達(dá),若灰度變化小于閾值,就判斷為沒有車輛通過,這樣便完成了整個(gè)檢測過程。
由上可知,我們只需處理每一幀圖像的一行像素值,因此大大減少了數(shù)據(jù)的存儲(chǔ)空間,從而使計(jì)算機(jī)的處理速度更快。在實(shí)際處理中,用前一幀圖像減去后一幀圖像,比較差值圖像檢測線位置的像素值,此處通過大量實(shí)驗(yàn)數(shù)據(jù),設(shè)定閾值為15,若其值大于該閾值,則可判斷有車輛通過,若小于該閾值,則沒有車輛通過。所有檢測線位置像素值做差后,可得到如圖5所示的數(shù)據(jù)曲線。
由圖5可見,圖像的正值尖峰,可看做一輛車的到來,通過設(shè)定閾值,可將小的尖峰部分濾掉,小的尖峰部分是車身及車窗造成的干擾,故通過此方法,可得到具體通過路口的車輛的數(shù)量。
統(tǒng)計(jì)寬闊路口的車流量,可將整個(gè)路口分成幾個(gè)車道,對幾個(gè)車道分別用此方法進(jìn)行統(tǒng)計(jì),最終求和,即可實(shí)現(xiàn)車流量的統(tǒng)計(jì)。
2 基于FPGA的硬件仿真
FPGA即現(xiàn)場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA的使用非常靈活,同一片F(xiàn)PGA通過不同的編程數(shù)據(jù)可以產(chǎn)生不同的電路功能。FPGA在通信、數(shù)據(jù)處理、網(wǎng)絡(luò)、儀器、工業(yè)控制、軍事和航空航天等眾多領(lǐng)域得到了廣泛的應(yīng)用。
文中通過使用matlab對上述算法進(jìn)行仿真,我們可以得到視頻圖像每一幀的像素信息,并將該信息作為一個(gè)數(shù)據(jù)矩陣儲(chǔ)存到后綴名為dat的二進(jìn)制數(shù)據(jù)文件中,作為FPGA硬件仿真的輸入激勵(lì),即像素點(diǎn)檢測的輸入部分。
基于FPGA平臺來完成實(shí)時(shí)算法的硬件實(shí)現(xiàn),文中根據(jù)算法復(fù)雜度及資源使用情況,選取Xilinx公司的SpartanIIIXC3S50芯片完成實(shí)現(xiàn)。
XC3S50是Xilinx公司推出的SpartanIII系列中資源可用量較少的一款芯片,它包含768個(gè)slices、4塊18x18乘法器、4塊獨(dú)立RAM(每塊RAM容量為18K)。經(jīng)過綜合計(jì)算以及篩選,在節(jié)約成本的基礎(chǔ)上,確定XC3S50為交通信號燈路口的車流量檢測算法的硬件實(shí)現(xiàn)平臺。
電路設(shè)計(jì)的開發(fā)環(huán)境采用ise12.4,并使用modelsim6.5se進(jìn)行硬件電路仿真。
如圖6所示,視頻幀切換脈沖到來時(shí)啟動(dòng)計(jì)數(shù)器進(jìn)行時(shí)序控制計(jì)數(shù),計(jì)數(shù)到37后保持,等待下一個(gè)脈沖的啟動(dòng),在計(jì)數(shù)過程中將數(shù)值輸出至其他電路。累加器接收到計(jì)數(shù)后,對每一幀更新的并行灰度信號進(jìn)行逐位累加處理,當(dāng)37位累加完畢,輸出累加結(jié)果至減法器。減法器在時(shí)序計(jì)數(shù)控制下將當(dāng)前幀的累加值與寄存器存放的上一幀灰度累加值做差,將結(jié)果輸出至比較器。比較器將差值與門限值進(jìn)行比較,如果超過門限,則輸出一個(gè)高脈沖,作為有車經(jīng)過的標(biāo)志。
仿真采用的系統(tǒng)時(shí)鐘為65.536 MHz,對應(yīng)時(shí)鐘周期約為15.2 ns,如圖7所示,每一幀的處理時(shí)間僅需38*15.2 ns≈577 ns,可以滿足快速處理的需要。圖中output_signal為比較器輸出的結(jié)果,即為監(jiān)測是否有車輛通過的標(biāo)志,該結(jié)果與matlab算法仿真結(jié)果完全一致。該算法實(shí)現(xiàn)簡單,有很高的實(shí)時(shí)性和可操作性。
3 結(jié)束語
文中的算法是利用Matlab編程實(shí)現(xiàn)的,而硬件實(shí)現(xiàn)是在isel2.4+modelsim6.5se的環(huán)境下編譯完成的。通過對一段3分48秒的交通路口視頻進(jìn)行驗(yàn)證,準(zhǔn)確率在97%以上。文中與其他實(shí)現(xiàn)車流量統(tǒng)計(jì)的算法相比較,優(yōu)點(diǎn)在于完成該算法的硬件實(shí)現(xiàn),且就算法本身而言,實(shí)現(xiàn)簡單,數(shù)據(jù)處理量小,處理速度快。但該算法自適應(yīng)性較弱,容易受到外界干擾影響,需要進(jìn)一步加強(qiáng)對檢測算法的優(yōu)化和改進(jìn)研究,以提高檢測算法的準(zhǔn)確度和自適應(yīng)性。