多目标跟踪
创建和管理多个对象的轨迹
- 库:
自动驾驶工具箱
描述
的多目标跟踪Block对运动物体的轨迹进行初始化、确认、预测、修正和删除。多目标跟踪器的输入是由生成的检测报告驱动雷达数据发生器而且视觉检测发生器块。多目标跟踪器接受来自多个传感器的检测,并使用全局最近邻(GNN)准则将它们分配给跟踪。每个探测被分配到一个单独的轨道。如果检测不能分配给任何轨道,多目标跟踪器创建一个新的轨道。
一个新的轨道开始于试探性的状态。如果有足够多的探测被分配给一个暂定轨道,它的状态将变为确认.当一个轨迹被确认时,多目标跟踪器认为该轨迹代表一个物理对象。如果在指定数量的更新内未将检测添加到轨道,则删除轨道。
多目标跟踪器还使用卡尔曼滤波器估计每个跟踪的状态向量和状态向量协方差矩阵。这些状态向量被用来预测每个轨迹在每一帧中的位置,并确定每个检测被分配到每个轨迹的可能性。
港口
输入
检测
-检测列表
万博1manbetx®包含MATLAB的总线®结构
检测列表,指定为包含MATLAB结构的Simulink总线。万博1manbetx看到将信号或消息分组到虚拟总线中(万博1manbetx模型).结构形式为:
场 | 描述 | 类型 |
---|---|---|
NumDetections |
检测次数 | 整数 |
IsValidTime |
当更新请求在块调用间隔之间时为False | 布尔 |
检测 |
对象检测 | 对象检测结构阵列。第一个NumDetections 这些探测都是实际探测。 |
对象检测结构的定义见检测的端口描述驱动雷达数据发生器而且视觉检测发生器块。
请注意
对象检测结构包含时间
字段。每个对象检测的时间标记必须小于或等于当前块调用的时间。时间标记还必须大于在前面的块调用中指定的更新时间。
预测的时间
-赛道更新时间
真正的标量
跟踪更新时间,指定为实标量。多目标跟踪器更新到此时间的所有轨道。更新时间必须总是随着块的每次调用而增加。单位是秒。
请注意
对象检测结构包含时间
字段。每个对象检测的时间标记必须小于或等于当前块调用的时间。时间标记还必须大于之前调用块中的更新时间。
依赖关系
若要启用此端口,请设置预测时间来源来输入端口
.
成本矩阵
-成本矩阵
实值Nt——- - - - - -Nd矩阵
成本矩阵,指定为实值Nt——- - - - - -Nd矩阵,Nt现有轨道的数量和Nd是当前检测的数量。
成本矩阵的行对应于现有的轨道。这些列对应的是检测结果。中的曲目列表中出现的曲目将进行排序所有的歌曲块先前调用的输出端口。
在对多对象跟踪器的第一次更新中,或者如果轨道之前没有轨道,则将成本矩阵的大小分配为[0,Nd].必须计算成本,以便成本越低表明多目标跟踪器将检测分配给跟踪的可能性越大。为了防止某些探测被分配到某些轨道,使用正
.
依赖关系
若要启用此端口,请选择启用成本矩阵输入.
可检测轨道id
-可检测的轨道id
实值米-by-1向量|实值米2矩阵
可检测轨道id,指定为实值米-by-1向量或米2矩阵。可探测轨道是传感器期望探测到的轨道。矩阵的第一列包含传感器报告的可检测轨道id列表。可选的第二列包含轨道的检测概率。
标识符未包含的跟踪可检测轨道id被认为是无法检测到的。音轨删除逻辑不会将缺乏检测计算为删除音轨的“遗漏检测”。
如果未启用此端口,跟踪器假定在每次调用块时都可以检测到所有轨道。
依赖关系
若要启用此端口,请在端口设置选项卡上,选择启用可检测轨道id输入.
状态参数
-航迹状态参数
万博1manbetxSimulink总线包含MATLAB结构
跟踪状态参数,指定为包含MATLAB结构的Simulink总线。万博1manbetx结构形式为:
场 | 描述 |
---|---|
NumParameters |
非默认状态参数的个数,指定为非负整数 |
参数 |
状态参数结构数组 |
的值参数
字段用于StateParameters
生成航迹的字段。您可以使用这些参数来定义报告航迹的参考框架或生成航迹的其他所需属性。
例如,您可以使用以下结构来定义一个矩形参考系,其原点位置为[10 10 0]
米,原点速度是[2 -2 0]
米每秒相对于场景帧。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
[10 10 0] |
速度 |
[2 -2 0] |
依赖关系
若要启用此端口,请在跟踪器配置选项卡,选择随时间更新轨道状态参数参数。
输出
确认跟踪
-确认航迹
万博1manbetxSimulink总线包含MATLAB结构
已确认的轨道,作为包含MATLAB结构的Simulink总线返回万博1manbetx。看到创建非虚拟总线(万博1manbetx模型).
该表显示了结构字段。
场 | 描述 |
---|---|
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- N确认参数。
探测启动轨道有一个
ObjectClassID
大于0。
试探性的跟踪
-暂定轨道
万博1manbetxSimulink总线包含MATLAB结构
试探性轨道,作为包含MATLAB结构的Simulink总线返回。万博1manbetx看到创建非虚拟总线(万博1manbetx模型).在被确认之前,轨道是试探性的。
该表显示了结构字段。
场 | 描述 |
---|---|
NumTracks |
轨道数 |
跟踪 |
轨道结构的数组,其长度由最大轨道数参数。只有第一个NumTracks 这些是真正的轨道。 |
该表显示了每个轨道结构的字段。
场 | 定义 |
---|---|
TrackID |
唯一的音轨标识符,用于区分多个音轨。 |
BranchID |
唯一的航迹分支标识符,用于区分多个航迹分支。 |
SourceIndex |
唯一的跟踪源索引,用于在多个跟踪器环境中区分跟踪源。 |
UpdateTime |
更新轨道的时间。单位是秒。 |
年龄 |
轨道被更新的次数。 |
状态 |
状态向量在更新时的值。 |
StateCovariance |
不确定度协方差矩阵。 |
ObjectClassID |
表示对象分类的整数值。的值0 表示未知分类。非零分类仅适用于已确认的航迹。 |
TrackLogic |
确认和删除逻辑类型。这个值总是“历史” 对于雷达传感器,表示基于历史的逻辑。 |
TrackLogicState |
轨道逻辑类型的当前状态,返回为1 × -K逻辑数组。K记录的最新轨道逻辑状态数。在数组中, |
IsConfirmed |
确认状态。这个字段是真正的 如果这条轨道被证实是真正的目标。 |
IsCoasted |
滑行状态。这个字段是真正的 如果轨道更新而没有新的检测。 |
IsSelfReported |
指示跟踪器是否报告了跟踪。该字段用于履带融合环境。它返回为 |
ObjectAttributes |
有关赛道的附加信息。 |
有关这些字段的详细信息,请参见objectTrack
.
依赖关系
若要启用此端口,请选择启用试探性轨道输出.
所有的歌曲
-所有轨道
万博1manbetxSimulink总线包含MATLAB结构
已确认和暂定轨道的组合列表,作为包含MATLAB结构的Simulink总线返回。万博1manbetx看到创建非虚拟总线(万博1manbetx模型).
该表显示了结构字段。
场 | 描述 |
---|---|
NumTracks |
轨道数 |
跟踪 |
轨道结构的数组,其长度由最大轨道数参数。只有第一个NumTracks 这些是真正的轨道。 |
该表显示了每个轨道结构的字段。
场 | 定义 |
---|---|
TrackID |
唯一的音轨标识符,用于区分多个音轨。 |
BranchID |
唯一的航迹分支标识符,用于区分多个航迹分支。 |
SourceIndex |
唯一的跟踪源索引,用于在多个跟踪器环境中区分跟踪源。 |
UpdateTime |
更新轨道的时间。单位是秒。 |
年龄 |
轨道被更新的次数。 |
状态 |
状态向量在更新时的值。 |
StateCovariance |
不确定度协方差矩阵。 |
ObjectClassID |
表示对象分类的整数值。的值0 表示未知分类。非零分类仅适用于已确认的航迹。 |
TrackLogic |
确认和删除逻辑类型。这个值总是“历史” 对于雷达传感器,表示基于历史的逻辑。 |
TrackLogicState |
轨道逻辑类型的当前状态,返回为1 × -K逻辑数组。K记录的最新轨道逻辑状态数。在数组中, |
IsConfirmed |
确认状态。这个字段是真正的 如果这条轨道被证实是真正的目标。 |
IsCoasted |
滑行状态。这个字段是真正的 如果轨道更新而没有新的检测。 |
IsSelfReported |
指示跟踪器是否报告了跟踪。该字段用于履带融合环境。它返回为 |
ObjectAttributes |
有关赛道的附加信息。 |
有关这些字段的详细信息,请参见objectTrack
.
依赖关系
若要启用此端口,请选择启用所有音轨输出.
参数
跟踪管理
跟踪标识符
-唯一跟踪器标识符
0
(默认)|非负整数
唯一跟踪器标识符,指定为非负整数。该参数用于SourceIndex
,并在多跟踪器系统中区分来自不同跟踪器的跟踪。必须将此属性指定为正整数,才能将音轨输出用作音轨熔断器的输入。
例子:1
过滤器初始化函数名称
-卡尔曼滤波器初始化函数
initcvkf
(默认)|函数名
卡尔曼滤波器初始化函数,指定为函数名。工具箱提供了几个初始化函数。有关初始化函数的示例,请参见initcvekf
.
为履带分配检测的阈值
-检测分配阈值
30.0
(默认)|正实标量
检测分配阈值,指定为正实标量。要将检测分配给轨道,检测到轨道的归一化距离必须小于分配阈值。如果一些检测仍然未分配给您希望分配给它们的轨道,则增加阈值。如果一些检测被分配到不正确的轨道,降低阈值。
M和N表示M-out- N确认
—创建轨道的确认参数
(2、3)
(默认值)|两元正整数向量
轨道创建的确认参数,指定为两个元素的正整数向量,(M, N)
.一个轨道被确认时,至少米
探测被分配到轨道在第一次N
轨道初始化后的更新。米
必须小于或等于N
.
当设置
N
,考虑你想要跟踪器更新的次数,然后才确认一个曲目。例如,如果跟踪器每0.05秒更新一次,并且您允许0.5秒做出确认决策,则设置N
= 10。当设置
米
,考虑传感器探测到目标的概率。探测的概率取决于诸如遮挡或杂波等因素。你可以减少米
航迹无法确认或增加米
当太多的错误检测被分配到轨道。
例子:(3、5)
P和R表示P-out- R缺失
—删除轨道阈值
5 [5]
(默认值)|实值1乘2正整数向量
历史逻辑的跟踪删除阈值,指定为1 × 2正整数的实值向量[P R]
.如果已确认的航迹未分配给任何检测P
最后的时代R
跟踪器更新,然后删除轨道。
最大轨道数
—最大轨道数
200
(默认值)|正整数
块可以处理的最大磁道数,指定为正整数。
最大传感器数量
—最大传感器个数
20(默认值)|正整数
块可以处理的最大传感器数量,指定为正整数。这个值应该大于或等于最大值SensorIndex
的值。检测输入端口。
无序测量处理
-无序测量处理
终止
(默认)|忽视
不顺序测量处理,指定为终止
或忽视
.每次检测都有一个相关的时间戳,td,跟踪器块有自己的时间戳,tt,在每次调用时更新。跟踪器块将测量结果视为OOSMtd<tt.
当参数被指定为:
终止
—当块遇到不符合顺序的测量时停止运行。忽视
-块忽略任何不符合顺序的测量并继续运行。
航迹状态参数
—航迹状态参考系参数
|结构数组
将航迹状态参考系的参数指定为结构或结构数组。块将此参数的值传递给StateParameters
生成航迹的字段。您可以使用这些参数来定义报告航迹的参考框架或生成航迹的其他所需属性。
例如,您可以使用以下结构来定义一个矩形参考系,其原点位置为[10 10 0]
米,原点速度是[2 -2 0]
米每秒相对于场景帧。
字段名 | 价值 |
---|---|
框架 |
“矩形” |
位置 |
[10 10 0] |
速度 |
[2 -2 0] |
方法更新跟踪状态参数状态参数的输入端口随时间更新轨道状态参数参数。
数据类型:结构体
随时间更新轨道状态参数
—随时间更新轨道状态参数
从
(默认)|在
选择此参数可使轨道状态参数的输入端口通过状态参数输入端口。
输入和输出
预测时间来源
—预测时间来源
输入端口
(默认)|汽车
预测时间的来源,指定为输入端口
或汽车
.选择输入端口
方法输入更新时间预测的时间输入端口。否则,由Simulink管理的仿真时钟决定更新时间。万博1manbetx
例子:汽车
启用成本矩阵输入
-启用成本矩阵输入端口
从
(默认)|在
选项可启用成本矩阵的输入成本矩阵输入端口。
启用可检测轨道id输入
—启用可检测轨道id输入
从
(默认)|在
选中此复选框可启用可检测轨道id输入端口。
输出总线名称的源
-输出总线名称的来源
汽车
(默认)|财产
输出总线名称的源,指定为汽车
或财产
.
如果您选择
汽车
,该块自动创建一个总线名称。如果您选择
财产
属性指定总线名称指定输出总线名称参数。
指定输出总线名称
—输出总线名称
没有默认的
依赖关系
若要启用此参数,请设置输出总线名称的源参数财产
.
启用试探性轨道输出
—启用试运行轨道的输出端口
从
(默认)|在
选择此复选框以启用输出暂定曲目试探性的跟踪输出端口。
启用所有音轨输出
—开启所有音轨的输出端口
从
(默认)|在
选项可启用输出所有曲目所有的歌曲输出端口。
模拟使用
-要运行的模拟类型
解释执行
(默认)|代码生成
解释执行
-使用MATLAB解释器对模型进行仿真。该选项可缩短启动时间。在解释执行
模式下,可以调试该块的源代码。代码生成
-使用生成的C/ c++代码模拟模型。第一次运行模拟时,Simulink为该块生成C/ c++代码。万博1manbetx只要模型没有改变,C代码就可以在后续的模拟中重用。这个选项需要额外的启动时间。
模型的例子
扩展功能
C/ c++代码生成
使用Simulink®Coder™生成C和c++代码。万博1manbetx
当块中指定的筛选器初始化函数返回
trackingEKF
或trackingUKF
(传感器融合与跟踪工具箱)对象时,该块支持生成静态内存分配代码万博1manbetx。在代码生成中,如果检测输入在
双
精度,然后NumTracks
轨道输出的字段返回为双
变量。中指定的检测输入单
精度,然后NumTracks
轨道输出的字段返回为uint32
变量。
版本历史
在R2017b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。