主要内容

多目标跟踪

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

  • 图书馆:
  • 自动驾驶工具箱

  • 多目标跟踪器块

描述

这个多目标跟踪块初始化、确认、预测、纠正和删除移动对象的轨迹。输入到多目标跟踪器的是由驱动雷达数据发生器视觉检测发电机块。多目标跟踪器接受来自多个传感器的检测,并使用全局最近邻(GNN)准则将其分配到跟踪对象。每个检测被分配到一个单独的轨道。如果检测不能被分配到任何轨道,多目标跟踪器创建一个新的轨道。

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

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

港口

输入

全部展开

检测列表,指定为包含MATLAB结构的Simulink总线。看金宝app见将信号线组合成虚拟总线(金宝appSimulink).该结构有以下形式:

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

目标检测结构的定义见探测的输出端口说明驱动雷达数据发生器视觉检测发电机块。

笔记

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

轨迹更新时间,指定为实标量。多对象跟踪器将所有轨迹更新到此时间。更新时间必须始终随块的每次调用而增加。单位为秒。

笔记

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

依赖关系

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

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

代价矩阵的行对应于现有轨道。列对应于检测。的轨道列表中显示的轨道被排序所有轨道块的前一次调用的输出端口。

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

依赖关系

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

可检测的轨迹ID,指定为实值M1的向量或M2矩阵。可探测的轨迹是传感器希望探测到的轨迹。矩阵的第一列包含传感器报告为可检测的轨道id列表。可选的第二列包含轨道的检测概率。

其标识符未包含在中的磁道可检测追踪id被认为是无法觉察的。轨迹删除逻辑并不将缺少检测计算为用于轨迹删除目的的“遗漏检测”。

如果该端口未启用,跟踪器将假定在每次调用块时都能检测到所有跟踪。

依赖关系

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

轨迹状态参数,指定为Simulink总线包含MATLAB结构。金宝app该结构有以下形式:

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

块使用参数场地StateParameters生成轨迹的字段。您可以使用这些参数定义报告轨迹的参考帧或生成轨迹的其他所需属性。

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

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

依赖关系

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

输出

全部展开

确认轨道,返回为包含MATLAB结构的Simulink总线。金宝app看到创建非虚拟总线(金宝appSimulink)

此表显示了结构字段。

领域 描述
NumTracks 轨道数
跟踪 所设置的长度的轨道结构阵列最大航迹数参数。只有第一个NumTracks这些都是真实的轨迹。

此表显示了每个轨迹结构的字段。

领域 定义
曲目识别 用于区分多个轨道的唯一轨道标识符。
布兰奇德 用于区分多个轨道分支的唯一轨道分支标识符。
源索引 用于在多跟踪器环境中区分跟踪源的唯一源索引。
UpdateTime 轨道更新的时间。单位是秒。
年龄 轨道被更新的次数。
状态

更新时状态向量的值。

StateCovariance

协方差矩阵不确定性。

ObjectClassID 表示对象分类的整数值。的值0表示未知的分类。非零分类仅适用于已确认的轨道。
TrackLogic 确认和删除逻辑类型。此值始终为“历史”对于雷达传感器,指示基于历史的逻辑。
TrackLogicState

轨道逻辑类型的当前状态,返回为1-by-K逻辑阵列。K是记录的最新轨道逻辑状态的个数。数组中,1.表示一次击中并击中目标0表示未命中。

证实 确认状态。这个字段是真正的如果轨迹被确认为真实目标。
IsCoasted 滑行状态。这个领域是真正的如果在没有新检测的情况下更新轨迹。
自我报告

指示跟踪器是否报告该轨迹。该领域用于轨道融合环境。它被返回为真正的默认情况下。

ObjectAttributes 关于轨道的附加信息。

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

如果:

  • 至少M检测分配到轨道在第一次N跟踪初始化后更新。指定值的步骤MN,使用M和N用于N取M确认参数。

  • 启动轨道的探测有ObjectClassID大于零。

暂定轨迹,作为包含MATLAB结构的Simulink总线返回。请金宝app参阅创建非虚拟总线(金宝appSimulink).一条跑道在确定之前是试探性的。

此表显示了结构字段。

领域 描述
NumTracks 轨道数
跟踪 所设置的长度的轨道结构阵列最大航迹数参数。只有第一个NumTracks这些都是真实的轨迹。

此表显示了每个轨迹结构的字段。

领域 定义
曲目识别 用于区分多个轨道的唯一轨道标识符。
布兰奇德 用于区分多个轨道分支的唯一轨道分支标识符。
源索引 用于在多跟踪器环境中区分跟踪源的唯一源索引。
UpdateTime 轨道更新的时间。单位是秒。
年龄 轨道被更新的次数。
状态

更新时状态向量的值。

StateCovariance

协方差矩阵不确定性。

ObjectClassID 表示对象分类的整数值。的值0表示未知的分类。非零分类仅适用于已确认的轨道。
TrackLogic 确认和删除逻辑类型。此值始终为“历史”对于雷达传感器,指示基于历史的逻辑。
TrackLogicState

轨道逻辑类型的当前状态,返回为1-by-K逻辑阵列。K是记录的最新轨道逻辑状态的个数。数组中,1.表示一次击中并击中目标0表示未命中。

证实 确认状态。这个字段是真正的如果轨迹被确认为真实目标。
IsCoasted 滑行状态。这个领域是真正的如果在没有新检测的情况下更新轨迹。
自我报告

指示跟踪器是否报告该轨迹。该领域用于轨道融合环境。它被返回为真正的默认情况下。

ObjectAttributes 关于轨道的附加信息。

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

依赖关系

要启用该端口,请选择启用试运行轨道输出

确定和试探性轨道的组合列表,返回为包含MATLAB结构的Simulink总线。金宝app看到创建非虚拟总线(金宝appSimulink)

此表显示了结构字段。

领域 描述
NumTracks 轨道数
跟踪 所设置的长度的轨道结构阵列最大航迹数参数。只有第一个NumTracks这些都是真实的轨迹。

此表显示了每个轨迹结构的字段。

领域 定义
曲目识别 用于区分多个轨道的唯一轨道标识符。
布兰奇德 用于区分多个轨道分支的唯一轨道分支标识符。
源索引 用于在多跟踪器环境中区分跟踪源的唯一源索引。
UpdateTime 轨道更新的时间。单位是秒。
年龄 轨道被更新的次数。
状态

更新时状态向量的值。

StateCovariance

协方差矩阵不确定性。

ObjectClassID 表示对象分类的整数值。的值0表示未知的分类。非零分类仅适用于已确认的轨道。
TrackLogic 确认和删除逻辑类型。此值始终为“历史”对于雷达传感器,指示基于历史的逻辑。
TrackLogicState

轨道逻辑类型的当前状态,返回为1-by-K逻辑阵列。K是记录的最新轨道逻辑状态的个数。数组中,1.表示一次击中并击中目标0表示未命中。

证实 确认状态。这个字段是真正的如果轨迹被确认为真实目标。
IsCoasted 滑行状态。这个领域是真正的如果在没有新检测的情况下更新轨迹。
自我报告

指示跟踪器是否报告该轨迹。该领域用于轨道融合环境。它被返回为真正的默认情况下。

ObjectAttributes 关于轨道的附加信息。

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

依赖关系

要启用该端口,请选择启用所有轨道输出

参数

全部展开

跟踪管理

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

例子:1.

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

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

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

  • 设置时N,考虑你希望跟踪器在确认轨迹之前更新的次数。例如,如果跟踪器每0.05秒更新一次,而您允许0.5秒做出确认决定,则设置N= 10.

  • 设置时M,考虑了传感器检测目标的概率。检测的概率取决于遮挡或杂波等因素。你可以减少M当轨迹无法确认或增加时M当给跟踪分配了太多的错误检测时。

例子:[3,5]

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

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

块可以处理的最大传感器数,指定为正整数。此值应大于或等于最大值传感器指数的值。探测输入端口。

无序测量处理,指定为终止疏于照顾.每个检测都有一个相关的时间戳,TD,并且跟踪器块有自己的时间戳,TT,在每次调用中更新。跟踪器块将测量视为OOSM,如果TD<TT

当参数指定为:

  • 终止—当遇到任何顺序错误的测量时,块停止运行。

  • 忽视-该块忽略任何无序测量,并继续运行。

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

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

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

属性可以更新轨道状态参数状态参数通过选择随时间更新轨道状态参数参数。

数据类型:结构

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

输入和输出

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

例子:汽车

选择此复选框以启用成本矩阵的输入成本矩阵输入端口。

选中此复选框以启用可检测追踪id输入端口。

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

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

  • 如果您选择财产,使用指定输出总线名称参数。

依赖关系

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

选择此复选框可通过使用试探性轨道输出端口。

选中此复选框可通过使用启用所有轨迹的输出所有轨道输出端口。

  • 解释执行-使用MATLAB解释器模拟模型。这个选项缩短了启动时间。在解释执行模式下,可以调试块的源代码。

  • 代码生成-使用生成的C/ c++代码模拟模型。当你第一次运行一个模拟时,Simulink会为代码块生成C/ c++代码。金宝app只要模型不改变,C代码就会在后续模拟中重用。这个选项需要额外的启动时间。

扩展功能

在R2017b中引入