王淑青,魯 濠,魯東林,劉逸凡,要若天
(1.湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北武漢 430068;2.華中科技大學(xué)武漢光電國(guó)家研究中心,湖北武漢 430074; 3.武漢大學(xué)電氣與自動(dòng)化學(xué)院,湖北武漢 430072)
印制電路板(printed circuit board)簡(jiǎn)稱PCB板[1],是一種重要的電子部件,作為元器件電氣連接的載體,在電子設(shè)備中應(yīng)用十分廣泛。PCB板在生產(chǎn)校驗(yàn)過(guò)程中,其表面缺陷是大部分PCB板質(zhì)量問(wèn)題的來(lái)源[2]。常見(jiàn)的PCB板分為裸板與組裝板兩類,檢測(cè)方法通常采用半自動(dòng)化的人工檢測(cè)方法,由于PCB裸板線路復(fù)雜,人工檢測(cè)極易導(dǎo)致漏檢、錯(cuò)檢等情況,往往需要重復(fù)工序來(lái)保證合格度,檢測(cè)效率低,人工成本高。主要檢測(cè)方法包括在線測(cè)試、功能測(cè)試等,通過(guò)電氣性質(zhì)進(jìn)行驗(yàn)證測(cè)試,這些方法雖然能夠精準(zhǔn)地檢測(cè)出缺陷,然而測(cè)試流程不能復(fù)用、測(cè)試器具成本高、編寫功能復(fù)雜等因素導(dǎo)致其應(yīng)用受到限制。
隨著深度學(xué)習(xí)以及神經(jīng)網(wǎng)絡(luò)的發(fā)展[3-4],使用機(jī)器視覺(jué)進(jìn)行PCB板缺陷檢測(cè)被廣泛地研究,這種非接觸式的自動(dòng)化檢測(cè)方法容易檢測(cè)出微小模糊的缺陷,提升整個(gè)質(zhì)檢環(huán)節(jié)的效率。王濤等人提出一種改進(jìn)的粒子群算法對(duì)PCB板進(jìn)行檢測(cè),提高了收斂率與抗噪性能,然而檢測(cè)結(jié)果依然受噪聲影響較大[5];董靜毅等人對(duì)圖像分割方法以及機(jī)器學(xué)習(xí)檢測(cè)方法在PCB板檢測(cè)的應(yīng)用進(jìn)行了對(duì)比討論,表明了人工神經(jīng)網(wǎng)絡(luò)在缺陷檢測(cè)的優(yōu)越性[6];J SHEN等人提出一種輕量級(jí)的檢測(cè)模型完成對(duì)PCB板的缺陷檢測(cè)以及字符識(shí)別等功能,結(jié)果表明對(duì)小目標(biāo)的檢測(cè)精度高,有良好的魯棒性[7]。
在上述研究基礎(chǔ)之上,為滿足人工神經(jīng)網(wǎng)絡(luò)在移動(dòng)端以及低成本微小型計(jì)算機(jī)上部署的需求,選擇在目前檢測(cè)精度較高的YOLOv5網(wǎng)絡(luò)上進(jìn)行改進(jìn),將其應(yīng)用在PCB板表面缺陷檢測(cè)中[8]。在主干網(wǎng)絡(luò)中應(yīng)用輕量化模型ShuffleNetV2結(jié)構(gòu),以減少網(wǎng)絡(luò)計(jì)算參數(shù),剔除冗余的特征圖,在保證識(shí)別精度的情況下,大幅降低計(jì)算成本與內(nèi)存占用。改進(jìn)FPN模塊,在增加有限計(jì)算量的情況下,增加上下文信息傳遞。使用PReLU函數(shù)代替ReLU激活函數(shù),解決過(guò)大梯度流過(guò)時(shí)引發(fā)的神經(jīng)元崩壞問(wèn)題,提高模型的收斂性[9]。在擴(kuò)充包含多個(gè)小缺陷的PCB裸板數(shù)據(jù)集上進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,該方法訓(xùn)練速度快、模型結(jié)構(gòu)和參數(shù)壓縮、檢測(cè)精度與效率較高。
PCB板生產(chǎn)過(guò)程中制作環(huán)節(jié)極容易產(chǎn)生缺陷,會(huì)對(duì)后面的加工環(huán)節(jié)產(chǎn)生較大影響。目前PCB裸板的缺陷主要可分為開孔缺失、開路缺陷、短路缺陷、線路缺損、毛刺以及銅缺六大類,缺陷多為小目標(biāo)缺陷,且背景與缺陷分離不明顯[10]?;谄髽I(yè)檢測(cè)需求,需要簡(jiǎn)化檢測(cè)模型,提升小目標(biāo)檢測(cè)精度,在保證檢測(cè)速度的情況下滿足工業(yè)檢測(cè)高精度的要求。
系統(tǒng)整體設(shè)計(jì)構(gòu)架為:首先為保證獲取PCB裸板圖片的分辨率高,不缺失檢測(cè)目標(biāo),采用分區(qū)域式圖像采集。將PCB板劃分為4個(gè)區(qū)域,使用相機(jī)平移和垂直移動(dòng)進(jìn)行拍攝,相鄰區(qū)域有一定重合,這樣既能規(guī)避因圖像低分辨率而導(dǎo)致小目標(biāo)缺陷未能識(shí)別,同時(shí)也能避免因圖像邊緣失真導(dǎo)致缺陷不完整。其次在服務(wù)器上用標(biāo)注好的PCB板數(shù)據(jù)集對(duì)模型進(jìn)行有監(jiān)督的學(xué)習(xí)訓(xùn)練,調(diào)整參數(shù)獲得最優(yōu)權(quán)重。將訓(xùn)練好的模型移植到工業(yè)小型計(jì)算機(jī)中,適配PCB裸板缺陷檢測(cè),由機(jī)械臂或自動(dòng)化分揀工具挑選出有缺陷的電路板。
近年來(lái),深度學(xué)習(xí)作為一項(xiàng)熱門技術(shù),可以通過(guò)提取對(duì)象深層次的特征來(lái)識(shí)別和定位目標(biāo),在工業(yè)檢測(cè)領(lǐng)域得到越來(lái)越多的應(yīng)用。目前主流的目標(biāo)檢測(cè)框架分為one-stage檢測(cè)框架,如YOLO、SSD等[11];two-stage檢測(cè)框架,如Fast-RCNN、Faster-RCNN等。one-stage算法的主要特征是直接通過(guò)主干網(wǎng)絡(luò)來(lái)給出目標(biāo)分類與位置信息,不使用RPN網(wǎng)絡(luò)(區(qū)域推薦網(wǎng)絡(luò)),速度更快,但由于候選區(qū)域未進(jìn)行篩選,存在冗余信息,因此精確度比two-stage算法低。two-stage算法的主要特征是先提取感興趣的CNN卷積特征,第一步訓(xùn)練RPN網(wǎng)絡(luò),第二步訓(xùn)練檢測(cè)的網(wǎng)絡(luò),這樣操作準(zhǔn)確度更高,但速度比one-stage的算法稍慢。本文采用的YOLOv5網(wǎng)絡(luò)構(gòu)架如圖1所示,主要分為Input,Backbone,Neck以及Output四個(gè)部分。
圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)
(1)Input:內(nèi)嵌數(shù)據(jù)增強(qiáng),采用與YOLOv4同樣的處理,對(duì)于小目標(biāo)檢測(cè)實(shí)現(xiàn)隨機(jī)裁剪、縮放、排列的形式進(jìn)行圖片拼接。其次增加自適應(yīng)錨框計(jì)算,在不同的數(shù)據(jù)集自適應(yīng)地選擇最合適的錨點(diǎn)值來(lái)初始化錨框。采用自適應(yīng)圖片縮放,針對(duì)不匹配的圖片進(jìn)行合適的裁剪填充,將尺寸歸一化,提高網(wǎng)絡(luò)的推理速度。
(2)Backbone:提出了Focus結(jié)構(gòu),對(duì)圖片和特征圖進(jìn)行切片操作,分隔像素值進(jìn)行采樣來(lái)保持圖片的原始信息。提取高度和寬度信息到Channels,使得Input channels提升為原來(lái)的4倍,再將新的圖片進(jìn)行卷積操作,得到無(wú)損失信息的二倍采樣圖。采用兩種CSPNet結(jié)構(gòu),將梯度的變化融入到特征圖內(nèi),增強(qiáng)梯度表現(xiàn)的同時(shí)減少計(jì)算量。
(3)Neck:采用SPP模塊,自上而下,通過(guò)上采樣得到的高、低特征層拼接,實(shí)現(xiàn)特征融合并得到新的特征圖,而后通過(guò)PAN(路徑融合網(wǎng)絡(luò))自下而上由弱到強(qiáng)傳遞特征,使得特征層實(shí)現(xiàn)更多的特征融合。
(4)Output:采用GIOU_Loss作為Bounding box的損失函數(shù),相比較YOLOv4采用的CIOU_Loss,優(yōu)化了非極大值抑制效果。
近些年,人工深度神經(jīng)網(wǎng)絡(luò)的研究越來(lái)越成熟,在目標(biāo)識(shí)別、圖像分類、目標(biāo)檢測(cè)方面取得了很大的進(jìn)展。一些主干網(wǎng)絡(luò)例如ResNet和VGG等已經(jīng)能夠獲取比較精準(zhǔn)的圖像分類,然而人工神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)層、參數(shù)量以及配置及要求不斷增加[12-13]。復(fù)雜的網(wǎng)絡(luò)模型通常包含大量參數(shù)量以及計(jì)算復(fù)雜度,其適用于成本高、即時(shí)性要求低的應(yīng)用場(chǎng)景。而特定的場(chǎng)景,需要達(dá)到低延遲、高速率、低成本的要求,例如將深度神經(jīng)網(wǎng)絡(luò)模型應(yīng)用在移動(dòng)設(shè)備端或者微型計(jì)算機(jī)上,完成準(zhǔn)確且快速的實(shí)時(shí)檢測(cè)[14]。為了滿足需求,一些輕量級(jí)的網(wǎng)絡(luò)模型如MobileNet、ShuffleNet、GostNet等相繼提出。ShuffleNet2針對(duì)內(nèi)存消耗依舊過(guò)大等問(wèn)題,在許多方面進(jìn)行了適應(yīng)性的改進(jìn),以滿足更快更準(zhǔn)確的要求,ShuffleNet2與ShuffleNet1的改進(jìn)對(duì)比如圖2所示。
圖2 ShuffleNet2與ShuffleNet1結(jié)構(gòu)對(duì)比
ShuffleNet2主要根據(jù)4個(gè)重要指標(biāo)對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化:
(1)ShuffleNet2的輸入與輸出通道設(shè)置為相同數(shù)量,使得內(nèi)存消耗為最少。假定特征圖大小為h×w,輸入與輸出的通道的數(shù)量分別為C1與C2,以寬和高的卷積為1*1為例。根據(jù)FLOPs和MAC計(jì)算公式:
B=h·w(C1*(1*1)*C2)=h·w·C1·C2
(1)
MAC=h·w·C1+h·w·C2+(1*1)*C1*C2=h·w(C1+C2)+C1·C2
(2)
由均值不等式
(3)
從而
(4)
式中:B為FLOPs(每s浮點(diǎn)運(yùn)算次數(shù));w、h分別為特征圖寬和高;MAC為網(wǎng)絡(luò)層內(nèi)存訪問(wèn)及讀寫消耗成本。
故當(dāng)C1=C2,即輸入通道與輸出通道相等時(shí),內(nèi)存消耗量最小。
(2)ShuffleNet2減少了分組卷積的使用。雖然分組卷積在神經(jīng)網(wǎng)絡(luò)的應(yīng)用能夠減少參數(shù)量,然而單方面的參數(shù)量減小并不能直接提升模型速度,大量使用分組卷積會(huì)顯著增加MAC。同樣假定特征圖大小為h×w,輸入與輸出的通道的數(shù)量分別為C1與C2,以寬和高的卷積為1*1為例,分組數(shù)為g。每個(gè)卷積核會(huì)單獨(dú)與C1/g個(gè)Channel內(nèi)包含的特征進(jìn)行卷積操作,此時(shí)FLOPs和MAC計(jì)算公式為:
(5)
(6)
MAC與FLOPs的關(guān)系為:
(7)
可以看出在FLOPs不變的情況下,分組越多,內(nèi)存訪問(wèn)消耗成本就會(huì)越大。
(3)ShuffleNet2減少了網(wǎng)絡(luò)分支的數(shù)量。通常來(lái)講,網(wǎng)絡(luò)的結(jié)構(gòu)與參數(shù)量共同影響計(jì)算速度,分支加量比層數(shù)加量更加影響推理速度。
(4)ShuffleNet2減少了能夠增加內(nèi)存消耗的Element-wise(基本元素操作),這些操作包含Add、Relu、short cut等。雖然元素操作只增加少量FLOPs,然而其映射到MAC上就會(huì)造成一定量的內(nèi)存損耗與時(shí)間損耗,因此其造成的內(nèi)存消耗也不容忽視,減少元素操作的比重可以減小內(nèi)存消耗。
ShuffleNet2引入一種新的運(yùn)算方式channel split,特征圖輸入時(shí)將通道平均分為2個(gè)分支,2個(gè)分支做同等映射操作,分別都包含3個(gè)連續(xù)的卷積;將輸入通道與輸出通道設(shè)置為相同,同時(shí)不再采用組卷積;2個(gè)分支在分成2個(gè)組后,其有相對(duì)獨(dú)立的特性,組合方式由concat(連接)代替Add(相加),滿足式(5)和式(6)中提及的不增加分支數(shù)量以及減小Element-wise操作。在完成不同分值特征提取后,對(duì)2個(gè)分支連接起來(lái)的結(jié)果采取channel shuffle(通道隨機(jī)洗牌),保證2個(gè)通道的特征能夠交錯(cuò)從而不會(huì)丟失特征信息,這樣操作使得網(wǎng)絡(luò)不需要通過(guò)大量地concat來(lái)保證特征信息的完整性。下采樣過(guò)程中,每個(gè)分支直接保留輸入的信息,隨后將這些分支連接在一起,最終使得特征圖的空間減小為一半,而通道數(shù)翻倍。
根據(jù)ShuffleNet2的特點(diǎn),在YOLOv5s網(wǎng)絡(luò)的基礎(chǔ)上,將主干網(wǎng)絡(luò)部分原始卷積Conv與C3模塊替換為Inverted Residual卷積模塊,同時(shí)根據(jù)式(1)原則設(shè)置主干網(wǎng)絡(luò)的輸入輸出通道數(shù)相等,經(jīng)過(guò)優(yōu)化后的主干網(wǎng)絡(luò)在最后輸出層前保留SPP模塊,有利于整合輸出尺寸與多尺度特征融合,改進(jìn)的主干網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)backbone結(jié)構(gòu)對(duì)比
在PCB板的檢測(cè)中,缺陷大多為小目標(biāo),因此需要增強(qiáng)網(wǎng)絡(luò)對(duì)于小目標(biāo)的特征提取能力。ShuffleNet2添加小卷積核來(lái)提取對(duì)于小目標(biāo)的檢測(cè),然而模型在堆積更多的卷積層后,由于不同大小的感受野之間缺乏交流,模型的特征表達(dá)能力不足,容易引發(fā)特征分辨率與感受野沖突,無(wú)法將兩者有效結(jié)合[15]。
目標(biāo)檢測(cè)中,為確保高分辨率輸入特征接收完整,通常采取的累積卷積層操作會(huì)增加網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度。因此在不堆疊網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,提出在FPN模塊的基礎(chǔ)上添加2個(gè)新的模塊CEM(上下文抽取模塊)和AM(注意力引導(dǎo)模塊),結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)的FPN模塊
CEM接收自下而上通道采集的特征信息,通過(guò)不同比率的多路徑擴(kuò)展卷積,使上下文的信息表達(dá)豐富。可分離的卷積層使獲取的特征圖來(lái)自于不同的感受野,在不同比率路徑中使用可變卷積,提高了空間變換建模的能力,將不同維度學(xué)習(xí)的特征歸一化。連接方式采用密集連接,將每個(gè)擴(kuò)展層的輸入輸出相連,共同傳遞到下一個(gè)擴(kuò)展層,有效地整合多尺度特征信息,從而加強(qiáng)上下層之間的特征強(qiáng)傳遞。
AM由CxAM和CnAM兩個(gè)部分組成,主要為了剔除CEM接收的感受野中冗余的信息,消除在語(yǔ)義與位置間傳遞的錯(cuò)誤信息。
CxAM(上下文注意力模塊)可以獲取不同子區(qū)域之間的語(yǔ)義依賴,當(dāng)包含多尺度感受野的特征信息傳遞進(jìn)來(lái)時(shí),CxAM通過(guò)提煉各個(gè)子區(qū)域之間的相關(guān)性,使得輸出特征語(yǔ)義更加清晰。
CnAM(內(nèi)容注意模塊)會(huì)捕捉更為精準(zhǔn)的目標(biāo)位置信息,使用卷積層對(duì)特定特征映射進(jìn)行轉(zhuǎn)換,消除因可變卷積操作導(dǎo)致的圖像位置偏移與幾何信息損壞。
主干網(wǎng)絡(luò)采用的ShuffleNet2結(jié)構(gòu),其卷積層激活函數(shù)為ReLu激活函數(shù),為非飽和激活函數(shù),也是目前人工神經(jīng)網(wǎng)絡(luò)比較常見(jiàn)的激活函數(shù),其計(jì)算公式為:
(8)
ReLu的兩大優(yōu)勢(shì)為克服了梯度消失問(wèn)題以及提升了訓(xùn)練速度[16]。然而使用ReLu激活函數(shù)也有缺點(diǎn):訓(xùn)練時(shí)當(dāng)負(fù)值或非常大的梯度流過(guò)神經(jīng)元時(shí),會(huì)造成ReLu神經(jīng)元“死亡”,無(wú)論之后怎樣更新參數(shù),神經(jīng)元的梯度為0,同時(shí)ReLu的輸出為非負(fù)數(shù),梯度更新的隨機(jī)性差。為了解決上述不足,采用其變體函數(shù)PReLu激活函數(shù)來(lái)代替ReLu,其結(jié)構(gòu)對(duì)比見(jiàn)圖5。
圖5 激活函數(shù)結(jié)構(gòu)對(duì)比
PReLu在ReLu以及Leaky ReL的基礎(chǔ)上進(jìn)行了優(yōu)化,不僅解決了ReLu的兩大缺點(diǎn),同時(shí)也解決了Leaky ReLu無(wú)法學(xué)習(xí)導(dǎo)致對(duì)于正負(fù)結(jié)果預(yù)測(cè)不一致的缺點(diǎn),其計(jì)算公式為:
(9)
式中:α為0到1正態(tài)分布的隨機(jī)數(shù);i為不同的通道。
PReLu在反向傳播的過(guò)程中,當(dāng)激活函數(shù)值小于0時(shí),仍可以給出一個(gè)非零的計(jì)算梯度,在模型只增加極少參數(shù)的情況下解決了反向神經(jīng)元崩壞的問(wèn)題。并且隨機(jī)學(xué)習(xí)動(dòng)量因子α滿足0到1的正態(tài)分布,在反向傳播過(guò)程中增加了梯度的隨機(jī)性,提高參數(shù)的泛化性,避免陷入局部最優(yōu)。
訓(xùn)練數(shù)據(jù)圖片部分來(lái)源于公開PCB板缺陷數(shù)據(jù)集,由于缺陷種類及數(shù)量不足,可能影響模型泛化性,因此在原圖片集基礎(chǔ)上,通過(guò)工廠實(shí)際拍攝擴(kuò)充圖片,并將部分無(wú)缺陷樣本采取人工合成缺陷的方式加工為包含多種缺陷的樣本。采取隨機(jī)翻轉(zhuǎn)、加噪等方式對(duì)差異大、數(shù)量少的缺陷擴(kuò)充樣本容量[17]。最后得到4 000張圖片,采集的缺陷種類如圖6所示,將圖片數(shù)量按照9:1劃分訓(xùn)練集與測(cè)試集。
圖6 PCB板缺陷種類
本實(shí)驗(yàn)環(huán)境為Ubuntu16.04操作系統(tǒng),采用pytorch框架,GPU為GeForce RTX 2070 SUPER,內(nèi)存為16 GB,加速庫(kù)為CUDA 11.1.96。
采用Labelmg標(biāo)注工具對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注。劃分為6種缺陷。選擇預(yù)訓(xùn)練模型為改進(jìn)后的YOLOV5s模型。訓(xùn)練優(yōu)化采用Adam算法,Batch-size設(shè)置為16;總迭代次數(shù)設(shè)置為800次;動(dòng)量因子值為0.9;權(quán)重衰減系數(shù)設(shè)置為0.000 5;采用預(yù)熱重啟更新學(xué)習(xí)率,初始學(xué)習(xí)速率設(shè)置為0.001。本文選取的評(píng)價(jià)指標(biāo)為精準(zhǔn)度(Precision)、召回率(Recall),經(jīng)過(guò)平滑后的訓(xùn)練結(jié)果曲線如圖7所示。
圖7 改進(jìn)算法的精準(zhǔn)度與召回率曲線
在訓(xùn)練集上對(duì)改進(jìn)后的算法模型與原算法模型分別進(jìn)行對(duì)比實(shí)驗(yàn),兩種算法的模型性能參數(shù)對(duì)比如表1所示。
表1 算法性能參數(shù)對(duì)比
從圖7可以看出輕量化后的模型訓(xùn)練效果較好,精準(zhǔn)率與召回率迭代至550輪左右趨于穩(wěn)定,數(shù)值較高且較快地收斂,符合輕量化目標(biāo)檢測(cè)模型在小型計(jì)算機(jī)平臺(tái)上的檢測(cè)精度與速度要求[18]。精確率P和召回率R的計(jì)算公式如式(10)所示:
(10)
式中:TP為正類預(yù)測(cè)為正類的數(shù)量;FN為正類預(yù)測(cè)為負(fù)類的數(shù)量;FP為負(fù)類預(yù)測(cè)為正類的數(shù)量。
在測(cè)試集對(duì)PCB裸板缺陷進(jìn)行測(cè)試。測(cè)試圖片包含600個(gè)缺陷樣本,查準(zhǔn)率為98.3%,誤檢率為3.2%,漏檢率為0.6%。驗(yàn)證結(jié)果如圖8所示。
圖8 測(cè)試集PCB板缺陷檢測(cè)效果
圖8中檢測(cè)框上的數(shù)值表示置信度,即判定該缺陷屬于這類缺陷的概率,最高為1。在查準(zhǔn)的情況下,置信度越高,代表檢測(cè)效果越可靠;在誤檢的情況下,置信度通常較低,表明檢測(cè)目標(biāo)無(wú)缺陷或誤檢為其他種類缺陷[19]。
由于線路開路與銅缺等類型的缺陷與少量PCB板正常紋路接近,模型提取這類缺陷特征時(shí)存在干擾,會(huì)造成誤檢的情況,生產(chǎn)中通常設(shè)置一定置信度閾值將誤檢樣本進(jìn)行篩除。總體上檢測(cè)精度較高,置信度均值在90%以上,可以將該算法應(yīng)用于PCB板質(zhì)量檢測(cè)中。
將改進(jìn)后的網(wǎng)絡(luò)算法與原網(wǎng)絡(luò)算法、Faster RCNN、YOLOv4三種算法進(jìn)行對(duì)比,在硬件平臺(tái)相同的情況下,盡量保證適合每種算法最優(yōu)的輸入圖像尺寸與訓(xùn)練批次。測(cè)試結(jié)果如表2所示。
表2 4種算法性能指標(biāo)對(duì)比
由表2可知,本文算法在精準(zhǔn)率提高的同時(shí),檢測(cè)速率也進(jìn)行了優(yōu)化;與YOLOv4、Faster RCNN、YOLOv5s相比,精準(zhǔn)度分別提升了9.4%、8.1%和2.9%,召回率分別提升了4.7%、9.5%和5.9%。在檢測(cè)速度上,由于運(yùn)行內(nèi)存占量的大幅下降,改進(jìn)后的算法比原網(wǎng)絡(luò)稍低,但也達(dá)到了56幀/s的檢測(cè)速率,完全能夠滿足生產(chǎn)線實(shí)時(shí)檢測(cè)的要求[20-21]。
本文針對(duì)人工PCB板缺陷檢測(cè)效果較差、傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)參數(shù)多、計(jì)算力要求高、無(wú)法在小型計(jì)算機(jī)上部署的問(wèn)題,提出優(yōu)化YOLOv5s算法,使用ShuffleNet2輕量化模塊改進(jìn)主干網(wǎng)絡(luò),大幅降低了參數(shù)量與計(jì)算力。在FPN模塊添加上下文抽取和注意力機(jī)制來(lái)增強(qiáng)上下文表達(dá)和特征信息傳遞。在神經(jīng)元上使用PreLu激活函數(shù)來(lái)解決訓(xùn)練中神經(jīng)元崩壞的問(wèn)題。
改進(jìn)后的算法檢測(cè)精度提高,同時(shí)壓縮模型,降低硬件要求,能夠?qū)崿F(xiàn)工業(yè)小型計(jì)算機(jī)系統(tǒng)對(duì)PCB板實(shí)時(shí)檢測(cè)需求。由于樣本容量有限,一些缺陷類別訓(xùn)練樣本較少,存在少量正常線路誤檢的問(wèn)題,后續(xù)將會(huì)擴(kuò)展缺陷樣本、繼續(xù)優(yōu)化算法,完善對(duì)更多小目標(biāo)缺陷的檢測(cè)識(shí)別。