我有两条动物奔跑的轨迹。一个在 A 点和 B 点之间反复来回运行的普通的,如图中最上面的那个。另一个很不规则,动物在中间停顿了很多转身。是否有任何算法可以测量轨迹的规律性,例如顶部的重复活动?并比较两条轨迹之间的规律性延伸?提前致谢。

如何测量轨迹规律性?
计算科学
算法
2021-12-12 12:15:07
2个回答
有一些方法可以检查信号的周期性。如果您估计最可能的频率并近似每个周期的行为,那么如果您检测到每个周期几乎完全匹配,这将是一种规律性的证据。
一种可能性是测量轨迹中每个点的斜率变化,然后在最后取平均值。在您描述为“常规”的第一个中,斜率在其中很大一部分保持不变。第二个“不规则”的情况并非如此。
因此,在 xy 轨迹中的每个点找到斜率的变化,然后取平均值。最后,更“规则”的轨迹将具有接近 0 的平均变化(因为动物大部分时间都在直线行走,所以他的“斜率”是恒定的)。这是一些示例代码。
change_in_slope = 0.0
for i in 2:no_points-1
change_in_slope += (y[i] - y[i-1])/(x[i] - x[i-1]) - (y[i+1] - y[i])/(x[i+1] - x[i])
end
change_in_slope = change_in_slope / (no_points - 2)
其它你可能感兴趣的问题