APP下载

基于目标识别的钢材缺陷检测方法

2022-10-17程国建卞晨亮

计算机工程与设计 2022年10期
关键词:钢材卷积特征

程国建,卞晨亮

(西安石油大学 计算机学院,陕西 西安 710065)

0 引 言

随着工业智能化时代到来,市场需求不断进化,传统的钢铁制造业也难以幸免于难,受到强烈的冲击。为适应这种变化,国内企业开始研究布局钢材生产线的表面质量检测与自动处理。将深度学习技术应用到机器视觉领域如安全监控、自动驾驶[1]已经成为生产企业及科研人员重点关注的方向。东北大学宋老师团队提出融合多层级特征的弱监督钢板表面缺陷检测算法[2],其中引入残差网络提高了检测的效果。文献[3,4]使用Faster R-CNN检测钢材缺陷,对比传统的方法有一定的提升。文献[5]基于SVM算法实现缺陷识别系统,具有一定的局限性。文献[6]提出基于机器视觉的产品表面检测算法,结合传统算法和深度学习进行了描述。文献[7]利用深度学习实现钢板表面检测与字符识别。文献[8]使用YOLOv3算法,并优化了损失函数,提升了检测的速度。本文中采用深度学习方法对钢材缺陷检测[9]采用YOLOv5作为基础骨架,改进其网络架构,并引入注意力机制降低了算法的误差,进而提高算法的精度。

1 YOLOv5算法

YOLO的含义是“你只需看一次(you only look once)”,其版本已从V1到目前的V5版。YOLO模型为单阶段的网络结构,计算出候选区域的同时进行分类任务和位置的优化,提高了检测速度和资源利用率。YOLOv5模型的第一特点是提供了4种不同深度的网络结构,可以根据任务的需求不同进行选择。使用了CSPDarknet53作为基本网络,主要由Focus模块、CSP模块、CBL模块构成,Focus模块构成,主要包括切片操作和卷积层(Conv),其中CBL模块由卷积层(Conv)、批归一化层(BN)和Leaky Relu激活函数组成。YOLOv5中设计了两种CSP模块,一种CSP1_X结构使用于Backbone主干网络,另一种CSP2_X结构嵌入到Neck模块中,通过跨级拼接与通道整合增强CNN的学习能力。在边界框的预测方式进行学习自动锚定框,在不断训练过程中优化边界框,并在不同层次的特征图上进行预测,采用PANet的思想对不同层次的特征进行融合。

2 模型改进与优化(YOLOv5-MD)

2.1 候选区域参数选定

YOLO系列模型检测的基础是在输入图像上获取一系列w和h固定的初始候选框,候选框选用对模型的性能至关重要。YOLOv5模型每次训练时自适应的计算不同训练集中的最佳锚框值,一定程度上增加训练的时间,增加了网络中的参数。本文使用K-means++聚类方法对钢材缺陷数据集进行聚类得到合适的候选框大小,K-means++优化了初始聚类中心的选取,其具体流程为,开始随机选取一个中心点,其次选取离中心点最远的点作为第二个中心点,第三个中心点是离其前两个类中心点间距最大的一个点,根据这个选取方式,直到选取k个原始类簇中心点。选择好初始的中心点之后,再采用原K-means算法进行聚类。

聚类效果用轮廓系数来评估,计算公式如式(1)所示

(1)

式中:bi为样本i到其它各个族群的所有样本距离的平均值中的最小值,ai为样本i到本身簇的距离平均值。

经过优化和计算,最终获得候选区域参数分别为(61,122),(75,238),(155,156),(194,273),(99,543),(419,131),(431,239),(226,509),(541,569)。

2.2 融合EfficientNet分类网络

EfficientNet[10]是谷歌2019最新的神经网络,介绍了如何利用复合系数统一缩放模型的所有维度,达到精度最高效率最高,符合系数包括w,d,r,其中,w表示卷积核大小,决定了感受野大小;d表示神经网络的深度;r表示分辨率大小。

本实验中采用迁移学习,使用EfficientNet-B7在钢材数据集上训练一个二分类网络,虽然目标检测模型在7个不同的类(6个不同类型的钢材缺陷和一个无缺陷的类)上训练,但我们只在两个类(有缺陷的钢材和无缺陷的钢材)上训练分类网络。类似于一种建模方法,简化了分类问题,因为2分类网络比7分类网络容易得多。虽然YOLOv5的分类预测非常好,如果将它与另一个更强大的网络的分类混合在一起,即我们融合YOLOv5和EfficientNet-B7这两个网络时,性能可以进一步提高。设置一个高阈值和一个低阈值。然后我们要检查每个分类预测。如果概率小于低阈值,我们将预测设置为“无缺陷”。如果分类预测在低阈值和高阈值之间,我们得到一个“Better Confidence”的预测,该预测具有EfficientNet-B7的置信度。如果分类预测高于高阈值,意味着网络是高度自信的,不需要做什么操作,具体算法如算法1所示。

算法1:辅助分类算法伪代码

输入: low_thr,high_thr,Result

输出: Result

(1) If result[target]

Result[‘prediction’]=‘7 1 0 0 1 1’

(2) Else if low_thr

Result[‘prediction’]+=‘7 {result[target]} 0 0 1 1’

(3) Else if result[target]>high_thr:

Result[‘prediction’]=Result[‘prediction’]

(4) Else:

ValueError (‘Prediction must be from[0-1]’)

2.3 Shuffle卷积与注意力模块

大多数轻量级的神经网络模型[12]一般都采用组卷积或深度可分离卷积来减少卷积过程中产生的计算量,但是1×1卷积的应用也会在卷积过程中占用较多的计算资源,Shuffle Net提出了通道混洗方法用于缓解这一问题。经过组卷积之后,采用通道混洗能实现组间信息的流动,有助于提高模型特征的表达能力。通道混洗的本质在于不增加计算复杂度的情况下,可以使组卷积通道之间信息流通。基于这些方面考虑,对普通卷积为3×3和1×1的模块做出调整,更换为组卷积和通道混洗模块,进而对模型压缩。

针对YOLOv5中的跳层连接加入自注意力机制(self-attention,SA),可以保持信息的有效性,在一定程度上减少梯度消失的问题。SA机制是获得长距离依赖的一种方式,可以动态地生成不同连接的权重。将前一层的输出称为g,以及来自于扩展路径连接称为x。x和g经过1×1的卷积,将两者都变成相同数量的通道数,并不改变其特征图的大小,经过逐像素相加并通过激活函数(ReLU),之后通过另一1×1的卷积和激活函数(Sigmoid),得到一个0到1的重要度分数,分配给特征图的每个部分,最后用这个注意力图乘以x,产生注意力块的最终结果。

将池化注意力模块(PBAM)[13]添加到YOLOv5 网络的主干网络中,用来提取到更多的特征信息。PBAM 模块先采用两个并列的池化操作进行特征图的压缩获取到特征图的关键点,然后对其进行扩张操作,PBAM引入了残差结构用来融合前后的特征信息,并可以有效保证网络较深情况下梯度不会消失或者过大,最后将两个分支的结果进行逐像素相加并与输入特征图融合传入下一层。该模块输入特征图和输出特征图大小一致,PBAM模块可以嵌入到任意网络结构中,图1为YOLOv5-MD的算法框架。

2.4 加权边界框融合(WBF)

图像检测任务中模型的预测包括边界框矩形的坐标,对象的类别标签以及反映模型在此预测中的信心程度的置信度得分(概率从0到1)。其中有一个非常重要的阶段,需要生成区域建议(可能的边界框),以及过滤一些建议区域。经常使用的算法有非极大值抑制(NMS),Soft-NMS。NMS指如果框与框的交并比(intersection over union,IoU)高于指定的阈值参数,则这些框会被过滤为一个框。Soft-NMS不会完全移除IoU高于阈值的框,而是根据IoU的值降低它们的置信度分数,相比于NMS,可以过滤掉较少的边界框。

NMS和soft-NMS都排除某些框,而WBF[14]使用所有的框,可以有效解决模型无法正确预测所有框的情况。如图2所示,细黑色线条表示不同的预测框,粗黑色线条表示真实的标注位置。NMS/soft-NMS保留一个不准确的框,而WBF使用所有的预测框进行融合。

2.5 改进的PANet结构

输入图像经过YOLOv5网络中的骨干网络提取特征信息后预测输出结果。为了提高模型性能,YOLOv5采用PANet[15]结构进行路径增强和聚合,增加了自底向上的路径,从而缩短了低层与顶层特征之间的信息路径,使低层信息更容易传播。

针对高层特征语义丰富但是空间信息较弱,低层特征语义较弱但空间信息丰富的特点,引入改进的PANet结构,如图3所示,这种结构能够在较少计算量的前提下融合高层和低层的特征信息。该模块去除掉 PANet结构中一些边,并使用残差的方式添加一条额外的边,对粗分辨率的特征图,对特征层的较高层特征执行2倍上采样操作,使特征图的大小增加一倍;较低层特征采用横向连接,通过1×1卷积改变通道数,最后将上采样和卷积后的特征图的对应元素相加,重复该过程,直到生成最精细的分辨率特征图。输入图像经过骨干网络得到各层级的特征图后,采用多尺度特征融合获得特征图大小分别为152、76、38和19的特征图,并根据得到的4个特征图继续进行预测。

3 实验流程与数据分析

3.1 实验流程

YOLOv5-MD模型训练包括训练6类的目标检测模型和2分类的EfficientNet-B7网络模型,具体实验流程如图4所示。首先是对钢材缺陷图像进行筛选和标注,制作数据集并随机划分为训练集、验证集和测试集,其次对数据训练样本进行预处理(其中包括处理图像为模型输入图像的尺寸,以及封装样本和标签等);然后利用设计的算法提取图像的特征、计算损失函数以及反向传播优化,随后在验证集上测试本次迭代结果的平均准确率,如果准确率大于之前保存模型的准确率,使用本次迭代结果保存的参数信息替换之前保存的模型参数信息;之后判断迭代次数是否大于实验设置的最大迭代次数,如果小于最大迭代次数,模型则继续训练,反之,模型训练完成;最后,模型训练完成后使用测试集对模型效果进行测试,以及在测试图像上画出最终的识别结果,即钢材缺陷的位置和所属的类别。

3.2 实验数据集及其预处理

本次实验所使用的数据集是东北大学宋克臣老师团队制作的钢材表面缺陷数据集和经过网络爬虫得到的数据,共有5800张多类的钢材图像。模型训练过程中将数据集分为3个部分:训练集(4200个采样)、验证集(1000个采样)和测试集(600个采样)。经过labelme标注工具对未标注的数据注释完成后,数据集共有crazing(裂纹)、inclusion(夹杂)、patches(斑块)、scratches(划痕)、pitted_surface(麻点)、rolled-in_scale(氧化铁皮压入)6类缺陷类型。为了使每类样本数量均衡,采用数据增强[16]方式将较少类别的目标区域精准增强。以“patches”为例数据增强前后对比如图5所示。

对数据集进行预处理后。每类样本数目见表1。

表1 数据增强后每类样本的数量

3.3 模型结果对比分析

采用处理后的数据集分别对YOLOv5算法和YOLOv5-MD算法进行训练,本次采用Pytorch框架和OpenCV库函数,CPU为Inteli7-9750H,GPU为NVIDIA GTX 1080,显存16 G,采用CUDA 10.0与CUDNN V7.5并结合Python语言实现了算法内容。训练参数设置迭代次数为300,批处量大小为8,基础学习率初始为0.001,其中动量和权重衰减分别配置0.9和0.0005,训练过程中优化器为Adam,YOLOv5算法和YOLOv5-MD算法的损失函数值的变化曲线如图6所示。

从图6可以观察到训练迭代到280次左右损失曲线逐渐处于平稳且无明显震荡,YOLOv5-MD模型最终损失值明显低于YOLOv5,基本稳定在0.03左右,模型收敛。

对比消融实验分为6个组别,分别为融合EfficientNet网络、Shuffle Conv、PBAM(pooling block attention module)、改进的PANet结构以及K-means++这5个方向进行对比实验,结果见表2。Lab1、Lab2、Lab3表明,通过采用融合Efficient网络、改进PAnet方法以及增加池化注意力机制在不同程度上提高了钢材缺陷分类的准确率,其中加入注意力机制的实验准确率明显提高了7%左右。Lab1、Lab5表明,通过使用Shuffle Conv卷积方法减少了模型的复杂度,缩短了单帧图像的处理时间,进而提高了检测的实时性;Lab2、Lab3、Lab4、Lab5、Lab6表明将4处方向融合,可以在保证召回率的前提下,提高检测的准确率。

表2 不同改进模块的对比实验

模型训练结束后,将Faster RCNN、SSD、YOLOv4、YOLOv5作为对比模型,在测试集上采用精确率(Precision)和召回率(Recall)分别对4个模型进行测试,表3为4种算法分别对钢材缺陷数据进行检测的结果。

表3 5种模型进行钢材缺陷检测的综合性能对比

分析表3可知,改进的YOLOv5-MD算法复杂度没有明显提高,模型的单帧检测速度与YOLOv5,YOLOv4基本一致,但比SSD和Faster RCNN分别快了1.7倍和7.1倍,其精确率比其它4个算法都高,比Faster RCNN提高了10%左右。

依据Precision和Recall可以对每类目标的平均精准度(AP)和整体的平均检测精度(mAP)进行计算。如表4所示,优化后的模型YOLOv5-MD整体的mAP比YOLOv5提升了3.3%,模型的鲁棒性有了一定的提升。分析表4中每种类别的AP值,经过数据增强和改进模型每种类别的AP值都有一定的提升。

表4 YOLOv5与YOLOv5-MD的mAP对比

YOLOv5-MD置信度分数和F1分数、精确率、召回率的关系如图7所示,从图中可以看出,当置信度分数为0.4左右时,所有类的平均F1分数、精确率和召回率都可以达到85%以上,可以达到比较好的效果。

钢材缺陷图像的实际检测结果如图8所示,钢材缺陷检测位置信息和类别信息在图中都有标示。

4 结束语

本文对于目标检测算法YOLOv5进行改进,提出了一种钢材表面缺陷检测的算法YOLOv5-MD。

(1)针对YOLOv5自适应的计算不同训练集中的最佳锚框值,在一定程度上增加训练的时间,增加了网络中的参数,本文利用Kmeans++聚类算法得到相应的锚框值。

(2)YOLOv5-MD通过替换大小为3×3和1×1的卷积模块为组卷积和通道混洗模块以及融合EfficientNet-B7辅助网络,并对YOLOv5的PANet结构进行修改,利用跨级连接和同级跳跃连接这样高效的多尺度特征融合方式,可以在降低图像的特征损失,增加了检测的准确性。

(3)引入自注意机制SA和PBAM使算法收敛速度加快,并使用加权边界框融合可以过滤掉较少的边界框,使用一个公式来调整坐标和置信度分数,在一定程度上增加了钢材缺陷检测的准确性。

运用本文提出的YOLOv5-MD检测方法,能够有效地检测和正确识别钢材缺陷类型,该模型的mAP(平均检测精度)可以达到97.2%。后续将进一步研究超轻快的模型,使算法需要更小的内存。

猜你喜欢

钢材卷积特征
离散型随机变量的分布列与数字特征
浅谈转变钢材营销理念的新思路
基于“互联网+”的钢材营销平台的设计与应用
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
钢材集中采购管理思考探究
从滤波器理解卷积
抓特征解方程组
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法