多目标跟踪
创建和管理多个对象的跟踪
库:
自动驾驶的工具箱
描述
的多目标跟踪初始化块,证实了预测、纠正和删除移动对象的轨迹。多目标跟踪器的输入生成的检测报告驾驶雷达数据生成器和视觉检测发电机块。多目标跟踪器接受来自多个传感器和分配他们的检测跟踪使用全局最近邻(GNN)标准。每个检测是分配给一个单独的轨道。如果发现不能分配给任何跟踪,多目标跟踪器创建一个新的轨道。
一个新的追踪从一开始试探性的状态。如果足够的检测是分配给一个试探性的轨道,它的状态改变确认。当跟踪确认,多目标跟踪器认为代表一个物理对象。如果检测不添加到跟踪在一个指定的数量的更新,删除。
多目标跟踪器还估计状态向量和状态向量的协方差矩阵为每个使用卡尔曼滤波跟踪。这些状态向量用于预测跟踪每一帧的位置和确定每个检测被分配给每个追踪的可能性。
例子
港口
输入
检测- - - - - -检测列表
金宝appMATLAB仿真软件总线包含®结构
检测列表,指定为包含一个MATLAB仿真软件总线结构。金宝app看到组信号或消息到虚拟的公交车(金宝app模型)。结构形式:
场 | 描述 | 类型 |
---|---|---|
NumDetections |
数量的检测 | 整数 |
IsValidTime |
假当该值更新请求之间的时间间隔块调用 | 布尔 |
检测 |
对象检测 | 数组对象检测结构。第一个NumDetections 这些检测都是实际的检测。 |
对象检测结构的定义中检测输出端口的描述驾驶雷达数据生成器和视觉检测发电机块。
请注意
包含一个对象检测结构时间
字段。每个对象的时间标记检测的时间必须小于或等于当前块的调用。时间标记也必须大于之前的调用中指定的更新时间。
预测的时间- - - - - -跟踪更新的时间
真正的标量
跟踪更新时间,指定为一个真正的标量。多目标跟踪器更新所有跟踪。更新时间必须与每个调用块增加。单位是秒。
请注意
包含一个对象检测结构时间
字段。每个对象的时间标记检测的时间必须小于或等于当前块的调用。时间标记也必须大于前调用的更新时间。
依赖关系
要启用这个端口,设置预测时间源来输入端口
。
成本矩阵- - - - - -成本矩阵
实值Nt——- - - - - -Nd矩阵
成本矩阵,指定为一个实值Nt——- - - - - -Nd矩阵,Nt是现有的跟踪和数量吗Nd是当前检测的数量。
成本矩阵的行对应于现有的跟踪。列对应的检测。跟踪命令是他们的歌曲出现在列表中所有的歌曲之前调用的输出端口。
在第一个更新多目标跟踪器,或者如果跟踪没有以前的跟踪,成本分配矩阵的大小[0,Nd]。必须计算,这样成本更低的成本显示更高的可能性多目标跟踪器分配一个检测跟踪。为了防止某些检测被分配给特定的追踪,使用正
。
依赖关系
要启用这个端口,选择使成本矩阵输入。
可检测追踪id- - - - - -可检测追踪id
实值米1矢量|实值米2矩阵
可检测追踪id,指定为一个实值米1的向量或米2矩阵。探测跟踪传感器会检测跟踪。矩阵的第一列包含一个追踪id列表,传感器可检测报告。可选的第二列包含的探测概率跟踪。
不包括在铁轨的标识可检测追踪id被认为是无法觉察的。跟踪删除逻辑不计数的缺乏检测作为跟踪删除“错过了检测”的目的。
如果没有启用这个端口,追踪假定所有跟踪检测在每个块的调用。
依赖关系
要启用这个端口,端口设置选项卡上,选择使检测跟踪输入id。
状态参数- - - - - -跟踪状态参数
金宝app包含MATLAB仿真软件总线结构
跟踪状态参数,指定为包含一个MATLAB仿真软件总线结构。金宝app结构形式:
场 | 描述 |
---|---|
NumParameters |
数量的非默认状态参数,指定为一个非负整数 |
参数 |
状态参数的数组结构 |
块使用的价值参数
场的StateParameters
字段生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其速度是起源(2 2 0)
米每秒的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
依赖关系
要启用这个端口,跟踪器配置选项卡中,选择随着时间的推移,更新跟踪状态参数参数。
输出
确认跟踪- - - - - -确认跟踪
金宝app包含MATLAB仿真软件总线结构
跟踪确认,返回包含MATLAB作为仿真软件总线结构。金宝app看到创建Nonvirtual公交车(金宝app模型)。
此表显示了结构字段。
场 | 描述 |
---|---|
NumTracks |
数量的跟踪 |
跟踪 |
轨道结构的阵列的长度设定的最大数量的跟踪参数。只有第一个NumTracks 这些都是实际的跟踪。 |
这个表显示每个轨道结构的字段。
场 | 定义 |
---|---|
TrackID |
独特的跟踪标识用来区分多个轨道。 |
BranchID |
独特的标识符用来区分多个轨道分支跟踪分支。 |
SourceIndex |
独特的资料索引用来区分多个追踪环境中追踪来源。 |
UpdateTime |
时间的跟踪更新。单位是秒。 |
年龄 |
跟踪更新的次数。 |
状态 |
状态向量的值更新时间。 |
StateCovariance |
协方差矩阵不确定性。 |
ObjectClassID |
整数值代表对象分类。的值0 代表了一个未知的分类。非零分类仅适用于跟踪确认。 |
TrackLogic |
确认和删除逻辑类型。这个值总是“历史” 雷达传感器,指出基于历史逻辑。 |
TrackLogicState |
当前状态的跟踪逻辑类型,返回1,K逻辑数组。K是最新的数量跟踪逻辑状态记录。数组中, |
IsConfirmed |
确认状态。这个字段是真正的 如果轨道被证实是一个真正的目标。 |
IsCoasted |
滑行状态。这个字段是真正的 如果没有新的更新跟踪检测。 |
IsSelfReported |
表明如果跟踪报告的追踪。这个字段用于跟踪融合环境。它返回 |
ObjectAttributes |
额外的信息跟踪。 |
关于这些字段的更多细节,请参阅objectTrack
。
跟踪确认如果:
至少米检测被分配到在第一次N更新后跟踪初始化。指定的值米和N,可以使用M和N M-out-of-N确认参数。
检测初始化跟踪了
ObjectClassID
大于零。
试探性的跟踪- - - - - -试探性的跟踪
金宝app包含MATLAB仿真软件总线结构
试探性的痕迹,返回包含MATLAB作为仿真软件总线结构。金宝app看到创建Nonvirtual公交车(金宝app模型)。初步证实了之前一个跟踪。
此表显示了结构字段。
场 | 描述 |
---|---|
NumTracks |
数量的跟踪 |
跟踪 |
轨道结构的阵列的长度设定的最大数量的跟踪参数。只有第一个NumTracks 这些都是实际的跟踪。 |
这个表显示每个轨道结构的字段。
场 | 定义 |
---|---|
TrackID |
独特的跟踪标识用来区分多个轨道。 |
BranchID |
独特的标识符用来区分多个轨道分支跟踪分支。 |
SourceIndex |
独特的资料索引用来区分多个追踪环境中追踪来源。 |
UpdateTime |
时间的跟踪更新。单位是秒。 |
年龄 |
跟踪更新的次数。 |
状态 |
状态向量的值更新时间。 |
StateCovariance |
协方差矩阵不确定性。 |
ObjectClassID |
整数值代表对象分类。的值0 代表了一个未知的分类。非零分类仅适用于跟踪确认。 |
TrackLogic |
确认和删除逻辑类型。这个值总是“历史” 雷达传感器,指出基于历史逻辑。 |
TrackLogicState |
当前状态的跟踪逻辑类型,返回1,K逻辑数组。K是最新的数量跟踪逻辑状态记录。数组中, |
IsConfirmed |
确认状态。这个字段是真正的 如果轨道被证实是一个真正的目标。 |
IsCoasted |
滑行状态。这个字段是真正的 如果没有新的更新跟踪检测。 |
IsSelfReported |
表明如果跟踪报告的追踪。这个字段用于跟踪融合环境。它返回 |
ObjectAttributes |
额外的信息跟踪。 |
关于这些字段的更多细节,请参阅objectTrack
。
依赖关系
要启用这个端口,选择使初步跟踪输出。
所有的歌曲- - - - - -所有的歌曲
金宝app包含MATLAB仿真软件总线结构
确认列表并初步跟踪相结合,作为一个包含MATLAB仿真软件总线结构返回。金宝app看到创建Nonvirtual公交车(金宝app模型)。
此表显示了结构字段。
场 | 描述 |
---|---|
NumTracks |
数量的跟踪 |
跟踪 |
轨道结构的阵列的长度设定的最大数量的跟踪参数。只有第一个NumTracks 这些都是实际的跟踪。 |
这个表显示每个轨道结构的字段。
场 | 定义 |
---|---|
TrackID |
独特的跟踪标识用来区分多个轨道。 |
BranchID |
独特的标识符用来区分多个轨道分支跟踪分支。 |
SourceIndex |
独特的资料索引用来区分多个追踪环境中追踪来源。 |
UpdateTime |
时间的跟踪更新。单位是秒。 |
年龄 |
跟踪更新的次数。 |
状态 |
状态向量的值更新时间。 |
StateCovariance |
协方差矩阵不确定性。 |
ObjectClassID |
整数值代表对象分类。的值0 代表了一个未知的分类。非零分类仅适用于跟踪确认。 |
TrackLogic |
确认和删除逻辑类型。这个值总是“历史” 雷达传感器,指出基于历史逻辑。 |
TrackLogicState |
当前状态的跟踪逻辑类型,返回1,K逻辑数组。K是最新的数量跟踪逻辑状态记录。数组中, |
IsConfirmed |
确认状态。这个字段是真正的 如果轨道被证实是一个真正的目标。 |
IsCoasted |
滑行状态。这个字段是真正的 如果没有新的更新跟踪检测。 |
IsSelfReported |
表明如果跟踪报告的追踪。这个字段用于跟踪融合环境。它返回 |
ObjectAttributes |
额外的信息跟踪。 |
关于这些字段的更多细节,请参阅objectTrack
。
依赖关系
要启用这个端口,选择使所有跟踪输出。
参数
跟踪管理
跟踪标识符- - - - - -唯一的跟踪标识符
0
(默认)|非负整数
独特的跟踪标识符,指定为一个非负整数。这个参数用作SourceIndex
输出,区分来自不同的追踪器的跟踪multiple-tracker系统。您必须指定这个属性是一个正整数使用跟踪跟踪熔化炉的输出作为输入。
例子:1
过滤器的初始化函数名- - - - - -卡尔曼滤波器的初始化函数
initcvkf
(默认)|函数名
卡尔曼滤波器的初始化函数,指定为一个函数的名字。工具箱提供了一些初始化函数。一个初始化函数的一个例子,看到initcvekf
。
阈值分配检测跟踪- - - - - -检测作业阈值
30.0
(默认)|正真正的标量
检测作业阈值,指定为一个积极的真正的标量。分配跟踪检测,检测的归一化距离跟踪赋值必须小于阈值。如果一些检测仍未赋值的跟踪你想分配给他们,然后增加阈值。如果一些检测被分配到正确的轨道,减少阈值。
M和N M-out-of-N确认- - - - - -确认参数跟踪创建
(2、3)
(默认)|双元素向量的正整数
确认参数跟踪创建,指定为一个双元素向量的正整数,(M, N)
。跟踪确认,至少米
检测被分配到在第一次N
更新后跟踪初始化。米
必须小于或等于N
。
当设置
N
,考虑一下你想要追踪更新的次数才证实了轨道。例如,如果一个跟踪更新每0.05秒,你让0.5秒作出确认决定,集N
= 10。当设置
米
,考虑到概率的对象检测传感器。检测的概率取决于因素,如阻塞或杂物。你可以减少米
当未能得到证实或增加米
当太多的虚假检测被分配到的痕迹。
例子:(3、5)
P, R P-out-of-R删除- - - - - -跟踪删除阈值
5 [5]
(默认)|实值向量的正整数1×2
历史记录删除阈值逻辑,指定为一个实值向量的正整数1×2[P R]
。如果没有分配给任何确认跟踪检测P
次在过去R
跟踪更新,然后删除。
最大数量的跟踪- - - - - -最大数量的跟踪
200年
(默认)|正整数
最大数量的跟踪块过程中,可以指定为一个正整数。
最大数量的传感器- - - - - -最大数量的传感器
20(默认)|正整数
最大数量的传感器,块过程中,可以指定为一个正整数。这个值应大于或等于最高SensorIndex
在使用的值检测输入端口。
按顺序测量数据处理- - - - - -按顺序测量数据处理
终止
(默认)|忽视
按顺序处理,测量指定为终止
或忽视
。每个检测都有相关联的一个时间戳,td跟踪器块都有它自己的时间戳,tt在每次调用更新。跟踪器块作为OOSM如果认为测量td<tt。
当参数被指定为:
终止
——块停止运行时遇到任何乱序执行测量。忽视
——块忽略任何乱序执行测量,并继续运行。
跟踪状态参数- - - - - -参数跟踪状态的参考系
结构|结构数组
指定的参数跟踪状态参考系作为一个结构或一个结构数组。块传递这个参数的值StateParameters
字段生成的跟踪。您可以使用这些参数来定义的坐标系跟踪报告或其他可取的属性生成的痕迹。
例如,您可以使用以下结构来定义一个直角坐标系的原点位置(10 10 0)
米,其速度是起源(2 2 0)
米每秒的场景。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
(10 10 0) |
速度 |
(2 2 0) |
你可以通过更新轨道状态参数状态参数通过选择输入端口随着时间的推移,更新跟踪状态参数参数。
数据类型:结构体
随着时间的推移,更新跟踪状态参数- - - - - -随着时间的推移,更新跟踪状态参数
从
(默认)|在
选择要启用该参数的输入端口通过跟踪状态参数状态参数输入端口。
输入和输出
预测时间源- - - - - -源预测时间
输入端口
(默认)|汽车
源预测时间,指定为输入端口
或汽车
。选择输入端口
通过输入一个更新时间预测的时间输入端口。否则,由仿真软件仿真时钟管理决定了更新的时间。金宝app
例子:汽车
使成本矩阵输入- - - - - -允许输入端口成本矩阵
从
(默认)|在
选中此复选框后,可以通过使用成本的输入矩阵成本矩阵输入端口。
使检测跟踪输入id- - - - - -使检测跟踪输入id
从
(默认)|在
选中此复选框来启用的可检测追踪id输入端口。
输出总线名称的来源- - - - - -输出总线名称的来源
汽车
(默认)|财产
源输出总线名称,指定为汽车
或财产
。
如果您选择
汽车
,阻止自动创建了一个总线名称。如果您选择
财产
,指定使用的总线名称指定一个输出总线名称参数。
指定一个输出总线名称- - - - - -输出总线的名称
没有默认的
依赖关系
要启用该参数,设置输出总线名称的来源参数财产
。
使初步跟踪输出- - - - - -使初步跟踪输出端口
从
(默认)|在
选中此复选框后,可以初步的输出跟踪使用试探性的跟踪输出端口。
使所有跟踪输出- - - - - -使所有跟踪输出端口
从
(默认)|在
选中此复选框后,可以使所有的输出跟踪使用所有的歌曲输出端口。
模拟使用- - - - - -类型的模拟运行
解释执行
(默认)|代码生成
解释执行
——使用MATLAB模拟模型解释器。这个选项可以缩短启动时间。在解释执行
模式,你可以调试的源代码。代码生成
——模拟使用C / c++代码生成模型。第一次运行仿真,仿真软件生成C / c++代码块。金宝app后续模拟的C代码重用,只要不改变模型。这个选项需要额外的启动时间。
扩展功能
C / c++代码生成
使用仿真软件生成C和c++代码®编码器™。金宝app
当过滤块中指定的初始化函数返回
trackingEKF
或trackingUKF
(传感器融合和跟踪工具箱)对象,该块支持静态内存分配代码生成。金宝app在代码生成,如果检测中指定的输入
双
精度,那么NumTracks
字段返回跟踪输出的双
变量。如果指定的检测输入单
精度,那么NumTracks
字段返回跟踪输出的uint32
变量。
版本历史
介绍了R2017b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。