李雪露, 储茂祥, 杨永辉, 刘光虎
(辽宁科技大学 电子与信息工程学院,辽宁 鞍山 114051)
钢板在生产和加工过程中,受设备和环境等不可控因素的影响,表面易出现麻点、划痕、压入氧化铁皮等缺陷,这些缺陷严重降低了钢材产品的外观、质量和使用性能[1-3]。 传统的钢板缺陷检测算法依赖于主观臆断,识别率低,误判和错判的概率大大增加。 因此,使用深度学习技术对钢板表面缺陷进行检测十分重要[4]。
随着深度学习理论和人工智能技术的不断发展与完善,其检测精度较传统检测算法有了显著的提升,并在机器视觉领域取得令人瞩目的结果[5]。 文献[6]提出一种基于DMSA-YOLOv3模型的缺陷检测,用于检测微小钢板缺陷;文献[7]提出使用GoogLeNet作为骨干网络和添加映射的卷积神经网络缺陷分类算法;文献[8]提出使用尺度不变特征转换(scale-invariant feature transform,SIFT)和神经网络相结合的检测算法;文献[9]提出一种基于模板匹配的带钢表面缺陷检测算法;文献[10]提出一种基于U-Net的钢板缺陷分割网络;文献[11]改进了YOLOv3的骨干网络,并引入空洞卷积和Inception模块用于钢板检测;文献[12]提出使用改进的Mask 区域卷积神经网络(region-based convolutional neural networks,R-CNN)模型钢板表面缺陷检测;文献[13]进一步提出ResNet50的Faster R-CNN检测网络。
为了弥补传统检测算法的不足,本文提出一种基于Cascade R-CNN[14]的递归特征金字塔ResNeXt-101-64×4d(Cascade R-CNN-recursive feature pyramid ResNeXt-101-64×4d,CR-RFPR101)
的检测算法。 为了解决随着网络层数的加深,进行特征提取时产生的梯度消失和梯度爆炸等问题,提出使用ResNeXt-101-64×4d网络作为Cascade R-CNN算法的骨干网络。 为了增加全局特征,引入递归特征金字塔(recursive feature pyramid,RFP)[15]代替原主干网络的经典特征金字塔。 使用可切换的空洞卷积(switchable atrous convolution,SAC)代替传统卷积层,使用不同空洞率的卷积层对相同的输入特征做卷积。 为了实现准确高效的钢板表面缺陷检测,利用线性加权形式的软化非极大值抑制(soft non-maximum suppression,Soft-NMS)[16]算法对模型的非极大值抑制(non-maximum suppression,NMS)结构[17]进行优化,提高准确性。
Cascade R-CNN模型主要由特征提取网络ResNet101[18]、区域建议网络(region proposal network,RPN)和级联检测器组成。 Cascade R-CNN网络结构如图1所示。 采用ResNet101网络对钢板表面缺陷图像进行特征提取,然后将提取的缺陷特征输入到RPN进行候选区域选择,最后使用级联检测器实现缺陷的定位和分类。
图1 Cascade R-CNN网络结构图
Cascade R-CNN具有独特的级联结构,实现了更加准确地定位缺陷信息。 3个级联结构的IoU阈值依次设置为[0.5,0.6,0.7]。
首先将预测框送入IoU阈值为0.5的检测网络,若此时预测框与真实框之间的IoU阈值>0.5,则判断该框为正类,引入边框回归损失B1调整预测框的边框位置,同时生成第1个分类得分C1。
将B1修正后的新区域经过筛选的候选框送入IoU阈值为0.6的检测网络,若此时IoU阈值>0.6,则仍判断该框为正类,同时利用边框回归损失B2调整预测框的边框位置并生成第2个分类得分C2;依此类推,最后得到钢板表面缺陷的最终分类得分以及定位信息。
改进后的Cascade R-CNN网络结构如图2所示。
图2 改进的Cascade R-CNN网络结构
首先,将采集到的钢板表面缺陷图像输入到基于ResNeXt-101-64×4d的特征提取网络。 然后,利用特征金字塔结构代替传统特征金字塔结构进行特征融合。
其次,引入SAC模块,利用空洞卷积改变卷积核感受野的大小,使用不同空洞率的卷积层对相同的输入特征做卷积,提高特征之间的相关性。
最后,将带有置信度的锚框送入级联检测器,通过Soft-NMS模块获取置信度最高的预测框,实现缺陷的定位和分类。
本文选取ResNeXt-101-64×4d网络代替Cascade R-CNN模型的ResNet101网络,完成模型的特征提取功能。 ResNeXt-101-64×4d网络将ResNet101网络的单个卷积改为多支路的卷积,通过增加卷积基数提高模型的准确率,并采用恒等映射的方式完成特征提取。 ResNeXt-101-64×4d的模型结构如图3所示。
图3 ResNeXt-101-64×4d模型结构
图3中,每一个方框代表一层网络,其中的3个数据从左到右依次为输入数据的通道数目、卷积核大小和输出数据的通道数目,共64条路径,即基数cardinality=64。 在不改变计算量的前提下,ResNeXt-101-64×4d网络增加了路径的数量,各个模块的输出通过求和进行汇总,较好地提高了网络的特征提取能力。
ResNeXt-101-64×4d网络采用ReLU函数作为激活函数,计算公式如下:
(1)
特征金字塔(feature pyramid networks,FPN)[19]主要利用深度卷积神经网络解决目标检测过程中存在的多尺度问题。 本文采用的递归特征金字塔则是在特征金字塔的基础上,增加反馈机制和重复应用主干模块,迭代融合输出特征图[20],提升对小目标缺陷的检测性能。
递归特征金字塔网络结构如图2中RFP模块所示。 设Dn为主干网络自底向上的第n阶段特征提取过程;Fn为第n阶段自上而下的FPN运算;fn为递归特征金字塔输出的特征图,其中n=1,2,…,S;S为特征层数;Hn表示自顶向下传输到自底向上的过程的预处理操作;xn为第1次递归时主干网络输出的第n阶段特征图,则fn表达式为:
fn=Fn(fn+1,xn),xn=Dn(xn-1,Hn(fn))
(2)
多次迭代后的特征图输出为:
(3)
其中,r为迭代次数。
钢板表面缺陷图像进行特征提取的过程中,因为钢板表面缺陷图像之间的差异较大,没有统一的划分标准,需要进行多尺度检测,所以选择合适的卷积核至关重要,以适应不同的感受野。 本文选用可切换的空洞卷积SAC代替主干网络的传统卷积层,从而在不同的空洞率之间实现对卷积计算的软切换,实现准确高效的检测。 基于SAC的总体架构如图4所示,从图4可以看出,SAC架构主要由基于SAC的空洞卷积结构、全局上、下文模块3个模块组成。
图4 基于SAC的总体架构
SAC模块的计算公式如下:
Conv(v,w,1)→Y(x)·Conv(v,w,1)+(1-Y(x))·Conv(v,w+Δw,e)
(4)
其中:v为输入;w为模型权重;e为空洞卷积的空洞率;Δw为可训练的权重;函数Y(x)由5*5的平均池化层和1*1卷积层组成。
在检测过程中,由于钢板表面缺陷图像之间的差异较大,RPN网络会产生大量冗余的锚框,Cascade R-CNN模型利用NMS将重叠的框滤除。 然而,经典的NMS算法直接将置信度低的锚框过滤掉,只保留一定数量的质量较高的建议框,很容易造成漏检和误检的问题。 因此,本文选用基于线性加权形式的Soft-NMS算法解决以上问题,将IoU阈值设置为0.7。
当得到较低分数时,不是直接过滤掉,而是进行下一次级联检测,降低漏检的概率,提高模型的检测精度。 基于线性加权形式的Soft-NMS的计算公式如下:
(5)
其中:M为得分最高的框;bk为待检测的框;Ik为最终得分;Nm为设定的阈值,即Nm=0.7。
实验运行平台及参数设置见表1所列。
表1 实验运行平台及参数
本文采用东北大学发布的NEU-DET数据集进行实验,其中共计1 800张图片,对于6类钢板表面缺陷检测是不足的,而数据的缺少会导致训练过拟合以及检测泛化性能较差等问题。
为了解决以上问题,本文采用仿射变换、伽马增强、镜像变换和添加色调和饱和等方式对原始数据进行增强,既增加了数据量,又提高了图像的鲁棒性。 增强后的图像为5 400张,数量为原来的3倍。
数据增强示例图如图5所示。
图5 钢板表面缺陷图像数据增强示例
钢板缺陷图片采用矩形框进行标注,采用utf-8的编码格式,200×200的分辨率,使用json记录有关数据,按照6∶2∶2的比例随机分配缺陷图像。
CR-RFPR101模型使用随机梯度下降(stochastic gradient descent,SGD)优化器,每迭代50次纪录1次损失函数值,训练共迭代350次,损失函数随迭代次数的变化如图6所示。
图6 损失函数随迭代次数的变化
从图6可以看出,CR-RFPR101模型的损失函数值收敛至0.18左右趋于稳定,满足训练要求。
本文选用准确率A(accuracy)、精确率P(precision)和召回率R(recall)评价模型性能,A、P、R计算公式为:
(6)
(7)
(8)
其中:TP为钢板无缺陷,预测为无缺陷;FP为钢板有缺陷,预测为无缺陷;FN为钢板无缺陷,预测为有缺陷;TN为钢板有缺陷,预测为有缺陷。
为了验证改进的特征提取网络、RFP、SAC和Soft-NMS几个模块对CR-RFPR101算法检测效果的影响,设计实验结果见表2所列。 4种不同算法的检测结果见表3所列。
表2 改进算法对比
表3 经典算法性能对比
表2,表3中:Cz为裂纹缺陷;Is为夹杂缺陷;Pc为斑块缺陷;PS为麻点缺陷;RS为压入氧化铁皮缺陷;St为划痕缺陷;mAP为平均精度均值;AP为平均精度。 从表2可以看出,数据增强后的算法mAP值为78.8%,较原始算法提高了2.7%,有效提高了算法的泛化性能。 利用SAC代替传统空洞卷积的操作使得mAP值增加了1.5%,能结合不同尺寸的空洞卷积,扩大感受野,提高算法的检测性能。
基于ResNeXt-101-64×4d网络的Cascade R-CNN算法mAP值为81.8%,在不增加参数复杂度的前提下,提高了算法的准确率。 利用线性加权的Soft-NMS代经典NMS,mAP值提高了0.5%,较好地提高准确性。 使用RFP代替传统特征金字塔的操作使得CR-RFPR101算法的mAP值提高了1.1%,相比于原始Cascade R-CNN提高了7.3%,有效提高了检测的精度和鲁棒性。
由表3可知,CR-RFPR101算法有着显著的检测优势,本文算法与YOLOv3、SSD、Faster R-CNN算法相比,精确度分别提高了3.7%、3.9%、1.9%,并且6种缺陷的AP值均获得最高值。
5种检测算法的P-R曲线如图7所示,由图7可知,CR-RFPR101算法的总体检测性能较好。
图7 各模型的P-R曲线对比结果
YOLOv3、SSD、Faster RCNN、Cascade RCNN和C-RRFPR101算法检测结果的混淆矩阵如图8所示。
图8 不同模型的混淆矩阵结果
通过比较混淆矩阵,可以看出,CR-RFPR101在6种缺陷中的Pc、PS、St 3种上产生了较好的分类性能,表明所提出的CR-RFPR101算法的可行性和适用性。
为了更加直观地比较不同算法的检测性能,本文增加了可视化实验,检测结果如图9所示。 其中:绿色框代表实际结果;橙色框表示检测结果。
图9 缺陷检测对比结果示例
从图9可以看出,CR-RFPR101算法的检测框与实际标签的贴合程度最高,优于其他对比缺陷检测算法。
本文提出了一种基于CR-RFPR101的目标检测算法,该算法使用ResNeXt-101-64×4d作为Cascade R-CNN模型的骨干网络,采用恒等映射的方式优化特征提取功能;利用递归特征金字塔代替经典特征金字塔,以反馈的方式优化主干网络,实现多尺度的目标检测;采用可切换的空洞卷积改变主干网络的卷积层,通过改变空洞率以确定适合钢板表面缺陷的感受野,提高模型的检测性能;利用线性加权形式的Soft-NMS对非极大值抑制进行优化,以降低误检和漏检率,提高模型的准确率。
通过消融实验和与经典的检测算法相比较,CR-RFPR101算法在钢板表面缺陷检测问题上具有明显的检测优势。