胡越杰, 蔣高明
(江南大學 a.紡織科學與工程學院; b.針織技術教育部工程研究中心, 江蘇 無錫 214122)
在紡織工業中,疵點的檢測與分類至關重要,可以為紡織生產的質量控制提供指導性建議。紡織企業常用的檢測方法是人工檢測,即檢測人員按個人經驗或評分標準對織物做出等級評定[1]。這種檢測方式存在眾所周知的局限性,如檢測人員注意力易分散、易疲勞及易受主觀因素影響,據調查其準確率僅為60%~70%[2]。因此,自動化的機器視覺檢測方法已成為當前研究的熱點,但是關于針織物疵點的檢測與分類比其他類織物更少涉及,這主要是由于針織物本身良好的彈性,及其較為松散的線圈結構,容易導致下機后織物無法在尺寸上保持穩定,因而使得疵點信息相對模糊。
傳統的織物疵點檢測方法可以總結為統計法[3]、模型法[4]和頻譜法[5-6]。這些方法主要依賴人工設計的特征提取器對織物特征進行提取,需要具備專業的知識并且調參過程復雜,因此存在一定的局限性。近年來隨著人工智能技術的發展,深度學習因其能夠自適應、智能地學習關鍵信息,被廣泛應用于織物疵點的檢測與分類任務中。Xie等[7]基于全卷積通道注意力和自底向上路徑增強設計了一種改進的頭部結構(Head),有效地提高了缺陷定位精度。Wen等[8]使用PE算法(Patches extractor)提取缺陷圖像的片段,再通過卷積神經網絡(CNN)來預測片段的類別和圖像的最終類別。在文獻[9]中同樣遵循二階段思想,以Inception-V1模型預估局部區域疵點是否存在,最終使用LeNet-5模型識別織物中的缺陷類型。Biradar等[10]設計三層結構的CNN,在TILDA數據庫上的分類精度高達99.06%,但是該模型無法提供疵點的位置信息。此外,YOLO系列的目標檢測模型具備端到端(End-to-end)的特性,并且兼顧了檢測精度,因此不乏其應用于織物疵點檢測的場景。例如參照YOLOv5提出的師生結構(Teacher-student)[11],以及根據YOLOv4設計的實時檢測系統[12]。Liu等[13]提出了一種基于生成對抗網絡(GAN)的織物缺陷檢測框架,不僅實現了像素級別的分割還能夠自動適應不同的織物紋理。與之類似,文獻[14]中設計的DLSE網絡,引入了注意力機制以提高對陌生樣本的適應性。值得一提的是,上述兩種模型似乎更適合顯示疵點的形狀,然而這種分割過程將消耗大量的計算資源,如何設計合理的結構以滿足工業檢測的實時性需求是該領域面臨的巨大挑戰。另外,Wang等[15]搭建的監督神經網絡模型只需要少量的無缺陷樣本進行訓練,在一定程度上緩解了數據集不足的問題。
以上織物缺陷檢測和分類的深度學習框架都是基于CNN模型。CNN提取局部有效信息效果顯著,但缺乏整合全局信息的能力。Transformer可以彌補這一缺陷[16],其獨特的自注意機制專注于建立遠程元素之間的聯系,使每個像素包含全局特征。Alexey等[17]提出ViT網絡模型,將Transformer從自然語言處理應用到圖像識別任務。ViT直接分割輸入圖像成16×16的片段(Patch)并輸入Transformer,該模型只能處理分類任務。Zheng等[18]提出一種名為SETR的網絡,該網絡將Transformer的輸出從向量重塑為特征圖,隨后上采樣、反卷積解碼得到分割結果。雖然基于Transformer的算法極大地提高了目標檢測的效果,但在計算機視覺領域仍然存在嚴重問題:1) 向量運算需要涉及所有像素,對大尺寸圖像操作會非常耗時并且占據計算資源。2) 忽略了文本信號和視覺信號的差異,沒有與視覺信號本身的特點結合。
針對上述問題Swin Transformer(ST)模型被提出[19],ST采用層級結構設計,在各個窗口區域執行注意力計算。ST開創性地引入卷積操作的局部性和層次性,同時大幅降低計算復雜度,使其與輸入圖像的尺寸呈線性關系。作為一個通用的視覺網絡,ST在圖像分類、目標檢測[20]和語義分割[21-22]等任務中表現出SOTA(State-of-the-art)的性能。然而處理針織物疵點檢測任務時,ST對上下文信息編碼的能力有限,需要進一步改善。此外,現有的目標檢測網絡大多通過深度監督處理不同層次的特征圖,或者只使用最終的抽象特征,導致無法充分整合多尺度特征信息,影響檢測精度。
因此,本文提出了一種多尺度自適應網絡模型SwinBN(Swin transformer and bidirectional feature pyramid network),該模型以改進的BiFPN網絡為頸部結構,有效地區分各個特征層對于輸出的重要性,實現不同尺度之間的加權特征融合。考慮到CNN提取全局信息能力弱及針織物疵點的形狀特點,模型的骨干網絡DCSW(Deformable convolution and swin transformer)將可變形卷積和ST各自的優勢相結合,有助于提取局部特征和整合全局信息。由于現有的圖像數據不足,本實驗在紡織工廠現場采集圖像,人工標注并創建了針織物疵點圖像數據庫。真實工業數據集的實驗結果表明,SwinBN在針織物疵點檢測任務上優于現有先進的目標檢測模型,驗證了該方法的準確性與可行性。
關于針織面料疵點檢測的研究很少,本實驗圖像采集于江南大學針織技術工程研究中心和無錫新祥瑞紡織品有限公司,如圖1所示。采集圖像時使用一臺2 600萬像素的高分辨率相機(分辨率固定為300 dpi),鏡頭距坯布垂直距離200 mm,豎直向下聚焦拍攝,側面補光角度為30°以達到圖像沒有暗影和坯布反光的效果,采集的圖像大小為900×600 pixel。本文主要針對實際生產中出現的四種最常見的疵點類型,包括破洞、漏針、油針、橫檔(圖2),具體描述如下:

圖1 針織物圖像采集Fig.1 Acquisition of knitted fabric images
1) 破洞:紗線在編織過程中受到了超過其自身斷裂強度的力,導致紗線被拉斷,形成布面上的洞孔。
2) 漏針:緯編針織物在織造時,織針沒有勾到毛紗或勾到毛紗后又脫出針鉤而造成線圈脫散,在布面出現垂直的條痕及小孔的現象。
3) 油針:由于機臺供油過多或者漏油,跟隨織針的運轉污染坯布,在布面上呈現為一條黑線直落。
4) 橫檔:一種視覺上非主觀性設計的,重復且連續狀的條形圖案,通常平行于針織物的線圈橫列,又稱為橫條或橫路。
實驗中,為了避免因計算原因影響圖像特性,采集的圖像從原始大小裁剪并縮放至320×320 pixel。經過人工標注后建立的數據集包含3 524張針織物圖像,其中負樣本935張,破洞、漏針、油針、橫檔疵點分別為890、784、439、476張。訓練集、驗證集和測試集的比例設置為8︰1︰1,此外,采用水平翻轉、垂直翻轉和旋轉(90°、180°和270°)等數據增強方式擴充樣本數量。

圖2 針織物疵點圖像Fig.2 Images of knitted fabric defects
針織是一種將紗線順序地彎曲成圈并相互穿套而形成織物的工藝。由于其線圈是紗線在空間彎曲而成,并且每個線圈均由一根紗線構成,因此當織針損壞,沉降片位置不對或者紗線本身出現問題時,產生的瑕疵具有連續性,如圖3所示。以圖像的視角看,疵點的長寬比例非常高,為細長狀,并且疵點區域相對總圖像面積占比較小。

圖3 針織物疵點的形狀特征Fig.3 Shaped characteristics of knitted fabric defects
考慮到上述織物疵點本身的形狀特征,本文致力于將CNN和Transformer的先驗優勢有效結合,改進Swin Transformer骨干網絡。本文在每個檢測層中加入可變形卷積模塊,加強網絡對于細長疵點的局部感知能力,以便更好地融合高語義的特征信息。DCSW網絡由Patch Merging層、可變形卷積模塊和ST模塊等部分組成,其整體結構如圖4所示。

圖4 DCSW主干網絡總體結構Fig.4 Overall structure of DCSW backbone network
1.2.1 Swin Transformer模塊
從圖4(b)可以看出,與Transformer模塊[16]相比,ST將標準多頭自注意單元(MSA)替換成窗口多頭自注意單元(W-MSA)和移動窗口多頭自注意單元(SW-MSA),并分別應用于兩個連續的ST模塊。此外,在每個(S)W-MSA和多層感知機MLP前安插歸一化層使得模型訓練穩定,并添加殘差連接。該部分可以用下式表示:
(1)
(2)
(3)
zl+1=MLP(LN(zl+1))+zl+1
(4)

如圖5(b)所示,ST模塊中的W-MSA首先將特征圖按M×M的比例劃分為一系列不重疊的窗口,而且在每個窗口中執行注意力計算。該方式減少了網絡計算量,并控制模型復雜度與圖像尺寸線性相關。然而窗口分割的實現會導致不同區域之間缺乏跨窗口的信息交流,因此,SW-MSA通過將規則分區的窗口沿垂直和水平方向平移(M/2,M/2)像素的距離,并循環移位(Cycle shifted)獲得一種新的窗口布局,如圖5(d)所示。在此基礎上,像素的全局相關性得以保證。

圖5 移動窗口的作用機制Fig.5 Action mechanism of shifted windows
1.2.2 可變形卷積模塊
盡管ST以W-MSA和SW-MSA兩種滑動窗口方案為主體構建了層次結構,但基于位置編碼的模式容易忽略圖像的局部相關性和結構信息,以致無法高效地編碼空間上下文信息。為了緩解這個問題,本文設計了可變形卷積模塊改進主干網絡,它被嵌入在ST模塊的前面,其組成如圖4(a)所示。
由于ST模塊中不同層次以向量組成的數據流傳遞信息,而不是傳統卷積中的特征映射,因此在輸入可變形卷積模塊之前需要將其重塑為特征圖的形式。例如數據流維度大小為(B,H×W,C),首先將其重塑為(B,C,H,W)的特征圖。隨后,一個1×1的卷積層使其維度從C減小到C/4。再添加一層3×3的可變形卷積增強對局部特征的提取,并保持維度在C/4。然后設置一個1×1卷積層恢復維度,并使用殘差連接防止網絡退化,同時提升網絡的表征能力。為了加速神經網絡的收斂及提高模型訓練的穩定性,每一個卷積層后面添加一個BatchNorm2D層和一個Relu激活函數。最終,將特征圖重塑為(B,H×W,C)的數據流,作為ST模塊的輸入。
圖6展示了3×3可變形卷積的特征提取過程,其直觀效果是卷積核采樣點的位置會根據圖像內容自適應調整,從而應對不同物體的形狀、大小等幾何形變[23]。相比Pascal VOC[24]和COCO[25]這些大型數據集的檢測目標(人臉、行人和車輛等),織物疵點的形狀特征更復雜多變。例如對于一張漏針圖像,其檢測對象的長寬比可達30倍,而疵點區域面積僅占整幅圖像的1/19。因此,可變形卷積這種對圖像特征更細粒度的定位、提取方式與本文研究的需求匹配。

圖6 3×3可變形卷積的特征提取過程Fig.6 Feature extraction process of the 3×3 deformable convolution
在深度網絡中,深層的特征圖通常包含更豐富的全局語義信息,而淺層的特征圖包含更多的局部紋理和結構信息。如何有效地表征和處理多尺度特征是目標檢測任務的主要難點之一,常見的做法是在主干網絡和預測層之間添加頸部結構(Neck)以整合信息流[26-27]。如圖7(a)所示,特征金字塔網絡(FPN)首次提出一種自頂向下的結構來組合多尺度特征[28]。而NAS-FPN將其與神經搜索相結合[29],自動設計特征網絡拓撲結構。但是該方法對算力的要求極高,并且從圖7(b)可以看出,其生成的特征網絡不規律,缺乏可解釋性。本文旨在以更直觀的方式平衡不同尺度的特征信息,受文獻[30]的啟發設計了一種改進的頸部結構I-BiFPN,如圖7(d)所示。

圖7 4種不同的頸部結構設計Fig.7 Four different designs of the neck structure
已有研究表明,具有不同分辨率的各層次特征,對于輸出結果的作用各不相同[31-32]。因此改進的網絡在各節點設置輸入權重,以加權融合的方式衡量不同特征層的重要性。具體而言,引入可學習參數wi=1(i表示各節點的輸入特征個數),將其作為不同輸入特征的權重與模型一起優化。此外,網絡在原始輸入節點與輸出節點之間采用跨層連接的方式,以便在不消耗過多計算資源的情況下有效地聚合多尺度特征。假設輸入圖像尺寸320×320 pixel,網絡輸入特征F2至F5的分辨率分別為80×80、40×40、20×20、10×10。本文以圖7(d)中F4所在層為例,其特征融合過程可以用下式表示:
(5)
(6)
式中:F4td表示自頂向下路徑中的特征,F4out表示該層的輸出特征;Resize是上采樣或者下采樣操作以保證特征維度的匹配;ε=0.000 1,用于防止數值不穩定。
所有其他特征都以類似的方式構造。另外,在每個深度可分離卷積后添加批量歸一化層和Relu激活函數。值得注意的是,為了實現更高級別的特征融合,每個雙向路徑被視作一個特征網絡層,并在頸部結構重復m次(m在下文3.2節中加以討論)。
SwinBN網絡模型的整體結構如圖8所示。給定一張大小為H×W×3的輸入圖像,其中空間分辨率為H×W。首先將圖片輸入Patch Partition模塊進行分塊,即每4×4相鄰的像素為一組在通道方向展平,特征圖的尺寸由[H,W,3]重塑為[H/4,W/4,48]。隨后輸入至DSBL1(Deformable convolution and swin transformer block 1)。通過Linear Embedding層將其映射到維度C,再設置一個可變形卷積模塊加強局部信息的提取并且不改變特征圖的大小。DSBL1包含兩個連續的Transformer模塊,分別應用WMSA和SW-MSA,不僅可以關注全局信息還能實現跨窗口的信息傳遞。輸出DSBL1的特征圖尺寸為H/4×W/4×C。與DSBL1相似,DSBL2包含一個可變形卷積模塊和兩個Transformer模塊,區別是將Linear Embedding層替換成Patch Merging層。Patch Merging層類似CNN中的池化層用于下采樣以得到多尺度特征信息,其中每2×2的相鄰像素劃分為一個片段并依次拼接,再通過全連接層調整通道數。由于可變形卷積模塊和ST模塊不改變特征圖的尺寸,因此DSBL2的輸出尺寸為H/8×W/8×2C。DSBL3、DSBL4與DSBL2高度相似,區別在于DSBL3中包含6個ST模塊,可以看作是DSBL2中的3倍。最終,DSBL1至DSBL4的輸出特征為F2、F3、F4、F5,通過頸部結構I-BiFPN實現多尺度特征信息的融合。預測層參照文獻[11]和文獻[33]的設計方式,對4種不同尺度的特征圖進行預測。

圖8 SwinBN網絡模型Fig.8 SwinBN network model
在本實驗中,主要使用mAP值評估目標檢測模型的性能,影響mAP值的相關指標的含義及計算方法如下。
IoU表示真實邊界框和預測框的交集與并集的比值,如下式所示:
(7)
TP(True positive)是指正確檢測出對象的預測框數量。在本文中,該對象是織物疵點,當預測框與真實邊界框的IoU>0.5,并且類別預測正確,即被判定為TP。FP(False positive)表示IoU<0.5,或者分類錯誤的預測框數量。FN(False negative)表示未被檢測到的對象個數。
精確率P(Precision)指預測正確的邊界框占所有預測框的比重,具體如下式所示:
(8)
召回率R(Recall)指預測正確的邊界框占所有真實邊界框的比重,具體如下式所示:
(9)
以召回率為橫軸、精確率為縱軸,可以得到P(R)曲線。AP指P(R)曲線與坐標軸所包圍區域的面積,mAP值代表多個類別的平均AP值,mAP值越高則表示模型的檢測性能越好。因此,mAP可以通過下式計算:

(10)
本實驗的操作系統是Windows10,64位,CPU配置Inter I7-10700,GPU配置NVIDIA GeForce RTX 2060(12 G)。軟件環境為CUDA 11.1、Python 3.8.8和Pytorch 1.9.0。采用隨機梯度下降(SGD)方法對模型進行優化,訓練的迭代次數設置為200。此外,本文在自制的針織物疵點數據集上比較Faster RCNN[34]、Efficientdet[30]、YOLOv3[35]、YOLOv5、DETR[36]、SwinBN模型的性能。所有目標檢測模型都是基于Pytorch深度學習框架實現的,其初始化參數如表1所示。

表1 網絡初始化參數Tab.1 Initialization parameters of networks
參考Swin Transformer提供的4個版本(Swin-T、Swin-S、Swin-B和Swin-L),本文設計的DCSW主干網絡通過縮放系數λ調整網絡大小。此外控制頸部結構深度的參數m需要合理優化,因此使用控制變量法來分析參數對檢測效果的影響。實驗中不同參數的模型均在同一臺設備訓練直至收斂,訓練次數不固定,結果如表2所示。

表2 不同參數配置下模型檢測mAP指標Tab.2 Model detection mAP indexes under different parameter configurations
由表2可以看出,在[1,4]內模型的mAP值隨著m值的增大提升明顯,這是因為隨著特征融合網絡I-BiFPN加深,多尺度特征之間的加權融合更加充分。當m≥5,模型的表現略有下降,此時訓練模型所需迭代次數過多,導致模型難以訓練無法完全收斂。圖9展示了在該參數下對于破洞疵點的檢測結果,學習不足的模型容易將織物背景誤判為疵點對象。

圖9 不同參數配置下的檢測結果Fig.9 Detection results under different parameter configurations
在另一組對照實驗中,SwinBN模型的檢測效果并非與骨干網絡大小呈現正相關趨勢,這可能是由于本實驗的整體數據規模較小,SwinBN-b和SwinBN-l過于復雜以致無法良好地擬合其他數據。圖10(m=4)和表2共同說明了當λ=s時檢測效果最佳,但是推理速度達不到實時監測的要求38 ms/image。綜上分析,選取λ=t和m=4的參數配置較為合理,模型的mAP值達到74.53%,并且在準確性和實時性之間取得折中。本文后續與該模型相關的實驗中全部使用此參數配置。

圖10 模型的性能與骨干網絡大小的關系討論Fig.10 Illustration on the relationship between a model’s performance and the size of the backbone network
表3對比了SwinBN模型與其他五個模型的檢測性能。由表3可以明顯地看出,在所有模型中二階段算法Faster RCNN的檢測效果最不理想。其精確率、召回率和mAP值分別為54.35%、50.67%和46.75%,皆是最差的實驗結果。并且檢測一幅圖像的耗時最長為0.237 s,因此不適合針織物疵點的檢測。

表3 不同目標檢測模型的性能比較Tab.3 Performance comparison of different object detection models
此外,基于Transformer的網絡模型一定程度上表現出在視覺領域的優越性。具體而言,DETR和SwinBN的平均mAP值達到了70.26%。分析主要原因在于自注意力機制的使用,它能夠捕捉全局上下文信息,建立像素之間的遠程相關性,從而提取更有價值的特征。因此在計算機視覺領域,基于Transformer的模型與CNN相比,擁有更具競爭力的性能及可觀的改進空間。總的來說,SwinBN以同一水平的參數量和計算成本在各指標上取得了最佳的表現。對于綜合指標F1-score,SwinBN分別比YOLOv3、Efficientdet、YOLOv5和DETR高19.18%、13.82%、10.39%和2.23%。就目標檢測的基準指標mAP而言,本文提出的方法比上述模型高12.24%、11.91%、7.80%和1.63%。在檢測速度方面,SwinBN模型的參數量僅為39.72 M,預測一張圖片所需時間0.032 s,快于YOLOv5m和DETR,比YOLOv3模型略慢。上述實驗結果證明,該方法在檢測速度和檢測精度之間取得了平衡,能夠高效、快速地檢測出針織物疵點。
為了驗證不同改進技術的必要性和對模型性能的影響,本文進行了消融實驗。在模型設計階段,以ST為主干網絡原型,在DSBL1至DSBL4中配置可變形卷積模塊以提取更豐富的局部特征(表4)。

表4 可變形卷積模塊對檢測性能提升效果驗證Tab.4 Verification of the improvement effect of deformable convolution modules on the detection performance
表4評估了各可變形卷積模塊的重要性,“√”和“×”分別表示其在DSBL中是否被應用。實驗結果證明,在添加可變形卷積模塊后模型性能有顯著提升。相比不使用可變形卷積模塊的Modela,SwinBN的mAP值提升了3.33%,并且針對橫檔、漏針兩種細長型疵點的檢測效果改善明顯(圖11),其AP值分別提升了5.02%和3.03%。

圖11 Modela和SwinBN模型的檢測效果對比Fig.11 Comparison of the detection effect between Modela and SwinBN models
從圖11可以更直觀地看出,Modela將部分橫檔疵點誤檢為漏針,而且對于瑕疵區域的界定不及SwinBN精準。除此之外,在模型早期添加可變形卷積對檢測性能的影響更為關鍵。例如只在DSBL1添加可變形卷積的Modelb,其mAP值提升了1.78%,而SwinBN相比Modeld的mAP增值只有0.12%。這是由于淺層的輸出包含豐富的顏色和紋理特征,更有利于動態卷積核自適應地定位細長疵點。總之,可變形卷積模塊非常契合地彌補了Transformer對于局部特征提取能力弱的缺陷。
消融實驗還對比了FPN、PAN、BiFPN和I-BiFPN四種頸部結構對模型性能的影響,實驗結果如圖12所示。由圖12可以看出,相比其他3種雙向結構,單向網絡FPN特征融合效果最差,mAP值僅為68.25%。結合DCSW和PAN的模型通過自底向上金字塔傳遞底層定位特征,對于漏針疵點的檢測效果顯著,但無法彈性地控制特征層深度,因此整體性能并不突出。實驗結果顯示,使用改進的BiFPN自適應整合多尺度特征對各疵點類型的檢測效果均有提升,mAP值提升了1.02%,驗證了此結構比BiFPN能更大程度地利用融合權重的各尺度特征。

圖12 不同頸部結構對檢測模型性能的影響Fig.12 Effects of different neck structures on the performance of detection models
本文提出了一種名為SwinBN的深度學習模型應用于針織物疵點檢測任務。首先,SwinBN以DCSW為主干特征提取網絡,充分結合了CNN和Transformer各自的優勢:通過自注意力機制高效地整合全局信息;根據疵點的形狀特征,引入了可變形卷積加強提取局部特征的能力。其次,模型以改進的BiFPN網絡為頸部結構促進多尺度特征之間的加權融合,有效地提高了缺陷定位精度。綜合實驗測試階段,SwinBN與其他現有研究的最新方法在針織物疵點數據集上進行比較,各項指標都取得了最好的表現,例如精確率、F1-score和mAP值等。此外,本文還通過消融實驗說明提出模型中關鍵組件的有效性和合理性。研究結果表明,SwinBN提供了一種精確滿足針織行業需求的疵點檢測方案,在織物疵點的檢測與分類任務中有著可觀的應用前景。

《絲綢》官網下載

中國知網下載