如果此问题发布在错误的 stackexchange 站点上 - 请建议我可以将其迁移到哪里!
我正在研究一个物体的速度,它与墙壁以及其他物体一起经历多种条件。物体位置的原始数据有轻微的噪音,原因有两个:第一,视频的分辨率有限,第二,我的跟踪软件在跟踪物体时也有一些误差(因为物体的图像略有变化随着时间的推移)。
如果仅通过使用对象位置的原始数据来计算对象的速度,则在以高帧率跟踪对象时存在明显的误差(大于速度的误差)。
我对碰撞前后物体的速度最感兴趣,因此这是一个重大问题。
我考虑过/尝试过的可能选项。
- 在位置数据上应用离散卡尔曼滤波器:这是一个经常出现在有关相关问题的帖子中的解决方案。然而,当我们开始对数据进行平滑处理时,考虑到所有数据,卡尔曼滤波器是利用可用数据的最佳方式吗?我的理解是,过滤器是为随着时间的推移传入的数据而设计的(例如,实时接收的位置数据,而不是完整的位置数据集)。
- 对位置数据应用 Savitsky-Golay 平滑:当我在我的数据上尝试此操作时,我发现每次碰撞后在 ±10 个数据点的区域中引入了显着的伪影。我怀疑这与碰撞时的显着加速度有关,但在尝试了 SG 平滑的一系列参数后,我无法消除伪影。
- 在碰撞时分离数据,然后使用移动平均值平滑速度:为了克服每次碰撞时加速度引入的问题,我在每个碰撞点将数据分成多个系列。例如,如果有 3 次碰撞,则数据将分为四个系列。然后使用移动平均值计算和平滑每个数据系列的速度。
此外,我的一些同事建议通过低通滤波器传递速度信息,我没有尝试过。
以下两个问题与我有关,仅供参考。
此外,下面的论文似乎也为如何实现卡尔曼滤波器提供了一个很好的建议,尽管是针对实时数据。