一种基于直线聚类分析的BGA元件检测与定位方法
技术领域
本发明涉及基于直线聚类分析的BGA元件检测与定位方法。
背景技术
球形引脚阵列封装(BGA)形式的芯片具有可靠性好、封装面积小和电器性能优良的特点,因而得到广泛应用。大规模BGA芯片贴装生产过程主要是采用贴片机完成的,高精度的贴片机通过吸取、移位、识别、检测与定位、贴装等步骤将芯片快速贴装到印刷电路板上。
贴片机对芯片的识别、检测与定位主要是采用计算机视觉检测技术来完成,这一过程包括示教和检测两个阶段:示教阶段是通过识别标准样片来建立芯片标准参数数据库;检测操作以芯片标准数据库为参考,对所贴装芯片进行缺陷检测和精确定位。就BGA芯片而言,芯片的标准数据库包括焊球的分布形式,焊球直径,焊球的行间距及列间距,后续的缺陷检测过程主要针对焊球缺失、焊球直径和圆度是否合格以及焊球是否桥接这几个方面。BGA芯片由于焊球引脚多、间距小、封装形式多样,因此对检测定位算法的可靠性和检测速度提出了更高的要求。
现有的BGA芯片视觉检测定位算法主要基于以下两种方式:模板匹配和点匹配算法。模板匹配是利用预留的BGA芯片模板图像,在待检测的BGA芯片图像上进行搜索,通过确定最佳匹配位置完成BGA芯片的定位和检测过程。显然,BGA芯片的多样性导致无法找到一个统一的芯片模板,需对于每种BGA芯片都要建立相应的模板;同时模板匹配无法适用于图像中BGA芯片存在旋转和尺度放缩的情况。对于点匹配法,核心思想是通过匹配待检测芯片焊球与预留标准BGA芯片焊球,进而得到待检测芯片位置几何变换关系。这种方法在寻找匹配焊球对时,常常会涉及对焊球的遍历与反复迭代的过程,对于引脚焊球较多时,导致算法的时间长复杂度高,因此难以应用到高速贴片机生产过程中。同时,上述两种方法对在进行检测时,据需要均匀的光照强度,对于非均匀光照条件下,检测精度低。
发明内容
本发明的目的是为了解决现有基于模板匹配的BGA芯片需对每种BGA芯片都要建立相应的模板,无法适用于图像中BGA芯片存在旋转和尺度放缩的情况;现有基于点匹配的BGA芯片检测算法存在的算法时间长复杂度高;以及针对上述两种算法对非均匀光照鲁棒性差的问题,而提出了一种基于直线聚类分析的BGA元件检测与定位方法。
上述的发明目的是通过以下技术方案实现的:
步骤一、对摄像头采集到的灰度BGA芯片图像,即为原始图像,进行动态阈值分割得到二值焊球图像,并对二值焊球图像进行形态学开运算和闭运算处理,处理后的二值焊球图像上的每个连通域记为一个二值化BGA焊球,然后对每个二值化BGA焊球进行连通域标记;
步骤二、对步骤一得到的经过连通域标记后的每个二值化BGA焊球在原始图像上对应位置的邻域范围内进行灰度连通域提取,获得原始图像的完整灰度BGA焊球,并建立完整灰度BGA焊球信息列表;
其中,建立完整灰度BGA焊球信息列表内容包括:每个完整灰度BGA焊球所包含的灰度像素,以及由灰度像素计算得到的每个完整灰度BGA焊球的中心点位置坐标、每个完整灰度BGA焊球对应最小外包圆直径、每个完整灰度BGA焊球的面积和圆度,每个焊球包含的灰度像素包括每个焊球像素坐标和每个焊球灰度值;
步骤三、利用BGA芯片标准数据库中的焊球参数,对步骤二得到的完整灰度BGA焊球信息列表进行筛选,更新筛选后的完整灰度BGA焊球信息列表;
步骤四、用步骤三得到的更新后的完整灰度BGA焊球信息列表,建立一个像素灰度值均为0、且大小与原始图像相同的背景图像;并在背景图像中,将对应原始图像中每个完整灰度BGA焊球中心点位置处的灰度值,变为对应二值化BGA焊球的标识序号,此时的背景图像即为BGA焊球标识图像,BGA焊球标识图像上的每个非0灰度值的像素称为一个等效BGA焊球,所有等效BGA焊球构成的阵列称为等效BGA阵列;原始图像中有M*N个完整灰度BGA焊球,对应背景图像中就有M*N个等效BGA焊球,等效BGA焊球实质为一个像素,完整灰度BGA焊球与等效BGA焊球一一对应;
然后,在BGA焊球标识图像中,计算相邻2个等效BGA焊球的间距Δγ,将此间距作为等效BGA焊球间距典型值;
步骤五、利用步骤四得到的等效BGA焊球间距典型值Δγ,在BGA焊球标识图像上,对等效BGA阵列进行局部分析,确定等效BGA阵列粗略偏转角度Δθ;
其中,局部分析分为针对规则型BGA芯片的局部分析和针对不规则BGA芯片的局部分析,规则型BGA芯片为相邻行BGA焊球成整齐排列的BGA芯片,不规则BGA芯片为相邻行BGA焊球成交错排列的BGA芯片;
步骤六、利用步骤四得到的等效BGA焊球间距典型值Δγ以及步骤五得到的等效BGA阵列粗略偏转角度Δθ,在BGA焊球标识图像上,对行、列等效BGA焊球进行直线聚类,得到每行等效BGA焊球蔟、每列等效BGA焊球蔟以及等效BGA阵列的边界等效BGA焊球蔟;
步骤七、利用步骤六得到的边界等效BGA焊球蔟,根据边界等效BGA焊球蔟中的每个等效BGA焊球在标识图像上的灰度值,在完整灰度BGA焊球信息列表中查找对应的完整灰度BGA焊球中心点位置坐标,根据完整灰度BGA焊球中心点位置坐标,进行边界焊球直线拟合,通过边界拟合直线求解原始图像中BGA芯片的偏转角度和中心位置;
步骤八、利用步骤七得到的边界拟合直线以及BGA芯片标准数据库中的焊球行间距及列间距,求解出每行等效BGA焊球和每列等效BGA焊球所在的直线方程,并在BGA焊球标识图像上对等效BGA焊球进行逐行和逐列搜索,进而得到BGA焊球分布矩阵;搜索过程为:以求解出的等效BGA焊球的行直线和列直线的方程的交点为中心,在BGA焊球标识图像上进行位置偏差容忍度范围内的搜索,若成功搜索到某一焊球,则对应BGA标识矩阵的所在行列位置的值置为1,否则为0;
步骤九、对步骤八得到的BGA焊球分布矩阵和标准数据库中的BGA焊球分布矩阵进行比较:若一致,则该待检测BGA芯片无缺陷,否则,该待检测芯片存在缺陷。
发明效果
采用本发明的一种基于直线聚类分析的BGA元件检测与定位方法,该方法主要有如下几方面的优点:
1)该算法基于直线聚类分析对于BGA芯片进行检测,是一种无匹配的BGA芯片定位算法,因此检测过程对芯片摆放姿态无要求。对于任意偏转角度下的BGA下芯片都可以快速稳定的定位与检测;
2)该算法在进行BGA芯片定位过程中,无对所有焊球进行遍历搜索的过程,算法的时间短,复杂度低,能够满足高速贴片机的生产要求,实验结果表明,在C++编译环境下,检测算法在B960(主频:2.2GHz,双核)的PC机上运行,对于焊球数目小于500个的BGA芯片的检测与定位时间小于200ms;
3)该算法能够直接适用于绝大多数的不同类型BGA芯片。对于规则型BGA芯片(相邻行BGA焊球成整齐排列),不规则BGA芯片(相邻行BGA焊球成交错排列)、以及焊球阵列稀疏的BGA芯片都能够适用。
4)该算法对成像光照强度有一定的鲁棒性,对于不均匀的光照强度,算法依然能够准确的进行芯片的检测。
附图说明
图1为本发明流程图;
图2为具体实施方式二中灰度BGA图像的动态阈值分割、形态学处理和连通域标记示例图;
图3为具体实施方式三中对二值图像进行区域提取示例图;
图4为具体实施方式五中对BGA焊球进行局部分析的算法示例图。
具体实施方式
具体实施方式一:结合图1说明本实施方式,本实施方式所述的一种基于直线聚类分析的BGA元件检测与定位方法具体是按照以下步骤进行的:
步骤一、对摄像头采集到的灰度BGA芯片图像,即为原始图像,进行动态阈值分割得到二值焊球图像,并对二值焊球图像进行形态学开运算和闭运算处理,处理后的二值焊球图像上的每个连通域记为一个二值化BGA焊球,然后对每个二值化BGA焊球进行连通域标记;
其中,所述BGA焊球位于BGA芯片上;
步骤二、对步骤一得到的经过连通域标记后的每个二值化BGA焊球在原始图像上对应位置的邻域范围内进行灰度连通域提取,获得原始图像的完整灰度BGA焊球,并建立完整灰度BGA焊球信息列表;
其中,建立完整灰度BGA焊球信息列表内容包括:每个完整灰度BGA焊球所包含的灰度像素,以及由灰度像素计算得到的每个完整灰度BGA焊球的中心点位置坐标、每个完整灰度BGA焊球对应最小外包圆直径、每个完整灰度BGA焊球的面积和圆度,每个焊球包含的灰度像素包括每个焊球像素坐标和每个焊球灰度值;
步骤三、利用BGA芯片标准数据库中的焊球参数,对步骤二得到的完整灰度BGA焊球信息列表进行筛选,更新筛选后的完整灰度BGA焊球信息列表;
步骤四、用步骤三得到的更新后的完整灰度BGA焊球信息列表,建立一个像素灰度值均为0、且大小与原始图像相同的背景图像;并在背景图像中,将对应原始图像中每个完整灰度BGA焊球中心点位置处的灰度值,变为对应二值化BGA焊球的标识序号,此时的背景图像即为BGA焊球标识图像,BGA焊球标识图像上的每个非0灰度值的像素称为一个等效BGA焊球,所有等效BGA焊球构成的阵列称为等效BGA阵列;原始图像中有M*N个完整灰度BGA焊球,对应背景图像中就有M*N个等效BGA焊球,等效BGA焊球实质为一个像素,完整灰度BGA焊球与等效BGA焊球一一对应;
然后,在BGA焊球标识图像中,计算相邻2个等效BGA焊球的间距Δγ,将此间距作为等效BGA焊球间距典型值;
步骤五、利用步骤四得到的等效BGA焊球间距典型值Δγ,在BGA焊球标识图像上,对等效BGA阵列进行局部分析,确定等效BGA阵列粗略偏转角度Δθ;
其中,局部分析分为针对规则型BGA芯片的局部分析和针对不规则BGA芯片的局部分析,规则型BGA芯片为相邻行BGA焊球成整齐排列的BGA芯片,不规则BGA芯片为相邻行BGA焊球成交错排列的BGA芯片;
步骤六、利用步骤四得到的等效BGA焊球间距典型值Δγ以及步骤五得到的等效BGA阵列粗略偏转角度Δθ,在BGA焊球标识图像上,对行、列等效BGA焊球进行直线聚类,得到每行等效BGA焊球蔟、每列等效BGA焊球蔟以及等效BGA阵列的边界等效BGA焊球蔟;
步骤七、利用步骤六得到的边界等效BGA焊球蔟,根据边界等效BGA焊球蔟中的每个等效BGA焊球在标识图像上的灰度值,在完整灰度BGA焊球信息列表中查找对应的完整灰度BGA焊球中心点位置坐标,根据完整灰度BGA焊球中心点位置坐标,进行边界焊球直线拟合,通过边界拟合直线求解原始图像中BGA芯片的偏转角度和中心位置;
步骤八、利用步骤七得到的边界拟合直线以及BGA芯片标准数据库中的焊球行间距及列间距,求解出每行等效BGA焊球和每列等效BGA焊球所在的直线方程,并在BGA焊球标识图像上按如下方式对等效BGA焊球进行逐行和逐列搜索,进而得到BGA焊球分布矩阵:以求解出的等效BGA焊球的行直线和列直线的方程的交点为中心,在BGA焊球标识图像上进行位置偏差容忍度(位置偏差容忍度在BGA标准数据库中规定)范围内的搜索,若成功搜索到某一焊球,则对应BGA标识矩阵的所在行列位置的值置为1,否则为0(如果未搜索到某一有效BGA焊球,则将有效BGA焊球对应的BGA标识矩阵的所在行列位置的值置为0);
步骤九、对步骤八得到的BGA焊球分布矩阵和标准数据库中的BGA焊球分布矩阵进行比较:若一致,则该待检测BGA芯片无缺陷,否则,该待检测芯片存在缺陷。
具体实施方式二:结合图2说明本实施方式,本实施方式与具体实施方式一不同的是,所述步骤一中对摄像头采集到的灰度BGA芯片图像,即为原始图像,进行动态阈值分割得到二值焊球图像,并对二值焊球图像进行形态学开运算和闭运算处理,处理后的二值焊球图像上的每个连通域记为一个二值化BGA焊球,然后对每个二值化BGA焊球进行连通域标记;其中,所述BGA焊球位于BGA芯片上;具体过程为:
灰度BGA芯片图像经过动态阈值分割得到二值焊球图像I(x,y),如下式所示:
式中,g(x,y)为灰度BGA芯片图像f(x,y)经过均值滤波后的图像,C为预设的一常数,f(x,y)为灰度BGA芯片图像,I(x,y)为二值焊球图像;
相较于全局单一阈值图像分割,动态阈值分割能够对不均匀光照有更好的鲁棒性。其中,对动态阈值分割后的二值图像进行形态学开运算和闭运算处理,是剔除动态阈值分割过程中因“过分割”引入的噪点和“欠分割”引入的孔洞。经过连通域标记步骤后,二值化BGA焊球都对应有一个唯一的标识序号。
具体实施方式三:结合图3说明本实施方式,本实施方式与具体实施方式一或二不同的是,所述步骤二中对步骤一得到的经过连通域标记后的每个二值化BGA焊球在原始图像上对应位置的邻域范围内进行灰度连通域提取,获得原始图像的完整灰度BGA焊球,并建立完整灰度BGA焊球信息列表;其中,建立完整灰度BGA焊球信息列表内容包括:每个完整灰度BGA焊球所包含的灰度像素,以及由灰度像素计算得到的每个完整灰度BGA焊球的中心点位置坐标、每个完整灰度BGA焊球对应最小外包圆直径、每个完整灰度BGA焊球的面积和圆度,每个焊球包含的灰度像素包括每个焊球像素坐标和每个焊球灰度值;具体过程为:
原始图像上对应位置的邻域范围内进行灰度连通域提取的公式,表示如下:
式中,(xp,yp)为原始图像上待判断的像素的横纵坐标值,yp为原始图像上待判断的像素的纵坐标值,R为完整灰度BGA焊球像素集合,mean[R]表示完整灰度BGA焊球中所有像素的平均灰度值,(xadj,yadj)表示与(xp,yp)八邻接且已经属于R的像素的坐标值,Δ为预设常量,经过灰度连通域提取,能够最大程度的提取到每个BGA焊球包含的所有像素,最终提取得到的BGA焊球记为完整灰度BGA焊球;
其中,第i个完整灰度BGA焊球的中心点位置坐标计算公式如下:
式中:为第i个完整灰度BGA焊球的中心点位置x轴坐标,为第i个完整灰度BGA焊球的中心点位置y轴坐标,(xk,yk)为第i个完整灰度BGA焊球包含的第k个像素,Ni为第i个完整灰度BGA焊球包含的像素个数,i为正整数,k为正整数;
第i个完整灰度BGA焊球的面积Si为此完整灰度BGA焊球包含的像素个数Ni,第i个完整灰度BGA焊球的圆度Ci计算公式如下:
式中,Li为第i个完整灰度BGA焊球周长,也就是此完整灰度BGA焊球的外围像素数。
具体实施方式四:本实施方式与具体实施方式一、二或三不同的是,所述步骤三中利用BGA芯片标准数据库中的焊球参数,对步骤二得到的完整灰度BGA焊球信息列表进行筛选,更新筛选后的完整灰度BGA焊球信息列表;具体过程为:
对步骤二得到的完整灰度BGA焊球信息列表进行筛选,对下述两种不符合要求的完整灰度BGA焊球进行剔除:
1)若|Di-Dref|>ΔDtolerance,则表明该完整灰度BGA焊球不符合要求,将其剔除;
式中,Di为第i个完整灰度BGA焊球的最小外包圆直径,Dref为BGA芯片标准数据库中的标准焊球直径,ΔDtolerance为BGA芯片标准数据库中的焊球直径容忍度偏差;
2)若|Ci-1|>ΔCtolerance,则表明该完整灰度BGA焊球不符合要求,将其剔除;
式中,Ci为第i个完整灰度BGA焊球的圆度,ΔCtolerance为BGA芯片标准数据库中的圆度容忍度偏差。
具体实施方式五:结合图4说明本实施方式,本实施方式与具体实施方式一、二、三或四不同的是,所述步骤五中利用步骤四得到的等效BGA焊球间距典型值Δγ,在BGA焊球标识图像上,对等效BGA阵列进行局部分析,确定等效BGA阵列粗略偏转角度Δθ;其中,局部分析分为针对规则型BGA芯片的局部分析和针对不规则BGA芯片的局部分析,规则型BGA芯片为相邻行BGA焊球成整齐排列的BGA芯片,不规则BGA芯片为相邻行BGA焊球成交错排列的BGA芯片;具体过程为:
1)对于相邻行BGA焊球成整齐排列的BGA芯片
步骤四一、在BGA焊球标识图像上,选择任一个等效BGA焊球;
步骤四二、以该等效BGA焊球为中心在3△γ半径范围内,分别搜索[-45°,45°)、[45°,135°)、[135°,225°)和(-45°,-135°]四个方向范围内,与该等效BGA焊球最近的等效BGA焊球,若四个方向的最近等效BGA焊球均不存在,重新执行步骤四一;
步骤四三、对每个方向找到的最近相邻等效BGA焊球,分别按照下式求取第j个方向对应的等效BGA阵列粗略偏转角度Δθj,j=1,2,3,4分别代表四个方向范围,j取1时范围为[-45°,45°)、j取2时范围为[45°,135°)、j取3时范围为[135°,225°)、j取4时范围为(-45°,-135°]:
式中,(xcenter,ycenter)为中心的等效BGA焊球的坐标,xcenter为中心的等效BGA焊球的x轴坐标,ycenter为中心的等效BGA焊球的y轴坐标,为第j个方向对应的最近等效BGA焊球,为第j个方向对应的x轴最近等效BGA焊球,为第j个方向对应的y轴最近等效BGA焊球,同时,上式中的±90°和正负号根据四个方向情况进行选择或者舍去。然后将所有Δθj取平均值作为最终的等效BGA阵列粗略偏转角度△θ,在图像坐标系下,Δθ以顺时针方向为正;
2)对于相邻行BGA焊球成交错排列的BGA芯片不规则BGA芯片;
步骤四一、在BGA焊球标识图像上,选择任一个等效BGA焊球;
步骤四二、以该等效BGA焊球为中心在3Δγ半径范围内,分别搜索[0°,90°)、[90°,180°)、[180°,270°)、[-90°,0°)的四个方向范围内,与中心的等效BGA焊球最近的等效BGA焊球,若四个方向的最近等效BGA焊球均不存在,重新执行步骤四一;
步骤四三、对每个方向找到的最近相邻等效BGA焊球,分别按照下式求取第j个方向对应的等效BGA阵列粗略偏转角度Δθj,j=1,2,3,4:
式中,(xcenter,ycenter)为中心的等效BGA焊球的坐标,为第j个方向对应的最近等效BGA焊球,同时,上式中的±90°和正负号根据四个方向情况进行选择或者舍去。然后将所有△θj取平均值作为最终的等效BGA阵列粗略偏转角度△θ。
具体实施方式六:本实施方式与具体实施方式一、二、三、四或五不同的是,所述步骤六中利用步骤四得到的等效BGA焊球间距典型值Δγ以及步骤五得到的等效BGA阵列粗略偏转角度Δθ,在BGA焊球标识图像上,对行、列等效BGA焊球进行直线聚类,得到每行等效BGA焊球蔟、每列等效BGA焊球蔟以及等效BGA阵列的边界等效BGA焊球蔟;具体过程为:
步骤六一、根据等效BGA阵列粗略偏转角度△θ,确定等效BGA焊球的行直线方程表达式ycenter=tan(Δθ)xcenter+brow和等效BGA焊球的列直线方程表达式ycenter=tan(Δθ+90°)(xcenter-bcol),其中,(xcenter,ycenter)为完整灰度BGA焊球的中心点位置坐标,同时也是为对应等效BGA焊球的坐标,brow为行直线在图像坐标系y轴的截距,bcol为列直线在图像坐标系x轴的截距;
步骤六二、确定等效BGA焊球行列分类阈值
步骤六三、对等效BGA焊球进行行聚类:利用第i个等效BGA焊球坐标反解出对应的行直线方程的行截距
步骤六四、基于等效BGA焊球行列分类阈值intercept_thresh,对所有等效BGA焊球得到的行截距进行聚类:分别计算当前行截距和每组的行聚类中心的距离,如果此距离小于intercept_thresh,则将当前行截距分给该组,其中,行聚类中心为该组内所有行截距的平均值,在确定完对应的组类归属后,对应的等效BGA焊球也归到相应的等效BGA焊球蔟中,且此等效BGA焊球蔟在等效BGA阵列的同一行,记为行等效BGA焊球蔟;
步骤六五、将步骤六四聚类后,蔟内元素个数为1的行等效BGA焊球簇视为干扰予以剔除;
然后对所有行等效BGA焊球蔟按照对应的行聚类中心进行升序排序,得到每行等效BGA焊球蔟,且按行序号由小到大排列;
步骤六六、对等效BGA焊球进行列聚类:利用第i个等效BGA焊球坐标反解出对应的列直线方程的列截距
步骤六七、基于等效BGA焊球行列分类阈值intercept_thresh,对所有等效BGA焊球得到的列截距进行聚类:分别计算当前列截距和每组的列聚类中心的距离,如果此距离小于intercept_thresh,则将当前列截距分给该组,其中,列聚类中心为该组内所有列截距的平均值,在确定完对应的组类归属后,对应的等效BGA焊球也归到相应的等效BGA焊球蔟中,且此等效BGA焊球蔟在等效BGA阵列的同一列,记为列等效BGA焊球蔟;
步骤六八、将步骤六七聚类后,蔟内元素个数为1的列等效BGA焊球簇视为干扰予以剔除;
然后对所有列等效BGA焊球蔟按照对应的列聚类中心进行升序排序,得到每列等效BGA焊球蔟,且按列序号由小到大排列;
步骤六九、经过排序后的行等效BGA焊球蔟的第一组和最后一组,以及经过排序后的列等效BGA焊球蔟的第一组和最后一组,即为边界等效BGA焊球蔟。
具体实施方式七:本实施方式与具体实施方式一、二、三、四、五或六不同的是,所述步骤八中利用步骤七得到的边界拟合直线以及BGA芯片标准数据库中的焊球行间距及列间距,求解出每行等效BGA焊球和每列等效BGA焊球所在的直线方程,并在BGA焊球标识图像上按如下方式对等效BGA焊球进行逐行和逐列搜索,进而得到BGA焊球分布矩阵:以求解出的等效BGA焊球的行直线和列直线的方程的交点为中心,在BGA焊球标识图像上进行位置偏差容忍度(位置偏差容忍度在BGA标准数据库中规定)范围内的搜索,若成功搜索到某一焊球,则对应BGA标识矩阵的所在行列位置的值置为1,否则为0(如果未搜索到某一有效BGA焊球,则将有效BGA焊球对应的BGA标识矩阵的所在行列位置的值置为0);具体过程为:
若上边界等效BGA焊球拟合直线为Arowxcenter+Browycenter+Cup=0,在求解第m行等效BGA焊球所在的直线方程Arowxcenter+Browycenter+Cm=0时,采用如下公式:
式中,dm为第m行等效BGA焊球所在直线和上边界拟合直线之间的直线间距,可由BGA芯片标准数据库中的焊球行间距与m的乘积得到,Arow、Brow、Cup是上边界等效BGA焊球拟合求解出的直线系数,Cm为待求解的第m行等效BGA焊球所在方程直线系数,上述同样方法可以得到所有列直线方程,求解行直线方程和列直线方程的交点,并以该交点为中心在BGA焊球标识图像上进行位置偏差容忍度范围内搜索:若成功搜索到某一焊球,则对应BGA标识矩阵的所在行列位置的值置为1,否则为0。