关于卡尔曼滤波的简单解释
卡尔曼滤波直观解释:
假设两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办?
取平均。
假设已知其中贵的传感器器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗?
加权平均。
怎么加权?假设两个传感器的误差都符合正态分布,假设知道这两个正态分布的方差,用这两个方差值,可以得到一个“最优”的权重。
接下来,重点来了:假设只有一个传感器,但是还有一个数学模型。模型可以帮助算出一个值,但也不是那么准。怎么办?
把模型算出来的值,和传感器测出的值,(就像两个传感器那样),取加权平均。
OK,最后一点说明:模型其实只是一个步长的,也就是说,知道x(k),可以求x(k+1)。问题是x(k)是多少呢?答案:x(k)就是上一步卡尔曼滤波得到的、所谓加权平均之后的那个、对x在k时刻的最佳估计值。
于是迭代也有了。
这就是卡尔曼滤波。
特性:
卡尔曼滤波器会对含有噪声的输入数据流(比如计算机视觉中的视频输入)进行递归操作,并产生底层系统状态(比如视频中的位置)在统计意义上的最优估计。
卡尔曼滤波利用已知规律预测目标在当前视频帧中的位置,当前帧会给予上一帧的信息。
卡尔曼滤波的两个阶段:
预测:卡尔曼滤波使用由当前点计算的协方差来估计目标的新位置。
更新:卡尔曼滤波记录目标的位置,并为下一次循环计算修正协方差。
拓展卡尔曼滤波:
基本概念:
扩展卡尔曼滤波(Extended Kalman Filter,EKF)是标准卡尔曼滤波在非线性情形下的一种扩展形式,它是一种高效率的递归滤波器(自回归滤波器)。
EKF的基本思想是利用泰勒级数展开将非线性系统线性化,然后采用卡尔曼滤波框架对信号进行滤波,因此它是一种次优滤波。
总结:
EKF滤波通过泰勒展开公式,把非线性方程在局部线性化,使得高斯分布的变量在经过线性变换后仍然为高斯分布,这使得能继续把标准卡尔曼滤波KF的框架拿过来用,总体来说,EKF在函数的非线性不是很剧烈的情形下,能够具有很不错的滤波效果。
不足之处:
其一,它必须求解非线性函数的Jacobi矩阵,对于模型复杂的系统,它比较复杂而且容易出错;
其二,引入了线性化误差,对非线性强的系统,容易导致滤波结果下降。
基于以上原因,为了提高滤波精度和效率,以满足特殊问题的需要,就必须寻找新的逼近方法,于是便有了粒子滤波PF和无迹卡尔曼滤波UKF。
参考书籍:
《Open CV 3 计算机视觉 Python语言实现》
参考链接:
https://www.zhihu.com/question/23971601
https://blog.csdn.net/weixin_42647783/article/details/89054641