Kalman Filter:预测、观测和不确定性

2024 年 5 月 26 日 星期日
/ , , ,
3
摘要
从 Predict-Update 两步循环出发,用直觉理解 F/P/Q/H/R/K 各矩阵的含义。Kalman Gain 本质是预测和观测之间的加权权重,Q 和 R 是调参核心。

阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。

Kalman Filter:预测、观测和不确定性

编写时间:2024-05 从多目标跟踪的直觉出发,Kalman Filter 要解决的问题是:存在一个带噪声的观测,也存在一个运动模型;Kalman Filter 做的是把二者按不确定性融合。

两步循环


Kalman Filter 预测与更新示意

Kalman Filter 预测与更新示意

预测:

x^k=Fx^k1+Buk \hat x_k^- = F\hat x_{k-1}+Bu_k
Pk=FPk1FT+Q P_k^- = FP_{k-1}F^T+Q

更新:

Kk=PkHT(HPkHT+R)1 K_k=P_k^-H^T(HP_k^-H^T+R)^{-1}
x^k=x^k+Kk(zkHx^k) \hat x_k=\hat x_k^-+K_k(z_k-H\hat x_k^-)
Pk=(IKkH)Pk P_k=(I-K_kH)P_k^-

各矩阵的直觉

符号含义直觉
x状态目标的位置、速度、尺度等
F状态转移按运动模型预测下一帧
P状态不确定性当前状态的不确定程度
Q过程噪声运动模型本身有多不可靠
z观测检测器给出的 bbox
H观测矩阵状态到观测空间的映射
R观测噪声检测器有多不可靠
KKalman Gain更信预测还是更信观测

跟踪里的例子

在 SORT 里,检测器每帧给 bbox。Kalman Filter 用上一帧位置和速度预测当前 bbox,再用这一帧检测框修正。检测框抖动时,Kalman 会让轨迹更平滑;短时间漏检时,Kalman 可以靠预测撑一下。

一个直觉公式

Kalman Gain 可以理解为权重:

new=predict+K(observepredict) new = predict + K \cdot (observe - predict)

如果观测噪声 R 大,说明检测不可靠,K 会小,更信预测;如果预测不确定性 P 大,说明模型不可靠,K 会大,更信观测。

学习时最容易卡住的点

  1. Kalman 不是魔法,它依赖线性模型和噪声假设。
  2. 预测能补短期缺失,但不能长期无观测跟踪。
  3. QR 是调参核心,代表对模型和观测的信任。
  4. 在目标检测跟踪里,检测器质量差时,滤波只能缓解,不能从根上解决。

这也是为什么 SORT 简单但有效:它把“检测”和“运动预测”拆开了,每一步都能解释,也方便定位问题。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...