高杰 GAO Jie;賈培剛 JIA Pei-gang;譚超 TAN Chao
(西安工業(yè)大學(xué),西安 710021)
隨著我國當今電力電子技術(shù)的飛速發(fā)展和智能制造體系的逐步完善,電子設(shè)備對于當今社會的發(fā)展和科技進步產(chǎn)生了深遠影響。而印刷電路板(Printed Circuit Board,PCB)是各種電子設(shè)備的核心部件,承載著各種電子元器件的正常運行。當前PCB產(chǎn)業(yè)產(chǎn)值在電子元件各個細分產(chǎn)業(yè)中占比最大,占全球電子元件總產(chǎn)值份額達四分之一以上[1]。英特爾創(chuàng)始人戈登 摩爾就預(yù)言:集成電路上可以容納的晶體管數(shù)目在大約每經(jīng)過18個月到24個月便會增加一倍。隨著PCB集成度提高,復(fù)雜性也大大提高,對于大批量高復(fù)雜性的PCB板的快速準地缺陷確檢測已成為一種必然需求。
在PCB缺陷檢測領(lǐng)域缺陷檢測方法主要包括基于圖像處理與模板匹配的缺陷檢測方法和基于機器學(xué)習(xí)、深度學(xué)習(xí)的缺陷檢測方法兩類?;趫D像處理的缺陷檢測方法主要采用主成分分析、傅里葉變換、小波變換、圖像模式匹配等對PCB圖像進行特征提取,然后根據(jù)缺陷特征匹配模板進行缺陷檢測分類。Hagi[2]等應(yīng)用相位相關(guān)對PCB裸板對齊,根據(jù)測試圖像與參考圖像的差異檢測出精度較高的缺陷候選區(qū)域,然后提取特征識別真或偽缺陷。應(yīng)用圖像減法識別缺陷。趙翔宇等[3]提出基于數(shù)學(xué)形態(tài)學(xué)與種子填充相結(jié)合的分層提取匹配算法解決PCB元器件丟失和IC片機型錯誤的缺陷。該方法采用種子填充算法實現(xiàn)了分層提取PCB中各類元器件,然后采用單鏈表的模板分別進行分類匹配。李文靜等[4]針對漏焊和短路缺陷檢測問題運圖像預(yù)處理、圖像分割技術(shù)及模式識別方法檢測。該方法可實現(xiàn)模板分割圖像和待測分割圖像相同區(qū)域的提取,然后基于預(yù)先設(shè)定的閾值進行判定待測區(qū)域的缺陷。蔡念[5]等將缺陷檢測問題轉(zhuǎn)為對象檢測問題,使用ViBe模型更新方案構(gòu)建焊點模型。然后將焊點圖像與訓(xùn)練良好的模型進行比較,以檢測潛在的缺陷。然而,傳統(tǒng)基于圖像處理與模板匹配的缺陷檢測方法對位置和光照敏感,在復(fù)雜的實際工業(yè)生產(chǎn)環(huán)境應(yīng)用中受限較大。
基于機器學(xué)習(xí)的缺陷檢測方法一般可分為傳統(tǒng)的機器學(xué)習(xí)方法和深度學(xué)習(xí)方法,利用傳統(tǒng)機器學(xué)習(xí)加圖像處理技術(shù)的方式,檢測PCB是否存在缺陷。李云峰等[6]首先利用濾波去噪和圖像分割操作獲得PCB敷銅層區(qū)域,然后設(shè)計了鄰域梯度方向信息熵作為特征描述子,并結(jié)合邊緣像素在局部區(qū)域的分布特性,進行缺陷特征提取和特征向量構(gòu)造,最后利用支持向量機(SVM)實現(xiàn)缺陷識別和定位。Li[7]針對IC焊點較小缺陷檢測較難,提出了一種基于生成元-對抗網(wǎng)絡(luò)模板的IC焊點檢測方法,對缺陷凸起圖像中的像素進行累加,以區(qū)分被檢IC焊點的質(zhì)量。能夠較好地檢測微小缺陷。何忠國[8]等人改進YOLOv4網(wǎng)絡(luò)用于PCB缺陷檢測相較于優(yōu)化前精度提升了6.88%。
神經(jīng)網(wǎng)絡(luò)在圖像識別和缺陷檢測中具有卓越的效果?;谏疃葘W(xué)習(xí)的缺陷檢測方法已經(jīng)遠遠超越傳統(tǒng)機器學(xué)習(xí)中對缺陷分類的能力,可以實現(xiàn)對缺陷定位分類和分割,而且也實現(xiàn)了特征自動提取,克服了傳統(tǒng)缺陷檢測對位置和光照敏感的問題。
YOLO網(wǎng)絡(luò)模型是目標檢測領(lǐng)域比較優(yōu)秀的單階段目標檢測算法,其檢測過程是在卷積階段提取檢測結(jié)果,相比其他在全連接層提取檢測結(jié)果的算法,速度遙遙領(lǐng)先。雖然其在準確度上存在一定的不足,不過在最新的版本迭代中不斷地彌補這方面缺陷,準確率有較大的提升,因而其具有廣闊的應(yīng)用前景。YOLOv5是較新的迭代版本,具有體積小,速度快,準確率高的特點,所以本文選擇YOLOv5進行研究PCB缺陷檢測。YOLOv5s的網(wǎng)絡(luò)參數(shù)結(jié)構(gòu)如表1所示,它是由3個部分組成:Backbone、NECK以及Output。其目標檢測原理主要為自適應(yīng)設(shè)定錨框通過Backbone提取圖像特征,NECK部分負責(zé)融合圖像特征值,再根據(jù)圖像特征進行預(yù)測,最后生成預(yù)測類別,并返回目標位置的邊框坐標。
表1 YOLOv5網(wǎng)絡(luò)模型參數(shù)框架
YOLOv5在跨階段局域網(wǎng)絡(luò)思想的基礎(chǔ)上,使用CSP作為主干網(wǎng)絡(luò),主要包括切片結(jié)構(gòu)(Focus)、卷積模塊(Conv)、瓶頸層(C3)以及空間金字塔池化(SPP)。切片結(jié)構(gòu)是將高分辨率圖像中抽出像素點重新構(gòu)造到低分辨率圖像中,該模塊主要是用來加快計算速度。SPP模塊分別采用5/9/13的最大池化,再進行concat融合,提高感受野,在頸部網(wǎng)絡(luò)中使用了FPN+PAN的結(jié)構(gòu),較比之前版本,雖然總體結(jié)構(gòu)沒有改變,但其增加了sp2結(jié)構(gòu),加強了特征融合的能力[9]。最后在輸出端使用了損失函數(shù)GIOU_Loss,GIOU函數(shù)同時包含了預(yù)測框和真實框的最小框的面積,其計算過程如2.2所示。該函數(shù)可以增強其檢測能力。
在深度學(xué)習(xí)中,損失函數(shù)本質(zhì)上是計算預(yù)測值和真實值的差距的函數(shù)。在一定程度上表征了模型預(yù)測的準確性,本實驗?zāi)P蛽p失函數(shù)包含三部分:框損失(lbox),對象損失(lobj)和分類損失(lcls)。其中框損失表征算法定位中心對象的程度以及預(yù)測的邊界框覆蓋對象的程度,即算法檢測出目標位置中心以及框選覆蓋的程度。對象性損失本質(zhì)上是對象存在于建議的區(qū)域中概率的度量,若經(jīng)計算后得到的概率較高,圖像窗口則可能包含一個對象,即計算PCB缺陷在框中的概率;分類損失使用到了softmax函數(shù),將6種PCB缺陷類型的預(yù)測值轉(zhuǎn)換成總和為1的概率,將概率最高的那一類作為模型判斷的最終缺陷類型,定義如下:
為了全面客觀評價PCB缺陷檢測模型的性能,本研究使用目標檢測領(lǐng)域常用的精確率(Precious)、召回率(recall)、平均精度(mAP)指標來衡量評估,具體公式如下所示:
精度(查準率)是評價預(yù)測準不準的評價指標,計算方式如下:
其中TP表示正類正樣本,即樣本值為A值,預(yù)測結(jié)果也為A值;FP表示負類正樣本,即樣本值為B值,預(yù)測結(jié)果為A值;
召回率(查全率)是評估預(yù)測查找的全不全,計算方式如下:
其中FN表示負類負樣本,即樣本值為A值,預(yù)測為B值。
mAP表示模型在所有類別上預(yù)測效果的評價指標,計算方式如下:
本文采用PCB缺陷檢測公開數(shù)據(jù)集進行算法驗證。該數(shù)據(jù)集由北京大學(xué)智能機器人開放實驗室發(fā)布,該數(shù)據(jù)集原始數(shù)據(jù)共693張分為鼠咬,漏孔,短路,斷路,毛刺,偽銅共6個類別。由于原數(shù)據(jù)集數(shù)量過少,采用Mosaic數(shù)據(jù)增強方法對樣本進行擴充,其增強方法為:相對先有樣本進行隨機剪裁和縮放,然后進行拼接生成新數(shù)據(jù),擴充小樣本數(shù)量。(表2)
表2 PCB缺陷信息表
本實驗的運行環(huán)境:CPU為Intel-i5-11400H,GPU為NVIDIA GeForce RTX 3050,內(nèi)存為4G,操作系統(tǒng)為Windows11,CUDA為11.6版本,開發(fā)語言環(huán)境為Python3.8,框架為pytorch-gpu。
本實驗在現(xiàn)有數(shù)據(jù)集上進行300輪訓(xùn)練后發(fā)現(xiàn)損失趨近于平穩(wěn),且精度不再有變化。如圖1所示,圖1(a)代表訓(xùn)練集位置損失;圖1(b)代表訓(xùn)練集置信度損失;圖1(c)代表訓(xùn)練集類別損失。由圖1可知,訓(xùn)練效果達到了較好的擬合狀態(tài),訓(xùn)練集位置損失穩(wěn)定在0.02左右,置信度損失穩(wěn)定在0.01左右,類別損失穩(wěn)定在0.002左右。
本研究對其精度(公式(6))和召回率(公式(7))進行了分析。研究發(fā)現(xiàn),PCB缺陷檢測模型的精度(圖2(a))在1~19輪的時候迅速上升,到100輪的時候達到峰值,而召回率(圖2(b))則在訓(xùn)練前期平穩(wěn)上升,在120輪的時候達到最高值為0.98。
利用測試集數(shù)據(jù)對六類缺陷的識別模型準確率進行分析統(tǒng)計,結(jié)果如表3所示。由表3可知,6種缺陷的識別準確率均達到90%以上,其中漏孔缺陷檢測準確率最高為98.9%,其次是短路準確率為97.2%,毛刺的識別準確率最低為91.1%,相比而言,毛刺的缺陷特征較小,難以提取,因而導(dǎo)致其難以識別。
表3 模型在訓(xùn)練集上的準確率
本文使用YOLOv5s對印刷電路板缺陷進行檢測識別,根據(jù)最終的實驗結(jié)果表明,本文算法中PCB缺陷檢測與識別的平均精度達到了95.4%,在6種PCB缺陷中,對于漏孔檢測精度最高達到了98.9%.對于640*640的樣本圖片,檢測速度為0.2s。該算法在復(fù)雜環(huán)境下準確率、檢測速率仍具有良好的表現(xiàn),因此YOLOv5算法可以滿足實際應(yīng)用生產(chǎn)缺陷檢測需要。