??? 摘? 要: 探討了應(yīng)用PCI總線主控I/O加速器PLX9054開發(fā)PCI總線的圖像傳輸" title="圖像傳輸">圖像傳輸卡,該卡完成了與TMS320C6701數(shù)字信號處理器構(gòu)成的圖像識別" title="圖像識別">圖像識別與跟蹤處理板的實時序列圖像傳輸,利用TMS320C6701實現(xiàn)了不變矩特征對目標(biāo)的識別,同時完成了對目標(biāo)的運動軌跡預(yù)測和實時跟蹤,。經(jīng)實驗取得了很好的效果,。?
??? 關(guān)鍵詞: PCI總線? 圖像識別? 圖像跟蹤? TMS320C6701?
?
??? 在沒有紅外探測器或其它圖像采集設(shè)備的條件下,可以先開發(fā)基于PCI總線的圖像處理" title="圖像處理">圖像處理平臺,由計算機模擬圖像的生成并完成圖像的高速傳輸,以縮短系統(tǒng)開發(fā)周期,使系統(tǒng)靈活,、實用、便于進行功能擴展,。采用美國TI公司的新一代高性能浮點數(shù)字信號處理器TMS320C6701(以下簡稱C6701)研制了實時圖像識別與跟蹤處理平臺,利用不變矩進行圖像識別,采用質(zhì)心跟蹤方案,獲得了很好的實驗效果,。充分發(fā)揮了C6701強大的數(shù)字信號處理能力,并為后續(xù)的研究提供了很好的軟硬件平臺基礎(chǔ)。?
1 C6701數(shù)字信號處理器簡介?
??? C6701芯片內(nèi)有8個并行處理單元,分為相同的兩組,。采用甚長指令字VLIW結(jié)構(gòu),使C6701成為高性能的數(shù)字信號處理芯片,。其單指令字長為32b,8個指令組成一個指令包,總字長為256b。芯片內(nèi)部設(shè)置了專門的指令分配模塊,可以將每個256b指令包同時分配到8個處理單元,8個單元可同時運行,。芯片的最高時鐘頻率達(dá)到167MHz,此時浮點運算處理能力可達(dá)到1GFLOPS,。外部存儲器接口EMIF支持8/16/32b數(shù)據(jù)寬度的各種類型的同步、異步存儲器,便于系統(tǒng)擴展,。C6701片內(nèi)有64KB的數(shù)據(jù)RAM和64KB的程序RAM;片外存儲空間分為4個區(qū)(CE0,、CE1、CE2,、CE3);有4個相互獨立的可編程DMA通道,還有第五個DMA通道可與HPI接口,。?
2 PCI9054的主要特點及應(yīng)用?
??? PCI09054是美國PLX公司生產(chǎn)的一種32b 33MHz的PCI總線主控I/O加速器。采用先進的PLX流水線結(jié)構(gòu);符合PCI本地總線規(guī)范2.2版,突發(fā)傳輸速率達(dá)到132MB/s;本地總線復(fù)用/非復(fù)用的32b地址/數(shù)據(jù)線,有 M,、J,、C三種工作模式,但C模式的數(shù)據(jù)和地址總線是非復(fù)用的;支持8b、16b,、32b外圍設(shè)備和存儲設(shè)備,本地總線操作速率高達(dá)50MHz;內(nèi)部有6種可編程的FIFO,可實現(xiàn)零等待的突發(fā)傳輸及本地總線時鐘和PCI總線時鐘的異步操作,支持主模式,、從模式和DMA傳輸模式。PCI9054是一種性價比高的PCI橋接芯片,。?
??? 圖1給出了PCI總線接口連接圖,使用2K的ST93CS56串行EEPROM作為PCI9054的配置芯片,圖中雙口" title="雙口">雙口RAM可設(shè)計成32b,、16b或8b。PLX9054工作在C模式下,。本地總線晶振為30MHz,經(jīng)過測試PLX9054工作在從模式單字節(jié)讀寫的情況下,本地總線速度已達(dá)12MB/s,。根據(jù)實際圖像傳輸需要(圖像大小為256×256,深度為8b的灰度圖像)幀頻為25幀/s,已經(jīng)滿足需要。為了再提高傳輸速度,PLX9054可以開發(fā)成突發(fā)或DMA傳輸方式,。使用CPLD(Xilinx的XC95108)完成PCI9054到雙口RAM的譯碼電路,本地地址空間可尋址大小為1MB,1MB的本地地址空間映射為地址00000000H~000fffffH,PCI總線的地址空間(計算機自動分配)為ef100000H~ef1fffffH,同時要求PCI基址空間2(對應(yīng)寄存器PCIBAR2)映射到本地地址空間0(對應(yīng)寄存器LAS0BA),即LAS0RR寄存器設(shè)為fff00000H,LAS0BA寄存器設(shè)為00000001H,。其中,LAS0BA的最低位置成“1”,表示PCI直接從模式訪問本地地址空間0,使能譯碼;寫“0”則禁止使能。PCIBAR2的值為ef100000H,。?
?
?
??? 利用WinDriver6.01驅(qū)動程序開發(fā)工具生成PCI圖像傳輸卡的WDM驅(qū)動程序代碼,用VisualC++6.0編寫應(yīng)用程序,完成圖像處理版與PC機之間的高速率的圖像序列傳輸,。?
3 圖像處理板硬件設(shè)計?
??? 系統(tǒng)硬件框圖如圖2所示,。圖像處理板以DSP C6701為核心,C6701主要負(fù)責(zé)圖像處理,包括對目標(biāo)的識別和跟蹤,并給出最終的跟蹤角誤差。源圖像通過PCI接口卡傳入圖像處理板的兩片雙口RAM,兩片雙口RAM采用乒乓式存儲,。即為了保證圖像處理的實時性,當(dāng)一片RAM接收數(shù)據(jù)時,另一片RAM為DSP提供圖像處理的數(shù)據(jù),。SDRAM用作DSP RAM的擴展,存儲圖像處理的中間結(jié)果。圖像處理后的方位與俯仰角度數(shù)據(jù)通過82C52轉(zhuǎn)換成串行數(shù)據(jù),再經(jīng)DS8921轉(zhuǎn)換成RS-422電平,送給系統(tǒng)的后續(xù)電路,。
?
?
??? FPGA選用Altera公司的APEXEP20K200,完成整個圖像處理板的譯碼邏輯,并承擔(dān)部分圖像處理功能,。APEXEP20K200門數(shù)為20萬門,采用串行配置時必須使用兩片EPC2。FPGA配置在C6701的CE0空間,。FLASH選用4Mb的AM29LV040,用作DSP BootLoader加載程序時的8b ROM,只能配置在CE1空間,因為C6701只有CE1空間可以與8b/16b的“窄存儲器”接口,。SDRAM的容量為4M×32b,配置在CE2空間。兩片雙口RAM為CY7C028V,容量為64K×16b,都配置在CE3空間,地址分別譯為0x03000000和0x03040000,。C6701的BOOTMODE[4:0]=01101,即存儲器映射方式為MAP1,、8bitROM加載、地址0處的存儲器對應(yīng)為DSP內(nèi)部程序RAM,。?
4 軟件算法?
??? 圖像由計算機經(jīng)PCI卡傳到圖像處理板的雙口RAM后,DSP對圖像進行預(yù)處理,包括圖像校正,、圖像濾波,之后進行圖像分割" title="圖像分割">圖像分割和識別。當(dāng)識別出目標(biāo)時設(shè)置跟蹤波門,則后續(xù)圖像序列在波門內(nèi)進行跟蹤,。本系統(tǒng)識別的目標(biāo)為高空飛行的飛機圖像,采用的識別算法要求具有平移,、旋轉(zhuǎn)和比例的識別特征不變性,同時要求跟蹤速度快。?
4.1 圖像分割?
??? 圖像分割的目的是將圖像目標(biāo)和背景分割開來,從而知道目標(biāo)的大致位置,。目前已有各種各樣的方法,其中簡單有效的方法是直方圖分割法中的最大距離法(類間方差門限法),。它的基本思想是:在直方圖取值范圍內(nèi),任一灰度級可將直方圖分為左右兩部分,如果這兩部分的灰度均值與總體的灰度均值相距最大,則該灰度級就取為分割門限。這種分割技術(shù)可由如下公式描述:?
???
處的概率,。分割的準(zhǔn)則是將D(l′)為最大值的灰度級l′?
作為圖像分割的門限值,。圖像中凡是灰度值大于分割門限的像點,均認(rèn)為是背景中的點;反之,則認(rèn)為是潛在目標(biāo)區(qū)域中的點。這種分割方法可以精確地找到分割門限,提取目標(biāo),。?
4.2 圖像識別?
??? 圖像經(jīng)過分割后,接下來就要對目標(biāo)圖像識別,。實現(xiàn)目標(biāo)識別技術(shù)的關(guān)鍵是如何利用一組特征參數(shù)對區(qū)域的本質(zhì)特征進行有效的描述。適當(dāng)?shù)剡x擇特征是很重要的,因為在識別目標(biāo)時它是唯一的依據(jù),。圖像的識別特征有各種各樣的描述,如目標(biāo)形狀,、大小、統(tǒng)計分布等,。這里使用仿射矩不變量和分散度特征來識別目標(biāo),取得了較好的效果,。?
??? 對于經(jīng)過分割(二值)處理的數(shù)字圖像f(x,y),可以定義(p+q)階矩:?
??? f(x,y)惟一地確定一個矩序列{mpq},反之,矩序列{mpq}也唯一確定f(x,y)。在此利用公式(4)的5個幾何矩不變量[4],再加上分散度特征一起代入目標(biāo)匹配公式[2]進行目標(biāo)識別,。?
??? 此5個不變矩對目標(biāo)區(qū)域的平移(T),、旋轉(zhuǎn)(R)和區(qū)域的比例大小(S)保持不變。?
4.3 目標(biāo)跟蹤與軌跡預(yù)測?
??? 識別出目標(biāo)后,根據(jù)目標(biāo)確定跟蹤波門大小,在跟蹤波門內(nèi)進行跟蹤,波門的大小采用自適應(yīng)設(shè)置,。常用的跟蹤算法有波門跟蹤,、圖像匹配跟蹤和多模跟蹤算法,考慮到背景較簡單,采用基于公式(1)的質(zhì)心跟蹤方案,。把波門的中心G(xG,yG)和目標(biāo)質(zhì)心T(xT,yT)的偏差作為跟蹤誤差,通過RS-422接口輸出給后續(xù)處理板來實時進行跟蹤。?
??? 在跟蹤過程中,目標(biāo)的位置按照自身的運動方式不斷變化著,同時目標(biāo)也會出現(xiàn)被遮擋的情況,。此時,需要對目標(biāo)的運動軌跡進行預(yù)測,可以采用基于最小二乘法的綜合預(yù)測器來預(yù)測[2],認(rèn)為目標(biāo)的運動軌跡可以是直線和二次曲線的某種組合。即?
???
W為權(quán)函數(shù)(0≤W≤1),。?
??? 權(quán)函數(shù)可以根據(jù)實時測得的平方預(yù)測器的誤差而實時構(gòu)成,。當(dāng)平方預(yù)測器誤差較大時,則增大權(quán)值,否則減小權(quán)值。線性和平方預(yù)測器的記憶點數(shù)N的選取要視具體工作情形而定,。當(dāng)特征量的變化不是太快時,N值應(yīng)選得稍大些,這樣也有利于抑制噪聲的干擾;若特征量變化甚快,則N應(yīng)選用較小的值,。一般選擇N≤5,當(dāng)N=2時,線性預(yù)測有利于跟上機動性較高的目標(biāo);當(dāng)N=5時,預(yù)測的目標(biāo)運動軌跡比較平滑,有較強的抗干擾能力。?
5 實驗結(jié)果?
??? 采用256×256大小,、深度為8b的連續(xù)150幀灰度圖像進行試驗,達(dá)到跟蹤速度為25幀/s的實時跟蹤效果,整個系統(tǒng)工作穩(wěn)定,、可靠、靈活且易于擴展,。圖3給出了跟蹤的結(jié)果,。?
?
?
參考文獻?
1 Klaus Illgner. DSPS for Image and Video Processing. Signal?Processing 80 (2000):2323~2326.?
2 楊宜禾,周維真. 成像跟蹤技術(shù)導(dǎo)論.西安:西安電子科技大學(xué)出版社,1991?
3 PCI9054 Data Book V2.1. Plx Technolgy,2000?
4 王耀明. 圖像的矩函數(shù)原理、算法及應(yīng)用. 上海:華東理工大學(xué)出版社,2002?
5 TMS320C6701 Floating-point DSP Data Sheet. Texas Instrument Incorporated,2000