航行轨迹预测方法、计算机存储介质及程序产品与流程

文档序号:29029920发布日期:2022-02-24 11:59阅读:132来源:国知局
航行轨迹预测方法、计算机存储介质及程序产品与流程

1.本技术实施例涉及计算机技术领域,尤其涉及一种航行轨迹预测方法、计算机存储介质及程序产品。


背景技术:

2.随着航运的不断发展,海洋运输已经成为国际间交换商品的重要方式之一,且海洋运输的货运总量仍在不断增加。然而,海上交通线路异常纷杂,如果交通事故频发会造成巨大的经济损失,且会导致海上航行的人员安全存在巨大隐患。为了提高海洋运输的安全性,避免船舶进入危险水域或发生碰壁等,同时也为了降低海洋运输的油耗成本,需要准确预测船舶未来航行动态。
3.一般情况下,进行船舶的轨迹预测时,通常会根据船舶当前轨迹预测船舶的未来航向。然而海面空旷,同时在海面航行时会受到各种因素的影响,使得船舶航行时的不确定性极高。
4.有鉴于此,现有技术亟需解决的技术问题为提供一种能够准确预测船舶的航行轨迹的方案。


技术实现要素:

5.有鉴于此,本技术实施例提供一种航行轨迹预测方案,以至少部分解决上述问题。
6.根据本技术实施例的第一方面,提供了一种航行轨迹预测方法,包括:获取港口位置数据以及历史船舶航线数据,其中,所述历史船舶航线数据中包括船舶的历史航行轨迹点;根据所述港口位置数据,从所述历史船舶航线数据中确定出与所述港口位置相匹配的历史航行轨迹点;将与所述港口位置相匹配的历史航行轨迹点作为端点,对所述历史船舶航线数据进行分割,获得标识有历史出发港口和历史目的地港口的历史航线数据,以确定与目标船舶的当前航行的出发港口相同的历史出发港口,并根据所述历史出发港口对应的历史航线数据预测所述目标船舶的航行轨迹。
7.根据本技术实施例的第二方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的航行轨迹预测方法。
8.根据本技术实施例的第三方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如上所述的航行轨迹预测方法对应的操作。
9.根据本技术实施例提供的航行轨迹预测方案,预先根据所述港口位置数据,从所述历史船舶航线数据中确定出与所述港口位置相匹配的历史航行轨迹点;将与所述港口位置相匹配的历史航行轨迹点作为端点,对所述历史船舶航线数据进行分割,得到标识有历史出发港口和历史目的地港口的历史航线数据,在进行航线预测时,可以先确定目标船舶的当前航行的出发港口,并确定与出发港口相同的历史出发港口,根据所述历史出发港口对应的历史航线数据预测所述目标船舶的航行轨迹。由于从一个港口出发的船舶,其目的地可能为几个固定的港口,因此,根据所述历史出发港口对应的历史航线数据预测所述目
标船舶的航行轨迹,可以从历史航线数据中寻找与目标船舶的当前航行情况最接近的航行轨迹,并由此进行轨迹预测,得到的轨迹预测结果更加准确。另外,当将上述轨迹预测方案应用至航运时,可以极大地提高海洋运输的安全性,避免船舶进入危险水域或发生碰壁等,并且,可以在进行预测时选择航线较短的航行轨迹,降低了海洋运输的油耗成本。此外,本实施例中,用于预测为真实存在航行过程的历史航线数据,因此,通过本实施例提供的方案得到的轨迹预测结果符合船舶行驶的大圆航线规律。
附图说明
10.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
11.图1a为根据本技术实施例一的一种航行轨迹预测方法的步骤流程图;
12.图1b为图1a所示实施例中的一种场景示例的示意图;
13.图2a为本技术实施例提供的一种航行轨迹预测方法的步骤流程图;
14.图2b为图2a所示实施例中的一种轨迹聚类方法的步骤流程图;
15.图3a为本技术实施例提供的一种航行轨迹预测方法的步骤流程图;
16.图3b为图3a所示实施例中的一种轨迹压缩方法的原理示意图;
17.图4为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
18.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
19.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
20.图1a示出了本实施例提供的一种航行轨迹预测方法的流程示意图,如图所示,其包括:
21.s101、获取港口位置数据以及历史船舶航线数据,其中,所述历史船舶航线数据中包括船舶的历史航行轨迹点。
22.本实施例中,港口位置数据可以为港口的经纬度数据。
23.历史船舶航线数据具体可以为历史ais数据。ais(automatic identification system,船舶自动识别系统)是一种船载广播应答系统,通过该系统,船舶能够在vhf公用无线信道上向附近船舶和岸上主管机构持续发送其身份、位置、航向、航速和其它数据。每次发送的数据可以对应一个历史船舶航线数据中的历史航行轨迹点。
24.当然,上述仅为举例说明,其他包括历史航行轨迹点的历史船舶航线数据也在本技术的保护范围内。
25.s102、根据所述港口位置数据,从所述历史船舶航线数据中确定出与所述港口位置相匹配的历史航行轨迹点。
26.本实施例中,可以根据港口位置数据,从历史船舶航线数据中确定出与港口位置的距离小于预设距离的历史航行轨迹点,并从中确定出与港口位置相匹配的历史航行轨迹点。
27.历史航线数据可能有多个,每个历史航线数据中可以包括船舶的一次航行对应的多个历史航行轨迹点。每个历史航线数据中至少存在两个与港口位置相匹配的历史航行轨迹点,即与历史航线数据的起点和终点。若船舶在航行时曾途经某个港口并停留,则该历史船舶航线数据中与港口位置相匹配的历史航行轨迹点的数量多于两个。
28.s103、将与所述港口位置相匹配的历史航行轨迹点作为端点,对所述历史船舶航线数据进行分割,获得标识有历史出发港口和历史目的地港口的历史航线数据。
29.本实施例中,历史船舶航线数据可能存在多个,则针对每个历史船舶航线数据,均可以将与所述港口位置相匹配的历史航行轨迹点作为端点进行分割,得到标识有历史出发港口和历史目的地港口的历史航线数据。
30.示例地,针对一历史船舶航线数据,其中包括与三个港口相匹配的历史航行轨迹点,分别对应历史船舶航线数据的起点、终点和中间停靠点,则可以将三个历史航行轨迹点作为端点对历史船舶航线数据进行分割,获得两个标识有历史出发港口和历史目的地港口的历史航线数据,第一个历史航线数据的历史出发港口为起点港口、历史目的地港口为中间停靠点,第一个历史航线数据的历史出发港口为中间停靠点、历史目的地港口为终点港口。
31.s104、确定与目标船舶的当前航行的出发港口相同的历史出发港口,并根据所述历史出发港口对应的历史航线数据预测所述目标船舶的航行轨迹。
32.一般情况下,在进行航线预测时,主要是在目标船舶的当前轨迹的基础上对船舶未来航行动态进行预测。航线预测的方法主要分为两类,一是根据船舶当前轨迹,通过航线拟合的方式预测未来航向;二是利用历史ais数据提取历史航线数据,根据历史航线数据进行目标船舶的轨迹预测。第一种方法只考虑目标船舶的当前轨迹,忽略了历史轨迹对未来航向的预测作用,容易出现预测精度下降或者不稳定的情况;第二种方法一般会根据提取出的历史航线数据,拟合获得海面上的交通路网,在进行轨迹预测时会根据交通路网获得点到点的最短路径,但这种方法的预测精度较低,且无法考虑海上礁石等情况,并且,预测出的为折线,不符合船舶航行的大圆航线规律。
33.而本实施例提供的方案,在进行航线预测时,可以先确定目标船舶的当前航行的出发港口,并确定与出发港口相同的历史出发港口,根据所述历史出发港口对应的历史航线数据预测所述目标船舶的航行轨迹。由于从一个港口出发的船舶,其目的地可能为几个固定的港口,因此,根据所述历史出发港口对应的历史航线数据预测所述目标船舶的航行轨迹,可以从历史航线数据中寻找与目标船舶的当前航行情况最接近的航行轨迹,并由此进行轨迹预测,得到的轨迹预测结果更加准确。另外,当将上述轨迹预测方案应用至航运时,可以极大地提高海洋运输的安全性,避免船舶进入危险水域或发生碰壁等,并且,可以在进行预测时选择航线较短的航行轨迹,降低了海洋运输的油耗成本。此外,本实施例中,用于预测为真实存在航行过程的历史航线数据,因此,通过本实施例提供的方案得到的轨迹预测结果符合船舶行驶的大圆航线规律。
34.示例地,参见图1b,示出了一种航行轨迹预测方法的场景示意图。图中的填充区域
为陆地、圆圈为目标船舶的当前位置。
35.如图1b所示,通过按照与港口相适配的历史航行轨迹点对历史船舶航线数据进行分割,可以获得多个标识有历史出发港口和历史目的地港口的历史航线数据,历史航线数据对应的航线可以如图1b中的粗实线所示。
36.针对目标船舶的航行轨迹进行预测时,可以根据目标船舶的出发港口为港口a,则可以根据标识的历史出发港口为港口a的部分历史航线数据,预测目标船舶的航行轨迹。从港口a出发的船舶的目的地较为固定,则结合目标船舶的当前位置,可以从多个目的地港口中确定出目标船舶可能前往的目的地,并据此进行航线轨迹的预测。
37.本技术实施例提供的方案可以由任意具有数据处理能力的电子设备指令,包括但不限于pc、手机、pda、服务器等。
38.图2a为本技术实施例提供的一种航行轨迹预测方法的流程示意图,如图所示,其包括:
39.s201、获取港口位置数据以及历史船舶航线数据,其中,所述历史船舶航线数据中包括船舶的历史航行轨迹点。
40.本步骤的具体实现方式可参考上述实施例,在此不再赘述。
41.s202、根据所述港口位置数据,从所述历史船舶航线数据中确定出与所述港口位置相匹配的多个候选历史航行轨迹点。
42.本实施例中,可以根据港口位置数据,将历史船舶航线数据中距离港口的距离处于预设距离范围内的历史航行轨迹点确定为候选历史航行轨迹点;此外,还可以设置航速筛选条件,例如选择距离港口的距离处于预设距离范围内、且航速小于0.5节的历史航行轨迹点为候选航行轨迹点。
43.与港口位置相匹配的历史航行轨迹点包括历史进港点和历史出港点。历史进港点是指船舶进入港口时对应的历史航行轨迹点;历史出港点是指船舶驶出港口时对应的历史航行轨迹点。
44.s203、基于多个候选历史航行轨迹点之间的时序关系,以及所述多个候选历史航行轨迹点对应的航速,从多个候选历史航行轨迹点中确定出历史进港点和历史出港点。
45.针对历史进港点,可以按照时序关系遍历所述多个候选历史航行轨迹点,若确定多个相邻的候选历史航行轨迹点对应的航速小于第一预设航速,则从多个相邻的候选历史航行轨迹点中确定出历史进港点。
46.可以按照时序关系从前向后遍历多个候选历史航行轨迹点,由于船舶一般会先进港再离港,因此,船舶的速度一般会先由大变小再由小变大。则按照时序关系对候选历史航行轨迹点进行遍历时,一般会先遍历到多个相邻且航速小于第一预设航速的候选历史航行轨迹点,此时可表示船舶的速度下降基本停止,即可从多个相邻的候选历史航行轨迹点确定出历史进港点。
47.具体地,可以按照时序关系进行遍历,直至遍历获得连续5个速度均小于0.3节的候选历史航行轨迹点,则可以选择其中的第一个候选历史航行轨迹点为历史进港点。当然,由于0.3节对应的航速较小,为了提高准确率,可以确定在多个相邻的5个候选历史航行轨迹点中,若存在3个历史航行轨迹点的航速小于0.3节,则将5个候选历史航行轨迹点中的一个确定为历史进港点。
48.针对历史出港点,按照时序关系遍历所述多个候选历史航行轨迹点,若确定多个相邻的候选历史航行轨迹点对应的航速小于第二预设航速,则按照时序关系将位于多个相邻的候选历史航行轨迹点之后且大于第三预设航速的点确定为历史出港点。
49.由于船舶的速度一般会先由大变小再由小变大,因此,按照时序关系对候选历史航行轨迹点进行遍历时若确定多个相邻的候选历史航行轨迹点对应的航速小于第二预设航速,则船舶可能还未驶出港口,此时可以继续遍历,直至确定大于第三预设航速的历史航行轨迹点,并将其确定为历史出港点。
50.示例地,可以按照时序关系进行遍历,若遍历获得连续5个速度均小于0.5节的候选历史航行轨迹点,则可以确定船舶仍未驶出港口,此时继续遍历,直至确定第一个大于0.5节的历史航行轨迹点,并将其作为历史出港点。
51.s204、以提取出的历史航行轨迹点为端点,将所述历史船舶航线数据进行分割,获得标识有历史出发港口和历史目的地港口的历史航线数据。
52.具体地,在确定有历史进港点和历史出港点后,可以按照时序关系,将上一港口的历史出港点和下一港口的历史进港点之间的历史航行轨迹点分割为一历史航线数据。
53.本实施例中,由于船舶停靠在港口时仍然会发送ai s数据,使得港口处存在的候选历史航行轨迹点的数量较多,且这些历史航行轨迹点不能用于进行轨迹预测。本实施例中,通过选择出历史进港点和历史出港点,可以在后续分割过程中直接将停留在港口时产生的历史航行轨迹点删除,极大地减小了历史航行轨迹点的数量,且可以保证剩余的历史航行轨迹点的可用性。
54.s205、按照预设筛选规则,对所述历史航线数据进行筛选,获得筛选后的历史航线数据。
55.可选地,所述预设筛选规则包括以下至少之一:
56.第一、删除历史航行轨迹点数量少于预设数量的历史航线数据。
57.本实施例中,若历史航行轨迹点的数量较少,则说明该航线较短,不具有参考意义,将其删除。具体地,若历史航线数据已被压缩,则可以将轨迹点数量少于100的历史航线数据删除。
58.第二、若历史航线数据中存在制动状态下的多个连续的历史航行轨迹点,且所述多个连续的历史航行轨迹点与所述历史航线数据的历史出发港口和\或历史目的地港口之间的距离大于预设距离,则删除历史航线数据。
59.本实施例中,若历史航线数据存在制动状态下的多个连续的历史航行轨迹点,则说明船舶在航行过程中呈静止,若静止的位置与所述历史航线数据的历史出发港口和\或历史目的地港口之间的距离大于预设距离,则说明该历史航线数据对应的航行过程中,船舶可能由于维修等原因在第三港停靠,则将该历史航线数据删除。
60.具体地,若历史航线数据已被压缩,则历史航线数据存在制动状态下的多个连续的历史航行轨迹点的数量大于10。另外,静止的位置与所述历史航线数据的历史出发港口和\或历史目的地港口之间的距离大于的预设距离可以为111.2km。
61.第三、若历史航线数据对应的预测航行时间和实际航行时间之间差异大于预设差异,则删除历史航线数据。
62.本实施例中,可以通过航行距离和航行平均速度计算获得预测航行时间t1。
63.由于船舶在海面上航行时一般为匀速航行,因此,若预测航行时间t1和实际航行时间t2之间的差异大于预设差异,则说明该历史航线数据的航行过程中,船舶出现过较大的速度变更情况,船舶可能由于特殊原因出现静止、超出预期的调整航线、在第三港停靠等情况,则将该历史航线数据删除。
64.另外,针对短途航行和长途航行,可以采用不同的预设差异。短途航行对应的预设差异可以小于长途航行对应的预设差异。具体地,若实际航行时间t2小于14天,则判断历史航线数据对应的为短途航行,其对应的预设差异为0.1,即|t1-t2|《0.1*t2;若实际航行时间大于等于14天,则判断历史航线数据对应的为长途航行,其对应的预设差异为0.5,即|t1-t2|《0.5*t2。
65.第四、若历史航线数据中存在距离大于预设距离的相邻历史航行轨迹点,则删除历史航线数据。
66.本实施例中,若历史航线数据中存在距离大于预设距离的相邻历史航行轨迹点,说明该历史航线数据中间缺失了过多的历史航行轨迹点,则删除该历史航线数据。
67.s206、对所述历史航线数据进行轨迹压缩,并对轨迹压缩后的所述历史航线数据进行轨迹聚类,获得标识有历史出发港口和历史目的地港口的聚类轨迹。
68.本步骤中,具体进行轨迹压缩的方法可参考相关技术,只要能够有效提取历史航线数据中的轨迹特征点即可,在此不再赘述。轨迹特征点为能够表征历史航线数据中航线变更的历史航行轨迹点。
69.本步骤中,进行轨迹聚类的方法可以参考相关技术,只要能够将多个历史航线数据按照轨迹进行聚类即可。
70.示例地,进行轨迹聚类的方法可以包括:
71.第一、将历史航线数据对应的航线整体,通过定义整体航线的轨迹相似度函数,计算两两历史航线数据之间的相似度,根据计算得到的相似度进行聚类。
72.第二、将历史航线数据进行分段,获得若干个轨迹片段,通过定义轨迹片段相似度计算函数,计算不同历史航线数据之间的轨迹片段的相似度,根据计算结果进行聚类。
73.进行聚类后,可以获得标识有历史出发港口和历史目的地港口的聚类轨迹。
74.可选地,本实施例中,在进行轨迹聚类前,所述方法还包括:对轨迹压缩后的历史航线数据中的历史航行轨迹点进行遍历,针对当前遍历的历史航行轨迹点,若历史航线数据中存在与当前遍历的历史航行轨迹点之间的距离小于预设距离、且间隔的历史航行轨迹点数量大于预设数量的另一历史航行轨迹点,则删除所述历史航线数据。
75.具体地,若历史航线数据中存在与当前遍历的历史航行轨迹点之间的距离小于预设距离、且间隔的历史航行轨迹点数量大于预设数量的另一历史航行轨迹点,则说明船舶可能在港口和另一目的地之间往返,则删除历史航线数据。
76.具体地,若历史航线数据中存在与当前遍历的历史航行轨迹点之间的距离小于预设距离2km、且间隔的历史航行轨迹点数量大于预设数量10的另一历史航行轨迹点,则删除历史航线数据。
77.可选地,本技术任意实施例中,参见图2b,示出了本技术的一种轨迹聚类方法的步骤流程图,如图所示,其包括:
78.s2061、将多个历史航线数据进行分组,获得多组历史航线数据,并对多组历史航
线数据分别进行聚类,获得多个具有聚类中心的航线聚类组。
79.具体地,一般进行聚类时,需要两两计算相似度,且需要多次迭代,计算量极大,尤其至针对历史航线数据,需要根据空间变化来计算相似度,计算难度较大。因此,若采用一般的聚类算法对历史航线数据进行聚类,所需的计算资源极大,计算复杂度可以达到o(tn2),其中,t为迭代次数,n为历史航线数据的数量。
80.为了减少聚类所需的计算资源,本实施例中,将多个历史航线数据进行分组,获得多组历史航线数据,并对多组历史航线数据分别进行聚类,获得多个具有聚类中心的航线聚类组。由此,可以针对多组进行并行聚类,所需的计算量较小。
81.示例地,若将历史航线数据分为10组,则计算量可以减小至o(10*t(n/10)2),即减小至原本的十分之一。若需要进一步减小计算资源,则可以增加分组数量。
82.具体进行聚类的方法可参考相关技术。
83.可选地,本实施例中,可以计算多组历史航线数据分别对应的第一相似度数据;根据所述第一相似度数据,对多组历史航线数据分别进行近邻传播聚类,获得多个具有聚类中心的航线聚类组。由此,可以通过近邻传播聚类(affinity propagation,ap)算法进行聚类,与其他聚类算法相比,近邻传播聚类算法可以不预先指定聚类数量,并可以自动从多个历史航线数据中确定出作为聚类中心的历史航线数据,便于后续计算。
84.示例地,若将历史航线数据x划分为多组,得到k个历史航线数据组ti,i=1,2
……
k,针对k个个历史航线数据组ti,可以分别计算每组对应的第一相似度矩阵si,并根据多个第一相似度矩阵si分别进行ap聚类,得到多个航线聚类组。
85.s2062、根据航线聚类组中作为聚类中心的历史航线数据,计算多个航线聚类组之间的相似度。
86.具体地,可以将多个航线聚类组对应的聚类中心组成聚类代表集和d,并计算聚类代表集合d对应的相似度矩阵sd作为多个航线聚类组之间的相似度。具体计算相似度的方法可参考相关技术,在此不再赘述。
87.s2063、根据所述多个航线聚类组之间的相似度,以及各所述航线聚类组内的历史航线数据的相似度,得到所述多个历史航线数据对应的相似度数据。
88.可选地,本实施例中,可以合并多组历史航线数据分别对应的第一相似度数据,得到所述历史航线数据对应的第二相似度数据;针对所述第二相似度数据中的空缺相似度,确定所述空缺相似度对应的两个历史航线数据;确定两个历史航线数据分别所属的航线聚类组,将确定出的航线聚类组之间的相似度,作为两个历史航线数据对应的相似度,补充至所述第二相似度数据中。
89.通过合并航线聚类组之间的相似度以及个第一相似度数据,无需进行计算即可直接得到多个历史航线数据对应的第二相似度,极大地减小了计算量。且第二相似度数据中存在大量相同的相似度,后续计算时可以直接省略多个计算结果,极大地减少了所需的计算资源。
90.另外,还可以使用多个第一相似度矩阵si替换相似度矩阵sd中主对角线上的相似度,并适应性变更行列数量,得到第二相似度矩阵。
91.s2064、根据所述多个历史航线数据对应的相似度数据对多个所述历史航线数据进行聚类,获得所述聚类轨迹。
92.具体地,根据所述第二相似度数据对所述多个历史航线数据进行近邻传播聚类,获得具有聚类中心的多个轨迹组,并确定各所述轨迹组中作为聚类中心的历史航线数据为聚类轨迹。
93.下面通过一种具体实现方式,对聚类算法进行说明。
94.聚类算法的输入包括:
95.k、分组数量;
96.x:历史航线数据的集合;
97.s:历史航线数据的相似度矩阵,s[i,k]标识历史航线数据i到k的相似度;
[0098]
p:偏向参数,反映各历史航线数据成为聚类中心的偏向程度取值;
[0099]
scale1:历史航线数据分组后的偏向参数缩放系数,一般为经验值;
[0100]
scale2:历史航线数据分组后在合并的偏向参数缩放系数,一般为经验值。
[0101]
聚类算法的处理过程包括:
[0102]
1)对历史航线数据的集合x进行划分,得到k个分组且,且满足即,任意两个分组之间不存在重复的历史航线数据。
[0103]
2)针对任意分组,根据相似度矩阵s以及偏向参数p,计算分组ti对应的相似度矩阵si以及偏向参数pi,并根据scale1对偏向参数pi进行缩放,获得缩放后的偏向系数pi',i=1,2
……
k。
[0104]
3)针对任意分组,根据s_i与pi'进行ap聚类,对所有分组聚类完成后获得所有分组对应的聚类代表集合d=∪ap(si,pi'),i=1,2
……
k,然后计算聚类代表集合d对应的相似度矩阵sd,即航线聚类组之间的相似度矩阵。
[0105]
4)合并各个分组ti对应的相似度矩阵si,i=1,2
……
k,以及聚类代表集合d对应的相似度矩阵sd,得到历史航线数据的集合x对应的相似度矩阵s
sparse

[0106]
5)根据scale2对偏向参数p进行缩放,得到缩放后的偏向参数p';
[0107]
6)根据相似度矩阵s
sparse
以及偏向参数p'进行ap聚类,得到聚类代表集合e=ap(s
sparse
,p

),针对历史航线数据的集合x中的任一历史航线数据xi,可以确定e中与xi对应的聚类编号,得到聚类结果。
[0108]
聚类算法的输入包括:
[0109]
idx:聚类结果,idx[j]表示历史航线数据xj∈x的聚类编号。
[0110]
s207、根据与目标船舶的当前航行的出发港口相同的历史出发港口对应的聚类轨迹,预测所述目标船舶的航行轨迹。
[0111]
具体预测航行轨迹的方法可参考相关技术,在此不再赘述。
[0112]
本实施例提供的方案,通过筛选以及聚类过程极大地减小了用于预测的目标船舶航行轨迹的历史航线数据的数量。
[0113]
图3a为本技术实施例提供的一种航行轨迹预测方法的流程示意图,如图所示,其包括:
[0114]
s301、轨迹异常点检测。
[0115]
轨迹异常点检测,用于将ais数据中异常的历史航线轨迹点删除。
[0116]
ais数据的数据量较大,且具有时序性,针对具有时序性的ais数据进行轨迹异常点检测时,需要检测次数尽量少、检测所消耗的计算资源较少。
[0117]
具体进行检测时,可以:1)基于邻近度进行轨迹异常点检测;2)可以基于概率分布密度进行轨迹异常点检测;3)基于聚类的轨迹异常点检测方法。
[0118]
1)基于邻近度进行轨迹异常点检测
[0119]
具体进行检测时,可以将ais数据中包括的历史航线轨迹点以二维或者三维散布图显示,并基于邻近度寻找与大部点分离的点,并将分离的点作为异常点删除。
[0120]
2)可以基于概率分布密度进行轨迹异常点检测
[0121]
具体进行检测时,可以拟合ais对应的概率密度函数p
qar
(x1=x1,x2=x2,

,xn=xn),其中xi是第i个历史航线轨迹点(i=1,2,

,n),结合概率密度函数可以计算期望e,进而根据ais数据中历史航行轨迹点的方差构造异常边界其中,为异常系数。
[0122]
根据构造的异常边界,即可检测得到轨迹异常点,并将其删除。
[0123]
3)基于聚类的轨迹异常点检测方法
[0124]
通过聚类算法对ais数据进行聚类,获得历史航线轨迹点组成的多个团簇,并确定团簇的中心坐标,进而根据团簇的中心坐标和团簇半径筛选出轨迹异常点,并将其删除。
[0125]
具体可以使用dbscan聚类算法进行聚类,与其他聚类算法相比,dbscan聚类算法无需预先划分聚类个数,聚类速度快且能够发现任意形状的空间聚类。
[0126]
具体地,采用dbscan聚类算法时具体的异常点检测方法包括:
[0127]
a)输入ais数据、半径参数ε、邻域密度阈值minpts,ais数据中包括多个历史航线轨迹点。
[0128]
b)基于半径参数ε、邻域密度阈值minpts对ais数据进行聚类,获得n个团簇,各簇中心为c1,c2……cn
,各簇的类间最大距离为d1,d2……dn

[0129]
c)对于ais数据中的任一历史航线轨迹点p,若d(ci,p)》di(i=1,2
……
n),则认为p为轨迹异常点,否则为轨迹正常点。其中d(ci,p)为历史航线轨迹点p和其对应团簇的中心ci之间的距离,di为其对应团簇的最大距离。
[0130]
s302、船舶航线数据提取。
[0131]
船舶航线数据提取,即根据港口位置数据确定,从所述历史船舶航线数据中确定出与所述港口位置相匹配的历史航行轨迹点,并与所述港口位置相匹配的历史航行轨迹点作为端点,对所述历史船舶航线数据进行分割的过程。具体实现方式可参考上述实施例,在此不再赘述。
[0132]
具体地,针对任一历史船舶航线数据,设船舶的ais数据序列为t={p1,p2……
pn},其中pi为历史船舶航线数据中的历史航行轨迹点。
[0133]
先初始化历史航线数据集合s;然后按照时序顺序遍历数据序列t中的历史航行轨迹点,直到寻找到历史离港点pj,并记录历史离港点pj。
[0134]
之后继续遍历,直至寻找到历史进港点pk。并新建轨迹序列s={pj,p
j+1
……
pk},并将新建的轨迹序列s增加至预先建立的历史航线数据集合s中。
[0135]
之后以p
k+1
为新起点继续开始遍历,直至遍历所有历史航行轨迹点。遍历完成后,可以从预先建立的历史航线数据集合s中获得分割后的历史航线数据。
[0136]
具体判断历史进港点和历史离港点的方法可参考上述方法,在此不再赘述。
[0137]
s303、轨迹压缩。
[0138]
轨迹压缩,即从历史航线数据包括的多个历史航行轨迹点中,提取出能够表征历史航线数据中航线变更的轨迹特征点,从而减小历史航线数据中包括的轨迹点的数量。
[0139]
具体地,可以采用d-p算法(douglas-peucker算法)进行轨迹压缩,当然,其他轨迹的方法也在本技术的保护范围内。
[0140]
示例地,参见图3b,示出了一种轨迹压缩的原理示意图。
[0141]
如图3b所示,可以在两个端点之间连接一条直线段(图中所示虚线),并计算两点之间的其余各轨迹点与直线段之间的距离,选择距离最大的点与距离阈值(距离阈值为图中圆形的直径)进行比较,若该点与直线段之间的距离大于距离阈值,则确定该点为分裂点an-p,若该点与直线段之间的距离小于或等于距离阈值,则删除连接直线段的两点之间的各点。
[0142]
之后可以在两两相邻的保留的点之间连接直线段,并重复执行上述步骤,获得多个分裂点an-p-q,直至无法获得新的分裂点后结束,最终保留的为图中虚线连接的多个点。
[0143]
通过上述方式,可以极大地减少历史航线数据中包括的历史航行轨迹点的数量,进而减少后续计算过程的计算量。
[0144]
s304、轨迹过滤。
[0145]
轨迹过滤即按照预设筛选规则对轨迹进行筛选。
[0146]
用于进行过滤的预设筛选规则包括以下至少之一:
[0147]
第一、删除历史航行轨迹点数量少于预设数量的历史航线数据。
[0148]
第二、若历史航线数据中存在制动状态下的多个连续的历史航行轨迹点,且所述多个连续的历史航行轨迹点与所述历史航线数据的历史出发港口和\或历史目的地港口之间的距离大于预设距离,则删除历史航线数据。
[0149]
第三、若历史航线数据对应的预测航行时间和实际航行时间之间差异大于预设差异,则删除历史航线数据。
[0150]
第四、若历史航线数据中存在距离大于预设距离的相邻历史航行轨迹点,则删除历史航线数据。
[0151]
第五、对轨迹压缩后的历史航线数据中的历史航行轨迹点进行遍历,针对当前遍历的历史航行轨迹点,若历史航线数据中存在与当前遍历的历史航行轨迹点之间的距离小于预设距离、且间隔的历史航行轨迹点数量大于预设数量的另一历史航行轨迹点,则删除所述历史航线数据。
[0152]
具体进行筛选的方法可参考上述实施例,在此不再赘述。
[0153]
s305、轨迹表示。
[0154]
具体地,在进行轨迹压缩后,可以连接压缩后的轨迹点,获得轨迹曲线,并且可以地图网格化,通过轨迹曲线经过的网格的位置或编号来标识轨迹曲线。
[0155]
那具体进行标识的方法可参考相关技术,在此不再赘述。
[0156]
s306、轨迹聚类。
[0157]
轨迹聚类,即将多个历史航线数据进行轨迹聚类,从而将大量的历史航线数据抽象为几条轨迹进行表示。
[0158]
具体进行聚类时,一般均会计算两条轨迹之间相似度。本实施例中,计算相似度的
方法可以为:
[0159]
针对t1、t2两条不同的轨迹,通过网格进行表示后可以分别记为a、b,则相似度计算公式可以为:s=|a∩b|/min(a,b),其中,|a∩b|表示a、b中相同的网格个数,min(a,b)表示a、b长度最小值。
[0160]
本实施例中,具体可以采用ap(affinity propagation)聚类算法对历史航线数据进行轨迹聚类。
[0161]
ap聚类算法的基本思想是将全部样本(历史航线数据)看作网络的节点,然后通过网络中各条边的消息传递计算出各样本的聚类中心。聚类过程中,共有两种消息在各节点间传递,分别是吸引度(responsibility)和归属度(availability)。ap算法通过迭代过程不断更新每一个点的吸引度和归属度值,直到产生m个高质量的exemplar(类似于质心),同时将其余的数据点分配到相应的聚类中。
[0162][0163][0164]
其中,r(i,k)为历史航线数据r对历史航线数据k的吸引度;a(i,k)为历史航线数据i对历史航线数据k的归属度;s(i,k)为历史航线数据i与历史航线数据k的相似度。
[0165]
基于上述方法,可计算得到作为聚类中心的历史航线数据,则可以将确定出的历史航线数据作为聚类轨迹。
[0166]
当然,上述仅对聚类算法进行举例说明,其他聚类方法也在本技术的保护范围内。
[0167]
s307、轨迹预测。
[0168]
轨迹预测,即根据与目标船舶的当前航行的出发港口相同的历史出发港口对应的聚类轨迹,预测所述目标船舶的航行轨迹。
[0169]
在一种可行方式中,可以使用历史航线数据利用隐马尔科夫模型进行参数训练,通过将历史航线数据和视为隐马尔科夫过程的显观测值,通过设定隐马尔科夫模型的隐状态数目和参数更新时段,依据最近的一个位置观测值(如当前航行的出发港口)并采用b-w算法滚动获取最新隐马尔科夫模型参数;进而,针对目标船舶在航行过程中的每一采集航行轨迹数据的采样时刻,依据隐马尔科夫模型参数,采用viterbi算法获取当前时刻观测值(如当前航行位置)所对应的隐状态;在每一采样时刻,通过设定预测时域w,基于船舶当前时刻的隐状态,获取未来时段船舶的位置预测值,从而在每一采样时刻滚动推测出未来时段内船舶的航行轨迹。
[0170]
参照图4,示出了根据本技术实施例四的一种电子设备的结构示意图,本技术具体实施例并不对电子设备的具体实现做限定。
[0171]
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
[0172]
其中:
[0173]
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
[0174]
通信接口404,用于与其它电子设备或服务器进行通信。
[0175]
处理器402,用于执行程序410,具体可以执行上述航行轨迹预测方法实施例中的相关步骤。
[0176]
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
[0177]
处理器402可能是处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0178]
存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0179]
程序410具体可以用于使得处理器402执行上述方法实施例中的操作,程序410中各步骤的具体实现可以参见上述航行轨迹预测方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0180]
本技术实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一航行轨迹预测方法对应的操作。
[0181]
需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
[0182]
上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的航行轨迹预测方法。此外,当通用计算机访问用于实现在此示出的航行轨迹预测方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的航行轨迹预测方法的专用计算机。
[0183]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0184]
以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1