王冬梅,王 良,孙文然,祁 超,沈建龙
(1.上海船舶工艺研究所,上海 200032;2.广州文冲船舶修造有限公司,广东 广州 511462;3.招商局重工(江苏)有限公司,江苏 南通 226116)
在船舶制造企业中,船舶设备堆放涉及物资集配、物流传输、信息标记、堆场库位规划、入库和出库使用等一系列操作,有些船舶设备属于进口产品,相关信息资料为英文描述,现场领料和安装人员较难在第一时间准确辨识其详细信息、项目使用和安装调试等。行业内的骨干企业引进智能化船舶设备立体仓库,实现船舶设备仓储管理无人化。收货入库阶段的船舶设备信息识别尤为重要,只有具备快速辨识能力,才能提升管理效率。
船舶设备具有种类繁多、数量庞大的特点,在仓库捕获的船舶设备图像中,背景场景均十分复杂。目前,在半人工的条件下,识别船舶设备并获取其相关信息较为费时费力,且不够精确。考虑将深度学习应用于船舶设备信息识别,提出一种基于深度学习的船舶设备信息智能化识别模型,建模过程如下:(1)进行船舶设备图像预处理和图像样本标记[1],为生成训练/测试数据集提供基础;(2)建立卷积神经网络[2],构造模型函数,结合船舶设备信息识别特定场景,设计和设置模型基础参数,将生成的数据集输入模型进行训练和评估,并根据评估结果对模型进行网络框架修改、参数调整和结果测试;(3)对模型投入工业生产后的算法进行优化设计,满足工业生产对船舶设备信息智能化识别的需要。
船舶设备图像预处理过程如下:(1)通过仓库摄像头捕捉大量船舶设备图像,在捕捉时应注意图像清晰程度,筛除模糊图像;(2)将图像统一裁剪为相同大小并存储,图像裁剪需要进行批量处理,将其裁剪为合适尺寸的小图;(3)进行与视觉相关的图像处理,包括图像降噪、图像增强和图像阴影校正等,三者分别属于图像算术运算中的加法运算、减法计算和阵列乘除法运算。
为创建训练/测试数据集,应对样本图像中的船舶设备种类及其特征信息进行标记。需要特别注意的是:船舶设备种类繁多且部分船舶设备相似度较高。可使用标注工具Labelimg进行样本标记,如图1所示。
图1 Labelimg应用示例
在标记后生成与图像对应的txt文件,其规范如下:(1)每行均为一个目标;(2)类别序号由零索引(0)开始;(3)每行坐标格式为class x_center y_center width height;(4)框坐标须采用归一化的xywh格式(由0至1),若框以像素为单位,则将x_center和width除以图像宽度,将y_center和height除以图像高度。
在标记后生成与图像对应的可扩展标记语言(Extensible Markup Language, XML)文件,其规范如图2所示。
图2 与图像对应的XML文件示例
txt文件和XML文件均为样本标记文件,有利于进行有监督学习,但两者分别适用于YOLOv5网络结构和Keras网络结构。
进行数据集创建,将样本图像全部转化为张量,得到可输入模型的数据样本。为有利于加速模型收敛,进行数据标准化。将数据样本按8∶1的比例分为训练集和测试集。
卷积神经网络构建分为输入/输出层构建、卷积层构建、池化层[3]构建、全连接层[4]构建和激活函数与优化函数的辅助应用等。
卷积层一般包括多个卷积核[5],其中每个元素均对应1个权重因数和1个偏差量。为构建卷积层,先进行卷积运算提取特征图,将特征图通过激活函数的处理再输出。特征图和卷积核均以矩阵形式存在,可进行卷积计算。在卷积过程后会输出1幅新特征图,这需要卷积核和特征图进行多次卷积计算。卷积运算和卷积核滑动如图3所示。
图3 卷积运算和卷积核滑动示例
池化层实际是一种降采样过程,卷积层和池化层的作用与滤波器相似。池化作用是压缩特征图,有利于防止过拟合。池化函数分多种,常用的为最大池化和平均池化。最大池化过程如图4所示。
图4 最大池化过程示例
全连接层一般由线性部分和非线性部分组成。全连接层如图5所示。由图5可知:从input layer到hidden layer1实际已是一个完整的全连接层转换过程。
图5 全连接层转换示例
在构建卷积神经网络后,设计和设置模型的基础参数,并将生成的数据集输入模型进行训练和评估。采用成熟的YOLOv5网络作为基础模型,将创建的大量船舶设备样本数据集输入其中进行训练和评估,分别输出训练模式下的损失函数(loss)与准确率(accuracy)和评估模式下的损失函数(val_loss)与准确率(val_accuracy),如图6所示。由图6可知:在训练后的结果中,模型识别准确率可达80%~90%。这说明该方法可适用,但准确率仍有待提升。
图6 训练/评估模式下的损失函数和准确率
在训练后生成可用于船舶设备信息识别的卷积神经网络模型,根据评估模式下的损失函数和准确率,对模型进行结构和参数调整。调整方法:增加卷积层和卷积核的深度宽度,有利于提高模型准确率;将学习速度(learningrate)调整至最佳点,一般在初始训练时学习速度设置较大,需要一步一步地进行测试。通过不断调整网络结构和训练参数,使模型准确率达到期望值,最终生成基于深度学习的船舶设备信息智能化识别模型。将船舶设备图像测试数据输入模型,检验其识别结果是否符合真实,评定是否识别成功。基于深度学习的船舶设备信息智能化识别建模应用流程如图7所示。
图7 基于深度学习的船舶设备信息智能化识别建模应用流程
深度学习方法应用于工业生产的优势如下:(1)在模型成熟后可完全将生产人工智能(Artificial Intelligence,AI)化,无须手动即可准确识别;(2)单幅图像预测的识别时间在1 s内,大幅加快识别速度,提升船舶设备仓储管理效率;(3)模型通过数据集的增加进行更新和优化,变得更加准确,通过不断优化更加适用于当前场景。
在工业生产中的优化方法如下:
(1)将模型应用于船舶设备信息识别过程,收集仓库日常捕获的数据集,存储于云端。
(2)每隔一段特定时间,将这些在实际生产中捕获的船舶设备图像大数据再次投入模型训练,在样本量显著增加后,通过在训练和评估中调整模型结构和参数,生成新的模型。
(3)循环往复,进行模型的更新与优化,最终提高识别准确率。