APP下载

船体零件几何尺寸测量图像分割方法研究

2021-05-19王建新胡小锋张亚辉

机械与电子 2021年5期
关键词:梯度方向断点划痕

王建新,朱 煜,2,胡小锋,张亚辉

(1.上海交通大学机械与动力工程学院,上海 200240;2.江南造船(集团)有限责任公司,上海 201913)

0 引言

船体是以超过10万数量的零件装配而成的金属结构为主体的骨架,船体零件的检测对于船体建造的精度控制具有重要意义。船体零件形状种类繁多、重量巨大,采用机器视觉方法对其进行非接触式测量拥有无可比拟的效率优势。但是由于零件搬运时的相互摩擦以及较长时间的堆积,作业现场的待测零件表面易产生划痕、锈蚀,此外,带有槽、孔类特征的船体零件的数量众多,且厚度较大,在成像时往往出现下表面成像的情况。在此基础上,通过边缘提取获得的零件轮廓较易带有伪边缘,且无法保证封闭性,这会给图像分割造成很大干扰,而船体零件几何基元提取的准确性依赖于良好的图像分割结果,上述情况易导致几何基元的残缺或者完全缺失,从而使测量结果产生误差甚至完全错误[1]。

传统的图像分割算法主要分为以下几类:基于边缘的分割[2-4]、基于阈值的分割[5]、基于区域的分割[6]、分水岭分割[7]和聚类分割[8-9]等。相比于其他类算法,基于边缘检测的图像分割算法具有更好的边缘定位准确性,且运行速度更快,但其检测结果不能保证边缘连续性或封闭性。针对这一问题,学者们通常将边缘检测与其他方法相结合以实现图像分割,包括:边缘检测与边缘连接[2]、边缘检测与区域生长[3]、边缘检测与形态学分析[4]等。上述方法中对于伪边缘的处理大致可分为2类:通过动态选取合适阈值剔除梯度幅值较小的伪边缘;在边缘连接/生长过程中选择真实边缘点连接/生长。然而在船体零件图像中,对于零件表面划痕、锈蚀以及下表面成像等特殊噪声导致的伪边缘,其梯度幅值通常相似于或大于真实边缘的梯度幅值,且通常分布于真实边缘附近,若通过第1类方法处理则难以对真实边缘和伪边缘做出有效区分,甚至可能错误地剔除真实边缘,而第2类方法则存在连接至伪边缘点的情况,从而可能导致分割结果错误。

为了解决船体零件表面划痕、锈蚀以及下表面成像等特殊噪声导致的伪边缘及边缘不连续问题,本文提出了一种基于边缘和k-means聚类的图像分割方法。充分利用边缘点的梯度方向与像素灰度值等先验知识筛选伪边缘,提取不受特殊噪声影响的零件边缘,并基于断点间的测地距离及方向信息连接边缘断裂部分。

1 基于边缘与k-means聚类的图像分割算法

图像分割算法流程如图1所示,其主要过程为:首先通过全局阈值处理[10],初步定位零件的初始轮廓;然后沿初始轮廓建立多个小尺度矩形边缘检测区域(rectangular edge detector,EDR)[11],以获取局部边缘细节信息;之后在每个EDR内利用Canny算法得到局部的1组边缘点,依据边缘点梯度方向信息,剔除该组边缘点中划痕、锈蚀类伪边缘,依据边缘点像素灰度值的差异,剔除该组边缘点中下表面成像类伪边缘,在此基础上得到零件全部真实边缘点;最后检测真实边缘点集中的断点并连接,获得零件封闭轮廓。

图1 图像分割算法流程

1.1 基于阈值处理的初定位

EDR的边缘检测范围有限,仅当零件轮廓位于其范围内时,才能进行有效检测。因此,本文第1步利用全局阈值处理获得零件的大体轮廓。对于亮色背景上较暗物体组成的图像f(x,y),任何f(x,y)

(1)

取图像g(x,y)上01交界处的轮廓作为零件的大体轮廓。初始定位结果如图2所示,由图2可看出,该轮廓与零件真实轮廓接近,但二者间仍有一定间距,将该轮廓称为初始轮廓,记作CInit。

图2 轮廓的初始定位

1.2 创建矩形边缘检测区域

为提高局部边缘检测的准确性,同时尽量消除非轮廓区域的干扰,在零件轮廓初始定位的基础上,沿初始轮廓创建多个矩形边缘检测区域。首先获得初始轮廓上像素点的坐标,CInit={(xi,yi)|i=1,2,3,…,n}。其次将CInit划分为N个子轮廓,记作CPart,则CPart={(xi,yi)|i=1,2,3,…,m},其中m=n/N。然后计算轮廓法线方向,为减少计算量,取CPart内两端点(x1,y1)和(xm,ym)连线的法线方向DPart作为该子轮廓法线方向的近似,DPart为

(2)

矩形边缘检测区域EDR如图3所示,在每个DPart上创建一个大小动态变化的矩形检测区域(EDR)。该EDR的中心为CPart的中间点(x[m/2],y[m/2]),DPart为长轴方向,l1为长轴高度,l2为短轴宽度。其中,l1不小于CPart与零件真实轮廓偏移距离的2倍;为了提高DPart在圆弧段对子轮廓CPart法线方向的近似程度,l2的大小需动态调整,当中间点(x[m/2],y[m/2])与两端点(x1,y1)和(xm,ym)所在直线的距离小于设定值dT时,取当前l2作为矩形宽度,否则取l2为其原值的二分之一并重复上述判断流程。l1、l2、dT的初始值可依据实际情况适当调整。

图3 创建矩形边缘检测区域EDR

1.3 提取边缘点集

对于单个矩形边缘检测区域(EDR),利用Canny算法提取该区域内初始边缘点集。考虑到边缘点梯度方向对后续筛选边缘点集起到关键性作用,为提高计算结果的准确性,在保持经典Canny算法主体不变基础上,对其梯度方向计算做出如下改进。

借鉴Sobel边缘检测算子求解边缘点(xi,yi)的梯度方向,分别从水平、垂直、45°、135°方向计算一阶偏导[12],模板如图4所示。

4个方向上的梯度分量Gx(xi,yi)、Gy(xi,yi)、G45(xi,yi)和G135(xi,yi)分别由图4中4个一阶梯度模板对图像卷积得到。

把45°、135°方向的梯度值投影到水平与垂直方向并求和,求和结果作为新的水平及垂直方向梯度值Gx1(xi,yi)和Gy1(xi,yi),计算公式如下:

图4 梯度方向模板

(3)

(4)

进而可求得当前边缘点的梯度方向为

(5)

由于本文测量的船体零件图像存在划痕、锈蚀以及下表面成像等特殊噪声,而该类特殊噪声所在位置的像素灰度变化特性与真实边缘相似,无法通过常规方法消除,基于一阶微分的边缘检测算子易将上述特殊噪声误判为边缘点。因此,检测到的初始边缘点集P={(xi,yi)|i=1,2,3,…,n}中既包含了真实边缘点集P′,也包含了伪边缘点集Ns,需进一步筛选初始边缘点集P。

1.4 筛选边缘点集

一般而言,零件轮廓附近划痕和锈蚀的走向与零件轮廓走向存在一定差异,即此类伪边缘的梯度方向与轮廓法线方向具有较大差值,而真实边缘梯度方向与轮廓法线方向近似。因此,可以利用矩形边缘检测区域(EDR)内边缘点梯度方向与轮廓法线方向差异的大小来判别此类伪边缘。下表面成像的原因比较特殊,通常情况下,仅零件的上表面对相机可见,然而当零件有一定的厚度且带有槽、孔类结构时,其距离相机轴心较远一侧的槽(孔)通常在图像中存在2个梯度值较大的过渡带[13],从而导致边缘提取的结果为上边缘、下边缘以及部分过渡带边缘并存。上述3类边缘点的梯度方向以及幅值均十分相近,但三者所在像素的灰度值大小又有所不同,其中上边缘像素灰度值的总体均值最小,下边缘最大,因此可在EDR内利用灰度值的差异予以区分。

分别记划痕、锈蚀和下表面成像导致的伪边缘点集为Ns1和Ns2。对于划痕和锈蚀导致的伪边缘点的判别描述如下:对EDR内任一边缘点(xi,yi),计算轮廓法线方向DPart与其梯度方向θ(xi,yi)的差值df,并将该值Td与阈值比较,当df小于阈值Td时,则该边缘点不属于伪边缘点集Ns1,其中Td的值可根据实际情况做出适当调整。判别下表面成像类特殊噪声,其关键在于如何判断当前EDR内是否存在由其导致的伪边缘,以及若存在该类伪边缘,如何区分该区域内3种边缘,并且仅保留上边缘。

k-means聚类算法是一种基于样本相似性度量的无监督实时聚类方法。其基本思想为:对于包含n数据点的数据集X:X={X1,X2,X3,…,Xn},将其依据相似度划分为类,令类内相似度最高的同时使类间相似度最低。本文利用k-means聚类对下表面成像导致的3类边缘加以区分。k-means聚类流程如下:

a.选择k个对象作为初始簇中心C1,…,Ck。

b.计算每个Xi到簇中心Cj的距离d,当d最小时即为其属于的簇Lj,d的公式为

d=|Xi-Cj|i∈{1,2,3,…,n},j∈{1,2,3,…,k}

(6)

c.以每个簇中所有数据点的均值作为新的簇中心,即

Cj=∑Xi/|Lj|

(7)

其中,Xi∈Lj,|Lj|为簇Lj中数据点的数量。

d.重复上述过程直至准则函数值小于设定阈值。准则函数定义为

(8)

利用k-means聚类将下表面成像边缘划分为3个簇:上边缘点簇L1、过渡区域点簇L2以及下边缘点簇L3,即k=3。利用三者像素灰度值间的差异进行区分,则Xi的值为边缘点的像素灰度值。由于随机选取的初始簇中心对分类结果影响较大,因此依据像素灰度值的极值计算初始簇中心的值。

(9)

对于聚类结果,当簇中心C3与C1的差值大于一定值时,则判定当前EDR内存在下表面成像类特殊噪声,并把簇L2和L3内边缘点归为伪边缘点集Ns2,否则不做处理。

1.5 边缘连接

经边缘检测以及2类伪边缘点筛选后,可得到真实边缘点集P′=P-Ns1-Ns2。考虑复杂图像总会出现一些算法无法检测出的边缘[2],并且由于参数设置不合理等问题,边缘点筛选时可能会错误剔除部分真实边缘点。在此基础上得到的边缘点集通常是不封闭的,必须通过边缘连接算法准确连接边缘断裂部分,才能完成图像分割。因此,本文提出了改进的基于测地距离边缘连接算法[14]。首先利用改进的断点检测模板获得全部有效断点,之后依据邻域信息标记断点连接方向,最后由似然函数评估候选断点并连接。

算法以边缘检测得到的二值边缘图像作为输入,将1组改进的断点检测模板应用于边缘图像提取边缘断点。模板如图5所示,边缘点由1表示,非边缘点由0表示,待评估边缘点由灰色框圈出,值为1,X的值为0或1。若待评估边缘点为断点,则模板中值为1的X的数量大于0且小于3,并且当数量为2时,灰色框X的值必须为1。该模板确保了每个断点有且仅有一个连接方向。

图5 断点检测模板

图6 断点连接方向

断点的邻域内往往不止1个候选断点,本文设计了似然函数对候选断点进行评估,则有

(10)

Dg(Pe1,Pe2)为当前断点与候选断点的测地距离,Θ(Pe1,Pe2)为两断点连接方向的夹角,二者的值越小,似然函数的结果H(Pe1,Pe2)越大,则候选断点被视为最佳匹配的概率越大。测地距离的定义为:

(11)

(12)

I(pi)与I(pi+1)分别为相邻两像素点pi与pi+1的灰度值;dN为两者间的灰度差值;Pe1和Pe2之间的连接路径(pi|i=1,2,3,…,n)通过Bresenham算法求得。

2 实验结果与分析

本文图像采集的硬件包括:Basler acA3800-10gm相机,OPT-C0825-10M镜头,白色光源,实验PC处理器为Intel i5-8265U CPU@1.60 GHz,内存8.00 GB。为验证本文图像分割算法的有效性,将实验结果与传统Canny边缘检测算法的分割结果进行对比,同时对所选船体零件的几何尺寸进行测量,验证测量方法的准确度和精密度。系统标定系数为k=0.267 mm/px。

2.1 船体零件图像分割实验

选取盖板、肋板、加强筋和水密补板4种典型船体零件作为测试样例。如图7a所示,4种零件均不同程度的存在划痕、锈蚀类特殊噪声,且水密补板的凹槽处存在下表面成像类特殊噪声。分别使用传统Canny算法与本文所提算法进行图像分割,结果如图7b和图7c所示,观察可发现, Canny算法无法完整提取真实边缘,提取的边缘存在断裂现象,且在真实边缘附近包含由2类特殊噪声导致的伪边缘。本文所提方法能够有效剔除由划痕、锈蚀以及下表面成像等特殊噪声导致的伪边缘,抑制特殊噪声带来的影响,且准确连接边缘断裂部分,提取到零件完整、封闭的轮廓,有效解决了传统基于边缘的分割算法受特殊噪声影响较大的问题。

图7 零件图像分割结果

2.2 船体零件测量精度实验

准确度是指在一定实验条件下多次测定的平均值与真值相符合的程度;精密度是指在规定条件下,对同一或类似对象重复测量所得示值或测得值间的一致程度[15]。通俗讲,准确度体现了测量值与真值的接近程度,而精密度体现了测量方法的可重复性。本文利用这2种指标对船体零件测量精度进行评价。

选取盖板、肋板、加强筋和水密补板4种典型船体零件的主要尺寸为待测特征。首先,利用游标卡尺、半径量规连续测量10次,取测量结果的均值作为参考量值。表1给出了各零件特征的参考量值。

之后,对测试零件分别连续拍取10张图像,在获得零件完整、封闭轮廓的基础上,将零件轮廓按照几何基元进行分段并拟合,求解相关方程组,计算零件特征的量值。分别求得各零件特征量值的均值、标准偏差以及测量误差,计算结果如表2所示。

使用测量结果的误差以及标准偏差评估准确度和精密度,计算表2中所有误差项绝对值的均值,求得4种类型零件的测量误差的均值为0.27 mm,同时各零件特征误差值的绝对值均小于0.5 mm,说明应用本文算法具有较高的测量准确度。此外,计算表2中各项零件特征的标准偏差的平均值为0.262 mm,其中水密补板槽宽的量值受下表面成像因素的影响,标准偏差略高为0.726 mm,除水密补板槽宽的标准偏差较大以外,其余零件特征的标准偏差均小于0.5 mm,这一结果说明应用本文算法具有较高的可重复性较和测量精密度。

表1 零件特征参考量值 mm

表2 零件特征测量结果 mm

3 结束语

由于运输和存放环境所限,船体零件表面易发生划痕、锈蚀,且带槽、孔零件众多,其成像易产生伪边缘及边缘不连续问题导致测量结果存在误差或错误,为了解决这一问题,本文提出了一种基于边缘和k-means聚类的船体零件图像分割方法。实验结果表明,相比于传统Canny算法图像分割,本文方法能有效抑制零件表明划痕、锈蚀和下表面成像问题对图像分割效果的影响,获得更加平滑、封闭性更好的零件图像分割效果,在此基础上的零件几何尺寸测量具有较高的准确度和精密度,保障了船体零件测量的精度。本文方法虽然可以对存在特殊噪声的零件图像进行有效分割,但需具有较多的参数设置,当测量环境变化时可能无法获得良好的分割结果,因此,下一步会着重研究参数的动态求取,以达到更佳的分割效果。

猜你喜欢

梯度方向断点划痕
富马酸卢帕他定治疗皮肤划痕症的疗效观察
基于机器视觉的钢轨接触疲劳裂纹检测方法
砂泥互层断点组合类型及其合理性分析
——以大庆长垣萨尔图油田为例
用Eclipse调试Python
一类无限可能问题的解法
基于梯度方向一致性引导的边缘检测研究
基于光谱上下文特征的多光谱舰船ROI鉴别方法
冰上芭蕾等
基于支持向量机的分类器训练研究
光滑表面浅划痕对光反射特性