trackerGNN
多传感器多目标跟踪器使用GNN任务
描述
的trackerGNN
系统对象™是一个跟踪器能够处理来自多个传感器检测的目标。跟踪器使用一个全局加权(GNN)分配算法。跟踪初始化,证实了预测,纠正和删除的痕迹。输入生成的跟踪检测报告objectDetection
,fusionRadarSensor
,irSensor
,或sonarSensor
对象。跟踪估计状态向量和状态向量的协方差矩阵为每一个轨道。每个检测最多被分配给一个跟踪。如果发现不能分配给任何跟踪,跟踪器初始化一个新的轨道。
任何新的追踪从一开始试探性的状态。如果足够的检测是分配给一个试探性的轨道,它的状态改变确认。如果发现已经有一个已知的分类(ObjectClassID
现场返回的跟踪是零),立即跟踪确认。当跟踪确认,追踪认为代表一个物理对象的跟踪。如果检测不分配给跟踪在一个指定的数量的更新,删除。
使用这个对象跟踪对象:
创建
trackerGNN
对象并设置其属性。调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
创建
描述
创建一个跟踪器
= trackerGNNtrackerGNN
系统对象的默认属性值。
设置跟踪器使用一个或多个属性名称-值对。例如,跟踪器
= trackerGNN (名称,值
)trackerGNN (FilterInitializationFcn, @initcvukf MaxNumTracks, 100)
创建一个多目标跟踪器,使用常速,无味卡尔曼滤波器,并允许最多100张光碟。在报价附上每个属性的名字。
属性
属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放
函数打开它们。
如果一个属性可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
TrackerIndex
- - - - - -唯一的跟踪标识符
0
(默认)|非负整数
独特的跟踪标识符,指定为一个非负整数。这个属性的使用SourceIndex
在跟踪输出,区分来自不同的追踪器的跟踪multiple-tracker系统。您必须指定这个属性是一个正整数使用跟踪跟踪熔化炉的输出作为输入。
例子:1
FilterInitializationFcn
- - - - - -过滤器的初始化函数
@initcvekf
(默认)|函数处理|特征向量
过滤器的初始化函数,指定为一个函数处理或作为特征向量包含一个过滤器的初始化函数的名称。跟踪器使用一个过滤器的初始化函数在创建新的轨道。
传感器融合和跟踪工具箱™供应许多初始化函数,您可以使用它来指定FilterInitializationFcn
。
初始化函数 | 函数定义 |
---|---|
initcvabf |
初始化常速α-β滤波器 |
initcaabf |
初始化恒定加速度α-β滤波器 |
initcvekf |
常速扩展卡尔曼滤波器进行初始化。 |
initcackf |
初始化加速度恒定体积过滤器。 |
initctckf |
初始化constant-turn-rate求容积法过滤器。 |
initcvckf |
初始化常速求容积法过滤器。 |
initcapf |
初始化加速度恒定粒子滤波。 |
initctpf |
初始化constant-turn-rate粒子滤波。 |
initcvpf |
常速粒子滤波进行初始化。 |
initcvkf |
初始化常速线性卡尔曼滤波器。 |
initcvukf |
初始化常速无味卡尔曼滤波器。 |
initcaekf |
初始化加速度恒定扩展卡尔曼滤波器。 |
initcakf |
初始化加速度恒定线性卡尔曼滤波器。 |
initcaukf |
初始化加速度恒定无味卡尔曼滤波器。 |
initctekf |
初始化constant-turn-rate扩展卡尔曼滤波器。 |
initctukf |
初始化constant-turn-rate无味卡尔曼滤波器。 |
initcvmscekf |
修改初始化常速球坐标扩展卡尔曼滤波器。 |
initrpekf |
初始化常速range-parametrized扩展卡尔曼滤波器。 |
initapekf |
初始化常速angle-parametrized扩展卡尔曼滤波器。 |
initekfimm |
初始化跟踪IMM滤波器。 |
initsingerekf |
初始化歌手加速扩展的卡尔曼滤波器。 |
您也可以编写自己的初始化函数。函数必须有如下语法:
过滤器= filterInitializationFcn(检测)
objectDetection
。这个函数的输出必须过滤对象:trackingKF
,trackingEKF
,trackingUKF
,trackingCKF
,trackingPF
,trackingMSCEKF
,trackingGSF
,trackingIMM
,或trackingABF
。
指导你写这个函数中,您可以检查的细节在MATLAB提供的功能®。例如:
类型initcvekf
数据类型:function_handle
|字符
赋值
- - - - - -分配算法
“MatchPairs”
(默认)|“Munkres”
|“Jonker-Volgenant”
|“拍卖”
|“自定义”
分配算法,指定为“MatchPairs”
,“Munkres”
,“Jonker-Volgenant”
,“拍卖”
,或“自定义”
。Munkres是唯一分配算法,保证最优的解决方案,但它也是最慢的,特别是大量的检测和跟踪。其他算法并不能保证问题的最优解,但可以快20或更多的跟踪和检测。使用“自定义”
定义自己的作业功能和指定的名称CustomAssignmentFcn
财产。
例子:“自定义”
数据类型:字符
CustomAssignmentFcn
- - - - - -自定义赋值函数
特征向量
自定义赋值函数名,指定为一个字符串。赋值函数必须有以下语法:
[任务,unTrs, unDets] = f(成本、costNonAssignment)
assignmunkres
。
依赖关系
要启用这个特性,设置赋值
财产“自定义”
。
数据类型:字符
AssignmentClustering
- - - - - -聚类的检测和跟踪任务
“关闭”
(默认)|“上”
聚类的检测和跟踪任务,指定为“关闭”
或“上”
。
“关闭”
——跟踪解决全球最近邻分配问题/传感器使用成本矩阵。成本矩阵的列数等于检测的传感器的数量,和的行数等于跟踪维护的跟踪器的数量。禁止作业(作业成本大于AssignmentThreshold
)有一个无限的作业成本。“上”
——跟踪创建一个集群分离后禁止作业(作业成本大于AssignmentThreshold
),并使用禁止作业基础上形成新的集群AssignmentThreshold
财产。一个集群是一家集检测和跟踪是分配给对方。在这种情况下,跟踪解决全球最近邻每个集群分配问题。当你指定这个属性
“上”
并指定EnableMemoryManagement
财产真正的
,你可以使用这三个属性来指定特定的大小可变的数组的边界跟踪,以及确定如何追踪处理集群大小违规行为:MaxNumDetectionsPerCluster
MaxNumTracksPerCluster
ClusterViolationHandling
指定范围的大小可变的数组允许您管理的内存占用追踪,特别是在生成的C / c++代码。
数据类型:字符
|字符串
AssignmentThreshold
- - - - - -检测作业阈值
30 *[1正]
(默认)|积极的标量|1×2向量的积极的价值观
检测作业阈值(或控制阈值),指定为一个积极的标量或1×2向量(C1C2),C1≤C2。如果指定为一个标量,指定的值,瓦尔,将扩大到瓦尔,正
]。
最初,跟踪执行粗估计的归一化距离跟踪和检测。跟踪器只计算准确的归一化距离的组合粗归一化距离小于C2。同时,追踪只能分配一个检测跟踪他们准确的归一化距离小于C1。看到距离
函数用于跟踪过滤器(例如,trackingCKF
和trackingEKF
距离计算的解释。
增加的价值C2如果有组合的跟踪和检测,但不应计算作业。如果降低成本计算需要太多时间。
增加的价值C1如果有检测,但不应该分配给足迹。减少它如果有检测分配给跟踪他们不应该分配给(太远)。
请注意
如果该值的C2是有限的,状态转换函数和测量功能,跟踪滤波器中指定用于追踪,必须能够拿一个吗米——- - - - - -N矩阵的状态作为输入和输出N预测状态和N分别测量。米是国家的大小。N的状态数,任意一个非负整数。
TrackLogic
- - - - - -确认和删除逻辑类型
“历史”
(默认)|“分数”
确认和删除逻辑类型,指定为“历史”
或“分数”
。
“历史”
——跟踪确认和删除是基于轨道的次数已经分配给一个检测的最新跟踪更新。“分数”
-跟踪确认和删除基于对数似跟踪分数。一个高分意味着更有可能是有效的。低分数意味着更有可能是一个假警报。
ConfirmationThreshold
- - - - - -阈值进行跟踪确认
标量|1×2向量
阈值进行跟踪确认,指定为一个标量或1×2向量。阈值取决于类型的跟踪确认和删除逻辑设置使用TrackLogic
财产。
历史——确认阈值指定为1×2向量
(mn)
。至少跟踪确认是否收到米
检测在过去N
更新。默认值是(2、3)
。分数——确认阈值指定为一个标量。跟踪确认,如果它的分数至少高达确认阈值。默认值是
20.
。
数据类型:单
|双
DeletionThreshold
- - - - - -最低分数要求删除
5 [5]
或7
(默认)|标量|实值向量1×2积极的价值观
最低分数要求删除记录,指定为一个标量或实值1×2向量。阈值取决于类型的跟踪确认和删除逻辑设置使用TrackLogic
属性:
——确认阈值指定为历史
[P R]
。如果没有分配给任何确认跟踪检测P
次在过去R
跟踪更新,然后删除。分数,记录被删除,如果它的分数至少降低了阈值的最大跟踪分数。
例子:3
数据类型:单
|双
DetectionProbability
- - - - - -检测概率用于跟踪分数
0.9
(默认)|积极的标量在0和1之间
检测概率,指定为一个积极的标量在0和1之间。此属性用于计算分数。
例子:0.5
数据类型:单
|双
FalseAlarmRate
- - - - - -假警报概率用于跟踪分数
1 e-6
(默认)|标量
假警报的概率,指定为一个标量。此属性用于计算分数。
例子:1 e-5
数据类型:单
|双
β
- - - - - -每单位体积率的新轨道
1
(默认)|积极的标量
新线路的速度单位体积,指定为一个积极的标量。新线路的速度计算中使用跟踪分数在跟踪初始化。
例子:2.5
数据类型:单
|双
体积
- - - - - -量传感器测量本
1
(默认)|积极的标量
传感器测量的体积,指定为一个积极的标量。例如,如果一个雷达产生4 - d测量,包括方位、仰角、范围、和范围,定义的4 d体积是雷达角度波束宽度,本宽度和数据与本宽度范围。体积是用于计算跟踪分数时初始化和更新一个跟踪。
例子:1.5
数据类型:单
|双
MaxNumTracks
- - - - - -最大数量的跟踪
One hundred.
(默认)|正整数
最大数量的跟踪器可以保持跟踪,指定为一个正整数。
数据类型:单
|双
MaxNumSensors
- - - - - -最大数量的传感器
20.
(默认)|正整数
最大数量的传感器可以连接到追踪,指定为一个正整数。MaxNumSensors
必须大于或等于最大的价值SensorIndex
发现在所有检测用于更新追踪。SensorIndex
是一个属性的吗objectDetection
对象。的MaxNumSensors
属性决定了有多少套ObjectAttributes
每个输出跟踪领域。
数据类型:单
|双
MaxNumDetections
- - - - - -最大数量的检测
正
(默认)|正整数
最大数量的检测跟踪器可以作为输入,指定为一个正整数。
数据类型:单
|双
OOSMHandling
- - - - - -处理一堆测量(OOSM)
“终止”
(默认)|“忽略”
|“Retrodiction”
指定的测量(OOSM),按顺序处理“终止”
,“忽略”
,或“Retrodiction”
。每个检测都有一个关联的时间戳,td,跟踪自己的时间戳,tt,这是在每个调用跟踪更新。作为OOSM如果追踪者认为测量td<tt。
当你指定这个属性
“终止”
——跟踪器停止运行时遇到乱序执行测量。“忽略”
——跟踪器忽略任何按顺序测量和继续运行。“Retrodiction”
-跟踪器使用retrodiction算法更新追踪通过忽视OOSM,更新现有的跟踪,或创建新的使用OOSM跟踪。您必须指定一个过滤器的初始化函数,返回一个trackingKF
,trackingEKF
,或trackingIMM
对象FilterInitializationFcn
财产。
如果指定这个属性“Retrodiction”
,跟踪处理OOSM遵循这些步骤:
如果OOSM时间戳超出最古老的校正时间戳(指定的
MaxNumOOSMSteps
财产)维护的追踪,追踪OOSMs丢弃。如果OOSM时间戳在最古老的校正时间戳维护的追踪,追踪第一retrodicts所有现有的跟踪OOSM时。然后,追踪全球最近邻算法适用于试着将OOSM任何retrodicted的踪迹。
如果跟踪成功的同事OOSM retrodicted跟踪,然后使用OOSM追踪更新retrodicted跟踪通过应用retro-correction算法获得当前,跟踪纠正。
如果追踪者不能把OOSM任何retrodicted跟踪,然后跟踪创建一个新的基于OOSM跟踪和预测跟踪当前时间。
为更多的细节在retrodiction retro-correction算法,明白了Retrodiction和Retro-Correction。模拟按顺序检测,使用objectDetectionDelay
。
请注意
当您选择
“Retrodiction”
,你不能使用costMatrix输入。
可调:是的
MaxNumOOSMSteps
- - - - - -最大数量的按顺序测量步骤
3
(默认)|正整数
按顺序测量的最大数量(OOSM)步骤,指定为一个正整数。
增加这个属性的值需要更多的内存,但使您能够调用跟踪OOSMs有较大滞后相对于过去的时间戳。然而,随着延迟增加,OOSM的影响上的当前状态跟踪减少。此属性的推荐值3
。
依赖关系
要启用这个论点,设置OOSMHandling
财产“Retrodiction”
。
StateParameters
- - - - - -参数跟踪状态的参考系
结构([])
(默认)|结构体数组
参数的跟踪状态参考系,指定为一个结构或一个结构数组。跟踪器通过其StateParameters
属性值对StateParameters
属性生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其起源速度(2 2 0)米每秒的帧的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
可调:是的
数据类型:结构体
HasDetectableTrackIDsInput
- - - - - -IDs允许输入的检测跟踪
假
(默认)|真正的
使IDs检测跟踪输入的更新,每个对象指定为假
或真正的
。将此属性设置为真正的
如果你想提供一个检测跟踪id列表。这个列表告诉追踪所有的传感器将检测和跟踪,还为每个跟踪检测的概率。
数据类型:逻辑
HasCostMatrixInput
- - - - - -使成本矩阵输入
假
(默认)|真正的
使成本矩阵,指定为假
或真正的
。如果真正的
,您可以提供一个作业成本矩阵作为输入参数当调用对象。
数据类型:逻辑
NumTracks
- - - - - -跟踪维护跟踪
非负整数
这个属性是只读的。
跟踪器的跟踪维护,作为一个非负整数返回。
数据类型:双
NumConfirmedTracks
- - - - - -数量的确认跟踪
非负整数
这个属性是只读的。
数量的跟踪确认,作为一个非负整数返回。如果IsConfirmed
领域的一个输出跟踪结构真正的
,跟踪确认。
数据类型:双
EnableMemoryManagement
- - - - - -使内存管理属性
假
或0
(默认)|真正的
或1
使内存管理属性,指定为一个逻辑1
(真正的
)或假
(0
)。
将这个属性设置为真正的
使您能够使用MaxNumDetectionsPerSensor
属性指定的最大数量的检测,每个传感器可以通过追踪在跟踪的一个调用。
此外,如果AssignmentClustering
财产被指定为“上”
,你可以使用三个属性来指定特定的大小可变的数组的边界跟踪以及确定如何跟踪处理集群大小违规行为:
MaxNumDetectionsPerCluster
MaxNumTracksPerCluster
ClusterViolationHandling
指定范围的大小可变的数组允许您管理的内存占用跟踪器在生成的C / c++代码。
数据类型:逻辑
MaxNumDetectionsPerSensor
- - - - - -最大数量的检测传感器
One hundred.
(默认)|正整数
最大数量的检测传感器,指定为一个正整数。这个属性决定了检测的最大数量,每个传感器可以通过追踪每个调用的跟踪器。
将此属性设置为一个有限值如果你想跟踪建立高效的本地变量界限C / c++代码生成。将此属性设置为正
如果你不想绑定每个传感器检测的最大数量。
依赖关系
要启用这个特性,设置EnableMemoryManagement
财产真正的
。
数据类型:单
|双
MaxNumDetectionsPerCluster
- - - - - -检测/集群的最大数量
5
(默认)|正整数
最大数量的检测在运行时跟踪的每个集群,指定为一个正整数。
将这个属性设置为一个有限值允许跟踪器绑定集群大小和减少了内存占用的跟踪器在生成的C / c++代码。将此属性设置为正
如果你不想绑定检测每个集群的最大数量。
在运行时,如果检测在集群的数量超过了指定的MaxNumDetectionsPerCluster
,跟踪反应的基础上ClusterViolationHandling
财产。
依赖关系
要启用这个特性,指定AssignmentClustering
财产“上”
并设置EnableMemoryManagement
财产真正的
。
数据类型:单
|双
MaxNumTracksPerCluster
- - - - - -跟踪每个集群的最大数量
5
(默认)|正整数
最大数量的跟踪每个集群的运行时跟踪,指定为一个正整数。
将这个属性设置为一个有限值允许跟踪器绑定集群大小和减少了内存占用的跟踪器在生成的C / c++代码。将此属性设置为正
如果你不想绑定跟踪每个集群的最大数量。
在运行时,如果集群中的曲目的数量超过了指定的MaxNumTracksPerCluster
,跟踪反应的基础上ClusterViolationHandling
财产。
依赖关系
要启用这个论点,指定AssignmentClustering
财产“上”
并设置EnableMemoryManagement
财产真正的
。
数据类型:单
|双
ClusterViolationHandling
- - - - - -处理运行时违反了集群的边界
分裂和警告
(默认)|“终止”
|“分裂”
处理运行时违反了集群范围,指定这些选项之一:
“Teminate”
——跟踪报告错误,如果在运行时,任何集群违反了集群中指定的界限MaxNumDetectionsPerCluster
和MaxNumTracksPerCluster
属性。分裂和警告
——跟踪器将size-violating集群分为更小的集群使用一个次优的方法。跟踪器也报道警告指示违反。“分裂”
——跟踪器将size-violating集群分为更小的集群通过使用一个次优的方法。追踪不报告一个警告。
在次优方法,追踪分离检测或钉,最小的可能关联到其他追踪或检测到集群范围满足。这些分离出来检测或跟踪可以形成一个或多个新的集群取决于彼此协会可能和AssignmentThreshold
财产。
依赖关系
要启用这个特性,指定AssignmentClustering
财产“上”
并设置EnableMemoryManagement
财产真正的
。
数据类型:字符
|字符串
使用
过程检测和更新,电话追踪的论点,就好像它是一个函数(这里描述)。
语法
描述
返回一个列表的更新追踪确认检测,confirmedTracks
=跟踪器(检测
,时间
)检测
在更新的时候,时间
。确认跟踪纠正和预测更新时间。
还指定了一个成本矩阵,confirmedTracks
=跟踪器(检测
,时间
,costMatrix
)costMatrix
。
要启用这种语法,设置HasCostMatrixInput
财产真正的
。
还指定了一系列预期可检测跟踪,confirmedTracks
=跟踪器(___,detectableTrackIDs
)detectableTrackIDs
。
要启用这种语法,设置HasDetectableTrackIDsInput
财产真正的
。
(
还返回一个试探性的歌曲列表,confirmedTracks
,tentativeTracks
,allTracks
)=跟踪器(___)tentativeTracks
所有歌曲的列表,allTracks
。
(
还返回信息,confirmedTracks
,tentativeTracks
,allTracks
,analysisInformation
)=跟踪器(___)analysisInformation
,它可以用于跟踪分析。
输入参数
检测
- - - - - -检测列表
单元阵列的objectDetection
对象
检测列表,指定的单元阵列objectDetection
对象。的时间
属性值的objectDetection
对象必须是小于或等于当前更新时间,时间
,比前面的时间值用于更新追踪。此外,时间
不同的差异objectDetection
单元阵列中的对象不需要平等。
时间
- - - - - -更新的时间
标量
costMatrix
- - - - - -成本矩阵
实值N——- - - - - -米矩阵
成本矩阵,指定为一个实值N——- - - - - -米矩阵,N是现有的数量,然后呢米是当前检测的数量。成本矩阵行必须位于同一个订单追踪的列表。必须在相同的顺序列检测列表。获得正确的顺序列表的歌曲从第三输出参数,allTracks
,当跟踪更新。
在第一次更新的对象或追踪没有以前的轨道时,指定成本矩阵的大小[0,numDetections]
。注意,必须计算,这样成本更低的成本显示更高的分配一个跟踪检测的可能性。防止某些检测被分配给特定的轨道,进入设置适当的成本矩阵正
。
依赖关系
要启用这个论点,设置HasCostMatrixInput
财产真正的
。
数据类型:双
|单
detectableTrackIDs
- - - - - -可检测追踪id
实值米1的向量|实值米2矩阵
可检测追踪id,指定为一个实值米1的向量或米2矩阵。探测跟踪传感器会检测跟踪。矩阵的第一列包含一个追踪id列表,传感器可检测报告。第二列包含的探测概率跟踪。检测概率是由一个传感器或,如果没有报告,获得的DetectionProbability
财产。
不包括在铁轨的标识detectableTrackIDs
被认为是无法觉察的。跟踪删除逻辑不计数的缺乏检测作为跟踪删除“错过了检测”的目的。
依赖关系
启用这个输入参数,设置detectableTrackIDs
财产真正的
。
数据类型:单
|双
输出参数
confirmedTracks
——确认跟踪
的数组objectTrack
|对象数组的结构
跟踪确认,作为一个数组返回objectTrack
在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack
。
跟踪确认,如果它满足确认阈值中指定ConfirmationThreshold
财产。在这种情况下,IsConfirmed
对象的属性或字段的结构真正的
。
数据类型:结构体
|对象
tentativeTracks
-初步跟踪
的数组objectTrack
|对象数组的结构
试探性的,作为一个数组返回objectTrack
在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack
。
跟踪是试探性的,如果它不满足确认阈值中指定ConfirmationThreshold
财产。在这种情况下,IsConfirmed
对象的属性或字段的结构假
。
数据类型:结构体
|对象
allTracks
——所有的跟踪
的数组objectTrack
|对象数组的结构
所有的歌曲,作为一个数组返回objectTrack
在MATLAB对象,作为一个数组返回代码生成的结构。在代码生成中,字段名称返回的结构相同的属性名objectTrack
。所有曲目包括确认和试探性的痕迹。
数据类型:结构体
|对象
analysisInformation
——附加信息分析跟踪更新
结构
附加信息分析跟踪更新,作为一个结构返回。这种结构的字段有:
场 | 描述 |
OOSMDetectionIndices |
按顺序测量的指标跟踪器的当前步骤 |
TrackIDsAtStepBeginning |
当步骤开始追踪id |
CostMatrix |
成本分配矩阵 |
作业 |
返回的任务分配功能。 |
UnassignedTracks |
IDs的未赋值的跟踪返回的追踪 |
UnassignedDetections |
未赋值的检测的指标 |
InitiatedTrackIDs |
IDs的追踪期间启动步骤 |
DeletedTrackIDs |
IDs的痕迹删除步骤 |
TrackIDsAtStepEnd |
追踪id步骤结束时 |
MaxNumDetectionsPerCluster |
检测的最大数量在所有集群生成步骤。结构有这个字段只有当你设置的AssignmentClustering 和EnableMemoryManagement 属性“上” 。 |
MaxNumTracksPerCluster |
跟踪的最大数量在所有集群生成步骤。结构有这个字段只有当你设置的AssignmentClustering 和EnableMemoryManagement 属性“上” 。 |
OOSMHandling |
分析信息按顺序测量处理,作为一个结构返回。只有这一领域的结构 |
的OOSMHandling
结构包含这些字段:
场 | 描述 |
---|---|
DiscardedDetections |
丢弃的乱序执行检测的指标。OOSM是丢弃如果不是由指定的历史保存的状态MaxNumOOSMSteps 财产。 |
CostMatrix |
成本按顺序分配矩阵的测量 |
作业 |
作业按顺序检测和跟踪维护 |
UnassignedDetections |
未赋值的指数按顺序检测。跟踪器创建新的追踪未赋值的乱序执行检测。 |
数据类型:结构体
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
特定于trackerGNN
getTrackFilterProperties |
获得跟踪滤波器性能 |
setTrackFilterProperties |
设置跟踪滤波器的属性 |
predictTrackToTime |
预测跟踪状态 |
initializeTrack |
初始化新轨道 |
deleteTrack |
删除现有的跟踪 |
exportTo金宝appSimulink |
出口跟踪或跟踪熔化炉仿真软件模型金宝app |
例子
使用trackerGNN跟踪两个对象
构造一个trackerGNN
对象的默认初始化二维常速卡尔曼滤波函数,initcvkf
。
追踪= trackerGNN (“FilterInitializationFcn”@initcvkf,…“ConfirmationThreshold”[4 - 5],…“DeletionThreshold”10);
更新追踪两个检测都有非零ObjectClassID
。这些检测立即创建跟踪确认。
检测= {objectDetection (1 (10; 0)“SensorIndex”,1…“ObjectClassID”5,“ObjectAttributes”{结构(“ID”1)});…objectDetection (1 (0; 10)“SensorIndex”,1…“ObjectClassID”2,“ObjectAttributes”{结构(“ID”2)})};时间= 2;跟踪=追踪(检测、时间);
找到位置和速度。
positionSelector = [1 0 0 0;0 0 1 0);velocitySelector = [0 1 0 0;0 0 0 1);positionSelector位置= getTrackPositions(跟踪)
位置=2×210 0 0
velocitySelector速度= getTrackVelocities(跟踪)
速度=2×20 0 0 0
算法
跟踪逻辑流程
当GNN追踪过程检测、跟踪创建和管理遵循这些步骤。
来自传感器的跟踪器将检测。
为每个传感器:
跟踪器计算距离检测现有的跟踪和形式
costMatrix
。基于成本,跟踪执行全球最近邻分配使用中指定的算法
赋值
财产。分配算法检测和跟踪分为三组:
分配一对一的检测和跟踪对
未赋值的检测
未赋值的跟踪
未赋值的检测初始化新线路。使用未赋值的检测,跟踪初始化一个新的跟踪指定的过滤器
FilterInitializationFcn
财产。新跟踪跟踪逻辑初始化。跟踪检查如果任何未赋值的检测与其他传感器可以分配给新的轨道。如果是这样,追踪更新新的跟踪分配其他传感器的检测。因此,这些不再检测初始化新线路。
对指定的跟踪和检测是用于更新每个跟踪。更新跟踪滤波器使用
正确的
法提供的指定跟踪滤波器。此外,跟踪更新逻辑“打击”。跟踪检查轨道是否满足标准确认。如果是这样,追踪确认跟踪和设置IsCoasted
财产假
。未赋值的跟踪与“小姐”和他们的更新
IsCoasted
标志被设置为真正的
。跟踪检查轨道是否满足标准删除。如果是这样,保持跟踪的跟踪器消除了跟踪列表。所有歌曲都将最新的时间价值(时间输入如果提供,或最新的意思是集群时间戳)。
引用
[1]Blackman, S。,r . Popoli。现代跟踪系统的设计与分析。Artech房子雷达图书馆,波士顿,1999年。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
看到系统在MATLAB代码生成对象(MATLAB编码器)。
所有的检测使用多目标跟踪器必须具有相同属性的大小和类型。
如果你使用
ObjectAttributes
字段在一个objectDetection
对象,您必须指定这个领域作为一个包含一个结构单元。所有检测的结构必须具有相同的字段,这些字段的值必须总是有相同的大小和类型。在模拟的形式结构不能改变。如果
ObjectAttributes
中包含检测、SensorIndex
值不能大于10的检测。第一个更新多目标跟踪器必须包含至少一个检测。
跟踪器支持金宝app严格的单精度与这些限制代码生成:
您必须指定分配算法
“Jonker-Volgenant”
。您必须指定过滤器的初始化函数返回
trackingEKF
,trackingUKF
,trackingCKF
,或trackingIMM
对象配置为单精度。
有关详细信息,请参见生成代码与传感器融合严格的单精度和非动态内存分配和跟踪工具。
跟踪器支持金宝app非动态的内存分配与这些限制代码生成:
您必须指定分配算法
“Jonker-Volgenant”
或“MatchPairs”
。您必须指定过滤器的初始化函数返回
trackingEKF
,trackingUKF
,trackingCKF
,或trackingIMM
对象。你必须指定
MaxNumDetections
房地产作为一个有限的整数。
有关详细信息,请参见生成代码与传感器融合严格的单精度和非动态内存分配和跟踪工具。
使非动态内存分配的代码生成后,考虑使用这些属性来设置界限的局部变量跟踪:
AssignmentClustering
EnableMemoryManagement
MaxNumDetectionsPerSensor
MaxNumDetectionsPerCluster
MaxNumTracksPerCluster
ClusterViolationHandling
版本历史
MATLABコマンド
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してくださ了对いweb这类ブラウザーはMATLABコマンドをサポートしていません。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。