基于自适应卡尔曼初始搜索位置选取的图像跟踪算法
技术领域
本发明属于计算机视觉与模式分析技术领域,具体涉及一种基于自适应卡尔曼(Kalman)初始搜索位置选取的图像跟踪算法。
背景技术
图像跟踪***能够在一系列视频图像帧中识别并定位特定的目标,被广泛应用于机器人技术、制导技术、自动监视等大量领域中。
图像跟踪***最为常用的算法是基于块匹配的搜索算法(Block Matching Algorithm,BMA)[1][2]。该算法针对被跟踪目标建立模板,并在当前图像帧中寻找与模板具有最佳匹配的区域,作为当前帧中目标位置的估计,即
其中x为候选区域的中心坐标;Ω为图像帧的某个坐标集合;sim(·)为位于某一坐标处的区域与模板之间的相似度函数,该区域与模板越匹配,函数值就越大;xtgt为当前帧中目标位置的估计。
由于目标的移动速度有限,帧率通常又较高,故目标在相邻帧时间间隔内的位移不大。所以,图像跟踪算法通常取Ω为上一帧目标所在位置的一个较小的邻域[3]。但是,如果背景较为复杂,则在搜寻位置周围可能有许多相似度的局部极大值,搜索算法很容易被吸引到这些局部极大值上而偏离甚至丢失目标。另外,如果目标的移动速度较快,则当前帧中的搜索位置与目标位置的间隔将较大,这更增加了搜索算法在向目标位置靠近的过程中被一些非目标局部极大值所捕获的危险;同时,一些搜索范围固定的快速搜索算法,如三步搜索算法(Three Step Search,TSS)[4],可能会无法覆盖目标。即使引入了动态搜索范围调整,虽然可以解决目标覆盖问题,但是仍然无法降低非目标局部极大值的干扰,而且还会显著增大计算量。
为了解决上述问题,本发明通过自适应Kalman(卡尔曼)预测滤波器[5]估计当前帧目标可能的位置,并将初始搜索位置移到预测位置上,大大减小了初始搜索位置与目标实际位置的间距,使得搜索算法找到目标的可靠性更高。同时,由于显著减少了搜索算法所需的匹配次数,因而大大降低了计算量。
参考文献
[1]C.Smith,C.Richards,S.Brandt,and N.Papanikolopoulos,“Visual tracking forintelligent vehicle-highway systems”,in IEEE Trans.on Vehicle Technology,1996.
[2]T.Kaneko,and O.Hori,“Template update criterion for template matching of imagesequences”,in Proceedings of 16th International Conference on Pattern Recognition,vol.2,pages 1-5,2002.
[3]N.Papanikolopoulos,P.Khosla,and T.Kanade,“Visual Tracking of a Moving Target by aCamera Mounted on a Robot:A Combination of Control and Vision”,in IEEE Trans.onRobotics and Automation,vol.9,pages 14-32,1993.
[4]Y.Wang,J.Ostermann,Y.Q.Zhang,“Video Processing and Communications”,pages159-161,Prentice Hall,2002.
[5]S.Bozic,“Digital and Kalman Filtering”,Edward Arnold,41 Bedford Square,London,1979.
[6]J.Jain,A.Jain,“Displacement measurement and its application in interframe imagecoding”,in IEEE Trans.on Communications,vol.33,pages 1799-1808,1981.
[7]L.K.Liu,E.Feig,“A block-based gradient descent search algorithm for block motionestimation in video coding”,in IEEE Trans.on Circuits and Systems for Video Technology,vol.6,pages 419-422,1996.
发明内容
本发明的目的在于提出一种预先将初始搜索位置移到当前帧目标可能出现的位置,以大大提高搜索可靠性并显著降低计算量的图像跟踪算法。
本发明提出的图像跟踪算法,具体步骤如下:在对每一帧图像进行搜索前,采用自适应Kalman预测滤波器对目标运动速度进行预测,得到目标可能出现的位置,并把该位置作为后续目标搜索算法的初始搜索的位置,以减少初始搜索位置与目标位置之间的距离,从而大大提高跟踪鲁棒性并降低计算工作量。
本发明的关键在于如何尽可能准确地预测当前帧中目标可能出现的位置,换句话说,就是尽可能准确地估计当前帧中目标相对于上一帧的位移。由于帧率较高,帧间位移可以近似看作目标的瞬时速度。因此,初始搜索位置的选取问题最终归结为对目标速度的预测问题。
1、Kalman预测滤波器进行速度预测
目标速度改变的原因是加速度的存在,如果能够预测加速度,则也就能够推测出速度。但是,加速度的改变可以是瞬时实现的,而且可以是任意的,因此如果把加速度作为目标的状态量,则建立状态转换方程本质上是不可能的。然而,速度是不能突变的,相邻两帧的速度比较相近,因此可以把速度作为目标的状态量,状态转化矩阵就是单位阵I,而加速度的作用可以看成是状态方程中的不确定项。
由于加速度取值的随意性以及图像跟踪算法位置估计误差的存在,尽管有较高的帧率,许多情况下各帧速度观测值会有较为剧烈的波动,如果直接将前一帧的观测速度作为当前帧速度的估计的话,很容易出现“过冲”的现象,导致初始搜索位置反而离开目标更远。因此,本发明采用了Kalman预测滤波器对目标速度进行估计。
设目标的状态变量为目标的速度v=[vxvy]T,则目标的状态方程和观测方程分别为
v(n+1)=Av(n)+Ba(n) (2)
vobs(n)=Cv(n) (3)
式中a(n)=[ax(n)ay(n)]T为第n帧目标的加速度;v(n)与v(n+1)分别为第n帧与第n+1帧目标的实际速度;vobs(n)为第n帧目标的无误差观测速度;
为状态转移矩阵,
反映了目标速度不能突变;
反映了目标速度与加速度的关系,其中Δt为相邻
两帧的时间间隔;
是显然的。
在状态方程中,尽管B是已知的,但是a(n)未知,所以Ba(n)只能看成状态变化不确定性项(或噪声项),而非输入项。这一项的大小取决于目标速度变化的剧烈程度。
由于图像跟踪算法定位误差的存在,观测方程中的无误差观测速度vobs(n)是无法得到的,我们只能知道包含了定位误差的目标观测速度:
式中w(n)为第n帧目标速度的观测噪声(在这里是由图像跟踪算法的目标定位误差引起的);
为第n帧中目标的速度,即由图像跟踪算法实际确定的目标位移。
上述Kalman滤波问题的测量更新方程与时间更新方程分别为:
式中
为获得了直到第n-1帧的观测速度后得到的目标在第n帧的真实速度的估计值;
为获得了第n帧的观测速度后对目标在第n帧的真实速度的更新后的估计值;
为获得了第n帧的观测速度后对目标在第n+1帧的真实速度的预测值。
是Kalman增益,它反映了测量更新方程中对新息(innovation)的置信程度。Kalman增益越大,则状态更新得越快,越能跟上实际状态的变化,但是观测误差对状态估计造成的影响也就越大。一般而言,状态变化不确定性(在这里就是加速度项)越大,Kalman增益应该设得越高;观测误差(在这里就是图像跟踪算法的目标定位误差)越大,Kalman增益应该设得越低。最终的Kalman增益是两者之间的权衡。
考虑到A、C是单位阵,并合并(5)、(6)式,可以得到Kalman预测滤波器预测目标运动速度的迭代公式如下:
上式表明,对于当前帧(第n+1帧)目标速度的预测值可以通过上一帧(第n帧)目标速度的预测值与上一帧目标速度的观测值得到;当前帧与上一帧目标速度预测值之间的差值正比于上一帧目标速度观测值与预测值之间的差值,比例系数就是Kalman增益。Kalman增益越大,当前帧目标速度预测值就越接近上一帧目标速度观测值,目标速度预测值的更新就越快,但观测值噪声带来的影响也就越严重。
2、Kalman增益的自适应调整
为了得到迅速跟上目标真实速度变化与尽可能减小观测误差影响之间的更好的权衡,本发明根据目标速度观测值的变化情况动态地调整Kalman增益,使得在任何目标运动情况下都能尽可能减小目标速度预测误差。
通过大量实验发现,观测误差所引起的速度观测值的波动频率较高,波动幅度通常不大,呈高低交错的波形;目标加速度引起的速度观测值的变化则呈现出持续一定时间的增加或减少,波动频率较低,但波动幅度较大。
根据以上速度观测值分别在观测误差与加速度作用下的不同波动情况,本发明提出了如下的Kalman增益的调整策略:(其中的速度均指观测速度)
①当累计连续加速或连续减速次数(允许中间间隔若干匀速过程)超过一个阈值TA时,认为此时有明显的加速度作用,应该调高Kalman增益以加快速度估计的更新,从而跟上目标实际速度的变化;
②一旦连续加速过程(包括匀速过程)被一次减速打断,或连续减速过程(包括匀速)被一次加速打断,则认为此时加速度不再起主要作用,接下来可能会有由观测误差造成的较高频率的观测值波动,应该调低Kalman增益以避免过快更新速度估计而导致噪声的影响透过滤波器。
通过采取上述Kalman增益自适应调整,就可以最大程度地跟上目标实际速度的变化(由加速度造成),同时最大程度地减小观测速度的高频波动(由跟踪算法定位误差引起)对速度估计带来的负面影响。实验证明,自适应Kalman增益调整能够进一步提高速度预测的准确度,从而进一步增加后续搜索算法找到目标的概率。
3、初始搜索位置选取与后续搜索算法
在得到了当前帧目标的预测速度后,就可以把初始搜索位置从上一帧的目标观测位置移到预测速度所指向的当前帧的目标预测位置上,即
式中
(n)是上一帧即第n帧目标观测位置;
是由式(7)得到的当前帧即第n+1帧目标速度的预测值;x
sc(n+1)就是所选取的当前帧初始搜索位置。
后续的搜索算法可以采用各种快速搜索算法,例如三步搜索算法(Three Step Search,TSS)[4],两维对数搜索算法(2D-Log Search,2DLS)[6],基于块的梯度下降搜索算法(Block-based Gradient Descent Search,BBGDS)[7]等等。由于通过采用自适应Kalman初始搜索位置选取使得起始搜索点离开目标位置的距离大大减小,因此无论采用什么搜索算法,它们被非目标局部极值所吸引而陷入其中的概率都会大大减小,从而可以显著提高跟踪算法的鲁棒性。
附图说明
图1a:目标水平速度曲线图。带加号点划线代表了将Kalman增益始终设为较高时的预测速度;带叉号点虚线代表了将Kalman增益始终设为较低时的预测速度;带星号虚线代表了采用自适应Kalman增益调整时的预测速度;带圈实线代表实际观测到的目标速度。
图1b:目标垂直速度曲线图。图例解释同上。
图2a~2d:直接将初始搜索位置取为上一帧的目标观测位置,则目标在水平方向上跟丢。
图3a~3d:直接将上一帧中的速度作为当前帧速度的预测值,则目标负向水平速度的突然减小导致了过冲的发生。
图4a~4d:对应于图2a~2d的四帧截图,采用了自适应Kalman初始搜索位置选取,跟踪效果十分理想。
图5a~5d:对应于图3a~3d的四帧截图,采用了自适应Kalman初始搜索位置选取,跟踪效果十分理想。
具体实施方式
下面通过对一些跟踪实例的仿真进一步介绍本发明的实施方式。仿真的平台是Matlab6.5。
在对本发明进行仿真时,采用两种最为常用的快速搜索算法:TSS算法与BBGDS算法为后续搜索算法;采用线性相关系数作为块匹配中的相似度度量。
1、采用TSS作为后续搜索算法
仿真用的视频剪辑是用手持摄像机拍摄的夜间高架上行驶中的车辆。由于手的上下与左右晃动,目标在竖直与水平方向上作幅度较大且不规则的运动,如图1a和图1b中的带圈实线所示。可以发现,由于所跟踪的车辆在夜间高架上行驶时,周围的路面与高架护栏等在灯光的作用下形成了一定的背景干扰,加之目标的速度变动较为剧烈(尤其是水平方向),因此不采用自适应Kalman初始搜索位置选取极易导致搜索算法陷入非目标局部极值点。图2a至图2d显示了直接将初始搜索位置取为上一帧的目标观测位置的跟踪情况,目标在水平方向跟丢了。
如果采取另一个极端,将目标在上一帧中的速度直接作为目标在当前帧中速度的预测值,并选取相应的初始搜索位置后,其跟踪情况如图3a至图3d所示。在这几帧中,目标负向水平速度的突然减小导致了过冲的发生。这种情况在图像跟踪中是很常见的,尤其在摄像头非固定的情况下。因此,不能直接将目标在上一帧中的速度作为目标在当前帧中的位移的预测。
当采用自适应Kalman初始搜索位置选取后,各帧的水平速度与垂直速度预测情况分别如图1a和图1b中的带星号虚线所示。由图可见,自适应Kalman预测滤波器给出了十分合理的速度预测值,既能够在目标大幅加速或减速时跟上目标实际速度的变化,又能够在目标的观测速度发生振荡时保持稳定。相比之下,非自适应的Kalman预测滤波器给出的速度预测值都不够合理。图1a和图1b中的带加号点划线显示了Kalman增益始终取为较高时的速度预测情况,可以发现当目标速度突然发生反方向变化时预测速度会有较大的过冲,而且当目标速度发生较高频率振荡时会有较大的预测误差。图1a和图1b中的带叉号点虚线显示了Kalman增益始终取为较低时的速度预测情况,可以发现当目标发生持续加速或减速时,预测速度总是更新太慢,与目标实际速度的差距较大。自适应Kalman增益调整的曲线(带星号虚线)在目标持续加速或减速时更多地与Kalman增益取较大固定值的曲线重合,而在其它情况下则更多地与Kalman增益取较小固定值的曲线重合,由此取得了最优化的速度预测效果。
统计结果表明,对于前述的测试视频流,当不采用初始搜索位置预测选取时,初始搜索位置与目标实际位置的平均距离为4.1像素;当采用较大固定Kalman增益进行初始搜索位置预测选取时,该平均距离为2.7像素;当采用较小固定Kalman增益进行初始搜索位置预测选取时,该平均距离为2.6像素;当采用自适应Kalman增益进行初始搜索位置预测选取时,该平均距离为2.4像素。由此可见,自适应Kalman初始搜索位置选取具有最好的性能。
此外,在某些跟踪场合,当目标以较高的速度运动时(约200像素/秒),采用自适应Kalman初始搜索位置选取能够使得初始搜索位置与目标实际位置的平均距离的下降幅度超过80%。
图4a至图4d以及图5a至图5d分别显示了当采用了自适应Kalman初始搜索位置选取后,原先在图2a至图2d以及图3a至图3d中跟丢的目标的跟踪情况,可以发现均获得了十分理想的跟踪效果。
2、采用BBGDS作为后续搜索算法
采用BBGDS[7]作为后续搜索算法时,是否采用Kalman初始搜索位置预测选取以及是否采用动态Kalman增益调整的图像跟踪效果对比情况与采用TSS作为后续搜索算法类似。这里着重比较一下采用了自适应Kalman初始搜索位置选取后计算量的节省情况。
与TSS不同,当采用BBGDS作为后续搜索算法时,其匹配计算量直接取决于初始搜索位置与目标之间的距离。如果它们之间的距离很近,则只需要极少次数的匹配就可以找到目标;反之,则可能需要经过非常多次匹配后才能找到目标,而且在“漫长的”搜索过程中极有可能陷入局部极值点。所以缩小初始搜索点与目标之间的距离能够极大地降低BBGDS算法的搜索计算量,并提高BBGDS算法的搜索质量。
自适应Kalman初始搜索位置选取的目的正是为了减小初始搜索位置与目标之间的距离,因此对于改善BBGDS的计算量与搜索质量有很大的作用。仿真结果列于表1。
表1中,平均距离1与平均距离2分别指的是在采用与未采用自适应Kalman初始搜索位置选取的情况下搜索起始点与目标实际位置的平均距离;平均匹配运算次数1与平均匹配运算次数2分别指的是在采用与未采用自适应Kalman初始搜索位置选取的情况下BBGDS从开始搜索到找到目标的平均匹配运算次数。
视频流 |
目标平均移动速率(pix/s) | 平均距离1(pix) | 平均距离2(pix) |
平均匹配运算次数1 |
平均匹配运算次数2 |
匹配运算次数节省率 |
低速 |
13.1 |
0.77 |
0.87 |
11.5 |
11.8 |
2.88% |
中速 |
43.5 |
1.33 |
2.90 |
13.4 |
19.2 |
29.9% |
高速 |
195.2 |
1.50 |
8.14 |
14.6 |
40.9 |
64.3% |
表1采用自适应Kalman初始搜索位置选取对于降低BBGDS计算量的影响
这里分别对目标以较低速度、中等速度与较高速度运动的视频流进行了仿真。由仿真结果可见,随着目标运动速度的增大,对于采用了自适应Kalman初始搜索位置选取的BBGDS算法,其平均匹配运算次数的增加并不明显;而对于未采用自适应Kalman初始搜索位置选取的BBGDS算法,其平均匹配运算次数显著增加。因此目标运动速度越大,自适应Kalman初始搜索位置选取对于BBGDS的运算量的节省率就越高。值得注意的是,即使对于帧间移动距离连1个像素都不到的低速目标,自适应Kalman初始搜索位置选取仍能够节省2.88%的运算量。
综上所述,对于各种后续搜索算法,自适应Kalman初始搜索位置选取都能够很大程度地提高图像跟踪质量与降低计算量。