基于卷积神经网络X射线环焊缝缺陷检测

2022-06-07 07:22张龙飞高炜欣冯小星
焊接 2022年3期
关键词:池化直方图灰度

张龙飞,高炜欣,冯小星

(1.西安石油大学,西安 710065;2.陕西省油气井测控技术重点实验室,西安 710065;3.光电油气测井与检测教育部重点实验室,西安 710065)

0 前言

长输油气管道多采用焊接技术连接,在焊接过程中由于各种随机因素的影响,不可避免的存在裂缝、气孔等缺陷,从而降低焊件的使用寿命,甚至会带来重大财产损失及人身安全问题。基于X射线焊缝图像的缺陷检测是一种应用较广泛的弥补措施[1-2]。其检测结果直观、准确,并可以永久保存,有很多优良特性。

在X射线焊缝缺陷检测领域,方法众多,文献[3]提出了模糊识别算法,对缺陷样本进行了试验,取得了较好的识别效果。文献[4]利用计算特征值的方法对分割处理后的图像进行缺陷分类。文献[5-6]均采用支持向量机的方法,文献[5]用支持向量机对已分割的缺陷进行识别;文献[6]提出了一种可以对焊缝缺陷自动检测的方法,该方法相比于传统检测算法具有更好的适应性和通用性。文献[7]提出了字典矩阵最优数学模型,该模型通过使用Hopfield神经网络求解最优字典矩阵,提高了缺陷分类的准确性。

近些年来,人工智能得到了飞速发展,“深度学习”[8]的方法在无损检测领域也得到了广泛的应用,如文献[9-12]等。文献[9-11]均使用基于卷积神经网络的深度学习网格构建方法,文献[11]进一步通过数学处理简化了参数计算,防止过拟合的发生,提高了缺陷识别率。并验证了该方法的适用性。而文献[12]使用了一种相对复杂的神经网络,识别率也较高。但由于人工智能是个发展非常迅速的领域,将其应用于焊缝图像缺陷识别,仍有很多空白领域值得深入探究。比如一些现有的网络复杂度过高,并不适合焊缝缺缺陷特征的识别,另外识别准确度也有所不足,在识别框架上有待改进,这就是文中研究的重点。

文中针对X射线焊缝图像特征,设计了相应的卷积神经网络(Convolutional neural networks, CNN)结构,可以减少内存开销和网络参数个数,降低模型复杂度。

1 缺陷样本选择

实际工业生产中X射线焊缝图像如图1所示。由图1可以发现,缺陷和噪声对比不明显,噪声干扰严重,导致缺陷周围不清晰。利用传统的大津法对原始图像进行分割处理,结果如图2所示。由图2可知,分割后的图像,缺陷和噪声并存,不易直接区分缺陷和噪声,且由于缺陷和噪声面积相对较小,使得特征值求取困难。因此文中提出疑似缺陷区域(Suspected defect region,SDR)的概念,利用分割结果标定疑似区域。然后利用CNN直接判定SDR类型,避免了因特征值求取带来的误差。疑似局部缺陷区域定义如图3所示,分割出的缺陷或噪声外切矩形外扩展5个像素点后的区域为疑似缺陷区域。

图1 X射线焊缝缺陷原始图像

图2 X射线焊缝图像分割实例

图3 疑似缺陷区域定义

通过对某标段管道焊缝的SDR图像进行标定,文中已建立包含600张SDR图像的缺陷和噪声数据库。从中选取200张SDR图像作为样本图像,其中圆形缺陷和噪声图像各100张,如图4和图5所示。

图4 100组圆形缺陷图像

图5 100组噪声图像

2 卷积神经网络计算框架

卷积神经网络是深度学习的一种,通过模拟人脑学习并分析数据,可应用于焊缝缺陷识别领域。其权值共享机制可以有效的降低网络中训练参数的数量,简化计算过程。从缺陷识别的角度出发,卷积神经网络不但可以降低模型的复杂程度,还可以直接处理焊缝图像,避免了特征值的求取。

2.1 卷积神经网络的前向传播

卷积层将输入的每一个神经元与上一层的局部感受区域连接,提取该部分的特征值。卷积的过程可以表示为:

(1)

(2)

卷积后的特征图像素值可利用式(3)计算:

(3)

式中:ai,j为卷积后第i行第j列的像素值;D为图像深度;I为卷积核的大小;wd,m,n为第d通道第m行第n列权重;ο为偏置项。

卷积前后图像的大小可由式(4)和式(5)确定。

(4)

(5)

式中:W1与H1分别为卷积后的特征图的宽度和高度;W0与H0分别为卷积前的图像的宽度和高度;F为对应的卷积核的宽度或高度;P为填充数量;S为移动步长。

池化层(Pooling)也叫下采样层(Sub sampling layer),主要用于特征降维,压缩数据和参数的数量,减小过拟合情况的出现,同时提高模型的容错性,提升训练速度。常见的池化方法有最大池化、平均池化、随机池化,而最大池化也是采用比较多的方法,主要选取最大值来作为该区域的池化结果。即有:

(6)

(7)

全连接层是神经网络的最后一层,全连接层的每一个神经元都与前一层的每个神经元全连接,然后经过分类器的运算,计算得出各缺陷种类的概率。

(8)

在全连接层中,二维图像的特征图被拼接为一维特征图作为全连接层的输入。全连接层的输入可通过对输入加权求和并通过激活函数的响应得到:

ck=f(zk)

(9)

zk=wkck-1+ok

(10)

式中:zk为全连接层k的净激活;wk为全连接层的权重系数;οk为全连接层的偏置。

2.2 卷积神经网络的误差反向传播

卷积神经网络通过反向传播,基于梯度下降算法调整参数。根据链式求导法则,反向传播时将梯度误差逐层传递、逐层优化,达到对网络参数进行整体优化的目的。这里针对“卷积层-池化层-全连接层”的顺序分别给出向传播算法。定义网络k层的灵敏度为:

(11)

式中:ξk为总误差对净激活zk的梯度。计算灵敏度实际上是通过所有网络层总误差对所有网络参数求偏导,使得网络的训练误差朝着减小的方向迭代。

为了计算卷积层灵敏度,需要利用损失函数对偏置项求偏导为:

(12)

式中:c,d代表特征图上的位置,损失函数对偏置项偏导等于各个位置偏置项偏导叠加。式(12)可由式(13)表示:

(13)

式中:m×n为卷积层卷积核大小;⊗为kronnecker product。由式(12)和式(13)可知,损失函数对卷积核的偏导为:

(14)

对计算池化层求灵敏度,如式(15)和式(16)所示:

(15)

(16)

(17)

全连接层求灵敏度,如式(18)和(19)所示:

ξk=(wk+1)Tξk+1∘f′(zk)

(18)

ξγ=f′(zγ)∘(yn-tn)

(19)

全连接层的总误差对偏置和权重求偏导,如式(20)和(21)所示:

(20)

(21)

为确定卷积及池化模板的大小,论文首先对数据库中缺陷面积进行了统计,如图6所示。

由图6可知,缺陷像素点个数分布于6~44之间,平均值约为15。当缺陷面积较小,近有6个像素点时,卷积模板≥5×5时,易发生漏检、误检等情况,所以本文确定的卷积核大小为3×3。

图6 缺陷像素点个数统计图

2.3 激活函数

激活函数是实现神经网络非线性变换的重要环节,常用的激活函数有ReLU 函数、Sigmoid 函数等。

ReLU函数的定义为:

f(x)=max(0,x)

(22)

ReLU函数图像如图7所示。

图7 ReLU函数图

由图像可以知道函数取值范围是[0,∞],则其导数如下式所示:

(23)

Sigmoid函数定义为:

f(x)=1/(1+e-x)

(24)

Sigmoid函数图像如图8所示。

图8 Sigmoid函数图

通过对比ReLU函数和Sigmoid函数,可以发现ReLU函数收敛于无穷大,在测试中易发生浮点溢出现象。在图像中待检测物体结构相对简单时,从计算的稳定性角度考虑,Sigmoid函数激活函数更不易产生溢出且易于实现,因此文中选取Sigmoid函数作为激活函数。

2.4 损失函数

一般而言,交叉熵代价函数多与Sigmonid激活函数搭配使用,在确定激活函数的前提下,文中采用交叉熵代价函数作为神经网络代价函数,如式(25)所示:

(25)

式中:γ为目标函数;n为样本总数;m为样本;u为实际值;c为输出值。

3 卷积神经网络模型

3.1 CNN结构设计

由于焊缝SDR图像尺寸相对较小,CNN深度较高时易产生数据缺失导致误识别,因此文中设计卷积层为2层,其结构如图9所示。其中:C1,C3为卷积层;S2,S4为池化层;F5,F6为全连接层。

图9 卷积神经网络结构

C1的卷积核尺寸设定为3×3,深度为4;C3的卷积核尺寸也设定为3×3,深度为16;S2,S4均为池化层,其卷积核尺寸设定为3×3,移动步长为1。在CNN模型中,卷积层采取了补零操作,保持输入的样本长和宽不变,深度增加;而池化层不采取补零,发生池化后,样本的深度不变,长和宽减小了。

3.2 算法训练

文中所确定的CNN训练步骤如下:①样本输入;②设置CNN初始参数;③选择Sigmonid的激活函数;④开始训练;⑤缺陷识别。

文中模型采用C++编程实现,具体流程如图10所示。卷积神经网络模型训练样本为样本总数的20%,在CNN模型的训练中,整体学习率(α)设置为0.000 1。

图10 CNN网络模型训练流程图

4 试验结果分析

以某标段管道焊缝为例,条形缺陷如图11所示。

图11 12组条形缺陷图像

在实际生产中,条形缺陷比圆形缺陷危害性大,其数量远小于圆形缺陷数量,用传统方法检测,易于识别。虽然圆形缺陷危害性小,但是识别难度大,因此条形缺陷不是作为文中研究的重点,而圆形缺陷识别是文中重点研究对象。

文中分别采用20张缺陷和噪声作为训练样本,训练完成后另选200张圆形缺陷和噪声图像作为SDR测试样本,试验结果的混淆矩阵见表1,其中:TP为真正;FN为假负;FP为假正;TN为真负。

表1 SDR图像识别混淆矩阵

根据表1所示的混淆矩阵,再根据敏感度(Se)和特异度(Sp)

(26)

(27)

可以得到样本的敏感度和特异度对比,见表2。

表2 样本敏感度/特异度

为进一步验证CNN结构的鲁棒性,文中多次进行重复试验,每次选择不同缺陷及噪声SDR各20张进行训练。测试样本为与训练样本不同的SDR图像。10次试验结果见表3。

表3 样本模板试验结果

文中提及的噪声是指影像中一种形似于缺陷的伪缺陷类型。从表3可知,CNN对圆形缺陷和噪声都具有较高的识别率。

利用文中所提卷积神经网络结构对条形缺陷和圆形缺陷进行检测,试验结果见表4。从表4可知,文中所提方法对条形缺陷依然有较好的识别率。

表4 缺陷检测结果

分析未成功识别和成功识别的SDR图像及其灰度直方图如图12~图19所示。从视觉效果可以发现未识别成功的图像灰度直方图跨度小,视觉效果差,没有层次感,卷积神经网络不能进行分割处理。而已识别成功图像灰度直方图跨度大,视觉效果好,层次感强。因此卷积神经网络对于图像是否能够识别,可以用图像灰度跨度来鉴定。

图12 识别失败的圆形缺陷图像

图13 识别失败的噪声图像

图14 识别失败的圆形缺陷灰度直方图

图15 识别失败的噪声灰度直方图

图16 识别成功的圆形缺陷图像

图17 识别成功的噪声图像

图18 识别成功的圆形缺陷灰度直方图

图19 识别成功的噪声灰度直方图

为了验证卷积神经网络对图像识别是否与图像灰度直方图跨度有关。文中取10组已识别成功和6组未识别成功图像灰度直方图跨度进行了对比,如图20所示。

图20 灰度图跨度对比

由图20可知,当灰度图跨度低于50时,图像检测目标与背景之间的对比度相对较低,卷积神经网络中卷积层难以提取目标特征,此时神经网络的识别失效,无法判定缺陷。当局部图像灰度直方图跨度高于50时,识别目标较背景突出,图像整体对比度较高,卷积层可以提取识别目标的特征,此时的卷积神经网络对焊缝图像有较好的识别效果。

为了充分探究文中神经网络的复杂度和准确率,与以往公开文献的情况之间的优劣,这里做了比对,见表5。由表5可知,文中使用的卷积神经网络结构虽然简单但是对本领域有效,十分适合本领域的应用。从公开的文献资料中,查到了用其它的人工智能深度网络算法,在该领域的应用情况。在表中,通过对比可以看出,文中网络结构更加简单实用,虽然准确率并不是最高的,但比最高的98%只低1%。而误报率仅仅是3%。表中没有误报率数值的,是在该文献中没有提及,无法比较。

表5 卷积神经网络算法对比

5 结论

文中选取的卷积神经网络算法与传统方法相比较,可以避免图像特征值提取,能够有效区分噪声和圆形缺陷。通过构建网络模型,设定网络参数,可以直接将SDR图像作为输入样本进行训练与识别。试验结果表明CNN网络结构模型训练速度快,识别率高,适合于X射线焊缝缺陷图像的检测与识别,准确率可达97%。文中通比对识别成功和识别失败图像的灰度图跨度,发现灰度跨度在一定范围内,卷积神经网络会有很好的识别效果,否则卷积神经网络会失效。因此在后续的研究中,对图像进行预处理,扩大图像的灰度跨度,进一步提高识别率。

猜你喜欢
池化直方图灰度
基于高斯函数的池化算法
符合差分隐私的流数据统计直方图发布
采用改进导重法的拓扑结构灰度单元过滤技术
卷积神经网络中的自适应加权池化
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于FPGA的直方图均衡图像增强算法设计及实现
Arduino小车巡线程序的灰度阈值优化方案
用直方图控制画面影调
基于卷积神经网络和池化算法的表情识别研究
用于手写汉字识别的文本分割方法