








摘" 要:為了解決印刷電路板表面小目標缺陷檢測精度較低與檢測效率不高的問題,文章提出了基于改進YOLOv8的印刷電路板缺陷檢測方法。在YOLOv8模型主干網絡中使用簡單空間金字塔池化融合模塊,采用修正的線性單元激活函數,有效地提升了檢測效率;使用改進的瓶頸注意力模塊,利用通道注意力分支與空間注意力分支,使模型具有較強的表征能力獲取特征信息,提升了檢測精度;對損失函數進行了改進,構建了WIoU損失函數,降低了錨框與目標框重合時幾何因素的影響。在印刷電路板電路板瑕疵數據集上,網絡模型的檢測精度mAP@0.5值達到了90.2%,相比原網絡模型提高了5.7%,對印刷電路板缺陷檢測具有重要的意義。
關鍵詞:YOLOv8;印刷電路板;缺陷檢測
中圖分類號:TP391.4;TP183 文獻標識碼:A 文章編號:2096-4706(2024)24-0026-05
Research on Defect Detection Method of Printed Circuit Board Based on Improved Yolov8
JIN Qiangshan, FENG Guang, TIAN Jiya, ZHANG Yichuan
(Xinjiang Institute of Technology, Aksu" 843100, China)
Abstract: In order to solve the problem of low detection accuracy and low detection efficiency of small target defects on the surface of the Printed Circuit Board, this paper proposes the Printed Circuit Board defect detection method based on improved YOLOv8. The Simplified Spatial Pyramid Pooling Fast module is used in the YOLOv8 model backbone network, and the Rectified Linear Unit activation function is used to effectively improve the detection efficiency. Using the improved Bottleneck Attention Module, the channel attention branch and the spatial attention branch are used to make the model have a strong representation ability to obtain feature information and improve the detection accuracy. The loss function is improved, and the WIoU loss function is constructed to reduce the influence of geometric factors when the anchor box coincides with the target box. On the defect data set of Printed Circuit Board, the detection accuracy mAP@0.5 value of the network model reaches 90.2%, which is 5.7% higher than that of the original network model, which is of great significance to the defect detection of Printed Circuit Board.
Keywords: YOLOv8; Printed Circuit Board; defect detection
0" 引" 言
印刷電路板(Printed Circuit Board, PCB)是電子元器件之間實現電氣連接的基礎,其發展水平體現了國家或地區電子信息產業發展的技術水準。然而,在印刷電路板生產過程中,存在漏孔、缺口、短路、開路、余銅、毛刺等缺陷,及時有效地檢測出不合格產品,對于保障電子設備的安全性至關重要。常見的印刷電路板檢測方法包括人工目視主觀判定法、儀器線上檢測法和視覺檢測技術。但是,人工目視主觀盤點法存在準確率低、人力資本高、缺陷檢測不連續等問題;儀器線上檢測法面臨測試夾具成本高、使用難度大、編程與調試時間長等問題。因此,研究與應用目標檢測算法,快速、高效、準確地檢測印刷電路板缺陷,具有重要的現實意義。
基于深度學習的缺陷檢測算法主要是利用目標檢測算法,完成對印刷電路板的缺陷檢測,從而實現對缺陷的分類與定位。深度學習缺陷檢測算法在當前計算機視覺領域中被廣泛應用,主要分為兩大類:雙階段目標檢測算法與單階段目標檢測算法。雙階段目標檢測算法的核心思想是先形成一系列候選目標區域,然后對目標區域進行特征提取和分類。在雙階段目標檢測算法的發展過程中,Girshick等人[1]于2014年提出了R-CNN算法,該算法在目標檢測任務中取得了顯著的性能提升,但其訓練和推理速度較慢,且需要大量的存儲空間。Ren等人[2]提出了Faster R-CNN算法,引入了區域生成網絡(Region Proposal Network, RPN),該網絡能夠直接在特征圖上生成候選區域,從而實現了端到端的訓練,進一步提高了目標檢測的速度。隨著深度學習技術的飛速發展,Faster R-CNN作為雙階段目標檢測算法的代表,雖然顯著提升了缺陷檢測的精度,但同時也面臨著網絡復雜度、候選框數量以及分類與回歸子網絡復雜度等方面的挑戰。這些挑戰導致了模型計算量的不斷增加,使得在實際應用中需要更高的計算資源和更長的處理時間。單階段目標檢測算法簡化了檢測流程,將候選區域生成與目標分類定位整合到一個階段,從而大大提高了檢測速度。在單階段目標檢測算法中,Redmon等人[3]于2016年首次提出了YOLO算法。這一算法顛覆了傳統目標檢測的思路,將復雜的檢測任務簡化為一個回歸問題。通過單個神經網絡,YOLO能夠同時完成候選區域的生成、目標的分類以及精確的定位,實現了實時且高效的目標檢測,為深度學習在缺陷檢測領域的應用開辟了新的道路。SSD(Single Shot MultiBox Detector)是單階段目標檢測算法中的代表性工作。Liu等人[4]于2016年提出了SSD算法,該算法采用了多尺度的特征圖進行預測,能夠同時檢測不同尺度的目標。SSD結合了YOLO的高速度和Faster R-CNN的多尺度檢測優勢,在保持實時性的同時,實現了較高的檢測精度。
目前,印刷電路板缺陷檢測主要存在以下難點:
1)印刷電路板缺陷目標較小,缺陷相互疊加特征難提取,導致小目標缺陷檢測精度較低。
2)缺陷檢測網絡模型較為復雜,輕量化程度較低,檢測速度慢。
為了解決以上問題,本文以YOLOv8作為基準模型.首先,使用簡單空間金字塔池化融合模塊(SimSPPF),替換了YOLOv8中原有的空間金字塔池化融合模塊(SPPF),有效降低了計算復雜度和處理時間,提升了印刷電路板缺陷檢測的實時性。其次,改進了瓶頸注意力模塊,通過通道注意力分支和空間注意力分支,獲得了更強的特征表征能力,有效關注重要信息,屏蔽不重要信息,提升了印刷電路板缺陷的檢測精度。
1" YOLOv8算法結構與工作原理
YOLOv8[5]算法模型主要包括主干(Backbone)、頸部(Neck)、頭部(Head)三部分,如圖1所示。
Backbone:在YOLOv7[6]中C3模塊和ELAN概念的基礎上,YOLOv8引入了C2f模塊,使模型能夠獲得更加豐富的梯度流信息。C2f模塊由2個ConvModule和n個DarknetBottleNeck通過Split和Concat連接組成。此部分還引入了空間金字塔池化(Spatial Pyramid Pooling Fast, SPPF)的快速模塊,以提高模型的推理速度,使模型具有更好的學習能力和更短的推理時間。
Neck:主要思想是采用特征金字塔網絡(FPN)[7]和路徑聚合網絡(PAN)[8]架構,增強了模型的特征融合能力。FPN從上到下進行上采樣,目的是增加底部特征圖中的特征信息;PAN則從下到上進行采樣,以獲得更多的頂部特征圖信息。上層由于額外的網絡層而獲取更多信息,而下層由于較少的卷積層而保留位置信息。這種使用上采樣和下采樣技術將高級和低級特征圖結合起來,促進了語義和定位特征的傳輸。通過這種方法,網絡能夠更好地融合不同尺度物體的特征,從而增強其對不同尺度物體的檢測性能。
Head:檢測頭遵循分類分離的方法,主要涉及損失計算和目標檢測過濾框。損失計算過程的任務是確定正負樣本分配,而正樣本的選擇基于分類和回歸分數的加權組合。分類分支利用二元交叉熵(BCE)損失,而回歸分支則利用分布焦點損失(DFL)[9]和CIoU損失函數。預測框使用了解耦頭[10],它能夠同時預測分類分數和回歸坐標。分類分數由二維矩陣表示每個像素中是否存在對象?;貧w坐標則用四維矩陣表示物體中心距離每個像素的偏差。最后,采用分類分數和回歸坐標計算任務對齊度,即將分類分數與IoU值相結合,以提升精確度。
2" 改進的YOLOv8目標檢測算法
2.1" 空間金字塔池化優化
為了提升印刷電路板缺陷檢測的實時性,本文引入了速度更快的簡單空間金字塔池化融合模塊(SimSPPF),以替換YOLOv8模型中原有的SPPF模塊。SimSPPF模塊最初在YOLOv6[11]中提出,能夠有效降低計算復雜度和縮短處理時間。SimSPPF使用了三個5×5的最大池化層來處理輸入數據,并生成固定大小的特征圖。特征圖在深度學習中是非常重要的,因為它們能夠增強模型的感受野,并改善特征的表示能力。值得注意的是,SimSPPF采用修正線性單元激活函數(ReLU),如式(1)所示,而SPPF模塊則使用平移線性單元激活函數(SiLU),如式(2)所示,激活函數在神經網絡中扮演著關鍵角色,決定了神經元如何根據輸入數據來更新其輸出。
(1)
(2)
總體來說,ReLU函數相較于SiLU函數在計算效率和梯度傳遞方面展現出明顯優勢。具體而言,SiLU函數中的指數計算增加了計算復雜性,而ReLU函數則通過其簡潔的非線性特性有效解決了梯度消失的問題,并加快了收斂速度,SimSPPF的具體結構如圖2所示。
2.2" 瓶頸注意力模塊
針對印刷電路板表面缺陷較小、疊加、難提取的問題,我們改進了瓶頸注意力模塊,有效關注重要的信息,屏蔽不重要的信息,從而獲得更強的表征能力,提升網絡對印刷電路板各類缺陷的精準檢測能力。
瓶頸注意力模塊(Bottleneck Attention Module, BAM)主要由通道注意力分支(Channel attention branch)和空間注意力分支(Spatial attention branch)兩部分組成,如圖3所示。根據文獻[12]的啟示,我們對空間注意力分支和兩個分支融合進行了改進,增加了空間注意力分支3×3卷積的層數,擴張了卷積,使其具備更大的感受野。兩個分支注意力采用逐元素求和的方式,之后利用Sigmoid函數最終形成3D注意力圖。
通道注意力分支實現了對每個通道特定特征信息的有效聚合,對通道特征進行全局平均池化并生成通道向量FC∈RC×1×1,然后利用多層感知器MLP對通道向量估算通道注意力,最后添加批歸一化BN處理,調整空間分支輸出的尺度。
空間注意力分支主要用來強調或抑制不同位置的特征。使用1×1卷積將特征投影降維,各通道使用相同的減速比對通道分支實現特征壓縮和整合,縮減后再利用三個3×3卷積對上下文信息進行有效整合,最后利用1×1卷積將特征再次簡化到R1×H×W的空間注意力圖中。
2.3" 改進損失函數
針對訓練數據中由于距離和長寬比等幾何因素,不可避免產生一些低質量的數據,從而降低模型泛化能力。受文獻[13]啟發,對損失函數進行了改進,將錨框與目標框重合時降低了幾何因素的影響,構建了WIoU,如式(3)和式(4)所示。
(3)
(4)
當∈[1,e)時,將顯著放大普通錨框的。當∈[0,1)時,錨框與目標框很好地重合,將顯著降低錨框及其對中心點之間的距離。其中,Wg、Hg是最小封閉框的尺寸,為了防止產生阻礙收斂的梯度,對Wg、Hg在計算過程中實現分離。
3" 實驗結果及分析
3.1" 數據集和實驗設置
實驗使用的數據集來源于北京大學智能機器人開發實驗室,公共合成的印刷電路板電路板瑕疵數據集,該數據集共有1 386張圖像,包含漏孔、缺口、短路、開路、余銅、毛刺6種缺陷類別,每張圖像的平均尺寸為2 777×2 138。由于數據集圖像數量較少,采用數據增廣技術對數據集進行處理,處理后圖像大小為600×600,訓練集圖像9 930張,每類圖像1 655張;測試集圖像1 254張,驗證集圖像1 254張,每類圖像209張。
3.2" 評價標準
本文采用每秒鐘處理幀數(Frame Per Second, FPS)、精確度(Precision, P)、召回率(Recall, R)、平均精度(Average Precision, AP)以及平均精度均值(mean Average Precision, mAP)作為模型評價指標。其中,FPS指每秒鐘檢測圖像的幀數,是衡量模型速度的指標;如式(5)所示,精確度(P)又稱查準率,指預測結果中實際為正樣本數量占正例的樣本的比例,TP為真正例,FP為假正例;如式(6)所示,召回率(R)又稱查全率,指預測結果中為正樣本中實際正樣本數量占全體樣本中正樣本的比例;平均精度AP指由精確度和召回率繪制的P-R曲線下所占的面積,用于衡量目標檢測的性能;mAP指對所有類別AP值求平均值。
(5)
(6)
3.3" 實驗平臺及參數
實驗采用的硬件設備為20核CPU,顯卡為NVIDIA RTX 4090 24 GB,內存為80 GB,工作空間為50 GB。本研究的軟件環境基于Ubuntu 18.04操作系統,并配備了CUDA 11.8以支持高性能計算。為了構建網絡模型,選用了PyTorch框架,并確保其與Python 3.8版本以及PyTorch 1.12.0版本兼容。在參數配置方面,本研究參照了袁夢等人[14]的研究,對超參數進行了細致的調整:將每個批次的樣本數(batch size)設置為16,以確保在訓練過程中的計算效率和內存使用達到平衡;將整個訓練周期(epoch)設定為200次,以充分優化模型性能。此外,初始學習率被設置為0.01,隨著訓練的進行,學習率將逐漸降低至0.000 1,以實現更精細的模型調整。
3.4" 消融實驗
為了對比分析三種不同方案在提升YOLOv8網絡模型性能方面的實際效果及其有效性,在保持軟硬件配置和參數設置完全一致的基礎上,設計并實施了一系列對比實驗。在這些實驗中,分別對比分析了原始YOLOv8網絡模型與兩種或三種改進方案后的表現。通過對比實驗結果,能夠清晰地觀察到不同方案對模型優化效果的貢獻,從而更全面地驗證其改進效果與有效性。實驗結果如表1所示。
消融實驗結果分析:
1)第一組實驗為原始YOLOv8模型檢測結果,實驗結果將作為后四組實驗的基準對照,mAP@0.5值為84.5%。
2)第二組實驗在YOLOv8的基礎上,添加了SimSPPF模塊和WIoU損失函數兩種改進方法,mAP@0.5值為86.7%,與第一組相比,精確度和召回率有所提升,計算量和參數量提升不大。
3)第三組實驗在YOLOv8的基礎上,添加了瓶頸注意力模塊和WIoU損失函數兩種改進方法,mAP@0.5值為85.1%,與第二組相比,精確度有所降低。
4)第四組實驗使用了SimSPPF模塊和瓶頸注意力模塊,mAP@0.5值為89.5%,與前幾組相比,精確度和召回率有顯著提升,計算量和參數量提升不大。
5)第五組實驗使用了SimSPPF模塊、瓶頸注意力模塊和WIoU損失函數,mAP@0.5值、精確率及召回率相較于其他四組均較高,對于印刷電路板缺陷的檢測效果有了大幅度提升。
3.5" 對比實驗
為了深入分析改進后的方法在印刷電路板缺陷檢測和識別方面的性能表現,本研究特意設置了一系列對比實驗,將改進后的方法作為獨立對象進行評測,以更精確地評估所提方法對于提升缺陷檢測和識別效果的實際貢獻。實驗結果如表2所示。
根據實驗結果對比分析,本研究提出了SimSPPF模塊、瓶頸注意力機制、WIoU損失函數3種改進方法。在精確率方面,YOLOv8+BAM與其他改進方法相比,表現效果較好;在召回率方面,3種改進方法與原始YOLOv8方法相比,表現較好,但是差異不顯著;在平均精度均值方面,3種改進方法與原始YOLOv8方法相比,表現略好,但是差異不顯著。
為了驗證改進的YOLOv8模型的檢測效果,本研究對印刷電路板缺陷數據集隨機抽取了6類缺陷數據進行檢測,分別采用YOLOv8+SimSPPF、YOLOv8+BAM、YOLOv8+WIoU與本文模型進行檢測結果對比,具體結果分析如圖4所示。對于漏洞、缺口兩種缺陷類型,模型YOLOv8+WIoU與本文模型的檢測精度相對較高,損失函數WIoU對比分析過程中效果較好。對于短路、開路、余銅、毛刺四種缺陷類型,4種模型均未出現漏檢的情況,相比之下,本文模型在平均檢測精度方面,略高于其他模型。
4" 結" 論
本文采用YOLOv8網絡架構,提出了一種能夠實時檢測小目標物體的模型。使用簡單空間金字塔池化融合模塊,有效降低了計算復雜度和處理時間,提升了檢測效率。為了進一步加強模型的特征表征能力,改進了瓶頸注意力模塊,利用通道注意力分支和空間注意力分支,使模型更好地關注小目標物體,有效檢測小目標缺陷。本研究在檢測精度和檢測實效方面均有較好的表現,對實際缺陷檢測具有重要意義。
參考文獻:
[1] GIRSHICK R,DONAHUE J,DARRELL T,et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation [C]//2014 IEEE Conference on Computer Vision and Pattern Recognition.Columbus:IEEE,2014:580-587.
[2] REN Q S,HE K M,GIRSHICK R,et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks [J]//IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149
[3] REDMON J,DIVVALA S,GIRSHICK R,et al. You Only Look Once: Unified, Real-Time Object Detection [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Las Vegas:IEEE,2016:779-788.
[4] LIU W,ANGUELOV D,ERHAN D,et al. SSD: Single Shot MultiBox Detector [C]//Computer Vision-ECCV 2016.Amsterdam:Springer,2015:21-37.
[5] GitHub. ultralytics/ultralytics [EB/OL].[2024-05-16].https://github.com/ultralytics/ultralytics.
[6] WANG C Y,BOCHKOVSKIY A,LIAO H Y M. YOLOv7: Trainable Bag-of-Freebies Sets New State-of-the-Art for Real-Time Object Detectors [C]//2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).Vancouver:IEEE,2023:7464-7475.
[7] LIN T Y,DOLLáR PIOTR,GIRSHICK ROSS,et al. Feature Pyramid Networks for Object Detection [C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Honolulu:IEEE,2017:936-944.
[8] LIU S,QI L,SHI J P,et al. Path Aggregation Network for Instance Segmentation [C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City:IEEE,2018:8759-8768.
[9] HOSSAIN M S,BETTS J M,PAPLINSKI A P. Dual Focal Loss to address class imbalance in semantic segmentation [J].Neurocomputing,2021,462:69-87.
[10] GE Z,LIU S T,WANG F,et al. YOLOX: Exceeding YOLO Series in 2021 [J/OL].arXiv:2107.0843 [cs.CV].(2021-07-18).https://arxiv.org/abs/2107.08430.
[11] LI C Y,LI L L,JIANG H L,et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications [J/OL].arXiv:2209.02976 [cs.CV].(2021-09-01).https://arxiv.org/abs/2209.02976.
[12] PARK J,WOO S,LEE J Y,et al. BAM: Bottleneck Attention Module [J/OL].arXiv:1807.06514 [cs.CV].(2018-07-17).https://arxiv.org/abs/1807.06514.
[13] TONG Z J,CHEN Y H,XU Z W,et al. Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism [J/OL].arXiv:2301.10051 [cs.CV].(2023-01-24).https://arxiv.org/abs/2301.10051.
[14] 袁夢,蘇工兵,王晶,等.基于 BCGS-YOLOv7 tiny 的零件表面微小缺陷檢測 [J].制造技術與機床,2023(10):137-144.
作者簡介:金強山(1990—),男,漢族,甘肅永昌人,副教授,碩士,研究方向:數字圖像修復。