主要内容

trackErrorMetrics

跟踪错误和NEES

描述

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

要生成轨道分配指标:

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

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

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

创建

描述

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

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

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

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对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

cumulativeTrackMetrics 最近轨道的累积度量
cumulativeTruthMetrics 最近真相的累积度量
currentTrackMetrics 最近的跟踪指标
currentTruthMetrics 衡量近期真相的指标
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象
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中引入