基于改进YOLO-V3 的汽车刹车衬芯缺陷检测

2022-10-31 08:40吴皓沙玲
农业装备与车辆工程 2022年5期
关键词:卷积尺度精度

吴皓,沙玲

(201620 上海市 上海工程技术大学 机械与汽车工程学院)

0 引言

随着中国“智能制造2025”的提出,工业界正在积极探讨智能技术在行业中的应用前景,智能化检测与识别是备受关注的难点与重点。衬芯是汽车刹车系统中的一个重要零件,如图1 所示,衬芯的法兰面缺陷会影响刹车系统的密封性。

图1 衬芯实物图Fig.1 Physical drawing of brake liner

目前对衬芯的质量检测主要由人工完成,人的主观因素会导致检测准确率不高。除了人工检测,零件的表面缺陷检测还可以借助传统算法、机器学习、深度学习来完成[1]。其中,传统算法对于缺陷特征固定的场景具有检测速度快、运行效率高的优势,但当缺陷特征形态复杂多变时,其局限性便体现了出来[2];基于机器学习的检测方法鲁棒性有了提升,但是由于机器学习方法对特征的要求高,特征的质量好坏在很大程度上影响着检测效果;而深度学习利用实际生产中的大量数据拟合缺陷的特征进行检测,可以明显提升检测缺陷的准确性,并有效增强缺陷检测模型的泛化能力。在数据充足的前提下,工件表面的缺陷检测效果较为出色[3-4]。

基于深度学习的检测算法主要包括一阶段和二阶段2 类[5]。以Faster RCNN[6]为代表的二阶段检测算法先提取出候选框,再对候选框内的目标进行识别;而以YOLO-V1[7]、SSD[8]为代表的一阶段目标检测算法直接回归出了目标的位置和类别。由于检测原理的区别,二阶段的检测算法精度较高,但是速度不快;一阶段的检测算法精度略低,但是速度较快。

在实际生产中,检测速度和检测精度需要权衡考虑。YOLO-V3 在目标识别检测算法中表现优异,兼顾高准确率与检测速度。在目标检测任务中,通常将微小型和细长型待测物都归为小尺寸目标[9]。由于衬芯的法兰面缺陷较为微小,为提升检测算法对于小目标的检测效果,本文选择以YOLO-V3[10]为基础的改进网络对衬芯进行缺陷检测。

1 YOLO-V3 算法

REDMON 等人于2016 年提出一阶段目标检测算法YOLO-V1,通过回归将目标定位和目标识别一并完成。由于不用花费大量时间在生成候选框上,YOLO-V1 算法的实时性较Faster RCNN有较大提升。YOLO-V3 于2018 年被提出,相比YOLO-V1,除了检测精度有所提升,通过多尺度融合预测,对于小目标检测的效果也得到了较大的提升。

1.1 网络结构

YOLO 系列网络的每一次迭代都伴随着网络结构的调整,YOLO-V3 也不例外。YOLO-V3 的骨干网络为Darknet53,其结构如图2 所示。一方面,相比YOLO -V2 的Darknet19 加深了网络深度,使深层网络特征图的语义信息更为丰富;另一方面,为了减少因为网络深度带来的反向传播过程中梯度消失的风险,YOLO-V3 借鉴了残差神经网络的思想,大量采用short cut[11]结构。

图2 YOLO-V3 结构Fig.2 Structure of YOLO-V3

如图3 所示,short cut 结构将未经卷积的特征图直接与经过3×3 卷积的特征图融合,这样的设计使得网络在进行反向传播时可沿着未经3×3 卷积的路径,如此就避免了由于卷积层过多而带来的训练误差增大的风险。为了保证经过3×3 卷积的特征图与未经卷积的特征图维度一致,在short cut结构中添加1×1 卷积核以调整特征图维度。

图3 Short Cut 结构Fig.3 Structure of Short Cut

1.2 FPN 结构

YOLO-V3 借鉴了FPN[12](特征金字塔)中的特征融合思想,将不同尺度的特征进行融合。浅层网络提取的特征比简单,但分辨率较高,适合用来预测较小目标;深层网络提取的特征较为复杂,感受野较大,适合用来预测大目标[13]。经过卷积,YOLO-V3 网络中提取的特征图共有13×13、26×26、52×52 三种尺度。

如图4 所示,首先将13×13 的特征图Scale1与网络第61 层输出进行concat(张量拼接),经过卷积输出26×26 的特征图Scale2,然后与网络第36 层输出进行concat,经过卷积输出52×52 的特征图Scale3。YOLO-V3 通过聚类得到9 个尺寸的anchor box,并包含(x,y,w,h,confidence)5 个参数,在COCO 数据集中每个anchor box 需要预测80 个种类,因此特征图的深度为255。YOLO-V3 将各种尺度的特征进行融合,使得网络能够同时学习到深层与浅层的特征,从而提高了模型对于小目标的检测能力。

图4 多尺度预测Fig.4 Multi-scale prediction

2 改进的YOLO-V3 算法

衬芯的法兰面缺陷主要包括凹坑、缺口、裂纹、浅沟,而缺陷的尺寸不一,对于尺寸较小的缺陷检测难度较大。为了提升网络对于微小目标的检测能力,本文对YOLO-V3 进行了改进,进一步增强了网络对于微小目标的定位与识别能力。

2.1 FPN 结构改进

为了提升网络对于微小特征的检测效果,在YOLO-V3 原有的FPN 结构上增加一种尺度以提高对于浅层网络特征的利用效率,最终将4 个尺度的特征图融合并输出预测。

经过改进的网络如图5 所示。本文增加了尺度为104×104 的特征图Scale4,并通过K-Means 算法聚类出12 种尺寸的anchor box。根据特征图的尺度进行分配,特征图的尺度越大,分配到的anchor box 尺寸越小,并将尺度为104×104 的特征图与已有的3 种尺度的特征图融合,为最终输出的特征图增加了空间信息,这使得网络能够更为精准地定位微小缺陷。

图5 改进YOLO-V3 结构Fig.5 Structure of improved YOLO-V3

2.2 特征提取网络改进

由于F'PN 结构改进引入了新的参数,为加快检测速度,本文借鉴MobileNet[14],引入深度可分离卷积取代short cut 结构中的普通3×3 卷积,并添加一层1×1 卷积核的卷积层用来平滑特征。深度可分离卷积与普通卷积方式最大的区别是深度可分离卷积采用逐通道卷积加上逐点卷积的方式代替普通卷积,其分离之意是指对于通道广度和特征空间的分离[15],相比普通卷积的参数量大大降低。图6(a)所示是未经变化的short cut 结构,图6(b)所示是引入深度可分离卷积的short cut 结构。

图6 Short Cut 结构改进对比Fig.6 Comparison of Short Cut structure improvement

3 基于改进YOLO-V3的衬芯缺陷检测实验

3.1 缺陷数据集

神经网络的效果一方面由其设计决定;另一方面,一个高质量数据集也在很大程度上影响神经网络最终的性能表现。由于缺乏衬芯缺陷图像数据集,本文采用工厂提供的衬芯图像作为缺陷数据集。如图7 所示,缺陷种类包括凹坑、缺口、裂纹、浅沟。

图7 衬芯法兰面缺陷类型Fig.7 Defects of brake liner

本文使用labelImg 软件对缺陷区域进行标注,产生的标注文件是XML 文件,XML 文件中包括缺陷区域的位置信息和种类信息。如表1 所示,各种缺陷标注的数量相近,为避免网络训练陷入过拟合,也为了提升检测网络的泛化性能,本文对数据集进行了扩充。

表1 缺陷标注数量分布Tab.1 Distribution of marked defects

3.2 数据集扩充

神经网络的复杂性很大程度上决定了网络的性能,而复杂性的提升如果没有数据量作为支撑,神经网络很容易出现过拟合,因此,本文针对空间位置、角度、噪声、分辨率这几个方面对现有的数据集进行数据扩充,最终的标注缺陷区域数量达到了2 000 个。

3.3 改进的YOLO-V3 网络的训练

实验均在同一台主机上进行,显卡型号为GTX 2060 Super,CPU 型号为至强E3 1231 v3。在对参数进行设置时,通过多次实验对比,发现将本文的训练集与测试集的划分比例设置为8:2,学习率设置为0.001 2,批量大小设置为1,衰减系数设置为0.000 5 时,网络收敛效果较好。

改进的YOLO-V3 网络在训练过程中得到损失函数,如图8 所示,横轴为训练的图片数量,纵轴为损失函数值。可以看出,曲线在训练了12 500张之后损失函数趋于收敛,稳定在0.079 529 到0.125 61 之间,这说明了改进网络的损失函数趋于收敛,训练基本完成。

图8 改进网络的loss 曲线Fig.8 Curve of improved network’s loss

3.4 实验结果与分析

3.4.1 评价指标介绍

对于缺陷检测,通常使用FPS 和mAP 这2 个指标来量化缺陷检测算法的速度和精度性能[16]。FPS 意为算法每秒可以处理的图像数量,mAP 意为均值平均精度,即所有类别的平均精度(Average Precision,AP)的均值,而计算每个类别的平均精度又涉及到精度(PRECISION)和召回率(RECALL)。精度的升高往往伴随着召回率的降低,因此在评估模型对于某一类的检测性能时不能只参考其中的某一个指标,二者必须兼顾。

假设TP 代表正类预测为正类,FP 代表把负类预测为正类,FN 代表把正类预测为负类。通过式(1)、式(2)可以分别求得精度、召回率。

在计算平均精度时,对于某一类缺陷,需要根据置信度对预测框进行排序,完成后获得一组包含精度和召回率的数组。以该数组中的数据为基础,建立PRECISON-RECALL 坐标系,P(r)代表某个RECALL值对应的PRECISON值,平均精度可由式(3)求得:

在求出每一类的平均精度之后,根据式(4)可求得均值平均精度。

式中:n——类别的数量。

3.4.2 网络性能对比

如图9 所示,横轴表示训练迭代次数,纵轴表示mAP。每当训练迭代一次,便对训练过程中的预测结果计算mAP 并记录下来,粗线为YOLO-V3的mAP 曲线,细线为改进网络的mAP 曲线。随着训练的进行,两者的mAP 趋于收敛,最终改进网络的mAP 稳定在0.860 6~0.903 2 之间,而YOLO-V3 稳定在0.833 2~0.861 3 之间。由此可见,在衬芯的缺陷检测训练稳定后,改进网络的mAP要高于YOLO-V3,说明在训练趋于稳定后,改进网络的分类性能优于YOLO-V3。

图9 mAP 曲线对比图Fig.9 mAP curve comparison chart

除了检测质量以外,检测速度也需要被考虑。表2 对各算法的检测速度进行了对比。基于测试集,本文对所有网络的预测进行计时,改进网络的FPS为2.381,原YOLO-V3 的FPS 为3.125,相差不大。相比YOLO-V3,改进网络的精度有所提高,但是检测速度并没有相差过大,说明针对网络卷积方式的改进取得了一定的效果。

表2 检测速度对比Tab.2 Comparison of detection speeds

如图10 所示,本文随机抽取一张衬芯采集图像,使用训练过的YOLO-V3 和改进网络分别进行测试,图10(a)为YOLO-V3 检测效果,图10(b)为改进网络检测效果。可以看出,改进后的网络对于微小目标检测效果有较大的提升,说明改进后的网络对于目标尺度方面的检测,其鲁棒性比YOLO-V3 强。

图10 图像检测效果对比图Fig.10 Comparison of image’s detection

4 结语

本文是基于YOLO-V3 网络进行改进,一方面,针对YOLO-V3 网络对于衬芯的小目标检测置信度不够的问题,对YOLO-V3 的FPN 结构进行改进,在原有的三层特征图基础上加上一层深度更浅的卷积层特征图,为融合后的特征图加入更多的浅层特征信息,达到提高网络对小目标的检测效果的目的。另一方面,针对改进FPN 结构引入大量参数导致训练成本上升的问题,本文引入深度可分离卷积替代普通的卷积方式,减少了参数量,从而降低了网络的训练成本并提高了网络的检测速度。

实验结果表明,相比原YOLO-V3 网络,改进网络对于小目标的检测效果更好,虽然检测速度略有下降,但检测精度较其他算法有较好表现,能满足工业现场对衬芯缺陷检测的实时性和准确性要求。说明本文的改进网络有一定的实际意义,并且在针对工件的小目标检测场景有一定的借鉴作用。

猜你喜欢
卷积尺度精度
基于不同快速星历的GAMIT解算精度分析
基于全卷积神经网络的猪背膘厚快速准确测定
环境史衰败论叙事的正误及其评判尺度
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
近似边界精度信息熵的属性约简
电力系统短期负荷预测方法与预测精度
以长时间尺度看世界
9
浅谈ProENGINEER精度设置及应用