理论教育 应用卡尔曼滤波器进行物体运动跟踪

应用卡尔曼滤波器进行物体运动跟踪

时间:2023-06-17 理论教育 版权反馈
【摘要】:在物体运动跟踪中,可以根据从当前帧中量测到的物体位置,利用卡尔曼滤波器对当前帧中的物体的位置、速度、加速度进行估计,同时可以利用这个估计值对物体在下一帧中的位置做出预测。下面以对人体的运动跟踪为例,来阐述卡尔曼滤波器在运动物体跟踪中具体应用方法。为了减小计算复杂度,为每个人体设置了两个卡尔曼滤波器用于估计人体的运动状态。

应用卡尔曼滤波器进行物体运动跟踪

所谓跟踪就是可以对于图像序列中的运动物体,提取它的某些特征,并且把这些特征从一幅图像到另一幅图像匹配起来的过程。如果把所有的这些图像重叠起来,可以得到这个运动物体的运动轨迹,所以运动物体的跟踪也可以看作是对运动物体的运动状态的估计。在物体运动跟踪中,可以根据从当前帧中量测到的物体位置,利用卡尔曼滤波器对当前帧中的物体的位置、速度、加速度进行估计,同时可以利用这个估计值对物体在下一帧中的位置做出预测。

下面以对人体的运动跟踪为例,来阐述卡尔曼滤波器在运动物体跟踪中具体应用方法。由于人体存在着自运动,从而导致物体的形状和面积发生周期性变化,但是人体的形状是对称的,所以人体的中心沿着人体的运动方向稳定地平移。为了准确估计人体的位置和人体运动的速度,选用人体的中心作为特征点,这样就避免了由于人体形状周期性变化所造成的影响。为了减小计算复杂度,为每个人体设置了两个卡尔曼滤波器用于估计人体的运动状态。一个滤波器用于估计人体中心X方向上的运动状态;另一个滤波器用于估计人体中心Y方向上的运动状态。

人体的运动状态可以由向量X=(sxvxaxsyvyayT表示,其中sxvxax分别表示人体中心在X方向上的位移、速度、加速度;syvyay分别表示人体中心在Y方向上的位移、速度、加速度。由于每个人体都使用两个卡尔曼滤波器分别对他中心的X方向、Y方向的运动状态进行估计,所以可以把向量X分解为两个向量,分别代表他中心在X方向和Y方向上的运动状态,Xx=(sxvxaxTXy=(syvyayT。由于Y方向上的运动状态处理与X方向上的处理是相同的,所以这里只讨论X方向上的处理。

人体中心运动状态的系统方程为

式中,sxk表示第k帧时人体中心X方向上的位移;vxk表示第k帧时人体中心X方向的速度;axk表示第k帧时人体中心X方向的加速度。可以把式(5-18)~式(5-20)写成矩阵的形式为

由于oxk-1表示的是加速度,所以可以把它看成是一个随机变量,在此处作为白噪声处理。

在实际应用中,只能观测人体中心在图像中的位移,不能直接观测其速度和加速度,所以测量方程可以写为下列形式:

即量测方程的形式为(www.daowen.com)

Zxk=HXxk+Vxk (5-23)

式中,H=(1 0 0),可以把量测噪声Vxk看作是白噪声。

可以看到,系统的状态方程和量测方程的形式与标准卡尔曼滤波器的状态方程和量测方程的形式相同,所以可以用离散性卡尔曼滤波器的基本方程对系统的状态进行估计,也可以利用防止卡尔曼滤波器发散的衰减记忆法和平方根滤波相结合的方程对系统的状态进行评估。

在对前景运动区域检测之后,如果发现新的人体,就为这个人初始化两个卡尔曼滤波器,分别用来对这个人的中心的X方向和Y方向运动状态进行估计。由于卡尔曼滤波器使用的是递推的估计方法,所以只要给定滤波方程的初始状态值和初始估计均方误差阵,就可以利用当前的测量值得到系统状态的估计值。当检测到新的人体出现时,在这里使用第一次得到的测量值对跟踪人体的系统状态向量进行初始化。

式中,zx,0zy,0是人体中心的XY方向的测量值。两个卡尔曼滤波器的估计均方误差阵的初始值都设置为

这样可以通过卡尔曼滤波器根据当前的测量值,对人体中心X方向和Y方向的位移、速度、加速度进行估计,根据滤波方程对人体中心在下一帧中的位移、速度、加速度进行预测,如果在下一帧中检测到一个人体,预测的中心落在检测到人体的跟踪窗口内,那么就认为上一帧中的人体和这个人体相匹配,然后根据新得到的测量值对系统状态进行更新。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈