基于OES-ELM的PCB板表面印线检测算法

2022-02-22 01:07刘洋孙龙洋韩怡柴广卿张国良
电脑知识与技术 2022年36期
关键词:机器视觉

刘洋 孙龙洋 韩怡 柴广卿 张国良

关键词:机器视觉;SMT;双边滤波;OES-ELM;阈值连接

中图分类号:TP18 文献标识码:A

文章編号:1009-3044(2022)36-0029-04

电子器件制造技术的快速发展对PCB板自动贴装设备带来商机的同时,也带来了更为严峻的技术考验[1]。目前,国内多家企业着手全自动贴装设备的研发,部分设备流入市场,但在贴装精度和速度上与发达国家相比有一定差距,严重制约着生产效率提升。因此,如何提高电子器件生产过程中PCB板贴装位置的快速、精准定位,对提高生产效率、提高产品质量具有重要的研究意义。

PCB板表面白色印线边缘位置的获取通过图像处理实现。因PCB板边缘与周围背景相比,有着一定的梯度跳变,可通过边缘检测的手段实现边缘位置确定。但受PCB板贴装位置边缘信息不明显、模组表面产生的划痕等原因的干扰,通过传统边缘检测算法实现PCB板快速、稳定、高精准度的边缘检测仍具有一定的挑战。

目前,边缘检测算法主要存在以下几类:1)基于小波变换(wavelet transform)的检测算法[2];2)基于形态梯度理论的检测算法[3];3)基于Canny 的检测算法[4];4)基于机器学习的检测算法[5]等。基于小波变换[6]的检测算法,通过对图像进行不同尺度的小波变换来实现,但受尺度大小的影响,当尺度过大或过小时,获取的图像边缘信息差距较大,不具有通用性,故许多算法中通过多尺度融合来弥补尺度过大或过小带来的影响,但是这个算法运算逻辑复杂,无法满足实时性的要求;基于形态学梯度理论的检测算法,该算法简单易操作,且对部分噪声具有比较好的抑制作用,但获取像素点的位置不够精确;基于Canny算子[7]的检测算法应用十分广泛,但也因阈值难以控制等问题仍然不能胜任图像微弱边缘的检测;基于机器学习[8]的算法可同时兼顾检测速度和精度的要求,近年来,在边缘检测领域得到了广泛的应用。

本算法基于自适应误差自校正极限学习机[9](Op⁃timally Error Self-adjustment Extreme Learning Ma⁃chine, OES-ELM),提出一种PCB板贴片轮廓位置自适应检测算法。首选使用双边滤波算法对图像进行预处理,该算法在较好地保持图像边缘信息的基础上,能滤除大部分噪声的影响;其次,为使后续检测更具自适应性,在图像滤波的基础上将PCB板图像进行1/16 分块;然后,提取图像块的DCT(Discrete CosineTransform,离散余弦变换[10])特征,将其输入OES-ELM分类器,将图像块分为边缘块、平滑块、纹理块;最后,提取各图像块梯度图,分别确定高低阈值,将高低阈值之间的像素点进行连接,最终刻画出白色印线的位置信息。

1 基于OES-ELM的PCB板表面印线检测算法

为了能更好地检测PCB的贴片位置,防止因贴片偏移导致PCB板的报废或返工,本文提出的基于自适应误差自校正极限学习机的划痕检测算法,其各部分的流程如图1所示。由图可以看出,改进部分主要有以下四个方面:1)首先采用改进的双边滤波来滤除噪声;2) 通过提取降维的DCT特征作为图像块的分类特征;3) 用改进的自适应误差自校正极限学习机来对图像块进行分类,可根据数据集自动确定隐层神经元个数,检测效果更为稳定;4) 对不同的图像块采取不同方法自适应确定阈值,并进行边缘连接;下面具体介绍以上四部分具体实现。

1.1 改进双边滤波

双边滤波[12]的本质是高斯滤波,其目的是解决高斯滤波容易导致边缘被模糊的情况,高斯滤波采用相同的权重,忽略了像素之间的差异性,双边滤波在一定程度上解决了这一问题,且算法的复杂度比较低,实时性比较好,但是其在遇到高频噪声时,不易去除。双边滤波的基本思想是:其权重由像素点领域内的空间近邻度的权值加上相似度计算的权值的乘积组成,再与图像进行卷积。因此距离较远的像素点不会对边缘点产生较大影响,其权值计算公式如下:

对图像块作DCT变换后,其AC分量的绝对值会大致呈现从左上角向右下角逐渐递减的趋势。为了降低特征的维度,此处仅保留其直流系数以及前127个交流系数,最终得到128维的纹理特征向量。为避免取值范围及量纲的不同,将提取的特征归一化到[-1,1]。

1.3 基于自适应误差自校正极限学习机的分类

本文使用OES-ELM获取的DCT特征进行分类,相比于ES-ELM[10]算法,具有训练速度快、算法对正则项不敏感的优势,且根据数据集自适应确定隐层神经元的个数和隐层权值矩阵,具有较好识别性能。ELM网络结构如下图所示。

OES-ELM网络训练过程主要分为两阶段,初始化阶段和权值更新阶段。初始化阶段的目的是获得恰当的隐层特征映射空间(包括隐层权值和隐层神经元个数),结合L1/2正则化找到合适的隐层结构。更新阶段目的是结合L2正则化更新隐层权值,使网络获得权值最小解,提高网络的泛化性能。具体算法步骤如下:

本文针对OES-ELM网络,本文选用了10幅PCB图像来生成所需要的数据集。通过对提取的DCT特征分类,最终将PCB图像分为边缘块、纹理块、平滑块。

1.4 梯度计算

传统的Canny检测算子在计算图像的梯度时采用了梯度算子,仅仅考虑了两个方向的梯度大小,然后对其求取平均值,导致比较容易丢失部分边缘信息。针对这一问题,本文在此基础上增加两个方向的梯度合成计算,如图6所示。

1.5 图像块阈值分割

针对以上步骤所得到的结果图,首先对其进行非极大值抑制,保证得到的边缘只有单像素响应;然后将其进行1/16分块,并自动地确定阈值。

针对纹理块,因为其梯度直方图没有固定规律,且通常人眼并不会对其中存在的信息进行详细分辨,因此把高低阈值设置为梯度的平均值以及0.5倍的平均值;针对边缘块,采用大津法(OSTU)确定高阈值,0.5倍的高阈值作为低阈值;对于平滑块,因为还可能存在少量的边缘信息,不能将其全部归类于背景点,故此处继续对其进行分块,以区分是否存在该情况。

针对平滑块,对其再进行1/4分块,并计算各个图像块的像素之和,以及跟其平均像素之间的差值,当差值比设置的阈值小时,则认为其是背景;否则,则判定其存在少量的边缘,将其按照边缘块的方法来进行处理。

最后,对高低阈值之间的像素点进行连接,若其邻域内存在高于高阈值的像素值,则将其置为边缘点,直至没有新的像素点并入。

2 实验结果与分析

从PCB板的表面印线的检测效果来看,本文算法比前几种算法都具明显优势,Canny算子与文献12在提取出印线的同时,也检测出了许多伪边缘,不利于后续的检测。以相同数据集训练的ELM网络所提取的边缘与本文算法类似,但本文算法中不用人工用试错法调试隐层神经元个数,训练更加快速,稳定性和适应性更好。因此,本文算法能够在检测出更多印线的同时,较少地检测出伪边缘。

3 结论

本文提出了一种基于自适应误差自校正极限学习机的PCB板印线检测方法。先使用改进的双边滤波,在保持边缘的同时,又可以在一定程度上去除各种噪声;对图像进行1/16分块,并提取降维的DCT特征;利用OES-ELM对图像块进行分类;采用4方向梯度模板计算图像梯度,并对其进行非极大值抑制,保证边缘宽度为单像素;针对不同的图像块运用不同的方法确定阈值,并将边缘块进行再次分块,以防止部分的细小边缘被遗漏;最后对高低阈值之间的像素点进行连接。实验结果表明,提出的算法可以有效地检测出PCB板上印线的同时,又能尽可能少地检测出虚假边缘,具有较高的边缘检测率。

猜你喜欢
机器视觉
大场景三维激光扫描仪在研究生实践教学培养中的应用