耿朝暉,龔濤
(東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海 201620)
步入21世紀(jì),電子工業(yè)和電子產(chǎn)品需求發(fā)展很快,而電子工業(yè)產(chǎn)品最基礎(chǔ)部件之一PCB板的應(yīng)用也越來(lái)越廣泛。但在實(shí)際的生產(chǎn)過(guò)程中,電路板表面可能會(huì)產(chǎn)生諸多缺陷,進(jìn)而對(duì)電路板性能產(chǎn)生影響,使用問(wèn)題嚴(yán)重電路板產(chǎn)品,會(huì)造成經(jīng)濟(jì)損失,甚至可能對(duì)使用者造成傷害。因此,針對(duì)PCB板表面缺陷檢測(cè)顯得十分重要。在傳統(tǒng)的方法中,主要是通過(guò)人工目測(cè)[1],不僅需要消耗大量人力,且受限于工人經(jīng)驗(yàn)生理等因素,易造成錯(cuò)誤檢測(cè)等問(wèn)題,甚至引發(fā)事故。
隨著工業(yè)發(fā)展,逐漸開(kāi)始使用基于機(jī)器視覺(jué)的缺陷檢測(cè)方法[2],傳統(tǒng)方法所引起的人員疲勞和效率低下等問(wèn)題有了一定改善。目前常見(jiàn)的機(jī)器視覺(jué)方法有特征分類(lèi)、閾值分割等方法。而以機(jī)器視覺(jué)技術(shù)為基礎(chǔ)的自動(dòng)光學(xué)檢測(cè)系統(tǒng)(AOI)更是有著廣泛的應(yīng)用[3]。雖然機(jī)器視覺(jué)的方法已經(jīng)在多方面都有著成功的應(yīng)用,但在實(shí)際應(yīng)用中,檢測(cè)環(huán)境復(fù)雜且多變,缺陷檢測(cè)對(duì)細(xì)節(jié),精度方面也有著越來(lái)越高的要求?;跈C(jī)器視覺(jué)的缺陷檢測(cè)方法的局限性逐漸凸現(xiàn)出來(lái)。
近年來(lái),深度學(xué)習(xí)得到了快速的發(fā)展,在多方面都有著優(yōu)秀的表現(xiàn)[4]。Yann LeCun[5]所提出的卷積神經(jīng)網(wǎng)絡(luò),相比傳統(tǒng)算法也體現(xiàn)出的較強(qiáng)魯棒性。隨著AlexNet、VGGNet、GoogleNet等算法網(wǎng)絡(luò)提出,深度學(xué)習(xí)方法也得到了不斷地發(fā)展。目前,深度學(xué)習(xí)在目標(biāo)檢測(cè)的主流方法中,主要分為兩類(lèi),其中單階段檢測(cè)算法是直接在輸入圖像上回歸出物體的類(lèi)別概率和位置坐標(biāo),如YOLO、SSD等算法[6],其檢測(cè)速度相對(duì)較快,但也因此損失了部分檢測(cè)精度。另一類(lèi)是二階段檢測(cè)算法,如R-CNN系列算法[7],先從圖像提取出目標(biāo)的可能的候選區(qū)域,然后再用分類(lèi)與回歸器,得到目標(biāo)的類(lèi)別與位置。雖然速度相對(duì)較慢,但因更高的精度,也被更廣泛的應(yīng)用。
實(shí)際圖像中,PCB板的缺陷相對(duì)較小,且與背景色極其相似,因此本文選取檢測(cè)精度更高的Faster R-CNN檢測(cè)算法,針對(duì)小目標(biāo)難以檢測(cè)的情況,主干網(wǎng)絡(luò)選取為ResNet50并構(gòu)建特征金字塔進(jìn)行多尺度特征融合,并將損失函數(shù)替換為focal loss來(lái)提升檢測(cè)效果。通過(guò)算法改進(jìn)前后的PCB板圖像缺陷檢測(cè)實(shí)驗(yàn),并進(jìn)行mAP值的對(duì)比來(lái)驗(yàn)證提出方法的有效性。
Faster R-CNN是二階段檢測(cè)算法中的代表算法,是在R-CNN及Fast R-CNN檢測(cè)算法上進(jìn)行改進(jìn)的,基本結(jié)構(gòu)是由Fast R-CNN網(wǎng)絡(luò)加上RPN網(wǎng)絡(luò)兩部分組成,如圖1所示。之前的R-CNN系列算法都是通過(guò)選擇性搜索提取候選區(qū)域,其速度慢且計(jì)算量巨大。RPN網(wǎng)絡(luò)的提出,取代了選擇性搜索,且與Fast R-CNN網(wǎng)絡(luò)共享卷積層參數(shù),使得檢測(cè)時(shí)只需進(jìn)行一次特征提取,實(shí)現(xiàn)了端到端的檢測(cè),減少了計(jì)算量并極大地提高了網(wǎng)絡(luò)檢測(cè)的速度[8]。
圖1 Faster R-CNN結(jié)構(gòu)圖
RPN網(wǎng)絡(luò)中使用了anchor機(jī)制,通過(guò)話筒窗口的方式來(lái)遍歷卷積,通過(guò)分類(lèi)層與回歸定位層,分別獲得2k個(gè)類(lèi)別信息與4k個(gè)檢測(cè)框位置信息。通過(guò)RPN網(wǎng)絡(luò)得到的區(qū)域建議框,再通過(guò)ROI pooling層轉(zhuǎn)換到固定的尺寸,然后經(jīng)過(guò)全連接層進(jìn)行最終分類(lèi)及位置的二次回歸,如圖2所示。
圖2 RPN結(jié)構(gòu)圖
一般情況下,隨著網(wǎng)絡(luò)層數(shù)的加深,卷積網(wǎng)絡(luò)能夠提取到更深層次的特征。但是經(jīng)過(guò)長(zhǎng)期研究發(fā)現(xiàn),一味增加網(wǎng)絡(luò)層數(shù)深度,到達(dá)一定程度則會(huì)產(chǎn)生退化及梯度消失和爆炸問(wèn)題,從而使檢測(cè)性能下降。隨著ResNet的提出,也有效解決了網(wǎng)絡(luò)層次的加深所帶來(lái)的問(wèn)題。ResNet設(shè)計(jì)了殘差學(xué)習(xí)模塊,如圖3所示。通過(guò)在前饋網(wǎng)絡(luò)中加入短路連接(shortcut connection)的方式,實(shí)現(xiàn)恒等映射,來(lái)降低計(jì)算的復(fù)雜度,可由公式(1)表示,式中H(x)表示殘差模塊的結(jié)果輸出,F(xiàn)(x)表示要學(xué)習(xí)的殘差參數(shù),可極大提升網(wǎng)絡(luò)結(jié)構(gòu)。
H(x):=F(x)+x
(1)
殘差網(wǎng)絡(luò)有著多種層次結(jié)構(gòu),本文選用常用的ResNet50作為基礎(chǔ)網(wǎng)絡(luò),可較好地保證缺陷檢測(cè)效果。
圖3 殘差結(jié)構(gòu)
電路板缺陷檢測(cè)中,通常識(shí)別的目標(biāo)尺寸較小。為了提升對(duì)小目標(biāo)的檢測(cè)效果,提出基于特征金字塔的多尺度的檢測(cè)網(wǎng)絡(luò)來(lái)進(jìn)行多尺度特征融合[9]。特征金字塔主要是通過(guò)自下而上、自上而下和橫向連接三部分組成的。通過(guò)融合不同層級(jí)特征,來(lái)獲得豐富的語(yǔ)義特征信息。自下而上的卷積是特征提取網(wǎng)絡(luò)的正常過(guò)程。選取ResNet作為主干網(wǎng)絡(luò),用C1-C5來(lái)分別表示ResNet中每個(gè)階段池化后的特征圖的輸出,同時(shí)每一階輸出的特征圖像在尺寸上相差2倍。自上而下的路徑首先是從最上方的C5開(kāi)始進(jìn)行最近鄰上采樣,通過(guò)1×1的卷積層.產(chǎn)生低分辨率特征信息,然后通過(guò)上采樣將特征放大一倍,通過(guò)橫向連接與C4層有著相同尺寸的特征圖像進(jìn)行融合,并將融合后的特征圖像通過(guò)3×3 的卷積核,來(lái)避免上采用產(chǎn)生的混疊效應(yīng),進(jìn)而得到新的具有強(qiáng)語(yǔ)義信息的融合特征圖像,記為P2-P5,如圖4所示。
由于多層特征的圖像分辨率不同,執(zhí)行多尺度特征映射時(shí),針對(duì)不同尺度的區(qū)域候選框,通過(guò)公式(2)來(lái)對(duì)金字塔的等級(jí)進(jìn)行計(jì)算。
(2)
圖4 多尺度特征融合
其中,數(shù)字224是所用電路板數(shù)據(jù)集圖像的尺寸,k0為基礎(chǔ)網(wǎng)絡(luò)中通過(guò)卷積網(wǎng)絡(luò)映射出特征圖像的層次。w,h為生成候選框的寬和高。通過(guò)融合各個(gè)層級(jí)的特征,使得最終的特征圖同時(shí)具有強(qiáng)語(yǔ)義信息和強(qiáng)空間信息,逐步提高網(wǎng)絡(luò)對(duì)不同尺度缺陷檢測(cè)的能力。
傳統(tǒng)的Faster R-CNN算法中,默認(rèn)目標(biāo)分類(lèi)損失使用的是多類(lèi)別交叉熵?fù)p失函數(shù)。檢測(cè)的電路板圖像中,缺陷通常只占有極小的區(qū)域,正負(fù)樣本區(qū)域極其不平衡,負(fù)樣本數(shù)量過(guò)大也會(huì)對(duì)損失函數(shù)產(chǎn)生一定影響。而在識(shí)別過(guò)程中,簡(jiǎn)單的樣本也會(huì)導(dǎo)致對(duì)困難樣本的學(xué)習(xí)能力下降[10]。因此,本文按照公式(3)使用focal loss損失函數(shù)。
(3)
其中,y為真實(shí)值,y′為預(yù)測(cè)的概率值,α為調(diào)節(jié)正負(fù)類(lèi)的矯正系數(shù),γ用來(lái)調(diào)節(jié)樣本損失權(quán)重,一般取2。通過(guò)α和γ對(duì)樣本不平衡進(jìn)行調(diào)整,進(jìn)行有效解決樣本不平衡問(wèn)題,提高模型學(xué)習(xí)能力。
本實(shí)驗(yàn)所用的數(shù)據(jù)集在北京大學(xué)網(wǎng)站上下載,共有693張圖像。分為六種缺陷,分別為缺孔、鼠咬、開(kāi)路、短路、雜散和偽銅。為了豐富數(shù)據(jù)集并提高圖像魯棒性,對(duì)圖像進(jìn)行數(shù)據(jù)增強(qiáng)。增強(qiáng)后的圖像共有3200張,其中訓(xùn)練集2500張,驗(yàn)證集400張,測(cè)試集300張,并制作成標(biāo)準(zhǔn)的PASCAL VOC格式。
目前衡量目標(biāo)檢測(cè)性能的方法主要是通過(guò)精確率(P)、召回率(R)以及平均精度均值(mAP)進(jìn)行度量。精確率指的是識(shí)別為缺陷的樣本中,真正的缺陷樣本所占的比例。召回率指的是原先為缺陷的樣本中,能被準(zhǔn)確識(shí)別為缺陷的樣本所占比例。如公式(4)所示,式中TP指識(shí)別為缺陷的樣本數(shù)量;FP指正常的樣本中被識(shí)別為缺陷的樣本數(shù)量;FN指真正的缺陷樣本中沒(méi)有被正確識(shí)別的樣本數(shù)量。
(4)
某一類(lèi)別進(jìn)行預(yù)測(cè)時(shí),以PR為坐標(biāo)繪制曲線。平均精度指的是PR曲線所圍的面積。對(duì)所有類(lèi)別的AP求平均值可得到mAP值,mAP值越大,算法檢測(cè)效果越好。
本實(shí)驗(yàn)使用PyTorch作為深度學(xué)習(xí)框架,選用ResNe50作為主干網(wǎng)絡(luò),構(gòu)建特征金字塔進(jìn)行特征融合,選用focal loss作為損失函數(shù)。模型檢測(cè)總共設(shè)有六種缺陷,加上背景可分為七類(lèi)。設(shè)置初始學(xué)習(xí)率為0.005,每5個(gè)epoch縮減為原先1/3。設(shè)置動(dòng)量值為0.9,數(shù)據(jù)集運(yùn)行20個(gè)epoch可達(dá)到穩(wěn)定效果。
改進(jìn)后的算法針對(duì)不同的環(huán)境和不同的缺陷都有較好的識(shí)別精度,可以用于較小的缺陷識(shí)別,如圖5所示。在圖5中,圖像數(shù)據(jù)增強(qiáng)后,亮度更高的圖像有著更高的置信度。
圖5 不同亮度和缺陷的檢測(cè)結(jié)果
通過(guò)實(shí)驗(yàn)得到損失函數(shù)曲線圖和map曲線圖,都有良好的效果,如圖6所示。損失函數(shù)在剛開(kāi)始振蕩后,開(kāi)始穩(wěn)定緩慢收斂,14000step后,loss已經(jīng)收斂到0.2附近。mAP曲線則是穩(wěn)定在95%以上。通過(guò)對(duì)比改進(jìn)前后算法檢測(cè)的mAP值,在AP為50時(shí)候,檢測(cè)成功率更高,在AP為70時(shí)候,算法效果提升更加明顯。綜合來(lái)看,本文改進(jìn)算法總體有所提升,檢測(cè)效果更加優(yōu)秀。如表1所示。
圖6 損失函數(shù)(a)和mAP曲線(b)
表1 實(shí)驗(yàn)結(jié)果對(duì)比
針對(duì)工業(yè)過(guò)程中常見(jiàn)的PCB板缺陷檢測(cè)問(wèn)題,提出了PCB板缺陷檢測(cè)的Faster R-CNN改進(jìn)方法。通過(guò)選取ResNet50作為主干網(wǎng)絡(luò),并構(gòu)建特征金字塔進(jìn)行特征融合,再使用focal loss作為損失函數(shù)。實(shí)驗(yàn)數(shù)據(jù)表明改進(jìn)后的算法對(duì)PCB板的缺陷有著較好的檢測(cè)效果,通過(guò)與傳統(tǒng)算法對(duì)比,改進(jìn)后的算法提升了檢測(cè)精度,有效改善模型的性能。