Kalman Filter:预测、观测和不确定性
编写时间:2024-05 从多目标跟踪的直觉出发,Kalman Filter 要解决的问题是:存在一个带噪声的观测,也存在一个运动模型;Kalman Filter 做的是把二者按不确定性融合。
两步循环
Kalman Filter 预测与更新示意
预测:
更新:
各矩阵的直觉
| 符号 | 含义 | 直觉 |
|---|---|---|
x | 状态 | 目标的位置、速度、尺度等 |
F | 状态转移 | 按运动模型预测下一帧 |
P | 状态不确定性 | 当前状态的不确定程度 |
Q | 过程噪声 | 运动模型本身有多不可靠 |
z | 观测 | 检测器给出的 bbox |
H | 观测矩阵 | 状态到观测空间的映射 |
R | 观测噪声 | 检测器有多不可靠 |
K | Kalman Gain | 更信预测还是更信观测 |
跟踪里的例子
在 SORT 里,检测器每帧给 bbox。Kalman Filter 用上一帧位置和速度预测当前 bbox,再用这一帧检测框修正。检测框抖动时,Kalman 会让轨迹更平滑;短时间漏检时,Kalman 可以靠预测撑一下。
一个直觉公式
Kalman Gain 可以理解为权重:
如果观测噪声 R 大,说明检测不可靠,K 会小,更信预测;如果预测不确定性 P 大,说明模型不可靠,K 会大,更信观测。
学习时最容易卡住的点
- Kalman 不是魔法,它依赖线性模型和噪声假设。
- 预测能补短期缺失,但不能长期无观测跟踪。
Q和R是调参核心,代表对模型和观测的信任。- 在目标检测跟踪里,检测器质量差时,滤波只能缓解,不能从根上解决。
这也是为什么 SORT 简单但有效:它把“检测”和“运动预测”拆开了,每一步都能解释,也方便定位问题。