关于卡尔曼滤波的数学原理
介绍
首先把这几个看着发麻的公式放在这里坐镇!
这五个公式看起来非常难受,我们先解释一下符号的含义:$\bar x_i^-$表示$P(x_i|y_0,…,y_{i-1})$的概率值,而$\bar x_i$表示为$P(x_i|y_0,…,y_{i})$的概率值。前后两者对应的协方差矩阵为:$P_i^-$和$P_i$,$y_i$表示i状态的观测值。
在每种情况下$x_{i-1}^-$与$x_{i-1}$都是已知的,因为是已经确定的概率,我们要做的就是计算出下一个状态的$X_i^-$。这里要补充一点,如果你是在计算机视觉中使用的话,公式1可以简化为:
这样前面的所有公式都是已知量了,我们只需更新K的值即可。而1和2就是我们需要预测的内容,345就是我们需要进行的更新。
推导
首先我们假设一种线性的环境方程。x包含了所有的变量值的向量,比如(x坐标,y坐标)我们提供了环境状态方程:
其中F是负责状态转移,B是控制输入的矩阵,u为外界提供的输入,ε为过程噪声。这样我们就有(1)式子。为了观测状态,我们有状态更新:
H为状态观测矩阵,负责使用预测值去得到观测值,需要进行测量。v为测量噪声。
由K的定义为K=预测误差/(预测误差+测量误差)可有:
得到(4)公式:
从4式和7式我们写出:
简单变换一下:
对于实对称矩阵,有:$AA^T=A^2$,后面的协方差矩阵包含平方项,所以只需展开矩阵转置积就可以了
这样协方差矩阵为:
R为噪声,由此展开为:
为了最小化协方差,我们让它对K的偏导数为0:
所以我们得到3式:
我们联立11与14式得到第5条式子:
最后我们使用状态更新设e为先验状态的误差:
可以化简为递推式子:
我们使用协方差的计算方式计算:
我们使用对称矩阵的平方计算一下:
应用
先占个位置,想起来就补上。
总结
本文着重推导了卡尔曼滤波公式,知其然亦要知其所以然,同时读者可以更好的理解相关变量的含义,在计算机视觉上可以用方程预测位置。至于前向和后向平滑,这里不做过多讨论。