PCB电路板表面AOI自动检测方案实例分享

导读

作为众多元件和电路信号传输的平台,印刷电路板(PCB)一直被视为电子信息产品的关键部分,其质量决定了最终产品的质量和可靠性。随着电子元器件的微小化、复杂化趋势,以及制造行业整体对智能化变革的需求, AOI检测系统将在智能制造行业占据越发重要的位置。


PCB产品AOI检测,需要将模版与实际图像对齐,因此需要定位功能。定位功能就需要选取定位核,定位核的提取方法分为手动和自动。基于人眼视觉特征对区域敏感度判断的手动提取法存在很大的局限性,且当需要较多定位核时建模复杂,因此目前广泛应用的是自动提取法。


PCB由于高精度成像和高标准检测需求,决定了一个料号可能需要几百甚至上千个定位核,所以需要实现自动选取定位核的功能;检测时料号是未知的,且切换比较频繁,所以无法离线选取定位核,因此算法要求满足实时性。




01功能说明


自动定位核选取模块主要功能如下:


1)支持多个相互独立的全功能型定位核选取



项目案例:用于PCB电路板表面的AOI自动检测方案_深度学习


图1 全功能型定位核演示


2)支持组合定位核的选取



项目案例:用于PCB电路板表面的AOI自动检测方案_公众号_02


图2 组合型定位核演示


3)支持单向(任意方向)定位核的选取



项目案例:用于PCB电路板表面的AOI自动检测方案_模板匹配_03


图 3 单向定位核演示


4)增加局部唯一性验证,支持两种不同的定位模式,NCC和Shape


02

算法设计



根据常见的定位算法的原理可知,选取定位核应选择:


1)梯度信息丰富的地方,并且该梯度信息在水平和垂直方向都有分量;


2)在一定范围内满足唯一性。



项目案例:用于PCB电路板表面的AOI自动检测方案_深度学习_04





项目案例:用于PCB电路板表面的AOI自动检测方案_公众号_05


图 4 彩色图及对应的梯度图


PCB产品的模板图像一般由Gerber或ODB++文件解码生成,因此自动选定位核的输入图像一般为二值图,图案由直线和弧形组成,其所对应梯度信息如下图所示:



项目案例:用于PCB电路板表面的AOI自动检测方案_公众号_06


图5 PCB二值图及对应的梯度图


可见,适合选取定位核的位置如下图所示:



项目案例:用于PCB电路板表面的AOI自动检测方案_公众号_07


图6 可选为定位核的位置


2.1设计概要​


在定位核的选取过程中,遵循的原则如下:

  • 优先选择满足条件的全功能型定位核;
  • 若无全功能型定位核,则筛选出满足条件的组合定位核;
  • 若无组合定位核,则筛选出单向定位核。


2.2 算法流程                                  



项目案例:用于PCB电路板表面的AOI自动检测方案_深度学习_08


2.2.1 图像降采样


图像降采样,即采样点数减少。对于一幅N*M的图像来说,如果降采样系数为k,则即是在原图中每行每列每隔k个点取一个点组成一幅图像。


采取降采样的目的是为了降低处理时间。


2.2.2 提取亚像素轮廓XLD



项目案例:用于PCB电路板表面的AOI自动检测方案_公众号_09


降采样后的图像



项目案例:用于PCB电路板表面的AOI自动检测方案_模板匹配_10


亚像素轮廓图


XLD代表亚像素精度的边缘轮廓和多边形,并不是沿着像素与像素交界的地方,而是经过插值之后的位置。


2.2.3 获得备选定位核



项目案例:用于PCB电路板表面的AOI自动检测方案_模板匹配_11


全功能型定位核



项目案例:用于PCB电路板表面的AOI自动检测方案_模板匹配_12


单方向定位核

实现流程:


  • 将亚像素轮廓XLD转为多边形轮廓XLD(Ramer算法);


项目案例:用于PCB电路板表面的AOI自动检测方案_公众号_13


亚像素轮廓XLD    




项目案例:用于PCB电路板表面的AOI自动检测方案_深度学习_14


多边形轮廓XLD    

  • 遍历多边形轮廓XLD,依次获取多边形轮廓对应的N个离散点、N-1个角度,并计算当前离散点即拐点对应的夹角Angle。这些离散点就是各个疑似定位核的中心点;


项目案例:用于PCB电路板表面的AOI自动检测方案_深度学习_15


离散点即拐点图示


  • 通过拐点夹角Angle计算各自的正交值Orthogonality,超过设定的分值加入待选的全功能型定位核中,否则加入到单向定位核中,其中:


Orthogonality = abs(Angle-ORTHANGLE)/ ORTHANGLE。其中:ORTHANGLE = PI/2;


2.2.4 全功能型定位核选取


实现流程:

  • 按照正交分值从大到小排序;
  • 依次验证唯一性(在一定范围内进行模板匹配,判断找到的数目是否为1),找到要求的数目即返回;

2.2.5 组合型定位核选取


若没有找到符合条件的全功能型定位核,或找到的数目不够,则选取满足条件的组合型定位核。


实现流程:

  • 对剩余的定位核进行排序(全功能型定位核按照正交值从大到小排序,单向定位核按照水平、垂直、任意方向的类别依次排序);
  • 找到所有符合组合型定位核条件的定位核组(两个),满足以下条件之一即可:


1 定位核组中至少有一个全功能型定位核;

2 若均是单向定位核,则根据两者的方向角度差计算正交分值,大于等于设定的正交值。


  • 依次验证唯一性(在一定范围内进行模板匹配,判断找到的数目是否为1),找到要求的数目即返回;


单向定位核判断是否满足组合条件的流程如下:

Step1:单向定位核按照水平、垂直、任意方向的类别依次排序,类别相同则按照归一化后的角度从小到大排序;

Step2:去除相邻角度相同的定位核(仅保留一个),得到不同方向的定位核组;

Step3:遍历定位核组,两两计算对应的夹角,筛选出满足正交分值的定位核组对(两个);

Step4:按照每组对的正交分值进行排序;

Step5:遍历所有的组对,每组找到对应的所有的单向定位核,依次计算定位核的距离是否满足最小值,若满足直接返回,否则找到为止。

2.2.6 单向定位核选取


实现流程:

单向定位核按照水平、垂直、任意方向的类别依次排序,返回第一个。

03

模块输出



可将模块封装成独立的dll,接口函数如下:


类型函数名功能说明
参数设置SetSampleStep设置抽样步长
SetOffset设置搜索范围
SetLocationRotate设置旋转相关参数(验证定位核局部唯一性)
SetKernelNum设置找到定位核的最大数目
SetLocationSize设置定位核的尺寸
SetMinScore设置找到定位核的最小分数


运行Execute执行定位核的搜索
结果GetMainKer获得找到的定位核相关信息

参数界面如下所示:



项目案例:用于PCB电路板表面的AOI自动检测方案_模板匹配_16



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空