焦健雄,趙賀,羅應(yīng)龍,尹鵬程,劉紫燕
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025)
摘要:針對(duì)目前由于各種人為因素造成的交通事故頻發(fā)的問題,提出一種基于FPGA的智能小車的設(shè)計(jì)方案。在該方案中設(shè)計(jì)了顏色處理模塊、圖像壓縮模塊、SOPC模塊等。通過該平臺(tái),可以實(shí)現(xiàn)紅綠燈識(shí)別,并在SoPC中嵌入代碼實(shí)現(xiàn)中心定位,控制小車在道路的正確軌跡行駛,從而實(shí)現(xiàn)自動(dòng)駕駛。
關(guān)鍵詞:智能小車;FPGA;顏色處理;圖像壓縮
0引言
汽車保有量的增加給人們出行帶來了極大的便利,但同時(shí)也帶來了很多交通安全的隱患,如何減少交通安全事故的發(fā)生成為了一個(gè)亟需解決的問題。自動(dòng)駕駛控制系統(tǒng)的出現(xiàn)提供了一個(gè)全新的思路,其主要依靠車內(nèi)計(jì)算機(jī)系統(tǒng)為主的智能駕駛儀來實(shí)現(xiàn)自動(dòng)駕駛,并根據(jù)視覺感知獲得車輛周圍環(huán)境信息以此控制車輛行駛。例如谷歌研發(fā)的無人駕駛系統(tǒng)就是一種自動(dòng)駕駛控制系統(tǒng)。
目前智能小車大部分使用ARM或DSP平臺(tái),對(duì)圖像的處理速度慢,影響圖像識(shí)別和處理的速度。本文設(shè)計(jì)了基于FPGA的智能小車,利用機(jī)器視覺感知技術(shù),提高了圖像識(shí)別的實(shí)時(shí)性,從而增強(qiáng)了車輛的安全系數(shù),對(duì)交通安全產(chǎn)生了深遠(yuǎn)的影響,也對(duì)人民群眾的生命財(cái)產(chǎn)安全有重大意義。
1智能小車系統(tǒng)整體設(shè)計(jì)
整個(gè)智能小車系統(tǒng)由攝像頭、FPGA、存儲(chǔ)器、視頻顯示、直流電機(jī)及驅(qū)動(dòng)器模塊組成 [1],系統(tǒng)的設(shè)計(jì)框圖如圖1所示。
其中,F(xiàn)PGA硬件設(shè)計(jì)是整個(gè)系統(tǒng)的關(guān)鍵,本設(shè)計(jì)采用 Altera的Cyclone IV芯片,主要實(shí)現(xiàn)攝像頭圖像的實(shí)時(shí)采集、處理、紅綠燈的判斷、圖像壓縮和中心定位,以及直流電機(jī)PWM生成;攝像頭用于采集小車前方道路和紅綠燈信息;直流電機(jī)及驅(qū)動(dòng)模塊負(fù)責(zé)小車的轉(zhuǎn)向;視頻顯示模塊實(shí)時(shí)顯示處理后的視頻信息;存儲(chǔ)器模塊使用SDRAM存儲(chǔ)FPGA需要存儲(chǔ)的信息[4]。
智能小車工作流程如下:首先,F(xiàn)PGA配置OV7725攝像頭參數(shù)使攝像頭輸出圖像數(shù)據(jù)為YUV格式并采集攝像頭數(shù)據(jù)。采集的圖像數(shù)據(jù)通過FPGA處理后存儲(chǔ)到外部存儲(chǔ)器并將其通過VGA顯示。FPGA硬件設(shè)計(jì)主要包含顏色處理模塊、圖像壓縮模塊及SoPC模塊,通過分析數(shù)據(jù)生成合適的PWM使智能小車正確行駛。
2系統(tǒng)硬件平臺(tái)設(shè)計(jì)
系統(tǒng)硬件平臺(tái)設(shè)計(jì)主要包括顏色處理模塊、圖像壓縮模塊以及SoPC模塊。
2.1顏色處理模塊
本文設(shè)計(jì)了顏色識(shí)別模塊來完成紅綠燈的識(shí)別。由于FPGA將CMOS傳感器配置為輸出YUV格式的圖像,若要進(jìn)行顏色識(shí)別,首先需要將YUV格式的圖像轉(zhuǎn)換為RGB格式的圖像[56,9,11],然后通過比較每個(gè)像素RGB分量完成紅綠燈識(shí)別,顏色處理模塊結(jié)構(gòu)框圖如圖2所示。
圖2顏色處理模塊結(jié)構(gòu)框圖YUV格式圖像轉(zhuǎn)換為RGB格式后對(duì)整張圖像每個(gè)像素點(diǎn)的顏色進(jìn)行分析,并計(jì)算每個(gè)像素點(diǎn)RGB分量的差值是否滿足給定的閾值,判斷該像素點(diǎn)的顏色。一幀圖像結(jié)束后根據(jù)識(shí)別到相應(yīng)顏色的數(shù)量判斷是否遇到交通燈以及交通燈的顏色。顏色處理模塊中核心代碼如下:
if(R>B&&R>G((R-B+R-G)>th_r
1'b1:1'b0):1'b0)//R G B分別表示三色分量都是8 bit數(shù)值,計(jì)算差值并計(jì)數(shù)
begin
cnt_red<=cnt_red+1'b1;
圖6SoPC模塊處理流程圖end
顏色處理模塊的RTL圖如圖3所示。
2.2圖像壓縮模塊
圖像壓縮模塊包括圖像預(yù)處理模塊及圖像分辨率壓縮模塊。
圖像預(yù)處理模塊對(duì)灰度圖像進(jìn)行Sobel邊緣提取得到二值化圖像,并通過雙端口SDRAM模塊寫入存儲(chǔ)器。Sobel算子對(duì)圖像邊緣檢測速度快,能夠在一定程度上抑制噪聲[3,8],從而很好地提取圖像邊緣,圖4為圖像預(yù)處理模塊RTL圖。
圖像分辨率壓縮降低了圖像的分辨率,可以大大提高系統(tǒng)效率,對(duì)于簡單圖像分辨率的壓縮不影響目標(biāo)的識(shí)別。本文設(shè)計(jì)的圖像分辨率壓縮模塊通過雙端口SDRAM讀取存儲(chǔ)器中的二值化圖像,將640×480像素的二值化圖像分辨率壓縮轉(zhuǎn)換為80×60像素的二值化圖像[7]。圖5為圖像分辨率壓縮模塊RTL圖。
2.3SoPC模塊
SoPC系統(tǒng)由微處理器、存儲(chǔ)器、用戶邏輯以及I/O組成的硬件系統(tǒng)和軟件設(shè)計(jì)組成[2],本設(shè)計(jì)采用在FPGA中嵌入Nios II處理器的方法來實(shí)現(xiàn)。在FPGA中嵌入Nios II處理器實(shí)現(xiàn)的SoPC系統(tǒng)容易開發(fā),周期短,性能高。
智能小車的SoPC模塊通過讀取圖像壓縮模塊處理后的圖像數(shù)據(jù),以及顏色處理模塊得到的紅綠燈信息,完成裝置的中心定位并控制直流電機(jī)在軌跡上正確行駛。圖6為SoPC模塊處理流程圖。
本設(shè)計(jì)中SoPC系統(tǒng)的構(gòu)建過程如下[1,10]:首先使用鎖相環(huán)設(shè)置SoPC時(shí)鐘為100 MHz,根據(jù)內(nèi)部資源使用情況和系統(tǒng)要求選擇添加合適的Nios II CPU,添加PIO用作圖像數(shù)據(jù)和紅綠燈數(shù)據(jù)的接收以及輸出合適的占空比控制直流電機(jī),添加UART用于SoPC與上位機(jī)通信,添加存儲(chǔ)器以供存儲(chǔ)數(shù)據(jù)和指令,設(shè)置中斷優(yōu)先級(jí)和外設(shè)基地址,最后生成軟核。
3系統(tǒng)平臺(tái)驗(yàn)證
圖7系統(tǒng)FPGA硬件資源使用情況本設(shè)計(jì)使用Altera公司Cyclone IV FPGA芯片,其內(nèi)部有1.5 W les、4個(gè)PLL核、166個(gè)IO口、50 W bit的內(nèi)存等充足資源,連接SDRAM存儲(chǔ)器和EPCS存儲(chǔ)器擴(kuò)展內(nèi)存,足以實(shí)現(xiàn)FPGA內(nèi)部各個(gè)模塊的功能。圖7為該系統(tǒng)FPGA硬件資源使用情況。
3.1顏色處理模塊測試
本模塊測試是將所采集的圖片中要識(shí)別的顏色轉(zhuǎn)變?yōu)楹谏@示,測試結(jié)果如圖8所示。
圖8(a)中原圖的紅色像素在圖8(b)測試結(jié)果圖中絕大部分被顯示為黑色,其他點(diǎn)則是與原圖相同顯示,說明算法對(duì)顏色的識(shí)別有效,能很好地識(shí)別交通燈。
3.2圖像壓縮模塊測試
圖9為圖像壓縮模塊測試圖,是使用VGA顯示邊緣提取后的圖像,并用PC顯示分辨率壓縮后圖像。
如圖9所示,邊緣提取圖將絕大部分原圖中的邊緣信息保留了下來,說明控制系統(tǒng)中使用的Sobel算子獲得很好的效果。CMOS攝像頭采集圖像分辨率為640×480像素,經(jīng)過圖像的壓縮之后,圖像的分辨率變?yōu)?0×60像素,對(duì)原圖進(jìn)行了很大程度的壓縮,對(duì)比壓縮前后,邊緣提取圖的輪廓在壓縮圖中能很好地反映出來,說明圖像分辨率壓縮的實(shí)現(xiàn)效果很好。
3.3SoPC模塊測試
圖10為SoPC模塊的中心定位模塊測試圖,對(duì)圖像壓縮模塊輸出的圖像進(jìn)行處理,將道路部分圖像置1,其他部分置0,計(jì)算道路中心并在相應(yīng)坐標(biāo)置0,通過PC顯示。圖10中心定位測試圖
如圖10所示,中心定位模塊通過分析圖像壓縮模塊輸出的圖像,高效地分析出道路信息并濾除不必要的信息,根據(jù)道路邊緣坐標(biāo)定位中心軌跡,從圖中可以明顯看出中心定位模塊實(shí)現(xiàn)效果很好。
3.4整車測試
整車測試圖如圖11所示,本設(shè)計(jì)搭建的小車沿著中心定位模塊規(guī)劃的軌跡正確行駛。測試結(jié)果表明,小車在直道上穩(wěn)定行駛,在彎道和直角彎能平滑拐彎,說明SoPC中的中心定位模塊和電機(jī)控制算法調(diào)試效果很好。
4結(jié)論
隨著對(duì)視頻處理速度要求的不斷提高,采用ARM、DSP平臺(tái)實(shí)現(xiàn)的實(shí)時(shí)視頻處理系統(tǒng)很難滿足對(duì)視頻處理的實(shí)時(shí)性和穩(wěn)定性的要求。本文基于FPGA平臺(tái)設(shè)計(jì)了一種智能小車,利用攝像頭完成實(shí)時(shí)道路信息采集,處理實(shí)現(xiàn)紅綠燈識(shí)別、道路中心定位及按軌跡正確行駛,經(jīng)過多次測試,該智能小車穩(wěn)定性和實(shí)時(shí)性很高,是一種實(shí)用、安全的自動(dòng)駕駛解決方案。
參考文獻(xiàn)
?。?] 劉紫燕,馮亮,祁佳. 一種基于FPGA的實(shí)時(shí)視頻跟蹤系統(tǒng)硬件平臺(tái)設(shè)計(jì)[J].傳感器與微系統(tǒng),2014,33(7):98102.
[2] 吳華中. 基于FPGA的視頻監(jiān)控系統(tǒng)設(shè)計(jì)[D].太原:中北大學(xué),2014.
?。?] 祁佳,劉紫燕. 實(shí)時(shí)圖像雙邊緣檢測算法及FPGA實(shí)現(xiàn)[J].電視技術(shù),2014,38(3):6465,85.
?。?] 馮亮,劉紫燕,祁佳. 基于FPGA的視頻跟蹤系統(tǒng)目標(biāo)檢測方法研究[J].微型機(jī)與應(yīng)用,2014,33(12):3436,39.
[5] 張浩然. 基于FPGA的視頻采集及圖像處理算法實(shí)現(xiàn)[D].昆明:云南大學(xué),2015.
?。?] 明章輝. 基于FPGA的CameraLink視頻信號(hào)處理技術(shù)的研究[D].南京:南京理工大學(xué),2014.
[7] 錢軍琪. 基于DSP和FPGA的視頻壓縮系統(tǒng)的設(shè)計(jì)[D].西安:西安電子科技大學(xué),2014.
?。?] 黃彪. 基于FPGA的高清視頻信號(hào)實(shí)時(shí)處理系統(tǒng)的研究[D].北京:中國科學(xué)院研究生院,2013.
[9] 徐建松, 俞拙非, 侯凱, 等. 一種基于FPGA的閥基電子設(shè)備的研制[J].電子技術(shù)應(yīng)用,2015,41(10):2729,33.
?。?0] HSU Y P, MIAO H C, TSAI C C. FPGA implementation of a realtime image tracking system[C].SCIE Annual Conference 2010, 2010:28782884.
?。?1] YU J, TAN J, WANG Y. Ultrasound speckle reduction by a SUSANcontrolled anisotropic diffusion method [J]. Pattern Recognition, 2010, 43(9):30833092.