基于机器视觉的工程机械配件表面瑕疵检测

2021-10-19 04:38王燚潇王梦怡郭佳怡陆欣怡方博平陈雪东
湖州师范学院学报 2021年8期
关键词:瑕疵表面算法

王燚潇,王梦怡,郭佳怡,陆欣怡,方博平,陈雪东

(湖州师范学院 理学院,浙江 湖州 313000)

0 引 言

工程机械配件表面瑕疵检测是一种延长工程机械寿命的有效方法,也是厂家判断是否需要更换生产零部件的重要依据.传统的人工视觉检测主要依靠肉眼观察工程机械配件表面是否有瑕疵,易受工人个体经验和主观因素的影响,检测效率各不相同,检测效果也良莠不齐.因此,需要一种基于机器视觉的高速度、高精度的表面缺陷检测方法.

20世纪70年代,美国Cognex公司提出一种应用于金属表面缺陷检测的Smart View系统[1].20世纪90年代,Baygin、Karakose等针对印刷电路板孔洞缺失问题,运用Otsu阈值化和Hough变换方法提取检测物体特征,提出一种基于机器视觉的检测方法[2].21世纪初Lien、Zhao等将Alexnet卷积神经网络模型与支持向量机相结合,提出一种新的表面缺陷检测方法[3].2020年,包晓敏、鲁耀文针对印刷电路板采用灯箱、工业CD相机,以及Labview2018软件平台,开发出基于机器视觉的PCB检测系统[4].2021年,金顺楠、周迪斌等采用缺角定位算法提出一种多孔材料缺陷的检测方法[5].张旭、黄定江运用Faster R-CNN 和YOLOv3对制作的铝材缺陷数据进行检测[6].

相比传统的人工视觉检测方法,机器视觉检测方法不受工人个体经验和主观因素的影响,且更高效、准确和精细,在降低成本的同时可以长时间运作,还能关注到人眼检测不到的信息,更适用于大规模工业生产的产品缺陷检测.目前,目标检测任务在深度学习上有两种主流方法:第一种方法如Fast R-CNN[7]、Faster R-CNN[8]等,即先得到一些锚点框,再对其进行分类和回归,分两步走,具有精确度高、检测速度慢的特点;第二种方法如YOLO[9]、SSD[10]等,是一种直接由端到端的检测方法,只有一步,检测速度快,但精确度不如第一种方法.

本文主要运用YOLOv3-SPP(Spatial Pyramid Pooling)基本算法训练目标权重,再运用新的权重提出工程机械配件表面瑕疵检测模型,提升YOLOv3检测能力,有效针对作业中的目标进行缺陷检测,并根据检测结果作出生产工具是否磨损的正确判断,发出警告,等待换新,切实减少工业生产的人力、物力、时间等成本.

1 理论与实现方法

1.1 YOLOv3网络

YOLOv3架构(图1)由骨架网络DarkNet 53和检测网络两部分组成,用于特征提取和多尺度预测[11].

图1 YOLOv3网络结构Fig.1 YOLOv3 network structure

YOLOv3共有53个卷积层,可同时输入3个不同尺度的特征层用于检测不同大小的瑕疵,但YOLOv3的特征数是固定的,导致输入的图片大小也必须是固定的,无法满足多样化的图片条件.而对图片进行不同的变换,如拉伸、裁剪、旋转、映射等,则容易导致图像失真,无法准确表达其所含信息,从而影响最终的模型训练精度.

1.2 SPP池化层

YOLOv3网络中,在DarkNet53最后一个卷积层后添加一个SPP(Spatial Pyramid Pooling)池化层(见图2),不论输入图片的尺寸如何,YOLOv3都可以产生固定大小的输出,从而形成YOLOv3-SPP网络.

图2 SPP池化层Fig.2 SPP pooling layer

1.3 Loss损失计算

损失值是指样本在训练到一个epoch时所损失数据的多少,是模型好坏的评价标准之一.

置信度误差:

分类误差:

2 实 例

2.1 目标检测技术路线

目标检测技术路线见图3.

图3 目标检测技术路线Fig.3 Target detection technology route

2.2 数据预处理

以工业制品中的截齿为例,采用工厂提供的数据集图片共586张,在训练样本较少的情况下运用OpenCV将数据扩增,得到图片共4 688张,其中出现问题的图片3 770张,未出现问题的图片918张,并将数据集按7∶3划分为训练集和验证集.具体步骤如下:

(1) 人工标注瑕疵点,见图4.使用LabelImg方法人工标注瑕疵点,对象为图5工件图中的瑕疵点,得到位置坐标为(0,103,124,152,179).其余图均采用相同方法标注,并得到4个瑕疵点坐标.

图4 瑕疵点标注Fig.4 Defect mark

(2) 采用垂直变换、仿射变换、镜像变化、图像平移、水平拼接、透视变换、图片旋转等方法对有瑕疵的产品进行图的扩增,将单张图扩充为原来的8倍,见图5.

图5 图像扩增Fig.5 Image amplification

2.3 实验结果

训练阶段采用异步随机梯度下降法(SDG),动量项设置为0.9,权值的初始学习率设置为0.001,最终学习率设置为0.01.学习率曲线见图6.

图6 学习率曲线 Fig.6 Learning rate curve

实验所用的计算机配置为Intel Core i7-8700 3.2 GHz CPU,NVIDIA Tesla T4 GPU,PyTorch框架,采用多尺度进行训练,训练的迭代总次数设置为30,DarkNet网格输入大小指定为512像素,见图7.

图7 参数设置Fig.7 Parameter setting

最终得到的结果见表1.

表1 YOLOv3与YOLOv3-SPP对比实验结果

实验结果的最终平均精度值mAP为0.77,Loss值为0.43.在损失值较接近的情况下,本实验采用YOLOv3-SPP产出权重的测试结果精确度比YOLOv3平均精确度高0.1,FPS值为42.70,实时监测能力明显提升,达到了更高效、更精确的要求.

3 结 论

本文主要针对工程机械生产实际问题,通过YOLOv3-SPP训练权重提出工程机械配件表面瑕疵检测算法.实际结果显示,该检测算法结果准确、有效.但由于数据集并非一手数据,经人为变换后对检测的准确性会有影响.因此,在后续的训练中应增加一手数据集,以增加平均精度值mAP,为工程机械配件表面瑕疵检测提供更精确的权重和模型.

由于工程机械生产所需的工具零件较多,问题的出现并非只有某点的上凸和下凹两种情况.在实际的工程制作中,同一流水线会制作不同种类的产品,这说明工程机械配件的生产还可能会出现划痕、成品表面不平衡、配件原设计已有上凸和下凹设计等多种情况.因此,在后续的研究中可对模型加入Hough算法,根据原零件的特征自动检测不同零件的真伪瑕疵点.

猜你喜欢
瑕疵表面算法
哪种算法简便
登记行为瑕疵与善意取得排除的解释论
太阳表面平静吗
哦,瑕疵
Travellng thg World Full—time for Rree
哦,瑕疵
进位加法的两种算法
一种改进的整周模糊度去相关算法
毫无瑕疵的推理
3.《黑洞表面》(英/美)等