使用星凸随机超曲面模型对扩展对象和分组目标进行形状跟踪(Matlab代码实现)

news2025/7/16 10:34:19

 🍒🍒🍒欢迎关注🌈🌈🌈

📝个人主页:我爱Matlab


👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

🍌希望大家多多支持🍓~一起加油 🤗

💬语录:将来的我一定会感谢现在奋斗的自己!

🍁🥬🕒摘要🕒🥬🍁

在传统目标跟踪技术中,早期由于传感器分辨率的限制,通常只能用点来描述目标,即目标每一时刻最多只能生成一个量测,只能对目标的质心位置、速度、加速度等进行估计。随着现代传感器技术发展,高分辨率传感器在工程中的应用越来越广泛,导致每个时刻可以得到不止一个量测,而扩展目标跟踪技术正是利用获得的多个量测信息,通过信息融合运算,得到对目标形状和运动状态的估计。

近些年扩展目标跟踪问题得到了广泛的关注,而对扩展目标形状进行估计是学者们研究的重点,因此,诞生了许多对扩展目标形状建模的方法。例如Baum等将扩展目标建模为随机超曲面模型(Random Hypersurface Model,RHM),该模型的核心思想是假设目标的量测源分布在目标边界的一个缩小版本之上,量测由处于缩小版本边界上的量测源和传感器噪声共同构成。星凸随机超曲面模型主要将径向函数用傅里叶级数展开从而描述目标轮廓,由展开系数实现对扩展目标形状建模,并结合尺度因子缩放扩展目标的形状完成对其表面量测源的建模。随机超曲面模型假设目标产生的每一量测由对应的量测源产生,这种建模方式弊端会造成量测方程具有较强的非线性。

✨🔎⚡运行结果⚡🔎✨

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

function randomHypersurfaceModel_2011(numberOfMeasurement)
if nargin ==0
numberOfMeasurement= 100;
end
% Number of Fourier coefficients
nr_Fourier_coeff = 11;

% State describtion prior [b0--bn, x, y]
x = zeros(nr_Fourier_coeff + 2, 1);
x(1) = 1.5;

% State covariance prior
C_x = diag([ones(1, nr_Fourier_coeff).*0.02, 0.3, 0.3]);

% Measurement noise
measurementNoise = diag([0.2, 0.2].^2);

% Scale properties
scale.mean = 0.7;
scale.variance = 0.08;

% Angular resolution for plotting
phi_vec = [0:0.01:2*pi];

% Object size
a = 3;      % -- width of the horizontal rectangle
b = 0.5;    % | height of the horizontal rectangle
c = 2;      % | height of the vertical rectangle
d = 0.5;    % -- width of the vertical rectangle

sizeObject = [a b c d];

% Object shape bounds
objectBounds = [[-d, -c];[d, -c];[d, -b];[a, -b];[a, b];[d, b];[d, c];
    [-d, c];[-d, b];[-a, b];[-a, -b];[-d, -b]]' ./ 2;


% Main

% Plot
h_object = fill(objectBounds(1, :), objectBounds(2, :), [.7 .7 .7]);
hold on
xlim([-3 3]);
ylim([-3 3]);
axis equal
xlabel('x-Axis')
ylabel('y-Axis')
title('Random Hypersurface Model Simulation')

for j = 1 : numberOfMeasurement
    
    % Get new measurement
    newMeasurement = getNewMeasurement(sizeObject, measurementNoise);
    
    % Filter step
    [x, C_x] = UKF_FilterStep(x, C_x, newMeasurement, [scale.mean; [0 0]'], ...
        blkdiag(scale.variance, measurementNoise), @f_meas_pseudo_squared, nr_Fourier_coeff);
    
    % Plot
    shape = calcShape(phi_vec, x, nr_Fourier_coeff);
    
    h_measure = plot(newMeasurement(1), newMeasurement(2), '+');
    h_shape =  plot(shape(1, :), shape(2, :), 'g-', 'linewidth', 2);
    legend([h_object, h_measure, h_shape],'Target', 'Measurement', 'Estimated shape')
    drawnow;
    
    if j ~= numberOfMeasurement
        delete(h_shape)
    end
    
end

📜📢🌈参考文献🌈📢📜

[1]李永永,王莉.星凸形随机超曲面粒子扩展目标跟踪滤波器[J].舰船电子工程,2022,42(06):42-46+75.

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

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

相关文章

学习Python要学习哪些课程?

通过学习 Python数据分析与应用课程,可以掌握Python进行科学计算、可视化绘图、数据处理,分析与建模、构建聚类、回归、分类模型的主要方法和技能,并为后续相关课程学习及将来从事数据分析挖掘研究、数据分析工作奠定基础。 Python数据分析与…

进程互斥以及进程互斥实现方法(包含代码)

进程互斥有关概念: 两种资源共享方式: 1.互斥共享:一个时间段内只允许一个进程进行访问 2.同时共享:一个时间段内允许多个进程进行“同时”访问 临界资源:一个时间段内只允许一个进程进行访问的资源 访问临界区的…

第二章 爬虫的实现原理和技术(一)

2.1 爬虫的实现原理 不同类型的爬虫,具体的实现原理也不尽相同,但是这些爬虫之间存在许多共性。下面我将以通用爬虫与聚焦爬虫为例,具体来讲解爬虫是如何来运作的。 通用爬虫的工作原理 通用爬虫是一个自动提取网页的程序,能够从Internet上下载网页,是大多的搜索引擎的…

关于FFmepg的冷知识,这一篇就够了

每一个从事音视频技术开发的工程师对FFmpeg都不会感到陌生,即使是刚刚踏入这个行业的初学者,但对他们来说这条路上好像有着一条不可逾越的鸿沟,“雷神”和许多大神都总结过一些FFmpeg的学习方法,小编在这里为大家做一个整理&#…

《恋上数据结构与算法》第1季:动态数组原理实现(图文并茂,一文带你了解ArrayList底层实现)

动态数组原理实现一、数组(Array)二、动态数组三、动态数组的设计四、动态数组的实现1. 添加元素2. 数组扩容3. 删除元素4. 数组缩容5. 清空元素6. 修改元素7. 查询元素8. 插入元素9. 查看元素位置10. 是否包含某个元素11. 元素的数量12. 数组是否为空13…

win11的C/C++环境配置——基于MinGW-W64 GCC-8.1.0

首先给出MinGW-W64 GCC-8.1.0的下载地址:MinGW8.1.0 Win11下的C/C环境配置下载MinGW-W64 GCC-8.1.0添加bin文件和include文件到path变量中测试下载MinGW-W64 GCC-8.1.0 网页截图如下: 可以复制下载地址到迅雷中加速,下载完成后的文件如下&a…

MCE | “神药”二甲双胍后,糖尿病药物研究谁将是下一个顶流?

说到糖尿病药物,就不得不提一嘴“神药”二甲双胍,但除了二甲双胍,抗糖尿病药物的研究难道就没有点新玩意儿?当然有! 糖尿病 (Diabetes) 是一种以高血糖为特征的慢性代谢病,是由于胰岛素分泌缺陷或者其生物…

美团闪购:闪电仓商户如狼似虎,传统商超便利店坐享其成?

近日,考研网红教师张雪峰一句“外卖员这个职业5-10年内可能会消失”再度登上热搜。 其实,他的这个推论,只是看到了目前外卖骑手的保有量,截至2021年,中国外卖骑手约1300万名。并没有看到炙手可热的“即时消费”新趋势&…

【Shell 脚本速成】05、Shell 运算详解

目录 一、赋值运算 二、算术运算[四则运算] 2.1 运算符与命令 2.2 整形运算 expr 命令:只能做整数运算,格式比较古板,运算符号两边注意空格 let命令:只能做整数运算,且运算元素必须是变量,无法直接对…

MySQL窗口函教-序号函数(row_number、rank、dense_rank)

MySQL窗门函教-序号函数(row_number、rank、dense_rank) 前言 mysql8.0中新增窗口函数(开窗函数) 窗口函数和普通聚合函数的区别 ①聚合函数是将多条记录聚合为一条;窗口函数是每条记录都会执行,有几条记…

代码源每日一题div1 区间和

区间和 - 题目 - Daimayuan Online Judge 题意: 思路: 根据前缀和的性质:当已知的前缀和区间是整个区间的划分时,才能求出整个区间的和 因为如果两个区间之间有交叉,交叉部分的和求不出来 因此,如果已知…

DeFi收益来源全面概述

去中心化金融一个主要的优势就是它对所有人开放,任何人在任何时间、任何地点都可以参与其中。这样一来,作为DeFi参与者就有机会获得在传统金融领域很难获得或根本不可能获得的收益。 加密货币的特性是开源的、无需许可的,这将DeFi变成了一个…

【Linux】进程创建/终止/等待/替换

目录 一、子进程的创建 1、fork函数的概念 2、如何理解fork拥有两个返回值 3、fork调用失败的场景 二、进程的终止 1、main函数返回值 1.1main函数的返回值的意义 1.2将错误码转化为错误信息 1.3查看进程的退出码 2、进程退出的情况 1、进程的正常退出与异常退出 2…

Principal branch

In mathematics, a principal branch is a function which selects one branch (“slice”) of a multi-valued function. Most often, this applies to functions defined on the complex plane. Contents1 Examples1.1 Trigonometric inverses1.2 Exponentiation to fraction…

255-261BFC,媒体的类型,媒体的特性,浏览器前缀,媒体查询,逻辑操作符,

◼ 有时候可能会看到有些CSS属性名前面带有:-o-、-xv-、-ms-、mso-、-moz-、-webkit- ◼ 官方文档专业术语叫做:vendor-specific extensions(供应商特定扩展) ◼ 为什么需要浏览器前缀了?  CSS属性刚开始并没有成为标准,浏览器为了防止后续会修改名字给新的属性添加了浏…

树莓派学习笔记(一)

树莓派学习笔记 笔记来自B站UP主【树小悉】的树莓派系列视频的听课笔记,通俗易懂,风趣幽默,适合新手入门,强烈推荐!!! 关机命令 sudo poweroff 关闭电源sodo shutdown -h now 立刻关机sudp shut…

二、进程管理(四)经典同步互斥问题

目录 4.1生产者-消费者问题 4.1.1单类生产者-单类消费者问题 4.1.2多类生产者-多类消费者问题 4.1.3吸烟者问题 4.2读者-写者问题 4.3哲学家进餐问题 分析进程同步和互斥问题的三步: 关系分析:分析问题中的同步(前驱关系)、…

端口渗透篇:Java RMI 远程代码执行漏洞

转载https://cloud.tencent.com/developer/article/2149191 前言持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程…

【Python游戏】Python各大游戏合集(5):塔防游戏、飞机大战、连连看、打地鼠、记忆翻牌 | 附带源码

相关文件 关注小编,私信小编领取哟! 当然别忘了一件三连哟~~ 公众号:Python日志 可以关注小编公众号,会不定时的发布一下Python小技巧,还有很多资源可以免费领取哟!! 源码领取:加P…

【高速数字化仪应用案例系列】虹科数字化仪在通信领域的应用

通信应用 随着国际社会要求以越来越快的速度传输更多信息,电子通信也在不断发展。模拟和数字技术用于无线、光纤和有线网络系统提供的点对点和广播通信。为了开发和维护这些系统,工程师需要能够测试和鉴定接收和传输的信号。需要减少信号损失或衰减&…