楊延西,趙 夢
(西安理工大學 自動化與信息工程學院,陜西 西安 710048)
鋼鐵行業(yè)作為制造業(yè)的支柱性產業(yè),近些年來得到了快速發(fā)展,帶鋼作為鋼鐵行業(yè)的重要產品之一,已經涉及生產制造、航空航天、國防科技等諸多領域[1]。帶鋼表面質量嚴重決定了最終的產品性能,現(xiàn)已成為國內外競爭的關鍵性指標,所以檢測帶鋼表面缺陷、提高帶鋼表面質量具有重要的現(xiàn)實意義。
文獻[2]提出一種基于視覺注意機制的鋼板表面缺陷檢測方法,利用高斯濾波器,Gabor濾波器和交叉尺度縮小、交叉尺度加法和歸一化等計算建立了鋼板表面缺陷檢測模型。但是該方法不具魯棒性,且速度較慢。劉坤等人[3]設計一套基于機器視覺技術的帶鋼表面缺陷檢測系統(tǒng),主要包括視覺傳感系統(tǒng)、計算機系統(tǒng)、電氣系統(tǒng)、軟件系統(tǒng)及機械輔助設備五部分,可以對帶鋼加工質量和過程信息進行自動獲取、表達、傳遞、分析。文獻[4]提出一種基于AdaBoost分類器的帶鋼表面缺陷研究,通過自適應中值濾波方法,有效保存圖像細節(jié);采用Canny算子強化缺陷圖像邊緣特征;再進行紋理特征提取,利用PCA-ReliefF算法進行特征選擇,最終通過AdaBoost分類器進行缺陷識別。
傳統(tǒng)的帶鋼檢測主要靠人工肉眼檢查,過于依賴質檢人員的主觀意愿,從而降低檢測的可信度[5]?,F(xiàn)如今,互聯(lián)網、大數(shù)據(jù)、科學技術等的飛速發(fā)展,為智能制造提供了動力引擎,智能制造是一種由智能機器和人類專家共同組成的人機一體化智能系統(tǒng),在制造過程中能夠進行智能活動。智能制造日益成為未來制造業(yè)發(fā)展的核心內容,呈現(xiàn)出智能化、模塊化、高度集成化的發(fā)展趨勢。智能制造作為工業(yè)4.0的核心,也就是實現(xiàn)動態(tài)配置的生產方式。工業(yè)4.0戰(zhàn)略率先由德國提出,其根本目標就是通過構建智能化網絡,推動工業(yè)生產制造進一步由自動化向智能化升級,他們認為制造業(yè)的未來只能通過智能化的生產來創(chuàng)造價值。毫無疑問,作為制造業(yè)的支柱性產業(yè),鋼鐵行業(yè)將逐步走向數(shù)字化,最終實現(xiàn)智能化[6-8]。
隨著計算機的普及,硬件設備性能的提高,深度學習又一次在業(yè)界被廣泛提及,因其能在傳統(tǒng)的識別任務上顯著提高準確率,彰顯出高超的處理復雜任務的能力[9]。許多領域的學者嘗試利用深度學習來解決實際問題,其中卷積神經網絡(CNN)被廣泛應用于故障診斷、缺陷檢測、圖像識別這一領域中[10-11]。本文提出一種基于CNN的帶鋼表面缺陷檢測系統(tǒng),通過構建卷積神經網絡框架,逐層提取帶鋼表面特征,依賴于計算機,提高缺陷檢測的準確性,逐步實現(xiàn)智能化檢測。
深度學習模型主要包括循環(huán)神經網絡模型(Recurrent Neural Network,RNN),長短期記憶網絡(Long Short-Term Memory,LSTM),生成式對抗網絡(Generative Adversarial Networks,GAN),卷積神經網絡模型(Convolutional Neural Network, CNN)等。其中,RNN是一類用于處理序列數(shù)據(jù)的神經網絡,主要應用于語音識別領域;LSTM是一種時間遞歸神經網絡,適合于處理和預測時間序列中間隔和延遲相對較長的重要事件,主要應用于機器翻譯領域;GAN是近年來無監(jiān)督學習最具前景的方法之一,模型通過至少含有生成模型(Generative Model)和判別模型(Discriminative Model)兩個模塊的互相博弈學習產生好的輸出,主要應用于圖像生成,如超分辨率任務,語義分割等[12];CNN是一種前饋神經網絡,基本結構主要包括兩層,分別為特征提取層和特征映射層。由于權值共享的特殊結構,CNN在圖像處理方面有著獨特的優(yōu)越性,其布局更接近于實際的生物神經網絡,典型CNN網絡結構圖如圖1所示。
圖1 CNN網絡結構圖
本文通過圖像處理,對帶鋼表面進行缺陷檢測,采用CNN模型,主要包括輸入層(input)、卷積層(convolution)、激活函數(shù)層(Relu)、池化層(Pooling)、局部響應歸一化層(lrn),全連接層(fc),drought層,輸出層(output)?;贑NN的帶鋼表面缺陷檢測網絡層級結構示意圖如圖2所示。
圖2 網絡層級結構示意圖
圖2所示為一個六層神經網絡,其中,input:輸入層,輸入數(shù)據(jù)為128×128×3的原始數(shù)據(jù);Conv1+Relu:第一卷積層:卷積核為3×3×64,步長為1,padding=‘SAME’,激活函數(shù)為Relu,通過這一層得到的輸出為:128×128×64的圖像數(shù)據(jù);卷積過程如式(1)所示。
(1)
n×n為卷積核大小,w為權值,b為偏置,x為對應位置上的像素值,y為輸出值,再將該輸出值y輸入激活函數(shù)Relu中,如式(2)所示。
(2)
式中,f(x)為特征圖像對應的像素點的值。
Pooling1+lrn為第一池化層:卷積核為2×2,步長為2,通過這一層得到的輸出為:64×64×64的圖像數(shù)據(jù);池化之后,執(zhí)行l(wèi)rn()操作,局部響應歸一化,有利于提高訓練過程中的準確度。
Conv2+Relu為第二卷積層:卷積核為3×3×16,步長為1,padding=‘SAME’,激活函數(shù)為Relu,通過這一層得到的輸出為:64×64×16的圖像數(shù)據(jù)。
Pooling2+lrn為第二池化層:卷積核為2×2,步長為2,通過這一層得到的輸出為:32×32×16的圖像數(shù)據(jù);池化之后,執(zhí)行l(wèi)rn()操作,局部響應歸一化,有利于提高訓練過程中的準確度。fc1+Relu為第一全連接層,128個神經元,將上一層中的輸出reshape為一行,激活函數(shù)為Relu。完成之后,執(zhí)行drought操作,即在深度學習神經網絡訓練過程中,對于神經網絡單元,按照一定的概率將其暫時從網絡中丟棄,是防止過擬合,提高效果的一種手段。
Fc2+softmax為第二全連接層,將上一層得到的1×1×128的列向量轉換成2個類別打分。此處使用TensorFlow提供的tf.softmax_cross_entropy_with_logits函數(shù),可以直接對Logit定義交叉熵損失。交叉熵刻畫的是實際輸出(概率)與期望輸出(概率)的距離,即交叉熵的值越小,兩個概率分布越接近,如公式(3)所示。
H(p,q)=-∑xp(x)logq(x)
(3)
其中,p為期望的輸出,q為實際的輸出,H(p,q)為交叉熵。
反向傳播階段使用自適應矩估計(Adaptive Moment Estimation,Adam)[13]進行優(yōu)化,Adam是一種自適應學習率算法,對每一個參數(shù)都計算自適應的學習率。Adam相比較于其它自適應算法,在實際中的表現(xiàn)更具優(yōu)勢。
典型帶鋼表面圖像如圖3所示。
圖3 帶鋼表面圖像
所以本文利用MATLAB對原始圖像進行鏡像和旋轉變換,以達到擴充樣本的目的,變換后的帶鋼表面圖像效果如圖4所示。
圖4 圖像變換
本次實驗總共包含1776張帶鋼表面圖像,其中缺陷圖像為1392張,無缺陷圖像為384張。將這1776張圖像作為原始數(shù)據(jù),制作Tfrecords,讀取Tfrecords數(shù)據(jù),獲得image和label,并保存相應的數(shù)據(jù),作為后續(xù)訓練的inputdata。
對inputdata進行image和label的分類制作,同時對輸入數(shù)據(jù)進行batch處理,以獲得image_batch和label_batch。
建立CNN神經網絡模型,主要包括4部分:定義模型(def inference())、定義好壞標準(def loss())、定義算法,挑出好的標準(def train())、定義輸入數(shù)據(jù)(def input()),模型建立完成之后,進行訓練與測試。
本次訓練在Intel Core i5-7300HQ,內存為8GB的CPU平臺上進行,采用TensorFlow框架,利用python語言完成。訓練過程中,選取1420張圖像作為訓練樣本,(包括缺陷圖像1114張,無缺陷圖像306張),余下的356張圖像作為測試樣本,(包括缺陷圖像278張,無缺陷圖像78張)。
實驗過程中,設置總迭代輪數(shù)為1000,調整batch_size以及學習率(learning_rate),進行測試,本文中batch_size分別取10、20,學習率分別取0.001和0.0001,得到的結果如表1所示。由表1可知,batch_size為10,學習率取0.0001時,模型的效果最好,準確率最高。在該模型下,對356張樣本圖像進行測試,每一張測試圖像輸出的最大概率均與其標簽一致,部分測試結果如表2所示,可以看出,該模型準確率為100%,未發(fā)現(xiàn)誤差,相較于文獻[5]所涉及的方法,有了較大的提升。
表1 各參數(shù)對模型準確率的影響
表2 測試結果
本文提出一種基于CNN的帶鋼表面缺陷檢測算法,引入深度學習知識,通過建立CNN模型,制作數(shù)據(jù)集,實現(xiàn)了對帶鋼表面缺陷的自動提取與檢測。實驗表明,本文所提出的方法具有較高的準確率,能夠滿足工業(yè)生產方面的要求。另外,該方法對于其它實物也可以進行類似檢測,具有一定的通用性。為緊跟工業(yè)4.0:智能制造的腳步,下一階段的主要任務是實現(xiàn)對檢測出的有缺陷帶鋼表面圖像進行自主的缺陷識別與分類,以達到更加高效、智能的目的。