将原始轨迹与两个压缩轨迹进行比较的最佳方法是什么

时间:2012-01-23 23:25:56

标签: algorithm compression

假设有GPS轨迹 - 即:一系列时空坐标,每个坐标是(x,y,t)信息,其中x是经度,y是纬度,t是时间戳。 假设每个轨迹由1000(x,y)点标识,压缩轨迹是具有比原始点更少的点的轨迹,例如300点。压缩算法(Douglas-Peucker,Bellman等)决定压缩轨迹中的哪些点以及将被丢弃的点。

每种算法都有自己的选择。更好的算法不仅通过空间特征(x,y)选择点,而且使用时空特征(x,y,t)。

现在我需要一种方法来比较两个压缩轨迹与原始轨迹,以了解什么压缩算法更好地减少时空(时间分量是非常重要的)轨迹。

我已经考虑过DTW算法来检查轨迹相似性,但这可能并不关心时间成分。我可以使用什么算法来进行此控制?

3 个答案:

答案 0 :(得分:2)

什么是最好的压缩算法在很大程度上取决于您尝试使用它实现的内容,并且依赖于其他外部变量。通常,要识别并删除尖峰,然后删除冗余数据。例如;

已知的最小和最大速度,加速度和调谐能力可以让你去除尖峰。如果我们看一对点之间的连接距离除以

的时间

速度= sqrt((xb - xa)^ 2 +(yb - ya))/(tb-ta)

我们可以消除在给定速度约束的情况下在经过的时间内无法行进距离的点。我们可以对加速度约束做同样的事情,并改变给定速度的方向约束。无论GPS接收器是静态的,手持的,汽车的,飞机的等等,这些限制都会改变......

我们可以使用移动窗口查看三个点来移除冗余点,其中如果中间点的插值(x,y,t)可以与观察点进行比较,并且如果它位于a中,则观察点被移除指定距离+插值点的时间容差。我们还可以曲线拟合数据并考虑到曲线的距离,而不是使用移动的3点窗口。

基于给定的约束,压缩也可以具有不同的目标,例如,通过删除冗余观察和峰值来简单地减小数据大小,或者平滑数据。

对于前者,在根据定义的约束检查尖峰之后,我们只需检查每个点到连接压缩点的折线的3d距离。这是通过找到已被移除的点之前和之后的点对,在基于观察时间连接这些点的线上插入位置,并将插值位置与观察位置进行比较来实现的。随着我们允许此距离容差增加,删除的点数将增加。

对于后者,我们还必须考虑平滑结果对数据建模的程度,约束所施加的权重以及设计形状/曲线参数。

希望这有一定道理。

答案 1 :(得分:1)

也许你可以使用轨迹之间的均方距离 可能只是简单地看一下1s,2s,......的距离就足够了,但你也可以在时间戳积分之间做得更精确,(x1(t)-x2(t))^ 2 +(y1(t) )-y2(t))的^ 2。请注意,在两个时间戳之间,两个轨迹都是直线。

答案 2 :(得分:1)

我找到了计算时空误差所需的东西。 正如纸上所述“GPS跟踪数据的压缩和挖掘: Lawson,Ravi& Hwang的新技术和应用“

  

同步欧几里德距离(sed)测量之间的距离   在相同的时间戳上两点。在图1中,五个时间步长(t1   显示t5)。简化线(可以认为是   跟踪的压缩表示仅由两个组成   分(P't1和P't5);因此,它不包括点P't2,P't3   和P't4。要量化这些缺失点引入的误差,   距离是在相同的时间步长测量的。既然三分   在P't1和P't5之间被移除,该线被分成四个   使用三个点P't2,P't3和P't4的相等大小的线段   为了测量误差。测量总误差   作为同步时间内所有点之间距离的总和   瞬间,如下图所示。 (在下面的表达式中,n代表   考虑的总分数。)

     

enter image description here