基于卷积神经网络的晶圆缺陷检测与分类算法

2018-08-17 00:27,
计算机工程 2018年8期
关键词:分类器滑动卷积

邡 ,

(浙江大学 超大规模集成电路设计研究所,杭州 310027)

0 概述

现代半导体制造过程中大量使用扫描电镜(Scanning Electron Microscope,SEM)对晶圆进行扫描从而成像,然后通过查找并分析扫描图像上异常的图形来查找晶圆上可能造成电路无法正常工作的缺陷。晶圆上的缺陷类型繁多,为了提高芯片良率,研发部门要对大量分类后的缺陷作系统性分析,挖掘特定类型缺陷的成因,为进一步改进提供方向。由于系统性分析的基础是大量分类好的缺陷数据,因此如何从大量SEM图像中检测出缺陷并且分类是半导体晶圆缺陷检测和自动缺陷分类(Automatic Defect Classification,ADC)研究领域的热点[1]。

晶圆检验通常分为缺陷检测和缺陷分类两步。传统缺陷检测算法是通过将SEM图像和参考图像进行对比,取差异较大的区域作为缺陷[2],其关键在于如何得到准确的参考图像。传统的缺陷分类算法是基于缺陷区域提取特定特征,再由此设计分类器进行分类[3],其关键在于提取的特征是否能有效表达特定问题中不同缺陷类型的差异。传统缺陷检测和缺陷分类算法的适应性较差,通常需要针对特定问题重新设计。

近年来,卷积神经网络(Convolutional Neural Network,CNN)被成功地用于解决不同领域的图像分类和目标识别的问题,例如将基于AlexNet改进的ZFNet应用于图像分类[4],应用patch-based CNN进行图像分割[5],应用Faster RCNN进行目标探测[6],将DNN(Deep Neural Network)应用于图像识别[7],以及开源的深度学习框架Caffe[8]。因为具有强大的特征学习能力,所以CNN针对不同问题都能对应学习合适的特征,具有非常强的适应能力,如遥感图像[9]、人脸图像[10]、行人检测[11]等。国内也提出很多将CNN应用到传统图像识别和检测的工程问题,例如钢材表面缺陷检测[12]、木材缺陷检测[13]、水果缺陷检测[14]以及手势识别[15],都得了不错的效果。

本文应用深度学习领域的CNN图像分类算法ZFNet进行SEM图像缺陷分类,同时基于ZFNet缺陷分类器实现一种patch-based CNN缺陷检测算法,该算法能够从SEM图像中检测出缺陷的位置和类型。为进一步提高检测效率,本文根据缺陷检测问题的特殊性,通过改动Faster RCNN中的RPN网络结构实现另一种缺陷检测算法。

1 ZFNet缺陷分类器

1.1 晶圆缺陷数据

芯片制造的工艺流程及其复杂,而在不同阶段都要进行晶圆检验,所以,SEM图像上的晶圆缺陷类型繁多,而缺陷类型都需要工程师结合实际情况来定义。根据某晶圆厂提供的数据,本文模拟生成了一批尺寸为500×500像素,包含9种不同类型缺陷的SEM图像,并且给出缺陷的具体位置和类型。晶圆缺陷类型依次为open、short、brighter、darker、impurity、hump1、bite1、hump2、hite2,其中图像为彩色是因为将SEM图像和对应版图各自作为一个通道进行合并,从而使图像包含更多信息便于检测与分类。

由于缺陷区域在原尺寸的SEM图像只占小部分,无法将其直接送入CNN进行分类,因此对原尺寸图像进行随机剪裁产生图像,其中包含缺陷的图像标记为对应缺陷类型,而不包含缺陷的图像标记为无缺陷,使用这样数据训练出来的CNN分类器能够同时判断是否有缺陷与缺陷具体类型。实际算法是首先使用多种尺寸比例的滑动窗口对原尺寸图像进行滑动剪裁(本文取面积分别为322、642、1282,长宽比分别为2∶1、1∶1、1∶2的9种滑动框,滑动步幅为16),然后分别计算该框与缺陷区域的overlap,采用交并比(Intersection over Union,IoU)作为评价函数,从中随机挑选overlap>0.4的20张图作为正例,overlap<0.001的200张图作为负例,再通过水平、垂直翻转和对比度随机变化等方法对数据集进行扩张,最终得到约9×104组数据。随机挑选其中70%作为训练集,30%作为测试集。

1.2 ZFNet结构

基于AlexNet微调的ZFNet是2013ILSVRC的冠军[5],具有较快的分类速度和强大的学习适应能力,是目前图像分类较为常用的一种卷积神经网络。如图1所示,该网络总共5层卷积层、2层全连接层、1层softmax分类层,其中前两层卷积层连接有局部响应归一化层(Local Response Normalization,LRN)。

图1 ZFNet结构示意图

此外,该网络采用ReLU激活函数替代Tanh以加速收敛,在全连接层采用dropout技术减小过拟合。本文ZFNet将输入图像尺寸统一调整为96×96像素,删去了全连接层5的次采样层,将softmax分类层的输出数改为10(无缺陷加上9类缺陷)。本文ZFNet基于Caffe架构可以较容易的实现[8],并采用SGD(Stochastic Gradient Descent)算法进行迭代训练,学习率lr=0.0001。

1.3 测试结果

采用训练好的ZFNet分类模型对测试集分类,得到结果如表1所示。

表1 ZFNet分类器测试结果

因为测试数据中无缺陷图像占比超过90%,所以准确率无法用来衡量算法有效性,故采用精确率P和召回率R的调和平均值F1来综合衡量分类结果,计算得:

P=2 519/(2 519+12)=99.5%

R=2 519/(2 519+139)=94.8%

F1=2/(1/P+1/R)=97.1%

通过结果可以看出,将ZFNet应用于SEM图像缺陷分类是有效的,而且其还能同时判断图像中是否有缺陷,因此,借助ZFNet和有效的剪裁方法就能够同时实现缺陷检测与分类的功能。下面介绍按此思路设计的patch-based ZFNet检测器,其不同于传统的晶圆缺陷检测器只能找出缺陷的位置,而是同时检测缺陷并且分类。

2 patch-based ZFNet检测器

2.1 检测算法

patch-based CNN通过用滑动窗口对原图剪裁再送入CNN来判断该位置类型,最终将原尺寸图像分割成不同类型的子图[5]。如图2所示,参照该算法,本文在已经训练好的ZFNet分类器基础上,用48×48像素的滑动框将500×500像素的原尺寸图像分割成多块patch图像(步幅为16),依次送入ZFNet,通过softmax层分别计算出各个patch属于各类型的概率,忽略掉没有缺陷的概率,按patch的顺序排列可以组成9张不同类型缺陷的概率分布图。接下来对概率图取阈值进行二值化,再过滤掉面积较小的连通区域,最后用最小矩形分别框覆盖剩下连通区域,即可确定检测到的缺陷的位置和类型。从图2中可以发现,只有open概率分布图中有明显一块较亮的区域,即为检测到的open缺陷。

图2 patch-based ZFNet检测算法示意图

在训练patch-based ZFNet检测器时,数据集是500×500像素原始尺寸的图像,且包含标记好的缺陷区域和类型。本文通过一系列数据扩张操作,得到1 576组数据,随机选取60%作为训练集,40%作为测试集。

算法中需要优化的参数有滑动窗口尺寸dpatch-size、滑动步幅dstride、概率阈值Pth、面积阈值Sth,由于无法求出各参数与检测结果的明确关系式,因此采用遍历法优化参数。因为检测到的缺陷尽量正确和尽量检测到所有缺陷是矛盾的,所以将精确率和召回率的调和平均值F1作为优化目标,也可根据实际需要调整两者权重满足不同侧重。

2.2 测试结果

用训练好的patch-based ZFNet检测模型对测试集检测,CPU计算模式下每张图约耗时37 s。如果检测到的缺陷与标准答案的overlap>0.1且类型相同,则判为正确,否则判为错误,得到结果如表2所示。

表2 patch-based ZFNet检测器测试结果

由表2中的数据可以计算得到:

P=346/(346+108)=76.2%

R=346/(346+89)=79.5%

F1=2/(1/P+1/R)=77.8%

其中,正确缺陷的平均overlap=0.41。

从检测结果来看,该算法基本实现了对SEM图像上晶圆缺陷的检测和分类,但是F1值较低,缺陷检测位置不准确,检测耗时较长,分析其原因如下:

1)在检测出错的数据中,缺陷较大的类型易判断错,缺陷较小的容易被漏掉,说明只使用一种尺寸的滑动框很难适应尺寸变化范围较大的缺陷。

2)滑动框步幅减小则算法耗时平方倍增加,而步幅过长造成缺陷概率分布图分辨率较差,从而检测到缺陷位置准确度较差。

3)相邻滑动框都有大量重叠,所以,每个区域都被多次重复送入ZFNet计算卷积,导致算法耗时较长。

在与上述检测算法相似的图像目标检测领域,近来出现的Faster RCNN能够克服以上缺点,取得较好的效果,因此,下文将在Faster RCNN的基础上,提出另一种算法,更好地实现晶圆缺陷的检测与分类。

3 Faster RCNN分类器

3.1 Faster RCNN结构

相比于patch-based ZFNet检测算法,Faster RCNN主要从以下3个方面进行了针对性的改进:

1)针对重复计算卷积的缺点,Faster RCNN采用先统一计算特征图,再按ROI(Region of Interest)进行映射截取的办法[6]。如图3所示,先通过卷积网络对输入图像计算得到其特征图,因为在输入图像上的ROI都能映射到特征图上,所以从输入图像上按ROI割取图像进行卷积运算可以替代为直接从特征图上按ROI映射后的范围割取,从而避免多次重复计算卷积。由于ROI的大小形状不一,而全连接层的神经元连接数是固定的,因此对割取得到的子特征图,通过ROIpool层次采样到统一尺寸以连接到全连接层。

图3 ROI映射示意图

2)针对滑动窗口尺寸单一的缺点,Faster RCNN增加了滑动窗口的尺寸类型,并且增加由一个全卷积网络组成的区域推荐网络(Region Proposal Network,RPN)来预判断是否有缺陷[6]。本文采用面积分别为322、642、1282,长宽比分别为2∶1、1∶1、1∶2共9种尺寸的滑动窗口,依次计算其中有缺陷的概率,再从中筛选出一定数量最有可能有缺陷的区域,进行非极大值抑制(Non-Maximum Suppression,NMS),最后得到一定数量的候选区域。

3)针对缺陷检测位置准确度差的缺点,Faster RCNN在全连接层后连接一个边界回归层(Boundary Regression)用来修正缺陷位置[6],该回归层与Softmax分类层并列。

针对本文的缺陷检测问题,直接套用标准Faster RCNN并不能解决问题。因为判断晶圆的缺陷类型通常需要结合缺陷区域周围的图形信息,而RPN在预判断是否有缺陷时还进行了边界回归。虽然能更准确地给出缺陷的位置,但送入检测网络的特征几乎不包含缺陷周围图形信息,导致缺陷分类不准。因此,本文对标准Faster RCNN做如下修改:

1)将RPN改为只判断滑动窗口内是否有缺陷,而不进行边界回归,也就是只计算所有滑动窗口有缺陷的概率,选取可能性最大的1 000个,做非极大值抑制,再选出可能性最大的100个进行检测。

2)将RPN卷积层的尺寸加大为7×7,加大感受野,从而在判断滑动框内是否有缺陷时能参考更多的周围信息。

3)将原尺寸为500×500像素的图像调整为1 024×1 024像素,使得滑动窗口尺寸能够适应缺陷大小的变化范围,也可以根据实际情况来具体调整。

修改后的缺陷检测算法流程如图4所示。首先利用卷积网络将输入图像转换成多种特征图,然后RPN根据特征图从滑动窗口中选出最有可能存在缺陷的ROI,RoIPooling层根据ROI从特征图中抽取出对应特征组成特征向量,检测网络(Detection Network,DN)根据特征向量判断缺陷类型,并进行边界回归,最后通过NMS和概率阈值对候选缺陷进行过滤即可得到最终缺陷。

图4 Faster RCNN检测算法示意图

3.2 模型训练

图4中的检测算法也是基于Caffe架构实现,因为卷积网络提取的特征类型对相似普遍有效,故其卷积网络的参数是直接迁移上文ZFNet分类器的卷积层参数。但是RPN和DN的参数则需要通过SGD方法进行训练,标准Faster RCNN提供了分开和联合2种训练方式[6]。为了节约时间,本文采用联合训练方式,并结合缺陷检测问题的实际情况调整超参数。

在训练RPN时,对每张输入图像,因为要计算的滑动窗口数量庞大(9种尺寸的滑动窗口,滑动步幅16),所以从中随机抽取256个作为训练集,其中正例overlap>0.35,负例overlap<0.001,且正例占比不超过20%。分类器采用Softmax损失函数。

在训练DN时,设置RPN提供1 000个ROI,从中随机选取256个作为训练集,其中正例overlap>0.3,负例overlap<0.001,且正例占比不超过5%。另外设置学习率lr=0.000 05。分类器采用Softmax损失函数,而边界回归采用SmoothL1Loss函数。

为与patch-based 检测算法对比,在通过遍历法优化NMS和概率阈值Pth时,同样以精确率和召回率的调和平均值F1作为优化目标,并且使用相同的训练集和测试集。

3.3 测试结果

用训练后的Faster RCNN检测模型对测试集检测,CPU计算模式下每张图约耗时2 s,采用相同判定标准,得到的检测结果如表3所示(其中负类总数与表2中总数不同是因为同一张图中可能检测到多个缺陷)。

表3 Faster RCNN检测器测试结果

由表3的数据计算可得:

P=418/(418+36)=92.1%

R=418/(418+29)=93.5%

F1=2/(1/P+1/R)=92.8%

其中,正确缺陷的平均overlap=0.78。

从结果来看,该算法各方面都优于patch-based检测算法,F1和overlap值更高说明检测检测缺陷类型正确且位置准确,而且速度也大大提高(检测一张图像耗时从37 s缩小到2 s)。图5为检测缺陷结果示例,图像中方框标注了缺陷的位置和大小,各缺陷类型的对应概率如表4所示。

图5 检测结果示例图

表4 各缺陷类型的对应概率

4 结束语

针对晶圆SEM图像的缺陷分类问题,本文采用ZFNet卷积神经网络对SEM图像缺陷区域进行分类。SEM图像数据包含9种缺陷类型以及非缺陷类型,共10种类型,测试的F-score值达到了97%,可见本文提出的ZFNet缺陷分类算法准确,具有较强数据适应能力。

针对缺陷检测问题,本文基于ZFNet缺陷分类算法实现了一种较耗时的patch-based检测算法,然后对其重复计算卷积和剪裁不合理的缺点,改进Faster RCNN实现了另一种缺陷检测算法,从而快速准确地检测出SEM图像中缺陷的位置和类型。SEM图像包含9种缺陷类型,Faster RCNN检测算法测试结果的F-score为92%,且耗时仅为patch-based检测算法的5%,可见该算法快速、准确,具有较强的数据适应能力。

猜你喜欢
分类器滑动卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
一种新型滑动叉拉花键夹具
Big Little lies: No One Is Perfect
基于傅里叶域卷积表示的目标跟踪算法
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
滑动供电系统在城市轨道交通中的应用
基于层次化分类器的遥感图像飞机目标检测