改进的Faster-RCNN在焊缝缺陷检测中的应用*
2021-12-29唐茂俊黄海松张松松范青松
唐茂俊,黄海松,张松松,范青松
(贵州大学现代制造技术教育部重点实验室,贵阳 550025)
0 引言
随着我国工业化程度的不断提高,焊接技术[1]广泛应用于船舶运输、石油产业、国防科工和装备制造等各个关键领域。焊缝表面成形是评判焊接质量的重要指标,在焊接时,焊接部件受生产设备和生产工艺的影响可能会出现咬边、烧穿、弧坑、成型不良等缺陷[2]。为了保证焊接件产品质量,需对焊缝进行高效、精准的缺陷检测。在焊缝表面缺陷检测中,最原始的检测方法是人工检测,但是由于检测效率低,难以满足现代化生产需求。为此人们采用无损检测技术,实现焊缝表面缺陷的检测[3]。
在深度学习领域,焦敬品等[4]优选出 8 种表征缺陷的参数,并将BP神经网络应用到焊缝缺陷的自动识别中;谷静等[5]改进模型生成网络,优化锚点长宽比来改进Faster-RCNN,对于小目标取得较好的检测精度;李尚仁等[6]通过改进的Grab Cut算法解决了背景分割难题,实现了焊缝下榻缺陷的快速检测;王婧[7]使用了改进后的径向基函数神经网络,实现对直线型与T字型焊缝缺陷类型的识别;顾超越等[8]提出了改进 Faster-RCNN 算法对无人机巡检架空线路销钉进行缺陷检测。但是,采用深度学习方法对焊缝缺陷检测仍面对精度低下,速度缓慢等问题。
本文针对上述问题提出改进Faster-RCNN检测模型,利用K-means算法优化锚框来提高目标框定位准确性,引入FPN多尺度检测增加强空间信息与强语义信息,提高精度,引入DCR解耦分类细化结构进行分类细化以提高精度。实验对比验证了模型的有效性。
1 图像采集与处理
为了识别焊缝缺陷,需要得到可用于神经网络训练的图像数据,以建立图像数据集。本文实验选用电荷耦合器件CCD相机采集氩弧焊焊接产品上缺陷样本,共拍摄300幅焊缝图像。在训练深度学习模型时,为了提高检测精度,提高鲁棒性,本研究采用图像增强方法数据集进行扩充,选取噪声处理、图像裁剪、图像缩放、图像旋转、错切变换和水平翻转方式对样本进行图像样本增强[9]。
在深度学习的模型训练时,利用LabelImg软件对表面的缺陷用矩形框框出,并在信息栏内标注缺陷类别,完成标注的信息会存在Annotations文件中。
2 改进的Faster-RCNN算法与设计
2.1 Faster-RCNN算法
2016年提出了新的Faster-RCNN[10],在结构上,Faster-RCNN将特征抽取,proposal提取,边界框回归(bounding box regression),分类回归层(classification)融合在一个网络中,如图1所示。Fast-RCNN使用选择性搜索提出建议RoI,这会导致检测速度变慢,并且需要与RoI相同的运行时间检测网络。Faster-RCNN以新颖的RPN取代了它。RPN(Region Proposal Networks)共享全图像卷积特征和一组常见的卷积层检测网络,加快了生成速度区域提案的数量[11]。RPN可以通过反向传播和随机梯度下降(SGD)进行端到端的训练,使得综合性能有较大提高,在检测速度方面尤为明显。
图1 Faster-RCNN网络结构
2.2 算法改进策略
2.2.1 多尺度检测(FPN)
FPN[12]中包括自上而下,横向连接和自下而上三个部分,如图2所示。FPN添加带有横向连接的自顶向下路径,以构建不同分辨率的金字塔特征,并在特征金字塔的每一级附加检测头,以便进行预测。更精细的特征图对于检测小目标更有用,因此使用FPN可以显著提高小目标的检测精度。
从下到上过程:可以看出,从下到上提取过程就是传统的特征提取过程。选择每个阶段的最后一层的输出作为特征图的输入,由于第一层内存占用较大,在这不采用第一层。
自上而下过程:从最高层开始进行上采样,产生了更好的特征图,为了简单起见,使用最近邻2倍上采样。
横向连接过程:每个横向连接融合了相同空间大小的特征图,具体就是将上采样的结果和自底向上C2,C3,C4,C5进行1×1卷积生成的相同大小的feature map进行融合。并且输出通道全部设置为相同的256通道。
图2 FPN网络结构图
2.2.2 解耦分类细化(DCR)
在Faster-RCNN中存在由于分类和定位的目标不匹配,共享特征不能达到最优以及小对象的上下文信息冗余等问题。在本网络中通过一个简单、有效和广泛应用的解耦分类细化(DCR)[13]来提高网络的分类能力,将一个单独的分类网络与定位网络并行放置。并将ROI池化放在分类网络[14]的早期阶段,在DCR中加强了一个自适应的接受域。DCR模块是一个深度卷积分类器,会对区域特征进行ROI池化。为了避免分类和定位的特征共享问题,模型使用了一个残差网络ResNet作为特征提取器。通过将该网络置于区域特征之上,模块能够学习不变性特征来对区域进行分类。为了引入自适应接受域,将模型放置在早期阶段。网络的早期阶段可以学习纹理感知特征,这些特征可以在不同的任务中共享,整体结构如图3所示。
图3 Faster-RCNN与DCR结构
图4给出了默认DCR模块的详细框图。引用ResNet的5个阶段:conv1(第1个卷积,将输入分辨率降低4倍),Stage1(第1残差级包含3个残差块,输出幅值为4),Stage2(第2残差级包含4个残差块,输出幅值为8),Stage3(第3残差级包含23个残差块,输出幅值为16)和Stage4(第4残差级包含3个残差块,输出幅值为32)。模型在Stage4之后附加一个带有256个输出通道的3×3卷积。将RPN放置在Stage3之后,并将ROI池以RPN的建议作为输入在Stage4的末尾。为了构建模型,在Stage1的末尾放置了另一个ROI池,它将Faster-RCNN的检测结果作为ROI输入。在ROI池之上,简单地复制ResNet的Stage2,Stage3和stage4,并添加一个全局平均池和一个线性分类器。
图4 DCR网络框结构
2.2.3 锚框优化
Faster-RCNN中RPN网络的提议大大地提高了检测的效率。但是,RPN网络中候选框的设置仍然有很多不足。首先,RPN网络候选框设定为默认的,无法根据特定图像中缺陷的大小进行自适应更改。一旦确定了锚框形状与大小将在训练过程中固定,在特定领域应用通用对象检测器时,必须手动调整锚框形状以提高准确性。由于它忽略了训练中的增强数据分布,神经网络结构的特征以及任务本身,从而导致特定领域的性能下降以及网络模型收敛过慢。
为解决此问题,本文利用 K-means[15]聚类来代替人工设计,通过对训练集的bounding box[16]进行聚类,自动生成一组更加适合数据集的anchor,可以使网络的检测效果更好。传统的聚类算法主要的度量方式是通过计算向量的欧式距离,余弦距离等,而在目标检测中,通过计算框之间的IOU作为距离度量,假设有表达式(1),得表达式如(2)所示:
anchor=(wa,ha),box=(wb,hb)
(1)
(2)
其中,wa为box的宽度,ha为box的高度,显然,IOU的取值在0~1之间,如果两个box越相似,则它们的IOU值越大。由于在习惯上,我们希望两个box越相似则它们的距离应该越近,所以最终的度量表达式为:
d(box,anchor)=1-IOU(box,anchor)
(3)
由式(3)可知,当box与anchor完全重叠,即IOU=1时,它们之间的距离为0。
对box进行K-means的步骤为:
(1)读取Annotations文件夹中.XML 文件,并将 XML 中所有类别缺陷对应的坐标提取出来,随机选取K个box作为初始anchor;
(2)使用IOU度量,将每个box分配给与其距离最近的anchor;
(3)计算每个簇中所有box宽和高的均值,更新anchor;
(4)重复(2)、(3)步,直到anchor不再变化,或者达到了最大迭代次数。
3 实验结果与分析
3.1 实验环境
本文实验运行环境如下:CPU使用Intel Core i5-9400,主频 2.9 GHz,8 G 运行内存,GPU使用GeForce RTX 2080Ti,16 G内存;采用Windows10操作系统,搭建了Pytorch深度学习框架,采用Python作为编程语言。
3.2 数据集与参数设置
本实验使用氩弧焊焊缝缺陷图像作为训练样本与测试样本,共采集图像300张。由于没有公开的数据集,且训练样本有限,为了提高模型的泛化能力,提高模型鲁棒性,采用翻转、旋转、增加噪声、缩放、变换图像增强方法扩充样本图像至 968 张,80%用于训练集图片,20%用于测试集图片。
训练优化策略采用随机梯度下降(SGD)[17]进行,采用ResNet101主干网络,通过 K-means 聚类优化初始锚框参数,实验各参数设置如表1所示。
表1 改进Faster-RCNN参数设置
3.3 检测效果分析
为了进一步验证模型的准确率,将重新采集得到的4种缺陷样本作为新的输入,利用训练后生成的ckpt模型进行测试,检测结果如图5与表2所示,从检查结果图可知,改进后模型相对原模型能进行多目标缺陷检测,有效检测出弧坑与烧穿缺陷以及几种混合缺陷,并且相对原模型精度有了一定提高。
(a) 凹坑 (b) 烧穿
(c) 咬边(d) 成型不良图5 改进后模型对各缺陷图片检测结果
表2 缺陷检测结果
从表2结果可知,基于深度学习的焊缝缺陷检测模型可有效地对常见的4种缺陷进行识别,整体识别率能达到95%,验证了模型的有效性。
3.4 不同模型结果对比
为了得到更好的目标检测模型,在基础网络之上分别引入FPN多尺度检测网络,DCR解耦分类细化结构以及K-mean算法。将改进后的算法与其他原始主流算法YOLOv3[18]和Faster-RCNN作对比,评价指标包括召回率、精确度、AP值,以及每张图片检测时间,采集结果如表3所示。
表3 不同算法检测效果
可以看出,本文算法相比原始Faster-RCNN算法召回率提高了14.7%,精确度提高了2.4%,AP值提高了0.113,相对原模型虽然引入了DCR结构与FPN结构,但是速度却并未降低;相比YOLOv3算法,虽然检测时间相对较长,但也能一定程度实现实时检测,在召回率和AP值方面更是表现出明显优势。总体来说,本改进算法成功实现精确度提高,实现了端到端检测。
4 结论
本文分析了基于Faster-RCNN网络的目标检测方法,在ResNet101结构的基础上,引入K-means对锚框进行优化,调整后的检测效果比未调整时精准。引入了FPN多尺度检测算法,实现网络多层特制的复用和融合,引入DCR解耦分类细化结构,提高了检测精度。相比原始Faster-RCNN网络,精确度提高,召回率提高,实现端到端检测。改进的Faster-RCNN检测能够自动学习待测焊接产品的表面特征,可以满足产品生产与加工处理中的缺陷提取要求,对于产品中的小目标缺陷,本文模型表现出比传统 Faster RCNN 检测算法更优秀的识别能力。