我有一个卡尔曼滤波器跟踪一个点,带有一个状态向量(x、y、dx/dt、dy/dt)。
在给定的更新中,我有一组可能对应于跟踪点的候选点。我想遍历这些候选点并选择最有可能对应于跟踪点的一个,但前提是该点对应于跟踪点的概率大于阈值(例如 p > 0.5)。
因此我需要使用过滤器的协方差和状态矩阵来估计这个概率。我该怎么做?
另外,请注意我的状态向量是四维的,但测量是二维的 (x, y)。
最佳答案
当您使用 y = Hx
预测测量值时,您还将 y
的协方差计算为 H*P*H.T
。这个属性就是我们在卡尔曼滤波器中使用方差的原因。
理解给定点与预测点的距离的几何方法是误差椭圆或置信区域。 95% 的置信区域是缩放到 2*sigma
的椭圆(如果这不直观,您应该去阅读正态分布,因为这就是 KF 认为它正在研究的内容)。如果协方差是对角线的,则误差椭圆将轴对齐。如果有共同变化的术语(如果您没有通过 Q
或 R
在任何地方引入它们,则可能没有)然后椭圆将倾斜。
数学上的方法是马氏距离,就是直接把上面的几何表示形式化为一个距离。距离尺度是标准偏差,因此您的 P=0.5 对应于 0.67 的距离(如果这令人惊讶,请再次查看正态分布)。
关于opencv - 如何从卡尔曼滤波器估计部分状态的概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26862050/