首页 > 范文大全 > 正文

基于预处理和卡尔曼滤波算法的运动人体跟踪

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于预处理和卡尔曼滤波算法的运动人体跟踪范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要 对正在运动的人体进行跟踪时,为了保证系统的实时性和精准性,需根据当前的目标运动轨迹预测在下一时刻的位置,并且修正该时刻的位置。利用卡尔曼滤波器预测运动人体目标在下一帧中的位置,并且在预测之前对所采集到的视频进行预处理后,在matlab仿真环境下实现该算法,实验结果表明:本算法对人体目标的运动趋势能做出正确的预测估计,性能和跟踪效果更为稳定和可靠。

【关键词】预处理 卡尔曼滤波 运动人体跟踪 位置预测

1 引言

对于目标人体的跟踪主要包括目标识别、目标检测和目标跟踪等几个方面.对正在运动的目标进行跟踪时,考虑到外界各种因素的影响,使得跟踪不能准确地完成,这个时候就需根据目标当前的参数预测目标在下一帧中的位置。根据摄像机的相对运动状态,人体运动目标跟踪可以分为静止背景下的和移动背景下的运动目标跟踪。对于静止背景,已经有许多办法来解决这种情况下的目标跟踪问题,例如帧差法[1]或自适应背景差分法[2]等。对于移动背景,因为背景在不断的变化,目标跟踪变得特别复杂,目前有光流法[3][4]等等。[5]提出了一种新的基于卡尔曼滤波的方法,这种方法能够合理地对模板进行更新,并且能检测到目标之间的遮挡,当遮挡发生时,利用合适的模板修正策略进行继续跟踪.但是这种方法在对模板进行更新时,对一些参数值的选取选用经验值,因此对于实际应用具有一定的局限性。[6]选用4个参数用来确定状态向量,完成卡尔曼滤波对人置的预测与跟踪,即x方向位移,y方向位移,和目标的宽度和高度。[7]提出了卡尔曼滤波方法,这种方法是一种基于运动学模型的反馈结构算法,当发生类似“死锁”现象时,可以根据对象以前的运动轨迹和运动模型继续进行预测.但是这种方法当运动对象的运动方式发生较大改变时,需要重新设置初始条件。

2 视频预处理

目前一般的摄像机都是一帧一帧地对视频进行采集,帧与帧之间存在着时间间隔。在实际应用中,摄像机输出的图像在经过简单处理之后是不完美的,图像质量获得的改进也是有限的,加之噪声、光照等原因,需要进一步处理,丢弃那些无用的信息,保留那些感兴趣的重要信息。对于视频的处理,一般都是提取视频的帧,对每一帧图像进行处理。

在获得的视频图像中,往往存在如高斯噪声、脉冲噪声、椒盐噪声等噪声的影响,为提高目标检测的准确率,在进行目标检测之前,有必要对视频图像进行平滑处理,以滤除噪声的影响,提高目标和图像的信噪比。

目前比较常用的图像去噪方法有邻域平均法[8]、中值滤波法[8]以及形态学方法[8,9]等。其中,中值滤波是一种非线性平滑技术,将每一个像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。在本文中,利用中值滤波来去除图像中的椒盐噪声,为后面的目标追踪奠定基础。下图为中值滤波结果:

3 卡尔曼滤波理论

卡尔曼滤波器是一个对动态系统的状态序列进行线性最小误差估计的算法,卡尔曼滤波是在20世纪60年代初提出的一种滤波方法,它从理论上完美地解决了在最小均方误差条件下平稳信号的最佳估计问题.卡尔曼滤波的关键在于确定状态方程,只要把状态向量确定下来,就可以利用系列的递推公式得到结果。

例如有这样一个系统,一个房间的真实温度为24°,温度计测量误差的方差为0.5°,屋内连续两个时刻的温度方差为0.02°,对温度的初始估计值为23.5°,误差的方差为1,此系统的卡尔曼滤波结果如下图所示:

首先我们要建立一个离散控制过程的系统。这种系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:X(k)=A X(k-1)+B U(k)+W(k) (1)

然后再加上系统的测量值:Z(k)=H X(k)+V(k) (2)

在上面两个式子中, U(k)是k时刻对系统的控制量,X(k)是k时刻的系统状态,A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:

X(k|k-1)=A X(k-1|k-1)+B U(k) (3)

上式中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。用P表示covariance:

上面两个式子就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。

综上所述,本方法中目标追踪的流程图如下图所示:

4 实验结果

在对运动人体进行跟踪时,由于环境和人体运动的复杂性及多变性,使运动目标的预测成为越来越重要的课题,利用卡尔曼滤波器的算法并且同时在进行运算之前进行预处理,首先进行中值滤波,去除椒盐噪声,然后进一步进行形态学处理得到更好的效果,使得在对人体运动目标追踪中实现好的追踪效果。运行结果如下所示:

在上图中,红色矩形框显示的是被检测目标的检测结果,绿色矩形框是最后追踪结果的是显示。人在运动过程中,利用矩形框标记,实现人体运动目标追踪的目的,显然得到了预期的效果,图5是随机截取了人在运动中的四个位置。

本课题得到北京市属高校青年拔尖人才培育计划资助(CIT&TCD201304119)

参考文献

[1]王栓,艾海舟,何克忠.基于差分图像的多运动目标的检测与跟踪[J].中国图象学报,1999(06).

[2]亮生,程荫杭.一种改进的基于混合高斯分布模型的自适应背景消除算法[J].北方交通大学学报,2003.

[3]SUN Shijun, Haynor David, Kim Yongmin . Motion estimation based on optical flow with adaptive gradients[C]//IEEE,2000.

[4]Barron J L, Fleet D J, Beauchem in S S, et al. Performance of optical flow techni-ques[C]//IEEE,1992.

[5]汪颖进,张桂林.新的基于Kalman滤波的跟踪方法[J].红外与激光工程,2004(05).

[6]张江山,朱光喜.一种基于Kalman滤波的视频对象跟踪方法[J].中国图象图形学报,2002(06).

[7]黄建新.Kalman滤波的人体运动位置跟踪算法[J].华侨大学学报,2003(04).

[8]丁金铸.基于图像处理的运动目标检测跟踪系统的设计与实现[D].重庆:重庆大学,2007.

[9]Rafael C. Gonzalez, Richard E. Wood,阮秋琦,阮宇智等译.数字图像处理(第二版)[M].北京:电子工业出版社,2008.

作者单位

北京信息科技大学信息与通信工程学院 北京市 100101