主要内容

trackAssignmentMetrics

跟踪建立、维护和删除指标

描述

trackAssignmentMetrics系统对象™通过在每次轨道更新时自动将轨道分配给已知真相,将来自多对象跟踪系统的轨道与已知真相进行比较。分配距离度量确定了一个轨迹可以分配给真值对象的最大距离。发散距离度量确定当距离超过另一个设置的阈值时,先前分配的轨道何时可以重新分配给不同的真值对象。

要生成轨道分配指标:

  1. 创建trackAssignmentMetrics对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

assignmentMetics= trackAssignmentMetrics创建一个trackAssignmentMetrics系统对象,assignmentMetics,使用默认属性值。

例子

assignmentMetics= trackAssignmentMetrics (名称,值属性。trackAssignmentMetrics使用一个或多个名称-值对。例如,assignmentMetics = trackAssignmentMetrics('AssignmentThreshold',5)创建一个trackAssignmentMetrics对象,其赋值阈值为5。属性名用引号括起来。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

新遇到的或发散的轨迹与真值对象之间允许的最大赋值距离,指定为非负标量。对于超过这个值的距离,轨迹和真相之间的分配不能发生。单位是标准化估计误差平方(NEES)。

数据类型:|

迹线状态与指定真值对象的状态之间允许的最大发散距离,指定为非负标量。对于超过这个值的距离,轨迹可以重新分配给不同的真值对象。单位为NEES。

数据类型:|

距离函数格式指定为“内置”“自定义”

  • “内置”—启用MotionModelAssignmentDistance,DivergenceDistance属性。当任何内置的多对象跟踪器(例如trackerGNN),以及由platformPoses的对象函数trackingScenario对象。

  • “自定义”—启用自定义属性:AssignmentDistanceFcnDivergenceDistanceFcnIsInsideCoverageAreaFcnTruthIdentifierFcn,TrackIdentifierFcns.您可以使用这些属性为任意的“轨道”和“真相”输入数组构造接受或发散距离、覆盖区域和标识符。

所需的平台运动模型,指定为“constvel”“constacc”“constturn”,或“歌手”.属性所使用的运动模型跟踪输入。

运动模型期望“状态”字段跟踪要使用包含以下值的列向量:

  • “constvel”-位置在元素[1 3 5],速度在元素[2 4 6]。

  • “constacc”位置在元素[1 4 7]中,速度在元素[2 5 8]中,加速度在元素[3 6 9]中。

  • “constturn”位置在元素[1 3 6]中,速度在元素[2 4 7]中,偏航率在元素5中。

  • “歌手”位置在元素[1 4 7]中,速度在元素[2 5 8]中,加速度在元素[3 6 9]中。

“StateCovariance”字段跟踪对象的位置、速度和转弯速率对应的行和列中,输入必须具有位置、速度和转弯速率协方差“状态”输入轨道的字段。

分配距离的类型,指定为“posnees”“velnees”“posabserr”,或“velabserr”.类型指定用于赋值的物理量。当检测到新的轨道或轨道变得发散时,使用这个量将轨道与真实轨道进行比较。赋值在定义的阈值内寻求最接近的真值AssignmentThreshold财产。

  • “posnees”- NEES轨道位置错误

  • “velnees”- NEES轨道速度错误

  • “posabserr”-轨道位置绝对误差

  • “velabserr”-轨道速度的绝对误差

依赖关系

属性可启用此属性DistanceFunctionFormat财产“内置”

发散距离类型,指定为“posnees”“velnees”“posabserr”,或“velabserr”.类型指定用于评估差异的物理量。当一个音轨之前被分配为真值时,它们之间的距离将在后续更新步骤中与这个量进行比较。的散度距离超过的值的任何轨迹DivergenceThreshold被认为是发散性的,可以重新分配到一个新的真理。

  • “posnees”- NEES轨道位置错误

  • “velnees”- NEES轨道速度错误

  • “posabserr”-轨道位置绝对误差

  • “velabserr”-轨道速度的绝对误差

依赖关系

属性可启用此属性DistanceFunctionFormat财产“内置”

分配距离函数,指定为函数句柄。这个函数决定了真值和轨迹之间的分配距离。无论何时检测到新的轨道或现有轨道变得发散,都需要将该轨道与当前步骤的所有真实值进行比较。方法定义的阈值内,此函数帮助查找相对于轨道的最近的真值AssignmentThreshold财产。

该函数必须具有以下语法:

Dist = assignmentdistance(一个轨道,一个真理)
函数必须返回一个非负的赋值距离,经销,通常用NEES表示。onetrack是元素的跟踪数组输入参数。onetruth是元素的真理数组输入参数。

依赖关系

属性可启用此属性DistanceFunctionFormat财产“自定义”

数据类型:function_handle

发散距离函数,指定为函数句柄。这个函数决定了真相与轨迹之间的发散距离。如果从轨道到其真值赋值的散度距离超过DivergenceThreshold在美国,这条轨迹被认为是发散的,可以重新分配到一个新的真理。

该函数必须具有以下语法:

距离=发散距离(一条轨迹,一个真相)
函数必须返回一个非负的散度距离,经销,通常用NEES表示。onetrack是元素的跟踪数组输入参数。onetruth是元素的真理数组输入参数。

依赖关系

属性可启用此属性DistanceFunctionFormat财产“自定义”

数据类型:function_handle

函数确定检测到真值对象的时间,指定为函数句柄。这个函数决定了一个真值对象在传感器覆盖区域内的时间,因此是可检测的。

该函数必须具有以下语法:

Status = isinside覆盖区域(true)
并返回一个逻辑数组,状态真理期望在每一步中传递的真值对象数组。状态逻辑数组的大小与真理输入。一个条目状态真正的当对应的真值对象指定为真理都在传感器的覆盖范围内。

依赖关系

属性可启用此属性DistanceFunctionFormat财产“自定义”

数据类型:function_handle

轨迹标识符函数跟踪输入,指定为函数句柄。轨道标识符是唯一的字符串或数值。

该函数必须具有以下语法

Trackids = trackidentifier(tracks)
并返回一个数值数组,trackidstrackids一定要和?一样的尺寸跟踪输入参数。默认的轨迹识别功能假设跟踪是结构体或类的数组TrackID字段或属性。

依赖关系

属性可启用此属性DistanceFunctionFormat财产“自定义”

数据类型:function_handle

的真值标识符函数真理输入,指定为函数句柄。真值标识符是唯一的字符串或数值。

该函数必须具有以下语法

Truthids = truthidentifier(真相标识符)
并返回一个数值数组,truthidstruthids尺寸必须和真理输入参数。默认的真值识别函数假设真理是结构体或类的数组PlatformID字段或属性。

依赖关系

属性可启用此属性DistanceFunctionFormat财产“自定义”

数据类型:function_handle

无效赋值的跟踪标识符,指定为标量或字符串。当音轨分配无效时返回此值。中指定的函数句柄返回的值必须与该类相同TrackIdentifierFcn

例子:-1

数据类型:||字符串

无效赋值的真值标识符,指定为标量或字符串。当真值赋值无效时返回此值。中指定的函数句柄返回的值必须与该类相同TruthIdentifierFcn

例子:-1

数据类型:||字符串

使用

要计算指标,使用参数调用轨道分配指标,就像调用函数一样(此处描述)。

描述

tracksummarytruthsummary= assignmentMetics(跟踪真理返回的结构,tracksummary而且truthsummary,包含所有的累积指标跟踪而且真理,从前面的对象更新中获得。

输入参数

全部展开

跟踪信息,指定为对象数组或结构数组。如果DistanceFunctionFormat属性指定为“内置”,然后跟踪必须包含状态StateCovariance,TrackID作为属性名或字段名。来自内置跟踪器的跟踪输出,例如trackerGNN,均与跟踪输入。

数据类型:结构体

真值信息,指定为结构体或结构体数组。当使用trackingScenario,真相信息可以从platformPoses对象的功能。

数据类型:结构体

输出参数

全部展开

所有轨道的累计指标,作为结构返回。方法的最后一次调用之后,在所有轨道上计算度量重置对象的功能。该结构有以下字段:

描述
TotalNumTracks

遇到的唯一轨道标识符的总数

NumFalseTracks

音轨的数量从来没有分配给任何真理

MaxSwapCount

每条音轨的最大交换次数。每当一个音轨被分配给不同的真值时,就会发生音轨交换。

TotalSwapCount

每个声道交换的总次数。每当一个音轨被分配给不同的真值时,就会发生音轨交换。

MaxDivergenceCount

最大发散数。轨道的结果是发散的DivergenceDistanceFcn大于散度阈值。

TotalDivergenceCount

散度的总数。当散度距离函数的结果大于散度阈值时,轨迹是发散的。

MaxDivergenceLength

每个轨道处于发散状态的最大更新次数

TotalDivergenceLength

每个轨道处于发散状态的更新总数

MaxRedundancyCount

分配给同一真理的最大附加音轨数

TotalRedundancyCount

分配给相同真理的附加音轨的总数

MaxRedundancyLength

每个轨道处于冗余状态的最大更新次数

TotalRedundancyLength

每个轨道处于冗余状态的更新总数

数据类型:结构体

所有真实值的累积赋值度量,作为结构返回。方法的最后一次调用以来的所有真值之上计算度量重置对象的功能。该结构有以下字段:

描述
TotalNumTruths

遇到的唯一真值标识符的总数

NumMissingTruths

真相的数量从来没有建立任何轨道

MaxEstablishmentLength

在覆盖区域内,在一个真值与任何轨道关联之前的最大更新次数。缺失真相的长度不计入这个汇总度量。

TotalEstablishmentLength

在覆盖区域内,在一个真值与任何轨道相关联之前的更新总数。缺失真相的长度不计入这个汇总度量。

MaxBreakCount

每个真理建立后与任何轨道不相关的最大次数。

TotalBreakCount

每个真理在建立后与任何轨道不相关的总次数。

MaxBreakLength

每个truth处于破碎状态的最大更新次数

TotalBreakLength

每个真值处于破碎状态的更新总数

数据类型:结构体

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

currentAssignment 轨迹映射到真相
trackMetricsTable 比较轨道和真相
truthMetricsTable 将真相与轨迹进行比较
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象
isLocked 确定系统对象正在使用中
克隆 创建重复的系统对象

例子

全部折叠

检查跟踪两个目标的系统的分配和错误。

首先,加载存储的轨道数据。

负载trackmetricextracklogtruthlog

创建对象来分析赋值和错误度量。

tam = trackAssignmentMetrics;tem = trackErrorMetrics;

创建输出变量。

posRMSE = 0(数字(tracklog),1);velRMSE = 0(数字(tracklog),1);posANEES = 0(数字(tracklog),1);velANEES = 0(数字(tracklog),1);

遍历所有轨道到:

  • 提取轨道和地面真相在跟踪器更新。

  • 分析并检索当前的真相跟踪分配。

  • 分析所有轨道和真相的瞬时误差指标。

我=1:数字(tracklog) tracks = tracklog{I};真相= truthlog{i};[trackAM,truthAM] = tam(轨道,真理);[trackIDs,truthIDs] = currentAssignment(tam);[posRMSE(我),velRMSE(我),posANEES(我),velANEES (i)) =...tem(跟踪、trackIDs真理,truthIDs);结束

显示轨道指标表。

trackMetricsTable (tam)
ans =4×15表TrackID AssignedTruthID幸存TotalLength DeletionStatus DeletionLength DivergenceStatus DivergenceCount DivergenceLength RedundancyStatus RedundancyCount RedundancyLength FalseTrackStatus FalseTrackLength SwapCount  _______ _______________ _________ ___________ ______________ ______________ ________________ _______________ ________________ ________________ _______________ ________________ ________________ ________________ _________ 1120南假假假3 3假0 0假0 0 2南false 1736 false 0 false 8 88 false 0 0 false 28 3 6 3 true 1138 false 0 false 4 314 false 1 28 false 0 2 8 2 true 662 false 0 false 2 29 false 1 169 false 28 0

显示真相度量表。

truthMetricsTable (tam)
ans =表2×10TruthID AssociatedTrackID DeletionStatus TotalLength BreakStatus BreakCount BreakLength InCoverageArea EstablishmentStatus EstablishmentLength  _______ _________________ ______________ ___________ ___________ __________ ___________ ______________ ___________________ ___________________ 2 8假2678假4 168真的真的56 3 6假2678假3 645真的真正的84

绘制RMSE和ANEES误差度量。

subplot(2,2,1) plot(posRMSE)标题(的位置误差)包含(跟踪更新的) ylabel (“RMSE (m)”) subplot(2,2,2) plot(velRMSE)标题(“速度误差”)包含(跟踪更新的) ylabel (“RMSE (m / s)”子情节(2,2,3)情节(posANEES)标题(的位置误差)包含(跟踪更新的) ylabel (“一”)子地块(2,2,4)地块(velANEES)标题(“速度误差”)包含(跟踪更新的) ylabel (“一”

图中包含4个轴对象。标题为Position Error的Axes对象1包含一个类型为line的对象。标题为Velocity Error的Axes对象2包含一个类型为line的对象。标题为Position Error的Axes对象3包含一个类型为line的对象。标题为Velocity Error的Axes对象4包含一个类型为line的对象。

显示每个记录轨道的当前错误度量。

currentTrackMetrics (tem)
ans =2×5表TrackID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 6 8 129.26 12.739 1.6745 0.31325 44.712 20.988 0.05974 0.2453

显示每个单独记录的真值对象的当前错误度量。

currentTruthMetrics (tem)
ans =2×5表TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 44.712 20.988 0.05974 0.31325 129.26 12.739 1.6745 0.2453

显示每个记录轨道的累积误差指标。

cumulativeTrackMetrics (tem)
ans =4×5表TrackID posRMS velRMS posANEES velANEES _______ ______ ______ ________ ________ 1 117.69 43.951 0.58338 0.44127 2 129.7 42.8 0.81094 0.42509 6 371.35 87.083 4.5208 1.6952 8 130.45 53.914 1.0448 0.44813

显示每个单独记录的真值对象的累积误差度量。

cumulativeTruthMetrics (tem)
ans =2×5表TruthID posRMS velRMS posANEES velANEES  _______ ______ ______ ________ ________ 2 3 134.41 48.253 0.96314 0.49183 258.21 65.078 2.2514 0.93359
在R2018b中引入