随着导航定位、移动互联网等技术的快速发展,手机、车载定位装置等设备都可以进行地理空间数据采集。这些不同类型的地理空间数据往往能反映出某种规律。以时空轨迹为例,这些新形式的泛在地理空间数据,能够反映个体行为的时空特征,同时大量同类群体的共同模式也可以反映群体特征。其中,车载定位装置能够实时获取当前车辆的位置信息,成为时空轨迹大数据的重要数据来源。

地图匹配是时空轨迹数据处理分析中的关键技术,能够解决将轨迹数据匹配到道路网络的问题,从而基于轨迹点还原真实轨迹。如何能够快速、有效地实现地图匹配,成为轨迹数据分析的关键问题。为了提高轨迹点道路匹配的准确度,我们引入一个基于概率图的机器学习模型——隐马尔科夫模型。

道路匹配

地图匹配(Map Matching)是将一系列有序的轨迹位置点关联到实际路网的过程,可以看作是轨迹数据处理的一项数据预处理任务,可以服务于后续轨迹线计算与分析工作的开展。

地图匹配示意图

然而由于通信异常、定位误差等原因,很难保证轨迹点与路段完全吻合,如果不进行地图匹配,那么行动轨迹可能偏离路网(例如定位到路边建筑、或者池塘里等)。直接将轨迹点关联到最近路段上的方法,由于匹配逻辑较为简单,往往匹配效果不佳。例如当存在多条邻近道路时,根据最近距离的匹配往往会得到不符合预期的匹配结果路段。

相关研究人员面向该问题进行了多种方法的建模,目前应用较多的就是基于隐马尔科夫模型(HMM)的匹配,其正确率验证在一定条件下都已经能够达到90%以上。

轨迹点关联路段

隐马尔科夫模型

隐马尔科夫模型由状态集、观测集、初始状态转移概率、状态转移概率,以及发射概率确定。

HMM模型

隐马尔科夫模型能做什么呢?
1、概率计算问题,已知模型参数,计算某一特定输出序列的概率;
2、学习问题,使得该模型下观测序列的概率最大;
3、预测问题,求解一条使得该观测序列概率最大的隐状态序列。

而基于隐马尔科夫模型的道路匹配就是结合了2、3问题,即用一种动态规划算法来求解概率最大路径,即计算出概率最大的匹配路线。

基于隐马尔科夫模型的地图匹配

基于隐马尔科夫模型(HMM)的地图匹配,是在给定一定观测前提下,寻找产生这一观测序列的隐藏序列,其中隐藏序列表示持有定位装置的人或物所在的具体位置,观测序列表示定位装置产生的一系列轨迹点坐标。即通过该模型,从轨迹点(即观测序列)推算真实位置(即隐藏序列)。

在基于HMM的地图匹配算法中,对于一个轨迹点在一定距离内会有一个或多个候选路段,轨迹点在这些候选路段上的投影点视为候选点,在马尔科夫链中作为顶点,轨迹点离旁边路段上的位置越近,那么这个点在这个路段上的概率越大。前后两个真实的位置点的距离越近,那么状态转移的概率越大,或者真实路段上的前后两个点的距离与轨迹点观测的前后两个点的距离越接近,状态转移概率越大。

基于隐马尔科夫模型的地图匹配算法原理

我们在SuperMap iDesktopX 10i(2020)中,可以利用轨迹分析相关工具构建完整的地图匹配流程,最终得到匹配路线。

构建地图匹配流程

基于HMM的地图匹配结果

在进行地图匹配计算时,可以通过匹配正确率和错误率来评价匹配效果:

我们也基于开放的ACM国际比赛中的数据进行了指标计算,结果表明基于隐马尔科夫模型的地图匹配精度可以达到97%。

如今,轨迹数据的处理与分析已成为GIS中的常见任务,而地图匹配是其中的一个关键问题,我们可以对原有算法进行升级优化,引入更先进、效果更优的机器学习模型,服务于复杂场景下的匹配。该功能目前在警务、交通等行业项目中已有诸多应用。未来,我们也将继续尝试各种AI模型与GIS空间分析任务的有效结合。

基于隐马尔科夫模型的道路匹配相关推荐

  1. python地图匹配_基于隐马尔科夫模型(HMM)的地图匹配(Map-Matching)算法

    1. 摘要 本篇博客简单介绍下用隐马尔科夫模型(Hidden Markov Model, HMM)来解决地图匹配(Map-Matching)问题.转载请注明网址. 2. Map-Matching(MM ...

  2. 20200918:【广发金融工程】2018年重磅专题系列之九:基于隐马尔科夫模型的选股策略研究

    参考链接:https://www.sohu.com/a/252454782_465470 [广发金融工程]2018年重磅专题系列之九:基于隐马尔科夫模型的选股策略研究 2018-09-07 11:26 ...

  3. m基于隐马尔科夫模型(HMM)的手机用户行为预测(MMUB)算法matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,广泛应用在语音识别, ...

  4. 基于隐马尔科夫模型文本相似度问题研究

    文本相似度是表示两个或者多个文本之间匹配程度的一个度量参数,相似度数值大,说明文本相似度高:反之文件相似程度就低.文本相似度的精确计算问题是进行信息处理的关键. 在如今信息技术飞速发展的互联网时代,文 ...

  5. 中文分词与马尔科夫模型之二:隐马尔科夫模型与维特比

    转载自:http://blog.sina.com.cn/s/blog_68ffc7a40100uebv.html 前面一篇博客讲到了中文分词的机械分词算法,这种算法实现相对比较简单,但是分词效果还是有 ...

  6. 使用隐马尔科夫模型实现分词

    文章目录 算法概述 算法实现 参考结论 参考资料 参考链接 算法概述 分词算法常用的方法是基于统计的机器学习算法.可以使用 隐马尔科夫模型(HMM) 来实现分词. 隐马尔科夫模型的基本思想是假设一个序 ...

  7. 基于C#的序列分类器:Part I:隐马尔科夫模型

    原文地址:http://www.codeproject.com/Articles/541428/Sequence-Classifiers-in-Csharp-Part-I-Hidden-Marko B ...

  8. 隐马尔科夫模型HMM(一)HMM模型

    2019独角兽企业重金招聘Python工程师标准>>> 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理 ...

  9. 第十九课.隐马尔科夫模型

    目录 隐马尔科夫模型的结构 马尔科夫链与隐马尔科夫模型 实例 HMM的要素 模型的性质 推理问题:HMM的状态解码 隐状态解码问题 最大路径概率与维特比算法 使用维特比算法解码 实例演示 基于Pyth ...

最新文章

  1. 为什么阿里强制 boolean 类型变量不能使用 is 开头?
  2. 在Leangoo中,如何快速切换项目内看板?
  3. p1209 Barn Repair
  4. ARM嵌入式编程之STM32的命名方法 STM32F103VET6命名解释
  5. 前端学习(2579):组件库使用
  6. Java基础——Java NIO详解(一)
  7. 开发大型高负载类网站应用的几个要点
  8. input在vue中如何一次性上传多张图片_小程序图片上传,存储,获取,显示
  9. form请求导出表格_程序员:java导出Excel,附带依赖、后端代码和前端JS
  10. Axure字体图标元件库 (FontAwesome v5.15.3 Free版)
  11. 计算机关闭系统剪切板上的内容,如何在Win10中打开/关闭和清除剪贴板历史记录...
  12. 如何切换电脑当前登录账户,独家讲解在这里,怎么在WIN10系统里切换电脑当前登录账户
  13. ASP.NET的优点
  14. c语言判断两个单词是否为变位词,C++变位词问题分析
  15. JavaScript变量提升(Hoisting)详解
  16. 读到心醉,很美的文字
  17. 行云管家V4.9正式发布:监控全面提升,首页、主机详情大幅优化,新增大量实用功能.md...
  18. 竖流式沉淀池三角堰计算_竖流沉淀池设计计算
  19. 使用CStdioFile读写文件
  20. 藏文驾考科目一科目四理论题库

热门文章

  1. java 欧几里德_用java实现欧几里得算法
  2. 关于欧几里得算法(Euclidean Algorithm)的迭代次数的证明
  3. python课设代码,《Python语言程序设计》课设代码
  4. Docker容器之网络详解
  5. 【Java】Java中的包装类和基本类型有什么区别,使用场景举例
  6. node 爬虫处理cookie,代理
  7. zzuli OJ 1034: 夏季促销
  8. 更相减损法java,五十6、从高中碾转相除法、更相减损术算法谈起
  9. 谈谈分布式系统中的复制
  10. 一句话让你记住美国的各个州