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

此示例示出了如何追踪对象时传感器检测到磁道的关联是不明确的。在这个例子中,你使用一个单一假设跟踪器,一个多假设跟踪和概率数据关联跟踪比较纤夫如何处理这种不确定性。要跟踪的机动目标更好,你使用各种模型估算目标的运动。

介绍

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

  1. 多少对象有哪些?

  2. 哪里定位在空间中的对象?

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

  4. 如何做到相对机动的对象彼此?

跟踪器依靠传感器数据,诸如雷达检测。传感器可以生成两个检测的两个目标,如果传感器可以在空间上解决目标。如果两个目标相距甚近,他们可以落在单个传感器分辨单元内和传感器仅上报一个检测它们。为了说明问题,下面的图中示出了具有1.5度的雷达方位分辨率。在一定范围的20公里,雷达传感器箱具有的宽度高于540米,这意味着任何检测报告从该范围位于仓的中心,与它周围的±270米不确定性。该仓内的任何两个目标被报告为一个单一的检测。

脚本

为了证明其中传感器报告被模糊地分配给轨道的情况下,您可以创建一个简单的场景。在这种情况下,单monostaticRadarSensor物体,位于原点(未示出),扫描的小区域大约从雷达20公里。最初,雷达大约每次扫描两次检测报告。当检测从周围的区域来的X = 0,Y = -20公里位置,雷达报告每个扫描单一检测了一会儿,随后两个雷达检测从围绕Y = -19.5km和朝向传感器报告(上)。

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

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

只有在该地块的检测来看,这是合理的假设有两个目标,但目前还不清楚他们是否轨迹交叉。通过他们的轨迹而定的目标没有交叉。

单一假设跟踪与恒速模型

多目标跟踪器最简单的选择是单假设跟踪器trackerGNN。您可以设置它使用比分逻辑,允许使用更加简单比较trackerTOMHT后来在这个例子。

这个例子很小,不需要超过20个音轨。门应该被选择允许轨道被建立没有伪造的轨道并且从缺省增加。

传感器箱体积可以使用的检测测量噪音的行列式来粗略估计。在这种情况下,该值约为1E9,所以你将音量设置为1E9。测试的值应该指定新的对象有多少预计在单位体积。由于在这种情况下对象的数量是恒定的,一套测试是非常小的。检测和误报警率的概率值是从雷达的相应值作出。

numTracks = 20;%轨道的最大数量栅极= 45;%协会门体积= 1E9;%传感器仓量β= 1 e-14;单位体积的新目标率%PD = 0.8;检测概率%= 1 e-6;误报率

您可以使用一个恒定的速度扩展卡尔曼滤波。该initCVFilter函数修改过滤器initcvekf返回到允许在速度而言具有较高的不确定性并且在该过程的噪声的更高水平加速度。需要这些修改跟踪此方案中的目标,其中高速和机动通过在水平面旋转移动。

跟踪= trackerGNN(...'FilterInitializationFcn'@ initCVFilter,...'MaxNumTracks'numTracks,...'MaxNumSensors'1,...“AssignmentThreshold”门,...“TrackLogic”'得分'...'DetectionProbability',PD,'FalseAlarmRate',截至目前,...'体积',第一卷,“测试版”,β);

以下线运行情况和产生的可视化。

[trackSummary,truthSummary,trackMetrics,truthMetrics,timeGNNCV] = helperRunTracker(数据记录,追踪器,假);

利用模拟的地面真值,我们可以将跟踪器的结果与真值进行比较trackAssignmentMetrics。结果显示,有两个事实的对象,而是由跟踪器生成三条轨道。其中轨道没有生存,直到情况下,即,它已被删除的结束,以及其他两条轨道一样。

在场景的结尾,真相物体2与轨道8,其通过方案创建中途轨道2滴加后相关联。真相物体3是在场景的结尾分配轨道1,但具有两个断裂。

请注意,这两个事实的对象建立长度较小,而很少有假的轨道,这意味着确认阈值是好的。

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

使用trackErrorMetrics分析真理的对象和与之相关的轨道之间的位置和速度误差方面进行质量跟踪。该结果表明,位置误差是约50-60微米,速度误差为约30米/秒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 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',PD,'FalseAlarmRate',截至目前,...'体积',第一卷,“测试版”,β);[trackSummary,truthSummary,trackMetrics,truthMetrics,timeGNNIMM] = helperRunTracker(数据记录,追踪器,假);

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

然而,即使在交互模式,在模糊区域铁轨断裂之一。单假设跟踪仅得到一个检测与那个区域,并且只能更新一个与它的轨道,滑行另一个轨道。一些更新后,滑行轨道的评分低于删除阈值和跟踪下降的轨道。

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

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

disp (trackMetrics) disp (truthMetrics)
的TrackID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 1 54.578 22.02 7.4314 4.7773 2 48.609 35.522 6.0893 3.0831 8 34.272 19.152 4.913 3.1614 TruthID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 2 54.578 22.02 7.4314 4.7773 3 40.712 27.029 5.3911 3.1296

具有恒速模型的多假设跟踪器

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

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

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

  • MaxNumHistoryScans增加至10,以延迟NScanPruning

  • MaxNumTrackBranches增加至5,以允许每磁道更多的分支(假设)。

跟踪= trackerTOMHT(...'FilterInitializationFcn'@ initCVFilter,...'MaxNumTracks'numTracks,...'MaxNumSensors'1,...“AssignmentThreshold”,[0.2,1,1] *栅极,...'DetectionProbability',PD,'FalseAlarmRate',截至目前,...'体积',第一卷,“测试版”,β,...'MaxNumHistoryScans'10,...'MaxNumTrackBranches'5,...'NScanPruning''假设'...'OutputRepresentation'“轨道”);[trackSummary,truthSummary,trackMetrics,truthMetrics,timeTOMHTCV] = helperRunTracker(数据记录,追踪器,假);

结果表明,在多假设跟踪器能够在整个方案跟踪两个真对象。对于模糊区域,该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 2 192 1 2 3 1 192 1 2

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

disp (trackMetrics) disp (truthMetrics)
TrackID posRMS velRMS posANEES velANEES _________交说2 1 45.562 28.796 4.5994 3.2797 61.967 29.85 6.731 2.7341 TruthID posRMS velRMS posANEES velANEES _________交说2 3 58.198 29.883 6.1595 2.801 48.915 28.581 5.0142 3.2781

多假设跟踪与交互多模型

在使用多假设跟踪器以恒定速度连续保持跟踪成功的基础上,与IMM滤波器的好处结合起来跟踪。该IMM过滤器可以防止轨道交叉口,因为它提高了跟踪时的目标转向更成功。下面的代码配置trackerTOMHTtrackingIMM过滤。

跟踪= trackerTOMHT(...'FilterInitializationFcn'@ initIMMFilter,...'MaxNumTracks'numTracks,...'MaxNumSensors'1,...“AssignmentThreshold”,[0.2,1,1] *栅极,...'DetectionProbability',PD,'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 2真假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 57.162 24.443 6.7891 4.1254 39.303 26.382 4.7532 3.3869 TruthID posRMS velRMS posANEES velANEES _________交说2 3 39.303 26.382 4.7532 3.3869 57.162 24.443 6.7891 4.1254

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

虽然跟踪指标大大通过使用改进的trackerTOMHTtrackerGNN中,计算机处理时间也显著增加。一个联合概率数据关联(JPDA)追踪,trackerJPDA,将让您探索进一步的权衡考虑。不像GNN,JPDA允许用于在其附近更新多个磁道的单个检测。此外,多个检测可以与多个轨道被聚集在一起,并更新每个那些磁道。这解决了断轨问题。然而,JPDA不保持多假设在多次扫描,这使得它一个次优的方法,而不是MHT。

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

  • ClutterDensity是的比率FalseAlarmRate体积

  • NewTargetDensity内容替换Beta版

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

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

追踪= trackerJPDA (...'FilterInitializationFcn'@ initCVFilter,...'MaxNumTracks'numTracks,...'MaxNumSensors'1,...“AssignmentThreshold”门,...“TrackLogic”“集成”...'DetectionProbability',PD,...“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 _______ ______ ______ ________ ________ 1 44.918 29.911 5.1894 3.5599 2 58.904 31.484 7.0023 3.0944 TruthID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 2 47.304 29.606 5.4677 3.5093 3 56.106 31.564 6.5976 3.1815

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

至于其他两个跟踪器看到的,模糊区域之前,又更好地交互多模式解决。trackerJPDA也可以与用于trackingIMM,使用相同的FilterInitializationFcn像以前一样。

追踪= trackerJPDA (...'FilterInitializationFcn'@ initIMMFilter,...'MaxNumTracks'numTracks,...'MaxNumSensors'1,...“AssignmentThreshold”门,...“TrackLogic”“集成”...'DetectionProbability',PD,...“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 _________售予_____ ___________ ___________ 191 191真的假的2 3真的假TruthID AssociatedTrackID TotalLength BreakCount EstablishmentLength _________________……_____ ___________________ 2 1 192 0 1 2 192 0 2

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

disp (trackMetrics) disp (truthMetrics)
的TrackID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 1 58.846 26.736 7.3055 5.0927 2 39.011 27.756 5.5784 3.5553 TruthID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 2 58.846 26.736 7.3055 5.0927 3 39.011 27.756 5.5784 3.5553

时间性能对比

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

图C1 =分类({'简历''IMM'});timeData = [timeGNNCV timeJPDACV timeTOMHTCV;timeGNNIMM timeJPDAIMM timeTOMHTIMM] / timeGNNCV;巴(C1,timeData)图例(“GNN”'JPDA''TOMHT''位置'“西北”)ylabel('规格化时间(X timeGNN-CV)')标题(“时间性能比较”)AX = GCA;ax.YGrid ='上';

结果表明,GNN和JPDA可以跟踪目标,比MHT根据运动模式快5至6倍。IMM的运动模型使得所有三个跟踪运行速度较慢3至4倍。需要注意的是每个跟踪处理时间会有所不同,具体取决于该方案的数量目标,误报警的密度,目标密度等这个例子并不能保证在不同的使用情况相似的性能对比。

摘要

在该示例中,创建了两个机动目标是由一个单一的传感器,其中,他们的一些运动是模糊的区域内检测到的场景。您使用跟踪器和过滤器的六种组合,以显示每一个整体跟踪的贡献。你观察到等速过滤器在他们的动作,这需要一个相互作用的多模式滤波器中跟踪目标不准确。您还观察到MHT和JPDA的处理检测的暧昧关联轨道的情况下的能力,以及它如何可以用来保持连续跟踪而单一假设跟踪器不能做到这一点。最后,你发现跟踪结果,并选择一个跟踪器时处理时间之间的权衡。在这种情况下JPDA被证明是最好的选择。在不同的情况下,您可能需要更复杂的MHT时既不GNN也不JPDA给出了可以接受的跟踪结果。你可能也喜欢GNN如果有更加明确的区域或低杂波密度。