杜 林,李广年,郑彭军
(宁波大学,浙江 宁波 315000)
船体建模技术与几何变形方法长久以来一直是船舶性能优化过程中,特别是基于SBD 技术船型优化中的重要研究方向,其与CFD 数值计算方法组成CAD-CAE 协同设计优化体系[1-2]。目前,船体曲面建模方法的研究主要集中在基于NURBS 曲面(Non-Uniform Rational B-Splines,即非均匀有理B 样条)的传统船体参数化建模方法上。关于船体曲面变形与光顺方法也主要依托于NURBS 的表达式拟合模型,通过径向基函数插值[3-4]、Self-Blending 方法[5]、流曲线方法[6]等实现三维自动变形,包括船体曲线和曲面光顺性准则在内的其他相关研究也已非常成熟[6-7]。
计算机视觉技术和人工智能技术在近10 年时间里实现了跨越式发展,已广泛应用于各个行业。1998年的卷积神经网络(Convolutional Neuronal Networks,简称CNN)模型LeNet,实现了手写数字样本精确分类[8]。2017年AlexNet采用修正线性单元解决了网络较深时的梯度弥散问题,使得CNN 的分类准确度空前提高[9]。计算机视觉技术不仅用于模拟生物视觉的认知机制,同时在序列型数据生成方面也取得了重要成果。2014 年Goodfellow 等[10]首次提出生成式对抗网络(Generative Adversarial Networks,简称GAN)模型。2016年,Radford等[11]提出了深度卷积生成式对抗网络模型。我国学者在基于计算机视觉的三维模型重构研究上取得了国际领先成果[12-14]。近些年,越来越多的研究者将计算机视觉技术应用于海洋工程和流体力学领域[15-16]。其中,基于CNN 的船舶检测与船舶分类技术已经较为成熟[17-19],在阻力性能预报方面也取得了一定的研究成果[20]。
船体曲面具有非常复杂的几何形状,不仅包括连续性和非连续性曲面,还常伴有附体结构(舭龙骨、减摇鳍等)。常规优化系统内的参数建模方法主要基于NURBS 曲面技术通过调节控制点位置和权重完成曲面变形,较难实现非连续曲面变形和附体结构变形。从数据类型上分析,船体型值数据与图片数据都是序列相关型数据,所以广泛用于图片和视频数据处理的计算机视觉技术,也同样适用于船体型值数据处理。本文作者依托这一共性特征,首先采用卷积神经网络对船体曲面区域进行分类预测,证明其能够较为准确地分辨船体区域特征;然后分别采用一体式(All-In-Once,简称AIO)和分区式(Separative Method,简称SPM)策略建立生成式对抗网络模型,并分别构造船体曲面,证明两种策略的可行性;最后通过对比生成模型与真实船型间的特征差异,分析一体式与分区式策略的局限性,并提出改进方法。本文旨在证明将计算机视觉技术引入船体型线设计的可能性,并探索进一步研究所要面对的潜在问题,为相关研究内容提供理论和实践上的支持。
本文基于长期科研过程中所积累的大量船体型值数据,通过Lackenby变换、曲面融合等方法得到了一个包含250艘船体型线的数据集(包括拖网渔船、油船、散货、集装箱、驱逐舰等)。数据集中的船型将按照7:3比例随机划分为训练集与验证集,用于卷积神经网络的训练和验证,其部分样本如图1所示。
图1 船型数据集部分船型特征Fig.1 Some models of the ship hull database
船型数据集的多样性分别体现在样本的主尺度分布情况(如表1所示)和样本几何特征分布情况(如表2所示)。
表1 船型数据集的样本主尺度分布情况Tab.1 Distribution of ship’s principal dimensions in database
表2 船型数据集几何特征分布情况Tab.2 Statistics of ship hulls’characteristics in database
采用3 种方案(2×4,2×6,2×8)对数据集内的所有船型样本进行区域分割。具体分割和编码方法如图2 所示。以2×8 方案为例,将无量纲化船体沿xz方向均匀分割,自船艉向船艏从小到大编码(0~7区,8~15区),从甲板向基线方向进行编码(7~8区域)。
图2 区域分割和编码方式(2×8情况)Fig.2 Subdivision and numbering method(Case 2×8)
为保证输入样本的数据尺度相同,所有分割法均保证数据解析度为32×32,如图3所示,其中颜色的深浅代表半宽值大小(深色接近1,浅色接近0)。对于同一艘船,采用不同的分割形式所观测到的特征有差异,说明不同切割方式的长宽比对特征采集有影响,但不在本文研究范围之内。
图3 在32×32解析度下不同分割方案的球艏部分数据可视化情况Fig.3 Bulbous bow visualization with 32×32 resolution in different subdivision cases
为了消除尺度对船体形状认知的影响,提高卷积神经网络的分类准确性,本文对船体型值数据进行无量纲化处理,半宽值数据归入0~1范围内,船长和型深方向的数据按照分割方案进行无量纲化处理。以2×8为例,船长方向数据归入-4~4区间内,型深方向数据归入-1~1区间内。
卷积神经网络模型源于生物视觉原理,通过模拟生物视觉感受野(Receptive Field)的功能对序列相关型数据进行特征提取。卷积神经网络模型主要包括:代表网络训练结果优劣的损失函数;用于求解最小损失函数值使得模型训练过程收敛的优化算法;提取数据特征的卷积层;降低参数数量级的池化层(降维);负责输出结果的全连接层神经网络(分类)。
损失函数是用来评估网络模型的预测值f(x)与真实值Y的差异程度。一般函数值是一个非负实数,以L(Y,f(x))表示。一般来说,得到的损失函数值越小,说明模型的鲁棒性越强,具有较高的预测精度和良好的泛化性。较为常见的损失函数包括:
(1)平均绝对误差损失(Mean Absolute Error Loss,简称MAE,又称L1损失):
(2)均方误差损失(Mean Squared Error Loss,简称MSE,又称L2损失):
(3)交叉熵损失(Cross-Entropy Loss,简称CEL又称对数似然损失,Log-likelihood Loss):
本文通过卷积神经网络监督学习模型进行分类预测。在损失函数和激活函数的选择上,采用在解决图片分类问题中较为常见的二元交叉熵损失函数(Binary-Cross-Entropy Loss)与Sigmoid 激活函数组合。优化算法的选择对多元分类模型的性能非常重要,相同的模型,由于选择不同的优化算法,可能导致其性能差异巨大,甚至导致模型训练无法收敛。常用的优化算法主要包括梯度下降类算法、动量算法以及自适应梯度类算法。本文所采用的Adam 算法利用梯度的一阶矩估计和二阶矩估计来动态调整学习率。Adam 的优点主要在于经过偏置矫正后,每次迭代的学习率都有一个范围,类似于动量算法,参数迭代非常稳定。
本文基于Pytorch平台构建了用于对艏艉曲面特征进行二分类的卷积神经网络模型,如图4所示。网络输入层是32×32的二维数组,为了更完整地提取型线边缘的特征信息,在输入层四周添加一层数值为0 的元素,则原数组变为34×34。用4 个3×3 的卷积核,以步长为1,分别得到4 组32×32 特征数组(第一卷积层);用4 个3×3 的卷积核,以步长为2,分别得到4 组15×15 特征数组(第二卷积层)。重复用3×3 的卷积核,步长值交替取1 和2,经过两次后分别得到13×13 和6×6 特征数组。将6×6 的卷积层转置成一维数组后,建立一个全连接网络,以此一维数组为输入,以1 个1×2 独热编码(即仅有1 个元素为1,其他都为0)为输出。如果网络所输出的独热编码(one-hot code)为[1,0],则意味着网络判定所输入的船体型值属于船艉,如果是[0,1],则判断为船艏。
图4 用于船体艏艉型线特征分类的卷积神经网络结构图Fig.4 Structure of CNN for ship hull’s stern and front classification
在区域数目增多时,独热编码数组的尺度随其增大,以2×8 分割方式为例,CNN 输出的独热编码数组中第10 区的数值高于其他区域(柱状图),如图5 所示,即模型判定输入特征与第10 区域数据特征更匹配。神经网络输出区域判定结果为1×16的独热编码,且10号区域对应元素为1。
图5 独热编码输出判断样本所属区域方法Fig.5 One-hot code classification method
本文基于Pytorch 框架构建船型数据集和卷积神经网络模型,按照上述内容设定损失函数与优化算法,所有分割方案数据集统一经过epoch=30 的训练后(由于分割方式不同导致样本数量不同,所以图6横轴坐标不同,但所有分割方式的epoch数量都是30),损失函数值变化过程如图6所示。
图6 卷积神经网络模型的损失函数值随训练收敛的过程Fig.6 Convergence process of CNN training in different cases
初步构建的卷积神经网络模型在不同分割方案下的分类性能表现如表3所示,其在2×4,2×6,2×8三种方案中表现为训练准确率随分割区域的增多而逐渐下降。
表3 卷积神经网络模型解决船体型线区域分类问题的性能Tab.3 Performance of CNN in solving various hull subdivision classification cases
由此可知,本文基于卷积神经网络模型所构建的船体曲面特征认知机制,能够较为准确地辨别2×4 分割方案下的船体曲面特征。以此为依据,本文在构建曲面特征生成机制时,分区式生成法将采用2×4 方案,并依照相同的网络结构设计GAN模型的判别器网络。
本文设计了两种曲面生成方法:一体式和分区式方法。一体式方法是通过一个生成器网络与一个判别器网络进行对抗(一对一对抗),直接生成一个完整的船体曲面。分区式方法是通过多个生成器与多个判别器网络进行对抗(多对多对抗),依次生成各个船体曲面区域而完成建模。
基于生成式对抗网络的船体曲面分区式建模过程如图7 所示。首先,根据所采用的曲面生成策略,对船型数据进行曲面离散和区域分割等预处理工作;然后,基于卷积神经网络建立船体曲面特征认知机制;最后,生成器将初始样本输入基于曲面特征认知机制的判别器,令其对比样本特征与标准曲面特征,如果样本符合船体曲面特征要求则输出,否则更新生成器网络的超参数后生成新样本,并再次由判别器判断,迭代此过程直至两个网络实现纳什均衡,能够稳定输出具有船体曲面特征的数据,则GAN网络训练完成。本文采用Adam优化算法和交叉熵损失函数对网络进行训练。
图7 生成式对抗网络的船体曲面生成流程示意图(分区式方法)Fig.7 Process of ship hull form generating by GAN(Separative method)
一体式方法的生成器和判别器网络结构如图8所示,其生成器网络是一个逆卷积解码器的结构,包括2 个全连接层和3 个反卷积层。其输入层是由一个随机正态分布种子生成器来生成1×200 的随机种子。生成器网络的输出层是经过3次反卷积计算的64×128单通道二维数组。判别器网络是一个典型的卷积神经网络模型,包括3 个卷积层和2 个全连接层,输入层为装载无量纲半宽数据的64×128单通道二维数组,输出层是1个标量(结果接近1则判定输入数据与数据集船型接近,接近0则判定输入数据为随机噪声)。判别器网络通过交替输入随机噪声和标准船型,采用误差反向传播训练模型,直至判别器的损失函数收敛或迭代达到最大次数。
图8 一体式方法的判别器与生成器网络结构示意Fig.8 Network structure of AIO method
基于船体曲面特征认知机制的研究结果可知,卷积神经网络模型能够在2×4分割方案下,较为准确地认知32×32 的船体曲面特征(测试集分类准确率为98.17%)。所以,采用2×4 方案构建GAN 模型实现船体曲面的分区式特征认知与生成,具备一定的先验性依据。
判别器网络基于LeNet 模型,包括3 个卷积层和1 个全连接层,如图9(a)所示,输入层为32×32 的二维单通道矩阵,输出层为1×1 的标量,通过交替输入当前区域的型值特征样本和随机噪声,采用误差反向传播来训练判别器网络,直至损失函数值收敛或迭代达到最大次数。生成器网络依旧是一个反卷积解码器的结构,其包括2 个全连接层和3 个反卷积层,其输入层由一个随机正态分布种子生成器生成1×200的随机种子,其输出层是经过3次反卷积计算的32×32单通道二维数组。
图9 分区式方法的判别器与生成器网络结构示意Fig.9 Network structure of separative method
一体式方法的判别器损失变化一直较为稳定(绝大部分在5 以下波动),其生成器损失值在初始迅速上升后(超过9),迅速趋于平稳(200步之前)并持续波动,如图10(a)~(b)所示。
图10 两种策略生成式对抗网络模型的损失函数在训练中的变化Fig.10 Loss functions of GAN in training process of two methods
分区式方法的判别器损失值波动更小(大部分集中在2.5以下),但整个训练过程仍存在个别较高的损失值(10 000 次附近),如图10(c)所示;其生成器损失值一直在相对较低的位置震荡(1~5 之间),而且并没有和一体式网络一样出现在训练初期生成器损失值激增的情况,如图10(d)所示。
一体式方法的训练过程中,出现了势均力敌的对抗表现(判别器和生成器的损失值均持续较大范围的波动,且判别器损失值趋于减小,生成器损失值先增高后降低并持续波动)。在分区式方法的训练过程中,判别器则明显较为强势(整个过程具有很小且较稳定的损失值),生成器在同判别器的对抗中没有出现损失值先增大后减小的情况,其迅速被判别器支配,这可能导致生成样本趋同化。
从信息密度上分析,单个样本的信息量从一体式的64×128降至分区式的32×32,这使得判别器能够获取更微观的特征,但生成器的自由度却降低了,所以判别器性能相较于生成器更强势。损失函数仅能体现网络训练是否收敛,若要衡量网络的实际性能则需进一步分析生成样本质量。
一体式方法所生成的船型如图11(b)所示,其中#1模型艉部特征与#2生成船型具有明显区别;#2生成模型具有较为平滑的水下艏部结构,基线附近的特征也与#1生成船型区别明显。总体来看,一体式生成船型的船体轮廓较为模糊,连续区域颜色分布不均匀表明其曲面有较为明显的噪声,即曲面有义性较差,但其呈现出了较为多样的船体曲面形状。相比11(a)中数据集船型,虽然样本质量仍有明显差距,但在多样性方面具有较为突出的表现。
图11 一体式生成方法所生成的船型样本的侧视图Fig.11 Samples generated by GAN with AIO method
从生成样本的总体质量来讲,清晰度和噪音情况略优于一体式方法,如图12 所示。但相较于数据集中的真实船型,仍具有肉眼可见的区别和缺陷。如0 区(艉部甲板方向的区域),生成船型#1、#2的艉封板颜色比数据集中的真实船型#1、#2 更浅,且边缘部分有明显噪点,这说明0 区曲面光顺程度较差;2 区(船舯靠艏部的甲板方向区域),数据集中的真实船型#2 具有肉眼可见的梯度变化(右下角颜色较浅,半宽值较小),而生成船型#1、#2对应区域中的梯度变化难以观测;4区(船艉基线方向),生成船型#1、#2的轮廓较为模糊,而真实船型#1的轮廓较为清晰。
图12 分区式生成方法所生成的船型样本的侧视图Fig.12 Samples generated by GAN with separative method
将两种方法生成的二维数组导出后,本文对无量纲化数据进行了放大、曲面光顺与降噪处理后,船型数据三维可视化曲面如图13~14所示。一体式方法所生成的船体曲面总体上具有较好的曲面质量,如图13 所示(左舷为原始生成数据,右舷为降噪和光顺后数据),但仍存在肉眼可见的曲面凹凸(如图艉部)。同时,艏部水线以下虽具有生成球艏特征的趋势,但不够明显和完整,反而破坏了曲面质量。
图13 一体式生成方法所生成的船体曲面(曲面降噪和畸变修复后)Fig.13 Surface generated by GAN with AIO method(smoothened and faired)
对于分区式方法生成的船体曲面,各区域内部具有较好的曲面光顺度,特别是经过降噪处理后,各区域曲面质量有所提升,如图14 所示。但由于在生成过程中,各生成器与判别器的训练是相互独立的,并没有考虑到生成曲面区域之间的衔接问题,所以各区域的边缘处具有肉眼可见的明显曲面畸变(3、6、7区域)。
图14 分区式生成方法所生成的船体曲面(曲面降噪和畸变修复后)Fig.14 Surface generated by GAN with separative method(smoothened and faired)
本文旨在探索采用计算机视觉技术建立船体曲面特征的认知和生成机制的可行性,尝试构建基于卷积神经网络的船体曲面特征的认知机制,以及基于生成式对抗网络的船体曲面特征的生成机制。研究得到了如下结论:
(1)通过卷积神经网络模型对不同分割方案下的船体曲面区域特征识别精度研究,初步证明了计算机视觉方法能够分辨不同船体曲面的区域特征,证明了基于卷积神经网络模型建立船体曲面特征认知机制的可行性;
(2)采用一体式方法(AIO)的生成式对抗网络模型,能够生成具有较好曲面全局完整性的船型样本,但其训练成本较高、损失函数收敛不稳定,容易出现模式崩溃现象,且其在个别区域内仍难以避免凹凸,降低了生成样本的实用性;
(3)采用分区式方法(SPM)的生成式对抗网络模型,训练成本低、损失函数相对较为稳定,模式崩溃现象出现较少,能够快速生成较为理想的区域曲面,但由于各生成器间没有全局约束,导致所生成的曲面区域之间无法光顺衔接,区域连接处具有较为明显的曲面畸变,导致生成船型不具备曲面有义性。
综上,基于计算机视觉技术建立船体曲面特征认知与生成机制具有一定的可行性,其中,基于卷积神经网络模型的特征认知机制能够准确地分辨不同的曲面区域(2×4分割方案下的测试集识别精度达到98.17%)。但目前的研究表明,本文所采用的一体式和分区式生成方法均具有各自的局限性,难以独立满足实际工程应用对生成曲面的多样性和有义性的要求。在后续研究中,将在基于计算机视觉技术的船体曲面生成机制方面,特别在两种生成方法的融合与改进方面开展进一步的探索和研究。