《武汉工程大学学报》  2021年06期 675-680   出版日期:2021-12-31   ISSN:1674-2869   CN:42-1779/TQ
融合改进形态学和LOG算子的齿轮边缘检测


在现代机械制造业中,通过计算机视觉对机械零件进行缺陷检测的技术应用越来越广泛。由于其相较于传统人工检测方法具有高效率和低错误率的优势被各大公司企业青睐,其中机械零件的边缘提取是机械零件缺陷检测技术的关键环节。图像的边缘体现了图像的不连续性,包含了物体的特点和图像的基本信息,是图像最基本的特征[1]。边缘是图像亮度急剧变化的地方[2],图像的边缘检测即提取目标与背景或者目标与目标之间的边界信息[3]。传统的边缘检测算子如Sobel算子、Canny算子、Laplace算子、Roberts算子等等,其中应用最为广泛的是Sobel算子和Canny算子[4],这些经典算法计算简单、容易实现,且具有较好的实时性, 但检测出的边缘连续性差、定位精度不高, 且对噪声比较敏感[5]。在现代的边缘检测算法中,有基于机器学习包括深度学习在内的边缘检测算法[6-8],这些算法可以提取到图像更多的特征信息,从而具有检测精度高、搜索能力强的优点,但应用这些算法需要大量的训练样本进行模型训练,效率不高,且检测速度较慢。高斯拉普拉斯(laplacian of gaussian,LOG)算子,是一种不依赖边缘方向的二阶微分算子,由于其具有各向同性(旋转不变)的性质,因此它对任何模板方向的灰度变化有相同的响应,从而可以避免使用多个模板去计算图像中任何点的最强响应,故该算子在图像处理中经常被用来提取图像的边缘。LOG算子具有边界定位精度高、抗干扰能力强、连续性好等优点,但也存在对噪声敏感的问题,因此许多学者对其进行研究改进,使其检测性能更加优越。文献[9]用自适应均值滤波和小尺度高斯滤波代替原来的高斯滤波进行图像的预处理;文献[10]采用中值滤波对原始影像进行消噪,利用Otsu算法对滤波后影像进行自适应阈值分割得到目标图像,最后采用LOG算子对目标影像进行边缘信息提取。数学形态学是以集合论、代数学等为基础形成的图像处理方法,在边缘检测算法中,由于该方法易于实现,且检测得到的边缘图像噪声少,因此在减少图像噪声方面有很多的应用[11]。文献[12]提出一种将小波变换和多尺度形态学算法进行融合的边缘检测算法;文献[13]通过对数学形态学和Canny算子的检测结果以信息熵作为指标进行加权融合,提出一种融合融合Canny算子和形态学的齿轮图像边缘检测算法。本文算法结合了改进的LOG算子和新型多尺度多结构数学形态学边缘检测算法的优点,通过对两种改进算法的检测结果进行融合,再通过小波逆变换重构融合图像即为最终的边缘检测图像。1 改进LOG边缘检测算法1.1 传统LOG算子LOG算子的基本步骤如下:1)采用Gaussian滤波对输入图像进行平滑处理。2)计算平滑处理后图像的Laplacian二阶导数。3)找到步骤(2)所得图像的零交叉即图像边缘所在位置。步骤(1)中高斯滤波器函数为:[G(x, y)=12πσ2e][-x2+y22σ2] (1)用该函数对原始图像进行卷积操作,得到平滑后的结果为: [g(x, y)=G(x, y)?f(x, y)] (2)其中[f(x, y)]为原图像,[?]为卷积运算符号,[g(x, y)]为平滑滤波后得到的图像。再对图像[g(x, y)]应用Laplacian算子,得到其二阶导数图像: [▽2g(x, y)=▽2(G(x, y)?f(x, y))] (3)对图像高斯平滑与Laplacian微分运算可合并成一个卷积算子:[▽2G(x, y)=12πσ4(x2+y2σ2-2)e] [-x2+y22σ2] (4)式中[▽2G(x,y)]是LOG算子,用其对原始灰度图像进行卷积运算后得到的零交叉点即为图像的边缘点。然而在实际边缘检测中,LOG算子由于其利用二阶导数的零交叉获得边缘,其对噪声极为敏感,故其仍然存在抗噪性差的问题。为此,对LOG算子进行改进,提高其去噪能力的同时并保持其检测边缘的连续性。1.2 改进的LOG算子1.2.1 中值滤波 中值滤波是一种非线性平滑滤波,它使用一个像素邻域中的灰度级中值代替该像素的值,即:[f(x,y)=Median(s,t)∈Sxy[g(s, t)]] (5)其中[Sxy]表示大小为[m×n]的窗口,[g(s, t)]表示被处理图像,[f(x,y)]表示中值滤波处理后的图像。中值滤波对脉冲噪声有很好的滤除效果(如椒盐噪声),它还可以在去噪的同时保护图像的边缘,使其不被模糊。再加上其算法较简单且易于实现的特点,一经提出便被广泛应用。1.2.2 双边滤波 双边滤波在高斯滤波的基础上提出,高斯滤波只考虑像素的空间分布导致其在去噪的同时会模糊图像的边缘,而双边滤波会同时考虑空域信息和灰度相似性,达到保边去噪的目的。设[(xc, yc)]表示中心像素坐标,[(xi, yi)]表示邻域中的像素点坐标。双边滤波的空间域权重为:[d(xi, yi, xc, yc)=e] [-(xi-xc)2+(yi-yc)22σd2] (6)灰度域权重为:[r(xi, yi, xc, yc)=e] [-[g(xi,yi)-g(xc,yc)]22σr2] (7)其中[g(x,y)]为点[(x,y)]处的灰度指,[σd]为基于高斯函数的空间域标准差,[σr]为基于高斯函数的灰度域标准差。双边滤波权重函数为二者乘积,即:[ω(xi, yi, xc, yc)=e][(-(xi-xc)2+(yi-yc)22σd2-[g(xi,yi)-g(xc,yc)]22σr2)](8)公式(6)是根据像素距离选择权重,距离越近赋予的权重越大。公式(7)则是根据像素的差异来赋予权重。若两个像素的像素值比较接近,即使二者距离较远,也会比差异大而距离近的像素点赋予的权重大。公式(8)将二者结合起来,使得相距近但差异大的像素点特性得以保留。这样双边滤波器既可以拥有高斯滤波器的滤波能力又能保护图像的边缘信息。1.2.3 混合滤波器 考虑到中值滤波对处理类似于椒盐噪声这种脉冲噪声有着非常好的处理效果,而双边滤波对于处理像高斯噪声这种正态噪声有很好的效果,且二者对图像边缘细节都有一定的保护能力。改进的LOG算子将使用中值滤波器和双边滤波器组成混合滤波器代替传统LOG算子中的高斯滤波器。其混合滤波器具体操作方式为:将中值滤波器处理后输出的图像作为双边滤波器的输入再次对图像进行滤波处理,从而达到较好的去除多类噪声的同时保护了图像的边缘信息。2 改进形态学边缘检测2.1 数学形态学基本运算数学形态学主要以图像的形态特征为研究对象,通过设计一套运算、概念和算法来描述图像的基本特征。其有4个基本的运算:膨胀、腐蚀、开运算和闭运算[14]。膨胀是通过将物体所接触的背景点融入到该物体中使边界向外扩张的过程。而腐蚀则为膨胀的对偶操作,是消除一些边界点使边界收缩的过程。定义如下:膨胀运算:[A⊕B=p:Bp?A≠?] (9)腐蚀运算:[AΘB=p:Bp?A] (10)其中A为原始图像,B为结构元素。类似膨胀和腐蚀运算,开运算和闭运算也互为对偶运算。开运算即先腐蚀后膨胀,使用开运算可以去处一些孤立的点、毛刺和小桥,消除小物体、平滑较大物体的边界。闭运算即先膨胀后腐蚀,使用闭运算可以填充物体内的细小空洞,连接邻近物体。其定义如下:开运算:[A°B=(AΘB)⊕B] (11)闭运算: [A?B=(A⊕B)ΘB] (12)设E表示提取到的图像边缘,则由形态学运算,可以得到形态学边缘算子如下所示:形态学膨胀边缘检测算子:[Ed=A⊕B-A] (13)形态学腐蚀边缘检测算子:[Ee=A-AΘB] (14)形态学梯度算子: [Eg=(A⊕B)-(AΘB)] (15)这3种算子虽然可以提取图像的边缘,但对噪声较为敏感,只适用于噪声较小的图像,不具备普遍适用性。2.2 改进形态学边缘检测算法针对以上问题,为了能有效抑制噪声的同时尽可能检测更多的图像边缘信息,本文采用多尺度多结构元素边缘检测算法来检测图像边缘。多尺度结构元素定义为:[sn=s⊕s⊕?⊕s︸(N-1)times] (16)其中N为结构元素s膨胀的次数,且[N∈Z]。为了减小算法复杂度,取N=2,并经过多次实验对比分析,最终选取尺度不同的3×3十字形结构元素和5×5菱形结构元素,分别如下所示:[s1=010111010] [s2=0010001110111110010111000]本文使用的多尺度多结构元素边缘检测算子如下:[E=(A°s1)⊕s2-(A?s1)Θs2] (17)其中的小尺度元素[s1]以更好的保持图像的边缘信息,大尺度元素[s2]去噪能力强,可以更好的去处图像中的噪声。故给出的多尺度多结构元素算法既能有效的去除噪声,又具备保护图像边缘信息的优势。3 融合改进LOG算子和新形态学边缘检测算法为了综合改进LOG算法和新形态学算法的优势,得到更好的去噪效果和更多的边缘信息,现利用小波图像融合的方法将两种边缘检测算法的检测结果进行融合,从而得到更好的边缘图像。具体的融合步骤如下:1)用改进LOG算法检测含噪图像,得到边缘图像A。2)用改进形态学算法检测含噪图像,得到边缘图像B。3)应用小波融合函数对两幅边缘检测结果图像A和B进行图像融合。具体融合过程为:首先采用sym4小波对两幅边缘图像A和B进行二维小波分解,分解层数为4,得到两幅边缘图像的低频和高频分量;其次对两幅图像的高频和低频分量采用均值法进行融合;最后通过小波逆变换方法重构融合图像,即为最终的边缘检测图像。4 结果与讨论为了验证本文提出融合算法的去噪能力和边缘检测效果,以MATLAB R2019a为实验平台,以不同的齿轮图像为例,分别对传统的LOG算子,单结构形态学算子、文献[13]介绍的算子和本文融合算子检测的结果进行对比,通过观察每种算法的检测结果来验证每种算法的鲁棒性。在齿轮图像中加入均值为0,方差为0.005的高斯噪声,用上述每种算法检测的结果如图1所示。由图1可以看到,传统LOG算法检测含噪图像的边缘结果存在噪声消除不干净,边缘不连续的问题;单结构形态学算法检测去噪效果较好但丢失了许多的图像边缘信息;本文融合算法和文献[13]所提算法由于均融合了两种不同算法的检测优势,因此均取得了不错的边缘检测效果,提取的边缘图像不仅抗噪性好而且对齿轮边缘的定位也很精确。为了更客观有效地评价这几种算法的检测效果,分别给出5种算法的峰值信噪比(peak signal-to-noise ratio,PSNR)和信噪比(signal-to-noise ratio,SNR)[15]作为边缘检测效果的评价指标,其中PSNR和SNR越大代表边缘检测效果越好。计算得到的指标如表1所示。表1 齿轮1加高斯噪声后的PSNR和SNR值Tab. 1 PSNR and SNR values of adding Gaussian noise in gear 1[方法 PSNR SNR 传统LOG算法 24.627 3 11.412 5 单结构形态学算法 26.993 4 13.023 6 文献[13]算法 32.328 0 14.398 5 本文融合算法 33.416 7 14.519 8 ]由表1可知,从客观上进行评价,本文算法的PSNR值和SNR值均高于其他算法。为了验证本文算法在不同噪声存在时依然具有良好的去噪效果,向齿轮图像中加入3%的椒盐噪声再次进行实验,实验结果如图2所示,每种算法各项评价指标如表2所示。 加入3%椒盐噪声的齿轮图像评价指标如表2所示。表2  齿轮2加椒盐噪声后的PSNR、SNR值Tab. 2 PSNR and SNR values of adding salt and pepper noise in gear 2[方法 PSNR SNR 传统LOG算法 21.178 6 9.412 5 单结构形态学算法 31.919 3 10.023 6 文献[13]算法 28.618 1 8.430 3 本文融合算法 32.939 6 11.319 3 ]由图2和表2可知,当齿轮图像加入3%的椒盐噪声后,传统LOG算法和单结构形态学算法得到的边缘图像均较差,文献[13]算法去噪能力上较为不错,但在齿轮最内侧的细节上检测并不好,出现内侧两圆的边缘粘连现象。相比上述算法,本文算法得到的边缘图像几乎不含噪声且对边缘细节的处理也较为出色。在客观评价指标上,各项指标依然领先于其他算法。向齿轮图像中加入由高斯噪声和椒盐噪声组合的混合噪声进行实验,得到的实验结果如图3所示,每种算法各项评价指标如表3所示。由图3和表3可知,本文边缘检测算法在检测含有混合噪声的齿轮图像时依旧具有较强的鲁棒性。5 结 论针对在检测含噪齿轮图像的边缘时,存在噪声难以抑制和难以检测更多齿轮边缘信息的问题。本文首先对传统的LOG算子和数学形态学算子进行改进,接着利用小波分解与融合的方法,将两种算法融合在一起,提出了一种融合改进数学形态学和LOG算子的齿轮边缘检测算法,该算法结合了单独使用改进LOG边缘检测算法和多尺度多结构数学形态学边缘检测算法的优势。实验结果表明,对含有不同类型噪声的齿轮图像,本文的融合算法相比于融合前的单一边缘检测算法,均拥有更好的去噪效果和边缘检测能力。