结合Kalman 滤波器的SIFT目标跟踪算法
2018-01-18任静
任静
摘 要:针对目标图像跟踪过程中提取待匹配图像较大的特征向量时,很难满足准确性和快速性要求,提出了结合卡尔曼滤波的SIFT目标跟踪算法。算法利用Kalman滤波器对动态目标在下一帧图像中可能出现的位置,在自适应窗口中识别动态目标。实验证明,该算法可以缩短了待匹配图像的SIFT特征点提取时间,提高了目标跟踪的效率。
关键词:尺度不变特征变换算法;卡尔曼滤波;目标识别;特征点提取
中图分类号:TP391.4 文献标志码:A
SIFT Tracking Algorithm Combined with Kalman Filter
REN Jing
(Colleage of Computer Science,Xian Aeronautical University,Xian,Shaanxi 710077,China)
Abstract:Target image extraction and matching image tracking larger feature vectors,It is difficult to meet the requirement of accuracy and rapidity,
when extracting the eigenvectors to be matched during the target image tracking.
A SIFT target tracking algorithm based on Kalman filter is proposed.The algorithm makes use of the Kalman filter to identify the dynamic target in the next frame image,which can be used to identify the dynamic object in the adaptive window.Experiments show that the proposed algorithm can shorten the time of SIFT feature points extraction and improve the efficiency of target tracking.
Key words:scale invariant feature transform(SIFT);Kalman filter;object recognition;feature point extraction
1 引 言
随着计算机视觉技术的迅速发展,对视频序列中的动态目标进行实时跟踪成为计算机视觉领域的重要研究方向,其核心是在图像序列中识别出目标的同时对其进行精确定位。
在视频的动态场景中,动态目标是不停运动的,背景也是不停变化的。可以发现观察视频流中背景是不停变化的,而动态目标是一直出现在视频流中的。提取一帧图像中的特征点,那么属于目标的特征点是包含在这些特征点中的,而随着背景的变化,背景上的特征点却而逐渐消失。针对这一特点,可以采用特征匹配方法来提取出动态背景下的动态目标[1]。
David G.Lowe于1999年首次提出尺度不变特征转换SIFT算法(Scale-invariant feature transform),常用来侦测与描述视频中的局部性特征[2][3],由自发表后于2004年完善总结。该特征属于局部特征,它的不变性或说稳定性主要体现在图像旋转、尺度大小变化以及光照明暗的同时,并且还能够较好地应对观察视角的调整、噪声干扰以及仿射变换[4][5]。
在图象中,由于特征点的数量比图像的象素点要少,所以使用特征点进行匹配可以大大减少计算量;同时,特征点对位置的变化比较敏感,使用特征点进行匹配能提高精确度;此外特征点的提取过程可以减少噪声的影响,使用特征点可以适应于灰度变化,图象形变以及遮挡等。基于以上原因,本文研究了基于一种特征点(SIFT)的视频序列中动态目标提取算法。SIFT算法提取的关键点特征向量不会随着尺度缩放、旋转、亮度等变化而变化,对于目标受到部分遮挡的情况,该算法也有很好的适应性能。
2 SIFT特征提取算法
SIFT算法基于图像特征尺度选择的思想,建立图像的多尺度空间,在不同尺度下检测到同一个特征点,确定特征点位置的同时确定其所在尺度,以達到尺度抗缩放的目的,剔出一些对比度较低的点以及边缘响应点,并提取旋转不变特征描述符以达到抗仿射变换的目的。包括了以下步骤:检测尺度空间局部极值点;
确定关键点的位置和方向参数;描述关键点特征向量。
(1)检测尺度空间局部极值
检测该空间局部极值的前提条件需要创建合适的尺度空间。一些图像特性在某一尺度下不容易看出或获取,当在很容易在另外的尺度下看出来或检测到。所以常可以利用多尺度更有效地提取图像特征,获取图像内容。
线性核是实现尺度变换的唯一的高斯卷积核,一副二维图像的尺度空间可以定义为:
L(x,y,σ)=G(x,y,σ)I(x,y)(1)
其中 G(x,y,σ)是尺度可变高斯函数
G(x,y,σ)=12πσ2e-(x2+y2)/2σ2(2)
(x,y)是空间坐标,σ是尺度空间因子[6]。
提出了高斯差分尺度空间(DOG scale-space)可以在尺度空间有效的检测到稳定的关键点。高斯差分尺度空间利用不同尺度的高斯差分核与图像卷积生成。
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))I(x,y)=L(x,y,kσ)-L(x,y,σ)(3)endprint
用两个不同尺度高斯滤波器相减从而得到结果是DoG算子的核心思想。
(2)确定关键点的位置和方向参数
对于候选集合中的极值点,成为最终成为关键点还必须通过两步检测:与其“相邻”点相比,要求特征点的灰度值的差异明显,且边缘点不能作为极值点。
可以通过拟合二阶微分方程,找到低对比度的点。对D (x ,y,σ)进行泰勒展开至二次项得到:
3 基于SIFT的动态目标跟踪方法
在视频序列中可能包含各种复杂的场景,卡尔曼滤波跟踪和Mean Shift跟踪,只适应于背景简单的视频目标跟踪。由于很难用灰度门限分割图像,因此当物体被遮挡或者出现多个物体时,相关跟踪就成为动态目标跟踪的一个很好的选择。在相关跟踪中,识别和测定目标位置的依据是预先存储目标图像样板,通过比较目标样板与实时图像的各个区域图像,当前的动态目标就是和目标样板最相似的区域,可以很好的利用SIFT算法识别两幅图像中的相同物体。
由于SIFT的特征点对噪声也保持一定的稳定性,而且对旋转、尺度缩放、亮度变化十分不敏感,因为相关跟踪的关键技术是图像的相关匹配,因此,在相关跟踪中利用SIFT特征点,可能会提高传统相关跟踪方法的鲁棒性[8]。
利用SIFT算法进行目标跟踪算法的具体步骤如下:
(1)提取目标物体的SIFT特征点,生成描述字符D1;
(2)提取一段视频中的一帧图像,并提取这一帧图像上的SIFT特征点,设其描述字符为D2;
(3)匹配D1与D2,如果特征点个数在匹配上大于阈值N,则匹配成功,进入第(4)步,否则返回第(2)步;
(4)锁定匹配上的结果,返回视频下一帧图像,再进行第(2)步。
4 结合卡尔曼滤波的SIFT目标跟踪算法
基于SIFT的特征匹配方法虽然具有旋转、尺度缩放、亮度变化不变性,仿射变换、对视角变化、噪声具有一定程度的稳定性。但是提取待匹配图像较大的特征向量则需要大量的时间。很难满足实时性的要求。如果动态目标在待匹配图像中的大致位置能预先知道,那么就只需要提取动态目标可能出现区域的特征向量,然后进行图像特征匹配,这将提高动态目标检测的效率,大大缩短图像匹配的时间,满足实时性的需要。目前,主要有多假设跟踪、基于Monto Carlo方法的滤波器和卡尔曼滤波器等三种状态估计方法。卡尔曼滤波器算法运算简单,速度较快,是一种最常用和最简单的状态估计算法。因此,本文提出结合SIFT特征提取与匹配算法进行目标匹配,运用卡尔曼滤波器对动态目标进行运动状态估计,完成动态目标检测的目的。
另外,基于SFIT的目标检测,某些带有高强度噪声的图片容易产生误匹配。而卡尔曼滤波可以用来估计信号的过去和当前,甚至于将来的状态。结合卡尔曼滤波估计均方误差最小和状态估计的特性,计算候选目标的精确位置,同时对特征点运动向量进行聚类分析,有效地剔除了噪声干扰所引起的错误匹配,提高了匹配精度。
利用卡尔曼滤波算法预测了下一时刻动态目标可能出现的位置后,就需要对该预测所得到位置周围区域进行目标识别匹配。可以称这个区域为自适应匹配窗口,在动态目标跟踪时,它是真正的图像检测窗口。自适应匹配窗口的设计实际上是截取了原图像的一部分,该大于目标图像而小于视场,同时必须保证在跟踪过程中可以一直包含动态目标的特征。因此,不需要在整个视野图像进行特征提取和匹配,只针对匹配窗口中的图像进行特征提取和特征匹配,这样不但减少了需要处理的数据量,缩短了动态目标图像特征的提取和匹配时间,而且减少了自适应窗口外的其它干扰因素。
结合卡尔曼滤波的SIFT目标跟踪算法的流程图如图2所示。
5 实验结果与分析
在Windows 7系统下,酷睿2双核 (2.5G Hz)处理器,内存2G,在Matlab7.0上进行仿真,视频格式为.avi,图像大小为360*240,帧率为25 fps。本文算法的跟踪结果如图3所示,单独使用卡尔曼滤波算法的跟踪结果如图4所示。
卡尔曼滤波结合SIFT算法与单独使用卡尔曼滤波算法对于测试图像序列的跟踪结果比较如图5与图6所示。图5比较的是跟踪误差,纵坐标表示目标中心的偏差,横坐标表示帧数。
图6比较的是目标矩形框的尺度误差。横坐标表示帧数,纵坐标表示算法的跟踪矩形框宽度与人工标定的矩形框宽度的误差(X),以及算法跟踪矩形框高度与人工标定矩形框高度的误差(Y)。从此图中可以看出单独使用卡尔曼滤波算法的目标矩形框,随着目标尺寸的变化不发生改变。而本文提出的算法,跟踪框随着目标尺寸的改变而变化。
6 结 论
对目标跟踪过程易受噪声干扰导致跟踪效果不理想,甚至丢失跟踪目标的问题,利用了尺度不变特征变换(SIFT)方法对单帧图像进行了目标特征点的提取和匹配。
针对目标图像跟踪的准确性和快速性要求,提出了基于Kalman目标运动轨迹预测的SIFT特征目标跟踪算法。利用Kalman滤波器对动态目标在下一帧图像中可能出现的位置,并在自适应窗口中识别动态目标,该算法可以缩短了待匹配图像的SIFT特征提取时间,提高了目标跟踪的效率。
参考文献
[1] 毛华.动态场景中运动目标跟踪算法研究与实现[D].成都:电子科技大学,2009.
[2] LOWE D G.Object recognition from local scale-invariant features[C].International Conference on Computer Vision,Corfu,Greece,1999(9):1150-1157.
[3] LOWE D G.Distinctive Image Features from Scale-Invariant Keypoints[C].International Journal of Computer Vision,60,2(2004):91-110.
[4] 李志华,陈耀武.基于多摄像头的目标连续跟踪[J].电子测量与仪器学报,2009,23(2):46-51.
[5] 刘兆庆,李琼,刘景瑞,等.一种基于 SIFT 的图像哈希算法[J].仪器仪表学报,2011,32(9):2024-2028.
[6] 程成,须文波,冷文浩.基于 iSIGHT 平台 DOE方法的螺旋桨敞水性能优化设计 [ J].计算机工程与设计,2007,28( 6): 1455- 1459.
[7] 于丽莉,戴青.一种改进的 SIFT 特征匹配算法[J].計算机工程,2011,37(2):210-212.
[8] 吴锐航.基于SIFT特征的图像检索技术研究[D].厦门大学,2007.endprint