白天的鹅卵石工/尊敬的同事,
对于实现Kalman预测/校正的多目标跟踪,我在其他线程中建议的一般方法是为每个对象提供一个向量/阵列卡尔曼滤波器。
即“多目标卡尔曼滤波器”
但是如果你正确地定义了你的状态空间矩阵,相互独立的状态就会保持不变,所以一旦说出并完成了任何(相干的)数学--我们为什么不用所有的对象‘数据’来增强过滤器中涉及的各种状态和相关矩阵/向量,并使用一个卡尔曼滤波器呢?(是的,在大多数矩阵中都会有大量的零)。
这两种方法都有算法复杂度优势吗?我的直觉是,使用一个过滤器和许多过滤器可以减少开销吗?
也许在处理多个过滤器时,人类的可读性更容易管理呢?
还有其他原因吗?
谢谢
附注:最终代码将在openCV/C++中
发布于 2015-02-16 12:36:06
如果你所说的增强意味着将所有对象(包括均值和协方差)的状态组合成一个单一的超级状态,然后使用一个过滤器来预测/估计这个超级状态,那么我恐怕你对它更有效的直觉是错误的。
您需要考虑的是,KF方程涉及诸如矩阵反演之类的操作,其中O(n^3) (或非常接近此图)的计算复杂性,其中n是矩阵的维数。如果您将多个对象聚合到一个单一状态,则计算复杂度将急剧上升,即使像您所说的大部分是零。
在我看来,处理多个过滤器(每个跟踪对象一个)从设计角度看是更干净的,也是一种更有效的方法。如果您确实受到KF性能(配置文件优先)的影响,请考虑在连续数组中分配Kalman滤波器数据,以尽量减少缓存丢失。
https://stackoverflow.com/questions/28541106
复制相似问题