李昊璇, 劉海峽
(山西大學 物理電子工程學院, 山西 太原 030006)
隨著自動化技術的快速發(fā)展, 磁瓦在永磁電機中的應用越來越普遍, 對相關產(chǎn)品的性能起著重要的作用[1]. 由于冶金技術沒有達到標準化程度, 磁瓦在生產(chǎn)過程中不可避免地會產(chǎn)生各種缺陷, 這些缺陷會導致磁瓦剩余磁感應強度、 磁能量以及抗老化等功能受到影響. 因此, 表面缺陷檢測過程的自動化已成為磁瓦行業(yè)的一項緊迫任務. 目前, 磁瓦表面的缺陷主要由經(jīng)驗豐富的檢測人員來評估, 由于檢測人員長時間的肉眼觀察會導致視覺疲勞, 會產(chǎn)生檢測結果不穩(wěn)定和一定的漏檢或誤檢, 不適合大規(guī)模的工業(yè)生產(chǎn)[2]. 近年來, 圖像處理技術和機器視覺技術在表面缺陷檢測領域得到了廣泛的應用, 對解決磁瓦缺陷的分類識別有重大意義, 并已在大規(guī)模工業(yè)生產(chǎn)試驗中得到了實踐.
蔣紅海等[3]使用快速離散余弦變換(Fast Discrete Curvelet Transform, FDCT)提取特征, 并用支持向量機(Support Vector Machine, SVM)分類器進行缺陷分類, 結果顯示, 分類正確率可達到83%. Huang等[4]提出了一種局部感受野的極限學習機(Local Receptive Fields Based Extreme Learning Machine, ELM-LRF)方法, 應用于磁瓦表面缺陷檢測分類, 將局部感受野概念引入到極限學習機(Extreme Learning Machine, ELM)算法中, 有效提高了缺陷檢測的準確性. 傳統(tǒng)表面缺陷檢測算法通過人為提取特征難以實現(xiàn)較高的檢測精度, 劉暢等[5]針對此問題提出一種改進的Unet模型磁瓦缺陷檢測識別算法, 檢測正確率達到了94%. Huang等[6]提出一種實時多模塊神經(jīng)網(wǎng)絡模型, 該模型可以實現(xiàn)在較短時間內對磁瓦表面所含缺陷的檢測. 趙月等[7]利用深層卷積神經(jīng)網(wǎng)絡(Deep Convolution Neural Network, DCNN), 并結合Faster RCNN方法來解決人工檢測效率低和誤檢率高等問題, 實現(xiàn)了較高的檢測精度. 機器學習方法在工業(yè)缺陷檢測領域取得了一定的成功, 然而, 當數(shù)據(jù)量較少時, 傳統(tǒng)機器學習方法難以達到較高的識別精度.
遷移學習方法非常適合用來解決這一問題. 遷移學習旨在利用其他領域的數(shù)據(jù)、 特征或模型中的信息幫助目標領域任務的訓練, 它能夠加快模型的訓練效率并減少網(wǎng)絡對訓練樣本量的需求. 目前, 遷移學習已經(jīng)廣泛應用于計算機視覺、 自然語言處理、 推薦系統(tǒng)、 行為識別等領域[8]. 遷移的模型一般選用DCNN, 遷移策略主要可以分為兩種, 一種是在大型圖像數(shù)據(jù)集ImageNet上預訓練的經(jīng)典DCNN, 如Inception系列、 GoogLeNet系列、 ResNet系列、 VGG系列. 張立等[9]使用AlexNet網(wǎng)絡, 結合參數(shù)遷移學習策略來解決少量樣本導致網(wǎng)絡過擬合和識別精度低的問題. 另一種是研究人員根據(jù)研究任務設計各種DCNN. 兩種遷移策略在遷移過程中可以對結構進行調整, 也可以只對參數(shù)進行微調.
本文結合第一種遷移策略, 提出了一種磁瓦表面缺陷分類方法. 將圖像識別領域中經(jīng)典的VGG16網(wǎng)絡遷移到磁瓦缺陷分類中, 使用VGG16網(wǎng)絡在大型圖像數(shù)據(jù)集ImageNet上進行預訓練, 調整目標網(wǎng)絡結構并將參數(shù)遷移, 然后利用磁瓦缺陷圖像數(shù)據(jù)集微調改進VGG16模型, 從而提高模型的識別精度和泛化能力.
本文采用的1 344張磁瓦缺陷數(shù)據(jù)是由中國科學院自動化所收集的數(shù)據(jù)集. 由于磁瓦有各種各樣的缺陷, 根據(jù)缺陷特點的不同, 磁瓦數(shù)據(jù)集被分為6個子數(shù)據(jù)集, 如圖 1 所示. 數(shù)據(jù)集中各類型磁瓦圖像具體數(shù)目如表 1 所示.
圖1 缺陷樣例Fig.1 Defect example
表 1 磁瓦缺陷圖像原始數(shù)據(jù)集說明Tab.1 Description of the original dataset ofmagnetic tile defect images
由于磁瓦缺陷數(shù)據(jù)樣本中各類型分布極不均勻且總樣本較少, 導致在模型訓練時會出現(xiàn)過擬合的現(xiàn)象. 通常采用數(shù)據(jù)擴增的方法來防止模型過擬合, 一般采用的數(shù)據(jù)擴增方法有圖像翻轉、 旋轉、 裁剪和轉換. 本文采用圖像翻轉的方法擴充磁瓦數(shù)據(jù)樣本. 經(jīng)過數(shù)據(jù)集的水平翻轉后, 破損型缺陷集有170 張圖片, 裂紋型缺陷集有 114張圖片, 磨損型缺陷集有64張圖片, 不均勻型缺陷集有206張圖片, 氣孔型缺陷集有228張圖片, 無缺陷數(shù)據(jù)集有1 906張圖片.
遷移學習是機器學習的一種研究方法, 它能夠利用從其他任務中獲取的知識來幫助進行當前任務試驗. 遷移學習可以有效解決數(shù)據(jù)量小、 任務變化等問題, 其關鍵點是找出新問題和原問題之間的相似性. 遷移學習過程如圖 2 所示, 遷移學習不僅利用目標任務中的數(shù)據(jù)作為學習算法的輸入, 還利用源域中的學習過程(包括訓練數(shù)據(jù)、 模型和任務)作為輸入.
圖2 遷移學習流程圖Fig.2 Flow chart of transfer learning
在本文方法中, 源域表示ImageNet數(shù)據(jù)集, 源任務表示ImageNet下的圖像分類; 目標域表示磁瓦缺陷數(shù)據(jù)集, 目標任務表示磁瓦缺陷圖像分類. 由于兩個數(shù)據(jù)集均為圖像數(shù)據(jù), 具有一定的相似性, 所以, 它們的低級特征是通用的.
根據(jù)遷移內容的不同, 遷移學習一般可以分為基于樣本的遷移、 基于特征的遷移和基于模型的遷移. 基于樣本的遷移是將源域中的部分數(shù)據(jù)通過加權等方式用于目標任務的訓練. 基于特征的遷移是利用源域和目標域數(shù)據(jù)學習新的特征表示. 基于模型的遷移方法是利用預訓練好的源模型獲取到的具有通用性的結構, 目標模型可以遷移這些通用性的結構, 被遷移的知識是模型參數(shù)內含的通用結構. 目前廣泛使用的預訓練技術就是一種基于模型的遷移學習方法. 具體而言, 預訓練是首先使用足夠的可能與目標域磁瓦數(shù)據(jù)不盡相同的源域數(shù)據(jù)訓練深度學習模型, 然后使用一些有標簽的目標域數(shù)據(jù)對預訓練的深度模型的部分參數(shù)進行微調, 例如, 在固定其他層參數(shù)的同時精細調整若干層的參數(shù).
VGG16由牛津大學視覺幾何組提出, 是由13個卷積層和3個全連接層組成的卷積神經(jīng)網(wǎng)絡結構. VGG16網(wǎng)絡沒有采用大尺寸的卷積核, 而是采用多個大小為3×3的卷積核, 這種結構在提高網(wǎng)絡特征提取能力的同時, 減少了網(wǎng)絡參數(shù)[10]. VGG16網(wǎng)絡相較于AlexNet網(wǎng)絡有更多的隱藏層, 并且其作者發(fā)布了多個版本的VGGNet, 其中最常用的是VGG16和VGG19, 數(shù)字表示網(wǎng)絡內部隱藏層的數(shù)目. VGG16網(wǎng)絡結構如圖 3 所示.
圖3 VGG16網(wǎng)絡結構圖
VGG網(wǎng)絡包含卷積層、 激活層、 池化層和全連接層4個層次結構. 卷積層在CNN中起著非常重要的作用. 一方面, 通過權重共享, 同一特征圖中的神經(jīng)元共享相同的參數(shù), 減少了參數(shù)總數(shù), 但也使得CNN對位置和移動不太敏感[11]. 另一方面, 由于每個卷積運算針對的是一小塊輸入, 因此, 提取的特征保留了輸入的固有拓撲結構, 有助于識別模式. 卷積層之后通常是一個池化層, 其作用是降低特征圖的分辨率, 同時參數(shù)和計算量也相應減少. 在全連接層中, 神經(jīng)元從2維轉換為 1維. 當前層中的每個單元都連接到前一層中的所有單元, 它以更復雜的方式提取特征, 以便深入挖掘更多信息, 并且將不同位置的模式連接起來.
本文通過對VGG16網(wǎng)絡全連接層結構進行微調, 來適應對樣本量較少的磁瓦缺陷圖像的分類識別. 調整后的VGG16網(wǎng)絡結構如表 2 所示.
原始VGG16網(wǎng)絡中第2個全連接層神經(jīng)元的個數(shù)為4 096, 因為該全連接層和softmax分類層連接, 所以其神經(jīng)元個數(shù)需要參考實驗的類別數(shù)來設置. 原始的VGG16網(wǎng)絡是在ImageNet圖片數(shù)據(jù)集下訓練的, 該數(shù)據(jù)集的類別數(shù)為1 000, 而本文中缺陷數(shù)據(jù)集的類別數(shù)為6, 所以, 該參數(shù)設置不宜太大, 否則會導致全連接層參數(shù)量過多, 容易引起網(wǎng)絡過擬合. 本文將該參數(shù)分別設置為32, 64, 128, 256進行實驗, 并對實驗結果進行比較. 結果顯示, 將其設置為128時, 訓練效果最好, 因此, 本文將第2個全連接層神經(jīng)元個數(shù)設置為128, 并將分類層的輸出類別數(shù)由1 000改為6. 調整后的網(wǎng)絡訓練參數(shù)大大減少, 更適用于少樣本磁瓦缺陷數(shù)據(jù)的分類.
表 2 調整后的VGG16結構Tab.2 Adjusted VGG16 structure
本文實驗環(huán)境配置如下: 英特爾 Xeon(至強)E5-2680 v4 14核處理器, Nvidia Quadro P1000主顯卡, CUDA-11.1、 CUDNN-11.1深度學習庫, keras深度學習框架, 64 GB 內存, Windows 10 操作系統(tǒng).
模型的超參數(shù)對模型性能有一定的影響, 合適的超參數(shù)可以提高模型的收斂速度和精度[12]. 批量大小表示模型訓練過程中每一步使用的圖像數(shù)量, 這個數(shù)量決定了梯度下降最快的方向. 模型收斂速度隨著批量大小的增加而加快. 批量大小的選取應該適中, 若批量大小過大, 可能導致顯存不夠和訓練loss不下降; 若批量大小過小, 則每個batch包含的信息過少, 網(wǎng)絡不易收斂. 因此, 本文選擇批量大小為 64 來訓練模型.
學習率是影響模型收斂速度的主要因素. Adam是一種學習率的自適應梯度更新方法, 對初始學習率的設置依賴較小, 可有效減少局部最優(yōu)解的出現(xiàn). 因此, Adam 被選為學習率優(yōu)化方法. Adam優(yōu)化算法雖然對初始學習率不是很敏感, 但它仍然是影響模型收斂速度的重要超參數(shù). 合適的初始學習率可以加快模型的收斂速度. 初始學習率過大時, 可能會直接收斂到局部最小值點; 學習率過小又會導致收斂速度緩慢. 通過多次的訓練調試, 當學習率為10-4時, 可以有較好的訓練過程, 故選擇10-4作為初始學習率.
參數(shù)的設置對分類器訓練有著非常重要的作用, 在正式對磁瓦數(shù)據(jù)進行網(wǎng)絡訓練之前, 需要預訓練網(wǎng)絡模型, 進而選取合適的模型參數(shù). 卷積神經(jīng)網(wǎng)絡模型參數(shù)設置如表 3 所示.
表 3 深層卷積神經(jīng)網(wǎng)絡的模型參數(shù)Tab.3 Model parameters of deep convolutional neural network
為驗證本文缺陷分類方法, 按照8∶2的比例將每類缺陷樣本劃分為訓練集和測試集, 再將6類樣本的訓練集和測試集分別合并, 構成總的訓練集和測試集, 這種劃分方式可以保證訓練集和測試集中各類樣本比例相同. 為便于對網(wǎng)絡進行調整, 使用同樣的方法再將訓練集中20%的樣本劃分為驗證集, 磁瓦數(shù)據(jù)分布如表 4 所示. 由于數(shù)據(jù)集的圖像大小不同, 統(tǒng)一將磁瓦缺陷圖像大小調整為224 × 224×3, 以適應VGG16網(wǎng)絡的輸入格式.
表 4 訓練集, 驗證集和測試集數(shù)據(jù)占比Tab.4 The proportion of training set, validation setand test set data
圖 4 和圖 5 分別為磁瓦缺陷識別正確率和損失函數(shù)隨迭代輪數(shù)變化曲線圖, 虛線代表訓練過程, 實線代表驗證過程. 可以看出, 模型大概在迭代輪數(shù)為20時趨于穩(wěn)定; 當?shù)啍?shù)為40時, 訓練正確率為100%, 驗證正確率為97.52%; 模型在測試集上的分類識別率可以達到98.69%.
圖4 磁瓦缺陷識別正確率曲線Fig.4 Accuracy rate curve of magnetic tile defect identification
圖5 磁瓦缺陷損失曲線Fig.5 Defect loss curve of magnetic tile
實驗使用混淆矩陣方法對試驗結果進行分析. 如圖 6 所示, 背景顏色代表分類準確率, 顏色越深, 則識別精度越高. 混淆矩陣的每一行代表磁瓦數(shù)據(jù)的真實樣本類型, 該行的數(shù)據(jù)總數(shù)表示該類型的樣本數(shù)目; 每一列代表預測樣本類型, 該列的數(shù)據(jù)總數(shù)表示預測該類型的樣本數(shù)目. 從圖可以看出, 磨損缺陷的識別正確率最高, 為100%; 破損缺陷的識別率最低, 為94.11%.
精確率表示預測為某類樣本中實際為該類別的比例, 召回率是某類樣本中預測正確樣本的比例,F(xiàn)1值是模型精確率和召回率的一種調和平均. 精確率、 召回率和F1值計算公式如下
精確率為
(1)
召回率為
(2)
F1值為
(3)
式中:TP,TN分別為被正確分為正類或負類的樣本數(shù)目;FP,F(xiàn)N分別為被錯誤分為正類或負類的樣本數(shù)目. 測試集分類結果如表 5 所示.
圖6 混淆矩陣Fig.6 Confusion matrix
表 5 測試集分類結果Tab.5 Test set classification results
為驗證本文方法用于磁瓦缺陷分類的性能, 使用擴增的數(shù)據(jù)集, 分別將本文方法與支持向量機SVM, 人工神經(jīng)網(wǎng)絡(Architectural Neural Network, ANN), 極限學習機(ELM)3種分類算法的性能進行了比較, 結果如表 6 所示. 基于遷移學習的VGG16方法的訓練準確率為100%, 測試準確率為98.69%, 在4種分類方法中均為最高, 表明該方法在磁瓦缺陷檢測分類中具有顯著的優(yōu)越性.
表 6 4種分類方法分類結果對比Tab.6 Comparison of classification results of fourclassification methods
本文提出了一種基于遷移學習的磁瓦缺陷檢測分類方法, 以解決由于磁瓦缺陷樣本少引起的網(wǎng)絡過擬合和網(wǎng)絡訓練時間過長等問題. 相對于傳統(tǒng)的表面缺陷檢測分類方法, 本文方法明顯提高了磁瓦缺陷的檢測效率, 降低了通過人為選取特征對系統(tǒng)檢測精確度的影響. 這一結果也表明了遷移學習的優(yōu)越性. 該方法借助在相關領域訓練好的模型, 僅作部分微調就能夠在少量訓練樣本上得到較高的識別效果. 實驗結果同時也證實了磁瓦表面缺陷檢測使用深層卷積神經(jīng)網(wǎng)絡的可行性, 滿足了工業(yè)生產(chǎn)實時在線檢測的需求, 為以后工業(yè)生產(chǎn)的實際應用創(chuàng)造了有利的條件. 本文僅采用翻轉的方式擴充數(shù)據(jù), 數(shù)據(jù)量仍然較少, 在下一階段工作中, 將考慮采用生成對抗網(wǎng)絡的方法擴充缺陷數(shù)據(jù), 以實現(xiàn)更好的分類效果.