舰船科学技术  2022, Vol. 44 Issue (4): 144-147    DOI: 10.3404/j.issn.1672-7649.2022.04.030   PDF    
机器视觉下的船舶吃水线自动定位系统
葛圣彦     
江苏航运职业技术学院 航海技术学院,江苏 南通 226010
摘要: 船舶吃水检测传统的方法采用人为测量船舷处的水尺,这种测量方法不仅受到海浪高低起伏的影响,导致观测结果误差大,观测人员还必须进行舷外作业,存在着作业风险。因此,提升船舶吃水线自动定位和检测技术有重要的应用前景。设计一种基于机器视觉技术的船舶吃水线自动定位系统,分别从吃水线自动定位系统的整体方案设计、硬件设计、软件环境、船舶吃水线图像的处理原理等方面进行研究,取得了较好的吃水线定位效果。
关键词: 机器视觉     吃水线检测     自动定位     软件环境     硬件设计    
Design of ship waterline automatic positioning system based on machine vision
GE Sheng-yan     
Jiangsu Shipping College, Marine Technical Institute, Nantong 226010, China
Abstract: The traditional method of ship draft detection uses man-made measurement of the draft gauge on the ship's side. This measurement method is not only affected by the fluctuation of sea waves, resulting in large error of observation results. The observers must also carry out outboard operation, which has operation risk. Therefore, it has important application prospects to improve the automatic positioning and detection technology of ship waterline. In this paper, a ship waterline automatic positioning system based on machine vision technology is designed. The overall scheme design, hardware design, software environment and ship waterline image processing principle of the waterline automatic positioning system are studied in detail, and a better waterline positioning effect is obtained.
Key words: machine vision     waterline detection     automatic positioning     software environment     hardware design    
0 引 言

船舶吃水特性是一项非常重要的安全性能指标,大型运输船舶在航道和港口通行时,采集船舶吃水线的位置不仅能够了解当前船舶的浮沉状态,判断船舶是否有碰撞和搁浅的危险。同时,采集船舶的吃水状态还可以有效地控制船舶的运动特性,使船舶保持在一个良好能量消耗的运行状态,从而提升船舶的能量利用率[1]

传统的船舶吃水线检测以人工检测为主,配合船舶的水尺进行检测,为了提高船舶吃水线数据的精度,需要不止一次的进行水尺测量,通过大量的测量数据提高准确度。这种船舶吃水线检测方法存在明显的缺点:1)需要耗费大量的人力成本,增加了人员作业的风险;2)吃水线数据的准确性不高;3)人工采集数据的效率低,难以满足日益密集的海上航线船舶检测需求。因此,迫切需要一种高效、精确的船舶吃水线自动定位方法。

本文介绍一种新型吃水线自动定位技术,其核心是机器视觉和图像处理,分别从船舶吃水线自动定位系统的原理、组成、图像处理技术等进行研究。

1 基于机器视觉的船舶吃水线自动定位系统设计

船舶吃水线自动定位系统的总体设计如图1所示。

图 1 船舶吃水线自动定位系统的总体设计 Fig. 1 Overall design of automatic positioning system for ship waterline

1)图像采集系统

基于机器视觉的图像采集子系统是获取船舶吃水线图像的模块,主要通过2种途径获取船舶吃水线图像。一是利用视频处理技术,将港口和航道内监控视频的帧图像提取出来,这种图像获取方式效率相对较高,但图像的清晰度取决于监控视频摄像机的分辨率,往往精度较低;二是利用专门的视频、图像采集器获取船舶吃水线图像,常用的视频图像采集器为CCD工业相机。

2)图像识别系统

图像识别系统是船舶吃水线定位系统的核心,通过内在的图像处理和识别算法,将工业相机采集的图像数据进行特征提取,最后获取较准确的船舶吃水线信息。在设计图像识别子系统时,主要应用边缘检测等图像识别算法,获得了精度较高的船舶吃水线图像处理效果。

3)数据运算和存储系统

船舶吃水线自动定位系统的图像数据量较多,不仅对于系统的数据处理性能有较高的要求,也对系统的数据存储有较高的要求。结合计算机硬件设备的升级,提高了吃水线自动定位系统的数据运算和处理能力。

2 硬件设计 2.1 机器视觉传感器

机器视觉传感器是吃水线自动定位系统的数据采集装置,选用的视觉传感器为CCD工业相机[2],CCD工业相机是一种电荷耦合图像传感器,也是目前应用非常广泛的图像采集装置。CCD工业相机实现了模拟信号和数字信号的转换,通过图像采集卡将单帧和连续帧图像序列发送至计算机。

将CCD工业摄像机分辨率选取为500×750,相机的像素当量为5 mm/pixel,相机的视场高度为2 500 mm,在高度方向上的像素个数为:

$ pixe{l_h} = \frac{{2\;500\;{\rm{mm}}}}{{5\;{\rm{mm}}}} = 500。$

表1为CCD工业相机的参数。

表 1 工业相机参数表 Tab.1 Industrial camera parameter table

选用的CCD工业相机型号为XC-EI30,其成像原理如图2所示。

图 2 XC-EI30工业相机成像原理 Fig. 2 Imaging principle of XC-EI30 industrial camera
2.2 数据存储器设计

为了保证船舶通航的安全性,防止出现船舶搁浅等交通事故,必须要对大量的船舶进行吃水线数据的采集,且视频、图像数据的处理过程同样需要产生大量的过程数据,因此,对吃水线自动定位系统的数据存储有较高的要求。

采用的数据存储器为Oracle数据库,之所以选择Oracle数据库,主要原因包括:1)Oracle数据库具有完整的数据存储、管理、调用功能;2)该数据库是一个关系数据库,并采用了分布式的数据处理功能,数据存储容量非常大;3)具有很好的可移植性,数据库用户可以在不同的计算机底层平台上切换,不影响数据的存储。

在船舶吃水线自动定位系统中,Oracle数据库[3]的数据存储包括本地存储和远程存储,从而保证了视频和图像数据的安全性,系统的数据存储流程如图3所示。

图 3 吃水线自动定位系统的数据存储流程图 Fig. 3 Data storage flow chart of waterline automatic positioning system
2.3 数据运算器及电源电路设计

船舶吃水线自动定位系统的数据运算器采用工控机为核心,配合设备接口电路和电源电路等共同实现。工控机选型为华硕X90J电脑,系统配置的处理器为英特尔I5-5000处理器,具有16 G内存和500 G的数据存储空间。

3 软件程序及图像处理技术 3.1 软件程序

在船舶吃水线自动定位系统中,软件程序是实现图像识别和特征提取的关键,也是自动定位系统面向操作人员的接口。船舶吃水线自动定位系统的软件程序如图4所示。

图 4 船舶吃水线自动定位系统的软件程序 Fig. 4 Software program of automatic positioning system for ship waterline

1)用户界面模块

用户界面模块集成了与用户操作有关的软件程序,吃水线自动定位系统的用户界面中集成了各类操作按钮,比如图像显示、图像存储、历史数据调取、警报功能等。

2)图像采集程序

图像采集程序的功能是进行CCD工业相机的控制,确定工业相机的启停机和采集过程。同时,图像采集程序负责CCD图像数据的格式转换[4],将模拟量转化为数字量,发送至工控机中。

3)字符识别程序

字符识别程序是吃水线自动定位系统的软件核心,该程序模块集成了视频/图像处理程序,位于系统的工控机中。由于船舶吃水线图像中存在着较多的噪声信号,字符识别程序在进行图像处理时包括预处理阶段和处理2个阶段,预处理阶段主要负责去除噪声,处理阶段主要负责图像识别。

4)位置识别程序

该程序是吃水线位置识别的关键,最终将船舶吃水线位置信息输出到显示界面。

3.2 基于边缘检测技术的吃水线图像自动定位技术

由于船舶吃水线图像中水线的色彩特性与海水透明度有关,当水体较明亮时,水线的边缘较不明显,图像识别效果较差。因此,采用边缘检测配合Radon变换、灰度检测的算法进行图像的处理。

船舶吃水线图像的处理,需要首先将吃水线彩色图像处理为灰度图像,然后进行图像的配准,关键环节包括:

步骤1 Radon变换

Radon变换是将复杂图像转换为某一方向的投影,这种变换方法在图像边缘较模糊时有非常多的应用。

假定船舶吃水线图像为 $ \left( {x,y} \right) $ ,吃水线边缘近似为一条曲线,表示为:

$ f = x\cos \theta + y\sin \theta {\text 。} $

将曲线的某一点在Radon空间中投影,得到投影点为 $ k\left( {\rho ,\theta } \right) $ ,可得吃水线图像的Radon变换为:

$ R\left( {\rho ,\theta } \right) = \iint\limits_R {k\left( {x,y} \right)\delta \left( {x\cos \theta + y\sin \theta } \right){\rm d}x{\rm d}y} ,$

其中,R为船舶吃水线图像的平面, $ k\left( {x,y} \right) $ 为灰度值, $ \delta $ 为Radon系数[5] $ \theta $ 为投影角度。

图5为图像的Radon变换法示意图。

图 5 图像的Radon变换法示意图 Fig. 5 Schematic diagram of Radon transform method of image

步骤2 灰度检测

船舶吃水线图像的灰度检测基于Hough变换理论。

首先,定义图像的参数空间为 $ H\left( {{\rho _k},{\theta _k}} \right) $ ,灰度统计空间为 $ L\left( {{\rho _k},{\theta _k}} \right) $ ,将空间初始化如下:

$ \begin{gathered} H\left( {{\rho _k},{\theta _k}} \right) = 0\;\;,k = 0,1,\cdots,m {\text ;} \\ L\left( {{\rho _k},{\theta _k}} \right) = 0\;\;,k = 0,1,\cdots,m 。\hfill \\ \end{gathered} $

然后,根据船舶吃水线图像的灰度特性,计算图像的灰度特征值为:

$ \begin{gathered} H\left( {{\rho _k},{\theta _k}} \right) = {\rho _k} - 1\;\;,k = 0,1,\cdots,m {\text ;} \\ L\left( {{\rho _k},{\theta _k}} \right) = {\rho _k} + 1\;\;,k = 0,1,\cdots,m{\text 。} \end{gathered} $

最后,将图像的灰度特性值归一化处理,得到图像的灰度检测模型为:

$ F\left( {{\rho _k},{\theta _k}} \right) = \frac{{H\left( {{\rho _k},{\theta _k}} \right)}}{{L\left( {{\rho _k},{\theta _k}} \right)}},k = 0,1,\cdots,m 。$

经过Radon变换和灰度检测后,船舶吃水线图像的边缘变得明显,图6为船舶吃水线图像的灰度检测效果。

图 6 船舶吃水线图像的灰度检测效果 Fig. 6 Gray detection effect of ship waterline image
3.3 基于机器视觉的船舶吃水线自动定位系统验证

基于VISUAL STUDIO 2015开发环境[6],结合Open CV计算机视觉库,设计一种吃水线自动定位软件程序。

OpenCV[7]是一个跨平台的计算机视觉库,提供了很多开放源代码和图像处理函数,采用C和C++进行编程,同时也提供了丰富的Python等其他程序语言的接口。

本文采集了大量的船舶吃水线图像数据,分别在自动定位系统(采样个数为40个,曲线B)和VISUAL STUDIO 2015开发环境(采用个数为10个,曲线A)中进行了吃水线识别的对比,分别获得了2种平台的定位误差,如图7所示。

图 7 2种平台的吃水线定位误差曲线 Fig. 7 Waterline positioning error curves of two platforms
4 结 语

机器视觉技术在进行图像采集、分析时具有非常广阔的应用前景,结合机器视觉技术,设计一种船舶吃水线自动定位系统,分别对系统的硬件软件、图像处理算法等进行了介绍。

参考文献
[1]
柳明, 吴丹. 船舶自动识别系统的应用与探讨[J]. 内江科技, 2008, 29(7): 134. DOI:10.3969/j.issn.1006-1436.2008.07.001
[2]
马瑞鑫, 杨凯, 尚东方. 基于船舶自动识别系统和高频地波雷达的船舶轨迹数据融合[J]. 中国水运 (下半月), 2014, 14(5): 4.
[3]
郑道昌. 船舶航行自动避让的研究——船舶自动避让系统的组成及相关数据的处理[J]. 中国航海, 2002(1): 5. DOI:10.3760/cma.j.issn.1009-6906.2002.01.001
[4]
向泽锐, 朱先辉. 一种船舶自动识别系统B级船载设备的结构创新设计[J]. 电讯技术, 2011, 51(2): 6.
[5]
何崇德. 船舶动力定位系统的应用与实践[J]. 中国造船, 2004, 45(B12): 21.
[6]
姜楠, 姜伟棣, 王连玉. 基于嵌入式计算机的船舶定位系统研究[J]. 海洋技术, 2007, 26(3): 85-86.
[7]
王科敏, 谈宏华, 宋学贤, 等. 内河船舶悬浮定位系统的设计[J]. 机床与液压, 2013, 41(16): 105-108.