改进Yolo V3 算法在工件缺陷检测中的应用

2021-04-30 08:23石振华
机械设计与制造 2021年4期
关键词:工件聚类样本

石振华,陈 杰

(贵州大学人民武装学院信息工程系,贵州 贵阳 550025)

1 引言

缺陷检测是工件生产过程中的重要环节之一。工件缺陷很大程度上影响了其表面质量及物理性能。随着智能制造、工业4.0等概念的相继提出,依靠人工检测的方式已无法满足企业对生产效率的需求,企业转型日益迫切[1]。基于机器视觉的检测方法是实现工件表面缺陷检测的有效途径。

现有的缺陷检测方法大都是基于传统机器学习方法。即先对图像进行滤波等预处理,经人工特征提取图像特征后再进行缺陷识别。例如,文献[2]使用Contourlet 变换将样本分解为不同方向及尺度的子带,用以形成高维特征向量,随后将降维处理后的特征向量送入SVM 分类器中进行铸坯缺陷识别,取得了优于基于Gabor 小波特征提取得到的识别方法;文献[3]针对形态复杂的工件表面缺陷难以分类问题,提出了一种基于缺陷自适应聚类的方法,该方法通过改进局部密度峰值确定聚类中心点和数目后,使用谱多流形聚类法分离缺陷并实现检测,实验结果均优于Kmeans 聚类法、普聚类法;文献[4]提出一种基于像元搜索算法的缺陷检测算法,以解决复杂背景下工件表面缺陷难以区分的问题,该方法使用改进滤波算法对图像去噪,之后以像元搜索法确定背景、初始目标及伪目标区域,取得了较高的准确度。以上方法实现过程中,样本预处理方法及特征选择将对缺陷检测质量优劣性产生影响。

近年来,深度学习网络在计算机视觉、语音识别、自然语言处理等领域取得了较大突破。其中,基于卷积神经网络(CNN)的目标检测算法正逐渐开始应用在工业领域[5-6]。拟将目前性能较优秀的Yolo V3 深度目标检测网络[7-9]应用于工件表面缺陷检测,并针对数据集特点调整模型结构和预处理方式,以改善检测方法的鲁棒性,提升检测性能。

2 数据增强

用于验证所提方法可行性的实验对象为一种环形工件。该工件具有形状稳定、单一、样本数量较少的特点。原始图像均为使用工业灰度相机拍摄到的环形工件缺陷图,包含无缺陷、表面划痕、表面凹坑、表面磨损共计200 张图像,每一类样本数量均为50 张。为使得检测过程满足工业领域实时性和准确性的需求,此处将原始图像尺寸归一化为320*320 大小,这样的尺寸可以令算法在不破坏图像有用信息的前提下,提升检测速度。此后对归一化后的图像进行数据增强操作[10]。数据增强方法主要选取了旋转、平移、缩放及水平翻转。这些方法并没有改变图像中的像素值大小,而仅仅是变换了像素值的位置。所以,具有平移不变性学习能力的卷积神经网络能自适应地学习到更多有用的、高维度的特征用于后续的识别及定位过程,避免出现过拟合现象。数据增强流程,如图1 所示。

图1 图像预处理流程Fig.1 Image Preprocessing Process

3 基于Yolo V3 的表面缺陷检测模型

Yolo 目标检测的基本思想是使用回归方式获取图像的类别和位置。该方法先后共有3 个版本,各版本均不断与先进网络结构和检测思想相结合以提升模型性能,是实际工程中常使用的目标检测算法。其中,Yolo V3 因使用了残差神经网络DarkNet53 作为特征提取网络,在保证检测速度的前提下得到了更高的识别正确率,故这里所提表面缺陷检测方法将以Yolo V3 目标检测网络为基础进行调整。具体所设计的模型结构,如图2 所示。

图2 缺陷检测模型结构图Fig.2 Defect Detection Model Structure

图中,DBL 的全称为Darknetconv2d-BN-Leaky,即在卷积层后加入了批标准化(Batch Normalization,BN)与Leaky ReLU 激活函数。使用BN 可以使得输出特征各维度均值为0,方差为1。这使得当训练神经网络时,参数更新过程的网络层次耦合问题得以解决,并保留了网络的非线性变化能力。BN 算法可表示如下[11]:

式中:γ、β—自适应学习参数;x^i—标准化后的像素点,更新方式为反向传播算法。BN 的作用是使特征具备一定的非线性。Leaky ReLU 隶属ReLU 激活函数类,ReLU 函数类中各激活函数的不同之处主要在于对负值区间的映射。Leaky ReLU 函数的表达式如下:

式中:ai—固定参数,取值范围为(1,+∞)。

残差块Res 由残差单元及DBL 构成,样本图像在DarkNet网络中的变化过程和该网络具体的残差结构,如表1 所示。

表1 DarkNet 参数设置表Tab.1 Parameter Setting Table of DarkNet

标准Yolo V3 网络选择8 倍降采样后的特征图为基础用于检测对象中的小目标。由于环形工件的表面缺陷普遍尺寸较小,这样的处理方式容易丢失微小缺陷位置信息,导致最后出现错检或漏检现象。为解决上述问题,此处构建的网络将8 倍降采样后的特征图进行2 倍上采样后,与之前4 倍降采样后的特征图进行拼接,以获取原始样本图像中更多的小目标信息。经过特征提取后,Yolo V3 借鉴了Faster R-CNN 中anchor boxes 的思想,以Kmeans 聚类的方式选取固定大小的区域候选框(anchors)。具体地,采用平均重叠度(Average Intersection over Union,Avg IoU),即生成的RoI 与真实目标窗口(Ground Truth,GT)交集与并集的比例值的平均值作为判别依据,其目标函数为:

式中:B和C—检测目标及簇的中心;n和k—样本数量与簇的个数;nk—第k个聚类中心中的样本数量;i与j—样本即聚类中心的索引值;IIoU(B,C)—簇的中心框与聚类框的交并比。

Yolo V3 在COCO 数据集中共使用3 种下采样尺度(8、16、32 倍)对应的9 种大小候选框用于目标检测。为保证算法的快速性和实用性,这里仅选择4 倍及8 倍降采样后的两种尺度进行聚类,以得到适合检测环形工件缺陷的初始候选框,减少冗余候选框的产生。最终得到的六组预选框的参数为:(18,26)、(28,25)、(25,35)、(36,45)、(51,32)、(35,56)。

Yolo V3 是一个端到端的网络模型,其训练时的损失函数主要包括如下四个部分:中心坐标损失、宽高坐标损失、预测类别损失及置信度损失。其中,中心坐标损失可表示为:

4 实验结果与分析

实验机构主要由图像采集模块及分析模块构成。前者的主要组成为:工业灰度相机、LED 弧形光源、镜头以及遮光板,其整体结构,如图3 所示。

图3 图像采集模块实物图Fig.3 Image Acquisition Module

分析模块的组成为:Intel Core i7 9700K 处理器,主频3.6GHz;内存为32GB;GPU 选用两块GeForce 1080TI;操作系统为Ubuntu14.04.2;深度学习框架选用Keras。实验前将预处理后的4 类样本(含无缺陷样本)共计1000 张图像打乱,从每一类样本选取80%作为训练集,余下20%作为验证集。

网络训练时的主要参数设定,如表2 所示。此后,将整个数据集遍历40 次,所得到的表面缺陷检测网络训练损失函数曲线,如图4 所示。

表2 训练参数设置表Tab.2 Training Parameter Setting

图4 损失函数变化曲线图Fig.4 Loss Function Curve

4.1 表面缺陷检测网络实验结果

网络性能评价主要依据训练好的网络是否具备良好的鲁棒性,即网络在验证集中的表现。验证集主要由未经训练的200 张样本图像构成,每种类别均有50 张图像,部分图像含有多种缺陷,此处将其归类于每一类样本中。得到的最终检测效果,如图5所示。

图5 检测效果图Fig.5 Test Effect Drawing

为定量地衡量检测结果,此处以准确率AR、召回率Re 作为性能评价指标,两者可由下式表示:

式中:XTP—正确预测到缺陷的数量;XFP—在没有缺陷的情况下错误预测到缺陷的数量;XFN—在有缺陷的情况下预测结果为正常的数量;XTN—在正确预测到无缺陷的数量。

上述指标计算结果,如表3 所示。同时可绘出检测结果的混淆矩阵图,如图6 所示。

表3 验证集检测结果Tab.3 Validation Set Test Results

图6 检测结果混淆矩阵图Fig.6 Confusion Matrix of Test Results

从表3 和图6 可知,缺陷检测网络在验证集中取得了较好的检测效果。总共仅有10 个样本出现了漏检、错检情况。其中,正常样本和划痕缺陷、划痕样本与凹坑样本最易出现混淆,少量的凹坑样本和磨损样本会相互误判。此外,样本图像的成像质量、预处理方式也会对最终的实验结果造成一定影响,但实验结果仍满足实际生产中对检测精度的要求。

4.2 网络性能对比结果

为进一步测评网络性能,实验选取经典的机器学习图像检测方法,即特征提取+BP 神经网络[12]、特征提取+SVM[13],以及基于VGG-16 的Faster RCNN 网络[14]、未针对本数据集改进的Yolo V3深度学习网络与所提网络进行缺陷检测实验对比。前两种机器学习模型通过OpenCV 库中detectMultiScale 函数实现多尺度目标检测,所有检测模型均在相同的训练集、验证集中训练和测试。各模型的主要特征提取方式及在验证集中的实验结果,如表4 所示。

表4 各模型运行结果对比表Tab.4 Comparison of Model Operation Results

从表中可知,所提检测方法在准确率上优于其与对比方法,单次运算速度为0.032s,能保证大多数情况下的检测需求。由于针对实验中的环形工件缺陷特点修改了用于特征融合的网络结构,该方法比未经改进的标准Yolo V3 网络具有更好的表现。同时,三种深度学习方法正确率明显优于常规机器学习方法,这主要是因为深度学习网络能自适应的学习和保留图像的高维特征,从而免去了根据人工经验手动提取特定特征这一步骤。

5 结论

提出了一种基于Yolo V3 目标检测模型的表面缺陷检测方法。首先,在图像预处理阶段使用了数据增强方法,扩充了样本数量,为后续深度学习的训练过程提供保证,避免出现过拟合;其次,针对环形工件缺陷数据集形状单一、缺陷尺寸普遍偏小的特点,选择4 倍、8 倍降采样后的特征图进行融合用于检测对象中的小目标,并减少预选框的数量,保证了算法的准确性和实时性;最后,搭建图像采集模块和分析模块进行实验,以准确率和召回率作为指标评估算法效果,并与其它类型的检测网络对比,验证了所提方法的有效性。但是,由于实验对象仅为环形工件缺陷样本,这里所提方法的适用对象具有一定局限性,未来将继续结合更多的网络结构,探讨该方法在不同数据集及工况下的改进思路。

猜你喜欢
工件聚类样本
用样本估计总体复习点拨
基于K-means聚类的车-地无线通信场强研究
考虑非线性误差的五轴工件安装位置优化
推动医改的“直销样本”
三坐标在工件测绘中的应用技巧
基于高斯混合聚类的阵列干涉SAR三维成像
随机微分方程的样本Lyapunov二次型估计
村企共赢的样本
焊接残余形变在工件精密装配中的仿真应用研究
一种层次初始的聚类个数自适应的聚类方法研究