改进Canny算法检测直缝焊管焊缝位置

2023-02-27 12:39程建邦姚爱英陈占春
机械设计与制造 2023年2期
关键词:极大值邻域像素点

于 兵,程建邦,姚爱英,陈占春

(1.太原理工大学机械与运载工程学院,山西 太原 030024;2.太原理工大学山西省塑料机械工程虚拟仿真实验教学中心,山西 太原 030024)

1 引言

随着高频焊管越来越多地应用于条件恶劣的工作场合,保证焊缝质量也成为业内关注的重点,在生产加工中对焊管焊缝进行检测变得十分重要[1]。检测过程常常需要人为控制焊缝位置来突出检测焊缝处。这种方法费时费力,依靠人工长时间工作后产生疲劳;影响检测质量。近年来随着机器视觉的快速发展,机器视觉逐渐代替人进行判断和控制,具有可靠性,结构简单和成本低廉[2]。

进行机器视觉焊缝位置识别的首要视觉任务是提取焊缝边缘与焊管边缘。国内外研究人员针对边缘提取任务做了大量工作,可以分为传统边缘检测算法与现代边缘检测算法。传统边缘检测算法包括Log算法、Laplace算法、Sobel算法等实时性高,实现成本低,但易受噪声干扰,信噪比低。现代边缘检测算法包括利用神经网络、遗传算法、蚁群算法等进行边缘检测,具有鲁棒性高,边缘定位精度高等特点。但也存在实时性差与检测成本高等特点,不适合在线检测[3-4]。

Canny提出评价边缘提取的三条准则[1]:信噪比准则、定位精度准则和单边响应准则,并基于这三条准则提出了Canny 算法。Canny 算法在焊缝边缘提取中相对于其他传统边缘算法抗噪性能较好,定位精确高[1]。但同样易受噪声干扰,信噪比低。文献[5]根据梯度方向,利用插值法在准确的方向上进行了非极大值抑制对Canny 算法做出改进。但同样梯度噪声也会对插值结果产生影响,最终导致边缘点被错误抑制,保留了更多噪声点。文献[6]将非极大值进行二次筛选,能够提高Canny算法检测结果连续性,但二次筛选要从大量备选点选出个别边缘点实时性较差。

实现机器视觉识别直缝焊管焊缝位置需要快速准确地获得焊管边缘与焊缝边缘,然而在实际应用中,焊管表面常出现锈渍以及辊轮划痕对边缘提取产生干扰,现有算法无法有效提取焊缝边缘与焊管边缘。

根据直缝焊管图像目标边缘简单且只能获得部分焊管图像的特点提出一种改进的Canny 算法,利用梯度方向局部均值偏差进行非极大值抑制并且利用捕捉到焊管图像特征建立焊管焊缝强弱边缘连接规则。实验结果表明该方法能够改善传统Canny算法在直缝焊管焊缝检测中易受噪声干扰强弱边缘连接不佳等问题。

2 传统Canny算法在焊缝识别中存在问题

传统Canny算法主要经过四个步骤[1]:首先对灰度图像进行二维高斯卷积进行滤波;对滤波后的图像进行一阶差分计算梯度幅值与方向;之后对每个点梯度方向相邻点进行大小比较,把不是极大值的点设置为0;将大于高阈值的点作为强边缘,直接输出为边缘。梯度介于高阈值与低阈值的点作为弱边缘,如果弱边缘点8邻域内存在强边缘点,那么该弱边缘点作为边缘输出。传统Canny算法需要人为设计高低阈值参数,阈值过高将会造成边缘缺失,阈值过低将出现大量伪边缘,因此阈值选取需要进行大量试验以及经验判断。

传统Canny算法利用梯度信息进行边缘判断,梯度信息容易受噪声干扰。梯度非极大值抑制对目标点与梯度方向对应相邻点进行大小比较,如果出现目标点小于某个梯度方向上的相邻点,则将目标点梯度设置为0。该方法判别依据单一,容易受噪声干扰,将边缘点判断为非边缘点[7]。

传统Canny算法通过大于高阈值的强边缘像素点8邻域范围内检索弱边缘来获得连续的边缘,然而在利用机器视觉检测直缝焊管中,只能获得焊管的部分位置图像,割裂了整个目标强弱边缘的获取。焊管边缘受背景环境影响呈现出不同的对比度,当背景变化使焊管边缘对比度升高,焊缝边缘可能会被视为弱边缘,传统Canny算法将会丢失焊缝边缘。

3 改进的Canny算法

3.1 改进的非极大值抑制

噪声对梯度具有较大干扰,利用非极大值抑制能够消除部分非边缘点,8 邻域内直接比较容易造成边缘点被噪声梯度点抑制,影响非边缘点判断的准确度。为解决这一问题,对8邻域进行扩张至16 邻域。将梯度方向角度对应像素点由4 个提升至8个,利用对应像素点(3×3)邻域(如图1所示)内均值M替代对应点,并计算对应点(3×3)邻域各点局部邻域偏差值均值D。使待判断边缘点与梯度方向邻域内多点均值和局部邻域偏差均值之和进行比较,待判断边缘点为极大值时该边缘点保留,即同时满足:

图1 梯度方向对应(3×3)邻域Fig.1 Gradient Direction Corresponds to(3×3)Neighborhood

图2 梯度方向θ对应邻域中心点编号Fig.2 Gradient Direction θ Corresponds to the Number of the Center Point of the Neighborhood

计算k×k邻域局部均值M和局部邻域偏差均值D可通过积分图[8]的方式进行计算,可以提高算法实时性。以局部均值M为例,具体步骤如下:

对每行每列开头增补(k-1)个该列或该行首位数字。

对行列进行累加计算积分图I:

3.2 自适应阈值选取

最大类间方差法又称大津法,是利用直方图分布对区域均值方差进行聚类,选择最大类间方差时的分割阈值作为最佳阈值。最大类间方差法能够在最小误分误差下将目标像素点与背景像素点的灰度值进行区分[6]。

对所有未被抑制边缘点进行分类,分为前景与背景。根据梯度幅值将未被抑制的点均等间隔划分为64级。

式中:S—未被抑制的所有像素点个数;

ni—第i级像素点个数;

pi—第i级在所有极值点中的概率。

目标梯度均值和背景梯度均值为:

式中:T—区分目标点于背景点阈值;

所有点梯度均值为:

目标点与背景点类间方差为:

当类间方差最大时,背景点与目标点的错分概率最小。

选择最大类间方差对应梯度幅值Th作为高阈值。

若Th个数大于1,为了获得丰富的弱边缘信息选择Th的最小值为高阈值。低阈值Tl选取Tl=Th*0.4。

3.3 滞后阈值

传统Canny算法利用滞后阈值补充目标物体弱边缘,当强边缘像素点8连通区域内存在弱边缘像素点时,将此弱边缘像素点作为边缘像素点输出。由于直缝焊管具有较大长径比,在图像中只能够截取到部分焊管图像,当焊管边缘与背景对比度远远大于焊缝边缘与焊管边缘对比度时,焊缝边缘会被识别为弱边缘,导致传统Canny算法滞后阈值无法连接弱边缘中有效的焊缝边缘信息。针对上述问题,采用强边缘连通区域8个极点(左上、左下、顶左、顶右、右上、右下、底左、底右,如图3所示)邻域内寻找弱边缘连通区域,连接新找到的连通区域直到没有出现新的连通区域出现为止。在此连接规则上,如果强边缘连通区域8个极点中某个极点连接到图像边界,则该条边界上的像素点相连的弱边缘视为与强边缘连通区域相连,检索出所有与强边缘相连的弱边缘作为边缘输出。

图3 连通区域8个极点Fig.3 8 Poles in the Connected Area

4 实验结果与分析

实验算法在Matlab2016b平台上进行验证,实验环境为Inter i5200u 2.2GHz 4G 内存。为了验证改进算法针对非极大值抑制做出的改进,笔者构造带有强弱边缘的图象添加不同噪声进行实验。对改进算法、传统Canny算法和文献[9]所述8邻域内根据梯度方向插值比较的非极大值抑制后保留的点进行对比,统计非极大值抑制后保留的正确边缘点和噪声干扰点数量,如表1所示。受噪声影响边缘线两侧相邻像素点位置都检出或者一侧检出都记为检出该边缘点。构造图片可以获得准确的边缘位置,从而进行客观的评价,如图4 所示。带有强弱边缘的理想图像,如图4(a)所示。图4(a)中添加噪声方差为0.1的高斯噪声,如图4(b)所示。改进非极大值算法抑制算法对图4(b)处理结果,如图4(c)所示。传统非极大值抑制算法对图4(b)处理结果,如图4(d)所示。文献[9]对图4(b)非极大值抑制处理结果,如图4(e)所示。

表1 高斯噪声下非极大值抑制后保留点个数Tab.1 Number of Retained Points after Non-Maximum Suppression under Gaussian Noise

图4 噪声下非极大值抑制后保留点Fig.4 Retained Points after Non-Maximum Suppression under Noise

从表1可以看出改进非极大值抑制算法相比传统Canny算法和文献[9]的方法在噪声中能够保留更多强弱边缘像素点,同时能够有效减少保留的伪边缘点数量。说明改进的非极大值抑制算法能够在原有降噪滤波的基础上进一步抑制噪声和保留边缘点。为了验证所提改进方法最终效果,选择焊管边缘与背景对比度远高于焊缝边缘与焊管的图像作为研究对象,与传统Canny算法在取相同阈值和以0.01为步长手动目测选择最佳阈值进行比较,检测结果,如图5所示。从图5中可以看出虽然这里的方法检测边缘存在断边,但是没有损失焊管边缘与焊缝边缘主要特征。这里的方法在没有引入过多噪声前提下能够较完整的得到焊管边缘位置与焊缝边缘位置。传统Canny算法在选取与改进算法同样阈值时,丢失了弱边缘焊缝边缘位置。人为的调整阈值到Canny算法在能够捕捉到焊管边缘位置与焊缝位置的最高阈值时,引入了大量噪声边缘。

图5 边缘检测结果Fig.5 Edge Detection Results

5 结束语

针对直缝焊管焊缝位置识别过程中易受锈渍、辊道划痕干扰和焊缝边缘不易检出等问题干扰,对传统Canny算法做出改进。改进算法通过局部均值偏差非极大值抑制代替传统非极大值抑制,对未被抑制的点通过最大类间方差法选取阈值,最后根据焊管图像特点设定强弱边缘连接规则得到最终边缘检测结果。实验结果表明:通过局部均值偏差进行非极大值抑制比传统8邻域内直接比较和进行插值的非极大值抑制能够更有效的保留边缘点信息和抑制噪声。利用最大类间方差法选取阈值,并通过外加边界的强弱边缘连接规则能够有效地检测出焊管焊缝图像。

猜你喜欢
极大值邻域像素点
基于混合变邻域的自动化滴灌轮灌分组算法
基于局部相似性的特征匹配筛选算法
一道抽象函数题的解法思考与改编*
稀疏图平方图的染色数上界
2018全国Ⅲ(21)题的命题背景及解法探究
紧扣题目的本质
——2018年全国高考Ⅲ理科数学21题别解
基于5×5邻域像素点相关性的划痕修复算法
基于邻域竞赛的多目标优化算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割