国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進YOLOv5的PCB裸板缺陷檢測

2023-11-25 13:07:52葛平淑劉俊杰向青陽
大連民族大學(xué)學(xué)報 2023年5期
關(guān)鍵詞:特征提取卷積精度

程 霖,張 濤,葛平淑,劉俊杰,向青陽

(大連民族大學(xué) 機電工程學(xué)院,遼寧 大連 116605 )

隨著中國現(xiàn)代電子產(chǎn)業(yè)和新興技術(shù)的迅猛發(fā)展,印刷電路板(PCB)作為各種電子元器件的載體,是各種電子產(chǎn)品布線連接和信號傳輸?shù)年P(guān)鍵硬件支撐,決定著電子產(chǎn)品是否能夠正常運行。但生產(chǎn)PCB電路板的工藝十分復(fù)雜,受到當(dāng)前生產(chǎn)工藝技術(shù)限制,在PCB生產(chǎn)過程中容易產(chǎn)生如漏孔、鼠咬、開路、短路、雜散、雜銅等缺陷。這些缺陷PCB板一旦應(yīng)用到電子產(chǎn)品中會導(dǎo)致產(chǎn)品運行故障或者損壞,造成較大經(jīng)濟損失。因此對PCB裸板及時進行缺陷檢測有著重要的現(xiàn)實意義和經(jīng)濟價值。

近些年隨著深度學(xué)習(xí)技術(shù)在缺陷檢測領(lǐng)域的不斷發(fā)展,與傳統(tǒng)的機器學(xué)習(xí)方法相比,深度學(xué)習(xí)的泛化能力更強,適合于更多復(fù)雜生產(chǎn)環(huán)境。如今已有研究人員將深度學(xué)習(xí)算法應(yīng)用于PCB板的缺陷檢測中來。當(dāng)前基于目標(biāo)檢測主要分為兩種,Two-stage和One-stage檢測[1]。Two-stage檢測算法中經(jīng)典的有(R-CNN、Faster R-CNN)等。2020年6月沈非堯等[2]對Faster R-CNN算法進行優(yōu)化,選擇ResNet-101進行作為特征提取網(wǎng)絡(luò),并在RoI pooling層中結(jié)合RoI Align優(yōu)化算法,提高了訓(xùn)練速度和精度。2021年6月耿振宇等[3]使用ResNet代替VGG作為Faster R-CNN的主干網(wǎng)絡(luò),并引入特征金字塔網(wǎng)絡(luò)(FPN)來解決多尺度檢測問題,并減少了計算量One-stage檢測算法主要為YOLO系列算法,與Two-stage檢測算法相比優(yōu)點在于速度更快,但精度略低于Two-stage檢測算法。為了兼顧速度與精度問題,2021年6月,孫燦等[4]以YOLOv3為基礎(chǔ)模型,在模型參數(shù)計算量、注意力機制以及重疊目標(biāo)檢測等方面進行優(yōu)化,提高了YOLO算法的性能。2022年6月李洋等[5]利用ECANet優(yōu)化有效特征層融合方式,并改進特征金字塔網(wǎng)絡(luò)結(jié)構(gòu),提高了YOLO算法對小目標(biāo)缺陷的檢測精度。

針對PCB裸板缺陷檢測難度大的問題,提升高密度場景下PCB缺陷檢測精度,緩解梯度消失并降低模型訓(xùn)練損失仍是現(xiàn)階段大部分算法需要解決的首要問題。本文針對YOLOv5算法進行優(yōu)化改進,改進主干特征提取網(wǎng)絡(luò)。引入密集連接卷積網(wǎng)絡(luò)DenseNet思想[6],搭建密集連接模塊,對Bottleneck模塊進行改進。緩解了消失梯度問題,鼓勵特征重用,加強特征傳播。提高YOLOv5算法針對PCB裸板小目標(biāo)缺陷檢測的精度。

1 YOLOv5算法結(jié)構(gòu)

YOLO系列模型在目標(biāo)檢測領(lǐng)域是性能較好的單階段目標(biāo)檢測算法,2020年6月發(fā)布的YOLOv5是YOLO系列兼顧準(zhǔn)確率和速度的模型。YOLOv5可以分為s、m、l、x四個版本,本文所用算法為YOLOv5s。YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)可以分為4個模塊:輸入端(Input)、主干網(wǎng)絡(luò)(Backbone)、頸部(Neck)和檢測網(wǎng)絡(luò)(Head)[7]。其結(jié)構(gòu)如圖1。

圖1 YOLOv5結(jié)構(gòu)

輸入端的作用就是進行圖像的預(yù)處理,將圖片縮放為網(wǎng)絡(luò)輸入大小、數(shù)據(jù)歸一化和數(shù)據(jù)增強。YOLOv5采用masaic增強技術(shù)把四張圖片的部分進行拼接隨機組成一張新的尺寸固定的輸入圖片。而YOLOv5與以往不同的是作者對其進行了改進,變?yōu)榱俗赃m應(yīng)圖片縮放,之前的YOLO算法都是將不規(guī)則圖片進行填充,產(chǎn)生新的固定的正方形圖片,該方法所生產(chǎn)的新圖片有較多的黑色邊框,由此會造成信息冗余,從而產(chǎn)生不必要的計算量,進而影響算法的推理速度。YOLOv5算法因此改進了圖片縮放方式,采用了自適應(yīng)的填充,由此對原始圖片添加最少的黑邊框。大大減少了算法推理計算量。主干網(wǎng)絡(luò)Backbone模塊則借鑒了跨階段局部網(wǎng)絡(luò)CSPNet(Cross Stage Partial Network)的設(shè)計思想[8],使用CSPdarknet為主干網(wǎng)絡(luò),減少了模型整體計算量。其中在YOLOv5第一次使用了Focus結(jié)構(gòu)。C3模塊是對殘差特征學(xué)習(xí)的主要模塊,主要作用是增加網(wǎng)絡(luò)深度,提高特征提取能力。C3由兩種不同的bottleneck結(jié)構(gòu)和標(biāo)準(zhǔn)的卷積模塊組成,組成兩種不同的C3模塊??臻g金字塔模塊SSP的主要思想為對輸入的特征圖進行卷積核大小不同的池化操作,得到不同大小的特征圖,最后進行拼接得到統(tǒng)一尺寸的特征圖[9]。頸部(Neck)網(wǎng)絡(luò)設(shè)計沿用了FPN+PAN的結(jié)構(gòu)[10]。FPN結(jié)構(gòu)通過自頂向下進行上采樣,構(gòu)建出多尺度高級語義特征圖[11]。PAN結(jié)構(gòu)則是自底向上進行下采樣,加入了自底向上的路線,彌補并加強了定位信息。

2 改進的YOLOv5算法結(jié)構(gòu)

PCB缺陷檢測多為小目標(biāo)檢測,需要對YOLOv5算法進行改進,而對于小目標(biāo)檢測的難點在網(wǎng)絡(luò)的加深過程中,會出現(xiàn)圖像信息丟失的現(xiàn)象。在網(wǎng)絡(luò)加深的過程中,提取出的特征也由淺變深,淺層特征即具體的位置信息,深層特征即抽象的語義信息。隨著網(wǎng)絡(luò)加深,小目標(biāo)在特征圖中所占據(jù)的像素會越來越少,使目標(biāo)檢測的結(jié)果不理想。為了更加充分利用各個卷積層所提取出來的特征信息,本文在YOLOv5算法中引入密集連接卷積網(wǎng)絡(luò)(DenseNet)的思想,DenseNet網(wǎng)絡(luò)具體結(jié)構(gòu)如圖2。

圖2 DenseNet密集連接網(wǎng)絡(luò)

在DenseNet網(wǎng)絡(luò)中,每兩層之間都直接相連,每層都可以獲得前面所有層的特征輸入,對于網(wǎng)絡(luò)L層輸出,傳統(tǒng)網(wǎng)絡(luò)的輸出與DenseNet網(wǎng)絡(luò)輸出如公式(1)、(2)所示:

xL=HL(xL-1);

(1)

(2)

從上述公式中可以看出,引入密集連接思想,可以實現(xiàn)特征重用。每一層只需學(xué)習(xí)很少的特征,不需要重復(fù)學(xué)習(xí)冗余的特征圖,通過更少的參數(shù)量就使得卷積層學(xué)習(xí)到更多的特征,相比于傳統(tǒng)的卷積網(wǎng)絡(luò),這種結(jié)構(gòu)的特征利用效率更高,使得網(wǎng)絡(luò)可以更加高效的學(xué)習(xí)新的信息。

對YOLOv5中的主干特征提取網(wǎng)絡(luò)進行改進,在主干網(wǎng)絡(luò)的Bottleneck中添加兩個新的卷積塊,同時使得每層都可以獲得前面所有層的特征信息,這使得層之間的連接更緊密。密集卷積網(wǎng)絡(luò)精度提高的原因是各個層通過更短的連接從損失函數(shù)中獲得額外的監(jiān)督??梢詫?DenseNet 解釋為執(zhí)行一種“深度監(jiān)督”。好處是它的每個隱藏層都有分類器,強制中間層學(xué)習(xí)判別特征。DenseNet以隱式方式執(zhí)行類似的深度監(jiān)督,DenseNet 的損失函數(shù)和梯度要簡單得多,因為所有層之間共享相同的損失函數(shù)。因此DenseNet網(wǎng)絡(luò)可以減少梯度消失,增強特征傳播,提高YOLOv5算法中的特征信息重用,使其更加適合PCB裸板缺陷的小目標(biāo)檢測。具體改進結(jié)構(gòu)如圖3~4。

圖3 原C3模塊

圖4 改進C3模塊

通過上述對YOLOv5算法中的主干特征提取模塊改進,相比于原來層與層之間的連接更加激進,模塊中大量使用了殘差分支,每一層都在接受前幾層的特征信息,并將自己的特征信息傳遞給后續(xù)的所有層,以提高算法的檢測精度。

3 實驗與驗證

3.1 實驗環(huán)境

軟件環(huán)境使用Windows 11 專業(yè)工作站版,PyTorch深度學(xué)習(xí)框架。硬件配置上為CPU:AMD Ryzen 9 5900X 12-Core Processor 3.70 GHz;GPU:NVIDIA RTX A4000 16G顯存。

3.2 數(shù)據(jù)集簡介

采用公開數(shù)據(jù)集PKU-Market-PCB,該數(shù)據(jù)集一共包含692張印刷電路板缺陷圖片,并附有對應(yīng)的標(biāo)注文件。包含了工業(yè)生產(chǎn)中常見的6種缺陷類型。圖片的張數(shù)和缺陷數(shù)量見表1。

表1 缺陷圖片數(shù)量及各缺陷數(shù)量

3.3 數(shù)據(jù)集增強

由于公開數(shù)據(jù)集PKU-Market-PCB只有692張缺陷圖片,由于數(shù)據(jù)量有限,很可能會因數(shù)據(jù)量較少而導(dǎo)致訓(xùn)練結(jié)果過擬合,因此需要對原始數(shù)據(jù)進行擴增,本文采用的方法是通過旋轉(zhuǎn)、鏡像、增亮、加噪聲等隨機增強的方法進行擴增。最終得到數(shù)據(jù)6 920張。

3.4 評價指標(biāo)

在評價算法的性能時,本文采用平均精度(mean Averrage Precision,mAP)、召回率(Recall)、F1得分(F)、精確率(Precision)、作為評價指標(biāo)。

根據(jù)PCB測試樣本的真實類別與模型預(yù)測類別劃分為真正例(TP)、假正例(FP),真反例(TN),假反例(FN)。

精確率又叫做查準(zhǔn)率,是指分類過程中模型預(yù)測的所有正例中預(yù)測正確的比例。召回率又叫查全率,是指模型預(yù)測正確的正例占據(jù)真實正例的比例,它們具體計算公式如(3)、(4)所示:

(3)

(4)

準(zhǔn)確率和召回率是兩個矛盾的衡量標(biāo)準(zhǔn),在準(zhǔn)確率高時,召回率則會較低;而當(dāng)召回率較高時,準(zhǔn)確率則會較低[12]。綜合兩者,繪制P-R曲線,縱坐標(biāo)為精確度的值數(shù),橫坐標(biāo)為召回率的值數(shù),獲取值數(shù)后做出曲線圖,根據(jù)曲線面積與坐標(biāo)軸圍成的面積即可得到平均精度AP(Averrage Precision),該面積越大則反映出算法的性能越好。在最后檢測結(jié)果中,每一個類別都會有一個AP曲線,所有的AP曲線收集起來,得到mAP即為均值平均精度。兩者計算公式如(5)、(6)所示:

(5)

(6)

3.5 算法訓(xùn)練與實驗

文中將訓(xùn)練集、驗證集與測試集按照8:1:1的比例進行劃分。訓(xùn)練的具體參數(shù)設(shè)置見表2。

表2 訓(xùn)練的參數(shù)設(shè)計

改進的YOLOv5算法訓(xùn)練期間的損失曲線如圖5。觀察可知隨著訓(xùn)練輪數(shù)的增加,損失曲線的斜率逐漸趨于平緩,圖5a代表訓(xùn)練集位置損失;圖5b代表訓(xùn)練集置信度損失;圖5c代表訓(xùn)練集類別損失。由圖5可知訓(xùn)練效果達到了較好擬合狀態(tài),證明該算法已經(jīng)收斂,最終的實驗結(jié)果如圖6。改進后的算法對PCB裸板缺陷的識別平均精度為95.6%,其中對于漏孔缺陷的檢測精度最高,達到了99.5%。該算法檢測效果符合需求,準(zhǔn)確檢測出各類缺陷如圖7~12。

a) box_loss圖 b) obj_loss圖 c)cls_loss圖圖5 損失曲線

圖6 P-R曲線圖

圖7 mouse bite 缺陷檢測 圖8 spur缺陷檢測

圖11 missing hole 缺陷檢測 圖12 open circuit 缺陷檢測

圖9 short 缺陷檢測 圖10 spurious copper 缺陷檢測

為了檢驗本文算法改進的有效性,在同一數(shù)據(jù)集中,對改進YOLOv5算法(YOLOv5+denseNet模型),原YOLOv5算法、YOLOv7算法進行對比實驗,所得到的性能參數(shù)見表3。

表3 改進后算法與YOLOv5、YOLOv7算法精度比較 %

由表3可知,改動后的算法相比較于原算法,平均精度提高了1.1%,平均精度提高了1.9%,召回率提高了1.6%。說明對YOLOv5算法中主干特征提取模塊引入密集連接思想,加強特征信息傳遞后有效地提高了算法性能,證明了改進YOLOv5算法在PCB裸板等目標(biāo)檢測方面擁有較好的適用性,其性能優(yōu)于其他算法。

4 結(jié) 語

針對目前檢測算法對小目標(biāo)缺陷檢測效果不理想的情況,對YOLOv5算法進行改進,提出了一種針對PCB裸板缺陷檢測的改進YOLOv5算法,主要是對YOLOv5算法的主干特征提取網(wǎng)絡(luò)進行改進。與原算法相比,在同一數(shù)據(jù)集中的平均精度得到了提高。值得注意的是不同數(shù)據(jù)集預(yù)處理方式會影響模型精度,因此后續(xù)將進一步提高改進模型的泛化性,同時拓展應(yīng)用在其他目標(biāo)尺寸較小的應(yīng)用場景中。

猜你喜歡
特征提取卷積精度
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
基于Daubechies(dbN)的飛行器音頻特征提取
電子制作(2018年19期)2018-11-14 02:37:08
基于DSPIC33F微處理器的采集精度的提高
電子制作(2018年11期)2018-08-04 03:25:38
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
Bagging RCSP腦電特征提取算法
GPS/GLONASS/BDS組合PPP精度分析
改進的Goldschmidt雙精度浮點除法器
基于MED和循環(huán)域解調(diào)的多故障特征提取
一種基于卷積神經(jīng)網(wǎng)絡(luò)的性別識別方法
林芝县| 开鲁县| 延安市| 青田县| 仁寿县| 定州市| 靖边县| 营山县| 大同县| 竹溪县| 自贡市| 尚志市| 盐津县| 奇台县| 峨边| 岑溪市| 冕宁县| 彝良县| 库尔勒市| 吉水县| 荆州市| 长乐市| 浦东新区| 绥棱县| 台东市| 江口县| 确山县| 西丰县| 乐都县| 绿春县| 抚松县| 那坡县| 静乐县| 长顺县| 壶关县| 泉州市| 贵阳市| 子长县| 镇雄县| 尼木县| 志丹县|