邡 ,
(浙江大學(xué) 超大規(guī)模集成電路設(shè)計(jì)研究所,杭州 310027)
現(xiàn)代半導(dǎo)體制造過程中大量使用掃描電鏡(Scanning Electron Microscope,SEM)對晶圓進(jìn)行掃描從而成像,然后通過查找并分析掃描圖像上異常的圖形來查找晶圓上可能造成電路無法正常工作的缺陷。晶圓上的缺陷類型繁多,為了提高芯片良率,研發(fā)部門要對大量分類后的缺陷作系統(tǒng)性分析,挖掘特定類型缺陷的成因,為進(jìn)一步改進(jìn)提供方向。由于系統(tǒng)性分析的基礎(chǔ)是大量分類好的缺陷數(shù)據(jù),因此如何從大量SEM圖像中檢測出缺陷并且分類是半導(dǎo)體晶圓缺陷檢測和自動缺陷分類(Automatic Defect Classification,ADC)研究領(lǐng)域的熱點(diǎn)[1]。
晶圓檢驗(yàn)通常分為缺陷檢測和缺陷分類兩步。傳統(tǒng)缺陷檢測算法是通過將SEM圖像和參考圖像進(jìn)行對比,取差異較大的區(qū)域作為缺陷[2],其關(guān)鍵在于如何得到準(zhǔn)確的參考圖像。傳統(tǒng)的缺陷分類算法是基于缺陷區(qū)域提取特定特征,再由此設(shè)計(jì)分類器進(jìn)行分類[3],其關(guān)鍵在于提取的特征是否能有效表達(dá)特定問題中不同缺陷類型的差異。傳統(tǒng)缺陷檢測和缺陷分類算法的適應(yīng)性較差,通常需要針對特定問題重新設(shè)計(jì)。
近年來,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)被成功地用于解決不同領(lǐng)域的圖像分類和目標(biāo)識別的問題,例如將基于AlexNet改進(jìn)的ZFNet應(yīng)用于圖像分類[4],應(yīng)用patch-based CNN進(jìn)行圖像分割[5],應(yīng)用Faster RCNN進(jìn)行目標(biāo)探測[6],將DNN(Deep Neural Network)應(yīng)用于圖像識別[7],以及開源的深度學(xué)習(xí)框架Caffe[8]。因?yàn)榫哂袕?qiáng)大的特征學(xué)習(xí)能力,所以CNN針對不同問題都能對應(yīng)學(xué)習(xí)合適的特征,具有非常強(qiáng)的適應(yīng)能力,如遙感圖像[9]、人臉圖像[10]、行人檢測[11]等。國內(nèi)也提出很多將CNN應(yīng)用到傳統(tǒng)圖像識別和檢測的工程問題,例如鋼材表面缺陷檢測[12]、木材缺陷檢測[13]、水果缺陷檢測[14]以及手勢識別[15],都得了不錯的效果。
本文應(yīng)用深度學(xué)習(xí)領(lǐng)域的CNN圖像分類算法ZFNet進(jìn)行SEM圖像缺陷分類,同時基于ZFNet缺陷分類器實(shí)現(xiàn)一種patch-based CNN缺陷檢測算法,該算法能夠從SEM圖像中檢測出缺陷的位置和類型。為進(jìn)一步提高檢測效率,本文根據(jù)缺陷檢測問題的特殊性,通過改動Faster RCNN中的RPN網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)另一種缺陷檢測算法。
芯片制造的工藝流程及其復(fù)雜,而在不同階段都要進(jìn)行晶圓檢驗(yàn),所以,SEM圖像上的晶圓缺陷類型繁多,而缺陷類型都需要工程師結(jié)合實(shí)際情況來定義。根據(jù)某晶圓廠提供的數(shù)據(jù),本文模擬生成了一批尺寸為500×500像素,包含9種不同類型缺陷的SEM圖像,并且給出缺陷的具體位置和類型。晶圓缺陷類型依次為open、short、brighter、darker、impurity、hump1、bite1、hump2、hite2,其中圖像為彩色是因?yàn)閷EM圖像和對應(yīng)版圖各自作為一個通道進(jìn)行合并,從而使圖像包含更多信息便于檢測與分類。
由于缺陷區(qū)域在原尺寸的SEM圖像只占小部分,無法將其直接送入CNN進(jìn)行分類,因此對原尺寸圖像進(jìn)行隨機(jī)剪裁產(chǎn)生圖像,其中包含缺陷的圖像標(biāo)記為對應(yīng)缺陷類型,而不包含缺陷的圖像標(biāo)記為無缺陷,使用這樣數(shù)據(jù)訓(xùn)練出來的CNN分類器能夠同時判斷是否有缺陷與缺陷具體類型。實(shí)際算法是首先使用多種尺寸比例的滑動窗口對原尺寸圖像進(jìn)行滑動剪裁(本文取面積分別為322、642、1282,長寬比分別為2∶1、1∶1、1∶2的9種滑動框,滑動步幅為16),然后分別計(jì)算該框與缺陷區(qū)域的overlap,采用交并比(Intersection over Union,IoU)作為評價函數(shù),從中隨機(jī)挑選overlap>0.4的20張圖作為正例,overlap<0.001的200張圖作為負(fù)例,再通過水平、垂直翻轉(zhuǎn)和對比度隨機(jī)變化等方法對數(shù)據(jù)集進(jìn)行擴(kuò)張,最終得到約9×104組數(shù)據(jù)。隨機(jī)挑選其中70%作為訓(xùn)練集,30%作為測試集。
基于AlexNet微調(diào)的ZFNet是2013ILSVRC的冠軍[5],具有較快的分類速度和強(qiáng)大的學(xué)習(xí)適應(yīng)能力,是目前圖像分類較為常用的一種卷積神經(jīng)網(wǎng)絡(luò)。如圖1所示,該網(wǎng)絡(luò)總共5層卷積層、2層全連接層、1層softmax分類層,其中前兩層卷積層連接有局部響應(yīng)歸一化層(Local Response Normalization,LRN)。
圖1 ZFNet結(jié)構(gòu)示意圖
此外,該網(wǎng)絡(luò)采用ReLU激活函數(shù)替代Tanh以加速收斂,在全連接層采用dropout技術(shù)減小過擬合。本文ZFNet將輸入圖像尺寸統(tǒng)一調(diào)整為96×96像素,刪去了全連接層5的次采樣層,將softmax分類層的輸出數(shù)改為10(無缺陷加上9類缺陷)。本文ZFNet基于Caffe架構(gòu)可以較容易的實(shí)現(xiàn)[8],并采用SGD(Stochastic Gradient Descent)算法進(jìn)行迭代訓(xùn)練,學(xué)習(xí)率lr=0.0001。
采用訓(xùn)練好的ZFNet分類模型對測試集分類,得到結(jié)果如表1所示。
表1 ZFNet分類器測試結(jié)果
因?yàn)闇y試數(shù)據(jù)中無缺陷圖像占比超過90%,所以準(zhǔn)確率無法用來衡量算法有效性,故采用精確率P和召回率R的調(diào)和平均值F1來綜合衡量分類結(jié)果,計(jì)算得:
P=2 519/(2 519+12)=99.5%
R=2 519/(2 519+139)=94.8%
F1=2/(1/P+1/R)=97.1%
通過結(jié)果可以看出,將ZFNet應(yīng)用于SEM圖像缺陷分類是有效的,而且其還能同時判斷圖像中是否有缺陷,因此,借助ZFNet和有效的剪裁方法就能夠同時實(shí)現(xiàn)缺陷檢測與分類的功能。下面介紹按此思路設(shè)計(jì)的patch-based ZFNet檢測器,其不同于傳統(tǒng)的晶圓缺陷檢測器只能找出缺陷的位置,而是同時檢測缺陷并且分類。
patch-based CNN通過用滑動窗口對原圖剪裁再送入CNN來判斷該位置類型,最終將原尺寸圖像分割成不同類型的子圖[5]。如圖2所示,參照該算法,本文在已經(jīng)訓(xùn)練好的ZFNet分類器基礎(chǔ)上,用48×48像素的滑動框?qū)?00×500像素的原尺寸圖像分割成多塊patch圖像(步幅為16),依次送入ZFNet,通過softmax層分別計(jì)算出各個patch屬于各類型的概率,忽略掉沒有缺陷的概率,按patch的順序排列可以組成9張不同類型缺陷的概率分布圖。接下來對概率圖取閾值進(jìn)行二值化,再過濾掉面積較小的連通區(qū)域,最后用最小矩形分別框覆蓋剩下連通區(qū)域,即可確定檢測到的缺陷的位置和類型。從圖2中可以發(fā)現(xiàn),只有open概率分布圖中有明顯一塊較亮的區(qū)域,即為檢測到的open缺陷。
圖2 patch-based ZFNet檢測算法示意圖
在訓(xùn)練patch-based ZFNet檢測器時,數(shù)據(jù)集是500×500像素原始尺寸的圖像,且包含標(biāo)記好的缺陷區(qū)域和類型。本文通過一系列數(shù)據(jù)擴(kuò)張操作,得到1 576組數(shù)據(jù),隨機(jī)選取60%作為訓(xùn)練集,40%作為測試集。
算法中需要優(yōu)化的參數(shù)有滑動窗口尺寸dpatch-size、滑動步幅dstride、概率閾值Pth、面積閾值Sth,由于無法求出各參數(shù)與檢測結(jié)果的明確關(guān)系式,因此采用遍歷法優(yōu)化參數(shù)。因?yàn)闄z測到的缺陷盡量正確和盡量檢測到所有缺陷是矛盾的,所以將精確率和召回率的調(diào)和平均值F1作為優(yōu)化目標(biāo),也可根據(jù)實(shí)際需要調(diào)整兩者權(quán)重滿足不同側(cè)重。
用訓(xùn)練好的patch-based ZFNet檢測模型對測試集檢測,CPU計(jì)算模式下每張圖約耗時37 s。如果檢測到的缺陷與標(biāo)準(zhǔn)答案的overlap>0.1且類型相同,則判為正確,否則判為錯誤,得到結(jié)果如表2所示。
表2 patch-based ZFNet檢測器測試結(jié)果
由表2中的數(shù)據(jù)可以計(jì)算得到:
P=346/(346+108)=76.2%
R=346/(346+89)=79.5%
F1=2/(1/P+1/R)=77.8%
其中,正確缺陷的平均overlap=0.41。
從檢測結(jié)果來看,該算法基本實(shí)現(xiàn)了對SEM圖像上晶圓缺陷的檢測和分類,但是F1值較低,缺陷檢測位置不準(zhǔn)確,檢測耗時較長,分析其原因如下:
1)在檢測出錯的數(shù)據(jù)中,缺陷較大的類型易判斷錯,缺陷較小的容易被漏掉,說明只使用一種尺寸的滑動框很難適應(yīng)尺寸變化范圍較大的缺陷。
2)滑動框步幅減小則算法耗時平方倍增加,而步幅過長造成缺陷概率分布圖分辨率較差,從而檢測到缺陷位置準(zhǔn)確度較差。
3)相鄰滑動框都有大量重疊,所以,每個區(qū)域都被多次重復(fù)送入ZFNet計(jì)算卷積,導(dǎo)致算法耗時較長。
在與上述檢測算法相似的圖像目標(biāo)檢測領(lǐng)域,近來出現(xiàn)的Faster RCNN能夠克服以上缺點(diǎn),取得較好的效果,因此,下文將在Faster RCNN的基礎(chǔ)上,提出另一種算法,更好地實(shí)現(xiàn)晶圓缺陷的檢測與分類。
相比于patch-based ZFNet檢測算法,Faster RCNN主要從以下3個方面進(jìn)行了針對性的改進(jìn):
1)針對重復(fù)計(jì)算卷積的缺點(diǎn),Faster RCNN采用先統(tǒng)一計(jì)算特征圖,再按ROI(Region of Interest)進(jìn)行映射截取的辦法[6]。如圖3所示,先通過卷積網(wǎng)絡(luò)對輸入圖像計(jì)算得到其特征圖,因?yàn)樵谳斎雸D像上的ROI都能映射到特征圖上,所以從輸入圖像上按ROI割取圖像進(jìn)行卷積運(yùn)算可以替代為直接從特征圖上按ROI映射后的范圍割取,從而避免多次重復(fù)計(jì)算卷積。由于ROI的大小形狀不一,而全連接層的神經(jīng)元連接數(shù)是固定的,因此對割取得到的子特征圖,通過ROIpool層次采樣到統(tǒng)一尺寸以連接到全連接層。
圖3 ROI映射示意圖
2)針對滑動窗口尺寸單一的缺點(diǎn),Faster RCNN增加了滑動窗口的尺寸類型,并且增加由一個全卷積網(wǎng)絡(luò)組成的區(qū)域推薦網(wǎng)絡(luò)(Region Proposal Network,RPN)來預(yù)判斷是否有缺陷[6]。本文采用面積分別為322、642、1282,長寬比分別為2∶1、1∶1、1∶2共9種尺寸的滑動窗口,依次計(jì)算其中有缺陷的概率,再從中篩選出一定數(shù)量最有可能有缺陷的區(qū)域,進(jìn)行非極大值抑制(Non-Maximum Suppression,NMS),最后得到一定數(shù)量的候選區(qū)域。
3)針對缺陷檢測位置準(zhǔn)確度差的缺點(diǎn),Faster RCNN在全連接層后連接一個邊界回歸層(Boundary Regression)用來修正缺陷位置[6],該回歸層與Softmax分類層并列。
針對本文的缺陷檢測問題,直接套用標(biāo)準(zhǔn)Faster RCNN并不能解決問題。因?yàn)榕袛嗑A的缺陷類型通常需要結(jié)合缺陷區(qū)域周圍的圖形信息,而RPN在預(yù)判斷是否有缺陷時還進(jìn)行了邊界回歸。雖然能更準(zhǔn)確地給出缺陷的位置,但送入檢測網(wǎng)絡(luò)的特征幾乎不包含缺陷周圍圖形信息,導(dǎo)致缺陷分類不準(zhǔn)。因此,本文對標(biāo)準(zhǔn)Faster RCNN做如下修改:
1)將RPN改為只判斷滑動窗口內(nèi)是否有缺陷,而不進(jìn)行邊界回歸,也就是只計(jì)算所有滑動窗口有缺陷的概率,選取可能性最大的1 000個,做非極大值抑制,再選出可能性最大的100個進(jìn)行檢測。
2)將RPN卷積層的尺寸加大為7×7,加大感受野,從而在判斷滑動框內(nèi)是否有缺陷時能參考更多的周圍信息。
3)將原尺寸為500×500像素的圖像調(diào)整為1 024×1 024像素,使得滑動窗口尺寸能夠適應(yīng)缺陷大小的變化范圍,也可以根據(jù)實(shí)際情況來具體調(diào)整。
修改后的缺陷檢測算法流程如圖4所示。首先利用卷積網(wǎng)絡(luò)將輸入圖像轉(zhuǎn)換成多種特征圖,然后RPN根據(jù)特征圖從滑動窗口中選出最有可能存在缺陷的ROI,RoIPooling層根據(jù)ROI從特征圖中抽取出對應(yīng)特征組成特征向量,檢測網(wǎng)絡(luò)(Detection Network,DN)根據(jù)特征向量判斷缺陷類型,并進(jìn)行邊界回歸,最后通過NMS和概率閾值對候選缺陷進(jìn)行過濾即可得到最終缺陷。
圖4 Faster RCNN檢測算法示意圖
圖4中的檢測算法也是基于Caffe架構(gòu)實(shí)現(xiàn),因?yàn)榫矸e網(wǎng)絡(luò)提取的特征類型對相似普遍有效,故其卷積網(wǎng)絡(luò)的參數(shù)是直接遷移上文ZFNet分類器的卷積層參數(shù)。但是RPN和DN的參數(shù)則需要通過SGD方法進(jìn)行訓(xùn)練,標(biāo)準(zhǔn)Faster RCNN提供了分開和聯(lián)合2種訓(xùn)練方式[6]。為了節(jié)約時間,本文采用聯(lián)合訓(xùn)練方式,并結(jié)合缺陷檢測問題的實(shí)際情況調(diào)整超參數(shù)。
在訓(xùn)練RPN時,對每張輸入圖像,因?yàn)橐?jì)算的滑動窗口數(shù)量龐大(9種尺寸的滑動窗口,滑動步幅16),所以從中隨機(jī)抽取256個作為訓(xùn)練集,其中正例overlap>0.35,負(fù)例overlap<0.001,且正例占比不超過20%。分類器采用Softmax損失函數(shù)。
在訓(xùn)練DN時,設(shè)置RPN提供1 000個ROI,從中隨機(jī)選取256個作為訓(xùn)練集,其中正例overlap>0.3,負(fù)例overlap<0.001,且正例占比不超過5%。另外設(shè)置學(xué)習(xí)率lr=0.000 05。分類器采用Softmax損失函數(shù),而邊界回歸采用SmoothL1Loss函數(shù)。
為與patch-based 檢測算法對比,在通過遍歷法優(yōu)化NMS和概率閾值Pth時,同樣以精確率和召回率的調(diào)和平均值F1作為優(yōu)化目標(biāo),并且使用相同的訓(xùn)練集和測試集。
用訓(xùn)練后的Faster RCNN檢測模型對測試集檢測,CPU計(jì)算模式下每張圖約耗時2 s,采用相同判定標(biāo)準(zhǔn),得到的檢測結(jié)果如表3所示(其中負(fù)類總數(shù)與表2中總數(shù)不同是因?yàn)橥粡垐D中可能檢測到多個缺陷)。
表3 Faster RCNN檢測器測試結(jié)果
由表3的數(shù)據(jù)計(jì)算可得:
P=418/(418+36)=92.1%
R=418/(418+29)=93.5%
F1=2/(1/P+1/R)=92.8%
其中,正確缺陷的平均overlap=0.78。
從結(jié)果來看,該算法各方面都優(yōu)于patch-based檢測算法,F1和overlap值更高說明檢測檢測缺陷類型正確且位置準(zhǔn)確,而且速度也大大提高(檢測一張圖像耗時從37 s縮小到2 s)。圖5為檢測缺陷結(jié)果示例,圖像中方框標(biāo)注了缺陷的位置和大小,各缺陷類型的對應(yīng)概率如表4所示。
圖5 檢測結(jié)果示例圖
表4 各缺陷類型的對應(yīng)概率
針對晶圓SEM圖像的缺陷分類問題,本文采用ZFNet卷積神經(jīng)網(wǎng)絡(luò)對SEM圖像缺陷區(qū)域進(jìn)行分類。SEM圖像數(shù)據(jù)包含9種缺陷類型以及非缺陷類型,共10種類型,測試的F-score值達(dá)到了97%,可見本文提出的ZFNet缺陷分類算法準(zhǔn)確,具有較強(qiáng)數(shù)據(jù)適應(yīng)能力。
針對缺陷檢測問題,本文基于ZFNet缺陷分類算法實(shí)現(xiàn)了一種較耗時的patch-based檢測算法,然后對其重復(fù)計(jì)算卷積和剪裁不合理的缺點(diǎn),改進(jìn)Faster RCNN實(shí)現(xiàn)了另一種缺陷檢測算法,從而快速準(zhǔn)確地檢測出SEM圖像中缺陷的位置和類型。SEM圖像包含9種缺陷類型,Faster RCNN檢測算法測試結(jié)果的F-score為92%,且耗時僅為patch-based檢測算法的5%,可見該算法快速、準(zhǔn)確,具有較強(qiáng)的數(shù)據(jù)適應(yīng)能力。