基于PCI總線的實時圖像識別與跟蹤平臺設(shè)計
1 C6701數(shù)字信號處理器簡介
本文引用地址:http://butianyuan.cn/article/201612/329191.htmC6701芯片內(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的配置芯片,圖中雙口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。
圖2 圖像處理系統(tǒng)硬件框圖
利用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ù)處理,包括圖像校正、圖像濾波,之后進行圖像分割和識別。當(dāng)識別出目標(biāo)時設(shè)置跟蹤波門,則后續(xù)圖像序列在波門內(nèi)進行跟蹤。本系統(tǒng)識別的目標(biāo)為高空飛行的飛機圖像,采用的識別算法要求具有平移、旋轉(zhuǎn)和比例的識別特征不變性,同時要求跟蹤速度快。
4.1 圖像分割
圖像分割的目的是將圖像目標(biāo)和背景分割開來,從而知道目標(biāo)的大致位置。目前已有各種各樣的方法,其中簡單有效的方法是直方圖分割法中的最大距離法(類間方差門限法)。它的基本思想是:在直方圖取值范圍內(nèi),任一灰度級可將直方圖分為左右兩部分,如果這兩部分的灰度均值與總體的灰度均值相距最大,則該灰度級就取為分割門限。這種分割技術(shù)可由如下公式描述:
D(l′)={[λ(l)-μPo(l)] 2}/Po(l)[1-Po(l)] (1)
式中,,Pl為灰度l級處的概率。分割的準(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)階矩:
mpq=∑XpYqf(x,y) (2)
式中, p,q=0,1,3……
f(x,y)的(p+q)階中心矩可用下式表示:
μ=∑(X-X)p(Y-Y)qf(x,y) (3)
式中,X=m10/m00,Y=m01/m00,即(X,Y)為目標(biāo)區(qū)域灰度質(zhì)心。
f(x,y)惟一地確定一個矩序列{mpq},反之,矩序列{mpq}也唯一確定f(x,y)。在此利用公式(4)的5個幾何矩不變量[4],再加上分散度特征一起代入目標(biāo)匹配公式[2]進行目標(biāo)識別。
φ1=η20+η02
φ2=(η20-η02)2+4η 2 11
φ3=η20η022-η (4)
φ4=(η30-3η12)2+(3η-η03)2
φ5=(η30+η12)2+(η+η03)2
其中,ηpq=μpq/(μ00)(p+q+2)/2。
此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)的運動軌跡可以是直線和二次曲線的某種組合。即
f(k+1)=Wfl(k+1)+(1-W)fq(k+1) (5)
式中,fl(·)為線性預(yù)測器;fq(·)為平方預(yù)測器,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é)果。
評論