基于图像处理的自动吃水刻度读取外文翻译资料

 2022-08-09 15:50:35

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


基于图像处理的自动吃水刻度读取

摘要

在海上运输中,船舶吃水刻度调查是确定散装货物数量的一种方法。基于计算机图像处理的自动吃水刻度读取早已被提出。然而,当影像序列具有除吃水刻度标记和船体之外的许多其他区域时,常规的吃水刻度标记分割可能会失败,并且估计的水线固有地高于真实的水线标记。为了解决这些问题,我们提出了一种自动吃水刻度读取方法,该方法使用形态学运算来检测吃水标记并通过Canny边缘检测和鲁棒估计来估计每一帧的水线。此外,我们模拟了测量员的吃水刻度读取过程,来了解托运人和收货人。在拖船的实验中,该方法的吃水刻度读数误差小于1cm,显示了该方法的优点。这还显示出在现实场景中已经实现了准确的吃水刻度读取。

关键词:吃水刻度读取;边缘检测;图像处理;机器视觉;海上运输;形态学运算

1.绪论

在海上运输中,船舶吃水刻度调查是确定散装货物数量的一种方法。为了减少货物短缺索赔,吃水刻度的读取必须对托运人和收货人准确且公平。吃水刻度的读取通常由专业的测量师进行,但由于是基于目视观察,因此可能不准确。此外,如果测量师并非独立于托运人和收货人,则吃水刻度的读取就可能不公平。

吃水刻度自动读取系统的使用提供了公平的读取。使用诸如激光距离传感器[1]和液位光学传感器[2]的自动且精确的吃水刻度读取系统已经出现。然而,要阅读吃水刻度,船舶需要配备感应器。为了便于吃水刻度的读取,需要低成本和高灵活性。

因此,已经提出了几种基于图像的吃水刻度读取系统,以实现读取刻度的低成本和高灵活性。Okamato[3]等人提出了一种基于图像的吃水刻度读取方法,该方法使用了Otsu的二值化方法[4]和帧差异技术。假设整个观察到的图像可以大致分为两类,即吃水刻度和船体,则该方法通过Otsu的二值化方法对吃水刻度进行分割。然而,有些时候会失败,因为几乎所有观察到的图像都包括除吃水刻度和船体之外的其他区域,例如海面和阴影。该方法取两个连续帧的差值,对二值差图像进行累加,然后从由累计的二值差图像分割的海面估计水线。因此,估计的水线在观测时间内趋于最高值。Ran[5]等人提出了一种在应用Canny边缘检测[6]后使用Hough变换估算水线的方法。当在海面检测到其他线条,例如船体的水下投影时,这种方法就失败了。

在本文中,我们提出了一种基于图像的吃水刻度读取方法,该方法使用水尺标记分割并估计每一帧的水线。为了提高吃水刻度分割的准确性,我们使用形态学运算来检测吃水刻度,并对吃水刻度周围的局部图像进行二值化处理。由于可以将这些局部图像很好地分类为吃水刻度和船体,因此可以使用Otsu的二值化方法从局部图像中准确的划分出吃水刻度。接下来,我们对每个帧使用Canny边缘检测来检测水线。然后我们使用鲁棒估计将一条直线拟合到吃水刻度标记周围有限区域中的Canny边缘图像,来减少噪声影响,并将该直线视为水线。由于对每一帧都估计了水线,因此我们可以避免由于差异图像的累加而造成的误估计。此外,我们可以利用噪声边缘相对于吃水刻度标记保持静止的特性,有效地去除噪声边缘,例如凸起和疤痕。这种我们提出的方法是提供了吃水刻度读取所需的所有五个步骤的第一个研究,其分别为刻度分割,刻度识别,吃水线检测吃水线估计和刻度计算。我们提出的方法的另一个显著特征,是可以通过模拟测量员的吃水刻度阅读过程来获得托运人和收获人的理解。通过使用拖船,吃水读数的准确性已经被正确评估,显示出了提出的方法的有效性。这还表明了在真实场景中已经实现了准确的吃水刻度读取。

2.常规方法

本节介绍了两种吃水刻度标记,并简要介绍了与建议方法密切相关的常规吃水刻度分割和吃水线估计。

图1.两种吃水刻度标记

2.1吃水刻度标记

图1显示了两种典型的吃水刻度,分别代表3.6、3.8和4.0米。每个吃水刻度的大小为10厘米高和2厘米宽[7]。类型1使用lsquo;Mrsquo;代表米,而类型2仅使用数字。每个刻度的底部代表吃水深度。例如,如果水线碰到“4M”的底部,则吃水深度为4.0米。

2.2吃水刻度分割

传统的吃水刻度分割方法是通过Otsu的二值化方法来分割吃水刻度。这对于仅包含吃水刻度和船体的图像可能是有效的,因为图像的灰度直方图是双峰的。然而,几乎所有观察到的图像都包括吃水刻度和船体以外其他的区域,例如海面和阴影。

图2.传统的吃水刻度分割(a)原始图像(b)灰度直方图(c)二值图像

图2(a)和(b)分别显示了观察到的图像及其灰度直方图。我们使用手持摄像机从码头捕获图像,来增加摄像机的抖动效果,因为测量师经常在摇晃的船上读取吃水深度。我们可以验证出,由于海面和阴影的影响,直方图不是双峰的。图2(c)显示了通过Otsu的二值化方法获得的二进制图像,其中阈值为113。我们看到“2M”上方的“2”没有与船体分开。

2.3吃水线估计

常规的吃水线估计是通过帧差分技术来检测运动的海面的。更具体地,取两个连续帧的差,对具有阈值theta;的差图像进行二值化,然后在n帧期间累积二进制差图像。然后,常规方法对累积的二值图像的水平均值进行二值化来分割海面,并将分割后的海面的上边缘视为吃水线。然而,如果海面移动缓慢,我们就无法从帧差异中准确地检测出吃水线。此外,估计的吃水线在观测时间内趋于最高。这种错误估计是由于二进制差异图像累积引起的。图3显示了吃水线估计的结果,我们将theta;设置为60,将n设置为600。图3(a)是在拖船上捕获的视频序列的二进制差异图像的累积。图3(b)中的白色区域表示分割的海面。图3(c)显示了估计的吃水线叠加在没有波浪的情况下拍摄的照片上。我们看到估计的吃水线高于真实的吃水线。

图3.传统吃水线估计(a)二进制差异图像的累积(b) 分割的海面(c)估计的吃水线

吃水刻度分割

吃水刻度识别

吃水线提取

吃水线估计

吃水深度计算

视频输入

图4.提议的方法流程图

3.提议方法

图4显示了所提出的方法的流程图。它包括五个步骤:(1)吃水刻度分割(2)刻度识别(3)吃水线提取(4)吃水线估计和(5)吃水深度计算。

3.1吃水刻度分割

吃水刻度分割的过程进一步分为三个步骤:吃水刻度标记检测,局部阈值处理和去除噪声段。

3.1.1吃水刻度标记检测

顶帽变换[8]是用于检测小于结构元素的白色或黑色对象的形态学操作之一。由于吃水刻度标记是稀疏的黑色或白色的物体,因此我们使用顶帽变换来检测。用于检测白色吃水刻度的白色顶帽变换由等式(1)定义,用于检测黑色吃水刻度的黑色顶帽变换由等式(2)定义:

(1)

(2)

这里我们使用以像素为单位的半径为p的圆形结构元素,I(x,y)为输入图像,Iwhite(x,y)是白色顶帽图像,Iblack(x,y)是黑色顶帽图像。半径p的选择必须大于吃水刻度的宽度,即2厘米。图像Iopening(x,y)是打开操作后的结果,它具有去除细小的白色物质的效果。图像Iclosing(x,y)是关闭操作的结果,它具有去除细小的黑色物质的效果。黑色顶帽图像是输入图像与其关闭图像之间的差异。由于某些船可能同时具有白色的和黑色的吃水刻度,因此我们同时使用白色和黑色顶帽变换来检测吃水刻度。在本篇论文中,我们将p设置为Y/30,其中Y是输出图像的高度(以像素为单位)。当我们选择图像以便包含两个以上吃水刻度时,Y等于大于30cm,Y/30等于大于1cm。因此,通过使p等于Y/30,可以使圆形结构元素的半径大于吃水刻度的宽度。

图5.吃水刻度检测结果

我们已经将吃水刻度检测方法应用于图2(a)的图像上。图5显示了吃水刻度检测的结果。我们仅展示白色顶帽图像,因为在图2(a)中只有白色的吃水刻度。我们看到吃水刻度被粗略的分割了,但是他们被噪音破坏了。因此,我们通过第3.1.2节中的局部阈值清晰的划分了吃水刻度。

3.1.2局部阈值

我们通过检查分段是否满足以下不等式,来判断局部阈值的结果图像中的分段是否为噪声:

其中,h和w分别是分段的高度和宽度(以像素为单位),w/h是边的比率。

吃水刻度“1”的边的比率为0.2,这是所有刻度中最小的。因此,我们将T1设置为0.1,T2设置为1,考虑到几乎所有的情况下吃水刻度的高度都比宽度长,并且在水下吃水刻度的高度因折射而收缩。同时,s是线段的面积,考虑到过小的分段显然是噪声,我们将T3设置为10.

图6.局部阈值:(a)图5中所示的软件边界框(b)局部阈值的结果

我们已经使用判断方法去除了噪声段,如图6(b)所示。图7显示了结果,我们看到几乎所有的噪声段都被很好地去除了。

图7.去除噪声段后的结果

3.2水尺刻度识别

寻找lsquo;8rsquo;,lsquo;6rsquo;,lsquo;4rsquo;,lsquo;2rsquo;

是否存在lsquo;Mrsquo;

识别最低的水尺刻度字符串

区分水尺刻度字符串和单个水尺刻度

图8.水尺刻度识别流程图

图8显示了水尺刻度识别的流程图。我们将水尺刻度的字符串成为水尺刻度字符串。在图7中,由两个水尺刻度字符lsquo;2rsquo;和lsquo;Mrsquo;组成的lsquo;2Mrsquo;是一组字符串。水尺刻度字符串的识别对于水尺识别是必不可少的。因此,我们根据字符的连通性[9]和刻度的大小来区分字符串和单个字符。更具体地说,我们根据以下规则对其进行区分:

  1. 考虑到所有的刻度标记的高度都相同,水尺刻度字符串中的两个字符高度之比在0.9和1.1之间。
  2. 考虑到字符串中字符处于相同地垂直位置,字符串中标记的边界框的中心之间的垂直距离小于其平均高度的四分之一。
  3. 考虑到字符串中字符之间的距离很近,中心之间的水平距离小于其平均高度的两倍。

尽管可以使用以上规则来提取多个白色或黑色的水尺刻度字符串,但是仅仅读取最低的字符串。通过使用平方差之和的模板匹配来识别最低的字符串中的吃水线。匹配的模板是图像lsquo;0rsquo;到lsquo;9rsquo;和lsquo;Mrsquo;,每个图像的高度和宽度分别为10cm和2cm。仅当最低的字符串中最右边为lsquo;Mrsquo;时,才在下面递归搜索字符lsquo;8rsquo;lsquo;6rsquo;lsquo;4rsquo;和lsquo;2rsquo;,直到找不到字符或找到lsquo;2rsquo;,根据以下的规则来寻找:

  1. 考虑到所有的刻度标记的高度都相同,刻度标记的高度与其上面标记的高度之比在0.8和1.2之间。
  2. 考虑到两个刻度标记之间的距离为10cm,刻度标记的中心与其上面的刻度标记中心的垂直距离是上面标记高度的1.5到2.5倍。
  3. 模板匹配的结果满足刻度标记的位置关系。例如,lsquo;8rsquo;必须位于lsquo;Mrsquo;下面,而lsquo;6rsquo;必须位于lsquo;8rsquo;下方。

3.3吃水线提取

Canny边缘检测由于其灵敏度高和高信噪比而成为最广泛使用的边缘检测算法之一。我们使用Canny边缘检测来检测吃水线。然而简单易用的程序也可以检测出嘈杂的边缘,例如船体上的疤痕和凸起。注意噪声边缘的属性,船体边缘相对于吃水刻度是保持静止的。我们通过采用相邻帧的逻辑结合来提取静止的边缘,如下所示:

(5)

(6)

在这里,I(x,y,t)是应用于视频序列的第t个帧图像的Canny边缘检测的结果,Idelation(x,y,t)是I(x,y,t)的膨胀图像,at和bt分别是对齐Idelation(x,y,t)参考吃水刻度标记的x坐标和y坐标。考虑到如果n太小,吃水线将会消失,所以我们将n设置为帧速率的一半。对齐成功后,P(x,y,y)和F(x,y,t)分别主要由过去帧和将来帧的静止边组成,并且P和F的并集表示静止边。因此,我们可以通过使I和P cup; F的交集来消除船体上的嘈杂边缘如下:

(7)

其中,O是去除固定边缘的结果。由于吃水线由长的边缘来表示,因此我们进一步删除了O中包含的非常小的边。更具体地说,我们删除宽度小于10像素边缘。

图9.Canny边缘检测的结果

图10.吃水线提取的结果

图9显示了Canny边缘检测应用于图2(a)的图像的结果,其中Canny边缘检测的阈值为15和30。图10显示了通过去除噪声边缘而获得的吃水线提取的结果。我们将与吃水线相对应的白色像素称为吃水线像素。图10包含吃水线像素,但仍然包含嘈杂的像素,例如海面的边缘。因此,我们使用对噪声点具有鲁棒性的最小二乘平方中位数(LMedS)方法[10]来估算吃水线。

3.4吃水线估计

图11.搜索区域中的吃水线像素

图12.吃水线像素

我们在吃水线提取结果图像中设置搜索区域,然后使用LMedS方法将直线拟合到搜索区域中的一组吃水线像素。图11显示了搜索区域。我们向下搜索白色像素,以在搜索区域中获得吃水线像素。我们不会搜索最低吃水刻度以下的区域,以免将吃水刻度的边缘误识别为吃水线像素。

我们将吃水线估计应用于吃水线提取的结果图像,如图10所示。图12显示出了检测到的吃水线像素,图13显示出了叠加在照片上的估计的吃水线。我们看到估计的吃水线与真实的吃水线一致。

图13.估计的吃水线

3.5吃水深度计算

我们估计每帧的吃水线,并通过以下步骤从估计的吃水线计算吃水深度:

  1. 计算预估的吃水线中心与吃水线底部之间的距离,并计算每一帧的吃水读数。
  2. 对吃水刻度的读数应用中值过滤器,以减少吃水线刻度分割和吃水线估计失败对异常值的影响。

    剩余内容已隐藏,支付完成后下载完整资料


    资料编号:[239005],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。