主要内容

trackErrorMetrics

跟踪错误和NEES

描述

trackErrorMetrics系统对象™提供了轨迹和已知真实轨迹之间的定量比较。

要生成曲目分配指标:

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

  2. 调用带有参数的对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

errorMetrics= trackErrorMetrics创建一个trackErrorMetrics具有默认属性值的系统对象。

例子

errorMetrics= trackErrorMetrics (名称,值属性的属性trackErrorMetrics对象,使用一个或多个名称-值对。例如,metrics = trackErrorMetrics('MotionModel','constvel')创建一个trackErrorMetrics物体具有匀速运动模型。将属性名用引号括起来。

属性

全部展开

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

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

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

错误函数格式指定为“内置”“自定义”

  • “内置”—启用MotionModel财产。

    在使用任何内置多对象跟踪器报告的跟踪和控件报告的真相时,此属性是一个方便的接口platformPoses的对象函数trackingScenario对象。默认的估计误差函数假设跟踪而且真理是结构的数组或对象的数组。

  • “自定义”—启用自定义属性:EstimationErrorLabelsEstimationErrorFcnTruthIdentifierFcn,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”的字段跟踪的位置、速度和周转率对应的行和列中,输入必须具有位置、速度和周转率协方差“状态”输入的轨迹字段。

错误估计函数输出的标签,指定为字符串数组或字符向量的单元格数组。标签的数量必须与误差估计函数的输出数量相对应。方法指定误差估计函数EstimationErrorFcn财产。

例子:{“posMSE”、“velMSE”}

依赖关系

要启用此属性,请设置ErrorFunctionFormat财产“自定义”

数据类型:字符|字符串

误差估计函数,指定为函数句柄。该函数确定了对轨迹真值的估计误差。

误差估计函数可以有多个标量输出,并且必须具有以下语法。

着干活,out2,……,outN] = estimationerror(onetrack,onetruth)
控件中指定的标签数组中的条目数必须匹配EstimationErrorLabels财产。

onetrack是元素的跟踪数组作为输入传入trackErrorMetric在对象更新时。onetruth是元素的真理数组在对象更新时传入。的trackErrorMetrics对象在跨轨迹或真相报告时,对每个输出进行算术平均。

例子:@errorFunction

依赖关系

要启用此属性,请设置ErrorFunctionFormat财产“自定义”

数据类型:function_handle

轨迹标识符函数,指定为函数句柄。对象的跟踪标识符跟踪在对象更新时输入。音轨标识符是唯一的字符串或数值。

音轨标识符函数必须具有以下语法:

trackID = trackIDentifier(轨迹)

跟踪是一样的跟踪作为输入传入的数组trackErrorMetric对象更新时。trackID是一样的尺寸吗跟踪.默认的识别函数句柄,@defaultTrackIdentifier,假设跟踪结构或对象的数组是否具有“TrackID”字段名或属性。

依赖关系

要启用此属性,请设置ErrorFunctionFormat财产“自定义”

数据类型:function_handle

true标识符函数,指定为函数句柄。对象的真值标识符真理在对象更新时输入。真相标识符是唯一的字符串或数值。

true标识符函数必须具有以下语法:

truthID = truthIDentifier(真理)

真理是一样的真理作为输入传入的数组trackErrorMetric更新。truthID必须和真理.默认的识别函数句柄,@defaultTruthIdentifier,假设真理数组或结构或对象是否具有“PlatformID”字段名或属性。

依赖关系

要启用此属性,请设置ErrorFunctionFormat财产“自定义”

数据类型:function_handle

使用

要估计误差,请使用参数调用轨道误差度量对象,就像它是一个函数一样(在这里描述)。

描述

例子

posRMSEvelRMSEposANEESvelANEES= errorMetrics(跟踪trackIDs真理truthIDs返回指标

  • posRMSE-位置均方根误差

  • velRMSE-速度均方根误差

  • posANEES-位置平均归一化-估计误差平方

  • velANEES-速度平均值归一化-估计误差平方

对于在当前时间步长的匀速运动。trackIDs所有音轨的音轨标识符的集合。truthIDs是真值标识符的集合。跟踪那套铁轨,和真理是真理的集合。trackIDs而且truthIDs是否每个向量的对应元素都与在其中找到的轨迹和真理标识符相匹配跟踪而且真理,分别。

通过对所有航迹在当前时间步长的误差进行平均,计算出不同状态下的RMSE和ANEES值。例如,位置RMSE值,posRMSE,定义为:

posRMSE 1 1 Δ p 2

在哪里当前时间步中与真值轨迹相关的轨迹总数,和

Δ p p t r 一个 c k p t r u t h

是轨道位置之间的位置差异吗p跟踪,和对应真理的位置,p真理,在当前时间步长。其他状态的RMSE值(韦尔posacc,yawRate)的定义相似。

位置ANEES值,posANEES,定义为:

posANEES 1 1 Δ p T C p 1 Δ p

在哪里Cp协方差矩阵是否对应于航迹的位置在当前时间步长。其他州的ANEES值(韦尔posacc,yawRate)的定义相似。

要启用此语法,请设置ErrorFunctionFormat财产“内置”MotionModel财产“constvel”

posRMSEvelRMSEaccRMSEposANEESvelANEESaccANEES= errorMetrics(跟踪trackIDs真理truthIDs还返回指标

  • accRMS-加速度均方根误差

  • accANEES-加速度平均归一化-估计误差平方

对于在当前时间步长的恒定加速度运动。

要启用此语法,请设置ErrorFunctionFormat财产“内置”MotionModel财产“constacc”

posRMSEvelRMSEyawRateRMSEposANEESvelANEESyawRateANEES= errorMetrics(跟踪trackIDs真理truthIDs还返回指标

  • yawRateRMSE-偏航速率均方根误差

  • yawRateANEES-偏航率平均归一化估计误差平方

对于在当前时间步长的恒定转率运动。

要启用此语法,请设置ErrorFunctionFormat财产“内置”MotionModel财产“constturn”

着干活out2,……,outN= errorMetrics(跟踪trackIDs真理truthIDs返回用户定义的度量着干活out2,……,outN

要启用此语法,请设置ErrorFunctionFormat财产“自定义”.类中列出的元素的数量EstimationErrorLabels属性中的输出数量必须匹配EstimationErrorFcn.估计误差的结果在所有的轨迹到真值的分配上进行算术平均。

提示

这些使用语法只计算在当前时间步上具有关联真值的所有轨迹的RMSE和ANEES值。要获得每个轨迹和真理的累积RMSE和ANEES值,使用cumulativeTrackMetrics而且cumulativeTruthMetrics对象函数。要获得每个轨道和真理的当前RMSE和ANEES值,请使用currentTrackMetrics而且currentTruthMetrics对象函数。

输入参数

全部展开

跟踪信息,指定为结构或对象的数组。对于内置的跟踪器,如trackerGNNtrackerTOMHT,objectTrack输出包含“状态”“StateCovariance”,“TrackID”信息。

数据类型:结构体

跟踪标识符,指定为实值向量。trackIDs元素与在跟踪

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

数据类型:结构体

真理标识符,指定为实值向量。truthIDs元素与发现的真理相匹配真理

输出参数

全部展开

所有与真值相关的轨迹的位置均方根误差,作为标量返回。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

速度均方根误差的所有轨道与真相,作为一个标量返回。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

所有与真值相关的轨迹的加速度均方根误差的平方,作为标量返回。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

所有与真值相关的航迹的偏航率均方根误差的平方,作为标量返回。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

所有与真值相关的轨迹的位置平均归一化估计误差平方,作为标量返回。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

速度平均归一化估计误差平方的所有轨道与真相,作为一个标量返回。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

加速度平均归一化估计误差平方的所有轨迹与真相相关,作为一个标量返回。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

对于与真值相关的所有航迹,作为标量返回的偏航率平均归一化估计误差平方。

依赖关系

要启用此参数,请设置ErrorFunctionFormat财产“内置”

自定义误差度量输出,作为标量返回。中指定的误差估计函数的输出EstimationErrorFcn财产。

依赖关系

要启用这些参数,请设置ErrorFunctionFormat财产“自定义”

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放名为obj,使用以下语法:

发行版(obj)

全部展开

cumulativeTrackMetrics 最近曲目的累积参数
cumulativeTruthMetrics 近期事实的累积度量
currentTrackMetrics 近期游戏的指标
currentTruthMetrics 近期真相的度量
释放 释放资源并允许更改系统对象属性值和输入特征
重置 的内部状态重置系统对象
isLocked 确定系统对象正在使用中
克隆 创建重复的系统对象

例子

全部折叠

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

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

负载trackmetricextracklogtruthlog

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

tam = trackAssignmentMetrics;tem = trackErrorMetrics;

创建输出变量。

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

遍历所有音轨到:

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

  • 分析并检索当前的track-to-truth赋值。

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

I =1: null (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误差度量。

子情节(2,2,1)情节(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中介绍