季堂煜,趙 倩,余文濤,梁 爽,趙 琰
(上海電力大學電子與信息工程學院,上海 201306)
PCB作為承載集成電路的重要方式,其表面缺陷會導致電路板出現(xiàn)串擾等問題,限制了使用年限。目前,由于PCB表面缺陷檢測自身存在的尺寸小、與背景近似度高以及數(shù)據(jù)采集過程中外界干擾等問題,導致檢測效果較差[1]。且因PCB表面缺陷對于電氣特性影響較小,難以通過電氣特性測量檢測法[2]進行檢測;而借助人眼檢測法雖檢測效果較好,但檢測速度較慢,難以實現(xiàn)工業(yè)快速檢測需求。因此探尋合理的方法成為當下研究的熱門問題。
近年來,隨著深度學習技術的不斷發(fā)展[3-4],不僅有效克服了數(shù)據(jù)采集過程中外界干擾對目標檢測的不利影響,并且深度學習在PCB表面缺陷檢測方面已經(jīng)取得了一定成效。何國忠等[5]提出基于改進YOLOv4的PCB表面缺陷檢測模型,mAP0.5可達91.4%;胡江宇等[6]提出基于改進FasterRCNN的PCB表面缺陷檢測模型,mAP0.5可達78.21%;李聞等[7]提出基于改進YOLOv3的PCB表面缺陷檢測模型,mAP0.5可達87.6%。上述方法證明了深度學習算法可以應用在PCB表面缺陷檢測中,但對于PCB表面缺陷的小目標[8]問題考慮欠妥,導致模型的實際檢測效果欠佳。
基于上述研究成果,本文提出一種基于增強小目標特征提取的PCB表面缺陷檢測模型。借鑒YOLOv5[9]網(wǎng)絡架構引入SPDConv[10]提高網(wǎng)絡各階段對小目標信息的提取能力;在網(wǎng)絡最深層借助CA注意力機制[11],加強深層語義信息的傳遞能力。同時引入HardSwish激活函數(shù),加快模型的推理速度。在特征融合階段,提出T3Head小目標特征融合結構,在模型自下而上融合過程中以轉(zhuǎn)置卷積取代上采樣層,提高局部信息間的關聯(lián)度;在自上而下融合過程中引入SPDConv模塊進一步增強小目標信息的融合,此外在特征融合各階段間引入CBAM[12]注意力機制,加強上下文信息的傳遞。在訓練過程中,遷移VOC[13]數(shù)據(jù)集預訓練權重,提高模型的泛化性;采用EIOU-NMS[14]進行后處理,改善模型的檢測結果。在北京大學開源PCB表面缺陷數(shù)據(jù)集[15]上,模型的mAP0.5可達92.4%,比YOLOv5s模型提高了0.9%,模型實際檢測效果更好。
YOLOv5模型雖被廣泛應用于目標檢測任務中,但是模型對于小目標特征提取能力較弱,無法較好地完成PCB表面缺陷檢測任務。基于此,本文提出SPDYOLOv5增強小目標特征提取模型,完整結構圖如圖1所示。
圖1 完整網(wǎng)絡模型圖
首先輸入圖像為640×640×3,經(jīng)過Focus[8]結構變換為320×320×32尺寸的特征圖,再經(jīng)過多階段殘差網(wǎng)絡,輸出尺寸為80×80×128、40×40×256以及20×20×512,用于特征融合。隨后通過增強小目標特征融合結構獲取尺寸為80×80×128用于檢測淺層小目標,40×40×256用于檢測中目標,20×20×512用于檢測大目標。
改進后的主干網(wǎng)絡不僅繼承了CSPNet的強特征提取能力,對于小目標也能更好地進行特征提取,并且通過在模型中使用HardSwish激活函數(shù),加速了模型推理。主干網(wǎng)絡的改進點主要包括以下2個方面。
1.1.1 SPDConv小目標增強特征提取模塊
SPDConv模塊由SPD模塊與步長為1的卷積組成,運算過程如圖2所示。首先將輸入為W×H×C的特征圖按照隔點采樣的方式,獲取尺寸為W/2×H/2×C的4個特征圖,隨后將拼接得到尺寸為W/2×H/2×4C的特征圖,接著通過1×1卷積進行降維,并構建特征圖之間的關聯(lián)性,得到尺寸為W/2×H/2×C的特征圖。從上述推導中可知,SPDConv模塊相比于傳統(tǒng)卷積運算對于信息的保留度更高,因此能有效提高對于小目標的特征提取能力。
圖2 SPDConv運算過程圖
為直觀體現(xiàn)引入SPDConv前后對模型學習能力的影響,可視化第3層的特征圖,如圖3所示。從圖3可知,引入SPDConv后,模型獲取的特征圖細節(jié)特征更加明顯豐富。
(b)改進前網(wǎng)絡第3層獲取的特征圖
(c)改進后網(wǎng)絡第三層獲取的特征圖圖3 引入SPDConv前后第3層特征圖的對比
1.1.2 CA注意力機制
隨著網(wǎng)絡深度的不斷加深,獲取的信息由淺層位置信息逐漸抽象為高維語義信息,為提高模型對于高維局部語義信息的關注能力,本文提出在主干網(wǎng)絡最深層與特征融合結構間引入CA注意力機制,加強上下文信息的傳遞能力。CA注意力機制的運算過程如圖4所示。對于輸入為H×W×C的特征圖,先同時從圖像高與寬兩個維度進行全局平均池化得到尺寸為H×1×C和1×W×C的特征圖;接著將兩個尺寸的特征圖進行拼接并通過共享卷積從通道維度進行降維,得到尺寸為1×(W+H)×C/r的特征圖;再經(jīng)過非線性層,提高其非線性表達能力。隨后以1×1卷積進行升維,將特征圖分別從寬度與高度兩個維度,恢復至H×1×C和1×W×C兩個尺度的特征圖并且通過HardSigmoid賦予權值,最后將特征圖尺寸變化至H×W×C。因此從CA注意力機制的運算過程可知,CA注意力對于輸入的特征圖從高度與寬度兩個維度進行權重編碼。因此將CA注意力機制應用于網(wǎng)絡最深層,可有效提高模型對高維語義信息的傳遞能力。
針對YOLOv5特征融合網(wǎng)絡對小目標檢測能力較弱的情況,對于自下而上部分引入轉(zhuǎn)置卷積取代池化操作。在自上而下部分引入SPDConv結構,有效保留小目標的信息??梢暬诮挡蓸与A段引入SPDConv結構前后的特征圖,如圖5所示。從圖5可知,在引入SPDConv后網(wǎng)絡第19層獲取的信息更清晰,有效提高了模型對高維語義信息的提取能力。
(a)第19層引入SPDConv前的特征圖
(b)第19層引入SPDConv后獲取的特征圖圖5 特征融合階段第19層引入SPDConv前后的特征圖
原始YOLOv5網(wǎng)絡在特征結構通過臨近插值進行上采樣,不具備參數(shù)調(diào)節(jié)與自我學習能力,輸入輸出關聯(lián)度較差。轉(zhuǎn)置卷積不僅具有可學習的參數(shù),同時可以更好地構建輸入輸出關系。轉(zhuǎn)置卷積的運算過程為:首先對待轉(zhuǎn)置卷積的特征圖在相鄰元素間填充0進行池化,然后再進行卷積。對于上采樣部分,應用轉(zhuǎn)置卷積可以提高臨近特征圖之間的關聯(lián)度,對于小目標特征信息更友好。
為加強特征融合階段上下文間信息傳遞能力,本文在特征融合各階段間引入CBAM注意力機制,如圖1中CBAMC3結構所示。CBAM注意力機制同時從位置以及通道兩個維度對信息進行加權賦值,將模塊應用于各階段間可以提高模型對局部細小特征的關注度。
為提高模型的檢測效果,本文提出將EIOU與NMS算法相結合,優(yōu)化模型檢測的效果。EIOU算法的計算公式如下:
(1)
式中:LEIOU為EIOU損失函數(shù)值;IOU表示預測框與實際框的數(shù)值;b、bgt分別為預測框和真實框的中心點;ρ為計算兩個中心點間的歐式距離;w為框的寬度;h為框的高度;c為能夠同時包含預測框和真實框的最小閉包區(qū)域的對角線距離;ch、cw為以兩個框中心點構成的矩形的高和寬。
從式(1)可以看到:EIOU將縱橫比的損失項拆分成預測的寬高分別與最小外接框?qū)捀叩牟钪?有效限制了模型回歸過程中的自由度,提高了模型的回歸能力。
本實驗平臺為聯(lián)想拯救者刃7000K,操作系統(tǒng)為Windows11,CPU為Inteli7-12700F,內(nèi)存為16 GB,顯卡為NVIDIA RTX3060Ti 8G,深度學習框架為pytorch1.11.0。實驗數(shù)據(jù)集采用北京大學開源PCB表面缺陷數(shù)據(jù)集,共包含6類缺陷,1 386張圖片。在模型訓練過程中,將數(shù)據(jù)集按照8∶1∶1的比例劃分訓練集、驗證集與測試集。將圖片輸入大小調(diào)整為640×640,設置初始學習率為0.001,采用Adam優(yōu)化器進行模型訓練,迭代300輪。
對于模型采用多類評價指標,包括準確率(P)、召回率(R)、mAP0.5進行多指標評價。
(2)
(3)
(4)
(5)
上述指標均用于衡量模型對于小目標PCB表面缺陷的檢測性能,數(shù)值越大,說明模型檢測的性能越好。
為提高模型的泛化性、加速模型的收斂,按照文章所述參數(shù),采用VOC數(shù)據(jù)集預訓練權重進行遷移學習,訓練過程中訓練集與驗證集上的損失函數(shù)值如圖6所示??v坐標代表Loss值,橫坐標代表訓練輪數(shù)。在預訓練模型及給定訓練參數(shù)下,前50輪Loss數(shù)值由0.16快速下降至0.05左右,在51~120輪損失函數(shù)曲線逐漸趨于平滑并收斂于0.05左右,模型開始逐漸收斂。根據(jù)訓練中參數(shù)的收斂情況可認為模型獲得了較理想的訓練結果。
圖6 訓練過程中損失函數(shù)圖
為驗證本文算法的性能,將本文模型與相同數(shù)據(jù)集下的多個模型進行對比分析,如表1所示。
表1中,除本文模型與YOLOv5s實驗結果通過本文實驗平臺進行測定,文獻[5-7]通過文獻中實驗平臺測定外,其余模型mAP0.5數(shù)值如文獻[26]中所述,這些模型均已迭代至收斂。從上述多模型對比結果來看,本文模型對于多類PCB表面缺陷小目標檢測性能更優(yōu),原因在于:本模型對于PCB表面缺陷所具有的缺陷考慮更全面。對于YOLOv5s模型可視化改進前后的檢測結果圖如圖7所示。
本文模型的改進點主要在于在主干網(wǎng)絡引入了SPDconv和CA注意力機制,在特征融合階段提出T3Head特征融合網(wǎng)絡,并引入CBAM注意力機制以及EIOU-NMS后處理算法。為評估算法改進點的效果,進行消融實驗,如表2所示,表中×表示未使用該模塊,√表示使用該模塊。
表2 消融實驗結果表
進一步分析表2可知:通過引入SPDConv,模型對于小目標細節(jié)特征提取能力明顯增強,模型的召回率獲得一定的提升;引入CA注意力機制后,加強了特征融合與主干網(wǎng)絡間語義信息的傳遞能力,模型的召回率提高了0.9%;以T3Head作為特征融合網(wǎng)絡后,模型對于小目標的特征提取能力進一步加強,模型性能進一步提升;通過引入CBAM注意力機制強化了模型各階段有效信息的傳遞能力,模型各類別檢測精度提高至90.5%。借助EIOU-NMS進行后處理后,優(yōu)化了模型檢測的效果,上述消融實驗證明了本文提出的模型對于小目標PCB表面缺陷具有較好的檢測結果。
結合表2以及圖7可知,雖然YOLOv5s模型具有較強的擬合能力,但是在實際檢測中存在誤檢的情況,制約了模型的實際檢測效果,本文模型不僅具有較好的檢測結果且不存在誤檢的情況,說明本文模型在實際檢測中效果更好。
針對現(xiàn)在主流目標檢測方法對于小目標PCB表面缺陷檢測能力較弱的情況,提出SPDYOLOv5模型,以SPDConv取代模型中各階段的降采樣卷積,提高模型對細節(jié)信息的關注度。在網(wǎng)絡最深層借助CA注意力機制對深層語義信息進行編碼,提高主干網(wǎng)絡與特征融合間的信息傳遞能力。提出T3Head增強小目標特征融合網(wǎng)絡,通過改變上采樣與下采樣的方式提高模型對小目標信息的特征提取能力;借助CBAM注意力機制,加強各階段間的信息傳遞能力。以EIOU-NMS進一步優(yōu)化檢測結果,通過對比實驗與消融實驗證明了本文模型有效解決了PCB檢測過程中的小目標問題。后續(xù)研究將從更復雜的缺陷、小樣本問題以及更復雜場景下的PCB表面缺陷展開。