APP下载

改进YOLOv4的工控线路板缺陷检测方法

2022-07-19闫晓明朱立忠

信息记录材料 2022年5期
关键词:线路板聚类卷积

闫晓明,朱立忠

(沈阳理工大学 辽宁 沈阳 110159)

0 引言

目前应用于工程领域的设备零件趋向于复杂化和精密化,提高线路板的缺陷检测率是保证质量的重要方面之一。在不同的生产环境因素下,产生了不同种类的缺陷,例如缺口、毛刺、开路、短路、漏焊和余铜等,对后续的成品检测增加了难度,也降低了成品率。随着深度学习算法研究的不断深入[1-3],将深度学习算法应用到小目标缺陷检测的优势逐渐表现出来,也收获了很好的实验成果。

李正明等[4]提出了一种基于复杂算法的图像检测技术,不依靠原始数据样本量,对常见缺陷进行检测,但是结构复杂不适用于现在生产设备。刘西锋等[5]提出了轮廓提取的检测方案,通过定位图像信息,进行对应的残差运算,根据缺陷定位图外围数据一一匹配,降低了匹配的效率。李云峰等[6]提出根据线路板检测图的像素分布,建立梯度关系,对目标信息进行滤波和去噪处理,将特征关系分类处理以实现缺陷检测。

目前AOI技术在线路板缺陷检测方向有了广泛应用,相比于传统检测方法,其检测速度、检测精度、检测成本、设备维护等都有一系列优点。然而在实际检测中,线路板生产线每天检测的数据量极大,如果不改进算法会增加检测设备的内存占用量,进而影响目标检测的精度。

为了解决这些问题,本文将深度学习的YOLOv4算法骨干网络进行相应改进,对网络的激活性能加以优化,降低内存的消耗的同时,提高检测精度和检测效率,以适应生产的需要。

1 改进YOLOv4算法

YOLO算法可以实现目标检测的实时性,使其应用于实际工控线路板的生产线检测成为了可能。YOLO算法的设计流程是将输入的待检测图像经过神经网络的卷积运算,直接给出输入图像的位置信息、边界信息、类别信息,算法的特点是不会对原选区内的特征进行提取,从而提高了检测的速率。随着该算法的不断演进,目前YOLOv4算法已经进行了四代的改进,保留了其实时性的特点,而且实现了缺陷检测的高识别率和高检出率。YOLOv4网络框架分为骨干网、颈部网和预测网3个部分。作为目标检测的模型之一,相对于YOLOv3进行了很多方面的改进,包含主干网络架构、激活函数、损失函数等,其训练算法也进行了优化,以适应小目标检测的需要。

1.1 骨干网络

YOLOv4采用Darknet53中的跨阶段部分网络来构建CSPDarknet53骨干网,CSPDarknet53的训练过程中对内存的消耗量和占用率很大,包括接近30个卷积层和2 700多万个卷积参数,如果能对骨干网优化成轻量级的同时,保持识别精度的不变则会很大程度减小运算迭代次数,提高检测效率。

实验中将CSP网络替换成轻量级的可分离卷积网络,对特征图的不同特征建立关联图层,改进网络分成两个部分,纵向卷积层和逐点卷积层。第1部分对每个通道内的输入数据进行滤波,并对每个滤波器的特征向量进行卷积运算。第2部分是将第1部分卷积通道产生的纵向卷积特征每个像素点加减操作,剔除对结果差异影响较少的干扰变量,增强目标像素点的特征向量维度。滤波器的大小可根据卷积参数进行相应调节,以实现实时卷积计算。改进后的骨干网络见图1。

1.2 激活函数

在应用YOLOv4网络检测线路板缺陷的过程中,激活函数的改进对激活功能会有一定优化,而且会改善检测的功能和准确性。不同的激活函数会影响检测性能,在分析不同激活函数下检测的结果后,进行实验对比,确定采用激活功能最优的激活函数Mish以实现激活功能,取代原始的Leaky ReLU激活函数。

图2显示了几种激活函数的对应图像,激活函数的不同会影响训练的收敛功能,由于训练文件中包含大量线路板缺陷的不同特征的数据集,可以很好地测试其特性,以此来优化选择的激活函数。

Mish激活函数的函数特性可以避免训练引起的过饱和问题,其激活功能可以解决训练过程的梯度问题,而且在训练过程中会更改权重参数,更新激活函数的参数可以确保网络中的每个节点都有不为0的梯度,得到损失函数局部最优的结果,Mish激活函数不是单调递增或者单调递减函数,这有助于我们能有更多的特征信息被提取到神经网络中,稳定网络中的梯度走势,从而得到更精确、更泛化的测试结果。

1.3 Kmeans++聚类算法

在进行线路板缺陷图像识别和预测时,无论尺寸的宽高和形态角度如何,都应该最大可能地实现最优预测框来对导入对象的每个像素点预测,所以需要根据标记过的数据中获得适当的预测框来有效地加快识别的收敛速度,提高结果的精确度。原始YOLOv4的预测框是通过聚类得到的,但无法适用于环境复杂的小目标缺陷检测,为了提高对小目标甚至微瑕疵的定位精度,实验中采用新型Kmeans++聚类算法,见图3。修改后的Kmeans++聚类算法将不同尺寸的包含大量特征数据的图像动态划分成s等份,不同划分类别的组别来匹配设定的不同大小的预测框。由于聚类算法的动态参数调整,能保证以最优的尺寸大小进行训练和测试。

YOLOv4在执行边界框预测时最重要的是对象的宽度和高度,这是通过预先聚类获得的。例如,当我们想使用像素来预测对象时,围绕这个像素,我们可以预测无限数量物体的形状。这不是一个随机的预测,有必要找到最有可能从标记数据中计数的锚框的大小。基于COCO数据集的原始YOLOv4生成的锚盒尺寸的示意图,为了适应线路板的检测目标,我们使用Kmeans++聚类算法,根据原装YOLOv4的输出端口和改进后的YOLOv4的输出端口,生成预测输出框。

2 数据集的构建

工控线路板的种类繁多,形状各异,无法从已有的数据库中收集所有缺陷种类的真实图像集,即便经验丰富的设计师也无法确定所有缺陷标签。出于各种原因,我们实验中的缺陷工控线路图像来自沈阳某生产车间用高速摄像机采集的数据图像,共5 860张图像,其中包括常见的6种缺陷,缺口、毛刺、开路、短路、漏焊和余铜。图4显示了生产过程中常见的4类缺陷。

对于不同的缺陷样本,数据增强技术不但可以提高样本的数量,也能增加缺陷特征的普遍性,通过随机的旋转、裁剪、平移、镜像、增亮等操作以获得不同角度、不同中心点、不同照明环境下的数据图像,从而从不同角度模拟实际生产的不同环境状态,提高了改进网络模型的适应性。实验中采用的数据集为二维图像,假定图像函数表达式为f(x,y),为实现图像增强效果,先后进行拉氏变换,故先在图像宽度上取得二阶微分

再在图像高度上也进行二阶微分计算

将两式相加,获得拉氏变换增强因子

数据增强后的图像需要人工标记不同的缺陷类别,每个图像中的表面缺陷由Label Img程序标记并以VOC格式存储以便用于训练,带注释的缺陷图像包含了每个缺陷的基线数值,训练中与预测边框匹配计算损失度。增强后的数据集被随机分成训练集和测试集两个部分,训练集不断训练改进后的模型网络,再用测试集验证模型,在验证模型时需要不断筛选不同模型的测试误差,最后选择测试误差最小的模型进行优化,提高泛化能力。

数据集导入前的格式要采取转换,最初的文件格式是手工标记后默认保存的数据格式,格式无法导入修改好的模型网络中,因此实验中要将标记完成的XML格式转换成TXT文本格式,以保证实验中缺陷图像数据的顺利导入。

3 实验与结果分析

3.1 改进网络的创新

本次训练的缺陷检测图像数据集进行不同的实验,以验证提出的改进方案的进步性。

(1)通过对比改进骨干网络与原始网络在精度、检测速度、漏检率等方面的性能,以选择新型的改进网络。

(2)比较不同激活函数对实验结果的不同精度,验证Mish激活函数的高性能。

(3)比较不同聚类算法对实验检测精度的影响,验证Kmeans++聚类算法的正确性。

(4)将改进YOLOv4性能与Faster R-CNN和YOLOv4进行实验结果对比,从而验证该方案的优越性。

3.2 实验过程

实验使用的深度学习框架是PyTorch,设计上程序的封装度不高,因此可以对程序的逻辑有更好的理解,也方便更进一步的开发。PyTorch所连接的不同框架接口调用的兼容性都很高,使算法的开发更便捷。

原始的YOLOv4的骨干网络包含大量的参数和内存占用,给训练过程增加了不必要的负担,改进网络采用的轻量级网络模型拥有高质量的卷积计算,却不丢失其检测性能的要求,实验中对比了3种不同主干网络,改进的骨干网在功耗和延迟上都有出色的表现,预测准确性明显高于其他两种网络,更适用于小目标的缺陷检测,比如本文所提的工控线路板缺陷检测。

激活函数用于颈部和预测网络中,通过对比不同激活功能的检测性能,Mish激活函数的检测性能在第1阶段epoch处训练损失明显低于其他几种激活函数,并且在第2阶段用图像进行拟合对比的结果表明:Mish激活函数在测试实验中获得的损失度最低,性能优于其他激活函数,有最佳的训练结果,再通过不同策略的对比后,决定选用Mish来提高工控线路板的缺陷检测准确率。

为验证本文所改进的激活函数的有效性,分别使用不同的激活函数对模型网络进行训练和测试,检测结果见表1,由此可以看出Mish激活函数在工控线路板缺陷检测方面的优良性能。

表1 不同激活函数检测结果对比

实验中,新型改进的Kmeans++聚类算法对不同尺寸图像都有极高准确度的预测框大小匹配,能够对缺陷进行高精度的定位,检测速度相较于其他聚类算法都有明显的进步性。

为了验证改进模型的先进性,实验测试了改进YOLOv4与不同目标检测算法的检测结果对比,结果显示改进的算法达到了最高的检测准确率,也大大缩短了检测的时间,而且改进后模型的算法复杂度有很大程度降低,对比结果见表2。

表2 不同模型算法检测结果对比

4 结论

针对目前工控线路板缺陷检测性能不高的问题,提出基于改进YOLOv4的线路板缺陷检测方法。在原始YOLOv4网络的基础上采用轻量级的骨干网络取代原始检测算法的冗余和内存占用率高的问题,并且采用了检测精度更高,损失度更小的激活函数,采用修改的新型Kmeans++聚类算法,实验结果表明能很好地适应线路板的不同缺陷检测,检测准确率达到97.8%,检测速率也提高到0.036 s识别每张测试图像,因此能适用于工控线路板生产线的实时检测。

猜你喜欢

线路板聚类卷积
一种傅里叶域海量数据高速谱聚类方法
燃烧的茧
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
一种改进K-means聚类的近邻传播最大最小距离算法
基于模态分析的配电产品耐振性优化设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
改进K均值聚类算法
基于Spark平台的K-means聚类算法改进及并行化实现