跟踪建立、维护和删除指标
的trackAssignmentMetrics
系统对象™通过在每次轨道更新时自动将轨道分配给已知真相,将来自多对象跟踪系统的轨道与已知真相进行比较。分配距离度量确定了一个轨迹可以分配给真值对象的最大距离。发散距离度量确定当距离超过另一个设置的阈值时,先前分配的轨道何时可以重新分配给不同的真值对象。
要生成轨道分配指标:
创建trackAssignmentMetrics
对象并设置其属性。
使用参数调用对象,就像调用函数一样。
有关系统对象如何工作的详细信息,请参见什么是系统对象?
创建一个assignmentMetics
= trackAssignmentMetricstrackAssignmentMetrics
系统对象,assignmentMetics
,使用默认属性值。
属性。assignmentMetics
= trackAssignmentMetrics (名称,值
)trackAssignmentMetrics
使用一个或多个名称-值对。例如,assignmentMetics = trackAssignmentMetrics('AssignmentThreshold',5)
创建一个trackAssignmentMetrics
对象,其赋值阈值为5。属性名用引号括起来。
除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
功能解锁它们。
如果属性为可调,您可以随时更改其值。
有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计.
AssignmentThreshold
- - - - - -最大允许分配距离1
(默认)|负的标量新遇到的或发散的轨迹与真值对象之间允许的最大赋值距离,指定为非负标量。对于超过这个值的距离,轨迹和真相之间的分配不能发生。单位是标准化估计误差平方(NEES)。
数据类型:单
|双
DivergenceThreshold
- - - - - -最大允许发散距离2
(默认)|负的标量迹线状态与指定真值对象的状态之间允许的最大发散距离,指定为非负标量。对于超过这个值的距离,轨迹可以重新分配给不同的真值对象。单位为NEES。
数据类型:单
|双
DistanceFunctionFormat
- - - - - -距离函数格式“内置”
(默认)|“自定义”
距离函数格式指定为“内置”
或“自定义”
.
“内置”
—启用MotionModel
,AssignmentDistance
,DivergenceDistance
属性。当任何内置的多对象跟踪器(例如trackerGNN
),以及由platformPoses
的对象函数trackingScenario
对象。
“自定义”
—启用自定义属性:AssignmentDistanceFcn
,DivergenceDistanceFcn
,IsInsideCoverageAreaFcn
,TruthIdentifierFcn
,TrackIdentifierFcns
.您可以使用这些属性为任意的“轨道”和“真相”输入数组构造接受或发散距离、覆盖区域和标识符。
MotionModel
- - - - - -期望平台运动模型“constvel”
(默认)|“constacc”
|“constturn”
|“歌手”
所需的平台运动模型,指定为“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”
字段跟踪
对象的位置、速度和转弯速率对应的行和列中,输入必须具有位置、速度和转弯速率协方差“状态”
输入轨道的字段。
AssignmentDistance
- - - - - -分配距离的类型“posnees”
(默认)|“velnees”
|“posabserr”
|“velabserr”
分配距离的类型,指定为“posnees”
,“velnees”
,“posabserr”
,或“velabserr”
.类型指定用于赋值的物理量。当检测到新的轨道或轨道变得发散时,使用这个量将轨道与真实轨道进行比较。赋值在定义的阈值内寻求最接近的真值AssignmentThreshold
财产。
“posnees”
- NEES轨道位置错误
“velnees”
- NEES轨道速度错误
“posabserr”
-轨道位置绝对误差
“velabserr”
-轨道速度的绝对误差
属性可启用此属性DistanceFunctionFormat
财产“内置”
.
DivergenceDistance
- - - - - -分配距离的类型“posnees”
(默认)|“velnees”
|“posabserr”
|“velabserr”
发散距离类型,指定为“posnees”
,“velnees”
,“posabserr”
,或“velabserr”
.类型指定用于评估差异的物理量。当一个音轨之前被分配为真值时,它们之间的距离将在后续更新步骤中与这个量进行比较。的散度距离超过的值的任何轨迹DivergenceThreshold
被认为是发散性的,可以重新分配到一个新的真理。
“posnees”
- NEES轨道位置错误
“velnees”
- NEES轨道速度错误
“posabserr”
-轨道位置绝对误差
“velabserr”
-轨道速度的绝对误差
属性可启用此属性DistanceFunctionFormat
财产“内置”
.
AssignmentDistanceFcn
- - - - - -分配距离函数分配距离函数,指定为函数句柄。这个函数决定了真值和轨迹之间的分配距离。无论何时检测到新的轨道或现有轨道变得发散,都需要将该轨道与当前步骤的所有真实值进行比较。方法定义的阈值内,此函数帮助查找相对于轨道的最近的真值AssignmentThreshold
财产。
该函数必须具有以下语法:
Dist = assignmentdistance(一个轨道,一个真理)
经销
,通常用NEES表示。onetrack
是元素的跟踪
数组输入参数。onetruth
是元素的真理
数组输入参数。
属性可启用此属性DistanceFunctionFormat
财产“自定义”
.
数据类型:function_handle
DivergenceDistanceFcn
- - - - - -散度距离函数发散距离函数,指定为函数句柄。这个函数决定了真相与轨迹之间的发散距离。如果从轨道到其真值赋值的散度距离超过DivergenceThreshold
在美国,这条轨迹被认为是发散的,可以重新分配到一个新的真理。
该函数必须具有以下语法:
距离=发散距离(一条轨迹,一个真相)
经销
,通常用NEES表示。onetrack
是元素的跟踪
数组输入参数。onetruth
是元素的真理
数组输入参数。
属性可启用此属性DistanceFunctionFormat
财产“自定义”
.
数据类型:function_handle
IsInsideCoverageAreaFcn
- - - - - -确定可检测到真值对象的时间函数确定检测到真值对象的时间,指定为函数句柄。这个函数决定了一个真值对象在传感器覆盖区域内的时间,因此是可检测的。
该函数必须具有以下语法:
Status = isinside覆盖区域(true)
状态
.真理
期望在每一步中传递的真值对象数组。状态
逻辑数组的大小与真理
输入。一个条目状态
是真正的
当对应的真值对象指定为真理
都在传感器的覆盖范围内。
属性可启用此属性DistanceFunctionFormat
财产“自定义”
.
数据类型:function_handle
TrackIdentifierFcn
- - - - - -航迹标识功能轨迹标识符函数跟踪
输入,指定为函数句柄。轨道标识符是唯一的字符串或数值。
该函数必须具有以下语法
Trackids = trackidentifier(tracks)
trackids
.trackids
一定要和?一样的尺寸跟踪
输入参数。默认的轨迹识别功能假设跟踪
是结构体或类的数组TrackID
字段或属性。
属性可启用此属性DistanceFunctionFormat
财产“自定义”
.
数据类型:function_handle
TruthIdentifierFcn
- - - - - -真值标识函数的真值标识符函数真理
输入,指定为函数句柄。真值标识符是唯一的字符串或数值。
该函数必须具有以下语法
Truthids = truthidentifier(真相标识符)
truthids
.truthids
尺寸必须和真理
输入参数。默认的真值识别函数假设真理
是结构体或类的数组PlatformID
字段或属性。
属性可启用此属性DistanceFunctionFormat
财产“自定义”
.
数据类型:function_handle
InvalidTrackIdentifier
- - - - - -无效赋值的轨道标识符南
(默认)|标量|字符串无效赋值的跟踪标识符,指定为标量或字符串。当音轨分配无效时返回此值。中指定的函数句柄返回的值必须与该类相同TrackIdentifierFcn
.
例子:-1
数据类型:单
|双
|字符串
InvalidTruthIdentifier
- - - - - -无效赋值的真值标识符南
(默认)|标量|字符串无效赋值的真值标识符,指定为标量或字符串。当真值赋值无效时返回此值。中指定的函数句柄返回的值必须与该类相同TruthIdentifierFcn
.
例子:-1
数据类型:单
|双
|字符串
要计算指标,使用参数调用轨道分配指标,就像调用函数一样(此处描述)。
[
返回的结构,tracksummary
,truthsummary
= assignmentMetics(跟踪
,真理
)tracksummary
而且truthsummary
,包含所有的累积指标跟踪
而且真理
,从前面的对象更新中获得。
跟踪
- - - - - -跟踪信息跟踪信息,指定为对象数组或结构数组。如果DistanceFunctionFormat
属性指定为“内置”
,然后跟踪
必须包含状态
,StateCovariance
,TrackID
作为属性名或字段名。来自内置跟踪器的跟踪输出,例如trackerGNN
,均与跟踪
输入。
数据类型:结构体
真理
- - - - - -真实的信息真值信息,指定为结构体或结构体数组。当使用trackingScenario
,真相信息可以从platformPoses
对象的功能。
数据类型:结构体
tracksummary
-累积轨道分配指标所有轨道的累计指标,作为结构返回。方法的最后一次调用之后,在所有轨道上计算度量重置
对象的功能。该结构有以下字段:
场 | 描述 |
TotalNumTracks |
遇到的唯一轨道标识符的总数 |
NumFalseTracks |
音轨的数量从来没有分配给任何真理 |
MaxSwapCount |
每条音轨的最大交换次数。每当一个音轨被分配给不同的真值时,就会发生音轨交换。 |
TotalSwapCount |
每个声道交换的总次数。每当一个音轨被分配给不同的真值时,就会发生音轨交换。 |
MaxDivergenceCount |
最大发散数。轨道的结果是发散的 |
TotalDivergenceCount |
散度的总数。当散度距离函数的结果大于散度阈值时,轨迹是发散的。 |
MaxDivergenceLength |
每个轨道处于发散状态的最大更新次数 |
TotalDivergenceLength |
每个轨道处于发散状态的更新总数 |
MaxRedundancyCount |
分配给同一真理的最大附加音轨数 |
TotalRedundancyCount |
分配给相同真理的附加音轨的总数 |
MaxRedundancyLength |
每个轨道处于冗余状态的最大更新次数 |
TotalRedundancyLength |
每个轨道处于冗余状态的更新总数 |
数据类型:结构体
truthsummary
-累积真值分配指标所有真实值的累积赋值度量,作为结构返回。方法的最后一次调用以来的所有真值之上计算度量重置
对象的功能。该结构有以下字段:
场 | 描述 |
TotalNumTruths |
遇到的唯一真值标识符的总数 |
NumMissingTruths |
真相的数量从来没有建立任何轨道 |
MaxEstablishmentLength |
在覆盖区域内,在一个真值与任何轨道关联之前的最大更新次数。缺失真相的长度不计入这个汇总度量。 |
TotalEstablishmentLength |
在覆盖区域内,在一个真值与任何轨道相关联之前的更新总数。缺失真相的长度不计入这个汇总度量。 |
MaxBreakCount |
每个真理建立后与任何轨道不相关的最大次数。 |
TotalBreakCount |
每个真理在建立后与任何轨道不相关的总次数。 |
MaxBreakLength |
每个truth处于破碎状态的最大更新次数 |
TotalBreakLength |
每个真值处于破碎状态的更新总数 |
数据类型:结构体
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj
,使用这种语法:
发行版(obj)
trackAssignmentMetrics
currentAssignment |
轨迹映射到真相 |
trackMetricsTable |
比较轨道和真相 |
truthMetricsTable |
将真相与轨迹进行比较 |
检查跟踪两个目标的系统的分配和错误。
首先,加载存储的轨道数据。
负载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 (“一”)
显示每个记录轨道的当前错误度量。
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
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。