基于DSSD模型的机械加工件表面缺陷检测研究*
2021-02-25奚舒舒张才宝马鸿洋
李 兰,奚舒舒,张才宝,马鸿洋
(1.青岛理工大学 信息与控制工程学院,山东 青岛 266000;2.青岛理工大学 理学院,山东 青岛 266000)
0 引 言
随着现代工业的进步与发展,各类工件在机械制造业中的使用频率也越来越高。在机械工件的生产过程中,由于刀具种类或者操作的影响,在工件表面会形成各种不同的缺陷,严重影响工件质量和机械设备性能,所以表面缺陷检测是控制工件质量的重要环节[1,2]。
传统的人工缺陷检测存在采样率和准确率低、劳动强度高的缺点。随着机器视觉和目标检测技术的进步,基于传统的机器学习技术被广泛应用于缺陷检测并逐渐取代了传统的人工检测[3]。如Jeon等[4]利用Gabor滤波器将基于直方图和梯度的纹理特征输入到支持向量机中,对工件表面进行了刮痕检测。虽然基于传统机器视觉的检测方法在很多方面取得了较好的结果,但是需要特定的预处理方法来利用专业知识提取具有代表性的特征。
为了适应现代工业的进步,越来越多的研究者开始研究基于深度学习的缺陷检测方法。前期的深度学习方法主要是以R-CNN[5]为基础,随后相继出现Fast-RCNN[6]、Faster-RCNN[7]、Mask-RCNN[8]等网络模型,但上述这些两阶段网络存在模型过于庞大的情况。为了解决该问题,2016年LIU Wei等人[9]提出了SSD多尺度特征图的目标检测网络,在YOLO[10,11]的基础上进一步提高了检测精度;2017年,FU C Y等人[12]以SSD模型为基础提出了DSSD(deconvolutional single shot detector)模型,进一步提高了检测速度和效率,为实际检测[13]提供了新的方法。
针对工件表面缺陷检测问题,LI Yi-ting等[11]采用MobileNet-SSD框架检测了密封面的缺口、凹陷、磨损等缺陷;赵君爱等人[15]提出了一种基于像元搜索算法的微小缺陷检测方法,但该方法检测速度较慢,并且不适合数据集庞大的缺陷检测。
为了更精确、高效地检测工件表面缺陷,笔者提出一种基于DSSD网络模型的工件表面缺陷检测方法,该方法首先利用扫描电子显微镜(scanning electron microscope,SEM)采集不同零件、不同部位的缺陷图像,并制作数据集;然后通过优化数据集和训练改进后的DSSD网络模型来完成工件表面缺陷检测。
1 DSSD算法
1.1 SSD模型
SSD(single shot multibox detector)模型主要由基础网络VGG16和后续卷积层两部分组成。该模型主要运用回归思想并加入了特征金字塔[16,17]的检测方式;通过综合不同卷积层的特征图,然后直接预测边界框的种类和位置,所以该目标检测模型准确率较高,检测速度较快,可实现实时检测。
1.2 DSSD模型
SSD模型虽然检测速度较快,但是在检测目标较小时,检测效果较差。为了解决SSD模型的不足,DSSD模型在SSD模型的基础上进行了改进。
DSSD模型结构图如图1所示。
图1 DSSD模型结构图
图1中,DSSD模型将SSD模型的基础网络VGG16替换为分类性能较好的Residual101网络,其中,Residual101的Conv3_x卷积层与其后的一系列逐渐变小的卷积层(5层),共同构成DSSD模型的特征层;特征层和其后的5层反卷积网络层构成反卷积模块;DSSD模型在反卷积层上还加入了一个新的预测模块。
1.2.1 反卷积模块
为了得到更多的检测信息,DSSD模型引入了训练好的反卷积层组成了反卷积模块,反卷积模块结构图如图2所示。
图2 反卷积模块结构图
图2中,每个卷积层之后添加归一化层,激活函数采用ReLu6;高低层的特征信息利用基于元素点积的形式,在反卷积模块中得到了融合。
1.2.2 预测模块
DSSD模型在特征层和反卷积层又加入预测模块,进一步提高了模型的精确度。
预测模块结构图如图3所示。
图3 预测模块结构图
图3中,DSSD在SSD模型的预测模块基础上加入了一个残差单元的网络结构,有效地提高了工件的检测精度。
2 该实验DSSD算法
2.1 模型结构
DSSD模型的反卷积模块虽然提高了信息的利用率,提高了检测速度,但是在网络层增加的同时,算法的计算复杂度也相应增加,因此降低了模型对实验数据集的检测速度。
本次实验采用优化后的DSSD模型[18],在保证检测精度的同时降低了计算量。该实验DSSD模型如图4所示。
图4 该实验DSSD模型
在图4中,对DSSD的反卷积模块进行了优化,将反卷积网络层由原本的5层改为3层,从而缩减了计算量;使每个特征层都参与融合操作,融合后得到的3幅不同大小的特征图与另外3幅未融合特征图一起,输入到预测模块中进行预测。
2.2 模型损失函数
DSSD模型对目标位置和种类同时进行回归训练,总体目标损失函数为位置损失和置信度损失的加权和如下式所示:
(1)
式中:α—平衡置信损失和位置损失;c—分类置信度;l—预测框的偏移量;g—目标实际位置的校准框;N—与该类别的校准框匹配的默认框数量。
位置损失函数定义如下式所示:
(2)
其中:
(3)
置信损失函数的定义如下式所示:
(4)
3 实验及结果分析
3.1 数据预处理
由于目前工件缺陷的公开数据集较少,本次实验采用自制数据集;图像采集工作与青岛理工大学机械学院合作完成。
采集环境如图5所示。
图5 采集环境
首先利用扫描电子显微镜对不同工件、不同角度进行扫描,然后针对碎屑、剥落、梨沟3类缺陷,共采集图像4 810幅。
为了使数据集和检测结果更具有代表性,针对自制数据集不够大的问题,笔者将采集的缺陷图像按表进行数据扩充。
数据扩充实现方法如表1所示。
表1 数据扩充实现方法
本文将数据扩充后的数据集80%作为训练集,20%作为测试集;然后利用Labellmg软件进行标注,压缩为300 300的图像,作为训练模型的输入。
3.2 模型训练
DSSD网络模型在训练过程中会产生一系列边界框集合,通过设置阈值(本次实验设置为0.6)并利用非极大值抑制算法[19]消除舍弃的低于阈值的检测框;训练过程中会产生损失量,损失量的多少利用损失函数来计算。
损失函数训练图像如图6所示。
图6 损失函数训练图像
在模型训练过程中,当损失函数值的变化率小于阈值时,将学习率降低到原来的0.1倍。因此,笔者设置前2104次迭代学习率为10-3,后2104次迭代使用学习率10-4;经过3.8104次迭代后,损失值趋于稳定,DSSD模型达到收敛。
3.3 数据集样本检测结果分析
为了证明方法的有效性,本次实验选取了数据集中部分图像,检测结果图如图7所示。
图7 检测结果图
从检测图中可以看出,3种缺陷都能被检测到,且正确率较高。由此可见,本文所有的DSSD模型在该数据集上的检测效果较好,具有良好的稳定性。
任选一种缺陷为例(本次实验以碎屑为例),利用4种模型对数据集中的缺陷进行检测,检测结果对比图如图8所示。
图8 检测结果对比图
从图8的检测图可知,本文所用DSSD模型的检测精度比较高,并且检测框所在的区域相比于缺陷区域较为吻合。
3.4 模型精确度分析
本次实验利用精确度、平均准确率和平均准确率均值3种常用参数来评估模型的性能。其中,精确度(Precision)是指在被判断为准确的图像中,真正判断准确的缺陷类型的比例,其计算公式如下式所示:
(5)
平均准确率(average precision)是指精确度的平均值,反映了每种缺陷的平均检测精度,其计算公式如下式所示:
(6)
平均准确率均值(mean average precision)表示了3种类别缺陷的平均准确度,反映了该模型对整个数据集的检测效果,其计算公式如下式所示:
(7)
本文利用训练好的网络对测试集进行检测,每种缺陷样本都有30张不同的图像。
经过训练的检测网络对3种缺陷样本的检测精确度结果如表2所示。
表2 3种缺陷检测精确度表
从表2检测结果可以看出,在3种缺陷中,碎屑的检测精确度最高,成功检测数量和遗漏数明显低于其他两种;剥落和梨沟两类缺陷都仍存在少数遗漏和错检的情况。从总体来看,DSSD模型对这3种缺陷的检测精度较高,达到84.4%。
在相同的迭代步数下,本文将DSSD模型与Faster-RCNN、SSD和YOLO 3种模型进行值比较,4种模型的值检测结果如图9所示。
图9表明:DSSD模型的值高于Faster R-CNN、SSD和YOLO模型;该结果也进一步验证了笔者所用的模型在工件表面缺陷检测中具有更好的效果。
同样,在相同训练步数和相同训练集的前提下,将本文所用模型与Faster-RCNN、SSD和YOLO模型在和平均检测时间上进行了对比,缺陷检测方法对比实验表如表3所示。
表3 缺陷检测方法对比试验表
从表3可以看出:本文所用模型的是79.12%,Faster R-CNN模型的是67.07%,YOLO模型的是72.44%,SSD模型的是67.62%;该结果表明,本文所用的方法其平均准确率均值比基于Faster R-CNN模型、YOLO模型和SSD模型的平均准确率均值都高;
从检测速度分析,本文模型的平均检测时间是0.132 s,低于其他3种检测算法,表明本文方法要比Faster R-CNN模型、SSD模型和YOLO模型更节约时间。
4 结束语
为了提高机械工件缺陷的检测效率,从而提高工件利用率,本文首先利用扫描电子显微镜得到机械工件表面的扫描图像,通过数据增强扩充了数据,提高了算法的鲁棒性;然后针对3种高频缺陷(碎屑、剥落和梨沟)提出了基于DSSD网络模型的工件表面缺陷检测方法。
通过实验证明,本文提出的方法在工件缺陷检测上平均精度达到79.12%,高于相同条件下的Faster R-CNN、YOLO和SSD方法。
该方法利用深度卷积特征,有效避免了传统目标检测模型对手工特征的依赖问题;通过简化DSSD模型的反卷积模块,在保证特征信息被检测的同时缩减了计算量,从而提高了检测精度和速度。然而,该训练网络并不是非常完善,进一步提高精确度是笔者后期需要研究的方向。