多传感器融合--MATLAB跟踪器介绍
转载自:https://blog.csdn.net/weijimin1/article/details/95078920
多传感器融合--MATLAB跟踪器介绍
jm-csu 2019-07-08 17:51:59 3226 收藏 26
分类专栏: 传感器融合 智能交通 文章标签: MATLAB跟踪器 多目标跟踪 多传感器融合 trackerGNN 全局最近邻
版权
多传感器融合--MATLAB跟踪器介绍
MATLAB通过多目标跟踪器可以融合多传感器检测到的目标信息,常用到的多目标跟踪器有trackerGNN、trackerJPDA、trackerTOMHT 、trackerPHD等。trackerGNN通过假设一个跟踪的目标只能与一个测量目标匹配。trackerJDPA对每一个跟踪的目标可能匹配多个测量到的目标。trackerPHD通过概率假设密度(PHD)函数来跟踪目标。trackerTOMHT认为跟踪的目标存多个假设的目标与之匹配。
1、跟踪器的使用步骤
MATLAB中使用跟踪器的主要步骤有(1)设定跟踪器的参数,(2)获得检测目标的信息,调用跟踪器,(3)提取跟踪成功的目标的位置及速度信息。
(1)设定跟踪器的参数,如下所示
tracker = trackerGNN('FilterInitializationFcn', @initcvkf,'AssignmentThreshold',10, ...
'ConfirmationThreshold', [3 5], 'TrackLogic', 'History', ...
'DeletionThreshold', 10);
(2)获得检测目标的信息,调用跟踪器,如下所示
[confirmed,tentative,alltracks,info] = tracker(detection,time);
(3)提取跟踪成功的目标的位置及速度信息,如下所示
[pos,cov] = getTrackPositions(confirmed,positionSelector);
vel = getTrackVelocities(confirmed,velocitySelector);
2、测量目标的创建
表1 测量目标的属性表
序号 |
符号 |
描述 |
1 |
Time |
目标的时间戳 |
2 |
Measurement |
测量目标的结果 |
3 |
MeasurementNoise |
测量目标的结果噪声 |
4 |
SensorIndex |
测量的传感器的类型 |
5 |
ObjectClassID |
测量目标的类型 |
6 |
MeasurementParameters |
非线性卡尔曼滤波器初始化参数 |
7 |
ObjectAttributes |
跟踪器的其它附加信息 |
测量目标属性表通过detection = objectDetection(time,measurement) 函数获得,输入是时间和测量的目标的结果。
通过如下两个例子可以建立测量目标
例1:detection = objectDetection(1,[100;250;10])
例2:detection = objectDetection(1,[100;250;10],'MeasurementNoise',10, ...
'SensorIndex',1,'ObjectAttributes',{'Example object',5})
3、跟踪目标的获得
表2 跟踪目标的属性表
序号 |
符号 |
描述 |
1 |
TrackID |
跟踪目标ID(唯一) |
2 |
Time |
跟踪目标的更新时间 |
3 |
Age |
跟踪目标的从首次初始化后的更新次数 |
4 |
State |
跟踪目标的状态矩阵 |
5 |
StateCovariance |
跟踪目标的状态协方差矩阵 |
6 |
IsConfirmed |
目标是否被证实的状态,它为真表示目标为真实目标。 |
7 |
IsCoasted |
滑行状态,它为真表示跟踪的目标在没有检测到的情况进行的更新 |
8 |
ObjectClassID |
表示目标的分类,0表示目标类型未知 |
9 |
ObjectAttributes |
包含传感器检测到目标的属性元胞数组 |
通过[confirmed,tentative,alltracks,info] = tracker(detection,time)可获得confirmed和tentative,它们分别指的是跟踪器返回的已经证实的真目标和假设的目标。Confirmed tracks 和Tentative tracks 两类目标都包含有表2的目标属性。
4、跟踪及测量目标的图形化
Matlab通过创建theater 绘图来展现虚拟化的跟踪目标和测量目标。Matlab 中的trackPlotter 函数与detectionPlotter 函数分别用于在theater 中绘制跟踪目标和测量目标的结果。具体例子如下所示:
(1)初始化跟踪目标和测量目标的结果
tp = theaterPlot('XLimits',[-1 1200],'YLimits',[-600 600]); %%确定绘制区域X轴,Y轴的范围
trackP = trackPlotter(tp,'DisplayName','Tracks','MarkerFaceColor','g', ... 'HistoryDepth',0); %% 绘制跟踪目标
detectionP = detectionPlotter(tp,'DisplayName','Detections','MarkerFaceColor', ... 'r'); %% 绘制测量到的目标
(2)更新跟踪目标和测量目标的结果
trackP.plotTrack(pos,vel,cov,labels); %%更新跟踪目标
detectionP.plotDetection(meas',measCov);%%更新测量目标
5、其它
在使用matlab的跟踪器时遇到的问题汇总如下:
- matlab的跟踪器默认采用的扩展卡尔曼滤波器(EKF),其函数要求测量的结果为三维的(X,Y,Z),如果是二维的则会报错误。
解决方法:将跟踪器的滤波方法设置为卡尔曼滤波(KF),或者将二维数据扩充为三维,第3维的测量数据一直为0。
- MATLAB的plotTrack(trPlotter,pos,vel,cov) 函数要求pos、vel、cov为三维信息,如果只有2维信息直接调用该函数会报维度不匹配的错误。
解决方法:在调用plotTrack函数之前将二维的位置、速度、协方差信息扩展成三维之后再调用plotTrack函数绘制跟踪结果。对于plotDetection函数同样可采用该方法进行处理。
多传感器融合--MATLAB跟踪器介绍相关推荐
- 基于matlab介绍传感器融合和跟踪工具箱中用于评估跟踪器性能的不同定量分析工具(附源码)
目录 一.分配和错误指标 1.1 轨道和真相定义 1.2 计算和分析指标 1.3 分析分配指标 编辑 1.4 分析错误指标 编辑二.将指标汇总为分数 2.1 欧斯帕公制 2.2 分析 OSPA 指 ...
- 将ACF与KCF融合的跟踪器
作为CV工作人员,可能长期会在准确率和效率上犹豫不决:牺牲准确率换取效率是常有的事情. 由于检测比较耗时,所以我们才会引入跟踪对目标进行位置确定:但是对于短距离场景来说,往往需要检测为实时检测. 对于 ...
- 【数据融合】基于AIS和雷达的多传感器航迹融合matlab源码
多传感器融合--MATLAB跟踪器介绍 MATLAB通过多目标跟踪器可以融合多传感器检测到的目标信息,常用到的多目标跟踪器有trackerGNN.trackerJPDA.trackerTOMHT .t ...
- MATLAB案例学习-基于雷达和摄像头的传感器融合
文章目录 前言 生成场景 定义雷达和摄像头传感器 生成跟踪器 仿真场景 总结 帮助函数 前言 本文主要参考MATLAB自动驾驶工具箱的案例<Sensor Fusion Using Synthet ...
- 论文学习-卫星视频与目标追踪-1-融合KCF跟踪器和三帧差算法
论文学习-卫星视频与目标追踪-1 大家好,近来一直在研究基于视频卫星的目标追踪领域.为了更好地梳理自己的论文学习过程,故采用博客的方式记录下来.接下来我会将此领域一些我觉得典型的有意义的论文,以我自己 ...
- 深度学习传感器融合技术在自动驾驶汽车感知与定位中的应用研究进展
论文研读--Deep Learning Sensor Fusion for Autonomous Vehicle Perception and Localization: A Review 深度学习传 ...
- d-s 多传感器信息融合 matlab实现_自动驾驶中的多传感器融合
一.多传感器融合多传感器信息融合(Multi-sensor Information Fusion,MSIF),就是利用计算机技术将来自多传感器或多源的信息和数据,在一定的准则下加以自动分析和综合,以完 ...
- 《传感器信息融合——MATLAB程序实现》
<传感器信息融合--MATLAB程序实现> https://www.mathworks.com/academia/books/book116151.html?s_tid=books-seo ...
- Matlab:实现带传感器融合的自适应巡航控制(附完整源码)
Matlab:实现带传感器融合的自适应巡航控制 function G = helperACCLinearModel(m,Iz,lf,lr,Cf,Cr,tau,v0_ego) A = [-(2*Cf+2 ...
最新文章
- python语言可以在哪系统操作-python能检测到它运行的是哪个操作系统?
- 重构:改善饿了么交易系统的设计思路
- Github链接地址
- 梁家卿 | 百科知识图谱同步更新
- nginx和tomcat整合
- Java中IO流知识点总结
- 关于解决Windows server系统用户无法远程的问题
- 如何在C#中生成与PHP一样的MD5 Hash Code
- Javasocket编程步骤,已有千人收藏
- 基于PYTHON语言的工资管理系统制作(前言计划)
- php微商系统,产品营销推广神器Thinkphp核心微商新版零售系统源代码
- 微信支付商户平台app支付开通方法详解
- office之转置EXCEL表格
- 利用html编辑信息轰炸机,scratch模拟轰炸机投弹【参考答案】
- AIOT:基于智能家居谈AIOT
- 四川省国际科技合作基地(国合基地)申报条件程序
- 基于Graphhopper的路线导航方案
- 分享 | CADD之分子动力学的简介(上篇)
- Python:PyQt 时间组件
- linux之cut的使用
热门文章
- DaVinci Resolve Guru: Moving Timelines Between Editing Apps DaVinci Resolve大师课程:移动编辑应用程序之间的时间线 Lynd
- c++ 期末复习 函数题 PTA
- 团队领导力(五)目标+用人
- 云客Drupal源码分析之表单定义示例
- java获取大疆无人机飞行数据包括:无人机名称、海拔高度、经纬度信息、起飞状态、电池电量、飞行时间、上升速度、前行速度等飞行数据
- 多维梯度法(Multidimensional Gradient Methods)求多元函数极值或局部最大值
- 计算机组成原理考研辅导讲义,计算机组成原理考研辅导
- 动态规划-打败怪兽的概率(java)
- ios底部栏设计规范_IOS设计尺寸规范
- 时间计算题100道_50道分式计算题,成就众多数学天才,你值得拥有?