主要内容

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

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

介绍

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

  1. 有多少对象?

  2. 太空中的物体在哪里?

  3. 他们的速度和运动方向是多少?

  4. 物体如何相对运动?

跟踪器依赖传感器数据,如雷达检测。如果传感器可以在空间上解析目标,传感器可以为两个目标产生两个检测。如果两个目标紧密间隔,则它们可以落在单个传感器分辨率单元中,并且传感器仅报告它们的一个检测。为了说明问题,下图显示了具有1.5度方位分辨率的雷达。在20公里的范围内,雷达传感器箱的宽度高于540米,这意味着从该范围内报告的任何检测位于箱的中心,它周围的不确定性±270米。该垃圾箱内的任何两个目标都被报告为单一检测。

设想

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

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

加载ATCdata.mat% scenario = helperCreateScenario;%数据记录= helperRunDetections(场景);plotscenarioanddetections(Datalog);

仅从该图中的探测结果来看,有理由假设有两个目标,但不清楚它们的轨迹是否交叉。从弹道上看,目标没有穿过。

单假设等速跟踪器模型

多目标跟踪的最简单的选择是一个单一假设跟踪器像trackerGNN.您将其设置为使用分数逻辑,以便更容易地比较trackertomht.在本例的后面。

此示例很小,不需要超过20个曲目。应选择门以允许在没有杂散的情况下建立轨道,并且从默认值增加。

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

numtracks = 20;%最大音轨数门= 45;%协会门= 1 e9卷;传感器仓容积%Beta = 1E-14;%单位卷中新增目标的速率pd = 0.8;检测概率远远= 1E-6;%误报率

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

跟踪器(......'filterinitializationfcn'@initCVFilter,......'maxnumtracks',numtracks,......“MaxNumSensors”1.......'AssignmentThreshold',门,......'tracklogic'“得分”......“DetectionProbability”,pd,'falsealmarrate', 远的,......'体积',卷,'beta',β);

以下行运行方案并生成可视化。

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

在利益使用模拟的地面真理方面,我们可以使用真相比较跟踪器的结果trackassignmentmetrics..结果表明,该跟踪器产生了两个真目标,但却产生了三个轨迹。其中一个轨道直到场景结束才幸存下来,也就是说,它被丢弃了,而另外两个轨道却幸存了下来。

在场景结束时,真相对象2与轨迹8关联,轨迹8是在场景中途丢弃轨迹2后创建的。真实对象3在场景结束时被指定为轨迹1,但有两个断点。

请注意,这两个真理对象的建立长度很小,而有很少的虚假轨迹,这意味着确认阈值很好。

disp (trackSummary) disp (truthSummary)
这是一个单词,表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示,表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示表示Uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu8 192 1 4 1 192 2

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

disp (trackMetrics) disp (truthMetrics)
这家跟踪跟踪公司的追踪者们的跟踪追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者们的追踪者的追踪者们的追踪者的追踪者者们的追踪者们的追踪者的追踪者者者们的追踪者们的追踪者们的追踪者者的追踪者的追踪者者者者的追踪者者者者者的追踪者们的追踪者们的追踪者者者者者者者者者者的追踪者者者者者者的追踪者者者的追踪者者者的追踪者们的追踪者者者者者者者者的追踪者者者者者者者者者者者的追踪者者者的U2 62.147 27.546 8.3597 3.9608 3 56.218 32.109 6.3234 2.6642

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

单假设跟踪器和恒定速度滤波器的组合无法跟踪机动目标。这一结果是由于其中一个曲目停止然后新曲目开始,而场景中只有两个目标。从无法遵循目标转弯也是明显的。

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

跟踪器(......'filterinitializationfcn'@initIMMFilter,......'maxnumtracks',numtracks,......“MaxNumSensors”1.......'AssignmentThreshold',门,......'tracklogic'“得分”......“DetectionProbability”,pd,'falsealmarrate', 远的,......'体积',卷,'beta',β);[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米/秒。这种改进可以归因于每个模型中使用的下部过程噪声值,这允许更好地平滑噪声测量。

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,除了:

  • 分配察觉即使存在分配的检测,允许轨道被认为是未分配的。此设置允许每个轨道的多个分支。但是,门的第二个元素禁止从分配的检测中禁止新曲目,以减少轨道的总数并提高性能。

  • MaxNumHistoryScans增加到10,延迟nscanpruning.

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

追踪= trackerTOMHT (......'filterinitializationfcn'@initCVFilter,......'maxnumtracks',numtracks,......“MaxNumSensors”1.......'AssignmentThreshold',[0.2,1,1] *门,......“DetectionProbability”,pd,'falsealmarrate', 远的,......'体积',卷,'beta',beta,......'maxnumhistoryscans'10......“MaxNumTrackBranches”5,......“修剪”'假设'......'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 _______ ______ ______ ________ ________ 1 45.532 28.802 4.5909 3.2827 2 61.968 29.851 6.7191 2.7338 TruthID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 2 48.877 28.57 5.0144 3.2761 3 58.203 29.895 6.1414 2.8049

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

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

追踪= trackerTOMHT (......'filterinitializationfcn'@initIMMFilter,......'maxnumtracks',numtracks,......“MaxNumSensors”1.......'AssignmentThreshold',[0.2,1,1] *门,......“DetectionProbability”,pd,'falsealmarrate', 远的,......'体积',卷,'beta',beta,......'maxnumhistoryscans'10......“MaxNumTrackBranches”5,......“修剪”'假设'......'Outputrepresentation'“轨道”);[trackSummary,truthSummary,trackMetrics,truthMetrics,timeTOMHTIMM] = helperRunTracker(数据记录,追踪器,假);

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

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

disp (trackSummary) disp (truthSummary)
TrackId ensignedtrethid surviving totallength divergencestatus _______ __________________________________________________________________________________________________________________________________ 2 1 192 0 2 3 2 192 0 2

跟踪精度类似于单假设跟踪器的组合,具有IMM滤清器。请注意,真实的准确性和相关的轨道精度是相同的,因为在整个场景中跟踪没有任何突破。

disp (trackMetrics) disp (truthMetrics)
的TrackID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 1 55.947 24.442 6.9595 5.5471 2 37.797 25.949 5.2605 4.0935 TruthID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 2 55.947 24.442 6.9595 5.5471 3 37.797 25.949 5.2605 4.0935

基于等速模型的联合概率数据关联跟踪器

虽然使用的跟踪指标通过使用大大提高trackertomht.超过trackerGNN,计算机处理时间也显着增加。联合概率数据关联(JPDA)跟踪器,trackerjpda.,将允许您探索进一步的权衡考虑因素。与GNN不同,JPDA允许单个检测用于更新其附近的多个轨道。此外,可以将多种检测与多个轨道一起聚集在一起并更新每个轨道。这解决了破碎轨道的问题。然而,JPDA在多个扫描上不保持多个假设,这使得它是与MHT相反的次优的方法。

trackerjpda.使用相同的参数trackerGNN除了:

  • Clutterdenys.是比率falsealMarrate.体积

  • NewTargetDensity替换bet

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

此外,设置TrackLogic.融合的这在概念上更接近与前两个跟踪器一起使用的分数逻辑。

追踪= trackerJPDA (......'filterinitializationfcn'@initCVFilter,......'maxnumtracks',numtracks,......“MaxNumSensors”1.......'AssignmentThreshold',门,......'tracklogic''融合的'......“DetectionProbability”,pd,......'Clutterdention',远/卷,......“新目标密度”,beta,......'timetolerance',0.05);[TrackSummary,TruthSummary,TrackMetrics,T​​ightmetrics,T​​imeJPDACV] = HelperRuntracker(Datalog,跟踪器,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)
这家跟踪公司的跟踪追踪者们对这家公司的跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪跟踪2 47.304 29.606 5.4677 3.5093 3 56.106 31.564 6.5976 3.1815

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

正如在其他两个跟踪器中看到的,模糊区域之前的转向可以通过交互多个模型更好地解决。trackerjpda.也可以与跟踪IMM,使用相同的过滤器初始化FCN像以前一样。

追踪= trackerJPDA (......'filterinitializationfcn'@initIMMFilter,......'maxnumtracks',numtracks,......“MaxNumSensors”1.......'AssignmentThreshold',门,......'tracklogic''融合的'......“DetectionProbability”,pd,......'Clutterdention',远/卷,......“新目标密度”,beta,......'timetolerance',0.05);[TrackSummary,TruthSummary,TrackMetrics,T​​ightmetrics,T​​imeJPDaimm] = HelperrunTracker(Datalog,Tracker,True);

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

disp (trackSummary) disp (truthSummary)
TrackId ensignedtrerhid surviving totallength divergenceStatus _______ _____________________________________________________________________________ __________ ____________________________________________________ 2 1 192 0 1 3 2 192 0 2

同样,跟踪准确度结果类似于先前使用的内容trackerGNNtrackertomht.

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

时间性能比较

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

图c1 =分类({“CV”'IMM'});timeData = [timeGNNCV timeJPDACV timeTOMHTCV;timeGNNIMM timeJPDAIMM timeTOMHTIMM] / timeGNNCV;酒吧(c1, timeData)传说(“GNN”“JPDA”“TOMHT”“位置”'西北') ylabel ('标准化时间(x timegnn-cv)')标题(“时间性能比较”)ax=gca;伊格里德斧头=“开”;

结果表明,根据运动模型,GNN和JPDA可以比MHT追踪目标5至6倍。IMM动态模型使所有三个跟踪器运行3至4倍较慢。请注意,每个跟踪器处理时间根据方案的目标数量,误报的浓度,目标密度等而异。此示例在不同用例中不保证类似的性能比较。

总结

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