本文主要是介绍跟着鲁sir学CV_Opencv(10)卡尔曼滤波,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
卡尔曼滤波器由鲁道夫·卡尔曼(Rudolf E. Kálmán)在1960年提出,广泛应用于导航系统、信号处理、机器人定位、金融等多个领域。
主要分为两阶段:预测与更新
贝叶斯滤波器
贝叶斯框架下:预测(先验)+观测(似然,有噪声)→目标状态
状态描述:向量(位置,姿态,速度,加速度...)
观测描述:(位置,速度...)有噪声
滤波器求解
两个假设
预测 
更新
预测与观测连乘,形成后验
使得后验概率最大
卡尔曼滤波
这一次状态与上一次状态和过程噪声有关
这一次观测与这一次状态和观测噪声有关
【注】噪声都服从高斯分布
状态转移概率
线性
q_i-1服从N(0,Q_{i-1})
观测概率
线性
ri服从N(0,Ri)
左侧上两个为预测的均值和标准差
若
则经过计算约去, 以预测为主
若
则 与预测无关,以观察为主
粒子滤波 非线性
重要性采样
但是不一定好酸,所以用下面这个
回到重要性采样
认为只定了q(x)分布,独立采样k个结果的值
类比,引入重要性采样q分布
然后计算Wi,最后得到递推公式
但是这有一个粒子权重退化的问题,就是,一开始权重大的迭代会更加突出,一开始权重小的迭代后更小
解决:重采样
用个数代替权值,每个粒子概率是1%
上下两个表达方式一致
则 w消去,因为都是一样的1%
计算过程
这篇关于跟着鲁sir学CV_Opencv(10)卡尔曼滤波的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!