唐山工業職業技術學院 王萌
帶鋼表面缺陷識別對于帶鋼產線的品質控制非常關鍵。帶鋼缺陷檢測作為一種多分類工作,需要檢測系統能夠高效、快速、準確地完成檢測任務。傳統方法不能準確地提取出帶鋼的缺陷特征,進而利用這些特征完成分類工作。本文提出一種殘差神經網絡,提取帶鋼缺陷的多尺度特征圖。檢測系統利用這些多尺度特征可以有效對帶鋼缺陷進行分類。本文在一個冷軋帶鋼缺陷數據集上進行了效果驗證。對于數據集上存在的六種缺陷檢測精度達到90%以上。實驗結果證明該方法可以被進一步開發應用在帶鋼產線檢測系統上。
在現代工業體系中,智能化識別產線中出現的各種機電液故障是各個企業的關鍵能力[1]。對于鋼鐵生產企業,在鋼鐵產線上會出現多種類型的表面缺陷。快速穩定地完成帶鋼表面缺陷識別不僅可以提高帶鋼產品的質量還能增加企業的競爭力。由于帶鋼生產過程中存在多種缺陷如結疤、凹痕、刮傷、污垢、孔洞、損壞和邊緣裂紋等,帶鋼表面缺陷分類屬于典型的多類問題。并且在實際的生產現場,出現的樣本數量是不均衡的[2]。也就是說,常見的缺陷類型數量會遠低于正常產品數量。帶鋼表面多種類型缺陷的分類檢測關鍵點是如何獲得高精度和高可靠性的檢測結果。然而,有許多因素使得帶鋼分類準確表面缺陷特別困難,如生產線高速運行、缺陷表現出多樣性、隨機分布和各種缺陷表現出互相干涉等。此外,由不同生產線引起的表面缺陷往往會產生不同特征,這更給檢測任務帶來很高的難度。由于傳統的人工目測已經很難適應現代鋼鐵企業的檢測要求,機器視覺在各個現代科研領域都被廣泛重視[3]。很多實踐項目中都會采用機器學習這種具備自適應提取故障特征的智能算法完成特征識別[4]。王澤鵬利用兩階段檢測算法Faster R-CNN完成對首鋼鋼鐵產線的視覺檢測升級改造,獲得良好的實驗效果,大幅提升了檢測效率[5]。易夢云針對帶鋼圖像表面缺陷特征不明顯、樣本數量少等特點,針對性設計了一套圖像樣本擴充方法。圖像增強主要包括:幾何方法、物理方法的數據擴充。并且針對數據集進行了合理的數據預處理,降低了表面缺陷的噪音,最終選擇準確的分類器達到了理想的檢測效果[6]。可以看出,國內外眾多學者都將深度學習作為實現故障診斷的重要技術手段[7]。本文針對帶鋼缺陷檢測的技術特點,結合深度學習理論提出了一種基于多尺度特征圖的帶鋼缺陷檢測方法。
本文的后續章節主要結構如下:第二章介紹了應用的深度學習常見網絡層的算法原理;第三章利用東北大學公布的開源數據集驗證了本文提出研究方法的可行性,并結合實驗結果分析評價該方法的有效性;第四章對該方法進行總結歸納。對將來該方法的進一步深入拓展進行了展望。
多尺度特征圖思想來源于著名的殘差神經網絡。殘差神經網絡(ResNet)思想是由微軟研究院的何凱明等學者提出來的。隨著深度學習的不斷發展,各個學者設計的網絡結構越來越復雜,網絡層次越來越深。這不但提高了計算難度,還容易造成訓練過程出現過擬合現象。隨著我們設計越來越深入的網絡,必須掌握如何增加網絡的復雜性和提高網絡的表達能力。
殘差神經網絡的結構示意如圖1所示:

圖1 普通網絡單元和殘差網絡單元對比Fig.1 Comparison of ordinary network units and residual network units
假設輸入值為x,假設我們希望通過深度學習獲得的期望底層映射是f(x)。圖1左部分表示通過神經元計算和激活函數等可以直接得到映射函數f(x)。圖1右部分表示通過神經元計算和激活函數等可以得到的殘差映射函數是f(x)-x,這也是殘差網絡的名字由來。如果等值映射f(x)=x被設計為底層映射,我們只需要通過卷積層和全連接層等推動向上路線的權重層的權重和偏差等于零即可。圖1右部分展示將圖層輸入x傳遞給加法運算符的實線稱為快捷連接。對于殘差塊,輸入可以通過跨層的快捷連接更快地向前傳播。殘差塊可以極大避免因為網絡深度的增加造成的梯度消失和梯度爆炸問題。
本文設計的多尺度特征圖主要網絡層設計如圖2所示:攝像頭采集的檢測圖像作為輸入信號,在各個網絡層之間前向計算順序的如圖3所示:

圖2 多尺度特征圖網絡層Fig.2 Multi-scale feature map network layer

圖3 模型網絡結構Fig.3 Model network structure
本文采用東北大學于2013年開源的鋼鐵缺陷檢測數據集NEU-DET。該數據集包含了鋼鐵產線上常見的幾種表面缺陷狀態。該數據集包含目標檢測數據集和缺陷分類數據集兩個大類,本文根據研究目的選擇了缺陷分類數據集。主要包含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,自帶內存容量為8G,Win10操作系統。選擇開源編程語言Python,利用Anaconda配置基礎的開發環境,基于Pytorch深度學習框架設計網絡模型,并在Jupyter運行環境下驗證全部程序代碼。將全部1800張圖片進行切分,其中80%為訓練集,剩余20%為測試集。由于訓練數據量比較大,網絡結構包含大量的殘差連接,這都會導致運算速度變慢。本文根據實際選擇訓練批次為40,初始訓練迭代步長LR等于0.001,并且采用余弦下降法逐步降低訓練步長。每批次的訓練數量batch_size等于128。
本文提出的帶鋼缺陷檢測模型的準確率訓練走勢如圖5所示。前5次訓練,由于初期學習率比較大,容易造成訓練結果波動比較大。在進行到第10次訓練,首次模型準確率超過了90%,后面隨著訓練的進行還是會在90%~95%之間產生訓練波動。后續可以考慮采用專用的圖像訓練工具GPU和TPU進行更大規模尺度張量的計算,力求讓訓練模型可以快速完成收斂。或者繼續大幅度增加訓練批次,這樣會消耗很多計算時間和計算資源。設置在訓練的過程中,不斷以訓練準確率為基準保存最優訓練模型。

圖5 模型訓練準確率變化Fig.5 Model training accuracy changes
最后在測試集中隨機挑選一部分帶鋼缺陷圖像進行結果驗證,驗證訓練結果如圖6所示,產生的混淆矩陣圖如圖7所示。每個圖片上方為預測缺陷類型,括號內為實際缺陷類型。實際效果比較滿意,全部16張圖像都被正確預測。

圖6 驗證集測試結果Fig.6 Validation set test results

圖7 驗證集混淆矩陣圖Fig.7 Validation set confusion matrix diagram
本文提出的多尺度特征圖帶鋼缺陷檢測方法,可以在基于多尺度方法提取帶鋼缺表面特征后精確判斷故障類型,完成多類型分類任務。在后續的研究中可以考慮采用專用的深度學習計算設備如GPU等提高訓練效率,進一步提高模型在實時帶鋼檢測系統上應用的可行性。