基于深度学习技术的船舶管件识别系统
2022-05-17胡敏
胡敏
中船第九设计研究院工程有限公司 上海 200090
引言
船舶行业是传统制造行业,为了识别相应的管件,并且在管件加工流程中有效跟踪记录。对此本文提出一种新的方式,在每一段管件上刻上钢印作为对此管件的唯一标识,通过开源的计算机视觉库(Open Source Computer Vision Library,OpenCV)进行图像预处理,然后通过机器视觉领域的文字识别(optical character recognition,OCR)相关技术,识别出此零件上的数字序号标识,以此与数据库现有数据匹配。该方法可有效识别各管件信息,跟踪管件生产加工状态,提高车间管理效率。
1 总体设计
本文根据船厂生产制造特点,通过现场采集管件表面钢印信息,将这些样本数据划分为测试集与训练集,上传到上层的船舶管件智能识别系统,进行模型的深度迁移学习。训练好的模型部署应用后可通过船厂日常数据进一步学习和优化。该系统框架如下:
图1 船舶管件智能识别系统总体设计
2 图像预处理
在船舶行业管件制造过程中,管件的施工过程﹑搬运过程,以及钢铁的自然氧化生锈都会对管件表面带来一定的磨损,因此我们在现场拍摄,采集图片的过程中,我们往往很难得到一个完全无杂质的高清图片,即使我们能取得船舶管件钢印的高清图像,但在现实的施工过程中,可能随时需要对船舶管件钢印信息进行现场识别读取管件信息,因此我们无法保证管件在施工全过程中都是处于无磨损﹑无氧化生锈的高清图像。在船舶管件钢印图像分析中,图像质量的好坏直接影响识别算法的设计与效果的精度,因此在船舶管件钢印图像分析(特征提取﹑分割﹑匹配和识别等)前,需要进行预处理。综上分析,我们需要一定的图像预处理技术去解决这一问题。
结合船舶行业管件的生产过程,我们对钢印图像以下:去噪处理﹑二值化处理﹑倾斜矫正﹑边缘检测,消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性﹑最大限度地简化数据,从而改进特征提取﹑图像分割﹑匹配和识别的可靠性。
2.1 去噪处理
现实中的船舶管件行业图像在数字化和传输过程中常受到成像设备与外部环境噪声干扰等影响,称为含噪图像或噪声图像,噪声是图像干扰的重要原因。降低管件图像噪声不仅可以使图像更加清晰,而且可以突出图像的感兴趣区域,易于识别。本文采用OpenCV技术实现降噪处理。
2.2 二值化处理
钢印图像为彩色船舶管件图像,为了将目标区域背景分类,需要进行二值化处理。分类后图像变为黑白,分辨图像中的图形和文本,便于后续将文本信息提取出来[1]。图像中每个像素可以由0(黑)到255(白)的亮度值表示。0-255之间表示不同的灰度级。本文对管件钢印图像的二值化处理,采用图像二值化算法中的全局阈值方法与局部阈值方法。
2.3 倾斜校正
船舶管件在输送带上运动或者仓库储存时,经过高速摄像机拍摄照片可能会遇到管件放置不规范的问题,导致拍摄的照片歪斜,不平行于水平线。因此预处理时需要将扭曲的原始图片进行校正。本文采用的倾斜角度方法为基于投影的方法。
基于投影的矫正方法利用管件钢印图像水平方向和垂直方向的投影特征来进行倾斜判断。主要用到投影的方差和均方差﹑投影特征矢量﹑梯度方向场等统计特性。在管件钢印图像投影中,一条直线沿着它的发现方向投影最长,沿着水平方向投影最短,此称之为Radon变换[2]。
2.4 边缘检测
因为船舶管件子图像的边缘包含了用于识别的有用信息,所以边缘检测是船舶管件图像分析和模式识别的主要特征提取手段。边缘具有方向和幅度两个特征,沿边缘走向像素值变化比较平缓;而垂直与边缘走向则像素值变化比较剧烈,而这种剧烈可能呈现阶跃状,也可能呈现斜坡状。边缘上像素值的一阶导数较大;二阶导数在边缘处值为零,呈现零交叉。
Marr和Hildreth[3]提出的零交叉边缘检测是一种十分有效的方法。该方法认为图像强度的突变将在一阶导数中产生一个峰或等价于二阶导数中产生一个零交叉(Zero - Crossing)且图像中的强度变化是以不同的尺度出现的,故应该用若干大小不同的算子才能取得良好的检测效果。本文采用此方法对管件钢印图像边缘检测。
3 检测识别方法
考虑到船舶行业现场施工环境复杂,采集的图片质量容易受到影响,我们必须选择合理的模型方法来提高图像特征提取的精度。生产管件堆放在一起﹑在管件的搬运过程中管件钢印都很容易受到磨损,使得我们在现场识别过程中容易造成编码模糊的情况,除此之外,在图像采集时,图片的质量也会受到周围光线或者拍摄人自身的因素影响,导致图片质量较差不够清晰影响特征提取的精度,最终给我们的预测算法模型识别带来阻碍。因此我们再选择特征提取算法时必须要选择模型泛化能力强,迁移能力好的算法模型。
3.1 图像特征提取方法
本文选择基于CNN(Convolutional Neural Networks)的神经网络作为图像的特征提取算法,得益于CNN强大的学习能力,配合大量的数据可以增强特征提取的鲁棒性,使得模型的泛化能力大大提升,即使管件上的个别编码字符被磨损或者图片呈现模糊不清的情况,也能起到很好的预测结果[4]。
3.2 文字检测与识别方法
传统文字识别方法都是通过识别每个单字符以实现全文的识别,这一过程导致了上下文信息的丢失。因此引入上下文的信息成为提升条目准确率的关键。从深度学习的角度出发要引入上下文这样的序列信息,循环神经网络和长短期记忆等依赖于时序关系的神经网络是理想的选择[5]。这种算法的优点在于,假如我们的船舶管件钢印是由13位数字组成,但在施工搬运过程中,使得其中两位编码符号磨损而变得模糊不清,此时传统的文字监测与识别方法就无法识别正确的管件信息进而影响施工作业。而依赖于时序关系的神经网络则可以根据编码的前后字符排列顺序以及去过管件钢印的习惯去预测出磨损的字符,这样即使管件钢印中有部分字符磨损,我们依然可以最大限度地预测出该管件的真实编码信息,从而对管件进行正确的标记和作业。因此本文在Tesseract OCR技术基础上,结合基于神经网络的带有时序关系的算法,作为船舶行业管件钢印检测与识别算法。
4 识别系统构建
4.1 识别系统架构
该系统框架中测试集与训练集模块均包含了前文中所提到的船舶管件钢印图像预处理技术。经过预处理的船舶管件钢印图像才最终称为我们的样本数据,将样本数据按照7︰3的比例划分为训练集与测试集。通过训练集,能够使模型学习数据的规律,最终训练出模型的最佳参数状态,在此参数状态下观察模型在未知数据即测试集上的表现结果。模型在测试集上的准确率接近在现实船舶行业管件生产制造过程中的管件钢印识别准确率。
船舶管件钢印识别系统设计时采用msSQL 2016作为数据库服务器,并使用ABP开发框架进行服务端开发,以此提高服务端的稳定性和功能完整性。系统模块功能如表1所示。
4.2 识别系统测试
本文基于船厂提供的128张有效船舶管件钢印图片进行测试。字符识别的正确率受前期图片处理的程度和字符库的影响,训练集中包含英文﹑数字两种字符,为了验明两种字符的单独测试效果,本文从英文字符正确率﹑数字字符正确率和全部字符正确率三个方向进行验证。
通过测试显示,英文字符的识别准确率达到96.5%,数字字符的准确率为97.4%,全部字符构成的钢印识别准确率达到了97.1%。这说明我们的系统,从船舶管件钢印图片样本采集到数据预处理,再到特征提取以及最终的字符监测与识别都是成功的,也证明了我们结合船舶管件生产场景后,在系统各个环节中所选用的算法符合实际情况,具有较强的现实意义。
5 结束语
本文为了提高船舶制造过程中管件的管理效率,设计实现了船舶管件智能识别系统。首先采用 OpenCV技术对钢印图像进行必要的预处理,如色彩空间转换﹑钢印图像的降噪以及钢印图像阈值化处理等操作,在此基础上运用Faster RCNN﹑RNN﹑LSTM﹑Tesseract OCR技术,对船舶管件进行钢印识别。该系统较好的地实现了船舶管件钢印的智能识别,极大地减少了工作人员的工作负担,为船舶管件的智能管理在船厂的实际应用探明解决路径。