《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA+DSP的智能車全景視覺系統(tǒng)
基于FPGA+DSP的智能車全景視覺系統(tǒng)
來源:電子技術應用2011年第3期
周渝斌
上海工程技術大學 機械工程學院,上海201620
摘要: 為實現(xiàn)智能車全景視覺系統(tǒng)的應用研究平臺,設計了一種基于FPGA+雙DSP的實時6通道數(shù)字圖像采集與處理系統(tǒng)。該系統(tǒng)由兩片F(xiàn)PGA與兩個DSP組成。第一個FPGA進行多通道視覺圖像采集的同步控制、邏輯處理,第二片F(xiàn)PGA輔助DSP進行海量圖像數(shù)據(jù)的高速并行處理。兩個ZBT SRAM芯片作為數(shù)據(jù)輸入和輸出的高速緩存, 每通道的A/D輸出與ZBT SRAM接口間進行數(shù)位拼接。系統(tǒng)工作時,DSP通過EMIF與FPGA進行高速數(shù)據(jù)通信,而兩個DSP之間通過McBSP進行數(shù)據(jù)通信。系統(tǒng)工作時使用?滋C/OS操作系統(tǒng)進行多任務負載均衡管理,最終實現(xiàn)對兩路視頻信號同時實時采集和處理。
中圖分類號: TN911.73
文獻標識碼: A
文章編號: 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


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

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

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

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

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

    本系統(tǒng)通過選用FPGA+DSP相配合的方式,同時利用了兩種芯片的性能優(yōu)勢,既保證系統(tǒng)的執(zhí)行速度,也能保證可靠的邏輯控制。該系統(tǒng)實現(xiàn)了6路1 M大小視頻圖像信號的同時采集和處理,由FPGA1對系統(tǒng)的運行邏輯進行控制,通過優(yōu)化在DSP上運行的圖像處理程序,可實現(xiàn)智能車導航應用中全景圖像范圍內的目標追蹤。該系統(tǒng)還可作為一個獨立的圖像處理系統(tǒng),后續(xù)通過添加其他如立體視覺和光學跟蹤等的算法,形成其他多方面的圖像應用研究平臺。同時該方案也為其他基于多DSP和FPGA混合圖像處理平臺設計提供了參考。
參考文獻
[1] 王亮.智能移動機器人定位技術研究[D].哈爾濱:哈爾濱工程大學,2004.
[2] NAYAR S.Catadiop tric qmnidirectional camera[A].IEEE Conf Computer Vision and Pattern Recognition[C].Washington D C,997.
[3] 李立金,華標,陳智君,等.基于FPGA和DSP的高分辨率圖像采集系統(tǒng)[J],數(shù)據(jù)采集與處理,2008,23(1):117-122.
[4] 衰大偉,張躍文.基于DSP+FPGA的電子圖像直接穩(wěn)定技術研究[J].儀器儀表學報,2007,28(4):735-737.
[5] 周賢波,馮龍齡.基于DSP和FPGA圖像采集技術的研究.光學技術,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ù)字信號處理中的雙緩沖ZBT  Sram控制器設計[J].沈陽理工大學學報.2008,27(2).
[9] 陳興耀,王振華,田金文,等.高速遙感圖像壓縮系統(tǒng)ZBT SRAM控制器的設計[J].微電子學與計算機.2005,22(3).
[10] 李紀奎,向懷坤,胡泓,等.基于?滋COS-Ⅱ的視頻動態(tài)交通信息采集系統(tǒng)研究[J].哈爾濱工業(yè)大學學報,2007,39(2).

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