宗德祥,蔣 渝,何永輝
(寶山鋼鐵股份有限公司1.中央研究院,上海 201999; 2.冷軋廠,上海 201900)
集成學習,顧名思義,不是單指某種特定的學習算法,而是由多種學習算法構建而成的用于解決實際問題的一種理論方法,目標是獲得較高的預測準確率。目前常見的集成學習算法主要有兩種[1]:基于Bagging的算法和基于Boosting的算法。其中基于Bagging的代表算法有隨機森林,而基于Boosting的代表算法則有Adaboost、GBDT、xgboost等。
帶鋼表面質量在線檢測系統,從20世紀50年代誕生以來,就開啟了缺陷檢測識別的征途。伴隨著機器學習算法的進步,這些算法逐步被引入到帶鋼表面質量在線檢測系統中,使得系統的性能逐步得以提升。然而在實踐中,往往發現常規的算法并不能夠滿足智慧制造時代的需求。目前常見的基于決策樹的算法,分類準確率通常穩定在75%~80%之間,顯然僅能夠滿足用戶最基本的需求。為了解決這一問題,本文提出了傳統算法與深度學習算法相結合的算法,來實現分類準確性的提升。
通過對采集到的帶鋼圖像進行跟蹤分析發現,通常情況下,帶鋼表面真實缺陷發生數同實際采集到的圖像數相比,占比在10%~30%之間,如圖1所示,隨機抽取3個月內生產的10卷冷軋鋼卷統計出的數據,即意味著存在大量的不含缺陷的圖像數據被采集。這些多余的數據將會對后續的缺陷分類產生負面影響。因此,若能有效過濾此類圖像數據,將能有效提升系統的性能。

圖1 缺陷所占總圖比例統計圖
因此,本文提出一種基于集成學習算法進行缺陷過濾并結合多尺度卷積、特征金字塔與視覺注意力機制和傳統特征的深度學習網絡算法模型,如圖2所示。該模型算法分為兩個主要階段:第一階段為虛線框中的部分,稱之為缺陷身份過濾階段,在該階段,完成海量的數據篩選工作,從而降低系統的負荷,該階段也可稱之為數據預處理階段;第二階段為基于深度學習的目標分類識別階段,為了提升目標識別準確性,將第一階段人工設計的特征也作為參數輸入到深度神經網絡之中,進一步提升系統的精度。

圖2 基于集成學習算法的帶鋼檢測分類模型
本文數據預處理的目標是為后續目標分類提供合理的數據輸入。由于全連接層的存在,一般來說,分類網絡需要有固定大小的輸入,但是由于缺陷的形態各異、大小不一,如圖3所示,無法將原始缺陷塊直接輸入到網絡中,因此需要對數據進行預處理,取出固定大小的缺陷塊輸入到網絡中。

圖3 幾種典型的缺陷樣本
經過一系列試驗對比分析,最終選擇一種缺陷塊和固定大小背景圖融合的方式,由于原始圖像較大,選擇256×256大小的表面干凈的鋼板背景圖,將裁取出的缺陷塊和背景融合,具體步驟如下:
(1)邊界提取。
本文采用混合閾值界定法,即采用灰度梯度閾值和灰度閾值聯合搜索方法,具體流程如圖4所示。

圖4 邊界提取的算法流程
在得到待檢測圖像后首先對其進行了一次Sobel 算子的X方向卷積操作,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。從模板可以看出,X方向模板對于X方向上的灰度突變敏感,因而可以很好地檢測出豎直邊緣,將卷積結果二值化后可以得出比較明顯的鋼材區域,效果如圖5所示。

圖5 邊界提取效果圖
(2)裁取缺陷塊。
根據缺陷頂點坐標和長、寬的數據直接將缺陷塊進行處理,裁取過程中需要注意一下特殊情況,如果缺陷的長度大于256,則只取中間長度為256的缺陷;如果缺陷的高度大于256,則進行一些縮放和裁剪的操作,保證不會越界。在處理小缺陷塊的時候,對缺陷外圍適當地向外擴張,以保持檢測不完整的情況下能盡量得到更完整的缺陷。得到的缺陷塊如圖6所示。

圖6 圖像塊
(3)缺陷塊與背景融合。
取一張干凈的背景圖,如圖7。將裁取到的缺陷塊以背景鋼板圖的中心為中心進行融合,采取泊松融合的方式。泊松融合是一種非常強大的圖像融合算法,可以把一個前景區域無縫地融合到目標背景圖中。它通過計算兩個圖像交接部分的梯度,然后對兩個圖像進行適當的調整,使得兩個看起來不太融洽的圖像看起來是一致的,邊界融合效果十分好。泊松融合的效果如圖8。

圖7 背景鋼板

圖8 泊松融合圖
(4)圖像縮放。
經過泊松融合后的圖像大小為256×256,而我們的網絡標準輸入為299×299,因此需要對圖像進行縮放,得到標準的網絡輸入大小。采用這種方式可以得到極其干凈的缺陷圖,比起直接貼圖的方式效果更好,除去真實缺陷以外全部都是干凈的背景,降低了背景中其他部分對分類造成的影響,同時在進行圖像增廣的時候,可以通過缺陷塊的隨機位置放置進行大量的增廣。
(5)特征提取。
缺陷圖像蘊含豐富的信息,但像素數據太大、太稀疏,直接使用圖像上每一個像素來分類要求的計算量是巨大的,同時,通常情況下,單一的像素點沒有對應的確定且可解釋的意義。因此,圖像的內容需要通過一些特征來進行描述。圖像的特征包括顏色特征、紋理特征、形狀特征、梯度特征等,顏色特征和紋理特征描述了圖像區域的表面性質,比如灰度均值、紋理均勻性。形狀特征有兩類表示方法,一類是輪廓特征,主要針對物體的外邊界;另一類是區域特征,主要是描述整個形狀區域。梯度特征是基于梯度圖生成的,能有效地描述缺陷邊緣變化的情況。形狀特征包括周長、面積、寬高比等,紋理特征包括紋理對比度、紋理均勻性、紋理熵、紋理二階矩等,灰度特征包含灰度均值、灰度方差、能量、熵、最大最小灰度值等,梯度特征包含邊緣梯度均值、W方向梯度均值、H方向提取均值、邊緣梯度方差等。
(6)xgboost目標預分類。
xgboost類似于GBDT,是一種梯度提升算法的版本。它的思想很簡單,由多個弱分類器,經過Boost框架,以負梯度為優化目標進行集成學習。它區別于GBDT的顯著特征是對代價函數進行了二階泰勒展開,同時使用了一階和二階導數,并且將樹的結構作為正則項加到了代價函數中,可以控制模型的復雜度。在本文中,使用二分類的xgboost分類器,將上節中提取到的多維傳統特征作為輸入,為了防止嚴重缺陷被誤丟棄,模型輸出結果小于0.3判定為偽缺陷,輸出結果大于0.3則為真實缺陷。
結合鋼板缺陷分類中存在的缺陷大小不一、長寬比差異大等特點,Inception模塊中的多尺度卷積可以起到很好的特征提取作用,因此,本文采用GoogleNet-Inception v3作為基礎網絡[2-3]。但是Inception v3網絡并不能完全解決鋼板表面缺陷分類中存在的復雜問題,為了進一步增強通道域的特征表達,在Inception v3中引入了基于通道的注意力模塊SENet,其結構如圖9所示。SENet的核心思想在于通過網絡根基loss去學習通道方向的特征權重,增強有效的feature map,抑制無用的feature map,以此達到更好的效果。SENet并不是一個完整的網絡結構,而是一個子結構,可以方便地嵌入到任何網絡中。雖然插入SE Block會增加一些參數和計算量,但是相對于效果的提升是完全可以接受的。

圖9 SENet模塊結構
為了提高算法的魯棒性,降低網絡的過擬合,還在網絡中融合了傳統特征。通過圖像中計算得到的缺陷形狀、灰度、紋理、梯度等傳統信息,組合成一個傳統特征的嵌入向量,對該向量進行一定的處理后與深度學習模塊學習的特征進行融合,融合后的特征再接入到最后的分類層,傳統特征的引入能進一步提升網絡的分類準確率。
本數據集共包含24類缺陷樣本,其中21類真實缺陷,3類偽缺陷,總數量8 876張樣本。數據集樣本分布如圖10所示。將收集的原始數據以每類8∶2的比例劃分成訓練集和測試,由于數據數量較少,難以滿足深層的網絡對大量數據的需求,所以對原始數據進行部分數據增廣操作,在不改變缺陷特征的情況下,使用鏡像、翻轉、裁剪、平滑去噪、模糊、壓縮和拉伸、灰度變化等方式進行增廣。通過以上多種方式的數據增廣,可以對數據進行數十倍的增廣,有效地降低模型的過擬合,增強模型的學習表達能力。

圖10 樣本集
網絡訓練的流程圖如圖11所示,主要是由正向傳播與反向傳播交替進行。數據由輸入層傳入隱藏層,經過若干層隱藏層處理后傳入輸出層,由輸出層將結果輸出的過程被稱為正向傳播。一次正向傳播結束后,需要對比正向傳播的輸出與正確結果的誤差,用這個誤差來描述這次網絡的狀態。反向傳播是將誤差傳遞給前一層的過程,基于梯度的誤差會一層一層地反向傳遞到第一層隱藏層,每一層的每個單元會根據誤差情況來更新自己的權值。

圖11 模型訓練流程
鑒于初期訓練網絡的樣本較少以及訓練效率兩方面因素,我們采用了遷移學習的思想。初始化低層卷積層參數采用在ImageNet上預訓練的去掉全連接層的CNN模型,因為低層卷積層提取的局部特征主要包括邊緣特征、亮度特征等低層語義特征,具有較強的普適性,因而利用預訓練好的模型作為模型的初始化參數,可以加快網絡的收斂速度。網絡的輸入圖像大小為299×299,網絡的訓練和評估使用GTX 1080Ti,訓練時batch size設置為64,測試時為32,訓練50個epochs,初始化學習率設為10-4,學習率隨epoch以一定的規律遞減。
對于缺陷分類的評價方法采用常用的圖像識別的評價標準。該方法需要已知輸入圖像缺陷的正確類別,將正確結果與分類器的結果進行對比。將一張缺陷圖像輸入到訓練好的網絡中,若類別判定正確,則Cor+1,統計整個測試集的所有測試圖像的測試結果(All),記為該算法的識別準確率Acc,如公式(1)所示。
(1)
對樣本集以8∶2的比例隨機劃分訓練集和測試集,對測試集進行測試,測試結果如圖 12所示。

圖12 樣本分類準確率統計
對算法模型(圖2)進行各模塊增刪試驗,驗證本文模型的有效性,如表 1所示,不同網絡結構對目標分類準確率存在較大影響。由試驗結果可以看到,在Inception v3的基礎上加上SENet和傳統特征能獲得最好的效果。

表1 不同網絡結構的分類準確率
(1)本文所述的基于集成學習算法的帶鋼表面缺陷分類算法,將Googlenet的多尺度卷積作為骨干網絡,用密集成分來近似最優的局部細數結構,引入SENet缺陷注意力模塊,接入到多尺度卷積網絡結構中,它通過壓縮—激勵—重標定的過程,在通道方向加強有用信息,弱化無用信息,從而達到提高缺陷通道特征注意力的作用。
(2)在深度學習網絡中融入傳統特征,如形狀、灰度、紋理、梯度和投影等,來加強網絡的分類能力和泛化能力。
(3)結合多尺度卷積、特征金字塔與視覺注意力機制和傳統特征的深度學習網絡,由于具有較高的魯棒性和準確性,在工程實踐中取得了較好的應用成效,滿足用戶對質量控制的需求。