【算法】kalman运动状态估计不准确的思考

前言

在仿真实验多目标跟踪时,我采用了Kalman做跟踪,在运动状态估计时位置可以很“准确”的估计,但是速度与方向就偏差很大,最近看到了一篇文献详细的介绍了原因,之前考虑到时间间隔太小,噪声又很大的影响,但没有深究。
Observation-Centric SORT: Rethinking SORT for Robust Multi-Object Tracking

1.综述

这篇文章是在SORT的基础上进行的改进,主要指出了基于运动建模的方式的三个缺点,传统的卡尔曼预测方式假设运动在一段时间间隔内是线性的,基于这个假设,在极短的时间间隔内卡尔曼预测的位置是“准确的”,注意是引号,后面会讲。但对于长时间的预测,物体运动很难满足线性的要求,所以长时间的预测用卡尔曼效果并不好。这篇文章主要指出了三个问题:

  1. 首先,尽管高帧率是将物体运动近似为线性的关键,但它也放大了模型对状态估计噪声的敏感性。具体来说,在高帧率视频包括激光雷达数据的连续帧之间,作者证明了物体位移的噪声可以与实际物体位移的大小相同,导致KF估计的物体速度存在显著差异。同时,速度估计中的噪声会通过过渡过程累积到位置估计中。
  2. 其次,在KF更新阶段没有观测值时,KF状态估计的噪声会随着时间的推移而累积。作者发现,误差积累非常快,相对于目标对象被取消跟踪的时间来说。噪声对速度方向的影响往往会使重新关联后的轨迹再次丢失。
  3. 最后,考虑到目标检测的发展,通过“检测得到的目标状态通常比通过固定运动模型估计出的状态具有更低的方差。然而,SORT的设计是通过状态估计而不是观测来延长物体的轨迹。作者的意思是目前检测器发展很快,比如深度学习的各种目标检测模型比状态估计要成熟可靠,所以作者想能不能提高观测的权重来改进卡尔曼以估计为主的模式。

2.理论推导

在这里插入图片描述
这是文章中的卡尔曼更新方程,这是我见过表达最清晰的,尤其是update部分采用的 x ^ t ∣ t \widehat{x}_{t|t} x tt代表t时刻对t时刻的状态进行估计,区别于t-1时刻对t时刻估计。

误差分析

在这里插入图片描述
上面就是位置估计的公式
在这里插入图片描述
这是给出了误差与时间的关系,误差原理大学本科的时候学过,还有点印象:
在这里插入图片描述

D ( U − V ) = D ( U ) + D ( V ) + 协方差矩阵 D(U-V)=D(U)+D(V)+协方差矩阵 D(UV)=D(U)+D(V)+协方差矩阵
如果相互独立则
D ( U − V ) = D ( U ) + D ( V ) D(U-V)=D(U)+D(V) D(UV)=D(U)+D(V)
可以看出时间间隔越小误差影响越大,所以验证了可以增加时间间隔来减少误差的影响,但是治标不治本,跟踪还是要首先考虑实时性。
在这里插入图片描述
这是位置的误差,与速度相反时间越长误差越大。然后作者分别给出了三个缺点对应的解决方案。正在看…
![在这里插入图片描述](https://img-blog.csdnimg.cn/632de0fb9d54457aa55a4cf0e58e27fd.png

2.思考

  1. 回到前面提到的“准确”为什么加引号。卡尔曼之所以“准确”是因为观测值的修正,卡尔曼在模型理论值与观测值之间取了一个相对可靠的数据,但是这个数据虽然可靠但是不一定最接近真值,可以说它选择一个在自己的经验内最有把握的,最信赖的数据,至于准不准是次要的,可靠是首要的。所以在观测值丢失后,卡尔曼像盲人凭感觉经验进行估计,短时间内可行,长时间会偏离真值,正如人走路,会时不时看一下路纠正一下。走大路没人时可以玩手机-“无观测预测”,当小路有很多人时需要时刻看路-“观测修正”。但是在小路有很多人时没有观测那么就出问题了——撞树走偏。
  2. 如何有效解决短时间内噪声对速度估计的影响,并保持高帧率的处理速度?
  3. 对于单线激光雷达数据在跟踪时,本身检测的形状也是不稳定的,如果检测稳定需要提供足够的数据或者检测算法有所改进。

猜你喜欢

转载自blog.csdn.net/xi_shui/article/details/129740112