林俊宇 康陈子 邢增繁 郑博文 邱晓晖
南京邮电大学通信与信息工程学院,江苏南京 210003
X射线检测技术是众多射线检测技术应用最为广泛的技术之一,在焊接、铸件、组装等加工领域以及医学领域得到了普遍应用。X射线检测不但不会对识别目标造成伤害,而且比其他方式更能直观地得到图像结果,可以清楚地读取图像特征。目前,针对检测X射线图像缺陷的工作主要还是依靠人工完成,该方法相比通过模式识别自动识别目标效率较低。由于人工检测存在一定主观性,在面对大量细小特征时,容易忽略部分目标[1-4]。
数字图像处理技术提供了一种自动识别烧结空洞的方法。程金纬等人[5]使用2种方法尝试提取了烧结空洞:基于经典方法的X光图像处理方法和基于形态学处理的X光图像检测方法。其中,经典方法由于受到PCB板中过多导线的影响以及直接分割边界使得OTSU法失效2个原因,处理效果不佳,因此使用了形态学方法克服导线影响,提取完整的烧结空洞边界。陈青青等人[6]针对低对比度的图像提出了一种自适应伽马变换图像增强算法,使得图像对比度增大。通过不同的结构元素对不同的图像进行边缘检测,改善了相关形态学算法的鲁棒性。
但是,通过对程金纬和陈青青两者论文的观察研究发现,程金纬论文中原图像经过中值滤波之后,图像边缘会被腐蚀,减少了部分图像信息;陈青青论文中有部分图像经过OTSU阈值分割法后无法完整地分割出烧结空洞。针对这些问题,本文提出了一种改进的金锡共晶焊接X光图像空洞检测算法。
形态学图像处理是指一系列处理图像形态特征的图像处理技术,由J.Serra于1964年提出,其基础为集合论,其基本思想是利用一种特殊的结构元来测量提取输入图像的相应特征,由此进一步进行图像分析和目标识别[7-8]。
膨胀与腐蚀可以分为二值膨胀、二值腐蚀、灰度级膨胀和灰度级腐蚀。二值图像上像素点的取值仅为“0”和“1”。其中二值腐蚀常常用于处理图像的连接点,以达到使较细连接处断裂的目的;二值膨胀常常用于填补细小的空洞。灰度图像的各个像素点的取值不再是简单的“0”和“1”。灰度级腐蚀的定义如式(1)所示[9-10]:其中,Df和Db分别表示输入图像f(s, t)和结构元素b(x, y)的定义域。腐蚀运算即使用结构元素b(x, y)确定像素点及其邻域范围,将被选中的像素点与结构元素作差,选取其中的最小值作为输出。
灰度级膨胀的定义如式(2)所示:
其中,Df和Db分别表示输入图像f(s, t)和结构元素b(x, y)的定义域。膨胀运算即使用结构元素b(x, y)确定像素点及其邻域范围,将被选中的像素点与结构元素相加,选取其中的最大值作为输出。
膨胀腐蚀梯度算子是指先将图像进行膨胀、腐蚀处理,再将处理后图像作差的算法。其定义如式(3)所示[11]:
若选取合适的元素结构,则可以在利用形态学梯度检测边缘的同时,最大限度地降低噪声的影响。
由于灰度图像腐蚀、膨胀结果主要与结构元素S的选取有关,也可以认为膨胀梯度算子提取的边界仅与其提取对象的自身形状和结构元素S的选取有关[12]。式(4)分别给出了结构元素S1和S2的模版,其中,S1表示圆形结构元素半径取2,S2表示方形结构元素边长取2。
基于形态学X光图像空洞检测[5]如图1所示。在提取空洞前使用高斯滤波,中值滤波过滤噪声,削弱焊点影响,然后使用膨胀腐蚀梯度算子提取空洞边界,接着填充空洞,增加空洞面积,再使用OTSU法分割出空洞区域,再提取出空洞边界,最后统计烧结空洞区域。
形态学预处理及后处理包括膨胀腐蚀梯度算子提取边界、形态学腐蚀导线边界和形态学开运算去除毛刺等步骤,其结构元素的优化至关重要。本文选取了半径分别为1、2、3的圆形结构元素和方形结构元素进行图像处理并得出对比结果。
输入原图如图2所示。
为了更直观地进行不同结构元素效果对比,本文只展示需要用到结构元素的3个步骤(第一行为圆形结构元素,第二行为方形结构元素,从左到右结构元素半径依次为1,2,3):
2.1.1 膨胀腐蚀梯度算子提取边界
如图3所示,图(a)、(d)、(e)、(f)没有杂乱的背景信息,但是空洞边界信息也被削弱;图(c)空洞边缘清晰,但是背景信息如导线等也被增强;图(b)的空洞边界信息保留完整,背景信息不强,故选取图(b)。
2.1.2 形态学腐蚀导线边界
如图4所示,图(b)、(c)的腐蚀强度过大,丢失了部分空洞信息;图(d)、(e)腐蚀强度不够,背景信息明显;图(a)、(f)的处理效果良好,保留了空洞信息,抑制了背景信息,此处选择图(a)。
2.1.3 形态学开运算去除毛刺
如图5所示,图(a)、(d)、(e)、(f)背景信息被保留,去除毛刺强度不够;图(c)虽然去除了背景信息,但也腐蚀了部分空洞信息;图(b)保留空洞信息完整,同时去除了背景信息,故选择图(b)。
通过以上3个步骤的对比,得出不同结构元素的毛刺及干扰导线的去除力关系为:边长为1的方形结构元素<边长为2的方形结构元素<半径为1的圆形结构元素<边长为3的方形结构元素<半径为2的圆形结构元素<半径为3的圆形结构元素。
得出的形态学处理的结构元素优化结论是膨胀腐蚀梯度算子提取边界使用半径为2的圆形结构元素;形态学腐蚀导线边界使用半径为1的圆形结构元素;形态学开运算去除毛刺使用半径为2的圆形结构元素。选择原则是最大程度地保留空洞面积,并且对背景中导线及噪声进行最大程度地削减。
2.2.1 中值滤波优化
在1.2的X光图像空洞检测中可以发现,在进行膨胀腐蚀梯度算子提取边界之前,需要先进行高斯滤波和中值滤波,其目的是滤除图像中的椒盐噪声和导线影响。最初使用的中值滤波方案在对四周进行补边时补的均为灰度值为0的黑色像素点,故会出现在中值滤波取中值的时候,四个边角的像素点被替换为灰度值为0的黑色像素点,从而出现边角图像信息丢失的情况。
如图6所示,图像的四个边角从上一步带有大部分图像信息的高斯滤波图像变成完全丢失图像信息的中值滤波图像。
此图像侵蚀会导致图像四角边缘的空洞被腐蚀,故需要对中值滤波进行改良,此处按照中值滤波的原理进行简单的四角修复。由于原先的中值滤波方案在补边时补的均为灰度值为0的黑色像素点,使得中值滤波图像的四个对角均缺失了个像素点,故此处使用代码对图像的四个角所丢失的像素点进行填补(其数值取自于高斯滤波图像),并对其进行[n, n]的中值滤波,而由于其在边缘,无法做出n*n的中值滤波,故取在n*n范围内有灰度值的像素点进行求取中值,并将其像素灰度值赋给该n*n的中心像素点。
得出的图像与未优化的中值滤波图像对比,如图7所示。图像的边缘得到了一定程度的优化,但是由于只是进行简单的修补,而不是采用更好的补边的方法,并没有从根源上改变图像的处理方式,故造成了优化图像边角还是有较为严重的割裂感。
2.2.2 修复边界优化的割裂效应
由于上一步的代码对中值滤波的优化效果有限,故此处对中值滤波的处理方法进行优化。
原来的中值滤波图像处理方案,本文称其为Zeros型中值滤波处理,对边缘进行像素点全零的补边,会出现如图8所示的情况。从而得出如图9 所示中值滤波矩阵。可以明显看出,矩阵四角的数据产生了丢失。
本文提出了一种新的中值滤波补边方法,称为Symmetric型中值滤波处理,即在补边的时候对边缘的像素点采取镜像反射方式对称地沿边界进行拓展,具体实现的改进方法如图10所示。
图10对矩阵的边缘进行了1*1的补边,即做一次3*3的中值滤波,得出新的中值滤波矩阵如图11所示。可以看出,进行优化后的中值滤波有效地保留了数据的完整性。
Symmetric型中值滤波处理与Zeros型中值滤波处理进行对比,如图12所示。
可以看出,使用Symmetric型中值滤波处理时,图像的边界得到了极大的改善,且不会出现代码优化图像时产生的撕裂效果。
2.2.3 Symmetric型中值滤波对图像边缘提取的改善效果
实验发现,Symmetric型中值滤波处理对提取烧结空洞有一定的正向效果。对此,引入原图像如图13所示。
使用同样的提取空洞的方法,效果对比图如图14所示。
对比得出,symmetric参数的引入使得烧结空洞边缘的提取得到了极大的改善。
区域生长(region growing)是指将成组的像素或区域发展成更大区域的过程。从种子点的集合开始,这些点的区域增长是通过将与每个种子点有相似属性像强度、灰度级、纹理颜色等的相邻像素合并到此区域[13]。
区域生长法主要有3个步骤[14]:
(1)选比较合适的种子点;
(2)确定相似性准则,比较已存在区域的像素灰度平均值与该区域邻接的像素灰度值;
(3)确定生长停止条件,若差值的绝对值小于阈值,则合并。
由于OTSU的阈值分割会使得图像之中某些灰度较低的点被划分到纯黑色的区域,导致烧结空洞提取的数量大大少于其本有的数量,降低了提取烧结空洞的质量,故此处采用了一种基于种子点的区域生长,以残留下来的白点为种子点,生长出与该位置原本应显示的烧结空洞面积相近的白色区域。
具体实现方法:由于进行OTSU阈值分割以后,图像只存在灰度值为1的白点和灰度值为0的黑点,能够较为简单地分类出种子点,故首先遍历OTSU阈值分割后的图像,将其所有的白点作为种子点,取其坐标,在腐蚀图像相同坐标处周围30*30范围内寻找灰度值相近的像素点(此处取与像素点灰度值相差小于0.05的像素点),并将与OTSU图像相同大小的Grow图像上对应的坐标的灰度值置1,种子点也进行同样的操作,以此种办法能够得出烧结空洞较为完整的图像。
将Pratt提出的品质因数R作为边缘检测算子优劣的一般标准,其值越接近1,表明所检测到的边缘越准确,可表示为[15]:
其中,II、IA——理想边缘图像和实际检测到的边缘图像中边缘像素的总数;
a——比例常数,通常取;
d——实际检测到边缘点到理想边缘点连线的垂直距离。
品质因数R的值是小于或等于1的正数,R值越大,表明检测器性能越好,当完全精确检测时,R=1。
改进后的方法流程如图15所示。
分别按图1所示的原检测方法和图15所示的本文改进方法处理图13所示图像,可以得出图16所示和图17所示处理结果。以图16为目标图像,图17为参考图像,对品质因数进行计算,将结果fom作为结构元素提取X光图像空洞边界效果优劣的客观标准。
通过计算,得出fom的结果为0.8477,可知本文改进方法可以有效提高烧结空洞提取能力。
通过比较不同结构元素的提取PCB板X光图像的烧结空洞,结合不同的图像处理步骤对于结构元素作用强度的要求,找到了更好的提取烧结空洞的结构元素组合方式,优化了烧结空洞的提取量。
通过对Zeros型中值滤波的PCB板X光图像进行分析,发现其四周存在有图像像素被侵蚀的现象,会直接造成图像边缘的烧结空洞被忽略,通过分析该函数的算法后,提出了Symmetric型中值滤波来改善图像边缘侵蚀,不仅保持了图像四周的像素点,还增强了烧结空洞的提取效果,有效地提高了烧结空洞的提取量。
同时,通过对原OTSU图像进行分析,发现其仍有部分烧结空洞未能被提取出来,故提出了基于区域生长的改进OTSU阈值分割,有效增强了烧结空洞的提取数量。
对于烧结空洞的提取图像的优劣程度,提出了通过品质因数这一客观数据来对图像进行评估,将程金纬的方法处理结果作为参考图像,本文改进方法的处理结果作为目标图像,得出fom值为0.8477,可知本文改进方法可以有效提高烧结空洞提取能力。
本文从结构元素、中值滤波和OTSU阈值分割3个方向对烧结空洞的图像检测方法提出改进,分别为:结构元素进行重新选取组合,中值滤波改进为Symmetric型中值滤波,OTSU阈值分割与区域生长相结合。从客观数据上有力地论证了Symmetric型中值滤波和基于区域生长的改进OTSU阈值分割对于PCB板X光图像烧结空洞提取量的优化。