?

基于改進YOLOv5的番茄識別檢測算法

2023-03-04 07:49丁仁集陳丙三
福建工程學院學報 2023年6期
關鍵詞:番茄注意力卷積

丁仁集,陳丙三

(福建理工大學 機械與汽車工程學院,福建 福州 350118)

隨著智慧農業的發展,機器人自動采摘在番茄產業中得到了推廣和應用。比起人工采摘,機器人自動采摘雖然省時高效,但對番茄果實的識別準確性還需要進一步提高。研究目標識別檢測算法有助于提高番茄機器人自動采摘效率,促進番茄產業的智能化發展[1-2]。

基于卷積神經網絡的目標識別算法已在農場番茄識別檢測中得到廣泛應用。張文靜[3]等提出用改進的Faster-RCNN[4]模型識別自然環境下的番茄,但其檢測效率低下且在復雜環境下不能保證較高的檢測精度。成偉[5]等提出改進的YOLOv3[6]模型,用于識別溫室中的番茄,平均精度為95.7%,但對于小番茄仍存在誤檢和漏檢。近年來,YOLO系列目標檢測算法被不斷更新,YOLOv5的設計在精度、召回率和平均精度等方面都達到了最佳性能,是番茄檢測的理想模型,但在番茄果實存在遮擋或果實與背景顏色相似情況下,檢測效果仍不理想。

針對上述問題,本研究提出一種基于改進YOLOv5的番茄識別檢測算法,優化了YOLOv5原始算法的主要模塊 BottleneckCSP ,通過增加批歸一化層與SILU激活函數提升網絡對目標深層語義信息的提取能力;使用輕量級通用上采樣CARAFE算子增加感受野;引入無參注意力機制SimAM增強有效特征,抑制干擾特征;使用SIoU Loss作為模型的損失函數優化回歸過程,提升模型檢測性能。

1 YOLOv5算法

YOLOv5是一種單階段目標檢測算法,它汲取了許多優秀網絡結構的優點,確保高檢測精度的同時還能維持較高的檢測速度,能夠做到實時檢測目標。YOLOv5由輸入端、主干網絡(Backbone)、頸部網絡(Neck)和輸出檢測層(Head)4部分組成,其結構如圖1所示。

圖1 YOLOv5 結構Fig.1 Structure of YOLOv5

2 改進YOLOv5算法

2.1 優化BottleneckCSP模塊

BottleneckCSP模塊是YOLOv5的重要組成部分,用于構建骨干網絡。其中Bottleneck模塊(如圖2所示)是BottleneckCSP的主要構成,該模塊采用的是殘差結構,即將卷積核尺寸為1×1的卷積層與3×3的卷積層相連,并為每一個卷積層配置了一個BN層和一個激活函數。再將該部分的輸出與輸入相加,形成殘差結構,作為Bottleneck模塊的輸出。

圖2 Bottleneck 結構Fig.2 Structure of Bottleneck

BottleneckCSP模塊(如圖3所示)的主要作用是將輸入特征圖分別送入兩個分支,并對這兩個分支進行卷積操作,使其特征圖的通道數減半。其中一個分支先與Bottleneck模塊相連進行數據降維操作,再通過常規卷積進行升維;然后經過Conv層,使用Concat操作將兩個分支的輸出特征圖深度連接;最后通過BN層和Conv層依次處理,得到BottleneckCSP模塊的輸出特征圖,其尺寸與輸入BottleneckCSP模塊特征圖尺寸相同。

圖3 BottleneckCSP 結構Fig.3 Structure of BottleneckCSP

本研究在BottleneckCSP模塊的基礎上進行改進,在其上層的卷積層后面添加了一個批歸一化層和一個SiLU激活函數,形成了卷積模塊CBS。通過加入批歸一化層,既提升了算法的特征提取能力,又確保了算法的穩定性。引入SiLU激活函數可以增加算法的非線性因素,將含有更多目標位置與細節信息的低層特征圖、含有更強語義信息的高層特征圖進行融合,使得改進后的BottleneckCSP模塊的輸出特征圖可以包含更多細節信息和更強的語義信息,從而提升了BottleneckCSP模塊的特征提取能力。改進后的BottleneckCSP模塊如圖4所示,命名為BottleneckCSP_D模塊。

圖4 BottleneckCSP_D 結構圖Fig.4 Structure of BottleneckCSP_D

2.2 CARAFE 輕量級通用上采樣算子

YOLOv5原始算法默認使用最近鄰插值,僅根據像素點的空間位置來確定上采樣核,并未充分利用特征圖的語義信息,可以將其看作是一種“均勻”的上采樣方式,但感知域通常較小。為了解決該問題,本研究的番茄識別檢測算法引入了輕量高效的上采樣算子CARAFE[7],通過少量參數和計算保持輕量級功能并擴大感受野。CARAFE由上采樣預測模塊和特征重組兩個模塊構成,如圖5所示。

圖5 CARAFE 上采樣結構Fig.5 Up-sampling structure of CARAFE

2.3 SimAM 注意力機制

當待檢測目標和背景環境相似時,在神經網絡中添加注意力機制可以有效地剔除不相關信息的干擾。改進的番茄識別檢測算法使用了三維的無參數SimAM[8]注意力機制改進特征融合網絡。與一維、二維的注意力機制相比,三維注意力機制在沒有引入參數的情況下就能夠更加全面高效地平衡特征的重要性,從而增強目標區域的特征權重并降低背景特征的權重。SimAM注意力機制模塊如圖6所示。

圖6 SimAM注意力機制結構圖Fig.6 Structure of SimAM attention mechanism

SimAM 注意力機制的計算過程如式(1)所示。

(1)

(2)

(3)

(4)

式中,X為輸入特征,M為輸入特征圖的尺寸。通過對神經元進行操作,賦予帶有關鍵信息的神經元更高的權重,提高網絡的識別和定位精度,而不會增加網絡的額外參數。本研究將注意力機制添加在檢測頭前,如圖7。

圖7 注意力機制添加區域Fig.7 Addition area of attention mechanism

2.4 SIoU損失函數

SIoU[9]損失函數在CIoU損失函數的基礎上,定義了預測框向真實框靠近的方向,避免了預測框的游蕩現象,從而可以進一步提高模型的回歸精度。因此,改進的番茄識別檢測算法選擇SIoU損失函數來計算回歸預測損失。

SIoU_Loss損失函數由4個Cost函數組成:Angle cost、Distance cost、Shape cost和IoU cost,包含的數學定義為式(5)~式(11)。Angle cost添加了LF角度感知組件,模型首先將預測框帶到X或Y軸,然后沿著相對應的軸繼續接近。為實現這一點,引入和定義 LF 組件如下:

(5)

(6)

Distance cost重新定義為

(7)

Shape cost 的定義為

(8)

其中,θ的值定義為每個數據集的 Shape cost,并且其值是唯一的,它控制著對Shape cost 的關注程度。

IoU cost 的定義為

(9)

其中,B表示真實框,BT表示預測框?;貧w損失函數SIoU為

(10)

總損失函數為

L=WboxLbox+WclsLcls

(11)

其中,Lcls是 focal loss,Wbox和Wcls分別是框和分類損失權重。

3 試驗及結果分析

3.1 數據集

研究采用的數據集為 Kaggle 公開的數據集,由895張帶有標注的番茄圖像組成,同時實地采集400張番茄圖像標注之后與公共數據集混合。為擴大數據集數量,分別對圖像進行隨機翻轉、改變亮度、Mosaic增強和Mixup增強等操作,加上原始數據后一共有3 980張圖片。對增強后的數據集按照8∶1∶1的比例劃分為訓練集、驗證集、測試集,數據集圖像,如圖8所示。

圖8 番茄數據集Fig.8 Tomato dataset

3.2 實驗環境與參數設定

實驗運行環境如表1所示。訓練時,使用余弦退火算法調整學習率,采用SGD優化器進行參數更新,參數設置如表2所示。

表1 實驗環境配置Tab.1 Experimental environment configuration

表2 參數設置Tab.2 Parameter settings

3.3 評價指標

采用的算法評價指標有精確率P、召回率R、平均精度AP和平均精度均值mAP等指標衡量算法性能,計算公式如下:

(12)

(13)

(14)

(15)

其中,TP表示正確檢測出的番茄目標,FP表示錯誤檢測的番茄目標,FN表示實際存在但未被檢測的番茄目標,N表示標簽類別數。

3.4 訓練結果

在相同的配置環境下,將原始算法和改進后的算法分別進行了100輪訓練。平均精度均值曲線的對比如圖9所示,其中虛線代表原始的YOLOv5算法,實線代表改進后的YOLOv5算法,圖9中橫坐標表示訓練次數,總共為100輪,縱坐標表示平均精度均值,從圖9可以看出,在前20輪訓練時,算法的收斂速度非???經過30輪訓練迭代后,兩個算法曲線都趨于水平,改進后算法平均精度均值明顯提高,表明算法改進方案是有效的。

圖9 YOLOv5改進前后對比曲線Fig.9 Comparison curve of YOLOv5 before and after improvement

3.5 注意力機制對比試驗

為了驗證不同的注意力機制對 YOLOv5算法的性能的影響,對比 SE、CBAM、CA 和 SimAM4種注意力機制,結果如表3所示。從表3可見,除了CA之外,其它3種算法的平均精度均值相比原始 YOLOv5 算法都有不同程度的提升。其中,SE的精確度提升較大,但召回率提升不夠明顯;CBAM和SimAM的精確率、召回率和平均精度均值3個指標都有一定提升,但SimAM的提升更為顯著,分別比YOLOv5原始算法提高了1.9%、2.1%和1.7%,綜合檢測性能更好。因此,本研究選擇SimAM模塊進行識別檢測。

表3 不同注意力機制的對比Tab.3 Comparison of different attention mechanisms

3.6 消融試驗

為了驗證4種改進方案的檢測效果,本研究在番茄數據集上進行了消融試驗和對比分析。為了確保試驗的嚴謹性,在試驗過程中使用了相同的參數配置,結果如表4所示。相較于原始YOLOv5算法,4種改進算法的性能都有不同程度的提升。

表4 消融試驗結果Tab.4 Ablation test results

3.7 主流目標檢測模型對比

為了進一步評估改進算法對番茄的檢測性能,將改進后的算法與SSD[10]、Faster-RCNN、YOLOv4-tiny以及YOLOv5目標檢測算法進行了比較。從表5可以看出,改進后的YOLOv5算法的平均精度均值和召回率都優于其他算法,相較于原始YOLOv5,平均精度均值提高了3.4%,達到96.5%;召回率提高了3.8%,達到89.1%。由于召回率的提高,改進后的算法會檢測到更多的番茄目標,幀率有所下降,但仍快于SSD、Faster-RCNN和YOLOv4-tiny,滿足現實番茄檢測的實時性要求。

表5 主流算法性能對比Tab.5 Performance comparison of mainstream algorithms

3.8 應用檢測評價

為了進一步證明改進5算法對番茄檢測的有效性,對YOLOv5原始算法和改進算法在實際種植場景進行可視化比較。選擇了番茄果園中的枝葉遮擋、果實遮擋、背景相似和遠距離的4種復雜場景。如圖10所示,原始YOLOv5算法在4種復雜場景下存在不同程度的誤檢和漏檢問題,且檢測置信度偏低。改進后的算法有效降低了原始YOLOv5檢測過程中存在的誤檢、漏檢問題,并且提高了置信度,如圖11所示。綜上,改進的算法在實際番茄種植場景中具有更好的檢測性能。

圖10 YOLOv5改進前的效果Fig.10 Effects before improvement of YOLOv5

圖11 YOLOv5改進后的效果Fig.11 Effects after improvement of YOLOv5

4 結論

本研究針對當前番茄機器人檢測精度較差以及對遮擋目標存在漏檢的問題,提出一種基于改進YOLOv5算法的番茄目標識別檢測算法。算法通過設計BottleneckCSP_D模塊替換BottleneckCSP 模塊,擴大感受野,增強模型的特征提取能力;引入三維無參數SimAM注意力機制,抑制了背景中無關信息的干擾,保持了檢測速度的同時提高了檢測精度;更換上采樣為CARAFE算子,增強特征融合準確度,充分融合上下文語義信息;改進損失函數,優化邊界框回歸過程,提升預測錨框準確率。結果表明, 相比原始算法,改進后的YOLOv5的mAP提高了3.4%,置信度更高,對遮擋環境和背景相似環境中番茄目標的檢測性能也得到了提高,其檢測精度能夠滿足農場番茄實際采摘的需求。該算法可為番茄自動采摘提供了技術支持。

猜你喜歡
番茄注意力卷積
讓注意力“飛”回來
番茄炒蛋
秋茬番茄“疑難雜癥”如何挽救
基于3D-Winograd的快速卷積算法設計及FPGA實現
番茄果實“起棱”怎么辦
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合