?

基于遷移學習的VGG-16網絡芯片圖像分類

2020-07-10 04:04張榮福郭天茹張喆嫣李子瑩
光學儀器 2020年3期
關鍵詞:池化準確率卷積

馬 俊,張榮福,郭天茹,張喆嫣,李 卿,王 蓉,李子瑩

(上海理工大學 光電信息與計算機工程學院,上海 200093)

引 言

隨著半導體產業的不斷發展,芯片生產工藝的要求不斷提高,引線鍵合的質量檢測已成為保證芯片質量的重要部分。通常引線鍵合質量檢測采用圖像法進行[1],該方法利用顯微鏡小景深的特點,通過調節視場以及顯微鏡載物臺的高度,完成對引線局部特征和高度信息的采集,通過對焊盤的位置、焊球的直徑以及鍵合線弧高的檢測來判別引線鍵合的質量。

由于芯片結構的復雜程度較高,傳統的卷積神經網絡模型對芯片連接絲、焊球、焊盤的分類效果較差,又因為本實驗的數據集較少而且還需要對圖像進行人工標注,這不僅耗時而且會影響最終的預測效果。為了解決這一個難題,本文將基于遷移學習的VGG-16網絡方法應用在芯片圖像的分類上,即對采集的芯片圖像進行三分類,分別為芯片焊盤、芯片焊球以及連接絲圖像[2-3]。遷移學習是用來解決深度學習中數據集量不足的問題,它是將已經訓練好的模型參數移植到新模型中并輔助新模型完成訓練。又因為大部分的數據以及任務都是相關的,所以利用遷移學習的方法,將訓練好的模型參數分享到新模型中,這樣不僅能夠減少人工標注數據的工作,還可以減少模型的訓練時間,提高模型的學習效率,充分利用以往的學習經驗,有利于提高和改善傳統深度學習的訓練效率。

1 卷積神經網絡理論

卷積神經網絡主要是由卷積層、池化層和全連接層組成,通常會選取若干個卷積層和池化層交替連接在一起[4],利用卷積層中的卷積核來提取數據的深層信息以及圖像的局部特征[5]。卷積運算的目的是提取輸入的不同特征,然后再將這些特征輸入到下一層中。卷積層的計算公式如下:

式中:*為卷積操作;Mj為特征圖的集合;l為第l層的網絡;k為卷積核參數;b為偏置;xj為輸出;為 l層輸入;f(a)為激活函數。

池化通常又叫欠采樣或下采樣。主要用于特征降維,減少數據和參數的數量。根據池化的規則計算出每個小區域的對應值,再將所得到的值重新排列,得到一個新的特征圖[6]。池化通常分為最大池化和平均池化。最大池化是取出這個區域中的最大值作為下一層的特征,而平均池化則是計算出這個區域所有特征的平均值作為下一層的特征。本文是采用最大池化來提取區域中的最大值,并將此最大值作為下一層特征。計算方法如下:

式中:d()為池化函數;β為權重系數;b為偏置。

2 圖像采集

采用50倍的顯微系統[7]進行圖像采集,運動機構和驅動芯片使載物臺平移和升降,通過電子目鏡采集一系列圖像用以構成數據集。數據集包含了清晰的、模糊的、信噪比低的多種不同類型的圖像,相機拍攝到的圖片分辨率為1 920×1 200。在圖像采集的過程中要滿足以下兩個方面:

(1)芯片要有不同的放置角度。為了增加樣本的多樣性,將采集各種不同旋轉角度的圖像作為數據集,這樣做有利于提高深度學習的魯棒性。

(2)圖像要有不同的模糊度。為了提高網絡模型的精確性,采集不同模糊度下的圖像,如圖1所示。

3 圖像預處理

首先根據VGG-16網絡的計算要求,通過下采樣的方法將我們所采集到的圖像的大小裁剪為224 × 224,然后對原始圖像進行預處理。為了減少后期模型訓練的運算量,加速模型的收斂速度,提高后續步驟的可靠性,我們需要對圖像進行歸一化的處理。圖像歸一化是對圖像進行了一系列標準的處理變換,使之變換為固定標準形式,該標準圖像即為歸一化圖像。圖像歸一化最常見的方法是最大最小值歸一化方法,可表示如下:

圖1 不同模糊度Fig. 1 Different ambiguity

式中:xi為圖像像素點值;min(x)、max(x)分別為圖像像素的最小值與最大值。

4 VGG-16 network

本文采用了VGG-16網絡的宏架構,如表1所示,該模型是由13個卷積層、5個最大池化層以及3個全連接層構成。利用卷積濾波器(kernel)對特征圖進行卷積運算[8-10],對ImageNet數據集輸入的各種圖像進行特征提取。從每個內核中取最大值的最大池化操作減少了特征映射的大小,并確保了固定的輸出大小。卷積的步長和最大池化的step (filter slide的單位數)分別設置為1和2。全連接層對輸出層采用soft-max函數,使模型可以做三分類預測。

表1 VGG-16 網絡結構Tab. 1 The details of architecture of VGG-16 network

VGG-16網絡的輸入固定尺寸為224×224×3,每個尺寸分別表示寬度、高度和信道。首先,輸入層與64個3×3×3內核進行卷積,構建第1層;然后,在第 1層用 64個 3×3×64個核進行卷積;再然后,執行2×2最大池化操作生成layer 3;以此類推,直到第18層,其中產生了7×7×512個神經元;全連接層由19層至21層排列,第18層的神經元與第19層的4 096個神經元完全連接,第19層與第20層完全連接,共有4 096個神經元;最后,將第20層與第21層(輸出層)完全連接,輸出3個神經元,表示3個類別。本文采用絕對誤差來作為模型的損失函數,其表達式如下:

式中:L為損失函數;y為樣本的標簽;為模型的預測值;m為樣本數量。

5 遷移學習法

針對芯片圖像數據集相對較小、模型訓練時間較短的特點,在數據集上對預訓練的VGG -16網絡進行微調以增加訓練量,為此本文提出一種適應分類的遷移學習方法,如圖2所示。首先對卷積(conv)層進行初始化,加載預訓練權值,初始計算并存儲權值,減少冗余過程,加快訓練速度;然后隨機初始化三層全連接(fc)層的權值,學習數據集圖像與芯片圖像之間的特征空間遷移;最后的一個全連接層由ImageNet的1 000個輸出類調整為芯片底盤、焊接球和芯片引腳連接絲3個輸出類,并將soft-max激活函數改為logsoft-max激活函數,用來提高分類的準確率,避免梯度消失;再然后,我們將所有卷積層和相應的最大池化層設定為固定的特征提取器;最后,將數據集中的圖像輸入到改進后的網絡中,對其進行再次訓練,在數據集中檢測出我們所需的三分類。在再訓練過程中,我們通過芯片圖像的反向傳播來更新預訓練的權值,以達到微調卷積層效果,同時避免過擬合。

新初始化的網絡是在Ubuntu 16.04操作系統上進行訓練的,該操作系統使用Intel Core i7-2700K 4.6 GHz CPU、256 Gb RAM、基于pci的雙AMD Filepro 512 Gb閃存和NVIDIA GTX 1080 8 Gb GPU進行培訓和驗證。我們使用SGD優化器,以每步1 000張圖像為批次訓練圖層,學習率為0.001,動量為0.9,權值衰減為10-4。經過200次迭代后,由于精度和交叉熵損失都沒有進一步提高,隨即停止了訓練。

圖2 遷移學習法原理圖Fig. 2 Schematic of transfer learning method.

6 實驗及結果

6.1 數據集的構建

在對數據集進行劃分時,通常采用自助法、留出法以及交叉驗證法。在測試集選取時,原則上選取的測試集要與訓練集保持互斥的狀態。本實驗通過分層采樣和等距抽樣相結合的辦法來獲取訓練集和測試集,充分保證了樣本結構與總體的一致性,提高樣本的代表性。

本實驗所用的數據集是由芯片連接絲、焊盤以及焊球三部分構成,共2 400張圖片,其中連接絲、焊盤以及焊球各800張,每張圖片都通過顯微鏡采集獲得。為了評價本文提出方法的效果,分別從數據集中選取了連接絲、焊盤和焊球各200張圖像,共600張圖像作為測試集,其余的圖像作為訓練集。利用建立的訓練集對VGG-16網絡上層的權值進行反向傳播再訓練,并使用測試集對模型進行性能評估。數據集的組成如表2所示。

表2 圖像數據集Tab. 2 Image datasets

6.2 評價指標

利用準確率、F1-Score和混淆矩陣可對實驗結果進行評價。準確率就是測試集中正確分類的數量占整個測試集數量的百分比,表達式為

式中:TP表示的是將正類預測為正類數,真實為0,預測也為0;FN表示的是將正類預測為負類數,真實為0,預測為1;FP表示的是將負類預測為正類數,真實為1,預測為0;TN表示的是將負類預測為負類數,真實為1,預測也為1。F1-Score指標綜合了精確率(Precision)和召回率(Recall)的產出的結果。F1-Score的取值范圍為0~1,1代表模型的輸出結果最好,0代表模型的輸出結果最差,其計算式如下:

6.3 結 果

在神經網絡模型的調試過程中,為了找到模型最優的超參數,對模型的學習率、num_features以及卷積核的大小等超參數進行調參,不斷地優化網絡結構,提高卷積神經網絡模型的性能,提升模型的精確性。本文利用Tensorflow框架中的Tensorboard可視化工具,用曲線圖顯示各參數隨著運行時間以及迭代次數的變化趨勢。

圖3和圖4分別為VGG-16網絡模型和基于遷移學習的VGG-16網絡模型的圖像分類情況的準確率和損失圖,反映了基于卷積神經網絡的芯片連接絲、焊盤以及焊球的分類的損失函數隨迭代次數的變化趨勢。圖中的準確率是由式(5)計算得到的,損失函數是根據式(4)得出的。從損失圖中可以看出,兩種模型都可以很好地進行收斂,損失值都是持續減少并趨向穩定,可以得到比較好的預測結果。

圖5是兩種模型在訓練集與測試集3 ∶1的情況下芯片焊盤、焊球以及連接絲圖像三分類結果的混淆矩陣。圖5(a)為VGG-16網絡模型的混淆矩陣,圖5(b)為基于遷移學習的VGG-16網絡模型的混淆矩陣。從圖中可以看出,芯片焊盤、芯片焊球以及芯片連接絲的分類準確率都較高,兩種模型的準確率都達到了90%以上。通過式(5)計算,最終可得出:VGG-16網絡模型的準確率為93.3%,而基于遷移學習的VGG-16網絡模型的準確率為98.3%。兩種不同模型的F1-Score、精確率以及召回率如表3所示。由此可見,改進后的網絡模型對芯片引腳、焊盤以及焊球的分類效果要優于VGG-16網絡模型。

圖3 VGG-16 網絡模型的損失圖和準確率圖Fig. 3 Loss and accuracy of VGG-16 network model

圖4 基于遷移學習的VGG-16網絡模型損失圖和準確率圖Fig. 4 Loss and accuracy of migration learning model based on VGG-16 network

圖5 兩種不同模型的混淆矩陣Fig. 5 The confusion matrix of two models

表3 評價指標Tab. 3 The evaluation index

7 結 論

本文提出了一種基于遷移學習的VGG-16網絡模型,以此對芯片圖像進行分類。實驗使用前饋方法對已經在ImageNet數據集中優化過的較低層VGG-16網絡的權值進行了修正,并在構建的芯片圖像數據集中,使用反向傳播對VGG-16上層網絡的權值進行了再訓練。采用VGG-16網絡模型與本文提出的方法對芯片焊盤、焊球及連接絲三分類圖像數據集進行了比較。實驗結果表明,本文提出的方法對芯片焊盤、焊球以及連接絲的分類效果要優于VGG-16網絡模型。

猜你喜歡
池化準確率卷積
面向神經網絡池化層的靈活高效硬件設計
基于Sobel算子的池化算法設計
卷積神經網絡中的自適應加權池化
基于3D-Winograd的快速卷積算法設計及FPGA實現
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
從濾波器理解卷積
基于卷積神經網絡和池化算法的表情識別研究
高速公路車牌識別標識站準確率驗證法
基于傅里葉域卷積表示的目標跟蹤算法
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合