基于卷积神经网络的多种金属腐蚀等级研究*
2022-08-01胡欢欢俞文昌王梓洋李海涛
胡欢欢,俞文昌,王梓洋,李海涛
(池州学院大数据与人工智能学院,安徽 池州 247100)
金属材料因其优异的性能,被使用在各行各业中,而腐蚀伴随着金属材料的使用过程,导致使用性能降低。有数据表明,2014年,我国腐蚀成本为21278.2亿元人民币,约占当年国内生产总值的3.34%[1]。因此,对金属腐蚀检测的研究具有非常重要的意义。
随着计算机技术的发展,近年来神经网络在腐蚀检测领域得到了广泛的研究与应用。Bastian等[2]提出了一种基于卷积神经网络的管道腐蚀分类和定位的检测方法,研究结果表明该方法可与无人机相结合,实现管道外部腐蚀的实时无损检测。吴凯等[3]以钢板的腐蚀图像为研究对象,以卷积神经网络为分类算法,对不同腐蚀程度的钢板腐蚀图像进行分类。Liu等[4]开发了一种基于卷积神经网络的钢板图层破损与腐蚀检测系统,该方法采用Faster R-CNN结构和VGG-19结构,实现了基于实例分割的钢板涂层破损与腐蚀检测,准确地识别了图层失效的主要类型。Cha等[5]使用快速区域卷积经网络实现了多类型损伤的准实时检测,结果表明,该方法具有较快的检测速度,可用于生成基于卷积神经网络的视频损伤准实时检测框架。Tian等[6]提出了一种基于快速RCNN和HIS颜色空间特征的腐蚀检测算法,提高了神经网络的特征提取能力和效率。以上研究对金属腐蚀的检测做出了大量的贡献,但目前针对多种金属材料在不同环境中的腐蚀检测研究较少。本文收集了多种金属材料在淡水湖、海洋、大气环境中的腐蚀形貌图,基于卷积神经网络提取腐蚀图片的高维特征实现腐蚀等级的分类。
1 材料与方法
1.1 样品材料
以金属腐蚀为识别对象,对采集的图像进行人工处理,构建本次试验的数据集。根据金属腐蚀的程度,分为3个等级,腐蚀初级阶段(C1)、腐蚀中期(C2)和金属被腐蚀层完全覆盖(C3)。为了提高模型的特征学习能力和抗干扰,对原始图像进行随机旋转(逆时针90°至顺时针90°)、随机亮度变换及随机对比度等数据扩充处理处理,扩充后C1、C2和C3样本数量分别为500张。设置卷积神经网络的训练样本和测试样本的比例为4:1,则最终训练样本有1200张,测试样本有320张。
1.2 图像预处理
为了保证投入神经网络的图片大小和格式统一,需对图像进行预处理,包括图片裁切、缩放和图像标准化。首先对输入图像进行裁切,裁切为高度相等的正方形图片,然后对图像进行缩放为224像素×224像素大小,最后对图像进行归标准化。图像标准化是指逐通道、逐像素进行如式1操作。
(1)
式中:mean和std为整个数据集中各通道图像的均值和标准差,input为某通道某像素的输入像素值,output为该像素的输出值。
1.3 卷积神经网络
卷积神经网络是一类典型的具有深度结构的前馈神经网络,是深度学习的代表算法之一[7]。与传统的BP神经网络相比,卷积神经网络算法具有显著优势,能够有效应对传统神经网络训练中存在的梯级稀疏、局部最小值及数据标签化等缺陷。且不需要手动提取图像特征,也不需要使用尺度不变特征转换(SIFT)之类特征提取算法。卷积神经网络可以完全基于训练数据驱动自动完成特征的提取和抽象,大大降低图像识别难度。基于此,本文提出利用卷积神经网络对金属腐蚀图像进行腐蚀等级分类。
卷积神经网络主要包括卷积层和池化层(取样层)。卷积层是卷积神经网络中最为重要的部分,主要作用是通过卷积核的卷积运算对图像的主要本质特征进行学习,提取目标图像中的一个局部区域特征,并且通过激活函数将卷积运算的结果进行激活后产生相应的输出,每个卷积核可以提取一类图像特征,对应于使用卷积操作提取到的一个特征映射。如图1所示,图像识别中的卷积运算,通过卷积核在图像上从左到右,自上而下滑动提取原始图像特征得到新的特征图层。在卷积操作中还有加入偏移量、非线性激活函数例如ReLU、tanh等增强模型的表达能力。通过卷积层卷积核尺寸的设置和卷积运算操作,无论图片的大小,都能通过局部特征的学习得到不同特征的激活值,从而实现整个图像特征的学习。
图1 卷积计算图
池化层的运算将卷积运算得到的特征图分成若干小区域,从而大大减小图像的空间尺寸,便于后续的卷积运算。池化层使特征图图像尺寸大大减小,而图像的基本特征保持不变,从而达到提高卷积神经网络运行速率和防止过拟合。常用的池化类型有最大池化、平均池化等。本实验中神经卷积网络的池化类型均为最大池化。图2是一个窗口为2×2的最大池化操作示意图。
图2 池化方式图
ILSVRC图像分类比赛中有很多优秀的卷积神经网络结构,Gao等[8]提出DenseNet。Szegedy等[9]提出使用Inception V1结构的GoogleNet模型,实现了更丰富的特征图提取效果。He等[10]提出的ResNet,通过残差模块解决了梯度消失问题。这些网络在提取图像高维特征实现图像正确分类取得了卓越的成效。基于金属腐蚀分类是一个图像分类问题,本实验设计中选择ResNet18、ResNet50、GoogleNet和DenseNet121四种卷积神经网络来验证方法的可行性。
2 实验与结果分析
2.1 实验数据
本研究的数据来源是中国科技部的国家材料环境腐蚀野外科学观测研究平台(http://www.ecorr.org/)。这是我国科技部批准建设的23家国家科技基础条件平台之一,是长期从事材料环境腐蚀数据积累和试验研究的基地,是材料腐蚀试验、检测分析的权威机构,也是材料腐蚀基础科学研究和人才培养的平台。本论文使用不同金属材料在淡水、海水、大气中的腐蚀图谱,根据腐蚀程度分为3个等级(如表1所示)。
表1 腐蚀等级信息表
金属腐蚀图像数据以及相应标签如图3所示,统计了全部腐蚀图片R、G、B三个通道的均值和标准差如表2所示。
图3 腐蚀图像数据
表2 均值标准差统计
2.2 数据结果分析
试验过程中将全量试验图片按照4:1的比例分为训练集和测试集。各腐蚀等级在训练集和测试集分布如表3所示。
表3 训练集、测试集数据分布
实验选择ResNet18、ResNet50、GoogleNet和DenseNet121四种常用卷积神经网络,损失函数选择交叉熵损失函数,优化器选择SGD优化器。将训练数据经过预处理后输入型进行训练,模型训练采用批量训练的方法,每个批次训练的样本数为64。每完成一轮训练后使用测试集数据测试当前模型的识别准确率和Loss值,结果如表4所示。模型训练和测试均在GPU上完成,GPU型号为GTX1080Ti,显存11Gb,训练和测试中Batch大小为64。准确率是判断分类模型中常见的一个评估指标,将分类正确的样本除以样本总数(如下式所示),便可得到准确率[11]。
表4 各模型训练指标
(2)
经过64轮训练四种模型的准确率变化如图4所示。交叉熵是判断一个输出向量和期望的向量之间的接近程度常用的评判方法之一,它刻画的是两个概率分布之间的距离,也是分类问题中使用比较广的一种损失函数[12-14],本实验中交叉熵损失值如图5所示。各模型每轮测试耗时变化如图6所示。
图4 准确率变化图
图5 Loss值变化图
图6 各模型测试耗时图
可以看出64轮训练后4种模型均能较好的识别不同腐蚀程度的金属图片。本数据集中,金属的种类多,颜色差异较大,给图像识别增加了难度,但从表4可知,卷积神经网络在腐蚀等级识别准确率上可以保持较高的水平,ResNet18准确率为94.26%,ResNet50准确率为94.52%,GoogleNet准确率为95.04%,DenseNet121准确率为96.08%。从训练过程的稳定性上看(图4),DenseNet121在前60训练回合出现较大波动,其他三个模型在前30个训练回合内呈现快速提升的特征,在之后的训练回合准确率基本维持在一个水平。从收敛速度上看,GoogleNet相对于DenseNet能够更快的收敛,并且收敛后比较稳定。但准确率不平稳性并不影响验证集准确率在第65个训练合会时达到高位,多次实验证明测试集准确率能够保持在90%以上。识别效率上,四种模型在Batch大小为64的情况下识别测试集300张测试集图片耗时约为8 s,每个Batch识别时间约为1.71 s,没有明显差异且在可接受范围内。
3 结 论
本文基于卷积神经网络提出了一种检测多种金属腐蚀的方法,可为金属在不同环境中腐蚀状态做分类。通过人工标注的1500个腐蚀图谱样本分别对ResNet18、ResNet50、GoogleNet和DenseNet121四种神经网络进行训练。
(1)多种不同的金属虽有较大的干扰性,但四种网络在验证集上的最终精确度都达到了94%以上,故可说明四个网络在识别性能上均较好,对不同金属腐蚀等级识别是可行的。
(2)训练时,GoogleNet、ResNet18和ResNet50比DenseNet121网络收敛速度快、损失函数曲线下降更加平滑,同时腐蚀等级识别准确率上升更快,综合考虑,GoogleNet在样本训练利用率上更高效。