基于改进Res-UNet网络的钢铁表面缺陷图像分割研究

2022-05-31 06:19李燕君刘进超王庆林
电子与信息学报 2022年5期
关键词:样本特征模块

李 原 李燕君 刘进超 范 衠 王庆林

①(北京理工大学自动化学院 北京 100081)

②(南开大学人工智能学院 天津 300071)

③(汕头大学工学院 汕头 515063)

1 引言

在工业生产中,钢铁等金属材料表面会存在一些缺陷,如刮痕、凸起、裂缝、形变等,可能会导致机器工作时产生不正常的震动和声响[1],甚至导致生产事故。目前钢铁表面缺陷识别的方法主要有3种:人工检测法,传统图像处理法[2–6],机器学习法[7–14]。

在20世纪50~60年代,钢铁生产企业基本上使用人工检测的方法评定钢铁质量,目前国内的很多中小型企业也使用该方法。人工检测方法效率低、成本大且准确率低,工人的工作状态会严重影响缺陷识别的效果[15]。于是使用机器代替人进行缺陷检测的方法应运而生。

传统的图像处理法利用局部异常反映的原始属性来检测和分割缺陷,可进一步分为结构法、阈值法、频谱法和基于模型的方法。Borselli等人[2]对图像使用Sobel滤波,并用模糊推论系统(Fuzzy Inference System, FIS)描述图片特征,返回一个与被搜索的缺陷出现在产品中的概率成比例的索引作为输出,定位缺陷位置和类别。Xu等人[3]提出一种新的自适应多尺度几何分析方法—矩形非对称非压缩的模式识别模型(Rectangle Non-symmetry Anti-packing pattern representation Model, RNAMlet),将图像不对称地分解成一组矩形块,然后对所有块进行哈尔小波变换。

浅层机器学习法通过传统图像处理提取缺陷的特征向量,将其送入分类器进行训练,获得缺陷识别模型[16]。Kwon等人[7]利用变差轮廓线(Variance Of Variance, VOV)特征有效地将缺陷与背景区分开来,并训练随机森林模型实现缺陷检测。Chu等人[8]利用K近邻(K-Nearest Neighbors, KNNs)方法挖掘并提取边界样本信息、代表性样本信息和特征权重信息,根据这3种信息构建多信息双支持向量机(Twin Support Vector Machines with Multi-information,MTSVMs)缺陷分类器。

目前出现了许多深度学习结合传统图像法的融合算法[9–11],图像处理法能保证缺陷定位更精准,较大程度地保留缺陷细节。Yang等人[9]提出了一种基于反向传播(Back Propagation, BP)神经网络和形态学噪声滤波的混合缺陷分割方法。Ren等人[10]提出基于图像块特征构建分类器的方法,从预训练好的深度Decaf网络中获取特征,然后将训练好的分类器卷积到输入图像上实现像素级的预测。

传统的图像处理法需要特定的背景条件或光照条件,要求缺陷有明显的对比度或轮廓,且实时监测性差,泛化能力弱,但是可实施性强。浅层机器学习法对外部自然条件的要求不高,具有更好的适应性和鲁棒性,但是提取的特征对于复杂情况没有足够的辨别能力和代表性。深度学习法提取的缺陷特征代表性强,模型具有较高的识别准确率和泛化能力,所以本文使用Res-UNet网络分割钢铁表面缺陷,并设计了4种改进策略增强缺陷识别的效果。

2 基于Res-UNet的综合改进算法

2.1 改进的Res-UNet算法

钢铁表面缺陷图片的语义较为简单,背景的复杂度低,缺陷的边缘细节信息很难捕捉,所以图像的高级语义和低级特征都很重要。不同类型的缺陷有时差异较小,数据具有多模态的特点,这对模型来说是新的挑战。仅仅识别钢铁表面有无缺陷不能够满足生产需求,为了高效确定缺陷位置、识别缺陷种类和计算缺陷面积,加快工厂纠错效率,图像分割比图像分类更有效。

综合钢铁表面缺陷的图像特点和实际生产的需求,本文选择Res-UNet算法完成钢铁表面缺陷识别和定位的任务。Res-UNet 是将 UNet 网络与ResNet 残差网络结合的新型神经网络[17]。Res-Net提出了跨层连接的残差块,在深度提取特征的同时避免了梯度消失和网络退化[18]。UNet网络在医学图像分割领域表现卓越,适用于训练边缘不规范的小目标数据集,它由编码网络和译码网络组成,形成了U型结构,跳跃连接保证网络融合浅层特征和深层特征[19]。Res-UNet综合了二者的优点,能够充分提取和利用钢铁缺陷图像的特征,避免梯度消失,缩短训练时间。

本文使用的Res-UNet采用ResNet作为编码网络,在此基础上增加了6个跨层连接,通过最大池化操作统一维度,形成了稠密的网络结构,本结构能够重用浅层特征,增强特征的深度延展。UNet的译码网络保持不变,实现特征图像分辨率的恢复和与浅层特征的结合,改进的Res-UNet结构如图1所示。编码网络包括4个残差模块,如图2(a)所示,每个模块包含两个卷积层、激活函数层(Rectified Linear Unit, ReLU)和两个批量归一化层(Batch Normalization, BN),卷积层卷积核的大小为3×3,跳跃连接可以防止反向传播时梯度消失。

图1 Res-UNet网络结构

译码网络包括5个译码模块,如图2(b)所示,每个模块包括上采样、两个卷积层Conv2d、两个激活函数层ReLU,上采样方法为最近邻插值法,用于加倍特征图尺寸,卷积核为3×3大小,步长为1,用于融合特征。在编码网络和译码网络之间有4个跳跃连接,用于拼接同维度的特征,实现了浅层特征的复用。

图2 残差模块和译码模块结构

整个网络共进行5次下采样和5次上采样。每次下采样都将特征图的大小减半,通道数加倍,特征图从扁平状变得小而密,更加立体;每次上采样都将特征图的大小加倍,通道数减半,特征图最终恢复到输入时的大小。在Res-UNet中,卷积核多使用3×3的大小,采样的步长为1或2,具体每层的参数情况和特征图大小如表1所示。

表1 网络各层参数及特征图大小

本文使用Res18-UNet作为基本的训练网络,在此基础上提出特征提取模块稠密连接、加深编码模块网络深度、训练集增强、改进损失函数的改进策略,提高网络的缺陷分割能力。

2.2 增强训练集数据

为了避免网络过拟合,使Res-UNet网络学习更多样本的特征,本文对训练数据集实现图像增强。使用水平翻转和竖直翻转增强图片的多样性;调整图像的亮度和对比度,减少光照不均的影响,突出缺陷的边缘特征;使用直方图均衡化增强图像的全局对比度[20]。最后给训练集图像增加模糊和噪声干扰,进一步提升模型的泛化能力。

2.3 增加特征提取网络的层数

为了提取更丰富的缺陷特征,使用层数更多的ResNet50作为编码模块,同样增加稠密连接的结构,可以得到更深层、包含更多语义信息的缺陷特征。在相同的实验效果下,使用稠密连接可以节省参数,降低模型存储开销;减少计算量,提升计算效率;对于使用稠密连接的每一个残差模块,都重用了它之前几个残差模块的输出,经过对输出的非线性变换和引入,增加了特征的复杂度,通过综合利用浅层复杂度低的特征,可以训练得到一个不易过拟合、泛化性能更优的模型。

由于图像分割需要考虑缺陷的边缘细节,Res-Net50更深层网络提取的特征包含更多丰富的语义信息,便于译码网络确定分割的边界,使分割结果更加精准。ResNet50残差模块为瓶颈结构,输入和输出部分两次使用1×1的卷积核实现数据的升降维,有效减少参数数量,提升网络的训练速度。

2.4 改进损失函数

分割问题可以归结为判断像素是否为背景的问题,所以图像分割神经网络最常使用的是逐像素2元交叉熵损失函数(Binary Cross Entropy Loss,BCEloss),如式(1)所示。2元交叉熵损失函数采用类间竞争机制,导致网络重点学习占比高的样本,无法解决数据类内不平衡的问题。

对于分割问题,背景负样本的数量远大于缺陷正样本的数量,仅用BCEloss会导致网络陷入局部极小值。Dice损失函数常用于计算样本间相似度,它重点关注前景图像是否分类正确,不关注背景像素,可有效缓解前景、背景样本失衡的问题,计算公式如式(3)所示

为了进一步加强网络对缺陷像素样本的学习,本文设计加权交叉熵损失函数和加权Dice损失函数[21],如式(4)和式(5),增强正样本的损失值比重,总损失函数为二者的加权和[22],记为BDloss,如式(6)

3 实验及结果分析

3.1 实验平台

为了对本文所提改进算法做出客观公正的评价,所有实验均在相同的实验环境下进行。本实验在L i n u x 操作系统下完成。G P U 为N V I D I A Quadro_P5000,显存为16 GB;操作系统为64 GB的Ubuntu16.04.7;程序实现软件为Python3.5;Cuda版本为10.0.130。同时安装深度学习框架Pytorch 1.6.0和Opencv4.4等第三方库。

3.2 数据集

本文使用的数据集来自Kaggle钢铁缺陷检测比赛,数据由谢韦尔钢铁公司(Severstal)提供。钢铁缺陷共分为4类:划痕、埋渣、皮鳞、氧化,如图3所示。使用其中9175张图片作为训练数据集,另外297张图片作为测试数据集,原始图像像素大小为1600×256。训练数据集的缺陷分类情况如表2所示,皮麟的占比高达71.85%,数据集各个类别之间存在失衡。

表2 训练数据集缺陷分布情况(张)

图3 4类缺陷分割示例图

3.3 模型训练与结果分析

3.3.1 改进的Res-UNet算法实验

本文训练了UNet,Res-UNet和改进的Res-UNet等10个网络模型,并进行了4个对比试验。训练集和验证集的比例为8:2,初始学习率为5e-4,选择Adam优化算法,批大小为16。每个网络的训练周期不同,是为了保证网络收敛的情况下其分类、分割能力最优。

使用Dice系数评价模型分割能力,一般认为其值大于0.7则表示预测区域和真实区域的重复度高,分割效果良好。Dice系数在评价图像相似性时,位置的差异比图像大小的差异对其值的影响更大。同时使用缺陷识别准确率 acc作为评价模型区分有无缺陷能力的指标,计算公式如式(7)。其中, n umsame表示真实有缺陷且预测有缺陷和真实无缺陷且预测无缺陷的图片数量和,n umdif表示真实有缺陷但预测无缺陷和真实无缺陷但预测有缺陷的图片数量和

3.3.2 结果对比分析

为了证明改进算法的先进性,使用AlexNet,DenseNet, Xception, Mask RCNN网络进行对比试验。相比于用ResNet作为编码网络的Res-UNet,UNet网络收敛速度慢,漏检、错检情况严重,经常把划痕预测成皮麟。AlexNet和DenseNet两个分类网络的分类准确率远不如改进后的Res-UNet。经过可视化分析发现Xception网络对图片是否包含缺陷的判断不准确,对缺陷位置的预测不准确;Mask RCNN网络存在分割不完整、不连续的情况。4组对比试验证明了本文改进算法对钢铁缺陷数据集分类、分割的有效性。

增加Res-UNet的特征提取网络层数,网络分割能力略微提升,对于缺陷边缘的检测更准确,但是收敛速度变慢,网络训练时间增加,仍无法分割出埋渣。增强训练数据集和修改损失函数可有效提升模型性能,相比于原Res18-UNet网络,Dice系数分别提高0.93%和2.46%,类间不平衡情况有所缓解,缺陷识别准确率分别提高0.67%和7.07%,错检和漏检率下降,能够分割出训练样本极少的埋渣,网络泛化能力有所提升。给特征提取模块加入稠密结构,Dice系数提高了0.74%,虽然存在对埋渣的漏检情况,但检测结果的边缘更贴近实际缺陷轮廓。

进一步采用组合优化策略提升网络性能,在Res18-UNet网络基础上增强训练数据集和使用BDloss损失函数与稠密连接,29个epoch后网络基本收敛,收敛速度快,训练时间最短。相较于Res18-UNet,Dice系数提升了3.79%,识别准确率提高了8.42%,能有效对样本数量少的埋渣进行分割,证明本文所提改进算法效果良好。

在Res50-UNet网络基础上增强训练数据集和使用BDloss损失函数,55个epoch后网络基本收敛,Dice系数和准确率相比于基础Res50-UNet网络分别提升了3.46%和9.10%。但是网络训练时间是相同改进下Res18-UNet网络的两倍多,消耗更多GPU资源,而且分类和分割效果相比于相同改进下Res18-UNet网络也没有非常大的提升,增加网络层数策略虽有效,但性价比较低。

由于皮麟的样本最多,Res-UNet网络对皮麟的分割效果最好,划痕和氧化与背景的差异较大,特征明显,网络对其分割效果较好。埋渣较为细小,纹理、颜色等特征和背景差别小,在某些训练集图像中甚至肉眼难辨,且样本数量少,导致网络分割效果差甚至经常漏检。

3.3.3 预测结果可视化

将各个网络的分割结果与原标注结果进行可视化对比,样例中只展示皮麟、氧化和一图两缺陷的情况,截取缺陷部分展示如图4,图示依次为真实标签、表3中各网络(M1~M10, M14)的分割结果。UNet网络的分割结果不连续,点和碎片式的情况比较严重。Res18-UNet和Res50-UNet的分割结果较为理想,但是易被噪声干扰影响,如皮麟样例中M2图和氧化样例中M3图,导致分割结果完整度下降。训练集数据增强策略可增强网络鲁棒性,使网络关注到细小缺陷。特征提取模块加入稠密连接后,对细小缺陷的识别度有所提升,对缺陷边缘的描述更加准确,缺陷部分的识别更完整,如一图两缺陷样例中M10图。BDloss结合训练集增强策略和稠密连接策略时,模型的分割结果最接近原标注图,如所有样例中的M10图,分割完整度和精准度高,小缺陷检测能力强。在分割网络的对比实验中,Xception未检测到样例中的缺陷,Mask RCNN存在部分缺陷漏检、分割不完整、有小孔洞的问题。二者的分割效果均不如改进后的Res-UNet网络。

表3 各网络训练超参数及实验结果

图4 缺陷真实标签和各网络预测结果示例图

4 结束语

针对钢铁表面缺陷分割问题,本文提出一种改进的Res-UNet算法,融合特征提取模块稠密连接策略、数据集增强策略、增加网络层数策略和优化损失函数策略,改进后算法的分割精度和检测效果都有所提高。稠密连接策略增加了浅层特征的应用深度,数据集增强策略保证网络学习更多的样本特征,增加特征提取网络的层数能使网络学习缺陷的细节和边缘,本文所提BDloss增加了正样本的比重,有效解决了数据集类内不平衡的问题。最后进行了4个对比试验,无论是分类准确率还是分割精准度,本文所提算法的表现都更胜一筹,说明该算法具有进步性和先进性。

最终,采用组合优化算法将网络的Dice系数从0.7551提升至0.7930,识别准确率提升了近9%,有效缩短了网络训练时间,使分割结果更接近实际缺陷位置,证明了深度学习在钢铁表面缺陷检测和实际应用中的价值。在此基础上,未来工作将引入注意力机制和Transformer结构,扩大感受野以学习缺陷的边缘特征,优化网络的译码模块,增强网络对埋渣的检测和分割能力,进一步提升网络对各类缺陷的分类准确度和分割精度。

猜你喜欢
样本特征模块
根据方程特征选解法
28通道收发处理模块设计
“选修3—3”模块的复习备考
离散型随机变量的分布列与数字特征
用样本估计总体复习点拨
不忠诚的四个特征
规划·样本
随机微分方程的样本Lyapunov二次型估计
集成水空中冷器的进气模块
“官员写作”的四个样本