CN111595353B - 一种基于GPU和Spark混合并行计算架构的实时地图匹配方法 - Google Patents
一种基于GPU和Spark混合并行计算架构的实时地图匹配方法 Download PDFInfo
- Publication number
- CN111595353B CN111595353B CN202010338544.4A CN202010338544A CN111595353B CN 111595353 B CN111595353 B CN 111595353B CN 202010338544 A CN202010338544 A CN 202010338544A CN 111595353 B CN111595353 B CN 111595353B
- Authority
- CN
- China
- Prior art keywords
- road
- gps
- candidate
- point
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3415—Dynamic re-routing, e.g. recalculating the route when the user deviates from calculated route or after detecting real-time traffic data or accidents
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/343—Calculating itineraries, i.e. routes leading from a starting point to a series of categorical destinations using a global route restraint, round trips, touristic trips
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Navigation (AREA)
- Instructional Devices (AREA)
Abstract
本发明公开了一种基于GPU和Spark混合并行计算架构的实时地图匹配方法,S1、对路网划分网格,并将路网中的道路叠加到各个网格中,截取每个网格中的道路分段,并计算各个道路分段到原始道路起终点的距离;将处于同一网格中的道路分段归纳为同一组数据结构,作为候选道路;S2、计算路网中各个道路与其他邻近道路之间的最短网络距离,并汇总成网络距离表;S3、输入一批待匹配的GPS点,根据该批次待匹配的GPS点获取其对应的网格编号,将该批次待匹配的GPS点与对应的网格编号合并在一起,并调用CUDA程序;等步骤。优点是,能够提升地图匹配效率,提高实时地图匹配的性能,减少匹配延迟。
Description
技术领域
本发明涉及数字导航领域,尤其涉及一种基于GPU和Spark混合并行计算架构的实时地图匹配方法。
背景技术
目前,数字导航领域地图匹配中,一般使用基于隐马尔可夫(HMM)的方法来达到较准确的效果,但是此方法计算复杂;而且现有地图匹配技术主要是在基于CPU的单机或分布式的,其实时匹配性能不高。根据目前使用Storm进行基于HMM方法的实时地图匹配的性能分析,报告系统处理性能约在100-150个点/ 秒,匹配性能较弱。
发明内容
本发明的目的在于提供一种基于GPU和Spark混合并行计算架构的实时地图匹配方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种基于GPU和Spark混合并行计算架构的实时地图匹配方法,
S1、对路网划分网格,并将路网中的道路叠加到各个网格中,截取每个网格中的道路分段,并计算各个道路分段到原始道路起终点的距离;将处于同一网格中的道路分段归纳为同一组数据结构,作为候选道路;
S2、计算路网中各个道路与其他邻近道路之间的最短网络距离,并汇总成网络距离表;
S3、输入一批待匹配的GPS点,根据该批次待匹配的GPS点获取其对应的网格编号,将该批次待匹配的GPS点与对应的网格编号合并在一起,并调用CUDA程序;
S4、根据待匹配的GPS点对应的候选道路和网络距离表计算并输出当前GPS 点与候选道路的匹配状态,并等待输入下一批待匹配的GPS点。
优选的,所述步骤S1具体包括如下内容,
S11、将路网划分成多个大小均匀的网格,网格的长和宽分别为dx和dy,所述路网的范围为[xmin,ymin,xmax,ymax],并将路网中的道路划分到各个网格中;
S12、将各个网格与路网中的道路进行叠加,截取每个网格中的道路分段,分别计算各个道路分段到原始道路起终点的距离,并为各个道路分段和原始道路起终点分别设置唯一编号;
S13、将处于同一网格中的道路分段归纳为同一组数据结构,作为候选道路,并将其传输到显存上以备后续查询候选道路使用。
优选的,步骤S2具体为,对路网中的每条道路,通过带上界的最短路径算法计算各个道路与其他邻近道路之间的最短网络距离,以生成带上界的网络距离表,并将所述网络距离表存储在数据库中。
优选的,步骤S3具体为,分批输入待匹配的GPS点,并分别计算每批待匹配的GPS点对应的网格编号,输入点的坐标为(x,y),则其对应的网格编号为 [(x-xmin)/dx,(y-ymin)/dy],将对应的网格编号与GPS点合并到一起,并将合并后的待匹配GPS点传输到显存,同时调用CUDA程序。
优选的,所述CUDA程序的实施过程为,以待匹配的GPS点作为每个线程的并发对象,依次读取道路分段中的路段几何点,并计算待匹配的GPS点与道路分段的垂线长度和垂足坐标,若整个道路分段的最小垂线长度小于预设的阈值,就将该道路分段连同其对应的垂足坐标存入输出的数组。
优选的,所述步骤S4具体包括如下内容,
S41、在GPU端查询待匹配的GPS点对应的候选道路,并将查询结果上传到显存,将不同网格中同一待匹配的GPS点对应的查询结果合并,得到待匹配的GPS 点与其对应的候选道路的合集;
S42、在带上界的网络距离表中,查询当前候选道路与上一个GPS点匹配的候选道路之间的最短网络距离;
S43、根据最短网络距离以及当前GPS点与上一个GPS点在对应的候选道路上垂足间的网络距离,计算转移概率P(linkt-1,i→linkt,j);所述转移概率为从上一个 GPS点Pt-1的候选道路linkt-1,i到当前GPS点Pt的候选道路linkt,j的转移概率,转移概率的计算公式如下,
其中,ds是两个GPS点在对应的候选道路上垂足间的网络距离;dr是对应的最短网络距离;ctrans是常数,依据GPS点的采样间隔确定;t表示当前GPS点的序列号;i,j均为无量纲的标号。
S44、根据当前GPS点与道路分段的垂直距离和方向,计算放射概率 P(Pt|linkt,i);所述放射概率为当前GPS点Pt对应在候选道路linkt,j上的概率,所述放射概率的计算公式如下,
P(Pt|linkt,i)=ce×Pdis tan ce+(1-ce)×Pdirection
其中,Pdis tan ce代表距离因素的概率,dp,l是当前GPS点与道路分段之间的垂直距离,cdis为常数,一般按照当前地区的GPS定位精度进行确定; Pdirection代表角度因素的概率,ddir为当前GPS点的速度矢量与道路分段之间的夹角,cdir为常数,按照当前地区GPS传感器速度漂移情况进行确定; ce为调和参数;
S45、用Viterbi算法根据转移概率集合At={P(linkt-1,i→linkt,j)|(1≤i,j≤m)}和放射概率集合Bt={P(Pt|linkt,i)|(1≤i≤m)},计算当前GPS点与候选道路的匹配状态,并在计算完毕后输出当前GPS点与候选道路的匹配状态,并等待下一批GPS点的输入;所述计算当前GPS点与候选道路的匹配状态的计算公式为,
Vt,k=maxx∈s(P(Pt|linkt,k)*P(linkt-1,x→linkt,k)*Vt-1,x)
其中,m表示候选道路的数量;k均为无量纲的标号;Vt,k表示当前GPS点Pt下实际路段为候选道路linkt,k的概率。
优选的,步骤S43中,当前GPS点与上一个GPS点在对应的候选道路上垂足间的网络距离的具体获取过程为,
A1、在数据库查询实际道路网络距离时,通过哈希查找,给上一个GPS点对应候选道路的终点节点和当前GPS点对应候选道路的起点节点附加上坐标信息;
A2、通过两次GeoHash的编码方法,计算出上一个GPS点对应候选道路的key 的编码和当前GPS点对应候选道路的key的编码,将两次GeoHash编码、起点节点 ID、终点节点ID拼成一个字节数组;
A3、将步骤A2得到的字节数组作为参数输入,调用数据库的查询方法,得到上一个GPS点对应候选道路以及当前GPS点对应候选道路两者对应的初始网络距离和路径;
A4、由于垂足到道路的起终点有一定距离,将该部分距离加入初始网络距离进行修正,得到实际的两个GPS点在候选道路上垂足间的网络距离。
本发明的有益效果是:本发明提供的匹配方法能够提升地图匹配效率,提高实时地图匹配的性能,减少匹配延迟。
附图说明
图1是本发明实施例中基于GPU计算的实时地图匹配数据传输与计算过程示意图;
图2是本发明实施例中以GPS点为并行单元的示意图;
图3是本发明实施例中路网网格划分的示意图;
图4是本发明实施例中道路分段的数据结构表;
图5是本发明实施例中CPU端保存有存有格网ID和对应分片的哈希表;
图6是本发明实施例中带上界的最短路径算法的伪代码示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例一
如图1至图2所示,本实施例中提供了一种基于GPU和Spark混合并行计算架构的实时地图匹配方法,
S1、对路网划分网格,并将路网中的道路叠加到各个网格中,截取每个网格中的道路分段,并计算各个道路分段到原始道路起终点的距离;将处于同一网格中的道路分段归纳为同一组数据结构,作为候选道路;
S2、计算路网中各个道路与其他邻近道路之间的最短网络距离,并汇总成网络距离表;
S3、输入一批待匹配的GPS点,根据该批次待匹配的GPS点获取其对应的网格编号,将该批次待匹配的GPS点与对应的网格编号合并在一起,并调用CUDA程序;
S4、根据待匹配的GPS点对应的候选道路和网络距离表计算并输出当前GPS 点与候选道路的匹配状态,并等待输入下一批待匹配的GPS点。
本实施例中,实时地图匹配方法具体包括四个部分,分别为道路网格划分、计算带上界的网格距离、候选道路召回和计算网络距离与地图匹配转移概率。参考图1,其中,①为设备在不同时间上传的GPS轨迹点数据,虚线为时间片分割示意;②为单个时间片内的GPS轨迹点数据;③为GPU计算流程;④为GPU计算后的带有候选道路信息的GPS轨迹点;⑤为分片排序后,带状态的转移概率计算;⑥为输出的GPS点地图匹配结果。
本实施例中,所述步骤S1具体包括如下内容,
S11、将路网划分成多个大小均匀的网格,网格的长和宽分别为dx和dy,所述路网的范围为[xmin,ymin,xmax,ymax],并将路网中的道路划分到各个网格中;
S12、将各个网格与路网中的道路进行叠加,截取每个网格中的道路分段,分别计算各个道路分段到原始道路起终点的距离,并为各个道路分段和原始道路起终点分别设置唯一编号;
S13、将处于同一网格中的道路分段归纳为同一组数据结构,作为候选道路,并将其传输到显存上以备后续查询候选道路使用。
步骤S1属于实时地图匹配方法中的第一步,具体是需要将道路按照规则的网格进行划分,截取每个格网分片内的几何路径,同时计算道路分段到原始道路起终点的距离,以及起终点的编号。将同一个格网内的道路分段组成一组数据,并传输到显存上以供后续查询候选道路使用。
具体实施时,可将路网区域划分为1000米*1000米的网格,按照网格将路段截断,划分到不同的网格内,如3图所示。
将规则网格与道路进行叠加,截取每个网格分片内的几何路径,同时计算道路分段到原始道路起终点的距离,以及起终点的编号。得到各个道路分段的数据结构表如图4。
将同一个网格内的道路分段组成一个数据结构,并传输到显存上以供后续查询使用,显存上道路分片结构如图5所示,将坐标信息拼接成一个一维数组,并保存拼接前的坐标长度、路段ID等信息。将坐标信息设计为一维数组,程序初始加载时,将预先处理好的道路分片数据全部传输至显存,CPU端保存有存有格网ID和对应分片的哈希表,如图5所示。
本实施例中,如图6所示,步骤S2具体为,对路网中的每条道路,通过带上界的最短路径算法计算各个道路与其他邻近道路之间的最短网络距离,以生成带上界的网络距离表,并将所述网络距离表存储在数据库中。图6即为带上界的最短路径算法的伪代码。
步骤S2属于实时地图匹配方法的第二步,也就是计算带上界的网络距离。具体为,使用Dijkstra算法计算带上界的最短网络距离,以汇集成最短路径表,即在道路网络上,最短距离小于200m的道路节点对组成的表。将计算的结果存储在RocksDB数据库中,在存储表时,将道路节点的坐标,首先进行GeoHash方法进行编码,然后再对每对道路节点对的两个编码,再次进行一次GeoHash编码。这样能保证空间上邻近的道路节点对,尽量在该线性空间中相邻。
本实施例中,步骤S3具体为,分批输入待匹配的GPS点,并分别计算每批待匹配的GPS点对应的网格编号,输入点的坐标为(x,y),则其对应的网格编号为 [(x-xmin)/dx,(y-ymin)/dy],将对应的网格编号与GPS点合并到一起,并将合并后的待匹配GPS点传输到显存,同时调用CUDA程序。
步骤S3属于实时地图匹配方法的第三步,也就是候选道路召回。具体为实时的GPS点数据首先到达消息队列Kafaka,然后Spark Streaming不断从中读取一定间隔的数据。待匹配GPS点分批进行输入,先将待查询的一批GPS点分别计算需要计算相交的格网ID,并将相同格网ID的GPS点合并到一起。然后CPU端将并发地遍历所有格网ID,将合并后的待查询的GPS点数组传输到显存,并调用CUDA 程序。CUDA计算时,以待匹配的GPS点作为每个线程的并发对象,依次读取道路分片数据中的路段几何点,并计算GPS点与道路分段的垂线长度和垂足坐标。若整个道路分段的最小垂线长度小于预设的阈值,就将该结果存入输出的数组。
其中,所述CUDA程序的实施过程为,以待匹配的GPS点作为每个线程的并发对象,依次读取道路分段中的路段几何点,并计算待匹配的GPS点与道路分段的垂线长度和垂足坐标,若整个道路分段的最小垂线长度小于预设的阈值,就将该道路分段连同其对应的垂足坐标存入输出的数组。所述阈值可以根据具体情况进行设置,以便更好的满足具体需要。
本实施例中,所述步骤S4具体包括如下内容,
S41、在GPU端查询待匹配的GPS点对应的候选道路,并将查询结果上传到显存,将不同网格中同一待匹配的GPS点对应的查询结果合并,得到待匹配的GPS 点与其对应的候选道路的合集;
S42、在带上界的网络距离表中,查询当前候选道路与上一个GPS点匹配的候选道路之间的最短网络距离;
S43、根据最短网络距离以及当前GPS点与上一个GPS点在对应的候选道路上垂足间的网络距离,计算转移概率P(linkt-1,i→linkt,j);所述转移概率为从上一个 GPS点Pt-1的候选道路linkt-1,i到当前GPS点Pt的候选道路linkt,j的转移概率,转移概率的计算公式如下,
其中,ds是两个GPS点在对应的候选道路上垂足间的网络距离;dr是对应的最短网络距离;ctrans是常数,依据GPS点的采样间隔确定;t表示当前GPS点的序列号;i,j均为无量纲的标号。
S44、根据当前GPS点与道路分段的垂直距离和方向,计算放射概率 P(Pt|linkt,i);所述放射概率为当前GPS点Pt对应在候选道路linkt,j上的概率,所述放射概率的计算公式如下,
P(Pt|linkt,i)=ce×Pdis tan ce+(1-ce)×Pdirection
其中,Pdis tan ce代表距离因素的概率,dp,l是当前GPS点与道路分段之间的垂直距离,cdis为常数,一般按照当前地区的GPS定位精度进行确定; Pdirection代表角度因素的概率,ddir为当前GPS点的速度矢量与道路分段之间的夹角,cdir为常数,按照当前地区GPS传感器速度漂移情况进行确定; ce为调和参数;
S45、用Viterbi算法根据转移概率集合At={P(linkt-1,i→linkt,j)|(1≤i,j≤m)}和放射概率集合Bt={P(Pt|linkt,i)|(1≤i≤m)},计算当前GPS点与候选道路的匹配状态,并在计算完毕后输出当前GPS点与候选道路的匹配状态,并等待下一批GPS点的输入;所述计算当前GPS点与候选道路的匹配状态的计算公式为,
Vt,k=maxx∈s(P(Pt|linkt,k)*P(linkt-1,x→linkt,k)*Vt-1,x)
其中,m表示候选道路的数量;k均为无量纲的标号;Vt,k表示当前GPS点Pt下实际路段为候选道路linkt,k的概率。
步骤S4属于实时地图匹配方法的第四步,也就是计算网络距离与地图匹配转移概率,具体为在GPU端查询完候选道路后,将结果传送到内存中,然后CPU将不同格网中属于同一个GPS点的结果合并,得到GPS点与当前候选道路集。在带上界的网络距离表中,查询当前候选道路与上一个GPS点匹配的道路集中的网络距离,然后根据网络转移距离、当前GPS点与上一个GPS点的距离计算转移概率,根据当前GPS点与路段的垂直距离和方向,计算放射概率。用Viterbi算法根据转移概率和放射概率计算当前GPS点与道路的匹配状态,输出结果并等待下一批 GPS点输入。
本实施例中,步骤S43中,当前GPS点与上一个GPS点在对应的候选道路上垂足间的网络距离的具体获取过程为,
A1、在数据库查询实际道路网络距离时,通过哈希查找,给上一个GPS点对应候选道路的终点节点和当前GPS点对应候选道路的起点节点附加上坐标信息;
A2、通过两次GeoHash的编码方法,计算出上一个GPS点对应候选道路的key 的编码和当前GPS点对应候选道路的key的编码,将两次GeoHash编码、起点节点 ID、终点节点ID拼成一个字节数组;
A3、将步骤A2得到的字节数组作为参数输入,调用数据库的查询方法,得到上一个GPS点对应候选道路以及当前GPS点对应候选道路两者对应的初始网络距离和路径;
A4、由于垂足到道路的起终点有一定距离,将该部分距离加入初始网络距离进行修正,得到实际的两个GPS点在候选道路上垂足间的网络距离。
为了计算网络距离与转移概率,需要获得上一个GPS点的候选路段及概率,系统需要维护各个GPS轨迹的状态,通过如下方法进行流式计算中的状态管理:
①待匹配GPS点通过按设备ID与1000取余的结果进行分片,通过其最末尾三位数字标识分片,由于通过取余操作进行,能够保证数据的均衡性,不易发生数据倾斜;
②在HDFS等持久化存储中设计了状态的存储空间,能通过文件名对应到某一分片的状态;
③在计算时,首先从HDFS中将对应分片的状态全量加载到当前计算节点的内存中,然后进行地图匹配处理。由于设备ID与分片的对应关系始终是一致的,不会发生地图匹配状态误保存或无法找到的问题;
④在当前分片计算结束后,将更新后的键值对增量存储至HDFS中。下次加载时,通过对状态的时间进行判断,对每个设备ID保留最新的状态。而每隔若干轮增量保存,将会进行一次全量状态更新,以避免大量增量状态文件造成的处理缓慢。
实施例二
本发明部署在阿里云的三台ecs.gn5-c8g1.2xlarge服务器上。该型号云服务器包含了1个NVIDIA P100 GPU核心。同时在这三台服务器上,搭建了Spark Standalone集群用于程序运行。路网数据使用北京海淀区道路数据,该道路网络数据包含多种等级的道路,如高速公路、城市快速路、城市普通道路等,而由于出租车数据是在全部道路上均有轨迹,故道路并未区分道路等级,而作统一处理。使用出租车GPS点进行地图匹配,计算效率达到7570点/秒,对比之下,使用Storm进行流式地图匹配的性能分析,报告系统处理性只有100-150个点/ 秒。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明提供了一种基于GPU和Spark混合并行计算架构的实时地图匹配方法,该匹配方法能够提升地图匹配效率,提高实时地图匹配的性能,减少匹配延迟。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (6)
1.一种基于GPU和Spark混合并行计算架构的实时地图匹配方法,其特征在于:
S1、对路网划分网格,并将路网中的道路叠加到各个网格中,截取每个网格中的道路分段,并计算各个道路分段到原始道路起终点的距离;将处于同一网格中的道路分段归纳为同一组数据结构,作为候选道路;
S2、计算路网中各个道路与其他邻近道路之间的最短网络距离,并汇总成网络距离表;
S3、输入一批待匹配的GPS点,根据该批次待匹配的GPS点获取其对应的网格编号,将该批次待匹配的GPS点与对应的网格编号合并在一起,并调用CUDA程序;
S4、根据待匹配的GPS点对应的候选道路和网络距离表计算并输出当前GPS点与候选道路的匹配状态,并等待输入下一批待匹配的GPS点;
所述步骤S4具体包括如下内容,
S41、在GPU端查询待匹配的GPS点对应的候选道路,并将查询结果上传到显存,将不同网格中同一待匹配的GPS点对应的查询结果合并,得到待匹配的GPS点与其对应的候选道路的合集;
S42、在带上界的网络距离表中,查询当前候选道路与上一个GPS点匹配的候选道路之间的最短网络距离;
S43、根据最短网络距离以及当前GPS点与上一个GPS点在对应的候选道路上垂足间的网络距离,计算转移概率P(linkt-1,i→linkt,j);所述转移概率为从上一个GPS点Pt-1的候选道路linkt-1,i到当前GPS点Pt的候选道路linkt,j的转移概率,转移概率的计算公式如下,
其中,ds是两个GPS点在对应的候选道路上垂足间的网络距离;dr是对应的最短网络距离;ctrans是常数,依据GPS点的采样间隔确定;t表示当前GPS点的序列号;i,j均为无量纲的标号;
S44、根据当前GPS点与道路分段的垂直距离和方向,计算放射概率P(Pt|linkt,i);所述放射概率为当前GPS点Pt对应在候选道路linkt,j上的概率,所述放射概率的计算公式如下,
P(Pt|linkt,i)=ce×Pdistance+(1-ce)×Pdirection
其中,Pdistance代表距离因素的概率,dp,l是当前GPS点与道路分段之间的垂直距离,cdis为常数,一般按照当前地区的GPS定位精度进行确定;Pdirection代表角度因素的概率,ddir为当前GPS点的速度矢量与道路分段之间的夹角,cdir为常数,按照当前地区GPS传感器速度漂移情况进行确定;ce为调和参数;
S45、用Viterbi算法根据转移概率集合At={P(linkt-1,i→linkt,j)|(1≤i,j≤m)}和放射概率集合Bt={P(Pt|linkt,i)|(1≤i≤m)},计算当前GPS点与候选道路的匹配状态,并在计算完毕后输出当前GPS点与候选道路的匹配状态,并等待下一批GPS点的输入;所述计算当前GPS点与候选道路的匹配状态的计算公式为,
Vt,k=maxx∈s(P(Pt|linkt,k)*P(linkt-1,x→linkt,k)*Vt-1,x)
其中,m表示候选道路的数量;k均为无量纲的标号;Vt,k表示当前GPS点Pt下实际路段为候选道路linkt,k的概率。
2.根据权利要求1所述的基于GPU和Spark混合并行计算架构的实时地图匹配方法,其特征在于:所述步骤S1具体包括如下内容,
S11、将路网划分成多个大小均匀的网格,网格的长和宽分别为dx和dy,所述路网的范围为[xmin,ymin,xmax,ymax],并将路网中的道路划分到各个网格中;
S12、将各个网格与路网中的道路进行叠加,截取每个网格中的道路分段,分别计算各个道路分段到原始道路起终点的距离,并为各个道路分段和原始道路起终点分别设置唯一编号;
S13、将处于同一网格中的道路分段归纳为同一组数据结构,作为候选道路,并将其传输到显存上以备后续查询候选道路使用。
3.根据权利要求2所述的基于GPU和Spark混合并行计算架构的实时地图匹配方法,其特征在于:步骤S2具体为,对路网中的每条道路,通过带上界的最短路径算法计算各个道路与其他邻近道路之间的最短网络距离,以生成带上界的网络距离表,并将所述网络距离表存储在数据库中。
4.根据权利要求3所述的基于GPU和Spark混合并行计算架构的实时地图匹配方法,其特征在于:步骤S3具体为,分批输入待匹配的GPS点,并分别计算每批待匹配的GPS点对应的网格编号,输入点的坐标为(x,y),则其对应的网格编号为[(x-xmin)/dx,(y-ymin)/dy],将对应的网格编号与GPS点合并到一起,并将合并后的待匹配GPS点传输到显存,同时调用CUDA程序。
5.根据权利要求4所述的基于GPU和Spark混合并行计算架构的实时地图匹配方法,其特征在于:所述CUDA程序的实施过程为,以待匹配的GPS点作为每个线程的并发对象,依次读取道路分段中的路段几何点,并计算待匹配的GPS点与道路分段的垂线长度和垂足坐标,若整个道路分段的最小垂线长度小于预设的阈值,就将该道路分段连同其对应的垂足坐标存入输出的数组。
6.根据权利要求1所述的基于GPU和Spark混合并行计算架构的实时地图匹配方法,其特征在于:步骤S43中,当前GPS点与上一个GPS点在对应的候选道路上垂足间的网络距离的具体获取过程为,
A1、在数据库查询实际道路网络距离时,通过哈希查找,给上一个GPS点对应候选道路的终点节点和当前GPS点对应候选道路的起点节点附加上坐标信息;
A2、通过两次GeoHash的编码方法,计算出上一个GPS点对应候选道路的key的编码和当前GPS点对应候选道路的key的编码,将两次GeoHash编码、起点节点ID、终点节点ID拼成一个字节数组;
A3、将步骤A2得到的字节数组作为参数输入,调用数据库的查询方法,得到上一个GPS点对应候选道路以及当前GPS点对应候选道路两者对应的初始网络距离和路径;
A4、由于垂足到道路的起终点有一定距离,将该部分距离加入初始网络距离进行修正,得到实际的两个GPS点在候选道路上垂足间的网络距离。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010338544.4A CN111595353B (zh) | 2020-04-26 | 2020-04-26 | 一种基于GPU和Spark混合并行计算架构的实时地图匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010338544.4A CN111595353B (zh) | 2020-04-26 | 2020-04-26 | 一种基于GPU和Spark混合并行计算架构的实时地图匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111595353A CN111595353A (zh) | 2020-08-28 |
CN111595353B true CN111595353B (zh) | 2022-02-11 |
Family
ID=72187660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010338544.4A Active CN111595353B (zh) | 2020-04-26 | 2020-04-26 | 一种基于GPU和Spark混合并行计算架构的实时地图匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111595353B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116337103B (zh) * | 2023-05-17 | 2023-08-29 | 中国地质大学(武汉) | 基于区域分类的分层泛在导航方法、装置及计算机设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013217061A1 (de) * | 2013-08-27 | 2015-03-05 | Bayerische Motoren Werke Aktiengesellschaft | Spurgenaue Positionierung eines Fahrzeugs |
CN103499828B (zh) * | 2013-10-22 | 2015-07-29 | 北京世纪高通科技有限公司 | 浮动车轨迹地图匹配的方法及装置 |
CN104034337B (zh) * | 2014-05-20 | 2017-01-18 | 清华大学深圳研究生院 | 一种浮动车地理位置点的地图匹配方法及装置 |
CN104061935B (zh) * | 2014-07-08 | 2017-01-25 | 中国石油大学(华东) | 行驶速度限定的浮动车地图匹配加速方法 |
CN110793531B (zh) * | 2019-09-12 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 道路匹配的方法、装置以及可读存储介质 |
-
2020
- 2020-04-26 CN CN202010338544.4A patent/CN111595353B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111595353A (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502599B (zh) | 地图数据的查询方法、装置和计算机可读存储介质 | |
Chen et al. | TrajCompressor: An online map-matching-based trajectory compression framework leveraging vehicle heading direction and change | |
CN109165215B (zh) | 一种云环境下时空索引的构建方法、装置及电子设备 | |
Zhao et al. | Rest: A reference-based framework for spatio-temporal trajectory compression | |
CN112015835B (zh) | Geohash压缩的地图匹配方法 | |
CN109215338B (zh) | 一种基于网格化的北斗gps车辆轨迹管理系统及其方法 | |
CN110427360A (zh) | 轨迹数据的处理方法、处理装置、处理系统及计算机程序产品 | |
CN110765331A (zh) | 一种时空数据的检索方法及系统 | |
CN112344947B (zh) | 地图匹配方法、装置、电子设备和计算机可读存储介质 | |
CN111090712A (zh) | 一种数据处理方法、装置、设备及计算机存储介质 | |
CN111595353B (zh) | 一种基于GPU和Spark混合并行计算架构的实时地图匹配方法 | |
CN113706592A (zh) | 一种定位信息的修正方法、装置、电子设备和存储介质 | |
CN111292356A (zh) | 运动轨迹与道路的匹配方法及装置 | |
CN115544088A (zh) | 地址信息查询方法、装置、电子设备及存储介质 | |
CN112307151B (zh) | 导航数据处理方法及装置 | |
CN116026352A (zh) | 定位信号的处理方法、装置、介质及电子设备 | |
CN111488414B (zh) | 道路任务匹配方法、装置与设备 | |
CN112100308B (zh) | 一种北斗时空轨迹的相似性查询方法 | |
CN113850996A (zh) | 路段公交线路重复系数数据计算方法、装置及存储介质 | |
Yin et al. | Efficient trajectory compression and range query processing | |
CN111641924A (zh) | 位置数据生成方法、装置和电子设备 | |
CN111460237B (zh) | 一种数据查询的方法、装置、可读存储介质和电子设备 | |
US9436715B2 (en) | Data management apparatus and data management method | |
CN110096564B (zh) | 一种基于bim+gis的路线点定位方法、装置及系统 | |
CN110619134B (zh) | 解决路网数据飞点、点密度问题一体化检测及修复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |