向面试官一句话解释卡尔曼滤波:

用上一次的最优状态估计和最优估计误差去计算这一次的先验状态估计和先验误差估计;

用1得到的本次先验误差估计和测量噪声,得到卡尔曼增益;

用1,2步骤得到所有先验误差估计和测量噪声,得到本次的最优估计。

一句话解释:对模型的预测值和实际的观测值进行加权,迭代计算出未来的状态。

对于上面三句话的一些解释:

先验:根据以往的结果去推导

后验:得到当前结果之后再去修正

卡尔曼增益作用:将“粗略估计”变成“最准确的估计”

卡尔曼滤波解决的根本问题:如何让噪声的干扰最小(噪声:可以理解为 实际值-预测值 最小)

卡尔曼滤波的本质:参数化的贝叶斯模型

算法核心思想:根据当前的仪器“测量值”和上一刻的“预测值”和“误差”,计算得到当前的最优量,再预测下一刻的量。

为什么称卡尔曼滤波:首先,是卡尔曼本人提出来的;其次,输出变量都是输入变量的线性组合,所以可以看做是一种滤波算法。

卡尔曼滤波器可以从最小均方误差的角度推导出,也可以从贝叶斯推断的角度来推导。

下面从最小均方误差的角度推导卡尔曼滤波。

基础背景知识

卡尔曼的核心:预测+反馈

观测数据:代表传感器采集的实际数据,可能存在或多或少的误差 最优估计:算法计算出来接近于真实值的估计

均方误差:误差(每个估计值与真实值的差)的平方,再求和,再求平均。多样本时,均方误差等于每个样本的误差平方乘以该样本出现的概率,再求和。

方差:描述随机变量的离散程度,具体来说是变量值离期望值的距离。

最小均方误差估计:估计参数,使得估计出来的模型和真实值之间的误差平方期望最小。

两个变量之间的协方差:

x==y,就是方差。在协方差矩阵中,对角线元素即为方差。x, y都大于期望,协方差为正直;相应自行分析。

卡尔曼滤波核心公式及解释

V(k)为测量噪声 Z(K)为K时刻的测量值

python-opencv 中的kalman滤波模块

应用重点说明: A: 转移矩阵 B: 控制矩阵 H:测量矩阵

一维中的卡尔曼滤波实现(注重原理的理解)

import numpy as np

import matplotlib.pyplot as plt

#这里是假设A=1,H=1, B=0的情况

# 故动态模型 X(k) = X(k-1) + 噪声

# Z(K) = X(k)

# 动态模型是一个常量

# intial parameters

n_iter = 50

sz = (n_iter,) # size of array

x = -0.37727 # truth value (typo in example at top of p. 13 calls this z)

z = np.random.normal(x,0.1,size=sz) # observations (normal about x, sigma=0.1)

Q = 1e-5 # process variance

# allocate space for arrays

xhat=np.zeros(sz) # a posteri estimate of x

P=np.zeros(sz) # a posteri error estimate

xhatminus=np.zeros(sz) # a priori estimate of x

Pminus=np.zeros(sz) # a priori error estimate

K=np.zeros(sz) # gain or blending factor

R = 0.1**2 # estimate of measurement variance, change to see effect

# intial guesses

xhat[0] = 0.0

P[0] = 1.0

for k in range(1,n_iter):

# time update

xhatminus[k] = xhat[k-1] #X(k|k-1) = AX(k-1|k-1) + BU(k) + W(k),A=1,BU(k) = 0

Pminus[k] = P[k-1]+Q #P(k|k-1) = AP(k-1|k-1)A' + Q(k) ,A=1

# measurement update

K[k] = Pminus[k]/( Pminus[k]+R ) #Kg(k)=P(k|k-1)H'/[HP(k|k-1)H' + R],H=1

xhat[k] = xhatminus[k]+K[k]*(z[k]-xhatminus[k]) #X(k|k) = X(k|k-1) + Kg(k)[Z(k) - HX(k|k-1)], H=1

P[k] = (1-K[k])*Pminus[k] #P(k|k) = (1 - Kg(k)H)P(k|k-1), H=1

plt.figure()

plt.plot(z, 'k+', label='noisy measurements') # 测量值

plt.plot(xhat, 'b-', label='a posteri estimate') # 过滤后的值

plt.axhline(x, color='g', label='truth value') # 系统值

plt.legend()

plt.xlabel('Iteration')

plt.ylabel('Voltage')

plt.show()

python多目标跟踪卡尔曼滤波_卡尔曼滤波+单目标追踪+python-opencv相关推荐

  1. 全国python一级考试_全国青少年软件编程(python)等级考试试卷(一级)

    下列选项中可以获取Python整数类型帮助的是 A.>>> help(float)B.>>> dir(str)C.>>> help(int)D.& ...

  2. python语言通过()来体现语句逻辑关系_【单选题】Python语言通过( )来体现语句之间的逻辑关系。...

    [单选题]Python语言通过( )来体现语句之间的逻辑关系. 更多相关问题 根据<民事诉讼法>的规定,当事人可以委托诉讼代理人()A.1人B.2人C.1-2人D.2-3人 根据我国< ...

  3. 单目标追踪——常见的评价指标和评估方法梳理

    目录 评估指标 精确度(Precision) 归一化的精确度(Norm. Prec) 成功率(Success Rate/IOU Rate/AOS) EAO F-score 评估方法 OPE(One-P ...

  4. 单目标追踪——【相关滤波】C-COT原理与ECO基于C-COT的改进

    目录 C-COT:Continuous Convolution Operator Tracker 文章侧重点 连续卷积算子 目标追踪框架 初始化过滤器: 追踪流程 ECO 文章侧重点 因式卷积因子 生 ...

  5. 单目标追踪——【Transformer】Transformer Meets Tracker:Exploiting Temporal Context for Robust Visual Tracking

    目录 文章侧重 网络结构 具体的Encoder和Decoder的结构 模型的推理过程 Transformer这个香饽饽怎么能不用来迁移到目标追踪里呢. 我计划对CVPR2021的3篇将Transfor ...

  6. python中sqrt(4)*sqrt(9)_【单选题】Python表达式sqrt(4)*sqrt(9)的值为

    [单选题]Python表达式sqrt(4)*sqrt(9)的值为 更多相关问题 构成营业利润的要素主要包括(). A.营业收入 B.营业成本 C.营业税金及附加 D.所得税费用 E.管理费用 已知二次 ...

  7. python语句中print(0xa+0xb)的输出结果是_【单选题】Python语句print(0xA+0xB)的输出结果是( )...

    [单选题]Python语句print(0xA+0xB)的输出结果是( ) 更多相关问题 [多选] 截门式止回阀的优点是(). [单选] 互联网群组信息服务提供者应当按照()的原则,对互联网群组信息服务 ...

  8. python语言的计算生态规模有多大_【单选题】Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大?...

    [单选题]Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大? 更多相关问题 [问答题,简答题] 顾客关系管理系统如何给企业 ...

  9. python中用来表示赋值的符号是_【单选题】Python语言中,用来表示“赋值”的符号是 。A. =B. #C. D. :...

    [单选题]Python语言中,用来表示"赋值"的符号是 . A. = B. # C. & D. : 更多相关问题 [单选] 下列亲属不能代办年度总额以内个人结售汇业务的是( ...

  10. python arima模型_时间序列分析 ARIMA模型 Python(2)

    最近做了一个时间序列分析的项目.时间序列分析不同于以前的项目--看一下相关的库怎么用,就可以快速上线应用.它是非常需要你的基础知识的,Hamilton关于<时间序列分析>方面的知识,写了厚 ...

最新文章

  1. AI与人类围棋士的差距到底有多大?
  2. OpenStack的部署T版(七)——cinder模块
  3. BC div2补题以及 复习模除 逆元__BestCoder Round #78 (div.2)
  4. win10系统VMware Workstation与Device/Credential Guard不兼容怎么办
  5. android 事务管理软件,安卓 Android基于安卓移动终端的个人事务管理系统
  6. element table多选表格_【经验总结】vue + element-ui 踩坑—— table 篇
  7. python小论文范文3000字_完整的论文范文3000字 [论文的名字 ]
  8. Minitab 控制图
  9. mysql 2000安装教程_Win10 64位安装个人版SQL2000图文教程
  10. java点击登录实现跳转_页面跳转的简单实现(单点登录)
  11. 前端核心工作内容有哪些?
  12. 双目视觉摄像机的参数标定参考坐标系介绍
  13. 推荐一个阅读代码、文档的利器:屏幕贴图工具
  14. 【快递100接口BUG】数据库时区为0时区,而实际时区为东八区时间,导致存入时间多出八个小时
  15. matlab实现LSB图像水印的嵌入与提取
  16. 短视频营销的3个重点:KOL化+话题性+深度互动
  17. codewars题目记录
  18. 收深圳2022年的高新技术企业(软件开发)
  19. matlab 求解体积,matlab如何计算多面体体积
  20. html网页制作摘要,网页制作初步—html摘要.ppt

热门文章

  1. ALtium Designer: .prjscr .pas转换成封装库(从ADI公司下载封装)
  2. 修改电脑软件默认安装位置、下载位置
  3. <Input />输入框及input的相关属性
  4. java8 四大函数式接口 和 用于数据处理的 stream流 使用详解
  5. cad引出线段lisp_给定起终点,如何提取线段连线关系表 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  6. 我自己曾经经历的CMMI3认证通过关于软件测试的访谈
  7. echarts 国际化
  8. 22-广搜深搜 Breadth-first Search Depth-first Search
  9. 如何下载某个网站的ico图标
  10. 软件英文术语缩写大全