(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)【申请公布号】CN110518916A
(43)【申请公布日】20191129

(21)【申请号】201910714330.X
(22)【申请日】20190803
(71)【申请人】 电子科技大学 ; 【地址】 611731 四川省成都市高新区(西区)西源大道2006号 ;
(72)【发明人】 周艳 ; 黄曼娜 ; 蒋璠 ; 王旭 ;
(74)【专利代理机构】电子科技大学专利中心 51203【代理人】周刘英 ;
(51)【Int.CI.】 H03M 7/30 (2006.01) ; G06K 9/62 (2006.01) ;

(54)【发明名称】一种基于Fréchet距离的轨迹数据压缩方法
(57)【摘要】本发明公开了一种基于Fréchet距离的轨迹数据压缩方法,属于时空数据处理技术领域。本发明首先读取轨迹数据,根据轨迹点的时空位置信息映射得到近似轨迹点;通过计算子轨迹与近似轨迹之间的Fréchet距离,判断子轨迹与近似轨迹的时空相似性,同时基于轨迹特征点的判断准则提取子轨迹的特征点,再将所有特征点按轨迹点的原始时序进行连接形成压缩轨迹,以此实现轨迹压缩。本发明将轨迹数据的位置信息与时间信息有机结合,并考虑到轨迹数据间的空间关系,基于Fréchet距离判断轨迹与近似轨迹的时空误差,以此顾及原始轨迹与压缩轨迹的时空相似性,去除冗余数据,实现轨迹数据的无参数压缩。

【权利要求书】


1.一种基于Fréchet距离的轨迹数据压缩方法,其特征在于,包括下列步骤:

步骤1:按轨迹点时序每次读取原始轨迹的一个轨迹点存入待进行轨迹压缩的子轨迹;

步骤2:根据轨迹点间的时空位置,依次将子轨迹上的轨迹点通过函数关系映射得到近似轨迹点,基于各近似轨迹点得到当前子轨迹的近似轨迹;

步骤3:计算当前子轨迹的轨迹描述长度:

计算当前子轨迹的近似轨迹的描述长度;

计算当前子轨迹与其近似轨迹之间的时空误差;

取两者的和作为当前子轨迹的轨迹描述长度;

步骤4:对当前子轨迹进行特征点检测,并标记特征点;

计算当前子轨迹的特征点检测阈值:按时序计算当前子轨迹上各相邻轨迹点之间的欧氏距离并累加求和,并将累加求和结果取以2为底的对数,得到特征点检测阈值;

判断当前子轨迹的轨迹描述长度是否大于特征点检测阈值,若是,则将距当前子轨迹的终点最近的轨迹点作为其特征点,并保存;同时将当前特征点作为待进行轨迹压缩的子轨迹新的起始点;

步骤5:判断所有轨迹点是否读取完毕,若是,则执行步骤6;否则继续执行步骤1;

步骤6:按时序连接特征点,输出压缩轨迹。

2.如权利要求1所述的方法,其特征在于,步骤3中,近似轨迹的描述长度的具体计算方式为:

计算当前子轨迹的起始点与终点之间的欧式距离,再对得到的欧式距离取以2为底的对数,得到近似轨迹的描述长度。

3.如权利要求1或2所述的方法,其特征在于,步骤3中,当前子轨迹与其近似轨迹之间的时空误差的具体计算方式为:

计算当前子轨迹与其近似轨迹之间的Fréchet距离,再对得到的Fréchet距离取以2为底的对数,得到当前子轨迹与其近似轨迹之间的时空误差。

4.如权利要求1所述的方法,其特征在于,步骤2中,获取任意轨迹点Pi的近似轨迹点Pi′的具体为:

基于轨迹点Pi的位置坐标和时间,以及轨迹点Pi所在的子轨迹的起始点和终点的位置坐标和时间,计算近似轨迹点Pi′的位置坐标

其中,表示轨迹点Pi的位置坐标和时间;

表示子轨迹的起始点的位置坐标和时间;

表示子轨迹的终点的位置坐标和时间。

【说明书】


一种基于Fréchet距离的轨迹数据压缩方法

【0001】技术领域

【0002】本发明涉及时空数据处理技术领域,特别是涉及一种时空轨迹数据压缩方法。

【0003】背景技术

【0004】随着移动终端设备的普及以及GPS空间定位技术的快速发展,轨迹数据快速增长,这些轨迹数据蕴藏着十分重要的价值,通过对轨迹数据的分析与挖掘,能够更好地反映移动对象的行为特征,同时对于提高城市的运转效率等都起着至关重要的作用。由于轨迹数据具有数据量大、时空序列性强、价值密度低、数据冗余等特点,这会导致在轨迹数据规模快速增长的过程中,对于大规模轨迹数据的管理、查询、存储以及轨迹数据的挖掘、分析等方面均带来巨大压力。因此,提出高效的轨迹数据压缩方法能够为解决上述问题提供有力地支撑。

【0005】随着大规模轨迹数据的不断增长,用于解决轨迹数据量大、数据冗余问题的轨迹数据压缩方法陆续产生。轨迹数据压缩方法主要关注数据压缩率,旨在尽可能地减小轨迹数据规模,用少量的轨迹数据来表达原始轨迹信息,去除轨迹数据冗余,实现轨迹数据的高效存储与管理,以支持大规模轨迹数据高效查询与轨迹数据挖掘。

【0006】目前,轨迹数据压缩方法通常分为以下三类:

【0007】(1)线段简化的压缩方法:

【0008】该方法是利用一条包含更少点数的曲线来近似地表达由一系列离散点组成的原始曲线,同时在简化的过程中,需要确保近似曲线与原始曲线之间的差距尽可能小。将线段简化压缩方法应用到轨迹数据压缩的领域,是指利用尽可能少的轨迹数据点来表达原始轨迹所包含的信息,在压缩过程中,更好地调控压缩率与误差阈值成为尽可能减少压缩轨迹与原始轨迹之间的差距的重要指标。具体可参考文献《Poiker T,Douglas DH.ReflectionEssay:Algorithms for the Reduction of the Number of Points Required toRepresent a Digitized Line or its Caricature[J].Cartographica TheInternational Journal for Geographic Information and Geovisualization,1973,10(2):112-122.Potamias,Patroumpas K,Sellis T.Sampling trajectory streams withspatiotemporal criteria in Scientific and Statistical Database Management[J].IEEE on18th International Conference:2006.》、《基于综合时空特性的混合式轨迹压缩算法[J].计算机应用,2015,35(5):1209-1212.》、《基于偏移量计算的在线GPS轨迹数据压缩[J].计算机工程与应用,2017,53(8):254-259》。

【0009】(2)基于路网结构的轨迹压缩方法:

【0010】该方法通过结合道路网络结构,将轨迹数据点转化为路段序列,然后进行压缩。在压缩过程中,由于与路网结构相结合,通常能够保证获得更为精确的轨迹,同时能够达到更好的压缩率。具体可参考文献《Song R,Sun W,Zheng B,et al.PRESS:A Novel Frameworkof Trajectory Compression in Road Networks[J].Proceedings of the VIDBEndowment,2014,7(9):661-672.Han Y,Sun W,Zheng B.COMPRESS:A ComprehensiveFramework of Trajectory Compression in Road Networks[J].ACMTransactions onDatabase Systems,2017,42(2):1-49》、《基于道路特征的海量GPS监控数据压缩方法[J].武汉大学学报:信息科学版,2008,33(4):337-340》。

【0011】(3)基于语义的轨迹压缩方法:

【0012】该方法利用关键性的轨迹信息和轨迹状态来大致表达轨迹的运动状态,使得压缩后的轨迹数据便于人们更好地理解轨迹的意义,并且在一定程度上能够很好地节省空间,但是通常在压缩的过程中,轨迹数据精确的时空信息易于丢失。具体可参考文献《Spaccapietra S,Parent C,Damiani M L,et al.A conceptual view on trajectories[J].Data&Knowledge Engineering,2008,65(1):126-146.Schmid F,Richter K F,LaubeP.Semantic Trajectory Compression[C].International Symposium on Advances inSpatial&Temporal Databases,2009,5644:411-416》、《基于有趣地点压缩的时空轨迹聚类[J].北京交通大学学报:自然科学版,2011,35(3):53-57》。

【0013】现有的轨迹数据压缩方法主要追求轨迹数据的最优压缩率,虽然在一定程度上考虑了轨迹形状,但没有充分考虑轨迹数据的时空特征,可能造成轨迹压缩后的重要时空信息损失,如特征点的删除、特征曲线的过度简化等,这将直接影响轨迹数据挖掘和轨迹数据相关可视分析的精度。

【0014】发明内容

【0015】本发明的发明目的在于:针对上述存在的问题,提供一种基于Fréchet距离准则的时空轨迹数据压缩方法,充分顾及轨迹数据的时间、空间特性,在大规模轨迹数据压缩的过程中,既能够确保较高效压缩,又尽可能保证压缩轨迹的时空相似性。

【0016】本发明的基于Fréchet距离的轨迹数据压缩方法,包括下列步骤:

【0017】步骤1:按轨迹点时序每次读取原始轨迹的一个轨迹点(也称轨迹数据点,包括轨迹点的位置坐标和时间(轨迹点采集时间))存入待进行轨迹压缩的子轨迹;

【0018】步骤2:根据轨迹点间的时空位置,依次将子轨迹上的轨迹点通过函数关系映射得到近似轨迹点,基于各近似轨迹点得到当前子轨迹的近似轨迹;

【0019】步骤3:计算当前子轨迹的轨迹描述长度:

【0020】计算当前子轨迹的近似轨迹的描述长度;

【0021】计算当前子轨迹与其近似轨迹之间的时空误差;

【0022】取两者的和作为当前子轨迹的轨迹描述长度;

【0023】步骤4:对当前子轨迹进行特征点检测,并标记特征点;

【0024】计算当前子轨迹的特征点检测参考值:按时序计算当前子轨迹上各相邻轨迹点之间的欧氏距离并累加求和,并将累加求和结果取以2为底的对数,得到特征点检测阈值;

【0025】判断当前子轨迹的轨迹描述长度是否大于特征点检测阈值,若是,则将距当前子轨迹的终点最近的轨迹点作为其特征点,并保存;同时将当前特征点作为待进行轨迹压缩的子轨迹新的起始点;

【0026】步骤5:判断所有轨迹点是否读取完毕,若是,则执行步骤6;否则继续执行步骤1;

【0027】步骤6:按时序连接特征点,输出压缩轨迹。

【0028】进一步的,步骤3中,近似轨迹的描述长度的具体计算方式为:

【0029】计算当前子轨迹的起始点与终点之间的欧式距离,再对得到的欧式距离取以2为底的对数,得到近似轨迹的描述长度。

【0030】进一步的,步骤3中,当前子轨迹与其近似轨迹之间的时空误差的具体计算方式为:

【0031】计算当前子轨迹与其近似轨迹之间的Fréchet距离,再对得到的Fréchet距离取以2为底的对数,得到当前子轨迹与其近似轨迹之间的时空误差。

【0032】例如,用符号tr表示当前子轨迹,simtr表示当前子轨迹tr的近似轨迹;

【0033】则当前子轨迹的近似轨迹的描述长度L(simtr)为:

【0034】L(simtr)=log2(d(pm,pk)),其中d(pm,pk)表示当前子轨迹的起始点pm与终点pk之间的欧式距离;

【0035】当前子轨迹与其近似轨迹之间的时空误差L(tr|simtr)为:

【0036】L(tr|simtr)=log2(δfd(tr,simtr)),其中δfd(tr,simtr)表示当前子轨迹tr和其近似轨迹simtr之间的Fréchet距离。

【0037】综上所述,由于采用了上述技术方案,本发明的有益效果是:

【0038】本发明通过轨迹点间的时空关系映射得到近似轨迹点,使得在轨迹压缩的过程中能够充分顾及轨迹数据的时空特征;通过计算子轨迹与近似轨迹间的Fréchet距离来度量二者间的时空误差,这与通常使用的线段间距离计算方式相比,更能较好地顾及子轨迹与近似轨迹之间的时空相似性;根据轨迹特征点判断准则,提取原始轨迹的特征点,去除轨迹数据中的冗余数据,实现轨迹数据无参数压缩。即,本发明提出的轨迹数据压缩方法在尽可能减少轨迹数据量的同时能够较为完整地保留原始轨迹的时空信息,保持压缩轨迹与原始轨迹间的时空相似性,实现轨迹数据的无参数压缩,为解决实际应用中轨迹数据的存储、传输以及挖掘、分析等问题提供有效技术支撑。且本发明具有可靠性高、精确性强等特点,能够很好地为轨迹数据管理、挖掘、分析等领域提供支持,满足实际应用效果。

【0039】附图说明

【0040】图1:具体实施方式中,本发明的总体处理过程图;

【0041】图2:具体实施方式中,本发明的概念展示图;

【0042】图3:具体实施方式中,本发明的近似轨迹点图;

【0043】图4:具体实施方式中,本发明的子轨迹的轨迹描述长度计算流程图;

【0044】图5:具体实施方式中,本发明的轨迹特征点的判断准则图。

【0045】具体实施方式

【0046】为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。

【0047】本发明在满足高压缩率的前提下,充分考虑原始轨迹(由轨迹点按时间序列构成的轨迹点集合)的数据的时空特性,尽可能保证压缩轨迹的时空相似性,因此,提出一种基于Fréchet距离准则的时空轨迹数据压缩方法为支持大规模轨迹数据管理、挖掘、分析等提供理论、方法与技术支撑。

【0048】参见图1,为了实现本发明的基于Fréchet距离准则的时空轨迹数据压缩方法,首先读取轨迹数据,根据轨迹点的时空位置信息映射得到近似轨迹点;通过计算子轨迹与近似轨迹之间的Fréchet距离(弗雷歇距离),判断子轨迹与近似轨迹的时空相似性,同时基于轨迹特征点的判断准则提取子轨迹的特征点,再将所有特征点按轨迹点的原始时序进行连接形成压缩轨迹,以此实现轨迹压缩。本发明的关键点在于综合考虑轨迹数据自身的时空特性,提出了一种支持无参数的轨迹压缩方法,将轨迹数据的位置信息与时间信息有机结合,并考虑到轨迹数据间的空间关系,基于Fréchet距离判断轨迹与近似轨迹的时空误差,以此顾及原始轨迹与压缩轨迹的时空相似性,去除冗余数据,实现轨迹数据的无参数压缩。

【0049】本发明的具体实现步骤如下:

【0050】步骤1:初始化子轨迹,按时序读取原始轨迹的一个轨迹数据点存入待压缩的子轨迹;

【0051】步骤1.1:定义原始轨迹点集合TRset,读取原始轨迹TR={P1,P2,P3,…,Pn}存入TRset;

【0052】其中Pi表示原始轨迹TR的第i(i=1,2,…,n)个轨迹点,如图2所示,且每个轨迹点通常表示为其中分别表示轨迹点的横坐标、纵坐标和时间;

【0053】定义待压缩的子轨迹点集合trset,初始化读取TRset中的P1存入trset;定义压缩轨迹点集合cpset,初始化读取P1存入cpset;定义近似轨迹点集合simset,初始化为null;

【0054】其中,子轨迹为:原始轨迹中连续的两个或两个以上轨迹点按原始时序构成的轨迹,用tr={Pm,Pm+1,…,Pk}表示,其中1≤m<k≤n,如图2所示;

【0055】步骤1.2:按时序读取TRset中的下一个轨迹数据点存入trset中,形成子轨迹tr={Pm,Pm+1,…,Pk},其中Pm表示子轨迹起始点,Pk表示子轨迹终点;

【0056】步骤2:根据子轨迹上轨迹点的位置和时间特征,通过时空映射函数计算各轨迹点对应的近似轨迹点的位置坐标;具体步骤有:

【0057】步骤2.1:将tr={Pm,Pm+1,…,Pk}的起始点Pm与终点Pk连接起来,此时对应的二者之间的连线段PmPk为近似轨迹simtr;

【0058】步骤2.2:计算tr={Pm,Pm+1,…,Pk}上各个轨迹点对应的近似轨迹点的坐标信息;

【0059】根据tr={Pm,Pm+1,…,Pk}上的轨迹点Pi的坐标信息和时空关系(即),映射到simtr上,得到轨迹点Pi的近似轨迹点Pi′,如图3所示,Pi′的位置坐标计算方式如下:

【0060】

【0061】

【0062】并将轨迹点Pi的时间作为近似轨迹点Pi′的时间,记为从而得到轨迹点Pi的近似轨迹点Pi′为:如图2中,轨迹点Pm,Pm+1,Pk-1,Pk的近似轨迹点分别为:P′m,P′m+1,P′k-1,P′k,其中,由于Pm,Pk分别为子轨迹tr={Pm,Pm+1,…,Pk}的起点和终点,故其对应的近似轨迹点与其相同,可以不必计算,直接得到。

【0063】步骤2.3:将近似轨迹点Pm′,Pm+1′,…,Pk′写入近似轨迹simset,此时近似轨迹为simtr={Pm′,Pm+1′,…,Pk′},如图2所示;

【0064】即,本具体实施方式中,为了获得任意一条子轨迹的近似轨迹,基于子轨迹的起始点与终点,分别计算子轨迹的各中间轨迹点(除起始点与终点的轨迹点)的近似轨迹点,再将起始点与终点以及近似轨迹点按照时序连接得到该子轨迹的近似轨迹。

【0065】步骤3:根据当前子轨迹tr={Pm,Pm+1,…,Pk}与近似轨迹simtr之间的时空关系,计算tr的轨迹描述长度Lcost(Pm,Pk)=L(simtr)+L(tr|simtr),参见图4所示,具体步骤如下;

【0066】步骤3.1:计算simtr的轨迹描述长度L(simtr):

【0067】计算线段PmPk的欧氏距离值d(pm,pk),并根据极大似然估计理论,将该值取以2为底的对数,记为L(simtr),则L(simtr)的表达式如下:

【0068】

【0069】步骤3.2:计算tr与其simtr之间的时空误差L(tr|simtr):

【0070】基于Fréchet距离准则定义曲线间的距离,计算子轨迹tr和近似轨迹simtr之间的Fréchet距离值δfd(tr,simtr),并根据极大似然估计理论,将该值取以2为底的对数,记为L(tr|simtr),则L(tr|simtr)的表达式如下:

【0071】L(tr|simtr)=log2(δfd(tr,simtr))

【0072】对于本发明而言,子轨迹tr={Pm,Pm+1,…,Pk}和近似轨迹simtr={Pm′,Pm+1′,…,Pk′}上的轨迹点个数相等;构造tr与simtr之间各端点组成的序列点对L:(Pi,Pj′),其中Pi为tr上的轨迹点,Pj′为simtr的轨迹点;每个序列点对L:(Pi,Pj′)之间的欧氏距离,记为d(Pi,Pj′);则δfd(tr,simtr)的定义为:

【0073】

【0074】在该公式中,首先取Fréchet距离值δfd({Pm,Pm+1,…,Pk-1},{Pm′,Pm+1′,…,Pk′})、δfd({Pm,Pm+1,…,Pk},{Pm′,Pm+1′,…,Pk-1′})和δfd({Pm,Pm+1,…,Pk-1},{Pm′,Pm+1′,…,Pk-1′})中的最小值;再将该最小值与d(Pk,Pk′)的最大值作为δfd(tr,simtr)。

【0075】其中,d(Pk,Pk′)表示轨迹点Pk和Pk′之间的欧式距离,从({Pk},{Pk′})开始,可以将{Pm,Pm+1,…,Pk-1}和{Pm′,Pm+1′,…,Pk-1′}看作线串,因此,基于上述关于δfd(tr,simtr)的计算公式,递归计算线串{Pm,Pm+1,…,Pk-1}和{Pm′,Pm+1′,…,Pk-1′}之间的Fréchet距离值,当线串最终减至起始点({Pm},{Pm′})时,停止计算,此时δfd({Pm},{Pm′})=d(Pm,Pm′);

【0076】例如,对于线串{Pm,Pm+1,…,Pk-1}和{Pm′,Pm+1′,…,Pk-1′},则首先计算下述三个Fréchet距离值:

【0077】δfd({Pm,Pm+1,…,Pk-2},{Pm′,Pm+1′,…,Pk-1′});

【0078】δfd({Pm,Pm+1,…,Pk-1},{Pm′,Pm+1′,…,Pk-2′});

【0079】δfd({Pm,Pm+1,…,Pk-2},{Pm′,Pm+1′,…,Pk-2′});

【0080】然后再将上述三个Fréchet距离值的最小值与d(Pk-1,Pk-1′)的最大值作为线串{Pm,Pm+1,…,Pk-1}和{Pm′,Pm+1′,…,Pk-1′}之间的Fréchet距离值;

【0081】进而通过递归方式,最终得到δfd(tr,simtr)的具体值。

【0082】步骤4:在当前子轨迹tr={Pm,Pm+1,…,Pk}上,基于特征点的判断准则对特征点进行标记,具体步骤如下:

【0083】步骤4.1:计算tr的轨迹描述长度参考值L(tr)(也可称为当前子轨迹的特征点检测阈值):

【0084】按时序计算tr上各相邻点间欧氏距离之和,并根据极大似然估计理论,并将该值取以2为底的对数,记为L(tr),则L(tr)的表达式如下:

【0085】

【0086】步骤4.2:若L(simtr)+L(tr|simtr)>L(tr),则tr上存在特征点,标记轨迹点Pk-1为当前子轨迹tr上的特征点cpoint,并存入cpset,同时,清空simset并移除trset中Pk-1之前的所有轨迹点,且将k-1赋值给m,即将轨迹点Pk-1作为tr的当前起始点(新的起始点);否则,清空simset;

【0087】步骤5:判断所有轨迹数据点是否读取完毕;若读取完毕,标记Pk为特征点cpoint,并存入cpset,执行步骤6;否则,返回步骤1.2;

【0088】步骤6:按时序连接cpset中的特征点,输出压缩轨迹cptr;

【0089】本发明提出的轨迹数据压缩方法在尽可能减少轨迹数据量的同时能够较为完整地保留原始轨迹的时空信息,保持压缩轨迹与原始轨迹间的时空相似性,实现轨迹数据的无参数压缩,为解决实际应用中轨迹数据的存储、传输以及挖掘、分析等问题提供有效技术支撑。

【0090】以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

【说明书附图】


【0001】


图1

【0002】


图2

【0003】


图3

【0004】


图4

【0005】


图5