主要内容

在模糊状态下跟踪近距离目标

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

介绍

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

  1. 有多少个物体?

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

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

  4. 物体之间是如何移动的?

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

场景

为了演示传感器报告不明确地分配给跟踪的情况,您可以创建一个简单的场景。在这种情况下,位于原点(未显示)的单个雷达目标,扫描距离雷达约20公里的一个小区域。最初,雷达报告每次扫描有两次探测。当探测来自X = 0, Y = -20公里位置附近的区域时,雷达报告每次扫描一段时间,然后在Y = -19.5公里左右,向传感器(向上)方向报告两次雷达探测。

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

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

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

单假设等速跟踪器模型

多目标跟踪器最简单的选择是单假设跟踪器,比如trackerGNN.您将其设置为使用评分逻辑,以便更容易进行比较trackerTOMHT在本例的后面。

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

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

numTracks = 20;%最大音轨数门= 45;%协会门= 1 e9卷;传感器仓容积%β= 1 e-14;%单位卷中新增目标的速率pd = 0.8;%检测概率= 1 e-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与轨道8相关联,这是在轨道2被丢弃后在场景中创建的。真理对象3在场景结束时被分配到轨道1,但有两个中断。

需要注意的是,两个truth对象的建立长度都很小,而假迹很少,这意味着确认阈值很好。

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 RMS。

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 velANEES velANEES _______ ______ ______ ________ ________ 2 62.147 27.546 8.3597 3.9608 3 56.218 32.109 6.3234 2.6642

多模型交互的单假设跟踪器

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

改进跟踪器的一个选择是将滤波器修改为一个交互多模型(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 velANEES velANEES _______ ______ ______ ________ ________ 2 52.445 22.4 7.6006 6.0031 3 40.75 27.364 5.7772 3.9128

多假设等速跟踪器模型

为了解决断轨问题,使用多假设跟踪器(MHT),trackerTOMHT.在模糊区域,跟踪器生成多个关于检测与轨迹关联的假设。特别地,它支持一个假设,即第一个轨道被指定为检测,另一个假设,即第二个轨道被指定为检测。通过这样做,两个轨迹都是活的,这样跟踪器就能得到足够的检测来解决下次更新中的模糊问题。

trackerTOMHT使用相同的参数trackerGNN,除了:

  • AssignmentThreshold允许一个轨道被认为是未分配的,即使有一个指定的检测。这个设置允许每个曲目有多个分支。然而,gate的第二个元素禁止新轨道从指定的检测,以减少轨道总数和提高性能。

  • MaxNumHistoryScans增加到10,以延迟NScanPruning

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

追踪= trackerTOMHT (...“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.532 28.802 4.5909 3.2827 61.968 29.851 6.7191 2.7338 TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 58.203 29.895 6.1414 2.8049 48.877 28.57 5.0144 3.2761

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

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

追踪= trackerTOMHT (...“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.947 24.442 6.9595 5.5471 37.797 25.949 5.2605 4.0935 TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 37.797 25.949 5.2605 4.0935 55.947 24.442 6.9595 5.5471

具有恒定速度模型的联合概率数据关联跟踪器

尽管跟踪指标通过使用trackerTOMHTtrackerGNN,计算机处理时间也大大增加。联合概率数据关联(JPDA)跟踪器,trackerJPDA,将允许您进一步探讨权衡考虑。与GNN不同,JPDA允许单一检测用于更新其附近的多个轨道。此外,多个检测可以与多个轨道聚类在一起,并更新每个轨道。这就解决了轨道断裂的问题。然而,JPDA并没有在多次扫描中维持多个假设,这使得它与MHT相比是一个次优方法。

trackerJPDA使用相同的参数trackerGNN除了:

  • ClutterDensityFalseAlarmRate体积

  • NewTargetDensity替换β

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

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

追踪= trackerJPDA (...“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

跟踪精度与所获得的是相当的trackerGNNtrackerTOMHT

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像以前一样。

追踪= trackerJPDA (...“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

再次,跟踪精度结果类似于以前使用trackerGNNtrackerTOMHT

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 =分类({“简历”,“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。