基于快速选区卷积神经网络模型的工业产品表面缺陷检测
2021-09-03李馥颖朱振杰杜付鑫
李馥颖, 朱振杰, 杜付鑫
(1. 沈阳理工大学 艺术设计学院, 辽宁 沈阳 110159; 2. 山东大学 机械工程学院, 山东 济南 250061)
我国是钢材生产大国,根据国家统计局公布的数据,2019年我国钢材产量达到9.96×108t,同比增长8.3%[1]。 由于带轧机具有投资少、 建设周期短的特点, 国内大部分钢铁企业, 尤其是民营钢铁企业不断扩大带钢生产规模,因此近几年国内带钢产能增长迅速,同时也暴露出了一些亟待解决的问题。生产工艺、 原材料、 压制设备等因素经常会导致带钢表面出现一系列缺陷,主要是划伤、 擦伤、 裂纹、 油污、 黑点等[2-3]。这些缺陷不仅影响了带钢的表面质量,而且还会降低最终成品的抗腐性、耐磨性和疲劳强度等性能[4],因此,带钢在经过酸洗后均需要采用人工检查的方式进行质量跟踪与保证。随着带钢产能的不断提升和生产节奏逐步加快,操作人员的肉眼观察质量的不稳定性逐步暴露,导致带钢断裂事故一直居高不下。
近年来, 利用深度学习检测目标物体的方法发展迅速, 在无人机、 辅助盲人导航、 无人驾驶、 语音识别等领域应用广泛[5]。 基于计算机视觉的带钢表面缺陷检测技术也得到了快速的发展[6]。 计算机视觉通过非接触式的检测和光学的自动采集获得产品的表面图像, 然后使用不同的算法提取表面图像的具体特征, 进一步实现检测。 采用卷积神经网络(convolutional neural network,CNN)来解决深度学习的问题是许多专家学者的首选[7-8]。 目前基于深度学习的目标检测算法主要包括2类, 一类是基于候选框的目标检测, 另一类是基于回归的目标检测。 Girshick等[9]在2014年提出了第一个基于候选框的目标检测方法——选区CNN(region CNN,R-CNN), 随后快速选区卷积神经网络Faster R-CNN[10-11]与Mask R-CNN[12]等方法相继出现。基于回归的目标检测方法主要是以You Only Look Once (YOLO)系列检测器为主[13-16]。
基于深度学习的方法能够较好地克服实际应用环境下带来的复杂变化。深度学习注重模型的深度和自动特征提取,由高到低逐层地进行特征学习,具有较强的特征提取和选择能力。深度学习的基本条件是要有海量的数据支撑以及充分的模型训练,但是,在对带钢表面进行缺陷研究时,带钢表面缺陷的数据基本上是基于生产线人工拍摄所收集,样本之间差异较小,重复数据较多,并且实际采集到的数据量通常达不到深度学习目标检测模型所要求的庞大数据量的要求。针对以上问题,本文中通过基于Faster R-CNN算法进行改进,首先利用残差[17]作为带钢表面缺陷特征提取网络以达到更高效的提取特征的效果,并提出一种多尺度选区推荐网络(multi-scale regional proposal network,MS-RPN),对非极大值抑制(non-maximum suppression,NMS)算法[18]筛选候选框不充分的情况进行优化,目的是提高带钢表面缺陷检测的准确性。
1 带钢表面缺陷检测算法
1.1 模型网络结构
针对初始推荐区域不能满足多尺度目标的需求、带钢表面缺陷重叠产生的漏检等问题,本文中在Faster R-CNN算法的基础上提出一种新的带钢表面缺陷检测算法,总体结构如图1所示。
图1 改进后快速选区卷积神经网络结构
该神经网络模型分为特征提取网络、 MS-RPN、 检测子网络3个部分, 其中, 采用残差网络替换了传统的特征提取网络。 由于初始推荐区域不能满足多尺度目标需求的问题, 因此本文中提出MS-RPN网络。 该网络通过3条支路在3组不同的特征图上设置不同大小的滑动窗口, 得到大、 中、 小3种目标尺度的锚节点(anchor), 与普通的选区推荐网络(RPN)相比, 可以得到更加精确的推荐区域, 并在网络中使用软判决NMS(Soft-NMS)机制进行候选框的筛选。
1.2 模型骨干网络
改进后Faster R-CNN神经网络(以下简称本文模型)选取Darknet-53残差模型的前52层作为特征提取层。本文模型结合了Darknet-19以及其他新型残差网络的优势,利用连续的尺寸为3×3和1×1规模的卷积层进行组合,网络结构如表1所示。
表1 改进后Faster R-CNN神经网络结构
从图1中可以看出, 本文模型分别通过3条支路生成3组不同的特征图馈入MS-RPN网络, 卷积核在浅层提取的是颜色、 边缘等浅层特征, 随着卷积层深度加深, 提取的细节信息更加充分。 提取的特征图的大小会随着层数加深变得更小, 虽然直接使用最后一层的卷积特征图有利于图像的识别, 但是对检测小尺度目标则不适合。 综上, 本文中选择区域5生成的特征图作为F1; 然后, 将F1经过上采样(up-sample)操作后与区域3生成的特征图结合作为F2; 最后, 将F2经过上采样操作后与区域2生成的特征图结合作为F3, 分别输入到MS-RPN网络得到不同尺度的推荐区域, 同时也作为检测子网的输入。
1.3 模型的MS-RPN网络
MS-RPN网络结构如图2所示,该网络的作用是为输入图像提取一定数量的具有目标置信度的推荐区域。
图2 多尺度区域推荐网络结构
分别为特征图F1、 F2、 F3定义多个边长为n的正方形滑动窗口,检测过程中产生高质量推荐区域的关键是定义大小合理的滑动窗口和锚节点,为每个特征图分配具有不同比例的锚节点。考虑到不同纵横比的对象,设计具有不同的长宽比的锚节点,锚节点形状由物体形状决定。本文中设置了6种类型的锚节点,为了减小滑动窗口数量,特征图F3只设置1种尺寸、 1种比例的滑动窗口且步长为2,特征图F1、 F2分别设置3、 2种尺度, 3种比例的滑动窗口。滑动窗口与锚节点的设置如表2所示。
表2 滑动窗口和锚节点的设置
1.4 区域推荐筛选机制
鉴于带钢表面缺陷中缺陷图片相近的情况较多,本文中利用一种新的候选框筛选机制Soft-NMS进行对候选框进行筛选,具体算法如下:
输入:B={b1,b2,…,bN},S={s1,s2,…,sN}
1.D←{}
2.whileB≠empty do
3.m←argmaxS
4.M←bm
5.D←D∪M;B←B-M
6.forbiinBdo
7.si←sif(IOU(M,bi))
8.end
9.end
10.returnD,S
上述算法中f(IOU(M,bi))的计算公式为
(1)
式中:f为当前框得分;IOU(M,bi)为M与bi的交并比,M为当前得分最高框,bi为待筛选框;Nt为阈值。
由式(1)可知,M和bi的交并比越大, 得分si就越小,漏检率就会降低。
1.5 损失函数
本文中的损失函数分为MS-RPN损失函数和检测子网络损失函数2个部分。
1.5.1 MS-RPN损失函数
MS-RPN损失函数ln分为2个部分,即分类损失Lcls和边框回归损失Lreg,表达式为
(2)
分类损失函数Lcls和回归损失函数Lreg的表达式分别为
(3)
(4)
式中R为smoothL1函数。
MS-RPN的3条支路总损失函数L(M)为
(5)
式中:M为MS-RPN网络的学习参数,是由n个M组成的矩阵;n为支路数,n∈[1, 3];ηn为第n条支路损失权重;Sn为第n条支路的训练样本集。
1.5.2 检测子网络损失函数
检测子网络对于带钢表面缺陷目标检测任务损失函数L(M′)与MS-RPN损失函数定义类似,设M′为检测子网络所需要学习的参数,检测子网络损失函数为L(M′),则
(6)
(7)
综上,网络的总体损失函数L(M,M′)为
L(M,M′)=L(M)+L(M′)
。
(8)
2 实验结果
2.1 数据集
从带钢生产线所拍摄含有各种缺陷的带钢照片中分别选择含有划伤缺陷图片183张、 擦伤缺陷图片154张、 裂纹缺陷图片190张、油污缺陷图片205张、黑点缺陷图片119张,然后运用水平翻转、 旋转照片集等数据集扩充操作进行数据扩充,同时,为了便于对所有图像进行数据集标注,本文中采用数据集标注工具Labelimg对图像进行分类准确性(ground truth)标注,将该数据集命名为SD_data数据集,如图3所示。
图3 采用数据集标注工具标注的数据集
2.2 实验及结果分析
由于准确率和召回率在某些情况下会出现矛盾情况,因此,本文中采用准确率与召回率的调和均值F作为对比评价指标,计算公式为
(9)
式中:P为检测准确率,即检测到正确的带钢表面缺陷数占检测到的带钢表面缺陷总数的比例;R为召回率,即检测到正确的带钢表面缺陷数占所有的样本总数的比例。
根据检测目标的不同尺度,将SD_data数据集分为易、中等和难3个检测难度,将本文模型与可变形组件模型(DPM)、 对象控制的可变形组件模型(OC-DPM)、 R-CNN、 Faster R-CNN、 精练网络(Refine-Net)算法一同在SD_data数据集上进行了训练和测试,结果见表4。
表4 在SD_data数据集下3个不同难度中的平均准确率
本文模型在SD_data数据集下3个不同标准下的平均精度均值分别达到90.77%、 89.78%、 84.99%,较Faster R-CNN的分别提升2.76%、9.41%、10.27%。与其他算法相比,本文模型在3个检测难度为“难”的检测结果优势明显。为了证明模型的泛化能力,图4给出了SD_data数据集下的部分检测结果。
图4 带钢缺陷检测结果
2.3 讨论
将本文模型中MS-RPN和Faster R-CNN中RPN进行了比较,且对不同尺度目标召回率进行实验对比,结果如表5所示。由表可以看出,相较于RPN,MS-RPN在每个尺度下的召回率均有所提高,MS-RPN通过对3个不同深度的卷积层定义合理的滑动窗口,对小型目标而言,低层卷积层存在使得最后一层卷积层有更加丰富的特征,所以MS-RPN能够比只在最后一层卷积层设置滑动窗口的RPN提取到更加精确的推荐区域。
表5 推荐区域不同尺度目标的召回率
在SD_data据集上对Soft-NMS与NMS的平均准确率进行比较,结果见表6。这2种方法都有定位的参数,如NMS中的IOU阈值Nt和Soft-NMS中的规范参数σ,调整这些参数会改变平均准确率。本文中采用控制变量法进行比较,发现本文中提出的在网络的末端选取Soft-NMS机制比NMS机制平均准确率提升了约1%。
表6 不同非极大值抑制的平均准确率对比
4 结语
本文中通过对Faster R-CNN模型进行改进,提出了一种高效且准确的多尺度选区推荐网络,使用Soft-NMS机制进行候选框筛选,并在SD_data数据集上进行实验。结果表明,本文模型在不影响检测速度的情况下,提高了检测的准确性,降低了漏检率,对各种尺度的带钢表面缺陷目标均取得了良好的检测效果,可以更好地满足实际工程应用。