博客
关于我
【数据融合】基于matlab AIS和雷达的多传感器航迹融合【含Matlab源码 129期】
阅读量:144 次
发布时间:2019-02-27

本文共 2485 字,大约阅读时间需要 8 分钟。

多传感器融合-MATLAB跟踪器介绍

MATLAB中的多目标跟踪器能够有效地融合多传感器检测到的目标信息。常用的多目标跟踪器包括trackerGNN、trackerJPDA、trackerTOMHT和trackerPHD等。每种跟踪器都基于不同的假设来实现目标跟踪:

  • trackerGNN:假设一个跟踪目标只能与一个测量目标匹配。
  • trackerJPDA:允许一个跟踪目标可能匹配多个测量目标。
  • trackerTOMHT:假设跟踪目标可能与多个假设目标匹配。
  • trackerPHD:利用概率密度函数(PHD)来描述目标的存在概率。

MATLAB跟踪器的使用步骤

在MATLAB中使用跟踪器的主要步骤如下:

  • 设定跟踪器的参数

    通过创建跟踪器对象并设置相关参数。例如:

    tracker = trackerGNN('FilterInitializationFcn', @initcvkf, 'AssignmentThreshold', 10, ...                    'ConfirmationThreshold', [3 5], 'TrackLogic', 'History', ...                    'DeletionThreshold', 10);
  • 获得检测目标信息

    调用跟踪器进行目标检测,并获取检测结果。例如:

    [confirmed, tentative, alltracks, info] = tracker(detection, time);
  • 提取跟踪成功的目标信息

    从确认的跟踪结果中提取目标位置、速度及协方差等信息。例如:

    [pos, cov] = getTrackPositions(confirmed, 'positionSelector');vel = getTrackVelocities(confirmed, 'velocitySelector');

  • 测量目标的创建

    测量目标的属性表可以通过以下方式生成:

    • 使用objectDetection函数。例如:

      detection = objectDetection(time, measurements);

      其中measurements是一个矩阵,行代表传感器,列代表测量值。

    • 传感器测量噪声和属性可以通过设置相应的参数指定。例如:

      detection = objectDetection(time, measurements, 'MeasurementNoise', 10, ...                    'SensorIndex', 1, 'ObjectAttributes', {'Example object', 5});

    跟踪目标的获取

    通过调用跟踪器可以获得跟踪目标的属性。返回值包括:

    • confirmed:已经证实的跟踪目标。
    • tentative:假设的跟踪目标。
    • alltracks:所有跟踪目标的信息。
    • info:跟踪过程中的相关信息。

    跟踪及测量目标的图形化

    在MATLAB中可以通过theaterPlottertrackPlotter等函数将跟踪和测量目标进行可视化处理。例如:

  • 初始化绘图区域:

    tp = theaterPlot('XLimits', [-1 1200], 'YLimits', [-600 600]);
  • 绘制跟踪目标和测量目标:

    trackP = trackPlotter(tp, 'DisplayName', 'Tracks', 'MarkerFaceColor', 'g', ...                    'HistoryDepth', 0);detectionP = detectionPlotter(tp, 'DisplayName', 'Detections', 'MarkerFaceColor', 'r');
  • 更新跟踪和测量目标:

    trackP.plotTrack(pos, vel, cov, labels);detectionP.plotDetection(meas_, measCov);

  • 注意事项

  • 滤波器设置

    MATLAB的跟踪器默认使用扩展卡尔曼滤波器(EKF)。如果测量数据为二维,需要将其扩展为三维(X, Y, 0)或设置滤波器为卡尔曼滤波器(KF)。

  • 图形化绘制

    plotTrackplotDetection函数要求位置、速度和协方差信息为三维数组。如果仅有二维数据,需在调用前扩展为三维。


  • 源代码示例

    clc; clear; close all;load('MarCE_Radar_Detections_01_005_patched.mat');load('dtGroundTruthAIS.mat');figure(1);for i = 1:numel(data)    TR = extractfield(data{i}, 'TR');    TR = reshape(TR, 2, []);    Azimuth = TR(1, :);    Range = TR(2, :);    [X, Y] = pol2cart(Azimuth, Range);    plot(X, Y, '.b');    axis([-7000 7000 -7000 7000]);    hold on;    A = gts{i};    scatter(A(:, 1), A(:, 2), 'r.');    hold off;    grid on;    xlabel('X');    ylabel('Y');    title('Radar Data with AIS Ground Truth');    legend('Radar Data', 'AIS Data');end

    运行结果

    图1展示了Radar数据与AIS真实数据的对比结果,图中标注了实际存在的目标和测量到的目标。


    ###备注

    完整代码或代写请联系QQ:2449341593

    转载地址:http://oomf.baihongyu.com/

    你可能感兴趣的文章
    OSPF技术连载21:OSPF虚链路,现代网络逻辑连接的利器!
    查看>>
    OSPF技术连载22:OSPF 路径选择 O > O IA > N1 > E1 > N2 > E2
    查看>>
    OSPF技术连载2:OSPF工作原理、建立邻接关系、路由计算
    查看>>
    OSPF技术连载5:OSPF 基本配置,含思科、华为、Junifer三厂商配置
    查看>>
    OSPF技术连载6:OSPF 多区域,近7000字,非常详细!
    查看>>
    OSPF技术连载7:什么是OSPF带宽?OSPF带宽参考值多少?
    查看>>
    OSPF技术连载8:OSPF认证:明文认证、MD5认证和SHA-HMAC验证
    查看>>
    OSPF故障排除技巧
    查看>>
    spring配置文件中<context:property-placeholder />的使用
    查看>>
    OSPF有哪些优势?解决了RIP的什么问题?
    查看>>
    OSPF理论
    查看>>
    OSPF的七种类型LSA
    查看>>
    OSPF的安全性考虑:全面解析与最佳实践
    查看>>
    OSPF知识点大全,网络工程师快速收藏!
    查看>>
    ospf综合实验2 2012/9/8
    查看>>
    OSPF规划两大模型:双塔奇兵、犬牙交错
    查看>>
    OSPF认证
    查看>>
    OSPF设计原则,命令以H3C为例
    查看>>
    OSPF路由协议配置
    查看>>
    OSPRay 开源项目教程
    查看>>