雷承霖 李 敏,2,3 王 斌
(1.武漢紡織大學(xué),湖北武漢, 430200;2.湖北省服裝信息化工程技術(shù)研究中心,湖北武漢, 430200;3.紡織服裝智能化湖北省工程研究中心,湖北武漢, 430200)
在織物生產(chǎn)過(guò)程中,因設(shè)備、原料、工藝或者外部原因,織物表面會(huì)出現(xiàn)疵點(diǎn)。疵點(diǎn)的出現(xiàn)不僅會(huì)影響織物的質(zhì)量,還會(huì)影響到企業(yè)的經(jīng)濟(jì)效益。傳統(tǒng)的疵點(diǎn)檢測(cè)方法以人工檢測(cè)為主,這種方式不但效率低、精度差,而且長(zhǎng)時(shí)間的工作會(huì)對(duì)紡織工人的眼睛造成影響。為了提高生產(chǎn)效率,降低人工成本,使用自動(dòng)檢測(cè)設(shè)備來(lái)替代人眼進(jìn)行疵點(diǎn)檢測(cè)成了現(xiàn)代紡織企業(yè)的追求目標(biāo)。
近年來(lái),隨著深度學(xué)習(xí)的發(fā)展,采用深度學(xué)習(xí)技術(shù)對(duì)織物疵點(diǎn)進(jìn)行檢測(cè)的方法不斷地被提出。安萌等[1]提出了一種改進(jìn)的Faster RCNN織物疵點(diǎn)檢測(cè)方法,通過(guò)對(duì)Softmax分類器進(jìn)行正則化來(lái)減小類內(nèi)間距、增大類間間距,不斷更新網(wǎng)絡(luò)參數(shù)提高網(wǎng)絡(luò)收斂能力,在一個(gè)簡(jiǎn)單背景的數(shù)據(jù)集上有比較高的準(zhǔn)確率。JUN X等[2]將二階段目標(biāo)檢測(cè)算法拆解開來(lái),將待檢測(cè)的織物圖片切分成規(guī)則的小塊,對(duì)每個(gè)小塊使用Inception-V1[3]模型來(lái)判斷是否存在疵點(diǎn),然后再對(duì)缺陷的圖片使用LeNet-5模型進(jìn)行疵點(diǎn)類型的判斷,在TILDA數(shù)據(jù)集上取得了不錯(cuò)的結(jié)果;然而由于將圖片切分導(dǎo)致計(jì)算量倍增,即使是最輕量級(jí)的模型也需要1.6 s/張的檢測(cè)速度,達(dá)不到實(shí)時(shí)在線檢測(cè)的需求。葉舒婷等[4]在最新的目標(biāo)檢測(cè)框架Cascade RCNN的基礎(chǔ)上,采用二步聚類算法確定適用于極端形狀疵點(diǎn)檢測(cè)的預(yù)定義框最佳尺寸,改進(jìn)后的疵點(diǎn)識(shí)別準(zhǔn)確率最高可達(dá)98.4%。上述基于深度學(xué)習(xí)的疵點(diǎn)檢測(cè)方法需要大量圖像數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,并且檢測(cè)精度嚴(yán)重依賴于模型的表達(dá)能力。
鑒 于Swin Transformer[5]在 計(jì) 算 機(jī) 視 覺 領(lǐng) 域的優(yōu)秀表現(xiàn),本研究提出了一種用Swin Transformer作為主干網(wǎng)絡(luò)的織物疵點(diǎn)檢測(cè)新模型。首先,在基礎(chǔ)目標(biāo)檢測(cè)網(wǎng)絡(luò)Cascade RCNN[6]的基礎(chǔ)上,引入Swin Transformer架構(gòu)來(lái)進(jìn)行特征提??;為了在一個(gè)可擴(kuò)展空間中尋找一個(gè)更好的特征金字塔結(jié)構(gòu)來(lái)融合特征,摒棄了手動(dòng)設(shè)計(jì)的FPN模塊,引用NAS-FPN[7]進(jìn)行神經(jīng)架構(gòu)搜索;與此同時(shí),還結(jié)合多尺度訓(xùn)練、提高預(yù)設(shè)錨框的數(shù)量、Soft-NMS[8]等技術(shù)來(lái)進(jìn)一步提高疵點(diǎn)檢測(cè)精度。試驗(yàn)結(jié)果表明:在20類疵點(diǎn)的檢測(cè)結(jié)果中,該方法相比通用目標(biāo)檢測(cè)算法的mAP@0.5提高了38.1%。
基于Swin Transformer的兩階段織物疵點(diǎn)檢測(cè)算法框架如圖1所示。首先,利用Swin Transformer模塊來(lái)提取輸入圖像的特征;然后,使用NAS-FPN模塊來(lái)搜索最佳特征融合方式,以適應(yīng)不同大小的疵點(diǎn),并根據(jù)疵點(diǎn)的長(zhǎng)寬比進(jìn)行kmeans聚類來(lái)調(diào)整錨點(diǎn);最后,使用級(jí)聯(lián)區(qū)域建議網(wǎng)絡(luò),從特征圖中得到可能為疵點(diǎn)的建議框,對(duì)疵點(diǎn)進(jìn)行類別判斷與位置修正。
圖1 基于Swin Transformer的兩階段織物疵點(diǎn)檢測(cè)框架
通過(guò)分析疵點(diǎn)圖像發(fā)現(xiàn),在提花織物或者復(fù)雜背景中的疵點(diǎn)更加難以識(shí)別,這是由于通常卷積網(wǎng)絡(luò)無(wú)法學(xué)習(xí)到背景與疵點(diǎn)之間的關(guān)聯(lián),而Transformer[9]引入注意力機(jī)制,將學(xué)習(xí)到整體與部分特征之間的關(guān)聯(lián)與突出疵點(diǎn)特征,能有更好的效果。而將Transformer從自然語(yǔ)言處理領(lǐng)域引入圖像處理,要解決兩個(gè)問(wèn)題。一是數(shù)據(jù)規(guī)模。在自然語(yǔ)言處理中,單詞是基本元素,單詞會(huì)通過(guò)詞嵌入算法轉(zhuǎn)換成相同尺度;在圖像處理中,待檢測(cè)目標(biāo)的尺寸變換范圍很大。二是計(jì)算量。圖像中像素的分辨率遠(yuǎn)遠(yuǎn)大于文本段落中單詞量,Transformer計(jì)算自注意力的復(fù)雜度為圖像大小的二次方,這會(huì)增加疵點(diǎn)檢測(cè)的計(jì)算復(fù)雜度。
為了解決這兩個(gè)問(wèn)題,Swin Transformer構(gòu)建了層次化的特征映射,將自注意力計(jì)算限制為不重疊的局部窗口,以降低計(jì)算復(fù)雜度;同時(shí),Swin Transformer允許跨窗口連接,移位窗口可以解決疵點(diǎn)形狀和尺寸變化的問(wèn)題。Swin Transformer架構(gòu)圖如圖2所示。圖2中,輸入的RGB圖像先被劃分為不重疊的小塊,每個(gè)小塊的大小為4×4。它們的特征被設(shè)置為RGB三通道的連接,每個(gè)小塊的特征維度為H/4,W/4。
階段1由一個(gè)線性嵌入層與2個(gè)連續(xù)的Swin Transformer塊組成,長(zhǎng)度為48的小塊經(jīng)過(guò)線性嵌入層可以投射到任意維度(這里以C表示)。Swin Transformer塊是一個(gè)經(jīng)過(guò)修改的自注意力模塊,通過(guò)將Transformer中的標(biāo)準(zhǔn)多頭自注意力(MSA)模塊替換為基于移動(dòng)窗口的模塊(WMSA),其他層保持不變,如圖2(b)所示。在每個(gè)MSA模塊和每個(gè)MLP之前應(yīng)用一個(gè)LayerNorm(LN)層。通過(guò)階段1得到H/4×W/4個(gè)特征塊,每個(gè)特征塊的通道為C。為了產(chǎn)生分層表示,通過(guò)合并相鄰的分塊來(lái)減少特征塊的數(shù)量,patch merge層將相鄰2×2的每一組補(bǔ)丁的特征塊拼接起來(lái),這樣得到H/8×W/8個(gè)特征塊,通道為4C。經(jīng)過(guò)階段2的Swin Transformer塊,輸出通道設(shè)置為2C,得到H/8×W/8×2C的輸出,特征塊的數(shù)量變成了上階段的1/4。階段3、階段4與階段2類似,分別得到H/16×W/16×4C與H/32×W/32×8C的輸出。這樣層次化的輸出特征圖與經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)具有相同的分辨率,可以直接取代現(xiàn)有目標(biāo)檢測(cè)的骨干網(wǎng)絡(luò)。
圖2 Swin Transformer架構(gòu)圖
特征金字塔網(wǎng)絡(luò)(FPN)[10]可以解決多尺度目標(biāo)特征表示問(wèn)題。如圖3所示,在FPN中,不同層次的特征融合方式是手動(dòng)指定的,不同階段產(chǎn)生的特征圖通過(guò)上采樣的方式融合到一起。FPN通過(guò)將下采樣與底層特征融合,可以生成高分辨率和強(qiáng)語(yǔ)義的特征表示。
圖3 FPN的特征融合方式
盡管FPN簡(jiǎn)單而有效,但FPN的融合方式是固定不變的,很難找到不同層級(jí)之間最好的連接方式。為此,借鑒神經(jīng)架構(gòu)搜索算法[11]的優(yōu)勢(shì),采用NAS-FPN來(lái)提高小疵點(diǎn)的檢測(cè)精度。
NAS-FPN由多個(gè)merging cells構(gòu)成,它是NAS-FPN的基本模塊,表示為任意兩個(gè)不同尺度特征的融合,輸出為一個(gè)給定通道的特征。構(gòu)建merging cells的方式如圖4所示。
圖4 構(gòu)建merging cells的4個(gè)步驟
如何構(gòu)建合并單元的決定由控制器RNN進(jìn)行。RNN控制器選擇任意兩個(gè)候選特征層和二進(jìn)制操作以將它們組合到新的特征層中,其中所有特征層可能具有不同的分辨率。每個(gè)合并單元具有不同的Softmax。分類器控制的4個(gè)預(yù)測(cè)步驟。步驟1,選擇一個(gè)候選特征層hi;步驟2,選擇另一個(gè)特征層hj;步驟3,選擇輸出層的分辨率;步驟4,對(duì)hi與hj進(jìn)行融合操作,并使用步驟3選取的分辨率進(jìn)行輸出。
通過(guò)Swin Transformer提取特征與NASFPN進(jìn)行特征融合之后,將通過(guò)候選區(qū)域生成網(wǎng)絡(luò)(RPN)生成可能存在疵點(diǎn)的候選框,默認(rèn)的候選框有3種長(zhǎng)寬比(1∶1,1∶2,2∶1)。然而與通用目標(biāo)檢測(cè)不同的是,疵點(diǎn)存在極端的長(zhǎng)寬分布,需要根據(jù)疵點(diǎn)的特性來(lái)進(jìn)行調(diào)整,一般是根據(jù)經(jīng)驗(yàn)人工調(diào)整長(zhǎng)寬比,然而經(jīng)過(guò)試驗(yàn)發(fā)現(xiàn),利用kmeans對(duì)疵點(diǎn)數(shù)據(jù)集長(zhǎng)寬比進(jìn)行聚類分析有更好的效果。
目前統(tǒng)計(jì)的疵點(diǎn)有結(jié)頭、破洞、三絲、粗維、百腳等20種類型,圖5顯示了疵點(diǎn)的長(zhǎng)寬分布情況。
圖5 疵點(diǎn)長(zhǎng)寬比分布圖
通過(guò)對(duì)疵點(diǎn)的長(zhǎng)寬比進(jìn)行統(tǒng)計(jì),采用kmeans的方式對(duì)預(yù)設(shè)框的長(zhǎng)寬比進(jìn)行計(jì)算。圖6顯示了使用k-means方法計(jì)算之后的長(zhǎng)寬比檢測(cè)情況??梢钥吹?,使用手動(dòng)設(shè)置的預(yù)設(shè)框,置信度較低且發(fā)生了漏檢,而使用k-means聚類分析得到的預(yù)設(shè)框?qū)τ诖命c(diǎn)的范圍判斷更加準(zhǔn)確且置信度更好,沒有發(fā)生漏檢。
圖6 長(zhǎng)寬比檢測(cè)情況
試驗(yàn)織物疵點(diǎn)圖片數(shù)據(jù)集采用了阿里天池2019廣東工業(yè)智造創(chuàng)新大賽布匹瑕疵檢測(cè)初賽數(shù)據(jù)集,有6 899張織物圖像,疵點(diǎn)總數(shù)有9 523個(gè),疵點(diǎn)類型為20個(gè)類別,圖像尺寸為2 446 pixel×1 000 pixel,疵點(diǎn)具體情況見表1。
表1 各類疵點(diǎn)數(shù)量
所有試驗(yàn)均在兩個(gè)GTX 2080Ti GPU進(jìn)行訓(xùn)練和測(cè)試。訓(xùn)練時(shí),將圖片按比例縮放到1 434 pixel×593 pixel,初始學(xué)習(xí)率為0.001,在第27輪次和第33輪次進(jìn)行衰減。共訓(xùn)練36個(gè)輪次。基準(zhǔn)模型Cascade RCNN使用Resnet50作為backbone,使用標(biāo)準(zhǔn)FPN作為特征融合網(wǎng)絡(luò),Cascade頭設(shè)置閾值為0.5、0.6和0.7;使用的Swin Transformer每個(gè)階段的swin Transformer塊堆疊層數(shù)分別為2,2,6,2,經(jīng)過(guò)階段1映射后的維度C=96;在NAS-FPN,堆疊次數(shù)設(shè)置為7,anchor的初始設(shè)置?。?.5,1.0,2.0]。
選擇平均精度均值mAP@0.5∶0.95作為織物疵點(diǎn)數(shù)據(jù)集的評(píng)估標(biāo)準(zhǔn),mAP@0.5∶0.95通常用于目標(biāo)檢測(cè),計(jì)算IoU閾值從0.5到0.95,步長(zhǎng)為0.05的mAP,計(jì)算公式如式(1)所示。
式中:n為檢測(cè)的類別數(shù)量;APi為第i類的AP,即平均精度,AP為PR曲線的面積,其計(jì)算公式如式(2)所示。
式中:N為PR曲線的取值點(diǎn)數(shù);P(k)為對(duì)應(yīng)點(diǎn)的精準(zhǔn)率,其計(jì)算公式如式(3)所示;R(k)為對(duì)應(yīng)點(diǎn)的估計(jì)召回率,其計(jì)算公式如式(4)所示。
式中:TP為檢測(cè)正確的數(shù)量;FP為檢測(cè)錯(cuò)誤的數(shù)量;FN為未被檢測(cè)出的正確樣本數(shù)量。但考慮到有時(shí)織物疵點(diǎn)位置的精確性沒有那么極端,可以參考IoU為0.5時(shí)的平均精度均值,即mAP@0.5。
表2是與多種檢測(cè)模型的對(duì)比試驗(yàn)。從表2可以看出,基于Swin Transformer的兩階段檢測(cè)模型擁有最高的mAP@0.5∶0.95,但由于計(jì)算復(fù)雜度原因,檢測(cè)速度有所下降,這將是下一步需要研究的目標(biāo)。
表2 檢測(cè)模型試驗(yàn)對(duì)比結(jié)果
表3詳細(xì)對(duì)比了各類織物疵點(diǎn)檢測(cè)效果的提升。可以看出,尺寸通常較小的疵點(diǎn)與極端長(zhǎng)寬比疵點(diǎn)AP值提升明顯。例如星跳、跳花的AP值從0.139提升到0.433,粗經(jīng)的AP值從0.067提升到0.571,死皺、云織、雙緯等的AP值從0.024提升到0.304。這歸功于更好的主干網(wǎng)絡(luò)和anchor的合理設(shè)置。其余還有磨痕、松經(jīng)、色差檔等疵點(diǎn)的檢測(cè)效果都有較大的提升。
表3 各類疵點(diǎn)檢測(cè)AP值的對(duì)比結(jié)果
為得出使用k-means聚類進(jìn)行預(yù)設(shè)框分析的具體效果,試驗(yàn)則單獨(dú)分析了不同k-means參數(shù)對(duì)檢測(cè)效果的影響,其中k值表示將長(zhǎng)寬比分為k類,利用距離作為相似性評(píng)價(jià)指標(biāo)進(jìn)行聚類,預(yù)設(shè)長(zhǎng)寬比是指在檢測(cè)階段設(shè)置的檢測(cè)框的長(zhǎng)度/寬度,通過(guò)對(duì)數(shù)據(jù)集預(yù)先進(jìn)行分析處理,加入先驗(yàn)的檢測(cè)框長(zhǎng)寬比。試驗(yàn)結(jié)果顯示,人工指定的3類預(yù)設(shè)長(zhǎng)寬比(0.5,1.0,2.0)和9類(0.02,0.05,0.1,0.5,1.0,2.0,10,20,50)預(yù) 設(shè) 長(zhǎng) 寬 比,mAP@0.5∶0.95分別是0.223和0.267;而通過(guò)k-means聚類得到的4類(23.564 607 95,0.585 341 62,12.111 156 76,5.435 642 73)長(zhǎng)寬比 和9類(0.244 938 91,11.857 211 75,5.361 932 15,22.469 742 56,16.412 395 48,2.935 330 51,36.670 708 05,8.372 126 77,1.040 044 59)長(zhǎng)寬比,mAP@0.5∶0.95分別是0.293和0.304??梢钥闯?,當(dāng)使用k-means聚類且k=9時(shí)候效果最好。
表4設(shè)計(jì)了針對(duì)改進(jìn)的消融試驗(yàn)??梢钥吹?,使用標(biāo)準(zhǔn)的Cascade RCNN時(shí),mAP@0.5∶0.95為0.220,當(dāng)將特征提取網(wǎng)絡(luò)切換成Swin Transformer之后,mAP@0.5∶0.95提升到0.231;然后再將標(biāo)準(zhǔn)的FPN網(wǎng)絡(luò)替換成NAS-FPN,mAP@0.5∶0.95提升到0.237,最后在訓(xùn)練時(shí)添加更多的anchor預(yù)設(shè)比,來(lái)提高極端長(zhǎng)寬比疵點(diǎn)的檢測(cè)精度,最終將mAP@0.5∶0.95提升到0.304。結(jié)果表明本研究模型是有效的。
表4 消融試驗(yàn)
圖7是本研究模型對(duì)織物圖像進(jìn)行疵點(diǎn)檢測(cè)的結(jié)果??梢钥闯觯诖命c(diǎn)較大的情況下,如色差檔和水漬,Cascade RCNN因?yàn)槭褂玫木矸e神經(jīng)網(wǎng)絡(luò)受限于感受野大小而產(chǎn)生了漏檢,采用基于Swin Transformer的兩階段檢測(cè)模型卻可以很好地檢測(cè)到;還有松經(jīng)和軋痕,因?yàn)槌始?xì)長(zhǎng)條狀,利用初始的預(yù)設(shè)長(zhǎng)寬比無(wú)法很好地檢測(cè)到,而利用k-means方法計(jì)算得到的預(yù)設(shè)長(zhǎng)寬比卻可以檢測(cè)到。但是兩種方法對(duì)于極小的目標(biāo),如三絲,則都產(chǎn)生了漏檢和錯(cuò)檢。
圖7 部分疵點(diǎn)檢測(cè)結(jié)果對(duì)比
為解決人工疵點(diǎn)檢測(cè)效率低、精度差的問(wèn)題,本研究基于Cascade RCNN進(jìn)行改進(jìn),針對(duì)小疵點(diǎn)、長(zhǎng)寬比極端疵點(diǎn)和大疵點(diǎn)引入了Swin Transformer代替卷積神經(jīng)網(wǎng)絡(luò),并通過(guò)NAS-FPN得到最佳的特征融合方式,加上使用k-means計(jì)算得到的預(yù)設(shè)長(zhǎng)寬比,最終得到的mAP@0.5比Cascade RCNN模型結(jié)果提高了31.8%。結(jié)果證明,本研究提出的算法能更好地識(shí)別各類疵點(diǎn)。
不過(guò)由于計(jì)算量的增加,本研究模型相較于Cascade RCNN模型,檢測(cè)速度降低了18.5%,如何提高計(jì)算速度是下一步關(guān)注的目標(biāo)。另外,本研究模型總體上的精度仍然有很大的提升空間,我們會(huì)繼續(xù)探索深度學(xué)習(xí)在織物疵點(diǎn)檢測(cè)上的應(yīng)用,以促進(jìn)織物疵點(diǎn)檢測(cè)的進(jìn)一步發(fā)展。