嚴(yán)格
(浙江同濟(jì)科技職業(yè)學(xué)院 浙江省杭州市 310000)
電子行業(yè)能夠得以快速發(fā)展是以印刷電路板作為其基礎(chǔ)而得以實(shí)現(xiàn),主要是由于印刷電路板為各類(lèi)元器件提供連接與支撐。在絕大多數(shù)電子產(chǎn)品中,印刷電路板都起著舉足輕重的作用,因此PCB的質(zhì)量與電子產(chǎn)品能否正常運(yùn)行有著密不可分的聯(lián)系,但由于PCB制作工藝復(fù)雜,在制造過(guò)程中存在一些不確定因素,造成PCB在生產(chǎn)過(guò)程中產(chǎn)生缺陷,有缺陷的PCB會(huì)嚴(yán)重妨礙正常的生產(chǎn)制造,因此針對(duì)PCB缺陷檢測(cè)顯得尤為重要。常見(jiàn)PCB的缺陷主要有余銅、鼠咬、斷路、短路、毛刺5類(lèi)缺陷,如圖1所示。由于缺陷的存在,會(huì)使PCB性能降低或?qū)е聼o(wú)法使用。
圖1:常見(jiàn)PCB缺陷圖
關(guān)于PCB缺陷檢測(cè),傳統(tǒng)的檢測(cè)方法是以人工、電學(xué)及光學(xué)檢測(cè)進(jìn)行,這些方法對(duì)于硬件有很強(qiáng)的依賴(lài)性,且容易受到干擾,其準(zhǔn)確率和效率都不是很高。隨著圖像處理技術(shù)的蓬勃發(fā)展與計(jì)算機(jī)視覺(jué)領(lǐng)域的研究愈加深入,針對(duì)PCB缺陷檢測(cè)也發(fā)展到了新的階段,基于視覺(jué)的PCB缺陷檢測(cè)得到了長(zhǎng)足的發(fā)展,目前主流的算法有包括參考法、費(fèi)參考法和混合法三種方法。對(duì)于參考法來(lái)說(shuō),其是基于模板匹配的,把需檢測(cè)的PCB板圖像與無(wú)缺陷PCB樣板比較,識(shí)別出其存在的缺陷,該類(lèi)方法實(shí)現(xiàn)簡(jiǎn)單,適合用于幾何特征明顯的圖像。但存在對(duì)PCB板位置切合度要求高、受環(huán)境光照影響較大、存儲(chǔ)需要較大等問(wèn)題,不過(guò)此方法仍舊是目前較為主流的檢測(cè)方法。對(duì)于非參考法來(lái)說(shuō),其無(wú)需與標(biāo)準(zhǔn)PCB樣板圖像進(jìn)行對(duì)比,該方法是按照設(shè)計(jì)規(guī)則對(duì)待測(cè)圖像進(jìn)行檢測(cè),根據(jù)對(duì)待測(cè)圖像進(jìn)行分析,判斷其與規(guī)則是否一致,進(jìn)而判定是否存在缺陷。例如根據(jù)IPC標(biāo)準(zhǔn),當(dāng)電路中正常導(dǎo)線(xiàn)斷開(kāi)時(shí),電流無(wú)法按照既定設(shè)計(jì)方式正常工作。該方法相比于參考法一定程度上提高了檢測(cè)率,但隨之而來(lái)的是對(duì)于能發(fā)現(xiàn)的缺陷減少,有些常見(jiàn)的缺陷也無(wú)法識(shí)別檢測(cè)。對(duì)于混合法來(lái)說(shuō),該方法將上述兩種方法相結(jié)合,準(zhǔn)確率得到了較大的提高,但由于算法較復(fù)雜,實(shí)際很少應(yīng)用。
當(dāng)前在缺陷檢測(cè)領(lǐng)域,深度學(xué)習(xí)的使用越來(lái)越受歡迎。有一些研究已經(jīng)嘗試將深度學(xué)習(xí)和印刷電路板缺陷檢測(cè)工作進(jìn)行有機(jī)的融合,其中較為常用的方法是基于Faster-RCNN算法的PCB缺陷檢測(cè)方法,此類(lèi)方法是一種目標(biāo)檢測(cè)算法,首先對(duì)每種類(lèi)型缺陷進(jìn)行人工標(biāo)記后,然后通過(guò)采集海量原始PCB樣本完成圖像建立數(shù)據(jù)集后進(jìn)行訓(xùn)練,與現(xiàn)有傳統(tǒng)方法相比,本文的方法將準(zhǔn)確率提升到了一個(gè)新的高度。但由于是針對(duì)大量PCB原始樣本的訓(xùn)練,選用的模型層數(shù)較多,導(dǎo)致其耗時(shí)過(guò)長(zhǎng)。通過(guò)對(duì)當(dāng)前深度學(xué)習(xí)識(shí)別印刷電路板缺陷方法的廣泛研究,結(jié)合現(xiàn)有傳統(tǒng)PCB缺陷檢測(cè)技術(shù)即參考法的基礎(chǔ)之上,提出了一種全新的PCB缺陷識(shí)別方法,該方法結(jié)合了成熟的圖像差分與前沿的深度學(xué)習(xí)算法,在方案實(shí)現(xiàn)效率、系統(tǒng)復(fù)雜度、識(shí)別準(zhǔn)確度上達(dá)到了一種新的平衡。算法主體思路是,缺陷檢測(cè)-缺陷提取-缺陷模型訓(xùn)練-缺陷分類(lèi)識(shí)別。首先采用基于正反向的圖像差分算法對(duì)PCB面板進(jìn)行缺陷檢測(cè),通過(guò)輪廓提取算法結(jié)合形態(tài)學(xué)操作,把PCB局部疑似缺陷位置的圖像提取出來(lái),而后搭建出疑似缺陷圖像數(shù)據(jù)集,最后再使用ResNET-34網(wǎng)絡(luò)架構(gòu),構(gòu)建PCB缺陷分類(lèi)器。構(gòu)建分類(lèi)器的過(guò)程中會(huì)結(jié)合遷移學(xué)習(xí)訓(xùn)練該模型,缺陷識(shí)別策略整體流程如圖2所示。
圖2:PCB缺陷識(shí)別策略
針對(duì)PCB缺陷的分類(lèi)識(shí)別,缺陷的檢測(cè)與提取是其實(shí)現(xiàn)的前提。在進(jìn)行模型訓(xùn)練之前需要提取得到五類(lèi)PCB缺陷樣本圖像。基于此,本文采用了一種基于正反向圖像差分算法的 PCB缺陷檢測(cè)方法,并結(jié)合輪廓提取及圖像形態(tài)學(xué)處理實(shí)現(xiàn)PCB缺陷提取的策略。
正反向圖像差分法檢測(cè)PCB缺陷是基于圖像的減法,將原始參考圖像和對(duì)比圖像對(duì)應(yīng)位置的像素點(diǎn)數(shù)值作減法運(yùn)算,凸顯出它們的差異,忽略它們的相同與相似之處。這樣可以得到兩幅圖像的差異信息,其數(shù)學(xué)表達(dá)式為:
在目前PCB批量生產(chǎn)中,最為常見(jiàn)的方式是以標(biāo)準(zhǔn)圖像作為樣板進(jìn)行制作生產(chǎn)。本文提出的方法是利用標(biāo)準(zhǔn)無(wú)缺陷樣本圖像作為參照進(jìn)行求差,與需檢測(cè)圖像進(jìn)行正向與反向二次運(yùn)算,其數(shù)學(xué)表達(dá)式如下:
圖3:標(biāo)準(zhǔn)PCB圖像
圖4:待測(cè)PCB圖像
圖5:檢測(cè)到的PCB缺陷
圖6:疑似缺陷提取
為了驗(yàn)證本檢測(cè)提取策略的可靠性,采用DeepPCB提供的PCB圖像數(shù)據(jù)庫(kù)進(jìn)行實(shí)驗(yàn)驗(yàn)證,隨機(jī)選取100張PCB圖像進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,本策略除誤檢測(cè)的無(wú)缺陷部位外,可將疑似存在PCB缺陷的圖像均檢測(cè)到。
采用輪廓提取的目的是為了在上節(jié)圖像差分法檢測(cè)得到的缺陷圖像中,找出每一個(gè)潛在缺陷的輪廓位置信息,并為每個(gè)潛在缺陷圖像建立單獨(dú)文件存儲(chǔ)。該輪廓提取的過(guò)程主要使用OpenCV中findContours()函數(shù),經(jīng)過(guò)形態(tài)學(xué)操作,得到每一個(gè)潛在缺陷的輪廓。在得到輪廓后遍歷每一個(gè)潛在缺陷的輪廓并使用Boundingrec()函數(shù)獲取輪廓的最小外界矩形,得到其位置坐標(biāo)信息。需要說(shuō)明的是由于PCB缺陷通常都是微小的,單純的查找提取潛在缺陷的輪廓及外接矩形位置很難描述其具體是哪一部分的缺陷,也為了方便后續(xù)人工標(biāo)注缺陷,所以將外界矩形邊界向外擴(kuò)大20像素,并使用擴(kuò)大后的矩形在已檢測(cè)到的缺陷的圖像中截取每一個(gè)潛在缺陷小圖文件并保存,得到的實(shí)驗(yàn)結(jié)果如圖7所示。至此,完成了PCB圖像缺陷特征的提取。
圖7:缺陷圖像輪廓提取
深度學(xué)習(xí)對(duì)數(shù)據(jù)量和模型訓(xùn)練時(shí)間的要求遠(yuǎn)遠(yuǎn)超出傳統(tǒng)方法。數(shù)據(jù)集樣本的數(shù)量和質(zhì)量的好壞與深度學(xué)習(xí)模型的好壞有著非常密切的關(guān)聯(lián)。本文需要對(duì)缺陷圖像進(jìn)行分類(lèi)訓(xùn)練,在訓(xùn)練之前,運(yùn)用DeepPCB數(shù)據(jù)集,使用基于正反向圖像差分算法的PCB缺陷檢測(cè)策略提取20000張“潛在”缺陷特征圖像建立所需數(shù)據(jù)庫(kù),包括五類(lèi)常見(jiàn)PCB缺陷以及無(wú)缺陷的圖像。標(biāo)記后的缺陷圖像存儲(chǔ)于CSV文件,每個(gè)CSV文件,包含了圖片文件路徑和與其缺陷類(lèi)型標(biāo)注。
本節(jié)主要介紹缺陷分類(lèi)器的訓(xùn)練過(guò)程。充分發(fā)揮遷移學(xué)習(xí)在節(jié)約訓(xùn)練時(shí)間方面的優(yōu)勢(shì),在前文搭建好的數(shù)據(jù)集上,結(jié)合預(yù)訓(xùn)練模型對(duì)目標(biāo)圖像分類(lèi)器進(jìn)行充分訓(xùn)練。在現(xiàn)今所有開(kāi)源學(xué)習(xí)框架中,PyTorch是最流行的工具之一。它可以充分地發(fā)揮計(jì)算機(jī)中央處理器和圖像處理器的運(yùn)算能力進(jìn)行深度學(xué)習(xí)。為了減少訓(xùn)練時(shí)間和CPU需求,從torchvision下載一個(gè)預(yù)訓(xùn)練的PyTorch模型。Torchivision是pytorch工程的一部分,它包含了常用的數(shù)據(jù)集、模型架構(gòu)和通用的機(jī)器視覺(jué)圖像轉(zhuǎn)換工具。預(yù)訓(xùn)練模型已經(jīng)針對(duì)機(jī)器視覺(jué)數(shù)據(jù)集進(jìn)行了訓(xùn)練,經(jīng)過(guò)遷移學(xué)習(xí)后可以直接用于PCB缺陷檢測(cè)中。眾所周知,模型的性能與網(wǎng)絡(luò)深度有著密不可分的關(guān)系,網(wǎng)絡(luò)層數(shù)增加,可以提取更為復(fù)雜的特征。一般認(rèn)為更深層次的模型,得到的效果會(huì)更好。但在研究中發(fā)現(xiàn),隨著深度的加深,模型的性能是會(huì)有一定的提升,但隨之而來(lái)的是模型的準(zhǔn)確度會(huì)處于飽和、存在網(wǎng)絡(luò)退化等問(wèn)題的出現(xiàn)。殘差結(jié)構(gòu)的特點(diǎn)是,可將原始輸入信息直接應(yīng)用于后面的層中,而位于該層的神經(jīng)網(wǎng)絡(luò)可只學(xué)習(xí)上一個(gè)網(wǎng)絡(luò)輸出的殘差,換言之就是該層無(wú)需學(xué)習(xí)整個(gè)的輸出。殘差學(xué)習(xí)結(jié)構(gòu)如圖8所示。ResNet是由何凱明等人提出的一種深度殘差卷積神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)有ResNet-34、ResNet-50、ResNet-101等, 結(jié)合本文是在PCB缺陷特征提取的基礎(chǔ)之上,且采用缺陷小圖作為訓(xùn)練數(shù)據(jù)并結(jié)合實(shí)驗(yàn)室樣本數(shù)據(jù)進(jìn)行訓(xùn)練,故采用較少的網(wǎng)絡(luò)層數(shù)即可。本文選取ResNet-34網(wǎng)絡(luò)架構(gòu)進(jìn)行訓(xùn)練,該結(jié)構(gòu)以3x3x256的卷積,用來(lái)降低參數(shù)數(shù)目。如圖9所示為ResNet34的總體結(jié)構(gòu)。
圖8:殘差結(jié)構(gòu)示意圖
圖9:ResNet34總體結(jié)構(gòu)示意圖
訓(xùn)練時(shí),首先將在PyTorch預(yù)訓(xùn)練的RestNet-34模型進(jìn)行遷移,用于特征提取網(wǎng)絡(luò)的參數(shù)初始化;初始階段,維持卷積層的權(quán)值不變,用來(lái)進(jìn)行深層特征的提取,此時(shí)只將模型的全連層進(jìn)行訓(xùn)練。在訓(xùn)練深度學(xué)習(xí)模型時(shí),模型性能的好壞和學(xué)習(xí)率及相關(guān)參數(shù)的選取有極大的關(guān)系。而且,模型中的不同層受益于每個(gè)層有差異的學(xué)習(xí)率。因此接下來(lái)在對(duì)最后幾個(gè)卷積層的權(quán)值進(jìn)行微調(diào)時(shí),在所有層中使用相同的學(xué)習(xí)率是沒(méi)有意義的,為了減少模型因參數(shù)變化造成的信息缺少,最終選擇較低的學(xué)習(xí)率進(jìn)行。
為進(jìn)一步驗(yàn)證算法的有效性,實(shí)驗(yàn)選取20000個(gè)圖像樣本,并按照斷路、短路、余銅、鼠咬、毛刺及正常六類(lèi)進(jìn)行分類(lèi),將其按照按一定比例做成圖像訓(xùn)練集和圖像測(cè)試集。訓(xùn)練和測(cè)試樣本合計(jì)分布如表1所示。
表1:訓(xùn)練和測(cè)試樣本合計(jì)分布
采用本文方法進(jìn)行PCB缺陷分類(lèi),并對(duì)每一類(lèi)缺陷識(shí)別率進(jìn)行分析,統(tǒng)計(jì)結(jié)果如表2所示。從結(jié)果可知,對(duì)PCB常見(jiàn)五類(lèi)缺陷及無(wú)缺陷PCB的識(shí)別準(zhǔn)確率分別為短路識(shí)別準(zhǔn)確度為97.63%,斷路識(shí)別準(zhǔn)確度為97.14%,鼠咬識(shí)別準(zhǔn)確度為93.61%,余銅識(shí)別準(zhǔn)確度為89.57%,毛刺識(shí)別準(zhǔn)確度為92.38%,正常無(wú)缺陷PCB識(shí)別準(zhǔn)確度為89.36%,故采用本文提出的PCB缺陷識(shí)別平均準(zhǔn)確率為93.23%,在實(shí)際工程應(yīng)用中能夠發(fā)揮一定作用。
表2:各類(lèi)缺陷檢測(cè)指標(biāo)結(jié)果
本文針對(duì)傳統(tǒng)參考法在進(jìn)行PCB缺陷檢測(cè)時(shí)對(duì)位置、模板、要求較高且容易受外部影響等問(wèn)題,并結(jié)合當(dāng)前深度學(xué)習(xí)檢測(cè)識(shí)別PCB缺陷的方法,提出了一種基于遷移學(xué)習(xí)的PCB缺陷檢測(cè)識(shí)別方法。在缺陷提取階段,提出一種基于正反向的圖像差分算法,檢測(cè)出所有可能出現(xiàn)缺陷的局部PCB圖像,將它們標(biāo)記為五類(lèi)缺陷和無(wú)缺陷的類(lèi)型數(shù)據(jù)集;在缺陷識(shí)別階段,使用ResNET-34構(gòu)建缺陷圖像類(lèi)型分類(lèi)器。還使用了主流開(kāi)源預(yù)訓(xùn)練模型進(jìn)行遷移學(xué)習(xí),實(shí)現(xiàn)了既定目標(biāo)中的缺陷分類(lèi)器。通過(guò)實(shí)驗(yàn)表明,使用本文采用的方法進(jìn)行PCB缺陷識(shí)別,平均識(shí)別率為93.23%,證明了本文提出的方法行之有效,為企業(yè)生產(chǎn)檢測(cè)PCB板工藝流程中提供有參考價(jià)值的方法。