郭偉峰,趙 倩
(上海電力大學(xué)電子與信息工程學(xué)院,上海 200120)
目前,芯片缺陷檢測任務(wù)逐步向智能化、自動化發(fā)展。楊桂華等[1]采用形狀匹配和一維測量算法實現(xiàn)已封裝芯片的引腳定位和缺陷檢測;魏鴻磊等[2]通過模板匹配的方法定位待檢芯片的位置,并通過形態(tài)學(xué)的異或運算求解芯片的載帶缺陷。以上方法要求本地匹配模板盡可能覆蓋芯片的缺陷情況,否則難以提高算法的泛化能力。近年來,以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)為代表的深度學(xué)習(xí)檢測算法逐步替代傳統(tǒng)自動化檢測,為缺陷檢測提供了新的實現(xiàn)方案,如鋼軌表面缺陷檢測[3]、汽車輪轂表面缺陷檢測[4]、電力設(shè)備表面缺陷檢測[5]等。目前主流目標檢測方法分為單階段和兩階段兩類。單階段方法通過把檢測對象的識別和定位任務(wù)在同一個無分支的深度卷積網(wǎng)絡(luò)中實現(xiàn),使網(wǎng)絡(luò)結(jié)構(gòu)變得簡單[6],從而實現(xiàn)端到端的快速檢測,其代表算法有YOLO[7](you only look once)系列和SSD[8](single shot detector)系列。兩階段檢測方法首先通過區(qū)域建議網(wǎng)絡(luò)RPN(region proposal network)在待檢圖像上生成建議框,再對候選區(qū)域進行分類和位置的回歸[9],實現(xiàn)更精確的識別效果,其代表算法有Faster RCNN[10](region convolutional neural network)系列。相較于傳統(tǒng)檢測算法而言,基于深度學(xué)習(xí)的檢測算法可以學(xué)習(xí)高維的目標特征,無需針對不同目標手動設(shè)計分類過程,極大簡化了檢測的流程,因此基于深度學(xué)習(xí)的芯片缺陷檢測研究逐漸成為熱點。周天宇等[11]提出輕量化檢測網(wǎng)絡(luò)YOLO-Efficient,通過引入通道注意力機制,實現(xiàn)了對載波芯片缺陷的實時檢測。李可等[12]提出一種改進U-Net的檢測算法,該算法引入空間注意力機制增強網(wǎng)絡(luò)的位置信息提取能力,提高芯片X線圖像焊縫氣泡的缺陷檢測精度。羅月童等[13]提出了一種無監(jiān)督學(xué)習(xí)的檢測方案,該方案將芯片的表面缺陷視為噪聲,通過卷積去噪自編碼器重構(gòu)原始圖像,避免了大量的人工數(shù)據(jù)標注過程。上述研究雖然從不同角度實現(xiàn)了芯片的缺陷檢測,但是并未解決形狀不規(guī)則的缺陷分類效果差的問題。因此,對于芯片表面缺陷的多尺度實時檢測研究是至關(guān)重要的。本文采用YOLOv5網(wǎng)絡(luò)作為主要框架,該框架通過特征金字塔網(wǎng)絡(luò)(feature pyramid network,FPN)[14]網(wǎng)絡(luò)和路徑聚合網(wǎng)絡(luò)(path aggregation network,PAN)[15]特征金字塔融合網(wǎng)絡(luò)提高特征利用效率,并將3個融合分支并行送入預(yù)測層,實現(xiàn)端到端的多尺度目標檢測,是目前最好的單階段檢測網(wǎng)絡(luò)。
針對芯片表面存在的缺陷尺度變化大、單類特征共性低、缺陷小目標漏檢問題,本文對YOLOv5檢測網(wǎng)絡(luò)進行針對性改進。首先,提出一種邊緣信息的數(shù)據(jù)增強策略,通過Canny邊緣檢測算子提取待檢圖片的邊緣特征,并通過霍夫變換清除水平與豎直的背景走線,增強數(shù)據(jù)中不規(guī)則目標的信息;其次,提出多尺度空間感知池化層,通過感知因子動態(tài)調(diào)整不同卷積核對缺陷的響應(yīng)權(quán)重,自適應(yīng)地提高網(wǎng)絡(luò)對不同尺度目標的響應(yīng);接著,引入RFB模塊與ConvNext模塊,加強網(wǎng)絡(luò)的高維特征提取能力;最后,提出基于置信度的難分樣本重檢策略,該策略將低置信度的錯分樣本送入輕量級子分類器二次分類,提高模型的整體分類精度。實驗結(jié)果表明:改進后網(wǎng)絡(luò)的準確率為93.1%,召回率為91.2%,平均精度為95.5%,相較于原YOLOv5網(wǎng)絡(luò)分別提高了3.3%、3.0%、3.4%。此外,該算法對多尺度缺陷的識別精度更高、對難分缺陷的分類效果更好。
本文采用芯片表面缺陷數(shù)據(jù)集(chip defect dataset,CDD),該數(shù)據(jù)集共包含5 750張由顯微鏡采集的芯片表面缺陷圖,實際分辨率為512×512。實驗以9∶1的比例劃分訓(xùn)練集和測試集,其中了包含11種常見表面缺陷,包括:器件缺損(incomp)、器件劃損(scrach)、異物(foreign)、 藥液殘留(res)、金屬物殘留(gold)、凹陷凸起(lump)、漏刻蝕(UBM)和4種類型原料不良(Raw Ⅰ、Raw Ⅱ、Raw Ⅲ、Raw Ⅳ),涵蓋了絕大部分芯片表面缺陷的檢測場景。缺陷實際分布情況如表1所示。
表1 CDD數(shù)據(jù)集缺陷分布
由于芯片表面缺陷的數(shù)據(jù)均來自工業(yè)顯微鏡攝像頭在人工光源下以固定的焦段和光圈參數(shù)拍攝所得,而且拍攝角度均垂直于芯片平面,因此得到的結(jié)果光照穩(wěn)定且無其他物體遮擋。而芯片表面缺陷通常存在缺陷之間的互斥性[16],即兩種缺陷同時出現(xiàn)在一種表面的概率極低。基于該特性,本文提出基于邊緣信息的數(shù)據(jù)增強策略,總體思路如圖1所示。
圖1 邊緣信息提取過程
首先將RGB顏色空間的輸入圖片轉(zhuǎn)換為單通道灰度圖,轉(zhuǎn)換過程如式(1)所示:
D=0.299R+0.587G+0.144B
(1)
式中:D為輸出的灰度通道矩陣;R、G、B分別為輸入圖片的紅色通道、綠色通道和藍色通道矩陣。
其次通過高斯濾波以7×7的核尺度對圖像模糊處理,處理過程如式(2)所示:
(2)
式中:w為卷積核內(nèi)部權(quán)重;i,j為單個權(quán)重的坐標;n為模板中心坐標;σ為標準差;e為自然對數(shù)。
濾波后使用Canny檢測算子提取灰度值變化較大的區(qū)域,即目標邊緣,梯度計算公式如式(3)所示:
Gx=Sx·D
Gy=Sy·D
(3)
(4)
接著,通過霍夫直線檢測提取邊緣圖中的水平和垂直邊緣并通過相減將其消除,減少芯片背景走線,提高邊緣的整體占比。
最后,通過輪廓匹配搜索密閉空間,返回所有不規(guī)則邊緣。二值邊緣圖和灰度圖與RGB三通道經(jīng)過維度堆疊后,作為輸入送入網(wǎng)絡(luò)訓(xùn)練。
為應(yīng)對不同目標檢測任務(wù)難易程度不同所帶來的挑戰(zhàn),單階段YOLOv5目標檢測模型包含YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5xl 4種不同的網(wǎng)絡(luò)模型,每個模型的結(jié)構(gòu)一致,只是各模塊的深度和寬度不同,都采用CSPDarknet53主干網(wǎng)絡(luò)、FPN+PANet特征金字塔融合網(wǎng)絡(luò)提高特征利用效率,3個融合分支最終送入Detect預(yù)測層,實現(xiàn)端到端的特征檢測。本文基于YOLOv5s模型進行主干網(wǎng)絡(luò)的改進與調(diào)優(yōu),在保證實時性檢測的基礎(chǔ)上提高模型的性能。
網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。在主干部分,首先通過交替卷積層與RFB-S實現(xiàn)多尺度特征下采樣;其次通過ConvNext模塊整合高維特征;最后通過MSSPP網(wǎng)絡(luò)提高網(wǎng)絡(luò)對大尺度形變?nèi)毕莸捻憫?yīng)。
圖2 模型總結(jié)構(gòu)
在特征融合網(wǎng)絡(luò)部分,使用ConvNext模塊提取特征的同時,利用Deconv模塊和卷積層分別對特征進行上下采樣,并將相鄰層相同尺寸的特征進行Concat張量拼接,不斷融合不同尺度的信息,增強網(wǎng)絡(luò)的特征豐富程度。
在檢測頭部分,網(wǎng)絡(luò)輸出類別、置信度和回歸框3個參數(shù)后,通過提出的基于置信度的重檢策略,首先將低置信度的目標選出,結(jié)合回歸框的信息裁剪出原圖對應(yīng)的圖片,并將其送入子分類器進行識別,提高模型對難分樣本的準確率。
傳統(tǒng)目標檢測任務(wù)中,待檢目標具有相同的語義信息,如動物的毛發(fā)、人的眼睛是神經(jīng)網(wǎng)絡(luò)實現(xiàn)分類提取的高維特征。然而,在芯片表面產(chǎn)生的缺陷具有特征信息高度不統(tǒng)一的特性。例如異物、劃痕由于誘發(fā)因素眾多,其特征具有形狀上的高度不確定性。這種類內(nèi)語義特征的差異要求網(wǎng)絡(luò)能夠更高維地提取空間特征,對相同缺陷進行有效聚類。為了提高網(wǎng)絡(luò)在不同尺度下的空間特征提取能力,本文設(shè)計了多尺度空間感知池化層,如圖3所示。
圖3 多尺度空間感知池化層結(jié)構(gòu)
和原空間金字塔池化層(spatial pyramid pooling layer)相比,該池化層加入更多尺度的池化核(1×3、3×1、5×5、9×9等)應(yīng)對不同形狀的缺陷目標。該模塊盡可能地覆蓋了待檢目標的長寬范圍,提高了網(wǎng)絡(luò)對特殊形狀目標的響應(yīng)。模塊計算過程如式(5)~式(7)所示:
Fj=Maxpool(Fin,Kj)
(5)
(6)
Fout=Concat(ωj·Fj)
(7)
本文引進感受野模塊(receptive field block)代替?zhèn)鹘y(tǒng)卷積,該模塊利用多分支結(jié)構(gòu)模擬人眼對物體的感知機制,其結(jié)構(gòu)如圖4所示。
圖4 RFB-S模塊內(nèi)部結(jié)構(gòu)
感受野模塊首先將特征并行進入4條支路,支路1串行連接1×1的傳統(tǒng)卷積與擴張率為1、卷積核為3×3的擴張卷積;支路2、3串行輸入1×1的卷積后分別送入1×3和3×1的矩形卷積,最后連接擴張率為3、卷積核為3×3的擴張卷積;支路4串行輸入卷積核的每條分支都由傳統(tǒng)卷積和擴張卷積構(gòu)成,二者串行連接組合不同尺度的特征感知領(lǐng)域。將各分支逐一相加即可實現(xiàn)多層感受野的空間疊加,實現(xiàn)中心注意力高、邊緣注意力低、感受范圍廣的人眼空間感知模式。
本文引入即插即用的ConvNext模塊,其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,輸入特征經(jīng)過深度可分離卷積(depthwise separable convolution)后,送入由二維卷積構(gòu)造的倒置瓶頸結(jié)構(gòu),起到提取高維特征的作用。此外,針對多尺度目標進行適當調(diào)整,具體調(diào)整策略如圖2所示。在不同網(wǎng)絡(luò)層級選取了不同尺度的深度可分離卷積:在網(wǎng)絡(luò)的淺層(7層、9層)使用7×7的大卷積核增大感受野,在網(wǎng)絡(luò)的深層(12、15、16、19、22層)使用3×3的小卷積核避免小尺度的位置信息被稀釋,從而針對性地保留所需的特征信息,提高網(wǎng)絡(luò)對芯片缺陷的響應(yīng)。
圖5 ConvNext模塊內(nèi)部結(jié)構(gòu)
大量實驗發(fā)現(xiàn),器件異物和原料不良的檢測精度相比其他缺陷較低。如圖6所示,外來異物(foreign)與原料不良(Raw)2種缺陷的形態(tài)尺度各異,因此公共特征難以提取。
圖6 多尺度難分缺陷
為了針對性地提高模型對難分樣本的分類精度,本文提出基于置信度閾值的檢測框架,該框架通過置信度作為難分樣本的評判指標,將置信度較低的目標單獨裁切送入輕量化的子分類器進行識別。
具體框架如圖7所示:當特征從YOLOv5的檢測層進行非極大值抑制(non-maximum suppression,NMS)后,會得到6個參數(shù),分別對應(yīng)預(yù)測框的坐標位置(x,y,w,h)以及預(yù)測目標的類別和置信度(class,confidence),通過設(shè)置置信度閾值,當某一預(yù)測目標的置信度低于該閾值時,算法將根據(jù)預(yù)測框的位置,在原圖中裁剪分類目標,最后送入通過Resnet18訓(xùn)練好的分類器中進行識別。
圖7 難分樣本重檢流程圖
該輕量化子分類器針對難分樣本進行了大量的分類訓(xùn)練,缺陷分類能力更強,如果分類結(jié)果置信度大于原類別置信度,則更新類別,否則不更新參數(shù)。另外,如果2次分類結(jié)果置信度都過小,該目標很可能是錯檢對象,需從預(yù)測框中刪除。通過該算法可以有效提高異物和原料不良的識別精度,同時避免了難分樣本混淆的問題。
本實驗基于Windows10的64位操作系統(tǒng),在 Anaconda中配置 Python3.6的語言環(huán)境和深度學(xué)習(xí)框架Pytorch1.10。實驗選用AMD5600X、搭載12 GB顯存的RTX3060顯卡進行加速運算,CUDA版本為11.4。
為了客觀評價本文網(wǎng)絡(luò)的多尺度目標提取能力,采用精確率(precision)、召回率(recall)、平均精度(average precision)、全類平均精度(mean average precision)作為檢測任務(wù)的評價指標。召回率為所有正樣本中模型預(yù)測正確的概率,反映了模型對缺陷目標的定位能力。精確率為所有模型預(yù)測正樣本占真實正樣本的比例,反映了模型對目標的識別能力。平均精度綜合考慮了目標的精確率和召回率,是PR曲線與坐標軸所圍成的面積,反映了模型在某一類的識別精度。全類平均精度是每一類AP的均值。反映模型整體性能水平。具體指標的計算公式如下:
(8)
(9)
(10)
(11)
式中:TP(true positive)為被模型預(yù)測正確的真實正樣本;FP(false positive)為被模型預(yù)測為錯誤的負樣本;FN(false negative)被模型預(yù)測為錯誤的正樣本;P和R為精確率和召回率;K為類別數(shù)量。
本文使用隨機梯度下降法(stochastic gradient descent,SGD)進行優(yōu)化訓(xùn)練,初始學(xué)習(xí)率為0.01,采用余弦退火策略調(diào)整學(xué)習(xí)率,動量因子為0.937,前5輪進行熱身訓(xùn)練并在120輪訓(xùn)練后學(xué)習(xí)率將衰減到初始學(xué)習(xí)率的 10%, Batchsize設(shè)置為64。
網(wǎng)絡(luò)訓(xùn)練時的分類損失函數(shù)曲線見圖8。網(wǎng)絡(luò)在前40輪收斂速度較快,在40輪到100輪收斂過程逐漸平緩,網(wǎng)絡(luò)驗證集損失在100輪后趨于不變,收斂在0.001左右。為防止網(wǎng)絡(luò)過擬和,在第120輪停止網(wǎng)絡(luò)訓(xùn)練。收斂過程證明網(wǎng)絡(luò)訓(xùn)練情況較好。
圖8 損失函數(shù)曲線
3.4.1 模型檢測結(jié)果
選取本文算法與原YOLOv5算法對芯片表面缺陷圖片進行檢測,可視化結(jié)果如圖9所示。由圖9可得,本文算法相較于改進前針對尺度變化大的目標具有更完整的感知區(qū)域,識別效果更好。
圖9 多尺度缺陷檢測結(jié)果對比
3.4.2 模型性能指標分析
為驗證算法的先進性,選取了4組在相同訓(xùn)練集、驗證集與訓(xùn)練配置下的模型進行算法性能對比。實驗結(jié)果如表2所示。
由表2可得,經(jīng)典算法中,YOLOv5網(wǎng)絡(luò)性能最佳,其準確率為89.80%,召回率為88.20%,平均精度為92.10%,而本文算法通過改進策略使準確率提升3.3%,召回率提升3%,全類平均精度提升3.4%,該結(jié)果驗證了本文改進方法的有效性。
為具體說明數(shù)據(jù)增強策略、MSSPP模塊、ConvNext模塊、RFB模塊和難分樣本檢測策略對最終檢測結(jié)果的貢獻,設(shè)置消融實驗,實驗結(jié)果如表3所示,表中A代表數(shù)據(jù)增強策略、B代表MSSPP模塊、C代表ConvNext模塊與RFB模塊、D代表難分樣本檢測策略。
表3 消融實驗 %
結(jié)合表3結(jié)果進行分析,得到以下結(jié)論:
(1)基于邊緣信息的數(shù)據(jù)增強策略提高了模型對不規(guī)則缺陷的檢測能力,因此和原YOLOv5相比,整體召回率提高0.9%,準確率也有小幅增加。
(2)MSSPP可以針對性地提高特殊尺度的響應(yīng),因此準確率在方案1的基礎(chǔ)上提高了2.2%,召回率提高了1.1%,全類平均精度提高了1.2%。
(3)ConvNext模塊和RFB模塊改善了模型中間層對多尺度特征的提取能力,準確率、召回率和全類平均精度在方案2基礎(chǔ)上分別提升0.59%、0.5%、0.7%。
(4)難分樣本重檢策略通過剔除錯檢目標,提高了低置信度目標的準確率,準確率在方案3基礎(chǔ)上提高了0.41%,召回率提高了0.5%,全類平均精度提高了0.9%。
針對芯片缺陷的尺度變化大、類內(nèi)特征不統(tǒng)一的問題,提出了基于YOLOv5的目標檢測框架。通過邊緣信息數(shù)據(jù)增強,豐富輸入特征,提高網(wǎng)絡(luò)對不規(guī)則缺陷的定位能力;采用MSSPP模塊自適應(yīng)數(shù)據(jù)集中多尺度缺陷,增強類內(nèi)高維特征的聚類能力,提升模型識別精度;引入ConvNext與RFB模塊,根據(jù)缺陷分布情況適當微調(diào),強化模型的特征提取能力;設(shè)計了難分樣本重檢策略,利用芯片缺陷易檢難分的特性,增強網(wǎng)絡(luò)對缺陷目標的分類性能。實驗證明:本文算法各項指標高于經(jīng)典目標檢測算法,為芯片缺陷檢測提供了更高魯棒、更優(yōu)性能的檢測方案。