?

基于LWN-Net的印刷電路板缺陷檢測算法

2024-03-13 05:45斌,胡暉,楊
計算機集成制造系統 2024年2期
關鍵詞:輕量化損失精度

文 斌,胡 暉,楊 超

(三峽大學 電氣與新能源學院,湖北 宜昌 443002)

0 引言

電子工業的發展在中國經濟中占據著重要的位置,印刷電路板(Printed Circuit Board,PCB)作為連接各種電子元器件的載體,負責為設備提供線路連接和硬件支撐,在各個高新技術領域得到了廣泛應用。然而,PCB的制作過程十分復雜,導致PCB存在漏孔、缺口、短路、斷路、毛刺、余銅等缺陷,PCB板缺陷檢測存在以下問題:①缺陷目標較小且易受背景顏色影響;②缺陷種類較多且線路復雜,無法準確定位缺陷;③現今網絡無法滿足工業實時性部署的要求。因此在生產過程中對PCB缺陷進行非接觸、準確、高效地自動檢測非常必要。

早期PCB缺陷檢測方法以人工檢測、電氣檢測和紅外檢測為主。人工檢測易受工人情緒波動、視覺疲勞等因素影響,檢測效率低、速度慢、人力成本高,且信息不易集成;電氣檢測與紅外檢測對設備要求較高且檢測的缺陷種類較少,無法滿足現代化PCB檢測的需求。

傳統PCB缺陷檢測算法的弊端日益明顯,以機器視覺為核心的檢測算法相繼推出。BAYGIN等[1]提出一種檢測PCB孔洞缺失的方法,該方法采用Hough變換和Otsu閾值化提取圖像特征,將待檢測的目標圖像輸入匹配模型中與參考圖像匹配,然而該方法在檢測過程中需要與正常PCB進行對比檢測,通用性較低;LIU等[2]通過形態學和模式識別的方法對圖像進行二值化,并對PCB圖像的閾值進行分割,從而去除冗余點并標記PCB缺陷,然而該算法復雜度高,應用較少;YUK等[3]基于加速魯棒和隨機森林的方法,提出一種無需正常圖像進行對比的PCB缺陷檢測方法,雖然精確度和魯棒性有所提高,但是所需時間和空間較大,效率較低;KUMAR等[4]在PCB的非銅件檢測部分使用3D非均勻顏色直方圖進行缺陷檢測,雖然取得了較好的檢測結果,但是易受光照影響,使得該類方法的適用范圍較小。

得益于深度學習的興起,基于卷積神經網絡(Convolutional Neural Network,CNN)[5]的缺陷檢測方法成為主流方法之一,相比傳統PCB缺陷檢測方法,該方法無需任何額外信息,即使存在陰影或反射,仍然可以準確定位并檢測缺陷區域?,F有的深度學習目標檢測方法主要分為兩類,一類是以Faster-RCNN[6]為代表的雙階段檢測算法,例如HU等[7]開發了一個基于Faster-RCNN的、用于PCB缺陷檢測的微小缺陷檢測網絡,并在訓練階段使用一種硬挖掘技術的在線示例減輕小數據集和樣本不平衡的影響;陳仁祥等通過增加多注意力以及平衡特征金字塔模塊對Faster-RCNN進行進一步改進,提高了PCB在有噪聲情況下的缺陷表征能力。雖然雙階段檢測算法模型的檢測精度得到了較好的提升,小目標檢測優勢明顯,但是模型復雜度高、參數量大,無法滿足現階段輕量化的要求。另一類是以YOLO(you only look once)和SSD(single shot multibox detector)[12]為代表的單階段檢測算法,該類算法的檢測速度快于雙階段算法,但小目標檢測精度低,漏檢率高。伍濟鋼等[13]采用改進的YOLOv4對印刷電路板進行缺陷檢測,首先通過改進的K-means聚類,并結合交并比損失函數確定錨框,解決了錨框不適合小目標檢測的問題,然后采用MobileNet作為特征提取網絡使模型輕量化,最后引入Inceptionv3作為檢測網絡,解決了目標細節丟失的問題;RAN等[14]基于SSD模型檢測PCB缺陷,然而實驗檢測到缺陷只有3類,且未與其他目標檢測方法進行比較;ZENG等[15]針對小目標缺陷檢測設計了改進的PCB缺陷檢測框架(Improved PCB Defect Detection,IPDD),并提出新的特征金字塔,以ResNeXt為主干網絡并嵌入注意力機制,最后得到較好的魯棒性;蘇佳等[16]提出新型的PCB小目標缺陷檢測網絡YOLO-J,首先采用二分K-means 聚類算法重新聚類先驗框,然后對路徑聚合網絡(Path Aggregation Network,PANet)進行改進,增強了模型的特征提取能力,最后使用Hard-swish激活函數,提升了模型的訓練速度,該算法的檢測效果能夠滿足工業檢測精度的要求。

針對以上算法中檢測精度低、速度慢、漏檢率高和模型參數量大的問題,本文提出一種基于YOLOv3(you only look once version 3)的輕量級權重新型網絡(Lightweight Weight Novel Network,LWN-Net)。主要創新如下:

(1)設計輕量級特征增強網絡(Lightweight Feature Augmentation Network,LFAN)為LWN-Net的主干部分,該網絡主要由不同數量的殘差塊和殘差蒸餾空間金字塔池化(Residual Distillation Space Pyramid Pooling,RDSPP)組成,保證模型輕量化的同時避免損失過多精度。

(2)引入權重聚合分配機制(Weight Aggregation Distribution Mechanism,WADM)并添加到主干網絡中,以平衡特征提取網絡中的語義信息和位置信息,提高模型對小目標特征的提取能力。

(3)提出新型特征金字塔網絡(Novel Feature Pyramid Network,NFPN)作為特征融合部分,即特征圖金字塔網絡融合了密殘差空洞空間金字塔池化(Dense Residual Atrous Spatial Pyramid Pooling,DRASPP)和細節整合模塊(Detai Integration Module, DIM)兩種結構,避免了丟失細節信息以及產生冗余信息。

(4)在訓練過程中,采用回歸損失函數SIoU[17],加快模型的收斂速度并提高檢測精度。

1 LWN-Net

1.1 模型概述及算法流程

LWN-Net網絡結構如圖1所示,主要由LFAN,WADM,NFPN以及計算損失并負責預測的頭部網絡組成,其算法流程圖如圖2所示。首先將PCB缺陷圖傳入LFAN,由不同數量的殘差塊提取特征,并采用RDSPP提取加強特征,從而提取更加充分的PCB缺陷特征;然后,將LFAN提取的缺陷信息輸入WADM,平衡語義信息和位置信息,使不同層之間的通信更加高效,得到平衡特征層;其次,為避免丟失細節以及多尺度直接融合導致的信息冗余,將平衡特征層傳入NFPN,加強提取細節信息,過濾冗余信息;最后,在頭部網絡中采用3種不同大小的特征層生成邊界框,并在邊界回歸損失計算中采用損失函數SIoU,從而檢測并定位PCB缺陷。

1.2 輕量級特征增強網絡

在PCB工業缺陷檢測過程中,檢測模型部署在邊緣設備中,需要其滿足輕量化要求,雖然原主干特征提取網絡DarkNet53能夠滿足檢測模型精度的要求,但是由于參數量大、結構復雜、檢測速度慢,無法滿足現階段工業檢測的要求。因此,本文提出以LFAN為主干網絡提取PCB缺陷特征,具體結構如圖3所示,其中殘差塊的數量為2,2,2。為了在避免模型輕量化的同時降低模型檢測精度,提出RDSPP,其結構如圖4所示,該模塊由粗提取和細提取兩部分組成。在細提取PathA分支中,首先采用蒸餾模塊(D1~D4)提取特征,并采用淺層殘差塊(Shallow Residual Block,SRB)組成細化模塊來細化提取的特征;然后,采用1×1卷積進行通道縮減;最后,應用坐標注意力(Coordinate Attention,CA)[18]機制生成能夠區分方向并生成坐標感知的特征圖,減少丟失位置信息。在粗提取PathB分支中,采用空間金字塔池化(Spatial Pyramid Pooling,SPP)[19]和不同大小的卷積提取特征,其中SPP由4種不同尺寸的最大池化組成,為了能夠提取更高階的特征,提高了圖像尺度不變性和魯棒性。

1.3 權重聚合分配機制

特征提取過程中語義信息和位置信息不平衡會降低模型的檢測精度。因此,本文提出WADM,其根據每個模塊信息自適應地預測一組權重來增強每個特征層的原始特征,從而提高模型對PCB小目標的特征提取能力,具體結構如圖5所示。

WADM分為權重聚合和權重分配兩部分。在權重聚合中,首先輸入LFAN的輸出特征層Xn,n∈{0,1,2,3};然后,分別對每層特征層進行全局平均池化(Global Average Pooling,GAP)壓縮其空間信息,整合全局的目標信息。每個特征層表示為Xn∈RHn×Wn×Cn,通過權重聚合計算全局平衡特征層Z∈R1×1×φ,

(1)

式中:φ為全局平衡特征層通道數;f(x)表示由內向外分別進行GAP、歸一化和激活操作;‖·‖表示沿通道維度進行拼接;σ(·)表示sigmoid激活函數;BN(·)表示歸一化層;Xn(i,j),n∈{0,1,2,3}表示特征圖空間坐標。

Φi=Fi(Z),i∈{0,1,2};

(2)

Pi=Xi×Φi,i∈{0,1,2}。

(3)

式中F(·)表示全連接操作。

1.4 新型特征金字塔網絡

隨著網絡的加深,語義信息逐漸豐富,但隨之而來的是細節信息逐漸丟失,在特征金字塔網絡(Feature Pyramid Network,FPN)[20]中亦如此,不同尺度特征直接融合導致大量的信息冗余和沖突,在一定程度上降低了模型的多尺度表達能力,加大了缺陷精確定位的難度。因此,本文提出NFPN,具體結構如圖6所示。NFPN在原基礎上提出兩種結構,即DRASPP和DIM。

1.4.1 密殘差空洞空間金字塔池化結構

為了減少細節丟失,進一步提高模型精度,在WADM的輸出特征層P0后加入DRASPP結構,具體如圖7所示。其由3部分組成,分別為ASPP(atrous spatial pyramid pooling)模塊、密殘差單位卷積和GAP。在DRASPP結構中,首先利用ASPP模塊的多分支結構獲取不同尺度的特征信息,提升模型的表達能力,并添加GAP分支防止網絡過擬合;然后,用密殘差單位卷積不斷增強各個ASPP塊的預輸出和后輸出特征交互,從而減少信息丟失。整個模型的工作原理如下:

(4)

式中:Ri(·),i∈{0,1},表示密殘差單位卷積;Ai(·),i∈{0,1},表示ASPP塊,每一個ASPP塊級聯1×1的卷積和不同膨脹率的3×3空洞卷積;⊕表示沿通道維度進行拼接。

整個模型的最終輸出為

out=G(P0)⊕A0(P0)⊕A1(out0)⊕A2(out1)。

(5)

式中:G(·)表示GAP;Ai(·),i∈{0,1,2},表示ASPP塊,每一個ASPP塊級聯1×1的卷積和不同膨脹率的3×3空洞卷積。

1.4.2 細節整合模塊

為了過濾冗余信息和沖突信息,提出細節整合模塊DIM,其結構如圖8所示。該模塊包括通道整合模塊和空間整合模塊兩部分,利用該模塊進一步細化特征圖,剔除多余信息,增強特征融合。

Mc(F)=β{Conv3×3[AvgPool(F)]}+

β{Conv3×3[MaxPool(F)]}。

(6)

式中:F為空間整合模塊輸入;β(·)表示Relu激活函數;Convm×m表示核大小為m的卷積操作;AvgPool(·)表示平均池化;MaxPool(·)表示最大池化。

在空間整合模塊中沿著通道軸進行平均池化和最大池化,將兩個池化操作得到的兩個特征圖拼接得到全局的空間信息,然后對拼接后的特征圖進行卷積和Relu激活,篩選出有用目標信息的空間信息,達到空間信息整合效果,最終空間整合模塊的輸出為

Ms(F)=β{Conv7×7[AvgPool(F)⊕MaxPool(F)]}。

(7)

最后將通道整合模塊與空間整合模塊分別與輸入相乘,得到細節整合模塊的輸出為

F′=F×Mc(F)+F×Ms(F)。

(8)

1.5 SIoU損失函數

在回歸損失計算中,原YOLOv3使用的損失函數GIoU[21]未考慮所需真實框與預測框之間不匹配的方向,導致收斂速度變慢且效率降低,從而產生更差的模型。因此,本文引用新的損失函數SIoU替換原YOLOv3的損失函數GIoU,其考慮所需回歸之間的向量角度,重新定義了懲罰指標。SIoU損失函數由角度損失、距離損失、形狀損失和IoU損失4個損失組成。

1.5.1 角度損失

角度損失∧的計算公式為

(9)

其各參數關系如下:

(10)

1.5.2 距離損失

距離損失Δ的計算公式為

Δ=∑1-e-γρt,γ=2-∧,t=x,y。

(11)

式中:γ=2-∧ ,表示[1,2]范圍內的常數,防止距離損失為零;γ為被賦予時間優先的距離值,與角度損失∧有關x,y表示水平方向和垂直方向。px和py為真實框與預測框之間位置的偏離程度,

(12)

1.5.3 形狀損失

形狀損失Ω的計算公式為

Ω=∑t=w,h(1-e-wt)θ
=(1-e-ww)θ+(1-e-wh)θ;

(13)

(14)

式中:θ表示對形狀損失的關注程度;ωw和ωh為預測框與真實框之間寬和高的拉伸程度;(w,h)和(wgh,hgt)分別為預測框和真實框的寬度和高度。形狀損失考慮了預測框和真值框之間的真實長寬比,對ωw和ωh的計算只用到真實框和預測框的長寬屬性,因此計算量更少,推理速度更快。

1.5.4 回歸損失和總損失

綜上所述,回歸損失函數為

(15)

(16)

式中:IoU為真實框和預測框交并比;B表示預測框;BGT表示真實框。

總損失為

L=wboxLbox+wclsLcls。

(17)

式中:Lcls表示焦點損失FocalLoss[22];Lbox表示框損失;wbox和wcls為框損失和焦點損失的權重,實驗中設置wbox=0.05,wcls=0.075。

2 實驗與結果分析

2.1 實驗環境和數據

本實驗所采取的硬件環境為Intel Core i7-11700 CPU、16 G內存、RTX3080顯卡、10 G顯存,采用CUDA 11.1和cuDNN 8.2.0對圖形處理器(Graphics Processing Unit,GPU)進行加速;軟件環境為Python 3.8,Opencv和Pycharm 20.1.1。

實驗數據集采用北大智能機器人開發實驗室的印刷數據集[23],經過裁剪、旋轉等操作將數據集擴充到10 668張,其中訓練集、驗證集、測試集的比例為8∶1∶1,數據集中各缺陷圖片數量如表1所示。

表1 PCB缺陷類型

數據集中共6類缺陷,分別為焊點漏焊、缺口、開路、余銅、短路、毛刺,如圖11所示。

2.2 評價指標

在目標檢測中,常采用平均精度均值mAP作為模型的評價指標,其為所有類別平均精度AP的均值,而每個類別APi為第i個類別的精確度P和對應召回率R在0-1范圍內曲線所包圍的面積。

(18)

(19)

(20)

式中:TP為被正確劃分為正樣本的個數;FP為被錯誤劃分為負樣本的個數;FN為被錯誤劃分為負樣本的個數。

幀數FPS的計算公式為

(21)

式中:Fn為檢測圖片的個數;T為檢測圖片所用的總時間。

2.3 結果分析

2.3.1 LWN-Net網絡訓練

LWN-Net在訓練過程中輸入的原始圖片大小為416×416,經實驗得出,設置批次大小為8,總訓練次數為300,學習率的初始值為1.25×10-4,采用余弦退火衰減策略更新學習率,可以得到最優模型權重。預測效果最佳的訓練和驗證損失曲線及評估指標mAP、漏檢率、召回率如圖12所示。

2.3.2 不同模塊性能對比

對本文所提模塊進行消融實驗,結果如表2所示,其中IoU=0.5時,mRecall為6個類別Recall取平均值,IoU=[0.5,0.95],步長為0.05時,mRecall值由coco工具箱中area=all計算得出。為保持模型輕量化,以LFAN為主干提取特征,然而所提取特征中的語義信息和位置信息不平衡會導致精度降低,因此添加WADM模塊,以提高模型的特征提取能力。由實驗b可得,IoU=0.5時,mAP提升了1.68%,mRecall提升了5.61%;IoU=[0.5,0.95],步長為0.05時,mAP提升了4.6%,mRecall提升了3.5%,證明WADM模塊具有有效性。因為不同尺度融合導致一些細節信息缺失,并增加了冗余信息,從而影響網絡的檢測效果,所以添加NFPN模塊來過濾冗余信息,提升檢測精度。由實驗c可知,IoU=0.5時,mAP提升了0.69%,mRecall提升了0.83%;當IoU=[0.5,0.95],步長為0.05時,mAP提升了4.2%,mRecall提升了3.0%,模型精度得到進一步提高。為加快模型收斂,提高檢測效率,將回歸損失函數替換為SIoU,由實驗d可得,IoU=0.5時,mAP提升了0.44%,mRecall提升了0.95%;IoU=[0.5,0.95],步長為0.05時,mAP提升了1.6%,mRecall提升了1.2%,從而驗證了SIoU的有效性。

表2 消融實驗性能對比 %

2.3.3 不同主干性能對比

在與上述實驗相同的硬件配置下,IoU=0.5時選取不同經典主干進行對比,如表3所示,其中平均漏檢率為6個類別漏檢率取平均值。選取Ghostnet[24]和Mobilnetv3[25]作為主干,雖然模型更加輕量化,但是模型漏檢率較高且檢測精度低,因此性能低于LFAN主干。與經典主干Darknet53[11],Resnet50[26],Vgg[27]相比,模型的mAP雖然提升不多,但是召回率有較大提高,分別為2.43%,1.24%,0.43%,且使漏檢保持在較低水平,分別降低3.16%,2.16%,1.16%,模型更加輕量化,尤其是圖片的檢測速度分別提高18.37幀·s-1、10.65幀·s-1、7.21幀·s-1。綜上所述,相比其他主干網絡,本文采用LFAN主干提取特征,使得模型的精度較高、漏檢率較低且檢測速度更快,模型規模僅為28.19 MB,更加符合現階段輕量化部署的要求。

表3 不同主干性能對比

2.3.4 不同檢測網絡性能對比

為了客觀驗證本文所提PCB缺陷檢測網絡LWN-Net的優越性,在相同硬件配置且IoU=0.5下,將其與單階段網絡(SSD[12],YOLOv3[11],YOLOv4[28])和輕量化網絡(MobileNetV3-YOLOv3[29],GhostNet-YOLOv3[30])5種目標檢測網絡進行對比。由表4可知,在單階段網絡中,LWN-Net網絡性能均優于YOLOv3和SSD檢測算法。與YOLOV4相比,雖然召回率降低了0.06%,但是對于缺陷檢測更重要的mAP提高了0.4%,而且檢測速度也有較大提升。在輕量級網絡中,LWN-Net網絡性能優于GhostNet-YOLOv3檢測算法。與MobileNetV3-YOLOv3相比,雖然檢測速度降低了5.35幀·s-1,但是mAP提升了0.92%且漏檢率降低了2%。綜合分析,與單階段算法和輕量級檢測算法相比,本文算法LWN-Net在保持模型輕量化的同時,具有較高的檢測速度和精度,并有效避免了因缺陷目標較小而出現的漏檢現象。

表4 不同檢測網絡性能對比

2.3.5 相同缺陷場景不同檢測方法對比

為了驗證LWN-Net網絡在同類算法中的性能,在相同硬件配置下分別與相同缺陷場景中的檢測算法(YOLO-Z,YOLO-J[16])進行比對分析,并在相同數據集上進行訓練和評估。當IoU=0.5時,所得比對結果如表5所示。YOLO-Z算法將Mobilenetv3作為模型的主干,并用改進的二分K-means重新聚類先驗框,雖然模型達到了輕量化,但是檢測精度卻低于LWN-Net;YOLO-J算法將Resnet50作為主干網絡,采用H-swish激活函數與注意力機制增強模型特征提取能力,其檢測精度得到了提高,但是模型規模較大,無法部署到移動設備。綜上所述,LWN-Net算法很好地平衡了mAP、檢測速度和模型規模,其性能優于其他網絡。

表5 相同缺陷場景不同檢測方法對比

2.3.6 檢測結果對比

從原數據集隨機裁剪相同大小的PCB缺陷圖,在相同硬件環境下,分別用LWN-Net網絡和YOLOv3網絡進行檢測,其對比檢測結果如圖13所示。在圖13a中,YOLOv3對小目標檢測能力較弱,在檢測余銅缺陷出現漏檢現象,且在其他缺陷檢測中精度不高。在圖13b中,LWN-Net網絡在檢測余銅以及其他缺陷時未出現漏檢現象,而且其他缺陷檢測的精度均優于YOLOv3。因此,本文算法能夠檢測出被忽略的小目標缺陷區域,在工業生產缺陷檢測中的檢測效果較優。

3 結束語

本文提出基于改進YOLOv3的LWN-Net輕量級缺陷檢測網絡,該網絡用LFAN為主干,使模型更加輕量化,并用WADM解決主干提取特征中語義信息和位置信息不平衡的問衡。為避免特征融合過程中丟失細節信息并產生冗余信息,提出NFPN,最后采用回歸損失函數SIoU進行網絡訓練。結果表明,相比于YOLOv3,LWN-Net網絡模型規模壓縮了87.5%,檢測速度提升了8.32幀·s-1,預測精度和召回率分別提升了0.88%和1.6%。由此可見,本文所提LWN-Net網絡在準確度、速度、模型規模和漏檢率方面展現出明顯的優勢。未來將繼續對模型進行改進,使其可以適應復雜的檢測環境;同時通過進一步輕量化處理,使模型滿足工業場景下實時檢測的需求,更加適用于工業檢測及部署。

猜你喜歡
輕量化損失精度
汽車輕量化集成制造專題主編
胖胖損失了多少元
一種輕量化自卸半掛車結構設計
一種輕量化自卸半掛車結構設計
玉米抽穗前倒伏怎么辦?怎么減少損失?
基于DSPIC33F微處理器的采集精度的提高
GPS/GLONASS/BDS組合PPP精度分析
瞄準掛車輕量化 鑼響掛車正式掛牌成立
一般自由碰撞的最大動能損失
損失
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合