陳夢琦,余靈婕,支 超,祝雙武,郜仲元
(西安工程大學 紡織科學與工程學院,陜西 西安 710084)
織物疵點檢測對提高最終產(chǎn)品的質(zhì)量和外觀至關(guān)重要,是質(zhì)量控制和檢驗的關(guān)鍵環(huán)節(jié)[1]。由于傳統(tǒng)的疵點檢測以人眼識別為主,易受視覺疲勞、工作狀態(tài)等主觀因素的影響,降低了疵點檢測結(jié)果的可靠性,所以出現(xiàn)了基于結(jié)構(gòu)分析、光譜分析、模型、統(tǒng)計等計算機視覺的自動檢測方法[2-3]。韓士星等針對織物疵點及紋理的頻譜特征,提出了融合多分辨率的全局及局部顯著圖的色織物疵點檢測方法[4]。李春雷等提出了基于方向梯度直方圖(HOG)和低秩分解的疵點檢測方法[5]。ZHU等利用自相關(guān)函數(shù)和灰度共生矩陣(GLCM)提取染色織物的缺陷[6]。周明文等采用遺傳算法對構(gòu)造的Gabor濾波器參數(shù)進行優(yōu)化,提取Gabor特征,能準確快速地檢測出織物疵點[7]。以上傳統(tǒng)檢測方法針對特定織物疵點類型效果良好,但在織物疵點種類多樣的情況下存在局限。近年來,卷積神經(jīng)網(wǎng)絡強大的提取特征能力備受關(guān)注,基于卷積神經(jīng)網(wǎng)絡框架建立的目標檢測模型如Faster R-CNN、SSD、YOLO等被廣泛應用于人臉識別、車牌識別、海洋目標識別等眾多目標檢測領域且表現(xiàn)良好[8-11]。在紡織領域,由于織物疵點和紋理背景的多樣性,卷積神經(jīng)網(wǎng)絡在用于織物疵點檢測時需要針對織物疵點的特點進行改進。OUYANG等在CNN中引入了一種新型的成對電位激活層,實現(xiàn)了在具有復雜特征和不平衡數(shù)據(jù)集的織物上進行高精度的缺陷分割[12];張宏偉等提出了一種基于多尺度卷積的自編碼器,通過橫向連接將網(wǎng)絡2部分的特征映射進行多尺度特征融合實現(xiàn)了對復雜花型色織襯衫面料缺陷區(qū)域的檢測和定位[13];LI采用多尺度訓練,先驗幀聚類和軟非極大抑制技術(shù)改進了Cascade R-CNN,從而有效地提高了織物疵點檢測的準確性[14];文獻[15-16]分別提出了基于改進AlexNet的卷積神經(jīng)網(wǎng)絡(CNN)和基于EfficientNets的織物缺陷分類方法。雖然現(xiàn)有的深度學習方法在織物疵點分類與檢測任務上已取得了一定的成果,但面對復雜的工業(yè)生產(chǎn)環(huán)境仍存在局限性[17]。
基于卷積模塊的注意力機制(CBAM)結(jié)合了通道注意力模塊(CAM)和空間注意力模塊(SAM),使卷積神經(jīng)網(wǎng)絡更加關(guān)注待識別的目標對象[18]。因此,本文在Faster R-CNN目標檢測網(wǎng)絡的基礎上,將CBAM引入殘差網(wǎng)絡結(jié)構(gòu)中,通過計算權(quán)重矩陣改變殘差學習塊的輸出,使卷積神經(jīng)網(wǎng)絡的注意力集中在疵點的目標區(qū)域進行局部特征提取,從而豐富了特征圖(feature map)中的關(guān)鍵局部信息和全局信息。實驗表明用該方法訓練得到的模型整體性能優(yōu)于未引入CBAM網(wǎng)絡的經(jīng)典Faster R-CNN模型,織物疵點檢測的均值平均精度、準確率和檢測效率均有所提高。
Faster R-CNN直接使用區(qū)域建議網(wǎng)絡(region proposal network,RPN)生成檢測框,將檢測過程簡化為分類任務,并利用深度學習方法提升檢測精度。整個網(wǎng)絡主要包括特征提取網(wǎng)絡、區(qū)域建議網(wǎng)絡、池化感興趣區(qū)域(ROI pooling)、分類[19]等4個關(guān)鍵模塊。特征提取網(wǎng)絡模塊是將準備好的數(shù)據(jù)集輸入到特征提取網(wǎng)絡中,最終得到對應的特征圖。RPN模塊的功能是生成建議框。在特征圖上的每一個錨點上取9個候選的ROI(3種大小、3種長寬比),并判斷ROI中包含前景還是背景,同時計算包含前景的這些ROI與真實目標之間的偏差,進行初步的邊界回歸獲得精確的建議框。ROI pooling模塊是收集輸入的特征圖和建議框,綜合這些信息后提取建議框的特征圖。分類模塊是利用計算建議框的特征圖,通過全連接層輸出目標所屬類別,同時再利用邊界回歸調(diào)整檢測框最終的位置。
CBAM的結(jié)構(gòu)如圖1所示,其中包含了CAM和SAM,按順序完成CAM和SAM 2個模塊的計算,即給定一個輸入特征圖x∈RC×W×H,CBAM依次得到一維的通道注意矩陣MC∈RC×1×1和二維的空間注意矩陣MS∈R1×W×H,即
圖 1 卷積模塊的注意力機制(CBAM)結(jié)構(gòu)
F′=MC(x)?x
(1)
F″=MS(F′)?F′
(2)
式中:x為輸入特征;F′為輸入到空間注意力模塊的特征;F″為經(jīng)過CBAM最終輸出的特征;MC(x)為通道CAM的權(quán)重系數(shù)矩陣;MS(x)為SAM的權(quán)重系數(shù)矩陣。
通道注意力模塊主要關(guān)注哪些通道對網(wǎng)絡的最后輸出結(jié)果起作用,即專注于目標的內(nèi)容信息。通道注意力模塊同時對輸入特征x進行最大池化和平均池化,池化后的特征經(jīng)過多層感知器后輸出。MC(x)的計算公式為
MC(x)=g(Pml(Pa(x)+Pm(x))
(3)
式中:g為激活函數(shù)Sigmod;Pml為多層感知器網(wǎng)絡;Pa為平均池化操作;Pm為最大池化操作。
空間注意力模塊專注于目標在圖像中的位置信息,并解決了應該關(guān)注圖像的哪個部分的問題??臻g注意力模塊首先對通道維度的輸入特征F′使用最大池化和平均池化,然后將2個通道縫合在一起,最后使用卷積運算獲得空間關(guān)注度的權(quán)重系數(shù)矩陣MS(F′),即
MS(F′)=g{f7×7[Pa(F′),Pm(F′)]}
(4)
式中:f7×7表示1個卷積核為7×7的卷積操作。
注意力模塊可幫助神經(jīng)網(wǎng)絡模型學習圖像不同區(qū)域的特征權(quán)重,從而使有效特征權(quán)重更大,無效特征權(quán)重更小。對于疵點檢測任務,神經(jīng)網(wǎng)絡模型的主要關(guān)注目標即為疵點所在區(qū)域,注意力模塊的加入可增加疵點所在區(qū)域的特征權(quán)重,最終有效提高模型的檢測效果。本文的網(wǎng)絡框架是基于Faster R-CNN框架進行設計,如圖2所示。
圖 2 改進后的Faster R-CNN網(wǎng)絡結(jié)構(gòu)Fig.2 Improved Faster R-CNN network structure
圖2的網(wǎng)絡結(jié)構(gòu)主要由特征提取網(wǎng)絡、注意力機制、RPN組成。本文選擇Resnet50作為特征提取網(wǎng)絡,它可將前序若干層的其中一層數(shù)據(jù)輸出后跳過中間層直接引入到后面數(shù)據(jù)層的輸入部分,使后序特征層的內(nèi)容和其前序某一層的內(nèi)容線性相關(guān),克服了由于網(wǎng)絡深度產(chǎn)生的學習效率變低以及準確率無法有效提升的問題[20]。本文優(yōu)化后的檢測框架流程如下:
1) 將圖片輸入到加入了注意力機制的主干網(wǎng)絡Resnet50中,Resnet50網(wǎng)絡由4組模塊組成,每組模塊分別包含3、4、6等3個殘差塊,每個殘差塊里有3個卷積層。另外,網(wǎng)絡的最開始都有1個單獨的卷積層,共49個卷積層,1個全連接層,本文將注意力機制放置于Resnet50的每組模塊之后,共放置4個注意力機制模塊。
2) 輸出的特征圖一部分輸入到RPN,另一部分直接映射到ROI pooling,用于固定輸入全連接層的特征維度。首先用一個3×3的卷積核去遍歷輸入到RPN的所有特征圖,在遍歷過程中每個窗口中心按不同的大小和比例生成9個錨點, 再利用全連接對每個錨點做二分類(區(qū)分前景和背景)后再輸出包含目標區(qū)域的多個ROI并映射到ROI pooling的特征圖上。
3) 通過邊界回歸損失調(diào)整前景目標區(qū)域的位置坐標,利用分類損失去除置信度低于0.5的負樣本??偟膿p失函數(shù)包含回歸損失和分類損失,定義為
(5)
(6)
式中:R為SmoothL1函數(shù),其計算公式為
(7)
為驗證算法的檢測效果,本文以真實場景中的織物疵點圖像為數(shù)據(jù)集。數(shù)據(jù)集包含污漬、破洞、跳花和紗線缺陷等4類疵點。其中紗線缺陷包含斷經(jīng)、斷緯、缺經(jīng)、缺緯和并緯,如圖3所示。
(a) 破洞 (b) 污漬 (c) 跳花 (d) 紗線缺陷
數(shù)據(jù)集包含6 317幅織物疵點圖,對其按比例進行劃分,90%作為訓練集和驗證集,10%作為測試集。為了提高模型的識別準確率,使用平移、旋轉(zhuǎn)等方法對織物疵點數(shù)據(jù)集進行數(shù)據(jù)增強,然后再使用LabelImg標記樣本,增強后的數(shù)據(jù)集轉(zhuǎn)換成PascalVOC格式。PascalVOC格式的數(shù)據(jù)集包含織物疵點圖像名稱并記錄了每個圖像對應的目標對象位置信息、標簽內(nèi)容等的.xml文件。
實驗在Python(3.6),pytorch(1.8.0),torchvision(0.4.0)環(huán)境下進行;在配置為GPU:RTX3090,顯存:24 GiB,內(nèi)存:62 GiB的服務器上進行模型訓練。IDE工具采用Pycharm,系統(tǒng)環(huán)境為windows10??椢锎命c圖像為JPEG格式,尺寸均為500像素×500像素。
將制作好的數(shù)據(jù)集分別輸入到本文提出的檢測網(wǎng)絡中開始訓練,使用梯度下降優(yōu)化模型參數(shù),batch_size設為2,訓練初始階段學習率為0.000 1,訓練50代,第二個階段學習率調(diào)整為0.000 01,再訓練50代,共訓練100代。測試結(jié)果對比如圖4所示。
圖 4 織物疵點測試結(jié)果Fig.4 Comparison of test results
圖4中,第1、3行是沒有引入注意力機制的原Faster R-CNN模型部分測試結(jié)果,第2、4行是引入注意力機制模塊的改進模型部分測試結(jié)果。從圖4可以看出引入注意力機制后回歸框的得分更高,分類錯誤情況也有所改善。
選用經(jīng)過100代訓練后總損失最低的參數(shù)模型,分別對模型的平均準確率(average precision,簡記為PA)、準確率(P)和疵點圖像檢測的時間進行測試,其中準確率、召回率(R)的計算公式為
(8)
(9)
式中:A是預測為正樣本實際也是正樣本的樣本數(shù)量;B是預測為正樣本實際為負樣本的樣本數(shù)量;C是預測為正樣本實際為負樣本的樣本數(shù)量。計算所有測試樣本的準確率和召回率后,可繪制得P-R曲線,PA值即為P-R曲線圍成的面積。準確率(P)表示預測為正樣本中有多少是真正的正樣本,衡量的是模型的查準率;召回率(R)表示正樣本中有多少被預測為正樣本,衡量的是模型的查全率。一般來說,準確率和召回率為相互矛盾的指標,因此本文采用綜合兩指標的PA值來衡量模型對每個類別的綜合檢測能力。平均精度均值是每個類別PA值的平均值。
表1為本文算法和經(jīng)典Faster R-CNN算法的檢測能力對比。從表1可以看出,加入注意力機制后訓練的模型平均精度均值增加了1.8%,其中跳花、污漬、紗線缺陷的PA值均有提高,然而紗線缺陷的PA值最低,可能原因是紗線缺陷比較小,容易與色織的條紋背景混淆導致無法識別;破洞的PA值沒有提升,經(jīng)分析可能是破洞疵點尺寸普遍較大,破洞部位和背景灰度值差異較明顯,比較好識別,RPN本身的特性已經(jīng)可以很好地將破洞疵點與背景分開。平均精度均值的提高說明模型識別正樣本的能力總體得到提升。此外,破洞、跳花、污漬、紗線缺陷的識別準確率分別提高了5.21%、1.73%、2.64%、1.71%。
表 1 2種算法的檢測能力對比Tab.1 Detection capability comparison of the two algorithms 單位:%
表2是本文算法和經(jīng)典Faster R-CNN算法的檢測效率對比。在織物疵點檢測中,通常先采用高性能工作站訓練得到檢測模型,再借助計算機完成檢測任務。因此,為接近真實的疵點檢測環(huán)境,本文也在計算機CPU環(huán)境下進行疵點檢測時間的測試。其中,高性能工作站的測試硬件環(huán)境為GPU:1 080 TiB;顯存:11 GiB;內(nèi)存:14 GiB,本地測試環(huán)境為:CPU:11代英特爾i7處理器2.80 GHz。本文選取700張圖片進行疵點檢測,計算700張圖片在CPU和GPU下用時的平均時長和方差。從表2可以看出,加入注意力機制的訓練模型可以有效提高織物疵點的檢測速度,同時檢測時間的穩(wěn)定性也比較好。
表 2 2種算法的檢測效率對比Tab.2 Detection efficiency comparison of the two algorithms
本文通過在主干網(wǎng)絡Resnet50中引入卷積模塊的注意力機制,利用通道注意力模塊和空間注意力模塊聚焦于區(qū)域特征,并經(jīng)過端對端的訓練,生成包含疵點目標的候選框,最終通過非極大值抑制篩選出與真實值最接近的目標框。對比實驗結(jié)果證明本文提出的方法可提高參數(shù)模型的魯棒性和準確率。優(yōu)化后的疵點檢測模型平均精度均值提高了1.8%、平均準確率提高了2.82%,同時分類錯誤、目標定位不準的問題有所改善。單張圖片測試效率在不同測試環(huán)境下均有提升,且用時方差降低。所提方法對類似破洞檢測的疵點效果提升不明顯,后期擬通過對不同疵點類型設計網(wǎng)絡結(jié)構(gòu),調(diào)整基于卷積模塊的注意力機制的使用方式,使注意力機制在織物疵點檢測方面得到更充分恰當?shù)氖褂谩?/p>