轨迹数据预处理

1,533 阅读7分钟
原文链接: zhuanlan.zhihu.com

轨迹数据预处理(Trajectory Preprocessing)

轨迹数据

基于地理位置的服务(Location-Based Services):

  1. 交通信息提供
  2. 导航
  3. 移动商务
  4. 物流
  5. 地理位置信息系统(GIS)
  6. 本地天气
  7. 位置追踪
  8. 紧急服务

LBS系统模型:

- 被追踪目标的位置信息通过无线网络传输至位置服务器 - 基于LBS的应用向服务器提交请求,获取目标的数据用于分析或其他需求

轨迹数据

轨迹数据是一系列位置数据和时间戳的集合。主要来源包括: - Global positioning system (GPS) - 网络,Network-based (e.g., using cellular or wifi access points) - 航位推算,Dead-Reckoning (for estimation)

移动目标数据库(MOD)Mobile Object Databases

  • 广泛的研究支持LBS
  • 目标搜索功能;许多LBS应用需要分析和挖掘目标的各种运动模式和现象。
  • 轨迹管理:目标的轨迹在MOD中被看做一等公民。

轨迹预处理

很难得到非常精确的轨迹数据。 轨迹数据有什么问题? - 数据量大 - 噪声和干扰 如何解决上述问题? - 数据压缩(抽稀) - 滤波技术

压缩

性能指标

目标是在尽量小的影响精度的情况下减少数据量。主要有以下三个指标。 - 处理时间 - 压缩率 - 误差测量

误差:原始轨迹位置与估计轨迹位置之间的距离。主要有以下两种误差测量指标: - 垂直欧式距离(Perpendicular Euclidean Distance) - 时间同步欧式距离(Time Synchronized Euclidean Distance)

垂直欧式距离

时间同步欧式距离

垂直欧式距离和时间同步欧式距离

  • 垂直欧式距离是计算原始轨迹点到估计轨迹点之间的投影距离
  • 时间同步欧式距离,假设目标匀速运动,因此距离与时间成比,所以投影点的间距由时间决定。
  • 如果我们将投影点无线增加,可以看做原始轨迹与轨迹轨迹之间的面积,因此面积也可以作为误差指标

轨迹数据压缩(Trajectory Data Reduction)

按照处理是否在线,分为以下两类: - 离线压缩: - 收集完整的轨迹数据后,先压缩在传输至服务器。 - 应用:内容分享的网站 - 技术包括“道格拉斯-普客(DP)”算法,“TD-TR”算法,“贝尔曼”算法. - 在线数据压缩 - 根据要求的精度选择性的在线更新。 - 应用:交通监控和船运管理。 - 技术:水库采样, 滑动窗口, 开放窗口.

离线压缩-DP算法

在估计轨迹中根据垂直欧式距离保留方向趋势。 - 使用轨迹轨迹替换原始轨迹. - 如果不满足误差要求的话,从引入误差最大的点将轨迹切分为两个子轨迹继续分别处理 - 直到所有子轨迹满足误差要求

举例:上图中,估计轨迹是p0和p16,p9引入了最大误差,那么切分为p0p9和p9p16

p0p9中p3又引入了最大误差,因此再将p3作为分割点切开。

离线压缩-TDTR算法

  • DP算法的问题:使用了垂直欧式距离作为误差测量,无法保证选择的点是最好的分割点。
  • TDTR算法使用时间同步欧式距离作为误差测量,考虑了距离和时间两个因素。
  • 贝尔曼算法使用了动态规划技术保证估计的轨迹是最优的
    • 贝尔曼算法的计算成本较高

在线压缩-水库采样

  • 目标:生成一个有R个点的估计轨迹
    • 保持水库的大小是R不变。
    • 当来一个新的位置点时,决定是否要添加进水库。一旦决定放弃这个点,就再也找不回来了。
    • 当第k个点被获取时,随机决定,是否保留这个点,概率是R/k。
    • 当一个点被选中,水库中原有的R个点之一将被随机删除。

在线压缩-滑动窗口

  • 目标:用一个线段不断代替窗口中的点,窗口在不断增长,直到超过误差阈值。
    • 首先初始化第一个p0点作为锚定点
    • 当一个新的点pi加入,那么形成的线段p0pi就作为表示轨迹的线段。
    • 只要误差小于阈值,就增加窗口的大小,也就是说增加点。否则,pi作为新的锚定点。
    • 直到遍历的所有点。

例:从p0开始增长,p3是新的锚定点

在线压缩-开放窗口

  • 与滑动窗口不同,开放窗口不是选择最后带来超过误差阈值的点作为线段结束点和新锚定点,而是选择线段内误差最大的点。
  • 下图中,当p4被加入窗口中,超过阈值,这时选择p2作为新的锚定点,因为p2引入了最大的误差。

轨迹数据压缩

  • 离线
    • 道格拉斯普客Douglas-Peucker (DP)
    • Top-Down Time Ratio (TDTR) – 引入时间
    • Bellman – 动态规划

  • 在线
    • 滑动窗口 Sliding window
    • 开放窗口 Open window (variation of sliding window)

滤波

目标: - 过滤噪声和离散值 - 推断高等级变量-例如速度

技术: - 中值和均值滤波 - 卡尔曼滤波 - 粒子滤波

以上图为例,一个人的步行轨迹,共计1075个点,(x,y)的形式,时间间隔是1s,手动添加了一些离散点。

表达式:

z代表测量值,x是真实值,v是误差,其中v符合均值为0,方差为mu的正态分布。

均值滤波

均值滤波是一个被滤波点的值等于前面n个值的平均值。 - 不考虑未来的点 - 当数据变化明显时,有延迟 - 可以使用权重衰减技术减少延迟 - 对于离散值比较敏感 - 简单有效

中值滤波

中值滤波是一个被滤波点的值等于前面n个值的中值。 - 对于离散值的敏感度减少

卡尔曼滤波

卡尔曼滤波器与中值、均值滤波器最大的不同 - 相对于中值和均值滤波,卡尔曼滤波增加了关于轨迹的其他假设。 - 卡尔曼滤波器能包括没有直接测量的状态变量。

测量模型

测量模型等于测量矩阵与状态向量的积,加上误差项。 GPS的误差项一般去标准差为4米。

动态模型

动态模型如下,用来表述目标动态变化时,状态之间的关系,当前状态是系统矩阵与前一个状态的积加上误差项。


完整模型

卡尔曼滤波的完整模型就是考虑以上两个模型,一个测量模型一个动态模型。 - 首先根据动态模型推测估计点 - 然后根据测量模型矫正估计点,并更新模型参数 - 循环往复

一个比较大的速度方差表示不相信动态模型,导致引入更多的离散点。

粒子滤波

粒子滤波就是更通用版的卡尔曼滤波 - 允许引入多种形式的不确定性 (卡尔曼滤波的误差项分布是正态分布) - 允许引入连续型和离散型的变量 - 允许富动态模型 - 如果状态向量维度抬高,可能很慢

粒子滤波步骤

  • 初始装填,N个状态向量xi(j)
  • i = i+1
  • 新的测量值zi
  • 利用p(xi|xi-1)得到xi
  • 计算重要参数wi(j) = p(zi|xi(j))
  • 归一化重要参数使他们相加为1.0
  • 根据参数权重随机算则重要参数组合。
  • Goto 1

总结

轨迹滤波技术 - 测量假设 - 中值和均值滤波 - 卡尔曼滤波 - 粒子滤波