孙炼杰 樊 臻
(浙江大学电气工程学院 浙江 杭州 310027)
在现代工业制造业中,经常需要通过判断物体的几何尺寸,进而评判该产品是否为合格品,其中最为典型的是间距的测量。而对于指定目标的准确识别算法设计是搭建自动化产品检测系统的前提条件。在传统的制造业中,通常用肉眼的方式从工业相机所摄取的图片上完成这一固定目标识别。随着数字图像处理技术日益进步,研究者热衷于开发相应的机器视觉算法,从而代替人的眼睛自动完成一系列高精度目标的判别与测量[1]。
自从光纤通信技术的问世,使得大规模、高速率的通信变成了现实,它使整个通信领域发生了革命性的变化,目前已逐渐成为最主要的信息传输技术之一[2]。光纤通信产品的加工和检测有非常高的精度要求,手工操作、肉眼检测等传统操作方式不仅效率低、不适宜于大规模生产,并且测量误差比较大。从事光纤产品制造的厂家为提高生产加工效率和产品检测精度,着力于开发一套符合大批量生产需求的检测系统软件,而高效的视觉算法正是这一自动检测系统的核心内容。
模板匹配技术[3]是目前数字图像处理特别是在目标识别领域的主要研究方向。本文围绕对于模板匹配算法的研究展开,通过分析光纤收发PCB板的产品特性改进了基于形状[4]和基于灰度值[5]的模板匹配数学模型,建立单个PCB自动识别的整体算法,实现PCB板六个光学中心的高精度模板匹配和测量。
在数字图像处理中,模板匹配技术是根据已知的模板,在一定的区域范围内来寻找最佳匹配点的坐标位置,本质上就是通过一些相似度准则来衡量两个图像之间的相似度问题[6]。一般模板匹配技术可分为基于灰度值的模板匹配和基于形状的模板匹配两大类[7-9]。这两种匹配方式是本文图像识别算法设计中最为核心的内容。
基于灰度值的模板匹配,即模板在给定搜索区域中做相似度匹配时,灰度值作为匹配过程中的最主要依据。这一算法一般广泛用于灰度值差别显著的静态图像识别[10]。
一般灰度值匹配的数学模型如下:将搜索区域坐标定义为S(xs,ys),模板区域坐标定义为T(xt,yt),像素坐标(x,y)处的灰度值为G(x,y),指定点处匹配区域与模板绝对差值为:
Diff(xs,ys,xt,yt)=|G(xs,ys)-G(xt,yt)|
(1)
而相似度评判标准主要是这些绝对差值的总和,将其定义为SAD(Sum of absolute differences):
(2)
由于相似度函数SAD是像素绝对差值的累加和,显然SAD值越小说明该区域与模板的相似程度越高。SAD利用了模板图像的所有像素信息[11-13],这一算法在构造上比较简单,容易实现,能够解决很大一部分在光照不变条件下的最佳相似度匹配问题。而对于光照影响较大情况下的模板匹配,通常构造归一化系数:
(3)
R越接近于1,则匹配程度越高。
对于匹配对象具有很明显的内部固定特征纹理或外部边缘轮廓[14],此时基于形状的模板匹配会是最佳选择。形状匹配的优点在于精度高,支持目标物体的部分遮挡[15],并且对光照不敏感。
形状匹配主要分为“形状特征提取”和“形状特征匹配”两个步骤,如图1所示。“形状特征提取”主要是将图像中所包含的形状信息转变为数值、向量或其他更复杂的形状描述符[16]。其中形状描述符中形状区分能力的强弱直接影响形状识别的结果,所以形状匹配的很多工作都集中于特征提取上。“形状特征匹配”是对形状间整体及局部对应关系分析的过程,最终得到一个形状相似度结果。
图1 形状匹配步骤图
以下通过如图2中不同形状的A为例阐述形状匹配的主要数学模型。
图2 不同形状的A图形
1) 截取一些有限的点作为模板的特征形状P={p1,p2,…,pn},这些离散的点表征着模板的特征信息,实际操作时可以根据模板图片的特性,提取外层边缘轮廓或者内层边缘轮廓的一系列点作为模板的特征信息。
2) 基于步骤一种所采集到的n个点,从第i个像素点至剩余的n-1个点建立向量集vector(i),而所有的向量集vector(i),i=1,2,…,n表征着特征形状内部的所有参数信息。显然分析这一数据是非常庞大的,在算法设计时需要省略一系列向量(即省略不是非常重要的信息),使算法变得简易并且仍旧保留鲁棒性。以下定义hi作为能够胜任上述工作的向量集:
hi(k)=#{q≠pi:(q-pi)∈bin(k)}
(4)
3) 将模板点pi与匹配点qi进行相似度比较, 建立两个像素点之间的匹配函数为Cij:
(5)
同理可分析其余像素点之间的模板匹配。
在生产检测中需要自动识别光纤收发PCB元件的光学中心,如图3箭头所指向的位置,值得注意的是图3并不是完整的收发PCB板,视野中只是读取了需要检测的区域。
图3 放大的光纤收发PCB元件图
在图3的检测区域中,左侧五个箭头所指向的中心,其四周环绕有规则、明显黄色纹理,故称之为黄圈光学中心。而最右边箭头所指向的中心,其四周像素较低,称之为黑圈光学中心。传统的检测工艺为:操作员用肉眼确定上图红色箭头所指代的光学中心,然后根据位置坐标测量两两光学中心的间距。为自动识别图3中箭头所指代的六个光学中心,需要根据基于形状的模板匹配思路和基于灰度值的模板匹配思路设计算法。模板选取如图4所示。
图4 模板选取图组
2.2.1 形状匹配特征点选取
所谓特征点,即在像素上有显著不同的点[17]。形状匹配的关键在于模板特征点的提取,早期基于轮廓的形状提取方法通常是直接对剪影轮廓进行分析。剪影轮廓对于提取目标轮廓点集而言虽然简单,只能反映整体模板的边缘信息并不能反映模板内部的结构机理。这种方法对于信息的表示并不完整,容易产生误匹配现象。
提取特征点,通常用该像素点的灰度值与其周围像素点的差绝对值之和是否大于给定阈值的方法。由于固定的阈值缺乏抗噪能力,虽然传统的各种边缘提取算子都可以完成特征点的提取工作,但降低了对于模板提取的准确性。为了克服这一点,本文借助Carry算子中的滞后阈值法提取黄圈模板内部具有较明显的内部纹理特征点。该方法在提取边缘点时能有效地将噪声点区分出来。具体步骤如下:
1) 先设定一个高阈值为H,用Sobel算子对模板进行第一次梯度运算,所提取的特征点为PH={P1,P2,…,Ph};
2) 设定一个低阈值为L,用Sobel算子对模板进行第二次梯度运算,所提取的特征点为PL={P1,P2,…,Pl};
3) 将PH与PL中具有连通关系的像素点提取出来Pψ={P1,P2,…,Pξ},并在Pψ中像素去掉小于M的轮廓,最终得到离散特征点PY={P1,P2,…,Py}。
作梯度运算时,需要选取恰当的阈值,才能得到符合模板内部纹理信息的特征点如下图 5(b)所示(选取H=100,L=50)。若选取的阈值过小时,所选取的特征点数量增加,特征点中将引入噪声,如图5(c)所示(选取H=50,L=30);若选取的阈值过大,特征点数量不足,将丢失部分内部纹理特性,如图5(d)所示(选取H=150,L=70)。无论阈值过大或过小都会增加匹配的难度,从而降低目标识别的精度。
图5 不同阈值特征点选取图组
2.2.2 改进的灰度匹配
对于黑圈模板而言内部没有显著的纹理特性,并且模板内部总体而言灰度值较低,基于灰度的模板匹配会是最佳定位方式。为了增强模板边缘像素的区别度,定义如下绝对差值为:
Diff(x+i,y+j,i,j)=
(6)
而将参加比较的像素点值减少为原先的四分之一:
(7)
能有效减少识别所花费的时间。
PCB板自动识别的整体算法构造如下:用工业相机读取一幅清晰的图像并且对其进行预处理操作,第一步用基于形状的模板匹配的方式自动识别5个黄圈的光学中心;在成功识别5个黄圈光学中心后,第二步用基于灰度值的模板匹配方式自动识别黑圈的最佳光学中心;在6个光学中心都成功识别后,根据中间4个光学中心的相对距离为标准分别定出最左侧两端与最右侧两端光学中心的间距大小。单个PCB元件自动识别整体程序如图6所示。
图6 单个PCB元件自动识别流程图
基于模板匹配的PCB识别算法采用C#编程后最终效果如图7所示。
图7 PCB元件自动识别效果图
图7能准确地识别出五个黄圈以及一个黑圈的光学中心,但对于批量检测而言,操作者希望只要一个按钮就能自动完成当前图像的识别工作,并且能准确地将光学中心的间距、相对偏移量等数据显示在同一个界面上。为此搭建如图8所示用户友好型界面。
图8 用户友好型界面图
为检测系统的可靠性与鲁棒性,本次实验引入300块样本PCB元件进行测试。样本测试结果如表1所示。
表1 样本测试结果
对于测试的300个样本,这一款高精度PCB元件自动检测系统可以识别的产品达到100%。每个样本的误差范围是-5微米至5微米之间,检测平均耗费时间是196.5 ms,单块样本PCB检测耗时如图9所示,这些都是符合生产线的标准。
图9 单块样本PCB检测耗时柱状图
对于识别误差较大的PCB而言,很大一部分是因为PCB自身的缺陷导致的,例如PCB放置时间过长,导致表面堆积灰尘,此时黄圈中出现很大的白色噪声导致无法进行模板匹配。对于这类识别误差较大PCB,如能先清理表面的灰尘在进行识别则有效减少误差。
在相同测试环境下,同样是300块样本PCB板,用传统模板匹配的方式进行检测。表2将传统模板匹配算法与改进模板匹配算法进行对比。
表2 传统模板匹配与改进模板匹配检测算法对比
表2中根据误差范围、平均绝对误差、样品检测平均耗费时间这三个指标作为评判标准,显然改进模板匹配后的算法对系统的识别性能有所提高。
本文提出了符合光纤PCB批量识别的模板匹配算法。通过构建特征点,采用形状匹配的方式识别黄圈光学中心。通过改进SAD,用基于灰度值的匹配方式识别黑圈的光学中心。并在此基础上构建了单块PCB识别的整体检测算法模型。为了迎合批量检测的需求,用C#搭建了用户友好型界面,操作者只需要一个按钮就能够得到识别后的所有参数。对于300块样本PCB的检测表明,每个样本的绝对误差都能控制在5微米以内,检测平均耗时少于200 ms,符合大规模检测要求。与传统模板匹配相比,改进模板匹配识别性能更佳。对于光纤PCB版目标检测算法设计,能很大程度上克服传统通过人眼识别导致误差大、效率低等缺点,也为其他高精度产品自动化加工检测系统提供重要借鉴作用。
[1] 王强,宋京民,胡建平,等.一种快速模板匹配目标识别算法[J].计算机工程与应用,2000,36(6):42-43,69.
[2] 赵梓森.光纤通信的过去、现在和未来[J].光学学报,2011,31(9):91-93.
[3] 李侠,李文举,孙娟红,等.基于模板匹配和边缘检测的车标定位方法[J].计算机工程与设计,2011,32(10):3453-3456.
[4] 薛峰,丁晓青.基于形状匹配变形模型的三维人脸重构[J].电子学报,2006,34(10):1896-1899.
[5] 郑江云,江巨浪,黄忠.基于RGB灰度值缩放的彩色图像增强[J].计算机工程,2012,38(2):226-228.
[6] 梁路宏,艾海舟,何克忠,等.基于多关联模板匹配的人脸检测[J].软件学报,2001,12(1):94-102.
[7] 吴成茂,郭锐.三种典型模板匹配算法性能比较[J].西安邮电大学学报,2014(3):15-21.
[8] Wang C Y,Qu M J,Bi H Z,et al.Facial feature detection algorithm based on main characteristic of eyes[J].Applied Mechanics and Materials,2013,303-306:1402-1405.
[9] Ouyang W,Tombari F,Mattoccia S,et al.Performance Evaluation of Full Search Equivalent Pattern Matching Algorithms[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2011,34(1):127-143.
[10] David W,Palieroni,Siddharth M.Signal to noise behavior for matches to gradient direction models of corners in images[R].Computer Science Technical Report,2008.
[11] Kim J S,Kim H W,Kweon I S.A camera calibration method using concentric circles for vision applications[C]//The 5thAsian Conference on Computer Vision,2002:515-520.
[12] 王慧.基于模板匹配的手写体字符识别算法研究[D].北京交通大学,2012.
[13] Dalal N,Triggs B.Histograms of Oriented Gradients for Human Detection[C]//Computer Vision and Pattern Recognition,2005.CVPR 2005.IEEE Computer Society Conference on.IEEE,2005:886-893.
[14] 姜映映,田丰,王绪刚,等.基于模板匹配和SVM的草图符号自适应识别方法[J].计算机学报,2009,32(2):252-260.
[15] 周瑜,刘俊涛,白翔.形状匹配方法研究与展望[J].自动化学报,2012,38(6):889-910.
[16] 郑丹晨.基于轮廓点空间结构特征的形状匹配方法研究[D].大连理工大学,2014.
[17] 朱铮涛,张宏.基于特征点的形状匹配技术及其算法实现[J].计算机工程与设计,2010,31(5):1096-1099.