海天背景下的红外小目标检测与跟踪
2019-01-21廖延娜胡雪敏吴成茂
廖延娜, 胡雪敏, 吴成茂
(1.西安邮电大学 理学院, 陕西 西安 710121; 2.西安邮电大学 电子工程学院, 陕西 西安 710121)
红外小目标的检测与跟踪是作战预警和和精确制导的关键。在尽可能远的距离上对红外小目标实施精准检测与跟踪,能够为后续主动攻击赢取更多的反应时间。但红外小目标距离成像器越远,面积和亮度越小,形状和纹理特征越微弱,就越容易受到系统和背景噪声的干扰。在天空、陆地、海天三种战区环境中,海天环境的背景噪声最为复杂,大气辐射,海面杂波,以及该环境下特有的海天线现象都会对红外小目标的识别产生影响。
传统的基于滤波[1-3]和基于图像分割[4-5]的红外点目标检测方法都需要对图像进行预处理,目的是剔除背景噪声,提高目标信噪比,但在预处理的过程中可能会将小目标连同背景一同剔除或者使得小目标的特征信息更加微弱,从而产生漏检情况,这在军事战争中可能会产生严重的后果。基于模式识别理论的目标检测方法由于不需要预处理就能实现目标检测,已被成功地应用于红外小目标的检测与跟踪领域[6-7]。
非线性子空间方法是模式识别理论的一个分支,其中的核主成分分析(kernel principal component analysis, KPCA)算法[8]已被成功地应用于红外小目标的检测中[9],该算法检测红外小目标的过程是首先用核函数将原始低维空间的训练样本升维到高维空间,在高维空间中利用核技巧计算出高维训练样本的协方差矩阵;其次对求得的协方差矩阵进行奇异值分解,得到所有的特征值和特征向量,选出大于平均值的特征值所对应的特征向量作为红外小目标的主元向量,即红外小目标模型;最后在整幅红外图像上寻找与目标模式最为匹配的候选区域,该候选区域就是目标的位置区域。由于在整幅红外图像上寻找与目标模式匹配的候选区域时,需要遍历图像中的每个像素,因此检测过程用时较长[10];同时,在进行模式匹配的过程中,每个候选区域在提取出的红外小目标主元向量上进行投影时,都要计算其与每个训练样本的核函数值。为了确保检测算法的精确性通常需要大量的训练样本,导致算法复杂度较高,运行时间较长[11]。进行目标检测时,基于KPCA的红外小目标检测方法识别速度不高,实时性较低。
基于卡尔曼滤波(Kalman filtering, KF)[12-13]的目标跟踪方法是一种利用目标的运动特征预测目标在每一帧中位置的方法。该方法将目标状态方程和观测方程进行修正,得到一组与目标状态相关的方程,对这组方程不断进行迭代,即可得到目标在每帧中的状态信息。这些状态信息包括目标的位置、速度等信息。该方法不需要遍历每帧图像的每个像素,仅通过一组公式的迭代计算就可得到每帧图像中目标的估计位置,算法复杂度低,跟踪时长较短。同时,卡尔曼迭代公式在给出每帧中目标的估计位置时,还根据这组迭代公式中预测误差的协方差矩阵,计算出估计位置的误差值。每帧图像对应目标的位置必定处于目标的估计位置和该估计位置的误差值所界定的范围内。稀疏核主成分分析(sparse kernel principal component analysis, SKPCA)[14-15]算法与核主成分分析算法的不同之处在于,SKPCA算法先给所有正常训练样本进行加权,通过极大似然原理保留少数权值较大的样本(这些训练样本对目标模型的贡献更大),稀化了样本数据,再根据稀化后的样本建立红外小目标的KPCA模型,与直接使用所有训练样本建立的KPCA模型相比,计算量较小。
为了在确保检测精确性的前提下提高识别速度,本文拟提出一种基于稀疏核主成分分析结合卡尔曼滤波的红外小目标检测与跟踪方法。首先在当前帧幅中应用卡尔曼滤波器,预测出下一帧中目标可能出现的估计位置,并结合预测误差协方差矩阵给出每一帧中目标可能出现的范围,然后,在目标可能出现的范围内,使用SKPCA检测算法,将检测算法的检测结果作为最终目标位置进行输出。
1 SKPCA与卡尔曼滤波的算法原理
1.1 SKPCA原理
设低维空间的一组向量X=[x1,x2,…,xm],非线性映射函数φ:xi→φ(xi),该函数可将向量组X映射到核空间V中[14],即
Φ=[φ(x1),φ(x2),…,φ(xm)]。
假设Φ服从高斯分布模型,定义协方差矩阵
(1)
其中,σ2是高维空间中各向同性的噪声成分的误差方差值,I是单位矩阵,ω1,ω2,…,ωm是可调权值,W是由ωi构成的权值矩阵。在理想情况下,似然最大化该模型,可得到σ2=0,所有权值ωi=1/m。假设此时的协方差矩阵
如果σ2为某确定常数,则仅仅需要优化权值ωi。在这种情况下,许多ωi的最大似然估计均为0,则可得到Cv的稀化表示。若φ(xi)是任意向量,则可以得到一个概率主成分。若Sv的特征值为λi,则对应的特征向量为ui。在该模型下,利用φ(xi)=ui和ωi=(λi-σ2)1/2最大化似然,当λi≥σi时,ωi=0,对于任意的i,λi≥σi。
对式(1)的行列式取对数,可得
(2)
lg |σ2I+ΦTWΦ|=Dlgσ2+lg |W-1+σ-2ΦΦT|+lg |W|。
(3)
其中,D是向量φ(xi)的维数,只在式(3)第一项出现,且σ2是一个常数,故式(3)第一项不影响对数似然最大化过程。考虑到式(3)中的ΦΦT可以由一个核函数矩阵K替换,其中Kij=k(xi,xj),则
W-1+σ-2ΦΦT=W-1+σ-2K。
因此
其中,kn=[k(xn,x1),k(xn,x2),…,k(xn,xn)]T。
为了优化权值,对式(2)中的每个ωi求偏导,得到
(4)
其中,uni为列向量un中第i个元素,Hii是矩阵H对角线上第i元素。
矩阵H和列向量un分别定义为
H=(W-1+σ-2K)-1,un=σ-2Hkn。
(5)
参考关联向量机[16]的方法,可以得到一个比式(5)收敛更快的权值迭代表示式
(6)
(7)
(8)
(9)
(10)
1.2 卡尔曼滤波原理
卡尔曼滤波(Kalman filtering)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法,状态方程和观测方程[12]分别为
Mk=Ak-1Mk-1+Uk-1,Yk=CkMk+Vk。
其中,Ak-1是系统k-1时刻的状态转移矩阵,Ck是系统k时刻的观测矩阵,系统噪声{Uk}和观测噪声{Vk}是互不相关的白噪声序列,且Uk∈(0,Rk),Vk∈(0,Qk)。对状态方程和观测方程进行修正,可以得到一组卡尔曼递推公式
(11)
2 基于SKPCA-KF的红外小目标检测与跟踪
2.1 SKPCA算法检测红外小目标
假设有m幅红外小目标训练样本图像,即局部目标图像,将其转化为d×d维的8位图像灰度矩阵{P1,P2,…,Pm},再将每个灰度矩阵按行首尾相接,分别转换成d2维列向量,并构成X=[x1,x2,…,xm]。通过φ函数将X映射到核空间V中
Φ=[φ(x1),φ(x2),…,φ(xm)]。
Φ的维数为d2×m。φ(xi)在高维空间的向量內积
〈φ(xi)·φ(xi)〉=φ(xi)[φ(xi)]T=k(xi,xi)。
(12)
其中,σ2为一个常数,核函数k选为高斯核函数,即
定义核函数矩阵K,其元素Kij=k(xi,xj)(i,j=1,2,…,m)。在高维空间中所有映射数据含权值ωi的协方差矩阵为
(13)
则φ(xi)的概率密度为
(14)
对式(14)取对数并对所有φ(xi)求和,可得
(15)
根据极大似然定理,对式(15)中每一个权值求导,并令各权值导数均为0,可得权值迭代式为
(16)
反复迭代式(16),得到第i个权值ωi,利用同样的方法可以得到所有的m个权值。只保留权值不为零的映射数据作为建模数据,即完成了样本的稀化训练。假设稀化后的样本数为t,设为
Ψ=[φ(x1),φ(x2),…,φ(xt)]。
(17)
(18)
(19)
2.2 卡尔曼滤波算法跟踪红外小目标
在进行红外小目标跟踪时,令状态向量
目标的状态转移矩阵
其中的T为两帧之间的间隔时间。
观测矩阵
综合考虑目标的机动性,以及摄像系统的抖动因素,卡尔曼滤波的系统噪声和观测噪声协方差矩阵分别给定为Rk=Qk=25Ik。为了简化,初始误差协方差矩阵取P2=I4×4。首先,使用SKPCA检测算法得到目标在前两帧中的位置(x1,y1)和(x2,y2)然后,使用前两帧位置坐标对卡尔曼滤波方法进行初始化,构建目标的初始状态向量
将M2和P2代入式(11)进行反复迭代,可得到第k帧中红外小目标的估计位置(xk,yk)和Pk。
2.3 SKPCA结合KF的跟踪
SKPCA-KF的跟踪过程如下。
步骤1在第一帧和第二帧图像中使用SKPCA进行检测,将检测结果作为最终结果输出,并记录下检测到的目标位置(x1,y1)和(x2,y2)。
步骤2利用步骤1记录的位置数据作为卡尔曼滤波的初始条件,开始卡尔曼预测。
步骤4在步骤3给出的范围中使用SKPCA算法进行检测,并将检测结果作为最终结果输出。
步骤5令k=k+1,将步骤4中的结果作为第k帧的观测数据,并返回步骤3。
3 实验结果及分析
实验选取大小为275×245的60帧海天背景红外图像序列,作为待测试图像序列。使用GIM[17]仿真数学模型随机生成121个大小均为11×11的红外小目标训练图像。
使用SKPCA-KF,每间隔20帧输出一次计算结果,如图2所示。
图2 SKPCA-KF输出结果
在图2中,虚线框表示KALM跟踪算法预测出的目标可能出现的范围,实线框是SKPCA检测算法输出的最终检测结果。图2中(e)、(f)、(g)、(h)为对应检测结果曲面图,曲面图中峰值所在位置即为红外小目标所在位置。
由图2可见,SKPCA-KF在目标所处位置有较大的输出,在背景处几乎没有响应,表明了该方法检测红外小目标的有效性。从第20、40、60帧的跟踪结果可以看出,卡尔曼滤波算法所给出的跟踪结果,即虚线框的中心位置,并不在小目标的中心位置处,甚至偏离程度很大,说明仅仅依靠小目标的运动特征预测其位置的方法并不是十分准确。在该虚线框的范围内再次使用SKPCA检测算法就能够比较精确的给出目标位置。
为了更直观的比较KPCA和SKPCA-KF两种方法检测红外小目标的性能,分别使用信噪比(signal-to-noise ratio,SNR)、信噪比增益(signal-to-noise ratio gain,SNRG)、背景抑制因子(background suppression factor,BSF)[18]三个经常被用来衡量红外小目标检测性能的评价指标。KPCA和SKPCA-KF算法对应的平均检测结果,如表1所示。
表1 KPCA和SKPCA-KF算法的平均检测结果
表1给出的是KPCA和SKPCA-KF两种检测算法在60帧图像上的平均检测指标。从中可以看出,两种检测算法的三个指标值都非常接近,主要原因是SKPCA算法对每个训练样本进行加权处理,通过极大似然原理保留下少数权值较大的训练样本,这些样本基本能够代表全部样本的特征信息。
为了验证SKPCA-KF方法在识别速度上的优势,分别使用KPCA和SKPCA-KF两种方法进行测试,同时记录在每帧图像上两种方法的识别时间,并进行对比,KPCA和SKPCA-KF的平均检测时间,其结果如表2所示。
表2 KPCA和SKPCA-KALM的平均检测时间
从表2中可以看出,SKPCA-KF算法平均每帧的检测时间比KPCA算法小一个数量级以上。SKPCA-KF算法速度较快有两个主要原因:其一是卡尔曼滤波使用图像中小目标的运动信息将待检测图像区域从整副图像缩小到一个小的矩形框,SKPCA只需在该矩形框范围进行检测,避免了直接检测整副图像,所以减少了检测时间。其二是KPCA算法使用了全部121个训练样本作为建模数据,而采用SKPCA方法将一部分对目标特征贡献不大的样本,通过稀疏方式去掉,仅剩余71个训练样本作为建模数据,大大简化了核矩阵的计算量,因此也缩短了检测时间。
4 结语
为了提高海天背景下KPCA算法检测红外小目标识别速率,提出一种新的SKPCA-KF红外小目标检测与跟踪的方法。该算法使用卡尔曼滤波算法将每一帧中目标可能出现的范围从整幅图像缩小到一个较小的矩形范围内,并在该范围内使用SKPCA检测算法进行检测,得到目标位置。由于避免了对整帧图像直接使用检测算法,从而降低了检测时间;另外,由于SKPCA检测算法的原理是将所有训练样本中对目标模型的构建贡献相对较大的样本保留下来,因此,相比于KPCA算法来说不仅没有降低检测精确性,而且训练样本的减少也降低了运算复杂性,缩短了检测时间。在海天背景的红外图像序列上的测试结果表明,卡尔曼滤波结合稀疏核主成分分析算法的平均检测时间是核主成分分析算法的0.03倍,在保证检测精度的前提下,提高了识别速度。