黃 烜, 孫 晗, 林博生, 殷明駿, 楊志軍
(1.廣東工業大學 省部共建精密電子制造技術與裝備國家重點實驗室, 廣東 廣州 510006;2.佛山市華道超精科技有限公司, 廣東 佛山 528225)
自2011年起,中國纖維加工產品的產量就已經超過了世界總產量的50%。如今,中國是全球最大的紡織品生產和出口國,是紡織產業鏈最完備,出口產品種類最多的國家,是世界紡織服裝產業保持穩定運轉的支撐力量[1]。在天然纖維服裝產品生產過程中,部分廠商存在以次充好的現象,而普通消費者肉眼難以區分面料材質,需要借助專業的檢測機構進行檢測。
目前,纖維成分的檢測有多種方法。楊桂芬等分別使用掃描電子顯微鏡和光學顯微鏡對山羊絨纖維和綿羊毛纖維進行鑒別,給出了2種樣本在顯微鏡下的外觀形態,并以此區分2類樣本[2]。李好磊等使用聚合酶鏈式反應-限制性片段長度多態技術(PCR-RFLP)進行羊絨和羊毛的分類實驗。結果表明,羊絨和羊毛的DNA存在約2%的差異,可以據此準確判斷樣本的種類[3]。趙國樑等使用近紅外光譜技術進行羊絨和羊毛的分類實驗。通過采集各種纖維的紅外光譜并建立矯正模型,能夠對纖維成分進行可靠的定性、定量分析[4]。近年來,深度學習發展迅速,諸如AlexNet[5]、VGGNet[6]、GoogLeNet[7]、ResNet[8]等網絡模型大量運用于圖像分類領域,如字符識別[9]、纖維分類等。朱耀麟等提出改進的B-CNN模型對羊絨羊毛纖維進行分類,準確率達到98.06%[10]。楊文柱等使用3種不同的多類支撐向量機模型(MSVM)對棉花異性纖維進行分類,最高正確率達到93.5%[11]。王雯等對掃描電子顯微鏡下拍攝的纖維圖像樣本,利用Mask R-CNN模型進行訓練得到纖維分割模型。使用該模型預測纖維,預測正確率最高達到86%[12]。侍瑞峰等分別使用貝葉斯分類器、BP神經網絡、SVM支持向量機對羊毛和羊絨進行分類,準確率依次為88.7%、84.8%和92.7%,并認為SVM分類器在準確率和耗時上更具優勢[13]。杜玉紅等使用改進的ResNet提取異性纖維圖像的特征,并基于k-means++算法對候選框尺寸和數量進行改進。實現了小尺寸、大長寬比和密集分布等情況下異性纖維的自動化識別和定位,在驗證集上的準確率達到94.24%[14]。巫明秀等構建改進的MobileNets-YOLOv3模型,對棉纖維中的異性纖維圖片進行實時檢測,平均準確率達到了84.8%[15]。
綜上所述,目前常見的纖維成分檢測研究主要集中于羊毛和羊絨的鑒別以及在棉花異性纖維的檢測,缺乏對其他毛發種類的鑒別研究,特別是微觀結構相似的樣本。因此,本文訓練集樣本使用4種在微觀結構上極為相似,非專業人員難以鑒別的栗鼠、水貂、紫貂、獺兔的毛發纖維顯微圖片,以TensorFlow和Keras為框架[16-17]訓練添加數據增強策略[18]以擴充樣本量。通過改進結構后的ResNet-50神經網絡分類器結合遷移學習[19]方法,調整優化網絡參數,利用SoftMax函數[20]輸出預測的類別概率。
如圖1所示,恒等殘差塊(ID Block)左側為2或3個權重層的疊加,右側為捷徑通道(short cut)。卷積殘差塊(CONV Block)結構與之類似,區別在于其捷徑上也有一個權重層。
卷積計算過程為
(1)
式中:xl,m為輸入矩陣;wl,m為卷積核參數;l和m為輸入矩陣和卷積核的寬高;b為偏置向量;yc為該次卷積的輸出;*為卷積運算符號。本文在網絡初期采用7×7卷積,盡可能保留原始圖像的信息;在殘差塊內使用1×1卷積用于數據的升維和降維,使用3×3卷積用于提取特征。另外,以非線性函數ReLU[21]作為網絡的激活函數。
1.2全連接層FC
在ResNet-50中,待所有卷積運算完成后,將輸出的大量特征張量展平成一維向量作為全連接層的輸入,由全連接層進行分類并使用SoftMax函數進行歸一化,最終輸出分類概率。
全連接層的計算過程為
(2)
網絡計算出損失值后,通過反向傳播算法和Adam優化算法迭代各個卷積層和全連接層的權值。Adam是自適應梯度優化(AdaGrad)和均方根傳播優化(RMSProp)2種算法優點的結合[22]。隨著訓練的進行,Adam能夠為網絡中每個權值都匹配一個學習率;同時,基于梯度一階矩均值和梯度二階矩均值,為每個權值計算更合適的學習率。
Dropout是指深度網絡在訓練過程中,對于神經網絡單元按照一定的概率暫時從網絡中隨機失活。隨機失活層與網絡前后結構的組合使得網絡具有一定的稀疏性,從而有效地減少神經元之間復雜的共適應性,提升了網絡的精度和魯棒性。Dropout層的計算過程為
rl~B(p)
(3)
式中:B(·)表示伯努利函數;p表示失活概率;rl表示在第l層神經元之前使用伯努利函數以概率p生成的一組由0、1隨機數組成的向量。

(4)
1.5評價指標
針對本文的實際任務需求,使用混淆矩陣(confusion matrix)[23]評估模型的分類性能,同時評估模型對于每一類纖維的查準率(P)、查全率(R)及F1分數(F1)[24]。
(5)
(6)
(7)
式中:PT為真正類數量;PF為假正類數量;NF為真負類數量。F1分數是查準率和查全率的加權調和平均值,能夠綜合反映模型的分類性能。
綜上所述,對ResNet-50模型進行調整優化后的結構如圖2所示。

圖 2 結構改進的ResNet網絡模型Fig.2 Structure ResNet-improved network
使用華道超精科技有限公司的光學顯微平臺拍攝纖維顯微圖像。平臺的X、Y、Z軸分辨率均達到0.1 μm,搭載600萬像素工業相機、奧林巴斯CXPL40X平場消色差物鏡(孔徑0.65,放大倍數40倍)、阿貝聚光鏡等器件組成光學成像系統。用于模型訓練和評估的計算機CPU為Intel i7-10700F,內存32 GiB;GPU為NVIDIA GeForce RTX 3080,顯存10 GiB。編程語言為Python,代碼運行環境為PyCharm。
使用上述光學顯微平臺設備拍攝纖維。圖像放大倍數為40倍,曝光時間6 ms,曝光增益為500%,輸出大小為1 536×1 024×3的RGB圖片。共采集4 016張栗鼠、水貂、紫貂、獺兔的毛發纖維圖片作為數據集。每種纖維圖片約為1 000張,在數量上保證了樣本的均衡性。隨機選取其中每種纖維圖片的60%作為訓練集,20%作為驗證集,20%作為測試集。訓練集的4種樣本示例如圖3所示。

(a) 栗鼠毛 (b) 水貂毛

(c) 獺兔毛 (d) 紫貂毛圖 3 4種纖維樣本的顯微圖像Fig.3 Microscopic images of four sample fibers
對數據集進行的預處理包括圖片縮放、歸一化像素值和添加數據增強等策略:圖片尺寸由1 536×1 024×3縮放為224×224×3;同時把像素值從0~255歸一化,方便輸入網絡進行運算;數據增強可以增加數據集的樣本數量,提升模型的泛化能力和魯棒性。本文采用的數據增強策略包括隨機平移圖片、隨機剪切拉伸以及隨機水平翻轉,并設定每種策略的發生概率為10%。數據增強示例如圖4所示。

(a)原圖像 (b)平移

(c)剪切拉伸 (d)水平翻轉圖 4 數據增強示例Fig.4 Data augmentation examples
以TensorFlow和Keras為框架搭建神經網絡,利用GPU加速提高網絡訓練效率。使用ResNet-50基礎模型和VGG-16基礎模型,不改變網絡結構進行訓練并計算其在測試集的平均查準率、平均查全率和平均F1分數,結果如表1所示。

表1 基礎模型驗證結果
表1中,因ResNet-50本身的網絡層數更深,理論上可以比VGG-16網絡學習到更多的特征參數,故ResNet-50網絡有相對更好的查準率。但是,表1中2種基礎模型的F1分數只E 92%左右,預測的圖片樣本分類中誤檢漏檢的概率較大,泛化能力差,不能滿足纖維檢測的要求(市場上要求>98.5%),需要進一步優化。因此選用ResNet-50網絡基礎模型結合Dropout層進一步調整優化。
參照調試經驗,設置新增的神經網絡FC層節點單元個數(De)為(0,64,128,256,512,1 024),Dropout層失活概率p設置為(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9)。當FC層與失活率都為0時,則為一般的深度學習網絡結構,即本文的基礎模型;當FC層神經元的個數設置為0時,即為不設置額外的FC層的結構;當 Dropout層的概率設置為0時,即為不對網絡輸出層的前一層單元執行隨機失活。通過上述參數設置,經實驗,結果較佳的前6個超參數設置組合如表2所示。從表2可以看出,不同參數對網絡整體表現存在明顯影響。最終選擇的De參數為256,Dropout失活概率p=0.5。

表2 結構改進對比Tab.2 Structure improvement comparison
使用優化后的ResNet-50模型,加載基于ImageNet預訓練的ResNet-50模型權重,添加數據增強策略,設定訓練輪次epochs為25,批量大小batch size為16,損失函數為交叉熵損失,優化算法為Adam,初始學習率為10-4。訓練該模型后得到訓練集-驗證集精度曲線以及損失曲線,如圖5所示。圖5中藍色曲線代表訓練集曲線,橙色曲線代表驗證集曲線,橫軸代表訓練輪次。

(a) 精度曲線

(b) 損失曲線圖 5 優化后ResNet-50精度曲線和損失曲線Fig.5 ResNet-50 accuracy curve and loss curve after optimization
從圖5可以看出,優化后的ResNet遷移學習策略適用性更好,訓練集在第1個輪次就能夠達到92%的精度,損失值為0.25。到第10個訓練輪次時精度達到99.5%,收斂速度快。經過25個訓練輪次,模型得到有效收斂。最終訓練集的精度為99.95%,損失值為0.003 3;驗證集的精度為99.63%,損失值為0.007 0。
加載已訓練完成的ResNet-50網絡權重,對測試集中804張樣本進行預測并與其真實標簽對比,得到改進后的ResNet-50模型在測試集上進行預測的混淆矩陣,如圖6所示。

圖 6 優化后ResNet-50預測混淆矩陣Fig.6 ResNet-50 confusion matrix
矩陣的橫軸代表分類器對測試圖片的預測標簽,縱軸代表圖片的真實標簽。從圖6可以看出,改進后的ResNet-50模型對804張樣本可以實現正確分類。其中,水貂毛和紫貂毛識別查準率100%,栗鼠毛和獺兔毛的查全率為100%,整體的平均分類準確率為98.88%。計算測試集中4個類別共804張樣本圖片下的查準率、查全率和F1分數,結果見表3。

表3 改進ResNet-50在測試集上的查準率(P)、 查全率(R)、F1分數匯總Tab.3 Summary of P, R and F1 of ResNet-50on the test set 單位:%
從表3可以看出,改進模型在測試集上的性能表現較為優秀,各指標比ResNet-50基礎網絡模型的結果(表1)均有顯著提高,查準率超過98.5%,查全率提高8.15%,F1綜合評估分數提高了6.77%。可見,基于ResNet-50改進的深度學習神經網絡的纖維分類方法能有效分類結構相近的不同種類的動物毛發纖維。
本文給出了一種針對4種顯微結構上高度相似的動物毛發纖維識別方法。使用ResNet-50網絡進行多組超參數實驗,找到最優的Dropout層和FC層超參數,對網絡結構進行改進。再通過圖像增強和數據增強方式解決了背景干擾強、樣本數量較少的問題。結果表明:改進后的ResNet-50網絡精度得到明顯提高,對4種動物毛發纖維的平均分類準確率達到98.88%,F1分數為98.98%。但混淆矩陣評估中,栗鼠毛和獺兔毛測試存在一定的誤檢率,后續工作還存在一定的提升空間。