徐婷婷,祁晉東,達頓珠,周艷霞
(西藏大學 信息科學技術學院,拉薩 850000)
印刷電路板(PCB)是現代電子設備不可或缺的核心組成,已廣泛應用于計算機、通信、消費電子、醫療設備等多個領域。傳統的PCB瑕疵檢測方法通常依賴于人工視覺檢查或機械檢測設備,存在效率低下、成本高昂及檢測準確性不高等問題,隨著計算機視覺技術的迅猛發展,基于目標檢測的PCB瑕疵檢測方法迅速嶄露頭角。目標檢測算法主要分為傳統的和基于深度學習的兩大類。與傳統的目標檢測算法不同,基于深度學習的方法無需區域提議階段,直接生成物體的類別概率及位置坐標值,具有更快的檢測速度,故本研究選擇采用YOLOx[1]進行目標檢測,借助最新的深度學習技術及大規模PCB瑕疵圖像數據集訓練了一款高性能的PCB瑕疵檢測模型,利用Pyside2設計了一個目標檢測的PCB瑕疵檢測系統,能夠自動識別并定位PCB上的各種瑕疵,顯著提高了檢測準確性及速度,克服傳統方法的限制,為PCB制造行業提供可靠的質量控制解決方案。
多分支卷積神經網絡在準確性及速度方面持續取得顯著進展,其核心概念是分裂-轉換-合并,該方法降低了訓練復雜多層網絡的難度。在InceptionNet[2]中,每個分支采用自定義的卷積核濾波器,以有效融合更多信息及多種特征。受到InceptionNet[2]的啟發,SKNets[3]與ShuffleNet[4]都探索了多分支卷積神經網絡的優化。SKNets[3]通過自適應選擇機制實現了神經元自適應感受野的調整,提高了網絡適應性。相反,ShuffleNets[4]將通道分割和通道洗牌兩個操作合并為單一元素操作,在速度和準確性之間找到了平衡點,提高了模型效率及性能。
特征分組學習最初的動機是為了充分利用多個GPU資源。Deep Roots提出了卷積組(Convolutional Groups)的概念,以更有效地學習特征表示。MobileNets[5]和ShuffleNets[4]將每個通道視為一個組,對這些組內的空間關系進行建模來改進性能。CapsuleNets[6]將每個分組神經元建模為一個膠囊,其中活動膠囊中的神經元代表圖像中特定實體的各種屬性。而SGE[7]則在CapsuleNets的基礎上進行了擴展,將通道的維度分割為多個子特征,以便學習不同的語義信息。這些方法的共同特點在于利用分組結構來增強特征學習和表示能力,為模型提供更多的表達自由度。因此分組卷積在深度學習模型的性能及效率方面具有重要意義。
注意力機制的核心思想是將關注點集中在信息量豐富的特征表達上,抑制不太有用的表達。注意力機制主要包括通道注意力和空間注意力。通道注意力側重于捕獲通道之間的依賴關系,而空間注意力則關注像素之間的關系。它們通過不同的聚合策略、轉換方法及強化函數,從所有位置聚合相同的特征以增強原始特征。CBAM[8]嘗試同時處理空間和通道信息,雖然將它們融合可能會在性能上獲得更好的結果,但增加了計算成本。ECA-Net[9]通過使用1D卷積來簡化通道權重計算,以改進SE[10]模塊的性能。SGE[7]采用了一種分組形式,將輸入沿通道維度劃分為子特征,在每個子特征上應用空間注意力。但這些方法尚未充分利用空間注意力及通道注意力之間的相關性,因此在效率方面存在一定程度的不足。
為了有效克服以上缺陷,引入STA模塊,如圖1所示。該模塊將輸入的特征映射分割成多個子組,將通道注意力和空間注意力整合到每個組的一個塊中。對所有子特征進行聚合,采用信道洗牌算子來促進不同子特征之間的信息傳遞。

圖1 STA 模塊Fig.1 STA module

圖2 網絡結構Fig.2 Network structure

圖3 注冊登錄界面Fig.3 Interface of registration login

圖4 PCB瑕疵檢測結果界面Fig.4 Interface of PCB defect detection results
對于給定的特征映射X∈C×H×W,其中C、H、W分別表示通道數、空間高度及寬度,SAT沿通道維度將X劃分為G組,即X=[X1,…,XG],其中Xk∈C/G×H×W,每個子特征Xk在訓練過程中逐漸捕獲一個特定的語義響應。Xk會被分為兩個分支,沿著通道維度劃分,兩個子特征表示為Xk1,Xk2∈C/2G×H×W,分別實現通道注意力開采通道間的依賴和捕獲特征之間的空間依賴,生成空間注意力圖,這樣就同時完成了語義和位置信息的注意。通道注意力考慮到輕量化設計需求,采用最簡單的GAP+Scale+Sigmoid的單層變換,公式如下:
(1)
(2)
空間注意力對輸入特征圖進行GroupNorm,通過一個變換Fc(·)來增強輸入的表示,公式如下:
(3)

基于目標檢測的印刷電路板瑕疵檢測實驗是在百度PaddlePaddle深度學習框架上完成的,表1描述了實驗環境的配置。

表1 實驗環境配置Tab.1 Experimental environment configuration

表2 訓練模型的評估結果Tab.2 Evaluation results of training model
PCB瑕疵數據集包括訓練集6975張圖片、驗證集1989張圖片、測試集997張圖片,共計9961張圖片。該數據集涵蓋了漏孔、鼠牙洞、開路、短路、毛刺、雜銅6種,在缺陷處均添加標記框。為了提高模型的準確性,采用多種數據擴充策略,包括翻轉、旋轉、縮放及歸一化處理,將輸入的張量尺寸裁剪為224×224。模型通過隨機梯度下降算法進行優化,優化器使用SGD,SGD的權值衰減為1e-4,Momentum為0.9,在12個epochs內每個GPU的批量大小為12。學習率設置為0.2,在100個epochs內采用CosineAnnealingDecay對學習率進行調整。
對YOLOx網絡的Backbone進行優化。其中,STA Attention是一種輕量高效的注意力模塊,它將輸入特征圖按通道分組,對每個分組實施空間及通道注意力機制,從而高效地融合了不同的注意力模塊,增強了空間及通道注意力之間的相關性。
YOLOx采用了Focus網絡結構,這是YOLOv5中引入的一項創新內容。鑒于YOLOv4和YOLOv5可能在錨點管道的優化上過于偏重,YOLOx選擇以YOLOv3-Darknet53[11]作為基線,在此基礎上進行改進。與之前的YOLO版本相似,YOLOx可以分為3個主要部分,即CSPDarknet、FPN和Yolo Head。CSPDarknet充當YOLOx的主干特征提取網絡,FPN則作為YOLOx的增強特征提取網絡,而Yolo Head則負責分類和回歸任務。因此整個YOLOx網絡的任務可以概括為以下3個步驟:特征提取、特征增強及物體分類與回歸分析。STA的嵌入使得YOLOx在目標檢測領域表現卓越,為物體識別任務提供了更強大的性能。
為了評估提出的STA模塊性能,在YOLOx網絡結構上進行了PCB瑕疵數據集的訓練及驗證。在相應的實驗部分引入了CBAM網絡進行對比研究。
實驗結果表明,提出的網絡結構在增加了些許參數及計算復雜度的情況下大幅提高了mAP0.5和mAP0.75的準確率,取得了更出色的PCB瑕疵目標檢測識別效果。
采用PySide2開發了一個智能PCB板缺陷檢測系統,主要用于智能化檢測印刷電路板(PCB)的缺陷。系統包括登錄注冊功能,可進行用戶管理。通過使用相機捕獲的PCB圖像,基于計算機視覺識別常見的缺陷類型,包括漏孔、鼠牙洞、毛刺等,在圖像上標記出這些缺陷并輸出對應的類別信息,以協助實現自動化的PCB質量檢測。該系統支持實時監測攝像頭流以統計流水線上的PCB產品,檢測其缺陷。系統提供結果記錄、展示及保存功能,以滿足用戶需求。