宗德祥,蔣 渝,何永輝
(寶山鋼鐵股份有限公司1.中央研究院,上海 201999; 2.冷軋廠,上海 201900)
集成學(xué)習(xí),顧名思義,不是單指某種特定的學(xué)習(xí)算法,而是由多種學(xué)習(xí)算法構(gòu)建而成的用于解決實(shí)際問題的一種理論方法,目標(biāo)是獲得較高的預(yù)測準(zhǔn)確率。目前常見的集成學(xué)習(xí)算法主要有兩種[1]:基于Bagging的算法和基于Boosting的算法。其中基于Bagging的代表算法有隨機(jī)森林,而基于Boosting的代表算法則有Adaboost、GBDT、xgboost等。
帶鋼表面質(zhì)量在線檢測系統(tǒng),從20世紀(jì)50年代誕生以來,就開啟了缺陷檢測識(shí)別的征途。伴隨著機(jī)器學(xué)習(xí)算法的進(jìn)步,這些算法逐步被引入到帶鋼表面質(zhì)量在線檢測系統(tǒng)中,使得系統(tǒng)的性能逐步得以提升。然而在實(shí)踐中,往往發(fā)現(xiàn)常規(guī)的算法并不能夠滿足智慧制造時(shí)代的需求。目前常見的基于決策樹的算法,分類準(zhǔn)確率通常穩(wěn)定在75%~80%之間,顯然僅能夠滿足用戶最基本的需求。為了解決這一問題,本文提出了傳統(tǒng)算法與深度學(xué)習(xí)算法相結(jié)合的算法,來實(shí)現(xiàn)分類準(zhǔn)確性的提升。
通過對(duì)采集到的帶鋼圖像進(jìn)行跟蹤分析發(fā)現(xiàn),通常情況下,帶鋼表面真實(shí)缺陷發(fā)生數(shù)同實(shí)際采集到的圖像數(shù)相比,占比在10%~30%之間,如圖1所示,隨機(jī)抽取3個(gè)月內(nèi)生產(chǎn)的10卷冷軋鋼卷統(tǒng)計(jì)出的數(shù)據(jù),即意味著存在大量的不含缺陷的圖像數(shù)據(jù)被采集。這些多余的數(shù)據(jù)將會(huì)對(duì)后續(xù)的缺陷分類產(chǎn)生負(fù)面影響。因此,若能有效過濾此類圖像數(shù)據(jù),將能有效提升系統(tǒng)的性能。
圖1 缺陷所占總圖比例統(tǒng)計(jì)圖
因此,本文提出一種基于集成學(xué)習(xí)算法進(jìn)行缺陷過濾并結(jié)合多尺度卷積、特征金字塔與視覺注意力機(jī)制和傳統(tǒng)特征的深度學(xué)習(xí)網(wǎng)絡(luò)算法模型,如圖2所示。該模型算法分為兩個(gè)主要階段:第一階段為虛線框中的部分,稱之為缺陷身份過濾階段,在該階段,完成海量的數(shù)據(jù)篩選工作,從而降低系統(tǒng)的負(fù)荷,該階段也可稱之為數(shù)據(jù)預(yù)處理階段;第二階段為基于深度學(xué)習(xí)的目標(biāo)分類識(shí)別階段,為了提升目標(biāo)識(shí)別準(zhǔn)確性,將第一階段人工設(shè)計(jì)的特征也作為參數(shù)輸入到深度神經(jīng)網(wǎng)絡(luò)之中,進(jìn)一步提升系統(tǒng)的精度。
圖2 基于集成學(xué)習(xí)算法的帶鋼檢測分類模型
本文數(shù)據(jù)預(yù)處理的目標(biāo)是為后續(xù)目標(biāo)分類提供合理的數(shù)據(jù)輸入。由于全連接層的存在,一般來說,分類網(wǎng)絡(luò)需要有固定大小的輸入,但是由于缺陷的形態(tài)各異、大小不一,如圖3所示,無法將原始缺陷塊直接輸入到網(wǎng)絡(luò)中,因此需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,取出固定大小的缺陷塊輸入到網(wǎng)絡(luò)中。
圖3 幾種典型的缺陷樣本
經(jīng)過一系列試驗(yàn)對(duì)比分析,最終選擇一種缺陷塊和固定大小背景圖融合的方式,由于原始圖像較大,選擇256×256大小的表面干凈的鋼板背景圖,將裁取出的缺陷塊和背景融合,具體步驟如下:
(1)邊界提取。
本文采用混合閾值界定法,即采用灰度梯度閾值和灰度閾值聯(lián)合搜索方法,具體流程如圖4所示。
圖4 邊界提取的算法流程
在得到待檢測圖像后首先對(duì)其進(jìn)行了一次Sobel 算子的X方向卷積操作,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。從模板可以看出,X方向模板對(duì)于X方向上的灰度突變敏感,因而可以很好地檢測出豎直邊緣,將卷積結(jié)果二值化后可以得出比較明顯的鋼材區(qū)域,效果如圖5所示。
圖5 邊界提取效果圖
(2)裁取缺陷塊。
根據(jù)缺陷頂點(diǎn)坐標(biāo)和長、寬的數(shù)據(jù)直接將缺陷塊進(jìn)行處理,裁取過程中需要注意一下特殊情況,如果缺陷的長度大于256,則只取中間長度為256的缺陷;如果缺陷的高度大于256,則進(jìn)行一些縮放和裁剪的操作,保證不會(huì)越界。在處理小缺陷塊的時(shí)候,對(duì)缺陷外圍適當(dāng)?shù)叵蛲鈹U(kuò)張,以保持檢測不完整的情況下能盡量得到更完整的缺陷。得到的缺陷塊如圖6所示。
圖6 圖像塊
(3)缺陷塊與背景融合。
取一張干凈的背景圖,如圖7。將裁取到的缺陷塊以背景鋼板圖的中心為中心進(jìn)行融合,采取泊松融合的方式。泊松融合是一種非常強(qiáng)大的圖像融合算法,可以把一個(gè)前景區(qū)域無縫地融合到目標(biāo)背景圖中。它通過計(jì)算兩個(gè)圖像交接部分的梯度,然后對(duì)兩個(gè)圖像進(jìn)行適當(dāng)?shù)恼{(diào)整,使得兩個(gè)看起來不太融洽的圖像看起來是一致的,邊界融合效果十分好。泊松融合的效果如圖8。
圖7 背景鋼板
圖8 泊松融合圖
(4)圖像縮放。
經(jīng)過泊松融合后的圖像大小為256×256,而我們的網(wǎng)絡(luò)標(biāo)準(zhǔn)輸入為299×299,因此需要對(duì)圖像進(jìn)行縮放,得到標(biāo)準(zhǔn)的網(wǎng)絡(luò)輸入大小。采用這種方式可以得到極其干凈的缺陷圖,比起直接貼圖的方式效果更好,除去真實(shí)缺陷以外全部都是干凈的背景,降低了背景中其他部分對(duì)分類造成的影響,同時(shí)在進(jìn)行圖像增廣的時(shí)候,可以通過缺陷塊的隨機(jī)位置放置進(jìn)行大量的增廣。
(5)特征提取。
缺陷圖像蘊(yùn)含豐富的信息,但像素?cái)?shù)據(jù)太大、太稀疏,直接使用圖像上每一個(gè)像素來分類要求的計(jì)算量是巨大的,同時(shí),通常情況下,單一的像素點(diǎn)沒有對(duì)應(yīng)的確定且可解釋的意義。因此,圖像的內(nèi)容需要通過一些特征來進(jìn)行描述。圖像的特征包括顏色特征、紋理特征、形狀特征、梯度特征等,顏色特征和紋理特征描述了圖像區(qū)域的表面性質(zhì),比如灰度均值、紋理均勻性。形狀特征有兩類表示方法,一類是輪廓特征,主要針對(duì)物體的外邊界;另一類是區(qū)域特征,主要是描述整個(gè)形狀區(qū)域。梯度特征是基于梯度圖生成的,能有效地描述缺陷邊緣變化的情況。形狀特征包括周長、面積、寬高比等,紋理特征包括紋理對(duì)比度、紋理均勻性、紋理熵、紋理二階矩等,灰度特征包含灰度均值、灰度方差、能量、熵、最大最小灰度值等,梯度特征包含邊緣梯度均值、W方向梯度均值、H方向提取均值、邊緣梯度方差等。
(6)xgboost目標(biāo)預(yù)分類。
xgboost類似于GBDT,是一種梯度提升算法的版本。它的思想很簡單,由多個(gè)弱分類器,經(jīng)過Boost框架,以負(fù)梯度為優(yōu)化目標(biāo)進(jìn)行集成學(xué)習(xí)。它區(qū)別于GBDT的顯著特征是對(duì)代價(jià)函數(shù)進(jìn)行了二階泰勒展開,同時(shí)使用了一階和二階導(dǎo)數(shù),并且將樹的結(jié)構(gòu)作為正則項(xiàng)加到了代價(jià)函數(shù)中,可以控制模型的復(fù)雜度。在本文中,使用二分類的xgboost分類器,將上節(jié)中提取到的多維傳統(tǒng)特征作為輸入,為了防止嚴(yán)重缺陷被誤丟棄,模型輸出結(jié)果小于0.3判定為偽缺陷,輸出結(jié)果大于0.3則為真實(shí)缺陷。
結(jié)合鋼板缺陷分類中存在的缺陷大小不一、長寬比差異大等特點(diǎn),Inception模塊中的多尺度卷積可以起到很好的特征提取作用,因此,本文采用GoogleNet-Inception v3作為基礎(chǔ)網(wǎng)絡(luò)[2-3]。但是Inception v3網(wǎng)絡(luò)并不能完全解決鋼板表面缺陷分類中存在的復(fù)雜問題,為了進(jìn)一步增強(qiáng)通道域的特征表達(dá),在Inception v3中引入了基于通道的注意力模塊SENet,其結(jié)構(gòu)如圖9所示。SENet的核心思想在于通過網(wǎng)絡(luò)根基loss去學(xué)習(xí)通道方向的特征權(quán)重,增強(qiáng)有效的feature map,抑制無用的feature map,以此達(dá)到更好的效果。SENet并不是一個(gè)完整的網(wǎng)絡(luò)結(jié)構(gòu),而是一個(gè)子結(jié)構(gòu),可以方便地嵌入到任何網(wǎng)絡(luò)中。雖然插入SE Block會(huì)增加一些參數(shù)和計(jì)算量,但是相對(duì)于效果的提升是完全可以接受的。
圖9 SENet模塊結(jié)構(gòu)
為了提高算法的魯棒性,降低網(wǎng)絡(luò)的過擬合,還在網(wǎng)絡(luò)中融合了傳統(tǒng)特征。通過圖像中計(jì)算得到的缺陷形狀、灰度、紋理、梯度等傳統(tǒng)信息,組合成一個(gè)傳統(tǒng)特征的嵌入向量,對(duì)該向量進(jìn)行一定的處理后與深度學(xué)習(xí)模塊學(xué)習(xí)的特征進(jìn)行融合,融合后的特征再接入到最后的分類層,傳統(tǒng)特征的引入能進(jìn)一步提升網(wǎng)絡(luò)的分類準(zhǔn)確率。
本數(shù)據(jù)集共包含24類缺陷樣本,其中21類真實(shí)缺陷,3類偽缺陷,總數(shù)量8 876張樣本。數(shù)據(jù)集樣本分布如圖10所示。將收集的原始數(shù)據(jù)以每類8∶2的比例劃分成訓(xùn)練集和測試,由于數(shù)據(jù)數(shù)量較少,難以滿足深層的網(wǎng)絡(luò)對(duì)大量數(shù)據(jù)的需求,所以對(duì)原始數(shù)據(jù)進(jìn)行部分?jǐn)?shù)據(jù)增廣操作,在不改變?nèi)毕萏卣鞯那闆r下,使用鏡像、翻轉(zhuǎn)、裁剪、平滑去噪、模糊、壓縮和拉伸、灰度變化等方式進(jìn)行增廣。通過以上多種方式的數(shù)據(jù)增廣,可以對(duì)數(shù)據(jù)進(jìn)行數(shù)十倍的增廣,有效地降低模型的過擬合,增強(qiáng)模型的學(xué)習(xí)表達(dá)能力。
圖10 樣本集
網(wǎng)絡(luò)訓(xùn)練的流程圖如圖11所示,主要是由正向傳播與反向傳播交替進(jìn)行。數(shù)據(jù)由輸入層傳入隱藏層,經(jīng)過若干層隱藏層處理后傳入輸出層,由輸出層將結(jié)果輸出的過程被稱為正向傳播。一次正向傳播結(jié)束后,需要對(duì)比正向傳播的輸出與正確結(jié)果的誤差,用這個(gè)誤差來描述這次網(wǎng)絡(luò)的狀態(tài)。反向傳播是將誤差傳遞給前一層的過程,基于梯度的誤差會(huì)一層一層地反向傳遞到第一層隱藏層,每一層的每個(gè)單元會(huì)根據(jù)誤差情況來更新自己的權(quán)值。
圖11 模型訓(xùn)練流程
鑒于初期訓(xùn)練網(wǎng)絡(luò)的樣本較少以及訓(xùn)練效率兩方面因素,我們采用了遷移學(xué)習(xí)的思想。初始化低層卷積層參數(shù)采用在ImageNet上預(yù)訓(xùn)練的去掉全連接層的CNN模型,因?yàn)榈蛯泳矸e層提取的局部特征主要包括邊緣特征、亮度特征等低層語義特征,具有較強(qiáng)的普適性,因而利用預(yù)訓(xùn)練好的模型作為模型的初始化參數(shù),可以加快網(wǎng)絡(luò)的收斂速度。網(wǎng)絡(luò)的輸入圖像大小為299×299,網(wǎng)絡(luò)的訓(xùn)練和評(píng)估使用GTX 1080Ti,訓(xùn)練時(shí)batch size設(shè)置為64,測試時(shí)為32,訓(xùn)練50個(gè)epochs,初始化學(xué)習(xí)率設(shè)為10-4,學(xué)習(xí)率隨epoch以一定的規(guī)律遞減。
對(duì)于缺陷分類的評(píng)價(jià)方法采用常用的圖像識(shí)別的評(píng)價(jià)標(biāo)準(zhǔn)。該方法需要已知輸入圖像缺陷的正確類別,將正確結(jié)果與分類器的結(jié)果進(jìn)行對(duì)比。將一張缺陷圖像輸入到訓(xùn)練好的網(wǎng)絡(luò)中,若類別判定正確,則Cor+1,統(tǒng)計(jì)整個(gè)測試集的所有測試圖像的測試結(jié)果(All),記為該算法的識(shí)別準(zhǔn)確率Acc,如公式(1)所示。
(1)
對(duì)樣本集以8∶2的比例隨機(jī)劃分訓(xùn)練集和測試集,對(duì)測試集進(jìn)行測試,測試結(jié)果如圖 12所示。
圖12 樣本分類準(zhǔn)確率統(tǒng)計(jì)
對(duì)算法模型(圖2)進(jìn)行各模塊增刪試驗(yàn),驗(yàn)證本文模型的有效性,如表 1所示,不同網(wǎng)絡(luò)結(jié)構(gòu)對(duì)目標(biāo)分類準(zhǔn)確率存在較大影響。由試驗(yàn)結(jié)果可以看到,在Inception v3的基礎(chǔ)上加上SENet和傳統(tǒng)特征能獲得最好的效果。
表1 不同網(wǎng)絡(luò)結(jié)構(gòu)的分類準(zhǔn)確率
(1)本文所述的基于集成學(xué)習(xí)算法的帶鋼表面缺陷分類算法,將Googlenet的多尺度卷積作為骨干網(wǎng)絡(luò),用密集成分來近似最優(yōu)的局部細(xì)數(shù)結(jié)構(gòu),引入SENet缺陷注意力模塊,接入到多尺度卷積網(wǎng)絡(luò)結(jié)構(gòu)中,它通過壓縮—激勵(lì)—重標(biāo)定的過程,在通道方向加強(qiáng)有用信息,弱化無用信息,從而達(dá)到提高缺陷通道特征注意力的作用。
(2)在深度學(xué)習(xí)網(wǎng)絡(luò)中融入傳統(tǒng)特征,如形狀、灰度、紋理、梯度和投影等,來加強(qiáng)網(wǎng)絡(luò)的分類能力和泛化能力。
(3)結(jié)合多尺度卷積、特征金字塔與視覺注意力機(jī)制和傳統(tǒng)特征的深度學(xué)習(xí)網(wǎng)絡(luò),由于具有較高的魯棒性和準(zhǔn)確性,在工程實(shí)踐中取得了較好的應(yīng)用成效,滿足用戶對(duì)質(zhì)量控制的需求。