新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA平臺(tái)構(gòu)建汽車輔助駕駛系統(tǒng)算法(圖)

基于FPGA平臺(tái)構(gòu)建汽車輔助駕駛系統(tǒng)算法(圖)

作者: 時(shí)間:2017-06-04 來源:網(wǎng)絡(luò) 收藏
輔助駕駛系統(tǒng)開發(fā)面臨的挑戰(zhàn)
(DA)系統(tǒng)工程師通常使用 PC 模型來創(chuàng)建復(fù)雜的處理,以便實(shí)現(xiàn)高度可靠的自適應(yīng)巡航控制、車道偏離警告及行人檢測(cè)等功能。開發(fā)人員高度重視PC模型,因?yàn)檫@種模型使他們能夠嘗試使用并快速評(píng)估不同的處理。不過,說到底,還是需要一款設(shè)計(jì)合理的電子硬件解決方案,來實(shí)現(xiàn)經(jīng)濟(jì)有效的大規(guī)模生產(chǎn)與部署。


驗(yàn)證可部署目標(biāo)硬件與軟件算法模型之間的算法性能一致性,對(duì)許多開發(fā)人員來說都是個(gè)問題。從浮點(diǎn)轉(zhuǎn)到定點(diǎn)計(jì)算(如三角函數(shù)采用的不同方法)有時(shí)會(huì)導(dǎo)致參考軟件算法和硬件實(shí)施模型之間出現(xiàn)明顯差異。另外,輸入圖案資料集群(input stimulus)有著很大的不確定性,這使驗(yàn)證算法性能一致性工作變得更加復(fù)雜。



圖1 LDW頂層方框圖


對(duì)通常依賴遠(yuǎn)程感應(yīng)裝置(攝像頭、雷達(dá)等)輸入的DA系統(tǒng)來說,輸入信息就是駕駛員在實(shí)際行車中可能遇到的各種路況和環(huán)境條件。工程師會(huì)發(fā)現(xiàn),設(shè)計(jì)一款充分滿足所有情況需求的處理算法極具挑戰(zhàn)性,而且驗(yàn)證軟件模型與電子硬件實(shí)施之間的算法性能一致性至關(guān)重要。


賽靈思推出的一款工具——System Generator for DSP,為算法開發(fā)人員和系統(tǒng)架構(gòu)師從Simulink PC模型轉(zhuǎn)向?qū)崟r(shí)硬件實(shí)施技術(shù)提供了一種高效、直觀的方法。這種具有高抽象層的設(shè)計(jì)工具在賽靈思和eVS工程師聯(lián)合開展的設(shè)計(jì)項(xiàng)目中發(fā)揮了關(guān)鍵作用。該項(xiàng)目的目標(biāo)就是利用System Generator for DSP推出一款適用于采用Xilinx 的汽車車道偏離警告系統(tǒng)的圖形處理算法,旨在提高整體性能,降低成本,并縮短開發(fā)時(shí)間。

車道偏離警告模型
車道偏離警告 (LDW) 系統(tǒng)的總體功能就是在車輛無意中偏離正在行駛的車道時(shí)提醒駕駛員。安裝該系統(tǒng)的車輛前安放攝像頭,可捕獲到路況圖形,以識(shí)別出車道邊界標(biāo)志。車道偏離警告系統(tǒng)持續(xù)跟蹤車道標(biāo)線以及車輛相對(duì)于車道標(biāo)線的位置。如果車輛越過了車道標(biāo)線,那么系統(tǒng)就會(huì)發(fā)出警告。


汽車產(chǎn)業(yè)和學(xué)術(shù)界普遍采用 MATLAB和Simulink 作為算法和系統(tǒng)級(jí)設(shè)計(jì)工具。尤其是Simulink 具有高抽象層,而且提供圖形化輸入,因此能幫助汽車算法工程師輕松快速地開發(fā)出復(fù)雜的 DSP 算法。


圖1顯示了 LDW 系統(tǒng)模型的頂層方框圖,該模型就是用 Simulink 設(shè)計(jì)而成。標(biāo)記為車道檢測(cè)的綠色塊包括圖形預(yù)處理子系統(tǒng),圖2中將給出該子系統(tǒng)的各處理步驟。車道檢測(cè)功能旨在提取出最有可能代表車道標(biāo)線的路況圖形。


為了提高邊緣設(shè)備噪聲檢測(cè)的性能,處理流程 (pipeline) 第一步為2-D 5×5高斯噪聲抑制 (GNR);第二步為直方圖拓寬 (HST),開發(fā)人員可用該技術(shù)增強(qiáng)圖形對(duì)比度,盡可能利用整個(gè)灰度范圍;第三步則為水平/垂直梯度 (HVG),可在本地強(qiáng)度大幅變化情況下增強(qiáng)像素。開發(fā)人員可通過計(jì)算圖形的 2-D 5×5梯度,來執(zhí)行HVG。


System Generator工具概述
System Generator for DSP設(shè)計(jì)工具運(yùn)行于Simulink中。它采用賽靈思面向Simulink的DSP模塊集,并將自動(dòng)調(diào)用賽靈思CORE Generator工具生成高度優(yōu)化的DSP構(gòu)建塊網(wǎng)表,能通過 Simulink 庫(kù)瀏覽器訪問賽靈思DSP模塊集。庫(kù)瀏覽器可從標(biāo)準(zhǔn)的MATLAB工具欄中啟動(dòng)。構(gòu)建DSP系統(tǒng)可用的DSP構(gòu)建塊有90多個(gè),此外還包括FIR濾波器、FET、FEC內(nèi)核、嵌入式處理內(nèi)核、存儲(chǔ)器、算術(shù)塊、邏輯塊以及按位塊(bit-wise block)等。每個(gè)塊都實(shí)現(xiàn)了周期精確和位精確,可就延遲、面積與速度性能優(yōu)化、I/O端口數(shù)、量子化以及取整等對(duì)其逐一進(jìn)行配置。



圖2 LDW預(yù)處理功能鏈


下面,不妨來仔細(xì)探討如何在 System Generator for DSP中構(gòu)建圖形處理算法模型,為了簡(jiǎn)單起見,這里選擇GNR為例,這也是圖形預(yù)處理流程的第一個(gè)模塊。

System Generator實(shí)施GNR功能
強(qiáng)度值(即噪聲)的隨機(jī)變化通常會(huì)損壞圖像質(zhì)量。這種變化表現(xiàn)為高斯或正態(tài)分布,在不同傳感器(即 CMOS 攝像頭)中較為常見。線性平滑濾波器是消除高斯噪聲的最佳方法,在許多情況下,它還可消除其他類型的噪聲。為實(shí)現(xiàn)該功能,可通過使用連續(xù)窗口中的像素加權(quán)和來實(shí)施線性有限脈沖響應(yīng) (FIR) 濾波器。


在開始實(shí)施GNR System Generator模塊之前,我們已在 MATLAB 中實(shí)現(xiàn)了其行為模型。而這只需兩行代碼即可實(shí)現(xiàn)。首先,需要計(jì)算內(nèi)核,具體描述掩模尺寸(本例設(shè)為 5×5)和高斯的∑值。然后,可以通過卷積過濾輸入圖像。


n_mask = fspecial('gaussian', 5, 0.8);
out_img = conv2(in_img, n_mask, 'same');
此外,還可使用這種行為模型,并通過實(shí)際視頻數(shù)據(jù)測(cè)試濾波器,進(jìn)而調(diào)節(jié)掩模系數(shù)。還可以通過驗(yàn)證System Generator for DSP子系統(tǒng)的輸出是否與MATLAB函數(shù)的輸出相等(在規(guī)定的誤差范圍內(nèi),這是因?yàn)镸ATLAB是以浮點(diǎn)方式工作,而System Generator 則以固點(diǎn)算法方式工作)來驗(yàn)證硬件。


2-D GNR模塊以流線方式(即逐行方式)對(duì)輸入圖像進(jìn)行處理。圖3顯示了整個(gè)預(yù)處理鏈的System Generator頂級(jí)方框圖以及高斯噪聲抑制功能的頂級(jí)方框圖。



圖3 頂級(jí)預(yù)處理與高斯噪聲抑制方框圖

System Generator 綜合結(jié)果
開發(fā)人員在開發(fā)輔助駕駛系統(tǒng)時(shí)必須以適合大規(guī)模生產(chǎn)的成本水平進(jìn)行設(shè)計(jì)。
達(dá)到一定處理性能所需的裸片資源將決定他們所需的FPGA器件的尺寸,進(jìn)而決定其成本。
在實(shí)施車道偏離警告預(yù)處理器過程中,以XA Spartan-3A DSP 3400為目標(biāo)。采用這種方法,并利用該模型來支持未來規(guī)劃中的開發(fā)活動(dòng)。但是,對(duì)預(yù)處理功能所占用資源的分析表明,該設(shè)計(jì)適合小得多的器件。

表1給出了XA Spartan-3A DSP 3400器件上GNR塊的資源占用情況。計(jì)算時(shí),假定在VGA分辨率下灰度輸入圖像的幀速率為30Hz(即輸入數(shù)據(jù)速率為 9.2MS/s)。
從定時(shí)性能角度,GNR 設(shè)計(jì)以168.32 MHz 的時(shí)鐘頻率運(yùn)行,可接受數(shù)據(jù)傳輸速率高達(dá) 18.72 MS/s的輸入數(shù)據(jù)。


整個(gè)車道檢測(cè)預(yù)處理子系統(tǒng)所需資源總情況如表2所示。
相應(yīng)的定時(shí)性能分析表明,時(shí)鐘頻率為128.24MHz,最高輸入數(shù)據(jù)傳輸速率為14.2MS/s。
根據(jù)上述所需資源情況分析,預(yù)處理功能甚至可用于XA Spartan-3E 500,其密度大約為XA Spartan-3A 3400A器件的1/7。



圖4 LDW處理模型輸出

結(jié)果
圖4給出了一個(gè)LDW系統(tǒng)的性能圖樣,包括用于車道線備用物提取的基于 FPGA的圖像預(yù)處理功能。可以看到,右邊兩個(gè)圖片中的輸入幀。左邊的一對(duì)圖像顯示的是我們?cè)贔PGA中實(shí)施的預(yù)處理功能的性能。左上角的圖片顯示的則是閾值化后邊緣檢測(cè)函數(shù)的幅值。左下角圖片是在邊緣細(xì)化和車道線模式搜索處理后拍攝的。很明顯,LDW預(yù)處理器能非常有效地?cái)z取道路圖景,并能將數(shù)據(jù)減少至基本車道線選取物。右上角和右下角圖片中的黃線和紅線分別表示對(duì)基于簡(jiǎn)單直線道路模型的車道標(biāo)線的瞬間跟蹤計(jì)算結(jié)果。


關(guān)鍵詞: 汽車輔助駕駛 算法 FPGA

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉