一种基于Fréchet距离阈值的轨迹相似性快速匹配方法与流程

文档序号:13934787阅读:3655来源:国知局
本发明属于地理信息分析处理
技术领域
:,涉及一种在大规模轨迹数据集上基于fréchet(费雷歇)距离阈值的轨迹相似性快速匹配方法。
背景技术
::随着移动互联网络的深入普及,移动设备上的各类传感器一刻不停地记录着携带者的各类信息,其中人员或设备随着时间推移的位置变化轨迹是最为常见、也是最具应用价值的数据之一,针对轨迹数据的处理与分析也成为地理信息和数据挖掘领域的热点问题。在这当中,轨迹的相似性度量和相似性查询是很多分析过程的基础。由于轨迹距离的绝对值随着定义的不同具有不同的实际意义,在实际应用中往往只是起到一个过滤或者分类的作用,并且实际对象的轨迹数据不可避免地存在噪声扰动,所以大多数情况下只要能够得到给定距离阈值内的查询结果集即可满足应用需求。轨迹的相似性查询在人们的生产生活、相关部门的政策决策以及商业公司的市场调查、产品推广中有很多有价值的应用。例如,查询某区域内具有相似作息规律的人员和频繁行动轨迹,可以获得生活习惯相近的人群,政府部门可以用来作为政策或基础设施建设方案的参考,商业部门可以用作精准的广告投放或产品设计的依据。在宇宙天文学领域,通过天文望远镜可获得大量星轨数据,只要对其进行一定距离阈值的搜索过滤,即可初步得到星系的大致划分和各星体的星系归属以及星系内星体的相对结构。但由于轨迹相似性计算的复杂性和实际轨迹数据集的庞大,现有算法的效率难以满足要求。轨迹的相似性查询包含两个层面的问题,一是轨迹距离的度量的选择,二是查找距离阈值内轨迹的算法。轨迹数据不同于简单的线数据,其前后点之间有严格的次序关系,所以对轨迹距离的度量有很多种方案,包括最大距离、最小距离、平均距离、hausdorff距离、fréchet距离、动态时间规整(dynamictimewarping,dtw)、最长公共子序列(longestcommonsubsequence,lcss)、时间规整编辑距离(timewarpeditdistance,twed)等。研究表明,fréchet距离定义中包含了轨迹点间的时序关系,计算过程考虑了轨迹内部的节点结构,可以更加精确地描述轨迹间的相似程度,在轨迹出现回退、环、交错等情况时不会出现度量值失真,所以fréchet距离度量的描述能力更强,更适合作为衡量轨迹相似性的度量。精确fréchet距离的计算是np难问题,理想的连续曲线fréchet距离求解不存在多项式复杂度的方法,只能先将连续曲线采样后折线化再进行计算。godau于1991年提出一种描述两条轨迹距离关系的图,称为free-spacediagram,在此基础上,提出一种对折线轨迹的计算方法,即逐步缩小ε的值,直到达到临界值,使得恰好有一条通路可以贯穿(0,0)和(p,q),其中,p、q分别为两条轨迹的长度(下同),从符合条件的ε中取最小值,即为两轨迹的近似fréchet距离,计算复杂度为ο((p2q+pq2)logpq);alt和godau于1995年一起改进了算法,优化了寻找ε的策略,将计算出两个轨迹的fréchet距离的时间复杂度降为ο(pqlogpq2)。eiter与mannila于1994年提出了一种fréchet距离的变种版本,称为离散fréchet距离,即先将轨迹近似成有序的离散点,再计算离散点对之间的配对距离,作为连续fréchet距离的近似,并证明了离散fréchet距离是连续fréchet距离的上界,其计算时间复杂度仅为o(pq),这种简化模型更加贴合实际中的轨迹数据,在几乎不损失度量效果的情况下降低了计算复杂度,所以之后的相关fréchet算法研究大多也是基于离散fréchet距离设计的,在这种情况下free-space图简化为轨迹点之间的距离矩阵。agarwal使用有限状态机方法寻找距离矩阵的贯通路径,推导出可在o(pqlog(logq)/log2q)复杂度内判断出fréchet距离上界,进而计算出fréchet距离值。aronov则提出先对轨迹数据进行简化,减少描述轨迹的点个数,再计算其fréchet距离衡量轨迹间的相似度,降低了计算量。driemel引入一种新型逼近简化轨迹类型c-packed曲线,利用此类曲线提出一种简单实用的(1+ε)近似方法,以在接近线性复杂度的时间内计算出轨迹的近似fréchet距离。har-peled针对一种fréchet距离的变种:同伦fréchet距离(homotopicfréchetdistance),提出一种复杂度仅为o(logn)的近似方法,但精确度有待提高。sookyoon针对fréchet距离计算复杂度高的问题,提出一种卷积神经网络(convolutionalneuralnetwork,cnn)结构映射两条轨迹的距离矩阵,可以充分利用cnn的并行计算能力,将比较两条轨迹与参考轨迹的fréchet距离大小的复杂度降低到o(max(p,q)-1)。buchin对两条轨迹的距离矩阵进行单元划分,构建了一个树状查找表(lookuptable)加快遍历freespace的效率,将判断离散fréchet距离是否在阈值内的复杂度降到o(pq(loglogq)2/logq)。gheibi针对可回退的轨迹,提出基于变形free-spacediagram的有权重连通路径的最小回退算法,复杂度为o(pqlogq)。bringmann对近二十年关于计算fréchet距离以及其变种的算法复杂度进行了总结,并在强指数时间假设条件(strongexponentialtimehypothesis,seth)下,对fréchet距离的计算复杂度进行了理论分析与假设推导,指出该问题在1.001的误差范围内不存在强二次函数复杂度解法。从现有技术中可以看出,对fréchet距离的研究主要集中于对原始定义的简化和设计加速计算的数据结构方面,但大多止步于理论设计和推导。技术实现要素:为解决上述技术问题,本发明针对轨迹fréchet距离的阈值过滤问题提出一种快速搜索与匹配方法——排序覆盖判决(ocj:orderedcoveragejudge)方法,通过基于轨迹特征的过滤和顺序覆盖判断两步操作,快速得到与目标轨迹的fréchet距离在设定阈值以内的结果集,并且对方法进行了并行优化,提升了效率。为更好地阐述本发明的技术方案,将问题中涉及到的相关名词和概念解释如下:fréchet距离定义:其中μ:a→b,是指从轨迹a上的点到轨迹b上的点的一对一连续映射。如图1所示,该图为采用fréchet距离度量的示意图。作为轨迹相似性的度量,fréchet距离定义中包含了轨迹点间的时序关系,计算过程考虑了轨迹内部的节点结构,可以更加精确地描述轨迹间的相似程度,在轨迹出现节点回退、节点环、方向交错等情况时,用其他距离度量会得到一个过大或过小的值,或者对不同形状轨迹的相似性表达质量不稳定,而fréchet距离则在直观上更符合轨迹实际的相似情况,且稳定性更高,不会出现距离失真的情况。目标轨迹:作为距离判断基准的一条轨迹,在实际应用中指需要寻找与其fréchet距离在给定阈值以内的其他轨迹,具体可以为各类传感器记录或探测到的移动目标的位置轨迹,如车辆、行人在一段时间内的定位数据,根据实际数据采集情况,目标轨迹数据一般为间隔一定的、具有时间属性的离散位置点序列。目标轨迹的集合称为目标轨迹集;候选轨迹:待判断与目标轨迹距离的轨迹,同样可以为各类传感器记录或探测到的移动目标的位置轨迹,具体形式也是间隔一定的、具有时间属性的离散位置点序列。候选轨迹的集合称为候选轨迹集;总问题:在初始的候选轨迹数据集中找出与目标轨迹的fréchet距离在给定阈值ε之内的轨迹;子问题:判断两个轨迹的fréchet距离是否在给定阈值ε之内;距离:未特别注明的距离指普通距离,即指笛卡尔空间下的欧几里得距离;节点:构成轨迹的有序离散点,由二维或三维坐标和该点在轨迹中的时序组成;轨迹长度:轨迹包含的节点个数;片段(seg):相邻两个点构成的有向线段,多个片段首尾相连即构成轨迹;连接(link):分别属于两条轨迹的两个节点可以建立连接,当且仅当此连接关系与其他连接关系不违反轨迹点的时序关系,即时序位于后面的点,其连接点在时间线上也位于靠后的位置,此即为fréchet距离考虑轨迹点时序关系的表现。一般地,认为轨迹a的首尾点在轨迹b上的连接点就是其首尾点(即表示两条轨迹的首尾点互为连接点);有效连接(validlink):可以建立连接的两个节点的距离小于给定阈值ε,则称此连接方式为有效连接;覆盖(coverage):对于轨迹a中的某个节点a,轨迹b上有相应的一个或多个节点bi,bi+1,bi+2,…,bj可以与a建立有效连接(其中0≤i≤j≤lb,lb为b的轨迹长度)。本发明的核心思想是在基于轨迹特征进行预过滤的基础上,以给定阈值依次计算目标轨迹的每一个节点在候选轨迹上的覆盖范围,如果其覆盖范围是连续且有序的,且其并集可以涵盖候选轨迹中的所有节点,则候选轨迹符合查询条件,即两条轨迹的fréchet距离在给定阈值范围内。具体技术方案如下:一种基于fréchet距离阈值的轨迹相似性快速匹配方法,包括以下步骤:(s1)设初始的候选轨迹集为t0,在t0上进行基于轨迹首尾点的过滤操作,得到处理后的候选轨迹集t1;(s2)在t1上进行基于轨迹最小外包框(minimumboundaryrectangular,mbr)的过滤操作,得到处理后的候选轨迹集t2;(s3)在t2上进行基于轨迹缓冲区(buffer)的过滤操作,得到处理后的候选轨迹集t3;buffer表示缓冲区,具体指在空间对象周围建立的一定宽度的多边形。(s4)对t3进行精确fréchet距离阈值过滤处理,输出最终结果集。进一步地,所述步骤(s1)中的基于轨迹首尾点的过滤操作具体过程为:(s11)遍历初始的候选轨迹集t0,分别提取候选轨迹集t0中每条轨迹的第一个位置点和最后一个位置点,所有第一个位置点组成候选轨迹的首点集合,所有最后一个位置点组成尾点集合,然后分别对首点集合和尾点集合建立空间r树索引;(s12)提取目标轨迹的首点位置坐标和尾点位置坐标,并基于所述首点位置坐标、尾点位置坐标向四周扩展给定的阈值ε,分别生成以目标轨迹的首点、尾点为中心的,以2ε为边长的首、尾正方形查询框;(s13)使用步骤(s11)中建立的两个空间r树索引,分别以步骤(s12)中得到的首、尾正方形查询框进行空间范围查询,得到命中的所有轨迹组成候选轨迹集t1。进一步地,所述步骤(s2)中最小外包框过滤的具体过程为:(s21)求取目标轨迹的最小外包框,遍历目标轨迹上的位置点,保留处于左上角和右下角的点坐标,以左上角、右下角坐标为端点确定的矩形空间范围即最小外包框;(s22)将目标轨迹的最小外包框mbr向外扩展ε,形成待查扩展区embr;(s23)判断所述步骤s13中得到的候选轨迹集t1中的候选轨迹是否位于embr内部,保留轨迹位于embr内部的候选轨迹,所有位于embr内部的候选轨迹组成候选轨迹集t2。进一步地,所述步骤(s3)中基于轨迹缓冲区过滤的具体过程为:(s31)以给定阈值ε为半径求取目标轨迹缓冲区,首先将目标轨迹位置点按顺序连接形成线对象,然后对所述线对象求取缓冲区,即目标轨迹缓冲区;(s32)判断t2中的候选轨迹是否位于目标轨迹缓冲区内部,保留轨迹位于目标轨迹缓冲区内部的候选轨迹,所有位于目标轨迹缓冲区内部的候选轨迹组成候选轨迹集t3。进一步地,所述步骤(s4)中精确fréchet距离阈值过滤处理的具体过程为:(s41)记pi为目标轨迹的第i个位置点,pi+1为目标轨迹的第i+1个位置点,从目标轨迹的第一个点i=1开始处理;(s42)分别对候选轨迹集t3中的每一条候选轨迹进行有效连接搜索,即遍历候选轨迹的位置点,判断其是否与pi、pi+1形成有效连接,计算pi的覆盖范围得到ci,ci包含的m个位置点序号为pi+1的覆盖范围得到ci+1,ci+1包含的n个位置点为所述有效连接定义为两条轨迹中建立连接的两个节点的距离小于给定阈值ε,则称为有效连接;符号表示位置点序号为…,表示位置点序号为:…,m,n为整数。(s43)若ci+1与ci在候选轨迹上形成顺序覆盖关系,即ci+1的起始点位于ci的范围内或紧邻ci的结束点,用位置点符号表示为则i自增1,返回步骤s42;若ci+1与ci所包括的位置点在候选轨迹上不连续或者不能顺序覆盖候选轨迹,即ci+1的起始点与ci包含的位置点集之间形成回退或间隔,用位置点符号表示为或则搜索终止,输出轨迹不匹配的判断结果;(s44)当pi取值为目标轨迹的最后一个点,且覆盖范围的并集涵盖整个候选轨迹,则输出轨迹匹配判断结果,否则输出轨迹不匹配的判断结果。目标轨迹数据为间隔一定的、具有时间属性的离散位置点序列,目标轨迹位置点总数根据实际情况确定,i的取值范围为1至位置点总数。上述表明步骤(s4)中包含多个子问题,即需要以目标轨迹为基准,对经过(s1)、(s2)、(s3)三轮过滤剩下的候选轨迹集t3中的每一个候选轨迹采用本发明提出的ocj方法进行精确的fréchet距离阈值判断。进一步地,实现过程中,有效连接搜索与顺序覆盖判断是同步进行的,在遍历到某一节点时,发现覆盖范围与上一节点的结果不连续,此时即可终止搜索,得到否定的查询结果,而不必计算余下节点的覆盖范围。进一步地,某一节点可能会计算出多段不连续的覆盖范围,假定为两段seg1、seg2,而下一节点的有效连接可能恰好从seg1和seg2间的空隔区开始,且满足从seg1继续的顺序覆盖,而不满足从seg2继续的顺序覆盖,这时会判断为不满足匹配条件,这种情况在轨迹形状较为扭曲时可能出现,而实际上两条轨迹仍然可能符合匹配判断条件。该方法可以只保存每个节点的第一段有效连接对下一节点的顺序覆盖进行判断,但为了提高搜索效率,使覆盖范围能更快地向后延伸,有必要对ocj方法进行改进。通过增加一个栈结构,将当前节点的每一段有效覆盖范围都压栈,当某一节点a无法正常进行顺序覆盖时,就从栈中弹出上一节点的上一个有效覆盖范围,重新对a进行搜索,只有当栈为空时,才判定为不满足查询条件。为更好的理解本发明,现将有关原理作进一步说明:根据fréchet距离的定义,需要为轨迹目标轨迹a和候选轨迹b找到一种连接方式,使得a和b中的所有点都有相应的连接点。理论上两条轨迹有无数种连接方式,在每种连接方式中,总有一条连接的长度最长,记为dlink,而fréchet距离,就是所有连接方式中dlink的最小值。这个问题转化为判断目标轨迹的有效连接范围是否能够有序地覆盖候选轨迹。本发明的核心思想就是以给定阈值依次计算轨迹a的每一个节点在轨迹b上的覆盖范围,直至遍历完a中的所有点,如果其覆盖范围是连续的,且其并集可以涵盖轨迹b中的所有节点,则轨迹a与轨迹b符合查询条件,即两条轨迹的fréchet距离在给定阈值范围内。进一步地,考虑目标轨迹数据集和候选轨迹数据集往往包含大量轨迹,本发明采用多个目标轨迹并行查询和单个目标轨迹并行搜索结合的并行策略。即:将目标轨迹数据集划分为多个子集,作为进程级并行查询任务;每个目标轨迹的查询都包含一对多的fréchet距离阈值判断,而每个判断之间不存在数据依赖,作为线程级并行任务。采用本发明获得的有益效果是:(1)本发明进行fréchet距离阈值判断的效率高。本发明方法复杂度为o(n2),不需要计算出两轨迹间的精确fréchet距离即可得到结果集。交叉进行的有效连接搜索和顺序覆盖判断能够尽可能早地寻找出不符合查询条件的节点,得到阈值判断结果,而不必做后续冗余的计算。(2)本发明提出的基于轨迹特征的预过滤方法具有创新性。仅对轨迹的首尾点建立r树索引,构建代价小,查询效率高,且三步过滤可以滤除大多数不符合条件的轨迹,极大减小了精确的基于fréchet距离过滤的计算压力。(3)本发明的稳定性高。本发明方法可对任意形态的轨迹进行fréchet距离阈值判断,且随轨迹长度的增加,本发明执行时间上升幅度较小,优于传统方法。(4)本发明的扩展性好,并行优化简易可行。设计了多进程与多线程结合的并行优化方案,任务划分合理,进程间不存在数据依赖,能够更好地利用当前常见的多机多核硬件环境,极大地提高了方法处理效率。附图说明图1是本发明中采用的fréchet距离度量的示意图;图2是本发明中距离阈值查询子问题的一个示例;图3是基于轨迹mbr的过滤操作示意图;图4是本发明中有效连接搜索和顺序覆盖判断的一个实例;图5是本发明方法中精确fréchet距离阈值过滤处理的流程图;图6是本发明中进程级和线程级结合的并行查询方案设计图;图7是本发明对不同长度的轨迹进行fréchet距离阈值的进行判断的耗时统计以及与传统方法的对比图;图8是本发明查询不同规模轨迹数据集的耗时与传统方法的对比图。具体实施方式下面结合附图和具体实施例对本发明作进一步说明。本发明提供了一种基于fréchet距离阈值的轨迹相似性快速匹配方法,包括以下步骤:(s1)设初始的候选轨迹集为t0,在t0上进行基于轨迹首尾点的过滤操作,得到处理后的候选轨迹集t1;(s2)在t1上进行基于轨迹最小外包框的过滤操作,得到处理后的候选轨迹集t2;(s3)在t2上进行基于轨迹缓冲区的过滤操作,得到处理后的候选轨迹集t3;(s4)对t3进行精确fréchet距离过滤处理,得到最终结果集。如图2所示,为本发明中距离阈值查询子问题的一个示例,图中a、b分别表示目标轨迹和候选轨迹,ε为给定阈值,图中绘制了节点a4的以ε为半径的缓冲区,从图中可以看出,a4与轨迹b上的b4、b5、b6建立有效连接关系,即a4的覆盖范围为{b4,b5,b6}。图3是基于轨迹mbr的过滤操作示意图。将目标轨迹的mbr向外扩展ε,则符合查询条件的候选轨迹的mbr一定位于扩展区内,所以在点过滤的基础上,对新的候选轨迹集进行mbr过滤,得到更小的候选轨迹集,以备进一步过滤。对于基于轨迹缓冲区(buffer)过滤的示意图也与图3类似(附图省略)。图4是本发明中有效连接搜索和顺序覆盖判断的一个实例。依次对示例轨迹a中的节点进行轨迹b上的有效连接的搜索,结果如下表1所示:表1有效连接搜索结果轨迹a节点轨迹b的有效连接点a0b0,b1a1b2,b3a2b5,b6,b7a3b8从表中可以看出,a0与a1的覆盖范围是连续的,a2与a3的覆盖范围是连续的,全部四个点的搜索结果形成的顺序覆盖范围是{b0,b1,b2,b3}和{b5,b6,b7,b8}两段,跳过了b4节点,不能涵盖整个轨迹b,所以此实施例中轨迹b不符合轨迹匹配条件。而实现过程中,在遍历到节点a2时,发现覆盖范围与a1的结果不连续,此时,即可终止搜索,得到否定的查询结果,而不必计算轨迹余下节点的覆盖范围。图5是本发明方法中精确fréchet距离阈值过滤处理的流程图;记pi为目标轨迹的第i个位置点,从目标轨迹的第一个点i=1开始处理;分别对候选轨迹集t3中的每一条候选轨迹进行有效连接搜索,即遍历候选轨迹的位置点,判断其是否与pi、pi+1形成有效连接,计算pi的覆盖范围得到ci,pi+1的覆盖范围得到ci+1;所述有效连接定义为两条轨迹中建立连接的两个节点的距离小于给定阈值ε,则称为有效连接;若ci+1与ci在候选轨迹上形成顺序覆盖关系,即ci+1的起始点位于ci的范围内或紧邻ci的结束点,则i增1继续进行下一个点的有效连接搜索;若ci+1与ci所包括的位置点在候选轨迹上不连续或者不能顺序覆盖候选轨迹,则搜索终止,得到否定的轨迹匹配判断结果;当pi取值为目标轨迹的最后一个点(流程图5中的目标轨迹长度即实施例中采集的目标轨迹数据的位置点总数,当i取值等于该总数值时,即pi取值为目标轨迹的最后一个点),且覆盖范围的并集涵盖整个候选轨迹,则得到肯定的轨迹匹配判断结果,否则返回否定结果(轨迹不匹配)。图6是本发明中进程级和线程级结合的并行查询方案设计。目标轨迹集和候选轨迹集往往包含大量轨迹,本发明采用多个目标轨迹并行查询和单个目标轨迹并行搜索结合的并行策略。即:将目标轨迹集划分为多个子集,作为进程级并行查询任务;每个目标轨迹的查询都包含一对多的fréchet距离阈值判断,而每个判断之间不存在数据依赖,作为线程级并行任务。图7是本发明对不同长度的轨迹进行fréchet距离阈值的进行判断的耗时统计以及与按照fréchet距离原始定义进行计算的传统方法的对比。采用消息传递接口(messagepassinginterface,mpi)和分布式计算平台spark分别实现了方法。随着轨迹长度的增加,spark平台的ocj方法效率基本保持不变,这是因为分布式计算平台的在进行具体方法之前需要进行较为复杂的数据结构封装、并行任务划分与并行资源调度,即使执行的任务量很小,也要耗费同样代价的准备时间,且对单对轨迹的距离判断的计算代价与准备时间相比几乎可以忽略,所以总的任务执行时间几乎不受轨迹长度影响。而用mpi并行框架实现的ocj方法,随着轨迹长度的增加,计算耗时呈现平缓的线性增长态势,稳定性良好。与之对比明显的是,传统方法耗时增长更加陡峭。图8是本发明查询不同规模轨迹数据集的耗时与传统方法的对比。传统方法在大规模查询时已经达到小时量级,不能满足应用需求。而spark通过一种分布式弹性数据结构rdd组织数据,加速性能很好,但初始效率低,内存消耗更大,更适合在高性能计算集群上运行大规模的任务。mpi版本的并行ocj方法,内存消耗适中,性能稳定,扩展性良好,随着数据量的增加维持了较为理想的加速比。可以看出在数据集包含万条以上轨迹时,ocj方法的两种实现相比于原始暴力计算法都有数量级的性能提升。所以可得出本发明ocj方法及其并行实现具有较为理想的计算效率和良好的并行扩展性的结论,在实际应用中具有良好的应用价值。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1