基于Matlab使用粒子滤波器和高斯滤波器跟踪单个对象(附源码)

news2024/11/19 9:37:58

此示例说明了如何使用粒子滤波器和高斯和滤波器来跟踪使用仅范围测量的单个对象。

一、介绍

只能观察范围信息的传感器无法通过单次检测提供对物体状态的完整了解。此外,当以笛卡尔坐标系表示时,仅范围测量的不确定性是非高斯的,并产生凹形。对于具有窄视场 (FOV) 的仅范围传感器,角度不确定性很小,可以通过椭球体(即高斯分布)近似。然而,对于具有宽视场的仅范围传感器,当以笛卡尔框架表示时,不确定性由凹环形状描述,这不容易用椭球体近似。如下图所示。

这种现象在远程雷达中也观察到,它们提供方位角和距离信息。当每个方位角分辨率像元的 FOV 跨越空间中的大区域时,状态的分布变为非高斯分布。在这些情况下,通常采用远程校正等技术来使用高斯滤波器,如扩展卡尔曼滤波器和无迹卡尔曼滤波器。

在此示例中,将学习如何使用粒子滤波器和高斯和滤波器来表示由大型 FOV 传感器的范围测量引起的状态中的非高斯不确定性。

二、定义方案

该场景模拟了在 X-Y 平面中以恒定速度行进的单个对象。该物体穿过三个间距相等的传感器的覆盖区域,方位角的FOV为60度。传感器 FOV 重叠,当对象穿过重叠区域时,这增强了可观察性。每个传感器报告测量范围测量值,测量精度为 5 厘米。

 三、使用粒子过滤器进行跟踪

在本节中,粒子过滤器用于跟踪对象。跟踪由单假设跟踪器使用 执行。跟踪器负责维护轨道,同时减少误报的数量。

该函数初始化等速粒子滤波器,但限制了从 [-180 180] 到本问题中已知传感器 FOV 的方位角和 [-90 90] 仰角 [-90 90]的角度。

粒子沿仅范围测量弧的状态具有非高斯不确定性,直到目标被下一个传感器检测到。当目标穿过传感器覆盖区域的边界时,与其他粒子相比,边界处出现粒子的可能性增加。这种可能性的增加触发了粒子过滤器中的重采样步骤,粒子坍缩到真正的目标位置。

 使用粒子过滤器,跟踪器在方案期间维护跟踪。

 四、使用高斯和滤波器进行跟踪

在本节中,高斯和滤波器用于跟踪对象。对于仅范围测量,可以使用初始化 。该函数初始化角度参数化扩展卡尔曼滤波器。此示例中定义的函数修改该函数以跟踪缓慢移动的对象。

可以使用 属性来查看每个扩展卡尔曼滤波器的状态。在下图中由“单个滤镜”表示,请注意滤光片如何沿着仅范围测量生成的弧线对齐,直到目标到达重叠区域。越过边界后,滤波器在边界处的可能性立即增加,轨道会收敛到该单个滤波器。与最接近边界的滤波器相比,其他单个滤波器的权重下降,并且它们对状态估计的贡献减小。

 使用高斯和滤波器,跟踪器在方案期间维护跟踪。 

五、总结

在此示例中,学习了如何使用粒子滤波器和高斯和滤波器来跟踪使用仅范围测量值的对象。粒子滤波器和高斯和滤波器都提供了跟踪遵循非高斯状态分布的对象的功能。高斯和滤波器通过高斯分量的加权和近似分布,而粒子滤波器则通过一组样本表示这种分布。粒子过滤器提供了一种更自然的方法来表示任何任意分布,只要可以从中生成样本。然而,为了完美地表示分布,可能需要大量的粒子,这增加了使用过滤器的计算要求。由于状态由样品描述,粒子滤波器结构允许使用任何过程噪声分布以及测量噪声。相比之下,高斯和滤波器对每个分量使用高斯过程和测量噪声。颗粒的主要缺点之一是“样品贫乏”的问题。重采样后,粒子可能会坍缩到可能性很高的区域,不允许过滤器从“不正确”的关联中恢复。由于在高斯和滤波器中不执行重采样,并且每个状态都是高斯的,因此高斯和滤波器提供了一些从这种关联中恢复的能力。然而,这种恢复通常取决于每个高斯分量的权重和协方差。

六、程序

使用Matlab R2021a版本,点击打开。

打开下面的“NonGaussianNonLinearObjectTrackingExample.m”文件,点击运行,就可以看到上述效果。 

关注下面公众号,后台回复关键词:使用粒子滤波器和高斯滤波器跟踪单个对象,发送源码链接。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python作业8

目录 1.输入一个整数判断奇数偶数 2.判断一个数是否能被7或11整除但不能同时整除 3.判断某一年是否为闰年:能被4整除但不能被100整除,或者能被400整除 4.《车辆驾驶人员血液、呼气酒精含量阈值与检验》标准中规定:驾驶员血液酒精小于20mg/…

基于Hi3861的听话的狗子

听话的狗子一、项目介绍二、硬件介绍(1)Hi3861最小系统电路(2)电源管理电路(3)USB转串口电路烧录电路(4)外设接口电路三、PCB设计四、软件部分简介(1)代码整体…

在 ESP 开发板上开发 UI 不再复杂

如果您尝试过在没有图形库的情况下开发 UI,那么您一定知道这有多困难。幸运的是,由乐鑫芯片驱动的屏幕,可支持用户使用多种图形库来开发 UI, LVGL 就是其中之一。通常情况下,在使用 LVGL 或类似的图形库前,…

SPI、RS232、485、IIC通信协议详细总结

通信协议大全 文章目录通信协议大全前言一、异步通信和同步通信二、RS232和RS4851.RS2322.RS4853.RS232和RS485的区别4.RS232、485与普通串口的区别?三、SPI协议四、IIC协议1.IIC的时序介绍2.IIC传输数据的格式总结前言 通信协议是每一个嵌入式工程师必备的技能。下…

几道简单的Linux驱动相关面试题,你看你会几题?

一、Linux基础 1、任意3种网络操作的Linux命令,并说明他们的含义 1. ifconfig 命令 ifconfig 用于查看和配置 Linux 系统的网络接口。 查看所有网络接口及其状态:ifconfig -a 。 使用 up 和 down 命令启动或停止某个接口:ifconfig eth0 up 和 ifconfi…

WEB渗透扫描与加固

WEB渗透扫描与加固 1.通过PC2中渗透测试平台BackTrack5中的httprint工具对服务器场景Server2003检测HTTP服务器(调用signatures.txt), 并将该操作显示结果“Banner Reported:”之后的字符串作为FLAG提交; 切换路径至/pentest/enumeration/web/httprint下 使用命令./httpr…

阿里巴巴面试题- - -多线程并发篇(二十九)

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~ 内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elast…

网络安全:技术趋势

下面列出了GlobalData确定的影响网络安全的关键技术趋势。 维护IT系统的安全性是各种类型组织的一项长期任务。网络攻击频繁且越来越复杂,由那些推动地缘政治事业的人或意图赚钱的攻击者实施。2021年,由于员工在疫情期间远程工作,企业在网络…

直流信号隔离采样

前言 最近在做一个案子,这个案子中的一点是高压电压信号隔离采样; 常见的隔离有: 光隔离(光耦) 磁隔离(霍尔,变压器) 等等。 那么要测量直流电压线性隔离如何实现?…

C语言中程序的环境和预处理简述

文章目录程序是如何执行的?翻译预编译条件编译文件的包含嵌套引用不同的引用方式预定义符号编译汇编链接运行程序是如何执行的? 有时候会问自己,程序的运行是那么简单的事情吗? 我鼠标点到 visual studio 上,程序就跑起来了,然后在界面就能…

项目管理:如何使用甘特图制定项目计划

甘特图能够很直观地显示项目任务、进度随着时间推进的进展情况。 横轴为时间,纵轴为项目事项,用条形图的方式直观地展现项目中所有任务的时间及进度。 它可以直观地表明项目中有哪些任务?任务计划在什么时候进行,及实际进展与计划…

基于Vue+node的图书馆座位预约选座管理系统

目 录 一、绪论 1 (一)选题背景简介 1 (二)目的和意义 2 (三)基本内容及目标 2 二 技术简介 4 (一) React 4 (二)Vue 4 (三)Egg.js 5 …

生产者消费者模型

什么是生产者消费者模型? 生产者和消费是操作系统中一种重要的模型,它描述的是一种等待和通知的机制。一、概念引入 日常生活中,每当我们缺少某些生活用品时,我们都会去超市进行购买,那么,你有没有想过&am…

Node.js之Hello World

目录 简介 1.安装 2.安装后的效果 3.准备尝试运行的代码 4.运行JS代码 5.访问正在运行的代码(Hello World) 简介 Node.js 是一个基于"Chrome V8 引擎" 的JavaScript "运行环境"; NodeJS不是一门编程语言, NodeJS是一个运行环境&#xff…

C语言题解 | 消失的数字轮转数组

… 🌳🌲🌱本文已收录至:C语言题解系列 更多知识尽在此专栏中! 🎉🎉🎉欢迎点赞、收藏、关注 🎉🎉🎉文章目录🍉前言🍉正文&…

这才是使用ps命令的正确姿势

这才是使用ps命令的正确姿势 前言 在linux系统当中我们通常会使用命令去查看一些系统的进程信息,我们最常使用的就是 ps (process status)。ps 命令主要是用于查看当前正在运行的程序,以及他们相关的的信息,我们可以通过不同的选项进行查看…

全球名校AI课程库(12)| CMU卡内基梅隆 · 数据库系统进阶课程『Advanced Database Systems』

🏆 课程学习中心 | 🚧 计算机基础课程合辑 | 🌍 课程主页 | 📺 中英字幕视频 | 🚀 项目代码解析 课程介绍 CMU 15-721 是 CMU 卡内基梅隆大学开放的数据库方向进阶课程,讨论了很多数据库方向新的技术研究方…

基于Matlab使用跟踪筛选器跟踪机动目标仿真(附源码)

此示例演示如何使用各种跟踪筛选器跟踪机动目标。该示例显示了使用单个运动模型和多个运动模型的滤镜之间的差异。 一、定义方案 在此示例中,定义了一个目标,该目标最初以 200 m/s 的恒定速度行进 33 秒,然后输入 10 度/秒的恒定转弯。转弯…

【C++】类和对象(中)

类和对象是面向对象语言的一个重要部分,承接上一话,我们直接开始这一章的内容。 文章目录 一、类的6个默认成员函数二、构造函数三、析构函数四、拷贝构造函数五、赋值操作符重载六、 const成员函数七、取地址及const取地址操作符重载八、相关习题的练习…

Windows系统常用网络命令详解及命令示例(全)

1.最基本也是最常用的,PING ping 192.168.0.8 -t 测试物理网络   ,参数-t是等待用户中断测试   2.检查DNS、IP、Mac等   A. Win98:winipcfg   B.Win2000及以上:ipconfig /all      C.NSLOOKUP:如果查看河北…