Kalman filters
Posted ariel-dreamland
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kalman filters相关的知识,希望对你有一定的参考价值。
接触3D tracking一周多,学习一下kalman filters。借鉴优质博客,自己记录下来,便于总结和巩固。
ref:https://www.zhihu.com/people/huang-piao-72/posts?page=1
卡尔曼滤波器是多目标跟踪任务中的一个经典的运动模型。
1 背景介绍
卡尔曼滤波无论是在SOT还是MOT领域,都属于一种很基础的算法,源于自动控制理论中的一种方法。
首先,卡尔曼滤波器处理的是随机信号。
假设这两个值为23℃和25℃,这其实就对应着跟踪问题中的运动估计和实际跟踪结果,此时我们究竟相信谁呢?可利用他们的均方误差来计算:
由此可将均方误差不断地传递下去,从而估计估算出最优的温度值。
为了方便解释卡尔曼滤波方程,下面以一辆小车的运动为例,假设我们已知上一时刻小车的状态,现在要估计当前时刻的状态:
可以看到,对于一个线性系统,我们能根据上一时刻状态得到一个简单的估计量,其中F代表了状态转移矩阵,B则代表了控制矩阵,反映了加速度如何作用于当前状态。假设每一时刻的各个维度的不确定性都通过协方差矩阵来描述,另外预测模型本身也不一定准确,所以系统状态的不确定性如下:
有了预测值,现在我们通过在路上布设装置来测定小汽车的位置,观测值的误差记为V,然后将真实状态x通过一定变换,可以得到真实状态x和观测状态y的关系:
显然,这里的H是[1 0],因为观测到的是位置信息p,同样的我们需要用一个协方差矩阵R来取代上式中的V,以衡量观测不确定性。现在,我们已知此时刻的预测值,观测值,以及几个不确定性矩阵,可以得到此时刻最终的估计:
其中 ?表示实际观测值和预估观测值之间的残差,?为卡尔曼系数,又叫滤波增益矩阵。可以看到其中同时包含预测状态的协方差矩阵和观测误差矩阵,如果我们相信预测模型多一点,那么对应的协方差矩阵会更小,则K会小一点,反之如果我们相信观测模型多一点,那么K会更大。
最后我们需要更新最有估计值的噪声分布:
2 高斯分布融合
先从高斯分布说起,Kalman滤波算法的假设分布即为高斯分布,而一维的高斯分布概率密度函数及其分布示意图如下:
这是一个很简单的高斯分布图,标准差决定分布曲线宽窄,均值决定其中心位置。那么如果我们对任意两个高斯分布进行运算,则会得如下的效果图:
其中两个高斯分布的运算都加入了归一化,可以发现,他们的分布融合也是高斯分布,下面我们对这两个新的高斯分布进行求解证明,主要讲乘法融合,加法以此类推。对于任意两个高斯分布,将二者相乘之后可得:
对于这个概率分布函数,我们利用高斯分布的两个特性进行求解,其一是均值处分布函数取极大值,其二是均值处分布曲线的曲率为其二阶导数,并且与s2成反比。
因此我们可以得到如下结论:
当然我们遇到的问题大多是多阶的所以要引入多维高斯分布:
链接:https://zhuanlan.zhihu.com/p/109859418
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
3.1理论推导
首先假设状态变量为x,观测量为z,那么结合贝叶斯后验概率模型:
多目标跟踪从形式上讲可以理解为最大化后验概率,现在结合第二节的内容,假设状态变量x服从高斯分布,反映的是运动模型的不稳定性。基于状态变量x的估计先验,观测量z也服从高斯分布,反映的是量测误差,比如传感器误差。那么我们就可以利用高斯分布的融合来刻画Kalman滤波器的更新部分。
这里我们先给出一阶Kalman滤波器的公式,其中预测环节就是基于线性运动特性对状态变量的预测,即:
其中? 为状态变量的均值,? 为预测方差,那么?对应的高斯分布方差即为,而? 则是线性运动模型本身的误差,由此得到预测环节。即预测结果服从高斯分布 ?。
对于更新环节,同样地,假设量测误差分布满足 ?,那么:
代入变量得:
上式即为Kalman滤波器是更新环节,其中H是从状态变量到观测量/输出变量的转换矩阵。
3.2实验分析
我们可以看到的是,Kalman滤波器有很多参数,除去运动模型形式假设的F和B参数,存在有多个协方差矩阵P、Q、R。下面我们逐一分析各个参数的影响。
- 协方差矩阵变化规律
在此之前可以看看不经过更新校正的状态变量均值和方差的变化,假设有如下的运动方式:
- 则有状态变量分布如下:
可以看到,在不引入量测的情况下,物体一直保持匀速直线运动,所以其误差的协方差分布一直向水平方向倾斜。
(1)不同Kalman模型
下面我们分别用一阶和二阶的Kalman滤波器去跟踪一个直线运动的物体,其中一阶Kalman滤波完全依赖量测的矫正,二阶Kalman滤波加入了速度因素,可见二阶模型跟踪效果更好,不过其实在这里,如果加入控制变量u,也能恰好达到匀速直线运动的效果。
(2) R和Q的影响
对于匀速直线运动,我们保持量测误差R不变,对比运动估计误差Q发现,Q越小,模型越相信运动规律,而模型正好也是匀速直线运动,因此跟踪效果更好。而当R变大时,模型会更加不相信量测结果,从而使得状态变量的协方差越来越大,但是由于预测环节模型的准确性,跟踪依然比较准确,可以从图中看出,当初始状态偏差很大时,模型不相信量测,导致跟踪轨迹很难与目标轨迹一致,而当R变小却可以重新跟踪到。
(3)P的影响
对于上面两幅图,表面上看上去P=1时,跟踪轨迹跟贴近于真实轨迹,但是如果将协方差矩阵P中的参数绘制出来即为:
我们可以发现,后者关于位置的方差变化趋势比较复杂,虽然二者均能跟踪到,但是当初始状态估计不好时,P过小会使得跟踪周期变长,而P较大时跟踪效果没有明显降低,因此通常P取值较大。
作者:黄飘
链接:https://zhuanlan.zhihu.com/p/109859418
来源:知乎
很好的一个知乎账号,推荐同道中人关注。
以上是关于Kalman filters的主要内容,如果未能解决你的问题,请参考以下文章