《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA+DSP的智能車全景視覺(jué)系統(tǒng)
基于FPGA+DSP的智能車全景視覺(jué)系統(tǒng)
來(lái)源:電子技術(shù)應(yīng)用2011年第3期
周渝斌
上海工程技術(shù)大學(xué) 機(jī)械工程學(xué)院,上海201620
摘要: 為實(shí)現(xiàn)智能車全景視覺(jué)系統(tǒng)的應(yīng)用研究平臺(tái),設(shè)計(jì)了一種基于FPGA+雙DSP的實(shí)時(shí)6通道數(shù)字圖像采集與處理系統(tǒng)。該系統(tǒng)由兩片F(xiàn)PGA與兩個(gè)DSP組成。第一個(gè)FPGA進(jìn)行多通道視覺(jué)圖像采集的同步控制、邏輯處理,第二片F(xiàn)PGA輔助DSP進(jìn)行海量圖像數(shù)據(jù)的高速并行處理。兩個(gè)ZBT SRAM芯片作為數(shù)據(jù)輸入和輸出的高速緩存, 每通道的A/D輸出與ZBT SRAM接口間進(jìn)行數(shù)位拼接。系統(tǒng)工作時(shí),DSP通過(guò)EMIF與FPGA進(jìn)行高速數(shù)據(jù)通信,而兩個(gè)DSP之間通過(guò)McBSP進(jìn)行數(shù)據(jù)通信。系統(tǒng)工作時(shí)使用?滋C/OS操作系統(tǒng)進(jìn)行多任務(wù)負(fù)載均衡管理,最終實(shí)現(xiàn)對(duì)兩路視頻信號(hào)同時(shí)實(shí)時(shí)采集和處理。
中圖分類號(hào): TN911.73
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)03-0038-04
Omni-vision system of intelligent car based on FPGA&DSP
Zhou Yubin
School of Mechanical Engineering,Shanghai University of Science and Technology, Shanghai 201620,China
Abstract: In order to realize omni-vision system of intelligent car for auto wandering in real-time processing, an image processing system with 6 vision channels based on FPGA&DSP is designed. In the system, two ZBT SRAM chips are used as the input and output cache for high data transferring. An FPGA chip is responsible for the core logic controlling and video synchronous. Digital videos are sent to processing module by camlink bus. Data are exchanged by EMIF and McBSP between FPGA and DSPs. EDMA is used for data transferring between SRAM in FPGA and ZBT SRAM. The QDMA is used for 2D data transferring to 1D for face data processing into DSP cache. Tasks are assigned to chips by μC/OS on master DSP. All this together, real-time data sampling and processing for multi-channel vision is realized.
Key words : omni-vision;multi-channel vision;FPGA;DSP;intelligent car


    基于單相機(jī)的全景視覺(jué)系統(tǒng)是利用凸面鏡反射四周圖像進(jìn)行定位,在計(jì)算資源有限時(shí)是一種較好的選擇,且視覺(jué)導(dǎo)航等方向的應(yīng)用也成為一種最實(shí)用的方法[1-2],這種方案雖然視野開(kāi)闊,但獲取的信息有限,真實(shí)的系統(tǒng)中很難應(yīng)用。隨著芯片計(jì)算能力的不斷提高,基于多通道的全景視覺(jué)系統(tǒng)已逐漸成為可能。本文介紹的智能車多通道全景視覺(jué)是指以觀測(cè)點(diǎn)為中心,多個(gè)相機(jī)可同時(shí)觀測(cè)車輛的前中、前左、前右、后左、后右和頂上6個(gè)方向的景物。該系統(tǒng)中的6臺(tái)數(shù)字相機(jī)中5臺(tái)分布在車輛的側(cè)面,1臺(tái)在頂部,可以得到車輛周圍全景360°的圖像。該系統(tǒng)每個(gè)相機(jī)的分辨率為百萬(wàn)像素,即1 280×1 024,幀率為30 f/s,即便圖像為8 bit單色,系統(tǒng)的總數(shù)據(jù)率也高達(dá)200 MB/s以上。同時(shí),6個(gè)相機(jī)圖像需要預(yù)處理,投影到同一坐標(biāo)系,或者拼接成單幅完整圖像才能滿足智能車導(dǎo)航系統(tǒng)的要求,這些涉及到大量復(fù)雜計(jì)算。針對(duì)這些要求,該系統(tǒng)的硬件處理部分利用了DSP和FPGA芯片各自的特長(zhǎng),選用高速DSP+FPGA[3-6]的方案,而DSP方案也是海量圖像處理中普遍應(yīng)用的[7]。高性能通用C6416 DSP芯片,配合FPGA進(jìn)行高度并行數(shù)據(jù)處理,可實(shí)現(xiàn)高速實(shí)時(shí)的視覺(jué)圖像處理。這種方案的優(yōu)點(diǎn)在于,不僅可以利用DSP的高速處理能力,同時(shí)利用FPGA的控制能力和在高度并行化數(shù)據(jù)處理方面的優(yōu)勢(shì),相比其他方案更容易滿足全景視覺(jué)系統(tǒng)所需要的高度實(shí)時(shí)處理。
1 系統(tǒng)總體方案設(shè)計(jì)
    為適合高速圖像采集,本系統(tǒng)選用CMOS傳感器,CMOS的一個(gè)優(yōu)點(diǎn)是數(shù)據(jù)讀取速度快。系統(tǒng)由高速CMOS相機(jī)、基于CamLink技術(shù)的圖像讀取、FPGA+DSP的圖像處理三部分構(gòu)成,如圖1所示。從圖1可以看出,該系統(tǒng)有兩片F(xiàn)PGA,圖像讀取模塊中的FPGA1負(fù)責(zé)從CMOS相機(jī)抓圖和通訊控制,F(xiàn)PGA2則輔助兩片DSP進(jìn)行高速圖像處理,實(shí)現(xiàn)同時(shí)對(duì)6個(gè)相機(jī)圖像的實(shí)時(shí)處理。

    邏輯控制芯片F(xiàn)PGA1選用XILINX公司的XC3S1000LFG456作為視頻數(shù)據(jù)采集控制芯片,該芯片是Spartan3低功耗系列的一種,具有1 M個(gè)邏輯門,24個(gè)18×18乘法器及豐富的片上存儲(chǔ)空間,足夠進(jìn)行視頻采集的同步邏輯控制。并行計(jì)算FPGA選用XILINX公司Virtex-4系列中的XC4VFX60-FF1152,內(nèi)部有4 Mbit RAM,56 880個(gè)邏輯門和128個(gè)XtremeDSP模塊,足夠進(jìn)行大量高速數(shù)據(jù)處理,特別是片上18 KRAM模塊工作在500 MHz,支持真正的雙端口讀寫同步操作,為該芯片作為芯片間高速數(shù)據(jù)交互提供了資源。2個(gè)協(xié)處理DSP芯片為TI公司高性能C6416,擁有8個(gè)并行處理單元,工作頻率為600 Hz,最高處理速度可達(dá)4 800 兆指令/秒(MFLOPS)。
    系統(tǒng)設(shè)計(jì)采集圖像大小為1 280×1 024像素,最高速度可達(dá)每相機(jī)60 f/s的實(shí)時(shí)采集。6路攝像頭輸出的數(shù)字視頻信號(hào)經(jīng)過(guò)FPGA1進(jìn)行同步分離后,進(jìn)入輸入端高速數(shù)據(jù)緩沖區(qū)。系統(tǒng)采用兩片ZBT SRAM進(jìn)行乒乓數(shù)據(jù)采集,當(dāng)一幀圖像采集完,F(xiàn)PGA1通知FPGA2進(jìn)行數(shù)據(jù)轉(zhuǎn)移,F(xiàn)PGA2將數(shù)據(jù)預(yù)處理后由DSP經(jīng)EDMA保存到SRAM后等待進(jìn)一步處理。
2 多通道數(shù)字圖像采集
    由于智能車的目標(biāo)是在公路上行駛,該系統(tǒng)需要處理場(chǎng)景中快速運(yùn)動(dòng)的物體,要求圖像采集模塊必須足夠快地從相機(jī)轉(zhuǎn)移出幀數(shù)據(jù),以便對(duì)快速運(yùn)動(dòng)的物體軌跡進(jìn)行記錄,因此,相機(jī)模塊的處理速度是決定該系統(tǒng)是否達(dá)到要求的重要一環(huán)。由于相機(jī)技術(shù)的快速發(fā)展,已經(jīng)能從市面上買到足夠快的傳感器來(lái)捕獲高速運(yùn)動(dòng)的物體,如車輛。
2.1 圖像抓取模塊
    MT9M413是一種分辨率為130萬(wàn)像素1 280×1 024的CMOS傳感器,最高可實(shí)現(xiàn)500 fps的采集速度。而MT9M413內(nèi)部集成有10 bit A/D轉(zhuǎn)換器,可直接輸出3.3 V的數(shù)字信號(hào),無(wú)需電平轉(zhuǎn)換電路,簡(jiǎn)化了系統(tǒng)的設(shè)計(jì)。MT9M413可以工作在灰度或彩色模式下,但是卻需要不同的偏置參考電壓,兩片數(shù)模轉(zhuǎn)化芯片DAC6573用于生成該偏置電壓。圖2給出了相機(jī)模塊的框圖。

    高速相機(jī)模塊主要包括以下三部分:
    (1)傳感器部分:包括高速像素時(shí)鐘下的光電信號(hào)轉(zhuǎn)換傳感器。
    (2)信號(hào)分離:預(yù)先編寫好在FPGA1內(nèi)部的程序,用來(lái)產(chǎn)生傳感器模塊和數(shù)據(jù)接口所需要的控制信號(hào)。
    (3)接口板:將數(shù)字信號(hào)轉(zhuǎn)換成高速LVDS信號(hào)對(duì),并從主處模塊接收控制信號(hào)。
    該模塊的三個(gè)部分通過(guò)高速Samtec連接器(QTH-090-01-L-D-A)連在一起,以增加系統(tǒng)的靈活性。主處理板與高速相機(jī)模塊間采用CamLink協(xié)議連接,以滿足系統(tǒng)很高的帶寬。根據(jù)采集圖像的大小、幀率和數(shù)據(jù)位精度,CamLink電路可配置成基本、中等、全幅3種模式,由FPGA1中的程序控制。FPGA1的另一個(gè)任務(wù)是進(jìn)行視頻信號(hào)的同步、通知FPGA2設(shè)置參數(shù),如視頻開(kāi)窗、幀率、曝光時(shí)間等。
2.2 FPGA控制模塊
    系統(tǒng)的邏輯控制芯片是FG456,其主要工作是控制輸入/輸出幀存,以便通知主處理芯片及時(shí)將存在ZBT SRAM中的圖像數(shù)據(jù)讀出,片上可編程時(shí)鐘PLL用來(lái)產(chǎn)生驅(qū)動(dòng)該FPGA所需的不同時(shí)鐘,F(xiàn)PGA內(nèi)部的計(jì)數(shù)器通過(guò)改變加法器不同的進(jìn)位信號(hào)控制采集圖像的大小。
    FPGA1接收到來(lái)自CMOS傳感器的視頻同步信號(hào)后,開(kāi)始將原始像素?cái)?shù)據(jù)按照CamLink協(xié)議打包通過(guò)高速Semtec連接器送到下一個(gè)模塊中的FPGA2。
2.3 ZBT-RAM中的數(shù)據(jù)乒乓
      系統(tǒng)設(shè)計(jì)的視頻信號(hào)采集能力是,從CMOS采集到
1 024×1 024大小的數(shù)字圖像,并通過(guò)兩片Zero-bus turnaround(ZBT) SRAM作為數(shù)據(jù)乒乓的幀緩存,ZBT SRAM沒(méi)有總線延遲,不需像DDR那樣必須通過(guò)FIFO進(jìn)行管理。ZBT SRAM為系統(tǒng)提供了最大的吞吐量,從而提供了最大的系統(tǒng)帶寬[8-9]。為保證系統(tǒng)的高速性能,F(xiàn)PGA1的3個(gè)內(nèi)部時(shí)鐘管理模塊DCMs用來(lái)產(chǎn)生ZBT-RAM需要的時(shí)鐘,一個(gè)為控制時(shí)鐘,另外兩個(gè)為視頻輸入的banks的信號(hào)。系統(tǒng)中的兩片1 M×36 bit ZBT SRAM,每片ZBT SRAM可同時(shí)接收兩路視頻的滿幀數(shù)據(jù)采集。如果兩路信號(hào)都為60 f/s,則每秒采集120 MB數(shù)據(jù),而ZBT SRAM的工作頻率為250 MHz,最大數(shù)據(jù)吞吐為4.5 GB/s,完全滿足數(shù)據(jù)采集速度系統(tǒng)的要求。
3 芯片間通信
    多芯片協(xié)處理系統(tǒng)中最重要的一個(gè)方面就是芯片間數(shù)據(jù)通信的效率,該效率直接影響系統(tǒng)的運(yùn)行效率。而數(shù)據(jù)延遲和傳輸帶寬,是最值得關(guān)注的兩個(gè)方面。本系統(tǒng)采用多種方式進(jìn)行數(shù)據(jù)傳輸,提高了系統(tǒng)的靈活性。
3.1 FPGA2與DSPs間的數(shù)據(jù)通信
    根據(jù)應(yīng)用特點(diǎn)和系統(tǒng)接口,本系統(tǒng)采用兩種方式連接FPGA和DSP:32 bit EMIF-A and McBSP0。選用32 bit EMIF-A作為DSP與FPGA間進(jìn)行高速數(shù)據(jù)通信主要原因是傳輸速率高,可充分利用TMS320C6416內(nèi)EDMA方式傳輸數(shù)據(jù)的優(yōu)點(diǎn)。如圖3所示。

    FPGA內(nèi)部的EMIF& FIFO接口模塊用于轉(zhuǎn)換DSP的EMIF信號(hào),將數(shù)據(jù)轉(zhuǎn)移至接收FIFO。當(dāng)接收滿一幀數(shù)據(jù)后,F(xiàn)PGA的計(jì)算內(nèi)核開(kāi)始從該接收FIFO獲取數(shù)據(jù)并處理,然后將處理完的數(shù)據(jù)寫到發(fā)送FIFO。發(fā)送FIFO數(shù)據(jù)滿時(shí),啟動(dòng)DMA中斷將數(shù)據(jù)傳送到DSP片內(nèi)Cache。由于該EMIF-A是工作在133 MHz的32 bit總線,峰值數(shù)據(jù)率可達(dá)532 MB/s。
    FPGA2與DSPs間的第二種通信方法是McBSP(Multichannel Buffered Serial Port),兩個(gè)DSP的McBSP0連到FPGA。McBSP是一種全復(fù)用串行口,工作頻率為125 Mb/s。進(jìn)行串行通信時(shí),具有獨(dú)立的幀同步FSX,F(xiàn)SR和位同步時(shí)鐘CLKX、CLKR,提供系統(tǒng)時(shí)鐘信號(hào)為CLKS。在從模式下,可由外部時(shí)鐘驅(qū)動(dòng),主模式下可由McBSP采樣時(shí)鐘驅(qū)動(dòng)。接收和發(fā)送也很簡(jiǎn)單,各需要一個(gè)數(shù)據(jù)線:DR,DX。McBSP通信協(xié)議簡(jiǎn)單,可節(jié)省FPGA的資源。
3.2 兩片DSP間的數(shù)據(jù)通信
    兩片DSP之間的通信也有兩種通信方式。第一種通信是通過(guò)McBSP接口。為了獲得最大的數(shù)據(jù)傳送率,將兩片DSP的McBSP1和McBSP2連接起來(lái),這樣每個(gè)DSP可以做為時(shí)鐘主控和幀主控。換句話說(shuō),同一片DSP的一個(gè)McBSP接口作為主控在通信時(shí)產(chǎn)生數(shù)據(jù)發(fā)送時(shí)鐘和幀同步時(shí)鐘,同時(shí)另外一個(gè)接口作為從控等待控制信號(hào)以接收數(shù)據(jù)。圖中,當(dāng)DSP-A的McBSP1為主控發(fā)送數(shù)據(jù)時(shí),McBSP2為從控;同時(shí)DSP-B的McBSP2為主控,DSP-A的McBSP1等待從DSP-B的同步信號(hào)以接收數(shù)據(jù)。
    除了McBSP之外,兩片DSP間還通過(guò)EMIF-A進(jìn)行高速連接映射,F(xiàn)PGA內(nèi)部的32 bit雙向接口通過(guò)FIFO實(shí)現(xiàn),如圖4所示。這種基于FIFO的雙向數(shù)據(jù)傳送口支持DSP間復(fù)雜的數(shù)據(jù)交換和控制消息傳遞。DSP的EMIF-A工作頻率為133 MHz,數(shù)據(jù)傳輸時(shí),F(xiàn)PGA的可編程FIFO閾值中斷支持DSP間通過(guò)EDMA方式。

3.3 與上位機(jī)PC的數(shù)據(jù)通信
    為了實(shí)現(xiàn)從PC進(jìn)行遠(yuǎn)程控制,特別是用無(wú)線網(wǎng)絡(luò)連接控制通信,系統(tǒng)特別設(shè)計(jì)了以太網(wǎng)接口、USB2.0接口和PCI接口。網(wǎng)絡(luò)連接是通過(guò)FPGA2的標(biāo)準(zhǔn)GMII接口,以太網(wǎng)PHY連接到外部RJ45。GPIO接口配置成USB2.0數(shù)據(jù)接口,而4個(gè)PCI則是將PCI芯片連接到FPGA2內(nèi)的MGT模塊來(lái)實(shí)現(xiàn)的。
4 高速并行數(shù)字圖像處理結(jié)果
    在智能車視覺(jué)系統(tǒng)中,除了要預(yù)先將多通道畫面進(jìn)行拼接等預(yù)處理外,更重要的是完成自動(dòng)導(dǎo)航和目標(biāo)跟蹤,這些都牽涉到海量數(shù)據(jù)流的實(shí)時(shí)傳輸和運(yùn)算。本次實(shí)驗(yàn)為基于特征點(diǎn)的運(yùn)動(dòng)物體追蹤,包括以下步驟:(1)背景學(xué)習(xí);(2)全畫面運(yùn)動(dòng)估計(jì)、圖像差分;(3)差分部分的特征提取;(4)特征點(diǎn)的幀間運(yùn)動(dòng)估計(jì);(5)基于K-means法的特征點(diǎn)分類。
    基于全景畫面的特征點(diǎn)跟蹤需要對(duì)多通道視頻同時(shí)進(jìn)行運(yùn)算,運(yùn)算過(guò)程復(fù)雜,包括跟蹤前與跟蹤后的處理任務(wù),如何將這些任務(wù)分配到不同的芯片上并使板載資源做到任務(wù)間最大共享,需要根據(jù)任務(wù)強(qiáng)度估計(jì)后放到不同的芯片上。同時(shí),由于μC/OS是一種可移植性強(qiáng)、代碼微小的實(shí)時(shí)、多任務(wù)操作系統(tǒng),適合在本系統(tǒng)的DSP上運(yùn)行[10]。移植μC/OS操作系統(tǒng)到一個(gè)DSP上,將該DSP作為主控DSP進(jìn)行任務(wù)分配,本次實(shí)驗(yàn)的各個(gè)任務(wù)分配如圖5所示。由于兩個(gè)DSP協(xié)助FPGA2進(jìn)行運(yùn)算具有強(qiáng)大的計(jì)算能力,可進(jìn)行多目標(biāo)跟蹤,F(xiàn)PGA2承擔(dān)了大量的并行數(shù)據(jù)運(yùn)算,如運(yùn)動(dòng)探測(cè)包括的差分、運(yùn)動(dòng)估計(jì)、圖像拼接,而DSP則承擔(dān)特征點(diǎn)提取和追蹤這些不能并行運(yùn)算的部分。實(shí)驗(yàn)結(jié)果表明,6路視頻采集后的全景圖像上可作實(shí)時(shí)多目標(biāo)追蹤。

    本系統(tǒng)通過(guò)選用FPGA+DSP相配合的方式,同時(shí)利用了兩種芯片的性能優(yōu)勢(shì),既保證系統(tǒng)的執(zhí)行速度,也能保證可靠的邏輯控制。該系統(tǒng)實(shí)現(xiàn)了6路1 M大小視頻圖像信號(hào)的同時(shí)采集和處理,由FPGA1對(duì)系統(tǒng)的運(yùn)行邏輯進(jìn)行控制,通過(guò)優(yōu)化在DSP上運(yùn)行的圖像處理程序,可實(shí)現(xiàn)智能車導(dǎo)航應(yīng)用中全景圖像范圍內(nèi)的目標(biāo)追蹤。該系統(tǒng)還可作為一個(gè)獨(dú)立的圖像處理系統(tǒng),后續(xù)通過(guò)添加其他如立體視覺(jué)和光學(xué)跟蹤等的算法,形成其他多方面的圖像應(yīng)用研究平臺(tái)。同時(shí)該方案也為其他基于多DSP和FPGA混合圖像處理平臺(tái)設(shè)計(jì)提供了參考。
參考文獻(xiàn)
[1] 王亮.智能移動(dòng)機(jī)器人定位技術(shù)研究[D].哈爾濱:哈爾濱工程大學(xué),2004.
[2] NAYAR S.Catadiop tric qmnidirectional camera[A].IEEE Conf Computer Vision and Pattern Recognition[C].Washington D C,997.
[3] 李立金,華標(biāo),陳智君,等.基于FPGA和DSP的高分辨率圖像采集系統(tǒng)[J],數(shù)據(jù)采集與處理,2008,23(1):117-122.
[4] 衰大偉,張躍文.基于DSP+FPGA的電子圖像直接穩(wěn)定技術(shù)研究[J].儀器儀表學(xué)報(bào),2007,28(4):735-737.
[5] 周賢波,馮龍齡.基于DSP和FPGA圖像采集技術(shù)的研究.光學(xué)技術(shù),2006,32(Suppl):141-143.
[6] Shirvaikar Mukul1,Bushnaq,Tariq1.A comparison between DSP and FPGA platforms for realtime imaging applications,Proceedings of SPIE-IS  and T Electronic Imaging - Real-Time Image  and Video Processing,2009,7244.
[7] CHAUBEY R C.Computerized image analysis  software for the comet assay,Molecular Toxicology Protocols,ISSN 1064-3745,2008,291.
[8] 錢博,劉元濤,鐘鳴.高速數(shù)字信號(hào)處理中的雙緩沖ZBT  Sram控制器設(shè)計(jì)[J].沈陽(yáng)理工大學(xué)學(xué)報(bào).2008,27(2).
[9] 陳興耀,王振華,田金文,等.高速遙感圖像壓縮系統(tǒng)ZBT SRAM控制器的設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī).2005,22(3).
[10] 李紀(jì)奎,向懷坤,胡泓,等.基于?滋COS-Ⅱ的視頻動(dòng)態(tài)交通信息采集系統(tǒng)研究[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2007,39(2).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。