自适应Canny算子PCBA元器件边缘检测及修复 下载: 854次
1 引言
智能手机PCBA (Printed Circuit Board Assembly)元器件规格较小、集成紧密,其边缘检测是视觉测量与定位的关键步骤,对智能机器人视觉引导自动化生产线中的装配精度起着决定性的作用。传统Canny算子[1-2]集高斯去噪、非极大值抑制、阈值分割于一体,广泛应用于工业生产中元器件的边缘检测。将传统算法直接应用于PCBA元器件边缘检测时,PCBA电路板元件密集区域因受复杂背景的影响出现边缘粘连的情况,且伪边缘数量随着背景复杂度的增加而急剧增加,难以进行后续亚像素边缘轮廓的提取和拟合[3-4]。文献[ 5]指出,传统Canny算子NMS(Non-Maximum Suppression)仅适合捕捉“屋脊状”边缘而不适合捕捉“阶梯状”边缘。PCBA电路板背景与元器件的灰度差异较小,且元器件边缘密集、较细,“阶梯状”边缘占据较大比例。文献[ 6-7]指出,传统Canny算子的阈值分割过程存在筛选过度问题,部分弱边缘被过滤,导致检测边缘不完整,出现边缘断裂的情况。文献[ 8]采用类间差分计算Canny最优阈值,并对水平和垂直方向的边缘点进行非极大值抑制,在细化边缘的同时尽可能减少边缘断缺现象。通过本文实验发现,文献[ 8]对稀疏直线有较好的边缘检测效果,对各向异性的圆形以及密集边缘的检测仍存在一定的局限性。文献[ 9]中使用直方图分层法对阈值的选取策略进行优化,点区与边缘点区分割结果表明并非所有阶梯状边缘都要保留,文献[ 8]中的方法虽然具有较好的边缘细化能力,但是在边缘丰富区域会引入较多的伪边缘。文献[ 9]为了提高边缘检测的完整度,使用区域划分法进行阈值分割,这对图像质量要求较高,且区域划分的依据难以判定,从而导致分割效果出现块状效应[10]。
GVF(Gradient Vector Flow) Snake模型最初应用于医学图像分割,在对病灶区的分割过程中,该模型因部分边缘较弱,极易发生边缘穿透现象[11];EPGVF(Edge-Preserving Gradient Vector Flow) Snake模型[11]在GVF Snake模型的基础上加入边缘保护项,用于防止弱边缘或断缺边缘的穿透,可以对目标区域实现较完整的分割。鉴于该模型曲线良好的扩散性和边缘依附能力,本文将EPGVF Snake模型应用到PCBA电路板目标区域的分割中,期望能够对元器件的边缘实现精确完整的分割,同时在分割过程中根据局部的梯度方向和模板对断缺的边缘部位实现像素填充,进而达到对不完整边缘的修复功能。
针对以上问题和设想,本文提出邻域窗自适应阈值非极大值抑制(NWATNMS)算法与EPGVF Snake模型相结合的策略。首先将阶梯状边缘点与像素块中灰度均值进行比较,剔除不属于边缘的像素点,确定局部梯度的幅值和方向,实现密集边缘的分离,这在一定程度上减少了伪边缘的数量。针对部分边缘断缺区域,先使用EPGVF Snake模型完成边缘分割,再利用本文设计的像素填充模板实现断缺边缘的有效修复。根据实验对比结果,改进后算法对图像边缘检测的完整度得到提升,能有效保留边缘细节。在应用于PCBA元器件边缘检测时,改进后算法能有效减少元器件密集区域边缘断缺和粘连现象,实现对元器件边缘较完整的提取。
2 高完整度PCBA元器件边缘检测方法
2.1 邻域窗自适应阈值Canny算子
边缘作为描述图像信息的有效手段,最大限度地保留图像的边缘信息、抑制非边缘信息是非极大值抑制的主要工作原理。传统Canny算法的非极大值抑制过程简单地将像素点与其边缘方向的2个邻近像素值进行比较,若中间值最大,则保留为边缘像素,否则对该像素进行抑制,即保留屋脊状边缘。文献[ 8]中不但考虑屋脊状边缘,还要考虑阶梯状边缘,文献[ 8]中方法在实验中取得了较好的边缘细化效果。考虑到梯度方向并非与边缘像素具有一一对应关系,且距离越远相关性越差,从而带来一定的随机误差[12]。通过本文实验发现,文献[ 8]中提出的方法在处理边缘丰富、背景复杂的区域以及各向异性的圆形时仍会产生一定数量的伪边缘,且无法很好地解决边缘粘合的情况,边缘提取效果不理想。
为了尽可能减小随机误差,防止边缘丰富区域出现边缘粘合现象,本文将文献[ 8-9]中的方法进行改进和推广,提出对屋脊状和阶梯状边缘的保留条件进行限制。以3×3像素块为例,假设边缘为水平方向(对其他方向仍然适用,在此仅以水平和垂直方向为例进行说明),像素(i,j)处的灰度值记为A(i,j),屋脊状边缘和阶梯状边缘的改进计算方法为
式中:T表示目标像素点保留的条件阈值,通过计算8邻域均值得到;A表示当前像素点;n表示像素块的大小;Ar表示屋脊状边缘像素点,通过与同列邻近值以及阈值性比较得到;Al表示阶梯状边缘像素点,通过同行邻近值以及阈值比较得到。当前像素点参与均值运算时会减小算法的抗噪能力[13],故本文对除当前像素点之外的8邻域像素点求均值。
2.2 基于EPGVF Snake模型的断缺边缘修复方法
本文采用NWATNMS算法进行处理后,图像边缘被细化、分离,这较好地解决了边缘粘合问题,但在实际应用过程中,由于手机PCBA电路板元件密集、背景复杂,不同的元件材质对光源的反射程度不同,提取边缘图像局部仍存在轻微边缘断缺现象,从而影响整体边缘提取的完整度。
本文受文献[ 14-15]中外力场边角能量保持模型的启发,将GVF与Snake模型结合,并加入边缘保护项,得到EPGVF Snake模型。该模型可以促使外力场沿着边缘梯度方向进行扩散,防止发生弱边缘泄漏,将Snake曲线依附后的图像进行卷积处理,使用像素置换模板,从而恢复出边缘断裂部位。
EPGVF Snake模型的最优解可通过最小化计算得到,即
式中:m,μ,g,h均为权重系数;Jv表示外力场v的雅可比矩阵;S表示具有各向异性光滑作用的平滑项;Gσ为标准差为σ的二维高斯函数;ÑV为拉普拉斯算子;ε为能量泛函;P为边缘梯度的方向向量,当
式中:I表示一幅图像;下标x、y表示方向。
以具有各向异性的圆形图像为例,利用
1) 扫描附着曲线像素点的行或列方向,判断是否具有1标记点;
2) 扫描附着曲线像素点与1同向位置,判断是否存在0标记点,如果存在,进行标记;
3) 将标记点设置为1标记点位置的像素值,循环直至完成填充。
通过加入边缘保护项的模型参数,可以保证Snake曲线沿着边缘的梯度方向进行扩散,且不会发生弱边缘穿透现象。如
图 2. 利用EPGVF场确定缺失边缘。(a)测试图2 ;(b)边缘梯度场图;(c) EPGVF场图;(d)边缘能量图;(e)边缘断裂标记图
Fig. 2. Determine missing edges by EPGVF field. (a) Test image 2; (b) edge gradient field image; (c) EPGVF field image; (d) edge energy image; (e) edge fracture mark image
利用EPGVF场确定图像的缺损边缘后,本文利用本节中提到的像素置换模板进行缺失边缘的恢复,如
图 3. Snake算法实现边缘恢复。(a)边缘拟合初始插值图像;(b)迭代拟合后的图像;(c)恢复后的图像
Fig. 3. Edge recovery by Snake algorithm. (a) Initial interpolation image of edge fitting; (b) image after iterative fitting; (c) restored image
3 实验结果与分析
本文仿真是在visual studio 2017平台进行。EPGVF Snake模型可以利用梯度扩散场检测边缘的缺失,且在Snake曲线扩张时不会出现缺失边缘的穿透现象。Canny算子检测后的边缘仍存在一定数量的弱边缘像素点,利用梯度向量流模型的自由扩散性对Canny算子检测后的边缘进行分割并完成像素置换,使之成为EPGVF Snake模型和Canny算子结合的切入点。
表 1. 边缘完整度评价
Table 1. Edge integrity evaluation
|
图 4. 本文算法的实验结果。(a) PCBA边缘图;(b)边缘梯度场x微分;(c)边缘梯度场y微分;(d) EPGVF场x微分;(e) EPGVF场y微分;(f) EPGVF梯度场;(g)边缘阶跃能量图;(h)本文方法的边缘标记图像
Fig. 4. Experimental results of proposed method. (a) PCBA edge map; (b) differentiation of x direction of edge gradient field; (c) differentiation of y direction of edge gradient field; (d) differentiation of x direction of EPGVF field; (e) differentiation of y direction of EPGVF field; (f) EPGVF gradient field; (g) edge step energy map; (h) edge mark image of proposed method
为了证明本文算法对边缘密集区域的分离特性,使用具有8个方向的“米”字形和具有各个方向特性的圆环图像进行测试,结果如
图 5. 各向异性密集边缘分离测试图。(a)(g)测试图局部放大图;(b)(h)测试图;(c)(i)传统算法的结果;(d)(j)文献[ 8]中算法的结果;(e)(k)文献[ 9]中算法的结果;(f)(l)本文方法的结果
Fig. 5. Test images of anisotropic dense edge separation. (a)(g) Local enlarged images of test images; (b)(h) test images; (c)(i) results of traditional algorithm; (d)(j) results of algorithm in Ref. [8]; (e)(k) results of algorithm in Ref. [9]; (f)(l) results of proposed method
如
图 6. 几种算法的处理结果。(a)原图;(b)传统算法;(c)文献[ 8]中算法;(d)文献[ 9]中算法;(e)本文算法
Fig. 6. Processing results of several algorithms. (a) Original image; (b) traditional algorithm; (c) algorithm in Ref. [8]; (d) algorithm in Ref. [9]; (e) proposed method
为直观评价各种算法对边缘提取的完整程度,本文采用文献[
17]中提出的边缘量化方法。用m表示边缘点的数量,n表示满足3×3像素块中多连通像素区域的数目,表示了边缘线性连续程度,n与m的比值反映了边缘连接的完整度,该比值越小表示边缘连接的完整度越高。
图 7. 连通域未标记图像和标记图像。(a)未标记图像;(b)标记图像
Fig. 7. Unlabeled image and labeled image of connected domain. (a) Unlabeled image; (b) labeled image
将本文算法与文献[
8]、文献[
9]中算法进行比较,结果如
4 结论
边缘检测是整个图像处理工作的重要环节,是决定感兴趣区域提取精度的重要保障。传统的非极大值抑制方法存在漏检边缘点的缺陷问题。本文算法对此进行了改进,提出了利用像素均值排除非边缘像素点的方法,从而减少伪边缘的数量,对解决光源充足情况下环形光源与环形漫反射光源均因无法克服元件反光差异而导致图像中灰度不均进而产生的边缘粘合问题具有良好的效果。通过将EPGVF模型与Snake模型进行结合,使用扩散向量对外力场进行强化,并且使用两个权重函数调节外力场以防止出现边缘泄漏问题。整体算法对于边缘检测中出现的边缘断缺现象具有较好的修复效果, 但由于算法的执行过程对初始点的选取有较大的依赖性,需要以人工标记的方式初始化扩散点,因此今后的改进方向主要为初始点的自动化选择。
[1] 胡克满, 罗少龙, 胡海燕. 应用Canny算子的织物疵点检测改进算法[J]. 纺织学报, 2019, 40(1): 153-158.
Hu K M, Luo S L, Hu H Y. Improved fabric defect detection algorithm using Canny operator[J]. Acta Textile Sinica, 2019, 40(1): 153-158.
[2] 隋成华, 韩勇浩, 徐丹阳, 等. 角膜地形图仪中实时图像检测[J]. 光学学报, 2017, 37(6): 0611001.
[3] 王静, 王海亮, 向茂生, 等. 基于非极大值抑制的圆目标亚像素中心定位[J]. 仪器仪表学报, 2012, 33(7): 1460-1468.
[4] 郭萌, 胡辽林, 赵江涛. 基于Kirsch和Canny算子的陶瓷碗表面缺陷检测方法[J]. 光学学报, 2016, 36(9): 0904001.
[5] 董瑶, 李伟超, 刘今越, 等. 用于航空发动机叶片焊接修复的改进Canny算法[J]. 焊接学报, 2018, 39(1): 37-40,130.
[6] 罗文婷, 李中轶, 李林, 等. 基于改进Canny算法的道路标线自动识别及定位[J]. 西南交通大学学报, 2018, 53(6): 1253-1260.
[7] 段红燕, 邵豪, 张淑珍, 等. 一种基于Canny算子的图像边缘检测改进算法[J]. 上海交通大学学报, 2016, 50(12): 1861-1865.
[8] 黄剑玲, 陈博政. 一种基于Canny的边缘检测优化算法[J]. 计算机仿真, 2010, 27(4): 252-255.
[9] 李淼, 杨恢先, 张建波, 等. 改进二维直方图区域划分的阈值分割方法研究[J]. 光电子·激光, 2013, 24(7): 1426-1433.
[10] 刘松林, 牛照东, 陈曾平. 交叉熵约束的红外图像最小错误阈值分割[J]. 红外与激光工程, 2014, 43(3): 979-984.
Liu S L, Niu Z D, Chen Z P. Minimum error thresholding for infrared image under constraint of cross entropy[J]. Infrared and Laser Engineering, 2014, 43(3): 979-984.
[11] 胡学刚, 汤宏静. 一种改进的NGVF Snake模型[J]. 西南大学学报(自然科学版), 2014, 36(4): 139-145.
[12] 艾玲梅, 任阳红. 基于双域滤波与引导滤波的快速医学MR图像去噪[J]. 光电子·激光, 2018, 29(7): 787-796.
[13] 董晶, 杨夏, 于起峰. 基于边缘连接的快速直线段检测算法[J]. 光学学报, 2013, 33(3): 0315003.
[14] Wu Y W, Wang Y Q, Yu D J. Adaptive diffusion flow active contours for image segmentation[J]. Computer Vision and Image Understanding, 2013, 117(10): 1421-1435.
[15] Lu SP, Wang YQ. Gradient vector flow over manifold for active contours[C]∥Asian Conference on Computer Vision. New York: Springer, 2010: 147- 156.
[16] 邱秀兰. 基于改进Snake模型的图像分割算法研究[D]. 重庆: 重庆邮电大学, 2018.
Qiu XL. Research on image segmentation algorithms based on improved snake model[D]. Chongqing: Chongqing University of Posts and Telecommunications, 2018.
[17] HuD, Tian XZ. A multi-directions algorithm for edge detection based on fuzzy mathematical morphology[C]∥16th International Conference on Artificial Reality and Telexistence-Workshops (ICAT'06), November 29 - December 1, 2006, Hangzhou, China.New York: IEEE Press, 2006: 361- 364.
闫河, 赵其峰, 谢敏, 李晓玲. 自适应Canny算子PCBA元器件边缘检测及修复[J]. 光学学报, 2021, 41(5): 0515003. He Yan, Qifeng Zhao, Min Xie, Xiaoling Li. Edge Detection and Repair of PCBA Components Based on Adaptive Canny Operator[J]. Acta Optica Sinica, 2021, 41(5): 0515003.