APP下载

基于YOLOv3的变速箱油封座缺陷检测

2022-03-31张晓昇方凯徐鑫

湖北汽车工业学院学报 2022年1期
关键词:残差尺度卷积

张晓昇,方凯,徐鑫

(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)

制造过程中难免出现工件损伤,正确识别缺陷是实现无缺陷制造的关键[1]。小型商用车变速箱油封座在生产压铸过程中出现的气孔、印痕和划痕等质量缺陷必须检测。早期在金属器件的检测中应用了传统的机器视觉方法,对采集的图片进行处理,实现了较高效率、不接触式检测,但极易受到现场环境和人为操作等干扰,特征提取的识别分类能力有待提高,难以大规模应用到实际生产中[2]。随着人工智能的蓬勃发展,深度学习广泛应用于缺陷检测,主要算法分为2 类:1)以Faster-RCNN 为代表的Two-stage 检测算法[3],将目标生成候选框并进行分类,检测实时性较差;2)以SSD、YOLO 为代表的One-stage 检测算法[4],使用回归机制对输入的整个图形直接检测,从模型中选择的候选帧数量少,速率较快,但精度略低于2步法。李维刚等人[5]利用YOLOv3 检测热轧带钢表面缺陷,使用加权K-means聚类算法来优化先验框参数,提高了先验框与特征图层的匹配度;方叶祥等人[6]利用特征金字塔与残差层融合对缺陷定位,使用非极大抑制法筛选边界框,基于缺陷权重优化损失函数,有效提高了YOLOv3算法对钢材表面划痕的检测精度;邢俊杰等人[7]提出基于CutMix 和YOLOv3 的识别金属工件缺陷方法CSYOLOv3,使用CutMix方法增加对缺陷的检测数量,拆分浅层大特征图与预测分支特征图融合,能提取更多的特征信息,增强鲁棒性。目前基于YOLOv3 的研究都是在数据和网络部分改进,在铸件表面缺陷检测中,由于缺陷目标尺寸过小,算法对目标不敏感,易造成漏检现象。文中基于YOLOv3网络,对不同大小缺陷进行分类检测,新增特征图层,形成4个预测尺度,同时合并BN层和卷积层参数,提高检测精度和速率。

1 YOLOv3算法

YOLO属于1步检测算法,以整幅图像为输入,利用CNN 对输入图片进行特征提取,将目标检测转化为回归问题。YOLOv3 将Darknet-19 升级到Darknet-53,卷积层增至53层[8],提高了检测精度。

1.1 网络结构

Darknet-53 网络采用全卷积层结构,由多个1×1和3×3卷积层组成。YOLOv3特征提取网络使用残差神经网络思想,在网络中加入了5 个残差块,每个残差块包含不同数量的残差单元,残差单元由输入与2 个DBL 单元进行残差操作组成。因为Darknet-53网络中加入了残差单元,解决了梯度消失的问题,提高了特征的重用性。结构中每个卷积层后跟有1个归一化层和1个激活层,在正向传播过程中设置卷积核的步长为2,经过5次下采样,图像变成原尺寸的1/32,结构如图1所示[9]。

图1 YOLOv3网络结构

YOLOv3 使用K-means 均值聚类获得目标的Anchor Boxes大小,输出3个尺度的特征图,尺寸分别为13×13、26×26 和52×52,不同尺度的特征图分别检测大中小目标。在每种尺度特征图上生成3个Anchor Box,共9 个Anchor Box[10]。检测时输入图片分别划分为若干个网格,网格宽和长分别为cx和cy,如图2所示。预测框的坐标点为[11]

图2 预测框示意图

式中:tx、ty、tw、th分别为网格输出相对于Anchor Box的偏移量;bx、by、bw、bh分别为预测框的中心坐标、宽和高;pw、ph分别为Anchor Box 的宽和高;σ为激活函数Sigmoid。将tx和ty的预测值映射到[0,1]集合内,计算对应的置信度。

1.2 分类预测

YOLOv3 使用多个独立的Logistic 分类器代替Softmox分类器。Softmox选取概率最大值为判定类别,仅属于1个类别;实际中1个目标可能不只属于1 个类别,故利用Logistic 对每个类别进行二分类,函数将输入值归一化[0,1],Sigmoid函数为[12]

式中:z为分类边界函数。假设z为线性:

将式(3)代入Sigmoid函数,得到预测函数为

分类器Logistic 利用计算出的Sigmoid 值是否大于0.5来判定目标是否属于该类别,使用若干个Logistic可达到多类别划分的目的。

1.3 损失函数

YOLOv3 的损失函数主要有目标置信度损失函数Lconf(o,c)、目标分类损失函数Lcla(O,C) 和目标定位损失函数Lloc(l,g),计算公式为

针对检测过程中常见的定位损失,包括预测帧宽高(w,h)损失函数和中心点(x,y)损失函数,分别采用误差平方和、二元交叉熵法计算。

2 YOLOv3改进

2.1 增加预测尺度

YOLOv3通过3个不同尺度的特征层来检测目标,分别利用32×32、16×16、8×8网格划分图像实现对大中小目标的识别。系统结构在第79层之后经卷积操作得到1 32的预测结果,感受野较大,适合检测大尺寸目标。将结果通过上采样与61层进行拼接,经卷积操作得到1 16的预测结果,感受野略小,适合检测中等尺寸目标。将91 层结果通过上采样与36层进行拼接,经过卷积得到1 8的预测结果,感受野最小,适合检测小尺寸目标。最终输出的3 个预测尺度分别为1 32、1 16、1 8。因汽车变速箱油封座铸件表面存在更小的缺陷,在原尺度的基础上新增第4 种尺度,按照YOLOv3 拼接原理,将103 层结果通过上采样与11 层进行拼接,即在52×52 特征图层完成上采样,在104×104 特征图层完成拼接,实现深浅层的特征融合,结构见图3。

图3 文中算法结构图

在Darknet-53 结构中利用第2 个残差块的浅层输出和经过2 倍上采样的深层输出进行拼接操作,在原基础上扩充张量维度,利用concat 函数完成维度合并,如图4所示;再经过1×1的卷积核,新增1 个预测尺度即输出1 个104×104 特征图层,提高了系统的特征提取能力。新特征层将输入图像划分为104×104个网格,更小的网格对小目标更敏感,利用网络浅层特征和深层特征相结合,适用文中对铸件工件的缺陷检测。

图4 张量的拼接操作

2.2 合并BN层和卷积层

在训练结构模型的过程中,利用批归一化层(batch normalization,BN)增快网络收敛,同时防止过拟合。虽然在一定程度上BN 层提高了系统的训练性能,但使网络前向推移增加了运算,延长了检测速度。为提高模型前向推移速度,将BN 层参数合并到卷积层。卷积层的计算公式为

式中:Wconv为卷积权重;X为卷积层输入;bconv为卷积偏置;Yconv为卷积层输出;BN层的计算公式为

式中:aBN和bBN为BN 层的结构参数;x为该批层的输入;m为均值;ε为方差;δ为0 的极限变量;将式(6)的输出作为式(7)的输入,计算过程为

式中:W'conv为合并后卷积层权重;b'conv为合并后卷积层偏置。合并后BN层和卷积层共用Blob数据,在分类精度不变的前提下加快了运算速度(表1)。

表1 合并前后检测结果对比

3 实验结果分析

3.1 实验条件和数据集

实验操作系统为Window10 系统;CPU 为Core i5-9400;GPU为GTX1050ti;内存为16 G;在深度学习框架Tensorflow 利用CUDA10.0 和CUDNN7.5.1加快GPU运算。

选用某专业厂汽车变速箱后油封座的表面缺陷数据集,图像用BFSU3-89S6C-C 面阵CCD 工业相机采集,包括有划痕、气孔、欠铸以及印痕等类型缺陷,共1500 张,其中1350 张有缺陷,150 张无缺陷,按照9:1的比例分为训练集和测试集。使用labelImg进行数据集的标注,标注过程中对目标点进行框定并定义其类型,之后生成.xml,部分标注数据集如图5所示。

图5 不同类型缺陷数据集

3.2 模型训练及分析

在模型学习过程中,输入图像大小为416×416,IOU 阈值为0.45,学习率为0.001,迭代次数为30,衰减系数为0.0005,设置batch_size 为4。引用评价指标准确率、召回率和平均精准度[13-14]:

式中:P为样本缺陷预测准确率;R为样本缺陷预测召回率;mAP为样本缺陷预测平均精准度;TP为被正确预测为缺陷的正样本;FP为被错误预测为缺陷的负样本;FN为被错误预测为缺陷的正样本;n为检测缺陷的目标类别。各类缺陷的精度AP为

图6为各类缺陷的P-R曲线,横纵坐标轴与曲线所围的面积表示此类缺陷的检测精准度。

图6 各类缺陷P-R曲线

3.3 测试结果及分析

改进后YOLOv3网络mAP为76.95%,是改进前结构mAP(61.37%)的1.25 倍。新增的特征层对小目标检测有明显提高,尤其对较小印痕mark1类缺陷的检测精度达到97.23%,mark2 也达到了80.82%,相比YOLOv3 网络分别提高了26.22%和5.06%。实验结果表明:增加第4 个尺度预测能有效提高原算法对车变速箱油封座铸件缺陷小目标的检测精度,验证改进方法的可行性。

采用文中改进模型对测试集进行检测,检测效果如图7~8 所示,可以看出,所有类别缺陷均可以检测,且文中算法的检测精度结果高于改进前YOLOv3算法,召回率也实现了一定程度的提高。

图7 Yolov3算法检测效果

图8 文中算法检测效果

为了验证综合检测能力,采用文中算法与经典的目标检测算法及文献[5-6]中的算法对文中变速箱油封座数据集进行实验对比。在相同实验条件下,设置初始学习率为0.001,文中IOU 阈值为0.45,目标类别置信度阈值为0.5,利用mAP和检测速度对比算法结果,如表2所示。由表2分析可知:Faster RCNN网络检测精度较高,略低于文中算法,属于two-stage算法,检测速度最低。SSD算法检测速度基本和YOLOv3算法相近,检测精度最低。文献[5]和文献[6]算法也是基于YOLOv3 改进的算法,相比文中算法,精度分别低了8.1%和2.8%;算法检测速度方面,文中算法的检测速度略低于文献[5]算法,这是由于文献[5]采用加权K-means聚类算法对先验框参数优化调整,提高了运算速率,但相比常用检测算法,文中算法的检测精度较高。相比YOLOv3,文中算法mAP提高了15.5%,检测速度提高6 f·s⁻¹。上述对比结果说明文中算法实现了一定程度的性能优化,有效避免了汽车变速箱油封座在加工生产中存在缺陷工件的漏检。

表2 不同算法结果对比

4 结论

针对传统视觉缺陷检测存在的问题,设计了基于YOLOv3的改进算法,在Darknet-53网络中新增第4 种尺度,将输入图片进行104×104划分来提高对小目标缺陷的敏感性,增强了检测系统的精确性。通过运算合并BN 层的参数到卷积层,加快了系统前向推移的速度。实验表明文中算法的精度和速率都得到了显著提高,满足了现场对工件的检测需求。后续将在不损失检测效率的前提下对模型继续优化,提升检测精度。

猜你喜欢

残差尺度卷积
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
财产的五大尺度和五重应对
卷积神经网络的分析与设计
基于深度卷积的残差三生网络研究与应用
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
宇宙的尺度