王代濤,李文杰,謝 波,俞文靜
(廣州軟件學院網絡技術系,廣州 510990)
瑕疵檢測通常是指對物體表面疵點的檢測[1-2]。在集成電路板批量生產或者經年使用中,由于各方面因素的影響,會產生諸如漏孔、鼠咬、開路、短路、雜散、雜銅等瑕疵。迄今為止,對集成電路板的瑕疵檢測主要還是依賴人工進行實現,存在著效率低、人工成本高和檢測標準難以統一等問題。因此,急需通過一些高效、智能化的方案去解決這一問題。計算機視覺擁有高效、穩定、可長時間工作等特性,以計算機視覺替代人工進行瑕疵檢測獲得越來越多的認可。
近年來,物體表面缺陷檢測已經成為深度學習領域的熱門研究課題。然而,在集成電路板視覺檢測中,由于主板圖像背景復雜多樣,檢測目標小、瑕疵難定位,再加上工業生產中要求滿足安全性和高精度檢測,現有的很多算法模型并不適用于此。集成電路板行業需要既能滿足檢測精度和安全要求,又能在復雜背景下進行瑕疵檢測的高效算法模型。
針對此問題,本文選用Cascade RCNN 為基礎檢測網絡,并選用特征提取效果較好的ResNet50 作為其骨干網絡,針對集成電路板檢測目標較小的問題加入了FPN 網絡,將ResNet50 輸出的具有大量位置信息的淺層特征層和具有豐富語義信息的深層特征層進行均衡化融合,以提高檢測質量與效率。最后得到的模型體積約為68.94 M,在實驗環境下,其FPS為16.1、mAP 和mAR 高達93.8%與98.8%。可安全、有效地實現對集成電路板的瑕疵檢測。
本文克服了Cascade RCNN 算法對小目標和重疊度高的缺陷識別率低的問題,提出了一種基于Cascade RCNN 的改進算法,使用ResNet50作為Cascade RCNN 算法的骨干網絡,并融入基于FPN 網絡改進的多尺度特征融合均衡化網絡,搭建了Cascade RCNN-ResNet50-FPN 網絡模型,以下稱為改進Cascade RCNN,整個算法模型檢測精度、召回率較高,既精確又安全,可滿足工業集成電路板表面缺陷檢測的需求。
ResNet50是經典的運用殘差單元結構組成的網絡,是在 2016 年由 He 等[3]共同提出,旨在解決因卷積神經網絡不斷迭代而可能導致的梯度消失和網絡退化的問題。其網絡層次如表1所示。

表1 ResNet50網絡結構
ResNet50 包括一個步長為 2 的 7 × 7 卷積層、四個殘差單元級聯卷積層和一個全連接層。其中殘差單元是由一個3 × 3 的卷積核、兩個1 × 1 的卷積核和一個殘差連接分支組成,其結構如圖1所示。

圖1 ResNet50網絡的殘差單元結構

圖2 多尺度特征融合均衡化網絡結構

圖3 邊框回歸
其中:x1為輸入,其期望輸出為h(x),但加入一個恒等映射x1后原始學習特征變成h(x)=f(x) +x1,因此殘差是指f(x)=h(x) -x1,使得網絡擬合更容易,直接映射的加入也使得網絡的下一層產生比前一層的圖像信息多[2-3]。ResNet50 計算量適中,能提取更多小目標特征信息。
當前,FPN[4]是目標檢測算法中最常用的特征融合網絡,具體實現方式如圖所示。FPN 是在特征提取網絡生成的多尺度特征圖的基礎上,將最后一層特征圖做2倍上采樣后與前一層特征圖融合生成新的特征圖,然后將新生成的特征圖以同樣的方式與前一層特征圖進行融合,逐層重復以上操作,形成特征金字塔。但是特征金字塔網絡長距離信息流動會導致缺陷信息的流失和更多的關注相鄰分辨率,這種融合方式會產生缺陷特征信息不平衡問題。因此,本文基于FPN 提出了一種多尺度特征融合均衡化網絡,利用相同深度融合的平衡語義特征來增強多層次的特征。首先將通過FPN 網絡形成的每層特征圖通過上采樣操作變成相同尺度,然后進行像素級的聚合均值,再將聚合均值化的特征圖通過與之前相反的采樣操作形成不同尺度的特征圖,從而得到缺陷特征信息更平衡的多尺度特征圖,實現缺陷特征的多層復用和融合均衡化,提高小目標缺陷敏感度[5]。
Cascade RCNN 是一種提高目標檢測效果的方法,其關鍵在于采用4 次框回歸。其通過將RPN[4]輸出的檢測框輸入回歸模塊(如圖 4 所示),并將其輸出作為下一層的輸入,重復該過程以提高IoU 閾值,從而提升預測框的定位效果??蚧貧w模塊通過生成dx、dy來調整矩形框的位置,以及生成dw、dh來調整矩形框的長寬,即Cascade RCNN 通過級聯多個框回歸模塊來增強線性回歸的能力,從而改善檢測效果。
針對Cascade RCNN 算法在進行缺陷檢測時仍存在對小目標缺陷漏檢的問題,提出了一種改進的Cascade RCNN 算法。改進方式主要有:使用分類效果更好的ResNet50 作為Cascade RCNN 骨干網絡,可提取更多的缺陷特征信息;借鑒FPN 的思想,融合淺層特征的位置信息和深層特征的語義信息,可提高小目標的識別率。改進后的Cascade RCNN 網絡結構如圖4所示。

圖4 改進后的Cascade RCNN網絡結構

圖5 Cascade RCNN-ResNet50-FPN結構
本文網絡模型的基本檢測流程是通過ResNet50提取特征信息,再使用FPN融合各尺度特征圖,生成語義與全局信息更多的特征圖組,RPN按尺度在對應的特征圖上生成候選框,最終由多個ROI Align對候選框進行多次的框回歸。
骨干網絡部分采用ResNet50,賦予模型強大的特征提取能力。ResNet50最初作用是用來做分類網絡的,要使其運用在目標檢測中充當骨干網絡,只需要將最后一層的全連接層刪除,并將四個大塊的特征圖輸入FPN中,最后從RPN中將預測框與FPN 得到的特征圖傳入Cascade RCNN即可完成目標檢測網絡的搭建。
改進Cascade RCNN 這一檢測方法的優點是通過級聯多個漸增閾值的框回歸模塊使其可以將原本低質量的檢測框優化為高質量的檢測框,對小缺陷目標更為敏感,提升了檢測的準確率和召回率。
本文的集成電路板數據集來源于北京大學智能機器人開放實驗室[5],其中包含1386 張缺陷圖像,以8∶2 的比例分為訓練集與驗證集,其主要由六種缺陷構成:漏孔、鼠咬、開路、短路、雜散、雜銅。各類缺陷尺寸相對較小,常用算法難以在該數據集上取得良好結果。
針對本文的模型,模型訓練時對數據集圖像進行了如下的處理:
(1)隨機裁剪:對圖片進行隨機裁剪以提高模型魯棒性;
(2)隨機翻轉:圖片以0.5的概率進行水平、上下翻轉;
(3)標準化:將圖像數據進行標準化處理,既減去均值[123.675,116.28,103.53],再除以標準差[58.395,57.12,57.375](如公式1所示)。
式中:X為原始數據集中的樣本特征,Xstd為標準化后的樣本特征,μ為該特征的均值,σ為改特征的標準差。
實驗采用 PyTorch 框架[6],主要 CPU、GPU運算設備分別為 Xeon(R)Platinum 8255C、Nvidia TeslaV100*8,采用SGD[7-8]作為優化器,初始學習率為0.0025,動量與權重衰減系數設置為0.0001,共50輪訓練,其中前5輪為預熱階段,到達40與45輪時,學習率下降到之前的1/10。
本文采用ResNet-50 作為骨干網絡,頸部網絡使用FPN,RPN 頭部與RoI頭部均使用交叉熵損失函數與平滑L1 損失函數作為分類損失函數與回歸損失函數。此外,本文還使用相同參數訓練了基礎Cascade RCNN、SSD、YOLO,與我們的模型進行對比實驗。
在進行缺陷檢測的實驗時,對Cascade RCNN缺陷檢測算法進行改進,由訓練至測試得到檢測結果,其具體實施步驟為:
(1)將訓練集作為網絡輸入,利用骨干網絡ResNet50提取特征,其4個卷積層的輸出作為多尺度特征圖;
(2)在均衡化網絡中對多尺度特征圖進行特征融合以輸出具有更加豐富和平衡信息的特征;
(3)將所述多尺度特征圖送入共享RPN 網絡中生成建議框;
(4)將生成的缺陷建議區域和ResNet50 網絡的最后輸出特征圖結合,經池化運算,獲取每類缺陷候選區域特征圖;
(5)輸出特征圖輸入到Cascade RCNN Head中后,獲得每一類缺陷的分類信息及位置信息,經過非極大值抑制,選擇最佳預測框;
(6)重復上述步驟至模型收斂后完成訓練;
(7)對缺陷檢測模型權重參數進行提??;
(8)對所述測試集使用檢測模型進行檢測,獲取每類缺陷的檢測結果以及定位結果。
將驗證集帶入模型進行計算,結果如圖6所示,相關實驗運算結果見表2。

圖6 檢測結果

表2 實驗數據指標對比
通過分析可以得出以下結論:①本文模型對CascadeRCNN 的改造是非常有效的,其參數量與計算量在增加不大的情況下,mAP 從79.0% 提升至93.8%,mAR 從 83.6% 提升至98.8%,使得網絡更加精準與安全;②本文模型對小缺陷目標檢測相對SSD、YOLO與基礎Cascade RCNN更為優越,能夠較為精準地檢測出數據集中非常小的缺陷目標,非常適合于PCB 行業的工業檢測。
本文針對集成電路板中小目標缺陷檢測,以及基本Cascade RCNN 檢測算法對小目標檢測能力弱的問題,提出了一種改進Cascade RCNN,通過ResNet50 取代原網絡的骨干網絡VGG16,來提高網絡模型的特征提取能力;借鑒FPN 思想,提高多尺度特征融合均衡化能力,提高了對小目標檢測對象的敏感度;采用多個框回歸模塊級聯來增強線性回歸的能力。采用北京大學智能機器人開放實驗室提供的集成電路板數據集進行實驗研究,實驗結果表明,本文所提出的改進Cascade RCNN 算法模型對小目標檢測對象有較高的檢測效果和檢測效率,且模型參數規模較小,適合部署與運行在高端FPGA設備上,可滿足集成電路板表面缺陷檢測的需求。
未來工作將在介紹改進后的Cascade RCNN檢測算法,并將其應用在高端FPGA設備的基礎上進行鋁片表面工業缺陷檢測。首先,對Cascade RCNN算法的兩個改進部分的改進目的及改進方式進行詳細的分析;然后,介紹該模型訓練到測試獲取檢測結果的具體實現步驟等。