论文笔记:Map-Matching for low-sampling-rate GPS trajectories(ST-matching)

news2024/7/4 6:28:31

ACM-GIS 2019

1 Intro

  • 将GPS数据和地图路网数据匹配
  • 提出全局地图匹配算法ST-matching(类似于HMM的思路)
    • 考虑了道路网络的空间几何和拓扑结构
      • 如果不考虑拓扑关系,直接进行matching的话,由于GPS信号的不准,可能轨迹会和实际情况差很多
    • 考虑的轨迹的速度因素
      • 比如一条高速、一条公路平行,那么如果不考虑速度的话,这样一组GPS信号应该把它放到高速上?还是公路上?

2 问题描述 

 2.1 GPS日志

  • 一系列GPS点的集合L=\{p_1,p_2,\cdots,p_n\}
    • 每个GPS的点包括经度、维度、时间戳

2.2 GPS轨迹

  • 一条GPS轨迹T是一个GPS点的序列
    • 一条轨迹任意两个相邻点之间的时间间隔不超过ΔT(一个阈值)

2.3 路段

  • 一个路段 e 是一条有向边,具有编号 e.id、行驶速度 e.v、长度 e.l、开始点 e.start、结束点 e.end 和中间点列表.
  • 一条道路可以包含多个路段

2.4 路网

一个有向图 G(V,E)

2.5 路径

  • 给定路网 G 中的两个顶点 vi,vj,一条路径 P 是始于 vi 止于 vj 的一组连接的路段e_1 \rightarrow e_2 \rightarrow \cdots \rightarrow e_n
    • e_1=v_i,e_n=v_j

2.6 路网匹配

给定未加工的 GPS 轨迹 T 和路网 G(V,E),从 G 中寻找路径 P(实际路径匹配轨 迹 )

3 ST-matching

3.0 和HMM的概念对应

  • 观测状态——从 GPS 设备中得到的位置信息(经度、纬度)
  • 隐藏状态——拥有 GPS 设备的物体(车、人等)实际所在的位置
  • 观测状态概率(输出概率)——观测的 GPS 样本点离候选路段越近,这个样本点在这个路段上的概率就越大.
  • 状态转移概率——隐藏状态之间的转换概率

3.1 确定候选点

  • 给定一条确定轨迹T=p_1\to p_2\to p_3\to\dots\to p_n
    • 对每一个点pi​,在半径为r的范围内搜索该路段的候选集
    • 然后计算候选点,候选点是pi​对这些路段的投影

每一个点找到这样的一个候选点集合,得到候选点图

3.2 空间分析

3.2.1 观测状态概率(输出概率)

  • N(c_i^j)=P(c_i^k|o_i)=\frac{1}{\sqrt{2 \pi} \sigma}e^{-\frac{||c_i^k-o_i||^2}{2\sigma^2}}
    • oi是第i个观测点
    • c_i^k是第i个观测点的第k个candidate
    • ||c_i^k-o_i||^2=dist(c_i^k,o_i)
    • 时刻 t 的观测点与候选点之间的距离越小,这个候选点是真正的实际点的概率就越大
    • ——这里根据经验选择零均值、std为20的正态分布
  • 观测概率不考虑前后GPS定位点,所以容易出现误匹配

    3.2.2 空间分析函数

    • 如下图,粗实线代表高速公路,细的垂线代表本地道路。
    • 采样点(观测点)pi​距离第一个候选点比较近,但是如果我们知道前一个采样点和后一个采样点在高速路上,所以理论上应该匹配到第2个采样点
  •  
    • ST-matching将空间拓扑关系也考虑了进来:【空间传递概率】
      • V(c_i \rightarrow c_j)=\frac{||o_{t+1}-o_t||_{euclidean}}{||c_i-c_j||_{route}}
        • 根据t+1和t时刻观测值和候选值的信息,推测从t时刻的观测值ot到t+1时刻的观测值o_{t+1}之间的真实路径是ci到cj最短路径的可能性
        • 观测值之前的距离/候选点之间的距离
  •  空间分析函数

    • F_s(c_i \rightarrow c_j)=N(c_j) \cdot V(c_i \rightarrow c_j)

    • 结合了观测概率【几何信息】和传递概率【拓扑信息】

    • 如果没有N(cj)的话,那么为了Fs越大越好,||ci-cj||越小越好,最后就会选择距离p_{i-1}路径距离最近的candidate了

3.3 时间分析

  • 如果只使用空间分析的话,大部分真实路径都可以match,但是就如intro中说的那样,有一些情况无法处理:

  • 这时候就需要时间传递概率(速度传递概率)

    • F_t(c_i \rightarrow c_j)=\frac{\sum_{1}^k(e_u' \cdot v \times \bar{v_ij})}{\sqrt{\sum_1^k(e_u' \cdot v)^2} \times \sqrt{\sum_1^k( \bar{v_ij})^2}}
      • 时间分析函数
      • 用余弦距离来衡量从候选点ci到候选点cj之间的平均速度,和路段速度约束之间的相似度
      • ci到cj之间的路径被定义为一个路段列表:[e_1'\cdots e_k']
        • 每个路段的速度约束为e_u' \cdot v
      • \bar{v_{ij}}是ci到cj的平均速率

3.4 获取路径

  • 将空间分析函数和时间分析函数结合,得到时空分析函数

  • 真实路径T匹配的最优路径P为使得F(Pc)最大的候选点路径集合Pc

3.4.1 伪代码

 

3.5 本地ST-matching

  •  ST-Matching是全局算法,但是实际中不可能都给出完整路径
  • ——>local ST-matching使用轨迹上的滑动窗口
    • 局部候选图是轨迹T的一个子集
    • 计算方式和全局算法一样
    • 计算一个滑动窗口中的局部候选图后,移动滑动窗口,计算后续的滑动窗口
  • 将轨迹划分为窗口可以:
    • 减少平均延迟
    • 节省用于在线处理的存储空间
    • 但不一定会加快整体处理时间,因为ST匹配算法最昂贵的部分是最短的路径计算(空间分析函数中V(c_i \rightarrow c_j)=\frac{||o_{t+1}-o_t||_{euclidean}}{||c_i-c_j||_{route}}||c_i-c_j||_{route}

  • 为了降低计算复杂度,可以保留到目前为止,得分最高的l个候选点(而不是所有的候选点)
    • ——>减少下一个采样点需要计算的最短路径的pair数量
    • 当l=1时,退化成增量算法

  • w=2——>滑动窗口为2,每次只考虑两个时刻组成的子路段
  • l=1——>每次只保留F值最高的一个候选点,后续st-matching也只会考虑这一个点

 3.6 复杂度

【推导过程我不确定,请评论区批评指正】

记轨迹中的采样点个数为n、路网中路段个数为m,每个采样点最多有k个候选点

  • 每个点找候选点:O(n)
  • 候选点图GT中最多有(n-1)k^2条边
    • 相邻的两个采样点对应的候选点之间最多k^2条边
    • n个采样点,有n-1个间隔
  • 每一条边计算F(c_t,c_{t+1})需要的开销
    • Fs:V(c_i \rightarrow c_j)=\frac{||o_{t+1}-o_t||_{euclidean}}{||c_i-c_j||_{route}}
      • 计算ci和cj的最小路径长度,使用堆优化的迪杰斯特拉算法,复杂度是O(mlogm)
    • Ft:F_t(c_i \rightarrow c_j)=\frac{\sum_{1}^k(e_u' \cdot v \times \bar{v_ij})}{\sqrt{\sum_1^k(e_u' \cdot v)^2} \times \sqrt{\sum_1^k( \bar{v_ij})^2}}
      • 这个不怎么占复杂度,可以视为O(m)
    • ——>构建候选点图需要的复杂度O(nk^2mlogm)【 algorithm 1】(n-1和n没有区别)
  • 进行地图matching需要的开销
    • 每一条边只需要遍历一次
      • ——>复杂度是O(nk^2)
  • ——>总的复杂度是O(nk^2mmlogm+nk^2)

4 实验

4.1 实验配置

4.1.1 路网

  • 北京的路网
    • 58624个点
    • 130714条路段

4.1.2 数据

  • 人工数据
    • 首先随机选择两个点
      • 在这两个点之前选择前K段的路径
      • 在这K段路径中,随机选择一条,记作G: e_1,e_2,\cdots,e_n
      • 指定一个采样间隔k',从G中以这个间隔挑选点e_1,e_{1+k'}.\cdots,e_{1+mk'}
    • 用这些挑选出来的点match轨迹,看和ground-truth一不一样
  • 真实数据
    • 从GoeLife系统中采集28条轨迹,这些轨迹都手工标注的label(作为ground truth)

    •  绿色+蓝色是GPS轨迹,红色是用户的实际轨迹

4.2 评估标准 

 4.3 结论

4.3.1 候选点数量的影响

准确率 

 运行时间

4.3.2 S-matching 和 ST-matching

 4.3.3 和Baseline的比较

AFD——最小平均Frechet距离

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463281.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java 数据结构】二叉搜索树的实现

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

怎么将webm格式转换成mp4,3招轻松学

怎么将webm格式转换成mp4?相对于已经广为人知的MP4,还有许多人对于WebM这种视频格式不太熟悉。WebM是一种免费开源的媒体文件格式。虽然Web.目前应用范围越来越广泛,但大家还是更习惯使用MP4,因为mp4是目前最为流行的视频文件格式…

【MySQL】MES中,发货计划取数逻辑

系列文章 C#底层库–MySQLBuilder脚本构建类(select、insert、update、in、带条件的SQL自动生成) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129179216 C#底层库–MySQL数据库操作辅助类(推荐阅读&#xff0…

TryHackMe-CMSpit(boot2root)

CMSpit 你已确定 Web 服务器上安装的 CMS 存在多个漏洞,允许攻击者枚举用户并更改帐户密码。 您的任务是利用这些漏洞并破坏 Web 服务器。 端口扫扫描 循例nmap Web枚举 进80 很明显,cms就是Cockpit, 版本通过查看源代码的js版本可以得知是0.11.1 se…

FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED

介绍 最近要考试了,所以我赶紧补习FPGA,我们用的是小梅哥的AC620开发板,软件是Quartus。推荐看这个视频教程:零基础轻松学习FPGA,小梅哥FPGA设计思想与验证方法视频教程 设计步骤 设计定义 用按键控制LED灯的亮灭就…

YOLOv7如何提高目标检测的速度和精度,基于优化算法提高目标检测速度

目录 一、学习率调度二、权重衰减和正则化三、梯度累积和分布式训练1、梯度累积2、分布式训练 四、自适应梯度裁剪 大家好,我是哪吒。 上一篇介绍了YOLOv7如何提高目标检测的速度和精度,基于模型结构提高目标检测速度,本篇介绍一下基于优化算…

xcode历史版本下载

一、背景 较早之前做过一个项目,当时使用swift 3.x开发。 项目结束后就没再有新需求与更新。 但最近呢需要对项目的某些功能进行调整,项目又重新被拾了起来。 我们知道现在的swift 版本已经到了 5.x, 相应的语法上较 3.x版本也有了不小的变化…

从2-3-4树到红黑树原理分析以及C++实现红黑树建树

总结规律: 1、2-3-4树:新增元素2节点合并(节点中只有1个元素)3节点(节点中有2个元素) 红黑树:新增一个红色节点黑色父亲节点上黑下红(2节点---------------不要调整&#…

上班族如何安排时间提高工作效率?

对于上班族来说,合理安排时间可以兼顾生活和工作,不仅能够减少加班次数,还可以提高工作效率,减少工作中的负面情绪。但是有不少小伙伴表示,自己不知道如何安排时间从而提高工作效率,这应该怎么办呢&#xf…

张勇:阿里云是一家云计算产品公司,要坚定走向“产品被集成”

4月26日,在2023阿里云合作伙伴大会上,阿里巴巴董事会主席兼CEO、阿里云智能CEO张勇表示,阿里云的核心定位是一家云计算产品公司,生态是阿里云的根基。让被集成说到做到的核心,是要坚定走向“产品被集成”。 张勇表示&a…

小米13 Ultra:携光前行,追求每一束光的精确还原

“光,是影像的原点”,一切色彩、影调都在于光。我们目之所及的大千世界,皆被光与影一笔一划细细勾勒,为“视”界晕染上或鲜明、或复古、或反差、或梦幻的色调。我们用“光”去描绘、定义“影像”,让一切平凡的事物&…

Notion AI 胜于 ChatGPT ?

去年(2022年)12 月初,在社区中 OpenAI 的 ChatGPT 刚出来就火了一把,当时一度因为访问量太大导致崩溃宕机;最近(2023 年1 月底) ChatGPT 又火了,资本市场新增 ChatGPT 概念&#xff…

入局生成式AI,看好亚马逊(AMZN)中期表现

来源; 猛兽财经 作者:猛兽财经 猛兽财经获悉,由于近期亚马逊(AMZN)宣布发布多项生成式AI以及AIGC相关产品,入局全球大模型竞赛当中。中信证券发布研报看好入局生成式AI。中信证券在研报中称,亚马逊作为北美…

【Git】拉取代码/提交代码

1.从将本地代码放入远程仓库 (如果有分支的情况) [git checkout xx切换分支后 git add . 将本地所有改动文件新增 commit之后 git push(将代码全部提交)] 分支操作 #查看分支 git branch #创建分支 git branch test #切换分支 git checkout test #修改代码 #提交代码git ad…

DPDK和RDMA的区别

网络的发展好像在各方面都是滞后于计算和存储,时延方面也不例外,网络传输时延高,逐渐成为了数据中心高性能的瓶颈。因为传统两个节点间传输数据的网络路径上有大量的内存拷贝,导致网络传输效率低下,网络数据包的收发处…

MySQL——索引

目录 一、索引 1.1 索引的概念 1.2 索引的运用 1.2.1 索引的创建 1.2.2 查看表的索引 ​1.2.3 创建索引 1.2.4 删除索引 1.2.5 总结 二、索引底层的数据结构 B 树的特点 一、索引 1.1 索引的概念 当我们是使用查询语句对表中的数据进行条件查询的时候,M…

Python小姿势 - Python爬取数据的库——Scrapy

Python爬取数据的库——Scrapy 一、爬虫的基本原理 爬虫的基本原理就是模拟人的行为,使用指定的工具和方法访问网站,然后把网站上的内容抓取到本地来。 爬虫的基本步骤: 1、获取URL地址: 2、发送请求获取网页源码; 3、…

NAT网络地址转换

1.前言 随着网络设备的数量不断增长,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽。解决IPv4地址枯竭问题的权宜之计是分配可重复使用的各类私网地址段给企业内部或家庭使用。但是,私有地址不能在公网中路由,即私网…

数据结构,Map和Set的使用方法

在数据结构中我们经常会使用到 Map 和 Set ,Map 和 Set 到底是什么,它怎样去使用呢?因此博主整理出 Map 和 Set 这两个接口的介绍与使用方法。 目录 1. 啥是Map和Set? 1.1 Map和Set的模型 2. Map的使用 2.1Map的说明 2.2 Java中Map常用…

【C++】列表初始化声明范围forSTL容器新变化

文章目录 什么是C11列表初始化**C98中{}的初始化**内置类型的列表初始化 关于initializer_list使用场景: 声明auto-变量类型推导decltype类型推导nullptr 范围forSTL的新变化新容器:容器中的一些新方法 什么是C11 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C…