陳博源
(西安交通大學(xué)電氣工程學(xué)院,陜西西安,710049)
PCB(Printed Circuit Board),中文名稱印制電路板,又稱印刷線路板,是一種重要的電子元件是各類電子元器件的運(yùn)行載體,具有關(guān)鍵的支撐作用。因其高密度化、高可靠性、可設(shè)計(jì)性、可生產(chǎn)性、可測(cè)試性、可組裝性、可維護(hù)性等優(yōu)良特性,已在電力電子、航空航天、國防安全、計(jì)算機(jī)網(wǎng)絡(luò)和工業(yè)自動(dòng)化等高新技術(shù)領(lǐng)域得到了廣泛應(yīng)用。當(dāng)前PCB產(chǎn)業(yè)產(chǎn)值在電子元件各個(gè)細(xì)分產(chǎn)業(yè)中占比最大,占全球電子元件總產(chǎn)值份額達(dá)四分之一以上。隨著PCB板產(chǎn)能的提高和制作復(fù)雜度的增加,迫切需要對(duì)大批量PCB板進(jìn)行快速準(zhǔn)確的缺陷檢測(cè)。傳統(tǒng)的檢測(cè)方法包括人工目測(cè)、功能測(cè)試和激光檢測(cè),其中人工目測(cè)是操作人員使用顯微鏡和放大鏡檢測(cè)電路板是否合格的方法,人工成本高、主觀誤差大;功能測(cè)試是采用專業(yè)的測(cè)試設(shè)備,在生產(chǎn)線的中、末端全面測(cè)試PCB板的功能模塊的方法,缺陷定位困難、測(cè)試流程復(fù)雜和特種測(cè)試設(shè)備開發(fā)成本高;激光檢測(cè)是通過激光束掃描PCB板,并將預(yù)設(shè)的合格極限值與實(shí)際測(cè)量值進(jìn)行比較,收集相關(guān)檢測(cè)數(shù)據(jù)的方法,設(shè)備初始成本高,維護(hù)問題多。
通過計(jì)算機(jī)視覺技術(shù)從圖像中提取目標(biāo)特征的方法,在PCB板缺陷檢測(cè)領(lǐng)域得到了初步應(yīng)用。陳壽宏等[1]通過提取圖像特征,提出了一種基于SVM支持向量機(jī)算法的PCB版焊點(diǎn)檢測(cè)方法,通過提取HOG特征實(shí)現(xiàn)焊點(diǎn)檢測(cè),但該方法數(shù)據(jù)增強(qiáng)方式單一,對(duì)小批量數(shù)據(jù)集的特征提取效果差。何止戈等[2]采用深度學(xué)習(xí)方法,對(duì)PCB圖像進(jìn)行卷積池化操作,建立了基于R-CNN算法的PCB檢測(cè)模型,但該方法對(duì)于小目標(biāo)的檢測(cè)效果不佳,且算法復(fù)雜度較高,檢測(cè)耗時(shí)較長。
Joseph Redmon等[3]于2016年提出YOLO算法,將目標(biāo)檢測(cè)的分類和定位用一個(gè)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),目前已經(jīng)經(jīng)歷了從v1到v5[3-6]的發(fā)展,在目標(biāo)檢測(cè)領(lǐng)域得到了廣泛的應(yīng)用。Yih-Lon Lin等[7]提出基于YOLOv2的PCB檢測(cè)方法,顯著降低了檢測(cè)所用時(shí)間,平均檢測(cè)時(shí)間小于0.3s。賀建安等[8]提出了基于YOLOv3算法的PCB表面目標(biāo)檢測(cè)方法,較YOLOv2在準(zhǔn)確度上有了顯著提升,平均準(zhǔn)確率達(dá)到98.42%。2020年推出的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)具有體積小、速度快、精度高等優(yōu)點(diǎn),且在具有成熟開發(fā)生態(tài)的PyTorch 編譯軟件中實(shí)現(xiàn),硬件適配性強(qiáng),部署簡單。YOLOv5基于CutMix[9]方法,采用Mosaic數(shù)據(jù)增強(qiáng)方式有效解決了模型訓(xùn)練中難度最大的“小對(duì)象問題”。YOLOv5包括了YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四個(gè)權(quán)重模型,本文采用這四種權(quán)重模型分別在相同PCB數(shù)據(jù)集上進(jìn)行訓(xùn)練,并與YOLOv3 等方法進(jìn)行對(duì)比分析,利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)PCB缺陷的智能檢測(cè)。
圖1為本文實(shí)驗(yàn)方案框架圖,先對(duì)數(shù)據(jù)集預(yù)處理,包含數(shù)據(jù)集準(zhǔn)備、各功能數(shù)據(jù)集分類、缺陷標(biāo)注和格式轉(zhuǎn)化操作;然后進(jìn)行YOLOv5網(wǎng)絡(luò)訓(xùn)練,包含數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、主干網(wǎng)絡(luò)構(gòu)建和模型迭代訓(xùn)練;再進(jìn)行模型效果檢驗(yàn),包含模型輸出、精度相關(guān)數(shù)據(jù)輸出和檢測(cè)效果評(píng)價(jià)。
圖1 實(shí)驗(yàn)方案框架
(1)獲取共2700張包含缺陷信息的PCB數(shù)據(jù)集,每張圖像大小為640×640。編寫圖像分類程序,以6:3:1的比例隨機(jī)分配用于訓(xùn)練模型、驗(yàn)證模型和測(cè)試模型的數(shù)據(jù)集,保證缺陷數(shù)據(jù)分配的隨機(jī)性。
(2)采用labelimg工具對(duì)訓(xùn)練集中的PCB缺陷進(jìn)行錨框標(biāo)注(見圖2,圖中0代表的是缺失孔、1是咬傷、2是開路、3是短路、4是雜散、5是偽銅)。
圖2 PCB 缺陷標(biāo)注示例
(3)編寫程序,將生成的可擴(kuò)展標(biāo)記語言(.xml)格式的缺陷信息轉(zhuǎn)化成文本信息格式(.txt)。
每個(gè)缺陷信息表示為帶缺陷種類系數(shù)的矩陣格式。
圖3為本文PCB缺陷檢測(cè)基于YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)該網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練步驟如下:
圖3 YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)
(1)選用隨機(jī)不重復(fù)取四張圖片,對(duì)四張圖片進(jìn)行拼接,獲得一張新的圖片,同時(shí)也獲得這張圖片對(duì)應(yīng)的錨框,將新的圖片傳入到神經(jīng)網(wǎng)絡(luò)當(dāng)中學(xué)習(xí),豐富檢測(cè)物體背景,降低模型內(nèi)存需求,提高訓(xùn)練速度。
(2)采用自適應(yīng)錨框計(jì)算方法,輸入數(shù)據(jù)集后,程序自行選擇初始錨點(diǎn)框,進(jìn)而和真實(shí)框(GT)進(jìn)行比對(duì),對(duì)二者差值執(zhí)行反向更新操作,調(diào)整權(quán)重參數(shù)。每次訓(xùn)練時(shí),以自適應(yīng)方式輸出訓(xùn)練集中的最佳錨框值。
(3)Backbone結(jié) 構(gòu) 包 含F(xiàn)ocus和CSPNet[10](Cross Stage Partial Networks,跨階段局部融合網(wǎng)絡(luò))模塊。Focus模塊包含對(duì)輸入圖像進(jìn)行切片操作,先變成 304×30×12的特征圖,再經(jīng)過一次32個(gè)卷積核的卷積操作,最終變成 304×304×32 的特征圖。CSPNet模塊包含提取不同層的特征信息,通過局部跨層融合操作獲得更為豐富的特征圖。
(4)Neck結(jié)構(gòu)包含PANet[11](PathAggregation,路徑聚合網(wǎng)絡(luò))和spp[12](space pyramid pooling,空間金字塔池化)模塊。PANet模塊包含對(duì)不同層圖像的特征融合,在進(jìn)行自頂向下的特征融合后,然后再進(jìn)行自下向頂?shù)奶卣魅诤?。spp模塊包含采用4種不同大小的卷積核進(jìn)行最大池化操作,再進(jìn)行張量拼接。
(5)采用GIOU_Loss[13]作為損失函數(shù),代替YOLOv3的IOU_Loss。通過對(duì)相交尺度的測(cè)量,解決當(dāng)兩錨框不相交時(shí)難以優(yōu)化的情況。
本實(shí)驗(yàn)的運(yùn)行環(huán)境:CPU為Intel i7-11800H,GPU為 NVIDIA GeForce RTX 3060,內(nèi)存為 16G,操作系統(tǒng)為Windows10,CUDA為11.0版本,開發(fā)語言為Python,框架為pytorch。權(quán)重參數(shù)訓(xùn)練采用SGD優(yōu)化算法,參數(shù)設(shè)置如下:Batch大小為4;最大迭代次數(shù)為100;動(dòng)量因子為0.9;權(quán)重衰減系數(shù)為0.0005。采用余弦退火策略動(dòng)態(tài)調(diào)整學(xué)習(xí)率,初始學(xué)習(xí)率為0.01。采用GIOU_Loss作為損失函數(shù)。
對(duì)1620張PCB圖像進(jìn)行100次迭代訓(xùn)練后得到最佳權(quán)重模型,進(jìn)行圖像測(cè)試。平均缺陷檢測(cè)準(zhǔn)確度達(dá)到99.52%,損失函數(shù)值為0.02。對(duì)同一圖像在相同運(yùn)行條件下,分別在YOLOv5和YOLOv3中的檢測(cè)結(jié)果進(jìn)行對(duì)比,圖中數(shù)值為對(duì)應(yīng)目標(biāo)置信度,YOLOv5的整體檢測(cè)置信度高于YOLOv3(見圖4,a為YOLOv5,b為YOLOv3)。
圖4 YOLOv5與YOLOv3部分檢測(cè)結(jié)果對(duì)比圖
表1為各網(wǎng)絡(luò)對(duì)比實(shí)驗(yàn)結(jié)果,由表可知在YOLOv5各個(gè)權(quán)重模型中,YOLOv5s模型訓(xùn)練時(shí)間最快,YOLOv5模型平均訓(xùn)練時(shí)間為192min,分別低于YOLOv3和YOLOv2模型33.3%和52.4%。YOLOv5模型平均測(cè)試精度為92.59%,分別高于YOLOv3和YOLOv2模型3.42%和6.14%。
表1 網(wǎng)絡(luò)對(duì)比實(shí)驗(yàn)結(jié)果
YOLOv5模型平均準(zhǔn)確率達(dá)到和99.52%,分別高于YOLOv3和YOLOv2模型8.15%和和9.69%。
YOLOv5平均每張640×640大小圖像檢測(cè)時(shí)間為0.016s,分別為YOLOv3和YOLOv2的27%和6.4%。YOLOv5模型整體性能更優(yōu)。
為了實(shí)現(xiàn)印制電路板缺陷智能檢測(cè),基于YOLOv5網(wǎng)絡(luò)在印制電路板缺陷數(shù)據(jù)集上進(jìn)行訓(xùn)練,得到PCB缺陷檢測(cè)模型。實(shí)驗(yàn)結(jié)果表明,本次實(shí)驗(yàn)構(gòu)建的基于YOLOv5的PCB缺陷智能檢測(cè)模型整體性能顯著優(yōu)于其他PCB缺陷檢測(cè)模型,檢測(cè)速度快,準(zhǔn)確率高,適合對(duì)大批量印制電路板進(jìn)行快速準(zhǔn)確的缺陷檢測(cè)。