劉秀平 王柯欣 馮國棟 閆煥營
(1.西安工程大學(xué),陜西西安,710048;2.深圳羅博泰爾機器人有限公司,廣東深圳,518109)
隨著我國農(nóng)業(yè)市場化建設(shè)與農(nóng)業(yè)經(jīng)濟飛速發(fā)展,農(nóng)業(yè)領(lǐng)域中紡織品應(yīng)用廣泛,對紡織品質(zhì)量把控變得尤為重要,因此對其及時高效進(jìn)行缺陷檢測具有一定需求。農(nóng)業(yè)領(lǐng)域中農(nóng)林防護(hù)網(wǎng)多采用網(wǎng)狀白坯織物,材質(zhì)為高壓低密度聚乙烯絲。該織物具有紗孔易變形、紗線抗滑移性差、經(jīng)紗易沿緯紗左右滑動等特點;且多由紗線串套而成,結(jié)構(gòu)和紋理特征復(fù)雜,在缺陷檢測中存在特征點難找的問題,影響企業(yè)產(chǎn)量和產(chǎn)品質(zhì)量。
將顯著性檢測(Saliency Object Detection,SOD)引入深度學(xué)習(xí)是目前計算機視覺領(lǐng)域主流方向[1],SOD 是自然場景中顯著物體的檢測和分割,包括前注意階段和注意力階段。近年來基于深度學(xué)習(xí)的紡織品缺陷檢測在企業(yè)應(yīng)用廣泛,在降低傳統(tǒng)人工質(zhì)檢成本的同時提高了檢測精度與效率,因而在智能制造中具有市場前景與研究意義。常見紡織品缺陷檢測技術(shù)有基于頻譜分析的方法、基于結(jié)構(gòu)的方法、基于統(tǒng)計學(xué)的方法、基于深度學(xué)習(xí)的方法等[2]。
基于頻譜分析的方法,關(guān)注圖像空間分布和頻域信息,頻域特征對圖像噪聲靈敏度弱且低于空間分布特征,檢測中通常需將頻域和空間分布信息結(jié)合。王延年等[3]提出基于改進(jìn)閾值分割和傅里葉變換的織物疵點檢測算法,將網(wǎng)布圖像進(jìn)行傅里葉變換后得到頻譜圖,再利用Butterworth低通濾波器濾除高頻分量,成功檢測常見織物疵點。ISMAIL N 等[4]通過傅里葉變換獲得頻譜并識別織物圖像疵點,通過結(jié)合傅里葉變換與神經(jīng)網(wǎng)絡(luò),成功對12 種織物缺陷分類。尉苗苗等[5]提出基于最優(yōu)二維Gabor 濾波器的織物缺陷檢測方法,使用小波變換提取織物紋理特征,提高了檢測實時性。該類方法對圖像噪聲靈敏度低并存在一定局限性,對隨機紋理類紡織品缺陷檢測效果不顯著。
基于結(jié)構(gòu)的方法,將圖像視為由多種紋理單元組合成的整體,通過提取表面紋理特征并分析紋理規(guī)律檢測出缺陷部位。李亞標(biāo)等[6]通過對圖像各通道進(jìn)行二維小波分解,并提取各細(xì)節(jié)子圖能量特征,實現(xiàn)對圖像紋理特征的采集,成功判斷缺陷點是否存在并識別常見缺陷類型。COHEN F S 等[7]提出基于高斯馬爾科夫隨機場模型,對正常無疵點紋理圖像建模,將檢測問題轉(zhuǎn)化為高斯馬爾科夫隨機場模型中最大假設(shè)檢驗問題,該方法能檢測多數(shù)疵點。李仁忠等[8]提出基于EM 算法的高斯混合模型,通過降采樣減弱圖像紋理特征,計算像素后驗概率并準(zhǔn)確判斷出缺陷特征。此類方法只針對紋理規(guī)律性較強紡織品有效,其他情況易受織物背景紋理干擾導(dǎo)致檢測精度低,基于此局限性,該方法僅在早期應(yīng)用較多。
基于統(tǒng)計學(xué)的方法,主要通過提取織物圖像上部分統(tǒng)計量獲得紋理特征,包括一階和二階統(tǒng)計量,其中圖片灰度顏色均值、極差、最值等屬于一階統(tǒng)計量;方差、標(biāo)準(zhǔn)差、協(xié)方差等屬于二階統(tǒng)計量。OZDEMIR S 等[9]提出基于自組織映射的灰度共生矩陣方法,通過將灰度共生矩陣中紋理信息提供給自組織映射實現(xiàn)圖像分類,并融合模糊算法與類別共生矩陣,與經(jīng)典共生矩陣相比擁有更高檢測精度。祝雙武等[10]提出通過織物紋理特征建立二維自相關(guān)函數(shù)的方法,計算紋理周期并劃分成子窗口,該方法對整體紋理特征被破壞的織物檢測效果佳。GNANAPRAKASH V 等[11]將人工神經(jīng)網(wǎng)絡(luò)與灰度共生矩陣相結(jié)合檢測織物缺陷,使用灰度共生矩陣提取紋理特征,檢測出特征明顯的織物缺陷點;該類方法原理簡單、計算方便,但試驗表明:當(dāng)被測圖像噪聲過多且疵點與背景區(qū)別不明顯時,就無法準(zhǔn)確檢測疵點。
基于深度學(xué)習(xí)的方法,已通過卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在圖像識別、目標(biāo)檢測與分割領(lǐng)域取得重要進(jìn)展。BALZATEGUI J 等[12]提出一種太陽能電池板圖像缺陷檢測方法,通過特定U-net 結(jié)構(gòu)一次性獲得缺陷分割圖,與CNN 滑動窗口方法相比優(yōu)化了檢測時 間。XIAO L 等[13]提 出 改 進(jìn) 的 掩 碼RCNNIPCNN 模型,通過殘差網(wǎng)絡(luò)生成金字塔特征和缺陷邊界盒并對其分類,利用FCN 在缺陷邊界盒中生成缺陷掩碼,實現(xiàn)多種缺陷的準(zhǔn)確檢測。YANG H 等[14]提出多尺度特征聚類全卷積網(wǎng)絡(luò),利用多尺度子網(wǎng)絡(luò)重構(gòu)紋理背景,從輸入圖像中減去紋理背景作為殘差圖像,成功實現(xiàn)跨類織物缺陷檢測。將深度學(xué)習(xí)應(yīng)用在織物缺陷檢測更符合工業(yè)生產(chǎn)實際要求,通過與便攜式移動設(shè)備結(jié)合實現(xiàn)缺陷實時檢測是未來發(fā)展趨勢。
本研究提出一種基于弱監(jiān)督SOD 網(wǎng)絡(luò)的網(wǎng)狀白坯織物缺陷檢測方法。首先,通過草圖標(biāo)注實現(xiàn)網(wǎng)絡(luò)的單輪端到端訓(xùn)練,加入最大池化層,將空間和通道信息分開考慮,減少信息丟失;并通過融合模塊聚合多層次信息,使高級、低級特征和全局信息被更好處理。其次,提出3 種損失函數(shù)作為包含輔助損失和主要損失的總損耗,預(yù)測具有一致目標(biāo)結(jié)構(gòu)的整體顯著區(qū)域;為確保不同尺寸輸入下輸出一致的顯著圖,通過正則化作為自治機制提高模型泛化能力。最后,提出邊界細(xì)化模塊提高邊界定位精度并解決梯度問題和網(wǎng)絡(luò)退化。
弱監(jiān)督SOD 改進(jìn)網(wǎng)絡(luò)模型為編碼器-解碼器框架,如圖1 所示,具體包括以下幾個部分。
圖1 弱監(jiān)督SOD 網(wǎng)絡(luò)整體框架圖
其一,為考慮來自特征映射所有信息,輸入后添加步長為2 的最大池化層,并選擇激活度最高元素達(dá)到減少信息損失的目的,使空間維度上所有像素都被充分考慮。
其二,在編碼器層后設(shè)計頭部注意力(Head Attention,HA)模塊[15],利用空間和通道注意力機制學(xué)習(xí)具有代表性的紡織品表面缺陷特征。
其三,提出融合模塊(Cross Aggregation Module,CAM)應(yīng)用在解碼器每一層,f1、f2、f3分別表示底層細(xì)節(jié)、高層語義特征、全局上下文信息,通過CAM 將這3 種信息交織融合并更好地傳遞到下一層。該模塊能捕獲不同顯著性區(qū)域間關(guān)系,實現(xiàn)多層次特征聚合。
其四,定義3 種損失函數(shù)在訓(xùn)練過程對預(yù)測結(jié)果顯著圖進(jìn)行監(jiān)督,分別為部分交叉熵?fù)p失(Part Cross Entropy Loss,Lpce)、局部顯著相干性損失(Local Saliency Coherence Loss,Llsc)和顯著結(jié)構(gòu)一致性損失(Saliency Structure Consistency Loss,Lssc);將Llsc和Lpce組成的輔助損失(Auxiliary Loss,Laux)應(yīng)用在每一個子集以便訓(xùn)練并對中間低分辨率顯著圖進(jìn)行監(jiān)督。
其五,提出基于殘差結(jié)構(gòu)的邊界細(xì)化模塊(Boundary Refinement Module,BRM),利用顯著性邊界信息進(jìn)一步細(xì)化邊界,對不同分支特征進(jìn)行加法運算后提高邊界定位精度,主要損失函數(shù)(Dominant Loss,Ldom)由Lpce、Llsc、Lssc3 種損失函數(shù)組成,用于對模型泛化能力和預(yù)測值精度的評估,進(jìn)一步優(yōu)化檢測結(jié)果。
在原始ResNet50 編碼器結(jié)構(gòu)中,由于輸入與輸出維度不匹配,對輸入應(yīng)用投影快捷方式實現(xiàn)元素求和并完成特征映射[16]。ResNet50 網(wǎng)絡(luò)結(jié)構(gòu)中使用的默認(rèn)投影快捷方式如圖2(a)所示。原始投影快捷方式使用步長為2 的1×1 卷積核,由于通道和空間匹配都由1×1 卷積核執(zhí)行,卷積核會在減少兩倍空間大小時丟失75%特征激活,剩余特征激活不具有特定的選擇標(biāo)準(zhǔn),會導(dǎo)致信息損失和噪聲產(chǎn)生,并對通過網(wǎng)絡(luò)的主要信息流造成負(fù)面影響。
圖2 投影快捷方式
本研究所用投影快捷方式如圖2(b)所示。在進(jìn)行1×1 卷積前添加一個3×3 最大池化,空間維度所有像素都被充分考慮。將空間和通道投影分開,對于空間投影,使用步長為2 的3×3 最大池化,對通道投影使用步長為1 的1×1 卷積核??臻g投影會考慮來自特征圖的所有信息并選擇激活度最高元素,從而減少信息損失。
由于編碼器層在學(xué)習(xí)顯著特征并將其傳到解碼器時某些細(xì)節(jié)特征會被泛化,每一解碼層都使用前一層輸出的底層細(xì)節(jié)、高層語義特征、全局上下文信息作為預(yù)測顯著區(qū)域輸入。通過自學(xué)習(xí)來學(xué)習(xí)每個輸入特征時應(yīng)分配給每個解碼層不同權(quán)重[17],基于此設(shè)計了一個CAM 模塊,如圖3 所示。3 個輸入進(jìn)行多尺度轉(zhuǎn)換后對應(yīng)不同輸出結(jié)果,其中全局平均池化(GAP)用來保留圖像背景信息,使用一個3×3 卷積層和平均池化層學(xué)習(xí)每個輸入特征,得到權(quán)重后進(jìn)行歸一化處理,如式(1)所示。
圖3 交叉融合模塊
式中:s為自細(xì)化模塊SR(self-refinaved);w1、w2、w3為權(quán)值;fout為輸出特征。
通過式(1)構(gòu)建了一種更全面的特征表示方式并生成相對精細(xì)的顯著性圖,3 種特征分支交互融合時伴隨著自細(xì)化操作[18],減少特征提取時的誤差,使改進(jìn)后的SOD 網(wǎng)絡(luò)可以聚合多層次特征。
由于多尺度特征聚合時會造成細(xì)節(jié)丟失[19],為提高邊界定位精度,提出BRM 模塊將邊界信息構(gòu)建為殘差結(jié)構(gòu),同時細(xì)化顯著圖中的區(qū)域和邊界區(qū)域,如圖4 所示。其中,w、x、h分別表示長度、寬度和高度。該模塊包括快捷連接和恒等映射,通過短接進(jìn)一步修正預(yù)測結(jié)果,提高目標(biāo)對象的定位并優(yōu)化邊界。恒等映射由兩個3×3 卷積通過映射短接和一個ReLU 激活函數(shù)構(gòu)成,再將輸出的殘差結(jié)構(gòu)結(jié)果與原特征進(jìn)行融合相加,最后輸出邊界增強后的預(yù)測結(jié)果同時保留邊緣信息,解決了梯度問題和網(wǎng)絡(luò)退化。該模塊使檢測結(jié)果去模糊并得到邊界明確的顯著結(jié)果圖。
圖4 邊界細(xì)化模塊
本研究設(shè)計的網(wǎng)絡(luò)結(jié)構(gòu)中總損耗由輸出對應(yīng)的主要損失(Ldom)和各級輔助損失(Laux)兩部分組成。
1.4.1 部分交叉熵?fù)p失(Lpce)
部分交叉熵?fù)p失作為預(yù)測值與真實標(biāo)簽值之間距離度量,具體來說,解碼器每階段進(jìn)行3×2卷積時將通道壓縮到1 后計算顯著性評分并與偏交叉熵?fù)p失協(xié)同作用,因此部分交叉熵?fù)p失的計算如式(2)所示。
式中:y表示真實信息?表示預(yù)測值?是通過草圖標(biāo)簽所標(biāo)注像素。
1.4.2 局部顯著相干性損失(Llsc)
草圖標(biāo)注時由于存在大量未標(biāo)記像素,僅憑給定草圖標(biāo)簽無法獲取顯著區(qū)域全部信息;此外,SOD 任務(wù)不關(guān)注類別信息,因此本研究引入弱監(jiān)督來得到更優(yōu)化的具有明確邊界的顯著性映射[20]。基于此,設(shè)計了局部顯著相干性損失(Llsc)幫助SOD 網(wǎng)絡(luò)預(yù)測帶有草圖標(biāo)注的平滑顯著性映射;對同一輸入圖像的像素i和j,由于網(wǎng)絡(luò)無法有效區(qū)分接近邊界像素的顯著區(qū)域,這些像素的顯著性評分并不總與其相鄰像素相似,因此在兩像素i和j之間設(shè)計一個基于高斯核帶寬濾波器的相似能量,計算具有相似特征或距離相近的相關(guān)性像素的顯著評分,最終局部顯著相干性損失如式(3)所示。
式中:Ki為像素i周圍K×K核所覆蓋區(qū)域,F(xiàn)(i,j)為濾波器,D(i,j)為兩不同像素i和j之間像素差,用來預(yù)測像素i和j的顯著性評分。
局部顯著相干性損失(Llsc)迫使卷積核中相似像素采取一致的顯著性評分并在訓(xùn)練時進(jìn)一步將標(biāo)記點傳播到整個圖像,此過程中使用部分交叉熵?fù)p失對標(biāo)記點監(jiān)督,從而SOD 網(wǎng)絡(luò)不需要額外信息就能獲得具有有限標(biāo)記的擴大后的顯著區(qū)域。
1.4.3 顯著結(jié)構(gòu)一致性損失(Lssc)
顯著性目標(biāo)檢測模型要求對同一圖像不同比例預(yù)測的顯著性映射圖保持一致,但弱監(jiān)督SOD網(wǎng)絡(luò)對相同輸入下不同尺度顯著性映射預(yù)測時效果不佳,導(dǎo)致模型泛化能力差并在測試集預(yù)測時降低準(zhǔn)確率。因此本研究通過正則化操作提高模型泛化能力并減少過擬合現(xiàn)象,并引入顯著結(jié)構(gòu)一致性損失(Lssc)預(yù)測不同輸入尺度下顯著性映射,顯著結(jié)構(gòu)一致性損失如式(4)所示。通過式(4)改進(jìn)后的弱監(jiān)督SOD 網(wǎng)絡(luò)能學(xué)習(xí)更豐富的目標(biāo)結(jié)構(gòu)信息并增強不同尺度輸入時泛化能力。
本試驗使用ResNet50 作為骨干網(wǎng)絡(luò)的基線在TILDA 公開數(shù)據(jù)集上預(yù)訓(xùn)練。為解決隨機小批量樣本優(yōu)化問題,使用隨機梯度下降方法更新模型參數(shù)并優(yōu)化整個網(wǎng)絡(luò)。其中batchsize 為64,動量為0.9,權(quán)值衰減為5×10-4;設(shè)置最大學(xué)習(xí)率為0.05,最小學(xué)習(xí)率為5×10-4作為預(yù)衰減策略對網(wǎng)絡(luò)進(jìn)行300 epoch 訓(xùn)練。由于數(shù)據(jù)集中圖片為768 pixel×512 pixel,訓(xùn)練時將每幅圖片缺陷部分大小裁剪為200 pixel×200 pixel 并進(jìn)行水平隨機翻轉(zhuǎn)后輸入到網(wǎng)絡(luò)中預(yù)測顯著性圖像;使用Pytorch 實現(xiàn)模型,所有試驗都在工控機(Intel Core i7 3.60 GHz,操作系統(tǒng)為Windows10,安裝內(nèi)存為8 GB,CPU 頻率為2.2 GHz)上運行,每預(yù)測1 張缺陷圖像約0.03 s。
模擬實際工業(yè)環(huán)境,選取網(wǎng)狀白坯織物尺寸范圍均在40 目~60 目之間。對6 種常見織物缺陷圖像進(jìn)行采集,分別為斷經(jīng)(broken end)、斷緯(broken weft)、污 點(stain)、破 洞(pole)、打 結(jié)(tie)、裂紋(crack)。輸出紡織品圖像大小統(tǒng)一為256 pixel×256 pixel,該數(shù)據(jù)集所含紡織品圖像共12 000 張,其中斷經(jīng)1 750 張、斷緯2 000 張、污點2 150張、破洞2 200張、打結(jié)1 900張、裂紋2 000張。
為驗證本研究算法識別精確率,首先在公開數(shù)據(jù)集TILDA 下對6 種不同網(wǎng)狀白坯織物缺陷進(jìn)行試驗,如圖5 所示。從上至下依次為織物缺陷原圖(以下簡稱原圖)、弱監(jiān)督下缺陷檢測顯著圖(以下簡稱顯著圖)和邊界細(xì)化后的檢測結(jié)果圖(以下簡稱邊界細(xì)化圖)。可以看出,邊界細(xì)化圖與原圖中缺陷形狀高度一致,且缺陷周圍誤檢點較少。對于斷經(jīng)、斷緯和污點3 類缺陷,該算法的顯著圖和邊界細(xì)化圖均具有較好效果,邊界細(xì)化圖與原圖保持高度一致并且缺陷周圍基本不存在誤檢點;但因數(shù)據(jù)集中網(wǎng)狀白坯織物存在透明性且缺陷圖像周圍邊界不明確導(dǎo)致與缺陷具有較高相似,因此對于破洞、打結(jié)、裂紋這3 種缺陷檢測效果不理想,檢測過程中出現(xiàn)細(xì)微誤檢點。
圖5 6 種常見網(wǎng)狀白坯織物顯著性缺陷檢測結(jié)果圖
為進(jìn)一步印證本研究算法的有效性,設(shè)置對比試驗,對不同算法下檢測同一織物缺陷的性能進(jìn)行比較,如圖6 所示。可以看出,MINet、ITSDNet 這兩種算法的邊界細(xì)化圖與原圖像存在較大差異,誤檢點較多;GateNet、DFI、GCPANet 3 種算法的邊界細(xì)化圖與原圖像缺陷也存在細(xì)微差異;本研究算法的邊界細(xì)化圖與原圖高度相似,相對于其他5 種算法具有較高精確率,同時對織物缺陷圖像邊界信息不明確、圖像透明性以及圖像信息的豐富度等問題均有改善,提高檢測準(zhǔn)確率和產(chǎn)品質(zhì)量的同時更加符合農(nóng)業(yè)生產(chǎn)中實際檢測要求。
圖6 同一缺陷在不同顯著性檢測算法下檢測效果
為對本研究模型更好地定量評估,使用平均絕對誤差(MAE)、召回率(R)、精確率(P)、Emeasure和F-measure五種評價指標(biāo)度量模型性能。表1 為本研究算法和GCPANet[22]、GateNet[23]、ITSDNet[24]、DFI[25]、MINet[26]、PICANet[27]6 種 不同算法在TILDA 數(shù)據(jù)集和自采數(shù)據(jù)集(Ours)實際兩種數(shù)據(jù)集下,對網(wǎng)狀白坯織物缺陷檢測中各性能指標(biāo)的定量比較。從表1 中可知,本研究算法的R、E-measure和F-measure在兩種數(shù)據(jù)集上分別達(dá)到92%、93%、91%以上,說明本研究算法取得了較好的檢測結(jié)果且漏檢率低;同時MAE指標(biāo)相較于其他6 種算法值最小,說明本研究算法模型解決了數(shù)據(jù)過擬合現(xiàn)象,預(yù)測準(zhǔn)確且具有較好魯棒性。
表1 本研究算法與其他算法在兩種數(shù)據(jù)集上各性能指標(biāo)定量比較 單位:%
為進(jìn)一步評估本研究算法在同一數(shù)據(jù)集下檢測效果,使用MAE、R、E-measure和F-measure四種評價指標(biāo)對本研究所采集實際農(nóng)業(yè)場景中網(wǎng)狀白坯織物缺陷數(shù)據(jù)集的6 種常見缺陷進(jìn)行驗證,如表2 所示。從表2 中可知,本研究算法中6 種缺陷的MAE指標(biāo)均低于4.8%,召回率R指標(biāo)達(dá)到92%以上,E-measure和F-measure指標(biāo)也均達(dá)到93%和91%以上。綜上所述,本研究算法對6 種缺陷檢測效果均達(dá)到了較好水平,預(yù)測準(zhǔn)確且具有較高魯棒性。
表2 本研究算法對6 種缺陷檢測的評價指標(biāo)單位:%
通過消融試驗驗證添加各模塊后對網(wǎng)絡(luò)性能的影響,評價指標(biāo)選取MAE,消融試驗結(jié)果如表3 所示。由表3 可知,添加CAM 模塊后,HA 模塊與CAM 模塊融合取得了較好效果,在添加Lssc和Llsc后,MAE得到顯著改進(jìn),最后加入BRM 模塊對邊界細(xì)化后得到了最好的效果。通過消融試驗可知,使用本研究所提出的改進(jìn)后基于弱監(jiān)督SOD 顯著性算法檢測效果最佳。
表3 消融試驗
在本研究中,針對網(wǎng)狀白坯織物缺陷檢測過程中由于傳統(tǒng)人工檢測效率低、誤檢率較高等問題,提出一種基于弱監(jiān)督SOD 網(wǎng)絡(luò)目標(biāo)檢測算法。通過草圖標(biāo)注進(jìn)行端到端訓(xùn)練,并在快捷投影方式中添加最大池化層,使所有空間信息都被充分考慮。此外,由于不同層次特征特點不同,設(shè)計一個融合模塊整合不同層次特征,并輸出織物圖像顯著圖,然后通過部分交叉熵?fù)p失作為預(yù)測值與真實標(biāo)簽值之間距離度量,提出局部顯著性相干損失對未標(biāo)記點進(jìn)行監(jiān)督和顯著性結(jié)構(gòu)一致性損失,提高模型泛化能力,通過3 種損失函數(shù)衡量模型魯棒性。最后通過邊界細(xì)化模塊,提高邊界定位精度,使檢測到的缺陷顯著圖更加清晰。
研究表明,該算法在公開數(shù)據(jù)集和本研究所采集數(shù)據(jù)集上均能對缺陷完整檢測,模型質(zhì)量高且兼顧了魯棒性;E-measure和F-measure指標(biāo)也均達(dá)到93%和91%以上,說明漏檢率和誤檢率較低;但對于相似度較高、分辨率較低且背景復(fù)雜的圖像,還存在一定問題,需在后續(xù)研究中繼續(xù)優(yōu)化算法,并擴充數(shù)據(jù)集,提高檢測效果,擴大網(wǎng)狀白坯織物的尺寸范圍,并探究密度和厚度對檢測結(jié)果的影響。