乔 羽,沈精虎,于 腾,安 帅,孙 恺
(1.青岛大学 机电工程学院,青岛 266071;2.青岛大学 电子信息学院,青岛 266071)
PCB的自动检测在电子制造业的发展中起着重要的作用。最常用的检查系统是AOI[1~3]系统和自动X射线检查(AXI)[4~7]系统。PCB组件安装技术包括表面贴装技术(SMT)和通孔(TH)技术。迄今为止,对TH元件检测的研究很少[8]。TH元件比SMT元件更难检测,因为一些TH元件较大会覆盖其他组件,并且一些元件的安装变动范围较大。PCB缺陷可分为裸板缺陷[9~11]、元件缺陷[12]、焊点缺陷[13~15]等。
CRISPIN等[16]提出了一种基于归一化互相关模板匹配的遗传算法,这种方法可以定位SMT元件的位置和角度,这种方法的速度是空间遍历搜索的六倍。GANAVI等人[17]利用背景提取、模板匹配和小波变换实现了PCB缺陷的检测和分类,缺点是它对模板和待测试图像的对准精度要求很高。冯等人[18]提出了一种利用遗传编程(GP)算法训练GP检测器的新方法,该方法不需要PCB元件的原始坐标,也不需要严格的照明系统,并且可以在不同类型的板上工作而不需要再训练。SunDaJ等人[19]提出了一种使用彩色背景提取判别缺陷的解决方案,虽然这种方法可以检测较大面积的PCB,但它需要高分辨率的摄像机以及标准板和待测试板之间的理想对准。李[20]对PCB图像的拼接算法进行了改进,并对权重检测算法进行了研究,其优点是检测PCB元器件的速度快、精度高。目前所提出的检测PCB缺陷的技术很大程度上依赖于严格的照明系统[21~23]。
本文主要研究TH元件的缺陷检测。我们的方法是:首先采集一批标准PCB图像,并对图像进行对准,然后训练模板元件,最后将模板元件与待测试的组件进行比较定位缺陷。该方法用较少的标准PCB对标准模板进行训练,在实验中使用了6个标准PCB,得到了理想的结果。事实上,使用其他数目的标准PCB也可能会得到理想的结果,需要通过实验验证。
我们的工作主要包括两个核心部分,第一部分是训练模板元件。第二部分是利用加权SSIM算法检测丢失的元件和错件。检测大体过程如图1所示。
图1 整体流程图
在进行PCB对准时,我们使用结构化边缘检测(SED)算法和Harris算法提取PCB的两个特定点。根据PCB板的原始信息,将图像调整到相应的位置和大小。这种方法可以在没有严格的照明环境或者高分辨率工业相机的情况下达到高精度。
得到对准的PCB之后,提取标准元件和待检测元件。通过训练标准元件得到元件权重矩阵,并采用结构相似性指数(SSIM)算法来计算平均元件和待检测元件的相似度矩阵,然后将相似度矩阵和权重矩阵相乘并通过归一化处理,对于每个待检测元件得到一个最终的相似度值。最后给通过给定的阈值判别元件是否存在缺陷。
下文第1节描述了PCB权重矩阵训练方法。第2节讨论了加权SSIM算法。第3节为实验部分。第4节为结论和展望。
从六个标准PCB图像中提取元件图像如图2所示,并根据它们计算元件平均图,如图3所示。训练权重图,训练结果如图4所示。
图2 六个标准元件图像
图3 元件平均图像
图4 元件加权图
训练过程:首先,输入六个标准元件灰度图像。然后,将元件图像的大小缩小四倍,以简化计算过程,提高运算速度。最后,计算元件的方差和权重图。
方差通过式(1)计算:
其中E(Xk(i,j)是前k幅图在像素点(i,j)处的一阶均值:
方差值反映了像素灰度值的变化。方差越小,样本集(i,j)的灰度变化范围越小,则该点可以更好地反映该点的特征,并且应该给予较大的权重。
本文用标准正态分布给出了权系数,即:
图像对比是AOI系统中常用的一种检测方法。该技术的基本原理是比较标准模板和待测试元件之间的像素信息,然后根据预设的阈值判断是否存在缺陷。传统技术编程简单,操作速度快,但假阳率高。本文在传统技术的基础上,进行了改进工作。提出了一种将权重矩阵与像素SSIM相似度矩阵相乘的新方法,较好地反映了两元件图像的相似度信息。
1)将图4的六个元件的彩色图像求平均得到如图2(b)所示的均值图像;
2)采用滑窗法,计算每个窗口位置的待检测图像和均值图像的SSIM矩阵,滑窗的目的是为了匹配到TH元件的准确位置;
3)权重矩阵和SSIM矩阵相乘;
4)归一化加权的SSIM矩阵,使矩阵的每一个元素的变动范围为0~1;
5)对归一化的加权SSIM矩阵求均值;
6)根据给定的阈值判别待检测元件是否有缺陷。流程如图5所示。
图5 缺陷判断流程
常用的相似度计算技术有:欧式距离、曼哈顿距离、闵可夫斯基距离余弦相似度、JACARD相似度、皮尔森相关系数等。SSIM在PCB检查中很少使用,但是经过实验发现SSIM算法较适合PCB元件的缺陷判断。人类视觉系统对掌握结构信息具有良好的适应性。SSIM从亮度、对比度和结构三个方面估计图像的视觉质量这和人类视觉系统相似。
对于SSIM算法,首先我们需要计算亮度对比参数L(x,y):
其中μx和μy是两幅灰度图像的均值。常数c1的设定是为了避免当接近0时候公式无意义。并且,c1=(k1.l)2,其中l图像的灰度值的取值范围,并且l=255,k1=0.01。
对比度比较参数C以类似的方式计算:
其中σx和σy是灰度图像的标准差。其中c2=(k2.l),并且k2=0.03。
S代表结构对比参数:
其中σxy是灰度图像的协方差。
SSIM值由下式得出:
其中α,β,γ>0,为了得到简化形式,我们设定:α=β=γ=1,并且c3=c2/2。SSIM的最终形式如下:
本节分析了上述方法的实用性。首先搭建实验环境,然后开发检测系统,进行实验以及对比研究。
本实验采用五百万像素分辨率的CCD相机固定在测试平台的中心顶部。为了解决照明不均匀问题,搭建了一个简单的黑箱,该系统配备了统一的分布式白光LED灯。黑箱的要求不严格,只要它能隔绝大部分环境光。基于Windows 10操作系统,该方法是在MATLAB 2016A环境下开发的,对PCB板进行了训练和测试。
实验结果如图6(a)~图6(c)所示。缺件和错件的区域用红色矩形标记。
接下来的实验比较了加权和传统SSIM滑动窗算法。选择图6所示PCB中的六个元件A、B、C、D、E、F分别计算缺件、错件和无缺陷情况下的相似度值。
表1列出了传统SSIM算法实验数据。在我们的实验中,前两个待测PCB用正确的元件组装起来。第三和第四个待测PCB在所有的A~F位置不组装元件。第五个待测PCB装配在A~F位置组装错误的元件。
表2列出了加权SSIM算法的实验结果。实验手段类似于上一个实验。唯一的区别是,这个测试使用的是加权SSIM算法,而不是传统的SSIM算法。
为了对比实验数据,根据表1和表2中的数据将实验结果绘制成折线图,如图7和图8所示。
通过试验发现0.43是适当的阈值。从这两幅折线图可以很明显的得出结论,加权SSIM比传统的SSIM算法判断缺陷更准确。
图6 实验结果
表1 SSIM传统SSIM算法的实验数据
表2 SSIM加权SSIM算法的实验数据
图7 传统SSIM实验数据
本文提供了一种解决现有光学检测技术局限性的解决方案,并提出了一种针对插件PCB的错件和缺件的检查方法。该检测系统提出了一种一种PCB元件缺陷判断算法——加权SSIM算法。这种方法的优点如下:
1)只需要很少的标准的PCB完成训练工作,在实际适用中,便于操作,节省编程时间。
2)该方法检测错件和漏件准确。
这种方法缺点是滑窗的缺点是运行速度较慢。本文只给出了错件和漏件的检测方案,其他类型的缺陷检测(如字符检测、SMT元件缺陷检测、焊点缺陷检测等)也可以尝试用加权SSIM算法进行检测。