具体实施方式
本公开的各方面大体地针对地图匹配。更具体地,本公开的各方面针对将几何方法与最小权重法相结合的地图匹配。如下面更详细地描述的,此方法将基于弗雷歇(Fréchet)距离测量的地图匹配与全局权重优化相结合。此方法消除大量参数调整的需要,并且允许不同特性数据集之间的鲁棒性能。
本文描述的本公开的方面确定输入GPS轨迹的最小弗雷歇距离,并且在所有最小距离路径中选择最小权重路径。此外,此方法可以对不同采样率一致地执行,因此防止根据GPS准确度和采样率大大不同的地图匹配难度。
在根据本公开的一个示例中,提供一种地图匹配方法。该方法包括:接收数据集中的多个全球定位***(GPS)数据点,接收与多条道路相关的道路地图数据,为该GPS数据集确定具有最小弗雷歇距离的多条路径,通过应用权重函数来向具有最小弗雷歇距离的每条路径分配权重,以及输出具有最小权重的路径。
在根据本公开的另一示例中,提供一种地图匹配***。该***包括处理器、与该处理器联接的存储器、以及地图匹配模块,该地图匹配模块存储在该存储器中并且在该处理器上执行,以:接收数据集中的多个全球定位***(GPS)数据点;为每个GPS数据点确定候选道路位置,每个候选道路位置是位于一半径内的道路的投影;计算从与第一GPS数据点关联的每个候选道路位置至与第二GPS数据点关联的候选道路位置的最短路径;根据权重函数,选择具有最小权重的路径,该权重函数基于所计算的最短路径;以及,输出该具有最小权重的路径。
在根据本公开的又一示例中,提供一种非暂时性计算机可读介质。该非暂时性计算机可读介质包括指令,该指令在被执行时使设备:(i)接收数据集中的多个全球定位***(GPS)数据点,(ii)为该GPS数据集确定具有最小弗雷歇距离的多条路径,(iii)通过应用权重函数,向具有最小弗雷歇距离的每条路径分配权重,以及(iv)输出具有最佳权重的路径。
图1图示根据实现方式的用于地图匹配的示例***框架100。地图匹配框架100包括全球定位***(GPS)110、计算设备120、网络130和服务器140。应当容易看出,本图示不应被解释为受图1中示出的此特定图解性架构的限制,并且***100表示广义图解且可以增加其它元件或者可以移除、修改或重新设置已有元件,而不脱离本公开的范围。例如,尽管图1中示出的***100仅包括一个计算设备,但是该***实际上可以包括多个计算设备,并且可以通过蜂窝电话网络连接这样的设备。为了简便,图1中仅示出且本文中仅描述一个。
当计算设备120从一个位置移动至另一位置时,GPS 110可以收集随时间变化的位置数据(例如GPS轨迹)。GPS 110可以从GPS卫星接收GPS信息。在一个实现方式中,由一组GPS数据点组成的一系列GPS数据集(例如,样本)可以被描绘为z0,z1,…,zn。这些GPS数据点可以包括具有纬度、经度、瞬时速度、方向和时间戳信息的一系列位置。
GPS 110可以随着车辆中的用户190移动。在一个实现方式中,GPS 110可以是独立的设备。在另一实现方式中,GPS 110可以存在于计算设备120中。例如,GPS 110可以被实现为网页浏览器或搜索引擎的组件,或可以被实现为计算设备120中的应用程序。在一些实现方式中,GPS 110可以在基于预定速率检测卫星信号时接收位置数据。例如,GPS 110可以每30秒、每5分钟等记录数据。
计算设备120可以是能够处理信息和通过网络进行通信的任何设备。计算设备120可以包括但不限于便携式手持计算设备(例如,个人数字助理、智能电话、蜂窝电话)、便携式计算机、台式计算机、媒体播放器、数码摄像机、录音机、相机、或能够连接至网络130的任意其它设备。计算设备120可以具有一个或多个用户。
在一个实现方式中,计算设备120可以包括但不限于处理器、存储器以及一个或多个通信接口。此外或可替代地,计算设备120可以具有操作***和用户界面(UI)模块。在另一实现方式中,显示设备可以连接至计算设备120。当操作***和UI模块在处理器上执行时,操作***和UI模块共同促进在显示设备上呈现用户界面。在又一实现方式中,显示设备可以包含在计算设备120中。
网络130可以表示任意类型的通信网络,通信网络包括但不限于有线网络(例如,电缆)、无线网络(例如,蜂窝、卫星)、蜂窝电信网络以及基于IP的电信网络(例如,互联网语音协议网络)。网络130还可以包括传统固网电话(landline)或公共交换电话网络(PSTN)、或它们的组合(例如,非授权的移动接入或UMA网络、电路交换电话网络或基于IP的分组交换网络)。
服务器140可以是地图匹配框架100中的示例服务器。服务器140可以包括但不限于处理器150、储存单元160以及存储器170。地图匹配模块180可以被维护在存储器170中并且在处理器150上执行。在一个实现方式中,地图匹配模块180可以包括路网数据库(图1中未示出),路网数据库包括但不限于至少与道路***中的地理位置有关的信息。例如,路网数据库可以包含大西雅图或上海地区的道路的地图绘制,该大西雅图或上海地区的道路的地图绘制包括服务道路、高速公路以及用户190可用的任意其它道路。
在另一实现方式中,服务器140可以包括至少一个通信接口(图1中未示出),以允许处理器150通过网络130与计算设备120、其它网络服务器、网络储存器和/或其它设备进行通信。
处理器150可以是以下至少一个:中央处理单元(CPU),基于半导体的微处理器,图形处理单元(GPU),被配置为获取和执行或指令的现场可编程门阵列(FPGA),适于获取和执行在存储器170上存储的指令的其它电路,或中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、被配置为获取和执行或指令的现场可编程门阵列(FPGA)、适于获取和执行在存储器170上存储的指令的其它电路的组合。处理器150可以获取、解码和执行在存储器170上存储的指令,以实现上述功能。
储存单元160可以存储由GPS 110收集的并向服务器140发送的数据。例如,GPS数据可以存储在GPS记录中。在另一实现方式中,服务器140还可以包括:一个或多个已知输入设备(图1中未示出),如键盘、鼠标、笔、语音输入设备、触摸输入设备;以及,输出设备,如显示器、扬声器、打印机等。
存储器170可以是示例非暂时性计算机可读介质。该非暂时性计算机可读介质可以存储机器可读指令,如程序代码、软件、固件等等。例如,该计算机可读介质可以包括非易失性存储器、易失性存储器和/或储存设备中的一个或多个。非易失性存储器的示例包括但不限于电可擦除可编程只读存储器(EEPROM)以及只读存储器(ROM)。易失性存储器的示例包括但不限于静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。储存设备的示例包括但不限于硬盘驱动器、光盘驱动器、数字多功能盘驱动器、光学设备以及闪存驱动器。在一些实现方式中,指令可以是可以由处理设备执行的安装包的一部分。在这样的情况下,该计算机可读介质可以是便携式介质、或由可以从其下载安装包并且安装该安装包的服务器维护的闪存驱动器或存储器。在另一实现方式中,指令可以是应用程序或已安装的应用程序的一部分。本文中,计算机可读介质可以包括集成的存储器,如硬盘驱动器。
存储器170可以包括地图匹配模块180,地图匹配模块180可以在处理器150上执行。地图匹配模块180可以接收与用户190关联的一系列GPS数据点以及路网地图。地图匹配模块180可以输出用户190的一系列估计位置,如具体路段。在一个实现方式中,地图匹配模块180可以通过网络130连接至计算设备120和GPS 110。地图匹配模块180可以向计算设备120传送用户190的一系列估计位置的输出,以向用户190呈现这样的信息。此外或可替代地,地图匹配模块180可以向计算设备120传送所输出的该一系列估计位置,以将所输出的该一系列估计位置存储在计算设备120的数据库中。
图2是根据实现方式图示图1的示例地图匹配模块180的框图。应容易看出,图2中图示的地图匹配模块180表示广义图解,并且可以增加其它元件或者可以移除、修改或重新设置已有元件,而不脱离本公开的范围。如图2中示出的,本文描述的地图匹配模块180包括多个单元,每个单元具有特定作用。这些单元可以是本文中描述的计算机程序产品、本文中描述的方法的子方法和/或本文中描述的***的元件中的功能,这些计算机程序产品、方法和***中的每个将在下文更详细地描述。地图匹配模块180包括GPS接收单元210、地图单元220、距离计算单元230以及权重单元240,GPS接收单元210、地图单元220、距离计算单元230以及权重单元240中的每个将在下文更详细地描述。尽管图2图示出四个单元,但是可以存在附加单元,或者所图示的单元可以被不同地构造。此外,尽管图2示出所有这些组件在单个设备(例如,地图匹配模块180)中,但是这些组件可以物理上分布在多个设备中。
GPS接收单元210可以从GPS设备(如图1中图示的GPS 110)或GPS记录中获得数据,GPS记录可以存储在数据库(如图1中图示的计算机120或储存设备160)中。在一个实现方式中,GPS数据集(例如,轨迹数据或采样点)可以由计算设备120收集,并且通过网络130向地图匹配模块180传递。如上面讨论的,由一组GPS数据点组成的GPS数据集(例如采样点)可以被描绘为z0,z1,…,zn。
地图单元220可以从地图匹配模块180中的路网数据库获取数据。地图单元220可以输出路网的地图。在一个实现方式中,该地图可以用一组道路表示,且每条道路可以被表示为折线,即一系列线段。地图单元220可以确定候选投影点。针对每个GPS数据点zi,地图单元220可以确定zi的半径或误差遮蔽(error eclipse)内的一组候选位置该组候选位置是在路段上的垂直投影。
查找半径参数可以用于找出每个样本的候选。在一个实现方式中,该半径可以基于一组数据点及该组数据点的地面真实道路来计算。小半径可能漏掉地面真实位置,而由于候选的大数量以二次方增长,所以大半径可能显著减缓地图匹配过程。例如,每个样本和该样本的地面真实道路之间的距离的直方图可以示出最大25.5m的误差。因此,候选查找半径可以被设置为50m,即大约最大误差的两倍。
距离计算器单元230可以找出该地图上具有至该GPS数据集的最小弗雷歇距离的路径。两个曲线之间的弗雷歇距离可以被描述为,当两个点在没有折返的情况下分别穿越这两个曲线时,这两个点之间的连线的最小需要长度。在一个实现方式中,两个曲线之间的弗雷歇距离f,g:[0;1]→R2可以被定义为:
δF(f,g):=infα,β:[0,1]→[0,1]maxt∈[0,1]||f(α(t))-f(β(t))|| 公式(1)
其中,α和β是连续且非递减的时间翘曲函数,且α(0)=β(0)=0且α(1)=β(1)=1。
在一个实现方式中,传统自由空间图可以用于计算两个曲线的弗雷歇距离。对于特定距离阈值ε,两个曲线之间的自由空间图可以是由这两个曲线上距离最大为ε的所有点对组成的参数空间中的二维区域。
如上面讨论的,道路可以被表示为折线,该折线可以用于近似曲线路径。两个折线之间的自由空间可以推广为路网的平面图G=(V,E)和GPS数据集的折线Z=(z0,z1,…,zn)之间的自由空间。当且仅当在自由空间表面上沿水平方向和垂直方向存在单调路径时,G中可能存在具有到Z的最大为ε的弗雷歇距离的路径。在一个实现方式中,单调函数可以被描绘为从不上升或从不下降的函数。
在一个实现方式中,为了确定G上存在到Z的最大为ε的弗雷歇距离的路径,可以构造自由空间表面,且可以通过计算两个线段的自由空间图中的所有自由空间间隔来识别自由空间。可以计算根据G的拓扑(沿E中边缘的方向)单调且从G0到Gn(沿Z的方向)单调的子自由空间。可以得出结论:当且仅当Gn上存在自由空间间隔时,该路径存在。
下面描述的算法1概括一种用于使用地图匹配模块180来计算单调自由(即白)空间的示例算法,该单调自由空间可以正好是由从G0上的自由空间间隔开始的所有单调路径到达的区域。
在一个实现方式中,可以通过二进制查找来找出至Z的最小弗雷歇距离。例如,可以在二进制查找中计算多个候选值。在另一实现方式中,可以通过参数查找来找出至Z的最小弗雷歇距离。在又一实现方式中,当剩余间隔比阈值短而没有找到准确的弗雷歇距离时,可以停止二进制查找。例如,阈值可以被设置为1米。
在一个实现方式中,在二进制查找识别出近似最小弗雷歇距离之后,自由空间表面上可能仍存在到折线Z具有相等弗雷歇距离的多条单调路径。当在自由空间上找出多条单调路径时,权重单元240可以通过计算每条候选路径的权重,确定样本的最可能匹配。在一个实现方式中,权重单元240可以使用动态编程来向这些路径分配权重,并且返回最小权重。例如,权重单元240可以使用维特比(Viterbi)动态编程来找出所有具有最小弗雷歇距离的路径中最小权重路径。动态编程可以消除所有候选路径中的显式枚举,该显式枚举可能在被输入的轨迹的长度中是指数增长的。使用动态编程方法,该方案可以仅被计算一次并且存储,并且下次需要同样的方案时,可以简单地查找该方案。因此,对于每个GPS样本的每个候选路径匹配,最小权重路径可以仅被计算一次,并且被记录以再次找出该候选路径。
在一个实现方式中,权重单元240可以执行由下面的公式表示的权重函数:
公式(2)
其中,ti是zi和zi-1之间的时间间隔(但t0=t1或某一常数,如1.0),di是xi和zi之间的距离,α是常量参数,并且Li是地图中的xi和xi-1之间的最短路径距离(但L0=0)。
应注意到,候选序列的Li之和正好是链接该候选序列的最短路径的长度,该长度不随采样间隔而改变。还应注意到,之和的期望值也不依赖于采样间隔。因此,这两项之间的比对于不同采样间隔保持相同,且常量α在所有采样间隔之间表现一致。应进一步注意到,在上面介绍的权重函数中出现连续样本之间经过的时间。因此,权重函数对具有可变采样率或具有偶尔缺失GPS点的输入轨迹是一致的。
在一个实现方式中,权重计算可以基于两个特征:距离d和最短路径L。距离可以测量样本zi和候选位置之间的最大圆距离。最短路径可以基于从到的最短路径的长度来计算。本领域技术人员将理解,在其它实现方式中,可以在权重函数中考虑其它特征。例如,权重可以包括因子,如测量的方位与道路方向之间的对准,表示样本zi的线段与该路段之间的角度差的方向,以及通过将两个候选之间的最短路径长度除以采样间隔而计算的速度。
在一个实现方式中,权重单元240可以调整权重函数中的常量参数,以最大化其对数据集的准确度。
下面介绍的算法2概括一种用于通过动态编程来找出自由表面上的最小权重路径的示例方法。
权重单元240可以对G0上每个自由空间间隔设置权重,该权重是根据z0和与对应的边缘之间的距离计算的,该距离在上面介绍的算法的行2中被表示为如果是空间隔,则权重被设置为负无穷大。行4至行12的主正向循环通过动态编程来向每个自由空间间隔分配最小权重。行5至行7通过将与G中的v的相邻边缘对应的的所有相邻单元作比较,向水平间隔分配初始权重。由于路径已从顶点u移动至v,所以根据(u,v)的长度计算的权重可以增加至与(u;v)对应的单元。行8使用初始权重并且依照G的拓扑,更新其它水平间隔中的水平间隔的权重。行9至行11根据其所属于的单元的平行垂直间隔和底部水平间隔,更新Gi上的垂直间隔。最后,根据在每个间隔中存储的指针,行13从Gn上的最小权重间隔到G0上的间隔向后重构路径。在一个实现方式中,单调路径通过G0,…Gn。而且,该路径通过的垂直间隔可以是Gi的因此样本zi可以被匹配至道路(u,v)。单调路径通过的自用空间水平间隔序列(对应于G中的最高点)形成G中的路径,该路径是具有至轨迹Z的不超过ε的弗雷歇距离的最高权重路径。
地图匹配模块180可以包括地图分析器(图2中未示出)。在一个实现方式中,地图分析器可以读取GPS数据点,并且建立包含所有点的包围矩形。地图分析器可以不理会矩形之外的道路,并且可以分析矩形内的道路。在另一实现方式中,地图分析器可以使用字符串扫描器,字符串扫描器仅用于分析除像NaN(非数字)这样的特殊情况以外的数字字符。在又一实现方式中,地图分析器可以并行分析每个输入线,这可以导致地图分析器的优化分析速度。
如上面更详细地讨论的,维特比动态编程可以用于计算连续的每对匹配候选的最短路径。在一个实现方式中,速度优化方法可以用于提高维特比动态编程的速度,并且减少与编程关联的计算时间。例如,在一个实现方式中,可以存在样本zi的n个候选,样本zi+1的m个候选。因此,在此实现方式中,可能需要计算总计n*m条最短路径。在另一实现方式中,地图匹配模块180可以立刻计算从zi的每个候选至zi+1的所有m个候选的所有最短路径。因此,作为一种采用迪杰斯特拉(Dijkstra)算法的方式,地图匹配模块180将运算仅运行n次,而不是n*m次。此外,在一个实现方式中,可以并行执行每个计算。
在另一实现方式中,最短路径查找范围可以是受限制的。例如,该范围可以被设置为等于GPS数据集的采样间隔乘以预定速度(例如,50m/s)的阈值。此外或可替代地,可以通过将半径设置为预定阈值来限制候选查找,以减小候选集合的大小。例如,如果确定样本和其匹配道路之间的最大距离在25m左右,则半径可以被设置为30m。
现在转到***100的操作,图3示出根据本公开的示例性实现方式图示上面介绍的地图匹配过程的示例过程流程图300。应容易看出,图3中示出的过程表示广义图解,并且可以增加其它过程,或者可以移除、修改或重新设置现有过程,而不脱离本公开的范围和精神。此外,应理解,过程可以表示在存储器上存储的可执行指令,这些可执行指令可以引起处理设备做出响应,以执行操作、改变状态和/或做出决策。因此,所描述的过程可以被实现为由与地图匹配模块180关联的存储器提供的可执行指令和/或操作。
过程300可以在框305处开始,在框305处,用于确定GPS数据集和道路位置之间的匹配的***接收GPS信息。特别地,此过程可以涉及以预定的间隔从GPS卫星接收GPS信息。在一个实现方式中,可以由GPS 110和/或计算设备120通过网络130发送采样点集合。如上面关于图1详细介绍的,每个样本由时间戳和经纬度对组成。
在框310处,该***实施候选计算,候选计算的结果可以用于确定候选集合。特别地,此过程可以涉及输出道路地图,如OpenStreetMap(OSM)。此过程可以进一步涉及访问路网数据库,以使用候选点来确定一个或多个对应路段。如上面介绍,道路可以被表示为折线。在一个实现方式中,此过程可以通过将道路的图像数据与实际的道路相关,来通过地面实况过程验证道路的存在。数据集的地面实况可以将每个样本与道路ID匹配,道路ID通常表示两个相邻交叉点之间的一段道路。更具体地,此过程可以进一步涉及通过建立包含所有接收到的GPS数据点的包围矩形、不理会该矩形外的道路和实现字符串扫描器来分析每个输入线路,分析该地图。
在另一实现方式中,在框310处的过程还可以涉及将候选查找半径限制为预定阈值,以减少候选集的大小。
在框315处,该***识别该地图上具有至GPS数据集的最小弗雷歇距离的路径。如上面介绍的,当且仅当路网和GPS数据集之间的自由空间表面上存在单调路径时,可能存在具有最小弗雷歇距离的路径。基于此,地图匹配模块180使用上面描述的算法1来计算单调自由空间。此外,如上面关于图2更详细地介绍的,可以应用二进制查找来确定近似最小弗雷歇距离。
在框320处,该***向在框315处识别的每条路径计算和分配权重。特别地,此过程可以涉及执行由上面关于图2描述的公式1表示的权重函数。
此外,此过程可以涉及动态编程分析,该动态编程分析对候选路径执行,以找出所有路径中具有最小弗雷歇距离的最小权重路径。在一个实现方式中,为减少计算时间,该***可以通过将路径范围设置为采样间隔乘以预定速度,来限制路径范围。
在框320处的过程还可以涉及使用上面描述的算法2来确定自由空间上哪条路径具有最小权重,以及因此具有最佳权重且是与GPS数据集的最佳匹配。
响应于权重分配,在框325处,该***输出具有最佳权重的候选序列。特别地,此过程可以涉及将与具有最小权重的路径相关的信息存储在数据库中。在一个实现方式中,这样的信息可以用于支持外部应用,例如位置管理或驾驶方向。
此外或可替代地,此过程可以包括在界面上可视化结果,该界面可以针对用户190的不同终端用户设备进行调整。如上面介绍的,在一个实现方式中,可以向计算设备120传送该输出,以向用户190显示。在另一实现方式中,附接地图匹配模块180的显示设备可以用于显示该可视化。
虽然已关于前述示例示出并描述上面的公开,但是应理解,可以做出其它形式、细节和实现方式,而不脱离在下面的权利要求中定义的本公开的精神和范围。