摘 要:針對紅外弱小目標檢測" title="目標檢測">目標檢測和跟蹤的實時性要求,基于法國Sofradir中波(3~5μm)紅外熱成像儀" title="紅外熱成像儀">紅外熱成像儀和英國Hunt Engineering的雙DSP管理板卡HEPC9、雙DSPC6201和雙FPGA搭建了一套實時紅外圖像" title="紅外圖像">紅外圖像處理系統(tǒng)" title="處理系統(tǒng)">處理系統(tǒng)。同時針對C6201微處理器成功地實現(xiàn)了弱小目標檢測和跟蹤程序的優(yōu)化和移植。系統(tǒng)測試表明,該系統(tǒng)可實時、有效地檢測跟蹤每秒50幀,每幀320×240像素,每像素14位的低信噪比的復雜序列圖像。
關鍵詞:紅外熱成像儀? 雙DSPC6201? 目標檢測與跟蹤
?
紅外弱小目標的檢測與跟蹤方法,是紅外搜索與跟蹤系統(tǒng)、精確制導系統(tǒng)、紅外預警系統(tǒng)、大視場目標監(jiān)視系統(tǒng)、衛(wèi)星遙感系統(tǒng)等的一項核心技術。焦平面紅外探測器具有極強的抗干擾能力,而且在作戰(zhàn)中不會產生各種輻射,隱蔽性好且適應能力強; 紅外成像可穿透煙霧,分辨率高,空間分辨能力更可達0.1毫弧度;紅外成像不受低空工作時地面和海面的多路徑效應影響,低空導引精度很高,可直接攻擊目標要害,具有多目標全景觀察、追蹤及目標識別能力,可整合微處理器實現(xiàn)對目標的熱成像智慧型化導引,具有良好的抗目標隱形能力。
然而在低信噪比條件下,尤其是針對實際情況下的各種背景干擾、人為干擾以及探測器低頻掃描噪聲和高頻探測噪聲所導致的低信噪比條件下,目標點極易被噪聲所淹沒,從而難以實現(xiàn)對弱小目標的可靠檢測和跟蹤。實際上,現(xiàn)有的弱小目標檢測和跟蹤算法[1~3]主要適用于信噪比較高的情況,而且普遍存在一個共同的致命弱點:計算量大、運行時間長,無法滿足實時處理的要求。因此,盡快研究出一套實用的弱小目標檢測與跟蹤的紅外圖像處理" title="圖像處理">圖像處理系統(tǒng)就成為一項亟待突破的關鍵技術。
針對上述問題,本文成功地研制了一種針對實際應用的紅外圖像處理系統(tǒng)。該系統(tǒng)基于法國Sofradir中波(3~5μm)紅外熱成像儀和英國Hunt Engineering的雙DSP 管理板卡HEPC9,雙DSPC6201和雙FPGA搭建了一套實時的紅外圖像處理系統(tǒng)。同時針對紅外弱小目標(大約2dB)檢測和跟蹤的實時性要求,基于C6201微處理器成功地實現(xiàn)了弱小目標檢測和跟蹤程序的移植和優(yōu)化,實現(xiàn)了高精度紅外圖像的實時采集、傳輸、處理和顯示,具有良好的性能和廣闊的應用前景。
1 硬件原理
硬件系統(tǒng)結構如圖1所示。為了確保構建的圖像處理系統(tǒng)可以達到原理樣機的要求,同時在實際條件又沒有合作飛機的前提下,將圖像處理系統(tǒng)的樣機功能分解為:高精度圖像的高速穩(wěn)定傳輸和實測數(shù)據(jù)的實時處理兩個部分。(1)針對Sofradir中波(3~5μm)紅外熱成像儀,基于HEPC9母卡的雙DSP管理功能,采用雙DSPTMSC6201實現(xiàn)對圖像的并行處理,提高運算性能。同時采用一個FPGA用于實現(xiàn)數(shù)據(jù)接收的時序和控制,其時序嚴格按照法國Sofradir中波紅外熱成像儀的實際時序(見圖4),以驗證系統(tǒng)的高速穩(wěn)定通信能力。(2)基于HEPC9母卡的雙DSP管理功能,采用雙DSPTMSC6201實現(xiàn)對圖像的并行處理,提高運算性能,同時采用雙FPGA系統(tǒng)。一個FPGA用于實現(xiàn)數(shù)據(jù)接收的時序和控制,其時序嚴格按照法國Sofradir中波(3~5μm)紅外熱成像儀的實際時序(見圖4);而另一個FPGA用于與調用硬盤中存儲的實際測試數(shù)據(jù)一起模擬實際的測量環(huán)境。為實現(xiàn)每秒50幀的處理能力,采用了具有可編程序的板卡HERON-FPGA3S,實現(xiàn)對真實環(huán)境和實測數(shù)據(jù)的有效測試。
?
該系統(tǒng)可廣泛地應用于實際測試圖像的后期處理和檢測跟蹤算法的實際性能考核,具有極大的試驗和測試功能。實時紅外圖像處理系統(tǒng)由三部分組成:
(1) 紅外成像儀
紅外成像儀采用法國SOFTDIR生產的紅外頭部以及美國CEDIP公司生產的后續(xù)處理板卡組成。紅外攝像儀具有兩個輸出端口和一個RS232控制端口。一個輸出端口為模擬的視頻輸出端口,可以使用監(jiān)視器進行圖像的實時觀察。另一個輸出端口是RS422平衡式差分數(shù)字信號輸出端口。RS232串行控制端口用來控制攝像頭的性能參數(shù),如:調節(jié)數(shù)字圖像的輸出速率(25幀/秒、50幀/秒和100幀/秒可選)、圖像的積分時間以及校正圖像以達到最佳的成像效果。
(2) 圖像的接收和處理模塊
紅外圖像的接收和處理板卡及芯片采用英國HUNT公司生產的板卡HEPC9和HERON-FPGA3S以及HERON4。HEPC9是一塊母卡,作為HUNT公司各種處理板卡的載體,采用環(huán)形的HEART總線來規(guī)劃各個模塊的通訊功能,通過PCI總線與主機通訊。HERON-FPGA3S是一塊FPGA板卡,用于解析紅外攝像儀的電平信號和接收紅外圖像數(shù)據(jù)。HERON4是TIC6201DSP板卡,負責對紅外弱小目標的檢測和識別。另外還需要一個由多個MC3486組成的板卡模塊將紅外攝像儀的RS422差分信號轉換為TTL單端信號。
(3) 系統(tǒng)控制和顯示模塊
整個系統(tǒng)的控制和顯示部分由PC機完成,這里使用ADLINK公司的工控機PENTIUM Ⅲ 866,內存128MB。
2 各子模塊具體實現(xiàn)
2.1 Hunt Engineering 產品簡介[8]
(1)母卡HEPC9
HEPC9是一個可以集成4個HERON模塊的主板卡,各個模塊之間的連接關系是可編程的,具體由network文件規(guī)定。母卡具有6個32bit的同步虛擬輸入FIFO,6個32bit的同步虛擬輸出FIFO,模塊之間通過這些虛擬的FIFO進行連接。虛擬FIFO是母卡中環(huán)形HEART總線的一部分,如圖2所示,通過令牌環(huán)(標志位)的設置分配數(shù)據(jù)的傳輸帶寬和時間片,這部分功能對于用戶是透明的。每個FIFO的同步時鐘可以達到60M~100MHz,使FIFO的輸入輸出速度可以達到4×100MBps。
?
(2)HERON-FPGA3S
HERON-FPGA3S可編程邏輯芯片在系統(tǒng)中用于接收紅外攝像儀圖像數(shù)據(jù),并具有存儲功能。具有200K門,最大時鐘頻率可達180MHz,I/O帶寬達400MBps。
(3)HERON4-DSPC6201
這是一塊基于TI公司TIC6201DSP的HERON系列的板卡,具有200MHz主頻的16位定點DSP,采用哈佛結構,具有64KB的片內程序存儲器PROM和64KB的片內數(shù)據(jù)存儲器IDRAM。HERON4-DSP板卡增加了512KB的片外突發(fā)存儲器SBSRAM和16MB的片外動態(tài)數(shù)據(jù)存儲器SDRAM。DSP具有八條流水線,可以使指令并行執(zhí)行,這對于大數(shù)據(jù)量的圖像處理非常重要。
2.2 系統(tǒng)的邏輯構成
實時紅外圖像處理系統(tǒng)在邏輯上要完成一個完整的數(shù)據(jù)傳輸、處理、顯示過程。其邏輯構成如圖3所示。
?
母卡通過編寫network文件下載到母卡的存儲器中,修改特定的標志寄存器,實現(xiàn)拓撲連接方式。這里的兩片DSP采用流水線處理方式,即兩者協(xié)同完成同一圖像處理工作的先后兩部分,以提高處理速度。在一些情況下,也可以將兩塊DSP描采取并行處理的方式,即兩塊DSP同時處理不同的數(shù)據(jù)。
(1)FPGA圖像數(shù)據(jù)的采集模塊
紅外攝像儀的邏輯時序如圖4所示。圖中:幀控信號FRAME高電平有效,在FRAME信號上升沿后出現(xiàn)第一幀數(shù)據(jù)時鐘;行控信號LINE_VALID上升沿有效,在其上升沿后每行數(shù)據(jù)有效,則時鐘信號CLOCK上升沿像素信息有效;數(shù)據(jù)信號PIXEL_DATA共有14對數(shù)據(jù)線,產生14位數(shù)據(jù),每行有320個時鐘,每幀有240行,一幀總共具有320×240=76 800個14bit的有效像素信息。
(2) DSP數(shù)字圖像處理模塊
這是整個系統(tǒng)的核心模塊,其功能是利用采集到的圖像數(shù)據(jù)進行數(shù)字圖像的處理。
利用HUNT公司的嵌入式模塊“Create New HREON-API project”,可以建立一個完整的基于以上硬件結構的系統(tǒng)程序框架。該軟件框架基于TIDSP的DSP/BIOS結構,是一種小型的嵌入式實時操作系統(tǒng),可以對DSP系統(tǒng)的各種資源(如內存、信號量等)進行規(guī)劃管理。本系統(tǒng)中DSP圖像處理模塊的整體框圖如圖5所示。
?
通過FPGA上的標志寄存器協(xié)調DSP和FPGA之間的通訊,在準備接收圖像數(shù)據(jù)之前,清空接收FIFO,然后通過串口HSB使能FPGA的發(fā)送允許標志位通知FPGA發(fā)送數(shù)據(jù)。在接收圖像到幀存之后,同樣通過HSB設置這個標志使FPGA停止發(fā)送。
(3)主機控制顯示模塊
這部分是運行于PC機上的程序。其作用是完成整個系統(tǒng)的控制模塊和顯示模塊功能。
紅外攝像儀所拍攝的數(shù)字圖像具有14位的像素精度,雖然是有利于圖像處理精度,但由于無法在一般的顯卡上顯示超過256級灰度的灰度圖像,因此有必要采用先灰度均衡再線性映射的方法,將14位的高精度圖像壓縮為8位的灰度圖來顯示,以達到人機界面顯示的功能。
3 弱小目標檢測跟蹤及在DSP上的實現(xiàn)
紅外序列圖像中運動的弱小目標的檢測算法包括形態(tài)學濾波和能量特征匹配兩部分,即基于能量特征的弱小目標檢測方法。同時還包括利用數(shù)據(jù)關聯(lián)進行多幀積累實現(xiàn)的序列圖像跟蹤,從而實現(xiàn)了對低信噪比的復雜序列圖像的實時、有效的檢測和跟蹤[4]。
在實時紅外圖像處理系統(tǒng)中,由于圖像數(shù)據(jù)量大,數(shù)據(jù)間相關性高,需要滿足嚴格的實時性要求,因此需要對圖像處理算法及程序進行基于數(shù)字信號處理器(DSP)的優(yōu)化編程,從而大大提高算法的運行速度,來滿足系統(tǒng)的實時性能。TI公司的C6x系列DSP[5],具有很高的運算速度和良好的優(yōu)化結構,完全可以滿足圖像的實時處理要求。
3.1 算法結構的優(yōu)化
算法結構的優(yōu)化方法針對具體的處理算法具有特殊性,這部分的優(yōu)化與DSP的結構沒有關系,優(yōu)化的目的是使算法本身具有良好的時間空間復雜度和簡單的邏輯結構。如在圖像處理中,通常要實現(xiàn)一個NX-N的二維數(shù)字濾波。在不做任何優(yōu)化的情況下,得到一個結果要進行N2+l次內存讀寫,內存操作耗時長,需要占用專用的功能單元,因而成為功能提高的瓶頸。因此通常對該二維模板進行線形化,即先對源圖進行一個N×1的一維濾波,再對中間結果圖也進行N×1的一維濾波,從而得到最終的結果圖。這樣只需要進行 2(N+1)次內存讀寫操作就可以得到一個結果。當N比較大時(如11×11高斯平滑),程序的性能有明顯提高。
3.2 DSP程序的結構優(yōu)化
DSP的內部結構具有特殊性,如果程序的編寫能夠在一定程度上與DSP的結構相適應,利用C編譯器的優(yōu)化功能就可以在程序級的基礎上大大提高算法的性能[4~8]。具體如下:
?(1) 盡量使用int 類型中間變量
在圖像處理程序中,數(shù)據(jù)通常為8bit的變量,而C6XDSP的內部寄存器和數(shù)據(jù)通道為32bit,在圖像處理的濾波、卷積等過程中,需要較多的中間變量,如果采用8bit的中間變量存儲方式,勢必迫使編譯器使用額外的數(shù)據(jù)調整指令,因此采用32bit的中間變量具有最好的效率。
?(2) 使用移位代替除法運算
①DSP中的移位運算具有硬件支持,由一條指令完成,而除法運算使用程序實現(xiàn),比較復雜耗時。
②DSP的浮點運算往往采用調用子函數(shù)方法,效率低,編譯器無法進行軟件流水優(yōu)化,而采用移位運算可以代替一些定值的浮點運算,如:
for(I=0;I<1000;I++)???????? ?for(I=0;I<1000;I++)
{??????????????????????? ??{
?b+=35*0.325;????????????? ?b+=((35*333)>>10);
}??????????????????????? ??}
以上兩條程序完成同樣的功能,但是第一條含有浮點數(shù)的乘法,運行時間為222 775;第二條只有定點數(shù)的乘法和移位運算,運行時間僅為881,可見效率差距非常大。
?(3) 使用C6x內聯(lián)函數(shù)
C6x編譯器內部提供了許多指令,可以在單周期內完成許多復雜的函數(shù)功能,從而提高了代碼的運行速度。如:
?“飽和加法”:
int sadd(int a, int b)
{
int result;
result = a + b;
if (((a ^ b) & 0x80000000) == 0)
{
if ((result ^ a) & 0x80000000)
{
result = (a < 0) ? 0x80000000 : 0x7fffffff;
}
}
return (result);
}
這樣一個復雜的算法可以用一條內聯(lián)函數(shù)_sadd( a,b)實現(xiàn)。
?(4) 使用32bit數(shù)據(jù)類型訪問16bit數(shù)據(jù)
由于C6x系列DSP具有32位的寄存器和內部通道,在操作16bit的數(shù)據(jù)如short類型時,往往浪費一半的寄存器空間和通道帶寬。為了充分利用這些資源,編譯器設置了一些內聯(lián)函數(shù)同時對兩個16bit的數(shù)據(jù)進行操作,如_add2、_sub2。
short in1[]、 short in2[] 是兩個short類型的數(shù)組,具有N項,以下是將兩者對應項相加的操作。
for (i = 0; i < (N/2); i++)
_amem4(&sum[i]) = add2(_amem4_const(&in1[i]), _amem4_const(&in2[i]));
程序中,_amem4_const、_amem4將in1、in2和sum進行了32bit的對齊操作,然后同時進行兩個short數(shù)據(jù)的加法運算和讀取存儲運算,從而提高了運算效率。
?(5) 使用restrict關鍵字消除內存關聯(lián)
為提高代碼效率,C6x編譯器總是盡可能多地安排指令并行,而指令能否并行取決于指令之間的相關性。對于編譯器而言,內存讀寫指令之間是否獨立是很難判斷的,如下列程序:
void vecsum(short *sum, short *in1, short *in2, unsigned int N)
{
int i;
for (i = 0; i < N; i++)
sum[i] = in1[i] + in2[i];
}
程序中,sum的存儲對于in1、in2的讀取地址產生影響,只有等到sum存儲完畢以后,才可以再次進行in1、in2的讀取操作。這個問題叫做“別名問題”,因為sum可能和in1是一個地址,使其無法將讀取數(shù)據(jù)和寫結果的操作并行起來。
為了讓編譯器放心地將讀取源數(shù)據(jù)和寫結果數(shù)據(jù)兩者并行操作,可以利用restrict變量申明當前數(shù)組名(或指針)是指向這段內存的惟一變量,如下列程序所示:
void vecsum(short *sum, short * restrict? in1, short * restrict in2, unsigned int N)
{
int i;
for (i = 0; i < N; i++)
sum[i] = in1[i] + in2[i];
}
這樣就可以消除以上的內存相關性,提高流水線效率。
?(6) 軟件流水優(yōu)化
在程序的優(yōu)化中,循環(huán)部分往往是最耗時的步驟,軟件流水就是一種用來優(yōu)化循環(huán)步驟的,使其循環(huán)內部的指令盡可能地并行執(zhí)行。在C6201編譯器中選擇-o2或者-o3開關就可以打開編譯器的軟件流水優(yōu)化功能。
形成軟件流水的有效方法:在編譯器選項中選定了-o2或者-o3選項,編譯器就可以自動作出軟件流水的優(yōu)化。形成高效的軟件流水,可以使用MUST_ITERATE給定循環(huán)變量信息和循環(huán)展開。形成軟件流水應避免:①軟件流水優(yōu)化只在最內層循環(huán)進行。②循環(huán)體內部代碼太多。③循環(huán)體內部代碼太復雜。
在定點DSP中,浮點數(shù)的運算都是用子函數(shù)軟件實現(xiàn)的,所以在定點DSP的程序循環(huán)中,如果由浮點數(shù)運算,就無法形成軟件流水。解決的方法是手工進行浮點數(shù)的定標工作。對于已經確定操作數(shù)的浮點運算,如果運算結果可以是整數(shù),就可以使用乘法加移位的方法實現(xiàn)乘除運算。如35×0.25可以轉化成(35×1)>>2。
4 系統(tǒng)測試
本實驗采用法國Sofradir中波熱成像儀采集到的320×240像素6733幀8位真實紅外對空序列圖像,截取其中的100幀數(shù)據(jù)驗證能量匹配濾波檢測與數(shù)據(jù)關聯(lián)跟蹤算法的適用性。由于目標很遠,此時的信噪比小于2,屬于典型的強雜波環(huán)境下的弱小目標檢測問題。實拍紅外圖像的顯示如圖6所示。
?
本文介紹的系統(tǒng)成功實現(xiàn)了弱小目標檢測和跟蹤程序的移植和優(yōu)化。針對紅外弱小目標檢測和跟蹤的實時測試表明:該系統(tǒng)實時和有效檢測跟蹤了每秒50幀,每幀320×240像素,每像素14位的低信噪比的復雜序列圖像。
參考文獻
[1]?BRUNO M S, MOURA J F. Multiframe detector/tracker:optimal performance, IEEE Trans. AES, 2001,37(3):925.
[2] ?TZANNES A P, BROOKS D H. Point target detection in?IR image sequences: A hypothesis testing approach based?on target and clutter temporal profile modeling. Optical?Engineering, 2000,38(2):2270-2278.
[3] ?TZANNES A P, BROOKS D H. Detecting small moving?objects using temporal hypothesis testing. IEEE Trans.
?AES, 2002,38(2):570-585.
[4] ?田元,葉秀清.實時圖像處理中的DSP優(yōu)化編程,電子技術,2000,(10):43-46.
[5] ?Texas Instruments Incorporated.TMS320C6000 Programmer’s?Guide, 2001.
[6] ?Texas Instruments Incorporated. TMS320C6000 optimizing?compiler user’s guide, 2001.
[7] ?徐盛. TMS320C6201數(shù)字信號處理器在圖像處理中的應用.電子技術應用,1999,25(1).
[8] ?WAMES P. Hunt Engineering Incorporated. Developing a?complex real time system with HERON and HEART Rev1.0.?2002.