如果这个问题发布在错误的stackexchange网站上 - 请告知我可以将其迁移到哪里!
我正在研究一个物体的速度,这个物体经历了墙壁以及其他物体的多种条件。对象位置的原始数据略有噪声,原因有两个:第一,视频的分辨率有限;其次,我的跟踪软件在跟踪对象时也有一些错误(因为对象的图像略有变化)随着时间的推移)。
如果仅通过使用对象位置的原始数据来计算对象的速度,则在以高帧速率跟踪对象时存在显着的误差(大于速度的误差)。
我最感兴趣的是碰撞前后的物体速度,因此这是一个重大问题。
我考虑/尝试的可能选项。
此外,我的一些同事建议通过低通滤波器传递速度信息,我没有尝试过。
以下两个问题与我的相关,并作为参考提供。
此外,下面的文章似乎也为如何实现卡尔曼滤波器提供了一个很好的建议,尽管对于实时数据。
答案 0 :(得分:2)
选择合适的滤波算法主要取决于对象的行为和测量误差(或噪声)。所以我只能提供一些通用的提示:
微分,即从位置数据计算速度会显着放大噪声。所以你可能需要某种平滑。我的临时方法是:傅里叶变换您的位置数据,在傅立叶空间中进行导数并四处寻找低路径滤波的适当边界。将其他传递函数应用于已转换的定位数据可以解释为内核平滑(尽管需要对内核方法进行一些数学洞察才能正确执行)。
卡尔曼滤波器是状态估计器,递归工作。如果你有一个适当的(离散时间)运动模型&测量模型,它将产生良好的结果,并为您提供速度的直接估计。这种方法的经验法则是:
卡尔曼滤波和低路径滤波密切相关。对于许多简单的应用,卡尔曼滤波器可以被认为是自适应低通滤波器,它可以进行平滑处理。
非递归卡尔曼滤波器是一种称为高斯过程 - 尽管如果您的轨迹具有少量数据点,我只会看到优于卡尔曼滤波器的优势。他们的申请并不像KF那样直截了当。