1 背景

如下图所示,1、2、3 这三个点是汽车的GPS定位结果,尽管汽车是在道路上,但定位结果与道路存在偏差。地图匹配(Map Matching)是指将行车轨迹的经纬度采样序列与数字地图路网匹配的过程,其本质上是平面线段序列的模式匹配问题( Alt等,2003)。

在实际应用中,GPS采样信号的质量会严重影响地图匹配结果:采样频率的降低、定位误差的加大、信号的丢失,都会使匹配的不准确性增加。这些情况在实际应用中经常出现。如何在这些情况下仍能保持较高的路径匹配准确率是个值得研究的问题。

2012年ACM SIGSPATIAL首次设立的竞赛,其内容就是地图匹配。三年前本人有幸和国防科大的杨岸然博士一同参加了该竞赛,收获良多。

2 地图匹配算法综述

2.1 以使用到的信息来划分

现有的算法可被分成四类:几何、拓扑、概率、高级。

a)基于几何的算法考虑GPS点与道路的几何信息,如距离、角度等;

b)基于拓扑的算法使用道路拓扑信息来控制;

c)概率方法通过考虑GPS点的概率;

d)高级的算法往往综合考虑使用全面信息,有卡尔曼滤波、模糊逻辑模型、隐式马尔可夫模型等等。

2.2 以考虑采样点的范围来划分

根据考虑采样点的范围,可分成局部/增量算法、全局算法。

a)局部/增量算法是贪婪算法,每次确定一个匹配点,下个点从已经确定的匹配点开始。这些方法根据距离和方向相似性来找到局部最优点或边。(在线匹配)

b)全局算法是要从路网中找到一条与采样轨迹最接近的匹配轨迹。为了测量采样轨迹和匹配轨迹的相似性,大多数算法使用“Frechet距离”或者是“弱Frechet距离”。还有时空匹配算法、投票算法等。(离线匹配)

2.3 以采样点的频率来划分

根据轨迹数据的采样频率,现有的地图匹配算法可分成:

a)高频采样算法(所有局部算法、部分全局算法如Frechet距离判别法等)

b)低频采样算法(ST-matching算法、IVVM算法

一般认为30s及其以上为低频采样,1s~10s为高频采样。

3 我们的训练数据

a)路网数据: Washington State U.S.A.(有128万条边 )

b)GPS数据:采样频率为1~30s,

4 采用的算法

使用ST-Matching算法(Lou等,2009),该算法是一种全局算法,能综合几何信息( GPS点与道路的距离)、道路拓扑信息(最短路径)、道路属性信息(每条道路的限速),具有精度高,稳定性好等优点。

4.1 准备候选集

4.2 确定权重

a)空间因素权重(Fs)

b)时间因素权重(Ft)

5 实验结果

6 技术实现要点

6.1 地图投影问题

问题:原始道路网数据的坐标与轨迹点的坐标并不在一个坐标体系下,不能直接进行计算!

解决方法:使用PRJ4地图投影库将两个数据投影到统一坐标下。

6.2 大路网信息数据量的读取

问题:该路网有128万条边,我们采用C++,如果读取每条边都进行new和delete操作,将执行128万次,效率极低!

解决方法:使用内存池技术。

6.3 最短路径算法的选择

问题:候选集不同层次的候选点之间都要计算最短路径,使用最常用的Dijkstra最短路径算法效率极低!

解决方法:使用启发式最短路径算法:A-star算法。

6.4 索引

问题:由于竞赛真实测试会使用很多不同的路网数据,所以建立索引没必要,但是计算某一GPS点的候选集时路网所有数据会参与计算,效率很低;

解决方法:计算某一GPS点的候选集时,先进行切片过滤,比如以该GPS点为中心,生成200m的正方形框,然后在该框里建立新的道路网,这时计算候选集时只需要与该框内的道路网数据计算。

python地图匹配的步骤_地图匹配算法实践相关推荐

  1. android 高德地图设置不能旋转_地图导航哪家强?

    导语: 我国经济在持续高速发展,我国人民的收入水平也随之水涨船高,这就使得我国人民的消费水平以及消费方式发生着日新月异的变化.现在的人们很多都喜欢旅游,或者是自驾游.但是很多情况下,我们在一个陌生的环 ...

  2. python自动生成测试报告步骤_生成HTMLTestRunner测试报告的操作步骤——Python+selenium自动化...

    HTMLTestRunner是Python标准库的unittest模块的一个扩展,具体操作如下 1.安装 环境:Window8 步骤:1)http://tungwaiyip.info/software ...

  3. python环境变量配置步骤_关于人工智能Python系统环境变量设置步骤

    最近无论是JAVA的环境变量配置,还是Python环境变量配置都有学生问我,我在这里写一下回答,当然我以配置Python的环境变脸来举例.首先需要确定本机电脑上安装上了Python 首先解释一下为什么 ...

  4. python 模糊匹配ftp文件_使用python实现正则匹配检索远端FTP目录下的文件

    遇到一个问题,需要正则匹配远端FTP目录下的文件,如果使用ftp客户端可以通过命令行很容易的做到这一点,但是暂时没有一个工具支持这样的需求,于是通过python对FTP的支持和对正则表达式的支持,写了 ...

  5. python打印皮卡丘步骤_编程作战丨如何利用python绘制可爱皮卡丘?

    好莱坞真人电影<精灵宝可梦:大侦探皮卡丘>预告片已经发布了,正片将于今年5月10日上映. 如果要做一个「童年梦想排行榜」的话,相信「拥有一只皮卡丘」这个梦想一定会名列前茅! 毕竟,谁不想揉 ...

  6. python预测未来数据步骤_大神教你用Python预测未来:一文看懂时间序列(值得收藏)...

    所有代码都是用 Python 编写的,并且在 GitHub 上可以看到所有的信息. https://nbviewer.jupyter.org/github/leandrovrabelo/tsmodel ...

  7. android 高德地图设置不能旋转_地图经常导航错误,盘点高德、百度、腾讯、搜狗地图哪家强?...

    出门在外,经常去不熟路的情况下,什么手机导航最精准,或者哪个地图软件更好用?也经常出现导航错误,盘点看看哪家导航强. 很多新手或者老司机,开车都需要用到导航.但是根据车的配置,有些车没有自带导航功能, ...

  8. java地图文件的编辑器_地图编辑器的选择1

    对于一些小游戏来说,规则就是它的全部,这类游戏使用的场景几乎都是随机生成的.比如,俄罗斯方块.泡泡龙.斗地主.水果忍者之类的. 稍微上一些规模的游戏,随机场景可能不满足其游戏难度,这时开发商就会选择使 ...

  9. python制作网页的步骤_使用httplib模块来制作Python下HTTP客户端的方法

    httplib 是 python中http 协议的客户端实现,可以使用该模块来与 HTTP 服务器进行交互.httplib的内容不是很多,也比较简单.以下是一个非常简单的例子,使用httplib获取g ...

  10. python模糊匹配忽略大小写_在python中忽略大小写的简单方法?

    如果搜索多个单词,则创建一个集合是有意义的:print(set(brown_sents).intersection(zip(repeat(most_ambiguous_word), word_clas ...

最新文章

  1. 慢连接 java_记一次redis的java客户端lettuce操作慢的解决方案
  2. 英雄联盟更新后服务器还在维护吗,英雄联盟今天维护到什么时候结束 11月12日停机更新维护公告...
  3. python 脚本将视频转化成图片 | python scripts to convert video to pictures
  4. php取不到post数据库,安卓post 数据到php 在写入数据库老是不成功, 数据post不到php...
  5. 北大青鸟ASP.NET之总结篇
  6. android小程序_小程序踩坑记
  7. git创建一个自己的本地仓库
  8. html保存为svg,JavaScript – 将内联SVG保存为JPEG / PNG / SVG
  9. 【限时免费】大千万象,“爬”你所需!老司机教你利用爬虫建造一座图书馆...
  10. 【备注】【C11】《Android游戏编程之从零开始》PDF 下载
  11. 最新短视频去水印小程序源码/带流量主/外卖CPS系统/批量解析/修改MD5
  12. ubuntu18安装vcs2016和verdi2016
  13. 传统项目管理 VS 敏捷项目管理
  14. 新人做ASO如何快速写好关键词?
  15. Android控件绑定menu键
  16. Qt+OSG/osgEarth跨平台编译(用Qt Creator组装各个库,实现一套代码、一套框架,跨平台编译)
  17. 同侪隐修录 (2016-12-25 23:10:21)转载▼
  18. javax.servlet.jsp.*和javax.servlet.http.*
  19. 权限管理——用户认证和用户授权
  20. AtCoder Beginner Contest 174 C.Repsept

热门文章

  1. 用TensorFlow为图片添加字幕
  2. 自建FTP和SFTP服务器
  3. eeglab基础学习
  4. ZipArchive
  5. UE5全局光照系统Lumen解析与优化
  6. 利用python调用PSS/E进行电力系统仿真
  7. 高校/中职大数据实验室建设方案
  8. python制作奖状,从excel表格中导出数据,取前20名,做成png奖状,再放入ppt中
  9. 旧版sai笔刷_最详细的SAI笔刷设置教程,非常全面详细!
  10. 冰点文库下载安装及使用教程