掌桥专利:专业的专利平台
掌桥专利
首页

一种基于改进Faster R-CNN算法的金属板材表面缺陷检测方法

文献发布时间:2024-01-17 01:27:33


一种基于改进Faster R-CNN算法的金属板材表面缺陷检测方法

技术领域

本发明涉及计算机视觉目标检测技术领域,具体涉及一种基于改进Faster R-CNN算法的金属板材表面缺陷检测方法。

背景技术

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

传统的金属板材表面缺陷检测方法主要依靠人工检测或基于一些简单的图像处理算法来进行,这些方法存在一定的缺陷。依靠人工检测会受到人的主观因素的影响,判断结果可能存在误差。传统的简单图像处理算法通常需要依赖于先验知识或特定场景的假设,这些方法在实际应用中的适用范围有限。并且传统方法无法处理复杂的表面缺陷,并且在检测速度、精度和可靠性等方面也存在较大的提升空间。

近年来,随着计算机技术与深度学习方法的迅速发展,基于卷积神经网络(CNN)的目标检测算法在精度与速度上取得了重大突破,开启了基于CNN的目标检测热潮,并在工业生产中得到广泛应用。基于CNN的目标检测流程大致为先提取图像的特征,再利用卷积神经网络进行目标的识别及定位。但由于真实的工业生产环境比较复杂,在检测过程中会出现缺陷样本较少导致网络学习能力不足,模型准确率低;特征提取不充分导致检测效果不理想;锚框设计不合理导致缺陷定位不准确等情况,最终难以满足实际生产需求。

发明内容

为了解决上述检测技术中的不足之处,本发明的目的在于提供一种基于改进Faster R-CNN算法的金属板材表面缺陷检测方法,可根据具体数据集实现端到端的训练,有效提升检测过程中特征信息的提取以及缺陷定位的准确性,从而提高检测精度。

为实现上述目的,本发明提供了一种基于改进Faster R-CNN算法的金属板材表面缺陷检测方法,具体包括以下步骤:

S1:获取金属板材表面缺陷图像样本,并对其进行数据预处理;

S2:基于Faster R-CNN目标检测模型,选取性能较优的骨干网络作为模型的特征提取网络;

S3:优化特征提取网络。基于已有的特征提取网络,融合特征金字塔网络FPN及可变形卷积网络DCNv2;

S4:候选框精准定位。采用RoIAlign池化替换原有的RoI Pooling,并采用K-means++算法改进锚点生成方案,降低候选框定位误差;

S5:模型训练;

S6:用训练好的模型对测试样本进行预测,输出金属板材表面缺陷的类别及对应的精度。

以上所述的步骤S1中,具体实现步骤为:

S11:从NEU-DET数据集中获取金属板材表面缺陷图像样本,并将数据集的样本规格化为200*200大小;

S12:选取部分图像样本进行水平垂直翻转以扩充数据;

S13:将扩充得到的图片和xml文件存放在对应的文件夹下;

S14:将数据集按照8:2的比例划分为训练集和验证集,生成对应的train.txt和val.txt。

以上所述的步骤S2中,选取训练效果较好且被广泛应用的的残差网络ResNet50作为Faster R-CNN目标检测模型中的特征提取网络,替代模型中原有的特征提取网络VGG16。ResNet50网络由49个卷积层和1个全连接层构成,残差结构组成了该网络的主体,每一个残差块由1*1、3*3和1*1的卷积操作组成,并加入了批量标准化(BN)每个残差块加入跳跃连接通路,整个ResNet50网络包含16个残差块。

以上所述的步骤S3中,具体实现步骤为:

S31:融合特征金字塔网络FPN。FPN包含两个部分,第一部分是自底向上的过程,第二部分是自顶向下和侧向连接的融合过程。自底向上的过程和普通的卷积神经网络没有区别,在FPN中,每个阶段对应了一个特征金字塔的级别,并且每个阶段的最后一层特征被选为对应FPN中相应级别的特征。自顶向下的过程通过上采样的方式将顶层的小特征图放大到上一个阶段的特征图一样的大小。侧向连接将上一层经过上采样后和当前层分辨率一致的特征通过相加的方法进行融合。

S32:融合可变形卷积网络DCNv2。具体改进方法为将ResNet50所生成的conv3、conv4和conv5三个卷积块的普通卷积层替换为DCNv2模块。可变形卷积网络DCNv2是在DCN的基础上为每个采样点添加了一个权重系数。计算公式如下:

式中,Δp

以上所述的步骤S4中,具体实现步骤为:

S41:引入RoIAlign减少池化过程中两次量化造成的误差。RoIAlign从RoIPooling局限性的源头上进行了改进,取消了量化操作,对于量化中产生的坐标为浮点数的像素,利用双线性插值计算其像素值。RoIAlign反向传播公式如下:

式中,d(.)表示两点之间的距离,Δh和Δw表示x

具体改进方法为采用torchvision中提供的MultiScaleRoIAlign替换原有的RoIPooling。

S42:引入K-means++算法获取大小合适的候选框。使用K-means++算法对当前数据集的训练集标注宽高数据进行聚类,选定一个聚类中心,计算出各个聚类中心的基础边长和宽高比,根据聚类结果设置合适的候选框规模。最终将Faster R-CNN中原始的RPN网络默认的候选框设定修改成锚大小为{32,64,128,256,512},纵横比为{0.5,1.3,3.0}。

以上所述的步骤S5中,模型训练的具体步骤为:

S51:网络参数初始化。具体操作为:利用ResNet50模型提取图像的特征信息;

S52:设置训练参数。具体操作为:网络的初始学习率设置为0.01,学习动量设置为0.9,权重衰减系数为0.0005,采用SGD优化器;

S53:加在训练所需数据;

S54:迭代训练;

S55:保存最优模型并输出训练过程中产生的loss图和mAP图。

以上所述的步骤S6中,调用步骤5中保存的最优模型对测试样本进行预测,输出训练过程中的金属板材表面缺陷的类别及对应的精度,并保存至对应的txt文件中。

与现有技术相比,本发明的有益效果是:

1.将原有的特征提取网络VGG16替换成残差网络ResNet50。残差网络容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题,具有较好的训练效果。

2.优化了特征提取网络。在模型特征提取网络部分融合了FPN及DCNv2。FPN利用自底向上、自顶向下、横向连接的线路,将深层的高语义特征与浅层特征图的细节特征相融合,使每层特征都得到较丰富的语义,增强了检测网络对于缺陷的特征提取能力;DCNv2通过增强提取模块中空间采样位置的能力来增加网络对缺陷形状的学习,便于检测一些不规则形状的缺陷。

3.候选框精准定位。采用感兴趣区域校准层RoIAlign代替现有Faster RCNN网络中的感兴趣区域池化层RoI Pooling,取消了池化过程中的两次量化,解决了区域不匹配问题;采用K-means++聚类算法进行锚点框尺寸优化,实现更精准的缺陷目标定位。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。

图1为本发明实施例中改进后Faster R-CNN模型的网络结构图;

图2为本发明实施例的金属板材缺陷类型图;

图3为本发明实施例中特征金字塔网络的特征融合模块图;

图4为本发明实施例中可变形卷积网络的流程图;

图5为本发明实施例中K-means++聚类算法聚类结果图;

图6为最终改进的Faster R-CNN模型对金属板材表面缺陷的检测效果图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

实施例:一种基于改进Faster R-CNN算法的金属板材表面缺陷检测方法,改进后Faster R-CNN模型的网络结构图如图1所示,其步骤如下:

S1:金属板材表面缺陷数据集的分析与处理。

所述步骤S1具体包括:

S11:从东北大学采集的NEU-DET公开数据库中获取金属板材表面缺陷图像样本,该数据集包含细裂纹(crazing)、表面杂质(inclusion)、斑点(patches)、麻点(pitted_surface)、轧入氧化皮(rolled_in_scale)和划痕(scratches)六类金属缺陷,如图2所示。每类金属缺陷包含300张图片,共1800张图片,每张图片的原始分辨率为200*200;

S12:将部分图像样本进行水平垂直翻转以扩充数据,并将扩充得到的图片存放在JPEGImages文件夹下,对应的xml文件存放在Annotations文件夹下;

S13:将数据集按照8:2的比例划分为训练集和验证集,生成对应的train.txt和val.txt,并存放在ImageSets下的Main文件夹里。

S2:选取性能较优的残差网络ResNet50作为模型的特征提取网络,替代模型中原有的特征提取网络VGG16。

S3:优化特征提取网络。基于已有的特征提取网络,融合特征金字塔网络FPN及可变形卷积网络DCNv2。

所述步骤S3具体包括:

S31:融合特征金字塔网络FPN。FPN包含两个部分,第一部分是自底向上的过程,第二部分是自顶向下和侧向连接的融合过程。如图3所示。首先通过ResNet50获得不同层上的特征图C1-C5,然后对顶层特征图进行1*1卷积得到特征图M5,将卷积后的C4与采样后的M5相加得到M4。以此类推,生成特征图M3和M2。M2-M4融合了不同特征层的特征信息,在保留细节的同时实现了高层语义。最后,对M2-M5进行3*3卷积以此获得特征图P2、P3、P4和P5,并将其输入到RPN和Fast R-CNN网络中作为最终的特征提取结果进行训练。

S32:融合可变形卷积网络DCNv2。具体改进方法为将ResNet50所生成的conv3、conv4和conv5三个卷积块的普通卷积层替换为DCNv2模块。

可变形卷积网络DCN实现的流程如图4所示。首先,和正常的卷积神经网络一样,根据输入的图像,利用传统的卷积核提取特征图。然后,把得到的特征图作为输入,对特征图再施加一个卷积层以获得可变形卷积变形的偏移量。其中,偏移层是2N。最后,在训练的时候,用于生成输出特征的卷积核和用于生成偏移量的卷积核进行同步学习。其中偏移量的学习是利用插值算法,通过反向传播进行学习。计算公式如下:

式中,P

可变形卷积网络DCNv2是在DCN的基础上为每个采样点添加了一个权重系数。计算公式如下:

式中,Δp

S4:候选框精准定为。采用RoIAlign池化替换原有的RoI Pooling,并采用K-means++算法改进锚点生成方案,降低候选框定位误差。

所述步骤S4具体包括:

S41:引入RoIAlign解决池化过程中两次量化造成的区域不匹配问题。RoIAlign取消了量化操作,用双线性插值得到像素点上的浮点坐标图像数值,从而将两次量化的过程转化为一个连续的操作。RoIAlign反向传播公式如下:

式中,d(.)表示两点之间的距离,Δh和Δw表示x

具体改进方法为采用torchvision中提供的MultiScaleRoIAlign替换原有的RoIpooling。torchvision提供的MultiScaleRoIAlign可以在多个尺度的特征图中进行RoIAlign。具体来说,对于每个感兴趣区域,MultiScaleRoIAlign会根据感兴趣区域的大小在多个尺度的特征图上分别计算感兴趣区域的坐标,然后在每个尺度的特征图上划出一个大小适应感兴趣区域的区域,最后对这些区域进行池化操作,得到一个尺寸固定的特征图表示。

S42:引入K-means++算法获取大小合适的候选框。K-means++算法基本思路是,首先,在数据集中随机选择一个样本作为第一个初始聚类中心。然后,选择出其余的聚类中心。计算数据集中的每一个样本与已经初始化的聚类中心之间的距离,并选择其中最短的距离;以概率选择距离最大的样本作为新的聚类中心;重复上述过程,直到k个聚类中心都被确定。最后,对k个初始的聚类中心,利用K-means算法计算出最终的聚类中心。

具体方法为,通过读取Annotations中的xml文件,并将xml文件中所有类别缺陷对应的坐标提取出来并计算前景目标的大小,将获取的所有宽高制作成向量作为K-means++聚类模型的输入,根据数据集实际情况设置聚类中心的数量为3,并开始进行聚类运算,计算出各个聚类中心的基础边长和宽高比。聚类结果如图5所示。最终根据聚类结果将FasterR-CNN中原始的RPN网络默认的候选框设定修改成锚大小为{32,64,128,256,512},纵横比为{0.5,1.3,3.0}。

S5:模型训练。环境配置为PyTorch 1.11.0、Python 3.8、Cuda 11.3。在训练开始阶段,主干网络加载ImageNet预训练权重,并冻结参数。网络优化器选择SGD优化器,初始学习速率设置为0.01,动量参数为0.9,权重衰减因子为0.0005,batch size设置为16,Epoch设置为50次。每迭代一个Epoch后保存一次模型权重,并记录对应的检测精度mAP,取mAP最高的为检测权重。本实施例中采用的mAP计算公式如下:

式中,TP代表正样本被正确检测的数量,FP代表负样本被检测为正样本的数量,FN代表正样本没被检测为负样本的数量。而正负样本按照IoU的阈值来划分,根据实际边框和预测边框的交并比来判断是否成功预测为正样本,当IoU>0.7时为正样本,否则为负样本。P是精确率,R是召回率,C为检测类别数。

S6:调用步骤5中保存的最优模型对测试样本进行预测,输出训练过程中的金属板材表面缺陷的类别和对应的精度,并保存至对应的txt文件中。

采用消融实验法则,在NEU-DET数据集上进行实验:情况1是采用Faster R-CNN原始模型,情况2是将主干网络替换成ReaNet50,情况3是在情况2的基础上添加FPN,情况4是在情况3的基础上添加DCNv2,情况5是在情况4基础上使用RoIAlign,情况6是在情况5基础上引入K-means++聚类算法。上述实验结果如表1所示。

表1改进Faster R-CNN算法的消融实验结果

从上表可知,改进后的Faster R-CNN算法的平均检测精确度mAP为78.4%,与Faster R-CNN原始模型相比提高了10.9%。并且,每个模块的添加对相应种类缺陷的检测精度都有提升。最终改进的Faster R-CNN模型对金属板材表面缺陷的检测效果如图6所示。

因此,本发明采用了上述一种基于改进Faster R-CNN算法的金属板材表面缺陷检测方法,可根据训练数据集,实现端到端的检测,对金属板材表面缺陷进行检测,可以提升检测精度。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,除上述实施例外,本发明还可以由其他实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围内。

技术分类

06120116220057