本申请涉及智能交通技术领域,特别涉及一种拓扑道路匹配方法、系统及电子设备。
背景技术:
道路匹配是根据初始定位结果,利用路网数据库,采用适当算法,进行实时处理,将移动目标定位点直接投影到实际道路上。现有的道路匹配算法主要包括:
1、几何匹配算法;几何匹配算法是最简单的一种匹配算法,这种算法只考虑GPS定位点到公路的垂直距离,不考虑公路的拓扑结构和历史GPS的匹配结果,将每一个车辆GPS轨迹点匹配至距离最近的道路节点上。虽然几何匹配算法的性能好、效率高,但是车辆轨迹会出现错误,尤其是在道路密集地区或者交叉路口的地方会出现偏差。
2、拓扑匹配算法;拓扑匹配算法通过对道路联通关系的判断,可以很容易去除一些车辆不可能行驶的道路,降低算法的时间复杂度,但该算法在道路密集区会出现摆动,尤其是在两条方向相反的公路上,会出现两边来回摆动的情况,因此,可以作为辅助算法运用于其他匹配算法之中,也可以作为数据前期处理的方法。
3、概率统计算法;概率统计算法是在从车辆导航系统获得的轨迹位置周围建立矩形或者长方形的置信区域,置信区域的大小可以由GPS位置的各种误差大小来确定,之后,置信区域被重叠到交通矢量地图上,来确定匹配道路。
综上所述,现有的道路匹配算法普遍存在的问题在于:未考虑到道路的拓扑结构和道路的连通性,以及与历史GPS匹配的连贯性,因此,在道路匹配时很容易出现一些误差,造成不可解释的现象。
技术实现要素:
本申请提供了一种拓扑道路匹配方法、系统及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。
为了解决上述问题,本申请提供了如下技术方案:
一种拓扑道路匹配方法,包括:
步骤a:获取车辆的GPS定位数据,并根据所述GPS定位数据加载道路数据,得到车辆的道路候选集;
步骤b:判断所述GPS定位数据中的历史GPS定位点个数是否小于定位点阀值,如果小于定位点阀值,执行步骤c;如果不小于定位点阀值,执行步骤d;
步骤c:通过空间匹配算法分别计算车辆当前的GPS定位点与所述道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果;
步骤d:通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果。
本申请实施例采取的技术方案还包括:在所述步骤a中,所述根据GPS定位数据加载道路数据具体为:根据GPS定位数据获取车辆的九宫格ID,并根据九宫格ID加载九宫格内的所有道路数据。
本申请实施例采取的技术方案还包括:在所述步骤c中,所述通过空间匹配算法分别计算车辆当前的GPS定位点与道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果具体为:
给定历史GPS定位点为{pi-N,pi-N+1,...,pi-1},各个历史GPS定位点的道路匹配结果为{r′i-N,r′i-N+1,...,r′i-1},当前GPS定位点pi的道路候选集为Rc={r1,r2,...,rm},GPS定位点p到道路r的最短距离为D(p,r),GPS定位点pi-1pi与道路r所形成的夹角为A(pi-1pi,r),夹角取值范围为[0,π],将当前GPS定位点pi匹配到道路r′i上的公式为:
在上述公式中,α=1.0,β=0.5。
本申请实施例采取的技术方案还包括:在所述步骤d中,所述通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果还包括:
步骤d1:清除所述GPS定位数据中距离当前时间超过第一时间阀值的历史GPS定位点;
步骤d2:分别计算当前GPS定位点与历史GPS定位数据中上一个GPS定位点之间的直线距离和时间间隔,根据所述直线距离和时间间隔得到车辆的直线速度。
本申请实施例采取的技术方案还包括:在所述步骤d中,所述通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果还包括:
步骤d3:判断当前GPS定位点与上一个GPS定位点的直线距离是否小于距离阀值,如果小于距离阀值,以上一次的匹配结果为当前匹配结果;否则,执行步骤d4;
步骤d4:判断当前GPS定位点与上一个GPS定位点的时间间隔是否大于第二时间阀值,以及直线速度是否大于第一速度阀值,如果时间间隔大于第二时间阀值,且直线速度大于第一速度阀值,判定速度异常;否则,执行步骤d5;
步骤d5:分别计算车辆距离上一次计算得到的当前道路出口的前进距离,以及道路方向与车辆前进方向之间的夹角,并判断前进距离是否小于上一次计算得到的距离当前道路出口的距离,以及道路方向与车辆前进方向夹角是否在第一角度阀值以内,如果前进距离小于上一次计算得到的距离当前道路出口的距离,且道路方向与车辆前进方向夹角在第一角度阀值以内,判定车辆仍在当前道路上;否则,执行步骤d6;
步骤d6:分别计算倒数第3个历史GPS定位点与倒数第2个历史GPS定位点、以及倒数第2个历史GPS定位点与倒数第1个历史GPS定位点之间的角度差,并判断两个角度差计算结果是否超过第二角度阀值,如果超过第二角度阀值,将方向角权重设为0;否则,将方向角权重设为0.0009。
本申请实施例采取的技术方案还包括:在所述步骤d中,所述通过空间拓扑匹配算法选择道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果具体为:
定义道路ri与道路rj的连通性为C(ri,rj),当从道路ri出发可以到达道路rj时,C(ri,rj)取值为1,否则取值为0;所述空间拓扑匹配算法公式为:
在上述公式中,α=1.0,β=0.5,λ=0.3,N=5。
本申请实施例采取的另一技术方案为:一种拓扑道路匹配系统,包括:
GPS数据获取模块:用于获取车辆的GPS定位数据;
道路获取模块:用于根据所述GPS定位数据加载道路数据,得到车辆的道路候选集;
定位点个数判断模块:用于判断所述GPS定位数据中的历史GPS定位点个数是否小于定位点阀值,如果小于定位点阀值,通过第一匹配模块进行道路匹配;如果不小于定位点阀值,通过第二匹配模块进行道路匹配;
第一匹配模块:用于通过空间匹配算法分别计算车辆当前的GPS定位点与所述道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果;
第二匹配模块:用于通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果。
本申请实施例采取的技术方案还包括:所述道路获取模块根据GPS定位数据加载道路数据具体为:根据GPS定位数据获取车辆的九宫格ID,并根据九宫格ID加载九宫格内的所有道路数据。
本申请实施例采取的技术方案还包括:所述第一匹配模块通过空间匹配算法分别计算车辆当前的GPS定位点与道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果具体为:
给定历史GPS定位点为{pi-N,pi-N+1,...,pi-1},各个历史GPS定位点的道路匹配结果为{r′i-N,r′i-N+1,...,r′i-1},当前GPS定位点pi的道路候选集为Rc={r1,r2,...,rm},GPS定位点p到道路r的最短距离为D(p,r),GPS定位点pi-1pi与道路r所形成的夹角为A(pi-1pi,r),夹角取值范围为[0,π],将当前GPS定位点pi匹配到道路r′i上的公式为:
在上述公式中,α=1.0,β=0.5。
本申请实施例采取的技术方案还包括:
数据清除模块:用于清除所述GPS定位数据中距离当前时间超过第一时间阀值的历史GPS定位点;
数据计算模块:用于分别计算当前GPS定位点与历史GPS定位数据中上一个GPS定位点之间的直线距离和时间间隔,根据所述直线距离和时间间隔得到车辆的直线速度。
本申请实施例采取的技术方案还包括:
距离判断模块:用于判断当前GPS定位点与上一个GPS定位点的直线距离是否小于距离阀值,如果小于距离阀值,以上一次的匹配结果为当前匹配结果;否则,通过时间判断模块判断当前GPS定位点与上一个GPS定位点的时间间隔是否大于第一时间阀值;
时间判断模块:用于判断当前GPS定位点与上一个GPS定位点的时间间隔是否大于第二时间阀值,以及直线速度是否大于第一速度阀值,如果时间间隔大于第二时间阀值,且直线速度大于第一速度阀值,判定速度异常;否则,通过距离及夹角判断模块计算夹角;
距离及夹角判断模块:用于分别计算车辆距离上一次计算得到的当前道路出口的前进距离,以及道路方向与车辆前进方向之间的夹角,并判断前进距离是否小于上一次计算得到的距离当前道路出口的距离,以及道路方向与车辆前进方向夹角是否在第一角度阀值以内,如果前进距离小于上一次计算得到的距离当前道路出口的距离,且道路方向与车辆前进方向夹角在第一角度阀值以内,判定车辆仍在当前道路上;否则,通过角度差计算模块计算角度差;
角度差计算模块:用于分别计算倒数第3个历史GPS定位点与倒数第2个历史GPS定位点、以及倒数第2个历史GPS定位点与倒数第1个历史GPS定位点之间的角度差,并判断两个角度差计算结果是否超过第二角度阀值,如果超过第二角度阀值,通过权重设置模块将方向角权重设为0;否则,通过权重设置模块将方向角权重设为0.0009。
本申请实施例采取的技术方案还包括:所述第二匹配模块通过空间拓扑匹配算法选择道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果具体为:
定义道路ri与道路rj的连通性为C(ri,rj),当从道路ri出发可以到达道路rj时,C(ri,rj)取值为1,否则取值为0;所述空间拓扑匹配算法公式为:
在上述公式中,α=1.0,β=0.5,λ=0.3,N=5。
本申请实施例采取的又一技术方案为:一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的拓扑道路匹配方法的以下操作:
步骤a:获取车辆的GPS定位数据,并根据所述GPS定位数据加载道路数据,得到车辆的道路候选集;
步骤b:判断所述GPS定位数据中的历史GPS定位点个数是否小于定位点阀值,如果小于定位点阀值,执行步骤c;如果不小于定位点阀值,执行步骤d;
步骤c:通过空间匹配算法分别计算车辆当前的GPS定位点与所述道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果;
步骤d:通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果。
相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的拓扑道路匹配方法、系统及电子设备通过结合GPS定位点与道路距离、车辆行驶方向与道路走向、以及道路的连通性等多种因素进行道路匹配,相对于现有技术,本申请至少具有以下优点:
1、通过计算道路方向与车辆前进方向之间的夹角,并根据夹角的大小确定相应计算距离公式的权重,得到较高准确率的匹配结果;
2、对于候选路段较多、且车辆行驶方向变化幅度较大的道路匹配,通过计算道路的连通性进行道路匹配,大大提高匹配精度。
3、充分考虑道路拓扑结构,根据道路拓扑结构进行匹配;
4、针对历史GPS定位点的匹配结果进行综合考虑,再根据距离得到道路匹配结果;
5、根据历史轨迹和现有的角度对比,确定角度在求距离时所占的比重。
附图说明
图1是本申请实施例的拓扑道路匹配方法的流程图;
图2是空间匹配算法示意图;
图3是车辆行驶方向与道路走向示意图;
图4是车辆行驶方向与道路走向的道路匹配结果示意图;
图5是本申请实施例的拓扑道路匹配系统的结构示意图;
图6是本申请实施例提供的拓扑道路匹配方法的硬件设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
请参阅图1,是本申请实施例的拓扑道路匹配方法的流程图。本申请实施例的拓扑道路匹配方法包括以下步骤:
步骤100:获取车辆的GPS定位数据,并判断获取的GPS定位数据是否属于设定的匹配区域(例如中国境内),如果不属于匹配区域,执行步骤200;如果属于匹配区域,执行步骤300;
在步骤100中,通过判断获取的GPS定位数据是否属于设定的匹配区域,从而将不属于设定的匹配区域的异常GPS定位数据过滤掉,以减少后续的数据处理量。
步骤200:判定GPS定位数据为异常数据,匹配结束;
步骤300:根据GPS定位数据获取车辆的九宫格ID,并根据九宫格ID加载九宫格内的所有道路数据,得到车辆的道路候选集;
在步骤300中,获取车辆的九宫格ID具体为:根据GPS定位数据得到车辆当前GPS定位点所在格子的ID,再获取当前格子周围的8个格子的ID,得到车辆的九宫格ID。
步骤400:判断GPS定位数据中的历史GPS定位点个数是否小于设定的定位点阀值N,如果历史GPS定位点个数小于设定的定位点阀值N,执行步骤500;如果历史GPS定位点个数不小于设定的定位点阀值N,执行步骤600;
在步骤400中,在实际应用中,N值不小于2,通常取值为5,具体可根据精确度要求进行设定。
步骤500:遍历道路候选集,分别计算车辆当前的GPS定位点与道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小、且夹角小于夹角取值范围的道路作为道路匹配结果,并计算匹配点、匹配点与距离当前道路的入口距离与出口距离;
在步骤500中,匹配点是在当前道路上距离当前位置最近的一个GPS定位点,这个点是在道路拓扑图上的一个点(道路拓扑图是存储在shp文件中的,可以根据道路拓扑图获取具体的GPS定位点),而浮动车的实际位置可能不在道路上,这个时候该浮动车在道路上对应的GPS定位点就叫匹配点。匹配点与当前道路的入口距离可以根据该匹配点与当前道路入口的GPS定位点之间的点与点距离累加计算,同理,匹配点与当前道路的出口距离也可以根据该匹配点与当前道路出口的GPS定位点之间的点与点距离累加计算。例如,当前道路上的GPS定位点用r0、r1、r2、r3...rn-1rn-1rn表示,匹配点是rq(1<q<n),那么匹配点距离当前道路的入口距离则为r0r1+r2r3...++rq-1rq;距离当前道路的出口距离为相反的计算。
本申请实施例的拓扑道路匹配方法通过结合GPS定位点与道路距离、车辆行驶方向与道路走向等多种因素,采样空间匹配算法进行道路匹配。空间匹配算法的具体匹配过程如下:
假设给定历史GPS定位点为{pi-N,pi-N+1,...,pi-1},各个历史GPS定位点的道路匹配结果为{r′i-N,r′i-N+1,...,r′i-1},当前GPS定位点pi的道路候选集为Rc={r1,r2,...,rm},道路匹配算法的目标是将当前GPS定位点pi匹配到正确的道路ri上,并计算出pi在r′i上的匹配点pi'。
空间匹配算法:
具体如图2所示,为空间匹配算法示意图。定义GPS定位点p到道路r的最短距离为D(p,r),单位为km,在只考虑空间距离的情况下,当前GPS定位点pi匹配到道路r′i上的算法公式为:
通过公式(1)可以直接将GPS定位点匹配到距离最近的道路上,然而高速公路是由两个相反方向的行车道构成(称为双向车道),由于两条行车道相互平行,且距离很近,如果只计算GPS定位点与道路的垂直距离,则很容易将GPS定位点匹配在错误的行车道上(如图2所示),道路匹配的正确率很低,且容易出现行车轨迹在两个行车道上回来震荡的现象,因此,需要考虑车辆行驶方向与道路走向的因素。
如图3所示,为车辆行驶方向与道路走向示意图。定义射线pi-1pi与有向道路r所形成的夹角为A(pi-1pi,r),夹角取值范围为[0,π]:
在公式(2)中,α=1.0,β=0.5。
在图3中,虽然GPS定位点pi离道路r2比较近,但GPS定位点pi与道路r2的夹角相差非常大,在考虑夹角权重的情况下,就可以正确地将GPS定位点pi匹配到道路r1上,具体匹配结果如图4所示。
步骤600:清除GPS定位数据中距离当前时间超过预设的第一时间阀值的历史GPS定位点;
在步骤600中,预设的第一时间阀值为5分钟,即清除GPS定位数据中距离当前时间5分钟以上的GPS定位点,具体时间可根据实际应用进行设定。
步骤700:分别计算当前GPS定位点与历史GPS定位数据中上一个GPS定位点之间的直线距离和时间间隔,并根据直线距离和时间间隔得到车辆的直线速度;
在步骤700中,直线速度小于等于实际平均速度。
步骤800:判断当前GPS定位点与上一个GPS定位点的直线距离是否小于预设的距离阀值,如果小于预设的距离阀值,执行步骤900;否则,执行步骤1000;
在步骤800中,预设的距离阀值为1米,具体可根据实际应用进行设定。
步骤900:以上一次的匹配结果为当前匹配结果,匹配结束;
步骤1000:判断当前GPS定位点与上一个GPS定位点的时间间隔是否大于预设的第二时间阀值,以及直线速度是否大于预设的第一速度阀值,如果时间间隔大于预设的第二时间阀值,且直线速度大于预设的第一速度阀值,执行步骤1100;否则,执行步骤1200;
在步骤1000中,预设的第二时间阀值为5秒,预设的第一速度阀值为300KM/H,具体可根据实际应用进行设定。
步骤1100:判定速度异常(原因可能是出现GPS定位点漂移),匹配结束;
步骤1200:分别计算车辆距离上一次计算得到的当前道路出口的前进距离,以及道路方向与车辆前进方向之间的夹角,并判断前进距离是否小于上一次计算得到的距离当前道路出口的距离,以及道路方向与车辆前进方向夹角是否在预设的第一角度阀值以内,如果前进距离小于上一次计算得到的距离当前道路出口的距离,且道路方向与车辆前进方向夹角在预设的第一角度阀值以内,执行步骤1300;否则,执行步骤1400;
在步骤1200中,预设的第一角度阀值为45度,具体可根据实际应用进行设定。
步骤1300:判定车辆仍在当前道路上,匹配结束;
步骤1400:分别计算倒数第3个历史GPS定位点与倒数第2个历史GPS定位点、以及倒数第2个历史GPS定位点与倒数第1个历史GPS定位点之间的角度差,并判断两个角度差是否超过预设的第二角度阀值,如果超过预设的第二角度阀值,执行步骤1500;否则,执行步骤1600;
在步骤1400中,如果角度差超过预设的第二角度阀值,表示两个GPS定位点对应时刻的方向角度的差异太大,需要重置方向权重;预设的第二角度阀值为45度,具体可根据实际应用进行设定。
步骤1500:判定方向发生较大变化,将方向角权重设为0,并执行步骤1700;
步骤1600:将方向角权重设为0.0009;
步骤1700:遍历道路候选集,选择距离与角度差的加权和最小的道路作为道路匹配结果,并计算匹配点、匹配点与当前道路的入口距离与出口距离;
在步骤1700中,距离为垂直距离加上距离角度系数倒数乘积(角度转换成圆周率表示)。当车辆行驶到立交桥时,候选道路较多,且车辆行驶方向变化幅度较大,此时空间匹配算法的匹配精度较差,需要考虑道路的连通性,通过空间拓扑匹配算法进行道路匹配。
空间拓扑匹配算法具体为:
定义道路ri与道路rj的连通性为C(ri,rj),当从道路ri出发可以到达道路rj时,C(ri,rj)取值为1,否则取值为0。综合考虑最短距离、夹角以及道路连通性因素,基于权重的空间拓扑匹配算法公式为:
在公式(3)中,α=1.0,β=0.5,λ=0.3,N=5。
请参阅图5,是本申请实施例的拓扑道路匹配系统的结构示意图。本申请实施例的拓扑道路匹配系统包括GPS数据获取模块、道路获取模块、定位点个数判断模块、第一匹配模块、数据清除模块、数据计算模块、距离判断模块、时间判断模块、距离及夹角判断模块、角度差计算模块、权重设置模块和第二匹配模块。
GPS数据获取模块:用于获取车辆的GPS定位数据,并判断获取的GPS定位数据是否属于设定的匹配区域(例如中国境内),如果不属于匹配区域,判定GPS定位数据为异常数据,匹配结束;如果属于匹配区域,通过道路获取模块获取车辆的道路候选集;其中,通过判断获取的GPS定位数据是否属于设定的匹配区域,从而将不属于设定的匹配区域的异常GPS定位数据过滤掉,以减少后续的数据处理量。
道路获取模块:用于根据GPS定位数据获取车辆的九宫格ID,并根据九宫格ID加载九宫格内的所有道路数据,得到车辆的道路候选集;获取车辆的九宫格ID具体为:根据GPS定位数据得到车辆当前GPS定位点所在格子的ID,再获取当前格子周围的8个格子的ID,得到车辆的九宫格ID。
定位点个数判断模块:用于判断GPS定位数据中的历史GPS定位点个数是否小于设定的定位点阀值N,如果历史GPS定位点个数小于设定的定位点阀值N,通过第一匹配模块进行单点匹配;如果历史GPS定位点个数不小于设定的定位点阀值N,通过数据清除模块清除历史GPS定位点;其中,在实际应用中,N值不小于2,通常取值为5,具体可根据精确度要求进行设定。
第一匹配模块:用于遍历道路候选集,分别计算车辆当前的GPS定位点与道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且夹角小于夹角取值范围的道路作为道路匹配结果,并计算匹配点、匹配点与距离当前道路的入口距离与出口距离;其中,匹配点是在当前道路上距离当前位置最近的一个GPS定位点,这个点是在道路拓扑图上的一个点(道路拓扑图是存储在shp文件中的,可以根据道路拓扑图获取具体的GPS定位点),而浮动车的实际位置可能不在道路上,这个时候该浮动车在道路上对应的GPS定位点就叫匹配点。匹配点与当前道路的入口距离可以根据该匹配点与当前道路入口的GPS定位点之间的点与点距离累加计算,同理,匹配点与当前道路的出口距离也可以根据该匹配点与当前道路出口的GPS定位点之间的点与点距离累加计算。例如,当前道路上的GPS定位点用r0、r1、r2、r3...rn-1rn-1rn表示,匹配点是rq(1<q<n),那么匹配点距离当前道路的入口距离则为r0r1+r2r3...++rq-1rq;距离当前道路的出口距离为相反的计算。
第一匹配模块在进行单点匹配时,通过结合GPS定位点与道路距离、车辆行驶方向与道路走向等多种因素,采样空间匹配算法进行道路匹配。空间匹配算法的具体匹配过程如下:
假设给定历史GPS定位点为{pi-N,pi-N+1,...,pi-1},各个历史GPS定位点的道路匹配结果为{r′i-N,r′i-N+1,...,r′i-1},当前GPS定位点pi的道路候选集为Rc={r1,r2,...,rm},道路匹配算法的目标是将当前GPS定位点pi匹配到正确的道路r′i上,并计算出pi在r′i上的匹配点pi'。
空间匹配算法:
具体如图2所示,为空间匹配算法示意图。定义GPS定位点p到道路r的最短距离为D(p,r),单位为km,在只考虑空间距离的情况下,当前GPS定位点pi匹配到道路r′i上的算法公式为:
通过公式(1)可以直接将GPS定位点匹配到距离最近的道路上,然而高速公路是由两个相反方向的行车道构成(称为双向车道),由于两条行车道相互平行,且距离很近,如果只计算GPS定位点与道路的垂直距离,则很容易将GPS定位点匹配在错误的行车道上,道路匹配的正确率很低,且容易出现行车轨迹在两个行车道上回来震荡的现象,因此,需要考虑车辆行驶方向与道路走向的因素。
如图3所示,为车辆行驶方向与道路走向示意图。定义射线pi-1pi与有向道路r所形成的夹角为A(pi-1pi,r),夹角取值范围为[0,π]:
在公式(2)中,α=1.0,β=0.5。
在图3中,虽然GPS定位点pi离道路r2比较近,但GPS定位点pi与道路r2的夹角相差非常大,在考虑夹角权重的情况下,就可以正确地将GPS定位点pi匹配到道路r1上,具体匹配结果如图4所示。
数据清除模块:用于清除GPS定位数据中距离当前时间超过预设的第一时间阀值的历史GPS定位点;其中,预设的第一时间阀值为5分钟,即清除GPS定位数据中距离当前时间5分钟以上的GPS定位点,具体时间可根据实际应用进行设定。
数据计算模块:用于分别计算当前GPS定位点与历史GPS定位数据中上一个GPS定位点之间的直线距离和时间间隔,并根据直线距离和时间间隔得到车辆的直线速度;其中,直线速度小于等于实际平均速度。
距离判断模块:用于判断当前GPS定位点与上一个GPS定位点的直线距离是否小于预设的距离阀值,如果小于预设的距离阀值,以上一次的匹配结果为当前匹配结果,匹配结束;否则,时间判断模块判断当前GPS定位点与上一个GPS定位点的时间间隔是否大于预设的第一时间阀值;其中,预设的距离阀值为1米,具体可根据实际应用进行设定。
时间判断模块:用于判断当前GPS定位点与上一个GPS定位点的时间间隔是否大于预设的第二时间阀值,以及直线速度是否大于预设的第一速度阀值,如果时间间隔大于预设的第二时间阀值,且直线速度大于预设的第一速度阀值,判定速度异常,匹配结束;否则,通过距离及夹角判断模块计算夹角;其中,预设的第二时间阀值为5秒,预设的第一速度阀值为300KM/H,具体可根据实际应用进行设定。
距离及夹角判断模块:用于分别计算车辆距离上一次计算得到的当前道路出口的前进距离以及道路方向与车辆前进方向之间的夹角,并判断前进距离是否小于上一次计算得到的距离当前道路出口的距离,以及道路方向与车辆前进方向夹角是否在预设的第一角度阀值以内,如果前进距离小于上一次计算得到的距离当前道路出口的距离,且道路方向与车辆前进方向夹角在预设的第一角度阀值以内,判定车辆仍在当前道路上,匹配结束;否则,通过角度差计算模块计算角度差;其中,预设的第一角度阀值为45度,具体可根据实际应用进行设定。
角度差计算模块:用于分别计算倒数第3个历史GPS定位点与倒数第2个历史GPS定位点、以及倒数第2个历史GPS定位点与倒数第1个历史GPS定位点之间的角度差,并判断两个角度差是否超过预设的第二角度阀值,并通过权重设置模块根据角度差计算结果设置方向角权重;其中,如果角度差超过预设的第二角度阀值,表示两个GPS定位点对应时刻的方向角度的差异太大,需要重置方向权重;预设的第二角度阀值为45度,具体可根据实际应用进行设定。
权重设置模块:用于在两个角度差超过预设的第二角度阀值时,判定方向发生较大变化,将方向角权重设为0;在两个角度差不超过预设的第二角度阀值时,将方向角权重设为0.0009;
第二匹配模块:用于遍历道路候选集,选择距离与角度差的加权和最小的道路作为道路匹配结果,并计算匹配点、匹配点与当前道路的入口距离与出口距离;距离为垂直距离加上距离角度系数倒数乘积(角度转换成圆周率表示)。当车辆行驶到立交桥时,候选道路较多,且车辆行驶方向变化幅度较大,此时空间匹配算法的匹配精度较差,需要考虑道路的连通性,距离及夹角判断模块通过空间拓扑匹配算法进行道路匹配。具体匹配过程如下:
定义道路ri与道路rj的连通性为C(ri,rj),当从道路ri出发可以到达道路rj时,C(ri,rj)取值为1,否则取值为0。综合考虑最短距离、夹角以及道路连通性因素,基于权重的空间拓扑匹配算法公式为:
在公式(3)中,α=1.0,β=0.5,λ=0.3,N=5。
图6是本申请实施例提供的拓扑道路匹配方法的硬件设备结构示意图。如图6所示,该设备包括一个或多个处理器以及存储器。以一个处理器为例,该设备还可以包括:输入系统和输出系统。
处理器、存储器、输入系统和输出系统可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的处理方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理系统。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入系统可接收输入的数字或字符信息,以及产生信号输入。输出系统可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任一方法实施例的以下操作:
步骤a:获取车辆的GPS定位数据,并根据所述GPS定位数据加载道路数据,得到车辆的道路候选集;
步骤b:判断所述GPS定位数据中的历史GPS定位点个数是否小于定位点阀值,如果小于定位点阀值,执行步骤c;如果不小于定位点阀值,执行步骤d;
步骤c:通过空间匹配算法分别计算车辆当前的GPS定位点与所述道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果;
步骤d:通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例提供的方法。
本申请实施例提供了一种非暂态(非易失性)计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行以下操作:
步骤a:获取车辆的GPS定位数据,并根据所述GPS定位数据加载道路数据,得到车辆的道路候选集;
步骤b:判断所述GPS定位数据中的历史GPS定位点个数是否小于定位点阀值,如果小于定位点阀值,执行步骤c;如果不小于定位点阀值,执行步骤d;
步骤c:通过空间匹配算法分别计算车辆当前的GPS定位点与所述道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果;
步骤d:通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行以下操作:
步骤a:获取车辆的GPS定位数据,并根据所述GPS定位数据加载道路数据,得到车辆的道路候选集;
步骤b:判断所述GPS定位数据中的历史GPS定位点个数是否小于定位点阀值,如果小于定位点阀值,执行步骤c;如果不小于定位点阀值,执行步骤d;
步骤c:通过空间匹配算法分别计算车辆当前的GPS定位点与所述道路候选集中每条道路之间的距离及夹角,并选择与车辆当前的GPS定位点距离最小且所述夹角小于夹角取值范围的道路作为道路匹配结果;
步骤d:通过空间拓扑匹配算法选择所述道路候选集中距离与角度差的加权和最小的道路作为道路匹配结果。
本申请实施例的拓扑道路匹配方法、系统及电子设备通过结合GPS定位点与道路距离、车辆行驶方向与道路走向、以及道路的连通性等多种因素进行道路匹配,相对于现有技术,本申请至少具有以下优点:
1、通过计算道路方向与车辆前进方向之间的夹角,并根据夹角的大小确定相应计算距离公式的权重,得到较高准确率的匹配结果;
2、对于候选路段较多、且车辆行驶方向变化幅度较大的道路匹配,通过计算道路的连通性进行道路匹配,大大提高匹配精度。
3、充分考虑道路拓扑结构,根据道路拓扑结构进行匹配;
4、针对历史GPS定位点的匹配结果进行综合考虑,再根据距离得到道路匹配结果;
5、根据历史轨迹和现有的角度对比,确定角度在求距离时所占的比重。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。