主要内容

模糊状态下跟踪紧密间隔目标

这个例子展示了当传感器检测与轨迹的关联不明确时如何跟踪对象。在本例中,您使用单假设跟踪器、多假设跟踪器和概率数据关联跟踪器来比较跟踪器如何处理这种模糊性。为了更好地跟踪机动目标,可以使用各种模型来估计目标的运动。

简介

跟踪是根据一个或多个信息源收集的数据估计情况的过程。跟踪试图回答以下问题:

  1. 有多少物体?

  2. 物体在空间中的位置是什么?

  3. 它们运动的速度和方向是什么?

  4. 这些物体是如何相对移动的?

追踪器依赖于雷达探测等传感器数据。如果传感器能够对两个目标进行空间解析,则传感器可以对两个目标产生两次检测。如果两个目标距离很近,它们可以落在单个传感器分辨率单元内,传感器只报告对它们的一次检测。为了说明这个问题,下图显示了一个1.5度方位角分辨率的雷达。在20公里的范围内,雷达传感器仓的宽度超过540米,这意味着从该范围内报告的任何探测都位于仓的中心,其周围有±270米的不确定性。这个箱子中的任何两个目标都被报告为一次检测。

场景

为了演示传感器报告被模糊地分配给轨道的情况,您可以创建一个简单的场景。在这种情况下,位于原点(未显示)的单个雷达物体扫描距离雷达约20公里的一小块区域。最初,雷达每次扫描报告大约两次探测。当探测来自X = 0, Y = -20公里位置附近的区域时,雷达在一段时间内每次扫描报告一次探测,随后在Y = -19.5公里附近向传感器(向上)报告两次雷达探测。

场景和检测日志已经保存在matfile中。您可以取消下面的注释来重新生成场景和合成检测。

负载ATCdata.mat% scenario = helperCreateScenario;% dataLog = helperRunDetections(场景);plotScenarioAndDetections (dataLog);

仅看这张图中的探测情况,可以合理地假设有两个目标,但尚不清楚它们的轨迹是否相交。从轨迹上看,目标没有交叉。

匀速单假设跟踪器

多目标跟踪器最简单的选择是单假设跟踪器,如trackerGNN。您可以将其设置为使用评分逻辑,以便于与trackerTOMHT在这个例子后面。

这个示例很小,不需要超过20个轨道。门应该选择允许轨道建立没有虚假轨道,并从默认增加。

传感器仓体积可以大致估计使用一个检测测量噪声的行列式。在本例中,该值约为1e9,因此将卷设置为1e9。beta的值应该指定在一个单位卷中期望有多少个新对象。由于此场景中的对象数量是恒定的,所以将beta设置为非常小。探测概率和虚警率的值取自雷达的对应值。

numTracks = 20;%最大轨道数门= 45;%关联门Vol = 1e9;传感器仓容积%Beta = 1e-14;%单位卷中新增目标的百分比Pd = 0.8;%检测概率Far = 1e-6;误报率

你用的是恒速扩展卡尔曼滤波器。的initCVFilter函数修改的过滤器initcvekf返回,以考虑速度项中较高的不确定性和过程噪声中较高的水平加速度。在这种情况下,需要进行这些修改来跟踪目标,这些目标以高速移动,并通过在水平面上转弯进行机动。

跟踪器= trackerGNN(...“FilterInitializationFcn”@initCVFilter,...“MaxNumTracks”numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”门,...“TrackLogic”“分数”...“DetectionProbability”帕金森病,“FalseAlarmRate”远,...“体积”卷,“β”,β);

下面一行运行该场景并生成可视化。

[trackSummary, truthSummary, trackMetrics, truthMetrics,timeGNNCV] = helperRunTracker(dataLog,tracker,false);

使用模拟地面真相的好处是,我们可以比较跟踪器的结果与真相,使用trackAssignmentMetrics。结果表明,跟踪器生成了2个真值对象,但生成了3个轨迹。其中一个音轨直到场景结束才保存下来,也就是说,它被丢弃了,另外两个音轨保存了下来。

在场景的最后,真相对象2与轨道8相关联,轨道8是在场景中途丢弃轨道2后创建的。Truth对象3在场景结束时被分配为轨道1,但有两个中断。

注意,两个真值对象的建立长度都很小,而伪迹较少,说明确认阈值较好。

disp (trackSummary) disp (truthSummary)
TrackID AssignedTruthID幸存TotalLength DivergenceStatus  _______ _______________ _________ ___________ ________________ 77 3真190假2南假真8 111真的假TruthID AssociatedTrackID TotalLength BreakCount EstablishmentLength  _______ _________________ ___________ __________ ___________________ 2 192 192 1 4 3 1 2 2

使用trackErrorMetrics从真值对象和与之相关的轨迹之间的位置和速度误差来分析跟踪质量。结果表明,位置误差约为50 ~ 60 m,速度误差均方根约为30 m/s。

disp (trackMetrics) disp (truthMetrics)
TrackID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 1 59.461 26.119 7.9331 3.495 2 51.803 39.433 5.7494 3.0362 8 62.914 28.877 7.2004 3.0465 TruthID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 2 62.147 27.546 8.3597 3.9608 3 56.218 32.109 6.3234 2.6642

多模型交互单假设跟踪器

单假设跟踪器和恒速滤波器的组合不能跟踪机动目标。这个结果很明显,一个轨道停止,然后一个新的轨道开始,而在场景中只有两个目标。从无法跟随目标转弯也可以明显看出这一点。

改进跟踪器的一个选择是将过滤器修改为交互多模型(IMM)过滤器,这允许您考虑目标的两个或多个运动模型。在给定的测量值下,过滤器根据一个模型相对于另一个模型的可能性切换到正确的模型。在本例中,目标以恒定的速度移动,直到它们以恒定的速度旋转,因此使用这两个模型定义IMM过滤器initIMMFilter函数。

跟踪器= trackerGNN(...“FilterInitializationFcn”@initIMMFilter,...“MaxNumTracks”numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”门,...“TrackLogic”“分数”...“DetectionProbability”帕金森病,“FalseAlarmRate”远,...“体积”卷,“β”,β);[trackSummary, truthSummary, trackMetrics, truthMetrics, timeGNNIMM] = helperRunTracker(dataLog,tracker,false);

IMM滤波器的加入使跟踪器能够正确地识别目标机动。你可以通过观察目标转弯时产生的轨迹来观察这一结论,并注意到两个转弯都被跟踪得有多好。因此,真理对象2没有断点,这可以通过其相关轨迹的连续历史在图中看到。

然而,即使有相互作用的模型,其中一个轨道中断在模糊区域。单假设跟踪器只能对该区域进行一次检测,并且只能用它更新其中一条轨道,使另一条轨道滑行。经过几次更新后,沿海轨道的分数下降到删除阈值以下,跟踪器删除轨道。

disp (trackSummary) disp (truthSummary)
TrackID AssignedTruthID幸存TotalLength DivergenceStatus  _______ _______________ _________ ___________ ________________ 77 190真的假2南假真111 3真的假TruthID AssociatedTrackID TotalLength BreakCount EstablishmentLength  _______ _________________ ___________ __________ ___________________ 2 1 192 0 4 1 3 8 192 2

IMM的使用也提高了跟踪精度,因为位置误差减少到40-60米,而速度误差减少到25-30米/秒。这种改进可以归因于每个模型的IMM中使用的较低的过程噪声值,这可以更好地平滑噪声测量。

disp (trackMetrics) disp (truthMetrics)
TrackID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 1 52.445 22.4 7.6006 6.0031 2 48.149 35.239 6.5401 3.4887 8 34.787 20.279 5.2549 4.2032 TruthID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 2 52.445 22.4 7.6006 6.0031 3 40.75 27.364 5.7772 3.9128

多假设恒速跟踪器模型

为了解决损坏轨迹的问题,使用多假设跟踪器(MHT),trackerTOMHT。在模糊区域,跟踪器生成关于检测与轨迹关联的多个假设。特别地,它保持了一个假设,即第一个轨道被分配到这个检测,另一个假设,即第二个轨道被分配到这个检测。通过这样做,两个轨道都保持活跃,这样跟踪器就可以在下一次更新中获得足够的检测来解决歧义。

trackerTOMHT参数与trackerGNN,除了:

  • AssignmentThreshold允许一个轨道被认为是未分配的,即使有分配的检测。该设置允许每个轨道有多个分支。然而,门的第二个元素不允许分配检测新轨道,以减少轨道总数并提高性能。

  • MaxNumHistoryScans是增加到10,以延迟NScanPruning

  • MaxNumTrackBranches增加到5,以允许每个轨道有更多分支(假设)。

追踪器=追踪器...“FilterInitializationFcn”@initCVFilter,...“MaxNumTracks”numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”,[0.2, 1,1]*门,...“DetectionProbability”帕金森病,“FalseAlarmRate”远,...“体积”卷,“β”,β,...“MaxNumHistoryScans”10...“MaxNumTrackBranches”5,...“NScanPruning”“假设”...“OutputRepresentation”“跟踪”);[trackSummary, truthSummary, trackMetrics, truthMetrics, timeTOMHTCV] = helperRunTracker(dataLog,tracker,false);

结果表明,多假设跟踪器能够在整个场景中跟踪两个真值对象。对于模糊区域,MHT跟踪器提出了关于分配的两个假设:

  1. 检测被分配到轨道1。

  2. 探测被分配到轨道2。

有了这些假设,两个轨道生成分支(轨道假设),使用相同的检测更新它们。显然,使用相同的检测来更新两个轨道会导致轨道在他们的估计中变得更近,最终两个轨道可能会合并。但是,如果模棱两可分配的持续时间很短,跟踪器可能在有两个探测时能够解析两个航迹。在本例中,您可以看到两个轨道交叉,但是指标显示每个真理的断点计数为1,这意味着真正的目标可能没有交叉。

disp (trackSummary) disp (truthSummary)
TrackID AssignedTruthID幸存TotalLength DivergenceStatus  _______ _______________ _________ ___________ ________________ 1 3真190假2 2真191假TruthID AssociatedTrackID TotalLength BreakCount EstablishmentLength  _______ _________________ ___________ __________ ___________________ 2 192 192 1 2 3 1 1 2

在跟踪精度方面,该跟踪器的位置和速度误差与单假设跟踪器与恒速度滤波器组合的位置和速度误差相似。

disp (trackMetrics) disp (truthMetrics)
TrackID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 1 45.553 28.805 4.5831 3.2817 61.951 29.849 6.7165 2.733 TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 58.178 29.891 6.1356 2.8033 48.913 28.578 5.0099 3.2762

具有交互多模型的多假设跟踪器

在使用具有恒定速度的多假设跟踪器以保持连续跟踪的成功基础上,将跟踪器与IMM过滤器的优点结合起来。IMM滤波器可能更成功地防止轨道交叉,因为它改善了目标转弯时的跟踪。下面的代码配置trackerTOMHT与一个trackingIMM过滤器。

追踪器=追踪器...“FilterInitializationFcn”@initIMMFilter,...“MaxNumTracks”numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”,[0.2, 1,1]*门,...“DetectionProbability”帕金森病,“FalseAlarmRate”远,...“体积”卷,“β”,β,...“MaxNumHistoryScans”10...“MaxNumTrackBranches”5,...“NScanPruning”“假设”...“OutputRepresentation”“跟踪”);[trackSummary, truthSummary, trackMetrics, truthMetrics, timeTOMHTIMM] = helperRunTracker(dataLog,tracker,false);

从图中可以看出,这两条轨道并没有交叉。这个结果在下面真实目标的断点计数中也很明显,它显示零断点。

你还可以看到目标的真实路径,如实线所示。

disp (trackSummary) disp (truthSummary)
TrackID AssignedTruthID幸存TotalLength DivergenceStatus  _______ _______________ _________ ___________ ________________ 1对190错2 3真191假TruthID AssociatedTrackID TotalLength BreakCount EstablishmentLength  _______ _________________ ___________ __________ ___________________ 2 1 192 0 2 3 2 192 0 2

跟踪精度与单假设跟踪器与IMM滤波器的组合相似。注意,真实精度和相关的跟踪精度是相同的,因为在整个场景中跟踪没有中断。

disp (trackMetrics) disp (truthMetrics)
TrackID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 1 55.917 24.434 6.9456 5.5389 37.78 25.963 5.249 4.0935 TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 37.78 25.963 5.249 4.0935 55.917 24.434 6.9456 5.5389

恒速模型联合概率数据关联跟踪器

尽管跟踪指标通过使用得到了极大的改进trackerTOMHTtrackerGNN,计算机处理时间也明显增加。联合概率数据协会(JPDA)跟踪器trackerJPDA,将允许您进一步探讨权衡考虑因素。与GNN不同的是,JPDA允许使用单一检测来更新其附近的多条轨道。此外,多个检测可以与几个轨道聚集在一起,并更新每个这些轨道。这解决了损坏轨道的问题。然而,JPDA不会在多次扫描中保持多个假设,这使得它成为与MHT相对的次优方法。

trackerJPDA参数与trackerGNN除了:

  • ClutterDensityFalseAlarmRate而且体积

  • NewTargetDensity替换β

  • TimeTolerance允许在单个集群中处理来自扫描雷达的多个检测。

此外,设置TrackLogic集成这在概念上更接近于与前两个跟踪器使用的分数逻辑。

追踪器=追踪器...“FilterInitializationFcn”@initCVFilter,...“MaxNumTracks”numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”门,...“TrackLogic”“集成”...“DetectionProbability”帕金森病,...“ClutterDensity”,远/卷,...“NewTargetDensity”,β,...“TimeTolerance”, 0.05);[trackSummary, truthSummary, trackMetrics, truthMetrics, timeJPDACV] = helperRunTracker(dataLog,tracker,false);

虽然trackerJPDA不维护多个假设,但它允许在每次更新只报告一个检测的模糊区域中确认两个航迹。两个轨道都可以以不同的概率分配给探测。然而,正如之前与其他跟踪器观察到的那样,这些轨迹相互交叉。每个真理的度量断点计数也是1。

disp (trackSummary) disp (truthSummary)
TrackID AssignedTruthID幸存TotalLength DivergenceStatus  _______ _______________ _________ ___________ ________________ 1 3真191假2 2真191假TruthID AssociatedTrackID TotalLength BreakCount EstablishmentLength  _______ _________________ ___________ __________ ___________________ 2 2 192年1 1 3 1 192 1 2

跟踪精度与使用的方法相当trackerGNN而且trackerTOMHT

disp (trackMetrics) disp (truthMetrics)
TrackID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 1 44.918 29.911 5.1894 3.5599 58.904 31.484 7.0023 3.0944 TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 56.106 31.564 6.5976 3.1815 47.304 29.606 5.4677 3.5093

具有交互多模型的联合概率数据关联跟踪器

与其他两个跟踪器一样,模糊区域之前的转弯可以通过交互的多个模型更好地解决。trackerJPDA还可以与trackingIMM,使用相同的FilterInitializationFcn像以前一样。

追踪器=追踪器...“FilterInitializationFcn”@initIMMFilter,...“MaxNumTracks”numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”门,...“TrackLogic”“集成”...“DetectionProbability”帕金森病,...“ClutterDensity”,远/卷,...“NewTargetDensity”,β,...“TimeTolerance”, 0.05);[trackSummary, truthSummary, trackMetrics, truthMetrics,timeJPDAIMM] = helperRunTracker(dataLog,tracker,true);

其结果与trackerTOMHT,得益于交互多模型,目标在转弯过程中被更精确地跟踪,并在进入模糊区域之前被充分分离。音轨1和2都被分配给一个零间断数的目标。

disp (trackSummary) disp (truthSummary)
TrackID AssignedTruthID幸存TotalLength DivergenceStatus  _______ _______________ _________ ___________ ________________ 1对191错2 3真191假TruthID AssociatedTrackID TotalLength BreakCount EstablishmentLength  _______ _________________ ___________ __________ ___________________ 2 1 192 0 1 2 192 0 2

同样,跟踪精度结果与之前使用的结果相似trackerGNN而且trackerTOMHT

disp (trackMetrics) disp (truthMetrics)
TrackID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 1 57.172 27.523 7.6831 6.2685 39.21 29.184 6.1317 4.769 TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 39.21 29.184 6.1317 4.769 57.172 27.523 7.6831 6.2685

时间性能比较

每个跟踪器和过滤器组合的另一个比较点是运行时。下图显示了跟踪循环持续时间的记录。基于CV模型的GNN跟踪器运行时值对结果进行归一化。

图c1 = category ({“简历”“IMM”});timeData = [timeGNNCV timeJPDACV timeTOMHTCV;timeGNNIMM timeJPDAIMM timeTOMHTIMM]/timeGNNCV;酒吧(c1, timeData)传说(“GNN”JPDA的“TOMHT”“位置”“西北”) ylabel (归一化时间(x timeGNN-CV))标题(“时间绩效比较”) ax = gca;斧子。YGrid =“上”

结果表明,根据运动模型的不同,GNN和JPDA跟踪目标的速度比MHT快5 ~ 6倍。IMM运动模型使所有三个跟踪器运行速度慢了3到4倍。注意,每个跟踪器的处理时间根据场景的目标数量、假警报密度、目标密度等不同而不同。这个例子并不能保证在不同的用例中有相似的性能比较。

总结

在本例中,您创建了一个场景,其中单个传感器检测到两个机动目标,其中它们的一些运动在一个模糊区域内。您使用了六种跟踪器和过滤器的组合来显示每种跟踪器和过滤器对整体跟踪的贡献。你观察到,匀速滤波器在跟踪目标机动过程中不太准确,这需要一个相互作用的多模型滤波器。您还观察到MHT和JPDA处理检测与跟踪的模糊关联情况的能力,以及如何使用它来保持连续跟踪,而单假设跟踪器无法做到这一点。最后,在选择跟踪器时,您注意到了跟踪结果和处理时间之间的权衡。在这种情况下,JPDA被证明是最好的选择。在不同的场景中,当GNN和JPDA都不能提供可接受的跟踪结果时,您可能需要更复杂的MHT。如果模糊区域较少或杂波密度较低,您也可以选择GNN。