廖延娜, 胡雪敏, 吳成茂
(1.西安郵電大學 理學院, 陜西 西安 710121; 2.西安郵電大學 電子工程學院, 陜西 西安 710121)
紅外小目標的檢測與跟蹤是作戰(zhàn)預(yù)警和和精確制導的關(guān)鍵。在盡可能遠的距離上對紅外小目標實施精準檢測與跟蹤,能夠為后續(xù)主動攻擊贏取更多的反應(yīng)時間。但紅外小目標距離成像器越遠,面積和亮度越小,形狀和紋理特征越微弱,就越容易受到系統(tǒng)和背景噪聲的干擾。在天空、陸地、海天三種戰(zhàn)區(qū)環(huán)境中,海天環(huán)境的背景噪聲最為復(fù)雜,大氣輻射,海面雜波,以及該環(huán)境下特有的海天線現(xiàn)象都會對紅外小目標的識別產(chǎn)生影響。
傳統(tǒng)的基于濾波[1-3]和基于圖像分割[4-5]的紅外點目標檢測方法都需要對圖像進行預(yù)處理,目的是剔除背景噪聲,提高目標信噪比,但在預(yù)處理的過程中可能會將小目標連同背景一同剔除或者使得小目標的特征信息更加微弱,從而產(chǎn)生漏檢情況,這在軍事戰(zhàn)爭中可能會產(chǎn)生嚴重的后果?;谀J阶R別理論的目標檢測方法由于不需要預(yù)處理就能實現(xiàn)目標檢測,已被成功地應(yīng)用于紅外小目標的檢測與跟蹤領(lǐng)域[6-7]。
非線性子空間方法是模式識別理論的一個分支,其中的核主成分分析(kernel principal component analysis, KPCA)算法[8]已被成功地應(yīng)用于紅外小目標的檢測中[9],該算法檢測紅外小目標的過程是首先用核函數(shù)將原始低維空間的訓練樣本升維到高維空間,在高維空間中利用核技巧計算出高維訓練樣本的協(xié)方差矩陣;其次對求得的協(xié)方差矩陣進行奇異值分解,得到所有的特征值和特征向量,選出大于平均值的特征值所對應(yīng)的特征向量作為紅外小目標的主元向量,即紅外小目標模型;最后在整幅紅外圖像上尋找與目標模式最為匹配的候選區(qū)域,該候選區(qū)域就是目標的位置區(qū)域。由于在整幅紅外圖像上尋找與目標模式匹配的候選區(qū)域時,需要遍歷圖像中的每個像素,因此檢測過程用時較長[10];同時,在進行模式匹配的過程中,每個候選區(qū)域在提取出的紅外小目標主元向量上進行投影時,都要計算其與每個訓練樣本的核函數(shù)值。為了確保檢測算法的精確性通常需要大量的訓練樣本,導致算法復(fù)雜度較高,運行時間較長[11]。進行目標檢測時,基于KPCA的紅外小目標檢測方法識別速度不高,實時性較低。
基于卡爾曼濾波(Kalman filtering, KF)[12-13]的目標跟蹤方法是一種利用目標的運動特征預(yù)測目標在每一幀中位置的方法。該方法將目標狀態(tài)方程和觀測方程進行修正,得到一組與目標狀態(tài)相關(guān)的方程,對這組方程不斷進行迭代,即可得到目標在每幀中的狀態(tài)信息。這些狀態(tài)信息包括目標的位置、速度等信息。該方法不需要遍歷每幀圖像的每個像素,僅通過一組公式的迭代計算就可得到每幀圖像中目標的估計位置,算法復(fù)雜度低,跟蹤時長較短。同時,卡爾曼迭代公式在給出每幀中目標的估計位置時,還根據(jù)這組迭代公式中預(yù)測誤差的協(xié)方差矩陣,計算出估計位置的誤差值。每幀圖像對應(yīng)目標的位置必定處于目標的估計位置和該估計位置的誤差值所界定的范圍內(nèi)。稀疏核主成分分析(sparse kernel principal component analysis, SKPCA)[14-15]算法與核主成分分析算法的不同之處在于,SKPCA算法先給所有正常訓練樣本進行加權(quán),通過極大似然原理保留少數(shù)權(quán)值較大的樣本(這些訓練樣本對目標模型的貢獻更大),稀化了樣本數(shù)據(jù),再根據(jù)稀化后的樣本建立紅外小目標的KPCA模型,與直接使用所有訓練樣本建立的KPCA模型相比,計算量較小。
為了在確保檢測精確性的前提下提高識別速度,本文擬提出一種基于稀疏核主成分分析結(jié)合卡爾曼濾波的紅外小目標檢測與跟蹤方法。首先在當前幀幅中應(yīng)用卡爾曼濾波器,預(yù)測出下一幀中目標可能出現(xiàn)的估計位置,并結(jié)合預(yù)測誤差協(xié)方差矩陣給出每一幀中目標可能出現(xiàn)的范圍,然后,在目標可能出現(xiàn)的范圍內(nèi),使用SKPCA檢測算法,將檢測算法的檢測結(jié)果作為最終目標位置進行輸出。
設(shè)低維空間的一組向量X=[x1,x2,…,xm],非線性映射函數(shù)φ:xi→φ(xi),該函數(shù)可將向量組X映射到核空間V中[14],即
Φ=[φ(x1),φ(x2),…,φ(xm)]。
假設(shè)Φ服從高斯分布模型,定義協(xié)方差矩陣
(1)
其中,σ2是高維空間中各向同性的噪聲成分的誤差方差值,I是單位矩陣,ω1,ω2,…,ωm是可調(diào)權(quán)值,W是由ωi構(gòu)成的權(quán)值矩陣。在理想情況下,似然最大化該模型,可得到σ2=0,所有權(quán)值ωi=1/m。假設(shè)此時的協(xié)方差矩陣
如果σ2為某確定常數(shù),則僅僅需要優(yōu)化權(quán)值ωi。在這種情況下,許多ωi的最大似然估計均為0,則可得到Cv的稀化表示。若φ(xi)是任意向量,則可以得到一個概率主成分。若Sv的特征值為λi,則對應(yīng)的特征向量為ui。在該模型下,利用φ(xi)=ui和ωi=(λi-σ2)1/2最大化似然,當λi≥σi時,ωi=0,對于任意的i,λi≥σi。
對式(1)的行列式取對數(shù),可得
(2)
lg |σ2I+ΦTWΦ|=Dlgσ2+lg |W-1+σ-2ΦΦT|+lg |W|。
(3)
其中,D是向量φ(xi)的維數(shù),只在式(3)第一項出現(xiàn),且σ2是一個常數(shù),故式(3)第一項不影響對數(shù)似然最大化過程??紤]到式(3)中的ΦΦT可以由一個核函數(shù)矩陣K替換,其中Kij=k(xi,xj),則
W-1+σ-2ΦΦT=W-1+σ-2K。
因此
其中,kn=[k(xn,x1),k(xn,x2),…,k(xn,xn)]T。
為了優(yōu)化權(quán)值,對式(2)中的每個ωi求偏導,得到
(4)
其中,uni為列向量un中第i個元素,Hii是矩陣H對角線上第i元素。
矩陣H和列向量un分別定義為
H=(W-1+σ-2K)-1,un=σ-2Hkn。
(5)
參考關(guān)聯(lián)向量機[16]的方法,可以得到一個比式(5)收斂更快的權(quán)值迭代表示式
(6)
(7)
(8)
(9)
(10)
卡爾曼濾波(Kalman filtering)一種利用線性系統(tǒng)狀態(tài)方程,通過系統(tǒng)輸入輸出觀測數(shù)據(jù),對系統(tǒng)狀態(tài)進行最優(yōu)估計的算法,狀態(tài)方程和觀測方程[12]分別為
Mk=Ak-1Mk-1+Uk-1,Yk=CkMk+Vk。
其中,Ak-1是系統(tǒng)k-1時刻的狀態(tài)轉(zhuǎn)移矩陣,Ck是系統(tǒng)k時刻的觀測矩陣,系統(tǒng)噪聲{Uk}和觀測噪聲{Vk}是互不相關(guān)的白噪聲序列,且Uk∈(0,Rk),Vk∈(0,Qk)。對狀態(tài)方程和觀測方程進行修正,可以得到一組卡爾曼遞推公式
(11)
假設(shè)有m幅紅外小目標訓練樣本圖像,即局部目標圖像,將其轉(zhuǎn)化為d×d維的8位圖像灰度矩陣{P1,P2,…,Pm},再將每個灰度矩陣按行首尾相接,分別轉(zhuǎn)換成d2維列向量,并構(gòu)成X=[x1,x2,…,xm]。通過φ函數(shù)將X映射到核空間V中
Φ=[φ(x1),φ(x2),…,φ(xm)]。
Φ的維數(shù)為d2×m。φ(xi)在高維空間的向量內(nèi)積
〈φ(xi)·φ(xi)〉=φ(xi)[φ(xi)]T=k(xi,xi)。
(12)
其中,σ2為一個常數(shù),核函數(shù)k選為高斯核函數(shù),即
定義核函數(shù)矩陣K,其元素Kij=k(xi,xj)(i,j=1,2,…,m)。在高維空間中所有映射數(shù)據(jù)含權(quán)值ωi的協(xié)方差矩陣為
(13)
則φ(xi)的概率密度為
(14)
對式(14)取對數(shù)并對所有φ(xi)求和,可得
(15)
根據(jù)極大似然定理,對式(15)中每一個權(quán)值求導,并令各權(quán)值導數(shù)均為0,可得權(quán)值迭代式為
(16)
反復(fù)迭代式(16),得到第i個權(quán)值ωi,利用同樣的方法可以得到所有的m個權(quán)值。只保留權(quán)值不為零的映射數(shù)據(jù)作為建模數(shù)據(jù),即完成了樣本的稀化訓練。假設(shè)稀化后的樣本數(shù)為t,設(shè)為
Ψ=[φ(x1),φ(x2),…,φ(xt)]。
(17)
(18)
(19)
在進行紅外小目標跟蹤時,令狀態(tài)向量
目標的狀態(tài)轉(zhuǎn)移矩陣
其中的T為兩幀之間的間隔時間。
觀測矩陣
綜合考慮目標的機動性,以及攝像系統(tǒng)的抖動因素,卡爾曼濾波的系統(tǒng)噪聲和觀測噪聲協(xié)方差矩陣分別給定為Rk=Qk=25Ik。為了簡化,初始誤差協(xié)方差矩陣取P2=I4×4。首先,使用SKPCA檢測算法得到目標在前兩幀中的位置(x1,y1)和(x2,y2)然后,使用前兩幀位置坐標對卡爾曼濾波方法進行初始化,構(gòu)建目標的初始狀態(tài)向量
將M2和P2代入式(11)進行反復(fù)迭代,可得到第k幀中紅外小目標的估計位置(xk,yk)和Pk。
SKPCA-KF的跟蹤過程如下。
步驟1在第一幀和第二幀圖像中使用SKPCA進行檢測,將檢測結(jié)果作為最終結(jié)果輸出,并記錄下檢測到的目標位置(x1,y1)和(x2,y2)。
步驟2利用步驟1記錄的位置數(shù)據(jù)作為卡爾曼濾波的初始條件,開始卡爾曼預(yù)測。
步驟4在步驟3給出的范圍中使用SKPCA算法進行檢測,并將檢測結(jié)果作為最終結(jié)果輸出。
步驟5令k=k+1,將步驟4中的結(jié)果作為第k幀的觀測數(shù)據(jù),并返回步驟3。
實驗選取大小為275×245的60幀海天背景紅外圖像序列,作為待測試圖像序列。使用GIM[17]仿真數(shù)學模型隨機生成121個大小均為11×11的紅外小目標訓練圖像。
使用SKPCA-KF,每間隔20幀輸出一次計算結(jié)果,如圖2所示。
圖2 SKPCA-KF輸出結(jié)果
在圖2中,虛線框表示KALM跟蹤算法預(yù)測出的目標可能出現(xiàn)的范圍,實線框是SKPCA檢測算法輸出的最終檢測結(jié)果。圖2中(e)、(f)、(g)、(h)為對應(yīng)檢測結(jié)果曲面圖,曲面圖中峰值所在位置即為紅外小目標所在位置。
由圖2可見,SKPCA-KF在目標所處位置有較大的輸出,在背景處幾乎沒有響應(yīng),表明了該方法檢測紅外小目標的有效性。從第20、40、60幀的跟蹤結(jié)果可以看出,卡爾曼濾波算法所給出的跟蹤結(jié)果,即虛線框的中心位置,并不在小目標的中心位置處,甚至偏離程度很大,說明僅僅依靠小目標的運動特征預(yù)測其位置的方法并不是十分準確。在該虛線框的范圍內(nèi)再次使用SKPCA檢測算法就能夠比較精確的給出目標位置。
為了更直觀的比較KPCA和SKPCA-KF兩種方法檢測紅外小目標的性能,分別使用信噪比(signal-to-noise ratio,SNR)、信噪比增益(signal-to-noise ratio gain,SNRG)、背景抑制因子(background suppression factor,BSF)[18]三個經(jīng)常被用來衡量紅外小目標檢測性能的評價指標。KPCA和SKPCA-KF算法對應(yīng)的平均檢測結(jié)果,如表1所示。
表1 KPCA和SKPCA-KF算法的平均檢測結(jié)果
表1給出的是KPCA和SKPCA-KF兩種檢測算法在60幀圖像上的平均檢測指標。從中可以看出,兩種檢測算法的三個指標值都非常接近,主要原因是SKPCA算法對每個訓練樣本進行加權(quán)處理,通過極大似然原理保留下少數(shù)權(quán)值較大的訓練樣本,這些樣本基本能夠代表全部樣本的特征信息。
為了驗證SKPCA-KF方法在識別速度上的優(yōu)勢,分別使用KPCA和SKPCA-KF兩種方法進行測試,同時記錄在每幀圖像上兩種方法的識別時間,并進行對比,KPCA和SKPCA-KF的平均檢測時間,其結(jié)果如表2所示。
表2 KPCA和SKPCA-KALM的平均檢測時間
從表2中可以看出,SKPCA-KF算法平均每幀的檢測時間比KPCA算法小一個數(shù)量級以上。SKPCA-KF算法速度較快有兩個主要原因:其一是卡爾曼濾波使用圖像中小目標的運動信息將待檢測圖像區(qū)域從整副圖像縮小到一個小的矩形框,SKPCA只需在該矩形框范圍進行檢測,避免了直接檢測整副圖像,所以減少了檢測時間。其二是KPCA算法使用了全部121個訓練樣本作為建模數(shù)據(jù),而采用SKPCA方法將一部分對目標特征貢獻不大的樣本,通過稀疏方式去掉,僅剩余71個訓練樣本作為建模數(shù)據(jù),大大簡化了核矩陣的計算量,因此也縮短了檢測時間。
為了提高海天背景下KPCA算法檢測紅外小目標識別速率,提出一種新的SKPCA-KF紅外小目標檢測與跟蹤的方法。該算法使用卡爾曼濾波算法將每一幀中目標可能出現(xiàn)的范圍從整幅圖像縮小到一個較小的矩形范圍內(nèi),并在該范圍內(nèi)使用SKPCA檢測算法進行檢測,得到目標位置。由于避免了對整幀圖像直接使用檢測算法,從而降低了檢測時間;另外,由于SKPCA檢測算法的原理是將所有訓練樣本中對目標模型的構(gòu)建貢獻相對較大的樣本保留下來,因此,相比于KPCA算法來說不僅沒有降低檢測精確性,而且訓練樣本的減少也降低了運算復(fù)雜性,縮短了檢測時間。在海天背景的紅外圖像序列上的測試結(jié)果表明,卡爾曼濾波結(jié)合稀疏核主成分分析算法的平均檢測時間是核主成分分析算法的0.03倍,在保證檢測精度的前提下,提高了識別速度。