杨舟,程莹,张诗婧,陶新宇,莫绪涛,马四海,黄仙山
(1.安徽工业大学 数理科学与工程学院,安徽 马鞍山 243002;2.安徽易芯半导体有限公司,安徽 合肥 231100)
单晶硅作为半导体行业应用最为基础的材料之一,其生长品质至关重要。制备单晶硅的常规方法主要有直拉法和熔融法两种。直拉法生长出的单晶硅具有纯度高、生长缺陷少、生长尺寸大等优点[1]。随着生长尺寸的不断增加,生长缺陷产生也更加复杂,其中位错是单晶硅最常见的生长缺陷之一。它会降低少子寿命,严重影响半导体器件的性能,降低硅光电池的光电转换性能。因此,检测单晶硅位错分布是重点工作之一。检测硅位错可以通过化学腐蚀表征人工计数、扫描电镜图像处理、光学散射等[2]方法。为了能够直观地观测到单晶硅体内的位错分布,需要使用化学腐蚀液进行表征。通过光学显微镜获得单晶硅位错显微图像,结合MIT(Massachusetts Institute of Technology)开发的定量测量位错密度软件包实现自动化检测[3];NEEDLEMAN D B 等人[4]利用高分辨率暗场成像设备和扫描仪实现快速检测硅位错密度;李孟等人[5]使用3D 高深显微镜,通过激光扫描成像检测单晶硅位错分布。在实际腐蚀过程中,腐蚀液浓度的变化、温度的改变以及腐蚀时间差异性等问题,导致单晶硅位错腐蚀坑的形貌差异大,尺寸变化明显,背景复杂。传统的图像处理算法识别单晶硅硅片上的位错腐蚀坑难度较大,利用Hog 特征提取算法[6]结合支持向量机(support vector machine,SVM)对单晶硅位错进行检测识别,检测位错的准确率低,检测速度慢,自动化程度不高。
随着深度学习图像处理技术的飞速发展,神经网络算法性能不断提升,网络参数不断降低,基于深度学习的机器视觉算法逐步具备在复杂背景中识别出形态多变目标的可能。卷积神经网络能够实现语义分割(semantic segmentation)、目标检测(object detection)等[7]各种检测任务。基于深度学习的目标检测方式主要包含两种:一种是以Faster-RCNN(region-based convolutional neural network)为代表的两阶段神经网络[8],此类神经网络实现目标检测,拥有精度高、定位精确的优点,但检测速度较慢;另一种是以YOLO(you only look once)为代表的一阶段神经网络,其中以YOLOv3[9]、YOLOv4[10]、YOLOv5[11]为代表,网络通过回归的方式直接预测物体的类别与位置,在大幅度提升检测速度的情况下也能够保持较高的检测准确率。基于深度学习的神经网络算法逐步应用于各个行业,JUBAYER M F 等人[12]使用YOLOv5 算法检测食物表面霉菌分布;陶志勇等人[13]使用改进后的VGG 网络实现太阳能电池片表面缺陷检测;FU Y Z 等人[14]采用改进VGG-19 网络实现硅光电池缺陷自动化检测。但深度学习算法在检测单晶硅位错应用较少,对低密度位错单晶硅检测精度低,定位难度高。
本文利用多种经典神经网络算法对实验获得的单晶硅位错腐蚀显微图像进行检测,重点针对YOLOv5 算法检测过程中面临的难点,建立了改进的YOLOv5 算法检测模型,旨在实现单晶硅位错金相显微图像的准确分类识别。本文在主干网络之后和FPN(feature pyramid networks)结构中增加注意力机制模块,优化网络结构,提升网络计算能力;其次将主干网络提取的特征向量与Neck 结构得到的特征进行融合,加强深层信息和浅层信息的联系;进一步考虑目标物尺寸较小、长宽变化明显等特点,将YOLOv5 现有损失函数中的GIoU(generalized intersection over union)替换为CIoU(complete-IoU),加快网络收敛,提升检测定位准确率。
YOLOv5 网络结构简单、检测精度高,具有YOLOv5s、YOLOv5m、YOLOv5l 等多个版本,其中YOLOv5s 网络检测速度最快,网络参数少,但检测的平均精度低。本文选取YOLOv5s 作为检测单晶硅位错缺陷的基础网络。YOLOv5 的网络主体由3 部分组成:主干提取网络(Backbone)、Neck、YOLO Head。首先,网络的主干部分(Backbone)主要由Focus、C3、SPP(spatial pyramid pooling)组成。Focus 结构是将输入图像每个通道中每隔一个像素取一个值并组成新的通道,将输入图像的通道数扩充4倍,在不影响图像信息的情况下,提升数据量。多次使用CSPnet 网络结构,C3 模块将输入分成两个部分,一部分通过卷积输入到一个或者多个残差网络(Resnet)中,另一部分进行简单的处理,将两部分输出进行连接,形成一个大的残差结构,加快网络收敛,易于优化。SPP 在通过不同尺寸的最大池化层后进行尺寸的统一,再进行连接,增加网络感受野,使不同尺寸的目标特征得到保留。其次将主干网络得到的特征层通过Neck 结构进行特征融合,加强深层信息与浅层信息的融合。最后通过 YOLO Head 获得预测结果。
YOLOv5 使用的损失函数由3 部分组成:分类损失、置信度损失、定位损失(LGIoU)。其中,GIoU(generalized intersection over union)[15]是IoU 的改进,考虑到当IoU 为零时,优化方向不明确,收敛缓慢,因此使用GIoU 代替IoU。
式中:A和B分别表示预测框与真实框;C表示预测框与真实框最小外接矩形。得到损失函数LGIoU,如下式所示:
YOLOv5 网络在工业质检中能够取得很好的检测效果。但单晶硅硅片上位错腐蚀坑的尺寸较小,背景较为复杂,因此需要对YOLOv5 网络进行改进,进一步提升位错腐蚀坑的检测效果。
YOLOv5 网络往往会忽略小目标的特征。检测单晶硅位错显微图像时,视场中位错腐蚀坑的尺寸占比小,属于小目标检测,需要改进YOLOv5网络结构,加强网络对单晶硅位错腐蚀坑检测性能。本文在YOLOv5 基础网络上引入注意力机制,将FPN+PAN 网络结构得到的输出层与主干提取网络得到的特征层进行进一步交叉融合;为了更好地定位位错腐蚀坑,引入CIoU (complete intersection over union)损失函数进行训练,得到如图1改进后的YOLOv5 神经网络。
1.2.1 引入注意力机制
图像经过主干网络提取特征得到特征层,但目标在不同特征层的重要性不同,并且神经网络的计算资源是有限的,因此需通过增加注意力机制实现计算资源的有效利用,提升网络特征表达能力。注意力机制包含通道注意力机制(SENet)、空间注意力机制(SANet)、卷积模块注意力机制(CBAM)等[16]。CBAM 结合了通道注意力机制和空间注意力机制的优点,能够更好地发挥注意力机制的效果。如图2 所示,将特征层经过通道注意力机制和空间注意力机制得到输出。
图2 注意力机制示意图Fig.2 Schematic diagram of attention mechanism
通道注意力机制如图3 所示。将特征层分别输入到平均池化层和最大池化层得到两个C×1×1的输出通道,并用卷积层取代全连接层,减少了权重参数;其次,将两个通道进行加法操作得到通道注意力机制的特征图;最后将特征图与特征层进行乘法运算,得到新的特征层。
图3 通道注意力框架图Fig.3 Frame diagram of channel attention mechanism
如图4 所示,空间注意力机制将缩放后的特征层作为输入分别获得每个通道上最大值和平均值;其次,进行一次堆叠形成2×H×W通道,通过卷积层调整通道数并获得1×H×W的权值;最后得到整个CBAM 的输出。
图4 空间注意力机制框架图Fig.4 Frame diagram of spatial attention mechanism
注意力机制合理应用了计算资源,降低了参数的大小,汇总空间、通道注意力信息,将信息综合。在主干提取网络提取的特征层和Neck 结构中引入CBAM(convolutional block attention module)注意力机制,能够自适应注意位错腐蚀坑,降低背景其他杂质的干扰,网络检测位错腐蚀坑的整体检测精度得到了提升。
1.2.2 加强特征融合
随着网络的加深,语义特征逐渐变强,但会丢失位置信息。除此之外,网络的加深会导致特征层尺寸减小,小目标的特征不明显。FPN+PAN 结构能够将深层信息与浅层信息相结合,增强多尺度上的语义信息和位置信息。由于单晶硅位错腐蚀坑尺寸较小,所以需要保留浅层信息,实现位错腐蚀坑的精准定位。本文在原YOLOv5 中FPN+PAN 的基础上将主干提取网络提取的特征层进行进一步融合。如图5 所示,保留主干网络提取的特征信息,融合FPN+PAN 结构输出,提升网络对单晶硅位错腐蚀坑检测性能。
图5 加强特征融合Fig.5 Strengthening of feature fusion
1.2.3 CIoU 损失函数
YOLOv5 网络的GIoU 损失函数能够解决预测框与真实框无交集时损失不下降的问题,但无法评价预测框与真实框的长宽比。使用CIoU 损失函数,引入长宽比因子[17],如式(4)所示:
式中:ρ2(b,bgt)表示预测框和真实框的欧式距离;l表示预测框与真实框最小外接矩形的对角线距离;α表示平衡比例参数;v是衡量预测框与真实框的比例参数;wgt和hgt表示真实框的宽高;w和h表示预测框的宽高。损失函数表达式为
引入CIoU 的损失函数,能够加快神经网络的训练,提升网络对单晶硅位错腐蚀坑的定位准确性。
本文以直拉法生长的<100>品相单晶硅为研究对象,使用酸碱两种不同的化学择优腐蚀液进行腐蚀表征,得到如图6 所示的不同形貌的单晶硅位错腐蚀坑显微图像。在腐蚀过程中,会有晶包、坑洞以及其他杂质造成的干扰。
图6 单晶硅位错腐蚀坑Fig.6 Dislocation corrosion pits of monocrystalline silicon
实验通过使用尼康金相显微镜L300N、尼康工业相机、NIS-Elements 软件对腐蚀后的单晶硅硅片进行观察采集。将腐蚀后的硅片放到金相显微镜载物台上,调整放大倍率,进行粗调焦、细调焦直至图像清晰,将观察到的位错腐蚀坑的图像通过尼康相机和NIS-Elements 软件保存。
利用LabelMe 软件对采集图像进行标注,标注的格式为VOC 数据集格式。标签共分为两类:酸性腐蚀液位错和碱性腐蚀液位错。将标注得到的Json 文件进行VOC 数据集格式转换,得到训练所需要的XML 文件和原始图像。
在训练网络之前,使用Mosaic 数据增强对数据集进行扩充,将图像进行随机缩放、裁切拼接,增强小目标的检测能力。最后得到尺寸为640×640×3 像素的输入图像。
实验使用Linux 操作系统,硬件使用显存为12 G 的RTX3080Ti 显卡进行运算。在软件方面,使用Anaconda3 和Pycharm 构建Pytorch 框架,采用Python 3.7 编写程序,CUDA 版本为11.5。配置如表1 所示。
表1 实验环境设置Table 1 Experimental environment setting
实验训练共迭代300次,迭代批次大小设置为4,选择Adam 作为优化器。初始学习率为0.01,随着迭代次数的增加,通过余弦退火进行学习率衰减,并设置最小学习率为0.000 05。如图7 所示,随着网络训练迭代次数的增加,损失值在不断减小。在迭代150 次后开始拟合,拟合效果好。达到300 次时,损失几乎不下降,说明网络已经收敛,训练完成。
图7 模型训练损失图Fig.7 Diagram of model training loss
平均精度(AP)、召回率(recall,R)、精确率(precision,P)、平均精度均值(mAP)、FPS 是常见的评价指标。平均精度与召回率和精确率密不可分,平均精度值越大,说明网络对这一类别物体的检测性能越好。精确度是指网络预测为正样本中正确的比例,召回率表示在所有正样本中,网络预测正确的比例,计算公式为
式中:TP表示预测为正样本,实际为正样本;FN表示预测为负样本,实际为正样本;FP表示预测为正样本,实际为负样本;TN表示预测为负样本,实际为负样本。
平均精度是指P-R曲线下的面积,是网络对某类别检测性能的强弱参量。平均精度越高,网络检测性能越好。计算公式如下:
实验中共有两种位错腐蚀坑,检测类别总数N=2,所以mAP 是这两类平均精度的平均值。平均精度均值反应了网络对所有类别检测的性能。
将改进后的YOLOv5 与Faster-Rcnn、YOLOv3、YOLOv5 网络进行对比,进一步说明改进后的YOLOv5 算法能够在单晶硅位错腐蚀坑检测上取得优秀的检测效果。如图8 所示,改进后的YOLOv5 网络对两种不同腐蚀坑的检测结果均优于原YOLOv5 网络。对于检测酸性腐蚀液得到的位错腐蚀坑,改进后YOLOv5 网络的精确率分别提升62.87%、2.53%、1.15%,达到89.67%;召回率分别提升37.74%、12.67%、4.31%,达到88.14%;平均精度分别提升67.63%、5.02%、2.05%,达到93.52%。对于检测碱性腐蚀液得到的位错腐蚀坑,与原始的YOLOv5 网络相比准确率有所降低,但依旧能够达到95.35%,召回率提升0.18%,能够达到97.54%,改进后的YOLOv5 算法对碱性腐蚀坑检测的AP(平均精确度)达到98.82%,相较于原始YOLOv5 算法有所提升。因此改进YOLOv5 算法对碱性位错腐蚀坑的检测性能优于原始YOLOv5算法。
图8 不同网络性能对比Fig.8 Comparison of different network performances
总体而言,如表2 所示,改进后的YOLOv5 算法的平均精度均值(mAP)分别提升47.16%、2.91%、1.05%,达到96.17%。由于改变了网络结构,增加了网络的参数量,推理速度有所降低,但优于YOLOv3 和Faster-RCNN,FPS 能够达到47,计算每张图像的时间为0.021 27 s,满足实时检测的需求。网络参数有所提升,参数量达到36.2 MB,属于轻型网络。
表2 不同模型的检测结果Table 2 Test results of different models
不同网络在目标置信度高于0.5 情况下,检测使用酸性腐蚀液所形成的位错腐蚀坑的结果如图9 所示,Faster-RCNN 算法检测效果差,存在预测框对位错腐蚀坑定位不准,检测准确率低,难以区分相连的位错腐蚀坑等问题;YOLOv3 算法和原始YOLOv5 算法的检测能力优于Faster-RCNN,但依旧存在漏检的情况;改进后的YOLOv5 的检测效果最好,漏检率低,能够准确区分相连的位错腐蚀坑。
图9 不同模型对酸性腐蚀坑检测效果图Fig.9 Effect drawings of acid corrosion pits detected by different models
在检测碱性腐蚀坑中,如图10 所示,YOLO 系列网络漏检率低,定位能力优于Faster-RCNN 算法。当位错腐蚀坑相连时,Faster-RCNN 算法难以区分识别,存在漏检,误检率较高。YOLOv3 算法与原始的YOLOv5 算法误检率较低,但YOLOv3 算法存在无法识别相连位错腐蚀坑情况。原始YOLOv5算法使用GIOU 损失函数,在检测相连位错腐蚀坑时,如图10(c)所示,存在定位不准确,以及漏检的现象。改进后的YOLOv5 算法能够准确定位识别相连位错。
图10 不同模型对碱性腐蚀坑检测效果图Fig.10 Effect drawings of alkaline corrosion pits detected by different models
单晶硅生长缺陷的检测与定位对半导体器件的制备具有重要意义,本文提出一种改进的YOLOv5网络模型,用于直拉法生长单晶硅位错的检测。在YOLOv5 算法的基础上,通过引入注意力机制CBAM,实现计算资源的有效分配;进一步加强特征融合,增加浅层信息与深层信息的融合,提升定位准确性;使用CIoU 损失函数,提升训练速度,加强定位准确性。实验结果表明:改进后的YOLOv5算法对酸碱两种不同腐蚀液的位错腐蚀坑的检测平均精度分别达到93.52%、98.82%,有效地提升了对单晶硅位错腐蚀坑的检测性能,优于原始YOLOv5算法。FPS 能够达到47,满足实时检测的需求,可以直接应用在工业检测现场,完成对单晶硅质量检测,单晶硅位错自动化检测提供技术参考。此外,对比检测结果可知,改进后的算法性能优于原有的YOLOv5 网络和YOLOv3 网络,尤其是在使用酸性腐蚀液的位错腐蚀坑检测方面,克服了背景中黑色杂质干扰的问题,以及在紧密连接位错定位上更加准确。
虽然改进后的YOLOv5 网络取得了较高的检测精度,但检测速率有待提升。在未来的工作中,将进一步优化网络,保持高检测精度的同时,提升检测速率;并扩大单晶硅位错图像数据集,丰富检测内容与应用场景。