其中, T 为对 f(x,y)与 g(x,y)的差图像进行分割时 设定的阈值。从式(1)中直观来看, T为算法分割过 程中的固定阈值,但这个阈值是对差图像而言的,对于需要分割的原始图像f(x,y)而言,实际阈值为 平滑图像g(x,y)与T之和,如式(2)所示:
(2)
平滑图像 g(x,y)一般通过均值滤波、中值滤 波、高斯滤波等模板卷积运算得到,灰度值 g 主要取 决于像素点(x,y)处的原始灰度值 f 及其周边区域像素点的灰度,如平滑运算时采用 9×9 大小的均 值滤波,则平滑图像 g(x,y)中每一点的灰度值为该 点灰度和周边80个像素灰度的平均值,相当于原 始图像 f(x,y)在9×9动态窗口下得到的局部背景 图像。由于图像的局部背景是动态变化的,f(x,y)在 二值化时的阈值也随局部背景变化而变化,所以这 种算法命名为动态阈值分割算法,阈值T用来指定 想要分割的目标物体比局部背景亮多少。
使用动态阈值分割算法也可以提取灰度比周 边区域暗的物体,分割时使用的公式如式(3)所示:
(3)
式(3)与式(1)唯一的区别在于求解差图像的 过程不同,提取亮物体用原始图像减去平滑图像, 提取暗物体用平滑图像减去原始图像。
2
2 实验结果及讨论
BGA焊点连接电路板和BGA芯片,在X射线检测时吸收大量射线,图像上表现为黑色圆形区 域,比局部背景要暗;气泡缺陷吸收X射线线较少,在焊球的黑色区域内表现为灰白色,比局部背景要亮。实验过程中首先提取BGA焊点区域,然后再提 取气泡缺陷区域,最后将二者提取的结果相结合, 实现气泡缺陷的准确分割。
(a)原始图像 (b)初始分割结果
(c)最终分结果 (d)OTSU的分割结果图
图1 BGA焊点的动态阈值分割
2.1 BGA焊点的动态阈值分割
BGA 焊点的灰度比局部区域暗,如图 1(a)所示,使用式(3)来进行焊点区域的分割。对图 1(a)使用9×9大小的均值滤波算子进行平滑,阈值 T 设 定为 5,分割结果如图 1(b)所示。图1(b)中 4个焊点的黑色边缘被准确提取出来,形成闭合的圆环图 形,同时电路板上的过孔、内部连线等黑色区域也 被提取了出来。使用数学形态学中的区域填充算法 对图 1(b)进行填充,闭合的圆环图形被填充为白色 区域,然后再根据区域的面积大小设定阈值去除干 扰,本例中设定面积小于900的全部被去掉,得到的最终结果如图1(c)所示。
最大类间方差法(OTSU 法)由日本学者大津展之于1979 年首先提出[7],基于图像的直方图将待 处理图像分为前景和背景两类,通过寻找这两类像 素间的最大方差来达到最佳的分割效果,是实际工 业应用中使用较广的一种图像二值化处理方法,成 为事实上的阈值分割标准。使用 OTSU阈值分割算 法对图 1(a)进行处理,分割结果如图 1(d)所示, 4个焊球区域也被准确提取,产生的部分干扰可以通 过数学形态学中的开闭运算去除。可见,对于分割 焊球这类面积较大、在整幅图像上所占比例较大的 区域,动态阈值分割算法和 OTSU分割算法效果相 当,都能较好地提取目标区域。
2.2 焊点气泡缺陷区域的动态阈值分割
焊点内部的气泡缺陷区域灰度值比焊点区域 的灰度值大,属于局部亮目标,使用式(1)来进行提 取。使用 15×15的均值滤波算子对图 1(a)进行平 滑,阈值 T 设定为 0,分割结果如图 2(a)所示。可 见,焊球内部的气泡缺陷被提取出来,同时焊球外 部边缘、电路板上的过孔走线的外部边缘做为亮目 标也被提取了出来。使用图 1(c)的分割结果和图 2 (a)进行逻辑与运算,得到的结果如图 2(b)所示,仅有焊球区域内部的分割结果被保留了下来。对图 2 (b)进行区域填充运算,然后去掉面积小于20的噪声干扰区域,得到的最终分割结果如图 2(c)所示。可见,焊球内的气泡缺陷被全部提取了出来。
(a)初始分割结果(b)与焊点区域相与
(c)最终分割结果(d)OTSU 的分割结果
图2 气泡缺陷的动态阈值分割
使用 OTSU算法对图1(a)进行分割,同时使用图1(d)的焊球提取区域作为模板相与运算,得到的 结果如图 2(d)所示。由于气泡缺陷区域在图像中所 占比例较低,无法在图像直方图上形成明显峰值, OTSU算法确定的阈值提取不出气泡区域来。可见, 使用动态阈值分割算法,通过选择不同大小的滤波 算子和阈值,可以准确提取焊点区域和焊点内部缺 陷,优于使用 OTSU算法的提取效果,可以在工业应 用中取代 OTSU算法。
2.3 BGA焊点气泡缺陷的分割结果
将图 1(c)和图2(c)的分割结果提取边缘,在图 1 (a)上用图形的方式标注出来,如图3所示。图3中 红色的曲线表示焊球区域,同时按照顺序进行编号, 黄色的曲线表示焊球气泡区域,可以明显看到焊球 被准确提取,焊球内部的气泡缺陷也被准确提取。
图3 BGA焊点分割结果的标注
对图3中的标注区域进行定量分析,每个焊球 的面积、焊球内部气泡个数及其总面积、气泡面积 比如表1中所示。按照常规捡测标准,焊球内存在 多个气泡时,气泡的投影面积总和不能超过焊球投 影面积的20%,图1(a)中的4个焊球编号为2的焊 球不合格,气泡面积占到了22.21%,编号为1的焊 球处于临界状态,气泡面积达到了 19.94 %。
表1 BGA焊点气泡缺陷的分割结果
焊点编号焊球面积气泡总面积气泡面积(%)气泡比个数是否合格14 13782519.942Y24 26394722.212N34 02369417.252Y43 73084812.984Y
2.4 其他BGA焊点的气泡缺陷分割
BGA焊点在进行X射线检测时,受芯片、电路 板材料不同或X射线源电压波动等因素影响,采集到的图像质量也有所差异。图 1(a)中所示的 BGA焊 点图像质量较好,对比度适中,焊点、气泡缺陷和电 路板都清晰可见,图4(a)中所示的 BGA焊点图像质 量较差,对比度偏低,部分缺陷淹没焊点区域内很 难分辨,图 5(a)中所示的 BGA焊点图像质量也较 差,对比度偏高,电路板区域变成了一片白色。动态 阈值分割算法着眼于图像的局部灰度变化,可以很 好地适应图像质量的波动,其最终的分割结果如图4(b)和图 5(b)所示,所有缺陷都被提取了出来。
(a)原始图像 (b)分割及标注结果
图4 对比度较差的 BGA焊点分割
(a)原始图像(b)分割及标注结果
图5 对比度较高的 BGA焊点分割
3
3 结论
BGA 焊点的气泡缺陷在整幅图像中所占比例 较低,无法通过全局阈值分割的方法准确提取,阻 碍了缺陷的自动判定。动态阈值分割算法着眼于图 像的局部灰度变化,通过对原始图像和平滑图像的 差图像设定阈值来分割目标,算法简洁明了,可弥 补全局阈值分割算法的不足,较好地实现了 BGA焊 点气泡缺陷的准确提取,具有较强的鲁棒性。