?

基于多尺度融合和可變形卷積PCB缺陷檢測算法

2022-08-16 03:11朱紅艷李澤平羅相好成先鏡楊肖委
計算機工程與設計 2022年8期
關鍵詞:卷積變形特征

朱紅艷,李澤平+,趙 勇,2,羅相好,成先鏡,3,楊肖委

(1.貴州大學 計算機科學與技術學院,貴州 貴陽 550025;2.北京大學深圳研究生院 信息工程學院, 廣東 深圳 518055;3.遵義師范學院 黔北信息技術研究院,貴州 遵義 563099; 4.貴州大學 機械工程學院,貴州 貴陽 550025)

0 引 言

隨著電子行業不斷發展,PCB(printed circuit board)作為電子產品的重要組件,一旦出現缺陷問題,輕則影響電子產品外觀及性能,重則產生重大安全事故隱患,因此,在出廠前必須對PCB進行缺陷檢測,保證產品質量[1]。

傳統的PCB缺陷檢測方法主要有人工目檢和電氣測試[2],但人工目檢方法效率低,容易造成錯檢、誤檢。電氣測試需要制作相應的PCB模具與夾具,成本高,不適用現在的高精度PCB檢測。

自動光學檢測(AOI)技術被用于檢測PCB制造過程中[3-5]的缺陷,與傳統的人工檢測相比,具有檢測速度快、成本低等優勢。隨著深度學習發展與應用,傳統算法雖然有了較好的效果,但存在很多不足之處,比如針對性強,很難檢測出缺陷的大小及形狀。研究人員發現卷積神經網絡可以從大規模數據中學習表征能力,李云峰等[6]通過分析缺陷區域的邊界像素的梯度方向信息來進行分類與識別。Dinget等[7]提出了一種基于Faster R-CNN的PCB微小缺陷檢測方法,該方法解決了深度卷積網絡在檢測小缺陷區域方面的不足,為我們提供了一個很好的思路。

因此,我們提出了一種基于多尺度特征融合和可變形卷積的PCB缺陷檢測算法,它可以用來識別PCB生產過程中的6種常見的缺陷。

1 Faster R-CNN算法簡介

Girshick團隊在2014年設計了RCNN[8]目標檢測框架,首次使用了候選區域與卷積神經網絡結合的思想,使目標識別取得了飛躍式的進展;2015年,Girshick R等提出了Fast R-CNN[9],利用ROI Pooling大大縮短了R-CNN特征提取時間;在RCNN和Fast RCNN積累之后,2016年提出了新的Faster R-CNN。在結構方面,Faster R-CNN將目標分類和定位放在同一個網絡模型中。使用VGG16作為網絡的backbone,引入了anchor,提出區域推薦網絡(region proposal network,RPN)替換原始的Select Search算法,將特征提取、分類及回歸都整合在一個網絡中,檢測速度和檢測精度同時提高了一個量級,將檢測識別問題看作分類問題,在2015年的ILSVRC以及COCO競賽中獲得多個項目的第一名。

Faster R-CNN目標檢測大致流程主要由3個部分組成:卷積層、區域生成網絡(region proposal network,RPN)和池化層,檢測流程如圖1所示。輸入一張圖像,首先經過卷積層,得到特征圖,然后經過RPN生成候選框,將生成的候選框投影到特征圖上得到含有特征框的特征融合圖,最后特征融合圖經過RoI Pooling層,經過一系列全連接層完成分類與回歸,最終得到預測結果。卷積層以任意大小的圖像作為輸入,通過特征映射生成特征。該特征被傳播到RPN(用于生成區域建議)和唯一的卷積層(用于生成高維特征)。將高維特征和區域建議作為RoI池的輸入,根據區域建議將高維特征轉化為統一的大小。

圖1 Faster R-CNN目標檢測流程

RPN作為全卷積網絡,是Faster R-CNN的核心,用于生成高質量的區域,結構圖如圖2所示。Faster R-CNN在最后一個卷積層之后配置了一個區域建議網絡(RPN)來檢測目標對象中的潛在對象,是根據最后一個卷積層的特征生成區域建議。為了生成區域建議,在卷積特征映射上滑動N×N窗口,然后映射到一個較低維的特征(256-d)。該特征被送入回歸層(reg layer)和分類層(cls la-yer)。錨點位于與比例和長寬比相關聯的滑動窗口的中心組成的全連接層中,獲取坐標和用于估計對象(前景)或非對象(背景)的概率。

圖2 區域生成網絡原理結構

2 PCB缺陷檢測

2.1 DCR-FRNet整體框架

原始的Faster R-CNN網絡使用VGG 16作為骨干網絡進行特征提取,VGG 16使用的是基礎的卷積、激活函數、池化層對輸入的圖像進行特征提取。在整個模型訓練過程中,需要網絡不斷地通過反向傳播來更新權重,隨著網絡的加深容易產生梯度彌散甚至是消失問題。Resnet[11]是一種很好的解決深度神經網絡隨著網絡深度的增加逐漸飽和而引起的迅速退化的一種方法,通過將網絡的輸入與輸出疊加,構成最終的網絡輸出,而且還作為后續網絡的輸入,殘差結構如圖3所示。

圖3 殘差模塊基本結構

(1)

式中:X作為網絡的輸入,F(X) 是網絡的輸出,主要包含了卷積、激活函數、池化等操作,H(X) 作為網絡的最終輸出。殘差網絡結構出現相加項,同樣在計算梯度時也會有相加項的出現,梯度不容易趨向0,因而規避了梯度彌散的發生。Resnet在面對更深層次網絡的時候,在訓練過程中能更好保存小目標缺陷的特征,而且不會隨著網絡的加深引起網絡退化,因此有效抑制過擬合的發生。

此外,現有網絡模型對目標幾何變形的適應性幾乎完全是由于數據本身的多樣性,模型的內部結構沒有適應幾何變形的機制。這是因為卷積運算本身的幾何形狀是固定的,而堆疊所構建的卷積網絡的幾何形狀也是固定的,因此它沒有建模幾何變形的能力。因此,我們在模型中引入了可變形卷積網絡結構,提高了基于卷積神經網絡幾何變形目標檢測網絡的學習能力。DCR-FRNet框架如圖4所示。

圖4 DCR-FRNet框架

我們提出的算法是在原始的Faster R-CNN上做了改進。首先使用Resnet-101作為骨干網絡替換原來的VGG-16進行提取特征,構建多階段輸出和多尺度特征融合的FPN,將高層的語義信息與低層的幾何信息充分結合,以此來解決PCB目標小的檢測難題。圖4中1×1卷積是為了降低通道,保持與上一層的通道數相同,上采樣是保證上層與下層的進行特征融合時的大小一致,3×3卷積是為了解決1×1卷積與上采樣融合的過程中產生的混疊效應。其次添加可變形卷積核的網絡結構學習特征提取的位置,根據復雜環境自適應改變采樣位置,從而提高變化檢測的性能。在池化層內構建分層的殘差連接來替代傳統的池化模塊,用于池化層的多尺度信息融合,提高像素級的多尺度表征能力。最后調整訓練參數和卷積神經網絡結構來優化模型,在原始的Faster R-CNN網絡中加入了1×1的卷積核,減少層內參數的數量,使提取的特征在網絡層的轉移更加平滑,改進了錨的大小,可以識別出原本無法識別的小物體。

多尺度可變形卷積神經網絡采用了一種新的具有兩個偏移量的卷積方法來生成對物體變形信息更敏感的特征圖,此外提高了對幾何變形物體的檢測能力??勺冃尉矸e結構取代了普通的卷積運算來檢測目標,有效地提高了卷積神經網絡在不同幾何變形下提取圖像特征的泛化能力。同時,該網絡在不浪費大量計算時間和緩存空間的情況下自動訓練卷積的偏移量。其次,在最終的檢測中,對多尺度特征圖進行特征融合操作,同時利用不同比例特征圖預測分類和位置信息,避免了多次卷積和池化操作后小目標對象信息的丟失,保證了檢測速度,增強了小目標的目標信息,也提高了目標檢測的準確性。

2.2 多尺度特征融合

原始的Faster R-CNN在特征提取網絡中RPN僅采用最后一層的特征圖,該方式對于大目標的缺陷檢測有很好的效果,對小目標的檢測效果就很差。

特征金字塔構建主要有3個環節,自下而上、橫向連接和自上而下。自下而上的過程是特征提取網絡的前饋計算過程。自上而下的過程是將高層語義信息強但分辨率低的特征經過上采樣來得到高分辨的特征。橫向連接是把低層的位置信息自下而上與高層的語義信息自下而上進行多尺度合并。特征金字塔的思想就是將含有高層的語義信息與含有較強的低層的位置信息進行特征融合,能夠實現精準定位同時還具備很強的語義信息。

根據FPN論文中的映射公式,計算映射到FPN的等級,計算公式如下

(2)

式中:k0表示RoI映射到FPN的等級,w為RoI寬度,h為RoI高度,448表示的是PCB圖像的大小。

原始的FPN因為C1的分辨率高,沒有對其做任何處理。本文對FPN的改進就是利用C1含有豐富的幾何信息來構建特征金字塔,得到特征圖P1,適合檢測缺陷在原圖中所占比例低于1/256。對P1進行下采樣,P3進行上采樣,與P2按照像素相加的方式融合在一起,最后通過一個3×3的卷積得到最終的P0,利用P0的Feature Map進行缺陷檢測,特征金字塔構建流程如圖5所示。

圖5 特征金字塔構建流程

2.3 可變形卷積核

CNN在目標檢測、分類和分割方面取得了重大進展。然而,CNN使用固定的卷積核來提取特征,導致高級神經元的接受野是固定的,無法有效編碼可變形的信息。為了解決卷積過程中圖像幾何變換帶來的影響,利用可變形卷積[14]來克服幾何變換。在模塊中增加空間采樣位置,并從目標任務中學習偏移量,在卷積計算的過程中計算每個點的偏移,然后提取特征進行卷積。

我們首先定義輸入和輸出特征映射分別為x和y。p0是輸出特征圖中的坐標。pn是卷積核在模板中的坐標,標準的卷積過程可以表述為

y(p0)=∑pn∈Tw(pn)·x(p0+pn)

(3)

其中,p0+pn是采樣點的坐標,w(pn) 是卷積核中的權值參數,T為內核模板,我們以標準的3×3核為例,則模板可定義為T3×3, 表示為

T3×3={(-1,-1),(-1,0),(-1,1),(0,-1) (0,0),(0,1),(1,-1),(1,0),(1,1)}

(4)

值得注意的是,在傳統模板(T)中,點對的值都是整數。

與上面提到的基本卷積不同,可變形卷積在T上增加了一個偏移量,可以這樣寫

y(p0)=∑pn∈Tw(pn)·x(p0+pn+Δpn)

(5)

其中, {Δpn|n=1,…,N},N=|T| 并且Δpn為小數。

為清晰起見,我們將pn+Δpn寫成Pn, 公式可表示為

y(p0)=∑pn∈T*w(pn)·x(p0+Pn)

(6)

其中,T*={P0,P1,…,Pn},N=|T*|, 應該強調的是Pn一個小數點對。由于特征圖上x上的坐標均為整數,小數樣本點p0+Pn沒有實數。因此,我們使用插值函數來計算小數樣本點的遺漏值,公式為

x(p)=∑qG(q,p)·x(q)

(7)

q是x上的坐標,G(·,·) 是插值核函數,Pn可以推導為

(8)

p0是輸出特征圖中的坐標,w(Pn) 是卷積核中的權值參數,因此,通過在卷積網絡最后一個block中使用變形卷積取代傳統卷積,使得特征的幾何變化可以被提取和學習。

2.4 殘差池化

由于多尺度特征提取會增加模型的復雜性和參數的數量,而利用池化層提取多尺度特征的優點是非參數的,使網絡盡可能的簡單。因此使用殘差池化[17]在更細粒度的層次上不僅提高了多尺度表示能力,而且減少時間和資源,3種2×2Max-pool操作符的池化比較如圖6所示。

圖6 3種以2×2 Max-pool操作符的池化比較

(9)

3 實驗與分析

3.1 PCB缺陷數據集

PCB目前還沒有標準的缺陷數據集,本文用到的數據集是自行構建的。圖7表示常見的6種PCB缺陷數據種類??梢钥闯鯬CB缺陷的面積相對較小,人眼很容易忽略這些小缺陷。

圖7 常見的6類PCB缺陷

在本文中,我們使用從生產線上收集的真實PCB缺陷數據作為訓練集和測試集,使用CCD相機對每個PCB進行拍照,并手工篩選出有缺陷的圖片。我們收集了689圖像,分辨率為3034×1586,其中有些PCB圖像包含了多個缺陷。由于這種高分辨率可能會造成大量的計算量,所以我們將每張圖片大小調整為448×448。使用labelimg對圖像進行標注,生成與圖像名相對應的xml文檔,該文檔主要是用來存儲標注框的大小及位置信息。

為了平衡各種類型缺陷的數據樣本,避免對訓練產生不利影響,我們去掉了一些邊緣處的缺陷和不清晰的圖片,最終得到649張缺陷圖像。但在生產過程中,由于缺陷的產生是低概率事件,收集缺陷數據的人工和時間成本較高,因此我們利用數據增強技術來增加PCB缺陷圖像的數量,最終得到我們的數據集10 493張圖像。

同時,為了驗證DCR-FRNet的泛化性,在實驗中也使用了北京大學人工智能實驗室的PCB數據集[18](以下簡稱北大數據集),該數據集是一個合成的公開數據集,包含1386張圖片,6種缺陷類型(露孔、鼠咬、斷路、短路、毛刺、余銅),北大數據集與本文數據集示例圖像如圖8所示。

圖8 北大數據集與本文數據集示例圖像

3.2 圖像預處理

由于相機本身成像條件以及在圖像采集的過程中會受到外界光照的影響,采集到的圖像會存在噪聲,噪聲的存在不利于模型提取目標特征,因此需要對PCB圖像進行預處理操作,增強PCB圖像邊緣特征,方便后續模型訓練與缺陷提取,提升模型的性能。

圖像增強部分主要是對PCB圖像進行灰度化處理,也可以看作是圖像處理的預處理階段,為后續的圖像識別與分析做準備。由于采集到的圖像是RGB圖像,每個像素都是由紅、綠、藍這3種基色按照不同的比例構成,經過灰度化處理的圖像不僅減少了圖像的數據量,而且還能提高訓練識別效果。

常見灰度化的處理方法有分量法、最大值法、平均值法、加權平均法,經過實驗對比,最終采用加權平均法對本文的PCB圖像進行灰度化處理。加權平均法也就是將R、G、B以不同的權值進行加權平均。

為防止噪聲影響,采用中值濾波去除噪聲。常用的去噪方法有高斯濾波和中值濾波,高斯濾波是二維濾波變換,在處理離散噪聲時會損失細節信息。中值濾波主要是對所有領域的像素進行排序,然后取其中值為其領域中心的像素,是一種非線性濾波變換,能夠保持圖像的邊緣信息。

3.3 軟硬件配置

實驗中用到的配置:Ubuntu 16.04 64位操作系統,顯卡驅動為Nvidia Driver 418. 87和CUDA 10.1,第三方函數庫Anaconda3,深度學習框架為Pytorch,數據標注工具采用Labelimg,開發語言使用Python。

3.4 評價指標

本文的評價指標使用的是檢測任務中常用的評價指標來檢測模型的性能,主要涉及4個重要的評價指標:準確率、召回率、mAP以及F1分數。根據PCB測試樣本的真實類別與模型的預測類別劃分為真正例(TP)、假正例(FP)、真反例(TN)、假反例(FN)。

準確率(Precision)指的是檢測目標中正確個數占所有檢測目標個數的比例,衡量了模型預測的準確性

(10)

召回率(Recall)指的是檢測正確的目標數占整個數據集目標的比例

(11)

mAP是我們評估模型性能的主要指標,是對不同缺陷的平均精度(AP)值的平均值,反映了缺陷檢測的準確性

(12)

AP值由準確率和召回率來計算。平均精度(AP)的一般定義是找到上面的Precision-Recall下的面積

(13)

F1分數(F1-Score)是用來同時兼顧模型的準確率與召回率,又稱平衡F分數,是召回率與準確率的調和平均數,計算公式如下

(14)

3.5 實驗結果與分析

在實驗中,我們使用對比實驗驗證方法,旨在從有限的數據中提取盡可能多的信息,在整個過程中,盡可能多地學習訓練樣本和測試樣本。設置對比實驗,與本文的算法在評價指標上進行對比:

(1)SSD:骨干網絡為VGG-16。

(2)YOLOv3:骨干網絡為darknet53。

(3)FR-16:骨干網絡為VGG-16的Faster R-CNN模型。

(4)FR-16F:骨干網絡為VGG-16+FPN的Faster R-CNN模型。

(5)FR-101:骨干網絡為Resnet 101的Faster R-CNN模型。

(6)FR-101F:骨干網絡為Resnet 101+FPN的Faster R-CNN模型。

(7)DCR-FRNet:骨干網絡為Resnet 101+PFN+可變形卷積網絡+殘差池化。

我們在每個子集中隨機抽取20%的樣本作為測試數據。剩下的80%的圖片被平均隨機分為6個部分。在每一輪的訓練中,使用5個部分作為訓練集,使用1個部分作為驗證集。每個缺陷在數據集中的數量如表1所示??偣灿柧?0 000次迭代,為了避免訓練時間過長,當訓練步驟小于5000時,我們設置學習率為0.1,當訓練步驟小于20 000時,設置學習率為0.01。較大的學習速率可以加快網絡早期訓練的收斂速度。在剩下的20 000個訓練中,我們使用0.0001作為學習率。

表1 PCB缺陷數據集中訓練集和驗證集中的數量

本文將DCR-FRNet、SSD、YOLOv3以及Faster R-CNN系列的改進模型進行對比,結果見表2,可以看到DCR-FRNet算法與一階段的SSD和YOLOv3相比,準確度分別高出了12.7%和2.7%,這是由于增加可變形卷積來應對PCB同一缺陷不同形狀的結果。與原始Faster R-CNN對比,由于DCR-FRNet改變了骨干網絡,增加了FPN和可變形卷積加殘差池化,準確率提高了30.5%,相應的F1分數增加了38.7%。對比同時改變骨干網絡并且增加了特征金字塔的FR-101F網絡,準確率增加了6.5%,F1分數增加到6.7%。

表2 DCR-FRNet在本文數據集上與不同模型結果對比

除此之外,DCR-FRNet與YOLO、SSD對測試集圖像進行檢測,結果如圖9所示??梢钥闯霰疚奶岢龅乃惴ɡ昧硕喑叨热诤虾涂勺兙矸e進行提取和學習,在準確率上有很大優勢。

圖9 DCR-FRNet與其它模型的精確度對比

為了驗證本文算法的泛化性,在北大數據集上進行實驗驗證,實驗結果如圖10所示。

圖10 DCR-FRNet在北大數據集各類缺陷的mAP

測試結果可以用來推導缺陷的類別,坐標以及缺陷屬于該類別的置信度。mAP是每個類別AP的平均值。mAP值越高,檢測模型在整個類別中的檢測性能越好。具體實驗結果如圖10所示,DCR-FRNet在北大數據集上各類缺陷的mAP分別為93.8%、95.2%、94.5%、94.3%、94.7%、95.6%。

將DCR-FRNet和FR-16F、FR-101FPN做了對照實驗,對比結果如圖11所示,FR-16F模型的mAP為74.53%,在原始的基礎上加上FPN之后,mAP上升至87.93%,可以看出增加FPN可以提高對PCB缺陷檢測能力。本文算法又在FPN的基礎之上增加可變卷積,mAP提高至95.55%,相對于FR-101提高了21.02%,相對于增加FPN的模型增加了7.62%??梢钥闯?,改進后的網絡繼承并保留了原有FR-101F網絡的優點,由于融合了新的結構和理念,在PCB缺陷檢測的mAP得到了提高。此外,改進后的網絡對一些較小的對象類別的識別能力顯著提高。

圖11 與FR-101、FR-101F模型的各類缺陷mAP對比

4 結束語

在本研究中,專注于PCB缺陷檢測任務中的6類缺陷,提出了一種基于深度學習的兩階段檢測框架。在該框架的特征提取部分,利用多尺度特征金字塔進行特征提取,有利于檢測缺陷較小的PCB缺陷。對于PCB缺陷幾何變化的處理,使用可變卷積替代傳統的卷積進行提取和學習,在主干網絡輸出特征時構建金字塔模塊,利用分層的殘差連接來替代傳統的池化模塊,在不增加計算量的前提下提高缺陷的檢測精度。實驗結果表明,改進的網絡不僅能充分提取圖像中的復雜信息,還能識別出原始Faster R-CNN無法識別的小缺陷,該算法在檢測精度方面具有很大的優勢。但是該模型在PCB檢測方面還有一定的局限性,在PCB生產中,由于材料和工藝的不同,即使是同一類型的缺陷也會表現出不同的特性。在未來,我們將收集更多的缺陷樣本加入訓練集,并對網絡進行微調,以適應更多類型的缺陷檢測。

猜你喜歡
卷積變形特征
根據方程特征選解法
離散型隨機變量的分布列與數字特征
基于3D-Winograd的快速卷積算法設計及FPGA實現
變形記
談詩的變形
卷積神經網絡的分析與設計
從濾波器理解卷積
不忠誠的四個特征
“我”的變形計
基于傅里葉域卷積表示的目標跟蹤算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合