魏鵬
(中國電子科技集團公司第十一研究所,北京100015)
集成電路(IC)芯片生產(chǎn)過程中往往要經(jīng)歷數(shù)十道甚至上百道工藝處理過程。在流片過程中,有許多因素會造成IC芯片質(zhì)量受損。所以在工藝線上往往會在各個工藝節(jié)點完成后增加一個質(zhì)檢環(huán)節(jié)。通過人工在顯微鏡下目測芯片圖形線條的完好程度,間接地判斷芯片有無受損情況,從而達到對芯片進行中間檢驗和質(zhì)量把關(guān)的目的。另外,近年來在一些特殊的行業(yè),如航空航天,由于對IC芯片的封裝體積、散熱效率等因素非常敏感,因此不采用封裝好的IC芯片,而是直接使用未經(jīng)過封裝的芯片,即稱為裸芯片。在裸芯片使用前,必須對每顆裸芯片進行檢測,檢測的方法也是目視鏡檢。這一檢測環(huán)節(jié)對航空航天部件、裝備的可靠性保障來說尤為重要。
本文主要研究了采用何種技術(shù)方法對IC芯片圖形缺陷進行可靠、有效、快速地識別與檢測。論述的主要內(nèi)容包括介紹國際上先進的幾種圖形圖像識別檢測技術(shù),分析比較了各自的技術(shù)特點。
在IC芯片的生產(chǎn)過程中,由于生產(chǎn)環(huán)境不理想、制造工藝不完善等問題,IC芯片表面會出現(xiàn)如劃痕、外來物污染、短路、斷路等各種缺陷問題。這些缺陷不僅影響元器件的外觀,甚至?xí)绊懺骷目煽啃?,對元器件的工作壽命產(chǎn)生重大影響,因此芯片的表面質(zhì)量檢測是值得重視的質(zhì)檢過程。
目前在大多數(shù)集成電路生產(chǎn)線上,IC芯片測試是通過探針臺和測試儀兩種設(shè)備聯(lián)合來完成的。它僅限于對已經(jīng)具有完全的電路功能的成品芯片進行電氣功能的實際加電測試。但這種方法不能對尚未具備完全功能的前工藝流片節(jié)點上的芯片進行半成品芯片測試,因此具有一定的使用局限性。
基于卷積神經(jīng)網(wǎng)絡(luò)的IC芯片圖形缺陷檢測是通過對IC芯片經(jīng)光學(xué)系統(tǒng)成像后,進行圖像采集,然后利用計算機算法對芯片的圖形圖像進行識別、分析、歸類,以達到芯片缺陷檢測的目的。因此這種方法可檢測的芯片對象不再拘泥于已具有完全電路功能的成品芯片,而且能對IC生產(chǎn)線上各工藝節(jié)點的所有對半成品或成品芯片進行檢測,具有適用范圍寬,通用性好,測試項目組態(tài)靈活,運行成本低等特點。它屬于一種間接的質(zhì)檢方法,對及早發(fā)現(xiàn)芯片缺陷,避免成本浪費有極大的意義。
過去傳統(tǒng)芯片的缺陷檢測方法是通過人工使用高分辨率數(shù)字或光學(xué)顯微鏡進行目測來完成的。該方法不足之處在于:人工操作容易疲勞,檢測精度低,進而影響到芯片的目視質(zhì)檢結(jié)果。而且受到人眼空間和時間分辨率的限制,人工檢測具有主觀性強、不確定性大的缺點,很難滿足現(xiàn)代工業(yè)高精度、高效率的檢測需求?,F(xiàn)代的檢測方法是用計算機圖形圖像自動識別技術(shù),即機器視覺技術(shù),來代替人工目視鏡檢。
隨著現(xiàn)代圖像處理技術(shù)及相關(guān)信息技術(shù)的發(fā)展,基于光學(xué)圖像傳感的表面缺陷機器視覺已廣泛應(yīng)用于自動光學(xué)檢查系統(tǒng)中,提高了缺陷檢測的準(zhǔn)確性。有許多專家學(xué)者對于集成電路缺陷檢測技術(shù)進行了研究。目前,在計算機視覺技術(shù)領(lǐng)域,關(guān)于集成電路缺陷的檢測方法主要基于傳統(tǒng)圖像處理的檢測方法、傳統(tǒng)機器學(xué)習(xí)法以及深度卷積神經(jīng)網(wǎng)絡(luò)法。
基于傳統(tǒng)圖像處理的檢測方法主要是對目標(biāo)圖像進行閾值分割、特征提取等操作實現(xiàn)缺陷的識別、分割與檢測[1];基于傳統(tǒng)機器學(xué)習(xí)的檢測方法則是通過淺層神經(jīng)網(wǎng)絡(luò)、SVM(Support Vector Machine)支持向量機[2],使計算機能夠自動學(xué)習(xí)或發(fā)現(xiàn)目標(biāo)圖像中的缺陷特征,實現(xiàn)缺陷檢測;基于深度卷積神經(jīng)網(wǎng)絡(luò)的檢測方法是利用CNN(Convolutional Neural Network)卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建適合于缺陷圖形檢測的深度模型[3],實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)識別、缺陷分類及判別,進而對產(chǎn)品質(zhì)量進行評判。本文對目前在IC芯片圖形缺陷檢測領(lǐng)域所采用的幾種檢測方法進行了分析比較。
基于傳統(tǒng)圖像處理的缺陷檢測方法一般可以通過圖像閾值分割,圖像邊緣檢測和連通域生長等方法實現(xiàn)。集成電路缺陷檢測通??梢苑譃橐韵聨讉€步驟:第一步,是對圖像的獲取與預(yù)處理,就是對目標(biāo)圖像進行圖像增強、去噪濾波、修復(fù)及直方圖分析等處理;第二步,是對目標(biāo)圖像進行邊緣檢測根據(jù)圖像內(nèi)容進行閾值分割,提取圖像的特征信息,邊緣檢測常用canny的邊緣檢測算法,閾值分割可以根據(jù)圖像的直方圖特征選擇自適應(yīng)閾值分割法[4]、OTSU[5]等閾值選擇算法;第三步,是通過目標(biāo)圖像中缺陷特征確定缺陷的位置和形態(tài),最終進行缺陷分類識別。
傳統(tǒng)的機器學(xué)習(xí)缺陷檢測主要是通過從已有的大量圖像數(shù)據(jù)中通過學(xué)習(xí)找出數(shù)據(jù)中蘊含的知識和規(guī)則,然后對新的目標(biāo)圖像做出預(yù)測。一般可以分為監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)兩類。國內(nèi)外大部分關(guān)于缺陷檢測方法的研究都是基于監(jiān)督學(xué)習(xí),即通過已標(biāo)記的缺陷圖像集,學(xué)習(xí)得到一個參數(shù)模型,當(dāng)輸入一個新的目標(biāo)圖像可以根據(jù)得到的參數(shù)模型預(yù)測其結(jié)果。因為集成電路芯片劃痕、污染、短路、斷路等缺陷特征、尺度多樣。缺陷檢測的重點集中在特征提取、特征選擇和分類器設(shè)計三個方面。常見的監(jiān)督學(xué)習(xí)方法主要包括SVM支持向量機,ANN(Artificial Neural Network)人工神經(jīng)網(wǎng)絡(luò)[6],隨機森林[7]和決策樹[8]等。
深度學(xué)習(xí)DL(Deep Learning)是機器學(xué)習(xí)的一個分支,卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)的代表性算法之一,近些年來在圖像分割、識別、分類領(lǐng)域表現(xiàn)突出,無論從檢測率還是檢測精度方面都具有一定的優(yōu)勢,因此本文對基于CNN的集成電路芯片缺陷檢測方法進行了詳細(xì)地論述。
傳統(tǒng)的缺陷檢測方法是基于圖像處理,但這些方法只能在特定的檢測條件下(如:缺陷輪廓明顯,對比度強,噪聲低,尺度固定,特定光照)檢測出缺陷,本文從實際工業(yè)環(huán)境中捕獲的輸入圖像,通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)將芯片缺陷的輸入圖像通過機器學(xué)習(xí)的方法,經(jīng)過訓(xùn)練生成分類模型,將芯片缺陷劃為不同的特定分類;再通過測試集驗證各種條件下的工業(yè)芯片缺陷檢測效果。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種專門用來處理類似網(wǎng)格結(jié)構(gòu)的數(shù)據(jù)神經(jīng)網(wǎng)絡(luò),圖像數(shù)據(jù)可以看作二維的像素網(wǎng)格?;A(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)是由卷積層(convolution layer)、非線性激活層(Nonlinear activation layer)、池化層(pooling layer)、全連接層(FC layer)構(gòu)成,一般對于CNN來說非線性激活層中的激活函數(shù)一般選擇修正線性單元Relu(Rectified Linear Unit),和單/多通道圖像卷積運算一起統(tǒng)稱卷基層。CNN的基本架構(gòu)如圖1所示。
圖1 CNN基本架構(gòu)(缺陷檢測)
Faster R-CNN[9]在CNN架構(gòu)基礎(chǔ)上進行了優(yōu)化,將特征抽取(feature extraction)、候選區(qū)建議生成(proposal)、標(biāo)記矩形回歸(bounding box regression)、目標(biāo)分類(classification)整合在一個網(wǎng)絡(luò)中,使得綜合性能有較大提高,在檢測速度方面尤為明顯。因此本文選擇了Faster R-CNN架構(gòu)來實現(xiàn)集成電路缺陷檢測,整體架構(gòu)如圖2所示。
圖2 Faster R-CNN整體架構(gòu)
Faster R-CNN主要分為4部分:
(1)數(shù)據(jù)Dataset:提供符合要求的數(shù)據(jù)格式(常見數(shù)據(jù)集數(shù)據(jù)集VOC、COCO);
(2)特征提取器Extractor:利用預(yù)訓(xùn)練的網(wǎng)絡(luò)提取圖片特征features(常見的特征提取卷積神經(jīng)網(wǎng)絡(luò),如ZF、VGG16[10],ResNet50、ResNet101[11]);
(3)區(qū)域建議網(wǎng)絡(luò)RPN(Region Proposal Network):負(fù)責(zé)提供候選區(qū)域rois(region of interests),利用提取的特征(feature)經(jīng)過RPN網(wǎng)絡(luò),找出一定數(shù)量的rois;
(4)候選區(qū)回歸RoIHead:分類與回歸,負(fù)責(zé)對候選區(qū)域rois進行分類,與ground truth(真實標(biāo)簽)數(shù)據(jù)對比進行微調(diào),針對RPN找出的rois,判斷它是否包含目標(biāo),并修正框的位置和坐標(biāo)。
集成電路缺陷分類的流程涉及兩個模塊:缺陷特征提取和缺陷分類。CNN模型與人類學(xué)習(xí)識別物體的過程是相似的。CNN模型通過大量已標(biāo)記的訓(xùn)練集圖像來捕獲缺陷特征,隨著深度學(xué)習(xí)層級的加深,它接觸學(xué)習(xí)到更多的缺陷特征,從而學(xué)會了分類缺陷,就像一個孩子通過感知周圍環(huán)境,隨著他的成長,他接觸更多的數(shù)據(jù),從而學(xué)會了識別物體。卷積神經(jīng)網(wǎng)絡(luò)就是通過識別圖像的特征來進行提取并基于有標(biāo)簽數(shù)據(jù)進行分類的。
理論上,隨著卷積神經(jīng)網(wǎng)絡(luò)深度增加,網(wǎng)絡(luò)的準(zhǔn)確度應(yīng)該同步增加。但是網(wǎng)絡(luò)深度增加會帶來兩個問題:
(1)梯度消失/爆炸問題:隱層的增加意味著更多的參數(shù)需要確定,根據(jù)逆向傳播原理,梯度是從后向前傳播,當(dāng)網(wǎng)絡(luò)深度比較大時比較靠前的層梯度會很小,學(xué)習(xí)基本就停止了。
(2)優(yōu)化問題更困難:簡單地去增加網(wǎng)絡(luò)深度與下文提到的殘差網(wǎng)絡(luò)ResNet相比反而會出現(xiàn)更高的訓(xùn)練誤差。殘差網(wǎng)絡(luò)設(shè)計一種殘差模塊讓我們可以訓(xùn)練更深的網(wǎng)絡(luò)。
在單純的前向傳播基礎(chǔ)上深度殘差網(wǎng)絡(luò)增加了躍層連接(如圖3所示)。實踐表明,深度殘差網(wǎng)路可以有效地改善“深度”網(wǎng)絡(luò)的性能。
圖3 躍層連接
圖4(A、B、C、D為4個不同的網(wǎng)絡(luò)塊,箭頭代表數(shù)據(jù)流)解釋了為什么看似簡單的躍層連接操作能夠解決深度網(wǎng)絡(luò)中梯度消失的問題。假設(shè)網(wǎng)絡(luò)輸入從A到D經(jīng)歷兩次前向傳播以及一次躍層連接,根據(jù)后向傳播的鏈?zhǔn)椒▌t:
圖4 躍層連接解決梯度消失問題原理圖
即使在A-B-C的后向傳播中出現(xiàn)梯度衰減的情況,D處的梯度依然能夠直接傳遞到A,也就是實現(xiàn)了梯度的跨層傳播。
舉例:H(x)=F(x)+x
假設(shè)x=2.5,經(jīng)過n個conv層處理F(x)=0.1,因此H1(x)=2.6,
x=2.6,經(jīng)過n個conv層處理F(x)=0.2,因此H2(x)=2.7。
由圖5及以上實例可以看出由于殘差的引入去掉了主體部分,從而突出了微小的變化。因此從應(yīng)用場景來看,對于像集成電路缺陷這樣的微小的目標(biāo)ResNet比較適合,因此選擇了基于殘差的faster R-CNN架構(gòu)。
圖5 殘差網(wǎng)絡(luò)示意圖
同時殘差網(wǎng)絡(luò)ResNet是當(dāng)今應(yīng)用最為廣泛的特征提取網(wǎng)絡(luò),不同深度的殘差網(wǎng)絡(luò)卷積核也有所不同(如圖6所示),在基礎(chǔ)的CNN拓?fù)浣Y(jié)構(gòu)上引入了跨層連接和批量正則化(batch normalization),有效地抑制了梯度消失/爆炸現(xiàn)象。
圖6 不同深度的ResNet殘差網(wǎng)絡(luò)
實驗在intel corei7-8550u CPU,4.00 GHz內(nèi)存8G,64位的操作系統(tǒng)的硬件環(huán)境下執(zhí)行,同時搭載了NVIDA GTX980顯卡進行GPU加速,軟件實現(xiàn)平臺采用OpenCV4.0+PyTorch1.6+Python3.8搭建,由于本實驗用于訓(xùn)練的樣本數(shù)量只有幾千張,通常目標(biāo)缺陷檢測的樣本需要上萬張的量級。
本文通過OpenCV對原數(shù)據(jù)集進行了缺陷尺度變化、位移等圖像處理,將原有圖像樣本總數(shù)從4 000張擴充至10 000張。然后按4:1分配比例將數(shù)據(jù)集劃分為:訓(xùn)練集8 000個樣本,測試集2 000個樣本。然后將訓(xùn)練集進一步劃分為訓(xùn)練集和驗證集,比例為3∶1,最終訓(xùn)練集6 000個樣本,驗證集2 000個樣本,測試集2 000個樣本。
考慮到模型訓(xùn)練時間及算力的要求(如表1所示),本試驗的機器學(xué)習(xí)模型選擇了含有ResNet101殘差網(wǎng)絡(luò)的Faster R-CNN,本質(zhì)上還是屬于卷積神經(jīng)網(wǎng)絡(luò)。ResNet101殘差網(wǎng)絡(luò)作為圖像的特征提取器,一般情況下要求的訓(xùn)練圖像規(guī)格大小為224×224的分辨率。
表1 流行的深度學(xué)習(xí)模型的大小及算力要求
接下來進行訓(xùn)練樣本的圖像預(yù)處理工作,通過PyTorch框架下的AdaptiveAvgPool2d(二元自適應(yīng)均值匯聚層)函數(shù),將集成電路的6 000個訓(xùn)練集輸入樣本圖像從分辨率為500×500轉(zhuǎn)化到ResNet101網(wǎng)絡(luò)需要的224×224的分辨率。然后對224×224的分辨率訓(xùn)練集圖像進行歸一化操作,每個通道分別減去訓(xùn)練集該通道平均值。
ResNet101殘差網(wǎng)絡(luò)的結(jié)構(gòu)配置,如圖7所示。
圖7 ResNet101網(wǎng)絡(luò)結(jié)構(gòu)配置圖
模型應(yīng)用過程中,首先對訓(xùn)練集再ResNet101網(wǎng)絡(luò)中進行微調(diào),訓(xùn)練出新的網(wǎng)絡(luò)層參數(shù)之后利用先用驗證集進行模型訓(xùn)練評價,再通過測試集進行驗證。由于模型訓(xùn)練的時間比較長,在7~8個小時,訓(xùn)練過程中的迭代次數(shù)本文選擇了10,每次梯度下降的樣本數(shù)(batch_size)設(shè)置為200,學(xué)習(xí)率設(shè)置為0.01。
為了對比卷積神經(jīng)網(wǎng)絡(luò)的在集成電路芯片缺陷探測的準(zhǔn)確率,另外選取了基于傳統(tǒng)圖像處理(圖像閾值分割+形態(tài)學(xué)+決策樹)的方法,基于傳統(tǒng)機器學(xué)習(xí)的方法(圖像預(yù)處理+支持向量機SVM)的方法作為對比如表2所示。
表2 缺陷檢測方法性能對比
根據(jù)圖8的測試結(jié)果顯示:03缺陷劃痕出現(xiàn)的概率最大,為0.483,因此判定該測試芯片缺陷為劃痕。與人工判別的結(jié)果一致,而且缺陷的位置也通過bounding box標(biāo)記了出來。
圖8 測試結(jié)果
實驗表明,基于卷積神經(jīng)網(wǎng)絡(luò)的方法對IC芯片圖形缺陷進行識別是完全可行的,而且具有較高的識別準(zhǔn)確率。它對缺陷類型的識別和區(qū)分,是通過人工智能的機器自動學(xué)習(xí)來實現(xiàn)的,符合當(dāng)前智能裝備技術(shù)發(fā)展應(yīng)用的潮流和方向,因此具有先進的技術(shù)特征。該缺陷檢測技術(shù)可以應(yīng)用在實際的IC芯片缺陷識別的場景中,擁有較好的應(yīng)用前景。
研究表明,含有殘差網(wǎng)絡(luò)設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)可以應(yīng)用到集成電路芯片缺陷檢測領(lǐng)域,而且取得了較好的效果,但由于復(fù)雜工業(yè)條件下影響檢測準(zhǔn)確率、召回率的因素還有很多,該算法還有繼續(xù)優(yōu)化的空間。卷積神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)的檢測方法正在逐步取代傳統(tǒng)的人工目測法,成為元器件表面缺陷檢測的重要方法,越來越受到產(chǎn)業(yè)界的重視。
通過卷積神經(jīng)網(wǎng)絡(luò)在集成電路芯片檢測領(lǐng)域的研究,有助于進一步研發(fā)一種基于深度學(xué)習(xí)的裸芯片表面缺陷檢測設(shè)備及其分析系統(tǒng),對提升半導(dǎo)體芯片封裝測試設(shè)備自主研發(fā)能力具有非常重要的意義。