基于深度残差网络的金属腐蚀图像分割

2022-11-23 11:35刘琼黄景煦张熠卿李广睿向浪
关键词:金属腐蚀残差卷积

刘琼,黄景煦,张熠卿,李广睿,向浪

(北京信息科技大学 自动化学院,北京 100192)

0 引言

研究表明,每年全世界以金属腐蚀为主的腐蚀损耗成本约占全球GDP总数的3.4%[1]。金属腐蚀不仅造成了巨大的经济损失,还严重威胁到人们的生命安全。及时发现金属腐蚀区域,确定腐蚀程度,据此进行相应的设备维护和检修,对保护生命财产安全具有重要的意义。

基于视觉的检测方法因具有操作简单、范围广的优势而被广泛应用于缺陷检测领域。在深度学习出现以前,人们主要研究基于传统的图像处理技术进行腐蚀图像检测。Livens等[2]通过小波能量提取特征,并通过学习向量化对腐蚀图像进行二分类。Siegerl等[3]采用多分辨率小波特征提取和神经网络对裂纹和表面腐蚀进行检测。Ghanta等[4]采用小波变换设计了一套自适应阈值的方法用于公路钢材锈蚀检测。传统的图像处理技术往往在特定领域表现优异,但普适性低,并且特征提取依赖于先验知识,难以适应各种复杂的腐蚀状况。

近年来,随着深度学习理论的发展以及计算机算力的不断提升,基于视觉的金属腐蚀检测精度得到了显著的提升。同时,腐蚀图像数据集的建立,也促进了基于视觉的金属腐蚀检测技术的进步。相比传统的图像处理技术,卷积神经网络(convolutional neural networks,CNN)强大的非线性拟合能力和自动提取特征的能力在腐蚀检测领域具备很大的优势。Petricca等[5]提出了一种基于卷积神经网络的自动金属腐蚀检测方法应用于金属锈病检测。Liu等[6]基于VGG19和Faster R-CNN网络建立了一种钢板涂层破损和腐蚀检测系统,具有较好的应用效果。Cha等[7]研究颜色空间、滑动窗口以及卷积神经网络对腐蚀检测的影响,其中经过微调的VGG16网络表现优异。Abdur等[8]提出了一种新的集成深度学习技术,利用卷积神经网络进行结构识别和腐蚀特征提取。Shi[9]采用卷积神经网络对配电箱的金属腐蚀程度进行评估,最终的准确率达到99.23%。Wu[10]自主设计了一个VGG-corrosion算法并建立了一个腐蚀图像四级评价系统,最终的分类准确率达到91%。Wen[11]采用改进Deeplabv3+网络用于火电厂过热器管道内壁腐蚀检测。这些方法并没有针对腐蚀图像的分布无规律、形状不规则的固有规律进行网络设计,所应用的卷积神经网络感受野有限,无法有效建模腐蚀图像的上下文关系。

基于以上分析,本文提出了一种深度残差语义分割网络用于金属腐蚀图像分割,通过大卷积核和小卷积核相结合有效扩大了算法的感受野以建模上下文关系,并且融合了多尺度的信息以加强特征表示能力,相比传统的算法具备更高的精度。

1 局部上下文残差网络

更深层的神经网络可以更加准确地提取金属腐蚀图像的语义特征;然而,随着深度的增加,深度神经网络往往会出现梯度消失等问题。因此,本文引入了残差结构,并且将卷积核分解与局部上下文特征以及多尺度的信息相结合以提高金属腐蚀图像分割的精度,并降低模型的参数量。

1.1 残差结构

深度卷积神经网络在图像分类、目标检测、语义分割等经典的视觉任务中取得了较高的精度[12-13],深度网络可以通过堆叠多个卷积层来分别获取低/中/高级特征。大量实验证明,网络深度对提升网络精度十分重要;然而,随着网络深度的增加,模型精度达到饱和后开始迅速下降。发生这种现象的原因是层数过深的神经网络丢失了图像的部分特征信息,且深层网络难以通过随机梯度下降(stochastic gradient descent,SGD)进行优化,很容易出现梯度消失,最终模型精度甚至不如浅层的神经网络。

残差网络(residual network,ResNet)[14]通过引入如图1所示的残差结构,成功地解决了深层网络精度易饱和的问题。残差结构创建了一个快速通道,使得信号可以快速跳过单层或多层运算,直接与输出相连接,有助于信号更快地前向传播。同时,残差连接创建了一个恒等映射,可以有效防止梯度消失,使得更深层的神经网络训练成为了可能。

图1 残差连接

残差结构的另一个好处是既不增加额外的参数,也不增加计算的复杂性,整个网络仍然可以通过反向传播的SGD优化器进行端到端的训练。

然而,ResNet具有大量的参数,需要消耗大量的计算资源。因此,本文采用深度卷积与逐点卷积相结合进一步减少参数量,结合残差连接,以便训练一个更深层的神经网络。

1.2 局部上下文模块

腐蚀图像的特征更多体现为局部特征,由于腐蚀区域无固定的形状和大小,所以局部上下文信息对于腐蚀图像分割十分重要。基于以上分析,本文提出了局部上下文模块,如图2所示,该模块由局部感知单元(local perception unit,LPU)、局部上下文感知单元(local contextual unit,LCU)以及残差前向传播单元(residual feed-forward unit,RFFU)组成。

图2 局部上下文特征提取模块

所有的激活函数均采用Transformer[15]中广泛使用的高斯误差线性单元(Gaussian error linear units,GELU)函数[16],以更好地提高模型的泛化性能,并采用批归一化(batch normalization,BN)以加快训练的速度。

局部感知单元主要由一个3×3的深度卷积组成,初步提取腐蚀图像的局部特征,其计算原理如式(1)所示。

LPU(X)=f3×3(X)+X

(1)

式中:X为输入的特征信息;f3×3为3×3的深度卷积。

局部上下文感知单元主要由逐点卷积、小卷积核和大卷积核组成。大卷积核捕获更大目标的腐蚀区域,并建立长距离的依赖关系;小卷积核捕获局部的细节特征,两者相加兼顾了长距离的依赖和局部细节以提取丰富的上下文信息。该单元的计算原理如式(2)所示。

LCU(X)=f1×1(fs(f1×1(X))+fl(f1×1(X)))+X

(2)

式中:f1×1表示对输入特征进行逐点卷积;fs和fl分别表示对输入特征采用小卷积核和大卷积核进行卷积。根据实践经验,本文将小卷积核的大小设置为3×3,大卷积核的大小设置为11×11。

残差前向传播单元再次进行局部特征提取,并促进信号快速向前传播。该单元主要由两层逐点卷积和3×3的深度卷积组成。

1.3 算法流程

本文采用“编码器-解码器”模型作为主干结构,如图3所示。其中,N1、N2、N3、N4为堆叠的次数,分别取值为3、3、4、3;H和W为图像的高和宽;C1、C2、C3、C4为通道数,分别取值为32、64、128、256;C为解码器的通道数,取值为64;N为最后的分类数,取值为4。编码器主要通过堆叠局部上下文模块以提取浅层、低层、中层、高层以及深层的上下文特征。第一阶段由3×3的卷积核、3×3的深度卷积和逐点卷积提取图像的局部特征,后面的主干特征提取阶段主要由局部上下文特征提取模块以及下采样模块组成。

下采样模块主要由一个步幅为2的3×3深度卷积和一个逐点卷积组成,其中深度卷积的主要作用为缩小图像的尺寸以减少内存消耗,而逐点卷积主要对通道数进行扩增,以学习更多的模式特征。该模块的计算原理如式(3)所示。

DM(X)=f1×1(f3×3(X))

(3)

解码器首先将特征图上采样至相同的分辨率,然后将各个尺度的特征图在通道维度进行拼接,再通过两层逐点卷积得到最后的分割结果,解码器的计算原理如式(4)所示。

(4)

式中:f1×1(Xi,Ci,C)表示通过逐点卷积将输入特征Xi从通道数Ci变为C,Xi、Ci分别表示不同尺度的特征和通道数;upsample为上采样操作,主要方法为双线性插值;concat为拼接操作,将特征F1、F2、F3、F4、F5在通道维度上进行拼接。本文一共融合了5个尺度的特征信息,通过两层逐点卷积得到最后的分割结果Y2。

图3 本文模型的编码器-解码器结构

2 实验

在金属腐蚀图像公共数据集上评估本文方法的性能,并且与当前主流的语义分割算法进行比较。

2.1 实验设置

1)数据来源。本文所有实验均使用由弗吉尼亚理工学院暨州立大学制作的金属腐蚀图像数据集[17],该数据集根据美国国家公路和铁路协会报告的腐蚀状态指南进行语义注释。整个数据集被分为4类:无腐蚀、轻度腐蚀、中度腐蚀和重度腐蚀。通过数据增强,如随机裁剪、对比度增强和饱和度增强,将图像的数量从440张扩充到3 850张。图像的大小被调整为512×512。

2)实验设置。所有的实验代码都是基于深度学习框架PyTorch 1.10.1进行编程。本文模型和其他模型均在4块型号为2080Ti的图像处理单元(graphics processing unit,GPU)上进行训练。网络使用SGD优化器进行训练,初始学习率为0.007,通过余弦曲线的方法下降到0.000 07。损失函数由Dice损失和Focal损失两部分构成,如式(5)所示。

L=(1-αt)LDice+αtLFocal(pt)

(5)

式中:αt用于调节两个损失之间的比率,本文设为0.5;Dice损失LDice用于计算集合之间的相似度,其表达式见式(6);Focal损失LFocal是一个改进的交叉熵损失函数,用于解决样本不平衡问题,其表达式见式(7)。

(6)

其中:|A|和|B|分别为语义分割标签A和预测分割图像B的像素数;|A∩B|为A和B的交集像素数。

LFocal(pt)=(1-pt)γlog(pt)

(7)

其中:γ是引导算法关注困难样本的调制因子,本文设为2;pt是4个类别的像素数占图像总数量的比例。

3)评价指标。本文采用如下5个指标来评估模型性能,分别是平均交并比(mean intersection over union,mIoU)、平均像素准确率(mean pixel accuracy,mPA)、平均召回率(mean recall,mRecall)、平均准确率(mean precision,mPrecision)以及模型的参数量。我们期望模型具备更高的评价指标值和更少的参数量。

2.2 对比实验

采用上述5个评价指标定量评估本文方法与其他主流语义分割网络的性能,实验结果如表1所示。所有的算法均在相同的数据集和相同的实验条件下进行训练。本文所提出模型的大小为19.57 MB,mIoU值为79.39%,在所有对比模型中性能最优,模型体量仅大于PSPNet[18]。EPSANet[19]采用金字塔分割注意力模块提取多尺度特征,与本文方法的思想类似,最终mIoU为64.55%,但模型大小远超本文方法。除了RefineNet[20]在250个迭代轮次内收敛,其他模型都能在150个迭代轮次内收敛。通过观察实验结果可以得出:基于MobileNetV2[21]的模型相比使用ResNet-50[14]的性能略差,但模型的参数量却显著减少,说明轻量级的模型相比传统模型在金属腐蚀图像分割任务上更加高效;RefineNet的精度较低,表明多路径的网络不适用于金属腐蚀图像分割;DenseASPP[22]和Deeplabv3+[23]采用膨胀卷积,取得了较高的精度,但由于膨胀卷积的感受野不连续,而腐蚀图像往往是连续成片出现,故最终会出现栅格状的分割区域,进而导致精度提升的空间有限;DenseASPP中密集连接的方式会过度引入冗余信息,导致精度下降;此外,这些语义分割模型没有在所有阶段同时融入上下文特征以及多尺度的特征信息,导致最后的分割精度远低于本文方法。本文模型和表1中其他语义分割模型的可视化结果如图4所示,可见,本文方法更加准确并且预测的腐蚀区域更靠近标签。

表1 本文模型与其他语义分割模型的比较

图4 本文方法与其他语义分割方法腐蚀区域可视化结果

2.3 消融实验

为了验证局部上下文感知模块中的LCU和RFFU的有效性,分别移除RFFU和LCU后对模型进行训练,最终的实验结果如表2所示。可以发现,当去除RFFU或LCU后,模型性能均有所下降,表明这两种主要的单元有助于提高金属腐蚀图像分割的精度。尤其是去除LCU后,分割精度大幅下降,这表明LCU有助于对上下文特征建模,大卷积核和小卷积核相结合的方式可以自适应不同大小的腐蚀区域,残差连接可以促进信息流更快地向前传播。

表2 消融实验结果

3 结束语

本文对金属腐蚀检测进行了深入的分析与研究,提出了用于腐蚀图像分割的轻量级深度残差网络。充分使用残差结构以缓解深度神经网络中梯度消失的问题,并引入了局部上下文特征以及多尺度的特征信息,以加强腐蚀图像的特征表示能力,提高腐蚀区域分割的精度。同时,采用将卷积核分解为深度卷积和逐点卷积的形式进一步降低模型的大小。实验结果显示,在公共腐蚀图像数据集,所提出的方法以较少的参数量取得了最高的精度。

猜你喜欢
金属腐蚀残差卷积
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
金属腐蚀与防护分析研究
卷积神经网络的分析与设计
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
金属腐蚀与防护的小知识
羟胺在钢铁磷化防腐蚀中的研究