论文部分内容阅读
摘要:AOI自动光学检测在PCBA实际生产领域中起着越来越重要的地位。准确迅速对电路板的定位将有利于检测工作的正确性、时效性。文章将Hough变换原理与实际的预知的图形特点相结合,提出更接近实际应用的比较快速的圆形像心的计算方法。
关键词:PCBA板 边缘检测 定位标志Mark 定位 Hough变换
随着电子技术的不断发展,电子产品的电子元器件集成度日益提高,PCBA板质量的可靠性的可控的复杂程度也在不断提高。自动光学检测设备的应用大大提高了人们的预期目的。从原理上讲计算机自动检测较为简单,然而这一切都是从准确及快速定位开始,定位是从找到定位图形的形心为起始。
PCBA板检测过程
(一)检测基本原理
在设计制造的同时,在PCBA板上的对角线上设置两个定位标志M1、M2,通过手动设置摄像头将两个标志图形分别摄入,经图像处理找到圆的中心位置(Xm1,Ym1)和(Xm2,Ym2),再同CAD文件中这两个标志圆的坐标(X′m1,Y′m1)和(X′m2,Y′m2)对应起来就完成了检测前的定位。
本文的目的就是如何快速找到经过边缘检测后的圆形的圆心,本文讨论的重点是Hough变换的应用,故对边缘的求取过程不做讨论。根据经验选取Canny边缘检测算法。
(二)Hough变换的基本原理
Hough变换的原理是利用图像空间与参数空间的对应关系,将图像空间的检测问题转化到参数空间,通过在参数空间设置累加器,并通过寻找累加器的统计峰值来完成圆心的检测。
(三)基于Hough变换的圆形目标的检测
圆的方程可以表示如下:
(x-a)^2+(y-b)2=r^2(1)
式中有三个参数a,b,r,所以需要在参数空间建立一个三维的累加数组A(a,b,r),根据具体图像计算出的每个三元组(a,b,r),对A累加:A(a,b,r)=A(a,b,r)+1。如何计算三元组(a,b,r)是实现该算法的关键所在。
根据Hough变换的原理,由于r不固定,则参数空间与图像空间的对应图像空间中的点对应参数空间中的锥面。如果r固定,图像空间的一个点对应参数空间中的一个圆,而圆周则为可能的圆心位置。由此可见,在图像空间中共圆的点在参数空间中对应同一个点(交点)。亦即,图像空间中的点对应参数空间中的圆;参数空间中的点对应图像空间中的圆,就是Hough变换的原理。
由Hough变换的累加器A(a,b,r)和变换方程(x-a)^2+(y-b)^2=r^2可知,对边缘上的每一点(x,y),给定半径r,a和b的变化范围都是2r,因此,对应a的变化,需要计算(1)式2r次,同时还要对应b的变化计算(1)式2r次,同时排除已计算过的重复点,这样总共需计算大约3r次。设每次这种运算耗时t,则对于一个边缘点Hough变换需耗时3rt秒。设半径的变化范围为R,则每个边缘点共耗时:
所以从理论出发的算法其计算量很大,检测时需要较长的时间。
如果根据摄像机摄取的Mark标记的灰度图像,考虑图像摄取和处理的误差范围,人为设定Mark点半径的大概范围,在图像处理程序的设计时指定半径的尺寸范围,这样局部搜索较之在整幅图像范围内进行全局搜索大大降低了处理时间,提高了系统的处理速度。
根据Mark点预处理后的二进制图像我们有r的粗略半径范围:rmax=(1/2sqrt(A))/sin(1/4π),A为边缘检测出图形的面积:rmin=rsin(1/4π),r0为边缘检测出图形的半径。
具体算法流程如下(设图像的空间尺寸为W×H):
step0:定义累加器Accumulator(a,b,r);
step1:确定半径r的较小范围的取值范围:rmin-rmax;
step2:令r=rmin开始;
step3:定位出所有的圆边界上的像素点(x(i),y(i)),即目标像素;
step4:令边界上第一个象素开始(x(i),y(i)),i=1;
step5:b01=x(i)-sqrt(r^2-(y(i)-a0)^2)b02=x(i)+sqrt(r^2-(y(i)-a0)^2)
(a0,b01),(a0,b02)为参数空间中以(x(i),y(i))为圆心的第一个中圆上的点;b01,b02∈b,a0∈a;
step6:若a∈(0,W),b∈(0,H),则A(a,b,r)=A(a,b,r)+1;
转到step4,直到所有第一个圆完成;
step7:转到step3,直到所有的边界点完成;
step8:转到step2,直到所有r完成;
Step9:对A(a,b,r)进行搜索,找到一个三元组(a0,b0,r0),使得在所有的A(a,b,r)中A(a0,b0,r0)最大。
(四)试验
经过以上运算得到的三元组(a0,b0,r0)即认为是指定区域内存在的圆形目标。本文提出算法的试验结果同已有算法,即1<=r<=1/2min(W,H)算法结果比较见表1:
实验结果及结论
本文利用改进的算法,并对大小为101x103象素的图像进行圆心检测。从试验的结果可以看出同实际结合的方法可以大大提高计算的速度,大大节约了处理的时间,从而实现了较为快速的定位。
(作者单位:上海交通大学微电子学院)
参考文献
[1]孙即祥.图像分析[M].科学出版社,2007.
[2]张纪铃.电路板板载元器件检测系统研究[D].硕士毕业论文,2007(3).
[3]于殿泓.图像检测与处理技术[M].西安电子科技大学出版社,2006.
[4]Ze-NianLiMarkS.Drew;史元春等译.多媒体技术教程[M].机械工业出版社,2007.
[5]梁霄颖,李永新,张杰.基于Hough变换的多适应性圆检测[J].机械与电子,2007(9).
[6]束志林,戚飞虎.一种新的随机Hough快速圆检测算法[J].计算机工程,2003(6).
[7]孙祥,徐流美,吴清.Matlab7.0基础教程[M].清华大学出版社,2005.
关键词:PCBA板 边缘检测 定位标志Mark 定位 Hough变换
随着电子技术的不断发展,电子产品的电子元器件集成度日益提高,PCBA板质量的可靠性的可控的复杂程度也在不断提高。自动光学检测设备的应用大大提高了人们的预期目的。从原理上讲计算机自动检测较为简单,然而这一切都是从准确及快速定位开始,定位是从找到定位图形的形心为起始。
PCBA板检测过程
(一)检测基本原理
在设计制造的同时,在PCBA板上的对角线上设置两个定位标志M1、M2,通过手动设置摄像头将两个标志图形分别摄入,经图像处理找到圆的中心位置(Xm1,Ym1)和(Xm2,Ym2),再同CAD文件中这两个标志圆的坐标(X′m1,Y′m1)和(X′m2,Y′m2)对应起来就完成了检测前的定位。
本文的目的就是如何快速找到经过边缘检测后的圆形的圆心,本文讨论的重点是Hough变换的应用,故对边缘的求取过程不做讨论。根据经验选取Canny边缘检测算法。
(二)Hough变换的基本原理
Hough变换的原理是利用图像空间与参数空间的对应关系,将图像空间的检测问题转化到参数空间,通过在参数空间设置累加器,并通过寻找累加器的统计峰值来完成圆心的检测。
(三)基于Hough变换的圆形目标的检测
圆的方程可以表示如下:
(x-a)^2+(y-b)2=r^2(1)
式中有三个参数a,b,r,所以需要在参数空间建立一个三维的累加数组A(a,b,r),根据具体图像计算出的每个三元组(a,b,r),对A累加:A(a,b,r)=A(a,b,r)+1。如何计算三元组(a,b,r)是实现该算法的关键所在。
根据Hough变换的原理,由于r不固定,则参数空间与图像空间的对应图像空间中的点对应参数空间中的锥面。如果r固定,图像空间的一个点对应参数空间中的一个圆,而圆周则为可能的圆心位置。由此可见,在图像空间中共圆的点在参数空间中对应同一个点(交点)。亦即,图像空间中的点对应参数空间中的圆;参数空间中的点对应图像空间中的圆,就是Hough变换的原理。
由Hough变换的累加器A(a,b,r)和变换方程(x-a)^2+(y-b)^2=r^2可知,对边缘上的每一点(x,y),给定半径r,a和b的变化范围都是2r,因此,对应a的变化,需要计算(1)式2r次,同时还要对应b的变化计算(1)式2r次,同时排除已计算过的重复点,这样总共需计算大约3r次。设每次这种运算耗时t,则对于一个边缘点Hough变换需耗时3rt秒。设半径的变化范围为R,则每个边缘点共耗时:
所以从理论出发的算法其计算量很大,检测时需要较长的时间。
如果根据摄像机摄取的Mark标记的灰度图像,考虑图像摄取和处理的误差范围,人为设定Mark点半径的大概范围,在图像处理程序的设计时指定半径的尺寸范围,这样局部搜索较之在整幅图像范围内进行全局搜索大大降低了处理时间,提高了系统的处理速度。
根据Mark点预处理后的二进制图像我们有r的粗略半径范围:rmax=(1/2sqrt(A))/sin(1/4π),A为边缘检测出图形的面积:rmin=rsin(1/4π),r0为边缘检测出图形的半径。
具体算法流程如下(设图像的空间尺寸为W×H):
step0:定义累加器Accumulator(a,b,r);
step1:确定半径r的较小范围的取值范围:rmin-rmax;
step2:令r=rmin开始;
step3:定位出所有的圆边界上的像素点(x(i),y(i)),即目标像素;
step4:令边界上第一个象素开始(x(i),y(i)),i=1;
step5:b01=x(i)-sqrt(r^2-(y(i)-a0)^2)b02=x(i)+sqrt(r^2-(y(i)-a0)^2)
(a0,b01),(a0,b02)为参数空间中以(x(i),y(i))为圆心的第一个中圆上的点;b01,b02∈b,a0∈a;
step6:若a∈(0,W),b∈(0,H),则A(a,b,r)=A(a,b,r)+1;
转到step4,直到所有第一个圆完成;
step7:转到step3,直到所有的边界点完成;
step8:转到step2,直到所有r完成;
Step9:对A(a,b,r)进行搜索,找到一个三元组(a0,b0,r0),使得在所有的A(a,b,r)中A(a0,b0,r0)最大。
(四)试验
经过以上运算得到的三元组(a0,b0,r0)即认为是指定区域内存在的圆形目标。本文提出算法的试验结果同已有算法,即1<=r<=1/2min(W,H)算法结果比较见表1:
实验结果及结论
本文利用改进的算法,并对大小为101x103象素的图像进行圆心检测。从试验的结果可以看出同实际结合的方法可以大大提高计算的速度,大大节约了处理的时间,从而实现了较为快速的定位。
(作者单位:上海交通大学微电子学院)
参考文献
[1]孙即祥.图像分析[M].科学出版社,2007.
[2]张纪铃.电路板板载元器件检测系统研究[D].硕士毕业论文,2007(3).
[3]于殿泓.图像检测与处理技术[M].西安电子科技大学出版社,2006.
[4]Ze-NianLiMarkS.Drew;史元春等译.多媒体技术教程[M].机械工业出版社,2007.
[5]梁霄颖,李永新,张杰.基于Hough变换的多适应性圆检测[J].机械与电子,2007(9).
[6]束志林,戚飞虎.一种新的随机Hough快速圆检测算法[J].计算机工程,2003(6).
[7]孙祥,徐流美,吴清.Matlab7.0基础教程[M].清华大学出版社,2005.