李伯釗,徐同明,周 力,馮煥虎
(浪潮通用軟件有限公司,濟南 250101)
近年來,我國鋼鐵行業(yè)發(fā)展取得重大成就,今年是“十四五”開局之年,作為國民經(jīng)濟的中流砥柱,鋼鐵行業(yè)發(fā)展同時面臨機遇和挑戰(zhàn),尤其是如何追求高質(zhì)量的發(fā)展。在鋼材生產(chǎn)過程中,由于工藝限制,鋼材表面難免會出現(xiàn)諸如裂痕、摻雜和斑塊等各類缺陷[1]。進行合理的質(zhì)檢措施可盡早識別鋼材表面缺陷,及早返工返修,保證鋼材總體強度、抗腐蝕性和沖擊韌性等性能達標。傳統(tǒng)質(zhì)檢措施工作量大,風險高,易出錯,而與之相對的智能質(zhì)檢,主要通過機器視覺的方式進行。此過程降低了人力成本和勞動強度,全面優(yōu)化了鋼材表面質(zhì)檢效率。
因此,研究人員基于制造業(yè)場景的表面缺陷檢測進行了大量研究[2],常用的方法有傳統(tǒng)圖像識別和機器學習兩種方式。二者的共性都是使用機器視覺技術對圖像進行采集,不同之處在于前者主要是使用微分,差分和濾波等算子進行一系列的數(shù)字圖像處理,最終得到識別結(jié)果[3,4]。而后者主要洞察大量圖像數(shù)據(jù)規(guī)律,通過機器學習訓練模型,再調(diào)用模型進行識別。傳統(tǒng)圖像識別方法專注于特征提取,將算法成功應用于表面缺陷識別中,且取得了較大成效,但也面臨著識別準確率,速度和抗干擾能力等不足的現(xiàn)狀。隨著人工智能的蓬勃發(fā)展,機器學習逐漸成為表面缺陷識別的主流方法。機器學習是人工智能領域的重要分支,圍繞神經(jīng)網(wǎng)絡開展具體計算,而深度學習是以深度神經(jīng)網(wǎng)絡為代表的特征提取方法[5]。深度學習的迭代訓練過程受模型結(jié)構和訓練參數(shù)的影響,訓練后將模型以權重知識的形式進行存儲,完成后續(xù)識別任務。與傳統(tǒng)機器學習相比,深度學習具備更高的學習表征能力。文獻[6]建立了卷積神經(jīng)網(wǎng)絡模型,以進行帶鋼表面缺陷識別任務,并針對抑制模型過擬合展開研究;文獻[7]在InceptionV3的基礎上通過遷移學習,進行了熱軋鋼板表面缺陷識別工作,同時研究了訓練批次對識別準確率的影響;文獻[8]使用抗噪聲的超球體支持向量機分類模型進行鋼板表面缺陷識別,具備性能較高的效果;文獻[9]針對輪胎缺陷識別工作,建立了一種新型深度卷積稀疏編碼網(wǎng)絡,采用無監(jiān)督訓練方式,降低了人工標注主觀性,提高了識別準確率;文獻[10]提出了一種改進的GoogLeNet算法,應用于鋅渣識別場景中,并與其他深度神經(jīng)網(wǎng)絡模型進行了對比。以上文獻的思路均將深度學習成功應用于制造業(yè)表面缺陷識別中,且達到了較高的識別準確率。
綜合上述研究現(xiàn)狀,本文將基于認知視覺和遷移學習,研究更為準確、高速的端到端鋼材表面缺陷識別方法和視覺系統(tǒng)。首先建立鋼材表面缺陷識別數(shù)據(jù)集,并進行一系列預處理措施,其次設計應用遷移學習的鋼材表面缺陷識別方法,然后進行鋼材表面缺陷識別實驗與對比分析,最后設計云邊端協(xié)同的鋼材表面缺陷識別認知視覺系統(tǒng),以驗證本文的研究內(nèi)容在鋼材表面缺陷識別領域中的優(yōu)勢。
鋼材表面缺陷識別數(shù)據(jù)集的建立是精準識別的前提,本文采用東北大學的NEU surface defect database(以下簡稱NEU)數(shù)據(jù)集[11],整套數(shù)據(jù)集共有1800張圖像,涵蓋了六種缺陷類別,分別是裂紋(Crazing,Cr),摻雜(Inclusion,In),斑塊(Paches,Pa),表面麻點(Pitted Surface,PS),壓入氧化鐵皮(Rolled-in Scale,RS)和劃痕(Scratches,Sc),每種類別有300張圖像,圖像尺寸均為200×200像素,數(shù)據(jù)集樣本示例如圖1所示。本數(shù)據(jù)集的主要特點是不同類之間的缺陷特征存在相似性,即使是同類別,也有若干差異,因此,需在數(shù)據(jù)集預處理,深度神經(jīng)網(wǎng)絡模型建立和模型訓練等環(huán)節(jié)進行優(yōu)化改進,以提高識別效率和準確度。
圖1 鋼材表面缺陷數(shù)據(jù)集樣本
當在小數(shù)據(jù)集圖像上進行識別任務時,往往會出現(xiàn)過擬合的現(xiàn)象。即所訓練模型有較大概率會使用不相關的特征來進行預測。一個模型能否實用,取決于其針對關鍵特征的學習能力。數(shù)據(jù)集增強策略等預處理措施對提升模型準確率,泛化能力,降低損失和抑制過擬合等方面具備一定的促進作用。本文采用了剪切強度為0.2的逆時針剪切變換,幅度為0.2的隨機縮放,比例為0.2的水平和豎直偏移,隨機水平翻轉(zhuǎn)等數(shù)據(jù)集增強策略。這些數(shù)據(jù)集增強策略既可對數(shù)據(jù)集進行衍生擴充,又可弱化不相關的特征,為后續(xù)深度神經(jīng)網(wǎng)絡模型訓練奠定基礎。
深度神經(jīng)網(wǎng)絡(Deep Neural Network,DNN)是多層人工神經(jīng)網(wǎng)絡的有機組合,至少具備一層隱藏神經(jīng)網(wǎng)絡[12]。與淺層次的神經(jīng)網(wǎng)絡相比,其抽象程度更高,特征提取過程無需人工干預,由底層到高層進行表示學習,并在計算機視覺,自然語言處理,缺陷檢測和語音識別等深度學習領域具備重要意義。深度神經(jīng)網(wǎng)絡分類廣泛,變體眾多,而其中的卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)較為典型,廣泛應用于圖像檢測識別任務中[13],即使是在小數(shù)據(jù)集場合也具備較好的泛化能力,且無需過多的手工特征工程。其卷積過程運算式可簡單表示為:
式(1)中,f為激活函數(shù),Ry為特征映射區(qū)域,l為層數(shù),vi-1x為前一層的輸入,wlxy為卷積過程中的卷積核,x和y分別為卷積核的長度和寬度,bly為偏移量,vly為當前層的特征圖輸出向量。通常,CNN模型的建立過程遵循如下步驟[14]:1)卷積層(Convolutional Layer)初步提取圖像特征。2)池化層(Pooling Layer)進一步提取圖像關鍵特征。3)全連接層(Dense Layer)匯總卷積層和池化層提取到的所有特征。
4)輸出分類器以進行識別任務。
雖然CNN可應用于圖像識別任務,但是由于制造業(yè)領域數(shù)據(jù)集存在獲取困難,特征不明顯等自身特殊性,以及訓練過程對計算能力需求大等因素,直接使用CNN進行鋼材表面缺陷識別將具備一定難度。而遷移學習[15]正適宜解決此類問題,其本質(zhì)是由參考領域向目標領域的學習表征,在預訓練模型的基礎之上,再次訓練針對新識別場景的模型,訓練過程相對較快,模型泛化能力好,尤其適用于目標數(shù)據(jù)量較小的識別任務,在制造業(yè)領域的應用具備實際意義。
常見的深度神經(jīng)網(wǎng)絡模型有AlexNet[16],VGGNet[17],InceptionNet[18]和ResNet[19]等,均可應用遷移學習進行訓練。本文使用VGG16卷積神經(jīng)網(wǎng)絡進行優(yōu)化建模,以完成鋼材表面缺陷識別任務。VGG16在ImageNet大型數(shù)據(jù)集上進行了預訓練,在此基礎上進行遷移學習將具備較理想的識別效果。
VGG16的原生結(jié)構如圖2所示,由13個卷積層,5個池化層和3個全連接層組成,圖2將卷積層,池化層和全連接層的標號定為Conv,Pool和Dense。
圖2共有六部分,前五部分是卷積層和池化層的組合,其中第一部分包括2個卷積層和1個池化層,第二部分包括2個卷積層和1個池化層,第三部分包括3個卷積層和1個池化層,第四部分包括3個卷積層和1個池化層,第五部分包括3個卷積層和1個池化層。最后一部分是3個全連接層外加Softmax輸出。VGG16使用維度相同的卷積核進行特征提取,并組成深層次的,多參數(shù)的,擬合能力高的網(wǎng)絡模型,以達到較好的圖像識別效果。
圖2 VGG16模型結(jié)構圖
先前提到全連接層的主要作用是匯總特征,即將輸出特征圖映射成向量,其計算式如式(2)所示,示意圖如圖3(a)所示。
圖3 全連接層與全局平均池化層對比
由于NEU數(shù)據(jù)集樣本數(shù)目較小,為抑制過擬合,本文在全局平均池化處理和Softmax之間加入隨機失活(Dropout)。未引入Dropout時的計算式為:
式(4)與式(3)相比,計算原理一致,但起始部分多了一個伯努利函數(shù)Bernoulli,作用于概率p,形成概率向量r(l)j,再與原始輸入y(l)相乘,得到新輸入,后續(xù)計算思路與式(3)相同。在不同的網(wǎng)絡結(jié)構中,Dropout的作用機制也不同,對于VGG16模型,Dropout可將整個特征圖的通道進行隨機置零。
針對帶Softmax的輸出,本文選擇交叉熵損失函數(shù)進行VGG16模型的評估,加快收斂速度,計算式如下:
其中,c為交叉熵損失,n為輸出類別,x為輸入樣本,y為實際輸出,a為模型預測輸出。
深度神經(jīng)網(wǎng)絡模型訓練的實質(zhì)是采用優(yōu)化方法得到最小的損失。因此,確定損失函數(shù)后,還要進行優(yōu)化函數(shù)的選型。本文使用Adam優(yōu)化方法,其與傳統(tǒng)隨機梯度下降法(Stochastic Gradient Descent,SGD)相比,學習率可自適應,優(yōu)化過程更加靈活。Adam優(yōu)化方法的運算式可表示為:
其中,u和v為動量因數(shù),lr為學習率,grakt為梯度,mt為對梯度的一階矩估計,nt為對梯度的二階矩估計,和為對矩估計的校正,從而形成近似對期望的無偏估計量,再結(jié)合式(10)即可對學習率施加一個動態(tài)的范圍Δθt。
采用Adam優(yōu)化方法后,訓練過程中學習率不再一成不變,而是在約束范圍內(nèi)動態(tài)可調(diào)的。特別是在迭代后期,過大的學習率易引發(fā)損失值振蕩發(fā)散,此時應采取動態(tài)改變學習率的策略進行微調(diào)。本文使用余弦退火策略動態(tài)改變學習率,計算式如下:
圖4 訓練早停流程圖
在圖4中,持續(xù)監(jiān)測驗證集上的損失函數(shù)值,當連續(xù)N個迭代(epoch)未下降時,則停止訓練并存儲模型,否則將保持當前學習率繼續(xù)訓練。采用此種策略的好處是可及時獲取較優(yōu)模型,減少不必要的epoch,提升訓練效率,避免隨著epoch的增加而發(fā)生過擬合的現(xiàn)象。
為驗證所建立深度神經(jīng)網(wǎng)絡模型的實際準確率和性能等,本文通過一系列遷移學習實驗進行測試驗證。實驗在Centos7操作系統(tǒng)進行,基于Google的TensorFlow框架,使用Python語言編碼,TensorFlow版本為2.0.0,Python版本為3.6.7。因VGG16參數(shù)較多,訓練時間長,故使用NVIDIA 的RTX 2080Ti顯卡加速訓練過程。
本文將NEU數(shù)據(jù)集按照10:3:2的比例劃分,即對于每種缺陷類別的300張圖像而言,隨機選取200張作為訓練集,60張作為測試集,40張作為驗證集。結(jié)合上文所建立VGG16模型進行初始實驗,初始參數(shù)批尺寸設為32,epochs設為50,學習率設為10-5,Dropout系數(shù)設為0.5。由于數(shù)據(jù)集規(guī)模較小,而VGG16模型熵容量較大,直接訓練全部網(wǎng)絡易導致過擬合,故本文的實驗采用凍結(jié)部分模型層級和微調(diào)的方式完成遷移學習,即在遷移學習的基礎上進一步優(yōu)化網(wǎng)絡參數(shù),訓練新模型。本文所設計的VGG16模型共有19層,總參數(shù)為14717766,首先將凍結(jié)層數(shù)設為15,訓練過程中的趨勢如圖5所示。
在圖5 中,驗證集上的損失值初始較高,在1.28~1.29之間,隨著epoch的增加,損失快速下降,準確率也不斷提升,在第8個epoch后趨勢逐漸平穩(wěn),最終模型收斂于第19個epoch,驗證集上的損失值在0.0933~0.0936之間,準確率為98.06%。
圖5 訓練過程中的趨勢圖
為進一步驗證初始實驗所訓練模型對六類鋼材表面缺陷的具體識別效果,本文將模型在驗證集上的識別結(jié)果以混淆矩陣的形式表示,如表1所示。
表1 初始實驗結(jié)果在NEU數(shù)據(jù)集上的混淆矩陣
由表1可以看出,裂紋(Cr),摻雜(In),壓入氧化鐵皮(RS)和劃痕(Sc)達到了最佳識別效果,準確率為100%。相對而言,斑塊(Pa)和表面麻點(PS)識別效果則不理想,也拉低了總體識別準確率。尤其是表面麻點(PS)受光照影響,類間差異較大,各有兩張圖像被誤判為裂紋(Cr)和摻雜(In)。接下來將采用更豐富的數(shù)據(jù)集增強策略,并調(diào)節(jié)模型參數(shù),進行對比實驗。
為進一步驗證凍結(jié)層數(shù)目對識別結(jié)果的影響,本文以初始實驗為基礎,除依次減少VGG16凍結(jié)層數(shù)目外,其余參數(shù)保持不變,依次將凍結(jié)層數(shù)目設為13,11,7和4,實驗結(jié)果如表2所示,不同條件下的訓練過程趨勢對比如圖6所示。
表2 凍結(jié)層數(shù)目改變后的實驗結(jié)果
圖6 不同條件下的訓練過程趨勢對比圖
為使不同條件下的趨勢對比更清晰直觀,圖6適當縮小了橫縱坐標軸的范圍。而表2給出了不同凍結(jié)層數(shù)目下的訓練參數(shù),訓練參數(shù)占總參數(shù)的百分比,驗證集上的損失值和驗證集上的準確率。隨著凍結(jié)層數(shù)目的減少,驗證集準確率整體呈現(xiàn)先上升后下降的趨勢。在凍結(jié)層數(shù)目為7的時候,模型識別效果為最優(yōu),驗證集準確率為99.92%,再增加凍結(jié)層數(shù)目時,驗證集準確率略有下降。在同樣使用NEU數(shù)據(jù)集的同一前提下,文獻[6]的識別準確率為99.5%,文獻[7]的識別準確率為99.8%,文獻[8]的識別準確率為98.52%。通過對比實驗,可得出以上文獻在NEU數(shù)據(jù)集上的識別準確率均屬于較高的水平,本文所建立的VGG16模型在凍結(jié)部分層級后進行微調(diào),也達到了較為理想的識別效果,且避免了訓練全部網(wǎng)絡參數(shù),在一定程度上提高了訓練效率。
為增強所研究鋼材表面缺陷識別方法的實用性,本文設計了鋼材表面缺陷識別認知視覺系統(tǒng),所設計系統(tǒng)基于云邊端協(xié)同思路,云邊端協(xié)同主要指云端,邊緣端和現(xiàn)場終端協(xié)同工作,有機統(tǒng)一,精準閉環(huán)。系統(tǒng)云邊端協(xié)同架構如圖7所示。
圖7 系統(tǒng)云邊端協(xié)同架構設計
圖7按照“云端管控-邊緣智能-多端適配”的思路展現(xiàn)了系統(tǒng)云邊端協(xié)同架構。云端實時性較低,主要實現(xiàn)管控類功能,包括模型訓練,評估,管理和部署,對歷史識別結(jié)果進行數(shù)據(jù)分析,以及封裝諸如模型調(diào)用和數(shù)據(jù)訂閱等對外服務;邊緣端的主要任務是對現(xiàn)場圖像進行預處理,調(diào)用模型完成缺陷識別,根據(jù)識別結(jié)果進行工序流轉(zhuǎn),實現(xiàn)智能調(diào)度,所調(diào)用模型可預先部署到邊緣端,當識別結(jié)果置信度低于95%時,則將圖像傳至云端,調(diào)用部署在云端的模型進行二次識別,以提高識別準確率,而云端圖像庫因此不斷豐富更新,進而定期訓練新模型,以提高模型精度;現(xiàn)場終端以多種設備適配云端和邊緣端的不同功能,如云端的數(shù)據(jù)分析結(jié)果可在現(xiàn)場大屏進行可視化呈現(xiàn),質(zhì)檢人員可通過現(xiàn)場看板完成缺陷檢測分析,而數(shù)控機床,可編程邏輯控制器(Programmable Logic Controller,PLC),人機界面(Human Machine Interface,HMI)和工業(yè)相機等設備組成了系統(tǒng)的視覺采集模塊,主要負責拍攝待識別鋼材表面圖像。
系統(tǒng)視覺采集模塊由PLC,HMI和工業(yè)相機等設備組成。PLC作為控制器,對數(shù)控機床進行運動控制,機床各軸通過伺服電機驅(qū)動。在機床工作臺放置待檢測鋼材,主軸末端安裝工業(yè)相機,將G指令下發(fā)到PLC,拍攝待識別鋼材表面的各個部位圖像。HMI可以對視覺采集模塊進行總體控制,包括參數(shù)配置,各軸點動和機床示教等。
本文在浪潮智能物聯(lián)網(wǎng)平臺(inIoT)中做了進一步技術驗證。inIoT位于浪潮“云+邊+端”智能制造總體架構的邊緣端,涵蓋數(shù)據(jù)采集、設備建模、仿真監(jiān)控、預警分析和智能服務等模塊,建立設備運維精細化閉環(huán),實現(xiàn)數(shù)字化車間管理,廣泛應用于大型裝備,航空航天,船舶制造,橋梁工程和兵器裝備等行業(yè)中。而在inIoT中增添部分智能服務,對制造企業(yè)實現(xiàn)轉(zhuǎn)型升級具有重要意義。為此,本文基于Angular和Tornado框架在inIoT的生產(chǎn)檢驗模塊中開發(fā)了智能檢驗功能,頁面如圖8所示。
圖8 inIoT智能檢驗功能頁面
圖8所示功能主要以圖形化的方式實現(xiàn)調(diào)用深度神經(jīng)網(wǎng)絡模型進行鋼材表面質(zhì)量檢驗的過程。頁面主要分為兩部分,左半?yún)^(qū)為圖像顯示區(qū),負責顯示待檢圖像;右半?yún)^(qū)為結(jié)果顯示區(qū),負責顯示置信度和檢驗時間等檢測結(jié)果,還可對鋼材表面質(zhì)量情況進行統(tǒng)計分析。智能檢驗功能將檢驗識別過程可視化,易于操作,人機交互性好,識別時間達到了毫秒級,既豐富了inIoT的功能,也將為云邊端協(xié)同系統(tǒng)在制造業(yè)場景表面缺陷識別中的應用提供有效依據(jù)。
1)針對傳統(tǒng)鋼材表面缺陷識別方式準確率和效率較低的現(xiàn)狀,本文研究了一種高效準確的鋼材表面缺陷識別方法,在VGG16的基礎上進行遷移學習。在研究過程中,采取了數(shù)據(jù)增強,引入全局平均池化,Dropout,動態(tài)改變學習率和訓練早停等策略,以提高模型準確率,降低損失和抑制過擬合現(xiàn)象。
2)通過對比實驗和鋼材表面缺陷識別認知視覺系統(tǒng)設計的方式對鋼材表面缺陷識別過程進行了技術驗證。實驗采取凍結(jié)模型部分層級和微調(diào)的方式,測試了不同凍結(jié)層數(shù)目的識別效果,并與其他文獻進行了對比,實驗結(jié)果較為理想,準確率達到了99.92%,所研究內(nèi)容也具備一定實用性。卷積神經(jīng)網(wǎng)絡和遷移學習等技術的應用也不僅局限于鋼材表面缺陷識別,由于網(wǎng)絡對于特征的高效提取能力,其在多種自動化動態(tài)識別場景中也可提供一定借鑒。
3)本文的研究是在小數(shù)據(jù)集上進行的,在準確率和性能等方面仍有較大提升空間。后續(xù)將加大數(shù)據(jù)量,優(yōu)化改進模型結(jié)構和訓練策略,并對比多種模型,得到更優(yōu)結(jié)果。