使用GNN分配跟踪对象
的multiObjectTracker
系统对象™初始化、确认、预测、纠正和删除移动对象的轨迹。多目标跟踪器的输入是由一个objectDetection
对象,radarDetectionGenerator
对象,或visionDetectionGenerator
对象。多目标跟踪器接受来自多个传感器的检测,并使用全局最近邻(GNN)准则将其分配到跟踪对象。每个检测被分配到一个单独的轨道。如果检测不能分配到任何轨道,基于AssignmentThreshold
属性时,跟踪器创建一个新轨迹。轨道以结构数组的形式返回。
一条新轨道从A开始试探性的状态。如果给一个试探性轨道分配足够的探测,它的状态就会变为确认.如果检测是已知的分类(ObjectClassID
返回轨迹的字段非零),该轨迹可以立即被确认。有关用于确认轨迹的多目标跟踪器属性的详细信息,请参见算法.
当轨迹被确定时,多目标跟踪器认为该轨迹代表一个物理对象。如果在指定数量的更新中未将检测添加到轨道中,则轨道将被删除。
跟踪器还利用卡尔曼滤波估计每个轨迹的状态向量和状态向量协方差矩阵。这些状态向量用于预测轨道在每一帧中的位置,并确定分配给每个轨道的每个检测的可能性。
使用多目标跟踪器跟踪对象:
创建multiObjectTracker
对象,并设置其属性。
使用参数调用对象,就像调用函数一样。
要了解更多关于System对象如何工作的信息,请参见什么是系统对象?.
要更新轨迹,使用参数调用已创建的多对象跟踪器,就好像它是一个函数(这里描述)。或者,通过使用updateTracks
函数,指定多对象跟踪器作为输入参数。
在多对象跟踪器中创建、更新和删除轨道,并返回关于已确认轨道的详细信息。更新是基于指定的列表confirmedTracks
=跟踪器(检测
,时间
)检测
,所有轨道均按规定更新时间
.返回的每个元素confirmedTracks
对应于一个单轨。
[
同样的回报confirmedTracks
,tentativeTracks
) =跟踪器(检测
,时间
)tentativeTracks
包含关于试探性轨道的细节。
[
同样的回报confirmedTracks
,tentativeTracks
,allTracks
) =跟踪器(检测
,时间
)allTracks
包含所有已确认和试探性轨道的细节。跟踪程序按照跟踪程序内部维护它们的顺序返回。您可以使用此输出来帮助您计算成本矩阵,这是一个可选的输入参数。
[___) =跟踪器(
指定成本矩阵,返回前面语法的任何输出。检测
,时间
,costMatrix
)
要指定代价矩阵,请设置HasCostMatrixInput
财产的multiObjectTracker
系统对象真正的
.
[___) =跟踪器(___,
还指定了一个可检测轨道的列表detectableTrackIDs
)detectableTrackIDs
.此参数可用于前面的任何输入语法。
要启用此语法,请设置HasDetectableTrackIDsInput
财产真正的
.
要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj
,使用下面的语法:
发行版(obj)
当你将检测传递给一个多对象跟踪器时,System对象:
尝试将输入检测分配到现有轨道,基于AssignmentThreshold
多目标跟踪器的特性。
从未分配的检测创建新的轨道。
更新已经分配的轨道,并可能确认它们,基于ConfirmationThreshold
跟踪器的属性。
属性删除没有指定检测的轨道DeletionThreshold
跟踪器的属性。