改进局部灰度特征的工件亚像素级边缘检测

2019-07-08 03:41张智凡于凤芹
软件导刊 2019年6期
关键词:边缘检测

张智凡 于凤芹

摘 要:针对局部灰度特征方法在高噪声图像中定位精度低的问题,提出改进局部灰度特征方法并用于工件亚像素边缘检测。首先,使用改进的Canny算子代替基于一阶导数的梯度算子,以便更精确地提取粗边缘;然后在采集到的像素窗口两侧建立子图像,代替单个窗口特征以修改边缘上下两侧强度值,再将新构造的子图像中间列像素进行加权,加速图像迭代复原速度;最后,通过所有新生成的子图像局部灰度特征重新计算亚像素位置,进一步提高检测精度。实验结果表明,在无外加噪声和加入1.00%、5.00%的噪声标准偏差图像中,RMS误差明显降低,亚像素坐标数与定位精度明显提高。

关键词:边缘检测;亚像素;局部灰度;图像强度;迭代复原;子图像特征

DOI:10. 11907/rjdk. 182556

中图分类号:TP317.4

文献标识码:A文章编号:1672-7800(2019)006-0158-05

Abstract: In order to solve the problem of low localization accuracy of local grayscale feature method in high noise image, an improved local grayscale feature method is proposed and applied to the sub-pixel edge detection of workpiece. First of all, using the improved canny operator instead of the traditional derivative mask to extract rough edge more precisely, and then collected the pixel window on both sides to establish the image instead of a single window feature to modify the edge strength value on both sides. Then, the intermediate column pixels of the newly constructed subimage are weighted to speed up the iterative recovery of the image. Finally, the detection accuracy is further improved by recalculating the sub-pixel position through all newly generated sub-image features. The experimental results show that the RMS error is significantly reduced in the absence of additional noise and the addition of 1.00% and 5.00% noise standard deviation images.

Key Words: edge detection; sub-pixel; partial gray features; image intensity; restoration iteration; subimage feature

0 引言

工件邊缘检测技术是工件尺寸检测技术关键组成部分。改变CCD相机分辨率以提高检测精度的常规作法硬件成本高昂[1-2],因此基于图像的亚像素边缘检测方法成为提高检测精度的常用手段[3]。

目前已知的亚像素级边缘检测算法分为矩法、拟合法、插值法3类。Bin[4]利用低阶径向数与矩的旋转不变性特征提出一种基于正交傅里叶—梅林矩法的检测方式,但无法提高对小物体的检测精度。一些研究在使用基于矩的亚像素算法之前使用Sobel算子确定粗边缘[5-8]以降低计算复杂度;文献[9]利用可变模型进行检测,但结果受限于梯度方向和位置;为避免图像复杂边缘的干扰,魏本征等[10]提出一种基于边缘方向梯度插值和Zernike正交矩的新亚像素边缘检测方法,丰富了边缘信息且增加了亚像素边缘点数量;文献[11]利用Sigmoid函数拟合边缘模型[11],利用图像边缘灰度信息对模型进行非线性最小二乘拟合;为解决计算效率低和鲁棒性差的问题,Sun[12]采用Sobel算子和三次曲面拟合方法确定边缘法线方向,然后将二维边缘检测转化为一维问题进行求解;文献[13]采用边界跟踪算法获得粗糙轮廓[13],通过梯度方向的灰度矩计算出准确的轮廓位置,但耗时较长且曝光要求高;Trujillo-Pino[14]通过图像值采集的局部灰度特征计算边缘特征,由局部灰度特征推导出边缘采集模型,并且假设该模型在图像值上是不连续的;还有学者[15-16]在该方法的基础上进行改进,但仍会有无效点,并且在复杂图像上检测精度不高,虽在无噪声情况下相比以上几类方法,检测精度更高,但是在处理高噪声图像时会产生像素级边缘缺失及亚像素位置偏移问题。

因此,本文对局部灰度特征方法进行改进并应用于工件检测。首先,改进Canny算子并用其取代传统一阶导数的梯度算子,计算出粗边缘以提高像素级边缘检测精度;然后,在局部灰度特征方法中建立的9*3或3*9图像窗口两侧创建子图像窗口,根据距离边缘的远近重新对子图像窗口像素值进行赋值,综合所有新生成子图像的像素值代替单个窗口内的像素值,通过3次迭代后的复原图像可得到理想边缘,从而弥补像素级边缘缺失的问题;再将新构造的子图像中间列像素值进行加权,加速对图像复原处理的速度;最后,对得到的综合图像重新通过边缘上下两侧强度计算亚像素边缘特征,弥补亚像素位置偏移问题,从而提高亚像素级边缘检测精度。由于各类工件形状不同,圆形部分采用RMS误差[17]作为该方法精度评价准则。对其它形状部分取若干亚像素坐标点作为标记点计算距离数据,根据距离大小与实际值误差[18]评价算法精度。

1 基本原理

1.1 Canny算法基本原理及改进

传统Canny边缘检测算法[19]通过寻找像素点局部最大值,并沿着梯度方向比较前后梯度值,确定高低阈值之间边缘点。检测步骤为:①灰度化;②高斯濾波;③计算图像梯度值和方向;④非极大值抑制;⑤边缘确定和连接。

对含有边缘附近高噪声部分区域,上一节用DCT变换代替Canny算子中的高斯函数进行去噪并保留图像粗边界特征,由于对去噪后的单个像素窗口计算图像上下强度和亚像素位置时仍出现误差,为增强边缘特征,本文在以粗边缘为中心的窗口左右两列建立子窗口,如图2所示,对已检测到的边缘像素,可以通过复原子图像已得到的特征(亚像素位置、方向、边缘两侧强度变化等)产生理想边缘。图2(b)为一个9*3的子图像窗口,对图2(a)中的每个边缘像素建立子图像并综合所有子图像信息。通过该方式可以生成一个完整的合成图像。在远离边缘的像素中,能与图2(a)平滑处理后的值保持一致。复原后图像中的边缘特征值对噪声敏感度低于在a中检测到的边缘特征值,使整体检测结果更加准确。由于子图像中间一列比左右两列误差更低,为提高图像复原处理的速度,对新构造的子图像中间一列像素值进行加权。

2 算法实现

改进局部灰度特征与应用算法流程如图3所示。

改进局部灰度特征亚像素边缘检测具体步骤为:

(1)输入测试图像并对其进行预处理。

(2)通过DCT变换得到DCT系数和噪声估计,并纠正系数,由IDCT变换得到平滑图像以代替Canny算子高斯滤波,然后计算梯度值及方向,通过非极大值抑制确定粗边缘特征。

(3)通过边缘斜率确定窗口是垂直还是水平状态,以边缘像素为中心生成9*3或者3*9的像素窗口,根据边缘上下两侧面积和灰度值计算初始图像强度。

(4)以i-1列和i+1列为中心生成9*3子图像窗口,分别计算各子图像的强度值。

(5)为了合并所有子图像,需创建两个全新图像,并对图像的像素值重新赋值:①原图像A,其中每个像素值表示包括该类像素子图像个数;②图像I的值,每个像素值表示各像素强度的累积和;③值像素为0时表示远离边缘,此时将远离边缘的像素值设为初始图像平滑后的值,即图c中窗口外的部分;④值大于0的像素表示至少包含在一个子图像中的像素,此时将[I(i,j)/A(i,j)]的值赋给复原图像中包含子图像的像素值。

(6)对得到的复原图像特征重新进行步骤(4)的操作,经过3次迭代得到最终保留边缘的复原图像信息。

(7)根据修改后的图像强度,采用局部灰度特征方法计算最终亚像素级边缘特征。

3 工件图像测量实验分析

3.1 实验结果对比

实验测试图像通过CMOS摄像头拍摄获取,大小均为1 600*1 200。实验计算机CPU为e3-1230-v5,8g内存及Windows7、Matlab2016a软件环境。图4、图5为两组工件图像的处理结果,第一组图像以亚像素坐标提取数和运行时间为指标,根据齿轮齿顶标记点选择齿轮特征点[1],尺寸数据由齿轮测量仪精确测量所得。第二组图片是根据3次迭代处理后标记的4组端点测量所得的坐标位移偏差。

实验需手动选取阈值和迭代次数。迭代次数选取过高将导致该算法检测时间较长,过低将导致边缘依然存在模糊,使边缘上下强度和亚像素位置存在偏差。本文实验将迭代次数设为3,阈值设为15。

图4(a)是在工业现场手动拍摄的齿轮图片。图4(b)、4(c)分别表示图4(a)中齿顶部分改进前、改进后的放大区域,改进前靠近齿廓渐开线和齿顶部分含有高噪声的区域,从中可以看出检测误差较大,对噪声敏感度较高,甚至出现边缘缺失现象。

为验证算法有效性,将本文算法与OFMM法、传统局部灰度特征方法(LGF)作对比。表1显示了3种算法的运行速度,可以看出本文算法速度略微优于OFMM法,传统局部灰度特征算法由于无需迭代复原图像,在时间上略优于改进后的算法。从坐标点检测数目来看,本文算法检测出的坐标点更多,因此可以更好地提取齿轮轮廓形状。

表2中,将P1、P2、P3、P4标记的特征点作为检测点,本文算法的坐标偏移量明显小于其它两种算法,取P1、P2坐标测量距离与标准坐标偏移误差百分比为相对误差,R为齿轮内部圆的半径长度。实验证明,本文算法精度低于0.2%,坐标偏移量也相对减少。

图5(a)分别取齿轮内部4个圆的端点为标记点,对其16个点进行亚像素级坐标检测,检测结果如图5(b)所示,图5(c)为齿轮右侧内部圆放大后的图像,实验结果表明可将圆形和齿顶边缘细致且连续地输出。表3-表6分别标记内部圆4个标记点的标准坐标、亚像素级坐标、坐标偏移量、测量直径和相对误差。检测结果表明,本文算法精度达到0.2个像素级别以上,相对误差小于0.5%,亚像素边缘检测效果更好。

表7为在预处理后的图5(a)齿轮图像中添加不同噪声标准偏差的比较数据,将原方法与本文方法及1次和3次迭代后的结果作比较。实验结果表明,本文方法在1次迭代处理后的RMS误差略小于原方法,在无外加噪声的图像中,RMS误差减少了48.3%。在5.00%的噪声标准偏差图像中,1次迭代处理后的RMS误差比原方法降低了25.9%,3次迭代处理后的效果更好,但速度稍慢。

4 结语

基于局部灰度特征的亚像素级边缘检测方法假设边缘可由边缘所在相邻像素的直线或二次曲线进行近似。对于低噪声的边缘模型,该方法对于边缘位置和边缘方向的计算是完全准确的;同时针对高噪声图像提出了一种改进的迭代方法,对平滑后的图像以每个检测到的像素级边缘为中心像素,创建子窗口并对原图像和创建的子图像像素进行重新赋值与列加权,经过迭代后得到的图像可以在高噪声图像中精确检测边缘特征。将该方法应用于工件边缘检测,算法流程简单,实验结果显示该方法可行、有效。

参考文献:

[1] 张少军,艾矫健,李忠富,等. 利用数字图像处理技术测量几何尺寸[J]. 工程科学学报,2002,24(3):284-287.

[2] 张强,黄道君. CCD光电测徑仪的在线应用[J]. 仪器仪表与分析监测, 2003(3):8-9.

[3] 刘力双,张铫,卢慧卿,等. 图像的快速亚像素边缘检测方法[J]. 光电子·激光,2005, 16(8):993-996.

[4] BIN T J,AO L,CUI J W,et al. Subpixel edge location based on orthogonal Fourier-Mellin moments[J]. Image & Vision Computing,2008,26(4):563-569.

[5] QU Y D,CUI C S,CHEN S B, et al. A fast subpixel edge detection method using Sobel-Zernike moments operator[J].  Image and Vision Computing,2005,23(1):11-17.

[6] HU Z,DANG H,LI X. A novel fast subpixel edge location method based on Sobel-OFMM[C].  IEEE International Conference on Automation and Logistics, 2008:828-832.

[7] 苗青,李仰军,王高,等. 基于改进的Sobel算子和Zernike矩的亚像素边缘检测[J]. 山西电子技术,2016(1):5-6.

[8] 李庆利,张少军,李忠富,等. 一种基于多项式插值改进的亚像素细分算法[J]. 工程科学学报, 2003, 25(3):280-283.

[9] BOUCHARA F,RAMDANI S. Subpixel edge refinement using deformable models[J]. Journal of the Optical Society of America A-Optics Image Science and Vision,2009,26(4):820.

[10] 魏本征,赵志敏,华晋. 基于改进形态学梯度和Zernike矩的亚像素边缘检测方法[J]. 仪器仪表学报, 2010, 31(4):838-844.

[11] 张舞杰,李迪,叶峰. 基于Sigmoid函数拟合的亚像素边缘检测方法[J]. 华南理工大学学报:自然科学版,2009,37(10):39-43.

[12] SUN Q,HOU Y,TAN Q. A subpixel edge detection method based on an arctangent edge model[J]. Optik-International Journal for Light and Electron Optics,2016, 127(14):5702-5710.

[13] WU K,LI W,GE Y,et al. A subpixel edge detection algorithm based on the combination of border following and gray moment[C]. IEEE International Conference on Nano/molecular Medicine and Engineering, 2017:34-38.

[14] TRUJILLO-PINO A,KRISSIAN K,ALEMáN-FLORES M,et al. Accurate subpixel edge location based on partial area effect[J]. Image & Vision Computing,2013,31(1):72-90.

[15] 宿晓玮. 基于像元分解的标志点亚像素定位研究[D]. 徐州:中国矿业大学,2014.

[16] 丁洪利,吕晓东,王敬涛,等. 基于亚像素的布氏硬度测量图像处理算法[J]. 工程与试验, 2014(2):15-18.

[17] 周炼,安晨辉,候晶,等. 圆弧金刚石砂轮三维几何形貌的在位检测和误差评价[J]. 光学精密工程,2017,25(12):3079-3088.

[18] 艾泽潭,石庚辰,熊鑫,等. 基于模糊梯度的微齿轮图像边缘检测算法[J]. 北京理工大学学报,2011,31(8),919-921.

[19] CANNY J F. A computational approach to edge detection[J]. IEEE Transactions on PAML,1986,8(6):679-698.

[20] LIU Z Y,CUI X T,LI X H. Algorithm for image edge detection based on DCT compressed domain[J]. Computer Technology & Development, 2008(4):111-113+117.

[21] ZHAO M,LIU H,et al. An improved Canny edge detection algorithm based on DCT[C]. IEEE International Conference on Progress in Informatics & Computing, 2015:234-237.

(责任编辑:江 艳)

猜你喜欢
边缘检测
基于数学形态学的一种改进CO2焊熔池图像边缘检测算法
离散过程神经网络和CGA相融合的边缘检测