基于改进YOLOV4 的陶瓷基板瑕疵检测
2022-08-02朱启兵徐晓祥
郭 峰,朱启兵*,黄 敏,徐晓祥
(1. 江南大学 轻工过程先进控制教育部重点实验室,江苏 无锡 214122;2. 无锡市创凯电气控制设备有限公司,江苏 无锡 214400)
1 引 言
陶瓷基板是当前大功率电力电子电路结构技术和互连技术的基础材料,在电子制造领域具有广泛的应用。在陶瓷基板的生产过程中,镀金层损伤、边缘多金、陶瓷基板缺瓷、油污、掺杂异物是陶瓷基板生产过程中的常见瑕疵。快速地检测并剔除这些瑕疵基板是保证产品质量的重要环节。传统的陶瓷基板瑕疵检测方法多由检验人员通过光学显微镜进行人工视觉检测,检测效率低,检测精度易受检验人员经验、情绪以及视觉疲劳等因素的影响。
随着机器视觉技术的发展,基于机器视觉的图像检测法被应用于瑕疵检测中。这类检测任务的检测目标大多形状比较单一、固定,且易于区分[1-3]。近年来,随着深度学习的发展,基于深度卷积神经网络的目标检测技术被广泛地应用于瑕疵检测中。王宸[4]等提出了一种基于改进YOLOV3 的轮毂焊缝缺陷检测平台。伍济钢[5]等提出了一种改进YOLOV3 的智能手机玻璃盖板缺陷检测方法。楼豪杰[6]等结合YOLOV4 网络与Siamese 网络进行印刷品缺陷检测。孙广民[7]等结合两幅不同尺度以及分辨率的图像,利用Mask R-CNN 网络对楼面缺陷进行检测。由于陶瓷基板部分的瑕疵目标较小,不同类型瑕疵之间尺度变化较大,形状多变,不易识别,基于上述方法的瑕疵技术难以满足陶瓷基板瑕疵检测准确性和实时性的需求。
基于深度卷积神经网络的目标(瑕疵)检测方法主要有两种类型。一类是双阶段预测的目标检测,代表性算法有Faster R-CNN[8],Mask RCNN[9]等。双阶段目标检测算法需要利用原图提取到的特征,筛选出可能包涵感兴趣目标的区域,然后再进行回归预测,因此通常需要较长的检测时间,难以满足工业现场快速检测的实时性要求。另一类是基于端到端的单阶段回归的目标检测,代表性算法有SSD[10],YOLOV3[11],YOLOV4[12]以及YOLOX[13]等。单阶段目标检测算法直接利用提取到的特征进行回归预测,通常具有较快的检测速度。YOLOV4 网络通过修改残差网络结构以形成更深的网络层次,在保证检测快速性的同时,提高了目标检测的准确性。本文针对陶瓷基板瑕疵形状多变、尺寸跨度大,且多金和缺瓷瑕疵有较多小目标,样本量小,各类瑕疵数量分布不均匀等问题,基于YOLOV4 算法,通过修改置信度损失函数,引入注意力机制,优化锚框尺寸等策略,大大提高了瑕疵的检出率。实验结果表明,本文提出的陶瓷基板瑕疵检测方法YOLOV4-CS 具有较高的检测准确性和实时性。
2 数据集与检测平台
2.1 检测平台与流程
陶瓷基板瑕疵的自动检测硬件平台如图1 所示。检测平台主要由传送装置、图像采集装置(海康MV-CE200 工业相机,像素为2000 万)、点墨标记装置以及拾取装置(上料夹爪)构成。传送装置将装有整张陶瓷基板片(如图2(a)所示)的模具由上一工序传输到检测平台,当模具到达指定位置后触发光电传感器并锁死传输带;图像采集装置采集模具上的陶瓷基板图像(如图2(b)所示),由检测算法对图像中是否存在瑕疵及具体瑕疵位置进行检测;图像采集完成后,释放锁死装置,模具传输到点墨标记装置下方,对带有瑕疵的基板进行点墨标记;拾取装置将整张基板片拾取到另外一个模具上送往下一道工艺。后续工艺将带有墨点的陶瓷基板进行分拣筛选。
图1 陶瓷基板瑕疵自动检测平台Fig.1 Automatic defect detecting platform for ceramic substrate
图2 图像处理过程Fig.2 Image processing
2.2 图像预处理
如图2(b)所示,原始的陶瓷基板图像中包含了来自其它区域的干扰(图中方框内区域为目标检测区域)。为了减少其他区域对检测结果的干扰,首先采用OpenCV 算法库中的霍夫圆检测法检测图片中的圆心位置,如图2(c)所示;根据圆心位置以及半径计算出目标区域范围,根据此范围对图片进行裁剪得到待检测图片,如图2(d)所示。图3 给出了含有典型瑕疵(污染,异物,多金,缺瓷与损伤)的两块陶瓷基板图像,其中方块区域为镀金层,本文所指的瑕疵都是指出现在镀金层上的瑕疵。其中,污染瑕疵会出现在镀金层上多个区域,且尺寸跨度大、形状多变;而异物瑕疵的形状和颜色具有多样性及随机性;缺瓷瑕疵主要分布在镀金层边缘,其形状较小;损伤瑕疵主要是镀金层的划伤或者刮伤,尺寸跨度大且形状像素分布多变;多金瑕疵主要是镀金层边缘出现凸起,形状较小且分布区域多变。图4 给出了训练集中各种类瑕疵的尺寸分布情况和样本数量。从图中可见,瑕疵尺寸变化均较大,不具有固定的长宽比信息,且瑕疵的样本数分布不均匀,给瑕疵检测造成了很大的难度。
图3 陶瓷基板瑕疵Fig.3 Defects of ceramic substrate
图4 瑕疵样本数量及尺寸分布统计图Fig.4 Statistical chart of sample number of defects and their size distribution
3 算法原理与改进
3.1 YOLOV4 算法
自YOLOV3 以来,YOLO 系列算法形成了由主干网络、颈部网络,以及头部网络3 部分组成的网络结构。其中,主干网络采用多层次结构网络,提取输入图像的不同尺度的特征图;颈部网络则将来自不同层次的特征图进行融合编码,以增强特征图的信息表达;头部网络将融合之后的特征图进行解码,得到最后的预测结果(目标的种类及位置信息)[12]。
YOLOV4 算法构建了反映模型预测框与真实框的差异程度的损失函数,通过反向传递梯度值优化模型权重值,使损失函数值在迭代训练过程中不断减小,从而最小化模型最终的预测结果与真实结果的差异。YOLOV4 的损失函数如下:
3.2 算法改进
本文数据集具有瑕疵尺寸跨度大、样本数量分布不均匀以及形状多变的特点,导致一些瑕疵不易被检测出,为了提高这类瑕疵的检出率,本文分别改进了损失函数、网络结构以及先验框尺寸聚类方法。
3.2.1 基于梯度协调机制的置信度损失函数设计
梯度协调机制(Gradient Harmonizing Mechanism,GHM)[14]认为模型预测输出值经过sigmoid 函数激活后,得到的交叉熵梯度即为预测值与真实值的差距,并将这种差距的模定义为梯度的模。在模型训练即将结束时,如果样本的梯度模过大,则代表预测的正负样本与各自真实值偏差过大,多是离群样本;如果模型继续学习这类样本特征,则会导致真实样本(非离群样本)的分类精度过低。为了缓解这种情况,本文利用GHM 分类损失函数(Gradient Harmonizing Mechanism-classification,GHM-C)改 进 了YOLOV4 的置信度损失函数。
具体实现步骤为:(1)对于第k个预测框(k=1,…N,N为预测框的总数),其梯度模gk为:
其中Ck,分别代表第k个预测框的置信度预测值与真实值;
(2)将[0,1]区间按步长ε划分为若干等长子区间St(t=1,…M,M为子区间数量),统计预测框的梯度模落在子区间St的数量Nt;计算得到各样本的梯度密度调和参数βk:
(3)将原始交叉熵的梯度值分别乘上各自归属子区间的梯度密度调和参数βk,从而达到衰减其影响的目的,即有:
式中:LGHM-C表示最终的基于GHM-C 的置信度损失函数,LCE表示交叉熵损失。修改之后模型最终的损失函数如下:
3.2.2 基于注意力网络的网络结构设计
由于瑕疵具有一定上下文信息,并且小目标瑕疵如多金、缺瓷的信息更体现在形状与颜色上,因此为了提升网络对这些信息的捕捉能力,本文在每个主干网络的特征层支路添加十字交叉 注 意 力 模 块(Criss-Cross Attention Net,CCNet)[15],CCNet 模块结构如图5 所示。
图5 CCNet 结构Fig.5 Structure of CCNet
CCNet 属 于self-attention 机 制,它 通 过 反 复考虑行注意力与列注意力来获得全局信息,同时网络参数量较少,能够满足本文的实时性要求。具体计算过程为:假设输入的特征图为H∈RC×W×H,首先分别通过两个1×1 卷积块获得两个特征图Q和K,其中{Q,K}∈RC'×W×H,C'和C均是特征通道数(C'<C). 在特征图Q上,沿着W,H平面,在位置索引u处,获取向量Qu∈RC',同时从特征图K上获取与u行列交叉的H+W-1 个 向 量 构 成 的 向 量 集Ωu∈R(H+W-1)×C',然后通过关联计算得到:
其中du∈R()H+W-1,反映了Qu和Ωu的关联度。对du进行softmax 操作获得对位置索引u处的注意力Au∈R(H+W-1)。同时,通过另外一个1×1卷积块对H进行卷积获得特征图V∈RC×W×H,并从V的对应位置u处获取行列交叉的H+W-1个向量构成向量集Φu∈R(H+W-1)×C,通过聚合计算获得位置u处的上下文信息Hu'∈RC,即有:
沿着W,H平面,遍历所有位置索引,可得到特征图H'。H'既保留了原始特征图的特征信息,同时又结合了特征图的上下文信息。为了使网络更好地综合全局信息,需要添加两次CCNet[15]。
传统的YOLOV4 网络对尺寸为608×608的输入图片进行特征提取,最后得到19×19,38×38 和76×76 的特征图。浅层特征图经过卷积的次数较少,能够保留较多的像素信息以及边界信息,适合小目标的检测;深层特征图经过卷积操作不断的提取以及压缩,得到的语义信息较多,适合大目标的检测。由于本文的异物瑕疵和污渍瑕疵多是点状,其中较小的样本像素大约为10×10,经过卷积操作后只能保留较少的信息,76×76 的特征图无法满足异物瑕疵和污渍瑕疵中小目标瑕疵的检测需求。因此,本文保留原始的特征提取网络CSPDarknet-53 结构,直接将尺度为152×152 的特征图引出,与原始的YOLOV4 的19×19,38×38 和76×76 特征图进行同样的上采样和下采样操作,得到融合之后的特征图,并在预测网络中添加一个更大尺度的头部网络负责预测152×152 尺度的特征图。
改进后的YOLOV4 网络整体结构如图6 所示。相比于原始结构,该结构仅增加一个预测头部网络以及对应的支路,并在每层特征融合网络的起始部分添加了两个CCNet 网络模块,增加的模块及支路均由深色虚线表示。
图6 YOLOV4-CS 结构Fig.6 Structure of YOLOV4-CS
3.2.3 基于改进K-means++的瑕疵先验框设计
YOLOV4 通常采用K-means++算法对真实目标框的尺寸进行面积交并比并聚类,以获得合适的先验框尺寸。这种方法只能聚类出与真实框重叠程度较高的先验框,无法得到长宽比合适的先验框。因此,本文借鉴CIoU[16]的思想,引入了长宽比的信息,使聚类出来的先验框能更好地反映出真实框的长宽比分布,计算公式如下:
式中:Si为acl,bgt两个框之间的得分,acl代表聚类框,bgt代 表 真 实 框,IoU(acl,bgt)是 计 算acl,bgt两个框的IoU,hcl,wcl分别为聚类框的长和宽,hgt,wgt分别为真实框的长和宽。
综合考虑不同制度的特征图尺寸,本文共设计4 种尺度、12 种尺寸的先验框,如表1 所示。
表1 先验框尺寸Tab.1 Size of prior boxes
4 实验及结果分析
4.1 实验环境
本次实验的操作系统为Windows 10(64位),CPU 为英特尔Core i9-10900X@3.50GHz,内存为64 GB,GPU 为两张NVIDIA GeForce RTX 3090,总显存为48 GB。深度学习框架实现为Python Pytorch,GPU 加速库为CUDA11.0。
4.2 数据集增强
本实验共采集2 413 张陶瓷基板图像,经过目标区域提取预处理之后得到陶瓷基板数据集,其中2 215 张用作训练,198 张用作测试。
为了改善部分种类瑕疵样本数较少的情况,本文采用“复制-粘贴”式数据增强方法[17],对2 215 张训练样本进行数据增强,这种数据增强方法可以增加数据中出现次数较少的瑕疵数量,提高模型对这一类瑕疵的检测性能。具体步骤为:从2 215 张图片中裁剪出50 张包含典型瑕疵(多为样本数较少的瑕疵)的子区域(每个区域只包含一种典型缺陷);并将这50 张子区域图像进行水平、垂直翻转,尺度的缩放,引入高斯噪声(标准差为1.2)以及锐化操作等;最后将这些增强后的裁剪图像“粘贴”至无瑕疵陶瓷基板图像中可能出现瑕疵的区域,从而获得2 386 张增强后的图片。使用LabelImg 图像标注软件进行人工标注,数据集格式为VOC2007。
4.3 模型训练
由于过早的使用基于GHM-C 改进的损失函数会导致模型学习到许多假阳性样本的特征从而产生“虚警”现象,因此本实验首先采用原始损失函数训练100 轮次Epoch 至模型稳定后,然后采用改进后的损失函数继续训练100 Epoch。
在模型训练阶段,本实验的总训练Epoch 为200 次,批量尺寸为16,初始学习率为0.001,在第50 次Epoch 之后衰减为0.000 1。本文提出的YOLOV4-CS 模型训练的损失曲线如图7 所示,当Epoch 达 到200 次 时,loss 值 趋 于 稳 定,最 终 下降到14.5 左右。
图7 损失函数收敛曲线Fig.7 Convergence plot of loss function
4.4 实验结果
4.4.1 不同检测算法的结果对比
待检测图片数量共198 张,每张图片包含1~5 种类别的瑕疵,瑕疵的个数以及检测结果如表2 所示。其中,准确率表示预测正确的正样本占所有预测结果中正样本的比例,召回率表示预测正确的正样本占所有实际正样本的比例。由表2 可知,本文提出的算法对于陶瓷基板中污渍、异物、多金、损伤以及缺瓷5 种瑕疵的检测精确率以及召回率均已在92.4%以上,基本满足本文的任务要求。
表2 瑕疵检测结果Tab.2 Results of defect detection
为了进一步验证本文算法在陶瓷基板瑕疵检测上的有效性,将本文算法与常见的目标检测算 法Faster R-CNN[8],Efficientdet-D3[18],YOLOV5,YOLOX[13]以及改进前的YOLOV4[12]在本文数据集上进行对比试验,采用原文作者的实验参数,选取平均准确率、平均召回率和每张图片的检测时间作为评价指标,不同算法的结果如表3 所示。
表3 不同算法的瑕疵检测结果Tab. 3 Defect detection results of different algorithms
根据表3,改进的YOLOV4-CS 算法对陶瓷基板瑕疵检测平均达到了98.3%,平均召回率达到了99.0%。相比于原始的YOLOV4 算法,检测准确率提高了11.4%,召回率提高了8.9%。YOLOV4-CS 算法能够以0.202 s 的时间完成每张图片的检测,基本满足工业现场的检测要求。
图8 给出了陶瓷基板典型瑕疵的检测结果(局部截图)。图8 中,1~6 号所标均为真实瑕疵,其中,1 号、3 号、5 号和6 号瑕疵为损伤,2 号和4号瑕疵为污染;4 号污染和6 号损伤颜色较浅,5号损伤较小,检测困难。从图中可以看出,YOLOV4-CS 将所有瑕疵都已正确检出并且没有漏检;而YOLOV4 漏 检 了4 号、5 号 和6 号 瑕 疵;YOLOV5 对模型结构和激活函数进行了调整,使得模型的检测能力有所提升,但是仍然漏检了6 号损伤瑕疵;Efficientdet-D3 虽然在速度和精度上得到了均衡,但没有针对本文瑕疵特征做出优化设计,在本文瑕疵检测中表现不佳,出现大量漏检(2 号、3 号、4 号和6 号瑕疵漏检);Faster RCNN 为双阶段目标检测算法,虽然准确率较高,但出现了误检情况(图8(d)中2 号瑕疵左侧),以及较多漏检情况(4 号、5 号和6 号瑕疵漏检);YOLOX 采用了无锚框设计,提高了准确性和实时性,但是对小目标样本的检测能力改善有限,有较多漏检瑕疵(4 号、5 号和6 号瑕疵),并出现了误检的情况(图8(e)中2 号瑕疵左侧)。由此可知,本文提出的模型YOLOV4-CS 的准确率以及召回率在实际检验中较其他方法有明显提升。
图8 不同模型的局部检测结果Fig.8 Local detection results of different models
4.4.2 消融实验
本文的模型结构主要有3 个部分的改进,分别为增加小尺度支路、添加注意力网络CCNet 以及修改置信度损失函数。为了验证这3 个改进的有效性,本文进行了消融实验,结果如表4 所示。从表中可以看出,单独增加小尺度支路能够均衡地提升准确率和召回率;单独修改置信度损失函数能较好的提高召回率,但准确率提升相对较少;单独增加CCNet 能均衡地提高准确率和召回率,但幅度小于增加小尺度支路所带来的提升;同时增加小尺度支路和添加CCNet 网络虽然能得到较高的准确率,但召回率的提升较小;同时添加CCNet 网络和修改置信度损失函数能带来较高的召回率,但是准确率不如同时增加小尺度支路和修改置信度损失函数;3 种不同改进结合在一起能够取得最好的准确率和召回率,因此本文最终选择将3 个部分的改进添加到原始YOLOV4 模型中得到YOLOV4-CS 模型。
表4 不同消融实验的结果Tab. 4 Results of different ablation experiments
为了验证本文所采用的注意力网络的有效性,将CCNet 与目前几种主流的注意力网络Squeeze-and-Excitation Networks(SENet)[19],Convolutional Block Attention Module(CBAM)[20],Efficient Channel Attention Networks(ECA-Net)[21]进行了对比,对比模型均采用基于GHM 的置信度损失函数,并增加了小尺度通道,仅对注意力机制进行了替换。对比结果如表5 所示,性能提升较多体现在小目标瑕疵上,因此相比于通道注意力,空间注意力在本文任务中的表现更好。SENet 属于通道注意力网络,在几乎不增加网络参数量的情况下,能够较好地提高模型检测的准确率以及召回率,但相比其他注意力网络,提升相对有限;ECA-Net 同样属于通道注意力网络,相比于SENet 网络,并未过多增加网络参数量,同时加入了跨通道交互,因此进一步提高了准确率和召回率;CBAM 结合了通道注意力和空间注意力,能够较好地关注小目标的特征信息,因此取得了更好的准确率以及召回率;CCNet 注意力网络属于空间注意力网络,能够较好地提取低维图像特征,相比于其他注意力网络实现了较高的准确率以及召回率,同时也保持着与SENet 相近的实时性。
表5 不同种类注意力网络的对比结果Tab.5 Results of different kinds of attention networks
针对本文提出的锚框优化策略,进行了对应的消融实验,所对比的模型均采用了CCNet 注意力网络、基于GHM 的置信度损失函数以及增加小尺度通道,仅对先验框尺寸做出了改变。消融实验的先验框尺寸分别采用了原始的YOLOV4算法先验框尺寸以及经过本文算法优化之后的先验框尺寸,消融实验结果如表6 所示。从表中可以看出,相比于原始YOLOV4 先验框尺寸的检测结果,本文的先验框尺寸优化算法的检测准确率提高了2.0%,召回率提高了2.4%。
表6 不同先验框尺寸的对比结果Tab. 6 Results of different kinds of prior box
5 结 论
本文将深度网络引入到陶瓷基板瑕疵检测中,改进了YOLOV4 网络模型以及损失函数,对4 个不同尺度特征图进行增强特征融合,重新设计了12 个不同尺度的先验框。实验结果表明,改进后的算法对陶瓷基板5 种不同类型的瑕疵的检测效果更好,平均检测准确率达到了98.3%,平均召回率达到了99.0%。本文较多考虑了陶瓷基板的瑕疵检测的准确率以及漏检率,在后续的研究中会对网络结构进行优化改进,提高其实时性和轻量化水平。