刁福林,陈 昊,李延丰,陈 曦,杨立余
(1. 南昌航空大学 信息工程学院,南昌 330063; 2. 无损检测技术教育部重点实验室(南昌航空大学),南昌 330063;3. 青岛啤酒股份有限公司,山东 青岛 266000)
大多数金属材料是由许多小晶粒组成,晶粒的大小影响着金属的拉伸强度、韧性以及耐久度等常规力学性能[1]。晶粒图像分析是检测金属材料性能的重要手段之一。因此,为了方便测量晶粒尺寸,准确而有效地提取出晶界非常重要。
现有的晶界提取技术中采用的Canny、Sobel和Kirsch等边缘检测算子虽然能够有效定位到边缘,但是容易受到诸多因素的干扰。文献[2]使用Canny算子和Otsu算法相结合对现场采集的图像进行实时处理;文献[3]用中值滤波方法得到的阈值来代替原始的Sobel算子的阈值,同时利用非极大值抑制的方法对图像作细化处理,从而提高对图像纹理的识别率;文献[4]改进传统的Kirsch边缘检测方法,首先利用模糊数学方法消除图像的背景随机噪声,得到了滤波图像,最后用局部最大值图像和利用最大熵算法自动选取的阈值得到边缘图像;文献[5]提出用混度蚁群算法计算信息素矩阵得到阈值,进而获得丰富的边缘信息,能够快速定位到图像的边缘并且较完整的提取出边缘;文献[6]将数学形态学中的腐蚀、膨胀等运算的组合,并依据不同的结构元,提出了一种抗噪性能良好的边缘检测算法,有效地提取出图像轮廓。
然而,这些传统方法对高温合金的晶界提取都难以得到理想的效果。由于目标金属在制备和数据采集过程中,晶粒本身内部会产生伪边界,也会丢失部分晶界,进而在采集的金相图像中往往存在划痕、晶界模糊不清、晶粒内部灰度分布不均匀等情况,这会干扰对晶粒的计算和分析。
用于晶界提取的经典方法受噪声影响严重,在复杂的图像中难以取得理想的效果。为了获取清晰完整的晶界,对存在的问题进行研究,提出先用拉普拉斯锐化进行处理,再做直方图均衡化,去除图像表面上的划痕,用Otsu法进行分割,然后将处理后的图像作最大连通域,最后做平滑等处理,从而得到较完整的晶界。由提取到的晶界图计算出每一幅金相图像晶粒的个数和对应的面积等晶粒参数。
金相图像主要描绘晶粒和晶界,除了形状外,每颗粒子都是相似的[5]。因为各个晶粒之间结构的相互作用力不同,相邻晶粒的边界并不总是那么明显,而且一部分的晶粒可能存在连接它们的连接通道,使用传统分割算法不能准确有效地对金相图像进行分割。金相图像中常见的干扰项有球状析出相、平直晶界和划痕等干扰项(图1)。
这项研究的传统算法流程如图2所示。传统的晶界提取方法是对图像作预处理,去除大部分噪声,然后利用金典的边缘提取算法进行提取,最终获得图像的边缘,这对应一般的轮廓图像会有较好的效果[7]。但对于类似于金相图像的复杂图像,金典边缘提取算法提取的边缘轮廓粗糙,抗噪声能力弱且容易受到光照不均的影响,会引入虚假的边缘分支[8]。因此,最后获得的晶界图像不可靠,不利于对晶粒的分析。
晶粒图像在获取过程中,由于光照等原因,导致图像部分区域亮度不均匀,不利于晶界提取。可调节图像的对比度和局部亮度实现局部灰度非线性变换,以增强晶界的对比度[6]。但晶界内部的黑点边界同时也被增强,需要进一步处理。
中值滤波有较强的降噪能力,可以起到平滑图像的作用,还能尽可能的保留边缘信息[9]。由于金相图像中存在很多较小的黑点以及椒盐噪声,在平滑处理时会影响计算效果,中值滤波会直接忽略这点。选择3×3像素进行平滑,并且与其他平滑方法相比,降低了一定的模糊程度。
由于金相图像在获取、传输等过程中受到传递函数的衰减影响,使得其中部分晶界有不同程度的模糊情况。为了增强晶界的边缘和细节,用拉普拉斯锐化使图像的灰度反差增大,加强晶界的边缘区域,减弱非边缘区域,并且保留了原图的背景,相比于原图像清晰度得到了明显增强。其定义如式(1)所示,式中2f表示二阶微分,f(x,y) 为像素位置。拉普拉斯可用过零点来确定突变的边缘,或者是缓慢变换边缘线的位置。它对孤立的点和线较为敏感,适用于边缘检测。
(1)
将计算得到的值替换原来点(x,y)出的灰度值,可确定晶界点的位置,然后由式(2)得到锐化图像h(x)。
(2)
经过拉普拉斯锐化处理后,图像的整体清晰度得到了提高,但是在一些位置依然不够清晰,因此,使用直方图均衡化来增加图像局部对比度,其映射方法如式(3)所示。该方法是将图像灰度直方图中一个比较集中的灰度区间重新分配其他灰度区间的灰度值,使得整体灰度均匀化,实现对图像非线性拉伸,有利于下一步的处理。
(3)
式中,n表示所有像素的和,ni为当前灰度级下像素数目,L表示可能存在的灰度级数。
Otsu法是按照图像的灰度特点,将图像分为背景部分和轮廓部分,分割效果由类间方差来决定:
w=m0m1(μ0-μ1)2
(4)
式中:m0为轮廓的像素点占整个图像的比值,平均灰度记为μ0;m1表示背景区域像素点占整幅图像的比值,平均灰度为μ1。
计算图像的直方图并归一化,根据经验值假设分割阈值为h,通过遍历整张图像,最终求得阈值k使类间方差w取得最大值,记下此时的阈值,即为最佳阈值。此方法对低对比度和亮度有一定的鲁棒性,计算简单。
用该方法将均衡化后的图像进行分割提取出晶界,然后对每个连通区域进行标记,并且求出对应的大小,再求最大连通域的索引,最后获取最大连通域的图像:
f(i)=Fi-Fi-Δ/Fi-Δ
(5)
式中:Fi表示第i个连通域的面积;Δ表示微小变化量,一般取1;f(i)为在i处的Fi变化率,当f(i)取局部极小值时,那么Fi就为面积最大稳定区域。
由上述方法处理过的晶界图像边缘处存在毛刺以及部分晶界线未连接的情况,直接用这些图像来计算晶粒的个数和对应面积会有较多的误差,因此,有必要进行进一步平滑细化处理。
使用开运算方法对其进行处理。可以用来消除小物体、与晶界分离的细小点,在不明显改变晶粒面积的情况下能够平滑晶界边缘。再用闭运算处理未连接的邻域晶界和填充微小的空洞,平滑金相图像的晶界同时不影响计算晶粒的面积。最后再对平滑后的金相图像作细化去枝处理,细化之前边缘处有凸起的位置,在细化后得到的图像会存在一些短线分支需要去除。根据短线比较短的特点,将阈值设置在4~6范围内,如果线条的尺度小于阈值,则认为是多余的线条,应该去除;反之,如果线条尺度大于该阈值,则视为原图像中本来存在的线条,不用去除。
通过对上述处理的每一个步骤的详细描述,现将整个晶界提取的方法流程总结如下:
1)输入金相图像,对图像进行调节亮度,实现局部灰度拉伸,增强晶界的对比度。
2)考虑到第一步在灰度拉伸的同时图像中的噪声和孤立黑点得到了增强,需要及时处理,利用3×3像素的中值滤波去除图像中的小黑点以及椒盐噪声,在一定程度上平滑了图像。
3)步骤2获得的去噪后图像中边缘依然不够清晰,根据拉普拉斯对轮廓信息有较好的增强作用的优点,对图像作拉普拉斯锐化处理,进一步增强晶界区域,弱化背景区域,使得边缘和细节部分更清晰。
4)为了更好地分隔出完整的晶界,对步骤3得到的图像再作直方图均衡化,提升依然不够清晰的区域,使整幅图像的灰度均匀化。
5)通过遍历图像,计算出使类间方差取最大值的最佳阈值,使用该阈值对处理完的图像进行分割,计算并标记各连通域,获得最大连通域的索引,得到最大连通域图像。
6)对晶界边缘处有许多毛刺、部分区域有虚连接的情况,再对分割完的图像进行平滑细化处理,最终获得完整晶界图像。
为了获得金相图像,对GH4169、GH738和GH706材料进行研磨、抛光和腐蚀,然后将其置于金相显微镜下获取实验样本来验证方法的提取性能。实验所用的图片均是通过图像显微采集系统采集并整理获得。
以一幅具有代表性的GH738金相图像为例(图3a),用不同方法进行晶界提取实验分析。为了便于观察,放大了每个处理图像中的相同区域。图3b是Sobel算子提取晶界的效果图,从中可以看出图像中有很多噪点,边缘处有大量的毛刺。这是由于该算子只是检测水平和竖直两个方向的边缘信息,计算得到的灰度值如果大于等于设定的阈值,就认为是边缘点,这会导致将噪声误判为边缘点。这种判别方式欠合理,适用于简单纹理图像处理,但对于复杂图像的检测,其效果并不理想。图3c为传统的分水岭法的检测结果图,对比原图可见丢失了许多重要轮廓信息。该方法是以数学形态学为基础的一种分割方法,主要分2步实现:首先将图像中每一个像素的灰度值按照从小到大排序,然后再从下往上实现淹没过程并对每一局部受极小值影响的区域进行标注。分水岭法通常处理的是梯度图像,由于对噪声很敏感,图像中的噪声点会影响其迭代标注,从而导致分割偏移,也容易出现过分割现象。图3d是采用Roberts算子进行处理得到的晶界,提取的晶界不完整,该算子是根据局部差分算子来寻找边界的一种简单算子,局部差分算子是利用四邻域对角线方向相邻的2个像素值之差,从实验效果上可以看出,其对于确定边缘位置较准,但是同样容易受到噪声的干扰。图3e是哈尔小波处理后再阈值分割的效果图,一些微弱边界被去除,同时因为噪声的干扰,图中出现较多的黑点,直接影响到实验结果。针对现有的方法容易受噪声影响等问题,本研究提出的方法处理结果如图3f所示,该方法很好地抑制了噪声的干扰和伪边缘的生成,较完整地提取出晶界。
本研究提出的方法虽然能够提取更完整的晶界,但直接观察还过于主观。基于晶粒个数和匹配率,分析各种算法用于晶界提取的性能(表1)。该金相图像在实验中不能直接用于比较,因为它不是一个标准的图像。实验中使用一款软件用于提取晶界,虽然存在一些误差,但在人工修饰的基础上,对晶界的提取的误差近乎为0,因此,使用软件加手动标注晶粒的图像作为数据的客观标准具有一定的参考意义。表1中晶粒数量代表晶界提取效果的判断,通过比较可以看出,Sobel法和哈尔小波处理方法不能完全提取出所有晶界,分水岭法会出现过度提取现象。由不同算法提取的晶界与手动提取的晶界之间的错误提取率描述的是提取到错误晶界的比率,由表1可以看出:Sobel算子和Roberts算子因为有较多的伪边界,导致错误率较高;分水岭法的错误率也较高,这是由于过度分割,提取出了很多边界,既包含正确的边界,也包含错误的边界。在计算错误率时,只考虑错误提取晶界的个数与手工提取的数量的比值。本研究提出的方法错误率远低于其他算法,具有优于其他方法的性能。
表1 不同方法用于晶界提取的性能比较Table 1 Performance comparison of different methods for grain boundary extraction
为了进一步验证所提出方法的可靠性,选取了几种不同型号,且在不同放大倍数和腐蚀的情况下获得的GH4169、GH738、GH706金相图像为例进行测试,用于评判本研究所提出的晶界提取算法的准确性和稳定性。图4分别是GH4169、GH738、GH706材料晶界提取的效果图,从图中观察比较可知,虽然材料、拍照环境和图像尺寸不同,但本研究提出的方法提取的晶界仍然比较完整,可以达到较高的精度和较好的稳定性,因此,对于不同类型的金相图像的晶界提取具有一定的实用性,同时也为其他金属材料的晶界提取提供了良好的思路。由于大多数金属材料也同样是由若干小晶粒组成,理论上使用本研究所提出的方法也具有同样的效果,但具体问题还需要具体分析。
使用本研究方法提取出完整的边界之后,根据图中晶粒的轮廓,利用椭圆拟合法,以椭圆方程为模板尽可能地逼近晶界,使得对应的椭圆方程尽量满足边缘上的数据,并求出椭圆方程的长短轴参数。由式(6)求出圆度和费雷特直径。
P=∑r/N·Rd=A/l
(6)
式中:P为圆度,r是每个角的曲率半径,N为晶粒角曲率半径的个数,R表示晶粒内最大内接圆的半径,A表示平均面积,l为晶粒平均截距。晶粒中棱角越多,则圆度越低,反之则越好。对同一种型号的金属材料不同放大倍数下的金相图像,计算出的椭圆长短轴、圆度以及长短轴之比,获得的数据如表2所示。表2中列出了GH4169、GH738和GH706的参数,通过完整晶界的提取可以进一步计算出相关的参数,从而对材料进行分析。以GH4169为例:平均长轴计算结果为132.23 μm,与实际参数的误差为±7.21 μm;平均短轴测试结果为97.11 μm,与实际值的误差为±4.12 μm;圆度、长短轴之比、平均面积和平均晶粒直径等参数误差值都控制在较小的范围内。从这些数据可以看出,通过本研究中的方法提取出的晶粒计算出的参数与实际值非常接近,对衡量晶粒质量有一定的实用价值。
表2 不同材料的特征参数Table 2 Characteristic parameters of different materials
1)本研究提出了一种简单高效、可靠的晶界提取方法。先将图像进行预处理,然后使用Otsu法进行分割,最后再对提取出来的晶界作边界平滑和细化去枝。该方法有效抑制了伪边界的产生,同时得到较好的图像效果。
2)对GH4149、GH706、GH738晶界提取结果进行对比试验,验证了该方法能有效提取晶界,并提高了晶界的完整性,且适用于各种金相图像的检测分析。