主要内容

updateTracks

用新的检测更新多目标跟踪器

描述

confirmedTracks= updateTracks (跟踪器检测时间控件中的创建、更新和删除轨道multiObjectTracker系统对象™,跟踪器.更新是基于指定的列表检测,所有轨道均按规定更新时间.返回的每个元素confirmedTracks对应于一个单轨。

confirmedTrackstentativeTracks) = updateTracks (跟踪器检测时间同样的回报tentativeTracks包含关于试探性轨道的细节。

例子

confirmedTrackstentativeTracksallTracks) = updateTracks (跟踪器检测时间同样的回报allTracks包含所有已确认和试探性轨道的细节。跟踪程序按照跟踪程序内部维护它们的顺序返回。您可以使用此输出来帮助您计算成本矩阵,这是一个可选的输入参数。

___) = updateTracks (跟踪器检测时间costMatrix指定成本矩阵,返回前面语法的任何输出。

要指定代价矩阵,请设置HasCostMatrixInput的属性跟踪器真正的

___) = updateTracks (___detectableTrackIDs还指定了一个可检测轨道的列表detectableTrackIDs.此参数可用于前面的任何输入语法。

要启用此语法,请设置HasDetectableTrackIDsInput财产真正的

例子

全部折叠

创建一个multiObjectTracker系统对象™使用默认的过滤器初始化函数为一个二维恒定速度模型。对于该运动模型,状态向量为[xvxyv].

追踪= multiObjectTracker (“ConfirmationThreshold”[4 - 5],...“DeletionThreshold”10);

通过指定objectDetection对象。要在多目标跟踪器中使用此检测,请将检测包含在单元阵列中。

dettime = 1.0;侦破= {...objectDetection (dettime [10;1),...“SensorIndex”, 1...“ObjectAttributes”, {“ExampleObject”1})...};

使用此检测更新多目标跟踪器updateTracks函数。更新多目标跟踪器的时间必须大于或等于检测到目标的时间。

updatetime = 1.25;[confirmedTracks, tentativeTracks allTracks] = updateTracks(记录、侦破、updatetime);

创建相同对象的另一个检测并更新多对象跟踪器,这一次通过调用跟踪器本身而不是使用updateTracks.跟踪器只维持一条跟踪。

dettime = 1.5;侦破= {...objectDetection (dettime [10.1;-1.1),...“SensorIndex”, 1...“ObjectAttributes”, {“ExampleObject”1})...};updatetime = 1.75;[confirmedTracks, tentativeTracks allTracks] =追踪(侦破,updatetime);

通过检查已确认轨道的数量来确定轨道是否已被验证。

numConfirmed =追踪。NumConfirmedTracks
numConfirmed = 0

检查被跟踪物体的位置和速度。由于航迹未被确认,从航迹中获取位置和速度tentativeTracks结构。

positionSelector = [1 0 0 0;0 0 1 0];velocitySelector = [0 1 0 0;0 0 0 1];位置= getTrackPositions (tentativeTracks positionSelector)
位置=1×210.1426 - -1.1426
速度= getTrackVelocities (tentativeTracks velocitySelector)
速度=1×20.1852 - -0.1852

输入参数

全部折叠

多目标跟踪器,指定为multiObjectTracker系统对象。

检测列表,指定为单元格数组objectDetection对象。的时间每个的属性值objectDetection对象必须小于或等于当前更新时间,时间,且大于之前用于更新多目标跟踪器的时间值。

更新时间,指定为实标量。追踪器会将所有的轨迹更新到此时。单位是秒。

时间必须大于或等于最大的时间属性值objectDetection输入中的对象检测列表。时间必须随着多目标跟踪器的每次更新而增加。

数据类型:

成本矩阵,指定为实值NT——- - - - - -ND矩阵,NT是现有轨道的数量,还是ND是当前检测的次数。代价矩阵的行对应于现有轨道。列对应于检测。的轨道列表中显示的轨道被排序allTracks多目标跟踪器上一个更新的输出参数。

在对多目标跟踪器的第一次更新中,或当跟踪器之前没有跟踪时,将代价矩阵的大小赋给[0,ND].必须计算成本,以便较低的成本表明跟踪器将检测分配给轨迹的可能性较高。为了防止某些检测被分配到某些轨道,使用

依赖关系

当更新轨道时,要使成本矩阵的规格得以实现,请设置HasCostMatrixInput跟踪器的属性真正的

数据类型:

可检测的轨道id,指定为实值1的向量或2矩阵。可探测的轨迹是传感器希望探测到的轨迹。矩阵的第一列包含传感器报告为可检测的轨道id列表。可选的第二列包含轨道的检测概率。检测概率可以由传感器报告,或者,如果没有报告,从DetectionProbability财产。

没有包含标识符的轨迹detectableTrackIDs被认为是不可检测的。轨道删除逻辑并不将缺少检测计算为轨道删除目的的“错过检测”。

依赖关系

要启用此输入参数,请设置detectableTrackIDs财产真正的

数据类型:|

输出参数

全部折叠

已确认的轨迹,以数组的形式返回objectTrackMATLAB中的对象®,并在代码生成中作为结构数组返回。在代码生成中,返回结构的字段名与属性名相同objectTrack

方法中指定的确认阈值,则确认跟踪ConfirmationThreshold财产。在这种情况下IsConfirmed对象或结构域的属性为真正的

数据类型:结构体|对象

试探性的轨迹,以数组的形式返回objectTrack对象,并在代码生成中作为结构数组返回。在代码生成中,返回结构的字段名与属性名相同objectTrack

属性中指定的确认阈值不满足的轨迹是暂定的ConfirmationThreshold财产。在这种情况下IsConfirmed对象或结构域的属性为

数据类型:结构体|对象

所有的轨道,作为数组返回objectTrack对象,并在代码生成中作为结构数组返回。在代码生成中,返回结构的字段名与属性名相同objectTrack.所有轨道由确认轨道和试运行轨道组成。

数据类型:结构体|对象

算法

当你通过检测updateTracks功能:

  • 尝试将输入检测分配到现有轨道,基于AssignmentThreshold多目标跟踪器的特性。

  • 从未分配的检测创建新的轨道。

  • 更新已经分配的轨道,并可能确认它们,基于ConfirmationThreshold跟踪器的属性。

  • 属性删除没有指定检测的轨道DeletionThreshold跟踪器的属性。

介绍了R2017a