王冬云,唐 楚,鄂世举,高春甫,葛炳灶
(1.浙江师范大学浙江省城市轨道交通智能运维技术与装备重点实验室,浙江金华321004;2.浙江今飞凯达轮毂股份有限公司,浙江金华321005)
目前,通用的轮廓边缘检测方法主要以Canny[1]算法为基础进行改进。Zhang等人[2]在Canny算法的基础上,提出了一种Sobel算子与Log算子相结合的互补边缘特征提取算法,提高了边缘检测的连续性和检测效率。MAMTA等人[3]提出了一种基于多阈值的鲁棒边缘检测算法,能较好地处理图像的边缘连续性和厚度均匀性。Kong等人[4]改进了Canny算法,提出了一种自适应边缘检测模型,实现了较好的边缘检测精度和鲁棒性。Cao等人[5]提出了并行Otsu-Canny边缘检测算法,实现自适应提取边缘的同时提高了复杂边缘的检测速度。Perona和Malik[6]提出了各向异性扩散滤波方法,该算法在平滑噪声的同时保留了边缘信息;在此基础上,Mrázek[7],Tsiotsios[8]等人相继提出自适应获取各向异性扩散滤波参数的方法。Xu等人[9]提出了一种基于稀疏集的边缘保持图像去噪方法,提高了单一噪声的去除效果。Han等人[10]利用数学形态学算子和梯度提取灰度图像的边缘像素,提高了高斯噪声和椒盐噪声的处理效果。HE Y等人[11]提出了一种基于改进形态梯度的图像边缘检测算法,该算法能准确提取图像边缘信息。HE K等人[12]设计并提出了引导滤波,该滤波器具有良好的保边平滑特性,且计算效率高。
上述算法弥补了传统Canny边缘连续性不佳及保边性能不足的问题,但主要针对于理想光照条件下的图像边缘检测,在低光照、亮度不均条件下存在不适应性。为此,国内外涌现了许多结合图像增强和边缘检测的算法,如直方图均衡化法[13]、灰度变换法[14]、以及基于Retinex模型的方法[15-16]等。Liu等人[17]针对传统Canny边缘检测算法阈值不能自动调整和对噪声敏感的缺点,提出了一种基于限制对比度自适应直方图均衡(CLAHE)的舰船红外图像边缘检测算法。Yu等人[18]设计了一种自适应对比度增强算法,对原始图像滤波后的一阶导数提取wafer轮廓的效果好于Canny、Sobel和Scharr算法。Du等人[19]提出了一种基于Retinex和小波变换多尺度积的矿山图像边缘检测算法,并取得了良好的检测效果。
然而,由于金属表面的反光属性及金属加工刀痕的影响,不同光源或光照强度对图像边缘检测质量的影响较大,传统方法易将图像亮度过渡区误识别成边缘,在金属边缘检测应用上存在不适应性。因此,本文提出一种基于导向滤波Retinex图像增强及自适应Canny的金属制品边缘检测算法。该算法提取的金属边缘的连接性很好,有效解决了误识别的问题。
基于导向滤波Retinex和自适应Canny的边缘检测算法主要由两个部分组成:(1)采用Retinex图像增强算法对捕获图像进行增强预处理;(2)采用改进自适应Canny算法对获得的增强图像进行边缘提取。算法实现原理如图1所示。
图1 基于导向滤波Retinex和自适应Canny的图像边缘检测算法的实现原理Fig.1 Principle diagram of image edge detection based on guided filtering-based Retinex and adaptive Canny
Retinex图像增强算法对捕获图像进行增强预处理的过程也分两步:(1)采用导向滤波Retinex算法去除金属表面图像的光照分量;(2)采用加权分布的自适应伽玛校正(AGCWD)算法拉伸反射分量图像边缘,提高图像对比度。
2.1.1 基于导向滤波的Retinex算法
Retinex算法假设人眼观测的图像由光照分量与反射分量的乘积组成,其中反射分量是没有任何光照变化的图像。图像中每个原始图像像素(x,y)的数学表达如下::L(x,y)表示原始图像,I(x,y)表示光照分
其中量图像,R(x,y)表示反射分量图像。将式(1)转化为对数形式并整理后得:
采用引导滤波算法[12]获取原始图像的光照分量I(x,y),如下:
式中:(x,y)和(u,v)表示像素在滤波核窗口内的位置,W(x,y)(u,v)(L)为滤波核函数,如式(4)所示:
式中:ωk表示第k个核函数窗口,|ω|表示窗口内的像素个数,设导向滤波窗口尺寸为S,μk和σ2k分别为图像L(x,y)在窗口内的均值和方差,ε为平滑因子。
2.1.2 基于AGCWD增强对比度
对式(2)中获得的反射分量通过AGCWD[14]算法进行对比度增强处理,AGCWD将伽玛校正与基于加权直方图分布的自适应伽玛系数相结合。其中伽马校正函数表示为:
式中:R(x,y)为反射分量图像的灰度值,Rmax为反射分量图像的最大灰度值,F(x,y)为对比度增强后的灰度图像,γ为调整变换曲线的参数,其自适应规则如下:
式中cdf(R)为反射分量图像的累积分布函数,其表达式为:
式中:pdf(R)为反射分量图像的概率密度函数,pdfmin,pdfmax分别表示pdf(R)的最小值与最大值,α为调整参数。表示pdfw(R)在所有灰阶上的总和,其表达式下:
对增强后的图像进行边缘提取的步骤如下:(1)基于自适应各向异性扩散滤波取代高斯滤波的改进Canny方案抑制图像的噪点与低对比度纹理;(2)采用四方向Sobel梯度算子获取去噪后图像边缘;(3)沿用传统Canny算法非极大值抑制以及双阈值分割步骤细化边缘[1]。
2.2.1 各向异性扩散滤波
各向异性扩散滤波的基本方程如下:
其中:t表示迭代参数,F(x,y,0)表示由Retinex图像增强算法预处理后的图像,∇F(x,y,t)表示t次迭代后的图像梯度,div[·]表示散度,g(·)表示传导方程。Perona和malik[6]提出了两种满足其性质的传导方程,如下:
本文选用g2(x)作为传导函数,在离散化形式中可用g来代替,其中K表示控制扩散率的梯度幅值阈值参数,由“噪声估计器”[1]来确定。
各向异性扩散滤波离散化形式如下:
其中:F表示离散图像;s表示在离散2-D图像中的像素坐标;t表示迭代步数,最优值由Mra′zek and Navara[7]提出的解相关性准则确定;g表示传导函数;K表示梯度阈值参数;常数λ∈(0,1],用于确定传导率;ηs表示像素s的空间四邻域,ηs={N,S,E,W},其中N,S,E和W分别代表像素s的南北东西邻域,因此,|ηs|=4;符号∇表示为相邻像素各个方向的差值,如式(14)所示。
2.2.2 改进Sobel算法
经过滤波处理后,进一步采用Sobel算法获取图像的梯度图像,本文在传统Sobel算子基础上增加两个不同方向的模板,分别是0°,90°,45°和135°四个方向的一阶导数模板,与原图进行卷积,进而提取边缘信息。4个方向的梯度模板如表1所示。
表1 四方向Sobel梯度模板Tab.1 Template of four-direction Sobel gradient
其梯度幅值与梯度方向由式(15)和式(16)求得:
其中:Gx,G45,Gy,G135为原图模板尺寸窗口内的像素值分别与0°,90°,45°,135°方向的Sobel模板进行卷积的结果。
本文主要针对工业典型金属零件的边缘检测算法开展研究,实验平台为高速光学玻璃转台(如图2所示),所用相机的分辨率为130万像素,图像像素精度为0.03 mm/pixel。本文实验的硬件 平 台为Intel(R)Xeon(R)CPU E5-2620,2.10GHzCPU,32GB内存,软件平台为python3.6联合OpenCV,Windows10操作系统。将新算法与CLAHE[13],多尺度Retinex(MSR)以及AGCWD[14]算法进行比较,以验证算法的鲁棒性。
在图像增强算法中,滤波窗口尺寸与平滑因子对图像增强效果的影响较大,当导向滤波窗口尺寸较小时,图像低亮度区域被过度增强;当导向滤波窗口尺寸较大时,图像边缘细节被模糊平滑。当平滑因子较小时,会压缩图像整体对比度;当平滑因子较大时,图像边缘会出现光晕现象。为优化参数,本文进行多次对比实验,如图3所示,并根据多次实验结果选择平滑因子ε为0.16,窗口大小S为201。调整参数α根据灰度变换法设为0.75。
图2 高速转台原理Fig.2 Schematic diagram of high speed turntable
图3 参数对照实验结果Fig.3 Results of parameter comparison test
在边缘提取算法中,本文参考各向异性扩散滤波法选择g2(x)作为扩散函数,并选择传导系数λ为0.25。
以齿轮、螺栓、垫片、花键轴、螺母及金属衬套为例来验证新算法的可行性。其中齿轮、垫片采用环形光源打光,花键轴、电池表面采用双条形光源,螺栓、螺母、金属衬套采用碗状光源。
图4 为从左到右为原图及经各种算法处理后的增强效果图。由图4(a)可见,各零件原图表面均呈现不同程度的亮度不均现象;从图4(b)可以看出,经CLAHE处理后的增强图像提高了原始图像的对比度,但亮度不均匀的问题却更加突出;图4(c)在边缘处存在明显的光晕现象,边缘的对比度削弱,原因在于高斯滤波是各向同性滤波器,在边缘处也受到了平滑的影响;图4(d)明显提升了图像的对比度,但该算法不能弥补光照不均的不足,尤其是在花键轴及电池表面,经AGCWD处理后亮度不均现象更为显著;图4(e)在抑制光晕现象的同时增强了图像对比度,并且目标区域的亮度较为均匀,具有较好的视觉增强效果。
图4 典型金属制品的图像增强效果Fig.4 Image enhancement effect of typical metal products
主观视觉分析可以快速直观地评价增强后图像的质量,但由于个人主观感受不同,做出的质量评价不尽相同。因此,为进一步验证上述结论,本文依次计算上述金属制品图像的目标区域的亮度标准差、锐度[20]图像质量评价指标,对本文提出的图像增强算法进行客观指标验证。目标区域的亮度标准差(Target Area Standard Deviation,TASD)表示金属表面区域的亮度标准差,反映了图像增强后金属表面亮度的一致性,其值越低,表示目标区域亮度越均匀。锐度反映图像边缘的锐利程度以及整体图像的变化程度,其值越大,表示边缘越锐利,图像细节越丰富。表2给出了几种典型金属产品增强后的图像质量评价值,可以直观地发现,与传统算法在金属制品预处理应用上的效果相比,本文增强算法可以极大提升边缘区域对比度,在亮度一致性指标上明显优于CLAHE以及AGCWD算法;但由于MSR算法极大程度压缩了图像灰度动态范围,在亮度一致性上MSR算法效果略好于本文算法。
表2 金属制品采用不同增强算法处理后的图像质量评价指标Tab.2 Quality evaluation index of metal product image processed by different enhancement algorithms
为了评估本文改进Canny算法滤波后的去噪指标以及边缘保持效果,本文采用Noise Assessment[21]及Sharpness[20]对滤波后图像进行客观指标评价,如表3所示。其中,Noise Assessment反映了滤波预处理的去噪效果,Sharpness反映边缘锐度。可以直观地发现,原图中的噪声指标经过自适应滤波后从1.1左右下降到0.15左右,并且边缘锐度较增强后没有较大的改变,说明本文改进Canny算法在去除噪声的同时极大程度地保持了边缘的锐度,其边缘提取效果如图5所示。
表3 改进Canny滤波效果评价指标Tab.3 Filtering effect evaluation index of improved Canny
图5 (b)为采用文章[4]算法对金属制品进行自适应Canny边缘提取效果,可以看出亮度的不均匀性以及低对比度问题严重影响边缘的识别效果,进而影响边缘提取与后续图像处理。图5(c)为采用文章[17]算法处理后的边缘提取效果,首先采用CLAHE算法提升边缘对比度,进而采用改进Canny提取边缘,然而该算法在提升边缘对比度的同时,使得光照不均的现象进一步突出,导致亮暗分界处存在大量伪边缘。图5(d)表示采用文章[19]算法处理后的边缘提取效果,该算法能有效改善光照不均的现象,然而在去噪的同时削弱了边缘的尖锐性,边缘出现断裂与误识别。图5(e)表示本文提出算法提取的边缘图像,该算法有效抑制了因亮度不均而导致的边缘误识别问题,并且边缘连接性较好,除此以外,对于不同的光照场合该算法也存在较强的鲁棒性。
图5 典型金属制品提取边缘图Fig.5 Edge extraction images of typical metal products
为了进一步验证自适应各向异性扩散滤波的去噪效果,本文增加了以下实验:对垫片图像加上均值为0,方差为0.02的高斯噪声,实验结果如图6(a)所示。
图6 垫片加噪图像边缘提取对比Fig.6 Comparison of edge detection of gasket image with and without noise
由图6中传统Canny与本文算法对加噪图像的边缘提取结果的对比分析可以看出,本文算法比传统Canny算法有更好的噪声鲁棒性。由表4可知,与传统Canny算法中的高斯滤波相比,各向异性扩散滤波结果的灰度均值更接近于原始图像,说明本文方法具有更好的灰度一致性。此外,从熵值与平均梯度可以看出,自适应各向异性扩散滤波结果更接近于原始图像。这表明本文提出的滤波处理方法在保留图像对比度的同时具备更好的去噪性能。
表4 垫片图像评价指标Tab.4 Evaluation index of gasket image
针对金属零件表面普遍存在的亮度不均特性,本文提出了一种基于导向滤波Retinex和自适应Canny的图像边缘检测方法。该算法在图像对比度增强和改善亮度不均方面的效果良好,在边缘锐度及金属表面亮度标准差的综合指标上有很大的提升。以花键轴为例,金属图像经增强后的锐度由原图的47.11提升至68.39,表面亮度标准差由原图的44.76下降至20.16。新算法在抑制金属图像增强后噪点及低对比度纹理的同时保留了图像边缘锐度,具有较好的噪声鲁棒性。在保留边缘锐度的前提下噪声指标从原来的1.1下降到0.15左右;新算法较大程度地抑制了因亮度不均造成的边缘误识别,且有效提升了图像边缘对比度,边缘连接性也优于传统算法。