多传感器多目标跟踪器使用GNN任务
传感器融合和跟踪工具箱/多目标跟踪算法
的全球最近邻多对象追踪块能够处理来自多个传感器检测的目标,很像trackerGNN
系统对象™。跟踪初始化,证实了预测,纠正,并删除跟踪基于全局最近邻(GNN)分配算法。跟踪估计状态向量和状态向量的协方差矩阵为每一个轨道。每个检测最多被分配给一个跟踪。如果发现不能分配给任何跟踪,跟踪器初始化一个新的轨道。
任何新的跟踪开始试探性的状态。如果足够多的分配给一个试探性的跟踪检测,确认其状态变化。如果发现已经有一个已知的分类(ObjectClassID
现场返回的跟踪是零),立即跟踪确认。当跟踪确认,追踪认为代表一个物理对象的跟踪。如果检测不分配给跟踪在一个指定的数量的更新,删除。
检测
——检测列表检测列表,指定为包含一个MATLAB仿真软件总线结构。金宝app结构形式:
场 | 描述 | 类型 |
---|---|---|
NumDetections |
数量的检测 | 整数 |
检测 |
对象检测 | 数组对象检测结构。第一个NumDetections 这些检测都是实际的检测。 |
等领域的检测
是:
场 | 描述 | 类型 |
---|---|---|
时间 |
测量时间 | 单 或双 |
测量 |
对象的测量 | 单 或双 |
MeasurementNoise |
测量噪声协方差矩阵 | 单 或双 |
SensorIndex |
传感器的惟一ID | 单 或双 |
ObjectClassID |
对象分类ID | 单 或双 |
MeasurementParameters |
参数初始化函数所使用的跟踪滤波器 | 金宝app仿真软件总线 |
ObjectAttributes |
额外的信息传递给跟踪 | 金宝app仿真软件总线 |
看到objectDetection
这些字段的详细解释。
请注意
包含一个对象检测结构时间
字段。每个对象的时间标记检测的时间必须小于或等于当前块的调用。时间标记也必须大于之前的调用中指定的更新时间。
预测的时间
-跟踪更新时间跟踪更新时间,指定为一个真正的标量在几秒钟内。跟踪更新所有的追踪。每次调用的更新时间必须增加。单位是秒。更新时间必须至少与最大的一样大时间
在指定的检测输入端口。
如果没有启用这个港口,由仿真软件仿真时钟管理决定了更新的时间。金宝app
要启用这个端口,端口设置选项卡,设置预测时间源来输入端口
。
成本矩阵
——成本矩阵成本矩阵,指定为一个实值Nt——- - - - - -Nd矩阵,Nt是现有的跟踪和数量吗Nd是当前检测的数量。
成本矩阵的行对应于现有的跟踪。列对应的检测。跟踪命令是他们的歌曲出现在列表中所有的歌曲之前调用的输出端口。
在第一个更新跟踪器,或者跟踪没有以前的跟踪,成本分配矩阵的大小[0,Nd]。必须计算,这样成本更低的成本显示更高的可能性,追踪分配一个跟踪检测。为了防止某些检测被分配给特定的追踪,使用正
。
如果没有启用这个端口,过滤器的初始化过滤器的初始化函数计算成本矩阵使用距离的方法。
要启用这个端口,端口设置选项卡上,选择使成本矩阵输入。
可检测TrackIDs
——检测跟踪id可检测追踪id,指定为一个实值米1的向量或米2矩阵。探测跟踪传感器会检测跟踪。矩阵的第一列包含一个追踪id列表,传感器可检测报告。第二列包含的探测概率跟踪。检测概率是由一个传感器或,如果没有报告,获得的检测概率用于跟踪分数参数。
不包括在铁轨的标识可检测TrackIDs被认为是无法觉察的。跟踪删除逻辑不计数的缺乏检测作为跟踪删除“错过了检测”的目的。
如果没有启用这个端口,追踪假定所有跟踪检测在每个块的调用。
要启用这个端口,端口设置选项卡上,选择使检测跟踪输入id。
状态参数
-跟踪状态参数跟踪状态参数,指定为包含一个MATLAB仿真软件总线结构。金宝app结构形式:
场 | 描述 |
---|---|
NumParameters |
数量的非默认状态参数,指定为一个非负整数 |
参数 |
状态参数的数组结构 |
块使用的价值参数
场的StateParameters
字段生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其速度是起源(2 2 0)
米每秒的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
要启用这个端口,跟踪器配置选项卡中,选择随着时间的推移,更新跟踪状态参数参数。
确认跟踪
——确认跟踪跟踪确认,返回包含MATLAB作为仿真软件总线结构。金宝app结构形式:
场 | 描述 |
---|---|
NumTracks |
数量的跟踪 |
跟踪 |
轨道结构的阵列的长度设定的最大数量的跟踪参数。只有第一个NumTracks 这些都是实际的跟踪。 |
轨道结构的字段所示轨道结构。
根据跟踪确认跟踪逻辑,如果:
至少历史——跟踪接收米
检测在过去N
更新。米
和N
中指定确认阈值为历史
逻辑。
分数——跟踪分数至少高达确认阈值中指定确认阈值为分数
逻辑。
试探性的跟踪
-初步跟踪所有的歌曲
——确认和试探性的痕迹信息
——附加信息分析跟踪更新附加信息分析跟踪更新,返回包含MATLAB作为仿真软件总线结构。金宝app
这个表显示的字段信息结构:
场 | 描述 |
OOSMDetectionIndices |
按顺序的指标测量 |
TrackIDsAtStepBeginning |
当步骤开始追踪id |
CostMatrix |
成本分配矩阵 |
作业 |
返回的任务分配功能 |
UnassignedTracks |
IDs的未赋值的跟踪返回的追踪 |
UnassignedDetections |
未赋值的检测跟踪器返回的id |
InitiatedTrackIDs |
IDs的追踪期间启动步骤 |
DeletedTrackIDs |
IDs的痕迹删除步骤 |
TrackIDsAtStepEnd |
追踪id步骤结束时 |
OOSMHandling |
分析信息按顺序测量处理,作为一个结构返回。这个领域时,可用按顺序测量数据处理跟踪指定的参数 |
的OOSMHandling
结构包含这些字段:
场 | 描述 |
---|---|
DiscardedDetection |
丢弃的乱序执行检测的指标。OOSM是丢弃如果不是由指定的历史保存的状态MaxNumOOSMSteps 财产。 |
CostMatrix |
成本按顺序分配矩阵的测量 |
作业 |
作业按顺序检测和跟踪维护 |
UnassignedDetections |
未赋值的指数按顺序检测。跟踪器创建新的追踪未赋值的乱序执行检测。 |
要启用这个端口,端口设置选项卡上,选择使信息输出。
跟踪标识符
——唯一的跟踪标识符0
(默认)|非负整数指定唯一的跟踪标识符是一个非负整数。这个参数的传递SourceIndex
在跟踪输出,区分来自不同的追踪器的跟踪multiple-tracker系统。您必须指定这个属性是一个正整数使用的跟踪输出作为输入进行航迹熔化炉块。
例子:1
过滤器的初始化函数
——过滤器初始化函数initcvekf
(默认)|函数名过滤器的初始化函数,指定为一个有效的过滤初始化函数的名称。跟踪器使用过滤器的初始化函数在创建新的轨道。
传感器融合和跟踪工具箱™供应许多初始化函数,您可以使用:
初始化函数 | 函数定义 |
---|---|
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滤波器。 |
您也可以编写自己的初始化函数。函数必须有这样的语法:
过滤器= filterInitializationFcn(检测)
objectDetection
。这个函数的输出必须过滤对象:trackingKF
,trackingEKF
,trackingUKF
,trackingCKF
,trackingPF
,trackingMSCEKF
,trackingGSF
,trackingIMM
,或trackingABF
。
指导你写这个函数中,您可以检查的细节在MATLAB提供的功能。例如:
类型initcvekf
分配算法的名字
——分配算法的名字“MatchPairs”
(默认)|“Munkres”
|“Jonker-Volgenant”
|“拍卖”
|“自定义”
分配算法,指定为“MatchPairs”
,“Munkres”
,“Jonker-Volgenant”
,“拍卖”
,或“自定义”
。Munkres是唯一分配算法,保证最优的解决方案,但它也是最慢的,特别是大量的检测和跟踪。其他算法并不能保证问题的最优解,但可以快20或更多的跟踪和检测。使用“自定义”
定义自己的作业功能和指定的名称CustomAssignmentFcn
财产。
“定制”赋值函数的名称
——自定义赋值函数名自定义赋值函数名,指定为一个字符串。一个赋值函数必须有这种语法:
[任务,unTrs, unDets] = f(成本、costNonAssignment)
assignmunkres
。
例子:“mycustomfcn”
要启用这个特性,设置分配算法的名字名字“自定义”
。
阈值分配检测跟踪
——阈值分配检测跟踪30 *[1正]
积极标量(默认)| | 1×2向量的积极的价值观阈值检测分配给轨道(或控制阈值),指定为一个积极的标量或1×2向量(C1C2),C1≤C2。如果指定为一个标量,指定的值,瓦尔,将扩大到瓦尔,正
]。
最初,跟踪执行规范化的粗估计所有的跟踪和检测之间的距离。跟踪器只计算准确的归一化距离粗归一化距离小于的组合C2。同时,追踪只能分配一个检测跟踪,如果他们准确的归一化距离小于C1。看到距离
函数用于跟踪过滤器(例如,trackingCKF
和trackingEKF
距离计算的解释。
小贴士:
增加的价值C2如果有组合的跟踪和检测,但不应计算作业。如果降低成本计算需要太多时间。
增加的价值C1如果有检测,但不应该分配给足迹。减少它如果有检测分配给跟踪他们不应该分配给(太远)。
最大数量的跟踪
最大数量的痕迹200年
(默认)|正整数最大数量的块可以保持跟踪,指定为一个正整数。
最大数量的传感器
最大数量的传感器20.
(默认)|正整数最大数量的传感器,块过程中,可以指定为一个正整数。这个值应大于或等于最高SensorIndex
输入的值检测输入端口。
按顺序测量数据处理
——按顺序测量数据处理终止
(默认)|忽视
|Retrodiction
按顺序处理,测量指定为终止
,忽视
,或Retrodiction
。每个检测都有一个关联的时间戳,td跟踪器块都有它自己的时间戳,tt在每次调用更新。跟踪器块作为OOSM如果认为测量td<tt。
当你指定的参数为:
终止
——块停止运行时遇到乱序执行测量。
忽视
——块忽略任何按顺序测量并继续运行。
Retrodiction
——块使用retrodiction算法更新追踪通过忽视OOSM,更新现有的跟踪,或创建新的使用OOSM跟踪。您必须指定一个过滤器的初始化函数,返回一个trackingKF
或trackingEKF
对象过滤器的初始化函数参数。
如果指定这个参数Retrodiction
,跟踪处理OOSM遵循这些步骤:
如果OOSM时间戳超出了跟踪历史(指定的最大数量的OOSM步骤参数)保持跟踪,跟踪器忽略了OOSM。
如果OOSM时间戳在跟踪维护的历史追踪,追踪首先retrodicts现有跟踪OOSM时。然后,追踪全球最近邻算法适用于试着将OOSM任何retrodicted的踪迹。
如果跟踪成功的同事OOSM retrodicted跟踪,然后使用OOSM追踪更新retrodicted跟踪通过应用retro-correction算法获得当前,跟踪纠正。
如果追踪者不能把OOSM retrodicted跟踪,然后跟踪创建一个新的基于OOSM跟踪和预测跟踪当前时间。
为更多的细节在retrodiction retro-correction算法,明白了Retrodiction和Retro-Correction。
最大数量的OOSM步骤
最大数量的OOSM步骤3
(默认)|正整数按顺序测量的最大数量(OOSMs)步骤,指定为一个正整数。
增加该参数的值需要更多的内存,但允许您调用跟踪和OOSMs块更大的延迟相对于当块上次更新的时间戳。同时,随着延迟的增加,OOSM的影响当前状态的跟踪了。该参数的推荐值3
。
要启用该参数,设置按顺序测量数据处理参数Retrodiction
。
跟踪状态参数
——参数跟踪状态的参考系指定的参数跟踪状态参考系作为一个结构或一个结构数组。块传递这个参数的值StateParameters
字段生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其速度是起源(2 2 0)
米每秒的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
你可以通过更新轨道状态参数状态参数通过选择输入端口随着时间的推移,更新跟踪状态参数参数。
数据类型:结构体
随着时间的推移,更新跟踪状态参数
——更新跟踪状态参数与时间从
(默认)|在
选择要启用该参数的输入端口通过跟踪状态参数状态参数输入端口。
模拟使用
-类型的模拟运行解释执行
(默认)|代码生成
解释执行
——使用MATLAB模拟模型解释器。这个选项可以缩短启动时间。在解释执行
模式,你可以调试的源代码。
代码生成
使用生成的C代码,模拟模型。第一次运行仿真,仿真软件生成C代码块。金宝app后续模拟的C代码重用,只要不改变模型。这个选项需要额外的启动时间。
类型的跟踪确认和删除逻辑
——确认和删除逻辑类型历史
(默认)|分数
确认和删除逻辑类型,选为历史
或分数
。
历史
——跟踪确认和删除是基于轨道的次数已经分配给一个检测的最新跟踪更新。
分数
-跟踪确认和删除基于对数似跟踪分数。一个高分意味着更有可能是有效的。低分数意味着更有可能是一个假警报。
确认阈值(mn)
——历史追踪确认阈值逻辑3 [2]
(默认)|实值向量的正整数1×2历史逻辑,跟踪确认阈值指定为一个实值向量的正整数1×2(mn)
。至少跟踪确认是否收到米
检测在过去N
更新。
要启用该参数,设置类型的跟踪确认和删除逻辑来历史
。
删除阈值(P, Q)
——历史记录删除阈值逻辑5 [5]
(默认)|实值向量的正整数1×2历史记录删除阈值逻辑,指定为一个实值向量的正整数1×2[P Q]
。如果没有分配给任何确认跟踪检测P
次在过去问
跟踪更新,然后删除。
要启用该参数,设置类型的跟踪确认和删除逻辑来历史
。
确认阈值(积极的标量)
分数——跟踪确认阈值逻辑20.
(默认)|积极的标量分数跟踪确认阈值逻辑,指定为一个实正的标量。跟踪确认,如果它的分数至少高达确认阈值。
要启用该参数,设置类型的跟踪确认和删除逻辑来分数
。
删除阈值(-标量)
分数——跟踪删除阈值逻辑7
(默认)|标量| -标量跟踪分数逻辑删除阈值,指定为负的标量。记录被删除,如果它的分数至少降低了阈值的最大跟踪分数。
要启用该参数,设置类型的跟踪确认和删除逻辑来分数
。
检测概率用于跟踪分数
——检测概率用于跟踪分数0.9
(默认)|标量(0,1)检测概率用于跟踪分数,指定为一个积极的标量(0,1)。
例子:0.5
要启用该参数,设置类型的跟踪确认和删除逻辑来分数
。
误报率用于跟踪分数
——虚惊概率用于跟踪分数1 e-6
(默认)|标量(0,1)假警报的概率用于跟踪分数,指定为一个标量(0,1)。
例子:1 e-5
要启用该参数,设置类型的跟踪确认和删除逻辑来分数
。
体积传感器检测的垃圾箱
——体积传感器检测本1
(默认)|积极的标量传感器的体积检测本,指定为一个积极的标量。例如,如果一个雷达产生4 - d测量,包括方位、仰角、范围、和范围,定义的4 d体积是雷达角度波束宽度,本宽度范围,数据与本宽度。体积是用于计算跟踪分数时初始化和更新一个跟踪。
例子:1.5
要启用该参数,设置类型的跟踪确认和删除逻辑来分数
。
每单位体积率的新轨道
——新跟踪单位体积率1
(默认)|积极的标量新线路的速度单位体积,指定为一个积极的标量。新线路的速度计算中使用跟踪分数在跟踪初始化。
例子:2.5
要启用该参数,设置类型的跟踪确认和删除逻辑来分数
。
预测时间源
——源的预测时间汽车
(默认)|输入端口
源预测时间,指定为输入端口
或汽车
。选择输入端口
通过输入一个更新时间预测的时间输入端口。否则,由仿真软件仿真时钟管理决定了更新的时间。金宝app
使成本矩阵输入
——允许输入端口成本矩阵选中此复选框后,可以通过使用成本的输入矩阵成本矩阵输入端口。
使检测跟踪输入id
——允许检测追踪id输入选中此复选框来启用的可检测追踪id输入端口。
使初步跟踪输出
——使输出端口试探性的痕迹选中此复选框后,可以初步的输出跟踪通过试探性的跟踪输出端口。
使所有跟踪输出
——允许所有跟踪输出端口选中此复选框后,可以使所有的输出跟踪通过所有的歌曲输出端口。
使信息输出
——允许输出端口进行分析信息选中此复选框后,可以使信息通过输出端口进行分析信息输出端口。
输出总线名称的来源
——输出跟踪总线名称的来源汽车
(默认)|财产
源的输出跟踪总线名称,指定为:
汽车
——块自动创建一个输出跟踪总线名称。
财产
——指定输出跟踪总线名称使用指定一个输出总线名称参数。
输出信息总线名称的来源
——输出信息总线名称的来源汽车
(默认)|财产
源输出的信息总线名称指定为这些选项之一:
汽车
——块自动创建一个输出信息总线名称。
财产
——指定输出信息总线名称使用指定一个输出总线名称参数。
当GNN追踪过程检测、跟踪创建和管理遵循以下步骤:
来自传感器的跟踪器将检测。
为每个传感器:
跟踪器计算距离检测现有的跟踪和形成一个成本矩阵。
基于成本,跟踪执行全球最近邻分配使用指定的算法分配算法的名字参数。
分配算法检测和跟踪分为三组:
分配一对一的检测和跟踪对
未赋值的检测
未赋值的跟踪
未赋值的检测初始化新线路。使用未赋值的检测,跟踪初始化一个新的跟踪指定的过滤器过滤器的初始化函数参数。新跟踪跟踪逻辑初始化。
跟踪检查如果任何未赋值的检测与其他传感器可以分配给新的轨道。如果是这样,追踪更新新的跟踪分配其他传感器的检测。因此,这些不再检测初始化新线路。
对指定的跟踪和检测是用于更新每个跟踪。更新跟踪滤波器使用正确的
法提供的指定跟踪滤波器。此外,跟踪更新逻辑“打击”。跟踪检查轨道是否满足标准确认。如果是这样,追踪确认跟踪和设置IsCoasted
字段假
。
未赋值的跟踪与“小姐”和他们的更新IsCoasted
字段被设置为真正的
。跟踪检查轨道是否满足标准删除。如果是这样,保持跟踪的跟踪器消除了跟踪列表。
所有跟踪最新时间价值(预计提供的时间预测的时间输入端口,或由仿真软件)。金宝app
轨道结构的字段有:
场 | 定义 |
---|---|
TrackID |
独特的跟踪标识用来区分多个轨道。 |
BranchID |
独特的标识符用来区分多个轨道分支跟踪分支。 |
SourceIndex |
独特的资料索引用来区分多个追踪环境中追踪来源。 |
UpdateTime |
时间的跟踪更新。单位是秒。 |
年龄 |
次数的活了下来。 |
状态 |
值状态向量的更新时间。 |
StateCovariance |
协方差矩阵不确定性。 |
ObjectClassID |
整数值代表对象分类。的值0 代表了一个未知的分类。非零分类仅适用于跟踪确认。 |
TrackLogic |
确认和删除逻辑类型,返回“历史” 或“分数” 。 |
TrackLogicState |
的当前状态跟踪逻辑类型。基于类型的逻辑
|
IsConfirmed |
确认状态。这个字段是真正的 如果轨道被证实是一个真正的目标。 |
IsCoasted |
滑行状态。这个字段是真正的 如果没有新的更新跟踪检测。 |
IsSelfReported |
表明如果跟踪报告的追踪。这个字段用于跟踪融合环境。它返回 |
ObjectAttributes |
额外的信息跟踪。 |
使用笔记和限制:
块支持金宝app严格的单精度与这些限制代码生成:
您必须指定分配算法“Jonker-Volgenant”
。
您必须指定过滤器的初始化函数返回trackingEKF
,trackingUKF
,trackingCKF
,或trackingIMM
对象配置为单精度。
有关详细信息,请参见生成代码与传感器融合严格的单精度和非动态内存分配和跟踪工具。
跟踪器支持金宝app非动态的内存分配与这些限制代码生成:
您必须指定分配算法“Jonker-Volgenant”
或“MatchPairs”
。
您必须指定过滤器的初始化函数返回trackingEKF
,trackingUKF
,trackingCKF
,或trackingIMM
对象。
有关详细信息,请参见生成代码与传感器融合严格的单精度和非动态内存分配和跟踪工具。
在代码生成,如果检测中指定的输入双
精度,那么NumTracks
字段返回跟踪输出的双
变量。如果指定的检测输入单
精度,那么NumTracks
字段返回跟踪输出的uint32
变量。
assignauction
|assignjv
|assignkbest
|assignkbestsd
|assignmunkres
|assignsd
|getTrackPositions
|getTrackVelocities
|fusecovint
|fusecovunion
|fusexcov
objectDetection
|trackingKF
|trackingEKF
|trackingUKF
|trackingABF
|trackingCKF
|trackingGSF
|trackingIMM
|trackingMSCEKF
|trackingPF
|trackHistoryLogic
|trackScoreLogic
|objectTrack
|trackerJPDA
|trackerTOMHT
|trackerGNN
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してくださ了对いweb这类ブラウザーはMATLABコマンドをサポートしていません。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。