15
基基基 基基基基基基基 基基基 基基基基基基基 PCB PCB 基基基基基基 基基基基基基 A. J. Crispin & V. Rankov Int J Adv Manuf Technol (2007) Automated inspection of PCB component s using a genetic algorithm template- matching approach

基于遗传算法模板匹配的 PCB 元件自动检测

Embed Size (px)

DESCRIPTION

Automated inspection of PCB components using a genetic algorithm template-matching approach. 基于遗传算法模板匹配的 PCB 元件自动检测. A. J. Crispin & V. Rankov Int J Adv Manuf Technol (2007). 摘要. - PowerPoint PPT Presentation

Citation preview

Page 1: 基于遗传算法模板匹配的 PCB 元件自动检测

基于遗传算法模板匹配的基于遗传算法模板匹配的 PCBPCB 元件元件自动检测自动检测

A. J. Crispin & V. RankovInt J Adv Manuf Technol (2007)

Automated inspection of PCB components using a genetic algorithm template-matching approach

Page 2: 基于遗传算法模板匹配的 PCB 元件自动检测

摘要 摘要

表面安装表面安装 PCBPCB 板的自动检测是保证质量、减少制板的自动检测是保证质量、减少制造废品浪费和返工的要求。造废品浪费和返工的要求。本文研究定位和识别本文研究定位和识别SMDSMD 检测图像中的多个对象的方法检测图像中的多个对象的方法。表面安装器。表面安装器件检测的主要难点之一是件检测的主要难点之一是元件放置元件放置的检测。元件的检测。元件放置缺陷如放置缺陷如漏贴漏贴、、偏位偏位或者是错误的或者是错误的旋转旋转元件是元件是主要缺陷必须在回流焊之前或之后进行检测。本主要缺陷必须在回流焊之前或之后进行检测。本文的重点在于定位多对象的对像识别技术;使用文的重点在于定位多对象的对像识别技术;使用灰色模型匹配来为一组元件创建灰色模型匹配来为一组元件创建通用模板通用模板。研究。研究中使用中使用标准化互相关标准化互相关模板匹配方法并对模板匹配方法并对限制搜索限制搜索区域区域以减少计算量的方法进行测试。查找模板位以减少计算量的方法进行测试。查找模板位置的方法使用了一个置的方法使用了一个遗传算法遗传算法,性能优越。最后,性能优越。最后列出了对典型的列出了对典型的 PCBPCB 图像的实验结果。 图像的实验结果。

Page 3: 基于遗传算法模板匹配的 PCB 元件自动检测

1 1 引言引言生产步骤生产步骤单面表面安装板的主要生产步骤如图单面表面安装板的主要生产步骤如图 11 所示。步骤包括在所示。步骤包括在 PCBPCB板上放置焊膏、在正确位置放置元件和将板上放置焊膏、在正确位置放置元件和将 PCBPCB 板放入烤炉焊接板放入烤炉焊接元件到焊盘上(回流焊)。双面板需要在一个更复杂的装配过元件到焊盘上(回流焊)。双面板需要在一个更复杂的装配过程中将穿板元件插到板上。用粘合剂在板的两面固定程中将穿板元件插到板上。用粘合剂在板的两面固定 SMDSMD 元件,元件,然后使用峰波焊将元件焊接在板上。然后使用峰波焊将元件焊接在板上。导致缺陷的原因导致缺陷的原因元件的放置是自动“取元件的放置是自动“取 -- 放”的过程,使用一个真空管来从喂放”的过程,使用一个真空管来从喂料带上拾取元件并将元件放置到板上。真空吹气的时候可能存料带上拾取元件并将元件放置到板上。真空吹气的时候可能存在元件没有放下来(吹气太弱)或者元件被吹离位置(吃气太在元件没有放下来(吹气太弱)或者元件被吹离位置(吃气太强)的情况;强)的情况; X-YX-Y 平台机械状况不好时会导致位置偏移的问题。平台机械状况不好时会导致位置偏移的问题。元件放置缺陷包括:元件放置缺陷包括:(( 11 )漏贴;)漏贴;(( 22 )偏位)偏位(( 33 )偏转)偏转回流焊过程中也会因为焊料特性和气体释放作用引起元件的升回流焊过程中也会因为焊料特性和气体释放作用引起元件的升起和翻转。 起和翻转。

Page 4: 基于遗传算法模板匹配的 PCB 元件自动检测

图 1 SMD 电路板生产过程

Page 5: 基于遗传算法模板匹配的 PCB 元件自动检测

2 2 模板匹配模板匹配使用标准化互相关模板匹配使用标准化互相关模板匹配模板匹配是一个在一个源图像中识别与另一个称之为模板图模板匹配是一个在一个源图像中识别与另一个称之为模板图像的较小的子图像匹配的特征的方法,经常被用于对象识别。像的较小的子图像匹配的特征的方法,经常被用于对象识别。基本的模板匹配算法是:模板图像在源图像上移动并在每个基本的模板匹配算法是:模板图像在源图像上移动并在每个位置计算灰度相关度,灰度相关度使用像素亮度来估计模板位置计算灰度相关度,灰度相关度使用像素亮度来估计模板图像和源图像区域之间的相似度。一般地,在模板匹配算法图像和源图像区域之间的相似度。一般地,在模板匹配算法中使用标准化互相关(中使用标准化互相关( NCCNCC )如下式:)如下式:

(( 11 ))

其中其中 f(x,y)f(x,y) 是源图像中灰阶像素亮度矩阵;是源图像中灰阶像素亮度矩阵; 是与模板图像相一致区域的源图像的平均灰阶亮度值;是与模板图像相一致区域的源图像的平均灰阶亮度值;tt 是模板图像的灰阶像素亮度矩阵;是模板图像的灰阶像素亮度矩阵; 是模板图像的灰阶像素亮度平均值;是模板图像的灰阶像素亮度平均值;c(u, v)c(u, v) 的值范围从的值范围从 -1-1 到到 11 并且原图像和模板图像的比例变化并且原图像和模板图像的比例变化与其无关。与其无关。 c(u, v)c(u, v) 的最大值的地方即模板和源图像最匹配的的最大值的地方即模板和源图像最匹配的地方。 地方。

Page 6: 基于遗传算法模板匹配的 PCB 元件自动检测

3 3 灰色模型模板灰色模型模板建立通用灰色模型模板建立通用灰色模型模板图图 22 是一个是一个 74757475集成芯片的集成芯片的 PCBPCB 源图像和六个贴源图像和六个贴装电阻。要求是要将装电阻。要求是要将 74757475 下面的下面的 66 个元件进行定位个元件进行定位和识别,和识别, 66 个元件是个元件是 51105110 或或 10011001 贴片电阻。注意贴片电阻。注意到其中一个到其中一个 51105110 电阻相对其它旋转了电阻相对其它旋转了 180180 度。度。 66 个个元件的大小和形状相同,但灰度值不一样,因为元件元件的大小和形状相同,但灰度值不一样,因为元件上面的印刷字符不一样,及元件的生产厂家不一样产上面的印刷字符不一样,及元件的生产厂家不一样产品颜色也有区别等。不一致的照明会在原图像产生阴品颜色也有区别等。不一致的照明会在原图像产生阴影区域。影区域。方法中使用一组元件的模板图像来建立一个灰色模型方法中使用一组元件的模板图像来建立一个灰色模型模板。这个通过线性组合一组模板图像来平均每个元模板。这个通过线性组合一组模板图像来平均每个元件图像之间的灰阶亮度值的统计差异。方法从源图像件图像之间的灰阶亮度值的统计差异。方法从源图像中的六个元件中提取相同大小的模板图像并中的六个元件中提取相同大小的模板图像并计算每个计算每个图像对应像素值的平均值图像对应像素值的平均值。图。图 33显示使用从图显示使用从图 22 中提中提取六个元件的模板图像创建的通用灰色模型模板图像。取六个元件的模板图像创建的通用灰色模型模板图像。

Page 7: 基于遗传算法模板匹配的 PCB 元件自动检测

图 2 PCB 贴装元件图像 图 3 通用模板 图 4 最大可能性图像

Page 8: 基于遗传算法模板匹配的 PCB 元件自动检测

3 3 灰色模型模板灰色模型模板最大可能性搜索方法最大可能性搜索方法通用模板可以用来搜索区域的最大可能性图像如图通用模板可以用来搜索区域的最大可能性图像如图 44 所示。最所示。最大可能性大可能性 XX 可以通过下式计算:可以通过下式计算:

(( 22 ))其中 是协方差矩阵的逆矩阵。协方差矩阵根据对应于模板矩其中 是协方差矩阵的逆矩阵。协方差矩阵根据对应于模板矩阵的源图像区域像素亮度矩阵及模板像素亮度矩阵计算。在方阵的源图像区域像素亮度矩阵及模板像素亮度矩阵计算。在方程中程中 [f-t][f-t] 转置矩阵是转置矩阵是 1Xn1Xn 矩阵,乘以 (矩阵,乘以 ( nxnnxn 矩阵)得出一个矩阵)得出一个1Xn1Xn 矩阵。再将这个矩阵乘以矩阵。再将这个矩阵乘以 nx1nx1 的的 [f-1][f-1] 矩阵得到一个数量矩阵得到一个数量值值 XX 。。 XX值的范围为值的范围为 00 到到 11 。。 XX趋于趋于 00 ,代表模板和对应源,代表模板和对应源图像匹配可能性很高。图像匹配可能性很高。在源图像上移动图在源图像上移动图 33 所示的通用模板并在每个位置计算协方差所示的通用模板并在每个位置计算协方差和使用式和使用式 22 计算最大可能性,便产生了最大可能性图像。同时计算最大可能性,便产生了最大可能性图像。同时也创建对模板旋转一定角度的最大可能性搜索区域图像。图也创建对模板旋转一定角度的最大可能性搜索区域图像。图 44显示了许多黑色的区域,表示和要定位的元件在图像上的位置显示了许多黑色的区域,表示和要定位的元件在图像上的位置匹配可能性很高。六个黑色区域对应贴片电阻的位置,可见计匹配可能性很高。六个黑色区域对应贴片电阻的位置,可见计算的通用的模板能够很好的在一个图像上查找多对象。算的通用的模板能够很好的在一个图像上查找多对象。

Page 9: 基于遗传算法模板匹配的 PCB 元件自动检测

4 4 限制搜索区域限制搜索区域Canny Canny 边缘检测边缘检测虽然标准化互相关是应用于在图像中检测模式的很好的技术,虽然标准化互相关是应用于在图像中检测模式的很好的技术,但是其基于加法和乘法操作,这使得在搜索整个图像是很费计但是其基于加法和乘法操作,这使得在搜索整个图像是很费计算时间。 算时间。 源图像的边缘滤波可以用来将搜索区域限制在边缘位置。通过源图像的边缘滤波可以用来将搜索区域限制在边缘位置。通过只在边缘位置搜索图像,减少只在边缘位置搜索图像,减少 NCCNCC 需要执行的计算量。明显需要执行的计算量。明显和不明显的边缘都需要检测,以便能够进行精确的模板定位。和不明显的边缘都需要检测,以便能够进行精确的模板定位。CannyCanny边缘算法,对比其它边缘滤波如边缘算法,对比其它边缘滤波如 SobelSobel ,够很好的检,够很好的检测不明显的边缘。测不明显的边缘。 CannyCanny滤波是对其它边缘检测方法的改进。滤波是对其它边缘检测方法的改进。CannyCanny 方法查找边缘时,首先使用高斯滤波平滑图像,然后方法查找边缘时,首先使用高斯滤波平滑图像,然后执行梯度计算(执行梯度计算( gradient calculationgradient calculation ),使多像素宽边缘减),使多像素宽边缘减少为单像素边缘(非最大压缩少为单像素边缘(非最大压缩 non-maximum suppressionnon-maximum suppression ),),应用低的和高的边缘强度阈值,最后选择所有在低阈值之上和应用低的和高的边缘强度阈值,最后选择所有在低阈值之上和在高阈值之上的边缘相连的边缘(在高阈值之上的边缘相连的边缘( finally accepting all edges finally accepting all edges over the low threshold that are connected to edges over the over the low threshold that are connected to edges over the high thresholdhigh threshold )。图)。图 55显示了显示了 CannyCanny边缘滤波后的源图像。边缘滤波后的源图像。

Page 10: 基于遗传算法模板匹配的 PCB 元件自动检测

4 4 限制搜索区域限制搜索区域

NCCNCC 搜索搜索从源图中像中提取一个所有边缘位置的向量并使用通用灰色从源图中像中提取一个所有边缘位置的向量并使用通用灰色模型模板对每个边缘点计算模型模板对每个边缘点计算 NCCNCC系数。如图系数。如图 66 所示,图中所示,图中有有 66 个峰值对应创建灰阶模板的个峰值对应创建灰阶模板的 66 个电阻。当执行相似计算个电阻。当执行相似计算时,将模板图像的左上角作为参考点。时,将模板图像的左上角作为参考点。

图 5 Canny边缘检测 图 6 Canny边缘象素的标准化互相关系数

Page 11: 基于遗传算法模板匹配的 PCB 元件自动检测

5 5 遗传算法搜索 遗传算法搜索 遗传算法是一个基于种群(遗传算法是一个基于种群( population-basedpopulation-based )的概率搜索)的概率搜索算法。其使用模拟自然选择和生物遗传机制算法。其使用模拟自然选择和生物遗传机制 (mechanics)(mechanics) 的算的算子。遗传算法开始建立一个解集的随机种群及计算每个成员的子。遗传算法开始建立一个解集的随机种群及计算每个成员的适应度值(如适应度值(如 NCCNCC值)。将适应度值作为依据,从种群中选值)。将适应度值作为依据,从种群中选择一个子集作为父母。这些父母组合产生新一代的解集称之为择一个子集作为父母。这些父母组合产生新一代的解集称之为子代。将这些新集取代原种群的一些成员,然后计算新的适应子代。将这些新集取代原种群的一些成员,然后计算新的适应度值。重复这样的选择和使用适应度值来产生新的种群的过程。度值。重复这样的选择和使用适应度值来产生新的种群的过程。当种群进化,也更接近最优解。当种群进化,也更接近最优解。遗传算法搜索边缘像素执行时,使用一个遗传算法搜索边缘像素执行时,使用一个 indices determiningindices determining边缘位置(边缘位置( x,yx,y )坐标种群)坐标种群,和,和 indices determiningindices determining角度种群角度种群。。不同的电阻对象在图像中的旋转角度可能不同。因此,定义了不同的电阻对象在图像中的旋转角度可能不同。因此,定义了代表模板角度的角度变量。一般电阻的放置角度为代表模板角度的角度变量。一般电阻的放置角度为 00 、、 9090 、、180180 、、 270270 ,所以角度向量限制为这四个值。只使用四个角,所以角度向量限制为这四个值。只使用四个角度的缺点是实际的旋转角度可能是不确定的;优点是保持低的度的缺点是实际的旋转角度可能是不确定的;优点是保持低的计算量。计算量。

Page 12: 基于遗传算法模板匹配的 PCB 元件自动检测

5 5 遗传算法搜索遗传算法搜索通过在对应的边缘位置(通过在对应的边缘位置( x, yx, y )坐标和角度计算)坐标和角度计算 NCCNCC值,给值,给每个父代分配一个适应度值并选择父代,然后对选择的父代使每个父代分配一个适应度值并选择父代,然后对选择的父代使用线性组合产生新的子代,用以下方程的计算。用线性组合产生新的子代,用以下方程的计算。

(( 33 ))其中其中 aa 是值为是值为 00 到到 11 的随机权数。如果有需要,用一个宽度的随机权数。如果有需要,用一个宽度值来扩展子代的范围。值来扩展子代的范围。当在源图像找到一个当在源图像找到一个 NCCNCC值大于值大于 0.650.65 (找到一个好的模板(找到一个好的模板匹配)的位置时,表示大这个位置找到模板匹配。当找出所有匹配)的位置时,表示大这个位置找到模板匹配。当找出所有元件,算法即结束。元件,算法即结束。使用遗传算法检测使用遗传算法检测 PCBPCB 过程如图过程如图 77 所示,用所示,用 MatlapMatlap 实现。实现。首先,离线创建通用模板和设置对象的数量。然后,然后获取首先,离线创建通用模板和设置对象的数量。然后,然后获取被检测被检测 PCBPCB 的图像,应用查找对象及他们的位置和旋转角度的图像,应用查找对象及他们的位置和旋转角度的算法。如果位置和旋转角度等于期望值,则被测的算法。如果位置和旋转角度等于期望值,则被测 PCBPCB 通过通过质量检查。质量检查。

Page 13: 基于遗传算法模板匹配的 PCB 元件自动检测

图 7 遗传算法模板图像搜索流程图

Page 14: 基于遗传算法模板匹配的 PCB 元件自动检测

6 6 实验结果 实验结果 方法 执行时间( s)最大可能非压缩完全搜索 3303

NCC非压缩完全搜索 737.2

NCC Canny边缘压缩完全搜索 230.8

NCC对象目标点局部搜索 47.5

NCC Canny边缘压缩 GA搜索 39.5

图 9 使用遗传算法识别和定位六个元件的源图像

Page 15: 基于遗传算法模板匹配的 PCB 元件自动检测

7 7 结论结论本文设计了多对象识别方法,并应用这个方法查找本文设计了多对象识别方法,并应用这个方法查找 PCBPCB 上贴上贴片元件的位置和角度,以便进行质量控制检查。基本的方法是片元件的位置和角度,以便进行质量控制检查。基本的方法是基于对一组元件建立一个通用灰色模型模板。搜索可以限制在基于对一组元件建立一个通用灰色模型模板。搜索可以限制在围绕已知对象点的局部区域或者,如果需要对整个源图像进行围绕已知对象点的局部区域或者,如果需要对整个源图像进行搜索来查找错件,则限制搜索在搜索来查找错件,则限制搜索在 CannyCanny边缘位置。边缘位置。如果元件对象点预先知道,则完全搜索围绕对象点的连续小区如果元件对象点预先知道,则完全搜索围绕对象点的连续小区域来寻找模板匹配是很有效的。如果需要搜索整个图像,则限域来寻找模板匹配是很有效的。如果需要搜索整个图像,则限制搜索区域在制搜索区域在 CannyCanny边缘可以减少搜索时间。边缘可以减少搜索时间。遗传搜索算法,搜索性能比对同一搜索区域的完全搜索方法快遗传搜索算法,搜索性能比对同一搜索区域的完全搜索方法快66倍,也比围绕已知对象点的局部完全搜索方法快。因为遗传倍,也比围绕已知对象点的局部完全搜索方法快。因为遗传算法方法搜索整个图像的边缘,所以和图像的对准无关(而对算法方法搜索整个图像的边缘,所以和图像的对准无关(而对通过比较两个图像来检测缺陷是必需的)。本文研究的方法也通过比较两个图像来检测缺陷是必需的)。本文研究的方法也可以应用以其它应用包括机器视觉系统和卫星监测。可以应用以其它应用包括机器视觉系统和卫星监测。