Kalman
卡尔曼滤波在目标跟踪中的作用大致可以分为两个部分:预测和最优估计。
数学原理
状态预测方程:
$$
\mathbf{\hat{x}}{k|k-1} = \mathbf{A} \mathbf{\hat{x}}{k-1|k-1} + \mathbf{B} \mathbf{u}{k-1}
$$
其中,$\mathbf{\hat{x}}{k|k-1}$ 是状态预测值,$\mathbf{A}$ 是状态转移矩阵,$\mathbf{B}$ 是控制矩阵,$\mathbf{u}_{k-1}$ 是控制输入。预测误差协方差方程:
$$
\mathbf{P}{k|k-1} = \mathbf{A} \mathbf{P}{k-1|k-1} \mathbf{A}^T + \mathbf{Q}
$$
其中,$\mathbf{P}_{k|k-1}$ 是预测误差协方差矩阵,$\mathbf{Q}$ 是过程噪声协方差矩阵。卡尔曼增益方程:
$$
\mathbf{K}k = \mathbf{P}{k|k-1} \mathbf{H}^T (\mathbf{H} \mathbf{P}_{k|k-1} \mathbf{H}^T + \mathbf{R})^{-1}
$$
其中,$\mathbf{K}_k$ 是卡尔曼增益,$\mathbf{H}$ 是观测矩阵,$\mathbf{R}$ 是观测噪声协方差矩阵。状态更新方程:
$$
\mathbf{\hat{x}}{k|k} = \mathbf{\hat{x}}{k|k-1} + \mathbf{K}k (\mathbf{z}k - \mathbf{H} \mathbf{\hat{x}}{k|k-1})
$$
其中,$\mathbf{\hat{x}}{k|k}$ 是更新后的状态估计值,$\mathbf{z}_k$ 是观测值。更新误差协方差方程:
$$
\mathbf{P}{k|k} = (\mathbf{I} - \mathbf{K}k \mathbf{H}) \mathbf{P}{k|k-1}
$$
其中,$\mathbf{P}{k|k}$ 是更新后的误差协方差矩阵,$\mathbf{I}$ 是单位矩阵。
在追踪任务中的应用
最优估计
可以理解为将过去轨迹和当前检测结果加权,得到一个更加平滑的结果。
预测
根据模型(往往采用的是匀速直线运动模型)计算得到下一时刻的目标状态,使得匹配更加准确(因为目标在运动)。
