主要内容

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

此示例显示如何在传感器检测到跟踪的关联时跟踪对象是模糊的。在此示例中,您使用单假设跟踪器,多假设跟踪器和概率数据关联跟踪器来比较跟踪器如何处理这种模糊性。要跟踪,机动目标更好,通过使用各种模型来估计目标的运动。

介绍

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

  1. 有多少个物体?

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

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

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

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

场景

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

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

负载ATCdata.mat% scenario = helperCreateScenario;%数据日志=HelperUndections(场景);绘图场景和检测(数据日志);

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

单假设等速跟踪器模型

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

此示例很小,不需要超过20个轨迹。应选择浇口,以允许在没有虚假轨迹的情况下建立轨迹,并从默认值增加。

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

numtrack=20;%最大曲目数门= 45;%协会门= 1 e9卷;传感器仓容积%β=1e-14;%单位卷中新增目标的速率pd = 0.8;%发现概率far=1e-6;%虚警率

你用的是一个恒定速度扩展卡尔曼滤波器。的initCVFilter功能修改过滤器initcvekf返回值允许在速度项中有更高的不确定性,在过程噪声中有更高的水平加速度。在这种情况下,这些修改是需要跟踪目标的,目标以高速移动,并通过在水平面上转弯进行机动。

追踪= trackerGNN (...“FilterInitializationFcn”,@ initcvfilter,...“MaxNumTracks”,numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”大门...“跟踪逻辑”“分数”...'侦查可力'帕金森病,“FalseAlarmRate”远,...“体积”卷,“β”,β);

下面的代码行运行该场景并生成可视化。

[TrackSummary,TrueSummary,Trackmetrics,T​​ightmetrics,T​​imeGnncv] = 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”大门...“跟踪逻辑”“分数”...'侦查可力'帕金森病,“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,除了:

  • 分配阈值即使有指定的检测,也允许将轨迹视为未指定。此设置允许每个轨迹有多个分支。但是,gate的第二个元素不允许指定检测的新轨迹,以减少轨迹总数并提高性能。

  • maxnumhistoryscans.增加到10,以延迟修剪

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

追踪= trackerTOMHT (...“FilterInitializationFcn”,@ initcvfilter,...“MaxNumTracks”,numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”,[0.2, 1,1]*门,...'侦查可力'帕金森病,“FalseAlarmRate”远,...“体积”卷,“β”,β,...“MaxNumHistoryScans”10...'maxnumtrackbranches'5,...“NScanPruning”“假设”...“OutputRepresentation”“跟踪”);[TrackSummary,TruthSummary,TrackMetrics,T​​imeMetrics,T​​imetomHTCV] = HelperRuntracker(Datalog,跟踪器,FALSE);

结果表明,多假设跟踪器能够在整个方案中跟踪两个真实性物体。对于歧义区域,MHT Tracker制定了关于分配的两个假设:

  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)
“追踪追踪者们的追踪追踪者们的追踪者们的跟踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者者们的追踪者们的追踪者们的UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU他们的UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu2 48.877 28.57 5.0144 3.2761 3 58.203 29.895 6.1414 2.8049

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

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

追踪= trackerTOMHT (...“FilterInitializationFcn”@initIMMFilter,...“MaxNumTracks”,numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”,[0.2, 1,1]*门,...'侦查可力'帕金森病,“FalseAlarmRate”远,...“体积”卷,“β”,β,...“MaxNumHistoryScans”10...'maxnumtrackbranches'5,...“NScanPruning”“假设”...“OutputRepresentation”“跟踪”); [trackSummary,truthSummary,trackMetrics,truthMetrics,timeTOMHTIMM]=helperRunTracker(数据日志,跟踪器,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

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

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

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

  • ClutterDensityFalseAlarmRate体积

  • newtargetdity替换β

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

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

追踪= trackerJPDA (...“FilterInitializationFcn”,@ initcvfilter,...“MaxNumTracks”,numTracks,...“MaxNumSensors”, 1...“AssignmentThreshold”大门...“跟踪逻辑”“一体化”...'侦查可力'帕金森病,...“杂波密度”,远/卷,...“NewTargetDensity”,β,...“时间容忍度”,0.05); [trackSummary,truthSummary,trackMetrics,truthMetrics,timeJPDACV]=helperRunTracker(数据日志,跟踪器,false);

尽管trackerJPDA不支持多个假设,但它允许两个轨迹在每次更新只报告一个检测的模糊区域保持被确认。两个轨迹可以用不同的概率分配给检测。然而,就像之前观察到的其他跟踪器一样,这些轨迹交叉在一起。每个真理的度量中断计数也是1。

disp(tracksummary)disp(truthsummary)
TrackId ensignedtreurchid surviving totallength divergencestatus _______ ____________________________________________________________________________ ___________________________________________________________ 2 2 192 1 1 3 1 192

跟踪精度与所获得的精度相当。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”大门...“跟踪逻辑”“一体化”...'侦查可力'帕金森病,...“杂波密度”,远/卷,...“NewTargetDensity”,β,...“时间容忍度”,0.05); [trackSummary,truthSummary,trackMetrics,truthMetrics,timeJPDAIMM]=helperRunTracker(数据日志,跟踪器,真);

结果是可比的trackerTOMHT在转向过程中,由于采用了交互多模型,使得目标在转向过程中被更精确地跟踪,并且在进入模糊区域之前被充分地分离。轨道1和轨道2都被分配给具有零中断计数的目标。

disp(tracksummary)disp(truthsummary)
跟踪ID分配的身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份身份存存存存存存存存总数和分歧分歧的总数,总数,分歧分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,分歧,我们我们我们我们我们我们我们我们我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,关于关于关于关于关于关于关于关于关于关于我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,我们,(小标题)(小标题)(小标题)(小标题)(小标题)(小标题)(小标题)(小标题)(小标题)(小标题)小标题

同样,跟踪精度结果与之前使用trackerGNNtrackerTOMHT

disp (trackMetrics) disp (truthMetrics)
这家跟踪公司的追踪追踪者们在他们的网站上发布了他们的跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU2 57.172 27.523 7.6831 6.2685 3 39.21 29.184 6.1317 4.769

时间性能比较

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

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