蘇澤斌,武靜威,李鵬飛
(西安工程大學 電子信息學院/陜西省人工智能聯合實驗室,陜西 西安 710048)
數碼印花機目前在紡織行業(yè)已經得到越來越廣泛的應用,使印花行業(yè)更加環(huán)保、科技,進一步提升了紡織品的附加值[1]。但是,針對印花織物的成品檢測主要還是由人工完成。依靠人工檢測不僅效率低,還存在極大的漏檢、誤檢率,而且數碼印花產品色澤豐富,種類繁多,人工檢測已經不能完全適應印花產品的質量檢測。數碼印花過程中因噴孔堵塞、導帶黏度下降、電機步進偏差、蒸箱漏水等問題,使產品出現PASS track、PASS tracks、漏墨、留白、重影、絨毛、漏水以及漿瘢等缺陷,生產成本大幅提升。在數碼印花過程中,織物缺陷檢測有利于監(jiān)測印花機異常工況,減少缺陷產品的產生,提高生產效率。
隨著機器視覺技術的快速發(fā)展,許多研究人員將其應用于紡織品缺陷檢測中[2-4],主要包括基于統(tǒng)計[5-8]、基于頻譜[9-11]和基于模型的方法[12-13]。傳統(tǒng)的圖像處理方法在白坯布以及背景單一的純色織物上具有較好的檢測結果,但是對于數碼印花圖像來說,其本身圖案背景豐富多樣,缺陷類型難以判別,上述方法已經難以完全滿足實際檢測需求。
近年來,深度學習已經廣泛應用于工業(yè)檢測領域[14-16],在織物缺陷檢測領域也已經開展了大量的研究。陳雪陽等提出了一種融合主結構提取和多尺度線性濾波的疵點檢測方法,可檢測多種織物疵點,且檢測精度較高[17];陳夢琦等提出一種融合注意力機制的Faster R-CNN織物疵點檢測算法,提高了檢測模型的魯棒性和準確率[18]。JING等提出了基于Mobile-Unet的織物缺陷檢測模型,利用輕量級網絡MobileNetv2作為Unet網絡的編碼器,降低了模型的參數量和計算量,在保證織物缺陷檢測精度的前提下,提高了織物缺陷檢測的效率[19];LIU等結合分割網絡和生成對抗網絡(GAN),使模型擁有適應未知缺陷類型的能力[20];PENG等提出了先驗錨卷積神經網絡(PRAN-Net),提高了織物缺陷的定位精度[21];ZHU等提出了一種改進的 DenseNet 模型,以更好地適應資源受限的邊緣計算場景[22];張宏偉等提出了一種基于生成對抗網絡的色織物缺陷檢測方法,通過重構圖像與原圖之間的殘差分析實現色織物的缺陷區(qū)域檢測與定位[23]。上述方法在常規(guī)織物缺陷數據集上取得了高準確率的檢測精度,而在實際數碼印花中由于設備的影響使得獲取的數據存在嚴重的類別不均衡,導致現有檢測模型精度難以進一步提高。
本文采用了在缺陷檢測領域具有高質量表現的Faster R-CNN[24]作為檢測網絡框架,并通過引入ACSL[25]模塊,自適應地調整每個樣本在不同類別位置分類損失的權重系數,避免頭類別(出現頻率較高的類別)對尾類別(出現頻率較低的類別)的支配作用,進而提高算法的檢測精度。
Faster R-CNN作為兩階段檢測器,其模型的通用性和魯棒性得到了研究人員的廣泛好評。本文選擇Faster R-CNN作為檢測的基礎框架,具體的網絡結構如圖1所示。

圖 1 Faster R-CNN的網絡結構Fig.1 Network structure of Faster R-CNN
從圖1可以看出,輸入的缺陷圖像經過骨干網絡(backbone)進行特征提取,得到下采樣比例依次為4、8、16和32特征映射圖,編號為C2、C3、C4和C5;將它們輸入到特征金字塔網絡(feature pyramid network, FPN)進行多尺度特征融合,使得底層特征映射圖擁有頂層特征映射圖的強語義信息,并得到下采樣比例依次為4、8、16、32和64的特征映射圖,編號為P2、P3、P4、P5和P6;接著,將它們輸入到區(qū)域生成網絡(region proposal network, RPN),為生成高質量的proposals提供注意力(其中,RPN基于先驗的尺寸和比率,在每一個滑動窗口中平鋪k個anchors);然后,利用Intersection over Union(IoU)閾值和隨機采樣的方式篩選出高質量的anchors參與訓練,并將RPN生成的proposals映射到P2、P3、P4和P5特征映射層;最后,利用RoI Align,將proposals映射到特征映射圖并固定區(qū)域7×7,輸入到全連接網絡,進行分類和回歸任務。proposal的特征提取層計算方法可表示為
(1)
式中:s表示proposal的面積;smin表示proposal劃分超參數。
本文提出的改進模型在訓練過程中不斷平衡對頭類別(出現頻率較高的類別)、中間類別(出現頻率中等的類別)和尾類別(出現頻率較低的類別)的關注,提高了算法的檢測精度。在Faster R-CNN網絡引入的自適應抑制損失結構,如圖2所示。

圖 2 改進后的損失結構Fig.2 Improved loss structure
圖2中,Faster R-CNN為每個proposal分配好標簽信息的基礎之上,通過引入置信度閾值ξ、頭類別位置的采樣抑制比率hr、中間類別位置的采樣抑制比率mr和尾類別位置的采樣抑制比率tr,自適應地調整每個proposal在不同類別位置二元交叉熵損失函數的權重系數,緩解模型對尾類別位置二元交叉熵損失函數長期負激活的現狀并且提高模型對頭類別位置二元交叉熵損失函數負激活的比例,最終使得不同類別位置二元交叉熵損失函數正激活和負激活的數量差異得到緩和,提高模型對類別樣本分布不均衡數據集的泛化能力。
設二元交叉熵損失函數在目標檢測任務中,頭類別x的proposalY,one-hot編碼是Z,則zx=1并且zi=0(i≠x),通過sigmoid 函數可獲得其類別位置i的預測置信度pi,sigmoid函數可表示為
(2)
式中:si表示網絡對于類別位置i的輸出邏輯。二元交叉熵損失函數可表示為
(3)
(4)
式中:C為類別總數;i=0對應背景類別。
頭類別x的proposalY在其他類別位置(i≠x)二元交叉熵損失函數的負激活將迫使算法降低其預測置信度pi,在一定程度上有助于算法的訓練;然而,由于頭類別、中間類別和尾類別樣本數量的嚴重失衡,往往導致尾類別位置的二元交叉熵損失函數長期處于負激活狀態(tài),正激活數量和負激活數量嚴重失衡,最終造成算法對尾類別的檢測效果不佳。
ACSL模塊的提出源于以下思考:1)由于頭類別和尾類別樣本數量的顯著差異,導致尾類別的proposals在頭類別位置的預測置信度偏高,所以應該對proposals容易誤檢類別位置的二元交叉熵損失函數進行負激活,使得算法保持判別不同缺陷類別能力,同時降低了尾類別位置二元交叉熵損失函數負激活的頻率,以此維系尾類別位置二元交叉熵損失函數正激活和負激活的數量平衡,進而緩解尾類別位置二元交叉熵損失函數長期負激活的現狀;2)由于頭類別和尾類別樣本數量的顯著差異,應當在proposals為背景類別時,根據不同缺陷類別樣本數量的分布情況,對頭類別、中間類別和尾類別位置二元交叉熵損失函數負激活的數量進行差異調整,即增加模型對于頭類別二元交叉熵損失函數負激活的頻率,適當減少模型對于尾類別二元交叉熵損失函數負激活的頻率,使得不同缺陷類別位置二元交叉熵損失函數正激活和負激活的數量差異得到緩和,進而提高模型對長尾分布數據集的泛化能力。

(5)
其中,
(6)
合適的置信度閾值ξ可使模型保持缺陷判別能力,同時降低尾類別位置二元交叉熵損失函數負激活的頻率,維系了尾類別位置二元交叉熵損失函數正激活和負激活的數量平衡,提高了模型的檢測精度。當proposals為背景類別時,ACSL模塊利用不同缺陷類別樣本的分布情況,設定頭類別、中間類別、尾類別位置二元交叉熵損失函數的采樣抑制比率分別為hr、mr、tr,并分別對背景類別proposals進行采樣,即增加模型對于頭類別二元交叉熵損失函數負激活的頻率,適當減少并緩解模型對尾類別二元交叉熵損失函數負激活的頻率,以及長期負激活現象,提高頭類別位置的二元交叉熵損失函數負激活的比例,使得不同缺陷類別位置二元交叉熵損失函數正激活和負激活的數量差異得到緩和,提高模型的檢測精度。
數碼印花的過程中會存在噴孔堵塞、導帶黏度下降、電機步進偏差、后處理蒸箱漏水等工況,同時還存在坯布本身質量問題。以上情況會導致印花產品出現PASS track、PASS tracks、漏墨、留白、重影、絨毛、漏水以及漿瘢等缺陷,如圖3所示。

(a) PASS track (b) PASS tracks (c) 漏墨 (d) 留白

(e) 重影 (f) 絨毛 (g) 漏水 (h) 漿瘢圖 3 數碼印花織物缺陷樣例Fig.3 Examples of digital printing fabric defects
實驗數據集來自于自建的數碼印花織物缺陷檢測數據集。數據集包括10 320幅印花圖像,在實驗過程中,將每類缺陷圖像分為3部分,即80%作為訓練集,10% 作為驗證集,10%作為測試集。
根據不同缺陷類別樣本參與模型訓練的數量,可以發(fā)現此數據集存在類別樣本分布不均衡的特點,具體類別樣本分布如圖4所示。

圖 4 類別樣本分布Fig.4 Distribution of class samples
類別樣本分布不均衡會導致以往先進的目標檢測算法在訓練過程中不斷增強對頭類別(PASS track、漏墨和絨毛)的學習,而不是中間類別(PASS tracks、留白、重影和漏水)和尾類別(漿瘢),最終造成算法檢測精度不理想。
實驗采用的硬件配置為Intel E5-2680v3 處理器(2.5 GHz)、128 GiB內存和 1 個 NVIDIA GeForce 2080 Ti。除此之外,骨干網絡的初始化權重從COCO2017數據集上的訓練模型遷移而來,所有其他權重通過“Xavier”范例進行初始化。在微調過程中,將max-epoch固定為30,并使用SGD作為優(yōu)化器,將其基本學習率設置為0.001,權重衰減設置為 0.000 1,動量常數設置為0.9,批量大小設置為 4。對于所有實驗, 采用COCO指標中的平均精度(AP、AP50、AP75、APS、 APM、APL) 來評估模型檢測性能。
為了客觀評價模型的檢測性能,采用2種不同的骨干網絡(ResNet50和ResNet101)和相同的實驗條件,性能比較結果如表1所示。

表1 與其他模型的性能比較Tab.1 Performance comparison with other models
表1中,指標最優(yōu)值以黑體顯示。可以看出,與其他先進模型相比,選用骨干網絡為ResNet50時,本文提出的模型在最綜合反應模型整體檢測精度的AP指標上比最優(yōu)模型提升了0.01,在AP50、AP75、APS、APM、APL指標上具有最高的檢測精度;選用骨干網絡為ResNet101時,與其他先進模型相比,本文提出的模型在AP、AP50、AP75指標上均提高了0.01,并且在APS、APM、APL指標上持平,說明本文提出的模型有助于緩解由數碼印花織物缺陷檢測數據集類別樣本分布不均衡引起模型檢測精度不理想的狀況。
在驗證ACSL模塊作用時,引入了2組超參數ξ和(hr、mr、tr),其中ξ為置信度閾值,hr、mr、tr分別為頭類別、中間類別和尾類別位置二元交叉熵損失函數的采樣抑制比率。消融實驗中,先固定超參數(hr、mr、tr)再來尋找最優(yōu)的超參數ξ;然后,固定最優(yōu)的超參數ξ,驗證超參數(hr、mr、tr)對于模型檢測精度增益的作用。
為了探究非背景類別的proposals在各個類別位置二元交叉熵損失函數負激活對于模型精度增益的作用,需要確定一個最優(yōu)的超參數ξ。為了驗證超參數ξ對模型檢測精度的影響,通過前期的分析,本文固定超參數(hr=1,mr=1,tr=1),此時可看作ACSL模塊只作用于非背景類別的proposals,超參數ξ采用6個備選數值(0、0.1、0.3、0.5、0.7、0.9)。超參數ξ的性能分析結果如表2所示。

表2 超參數ξ的性能分析Tab.2 Performance analysis of hyperparameterξ
表2中,當ξ為0時是基本的Faster R-CNN檢測模型;當ξ由0變化為0.5,模型的檢測精度增加,且在ξ=0.5時,模型達到了最佳的檢測精度;當ξ由0.5變化為0.9時,模型的檢測精度不斷下降。可以看出合適的超參數ξ能夠緩解模型在訓練時期對尾類別位置二元交叉熵損失函數過度負激活的問題,并相對提高了模型對于容易誤檢類別位置二元交叉熵損失函數負激活的頻率,進而提高了模型的檢測精度。
為了驗證超參數(hr、mr、tr)對模型檢測精度的影響,固定ξ=0.5,根據前期的實驗結果分析,采用3組備選數值:(hr=1,mr=1,tr=1),(hr=1,mr=2/3,tr=1/3),(hr=1,mr=0.1,tr=0.01),其性能分析結果如表3所示。

表3 超參數(hr,mr,tr)的性能分析Tab.3 Performance analysis of hyperparameter (hr,mr,tr)
從表3可以看出,超參數(hr、mr、tr)在調整背景類別proposals在其他類別位置二元交叉熵損失函數負激活數量時是有效的,可促進不同類別proposals在其類別位置二元交叉熵損失函數正激活和負激活的數量平衡,從而提高了模型的檢測精度。
根據消融實驗結果,本文模型中選取超參數分別為ξ=0.5,hr=1,mr=2/3,tr=1/3。
改進的Faster R-CNN方法在數碼印花織物缺陷檢測的結果如圖5所示。

圖 5 所有缺陷類別的檢測結果樣例Fig.5 Detection samples of all defect classes
從圖5可以看出,此方法能夠對測試集中的所有缺陷類別完成高精度的檢測,并適應于不同尺寸的待檢測目標。經分析,該方法性能的提升源于基于類別感知策略的ACSL模塊通過在模型訓練階段不斷平衡proposals在不同類別位置二元交叉熵損失函數正激活和負激活的數量,有效緩解了頭類別樣本對其他類別樣本的支配作用。
此外,為了驗證ACSL模塊增強了算法對語義相似度的尾類別(漿瘢)和中間類別(PASS tracks)的區(qū)分能力,本文將漿瘢和PASS tracks的檢測結果進行了可視化對比,如圖6所示。明顯看出,本文方法對于存在語義相似度的類別檢測具有較高的精度,證明了ACSL模塊的引入增加了算法對于容易誤檢類別位置的二元交叉熵損失函數負激活的頻率,從而間接增強了算法對語義相似度的尾類別(漿瘢)和中間類別(PASS tracks)的區(qū)分能力。

圖 6 語義相似度類別的檢測結果Fig.6 Detection results of semantic similarity classes
本文提出了一種自適應類別抑制損失的數碼印花織物缺陷檢測算法。方法基于Faster R-CNN網絡結構,通過引入ACSL模塊,自適應調整每個樣本在不同類別位置分類損失的權重系數,有效緩解了數碼印花織物缺陷檢測算法所面臨的困境,從而提高了模型對于長尾分布數碼印花織物缺陷檢測數據集的檢測能力。實驗結果表明,提出的模型在多項指標上都達到了理想的結果,能夠實現數碼印花織物缺陷的檢測任務。