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