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