基于优化Faster R-CNN 算法的金属板材表面缺陷检测

2024-01-16 14:09孔思曼周晨阳王家华孙践知
制造技术与机床 2024年1期
关键词:候选框板材特征提取

孔思曼 周晨阳 王家华 李 林 孙践知

(北京工商大学计算机学院,北京 100048)

金属板材在工业生产和日常生活中用途广泛,涉及的应用领域较多,包括但不限于建筑、航空航天、机械、汽车和船舶等领域,是很多产品的基础材料。但在实际生产过程中,生产设备的不同、生产环境的变化以及其他因素的影响会导致出现各种各样的表面缺陷,如凹陷、裂纹、气泡和划痕等。这些缺陷会降低金属板材的质量和可靠性,甚至对金属板材的使用造成安全隐患。因此,及时准确地检测和识别金属板材表面缺陷是非常重要的。

传统的金属板材表面缺陷检测方法主要依靠人工检测[1]或基于一些简单的图像处理算法,这些方法存在人工误差、适用范围有限、检测速度和精度低等缺陷。近年来,计算机技术的快速进步极大地推动了基于卷积神经网络(convolutional neural network,CNN)的目标检测算法的发展,并带来了该领域的发展热潮。目前出现的目标检测算法主要划分为两大类,一类是以SSD[2]、YOLO[3]、Retinanet[4]、CornerNet[5]、CenterNet[6]为代表的单阶段算法,另一类是以R-CNN[7]、Fast R-CNN[8]、Faster R-CNN[9]、Mask R-CNN[10],Cascade R-CNN[11]为代表的两阶段算法。其中,单阶段算法中的YOLO 是一种端到端检测算法,它将候选区和目标分类合二为一,采用一个单独的CNN 模型进行目标检测,虽然提升了检测速度,但是检测的准确性不是很高;而两阶段算法中的Faster R-CNN 在准确性方面表现良好,目前已在多个领域广泛应用。祝文韬等[12]对Faster RCNN 算法中的RoI Pooling 方法进行了改进和优化,采用双线性插值法来解决原先存在的位置失配问题,并在飞机目标检测场景上取得了显著成效。杜芸彦等[13]针对大规模数据获取难、标注难等问题,提出了一种基于Faster R-CNN 的少样本目标检测算法(CA-FSOD),在目标类别仅有少量标注样本的情况下,对目标样本进行检测。Cai J 等[14]开发了一种基于Faster R-CNN 的创新方法,专门用于在水面环境中检测无人船障碍物。此方法在Faster R-CNN中添加了膨胀卷积和群卷积的多尺度特征提取层,并改变了分类算法,提高了模型的鲁棒性和准确性。

考虑到金属板材应用的广泛性,对精度的要求高,本文提出一种基于优化Faster R-CNN 算法的金属板材表面缺陷检测方法。从特征提取网络和候选框定位两个方面对模型进行优化,通过提升模型特征提取能力以及候选框的定位准确性,实现金属板材表面缺陷的高质量检测。

1 Faster R-CNN 算法

2016 年,Ren S 等[9]提出了Faster R-CNN 算法,属于R-CNN 系列算法的第三代,基本结构如图1 所示。

图1 Faster R-CNN 结构图

Faster R-CNN 检测部分主要可以分为四个模块。

(1)特征提取网络。采用一组基本的卷积层、激活层和池化层,用于从输入图像中提取有用的特征图。

(2)区域建议网络。通过softmax 对预设的anchors 进行二分类,然后采用边框回归技术对锚点进行微调,从而得到更加精确的生成区域。

(3)兴趣区域池化层。将输入的特征图和生成的区域相结合,然后综合这些信息提取特定的感兴趣特征图,送入后面全连接网络做分类和回归。

(4)分类和回归。通过softmax 对图像进行分类,然后使用边框回归获得位置精确的检测框。

相比于Fast R-CNN,Faster R-CNN 引入了区域建议网络(region proposal network,RPN)用于提取候选区域,并将其有机地融入整体网络,提高了模型的检测精度和速度,是两阶段目标检测算法中的典型代表。

2 优化Faster R-CNN 模型

在表面缺陷检测领域,Faster R-CNN 也会出现精度不能满足实际生产需求的情况。为了提高检测精度,本文采用训练效果较好且被广泛应用的残差网络ResNet50[15]作为主干特征提取网络,替代模型中原有的VGG16[16],然后从特征提取网络和候选框定位两个方面对Faster R-CNN 模型进行优化。优化后的Faster R-CNN 网络结构如图2 所示。

图2 优化后的Faster R-CNN 网络结构图

2.1 改进特征提取网络

针对原有Faster R-CNN 模型只采用具有较少信息的顶层特征作预测,并且常规矩形结构的卷积核对不规则形状缺陷的特征学习能力较弱的情况,本文提出在模型特征提取网络部分融合特征金字塔网络及可变形卷积层来提高网络的检测精度。

2.1.1 Feature Pyramid Network

特征金字塔网络(feature pyramid network,FPN)[17]是一种用于对象检测和语义分割的图像特征提取方法,包含自底向上的过程、自顶向下和侧向连接的融合过程两个部分。

在目标检测方法中,较浅层的特征虽然目标定位相对精确,但语义信息相对少;而深层的特征虽然目标定位相对粗糙,但语义信息相对多。另外,在通过ResNet50 获取特征后,图像也将进行压缩,从而导致特征候选框较小,在一定程度上降低了模型对特征的判别功能。为了克服该现象,本文在Faster R-CNN 基础上融合FPN 对特征进行提取,具体结构如图3 所示。

图3 ResNet50 与FPN 融合图

首先通过ResNet50 获得不同层上的特征图C1~C5,然后对顶层特征图进行1×1 卷积得到特征图M5,将卷积后的C4 与采样后的M5 相加得到M4。以此类推,生成特征图M3 和M2。M2~M4融合了不同特征层的特征信息,在保留细节的同时实现了高层语义。最后,对M2~M5 进行3×3 卷积,以此获得特征图P2~P5,并将其输入到RPN 和Fast R-CNN 网络中作为最终的特征提取结果进行训练。整个过程中,FPN 同时利用自底向上、自顶向下、横向连接的线路,将深层特征和浅层特征进行融合,使每层特征都得到较丰富的语义,增强了检测网络对于缺陷的检测能力。

2.1.2 Deformable ConvNets v2

传统的卷积核是常规的矩形形状,是它根据事先定义的滤波器大小,在目标图像上按照预先设定的矩形网格进行卷积操作,其形状和大小是固定的,无法处理非刚性的目标形变和旋转等情况。而可变形卷积网络(deformable convolutional networks,DCN)[18]则在传统卷积基础上引入了可变形采样机制,通过对卷积核中各个采样点的位置都增加一个偏移变量,使卷积核在一定程度上自适应地变形,从而更好地适应数据集中不规则的缺陷。

DCN 通过一个并行卷积分支计算骨干卷积核坐标的偏移,其实现的流程如图4 所示。通过一个作用在输入特征图的卷积操作得到一组卷积核偏移的预测结果,这个偏移特征图的尺寸和输入特征图保持相同。偏移特征图的通道数为2N,其中2 指每个偏移是(x,y)两个值,N为卷积核的像素个数。

图4 可变形卷积流程图

在DCN 中,使用∆Pn对特征图上的一点Pn进行扩充,其中{∆Pn|n=1,2,3,···,N},即图4 上侧的通过卷积操作预测的卷积核偏移值。此时可变形卷积的计算方式:

式中:Pn为整数,表示卷积输出的每个点相对于感受野上的每个点的偏移量;∆Pn表示每个点所增加的偏移量。这样,通过对每个采样点的位置增加偏移量,可变形卷积能够实现卷积核的自适应变形,从而更好地适应数据集中存在的不规则缺陷。

Deformable ConvNets v2(DCNv2)[19]是基于DCN 模块改进的一个版本,其改进点包括增加更多的可变形卷积层、让模型学习采样点的偏移及每个采样点的权重、使用R-CNN 对Faster R-CNN 进行知识蒸馏。DCNv2 的提出减少了DCN 中无关的干扰信息,提高了模型对不同几何变化的适应能力,其表达式为

在式(1)的基础上,DCNv2 为每个采样点添加了一个权重系数∆mk。其中∆Pk和∆mk分别为第k个位置的可学习偏移和调制标量。调制标量∆mk位于范围[0,1]内,而∆Pk是范围不受约束的实数。因为加入了一个新的要学习的参数,所以图4 的预测结果的通道数变成了3N。

本文所提出的模型将Faster R-CNN 的主干网络ResNet50 所生成的Conv3、Conv4 和Conv5 三个卷积块的普通卷积层替换为DCNv2 模块,通过增强提取模块中空间采样位置的能力来增加网络对缺陷形状的学习,便于检测一些不规则形状的缺陷。

2.2 候选框精准定位

在本文的实验数据集中,Faster R-CNN 算法中原始的anchor 生成方案并不适合,并且经过粗修后的RoIs 需要经过RoI Pooling 操作,此过程中出现的两次量化过程会导致候选框在原图和特征图之间映射的过程中位置发生明显的偏差。针对以上问题,本文选择采用在torchvision 中提供的MultiScale-RoIAlign 替代RoI Pooling 操作获取更精准的定位,同时采用K-means++聚类算法来获取合适的Anchor比例。

2.2.1 RoI Align

RoI Pooling 是对输入的特征图进行量化操作,在操作过程中,一般会进行两次量化,一是把侯选区映射到特征图中固定网格上,然后通过向下取整的方式将浮点型坐标变成矩阵坐标值;二是对所获得的区域进行平均分割时会出现浮点单元坐标量化取整的情况。这两次量化操作会造成信息损失,特别是对于较小的感兴趣区域。

为了解决这个问题,一些研究人员[20-22]采用RoI Align[10]替换已有的RoI Pooling。RoI Pooling 和RoI Align 的过程示意如图5 所示。

图5 RoI Pooling 和RoI Align 的过程示意图

相较于Rol Pooling,Rol Align 取消了量化操作,用双线性插值的方法将两次量化的过程转化为一个连续的操作,可避免位置偏差问题的出现,更好地保留了感兴趣区域的位置信息和特征信息。

本文采用torchvision 中提供的MultiScaleRoIAlign替换原有的RoI Pooling。MultiScaleRoIAlign 可以在多个尺度的特征图中进行RoI Align。具体来说,对于每个感兴趣区域,MultiScaleRoIAlign 会根据感兴趣区域的大小在多个尺度的特征图上分别计算感兴趣区域的坐标,然后在每个尺度的特征图上划出一个大小与感兴趣区域相适应的的区域,最后对这些区域进行池化操作,从而会得到一个尺寸固定的特征图。因此,MultiScaleRoIAlign 能够更好地处理不同大小的感兴趣区域,并且可以从多个尺度的特征图中获得更丰富的特征信息。

2.2.2 K-means++

在Faster R-CNN 中,RPN 网络的候选框设定是固定的,包括了预定义的3 种尺度{322, 642, 1282}和3 种宽高比{1∶2, 1∶1, 2∶1}。然而,这种设定无法根据具体图像中缺陷的大小进行自适应调整,导致生成的候选框与缺陷大小相差较大,并且候选框之间的重叠较多。为了解决这个问题,本文采用聚类算法对RPN 网络进行改进,使候选框的选取更适合实验数据。

考虑到K-means 算法[23]聚类中心的个数需要预先人工调试选定,且可能出现局部最优解,本文采用改进版的K-means++聚类算法[24]进行锚点框尺寸优化。该算法通过一定的概率分布来初始化聚类中心,有效避免了聚类结果出现局部最优解。Kmeans++算法具体步骤如下:

(1)在数据集中随机选择一个样本作为第一个初始聚类中心。

(2)筛选出其余的聚类中心。首先计算剩余样本点与当前聚类中心之间的距离,并选择距离最短的样本点成为最新的聚类中心;然后按照距离大则被选取概率大的原则,从剩余样本点中选择下一个聚类中心;重复上述步骤,直到选出预先设定的k个聚类中心为止。

(3)对k个初始的聚类中心利用K-means 算法进行迭代,直到收敛,得到最终的聚类中心。

改进后的RPN 网络利用Annotations 中的.xml文件,将其中所有类别缺陷对应的坐标信息提取出来,并计算前景目标的大小。然后,将获取的所有长宽尺寸组成向量,作为K-means++聚类模型的输入。为了适应数据集的实际情况,设置合适的聚类中心数量,并开始执行聚类运算。本文将聚类中心k设置为3,NEU-DET 数据集[25]聚类后的结果分布如图6 所示。根据聚类结果设置合适的候选框规模,最终的锚大小设置为{32,64,128,256,512},纵横比设置为{0.5,1.3,3.0}。

图6 NEU-DET 数据集聚类结果图

通过K-means++聚类算法设计的anchors 生成方案更适用于金属板材表面缺陷数据集,能够减少背景等无关信息的干扰,加快缺陷检测网络的收敛,实现更精准的缺陷目标定位。

3 实验与分析

本实验采用ubuntu20.04 操作系统,CPU 为12 vCPU Intel(R)Xeon(R)Platinum 8255C CPU @ 2.50 GHz,GPU 为RTX 3090,Pytorch 版本为1.11.0,Python 版本为3.8,CUDA 版本为11.3。网络优化器选择SGD 优化器,初始学习速率设置为0.01,动量参数为0.9,权重衰减因子为0.000 5,batch size 设置为8,Epoch 设置为50 次。

3.1 数据集

本实验选用了来源于东北大学带钢表面缺陷数据集中的NEU-DET 部分[25]。数据集中包含六类金属缺陷,如图7 所示,分别是细裂纹(crazing),即多道狭长且细小的黑色裂缝;表面杂质(inclusion),即形状为点状、块状或者线条状的非金属夹杂物;斑点(patches),即不规则或像小岛形状的黑色或者褐色的块状物;麻点(pitted_surface),即大面积的凹形黑色小点;轧入氧化皮(rolled_in_scale),即点状、条状或鱼鳞状的黑色斑点;划痕(scratches),即直且细、深浅不一的沟槽。每类金属缺陷包含300 张图片,共1 800 张图片,每张图片的原始分辨率为200×200,具体分布情况如图7 所示。为满足实验需求,将数据按照8∶2 的比例分别作为训练集和测试集。

图7 NEU-DET 数据集

3.2 模型评估方法

在目标检测中,常用的评价模型泛化能力的检测指标有精确率、召回率、平均精确度(AP)和平均AP 值(mAP)。

式中:C为检测类别数;P(Precision)为精确率,R(Recall)为召回率,两者计算公式为

式(5)和式(6)中,TP表示成功预测的正例,FP表示被误判为正样本的负例,FN表示被误判为负样本的正例。而正负样本按照IoU的阈值来划分,当IoU>0.7 时为正样本,否则为负样本。

在工业背景下,目标检测算法中还有一个关键的评价指标就是检测速度,即每秒内可以检测出的帧数或图片数量(frames per second,FPS)。并且,FPS也会受到硬件资源、目标数量和复杂性等因素影响。

3.3 实验结果对比

使用不同的主干网络作为Faster R-CNN 的特征提取部分对缺陷检测精度进行研究。具体地,分别采用了VGG16、ResNet18、ResNet50 和MobileNetV2作为主干网络进行模型训练。通过这样的实验设计,旨在探究不同的特征提取网络对缺陷检测性能的影响。实验结果见表1,可以看出,相比于模型原有的VGG16 网络,使用ResNet50 和MobileNetV2 网络训练得到的mAP值相对较高。二者虽相差不大,但MobileNetV2 权重文件偏大,当训练次数过大时对设备存储量要求高;并且ResNet50 的特征表示能力和泛化能力较强,可以很容易地应对各种复杂场景,也有较多预训练的ResNet 模型可供选择,便于迁移学习,从而加速特定任务的训练。因此,本文选用ResNet50 作为特征提取网络。

表1 不同特征提取网络的检测结果对比

为了评估优化后的Faster R-CNN 模型在NEUDET 数据集上的缺陷检测性能,将本文提出的模型与SSD、YOLOv5s 和YOLOv7 几种经典算法进行比较,采用mAP和FPS来评估模型检测性能,实验结果见表2,可以发现本文模型的mAP值高于其他模型。同时,本文模型每秒内处理图片数量的能力达到29 帧/s,优于原始模型。由于是两阶段检测算法,在检测速度上稍有不足,但工业应用场景的高精度需求使得本文模型具有良好的实用性。

表2 不同模型的检测结果对比

同时,为了清晰直观地观察改进后的Faster RCNN 模型对于金属板材表面缺陷的检测性能,分别用改进后的最终模型和原始模型对6 类表面缺陷进行了检测。如图8 所示,绘制出各类别缺陷平均精度折线图。改进后的Faster R-CNN 模型相较于原始模型在6 类表面缺陷上的检测精度都有不同程度的提高,可见改进后的模型具有更好的检测效果。

图8 各类别缺陷平均精度折线图

为进一步验证本文对Faster R-CNN 模型改进的有效性,在金属板材表面缺陷数据集上进行了消融实验。首先搭建了基于ResNet50 的Faster R-CNN模型,然后在此基础上,逐步添加FPN、DCNv2、RoI Align、K-means++聚类算法分别进行实验。实验结果见表3,模型改进前后loss 值的变化情况如图9 所示。

表3 消融实验结果

图9 模型改进前后loss 值变化情况

由表3 可知,改进后的Faster R-CNN 模型的Recall和mAP相较于原始模型均有提升,其中,mAP值提升了7.7%。6 种缺陷类型的AP值分别提升了11%、4.4%、9.7%、9.2%、11.4%、0.7%。同时,改进后的模型在训练过程中的loss 值相比原始模型降低了,这是因为FPN 能够同时利用自底向上、自顶向下、横向连接的线路,使每层特征都得到较丰富的语义,提高了对缺陷特征的学习能力;DCNv2 为卷积核中每个采样点增加偏移变量和权重,使卷积核自适应地变形以适应数据集中不规则的缺陷;RoI Align 和K-means++算法通过优化锚点生成方案,降低了候选框的定位误差。最终改进的Faster R-CNN 模型与原始模型对金属板材表面缺陷的检测效果对比如图10 所示。

图10 金属板材表面缺陷的检测效果图

4 结语

对于工业生产中常见的金属板材表面缺陷检测效果不理想的情况,本文提出了一种基于优化Faster R-CNN 算法的金属板材表面缺陷检测方法。通过融合特征金字塔形成多尺度的特征融合模型,增强了对金属板材表面缺陷的检测能力,尤其是小缺陷的检测;采用可变形卷积替换主干网络的普通卷积层,提高了模型对不规则缺陷的学习能力;采用RoI Align 替代了原有的RoI Pooling,消除实验中产生的量化误差;引入K-means++算法得到针对金属板材表面缺陷数据的特定anchors,实现更精准的定位。实验结果表明,改进后的Faster R-CNN 模型在金属板材表面缺陷数据集上的mAP值从71%提升到了78.7%,相较于原始网络模型及其他目标检测算法,改进后的模型检测效果更佳,为之后的金属板材表面缺陷检测提供了可参考价值。

猜你喜欢
候选框板材特征提取
重定位非极大值抑制算法
面向自然场景文本检测的改进NMS算法
基于Soft-NMS的候选框去冗余加速器设计*
基于Daubechies(dbN)的飞行器音频特征提取
一种针对特定目标的提议算法
Bagging RCSP脑电特征提取算法
板材满足设计
到2022年北美复合板材市场将有强劲增长
板材利用率提高之研究
基于MED和循环域解调的多故障特征提取