基于機器視覺(jué)的車(chē)道偏離預警系統的實(shí)現
2、系統設計與實(shí)現
實(shí)現圖 2 的基于視覺(jué)的汽車(chē)主動(dòng)安全系統,數據的存儲和傳輸是一個(gè)主要的問(wèn)題,尤其是對于汽車(chē)主動(dòng)安全這樣的實(shí)時(shí)性要求非常高的應用背景。如何在最短的時(shí)間內,由原始采集到的圖像數據,經(jīng)過(guò)一系列的存儲器數據搬移及信號處理過(guò)程,獲得最終的對道路的理解判斷,并對車(chē)輛是否跑偏做出正確的決策,是本系統主要的實(shí)現目標。本文將依據數據在系統中的“流動(dòng)”順序對本系統進(jìn)行詳細的介紹。
2.1、數據采集模塊
在本系統中,圖像數據是主要的傳感器信號,獲得高質(zhì)量的圖像數據對后期的處理和功能的實(shí)現具有較大的意義。但是對于實(shí)際的應用環(huán)境,由于天氣、光照等因素的影響,甚至是一系列特殊情況的出現,一般的圖像傳感器在各種條件下難以具有較好的魯棒性。為了較好的適應各種道路和天氣狀況,保證駕駛的安全性,我們采用了適合道路使用的CMOS 數字攝像頭芯片自主開(kāi)發(fā)了視覺(jué)采集模塊,該攝像頭芯片通過(guò)159 位SPI 控制字可完全編程控制,較好的實(shí)現對曝光時(shí)間、增益和噪聲等的調節。同時(shí),該攝像頭芯片采用了一種多斜率的曝光模式輸出,在不同的曝光模式下,控制曝光的時(shí)間也是不一樣的,保證在光照過(guò)強或者光照條件非常弱的情況下,都可獲得較好的圖像。
對于攝像頭芯片的SPI 控制,本文為了自適應的調整在不同背景下的工作模式,由DSP根據最后對圖像的理解和判斷的結果,給予FPGA 一定的通信信號完成對攝像頭芯片的頂層的系統級的控制,而底層的真正的SPI 控制字的修改和調整則由FPGA 來(lái)完成,這樣可避免SPI 的工作頻率和DSP 外部總線(xiàn)頻率的不一致而導致的DSP 工作效率的浪費,而FPGA來(lái)完成這樣的工作則比較容易。
2.2、數據傳輸、存儲模塊
在本系統中,從前端的圖像采集模塊,到最后的報警信號的輸出,數據是不停的在FPGA、SDRAM 及DSP 之間進(jìn)行傳輸和搬移,接下來(lái)主要討論如何在這三者之間進(jìn)行高速有效的搬移和處理,這也正是本文的主要模塊。系統中的數據流程主要有以下幾個(gè)方面:
?、?、在 FPGA 中經(jīng)過(guò)預處理的圖像數據,首先必須存儲到主存儲芯片SDRAM 中,這是后端高層處理的基礎。
?、?、DSP從SDRAM中讀取最新的圖像數據進(jìn)行處理,并將處理的中間結果存于SDRAM中,這樣的讀寫(xiě)過(guò)程很可能是循環(huán)進(jìn)行的,SDRAM 的分塊存儲特性正適合這樣的性能要求。
?、?、為了系統調試的方便,很可能要求顯示中間處理的結果,因此我們在 FPGA 上掛接了一塊顯示調試模塊,調試時(shí)FPGA 可從SDRAM 中讀取中間的處理結果進(jìn)行顯示。
?、?、還有一種情況,某些情況下我們可能要求 DSP 和FPGA 之間直接進(jìn)行圖像數據的傳輸,這也是我們必須考慮的范疇。
綜合上面的種種可能情況,考慮我們采用的 DSP 芯片同時(shí)支持FIFO 和SDRAM 芯片的無(wú)縫連接,我們設計了圖3 的數據傳輸方案:
首先,前端的采集模塊輸出的圖像數據是 8 位的,而對于我們采用的SDRAM 存儲芯片和DSP 處理芯片,數據總線(xiàn)都是64 位的。為了不造成資源的浪費,在FPGA 對圖像進(jìn)行預處理的過(guò)程中,我們同時(shí)將8 位的圖像數據拼接成64 的數據輸出,這樣可充分利用系統的資源。
其次,在 FPGA 中經(jīng)過(guò)一系列并行預處理的圖像數據,存儲于FPGA 內部開(kāi)辟的FIFO中。FPGA 給出握手信號,通知DSP 可以開(kāi)始由FIFO 向SDRAM 傳輸數據,數據的傳輸過(guò)程則完全由DSP 通過(guò)EDMA 傳輸方式來(lái)控制完成。當核心處理器DSP 完成當前操作的情況下,再從SDRAM 中讀入最新的數據進(jìn)行處理,這可充分利用DSP 芯片豐富的外設資源。
同時(shí),由圖 3 的數據流圖我們發(fā)現數據在由FPGA 向SDRAM 傳輸的過(guò)程中,相對于DSP 來(lái)說(shuō),FPGA 中開(kāi)辟的用來(lái)存儲數據的FIFO 模塊和外部主存儲器SDRAM 模塊是掛接于DSP 上的相同的地址總線(xiàn)和數據總線(xiàn)上的,在這種源設備和目的設備掛接于相同外部總線(xiàn)上的傳輸形式下,我們采用的DSP 芯片支持一種優(yōu)化的EDMA 傳輸模式-PDT 傳輸,它優(yōu)化了數據的傳輸過(guò)程,使得DSP 的EDMA 傳輸模式可在數據不經(jīng)過(guò)DSP 內的緩存區的情況下,直接由源設備FIFO 傳輸到目的設備SDRAM 中,從而可在一個(gè)周期內完成數據的傳輸。相比于傳統的傳輸模式,先由FPGA 傳輸到DSP 內部的緩存區,再由DSP 寫(xiě)入到SDRAM 中,PDT 傳輸模式基本上可縮短一半的數據傳輸時(shí)間,對于像圖像這樣的大容量數據傳輸來(lái)說(shuō),是具有非常大的意義的。
評論