opencv - 如何从卡尔曼滤波器估计部分状态的概率?

标签 opencv probability kalman-filter video-tracking

我有一个卡尔曼滤波器跟踪一个点,带有一个状态向量(x、y、dx/dt、dy/dt)。

在给定的更新中,我有一组可能对应于跟踪点的候选点。我想遍历这些候选点并选择最有可能对应于跟踪点的一个,但前提是该点对应于跟踪点的概率大于阈值(例如 p > 0.5)。

因此我需要使用过滤器的协方差和状态矩阵来估计这个概率。我该怎么做?

另外,请注意我的状态向量是四维的,但测量是二维的 (x, y)。

最佳答案

当您使用 y = Hx 预测测量值时,您还将 y 的协方差计算为 H*P*H.T。这个属性就是我们在卡尔曼滤波器中使用方差的原因。

理解给定点与预测点的距离的几何方法是误差椭圆置信区域。 95% 的置信区域是缩放到 2*sigma 的椭圆(如果这不直观,您应该去阅读正态分布,因为这就是 KF 认为它正在研究的内容)。如果协方差是对角线的,则误差椭圆将轴对齐。如果有共同变化的术语(如果您没有通过 QR 在任何地方引入它们,则可能没有)然后椭圆将倾斜。

数学上的方法是马氏距离,就是直接把上面的几何表示形式化为一个距离。距离尺度是标准偏差,因此您的 P=0.5 对应于 0.67 的距离(如果这令人惊讶,请再次查看正态分布)。

关于opencv - 如何从卡尔曼滤波器估计部分状态的概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26862050/

相关文章:

c++ - 在 OpenCV 中实现热视觉

c++具有频繁变化概率的离散分布采样

c++ - 关于霍夫变换概率的问题

python - 卡尔曼滤波器预测 t+2 时间步长

c++ - 在 OpenCV/C++ 中通过(扩展)卡尔曼滤波器实现数据融合

c++ - OpenCV:快速量化两幅图像之间的差异

python - 在python的openCV中遍历色彩空间

OpenCV 理解灰度

matlab - 定义代码的 X 值

python - Easy单目相机自标定算法