舰船科学技术  2022, Vol. 44 Issue (15): 55-59    DOI: 10.3404/j.issn.1672-7649.2022.15.012   PDF    
基于神经网络的船体运动位姿预测方法
谷达京1,2, 施哲源1,2, 陈根良1,2,3, 王皓1,2,3     
1. 上海交通大学 上海市复杂薄板结构数字化制造重点实验室,上海 200240;
2. 上海交通大学 弗劳恩霍夫协会智能制造项目中心,上海 201306;
3. 上海交通大学 机械系统与振动国家重点实验室,上海 200240
摘要: 海上运输在全球贸易中发挥着重要作用,依靠船舶自动驾驶系统的高速环境感知和自主决策能力,可有效减少由于人为操控失误造成事故的发生率。针对远洋航行中由于船体型号多变、海域情况复杂等造成的数据集缺失问题,本文提出一种通过物理引擎人工生成波浪图像与船体运动位姿数据集的方法。同时,针对波浪与船体运动姿态的时序性特点,以及经典循环神经网络面临梯度爆炸、输入输出等长等问题,提出一种基于CNN卷积神经网络和GRU门控循环神经网络的船体运动姿态预测模型,通过卷积神经网络获取图片特征,并借助Encoder-Decoder编码解码器结构,成功实现了以较短时间的数据对未来船体运动姿态(纵摇和横摇)的长时间和高精度预测。
关键词: 船舶自动驾驶     运动姿态     时序预测     CNN     GRU    
Deep learning for predicting ship motion from images, pitches and rolls
GU Da-jing1,2, SHI Zhe-yuan1,2, CHEN Gen-liang1,2,3, WANG Hao1,2,3     
1. Shanghai Key Laboratory of Digital Manufacture for Thin-walled Structures, Shanghai Jiaotong University, Shanghai 200240;
2. Fraunhofer Project Center for Smart Manufacturing at Shanghai Jiaotong University, Shanghai 201306;
3. Key Laboratory of Mechanical System and Vibration, Shanghai Jiaotong University, Shanghai 200240
Abstract: Maritime transportation plays an important role in global trade. Relying on the high-speed environment perception capability of the ship's automatic driving system, it can effectively reduce the incidence of accidents caused by human control errors. The changes of waves are the key factors affecting the movement of the vague. Aiming at the problem of missing data sets due to variable vague models and complex sea conditions during ocean voyages, this paper proposes a method of artificially generating wave images and vague motion pose data sets through a physics engine. At the same time, in view of the temporal characteristics of wave and ship motion posture, as well as the difficulties such as gradient explosion and equality of length of input and output, a vague motion posture prediction model based on CNN and GRU is proposed, with the help of Encoder-Decoder structure, which successfully realized the long-term and high-precision prediction of the future ship motion (pitch and roll) with a short time of data.
Key words: autonomous ship navigation     motion posture     time Series prediction     CNN     GRU    
0 引 言

随着算力的不断提高,自动驾驶技术得到了广泛的应用,辅助驾驶员进行决策,降低了事故的发生率。然而,与车辆自动驾驶系统关注二维复杂路面交通情况不同,在远洋船舶航行中,随着海浪而不断发生改变的船体三维运动姿态是船舶自动驾驶系统的核心。5~10 s的船舶运动姿态预测,能够确保船体控制协调的准确性,降低风险,保证驾驶操作的安全性[1]

计算能力的增强和大量数据的积累,使得数据驱动的分析方法得以协助解决许多传统问题。文献[2]结合经验驱动方法和数据驱动方法来进行大型铁路网络中列车运行的预测问题。文献[3]使用LSTM网络来进行缸体压铸的质量预测。在船舶自动驾驶领域,数据驱动的神经网络方法同样应用于海浪重构、航行状态预测等方面。文献[4]使用基于人工神经网络 (ANN) 和基于实例学习 (IBL) 的模型,通过测量浮标预测数小时内的波浪高度。

由于海域的多变与船体型号的多样性,船舶自动驾驶领域缺少统一的数据集,对船舶运动状态的预测的能力造成了制约。本文提出一种通过物理引擎人工生成波浪图像与船体运动位姿的方法,进行了数据集的生成。同时,针对船舶运动位姿预测问题,提出一种结合卷积神经网络 (convolutional neural network, CNN) 和门控循环神经网络 (gated recurrent unit, GRU) 的神经网络模型,使用更多的特征进行网络训练,并充分利用了波浪与位姿信息的时序特性,规避了传统的循环神经网络 (recurrent neural network, RNN) 梯度爆炸与记忆能力欠缺的问题[3]。同时使用了Encoder-Decoder的编码解码器结构,实现了以较短的数据对更长时间段船舶运动数据的预测,验证了方法的有效性。

1 基于物理引擎的虚拟数据集生成

本文将船舶运动姿态的预测视作一个典型的序列到序列(sequence to sequence)问题,网络的输入是一组波浪图像以及图像对应的船舶运动的标签组合而成的序列,网络的输出是船体运动姿态的序列。使用Blender物理引擎的python接口进行虚拟数据集的生成。

1.1 船体不同运动姿态解析

船体具有六自由度,分别是沿着船体基准轴方向的3个平移自由度,以及绕着基准轴的3个旋转自由度。

图 1 船体运动姿态图 Fig. 1 Ship motion diagram

平移方向的运动:垂荡(heave)、横荡(sway)、纵荡(surge)难以进行测量,而在旋转运动的3个参数中,首摇(yaw)主要由驾驶员或自动巡航控制,因而本文主要针对船体运动姿态中的纵摇(pitch)和横摇(roll)进行研究。

1.2 基于Blender的虚拟数据集生成

Blender是一款免费开源三维图形图像软件,并且具备物理引擎,可以提供相对真实的仿真与模拟。

借助Blender的python接口,本文通过调整海洋面的参数[5]:如波浪出现频率、波浪起伏尺度、风速、波浪排列密度等,并加以随机组合,增加了海况的复杂性,成功实现对海浪模型的真实模拟,也达到了数据增强的目的。

同时,通过添加浮于洋面的虚拟船体,船体沿着预设的贝塞尔曲线进行运动,并绑定有固定放置的摄像头。最终,成功创建长达37.2 h的波浪视频与船体数据,按照12/s的频率进行存储,共得到了张分辨率为的洋面仿真图,与其对应的船体运动姿态数据,供后续数据的处理使用。

图 2 波浪数据集生成图 Fig. 2 Waveform data set generation graph
1.3 数据预处理

为了使原始输入数据更适合神经网络训练,减小梯度消失、梯度爆炸等问题,针对上文生成的波浪数据与船体位姿数据,进行标准化和归一化的预处理。

$ {P_{{\text{normalized }}}} = \frac{{2 \times {P_{{\text{original }}}}}}{{255}} - 1 。$ (1)

对于 Blender 生成的图像,每一个像素值 $ P \in [0,255] $ ,因而按照式(1)将其转换为 –1~1 之间。对于船舶运动的俯仰角,由于 $- {\rm{Angle}} \in \left[ {- {{90}^{\circ }},{{90}^{\circ}}} \right]$ ,因而使用式(2)对其进行预处理。

$ Angl{e_{{\text{normalized}}}} = \frac{{{\text{ }}Angl{e_{{\text{original}}}}{\text{ }} - ( - 90)}}{{90 - ( - 90)}} - 1。$ (2)
2 运动位姿预测的网络模型搭建

船体运动姿态具有时间上的连续性,前一时刻乃至前一段时间的运动姿态均会对本时刻的运动姿态有影响,因而船体运动姿态的预测不是一个单纯的数值回归问题,而是一个时间序列预测问题。

2.1 CNN和GRU

由于运动姿态数据的维度较低,单纯使用运动姿态作为模型输入,容易造成数据的过拟合问题,因而使用波浪图形与相应运动数据共同输入的方法。

对于图像数据,使用卷积神经网络(CNN)处理。CNN[6]通过卷积层和池化层的组合,可以在不同维度上完成图像的特征提取。

对于船体运动姿态的数据,则是借助GRU。GRU是长短时记忆神经网络(Long short-term memory,LSTM)的一个变体,各层间的隐藏层之间存在连接,达到记忆的目的。在LSTM[7]引入了细胞状态,添加了输入门、遗忘门和输出门,解决了传统RNN梯度爆炸和长期依赖的问题的基础上,GRU将门结构进行合并,简化了参数信息,更易收敛,在小数据集上的训练效果更佳。

2.2 端对端预测的编码解码器结构

传统的LSTM结构的输入序列和输出序列必须是等长的,应用场景有限,并且无法满足本文的研究需求,因此使用多对多的encoder-decoder结构。

图 3 编码解码器结构 Fig. 3 Encoder-Decoder structure

编码器(encoder)负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,而解码器(decoder)则负责根据语义向量生成指定的序列。借助此结构,可以实现以较短的输入序列生成较长的输出序列。

2.3 神经网络模型结构

构建如图4图5所示的神经网络。神经网络先通过CNN对波浪图像数据进行降维与特征提取,在特征提取完成后将图像特征与船体运动姿态进行联结,最后输入由GRU网络组成的编码解码器结构中。

图 4 神经网络模型图 Fig. 4 Neural network model diagram

图 5 神经网络结构图 Fig. 5 Neural network structure diagram

图4显示了神经网络的模型图,而每一层的具体参数和输入输出尺寸则是记录在图5所示的网络结构图中。

网络中卷积层及池化层之间的参数计算关系如下式:

$ Output\_size = 1 + \frac{{Input\_size - filter\_size + padding}}{{stride}}。$ (3)

其中 $ Input\_size $ 为该层的输入, $ Filter\_size $ 为卷积核的尺寸, $ stride $ 为卷积核每次滑动的步长, $ padding $ 为填充。

3 实验结果与分析

为了验证所建立的神经网络模型预测能力的有效性,使用所建立数据集,将其随机分割为80%,10%和10% 分别作为模型的训练集、验证集和测试集。所有实验均在3.6GHz CPU (Inter i7-6850k)、NVIDIA GeForce GTX 1080 Ti显卡和16GB RAM的台式电脑以单线程进行。实验基于Linux系统,开发工具为Pycharm,编程语言为Python,深度学习框架为Pytorch。

3.1 实验参数与方法

依照表1所示超参数初值,对所建立的神经网络进行训练,并使用EarlyStopping机制防止模型过拟合。

表 1 超参数初值表 Tab.1 Hyperparameter initial value table

同时,最优超参数寻找中使用Hyperband算法[8],达到了时间预算和参数寻找效果的平衡。

3.2 实验结果与分析

经过60个Epoch的多种模型训练与测试结果如表2所示。可知,本文所构建的模型相比于baseline模型,在训练集和测试集上的表现分别提高了13倍与6.8倍,验证了所构建模型的效果。

表 2 多种模型的训练结果 Tab.2 Training results of multiple models

多种模型的损失函数变化趋势如图6所示。可以看出本文所构建的网络模型收敛速度与预测精度都有较好的效果。

图 6 多种模型的训练结果对比图 Fig. 6 Comparison of training results of multiple models

船体运动位姿的预测结果如图7所示,可知,除去个别尖端(运动状态突变处),折线几乎吻合,验证了本文所构建模型对正常行驶中未来船体运动状态的预测精确性。

图 7 12 s内纵摇和横摇的预测结果图 Fig. 7 Pitch and roll prediction results in 12 seconds
4 结 语

本文针对船舶自动驾驶中的运动位姿预测中的数据集缺失和精度不高等问题,提出了一套基于虚拟数据集的船体运动位姿的预测方法。主要结论如下:

1)基于真实物理引擎,通过调节风速、波浪密度、波浪起伏等参数,构建了充足、多样的虚拟数据集;

2)针对传统循环时间网络梯度爆炸、缺乏长期依赖等问题,提出了CNN结合GRU的模型结构,通过波浪图像的特征来增加模型的输入维度;

3)通过使用sequence to sequence编码-解码器模型,解决了预测网络输入输出必须等长的问题,实现了以较短的输入数据对更长时间段的未来船体运动姿态预测;

4)设计了船体运动姿态预测实验,将常用模型与本文所构建模型预测效果进行了对比,验证了所构建模型以10 s的输入数据对12 s的未来运动姿态的预测效果。

参考文献
[1]
ZHAO X , XU R , KWAN C . Ship-motion prediction: algorithms and simulation results[C]. IEEE International Conference on Acoustics. IEEE, 2004. .
[2]
ONETO L , BUSELLI I , LULLI A , et al. A dynamic, interpretable, and robust hybrid data analytics system for train movements in large-scale railway networks[J]. International Journal of Data Science and Analytics, 2020, 9(4).
[3]
赵圆方, 高媛, 钱峰, 等. 应用LSTM网络的缸体压铸质量预测[J]. 机械设计与制造, 2021(7): 229-232. DOI:10.3969/j.issn.1001-3997.2021.07.054
[4]
ZAMANI A, SOLOMATINE D, AZIMIAN A, et al. Learning from data for wind–wave forecasting[J]. Ocean Engineering, 2008, 35(10): 953-962. DOI:10.1016/j.oceaneng.2008.03.007
[5]
周红进, 李方能, 黄谦, 等. 基于船载北斗导航仪测量波浪参数方法研究[J]. 舰船科学技术, 2019, 41(15): 131-134. DOI:10.3404/j.issn.1672-7649.2019.08.026
[6]
乐艺. 基于卷积神经网络的舰船图像类型识别[J]. 舰船科学技术, 2019, 41(20): 172-174.
[7]
徐洪敏. LSTM网络在船舶航行轨迹预测中的应用[J]. 舰船科学技术, 2021, 43(8): 37-39.
[8]
LISHA Li, KEVIN Jamieson, GIULIA DeSalvo, et al. Hyperband: Bandit-based configuration evaluation for hyperparameter optimization[C]. ICLR (Poster). 2017.