Track-Oriented Multi-Hypothesis追踪
传感器融合和跟踪工具箱/多目标跟踪算法
的Track-Oriented Multi-Hypothesis追踪块处理来自多个传感器的多目标的检测。确认,追踪块初始化预测,纠正和删除的痕迹。跟踪器的输入块生成的检测报告objectDetection
,fusionRadarSensor
,irSensor
,或sonarSensor
对象。跟踪器块估计状态向量和状态向量的协方差矩阵为每一个轨道。跟踪器分配检测基于track-oriented, multi-hypothesis方法。
任何新的追踪从一开始试探性的状态。如果足够的检测是分配给一个试探性的轨道,它的状态改变确认。如果发现已经有一个已知的分类(ObjectClassID
现场返回的跟踪是零),立即跟踪确认。当跟踪确认,多目标跟踪器认为代表一个物理对象的跟踪。如果检测不分配给跟踪在一个指定的数量的更新,删除。如何追踪功能的概述,请参阅算法。
检测
——检测列表检测列表,指定为包含一个MATLAB仿真软件总线结构。金宝app结构形式:
场 | 描述 | 类型 |
---|---|---|
NumDetections |
数量的检测 | 整数 |
检测 |
对象检测 | 的数组objectDetection 结构。第一个NumDetections 这些检测都是实际的检测。 |
检测结构的字段有:
场 | 描述 | 类型 |
---|---|---|
时间 |
测量时间 | 单 或双 |
测量 |
对象的测量 | 单 或双 |
MeasurementNoise |
测量噪声协方差矩阵 | 单 或双 |
SensorIndex |
传感器的惟一ID | 单 或双 |
ObjectClassID |
对象分类ID | 单 或双 |
MeasurementParameters |
参数初始化函数所使用的跟踪滤波器 | 金宝app仿真软件总线 |
ObjectAttributes |
额外的信息传递给跟踪 | 金宝app仿真软件总线 |
看到objectDetection
这些字段的详细解释。
请注意
包含一个对象检测结构时间
字段。每个对象的时间标记检测必须小于或等于当前调用的时间。时间标记也必须大于之前的调用中指定的更新时间。
预测的时间
-跟踪更新时间跟踪更新时间,指定为一个真正的标量在几秒钟内。跟踪更新所有的追踪。每次调用的更新时间必须增加。更新时间必须至少与最大的一样大时间
中指定的检测输入端口。
如果没有启用端口,由仿真软件仿真时钟管理决定了更新的时间。金宝app
要启用这个端口,在端口设置选项卡,设置预测时间源来输入端口
。
成本矩阵
——成本矩阵成本矩阵,指定为一个实值N——- - - - - -米矩阵,N分支机构的数量和吗米是当前检测的数量。
成本矩阵的行必须位于同一个订单列表的分支。分支是有序的分支机构,因为他们出现在列表中所有分支之前调用的输出端口。列对应的检测。
在第一个更新跟踪器,或者跟踪没有以前的跟踪,成本分配矩阵的大小[0,N]。必须计算,这样成本更低的成本显示更高的可能性,追踪分配一个跟踪检测。为了防止某些检测被分配给特定的追踪,使用在f
。
如果没有启用这个端口,过滤器的初始化过滤器的初始化函数计算成本矩阵使用距离的方法。
要启用这个端口,在端口设置选项卡上,选择使成本矩阵输入。
可检测BranchIDs
——检测部门id检测部门id,指定为一个实值米1的向量或米2矩阵。可检测的传感器会检测分支分支。矩阵的第一列包含一个分支id列表,传感器可检测报告。可选的第二列允许您为每个分支添加检测概率。分支中列出所有分支之前调用的输出。
不包括在铁轨的标识可检测BranchIDs被认为是无法觉察的。跟踪删除逻辑不计数的缺乏检测作为跟踪删除“错过了检测”的目的。
如果没有启用这个端口,追踪假定所有跟踪检测在每个块的调用。
要启用这个端口,在端口设置选项卡上,选择使检测部门id输入。
状态参数
-跟踪状态参数跟踪状态参数,指定为包含一个MATLAB仿真软件总线结构。金宝app结构形式:
场 | 描述 |
---|---|
NumParameters |
数量的非默认状态参数,指定为一个非负整数 |
参数 |
状态参数的数组结构 |
块使用的价值参数
场的StateParameters
字段生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其速度是起源(2 2 0)
米每秒的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
要启用这个端口,跟踪器配置选项卡中,选择随着时间的推移,更新跟踪状态参数参数。
确认跟踪
——确认跟踪跟踪确认,返回包含MATLAB作为仿真软件总线结构。金宝app结构形式:
场 | 描述 |
---|---|
NumTracks |
数量的跟踪 |
跟踪 |
轨道结构的阵列的长度设定的最大数量的跟踪参数。只有第一个NumTracks 这些都是实际的跟踪。 |
轨道结构的字段所示轨道结构。
跟踪确认如果它满足阈值中指定确认阈值以下参数跟踪逻辑选项卡。
试探性的跟踪
-初步跟踪所有的歌曲
——确认和试探性的痕迹信息
——附加信息分析跟踪更新附加信息分析跟踪更新,返回包含MATLAB作为仿真软件总线结构。金宝app
这个表显示的字段信息结构:
场 | 描述 |
OOSMDetectionIndices |
按顺序的指标测量 |
BranchIDsAtStepBeginning |
分支机构IDs当更新开始。 |
CostMatrix |
成本分配矩阵。 |
作业 |
返回的任务 |
UnassignedTracks |
从追踪id返回的未赋值的分支。 |
UnassignedDetections |
未赋值的检测跟踪器返回的id。 |
InitialBranchHistory |
分支历史分支和后修剪。 |
InitialBranchScores |
修剪之前分公司得分。 |
KeptBranchHistory |
最初的修剪后分支历史。 |
KeptBranchScores |
分支初始修剪后得分。 |
集群 |
逻辑阵列分支映射到集群。分支机构属于同一集群如果他们分享检测历史或属于同一轨道直接或通过其他分支。 |
TrackIncompatibility |
分支不相容矩阵。的 |
GlobalHypotheses |
逻辑分支全球假设矩阵映射。兼容分支可以属于相同的假设。 |
GlobalHypScores |
全球假说的总分。 |
PrunedBranches |
逻辑阵列的分支 |
GlobalBranchProbabilities |
全球在全球的每个分支现有概率假设。 |
BranchesDeletedByPruning |
删除分支的追踪。 |
BranchIDsAtStepEnd |
更新结束后分支id。 |
要启用这个端口,在端口设置选项卡上,选择使信息输出。
所有分支
——所有分支机构跟踪标识符
——唯一的跟踪标识符0
(默认)|非负整数独特的跟踪标识符,指定为一个非负整数。这个参数的传递SourceIndex
在跟踪输出,区分来自不同的追踪器的跟踪multiple-tracker系统。您必须指定这个属性是一个正整数使用的跟踪输出作为输入trackFuser
对象。
例子: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支持功能。金宝app例如:
类型initcvekf
阈值分配检测跟踪
——阈值分配检测跟踪30 *(0.3 0.7 1正)
积极标量(默认)| | 1×3矢量正值| 1-by-4向量的积极的价值观阈值分配检测跟踪,指定为一个积极的标量,1×3向量引入积极的价值观,C1,C2,C3),或者a1-by-4向量引入积极的价值观,C1,C2,C3,C4]。如果指定为一个标量,指定的值,瓦尔将扩展到(0.3,0.7,1在f
)*瓦尔。如果指定为(C1,C2,C3),它将扩大C1,C2,C3,在f
]。
阈值控制(1)赋值的检测跟踪,(2)创建一个新的分支从检测,和(3)创建一个新的分支未赋值的跟踪。阈值必须满足:C1< =C2< =C3< =C4。
C1定义了一个距离,如果跟踪具有比分配较低的检测距离C1,跟踪不再被认为是未赋值的,不创建一个未赋值的跟踪分支。
C2定义了一个距离,这样如果一个检测被分配给一个较低的轨道距离比C2,不再被认为是未赋值的检测,不创建一个新的分支。
C3定义了分配的最大距离检测跟踪。
C4定义了组合的跟踪和检测准确执行标准化的成本核算。最初,跟踪执行规范化的粗估计所有的跟踪和检测之间的距离。跟踪器只计算准确的归一化距离粗归一化距离小于的组合C4。
小贴士:
增加的价值C3如果有检测,但不应该分配给足迹。减少价值是否有检测分配给跟踪他们不应该分配给(太远)。
增加的值C1和C2有助于控制跟踪创建分支的数量。然而,这样做减少了数量的分支(假设)每个记录都有。
增加的价值C4如果有组合的跟踪和检测,但不应计算作业。如果降低成本计算花费的时间太长了。
数据类型:单
|双
最大数量的跟踪
最大数量的痕迹One hundred.
(默认)|正整数最大数量的块可以保持跟踪,指定为一个正整数。
最大数量的传感器
最大数量的传感器20.
(默认)|正整数最大数量的传感器可以连接到追踪,指定为一个正整数。MaxNumSensors
必须大于或等于最大的价值SensorIndex
发现在所有检测用于更新追踪。SensorIndex
是一个属性的吗objectDetection
对象。块的MaxNumSensors
属性决定了有多少套ObjectAttributes
每个输出跟踪领域。
按顺序测量数据处理
——按顺序测量数据处理终止
(默认)|忽视
按顺序处理,测量指定为终止
或忽视
。每个检测都有相关联的一个时间戳,td跟踪器块都有它自己的时间戳,tt在每次调用更新。跟踪器块作为OOSM如果认为测量td<tt。
当参数被指定为:
终止
——块停止运行时遇到任何乱序执行测量。
忽视
——块忽略任何乱序执行测量,并继续运行。
跟踪状态参数
——参数跟踪状态的参考系指定的参数跟踪状态参考系作为一个结构或一个结构数组。块传递这个参数的值StateParameters
字段生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其速度是起源(2 2 0)
米每秒的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
你可以通过更新轨道状态参数状态参数通过选择输入端口随着时间的推移,更新跟踪状态参数参数。
数据类型:结构体
随着时间的推移,更新跟踪状态参数
——更新跟踪状态参数与时间从
(默认)|在
选择要启用该参数的输入端口通过跟踪状态参数状态参数输入端口。
跟踪输出方法
-跟踪输出方法“跟踪”
(默认)|“假设”
|“集群”
跟踪输出方法,指定为“跟踪”
,“假设”
,或“集群”
。
“跟踪”
——输出每个跟踪基于其的质心跟踪分支。
“假设”
——输出分支,是在特定的假设。如果您选择这个选项,假设列表输出使用HypothesesToOutput
财产。
“集群”
——输出每个集群的重心。类似于“跟踪”
输出,但包括所有跟踪在一个集群中。
数据类型:字符
模拟使用
-类型的模拟运行解释执行
(默认)|代码生成
解释执行
——使用MATLAB模拟模型解释器。这个选项可以缩短启动时间。在解释执行
模式,你可以调试的源代码。
代码生成
使用生成的C代码,模拟模型。第一次运行仿真,仿真软件生成C代码块。金宝app后续模拟的C代码重用,只要不改变模型。这个选项需要额外的启动时间。
最大数量的假设
——维护最大数量的假设5
(默认)|正整数最大数量的跟踪维护的假设在模棱两可的情况下,指定为一个正整数。增加计算负载较大的值。
例子:10
数据类型:单
|双
最大数量的跟踪分支/跟踪
最大数量的跟踪分支/跟踪3
(默认)|正整数最大数量的跟踪分支(假设)允许为每个轨道,指定为一个正整数。增加计算负载较大的值。
数据类型:单
|双
扫描中维护分支历史的最大数量
——扫描维护分支历史的最大数量4
(默认)|正整数最大数量的扫描中维护分支历史,指定为一个正整数。追踪历史扫描的数量通常从2到6。增加计算负载较大的值。
数据类型:单
|双
最低概率需要保持一个分支
——最低概率需要保持一个分支措施
(默认)|积极的标量最低概率需要保持跟踪分支,指定为一个积极的标量小于1。任何跟踪概率低于指定的概率是修剪。典型值是0.001到0.005。
例子:.003
数据类型:单
|双
N-scan修剪方法
——N-scan修剪方法“没有”
(默认)|“假设”
N-scan修剪方法,指定为“没有”
或“假设”
。在N-scan修剪,修剪枝条,属于同一跟踪(删除),如果在N-scans历史,他们反驳最有可能的分支相同的轨道。最有可能的分支被定义为两种方式:
“没有”
——不执行N-scan修剪。
“假设”
——所选择的分支是最可能的假设。
例子:“假设”
确认阈值(积极的标量)
——最低分数要求确认跟踪20.
(默认)|积极的标量最低分数要求确认,指定为一个积极的标量。任何跟踪得分高于该阈值的证实。
例子:12
数据类型:单
|双
删除阈值(-标量)
——最高得分下降记录删除7
(默认)|标量最高得分下降轨道之前删除,指定为一个标量。任何跟踪得分下降超过这个参数最大分数被删除。删除阈值影响的概率一场虚惊。
例子:1
数据类型:单
|双
检测概率用于跟踪分数
——检测概率用于跟踪分数0.9
(默认)|积极标量在0和1之间检测概率,指定为一个积极的标量在0和1之间。此属性用于计算分数。
例子:0.5
数据类型:单
|双
误报率用于跟踪分数
——虚惊概率用于跟踪分数1 e-6
(默认)|标量假警报的概率,指定为一个标量。此属性用于计算分数。
例子:1 e-5
数据类型:单
|双
体积传感器检测的垃圾箱
卷的传感器测量1
(默认)|积极的标量传感器测量的体积,指定为一个积极的标量。例如,如果一个雷达产生4 - d测量,包括方位、仰角、范围、和范围,定义的4 d体积是雷达角度波束宽度,本宽度范围,数据与本宽度。体积是用于计算跟踪分数时初始化和更新一个跟踪。
例子:1.5
数据类型:单
|双
每单位体积率的新轨道
——新跟踪单位体积率1
(默认)|积极的标量新线路的速度单位体积,指定为一个积极的标量。计算中使用的参数是在跟踪初始化跟踪分数。
例子:2.5
数据类型:单
|双
预测时间源
——源的预测时间汽车
(默认)|输入端口
源预测时间,指定为输入端口
或汽车
。选择输入端口
通过输入一个更新时间预测的时间输入端口。否则,由仿真软件仿真时钟管理决定了更新的时间。金宝app
使成本矩阵输入
——允许输入端口成本矩阵选择要启用该参数的输入矩阵通过使用成本成本矩阵输入端口。
使检测部门id输入
——允许检测部门id输入选择启用该参数检测部门id输入端口。
使初步跟踪输出
——使输出端口试探性的痕迹选择要启用该参数的输出通过试探性的足迹试探性的跟踪输出端口。
使所有跟踪输出
——允许所有跟踪输出端口选择要启用该参数的输出跟踪通过所有的歌曲输出端口。
使信息输出
——允许输出端口进行分析信息选择要启用该参数的输出端口通过分析信息信息输出端口。
使所有分支输出
——允许所有分支的输出端口选择要启用该参数的输出所有的分支机构通过所有分支输出端口。
输出总线名称的来源
——输出跟踪总线名称的来源汽车
(默认)|财产
源的输出跟踪总线名称,指定为:
汽车
——块自动创建一个输出跟踪总线名称。
财产
——指定输出跟踪总线名称使用指定一个输出总线名称参数。
输出信息总线名称的来源
——输出信息总线名称的来源汽车
(默认)|财产
源输出的信息总线名称指定为:
汽车
——块自动创建一个输出信息总线名称。
财产
——指定输出信息总线名称使用指定输出信息总线名称参数。
启用此参数,端口设置选项卡上,选择使信息输出。
当你使用追踪过程检测,跟踪创建和管理遵循以下步骤。
跟踪器试图将检测分配给现有的跟踪。
轨道允许多个假设关于检测任务的跟踪。
未赋值的检测结果创建新的曲目。
任务分配的检测跟踪创建分支的痕迹。
跟踪没有指定检测是摸样(预测)。
跟踪分支都得分。初始分值较低的树枝修剪。
集群的分支共享检测(不兼容的分支机构)在他们的历史生成。
全球兼容分支机构制定的假设和得分。
分支机构得分是基于他们的存在在全球假设。得分低的树枝修剪。
基于N-scan历史执行额外的修剪。
所有跟踪纠正和预测输入时间。
三个赋值阈值,C1,C2,C3、控制(1)赋值的检测跟踪,(2)创建一个新的分支从检测,和(3)创建一个新的分支未赋值的跟踪。阈值必须满足:C1< =C2< =C3。
如果作业的成本C = costmatrix (i, j)
,创建了基于以下假设比较成本分配的值阈值。下面每一比较,列出可能的假设。
小贴士:
增加的价值C3如果有检测,但不应该分配给足迹。减少价值是否有检测分配给跟踪他们不应该分配给(太远)。
增加的值C1和C2有助于控制跟踪创建分支的数量。然而,这样做减少了数量的分支(假设)每个记录都有。
允许每个跟踪未赋值的集合C1= 0。
允许每个检测未赋值的集合C2= 0。
所有数字输入单引号或双精度,但他们都必须具有相同的精度。
轨道结构的字段有:
场 | 定义 |
---|---|
SourceIndex |
独特的资料索引用来区分多个追踪环境中追踪来源。 |
TrackID |
独特的跟踪标识用来区分多个轨道。 |
BranchID |
独特的标识符用来区分多个轨道分支跟踪分支。 |
UpdateTime |
时间的跟踪更新。单位是秒。 |
年龄 |
次数的活了下来。 |
状态 |
状态向量的值更新时间。 |
StateCovariance |
协方差矩阵不确定性。 |
TrackLogic |
确认和删除逻辑类型,返回“历史” 或“集成” 。 |
TrackLogicState |
的当前状态跟踪逻辑类型。基于类型的逻辑
|
IsConfirmed |
确认状态。这个字段是真正的 如果轨道被证实是一个真正的目标。 |
IsCoasted |
滑行状态。这个字段是真正的 如果没有新的更新跟踪检测。 |
IsSelfReported |
表明如果跟踪报告的追踪。这个字段用于跟踪融合环境。它返回 |
ObjectClassID |
整数值代表对象分类。的值0 代表了一个未知的分类。非零分类仅适用于跟踪确认。 |
ObjectAttributes |
附加信息的跟踪。 |
[1]Werthmann, j . R。“一步一步地描述计算有效版本的多假设跟踪。”In国际社会对光学和光子学卷,1698年,第301 - 228页,1992年。
[2]Blackman, S。,r . Popoli。现代跟踪系统的设计与分析。Artech房子雷达图书馆,波士顿,1999年。
在代码生成,如果检测中指定的输入双
精度,那么NumTracks
字段返回跟踪输出的双
变量。如果指定的检测输入单
精度,那么NumTracks
字段返回跟踪输出的uint32
变量。
objectDetection
|trackingKF
|trackingEKF
|trackingUKF
|trackingCKF
|trackingPF
|trackingMSCEKF
|trackingGSF
|trackingIMM
|trackingABF
|objectTrack
|fusionRadarSensor
|sonarSensor
|irSensor
|trackerGNN
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。