基于改进深度网络的钢材表面缺陷检测
2022-10-01雷景生
刘 琪,雷景生
(上海电力大学 计算机科学与技术学院,上海 201300)
0 引 言
在钢材工业的生产过程中,由于生产机器和生产流程等因素,会造成钢材表面存在斑块、裂纹、划痕等缺陷[1,2]。这些缺陷不仅会影响带钢的抗腐蚀性和耐磨性,严重时甚至会导致安全事故的发生。因此,研究一种能够准确、高效检测钢材表面缺陷的算法具有重要实际意义。
近几年,随着深度学习在各领域的应用,掀起了基于深度学习的目标检测的热潮[3,4]。现有的基于深度学习的目标检测方法主要分为两类:一类是以Fast RCNN[5]、Faster RCNN[6]、Mask RCNN[7]为代表的基于候选框的two-stage目标检测算法,该类算法检测精度高但检测速度低;另一类是以SSD[8]、YOLO[9]为代表的基于端到端的one-stage目标检测算法[10],该类算法特点是高速度、低精度[11]。Faster RCNN使用RPN网络获取候选框,在PASCAL VOC2007数据集上的平均检测精度达到73.2%[12],是在检测精度和检测速度上较为平衡的最优检测算法之一。因此,选取Faster RCNN作为钢材表面缺陷检测的基础网络。
但是,基于Faster RCNN的钢材表面缺陷检测存在小缺陷难以检测、特征提取过程中小缺陷信息丢失等问题。为了更精准、快速检测钢材,本文在Faster RCNN算法的基础上做出以下几点改进:①使用双路径网络进行特征提取。②加入多尺度特征融合模块,融合高低层特征来提升小目标检测效果。③使用CIoU边框回归损失函数,进一步提高检测的准确性。
1 Faster RCNN算法描述
Faster RCNN算法的核心思想在于摒弃了耗时的选择性搜索算法,使用区域建议网络(RPN)自动获取目标候选框。其模型结构如图1所示,主要包含特征提取、RPN、预测网络3个部分。
图1 Faster RCNN算法流程
RPN的引入,真正将two-stage目标检测算法的整个流程融入到神经网络中。其结构如图2所示,将经过特征提取后的特征图输入到RPN中,之后使用一个3×3的滑动窗口遍历整个特征图,以该滑动窗口的中心像素点为锚点,按照不同尺寸和比例生成k个锚框。然后在分类层中使用2k个1×1的卷积核对256-d的低维向量进行分类,得到k个候选框是前景还是背景的概率。在回归层中使用k个1×1的卷积核对k个锚框进行位置回归,输出k个边界框的位置坐标。
图2 RPN网络结构
Faster RCNN在训练过程中的损失主要来源于分类损失和回归损失。如式(1)所示
(1)
(2)
Lreg表示回归损失,如式(3)所示
(3)
(4)
最后,将RPN网络产生的候选框输入到ROI Pooling层中下采样到固定尺寸,再输入到预测网络中进行缺陷类别的预测和缺陷定位。
2 Faster RCNN的改进
Faster RCNN算法使用ResNet101[13]网络提取特征,模型计算参数量大,且残差结构不利于发掘新特征。同时,Faster RCNN算法在特征提取过程中未考虑特征融合方式,仅通过自底向上的单路径方式提取特征,随着卷积网络层数的增多,这将导致特征信息的丢失。传统Faster RCNN算法使用Smooth L1作为边框回归损失函数,未将交并比考虑到损失计算中,不利于边框回归的准确性。
针对传统Faster RCNN算法对小缺陷检测精度不够高以及随着卷积网络的加深位置信息丢失等问题,对Faster RCNN算法做出以下几点改进:①使用融合了密集连接结构和残差结构的双路径网络作为特征提取网络,降低算法的计算复杂度和模型复杂度。②使用改进PANet模块对深层网络和浅层网络进行多尺度特征融合,解决随着卷积网络层数的增加引起的特征信息丢失问题,提升对小缺陷的检测效果。③使用CIoU损失函数替换原算法中的Smooth L1损失函数,将交并比损失考虑到边框回归损失函数中,进一步提高检测模型的准确性。改进后的算法整体流程如图3所示。
图3 改进算法流程
2.1 双路径特征提取网络(DPN)
随着卷积神经网络层数的不断加深,会出现梯度爆炸或梯度弥散等问题。ResNet引入残差结构,将输入与卷积的输出相加,降低特征冗余,侧重于再利用已有特征,但难以利用高层特征再发掘底层特征,导致语义信息的丢失。DenseNet[14]网络引入密集连接结构,将输入和输出的通道进行拼接,侧重于再发掘浅层特征,但会产生特征冗余。双路径网络[15]融合了ResNet和DenseNet的核心部分,结合了残差结构和密集连接结构的优势,该模型内部采用拓扑结构将ResNet和DenseNet网络进行连接,实现彼此特征的共享,为ResNet和DenseNet网络建立了形式统一的数学表达。DPN网络采用双通道连接结构,在解决梯度消失问题的同时又能够再发掘浅层特征,同时提高了训练参数的利用率,在充分利用特征的基础上有效降低了模型复杂度和计算复杂度。
DPN网络由多个模块化的block堆叠而成,每个模块包含2个1×1卷积和1个3×3卷积,其流程如图4所示,上一个block块的输出特征x先经过一个1×1卷积层,再通过一个3×3和1×1的卷积操作后,将输出分割为两个部分:第一部分输入到残差网络中与当前模块的输入进行逐像素相加;另一部分输入到密集连接网络中进行通道合并操作。将经过残差结构和密集连接结构两条路径的输出再进行相加运算,相加的结果作为下一个block模块的输入,以此循环下去,构成双路径特征提取网络。该网络既能重复利用已有特征,又能发掘出新的特征,同时减少了特征冗余,充分利用了ResNet网络和DenseNet网络的优势,从而实现了对图像特征的充分挖掘和提取。
图4 DPN网络结构
2.2 多尺度特征融合
在Faster RCNN算法中,由于浅层网络卷积操作少,因此图像的分辨率高、位置细节信息多,但包含的语义信息弱、噪声强。随着网络层数的加深、卷积操作的增多,深层网络特征具有更强的语义信息,但图像分辨率降低,对细节的感知能力也较差。特别是针对小缺陷,在深层神经网络中不仅丢失了位置信息,语义信息也比较模糊。因此如何将高低层特征进行融合是改善模型性能的重要手段。
特征金字塔网络[16](FPN)是增强卷积神经网络对图像特征信息输出表达的一种方法,旨在改进卷积神经网络特征提取方式,加入高低层特征融合结构,能够更好表达出具有较强语义信息的各个维度的图片特征。FPN在传统的自底向上的单路径卷积神经网络模型基础上增加了自顶向下路径,即增加了深层网络和浅层网络的特征融合方式,并通过横向连接的方式将自底向上和自顶向下的路径进行结合,如图5所示。将不同卷积层的特征图通过1×1卷积核后与自顶向下路径上的经过两倍上采样的特征图进行通道合并操作,将融合后的特征图通过3×3卷积来降低上采样带来的混叠影响。融合后的特征图包含较强的语义信息和丰富的位置信息以及较高的图像分辨率,能够提升对小缺陷的检测效果。
图5 FPN网络结构
然而信息传播路径过长会导致信息传递不够充分。虽然在传播过程中图像的语义信息得到增强,但位置细节信息丢失,同时对深层网络的特征图进行两倍上采样操作会削弱图像的语义信息。PANet[17]对特征金字塔网络进行了改进,在FPN的基础上增加了一条自底向上的增强路径,建立浅层网络到深层网络的信息传播路径,将底层网络的信息又传递到深层网络中去,从而在深层网络中保留浅层网络的特征,解决信息传播路径过长导致的信息传递不够充分的问题。将增强路径上的特征图通过3×3卷积后与FPN输出的不同路径的特征图进行相加,在不降低模型性能同时,减少特征信息的丢失。输出的特征图既包含更强的语义信息,又包含准确的位置信息。其结构如图6(a)所示。
为了更加充分地利用深层网络的语义信息和浅层网络的位置信息,提高检测模型的缺陷分类和定位能力。为此,在路径增强网络上进行了改进,在同一层级的输入与输出节点之间增加一条跨级连接路径,缩短深层特征和浅层特征的融合距离,如图6(b)所示,所有的融合路径都通过通道相加的运算方式进行特征图的融合,融合后的特征映射再经过一个3×3卷积核处理,得到新的特征图作为下一层网络的输入。在不增加参数等额外消耗的情况下实现了特征信息在不同层级网络输出之间的传递,多组对比实验结果表明该特征融合方式能够有效提升带钢缺陷的检测效果。
图6 多尺度特征融合结构
2.3 CIoU边框回归损失函数
原Faster RCNN算法中使用Smooth L1作为边框回归损失函数,因其能从两个方面限制梯度值,具有较强的鲁棒性。Smooth L1损失函数通过计算检测框和实际边框的位置坐标的误差之和得到最终的边框回归损失。但实际使用交并比(IoU)作为评价检测框的标准,具有相同Smooth L1 loss值的一对检测框IoU值可能差异较大。如图7所示,图7(a)和图7(b)中的预测边框和实际边框的坐标误差相同,但边框重叠度不同,即交并比差异很大。因此Smooth L1作为边框回归损失函数和边框评价指标的关联度不大,不利于边框回归的准确性。
图7 Smooth L1损失和IoU损失对比
针对Smooth L1直接作为边框回归损失函数存在的问题,为进一步提高缺陷定位的准确性,引入CIoU[18]损失函数,其计算方法如式(5)所示
(5)
式中:IoU为交并比,表示真实框和预测框相交部分与两个框集合的区域的比值,如式(6)所示。ρ代表预测框和真实框中心点之间的欧式距离,c代表预测框和真实框最小闭包区域的对角线长度。α是一个正的权衡参数,v是用来度量长宽比一致性的参数,其表达式如式(7)、式(8)所示
(6)
式中:B为预测框,Bgt为真实框
(7)
(8)
其中,wgt、hgt为真实框的宽和高,w、h为预测框的宽和高。
CIoU边框回归损失函数综合考虑预测框和实际边框的重叠面积、高宽比和中心距离等度量标准,具有更快的收敛速度,同时克服了IoU为0时损失无法计算等问题,避免了在训练过程中损失值出现发散问题,使得边框能够准确、快速回归。
3 实验对比与结果分析
3.1 数据集
图8 NEU-DET数据集6种表面缺陷示例
3.2 实验环境
本文实验在基于PyTorch的深度学习框架、Python语言环境下进行编程。实验使用的硬件环境为Intel i5-7500处理器,采用TITIAN的GPU进行模型训练,内存为16 G,显存为12 G。实验的软件环境为Ubuntu操作系统,cuda9.0,anaconda3。
3.3 缺陷检测结果与分析
3.3.1 实验参数和评价指标
为验证本文提出的改进算法的正确性和有效性,对不同的改进策略进行多组对比实验。在训练过程中,实验参数的学习率设置为0.001、batch_size大小为128、权重衰减系数为0.0001、epoch为50轮。通过基于预训练模型的迁移学习方式进行模型训练,将在ImageNet大型数据集上预训练的权重迁移到新的网络中作为模型训练的初始化权重,大大缩短了模型训练的时间。本文采用平均精度均值(mAP)作为模型的评价指标,其计算方法如式(9)所示
(9)
式中:TP代表正样本被正确地划分为正样本的个数,FN代表正样本被错误地划分为负样本的个数,FP代表负样本被错误地划分为正样本的个数。而正负样本按照IoU的阈值来划分,根据实际边框和预测边框的交并比来判断是否成功预测为正样本,当IoU>0.7时为正样本,否则为负样本。因此召回率R表示正确地预测为正样本个数占所有预测为正样本的比例,准确率P表示正确地预测为正样本个数占所有正样本的比例。
3.3.2 不同的特征提取网络实验结果
为验证不同的特征提取网络对模型检测结果的影响,证明双路径网络对检测模型性能提升的有效性,该部分分别使用VGG16、ResNet、DenseNet、DPN网络作为Faster RCNN的主干网络进行模型训练。研究不同的特征提取网络对缺陷检测精度的影响,实验结果见表1。
表1 不同的特征提取网络检测结果对比
由表1的数据可知,使用残差网络或密集连接网络进行特征提取相较于VGG网路具有更好的检测结果,能够避免训练过程中出现梯度消失或梯度爆炸等问题,模型学习能力更强。结合了残差结构和密集连接结构的DPN网络具有最优的检测结果,训练过程中能够更好地利用图像特征,对缺陷的定位和分类更加准确,平均精度均值达到79.10%,相较于ResNet网络提升了1.52%。实验结果表明,DPN作为Faster RCNN模型的主干网络在NEU-DET数据集上具有更优的检测性能。
3.3.3 不同特征融合方式实验结果
特征融合是提升模型检测性能的重要方式,为验证特征融合的有效性以及不同特征融合方式对检测结果产生影响的大小。基于上一步对比实验结果,采用DPN作为特征提取网络,该部分分别使用FPN、PANet、改进PANet网络在Faster RCNN模型上进行特征融合对比实验,通过实验数据验证不同的特征融合方式对检测结果的影响,实验结果见表2。
表2 不同的特征融合方式检测结果对比
由表2数据可知,在Faster RCNN算法基础上,使用DPN作为特征提取网络,分别使用3种特征融合方式进行对比实验,在以平均精度均值作为模型评价指标时,使用改进PANet网络进行特征融合的检测结果的mAP值达到83.21%,比原PANet特征融合方式在mAP上提升1.10%,相较于FPN提升了2.84%,并相比于原算法中未使用特征融合方法在mAP上提升了4.11%。实验结果表明,使用DPN作为特征提取网络、改进PANet网络进行特征融合能够有效改善模型训练性能,提升模型的缺陷分类和定位的准确性。
3.3.4 边框回归损失函数实验对比结果
在前两步实验的基础上,以DPN作为特征提取网络、改进PANet进行多尺度特征融合,使用CIoU边框回归损失函数替代原算法中的Smooth L1损失函数,通过实验验证边框损失函数对检测结果的影响,实验结果见表3。
表3 不同的损失函数检测结果对比
由表3数据可知,在以DPN特征提取网络作为检测模型的骨干网络,以改进PANet特征融合网络作为Faster RCNN模型的基础训练策略,采用CIoU作为边框损失函数相较于原算法中的Smooth L1损失函数在NEU-DET数据集上的mAP值提升了1.39%。实验结果表明,CIoU损失函数能够使得边框准确回归,改善模型检测性能。
3.3.5 不同模型实验对比结果
由以上实验数据可知,使用DPN作为特征提取网络、改进PANet作为特征融合网络、CIoU作为边框回归损失函数的改进后的模型相较于原算法中使用ResNet101特征提取网络、未使用特征融合网络、使用Smooth L1作为边框回归损失函数在NEU-DET数据集上检测结果的平均精度均值从77.58%提升到84.59%。实验结果表明改进后的模型具有较优的检测效果。
为进一步验证改进Faster RCNN在NEU-DET数据集上的缺陷检测性能,将本文模型与目前主流目标检测算法进行实验对比,以NEU-DET缺陷检测数据集为基础,本部分在Faster RCNN、SSD、YOLO、本文模型上进行4组对比实验,采用平均精度均值来评估模型检测结果的好坏,实验结果见表4。
表4 不同模型的检测结果对比
由表4数据可知,本文使用的DPN特征提取网络、改进的PANet特征融合网络、CIoU边框回归损失函数能够有效地改善原Faster RCNN算法对钢材缺陷的检测性能,mAP值达到84.59%,高于实验中其它的目标检测算法,相较于原Faster RCNN算法在mAP上提升了7.01%,多种改进策略的加入使得本文模型相较于原模型在检测速度和检测精度上都有一定的提升。由于是两阶段检测算法,在检测速度上稍有不足,但工业应用场景的高精度需求使得本文模型具有良好的实用性。
基于改进Faster RCNN与传统的Faster RCNN模型在钢材缺陷数据集上训练过程的损失变化对比如图9所示。从图中可以明显看出,改进后的Faster RCNN检测模型相较于传统的Faster RCNN算法在训练过程中具有更快的收敛速度,并且loss值更低。在改进Faster RCNN算法的带钢缺陷检测结果的基础上,选取6类钢材缺陷图像各一张进行缺陷检测测试,检测结果如图10(a)~图10(f)所示,图中黑色矩形框为缺陷位置,标签为缺陷类别和精确度。从图中可以明显看出,提出的改进模型对不同尺度和类型的钢材表面缺陷具有较好的检测效果,不仅能准确识别出缺陷位置,且具有较高的类别检测精度。
图9 训练损失变化对比
图10 6类带钢缺陷检测结果
4 结束语
为提升热轧带钢表面缺陷检测的准确率,本文提出了一种改进的Faster RCNN模型,首先使用融合了ResNet和DenseNet核心思想的DPN网络进行特征提取,解决了原模型中ResNet作为特征提取网络难以再发掘新特征的问题。接着引入改进PANet模块进行多尺度特征融合,实现不同尺度特征的融合与再利用,使得输出的特征图具有更强的语义信息和位置信息。最后,将交并比损失考虑到边框回归损失函数中,使用CIoU替代原算法中的Smooth L1损失函数作为边框回归损失函数,从而改善了模型的检测效果,提升了缺陷检测速度和精度。通过多组对比实验验证了提出的改进策略的有效性和正确性。最后,基于改进的Faster RCNN算法在NEU-DET带钢缺陷检测数据集上进行实验,6类缺陷检测结果的平均精度均值高达84.59%。结果表明,改进模型能够满足钢材表面缺陷的检测需求,对提升钢材表面质量具有重要实际意义。