一种基于时间顺序的轨迹匹配方法

文档序号:10553034阅读:248来源:国知局
一种基于时间顺序的轨迹匹配方法
【专利摘要】本发明公开了一种基于时间顺序的轨迹匹配方法,包括下述步骤:(1)获得目标轨迹中的各个点和候选轨迹中各个点之间的距离的最大值,并将其赋值给dmax;将0赋值给dmin;(2)判断(dmax?dmin)是否大于预设的误差阈值ε,若是,则获得d=(dmax?dmin)/2;若否,则获得目标轨迹T与候选轨迹q之间距离为dmax;(3)判断d是否符合距离检测函数,若是,则转入步骤(4);若否,则转入步骤(5);(4)令d=dmax并返回至步骤(2);(5)令d=dmin并返回至步骤(2)。本发明提供的方法能够提高效率,降低时间复杂度。
【专利说明】
一种基于时间顺序的轨迹匹配方法
技术领域
[0001] 本发明属于数据处理技术领域,更具体地,涉及一种基于时间顺序的轨迹匹配方 法。
【背景技术】
[0002] 轨迹数据在日常生活、商业应用与科学研究等方面起着日益重要的作用。随着无 线通信与移动计算技术的快速发展,我们所能获取到的轨迹数据规模也变得前所未有的庞 大。如此大量的轨迹数据既带来了巨大的研究价值。
[0003] 随着无线通信以及定位技术的快速发展,人们已经可以轻松地获取移动物体在不 同时刻的位置信息。常见的轨迹数据,除了通过GPS设备采集到的人或车辆等运动物体的移 动线路以外,还包括传感器采集到的数值随时间的变化情况。因此可以说,轨迹几乎是无处 不在的,而且随着近年来配备了各种传感器的智能设备的普及,比如智能手环,智能手机以 及各种各样的智能移动设备所能获取的轨迹数据更是爆炸性地增长。这些丰富的轨迹数据 资源是一笔宝贵的财富,可以通过挖掘这些轨迹数据来更好地为人们服务。此外,Twitter、 微博、微信等社交网络上每天还会新增数百万条含地理位置的状态更新,方兴未艾的物联 网每天也会通过传感器生成不计其数的时序数据;这些数字仍然在不断的增长。
[0004] 在有关轨迹数据的各种不同的应用中,一个基本且很重要的操作是相似性查询, 即给定一个数据库和一条轨迹数据,在数据库中查询和给定轨迹数据最相似的候选轨迹数 据。
[0005] 目前对基于时间顺序的相似轨迹的研究相对较少,或者查找相似路径的方法效率 低,时间复杂度高。

【发明内容】

[0006] 针对现有技术的缺陷,本发明的目的在于提供一种基于时间顺序的轨迹匹配方 法,旨在解决现有技术中查找相似路径的方法存在效率低和时间复杂度高的技术问题。
[0007] 本发明提供了一种基于时间顺序的轨迹匹配方法,包括下述步骤:
[0008] S11:获得目标轨迹中的各个点和候选轨迹中各个点之间的距离的最大值,并将其 赋值给dmax;将0赋值给d min;
[0009] S12 :判断(dmax_dmin)是否大于预设的误差阈值e,若是,则获得d= (dmax_dmin)/2 ;若 否,则获得目标轨迹T与候选轨迹q之间距离为dmax;并在获得的目标轨迹与所有候选轨迹的 距离中选取最短的一条候选轨迹作为与目标轨迹最匹配的轨迹;
[0010] S13:判断d是否符合距离检测函数,若是,则转入步骤S14;若否,则转入步骤S15; [0011] S14:令d = dmax并返回至步骤S12;
[0012 ] S15:令d = dmin并返回至步骤S12;其中,dmax为目标轨迹与候选轨迹距离的最大值, dmin为目标轨迹与候选轨迹距离的最小值,e为设定的距离误差值,d为辅助变量,用于暂存 (dmax_dmin)/2 的值。
[0013] 本发明还提供了一种基于时间顺序的轨迹匹配方法,包括下述步骤:
[0014] S201:初始化各变量,令辅助变量k初始值为1,dmin的初始值为正无穷,并采用一个 数组来记录各个分段的位置;ans来记录最终距离,ans的初始值为正无穷;
[0015] S202:令 i = l;
[0016] S203:判断j是否小于等于m,若是,则转入步骤S204;若否,则结束并返回ans;
[0017] 3204:1 = 1」+1,1? = 11;将1」+1复制给1,即将1的值变为1」+1。将11的值赋值给1?(" = "为赋值符号,将等号右边的值赋给等号左边的值)
[0018] S205:判断L是否小于R,若是,则转入步骤S206,若否,则转入步骤S210;
[0019] S206:lmid=(L+R)/2,d = d(T[ljamid],tj);
[0020] 其中,d = d(T[lj,lmid]山)的含义由…^,./:^卜巧^/^^可得以含义为在 候选轨迹T中第i个点至第j个点中选取一个与目标轨迹中tk的最短的距离,并赋给d;
[0021] S207 :判断d是否符合距离检测函数,若是,则转入步骤S208 ;若否,则转入步骤 S209;
[0022] S208: L= lmid+1;并返回至步骤 S205;
[0023] S209:R=lmid;并返回至步骤 S205;
[0024] S210:lj+i = R;
[0025] S211:判断d是否大于ans,若是,则转入步骤S212,若否,则进入步骤S213;
[0026] S212:令 ans = d;并进入步骤 S213;
[0027] S213: j = j+l,并返回至步骤 S203。
[0028]更进一步地,所述判断d是否符合距离检测函数具体为:
[0029] (3.1)初始化 k = ko,i = L;
[0030] (3.2)判断i是否小于R,若是,则转入步骤(3.3);若否,则d不符合距离检测函数;
[0031] (3.3)判断d(Sl,tJ是否小于等于d,若是,则转入步骤(3.4);若否,则转入步骤 (3.5);
[0032] (3.4)令 k = k+l,并进入步骤(3.5);
[0033] (3.5)判断k是否大于m,若是,则d符合距离检测函数;若否,则返回步骤(3.2);
[0034]其中,k用于表示目标轨迹中被比较的第k个点,k0为辅助变量,用来给k赋初始值, i为辅助变量,d(Sl,k)表示候选轨迹第i个点与目标轨迹第j个点之间的距离,m为目标轨迹 长度与候选轨迹长度的较小的值。
[0035] 通过本发明所构思的以上技术方案,与现有技术相比,由于提出了一种衡量两条 轨迹间的距离的公式,能够取得高效,低时间复杂度的有益效果。
【附图说明】
[0036] 图1是本发明实施例提供的距离检测方法的实现流程图;
[0037] 图2是本发明实施例提供的第一种用于获得候选轨迹T与目标轨迹q之间距离的方 法的实现流程图;
[0038] 图3是本发明实施例提供的第二种用于获得候选轨迹T与目标轨迹q之间距离的方 法的实现流程图。
【具体实施方式】
[0039] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0040] 本发明提出了一种衡量两条轨迹间的距离的公式以及高效,低时间复杂的高效方 法,从而在大量轨迹数据中相对快速的查找最相似的前K个轨迹。
[0041] 在本发明实施例中,定义基于时间顺序的目标序列q= {to, .,U}和轨迹 序列t={S〇,sl,... ,Sn},定义二者之间的距离为a)丨f其中,i1= 1,1]11+1-1=11,(1(81,1:」)表示81与1:」之间的欧几里得距离,1={8(),81,...,811}表示为一个轨 迹,Si( i = 1,…,n)是第i个二维序列,表示位置,tj表示目标序列上第j点;j表示序号,m表示 目标序列最后一点的序号,i表不序号。
[0042] 给定一个目标序列q,我们要解决的问题是在轨迹数据库中查询到前k个与目标序 列q最相近的轨迹,最基本的计算dm的方法是基本的动态规划,然而查询效率很低,时间复 杂度为〇(mn 3)。为此,本发明提出了两种计算上述dm的方法,能够提高方法效率,降低方法 的时间复杂度。
[0043]本发明实施例提出了一种距离检测函数,该函数为辅助函数,具体实现流程如图1 所示,用来检测在目标轨迹上每一个点对于候选轨迹中相应最近的点的距离,是否都小于 当前的d值(d值为自定义的误差值),若是则返回true,否则返回false。时间复杂度为0(n)。 图1中,k、k〇、i均为辅助变量;L表示候选轨迹中左边开始的序号,R表示候选轨迹中右边结 束的序号;L和R用于表示候选轨迹从第L个元素至第R个元素到目标轨迹的元素是否符合距 离检测函数。且L、R、d的值的确定是由其它程序调用距离检测函数时给出三值的初始值。
[0044] 图2示出了本发明实施例提供的第一种用于获得目标轨迹q与候选轨迹T之间距离 的方法的实现流程图;该方法为求目标轨迹q,候选轨迹T之间距离的近似方法,误差为£为 人为设定的,表示候选轨迹与目标轨迹的距离必须小于e,时间复杂度为O(mnlogn)。
[0045] 具体包括下述步骤:
[0046] (1)获得目标轨迹和候选轨迹各个两点之间的距离的最大值,并将其赋值给dmax, 将0赋值给d min。
[0047] (2)然后进入循环,当误差值dmax-cUin>e时,一直通过距离检测函数来给d max和dmin 赋予新的值,从而进行二分查找(二分查找的基本思想是将n个元素分成大致相等的两部 分,取a[n/2]即中间的元素与x做比较,如果x = a[n/2],则找到X,算法中止;如果x〈a[n/2], 则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x。),直 至误差值小于e时,循环结束。图2中'^是否符合距离检测函数,具体可以将d代入距离检测 函数,如果返回true即为符合,如果返回false即为不符合。
[0048] (3)最终将dmax值返回,即目标轨迹T与候选轨迹q之间距离。
[0049]图3示出了本发明实施例提供的第二种用于获得目标轨迹T与候选轨迹q之间距离 的方法的实现流程图;该方法为求目标轨迹T,候选轨迹q之间距离的精确方法。假设目标轨 迹T共有m个点,候选轨迹q共有n个点。本发明主要是解决一个最大最小问题,方法的主要思 想为将候选轨迹q分为n段,目标轨迹的T分别对应n个点分别对应n段。首先分别在n段内取 距离对应点最短的距离,然后再从所有段中最短距离中选取最大的距离。方法时间复杂度 为O(mnlogn)〇
[0050]具体包括下述步骤:
[0051 ] (1)给各变量赋初值,即令辅助变量k赋值为1,dmin赋值为正无穷,用1数组来记录 各个分段的位置,ans来记录最终距离并赋值正无穷。
[0052] (2)为寻找m个分段位置,进入循环,并循环m次,首先确定要寻找分的位置,即UIJR 区间内。
[0053] (3)再进入循环,通过二分法查找分段内目标轨迹上的点至候选轨迹上的点的最 短距离d,并找到分段位置L,R。
[0054] (4)记录找到的分段位置至1数组中。
[0055] (5)从所有分段中最短距离中取最大的距离并赋值给ans。
[0056] 本发明提出的基于时间的活动轨迹近似搜索有很大的意义,且定义了一种计算两 种轨迹之间的距离,并提出了两种不同计算距离的方法,且基于最基本的动态规划方法提 高了方法效率,降低了时间复杂度。
[0057] 由于轨迹数据几乎无所不在,基于轨迹数据的应用也是层出不穷。物体的运动都 有一定的模式,比如人们在工作日通常沿着相同的路径上下班,而在假期则可能去购物或 者看电影等。因此,通过人们的运动轨迹,可以挖掘出他们的一些行为习惯,从而可以为他 们的生活提供个性化的帮助。通过相似路径匹配给他们推荐潜在的朋友,因为朋友会有相 似的兴趣爱好,可能他平时的轨迹也近似。
[0058] 还比如挖掘出租车轨迹,因为出租车司机一般都很熟悉本地的路况,他们选择的 路径通常会避开容易发生拥堵的路段,通过相似路径搜索,查找与出租车司机相近的路线, 可能是相对比较顺畅且便利的路线。
[0059] 或者是已知运动物体的当前位置与历史轨迹,位置预测希望给出该物体在未来某 个时候可能的位置。如果可以准确地预测用户的位置,则可以更好地为其提供各类服务,如 行程规划等。
[0060] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以 限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含 在本发明的保护范围之内。
【主权项】
1. 一种基于时间顺序的轨迹匹配方法,其特征在于,包括下述步骤: Sll:获得目标轨迹中的各个点和候选轨迹中各个点之间的距离的最大值,并将其赋值 给dmax;将O赋值给dmin; S12 :判断(dmax-dmin)是否大于预设的误差阈值ε,若是,则获得d= (dmax-dmin)/2 ;若否, 则获得目标轨迹T与候选轨迹q之间距离为Clmax;并在获得的目标轨迹与所有候选轨迹的距 离中选取最短的一条候选轨迹作为与目标轨迹最匹配的轨迹; S13:判断d是否符合距离检测函数,若是,则转入步骤S14;若否,则转入步骤S15; 314:令(1 = (111^并返回至步骤312; S15:令d = dmin并返回至步骤S12;其中,dmax为目标轨迹与候选轨迹距离的最大值,dmin 为目标轨迹与候选轨迹距离的最小值,ε为设定的距离误差值,d为辅助变量,用于暂存 (dmax-dmin)/2 的值。2. -种基于时间顺序的轨迹匹配方法,其特征在于,包括下述步骤: S201:初始化各变量,令辅助变量k初始值为I,dmin的初始值为正无穷,并采用一个数组 来记录各个分段的位置;ans来记录最终距离,ans的初始值为正无穷; S202:令 i = l; S203:判断j是否小于等于m,若是,则转入步骤S204;若否,则结束并返回ans; S204:L=lj+l,R = n; S205:判断L是否小于R,若是,则转入步骤S206,若否,则转入步骤S210; S206: Imid= (L+R)/2,d = d(T[lj Jmid], tj); S207:判断d是否符合距离检测函数,若是,则转入步骤S208;若否,则转入步骤S209; S208: L= lmid+l;并返回至步骤S205; S209: R= Imid;并返回至步骤S205; S210:lj+i = R; S211:判断d是否大于ans,若是,则转入步骤S212,若否,则进入步骤S213; S212:令ans = d;并进入步骤S213; S213: j = j+l,并返回至步骤S203。3. 如权利要求1或2所述的轨迹匹配方法,其特征在于,所述判断d是否符合距离检测函 数具体为: (3.1) 初始化 k = k〇,i = L; (3.2) 判断i是否小于R,若是,则转入步骤(3.3);若否,则d不符合距离检测函数; (3.3) 判断d(Sl,tJ是否小于等于d,若是,则转入步骤(3.4);若否,则转入步骤(3.5); (3.4) 令1^ = 1^+1,并进入步骤(3.5); (3.5) 判断k是否大于m,若是,则d符合距离检测函数;若否,则返回步骤(3.2); 其中,k用于表示目标轨迹中被比较的第k个点,kO为辅助变量,用来给k赋初始值,i为 辅助变量,d(Sl,k)表示候选轨迹第i个点与目标轨迹第j个点之间的距离,m为目标轨迹长 度与候选轨迹长度的较小的值。
【文档编号】G06F17/30GK105912683SQ201610235096
【公开日】2016年8月31日
【申请日】2016年4月15日
【发明人】李荣华, 郭楷扬, 刘刚, 毛睿
【申请人】深圳大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1