基于深度学习的油封缺陷检测方法研究*
2023-02-13夏桂方于正林
夏桂方,于正林
(长春理工大学 机电工程学院,吉林 长春 130022)
0 引 言
作为一种重要的机械设备密封零件,油封在机械设备中得到了广泛应用。在机械设备中使用有缺陷的油封产品,将会在一定程度上影响机械设备的性能,增加生产成本和环境污染。
在油封的各类缺陷中,主唇口问题是导致油封密封失效的最主要因素,同时也是油封缺陷的重点检测目标。目前,大多数油封生产企业仍使用传统人工检测方法对油封缺陷进行检测,从而造成误检率、漏检率和检测成本三者居高不下。
此前,很多学者提出了采用图像处理的方法来克服以上问题。
吴彰良等人[1]提出了基于小波变换模极大值法的油封缺陷图像边界检测,并采用支持向量机M-ary分类策略,对油封图像进行了分类识别。刘洁等人[2]提出了基于熵率聚类分割和环带差分的油封缺陷检测方法,采用该方法可完成对油封区域分割和表面啃伤缺陷的检测。张国平等人[3]采用图像处理技术,提取了油封的图像特征信息,并通过分割图像方法进行了油封的缺陷识别。石磊等人[4]提出了基于阈值分割和链码法的油封缺陷图像边缘检测方法,采用最小二乘法拟合油封唇口圆形轮廓,对其进行了缺陷检测。
由于这些检测方式都必须手动获得油封缺陷特征,致使这种人工提取缺陷特征的方法具有一定局限性,且其步骤繁琐,对技术人员的要求也较高。
因此,在油封的缺陷检测方面,迫切需要一种全自动、高精度、高稳定性的检测方法。
笔者以油封缺陷为研究对象,提出一种基于深度学习Faster R-CNN框架的多尺度特征融合的改进算法,研究其在油封缺陷图像识别中的精确度及效率上的表现,并搭建实验检测平台,收集油封缺陷检测的各项数据,以评估检测模型在油封工业检测环境中的适用性。
1 检测系统构建
此处,笔者以油封圆环内侧的唇口缺陷为主要检测对象,且所研究的油封材质几乎无变化,多为橡胶材质,颜色单一,多为黑色,形状为圆环。
根据实际生产及应用情况,外径尺寸为16 mm~62 mm且内径尺寸不大于40 mm的中小规格的油封市场占比较大,因此,笔者选用该规格范围的油封作为研究对象。
检测系统的主要硬件设备:
一台型号为MER-520-79U3M的CMOS工业相机(相机分辨率为2 448×2 048,帧率为79 fps,像素尺寸为3.45 μm×3.45 μm,镜头接口为C接口);
一个型号为KEYENCE CA-LH16的光学镜头(该镜头焦距为16 mm,靶面尺寸为2/3 inch,光圈范围为1.8~1.6,工作距离为0.05 m-inf,镜头接口为C接口);
一组LED环形光源;一台计算机(其环境为Windows10系统Intel(R)Core(TM)i9-10900 X CPU@4.7 GHz,16 G内存);基于开源深度学习框架Pytorch,采用Anaconda Python3.6编写,代码运行平台Pycharm。
笔者根据油封缺陷检测要求设计检测系统,检测系统框图如图1所示。
图1 检测系统结构图
图1中,油封由传送带传送至装夹平台检测位置(由于油封和背景差别明显且需采集油封细节图像,笔者选用LED环形光源固定在镜头外侧保证采光均匀),由相机采集模块采集图像数据,送入计算机训练好的模型中进行缺陷识别分类,分类后的油封件落入所属分类仓中,完成整个油封缺陷检测流程。
2 油封表面缺陷图像数据预处理
2.1 图像采集
油封缺陷图像数据由上述检测系统的图像采集模块采集得到,图像分辨率为1 280×1 024,共采集各类缺陷样本图像512张。
油封样本数据缩略图如图2所示。
图2 油封样本数据缩略图
图2中包含了常见的3种缺陷类别:凹缺、毛刺和划痕。
2.2 图像裁剪
在采集的油封样本图像中,油封圆环区域外的背景数据冗余,因此,为减少后续处理中的数据量,笔者对采集到的图像进行裁剪处理,并做宽高比1 ∶1的填充[5]。
图像裁剪过程示意图如图3所示。
图3 图像裁剪过程示意图
图3中,笔者首先定位油封的像素位置坐标,获得油封的外接矩形标框,对标框4个角点的像素坐标取最值,进行图像裁剪,在空白处以像素“0”做填充。
2.3 图像样本扩增
大部分性能优越的深度学习模型参数量巨大,导致模型需要在庞大数据量的支持下才能取得较好的效果[6]。数量有限的训练样本不足以让深度模型学习到缺陷的特征,小样本下的模型往往出现过拟合的现象[7]。
综合数据集所依赖的油封缺陷背景复杂度和深度学习算法特性两个方面,笔者采用改变亮度、模糊、镜像翻转和旋转角度等方式,处理数据集中的512张样本数据,扩增至3 072张。
油封缺陷种类的缺陷数量分布如图4所示。
图4 油封缺陷种类的缺陷数量分布
此处以凹缺为例,笔者对上述4种方式的图像增强效果进行展示,数据扩增效果如图5所示。
图5 数据扩增效果
2.4 数据标注
训练Faster R-CNN改进网络模型需要对数据集缺陷进行标注,标注包含两个重要信息(缺陷位置信息和缺陷类别信息),采用LabelImg标注工具对缺陷进行标框定位和类别记录[8]。
缺陷类别共有3类,分别为油封主唇口凹缺类别为0,标签为dent;毛刺类别为1,标签为burr;划痕类别为2,标签为scratch;标注后自动生成xml文件,文件名与图片文件名保持一致。
笔者将标注好的数据集随机划分出80%,生成trainval数据提取目录(其中,原数据集的60%作为训练集,20%作为验证集)。
标注信息如图6所示。
图6 标注信息
3 模型设计
3.1 Faster R-CNN网络
相比上一代的Fast R-CNN网络,Faster R-CNN网络在性能上有了新的进步。它创造性地加入了region proposal network(RPN)区域建议网络,相较于之前的分割算法生成候选框的方式,有效提升了检测框的生成速度[9]。
Faster R-CNN网络框架如图7所示。
图7 Faster R-CNN网络框架
笔者将特征提取、建议框提取、边框回归和分类都整合到一个网络,使检测速度和精确度有了极大的提升。
模型由低层至高层,图像的分辨率逐渐降低,视觉层信息逐渐变弱,概念层信息逐渐变强,也即更贴近人眼理解的图像细节变得模糊抽象,语义信息所表达的特征更明晰[10]。
在缺陷的目标检测任务中,需要兼顾低层网络的视觉层信息和高层网络的概念层信息,因此,笔者承继FPN的融合思路,将低层特征和高层特征融合起来,共同参与特征的提取,提高检测方法的高效性和准确性。
虽然小尺寸油封唇口缺陷占比较大,但中大尺寸的缺陷也占有一定比例,因此,油封缺陷尺寸跨度较大。该方法采用6种尺寸的建议框,从小到大分别是162、322、642、1282、2562、5122,以及3种不同的比例(2 ∶1、1 ∶2、1 ∶1),二者结合可生成18种建议框(加入162、322、6423种面积的建议框,更便于提取油封唇口小尺寸缺陷特征)。
上述网络将产生许多重叠的候选建议框,需要剔除部分重叠建议框,初始化IoU=0.5,在回归网络调整建议框中心位置。
回归损失函数如下式所示:
(1)
分类损失函数如下式所示:
(2)
完成准确定位缺陷位置,并区分缺陷种类的损失函数如下式所示:
(3)
3.2 FPN结合ResNet的特征多尺度融合
3.2.1 基于残差网络的改进算法
对油封缺陷数据进行分析可知,油封缺陷作为前景相较于背景面积占比较小,大部分是小尺寸缺陷。检测此类缺陷往往需要加深网络层数,达到提高检测精度和效率的目的[11],而以VGG16为框架的Faster R-CNN网络增加网络训练深度时,容易出现梯度爆炸或消失现象[12]。
因此,笔者将其替换为残差网络ResNet框架,可利用ResNet的残差单元解决上述梯度爆炸或消失问题,参考计算数据量、计算速度以及特征提取准确度,选择ResNet 50残差网络进行模型搭建。
3.2.2 基于FPN的改进算法
针对油封小尺寸缺陷检测效果较差的问题,笔者加入FPN特征金字塔结构,将包含丰富特征信息的低层特征图加入后续检测,提高检测的精确度。
FPN中的RoI Pooling层是提高检测精度关键,其输入要求是尺度不同的特征图,Faster R-CNN中的RoI Pooling层输入则是单一尺度,因此,加入FPN是优化油封小尺寸缺陷的有效手段[13]。
映射公式如下式所示:
(4)
各符号含义如表1所示。
表1 各符号含义
由式(4)可知,建议框的大小与RoI面积相关,面积越小,k值越大。
根据油封缺陷尺寸信息可知,凹缺、划痕和毛刺等缺陷的尺寸差异较大,使得ω、h不能透彻地表达缺陷全部信息。
笔者采用RoI Pooling多尺度结合的方式解决上述问题,如下式所示:
(5)
融合两种尺度kn和kn-1的特征,对小尺度特征上采样,加入大尺度特征,以保留更多缺陷信息,提高检测准确度。
4 实验及结果分析
4.1 模型训练
为了验证基于改进的Faster R-CNN网络的油封缺陷检测方法的高效性和准确性,笔者进行实验。该实验以Faster R-CNN网络为基础替换原来的VGG16为ResNet50,并加入FPN及多尺度融合的RoI输入方式,与原有Faster R-CNN设置对比实验。
实验平台配置:Windows10系统,CPU为Intel i9-10900X(4.7GHz),GPU为NVIDIA RTX 2080Ti,cuda版本10.2,对应cudnn版本为9.1,代码编写平台为Anaconda Python3.6,Pytorch配置为torch1.16.0,torchvision0.7。
实验装置图如图8所示。
图8 实验装置图
图8中,油封表面缺陷在线检测系统的机械结构由:图像采集系统机架、传送带、工业相机、镜头和光源组成。
在生产线的传送带上,油封被传送到检测系统下方,相机根据传感器信号完成采集图像工作,采集到的图像数据被直接送入到计算机模型中,做输入数据,经检测模型识别分类,然后进入生产线分拣机构,合格件继续由传送带送出生产环节进入包装环节,缺陷件分类至各类缺陷的传送带,最终进入收集处留待查看。
深度学习模型训练旨在通过调整超参数,找到输入输出数据间的“黑箱”关系,即映射的具体形式。训练时需设置相关参数的初始值(初始值是寻找映射关系的关键因素)。深度学习网络高低层各有分工,低层网络参数的特点是不具有特异性,不会因为识别对象不同而出现较大差异,卷积核对提取识别对象边界信息有通用性[14]。
因此,笔者采用预训练后迁移学习的方式进行模型训练,将ImageNet预训练好的参数经微调后,应用于油封缺陷数据集做初始化参数,达到直击模型深层参数调整,使其更适合油封缺陷检测的目的。
为了验证预训练方法的效果,笔者设置对比实验。其中,方法一为预训练初始化,方法二为油封缺陷数据集从头训练。
两种初始化方式的loss值变化如图9所示。
图9 两种初始化方式的loss值变化
由图9可知,两种方法的loss值都逐渐收敛,方法一的收敛值小于方法二,证明预训练方法更优。
训练参数配置:初始学习率设为0.001,采取如下式所示的自然指数型衰减策略,每批次送入16张图像,训练步数为200 epoch。
decayed_learning_rate=learning_rate*exp-decay_rate*glbal_step
(6)
式中:decayed_learning_rate—衰减指数,为小于1的数;global_step—总迭代次数;decay_rate—控制衰减速度。
4.2 实验结果分析
4.2.1 评价指标
油封缺陷识别的目的是为高效、快速、精准地检测,并标出缺陷的位置和种类。由该目的可知,检测模型的评价指标分别为检测速度和精准程度。目标检测领域中,常用速度指标fps和精确度指标mAP完成模型性能评估。fps是指每秒内完成识别分类处理的图像数量,mAP计算需计算精度、召回率和平均精度(AP)以及知晓IoU值。
(1)IoU
建议候选框的准确程度由交并比IoU表示,即建议候选框和标注框的重叠度,其计算方式如下[15]:
(7)
重叠度越大,说明建议候选框定位越精确,重叠度为1,定位最精确,为缺陷所在位置;重叠度为0,定位位置为背景。
(2)精准度和召回率
油封缺陷样本分为两种:有缺陷的正样本和没有缺陷的负样本。模型检测出的结果同样为两种:检测为有缺陷的预测正样本和检测为没有缺陷的负样本。因此,油封缺陷检测结果将出现以下4种:TP为将正样本检测为正样本;TN为将负样本检测为负样本;FP为将负样本检测为正样本;FN为将正样本检测为负样本。
精确度和召回率如下式所示:
(8)
精确度为正确检测出油封缺陷的样本占所有样本的比例。召回率为正确检测出油封缺陷的样本占确实有缺陷的样本的比例。精准度和召回率是评价模型有效性的两个关键指标,但精确度的提高会导致召回率的降低,同样,召回率的提高也会导致精确度的降低。
为了合理权衡两个指标,找到最佳效果的模型参数,此处笔者采用平均精度值评估模型[16]。
(3)平均精度(AP)
在油封缺陷的检测模型中[17],置信度是指预测框内检测出是该类缺陷的概率,取值为0~1[18]。置信度的值越接近于1,说明预测框内缺陷是该类缺陷的可能性越大;反之,置信度的值越接近于0,说明预测框内缺陷是该类缺陷的可能性越小。
AP值的计算与上述置信度相关,对预测框内显示的置信度数值按从大到小进行排序,生成含有精确度和召回率值的有序数组。利用数组数据绘制精确度-召回率曲线,线下面积即为平均精度(AP)。
经平滑处理后的曲线计算AP值如下式所示:
(9)
平均精度均值mAP为所有类别的AP的平均值,其计算如下式所示:
(10)
式中:n—缺陷的类别数;APi—每一类缺陷的平均精度。
4.2.2 量化分析
训练完成后,笔者计算各类缺陷的识别精确度和召回率。不同模型的识别精度和召回率如表2所示。
表2 不同模型的识别精度和召回率
改进后,模型检测每类缺陷的精确度和召回率都有一定的提升,且精确度都在0.95以上,召回率也都在0.85以上(尤其是针对划痕这类尺寸跨度大,且小尺寸居多的缺陷,针对性改进后使得精确度有了大幅提升),说明改进模型对油封缺陷检测效果好、准确度佳[19]。
笔者计算各类缺陷的识别AP和总体mAP,不同模型的识别AP、mAP和速度,如表3所示。
表3 不同模型的识别AP、mAP和速度
由表3可知:在FPN+ResNet50框架下,改进算法mAP达到85.5,比VGG16框架下的Faster R-CNN高1.4;改进算法的识别速度达16 fps,比改进前低4 fps。
根据生产数据可知,油封的生产速度低于16 fps,说明改进模型虽然损失了一些检测速度,但提升了油封缺陷检测的准确度。
改进前缺陷检测结果如图10所示。
图10 改进前缺陷检测结果
改进后缺陷检测结果如图11所示。
图11 改进后缺陷检测结果
对比图(10,11)可知:基于VGG16的Faster R-CNN网络对小尺寸的毛刺有漏检的情况,对划痕这类纹理特征表现比较多样的缺陷定位不准;而改进后的Faster R-CNN网络对毛刺、划痕和凹缺的检测精确度和定位准确度都高于改进前。
5 结束语
笔者采用FPN结构及调整RPN建议框尺寸的方法,对以ResNet 50为主干网络的Faster R-CNN检测模型进行了特征多尺度融合改进,并采用预训练方案,对油封数据集进行了训练,并固化了其参数,采用油封缺陷检测实验,对改进方案的有效性进行了验证。
研究结果表明:
(1)与改进前的传统Faster R-CNN检测模型相比,改进后的油封缺陷检测模型精确度和召回率更高,划痕、毛刺和凹缺的检测精确度分别达到0.96、0.95和0.97,召回率分别达到0.89、0.88和0.91,说明改进后的模型检测效果更可靠;
(2)改进后模型mAP可达85.5%,高于改进前模型1.4%;识别速度达16 fps,比改进前低4 fps,但高于油封生产速度,这说明改进模型在不影响检测效率的情况下,虽然损失了一些检测速度,但提升了油封缺陷检测的准确度。
笔者采用上述检测系统及其模型,在油封主唇口功能缺陷的检测方面取得了一定的进展。下一步,笔者拟将其延伸至油封外观其他位置的瑕疵检测,以对油封产品质量进行全面把控。