《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > FPGA+DSP實(shí)時三維圖像信息處理系統(tǒng)

FPGA+DSP實(shí)時三維圖像信息處理系統(tǒng)

《電子技術(shù)應(yīng)用》2007年第3期
2008-01-17
作者:盧子建,李德華,雷海軍

摘 要:一種基于高性能" title="高性能">高性能FPGA+DSP核心架構(gòu)的實(shí)時三維圖像" title="三維圖像">三維圖像信息處理系統(tǒng)" title="處理系統(tǒng)">處理系統(tǒng)。介紹了系統(tǒng)硬件結(jié)構(gòu)和數(shù)據(jù)處理流程,按模塊分析了硬件設(shè)計(jì)和邏輯連接,給出了圖像預(yù)處理" title="圖像預(yù)處理">圖像預(yù)處理和三維重建算法的硬件實(shí)現(xiàn)流程。
關(guān)鍵詞:FPGA? DSP? 三維圖像處理? Spartan3? TigerSHARC

?

??? 三維圖像信息處理一直是圖像視頻處理領(lǐng)域的熱點(diǎn)和難點(diǎn),目前國內(nèi)外成熟的三維信息處理系統(tǒng)不多,已有的系統(tǒng)主要依賴高性能通用PC完成圖像采集、預(yù)處理、重建、構(gòu)型" title="構(gòu)型">構(gòu)型等囊括底層和高層的處理工作。三維圖像處理數(shù)據(jù)量特別大、運(yùn)算復(fù)雜,單純依靠通用PC很難達(dá)到實(shí)時性要求,不能滿足現(xiàn)行高速三維圖像處理應(yīng)用。
??? 本系統(tǒng)中,采用FPGA實(shí)現(xiàn)底層的信號預(yù)處理算法,其處理數(shù)據(jù)量很大,處理速度高,但算法結(jié)構(gòu)相對比較簡單,可同時兼顧速度和靈活性。高層處理算法數(shù)據(jù)量較少、算法結(jié)構(gòu)復(fù)雜,可采用運(yùn)算速度快、尋址方式靈活、通信機(jī)制強(qiáng)大的DSP實(shí)現(xiàn)[1,4]。
1 三維圖像處理系統(tǒng)組成
1.1 硬件系統(tǒng)構(gòu)成
??? 該系統(tǒng)由五個模塊組成,如圖1所示。

?


??? 系統(tǒng)信息處理流程見圖2所示。CCD攝像機(jī)采集的多路模擬視頻信號經(jīng)MAX440按需要選定后,送入模數(shù)視頻轉(zhuǎn)換器SAA7111A將攝像機(jī)輸出的模擬全電視信號CVBS轉(zhuǎn)換成數(shù)字視頻信號;之后視頻信號流入圖像預(yù)處理器Spartan XC3S400,經(jīng)過提取中心顏色線、提取激光標(biāo)志線和物體輪廓線的預(yù)處理后,配送到兩片TS201進(jìn)行定標(biāo)參數(shù)計(jì)算、坐標(biāo)計(jì)算、三維重建、數(shù)據(jù)融合以及三維構(gòu)型的核心運(yùn)算;最后將DXF文件數(shù)據(jù)經(jīng)由PCI接口傳送到PC,完成三維圖像變換和顯示等最終處理;整個系統(tǒng)的邏輯連接和控制以及部分?jǐn)?shù)據(jù)交換由另一片F(xiàn)PGA來完成[1]。

?


??? 在體系結(jié)構(gòu)設(shè)計(jì)上,F(xiàn)PGA處理器采用SIMD結(jié)構(gòu),在一個控制單元產(chǎn)生的控制信號下,數(shù)據(jù)通路中的三個算法并行運(yùn)行。由于該系統(tǒng)要求處理速度較高,因而在數(shù)據(jù)通路中采用了流水線技術(shù)以提高速度。此外,本系統(tǒng)中為圖像存儲采用了許多大容量高速FIFO,以達(dá)到減少地址線,簡化控制的目的。
1.2 處理器芯片
??? 為滿足系統(tǒng)大數(shù)據(jù)量快速處理的要求,三款核心芯片均為最新高性能產(chǎn)品,其硬件方面的特點(diǎn)給系統(tǒng)設(shè)計(jì)帶來極大的方便,其優(yōu)異的運(yùn)算性能可確保系統(tǒng)的快速實(shí)時性。
??? FPGA芯片采用Xilinx公司近期推出的采用90nm工藝的Spartan3系列的XC3S400,該系列芯片是目前為止工藝最先進(jìn)、價格較低、單位成本內(nèi)I/O管腳最多的平臺級可編程邏輯器件。XC3S400芯片內(nèi)部時鐘頻率可達(dá)326MHz,信號擺幅1.14V和3.45V,I/O口支持622Mbps的數(shù)據(jù)傳輸率,具有高性能SelectRAM內(nèi)部存儲器,多達(dá)4個數(shù)字時鐘管理器模塊和8個全局時鐘多路復(fù)用緩沖器。
????DSP采用ADI公司的最新款基于并行處理設(shè)計(jì)、具有海量片內(nèi)RAM的TigerSHARC ADSP TS201。其內(nèi)部集成的RAM容量高達(dá)24Mbit,核心速度最高達(dá)600MHz。內(nèi)設(shè)雙運(yùn)算模塊,每個包含一個ALU、MUL、64bit移位寄存器、32個32bit寄存器組和一個128bit通信邏輯單元,相關(guān)的數(shù)據(jù)對齊緩沖器;雙整數(shù)ALU,各有獨(dú)立的寄存器組,提供數(shù)據(jù)尋址和指針操作;4個128bit寬度內(nèi)部總線,每個都連接到6個4Mbit的內(nèi)部存儲器塊;提供與主機(jī)處理器、多處理器空間、片外存儲器映射外設(shè)、外部SRAM和SDRAM相連的外部端口;14通道DMA控制器;4個全雙工低電壓差分信號輸入的Link Port;具有片內(nèi)仲裁總線,用于多DSP無縫的連接。
??? 數(shù)字化器采用了Philips公司的增強(qiáng)視頻輸入處理器(EVIP)——SAA7111A模數(shù)轉(zhuǎn)換器。該產(chǎn)品廣泛應(yīng)用于個人視頻、多媒體、數(shù)字電視、可視電話、圖像處理、實(shí)時監(jiān)控等領(lǐng)域,純3.3V CMOS工藝的模擬視頻前端和數(shù)字視頻編碼器,能夠?qū)AL/TSC/ECAM視頻信號解碼為與CCIR-601相兼容的多種數(shù)字視頻格式,支持TV或VTR信號源的CVBS或S-Video視頻信號,最高圖像分辨率可達(dá)720×576,支持24位真彩色,可以通過串行總線動態(tài)配置SAA7111A模數(shù)轉(zhuǎn)換器的工作方式和各種參數(shù)。
2 模塊設(shè)計(jì)
2.1 視頻采集與數(shù)字化模塊
??? 由于模擬攝像機(jī)采集的是PAL制的復(fù)合視頻信號(CVBS),所以必須先將其數(shù)字化才能開始后繼數(shù)字視頻處理。視頻采集與數(shù)字化模塊主要包括一片視頻多路復(fù)用器MAX440、一片SAA7111A、一片I2C接口控制器PCF8584和一些連接邏輯。MAX440用來快速切換來自不同模擬輸入端的模擬視頻流,SAA7111A模數(shù)轉(zhuǎn)換器是該模塊的核心,它采集模擬視頻,將其數(shù)字化為720×576的RGB(8,8,8)真彩色信號格式的數(shù)字視頻,其輸出的RGB真彩色信號為16位,其中高字節(jié)和低字節(jié)數(shù)據(jù)周期分別為74ns和37ns,即低字節(jié)的頻率是高字節(jié)的1倍。這樣就要利用觸發(fā)器和兩個分別為13.5MHz和27MHz的時鐘信號,將輸入數(shù)據(jù)格式轉(zhuǎn)換為24位、周期均為74ns的RGB真彩色信號,此外,它還為整個硬件系統(tǒng)提供必要的時鐘和同步信號;PCI接口控制器通過PCF8584來配置和控制SAA7111A,連接邏輯由FPGA實(shí)現(xiàn)。
2.2 FPGA圖像預(yù)處理模塊
??? 預(yù)處理從巨大的視頻信息中提取極少量的對三維重建有用的信息傳送至DSP后處理。該模塊包括主處理FPGA芯片和高速FIFO,負(fù)責(zé)實(shí)時采集視頻信號并對采集到的無壓縮的視頻信息進(jìn)行預(yù)處理,包括提取激光中心線、提取輪廓線、提取中心顏色線三個部分。
??? 為了提高視頻采集的整體性能,更重要的是為預(yù)處理提供相鄰的有激光幀和無激光幀,必須通過視頻幀緩存首先暫存無激光幀。緩存由3片AverLogic公司的AL422B及一些由FPGA實(shí)現(xiàn)的連接邏輯組成;當(dāng)前端模塊輸出無激光幀時,SA7111A控制3片AL422B寫操作,將其存入FIFO;當(dāng)前端輸出有激光幀時,后端的視頻處理模塊控制3片AL422B進(jìn)行讀操作,讀出暫存在其中的無激光幀數(shù)據(jù)。預(yù)處理FPGA將讀取的無激光幀和有激光幀進(jìn)行相減運(yùn)算。輸出同樣采用3組緩存分別用來暫存激光樣條數(shù)據(jù)、目標(biāo)輪廓線數(shù)據(jù)和圖像中心線數(shù)據(jù);所有模塊均采用同步時鐘控制,同步時鐘采用由SAA7111A模數(shù)轉(zhuǎn)換器產(chǎn)生的LLC2信號。為了提高系統(tǒng)速度,算法復(fù)雜、耗時較長的計(jì)算過程進(jìn)行了流水線處理。
2.3 DSP三維重建模塊
??? 為了應(yīng)對三維圖像大數(shù)據(jù)量復(fù)雜高速運(yùn)算的需要,這里采用了兩片TigerSHARC 201芯片并行三維重建運(yùn)算。由控制FPGA對兩片DSP所要處理的圖像進(jìn)行任務(wù)分配,DSP結(jié)合預(yù)處理FPGA存入FIFO的數(shù)據(jù)和PCI總線所給處理參數(shù)進(jìn)行定標(biāo)參數(shù)計(jì)算、坐標(biāo)計(jì)算、三維重建和構(gòu)型。由于TS201內(nèi)部集成的總線仲裁機(jī)制,雙DSP可以實(shí)現(xiàn)無縫連接,大大減小了多DSP協(xié)調(diào)工作的設(shè)計(jì)難度。DSP間的連接是依靠其擁有的全雙工LinkPort,它采用LVDS(低電平差分信號)輸入數(shù)據(jù)。鏈路口能獨(dú)立或同時工作,在時鐘的上升沿和下降沿鎖存數(shù)據(jù)。鏈路時鐘頻率最高可以與處理器核相同,高達(dá)500MHz,每個鏈路能完成500Mbps的單向數(shù)據(jù)傳輸。每個DSP的4個LinkPort合起來最大的通透率為4.0Gbps。連線短且簡單,不需要額外的輔助電路,且可有效防止連線長引起的信號畸變。LinkPort傳輸協(xié)議由控制FPGA完成。
2.4 PCI通信接口模塊
??? 根據(jù)三維信息獲取系統(tǒng)的速度傳輸要求,采用PCI接口完成該系統(tǒng)與通用PC的信息交互。PCI接口控制器是硬件部分的控制中心和數(shù)據(jù)交換中心,它接收設(shè)備驅(qū)動程序的命令和數(shù)據(jù),配置和控制系統(tǒng)的各個模塊使其協(xié)調(diào)工作,完成系統(tǒng)任務(wù);它還負(fù)責(zé)將采集到和處理后的數(shù)據(jù)通過PCI總線轉(zhuǎn)送給通用PC。本系統(tǒng)采用PLX公司的32bit/33MHz PCI9030作為接口芯片,串行EEPROM-FM93CS56L電可擦除只讀存儲器保存PCI9030的配置信息。
2.5 系統(tǒng)控制與數(shù)據(jù)交換模塊
??? 控制單元對處理器的數(shù)據(jù)處理單元和輸入數(shù)據(jù)格式轉(zhuǎn)換單元以及所有FIFO存儲器產(chǎn)生控制,與預(yù)處理FPGA配合完成DSP的LinkPort協(xié)議。由于數(shù)據(jù)處理單元中為流水處理,在控制單元的設(shè)計(jì)中要特別注意由流水線產(chǎn)生的固定周期的延時,延時的周期數(shù)等于相應(yīng)流水線的級數(shù)??刂茊卧€與PCI接口連接,接收來自主計(jì)算機(jī)的控制信號和背景閾值等信息??刂艶PGA還是SAA7111A、PCI接口和DSP之間的圖像和信息交換的橋梁,為其提供所需要的參數(shù)和數(shù)據(jù)信息。
3 軟件設(shè)計(jì)與實(shí)現(xiàn)
3.1 圖像預(yù)處理算法
??? 如圖3,激光帶預(yù)處理算法的實(shí)現(xiàn)[2]為:由于有激光幀和無激光幀是依次交替產(chǎn)生的,因此首先要保存一幀有激光幀,在其下一幀,即無激光幀到來時,將保存的有激光幀和當(dāng)前無激光幀的相同行、列的點(diǎn)相減,再對結(jié)果進(jìn)行亮度提取,處理完成后的數(shù)據(jù)存入目標(biāo)緩存。

?


??? 如圖4,實(shí)現(xiàn)提取輪廓線算法分為三個部分[3],首先由計(jì)算比較模塊對輸入像素點(diǎn)的值與預(yù)先計(jì)算好的閾值進(jìn)行比較,判斷其是否為目標(biāo)像素;然后利用一個序列檢測模塊進(jìn)行一維尺度濾波以去除某些噪聲點(diǎn);再經(jīng)過一個邊緣檢測模塊,提取出每行的第一個目標(biāo)像素作為目標(biāo)的左邊緣點(diǎn);完成后將此點(diǎn)所對應(yīng)的列地址數(shù)據(jù)存入目標(biāo)緩存。在某些情況下,可能整行都檢測不到邊緣點(diǎn),這時將0存入目標(biāo)緩存作為無邊緣點(diǎn)的標(biāo)識。

?


??? 提取中心線算法實(shí)現(xiàn)比較簡單,只需對目標(biāo)緩存的寫允許信號加以控制,使RGB數(shù)據(jù)只能在每行的中心點(diǎn)處寫入目標(biāo)緩存即可。
3.2 三維重建和構(gòu)型
??? 如圖5所示,高速DSP將根據(jù)預(yù)處理信息得到的激光標(biāo)志線、輪廓線和中心顏色線數(shù)據(jù)與源數(shù)字化圖像結(jié)合起來進(jìn)行三維重建。首先根據(jù)獲取的圖像標(biāo)志點(diǎn)數(shù)據(jù)結(jié)合控制點(diǎn)三維坐標(biāo)數(shù)據(jù)計(jì)算出系統(tǒng)定標(biāo)數(shù)據(jù);其次根據(jù)輪廓線計(jì)算物體外表面展開圖,再依據(jù)定標(biāo)數(shù)據(jù)結(jié)合展開圖和機(jī)械參數(shù)對圖像中的坐標(biāo)點(diǎn)進(jìn)行計(jì)算,給出數(shù)據(jù)集,輸出深度數(shù)據(jù)文件;最后對多次掃描的數(shù)據(jù)進(jìn)行融合,將離散點(diǎn)構(gòu)型成立體模型(或立體彩色模型),將模型生成DXF、STL等數(shù)據(jù)文件傳入PC機(jī),使用后端處理軟件進(jìn)行顯示[3]。

?


3.3 算法實(shí)現(xiàn)
??? 圖像預(yù)處理算法設(shè)計(jì)使用Verilog HDL在Xilinx公司的ISE8.1集成編譯環(huán)境下成功實(shí)現(xiàn);FPGA開發(fā)流程不再贅述。
??? DSP三維重建算法已使用C語言在ADI公司Visual DSP++環(huán)境下成功實(shí)現(xiàn)[4]。算法實(shí)現(xiàn)步驟如下:①用C語言編程實(shí)現(xiàn)算法。②使用Visual DSP++編譯器將源程序編譯成目標(biāo)文件。③根據(jù)產(chǎn)生的目標(biāo)文件,分析結(jié)果及源程序結(jié)構(gòu)并優(yōu)化源代碼。④應(yīng)用TigerSHARC 201評估板進(jìn)行運(yùn)算時間評估。⑤重復(fù)上述步驟直至達(dá)到系統(tǒng)實(shí)時性要求,最后下載到目標(biāo)板。
??? 整個系統(tǒng)聯(lián)機(jī)運(yùn)行穩(wěn)定,滿足設(shè)計(jì)要求,實(shí)時性好。
??? 實(shí)時三維圖像信息處理以其數(shù)據(jù)量大、速度要求高、處理過程復(fù)雜的特點(diǎn)使其難以使用集成電路實(shí)現(xiàn)。本文研究的以目前最新高性能處理器的FPGA+DSP為核心架構(gòu)的三維圖像處理系統(tǒng)精心設(shè)計(jì)了算法的硬件實(shí)現(xiàn),充分利用了兩種處理器的長處。實(shí)驗(yàn)表明,該系統(tǒng)有著良好的性能,對實(shí)現(xiàn)基于網(wǎng)絡(luò)的實(shí)時三維掃描應(yīng)用,如三維傳真、機(jī)械遠(yuǎn)程加工、快速成型和虛擬現(xiàn)實(shí),有著重要的意義。
參考文獻(xiàn)
[1] LEI HAIJUN,LI DEHUA.High-Speed aerial image processing system based on DSP,In neural nerwork and distributed processing,Proceedings of SPIE Vol.4555,2001:131-136
[2] 雷海軍,李德華,王建永等.一種結(jié)構(gòu)光條紋中心快速檢測方法[J].華中科技大學(xué)學(xué)報(bào),2003,31(1):74-76.
[3] 金 剛.三維掃描儀中三維信息獲取理論與技術(shù)研究[D].華中科技大學(xué)博士學(xué)位論文,2002,(3)
[4] 陸海東,吳明贊.基于FPGA+DSP結(jié)構(gòu)的小波圖像處理系統(tǒng)設(shè)計(jì)[J],電子技術(shù)應(yīng)用,2006,(3)93-95.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。