用于多对象跟踪的对象级传感器融合

信息处理 过滤器 算法 物体识别 追踪
2022-02-14 07:11:13

我想融合来自多个传感器的物体,它们具有不同的(有时是重叠的!)视野。有了对象列表,我如何确定不同传感器观察到的某些对象实际上是否是同一个对象?只有这样我才能真正编写一个算法来预测这样一个对象的未来状态。换句话说,我想正确关联这些列表。

2个回答

有许多不同的算法或理论可以解决您的问题。

  • 正如评论中所建议的,卡尔曼滤波器(在常规或扩展实现中)经常在这种情况下尝试。
  • 如果您在一个离散的世界中(我从您的问题中猜想是这样),您可以尝试使用(例如)Hungarian algorithm在离散设置中解决您的问题。
  • 如果您的检测结果带有相关的置信度或合理性(可能性)测量值,并且如果您不害怕数学,您可以尝试流行的Dempster-Shafer证据理论(或其变体之一)。
  • 等等(轨道之间的相关性,稀疏回归的一种变体......)。

融合卡尔曼滤波

假设您知道您有一个具有相应状态向量(例如位置或位置+速度)的对象。

现在,假设您正在使用 2 个不同的传感器或算法观察此状态。例如,机器人或无人机可以具有来自惯性测量单元 (IMU) 的第一位置估计和通过计算机视觉通过检测其相对于已知兴趣点的姿态来估计的另一个位置。

卡尔曼滤波器解决了根据这两个输入提供真实状态(位置)估计的问题。考虑到两个来源的内在精度,它将以最小二乘的方式解决它。请注意,使用它来跟踪(及时)单个对象并没有什么不同:在融合的情况下,唯一的区别是所有的观察都是同时获得的。

您对卡尔曼滤波器的输入是前一个位置 + 2 个估计位置,输出是单个位置(理想情况下是“真实”位置)。观察矩阵在给定传感器输入的情况下产生一个位置。在此示例中(输入 = 位置,输出 = 位置),它将是身份。您将有关每个传感器精度的知识合并到滤波器的方差矩阵中。

是我发现的一个示例应用程序。

让我们说当时tk你知道状态向量Xk=[pk,vk]你的对象和相关的协方差矩阵Pk.

当时tk+1你有三个传感器给你物体的位置pk+11,pk+12,pk+13及其关联的协方差矩阵Rk+11,Rk+12,Rk+13.

您将使用卡尔曼滤波器与以下观察过程融合这些信息:

Yk+1=Hk+1Xk+1+Rk+1
Hk+1Xk+1=(pk+11000pk+12000pk+13)

Rk+1=(Rk+11000Rk+12000Rk+13)

我让你为卡尔曼滤波器的实现做所有复杂的公式,但你明白了。

您将为每个时间步运行不同的卡尔曼滤波器,因为您不会有相同数量的传感器检测对象,但这不是问题,因为您拥有独立于传感器数量的对象状态协方差。

如果有一个时间步您根本没有任何观察,您只需运行预测步骤而不进行更新。

如果您有多个对象和/或误报,这将变得更加复杂,您将需要搜索多目标跟踪、数据关联、多假设跟踪器、概率假设密度过滤器。

如果您有一个对象和误报,这可能会更简单一些,并尝试使用谷歌搜索联合概率数据关联过滤器。