kalman滤波——公式推导

 此篇为第③篇,多目标跟踪系列文章:
基础demor入门①②;公式推导③④;深入分析初始化参数的影响⑤;
① Matlab Kalman滤波例子——小球跟踪解析 :matlab官方例子,单目标跟踪。匀速模型和匀加速模型
Matlab Kalman Filter based Multiple object Tracking 官方例子 多目标跟踪_hello world-CSDN博客matlab官方例子,多目标跟踪。注意有匈牙利轨迹分配算法,且其中的距离计算公式为观测与预测的马氏距离,这个来源于1987年的作者的著作中。 
kalman滤波——公式推导_hello world-CSDN博客_卡尔曼滤波递推公式
理解马氏距离的公式! 理解残差和残差协方差!
多目标跟踪——阶段性进展_hello world-CSDN博客_多目标跟踪 多目标综述、Kalman滤波公式推导
kalman简单例子——初始化参数对kalman性能的影响_hello world-CSDN博客
多目标跟踪中的目标是否静止判断_hello world-CSDN博客 判断是否静止,如何计算速度
CheckStatic代码原理解析,数学公式推导。
其它优秀的博客参考:
多目标跟踪(MOT)入门 - 知乎 比较好的多目标MOT综述!
《Towards Real-Time Multi-Object Tracking》论文翻译 - 知乎
⑨ 视频轨迹跟踪分析——他山之石_hello world-CSDN博客


word文档位置: 卡尔曼滤波课程,文字实录。-电信文档类资源-CSDN下载  

 维纳滤波文章参考:维纳滤波——Wiener Filter(一些理解)_hello world-CSDN博客_维纳滤波器

0. 前言

以下来自清华电子系张颢老师的课程,百度云地址为:链接:https://pan.baidu.com/s/1Ft5hYkDpWuvijEeHB7Cy-g    提取码:94x3 
7.1 & 7.2 kalman filtering。文档为课程文字版。配合视频食用更佳。
word文档位置: 卡尔曼滤波课程,文字实录。-电信文档类资源-CSDN下载  

 两种思想比较重要:①状态空间 ②预测校正

卡尔曼滤波与维纳滤波的根本区别:
①维纳滤波是一个黑箱,用传递函数描述输入到输出的关系(线性),然后从数据出发推导出这个滤波器(最优的线性滤波——维纳滤波)。这里面没有加入先验知识,只依靠统计知识从输入和输出中推断二者的关系。
从数据中孵化出来的东西,从某种意义上来讲,还是比较肤浅。
②先验知识如何在信号处理的过程中体现?如何利用?——先验作为系统的状态来体现。
决定系统输出的关键也许
并不在输入上,而在状态上。状态属于系统内部的特性
要检讨自己的状态模型是否建立的正确

  •  状态方程,状态空间内部也一定有噪声Vn,要克服掉噪声的影响。
  • 允许信号是非平稳的,随时间变化而变化
  • 状态空间的思想与传递函数有着本质的区别。把先验加入到系统中,就通过状态空间来实现。
  • 卡尔曼增益是卡尔曼滤波中非常重要的位置,调节这个增益对我们的估计会产生非常重要的影响。它把残差作为转化。

状态空间真的是一个革命性的变化,大家千万不要小看。他彻底改变了我们信号处理的面貌。已有知识根本没有插足之地,你可能对这件事是有认识的。这个认识无论是来自这个基础的这个自然科学规律,还是来自你在工程事件当中积累的经验,你总之是有认识的,但这个认识在你原有的那个体系,在维纳滤波那个体系下,你会发现用不上。但是有了状态方程,你有的认识就都可以用上。这一点非常本质非常本质

  • 但是后头的人们发现这个Pn|n递推误差真的非常好。因为你可以在不断的得到目标估计越来越精准的这个值的同时,还能评估估计的效果这是一种性能评估。卡尔曼滤波非常牛,他第一次在信号处理的历史上第一次做出了在线性能评估就每一步的性能他都能评估。每一步的性能他都能评估,他通过这样的递推就能慢慢的。
  • 为什么,没关系?他自己会学习。)就是随着你数据的增多,他自己会慢慢的摸着其中的规律,他会自己摸,慢慢的摸着其中的规律他会学习,哪怕你的初始值给的的哪怕离提千里都没有关系。他会越来越准确的去接近那个真正的值,刚一开始可能误差是很大。没有问题。慢慢的,目标中抖动就比较小了。
  • 比如打飞机、打鸟…… 打活动靶。我们为什么要预测,预测也是为了有效的进行我一旦框变红了就意味着我判断这个估计误差已经很小。保持一段时间很小说明我锁定命说明我锁定然后我再打我打提前量,那就基本上应中率有保证。『打击目标中一定有跟踪和预测的部分!
  • 你肯定不能打那个当前位置,而是要预测,预测他要飞到什么位置才打。

状态方程、模型,一定有自己的适用范围。

不可能有完美无缺的模型因为模型都是人造,数据才是上帝,上帝视角才能看到完美无缺的世界,我们根本看不到,所以不可能有完美无缺的无尽。再一点,先记住了啊,没有包治百病的药
没有一个模型是一无是处的他一定都有自己的适用范围

可能就这模型整个就错了,这看错了,我刚才一说过了,哎呀。瞎了狗眼这个这个看错了看错了这个叫什么呢。这个叫模型失配模型失配是他们卡尔曼滤波非常怕的一件事,因为一旦模型失配了。你所有的努力全部都白费了,那是一点意义都没有,因为你基本模型不对。

你见过飞机横向平移,横向平移,有矢量喷管技术的飞机。真的可以做横向平移,意味着什么?那就意味着你加速度有一个突变,加速度有突变就意味着你的短时内匀加速模型瞬间就失效了,所以他马上就可以甩开你这个导弹的追逐

⑤从对抗的角度来说,最好的对抗是什么。最好的对抗,这是从根上颠覆掉你,怎么叫根上颠覆,就是从状态方程,让你的状态方程列的就不对,那往下的故事肯定就没得讲了

⑥为什么这个弹道能算的那么准呢?原因就在于那个他那个方程。那肯定不是这个样子嘛。对对对对对。那肯定不是这个样子。那么那是一个非常复杂的方程列出的他们列出的这个状态方程那写上两排版都不一定能写到就是把各种各样的因素,各种各样的因素能考虑到的全部考虑。因此,他可以有一个精准的对于飞行轨迹飞行规律的建模。在这个建模的基础上,我们再来做卡尔曼滤波那就得心应手,

1. 公式递推结果

(1)观测 (u1,E1),即Yn+1和观测噪声协方差矩阵。 预测部分为:(u0,E0),预测的结果按照预测矩阵

文章来源: 【翻译】详解卡尔曼滤波原理

① 卡尔曼适合在连续变化的系统中使用,『假定状态是一个连续变化,没有突变』。
②  在跟踪中,GPS也不一定一直有效,比如经过一个隧道等,信号没有了。此时就需要机器人本能的能够预测一段时间,从预测和观测两者来得到一个最优的估计。
③ 可能的Bu的外部控制量的输入,比如加速、减速,加油门、踩刹车等的动作,可以通过Bu的外部控制量来加入到系统中。这里就是加入外部模型的一个地方。

   【翻译】详解卡尔曼滤波原理 从这里的参考推断:

 所以,相当于是:

冷启动/初始化阶段:在一直有观测数据的输入后,Pn|n调整K不断变小,对观测Y的依赖变小。就越来越不依赖于观测了。 

但是这样的问题是:越往后,就只依赖于模型和预测。那么观测就不太重要了!

  • 如果发生了突变,就是模型失配。是一定赶不上的!那此时是卡尔曼致命的问题发生了
  • 也就是飞机/目标,突然启动,突然改变方向,就会发生失配

2. 推导过程

3. 距离计算公式

Matlab中的距离计算公式不一样,计算的是 distance(实际观测 - 预测位置) = 马氏距离,用预测误差的协方差矩阵来加权的

 与上面的代码相对应的公式如下:就是一个马氏距离!


马氏距离的理解:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值