近年来, 我国已经成为全球电动自行车生产和销售第一大国, 同时, 电动自行车也已经成为人们出行的主要交通工具之一. 据统计, 2018年我国电动自行车的保有量已经达到了2.5亿[1], 随着GPS定位技术的不断成熟, 越来越多的电动自行车被安装了GPS设备, 由此获取到的海量轨迹数据为分析城市交通状况和用户出行规律提供了很好的基础[2, 3]. 地图匹配算法的任务是将GPS记录的轨迹匹配到交通工具实际经过的道路上, 这是对轨迹数据进行深度分析和有效利用的必要步骤. 但是, 电动自行车上普遍使用的成本低廉的GPS传感器无法提供高精度的定位, 因此往往无法从原始的轨迹数据中直接得知实际经过的准确路线.
目前, 学者对于地图匹配的研究已经有20多年的历史, 专注于解决地图匹配问题的文献也有上百篇之多[4]. 然而, 现有的各类算法大多是研究机动车轨迹数据的匹配问题. 对于电动自行车轨迹的地图匹配算法的相关研究还比较少. 相比于机动车的轨迹数据, 电动自行车轨迹数据具有以下3个特点.
特点1: 电动自行车轨迹上存在大量停留点.
特点2: 电动自行车轨迹采样频率高, 行驶速度较慢, 导致采样点距离较小, 轨迹点密度相应增大.
特点3: 电动自行车行驶路段更多, 由于路网精度的限制, 部分轨迹可能无法匹配到对应的路网上.
具体而言, 特点1会导致地图匹配准确率的下降. 停留点指轨迹上一组连续且相距较近的轨迹点, 其产生原因分为两类: (1)由于停止或运动速度极慢; (2)由于车辆反复行驶过某区域[3]. 这两类原因均会导致文献[4]中提到的不必要迂回的出现, 从而降低匹配的准确率. 例如, 在图1中, 当车辆在轨迹点
![]() |
图 1 因停留点导致的轨迹上不必要的迂回 |
文献[6]对GeoLife[7, 8]轨迹数据集中不同出行方式的轨迹进行了分析, 认为自行车与步行出行方式的轨迹数据有更高的方向变化概率与停止概率. 在真实场景中, 机动车只有当等待红绿灯或处于交通拥堵路段时才会导致轨迹上出现停留点, 但是电动自行车用户拥有更大的行驶自由, 例如可以随意在路边停车、在某较小区域内反复行驶, 从而产生更多的停留点. 因此对电动自行车轨迹上的停留点进行预先识别与处理十分必要.
特点2会显著地降低地图匹配算法的效率. 电动自行车车速较慢, 因此轨迹点更加密集, 高峰时段下轨迹点密度会进一步提高. 文献[9]将采样时间间隔在1 s至10 s之间的采样方式定义为高频采样, 而时间间隔高于2 min的采样方式定义为低频采样. 然而, 这种定义方式只考虑了时间间隔, 忽略了采样点在空间上的距离. 当交通工具速度不同时, 即使采样频率相同, 也可能导致采样点空间距离相差很大. 图2(a)显示了一段郑州电动自行车轨迹, 相邻轨迹点平均间距约为60 m、采样时间间隔约为12 s, 图2(b)显示了一段CRAWDAD数据集中旧金山出租车的轨迹[10], 相邻轨迹点平均间距约为600 m、采样时间间隔约为30 s. 尽管电动自行车的采样频率约为机动车的3倍, 但是轨迹点密度却达到了机动车的10倍. 在许多开源轨迹数据集中, 机动车轨迹上的轨迹点密度相对较低. 例如, 开源数据集T-Drive[11, 12]采集了北京市的一万余辆出租车一周内的轨迹数据, 平均采样时间间隔177 s, 轨迹点间隔623 m, 文献[13]中使用了2010–2011年间采集的北京市6万余辆出租车轨迹数据, 平均采样时间间隔70 s, 轨迹点间隔560 m.
![]() |
图 2 电动自行车与汽车轨迹点间距示例, 地图来源于谷歌地图( https://www.google.com/maps) |
鉴于大量的轨迹数据会带来极大的存储和计算开销, 许多研究人员关注于如何压缩轨迹以提升地图匹配速度[14]. 基于DP算法[15]的轨迹简化方法应用最为广泛, 其基于下述假设: 轨迹点的位置记录是交通工具在该时刻位置的真实记录. 由于GPS测量存在误差, 当交通工具位于高层建筑旁、桥梁旁时, 误差会急剧增大[5]. 基于DP的轨迹简化算法会计算出与原始轨迹形状差异最小的简化轨迹, 因此倾向于保留GPS误差较大的轨迹点[4], 进而可能导致匹配准确率下降. 例如, 图3中高层建筑旁的轨迹点GPS误差很大, 若使用简化后的轨迹进行地图匹配, 将会得到错误匹配结果. 由于卡尔曼滤波算法能够用于最优状态估计, 因此使用卡尔曼滤波算法与轨迹简化算法相结合, 能够在简化过程中不断修正轨迹点. 同时, 现有基于DP算法[15]的轨迹简化算法[16–20]依赖于人为设置的距离阈值, 只有简化过程结束后才能计算出轨迹的简化比例.
![]() |
图 3 电动自行车轨迹数据特点 |
对于电动自行车轨迹数据的特点3, 我们使用无效轨迹片段来表示轨迹上不存在于给定路网的部分. 当路网精度降低时, 电动自行车的无效轨迹片段会相应增加. 在实际的路网中, 电动自行车能够在一些机动车不能驶入的路段行驶. 例如, 在图3中, 星形轨迹点不存在于图中的路网上, 这些轨迹点组成了一个无效轨迹片段. 一些全局匹配算法使用折线间距离度量方法如弗雷歇距离来计算路网上的各条可能路线与待匹配轨迹的相似度[21]. 当轨迹上存在无效轨迹片段时, 这些算法仍会将相似度最大的路线作为匹配结果. 基于状态转移模型的地图匹配算法[14, 22–25]则会因无效轨迹片段的存在导致匹配过程中断[4], 无法对轨迹的有效部分计算出匹配路线. 上述两类算法都会因无效轨迹片段的存在而使匹配准确率降低.
为解决现有地图匹配算法因电动自行车轨迹数据的上述特点导致的匹配准确率下降、匹配效率不高的问题, 本文提出了一种可自适应路网精度的电动自行车轨迹地图匹配方法KFTS-AMM. 该方法融合了基于卡尔曼滤波算法的轨迹简化算法(KFTS), 以及分段的隐马尔可夫模型(hidden Markov model, HMM)的地图匹配算法(AMM). 本文的贡献主要集中在以下3个方面.
(1) 提出了基于时空聚类的停留点处理算法, 能够准确地识别与合并停留点, 减少轨迹上的迂回, 从而提高地图匹配算法的准确率.
(2) 提出了基于卡尔曼滤波算法的轨迹简化算法KFTS, 改进了DPhull算法, 使其不依赖人为设置的距离阈值, 仅使用轨迹简化比例作为简化过程参数. 由于轨迹简化算法倾向于保留误差较大的轨迹点[4], 因此在轨迹简化过程中加入滤波操作对轨迹点加以修正, 能够提升后续地图匹配过程的准确率.
(3) 使用分段的HMM的自适应地图匹配算法AMM, 能够在匹配的过程中不断检测出无效的轨迹片段, 同时将有效的轨迹片段匹配到给定精度的路网图上, 在不同精度的路网上均能取得良好的准确率.
本文第1节回顾了地图匹配算法、轨迹简化算法与轨迹停留点识别的相关研究工作. 第2节介绍相关的定义以及问题描述. 第3节详细介绍了本文提出的算法. 第4节展示了在真实数据集上的对比实验结果. 第5节总结了现有工作以及未来工作的重点.
1 相关工作在本节中, 我们回顾了地图匹配、轨迹简化以及轨迹停留点识别的相关研究工作.
1.1 地图匹配文献[26]提出根据轨迹匹配过程中的采样点范围将地图匹配算法分为局部/增量算法[27–29]与全局算法[21, 30]. 局部/增量算法使用轨迹的局部特征进行匹配, 计算速度快, 适用于高频率采样的轨迹, 但当路网密集度较高时, 准确率普遍较低. 全局算法使用整条轨迹进行匹配, 为轨迹寻找一条相似度最高的路线, 计算复杂度较高.
Quddus等人根据地图匹配算法所使用的技术将地图匹配算法分为以下4类[26]: 基于几何关系的匹配算法[31]、基于拓扑关系的匹配算法[32]、基于概率统计的匹配算法[33]和其他匹配算法(例如: 使用了诸如扩展卡尔曼滤波器[34]、模糊逻辑[35]、证据理论[36]和贝叶斯推理[37]等技术). 但是, 随着近年来又有许多新的方法被提出, 这一分类标准已经不再适用. Chao等人在文献[4]中提出根据核心匹配模型将地图匹配算法分为4个类别: 相似度模型[21, 27]、状态转移模型[9, 14, 23, 24, 38]、候选进化模型[39]和评分模型[40]. 同时, Chao等人还列举了3种给地图匹配带来挑战的数据质量问题, 包括不必要的迂回、异常点和路网中道路的密度, 这3种问题均会降低地图匹配算法的准确率. 在基于状态转移模型的地图匹配算法中, 基于隐马尔可夫模型的地图匹配算法[14, 22–25, 38, 41]是最流行的, 同时也被证实具有较高的准确率[42].
一些研究人员致力于提高地图匹配效率. 地图匹配效率的提升可以通过以下4种方式[14]: 使用空间索引技术[43, 44]以加快对某个轨迹点的近邻点与近邻边的查找速度、避免路网图中最短路径的重复计算[14, 45]、使用分布式与并行计算技术[22, 46–48]、压缩轨迹以减少参与计算的轨迹点.
上述地图匹配算法设计的实验所使用的数据集多为机动车轨迹数据集, 由于电动自行车轨迹上存在大量停留点、采样频率高、轨迹点密集且存在大量无效轨迹片段的特点, 已有算法不适宜直接应用在电动自行车轨迹数据上.
1.2 轨迹简化轨迹简化算法是目前最主流的轨迹数据压缩处理方法[49], 将轨迹数据视为一条连续的折线, 通过删除部分对折线形状影响较小的轨迹点, 实现简化后折线与原始折线的近似拟合, 从而完成轨迹数据的压缩. 根据轨迹简化算法是否适用于实时计算, 可以将现有轨迹简化算法划分为在线轨迹简化算法与离线轨迹简化算法[2].
离线轨迹简化算法没有输入轨迹规模的限制, 能够得到全局最优的简化结果. Bellman算法[50]是最早用于解决轨迹简化问题的算法, 利用了动态规划技术, 但是计算复杂度较高, 达到了
在线场景中, 需要实时对轨迹数据进行简化, 因此必须根据计算设备的存储与计算性能限制轨迹的输入规模. Sliding window (SW)算法[17]和opening window (OW)算法[18]都使用了能够动态调整大小的滑动窗口作为轨迹点缓冲区, 利用两个轨迹点作为起止点标记一个滑动窗口, 当窗口内某轨迹点与窗口首尾轨迹点连线的欧式距离超过设定阈值时, 将窗口的起始轨迹点向前移动. 这两种算法不同之处在于, SW算法将起始轨迹点移动到终止轨迹点的前一个轨迹点处, 而OW算法则将其移动到距离首尾连线距离最大的轨迹点处. STTrace算法[19]与SQUISH算法[20]设置了固定大小的缓冲区, 同样根据窗口内各轨迹点距首尾轨迹点连线的距离大小来决定是否将窗口向前滑动.
1.3 停留点识别停留点是指在某一段连续的时间内, 位置变化小于一定距离的一组轨迹点. 当车辆运动速度过于缓慢(例如用户推行电动自行车)、暂时停止行驶, 或在较小区域内反复行驶时, 就会产生停留点.
停留点识别方法有3类: 基于差异的方法[8, 53]、基于历史数据与额外位置信息的方法[8]和基于聚类的方法[54, 55]. 其中, 基于差异的方法需要通过设置速度、距离或者时间阈值来识别停留点, 这种方法在拥有足够先验知识的情况下才能够有较高的准确率; 基于历史数据与额外位置信息的方法通过用户历史出行数据挖掘用户的出行模式, 进而结合关键位置信息推测停留点; 基于聚类的方法使用聚类算法寻找轨迹点聚类, 但是这种方法同样依赖输入的参数, 如距离和时间阈值. 当距离阈值与时间阈值设置合理时, 基于聚类的方法在没有历史数据和位置信息的情况下仍能达到较高的准确率. 文献[8]设置了时间与距离阈值, 线性扫描轨迹以识别停留点, 然后以求均值的方式合并停留点. 然而这种识别方法只考虑了相邻位置的时空关系, 当轨迹在一段区域内反复迂回, 则无法有效识别出停留点.
DBSCAN算法[56]是一种基于密度的聚类算法, 能够识别任意形状的聚类, 且不需要预先确定聚类个数. 但是由于时空数据的时间属性和空间属性尺度不同, 因此该算法不能很好地解决时空数据的聚类问题. 为此, Birant等人提出了ST-DBSCAN算法[57], 该算法使用了空间邻域半径和时间邻域半径作为聚类内轨迹点的距离阈值, 能够很好地解决时空数据的聚类问题. 本文StayPointsProcess算法即使用ST-DBSCAN算法完成停留点的识别.
1.4 卡尔曼滤波卡尔曼滤波算法[58]是一种利用线性系统状态方程, 迭代地对系统每一时刻状态做出最优估计的算法. 许多研究人员对其进行了创新, 使卡尔曼滤波算法也可应用于非线性系统, 例如使用泰勒级数展开将非线性系统线性化的扩展卡尔曼滤波算法(extended Kalman filtering, EKF)[59, 60]和结合了无迹变换(unscented transform, UT)的无迹卡尔曼滤波算法(unscented Kalman filtering, UKF)[61]. 卡尔曼滤波算法在许多领域都有巨大的应用价值, 例如车辆状态预测[62]、动态目标跟踪[63]、传感器信息融合[64]等. 卡尔曼滤波算法能够融合多种传感器数据, 减小仅使用GPS传感器对车辆定位时的误差. 文献[34]使用车内里程表、陀螺仪与GPS传感器数据, 通过卡尔曼滤波算法构建车体的运动模型, 然后结合地图匹配算法对车辆精确定位. 文献[65]提出了将卡尔曼滤波算法与地图匹配算法融合入动态的贝叶斯网络中, 同样使用了多种传感器数据对车辆运动模型建模以达到对车辆的精确定位.
2 基本概念和问题描述在本节中, 我们给出了本文中出现的一些关键变量和符号的说明, 如表1所示. 同时, 我们给出了本文相关概念的定义以及所要解决的问题的描述.
![]() |
表 1 关键变量说明 |
定义1. 轨迹点. 轨迹点p为GPS传感器的一条记录, 代表了电动自行车的时空状态, 可以由一个三元组表示,
定义2. 轨迹. 轨迹
![]() |
图 4 电动自行车轨迹示例 |
定义3. 路网图. 路网图
定义4. 路线. 路线
定义5. 停留点. 轨迹
轨迹简化问题描述: 对于给定的原始轨迹
地图匹配问题描述: 给定一条轨迹
在本节中, 我们详细地描述了本文提出的可自适应路网精度的电动自行车轨迹地图匹配方法KFTS-AMM. 其整体的架构图如图5所示, 主要由4个部分组成, 分别是轨迹提取、停留点识别与合并、轨迹简化与地图匹配, (1)轨迹提取: 删除GPS日志中存在属性缺失、冗余和存在明显错误的记录. 对GPS日志按照电动自行车设备ID与记录时间进行排序, 通过设置时间阈值分割提取出轨迹数据; (2)停留点处理: 使用时空聚类算法识别停留点, 结合旋转卡壳算法(rotating calipers algorithm)[66]对停留点进行合并; (3)轨迹简化: 使用分段的卡尔曼滤波算法对轨迹进行修正, 然后使用基于DPhull算法[16]改进的DPhull-ratio算法进行轨迹简化; (4)地图匹配: 使用分段的隐马尔可夫模型(HMM)地图匹配算法进行地图匹配.
![]() |
图 5 KFTS-AMM算法架构图 |
本文提出的算法涵盖了电动自行车轨迹数据的清洗、轨迹提取、停留点处理、轨迹压缩简化以及地图匹配过程. 在实际应用场景中, 能够兼顾地图匹配的效率和准确率. 同时, 简化后的轨迹可以有效降低数据的存储空间.
3.1 轨迹提取 3.1.1 轨迹数据清洗本文使用的是郑州市采集的真实电动自行车行驶数据. 数据传输过程中存在部分数据丢失和部分数据传输错误的情况, 因此需要对初始采集数据进行清洗. 原始日志字段包括电动自行车ID、数据采集时间、数据产生时间、经度与纬度. 其中, 电动自行车设备ID和数据产生时间可以唯一确定一条数据. 轨迹数据清洗的过程包括以下3个步骤: (1)删除存在属性缺失的记录; (2)对电动自行车设备ID和时间戳属性均相同的重复记录, 只保留其中一条; (3)由于已知郑州市的经纬度范围为东经112.42°至东经114.14°, 北纬34.16°至北纬34.58°, 因此将经度或纬度超出这一范围的异常记录删除.
3.1.2 轨迹数据的分割交通部门使用安装在电动自行车上的边缘设备采集轨迹数据. 首先按照电动自行车设备ID对日志数据进行分割, 然后再按照数据产生时间进行排序, 通过这种方式可获取每辆电动自行车按照时间顺序排列的GPS日志序列. 为了从排序后的GPS日志中提取电动自行车的轨迹数据, 还需要按照时间间隔对其进行分割. 当电动自行车长时间静止后, GPS传感器会停止采集数据. 因此, 我们使用了固定的时间阈值来分割不同的轨迹, 我们将时间阈值设置为3 min. 若排序后的GPS日志中相邻记录的数据采集时间超过3 min时, 可以认为其属于不同轨迹.
3.2 停留点识别与合并本节详细分析了电动自行车轨迹的停留点分布特点, 并据此特点提出了电动自行车轨迹上对停留点的处理算法StayPointsProcess.
停留点是指在某一段连续的时间内, 位置变化小于一定距离的一组轨迹点. 当车辆运动速度过于缓慢(例如用户推行电动自行车)、暂时停止行驶或者在某一较小区域内反复行驶时, 就会产生停留点. 在实际场景中, 用户会在骑行电动自行车的途中停车或下车推行并保持一定时间, 此时会随之产生停留点. 图6显示了一段真实轨迹与其GPS测量记录. 当电动自行车速度接近于零时, 出现了一组停留点, 由于GPS测量值在真实位置附近呈混合高斯分布, 因此停留点的GPS记录分布在图中椭圆形虚线框范围内. 图7展示了StayPointsProcess算法的过程, 图中左侧椭圆形虚线框内为一组停留点, 右侧多边形框为停留点的凸包, 凸包直径上的点为停留点合并得到的新轨迹点, 该点位于凸包的直径上. 在图7中, 使用均值计算得到的轨迹合并点, 受停留点密度影响, 未分布在这一区域的中心位置, 若以此点作为合并点, 则可能导致合并后的轨迹不平滑.
![]() |
图 6 停留点分布示例 |
![]() |
图 7 停留点处理算法StayPointsProcess说明 |
StayPointsProcess算法首先使用ST-DBSCAN算法[57]完成停留点的识别, 然后通过旋转卡壳算法[66]求出停留点的凸包并计算凸包直径, 最后使用电动自行车的平均速度在直径上取出若干点代替停留点, 从而形成新的轨迹. 若轨迹中停留点的个数为
算法1 StayPointsProcess描述了停留点的处理过程, 其输入包括原始轨迹Tr、空间邻域半径
算法1 StayPointsProcess的具体步骤如下.
• 第1步(第1–4行): 初始化当前停留点集合、输出轨迹为空. 构造聚类模型并拟合数据, 标记每个轨迹点是否为噪声点. 计算整个轨迹的全局平均速度.
• 第2步(第6行): 判断当前点是否为噪声点, 即该点是否不属于任何聚类, 若该点为噪声点, 则执行步骤3; 若不为噪声点, 则执行步骤4.
• 第3步(第7–14行): 获取当前聚类的标签, 向后遍历轨迹点, 将属于同一聚类的轨迹点加入当前停留点集合. 然后使用旋转卡壳算法计算停留点凸包直径, 在直径上取若干个点作为合并后的轨迹点, 加入输出轨迹. 清空停留点集合.
• 第4步(第16行): 将非噪声轨迹点加入输出轨迹.
算法1. 停留点处理算法StayPointsProcess.
输入: 原始轨迹
输出: 停留点识别合并后的轨迹Tr'.
1.
2.
3.
4.
5. for
6. if
7.
8. while
9.
10.
11. end while
12.
13.
14.
15. else
16.
17. end if
18. end for
3.3 轨迹简化本节详细介绍了本文所提出的基于分段的卡尔曼滤波的轨迹简化算法KFTS. 该算法首先使用分段的卡尔曼滤波算法修正轨迹曲线, 然后使用基于DPhull算法改进的DPhull-ratio算法进行轨迹简化, 得到简化后的轨迹.
3.3.1 基于轨迹简化比例的轨迹简化算法DPhull-ratio现有的离线与在线轨迹简化算法大多使用距离阈值作为轨迹简化过程的参数[49], 只有当简化过程终止时, 才能计算出轨迹简化比例. 但是, 距离阈值的设置依赖于先验知识和对轨迹数据的初步统计结果, 若设置不够合理, 则无法得到期望的简化比例. 文献[51]使用递归的方式, 动态调整距离阈值以控制简化比例, 易造成轨迹上不同片段简化比例的不平衡. 本文在DPhull算法的基础上, 提出了基于轨迹简化比例的轨迹简化算法DPhull-ratio, 能够仅使用轨迹简化比例作为参数, 得到简化结果. 利用优先队列存储轨迹上的子轨迹段, 以达到不同片段简化比例的平衡.
DP算法的计算过程如图8所示, 设待简化的轨迹为
![]() |
图 8 DP算法示意图 |
当需要获得某一设定简化比例的简化结果, 使用DP算法(包括DPhull)需要对距离阈值参数多次尝试, 导致计算资源的浪费. 为了解决此问题, 本文提出了DPhull-ratio算法, 一次运行即可得到期望的简化比例. DPhull-ratio算法基于贪心的思想, 维护了一个优先队列, 队列中每个节点记录了一段子轨迹和距离子轨迹首尾连线垂直距离最大的轨迹点, 称其为分割点, 节点的优先级即为分割点距离首尾连线的距离. 这样设置优先级的原因在于, 轨迹段上距离首尾连线垂直距离更大的轨迹点更能代表轨迹段的轮廓. DPhull-ratio算法每次取出一个队头节点, 在分割点处对子轨迹二分, 并计算分割后两个子轨迹的分割点、优先级用于构建新的队列节点, 最后将新节点加入优先队列.
DPhull算法在递归过程中, 每次选出距子轨迹段首尾连线距离最大, 且超过距离阈值的轨迹点作为特征点, 这一选择依据与DPhull-ratio算法的优先级设置方式相似. 因此, 对于同一条轨迹, 当DPhull-ratio算法与DPhull算法得到同一简化比例的结果时, 所选取的特征点集合应具有较大相似度, 与原始未简化轨迹的误差也应该较为接近.
在图9中, 待简化轨迹为
![]() |
图 9 DPhull-ratio算法示意图 |
DPhull-ratio算法增加了维护优先队列的消耗, 设优先队列长度为
算法2. 基于压缩率的轨迹简化算法DPhull-ratio.
输入: 轨迹
输出: 简化后的轨迹
1.
2.
3.
4.
5. while
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16. end while
DPhull-ratio算法的具体步骤如下.
• 第1步(第1–4行): 初始化Reserve数组, 将首尾节点设置为特征点, 特征点个数设置为2, 初始化优先队列.
• 第2步(第5行): 判断特征点个数与总轨迹点个数比例是否达到轨迹简化比例
• 第3步(第6–9行): 取出队头节点, 将分割点设置为特征点, 并在分割点处分割轨迹.
• 第4步(第10–15行): 利用凸包分别计算步骤3得到的子轨迹段的分割点, 构造两个新节点, 并计算两个新节点的优先级, 然后加入优先队列.
3.3.2 卡尔曼滤波轨迹修正算法卡尔曼滤波算法可以为每一时刻的状态进行最优估计, 其基于两个方程, 分别是系统状态的预测方程:
$ {X_k} = A{X_{k - 1}} + {q_k} $ | (1) |
和系统状态的观测方程:
$ {Z_k} = H{X_k} + {r_k} $ | (2) |
在公式(1)中,
卡尔曼滤波算法迭代地进行预测过程与更新过程. 预测过程使用2个公式:
$ \overline {{x_k}} = A{x_{k - 1}} $ | (3) |
$ \overline {{P_k}} = A{P_{k - 1}}{A^{\rm{T}}}+ Q $ | (4) |
公式(3)中, 先验状态向量
$ {K_k} = \overline {{P_{k - 1}}} {H^{\rm{T}}}{\left( {H\overline {{P_{k - 1}}} {H^{\rm{T}}} + R} \right)^{ - 1}} $ | (5) |
$ {x_k} = \overline {{x_k}} + {K_k}\left( {{Z_k} - H\overline {{x_k}} } \right) $ | (6) |
$ {P_k} = \left( {I - {K_k}H} \right)\overline {{P_k}} $ | (7) |
公式(5)计算得到的卡尔曼增益矩阵
算法3 KF描述了对输入轨迹段进行卡尔曼滤波轨迹修正的过程, 算法的输入包括轨迹段
算法3. 卡尔曼滤波轨迹修正算法KF.
输入: 轨迹
输出: 修正后轨迹
1.
2.
3. for
4. if
5.
6. else
7.
8.
9.
10.
11.
12.
13.
14.
15.
16. end if
17. end for
状态向量X为(x, y, vx, vy)T, 其中x为电动自行车在该时刻的经度在GCS_WGS_1984 (world geodetic system 1984, GPS使用的坐标系统)投影坐标系下的横坐标, y为电动自行车在该时刻的纬度在GCS_WGS_1984投影坐标系下的纵坐标, x和y的单位为m, vx与vy分别为电动自行车在该时刻x方向与y方向上的速度分量, vx和vy单位为m/s. 由于状态向量有4个维度, 因此后验估计协方差矩阵P的维度为4×4, 初始值设置为零矩阵.
KF算法使用匀速直线运动作为电动自行车的运动模型, 因此状态转移矩阵A设置为4×4的单位矩阵. 观测值有2个, 分别是电动自行车的经度方向位置x和纬度方向位置y, 因此观测矩阵H设置为2×4, 初始值设置为
KFTS算法假设电动自行车匀速直线运动, 但是电动自行车在行驶过程中可能会在路口转弯, 这会影响卡尔曼滤波的状态预测方程的准确度. 因此KFTS算法将卡尔曼滤波算法分段进行, 即将转弯前后的轨迹段分别进行卡尔曼滤波轨迹修正.
存在轨迹段
在图10中,
![]() |
图 10 分段卡尔曼滤波示意图, 虚线框为某窗口内的轨迹段, 窗口内轨迹点数量相同 |
算法4 KFTS描述了基于分段卡尔曼滤波的轨迹简化算法. KFTS算法的具体步骤如下.
• 第1步(第1行): 初始化输出轨迹
• 第2步(第3行): 将当前轨迹点加入轨迹片段
• 第3步(第4行): 判断当前轨迹片段
• 第4步(第5–10行): 判断轨迹是否完成转弯, 若完成, 则使用算法2 KF将当前轨迹片段
• 第5步(第13行): 使用DPhull-ratio算法对修正后的轨迹进行简化.
KFTS算法首先使用卡尔曼滤波修正算法KF对轨迹进行修正, KF算法能够在线性时间内对一段轨迹滤波, 时间复杂度为
算法4. 轨迹简化算法KFTS.
输入: 轨迹
输出: 简化后轨迹
1.
2. for
3.
4. if
5. if
6.
7.
8. else
9.
10. end if
11. end if
12. end for
13.
本节介绍了地图匹配部分的内容, 首先介绍了候选点的选择和候选图的构建方法, 其次介绍了如何解决无效轨迹片段导致的候选图中断问题, 最后给出了分段的隐马尔可夫模型(HMM)的地图匹配算法AMM, 其能够自适应路网精度, 解决因路网精度不足导致的匹配准确率下降的问题. 地图匹配算法的应用场景包括离线场景和在线场景[4], 但是大部分电动自行车由于成本问题, 未安装计算设备, 因此本节中提出的地图匹配算法AMM只针对离线场景.
3.4.1 候选点选择和候选图构建我们首先给出候选图的定义, 并且对候选点与候选边进行详细说明.
定义6. 候选图. 候选图
![]() |
图 11 候选点与候选图示意图, 下方为上方轨迹的候选图 |
定义6中的候选点是对轨迹点实际位置的推测, 候选点所在的路段称为候选边, 通常取轨迹点在候选边上的投影点为候选点, 且轨迹点与候选点距离应小于固定的距离阈值, 该阈值与GPS误差范围有关. 候选点选择过程基于K近邻算法(K-nearest neighbor, KNN)实现, 可以表示为:
文献[9]认为在候选图中, 连接候选点的边
![]() |
图 12 候选点累积概率与前驱点的计算示例 |
3.4.2 无效轨迹片段导致的候选图中断
无效轨迹片段是指, 在交通工具行驶的路线中, 某一段不存在于给定路网中的行驶轨迹. 一些使用全局匹配的地图匹配算法, 例如使用弗雷歇距离度量轨迹与路线相似度的算法[21], 当存在无效轨迹片段的轨迹时, 仍会计算出一条路线, 但是这明显与实际情况不符. 使用基于HMM的地图匹配算法[14, 23–25, 37, 38]时, 虽然会避免将无效轨迹片段匹配到路网上, 但是会引起候选图中断, 从而导致匹配过程中断, 最终部分有效轨迹片段也无法成功匹配. 在图13中, 轨迹片段
![]() |
图 13 候选图中断 |
3.4.3 分段的隐马尔可夫模型的地图匹配算法
无效轨迹片段可导致候选图中断, 并且会随着路网精度的降低而不断增多, 降低匹配准确率. 本文提出了分段的HMM的匹配算法AMM, 使用了分段匹配机制, 通过候选图区分有效与无效轨迹片段, 对连续候选图匹配路线.
算法5给出了自适应路网精度的地图匹配算法AMM的详细描述, 输入包括轨迹Tr, 路网图
• 第1步(第2行): 使用KNN算法计算当前轨迹点
• 第2步(第3行): 判断当前轨迹点的候选点集合是否为空, 若不为空, 执行第3步; 若为空, 执行第6步.
• 第3步(第4行): 判断当前候选图是否为空, 若不为空, 执行第4步; 若为空, 执行第5步.
• 第4步(第5–14行): 计算候选图上一层节点与候选图当前层节点间有向边的权值、当前层候选点的累积概率和前驱节点.
• 第5步(第16–19行): 当前层候选点为候选图的第一层候选点, 无前驱节点, 计算候选点的累积概率.
• 第6步(第22–24行): 为当前候选图匹配路线, 将所得路线加入路线集合
算法5. 地图匹配算法AMM.
输入: 轨迹
输出: 路线集合
1. for
2.
3. if
4. if
5.
6. foreach
7.
8. foreach
9.
10.
11. end foreach
12.
13.
14. end foreach
15. else
16. foreach
17.
18.
19. end foreach
20. end if
21. else
22.
23.
24.
25. end if
26. end for
算法5第6步中使用的PathInference算法为路线推断算法, PathInference算法的输入为候选图
算法6. 路线推断算法PathInference.
输入: 候选图
输出: 路线R.
1.
2. for
3.
4.
5. end for
6.
图14为路线推断示例, 图中箭头由候选点指向其前驱节点. 首先从轨迹点
![]() |
图 14 路线推断示例 |
3.4.4 地图匹配算法AMM复杂度分析
设输入轨迹的轨迹点个数为
本节介绍了实验所使用的路网数据和轨迹数据, 给出了实验中地图匹配准确率与地图匹配速度的定义. 同时, 本节设计了8组试验, 其中, 实验1用于测试基于简化比例的轨迹简化算法DPhull-ratio的误差; 实验2用于验证轨迹简化算法KFTS能否有效修正轨迹; 实验3用于测试不同超参数对地图匹配算法AMM的匹配准确率的影响; 实验4使用多个现有地图匹配算法与本文提出的地图匹配算法AMM进行匹配准确率比较; 实验5用于测试本文提出的轨迹简化算法KFTS对地图匹配准确率的影响; 实验6用于验证经过KFTS算法简化后的轨迹数据能否提高地图匹配速度; 实验7用于测试停留点处理算法StayPointsProcess对地图匹配准确率的影响; 实验8对3个真实电动自行车轨迹案例进行了分析. 实验运行在Windows 10操作系统计算机上, 计算机处理器为Intel Core i5-4590 CPU, 主频为3.30 GHz, 内存(RAM)为14 GB.
4.1 数据介绍 4.1.1 路网数据实验使用了郑州市的开放街道地图(OpenStreetMap, OSM. 来源: https://www.openstreetmap.org)的开源路网数据集, 其统计信息如表2所示, 包含了OSM采集到的所有级别的道路, 包含了机动车道路、非机动车道路以及人行小路. OSM为各类道路设置了不同的标签, 表3展示了各类标签与国内道路类型的大致对应情况以及道路数量占比. 路网图拓扑结构如图15所示.
![]() |
表 2 郑州路网数据信息 |
![]() |
表 3 各类道路信息与数量占比 |
![]() |
图 15 郑州市路网图 |
4.1.2 轨迹数据
原始GPS日志共有2687214282条记录, 删除存在缺失值、冗余或经纬度有明显错误的记录后, 剩余2515378612条记录, 经提取得到10651448条轨迹, 涉及1349641辆电动自行车, 覆盖的时间范围为2019年9月16日至2019年9月30日, 传感器设置采样时间间隔为10 s.
提取的轨迹的长度分布如图16(a)所示, 约75%的轨迹长度分布在1–4 km, 这说明使用大部分用户倾向于在中距离路程中使用电动自行车. 轨迹上相邻点的平均距离频率分布如图16(b)所示, 近半数的轨迹点间距分布在50–100 m, 由此可以看出约半数用户骑行电动自行车的速度在18–36 km/h之间. 本文选取提出轨迹中的1000条轨迹作为轨迹子集, 对其进行人工标记, 完成后续实验.
![]() |
图 16 提取轨迹的统计信息 |
4.2 地图匹配准确率以及速度评价标准
本文实验使用的匹配准确率定义如公式(8)所示:
$ \mathop \sum \limits_i^{\left| {GT} \right|} compare\left( {GT\left[ i \right], MR\left[ i \right]} \right)/\left| {GT} \right| $ | (8) |
其中,
实验1用于验证本文提出的DPhull-ratio算法能否在得到期望简化比例的前提下, 将简化后轨迹与原始轨迹的误差控制在一定范围内. 我们使用了最大垂直欧式距离
设原始轨迹为Tr:
$ PE{D_{\max}} = \mathop {\max }\limits_{i \in \left[ {1, n} \right]} dist\left( {{p_i}, \overline {{p_{i\_prev}} \to {p_{i\_next}}} } \right)\times\left( {1 - {{Reserve}}\left[ i \right]} \right) $ | (9) |
其中,
我们对DPhull-ratio算法与DPhull算法在轨迹集合简化比例相同时的
![]() |
图 17 实验1: DPhull-ratio算法和DPhull算法的
|
DPhull-ratio算法与DPhull算法选取的特征点集合的Jaccard相似系数随简化比例的变化如图18所示, 从结果可以看出: (1)两种算法选取的特征点集合的Jaccard相似系数较高, 简化比例为10%时相似系数也有近80%; (2) Jaccard相似系数随简化比例增大而不断提高, 这与图17中两种算法得到的
![]() |
图 18 DPhull-ratio和DPhull所选取的特征点集合的Jaccard相似系数随轨迹集合平均简化比例的变化 |
4.4 实验2: 轨迹简化算法KFTS效果评价
实验2用于验证本文提出的轨迹简化算法KFTS是否可以有效地修正轨迹点和平滑轨迹, 分别测试了KFTS算法与DPhull-ratio算法在轨迹简化比例
实验结果如表4所示, 从中可以看出: (1)在使用不同
![]() |
表 4 实验2: KFTS轨迹简化算法评估结果 |
总之, 实验2结果证明, 本文提出的轨迹简化算法KFTS能够在简化轨迹的同时, 较好地修正轨迹, 有效解决了基于DP算法[15]的轨迹简化算法得到的简化后的轨迹误差较大的问题.
4.5 实验3: 地图匹配算法AMM超参数选择本文提出的地图匹配算法使用的超参数有2个, 分别为轨迹点邻域半径r和候选点个数k. 本文设计了实验3用于测试不同超参数对于地图匹配算法AMM匹配准确率的影响. 实验3结果如图19所示.
![]() |
图 19 实验3: 超参数对于匹配准确率的影响 |
从实验结果中可以观察到, 随着邻域半径r的扩大与候选点个数k的增加, 匹配准确率不断提高. 当邻域半径r选择50 m、候选点个数k选择4时, 匹配准确率基本达到最高. 继续扩大邻域半径r与增加候选点个数k所带来匹配准确率的提高很小, 反而会降低算法的匹配效率. 文献[5]指出, 民用GPS传感器的测量误差在3 m之内, 且在城市路网中, 单方向中可供电动自行车行驶的平行路段最多不会超过2条, 因此邻域半径r选择50 m、候选点个数选择4时, 不会遗漏候选点. 为了达到最佳实验效果, 后续进行的实验所使用的邻域半径r选择50 m、候选点个数选择4.
总之, 实验3结果证明, AMM算法的两个超参数轨迹点邻域半径r与候选点个数k, 分别在选择4与50 m时, 可以兼顾准确率与效率, 达到最优效果.
4.6 实验4: 地图匹配算法匹配准确率测试OSM对不同级别的道路设置了相应的标签. 在表5中, 我们给出了几种常见道路的标签, 道路的标签代表了道路的级别. 表5中的道路的级别从motorway到residential依次降低. 一般情况下道路的精细度较低时, 包含的道路级别也相对较高, 例如只保留城市路网中的主干道路以组成路网的骨架结构. 本文通过选择不同道路标签来模拟不同精度的路网, 其中: (1)高精度路网包含motorway、trunk、primary、secondary、tertiary、unclassified、service与residential等8种道路标签的道路; (2)中精度路网包含motorway、trunk、primary、secondary、tertiary、unclassified与service等7种道路标签的道路, 路网的密集程度相对于高精度路网来说有所降低; (3)低精度路网包含motorway、trunk、primary、secondary、tertiary与unclassified这6种道路标签的道路, 路网的密集程度最低.
![]() |
表 5 OSM中道路标签说明 |
图20展示了郑州市东经113.7756°至东经113.8254°, 北纬34.7741°至北纬34.8134°范围内的不同精度的路网图, 道路密度由高精度路网图到低精度路网图不断降低.
![]() |
图 20 不同精度路网图示例 |
实验4选取5种已有地图匹配算法作为对比算法, 分别是FMM算法[14]、ST-Matching算法[9]、Segmented-MM[29]、IVMM算法[24]以及AIVMM算法[25]. 其中FMM算法、ST-Matching算法、IVMM算法与AIVMM算法均为基于隐马尔可夫模型的地图匹配算法, Segmented-MM算法属于局部/增量算法. IVMM算法与AIVMM算法在HMM模型的基础上加入了互动投票机制, 利用了候选点间的相关性. AIVMM算法在IVMM的基础上加入了两个特定情况的约束, 以减少匹配路线的迂回. FMM算法为了解决匹配轨迹存在反向移动的问题, 设计了惩罚机制, 使用惩罚因子(
实验4结果如图21所示, 从中可以看出: (1)随着路网精度的下降, 本文提出的AMM算法与其他方法的匹配准确率都在下降, 但是其他方法的匹配准确率下降更为明显, 说明了本文提出的AMM算法对不同精度路网的适应度更强. 当路网精度下降时, 电动自行车轨迹数据中无法匹配到给定路网的无效轨迹增多, 造成基于HMM模型的算法匹配过程中断. Segmented-MM算法同样无法对无效轨迹进行匹配. 因此对比方法的匹配准确率下降较快; (2) AMM算法匹配准确率也会随路网精度降低而下降, 原因在于当路网精度不断降低、无效轨迹不断增多时, 候选图中连续层数过少, 导致隐马尔可夫模型不够精确, 因此准确率降低; (3)由于输入轨迹已进行了停留点处理, 因此Segmented-MM针对高频率采样下, 路口处轨迹匹配进行的优化对准确率的提升不明显; (4) FMM-1、FMM-2与FMM-3在相同精度的路网下, 匹配准确率相差不大, 原因在于本文所使用的电动自行车轨迹数据采样频率较高, 相邻轨迹点距离较近, 而文献[14]提到的反向移动问题多出现在相邻轨迹点距离较远的情况下.
![]() |
图 21 实验4: AMM与对比方法在不同精度路网上的匹配准确率比较 |
总之, 实验4结果表明, 本文提出的地图匹配算法AMM相较于其他对比方法在不同精度路网上的匹配准确率更高, 同时随着路网精度的下降, 匹配准确率的下降幅度更小, 表现出更强的适应度, 有效解决了因路网精度不足而产生的无效轨迹片段使地图匹配算法准确率降低的问题.
4.7 实验5: 轨迹简化算法KFTS对地图匹配算法准确率的影响本文提出的轨迹简化算法KFTS算法包含了卡尔曼滤波轨迹修正与轨迹简化两个步骤. 实验5用于验证KFTS算法中的两个关键步骤对地图匹配算法准确率的影响. 首先, 为了验证卡尔曼滤波轨迹修正步骤对于地图匹配准确率的影响, 我们在实验中将KFTS-AMM算法与其变体DPhull-ratio-AMM进行了对比, KFTS-AMM算法在轨迹简化前加入了卡尔曼滤波轨迹修正步骤, 而DPhull-ratio-AMM则没有轨迹修正步骤. 其次, 为了验证轨迹简化步骤对于地图匹配准确率的影响, 我们评估了KFTS-AMM与DPhull-ratio-AMM在不同轨迹简化比例下的地图匹配准确率, 其中轨迹简化比例
实验5结果如后文图22所示, 从中可以看出: (1)在轨迹简化比例
![]() |
图 22 实验5: 轨迹简化算法KFTS中的关键步骤对地图匹配算法准确率的影响 |
综上, 实验5结果证明本文提出的轨迹简化算法KFTS中的卡尔曼滤波轨迹修正步骤能够在一定程度上提高地图匹配的准确率, 同时在对轨迹进行适度的简化, 能够在不降低准确率的前提下提升地图匹配效率.
4.8 实验6: KFTS算法对地图匹配效率的影响实验6用于测试经轨迹简化算法KFTS处理后的轨迹能否给地图匹配算法带来效率上的提升. 实验6使用KFTS算法在不同轨迹简化比例
![]() |
图 23 实验6: KFTS轨迹简化算法对地图匹配算法效率的影响 |
4.9 实验7: 停留点处理算法对匹配准确率的影响
实验7用于评估本文提出的停留点处理算法StayPointsProcess对地图匹配算法准确率的影响. 实验7分别测试了在不同精度路网上, AMM算法与未使用StayPointsProcess算法的AMM算法的地图匹配准确率. 实验7结果如后文图24所示, 在高、中、低3种精度的路网中, 相比于未使用停留点处理的AMM算法, 包含了停留处理过程的AMM算法均能取得更高的地图匹配准确率. 实验7结果表明, 本文提出的停留点处理算法StayPointsProcess可以有效识别与合并停留点, 从而解决了电动自行车轨迹数据中存在大量停留点所导致的地图匹配准确率下降的问题[4], 能够有效提升电动自称车轨迹地图匹配算法的性能.
![]() |
图 24 实验7: 停留点处理算法StayPointsProcess对地图匹配准确率的影响 |
4.10 实验8: 案例分析 4.10.1 案例1: 存在停留点轨迹的匹配
图25中白色网格为路网图, 红色点为电动自行车轨迹. 图25(a)为一段包含停留点的电动自行车轨迹, 椭圆虚线框内为一组停留点. 当未对停留点处理时, 使用AMM算法的匹配结果如图25(c)所示. 由于AMM算法设置了候选点间最短路径的距离上限, 虽然避免了不必要的迂回[4], 但是匹配过程则因停留点的候选点间不存在最短路径而中断. 使用StayPointsProcess算法对停留点识别与合并后, AMM算法匹配结果如图25(d)所示, 与正确结果一致.
![]() |
图 25 案例1: 存在停留点的轨迹 |
4.10.2 案例2: 存在GPS误差较大轨迹点的轨迹的匹配
图26中白色网格为路网图, 红色点为电动自行车轨迹. 图26(a)中圆形虚线圆框内的轨迹点GPS误差较大. 图26(c)与图26(d)中的虚折线分别为使用DPhull-ratio算法和KFTS算法简化后的轨迹, 红色折线分别为匹配后的路线. 图26(c)中, 由于误差较大的轨迹点得到了保留, 导致匹配路线错误. KFTS-AMM对GPS误差较大的轨迹点进行了修正, 因此得到了正确匹配结果.
![]() |
图 26 案例2: 存在GPS误差较大轨迹点的轨迹 |
4.10.3 案例3: 存在无效轨迹片段的轨迹的匹配
图27中白色网格为路网图, 红色点为电动自行车轨迹. 图27(a)中椭圆虚线框内为无效轨迹片段. 图27(c)中为FMM算法[14]的匹配结果, 由于无效轨迹片段存在, 导致匹配过程中断, 因此只有部分轨迹得到了正确的匹配结果. KFTS-AMM算法的匹配结果如图27(d)所示, 与正确结果一致.
![]() |
图 27 案例3: 存在无效轨迹片段轨迹 |
5 总结与展望
本文提出了一种可自适应路网精度的电动自行车轨迹地图匹配方法KFTS-AMM. 该方法融合了基于卡尔曼滤波算法的轨迹简化算法(KFTS), 以及分段的隐马尔可夫模型的地图匹配算法(AMM). 本文提出的算法解决了现有地图匹配算法因电动自行车轨迹数据存在停留点、采样频率高、轨迹密度大且受限于路网精度较低而存在无效轨迹片段等特点导致的匹配准确率下降和匹配效率不高的问题. 基于真实的郑州市电动自行车轨迹数据的实验结果证明, 本文提出的算法与现有方法相比, 在不同精度路网图上的适应度更强, 匹配准确率更高, 且简化后的轨迹数据能够显著提升匹配速度. 未来的研究工作包括以下几个部分: (1) 解决地图匹配在隧道、高架桥与高楼附近等多路径效应明显的区域内地图匹配准确率较低的问题; (2) 尝试利用更多传感器数据进行数据融合, 使卡尔曼滤波模型更精确, 进一步提高轨迹修正效果; (3) 本文所提方法不适用于海量轨迹数据处理场景, 在未来的工作中尝试结合大数据与并行化技术, 提升算法的计算效率; (4) 地图匹配过程中获取的无效轨迹片段能够用于更新路网数据, 完整的轨迹对于深入挖掘用户出行规律十分重要, 我们将会在未来的工作中对无效轨迹片段深入地分析与挖掘.
[1] |
chyxx.com. Analysis on the development trend of China’s electric bicycle production, electric bicycle ownership and output of provinces and cities in 2018. 2019 (in Chinese). http://www.chyxx.com/industry/201911/801292.html
|
[2] |
Gao Q, Zhang FL, Wang RJ, Zhou F. Trajectory big data: A review of key technologies in data processing. Ruan Jian Xue Bao/Journal of Software, 2017, 28(4): 959–992 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5143.htm
|
[3] |
Zheng Y. Trajectory data mining: An overview. ACM Trans. on Intelligent Systems and Technology, 2015, 6(3): 1-41.
[doi:10.1145/2743025] |
[4] |
Chao PF, Xu YH, Hua W, Zhou XF. A survey on map-matching algorithms. In: Borovica-Gajic R, Qi JZ, Wang WQ, eds. Proc. of the 2020 Australasian Database Conf. Cham: Springer, 2020, 12008: 121-133.
[doi:10.1007/978-3-030-39469-1_10] |
[5] |
Liu JY. Accuracy, errors and bias of GNSS navigation/positioning—Errors in GNSS navigation/positioning (1). Digital Communication World, 2018(12), 1-2(in Chinese with English abstract).
[doi:10.3969/J.ISSN.1672-7274.2018.12.001] |
[6] |
Zheng Y, Li QN, Chen YK, Xie X, Ma WY. Understanding mobility based on GPS data. In: Proc. of the 10th Int’l Conf. on Ubiquitous Computing. New York: Association for Computing Machinery, 2008. 312–321.
|
[7] |
Zheng Y, Xie X, Ma WY. GeoLife: A collaborative social networking service among user, location and trajectory. IEEE Data Engineering Bulletin, 2010, 33(2): 32-39.
|
[8] |
Zheng Y, Zhang LZ, Xie X, Ma WY. Mining interesting locations and travel sequences from GPS trajectories. In: Proc. of the 18th Int’l Conf. on World Wide Web. New York: Association for Computing Machinery, 2009. 791–800.
|
[9] |
Lou Y, Zhang CY, Zheng Y, Xie X, Wang W, Huang Y. Map-matching for low-sampling-rate GPS trajectories. In: Proc. of the 17th ACM SIGSPATIAL Int’l Conf. on Advances in Geographic Information Systems. New York: Association for Computing Machinery, 2009. 352–361.
|
[10] |
Piorkowski M, Sarafijanovic-Djukic N, Grossglauser M. CRAWDAD dataset epfl/mobility (v. 2009-02-24), traceset: cab. 2009. https://crawdad.org/epfl/mobility/20090224/cab
|
[11] |
Yuan J, Zheng Y, Xie X, Sun GZ. Driving with knowledge from the physical world. In: Proc. of the 17th ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining. New York: Association for Computing Machinery, 2011. 316–324.
|
[12] |
Yuan J, Zheng Y, Zhang CY, Xie WL, Xie X, Sun GZ, Huang Y. T-drive: Driving directions based on taxi trajectories. In: Proc. of the 18th SIGSPATIAL Int’l Conf. on Advances in Geographic Information Systems. New York: Association for Computing Machinery, 2010. 99–108.
|
[13] |
Yuan J, Zheng Y, Xie X. Discovering regions of different functions in a city using human mobility and POIs. In: Proc. of the 18th ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining. New York: Association for Computing Machinery, 2012. 186–194.
|
[14] |
Yang C, Gidófalvi G. Fast map matching, an algorithm integrating hidden Markov model with precomputation. Int’l Journal of Geographical Information Science, 2018, 32(3): 547-570.
[doi:10.1080/13658816.2017.1400548] |
[15] |
Douglas DH, Peucker TK. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. Cartographica: The Int’l Journal for Geographic Information and Geovisualization, 1973, 10(2): 112-122.
[doi:10.3138/FM57-6770-U75U-7727] |
[16] |
Hershberger JE, Snoeyink J. Speeding up the douglas-peucker line-simplification algorithm. In: Proc. of the 5th Int’l Symp. on Spatial Data Handling. Vancouver: University of British Columbia, Department of Computer Science, 1992. 134–143.
|
[17] |
Keogh E, Chu S, Hart D, Pazzani M. An online algorithm for segmenting time series. In: Proc. of the 2001 IEEE Int’l Conf. on Data Mining. San Jose: IEEE, 2001. 289–296.
|
[18] |
Meratnia N, De By RA. Spatiotemporal compression techniques for moving point objects. In: Proc. of the 9th Int’l Conf. on Extending Database Technology. Heraklion: Springer, 2004. 765–782.
|
[19] |
Potamias M, Patroumpas K, Sellis T. Sampling trajectory streams with spatiotemporal criteria. In: Proc. of the 18th Int’l Conf. on Scientific and Statistical Database Management. Vienna: IEEE, 2006. 275–284.
|
[20] |
Muckell J, Hwang JH, Patil V, Lawson CT, Ping F, Ravi SS. SQUISH: An online approach for GPS trajectory compression. In: Proc. of the 2nd Int’l Conf. on Computing for Geospatial Research & Applications. New York: Association for Computing Machinery, 2011. 1–8.
|
[21] |
Wei H, Wang Y, Forman G, Zhu Y. Map matching by fréchet distance and global weight optimization. Technical Report, Department of Computer Science and Engineering, Citeseer, 2013. 19.
|
[22] |
Lu J, Wang P. MAP matching with hidden Markov model on MapReduce. Computer Applications and Software, 2018, 35(2): 7-15, 73(in Chinese with English abstract).
[doi:10.3969/j.issn.1000-386x.2018.02.002] |
[23] |
Newson P, Krumm J. Hidden Markov map matching through noise and sparseness. In: Proc. of the 17th ACM SIGSPATIAL Int’l Conf. on Advances in Geographic Information Systems. New York: ACM, 2009. 336–343.
|
[24] |
Yuan J, Zheng Y, Zhang CY, Xie X, Sun GZ. An interactive-voting based map matching algorithm. In: Proc. of the 11th Int’l Conf. on Mobile Data Management. Kansas City: IEEE, 2010. 43–52.
|
[25] |
Zhang YY, He YL. An advanced interactive-voting based map matching algorithm for low-sampling-rate GPS data. In: Proc. of the 15th IEEE Int’l Conf. on Networking, Sensing and Control. Zhuhai: IEEE, 2018. 1–7.
|
[26] |
Quddus MA, Ochieng WY, Noland RB. Current map-matching algorithms for transport applications: State-of-the art and future research directions. Transportation Research Part C: Emerging Technologies, 2007, 15(5): 312-328.
[doi:10.1016/j.trc.2007.05.002] |
[27] |
Chawathe SS. Segment-based map matching. In: Proc. of the 2007 IEEE Intelligent Vehicles Symp. Istanbul: IEEE, 2007. 1190–1197.
|
[28] |
Wenk C, Salas R, Pfoser D. Addressing the need for map-matching speed: Localizing global curve-matching algorithms. In: Proc. of the 18th Int’l Conf. on Scientific and Statistical Database Management. Vienna: IEEE, 2006. 379–388.
|
[29] |
Liu MS, Zhang L, Ge JL, Long Y, Che WT. Map matching for urban high-sampling-frequency GPS trajectories. ISPRS Int’l Journal of Geo-Information, 2020, 9(1): 31.
[doi:10.3390/ijgi9010031] |
[30] |
Zheng K, Zheng Y, Xie X, Zhou XF. Reducing uncertainty of low-sampling-rate trajectories. In: Proc. of the 28th IEEE Int’l Conf. on Data Engineering. Arlington: IEEE, 2012. 1144–1155.
|
[31] |
Taylor G, Blewitt G, Steup D, Corbett S, Car A. Road reduction filtering for GPS-GIS navigation. Trans. in GIS, 2001, 5(3): 193-207.
[doi:10.1111/1467-9671.00077] |
[32] |
Yu M. Improved positioning of land vehicle in its using digital map and other accessory information [Ph.D. Thesis]. Hong Kong: Hong Kong Polytechnic University, 2006.
|
[33] |
Gerlach K, Rahmig C. Multi-hypothesis based map-matching algorithm for precise train positioning. In: Proc. of the 12th Int’l Conf. on Information Fusion. Seattle: IEEE, 2009. 1363–1369.
|
[34] |
Obradovic D, Lenz H, Schupfner M. Fusion of map and sensor data in a modern car navigation system. Journal of VLSI Signal Processing Systems for Signal, Image and Video Technology, 2006, 45(1): 111-122.
[doi:10.1007/s11265-006-9775-4] |
[35] |
Shang JB, Zheng Y, Tong WZ, Chang E, Yu Y. Inferring gas consumption and pollution emission of vehicles throughout a city. In: Proc. of the 20th ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining. New York: Association for Computing Machinery, 2014. 1027–1036.
|
[36] |
Wang K, Li P, Jin Y, Liu Y. Dual-mode map matching algorithm based on three evidences DS theory. Computer Engineering, 2018, 44(5): 316-321(in Chinese with English abstract).
[doi:10.19678/j.issn.1000-3428.0046583] |
[37] |
Han JY, Chen KJ, Liu XP. Map-matching based on ensemble learning of naïve Bayesian models. Computer Engineering and Design, 2014, 35(3): 875-879(in Chinese with English abstract).
[doi:10.3969/j.issn.1000-7024.2014.03.026] |
[38] |
Yan SL, Yu J, Zhou HP. IIVMM: An improved interactive voting-based map matching algorithm for low-sampling-rate GPS trajectories. Computer Science, 2019, 46(9): 325-332(in Chinese with English abstract).
[doi:10.11896/j.issn.1002-137X.2019.09.050] |
[39] |
Taguchi S, Koide S, Yoshimura T. Online map matching with route prediction. IEEE Trans. on Intelligent Transportation Systems, 2018, 20(1): 338-347.
[doi:10.1109/TITS.2018.2812147] |
[40] |
Sharath MN, Velaga NR, Quddus MA. A dynamic two-dimensional (D2D) weight-based map-matching algorithm. Transportation Research Part C: Emerging Technologies, 2019, 98: 409-432.
[doi:10.1016/j.trc.2018.12.009] |
[41] |
Szwed P, Pekala K. An incremental map-matching algorithm based on hidden Markov model. In: Proc. of the 13th Int’l Conf. on Artificial Intelligence and Soft Computing. Zakopane: Springer, 2014. 579–590.
|
[42] |
Gao WC, Li GL, Ta N. Survey of map matching algorithms. Ruan Jian Xue Bao/Journal of Software, 2018, 29(2): 225–250 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5424.htm
|
[43] |
Chen BY, Yuan H, Li QQ, Lam WHK, Shaw SL, Yan K. Map-matching algorithm for large-scale low-frequency floating car data. Int’l Journal of Geographical Information Science, 2014, 28(1): 22-38.
[doi:10.1080/13658816.2013.816427] |
[44] |
Zhao DB, Liu XM, Guo L. Real time map matching algorithm of floating car in support of spatial grid index. Journal of Computer-aided Design & Computer Graphics, 2014, 26(9): 1550-1556(in Chinese with English abstract).
|
[45] |
Zeng Z, Zhang T, Zou HX, Wu ZH. Acceleration of map matching for floating car data by exploiting travelling velocity. In: Proc. of the 18th IEEE Int’l Conf. on Intelligent Transportation Systems. Las Palmas: IEEE, 2015. 2895–2899.
|
[46] |
Zeidan A, Lagerspetz E, Zhao K, Nurmi P, Tarkoma S, Vo HT. Geomatch: Efficient large-scale map matching on Apache spark. ACM/IMS Trans. on Data Science, 2020, 1(3): 21.
[doi:10.1145/3402904] |
[47] |
Almeida AMR, Lima MIV, Macedo JAF, Machado JC. DMM: A distributed map-matching algorithm using the mapreduce paradigm. In: Proc. of the 19th IEEE Int’l Conf. on Intelligent Transportation Systems. Rio de Janeiro: IEEE, 2016. 1706–1711.
|
[48] |
Peixoto DA, Nguyen HQV, Zheng BL, Zhou XF. A framework for parallel map-matching at scale using spark. Distributed and Parallel Databases, 2019, 37(4): 697-720.
[doi:10.1007/s10619-018-7254-0] |
[49] |
Zhang DX, Ding MT, Yang DY, Liu Y, Fan J, Shen HT. Trajectory simplification: An experimental study and quality analysis. Proc. of the VLDB Endowment, 2018, 11(9): 934-946.
[doi:10.14778/3213880.3213885] |
[50] |
Bellman R. On the approximation of curves by line segments using dynamic programming. Communications of the ACM, 1961, 4(6): 284.
[doi:10.1145/366573.366611] |
[51] |
Long H, Zhang SK, Sun PH. Trajectory compression algorithm with adaptive parameter. Application Research of Computers, 2018, 35(3): 685-688, 716(in Chinese with English abstract).
[doi:10.3969/j.issn.1001-3695.2018.03.010] |
[52] |
Zhang T, Yang ZY. Segmentation-based trajectory simplification algorithm. Application Research of Computers, 2019, 36(7): 2044-2048(in Chinese with English abstract).
[doi:10.19734/j.issn.1001-3695.2018.02.0090] |
[53] |
Yan ZX, Parent C, Spaccapietra S, Chakraborty D. A hybrid model and computing platform for spatio-semantic trajectories. In: Proc. of the 7th Extended Semantic Web Conf. Heraklion: Springer, 2010. 60–75.
|
[54] |
Zimmermann M, Kirste T, Spiliopoulou M. Finding stops in error-prone trajectories of moving objects with time-based clustering. In: Proc. of the 2009 Int’l Conf. on Intelligent Interactive Assistance and Mobile Multimedia Computing. Rostock: Springer, 2009. 275–286.
|
[55] |
Palma AT, Bogorny V, Kuijpers B, Alvares LO. A clustering-based approach for discovering interesting places in trajectories. In: Proc. of the 2008 ACM Symp. on Applied Computing. New York: Association for Computing Machinery, 2008. 863–868.
|
[56] |
Ester M, Kriegel HP, Sander J, Xu XW. A density-based algorithm for discovering clusters in large spatial databases with noise. In: Proc. of the 2nd Int’l Conf. on Knowledge Discovery and Data Mining. Portland: AAAI Press, 1996. 226–231.
|
[57] |
Birant D, Kut A. ST-DBSCAN: An algorithm for clustering spatial-temporal data. Data & Knowledge Engineering, 2007, 60(1): 208-221.
[doi:10.1016/j.datak.2006.01.013] |
[58] |
Kalman RE. A new approach to linear filtering and prediction problems. Journal of Basic Engineering, 1960, 82(1): 35-45.
[doi:10.1115/1.3662552] |
[59] |
Sunahara Y. An approximate method of state estimation for nonlinear dynamical systems. Journal of Basic Engineering, 1970, 92(2): 385-393.
[doi:10.1115/1.3425006] |
[60] |
Bucy RS, Senne KD. Digital synthesis of non-linear filters. Automatica, 1971, 7(3): 287-298.
[doi:10.1016/0005-1098(71)90121-X] |
[61] |
Julier SJ, Uhlmann JK. Unscented filtering and nonlinear estimation. Proc. of the IEEE, 2004, 92(3): 401-422.
[doi:10.1109/JPROC.2003.823141] |
[62] |
Feng AQ, Qian LP, Ouyang JY, Wu Y. Vehicular networking enabled vehicle state prediction with two-level quantized adaptive Kalman filtering. Computer Science, 2020, 47(5): 230-235(in Chinese with English abstract).
[doi:10.11896/jsjkx.190300155] |
[63] |
Wang Y, Deng QX, Liu GH, Yin B. Dynamic target tracking and predicting algorithm based on combination of motion equation and Kalman filter. Computer Science, 2015, 42(12): 76-81(in Chinese with English abstract).
[doi:10.11896/j.issn.1002-137X.2015.12.017] |
[64] |
Wang ZH, Liang DT, Liang D, Zhang JC, Liu HJ. A SLAM method based on inertial/magnetic sensors and monocular vision fusion. Robot, 2018, 40(6): 933-941(in Chinese with English abstract).
[doi:10.13973/j.cnki.robot.170683] |
[65] |
Smaili C, El Najjar MEB, Charpillet F. A hybrid Bayesian framework for map matching: Formulation using switching Kalman filter. Journal of Intelligent & Robotic Systems, 2014, 74(3): 725-743.
[doi:10.1007/s10846-013-9844-4] |
[66] |
Preparata FP, Ian Shamos M. Computational Geometry: An Introduction. New York: Springer, 1985.
|
[1] |
产业信息网. 2018年中国电动自行车产量、电动自行车保有量、各省市产量发展趋势分析. 2019. http://www.chyxx.com/industry/201911/801292.html
|
[2] |
高强, 张凤荔, 王瑞锦, 周帆. 轨迹大数据: 数据处理关键技术研究综述. 软件学报, 2017, 28(4): 959–992. http://www.jos.org.cn/1000-9825/5143.htm
|
[5] |
刘基余. GNSS卫星导航定位的精度、误差与偏差——GNSS导航定位误差之一. 数字通信世界, 2018(12), 1-2.
[doi:10.3969/J.ISSN.1672-7274.2018.12.001] |
[22] |
陆健, 王鹏. 隐马尔可夫模型路网匹配的MapReduce实现. 计算机应用与软件, 2018, 35(2): 7-15, 73.
[doi:10.3969/j.issn.1000-386x.2018.02.002] |
[36] |
王科, 李鹏, 金瑜, 刘宇. 基于三证据DS理论的双模式地图匹配算法. 计算机工程, 2018, 44(5): 316-321.
[doi:10.19678/j.issn.1000-3428.0046583] |
[37] |
韩京宇, 陈可佳, 刘茜萍. 基于集成朴素贝叶斯模型的在线地图匹配方法. 计算机工程与设计, 2014, 35(3): 875-879.
[doi:10.3969/j.issn.1000-7024.2014.03.026] |
[38] |
严盛隆, 于娟, 周后盘. IIVMM: 针对低频GPS轨迹的改进交互式投票匹配算法. 计算机科学, 2019, 46(9): 325-332.
[doi:10.11896/j.issn.1002-137X.2019.09.050] |
[42] |
高文超, 李国良, 塔娜. 路网匹配算法综述. 软件学报, 2018, 29(2): 225–250. http://www.jos.org.cn/1000-9825/5424.htm
|
[44] |
赵东保, 刘雪梅, 郭黎. 网格索引支持下的大规模浮动车实时地图匹配方法. 计算机辅助设计与图形学学报, 2014, 26(9): 1550-1556.
|
[51] |
龙浩, 张书奎, 孙鹏辉. 自适应参数的轨迹压缩算法. 计算机应用研究, 2018, 35(3): 685-688, 716.
[doi:10.3969/j.issn.1001-3695.2018.03.010] |
[52] |
张甜, 杨智应. 基于分段的移动对象轨迹简化算法. 计算机应用研究, 2019, 36(7): 2044-2048.
[doi:10.19734/j.issn.1001-3695.2018.02.0090] |
[62] |
冯安琪, 钱丽萍, 欧阳金源, 吴远. 车联网络通过两级量化自适应卡尔曼滤波实现车辆状态预测. 计算机科学, 2020, 47(5): 230-235.
[doi:10.11896/jsjkx.190300155] |
[63] |
王妍, 邓庆绪, 刘赓浩, 银彪. 结合运动方程与卡尔曼滤波的动态目标追踪预测算法. 计算机科学, 2015, 42(12): 76-81.
[doi:10.11896/j.issn.1002-137X.2015.12.017] |
[64] |
王泽华, 梁冬泰, 梁丹, 章家成, 刘华杰. 基于惯性/磁力传感器与单目视觉融合的SLAM方法. 机器人, 2018, 40(6): 933-941.
[doi:10.13973/j.cnki.robot.170683] |