华中师范大学第一附属中学 夏宇梁
印制电路板(Printed Circuit Board,PCB)基准定位孔的准确性直接影响PCB产品质量[1]。中小印刷电路板生产企业目前主要采用人工方法进行PCB定位孔钻孔,其精度越来越不能适应高精度PCB生产需求。
笔者利用计算机视觉技术对印刷电路板定位孔进行识别,精确地识别出孔心位置坐标后,再利用伺服电机控制的可以X,Y二维平面移动的气动钻头对PCB板进行精准钻孔。实现这一过程的系统关键在定位孔识别算法上。本文对印刷电路板定位孔识别算法进行研究,提出了一种快速可靠的识别算法,该算法经过实际的打靶机实验,其精度、稳定性达到了PCB生产企业的要求。
目前定位孔识别算法多采用Hough变换算法[2,3],但是对于定位孔有镜面反射情况、图像边缘不尖锐或者定位孔焊盘圆周有畸变等问题时,该算法计算量倍增,识别的准确性和可靠性也大大降低。
由于采用工业相机对PCB板进行定位孔识别,需要在连续的视频图像中先找出焊盘,然后再对焊盘进行精确的孔心坐标识别。因此,定位孔坐标识别算法分两步实施:
(1)提取连续视频图像中的每一帧,然后进行图像平滑、区域分割和连通区搜索,初步确定定位孔大小和位置[4]。
(2)利用二维小波变换对定位孔进行精确识别,精确找出孔心坐标[3]。
实际测试表明,该算法对图像中出现的亮斑干扰不敏感,有效地解决了PCB板因蚀刻而引起的定位孔局部形状变形导致的识别问题。
工业相机拍摄的视频图像中不总是存在定位孔,本阶段算法是要在图像中快速搜索定位孔,如果存在,确定初步位置坐标和半径。算法思路:设PCB灰度图像为 f (x, y),为了削弱定位孔处金属反光干扰,对 f (x, y)作9×9均值滤波,得到 g (x , y),如图1(a)所示。
分析g (x, y)的直方图,利用峰谷法得出分割阈值T。对g (x, y)进行二值化,得到 B (x , y):
在 B(x, y)二值化的图像如图2(b)所示,白色部分为焊盘。利用连通区搜索算法,可得到包含焊盘的最小外接矩形S。S的角点坐标分别是(x1, y1)和(x2, y2)。
图1 视频图像二值化及外接矩形
接着进行定位孔半径及孔心坐标的计算。考虑一般性,设定位孔外轮廓为椭圆,用向量描述,。其中a和b分别为椭圆长轴和短轴,(x0,y0)为孔心坐标。
于是,图像中定位孔及定位孔中心和半径基本确定,接下来进行定位孔精确定位。
图像中定位孔搜索只能获得一种初步结果,其精度比较低,达不到工程应用要求。原因如下:(1)均值滤波算法使图像轮廓模糊,导致很难找到合适的分割阈值。(2)二值化后的图像与原图像相比,边缘处连续变化的信息失真,不能利用灰度的变化情况来确定边缘。因此,定位孔的精确位置确定需要在原图像 f (x, y)上进行。
为了从原图像上获得定位孔边缘的变化信息,首先对 f (x, y)作2D小波变换:
工业相机每秒25帧速度,意味着定位孔识别算法要在40ms内完成,才能达到工业实时性。因此,2D小波算法需要进行优化,提高计算速度。
定位孔识别算法程序采用Visual Studio C++ 2008编写。程序运行环境为:Windows 7操作系统,CPU:I3-530。在优化算法中,选小波变换的尺度因子的各增量值:
图2 三种定位孔识别结果
[1]单越康,许昌,蒋庆.基于计算机视觉检测技术的PCB数控定位钻机[J].现代机械,2000,03:1-4。
[2]柏长冰,齐春,宋福民,等.Hough变换快速检测圆形PCB Mark[J].光电工程,2005,32(9):75-78.
[3]张利,高永英,汪浩,等.PCB板检测中的定位研究[J].中国图象图形学报,1999,4(8):659-668.
[4]商飞,王丰贵,田地,等.一种基于圆内接直角三角形的圆检测方法[J].光学学报,2008,28(4):739-743.