卡尔曼滤波与目标跟踪(由cv模型的kf推理到CTRV模型的radar与lidar))(一)

2023-11-15

引用AdamShan
引用知乎陈光

基于cv模型的行人状态预测/卡尔曼滤波与目标追踪

卡尔曼的理论
在这里插入图片描述
一、初始化
我们认为小车在第1秒时的状态x与测量值z相等

二、预测(Prediction)
完成初始化后,我们开始写Prediction部分的代码。首先是公式:
  x ′ =   F x + u (1) \ x^{'} = \ Fx +u \tag{1}  x= Fx+u(1)
这里的x为状态向量,通过左乘一个矩阵F,再加上外部的影响u,得到预测的状态向量x’。这里的F被称作状态转移矩阵(state transistion matrix)。以2维的匀速运动为例,这里的x为:
x = [ p x p y v x v y ]   x=\left[ \begin{matrix} p_x \\ p_y \\ v_x \\ v_y \end{matrix} \right] \ x=pxpyvxvy 
在这里插入图片描述
再来看看预测模块的第二个公式:
(因为cv模型是线性模型,因此F是线性的,因此不需要用talor展开线性化,但是CTRV需要)
P ′ = F P F T + Q (2) P^{'}=FPF^{T} + Q \tag{2} P=FPFT+Q(2)

该公式中P表示系统的不确定程度,这个不确定程度,在卡尔曼滤
波器初始化时会很大,随着越来越多的数据注入滤波器中,不确
定程度会变小,P的专业术语叫状态协方差矩阵(state covariance matrix);
这里的Q表示过程噪声(process covariance matrix),即无法用
x'=Fx+u表示的噪声,比如车辆运动时突然到了上坡,这个影响是
无法用之前的状态转移方程估计的。

在这里插入图片描述

  • 重点强调一下,这个u噪声是process model的噪声,这个是我们的经验(比如说一些运动模型,牛顿力学等等),那么我们在计算x'时在加一个噪声来描述我们的过程模型与实际运动的差异,这个噪声我们称之为过程噪声 (ProcessProcess NoiseNoise)
    在直线运动中,过程噪声就是行人的加减速,如下:
    在这里插入图片描述
    关于Q的组成还有点疑问
    在这里插入图片描述
    关于协方差矩阵还要插几句:
    引用
    过程噪声v~N(0,Q)为均值为0的高斯白噪声,对于4维的X来说,Q是4x4,如何化简Q,请看:
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述

二、观测(Measurement)
观测的第一个公式: 该公式计算残差
  y = z − H x ′ (3) \ y=z-Hx^{'}\tag{3}  y=zHx(3)

这个公式计算的是实际观测到的测量值z(z的表达中有一个噪声W由传感器决定,z=Hx+w, 这里注意是Hx这个x是状态向量不是x_hat, 后文中s的噪声R是w的协方差)与预测值x’之间差值y。不同传感器的测量值一般不同,比如激光雷达测量的位置信号为x方向和y方向上的距离,毫米波雷达测量的是位置和角度信息。因此需要将状态向量左乘一个矩阵H,才能与测量值进行相应的运算,这个H被称为测量矩阵(Measurement Matrix)。

激光雷达的测量值为:
z = [ x m y m ]   z=\left[ \begin{matrix} x_m \\ y_m \end{matrix} \right] \ z=[xmym] 
由于x’是一个41的列向量,如果要与一个21的列向量z进行减运算,需要左乘一个2*4的矩阵才行,因此整个公式最终要写成:
在这里插入图片描述
(如果是毫米波雷达,由于毫米波雷达的测量矩阵没法线性化,所以此处还需要加一个泰勒展开)

再看接下里的两个公式
  S = H P ′ H T + R (4) \ S=HP^{'}H^{T}+R \tag{4}  S=HPHT+R(4)
  K = P ′ H T S − 1 (5) \ K=P^{'}H^{T}S^{-1}\tag{5}  K=PHTS1(5)

这两个公式求的是卡尔曼滤波器中一个很重要的量——卡尔曼增益K(Kalman Gain),用人话讲就是求y值的权值。第一个公式中的R是测量噪声矩阵(measurement covariance matrix),这个表示的是测量值与真值之间的差值。一般情况下,传感器的厂家会提供该值。S只是为了简化公式,写的一个临时变量,不要太在意。

看最后两个公式:
  x = x ′ + K y (6) \ x=x^{'}+Ky \tag{6}  x=x+Ky(6)
  P = ( I − K H ) P ′ (7) \ P=(I-KH)P^{'}\tag{7}  P=(IKH)P(7)

这两个公式,实际上完成了卡尔曼滤波器的闭环,第一个公式是完成了当前状态向量x的更新,不仅考虑了上一时刻的预测值,也考虑了测量值,和整个系统的噪声,第二个公式根据卡尔曼增益,更新了系统的不确定度P,用于下一个周期的运算,该公式中的I为与状态向量同维度的单位矩阵。

KF_Adamshan

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

卡尔曼滤波与目标跟踪(由cv模型的kf推理到CTRV模型的radar与lidar))(一) 的相关文章

  • Linux 实时查看文件 tail 命令详解

    Linux 实时查看文件 tail 命令详解 Linux 实时查看文件 tail 命令详解 一 概述 tail 命令用于显示文件的末尾内容 默认显示文件的最后 10 行 通常情况下 tail 命令用于实时查看日志文件 可以使用 f 参数跟踪
  • Python发送信息及附件到邮箱

    import smtplib import os from email mime text import MIMEText from email mime multipart import MIMEMultipart from email
  • PB的组合查询

    用PB进行数据库应用系统开发时 我们经常要对大量的数据进行筛选 查询 得到符合要求的记录 这就需要用到组合条件查询功能 我在作应用系统开发时 就自己编写了一个简单而又实用的组合条件查询模板窗口 只要用到组合条件查询的地方 都可从此窗口继承而
  • 【华为OD机试真题 JAVA】火星文计算

    JS版 华为OD机试真题 JS 火星文计算 标题 火星文计算 时间限制 1秒 内存限制 262144K 语言限制 不限 已知火星人使用的运算符为 其与地球人的等价公式如下 x y 2 x 3 y 4 x y 3 x y 2 1 其中x y是

随机推荐

  • webpack打包项目文件

    在项目开发中想了解一下使用webpack打包vue项目的具体操作 1 在命令窗口中使用npm run dev serve启动package json中配置的脚本运行项目 2 在build dev server js文件中 const con
  • 通行时间估计 读书笔记

    Learning to Estimate the Travel Time Didichuxing 中文提示 通行时间估计 特征提取 对路段中所有可能获取的数据进行特征提取 包括交叉路口 route 信号灯信息 路段长度 宽度 车道数 本段在
  • 【2023】华为OD机试真题Java-题目0198-整理扑克牌

    整理扑克牌 题目描述 给定一组数字 表示扑克牌的牌面数字 忽略扑克牌的花色 请安如下规则对这一组扑克牌进行整理 步骤一 对扑克牌进行分组 规则如下 当牌面数字相同张数大于等于4时 组合牌为炸弹 三张相同牌面数字 两张相同牌面数字 且三张牌与
  • 统计学---之样本方差与总体方差的区别

    前段日子重新整理了一下这个问题的解答 跟大家分享一下 如果有什么错误的话希望大家能够提出来 我会及时改正的 话不多说进入正题 首先 我们来看一下样本方差的计算公式 刚开始接触这个公式的话可能会有一个疑问就是 为什么样本方差要除以 n 1 而
  • Java加密技术(十一)——双向认证

    对于双向认证 做一个简单的描述 服务器端下发证书 客户端接受证书 证书带有公钥信息 用于验证服务器端 对数据加密 解密 起到OSI五类服务的认证 鉴别 服务和保密性服务 这只是单向认证 为什么 因为客户端可以验证服务器端 但服务器端不能验证
  • Mac前往服务器文件夹变成灰色,[mac]解决移动硬盘文件显示灰色的问题

    在mac上创建的文件 在复制到移动硬盘上后 变成灰色且不能操作 项目已被 macOS 使用 不能打开 在移动硬盘上变成灰色的文件 双击会提示 项目已被 macOS 使用 不能打开 打开终端输入 ls eln 灰色文件路径 image png
  • 新手如何使用pycharm

    开启coding之旅 我在写代码的时候 我总是因为安装包和环境的问题 代码总是bug不断 短段的两天时间 我整天扑在上面研究 不断地抓头 短段两天 我感觉我的头发都凸了一点了 后来我实在解决不了 于是直接付费请教别人帮我装机 就为了完成最简
  • Jenkins 设置镜像_在k8s上安装Jenkins及常见问题

    持续集成和部署是DevOps的重要组成部分 Jenkins是一款非常流行的持续集成和部署工具 最近试验了一下Jenkins 发现它是我一段时间以来用过的工具中最复杂的 一个可能的原因是它需要与各种其它工具集成才能完成任务 而集成的方法又各不
  • XML转JavaBean的简单实现

    一个基于JSON的简单的XML转为Bean的方法 之前在做一个WEB SERVICE的交互的时候 写的一个基于JSON的XML转Bean的方法 就把它整理处理 如下 gt pom xml 所有需要的依赖包如下
  • 使用ChatGPT自动编写Python爬虫脚本

    都知道最近ChatGPT聊天机器人爆火 我也想方设法注册了账号 据说后面要收费了 ChatGPT是一种基于大语言模型的生成式AI 换句话说它可以自动生成类似人类语言的文本 把梳理好的有逻辑的答案呈现在你面前 这完全不同于传统搜索工具 Cha
  • Unity Mesh网格编程(三) Shader实现水面或旗帜飘扬效果

    Upgrade NOTE replaced Object2World with unity ObjectToWorld Upgrade NOTE replaced mul UNITY MATRIX MVP with UnityObjectT
  • 【Unity3D小功能】Unity3D中实现UI擦除效果、刮刮卡功能

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好 我是佛系工程师 恬静的小魔龙 不定时更新Unity开发技巧 觉得有用记得一键三连哦 一 前言 使用Unity3D实现UI的擦拭效果 刮刮卡
  • php图片居中显示图片,CSS实现图片居中的三种方式

    在我们的WEB前端css开发过程中 我们避免会遇到让图片居中的情况 为了网页美观以及用户的体验 我们有时候就要让图片居中 那么我们也都知道图片居中的方法有很多 今天我们就给大家详细介绍下CSS实现图片居中的三种方式 1 利用display
  • Docker入门命令

    文章目录 1 安装Docker 2 搜索 下载镜像 3 查询本地镜像 4 启动镜像到容器 5 查询已启动镜像 容器 6 进入容器环境 7 创建镜像 7 1 基于已有镜像的容器创建 7 2 基于本地模板导入 7 3 基于Dockerfile创
  • AI绘图:教你几个提示词 100%生成美丽小姐姐

    许多常用提示对于确保高质量的成像结果至关重要 我们将教您一些基本的提示词和设置 以节省您在初始探索过程中的时间 本次用到的模型ChilloutMix 基础设置 默认设置包括图片 大小 512 x 512 采样器 DPM SDE Karras
  • 逆序栈(使用递归)

    题目 一个栈依次压入1 2 3 4 5那么从栈顶到栈底分别为5 4 3 2 1 将这个栈转置后 从栈顶到栈底为1 2 3 4 5 也就是实现了栈中元素的逆序 请设计一个算法实现逆序栈的操作 但是只能用递归函数来实现 而不能用另外的数据结构
  • springBoot添加自定义拦截器

    文章目录 前言 步骤如下 首先新建一个自己的拦截器 其次 把自己的拦截器注册到spring中 让其生效 前言 新的项目需要校验用户是否登录 在springBoot项目中添加一个自定义的拦截器拦截到所有请求进行逻辑判断 步骤如下 首先新建一个
  • 资讯汇总230429

    230429 11 44 大华股份 重点投入大模型和多模态方向 会持续按需扩容算力 大华股份在业绩说明会表示 GPT 的发展具有里程碑式的意义 公司会重点投入大模型和多模态方向 过去在大模型领域的算法和工程能力已经有一定的积累 先进技术研究
  • 内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由腾讯游戏云发表于云 社区专栏 内行看门道 看似 佛系 的 QQ炫舞手游 背后的音频技术一点都不简单 3月14日 腾讯旗下知名手游 QQ炫舞 正式上线各大应用商店 并迅速登上Ap
  • 卡尔曼滤波与目标跟踪(由cv模型的kf推理到CTRV模型的radar与lidar))(一)

    引用AdamShan 引用知乎陈光 基于cv模型的行人状态预测 卡尔曼滤波与目标追踪 卡尔曼的理论 一 初始化 我们认为小车在第1秒时的状态x与测量值z相等 二 预测 Prediction 完成初始化后 我们开始写Prediction部分的