从嘈杂的位置数据中获取有意义的速度信息

Vin*_*eng 5 video-processing noise smoothing

如果这个问题发布在错误的 stackexchange 网站上 - 请建议我可以将其迁移到哪里!

\n\n

我正在研究一个物体在与墙壁以及其他物体一起经历多种条件下的速度。物体位置的原始数据略有噪声,原因有二:一是视频的分辨率有限,二是我的跟踪软件在跟踪物体时也存在一些误差(因为物体的图像略有变化)随着时间的推移)。

\n\n

如果简单地使用物体位置的原始数据来计算物体的速度,那么当物体以高帧率跟踪时,会存在很大的误差(大于速度的误差)。

\n\n

我最感兴趣的是物体在碰撞前后的速度,因此这是一个重要的问题。

\n\n

我已经考虑/尝试过的可能选项。

\n\n
    \n
  • 对位置数据应用离散卡尔曼滤波器:这是有关相关问题的帖子中经常出现的解决方案。然而,考虑到当我们开始平滑数据时我们已经拥有所有数据,卡尔曼滤波器是利用可用数据的最佳方法吗?我的理解是,过滤器是针对随着时间推移传入的数据而设计的(例如实时接收的位置数据而不是完整的位置数据集)。
  • \n
  • 对位置数据应用 Savitsky-Golay 平滑:当我在数据上尝试此操作时,我发现每次碰撞后,在 \xc2\xb110 数据点区域中都会引入明显的伪影。我怀疑这与碰撞时的显着加速度有关,但在尝试了一系列 SG 平滑参数后,我无法消除伪影。
  • \n
  • 分离碰撞时的数据,然后使用移动平均值平滑速度:为了克服每次碰撞时加速度带来的问题,我将每个碰撞点的数据分成多个系列。例如,如果发生三个碰撞,数据将分为四个系列。然后计算每个数据系列的速度并使用移动平均值进行平滑。
  • \n
\n\n

此外,我的一些同事建议通过低通滤波器传递速度信息,但我没有尝试过。

\n\n

下面两个问题与我相关,仅供参考。

\n\n

系列数据平滑

\n\n

流畅的 GPS 数据

\n\n

此外,下面的论文似乎还提供了如何实现卡尔曼滤波器的一个很好的建议,尽管是针对实时数据。

\n\n

http://transportation.ce.gatech.edu/sites/default/files/files/smoothing_methods_Design_to_minimize_the_impact_of_gps_random_error_on_travel_distance_speed_and_acceleration_profile_estimates-trr.pdf

\n

Die*_*ich 3

选择合适的过滤算法主要取决于对象的行为和测量误差(或噪声)。所以我只能给出一些通用的提示:

微分,即根据位置数据计算速度会大大放大噪声。所以可能你确实需要某种平滑处理。我的临时方法是:对位置数据进行傅里叶变换,在傅里叶空间中求导,并尝试找到适合低路径滤波的边界。将其他传递函数应用于转换后的定位数据可以解释为核平滑(尽管需要对核方法有一些数学见解才能正确做到这一点)。

卡尔曼滤波器是状态估计器,它递归地工作。如果您有适当的(离散时间)运动模型和测量模型,它将产生良好的结果并为您提供速度的直接估计。这种方法的经验法则:

  • 如果您的对象具有旋转自由度,则在 3D 空间或 6D 空间中建模,而不是在图像空间中建模(噪声表现不同)
  • 仔细调查您的投影误差(相机校准)并仔细选择噪声参数
  • 如果出现非线性,请使用无迹卡尔曼滤波器(它比扩展卡尔曼滤波器好得多)

卡尔曼滤波和低通滤波密切相关。对于许多简单的应用,卡尔曼滤波器可以被认为是自适应低通滤波器,它可以进行平滑。

非递归卡尔曼滤波器是一种称为高斯过程的方法 - 尽管我只看到当您的轨迹具有少量数据点时相对于卡尔曼滤波器的优势。他们的申请并不像钦哲基金会那么直接。