本文共 2513 字,大约阅读时间需要 8 分钟。
MATLAB中的多目标跟踪器能够有效地融合多传感器检测到的目标信息。常用的多目标跟踪器包括trackerGNN、trackerJPDA、trackerTOMHT和trackerPHD等。每种跟踪器都基于不同的假设来实现目标跟踪:
在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中可以通过theaterPlotter
和trackPlotter
等函数将跟踪和测量目标进行可视化处理。例如:
初始化绘图区域:
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)。图形化绘制
plotTrack
和plotDetection
函数要求位置、速度和协方差信息为三维数组。如果仅有二维数据,需在调用前扩展为三维。 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/