蘇澤斌,武靜威,李鵬飛
(西安工程大學(xué) 電子信息學(xué)院/陜西省人工智能聯(lián)合實(shí)驗(yàn)室,陜西 西安 710048)
數(shù)碼印花機(jī)目前在紡織行業(yè)已經(jīng)得到越來越廣泛的應(yīng)用,使印花行業(yè)更加環(huán)保、科技,進(jìn)一步提升了紡織品的附加值[1]。但是,針對(duì)印花織物的成品檢測(cè)主要還是由人工完成。依靠人工檢測(cè)不僅效率低,還存在極大的漏檢、誤檢率,而且數(shù)碼印花產(chǎn)品色澤豐富,種類繁多,人工檢測(cè)已經(jīng)不能完全適應(yīng)印花產(chǎn)品的質(zhì)量檢測(cè)。數(shù)碼印花過程中因噴孔堵塞、導(dǎo)帶黏度下降、電機(jī)步進(jìn)偏差、蒸箱漏水等問題,使產(chǎn)品出現(xiàn)PASS track、PASS tracks、漏墨、留白、重影、絨毛、漏水以及漿瘢等缺陷,生產(chǎn)成本大幅提升。在數(shù)碼印花過程中,織物缺陷檢測(cè)有利于監(jiān)測(cè)印花機(jī)異常工況,減少缺陷產(chǎn)品的產(chǎn)生,提高生產(chǎn)效率。
隨著機(jī)器視覺技術(shù)的快速發(fā)展,許多研究人員將其應(yīng)用于紡織品缺陷檢測(cè)中[2-4],主要包括基于統(tǒng)計(jì)[5-8]、基于頻譜[9-11]和基于模型的方法[12-13]。傳統(tǒng)的圖像處理方法在白坯布以及背景單一的純色織物上具有較好的檢測(cè)結(jié)果,但是對(duì)于數(shù)碼印花圖像來說,其本身圖案背景豐富多樣,缺陷類型難以判別,上述方法已經(jīng)難以完全滿足實(shí)際檢測(cè)需求。
近年來,深度學(xué)習(xí)已經(jīng)廣泛應(yīng)用于工業(yè)檢測(cè)領(lǐng)域[14-16],在織物缺陷檢測(cè)領(lǐng)域也已經(jīng)開展了大量的研究。陳雪陽等提出了一種融合主結(jié)構(gòu)提取和多尺度線性濾波的疵點(diǎn)檢測(cè)方法,可檢測(cè)多種織物疵點(diǎn),且檢測(cè)精度較高[17];陳夢(mèng)琦等提出一種融合注意力機(jī)制的Faster R-CNN織物疵點(diǎn)檢測(cè)算法,提高了檢測(cè)模型的魯棒性和準(zhǔn)確率[18]。JING等提出了基于Mobile-Unet的織物缺陷檢測(cè)模型,利用輕量級(jí)網(wǎng)絡(luò)MobileNetv2作為Unet網(wǎng)絡(luò)的編碼器,降低了模型的參數(shù)量和計(jì)算量,在保證織物缺陷檢測(cè)精度的前提下,提高了織物缺陷檢測(cè)的效率[19];LIU等結(jié)合分割網(wǎng)絡(luò)和生成對(duì)抗網(wǎng)絡(luò)(GAN),使模型擁有適應(yīng)未知缺陷類型的能力[20];PENG等提出了先驗(yàn)錨卷積神經(jīng)網(wǎng)絡(luò)(PRAN-Net),提高了織物缺陷的定位精度[21];ZHU等提出了一種改進(jìn)的 DenseNet 模型,以更好地適應(yīng)資源受限的邊緣計(jì)算場(chǎng)景[22];張宏偉等提出了一種基于生成對(duì)抗網(wǎng)絡(luò)的色織物缺陷檢測(cè)方法,通過重構(gòu)圖像與原圖之間的殘差分析實(shí)現(xiàn)色織物的缺陷區(qū)域檢測(cè)與定位[23]。上述方法在常規(guī)織物缺陷數(shù)據(jù)集上取得了高準(zhǔn)確率的檢測(cè)精度,而在實(shí)際數(shù)碼印花中由于設(shè)備的影響使得獲取的數(shù)據(jù)存在嚴(yán)重的類別不均衡,導(dǎo)致現(xiàn)有檢測(cè)模型精度難以進(jìn)一步提高。
本文采用了在缺陷檢測(cè)領(lǐng)域具有高質(zhì)量表現(xiàn)的Faster R-CNN[24]作為檢測(cè)網(wǎng)絡(luò)框架,并通過引入ACSL[25]模塊,自適應(yīng)地調(diào)整每個(gè)樣本在不同類別位置分類損失的權(quán)重系數(shù),避免頭類別(出現(xiàn)頻率較高的類別)對(duì)尾類別(出現(xiàn)頻率較低的類別)的支配作用,進(jìn)而提高算法的檢測(cè)精度。
Faster R-CNN作為兩階段檢測(cè)器,其模型的通用性和魯棒性得到了研究人員的廣泛好評(píng)。本文選擇Faster R-CNN作為檢測(cè)的基礎(chǔ)框架,具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖 1 Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of Faster R-CNN
從圖1可以看出,輸入的缺陷圖像經(jīng)過骨干網(wǎng)絡(luò)(backbone)進(jìn)行特征提取,得到下采樣比例依次為4、8、16和32特征映射圖,編號(hào)為C2、C3、C4和C5;將它們輸入到特征金字塔網(wǎng)絡(luò)(feature pyramid network, FPN)進(jìn)行多尺度特征融合,使得底層特征映射圖擁有頂層特征映射圖的強(qiáng)語義信息,并得到下采樣比例依次為4、8、16、32和64的特征映射圖,編號(hào)為P2、P3、P4、P5和P6;接著,將它們輸入到區(qū)域生成網(wǎng)絡(luò)(region proposal network, RPN),為生成高質(zhì)量的proposals提供注意力(其中,RPN基于先驗(yàn)的尺寸和比率,在每一個(gè)滑動(dòng)窗口中平鋪k個(gè)anchors);然后,利用Intersection over Union(IoU)閾值和隨機(jī)采樣的方式篩選出高質(zhì)量的anchors參與訓(xùn)練,并將RPN生成的proposals映射到P2、P3、P4和P5特征映射層;最后,利用RoI Align,將proposals映射到特征映射圖并固定區(qū)域7×7,輸入到全連接網(wǎng)絡(luò),進(jìn)行分類和回歸任務(wù)。proposal的特征提取層計(jì)算方法可表示為
(1)
式中:s表示proposal的面積;smin表示proposal劃分超參數(shù)。
本文提出的改進(jìn)模型在訓(xùn)練過程中不斷平衡對(duì)頭類別(出現(xiàn)頻率較高的類別)、中間類別(出現(xiàn)頻率中等的類別)和尾類別(出現(xiàn)頻率較低的類別)的關(guān)注,提高了算法的檢測(cè)精度。在Faster R-CNN網(wǎng)絡(luò)引入的自適應(yīng)抑制損失結(jié)構(gòu),如圖2所示。
圖 2 改進(jìn)后的損失結(jié)構(gòu)Fig.2 Improved loss structure
圖2中,F(xiàn)aster R-CNN為每個(gè)proposal分配好標(biāo)簽信息的基礎(chǔ)之上,通過引入置信度閾值ξ、頭類別位置的采樣抑制比率hr、中間類別位置的采樣抑制比率mr和尾類別位置的采樣抑制比率tr,自適應(yīng)地調(diào)整每個(gè)proposal在不同類別位置二元交叉熵?fù)p失函數(shù)的權(quán)重系數(shù),緩解模型對(duì)尾類別位置二元交叉熵?fù)p失函數(shù)長(zhǎng)期負(fù)激活的現(xiàn)狀并且提高模型對(duì)頭類別位置二元交叉熵?fù)p失函數(shù)負(fù)激活的比例,最終使得不同類別位置二元交叉熵?fù)p失函數(shù)正激活和負(fù)激活的數(shù)量差異得到緩和,提高模型對(duì)類別樣本分布不均衡數(shù)據(jù)集的泛化能力。
設(shè)二元交叉熵?fù)p失函數(shù)在目標(biāo)檢測(cè)任務(wù)中,頭類別x的proposalY,one-hot編碼是Z,則zx=1并且zi=0(i≠x),通過sigmoid 函數(shù)可獲得其類別位置i的預(yù)測(cè)置信度pi,sigmoid函數(shù)可表示為
(2)
式中:si表示網(wǎng)絡(luò)對(duì)于類別位置i的輸出邏輯。二元交叉熵?fù)p失函數(shù)可表示為
(3)
(4)
式中:C為類別總數(shù);i=0對(duì)應(yīng)背景類別。
頭類別x的proposalY在其他類別位置(i≠x)二元交叉熵?fù)p失函數(shù)的負(fù)激活將迫使算法降低其預(yù)測(cè)置信度pi,在一定程度上有助于算法的訓(xùn)練;然而,由于頭類別、中間類別和尾類別樣本數(shù)量的嚴(yán)重失衡,往往導(dǎo)致尾類別位置的二元交叉熵?fù)p失函數(shù)長(zhǎng)期處于負(fù)激活狀態(tài),正激活數(shù)量和負(fù)激活數(shù)量嚴(yán)重失衡,最終造成算法對(duì)尾類別的檢測(cè)效果不佳。
ACSL模塊的提出源于以下思考:1)由于頭類別和尾類別樣本數(shù)量的顯著差異,導(dǎo)致尾類別的proposals在頭類別位置的預(yù)測(cè)置信度偏高,所以應(yīng)該對(duì)proposals容易誤檢類別位置的二元交叉熵?fù)p失函數(shù)進(jìn)行負(fù)激活,使得算法保持判別不同缺陷類別能力,同時(shí)降低了尾類別位置二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,以此維系尾類別位置二元交叉熵?fù)p失函數(shù)正激活和負(fù)激活的數(shù)量平衡,進(jìn)而緩解尾類別位置二元交叉熵?fù)p失函數(shù)長(zhǎng)期負(fù)激活的現(xiàn)狀;2)由于頭類別和尾類別樣本數(shù)量的顯著差異,應(yīng)當(dāng)在proposals為背景類別時(shí),根據(jù)不同缺陷類別樣本數(shù)量的分布情況,對(duì)頭類別、中間類別和尾類別位置二元交叉熵?fù)p失函數(shù)負(fù)激活的數(shù)量進(jìn)行差異調(diào)整,即增加模型對(duì)于頭類別二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,適當(dāng)減少模型對(duì)于尾類別二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,使得不同缺陷類別位置二元交叉熵?fù)p失函數(shù)正激活和負(fù)激活的數(shù)量差異得到緩和,進(jìn)而提高模型對(duì)長(zhǎng)尾分布數(shù)據(jù)集的泛化能力。
(5)
其中,
(6)
合適的置信度閾值ξ可使模型保持缺陷判別能力,同時(shí)降低尾類別位置二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,維系了尾類別位置二元交叉熵?fù)p失函數(shù)正激活和負(fù)激活的數(shù)量平衡,提高了模型的檢測(cè)精度。當(dāng)proposals為背景類別時(shí),ACSL模塊利用不同缺陷類別樣本的分布情況,設(shè)定頭類別、中間類別、尾類別位置二元交叉熵?fù)p失函數(shù)的采樣抑制比率分別為hr、mr、tr,并分別對(duì)背景類別proposals進(jìn)行采樣,即增加模型對(duì)于頭類別二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,適當(dāng)減少并緩解模型對(duì)尾類別二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,以及長(zhǎng)期負(fù)激活現(xiàn)象,提高頭類別位置的二元交叉熵?fù)p失函數(shù)負(fù)激活的比例,使得不同缺陷類別位置二元交叉熵?fù)p失函數(shù)正激活和負(fù)激活的數(shù)量差異得到緩和,提高模型的檢測(cè)精度。
數(shù)碼印花的過程中會(huì)存在噴孔堵塞、導(dǎo)帶黏度下降、電機(jī)步進(jìn)偏差、后處理蒸箱漏水等工況,同時(shí)還存在坯布本身質(zhì)量問題。以上情況會(huì)導(dǎo)致印花產(chǎn)品出現(xiàn)PASS track、PASS tracks、漏墨、留白、重影、絨毛、漏水以及漿瘢等缺陷,如圖3所示。
(a) PASS track (b) PASS tracks (c) 漏墨 (d) 留白
(e) 重影 (f) 絨毛 (g) 漏水 (h) 漿瘢圖 3 數(shù)碼印花織物缺陷樣例Fig.3 Examples of digital printing fabric defects
實(shí)驗(yàn)數(shù)據(jù)集來自于自建的數(shù)碼印花織物缺陷檢測(cè)數(shù)據(jù)集。數(shù)據(jù)集包括10 320幅印花圖像,在實(shí)驗(yàn)過程中,將每類缺陷圖像分為3部分,即80%作為訓(xùn)練集,10% 作為驗(yàn)證集,10%作為測(cè)試集。
根據(jù)不同缺陷類別樣本參與模型訓(xùn)練的數(shù)量,可以發(fā)現(xiàn)此數(shù)據(jù)集存在類別樣本分布不均衡的特點(diǎn),具體類別樣本分布如圖4所示。
圖 4 類別樣本分布Fig.4 Distribution of class samples
類別樣本分布不均衡會(huì)導(dǎo)致以往先進(jìn)的目標(biāo)檢測(cè)算法在訓(xùn)練過程中不斷增強(qiáng)對(duì)頭類別(PASS track、漏墨和絨毛)的學(xué)習(xí),而不是中間類別(PASS tracks、留白、重影和漏水)和尾類別(漿瘢),最終造成算法檢測(cè)精度不理想。
實(shí)驗(yàn)采用的硬件配置為Intel E5-2680v3 處理器(2.5 GHz)、128 GiB內(nèi)存和 1 個(gè) NVIDIA GeForce 2080 Ti。除此之外,骨干網(wǎng)絡(luò)的初始化權(quán)重從COCO2017數(shù)據(jù)集上的訓(xùn)練模型遷移而來,所有其他權(quán)重通過“Xavier”范例進(jìn)行初始化。在微調(diào)過程中,將max-epoch固定為30,并使用SGD作為優(yōu)化器,將其基本學(xué)習(xí)率設(shè)置為0.001,權(quán)重衰減設(shè)置為 0.000 1,動(dòng)量常數(shù)設(shè)置為0.9,批量大小設(shè)置為 4。對(duì)于所有實(shí)驗(yàn), 采用COCO指標(biāo)中的平均精度(AP、AP50、AP75、APS、 APM、APL) 來評(píng)估模型檢測(cè)性能。
為了客觀評(píng)價(jià)模型的檢測(cè)性能,采用2種不同的骨干網(wǎng)絡(luò)(ResNet50和ResNet101)和相同的實(shí)驗(yàn)條件,性能比較結(jié)果如表1所示。
表1 與其他模型的性能比較Tab.1 Performance comparison with other models
表1中,指標(biāo)最優(yōu)值以黑體顯示。可以看出,與其他先進(jìn)模型相比,選用骨干網(wǎng)絡(luò)為ResNet50時(shí),本文提出的模型在最綜合反應(yīng)模型整體檢測(cè)精度的AP指標(biāo)上比最優(yōu)模型提升了0.01,在AP50、AP75、APS、APM、APL指標(biāo)上具有最高的檢測(cè)精度;選用骨干網(wǎng)絡(luò)為ResNet101時(shí),與其他先進(jìn)模型相比,本文提出的模型在AP、AP50、AP75指標(biāo)上均提高了0.01,并且在APS、APM、APL指標(biāo)上持平,說明本文提出的模型有助于緩解由數(shù)碼印花織物缺陷檢測(cè)數(shù)據(jù)集類別樣本分布不均衡引起模型檢測(cè)精度不理想的狀況。
在驗(yàn)證ACSL模塊作用時(shí),引入了2組超參數(shù)ξ和(hr、mr、tr),其中ξ為置信度閾值,hr、mr、tr分別為頭類別、中間類別和尾類別位置二元交叉熵?fù)p失函數(shù)的采樣抑制比率。消融實(shí)驗(yàn)中,先固定超參數(shù)(hr、mr、tr)再來尋找最優(yōu)的超參數(shù)ξ;然后,固定最優(yōu)的超參數(shù)ξ,驗(yàn)證超參數(shù)(hr、mr、tr)對(duì)于模型檢測(cè)精度增益的作用。
為了探究非背景類別的proposals在各個(gè)類別位置二元交叉熵?fù)p失函數(shù)負(fù)激活對(duì)于模型精度增益的作用,需要確定一個(gè)最優(yōu)的超參數(shù)ξ。為了驗(yàn)證超參數(shù)ξ對(duì)模型檢測(cè)精度的影響,通過前期的分析,本文固定超參數(shù)(hr=1,mr=1,tr=1),此時(shí)可看作ACSL模塊只作用于非背景類別的proposals,超參數(shù)ξ采用6個(gè)備選數(shù)值(0、0.1、0.3、0.5、0.7、0.9)。超參數(shù)ξ的性能分析結(jié)果如表2所示。
表2 超參數(shù)ξ的性能分析Tab.2 Performance analysis of hyperparameterξ
表2中,當(dāng)ξ為0時(shí)是基本的Faster R-CNN檢測(cè)模型;當(dāng)ξ由0變化為0.5,模型的檢測(cè)精度增加,且在ξ=0.5時(shí),模型達(dá)到了最佳的檢測(cè)精度;當(dāng)ξ由0.5變化為0.9時(shí),模型的檢測(cè)精度不斷下降。可以看出合適的超參數(shù)ξ能夠緩解模型在訓(xùn)練時(shí)期對(duì)尾類別位置二元交叉熵?fù)p失函數(shù)過度負(fù)激活的問題,并相對(duì)提高了模型對(duì)于容易誤檢類別位置二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,進(jìn)而提高了模型的檢測(cè)精度。
為了驗(yàn)證超參數(shù)(hr、mr、tr)對(duì)模型檢測(cè)精度的影響,固定ξ=0.5,根據(jù)前期的實(shí)驗(yàn)結(jié)果分析,采用3組備選數(shù)值:(hr=1,mr=1,tr=1),(hr=1,mr=2/3,tr=1/3),(hr=1,mr=0.1,tr=0.01),其性能分析結(jié)果如表3所示。
表3 超參數(shù)(hr,mr,tr)的性能分析Tab.3 Performance analysis of hyperparameter (hr,mr,tr)
從表3可以看出,超參數(shù)(hr、mr、tr)在調(diào)整背景類別proposals在其他類別位置二元交叉熵?fù)p失函數(shù)負(fù)激活數(shù)量時(shí)是有效的,可促進(jìn)不同類別proposals在其類別位置二元交叉熵?fù)p失函數(shù)正激活和負(fù)激活的數(shù)量平衡,從而提高了模型的檢測(cè)精度。
根據(jù)消融實(shí)驗(yàn)結(jié)果,本文模型中選取超參數(shù)分別為ξ=0.5,hr=1,mr=2/3,tr=1/3。
改進(jìn)的Faster R-CNN方法在數(shù)碼印花織物缺陷檢測(cè)的結(jié)果如圖5所示。
圖 5 所有缺陷類別的檢測(cè)結(jié)果樣例Fig.5 Detection samples of all defect classes
從圖5可以看出,此方法能夠?qū)y(cè)試集中的所有缺陷類別完成高精度的檢測(cè),并適應(yīng)于不同尺寸的待檢測(cè)目標(biāo)。經(jīng)分析,該方法性能的提升源于基于類別感知策略的ACSL模塊通過在模型訓(xùn)練階段不斷平衡proposals在不同類別位置二元交叉熵?fù)p失函數(shù)正激活和負(fù)激活的數(shù)量,有效緩解了頭類別樣本對(duì)其他類別樣本的支配作用。
此外,為了驗(yàn)證ACSL模塊增強(qiáng)了算法對(duì)語義相似度的尾類別(漿瘢)和中間類別(PASS tracks)的區(qū)分能力,本文將漿瘢和PASS tracks的檢測(cè)結(jié)果進(jìn)行了可視化對(duì)比,如圖6所示。明顯看出,本文方法對(duì)于存在語義相似度的類別檢測(cè)具有較高的精度,證明了ACSL模塊的引入增加了算法對(duì)于容易誤檢類別位置的二元交叉熵?fù)p失函數(shù)負(fù)激活的頻率,從而間接增強(qiáng)了算法對(duì)語義相似度的尾類別(漿瘢)和中間類別(PASS tracks)的區(qū)分能力。
圖 6 語義相似度類別的檢測(cè)結(jié)果Fig.6 Detection results of semantic similarity classes
本文提出了一種自適應(yīng)類別抑制損失的數(shù)碼印花織物缺陷檢測(cè)算法。方法基于Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu),通過引入ACSL模塊,自適應(yīng)調(diào)整每個(gè)樣本在不同類別位置分類損失的權(quán)重系數(shù),有效緩解了數(shù)碼印花織物缺陷檢測(cè)算法所面臨的困境,從而提高了模型對(duì)于長(zhǎng)尾分布數(shù)碼印花織物缺陷檢測(cè)數(shù)據(jù)集的檢測(cè)能力。實(shí)驗(yàn)結(jié)果表明,提出的模型在多項(xiàng)指標(biāo)上都達(dá)到了理想的結(jié)果,能夠?qū)崿F(xiàn)數(shù)碼印花織物缺陷的檢測(cè)任務(wù)。