吳志煒 師紅宇
(西安工程大學,陜西西安,710600)
棉花中的異纖嚴重影響棉產(chǎn)品質(zhì)量,有效識別出異纖對棉纖維的后續(xù)加工有著重要意義。以往的棉花異纖檢測方法主要集中在光學技術(shù)、傳統(tǒng)圖像處理、機器學習和深度學習技術(shù)等方面?;诠鈱W技術(shù)[1]的方法包括雙光源成像[2?3]和近紅外成像[4]等,此類方法通常成本較高,且針對不同材質(zhì)的異纖效果不一,在應用上不具有普遍性。傳統(tǒng)圖像處理方法[5?6]往往依賴個人經(jīng)驗且難以處理復雜背景下的異纖識別。在機器學習方面,有方法[7?8]提出利用棉花圖像中異纖的各種形態(tài)特征作為特征輸入來訓練分類器,這類方法對于較為明顯的異纖識別率較高,卻難以識別非正常形態(tài)的異纖。在深度學習方面,一些方法[9?10]利用現(xiàn)有的深度學習模型進行異纖識別但并未做出改進;另有一些方法在現(xiàn)有深度學習模型基礎上進行了改進,如Faster R?CNN[11?12]、YOLOv3[13]等,這類方法雖然取得了一定效果,但擺脫不了原有模型的一些限制,并不能完全適用于對棉花異纖的檢測;有的方法[14]提出了全新的模型用于檢測異纖,但模型結(jié)構(gòu)不夠精簡,且難以應對復雜背景下的異纖檢測。
針對以往檢測方法存在的問題,本研究提出一種新型網(wǎng)絡結(jié)構(gòu),其采用深度可分離卷積[15],大幅縮減了參數(shù)量,降低了訓練難度;同時引入注意力機制[16],有效地排除了無關(guān)信息的干擾,能夠快速定位多種形態(tài)的異纖,加強了對于復雜背景下異纖的檢測能力。
該新型網(wǎng)絡模型結(jié)構(gòu)如圖1 所示。
圖1 中,Conv 表示傳統(tǒng)卷積,CBAM 表示注意力機制,DSConv 表示深度可分離卷積,GAP 表示全局平均池化,Output 為全連接層。輸入首先經(jīng)過3 層傳統(tǒng)卷積以提取圖像中具有潛在價值的信息;然后通過注意力機制對提取的信息進行初步過濾;接著經(jīng)過6 層深度可分離卷積對初步過濾后的信息進行快速抽象與匯總;其后再次經(jīng)過注意力機制進行第2 次過濾;最后經(jīng)過全局平均池化壓縮和提煉關(guān)鍵信息,并經(jīng)由全連接層得出最終的分類結(jié)果。
圖1 新型網(wǎng)絡模型結(jié)構(gòu)
對于傳統(tǒng)卷積,考慮其有N個卷積核,每個卷積核的大小為k×k×M,傳統(tǒng)卷積層的計算見式(1)。
式中:G代表輸出的特征圖,K代表卷積核,F(xiàn)代表輸入特征圖,n、k、l分別代表特征圖的層級與該層上的行與列,m、i、j分別代表卷積核的層級與該層上的行與列。傳統(tǒng)卷積的計算量為k×k×M×N×f×f,其中f代表輸入特征圖的邊長。
本模型中采用的3 個傳統(tǒng)卷積層卷積核數(shù)量分別為32、64、128,卷積核尺寸分別為3×3、3×3、5×5,步長分別為1、2、2。所有卷積層均采用以下設置:padding 模式為same;權(quán)重約束為Unit?Norm;在經(jīng)卷積計算后先通過批量歸一化后通過relu 激活函數(shù)輸出。
深度可分離卷積分為兩步進行。第1 步是經(jīng)過深度卷積層,該層每個卷積核僅針對輸入特征圖的某一層做卷積操作;第2 步是經(jīng)過逐點卷積層,將其接收深度卷積層的輸出特征圖作為輸入,該層的每個卷積核僅為單位大小,但須對輸入特征圖的所有層做卷積操作。深度卷積層的計算見式(2)。該深度卷積層的計算量為k×k×M×f×f。
綜上,深度可分離卷積的總計算量為k×k×M×f×f+M×N×f×f,其與傳統(tǒng)卷積計算量的比值見式(4)??梢钥闯?,深度可分離卷積的計算量相比傳統(tǒng)卷積大幅降低。
本模型中采用了6 層深度可分離卷積,每層內(nèi)的深度卷積層卷積核數(shù)量均為輸入特征圖的層數(shù),卷積核尺寸均為3×3,步長依次為1、2、1、2、1、2;每層內(nèi)的逐點卷積層卷積核數(shù)量依次為128、128、256、256、512、512,卷積核尺寸均為1×1,步長均為1。深度可分離卷積內(nèi)部的這兩層卷積均采用了以下設置:padding 模式為same;權(quán)重約束為UnitNorm,卷積計算后先經(jīng)批量歸一化后經(jīng)relu 激活函數(shù)輸出。
注意力機制的本質(zhì)在于突出重點信息同時抑制無關(guān)信息。體現(xiàn)在卷積網(wǎng)絡中就是對于特征圖的通道間或通道內(nèi)的各部分賦予不同的權(quán)重。本研究采用卷積層中的注意力模塊(CBAM)嵌入到網(wǎng)絡中。該注意力模塊內(nèi)部先經(jīng)過通道間注意力子模塊,后經(jīng)過空間注意力子模塊。其計算過程見式(5)。
式中:Mc(F)代表通道間注意力特征圖,F(xiàn)代表輸入特征圖,?代表逐點相乘,F(xiàn)′代表經(jīng)由通道間注意力子模塊輸出的中間特征圖,Ms(F′)代表空間注意力特征圖,F(xiàn)″代表經(jīng)由空間注意力子模塊輸出的結(jié)果特征圖。
1.3.1 通道間注意力模塊
該模塊對于輸入特征圖的每個通道分別進行全局平均池化與全局最大池化,得到平均池化向量與最大池化向量,這兩列向量分別經(jīng)過同一個全連接隱藏層,該隱藏層的激活函數(shù)為relu,單元數(shù)為原始輸入特征圖通道數(shù)的1/8;經(jīng)由隱藏層輸出的兩列向量再分別經(jīng)過同一個無激活函數(shù)的全連接輸出層,該輸出層的單元數(shù)為原始輸入特征圖的通道數(shù);輸出層輸出的兩列向量相加并通過sigmoid 激活函數(shù)得到最終的一列結(jié)果向量,也就是通道間注意力特征圖。其計算過程見式(6)。
式中:σ代表sigmoid 激活函數(shù),MLP代表多層感知器(這里指的是全連接隱藏層和全連接輸出層),AvgPool代表全局平均池化,F(xiàn)代表輸入特征圖,MaxPool代表全局最大池化,F(xiàn)cavg代表全局平均池化向量,F(xiàn)cmax代表全局最大池化向量,W0和W1代表權(quán)重矩陣。
1.3.2 空間注意力模塊
該模塊對通道間注意力模塊輸出特征圖上的每一點進行沿所有通道的全局平均池化和全局最大池化,分別得到單通道的平均池化特征圖和單通道的最大池化特征圖,并將它們拼接成具有兩個通道的特征圖。該特征圖再經(jīng)由一個具有單卷積核且激活函數(shù)為sigmoid 的卷積層得到單通道的輸出特征圖,即為最終的空間注意力特征圖。其計算過程見式(7)。
式中:σ代表sigmoid 激活函數(shù),f5×5代表邊長為5 的卷積核,AvgPool代表全局平均池化,MaxPool代表全局最大池化,F(xiàn)代表經(jīng)由通道間注意力模塊輸出的特征圖,F(xiàn)savg代表全局平均池化特征圖,F(xiàn)smax代表全局最大池化特征圖。
本模型中輸出層之前的全局平均池化層加入了dropout,其系數(shù)為0.5;最后的輸出層為全連接層,其單元數(shù)為6(即類別數(shù)),其激活函數(shù)為soft?max。
硬件設備:CPU 為Intel Xeon Processor,GPU 為NVIDIA GeForce RTX3090。軟件配置:操作系統(tǒng)為64 位ubuntu18.04 LTS,CUDA Toolkit 11.2,tensorflow?gpu 2.3.1。
本研究選取了5 種常見的異纖作為數(shù)據(jù)樣本采集原料,分別是塑料薄膜、塑料繩、頭發(fā)絲、丙綸線、滌綸線,同時加上無異纖的棉花樣本,一共分為6 類。采集的樣本總數(shù)為9 182 例,其中訓練集樣本共7 349 例,占80%,測試集樣本共1 833 例,占20%。所有樣本的分辨率均為256 pixel×256 pixel。部分樣本如圖2 所示。
圖2 數(shù)據(jù)樣本
模型訓練的損失函數(shù)為交叉熵損失,優(yōu)化算法為SGD,初始學習率為0.01,學習率衰減系數(shù)為0.000 2,訓練的批大小為32,驗證集劃分系數(shù)為0.2。模型訓練過程中采用EarlyStoping 機制,若驗證集損失持續(xù)多輪不下降則自動停止訓練;同時采用ModelCheckpoint 機制,其在訓練過程中動態(tài)保存驗證集準確率最高時的模型參數(shù)。
訓練過程中的訓練集和驗證集的準確率變化曲線以及損失值變化曲線如圖3 和圖4 所示??梢钥闯觯摼W(wǎng)絡的收斂速度較快,且訓練過程較為穩(wěn)定。
圖3 準確率變化曲線
圖4 損失值變化曲線
載入保存的最佳模型對測試集樣本進行預測,得到最終的預測準確率為91.93%,平均檢測1 幅棉花圖像僅需0.015 s。部分預測結(jié)果如圖5和圖6 所示,本研究模型識別各類異纖的準確率如表1 所示。
表1 各類異纖識別準確率
由圖5 和圖6 可以看出,對于大部分的常見異纖,本研究提出的模型均可準確識別,且?guī)缀醪皇芨鞣N復雜背景的干擾,同時也不會受異纖形態(tài)的影響,可以應對大部分復雜背景下的異纖識別,僅對于一些極為相似的異纖以及部分無色異纖會產(chǎn)生誤檢,總體來說達到了預期效果。
圖5 預測正確的樣本
圖6 預測錯誤的樣本
由表1 可以看出,本研究模型對于無異纖的棉花樣本識別率最高,達到98.41%,說明模型基本不會受棉花形態(tài)以及各種陰影的影響;對于塑料薄膜、塑料繩和頭發(fā)絲的識別率也較高,分別達到了91.69%、92.90%和92.60%,這得益于模型較好地學習到了上述3 類異纖的紋理特征;而對于極為相似的丙綸線與滌綸線的識別率則偏低,主要是因為兩者相互混淆,但準確率仍然達到了86.01%和89.35%,說明模型對于極為相似的異纖依然具有較強的分辨能力。
本研究方法與傳統(tǒng)分類網(wǎng)絡在測試集上的識別準確率比較如下。SequeezeNet 模型、Xception模型、MobileNetv1 模型、MobileNetv2 模型、Mo?bileNetv3 模型、ShuffleNetv1 模型、ShuffleNetv2模型、本研究模型的識別準確率分別為88.76%、87.61%、86.57%、87.66%、89.57%、86.52%、85.53%、91.93%。可以看出,本研究提出的方法在測試集上的識別準確率均高于傳統(tǒng)的圖像分類網(wǎng)絡,且相比于傳統(tǒng)方法平均提高了4.47 個百分點。由于本研究所采集的異纖樣本考慮了各種復雜與極端情況,不僅涵蓋了絕大部分實際棉花異纖場景,而且有相當部分的識別困難度超出了實際場景中可能出現(xiàn)的非常規(guī)情況,因此本研究提出的模型可以較好地滿足實際場景的檢測需要。
本研究提出了一種全新的棉花異纖識別網(wǎng)絡模型,相比于傳統(tǒng)的卷積層,其采用了深度可分離卷積,參數(shù)量大幅縮減,大大降低了模型復雜度,使得模型易于訓練;同時為解決復雜背景下棉花異纖難以有效識別的問題,引入了卷積層注意力機制,其能夠有效提高模型的抗干擾能力與準確定位目標區(qū)域的能力。本研究模型在測試集上的識別準確率達到了91.93%,相較于傳統(tǒng)的圖像分類網(wǎng)絡模型平均提高了4.47 個百分點,且該模型檢測1 幅圖像的平均時間僅為0.015 s,體現(xiàn)了其較為優(yōu)越的性能。與此同時,本研究模型對于極為相似的異纖以及部分無色異纖仍然有可能產(chǎn)生誤檢,下一步將繼續(xù)優(yōu)化該模型,以進一步提高其對于相似異纖的分辨能力,加強其對于無色異纖的識別能力。