一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种顾及语义的轨迹数据异常检测方法

2022-10-13 05:55:45 来源:中国专利 TAG:


1.本发明涉及轨迹数据的异常检测方法领域,尤其是顾及语义信息的轨迹数据异常检测方法。


背景技术:

2.轨迹数据是由各种定位设备所产生的时序数据流,描述了一定时间范围内移动对象的位置变化,反映了对象的活动规律和行为模式。由于异常不等同于噪声,异常可能产生于不同的机制,异常的发生可能伴随有趣的现象,因此轨迹数据的异常检测对于大规模轨迹数据挖掘和知识发现具有重要的研究价值。目前针对轨迹数据的异常检测可以归纳为以下四类:
3.(1)基于分类的检测方法
4.基于分类的方法是根据标签数据集对数据集建立分类模型,再通过分类模型确定目标数据所属的预定类别。检测过程通常分为两个阶段,一是通过标签数据集建立分类模型,统称为训练阶段。二是根据分类模型将目标数据划分到所属的类别中去,该阶段被称为测试阶段。基于分类的异常检测技术通常可以获得比无监督技术更好的检测精度。然而,为数据附上正确的标签需要专家人工标注,要获得能够精确代表所有类(包括正常和异常)行为的标签数据涉及较高的计算开销。
5.(2)基于历史相似性的检测方法
6.基于历史相似性的检测方法根据采集到的轨迹数据建立用于异常检测的全局特征模型,然后将待检测的轨迹数据使用全局特征模型进行识别,将异于全局特征模型的轨迹数据标记为异常。由于这种方式使用了大量历史轨迹数据,所以通常不考虑轨迹数据的时变以及概念漂移。当历史数据达到一定数量时,依据其建立的全局特征模型具有较高的精度。在船舶异常检测和路网交通中有丰富的应用,并且拥有良好的表现。但是由于该类方法仅仅依赖于历史数据进行全局特征模型建模,因此无法适应轨迹数据的时变特征。
7.(3)基于聚类的检测方法
8.基于聚类的方法可以看作是一种无监督学习,通过依据轨迹数据的各种特征,采用聚类的方式将轨迹数据划分为不同的簇,使得簇与簇之间的差别最大化,簇内部之间的差别达到最小。将不属于任何簇的数据或者数量小于一定簇的数据作为异常数据输出。采用聚类的方法进行的异常检测,是一种有效的方法,但是也存在两个问题:1)是一种无监督学习方式,十分依赖于聚类的结果。2)尽管异常数据在整体之中只占有很小一部分,但是依然需要先处理大量的正常数据,计算开销大。
9.(4)基于网格划分的方法
10.基于网格划分的方法,是将区域划分为不同的网格,然后就将异常检测问题转化成为网格序列的异常识别。在城市路网中,轨迹受路宽、速度等限制,轨迹规律性强,因此基于网格的算法有效,但对于自由的无约束空间,网格划分困难,且轨迹规律稀疏,该方法不适用。
11.在上述研究的基础上,也出现了融合不同算法特点的异常轨迹检测算法,ge等从方向和密度出发提出了一种异常轨迹的检测算法。该算法在网格的基础上融合了邻近度的思想,通过衰减函数来降低较早到达数据对演化异常指数的影响,能够有效检测基于方向和密度的两类异常轨迹,实现演化轨迹异常的检测。但是移动对象的轨迹数据不仅包含与对象位置、时间有关的时空特征,也包含与对象运动特征和行为有关的多维语义特征。已有的轨迹异常检测方法主要考虑轨迹的时空特征,能够检测出时空特征约束下的异常轨迹,但是忽略了轨迹的多维语义特征的影响,无法实现语义特征约束下的异常轨迹检测。


技术实现要素:

12.本发明的目的是为了解决现有技术中存在的缺点,而提出的一种顾及语义的轨迹数据异常检测方法。
13.为了实现上述目的,本发明采用了如下技术方案:
14.一种顾及语义的轨迹数据异常检测方法,包括以下步骤:
15.步骤1:对历史工作数据集t0,异常点集x,异常值score和自适应窗口ω进行初始化;
16.步骤2:输入测试轨迹,根据轨迹点的经纬度,采样时间等信息求出轨迹点的网格坐标并完善其语义信息;
17.步骤3:将轨迹点加入自适应窗口ω末尾,根据自适应窗口过滤历史轨迹工作集t
i-1
,并且生成新的工作数据集ti;
18.步骤4:根据此前计算得到的新的工作数据集ti和原有工作数据集t
i-1
计算支持度;
19.步骤5:根据支持度计算当前异常值,并返回步骤3;
20.步骤6:区分异常轨迹片段和异常轨迹,通过异常点集中的异常点能够精确的检测出轨迹中异常的片段,同时通过轨迹的异常分值能够对轨迹异常程度进行排序,帮助识别出异常轨迹。
21.优选的,所述步骤1包括以下步骤:
22.步骤1.1:将异常点集x初始化为空;
23.步骤1.2:将异常分值score初始化为0;
24.步骤1.3:将自适应窗口ω初始化为空;
25.步骤1.4:初始化历史轨迹工作集t0。
26.优选的,所述步骤1.4包括以下步骤:
27.步骤1.4.1:确定网格大小:将目标区域均匀的划分为网格,根据轨迹数据的采样时间间隔和轨迹的平均速度计算得到网格边长,并将网格边长转换为经度差和纬度差,网格边长计算表达式如下所示:
28.d=δt
×
v'
29.其中d表示网格边长,δt表示采样时间间隔,v'表示轨迹平均速度;
30.步骤1.4.2:将轨迹映射到网格:轨迹是由一系列带有时间戳的gps点组成,其中每一个gps点包含经纬度,采样时间,速度信息,根据gps点的经纬度信息将gps点映射到网格中,将原有的轨迹点序列转化为网格序列,网格坐标计算表达式如下所示:
31.x=(lon-mlon)/sizex
32.y=(lat-mlat)/sizey
33.其中x,y分别表示网格横坐标和网格纵坐标,lon表示轨迹点经度,lat表示轨迹点纬度,mlon表示历史轨迹工作集合中最小经度值,mlat表示历史工作集合中的最小纬度值,sizex,sizey表示单个网格经纬度尺寸;
34.步骤1.4.3:完善单元格语义信息:将所有poi信息进行分类,将分类后的poi根据经纬度信息加入到网格序列中,完善网格序列的语义信息;
35.步骤1.4.4:生成增强网格序列:由于gps信号接收速率和网格大小并非一一匹配,因此网格序列中的映射点不相邻,从而导致网格序列不连续,留下缝隙,根据两个相关单元格之间的线段对缝隙区域进行增补以确保网格序列中没有间隙,同时计算增补网格的相关语义信息。
36.优选的,所述步骤2包括以下步骤:
37.步骤2.1:输入测试轨迹,计算轨迹点网格坐标:根据轨迹点的经纬度坐标计算轨迹点的网格坐标,将轨迹点映射到网格,网格坐标表达式如下所示:
38.x=(lon-mlon)/sizex
39.y=(lat-mlat)/sizey
40.其中x,y分别表示网格横坐标和网格纵坐标,lon表示轨迹点经度,lat表示轨迹点纬度,mlon表示历史轨迹工作集合中最小经度值,mlat表示历史工作集合中的最小纬度值,sizex,sizey表示单个网格经纬度尺寸;
41.步骤2.2:计算轨迹点速度:根据轨迹点的经纬度坐标和采样时间间隔计算轨迹点速度,轨迹点速度表达式如下所示:
[0042][0043]
其中x,y分别表示轨迹点的经纬度坐标,δt表示采样时间间隔;
[0044]
步骤2.3:完善poi信息:将分类后的poi信息根据经纬度信息添加到轨迹中,完善每个轨迹点的poi信息。
[0045]
优选的,所述步骤3包括以下步骤:
[0046]
步骤3.1:将测试轨迹的轨迹点添加到自适应窗口末尾;
[0047]
步骤3.2:判断自适应窗口长度,若为1,则转到步骤3.3,若大于或等于2,转到步骤3.4;
[0048]
步骤3.3:在历史工作数据集剪枝之一;
[0049]
步骤3.4:在历史工作数据集剪枝之二。
[0050]
优选的,所述步骤3.3包括以下步骤:
[0051]
步骤3.3.1:依次从历史工作数据集中的网格序列中取出单元格;
[0052]
步骤3.3.2:使用编辑距离计算取出的单元格与自适应窗口中单元格的相似度,将单元格中的所有信息划分为空间信息,时间信息,以及语义信息;
[0053]
在空间信息中,由于网格序列增广方法的简单性,增强轨迹可能不完全准确,因此,在检测两个单元格空间信息的相似性过程中,若两个单元格互为邻近单元格,则认为两个单元格在空间信息中编辑距离为0,否则认为编辑距离为1,空间约束下的编辑距离表达
式如下所示:
[0054][0055]
其中gi表示历史工作数据集中单元格,ωj表示自适应窗口中轨迹点生成的单元格;
[0056]
在时间和语义信息中不要求严格相等,若二者相差在一定范围内则认为编辑距离为0,否则为1,语义条件约束下的编辑距离表达式如下所示:
[0057][0058]
其中g
ik
表示历史工作数据集中单元格大的第k维语义,ω
ik
表示自适应窗口中轨迹点生成的单元格的第k维语义,δ表示阈值;
[0059]
两个单元格之间的编辑距离表达式如下所示:
[0060]
edr(gi,ωj)=edr(rest(gi,ω),rest(gi,ω)) sub
[0061]
其中gi表示历史工作数据集中单元格,ω表示自适应窗口中轨迹点生成的单元格,若两个单元格在第一维语义条件约束下表现为相似,则sub=0,否则sub=1;
[0062]
步骤3.3.3:若该单元格与自适应窗口中单元格相似度大于阈值,则将该条网格序列添加到新的工作数据集中,新的工作数据集表达式如下所示:
[0063][0064]
优选的,所述步骤3.4包括以下步骤:
[0065]
步骤3.4.1:依次从历史工作数据集中的网格序列中取出单元格,
[0066]
步骤3.4.2:使用编辑距离计算取出的单元格与自适应窗口中单元格的相似度,两个单元格之间的编辑距离表达式如下所示:
[0067]
edr(gi,ωj)=edr(rest(gi,ωj),rest(gi,ωj)) sub
[0068]
其中gi表示历史工作数据集中单元格,ωj表示自适应窗口中轨迹点生成的单元格,若两个单元格在第一维语义条件约束下表现为相似,则sub=0,否则sub=1;
[0069]
步骤3.4.3:若该单元格与自适应窗口中单元格相似度大于阈值,则计算出该单元格在网格序列中出现的序号;
[0070]
步骤3.4.4:计算出与自适应窗口中倒数第二个单元格相似的单元格在网格序列中的序号;
[0071]
步骤3.4.5:若两个单元格在网格序列中以正确的顺序出现,则将该条网格序列添加到新的工作数据集中,其表达式如下所示:
[0072][0073]
其中pos(t',gi)表示网格gi在轨迹t'中出现的序号。
[0074]
优选的,所述步骤4包括以下步骤:
[0075]
步骤4.1:计算历史工作数据集和新的工作数据集大小;
[0076]
步骤4.2:计算支持度。支持度表达式如下所示:
[0077]
support(i)=count(haspath(t
i-1
,ω))/count(t
i-1
)
[0078]
其中count(t)表示工作数据集中轨迹数量。
[0079]
优选的,所述步骤5包括以下步骤:
[0080]
步骤5.1:计算当前异常值,由于轨迹是正在进行的,将保留一个异常分值,用于在检测过程中提供警报,并在检测完成时候提供警报,并在轨迹检测完成后对其进行排序,其中支持度越小、一场距离越长的的的轨迹排名越高,因此根据异常子段的长度和每个异常子段中的密度来计算该分数,其表达式如下所示:
[0081][0082]
其中λ是热度参数,用以平滑由于阈值选取引起的断点,dist(pi,p
i-1
)表示测试轨迹中两相邻轨迹点的距离;
[0083]
步骤5.2:判断支持度是否大于阈值,若大于阈值,则转到步骤3,若小于阈值则转到步骤5.3;
[0084]
步骤5.3:重置历史工作数据集和自适应窗口。
[0085]
优选的,所述步骤5.3包括以下步骤:
[0086]
步骤5.3.1:将检测点加入到异常点集中,并计算异常值;
[0087]
步骤5.3.2:将历史轨迹工作集重置为最初的历史轨迹工作集;
[0088]
步骤5.3.2:重置自适应窗口,仅保留最后添加的网格;
[0089]
步骤5.3.4:转到步骤3。
[0090]
与现有技术相比,本发明的有益效果是:
[0091]
1、针对基于网格的异常轨迹检测方法中,网格大小难以确定的问题,通过轨迹点的采样间隔和轨迹点平均运动速度来确定网格大小,能够有效避免网格过大和网格过小引起的检测精度不足和计算量过大等问题。
[0092]
2、针对已有的轨迹异常检测方法主要考虑时空特征,而忽略了轨迹的多为语义特征,无法实现多维语义特征约束下的异常轨迹检测的问题。本发明采用编辑距离计算单元格之间的相似度,能够实现在多维语义约束下的轨迹异常检测。
附图说明
[0093]
图1为本发明顾及语义的异常轨迹检测方法流程图;
[0094]
图2为本发明中单元格语义向量空间。
具体实施方式
[0095]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0096]
实施例1
[0097]
一种顾及语义的轨迹数据异常检测方法,包括以下步骤:
[0098]
步骤1:对历史工作数据集t0,异常点集x,异常值score和自适应窗口ω进行初始化;
[0099]
所述步骤1包括以下步骤:
[0100]
步骤1.1:将异常点集x初始化为空;
[0101]
步骤1.2:将异常分值score初始化为0;
[0102]
步骤1.3:将自适应窗口ω初始化为空;
[0103]
步骤1.4:初始化历史轨迹工作集t0。
[0104]
所述步骤1.4包括以下步骤:
[0105]
步骤1.4.1:确定网格大小:将目标区域均匀的划分为网格,根据轨迹数据的采样时间间隔和轨迹的平均速度计算得到网格边长,并将网格边长转换为经度差和纬度差,网格边长计算表达式如下所示:
[0106]
d=δt
×
v'
[0107]
其中d表示网格边长,δt表示采样时间间隔,v'表示轨迹平均速度;
[0108]
步骤1.4.2:将轨迹映射到网格:轨迹是由一系列带有时间戳的gps点组成,其中每一个gps点包含经纬度,采样时间,速度信息,根据gps点的经纬度信息将gps点映射到网格中,将原有的轨迹点序列转化为网格序列,网格坐标计算表达式如下所示:
[0109]
x=(lon-mlon)/sizex
[0110]
y=(lat-mlat)/sizey
[0111]
其中x,y分别表示网格横坐标和网格纵坐标,lon表示轨迹点经度,lat表示轨迹点纬度,mlon表示历史轨迹工作集合中最小经度值,mlat表示历史工作集合中的最小纬度值,sizex,sizey表示单个网格经纬度尺寸;
[0112]
步骤1.4.3:完善单元格语义信息:将所有poi信息进行分类,将分类后的poi根据经纬度信息加入到网格序列中,完善网格序列的语义信息;
[0113]
步骤1.4.4:生成增强网格序列:由于gps信号接收速率和网格大小并非一一匹配,因此网格序列中的映射点不相邻,从而导致网格序列不连续,留下缝隙,根据两个相关单元格之间的线段对缝隙区域进行增补以确保网格序列中没有间隙,同时计算增补网格的相关语义信息。
[0114]
步骤2:输入测试轨迹,根据轨迹点的经纬度,采样时间等信息求出轨迹点的网格坐标并完善其语义信息;
[0115]
所述步骤2包括以下步骤:
[0116]
步骤2.1:输入测试轨迹,计算轨迹点网格坐标:根据轨迹点的经纬度坐标计算轨迹点的网格坐标,将轨迹点映射到网格,网格坐标表达式如下所示:
[0117]
x=(lon-mlon)/sizex
[0118]
y=(lat-mlat)/sizey
[0119]
其中x,y分别表示网格横坐标和网格纵坐标,lon表示轨迹点经度,lat表示轨迹点纬度,mlon表示历史轨迹工作集合中最小经度值,mlat表示历史工作集合中的最小纬度值,sizex,sizey表示单个网格经纬度尺寸;
[0120]
步骤2.2:计算轨迹点速度:根据轨迹点的经纬度坐标和采样时间间隔计算轨迹点速度,轨迹点速度表达式如下所示:
[0121]
[0122]
其中x,y分别表示轨迹点的经纬度坐标,δt表示采样时间间隔;
[0123]
步骤2.3:完善poi信息:将分类后的poi信息根据经纬度信息添加到轨迹中,完善每个轨迹点的poi信息。
[0124]
步骤3:将轨迹点加入自适应窗口ω末尾,根据自适应窗口过滤历史轨迹工作集t
i-1
,并且生成新的工作数据集ti;
[0125]
所述步骤3包括以下步骤:
[0126]
步骤3.1:将测试轨迹的轨迹点添加到自适应窗口末尾;
[0127]
步骤3.2:判断自适应窗口长度,若为1,则转到步骤3.3,若大于或等于2,转到步骤3.4;
[0128]
步骤3.3:在历史工作数据集剪枝之一;
[0129]
步骤3.4:在历史工作数据集剪枝之二。
[0130]
所述步骤3.3包括以下步骤:
[0131]
步骤3.3.1:依次从历史工作数据集中的网格序列中取出单元格;
[0132]
步骤3.3.2:使用编辑距离计算取出的单元格与自适应窗口中单元格的相似度,将单元格中的所有信息划分为空间信息,时间信息,以及语义信息;
[0133]
在空间信息中,由于网格序列增广方法的简单性,增强轨迹可能不完全准确,因此,在检测两个单元格空间信息的相似性过程中,若两个单元格互为邻近单元格,则认为两个单元格在空间信息中编辑距离为0,否则认为编辑距离为1,空间约束下的编辑距离表达式如下所示:
[0134][0135]
其中gi表示历史工作数据集中单元格,ωj表示自适应窗口中轨迹点生成的单元格;
[0136]
在时间和语义信息中不要求严格相等,若二者相差在一定范围内则认为编辑距离为0,否则为1,语义条件约束下的编辑距离表达式如下所示:
[0137][0138]
其中g
ik
表示历史工作数据集中单元格大的第k维语义,ω
ik
表示自适应窗口中轨迹点生成的单元格的第k维语义,δ表示阈值;
[0139]
两个单元格之间的编辑距离表达式如下所示:
[0140]
edr(gi,ωj)=edr(rest(gi,ω),rest(gi,ω)) sub
[0141]
其中gi表示历史工作数据集中单元格,ω表示自适应窗口中轨迹点生成的单元格,若两个单元格在第一维语义条件约束下表现为相似,则sub=0,否则sub=1;
[0142]
步骤3.3.3:若该单元格与自适应窗口中单元格相似度大于阈值,则将该条网格序列添加到新的工作数据集中,新的工作数据集表达式如下所示:
[0143][0144]
所述步骤3.4包括以下步骤:
[0145]
步骤3.4.1:依次从历史工作数据集中的网格序列中取出单元格,
[0146]
步骤3.4.2:使用编辑距离计算取出的单元格与自适应窗口中单元格的相似度,两个单元格之间的编辑距离表达式如下所示:
[0147]
edr(gi,ωj)=edr(rest(gi,ωj),rest(gi,ωj)) sub
[0148]
其中gi表示历史工作数据集中单元格,ωj表示自适应窗口中轨迹点生成的单元格,若两个单元格在第一维语义条件约束下表现为相似,则sub=0,否则sub=1;
[0149]
步骤3.4.3:若该单元格与自适应窗口中单元格相似度大于阈值,则计算出该单元格在网格序列中出现的序号;
[0150]
步骤3.4.4:计算出与自适应窗口中倒数第二个单元格相似的单元格在网格序列中的序号;
[0151]
步骤3.4.5:若两个单元格在网格序列中以正确的顺序出现,则将该条网格序列添加到新的工作数据集中,其表达式如下所示:
[0152][0153]
其中pos(t',gi)表示网格gi在轨迹t'中出现的序号。
[0154]
步骤4:根据此前计算得到的新的工作数据集ti和原有工作数据集t
i-1
计算支持度;所述步骤4包括以下步骤:
[0155]
步骤4.1:计算历史工作数据集和新的工作数据集大小;
[0156]
步骤4.2:计算支持度。支持度表达式如下所示:
[0157]
support(i)=count(haspath(t
i-1
,ω))/count(t
i-1
)
[0158]
其中count(t)表示工作数据集中轨迹数量。
[0159]
步骤5:根据支持度计算当前异常值,并返回步骤3;
[0160]
所述步骤5包括以下步骤:
[0161]
步骤5.1:计算当前异常值,由于轨迹是正在进行的,将保留一个异常分值,用于在检测过程中提供警报,并在检测完成时候提供警报,并在轨迹检测完成后对其进行排序,其中支持度越小、一场距离越长的的的轨迹排名越高,因此根据异常子段的长度和每个异常子段中的密度来计算该分数,其表达式如下所示:
[0162][0163]
其中λ是热度参数,用以平滑由于阈值选取引起的断点,dist(pi,p
i-1
)表示测试轨迹中两相邻轨迹点的距离;
[0164]
步骤5.2:判断支持度是否大于阈值,若大于阈值,则转到步骤3,若小于阈值则转到步骤5.3;
[0165]
步骤5.3:重置历史工作数据集和自适应窗口。
[0166]
所述步骤5.3包括以下步骤:
[0167]
步骤5.3.1:将检测点加入到异常点集中,并计算异常值;
[0168]
步骤5.3.2:将历史轨迹工作集重置为最初的历史轨迹工作集;
[0169]
步骤5.3.2:重置自适应窗口,仅保留最后添加的网格;
[0170]
步骤5.3.4:转到步骤3。
[0171]
步骤6:区分异常轨迹片段和异常轨迹,通过异常点集中的异常点能够精确的检测出轨迹中异常的片段,同时通过轨迹的异常分值能够对轨迹异常程度进行排序,帮助识别出异常轨迹。
[0172]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献