主要内容

多目标跟踪

创建和管理多个对象的轨迹

  • 库:
  • 自动驾驶工具箱

  • 多对象跟踪器块

描述

多目标跟踪Block对运动物体的轨迹进行初始化、确认、预测、修正和删除。多目标跟踪器的输入是由生成的检测报告驱动雷达数据发生器而且视觉检测发生器块。多目标跟踪器接受来自多个传感器的检测,并使用全局最近邻(GNN)准则将它们分配给跟踪。每个探测被分配到一个单独的轨道。如果检测不能分配给任何轨道,多目标跟踪器创建一个新的轨道。

一个新的轨道开始于试探性的状态。如果有足够多的探测被分配给一个暂定轨道,它的状态将变为确认.当一个轨迹被确认时,多目标跟踪器认为该轨迹代表一个物理对象。如果在指定数量的更新内未将检测添加到轨道,则删除轨道。

多目标跟踪器还使用卡尔曼滤波器估计每个跟踪的状态向量和状态向量协方差矩阵。这些状态向量被用来预测每个轨迹在每一帧中的位置,并确定每个检测被分配到每个轨迹的可能性。

港口

输入

全部展开

检测列表,指定为包含MATLAB结构的Simulink总线。万博1manbetx看到将信号或消息分组到虚拟总线中(万博1manbetx模型).结构形式为:

描述 类型
NumDetections 检测次数 整数
IsValidTime 当更新请求在块调用间隔之间时为False 布尔
检测 对象检测 对象检测结构阵列。第一个NumDetections这些探测都是实际探测。

对象检测结构的定义见检测的端口描述驱动雷达数据发生器而且视觉检测发生器块。

请注意

对象检测结构包含时间字段。每个对象检测的时间标记必须小于或等于当前块调用的时间。时间标记还必须大于在前面的块调用中指定的更新时间。

跟踪更新时间,指定为实标量。多目标跟踪器更新到此时间的所有轨道。更新时间必须总是随着块的每次调用而增加。单位是秒。

请注意

对象检测结构包含时间字段。每个对象检测的时间标记必须小于或等于当前块调用的时间。时间标记还必须大于之前调用块中的更新时间。

依赖关系

若要启用此端口,请设置预测时间来源输入端口

成本矩阵,指定为实值Nt——- - - - - -Nd矩阵,Nt现有轨道的数量和Nd是当前检测的数量。

成本矩阵的行对应于现有的轨道。这些列对应的是检测结果。中的曲目列表中出现的曲目将进行排序所有的歌曲块先前调用的输出端口。

在对多对象跟踪器的第一次更新中,或者如果轨道之前没有轨道,则将成本矩阵的大小分配为[0,Nd].必须计算成本,以便成本越低表明多目标跟踪器将检测分配给跟踪的可能性越大。为了防止某些探测被分配到某些轨道,使用

依赖关系

若要启用此端口,请选择启用成本矩阵输入

可检测轨道id,指定为实值-by-1向量或2矩阵。可探测轨道是传感器期望探测到的轨道。矩阵的第一列包含传感器报告的可检测轨道id列表。可选的第二列包含轨道的检测概率。

标识符未包含的跟踪可检测轨道id被认为是无法检测到的。音轨删除逻辑不会将缺乏检测计算为删除音轨的“遗漏检测”。

如果未启用此端口,跟踪器假定在每次调用块时都可以检测到所有轨道。

依赖关系

若要启用此端口,请在端口设置选项卡上,选择启用可检测轨道id输入

跟踪状态参数,指定为包含MATLAB结构的Simulink总线。万博1manbetx结构形式为:

描述
NumParameters 非默认状态参数的个数,指定为非负整数
参数 状态参数结构数组

的值参数字段用于StateParameters生成航迹的字段。您可以使用这些参数来定义报告航迹的参考框架或生成航迹的其他所需属性。

例如,您可以使用以下结构来定义一个矩形参考系,其原点位置为[10 10 0]米,原点速度是[2 -2 0]米每秒相对于场景帧。

字段名 价值
框架 “矩形”
位置 [10 10 0]
速度 [2 -2 0]

依赖关系

若要启用此端口,请在跟踪器配置选项卡,选择随时间更新轨道状态参数参数。

输出

全部展开

已确认的轨道,作为包含MATLAB结构的Simulink总线返回万博1manbetx。看到创建非虚拟总线(万博1manbetx模型)

该表显示了结构字段。

描述
NumTracks 轨道数
跟踪 轨道结构的数组,其长度由最大轨道数参数。只有第一个NumTracks这些是真正的轨道。

该表显示了每个轨道结构的字段。

定义
TrackID 唯一的音轨标识符,用于区分多个音轨。
BranchID 唯一的航迹分支标识符,用于区分多个航迹分支。
SourceIndex 唯一的跟踪源索引,用于在多个跟踪器环境中区分跟踪源。
UpdateTime 更新轨道的时间。单位是秒。
年龄 轨道被更新的次数。
状态

状态向量在更新时的值。

StateCovariance

不确定度协方差矩阵。

ObjectClassID 表示对象分类的整数值。的值0表示未知分类。非零分类仅适用于已确认的航迹。
TrackLogic 确认和删除逻辑类型。这个值总是“历史”对于雷达传感器,表示基于历史的逻辑。
TrackLogicState

轨道逻辑类型的当前状态,返回为1 × -K逻辑数组。K记录的最新轨道逻辑状态数。在数组中,1表示命中和0表示Miss。

IsConfirmed 确认状态。这个字段是真正的如果这条轨道被证实是真正的目标。
IsCoasted 滑行状态。这个字段是真正的如果轨道更新而没有新的检测。
IsSelfReported

指示跟踪器是否报告了跟踪。该字段用于履带融合环境。它返回为真正的默认情况下。

ObjectAttributes 有关赛道的附加信息。

有关这些字段的详细信息,请参见objectTrack

当满足以下条件时,轨道被确认:

  • 至少探测被分配到轨道在第一次N轨道初始化后的更新。要指定值而且N,使用M和N表示M-out- N确认参数。

  • 探测启动轨道有一个ObjectClassID大于0。

试探性轨道,作为包含MATLAB结构的Simulink总线返回。万博1manbetx看到创建非虚拟总线(万博1manbetx模型).在被确认之前,轨道是试探性的。

该表显示了结构字段。

描述
NumTracks 轨道数
跟踪 轨道结构的数组,其长度由最大轨道数参数。只有第一个NumTracks这些是真正的轨道。

该表显示了每个轨道结构的字段。

定义
TrackID 唯一的音轨标识符,用于区分多个音轨。
BranchID 唯一的航迹分支标识符,用于区分多个航迹分支。
SourceIndex 唯一的跟踪源索引,用于在多个跟踪器环境中区分跟踪源。
UpdateTime 更新轨道的时间。单位是秒。
年龄 轨道被更新的次数。
状态

状态向量在更新时的值。

StateCovariance

不确定度协方差矩阵。

ObjectClassID 表示对象分类的整数值。的值0表示未知分类。非零分类仅适用于已确认的航迹。
TrackLogic 确认和删除逻辑类型。这个值总是“历史”对于雷达传感器,表示基于历史的逻辑。
TrackLogicState

轨道逻辑类型的当前状态,返回为1 × -K逻辑数组。K记录的最新轨道逻辑状态数。在数组中,1表示命中和0表示Miss。

IsConfirmed 确认状态。这个字段是真正的如果这条轨道被证实是真正的目标。
IsCoasted 滑行状态。这个字段是真正的如果轨道更新而没有新的检测。
IsSelfReported

指示跟踪器是否报告了跟踪。该字段用于履带融合环境。它返回为真正的默认情况下。

ObjectAttributes 有关赛道的附加信息。

有关这些字段的详细信息,请参见objectTrack

依赖关系

若要启用此端口,请选择启用试探性轨道输出

已确认和暂定轨道的组合列表,作为包含MATLAB结构的Simulink总线返回。万博1manbetx看到创建非虚拟总线(万博1manbetx模型)

该表显示了结构字段。

描述
NumTracks 轨道数
跟踪 轨道结构的数组,其长度由最大轨道数参数。只有第一个NumTracks这些是真正的轨道。

该表显示了每个轨道结构的字段。

定义
TrackID 唯一的音轨标识符,用于区分多个音轨。
BranchID 唯一的航迹分支标识符,用于区分多个航迹分支。
SourceIndex 唯一的跟踪源索引,用于在多个跟踪器环境中区分跟踪源。
UpdateTime 更新轨道的时间。单位是秒。
年龄 轨道被更新的次数。
状态

状态向量在更新时的值。

StateCovariance

不确定度协方差矩阵。

ObjectClassID 表示对象分类的整数值。的值0表示未知分类。非零分类仅适用于已确认的航迹。
TrackLogic 确认和删除逻辑类型。这个值总是“历史”对于雷达传感器,表示基于历史的逻辑。
TrackLogicState

轨道逻辑类型的当前状态,返回为1 × -K逻辑数组。K记录的最新轨道逻辑状态数。在数组中,1表示命中和0表示Miss。

IsConfirmed 确认状态。这个字段是真正的如果这条轨道被证实是真正的目标。
IsCoasted 滑行状态。这个字段是真正的如果轨道更新而没有新的检测。
IsSelfReported

指示跟踪器是否报告了跟踪。该字段用于履带融合环境。它返回为真正的默认情况下。

ObjectAttributes 有关赛道的附加信息。

有关这些字段的详细信息,请参见objectTrack

依赖关系

若要启用此端口,请选择启用所有音轨输出

参数

全部展开

跟踪管理

唯一跟踪器标识符,指定为非负整数。该参数用于SourceIndex,并在多跟踪器系统中区分来自不同跟踪器的跟踪。必须将此属性指定为正整数,才能将音轨输出用作音轨熔断器的输入。

例子:1

卡尔曼滤波器初始化函数,指定为函数名。工具箱提供了几个初始化函数。有关初始化函数的示例,请参见initcvekf

检测分配阈值,指定为正实标量。要将检测分配给轨道,检测到轨道的归一化距离必须小于分配阈值。如果一些检测仍然未分配给您希望分配给它们的轨道,则增加阈值。如果一些检测被分配到不正确的轨道,降低阈值。

轨道创建的确认参数,指定为两个元素的正整数向量,(M, N).一个轨道被确认时,至少探测被分配到轨道在第一次N轨道初始化后的更新。必须小于或等于N

  • 当设置N,考虑你想要跟踪器更新的次数,然后才确认一个曲目。例如,如果跟踪器每0.05秒更新一次,并且您允许0.5秒做出确认决策,则设置N= 10。

  • 当设置,考虑传感器探测到目标的概率。探测的概率取决于诸如遮挡或杂波等因素。你可以减少航迹无法确认或增加当太多的错误检测被分配到轨道。

例子:(3、5)

历史逻辑的跟踪删除阈值,指定为1 × 2正整数的实值向量[P R].如果已确认的航迹未分配给任何检测P最后的时代R跟踪器更新,然后删除轨道。

块可以处理的最大磁道数,指定为正整数。

块可以处理的最大传感器数量,指定为正整数。这个值应该大于或等于最大值SensorIndex的值。检测输入端口。

不顺序测量处理,指定为终止忽视.每次检测都有一个相关的时间戳,td,跟踪器块有自己的时间戳,tt,在每次调用时更新。跟踪器块将测量结果视为OOSMtd<tt

当参数被指定为:

  • 终止—当块遇到不符合顺序的测量时停止运行。

  • 忽视-块忽略任何不符合顺序的测量并继续运行。

将航迹状态参考系的参数指定为结构或结构数组。块将此参数的值传递给StateParameters生成航迹的字段。您可以使用这些参数来定义报告航迹的参考框架或生成航迹的其他所需属性。

例如,您可以使用以下结构来定义一个矩形参考系,其原点位置为[10 10 0]米,原点速度是[2 -2 0]米每秒相对于场景帧。

字段名 价值
框架 “矩形”
位置 [10 10 0]
速度 [2 -2 0]

方法更新跟踪状态参数状态参数的输入端口随时间更新轨道状态参数参数。

数据类型:结构体

选择此参数可使轨道状态参数的输入端口通过状态参数输入端口。

输入和输出

预测时间的来源,指定为输入端口汽车.选择输入端口方法输入更新时间预测的时间输入端口。否则,由Simulink管理的仿真时钟决定更新时间。万博1manbetx

例子:汽车

选项可启用成本矩阵的输入成本矩阵输入端口。

选中此复选框可启用可检测轨道id输入端口。

输出总线名称的源,指定为汽车财产

  • 如果您选择汽车,该块自动创建一个总线名称。

  • 如果您选择财产属性指定总线名称指定输出总线名称参数。

依赖关系

若要启用此参数,请设置输出总线名称的源参数财产

选择此复选框以启用输出暂定曲目试探性的跟踪输出端口。

选项可启用输出所有曲目所有的歌曲输出端口。

  • 解释执行-使用MATLAB解释器对模型进行仿真。该选项可缩短启动时间。在解释执行模式下,可以调试该块的源代码。

  • 代码生成-使用生成的C/ c++代码模拟模型。第一次运行模拟时,Simulink为该块生成C/ c++代码。万博1manbetx只要模型没有改变,C代码就可以在后续的模拟中重用。这个选项需要额外的启动时间。

扩展功能

版本历史

在R2017b中引入