










摘 "要: 針對當前印刷電路板(PCB)小目標缺陷檢測精度低,現有檢測模型龐大,在邊緣端設備部署難的問題,提出一種基于改進YOLOv8n的PCB缺陷輕量化檢測模型YOLOv8?t。首先使用FasterNet Block和Slim?Neck結構對Bockbone和Neck進行結構優化,減少冗余計算和內存訪問,解決特征冗余導致的檢測精度低的問題;其次使用自研檢測頭Detect_G提高模型檢測的速度和精度;最后引入基于跨空間多尺度的注意力(EMA)機制提高對小目標檢測缺陷的關注度。利用北京大學實驗室公開發布的PCB缺陷數據集進行實驗。實驗結果表明,提出的YOLOv8?t的平均精度均值為95.3%,模型權重大小為4.0 MB,參數量為1.8×106,計算量為3.8 GFLOPs。與原算法YOLOv8n相比,mAP@0.5上升了2.1%,模型權重大小減少了36.5%,參數量減少了36.7%,計算量減少了51.2%。改進算法提高了檢測精度,在模型輕量化的方向上取得了好的效果,更適合邊緣端部署。
關鍵詞: YOLOv8; PCB; 輕量化; 缺陷檢測; 注意力機制; Detect_G
中圖分類號: TN919?34; TP391 " " " " " " " " " "文獻標識碼: A " " " " " " " " " " 文章編號: 1004?373X(2024)15?0115?07
Lightweight PCB defect detection algorithm for improved YOLOv8n
ZHANG Shuqing, MENG Hao, GE Chao
(College of Electrical Engineering, North China University of Science and Technology, Tangshan 063210, China)
Abstract: In view of the low accuracy of small object defect detection in printed circuit boards (PCBs) and the fact that the existing detection models are large and difficult to be deployed in edge equipment, a lightweight PCB defect detection model YOLOv8?t is proposed based on the improved YOLOv8n. The structures of the FasterNet Block and the Slim?Neck are used to optimize the structures of the Bockbone and the Neck to reduce the redundant calculations and memory accesses, so as to cope with the low detection accuracy caused by feature redundancy. The self?developed detection head Detect_G is used to improve the speed and accuracy of model detection. The attention mechanism EMA (efficient mutli?scale attention) based on cross?space multi?scale is introduced to improve the attention to the defect detection of small objects. Experiments were conducted with the publicly released PCB defect dataset of a laboratory of Peking University. The experimental results show that the proposed YOLOv8?t has a mean average precision (mAP) of 95.3%, a model weight size of 4.0 MB, a parameter quantity of 1.8×106, and a calculation amount of 3.8 GFLOPs. In comparison with those of the original algorithm YOLOv8n, the mAP@0.5 of the YOLOv8?t rises by 2.1%, its model weight size is reduced by 36.5%, its parameter quantity is reduced by 36.7%, and its calculation amount is reduced by 51.2%. The improved algorithm improves the detection accuracy and achieves good results in the model lightweight, so it is more suitable for the deployment on the edge.
Keywords: YOLOv8; PCB; lightweight; defect detection; attention mechanism; Detect_G
0 "引 "言
印刷電路板(Printed Circuit Board, PCB)是電子設備的基本構成單元[1],由于制造工藝的復雜性和環境因素的干擾,PCB在制造過程中容易出現漏焊、短路等缺陷。作為電子設備的核心組成部分,其質量和可靠性直接影響著整個設備的性能和穩定性[2]。缺陷的存在使得產品性能下降,造成嚴重的經濟損失和品質影響。因此,PCB缺陷檢測是十分重要的[3?4]。
PCB檢測大致可以分為三種方法:人工檢測法、電器檢測法和光學檢測法[5]。人工檢測法由于工作人員的視覺疲勞會產生誤檢和漏檢;電氣檢測法是一種接觸式檢測方法,容易對PCB造成二次傷害;光學檢測法采用非接觸式檢測方法,有效避免對PCB造成二次傷害,同時提高檢測效率,但仍存在過篩情況,需要人工二次核查[6]。
隨著深度學習的發展,已有學者將深度學習應用到PCB缺陷檢測。如文獻[7]提出了一種自動缺陷驗證系統(Auto?VRS),該系統由快速電路比較和基于深度神經網絡的缺陷分類兩個子系統組成,能很好地識別缺陷,顯著降低了誤報率和逃逸率。文獻[8]提出了一種基于深度學習的PCB微小缺陷檢測網絡(UF?Net)。通過上采樣及跳層連接的方式實現多尺度特征融合,利用RPN網絡生成ROI,通過ROI?Pooling層提取ROI特征,并經過兩個全連接層對ROI區域進行分類和回歸,從而實現缺陷檢測。文獻[9]針對YOLOv4特征提取網絡層數多、參數量大,影響PCB小目標缺陷檢測性能及輕量移動端的部署,引用MobileNetV3網絡代替CSPDarknet53網絡,檢測mAP值和檢測速度均略有提升,模型權重大小減小到53 MB。文獻[10]采用改進的聚類算法生成適合本文PCB缺陷數據集的錨盒,采用Swin Transformer作為特征提取網絡,在特征檢測網絡中加入了注意力機制,有效地建立圖像特征之間的依賴關系。文獻[11]通過利用k?means++聚類算法重新調整錨框和添加殘差模塊,來提高對檢測特征的提取能力,以及原YOLOv3算法的檢測精度,但檢測速度稍有下降。文獻[12]以YOLOv5算法為基礎,在原網絡中添加注意力機制、P2檢測頭、Transformer模塊等,以犧牲部分檢測速度的方式提高了檢測精度。文獻[13]提出了基于深度學習的實時非接觸檢測算法,采用Darknet框架改進YOLOv4算法,提高了檢測精度,但是改進網絡需要大量的時間成本訓練并且對設備要求較高。
利用深度學習對PCB進行缺陷檢測已成為主流趨勢,基于深度學習的目標檢測對于PCB小目標缺陷檢測效果不佳,且算法參數量大,對設備算力要求高,而邊緣端設備的算力有限,硬件不能滿足算力要求。因此,本文提出了YOLOv8?t的PCB缺陷檢測算法,主要貢獻有:
1) 改進主干網絡中C2f模塊,融合FasterNet網絡中的部分卷積,解決了原模型學習特征冗余、實際檢測效果差的問題;頸部替換為Slim?Neck結構,解決了檢測模型龐大、部署難的問題。
2) 設計一種新的輕量級高精度檢測頭Detect_G,提高了檢測精度,并降低了原YOLOv8n解耦頭因標準卷積帶來的計算復雜度。
3) 融合EMA注意力機制,并通過實驗確定了注意力模塊的最佳位置,來改善模型對小目標不敏感的問題。
1 "YOLOv8網絡介紹
YOLO算法作為一種經典的單階段檢測算法之一,已經多次升級,如今已經發展到了YOLOv8版本[14?16]。YOLOv8系列算法根據網絡的深度與特征圖的寬度分為5個模型,分別為YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l和YOLOv8x。相比其他模型,YOLOv8n算法在保持較快速度的同時,提供適用于邊緣設備的準確度。因此,采用YOLOv8n作為基礎模型框架。
YOLOv8是在YOLOv5算法的結構基礎上,通過結合一系列先進算法而得到的更為優秀的算法。在Backbone部分,YOLOv8通過使用C2f模塊替換YOLOv5中C3模塊,并對不同尺度的模型調整了不同的通道數。在Head部分YOLOv8把Anchor?Based改成了Anchor?Free,將分類和檢測頭分離,并將檢測頭換成解耦頭。在損失函數部分,YOLOv8采取了正負樣本匹配方式。
2 "YOLOv8?t算法
YOLOv8?t是基于YOLOv8n的改進模型,解決了現有算法參數量和計算量龐大的問題,提高了PCB小目標缺陷檢測的精度,網絡結構如圖1所示。YOLOv8?t對原模型的主干網絡、頸部、檢測頭部進行改進:將C2f_Faster模塊引入到主干網絡中;將Neck部分替換為Slim?Neck結構;設計出一種新的輕量級解耦頭Detect?G;添加EMA注意力機制,并確定注意力模塊的最佳位置。
2.1 "主干網絡的改進
YOLOv8n的主干網絡部分采用可以提取到更為豐富特征信息的C2f模塊。經實驗發現,目前的PCB缺陷數據集提供的缺陷樣本特征簡單,C2f模塊提供了大量的冗余特征導致訓練模型過擬合,模型訓練效果好、實際檢測效果不佳,且C2f中標準卷積計算量大,需要頻繁的內存訪問,導致模型的檢測速度慢,模型部署難,YOLOv8n的C2f模塊并不適用于PCB的缺陷檢測。
基于此,選取FasterNet[17]的輕量化模塊部分卷積對C2f進行改進。輕量化網絡模型FasterNet使用了部分卷積(Partial Convolution, PConv),只對輸入的部分做卷積操作,通過減少冗余計算和存儲訪問,更有效地提取空間特征,很好地解決特征冗余而導致的模型過擬合問題和計算量大的問題。PConv的計算量為[H×W×k2×C2x],其中,[H]為特征圖的高度,[W]為特征圖的寬度,[k]為卷積核的個數,[Cx]為部分卷積的輸入通道數。當[Cx]取整體輸入通道數的[14]時,計算量則減少為標準卷積的[116]。
YOLOv8?t將C2fBottleneck中標準卷積替換成部分卷積,再利用一維卷積來補缺因部分卷積代替標準卷積后帶來的空間特征信息流失,增強空間信息融合,形成C2f_Faster結構,在減少計算量的同時,解決了模型過擬合的問題。C2f_Faster結構如圖2所示。
2.2 "頸部的改進
目標特征在Neck部分進行特征融合時,空間特征逐級向通道信息傳遞,不斷向下傳輸。隨著特征圖的高度和寬度不斷被壓縮、通道數量的不斷擴展,會造成部分語義信息缺失。YOLOv8n使用標準卷積保留豐富的語義信息,增大計算量,提高了模型邊緣端部署的難度。
GSConv(Generalized?sparse Convolution)模塊在減少計算量的同時,以較低的時間復雜度盡可能地保留特征信息。GSConv首先將輸入特征做通道數減半標準卷積處理,將處理結果經過深度可分離卷積,然后將二者特征拼接、打亂,使得局部的特征信息在不同的通道上均勻地交換,增強非線性表達能力。
VoV?GSCSP是以GSConv和Conv組成的GS bottleneck模塊為基本單元,使用一次性聚合方法的跨級部分網絡模塊。VoV?GSCSP模塊降低了計算和網絡結構的復雜性,保持了足夠的精度,是一種具有高精度的輕量級模塊。VoV?GSCSP的具體結構如圖3所示。本文將YOLOv8n中Neck部分改進為Slim?Neck結構,實現了YOLOv8?t頸部的輕量化,提高了檢測精度。
2.3 "輕量化解耦頭Detect?G
YOLOv8采用主流的解耦頭,將目標位置和類別信息分別提取出來,通過每個分支堆疊兩個標準卷積和一個1×1的卷積進行特征提取。但解耦頭的引入相較常規耦合頭帶來了巨大的參數量和計算量,YOLOv8n解耦頭的計算量、參數量分別為3.7 GFLOPs、0.9×106,占整個網絡模型計算量、參數量的45.1%和30%。
本文采用參數共享思想,利用組卷積(Group Convolution)設計出一種新的輕量化解耦頭Detect?G。首先將原耦合兩分支中的4個標準卷積合并成2個,然后用組卷積替換標準卷積,最后經過2個1×1的卷積將分類和檢測頭分離,具體結構如圖4所示。
經過實驗驗證Detect?G檢測頭計算量、參數量分別為0.63 GFLOPs、0.2×106。較原解耦頭下降了83%、78%。在維持原有精度的基礎上,大大加快了模型速度。
2.4 "添加注意力機制
EMA(Efficient Mutli?scale Attention)機制保留每個通道上的信息和減少計算開銷,將部分通道重構為批處理維度,并將通道維度分組為多個子特征,使空間語義特征在每個特征組內均勻分布。在YOLOv8n主干網絡上添加EMA機制,旨在解決主干網絡因輕量化改進而減少了通道和空間方面的特征信息的維度交互,使改進模型通過跨維交互進一步聚合并行分支的輸出特征,以捕獲像素級成對關系,達到檢測精度的提升。
EMA采用并行結構。首先對特征通道進行分組,然后經由三個分支。第一個分支是原特征圖;第二個分支是將分組后的特征圖分別在寬度和高度兩個維度做全局平均池化操作,再將兩個維度的特征拼接合并進行堆疊,之后經過Sigmoid函數與原有特征相乘來更新權重;第三個分支是利用3×3 Conv生成新的特征圖,而后將分支二重新分組后的特征圖和分支三生成的特征圖都通過平均池化操作和Softmax函數,生成新的特征,將兩分支的新特征信息和原特征信息交叉點乘后相加,來實現跨分支的信息交互,以擴大目標特征信息的權重。EMA機制的結構示意圖如圖5所示。
3 "實驗及結果分析
3.1 "實驗環境
實驗環境使用Linux Ubuntu操作系統,顯卡型號為NVIDIA GeForce RTX 3090,24 GB顯存,處理器為12 V CPU Intel[?] Xeon[?] Platinum 8255C CPU@2.50 GHz,深度學習框架為PyTorch 1.10.0,GPU加速庫為CUDA 11.3,編程語言為Python,解釋器為Python 3.9。訓練時,輸入圖像尺寸為640×640,每個模型訓練周期為200輪,Batch?size為32,使用SGD優化器,初始學習率為0.01,最終學習率為0.000 1。
3.2 "實驗數據集選擇與處理
實驗數據集采用北京大學人機交互開放實驗室發布的PCB缺陷數據集[18],該數據集共計1 396張圖片,包括六種缺陷:漏焊、鼠咬、開路、短路、毛刺、余銅。缺陷樣本有限,圖片總數以及各類別的圖片數量均無法滿足要求,且圖片均拍攝在實驗室的理想條件下。因此,使用數據增強擴充樣本數據來增加模型可學習的特征。對圖像進行降低圖像質量、亮度調節和添加噪聲處理等操作對數據集進行擴充,共計5 050張圖片,并按照7∶1∶2的比例將其劃分為訓練集、驗證集、測試集。后續實驗皆在該數據集上進行。圖6為將一張圖片經過數據增強后產生的一組圖片。
3.3 "評價指標
本文采用精確度[P](Precision)、召回率[R](Recall)、平均精度均值(mean Average Precision, mAP)、模型參數量(Params)、每秒十億次的浮點運算次數(GFLOPs)、模型權重大小等作為模型的評價指標。通常,Params和GFLOPs越小,表示模型所需的計算能力就越小,對硬件的性能要求就越低,在邊緣端設備中部署就越容易。
計算公式如下所示:
[P=TPTP+FP] (1)
[R=TPTP+FN] (2)
[AP=01PRdR] (3)
[mAP=i=1nAPin] (4)
式中:TP為缺陷檢測正確的個數;FP為缺陷檢測錯誤的個數;FN為缺陷未檢測出的個數;AP為平均精度;mAP為平均精度均值。精確度數值越大代表模型檢測越準確,召回率數值越大代表模型漏檢率越低。
3.4 "EMA機制位置
通過實驗確定EMA模塊的位置:位置1為C2f_Faster_1和C2f_Faster_2模塊后;位置2為C2f_Faster_3和C2f_Faster_4模塊后;位置3為C2f_Faster_1和C2f_Faster_3模塊后;位置4為每個C2f_Faster模塊后;位置5為每個Contact模塊前。
mAP@0.5是指IoU(Intersection over Union)閾值為0.5時的平均精度均值。根據實驗結果最終選取位置1為最后的改進位置,mAP@0.5提升0.9%,EMA機制不同位置對比實驗數據如表1所示。
3.5 "消融實驗
為了驗證各項改進的有效性,采用消融實驗進行對比分析。消融實驗結果見表2。可以得出主干網絡、頸部、檢測頭和添加注意力機制改進,mAP@0.5提高了0.9%、1.2%、1.7%、2.1%;最終模型的參數量、計算量和模型權重大小相較原模型下降了36.7%、51.2%和36.5%。
對YOLOv8n算法和改進的YOLOv8?t算法進行模型檢測結果對比,選取部分圖片進行檢測結果展示。檢測效果如圖7所示。
3.6 "對比實驗
以Precision、Recall、mAP@0.5、Params、GFLOPs、Weight size作為評價指標,將本文算法與YOLOv3、YOLOv5s、YOLOv6、YOLOv7?tiny、YOLOv7、YOLOv8n算法在相同配置、相同參數、相同數據集進行對比實驗,實驗結果見表3。由實驗數據可得,YOLOv8?t算法與YOLOv3、YOLOv5s、YOLOv6、YOLOv7?tiny、YOLOv7、YOLOv8n相比,mAP@0.5分別提高了2.9%、2.6%、3.5%、11.6%、5.0%和2.1%,在參數量和計算量上均有大幅度降低。
實驗表明,YOLOv8?t算法在模型輕量化的同時,有效提高了模型檢測精度和檢測速度。
4 "結 "語
基于YOLOv8n的改進算法YOLOv8?t,首先利用FasterNet中PConv與C2f相結合的C2f_Faster對模型主干網絡進行“瘦身”;其次將模型頸部優化成精度高、輕量化的細頸結構;然后利用參數共享思想提出輕量級、高精度檢測頭;最后添加EMA機制,提高模型的檢測精度。
實驗結果表明,YOLOv8?t具有檢測精度更高,參數量、計算量和模型權重更小等優點。對邊緣端設備的硬件需求更低,為邊緣端設備部署提供了支撐。本文已經取得了一定進展,局限性在于原始數據量較少,未來的研究除擴充數據集之外,應將改進算法部署到邊緣端設備上進一步實驗。
注:本文通訊作者為孟昊。
參考文獻
[1] ADIBHATLA V A, CHIH H C, HSU C C, et al. Defect detection in printed circuit boards using you?only?look?once convolutional neural networks [J]. Electronics, 2020, 9(9): 1547.
[2] 安維,曾福林.通信產品PCB基礎知識及其應用[M].北京:電子工業出版社,2021.
[3] GOTO K, KATO K, SAITO T, et al. Adversarial autoencoder for detecting anomalies in soldered joints on printed circuit boards [J]. Journal of electronic imaging, 2020, 29(4): 041013.
[4] ZHANG H, JIANG L X, LI C Q. CS?ResNet: Cost?sensitive residual convolutional neural network for PCB cosmetic defect detection [J]. Expert systems with applications, 2021, 185: 115673.
[5] 鄧璘.基于機器視覺的PCB表面裝配缺陷檢測方法研究[D].武漢:武漢理工大學,2019.
[6] MOGANTI M, ERCAL F, DAGLI C H, et al. Automatic PCB inspection algorithms: A survey [J]. Computer vision and image understanding, 1996, 63(2): 287?313.
[7] DENG Y S, LUO A C, DAI M J. Building an automatic defect verification system using deep neural network for PCB defect classification [C]// 2018 4th International Conference on Frontiers of Signal Processing (ICFSP). New York: IEEE, 2018: 145?149.
[8] 胡珊珊,肖勇,王保帥,等.基于深度學習的PCB缺陷檢測研究[J].電測與儀表,2021,58(3):139?145.
[9] 伍濟鋼,成遠,邵俊,等.基于改進YOLOv4算法的PCB缺陷檢測研究[J].儀器儀表學報,2021,42(10):171?178.
[10] CHEN W, HUANG Z T, MU Q, et al. PCB defect detection method based on Transformer?YOLO [J]. IEEE access, 2022, 10: 129480?129489.
[11] 李聞,李小春,閆昊雷.基于改進YOLO v3的PCB缺陷檢測[J].電光與控制,2022,29(4):106?111.
[12] 楊永躍,夏遠超.PCB缺陷檢測深度學習算法的精度改進[J].電子測量與儀器學報,2023,37(5):11?19.
[13] 趙巖,孔祥偉,馬春斌,等.基于Darknet網絡和YOLO4的實時電路板故障檢測算法[J].計算機測量與控制,2023,31(6):101?108.
[14] REDMON J, FARHADI A. YOLOv3: An incremental improvement [EB/OL]. [2018?08?13]. http://arxiv.org/abs/1804.02767.
[15] BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: Optimal speed and accuracy of object detection [EB/OL]. [2020?04?28]. https://arxiv.org/abs/2004.10934.
[16] WANG C Y, BOCHKOVSKIY A, LIAO H Y M, et al. YOLOv7: Trainable bag?of?freebies sets new state?of?the?art for real?time object detectors [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2023: 7464?7475.
[17] CHAN K Y, YIU K F C, LAM H K, et al. Ball bonding inspections using a conjoint framework with machine learning and human judgement [J]. Applied soft computing, 2021, 102: 107115.
作者簡介:張淑卿(1978—),女,河北定州人,碩士,副教授,研究方向為深度學習。
孟 "昊(2000—),男,河北唐山人,碩士,研究方向為目標檢測。
葛 "超(1980—),男,河北石家莊人,博士,教授,研究方向為光伏發電系統控制。