2. 上海交通大学 弗劳恩霍夫协会智能制造项目中心,上海 201306;
3. 上海交通大学 机械系统与振动国家重点实验室,上海 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
随着算力的不断提高,自动驾驶技术得到了广泛的应用,辅助驾驶员进行决策,降低了事故的发生率。然而,与车辆自动驾驶系统关注二维复杂路面交通情况不同,在远洋船舶航行中,随着海浪而不断发生改变的船体三维运动姿态是船舶自动驾驶系统的核心。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个旋转自由度。
平移方向的运动:垂荡(heave)、横荡(sway)、纵荡(surge)难以进行测量,而在旋转运动的3个参数中,首摇(yaw)主要由驾驶员或自动巡航控制,因而本文主要针对船体运动姿态中的纵摇(pitch)和横摇(roll)进行研究。
1.2 基于Blender的虚拟数据集生成Blender是一款免费开源三维图形图像软件,并且具备物理引擎,可以提供相对真实的仿真与模拟。
借助Blender的python接口,本文通过调整海洋面的参数[5]:如波浪出现频率、波浪起伏尺度、风速、波浪排列密度等,并加以随机组合,增加了海况的复杂性,成功实现对海浪模型的真实模拟,也达到了数据增强的目的。
同时,通过添加浮于洋面的虚拟船体,船体沿着预设的贝塞尔曲线进行运动,并绑定有固定放置的摄像头。最终,成功创建长达37.2 h的波浪视频与船体数据,按照12/s的频率进行存储,共得到了张分辨率为的洋面仿真图,与其对应的船体运动姿态数据,供后续数据的处理使用。
为了使原始输入数据更适合神经网络训练,减小梯度消失、梯度爆炸等问题,针对上文生成的波浪数据与船体位姿数据,进行标准化和归一化的预处理。
$ {P_{{\text{normalized }}}} = \frac{{2 \times {P_{{\text{original }}}}}}{{255}} - 1 。$ | (1) |
对于 Blender 生成的图像,每一个像素值
$ Angl{e_{{\text{normalized}}}} = \frac{{{\text{ }}Angl{e_{{\text{original}}}}{\text{ }} - ( - 90)}}{{90 - ( - 90)}} - 1。$ | (2) |
船体运动姿态具有时间上的连续性,前一时刻乃至前一段时间的运动姿态均会对本时刻的运动姿态有影响,因而船体运动姿态的预测不是一个单纯的数值回归问题,而是一个时间序列预测问题。
2.1 CNN和GRU由于运动姿态数据的维度较低,单纯使用运动姿态作为模型输入,容易造成数据的过拟合问题,因而使用波浪图形与相应运动数据共同输入的方法。
对于图像数据,使用卷积神经网络(CNN)处理。CNN[6]通过卷积层和池化层的组合,可以在不同维度上完成图像的特征提取。
对于船体运动姿态的数据,则是借助GRU。GRU是长短时记忆神经网络(Long short-term memory,LSTM)的一个变体,各层间的隐藏层之间存在连接,达到记忆的目的。在LSTM[7]引入了细胞状态,添加了输入门、遗忘门和输出门,解决了传统RNN梯度爆炸和长期依赖的问题的基础上,GRU将门结构进行合并,简化了参数信息,更易收敛,在小数据集上的训练效果更佳。
2.2 端对端预测的编码解码器结构传统的LSTM结构的输入序列和输出序列必须是等长的,应用场景有限,并且无法满足本文的研究需求,因此使用多对多的encoder-decoder结构。
编码器(encoder)负责将输入序列压缩成指定长度的向量,这个向量就可以看成是这个序列的语义,而解码器(decoder)则负责根据语义向量生成指定的序列。借助此结构,可以实现以较短的输入序列生成较长的输出序列。
2.3 神经网络模型结构构建如图4和图5所示的神经网络。神经网络先通过CNN对波浪图像数据进行降维与特征提取,在特征提取完成后将图像特征与船体运动姿态进行联结,最后输入由GRU网络组成的编码解码器结构中。
图4显示了神经网络的模型图,而每一层的具体参数和输入输出尺寸则是记录在图5所示的网络结构图中。
网络中卷积层及池化层之间的参数计算关系如下式:
$ Output\_size = 1 + \frac{{Input\_size - filter\_size + padding}}{{stride}}。$ | (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机制防止模型过拟合。
同时,最优超参数寻找中使用Hyperband算法[8],达到了时间预算和参数寻找效果的平衡。
3.2 实验结果与分析经过60个Epoch的多种模型训练与测试结果如表2所示。可知,本文所构建的模型相比于baseline模型,在训练集和测试集上的表现分别提高了13倍与6.8倍,验证了所构建模型的效果。
多种模型的损失函数变化趋势如图6所示。可以看出本文所构建的网络模型收敛速度与预测精度都有较好的效果。
船体运动位姿的预测结果如图7所示,可知,除去个别尖端(运动状态突变处),折线几乎吻合,验证了本文所构建模型对正常行驶中未来船体运动状态的预测精确性。
本文针对船舶自动驾驶中的运动位姿预测中的数据集缺失和精度不高等问题,提出了一套基于虚拟数据集的船体运动位姿的预测方法。主要结论如下:
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.
|