郭北涛,叶盛辉,张丽秀
(1.沈阳化工大学机械与动力工程学院,沈阳 110000;2.沈阳建筑大学交通与机械工程学院,沈阳 110168)
超声波无损检测技术因为其高质、高效、精准、成本低和不会对检测材料造成二次损伤等优点,成为现代工业生产中最常用的缺陷检测方法之一,而对于超声无损检测的图像化则是该技术的发展方向[1]。超声成像技术有不少的经典方法,其中超声扫描成像法就是最常用的方法之一,其中C扫描所得到为平行于被测物体表面的图像[2]。射频采样法作为C扫描的成像方法中一种[3],其原理是通过对被测物体的每个采样点返回的信号波,根据缺陷回波的幅值作为特征值,以每个采样点作为位置信息来进行映射,生成特征成像矩阵,进而通过计算机的进一步处理,最后得到超声数字图像。
图像分割方法细分还是有比较多种,但是大致可以分成两大类:以阈值、区域或者能量为基础的传统分割方法和以深度学习框架为基础的现代分割方法[4]。董家顺等[5]提出了一种基于灰度正反转和改进K-means的钢管表面缺陷检测算法。周春瑜等[6]将各向异性扩散滤波和加权中值滤波相结合,然后以T-snake为基础增加区域能量作为约束对甲状腺超声图像进行有效分割。王庆秋等[7]针对锂电池极片不同缺陷,提出了一种结合双边滤波、区域生长和边缘提取的缺陷识别与标定算法。常文娴[8]为解决对金属复杂表面缺陷识别能力不足的问题,以聚类算法来进行缺陷分区、以区域纹理抑制进行缺陷分割和以决策树SVM进行缺陷分类,算法对于金属复杂表面具有非常优秀的效果。梁日强等[9]提出了一种改良的残差收缩网络,有效提高了带钢表面的缺陷识别的准确率。同样是带钢表面缺陷,李玉等[10]针对对比度较低的带钢表面微小缺陷,将Faster R-CNN框架与特征金字塔网络结合的识别方法,对微小缺陷识别能力有不少的提高。
为进一步在图像处理方面提高金属超声缺陷检测的准确性,本研究提出一种基于注意力机制的初始种子选取的改进区域生长算法的金属超声图像分割算法。首先,以注意力机制进行初始种子的选取,基于聚类进行种子区域的生长,图像的所有区域实现全覆盖之后,根据区域的灰度梯度进行区域合并,最后将缺陷与背景分割输出检测结果。
基于区域生长的金属超声图像缺陷检测方法的重点是金属超声图像处理程序的算法设计,提出了基于改进区域生长算法的金属超声图像缺陷检测算法,步骤为:
步骤1:提出一种注意力机制的改进初始种子自动选取方法,实现对图像中可能缺陷区域中的种子的自动选取;
步骤2:基于种子区域内已生长点的均值和当前生长点的灰度的优化生长准则;
步骤3:基于不同区域的区域均值灰度梯度作为区域改进合并准则;
步骤4:基于区域改进合并准则完成金属超声图像缺陷提取。
所研究算法流程图如图1所示。
图1 注意力机制种子选取和改进区域生长算法的流程图
对于区域生长算法[11]来说,种子的选取影响到区域生长的初始位置和生长范围,从而影响到算法的最终分割结果,所以说种子的选取是区域生长算法关键环节之一。传统的区域生长算法的初始种子的选取都是人为事先指定的,这非常的不智能,故提出一种基于注意力机制的初始种子选取方法。
注意力机制[12-14]源于对人类视觉处理过程的研究,人类在进行视觉处理的时候会以利用有限的信息来进行处理,所以就需要选择一个最具有信息的特定区域,然后将注意力集中到该区域中。现在注意力机制更多的是被用在自然语言处理、目标检测和目标分割等基于深度学习框架下的研究方向[15]。
基于注意力机制的思想提出一种改进的初始种子选取方法,此方法将注意力机制进行一定的简化。所研究方法是将注意力机制简化为先验知识[16]和对比相结合,先验知识为人类在观察一个物体时第一眼会将目光集中到物体的正中央,然后根据对比转移视觉注视的区域。这里的对比是有缺陷区域与正常区域会产生显著的变化,从而缺陷与其周围的环境之间存在强烈的对比,进而吸引人视觉集中区域向对比强烈的区域移动。由上述可以得出,改进的初始种子选取方法是由先验知识预先设定的初始点和灰度对比引起的初始点的偏移量相叠加来确定。用F={f(x,y)|(x,y)∈F}表示图像,H×W表示图像的长和宽。用先验知识预先设定的初始点为图像正中央点(x0,y0)。偏移量用h来进行表示。相结合之后的点记为(x1,y1)=(x0+hx,y0+hy)。关于偏移量h定义表达式为:
(1)
首先以中心点所在行和列作为分界线,将图像分为4个区域,分别记为A1、A2、A3、A4。A1表示图像的左上角区域,A2表示图像的右上角区域,A3表示图像的左下角区域,A4表示图像的右下角区域。M1表示A1区域的区域平均灰度,M2、M3、M4分别代表该区域的平均灰度。区域平均灰度Mi的计算公式为:
(2)
式中:f(x,y)表示Ai内的像素点的灰度值,m表示该区域内的像素点的个数。
由此引出λi的计算表达式,表达式为:
(3)
式中:λi是一个归一化的量,且具有实际的物理意义。表示缺陷区域落在该区域的可能性大小,或者说是各个区域中存在全部或部分缺陷的概率大小。
对于图像的两个方向来说,d也分为dx和dy,这是一个常数,分别为1/4W和1/4H,表示每一个区域在两个方向上都占有全图1/4的比重,具有其意义而且最后计算得出的偏移量不会超过图像的尺寸。由此h写成:
(4)
(5)
(6)
方便直接评价此方法的实际表现,为此以两个金属超声缺陷图像作为方法实现对象进行实验。结果如图2所示。
(a) 工件a初始点(黑点) (b) 局部放大示意图
由图2可以看出,基于注意力机制的初始种子选取方法所选取出来的点基本上在缺陷上或者是非常靠近缺陷的,这说明此方法是切实可行的。并且此方法无论是思路还计算过程都是基于图像本身的灰度统计量来进行的,不需要额外设置参数,普适性和鲁棒性强,同时应用范围广。
从上述分析可知,基于注意力机制的初始种子选取方法较为通用但是所得到的点不一定能够在缺陷上,这无疑限制了这个算法的适用情境,为此这里将以这个算法所选取的点作为基础来对这个算法进行修正。
首先,以(x0,y0)作为坐标原点,横向作为x轴方向,纵向作为y轴方向建立一个新的坐标系。过(x0,y0)和(x1,y1)在新坐标系下得出唯一确定的一条直线L,直线斜率k由偏移量hy和hx之比决定,示意图如图3所示。直线L表示为:
图3 新建坐标示意图
(7)
得到直线L之后,需要对直线上的点进行判断以此来对初始选择的种子点就行修正。进行搜索的时候,不需要对直线上的所有点都进行判断,只需要对初始种子点所在的象限进行判断即可。判断条件为:
f(xi,yi),f(xj,yj),f(xk,yk)>Tp
(8)
式中:(xi,yi),(xj,yj),(xk,yk)分别代表直线L上连续的3个点。
该类型矿区除临汾市大王中型铁矿区外,矿区多为小型,主要矿区有:古交郭家梁矿区;交城席麻岭矿区;翼城打鼓山、董家洼矿区;襄汾黑龙顶、半山里矿区;曲沃张家湾矿区;浮山南畔、北山角矿区及平顺水沟、壶关照阳沟等小型矿区。
若直线L满足式(8)的判断条件,则将初始选取的种子点修正为满足条件的3个点里面最接近(x0,y0)的点。修正之后的初始种子点,结果如图4所示。
(a) 工件a修正种子点(黑点) (b) 局部放大示意图
对比图2b、图2d与图4b、图4d,可以看出在经过初始种子点的修正之后,初始种子均已在在缺陷位置内而不是靠近缺陷,说明修正的结果比较成功的且此选取方法的适用性和鲁棒性也得到进一步的提高。
对于金属超声缺陷图像来说,缺陷大多是以不规则形状的连通域出现,所以这就要求算法对缺陷的形状不敏感,无论缺陷的形状如何都能识别出来。而且,一个图像中可能会出现多个缺陷。对此,可以引出两个要求:对形状不敏感和能识别连通域。
区域生长算法具有实现过程简单,运算速度较快,不需要提供大量的数据支持,可以分割结果较好的连通域。这个方法是依照某个预先设定的规则来对整个图像的全部像素进行条件判断,进而将符合预先设定的规则的像素点标记并合并成一类。传统的区域生长算法实现过程如图5所示。
图5 区域生长方法过程图
对于区域生长算法来说,算法能够得出较为完美的结果的重点在于种子的选取和区域生长的判别准则。第一个关键点种子的选取已经在上面解决,本部分将对区域生长的判别准则实现改进和优化。
就传统的区域生长方法而言,其区域生长的判别准则是预先设定一个固定的阈值,在对种子点周围的邻域进行搜索时,若周围邻域内的未标记点灰度与当前种子灰度差异大于某个预先设定值,则比较点被标记为下一个种子点并成为当前生长区域一部分,然后重复上述过程直到邻域内无符合判别准则的点。这有一个明显的问题,那就是受到种子点的选取的影响非常大。其次,这个固定阈值是需要人先根据不同的图像进行预先设定的,一个固定的阈值明显是不能够满足复杂的图像分割要求的,所以本研究提出一种根据生长全区域灰度均值的自动阈值优化生长判别准则。
优化的思路总体来说是为了减少被选取的初始点的强度对后续的区域生长判定的影响,所以将种子点所生长的区域的全部像素点的平均强度和当前种子点灰度值相结合所得到优化灰度来代替初始点本身的强度。这样可以减少初始点的选取出现错误及之后导致的每一个生长点都依赖于上一个生长点的强度。用优化灰度代替以上一个生长点的灰度作为判断条件,更加符合人类的视觉直觉,区域生长的结果也更加的平滑和稳定。
(9)
式中:T0为当前生长点的灰度值,Ti为待判断点的灰度值,σ表示优化系数。
(10)
(11)
经过上述过程之后,输入图像的全部像素点都会带有各自的生长区域的标记。这样不会出现分割空洞或者有出现像素点未判别的情况。但是全图扫描也会出现有缺点,那就是将整个图像分割成为比较多块不同标记的区域,而这些区域之间可能区域灰度均值接近但是却带有不同的区域标记。所以接下来要对这些区域进行合并。本研究将以区域梯度幅值作为合并准则。
因为数字图像都是离散的信号,所以对数字图像进行梯度计算就需要引入差分来代替连续函数的微分运算。
中心点(x,y)在x轴方向上的梯度计算公式为:
(12)
中心点(x,y)在y轴方向上的梯度计算公式为:
(13)
式中:f(x,y)为图像像素点(x,y)处的灰度强度。总的梯度幅值为:
(14)
对于本研究来说,因为进过上述的过程之后图像被分成有限个的小区域,那么对图像的灰度的计算可以进行一定的简化,用区域的灰度均值代替上述的灰度计算过程。在进行区域合并前需要先对各个区域按照区域灰度均值由小到大进行排序操作。设Gi(x,y)为第i个生长区域的灰度梯度,区域灰度梯度计算为:
(15)
区域合并判别准则为:
ΔG(x,y)=Gi(x,y)-Gj(x,y)≤Tn
(16)
式中:i>j,Tn为合并阈值。
改进区域生长与合并算法流程如图6所示。
图6 改进区域生长合并法
为了验证本研究提出的基于注意力机制的初始种子选取的改进区域生长算法,采用了基于Open Cv4.5.5工具箱下使用Python语言进行实现。并随机选取不同形状的两种缺陷的金属工件超声图像进行缺陷分割和缺陷提取,如图7所示。此次实验所用的计算机的配置为64位Windows10的操作系统, CPU型号为Intel(R) Core(TM)i5-4210 M,计算机主频为2.6 GHz。
(a) 工件a缺陷原始图像 (b) 工件b缺陷原始图像图7 金属件缺陷超声原始图像
从图7可以看出来,虽然缺陷形状较为简单,但是在缺陷的周围都会有一圈的伪影噪声而正是这些伪影噪声会导致算法对缺陷真实范围识别错误,进而使得分割精度下降。
本研究将使用Otsu阈值分割法、聚类分割算法和传统区域生长算法来对超声图像进行缺陷的分割和提取。将不同算法的结果与本研究算法进行对比,分析所研究算法中基于注意力机制的初始种子选取的准确性和改进区域生长合并的精确性。分割结果对比如图8所示。
(a) Otsu阈值分割 (b) 聚类算法
从图8可以看出来,其他3种算法都无法对缺陷的真实边缘进行成功的判断。图8e、图8f和图8fg明显看出来,图像的边缘有明显的过分割。从图8a和图8c能看出来,Otsu阈值分割和传统区域生长算法将边缘的噪声也识别为缺陷的一部分,导致分割结果会比实际缺陷更大一些。而根据图8b和图8f,聚类算法的表现要稍微优于其他两种对比算法,但是还是出现了过度分割的现象。相比之下,本研究算法对带有伪影的缺陷都能较为正确的识别出缺陷的实际边界,可见算法可行且效果较为明显。
为比较真实的评价结果和研究所研究方法的有效性,本研究通过精确率(precision)、召回率(recall)作为评价指标对这几种算法结果进行数值化评价[17]。精确率代表的是当前使用方法划分出来区域中的目标区域与所有划分出来的区域的比例,而召回率代表待分割的区域中使用当前方法成功划分出来的目标区域与图像中全部带分割目标区域的比例,精确率和召回率的计算公式为:
(17)
(18)
式中:TP为正确划分区域,FP为错误划分区域,FN为正确但未被划分区域。
根据上述的算法评价指标,本研究所提出的算法与其他3种算法的对比结果如表1所示。
表1 不同算法评价指标对比
对比上述所使用的两个评价指标,从表1可以看到,对于工件a,本研究算法在精确率指标上较Otsu阈值分割、聚类分割和传统区域生长算法分别提升了10.8%、7.7%和24.6%。在召回率指标上,也是4个算法里面最高的。在工件b上,本研究算法在精确率评价下相对于Otsu阈值分割、聚类分割和传统区域生长算法分别提升5.46%、3.14%和15.6%,召回率评价指标上也是全部4个最高。无论是精确率和召回率都是比其他3个算法都要高,且都非常接近1。
综上所述,所研究针对基于区域生长的金属超声图像缺陷检测方法的算法可以自动的实现初始种子的定位和分割提取缺陷,最终的分割结果精确性较高,且通过对比也验证了算法的优势。
针对金属超声图像中噪声等因素的影响导致零件的缺陷识别精度不足的问题,本文提出了一种基于注意力机制的初始种子选取的区域生长合并的缺陷提取算法。基于注意力机制的初始种子选取能够自动且有效的定位到缺陷的位置,改进的区域生长和合并准则能够有效的将缺陷周围的伪影和缺陷的真实边界进行区分。实验结果表明,所研究算法有效地处理伪影对缺陷边缘的干扰影响,对缺陷提取精度提升较为明显,因此,所研究针对基于区域生长的金属超声图像缺陷检测方法的算法是一种切实可行的分割算法。