基于卷积神经网络的十字螺钉壳体装配自动检测

作者: 王明尧 李波 任仲伟 董本健

摘要:目前,对于小尺寸螺钉缺失的检测,常采用人工目视检查。针对人工检测效率低下的问题,本文提出了一种基于YOLOv5卷积神经网络的自动检测方法,通过采集装配体图像、标注螺钉位置、训练网络模型以及获取最优权重文件,实现对螺钉装配的自动识别。实验结果表明,该方法检测的准确率为0.909,召回率为0.834,自动检测时间在100毫秒左右,显著提高了检测效率,有效解决了人工检测耗时耗力的问题。

关键词:螺钉缺失;检测;YOLOv5;卷积神经网络;自动识别

中图分类号:TP389   文献标识码:A

文章编号:1009-3044(2025)08-0005-05

开放科学(资源服务) 标识码(OSID) :

0 引言

在机械产品制造装配中,螺纹连接因其结构简单、性能可靠、维护方便等优点,在工程和工业应用中不可或缺。螺纹连接作为机械生产装配中最常用的连接方式,在连接中的占比高达70%。因此,对于螺纹连接的自动化识别检测可带来相当高的生产效益。近年来,随着AI技术的发展,制造行业逐步向着“智造”的方向转变,形成人—信息—物理系统(Human-Cyber-Physical Systems,HCPS) [1]。然而,与自动化装配相比,检测环节的自动化程度较低,制约了生产效率的提升。

对于生产线上装配的自动检测,常见的方式包括红外检测、电磁检测、X射线检测、声学检测和机器视觉检测。随着计算机算力的提高,机器视觉检测显现出高效、便捷、快速等特点[2]。在机器视觉检测方面,已有学者开展了相关研究。魏中雨[3]等人采集零件和装配体的图像,通过Mask-RCNN网络进行训练,判断零件是否有漏装,并利用Canny算子提取零件轮廓与正确装配的图像进行比对,判断是否存在误装。吴焕龙等[4]用工业CCD黑白相机拍摄射孔弹组件的图像,利用视觉程序NI Vision和NI LabVIEW对图像进行滤波、分割,并提取边缘,接着采用IMAQ的相关函数设计算法进行检测,识别不良装配。杜保帅等[5]在YOLOv4 Tiny模型的基础上进行改进,添加MA-RFB模块和注意力模块,对目标零件进行多尺度检测。王映晖等[6]采用单目测距并结合YOLOv5检测算法,以语音交互作为辅助,进行目标物体的定位识别。董元发等[7]针对钢琴面板上螺钉错漏装的问题,通过建立P-AHL视觉检测模型和改进的哈希匹配算法进行螺钉零件的漏装检测。杨乐等[8]对Inception V3模型和Xception神经网络进行分析,使用全局平均池化对网络进行改进,用于螺纹连接的识别。黄辉等[9]针对图像亮度不均的问题,采用Gamma算法进行改进,并在HSV图像中提取显示螺钉装配缺失信息。然而,上述方法在零件的装配检测中,需要经过多次图像处理,过程较为烦琐,且耗时较多。

随着计算机性能和算力的提高,深度学习已经得到了较好的发展,应用于零件的装配识别中,具有良好的自动提取特征的能力。常见的卷积神经网络,如VGGNet[10]、GoogeNet[11]、ResNet[12]、YOLO(You Only Look Once) [13]系列等,能够适应不同尺度的特征提取需求。YOLOv5模型作为一种成熟的学习算法,常用于目标检测,具有高效准确、速度快、轻量化等特点,尤其是在对区域内小目标检测的性能方面较为突出。因此,本文选择YOLOv5模型作为生产线上螺钉自动检测的算法模块,以对壳体装配件的螺钉是否有漏装进行自动识别,旨在提高当前螺钉缺失检测的效率,节省生产时间。

1 YOLOv5模型

1.1 模型概述

YOLO系列算法是一种基于卷积神经网络(CNN) 的目标检测算法,在YOLOv5之前,已经经过四代的迭代更新。其中,YOLOv1和YOLOv2并没有引入颈部网络(Neck) ,在提取图像特征时存在像素错位的问题[14]。YOLOv3使用了Leaky ReLU激活函数,但由于不够平滑,导致出现梯度消失和爆炸的问题。YOLOv4在模型缩放时收敛性易恶化,同时计算开销较大。而YOLOv5模型的尺寸更小,在速度、精度、轻量级设计、易用性和广泛的应用场景等方面,相较于YOLOv1-4具有显著优势。YOLOv5模型通过一次前向传播即可完成图像中所有目标的位置和类别预测,其采用CSPDarknet53作为基础网络架构,这是一种轻量级且强大的网络,能够在保持检测速度的同时提供较高的精度。算法中融入了特征金字塔网络(FPN) 和路径聚合网络(PANet) ,两者结合,通过不同尺度的特征图融合,强化了模型对各种大小物体的检测能力。主要算法包括特征提取、网络分割和定位框预测三个部分。特征提取主要使用预训练的卷积神经网络进行预测;网络分割主要是将输入图像划分为3×3或1×1的网格,每个网格负责检测该区域内的对象;定位框预测是在划分后的每个网格中,由模型预测对象中心的位置和边界框,并计算出置信度。

1.2 网络结构

YOLOv5模型的主要架构如图1所示,由骨干网络(BackBone) 、颈部网络(Neck) 和头部网络(Head) 三部分组成。骨干网络对输入的图像进行特征提取;颈部网络负责对特征图进行多尺度特征融合,并将特征传递给预测层;头部网络进行最终的回归预测。

1) 骨干网络(BackBone)

骨干网络(BackBone) 主要将原始的输入图像转化为多层特征图,服务于后续的目标检测,包括Conv模块、CSP/C3模块和SPPF模块。Conv模块由卷积层、池化层、BN层和激活函数组成,属于卷积神经网络,其中BN层具有防止过拟合、加速收敛的作用,激活函数为Silu函数,它是Sigmoid加权线性组合,处处可导且连续光滑。CSP/C3模块由3个Conv块构成,该模块主要对残差特征进行学习,用于增加网络的深度,提高特征提取的能力。SPPF模块是一种池化模块,通过该模块实现了局部特征和全局特征的融合。经过局部特征与全局特征相结合,能够丰富特征图的表达能力,有利于待检测图像中目标大小差异较大的情况,旨在实现输入数据的空间不变性和位置不变性,提高神经网络的识别能力。

2) 颈部网络(Neck)

颈部网络(Neck) 通常与骨干网络结合在一起,进行多尺度特征融合,该模块主要采用PANet结构,在FPN上提取网络内的特征层次结构。FPN中的顶部信息流需要通过骨干网络(BackBone) 逐层向下传递。通过自顶向下和自底向上的特征融合方式,底层的位置信息能够传递到深层,整合不同层次的特征图,提供更丰富的特征信息,从而增强模型对不同尺度目标的检测能力,尤其是在小目标检测时,准确性会更高。

3) 头部网络(Head)

头部网络(Head) 的作用是进行最终的回归预测,主要负责对骨干网络提取的特征图进行多尺度目标检测。Head中的3个检测层分别对应Neck中得到的3种不同尺寸的特征图,其中的Detect模块由多个1×1卷积层组成,对Neck中得到的不同尺度的特征图通过1×1卷积将通道数扩展,用于对特征图进行升维或降维操作,获取输出层的分类和定位信息,包括边界框的位置、大小和类别。

2 螺钉装配检测

2.1 硬件系统设计

本文以某企业生产线上的一小型壳体装配件为检测对象,待检装配体外观如图2所示,对其表面装配的螺钉进行识别。该壳体装配件由正面和反面上的多个螺钉连接进行封装,尤其是正面上的螺钉。在生产线上由人工进行检查时,容易受到表面上各种按钮、开关、字母等其他外观因素的干扰,造成工人未能识别出漏装的螺钉,从而导致不合格品的产生。

为解决人工目视检测中容易发生识别纰漏的问题,本文采用机器视觉自动检测的方法对螺钉装配进行自动识别检测。首先,需要对检测系统硬件部分的方案进行设计。硬件检测系统方案如图3所示,其功能主要是自动采集图像,并利用系统已经训练好的神经网络对采集到的图像进行识别,输出检测结果。

该检测系统由工控机、显示器、工业相机、镜头和面光源等部分组成。工控机选择DELL Precision T7960工作站,搭载RTX A4000型显卡、Intel W7-3445型处理器,256GB SSD和2TB HDD存储,配备DELL P2422H-1080P显示器。相机选用海康威视MV-CS050-10GC型CMOS彩色工业相机,具有500万像素,搭配海康威视MVL-MF0828M-8MP镜头,焦距为8 mm,光圈可调范围为F2.8-F16。面光源采用CLD-370-W白色面阵型隧道光源,色温为6 500 K。工件放置于工作台,并由挡铁进行定位,复杂形状的工件可使用专用工装夹紧。面光源设置在工作台的正上方,目的是确保拍摄环境光线均匀。工业相机固定在上方,用于在检测过程中对工件进行实时拍摄,采集图像,通过图像识别检测程序对螺钉的装配进行识别,并实时在显示器上显示检测结果。若识别出有漏装的情况,可以进行报警设置或其他提醒设置,告知工作人员检测结果不合格。

2.2 螺钉识别

本文采用YOLOv5模型对螺钉进行检测识别。首先,需要对图像进行采集,采集的目的是获得原始数据集,并进行数据集划分,以便后续进行特征标注和神经网络的训练。为了在图像中识别需要检测的特征,必须对特征进行标注,本文要检测的特征即是螺钉区域的局部图像。通过在图像中创建包含检测目标的边界框,对螺钉进行标注。然后,预选择权重文件,并对模型进行配置,调整相关参数,对前期采集的包含螺钉标注的图像进行训练,训练的目的是获得模型在达到最佳识别性能时的权重文件。最后,对于需要识别的图像,即生产中需要检测的装配体外表面,利用已经训练好的神经网络模型,便可对其进行识别。螺钉装配识别检测的流程如图4所示。

2.2.1 数据采集与特征标注

本文对小型壳体装配件进行图像采集,通过工业相机对装配体外观进行拍摄,以确保拍摄的图片尽可能多地包含待检测螺钉所在的局部区域。所拍摄的图片主要作为数据集用于神经网络的训练。由于是针对特定装配体的单一特征进行检测,图像采集量无须过多,因此数据集按照8∶1∶1的比例划分为训练集、验证集和测试集,其中训练集约包含20张图像。

在图片采集完成后,需要对特征进行标注。标注的目的是划定测试和训练范围,当把图像作为测试集输入模型进行训练时,模型便可自动对标注区域进行检索。本文采用标注工具LabelImg软件对螺钉进行边界框的绘制,完成螺钉特征的标记,部分标注结果如图5所示。

图中4个圆点所在的标注框选定的区域即为要标注的特征。特征标签化后,特征参数中的n表示特征的类别。由于本次只对十字螺钉进行标注,因此n的取值仅为0。x、y为特征区域的中心点坐标,width和height分别是特征区域的宽度和高度,数值大小均为标注框相对于图像尺寸的比例值,范围通常从0到1。部分标签参数见表1。

2.2.2 模型训练

在YOLOv5模型中,对网络进行训练,模型本身的训练网络为卷积神经网络(CNN) 。由于CNN更加关注局部信息,同时也可以简化模型,因此在进行局部特征的识别检测时,展现出显著的优势。卷积网络由输入层、卷积层、池化层和输出层组成,如图6所示。在输入层获得数据之后,将其传输给卷积层,与卷积核(卷积网络中的权重) 进行卷积操作,并经过池化层降低数据维度,最后通过输出层生成物体边框、置信度和物体分类,从而得到检测结果。

训练过程如图7所示,分为两个阶段。第一个阶段是数据由低层次向高层次传播的阶段,即前向传播阶段。另一个阶段是当前向传播得出的结果与预期不相符时,将误差从高层次向低层次进行传播的训练阶段,即反向传播阶段。

由于在对生产线上的装配体进行识别检测时更注重训练识别的速度,本文根据模型深度和宽度参数的不同,选择轻量化的yolov5s.pt作为预训练的权重文件。通过设置训练轮次为200轮,以CPU进行训练,对已采集的部分标记数据进行学习,从而获取最优的权重文件用于螺钉的识别检测。训练得到的可视化结果部分示例见图8,其中图(a)反映了准确率与置信度的关系,图(b)反映了召回率与置信度的关系,图(c)显示的是均值平均精度。

经典小说推荐

杂志订阅