本发明属于轨迹计算技术领域,具体涉及一种基于历史数据的单点路网匹配方法。
背景技术:
路网匹配是基于位置服务的一个重要技术,该项技术主要通过对空间物体运动受限于道路网络的假设,将通过定位技术(如GPS定位)得到的空间位置坐标匹配到其最有可能位于的路段中。该项技术主要应用对象为车辆定位数据,因为车辆的因为都是受限于道路网络的,相比于返回一个带有一定误差的定位点,返回其所在的道路的具体位置能更客观更精准地反映对象的位置,因此路网匹配是在基于位置服务中的一个不可或缺的技术。虽然大部分情况下能够在连续的时间维度中获得一系列的位置序列构成轨迹数据,通过前后轨迹点的相关信息来提高路网匹配的精度,但是现实中依然存在着许多并不能获得轨迹数据但仍需要进行路网匹配的情况。如在使用打车软件的过程中,用户需要将自己的位置汇报给服务器,由于用户在打车时处于静止状态,因此服务器只能获取一个位置点,且仍需要将其匹配到正确的路段上,以将用户的准确位置告知接单的出租车司机。此外,许多基于地理位置签到的社交应用,获得用户在短时间内的连续运动轨迹是不可能的,但是如果能够正确地将用户的位置匹配到对应的路网中的位置的话,也能够更好地提高用户体验。因此基于单点的路网匹配方法的应用也时非常广泛的。
与路网匹配相关的研究工作主要分为基于轨迹的路网匹配技术以及基于单点的定位误差修正技术两类:
(1)基于轨迹的路网匹配技术
该类技术主要通过参照当前待匹配点前后若干的点的上下文信息,联合路网的拓扑结构进行匹配。这种方法的精度较高,但是需要的数据必须是轨迹数据。这种方法在只有一个点信息的情况下,将会完全失去作用。
(2)基于单点的定位误差修正技术
不同于基于轨迹的路网匹配技术,该类技术的研究对象通常为单个空间位置采样点,而不需要前后点的信息。这类方法主要通过在硬件层面对定位进行误差修正。这些方法虽然能在一定程度上提高匹配精度,但是由于算法需要对硬件有一定的要求而在实际应用中并不适合。
可以看出,基于轨迹的路网匹配技术无法处理只有一个位置点的路网匹配问题,基于单点的定位误差修正技术则是由于硬件限制而无法做到普及化。
技术实现要素:
本发明针对传统的两种路网匹配技术的局限性,提出一种基于历史数据的单点路网匹配方法,以克服现有技术的不足。
本发明提出的基于历史数据的单点路网匹配方法,具体步骤分为如下三个阶段:
(一)预处理阶段,对历史轨迹进行地图匹配、路段分割以及轨迹点分配;具体步骤为:
(1)对轨迹数据使用已有的基于隐马尔可夫模型的地图匹配算法,得到每个轨迹点所匹配的路段;
(2)对于每个路段r,收集匹配路段为r的所有历史轨迹点,记作集合Φr;
(3)对于每个路段r,按固定长度γ进行切割成若干线段s,记作集合Ψr;
(4)对于每个路段r的每一个线段s,收集Φr集合中投影位置落在s上的历史轨迹点,记作集合Φrs;
(二)训练阶段,根据预处理阶段处理好的数据训练模型参数;具体步骤为:
步骤(1),对每个路段r,估计参数π(r),具体流程为:
(a)根据预处理阶段得到的Φr统计其点的个数|Φr|;
(b)统计所有历史轨迹点的个数N;
(c)统计所有路段数量NR;
(d)估计参数
步骤(2),对路段r的每个线段s,估计参数ζr(s),具体流程为:
(a)根据预处理阶段得到的Φr统计其点的个数|Φr|;
(b)根据预处理阶段得到的Φr统计其线段的个数|Ψr|;
(c)根据预处理阶段得到的Φrs统计其点的个数|Φrs|;
(d)估计参数
步骤(3),对路段r的每个线段s,估计参数br(s),具体流程为:
(a)根据预处理阶段得到的Φrs统计其点的个数|Φrs|;
(b)对Φrs中的每个点p计算到线段s的投影距离δ(p,s);
(c)估计参数
步骤(4),对路段r的每个线段s,估计参数σr(s),具体流程为:
(a)根据预处理阶段得到的Φrs统计其点的个数|Φrs|;
(b)对Φrs中的每个点p计算到线段s的投影距离δ(p,s);
(c)根据步骤(3)估计参数br(s);
(c)估计参数
(三)在线阶段,根据训练好的模型进行路网匹配,具体步骤为:
(1)根据需进行路网匹配的某一个位置点p,从路网中找出p的投影距离小于100m的所有候选匹配路段;
(2)对候选匹配路段集中的每条路段r,求出p在r上的投影位置位于的线段s;
(3)计算p到s的投影距离δ(p,s);
(4)计算p与r的联合概率
(5)重复步骤(2)—(4),对候选匹配路段中的每条路段r,计算联合概率P(r,p),返回具有最高的联合概率的路段r*=arg maxrP(r,p)作为p所匹配的路段。
本发明提出的基于历史数据的单点路网匹配方法,通过历史轨迹得到每个轨迹点所匹配的路段,从中训练模型得到每条道路所存在的固定偏差以及随机噪声的程度;在线阶段,仅需要一个点的空间坐标信息,通过对候选匹配路段集合中的每条道路估计对应的联合概率,将联合概率最高的路段作为匹配的路段。本发明通过数据驱动的方法,从历史数据的角度进行路网匹配,不需要任何硬件优化,同时也可以应对只有一个点的匹配问题,不需要参考上下文信息。
附图说明
图1为训练模型的历史轨迹点以及需要匹配的点的图示。其中,空心点p1,p2,...,p7为用于训练模型的历史轨迹点;实心点pq为所需要匹配的点。
图2为单点匹配情况示意图。
具体实施方式
下面结合具体实例来说明本发明的具体实施过程:
图1为训练模型的历史轨迹点以及需要匹配的点的图示。
1.预处理阶段,对历史轨迹进行地图匹配、路段分割以及轨迹点分配。具体步骤为:
(1)对轨迹数据使用已有的基于隐马尔可夫模型的地图匹配算法,得到每个轨迹点所匹配的路段;
(2)对于每个路段r,收集匹配路段为r的所有历史轨迹点,记作集合Φr,如图1中空心点构成的集合即Φr={p1,p2,p3,p4,p5,p6,p7};
(3)对路段r,按固定长度γ=100m进行切割成若干线段s,记作集合Ψr={s1,s2,s3};
(4)对线段s1,收集Φr集合中投影位置落在s上的历史轨迹点,即p1,p2,则对线段s2,s3按同样步骤可求得
2.训练阶段,根据预处理阶段处理好的数据训练模型参数。具体步骤为:
步骤(1),对每个路段r,估计参数π(r)。具体流程为:
(a)统计路段r中点的个数|Φr|=7;
(b)统计所有历史轨迹点的个数N=100(图中未画出);
(c)统计所有路段数量NR=10(图中未画出);
(d)估计参数
步骤(2),对路段r的每个线段s,估计参数ζr(s)。具体流程为:
(a)统计路段r中点的个数|Φr|=7;
(b)统计路段r中线段的个数|Ψr|=3;
(c)统计线段s1中的点的个数
(d)估计参数
(e)对线段s2,s3重复流程(c)(d);
步骤(3),对路段r的每个线段s,估计参数br(s)。具体流程为:
(a)统计线段s1中的点的个数
(b)对中的每个点p计算到线段s1的投影距离δ(p,s1),即δ(p1,s1)=10m,δ(p2,s1)=20m;
(c)估计参数
(d)对线段s2,s3重复流程(a)—(c);
步骤(4),对路段r的每个线段s,估计参数σr(s)。具体流程为:
(a)统计线段s1中的点的个数
(b)对中的每个点p计算到线段s1的投影距离δ(p,s1),即δ(p1,s1)=10m,δ(p2,s1)=20m;
(c)根据步骤(3)估计参数br(s1)=15m;
(d)估计参数
(e)对线段s2,s3重复流程(a)—(d)。
3.在线阶段,根据训练好的模型进行路网匹配。具体步骤为:
(1)根据需进行路网匹配的位置点pq,从路网中找出pqp的投影距离小于100m的所有候选匹配路段{r,r1,r2...}(r1,r2,...图中未画出);
(2)对候选匹配路段集中的路段r,求出pq在r上的投影位置位于的线段s1;
(3)计算pq到s1的投影距离δ(pq,s1)=10m;
(4)计算pq与r的联合概率
(5)重复步骤(2)—(4),对候选匹配路段剩余的路段r1,r2,...,计算联合概率,返回具有最高的联合概率的路段r*作为pq所匹配的路段。
下面通过真实数据集上的实验来算法的准确性。我们使用新加坡共22万条出租车轨迹的数据集,我们通过地原轨迹数据进行基于轨迹的地图匹配算法进行匹配得到每个轨迹点所匹配的路段作为真实结果,然后单独将某一个独立的轨迹点的坐标作为算法的输入,使其进行单点路网匹配,通过匹配正确的点的数量比上所有测试的数据点的数量作为算法的准确率。我们使用典型的分类算法,包括人工神经网络(ANN)、softmax回归(SR)、朴素贝叶斯(NB)、支持向量机(SVM)、决策树(DT)以及k近邻分类(kNN),与我们发明的方法进行对比,表1展示了各个方法的单点匹配准确率,可以看出,本发明方法大幅领先于其他方法。
表1