一种用于球栅阵列引脚芯片的焊球定位及其参数识别方法
技术领域
本发明涉及一种快速的球栅阵列封装芯片的视觉识别方法。
背景技术
随着PCB上芯片集成度的增加,表面贴装技术(SMT)正在逐渐代替传统人工焊接,应用在PCB的芯片贴装生产过程中,贴片机作为SMT中的核心生产单元,主要依靠视觉系统完成电子元器件的识别检测与摆放,因此如何保证芯片能够通过视觉系统准确高效的识别、检测与定位,将直接决定最终产品的良品率与生产效率。
BGA(球栅阵列封装)芯片由于集成程度高、IO引脚数目多,广泛应用于大规模集成电路中。也正由于这种特点,BGA芯片(球栅阵列引脚芯片)在进行制造时更容易出现焊球丢失、焊球过大或过小、焊球移位等缺陷。同时,输入输出引脚较多、间距小、封装形式多样性等特点对视觉识别算法的稳定性和速度提出了更高的要求。
BGA芯片在进行缺陷检测前,需要对焊球的排布规律,焊球直径,焊球行、列间距等数据进行记录,进而建立BGA芯片的标准数据库。目前,这一过程主要是通过人工输入的方式或视觉识别的方式进行。人工输入是基于手动测量的方式,然而BGA芯片IO引脚较多、间距较小都导致了人工工作量大、效率低的问题。
计算机视觉识别是基于图像处理技术对芯片数据进行提取,但现有BGA芯片识别算法主要有如下几个问题:1)识别算法鲁棒性差,对BGA芯片的摆放角度和位置提出严格要求,即常要求芯片水平摆放,算法通过水平逐行扫描进行焊球分布识别。2)由于识别算法的基本思想是图像X和Y方向上的像素坐标的比较,因此对于图像上出现的非焊球噪点不具有抗干扰性。3)同时现有算法对于焊球提取主要是采用图像二值化的方式进行,而采用统一的阈值进行图像二值化往往会使得提取出的焊球不完整,最终导致焊球直径和位置测量出现偏差。4)现有算法只能对相邻行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阵列典型行间距Δy及列间距Δx。(图像坐标系下,Δθ以逆时针方向为正)
步骤五:利用步骤三得到的BGA焊球标识图像以及步骤四得到等效BGA阵列粗略偏转角度Δθ和等效BGA阵列典型行间距Δy及列间距Δx,在BGA焊球标识图像上行走定位上边界等效BGA焊球集合、右边界等效BGA焊球集合、下边界等效BGA焊球集合和左边界等效BGA焊球集合。其主要步骤如下:
步骤五一、BGA焊球标记图像上任选择一个等效BGA焊球作为行走起点S0。
步骤五二、从行走起点S0开始出发,沿Δθ+180°方向(左侧方向)行走Δx,到达S1(Δθ+180°,Δx)位置,并在此位置进行搜索半径为Δγ/2的局部搜索。
步骤五三、如果在位置S1局部成功找到等效BGA焊球,则以位置S1为行走起点S0,重新执行步骤五二;否则,继续沿Δθ+180°方向行走Δx,到达S2(Δθ+180°,2Δx)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五二;否则返回位置S1,并沿Δθ+90°方向(上侧方向)行走Δy,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五四。否则返回到步骤五二中的搜索起点S0。
步骤五四、从行走起点S0开始出发,沿Δθ+90°方向(上侧方向)行走Δy,到达下一位置S1(Δθ+90°,Δy),并在此位置处进行搜索半径为Δγ/2的局部搜索。
步骤五五、、如果在位置S1局部成功找到等效BGA焊球,则以位置S1为行走起点S0,重新执行步骤五四;否则,继续沿Δθ+90°方向行走Δy,到达S2(Δθ+90°,2Δy)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五四;否则返回位置S1,并沿Δθ方向(右侧方向)行走Δx,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五六。否则返回到步骤五四中的搜索起点S0。
步骤五六、从行走起点S0开始出发,沿Δθ方向(右侧方向)行走Δx,到达下一位置S1(Δθ,Δx),并在此位置处进行搜索半径为Δγ/2的局部搜索。
步骤五七、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到上边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五六;否则,继续继续沿Δθ方向行走Δx,到达S2(Δθ,2Δx)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五六;否则返回位置S1,并沿Δθ-90°方向(下侧方向)行走Δy,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五八。否则返回到步骤五六中的搜索起点S0。
步骤五八、从行走起点S0开始出发,沿Δθ-90°方向(下侧方向)行走Δy,到达下一位置S1(Δθ-90°,Δy),并在此位置处进行搜索半径为Δγ/2局部搜索。
步骤五九、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到右边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五八;否则,继续沿Δθ-90°方向行走Δy,到达S2(Δθ-90°,2Δy)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五八;否则返回位置S1,并沿Δθ+180°方向(左侧方向)行走Δx,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五十。否则返回到步骤五八中的搜索起点S0。
步骤五十、从行走起点S0开始出发,沿Δθ+180°方向(左侧方向)行走Δx,到达下一位置S1(Δθ+180°,Δx),并在此位置处进行搜索半径为Δγ/2局部搜索。
步骤五十一、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到下边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五十;否则,继续沿Δθ+180°方向行走2Δx,到达S2(Δθ+180°,2Δx)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五十;否则返回位置S1,并沿Δθ+90°方向(上侧方向)行走Δy,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五十二。否则返回到步骤五十中的搜索起点S0。
步骤五十二、从行走起点S0开始出发,沿Δθ+90°方向(上侧方向)行走Δy,到达下一位置S1(Δθ+90°,Δy),并在此位置处进行搜索半径为Δγ/2局部搜索。
步骤五十三、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到左边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五十二;否则,继续沿Δθ+90°方向行走Δy,到达S2(Δθ+90°,2Δy)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五十二;否则结束。
步骤六:利用步骤五得到的上边界等效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阵列典型行间距Δy及列间距Δx,确定等效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)本发明方法采用局部分析配合“行走定位边界焊球”的方式,能够对任意放置位置和放置角度情况下的BGA芯片进行识别。2)该识别算法能够适用于具有不同焊球排列方式的BGA芯片,对于相邻行交错排列的不规则BGA芯片也能够正确识别。3)本方法采用了动态阈值分割配合灰度连通域提取分离BGA焊球,保证了焊球提取的完整性,因此对环境关照具有更强的鲁棒性,同时对于恶劣关照条件下,检测精度高。4)方法的时间复杂小,实验表明,本发明方法对于具有500个焊球引脚规模的BGA焊球,识别定位时间小于200ms。
附图说明
图1是本发明具体实施方式一的工作流程图;
图2是步骤一中对灰度BGA图像分别进行动态阈值分割、形态学处理和连通域标记的示例图;
图3是步骤二中对步骤一得到的二值图像进行灰度连通域提取的示例图;
图4是步骤四中对BGA焊球进行局部分析的算法示例图;
图5是步骤五中行走定位BGA芯片边界焊球集合的示例图;
图6是步骤五中边界焊球行走定位方法能够克服的几种特殊情况,图中:a表示情况1:S1处无焊球,b表示情况2:拐角处无焊球;
图7是步骤七中由行列搜索得到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阵列典型行间距Δy及列间距Δx(图像坐标系下,Δθ以逆时针方向为正);
步骤五:利用步骤三得到的BGA焊球标识图像以及步骤四得到等效BGA阵列粗略偏转角度Δθ和等效BGA阵列典型行间距Δy及列间距Δx,在BGA焊球标识图像上行走定位上边界等效BGA焊球集合、右边界等效BGA焊球集合、下边界等效BGA焊球集合和左边界等效BGA焊球集合;
步骤六:利用步骤五得到的上边界等效BGA焊球集合、右边界等效BGA焊球集合、下边界等效BGA焊球集合和左边界等效BGA焊球集合,和步骤二得到的完整灰度BGA焊球信息列表进行边界直线拟合,精确求解BGA芯片的偏转角度和中心位置;
步骤七:利用步骤六得到的边界焊球拟合直线和步骤四得到的等效BGA阵列典型行间距Δy及列间距Δx,确定等效BGA阵列的行列数、每行等效BGA焊球的直线方程和每列等效BGA焊球的直线方程,并对等效BGA焊球进行逐行搜索得到每行等效BGA焊球集合和每列等效BGA焊球集合,以及BGA焊球分布矩阵以及,同时求解出BGA焊球标准直径尺寸、标准周长尺寸以及标准圆度尺寸;
步骤八:利用步骤七得到每行等效BGA焊球集合和每列等效BGA焊球集合,和步骤二得到的完整灰度BGA焊球信息列表进行每行等效BGA焊球直线拟合和每列等效BGA焊球直线拟合,将所有相邻行拟合直线间距作为BGA焊球标准行间距,将所有相邻列拟合直线间距作为BGA焊球标准列间距。
具体实施方式二:下面结合图2说明本具体实施方式,本实施方式是对具体实施方式一的进一步说明,步骤一对摄像头采集到的灰度BGA芯片图像,即为原始图像,进行动态阈值分割得到二值焊球图像,这些操作的具体表述如下:
其中,灰度BGA芯片图像经过动态阈值分割得到二值焊球图像I(x,y)用如下数学表达式表示:
其中,f(x,y)灰度BGA图像,即为原始图像;g(x,y)是f(x,y)经过均值滤波后的图像。C为认为设置常数。
相较于单阈值图像分割,动态阈值分割能够对不均匀光照有更好的鲁棒性。图像的形态学处理是对动态阈值分割后的二值图像分别进行形态学的开运算和闭运算,以去除二值图像上的干扰噪点。最终,对上述两步得到的二值图像进行连通域分析,分别给每个连通域一个唯一的标识序号。
具体实施方式三:下面结合图3说明本具体实施方式,本实施方式是对具体实施方式一的进一步说明,步骤二中对步骤一得到的经过连通域标记后的每个二值化BGA焊球在原始图像上对应邻域范围内进行灰度连通域提取,获得完整灰度BGA焊球,并建立完整灰度BGA焊球信息列表,建立完整灰度BGA焊球信息列表内容包括:每个完整灰度BGA焊球所包含的灰度像素,以及由灰度像素计算得到的每个完整灰度BGA焊球的中心点坐标、每个完整灰度BGA焊球对应最小外包圆直径、每个完整灰度BGA焊球的周长和圆度;其中,每个焊球包含的灰度像素像素坐标和灰度值;这一过程的具体表述过程如下:
(1)每个二值化BGA焊球在原始图像上对应邻域范围内进行灰度连通域提取用如下公式表示:
式中,(xp,yp)为原始图像上待判断的像素的横纵坐标值,R为完整灰度BGA焊球像素集合,mean[R]表示完整灰度BGA焊球中所有像素的平均灰度值,(xadj,yadj)表示与(xp,yp)八邻接且已经属于R的像素的坐标值,和Δ为预设常量;f(xp,yp)为原始图像在点(xp,yp)处的灰度值;
这样经过灰度连通域提取,能够最大程度的提取到每个BGA焊球包含的所有像素,最终提取得到的灰度BGA焊球记为完整灰度BGA焊球;
(2)第i个完整灰度BGA焊球的中心点位置坐标计算公式如下:
式中:(xk,yk)为第i个完整灰度BGA焊球包含的第k个像素,Ni为第i个完整灰度BGA焊球包含的像素个数,i为正整数,k为正整数;
(3)第i个完整灰度BGA焊球的面积Si为此完整灰度BGA焊球包含的像素个数Ni;第i个完整灰度BGA焊球的圆度Ci计算公式如下:
式中,Li为第i个完整灰度BGA焊球周长即完整灰度BGA焊球的外围像素数。
具体实施方式四:下面结合图4说明本具体实施方式,本实施方式是对具体实施方式一的进一步说明,步骤四中采用步骤三得到的BGA焊球标识图像和等效BGA焊球间距典型值Δγ,对等效BGA阵列进行局部分析,确定等效BGA阵列粗略偏转角度Δθ和等效BGA阵列典型行间距Δy及列间距Δx。(图像坐标系下,Δθ以逆时针方向为正)。这一过程的说明如下:
步骤四一、在BGA焊球标识图像上,选择任一个等效BGA焊球;
步骤四二、以步骤四一中选择的等效BGA焊球为中心在3Δγ半径范围内,分别搜索[-45°,45°)、[45°,135°)、[135°,225°)和(-45°,-135°]四个方向范围内,与步骤四一中选择的等效BGA焊球最近的等效BGA焊球,若四个方向的最近等效BGA焊球均不存在,重新执行步骤四一;
步骤四三、对每个方向找到的最近相邻等效BGA焊球,分别按照下式求取第j个方向对应的等效BGA阵列粗略偏转角度Δθj,
式中,(xcenter,ycenter)为中心的等效BGA焊球的坐标,(xj,yj)为第j个方向对应的最近等效BGA焊球;同时,上式中的±90°和正负号根据四个方向情况进行选择或者舍去。j=1代表[-45°,45°)范围;j=2代表[45°,135°)范围:j=3代表[135°,225°)范围;j=4代表(-45°,-135°]范围;
然后将所有Δθj取平均值作为最终的等效BGA阵列粗略偏转角度Δθ,在图像坐标系下,Δθ以顺时针方向为正;
步骤四四、等效BGA阵列典型行间距Δy和等效BGA阵列典型列间距Δx的求解方法如下:
具体实施方式五:下面结合图5、图6说明本具体实施方式,本实施方式是对具体实施方式一的进一步说明,步骤五中利用步骤三得到的BGA焊球标识图像以及步骤四得到等效BGA阵列粗略偏转角度Δθ和等效BGA阵列典型行间距Δy及列间距Δx,在BGA焊球标识图像上行走定位上边界等效BGA焊球集合、右边界等效BGA焊球集合、下边界等效BGA焊球集合和左边界等效BGA焊球集合。其主要步骤如下:
步骤五一、BGA焊球标记图像上任选择一个等效BGA焊球作为行走起点S0。
步骤五二、从行走起点S0开始出发,沿Δθ+180°方向(左侧方向)行走Δx,到达S1(Δθ+180°,Δx)位置,并在此位置进行搜索半径为Δγ/2的局部搜索。
步骤五三、如果在位置S1局部成功找到等效BGA焊球,则以位置S1为行走起点S0,重新执行步骤五二;否则,继续沿Δθ+180°方向行走Δx,到达S2(Δθ+180°,2Δx)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五二;否则返回位置S1,并沿Δθ+90°方向(上侧方向)行走Δy,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五四。否则返回到步骤五二中的搜索起点S0。
步骤五四、从行走起点S0开始出发,沿Δθ+90°方向(上侧方向)行走Δy,到达下一位置S1(Δθ+90°,Δy),并在此位置处进行搜索半径为Δγ/2的局部搜索。
步骤五五、、如果在位置S1局部成功找到等效BGA焊球,则以位置S1为行走起点S0,重新执行步骤五四;否则,继续沿Δθ+90°方向行走Δy,到达S2(Δθ+90°,2Δy)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五四;否则返回位置S1,并沿Δθ方向(右侧方向)行走Δx,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五六。否则返回到步骤五四中的搜索起点S0。
步骤五六、从行走起点S0开始出发,沿Δθ方向(右侧方向)行走Δx,到达下一位置S1(Δθ,Δx),并在此位置处进行搜索半径为Δγ/2的局部搜索。
步骤五七、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到上边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五六;否则,继续继续沿Δθ方向行走Δx,到达S2(Δθ,2Δx)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五六;否则返回位置S1,并沿Δθ-90°方向(下侧方向)行走Δy,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五八。否则返回到步骤五六中的搜索起点S0。
步骤五八、从行走起点S0开始出发,沿Δθ-90°方向(下侧方向)行走Δy,到达下一位置S1(Δθ-90°,Δy),并在此位置处进行搜索半径为Δγ/2局部搜索。
步骤五九、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到右边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五八;否则,继续沿Δθ-90°方向行走Δy,到达S2(Δθ-90°,2Δy)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五八;否则返回位置S1,并沿Δθ+180°方向(左侧方向)行走Δx,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五十。否则返回到步骤五八中的搜索起点S0。
步骤五十、从行走起点S0开始出发,沿Δθ+180°方向(左侧方向)行走Δx,到达下一位置S1(Δθ+180°,Δx),并在此位置处进行搜索半径为Δγ/2局部搜索。
步骤五十一、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到下边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五十;否则,继续沿Δθ+180°方向行走2Δx,到达S2(Δθ+180°,2Δx)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五十;否则返回位置S1,并沿Δθ+90°方向(上侧方向)行走Δy,到达位置S3进行局部搜索,如果在位置S3局部成功找到等效BGA焊球,则以位置S3作为起点S0,执行步骤五十二。否则返回到步骤五十中的搜索起点S0。
步骤五十二、从行走起点S0开始出发,沿Δθ+90°方向(上侧方向)行走Δy,到达下一位置S1(Δθ+90°,Δy),并在此位置处进行搜索半径为Δγ/2局部搜索。
步骤五十三、如果在位置S1局部成功找到等效BGA焊球,记录该等效BGA焊球到左边界等效BGA焊球集合中,且以位置S1为行走起点S0,重新执行步骤五十二;否则,继续沿Δθ+90°方向行走Δy,到达S2(Δθ+90°,2Δy)处,进行搜索半径为Δγ/2的局部搜索。如果在位置S2局部成功找到等效BGA焊球,则以位置S2为行走起点S0,重新执行步骤五十二;否则结束。
具体实施方式六:下面结合图7说明本具体实施方式,本实施方式是对具体实施方式一的进一步说明,步骤七中利用步骤六得到的边界焊球拟合直线和步骤四得到的等效BGA阵列典型行间距Δy及列间距Δx,确定等效BGA阵列的行列数、每行等效BGA焊球的直线方程和每列等效BGA焊球的直线方程,并对等效BGA焊球进行逐行搜索得到每行等效BGA焊球集合和每列等效BGA焊球集合,以及BGA焊球分布矩阵以及,同时求解出BGA焊球标准直径尺寸、标准周长尺寸以及标准圆度尺寸。这一过程的主要流程说明如下:
(1)以求解等效BGA阵列的行数为例,用下公式说明:
如果上边界拟合直线方程为Aupx+Bupy+Cup=0:下边界拟合直线方程为Abotx+Bboty+Cbot=0:,则等效BGA阵列行数M表示为:
其中,AupBupCup为上边界拟合直线的常系数,AbotBbotCbot为下边界拟合直线的常系数,[]为取整符号。
(2)以求解每行等效BGA焊球的直线方程为例,用下公式说明:
在求解第m行等效BGA焊球的直线方程Arowx+Browy+Cm=0时,采用如下公式:
式中,dm为第m行等效BGA焊球所在直线和上边界拟合直线之间的直线间距,且dm=m·Δy,Cm为待求解的第m行等效BGA焊球的直线方程系数,
上述方法同样可以得到等效BGA阵列的列数以及每列等效BGA焊球的直线方程。
(3)对等效BGA焊球进行逐行搜索得到每行等效BGA焊球集合和每列等效BGA焊球集合,说明如下:
求解每行等效BGA焊球的直线方程和每列等效BGA焊球的直线方程的交点,并以该交点为中心在BGA标识图像上进行半径为Δγ/2局部搜索。如果成功搜索到某一等效BGA焊球,将该等效BGA焊球加入对应行、列等效BGA焊球集合中,且设置对应BGA标识矩阵的所在行列位置的值置为1,否则为0。
(4)求解出BGA焊球标准直径尺寸、标准周长尺寸以及标准圆度尺寸,说明如下:
将所有搜索到的等效BGA焊球的对应到完整灰度BGA焊球信息列表中的最小外包圆直径,求取平均值作为BGA标准焊球直径尺寸;将所有搜索到的等效BGA焊球的对应到完整灰度BGA焊球信息列表中的周长,求取平均值作为BGA标准焊球周长尺寸。将所有搜索到的等效BGA焊球的对应到完整灰度BGA焊球信息列表中的圆度,求取平均值作为BGA标准焊球圆度尺寸。