郝用興 龐永輝



摘 要:本文對帶鋼表面斑塊、裂紋、夾雜等6種缺陷進行研究,利用DenseNet深度學習網絡和PyQt5設計一種缺陷智能識別系統,可以實現帶鋼表面缺陷準確高效的識別。該識別系統在以Tensorflow為后端的Keras平臺上搭建,采用遷移學習的方法對帶鋼表面的6種缺陷進行識別,訓練過程中凍結基礎模型DenseNet的頂層部分,利用數據擴充、添加BN層防止過擬合。最終模型在訓練集上的正確率為99.33%,在測試集上每一類缺陷的正確率均超過97%,其間繪制出混淆矩陣。最后,搭建缺陷識別系統的GUI界面,實現帶鋼表面缺陷識別的可視化功能,提高用戶體驗。
關鍵詞:缺陷檢測;圖像識別;遷移學習;DenseNet;GUI;PyQt5
中圖分類號:TTH164;TP29文獻標識碼:A 文章編號:1003-5168(2021)03-0011-04
Research on Intelligent Recognition System of Strip Steel Surface
Defects Based on DenseNet
HAO Yongxing PANG Yonghui
(School of Mechanical Engineering, North China University of Water Resources and Electric Power,Zhengzhou Henan 450045)
Abstract: In this paper, six kinds of defects such as patches, cracks, and inclusions on the surface of strip steel were studied, and an intelligent defect recognition system was designed by using DenseNet deep learning network and PyQt5, which could realize accurate and efficient identification of surface defects of strip steel. The recognition system was built on the Keras platform with Tensorflow as the backend, which used the transfer learning method to identify the six defects on the surface of the strip, froze the top part of the basic model DenseNet during the training process, used data to expand and added a BN layer to prevent overfitting. The final model had a correct rate of 99.33% on the training set, and the correct rate of each type of defect on the test set exceeded 97%, during which a confusion matrix was drawn. Finally, the GUI interface of the defect recognition system was built to realize the visual function of surface defect recognition of strip steel and improve the user experience.
Keywords: defect detection;image identification;transfer learning;DenseNet;GUI;PyQt5
隨著“中國制造2025”的提出,制造與檢測的智能化成為加工制造業發展的必然趨勢。為了滿足日益增長的生產力需求,設計一種智能化的缺陷識別系統已迫在眉睫。深度學習作為人工智能的一種工具,其強大的數據表征能力令其發展迅速,它可以通過訓練復雜的模型,學習數據的內在規律特性,應用范圍廣,準確度高。將深度學習應用于工業領域是當今時代的一大熱潮,其具有強大的學習能力,可以通過訓練自動提取圖像特征,適用于不同的目標,泛化性強[1-2]。
鑒于深度學習的優勢,本次研究利用DenseNet模型,以帶鋼表面缺陷為研究對象,利用遷移學習的方法搭建模型,實現帶鋼表面6種缺陷的識別。同時,利用PyQt5搭建GUI界面,實現調參及測試的可視化。
1 DenseNet模型簡介
深度卷積神經網絡在圖像識別任務中取得了優異的成績,一般由卷積層、池化層和全連接層組成[3]。本次研究以DenseNet網絡為基礎,實現帶鋼表面缺陷的識別。
DenseNet是一種具有密集連接的卷積神經網絡,由一系列的Dense Block和Transition Layer堆疊而成。一個Dense Block中有若干層結構,每一層都由三個連續的操作組成,即BN(Batch Normalization)、ReLU、卷積。任意兩層之間都有直接的連接,即網絡每一層的輸入都是前面所有層輸出的通道合并的并集,而該層所學習的特征圖直接傳給其后面所有層作為輸入[4]。
這種形式最大限度地完成了信息傳遞,實現了特征復用,有效地緩解了梯度消失的問題。與傳統的網絡相比,特征復用使DenseNet無須重新學習冗余的特征圖,有利于模型的訓練。但是,每一層都存在通道合并操作,使得輸出時通道數很大,而Transition Layer結構利用池化操作將通道數降低至指定標準,減少了參數數量,在一定程度上緩解了過擬合問題。本研究選用DenseNet-201作為基礎模型。
2 缺陷識別模型的遷移學習
遷移學習是把已訓練好的模型參數遷移到新的模型以幫助其訓練,可有效降低訓練成本。缺陷識別模型的遷移學習主要包括以下幾個步驟:數據集的準備、模型設計以及模型訓練[5]。具體流程如圖1所示。
2.1 數據集的準備
試驗采用的數據來自某大學帶鋼表面缺陷數據庫,該數據庫收集了6種典型的熱軋帶鋼表面缺陷,即軋入鱗片(RS)、斑塊(Pa)、裂紋(Cr)、凹坑表面(PS)、夾雜(In)和劃痕(Sc)。數據庫包括1 800張灰度圖像,涵蓋了6種典型表面缺陷的300個樣本。
數據集的質量直接決定模型性能的好壞,所以要對數據進行預處理。首先,按照4∶1的比例把數據集分為訓練集和測試集,得到1 440張圖片組成的訓練集;然后,對訓練集的數據進行擴增,以滿足深度學習對數據量的需求;最后,綜合采取多種措施,如對原始圖像數據進行水平翻轉和垂直翻轉、改變對比度等,達到數據擴充的目的,最終得到10 080張訓練集圖片,其中每個類別有1 680張圖片,保證了數據的均衡。
2.2 模型設計
Keras的應用模塊提供了帶有預訓練權值的深度學習模型。這些模型在ImageNet數據集上進行預訓練得到的權重可以用來進行預測、特征提取和微調。人們可以調用應用模塊下載訓練好的DenseNet-201作為基礎模型,接著對模型的分類器和結構細節進行設計。缺陷識別模型的結構如表1所示。首先創建一個輸入層,將圖片resize(調整尺寸)至224×224的大小,然后將其輸入帶有預訓練權值的DenseNet-201模型中。為了使模型更好地符合當前的識別任務要求,對DenseNet-201的輸出做全局平均池化操作后,連接一個1 024個神經元的全連接層。為了緩解過擬合情況,在全連接層后增加一個BN層,最后連接用于分類處理的Softmax函數。
BN層又被稱為批量標準化層,它的作用是將模型上一層的輸出數據處理為均值等于0、方差等于1的數據分布,再送入下一層進行處理。為了彌補標準化對數據表達特征能力的影響,本研究引入了可學習的參數[γ]、[β],相關計算公式為:
[yk=γkxk+βk]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
式中,[xk]為第[k]層所有神經元的輸出數據歸一化處理之后的結果,作為BN層的輸入;[yk]為BN層的輸出結果,將參與后續神經網絡的計算。
參數[xk]的計算公式為:
[xk=xk-ExkVarxk]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
式中,[xk]為第[k]層神經元的輸出數據;[Exk]、[Varxk]分別為輸出數據的均值和方差。
對于第[k]層來說,每一個神經元對應一對參數[γ]、[β]。讓標準化后的數據恢復模型學習到的特征分布,同時緩解模型的過擬合現象。
Softmax函數是多分類問題中最后一步的輸出處理,為歸一化指數函數。將每一個輸出結果映射為0到1的概率,進行分類,同時又保證所有輸出信號的和為1。
2.3 模型訓練
帶鋼缺陷識別模型的搭建、訓練以及測試均是在以Tensorflow為后端的Keras平臺上進行的。硬件環境為Inter(R)Xeon(R)Silver4116CPU@2.10GHz,本研究利用Anaconda在Windows10 64位系統下配置Python3.6的虛擬環境。
在遷移學習中,為了讓模型更加符合帶鋼表面缺陷的圖像數據,通常在預訓練模型的基礎上進行微調。深度學習網絡中的前幾層得到的特征是比較基礎的邊緣、角點特征,適用于全部任務;而網絡層數越高的層和數據庫全局信息聯系越緊密。本試驗中,預訓練模型DenseNet-201共有706層,凍結頂層的606層卷積層,訓練剩下的卷積層和全連接層,整個模型一共有20 299 334個參數,凍結了14 742 912個參數,可訓練的參數量為5 556 422。
值得說明的是頂層被凍結的606層中包含的BN層。BN層使得深度神經網絡訓練過程中每一層網絡輸入都保持相同的分布,減少了過擬合并具有輕微的正則化效果。在遷移訓練中,layer.trainable參數可以控制卷積層的參數是否可變,但BN層的參數是由K.learning_phase的值控制的。在默認的情況下,BN層在遷移學習中的設置為預測模式,導致BN層中的均值[Exk]和方差[Varxk]不會更新。因此,在用訓練好的模型測試時,BN層使用的均值和方差仍是預訓練時使用的數據集的值,而不是來自帶鋼表面缺陷的數據集,導致模型在測試數據集上的準確率會大大降低。所以,含有BN層模型的遷移學習在凍結模型權重時將BN層設定為訓練模式,可以提高模型的準確率。
模型訓練過程中,較大的學習率可以加快訓練速度,但會使模型找不到最優解。因此,設置初始的學習率為0.001,當檢測到測試集的準確率在3個訓練周期內不增加時,學習率會下降至原來的一半。正則化系數設置為0.000 1,Batch Size設置為16,將所有數據訓練一次時,要訓練630次,訓練周期數為60,一共迭代37 800次。同時,為了防止因過度訓練導致過擬合,如果檢測到準確率在5個周期內沒有提升,就可以提前結束訓練過程。設置好訓練參數,就可以訓練模型。
模型訓練過程中,從訓練集中隨機抽取10%的數據作為驗證集。驗證集和訓練集的損失值和準確率是判定模型性能的重要指標,損失值是模型預測值與真實值的差距,準確率為訓練過程中每次迭代后測試的結果。訓練過程中,訓練集上的損失值與準確率的變化情況如圖2所示,從圖中可以看到,第20個周期時準確率已經達到99%左右,第21個周期時訓練停止。
模型在訓練集上的損失值為0.134 4,準確率為99.33%。
2.4 模型評估
混淆矩陣是一種在深度學習中常用的輔助工具,有助于人們直觀地了解分類模型在每一類樣本里面的表現,常作為模型評估的一部分。
在識別任務中,查準率([Precision])、召回率([Recall])以及F1-Score指標是評估模型性能常用的指標。查準率是在模型預測為正的所有樣本中模型預測對的比重。召回率是在真實值是正的所有樣本中模型預測對的比重。而F1-Score指標則綜合了查準率與召回率的產出的結果。F1-Score的取值范圍為0~1,1代表模型的輸出最好,0代表模型的輸出結果最差,其計算公式為:
[F1-Score=2×Precision×RecallPrecision+Recall]? ? ? ? ? ? ? ?(3)
在多分類的混淆矩陣中,查準率為主對角線上的值除以該值所在列的和;召回率等于主對角線上的值除以該值所在行的和。人們可以從混淆矩陣的結果直觀地獲得各個參數的值,并根據數據制作統計表。混淆矩陣數值如表2所示。
從表2可以看出,評估模型使用的數據集包括56個Cr樣本、68個In樣本、68個Pa樣本、77個PS樣本、89個RS樣本以及90個Sc樣本,從模型對每一類缺陷的F1-Score值來看,多個指標都在0.98上下浮動。
3 缺陷識別模型的GUI實現
本文用PyQt5設計缺陷識別模型的用戶交互界面,實現測試過程調參和圖片的可視化。設計的缺陷識別系統包括兩個界面,即登錄界面和測試界面。登錄界面是展示給用戶的第一界面,主要功能是測試界面的入口。測試界面可以利用訓練好的模型進行圖像識別,明確圖片屬于哪一類缺陷。測試界面中設置了兩種測試方式,即單張檢測和多張檢測。測試界面的設計效果如圖3所示。
4 結語
本文基于深度學習理論,利用DenseNet模型和遷移學習方法搭建帶鋼表面缺陷識別系統。為防止過擬合,其間對數據進行擴充處理,設置學習率變化,并在預訓練權重的基礎上添加BN層和Softmax層。試驗證明,模型訓練集達到99.33%的識別正確率。DenseNet深度學習模型對帶鋼表面6種缺陷的識別準確率均超過97%,結果表面該方法在工業方面有很高的應用價值。本文設計了基于PyQt5的GUI界面,界面簡潔易懂,操作方便,可以更好地滿足用戶需求。
參考文獻:
[1]陳文輝,蔡妹姝,嚴松,等.基于深度卷積神經網絡與遷移學習的魚類分類識別[J].福建師大福清分校學報,2019(5):30-38.
[2]王占云,閆志華.一種基于深度學習的產品分類統計方法的研究[J].機械設計與制造,2020(3):163-166.
[3]林志瑋,丁啟祿,黃嘉航,等.基于DenseNet的無人機光學圖像樹種分類研究[J].遙感技術與應用,2019(4):704-711.
[4]高建瓴,王竣生,王許.基于DenseNet的圖像識別方法研究[J].貴州大學學報(自然科學版),2019(6):58-62.
[5]廉小親,成開元,安颯,等.基于深度學習和遷移學習的水果圖像分類[J].測控技術,2019(6):15-18.