APP下载

基于YOLOv3的磁瓦表面缺陷检测算法

2019-11-06郭龙源童光红段厚裕赵林李武劲欧先锋晏鹏程张一鸣

成都工业学院学报 2019年3期
关键词:目标检测深度学习

郭龙源 童光红 段厚裕 赵林 李武劲 欧先锋 晏鹏程 张一鸣

摘要:由于磁瓦缺陷本身对比度、不同缺陷特征不尽相同等原因,传统缺陷检测算法检测效果较差。针对不同缺陷特征的磁瓦缺陷检测的问题,提出了一种基于YOLOv3的磁瓦缺陷检测方法。YOLOv3借鉴Resnet的残差结构可以很轻松的构建更深的卷积网络,更深的网络可以更好地表达磁瓦缺陷的特征。同时其类似FPN的特征融合思想,可以较好地保证小缺陷样本不会出现特征丢失的情况。基于以上优点,YOLOv3很适合应用于缺陷检测。实验结果表明,该方法在检测效果上不差于基于Resnet101的Faster R-CNN的方法.而且其平均检测速度快5倍以上。

关键词:缺陷检测;深度学习;目标检测;磁瓦

中图分类号:TP391文献标志码:A 文章编号:2095-5383(2019)03-0025-06

缺陷检测是机器视觉领域中的一个重要研究方向。磁瓦作为汽车发动机中电机的重要组成部分,表面缺陷的存在将直接影响汽车发动机的寿命。所以在磁瓦生产过程中,必须对其进行表面缺陷检测。如何解决磁瓦缺陷检测的实时性以及由于磁瓦缺陷本身对比度低、缺陷小而造成检测难度大等问题,是缺陷检测的重点和难点。缺陷检测一般先依据工件的特性和现场的环境,选择相应的光源,通过打光测试选择合适的照明方法可以获得良好的图像。然后根据实际成像图片的缺陷特征来设计提取算法,其提取算法常用到的特征包括:Haar、SIFT、HOG等;而其缺陷分类算法常用神经网络(MLP)、支持向量机(SVM)、Adaboost等。传统缺陷检测算法对于一类缺陷通过打光以及特定的算法设计,可以到达很好的检测效果。

在本文中磁瓦缺陷对比度较低,而且不同缺陷对比度不尽相同,所以无法通过打光来突出缺陷特征;其次磁瓦不同缺陷间的特征不相同,设计对应的特征提取算法难度较大;最后传统分类算法较难学习到磁瓦缺陷的特征。近年来,随着深度学习的广泛应用,在目标检测领域取得了一系列成果,如SSD、Faster R-CNN等,同时在工业检测领域得到极大的应用。常海涛等将Faster R-CNN应用到工业缺陷检测中通过预处理来修正预测框位置,取得较好的检测效果,孙晖等通过改进SSD来实现在线检测表面缺陷,李明等通过GAN来扩容数据集,再通过Faster R-CNN来进行缺陷检测,一定程度上解决了工业数据集难收集等问题。基于以上研究,本文针对磁瓦缺陷的特征以及工业实时在线检测的要求,提出一种改进的YOLOv3缺陷检测模型。

1YOLOv3算法描述

1.1YOLOv3的主体结构

1.1.1YOLOv3特征提取网络

对于卷积神经网络来说,特征提取设计是极其重要的。为了保留原图大部分信息,又能提取目标的大部分特征,YOLOv3在特征提取网络中采用了Darknet-53.整个网络中没有池化层和固定输出的连接层,基本上采用了完整的卷积层,而且图像输入在正向计算中,通过卷积层改变卷积核的步幅来实现尺寸变化。Darknet-53另一方面为了构建出更复杂的模型,引入了Resnet的残差块结构,这个结构如图1所示,不同于YOLOv2直接采用类似VGG的网络,采用Resnet的残参块设计,残差这种结构能保证网络结构在很深的情况下,仍能收敛,模型能训练下去;网络越深,表达的特征越好,分类+检测的效果都会提升;此外,利用网络中的残差思想,残差中的1*1卷积大大减少了每个卷积的信道,一方面减少了参数的数量,同时计算量也会减少到一定程度。因此相比较YOLOv2的19层设计,v3可以轻易设计53层的特征提取层,精度提升相比v2比较明显。Darknet-53中大部分层如图3所示等,res8表示含有8个残差结构,其结构如图2所示,其中DBL为卷积层+归一化层+激活层。

1.1.2YOLOv3多尺度特征融合

對于大多数卷积神经网络,通过特征提取层提取输入图像以获得最终特征图,然后在该特征图上直接预测。这样直接获取最后一层的热图,丢失了浅层的语义信息,这对小目标检测是不利。而且对于目标检测,输入图片可能存在不同尺寸的目标,不同目标之间存在不同的特征,我们需要利用浅层特征来区分小目标,利用深层特征来区分大目标。对于YOLOv3来说,每一次尺寸变化的特征图对后面目标区域预测都是有用的,所以YOLOv3借鉴了FPN的多尺度特征融合的思路,将不同分辨率的特征图融合之后单独输出,分别进行目标预测。如图3主结构所示,它将darknet-53的中间层某一层和后面的某一层的上采样进行拼接,最后输出了3个不同尺度的热图,如图3中的y1,y2,y3,采用多尺度特征融合来对不同尺寸的目标进行分别检测,越精细的网格单元就可以检测出越精细的物体,极大改善YOLOv3在小目标检测方面的提升。

1.1.3YOLOv3的类别预测

YOLOv3在预测类别这方面用多标签分类替换了原先的单标签分类,因为在实际中一个目标或一张图片不可能只存在一个类别,例如数据集中有ear和bus这两个类别,那么数据集一张图片中存在bus这个类,你实际检测的结果就必须要用bus和car这两个类别,这就是多标签分类。基于以上所述,YOLOv3将v2单标签分类的softmax层改进为可以通过多个标签分类的逻辑回归。这样YOLOv3在预测汽车这个类别时,还可以预测出汽车本身所属的子集。对于逻辑回归(10gistie)层YOLOv3主要使用sigmoid函数,这个函数可以将特征层输出的结果约束到[0,1]的区间内,所以当一张图片经过darknet-53特征提取后.输出的结果继续经过sigmoid函数得到的小数如果大于设定阈值,则表示属于这个类,否则不属于。

总的来说,YOLOv3借鉴了残差网络结构,形成更深的网络层次以及多尺度检测,提升了mAP以及小物体检测效果。在保证精度正确率的情况下,比Faster R-CNN快4~5倍以上。

1.2损失函数

损失函数(loSS function)是用来估量你模型的预测值与真实值的不一致程度,对于YOLOv3来说损失函数清晰的表达了预测框与真实框之间的差距。YOLOv3通过损失函数来不断训练减少这个差距,YOLOv3的损失函数在原文中作者没有明确提出其损失函数的公式。但是在目标检测任务中有几个关键信息是需要确定的:预测及区域置信度(confidence)。根据这4类信息,可以知道YOLOv3的损失函数由这4部分的损失函数组成,其定义可为:

Lconf和Lcls是直接经过Sigmoid函数,例如用sigmoid将置信度压缩到[0,1]内,此时置信度不仅反映了该区域是否含有物体,还预测这个预测框中坐标的准确度。

2基于YOLOv3的磁瓦缺陷检测

2.1磁瓦数据集

本文磁瓦数据集由实际磁瓦生产流水线上采集的图像,包含磁瓦常见的两种缺陷:裂纹、缺口。每类缺陷有1200张494x648的单通道图像,共2400张,将其按2:1:1均匀分成训练集、验证集以及测试集,部分缺陷图片如图4所示。

2.2实验条件及训练过程

本实验的硬件为英特尔i7-8700K六核十二线程CPU、英伟达GTX 1080Tix2独立显卡(11G显存)、16G双通道内存和512GB的三星860evo固态硬盘,windows 10操作系统。本文的对比实验Faster R-CNN、SSD和本文YOLOv3以及后期结果预处理都基于深度学习框架Mxnetl.5.0实现。

在实际训练网络中,磁瓦缺陷有2类,所以将YOLOv3最后输出的全连接层数量设置为2,当这4层全连接层输出的置信度均小于设定阈值0.5时,表示磁瓦无缺陷,如果大于阈值前取最大置信度,对应全连接层输出为磁瓦缺陷类别。对于预测框重叠情况采用非极大性抑制(NMS),当预测框之间重叠度(重叠区域面积比例IOU)超过设定重叠阈值0.45,则丢弃此预测框,并使用随机梯度下降(SGD)微调YOLOv3的预训练模型。初始学习率设置0.001,并采用学习率衰减,每迭代200次,学习率衰减为初始学习率的0.1倍。在预测中,将YOLOv3视作端到端的分类网络,由逻辑回归层来得到输出结果。

2.2本文算法评估指标

为了定量评价磁瓦缺陷检测算法的性能,采用工业检测常用的正确率以及目标检测的mAP来评价。设RcD表示正确的样本检测率,CC表示正确识别某种类型的缺陷数,Nn表示错误识别的缺陷类别的数量,In表示预测框与真实标注框的交集,un表示预测框与真实标注框的并集。则mAP和Rcd可由式(4)(5)计算。

3磁瓦检测结果与分析

3.1预处理图片

图5(a)是原图,(b)是(a)对应的灰度直方图,原图中只有一个缺口缺陷,占据原图尺寸很小,而且灰度值分布在一定区域内,缺陷和背景的灰度值主要在这个区域中,这对缺陷特征提取很不利;(c)是(a)經过预处理后的图像,(d)是(c)对应的灰度直方图。从图5可以得知,缺陷区域对比度有一定提升,而且直方图中一定数量的灰度值均匀分布到了其他区域,这样可以在提升缺陷区域对比度的同时,限制背景的区域的灰度值增幅。这样的预处理,对后面图片的缺陷检测是有利的。

3.2缺陷检测结果

将YOLOv3训练后检测的结果和预处理后再检测的结果做比较,两种检测比较的预测框精度如表

1、表2所示。

GT为标注的缺陷实际坐标(真值),表1未作预处理直接用YOLOv3检测的缺陷区域坐标值,表2预处理后再用YOLOv3检测的坐标值。其中,GT尺寸表示实际缺陷面积,缺陷尺寸为算法检测出的缺陷面积,AP表示算法检测出的区域与实际GT标注区域的交集与并集的比例。AP越大,检测区域和标签区域越重叠,表明算法越精确。从表1、表2可以看出,特别是裂纹缺陷的AP有较大提升,这说明缺陷与背景对比度过低,会影响最终的检测结果,通过预处理在增强缺陷对比度的同时,可以有效抑制背景的对比度。所以预处理图片后,可以帮助本文算法准确定位出缺陷区域。

3.3不同算法检测结果对比

为了验证该算法优于其他算法,本文与常用的缺陷检测算法Faster R-CNN和SSD等对比,从正确率、mAP以及检测时间等评估指标对比,其评估结果如表3所示。

从表3可以得知,SSD虽然引入了尺度变换,网络不同层抽取不同尺度的特征做预测,缺少特征融合,不能将低层语义信息和高层语义信息结合,所以其正确率和mAP都要低于YOLOv3:本文Faster R-CNN的特征提取网络是基于Resnetl01.更深层的网络对精度是有提升的。

表3中、YoLOv3在与Faster R-CNN相差不多的正确率和mAP的情况下,其检测速度比它快5倍以上,检测时间对工业检测来说是极其重要的,所以相对于Faster R-CNN,YoLOv3更具实际使用价值。

本文部分测试集中磁瓦检测结果如图6所示,其中对于裂纹缺陷SSD有较好的检测效果,但是对于小目标的缺口缺陷,例如缺口2,SSD出现误检,将缺口缺陷检测成良品,本文SSD的特征提取忽视低层语义信息,导致小缺口在经过特征提取网络后出现特征丢失的情况。结合表3和图6,Faster R-CNN和YOLOv3对实际磁瓦缺陷图片,无论是缺陷位置的定位以及缺陷的正确率结果都比较好,特别是YOLOv3的平均检测时间只需要0.03ms,这对工业检测极为有利,所以这些特点使YOLOv3能够较好的解决磁瓦的在线缺陷检测。

4结论

本文讨论了磁瓦缺陷检测中的正确率以及检测时间等工业评估指标,还计算了目标定位准确度的mAP以及部分图片的坐标位置的评估指标。本文提出了在YOLOv3的检测结果上.增加预处理的磁瓦缺陷检测算法,利用类似FPN的特征融合较好地保证了小缺陷、较低对比度缺陷的特征信息的提取,一定程度上改善了检测算法对小目标缺陷的检测效果。总的来说,该算法可以快速实现缺陷位置的定位和缺陷类别的分类,同时保证磁瓦缺陷的检测效果。目前,本文算法只实现了缺陷位置的定位以及缺陷的分类,在接下来的研究中,希望能够借助一些新的网络应用到实际缺陷检测,实现缺陷分割,并且进一步提高缺陷检测的正确率。

猜你喜欢

目标检测深度学习
视频中目标检测算法研究
行为识别中的人体运动目标检测方法
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
移动机器人图像目标识别
基于背景建模法的运动目标检测