一种移动轨迹构建方法及装置
技术领域
本发明涉及轨迹数据处理领域,尤其涉及一种移动轨迹构建方法及装置。
背景技术
在地理信息管理系统应用中,对车辆的行车轨迹的进行分析可以带来不菲的商业价值。在GPS定位技术发达的今天,GPS定位已经可以十分精准地得到被定位车辆的位置,即经纬度坐标。通过这些坐标,我们可以轻松得到车辆的行车轨迹。而由于设备和路况的限制,当GPS定位设备的信号较差时,经常会产生轨迹点“漂移”的现象,导致采集的轨迹数据存在异常的轨迹点,而根据这些存在异常轨迹点的轨迹数据构建的轨迹与真实的行车轨迹存在很大的偏差。
发明内容
本发明提供了一种移动轨迹构建方法及装置,以解决现有的轨迹构建过程中,异常轨迹点造成构建的轨迹不准确的问题。
为了解决上述问题,本发明提供了一种移动轨迹构建方法,其特征在于,其包括:
获取定位装置采集的轨迹数据,轨迹数据包括多个轨迹点;
通过密度聚类算法处理多个轨迹点,得到正常轨迹点和异常轨迹点;
删除异常轨迹点,并存储正常轨迹点至目标轨迹点集;
根据目标轨迹点集构建移动轨迹。
作为本发明的进一步改进,通过密度聚类算法处理多个轨迹点,得到正常轨迹点和异常轨迹点的步骤包括:
通过密度聚类算法对多个轨迹点进行计算,得到聚类簇的数目;
判断聚类簇的数目是否大于一;
当聚类簇的数目等于一时,确认多个轨迹点均为正常轨迹点。
作为本发明的进一步改进,判断聚类簇的数目是否大于一的步骤之后,还包括:
当聚类簇的数目大于一时,获取每个聚类簇对应的轨迹点的个数;
根据每个聚类簇对应的轨迹点的个数确认异常聚类簇,异常聚类簇对应的轨迹点的个数小于预设阈值;
确认异常聚类簇对应的轨迹点为异常轨迹点。
作为本发明的进一步改进,存储正常轨迹点至目标轨迹点集的步骤之后,还包括:
判断目标轨迹点集中的多个目标轨迹点是否连续;
当目标轨迹点集中的多个目标轨迹点不连续时,确认多个目标轨迹点存在至少一个轨迹中断区域;
获取每一个轨迹中断区域的起始轨迹点的坐标、终止轨迹点的坐标以及中断时长T1;
获取定位装置采集轨迹点的间隔时长T2;
计算得到每一个轨迹中断区域理应采集的轨迹点的目标个数N=T1/T2;
根据起始轨迹点的坐标、终止轨迹点的坐标以及目标个数N构建补偿轨迹点,并将补偿轨迹点存储至目标轨迹点集中。
为了解决上述问题,本发明还提供了一种移动轨迹构建装置,其包括:
获取模块,用于获取定位装置采集的轨迹数据,轨迹数据包括多个轨迹点;
处理模块,用于通过密度聚类算法处理多个轨迹点,得到正常轨迹点和异常轨迹点;
删除模块,用于删除异常轨迹点,并存储正常轨迹点至目标轨迹点集;
构建模块,用于根据目标轨迹点集构建移动轨迹。
作为本发明的进一步改进,处理模块包括:
计算单元,用于通过密度聚类算法对多个轨迹点进行计算,得到聚类簇的数目;
判断单元,用于判断聚类簇的数目是否大于一;
第一确认单元,用于当聚类簇的数目等于一时,确认多个轨迹点均为正常轨迹点。
作为本发明的进一步改进,处理模块还包括:
获取单元,用于当聚类簇的数目大于一时,获取每个聚类簇对应的轨迹点的个数;
第二确认单元,用于根据每个聚类簇对应的轨迹点的个数确认异常聚类簇,异常聚类簇对应的轨迹点的个数小于预设阈值;
第三确认单元,用于确认异常聚类簇对应的轨迹点为异常轨迹点。
作为本发明的进一步改进,其还包括:
判断模块,用于判断目标轨迹点集中的多个目标轨迹点是否连续;
中断确认模块,用于当目标轨迹点集中的多个目标轨迹点不连续时,确认多个目标轨迹点存在至少一个轨迹中断区域;
坐标获取模块,用于获取每一个轨迹中断区域的起始轨迹点的坐标、终止轨迹点的坐标以及中断时长T1;
时间获取模块,用于获取定位装置采集轨迹点的间隔时长T2;
计算模块,用于计算得到每一个轨迹中断区域理应采集的轨迹点的目标个数N=T1/T2;
补偿模块,用于根据起始轨迹点的坐标、终止轨迹点的坐标以及目标个数N构建补偿轨迹点,并将补偿轨迹点存储至目标轨迹点集中。
相比于现有技术,本发明通过采用密度聚类算法对采集的轨迹点进行处理,从而区分出其中的正常轨迹点和异常轨迹点,并删除异常轨迹点,再根据正常轨迹点来进行轨迹的构建,其降低了异常轨迹点对轨迹构建的影响,从而提升了构建的轨迹的质量,使得构建的轨迹与真实的移动轨迹更为接近。
附图说明
图1为本发明移动轨迹构建方法第一个实施例的流程示意图;
图2为本发明移动轨迹构建方法第二个实施例的流程示意图;
图3为本发明移动轨迹构建方法第三个实施例的流程示意图;
图4为本发明移动轨迹构建装置第一个实施例的功能模块示意图;
图5为本发明移动轨迹构建装置第二个实施例的功能模块示意图;
图6为本发明移动轨迹构建装置第三个实施例的功能模块示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用来限定本发明。
图1展示了本发明移动轨迹构建方法的第一个实施例。本发明公开的移动轨迹构建方法可用于诸如汽车行车轨迹构建、行人行走轨迹构建等。在本实施例中,以行车轨迹构建为例进行说明,如图1所示,该移动轨迹构建方法包括:
步骤S1,获取定位装置采集的轨迹数据,轨迹数据包括多个轨迹点。
需要说明的是,该定位装置为GPS定位仪,其他可实现汽车定位的装置也属于本发明的保护范围之内。
具体地,在行车过程中,通过该定位装置每间隔预设时间段即采集一次汽车的当前位置数据,并将该位置数据进行存储,从而得到多个位置数据,即汽车的轨迹数据,行车完成之后,从定位装置中获取该轨迹数据,以用于构建汽车的移动轨迹。该轨迹数据包括多个轨迹点,每一个轨迹点都对应有各自的经纬度坐标信息和采集时间信息。
步骤S2,通过密度聚类算法处理多个轨迹点,得到正常轨迹点和异常轨迹点。
具体地,通过密度聚类算法对多个轨迹点进行处理,从而对多个轨迹点进行“聚类”,并根据每一个轨迹点所属的类别区分该轨迹点是正常轨迹点还是异常轨迹点。
需要说明的是,该异常轨迹点主要是指因为定位装置信号波动而采集的与真实位置偏差过大的轨迹点,或者是因其他外因而采集的误差过大的轨迹点,。
步骤S3,删除异常轨迹点,并存储正常轨迹点至目标轨迹点集。
具体地,对所有轨迹点区分完成后,删除其中的异常轨迹点,并将正常轨迹点存储至目标轨迹点集中,作为构建汽车移动轨迹的基础。
步骤S4,根据目标轨迹点集构建移动轨迹。
具体地,根据上述正常轨迹点的经纬度坐标信息映射至二维的欧式空间,从而构建汽车的移动轨迹。
本实施例通过采用密度聚类算法对定位装置采集的轨迹数据进行处理,从而区分出轨迹数据中的正常轨迹点和异常轨迹点,并删除异常轨迹点,再根据正常轨迹点来进行轨迹的构建,其降低了异常轨迹点对轨迹构建的影响,从而提升了构建的移动轨迹的质量,使得构建的移动轨迹与真实的移动轨迹更为接近,更为符合用户的需求。
图2展示了本发明移动轨迹构建方法的第二个实施例。如图2所示,该移动轨迹构建方法包括:
步骤S10,获取定位装置采集的轨迹数据,轨迹数据包括多个轨迹点。
该步骤与步骤S1类似,具体可参照步骤S1的描述,在此不再赘述。
步骤S11,通过密度聚类算法对多个轨迹点进行计算,得到聚类簇的数目。
需要说明的是,密度聚类算法可以通过分析样本分布的紧密程度来对样本进行类别划分,同一类别的样本,它们之间是紧密相连的,也就是说,在该类别任意样本周围一定范围内存在同类别的样本。通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,则我们就得到了最终的所有聚类类别结果。例如,设样本集是D=(x1,x2,...,xm),则密度聚类算法具体的密度描述定义如下:
(1)∈-邻域:对于xj∈D,其∈-邻域包含样本集D中与xj的距离(欧氏距离)不大于∈的子样本集,即N∈(xj)={xi∈D|distance(xi,xj)≤∈},这个子样本集的个数记为|N∈(xj)|;
(2)核心对象:对于任一样本xj∈D,如果其∈-邻域对应的N∈(xj)至少包含MinPts个样本,即如果|N∈(xj)|≥MinPts,则xj是核心对象。
(3)密度直达:如果xi位于xj的∈-邻域中,且xj是核心对象,则称xi由xj密度直达。注意反之不一定成立,即此时不能说xj由xi密度直达,除非且xi也是核心对象。
(4)密度可达:对于xi和xj,如果存在样本样本序列p1,p2,...,pT,满足p1=xi,pT=xj,且pt+1由pt密度直达,则称xj由xi密度可达。也就是说,密度可达满足传递性。此时序列中的传递样本p1,p2,...,pT-1均为核心对象,因为只有核心对象才能使其他样本密度直达。注意密度可达也不满足对称性,这个可以由密度直达的不对称性得出。
(5)密度相连:对于xi和xj,如果存在核心对象样本xk,使xi和xj均由xk密度可达,则称xi和xj密度相连。注意密度相连关系是满足对称性的。
根据上述定义,可以获知密度聚类算法的具体流程:
输入:样本集D=(x1,x2,...,xm),邻域参数(∈,MinPts),样本距离度量方式(欧氏距离);
输出:簇划分C。
(1)初始化核心对象集合初始化聚类簇数k=0,初始化未访问样本集合Γ=D,簇划分
(2)对于j=1,2,...m,按下面的步骤找出所有的核心对象:
a)通过距离度量方式,找到样本xj的∈-邻域子样本集N∈(xj);
b)如果子样本集样本个数满足|N∈(xj)|≥MinPts|,将样本xj加入核心对象样本集合:Ω=Ω∪{xj}。
(3)如果核心对象集合则算法结束,否则转入步骤(4)。
(4)在核心对象集合Ω中,随机选择一个核心对象o,初始化当前簇核心对象队列Ωcur={o},初始化类别序号k=k+1,初始化当前簇样本集合Ck={o},更新未访问样本集合Γ=Γ-{o}。
(5)如果当前簇核心对象队列则当前聚类簇Ck生成完毕,更新簇划分C={C1,C2,...,Ck},更新核心对象集合Ω=Ω-Ck,转入步骤(3)。
(6)在当前簇核心对象队列Ωcur中取出一个核心对象o′,通过邻域距离阈值∈找出所有的∈-邻域子样本集N∈(o′),令Δ=N∈(o′)∩Γ,更新当前簇样本集合Ck=Ck∪Δ,更新未访问样本集合Γ=Γ-Δ,更新Ωcur=Ωcur∪(N∈(o′)∩Ω),转入步骤(5)。
输出结果为:簇划分C={C1,C2,...,Ck}。
具体地,本实施例通过将多个轨迹点作为样本集D输入上述密度聚类算法,即可得到该多个轨迹点可以划分为多少个聚类簇,其中,正常采集的轨迹点,通过上述算法即可确认分属于一个聚类簇,而异常的轨迹点因为与正常轨迹点偏差过大,因而属于其他聚类簇。此外,还可得到每一个聚类簇对应的轨迹点的个数以及具体的轨迹点的信息。
步骤S12,判断聚类簇的数目是否大于一。当聚类簇的数目等于一时,执行步骤S13;当聚类簇的数目大于一时,执行步骤S14~步骤S16。
具体地,理想情况下,定位装置采集的轨迹数据中,多个轨迹点连续且不存在异常轨迹点,通过分析轨迹点之间的紧密程度即可确认所有的轨迹点属于同一类别,此时,聚类簇的数目则为一;而到轨迹数据中存在异常轨迹点时,通过分析异常轨迹点和正常轨迹点之间的紧密程度即可确认异常轨迹点与正常轨迹点不属于同一类别,此时,聚类簇的数目则大于一。因此,通过判断聚类簇的数目是否大于一,当聚类簇的数目等于一时,执行步骤S13;当聚类簇的数目大于一时,执行步骤S14~步骤S16。
步骤S13,确认多个轨迹点均为正常轨迹点。
具体地,当聚类簇的数目等于一时,说明所有的轨迹点都是正常轨迹点。
步骤S14,获取每个聚类簇对应的轨迹点的个数。
具体地,当聚类簇的数目大于一时,说明多个轨迹点中存在异常轨迹点,则获取每一个聚类簇对应的轨迹点的个数。
步骤S15,根据每个聚类簇对应的轨迹点的个数确认异常聚类簇,异常聚类簇对应的轨迹点的个数小于预设阈值。
需要说明的是,该预设阈值预先设定,本实施例中,该预设阈值优选设置为3。
具体地,在获取每个聚类簇对应的轨迹点的个数之后,判断每个聚类簇对应的轨迹点的个数是否超过预设阈值;若聚类簇对应的轨迹点的个数超过预设阈值,则说明该聚类簇对应的轨迹点个数较多,可以形成一段连续的轨迹,则该聚类簇对应的轨迹点为正常轨迹点;若聚类簇对应的轨迹点的个数未超过预设阈值,则说明该聚类簇对应的轨迹点个数很少,从而无法形成一段连续的轨迹,例如,少于三个轨迹点,因此,该聚类簇即可确定为异常聚类簇。
步骤S16,确认异常聚类簇对应的轨迹点为异常轨迹点。
具体地,根据异常聚类簇获取其对应的轨迹点信息,并确定其为异常轨迹点。
步骤S17,删除异常轨迹点,并存储正常轨迹点至目标轨迹点集。
该步骤与步骤S3类似,具体可参照步骤S3的描述,在此不再赘述。
步骤S18,根据目标轨迹点集构建移动轨迹。
该步骤与步骤S4类似,具体可参照步骤S4的描述,在此不再赘述。
本实施例通过密度聚类算法对多个轨迹点进行计算处理,从而获知该多个轨迹点可以划分为多少个聚类簇,当聚类簇的数目等于一时,说明该多个轨迹点为连续的正常轨迹点,均可用于进行移动轨迹的构建,当聚类簇的数目大于一时,则对每个聚类簇中对应的轨迹点的个数进行判断,而对应轨迹点个数小于预设阈值的聚类簇即可确认为异常聚类簇,其对应的轨迹点即为异常轨迹点,从而区分出多个轨迹点中的正常轨迹点和异常轨迹点,该区分轨迹点的方式准确率更高,避免因多个轨迹点为不连续的轨迹点而造成误判的情况。
图3展示了本发明移动轨迹构建方法的第三个实施例。如图3所示,该移动轨迹构建方法包括:
步骤S20,获取定位装置采集的轨迹数据,轨迹数据包括多个轨迹点。
该步骤与步骤S1类似,具体可参照步骤S1的描述,在此不再赘述。
步骤S21,通过密度聚类算法处理多个轨迹点,得到正常轨迹点和异常轨迹点。
该步骤与步骤S2类似,具体可参照步骤S2的描述,在此不再赘述。
步骤S22,删除异常轨迹点,并存储正常轨迹点至目标轨迹点集。
该步骤与步骤S3类似,具体可参照步骤S3的描述,在此不再赘述。
步骤S23,判断目标轨迹点集中的多个目标轨迹点是否连续。当目标轨迹点集中的多个目标轨迹点不连续时,执行步骤S24~步骤S28。
需要说明的是,本实施例中的目标轨迹点是否连续是指相邻的两个目标轨迹点之间的距离是否超过预设距离阈值,例如1公里。当相邻的两个目标轨迹点之间的距离未超过预设距离阈值时,说明该两个目标轨迹点连续;当相邻的两个目标轨迹点之间的距离超过预设距离阈值时,说明该两个目标轨迹点不连续。
具体地,定位装置在采集轨迹数据过程中,当定位装置处于无信号的环境中时,无法进行有效的数据采集,例如,汽车过隧道的情况,此时,定位装置采集的多个轨迹点存在不连续的情况。或者是,删除异常轨迹点之后,该异常轨迹点前后相邻的两个正常轨迹点之间的距离超过预设距离阈值,导致此两个正常轨迹点不连续。步骤S24,确认多个目标轨迹点存在至少一个轨迹中断区域。
步骤S25,获取每一个轨迹中断区域的起始轨迹点的坐标、终止轨迹点的坐标以及中断时长T1。
具体地,当目标轨迹点集中的多个目标轨迹点不连续时,则说明多个目标轨迹点中存在至少一个轨迹中断区域,此时,以一个轨迹中断区域为例进行说明,获取该轨迹中断区域的起始轨迹点的坐标、终止轨迹点的坐标以及中断时长T1。
步骤S26,获取定位装置采集轨迹点的间隔时长T2。
步骤S27,计算得到每一个轨迹中断区域理应采集的轨迹点的目标个数N=T1/T2。
具体地,获取当前轨迹中断区域的中断时长T1和定位装置采集轨迹点的间隔时长T2之后,即可根据T1和T2计算出该当前轨迹中断区域理应采集的轨迹点的目标个数N=T1/T2。
步骤S28,根据起始轨迹点的坐标、终止轨迹点的坐标以及目标个数N构建补偿轨迹点,并将补偿轨迹点存储至目标轨迹点集中。
具体地,在获知起始轨迹点的坐标、终止轨迹点的坐标以及目标个数N,沿起始轨迹点至终止轨迹点所连成直线的方向构建补充轨迹点,从而将当前轨迹中断区域的轨迹点的个数补齐,并将补偿轨迹点存储至目标轨迹点集中,用作构建移动轨迹的轨迹点。
步骤S29,根据目标轨迹点集构建移动轨迹。
该步骤与步骤S4类似,具体可参照步骤S4的描述,在此不再赘述。
本实施例通过确认多个轨迹点中的轨中断区域,并获取轨迹中断区域的起始轨迹点的坐标、终止轨迹点坐标和中断时长,以及定位装置采集轨迹点的间隔时长,再从而计算出轨迹中断区域理应采集的轨迹点的目标个数,并根据理应采集的轨迹点的目标个数、起始轨迹点的坐标、终止轨迹点的坐标构建出补偿轨迹点,从而补全轨迹中断区域缺失的轨迹点,使得最终构建的移动轨迹更为完整,进一步提升了构建的移动轨迹的质量。
图4展示了本发明移动轨迹构建装置的一个实施例。在本实施例中,如图4所示,该移动轨迹构建装置包括获取模块10、处理模块11、删除模块12和构建模块13。
其中,获取模块10,用于获取定位装置采集的轨迹数据,轨迹数据包括多个轨迹点;处理模块11,用于通过密度聚类算法处理多个轨迹点,得到正常轨迹点和异常轨迹点;删除模块12,用于删除异常轨迹点,并存储正常轨迹点至目标轨迹点集;构建模块13,用于根据目标轨迹点集构建移动轨迹。
上述实施例的基础上,其他实施例中,如图5所示,处理模块11包括计算单元110、判断单元111和第一确认单元112。
其中,计算单元110,用于通过密度聚类算法对多个轨迹点进行计算,得到聚类簇的数目;判断单元111,用于判断聚类簇的数目是否大于一;第一确认单元112,用于当聚类簇的数目等于一时,确认多个轨迹点均为正常轨迹点。
进一步的,该处理模块11还包括获取单元113、第二确认单元114和第三确认单元115。
其中,获取单元113,用于当聚类簇的数目大于一时,获取每个聚类簇对应的轨迹点的个数;第二确认单元114,用于根据每个聚类簇对应的轨迹点的个数确认异常聚类簇,异常聚类簇对应的轨迹点的个数小于预设阈值;第三确认单元115,用于确认异常聚类簇对应的轨迹点为异常轨迹点。
上述实施例的基础上,其他实施例中,如图6所示,该移动轨迹构建装置还包括判断模块20、中断确认模块21、坐标获取模块22、时间获取模块23、计算模块24和补偿模块25。
其中,判断模块20,用于判断目标轨迹点集中的多个目标轨迹点是否连续;中断确认模块21,用于当目标轨迹点集中的多个目标轨迹点不连续时,确认多个目标轨迹点存在至少一个轨迹中断区域;坐标获取模块22,用于获取每一个轨迹中断区域的起始轨迹点的坐标、终止轨迹点的坐标以及中断时长T1;时间获取模块23,用于获取定位装置采集轨迹点的间隔时长T2;计算模块24,用于计算得到每一个轨迹中断区域理应采集的轨迹点的目标个数N=T1/T2;补偿模块25,用于根据起始轨迹点的坐标、终止轨迹点的坐标以及目标个数N构建补偿轨迹点,并将补偿轨迹点存储至目标轨迹点集中。
关于上述三个实施例移动轨迹构建装置中各模块实现技术方案的其他细节,可参见上述实施例中的移动轨迹构建方法中的描述,此处不再赘述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对发明的具体实施方式进行了详细说明,但其只作为范例,本发明并不限制于以上描述的具体实施方式。对于本领域的技术人员而言,任何对该发明进行的等同修改或替代也都在本发明的范畴之中,因此,在不脱离本发明的精神和原则范围下所作的均等变换和修改、改进等,都应涵盖在本发明的范围内。