OpenCV 的卡尔曼滤波器过渡矩阵如何处理时间(例如 t 和 t^2)进行运动预测?

Posted

技术标签:

【中文标题】OpenCV 的卡尔曼滤波器过渡矩阵如何处理时间(例如 t 和 t^2)进行运动预测?【英文标题】:How does OpenCV's Kalman filter transition matrix handle time (such as t and t^2) for motion prediction? 【发布时间】:2018-08-10 08:56:45 【问题描述】:

使用Kalman filter 预测二维空间中的运动,我们通常使用以下等式创建转换矩阵:

x(k+1) = x(k) + vt + (1/2)at^2

或者干脆

x(k+1) = x(k) + vt

x:位置,v:速度,a:(恒定)加速度。

这会产生一个如下所示的转换矩阵(对于 2D 空间):

1  0  t  0
0  1  0  t
0  0  1  0
0  0  0  1

但 OpenCV 示例建议我们在 C++ 中设置卡尔曼滤波器时使用以下矩阵:

1  0  1  0
0  1  0  1
0  0  1  0
0  0  0  1

知道卡尔曼滤波器可用于任何维度和单位,OpenCV 如何正确解释这一点?

【问题讨论】:

【参考方案1】:

我不认为它可以。我用 dt 代替 t,其中 dt 是测量周期。

【讨论】:

以上是关于OpenCV 的卡尔曼滤波器过渡矩阵如何处理时间(例如 t 和 t^2)进行运动预测?的主要内容,如果未能解决你的问题,请参考以下文章

具有 2 个测量噪声的卡尔曼滤波器

更改 OpenCV 的卡尔曼滤波器中的增益以使其更具响应性

python中的卡尔曼二维过滤器

带加速度的卡尔曼滤波器。状态或控制向量?

用于背景/前景分离的卡尔曼滤波器

Opencv Python卡尔曼滤波器预测结果查询