焊接缺陷的X射线自动检测图像处理
2018-09-14陆艺丹
陆艺丹, 张 薇,2,3
(1.上海理工大学 光电信息与计算机工程学院, 上海 200093;2.上海理工大学 上海市现代光学系统重点实验室, 上海 200093;3.上海理工大学 教育部光学仪器与系统工程研究中心, 上海 200093)
引 言
焊接缺陷的X射线图像检测一直是无损探伤领域的研究热点之一,其主要目的是对焊接缺陷进行检测,并通过图像判断该元件焊接缺陷的位置和大小是否在合理误差范围内。传统的检测方法是X射线胶片检测,该方法耗时长并且不够经济,因此已经被淘汰。随着技术发展,当前的焊接缺陷检测技术均已数字化,然而X射线检测结果多数还采用人眼评估的方法,评定人员工作量大,而且对经验有相当高的要求,评定人员的主观因素对检测结果有很大影响。人工检测的低效率与低精度难以满足工业中大批量图像处理的检测要求。因此采用计算机辅助检测评估,可以有效地减少人工评估带来的弊端,使得整个检测过程更加客观,效率与精度更高。
通常焊接缺陷包括了未焊透、未熔合、夹渣、裂缝以及气孔。在印制电路板(PCB)基板加工过程中,最常出现的是气孔,若焊接点中的气孔过多过大,则会影响电路的导电性能,并出现短路等问题。X射线图像具有噪声多、缺陷对比度不高、背景起伏较大等特点,给缺陷自动检测带来很多困难[1],而且由于图像噪声以及背景灰度与缺陷灰度相似的原因,将造成误检与漏检。当前焊接缺陷的检测主要包括两个步骤,图像处理和特征提取[2]。通常图像处理使用的步骤包括图像降噪[3],对比度增强[4],边缘检测[5],图像分割[6]以及形态学处理[7]。图像处理后就是提取特征,一般包括了图形特征和纹理特征,利用提取出的特征可进行缺陷的判别。
目前常用的图像处理方法是直接利用全局分析[8],该方法进行缺陷的检测将会导致背景中相似灰度的亮点被误判为气孔。还有研究者提出先利用阈值法进行分割,再与图像背景进行差分处理,但分割后的二值图像可能包含不属于感兴趣的区域,会对最后的结果产生影响。因此本文利用区域标记法,对二值图像进行甄选,先去除无效区域后再对感兴趣区域进行气孔的提取,从而降低误判率,实现对焊接区域缺陷的自动检测。
图1 X射线实时检测系统Fig.1 X-ray real-time inspection system
本文以Image J图像处理系统为基础开发出自动检测焊接气孔的插件。Image J完全采用Java语言编写,因此它与平台无关,可以不加修改地运行在Windows,Mac OS和Linux操作系统上。该软件能提供一系列的标准处理函数,例如滤波、平滑等,而且Image J采用了开放式结构,通过加入Java语言的插件可以完成对其功能的扩展。由于对焊接进行缺陷提取需要一系列的标准处理函数,并且需要处理大批量的图像,所以利用Image J的可扩展的属性,我们可以开发出通用性较高的插件来检测批量的焊接缺陷图像。
1 检测系统结构与原理
如图1所示,检测系统主要由三部分组成:转换模块、处理模块以及串行通信模块。转换模块由X射线源、传送车、待测元件、图像增强器以及CCD图像传感器组成,该模块主要功能是将不可见的X射线转换为可见信号:首先利用增强器将X射线转换为可见光,然后通过CCD图像传感器将可见光信号转换为电信号,并将电信号传入处理模块。处理模块包括了监视器、图像采集卡、计算机以及计算机显示屏,模块工作时,图像采集卡捕捉模拟电信号并将其转换成数字信号,数字信号随后被送入计算机,并被图像处理算法处理,处理结果最后被实时显示并存储。一旦上述的检测仪器搭建好,若非改变其中特定的硬件设备,X射线图像的质量不会改变,因此需要可靠的图像处理算法才能计算出可靠的缺陷结果。
2 图像处理系统
若在焊缝区域存在气孔或者未焊透等情况,该区域的X射线图中将会出现亮点或者亮线,根据这个特征,在图形处理时就可通过分析区域中灰度值的大小来检测气孔是否存在。
每一幅X射线图中,焊接缺陷所在的区域只占整幅图像很小的一部分,如图2所示,焊点的钎料对X射线的吸收与PCB基板材料颜色有显著的差异,X射线投射到铅锡焊料时大部分被吸收,对应的图像中就是一个阴影,且与芯片和基板相比颜色较深,其中阴影区域中的白色亮点就是焊点中的气孔。若对图像进行全局处理分析,与气孔灰度相似的背景也会被误判为焊接缺陷,并且焊接区域有两个明亮部分,这也对气孔的提取造成困扰,所以从运算的时间与效率来看,全局分析并不合理。
因此本文利用区域标记将焊接区域进行提取,再进行局部图像处理,得到气孔的定位。整个测试流程如图3所示。
图2 焊接缺陷实例图Fig.2 The welding defects
图3 X射线图图像处理系统Fig.3 X-ray image processing system
2.1 图像预处理
由于光照不均匀以及图像捕捉设备强度范围有限等原因,在图像获取和传输过程中不可避免地要产生噪声信息,这些噪声信息将严重影响到后续的图像处理效果,因此需要对图像进行预处理操作,使图像降噪以及增强对比度。中值滤波器的基本思想是用像素点领域灰度值的中间值来代替该像素点的灰度值,该方法能够很好地去除脉冲噪声、椒盐噪声还能保留图像的边缘细节[8],因此选择3×3的二维窗口中值滤波器进行降噪。为了能够调整图像灰度差别,使得焊点区域更加清晰,还需进行图像增强步骤,提升目标与背景的对比度。
2.2 图像分割
一般情况下,可以直接用阈值分割法对预处理后的X射线图进行二值化处理,从而获取焊点区域的位置。但由于焊点中某些气孔的灰度值与PCB基板以及铜线的相似,图像分割时,部分气孔会被误判为背景,使得分割出的图像含有零散的白点。如图4所示,利用Otsu阈值分割后,焊接点区域中含有大量气孔,而且很多边缘区域被忽略掉,这使得后续的气孔提取中,位于边缘区域的缺陷无法被识别出,影响评判结果。所以在图像分割前需对阴影区域内的亮点进行闭运算,去除气孔,同时使用形态学滤波器进行边缘膨胀。如图5所示,二值图像中已经没有白色气孔,而且焊点整体形状趋近于焊盘原来的形状,主体区域信息都得到了保留。
图4 二值图像Fig.4 Binary image
图5 分割效果图Fig.5 Segmentation image
2.3 区域标记
在图像分割完之后,需要解释图中对象的个数与类型。如果孤立地考虑每个像素,将不能确定二值图像中一共有几个对象、它们的位置以及各个像素属于的对象。因此对图像进行遍历,依次标记所遇到的区域。
2.3.1初标记
在区域标记的第一阶段,图像由左上到右下进行遍历并顺序为所有前景像素标记为1,背景为0。使用8邻域关系来检查每个像素与邻近像素的关系。其中X表示待检查像素(u,v)的位置。当使用8领域N8时,N1=(u-1,v)、N2=(u-1,v-1)、N3=(u,v-1)以及N4=(u+1,v-1)都需要检查,领域的表达式为
(1)
对于边界上的像素点,其邻接像素可能在图像外,这些点可以作为背景部分来考虑。对邻域从左上角开始,首先沿水平方向扫描,然后按垂直方向扫描。如果当前的像素是一个前景像素,则会被赋予新的区域标号,或者如果该邻域中的邻近节点是之前检查过的前景像素,则该像素的标号与其邻近节点的标号一致(见图6(a)、(b)、(c)、(d)与(e))。
如果两个或者两个以上的邻近节点属于不同区域,这就意味着标号冲突,即一个简单的链接区域中的像素包含不同标号(如图6(f))。此时前景像素用邻域中较小的像素替代(如图6(g)),因为邻域中两个标记相互冲突时,事实上是属于同一个区域,这些冲突先会被记录下来待后续处理。
2.3.2处理冲突
第二步的任务是处理上一步中出现的标记冲突,使得本属于同一区域的各个部分相合并。一旦所有属于同一区域的标记冲突被标记下来,该区域中所有的像素标记将被更新为最小值(如图6(i))。
通过顺序区域标记法,可对分割图像进行标记,对应的区域统计信息如表1所示。在进行测试前,首先会使用Image J的矩形选择工具Rectangular selections对其中一个焊盘区域进行选定,并将该区域面积作为初始值。由表中数据可以看出,在19个标签中只有12个区域面积趋近于5 000像素,而其他的区域面积都远小于初始值,因此这12个区域将作为感兴趣区域(ROI)进行重新标记,并进行后续的局部分析,即气孔提取,如图7所示。
图6 顺序区域标记Fig.6 Sequential region labeling
标签12345678910区域面积/像素5 3715 2075 1335 2995 7155 157141148023标签111213141516171819区域面积/像素474 9905 2305 3185 5115 0545 83511254
图7 区域标记Fig.7 Region labeling
2.4 气孔提取
为了能够去除盘中的白色气孔亮点,使得焊盘内没有明显的灰度差,需要对源图像进行闭运算。将预处理后图像图8(a)与只有12个焊盘的ROI图像进行相加得出只含有焊盘区域的前景图,同时填充ROI外的背景,得到的背景图像如图8(b)所示。通过将图8(a)与(b)两图像相减可得到粗略的差分图像,为了有更好的图像分割效果,将差分ROI外填充为黑色,这样气孔图像与非气孔图像的灰度差值会最大化,分割效果也会越好,如图8(c)所示。最后将差分图像用Otsu阈值分割法得到气孔的分布图,如图8(d)所示。
在提取出气孔的全局分布图之后,继续利用区域标记法,标记所有气孔并得出每个气孔的特征,图9对应的是图7(b)15号区域的气孔分布,表2是对该区域部分气孔提取的参数。
图8 缺陷提取Fig.8 Defects extraction
图9 气孔标记Fig.9 Void labeling
标签面积/像素周长/像素长轴/像素短轴/像素偏转角/(°)圆度124657.11319.27816.247169.8470.948212243.11313.95211.133117.1400.82539836.04212.26910.17023.2550.94848542.87014.6737.376173.7690.58151115.8995.8602.390130.6980.547624.8282.2571.12890.0001.000
对于焊点检测的评估者,利用焊接缺陷检测系统所得出的气孔参数,并根据气孔面积占焊接盘的比例以及不同气孔的面积与数量比来判断元件焊接是否符合要求。表3与表4分别是根据图7(b)标记后的二值图与图8(d)气孔分布图得出的气孔分析结果,不同质检部门可以根据气孔分析结果以及产品质量要求来评判产品是否符合本部门要求。
表3 气孔占焊点的面积比例Tab.3 Void area ratio
表4 气孔面积分布Tab.4 Void area distribution
3 结 论
基于Image J图像处理软件建立焊接缺陷提取插件,通过区域标记法筛选出ROI,相比于全局处理,可以有效地降低误检与漏检。在图像分割步骤中,焊盘区域的气孔可以通过形态学去除;通过ROI图与降噪图像之间的数学操作计算出差分图,并利用Otsu阈值分割得到焊接点气孔的精确分布;最后通过区域标记法统计出气孔的面积参数以及所占焊接区域比例,从而判断元件的焊接是否满足需求。该插件在检测焊接点气孔时具有较高的精确度,可以广泛应用于汽车电子等行业。但是,由于提取出的焊盘区域是椭圆,与真实的矩形焊盘略有差别,在边缘部分依然会有较小的气孔被忽略,故仍然需要改进算法,以提升精确度。