摘要:當前PCB板缺陷檢測存在檢測效率低、漏檢或誤檢率高、檢測精度不夠等問題,以YOLOv5s為基礎算法,提出改進算法YOLOv5s-DS。該改進算法首先通過融入DSConv深度可分離卷積進行特征提取,降低網(wǎng)絡參數(shù)計算量。其次,采用SIOU損失函數(shù)替換GIOU損失函數(shù),提升算法精度,加快收斂速度。研究結(jié)果表明,該改進算法有效地提升了PCB板缺陷檢測的精度和檢測速度,降低了漏檢率,為PCB板缺陷檢測提供了參考。
關鍵詞:目標檢測;YOLOv5s;YOLOv5s-DS;PCB板缺陷檢測;深度可分離卷積
一、前言
PCB的質(zhì)量取決于每條線和孔的質(zhì)量,而板上數(shù)千條線和孔中的任何一個出現(xiàn)了問題都會影響最終產(chǎn)品的質(zhì)量[1]。早期的PCB缺陷檢測主要依靠人工目測和在線儀器檢測,但這些方法通常存在成本高、效率低、誤檢率高等缺點,且部分檢測方法會接觸到PCB板,容易造成二次損壞,使得目前檢測難以滿足現(xiàn)代PCB板生產(chǎn)效率高、性能好的檢測要求[2]。因此,開發(fā)一種高效準確的PCB缺陷檢測系統(tǒng)已經(jīng)成為當前電路板行業(yè)亟須解決的問題。朱紅艷[3]通過對Faster RCNN進行改進,將可變形卷積代替普通卷積,該方法雖然能有效提高檢測速度,但還是無法滿足實時檢測的要求,且計算量較大。朱憲宇[4]通過使用K-means++聚類的方法對YOLOv4算法進行改進,獲取先驗框,檢測精度較高,但小目標漏檢率也較高。Xin H等人通過分析骨干架構(gòu)CSPDarket53并適當更改模型超參數(shù)的設置,為YOLOv4提出了一種改進的網(wǎng)絡模型,從而將準確率提高到96.88%,但該方法訓練速度較慢且小目標缺陷容易漏檢?;谏鲜鱿嚓P文獻研究成果,為了更好地平衡PCB缺陷檢測任務的檢測精度、檢測速度和網(wǎng)絡模型體積,本文在YOLOv5s模型的基礎上進行相關改進,提出一種改進模型YOLOv5s-DS。首先,通過融入深度可分離卷積DSConv,使網(wǎng)絡在保證精度的情況下,大幅減少網(wǎng)絡參數(shù)的計算量,更容易部署。其次,將YOLOv5s的GIOU損失函數(shù)替換為SIoU損失函數(shù),提升檢測精度。
二、改進的YOLOv5s算法
(一)原始YOLOv5s目標檢測算法
YOLOv5模型通過直接對對象定位和分類的方式進行目標檢測,主要由三部分組成,即骨干網(wǎng)絡、頸部網(wǎng)絡和頭部網(wǎng)絡。根據(jù)輸入通道數(shù)和模塊的使用次數(shù)不同可分為四個版本,分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,本文選用四種模型中最小的模型YOLOv5s為基礎模型,該模型檢測速度快,較符合PCB板缺陷實時檢測的要求。
(二)本文改進算法YOLOv5s-DS
雖然YOLOv5s模型在檢測精度上有很好的效果,但由于YOLOv5s參數(shù)過多,導致在使用時檢測速度較低,難以滿足工業(yè)上PCB板缺陷檢測的要求。因此,本文首先融入DSConv深度可分離卷積,以減少YOLOv5s的參數(shù)量。其次,引入SIOU損失函數(shù),提高檢測精度,并將改進后的算法稱為YOLOv5s-DSConv-SIOU算法(簡稱YOLOv5s-DS算法),改進后的算法結(jié)構(gòu)如圖1所示。
1.DSConv深度可分離卷積
深度可分離卷積(DSConv)[5]近年來因其在降低神經(jīng)網(wǎng)絡中卷積層的計算成本方面的有效性而受到廣泛關注。
深度可分離卷積與傳統(tǒng)卷積相比,它使用更少的參數(shù)獲得相似的特征提取結(jié)果。式(1)為傳統(tǒng)卷積參數(shù)的計算量,式(2)為深度可分離卷積參數(shù)的計算量。由式(3)可以看出,深度可分離卷積中的參數(shù)為普通卷積的 " "倍。
為傳統(tǒng)卷積的計算量,為深度可分離卷積的計算量, 和為輸入圖像的寬度和高度,為輸入通道數(shù),為卷積核大小,為卷積核數(shù)。
從式(3)可以看出 的結(jié)果小于1,說明采用深度可分離卷積之后,在特征提取方面與標準卷積提取效果差不多,但在參數(shù)量和計算量上卻有大幅度下降。因此本文采用DSConv深度可分離卷積代替原始的傳統(tǒng)卷積進行特征提取。
2.SIOU損失函數(shù)
原始的YOLOv5s使用GIOU損失[6]作為邊界框損失函數(shù),它考慮了真實框和預測框之間的距離、形狀以及的損失,但是該邊界框損失函數(shù)沒有考慮真實框和預測框之間的方向損失。GIOU損失函數(shù)沒有解決方向不匹配問題,導致訓練困難、收斂速度慢和效率低下。因此本文使用由SIOU損失函數(shù)代替原始邊界框損失函數(shù),SIOU loss與CIOU loss相比,引入了方向損失,更合理地表示了真實框和預測框之間的損失,從而增強了所提出的改進算法在PCB板缺陷檢測任務上的性能。
SIOU損失由四個成本組成: 、角度、距離、形狀,計算如下:
其中1-指的是成本,表示形狀成本,表示引入角度的距離成本。、角度成本、距離成本和形狀成本的定義和計算公式在下文依次解釋。
指的是真實框和預測框之間的聯(lián)合比率的交集,描述了它們的重合程度。它的定義如下:
其中和分別代表預測框區(qū)域和真實框區(qū)域。
角度成本的定義如下:
其中 表示水平線與連接預測框和真實框中心點的線之間的夾角。?指的是真實框和預測框中心點之間高度差值。指的是真實框和預測框中心點距離差值。
在角度成本定義的基礎上重新定義了距離成本,如下式:
其中( )表示真實框的中心點坐標,而(,)表示預測框的中心點坐標。和?分別表示預測框和真實框的最小閉包邊界框的寬度和高度。表示考慮真實框和預測框中心點之間角度大小的距離成本。
形狀成本:
其中(,?)和(,?)分別表示預測框和真實框的寬度和高度。表示控制損失函數(shù)對形狀成本的關注程度。為了避免過分關注形狀成本來減少預測框的移動,在這項工作中將的值設置為4,在建議的值范圍內(nèi)根據(jù)Gevorgyan (2022),∈[2,6]。
三、實驗與結(jié)果分析
(一)實驗環(huán)境及參數(shù)設置
本文采用的實驗平臺為Windos10系統(tǒng)和具有12G顯存的NVIDIA GeForce RTX 3060 顯卡。實驗環(huán)境為PyTorch 1.8.0 框架、CUDA11.0和CUDNN 8.0.4深度神經(jīng)網(wǎng)絡加速庫用于模型開發(fā)和訓練。
本文在訓練過程中,用于訓練、驗證和測試數(shù)據(jù)集按照7:2:1的比例自動隨機分配,且利用余弦退火優(yōu)化方法更新學習率和網(wǎng)絡權重參數(shù)。在訓練時,采用Mosaic數(shù)據(jù)增強(將四張原始圖像合并為一張圖像),并設置每一步使用Mosaic數(shù)據(jù)增強的概率為50%。訓練時其他超參數(shù)設置如下:momentum(動量)為0.937,lr0(學習率)為0.01,batch-size(批量大?。?32,epoch(迭代次數(shù))設置為400輪,標準圖像輸入尺寸設置為 640×640。
(二)數(shù)據(jù)集介紹
數(shù)據(jù)集來自北京智能機器人開放實驗室PCB板數(shù)據(jù)集,圖像的像素值為2777×2138,缺陷大小占圖片像素大小的0.24%,該數(shù)據(jù)集一共693張含缺陷的PCB板圖像,含漏孔、鼠咬、開路、短路、雜散、雜銅這六類缺陷。其每個類別圖片張數(shù)分別為115、115、116、116、115和116,通過每個類別圖片張數(shù)來看,該數(shù)據(jù)集較為均衡。
(三)評價指標
本文采用的性能評價由四個指標評估:準確度P(precision)、R(recall)、F1和mAP(mean average precision)、浮點運算(FLOPs)。其中P、R、F1、mAP公式分別是:
是網(wǎng)絡模型正確檢測到的目標數(shù)量;是網(wǎng)絡模型錯誤檢測到的目標數(shù)量;是網(wǎng)絡模型未檢測到的目標數(shù)量;表示總類別數(shù);表示單個類別的平均精度,的公式為:
浮點運算()公式為:
其中,表示卷積的輸入通道數(shù),表示卷積的輸出通道數(shù),K表示卷積核的大小。
(四)性能對比
1.消融實驗
為了驗證DSConv深度可分離卷積、SIOU損失函數(shù)對算法的影響,設計消融實驗來驗證,具體通過設計三組實驗對不同的改進進行分析,其余超參數(shù)一致,算法性能如表1所示。
從表1可以看出,YOLOv5s-S算法在YOLOv5s算法基礎上改進成SIOU損失函數(shù),其F1提升了1.9%,mAP提升了2.4%,模型大小浮點運算()和檢測速度(fps)保持不變,說明運用SIOU損失函數(shù)替代GIOU損失函數(shù)時,可以有效提升F1和mAP,且對檢測速度和模型大小無影響。YOLOv5s-DS算法在YOLOv5s-S算法基礎上融入DSConv深度可分離卷積,其F1提升了0.5%,mAP提升了0.5%,模型大小浮點運算()減少了0.9和檢測速度增加了6fps,說明融入DSConv深度可分離卷積在保證F1和mAP性能的情況下,可以有效降低浮點運算,提升檢測速度。
為了更方便地看出訓練過程,將mAP進行打印,打印結(jié)果如圖2所示。從圖2中收斂速度來看,YOLOv5s-S和YOLOv5s-DS算法在算法收斂上相差不大,而與YOLOv5s算法相比,收斂速度明顯變快。因此,可以證明運用SIOU損失函數(shù)替代GIOU損失函數(shù)時,可以加快收斂速度、提高訓練效率。從mAP的數(shù)值來看,可以發(fā)現(xiàn)YOLOv5s-DS算法的mAP值最大,性能最優(yōu)。
2.不同算法對比
為了進一步驗證本文改進算法的穩(wěn)定性和先進性,將本文改進算法與目前主流的目標檢測算法進行對比,通過采用目前主流算法(Faster RCNN、SSD、YOLOv3)對本文采用的PCB板數(shù)據(jù)集進行訓練,其余的超參數(shù)與本文設置的超參數(shù)一致,訓練得出的結(jié)果如表2所示。
(1)從模型大小來看,可以發(fā)現(xiàn)本文改進算法YOLOv5s-DS的模型大小最小為47M,其余的模型大小從小到大依次為SSD、YOLOv3、Faster RCNN。因此,從模型大小角度來看,YOLOv5s-DS算法模型最小,最容易部署,適用于算力不太高的計算機設備。從檢測速度和訓練速度來看,YOLOv5s-DS檢測速度和訓練速度最快,其余的模型檢測速度和訓練速度從快到慢依次為YOLOv3、SSD、Faster RCNN,且其中Faster RCNN的檢測速度過慢,無法滿足PCB板缺陷檢測的實時檢測要求。因此,從檢測速度和訓練速度角度來看,YOLOv5s-DS算法檢測速度和訓練速度最快,最能滿足PCB板缺陷檢測的工業(yè)要求。
(2)從精度上看,YOLOv5s-DS相比Faster RCNN在F1提升了16.3%,mAP上提升了16.7%。相比SSD在F1提升了32.1%,mAP上提升了31.6%,且SSD精度過低無法滿足PCB板缺陷檢測的精度要求。相比YOLOv3在F1提升了18.2%,mAP上提升了17.7%。因此,從精度來看,YOLOv5s-DS算法精度最高,最能滿足PCB板缺陷檢測的精度要求。
四、結(jié)論
通過對YOLOv5s算法融入DSConv深度可分離卷積和使用GIOU損失函數(shù)替換為SIoU損失函數(shù)來進行改進。改進算法在保證一定精度的情況下可大幅減少網(wǎng)絡參數(shù)計算,且采用SIOU損失函數(shù)引入了方向損失,更合理地表示了真實框和預測框之間的損失,從而增強了該改進算法對PCB板缺陷檢測的性能。通過最終檢測效果的驗證,該算法模型小、參數(shù)少,易于部署,在實際檢測過程中,檢測精度更高,檢測速度更快且有效降低YOLOv5s算法漏檢率。
參考文獻
[1]Li J, Gu J, Huang Z, et al. Application research of improved YOLO V3 algorithm in PCB electronic component detection[J]. Applied Sciences, 2019, 9(18): 3750-3755.
[2]Lin Y L, Chiang Y M, Hsu H C. Capacitor detection in PCB using YOLO algorithm[C]//2018 International Conference on System Science and Engineering (ICSSE). IEEE, 2018: 1-4.
[3]朱紅艷. 基于深度學習的PCB裸板表面缺陷檢測研究[D]貴陽:貴州大學,2022.
[4]朱憲宇,熊婕,王檸莎,等.基于改進YOLOv4的PCB裸板缺陷檢測方法研究[J].工業(yè)控制計算機,2021,34(09):39-40+45.
[5]Nascimento M G, Fawcett R, Prisacariu V A. DSConv: efficient convolution operator[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 5148-5157.
[6]Chen H, Qi W. Object recognition based on improved YOLOv5[C]//Second Guangdong-Hong Kong-Macao Greater Bay Area Artificial Intelligence and Big Data Forum (AIBDF 2022). SPIE, 2023, 12593:146-151.
作者單位:廣東培正學院數(shù)字科學與計算機學院
■ 責任編輯:周航