?

改進YOLOv5s的紗管目標檢測方法

2024-03-08 13:08姜越夫呂緒山
機械與電子 2024年2期
關鍵詞:紗管集上尺度

姜越夫,王 青,呂緒山

(西安工程大學機電工程學院,陜西 西安 710699)

0 引言

管紗[1]是紡紗和織造工藝流程中必要的紗線存放形式,其中,紗管識別和分類的自動化對于紡紗和織造過程的自動化和智能化非常重要[2-3]。傳統的紗管識別和分類主要通過人工實現[4],效率低下,容易出現失誤。因此,實現紗管識別和分類的智能化[5-6]是適應我國智能化發展趨勢的必要途徑。

紗管識別和分類的智能化發展離不開實現紗管目標的智能檢測。早期紗管的智能檢測可以使用經典的計算機視覺算法進行處理。如任慧娟等[7]基于HSV顏色空間中不同顏色紗線的色調不同,進行筒子紗種類的識別;張帆等[8]采用改進色差法將檢測到的紗管圖像與模板進行匹配;高暢等[9]采用多分類支持向量機利用提取特征進行紗管分類。然而,這些經典方法十分依賴于定義的特征,在面對復雜背景、光照變化、遮擋等情況時容易出現誤判或漏判,難以滿足企業的要求。

基于深度學習的目標檢測方法已成為目標識別的主流方法,可以分為2類:Two-Stage和One-Stage。Two-Stage算法具有較高的準確率,但檢測速度相對較慢。最早將卷積神經網絡應用于目標檢測的Two-Stage算法是R-CNN[10],該算法在檢測速度和精度上均存在一定限制。隨后的Fast R-CNN[11]、Faster R-CNN[12]和Mask R-CNN[13]算法在檢測速度方面有所提升。One-Stage算法具有更快的檢測速度,但準確率相對較低,具有代表性的One-Stage算法包括YOLO[14-16]和SSD[17],這些算法在速度方面表現出色,但隨著網絡不斷加深,導致圖像中信息丟失,于是Lin等[18]提出特征金字塔(feature pyramid networks,FPN);徐建等[19]采用改進的AlexNet模型進行了紗管識別,其識別效率有效提高,然而,該方法僅適用于單個物體的圖像識別,難以滿足現實情況下的多物體場景需求。

針對上述問題,本文以目前主流的YOLOv5算法為基礎,進行算法改進研究,以增強對紗管的特征提取能力,提高紗管的檢測精度和檢測性能,同時實現多物體場景下的紗管識別需求。

1 YOLOv5s網絡

如圖1所示,YOLOv5s模型由4個部分組成:Input、Backbone、Neck和Head。Input部分包括mosaic數據增強、自適應錨框計算和自適應圖片縮放;Backbone部分包括Focus、CBS、C3、SPP等模塊,用于從輸入圖像中提取特征信息;Neck部分采用了PAN結構,通過不同層次的特征融合來提高模型的檢測精度;Head部分采用了CIoU損失函數,輸出80×80、40×40、20×20這3個不同尺度的特征圖,可以檢測小、中、大不同尺寸的物體。

2 YOLOv5s算法改進

本文從以下5個方面進行算法改進:

a.將Backbone網絡中最后一個C3模塊的Res Block替換為Transformer Block。

b.將SPP模塊替換為SPP+模塊。

c.在SPP模塊和C3模塊之間添加坐標注意力(CA)模塊。

d.在PAN基礎上添加BiFPN結構。

e.將原來的CIoU損失函數替換為WIoU損失函數。

改進后的YOLOv5s算法框架如圖2所示。

圖2 改進后的網絡結構

2.1 Transformer模塊

Transformer模塊可以被用來對目標特征進行全局上下文信息的編碼和解碼,使得模型能夠更好地學習到目標之間的依賴關系,從而提高模型的檢測精度,故以Transformer模塊替換C3的Res Block模塊,Transformer結構如圖3所示。

圖3 Transformer模塊結構

2.2 CA注意力模塊

通過將位置信息嵌入到通道注意力中,CA[20]注意力模塊能夠捕獲跨通道信息、方向感知和位置敏感信息,提升網絡特征融合能力和捕獲更多位置細節。同時,CA注意力模塊能夠動態調整通道的權重,適應不同的任務和數據集,提高網絡的泛化能力。

此外,因為其能夠區分不同通道的特征,提高特征的多樣性,這使得模型能夠更準確地提取重要的特征信息,提高模型的檢測精度。因此,在SPP模塊和C3模塊之間添加坐標注意力(CA)模塊。

CA模塊可以被視為一種計算單元,可以接受一個形狀為X=[x1,x2,…,xc]∈RC×H×W的張量作為輸入,然后輸出一個形狀相同但具有增強特征表示能力的張量Y=[y1,y2,…,yc]∈RC×H×W,具體過程如圖4所示。

2.3 BiFPN

在目標檢測任務中,由于不同尺度的特征往往包含了不同的信息,因此融合不同尺度的特征對于提高檢測準確性非常重要。本文為了實現快速而簡單的多尺度特征融合,采用BiFPN的思想[21],并將其應用于YOLOv5s的多尺度特征融合部分。通過添加跨尺度連接,可以將不同尺度的特征融合起來,以便在不增加太多計算成本的前提下提高特征融合的效果。在融合過程中,為了讓網絡更好地學習到每個特征層對目標檢測任務的貢獻,為每個節點設置了權重,以便充分學習每個特征層的重要性分布權重,從而在多尺度特征融合過程中提高檢測準確性。

2.4 SPP+模塊

SPP+是SPP的一種改進,它旨在解決SPP在處理不同尺度物體時可能會出現的信息損失問題。SPP在網絡中使用池化操作來處理不同尺度的物體,但由于不同尺度的物體具有不同的空間布局和變形,導致其感受野大小不足以保留所有的空間信息,從而影響了檢測精度。為了解決這個問題,SPP+引入了多個具有不同感受野大小的卷積層,這些卷積層與平均池化層疊加和拼接,如圖5所示,使得SPP+可以更好地保留不同尺度的空間特征信息,從而減少信息損失,提高了目標檢測的準確性。

圖5 SPP+模塊結構

2.5 損失函數

在目標檢測中,邊界框回歸(bounding boxes regression,BBR)的損失函數對于模型的性能提升至關重要。然而,訓練集中存在大量低質量實例,若在這些實例上盲目強化BBR,反而會影響模型的檢測能力。為了解決這個問題,Zhang等[22]出了Focal-EIoU v1,但其聚焦機制是靜態的,沒有充分挖掘非單調聚焦機制的潛力。因此,本文引入WIoU策略,它不僅可以降低高質量錨框的競爭力,還可以減小低質量示例產生的有害梯度,使得WIoU可以更好地聚焦于普通質量的錨框,并提高整個檢測器的性能。

3 紗管檢測實驗與結果分析

3.1 紗管數據集

針對目前缺乏標準紗管數據集的情況,本文自行構建了紗管數據集。首先拍攝了不同類型的紗管照片,包括經紗管、緯紗管、粗紗管、寶塔型紗管、寶塔型網眼紗管、并行管、小型塔狀紗管和加彈紗管等8種類型。之后采用Roboflow進行紗管照片的實例標注。隨后,采用剪切、加入噪聲和模糊等方法對數據集進行了數據增強處理,最終得到了一個包含4 385張圖片的紗管數據集,其中訓練集圖片3 965張,測試集圖片420張。

此外,為了驗證改進的YOLOv5s算法的有效性,實驗還使用了開源的安全帽佩戴數據集(safety helmet wearing detect dataset,SHWD)進行驗證。該數據集包括9 044個佩戴安全帽的正樣本人物頭像和111 514個未佩戴安全帽的負樣本人物頭像,以訓練集∶測試集=9∶1的比例劃分數據集,得到訓練集有2 916張正樣本圖像和3 905張負樣本圖像,測試集有325張正樣本圖像和435張負樣本圖像。

3.2 實驗環境及參數配置

實驗平臺為Windows11 64位操作系統,Intel(R) Core(TM) i7-12700H處理器,運行內存16.0 GB,6 GB顯存的NVIDIA GeForce RTX 3060 Laptop GPU,CUDA版本為11.7,PyTorch版本為1.13.0,Python3.8環境。

實驗在數據集上從頭開始訓練權重,使用Adam優化器對網絡參數進行迭代更新,batch大小設為8,訓練周期為100個epoch,初始學習率設為0.01,權重衰減系數設置為0.000 5,在前3個epoch使用Warm-Up方法,之后使用余弦退火算法更新學習率。

3.3 評價指標

為了精確評估改進后的YOLOv5s算法模型的性能,本文采用召回率R、精度P、均值平均精度KmAP)3個指標對模型進行性能評估。計算公式為

(1)

(2)

(3)

(4)

式中:n為類別總數;KAP為用于衡量模型對某一類別的平均精度;KmAP為所有類別的平均KAP值;MTP為算法預測正確的正樣本;MFP為算法預測錯誤的正樣本;MFN為算法未預測出的正樣本。

3.4 消融實驗與結果分析

本文算法從特征提取、特征融合和損失函數幾個方面對YOLOv5s進行改進,為了評估每個模塊對目標檢測的優化程度,分別在紗管數據集和公共數據集上設計了單項的消融實驗,實驗結果如表1和表2所示。

表1 在公共數據集上的性能比較

表2 在紗管數據集上的性能比較

表1和表2中,“-”表示未采用當前模塊,“√”表示采用當前模塊。2個表中的第一行均為原始YOLOv5s算法,最后一行則為所提出的改進算法,中間幾行是進行消融實驗后得到的對比算法。

根據表1、表2可以看出,對于單個模塊的檢測效果,無論是紗管數據集還是公共數據集,本文所采用的4個指標并不能全部提升。具體而言:

a.在公共數據集上:BiFPN方法對精度提升較明顯,提升了0.014,但是KmAP@.5:.95下降了0.005;CA注意力機制對召回率和KmAP@0.5提升較為明顯,分別提升了0.010和0.013,但精度下降了0.017,下降較為明顯。

b.在紗管數據集上,采用WIoU作為損失函數對召回率、KmAP@0.5和KmAP@.5:.95提升較為明顯,分別提升了0.017、0.020和0.015。

c.相比之下,本文改進后的YOLOv5s算法在紗管數據集上,每個指標都能得到提升,精度、召回率、KmAP@0.5和KmAP@.5:.95分別提升了0.029、0.026、0.025和0.018;在公共數據集上,精度、召回率、KmAP@0.5和KmAP@.5:.95分別提升了0.020、0.010、0.015和0.003。綜上所述,改進后的算法漏檢率低、誤檢率低、識別精度高,能夠實現對不同種類紗管的有效檢測。

圖6通過可視化的對比方式直觀的體現出改進算法的優勢,其中圖6a是YOLOv5s算法的檢測結果,圖6b是改進后算法的檢測結果。由圖7可以看出,改進后的算法檢測出了部分原算法無法檢測到的被遮擋物體。

圖6 紗管檢測效果對比

4 結束語

本文在YOLOv5算法基礎上,將CA注意力機制和Transformer融入骨干網絡,使用SPP+模塊替換傳統的SPP模塊,采用BiFPN思想來增強特征融合,并使用WIoU損失函數替代原有的損失函數。實驗結果表明,改進后的算法表現出漏檢率低、誤檢率低和識別精度高等優點,能夠有效地應用于不同種類紗管的檢測。

猜你喜歡
紗管集上尺度
一種圓織機用梭子及圓織機
更正
財產的五大尺度和五重應對
Cookie-Cutter集上的Gibbs測度
鏈完備偏序集上廣義向量均衡問題解映射的保序性
考慮結合面特性的錠子組合系統固有頻率與振型
復扇形指標集上的分布混沌
宇宙的尺度
一種自絡紗管收集器
9
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合