王恒濤,張 上*,張朝陽,劉展威
(1.三峽大學 湖北省建筑質(zhì)量檢測裝備工程技術研究中心,湖北 宜昌 443002;2.三峽大學 計算機與信息學院,湖北 宜昌 443002;3.三峽大學 電氣與新能源學院,湖北 宜昌 443002)
印刷電路板(Printed Circuit Board,PCB)受限于當前的制造工藝與技術,在生產(chǎn)過程中可能會存在短路、斷路、毛刺、焊點缺焊、缺口和余銅等缺陷。在PCB缺陷檢測中面臨著如下難題:① PCB缺陷種類較多,并且缺陷的大小、形態(tài)復雜;② PCB出現(xiàn)缺陷的區(qū)域小,難以對其進行精確的捕捉;③ PCB背景單一,缺陷特征與非缺陷特征相似度高,難以對其進行分辨[1]。
傳統(tǒng)PCB缺陷檢測為人工檢測和電光學檢測。Kim等[2]通過小波變換進行圖像壓縮,節(jié)省PCB缺陷檢測所需的內(nèi)存和計算量。Gaidhane等[3]使用傳統(tǒng)機器學習算法進行PCB缺陷檢測。Annaby等[4]設計了一套低復雜度NNC的傳統(tǒng)機器視覺方案來解決缺陷檢測。Tsai等[5]使用傅里葉圖像重建方法進行小缺陷的檢測。Cho等[6]使用超聲激光發(fā)熱成像進行實時缺陷檢測。傳統(tǒng)檢測方法存在檢測效率低下和漏檢率高等缺點。隨著人工智能的發(fā)展,基于深度學習的缺陷檢測形成了一套無接觸的自動檢測方法,成為當下缺陷檢測的熱點,并且具有檢測適應能力強、泛化能力強等優(yōu)點?;谏疃葘W習的目標檢測算法分為2類:雙階段檢測算法和單階段檢測算法。雙階段檢測算法通過先進行候選區(qū)域提取目標建議框,再進行目標的分類與具體位置的預測,如Mask R-CNN[7],F(xiàn)ast R-CNN[8]和Faster R-CNN[9],具有檢測精度高、漏檢率低等優(yōu)點,但檢測速度慢、計算復雜,難以達到實時性要求。單階段檢測算法將候選區(qū)域的特征提取與預測框的定位融合在一起,直接進行目標類別的判斷和檢測框的定位,如YOLO[10],YOLO900[11],SSD[12],YOLOv3[13],YOLOv4[14]和YOLOv5,具有檢測速度快、計算量較少等優(yōu)點,能夠滿足實時檢測的需求。王永利等[15]使用卷積神經(jīng)網(wǎng)絡進行PCB缺陷檢測。何國忠等[16]使用改進版YOLOv4進行PCB缺陷檢測。蔣子敏等[17]使用輕量級網(wǎng)絡進行PCB芯片中文字符的識別。
當前,PCB缺陷檢測面臨著多種難題,因此,為了更好地對其進行缺陷檢測,本文貢獻如下:
① 實現(xiàn)四尺度檢測,提高深層語義與低層語義的信息融合,并且對預選框進行調(diào)整,提高模型小目標檢測能力。
② 對模型進行剪枝,使用FPGM算法對YOLOv5模型進行剪枝,降低模型的容量和計算量,提高檢測速度。
③ 使用聚類和遺傳學習算法對模型錨框進行調(diào)整,促進模型檢測效果,提高模型在訓練過程中的收斂速度。
④ 在模型中引入Coordinate Attention(CA)[18]注意力機制,部署于主干網(wǎng)絡,調(diào)整模型在空間和通道信息提取的方式。
YOLOv5是一種單階段檢測算法,一次性輸出預測框的位置和類別置信度,擁有極快的檢測速度和較高的檢測精度。
YOLOv5算法由4部分組成:第1部分為輸入層,主要實現(xiàn)數(shù)據(jù)訓練前預處理,主要功能有Mosaic數(shù)據(jù)增強、自適應錨框計算和自適應圖片縮放;第2部分為主干網(wǎng)絡(Backbone),主要實現(xiàn)目標特征的提取,由Focus結(jié)構和CSP結(jié)構組成;第3部分為頸部網(wǎng)絡(Neck),主要實現(xiàn)目標特征的收集,由FPN+PAN結(jié)構組成;第4部分為檢測層(Prediction),主要用于預測信息損失部分。
原始YOLOv5模型適用于COCO數(shù)據(jù)集,在檢測大目標時具有明顯的優(yōu)勢。而PCB缺陷的檢測目標大多為小目標,為此,需要在PCB缺陷目標檢測任務上對原始模型進行改進。
CA注意力機制將位置信息融合到通道信息中。CA在捕獲通道特征的同時,還進行方向和位置的信息捕捉。因此,CA注意力機制能更加精準地定位和識別圖像中的重要信息。CA注意力機制如圖1所示,由2部分組成。第1部分為坐標信息嵌入。圖像輸入注意力機制后,池化層沿著水平和垂直方向進行編碼,分別得到水平和垂直方向的特征圖。然后將特征圖進行拼接,利用1×1卷積函數(shù)得到中間特征圖。第2部分為坐標信息特征圖生成。沿著空間維度分解2個張量,分別沿水平和垂直方向進行卷積和激活函數(shù)處理,將2個方向的輸出進行融合。
圖1 CA注意力機制
使用CA注意力機制能夠在捕獲位置信息的同時對通道信息進行捕獲,而且CA注意力的計算量較小。
基于幾何中值的卷積神經(jīng)網(wǎng)絡濾波剪枝(FPGM)算法[19]是一種通過修剪冗余濾波器的模型壓縮方式,其主要思想是利用可代替性來進行模型特征的修剪,修剪掉的濾波器均為離幾何中心最近的。FPGM不再根據(jù)范數(shù)作為裁剪的標準,而是根據(jù)過濾器的可替代性確定裁剪規(guī)則。FPGM原理如圖2所示,相較于傳統(tǒng)剪枝方式,F(xiàn)PGM保留了更多的特征信息。
圖2 FPGM原理
FPGM算法如下。
FPGM算法描述Preparations:input training data:Xgiven pruning rate R1:Initialize:model parameter W={W(i),0 ≤ i ≤ L}2:forepoch = 1;epoch ≤ epoch_max;epoch ++do3: Update the model parameter W based on X4: for i = 1;i ≤ L;i ++ do5: Calculate:the sum of N Euclidean distances6: end for7: Find the relatively small number of N×R filters8: Zeroized the selected filter gradient9: end for10:Obtain the pruning model with zeroing model W# from W11:Remove zero parameters from the model W?Output:The pruning model and its parameters W?
結(jié)合FPGM算法描述,YOLOv5實現(xiàn)剪枝的具體流程如圖3所示。首先,對YOLOv5模型和參數(shù)進行設定,給定剪枝率R。然后,不斷迭代卷積核歐式距離之和的計算、排序和梯度置零,直至模型收斂或訓練終止,得到待去零剪枝模型。最后,進行去零操作,包括全零卷積核、冗余通道和BN層參數(shù)冗余數(shù)值,得到完整去零剪枝模型。
圖3 YOLOv5實現(xiàn)FPGM流程
YOLOv5中使用三尺度檢測,尺度大小為20 pixel×20 pixel,40 pixel×40 pixel與80 pixel×80 pixel,這種檢測尺度適用于檢測目標較大的情況。而PCB缺陷的形態(tài)各異,模型在訓練過程中會丟失較小的目標區(qū)域信息,導致錯檢與漏檢率提高。
為了解決原模型小目標漏檢的難題,本文算法在YOLOv5的檢測層中增加160 pixel×160 pixel檢測尺度。四尺度檢測結(jié)構如圖4所示(單位:pixel)。
圖4 四尺度檢測結(jié)構
主要改進策略為:在特征提取層增加卷積層與上采樣層,然后將2倍上采樣層與160 pixel×160 pixel特征層進行融合,以此提高低層語義與深層語義的連接與融合,提高模型小檢測能力。
相較于YOLOv5算法,本文的四尺度檢測算法充分考慮了淺層特征信息,降低了卷積帶來的小目標區(qū)域特征信息丟失。6個類別的目標檢測效果均有顯著提高,提高了召回率,降低了漏檢率。
錨框的設定存在著較大的人為因素,YOLOv5中加入了自適應錨定框,但存在觸發(fā)機制。為了能夠更好地進行訓練,提高模型精度,在訓練前對錨框進行k均值聚類和遺傳學習算法處理,對數(shù)據(jù)集進行分析,獲得最適合的預設錨定框。
錨定框分配如表1所示,針對小目標漏檢問題,使用自適應錨定框機制調(diào)整錨框。不但調(diào)整原有3類錨框的尺寸,而且增加(8,8),(13,13),(17,11),提高小目標檢測精度。通過實驗,使用上述錨框不僅可以提高訓練收斂速度,節(jié)省訓練時間,而且可以小幅度提高精度。
表1 錨定框分配
改進后模型結(jié)構如圖5所示,為了能夠精準地定位檢測區(qū)域,提高準確率,對網(wǎng)絡結(jié)構進行了2個改進:增加CA注意力機制和四尺度檢測機制。在主干網(wǎng)絡每一次下采樣后增加了CA注意力模塊,對主干網(wǎng)絡的特征信息提取方式進行調(diào)整,優(yōu)化其信息提取能力。設計四尺度檢測機制,擴大檢測范圍,增加160 pixel×160 pixel檢測尺度,增加深層語義信息與淺層語義的融合,提高小目標檢測能力。
圖5 改進后YOLOv5網(wǎng)絡結(jié)構
本文采用PCB缺陷檢測公開數(shù)據(jù)集[20]進行算法驗證。該數(shù)據(jù)集由北京大學智能機器人開放實驗室發(fā)布,原始數(shù)據(jù)共693張,6個類別。由于原數(shù)據(jù)集數(shù)量過少,故對其進行數(shù)據(jù)增強操作,將原數(shù)據(jù)進行裁剪、鏡像和亮度調(diào)節(jié)操作,擴充后共有9 702張圖片。數(shù)據(jù)集劃分如表2所示。
表2 數(shù)據(jù)集劃分
基準算法與改進算法在PCB缺陷數(shù)據(jù)集的指標對比如表3所示。從數(shù)據(jù)上看,模型使用四尺度和融入CA注意力機制會增加計算量,降低推理速度,但平均檢測精度有所提高,平均精度最高可達99.06%。模型使用不同的輸入尺寸,獲得的檢測效果有較大差別。隨著輸入尺寸的增加,檢測效果在不斷提升,但檢測速度在下降。模型隨著剪枝率的增加,計算量、參數(shù)量和模型體積均呈線性降低;推理時間不斷降低的同時精度有所降低,但帶來的影響較小,在剪枝率小于30%時,平均精度僅下降1%左右;在剪枝率小于70%的情況下,模型的平均精度仍高于90%。剪枝率和輸入尺寸的改變均會影響推理速度,輸入尺寸的增加會導致推理時間的增加。隨著剪枝率的增加,推理時間不斷降低,但在輸入尺寸為640 pixel時,剪枝率超過60%后,模型的推理時間降低速度變緩,基本保持不變。
表3 基準算法與改進算法在PCB缺陷檢測數(shù)據(jù)集的指標對比
如表4所示,在公開PCB缺陷檢測數(shù)據(jù)集上,本文算法對平均精度、模型體積和推理速度均有提高。在僅考慮精度的情況下(無剪枝),mAP最高為99.06%,相比SSD,YOLOv4和YOLOv5s算法分別提高了7.78%,1.95%和5.72%。在僅考慮模型體積和推理速度的情況下(剪枝率為90%),模型容量最低為0.563 MB,為SSD模型的0.57%,YOLOv4的0.23%,YOLOv5s的3.91%,模型體積大幅降低。從檢測速率上來看,本文算法的檢測速率優(yōu)于YOLOv5,YOLOv4和SSD算法,推理速度可達88.9幀/秒,分別提高了20.8%,62.3%和39.9%。
表4 算法對比
本文在YOLOv5和改進版YOLOv5算法上的檢測效果如圖6和圖7所示,依次為毛刺、缺口、余銅、開路、漏焊和短路檢測效果。
圖6 YOLOv5檢測效果
圖7 改進后檢測效果
由圖6和圖7可以看出,本文改進版模型在6個類別中均比原YOLOv5模型有較大的改進。改進版模型可檢測出更多的缺陷且錯檢率極低。綜上分析,本文改進版模型漏檢率低、誤檢率低、查全率高、準確率高。
PCB缺陷人為檢測難度大且成本高。為實現(xiàn)精確的PCB缺陷檢測,本文從網(wǎng)絡結(jié)構入手,通過增加檢測層、調(diào)整模型感受野范圍,提高算法對小缺陷目標的檢測能力。實現(xiàn)剪枝算法與模型的融合,通過FPGM對改進后模型進行輕量化處理,使模型的體積和計算量大幅降低,模型體積可壓縮至0.56 MB,計算量降至0.9 GFLOs。通過增加注意力機制,調(diào)整模型空間和通道的信息提取方式,在公開PCB缺陷數(shù)據(jù)集上對本文的目標檢測算法進行了驗證,在提高精度的同時,能夠提高模型的推理速度,使本文模型具有實時性高、性能穩(wěn)定和魯棒性高等特點。相較于大部分PCB缺陷檢測算法,本文算法在平均精度、體積和檢測速度等方面均取得了不錯的效果。