一种基于视觉的PCB板圆形定位孔快速准确识别方法与流程

文档序号:17326910发布日期:2019-04-05 21:51阅读:1325来源:国知局
一种基于视觉的PCB板圆形定位孔快速准确识别方法与流程

本发明涉及pcb板视觉检测领域,尤其涉及一种基于视觉的pcb板圆形定位孔快速准确识别方法。



背景技术:

印刷电路板(printedcircuitboard,简称pcb)是集成各种电子元器件的信息载体,随着3c电子行业的发展,pcb板发挥着越来越重要的作用,其质量的好坏在一定程度上决定了电子产品的性能。pcb板生产过程中,常常以定位孔的孔心坐标为基准钻元件孔或对电子元器件进行贴装,而电子元器件的体积越来越小,引脚越来越细,引脚间距越来越窄,定位孔的位置精度将间接地影响pcb板的贴装质量,因此提高对pcb板圆形定位孔的精度十分重要。传统的圆检测方法有模板匹配、形状分析法、环路积分微分法、霍夫圆检测(houghcircledetection)、随机霍夫变换等,霍夫圆检测以其可靠性高,在噪声、变形、甚至部分区域丢失的状态下仍能取得理想结果的特点在圆检测方面被广泛应用。但该方法是将二维坐标为(x,y)的点投射到三维空间内,该方法的累加器需要很大的内存空间,计算复杂,实时性差。为了减少计算复杂度,一些学者采用假设圆半径已知,这样就可以把霍夫变换由三维降为二维,降低了运算量,但圆的半径往往难以精确获知。随机霍夫变换是在二进制边缘检测图像中随机采样三个点,建立参数的链接列表数据结构,三个点可以确定一个圆,实现多对一,检测精度能够达到亚像素级别,并且在一定程度上减少了计算时间和存储要求;但对于含有多个圆的复杂图像检测效果差,且因随机采样在整个边缘图像中进行,因此会产生大量无效积累,从而导致大量无效计算。



技术实现要素:

针对上述pcb板的视觉检测中传统圆形定位标志定位运算复杂、效率低且检测精度低的不足,本发明提出了一种基于视觉的pcb板圆形定位孔快速准确识别方法,该方法为基于随机霍夫变换与等曲率像素点分类的亚像素圆孔检测算法(roundsub-pixeldetectionalgorithmbasedrandomizedhoughtransformandequalcurvatureradiusclassification,简称rhecc算法),实现了基于视觉的pcb板圆形定位孔快速准确识别,这种方法不仅保留了随机霍夫变换检测精度达到亚像素级别的优点,而且因每次采样过程都在各个存储了相同曲率半径的边缘像素点的子集中进行,缩小了搜索空间,有效地减少了迭代次数,抗噪能力强,具有准确性、快速性和鲁棒性好的特点,满足了pcb板视觉检测中高精度和实时性的要求。

本发明采用的技术方案是:

一种基于视觉的pcb板圆形定位孔快速准确识别方法,该方法的步骤是:

步骤一:对pcb图像利用canny算子进行边缘检测,把边缘点根据以下公式进行曲率κ的计算;

其中,lx、ly为边缘函数l(x,y)在某像素点的一阶偏导,lxx、lxy、lyy为边缘函数l(x,y)在某像素点的二阶偏导;

步骤二:将曲率相同的边缘像素点分别存放入各自的子集vi中,i的取值为不同曲率κ的数量;

步骤三:假设所需检测的圆的半径范围为rmin≤r≤rmax,即对应的子集内的边缘像素点丢弃;

步骤四:在子集vi中随机选择三个点a(x1,y1)、b(x2,y2)、c(x3,y3),构成不平行的两条弦ab和弦bc,则弦ab和bc的中垂线oe、of必交于圆心o点。若弦ab和bc平行,重新采样。根据以下公式进行圆心o(a,b)和半径r的计算;

ex=(x1+x2)/2

ey=(y1+y2)/2

fx=(x2+x3)/2

fy=(y2+y3)/2

b=koe(a-ex)+ey

式中,ex为e点的横坐标,ey为e点的纵坐标,fx为f点的横坐标,fy为f点的纵坐标,koe、kof分别为线段oe、of的斜率;

步骤五:确定候选圆,采样子集vi的曲率为κi,若步骤四所得r满足t为检测候选圆的阈值,则进行步骤六,否则返回步骤四;

步骤六:在子集vi中搜索满足上述圆参数的边缘像素点,并且计算像素点数目nc,若nc>nt,nt为满足圆参数的边缘像素点数目的阈值,则认为该圆为真实存在的圆,进入步骤七;否则,将这些像素点丢弃,返回步骤四;

步骤七:利用符合圆参数的边缘像素点坐标对步骤四所得参数按照a'=a+δa,b'=b+δb,r'=r+δr进行线性误差补偿得以修正,a'、b'、r'即为最终所得圆参数;

其中,

rj=-(xj-a)2-(yj-b)2+r2

mj=2(xj-a)

pj=2(yj-b)

q=2r,

其中xj、yj分别为满足圆参数的边缘像素点的横、纵坐标,j的取值为0~nc之间的整数;

此时求出的圆心(a',b')和半径r'为精确的圆心定位参数和半径参数,能达到亚像素级。

本发明与现有技术相比具有如下优点:

1)在进行随机采样之前,在边缘图像上对每个边缘像素点进行曲率计算,并将位于同一圆孔或半径相同的圆周上的像素点,即曲率κ相同的边缘像素点进行分类,随后每次采样过程都在各个存储了相同曲率半径的边缘像素点子集中进行,缩小了搜索空间,有效地减少了迭代次数,实时性得以提高。

2)对曲率过大或过小的边缘像素点进行丢弃,减少了计算量,降低了存储空间的要求,在一定程度上减弱了噪声的影响,提高了鲁棒性。

3)对计算得的圆形定位孔的参数采用线性误差补偿,使本算法的检测精度达到了亚像素级别。

4)本发明方法以曲率相同的边缘像素点进行分类,主要依赖于边缘图像本身,不依赖于光度函数,受光照影响小,鲁棒性好。

附图说明

图1为采样点计算圆心和半径原理图;

图2为本发明rhecc算法流程图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步的说明。

本发明提出了一种基于视觉的pcb板圆形定位孔快速准确识别方法,即基于随机霍夫变换与等曲率像素点分类的圆孔检测算法(rhecc),总体实现过程包括以下步骤:

步骤一:对pcb图像利用canny算子进行边缘检测,把边缘像素点在边缘函数l(x,y)上根据以下公式进行曲率κ计算;

其中,lx、ly为边缘函数l(x,y)在某像素点的一阶偏导,lxx、lxy、lyy为边缘函数l(x,y)在某像素点的二阶偏导。

步骤二:将曲率相同的边缘像素点分别存放入各自的子集vi中;

步骤三:假设所需检测的圆的半径范围为rmin≤r≤rmax,即对应的子集内的边缘像素点丢弃;

步骤四:利用随机霍夫变换初步求取圆标志的圆心(a,b)和半径r;利用圆周上任意两条不平行弦的中垂线相交于圆心的性质,同时随机选择3个像素点即可确定出圆的基本参数,从而,将霍夫圆检测中的搜索空间从三维降低到一维,并且该算法在等曲率的子集中进行随机选点,缩小了搜索范围,大大降低了计算复杂性,如图1所示,在子集vi中随机选择三个点a(x1,y1)、b(x2,y2)、c(x3,y3),构成不平行的2条弦ab和bc,则弦ab和bc的中垂线oe、of必交于圆心o点,若弦ab和bc平行,重新采样。根据以下公式进行圆心o(a,b)和半径r的计算;

ex=(x1+x2)/2

ey=(y1+y2)/2

fx=(x2+x3)/2

fy=(y2+y3)/2

b=koe(a-ex)+ey

式中,ex为e点的横坐标,ey为e点的纵坐标,fx为f点的横坐标,fy为f点的纵坐标,koe、kof分别为线段oe、of的斜率;

步骤五:确定候选圆,采样子集vi的曲率为κi,若步骤四所得r满足t为检测候选圆的阈值,取一个像素,则进行步骤六,否则返回步骤四;

步骤六:在子集vi中搜索满足上述圆参数的边缘像素点,并且计算像素点数目nc,若nc>nt,nt为满足圆参数的边缘像素点数目的阈值,则认为该圆为真实存在的圆,否则,将这些像素点丢弃,返回步骤四;

步骤七:利用符合圆参数的边缘像素点的坐标对步骤四所得圆参数进行线性误差补偿得以修正;

仅由三个边缘像素点计算得到的圆参数具有比较大的误差,为减小偏差,采用线性误差补偿进行修正。假设理想圆的圆心坐标为半径为则圆形方程如下:

检测得到的参数为(a,b,r),设误差补偿为(δa,δb,δr),则圆形方程修正为:

其中,

可求得:

根据a'=a+δa,b'=b+δb,r'=r+δr,即可求得圆的圆心位置(a',b')和半径参数r',而且速度快,达到快速精确定位的目的。

本发明不仅保留了随机霍夫变换检测精度达到亚像素级别的优点,而且因每次采样过程都在各个存储了相同曲率半径的子集中进行,缩小了搜索空间,有效地减少了迭代次数,抗噪能力强,具有准确性、快速性和鲁棒性的特点,满足了pcb视觉检测中高精度和实时性的要求。

本发明未述及之处适用于现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1