陸維寬,周志立*,阮秀凱,聶賽賽
(1.溫州大學(xué) 電氣與電子工程學(xué)院,浙江 溫州 325035;2.溫州大學(xué) 智能鎖具研究院,浙江 溫州 325036)
印制電路板(PCB)是電子產(chǎn)品的基礎(chǔ)部件,其質(zhì)量與電子產(chǎn)品能否正常運作以及使用壽命息息相關(guān)。PCB的制作工藝復(fù)雜,在生產(chǎn)中的各個環(huán)節(jié)都有可能損壞。因此,為提高PCB及后續(xù)產(chǎn)品的合格率,必須準確檢測出PCB中存在的缺陷。傳統(tǒng)基于機器視覺的PCB缺陷檢測技術(shù)通過攝像頭采集圖像信息,然后利用圖像處理算法對比測試圖像與標準圖像,進而根據(jù)人為設(shè)定的參數(shù),確定缺陷目標的位置和類型[1]。由于檢測過程中人為主觀因素不可避免,導(dǎo)致了檢測模型泛化能力弱、魯棒性差和檢測精度低等問題。
與傳統(tǒng)檢測方法相比,基于深度學(xué)習(xí)的目標檢測方法通過使用大量的數(shù)據(jù)進行訓(xùn)練,可自動學(xué)習(xí)目標特征,避免了人工干預(yù),有效提高了目標檢測的準確性和有效性[2]。截至目前,基于深度學(xué)習(xí)的目標檢測方法主要分為兩大類:一類是以R-CNN系列[3]為代表的Two-stage目標檢測算法。該類算法利用區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN)生成建議框,再在建議框的基礎(chǔ)上對目標進行邊框回歸和分類操作。如Ding等[4]提出了一種基于Faster R-CNN的微小缺陷檢測網(wǎng)絡(luò),實現(xiàn)了較高的PCB缺陷檢測精度。該方法彌補了深層卷積網(wǎng)絡(luò)在檢測微小缺陷方面的不足,實驗在開放的PCB缺陷數(shù)據(jù)庫上獲得良好的檢測效果。但是,該模型的整體網(wǎng)絡(luò)較深,普通實驗平臺硬件要求無法滿足。Hu等[5]針對Faster R-CNN檢測模型進行改進,在骨干網(wǎng)絡(luò)中添加特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,FPN),同時對區(qū)域生成網(wǎng)絡(luò)添加ShuffleNetV2 殘差模塊,由此生成更精確的錨點,實現(xiàn)了端到端檢測。另一類是One-stage目標檢測算法,經(jīng)典算法有YOLO系列[6-8]和SSD[9]。該類算法直接在輸入圖像上選擇目標,然后進行目標的邊框回歸和分類。Lan等[10]在YOLOv3模型中引入了廣義交并比損失函數(shù),提高了模型對PCB缺陷目標的檢測效果。何國忠等[11]采用YOLOv4為基礎(chǔ)框架,在特征提取網(wǎng)絡(luò)中加入長距離全局注意力機制,得到了更豐富的特征信息,提高了模型對PCB缺陷目標的檢測精度。
然而,當缺陷目標受背景干擾過多或尺度較小時,上述方法不能有效提取缺陷目標的特征,難以準確檢測出缺陷目標。因此,為解決上述問題,本文提出了一種基于注意力機制與多尺度融合的PCB缺陷檢測方法,主要貢獻有:① 針對PCB缺陷特征的非顯著性造成現(xiàn)有方法檢測精度較低的問題,提出了一種三維注意力(3D-Attention)模塊。該模塊將缺陷目標通道維度上的類別信息與2個空間方向的位置信息相結(jié)合,能夠有效提取缺陷目標特征,從而增強了缺陷目標特征的顯著度;② 針對PCB缺陷尺度較小導(dǎo)致目標特征信息易丟失的問題,引入了一種加權(quán)雙向特征金字塔網(wǎng)絡(luò)(Bi-directional Feature Pyramid Network,BiFPN)[12]模塊。該模塊不僅通過特征層間的跨尺度連接融合了缺陷目標的淺層形態(tài)信息與深層語義信息,而且可自動學(xué)習(xí)不同特征層對多尺度融合的權(quán)重系數(shù),充分利用了微小缺陷目標的多尺度特征,從而減少了缺陷目標特征信息的丟失。
作為目前主流的一階段檢測模型之一,YOLOv5具有訓(xùn)練速度快、檢測精度高和模型權(quán)重小等諸多優(yōu)點[13-14]。因此,本文選用YOLOv5作為基礎(chǔ)模型,并從PCB缺陷目標的非顯著性和小尺度特性兩方面進行改進。
本方法的網(wǎng)絡(luò)整體結(jié)構(gòu)如圖1所示。
圖1 網(wǎng)絡(luò)整體結(jié)構(gòu)Fig.1 Overall architecture of the network
主要包括三部分:特征提取網(wǎng)絡(luò)(Backbone)、特征融合網(wǎng)絡(luò)(Neck)和檢測網(wǎng)絡(luò)(Head)。首先,為增強缺陷目標特征的顯著度,通過在特征提取網(wǎng)絡(luò)中添加3D-Attention模塊,得到更關(guān)注缺陷特征的目標特征層。其次,在特征融合網(wǎng)絡(luò)中,通過BiFPN模塊生成雙向特征金字塔,同時自動學(xué)習(xí)不同特征層對多尺度融合的權(quán)重,充分利用了微小缺陷目標的多尺度特征信息,增強了網(wǎng)絡(luò)識別能力。最后,在檢測網(wǎng)絡(luò)中,對3組輸出特征層進行檢測,并在輸出特征層上應(yīng)用先驗框,生成包含所屬類別的概率得分、置信度得分和邊界框回歸坐標的輸出向量,使用非極大抑制對輸出向量進行篩選,得到最后的檢測結(jié)果。
為了解決PCB缺陷區(qū)域受背景影響過多導(dǎo)致缺陷目標顯著度低的問題,本文提出了一種如圖2所示的3D-Attention模塊。
圖2 三維注意力模塊Fig.2 3D-Attention module
3D-Attention模塊掃描輸入的全局圖像,通過匯聚通道域和空間域的特征信息,得到需要重點關(guān)注的PCB缺陷目標區(qū)域,并對該部分投入更大的權(quán)重,抑制背景的干擾,從而提高缺陷目標信息處理的效率和準確性,其結(jié)構(gòu)由通道注意力和空間注意力組成。
① 通道注意力模塊。首先,為充分提取目標的通道維度特征,利用平均池化和最大池化對輸入特征層通道維度的特征信息進行全局低維嵌入,即將每個通道上的空間信息壓縮到對應(yīng)通道中,得到 2個擁有全局感受野的通道信息特征向量。其次,分別將得到的特征向量經(jīng)過多層感知器(Multilayer Perceptron,MLP),以充分捕捉通道間的依賴關(guān)系。接著,將MLP輸出的2個特征向量相加,并經(jīng)過Sigmoid激活函數(shù)對權(quán)值歸一化處理,得到一個能夠衡量通道重要性的權(quán)重矩陣,即通道注意力向量。最后,將通道注意力向量與輸入特征層相乘,作為下一部分的輸入特征。通道注意力向量計算如下:
Mc=σ(MLP(AvgPool(x))+MLP(MaxPool(x))),
(1)
式中:x為輸入特征,Mc為通道注意力向量,AvgPool為平均池化,MaxPool為最大池化,σ為Sigmoid激活函數(shù)。
② 空間注意力模塊。首先,為保留目標更精確的位置信息,分別沿水平和垂直2個方向使用平均池化聚合特征層的空間信息,即分別將空間域水平方向上的通道、垂直方向信息和空間域垂直方向上的通道、水平方向信息壓縮到對應(yīng)方向中,得到2個特征向量。其次,為捕獲空間信息的長距離依賴關(guān)系,將水平和垂直方向的特征向量拼接,并經(jīng)1×1卷積變換和非線性激活函數(shù),獲得空間信息交互后的特征向量。然后將交互后的特征向量分別沿水平和垂直方向分割,并使用1×1卷積變換和Sigmoid激活函數(shù)對特征向量進行降維和歸一化處理,得到2個衡量缺陷目標空間位置信息重要性的權(quán)重矩陣,即水平和垂直方向的空間注意力向量。最后,將水平和垂直方向的空間注意力向量同時與輸入特征層相乘,得到最后結(jié)果,即完成對輸入特征層中缺陷目標區(qū)域的重校準。水平和垂直方向的空間注意力向量計算方式如下:
f=δ(Conv([AvgPool(c,h)(x),AvgPool(c,w)(x)])),
(2)
Mw=σ(Conv(fw)),
(3)
Mh=σ(Conv(fh)),
(4)
式中:x為輸入特征,AvgPool(c,h)和AvgPool(c,w)分別為通道、垂直方向與通道、水平方向上的平均池化,[]為向量拼接操作,Conv為1×1卷積變換,δ為非線性激活函數(shù),f為空間信息交互后的特征向量,將f分別沿水平和垂直方向分割為fw和fh;Mw為水平方向的空間注意力向量,Mh為垂直方向的空間注意力向量。
由以上分析可知,3D-Attention模塊不僅從通道維度匯集目標的類別信息,而且沿2個空間方向保留目標更精確的位置信息,可增強缺陷目標的特征表達能力,提高網(wǎng)絡(luò)模型的檢測精度。
YOLOv5中的特征融合網(wǎng)絡(luò)如圖3(a)所示,結(jié)合了FPN[15]與路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)[16]。該網(wǎng)絡(luò)在進行多尺度特征融合時,只是將不同分辨率的特征層調(diào)整為相同分辨率并簡單相加,無法充分利用不同特征層的作用。為充分利用缺陷目標的多尺度特征,引入了一種如圖3(b)所示的BiFPN模塊,其融合過程分為3步:
(a)FPN+PAN
(b)BiFPN
① 簡化網(wǎng)絡(luò)結(jié)構(gòu):若一個特征層僅一條輸入特征邊,那么該特征層對融合不同特征的作用就會大大減少。因此,可通過剔除只有一條輸入特征邊的特征層來簡化網(wǎng)絡(luò)結(jié)構(gòu)。
② 跨尺度連接:為融合更多的特征信息,對于在同一層的輸入特征層和輸出特征層增加一條額外的輸入特征邊。
③ 添加權(quán)重:為讓網(wǎng)絡(luò)能夠?qū)W習(xí)每個輸入特征層的重要性,在每個輸入特征邊上添加一個權(quán)重。為避免操作的復(fù)雜性,BiFPN使用快速歸一化融合來添加權(quán)重:
(5)
式中:Ii表示輸入特征層,wi表示輸入特征層的權(quán)重系數(shù),ε是一個小數(shù)值,本文取0.000 1。
(6)
綜上,BiFPN模塊不僅通過特征層間的跨尺度連接,豐富了特征層的語義信息和形態(tài)信息,而且能夠自動學(xué)習(xí)不同分辨率的特征層對多尺度融合的權(quán)重系數(shù),可提高模型對小尺度缺陷目標的檢測性能。
本文基于Ubuntu 20.04系統(tǒng)搭建實驗平臺,具體配置參數(shù)如表1所示。在訓(xùn)練過程中,使用SGD作為優(yōu)化器,學(xué)習(xí)率的初始值設(shè)定為0.01,并使用One-Cycle策略改變學(xué)習(xí)率,訓(xùn)練次數(shù)epoch為300,批次大小batch_size為16,輸入圖片大小為 640 pixel×640 pixel。
表1 實驗平臺配置參數(shù)Tab.1 Configuration parameters of experimental platform
實驗選用北京大學(xué)智能機器人開放實驗室提供的PCB缺陷數(shù)據(jù)集[17]對所提出的模型進行驗證。該數(shù)據(jù)集共有693張PCB缺陷圖像,包含6類PCB缺陷,分別是缺孔(missing hole)、鼠咬(mouse bite)、開路(open circuit)、短路(short)、毛刺(spur)和雜銅(spurious copper)。為確保樣本充足,利用隨機翻轉(zhuǎn)、放縮和亮度調(diào)整等操作擴充數(shù)據(jù)集。擴充后的數(shù)據(jù)集共包含4 158張圖像和17 718處缺陷,并按照8∶1∶1的比例劃分訓(xùn)練集、驗證集和測試集。
為客觀評價網(wǎng)絡(luò)模型的性能,選取精確度(Precision,P)、召回率(Recall,R)、 平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP)作為評價指標。其中,精確度表示模型預(yù)測的所有目標中預(yù)測正確的比例;召回率表示模型預(yù)測的正確目標占所有正確目標的比例;AP表示召回率在0~1的精確度平均值;mAP表示所有類別AP的平均值。以上評價指標計算如下:
(7)
(8)
(9)
(10)
式中:TP表示正樣本被判斷為正樣本的數(shù)量,FP表示負樣本被判斷為正樣本的數(shù)量,FN表示正樣本被判斷為負樣本的數(shù)量,P表示精確度,R表示召回率,n表示類別數(shù)量。
為充分驗證3D-Attention模塊對YOLOv5目標檢測算法的有效性,將3D-Attention模塊嵌入特征提取網(wǎng)絡(luò)進行實驗,并將其與GAM[18]、CBAM[19]、CA[20]注意力模塊進行實驗對比,采用P、R、mAP@0.5、mAP@0.5:0.95和推理時間作為評價指標,其中mAP@0.5表示閾值為0.5時的平均檢測精度,mAP@0.5:0.95表示閾值0.5~0.95,步長 0.05的平均檢測精度。實驗結(jié)果如表2所示。
表2 不同注意力模塊性能對比Tab.2 Performance comparison of different attention modules
從表2可以看出,使用GAM、CA、CBAM、3D- Attention模塊的模型較原方法檢測精度分別提高了0.3%、0.3%、1.4%、1.2%。由于注意力模塊的插入,少量增加了模型參數(shù),導(dǎo)致模型的推理速度變慢。由于CBAM的運算流程與3D-Attention相似,且其結(jié)構(gòu)更為復(fù)雜,造成了CBAM的P、R和mAP@0.5略高于3D-Attention。但3D-Attention的mAP@0.5:0.95和推理時間均優(yōu)于CBAM。相較于mAP@0.5,mAP@0.5:0.95的結(jié)果更為均衡,表明3D-Attention模塊的性能更優(yōu)。綜上,本文所提的3D-Attention模塊可有效增強缺陷目標的特征表達能力,提高網(wǎng)絡(luò)模型的檢測精度。
為驗證多尺度融合對YOLOv5的有效性,在PCB缺陷數(shù)據(jù)集上分別對原方法和改進方法進行實驗對比,采用參數(shù)量、P、R、mAP@0.5、mAP@ 0.5:0.95和推理時間作為評價指標。實驗結(jié)果如表3所示。
表3 多尺度融合對比實驗Tab.3 Multi-scale fusion contrast experiment
由表3可以看出,雖然BiFPN模塊增加了額外的輸入特征邊,造成參數(shù)量增加1.06 M、推理時間增加了0.3 ms,但P提高了0.8%、R提高了0.7%、mAP@0.5提高了1.2%,mAP@0.5:0.95提高了4.3%。該實驗結(jié)果充分證明了BiFPN對多尺度特征融合的有效性,在少量增加網(wǎng)絡(luò)參數(shù)和降低推理速度的情況下,融合了多個特征層的語義信息和形態(tài)信息,提高了模型對小尺度缺陷目標的檢測性能。
為驗證本文提出的改進模塊的有效性,在YOLOv5的基礎(chǔ)上對各個模塊進行消融實驗。首先,在特征提取網(wǎng)絡(luò)中加入3D-Attention模塊;其次,采用BiFPN作為特征融合網(wǎng)絡(luò);最后,將二者結(jié)合生成最終的改進模型,并與原方法進行實驗對比,采用P、R、mAP@0.5作為評價指標。對比實驗結(jié)果如表4所示。
表4 不同模塊對模型性能的影響Tab.4 Impact of different modules on model performance
由表4可以看出,添加3D-Attention模塊后,P提高了0.5%,R提高了1.6%,mAP@0.5提高了 1.2%,證明了3D-Attention模塊對增強缺陷特征表達的有效性;添加BiFPN模塊后,P提高了0.8%,R提高了0.7%,mAP@0.5提高了1.2%,證明了BiFPN模塊對多尺度特征融合的有效性;將2個模塊同時加入基礎(chǔ)模型中,mAP@0.5提高了3.9%。以上結(jié)果表明,本文所提出的改進策略可以有效增強缺陷特征的顯著度,提高模型對微小缺陷目標的檢測性能。
為充分驗證本文所提方法的優(yōu)越性,將本文方法與Faster R-CNN、Cascade R-CNN[21]、SSD、YOLOv3、改進YOLOv3[22]、YOLOv4、YOLOX[23]和YOLOv5在相同實驗環(huán)境下進行實驗對比,實驗結(jié)果如表5所示。
表5 不同方法的性能對比Tab.5 Performance comparison of different methods
從表5可以看出,本文方法對于鼠咬、開路、短路、毛刺和雜銅這幾類缺陷的檢測精度均高于其他幾種方法。只有在缺孔上的檢測精度,本文方法沒有達到最高,相比于YOLOX方法低了0.1%。本文方法在PCB缺陷數(shù)據(jù)集上的mAP@0.5達到了 98.2%,相比于Faster R-CNN、Cascade R-CNN、SSD、YOLOv3、改進YOLOv3、YOLOv4、YOLOX和YOLOv5分別提高了15.7%、17.9%、12.9%、 19.8%、10.6%、5.5%、5.3%和3.9%。綜上,本文方法相比于其他主流目標檢測算法,具有較高的檢測精度和較低的推理時間,證明了本文方法的優(yōu)越性。
為進一步驗證模型的性能,將YOLOv5方法與本文方法的檢測效果可視化,如圖4所示。
從圖4(a)可以明顯看出,YOLOv5方法受背景干擾較大,將部分正常區(qū)域識別為缺陷,同時漏掉了較小尺度的缺陷目標。這是由于YOLOv5方法的特征提取網(wǎng)絡(luò)只是對PCB圖像進行局部區(qū)域運算,忽略了全局信息對當前區(qū)域的貢獻,導(dǎo)致模型不能準確提取缺陷目標特征。同時,特征融合網(wǎng)絡(luò)只是將不同特征層進行尺度變換后相結(jié)合,不能充分融合多尺度特征層中缺陷目標信息,從而易出現(xiàn)缺陷目標特征信息丟失。
從圖4(b)可以看出,本文方法能夠正確識別出PCB缺陷目標,且識別精度很高,未出現(xiàn)漏檢和誤檢的情況。這是由于本文方法針對PCB缺陷特點,提出了2個優(yōu)化策略:① 在特征提取網(wǎng)絡(luò)中,添加了3D-Attention模塊,充分考慮了PCB圖像的全局信息,提升了網(wǎng)絡(luò)對于缺陷特征的提取能力,抑制了背景區(qū)域中無關(guān)信息的干擾;② 在特征融合網(wǎng)絡(luò)中,引入了一種特征融合能力更強的BiFPN模塊,加強了小尺度缺陷目標的特征表達,從而進一步提高模型對PCB缺陷的檢測能力。
為解決PCB缺陷檢測精度較低的問題,提出了一種基于注意力機制與多尺度融合的PCB缺陷檢測方法。該方法通過在特征提取網(wǎng)絡(luò)中添加3D- Attention模塊,增強了缺陷特征的顯著度,從而提高了缺陷目標的檢測效果;通過在特征融合網(wǎng)絡(luò)中引入BiFPN模塊,減少了微小缺陷目標特征信息的丟失,提高了模型對小尺度缺陷的識別能力。實驗結(jié)果表明,該方法能夠快速、準確地識別PCB缺陷目標,在PCB缺陷數(shù)據(jù)集上的檢測精度和推理時間分別為98.2%和2.5 ms,相比于其他方法有明顯提高。在未來的工作中,將制作更多的PCB缺陷樣本以擴充數(shù)據(jù)集,同時研究更有效的網(wǎng)絡(luò)模型,進一步提高PCB缺陷檢測的準確性。