APP下载

基于改进的YOLOv4-tiny 钢卷端面缺陷检测

2022-05-06张雪荣李红军

智能计算机与应用 2022年3期
关键词:端面聚类样本

吴 奎, 向 峰, 周 顺, 张雪荣, 李红军, 张 驰

(1 武汉科技大学冶金装备及其控制教育部重点实验室,武汉 430081;2 武汉科技大学 机械传动与制造工程湖北省重点实验室,武汉 430081; 3 武钢有限技术中心, 武汉 430083;4 武汉纺织大学 机械自动化学院, 武汉 430200)

0 引 言

热轧带钢在卷取过程中由于受轧制工艺及系统控制等因素的影响,钢卷两侧端面存在缺损和拉丝缺陷。 端面缺陷不仅会影响钢卷的美观,还会降低钢卷的成材率和性能,影响下游企业加工使用。 传统的带钢缺陷检测方法一般可分为两种,一种是基于边缘检测的方法;另一种是基于形态学的方法。例如:基于Canny 的检测器,基于Sobel 算子和LoG算子的边缘检测方法。 然而,这些方法都需要提取特征因子,再对缺陷进行分类,检测过程不仅复杂,而且速度较慢,在检测精度和实时性等方面不能很好的满足实际生产需求。

近年来,随着机器视觉、深度学习技术的不断发展,深度神经网络已逐渐成为工业生产中检测产品缺陷的主要方法。 深度神经网络能够自动从图像中提取特征,避免了手工提取特征可能存在的主观性错误,在目标检测与分类问题中得到了广泛的运用。 目前,带钢缺陷检测利用卷积神经网络提取缺陷特征并进行分类,例如:HE 等人使用对抗神经网络获得大量的未标注数据后再进行缺陷分类,解决了缺陷样本不足导致网络难以训练的问题;FU等人提出的一种端到端的卷积神经网络,实现了带钢缺陷的高精度分类。 但这些检测模型只是解决了带钢缺陷分类问题,并不能解决缺陷定位问题,HE使用Defect Detection Network(DDN)实现了端到端的带钢缺陷检测,并取得了80%的准确率,这一方法虽然取得了较好的检测精度,但检测速度较慢,无法达到工业生产实时检测的要求。

缺陷检测的目的是找出图像中所有感兴趣的目标,确定目标的位置、大小以及类别等信息。 目前,基于深度学习的缺陷检测方法逐步取代了传统的检测方法。 现有的深度学习目标检测算法主要分为两类,一类是以Faster R-CNN、Mask R-CNN 为代表的两阶式检测算法;另一类是以YOLO、SSD 为代表的one-stage 检测算法。 两阶式检测算法的检测过程分为两个阶段,第一阶段使用区域候选网络(RPN)产生候选区域,然后使用检测网络确定候选区域的类别、位置,这种检测算法有较高的准确度,但检测速度稍慢。 单阶式检测算法可以直接得到检测结果,不需要产生候选区域阶段,所以检测速度较快,但检测准确度较低。 本文采用YOLOv4 算法的轻量化版本YOLOv4-tiny,减少了模型参数和计算量,检测精度在满足要求的同时拥有更高的检测速度。 同时,YOLOv4-tiny 还具有占用内存小、易部署的特点,非常适合实际生产过程中的钢卷端面缺陷检测。

为了提高YOLOv4-tiny 的检测精度,本文对其进行了改进,提出了一种改进后的YOLOv4-tiny 算法。 实验结果表明,改进后的YOLOv4-tiny 算法在钢卷数据集上平均精度均值为78.8%,检测速度达到了94 fps,满足了带钢生产实时检测的要求。

1 YOLOv4-tiny 算法

YOLOv4-tiny 是在YOLOv4 的基础上改进而来的,是YOLOv4 的轻量化版本,适用于嵌入式平台的轻量级实时检测。 与YOLOv4 相比,检测精度有所下降,但在实现了模型压缩,提高了模型检测速度。YOLOv4-tiny 由骨干网络(CSP Darknet53-Tiny)、特征金字塔(Feature Pyramid Network,FPN)和YOLO检测头(YOLO Head)组成。 其骨干网络主要包括CSP( Cross Stage Partial)结构和下采样CBL(Conv+Bn+Leaky-relu 组成)结构,CSP 结构将低层的特征映射划分为两部分,通过跨层连接将其合并,使卷积神经网络有了更强的学习能力,减少了计算量的同时也保证了检测的准确率;下采样CBL 结构中,每个卷积核大小为3×3,步长为2,主要对图像进行下采样处理。 FPN 结构可以融合不同网络层之间的特征,既可以保证深层网络丰富的语义信息,又可以获得低层网络的特征细节信息,以此来加强对特征的提取能力。YOLO Head 利用得到的特征信息进行最后的预测,最终形成13×13 和26×26 两个预测尺度。

2 YOLOv4-tiny 算法的改进

2.1 网络结构的改进

在原始主干网络中,残差网络模块使用3×3 卷积核提取特征,其感受野大小也是3×3。 较小的感受野虽然可以提取更多的局部信息,但丢失了全局信息,影响了目标检测的准确性。 为了提取更多的全局特征,使用两个连续的相同的3×3 卷积来获得辅助残差网络块中的5×5 感受野。 辅助网络将提取的全局信息传输到主干网络,主干网络结合较大感受野获得的全局信息和较小感受野获得的局部信息,以获得更多的目标信息。 此外,随着网络深度的增加,语义信息也变得更加高级。 注意机制可以集中处理和传递有效特征,通道抑制无效特征。 因此,本文在辅助网络模块中引入了通道注意力模块和空间注意力模块,以获取更有效的特征信息。 卷积块注意模块(Convolutional Block Attention Module ,CBAM)将通道注意力模块和空间注意力模块串联结合组成的注意力模块,直接使用CBAM 来同时实现通道注意和空间注意。

通道注意力模块分别通过最大池化层(Max-Pooling)和平均池化层(Average-Pooling)对输入特征图的空间维度进行压缩,输出两个特征描述符,将两个特征描述符发送到一个共享网络,使用元素求和来合并输出特征向量。 最后, 通过函数激活特征向量,得到通道注意图。 通道注意力模块结构如图1 所示。

图1 通道注意力模块结构图Fig. 1 Channel attention module structure

空间注意力模块对输入特征图进行平均池化和最大池化操作,将其连接起来生成一个有效的特征描述符, 应用两个卷积层来强调描述符区域,再由函数进行激活,得到空间注意力图。 空间注意力模块结构如图2 所示。

图2 空间注意力模块结构图Fig. 2 Spatial attention module structure

卷积块注意模块(CBAM)是将通道注意力模块和空间注意力模块串联相结合组成的注意力模块,CBAM 的表达式如式(1)和式(2)所示,其组成的辅助网络结构如图3 所示。

图3 辅助网络结构图Fig. 3 Auxiliary network structure

其中,∈R表示输入特征图;“ ⊗”表示元素式乘法;为最终输出特征图;M() 和M()分别为通道注意力图和空间注意力图。

M() 的计算公式(3)为:

其中,() 和Max() 分别表示平均池化操作和最大池化操作;()表示多层感知器网络;() 是函数。

其中,表示一个滤波器大小为7×7 的卷积运算,“ ;[ ] ”表示连接操作。

在YOLOv4-tiny 中,利用FPN 结构对输出的两个有效特征层进行简单的特征融合。 其过程如下:对最后一个有效特征层进行卷积,然后上采样,一方面通过yolo_head 处理输出特征尺度为13×13 的预测结果,另一方面与前一个输出的有效特征层进行叠加,通过yolo_head 处理输出特征尺度为26×26 的预测结果。 YOLOv4-tiny 网络输出的13×13 和26×26 两个预测尺度,对被检测图像中的大目标的检测效果较好,对小目标而言检测效果较差。 为了提高网络对小目标的检测能力,在原网络结构上增加了上采样2,在通道维度上连接了CPSBlock 层和上采样2,并增加了检测尺度。 特征金字塔网络由原来的13×13 和26×26 两个预测尺度增加为13×13、26×26 和52×52 3 个预测尺度,有助于提高检测网络对小目标的检测精度。 改进的YOLOv4-tiny 网络结构如图4 所示。

图4 改进的YOLOv4-tiny 网络结构图Fig. 4 Improved Yolov4-tiny network structure diagram

2.2 损失函数的改进

YOLOv4-tiny 的损失函数由边界框回归损失、置信度损失和分类损失3 部分组成。 边界框回归损失函数采用函数,置信度损失和分类损失采用与YOLOv4 相同的交叉熵函数。 Rezatofighi 等提出损失,在损失基础上增加了包含检测框和真实框的最小矩形框的检测框,解决了检测框和真实框不重叠的问题,但是当真实框和检测框之间出现包含关系的时候,和效果相同;Zheng 等针对这一问题,提出损失,将预测框和真实框都包含进检测框,但是计算的不是框之间的交并,而是计算每个检测框之间的欧氏距离。损失考虑了中心点距离、长宽比和重叠面积,在损失的基础上加入长宽比的惩罚项,这样预测框就会更加的接近真实框。损失的计算公式(5)公式(8):

其中,为预测框;B为真实框;和b分别表示预测框和真实框的中心点;和为预测框的宽和高;wh为真实框的宽和高;表示预测框和真实框的最小外界矩形的对角线距离;() 表示欧式距离;是用于协调比例的参数;用来衡量长宽比的一致性。

为了增强模型对缺损检测的能力,使用Focal损失函数替换置信度和分类的二分交叉熵损失函数。损失是针对分类过程中存在正负类样本分布不均衡问题提出的,通过减少易分类样本的权重,使模型在训练时更注意难以分类的样本。损失计算公式(9):

其中,为真实样本的标签;y为经过的预测输出,在[0,1]之间取值;的作用是减少易分类样本的损失,使损失函数更加关注难以分类和误分类的样本;为平衡因子,其作用是平衡正负样本的不均匀比例,防止易分类类别的损失函数过小。和共同调节达到相对平衡。

2.3 先验框的改进

为了适应钢卷端面缺陷的尺寸,还需要对数据集进行聚类,得到合适的先验框。 合适的先验框不仅能降低模型最后的损失值,还可以加快模型的收敛速度。 网络原有的先验框是在VOC 数据集上聚类得到的,而VOC 数据集包含的种类较多,情况复杂。 对钢卷端面缺陷检测而言,只包含端面缺损与端面拉丝两个主要缺陷目标,和VOC 数据集相比差异较大,直接使用网络原有的先验框不能很好地满足识别要求,所以利用加权K-means 聚类算法对钢卷端面缺陷数据集的宽和高进行聚类,得到新的先验框。 加权K-means 聚类算法使用聚类中心与样本之间的最大交并比来评价聚类结果,其目标函数如式(10)所示:

其中,box为样本的实际长、宽;cen为第个聚类中心;为样本数;为选取的聚类中心个数;ω为第个样本与第个聚类中心的权重;为聚类中心所属的中心点。

加权K-means 算法具体实现步骤如下:

(1)分析数据集中的样本,随机划分个聚类中心;

(2)求出每一个样本与中心点之间的距离,距离计算公式如式(11)所示:

其中,C(1) 、C(2) 为第个中心点的横、纵坐标,box(1)、box(2) 为第个样本的横、纵坐标;

(3)求权重矩阵,即每个样本所对应的聚类中心的权重,属于同一个中心点的聚类中心拥有相同的权重。 权重是样本到聚类中心距离标准化后的相反数,距离较远的样本权重为0,降低不平衡样本的干扰。 式(12)为所有样本到某一中心点距离的均值,式(13)为权重的计算公式。

(4)迭代更新所有的聚类中心,直到聚类中心不再发生改变。

对于钢卷端面数据集,运用上述方法重新进行聚类分析后,得到的先验框见表1。

表1 钢卷端面数据集的先验框值Tab. 1 The prior box values of the data set of steel coil end faces

3 实验结果与分析

本文所有的实验均在Windows10 系统下进行,硬件环境:CPU 为Intel i5-11400F 8G;GPU 为NVIDIA GTX1080Ti;开发环境:Tensorflow-gpu2.2.0;CUDA 版本号为CUDA10.1;OpenCV3.4;Python3.6。

3.1 实验数据集

本文数据集是通过某热轧厂生产现场采集得到,共采集缺陷图片1 000张。 为了丰富数据集,获得更优的训练效果,使用随机转换的方式增强数据集,包括图像顺时针旋转、逆时针旋转、镜像翻转、尺度变换等对数据集进行扩充,由原来的1 000 张图像扩充到5 000张。 根据VOC2007 数据集的格式制作标准的钢卷端面数据集,使用LabelImg 缺陷标注软件对图片中的缺陷进行标注。 得到缺陷区域的边界框以及缺陷的类别标签,并生成对应的XML 文件,完成VOC2007 数据集格式的转换,之后将数据集按8:2 的比例随机生成了训练验证集和测试集,再进行模型训练及测试。

3.2 算法评价指标

为了更加合理有效地对最后的检测结果进行判别,根据检测速度和检测精度要求,本文采用精准率() 和召回率() 作为缺陷识别的评价指标,精准率是所有被正确识别的缺陷占所有被识别到的缺陷的比例;而召回率指的是所有被正确识别的缺陷占所有应该被识别到的缺陷的比例,式(14)和式(15)。 为了同时考虑精准率和召回率,权衡两者之间的平衡关系引入了1 值,计算公式(16)。

其中,为成功预测的缺陷目标;为被模型误判为缺陷的非缺陷目标;表示被模型错误预测为非缺陷的缺陷目标。

由于精确率和召回率受到置信度的影响,单独采用精确率与召回率作为评价指标会有局限性,所以,在实验中加入平均精度均值(mean Average Precision,) 和检测速度作为评价指标。 平均精度(Average Precision,) 为不同召回率下精确率的平均值,用来评价某一缺陷的检测精度,mAP是所有缺陷类别检测精度的均值,一般用来评价网络模型的整体检测性能,计算公式如式(17)所示。目标检测算法的另一个重要性能指标是检测速度,评估检测速度的常用指标是每秒帧率(frame per second,), 即网络模型每秒能够检测的图片数量,计算公式如式(18)所示。

其中,() 为某一类的检测精度;为类别数;为检测图片总数;为检测总时间。

3.3 实验结果分析

本文实验中训练网络模型的参数设置为:每次迭代训练样本数为64,分16 个批次,动量因子设置为0.949,权重衰减系数为0.000 5,最大选代次数为5 000,学习率为0.001;训练代次数达到3 000 和4 000时,将学习率分别降至初始学习率的0.1 和0.01。

本文以相同的实验数据分别使用YOLOv3、YOLOv3-tiny、YOLOv4、YOLOv4-tiny 与本文改进后的YOLOv4-tiny 模型进行训练,在相同测试集下进行测试对比,测试其在和中的性能。 对比结果见表2。

表2 模型实验结果对比Tab. 2 Comparison of model experiment results

从表2 中可以看出,YOLOv3 和YOLOv4 模型的数值高于其他模型,但这两个模型的检测速度却远远小于其他模型。 因为YOLOv3 和YOLOv4 检测网络结构复杂,参数较多,使得其相较轻量化的模型可以取得更好的检测精度,但检测速度相应的会低于轻量化的模型。 YOLOv3-tiny、YOLOv4-tiny 和本文改进的YOLOv4-tiny 方法属于轻量级深度学习方法,其网络结构相对简单,参数较少,因此在检测速度上表现的更好。 本文改进后的YOLOv4-tiny 方法相较YOLOv3-tiny 和YOLOv4-tiny,在数值上分别提升了13.4%和4.6%。 由于改进后的YOLOv4-tiny 在检测网络中加入注意模块和一个上采样,增加了网络的参数,检测速度较YOLOv4-tiny 稍慢一些,但可以满足实际生产的检测需求。 表明本文改进后的YOLOv4-tiny 检测精度提升的同时又保证了检测的速度。

由于YOLOv3-tiny、YOLOv4-tiny 和本文改进后的YOLOv4-tiny 方法都属于轻量级深度学习方法,所以采用本文改进后的YOLOv4-tiny 方法、YOLOv3-tiny 和YOLOv4-tiny 方法,分别对缺陷检测后的精准率、召回率、1 值进行比较,模型的实验结果对比如图5 所示。 改进后的YOLOv4-tiny 实验检测效果如图6 所示。

由图5 可以看出,本文改进后的YOLOv4-tiny对缺损的检测精准率和召回率比YOLOv3-tiny提升12.3%和3.3%,比YOLOv4-tiny 提升8.2%和1.5%,体现模型综合性能的1 值分别高出9%和5.6%;对拉丝的检测精准率和召回率比YOLOv3-tiny 提升5.5%和5.8%,比YOLOv4-tiny 提升4.3%和2.1%,1 值分别高出6.5%和3.5%;对缺损+拉丝的检测精准率和召回率比YOLOv3-tiny 提升5.5%和5.8%,比YOLOv4-tiny 提升4.3%和2.1%,1 值分别高出6.5%和3.5%。 本文改进后的YOLOv4-tiny 方法综合性能得到一定的提升。

图5 模型实验结果对比Fig. 5 Comparison of model experiment results

图6 改进后的YOLOv4-tiny 检测效果图Fig. 6 Improved detection effect of Yolov4-Tiny

4 结束语

针对带钢生产过程中钢卷端面出现的端面缺损和拉丝缺陷,本文提出了一种改进的YOLOv4-tiny检测方法。 首先,在骨干网络中加入了注意模块,增强了检测模型对缺陷特征的表达和对缺陷区域的聚焦能力;同时又增加了一个上采样层,优化了深度特征和浅层特征的特征融合,改善了感兴趣区域的特征表达;改进模型的损失函数,使用损失函数替换置信度和分类的二分交叉熵损失函数,解决分类过程中存在正负类样本分布不均衡问题;最后,利用加权K-means 聚类算法对钢卷端面缺陷数据集的宽和高进行聚类,得到新的先验框,以适应钢卷端面缺陷的尺寸。 改进的YOLOv4-tiny 网络模型通过实验结果验证与分析可知,相比较改进前的YOLOv4-tiny 网络模型,检测速度接近,提升了4.6%,保证检测速度的同时检测能力得到了一定的提高,满足了带钢生产的端面缺陷检测要求。

猜你喜欢

端面聚类样本
基于端面行星齿轮系的新型多挡位变速箱设计
基于数据降维与聚类的车联网数据分析应用
基于模糊聚类和支持向量回归的成绩预测
一种采暖散热器的散热管安装改进结构
直击高考中的用样本估计总体
一种面板复合辅助工具
随机微分方程的样本Lyapunov二次型估计
基于密度的自适应搜索增量聚类法
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
七年级数学下册期末检测题(B)