高杰 GAO Jie;賈培剛 JIA Pei-gang;譚超 TAN Chao
(西安工業大學,西安 710021)
隨著我國當今電力電子技術的飛速發展和智能制造體系的逐步完善,電子設備對于當今社會的發展和科技進步產生了深遠影響。而印刷電路板(Printed Circuit Board,PCB)是各種電子設備的核心部件,承載著各種電子元器件的正常運行。當前PCB產業產值在電子元件各個細分產業中占比最大,占全球電子元件總產值份額達四分之一以上[1]。英特爾創始人戈登 摩爾就預言:集成電路上可以容納的晶體管數目在大約每經過18個月到24個月便會增加一倍。隨著PCB集成度提高,復雜性也大大提高,對于大批量高復雜性的PCB板的快速準地缺陷確檢測已成為一種必然需求。
在PCB缺陷檢測領域缺陷檢測方法主要包括基于圖像處理與模板匹配的缺陷檢測方法和基于機器學習、深度學習的缺陷檢測方法兩類。基于圖像處理的缺陷檢測方法主要采用主成分分析、傅里葉變換、小波變換、圖像模式匹配等對PCB圖像進行特征提取,然后根據缺陷特征匹配模板進行缺陷檢測分類。Hagi[2]等應用相位相關對PCB裸板對齊,根據測試圖像與參考圖像的差異檢測出精度較高的缺陷候選區域,然后提取特征識別真或偽缺陷。應用圖像減法識別缺陷。趙翔宇等[3]提出基于數學形態學與種子填充相結合的分層提取匹配算法解決PCB元器件丟失和IC片機型錯誤的缺陷。該方法采用種子填充算法實現了分層提取PCB中各類元器件,然后采用單鏈表的模板分別進行分類匹配。李文靜等[4]針對漏焊和短路缺陷檢測問題運圖像預處理、圖像分割技術及模式識別方法檢測。該方法可實現模板分割圖像和待測分割圖像相同區域的提取,然后基于預先設定的閾值進行判定待測區域的缺陷。蔡念[5]等將缺陷檢測問題轉為對象檢測問題,使用ViBe模型更新方案構建焊點模型。然后將焊點圖像與訓練良好的模型進行比較,以檢測潛在的缺陷。然而,傳統基于圖像處理與模板匹配的缺陷檢測方法對位置和光照敏感,在復雜的實際工業生產環境應用中受限較大。
基于機器學習的缺陷檢測方法一般可分為傳統的機器學習方法和深度學習方法,利用傳統機器學習加圖像處理技術的方式,檢測PCB是否存在缺陷。李云峰等[6]首先利用濾波去噪和圖像分割操作獲得PCB敷銅層區域,然后設計了鄰域梯度方向信息熵作為特征描述子,并結合邊緣像素在局部區域的分布特性,進行缺陷特征提取和特征向量構造,最后利用支持向量機(SVM)實現缺陷識別和定位。Li[7]針對IC焊點較小缺陷檢測較難,提出了一種基于生成元-對抗網絡模板的IC焊點檢測方法,對缺陷凸起圖像中的像素進行累加,以區分被檢IC焊點的質量。能夠較好地檢測微小缺陷。何忠國[8]等人改進YOLOv4網絡用于PCB缺陷檢測相較于優化前精度提升了6.88%。
神經網絡在圖像識別和缺陷檢測中具有卓越的效果。基于深度學習的缺陷檢測方法已經遠遠超越傳統機器學習中對缺陷分類的能力,可以實現對缺陷定位分類和分割,而且也實現了特征自動提取,克服了傳統缺陷檢測對位置和光照敏感的問題。
YOLO網絡模型是目標檢測領域比較優秀的單階段目標檢測算法,其檢測過程是在卷積階段提取檢測結果,相比其他在全連接層提取檢測結果的算法,速度遙遙領先。雖然其在準確度上存在一定的不足,不過在最新的版本迭代中不斷地彌補這方面缺陷,準確率有較大的提升,因而其具有廣闊的應用前景。YOLOv5是較新的迭代版本,具有體積小,速度快,準確率高的特點,所以本文選擇YOLOv5進行研究PCB缺陷檢測。YOLOv5s的網絡參數結構如表1所示,它是由3個部分組成:Backbone、NECK以及Output。其目標檢測原理主要為自適應設定錨框通過Backbone提取圖像特征,NECK部分負責融合圖像特征值,再根據圖像特征進行預測,最后生成預測類別,并返回目標位置的邊框坐標。

表1 YOLOv5網絡模型參數框架
YOLOv5在跨階段局域網絡思想的基礎上,使用CSP作為主干網絡,主要包括切片結構(Focus)、卷積模塊(Conv)、瓶頸層(C3)以及空間金字塔池化(SPP)。切片結構是將高分辨率圖像中抽出像素點重新構造到低分辨率圖像中,該模塊主要是用來加快計算速度。SPP模塊分別采用5/9/13的最大池化,再進行concat融合,提高感受野,在頸部網絡中使用了FPN+PAN的結構,較比之前版本,雖然總體結構沒有改變,但其增加了sp2結構,加強了特征融合的能力[9]。最后在輸出端使用了損失函數GIOU_Loss,GIOU函數同時包含了預測框和真實框的最小框的面積,其計算過程如2.2所示。該函數可以增強其檢測能力。
在深度學習中,損失函數本質上是計算預測值和真實值的差距的函數。在一定程度上表征了模型預測的準確性,本實驗模型損失函數包含三部分:框損失(lbox),對象損失(lobj)和分類損失(lcls)。其中框損失表征算法定位中心對象的程度以及預測的邊界框覆蓋對象的程度,即算法檢測出目標位置中心以及框選覆蓋的程度。對象性損失本質上是對象存在于建議的區域中概率的度量,若經計算后得到的概率較高,圖像窗口則可能包含一個對象,即計算PCB缺陷在框中的概率;分類損失使用到了softmax函數,將6種PCB缺陷類型的預測值轉換成總和為1的概率,將概率最高的那一類作為模型判斷的最終缺陷類型,定義如下:
為了全面客觀評價PCB缺陷檢測模型的性能,本研究使用目標檢測領域常用的精確率(Precious)、召回率(recall)、平均精度(mAP)指標來衡量評估,具體公式如下所示:
精度(查準率)是評價預測準不準的評價指標,計算方式如下:
其中TP表示正類正樣本,即樣本值為A值,預測結果也為A值;FP表示負類正樣本,即樣本值為B值,預測結果為A值;
召回率(查全率)是評估預測查找的全不全,計算方式如下:
其中FN表示負類負樣本,即樣本值為A值,預測為B值。
mAP表示模型在所有類別上預測效果的評價指標,計算方式如下:
本文采用PCB缺陷檢測公開數據集進行算法驗證。該數據集由北京大學智能機器人開放實驗室發布,該數據集原始數據共693張分為鼠咬,漏孔,短路,斷路,毛刺,偽銅共6個類別。由于原數據集數量過少,采用Mosaic數據增強方法對樣本進行擴充,其增強方法為:相對先有樣本進行隨機剪裁和縮放,然后進行拼接生成新數據,擴充小樣本數量。(表2)

表2 PCB缺陷信息表
本實驗的運行環境:CPU為Intel-i5-11400H,GPU為NVIDIA GeForce RTX 3050,內存為4G,操作系統為Windows11,CUDA為11.6版本,開發語言環境為Python3.8,框架為pytorch-gpu。
本實驗在現有數據集上進行300輪訓練后發現損失趨近于平穩,且精度不再有變化。如圖1所示,圖1(a)代表訓練集位置損失;圖1(b)代表訓練集置信度損失;圖1(c)代表訓練集類別損失。由圖1可知,訓練效果達到了較好的擬合狀態,訓練集位置損失穩定在0.02左右,置信度損失穩定在0.01左右,類別損失穩定在0.002左右。
本研究對其精度(公式(6))和召回率(公式(7))進行了分析。研究發現,PCB缺陷檢測模型的精度(圖2(a))在1~19輪的時候迅速上升,到100輪的時候達到峰值,而召回率(圖2(b))則在訓練前期平穩上升,在120輪的時候達到最高值為0.98。
利用測試集數據對六類缺陷的識別模型準確率進行分析統計,結果如表3所示。由表3可知,6種缺陷的識別準確率均達到90%以上,其中漏孔缺陷檢測準確率最高為98.9%,其次是短路準確率為97.2%,毛刺的識別準確率最低為91.1%,相比而言,毛刺的缺陷特征較小,難以提取,因而導致其難以識別。

表3 模型在訓練集上的準確率
本文使用YOLOv5s對印刷電路板缺陷進行檢測識別,根據最終的實驗結果表明,本文算法中PCB缺陷檢測與識別的平均精度達到了95.4%,在6種PCB缺陷中,對于漏孔檢測精度最高達到了98.9%.對于640*640的樣本圖片,檢測速度為0.2s。該算法在復雜環境下準確率、檢測速率仍具有良好的表現,因此YOLOv5算法可以滿足實際應用生產缺陷檢測需要。