刘敬一, 高晓倩, 郭 琦, 姚 晨, 裴新宇, 陈金勇
(中国电子科技集团公司第五十四研究所, 河北 石家庄 050081)
随着船舶自动识别系统(Automatic Identification System,AIS)的不断发展,船舶航迹数据呈现爆炸式增长[1-3],这为船舶行为模式特征以及交通航行规律的挖掘与分析提供了丰富的数据支撑[4]。船舶原始航迹数据的可靠性和可用性是进行上述分析挖掘的前提,因此船舶AIS 异常定位数据筛选、剔除等预处理对船舶行为预测、异常监测和航路规划等诸多具体应用具有重要意义[5]。
航迹纠缠作为AIS 数据的常见异常之一,是进行航迹预处理的难点[6]。 船舶航迹纠缠是指AIS 数据中的船位相连之后得到的船舶航迹在时间排序上存在错位,致使产生纠缠点[7]。 基于AIS 数据的船舶航迹纠缠产生的原因概括为2 种:一是船舶定位误差较大,导致AIS 数据中的船位偏离真实船位;二是AIS 数据在传输或者解析过程中出现了错误,导致船位时序属性出现较大误差。
现有船舶航迹纠缠去除方法可以划分为3 大类:① 基于航迹抽稀的航迹去纠缠;② 基于阈值筛选的航迹去纠缠;③ 基于神经网络的航迹去纠缠。
基于航迹抽稀的航迹纠缠去除方法是利用下采样或航迹压缩的方式,通过减少航迹点数量实现纠缠点的去除。 艾佳琪[8]、盛畔[9]、张树凯等[10]、Zhang 等[11]以及Sang 等[12]学者们均采用此类方式消除AIS 异常定位点。 上述方法实用性强、复杂度较低,但都无法避免在处理过程中会去除一些非纠缠点,致使存在丢失船舶重要运动特征信息的风险,同时采样间隔设定一般无法达到全局最优,使得无法有效对纠缠进行完全去除。
基于阈值筛选的航迹纠缠去除方法是通过设定不同异常阈值去除纠缠点以及其他噪声点。 吴建华等[13]、刘磊等[14]、卫桂荣等[15]以及聂阳等[16]学者们根据AIS 数据特性制定了多种数据清洗规则,实现航迹异常点的筛选与去除。 此类方法较为方便、易操作,但只能去除一些明显的异常定位点[6],且阈值的设定不具备普适性和自适应性,去纠缠的漏警率和虚警率都很难同时取得较好的效果。
基于神经网络的航迹纠缠去除方法是利用神经网络,以航迹纠缠样本训练网络,自动识别纠缠并进行剔除。 王永明[6]提出了基于BP 神经网络的异常AIS 数据甄别方法,较前2 种方法具有较高的去纠缠准确性,但需要较为完备以及丰富的训练样本集,较为复杂且具有参数和训练样本依赖,在实际业务中实用性不强。
综上分析,上述方法在一定程度上可以解决航迹纠缠的问题,但无法兼顾船舶轨迹去纠缠的有效性与业务实用性。 基于此,本文通过分析AIS 定位数据特性,在考虑运动约束、时空跨度以及定位误差的情况下,提出基于运动属性约束的船舶AIS 航迹去纠缠方法(A Method for Removing Entanglement of AIS Trajectory Based on the Constraints of Motion Attributes,CoMA),在保障损失最少航迹点的前提下,高效、简便去除船舶轨迹纠缠,实现兼顾保留船舶运动行为特征以及业务实用性的船舶轨迹处理,弥补现有方法在船舶轨迹去纠缠中存在的系列问题。
按照AIS 原始定位数据进行时序的连接后,由于数据上报机制以及其他原因,原始航迹会出现较为明显的离群点、错误点等噪声,同时也会产生航迹纠缠的问题。 图1 所示为原始AIS 航迹Tra-A,其在靠近港口的多个位置(图中I,II,III 处)均出现了航迹纠缠现象。
图1 船舶航迹纠缠示意Fig.1 Schematic diagram of ship trajectory entanglement
以II 处的航迹纠缠为例,从图1 中可以看出,该处航迹在P2,P3 和P4 处发生了纠缠,即正常航行情况下移动目标的航迹点顺序应为P1 →P3 →P4→P2→P5,但原始航迹数据中航迹点的顺序为P1→P2→P3→P4→P5,在P2 和P3,P4 之间出现了异常。 表1 给出了II 处部分连续航迹点记录(包含时 间、 航 向、 航 速(SOG)、 经 度(LON) 和 纬 度(LAT))。 从表1 中可以看出,该目标在第2 组数据中的航向稳定在138°左右,正常情况下AIS 数据中的LON 将逐渐减小,LAT 将逐渐增加。 然而,对比表1中的经纬度发现,航迹点(118°6. 335′E,24°23.883′N)出现了LON 增加而LAT 减小的现象,这也是航迹纠缠的典型运动属性变化特点。
表1 Tra-A 航迹纠缠部分航迹点记录表(部分)Tab.1 Record of partial trajectory entanglement points in Tra-A (part)
为有效解决上述航迹纠缠问题,本文提出CoMA 方法,其主要包含3 个核心步骤:① 原始AIS数据预处理。 基于原始的已解码AIS 定位数据,按照时间前后顺序提取原始船舶航迹,并采用时间间隔与航速约为0 对航迹分割点进行确定,得到原始船舶航迹数据集。 ② 基于航速约束的纠缠点去除。以原始船舶航迹集中每一条航迹为处理对象,以实时航行速度确定的最大航行距离为约束,对纠缠点进行筛查识别,去除由于定位偏差造成的航迹纠缠点。 ③ 基于航向约束的纠缠点去除。 将经过上述处理的航迹点进一步在航行转向上进行约束,去除由于AIS 设备时序解译误差造成的航迹纠缠点。 通过上述步骤的处理,实现对船舶航迹的彻底去纠缠。具体流程如图2 所示。
图2 CoMA 算法流程Fig.2 The algorithm flowchart of CoMA
1.2.1 数据预处理
原始的已解码AIS 定位数据包含静态数据、动态数据以及航程信息数据。 静态数据主要记录船舶的特定属性信息,如船名、呼号、标识码、船舶长度、船舶宽度和船舶类型等;动态数据主要记录船舶在航行中的实时更新信息,如船舶经纬度、实时时间、航向、航速、船舶类型和船首向等;航程信息数据主要记录存在固定航线的行程信息,如吃水、目的地、船舶状态和到港时间等。 船舶航迹的生成一般会采用动态数据进行时序的连接,并同时记录船舶的实时更新信息,本文基于航速、航行状态和航迹点位间隔时间进行航行轨迹的自动识别与提取,具体步骤为:
① 将原始AIS 记录文件按照船舶唯一标识(MMSI)进行规整,查询当前船舶所有航迹数据并按照时间序列进行排序;
② 按照MMSI 进行航迹点遍历,直到找到航迹点Ti,其与上一航迹点Ti-1的时间间隔大于阈值θ1,且其行驶速度为0 或接近于0,标识Ti为航迹切分点;
③ 重复上述步骤,直到具有当前标识码MMSI的航迹时间序列结束,找到若干切分点,按照时间先后将上述分割点重新标记为航迹的起点和终点,识别并提取原始航迹;
④ 重复上述步骤,直到全部MMSI 被遍历,生成原始船舶航迹数据集。
上述步骤中涉及2 个阈值,其中时间间隔阈值θ1为自适应确定,2 倍标准差是判断异常值的常用方法之一[17-18],切分点处的时间间隔相对于常规轨迹点的时间采样间隔一般较大,即存在异常,因此可根据当前船舶全部航迹点采样间隔的2 倍标准差进行时间间隔阈值的确定,如式(1)所示:
式中,θ1为当前未被访问MMSI 船舶航迹识别提取时间间隔阈值,共存在n个定位采样间隔;Tm为其中任意一个采样时间间隔值;Tave为全部航迹点采样间隔平均值。
行驶速度“接近于0”可根据船舶航行规范中对船舶停泊入港以及锚泊等情况下船舶的航行速度的限制来进行判定,即当航速小于1 n mile/h 则认定为其为“接近于0”的状态。 由上述给出的步骤可知,原始AIS 数据中的“航行状态”并未加入约束中,这是由于AIS 原始数据此列属性存在较多空缺值以及错误标记的情况,此属性可作为以上2 种判断条件的补充进行分割点识别的验证,如航迹分割点一般应对应“锚泊”和“停泊”等状态属性。
1.2.2 基于航速约束的纠缠点去除
通过上述步骤获取了原始船舶航迹,每个航迹点均记录了当前时刻、经纬度、航速和航向等信息,在此基础上首先通过航速和时间间隔的约束对航迹纠缠点进行识别与去除。 设原始船舶航迹为Trai={p1,p2,…,pi,…,pn},在纠缠去除步骤中,默认每条目标船舶航迹第一个点p1和最后一个点pn为正常航迹点,pi为原始船舶航迹Trai的某未被访问的航迹点,loni为其瞬时位置经度,lati为其瞬时位置纬度,vi为其瞬时航速,hi为其瞬时航向,ti为其所处时刻。 基于航速约束的纠缠点去除步骤如下:
① 从i= 1 开始(即第一个未被访问的航迹点),按照pi和pi+1中实时记录瞬时航速的最大值Vmax(vi,vi+1)以及航迹点间的时间间隔Δt,计算最大航行距离dmax=Vmax×Δt;
② 按照两航迹点pi和pi+1的经纬度计算实际真实航行距离;
③ 计算最大航行距离dmax与实际真实航行距离dreal的比值,记为,判断δ与预设阈值θ2的大小;
④ 若δ≤θ2,判断当前第i+1 个航迹点是否为最后一个航迹点,若是则完成当前航迹的去纠缠处理,若不是则直接进行基于航向约束的纠缠点去除处理;
⑤ 若δ>θ2,则认为第i+1 个航迹点为航迹纠缠点,将其剔除,并判断当前第i+1 个航迹点是否为最后一个航迹点,若是则完成当前航迹的去纠缠处理,若不是则将第i+2 个航迹点替代为第i+1 个航迹点,重复上述步骤;
⑥ 重复步骤①~⑤,初步得到基于航速约束纠缠点去除处理后的航迹。
上述步骤中涉及1 个预设阈值θ2,即用于衡量实际航行距离的合理与否。 经过大量的实验验证以及航运专家知识,规定在一般航运条件下预设阈值θ2取值为0.2 较为合理。
1.2.3 基于航向约束的纠缠点去除
在基于航速约束的纠缠点去除后,能够同时剔除传统航迹预处理工作中存在的较明显的空间离群点,并解决了由于定位偏差造成的小范围内密集航迹点区域的纠缠情况。 但由于时序误差造成的航迹纠缠点无法只基于航速约束进行剔除,尤其是在保持较高航速的状态下,因此还需要再基于航向约束对纠缠点进行进一步的识别与剔除。 以通过上述步骤处理后的航迹点pi及后续航迹点为输入,基于航向约束的纠缠点去除步骤如下:
① 基于pi及pi+1的瞬时位置经纬度,按照如下公式计算船舶实际航向Hi,i+1;
② 计算pi及pi+1的瞬时航向hi和hi+1的差值;
③ 当Δh>180 时,判断船舶实际航向Hi,i+1是否不小于pi及pi+1的瞬时航向中较大值,或者不大于pi及pi+1的瞬时航向中较小值,即Hi,i+1≥max(hi,hi+1)或Hi,i+1≤min(hi,hi+1)是否成立;
④ 当Δh≤180 时,判断船舶实际航向Hi,i+1是否在pi及pi+1的瞬时航向范围之内,即min(hi,hi+1)≤Hi,i+1≤max(hi,hi+1)是否成立;
⑤ 若上述航向约束成立,判断当前第i+1 个航迹点是否为最后一个航迹点,若是则完成航迹的全部去纠缠处理,若不是则继续从第i+1 个航迹点开始重复上述操作;
⑥ 若上述航向约束不成立,则认为第i+1 个航迹点为航迹纠缠点,将其剔除,并判断当前第i+1 个航迹点是否为最后一个航迹点,若是则完成航迹的全部去纠缠处理,若不是则将第i+2 个航迹点替代为第i+1 个航迹点,重复上述步骤;
⑦ 重复步骤①~⑥,直到全部航迹点被访问,完成当前原始航迹Trai的去纠缠处理。
全部原始航迹按照前述步骤进行处理后,最终得到去纠缠后的航迹数据集合,可为后续船舶运动行为及模式深入分析提供准确的数据基础。
为了验证CoMA 方法在航迹去纠缠方面的有效性和优势性,基于真实的南海区域船舶AIS 定位数据以及模拟航迹数据,从定性和定量2 个方面验证CoMA 方法的有效性;并采用传统的航迹抽稀、航迹压缩方法以及扩展卡尔曼滤波方法与CoMA 方法进行对比,验证CoMA 方法的优势性。
实验数据首先选取我国东南沿海区域(107°E~123°E,5°N~26°N)中多类型船舶的历史AIS 数据,来源于中国 AIS 岸基网络的存档报文记录,时间范围是2017 年12 月—2020 年12 月,由于船舶航迹纠缠一般发生在靠近大陆以及港口区域,因此将在上述区域通过数据预处理步骤后,随机筛选50 条原始船舶航迹作为实例数据放入实验数据集合中。 同时,为了更精准地验证CoMA 方法的去纠缠能力,本文通过空间和时间属性上进行加噪处理模拟生成100 条存在纠缠点的原始船舶航迹作为模拟数据放入实验数据集合中。
为了测试不同采样间隔以及航迹长度等因素对CoMA 方法在航迹去纠缠方面的处理效果影响,按照不同处理方式,将前述包含150 条原始航迹的实验数据集合划分为2 类共计6 组测试数据集,如表2和表3 所示。 表2 给出3 组在相同原始航迹长度条件的不同时间采样间隔的数据集,用于测试CoMA方法在不同采样间隔影响下的航迹去纠缠处理效果;表3 给出3 组在相同时间采样间隔条件下的不同航迹长度的数据集,用于测试CoMA 方法在航迹长度影响下的航迹去纠缠效果。
表2 不同时间采样间隔实验航迹数据分组情况Tab.2 Test trajectory data grouping under different time sampling intervals
表3 不同空间长度实验航迹数据分组情况Tab.3 Test trajectory data grouping under different spatial scales
首先采用定性方法对CoMA 方法进行验证,选取图1 所示具有多处纠缠的实际船舶航迹Tra-A 进行去纠缠处理(其也是实例数据中的一条原始航迹),处理结果如图3 所示。 由图中处理结果可以看出,在区域II 中,P2 被识别为纠缠点并剔除,并按照原始P1→P3→P4→P5 的时序对原始航迹进行记录,实现了航迹的去纠缠。 同样,在区域I 和区域III处的纠缠也得到了较好的处理。 由此可得,CoMA方法可在保证航行整体趋势不变以及运动特征结构最大程度保留的情况下,通过船速、航向等运动属性的双重约束剔除最少的纠缠点完成航迹的去纠缠处理,由此证明CoMA 方法的有效性。
图3 Tra-A 去纠缠处理结果Fig.3 Processing result of removing entanglement for Tra-A
其次,基于实验数据集合对CoMA 方法进行定量化验证,采用航迹点损失率/纠缠去除虚警率(FAR)、纠缠去除准确率(TP)、纠缠去除漏警率(FNR)等作为评价指标进行验证分析,各评价指标的计算如式(3) ~式(5)所示。 上述指标均针对某一航迹进行评价,因此6 组实验数据集合采用每组的平均值进行验证,得出在不同条件下CoMA 方法的处理效果对比结果。
式中,FAR表示航迹点损失率/纠缠去除虚警率;TP表示纠缠去除准确率;FNP表示纠缠去除漏警率;E′表示测试样本实际为纠缠点,且测试结果也是纠缠点的航迹点数量;E″表示测试样本实际为非纠缠点,且测试结果是纠缠点的航迹点数量;Ew表示测试样本中的全部实际纠缠点;P′表示测试样本实际为非纠缠点,且测试结果也是非纠缠点的航迹点数量;P表示测试样本全部航迹点数量。
基于上述评价指标,CoMA 方法在6 组实验数据集上的验证结果如表4 所示。 由验证结果可知,各组平均纠缠去除准确率均超过95%,同时具有较小的航迹点损失率和漏警率,不仅证明了CoMA 方法的有效性和准确性,同时也表明CoMA 方法不受时间采样间隔大小以及航迹长度的影响,在不同条件下均具有较好的鲁棒性。
表4 CoMA 方法定量评价结果Tab.4 Quantitative evaluation results of the CoMA单位:%
为了进一步验证CoMA 方法的优势性,分别采用传统的航迹抽稀(Thinning Algorithm,TA)、航迹压缩方法(MDL)[19]以及扩展卡尔曼滤波方法(EKF)[20]与其进行对比。 首先选取图1 所示具有多处纠缠的实际船舶航迹Tra-A 进行定性对比,上述3 种方法的处理结果如图4 所示(只详细展示了Tra-A 区域III 的处理结果进行去纠缠效果的直观对比),由图4 和图3 的处理结果对比可知,本文提出的CoMA 方法在去纠缠效果上明显好于3 种传统方法。
图4 Tra-A 区域III 传统方法去纠缠处理结果Fig.4 Processing result of removing entanglement for Tra-A region III from traditional methods
再次选取在前述定量化验证实验过程中CoMA方法表现相对较差的实验组进行定量化对比实验,即在不同时间采样间隔实验航迹数据组中选取L2,在不同空间长度实验航迹数据组中选择L5,各方法的定量化评价指标结果如表5 所示。
表5 不同条件下多方法处理效果对比Tab.5 Comparison of processing effects of multiple methods under different conditions单位:%
由表5 可得,在不同条件下CoMA 方法的去纠缠处理效果均好于其他3 种方法。 TA 和MDL 的去纠缠原理是减少航迹采样密度达到去除异常点的目的,然而这会造成在去除纠缠点的同时将其他非纠缠点去除,从表中可以看出,上述2 种方法的FAR值均较高,利用这2 种方法进行航迹的处理会丢失部分关键船舶运动特征信息,不利于后续的深入分析;EKF 方法相较于前2 种传统处理方法而言,在去纠缠准确率上表现更好,但由于其在处理过程中会存在计算成本过高的问题,同时由于其基本原理是对线性过程的近似与逼近,致使其在FNR 上表现较差。 通过上述对比实验,表明CoMA 方法相较于传统处理方法而言,具有更全面的去纠缠能力,能够在纠缠点彻底、精准、高效去除前提下,减少对非纠缠点的损失,从而最大程度地保留船舶运动行为特征,可为后续船舶运行等深入分析提供准确输入。
本文面向AIS 船舶原始航迹存在的纠缠问题,基于船舶运动特征以及时空统计的基本思想,提出基于运动属性约束的船舶AIS 航迹去纠缠方法,以实时航行速度和时间间隔约束船舶空间位置合理范围,以实时航向约束船舶转向的合理区间,双重约束下对航迹纠缠点进行去除。 通过实验验证以及与经典航迹预处理方法的对比得出,本文所提出的基于运动属性约束的船舶AIS 航迹去纠缠方法不受航迹长度以及采样间隔的影响,能够更好地实现在不损失船舶运动行为特征的前提下的航迹去纠缠。
虽然本文提出的航迹去纠缠方法能够保证较为高效和准确的航迹处理,但在处理过程中仍涉及人为设定阈值的问题,在后续工作中可在现有方法基础上发展参数自适应的航迹去纠缠策略,进一步提升原始AIS 航迹处理的有效性和实用性,更好地支撑海上航运智能分析等服务。