【深度学习|目标跟踪】快速入门卡尔曼滤波!

卡尔曼滤波详解

  • 申明
  • 一、什么是卡尔曼滤波
    • 1.1 卡尔曼滤波的使用场景
    • 1.2 卡尔曼滤波的定义
  • 二、卡尔曼滤波公式详解(无推导)
  • 三、卡尔曼滤波的简单应用

申明

  本博客参考了b站up主“华南小虎队”的卡尔曼滤波教学视频以及Lauszus Kristian Sloth Lauszus的卡尔曼滤波代码(c++实现),以及关于该代码示例中的博客教程。

一、什么是卡尔曼滤波

1.1 卡尔曼滤波的使用场景

  卡尔曼滤波是一种最优估计的算法,我们可以把他理解成一个矫正算法,或者是一种插值算法。卡尔曼滤波可以根据我们对当前任务场景的运动学建模方程以及前一时刻的状态来估计下一时刻的状态。卡尔曼滤波被广泛应用于定位导航场景中,比如疾行的汽车在隧道中穿行时,由于我们的卫星定位系统会被隧道的山体所屏蔽信号,因此,我们无法通过卫星定位的方式来直观的定位汽车在隧道中的位置,这个时候我们就可以将当前的一些状态量通过传感器获得,比如当前速度以及当前位置等作为状态量传入我们的状态方程中来进行预测,并通过卡尔曼滤波来矫正我们的预测结果。
  在机器人控制场景中,也可以使用卡尔曼滤波来赋能,对于机器人发出的控制指令往往是离散的,这样会使得我们的机器人在执行动作时显得比较“生硬”,此时我们就可以使用卡尔曼滤波来对机器人进行状态的预测来插值,使得机器人的运动变得更加丝滑。当然卡尔曼滤波也不仅局限于以上两种场景,这只是我举得例子。

1.2 卡尔曼滤波的定义

  卡尔曼滤波的适用系统线性高斯系统(这里我们提到的为常规的kalman filter 而非UKF或者EKF)。线性系统即输入与输出满足齐次性叠加性。高斯则是指外部噪声的概率分布满足正态分布的规律。以一个具有着初速度的小车来说,小车在行驶的过程中会受到地面对于轮胎的摩擦力,空气的阻力,这两者都可以算是影响小车最终位置的外部噪声,实际情况是,空气阻力以及地面的摩擦力都不是恒定的值,那么在卡尔曼滤波中,我们将其的分布假定为满足高斯正态分布的,因此我们的小车的位置最终也是满足高斯正态分布的,如下图所示:
在这里插入图片描述

二、卡尔曼滤波公式详解(无推导)

首先我们先明确一下参数:

  • 过程噪声满足均值为0,方差为Q的高斯正态分布;
  • 观测噪声满足均值为0,方差为R的高斯正态分布;

卡尔曼滤波简单可以总结为以下两个步骤:

  • 使用上一时刻的最优结果来得到当前时刻的先验估计。
  • 使用第一步的先验估计以及观测到的状态来对先验估计进行矫正得到这一时刻的最优结果。

具体来说,卡尔曼滤波可以分为两个阶段,一个是预测阶段,一个是更新阶段,如下图所示:
在这里插入图片描述
其中,最优估计的计算我们可以拆解为先验估计 + 增益 *(观测结果 - 先验估计的观测)。 也就是说,我们可以把它看成一个权重问题,即如果我们更相信观测结果(高精度的传感器),那么我们可以将卡尔曼增益的权重增大,来扩大观测结果与先验估计误差对最终估计的影响力,如果我们更相信预测的结果,那么使卡尔曼增益的值减小,来扩大先验估计对最终结果的影响力。具体的如何通过调节参数来改变卡尔曼增益的值,我们在下面会讲到。

三、卡尔曼滤波的简单应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/395722.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业微信无法正常启动 报错0xc0000142

解决办法: 1、根据处理器不同位数打开如下目录 32位:C:\Windows\System32 64位:C:\Windows\SysWOW64 我电脑是64位的,就打开:C:\Windows\SysWOW64,然后搜索:kernel32.dll 2、复制一份这个文件至…

Advanced IP Scanner - 网络扫描工具介绍

Advanced IP Scanner 是一款免费、快速且用户友好的网络扫描工具。它能够帮助用户扫描局域网(LAN)中的所有设备,提供详细的设备信息,包括IP地址、MAC地址、设备名称和厂商信息。该工具对IT管理员和普通用户都非常有用,…

2024剪辑神器盘点:四大热门剪辑软件推荐!

亲爱的朋友们,想要制作出精彩短视频,却苦于找不到合适的剪辑工具?别担心,今天要向大家推荐几款剪辑软件,它们能帮助大家更好地完成视频创作! 福昕视频剪辑 链接:www.pdf365.cn/foxit-clip/ 对…

【爬虫实战】利用代理爬取电商数据

文章目录 前言工具介绍实战获取网站数据编写代码数据展示 推荐总结 前言 当今电商平台正经历着快速的转型与升级。随着技术的进步和用户需求的多样化,电商不仅从简单的在线购物演变为综合性的购物生态系统,还融合了人工智能、大数据和云计算等先进技术。…

zdppy+vue3+onllyoffice开发文档管理系统项目实战 20240808 上课笔记

遗留的问题 1、实现删除的功能 2、分享的功能暂时往后放,因为目前没有用户,等有了用户之后再考虑做 3、增加新建和导入按钮 zdppy的学习计划 机器学习平台,QQ音乐的开源项目,https://github.com/tencentmusic/cube-studio&#…

手表运动报告生成以及手机展示

一.运动报告组成部分 一般一份运动健康的报告包括以下信息: 1.运动轨迹区。2.报告数据区。(运动总体概览,如距离,时长,训练表现等)3.曲线图表区。(心率曲线,海拔曲线,速度,配速曲线) 二.组成部…

3.OpenFeign与负载均衡

文章目录 什么是 OpenFegin0penFeign 与 Ribbon.对 consumer 的改造超时配置请求响应的压缩设置选择远程调用的底层实现技术OpenFegin 整合 LoadBalancer 负载均衡负载均衡策略的更换小结 前面消费者对于微服务的消费是通过 RestTemplate 完成的,这种方式的弊端是很明显的:消费…

Qt实现圆形窗口

重新实现paintEvent()函数。 效果如下&#xff1a; 效果为蓝色区域&#xff0c;背景是vs接面&#xff0c;代码直接复制可用&#xff0c;留给有需要的人。 #ifndef CircleWidget_h__ #define CircleWidget_h__#include <QWidget>class CCircleWidget : public QWidget {Q…

学习vue3 三,组件基础,父子组件传值

组件基础 每一个.vue 文件都可以充当组件来使用 每一个组件都可以复用 父组件引入之后可以直接当标签使用 案例&#xff1a; App.vue <script setup lang"ts"> import BaseRefAndReactive from "./components/BaseRefAndReactive.vue";</sc…

MySQL——数据表的基本操作(二)查看数据表

使用 SQL 语句创建好数据表后,可以通过查看数据表结构的定义,以确认数据表的定义是否正确。在 MySQL中,查看数据表的方式有两种,具体如下。 1、使用 SHOW CREATE TABLE 查看数据表 在 MySQL 中,SHOW CREATE TABLE语句不仅可以查看创建表时的定义语句还可以查看表的字符编码。S…

PLL基本原理、设计及应用

PLL基本原理 锁相环&#xff08;Phase-Locked Loop, PLL&#xff09;是一种基本的反馈控制系统&#xff0c;广泛应用于电子通信、信号处理、时钟同步等多个领域。PLL通过反馈机制锁定输入信号的频率和相位&#xff0c;从而实现输出信号与输入信号的同步。其基本工作原理可以概…

使用AI绘图工具生成风景图像的教程

随着人工智能技术的飞速发展&#xff0c;AI绘图工具在图像生成和艺术创作方面变得越来越强大&#xff0c;无论你是一个设计师、艺术家&#xff0c;还是仅仅对生成艺术感兴趣的爱好者&#xff0c;AI绘图工具都可以帮助你轻松地创作出惊艳的风景图像。 在这篇教程中&#xff0c;…

顶顶通手机助手拦截方案

现在很多品牌的手机&#xff0c;都自带语音助手&#xff0c;比如我用的是小米手机&#xff0c;就自带小爱助手&#xff0c;可以自动接听各种广告营销电话。如果来电号码被标记为广告营销&#xff0c;小爱助手就会自动应答&#xff0c;然后模拟真人进行对话。 现在自动外呼系统拨…

RPC通信的简单流程

远程调用者假设需要调用Login方法&#xff0c;将调用的信息通过muduo库&#xff0c;同时进行了序列化和反序列化&#xff0c;发送到Rpcprovider上&#xff0c;RpcProvider通过对象和方法表来确定需要调用哪个服务对象的哪个方法。 UserRpcServiceRpc和UseRpcServiceRpcStub是继…

【practise】电话号码的字母组合

关于我&#xff1a; 睡觉待开机&#xff1a;个人主页 个人专栏: 《优选算法》《C语言》《CPP》 生活的理想&#xff0c;就是为了理想的生活! 作者留言 PDF版免费提供&#xff1a;倘若有需要&#xff0c;想拿我写的博客进行学习和交流&#xff0c;可以私信我将免费提供PDF版。…

立即升级你的前端技能!跟随这份Vue3项目搭建教程,从零基础到专业,一步步掌握最新Web开发技术,打造响应快速、界面优雅的现代网站。

全能开发套餐&#xff0c;轻松打造现代网站&#xff01;Vue3携手Vite带来开发新体验&#xff0c;结合Axios、Pinia、Element Plus实现功能与美观并重&#xff0c;TailwindCSS与DaisyUI提供设计灵活性&#xff0c;Router 4处理页面导航。从前端到后端&#xff0c;一站式解决&…

一、Matlab基础

文章目录 一、Matlab界面二、Matlab窗口常用命令三、Matlab的数据类型3.1 数值类型3.2 字符和字符串3.3 逻辑类型3.4 函数句柄3.5 结构类型3.6 细胞数组 四、Matlab的运算符4.1 算术运算符4.2 关系运算符4.3 逻辑运算4.4 运算符优先级 五、Matlab的矩阵5.1 矩阵的建立5.2 矩阵的…

【Linux】输入输出重定向

目录 一、概念 二、重定向的本质 三、系统调用接口dup和dup2 3.1 dup 3.2 dup2 一、概念 在之前对Linux的学习中&#xff0c;我们有接触过一系列的重定向命令&#xff0c;例如 >、>>等 它们可以将一个命令的输出或输入重定向到其他地方&#xff0c;如echo命令…

开源应用:AI监测如何成为社会安全的智能盾牌

社会背景 随着社会的快速发展&#xff0c;社会安全管理正站在一个新时代的门槛上。社会对安全管理的需求不断增长&#xff0c;传统的安全措施已难以满足现代社会的需求。AI技术以其独特的数据处理和模式识别能力&#xff0c;正在成为我们社会安全的智能盾牌。 AI大模型识别功能…

3.js - 物理引擎终极

import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls import gsap from gsap // 导入动画库 import * as dat from dat.gui // 导入dat.gui// 导入 cannon-es 引擎 import * as CANNON from cannon-es// -----------------…