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