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