首页 / 专利分类库 / 信号装置 / 交通 / 海上航行器的交通控制系统 / 一种航迹提取方法及装置

一种航迹提取方法及装置

申请号 CN201910294950.2 申请日 2019-04-12 公开(公告)号 CN111813877B 公开(公告)日 2024-05-03
申请人 中电科海洋信息技术研究院有限公司; 发明人 梁新; 徐垚; 任呈祥; 温建新; 赵利坡;
摘要 本 申请 公开了一种航迹提取方法及装置,所述方法包括获取待提取的历史航迹数据;根据所述历史航迹数据,提取各条航迹的关键点;对所述关键点进行聚类,并从各个类别中提取代表点;连接所述各个代表点,生成航线分支图。本 发明 提供的这种方法,不仅对复杂远洋船只轨迹数据具有良好的适应性,而且基于航迹分支图能很好地展现出航行过程中各个点迹之间的序列关系以及船只在整个航线上的转移序列。
权利要求

1.一种航迹提取方法,其特征在于:
获取待提取的历史航迹数据;
根据所述历史航迹数据,提取各条航迹的关键点;
所述提取各条航迹的关键点包括:将每条航迹的起点作为第一个关键点,终点作为最后一个关键点,若当前点距最近关键点的航向差大于预设度,且所述当前点的航速大于第二预设速度,则提取所述当前点为关键点;
对所述关键点进行聚类,并从各个类别中提取代表点;
所述从各个类别中提取代表点包括:若所述类别内的关键点属于多个航迹序列,则保留所述类别,否则删除所述类别;计算各个所述保留所述类别的平均经度、平均纬度和平均长度参数,并将所述平均经度、平均纬度和平均长度参数所在位置的点作为代表点;
连接各个所述代表点,生成航线分支图;
所述连接各个所述代表点,包括建立连接关系:
基于各条航迹序列,逐条提取所述各条航迹上的关键点,并生成各条航迹的关键点序列;基于各个所述关键点序列,通过有向边的形式依次连接各个代表点以生成第一航线分支图;
修正所述第一航线图中的连接关系以生成第二航线分支图;
修正所述第二航线图中的连接关系生成第三航线分支图;
将所述有向边添加到所述第三航线分支图以生成第四航线分支图;
修正所述第四航线分支图中的连接关系以得到最终的航线分支图;
其中,所述修正所述第一航线图中的连接关系以生成第二航线分支图中的修正包括去除满足规则的有向边,所述去除规则包括:
若所述有向边的权值小于预设数值,则将该有向边去除;
若所述有向边的终点与起点的长度参数的差值大于第一预设阈值,或小于第二预设阈值,则将该有向边从所述第一航线图中去除;
修正所述第二航线图中的连接关系,包括为入度为零的代表点添加有向边,所述添加规则包括:
若存在有向边以所述代表点为终点,所述有向边的终点与起点的长度参数的差值大于零且所述起点的出度为零,则将所述有向边添加到所述第二航线分支图以生成第三航线分支图;
若所述第三航线分支图中还存在入度为零的代表点,则将所述第三航线分支图中的各个代表点按照所述各个代表点的长度参数升序排列,然后将所述代表点的上一个代表点与所述代表点连接生成有向边,并将所述有向边添加到所述第三航线分支图以生成第四航线分支图;
修正所述第四航线分支图中的连接关系以得到最终的航线分支图,包括:
若所述第四航线分支图中还存在多个出度为零的代表点,则只保留长度参数最大的所述代表点,去除其余出度为零的所述代表点及其有向边;
若所述第四航线分支图中存在第一代表点、第二代表点、第三代表点以及第一代表点到第二代表点的有向边、第二代表点到第三代表点的有向边、第一代表点到第三代表点的有向边的子结构,且所述第二代表点到所述第一代表点和所述第三代表点所在航段的最短距离小于两倍的预设距离,则去除所述第二代表点。
2.根据权利要求1所述的航迹提取方法,其特征在于,
在所述提取各条航迹的关键点的步骤之前,还包括对所述历史航迹数据进行预处理,所述预处理包括:
去除所述历史航迹数据中的异常数据和/或重复数据,得到第一航迹数据;
对每条所述第一航迹数据进行分段,并对分段航迹重新采样,得到第二航迹数据;
根据第一预设速度去除所述第二航迹数据中的异常数据,得到第三航迹数据。
3.根据权利要求1所述的航迹提取方法,其特征在于,根据所述各条航迹的关键点序列,计算各条航迹上关键点的长度参数。
4.一种航迹提取装置,其特征在于,
获取模,用于获取待提取的历史航迹数据;
关键点提取模块,用于根据所述历史航迹数据,提取各条航迹的关键点;
所述提取各条航迹的关键点包括:将每条航迹的起点作为第一个关键点,终点作为最后一个关键点,若当前点距最近关键点的航向差大于预设角度,且所述当前点的航速大于第二预设速度,则提取所述当前点为关键点;
代表点提取模块,用于对所述关键点进行聚类,并从各个类别中提取代表点;
所述从各个类别中提取代表点包括:若所述类别内的关键点属于多个航迹序列,则保留所述类别,否则删除所述类别;计算各个所述保留所述类别的平均经度、平均纬度和平均长度参数,并将所述平均经度、平均纬度和平均长度参数所在位置的点作为代表点;
生成模块,用于连接各个所述代表点,生成航线分支图;
所述连接各个所述代表点,包括建立连接关系:
基于各条航迹序列,逐条提取所述各条航迹上的关键点,并生成各条航迹的关键点序列;基于各个所述关键点序列,通过有向边的形式依次连接各个代表点以生成第一航线分支图;
修正所述第一航线图中的连接关系以生成第二航线分支图;
修正所述第二航线图中的连接关系生成第三航线分支图;
将所述有向边添加到所述第三航线分支图以生成第四航线分支图;
修正所述第四航线分支图中的连接关系以得到最终的航线分支图;
其中,所述修正所述第一航线图中的连接关系以生成第二航线分支图中的修正包括去除满足规则的有向边,所述去除规则包括:
若所述有向边的权值小于预设数值,则将该有向边去除;
若所述有向边的终点与起点的长度参数的差值大于第一预设阈值,或小于第二预设阈值,则将该有向边从所述第一航线图中去除;
修正所述第二航线图中的连接关系,包括为入度为零的代表点添加有向边,所述添加规则包括:
若存在有向边以所述代表点为终点,所述有向边的终点与起点的长度参数的差值大于零且所述起点的出度为零,则将所述有向边添加到所述第二航线分支图以生成第三航线分支图;
若所述第三航线分支图中还存在入度为零的代表点,则将所述第三航线分支图中的各个代表点按照所述各个代表点的长度参数升序排列,然后将所述代表点的上一个代表点与所述代表点连接生成有向边,并将所述有向边添加到所述第三航线分支图以生成第四航线分支图;
修正所述第四航线分支图中的连接关系以得到最终的航线分支图,包括:
若所述第四航线分支图中还存在多个出度为零的代表点,则只保留长度参数最大的所述代表点,去除其余出度为零的所述代表点及其有向边;
若所述第四航线分支图中存在第一代表点、第二代表点、第三代表点以及第一代表点到第二代表点的有向边、第二代表点到第三代表点的有向边、第一代表点到第三代表点的有向边的子结构,且所述第二代表点到所述第一代表点和所述第三代表点所在航段的最短距离小于两倍的预设距离,则去除所述第二代表点。

说明书全文

一种航迹提取方法及装置

技术领域

[0001] 本发明涉及计算机科学与技术的数据挖掘技术领域,特别涉及一种航迹提取方法及装置。

背景技术

[0002] 随着数据采集数据处理技术的进步,目前众多组织预从海量轨迹数据中挖掘有价值的信息。航迹是飞行器或者船舶实际经过的路径,在海事领域,识别船只的航迹对于港口运营与管理、贸易关系分析和海上交通管理等问题有着重要的意义。
[0003] 现有技术是借鉴陆上目标轨迹数据的提取方法,通过对轨迹序列之间的相似性做分组处理。然而对于持续时间长、数据采集间隔与质量不均匀、数据质量与地理区域强相关的远洋航迹数据而言,很难定义性质良好的相似性度量,而且所需计算量比较大,难以通过分布式处理适应大规模数据集,从而难以挖掘从起始港口到目的港口的各条线路之间真实的拓扑关系。
[0004] 鉴于此,如何开发出一种复杂航迹数据环境下的航迹提取方法是亟待解决的问题。

发明内容

[0005] 鉴于现有技术中的上述缺陷或不足,期望提供一种航迹提取方法及装置,对复杂轨迹数据具有很好的适应性,且能提取出航线起始点之间真实的通航情况。
[0006] 第一方面,本申请提供一种航迹提取方法,包括:
[0007] 获取待提取的历史航迹数据;
[0008] 根据所述历史航迹数据,提取各条航迹的关键点;
[0009] 对所述关键点进行聚类,并从各个类别中提取代表点;
[0010] 连接所述各个代表点,生成航线分支图。
[0011] 第二方面,本申请提供一种航迹提取装置,包括:
[0012] 获取模,用于获取待提取的历史航迹数据;
[0013] 关键点提取模块,用于根据所述历史航迹数据,提取各条航迹的关键点;
[0014] 代表点提取模块,用于对所述关键点进行聚类,并从各个类别中提取代表点;
[0015] 生成模块,用于连接所述各个代表点,生成航线分支图。
[0016] 综上,本申请实施例提供的一种航迹提取方法及装置,先从各条航迹数据中提取关键点,然后对关键点聚类,并从各个类别中提取代表点,最后利用有向边连接各个代表点生成航线分支图,其中,对关键点进行提取的步骤,避免了直接在航迹数据上构造相似性度量,进而说明对复杂航迹数据具有很好的适应性;对关键点进行聚类的算法复杂性较现有技术低,只需遍历一次关键点数据即可完成聚类;通过生成的航线分支图,可以完整地刻画出起点到终点的过程中各个点迹之间的转移关系,以及能确切提取出整体的通航情况。附图说明
[0017] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0018] 图1为本申请实施例提供的一种航迹提取方法的基本流程示意图;
[0019] 图2为本申请实施例中的第一航线分支图的示意图;
[0020] 图3为本申请实施例中的最终航线分支图的示意图;
[0021] 图4为本申请实施例提供的一种航迹提取装置的基本流程示意图;
[0022] 图5为本申请提供的一种计算机系统

具体实施方式

[0023] 下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
[0024] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0025] 本申请实施例提供一种航迹提取方法,该方法应用于终端中。需要说明的是,本申请实施例中所涉及的终端可以包括但不限于个人计算机(Personal Computer,PC)、个人数字助理(Personal Digital Assistant,PDA)、平板电脑(Tablet Computer)、无线手持设备和手机等。
[0026] 为了便于理解和说明,下面通过图1至图4详细的阐述本申请实施例提供的航迹提取方法及装置。
[0027] 请参考图1,其为本申请实施例提供的一种航迹提取方法的基本流程示意图,该方法包括以下步骤:
[0028] S101,获取待提取的历史航迹数据。
[0029] 具体的,历史航迹数据是指经过历史采集得到的航迹数据,其中,每个航迹数据为一个点迹,采集的每个点迹的属性包括:所在航迹ID、所在航迹ID中的点迹ID、经度、纬度和时间。例如在海事领域,这里的历史航迹数据是指若干条船只历史上从A港口到达B港口的船只轨迹数据,也可以是同一船只历史上从A港口到达B港口的船只轨迹数据。这里的ID即identification,指的是编码,用于标识和识别。
[0030] S102,根据所述历史航迹数据,提取各条航迹的关键点。
[0031] 首先对每条历史航迹中的航迹数据按照各个航迹数据的时间进行排序,一般为升序,由此生成每条航迹的航迹序列。为了更好地区别各个航迹序列,可以对所有待提取的航迹序列进行编码即可。
[0032] 进一步的,在提取各条航迹的关键点的步骤之前,需要对历史航迹数据进行预处理,具体预处理基于上述的航迹序列,其步骤如下:
[0033] 步骤一:去除历史航迹数据中的异常数据和/或重复数据,得到第一航迹数据。其中,异常数据指的是将航迹序列中每个点迹的航速与设定航速进行比较,若不一致,则认为该点迹的航速是异常航速,需要将该点迹从航迹中去除,优选的,此处的设定航速取20m/s,也可以是在10m/s到30m/s的范围之间任意取值;重复数据指的是航迹中某个点迹的时间点被重复采集,若发现该点迹有相同的采集时间,则只保留最早接收到的点迹,其余所述点迹被从航迹中去除。
[0034] 直至每条历史航迹中无异常数据和/或重复数据,此时被去除后的航迹数据被定义为第一航迹数据。
[0035] 步骤二:对每条所述第一航迹数据进行分段,并对分段航迹重新采样,得到第二航迹数据。
[0036] 先对每条第一航迹数据分别按照时间顺序进行排序,一般为升序,由此重新生成每条航迹的航迹序列。
[0037] 然后对第一航迹数据进行具体的分段,其分段规则为:例如在海事领域,对于同一条航迹,若某个点迹与下一个点迹的时间间隔小于2小时或者这个点迹到下一个点迹之间的距离间隔大于40海里,则从该点迹处将这条航迹断开,如此,直至为所有的航迹进行完分段,这样每一条航迹就有多个分段航迹。需要说明的是,该点迹属于上一航段,下一个点迹属于下一航段,从该点迹处将上一航段和下一航段断开,但保留该点迹。
[0038] 接着对每条航迹上的多个分段航迹进行重新采样,具体的,先按照预设时间间隔对属于同一分段航迹上的点迹进行重新采样,优选的,预设时间间隔为5分钟,也可以在1分钟到1小时之间任意取值。如此,直至为所有的多个分段航迹完成重新采样,此时的航迹数据被被定义为第二航迹数据。
[0039] 步骤三:根据第一预设速度去除所述第二航迹数据中的异常数据,得到第三航迹数据。
[0040] 先对每条第二航迹数据分别按照时间顺序进行排序,一般为升序,由此重新生成每条航迹的航迹序列。
[0041] 具体的,先计算同一航迹序列里相邻两点迹之间的距离,根据所述距离和相邻点迹之间的时间计算这段航迹的平均航速,将平均航速与第一预设速度进行比较,若平均航速大于第一预设速度,则将同一航迹序列中相邻点迹中的第一个点迹作为异常点进行去除,如此,直至第二航迹数据中没有异常数据存在,此时的航迹数据被定义为第三航迹数据。优选的,第一预设速度为20m/s,也可以在10m/s到30m/s之间任意取值。
[0042] 经过上述对历史航迹数据进行预处理,再对历史航迹数据进行分段,然后再分段航迹预处理,剔除了航迹数据中存在的各种异常点,重新对航迹数据进行了整理排序,降低了后续关键点提取的复杂性和出错率。
[0043] 进一步的,提取各条航迹的关键点,具体包括:按照每条航迹序列,逐条提取各条航迹上的关键点,并生成各条航迹的关键点序列,需要说明的是,每条航迹序列可以是未进行预处理的航迹序列,也可以是进行预处理之后的航迹序列。
[0044] 其中,提取关键点的方法包括:
[0045] 将每条航迹的起点作为第一个关键点,终点作为最后一个关键点,从第一个关键点开始,依次计算每个点迹距最近关键点的航向差,以及每个点迹的航速,若存在当前点距最近关键点的航向差大于预设度,且当前点的航速大于第二预设速度,则提取该当前点为关键点。
[0046] 优选的,预设角度为15度,也可以在5度到20度之间任意取值优选的,[0047] 优选的,第二预设速度为0.1m/s,也可以在0.1m/s到2m/s之间任意取值。
[0048] 需要说明的是,在每提取一个关键点,就需要通过关联该当前点并提取该关键点的相关属性并进行保存,相关属性包括该关键点的ID、时间、经度、纬度、航迹序列ID以及与上一关键点的ID。这里的ID即identification,指的是编码,用于标识和识别。
[0049] 如此,直至进行到最后一个关键点结束就完成了所有航迹中关键点及关键点属性的提取,此时每条航迹对应有一个关键点序列。
[0050] 进一步的,根据各条航迹的关键点序列,计算各条航迹上关键点的长度参数。
[0051] 具体的,将每条航迹的起点的长度参数定义为0,终点的长度参数定义为1,从起点开始依次计算相邻两个关键点之间的距离,并与上一关键点的长度参数相加,形成当前关键点的总里程,进而将当前关键点的总里程除以终点的总里程所得的值,作为该关键点的长度参数。如此,直至为所有的航迹上的关键点完成长度参数的计算,可见,长度参数的取值范围为0到1。
[0052] 本实施例的关键点的提取算法复杂性低,只需遍历一次历史航迹数据即可完成;在提取关键点的过程中根据航向差去除了航迹中相邻的航向变化不大的点迹,简化了后续关键点的聚类的复杂性;并记录了各个航迹序列中各个关键点的相关属性,为后续进一步挖掘出更多属性信息做好了铺垫;同时还可根据各个关键点的长度参数指定各个关键点在整个航线中的顺序,进而可以比较不同航迹的相邻关键点之间的顺序,也可以比较同一航迹的相邻关键点之间的顺序。
[0053] S103,对所述关键点进行聚类,并从各个类别中提取代表点。
[0054] 首先,对所有航迹中的关键点聚类,具体的,将上述得到的各条航迹序列中的关键点全部从地理坐标系投影到平面坐标系中,再将得到一个个对应的坐标点,统一输入到聚类算法中进行聚类。
[0055] 优选的,本实施例中关键点的聚类采用DBSCAN聚类算法,具体的,将关键点的坐标统一输入DBSCAN算法中,其中,设定DBSCAN算法中的距离阈值为预设距离,且每个类别中至少包含预设数值个关键点,当满足此条件,则聚合为一个类别。另外,当聚类结束之后,还需要将DBSCAN算法中出现的噪声点去除,该噪声点为不在任何已知类别中的关键点。可以理解的是,为了更好的对各个类别加以识别,为最终的各个类别进行编码,即每个类别就会有一个类别ID。
[0056] 优选的,预设距离为20公里,也可以在5公里到50公里之间任意取值。
[0057] 优选的,预设数值为5个,也可以在3个到20个之间任意取值。
[0058] 本实施例采用对提取到的关键点进行直接聚类,不需要对全部历史航迹数据进行聚类,从而降低了聚类的复杂性,与现有技术相比,避免了对复杂航迹数据直接构造复杂的相似性度量,实际应用中对持续时间长、数据采集间隔与质量不均匀、数据质量与地理区域强相关的航迹数据具有良好的适应性,保证在分布式环境下能适应大规模的航迹数据。
[0059] 接着,从各个已知类别中提取代表点,具体步骤包括:
[0060] 步骤一:若经过统计类别内的关键点属于多个航迹序列,则保留所述类别,否则删除所述类别。
[0061] 优选的,多个航迹序列的个数为3个,也可以在1个到10个之间任意取值。
[0062] 步骤二:计算各个所述保留所述类别的平均经度、平均纬度和平均长度参数,并将所述平均经度、平均纬度和平均长度参数所在位置的点作为代表点。
[0063] 具体的,基于类别中所含有的关键点,优选的,采用算术平均的方法对所有关键点求平均经度、平均纬度和平均长度参数,计算出来的平均经度、平均纬度和平均长度参数在类别中所唯一对应的点,就作为这个类别的代表点,如此,提取出所有类别中的代表点。
[0064] 另外,还需要将每一次计算出来的平均经度、平均纬度和平均长度参数作为该代表点的经度、纬度和长度参数并保存。
[0065] 可以理解的是,为了更好的对所提取的各个代表点加以识别,对各个代表点进行编码,即每个代表点就会有一个代表点ID,其与上述的类别ID不仅是一一对应的,而且数字上是一致的。
[0066] 本步骤一去除了类别中所含关键点数较少的类别,本步骤二进一步提取了代表点,作为后续航线分支图中的节点
[0067] S104,连接所述各个代表点,生成航线分支图。
[0068] 具体的,连接并建立各个代表点之间的连接关系,本实施例中基于各个所述关键点序列,通过有向边的形式依次连接各个代表点以生成第一航线分支图。
[0069] 更具体的,按照各个关键点序列,从关键点序列中的第一个关键点开始,将该关键点对应的代表点ID作为顶点集,以同一航迹上的上一个关键点对应的代表点到当前关键点对应的代表点的有序元组作为有向边,依次利用有向边的形式连接各个代表点,最终生成第一航线分支图。
[0070] 需要说明的是,在航线分支图中,每个有向边的权值为相应有序元组出现的次数。例如:第一航线分支图中存在相邻代表点v1和v2,从v1到v2的有序元组有三条,则有向边v1→v2的权值就为3。
[0071] 进一步的,修正第一航线图中的连接关系以生成第二航线分支图,此处的修正指的是去除满足规则条件的有向边。
[0072] 具体的,去除规则包括:
[0073] 规则一:若所述有向边的权值小于预设数值,则将该有向边去除。
[0074] 优选的,预设数值为3个,也可以在1到15之间任意取值。
[0075] 规则二:若所述有向边的终点与起点的长度参数的差值大于第一预设阈值,或小于第二预设阈值,则将该有向边从所述第一航线图中去除。
[0076] 例如:假设存在一有向边,其起点为v1,终点为v2,对应的长度参数分别为r(v1)和r(v2),若r(v2)‑r(v1)的值大于第一阈值,或r(v2)‑r(v1)的值小于第二阈值,则将该有向边v1→v2从第一航线图中去除,当去除完这种有向边后,至此第一航线图被标记为第二航线图。
[0077] 优选的,第一阈值为0.2,也可以在0.1到0.8之间任意取值。
[0078] 优选的,第二阈值为‑0.01,也可以在‑0.1到0.1之间任意取值。
[0079] 另外,在规则一步骤之前,去除规则还包括:去除第一航线分支图中起点和终点相同的有向边,这是因为起点和终点都在同一个类别中。
[0080] 本实施例去除了第一航线分支图中不合理的有向边,第二航线分支图中可能因为各种原因会存在多个连通子图,所述连通子图是指具有连通性的分片,包括存在入度为零的代表点和出度为零的代表点。
[0081] 进一步的,修正第二航线图中的连接关系,包括为入度为零的代表点添加有向边。所述入度为零的代表点指的是没有有向边以此代表点为终点,同理,出度为零的代表点指的是没有有向边以此代表点为起点。
[0082] 具体的,添加规则包括:
[0083] 规则一:若存在有向边以入度为零的代表点为终点,所述有向边的终点与起点的长度参数的差值大于零且所述起点的出度为零,则将所述有向边添加到所述第二航线分支图以生成第三航线分支图。
[0084] 例如:假设存在一有向边以入度为零的代表点v为终点,且该有向边的起点为s,对应的长度参数分别为r(v)和r(s),若满足r(v)‑r(s)>0且起点s的出度为零,则将有向边s→v加入第二航线图中,当第二航线分支图中不存在这类满足条件的有向边后,至此第二航迹分支图被标记为第三航线分支图。
[0085] 规则二:若第三航线分支图中还存在入度为零的代表点,则将第三航线分支图中的各个代表点按照所述各个代表点的长度参数升序排列,然后将所述代表点的上一个代表点与所述代表点连接生成有向边,并将所述有向边添加到第三航线分支图以生成第四航线分支图。
[0086] 例如:假设第三航线分支图中还存在入度为零的代表点vi,则将第二航线图中的所有代表点按照代表点的长度参数升序排列,将所述代表点vi的上一个代表点vi‑1与代表点vi连接构成有向边vi‑1→vi,再将有向边vi‑1→vi添加到第三航线图中,该步骤完成之后,第三航线分支图中仅剩下一个初始代表点的入度为零,至此第三航迹分支图被标记为第四航线分支图。
[0087] 进一步的,修正第四航线分支图中的连接关系,以得到最终的航线分支图,具体修正规则包括:
[0088] 规则一:若第四航线分支图中还存在多个出度为零的代表点,则只保留长度参数最大的所述代表点,去除其余出度为零的所述代表点及其有向边。
[0089] 规则二:若第四航线分支图中存在第一代表点、第二代表点、第三代表点以及第一代表点到第二代表点的有向边、第二代表点到第三代表点的有向边、第一代表点到第三代表点的有向边的子结构,且所述第二代表点到所述第一代表点和所述第三代表点所在航段的最短距离小于两倍的预设距离,则去除所述第二代表点。
[0090] 例如:假设对第四航线分支图进行检测发现存在代表点v1、代表点v2和代表点v3以及有向边v1→v2、有向边v2→v3、有向边v1→v3的子结构,代表点v1到代表点v3的航段标记为v1v3,且代表点v2至航段v1v3的最短距离小于两倍的预设距离,此时代表点v2实际上是在航段v1v3上,因此去除代表点v2。具体去除时,从第四航线分支图中检测满足条件的具有最小长度参数的代表点v1开始,迭代地每次从第四航线分支图中按照此规则二去除冗边,直至第四航线分支图中没有这样的子结构出现为止。
[0091] 优选的,预设距离指的是在利用DBSCAN算法对关键点聚类时的中预设距离,预设距离为20公里,也可以在5公里到50公里之间任意取值。
[0092] 本实施例中经过去除航线分支图中不合理的有向边、对缺失的有向边进行了补全、对出度为零的代表点进行处理,以及对冗边进行消除,针对满足条件的有向边或者代表点,每一步修正过程只需遍历一次航线分支图即可完成,其修正算法及方式,与现有技术相比,复杂性较低。
[0093] 本发明通过最终航线分支图,能完整地刻画出从初始港口到终点港口过程中船只在航线上的各个代表点之间的转移关系,能够更确切地查找出各个船只在各个时间段内所关联的航段信息,能根据相应航段查找其所从属的航迹,以进一步地挖掘各个航段上的船只类型、繁忙程度和容纳深度等属性信息,从而更好地为港口运营与管理、贸易关系分析和海上交通管理等方面提供重要支撑
[0094] 为便于更好地理解上述S101至S104,现以提取海事领域中船只的航行路线为例进行说明。
[0095] 如图2所示,其为本申请实施例中的第一航线分支图的示意图,A为起始港口,B为终点港口,图中的连接线是由原始航迹数据点按照时间顺序连接起来形成的,其中中间有缺失很多原始航迹数据点。
[0096] 对各条历史航迹数据按照本发明提供的航迹提取方法进行航线分支图的提取,具体的提取步骤如下:
[0097] S101、获取待提取的历史航迹数据;
[0098] S102、根据所述历史航迹数据,提取各条航迹的关键点;
[0099] S103、对所述关键点进行聚类,并从各个类别中提取代表点;
[0100] S104、连接所述各个代表点,生成航线分支图。
[0101] 图2中的气泡是经过步骤S101、步骤S102和步骤S103后提取到的各个代表点,然后经过步骤S104将各个代表点连接起来,生成第一航线分支图,如图2所示。
[0102] 如图3所示,其为本申请实施例中的最终航线分支图的示意图,在图2中的第一航线分支图基础上,通过以下修正步骤得到的图3中的最终航线分支图,具体包括:
[0103] 修正步骤一:修正第一航线图中的连接关系以生成第二航线分支图,此处的修正指的是去除满足规则条件的有向边。
[0104] 修正步骤二:初步修正第二航线图中的连接关系以生成第三航线分支图,再修正第三航线分支图以生成第四航线分支图,具体包括为入度为零的代表点添加有向边。
[0105] 修正步骤三:修正第四航线分支图中的连接关系以得到最终的航线分支图,此处的修正包括修正出度为零的代表点问题和去除冗边。
[0106] 图3中各个数字是各个代表点的ID,也就是对应各个类别的ID,各个线段是连接相邻代表点的有向边,通过图3中最终的航线分支图,完整刻画出了船只从港口A到港口B过程中在各个代表点之间的迁移关系,能从中更确切地提取出从港口A到港口B的通航情况,对实际海上远洋船只的航行、航运与贸易以及海事执法等行为具有很好的指导意义。
[0107] 本实施例通过提取关键点的方式,避免了在远洋船只轨迹数据上构造复杂的相似性度量,在实施例中对远洋船只轨迹数据具有良好的适应性;关键点提取算法的复杂性较低,只需通过一次遍历即可完成提取;只需对提取后的关键点聚类,不需要对全部航迹数据进行聚类,从而能适应大规模的航迹数据的聚类;在生成以及修正航迹分支图的过程中也只需要对相应有向边或代表点遍历极了完成。
[0108] 需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
[0109] 基于前述实施例,本申请实施例提供一种航迹提取装置,该装置可以应用于图1‑图3对应的实施例提供的航迹提取方法中。参照图4所示,其为本申请实施例提供的一种航迹提取装置的基本流程示意图,该航迹提取装置包括:
[0110] 获取模块201,用于获取待提取的历史航迹数据;
[0111] 关键点提取模块202,用于根据所述历史航迹数据,提取各条航迹的关键点;
[0112] 代表点提取模块203,用于对所述关键点进行聚类,并从各个类别中提取代表点;
[0113] 生成模块204,用于连接所述各个代表点,生成航线分支图。
[0114] 在本申请的上述实施例中,获取模块201,用于获取待提取的历史航迹数据。
[0115] 具体的,例如在海事领域,这里的历史航迹数据是指若干条船只历史上从A港口到达B港口的船只轨迹数据,也可以是同一船只历史上从A港口到达B港口的船只轨迹数据。
[0116] 在本申请的上述实施例中,关键点提取模块202,用于根据所述历史航迹数据,提取各条航迹的关键点。
[0117] 进一步的,在提取各条航迹的关键点的步骤之前,需要对历史航迹数据进行预处理。
[0118] 进一步的,提取各条航迹的关键点,具体包括:按照每条航迹序列,逐条提取各条航迹上的关键点,并生成各条航迹的关键点序列。
[0119] 进一步的,根据各条航迹的关键点序列,计算各条航迹上关键点的长度参数。
[0120] 在本申请的上述实施例中,代表点提取模块203,用于对所述关键点进行聚类,并从各个类别中提取代表点。
[0121] 优选的,本实施例中关键点的聚类采用DBSCAN聚类算法。
[0122] 进一步的,从各个已知类别中提取代表点。
[0123] 在本申请的上述实施例中,生成模块204,用于连接所述各个代表点,生成航线分支图。
[0124] 进一步的,连接并建立各个代表点之间的连接关系,本实施例中基于各个所述关键点序列,通过有向边的形式依次连接各个代表点以生成第一航线分支图。
[0125] 进一步的,修正第一航线图中的连接关系以生成第二航线分支图,此处的修正指的是去除满足规则条件的有向边。
[0126] 进一步的,修正第二航线图中的连接关系,包括为入度为零的代表点添加有向边。
[0127] 进一步的,修正第四航线分支图中的连接关系,以得到最终的航线分支图。
[0128] 综上,本申请实施例提供的一种航迹提取方法及装置,先从各条航迹数据中提取关键点,然后对关键点聚类,并从各个类别中提取代表点,最后利用有向边连接各个代表点生成航线分支图,其中,对关键点进行提取的步骤,避免了直接在航迹数据上构造相似性度量,进而说明对复杂航迹数据具有很好的适应性;对关键点进行聚类的算法复杂性较现有技术低,只需遍历一次关键点数据即可完成聚类;通过生成的航线分支图,可以完整地刻画出起点到终点的过程中各个点迹之间的转移关系,以及能确切提取出整体的通航情况。
[0129] 基于前述实施例,本申请实施例提供一种计算机系统。请参照图5所示,该计算机系统300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储部分加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM303中,还存储有系统操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
[0130] 以下部件连接至I/O接口305:包括键盘鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。
[0131] 特别地,根据本申请的实施例,上文参考流程图1中描述的过程可以被实现为计算机软件程序。例如,本申请的实施例1包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序由CPU 301执行,以实现如下步骤:
[0132] 获取待提取的历史航迹数据;
[0133] 根据所述历史航迹数据,提取各条航迹的关键点;
[0134] 对所述关键点进行聚类,并从各个类别中提取代表点;
[0135] 连接所述各个代表点,生成航线分支图。
[0136] 在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。
[0137] 需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0138] 附图中的流程图和框图,图示了按照本申请各种实施例航迹提取的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0139] 描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、关键点提取模块、代表点提取模块和生成模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0140] 作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的终端中所包含的;也可以是单独存在,而未装配入该终端中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该终端执行时,使得该终端实现如上述实施例中的航迹提取方法。
[0141] 例如,终端可以实现如图1中所示的:S101,获取待提取的历史航迹数据;S102,根据所述历史航迹数据,提取各条航迹的关键点;S103,对所述关键点进行聚类,并从各个类别中提取代表点;S104,连接所述各个代表点,生成航线分支图。
[0142] 应当注意,尽管在上文详细描述中提及了用于动作执行的终端的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0143] 此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0144] 通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。
[0145] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
QQ群二维码
意见反馈