目录
此示例演示如何使用 thes 跟踪大量目标。类似的技术也可以应用于theandas。
一、介绍
在许多应用中,需要跟踪器来跟踪数百或数千个对象。增加跟踪器维护的轨道数量是一项挑战,这是由于每个跟踪器核心算法的计算复杂性造成的。特别是,跟踪器更新步骤中的两个常见阶段不容易扩展:计算分配成本和执行分配。分配成本计算在 和 中很常见,并且此示例中显示的技术可以在使用这些跟踪器中的任何一个时应用。每个跟踪器执行分配的方式对于每个跟踪器都是唯一的,并且可能需要量身定制的解决方案来提高跟踪器性能,这超出了此示例的范围。
- 场景
出于此示例的目的,您将定义一个包含 900 个平台的方案,这些平台组织在一个 15 x 15 的网格中,每个网格单元包含 4 个平台。网格单元的目的是演示粗略成本计算的好处,如示例后面所述。 下面的代码排列网格单元格中的 900 个对象并创建可视化效果。在左侧,显示了整个方案。在右侧,可视化效果放大了 4 个网格单元格。请注意,每个单元包含 4 个平台。
二、使用默认分配成本计算
本部分显示使用 awith 默认值跟踪上面定义的平台的结果。该属性包含两个值,其中用于赋值的阈值和下一节中解释的粗略计算的阈值。
当跟踪器使用一组新的检测进行更新时,它会计算将每个检测分配给每个轨迹的成本。准确的成本计算必须考虑每次检测的测量和不确定度,以及每个轨道的预期测量和预期不确定度,如下所述。
默认情况下,设置为 Inf,这要求计算跟踪和检测的所有组合的成本。这会导致更准确的分配,但计算量更大。应从默认设置开始,以确保跟踪器以最佳方式将检测分配给跟踪,然后考虑降低 的值以减少计算分配成本所需的时间。
在工作分配成本计算期间,成本矩阵中值高于 Of 的元素将替换为 Inf。这样做有助于分配算法忽略不可能的分配。
定义一个可以跟踪多达 1000 个轨道的跟踪器。跟踪器使用默认的恒速扩展卡尔曼滤波器,,下面使用它来获取位置分量。在第一次调用步骤时,跟踪器实例化所有轨道。要将实例化轨道所需的时间与第一步所需的处理时间隔离开来,可以在步进跟踪器之前调用。
三、使用粗略工作分配成本计算
在上一节中,看到跟踪器能够跟踪所有平台,但每个更新步骤都需要很长时间。大部分时间都花在计算分配成本矩阵上。检查成本矩阵,您可以看到其绝大多数元素实际上是Inf。
上述结果表明,成本计算在计算所有跟踪和检测组合的分配成本上花费了太多时间。然而,这些组合中的大多数都太远而无法分配,因为实际测量值与基于传感器特性的轨道预期测量值相差太远。为了避免在计算所有成本时浪费,可以使用粗略成本计算。
进行粗略计算以验证哪些跟踪和检测组合可能需要精确的归一化距离计算。只有粗略分配成本低于以下的组合才能准确计算。下图描述了粗略的成本计算。检测由其测量值表示C2z
和测量噪声R.两条轨迹被预测到检测时间,并投影到测量空间,由点描绘Ze1和Ze2请注意,轨道不确定性不会投影到测量空间,这使我们能够对粗略计算进行矢量化。这是一个粗略的估计,因为只考虑了检测周围的不确定性。在所示示例中,第一个轨道落在粗略计算门外,而第二个轨道落在粗略计算门内。因此,仅针对此检测和第二轨道的组合进行准确的成本计算。
要使用粗略成本计算,请释放跟踪器并将其修改为 [30 200] 的值。然后,重新运行跟踪器。
观察到步骤 3-5 现在需要的时间要少得多。步骤 2 也比以前快,但仍然比步骤 3-5 慢。 要了解步骤 2 速度较慢的原因,请考虑第一次跟踪器更新后的跟踪状态。状态包含位置信息,但速度仍为零。当跟踪器计算分配成本时,它会预测跟踪状态到检测时间,但由于轨道的速度为零,因此它们保持在同一位置。这会导致检测测量值与预测跟踪状态的预期测量值之间的距离很大。这些相对较大的分配成本使分配算法更难找到最佳分配,这导致步骤 2 比步骤 3-5 花费更多时间。 请务必验证具有粗略成本计算的轨道分配是否与不使用它的轨道分配相同。如果跟踪分配指标不同,则必须增加粗略计算门的大小。下面显示跟踪仍然像上一节一样完美,但每个处理步骤花费的时间更少。
四、使用外部成本计算
控制计算成本分配所需时间的另一种方法是使用您自己的分配成本计算,而不是跟踪器使用的默认值。 外部成本计算可以考虑不属于跟踪状态和预期测量的属性。它还可以使用不同的距离度量,例如欧几里得范数而不是归一化距离。选择应用哪种成本计算取决于问题的具体情况、测量空间以及如何定义状态和测量。 要使用外部成本计算,请释放跟踪器并将其属性设置为 true。必须将自己的成本矩阵作为每次更新时的额外输入传递到跟踪器。
五、更改 GNN 分配算法
另一个尝试的选项是使用不同的GNN分配算法,该算法通过修改跟踪器的属性可以更有效地查找分配。
Jonker-Volgenant 算法在第二步中执行赋值的速度相对于默认的 Munkres 算法要快。
六、蒙特卡洛模拟
如果要在不修改跟踪器设置的情况下运行多个方案,则无需调用该方法。相反,只需调用该方法即可从跟踪器中清除以前的跟踪信息。这样,可以节省实例化所有轨道所需的时间。
七、总结
此示例演示了如何跟踪大量对象。跟踪许多对象时,跟踪器花费了很大一部分处理时间来计算跟踪和检测的每个组合的成本分配。了解了如何使用成本计算阈值来缩短计算工作分配成本所花费的时间。此外,该示例还演示了如何使用外部成本计算,该计算可能设计为针对您遇到的特定跟踪问题提高计算效率。
八、程序
使用Matlab R2022b版本,点击打开。
打开下面的“TrackingLargeNumberOfObjectsExample.m”文件,点击运行,就可以看到上述效果。
关注下面公众号,后台回复关键词:有效跟踪大量目标仿真,发送源码链接。