基于改进SSD模型的工件表面缺陷识别算法*
2020-10-10奚舒舒张才宝马鸿洋
李 兰,奚舒舒,张才宝,马鸿洋
(1.青岛理工大学信息与控制工程学院,山东 青岛 266500;2.青岛理工大学理学院,山东 青岛 266500)
1 引言
机械加工过程中,由于刀具种类或者操作的影响,在加工工件表面会形成各种不同的纹理,实际生产中将这些纹理统称为工件表面缺陷。随着现代工业的迅速发展,机械制造业对工件质量的要求也逐渐提高,工件表面的缺陷大小和类型都直接关系到机械设备的成本、工作性能以及使用寿命等问题。因此,有效地检测出工件表面缺陷对于提高工件利用率、维持设备的正常工作具有重要作用。传统的人工检测方法易受主观判断的影响,导致检测精度不稳定、效率较低,已经无法满足生产需求。基于传统机器视觉(Machine Vision)的检测方法在许多案例中取得了可靠的结果,但是需要特定的预处理方法并利用专业知识提取具有代表性的特征。为了适应现代机械制造业的发展,越来越多的研究者开始研究基于深度学习的缺陷检测方法。深度学习作为一种简单快速的数据分析方法,在图像处理、目标检测等领域取得了突破性的进展。随着深度学习的不断进步,卷积神经网络以其速度快、效率高、抗干扰能力强等突出优点在目标检测[1]任务上有着非常突出的表现,成为了机械制造业中检测技术的研究热点之一。
近年来,基于深度学习和机器视觉的缺陷监测技术逐渐被工业生产所采用[2],有效地促进了智能制造业的发展。深度学习算法在分类和目标检测任务中表现出了最先进的特性,其在表面缺陷检测中也得到了广泛的应用。例如,王宪保等人[3]在2014年采用深度信念网络(Deep Belief Network)来获得太阳能电池的训练图像与非缺陷模板之间的关系,并通过重建图像与缺陷图像的比较来完成测试图像的缺陷检测;Cha等人[4]在2017年利用深度卷积神经网络(Deep Convolutional Neural Network)来识别复杂情况下的混凝土裂缝,如较强的斑点、阴影、超薄裂缝等缺陷,证明深度卷积神经网络优于Canny边缘检测、Sobel边缘检测等传统算法;乔丽等人[5]在2017年提出缺陷分辨率(Defect Resolution)的概念来衡量缺陷的程度,结果显示缺陷检测率可达93.3%。以上研究充分展示了深度学习在表面缺陷检测中的优异性能。目前,深度学习进入了一个全新的阶段,图像处理技术不断进步。研究基于卷积神经网络CNN(Convolutional Neural Network)图像检测方法[6]的学者越来越多。前期的深度学习方法主要是以R-CNN[7]为基础,随后相继出现了Fast-RCNN[8]、Faster-RCNN[9]和Mask-RCNN[10]等网络模型,但上述这些两阶段网络模型存在模型过于庞大的情况。为了解决此问题,2016年Redmon等人[11,12]提出了YOLO网络,简化了网络模型,大大提高了检测速度。随后,Liu等人[13]提出了SSD(Single Shot multiBox Detector)多尺度特征图的目标检测算法,在YOLO的基础上进一步提高了检测精度,是至今为止较为优秀的目标检测算法。
针对工件表面缺陷检测问题,赵君爱等人[14]在2004年提出了一种基于像元搜索算法的微小缺陷检测方法,但该方法检测速度较慢并且不适合数据集庞大的缺陷检测。Li等人[15]在2018年提出基于深度学习MobileNet-SSD模型的表面缺陷检测算法,并将其应用于实际生产,但此算法不能普遍用于一般性能的系统。
为了更精确、高效地检测工件表面缺陷,避免传统检测方法的缺点,本文提出基于改进SSD网络模型的工件表面缺陷检测算法,该算法在MobileNet网络的基础上提出DH-MobileNet网络模型,并以此代替SSD网络模型中的VGG16,优化了参数,缩短了训练时间;针对SSD网络模型的后续卷积层之间传输造成的信息损失问题,引入反向残差结构,同时为了提高对小目标检测的精度,采用空洞卷积代替反向残差结构中的下采样操作。利用扫描电子显微镜SEM(Scanning Electron Microscope)获得解析度较高的图像,能够清晰地获取工件表面缺陷的特征。最后通过优化数据集和训练网络模型来完成工件表面缺陷检测,为工业生产中的缺陷检测问题提供了新的方案。
2 传统SSD目标检测模型
2.1 SSD模型结构
SSD是由Liu等人[13]在ECCV2016会议上提出的一个回归模型,它利用不同的卷积层进行边界和分类回归,达到较好的检测效果和速度。SSD网络模型包含2部分,第1部分是具有高分类精度且删除了其分类层的VGG16网络结构;第2部分是使用卷积层取代2个全连接层并增加4个卷积层构建的网络结构,加入了特征金字塔[16]的检测方式,从而实现多尺度目标检测。SSD网络模型结构如图1所示。
Figure 1 Structure of SSD network model图1 SSD网络模型结构图
2.2 默认框的尺度计算
在SSD网络模型中,每一个选定的特征图有k个大小和宽度比不同的帧,这些帧称为默认框。不同卷积层输出的特征图如图2所示。
Figure 2 Characteristic graphs of different convolutional layers图2 不同卷积层输出的特征图
每个默认框预测B类目标和4个位置参数,本文实验B设置为3,因为在工件表面中有3种典型的缺陷,每个特征图的默认框的计算如式(1)所示:
(1)
其中,n表示特征图的数量;Pmin和Pmax是可以设置的参数,本次实验分别取0.2和0.9,即最低层特征图的默认框占该特征图的比例是0.2,最高层默认框占该特征图的比例是0.9;Pi表示第i个特征图的尺度。为了使训练过程和测试实验中的特征向量保持一致,本文实验使用相同的5种宽高比ar={1,2,3,0.5,0.33}来生成默认框,每个默认框可以描述为:
(2)
(3)
2.3 损失函数
SSD网络模型对目标位置和种类同时进行回归训练,训练过程中产生的损失量利用损失函数来计算。SSD网络模型的总体目标损失函数[17]是位置损失函数(loc) 和置信损失函数(conf)的加权和,如式(4)所示:
(4)
其中,参数x∈(0,1),表示默认框和实际检测框是否匹配成功;参数α用来平衡置信损失和位置损失;c是分类置信度;l代表预测框;g代表真实标签框;N是与该类别的校准框匹配的默认框数量。当N等于0时,说明损失为0。
位置损失函数是预测框l和真实标签框g参数之间的smoothL1损失,(cx,cy)是默认边框 的中心,(w,h)是默认框的宽和高,定义如式(5)所示:
(5)
置信损失函数的定义如式(6)所示:
(6)
与原始MultiBox[18]的匹配方法不同,SSD网络模型训练时的匹配策略是先匹配默认边界框与实际边界框,若两者的重叠率IoU(Intersection over Union)大于阈值(默认阈值为0.5),则默认检测框与真实框匹配;反之,若重叠率小于0.5,则认为两者不匹配。
3 本文模型的设计与优化
SSD网络模型在目标检测中表现出了较好的性能,但其在检测过程中所需参数较多,且后续的卷积层忽视了层与层之间的连接关系,在增加了计算量的同时对小目标的检测效果较差,容易出现漏检、误检等问题。MobileNet网络模型所用参数较少,缩短了训练时间,但同时存在检测精确度不高的问题。为了在减少训练参数的同时提高网络精确度,本文首先结合空洞卷积(Dilated Convolution)[19]和层级特征融合HFF(Hierarchical Feature Fusion)[20]提出DH-MobileNet网络模型,并以此来代替SSD网络模型中的VGG16;然后利用反向残差结构对SSD网络模型的后续卷积层进行改进。优化后的SSD网络模型结构如图3所示。
Figure 3 Optimized SSD network model图3 优化后的SSD网络模型
3.1 DH-MobileNet网络特征提取原理
MobileNet是Howard等人[21]提出的一种轻量级卷积神经网络,基本单元为深度可分离卷积,训练时所需参数较少,能够节省时间并且可以实现移动设备的部署。MobileNet网络模型的结构如图4所示。
Figure 4 Structure of MobileNet图4 MobileNet网络模型结构图
图4为MobileNet的网络结构图,其中Conv-Dw-Pw是一种深度可分离的卷积结构。由深度卷积Dw(Depth-wise)和点卷积Pw(Point-wise) 2部分构成。Dw由3×3的深度卷积核构成,Pw由1×1的点卷积核构成。BN(Batch Normalization)代表批处理规范化,ReLU6表示激活函数。
模型训练过程中,会通过池化操作增大感受野,从而提高检测精确度,但是池化操作会造成图像信息部分缺失的问题。空洞卷积可以在不损失图像信息的同时增大输入图像的感受野,因此本文将空洞卷积操作引入到 MobileNet 网络中,不仅保证了图像信息的完整性,还可以增大卷积层的感受野范围,从而保证检测精确度。卷积核大小为3×3、扩张率为2的空洞卷积操作如图5所示,在一个7×7的区域中,其中的9个点与3×3的卷积核进行卷积操作,其余的点包含的参数设置为0,卷积之后的感受野大小为Fdilation=[2(dilation/2)+2-1]×[2(dilation/2)+2-1],其中dilation表示扩张率,当dilation=2时,F大小为7×7。
Figure 5 Dilated convolution operation图5 空洞卷积操作
层级特征融合是对空洞卷积层的每一个卷积单元的输出进行依次求和,并将每个求和后的结果通过连接操作得到最后的输出,可以在不增加网络复杂度的同时扩张学习参数,加强网络连续性。层级特征融合结构如图6所示。其中nk×nk为空洞卷积核的感受野,nk=2k-1(h-1)+1,k=1,2,…,h。
Figure 6 Hierarchical feature fusion图6 层级特征融合
DH-MobileNet的深度可分离卷积结构只需要VGG16网络参数的1/34就可以在分类任务中达到相同的分类精确度,并且可以通过降维等运算得到与标准卷积相同的输出,从而能够减少计算量,提升训练的效果。DH-MobileNet网络模型的结构如图7所示。
Figure 7 Structure of DH-MobileNet图7 DH-MobileNet网络模型结构图
图7中,Dilated 表示空洞卷积,S表示步长,R表示扩张率,HFF表示层级特征融合,Conv-Dw-Pw代表深度可分离卷积结构。
3.2 SSD卷积网络层优化
由于SSD网络模型中后续的卷积层忽视了层与层之间的连接关系,从而导致对小目标的检测较差。引入反向残差结构[22]可以减少学习过程中非线性变换在低维度下造成的信息损失。为了避免下采样过程中出现特征信息丢失的情况,本文利用空洞卷积取代反向残差结构中的下采样操作,并将激活函数ReLU替换为性能更好的ReLU6,ReLU6激活函数可以表示为:Y=min(max(X,0),6),式中Y为ReLU6的输出,X为特征图中每个像素的值。采用批处理规范化算法[23]进行规范化,BN算法支持数据分布自动调整并通过设置2个学习参数来防止梯度消失和避免复杂变量的调整。加入空洞卷积后反向残差结构如图8所示。
Figure 8 Reverse residual structure before and after improvement图8 改进前后的反向残差结构图
4 实验与结果分析
4.1 实验设计
本文实验使用的计算机的配置为:操作系统是Windows 10,CPU型号是Intel(R)Core(TM) i7-8750H,CPU的频率为2.20 GHz,内存为8.0 GB,显卡(GPU)的型号为是GeForce GTX 1060,在以上硬件基础上搭建TensorFlow运行环境。
在训练模型的过程中首先对训练集进行训练,并采用非极大值抑制算法[24]消除舍弃的小于阈值的检测框。经过迭代和调整参数设置使模型具有更好的性能,之后使用本文实验数据集的测试集对模型进行精确度、检测速度和收敛速度的性能测试。
4.2 数据样本结构
工件表面缺陷类型一般由专业工程师根据工件具体情况来定义,本文实验选取3种常见的缺陷(碎屑、剥落、梨沟)进行检测,如图9所示,图9a为碎屑缺陷,图9b为剥落缺陷,图9c为梨沟缺陷。由于目前SEM图像分类领域公开的数据集较少,本文在满足样本数量的同时充分考虑样本的规范性因素,通过SEM采集含有碎屑、剥落、梨沟3种缺陷的图像一共3 291幅。
Figure 9 Workpiece defect types图9 工件缺陷种类
将采集的缺陷图像进行数据扩展并建立数据集,主要的数据扩展操作为旋转、水平迁移、垂直迁移和缩放4种方式,数据扩展的具体实现方法如表1所示。
Table 1 Data expansion methods表1 数据扩展方法
通过表1数据扩充的实现方法,对数据集进行了扩充。将扩展得到的数据集的80%作为训练集,20%作为测试集,然后利用labellmg软件进行标注,压缩为300×300的图像,作为训练模型的输入。
4.3 算法性能分析
4.3.1 收敛速度分析
将本文提出的DH-MobileNet-SSD网络模型与Faster R-CNN、SSD和YOLO 3种网络模型在相同数据集上进行对比实验。考虑到实际应用中的硬件条件,过高的训练次数不具有太大意义,并且模型迭代3.6万次后损失值已经趋于稳定,所以每种模型选择迭代3.6万次。训练过程中的损失函数曲线如图10所示。
Figure 10 Loss function curves图10 损失函数曲线
从图10可以看出,在数据集训练过程中,各网络模型的损失值都随着迭代次数的增加不断收敛,在迭代3万次后,各网络模型损失值都趋于稳定。其中改进后的SSD网络模型的收敛速度比其它3种网络模型的更快。
4.3.2 综合性能评估
精确度(Precision)、平均准确率AP(Average Precision)和平均准确率均值mAP(mean Average Precision)是衡量目标检测模型性能的常用指标,其中精确度是指缺陷类型在被判断为准确的图像中,真正判断准确的缺陷类型的比例;平均准确率是指精确度的平均值,反映了每种缺陷的平均检测精确度;平均准确率均值表示了3种类别缺陷的平均准确度,反映了该模型对整个数据集的检测效果。3种常用指标的计算公式如式(7)~式(9)所示:
(7)
(8)
(9)
利用训练好的网络模型对测试集进行检测。测试集图像包含3种不同类型的缺陷样本,每种样本都有40幅不同的图像,对3种缺陷样本的检测精确度结果如表2所示。从检测结果可以看出,在3种缺陷中,碎屑的检测精确度较高,但遗漏数量高于其他2种网络模型的。剥落和梨沟2类缺陷都仍存在少数遗漏和错检的情况。总体可得,改进后的SSD网络模型对这3种缺陷的检测精确度较高,达到了85.7%。
Table 2 Precision of three defectes表2 3种缺陷检测精确度
在相同的迭代步数下,改进后的SSD网络模型与Faster-RCNN、SSD和YOLO 3种网络模型的AP值如图 11所示。
Figure 11 AP detection results of different network models on test set图11 不同网络模型在测试集上的AP检测结果
图11表明,改进后的SSD网络模型的AP值远远高于Faster R-CNN、SSD和YOLO网络模型的,进一步验证了所提网络模型在工件表面缺陷检测中具有更好的效果。
同样在相同训练步数和相同训练集的前提下,将本文所提网络模型与Faster-RCNN、SSD和YOLO网络模型在mAP和平均检测时间上进行了对比,结果如表3所示。
Table 3 Comparison of defect detection models表3 缺陷检测模型对比
从表3可以看出,本文所提网络模型的mAP是84.12%,Faster R-CNN网络模型的是79.07%,YOLO网络模型的是82.44%,SSD网络模型的是81.62%,表明本文网络模型的准确率更高。从检测速度分析,本文网络模型的平均检测时间是0.132 s,低于其他3种网络模型的,表明本网络模型更节约时间。
4.4 数据集样本检测结果分析
任选一种缺陷(本次实验以碎屑为例),利用4种网络模型对数据集中的缺陷进行检测,检测的结果图如图12所示,图12a为Faster R-CNN网络模型的检测结果,图12b为YOLO网络模型的检测结果,图12c为SSD(原始)网络模型的检测结果,图12d为本文DH-MobileNet-SSD网络模型的检测结果。从检测图可知,改进后的SSD网络模型的检测精确度比较高,并且检测框所在的区域与缺陷区域较吻合。
Figure 12 Detection results comparison of different network models图12 不同网络模型的检测结果对比图
利用DH-MobileNet-SSD网络模型对梨沟、碎屑、剥落3种缺陷分别进行检测,检测结果如图13所示,图13a为梨沟缺陷,图13b为碎屑缺陷,图13c为剥落缺陷。从检测图中可以看出,3种缺陷都能被检测到,且精确度较高。因此,采取DH-MobileNet-SSD网络模型在此数据集上的检测效果较好,具有良好的稳定性。
Figure 13 Three defects detection results图13 3种缺陷检测结果图
5 结束语
为了更好地检测机械工件表面的缺陷,本文首先通过SEM得到机械工件表面的扫描图像并通过数据扩展提高了算法的鲁棒性。然后针对3种高频缺陷(碎屑、剥落和梨沟)提出基于SSD网络模型的工件表面缺陷检测算法,该算法利用深度卷积特征,有效避免了传统目标检测模型对手工特征的依赖问题。通过采用改进后的DH-MobileNet代替原始SSD网络中的VGG16进行特征提取,辅助层网络引入反向残差结构进行卷积运算,利用空洞卷积取代下采样操作来避免信息丢失,并加入层级特征融合来保证数据操作的连续性和对小物体的准确识别,从而可以利用多特征信息并且减少运算量,进而提高了检测效率。实验表明,本文提出的算法在工件缺陷检测上的平均精确度达到84.12%,高于相同条件下的Faster R-CNN、YOLO和原始SSD的。但是,DH-MobileNet-SSD网络模型并不是非常完善,精确度有待进一步提高,性能仍需改进,这是后期需要研究的方向。