基于FCOS神经网络的制动主缸内槽缺陷检测方法

2021-11-01 12:05王芷薇胡晓峰段林茂
计量学报 2021年9期
关键词:锚框金字塔像素点

王芷薇,郭 斌,胡晓峰,2,罗 哉,段林茂

(1.中国计量大学 计量测试工程学院,浙江 杭州 310018; 2.浙江省先进制造技术重点实验室,浙江 杭州 310058; 3.杭州沃镭智能科技股份有限公司,浙江 杭州 310018)

1 引 言

制动主缸是行车制动系统的动力源,在液压制动系统中有着至关重要的作用[1,2],其质量直接影响汽车的安全性能。主缸在加工过程中会因生产环境不理想、制造工序不规范等原因造成主缸内槽表面加工缺陷[3]。缺陷会导致主缸漏油、活塞卡滞等问题。由于主缸的口径极小,无法用人眼直接观测。目前在工业生产中主缸内槽缺陷的检测方法有内窥镜人工检测方法和机器视觉检测方法。内窥镜人工检测方法效率低、精度差,易因工作人员长时间的检测疲劳而产生检测误差;机器视觉检测方法适应力较差,无法进行自动识别,在图像预处理及识别过程中难以针对不同种类缺陷进行快速检测,不同缺陷检测时要设定不同的阈值[4~6]。

近年来,深度学习技术取得很大进展,可以实现自主识别以及高准确率,因此利用深度学习进行缺陷检测的研究越来越多。基于深度学习的缺陷检测方法主要包括两类:1) 依赖于预定义的锚框(anchor box),通过网络学习对图片中上千种的锚框进行判断,判断该锚框内是否含有缺陷,再对锚框进行分类。该类检测的网络主要有RetinaNet、SSD、YOLOv3和Faster R-CNN等[7];2) 通过网络学习得到待测图片中所需要的关键点,对关键点进行分类,该类检测网络有CornerNet和FCOS(fully convolutional one stage)等[8~10]。CornerNet网络消除了对锚框的依赖,但仅能提取边缘特征,容易产生很多误检。FCOS目标检测算法在不依赖锚框的基础上,进行逐像素点预测,减少了重叠计算和训练所占内存,提高了检测精度。因此,引入FCOS作为缺陷检测模型的核心网络,组建缺陷检测模型,实现对在线大批量制动主缸内槽表面的砂眼、划痕、振刀纹多类别缺陷的检测和分类。

2 检测流程

2.1 检测系统

检测系统流程图如图1所示,首先获取主缸图像并进行预处理,其次对主缸凹槽的图片进行不同种类缺陷的分类,以获取深度学习所需样本,搭建FCOS网络并对样本进行缺陷检测,最后根据结果进行模型验证。

图1 检测系统流程图Fig.1 Flow chart of detection system

2.2 缺陷检测方法

针对传统的机器视觉检测方法,提出基于FCOS目标检测算法的主缸缺陷检测的方法,其流程图如图2所示。

图2 检测流程图Fig.2 Flow chart of detection

将在线采集的制动主缸内槽表面缺陷图片经图像经预处理后,按4:1的比例分为训练集和测试集用于离线建模,其中缺陷特征标注后的训练集作为FCOS目标检测算法的输入,通过梯度下降法进行迭代,进而优化网络参数,帮助网络更快收敛,模型训练完毕后通过测试集检验网络对主缸缺陷检测的准确率,对网络进行评估。工业生产线要求检测缺陷的均值平均精度达到90%以上,若网络模型性能达到实际要求,便将网络投入实际的主缸缺陷在线检测中,反之则继续调整网络参数并重新训练网络。

3 网络模型算法

3.1 FCOS目标检测算法

FCOS是一种全卷积的单阶段目标检测算法,基于逐像素预测的方式预测特征图上每个空间位置的类别,并直接输出目标的类别[11]。由于算法不需要双阶段目标检测算法的特征候选区域,从而具有更快的检测速度,算法也消除了对锚框的依赖,完全避免了调整锚框相关的超参数,减小了训练时的内存占用[12]。

图3为检测搭建的FCOS算法的模型结构,FCOS由两个子网络组成:特征金字塔网络和逐像素回归预测网络。

图3 FCOS基本结构Fig.3 Basic structure of FCOS

3.2 多特征融合金字塔网络

由于主缸凹槽存在不同种类缺陷重叠的情况,会造成边界框难以在重叠部分进行回归,可采用单层特征金字塔网络消除重叠带来的模糊性。单层特征金字塔网络检测速度快,但只关注了顶层的语义信息,容易忽略底层的小目标信息[13,14],因此提出基于一种多特征融合金字塔网络,提取图像的多层特征信息,针对不同层次的特征分别引入金字塔结构,进行特征融合,融合后利用多层特征信息实现边界框的预测和分类。该方法保证了微小的缺陷目标在高层特征中也有较强的语义信息。

多特征融合金字塔网络(multi-feature fusion-pyramid network)是综合考虑低层特征和处理过的高层特征,并且在不同特征层独立进行预测的网络。通过对高层特征进行自顶向下的线路和低层特征进行自底向上的线路再横向连接进行特征融合,生成最终的分辨率图进行预测[15]。文中的多特征金字塔网络所用的是以ResNet-101残差网络为主干网络,提取图像的全局特征。结构如图4所示。

图4 特征融合网络结构图Fig.4 Featurefusionnetworkarchitecture

所采用的特征金字塔网络定义了3个级别的特征图(P3、P4、P5),其中P3、P4、P5是由ResNet网络中C3、C4、C5通过1×1卷积层再和高层特征2倍上采样的结果进行融合得到,P3、P4、P5的步幅分别8、16、32,融合后的每个特征级都进行逐像素预测,由于步幅不同,每个特征级可检测不同大小的对象,实现多层特征的融合。

主缸缺陷图片的像素为800×1 024,经过特征金字塔网络,得到的特征图尺寸分别为100×128、50×64、25×32像素。

3.3 逐像素预测法

逐像素预测法是特征图中每个像素点的位置经过映射得到预测边界框从而进行分类的方法。

回归操作是指在真实边界框中,每个像素点都有对应的回归目标h=(l*,t*,r*,b*),l*、t*、r*、b*是该像素点到真实边界框4条边的距离。特征图中的每点像素(x,y)都有与之对应的(l*,t*,r*,b*),如式(1)所示:

(1)

通过回归分析得到对应关系,即确定网络隐藏层的参数。由于网络针对缺陷重叠情况使用特征金字塔网络,因此不同大小的缺陷分配给不同的特征层进行回归操作。

训练集在FCOS目标检测算法中经过回归和分类操作后可得到每个像素点与真实边界框的对应关系以及类别。当未被训练的样本输入网络时,样本中每个像素通过逐像素预测法预测边界框以及边界框的类别,将预测结果与真实边界框进行对比并多次迭代修改参数,训练网络。

3.4 中心概率

一些远离图片中心的像素点采用逐像素预测法后会预测出低质量的边界框,给检测结果带来偏差,因此每个像素点预测出边界框后加入中心概率(Center-ness)预测分支。

(2)

通过式(2)可知,远离图片中心位置的像素点中心概率值小,靠近图片中心位置的像素点中心概率值接近于1。由于非极大值抑制可以抑制除局部最大值之外的所有梯度值,则通过非极大值抑制,滤除中心概率值小的边界框。

3.5 损失函数

当训练集输入FCOS网络中得到预测的边界框时,损失函数表示预测的边界框与真实边界框的差距程度[16,17],损失函数定义见式(3):

(3)

4 实验准备

4.1 图像采集及预处理

图像的采集系统由视觉成像机构、机械传动系统和运动控制系统3部分组成,系统结构图如图5所示。

图5 采集系统结构图Fig.5 Acquisition system structure diagram

视觉成像机构通过垂直加载机构至主缸内部凹槽处,通过拍照获取凹槽表面原始图像,如图6所示。为防止所建网络出现过拟合现象,经采集、预处理得到10 000张制动主缸内槽表面图像,再按4:1的比例分为训练集和测试集以训练和验证模型。

图6 制动主缸内槽表面图像Fig.6 master cylinder picture

图片的上下部分为主缸内壁,对后期训练以及缺陷学习会产生干扰,因此要对主缸凹槽有效区域ROI进行裁剪。通过对原始图像灰度转换得到灰度图像,根据凹槽边缘较周围更亮,其边缘灰度值较凹槽灰度值更高的特征,对其凹槽有效区域进行裁剪,裁剪后的图像如图7所示。

图7 裁剪后内槽表面图像Fig.7 Cropped image of inner groove surface

4.2 缺陷标注

缺陷标注对建立深度学习网络至关重要,由于凹槽缺陷大约在1~3 mm左右,采集的图片是其50~100倍,缺陷相对密封槽是十分微小的,缺陷标注不准确很容易导致在后期训练深度学习网络时模型不收敛的情况。针对主缸3种不同种类的缺陷进行标注,缺陷均用Labelme软件进行标注,如图8,标注后自动保存为json文件生成COCO数据集,由于后续对比网络中Faster R-CNN和Mask R-CNN所用的数据集格式为Pascal VOC,因此将COCO数据集转成VOC数据集,在Linux系统中搭建深度学习环境,将生成VOC数据集的路径添加至代码中进行网络训练。

图8 3类缺陷标注示意图Fig.8 Three types of detect labeling schematic diagram

5 检测结果

搭建深度学习网络的主要环境如下:处理器为Intel Core i7-7700,16 G内存,GPU为GTX 1070,操作系统为在Ubuntu16.04上创建linux虚拟机,python=3.6.5,pytorch=1.3.1,cuda=10.0。基于深度学习网络的缺陷检测种类繁多,为了验证FCOS网络的性能,将在相同的实验环境下,对相同的数据集分别采用Faster R-CNN网络、Mask R-CNN网络和FCOS网络并进行对比。

对比3种网络模型是否收敛,分别绘制出学习网络随着训练次数增加的检测损失函数和精度曲线图,如图9所示。

图9 3种网络的损失函数和精度图Fig.9 Loss function and precision graph of three kinds of networks

损失函数和精确度图是3种网络分别迭代 50 000 次得到,从图中可以看出,随着迭代次数的增加,损失值都不断减小。

Faster R-CNN的损失函数震荡幅度大,在迭代20 000次前精确度上升较快,但趋势逐渐缓慢,最终的精确度值也较低;Mask R-CNN损失函数虽震荡但效果比Faster R-CNN好,当迭代次数达到20 000次左右时,损失值基本趋于稳定,最终精确度值比Faster R-CNN高,但精确度值不易收敛,需要迭代更多次数才能达到所需要求;FCOS网络的损失函数震荡幅度最小,在迭代20 000次后趋于收敛,迭代次数较少时,精确度虽不如Faster R-CNN好,但随着次数增加精确度越高且最后趋于稳定,最终精确度值最高。Faster R-CNN、Mask R-CNN、FCOS网络迭代50 000次的最终精确度分别为0.869 1、0.871 4、0.900 4。

分别比较3种网络的检测性能,如表1所示。

表1 3种网络模型性能对比Tab.1 Performance comparison of three network models

表1中准确率表示预测样本中实际正样本数占所有正样本数的比例;召回率表示预测样本中实际正样本数占所有预测的样本的比例;mAP(mean average precision)即平均精度均值,是作为目标检测中衡量检测精度的指标。

由于FCOS目标检测算法消除了锚框的依赖,训练耗时最短。应用于在线检测时,采集的新数据不用与锚框进行相关超参数的计算,且不需要区域候选网络,工业产线在线检测时运用Faster R-CNN网络检测单个主缸内槽耗时22 s,Mask R-CNN耗时18 s,而FCOS网络耗时10 s,FCOS网络满足工业耗时要求且提高了检测效率;FCOS算法中,预测框内的每个像素点都为正样本,而其他两种网络是基于锚框和真实框达到足够的交并比时的像素点规定为正样本,因此FCOS算法召回率相对较好;FCOS采用特征金字塔网络,减少了单个像素点的预测框重叠导致的模糊性,并且采用多级特征预测可以提高小目标的检测精度;FCOS网络mAP比Mask R-CNN网络提高2.6%,比Faster R-CNN网络提高4.9%。

FCOS网络的检测结果如图10所示。图10中,(a)为砂眼缺陷的检测效果,(b)为划痕缺陷的检测效果,(c)为振刀纹缺陷的检测效果。

图10 缺陷检测效果图Fig.10 The defect detection effect diagram

6 结 论

本文研究了基于深度卷积神经网络的目标检测算法FCOS,对算法原理进行了分析。制动主缸内槽表面的缺陷大多数属于小面积缺陷且不规则,Faster R-CNN会出现漏检情况,FCOS网络采用特征金字塔网络提取特征以及多级逐像素预测算法提高了对微小缺陷的检测效果。针对Mask R-CNN训练时长较长的问题,FCOS网络减少了锚框相关参数的计算,大大减短了训练时长。通过对模型的训练,FCOS网络在制动主缸内槽缺陷检测精度明显优于Mask R-CNN和Faster R-CNN网络,耗时短,满足实时检测的要求。

猜你喜欢
锚框金字塔像素点
基于YOLOv3锚框优化的侧扫声呐图像目标检测
锚框策略匹配的SSD飞机遥感图像目标检测
“金字塔”
基于SSD算法的轻量化仪器表盘检测算法*
基于GA-RoI Transformer的遥感图像任意方向目标检测
基于局部相似性的特征匹配筛选算法
Great Vacation Places
海上有座“金字塔”
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密