李 原 李燕君 劉進(jìn)超 范 衠 王慶林
①(北京理工大學(xué)自動化學(xué)院 北京 100081)
②(南開大學(xué)人工智能學(xué)院 天津 300071)
③(汕頭大學(xué)工學(xué)院 汕頭 515063)
在工業(yè)生產(chǎn)中,鋼鐵等金屬材料表面會存在一些缺陷,如刮痕、凸起、裂縫、形變等,可能會導(dǎo)致機(jī)器工作時(shí)產(chǎn)生不正常的震動和聲響[1],甚至導(dǎo)致生產(chǎn)事故。目前鋼鐵表面缺陷識別的方法主要有3種:人工檢測法,傳統(tǒng)圖像處理法[2–6],機(jī)器學(xué)習(xí)法[7–14]。
在20世紀(jì)50~60年代,鋼鐵生產(chǎn)企業(yè)基本上使用人工檢測的方法評定鋼鐵質(zhì)量,目前國內(nèi)的很多中小型企業(yè)也使用該方法。人工檢測方法效率低、成本大且準(zhǔn)確率低,工人的工作狀態(tài)會嚴(yán)重影響缺陷識別的效果[15]。于是使用機(jī)器代替人進(jìn)行缺陷檢測的方法應(yīng)運(yùn)而生。
傳統(tǒng)的圖像處理法利用局部異常反映的原始屬性來檢測和分割缺陷,可進(jìn)一步分為結(jié)構(gòu)法、閾值法、頻譜法和基于模型的方法。Borselli等人[2]對圖像使用Sobel濾波,并用模糊推論系統(tǒng)(Fuzzy Inference System, FIS)描述圖片特征,返回一個(gè)與被搜索的缺陷出現(xiàn)在產(chǎn)品中的概率成比例的索引作為輸出,定位缺陷位置和類別。Xu等人[3]提出一種新的自適應(yīng)多尺度幾何分析方法—矩形非對稱非壓縮的模式識別模型(Rectangle Non-symmetry Anti-packing pattern representation Model, RNAMlet),將圖像不對稱地分解成一組矩形塊,然后對所有塊進(jìn)行哈爾小波變換。
淺層機(jī)器學(xué)習(xí)法通過傳統(tǒng)圖像處理提取缺陷的特征向量,將其送入分類器進(jìn)行訓(xùn)練,獲得缺陷識別模型[16]。Kwon等人[7]利用變差輪廓線(Variance Of Variance, VOV)特征有效地將缺陷與背景區(qū)分開來,并訓(xùn)練隨機(jī)森林模型實(shí)現(xiàn)缺陷檢測。Chu等人[8]利用K近鄰(K-Nearest Neighbors, KNNs)方法挖掘并提取邊界樣本信息、代表性樣本信息和特征權(quán)重信息,根據(jù)這3種信息構(gòu)建多信息雙支持向量機(jī)(Twin Support Vector Machines with Multi-information,MTSVMs)缺陷分類器。
目前出現(xiàn)了許多深度學(xué)習(xí)結(jié)合傳統(tǒng)圖像法的融合算法[9–11],圖像處理法能保證缺陷定位更精準(zhǔn),較大程度地保留缺陷細(xì)節(jié)。Yang等人[9]提出了一種基于反向傳播(Back Propagation, BP)神經(jīng)網(wǎng)絡(luò)和形態(tài)學(xué)噪聲濾波的混合缺陷分割方法。Ren等人[10]提出基于圖像塊特征構(gòu)建分類器的方法,從預(yù)訓(xùn)練好的深度Decaf網(wǎng)絡(luò)中獲取特征,然后將訓(xùn)練好的分類器卷積到輸入圖像上實(shí)現(xiàn)像素級的預(yù)測。
傳統(tǒng)的圖像處理法需要特定的背景條件或光照條件,要求缺陷有明顯的對比度或輪廓,且實(shí)時(shí)監(jiān)測性差,泛化能力弱,但是可實(shí)施性強(qiáng)。淺層機(jī)器學(xué)習(xí)法對外部自然條件的要求不高,具有更好的適應(yīng)性和魯棒性,但是提取的特征對于復(fù)雜情況沒有足夠的辨別能力和代表性。深度學(xué)習(xí)法提取的缺陷特征代表性強(qiáng),模型具有較高的識別準(zhǔn)確率和泛化能力,所以本文使用Res-UNet網(wǎng)絡(luò)分割鋼鐵表面缺陷,并設(shè)計(jì)了4種改進(jìn)策略增強(qiáng)缺陷識別的效果。
鋼鐵表面缺陷圖片的語義較為簡單,背景的復(fù)雜度低,缺陷的邊緣細(xì)節(jié)信息很難捕捉,所以圖像的高級語義和低級特征都很重要。不同類型的缺陷有時(shí)差異較小,數(shù)據(jù)具有多模態(tài)的特點(diǎn),這對模型來說是新的挑戰(zhàn)。僅僅識別鋼鐵表面有無缺陷不能夠滿足生產(chǎn)需求,為了高效確定缺陷位置、識別缺陷種類和計(jì)算缺陷面積,加快工廠糾錯(cuò)效率,圖像分割比圖像分類更有效。
綜合鋼鐵表面缺陷的圖像特點(diǎn)和實(shí)際生產(chǎn)的需求,本文選擇Res-UNet算法完成鋼鐵表面缺陷識別和定位的任務(wù)。Res-UNet 是將 UNet 網(wǎng)絡(luò)與ResNet 殘差網(wǎng)絡(luò)結(jié)合的新型神經(jīng)網(wǎng)絡(luò)[17]。Res-Net提出了跨層連接的殘差塊,在深度提取特征的同時(shí)避免了梯度消失和網(wǎng)絡(luò)退化[18]。UNet網(wǎng)絡(luò)在醫(yī)學(xué)圖像分割領(lǐng)域表現(xiàn)卓越,適用于訓(xùn)練邊緣不規(guī)范的小目標(biāo)數(shù)據(jù)集,它由編碼網(wǎng)絡(luò)和譯碼網(wǎng)絡(luò)組成,形成了U型結(jié)構(gòu),跳躍連接保證網(wǎng)絡(luò)融合淺層特征和深層特征[19]。Res-UNet綜合了二者的優(yōu)點(diǎn),能夠充分提取和利用鋼鐵缺陷圖像的特征,避免梯度消失,縮短訓(xùn)練時(shí)間。
本文使用的Res-UNet采用ResNet作為編碼網(wǎng)絡(luò),在此基礎(chǔ)上增加了6個(gè)跨層連接,通過最大池化操作統(tǒng)一維度,形成了稠密的網(wǎng)絡(luò)結(jié)構(gòu),本結(jié)構(gòu)能夠重用淺層特征,增強(qiáng)特征的深度延展。UNet的譯碼網(wǎng)絡(luò)保持不變,實(shí)現(xiàn)特征圖像分辨率的恢復(fù)和與淺層特征的結(jié)合,改進(jìn)的Res-UNet結(jié)構(gòu)如圖1所示。編碼網(wǎng)絡(luò)包括4個(gè)殘差模塊,如圖2(a)所示,每個(gè)模塊包含兩個(gè)卷積層、激活函數(shù)層(Rectified Linear Unit, ReLU)和兩個(gè)批量歸一化層(Batch Normalization, BN),卷積層卷積核的大小為3×3,跳躍連接可以防止反向傳播時(shí)梯度消失。
圖1 Res-UNet網(wǎng)絡(luò)結(jié)構(gòu)
譯碼網(wǎng)絡(luò)包括5個(gè)譯碼模塊,如圖2(b)所示,每個(gè)模塊包括上采樣、兩個(gè)卷積層Conv2d、兩個(gè)激活函數(shù)層ReLU,上采樣方法為最近鄰插值法,用于加倍特征圖尺寸,卷積核為3×3大小,步長為1,用于融合特征。在編碼網(wǎng)絡(luò)和譯碼網(wǎng)絡(luò)之間有4個(gè)跳躍連接,用于拼接同維度的特征,實(shí)現(xiàn)了淺層特征的復(fù)用。
圖2 殘差模塊和譯碼模塊結(jié)構(gòu)
整個(gè)網(wǎng)絡(luò)共進(jìn)行5次下采樣和5次上采樣。每次下采樣都將特征圖的大小減半,通道數(shù)加倍,特征圖從扁平狀變得小而密,更加立體;每次上采樣都將特征圖的大小加倍,通道數(shù)減半,特征圖最終恢復(fù)到輸入時(shí)的大小。在Res-UNet中,卷積核多使用3×3的大小,采樣的步長為1或2,具體每層的參數(shù)情況和特征圖大小如表1所示。
表1 網(wǎng)絡(luò)各層參數(shù)及特征圖大小
本文使用Res18-UNet作為基本的訓(xùn)練網(wǎng)絡(luò),在此基礎(chǔ)上提出特征提取模塊稠密連接、加深編碼模塊網(wǎng)絡(luò)深度、訓(xùn)練集增強(qiáng)、改進(jìn)損失函數(shù)的改進(jìn)策略,提高網(wǎng)絡(luò)的缺陷分割能力。
為了避免網(wǎng)絡(luò)過擬合,使Res-UNet網(wǎng)絡(luò)學(xué)習(xí)更多樣本的特征,本文對訓(xùn)練數(shù)據(jù)集實(shí)現(xiàn)圖像增強(qiáng)。使用水平翻轉(zhuǎn)和豎直翻轉(zhuǎn)增強(qiáng)圖片的多樣性;調(diào)整圖像的亮度和對比度,減少光照不均的影響,突出缺陷的邊緣特征;使用直方圖均衡化增強(qiáng)圖像的全局對比度[20]。最后給訓(xùn)練集圖像增加模糊和噪聲干擾,進(jìn)一步提升模型的泛化能力。
為了提取更豐富的缺陷特征,使用層數(shù)更多的ResNet50作為編碼模塊,同樣增加稠密連接的結(jié)構(gòu),可以得到更深層、包含更多語義信息的缺陷特征。在相同的實(shí)驗(yàn)效果下,使用稠密連接可以節(jié)省參數(shù),降低模型存儲開銷;減少計(jì)算量,提升計(jì)算效率;對于使用稠密連接的每一個(gè)殘差模塊,都重用了它之前幾個(gè)殘差模塊的輸出,經(jīng)過對輸出的非線性變換和引入,增加了特征的復(fù)雜度,通過綜合利用淺層復(fù)雜度低的特征,可以訓(xùn)練得到一個(gè)不易過擬合、泛化性能更優(yōu)的模型。
由于圖像分割需要考慮缺陷的邊緣細(xì)節(jié),Res-Net50更深層網(wǎng)絡(luò)提取的特征包含更多豐富的語義信息,便于譯碼網(wǎng)絡(luò)確定分割的邊界,使分割結(jié)果更加精準(zhǔn)。ResNet50殘差模塊為瓶頸結(jié)構(gòu),輸入和輸出部分兩次使用1×1的卷積核實(shí)現(xiàn)數(shù)據(jù)的升降維,有效減少參數(shù)數(shù)量,提升網(wǎng)絡(luò)的訓(xùn)練速度。
分割問題可以歸結(jié)為判斷像素是否為背景的問題,所以圖像分割神經(jīng)網(wǎng)絡(luò)最常使用的是逐像素2元交叉熵?fù)p失函數(shù)(Binary Cross Entropy Loss,BCEloss),如式(1)所示。2元交叉熵?fù)p失函數(shù)采用類間競爭機(jī)制,導(dǎo)致網(wǎng)絡(luò)重點(diǎn)學(xué)習(xí)占比高的樣本,無法解決數(shù)據(jù)類內(nèi)不平衡的問題。
對于分割問題,背景負(fù)樣本的數(shù)量遠(yuǎn)大于缺陷正樣本的數(shù)量,僅用BCEloss會導(dǎo)致網(wǎng)絡(luò)陷入局部極小值。Dice損失函數(shù)常用于計(jì)算樣本間相似度,它重點(diǎn)關(guān)注前景圖像是否分類正確,不關(guān)注背景像素,可有效緩解前景、背景樣本失衡的問題,計(jì)算公式如式(3)所示
為了進(jìn)一步加強(qiáng)網(wǎng)絡(luò)對缺陷像素樣本的學(xué)習(xí),本文設(shè)計(jì)加權(quán)交叉熵?fù)p失函數(shù)和加權(quán)Dice損失函數(shù)[21],如式(4)和式(5),增強(qiáng)正樣本的損失值比重,總損失函數(shù)為二者的加權(quán)和[22],記為BDloss,如式(6)
為了對本文所提改進(jìn)算法做出客觀公正的評價(jià),所有實(shí)驗(yàn)均在相同的實(shí)驗(yàn)環(huán)境下進(jìn)行。本實(shí)驗(yàn)在L i n u x 操作系統(tǒng)下完成。G P U 為N V I D I A Quadro_P5000,顯存為16 GB;操作系統(tǒng)為64 GB的Ubuntu16.04.7;程序?qū)崿F(xiàn)軟件為Python3.5;Cuda版本為10.0.130。同時(shí)安裝深度學(xué)習(xí)框架Pytorch 1.6.0和Opencv4.4等第三方庫。
本文使用的數(shù)據(jù)集來自Kaggle鋼鐵缺陷檢測比賽,數(shù)據(jù)由謝韋爾鋼鐵公司(Severstal)提供。鋼鐵缺陷共分為4類:劃痕、埋渣、皮鱗、氧化,如圖3所示。使用其中9175張圖片作為訓(xùn)練數(shù)據(jù)集,另外297張圖片作為測試數(shù)據(jù)集,原始圖像像素大小為1600×256。訓(xùn)練數(shù)據(jù)集的缺陷分類情況如表2所示,皮麟的占比高達(dá)71.85%,數(shù)據(jù)集各個(gè)類別之間存在失衡。
表2 訓(xùn)練數(shù)據(jù)集缺陷分布情況(張)
圖3 4類缺陷分割示例圖
3.3.1 改進(jìn)的Res-UNet算法實(shí)驗(yàn)
本文訓(xùn)練了UNet,Res-UNet和改進(jìn)的Res-UNet等10個(gè)網(wǎng)絡(luò)模型,并進(jìn)行了4個(gè)對比試驗(yàn)。訓(xùn)練集和驗(yàn)證集的比例為8:2,初始學(xué)習(xí)率為5e-4,選擇Adam優(yōu)化算法,批大小為16。每個(gè)網(wǎng)絡(luò)的訓(xùn)練周期不同,是為了保證網(wǎng)絡(luò)收斂的情況下其分類、分割能力最優(yōu)。
使用Dice系數(shù)評價(jià)模型分割能力,一般認(rèn)為其值大于0.7則表示預(yù)測區(qū)域和真實(shí)區(qū)域的重復(fù)度高,分割效果良好。Dice系數(shù)在評價(jià)圖像相似性時(shí),位置的差異比圖像大小的差異對其值的影響更大。同時(shí)使用缺陷識別準(zhǔn)確率 acc作為評價(jià)模型區(qū)分有無缺陷能力的指標(biāo),計(jì)算公式如式(7)。其中, n umsame表示真實(shí)有缺陷且預(yù)測有缺陷和真實(shí)無缺陷且預(yù)測無缺陷的圖片數(shù)量和,n umdif表示真實(shí)有缺陷但預(yù)測無缺陷和真實(shí)無缺陷但預(yù)測有缺陷的圖片數(shù)量和
3.3.2 結(jié)果對比分析
為了證明改進(jìn)算法的先進(jìn)性,使用AlexNet,DenseNet, Xception, Mask RCNN網(wǎng)絡(luò)進(jìn)行對比試驗(yàn)。相比于用ResNet作為編碼網(wǎng)絡(luò)的Res-UNet,UNet網(wǎng)絡(luò)收斂速度慢,漏檢、錯(cuò)檢情況嚴(yán)重,經(jīng)常把劃痕預(yù)測成皮麟。AlexNet和DenseNet兩個(gè)分類網(wǎng)絡(luò)的分類準(zhǔn)確率遠(yuǎn)不如改進(jìn)后的Res-UNet。經(jīng)過可視化分析發(fā)現(xiàn)Xception網(wǎng)絡(luò)對圖片是否包含缺陷的判斷不準(zhǔn)確,對缺陷位置的預(yù)測不準(zhǔn)確;Mask RCNN網(wǎng)絡(luò)存在分割不完整、不連續(xù)的情況。4組對比試驗(yàn)證明了本文改進(jìn)算法對鋼鐵缺陷數(shù)據(jù)集分類、分割的有效性。
增加Res-UNet的特征提取網(wǎng)絡(luò)層數(shù),網(wǎng)絡(luò)分割能力略微提升,對于缺陷邊緣的檢測更準(zhǔn)確,但是收斂速度變慢,網(wǎng)絡(luò)訓(xùn)練時(shí)間增加,仍無法分割出埋渣。增強(qiáng)訓(xùn)練數(shù)據(jù)集和修改損失函數(shù)可有效提升模型性能,相比于原Res18-UNet網(wǎng)絡(luò),Dice系數(shù)分別提高0.93%和2.46%,類間不平衡情況有所緩解,缺陷識別準(zhǔn)確率分別提高0.67%和7.07%,錯(cuò)檢和漏檢率下降,能夠分割出訓(xùn)練樣本極少的埋渣,網(wǎng)絡(luò)泛化能力有所提升。給特征提取模塊加入稠密結(jié)構(gòu),Dice系數(shù)提高了0.74%,雖然存在對埋渣的漏檢情況,但檢測結(jié)果的邊緣更貼近實(shí)際缺陷輪廓。
進(jìn)一步采用組合優(yōu)化策略提升網(wǎng)絡(luò)性能,在Res18-UNet網(wǎng)絡(luò)基礎(chǔ)上增強(qiáng)訓(xùn)練數(shù)據(jù)集和使用BDloss損失函數(shù)與稠密連接,29個(gè)epoch后網(wǎng)絡(luò)基本收斂,收斂速度快,訓(xùn)練時(shí)間最短。相較于Res18-UNet,Dice系數(shù)提升了3.79%,識別準(zhǔn)確率提高了8.42%,能有效對樣本數(shù)量少的埋渣進(jìn)行分割,證明本文所提改進(jìn)算法效果良好。
在Res50-UNet網(wǎng)絡(luò)基礎(chǔ)上增強(qiáng)訓(xùn)練數(shù)據(jù)集和使用BDloss損失函數(shù),55個(gè)epoch后網(wǎng)絡(luò)基本收斂,Dice系數(shù)和準(zhǔn)確率相比于基礎(chǔ)Res50-UNet網(wǎng)絡(luò)分別提升了3.46%和9.10%。但是網(wǎng)絡(luò)訓(xùn)練時(shí)間是相同改進(jìn)下Res18-UNet網(wǎng)絡(luò)的兩倍多,消耗更多GPU資源,而且分類和分割效果相比于相同改進(jìn)下Res18-UNet網(wǎng)絡(luò)也沒有非常大的提升,增加網(wǎng)絡(luò)層數(shù)策略雖有效,但性價(jià)比較低。
由于皮麟的樣本最多,Res-UNet網(wǎng)絡(luò)對皮麟的分割效果最好,劃痕和氧化與背景的差異較大,特征明顯,網(wǎng)絡(luò)對其分割效果較好。埋渣較為細(xì)小,紋理、顏色等特征和背景差別小,在某些訓(xùn)練集圖像中甚至肉眼難辨,且樣本數(shù)量少,導(dǎo)致網(wǎng)絡(luò)分割效果差甚至經(jīng)常漏檢。
3.3.3 預(yù)測結(jié)果可視化
將各個(gè)網(wǎng)絡(luò)的分割結(jié)果與原標(biāo)注結(jié)果進(jìn)行可視化對比,樣例中只展示皮麟、氧化和一圖兩缺陷的情況,截取缺陷部分展示如圖4,圖示依次為真實(shí)標(biāo)簽、表3中各網(wǎng)絡(luò)(M1~M10, M14)的分割結(jié)果。UNet網(wǎng)絡(luò)的分割結(jié)果不連續(xù),點(diǎn)和碎片式的情況比較嚴(yán)重。Res18-UNet和Res50-UNet的分割結(jié)果較為理想,但是易被噪聲干擾影響,如皮麟樣例中M2圖和氧化樣例中M3圖,導(dǎo)致分割結(jié)果完整度下降。訓(xùn)練集數(shù)據(jù)增強(qiáng)策略可增強(qiáng)網(wǎng)絡(luò)魯棒性,使網(wǎng)絡(luò)關(guān)注到細(xì)小缺陷。特征提取模塊加入稠密連接后,對細(xì)小缺陷的識別度有所提升,對缺陷邊緣的描述更加準(zhǔn)確,缺陷部分的識別更完整,如一圖兩缺陷樣例中M10圖。BDloss結(jié)合訓(xùn)練集增強(qiáng)策略和稠密連接策略時(shí),模型的分割結(jié)果最接近原標(biāo)注圖,如所有樣例中的M10圖,分割完整度和精準(zhǔn)度高,小缺陷檢測能力強(qiáng)。在分割網(wǎng)絡(luò)的對比實(shí)驗(yàn)中,Xception未檢測到樣例中的缺陷,Mask RCNN存在部分缺陷漏檢、分割不完整、有小孔洞的問題。二者的分割效果均不如改進(jìn)后的Res-UNet網(wǎng)絡(luò)。
表3 各網(wǎng)絡(luò)訓(xùn)練超參數(shù)及實(shí)驗(yàn)結(jié)果
圖4 缺陷真實(shí)標(biāo)簽和各網(wǎng)絡(luò)預(yù)測結(jié)果示例圖
針對鋼鐵表面缺陷分割問題,本文提出一種改進(jìn)的Res-UNet算法,融合特征提取模塊稠密連接策略、數(shù)據(jù)集增強(qiáng)策略、增加網(wǎng)絡(luò)層數(shù)策略和優(yōu)化損失函數(shù)策略,改進(jìn)后算法的分割精度和檢測效果都有所提高。稠密連接策略增加了淺層特征的應(yīng)用深度,數(shù)據(jù)集增強(qiáng)策略保證網(wǎng)絡(luò)學(xué)習(xí)更多的樣本特征,增加特征提取網(wǎng)絡(luò)的層數(shù)能使網(wǎng)絡(luò)學(xué)習(xí)缺陷的細(xì)節(jié)和邊緣,本文所提BDloss增加了正樣本的比重,有效解決了數(shù)據(jù)集類內(nèi)不平衡的問題。最后進(jìn)行了4個(gè)對比試驗(yàn),無論是分類準(zhǔn)確率還是分割精準(zhǔn)度,本文所提算法的表現(xiàn)都更勝一籌,說明該算法具有進(jìn)步性和先進(jìn)性。
最終,采用組合優(yōu)化算法將網(wǎng)絡(luò)的Dice系數(shù)從0.7551提升至0.7930,識別準(zhǔn)確率提升了近9%,有效縮短了網(wǎng)絡(luò)訓(xùn)練時(shí)間,使分割結(jié)果更接近實(shí)際缺陷位置,證明了深度學(xué)習(xí)在鋼鐵表面缺陷檢測和實(shí)際應(yīng)用中的價(jià)值。在此基礎(chǔ)上,未來工作將引入注意力機(jī)制和Transformer結(jié)構(gòu),擴(kuò)大感受野以學(xué)習(xí)缺陷的邊緣特征,優(yōu)化網(wǎng)絡(luò)的譯碼模塊,增強(qiáng)網(wǎng)絡(luò)對埋渣的檢測和分割能力,進(jìn)一步提升網(wǎng)絡(luò)對各類缺陷的分類準(zhǔn)確度和分割精度。