?

融合瓶頸注意力模塊的改進YOLOv7 織物疵點檢測算法

2024-03-16 02:42孫麗麗孟洪兵楊安迪孫文彬
棉紡織技術 2024年3期
關鍵詞:疵點注意力卷積

陳 軍 孫麗麗 孟洪兵 楊安迪 孫文彬

[1.塔里木大學,新疆阿拉爾,843300;2.塔里木綠洲農業教育部重點實驗室(塔里木大學),新疆阿拉爾,843300]

當前,人工視覺檢測仍是主要的織物質量檢驗方式,但人工檢測容易產生主觀誤判和漏檢,影響生產效率和產品質量[1-3]。隨著深度學習在圖像特征提取和目標定位上取得優異效果,深度學習算法逐步應用于織物疵點檢測領域中。

基于深度學習的檢測算法,以基于單階段檢測算法(One-stage)和基于兩階段檢測算法(Twostage)為代表。后者首先生成目標候選框,然后再對候選框進行分類和位置回歸,以Faster RCNN 系列和Mask RCNN 系列算法為代表[4-5],對目標的檢測精度高,但檢測速度較慢,計算量和時間復雜度高,難以適應工業檢測實時性要求。前者直接使用卷積神經網絡(CNN)預測目標的類別和位置,不需要生成候選區域,以SSD、YOLO 系列等算法為代表[6-7],計算速度快,實時性好,因此易滿足工業實時檢測的需求。如蔡兆信等提出改進Faster RCNN 網絡的RPN 結構來融合多層不同尺度特征圖,增加圖像細節提取的能力[8];陳夢琦等將注意力機制與Faster RCNN 模型相結合,優化網絡模型,提高網絡對疵點圖像的檢測精度和速度[9];黃漢林等利用MobileNet 的深度可分離卷積取代SSD 主干網絡中的普通卷積,加快網絡的檢測速度,提高檢測準確率[10];石玉文等改進YOLOv5-Eff,將EfficientNet-B1 網絡作為主干特征提取網絡,引入ACmix 注意力模塊提高網絡對小尺度目標的敏感度,將SiLU 與Swish 激活函數結合,根據目標數量和密度動態調整閾值,提高算法靈活性[11]。

基于上述算法,疵點檢測取得較好成果,但在實際應用中,針對多尺度、微小目標的疵點檢測精度和速度依然是行業應用的瓶頸問題,但隨著YOLOv7 提出高效長程注意力網絡架構,目標檢測算法的精度和速度有了進一步提升,YOLOv7相同體量下比YOLOv5 精度更高,速度快120%。為了提升疵點檢測精度和速度,本研究針對疵點尺度不一、目標微小、形狀多變的特點,提出了一種改進YOLOv7 模型的織物疵點檢測算法,以期提升檢測精度和速度。本研究首先采用可形變卷積(DConv)[12]替換YOLOv7 網絡中的標準卷積模塊,融合更多感受野,在采樣時更貼近疵點的形狀和尺寸特征,更具有魯棒性;其次,在網絡中嵌入頸部注意力模塊(Bottleneck Attention Module,BAM)[13],捕獲更多疵點的特征信息,強化對微小疵點目標的敏感度;最后,構建包含扎洞、擦洞、織稀、吊經、跳花、污漬6 種疵點類型的織物疵點數據集,通過對樣本集進行預處理送入模型訓練,在織物疵點數據集進行消融和對比試驗,驗證本研究改進算法對織物疵點檢測的有效性和魯棒性。

1 YOLOv7 網絡結構

YOLOv7 是目前YOLO 系列最為先進的檢測算法之一,提出了高效聚合網絡(ELAN)、重參數化卷積、輔助頭檢測、模型縮放、動態標簽分配等策略。YOLOv7 首先對輸入的圖片調整大小后再將其輸入到特征提取網絡(Backbone)中進行特征提取,然后送入檢測頭(Head)進行特征融合網絡處理,經過RepConv 結構輸出預測結果。YOLOv7 網絡結構圖如圖1 所示。

圖1 YOLOv7 網絡結構圖

YOLOv7 網絡模型的Backbone 部分主要由標準卷積、ELAN 模塊、MP 模塊構成50 層網絡。其中ELAN 模塊的高效網絡結構可以控制最短和最長的梯度路徑,學習到更多的特征,它的優勢是保持特征大小不變,僅在最后一個CBS 輸出為需要的通道數;MP 模塊中兩個分支完成空間降采樣后進行合并,得到通道數相等但空間分辨率縮小2 倍的特征圖,重復堆疊ELAN 模塊和MP模塊即可輸出包含主要信息的3 個特征層,再利用特征金字塔(Feature Pyramid Networks,FPN)[14]對3 個特征層進行特征再提取獲得3 個加強特征層,采用FPN+PAN(PANet)結構,對特征進行上、下采樣實現特征融合;SPPCSPC 模塊經過并行多次的MaxPool 操作,避免圖像失真、訓練梯度消失等問題。

2 改進的YOLOv7 疵點檢測算法

YOLOv7 中有限的感受野設計對圖像中的微小目標檢測能力有限,缺乏特征重用限制了其捕捉物體之間空間關系的能力。因此針對疵點檢測中尺度不一、目標微小、形狀多變的特點,本研究從替換標準卷積塊和嵌入瓶頸注意力模塊改進YOLOv7,優化疵點檢測算法。

2.1 采用可變形卷積提取特征信息

標準卷積進行卷積操作時,將卷積核權重與輸入特征圖對應位置元素相乘并求和得到輸出特征圖元素,滑動窗口計算輸出特征圖,對形狀規則的物體效果較好,但疵點形狀、大小不規則時,模型適應性差,泛化能力弱,因此采用可變形卷積實現自動調整尺度或者感受野??勺冃尉矸e[15]是在標準卷積操作中采樣位置增加了一個調整卷積核的偏移量(offset),使得卷積核的形態更貼近特征物,集中于目標區域??勺冃尉矸e示意圖如圖2所示。

圖2 可變形卷積示意圖

可變形卷積對應的卷積采樣區域為正方形卷積核表示的點向各方向偏移的點,因此采用可變形卷積在采樣時可以更貼近疵點的形狀和尺寸,感受野更大。

2.2 嵌入瓶頸注意力模塊

注意力機制主要通過嵌入額外網絡結構加強學習輸入數據對輸出數據貢獻,過濾掉與目標相比不太關注的背景信息,著重于感興趣的目標信息。在疵點檢測中,本研究建立疵點特征提取工程融合注意力機制,讓模型有效且精準地提取特征,讓下游任務更聚焦與任務關系更密切的信號。常用的注意力模塊是卷積塊注意力模塊(Convolutional Block Attention Module,CBAM),融合了通道注意力和空間注意力機制,通過最大池化和平均池化增加通道注意力的語義豐富性,提升了圖片的全局信息關注,但在注意力加權計算時沒有殘差結構,計算量稍大,同時通過標準卷積操作提取特征,對微小目標的關注不夠。因此本研究提出采用頸部注意力模塊(Bottleneck Attention Module,BAM),BAM 是融合通道和空間注意力的混合注意力機制,網絡結構如圖3 所示,上面分支為通道注意力機制,先經過全局平均池化層,減少參數量,增強模型的準確性和穩定性,抑制網絡中的過擬合,然后是兩層全連接層,最后是批量標準化模塊BN 層進行歸一化,無激活函數;下面分支為空間注意力,先將特征層通過1×1 的卷積將輸入通道數量壓縮,再經過兩個3×3的膨脹卷積做特征融合,加強模型對圖像每個像素與周圍關系的理解,通道數不變,最后通過一個1×1 的卷積將通道數變成1。將通道注意力機制與空間注意力機制生成的特征圖MC(F)、MS(F)融合成和輸入特征尺寸大小相同的特征圖,再與原始輸入圖做跳層連接后輸出尺寸大小不變的特征圖。

圖3 BAM 網絡結構

由于BAM 模塊中參考了ResNet 網絡中的殘差結構,采用BN 層,因此訓練效率更高,同時使用了膨脹卷積,對目標細節建模效果更好。利用梯度加權類激活映射(Gradient-weighted Class Activation Mapping,Grad-CAM)[16]對BAM 注意力機制效果進行可視化,如圖4 所示。

圖4 BAM 注意力機制效果圖

可以發現,引入BAM 后,特征覆蓋到了待識別物體的更多部位,這表明BAM 注意力機制讓網絡學會了關注重點信息,可以提高目標檢測和物體分類的精度。

2.3 改進后的YOLOv7 模型

改進后的YOLOv7 模型網絡結構如圖5 所示,在特征提取網絡中采用可形變卷積替換標準卷積模塊,融合更多感受野,在采樣時更貼近疵點的形狀和尺寸特征;在特征網絡3 個特征輸出層前嵌入頸部注意力模塊,捕獲更多疵點的特征信息以提高對微小疵點目標的敏感度,具體改進點如圖5 中紅色標記塊。

圖5 改進后的YOLOv7 模型網絡結構

3 試驗結果與分析

3.1 數據集

本研究使用的織物疵點數據集是來自于江蘇陽光集團公開的織物圖像數據集[17]和阿克蘇紡織工業園區3 家紡織科技公司真實生產場景下采集的織物數據。經過篩選可用于模型訓練的數據包含扎洞、擦洞、織稀、吊經、跳花、污漬6 種疵點類型,樣本數量分別為1 260 張、480 張、510 張、532張、335 張、1 421 張,共計4 538 張,圖6 為不同類型的疵點圖像示例。此外,沒有包含任何疵點的正常圖像作為背景類,樣本數量為4 000 張。樣本集原始圖像分辨率為2 560 pixel×1 920 pixel,圖像特征細節清晰,數據標注前全部經過經驗豐富的驗布工人確認疵點類型。

圖6 不同類型的疵點圖像

3.2 數據預處理

原始數據集中圖像存在3 個問題:一是樣本類別不均衡,如正常樣本與跳花樣本比例超過12∶1,扎洞與跳花樣本比例超過3∶1;二是疵點區域占比很小,疵點占比不到1%的樣本超過82%;三是疵點尺度變化大,疵點尺寸長度小到100 pixel、大到2 500 pixel。數據樣本的問題會導致模型訓練過擬合、精度差、泛化能力弱,除此之外,原始圖像分辨率較大,YOLOv7 采用640 pixel×640 pixel 大小輸入,直接調整會犧牲微小疵點目標的圖像細節特征,降低圖像所帶的信息量,所以需要對訓練數據進行預處理。針對上述問題,本研究首先以滑動窗口為640 pixel×640 pixel 大小,滑動步長為320 pixel 進行移動裁剪,將每張原始圖像切割成48 張圖像細節不變的小尺寸圖像,原尺寸圖像則直接縮小為640 pixel×640 pixel 大小,達到增加帶疵點圖像的樣本和增加小尺度疵點樣本數量的目的;然后再針對處理后疵點圖像進行數據增強,從現有的疵點樣本中利用多種能夠生成可信圖像的隨機變換來增加樣本以提升模型泛化能力,本研究中所有數據增強使用Mosaic、Mixup、cutout、HSV、隨機抖動和幾何變換等方法[18-20]。最終,模型訓練樣本集經過篩選最終選擇無疵點圖像4 000 張和扎洞2 680 張、擦洞1 980 張、織稀2 126 張、吊經2 230 張、跳花1 870張、污漬2 960 張,共計17 846 張作為訓練樣本。

3.3 試驗環境

本試驗運行環境基于64 位Win10 操作系統,CPU 為Intel(R) Core(TM) i9-12900K,GPU 為NVIDIA GeForce RTX 3080 Ti 12 G,GPU 加速為CUDA11.0,編譯語言Python3.10.9,深度學習框架為PyTorch2.0.1,數據集按8∶1∶1 的比例劃分為訓練集、驗證集和測試集。模型訓練前設置訓練參數:選用官方提供的YOLOv7. pt 預訓練權重進行,輸入圖像尺寸為640 pixel×640 pixel,標簽格式為YOLO 格式,Batchsize 大小為8,以最大限度地提高GPU 設備的內存使用率,優化器為Adam 優化器并設置初始學習率為0.01,迭代次數Epoch 為200。

3.4 評價指標

為了評價模型對疵點識別檢測結果的優劣,評價標準選用精確率(Precision,P)、召回率(Recall,R)、平均精度(Average Precision,AP)、平均精度均值(Mean Average Precision,mAP)與檢測速度(Frames Per Second,FPS)[21],計算公式如式(1)~式(5)所示。

式中:TP為正確識別的數目,即樣本預測標簽為正且實際的標簽也為正;FP為錯誤識別的數目,即樣本預測標簽為正但實際的標簽為負;FN為未檢測到的正確目標的數目,即樣本預測標簽為負而實際標簽為正;AP是以召回率R為橫坐標,精確率P為縱坐標繪制P-R曲線,曲線與坐標軸圍成的面積,P-R曲線可以直觀地顯示出樣本的精確率和召回率在總體數據上的關系,衡量模型對某類疵點識別的效果;mAP為各類平均精度;FPS即每秒內檢測圖片數量,采用“幀/s”表示,其數值越大,表明模型的檢測速度越快,檢測速度是實現實時檢測的基礎;n為模型處理圖片張數;T為所消耗時間。

3.5 消融試驗

為驗證本研究提出的YOLOv7 改進算法有效性,在數據集上進行了8 組消融試驗,結果如表1 所示。mAP@0.5 為所有類別的識別平均準確率均值(IoU閾值為0.5),均在輸入圖像大小為640 pixel×640 pixel 時計算得出。

表1 消融試驗

從表1 可以看出,試驗1 僅采用YOLOv7 模型,其檢測精確率為92.1%,檢測速度為53.1 幀/s。試驗2 對數據樣本進行預處理后,檢測精確率提高1.3 個百分點,說明預處理對提升模型檢測精度具有積極作用,有效提升了疵點圖像特征信息量;檢測速度降低了0.2 幀/s,模型整體性能有所提升。試驗3 只優化了特征提取網絡,將標準卷積塊替換為可形變卷積,檢測精確率提升了2.6 個百分點,說明可形變卷積擴大感受野,對疵點的特征信息學習效果更好,但同時檢測速度下降了3.7 幀/s,因為在特征提取網絡中增加了偏移量的計算;試驗4 在特征網絡3 個特征輸出層前嵌入了BAM 注意力機制,檢測精確率提升了3.6個百分點,效果明顯,說明注意力機制使得模型對疵點關注更高,降低了背景信息的干擾,更好地進行特征信息提??;試驗5 加入數據預處理和可形變卷積,使得檢測精確率提升了3.7 個百分點,說明優化組合效果優于單一處理優化的效果;試驗6 加入可形變卷積和BAM 注意力機制,檢測精確率提升了4.2 個百分點,說明可形變卷積+BAM的組合效果優于數據預處理+可形變卷積;試驗7 加入數據預處理和BAM 注意力機制,檢測精確率提升了3.9 個百分點,說明數據預處理+BAM組合效果優于數據預處理+可形變卷積組合,但效果不如可形變卷積+BAM 的組合;試驗8 是融合本研究提出的優化方式,檢測精度提升了5.2個百分點,mAP@0.5 增加了14.3 個百分點,提升效果最優,但同時檢測速度降低了8.6 幀/s,因為在網絡中參數量提升帶來了計算量的增加。由消融試驗可得,模型加入BAM 作用最有效其次是加入可形變卷積,兩者組合處理優于單一處理,三者組合優于兩者組合,數據預處理、DConv、BAM對疵點識別的性能整體提升具有積極作用。本研究改進算法檢測結果如圖7 所示。

圖7 本研究提出的改進YOLOv7 模型檢測效果圖

3.6 注意力機制對比試驗

為了進一步驗證本研究BAM 注意力機制針對疵點微小目標的有效性,在本研究改進的YOLOv7 特征提取網絡的同樣位置分別嵌入scSE、CBAM、SCNet 和BAM 共4 種注意力機制做對比試驗,然后在相同的配置下使用同一測試集進行網絡性能測試,結果如表2 所示??梢钥闯?,在網絡中分別嵌入4 種注意力機制,都能實現對模型檢測性能的提升,其中BAM 注意力機制對網絡性能的提升較大,原因在于scSE 只是增強有意義的特征,抑制無用特征,沒有重點采樣微小目標,CBAM 和SCNet 擴大了空間位置的感受野,提升了全局注意力,但對微小目標的關注不夠,通過對比試驗證明了BAM 注意力機制對微小目標檢測的先進性。

表2 不同注意力機制對比試驗

3.7 主流算法對比試驗

為驗證本研究提出方法的有效性與先進性,將近年來基于機器視覺的目標檢測主流算法[22]與本研究方法在同一試驗環境下進行性能對比,結果如表3 所示。

表3 主流算法性能對比

由表3 可知,本研究改進的YOLOv7 疵點檢測算法在保持較快檢測速度的同時對疵點目標的檢測效果更好。通過試驗發現,兩階段目標檢測算法對目標檢測定位更準確,可以檢測多尺度的物體,但檢測速度慢,需要更強的算力。YOLO系列和SDD 同為單階段目標檢測算法,最明顯的優勢是快速和高效,易于訓練,適用于實時疵點目標檢測,缺點是對微小目標檢測能力不足,容易出現漏檢情況。YOLOv7 相比于其他算法在檢測速度和精度之間達到了良好的平衡,同時通過改進的YOLOv7 不僅提高了網絡的mAP,而且彌補了原始模型在微小疵點目標檢測方面的不足,提升了全局信息獲取能力和強化了對微小目標的敏感度,使得模型適應能力更好,魯棒性更強。

4 結語

在疵點圖像檢測識別中,因疵點目標尺度不一、微小目標特征難以捕獲,檢測效率低、容易漏檢等問題,本研究基于YOLOv7 算法提出改進特征提取網絡中的卷積塊以擴展感受野,豐富提取的特征信息和嵌入頸部注意力機制強化對微小目標的敏感度,同時對數據集進行預處理,擴充有效數據集以提升模型性能,提高泛化能力。相比于原始YOLOv7 算法,本研究改進的YOLOv7 算法的檢測精確率提升了5.2 個百分點,mAP@0.5 提高了14.3 個百分點。通過消融試驗證明了本研究改進方法的有效性,同時與Faster RCNN、YOLO 系列等模型檢測對比,采用精確率、召回率、mAP@0.5 值、FPS值進行定量分析,結果顯示改進的YOLOv7 在檢測精度和速度方面具有較好的性能,基本滿足織物疵點檢測需求。但由于疵點種類繁多,疵點樣本收集受限,在今后的工作中需要進一步加強織物疵點圖像種類和數量的擴充,嘗試更多性能提升方法,以提高疵點檢測模型的檢測精度和速度。

猜你喜歡
疵點注意力卷積
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
噴絲板疵點檢測系統設計
基于FPGA的圖像疵點處理設計與實現
從濾波器理解卷積
家蠶品種單粒繭絲疵點差異及遺傳性研究初報
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合