張雪明,茅健
(201620 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院)
回轉(zhuǎn)體零件是機(jī)械零件匯總最基本的結(jié)構(gòu)狀態(tài),具有很高的傳動穩(wěn)定性和裝配便捷性,主要支撐旋轉(zhuǎn)、傳遞動力、承受載荷等作用,在生產(chǎn)中由于加工過程、生產(chǎn)環(huán)境等影響,零件表面出現(xiàn)的拉傷、碰傷、劃痕等缺陷,并且不能及時(shí)分檢,會直接影響裝配后的部件質(zhì)量,因此快速準(zhǔn)確地檢測零件的表面缺陷不可或缺。機(jī)器視覺是缺陷檢測較為流行的方法,但在圖像采集過程中,采集到的圖像受到不穩(wěn)定因素的干擾,往往具有低全局對比度和小灰度分布的特點(diǎn),導(dǎo)致暗區(qū)細(xì)節(jié)模糊,視覺設(shè)備很難檢測出小目標(biāo)缺陷,不利于此類零件的生產(chǎn)效率和質(zhì)量控制。
隨著科技的不斷發(fā)展,以卷積神經(jīng)網(wǎng)絡(luò)為代表的缺陷檢測技術(shù)被廣泛應(yīng)用到缺陷檢測問題中。Long 等[1]提出一種直接對圖像像素進(jìn)行類別劃分實(shí)現(xiàn)圖像分割效果的全卷積神經(jīng)網(wǎng)絡(luò) FCN(fully convolutional networks);Badrinarayana 等[2]提出SegNet 網(wǎng)絡(luò),在解碼器中使用反池化,并在分割中保持高頻細(xì)節(jié)的完整性。Ronneberger 等[3]提出Unet 模型,對圖像進(jìn)行編碼-解碼操作,并通過跳躍連接實(shí)現(xiàn)高低層次的特征融合,在醫(yī)學(xué)、遙感工業(yè)等領(lǐng)域取得良好效果;鐘思華等[4]通過引入密集連接,提出了一種改進(jìn)的Unet 模型,可以對CT圖像中的肺結(jié)節(jié)進(jìn)行準(zhǔn)確的分割;張翠軍等[5]提出一種引入注意力機(jī)制 U-Net 的遙感圖像中建筑物變化檢測方法,對圖像背景復(fù)雜、小目標(biāo)的建筑物檢測效果明顯提升;劉暢等[6]提出一種改進(jìn)的Unet的磁瓦缺陷檢測識別算法,提取磁瓦表面缺陷,同時(shí)由于其結(jié)構(gòu)簡單、效率高、可塑性強(qiáng),被廣泛應(yīng)用于醫(yī)學(xué)圖像分割和工業(yè)缺陷檢測;SE-Net[7]設(shè)計(jì)的特征壓縮激活模塊對特征維進(jìn)行加權(quán)優(yōu)化,從而提高模型的特征學(xué)習(xí)能力,即用特征壓縮激活模塊SE-ResNet 101 在 ImageNet 上的分類精度超過更深的ResNet 152;劉浩等[8]利用嵌入特征壓縮激活模塊在遙感圖像中進(jìn)行建筑物的提取,對大小各異形狀不規(guī)則的建筑物提取效果較好;文喆皓等[9]結(jié)合Unet 與注意力機(jī)制提取磁瓦表面孔洞和裂紋缺陷,取得不錯的效果。
本文針對回轉(zhuǎn)體表面倒偏角、拉傷、線性紋缺陷識別,提出一種改進(jìn)的Unet 網(wǎng)絡(luò)的缺陷檢測方法,建立Unet 網(wǎng)絡(luò)架構(gòu)模型,嵌入SENet 模塊的Unet 卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)缺陷分割,完成缺陷圖像的細(xì)節(jié)特征提取,從準(zhǔn)確率、召回率以及F1分?jǐn)?shù)3 個(gè)指標(biāo)上對Unet-SE 網(wǎng)絡(luò)進(jìn)行客觀評估,提出改進(jìn)意見。實(shí)驗(yàn)表明,嵌入特征壓縮激活模塊的改進(jìn)的Unet 網(wǎng)絡(luò),在沒有后處理的情況下,在數(shù)據(jù)集上的準(zhǔn)確率、召回率、F1分?jǐn)?shù)優(yōu)于同分割網(wǎng)絡(luò)的SegNet、FCN、UNet 結(jié)構(gòu)。
SENet(Sequeeze-and-Excitation Network)的核心在于SE 模塊,可嵌入其他分類或者檢測的模型中,該結(jié)構(gòu)由Squeeze、Excitaion 兩部分構(gòu)成,通過學(xué)習(xí)的方法自動獲取通道權(quán)重,捕捉空間相關(guān)性,從而提高了網(wǎng)絡(luò)的表達(dá)能力,在各個(gè)領(lǐng)域廣泛的應(yīng)用[10-13],其結(jié)構(gòu)如圖1 所示。
圖1 SE 模塊結(jié)構(gòu)Fig.1 SE module structure
第1 步是通過壓縮過程(Squeeze),采用全局平均池化算法H×W×C 的全局信息通過池化壓縮到1×1×C 的一個(gè)通道中,使得感受野更廣,算法如下:
第2 步是激活過程(Excitation)。通過2 個(gè)全連接層(Fully-connected)進(jìn)一步對特征進(jìn)行壓縮和重構(gòu)后接“ReLU” 函數(shù)[14]和“Sigmoid” 做激活層得到特征維度的權(quán)重信息,目的是抓取各個(gè)通道之間的關(guān)系。
式中:Wr,Ws——壓縮和重構(gòu)的全連接函數(shù),先降維后升維,再由sigmoid 函數(shù)進(jìn)行激活,得到相應(yīng)的權(quán)重,最終的輸出通過輸入通道與各自的權(quán)重相乘得到,如式(4):
總的來說,SE 模塊是將多通道的W×H 的特征圖轉(zhuǎn)化為壓縮特征向量后,通過權(quán)重Wr、Ws,訓(xùn)練出對特征圖有選擇能力的全連接網(wǎng)絡(luò),通過ReLU函數(shù)和Sigmoid 激活函數(shù),輸出一個(gè)針對各特征圖的權(quán)重向量,并與原始特征圖相乘得到最終的輸出。
在壓縮和激活過程之后,將權(quán)重與原始輸入對位相乘,映射為原圖每個(gè)通道的權(quán)值,借助注意力機(jī)制,使模型學(xué)習(xí)到不同通道的重要程度,且這個(gè)權(quán)值信息是可以通過學(xué)習(xí)缺陷各通道之間相互依賴性重新校正,從而學(xué)習(xí)到更為有用的缺陷特征,并且可以抑制多余特征。
U-Net 網(wǎng)絡(luò)用于解決圖像分割問題,尤其是較小的微觀粒子分割效果顯著,能夠很好地提取圖像特征信息。由于缺陷區(qū)域邊界和微觀粒子邊界特征相似,采用Unet 網(wǎng)絡(luò)應(yīng)用于缺陷提取,能夠有效提高提取的準(zhǔn)確性。改進(jìn)Unet-SE模型結(jié)構(gòu)如圖2所示。
圖2 Unet-SE 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of Unet-SE
對于軸類零件的缺陷分割,缺陷區(qū)域?yàn)榍熬?,其他為背景,屬于像素級二分類問題,常使用二值交叉熵?fù)p失函數(shù)作為損失函數(shù),公式為:
式中:gi——像素點(diǎn)i 的真實(shí)類別;pi——網(wǎng)絡(luò)對像素點(diǎn)i 的預(yù)測結(jié)果。
還有一種常用于分割任務(wù)的損失函數(shù)dice loss,它的提出是在V-net[9]中。Dice 可以表示為
Dice 相似系數(shù)值是用來衡量預(yù)測結(jié)果與真實(shí)結(jié)果之間的相似程度二分類的,Diceloss 公式為:
式中:gi——像素i 真實(shí)類別;pi——網(wǎng)絡(luò)對像素點(diǎn)i 的預(yù)測結(jié)果。
本文根據(jù)BCELoss 和DiceLoss 的特點(diǎn),提出了一種混合損失函數(shù),公式為:
式中:α——權(quán)重因子,可以調(diào)節(jié)2 種損失函數(shù)所占權(quán)重。
本文采用了深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)性能評價(jià)常用的3 個(gè)指標(biāo):準(zhǔn)確率(Precision)、召回率(Recall)、F1 分?jǐn)?shù)作為模型分類性能評價(jià)標(biāo)準(zhǔn)。準(zhǔn)確率越高說明模型對負(fù)類區(qū)分能力強(qiáng);召回率越高表示對正類的識別能力強(qiáng);F1 分?jǐn)?shù)是二者的平衡,越高表示模型穩(wěn)定。計(jì)算公式如式(9)—式(11)所示。
式中:P——所有正類的個(gè)數(shù);N——所有負(fù)類的個(gè)數(shù);TP——正類判定正類的個(gè)數(shù);TN——負(fù)類判定為負(fù)類個(gè)數(shù);FN——正類判定為負(fù)類的個(gè)數(shù);FP——負(fù)類判定為正類的個(gè)數(shù)。
本算法針對回轉(zhuǎn)體零件的缺陷分割網(wǎng)絡(luò),涉及到大量矩陣運(yùn)算和權(quán)重參數(shù)矩陣,較于CPU,GPU更擅長執(zhí)行大規(guī)模矩陣運(yùn)算,更為簡單且運(yùn)算速度更快,所以我們利用GPU 完成運(yùn)算。本文的實(shí)驗(yàn)條件見表1。
表1 實(shí)驗(yàn)條件Tab.1 Experimental conditions
搭建軸類零件缺陷檢測系統(tǒng),利用條形白光源和面陣工業(yè)相機(jī)進(jìn)行圖像采集,采用低角度水平對打光源照射。工件放置在雙支撐滾輪機(jī)構(gòu)上,由滾輪帶動旋轉(zhuǎn)實(shí)現(xiàn)360°全周成像。其中,拉傷缺陷圖共115 張,倒偏角缺陷圖共75 張,線性紋缺陷圖共84 張。使用180°旋轉(zhuǎn)、水平鏡像、裁剪、調(diào)整明暗度等方法分別對3 種缺陷圖像各200 張,對數(shù)據(jù)類型進(jìn)行一定的增強(qiáng),共計(jì)600 張。剪裁至長寬均為1 024 分辨率,將數(shù)據(jù)集按7∶2∶1 的比例劃分為訓(xùn)練集、驗(yàn)證集、測試集。考慮到網(wǎng)絡(luò)訓(xùn)練是有監(jiān)督的,本文通過easyDL 進(jìn)行標(biāo)注提取圖片中的缺陷區(qū)域,輸入為圖像下采樣后的512 分辨率。
Unet 網(wǎng)絡(luò)選用BCEloss 和Diceloss 作為損失函數(shù),選擇SGD 進(jìn)行優(yōu)化,批處理(batchsize)為4,epoch 設(shè)置為60 輪,學(xué)習(xí)率衰減方式為指數(shù)衰減,初始值為0.001。在60 個(gè)epoch 的訓(xùn)練過程中的精度變化曲線和損失函數(shù)變化曲線如圖3、圖4 所示。通過60 個(gè)Epoch 后獲得精度85.43%,以及混合損失約為0.094 5 的模型。
圖3 訓(xùn)練損失和驗(yàn)證損失Fig.3 Training loss and validation loss
圖4 訓(xùn)練精度和驗(yàn)證精度Fig.4 Training accuracy and verification accuracy
SegNet、FCN、Unet 以及本文算法的評價(jià)指標(biāo)對比見表2??梢钥闯?,Unet 的分割性能率略高于SegNet,這是由于 SegNet 對網(wǎng)絡(luò)編碼部分提取的特征并未充分利用,通過標(biāo)記最大池化的坐標(biāo)用于解碼器中的上采樣,卻忽略了高低層特征在空間進(jìn)行像素定位和分類間的聯(lián)系,所以分割結(jié)果比另外2種模型粗糙。FCN 是統(tǒng)一將編碼器各輸出壓縮,再上采樣到最大尺度后在特征維進(jìn)行連接后分類,由于像素之間的關(guān)系處理不好,得到的結(jié)果并不精細(xì)。Unet 則是通過跳躍連接將低層的特征和高層特征進(jìn)行融合,得到的結(jié)果具有更多的細(xì)節(jié)。Unet-SE的性能略高于Unet 本身,這是因?yàn)樘卣鲏嚎s激活模塊對特征進(jìn)行加權(quán)強(qiáng)化,提高了特征的學(xué)習(xí)能力,網(wǎng)絡(luò)具有更強(qiáng)表達(dá)力的深層特征。
表2 不同網(wǎng)絡(luò)學(xué)習(xí)性能評價(jià)指標(biāo)對比Tab.2 Comparison of different network learning performance evaluation indexes
為了更好地對本文算法進(jìn)行評價(jià),采用常用的分割模型SegNet、FCN、Unet 進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)對比結(jié)果如圖5 所示??梢钥闯?,本文的分割效果整體最接近人工標(biāo)注。在客觀的評價(jià)指標(biāo)中加入了特征壓縮激活模塊,在缺陷提取問題上有效地提高了模型能力。圖5(a)缺陷都是倒偏角缺陷,所有的網(wǎng)絡(luò)都分類較好的結(jié)果,但是Unet 和UNet-SE 具有更好的分割效果,提取了大致的形狀,其他的網(wǎng)絡(luò)把陰影部分的缺陷遺漏掉;圖5(b)缺陷都是拉傷缺陷,缺陷形狀較小,識別性較差,F(xiàn)CN 提取的完整性較差,連續(xù)性較差,Unet 提取錯一部分背景,不規(guī)則缺陷只有Unet-SE 能夠完整地提取出來;圖5(c)都是線形紋缺陷,SegNet和FCN 都有漏分割的部分,Unet-SE 提取的形狀較為完整。從圖5 可以看出,各個(gè)網(wǎng)絡(luò)對于缺陷提取都有較好的效果,但是Unet-SE 的優(yōu)點(diǎn)在于對于邊緣、形狀不規(guī)則的缺陷提取精確,這是因?yàn)槠溆休^大的感受野,SE 模塊對特征進(jìn)行了加權(quán)的強(qiáng)化,進(jìn)一步加強(qiáng)了這些特征的表達(dá)能力。
圖5 不同模型對比實(shí)驗(yàn)Fig.5 Comparison experiment of different models
本文基于Unet 特征復(fù)用思想并嵌入了SE 模塊,使用BCE 和Dice 的復(fù)合損失函數(shù)進(jìn)行訓(xùn)練,在自制的數(shù)據(jù)集上和多種網(wǎng)絡(luò)進(jìn)行對比,得出如下結(jié)論:Unet-SE 根據(jù)特征的有效性自適應(yīng)地對特征進(jìn)行激活,強(qiáng)化特征學(xué)習(xí)的過程,同時(shí)還在解碼的過程中連接編碼特征,提高網(wǎng)絡(luò)對空間信息的恢復(fù)。Unet-SE 在測試集上的實(shí)驗(yàn)結(jié)果在精確率、召回率、F1 分?jǐn)?shù)上分別達(dá)到0.929 8,0.892 9,0.911 0,超過了本文引用的SegNet、FCN、U-Net 等其他網(wǎng)絡(luò)。
本實(shí)驗(yàn)中Unet-SE 雖然在自制的數(shù)據(jù)集上取得了較好的效果,只是在標(biāo)注好的自制數(shù)據(jù)集上進(jìn)行,數(shù)據(jù)量可擴(kuò)充,使得網(wǎng)絡(luò)模型訓(xùn)練泛化性能更好;本實(shí)驗(yàn)基于Unet 的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行設(shè)計(jì),但是不確定是最優(yōu)解,后續(xù)工作可以在網(wǎng)絡(luò)深度和寬度進(jìn)行優(yōu)化。