耿振宇
(南京信息工程大學(xué),江蘇 南京210000)
PCB 是電子產(chǎn)品的基礎(chǔ)原件,在眾多領(lǐng)域都發(fā)揮了重要作用,目前中國(guó)是全球最大的PCB 生產(chǎn)地,隨著全球電子信息產(chǎn)業(yè)的持續(xù)發(fā)展,PCB 將會(huì)用更大的用武之地,雖然生產(chǎn)技術(shù)改進(jìn)很大,生產(chǎn)效率大幅提高,但是缺陷問(wèn)題不可避免的出現(xiàn),因此對(duì)于PCB 的質(zhì)量檢測(cè)顯得極為重要。傳統(tǒng)的PCB 檢測(cè)方法包括人工檢測(cè)、機(jī)械檢測(cè)[1];傳統(tǒng)機(jī)器視覺(jué)閾值分割,邊緣特征提取,模板匹配的方法[2];統(tǒng)計(jì)學(xué)方面包括基于PCA、基于直方圖的方法。由于電路板的復(fù)雜性,傳統(tǒng)方法對(duì)于種類較多的缺陷很難達(dá)到精確分類[3],開發(fā)一套能夠高效準(zhǔn)確地檢測(cè)電子元器件產(chǎn)品的缺陷檢測(cè)系統(tǒng), 將促進(jìn)電子元器件行業(yè)的發(fā)展[4]。隨深度學(xué)習(xí)的出現(xiàn)和不斷發(fā)展[5],可以將深度學(xué)習(xí)的目標(biāo)檢測(cè)算法運(yùn)用于PCB 表面缺陷的檢測(cè),本文使用PCB 裸板照片對(duì)PCB裸板進(jìn)行表面缺陷檢測(cè),以短路、開路、毛刺、鼠咬、余銅、漏孔六種裸板缺陷為例進(jìn)行檢測(cè)。
RCNN 算法是2014 年由Ross B. Girshick 等人基于CNN提出的[6],成功將深度學(xué)習(xí)引用到目標(biāo)檢測(cè)算法上,成為首次達(dá)到工業(yè)級(jí)應(yīng)用的算法,傳統(tǒng)的目標(biāo)檢測(cè)算法通常都是通過(guò)人工選取特征或滑動(dòng)窗口得出候選的區(qū)域框,最后使用非極大值抑制得到輸出結(jié)果。而R-CNN 將候選區(qū)域算法和卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,這種方法使得檢測(cè)速度和精度有了質(zhì)的提升[7]。RCNN的基本思想就是給深度網(wǎng)絡(luò)傳遞圖片區(qū)域內(nèi)容,提取出深度網(wǎng)絡(luò)某層的特征,并用這個(gè)特征來(lái)判斷物體并對(duì)是物體的區(qū)域做適當(dāng)調(diào)整。
R-CNN 運(yùn)用于目標(biāo)檢測(cè)主要有以下幾步:
(1)獲取輸入圖像。
(2)提取約2000 個(gè)候選區(qū)域。
(3)將候選區(qū)域分別輸入CNN 網(wǎng)絡(luò)在,此期間將候選圖片進(jìn)行縮放。
(4)利用SVM處理CNN 的輸出輸入并進(jìn)行類別的判定。
R-CNN 雖然有很大突破但是其速度依舊較慢,2015 年作者作出改進(jìn)并提出了Fast R-CNN[8]。其加快了selective search的步驟和同時(shí)訓(xùn)練分類和回歸過(guò)程, 加快了整體的速度。Fast R-CNN 對(duì)R-CNN 進(jìn)行了以下幾個(gè)方面的改進(jìn):整合R-CNN中的CNN、SVM 以及Regression,極大提高了速度;用在feature map 上經(jīng)過(guò)一次CNN 使用selective search 截取候選區(qū)域并進(jìn)行分類回歸來(lái)替代對(duì)原始圖像進(jìn)行selective search 提取;使用了ROI Pooling 算法兼容不同圖片尺度, 將特征圖池化到固定維度的特征向量。
2015 年,Ren 等 人 在 Fast-R-CNN 基 礎(chǔ) 上 提 出 了Faster-R-CNN[9]。相比于Fast-R-CNN, Faster-R-CNN 引入了區(qū)域生成網(wǎng)絡(luò)RPN 而非選擇性算法以生成候選區(qū)域,使得目標(biāo)檢測(cè)的整個(gè)流程只由神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行操作,極大降低了生成候選區(qū)域的時(shí)間成本,提升了計(jì)算速度。
本文將利用Faster R-CNN 作為主干網(wǎng)絡(luò)進(jìn)行PCB 的表面缺陷檢測(cè)實(shí)驗(yàn)。
目標(biāo)檢測(cè)有多種檢測(cè)評(píng)價(jià)指標(biāo),本文選擇mAp 評(píng)價(jià)指標(biāo)。
P 為準(zhǔn)確率,計(jì)算公式為
TP 為正例且劃分正確的個(gè)數(shù);FP 為負(fù)例且劃分錯(cuò)誤的個(gè)數(shù);FN 為正例且劃分錯(cuò)誤的個(gè)數(shù);TN 為負(fù)例且劃分正確的個(gè)數(shù)。
precision 和recall 一般成負(fù)相關(guān)關(guān)系,R 越低,P 越高;反之,R 越高,P 越低。
AP 為平均精確度,通過(guò)PR 曲線與橫縱坐標(biāo)圍成的面積得出,而mAP 即平均AP 值,是對(duì)多個(gè)驗(yàn)證集個(gè)體求平均AP 值,本次實(shí)驗(yàn)將采用mAP 作為評(píng)價(jià)指標(biāo)。
深度學(xué)習(xí)所需要訓(xùn)練的數(shù)據(jù)集較多,然而PCB 表面缺陷數(shù)據(jù)集較少且不規(guī)范,因此目前沒(méi)有標(biāo)準(zhǔn)的PCB 裸板缺陷數(shù)據(jù)集,而數(shù)量較少的數(shù)據(jù)極容易出現(xiàn)過(guò)擬合現(xiàn)象,對(duì)實(shí)驗(yàn)結(jié)果造成負(fù)面的影響,而且PCB 表面缺陷種類繁多,不能一一列舉,因此針對(duì)PCB 的缺陷類型,自行構(gòu)建數(shù)據(jù)集[10],采用斷路、短路、毛刺、鼠咬、余銅、漏孔等六種裸板缺陷類型,通過(guò)對(duì)不同類別的缺陷類型圖像進(jìn)行圖像處理技術(shù)的處理,將其擴(kuò)展到萬(wàn)余張圖片,數(shù)據(jù)集采用VOC2007 格式,數(shù)據(jù)在同一個(gè)文件夾中。數(shù)據(jù)集缺陷類型如圖1 所示。
圖1 6 種PCB 表面缺陷類型
各類表面缺陷圖片數(shù)量如表1 所示。
表1 PCB 裸板各缺陷類型數(shù)量
本文實(shí)驗(yàn)采用的配置是windows10 操作系統(tǒng),CPU 為Intel(R)XEON(R)CPU E5-2609 0,GPU 為NVIDIA GeForce GTX 1080 Ti,開發(fā)語(yǔ)言為Python,深度學(xué)習(xí)框架為pytorch。
實(shí)驗(yàn)流程圖如圖2 所示。
圖2 實(shí)驗(yàn)流程圖
實(shí)驗(yàn)采取Faster R-CNN 作為主干網(wǎng)絡(luò),Resnet50 作為主干特征提取網(wǎng)絡(luò)。采用mAP 作為評(píng)價(jià)指標(biāo),將Batch size 設(shè)為8,Epoch 為50,數(shù)據(jù)集的類別classes 為6。通過(guò)訓(xùn)練獲得建議框網(wǎng)絡(luò),利用ROI 獲得預(yù)測(cè)結(jié)果,之后再訓(xùn)練獲得預(yù)測(cè)結(jié)果的網(wǎng)絡(luò)。檢測(cè)測(cè)試集圖片,生成每一個(gè)圖片的檢測(cè)結(jié)果,生成相應(yīng)的預(yù)測(cè)框文件。然后獲取測(cè)試集中的標(biāo)簽文件,根據(jù)每個(gè)標(biāo)簽文件的結(jié)果生成真實(shí)框的文本文件。
計(jì)算所有建議框和真實(shí)框的重合程度,并進(jìn)行篩選,將confidence 設(shè)為0.5,重合程度度大于0.5 的建議框?yàn)檎龢颖荆∮?.5 的建議框?yàn)樨?fù)樣本,最終獲取mAP 值。
將驗(yàn)證集放入進(jìn)行驗(yàn)證后,幾乎所有的缺陷都被檢測(cè)出來(lái),對(duì)于不同的缺陷類別存在不同的準(zhǔn)確性,各類缺陷類型識(shí)別準(zhǔn)確率如表2 所示。
表2 PCB 各缺陷類型AP 值
檢測(cè)效果圖如圖3 所示。
圖3 檢測(cè)效果圖
PCB 表面缺陷屬于小面積缺陷,本文基于深度學(xué)習(xí),通過(guò)研究RCNN 系列算法,并對(duì)Faster R-CNN 網(wǎng)絡(luò)的算法原理進(jìn)行分析應(yīng)用。傳統(tǒng)網(wǎng)絡(luò)對(duì)小目標(biāo)的識(shí)別效果較差。為此,本文采用FasterR-CNN+Resnet50 對(duì)PCB 進(jìn)行表面缺陷檢測(cè)。通過(guò)模型訓(xùn)練,結(jié)果表明,F(xiàn)aster R-CNN 網(wǎng)絡(luò)在PCB 表面缺陷檢測(cè)精度較高,能較好地滿足檢測(cè)要求。