对kalman滤波的理解

来源:互联网 发布:红旗linux 编辑:程序博客网 时间:2024/05/14 03:19

为什么要使用kalman滤波器???

       假设我们要跟踪一个穿过摄像机视场的人。每一帧都要确定这个人的位置。我们可以通过提取边缘,提取连通区域等方法提取目标人。但是我们不能保证每一帧都获得完美跟踪图像。有很大可能获得的目标人没有完全框上。或者丢失目标,或者跟踪错误目标。

for example:

    


影响跟踪的因素

传感器的不准确(摄像头有损坏)
物体之间的遮挡或者进入了阴影。
物体的重叠或者融合。
腿或者手臂在行走中的摆动造成的明显的形状变化。


解决方法

kalman滤波器

粒子滤波器


他们都属于预估器


什么是预估器???

预估器至少能做两个阶段工作
预测阶段:从过去得到的信息进一步修正模型以取得人(或物体)的下一个将
将会出现的位置。
校正阶段:我们获得一个测量值,然后与基于前一次测量的预测值进行调整。


kalman滤波器的定义

卡尔曼滤波(Kalman filtering)一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。
我个人的理解(在二维目标跟踪画面中):通过上一帧画面中的状态空间模型进行一个预测,通过对这一帧画面中状态空间模型进行一个测量,之后通过信息融合的方法(卡尔曼增益矩阵)把预测和测量值进行融合,算出一个在一定噪声条件下,目标最可能出现的值。

为了便于理解!我从网上找到了一个以牛定类比卡尔曼例子

话说,有一辆质量为m的小车,受恒定的力F,沿着r方向做匀加速直线运动。已知小车在t-ΔT时刻的位移是s(t-1),此时的速度为v(t-1)。求:t时刻的位移是s(t),速度为v(t)?

由牛顿第二定律,求得加速度:

那么就有下面的位移和速度关系:



如果将上面的表达式用矩阵写在一起,就变成下面这样:


卡尔曼滤波器是建立在动态过程之上,由于物理量(位移,速度)的不可突变特性,这样就可以通过t-1时刻估计(预测)t时刻的状态,其状态空间模型为:


对比一下(1)(2)式,长得及其相似有木有:


匀加速直线运动过程就是卡尔曼滤波中状态空间模型的一个典型应用。下面我们重点关注(2)式,鉴于研究的计算机信号都是离散的,将(2)是表示成离散形式为:


x(n)是状态向量,包含了观测的目标(如:位移、速度)
u(n)是驱动输入向量,如上面的运动过程是通过受力驱动产生加速度,所以u(n)和受力有关
A是状态转移矩阵,其隐含指示了“n-1时刻的状态会影响到n时刻的状态(这似乎和马尔可夫过程有些类似)”
B是控制输入矩阵,其隐含指示了“n时刻给的驱动如何影响n时刻的状态”(但一般模型中用不到)
w(n)是过程噪声,w(n)~N(0,Q)的高斯分布,过程噪声是使用卡尔曼滤波器时一个重要的量,后面会进行分析。
计算n时刻的位移,还有一种方法:拿一把长的卷尺(嗯,如果小车跑了很长时间,估计这把卷尺就难买到了),从起点一拉,直接就出来了,设测量值为z(n)。计算速度呢?速度传感器往那一用就出来了。

然而,初中物理就告诉我们,“尺子是量不准的,物体的物理真实值无法获得”,测量存在误差,我们暂且将这个误差记为v(n)。这种通过直接测量的方式获得所需物理量的值构成观测空间:


z(n)就是测量结果,H(n)是观测矢量,x(n)就是要求的物理量(位移、速度),v(n)~N(0,R)为测量噪声,同状态空间方程中的过程噪声一样,这也是一个后面要讨论的量。大部分情况下,如果物理量能直接通过传感器测量,

  

  

现在就有了两种方法(如上图)可以得到n时刻的位移和速度:一种就是通过(3)式的状态空间递推计算(Prediction),另一种就是通过(4)式直接拿尺子和传感器测量(Measurement)。致命的是没一个是精确无误的,就像上图看到的一样,分别都存在0均值高斯分布的误差w(n)和v(n)。

那么,我最终的结果是取尺子量出来的好呢,还是根据我们伟大的牛顿第二定律推导出来的好呢?抑或两者都不是!

使用kalman



kalman滤波器中变量必须满足的条件

估计值和测量值必须是独立的高斯分布
假设:测量值z(n)~N(uz,σz^2),估计值x(n)~N(ux,σx^2)

如下图:估计量的高斯分布和测量量的高斯分布经过融合后为绿色的高斯分布曲线。






则(10)(11)变成:



kalman滤波器最重要的概念

卡尔曼滤波器是离散的。依赖于对固定时间间隔内反复对目标状态空间的值进行测量。虽然你也可以近似估计值。
卡尔曼滤波器是递归的,意味着他也可以预测未来的值在现在的值基础上。
卡尔曼滤波器通过得到现实的状态空间的测量值,以及基于前一帧的,来获得最佳值。
模型必须是线性相关以及满足高斯分布的。




0 0
原创粉丝点击