舰船科学技术  2022, Vol. 44 Issue (11): 173-176    DOI: 10.3404/j.issn.1672-7649.2022.11.036   PDF    
大型船舶水线面视觉图像准确检测系统
钟思1, 李玉寒1, 罗笑南3, 唐宁1, 黄明毅2, 付书媛2     
1. 桂林电子科技大学 教学实践部,广西 桂林 541004;
2. 桂林电子科技大学 机电工程学院,广西 桂林 541004;
3. 桂林电子科技大学 计算机信息与安全学院,广西 桂林 541004
摘要: 为了保障航道及港口附近的海上交通安全,必须对航道或港口的大型船舶进行吃水线采集,一方面监测舰船的吃水深度,防止船舶出现搁浅等事故;另一方面监测港口和航道的使用状态,合理应对水位变化。目前最常用的大型船舶水线面检测方法为人工水尺检测,效率低、精度差。本文结合图像处理技术,设计了一种针对大型船舶的水线面图像准确检测系统,从系统的基本构成、水线图像的采集、图像校正、图像分割以及软件程序开发等方面进行详细研究。
关键词: 水线检测     图像分割     软件程序     灰度图    
Design of accurate detection system for waterline visual image of large ship
ZHONG Si1, LI Yu-han1, LUO Xiao-nan3, TANG Ning1, HUANG Ming-yi2, FU Shu-yuan2     
1. Teaching and Practice Department, Guilin University of Electronic Technology, Guilin 541004, China;
2. College of mechanical and electrical engineering, Guilin University of Electronic Technology, Guilin 541004, China;
3. School of Computer Science and Information Security, Guilin University of Electronic Technology, Guilin 541004, China
Abstract: In order to ensure the maritime traffic safety near inland waterways and ports, it is necessary to collect the waterline of large ships in waterways or ports. On the one hand, monitor the draft of ships to prevent accidents such as grounding. On the other hand, monitor the use status of ports and waterways and reasonably respond to water level changes. At present, the most commonly used waterline detection of large ships is manual draft detection, which has low efficiency and poor accuracy. Combined with image processing technology, this paper designs an accurate detection system of waterline image for large ships, and makes a detailed research on the basic composition of the system, the acquisition of waterline image, image correction, image segmentation and software program development.
Key words: waterline detection     image segmentation     software program     grayscale image    
0 引 言

为了满足大型散货船、运输船的通航和系泊安全性,航道和港口对通航船体的吃水深度有明确的规定,防止航道和港口出现船舶搁浅等事故。港口和航道管理部门通过采集船舶的吃水线获取船舶吃水深度,传统的采集方法是人工水尺测量,这种方法效率低,精度差。

本文建立一种大型船舶水线面视觉图像检测系统,利用计算机视觉技术和图像处理技术,高效、准确的获取船体的吃水深度[1]

1 大型船舶水线面视觉图像准确检测系统的整体设计

本文搭建的船舶水线面视觉图像检测系统主要由硬件系统和软件系统构成,结构如图1所示。

图 1 船舶水线面视觉图像检测系统结构图 Fig. 1 Structure diagram of ship waterline visual image detection system

硬件部分包括线激光发射器、光源控制器、工业相机、控制板、编码移动单元等。

1)线激光发射器

线激光发射器负责向船体与水面的结合部分发射等宽线状激光,激光发射的方向、宽度和强度由光源控制器来确定。

2)工业相机

工业相机的选择不仅直接决定了船舶水线图像采集的分辨率、图像质量等,也直接决定了检测图像的工作模式。本文在设计时选用数字工业相机,视频制式为PAL制,相机分辨率为1000pixcel(像素),帧率在10帧/s。

3)编码移动单元

由于船舶不论是在航道还是在港口中,始终处于不停的运动过程中,因此,在设计硬件系统时采用编码移动单元,该单元通过采集被测船体与工业相机的相对运动,根据系统的空间位姿信息、标定信息进行姿态调整,提高检测系统的工作精度。

船舶水线面视觉图像检测系统的软件部分主要功能包括深度图像生成、图像处理、异常检测等。

1)深度图像生成

深度图像是指检测系统通过工业相机捕捉的吃水线图像,并根据系统的标定信息进行图像区域的三维信息的计算,图像三维等信息的核算采用单位时间内的信息完成。

2)图像处理

图像处理的作用包括噪声的过滤、吃水线图像的增强、吃水线特征的提取等,在搭建检测系统的软件程序时,需要配置图像滤波器等应用程序[2]

3)异常检测

异常检测功能是指软件程序识别系统的运行状态信号,及时发现系统运行过程的故障问题,并触发报警装置。

2 大型船舶水线面视觉图像准确检测系统设计 2.1 船舶水线面图像的获取和标定

船舶吃水线面的图像采集是一种空间的图像转换过程,将三维空间的坐标转移到二维像素坐标系中,因此,研究图像采集过程的空间关系转换、图像标定有助于提高图像的采集精度。

建立检测系统视觉图像的空间坐标系如图2所示。

图 2 检测系统视觉图像的空间坐标系 Fig. 2 Spatial coordinate system of visual image in detection system

图中,世界坐标系为o-xyz,相机坐标系为O-XYZ,目标物体从世界坐标系转换至相机坐标系的公式为:

$ \left[ {\begin{array}{*{20}{c}} {{x_c}} \\ {{y_c}} \\ {{z_c}} \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\boldsymbol{R}}&{\boldsymbol{T}} \\ 0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{x_w}} \\ {{y_w}} \\ {{z_w}} \\ 1 \end{array}} \right],$

其中:R为旋转矩阵,是一个3阶矩阵;T为平移矩阵,也是3阶矩阵。

由于图像坐标系的轴与相机坐标系的O-XY平行,根据线性投影关系可得:

$ \left[ \begin{gathered} {x_i} \hfill \\ {y_i} \hfill \\ \end{gathered} \right] = \frac{{{d_0}}}{{Zc}}\left[ \begin{gathered} {X_C} \hfill \\ {Y_C} \hfill \\ \end{gathered} \right]。$

式中: $ \left[ \begin{gathered} {x_i} \hfill \\ {y_i} \hfill \\ \end{gathered} \right] $ 为图像平面中P点的投影坐标; $ \left( {{X_C},{Y_C},{Z_C}} \right) $ 为相机坐标系中点的坐标; $ {d_0} $ 为两坐标系的原点距离。

定义工业相机的焦距为 $ f $ ,可得:

$ \left[ {\begin{array}{*{20}{c}} {{x_i}} \\ {{y_i}} \\ 1 \end{array}} \right] = \frac{1}{{{z_c}}}\left[ {\begin{array}{*{20}{l}} f&0&0&0 \\ 0&f&0&0 \\ 0&0&1&0 \end{array}} \right] ,$

经过上述变换过程,三维空间的点P已经转换为二维平面的点 $ {P_i} $ ,继续将二维平面的点 $ {P_i} $ 转换为像素坐标,转换矩阵为:

$ \left[ {\begin{array}{*{20}{c}} {{x_p}} \\ {{y_p}} \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\dfrac{1}{{dx}}}&0&{{u_0}} \\ 0&{\dfrac{1}{{dy}}}&{{v_0}} \\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{x_i}} \\ {{y_i}} \\ 1 \end{array}} \right]。$

式中: $ \left( {{x_p},{y_p}} \right) $ 为像素平面中点的坐标; $ dx $ $ dy $ 为像元尺寸长度; $ {u_0} $ $ {v_0} $ 为像素平面坐标系的偏移量。

船舶吃水线面的图像采集时,真实模型与理论模型往往存在一定偏差,图像的径向畸变用下式计算:

$ \left\{ {\begin{array}{*{20}{l}} {{x^\prime } = x\left( {1 + {k_1}{r^2} + {k_2}{r^4} + {k_3}{r^6}} \right)} ,\\ {{y^\prime } = y\left( {1 + {k_1}{r^2} + {k_2}{r^4} + {k_3}{r^6}} \right)} ,\end{array}} \right. $

图像的切向畸变用下式表示:

$ \left\{ {\begin{array}{*{20}{l}} {{x^\prime } = x + 2{p_1}xy + {p_2}\left( {{r^2} + 2{x^2}} \right)} ,\\ {{y^\prime } = y + 2{p_2}xy + {p_1}\left( {{r^2} + 2x{y^2}} \right)} 。\end{array}} \right. $

其中: $ {k_1}/{k_2}/{k_3} $ 为图像径向的畸变系数; $ {p_1}/{p_2} $ 为切向的畸变系数。

2.2 船舶吃水线面图像检测系统的动态矫正

检测系统在使用工业相机进行吃水线面图像采集时,受到海浪和船舶的晃动的影响,图像采集的精度会下降,本文使用动态模板配准方法提高图像采集的精度[3],其原理图如图3所示。

图 3 图像的动态模板配准方法原理图 Fig. 3 Schematic diagram of image dynamic template registration method

图像的动态模板配准主要分为2个环节:

1)模板图像帧的获取

从工业相机采集的船舶吃水线面图像中选取某一个像素域,记为 $ {M_0} $ ,像素域的起始像素为 $ ({x_0},{y_0}) $

2)动态模板帧的匹配

选取图像帧 $ {f_1} $ ,在该图像帧中搜索与 $ {M_0} $ 匹配度最高的区域,记为 $ ({x_1},{y_1}) $

3)计算相似度

像素相似度计算公式如下:

$ S(i,j) = Max\left( {\sum\limits_{m = 1}^m {\sum\limits_{n = 1}^n {{{\left[ {{S_{ij}}(m,n) - {T_{ij}}(m,n)} \right]}^2}} } } \right) ,$

对图像的第二帧 $ {f_2} $ 进行匹配变换,如下:

$ {f_2}(i,j) = {f_1}\left( {i - \left( {{x_1} - {x_0}} \right),j - \left( {{y_1} - {y_0}} \right)} \right) 。$

4)重复上述步骤,直至完成第k+1个模板的动态匹配,实现图像的配准。

2.3 舰船吃水线面图像的灰度平滑处理研究

图像灰度的平滑处理有利于提高图像识别和特征提取的准确度,灰度平滑处理技术包括平均值平滑、中值平滑、高斯平滑等,本文使用高斯平滑技术进行船舶吃水线面图像的灰度平滑处理[4]

二维灰度图像的高斯平滑算子为:

$ G(x,y) = {e^{ - \frac{{{x^2} + {y^2}}}{{2{\sigma ^2}}}}} 。$

其中: $ (x,y) $ 为图像的像素; $ \sigma $ 为高斯概率分布的标准差,高斯平滑又可以表示为:

$ G(x,y) = \frac{1}{{2\text{π} {\sigma ^2}}}{e^{ - \frac{{{x^2} + {y^2}}}{{2{\sigma ^2}}}}}。$

图4为某像素区域的高斯平滑处理示意图。

图 4 某像素区域的高斯平滑处理示意图 Fig. 4 Schematic diagram of Gaussian smoothing of a pixel region
2.4 基于灰度阈值的船舶吃水线面图像分割

图像分割可以将含有目标物体的图像选取出来,降低图像处理的工作量,常用的图像分割方式是阈值分割法,又细分为整体阈值法、动态阈值法等。本文使用整体阈值法进行图像分割,过程如下:

由于彩色图像的每一个像素均由红(R)、绿(G)、蓝(B)3个分量组成[5],将彩色图像进行加权平均,得到像素的灰度值,如下式:

$ g(i,j) = \frac{{{{{W}}_{{R}}} \times {{R}}(i,j) + {{{W}}_{{G}}} \times {{G}}(i,j) + {{{W}}_{\text{B}}} \times {{B}}(i,j)}}{3} 。$

式中: ${{{W}}_{\text{R}}}$ ${{{W}}_{\text{G}}}$ ${{{W}}_{\text{B}}}$ 分别为图像红(R)、绿(G)、蓝(B)分量的权值。

定义图像的灰度离散函数为:

$ p\left( {{r_k}} \right) = \frac{{{n_i}}}{n},k = 0,1,\cdots ,L ,$

式中: $ {r_k} $ 为图像中的k级灰度值; $ {n_i} $ 为具有该灰度等级的像素个数; $ n $ 为图像的像素总个数。

定义图像灰度直方图的变换函数为:

$ f = \int_{0}^{T} {p\left( w \right)} {\rm{d}}w,$

该变换函数在定义域内单调递增,当定义域为 $ \left[ {0,1} \right] $ ,值域取值范围也为 $ \left[ {0,1} \right] $

定义图像灰度阈值为:

$ {P_s}(s) = {\left. {{P_r}(r) \cdot \frac{{{\rm{d}}r}}{{{\rm{d}}s}}} \right|_{r = f(s)}}。$

根据图像灰度阈值进行图形的灰度直方图计算,并得到灰度直方图的分割结果。

图5为基于灰度阈值算法的图像分割示意图。

图 5 基于灰度阈值算法的图像分割示意图 Fig. 5 Schematic diagram of image segmentation based on gray threshold algorithm
3 大型船舶水线面视觉图像准确检测系统软件设计与应用

使用Microsoft Visual Studio 2018作为开发工具,开发船舶吃水线面视觉图像的准确检测系统,系统使用的图像处理库为Opencv2.8,包含大量的C函数和图像接口,能够实现人机互动、图像处理等功能,同时也能兼容多种类型的工业相机。

船舶吃水线面视觉图像的准确检测系统的人机界面采用MFC类库[6],为用户提供各类API控件,图6为系统的工作流程。

图 6 吃水线面视觉图像检测系统工作流程 Fig. 6 Workflow of waterline visual image detection system

图7为船舶吃水线面视觉图像检测系统的识别效果图。

图 7 吃水线面视觉图像检测系统的识别效果图 Fig. 7 Recognition effect diagram of waterline visual image detection system
4 结 语

本文主要解决的问题是大型船舶在港口和航道的吃水线检测问题,介绍吃水线面视觉图像检测系统的整体设计,分别针对吃水线面视觉图像检测的图像标定、图像动态矫正、图像分割、灰度平滑处理等进行详细描述,并基于VS2018平台开发了相应的软件程序。

参考文献
[1]
王红英, 张奇志, 周亚丽. 基于视觉的藻类图像识别系统的设计与实现[J]. 信息通信, 2016(1): 3.
[2]
彭将辉, 冉鑫. 基于图像处理的船舶吃水线检测方法[J]. 中国水运:下半月, 2012(6): 2.
[3]
陈紫鹏, 李威, 卢文超, 等. 基于机器视觉的带钢表面缺陷检测系统中图像处理方法设计研究[J]. 南方农机, 2020, 51(22): 2.
[4]
张方超, 董振, 张栋, 等. 基于图像视觉的垃圾分类机器人识别控制系统算法设计[J]. 电子测量技术, 2019, 42(20): 5.
[5]
孟特, 李富才, 刘邦彦, 等. 基于RGB-D图像的视觉SLAM算法研究[J]. 青岛大学学报:自然科学版, 2022, 35(1): 7.
[6]
张俊杰, 丁淑艳, 李伦波, 等. 基于视觉显著性的无人车图像检测及分割方法 2017年2月14日[J]. 计算机工程与应用, 2017.