郭伟峰,赵 倩
(上海电力大学电子与信息工程学院,上海 200120)
目前,芯片缺陷检测任务逐步向智能化、自动化发展。杨桂华等[1]采用形状匹配和一维测量算法实现已封装芯片的引脚定位和缺陷检测;魏鸿磊等[2]通过模板匹配的方法定位待检芯片的位置,并通过形态学的异或运算求解芯片的载带缺陷。以上方法要求本地匹配模板尽可能覆盖芯片的缺陷情况,否则难以提高算法的泛化能力。近年来,以卷积神经网络(convolutional neural networks,CNN)为代表的深度学习检测算法逐步替代传统自动化检测,为缺陷检测提供了新的实现方案,如钢轨表面缺陷检测[3]、汽车轮毂表面缺陷检测[4]、电力设备表面缺陷检测[5]等。目前主流目标检测方法分为单阶段和两阶段两类。单阶段方法通过把检测对象的识别和定位任务在同一个无分支的深度卷积网络中实现,使网络结构变得简单[6],从而实现端到端的快速检测,其代表算法有YOLO[7](you only look once)系列和SSD[8](single shot detector)系列。两阶段检测方法首先通过区域建议网络RPN(region proposal network)在待检图像上生成建议框,再对候选区域进行分类和位置的回归[9],实现更精确的识别效果,其代表算法有Faster RCNN[10](region convolutional neural network)系列。相较于传统检测算法而言,基于深度学习的检测算法可以学习高维的目标特征,无需针对不同目标手动设计分类过程,极大简化了检测的流程,因此基于深度学习的芯片缺陷检测研究逐渐成为热点。周天宇等[11]提出轻量化检测网络YOLO-Efficient,通过引入通道注意力机制,实现了对载波芯片缺陷的实时检测。李可等[12]提出一种改进U-Net的检测算法,该算法引入空间注意力机制增强网络的位置信息提取能力,提高芯片X线图像焊缝气泡的缺陷检测精度。罗月童等[13]提出了一种无监督学习的检测方案,该方案将芯片的表面缺陷视为噪声,通过卷积去噪自编码器重构原始图像,避免了大量的人工数据标注过程。上述研究虽然从不同角度实现了芯片的缺陷检测,但是并未解决形状不规则的缺陷分类效果差的问题。因此,对于芯片表面缺陷的多尺度实时检测研究是至关重要的。本文采用YOLOv5网络作为主要框架,该框架通过特征金字塔网络(feature pyramid network,FPN)[14]网络和路径聚合网络(path aggregation network,PAN)[15]特征金字塔融合网络提高特征利用效率,并将3个融合分支并行送入预测层,实现端到端的多尺度目标检测,是目前最好的单阶段检测网络。
针对芯片表面存在的缺陷尺度变化大、单类特征共性低、缺陷小目标漏检问题,本文对YOLOv5检测网络进行针对性改进。首先,提出一种边缘信息的数据增强策略,通过Canny边缘检测算子提取待检图片的边缘特征,并通过霍夫变换清除水平与竖直的背景走线,增强数据中不规则目标的信息;其次,提出多尺度空间感知池化层,通过感知因子动态调整不同卷积核对缺陷的响应权重,自适应地提高网络对不同尺度目标的响应;接着,引入RFB模块与ConvNext模块,加强网络的高维特征提取能力;最后,提出基于置信度的难分样本重检策略,该策略将低置信度的错分样本送入轻量级子分类器二次分类,提高模型的整体分类精度。实验结果表明:改进后网络的准确率为93.1%,召回率为91.2%,平均精度为95.5%,相较于原YOLOv5网络分别提高了3.3%、3.0%、3.4%。此外,该算法对多尺度缺陷的识别精度更高、对难分缺陷的分类效果更好。
本文采用芯片表面缺陷数据集(chip defect dataset,CDD),该数据集共包含5 750张由显微镜采集的芯片表面缺陷图,实际分辨率为512×512。实验以9∶1的比例划分训练集和测试集,其中了包含11种常见表面缺陷,包括:器件缺损(incomp)、器件划损(scrach)、异物(foreign)、 药液残留(res)、金属物残留(gold)、凹陷凸起(lump)、漏刻蚀(UBM)和4种类型原料不良(Raw Ⅰ、Raw Ⅱ、Raw Ⅲ、Raw Ⅳ),涵盖了绝大部分芯片表面缺陷的检测场景。缺陷实际分布情况如表1所示。
表1 CDD数据集缺陷分布
由于芯片表面缺陷的数据均来自工业显微镜摄像头在人工光源下以固定的焦段和光圈参数拍摄所得,而且拍摄角度均垂直于芯片平面,因此得到的结果光照稳定且无其他物体遮挡。而芯片表面缺陷通常存在缺陷之间的互斥性[16],即两种缺陷同时出现在一种表面的概率极低。基于该特性,本文提出基于边缘信息的数据增强策略,总体思路如图1所示。
图1 边缘信息提取过程
首先将RGB颜色空间的输入图片转换为单通道灰度图,转换过程如式(1)所示:
D=0.299R+0.587G+0.144B
(1)
式中:D为输出的灰度通道矩阵;R、G、B分别为输入图片的红色通道、绿色通道和蓝色通道矩阵。
其次通过高斯滤波以7×7的核尺度对图像模糊处理,处理过程如式(2)所示:
(2)
式中:w为卷积核内部权重;i,j为单个权重的坐标;n为模板中心坐标;σ为标准差;e为自然对数。
滤波后使用Canny检测算子提取灰度值变化较大的区域,即目标边缘,梯度计算公式如式(3)所示:
Gx=Sx·D
Gy=Sy·D
(3)
(4)
接着,通过霍夫直线检测提取边缘图中的水平和垂直边缘并通过相减将其消除,减少芯片背景走线,提高边缘的整体占比。
最后,通过轮廓匹配搜索密闭空间,返回所有不规则边缘。二值边缘图和灰度图与RGB三通道经过维度堆叠后,作为输入送入网络训练。
为应对不同目标检测任务难易程度不同所带来的挑战,单阶段YOLOv5目标检测模型包含YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5xl 4种不同的网络模型,每个模型的结构一致,只是各模块的深度和宽度不同,都采用CSPDarknet53主干网络、FPN+PANet特征金字塔融合网络提高特征利用效率,3个融合分支最终送入Detect预测层,实现端到端的特征检测。本文基于YOLOv5s模型进行主干网络的改进与调优,在保证实时性检测的基础上提高模型的性能。
网络结构如图2所示。在主干部分,首先通过交替卷积层与RFB-S实现多尺度特征下采样;其次通过ConvNext模块整合高维特征;最后通过MSSPP网络提高网络对大尺度形变缺陷的响应。
图2 模型总结构
在特征融合网络部分,使用ConvNext模块提取特征的同时,利用Deconv模块和卷积层分别对特征进行上下采样,并将相邻层相同尺寸的特征进行Concat张量拼接,不断融合不同尺度的信息,增强网络的特征丰富程度。
在检测头部分,网络输出类别、置信度和回归框3个参数后,通过提出的基于置信度的重检策略,首先将低置信度的目标选出,结合回归框的信息裁剪出原图对应的图片,并将其送入子分类器进行识别,提高模型对难分样本的准确率。
传统目标检测任务中,待检目标具有相同的语义信息,如动物的毛发、人的眼睛是神经网络实现分类提取的高维特征。然而,在芯片表面产生的缺陷具有特征信息高度不统一的特性。例如异物、划痕由于诱发因素众多,其特征具有形状上的高度不确定性。这种类内语义特征的差异要求网络能够更高维地提取空间特征,对相同缺陷进行有效聚类。为了提高网络在不同尺度下的空间特征提取能力,本文设计了多尺度空间感知池化层,如图3所示。
图3 多尺度空间感知池化层结构
和原空间金字塔池化层(spatial pyramid pooling layer)相比,该池化层加入更多尺度的池化核(1×3、3×1、5×5、9×9等)应对不同形状的缺陷目标。该模块尽可能地覆盖了待检目标的长宽范围,提高了网络对特殊形状目标的响应。模块计算过程如式(5)~式(7)所示:
Fj=Maxpool(Fin,Kj)
(5)
(6)
Fout=Concat(ωj·Fj)
(7)
本文引进感受野模块(receptive field block)代替传统卷积,该模块利用多分支结构模拟人眼对物体的感知机制,其结构如图4所示。
图4 RFB-S模块内部结构
感受野模块首先将特征并行进入4条支路,支路1串行连接1×1的传统卷积与扩张率为1、卷积核为3×3的扩张卷积;支路2、3串行输入1×1的卷积后分别送入1×3和3×1的矩形卷积,最后连接扩张率为3、卷积核为3×3的扩张卷积;支路4串行输入卷积核的每条分支都由传统卷积和扩张卷积构成,二者串行连接组合不同尺度的特征感知领域。将各分支逐一相加即可实现多层感受野的空间叠加,实现中心注意力高、边缘注意力低、感受范围广的人眼空间感知模式。
本文引入即插即用的ConvNext模块,其网络结构如图5所示,输入特征经过深度可分离卷积(depthwise separable convolution)后,送入由二维卷积构造的倒置瓶颈结构,起到提取高维特征的作用。此外,针对多尺度目标进行适当调整,具体调整策略如图2所示。在不同网络层级选取了不同尺度的深度可分离卷积:在网络的浅层(7层、9层)使用7×7的大卷积核增大感受野,在网络的深层(12、15、16、19、22层)使用3×3的小卷积核避免小尺度的位置信息被稀释,从而针对性地保留所需的特征信息,提高网络对芯片缺陷的响应。
图5 ConvNext模块内部结构
大量实验发现,器件异物和原料不良的检测精度相比其他缺陷较低。如图6所示,外来异物(foreign)与原料不良(Raw)2种缺陷的形态尺度各异,因此公共特征难以提取。
图6 多尺度难分缺陷
为了针对性地提高模型对难分样本的分类精度,本文提出基于置信度阈值的检测框架,该框架通过置信度作为难分样本的评判指标,将置信度较低的目标单独裁切送入轻量化的子分类器进行识别。
具体框架如图7所示:当特征从YOLOv5的检测层进行非极大值抑制(non-maximum suppression,NMS)后,会得到6个参数,分别对应预测框的坐标位置(x,y,w,h)以及预测目标的类别和置信度(class,confidence),通过设置置信度阈值,当某一预测目标的置信度低于该阈值时,算法将根据预测框的位置,在原图中裁剪分类目标,最后送入通过Resnet18训练好的分类器中进行识别。
图7 难分样本重检流程图
该轻量化子分类器针对难分样本进行了大量的分类训练,缺陷分类能力更强,如果分类结果置信度大于原类别置信度,则更新类别,否则不更新参数。另外,如果2次分类结果置信度都过小,该目标很可能是错检对象,需从预测框中删除。通过该算法可以有效提高异物和原料不良的识别精度,同时避免了难分样本混淆的问题。
本实验基于Windows10的64位操作系统,在 Anaconda中配置 Python3.6的语言环境和深度学习框架Pytorch1.10。实验选用AMD5600X、搭载12 GB显存的RTX3060显卡进行加速运算,CUDA版本为11.4。
为了客观评价本文网络的多尺度目标提取能力,采用精确率(precision)、召回率(recall)、平均精度(average precision)、全类平均精度(mean average precision)作为检测任务的评价指标。召回率为所有正样本中模型预测正确的概率,反映了模型对缺陷目标的定位能力。精确率为所有模型预测正样本占真实正样本的比例,反映了模型对目标的识别能力。平均精度综合考虑了目标的精确率和召回率,是PR曲线与坐标轴所围成的面积,反映了模型在某一类的识别精度。全类平均精度是每一类AP的均值。反映模型整体性能水平。具体指标的计算公式如下:
(8)
(9)
(10)
(11)
式中:TP(true positive)为被模型预测正确的真实正样本;FP(false positive)为被模型预测为错误的负样本;FN(false negative)被模型预测为错误的正样本;P和R为精确率和召回率;K为类别数量。
本文使用随机梯度下降法(stochastic gradient descent,SGD)进行优化训练,初始学习率为0.01,采用余弦退火策略调整学习率,动量因子为0.937,前5轮进行热身训练并在120轮训练后学习率将衰减到初始学习率的 10%, Batchsize设置为64。
网络训练时的分类损失函数曲线见图8。网络在前40轮收敛速度较快,在40轮到100轮收敛过程逐渐平缓,网络验证集损失在100轮后趋于不变,收敛在0.001左右。为防止网络过拟和,在第120轮停止网络训练。收敛过程证明网络训练情况较好。
图8 损失函数曲线
3.4.1 模型检测结果
选取本文算法与原YOLOv5算法对芯片表面缺陷图片进行检测,可视化结果如图9所示。由图9可得,本文算法相较于改进前针对尺度变化大的目标具有更完整的感知区域,识别效果更好。
图9 多尺度缺陷检测结果对比
3.4.2 模型性能指标分析
为验证算法的先进性,选取了4组在相同训练集、验证集与训练配置下的模型进行算法性能对比。实验结果如表2所示。
由表2可得,经典算法中,YOLOv5网络性能最佳,其准确率为89.80%,召回率为88.20%,平均精度为92.10%,而本文算法通过改进策略使准确率提升3.3%,召回率提升3%,全类平均精度提升3.4%,该结果验证了本文改进方法的有效性。
为具体说明数据增强策略、MSSPP模块、ConvNext模块、RFB模块和难分样本检测策略对最终检测结果的贡献,设置消融实验,实验结果如表3所示,表中A代表数据增强策略、B代表MSSPP模块、C代表ConvNext模块与RFB模块、D代表难分样本检测策略。
表3 消融实验 %
结合表3结果进行分析,得到以下结论:
(1)基于边缘信息的数据增强策略提高了模型对不规则缺陷的检测能力,因此和原YOLOv5相比,整体召回率提高0.9%,准确率也有小幅增加。
(2)MSSPP可以针对性地提高特殊尺度的响应,因此准确率在方案1的基础上提高了2.2%,召回率提高了1.1%,全类平均精度提高了1.2%。
(3)ConvNext模块和RFB模块改善了模型中间层对多尺度特征的提取能力,准确率、召回率和全类平均精度在方案2基础上分别提升0.59%、0.5%、0.7%。
(4)难分样本重检策略通过剔除错检目标,提高了低置信度目标的准确率,准确率在方案3基础上提高了0.41%,召回率提高了0.5%,全类平均精度提高了0.9%。
针对芯片缺陷的尺度变化大、类内特征不统一的问题,提出了基于YOLOv5的目标检测框架。通过边缘信息数据增强,丰富输入特征,提高网络对不规则缺陷的定位能力;采用MSSPP模块自适应数据集中多尺度缺陷,增强类内高维特征的聚类能力,提升模型识别精度;引入ConvNext与RFB模块,根据缺陷分布情况适当微调,强化模型的特征提取能力;设计了难分样本重检策略,利用芯片缺陷易检难分的特性,增强网络对缺陷目标的分类性能。实验证明:本文算法各项指标高于经典目标检测算法,为芯片缺陷检测提供了更高鲁棒、更优性能的检测方案。