祝樹生,李晶,呂殿君,陳冉,仇公望
(1.中國運載火箭技術研究院研究發展中心,北京,100076;2.西安北方光電股份有限公司,陜西西安,710043)
基于VPX的多DSP+FPGA紅外圖像處理系統設計與實現
祝樹生1,李晶1,呂殿君1,陳冉2,仇公望1
(1.中國運載火箭技術研究院研究發展中心,北京,100076;2.西安北方光電股份有限公司,陜西西安,710043)
針對大面陣紅外圖像快速處理要求及模塊化設計原則,本文采用了4片TI公司的DSP和1片Virtex7 FPGA設計了一個多DSP的紅外圖像實時處理系統,試驗表明該系統適用于復雜圖像處理算法的計算和實時圖像中跟蹤目標的實時處理。
VPX;多DSP;紅外圖像處理系統
隨著精確制導導彈對紅外末制導系統性能要求的不斷提高,紅外導引頭的成像焦平面由早期的256×256逐步升級為640×512和512×512,并且圖像的處理周期也越來越高。
針對大面陣紅外焦平面圖像的高速處理要求,采用“規范化、標準化、通用化”的設計原則,選用目前最流行的VPX總線,設計了基于VPX總線的多DSP+FPGA架構的通用紅外圖像處理系統,不但能滿足導引頭紅外圖像處理實時性、大數據量要求,還可建立基于VPX標準的通用高速圖像處理平臺。
1.1 硬件設計
圖像處理系統采用基于VITA46標準的VPX模塊架構,以四片Ti公司C667x系列DSP和一片Xilinx公司7系列FPGA為核心節點。DSP處理器選用TI公司的TMS320C6678,該處理器有八個內核,最高主頻1.25GHz,DSP外接DDR3 SDRAM,位寬64bit,時鐘666.7MHz,容量2GB。兩片DSP通過Hyper Link接口互聯,每個DSP均設計一個千兆以太網接口。FPGA為Xilinx公司的XC7K325T,實現一個FMC接口,一個DDR3接口,一個SRIO 4×接口,一個PCIe 4×接口,兩個GTX 4×接口。板上通過IDT公司的SRIO交換片CPS-1848將四片6678和一片XC7K325T的SRIO互聯,并擴展六個SRIO 4×接口到VPX的P1連接器上。
處理系統的實現采用符合OpenVPX 6U平臺的標準板卡,滿足高帶寬高處理性能的需求。板卡原理框圖如圖 1所示。
1.2 目標識別
目標識別算法的輸入為紅外探測器實時成像的視頻數據和已裝訂的目標圖像信息。圖像匹配過程中,將目標圖像信息作為模板圖像,將實時成像的圖像作為搜索圖像。目標識別算法的輸出是在當前搜索圖像中,與模板圖像匹配度最高的子圖左上角所在的像素位置。
對于實時圖為640×512,采用基于歸一化互相關系數的方法實現目標求解。根據對探測目標的預測,選擇行數和列數覆蓋待識別目標的矩形區域作為模板圖像,矩形區域的分辨率可變,如圖 2所示。

圖 2 互相關圖像匹配的搜索圖及放大后的模板圖示意
設待識別的模板圖像大小為m×n,在640×512的搜索圖像中進行逐行逐列搜索匹配時,搜索圖像依次形成(640-m+1)×(512-n+1)個子圖,每個子圖尺寸為m×n。則第k個子圖X與模板圖Y的相關系數為:

式中,xij為搜索圖的子圖X中第i行、第j列像元的灰度值;yij為模板圖Y中第i行、第j列像元的灰度值。相關系數極大值對應子圖在搜索圖上的位置即為最佳匹配位置。

圖 1圖像處理板卡框圖
由公式可知,計算相關系數的運算量相當巨大,乘加運算次數與3×(640-m+1)×(512-n+1)×m×n成正比,開方次數運算與2×(640-m+1)×(512-n+1)成正比。由于本方案采用DSP作為運算平臺,開方運算較復雜,需要消耗大量的時鐘周期。根據C6678的運算能力,達不到對100Hz圖像實時處理的需求,因此還需要對算法加以優化和改進來減少運算量及復雜度。
為實現快速圖像計算,本方案采用以下措施來優化算法,以實現圖像相關匹配和目標識別。
(1)相關系數計算公式變換
將計算得到的rk值轉化為計算的值:

(2)圖像預處理
為搜索圖子圖像素灰度平方和,每個子圖都需重新計算,可采用事先計算基準圖像灰度平方和積分圖像來減少運算量。設H為搜索圖X對應的積分圖像,有:

H( i , j)即為搜索圖中每個像素點左上方全部區域內像素灰度值平方求和結果。對于每個子圖來說,計算程可以被 計 算 H ( i , j) ? H ( i ? m , j ) ? H ( i , j ? n ) + H ( i ? m , j ? n )來 代 替,(640-m+1)×(512-n+1)×m×n次運算被4×m×n次計算代替。
可見,經過事先預處理優化后,相關匹配的主要運算算量可大大減少。
(3)搜索策略優化
相關匹配的基本搜索策略是遍歷性搜索,即在搜索區域內逐行逐列每個像素位置上計算相關系數值。因此,使用改進搜索策略的方法,實現非遍歷性搜索,將大大減少相關匹配的運算量。
根據TMS320C6678DSP的特點,使用分層搜索,實現有效的非遍歷性搜索策略。該設計采用金字塔分解、逐級匹配的策略,通過2×2鄰域平均方法降分辨率生成下層分解圖像,如此逐層遞推,從而構成多級金字塔圖像。
假設已分解獲得k級金字塔圖像,搜索匹配時,首先在k層(分辨率最低)圖像中的所有位置上計算互相關系數,得到k層圖像的匹配位置。然后將k層圖像的匹配位置映射到k-1層圖像作為k-1層圖像的粗匹配位置。再在k-1層圖像的粗匹配位置和附近幾個位置(通常以粗匹配位置為中心的一個n×n區域)計算互相關系數,得到k-1層圖像的匹配位置。以此類推,一直到在0層圖像中找到匹配位置為止。顯然,只有k層圖像中的搜索匹配是在所有位置上遍歷進行的,而其它層的搜索匹配位置都相當少。同時,由于降分辨率的關系,k層圖像的大小只有原始圖像的1/4k,相應的運算量則只有原始的1/16k。本方案采用3級金字塔圖像進行初始粗匹配,每次精匹配在上一級粗匹配位置為中心的16×16區域計算相關系數。可實現運算量變為未改變搜索策略前的1/4096。
使用上述經過優化的算法,利用數幀實際成像結果,在上位機Matlab中進行算法仿真,在每幀圖像中求出與模板圖像相關匹配程度最高的子圖,以此子圖的左上角坐標為基準,以模板圖像大小在搜索圖(大圖)中使用矩形邊框標記目標匹配的位置如圖像分割和任務分配,DSP1的Core1~Core7及DSP2為從處理單元,根據主處理單元分配的任務完成相應處理。圖像匹配算法的主要處理流程如圖 4所示。
其中,DSP1的Core0為主處理單元,控制整個相關匹配的工作流程,接收到待處理的圖像數據后,首先對圖像進行預處理,包括圖像濾波去噪,旋轉、幾何校正等,并對圖像進行金字塔分解。然后將搜索圖(大圖)分解為從處理單元數整數倍個數據塊,并分配給從處理單元進行處理。從處理單元接收到任務后,完成指定的相關系數計算后,將結果送回給Core0,由Core0綜合所有的相關系數形成相關面,并求得最高峰所在位置即為匹配位置。每一級金字塔都如此操作,直至在原始圖像中獲得最終的匹配結果。圖 3所示。
可以看到,在Matlab算法仿真過程中,在多幀圖像中具有相同目標且目標位姿發生變化時,識別率高,位置準確。
為了實現實時處理實現歸一化互相關圖像匹配,經上述優化的算法還要結合多核并行處理的DSP運算方式進行專用設計。板卡上的4個DSP中分別用作主控調度、視頻壓縮和目標識別計算,DSP1和DSP2用作目標識別算法,DSP3和DSP4用作主控和視頻壓縮。在目標識別方面,把DSP1的Core0作為主處理單元,負責

圖 3圖像匹配算法Matlab仿真結果

圖 4 基于多DSP系統的目標識別流程
在任務分配給每個處理器核后,使用DSP特有的優化方式對運算過程作進一步優化。這部分的工作主要分為兩部分:一部分是充分利用DSP上集成的各種硬件加速器為匹配算法服務,充分發揮DSP的硬件結構優勢;另一部分為語言級的優化,即通過C語言或匯編語言對耗時最多的循環進行優化,進一步提高算法的實時效率。同時,由于C6678的C語言編譯器具有70%~80%的匯編語言級處理能力,所以通常采用基于C語言的優化方法就可以達到性能要求。
鑒于使用的相關匹配算法的特點是計算量和數據量都很大,對于DSP系統,片內RAM速度通常可以達到2.56 Gbit帶寬,并且可以隨機操作而不降低效率,但是容量只有64 k字節。而片外RAM容量很大,但是速度通常只有100~300 Mbit帶寬,隨機操作時效率將嚴重下降。這時,由于數據交換瓶頸,算法效率嚴重下降,浪費了DSP的計算能力。因此,必須優化算法的數據流結構,使得算法需求與硬件結構相吻合。采取先將基準圖和實時圖存儲于外部存儲,待計算時再將它們分塊搬入到片內RAM,這樣既可以合理地分配存儲區域,又能提高數據處理的效率。對于程序代碼也是相同的,將核心代碼及與實時性要求緊密相關的放在片內,以便獲得較高的代碼執行效率;而一般代碼及實時性要求不高的放在片外,節省片內存儲空間。
同時使用C6678的EDMA控制器來進行內存管理與控制,通過設置其控制寄存器和參數RAM,可以方便高效地實現圖像的填充、轉置、子圖截取、行列變換互相轉化等操作。
綜上可知,經過算法的優化及其針對多DSP平臺的移植與優化,可實現對100Hz紅外圖像的實時目標識別。利用歸一化互相關圖像匹配算法,在完成圖像匹配,計算出實時成像的紅外圖像中與待識別目標所在的模板圖相關度最高的子圖后,將此子圖的左上角坐標作為識別結果,輸出至通用處理器模塊和遙測采集模塊。實時解算結果如圖 5所示。

圖 5目標跟蹤實時解算圖
采用4片6678DSP芯片和1片Virtex7 FPGA實現的紅外圖像處理系統,通過圖像預處理和搜索策略的優化減少了實時處理的運算量,提高了目標識別、跟蹤速度,能夠滿足未來大視場紅外導引頭圖像實時計算要求,且該系統采用了基于VITA46.0標準的VPX接口,滿足了信號處理模塊通用性、小型化、低成本的要求。
[1]楊剛,向聰,袁子喬,趙博.基于TMS320C6678的ISAR實時成像方法研究[J].火控雷達技術,2015,44(2):449-454.
[2]葉偉,符廣平,周安.基于多DSP+FPGA圖像實時解碼系統的設計與實現[J].計算機與數字工程,2015,43(11):37-46.
[3]王風賀,楊乾,王剛.紅外圖像預處理設計及非均勻性算法應用[J].光電技術應用,2013,28(5):46-53.
[4]王勇,張平.高性能多DSP互聯技術[J].電子產品世界,2009(4):33-36.
[5]孫莉,吳順君,蘇濤.DSP并行系統設計方法研究[J].計算機應用研究 .2002(9):68-70.
Design and implementation of an infrared image processing system with multiple DSP+FPGA based on VPX
Zhu Shusheng1,Li Jing1,Chen Ran2,Lv Dianjun1,Qiu Gongwang1
(1.R&D Center,China Academy of Launch Vehicle Technology,Beijing,10076;2. Sicong Optoelectronic Company Limited,Xi’an Shaanxi,710043)
For the infrared image fast real-time processing system with large format and modular design principles,the paper desgins an infrared image real time system which has four pieces of TI’DSP and one Virtex7 FPGA.The experiment shows that this system is the same with complex image algorithm and real-time processing of target tracking.
VPX;multi-DSPs; a infrared image processing system
祝樹生(1984-),男,山西朔州人,工程師,主要從事電氣系統總體設計工作。