基于FPGA的車道偏離預(yù)警系統(tǒng)的設(shè)計(jì)
摘要:介紹了一種以FPGA芯片為核心,基于數(shù)字圖像處理技術(shù)和SOPC技術(shù)的車道偏離預(yù)警系統(tǒng)實(shí)現(xiàn)方案。系統(tǒng)通過CCD攝像頭完成車輛前方圖像的采集,利用Hough變換實(shí)現(xiàn)車道檢測,利用邊緣檢測函數(shù)完成偏離預(yù)警的功能。系統(tǒng)具有良好的便攜性、靈活性和通用性。詳細(xì)的論述了該系統(tǒng)硬件結(jié)構(gòu)和軟件設(shè)計(jì)思想,并分析了系統(tǒng)具有的優(yōu)點(diǎn)。
關(guān)鍵詞:車道偏離;車道檢測;Hough變換;SoPC;FPGA;
0 引言
隨著我國國民經(jīng)濟(jì)的發(fā)展,汽車擁有量劇增,同時公路建設(shè)事業(yè)的迅速發(fā)展,造成目前公路交通呈現(xiàn)行駛高速化、車流密集化和駕駛員非職業(yè)化的趨勢,由汽車碰撞引起的交通事故危害著人民的生命財(cái)產(chǎn)安全。根據(jù)美國國家公路交通安全管理局(NHTSA)2009年乘用車在交通事故中碰撞位置的統(tǒng)計(jì)數(shù)據(jù),在各種交通事故中,車輛前部碰撞占到總事故的62%,而這其中多數(shù)是由于車道偏離車道所引起的交通事故,因此通過設(shè)計(jì)汽車車道偏離預(yù)警系統(tǒng)有效地減少前向碰撞的發(fā)生幾率,可以有效降低公路交通事故的損失。
本文利用SoPC(可編程片上系統(tǒng))技術(shù)設(shè)計(jì)方式靈活、可裁減、可擴(kuò)充、可升級、設(shè)計(jì)周期短的優(yōu)勢,設(shè)計(jì)了一種可以靈活配置,易升級維護(hù)的車道偏離預(yù)警系統(tǒng)。
1 系統(tǒng)的總體技術(shù)路線
根據(jù)系統(tǒng)功能需求,將系統(tǒng)的處理流程分為圖像預(yù)處理、特征提取、特征判別三個階段,如圖1所示。
(1)圖像預(yù)處理。系統(tǒng)通過攝像機(jī)獲取車輛行駛前方的車道圖像,通過數(shù)字圖像處理技術(shù)完成數(shù)字圖像的采集、灰度化和濾波增強(qiáng);
(2)特征提取。利用Sobel邊緣檢測算法完成圖像的邊緣檢測,并以此為基礎(chǔ)利用Hough變換完成車道線檢查;
(3)特征判別。根據(jù)檢測出的車道標(biāo)志線信息,利用邊緣檢測函數(shù)EDF做出相關(guān)的偏離判決。
2 系統(tǒng)的硬件設(shè)計(jì)
基于FPGA的車道偏離檢測系統(tǒng)的硬件組成如圖2所示。系統(tǒng)利用CCD攝像機(jī)采集車道圖像,通過視頻模數(shù)轉(zhuǎn)換芯片ADV7181對獲取的視頻進(jìn)行解碼,得到數(shù)字視頻信啟,并將其存儲于SDRAM中供LCD進(jìn)行顯示,并作為原始信息供之后的圖像信號處理單元完成圖像處理任務(wù),從中提取車道信息。
內(nèi)嵌于FPGA的軟核處理器Nios II為整個系統(tǒng)的控制核心,完成系統(tǒng)整體軟件流程執(zhí)行控制、Hough變換、車道檢測以及碰撞預(yù)警任務(wù);Nios II處理器通過Avalon交換架構(gòu)與SOPC系統(tǒng)其他組件完成數(shù)據(jù)交換和控制。FPGA內(nèi)部構(gòu)件的圖像信號處理單元完成對數(shù)字圖像信號的預(yù)處理、中值濾波除噪、Sobel邊緣檢測等任務(wù),其處理結(jié)果作為Nios II進(jìn)行車道偏離檢測的依據(jù)。
外圍存儲器件SDRAM、FLASH、SRAM,SDRAM用以存儲圖像信息,F(xiàn)LASH用以存儲程序以及系統(tǒng)參數(shù)配置,SRAMN以存儲軟件暫存數(shù)據(jù):系統(tǒng)以按鍵、LCD作為人機(jī)接口。
附加邏揖完成系統(tǒng)的其他輔助任務(wù)。
2.1 SOPC系統(tǒng)的設(shè)計(jì)
SOPC系統(tǒng)的核心為Nios II CPU,本文選用的是標(biāo)準(zhǔn)型Nios II IP核,用以在硬件規(guī)模和性能之間取得平衡;JTAG UART用以完成FPGA配置及系統(tǒng)調(diào)試;顯示接口IP包括SDRAM、SRAM、FLASH的IP核完成SOPC系統(tǒng)與FPGA外部存儲器件的連接與通信;人機(jī)界面器件接口完成LED、LCD、按鍵與SOPC系統(tǒng)的連接。
2.2 圖像信號處理單元的設(shè)計(jì)
圖像信號處理單元利用Verilog HDL實(shí)現(xiàn)了基于FPGA的圖像預(yù)處理、中值濾波及Sobel邊緣檢測功能,設(shè)計(jì)過程中,充分利用TFPGA適于并行處理和流水處理的特性。
2.2.1 快速中值濾波單元
快速中值濾波單元主要由3×3模板生成模塊、中值濾波算法模塊及行列計(jì)數(shù)模塊組成,其單元框圖如圖3所示。
2.2.2 Sobel邊緣檢測單元
Sobel邊緣檢測單元由3×3模板生成模塊、梯度運(yùn)算模塊、梯度比較輸出模塊三部分組成,其單元框圖如圖4所示。三部分按照流水線的方式工作,通過窗口模板的移動,完成整幅圖像的邊緣檢測任務(wù)。
3 軟件流程
3.1 系統(tǒng)軟件流程
車道偏離檢測系統(tǒng)的軟件執(zhí)行流程圖如圖5所不。上電后,完成初始化,將EPCS中FPGA的相關(guān)配置信息及Flash中的程序配置入FPGA,并完成攝像機(jī)等系統(tǒng)部件的初始化。
系統(tǒng)完成初始化后,進(jìn)入車道偏離檢測及預(yù)警流程。啟動攝像機(jī)開始圖像采集,并調(diào)用FPGA內(nèi)部圖像處理模塊對圖像進(jìn)行顏色空間轉(zhuǎn)換、灰度化、中值濾波、邊緣檢測等操作。
程序載入經(jīng)邊緣檢測的圖像后,將圖像分為左右兩部分進(jìn)行直線檢測??紤]到在實(shí)際應(yīng)用中,車道接近水平或垂直的幾率極小的事實(shí),同時也為了濾除干擾(如地平線、路邊燈桿、前方車輛邊緣等),在利用Hough變換進(jìn)行直線檢測的過程中采用了如下策略:在左半部圖像中,方向角在95°~175°之間進(jìn)行直線檢測;在右半部圖像中,方向角在5°~85°之間進(jìn)行直線檢測。搜尋過程遍歷整幅圖像,搜尋計(jì)算完畢,在累加器A(ρ,θ)中尋找局部極大值,由此確定車道標(biāo)志線的位置和參數(shù)。
調(diào)用Hough變換函數(shù)進(jìn)行直線的識別后,如果圖像處理后有可利用的車道信息,進(jìn)入車道偏離預(yù)警及判決過程,車道偏離預(yù)警也采用兩級預(yù)警機(jī)制,當(dāng)偏離角度大于警告值時,發(fā)出聲光警告;當(dāng)偏離角度小于警告值但大于提醒值時,發(fā)出聲光提醒。若經(jīng)圖像處理后沒有相關(guān)車道信息則返回障礙物檢測與碰撞預(yù)警流程。
4 結(jié)語
系統(tǒng)充分利用了FPGA的可編程和SoPC系統(tǒng)可重構(gòu)的特點(diǎn),系統(tǒng)升級維護(hù)非常方便,可以極大地延長系統(tǒng)的生存周期;同時采用以FPGA為核心的單芯片解決方案,外圍電路簡單,可以使系統(tǒng)的體積做得很小;另外,本系統(tǒng)還可通過自定義模塊、自定義指令、C2H等方式進(jìn)行加速,其思想都是以犧牲硬件資源換取運(yùn)算速度的提升。通過加速,可以做到圖像處理的實(shí)時性要求,從而進(jìn)一步提高車道偏離檢測系統(tǒng)的實(shí)時性,提高系統(tǒng)的實(shí)用性。