随着海上贸易运输的繁荣,海上船只数量逐年增多,交通环境变得越来越复杂,为了保护海洋生态环境与人类的生命财产安全,海上交通安全监管已经成为人们关注的热点问题。本文以船舶航迹分析与规划为研究对象。有效的航迹分析与规划首先能够为船舶驾驶员提供安全可靠的航迹数据,在发生紧急状况时,作出准确的操作行为;其次,航迹分析与规划能够提高海上交通管理的效率,提升船舶航行质量,减少对海洋环境的污染。
本文主要研究船舶航迹点生成算法。为了使训练样本充分,本文借助云平台的存储与计算能力,构建云平台规模的训练样本数据。然后给出一种基于正态云的航迹点生成算法,正态云属于云模型的一种,是定性问题到定量表示的有效解决方法。
1 构建训练样本目前,海上交通运输监管中主要使用的系统有VTS(vessel traffic system)、AIS(Automatic Identification System)及雷达系统[1]。然而随着海上贸易的繁荣,船舶数量的剧增,使得需要处理的信息量越来越大。为了有效应对和使用海量数据,本文借助云平台的存储与处理能力,将AIS与雷达系统多捕获的信息进行融合,以构建训练航迹生成的样本。
AIS能够提供船舶位置、航速、航向等动态信息,以及船舶类型、船名、呼号等船舶静态信息。雷达系统则能够获取覆盖范围内的所有目标情况与干扰情况。本文结合AIS与雷达系统各自的优点,将两者捕获的信息利用云平台进行融合与存储。
云平台负责实现信息的融合算法、航迹生成算法以及相关信息的存储。本文中的云平台使用微软成熟软件和产品构建出符合需求的高性能计算群集(HPC)和微软桌面虚拟化(VDI)解决方案。HPC集群如图 1所示。
样本集合构建方法如图 1所示。
图中,航迹滤波采用卡尔曼滤波,航迹相关则使用分布式多传感器的统计关联算法,融合滤波使用联合卡尔曼滤波器。通过融合得到航迹路径,覆盖范围广、空间分辨力高,并且空间维度增多,可靠性增加。得到航迹路径后,再进行采样得到样本数据集合。由此可见,使用融合后的航迹作为样本数据能够减少样本的模糊性,提高有效性。
由于本文所利用的原始信息来自于AIS与雷达系统,AIS与雷达的接收传感器所观测到的船舶运动状态近似于线性状态,因此,本文使用卡尔曼滤波[2]对船舶航迹进行处理。卡尔曼滤波过程如图 3所示。
设XK表示K时刻系统的状态矢量,NK表示K时刻系统的干扰噪声,那么系统的状态方程为:
$ {X_K} = \phi (K,K - 1){X_{K - 1}} + {N_{K - 1}}。 $ | (1) |
设ZK表示K时刻传感器的观测矢量,H表示系数矩阵,
$ \begin{array}{l} {Z_K} = {H_K}{X_K} + {V_K},\\ {\mathop Z\limits^\sim _{K + 1}} = {Z_K} - {H_{K + 1}}{\mathop X\limits^ \wedge _{K + 1/K}}。 \end{array} $ | (2) |
设
$ \begin{array}{l} {\mathit{\boldsymbol{P}}_{K + 1/K}} = {\phi _K}{P_K}\phi _K' + {Q_K},\\[4pt] {\mathop X\limits^ \wedge _{K + 1/K}} = {\phi _K}{\mathop X\limits^ \wedge _K},\\[8pt] {\mathit{\boldsymbol{K}}_{(K + 1)opt}} \!\!=\!\! {P_{K \!+\! 1/K}}H_{K \!+\! 1}'{[{H_{K \!+\! 1}}{P_{K \!+\! 1/K}}H_{K \!+\! 1}' \!+\! {R_{K \!+\! 1}}]^{ - 1}},\\[8pt] {P_{K + 1}} = [I - {K_{K + 1}}{H_{K + 1}}][{\phi _K}{P_K}\phi _K' + {Q_K}] \times \\[8pt] \quad \quad \quad {[I - {K_{K + 1}}{H_{K + 1}}]'} + {K_{K + 1}}{R_{K + 1}}{K'} = \\[8pt] \begin{array}{*{20}{c}} \end{array}[I - {K_{K + 1}}{H_{K + 1}}]{P_{K + 1/K}}{[I - {K_{K + 1}}{H_{K + 1}}]'} + \\[8pt] \quad \quad \quad {K_{K + 1}}{R_{K + 1}}{K'},\\[10pt] {\mathop X\limits^ \wedge _{K + 1}} = {\mathop X\limits^ \wedge _{K + 1/K}} + {K_{K + 1}}{\mathop Z\limits^\sim _{K + 1}} = \\[10pt] \begin{array}{*{20}{c}} \end{array}{\mathop X\limits^ \wedge _{K + 1/K}} + {K_{K + 1}}[{Z_{K + 1}} - {H_{K + 1}}{\mathop X\limits^ \wedge _{K + 1/K}}]。 \end{array} $ | (3) |
式中:
使用正态云算法模拟船舶航迹点的生成过程。正态云是云模型[3]中的重要算法,云模型非常适合于解决不确定中又带有确定性,稳定中又带有变化的问题。因此,本文利用云模型对船舶航迹点生成进行分析。云模型中主要由期望Ex,熵En和超熵He来表示它的数学特性,其中,期望Ex云滴在论域中的空间分布期望;熵En用于不确定程度的度量,En越大,概念越大。超熵He表示熵的熵,由熵的随机性和模糊性共同决定。
正态云生成算法(伪代码描述)如下:
Input:{Ex,En,He},n //输入
Ouput:{(x1,u1),…,(xn,un)} //输出
For:i=1 ton //求得期望为En,
//He方差为正态随机数
En’=Randn(En,He)
xi=Randn(Ex,En’)
Drop(xi,u)//生成云滴。
其中,输入量为第一节中求得的训练样本集合
1)期望
$ \begin{array}{l} E\mathop {{x_i}}\limits^\wedge = \overline {{\varphi _{S{T_i}}}} = \frac{1}{{D/S}}\sum\limits_{i = 1}^{D/S} {{\varphi _{{S_i}{T_i}}}} ,\\[10pt] E\mathop {{y_i}}\limits^\wedge = \overline {{\lambda _{S{T_i}}}} = \frac{1}{{D/S}}\sum\limits_{i = 1}^{D/S} {{\lambda _{{S_i}{T_i}}}} ; \end{array} $ | (4) |
2)熵
$ \begin{array}{l} En\mathop {{x_i}}\limits^\wedge = \sqrt {\pi /2} \frac{1}{{D/S}}\sum\limits_{i = 1}^{D/S} {\left| {{\varphi _{{S_i}{T_i}}} - \overline {{\varphi _{S{T_i}}}} } \right|} ,\\[10pt] En\mathop {{y_i}}\limits^\wedge = \sqrt {\pi /2} \frac{1}{{D/S}}\sum\limits_{i = 1}^{D/S} {\left\| {{\lambda _{{S_i}{T_i}}} - \overline {{\lambda _{S{T_i}}}} } \right\|} ; \end{array} $ | (5) |
3)超熵
$ \begin{array}{l} He\mathop {{x_i}}\limits^\wedge = \sqrt {{{(S\mathop x\limits^\wedge )}^2} - {{(En\mathop x\limits^\wedge )}^2}} ,\\ He\mathop {{y_i}}\limits^\wedge = \sqrt {{{(Sy)}^2} - {{(En\mathop y\limits^\wedge )}^2}} ; \end{array} $ | (6) |
其中:
$ \begin{array}{l} {(S\mathop {{x_i}}\limits^\wedge )^2} = \frac{1}{{D/S - 1}}{\sum\limits_{i = 1}^{D/S - 1} {\left( {{\varphi _{{S_i}{T_i}}} - \overline {{\varphi _{S{T_i}}}} } \right)} ^2},\\[10pt] {(S\mathop {{y_i}}\limits^\wedge )^2} = \frac{1}{{D/S - 1}}{\sum\limits_{i = 1}^{D/S - 1} {\left( {{\lambda _{{S_i}{T_i}}} - \overline {{\lambda _{S{T_i}}}} } \right)} ^2}, \end{array} $ | (7) |
计算完上述参数之后,生成期望为
$ {\mu _{{N_j}}} = {e^{ - \left[ {\frac{{{{\left( {{\varphi _{{N_j}}} - E\mathop {{x_i}}\limits^\wedge } \right)}^2}}}{{2\left( {En{{\mathop {{x_i}}\limits^\wedge }'}} \right)}} + \frac{{{{\left( {{\lambda _{Nj}} - E\mathop {{y_i}}\limits^\wedge } \right)}^2}}}{{2\left( {En{{\mathop {{y_i}}\limits^\wedge }'}} \right)}}} \right]}}。 $ | (8) |
然后重复上述过程,直至得到N个云滴。
本文使用的是Matlab仿真工具,得到的船舶航迹点云图如图 4所示。云图的离散度与样本数量密切相关,样本数量越多,离散度越低。图 4所示为样本数量为10 000的情况。
本文主要研究了船舶航迹点生成方法。连续的航迹云图能够准确反映航迹实际情况,为了得到理想的航迹图,本文借助云平台,构建了云平台规模的训练样本,然后利用正态云统计分析算法进行航迹点的生成。实验结果表明本文方法能够得到较好的航迹云图。
[1] | 孙文力, 孙文强. 船载自动识别系统[M]. 大连: 大连海事大学出版社, 2004. |
[2] | 李春霞. 卡尔曼滤波方程的改进算法及应用[J]. 哈尔滨商业大学学报(自然科学版), 2002, 18 (3): 264–267. |
[3] | 李德毅.隶属云和语言原子模型[C].计算机智能接口与应用论文集, 1993:272-277. |