目前使用的圖像跟蹤系統(tǒng)前端輸入信號一般都是PAL制式的標準全電視信號,每20 ms一場,每40 ms一幀。模擬信號經過視頻解碼器轉換成720×576大小的數字信號后,再對其中的目標進行分割、識別和跟蹤,并準確計算出目標的位置角度偏差,并傳給伺服機構。在某系統(tǒng)中要求能對3×3像素大小的小目標進行精確跟蹤,為了達到跟蹤精度,可以提高圖像輸入的幀頻和提高圖像輸入的分辨率,因此前端采用了DALSA公司的一款基于Camera Link" title="Camera Link">Camera Link接口的數字攝像機,該相機的幀頻為100 Hz,分辨率高達1 400×1 024。這樣幀處理時間就只有10 ms,考慮到系統(tǒng)的實時性,我們采用了TI公司的高性能的DSP" title="DSP">DSP芯片TMS320C6414和高性能FPGA" title="FPGA">FPGA芯片EP2S30F672為核心的硬件處理平臺。
1 系統(tǒng)硬件結構和工作原理
整個圖像跟蹤模塊的結構圖如圖1中虛線框所示,整個系統(tǒng)包括以FPGA為核心的圖像采集和預處理單元,以DSP為核心的圖像處理單元以及由FPGA控制的圖像顯示單元。
由于采集、處理、顯示均要訪問存儲器,為了降低成本,用普通的異步SRAM" title="RAM">RAM構成。按照功能來分可分為采集處理用SRAM組和采集顯示用SRAM組,每組分別包括兩片SRAM,其讀寫邏輯由FPGA控制,采用乒乓方式進行切換。
對于采集處理部分,第K幀時,SRAM1由FPGA控制寫入圖像數據,同時SRAM2由DSP讀數進行處理;第K+1幀時則相反,SRAM2由FPGA控制寫入圖像數據,同時SRAM1由DSP讀數進行處理。
對于采集顯示部分,第K幀時,SRAM3由FPGA控制寫入圖像數據,同時SRAM4由FPGA讀數進行顯示;第K+1幀時則相反,SRAM4由FPGA控制寫入圖像數據,同時SRAM3由FPGA讀數進行顯示。
整個系統(tǒng)工作過程都是這樣的:其中圖像采集單元經由差分轉換芯片后變成LVTTL信號,直接連至FPGA,由FPGA控制數字圖像的采集,進行圖像預處理后,將圖像數據存儲在SRAM中,給DSP發(fā)出中斷信號,DSP響應中斷后,從SRAM中讀取一幀圖像數據后,進行圖像分割、目標提取、目標跟蹤算法,計算出方位和高度角偏差分量,將結果通過FPGA的片內的板間通信雙口RAM傳遞給主控模塊,主控模塊再調整伺服機構保證被跟蹤的目標處于視場中心。
主控模塊還可以將系統(tǒng)的一些狀態(tài)變量實時的通過板間通信雙口RAM傳給DSP,DSP根據這些狀態(tài)生成需要顯示的字符,將這些字符寫入到FPGA片內字符疊加雙口RAM中。FPGA讀取顯示RAM中的圖像數據和片內字符疊加雙口RAM內的數據,在原圖上疊加十字絲和波門,以及系統(tǒng)的一些狀態(tài)字符信息,按照PAL制式時序向DA芯片送視頻數據,這樣監(jiān)視器就可以輸出標準的PAL制式的圖像。
2 各個單元設計
2.1 基于Camera Link接口的圖像采集和預處理單元
Camera Link是一種基于視頻應用發(fā)展而來的接口,它解決了視頻數據輸出和采集之間的速度匹配問題。Camera Link數據的傳輸率非常高,可達1 Gb/s,采用了LVDS格式,抗噪性能好。Camera Link的信號包括三個部分:串行通信部分、相機控制部分、視頻信號部分,基于Camera Link接口的圖像采集單元詳圖見圖2,每個部分采用專門的差分轉換芯片。串行通信部分則將異步串口轉換成標準的RS 232電平,這樣可以由主控機對相機的曝光時間、對比度等設置進行調節(jié)。相機控制部分包括4對差分信號,用來對相機進行控制,比如相機的外同步信號輸入控制,可以由FPGA進行控制。視頻部分的28 b LVTTL信號是關鍵控制部分,它們直接接在FPGA上,由FPGA來控制采集的時序。
這28 b數據中包括3個數據端口:A口(8 b)、B口(8 b)、C口(8 b),和4個視頻控制信號FVAL(幀有效)、DVAL(數據有效)、LVAL(行有效)、SPARE(空,暫時未用)。至于經過Camera Link芯片轉換后的時鐘信號,則是整個相機的同步驅動信號,所有的數據和視頻控制信號都是和該時鐘信號同步的,相機的時序圖見圖3。
相機可以配置成8 b或10 b的輸出位寬,40 MHz像素時鐘或80 MHz像素時鐘,2×40 MHz或2×80 MHz的數據輸出速率。關于Camera Link的采集數據的邏輯代碼,關鍵之處在于產生存儲器的地址信號、存儲器寫信號以及在對應的地址處將數據穩(wěn)定地寫進存儲器。我們用像素時鐘產生列地址計數器,行同步信號產生行地址計數器,二者拼接產生存儲器的地址信號。這樣產生的有效地址雖然不連續(xù),但意義明確,而且有利于顯示部分的隔行隔列顯示。對于8 b的數據,可將4個有效數據拼接成32 b后再存儲,這樣可以降低FPGA讀寫存儲器的速度。
2.2 基于FPGA的圖像預處理單元
針對圖像預處理階段運算結構比較簡單的特點,用FPGA進行硬件實現(xiàn)無疑是理想的選擇,這樣同時兼顧了速度和靈活性,大大減輕了DSP的負擔。這里采用的預處理算法主要是中值濾波,中值濾波器是一種非線性濾波器,與均值濾波器和類似其他形式的濾波器相比,中值濾波器具有能夠徹底濾除尖波干擾噪聲同時又能夠較好地保護目標圖像邊緣等優(yōu)點。中值濾波的具體實現(xiàn)過程一般為:
(1)選擇一個n×n的滑動窗口(通常為3×3或者5×5),使其沿圖像數據的行或者列方向逐像素滑動(通常為從左至右,從上到下逐行移動)。
(2)每次滑動后,對窗口內的像素灰度值進行排序,用排序所得的中間值代替窗口中心位置像素的灰度值。
用硬件實現(xiàn)二維中值濾波,很重要的一點是能可靠地存儲實時圖像數據,并且使延時最短。在存儲n-1行圖像數據后便開始處理,其中n為窗口大小,在本設計中,選用3*3窗口的中值濾波器,即n=3。這樣設計的好處是,F(xiàn)PGA可以以串行流水方式實現(xiàn)該模塊,節(jié)省了許多時間,為實時處理創(chuàng)造了有利條件。
為了盡量節(jié)約資源,充分利用硬件設計中的“模塊復用”原則,需設計1個移位寄存器、1個dq寄存器、1個二值比較器,然后在像素時鐘的驅動下,首先調用移位寄存和dq寄存器產生窗口數據,然后對3×3模板里的數據多次調用dq寄存器和2值比較器進行冒泡排序輸出中間值。中值濾波模塊示意圖見圖4。
2.3 基于DSP的圖像處理單元
TMS320C6414芯片是一款高性能定點DSP處理器,其主頻可以高達720 MHz,片內具有豐富的RAM資源,同時通過EMIFA和EMIFB口可以擴展很多存儲芯片。這里主要擴展的是程序FLASH芯片,用于存放固化的程序代碼。
前面已經說明了FPGA如何控制SRAM讀寫邏輯的,DSP的主要工作是響應FPGA發(fā)出的中斷信號,讀取圖像數據進行處理,雖然每一幀讀取的實際的SRAM不同,但是通過FPGA的映射后,對于DSP來說,SRAM始終在DSP片外的一端固定地址范圍內。DSP響應中斷的流程圖見圖5。
以常用的最簡單的矩心跟蹤算法為例,DSP每次響應中斷后,主要進行的工作是:首先設定搜索的波門,將波門內的數據通過DMA方式快速搬移到片內存儲器,然后用矩心跟蹤算法進行處理,直至搜索出目標后,將目標的像素的位置偏差計算出來并送給主控板。
2.4 基于FPGA的圖像顯示單元
系統(tǒng)要求輸出標準的PAL制式的模擬視頻,由于PAL制式視頻場頻為50 Hz,幀頻為25 Hz,所以對于前端高分辨率高幀頻的數字圖像,必須降頻輸出,且分辨率也要降低。選用專用的圖像DA芯片ADV7123,該芯片輸入位寬為10 b,可以轉換的數據速率可達240 MHz。因為標準的PAL制式視頻一幀只能顯示有效行576行,對于1 024行的數據圖像只能隔行顯示512行,且奇場256行,偶場256行。所以對于采集的圖像來說行方向上是降低了分辨率,但在列的方向上不降低分辨率。
由前面可知,由于采集顯示采用乒乓結構,但是由于顯示是隔行抽點顯示的,且顯示的頻率幀頻為25 Hz,所以在采集部分時,應當隔行取數據存儲,且每2幀才更新一次采集的數據。不像采集處理部分一樣,每幀都要更新采集的數據。
控制ADV7123的時鐘信號、復合同步信號、復合消隱信號均由FPGA產生。與電視相關的行、場同步和消隱信號正是PAL制式模擬視頻信號生成的關鍵。
FPGA認通過對數字相機下來的80 MHz時鐘倍頻后,經過時鐘計數和邏輯組合運算獲得所需要的各種同。步時序信號。ADV7123的時鐘信號根據80 MHz時鐘先2倍頻后蔣5分頻而成,即像素時鐘頻率為32 MHz,周期為31.25 ns。生成的圖像大小為1 400×576像素,即每場圖像有288行,每行有1 400個像素點。系統(tǒng)采用PAL制式的隔行掃描方式,場周期時間為20 ms,行周期為64μs,所以每場包含312.5個行周期,但場消隱的高電平持續(xù)288個行周期,只要調整場消隱信號的起始位置,就很容易使視頻圖像的輸出位于屏幕的正中間。行場同步信號和消隱信號的實現(xiàn)思路基本上一樣:對時鐘計數,計到某一個數值時,使輸出的信號翻轉(由低電平到高電平或者由高電平到低電平),計數器的周期和翻轉的周期根據不同的參數而有所不同。由于這些時序是在FPGA中編程實現(xiàn),很容易調整和修改。
至于字符疊加過程,DSP按照在圖像上實際疊加字符的位置和大小將要疊加的字符點陣寫入到FPGA片內雙口RAM中(顯示字符的地方寫二進制的1,顯示圖像的地方寫二進制的0),顯示輸出的每一幀,F(xiàn)PGA讀取字符疊加雙口RAM,根據其值來決定是輸出采集的圖像還是輸出疊加字符。這樣通過DSP和FPGA的配合,可以靈活地疊加任何字符,DSP可以根據系統(tǒng)的任何狀態(tài)變化來改變字符疊加RAM中的值,因此保證系統(tǒng)具有良好的人機交互界面。
3 結語
以高性能DSP和FPGA為核心,對Camera Link接口的數字相機進行圖像采集,采用數字圖像處理技術,建立了一個實時的圖像跟蹤系統(tǒng)。該系統(tǒng)體積小、重量輕、可靠性高,具有良好的人機交互界面,已經成功地應用在實際項目中。