王代濤,李文杰,謝 波,俞文靜
(廣州軟件學(xué)院網(wǎng)絡(luò)技術(shù)系,廣州 510990)
瑕疵檢測通常是指對物體表面疵點(diǎn)的檢測[1-2]。在集成電路板批量生產(chǎn)或者經(jīng)年使用中,由于各方面因素的影響,會產(chǎn)生諸如漏孔、鼠咬、開路、短路、雜散、雜銅等瑕疵。迄今為止,對集成電路板的瑕疵檢測主要還是依賴人工進(jìn)行實(shí)現(xiàn),存在著效率低、人工成本高和檢測標(biāo)準(zhǔn)難以統(tǒng)一等問題。因此,急需通過一些高效、智能化的方案去解決這一問題。計(jì)算機(jī)視覺擁有高效、穩(wěn)定、可長時間工作等特性,以計(jì)算機(jī)視覺替代人工進(jìn)行瑕疵檢測獲得越來越多的認(rèn)可。
近年來,物體表面缺陷檢測已經(jīng)成為深度學(xué)習(xí)領(lǐng)域的熱門研究課題。然而,在集成電路板視覺檢測中,由于主板圖像背景復(fù)雜多樣,檢測目標(biāo)小、瑕疵難定位,再加上工業(yè)生產(chǎn)中要求滿足安全性和高精度檢測,現(xiàn)有的很多算法模型并不適用于此。集成電路板行業(yè)需要既能滿足檢測精度和安全要求,又能在復(fù)雜背景下進(jìn)行瑕疵檢測的高效算法模型。
針對此問題,本文選用Cascade RCNN 為基礎(chǔ)檢測網(wǎng)絡(luò),并選用特征提取效果較好的ResNet50 作為其骨干網(wǎng)絡(luò),針對集成電路板檢測目標(biāo)較小的問題加入了FPN 網(wǎng)絡(luò),將ResNet50 輸出的具有大量位置信息的淺層特征層和具有豐富語義信息的深層特征層進(jìn)行均衡化融合,以提高檢測質(zhì)量與效率。最后得到的模型體積約為68.94 M,在實(shí)驗(yàn)環(huán)境下,其FPS為16.1、mAP 和mAR 高達(dá)93.8%與98.8%??砂踩⒂行У貙?shí)現(xiàn)對集成電路板的瑕疵檢測。
本文克服了Cascade RCNN 算法對小目標(biāo)和重疊度高的缺陷識別率低的問題,提出了一種基于Cascade RCNN 的改進(jìn)算法,使用ResNet50作為Cascade RCNN 算法的骨干網(wǎng)絡(luò),并融入基于FPN 網(wǎng)絡(luò)改進(jìn)的多尺度特征融合均衡化網(wǎng)絡(luò),搭建了Cascade RCNN-ResNet50-FPN 網(wǎng)絡(luò)模型,以下稱為改進(jìn)Cascade RCNN,整個算法模型檢測精度、召回率較高,既精確又安全,可滿足工業(yè)集成電路板表面缺陷檢測的需求。
ResNet50是經(jīng)典的運(yùn)用殘差單元結(jié)構(gòu)組成的網(wǎng)絡(luò),是在 2016 年由 He 等[3]共同提出,旨在解決因卷積神經(jīng)網(wǎng)絡(luò)不斷迭代而可能導(dǎo)致的梯度消失和網(wǎng)絡(luò)退化的問題。其網(wǎng)絡(luò)層次如表1所示。
表1 ResNet50網(wǎng)絡(luò)結(jié)構(gòu)
ResNet50 包括一個步長為 2 的 7 × 7 卷積層、四個殘差單元級聯(lián)卷積層和一個全連接層。其中殘差單元是由一個3 × 3 的卷積核、兩個1 × 1 的卷積核和一個殘差連接分支組成,其結(jié)構(gòu)如圖1所示。
圖1 ResNet50網(wǎng)絡(luò)的殘差單元結(jié)構(gòu)
圖2 多尺度特征融合均衡化網(wǎng)絡(luò)結(jié)構(gòu)
圖3 邊框回歸
其中:x1為輸入,其期望輸出為h(x),但加入一個恒等映射x1后原始學(xué)習(xí)特征變成h(x)=f(x) +x1,因此殘差是指f(x)=h(x) -x1,使得網(wǎng)絡(luò)擬合更容易,直接映射的加入也使得網(wǎng)絡(luò)的下一層產(chǎn)生比前一層的圖像信息多[2-3]。ResNet50 計(jì)算量適中,能提取更多小目標(biāo)特征信息。
當(dāng)前,F(xiàn)PN[4]是目標(biāo)檢測算法中最常用的特征融合網(wǎng)絡(luò),具體實(shí)現(xiàn)方式如圖所示。FPN 是在特征提取網(wǎng)絡(luò)生成的多尺度特征圖的基礎(chǔ)上,將最后一層特征圖做2倍上采樣后與前一層特征圖融合生成新的特征圖,然后將新生成的特征圖以同樣的方式與前一層特征圖進(jìn)行融合,逐層重復(fù)以上操作,形成特征金字塔。但是特征金字塔網(wǎng)絡(luò)長距離信息流動會導(dǎo)致缺陷信息的流失和更多的關(guān)注相鄰分辨率,這種融合方式會產(chǎn)生缺陷特征信息不平衡問題。因此,本文基于FPN 提出了一種多尺度特征融合均衡化網(wǎng)絡(luò),利用相同深度融合的平衡語義特征來增強(qiáng)多層次的特征。首先將通過FPN 網(wǎng)絡(luò)形成的每層特征圖通過上采樣操作變成相同尺度,然后進(jìn)行像素級的聚合均值,再將聚合均值化的特征圖通過與之前相反的采樣操作形成不同尺度的特征圖,從而得到缺陷特征信息更平衡的多尺度特征圖,實(shí)現(xiàn)缺陷特征的多層復(fù)用和融合均衡化,提高小目標(biāo)缺陷敏感度[5]。
Cascade RCNN 是一種提高目標(biāo)檢測效果的方法,其關(guān)鍵在于采用4 次框回歸。其通過將RPN[4]輸出的檢測框輸入回歸模塊(如圖 4 所示),并將其輸出作為下一層的輸入,重復(fù)該過程以提高IoU 閾值,從而提升預(yù)測框的定位效果??蚧貧w模塊通過生成dx、dy來調(diào)整矩形框的位置,以及生成dw、dh來調(diào)整矩形框的長寬,即Cascade RCNN 通過級聯(lián)多個框回歸模塊來增強(qiáng)線性回歸的能力,從而改善檢測效果。
針對Cascade RCNN 算法在進(jìn)行缺陷檢測時仍存在對小目標(biāo)缺陷漏檢的問題,提出了一種改進(jìn)的Cascade RCNN 算法。改進(jìn)方式主要有:使用分類效果更好的ResNet50 作為Cascade RCNN 骨干網(wǎng)絡(luò),可提取更多的缺陷特征信息;借鑒FPN 的思想,融合淺層特征的位置信息和深層特征的語義信息,可提高小目標(biāo)的識別率。改進(jìn)后的Cascade RCNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)后的Cascade RCNN網(wǎng)絡(luò)結(jié)構(gòu)
圖5 Cascade RCNN-ResNet50-FPN結(jié)構(gòu)
本文網(wǎng)絡(luò)模型的基本檢測流程是通過ResNet50提取特征信息,再使用FPN融合各尺度特征圖,生成語義與全局信息更多的特征圖組,RPN按尺度在對應(yīng)的特征圖上生成候選框,最終由多個ROI Align對候選框進(jìn)行多次的框回歸。
骨干網(wǎng)絡(luò)部分采用ResNet50,賦予模型強(qiáng)大的特征提取能力。ResNet50最初作用是用來做分類網(wǎng)絡(luò)的,要使其運(yùn)用在目標(biāo)檢測中充當(dāng)骨干網(wǎng)絡(luò),只需要將最后一層的全連接層刪除,并將四個大塊的特征圖輸入FPN中,最后從RPN中將預(yù)測框與FPN 得到的特征圖傳入Cascade RCNN即可完成目標(biāo)檢測網(wǎng)絡(luò)的搭建。
改進(jìn)Cascade RCNN 這一檢測方法的優(yōu)點(diǎn)是通過級聯(lián)多個漸增閾值的框回歸模塊使其可以將原本低質(zhì)量的檢測框優(yōu)化為高質(zhì)量的檢測框,對小缺陷目標(biāo)更為敏感,提升了檢測的準(zhǔn)確率和召回率。
本文的集成電路板數(shù)據(jù)集來源于北京大學(xué)智能機(jī)器人開放實(shí)驗(yàn)室[5],其中包含1386 張缺陷圖像,以8∶2 的比例分為訓(xùn)練集與驗(yàn)證集,其主要由六種缺陷構(gòu)成:漏孔、鼠咬、開路、短路、雜散、雜銅。各類缺陷尺寸相對較小,常用算法難以在該數(shù)據(jù)集上取得良好結(jié)果。
針對本文的模型,模型訓(xùn)練時對數(shù)據(jù)集圖像進(jìn)行了如下的處理:
(1)隨機(jī)裁剪:對圖片進(jìn)行隨機(jī)裁剪以提高模型魯棒性;
(2)隨機(jī)翻轉(zhuǎn):圖片以0.5的概率進(jìn)行水平、上下翻轉(zhuǎn);
(3)標(biāo)準(zhǔn)化:將圖像數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,既減去均值[123.675,116.28,103.53],再除以標(biāo)準(zhǔn)差[58.395,57.12,57.375](如公式1所示)。
式中:X為原始數(shù)據(jù)集中的樣本特征,Xstd為標(biāo)準(zhǔn)化后的樣本特征,μ為該特征的均值,σ為改特征的標(biāo)準(zhǔn)差。
實(shí)驗(yàn)采用 PyTorch 框架[6],主要 CPU、GPU運(yùn)算設(shè)備分別為 Xeon(R)Platinum 8255C、Nvidia TeslaV100*8,采用SGD[7-8]作為優(yōu)化器,初始學(xué)習(xí)率為0.0025,動量與權(quán)重衰減系數(shù)設(shè)置為0.0001,共50輪訓(xùn)練,其中前5輪為預(yù)熱階段,到達(dá)40與45輪時,學(xué)習(xí)率下降到之前的1/10。
本文采用ResNet-50 作為骨干網(wǎng)絡(luò),頸部網(wǎng)絡(luò)使用FPN,RPN 頭部與RoI頭部均使用交叉熵?fù)p失函數(shù)與平滑L1 損失函數(shù)作為分類損失函數(shù)與回歸損失函數(shù)。此外,本文還使用相同參數(shù)訓(xùn)練了基礎(chǔ)Cascade RCNN、SSD、YOLO,與我們的模型進(jìn)行對比實(shí)驗(yàn)。
在進(jìn)行缺陷檢測的實(shí)驗(yàn)時,對Cascade RCNN缺陷檢測算法進(jìn)行改進(jìn),由訓(xùn)練至測試得到檢測結(jié)果,其具體實(shí)施步驟為:
(1)將訓(xùn)練集作為網(wǎng)絡(luò)輸入,利用骨干網(wǎng)絡(luò)ResNet50提取特征,其4個卷積層的輸出作為多尺度特征圖;
(2)在均衡化網(wǎng)絡(luò)中對多尺度特征圖進(jìn)行特征融合以輸出具有更加豐富和平衡信息的特征;
(3)將所述多尺度特征圖送入共享RPN 網(wǎng)絡(luò)中生成建議框;
(4)將生成的缺陷建議區(qū)域和ResNet50 網(wǎng)絡(luò)的最后輸出特征圖結(jié)合,經(jīng)池化運(yùn)算,獲取每類缺陷候選區(qū)域特征圖;
(5)輸出特征圖輸入到Cascade RCNN Head中后,獲得每一類缺陷的分類信息及位置信息,經(jīng)過非極大值抑制,選擇最佳預(yù)測框;
(6)重復(fù)上述步驟至模型收斂后完成訓(xùn)練;
(7)對缺陷檢測模型權(quán)重參數(shù)進(jìn)行提??;
(8)對所述測試集使用檢測模型進(jìn)行檢測,獲取每類缺陷的檢測結(jié)果以及定位結(jié)果。
將驗(yàn)證集帶入模型進(jìn)行計(jì)算,結(jié)果如圖6所示,相關(guān)實(shí)驗(yàn)運(yùn)算結(jié)果見表2。
圖6 檢測結(jié)果
表2 實(shí)驗(yàn)數(shù)據(jù)指標(biāo)對比
通過分析可以得出以下結(jié)論:①本文模型對CascadeRCNN 的改造是非常有效的,其參數(shù)量與計(jì)算量在增加不大的情況下,mAP 從79.0% 提升至93.8%,mAR 從 83.6% 提升至98.8%,使得網(wǎng)絡(luò)更加精準(zhǔn)與安全;②本文模型對小缺陷目標(biāo)檢測相對SSD、YOLO與基礎(chǔ)Cascade RCNN更為優(yōu)越,能夠較為精準(zhǔn)地檢測出數(shù)據(jù)集中非常小的缺陷目標(biāo),非常適合于PCB 行業(yè)的工業(yè)檢測。
本文針對集成電路板中小目標(biāo)缺陷檢測,以及基本Cascade RCNN 檢測算法對小目標(biāo)檢測能力弱的問題,提出了一種改進(jìn)Cascade RCNN,通過ResNet50 取代原網(wǎng)絡(luò)的骨干網(wǎng)絡(luò)VGG16,來提高網(wǎng)絡(luò)模型的特征提取能力;借鑒FPN 思想,提高多尺度特征融合均衡化能力,提高了對小目標(biāo)檢測對象的敏感度;采用多個框回歸模塊級聯(lián)來增強(qiáng)線性回歸的能力。采用北京大學(xué)智能機(jī)器人開放實(shí)驗(yàn)室提供的集成電路板數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)研究,實(shí)驗(yàn)結(jié)果表明,本文所提出的改進(jìn)Cascade RCNN 算法模型對小目標(biāo)檢測對象有較高的檢測效果和檢測效率,且模型參數(shù)規(guī)模較小,適合部署與運(yùn)行在高端FPGA設(shè)備上,可滿足集成電路板表面缺陷檢測的需求。
未來工作將在介紹改進(jìn)后的Cascade RCNN檢測算法,并將其應(yīng)用在高端FPGA設(shè)備的基礎(chǔ)上進(jìn)行鋁片表面工業(yè)缺陷檢測。首先,對Cascade RCNN算法的兩個改進(jìn)部分的改進(jìn)目的及改進(jìn)方式進(jìn)行詳細(xì)的分析;然后,介紹該模型訓(xùn)練到測試獲取檢測結(jié)果的具體實(shí)現(xiàn)步驟等。