kalman filter java_Kalman filters(一)

该博客介绍了Kalman滤波器在一阶和二阶模型下对直线运动物体的跟踪效果。通过理论推导和实验分析,揭示了滤波器参数如协方差矩阵P、Q、R对跟踪精度的影响。实验表明,二阶模型跟踪效果优于一阶,且Q值越小,跟踪效果越好。同时,增大R会使模型对量测结果的不信赖度增加,导致跟踪偏差。合适的P值对初始状态估计不佳时的跟踪周期有显著影响。
摘要由CSDN通过智能技术生成

3.1理论推导

首先假设状态变量为x,观测量为z,那么结合贝叶斯后验概率模型:

equation?tex=posterior+%3D+%5Cfrac%7B%7Blikelihood+%5Ctimes+prior%7D%7D%7B%7Bnormalization%7D%7D+%5CLeftrightarrow+P%5Cleft%28+%7B%5Cleft.+x+%5Cright%7Cz%7D+%5Cright%29+%3D+%5Cfrac%7B%7BP%5Cleft%28+%7B%5Cleft.+z+%5Cright%7Cx%7D+%5Cright%29P%5Cleft%28+x+%5Cright%29%7D%7D%7B%7BP%5Cleft%28+z+%5Cright%29%7D%7D%5C%5C

多目标跟踪从形式上讲可以理解为最大化后验概率,现在结合第二节的内容,假设状态变量x服从高斯分布,反映的是运动模型的不稳定性。基于状态变量x的估计先验,观测量z也服从高斯分布,反映的是量测误差,比如传感器误差。那么我们就可以利用高斯分布的融合来刻画Kalman滤波器的更新部分。

这里我们先给出一阶Kalman滤波器的公式,其中预测环节就是基于线性运动特性对状态变量的预测,即:

equation?tex=%5Cbegin%7Barray%7D%7Bl%7D+x+%3D+Fx+%2B+Bu%5C%5C+P+%3D+FxF%5ET+%2B+Q+%5Cend%7Barray%7D%5C%5C

其中​

equation?tex=x 为状态变量的均值,​

equation?tex=P 为预测方差,那么​对应的高斯分布方差即为

equation?tex=FPF%5ET,而​

equation?tex=Q 则是线性运动模型本身的误差,由此得到预测环节。即预测结果服从高斯分布

equation?tex=N%28x%2CP%29 ​。

对于更新环节,同样地,假设量测误差分布满足

equation?tex=N%28z%2CR%29 ​,那么:

equation?tex=%5Cbegin%7Barray%7D%7Bl%7D+%5Cmu++%3D+%5Cfrac%7B%7B%7B%5Cmu+_z%7D%7B%5Csigma+_x%7D%5E2+%2B+%7B%5Cmu+_x%7D%7B%5Csigma+_z%7D%5E2%7D%7D%7B%7B%7B%5Csigma+_x%7D%5E2+%2B+%7B%5Csigma+_z%7D%5E2%7D%7D+%3D+%5Cfrac%7B%7B%7B%5Csigma+_x%7D%5E2%7D%7D%7B%7B%7B%5Csigma+_x%7D%5E2+%2B+%7B%5Csigma+_z%7D%5E2%7D%7D%7B%5Cmu+_z%7D+%2B+%5Cfrac%7B%7B%7B%5Csigma+_z%7D%5E2%7D%7D%7B%7B%7B%5Csigma+_x%7D%5E2+%2B+%7B%5Csigma+_z%7D%5E2%7D%7D%7B%5Cmu+_x%7D%5C%5C+K+%3D+%5Cfrac%7B%7B%7B%5Csigma+_x%7D%5E2%7D%7D%7B%7B%7B%5Csigma+_x%7D%5E2+%2B+%7B%5Csigma+_z%7D%5E2%7D%7D%5C%5C++%5CRightarrow+%5Cmu++%3D+K%7B%5Cmu+_z%7D+%2B+%5Cleft%28+%7B1+-+K%7D+%5Cright%29%7B%5Cmu+_x%7D+%3D+%7B%5Cmu+_x%7D+%2B+K%5Cleft%28+%7B%7B%5Cmu+_z%7D+-+%7B%5Cmu+_x%7D%7D+%5Cright%29%5C%5C+%5Ctherefore+%7B%5Csigma+%5E2%7D+%3D+%5Cfrac%7B%7B%7B%5Csigma+_x%7D%5E2%7B%5Csigma+_z%7D%5E2%7D%7D%7B%7B%7B%5Csigma+_x%7D%5E2+%2B+%7B%5Csigma+_z%7D%5E2%7D%7D+%3D+K%7B%5Csigma+_z%7D%5E2+%3D+%5Cleft%28+%7B1+-+K%7D+%5Cright%29%7B%5Csigma+_x%7D%5E2+%5Cend%7Barray%7D%5C%5C

代入变量得:

equation?tex=%5Cleft%5C%7B+%5Cbegin%7Barray%7D%7Bl%7D+K+%3D+PH%5ET%2F%5Cleft%28+%7BHPH%5ET+%2B+R%7D+%5Cright%29%5C%5C+x+%3D+Hx+%2B+K%5Cleft%28+%7Bz+-+Hx%7D+%5Cright%29%5C%5C+P+%3D+%281+-+KH%29P+%5Cend%7Barray%7D+%5Cright.%5C%5C

上式即为Kalman滤波器是更新环节,其中H是从状态变量到观测量/输出变量的转换矩阵。

3.2实验分析

我们可以看到的是,Kalman滤波器有很多参数,除去运动模型形式假设的F和B参数,存在有多个协方差矩阵P、Q、R。下面我们逐一分析各个参数的影响。

协方差矩阵变化规律

在此之前可以看看不经过更新校正的状态变量均值和方差的变化,假设有如下的运动方式:

equation?tex=%5Cbegin%7Barray%7D%7Bl%7D+%5Cleft%5C%7B+%5Cbegin%7Barray%7D%7Bl%7D+x+%3D+x+%2B+%5CDelta+tv%5C%5C+v+%3D+v+%5Cend%7Barray%7D+%5Cright.+%5CRightarrow+%5Cleft%5B+%7B%5Cbegin%7Barray%7D%7B%2A%7B20%7D%7Bc%7D%7D+x%5C%5C+v+%5Cend%7Barray%7D%7D+%5Cright%5D+%3D+%5Cleft%5B+%7B%5Cbegin%7Barray%7D%7B%2A%7B20%7D%7Bc%7D%7D+1%26%7B%5CDelta+t%7D%5C%5C+0%261+%5Cend%7Barray%7D%7D+%5Cright%5D%5Cleft%5B+%7B%5Cbegin%7Barray%7D%7B%2A%7B20%7D%7Bc%7D%7D+x%5C%5C+v+%5Cend%7Barray%7D%7D+%5Cright%5D%5C%5C++%5CRightarrow+P+%3D+%5Cleft%5B+%7B%5Cbegin%7Barray%7D%7B%2A%7B20%7D%7Bc%7D%7D+1%26%7B%5CDelta+t%7D%5C%5C+0%261+%5Cend%7Barray%7D%7D+%5Cright%5DP%7B%5Cleft%5B+%7B%5Cbegin%7Barray%7D%7B%2A%7B20%7D%7Bc%7D%7D+1%26%7B%5CDelta+t%7D%5C%5C+0%261+%5Cend%7Barray%7D%7D+%5Cright%5D%5ET%7D+%5Cend%7Barray%7D%5C%5C

则有状态变量分布如下:

887e11d25bb04e0d9368162ba0aed2c7.png

可以看到,在不引入量测的情况下,物体一直保持匀速直线运动,所以其误差的协方差分布一直向水平方向倾斜。

(1)不同Kalman模型

下面我们分别用一阶和二阶的Kalman滤波器去跟踪一个直线运动的物体,其中一阶Kalman滤波完全依赖量测的矫正,二阶Kalman滤波加入了速度因素,可见二阶模型跟踪效果更好,不过其实在这里,如果加入控制变量u,也能恰好达到匀速直线运动的效果。

9a601d5cfc1e18914df7a83c13a8189c.png

(2) R和Q的影响

fbf9a009bcda42897e17f816802144bf.png

e64a3c0030eef9711821b8d7cc2bf1b6.png

d7a8ac0557094237ed2c4b0a355320a2.png

5c77625388ae8b7477a8b79ffb3c3ef0.png

9a448ef8dd839e7862e37bfb0d369d9f.png

对于匀速直线运动,我们保持量测误差R不变,对比运动估计误差Q发现,Q越小,模型越相信运动规律,而模型正好也是匀速直线运动,因此跟踪效果更好。而当R变大时,模型会更加不相信量测结果,从而使得状态变量的协方差越来越大,但是由于预测环节模型的准确性,跟踪依然比较准确,可以从图中看出,当初始状态偏差很大时,模型不相信量测,导致跟踪轨迹很难与目标轨迹一致,而当R变小却可以重新跟踪到。

(3)P的影响

391bec88d7e4b70db6509dd67723d21d.png

ddbcf0bbe087793463d02c1d978eeef9.png

对于上面两幅图,表面上看上去P=1时,跟踪轨迹跟贴近于真实轨迹,但是如果将协方差矩阵P中的参数绘制出来即为:

6ae456e5248392e737dbf90dc2a72bb8.png

b3d75162e9d4b7b5e75573845bb99518.png

我们可以发现,后者关于位置的方差变化趋势比较复杂,虽然二者均能跟踪到,但是当初始状态估计不好时,P过小会使得跟踪周期变长,而P较大时跟踪效果没有明显降低,因此通常P取值较大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值