趙 玥,肖夢燕,邱寶軍,羅 軍,王小強(qiáng),羅道軍
(工業(yè)和信息化部電子第五研究所,廣東 廣州 510610)
隨著集成電路產(chǎn)品朝著小型化、多功能、高可靠性及低功耗方向發(fā)展,其缺陷檢測和故障分析變得越來越困難。因此,需要一個可靠、有效、便利的診斷系統(tǒng),對集成電路內(nèi)部缺陷進(jìn)行檢測與識別[1]。集成電路缺陷檢測可分為接觸式檢測和非接觸式檢測2種。接觸式檢測方法包括功能性能測試、電測試等,檢測效率低、測試成本高且難以形成自動化模式。非接觸式檢測方法則包括光學(xué)視覺測試、X射線檢測以及聲學(xué)掃描顯微鏡SAM(Scanning Acoustic Microscope)技術(shù)[2]。其中,光學(xué)視覺檢測系統(tǒng)是通過將高性能攝像機(jī)、光學(xué)光源以及圖像處理算力設(shè)備相結(jié)合,對采集到的集成電路樣品圖像進(jìn)行檢測識別的系統(tǒng)。這種系統(tǒng)可以有效檢測樣品的外觀缺陷,但是對于集成電路的內(nèi)部缺陷是無效的[3,4]?;赬射線的缺陷檢測系統(tǒng)則是利用射線照相、分層拍攝和斷層掃描等技術(shù),使用能夠穿透樣品的X射線對集成電路樣品內(nèi)部結(jié)構(gòu)進(jìn)行掃描,并生成相關(guān)圖像。但是,由于樣品內(nèi)部的小間隙不會衰減太多X射線能量,因此很難檢測到內(nèi)部的裂紋等缺陷;且X射線檢測的數(shù)據(jù)采集和缺陷分析非常耗時,不適合智能化應(yīng)用[5]。SAM 技術(shù)也可用于集成電路封裝的內(nèi)部缺陷檢測及可靠性分析。它使用大于 20 MHz 的超聲波掃描樣品并收集反射回的超聲波來顯示集成電路的內(nèi)部構(gòu)造,并通過不同的掃描方式和成像方法,精準(zhǔn)快速地檢測樣品內(nèi)部的缺陷、形狀和尺寸[6]。利用 SAM 設(shè)備的 C 掃描方式就可以顯示并收集集成電路內(nèi)部的缺陷圖像,為智能化應(yīng)用提供了數(shù)據(jù)基礎(chǔ)[7,8]。
目前,面向聲掃圖像缺陷的檢測手段主要以人工目檢為主,存在效率低、自動化程度低,及受人為因素影響較大等問題。因此,本文以 SAM 設(shè)備采集的聲掃圖像為數(shù)據(jù)基礎(chǔ),設(shè)計(jì)了基于機(jī)器視覺的集成電路聲掃圖像缺陷檢測軟件。該軟件包括圖像處理、圖像檢測、操作管理和用戶管理4個模塊。圖像處理和圖像檢測模塊分別完成集成電路的分層、裁剪預(yù)處理和缺陷區(qū)域識別任務(wù);操作管理模塊實(shí)現(xiàn)圖像數(shù)據(jù)的錄入、查詢和導(dǎo)出并具備一定的分析統(tǒng)計(jì)功能;用戶管理模塊實(shí)現(xiàn)角色信息、權(quán)限的管理。該軟件系統(tǒng)具有操作簡單、查詢方便、統(tǒng)計(jì)直觀等特點(diǎn),可以協(xié)助測試人員和科研人員對集成電路聲掃圖像進(jìn)行建庫管理,滿足智能化缺陷檢測需求,大幅提高檢測效率。
以基于深度學(xué)習(xí)的目標(biāo)檢測模型為理論指導(dǎo),本文設(shè)計(jì)了基于機(jī)器視覺的集成電路聲掃圖像缺陷檢測軟件。圖1 展示了該軟件的總體架構(gòu),從下往上依次為數(shù)據(jù)層、模型訓(xùn)練處理層和可視化層。每一層的具體作用如下:
Figure 1 Overall architecture of acoustic scanning image defect detection software based on machine vision
(1)數(shù)據(jù)層:為整個聲掃圖像缺陷檢測軟件的后端訓(xùn)練和前段檢測提供數(shù)據(jù)支撐,主要數(shù)據(jù)來源為 SAM 設(shè)備采集到的圖像。
(2)模型訓(xùn)練處理層:是整個聲掃圖像缺陷檢測軟件的核心,主要由圖像處理和圖像檢測網(wǎng)絡(luò)建模2個模塊組成。
(3)可視化層:主要對軟件的聲掃缺陷結(jié)果進(jìn)行可視化展示,主要包括在線聲掃圖像缺陷檢測可視化展示和離線模型檢測性能可視化展示。前者主要在 Web 端展示檢測結(jié)果,后者則是對測試數(shù)據(jù)集的模型性能結(jié)果進(jìn)行分析統(tǒng)計(jì)并進(jìn)行可視化展示。
基于模塊化的設(shè)計(jì)思路,基于機(jī)器視覺的集成電路聲掃圖像缺陷檢測軟件主要由4個功能模塊構(gòu)成:圖像處理、圖像檢測、操作管理和用戶管理,具體如圖2 所示。其中,圖像處理模塊完成對原始圖像的分層和裁剪;圖像檢測模塊完成對集成電路圖像的缺陷檢測及結(jié)果顯示;操作管理模塊嵌在圖像處理和圖像檢測模塊中,完成圖像上傳、查詢、刪除、顯示、保存功能;用戶管理模塊對角色權(quán)限及操作日志進(jìn)行記錄。
Figure 2 Function partition of acoustic scanning image defect detection software based on machine vision
圖像檢測模塊為整個聲掃缺陷檢測軟件的核心,檢測流程如圖3 所示,各功能單元具體描述如下:
Figure 3 Flow chart of SAM image defect detection module
(1)聲掃圖像缺陷數(shù)據(jù)獲取:主要數(shù)據(jù)來源為 SAM 設(shè)備。SAM 是利用超聲波對微觀物體進(jìn)行成像的無損檢測設(shè)備,采用脈沖回波技術(shù)工作。在C 掃描(C-scan)模式下,SAM 設(shè)備可以生成聲學(xué)圖像。此時,掃描機(jī)需在樣品上方來回做掃描運(yùn)動,樣品每一點(diǎn)反射波的強(qiáng)度及相位信息均被按順序同步記錄,并轉(zhuǎn)換為一定灰度值的像素點(diǎn),顯示在高分辨率顯示屏上。
(2)聲掃圖像預(yù)處理與數(shù)據(jù)庫構(gòu)建:主要對上一步獲取的原始圖像進(jìn)行預(yù)處理,包括數(shù)據(jù)篩選、圖像分層和裁剪、數(shù)據(jù)標(biāo)注、數(shù)據(jù)集格式轉(zhuǎn)換、數(shù)據(jù)歸一化和數(shù)據(jù)集劃分等。這部分是整個檢測流程的重點(diǎn),經(jīng)過處理后的數(shù)據(jù)才能夠輸入到目標(biāo)檢測網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練與測試。本文共采集了4類封裝BGA(Ball Grid Array)、QFN(Quad Flat No-leads)、SOIC(Small Outline Integrated Circuit)和 SOP(Small Outline Package),每類封裝模式下 13 款不同的產(chǎn)品,共計(jì) 52 款產(chǎn)品的聲掃圖像。此外,本文還篩選出了這些聲掃圖像中具有缺陷的樣本,具體如表1 所示。本文共采集聲掃圖像4 595幅,并從中挑選出936幅具有缺陷的樣本圖像,同時,本文還將數(shù)據(jù)庫中的所有缺陷圖像分辨率歸一化為 608×608。
Table 1 Distribution of the scanning acoustic image dataset
(3)缺陷檢測模型實(shí)現(xiàn)與優(yōu)化:這部分是整個檢測流程及網(wǎng)絡(luò)建模的核心。本文采用PyTorch 深度學(xué)習(xí)框架建立了4個目標(biāo)檢測網(wǎng)絡(luò)模型,分別為Faster R-CNN(Faster Region-Convolutional Neural Network)[9]、YOLOv4(You Only Live Once-v4)[10]、PP-YOLO[11]及 YOLOx[12],并針對聲掃圖像缺陷的具體網(wǎng)絡(luò)模型提出了相關(guān)的模型改進(jìn)及優(yōu)化方法:在 YOLOv4網(wǎng)絡(luò)模型分別采用 SE(Squeeze Excitation)[13]、CBAM(Convolutio-nal Block Attention Module)[14]、ECA (Efficient Channel Attention)[15]3種注意力機(jī)制來改善特征學(xué)習(xí),以增強(qiáng)網(wǎng)絡(luò)提取圖像的能力和特征表達(dá)能力,使得感受野更加關(guān)注缺陷目標(biāo)特征而忽略無關(guān)特征;在PP-YOLO 中采用K-means算法對聲掃圖像數(shù)據(jù)集進(jìn)行聚類分析,以確定錨框的值[16];在 Faster R-CNN 和 YOLOx 算法中采用多尺度訓(xùn)練、Batch Normalization 及Dropout 等方法對模型進(jìn)行優(yōu)化[17,18]。最后,保存訓(xùn)練結(jié)果最優(yōu)的模型。
(4)基于最優(yōu)模型的可視化:在這個功能單元中,離線檢測可視化為后端檢測,主要用于評價檢測模型的性能,通過在劃分的測試集上運(yùn)行最優(yōu)模型,可視化檢測效果和指標(biāo)曲線,從而對4種檢測網(wǎng)絡(luò)模型進(jìn)行性能評估;在線檢測可視化為前段測試,主要是軟件調(diào)取模型性能測試結(jié)構(gòu)并在界面中顯示缺陷檢測結(jié)果。
本文網(wǎng)絡(luò)模型生成實(shí)驗(yàn)采用在服務(wù)器上搭建訓(xùn)練實(shí)驗(yàn)環(huán)境,并將訓(xùn)練好的最優(yōu)模型保存到本地進(jìn)行測試和部署應(yīng)用,之后軟件調(diào)用模型接口在界面上實(shí)現(xiàn)操作應(yīng)用。因此,本文軟件測試環(huán)境分為2個部分:本地服務(wù)器訓(xùn)練測試環(huán)境和軟件環(huán)境,其配置分別如表2和表3所示。
Table 2 Environment configuration of local server for trainning and testing
Table 3 Configuration of software environment
本節(jié)主要介紹聲掃圖像缺陷檢測軟件的主要功能模塊實(shí)現(xiàn),具體分為以下3個部分:圖像處理功能模塊、缺陷檢測功能模塊和可視化界面設(shè)計(jì)功能模塊。
3.2.1 圖像處理功能模塊
(1)數(shù)據(jù)篩選。
圖像篩選主要是對SAM 設(shè)備獲取到的聲掃缺陷圖像數(shù)據(jù)進(jìn)行重復(fù)圖像篩選、不含缺陷目標(biāo)篩選及錯誤圖像篩選。這部分工作可以使圖像數(shù)據(jù)更加貼合目標(biāo)網(wǎng)絡(luò)的訓(xùn)練,使檢測能達(dá)到預(yù)期目標(biāo)。
(2)圖像分層與裁剪。
圖像分層主要是指對SAM設(shè)備獲取到的 TIFF 格式圖像文件進(jìn)行分層處理,提取每層 C-掃描的圖像。圖像裁剪則是對引線架層面的圖像進(jìn)行提取和分割,生成多個單一樣本圖像。圖4和圖5分別展示了圖像分層提取的原始圖像及圖像分隔后的單樣本圖像簇。
Figure 4 Original images extracted by image layering
Figure 5 Single sample image clusters after image segmentation
(3)數(shù)據(jù)標(biāo)注與格式轉(zhuǎn)換。
圖像缺陷標(biāo)注是依靠專業(yè)數(shù)據(jù)標(biāo)注軟件LabelImg 來實(shí)現(xiàn)的,標(biāo)注信息主要包括目標(biāo)的缺陷 類別標(biāo)簽和目標(biāo)框的坐標(biāo)信息[12]。圖像轉(zhuǎn)換則是將 JPG 格式的原始圖像數(shù)據(jù)轉(zhuǎn)換為目標(biāo)檢測網(wǎng)絡(luò)可以識別的 Pascl-VOC 格式。圖6展示了缺陷圖像數(shù)據(jù)標(biāo)注情況。
Figure 6 Data annotation of defect image
3.2.2 缺陷檢測功能模塊
聲掃缺陷檢測軟件是基于 Faster R-CNN、YOLOv4、PP-YOLO 及 YOLOx 4種目標(biāo)檢測網(wǎng)絡(luò)模型建立的,使用了 PyTorch 深度學(xué)習(xí)框架。模型訓(xùn)練過程中,根據(jù) Loss 曲線動態(tài)調(diào)節(jié)參數(shù),使模型收斂更加穩(wěn)定,與此同時,保存了權(quán)重文件及結(jié)果。圖7 展示了訓(xùn)練過程中各網(wǎng)絡(luò)的損失函數(shù)。
Figure 7 Comparison of visual training loss function curve of each target detection network
如圖7所示,在整個訓(xùn)練過程中,訓(xùn)練誤差Loss 曲線隨著各模型訓(xùn)練次數(shù)的增加快速下降,這說明每個模型在聲掃缺陷圖像數(shù)據(jù)庫上都有很好的收斂效果,也證明了本文缺陷檢測軟件在后端模型設(shè)計(jì)上是成功的。
3.2.3 可視化界面設(shè)計(jì)功能模塊
集成電路缺陷檢測軟件的界面作為用戶與檢測系統(tǒng)的交互接口,需要提供對本地系統(tǒng)資源以及相關(guān)參數(shù)進(jìn)行配置管理的界面,并負(fù)責(zé)檢測結(jié)果的展示,軟件界面結(jié)構(gòu)如圖8 所示。
Figure 8 Software interfaces
Web端的可視化功能主要是實(shí)時展示聲掃圖像的缺陷檢測情況。用戶在瀏覽器 Web 端輸入訪問的 URL 地址,瀏覽器在線實(shí)時展示檢測結(jié)果可視化界面。具體可分為以下界面:
(1)用戶管理界面。圖8 展示了用戶在瀏覽器地址欄中輸入訪問 URL 地址,瀏覽器返回給用戶的個人登錄主頁。有權(quán)限的用戶輸入賬號和密碼登錄系統(tǒng),隨后頁面跳轉(zhuǎn)到后臺首頁。
(2)圖像管理界面。該界面包含上傳圖像、查詢圖像、保存圖像等控件,使缺陷檢測軟件具備圖像數(shù)據(jù)輸入、編輯修改、刪除、輸出等功能。
(3)圖像裁剪界面。該界面包括手動裁剪和自動裁剪功能,并可以通過原圖像名或裁剪后圖像名進(jìn)行查詢。在界面列表中可顯示文件夾名、圖像名、圖像格式、上傳人及操作時間。在自動裁剪方式下,通過 cmd 調(diào)用 Python+OpenCV 實(shí)現(xiàn) 6 種不同算法的圖像定位裁剪功能,通過該步驟可將一幅多樣品圖像裁剪為單樣品圖像。確認(rèn)裁剪后可在界面下方預(yù)覽裁剪后的圖像并保存到數(shù)據(jù)庫中。同時,針對自動裁剪效果不佳的圖像可采用手動裁剪。同樣,通過 cmd 調(diào)用Python+OpenCV 對鼠標(biāo)選中的矩形區(qū)域進(jìn)行裁剪,對于位置排列不均勻的樣品可適當(dāng)旋轉(zhuǎn),不理想的選框可以復(fù)位或在下方預(yù)覽區(qū)刪除,確認(rèn)的選框可在界面下方預(yù)覽裁剪后的圖像并保存到數(shù)據(jù)庫中。
(4)圖像缺陷檢測界面。該界面包含本文軟件的核心功能。通過調(diào)用 Python 目標(biāo)檢測網(wǎng)絡(luò)的預(yù)訓(xùn)練模型(.pth文件),設(shè)置相應(yīng)的檢測閾值進(jìn)行缺陷區(qū)域的識別和顯示,檢測結(jié)果可導(dǎo)出。預(yù)訓(xùn)練模型由4種默認(rèn)的典型目標(biāo)檢測算法(YOLOx、PP-YOLO、Faster R-CNN、YOLOv4)基于典型集成電路圖像的3種缺陷(引出端分層、連筋分層、基板分層)訓(xùn)練而成,用戶還可依據(jù)該缺陷分類方式修改預(yù)留的python接口,以修改或添加預(yù)訓(xùn)練模型。
(5)模型數(shù)據(jù)分析界面。該界面可以直觀地顯示各種目標(biāo)檢測算法在集成電路圖像驗(yàn)證集上完成各類缺陷識別任務(wù)的精確率、召回率、平均精確率AP(Average Precision)及平均精確率均值mAP(mean Average Precision)等評價指標(biāo)。
本文檢測軟件設(shè)計(jì)時序圖如圖9 所示。首先運(yùn)行啟動腳本,腳本通過瀏覽器訪問系統(tǒng)
Figure 9 Sequence diagram of software design
本文采用JavaScript進(jìn)行界面開發(fā),主要負(fù)責(zé)缺陷檢測系統(tǒng)的數(shù)據(jù)管理和缺陷檢測任務(wù)的執(zhí)行。圖9還展示了集成電路檢測軟件瀏覽器端、Java服務(wù)端以及Python服務(wù)端的時序圖。功能包括傳圖像、手動裁剪圖像、自動裁剪圖像及預(yù)測4個部分。
針對聲掃圖像缺陷檢測軟件的總體構(gòu)架,本文對軟件進(jìn)行了功能和性能測試,測試內(nèi)容如表4所示。
Table 4 Software test module and content
軟件功能測試是為了驗(yàn)證軟件中各模塊是否滿足檢測需求,并確保軟件功能實(shí)現(xiàn)的正確性。測試模塊包括檢測任務(wù)模塊和本地?cái)?shù)據(jù)管理模塊,按照圖8的軟件界面設(shè)計(jì)和表4所示的測試內(nèi)容,逐項(xiàng)展開測試。
軟件測試流程如圖10 所示。測試功能包括用戶登錄、圖像輸入、圖像裁剪、圖像輸出、圖像檢測及模型統(tǒng)計(jì)。其中,圖像裁剪包括手動裁剪和自動裁剪2個部分,經(jīng)過裁剪后的圖像一方面可以直接輸出保存,另一方面可以被當(dāng)作檢測目標(biāo)進(jìn)行缺陷檢測。在圖像檢測界面也會提供圖像文件的導(dǎo)入、檢測模型的添加以及相關(guān)算法參數(shù)的設(shè)置,通過對圖像進(jìn)行檢測得出預(yù)測缺陷類型及位置框。模型統(tǒng)計(jì)界面共統(tǒng)計(jì)了4種網(wǎng)絡(luò)模型的AP值和mAP值,并進(jìn)行了可視化處理。
Figure 10 Flow chart of software function test
缺陷檢測系統(tǒng)性能測試包括缺陷標(biāo)框定位準(zhǔn)確性測試及網(wǎng)絡(luò)模型預(yù)測準(zhǔn)確性測試2部分。對于缺陷標(biāo)框定位準(zhǔn)確性測試,本文使用了Faster R-CNN、YOLOv4、PP-YOLO和 YOLOx 4類網(wǎng)絡(luò)模型對聲掃圖像缺陷進(jìn)行檢測識別,圖11展示了缺陷目標(biāo)框的檢測結(jié)果。
Figure 11 Results of defect detection
為測試缺陷檢測的準(zhǔn)確性,本文選取了包含4類封裝(BGA、QFN、SOIC、SOP)模式集成電路的 1 063 幅缺陷圖像,分別設(shè)置了基板分層、連襟分層和引線分層作為缺陷類別。通過上述4個檢測模型對聲掃圖像進(jìn)行缺陷檢測。為了比較不同模型的檢測效果,本文將平均精確率AP和平均精確率均值mAP作為缺陷檢測模型精度的評估指標(biāo),其計(jì)算公式如式(1)和式(2)所示:
(1)
(2)
其中,N表示所有目標(biāo)類別的數(shù)量;AP表示精確率(Precision)-召回率(Recall)曲線上的精確率對召回率的積分,用于評估檢測模型對某一個類別的檢測效果;mAP是AP值在所有類別下的均值,是針對整個數(shù)據(jù)集的評估,用于評估檢測算法對所有類別的檢測效果。
由表5中的測試結(jié)果可知,每個目標(biāo)檢測模型都可對聲掃圖像進(jìn)行較為精確的缺陷檢測,其中,YOLOx 模型在3類缺陷上的檢測精度最高,mAP值達(dá)到了 95.81%。
Table 5 Defect detection results of each target detection model
本文基于4種典型的深度目標(biāo)檢測網(wǎng)絡(luò)設(shè)計(jì)并實(shí)現(xiàn)了基于聲掃圖像的缺陷檢測軟件,并詳細(xì)介紹了軟件的總體架構(gòu)和主要功能模塊。軟件不僅實(shí)現(xiàn)了本地聲掃樣本圖像數(shù)據(jù)庫中單幅測試樣本的讀取、裁剪及保存,還通過預(yù)存的預(yù)訓(xùn)練模型完成了單幅圖像的缺陷預(yù)測以及預(yù)測類別、時間、置信度的可視化。最后,完成了本地聲掃樣本圖像數(shù)據(jù)庫中驗(yàn)證集樣本缺陷檢測評估指標(biāo)的可視化??傊?本文提出的檢測軟件能有效地對聲掃圖像缺陷進(jìn)行實(shí)時檢測,為后續(xù)工程應(yīng)用提供了軟件基礎(chǔ)。