唐山工業(yè)職業(yè)技術學院 王萌
帶鋼表面缺陷識別對于帶鋼產(chǎn)線的品質控制非常關鍵。帶鋼缺陷檢測作為一種多分類工作,需要檢測系統(tǒng)能夠高效、快速、準確地完成檢測任務。傳統(tǒng)方法不能準確地提取出帶鋼的缺陷特征,進而利用這些特征完成分類工作。本文提出一種殘差神經(jīng)網(wǎng)絡,提取帶鋼缺陷的多尺度特征圖。檢測系統(tǒng)利用這些多尺度特征可以有效對帶鋼缺陷進行分類。本文在一個冷軋帶鋼缺陷數(shù)據(jù)集上進行了效果驗證。對于數(shù)據(jù)集上存在的六種缺陷檢測精度達到90%以上。實驗結果證明該方法可以被進一步開發(fā)應用在帶鋼產(chǎn)線檢測系統(tǒng)上。
在現(xiàn)代工業(yè)體系中,智能化識別產(chǎn)線中出現(xiàn)的各種機電液故障是各個企業(yè)的關鍵能力[1]。對于鋼鐵生產(chǎn)企業(yè),在鋼鐵產(chǎn)線上會出現(xiàn)多種類型的表面缺陷??焖俜€(wěn)定地完成帶鋼表面缺陷識別不僅可以提高帶鋼產(chǎn)品的質量還能增加企業(yè)的競爭力。由于帶鋼生產(chǎn)過程中存在多種缺陷如結疤、凹痕、刮傷、污垢、孔洞、損壞和邊緣裂紋等,帶鋼表面缺陷分類屬于典型的多類問題。并且在實際的生產(chǎn)現(xiàn)場,出現(xiàn)的樣本數(shù)量是不均衡的[2]。也就是說,常見的缺陷類型數(shù)量會遠低于正常產(chǎn)品數(shù)量。帶鋼表面多種類型缺陷的分類檢測關鍵點是如何獲得高精度和高可靠性的檢測結果。然而,有許多因素使得帶鋼分類準確表面缺陷特別困難,如生產(chǎn)線高速運行、缺陷表現(xiàn)出多樣性、隨機分布和各種缺陷表現(xiàn)出互相干涉等。此外,由不同生產(chǎn)線引起的表面缺陷往往會產(chǎn)生不同特征,這更給檢測任務帶來很高的難度。由于傳統(tǒng)的人工目測已經(jīng)很難適應現(xiàn)代鋼鐵企業(yè)的檢測要求,機器視覺在各個現(xiàn)代科研領域都被廣泛重視[3]。很多實踐項目中都會采用機器學習這種具備自適應提取故障特征的智能算法完成特征識別[4]。王澤鵬利用兩階段檢測算法Faster R-CNN完成對首鋼鋼鐵產(chǎn)線的視覺檢測升級改造,獲得良好的實驗效果,大幅提升了檢測效率[5]。易夢云針對帶鋼圖像表面缺陷特征不明顯、樣本數(shù)量少等特點,針對性設計了一套圖像樣本擴充方法。圖像增強主要包括:幾何方法、物理方法的數(shù)據(jù)擴充。并且針對數(shù)據(jù)集進行了合理的數(shù)據(jù)預處理,降低了表面缺陷的噪音,最終選擇準確的分類器達到了理想的檢測效果[6]??梢钥闯觯瑖鴥?nèi)外眾多學者都將深度學習作為實現(xiàn)故障診斷的重要技術手段[7]。本文針對帶鋼缺陷檢測的技術特點,結合深度學習理論提出了一種基于多尺度特征圖的帶鋼缺陷檢測方法。
本文的后續(xù)章節(jié)主要結構如下:第二章介紹了應用的深度學習常見網(wǎng)絡層的算法原理;第三章利用東北大學公布的開源數(shù)據(jù)集驗證了本文提出研究方法的可行性,并結合實驗結果分析評價該方法的有效性;第四章對該方法進行總結歸納。對將來該方法的進一步深入拓展進行了展望。
多尺度特征圖思想來源于著名的殘差神經(jīng)網(wǎng)絡。殘差神經(jīng)網(wǎng)絡(ResNet)思想是由微軟研究院的何凱明等學者提出來的。隨著深度學習的不斷發(fā)展,各個學者設計的網(wǎng)絡結構越來越復雜,網(wǎng)絡層次越來越深。這不但提高了計算難度,還容易造成訓練過程出現(xiàn)過擬合現(xiàn)象。隨著我們設計越來越深入的網(wǎng)絡,必須掌握如何增加網(wǎng)絡的復雜性和提高網(wǎng)絡的表達能力。
殘差神經(jīng)網(wǎng)絡的結構示意如圖1所示:
圖1 普通網(wǎng)絡單元和殘差網(wǎng)絡單元對比Fig.1 Comparison of ordinary network units and residual network units
假設輸入值為x,假設我們希望通過深度學習獲得的期望底層映射是f(x)。圖1左部分表示通過神經(jīng)元計算和激活函數(shù)等可以直接得到映射函數(shù)f(x)。圖1右部分表示通過神經(jīng)元計算和激活函數(shù)等可以得到的殘差映射函數(shù)是f(x)-x,這也是殘差網(wǎng)絡的名字由來。如果等值映射f(x)=x被設計為底層映射,我們只需要通過卷積層和全連接層等推動向上路線的權重層的權重和偏差等于零即可。圖1右部分展示將圖層輸入x傳遞給加法運算符的實線稱為快捷連接。對于殘差塊,輸入可以通過跨層的快捷連接更快地向前傳播。殘差塊可以極大避免因為網(wǎng)絡深度的增加造成的梯度消失和梯度爆炸問題。
本文設計的多尺度特征圖主要網(wǎng)絡層設計如圖2所示:攝像頭采集的檢測圖像作為輸入信號,在各個網(wǎng)絡層之間前向計算順序的如圖3所示:
圖2 多尺度特征圖網(wǎng)絡層Fig.2 Multi-scale feature map network layer
圖3 模型網(wǎng)絡結構Fig.3 Model network structure
本文采用東北大學于2013年開源的鋼鐵缺陷檢測數(shù)據(jù)集NEU-DET。該數(shù)據(jù)集包含了鋼鐵產(chǎn)線上常見的幾種表面缺陷狀態(tài)。該數(shù)據(jù)集包含目標檢測數(shù)據(jù)集和缺陷分類數(shù)據(jù)集兩個大類,本文根據(jù)研究目的選擇了缺陷分類數(shù)據(jù)集。主要包含6中表面缺陷:裂紋(Crazing)、壓入氧化皮(Rolled-in Scale)、劃痕(Scratches)、夾雜(Inclusion)、斑塊(Patches)、麻點(Pitted Surface)。其中每個類別有三百張圖片,每張圖片的尺寸為200像素×200像素。任意選擇幾張不同類型的缺陷圖像如圖4所示:
圖4 東北大學帶鋼缺陷檢測圖像Fig.4 Northeastern university strip defect detection image
本文采用的實驗條件為:Intel(R) Core(TM) i7-1065G7CPU,主頻1.50GHz,自帶內(nèi)存容量為8G,Win10操作系統(tǒng)。選擇開源編程語言Python,利用Anaconda配置基礎的開發(fā)環(huán)境,基于Pytorch深度學習框架設計網(wǎng)絡模型,并在Jupyter運行環(huán)境下驗證全部程序代碼。將全部1800張圖片進行切分,其中80%為訓練集,剩余20%為測試集。由于訓練數(shù)據(jù)量比較大,網(wǎng)絡結構包含大量的殘差連接,這都會導致運算速度變慢。本文根據(jù)實際選擇訓練批次為40,初始訓練迭代步長LR等于0.001,并且采用余弦下降法逐步降低訓練步長。每批次的訓練數(shù)量batch_size等于128。
本文提出的帶鋼缺陷檢測模型的準確率訓練走勢如圖5所示。前5次訓練,由于初期學習率比較大,容易造成訓練結果波動比較大。在進行到第10次訓練,首次模型準確率超過了90%,后面隨著訓練的進行還是會在90%~95%之間產(chǎn)生訓練波動。后續(xù)可以考慮采用專用的圖像訓練工具GPU和TPU進行更大規(guī)模尺度張量的計算,力求讓訓練模型可以快速完成收斂?;蛘呃^續(xù)大幅度增加訓練批次,這樣會消耗很多計算時間和計算資源。設置在訓練的過程中,不斷以訓練準確率為基準保存最優(yōu)訓練模型。
圖5 模型訓練準確率變化Fig.5 Model training accuracy changes
最后在測試集中隨機挑選一部分帶鋼缺陷圖像進行結果驗證,驗證訓練結果如圖6所示,產(chǎn)生的混淆矩陣圖如圖7所示。每個圖片上方為預測缺陷類型,括號內(nèi)為實際缺陷類型。實際效果比較滿意,全部16張圖像都被正確預測。
圖6 驗證集測試結果Fig.6 Validation set test results
圖7 驗證集混淆矩陣圖Fig.7 Validation set confusion matrix diagram
本文提出的多尺度特征圖帶鋼缺陷檢測方法,可以在基于多尺度方法提取帶鋼缺表面特征后精確判斷故障類型,完成多類型分類任務。在后續(xù)的研究中可以考慮采用專用的深度學習計算設備如GPU等提高訓練效率,進一步提高模型在實時帶鋼檢測系統(tǒng)上應用的可行性。