潘 楊 張守京 楊文彬
(西安工程大學,陜西西安,710600)
我國是棉花生產(chǎn)大國,原棉質(zhì)量直接影響最終棉紡織品質(zhì)量。原棉在采摘、運輸、加工過程中混入的塑料薄膜、丙綸絲、棉稈、羽毛等異纖會對棉紡織品質(zhì)量造成嚴重影響,如紗線斷裂、形成疵點等。因此,尋找一種快速、準確的棉花異纖檢測方法十分重要。
目前,國內(nèi)外在棉花異纖檢測研究中采用的檢測方法主要為光學檢測與超聲波檢測。其中,超聲波檢測[1]通過超聲波發(fā)生裝置,向通道中的棉花定向發(fā)射超聲波,利用超聲接收裝置,接收反射的超聲波來檢測棉花異纖,這種檢測技術(shù)主要針對與棉花材質(zhì)、面積差異較大的棉花異纖,對小尺寸的棉花異纖檢測效果欠佳且該檢測技術(shù)受氣溫、濕度、現(xiàn)場振動、被測物運行速度等因素的干擾,局限性大,很少被采用。光學檢測分為可見光檢測、紫外線檢測、偏振光檢測與紅外光檢測。其中紫外線檢測[2]采用兩組紫外線光源作為棉花的照明光源,激發(fā)棉花異纖的熒光效應(yīng),通過兩臺高速CCD 相機拍攝檢測熒光信號來判定棉花異纖,此方法僅針對帶有熒光效應(yīng)的白色棉花異纖,其他棉花異纖無法檢測。偏振光檢測[3]采用經(jīng)過偏振調(diào)制的白色光源對原棉進行照射,通過不同物體表面反射對偏振角度會發(fā)生改變這一原理,利用多角度偏振相機采集光線改變的角度來檢測棉花異纖,此方法主要針對透明或半透明塑料薄膜。紅外光檢測[4]利用紅外光敏器件采集不同材質(zhì)的物體對熱能的殘留效應(yīng)或溫升效應(yīng)來識別棉花異纖,此方法主要針對羽毛類棉花異纖,且需要調(diào)節(jié)參數(shù),具有局限性??梢姽鈾z測采用兩組三基色可見光源作為棉花的照明裝置,左右兩側(cè)兩臺高速CCD 相機拍攝棉流圖片之后通過傳統(tǒng)圖像處理[5-6]、機器學習[7-8]、深度學習等方法來檢測棉花異纖。一些方法[9-12]使用深度學習模型進行了棉花異纖檢測,但檢測速度慢,不能解決小尺寸、背景復雜的棉花異纖檢測中出現(xiàn)的誤檢、漏檢問題。
本研究針對棉花異纖檢測問題提出一種基于YOLOv5 的改進模型。在主干網(wǎng)絡(luò)中嵌入卷積注意力模塊(CBAM)[13],使模型可以自主學習每個通道的權(quán)重,增強模型分辨棉花異纖的能力,抑制背景信息干擾;嵌入卷積注意力模塊后,模型參數(shù)量增加使得模型檢測速度降低,故使用深度可分離卷積[14]替換模型中的普通卷積操作,減少模型參數(shù)量,提高模型檢測速度;基于特征融合[15]思想,設(shè)計一個用于檢測小尺寸棉花異纖的檢測層,使得模型更適用于棉花異纖檢測任務(wù)。
YOLO[16-19]是目前最著名的一階段目標檢測算法之一,它將圖片使用網(wǎng)格進行劃分,每個網(wǎng)格負責檢測落在其內(nèi)的目標,具有速度快、精度高的優(yōu)點。YOLOv5 按模型從小到大可分為YOLOv5S、YOLOv5M、YOLOv5L、YOLOv5X??紤]到后期模型要部署到棉花異纖檢測系統(tǒng)中,本研究對輕量級的YOLOv5S 模型進行改進。YOLOv5S 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。YOLOv5S 模型主要由4 部分組成,分別為輸入端、Backbone、Neck、Head。
圖1 YOLOv5S 網(wǎng)絡(luò)結(jié)構(gòu)
輸入端主要包括圖片的自動填充、圖片的數(shù)據(jù)增強以及錨框計算3 部分。圖片的自動填充對原始特征圖的尺寸進行調(diào)整,將輸入統(tǒng)一為標準尺寸;圖片的數(shù)據(jù)增強采用Mosaic 技術(shù),Mosaic將4 張?zhí)卣鲌D以隨機排布、隨機裁剪的方式進行拼接,豐富特征圖背景;錨框計算通過計算反向傳播輸出的預(yù)測框與真實框之間的大小誤差,迭代獲取大小最合適的錨框。
Backbone 是網(wǎng)絡(luò)的特征提取部分,主要包括Focus、Conv、C3、SPP 模塊。Focus 模塊將輸入特征圖做切片處理,切片后的特征圖進行通道維度的堆疊,輸出特征圖大小為原來的1/4,通道數(shù)為原來的4 倍,再經(jīng)過一次Conv(標準卷積),同時實現(xiàn)了下采樣與特征提取,原理如圖2 所示。SPP 模塊可以將任意大小的輸入特征圖轉(zhuǎn)換為固定大小的輸出特征圖,且只需進行一次標準卷積操作,減少了模型計算量。Conv 和C3 模塊為主要的特征提取模塊,SPP、C3、Conv 結(jié)構(gòu)如圖3所示。
圖2 Focus 原理示意圖
圖3 SPP、C3、Conv 結(jié)構(gòu)圖
YOLOv5 中,隨著網(wǎng)絡(luò)深度的增加,大量的卷積操作會造成小目標的特征信息丟失甚至消失。因此,在Neck 部分進行特征融合,使特征圖既包含細節(jié)信息,也包含語義信息,提升檢測精度。Head 部分輸出目標的類別概率與邊框位置信息,本部分共由3 個檢測層組成,分別用來檢測大小不同的目標,最后在圖像中標出預(yù)測框與目標類別。
為了解決棉花異纖檢測中透明塑料薄膜、丙綸絲與棉稈等背景復雜、小尺寸棉花異纖的漏檢、誤檢問題,在原YOLOv5S 模型中的普通卷積Conv 之后嵌入CBAM,以增強網(wǎng)絡(luò)的特征提取能力,使網(wǎng)絡(luò)在檢測過程中更好地關(guān)注棉花異纖目標,抑制背景信息干擾。CBAM 結(jié)構(gòu)如圖4所示。
圖4 CBAM 結(jié)構(gòu)圖
圖4 中,CBAM 模塊的輸入特征圖先后經(jīng)過通道注意力模塊、空間注意力模塊加權(quán)后得到CBAM 的輸出特征圖。通道注意力模塊、空間注意力模塊結(jié)構(gòu)如圖5 所示。
圖5 通道注意力模塊、空間注意力模塊結(jié)構(gòu)圖
圖5 中,輸入特征圖分別經(jīng)過MaxPool、Avg-Pool 操作后得到最大池化向量與平均池化向量,這兩個向量分別經(jīng)共享全連接層后得到兩個維度相同的向量,將這兩個維度相同的向量做加和操作后再經(jīng)過sigmoid 激活函數(shù)得到通道注意力權(quán)值。通道注意力權(quán)值與輸入特征圖做乘法操作后得到通道注意力模塊的輸出特征圖。通道注意力模塊表達式如公式(1)所示。
式中:Fc表示通道注意力權(quán)值;F表示C×H×W的輸入特征圖,其中C為輸入特征圖通道數(shù),H為輸入特征圖高度,W為輸入特征圖寬度;MaxPool 為全局最大池化;AvgPool 為全局平均池化;MLP 為共享全連接層;W0與W1為全連接層權(quán)重;Favg與Fmax分別代表平均池化向量與最大池化向量。
將通道注意力模塊的輸出特征圖作為空間注意力模塊的輸入特征圖,該特征圖分別進行Max-Pool 與AvgPool 操作后得到兩個1×H×W特征圖,將它們在通道維度進行拼接后得到一個2×H×W的特征圖,該特征圖經(jīng)過一個卷積核大小為7×7 的卷積層后再通過sigmoid 函數(shù)得到空間注意力權(quán)值??臻g注意力權(quán)值與空間注意力模塊的輸入特征圖做乘法操作后得到CBAM 的輸出特征圖??臻g注意力模塊的表達式如公式(2)所示。
式中:Ms表示空間注意力權(quán)值;f7×7表示卷積核大為7×7 的卷積操作。
在YOLOv5 模型中嵌入CBAM 后雖然提高了模型的檢測精度,減少了漏檢、誤檢問題,但是同時也增加了模型的參數(shù)量,降低了模型的檢測速度。為了使模型既具有較高的檢測精度也具有較高的檢測速度,本研究使用深度可分離卷積(DWConv)替換YOLOv5 模型中的普通卷積(Conv)操作。深度可分離卷積原理如圖6 所示。
圖6 深度可分離卷積
圖6 中,深度可分離卷積分為兩步。第1 步使用C個卷積核大小為K×K的卷積核對輸入特征圖做逐通道卷積,其中一個卷積核只對輸入特征圖的一個通道做卷積操作,得到C個H×W的特征圖。第2 步使用N個過濾器(每個過濾器由C個1×1 的卷積核組成)分別對第1 步的輸出特征圖做逐點卷積操作,得到輸出特征圖。給定任意輸入特征圖Fi∈RC×H×W,要得到輸出特征圖FO∈RN×P×Q。其中,C為輸入特征圖的通道數(shù),H為輸入特征圖的高度,W為輸入特征圖的寬度,卷積核大小為K×K,N為輸出特征圖的通道數(shù),P為輸出特征圖的高度,Q為輸出特征圖的寬度。若使用深度可分離卷積,其卷積核參數(shù)量為C×K2+C×N×1×1。而使用普通卷積,其卷積核參數(shù)量為C×K2×N。所以,使用深度可分離卷積可以減少模型中卷積核參數(shù)量,從而減少計算量,提高模型的檢測速度。
棉花在采摘過程中除了混入如廢紙、丙綸絲、塑料薄膜等異纖外,還會混入如棉稈類的偽異纖。此類棉花異纖體積較小,而在YOLOv5 模型中,通過卷積核提取的底層特征圖具有較高的分辨率,顏色、紋理清晰,目標位置準確。但隨著網(wǎng)絡(luò)加深,底層特征圖經(jīng)過多次卷積操作后,雖然提取的特征圖語義信息逐漸豐富,含有更多概念層信息,更易于人類理解,但是圖片的分辨率低,目標位置較為粗略,隨著網(wǎng)絡(luò)逐步加深,甚至會導致小尺寸棉花異纖目標丟失,從而導致漏檢、誤檢問題。
在原YOLOv5 模型中,第17 層、第20 層、第23 層輸出的特征圖分別用于對小型、中型、大型目標檢測,但由于小尺寸棉花異纖在數(shù)據(jù)圖片中所占面積很小,經(jīng)過多次卷積后會丟失目標,造成漏檢。因此,為了提高小尺寸棉花異纖的檢測精度,解決高層特征圖分辨率低、目標位置粗略甚至丟失的問題,在原模型的基礎(chǔ)上,增加了一層融合底層特征的小尺寸棉花異纖檢測層。將第19 層提取的棉花異纖特征圖與第2 層提取的棉花異纖特征圖進行通道維度的拼接,融合其細節(jié)信息和語義信息,從而使模型在檢測小尺寸棉花異纖時具有更高的精度。改進后網(wǎng)絡(luò)結(jié)構(gòu)如圖7 所示。
圖7 改進的YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)
本研究的試驗環(huán)境為Windows10 企業(yè)版操作系統(tǒng),Intel(R)Core(TM)i9-10900X CPU @3.70 GHz 處理器,NVIDIA GeForce RTX 2080Ti 顯卡兩塊,深度學習框架為Pytorch-1.10.0、CUDA 版本為CUDA-10.2。訓練參數(shù):初始學習率為0.01,動量值為0.937,每批次包含16 張圖片,最大迭代次數(shù)300 次。
本研究數(shù)據(jù)是對紡織實驗室的異纖機棉流進行拍攝,采集到3 659 張平均尺寸為4 000 pixel×3 000 pixel 含有不同類型棉花異纖的棉花圖片作為樣本集。樣本集包含棉花異纖共6 大類:廢紙、塑料薄膜、丙綸絲、棉稈、棉線、羽毛。將采集的樣本集使用LabelImg 標記出棉花異纖在圖中的位置,得到最終數(shù)據(jù)集。數(shù)據(jù)集以8∶2 的比例劃分為訓練集與測試集。數(shù)據(jù)集可視化結(jié)果如圖8 所示。其中異纖尺寸分布以及中心坐標分布是歸一化處理結(jié)果。
圖8 數(shù)據(jù)集可視化結(jié)果
本研究使用平均精度均值mAP、模型檢測速度作為模型評價指標,mAP∈[0,1],其值越大表示模型檢測效果越好。其中mAP分為mAP@0.5和mAP@0.5∶0.95。mAP@0.5 為真實框與預(yù)測框的交并比IoU=0.5 時的mAP,mAP@0.5∶0.95為IoU在0.5 到0.95(步長0.05)上的平均mAP。模型檢測速度由在本研究GPU 環(huán)境下,檢測1 000張棉花圖片的檢測時長得到。mAP計算公式如下。
式中:P表示檢測精度,即被正確檢測的棉花異纖數(shù)量占檢測出的棉花異纖數(shù)量的比值;R表示召回率,即被正確檢測的棉花異纖數(shù)量占數(shù)據(jù)集棉花異纖數(shù)量的比值;TP為被正確檢測的棉花異纖數(shù)量;FP為被誤檢的棉花異纖數(shù)量;FN為被誤檢的非棉花異纖數(shù)量;n為總類別數(shù);i為當前類別的序號。
為了驗證模型改進后的效果,將改進后的模型與原YOLOv5 模型進行各項指標的對比,如圖9 和圖10 所示。
圖9 mAP 值結(jié)果對比
圖10 損失結(jié)果對比
由圖9 可以看出,改進后模型mAP@0.5 值與mAP@0.5∶0.95 值分別為0.981 0、0.773,相較于原模型分別提高0.022 5、0.120,mAP@0.5小幅提升,mAP@0.5∶0.95 大幅提升,且改進模型迭代曲線更加平穩(wěn),波動較小。
由圖10 可以看出,50 次迭代后,改進后模型的定位損失、置信度損失、分類損失曲線均趨于平穩(wěn),各項損失均小于原模型,表明改進后的模型收斂速度更快,損失值更小,且置信度損失前20 次迭代損失起始值小于0.15,并快速收斂,表明改進后的模型對棉花背景與棉花異纖的分辨能力更高,檢測如塑料薄膜、白色丙綸絲的精度更高,漏檢、誤檢問題得到解決。
3.3.1 消融試驗
改進后的YOLOv5 模型嵌入了CBAM 模塊,使用了DWConv,并增加了針對小尺寸棉花異纖的檢測層。為了驗證各改進對原模型的優(yōu)化作用,設(shè)計消融試驗,結(jié)果如表1 所示。
表1 消融試驗結(jié)果
從表1 可以看出,模型1 較原模型參數(shù)減少2 454 976,檢測1 000 張樣本圖時,所用時間減少約4 s,模型檢測速度提高,mAP值略有下降。模型2 特征提取能力提升,較原模型參數(shù)量增加43 912,模型的檢測時間增加2.35 s,但mAP@0.5、mAP@0.5∶0.95分別提升0.027 5、0.126。模型3 提升了模型對小尺寸棉花異纖的檢測能力,較原模型參數(shù)量增加662 689,模型的檢測時間增加約11 s,mAP@0.5、mAP@0.5∶0.95分別提升0.024 5、0.117。模型4 的mAP@0.5、mAP@0.5∶0.95較原模型分別提升0.022 5、0.120,雖然檢測1 000 張圖片所用時間比原模型多約6 s,但是滿足了棉花異纖檢測任務(wù)需求,且mAP值提升較大,較原模型更適用于棉花異纖檢測任務(wù)。
3.3.2 實際檢測結(jié)果分析
為了更好地驗證改進后的模型檢測效果,選取數(shù)據(jù)集中部分數(shù)據(jù)進行檢測,結(jié)果如圖11所示。
圖11 效果對比圖
由圖11 可以看到,YOLOv5 算法中第一幅圖存在白色丙綸絲漏檢,第二幅存在羽毛漏檢,且將棉花背景錯誤識別為白色丙綸絲,第三幅圖存在白色丙綸絲漏檢且將棉花背景錯誤識別為羽毛,第四幅圖存在小塊棉稈漏檢,且將白色丙綸絲錯誤識別為塑料薄膜。本研究改進后的模型均準確識別棉花異纖目標,未出現(xiàn)誤檢、漏檢現(xiàn)象,檢測效果明顯提升。
本研究針對目前棉花異纖檢測領(lǐng)域中背景復雜、棉花異纖種類繁多、尺寸較小,從而使得棉花異纖檢測存在誤檢、漏檢的問題,提出了一種基于改進YOLOv5 的棉花異纖檢測方法。該方法在原YOLOv5 模型的基礎(chǔ)上,通過嵌入卷積注意力模塊、使用深度可分離卷積、針對小尺寸棉花異纖增加檢測層等方法提高模型的檢測精度。試驗結(jié)果表明:該方法對小尺寸、復雜背景的棉花異纖檢測效果優(yōu)于原YOLOv5 模型,滿足棉花異纖檢測任務(wù)需求且具有更高的精度,更適用于棉花異纖檢測任務(wù)。下一步將繼續(xù)改進模型的結(jié)構(gòu)、減小模型大小,從而實現(xiàn)移動端的棉花異纖實時檢測。