?

采用改進的YOLOv5s 檢測花椒簇

2023-11-26 10:13熊舉舉彭佑菊何佳佳
農業工程學報 2023年16期
關鍵詞:錨框花椒標簽

徐 楊 ,熊舉舉 ,李 論 ,彭佑菊 ,何佳佳

(1. 貴州大學大數據與信息工程學院,貴陽 550025;2. 貴陽鋁鎂設計研究院有限公司,貴陽 550025)

0 引言

隨著農業領域的快速發展與人工智能技術的廣泛應用,農業生產逐漸朝著智能化、高效化的方向發展。作為中國常見的農作物之一,花椒被廣泛種植和消費。然而,傳統的花椒采摘主要依賴人工勞動。由于花椒枝干上遍布尖刺且枝葉雜亂,采摘的難度較大。因此,開發自動化采摘技術[1-2]對花椒產業的發展至關重要。

目標檢測算法是實現自動化采摘技術的關鍵[3]。傳統的目標檢測算法通常需要先對花椒圖像進行分割,去除背景信息,再提取尺度不變特征轉換[4](scaleinvariant feature transformer,SIFT)或方向梯度直方圖[5](histogram od oriented gradient,HOG)等紋理特質,然后進行目標定位和識別。萬芳新等[6]利用紅色和綠色的圖像差異進行分割,使用優化腐蝕濾除噪點和隔離帶法去除非目標花椒果實,實現對花椒的定位。齊銳麗等[7]利用HSV(hue,saturation,value)模型對花椒圖像進行處理,然后使用Otsu 算法進行閾值分割,以達到對花椒目標的辨識。

上述傳統的機器學習算法需要手工提取特征,難以獲得較好的檢測結果?;谏疃葘W習的目標檢測算法通過大規模的訓練和端到端的學習取得了顯著進展,能夠有效應對農業工程中復雜的場景、光照變化、遮擋等挑戰。它們能夠適應不同尺寸、不同類別、不同比例和不同的形狀目標,具有魯棒性強、自適應性好、準確率高的優勢。在農業自動化領域得到了廣泛的應用,如獼猴桃花朵檢測[8],茶葉雜質檢測[9]、套袋柑橘檢測[10]等。

常用的目標檢測算法分為兩類,第一類是基于候選區域的目標檢測算法。主要有R-CNN[11]、Fast R-CNN[12]、Faster R-CNN[13]、SPPNet[14]等。另一類是基于回歸的目標檢測算法,代表性的算法有YOLO[15-18]系列和SSD[19]系列等。YOLO 系列算法具有高準確率和高檢測速度的優點,被廣泛應用在農作物的果實檢測中。趙德安等[20]通過YOLOv3 卷積神經網絡遍歷整個圖像回歸目標的類別和位置,在效率與準確率兼顧的情況下實現了復雜環境下蘋果的檢測。楊堅等[21]改進YOLOv4,通過添加小目標檢測頭有效解決遮擋和小番茄識別準確率低的問題。

目前國內外對農作物果實的目標檢測研究較為成熟,但是以花椒簇為對象的目標檢測研究較少。李光明等[22]使用ShuffleNet 作為主干,輕量化YOLOv5 模型實現了對花椒簇的檢測。楊前等[23]提出多任務上下文增強的花椒檢測模型,向YOLOv4 目標檢測網絡中加入枝干分割模塊,形成檢測-分割多任務網絡準確檢測近景花椒。

本研究提出一種基于YOLOv5s 的花椒簇檢測模型,通過改進YOLOv5s 的主干網絡、使用OTA(optimal transport assignment)優化模型訓練過程中的標簽分配策略、使用WIoU 作為邊界框損失函數實現對花椒測的快速檢測。

1 材料與方法

1.1 數據集

本文以成熟的花椒簇為研究對象,部分圖像采集于貴州省黔西南布依族苗族自治州晴隆縣玄德花椒產業發展有限公司花椒種植基地,其經度、緯度及海拔分別是26.148°、105.942°和1 007 m。于2022 年6 月3 日,采用手機攝像頭進行拍攝,拍攝照片分辨率為2 400×1 344 像素,經過篩選得到400 張圖像。為了增強數據的多樣性,從中國植物圖像庫獲取了148 張花椒圖像作為補充,以提供更多樣化的花椒簇樣本,覆蓋更廣泛的特征和變化。

對收集到的548 張圖像,使用LabelImg 工具對目標以最小外接矩形框進行標注。為了增加數據的多樣性及魯棒性,對這些圖像進行數據增強處理,針對每張圖像及其標注框,采用隨機旋轉和亮度調整的方式進行數據擴充。具體來說,將圖像在-15°到15°之間隨機旋轉、并對圖像及標注框進行隨機亮度調整,調整范圍為-25%到25%。通過這種方式,為每張圖像生成兩張新的圖像,最終得到共計1 644 張圖像的數據集。將數據集按照7:2:1 的比例隨機劃分訓練集、驗證集以及測試集。數據集部分圖像如圖1 所示。

圖1 數據集部分圖像示例Fig.1 Example of some images from the dataset

1.2 改進YOLOv5s 模型的搭建

YOLOv5s 主要由骨干網絡(BackBone)、頸部網絡(Neck)和頭部預測網絡(Head)組成。YOLOv5s 的主干網絡CSPDarkNet53 通過深層的卷積神經網絡進行圖像提取,卷積神經網絡可以高效的提取圖像特征,但是感受野較小,難以捕獲較遠距離的語義信息。此外,卷積神經網絡通過在圖像的不同位置應用相同的卷積核進行權值共享,難以準確識別具有不同尺度或上下文信息的目標。自注意力機制對圖像的全局依賴關系進行建模,不進行權值共享,更適應不同尺度、形狀和上下文信息的目標,可以提供更精準的定位和目標區分能力。

改進YOLOv5s 的結構如圖2 所示,主要改進如下。首先,結合卷積神經網絡與自注意力機制的優勢,利用輕量級的卷積神經網絡模塊MBConv[24]和基于ReLU 的自注意力機制[25]改進EfficientViT 網絡[26]。用其作為改進YOLOv5s 的主干網絡,減少模型參數量的同時增強模型的感受野以及多尺度學習能力。其次,在訓練過程中使用了OTA[27]標簽分配策略,利用全局信息尋找最優的樣本匹配結果,提高標簽分配的質量。最后,用WIoU 損失函數[28]對原損失函數CIoU 進行替換,通過將高質量錨框的競爭能力降低,同時減少低質量錨框所產生的有害梯度,來優化邊界框定位能力。

圖2 改進YOLOv5s 網絡整體架構Fig.2 Improved YOLOv5s network architecture

1.2.1 EfficientViT 網絡

本文使用改進的EfficientViT 網絡作為改進YOLOv5s 模型的主干,該網絡使用一系列輕量化的卷積操作和輕量級自注意力機制提取圖像特征。EfficientViT網絡架構如圖3 所示。輸入維度為640×640×3 的三通道RGB 圖像,通過Input Item 模塊后,特征圖依次通過Stage1、Stage2、Stage3、Stage4 進行處理,最終將Stage4 的輸出輸入到SPPF(fast spatial pyramid pooling)模塊中。在特征提取的過程中,使用MBConv(MobileNetV3 block convolution,MBConv)模塊來提取圖像的特征。在Stage3 和Stage4 的MBConv 之后,添加LightweightViT 模塊,以進一步的增強重要特征的表達能力。

圖3 EfficientViT 網絡整體架構Fig.3 EfficientViT network architecture

MBConv 模塊的結構如圖4 所示。首先,通過一個輕量級的1×1 卷積操作,降低輸入特征圖的通道數。然后采用深度可分離卷積DWConv(depthwise convolution,DWConv)對輸入進行處理。經過DWConv 之后,將其輸出通過SENet[29](squeeze-and-excitation networks,SENet)進行處理。接下來,通過一個1×1 卷積操作將通道數恢復到與輸入特征圖相同的數量。最后,將經過DWConv 和SENet 處理的特征圖與輸入特征圖在相同維度的數值進行相加,避免梯度消失的問題。

圖4 MBConv 模塊Fig.4 MBConv module

其中,DWConv 分為深度卷積和逐點卷積。深度卷積將通道間的卷積分解為獨立的卷積操作,在每個通道上進行獨立的卷積。逐點卷積使用1×1 的卷積核對深度卷積的輸出進行卷積操作,相當于對特征圖的通道維度進行線性組合。兩者相結合,使得網絡在保持高效性的同時,能夠更好地提取和表示特征。

SE 模塊通過一個全局平均池化將特征圖降維,然后通過兩個全連接層生成每個通道的注意力權重,最后這些權重與輸入特征相乘,得到新的特征圖。SE 模塊的輸入是之前模塊得到的特征圖F∈RH×W×C,輸出為

式中?表示基于元素的乘法,兩個全連接層的激活函數分別是ReLU 函數和Sigmoid 函數。SE 模塊的輸出保留了輸入特征圖每個通道的重要信息,通過對每個通道的自適應調整,以突出關鍵特征,能夠提高網絡的表達能力和特征選擇能力。

LightweightViT 模塊如圖5 所示。該模塊由一個輕量級多尺度注意力Lightweight MSA(lightweight multiscale attention)模塊和一個MBConv 模塊組成。

圖5 LightweightViT 模塊Fig.5 LightweightViT module

Lightweight MSA 模塊使用5×5 和3×3 的深度可分離卷積DSConv(depthwise separable convolution,DSConv)將附近的Q、K、V聚合起來。再通過輕量級的自注意力處理,增強了模塊的多尺度學習能力。假設輸入是x∈RN×f,自注意力可以表示為

式中Q=xWQ,K=xWK,V=xWV,Qi是矩陣Q的第i行,Kj、Vj分別是矩陣K、V的第j列。而WQ、Wk、WV∈Rf×d是可學習的線性映射矩陣。Oi是輸出矩陣O的第i行。Sim(·,·)是相似性函數。

本文使用基于ReLU 的全局注意力,相似性函數Sim(·,·) 可表示為 Sim(Q,K)=ReLU(Q)ReLU(K)T。則式(2)可改寫為

1.2.2 標簽分配策略

目標檢測網絡通過預測一組預先定義的特征點或錨框(YOLOv5s 中使用錨框)的分類標簽和回歸偏移量完成密集的預測任務。為了訓練檢測器,需要為每個錨框定義分類標簽和回歸目標,這被稱為標簽分配。在YOLOv5 中,采用了基于形狀匹配的標簽分配策略,該策略通過計算真實標注目標和每個錨框的寬高比來確定正樣本。

OTA 標簽分配策略從全局的角度進行標簽分配。將其視為一個優化運輸(optimal transport,OT)問題。其目標是尋找一個運輸計劃 ω*={ωi,j|i=1,2,...m,j=1,2,...n},使得所有供應商的貨品都能夠以最小的運輸成本提供給需求者,可表示為

式中m為供應商數量、n為需求者數量、s為供應向量、d為需求向量。對于目標檢測任務,假設輸入圖像中存在m個真實標注目標和n個錨框(anchor)。把每一個真實標注目標視為持有k個單位正標簽的供應商,而每一個錨框則是單位標簽的需求者。將單位正標簽從gti運輸到一個錨框aj的成本可以表示為分類損失和回歸損失的加權和

除了正樣本之外,大量的錨框被當作負樣本。假設這些負樣本錨框的由輸入圖像的背景提供。因此將背景提供的負樣本數設置為m-n×k。從背景到一個錨框aj運輸一個單位的負標簽的成本cbg∈R1×n定義為

式中?表示背景分類。供應向量si可表示為

所以,完整的損失矩陣c∈R(m+1)×n,供應向量s∈Rm+1,需求向量d∈Rn,最優運輸計劃 ω*∈R(m+1)×n可以通過現成的Sinkhorn-Knopp[30]迭代法解決這個OT問題得到,將每個錨框分配給向其運輸最多標簽的真實標注目標來解碼相應的分配方案。

1.2.3 WIoU 損失函數

⑤由于本工程模袋布長度比較長,底坡為新開挖土質,為防止滑坡,采用先充灌(標高35 m左右)和上溝底用于固定模袋布,再由潛水員充灌水下下平臺(標高28.7 m)及自下而上充灌坡面,上平臺與斜坡間采用臨時隔斷(人工縫隔斷線),待整倉模袋布接近飽滿時解除臨時隔斷線。

邊界框定位損失直接決定了模型的目標定位能力。WIoU 使用了動態非聚焦機制,該機制使用離群度作為衡量錨框質量的指標,并提供了梯度增益分配策略。損失函數LWIoUv1可表示為

式中Wg、Hg是目標邊界框與錨框的交集的寬和高,x、y表示錨框中心點坐標,xgt、ygt表示目標邊界框中心點坐標、IoU(intersection over union)表示預測框與真實標注框的重疊面積與其并集面積的比值。RWIoU∈[1,e)會放大質量普通的錨框的LIoU、LIoU∈(0,1)會減少高質量錨框的RWIoU。

式中當 β=δ 時,使r=1。由于是動態的,使得LWIoU能夠實時的做出梯度分配策略。

1.3 試驗環境與評價指標

1.3.1 試驗環境

本文方法基于python3.8 和pytorch1.12.1 框架實現。輸入圖像大小為640×640×3 的RGB 圖像,在單張高性能NVIDIA GeForce GTX 3 090 顯卡上訓練。采用SGD優化器進行優化,模型的訓練周期(Epoch)為300、批量大?。˙atch size)為16、初始學習率為0.01,使用余弦退火函數動態降低學習率、權重衰減為0.000 5。WIoU 損失函數中設置 δ=2,α=2.2,對動量m設置n=300,t=25。

1.3.2 評價指標

mAP 由準確率(precision)和召回率(recall)計算得到。首先利用準確率何召回率繪制PR 曲線并求其積分可以得到每個種類的平均精度AP(average precision),即再對所有類別的AP 求取平均值便可得到mAP。P、R的具體計算可見參考文獻 [31]。

2 結果與分析

2.1 消融試驗

為了評估和驗證提出的改進YOLOv5s 模型中不同組件和算法對檢測模型的影響。以YOLOv5s 模型為基礎,在試驗中逐步移除或添加不同的組件,并通過不同的組件組合進行7 組試驗,以驗證各個組件的有效性。試驗結果如表1 所示。

表1 消融試驗結果Table 1 Result of ablation experiment

從表1 可以看出7 組試驗對改進YOLOv5s 模型中不同組件或算法對花椒簇目標檢測性能的影響。在第1組試驗中,將YOLOv5s 模型的邊界框損失函數替換為WIoU 損失函數,模型的mAP 從95.4%上升到96.1%。第2 組試驗將YOLOv5s 的主干網絡替換為EfficientViT 網絡,模型的mAP 提升至96.3%,同時模型的參數量從7.0 M 減少到5.7 M、浮點運算數從15.9 G 減少到10.4 G,使用EfficientViT 作為主干在減少參數量的同時增強了多尺度學習能力和對重要特征的表達能力。在第3 組試驗中,在YOLOv5s 的基礎上使用OTA 標簽分配策略,模型的mAP 提升0.8 個百分點,參數量增加了0.2 M,浮點運算數FLOPs 增加了1.1 G。OTA 標簽分配策略略微增加模型的復雜度以和計算量,但提升了模型的精度。在接下來的第4、5、6 組試驗中,將這些組件兩兩組合,添加到了YOLOv5s 的網絡上,都使得模型的mAP 得到不同程度的提升。最后,將YOLOv5s 的主干網絡替換為EfficientViT 網絡,并在訓練中采用了OTA 分配策略,將CIoU 損失函數更改為WIoU 損失函數,構成本文提出的改進YOLOv5s。在數據集上,改進YOLOv5s 模型的mAP 為97.3%。

此外,為了驗證不同邊界框損失函數的效果,在YOLOv5s 的基礎上進行試驗。將其邊界框損失函數替換為目前常見的DIoU[32]、GIoU[33]、SIoU[34]、EIoU[35]及WIoU 損失函數,試驗結果如表2 所示。

表2 YOLOv5s 與改進YOLOv5s 使用不同損失函數的mAPTable 2 mAP for YOLOv5s and improved YOLOv5s using different loss functions %

由表2 可知,YOLOv5s 使用CIoU、DIoU、GIoU、SIoU、EIoU、WIoU 作為損失函數時mAP 分別為95.4%、95.2%、95.9%、95.7%、95.3%、96.1%。改進YOLOv5s在使用DIoU 損失函數時mAP 最低,為96.3%,使用WIoU 損失函數時獲得最高的mAP 為97.3%。兩個模型均在使用WIoU 作為邊界框損失函數時mAP 最高,充分證明了WIoU 的有效性。

2.2 不同目標檢測模型的性能對比

為了驗證本文方法的有效性,將常見的目標檢測模型EfficientDe[36]、SSD、RetineNet[37]、YOLOX[38],ShuffleNet_YOLOv5s[22]進行對比試驗。試驗結果如表3所示。

表3 不同模型結果對比Table 3 Comparison of results from different models

由表3 數據可知,改進YOLOv5s 模型的mAP 為97.3%,比YOLOv5s 模型的mAP(95.4%)高出1.9 個百分點。同時,改進YOLOv5s 模型的參數量為5.9 M,比YOLOv5s 模型的參數量(7.0 M)減少了15.7%。改進YOLOv5s 模型的FPS 為131.6,比YOLOv5s 模型的FPS(114.9)提高了14.5 個%。與其他單階段目標檢測網絡相比,改進的YOLOv5s 模型的mAP 分別比EffcientDet-D1、SSD512、RetineNet-R50 和YOLOXs 高 8、16.9、8.6 和1.5 個百分點,在參數量、檢測速度上也都表現出一定的優勢,更適合花椒簇檢測。

YOLOv5s 與改進YOLOv5s 的花椒簇識別效果對比如圖6 所示。

圖6 YOLOv5s 模型與改進YOLOv5s 模型的識別結果對比Fig.6 Comparison of detection results of YOLOv5s model and improved YOLOv5s model

圖片1、圖片2 中花椒果實排列緊湊,YOLOv5s 與改進YOLOv5s 均成功標注了圖像中所有的花椒簇,不存在漏檢的情況,但是可以看出改進YOLOv5s 模型的預測框分值更大,與真實框的重疊度更高。圖片3、圖片4 花椒果實分布相對稀疏,且圖片4 存在位于圖像邊緣的小目標花椒簇。YOLOv5s 模型未能檢測到部分真實目標,存在漏檢;而改進YOLOv5s 模型檢測出了所有目標。

3 結論

為了實現花椒簇的快速準確檢測,本文基于YOLOv5s 模型提出花椒簇檢測模型。改進YOLOv5s 使用改進的EfficientViT 作為主干網絡,降低了模型的參數量并增強多尺度學習能力、在訓練中使用了OTA 標簽分配策略、用WIoU 損失函數替換原先的CIoU 損失函數。在自制數據集上驗證了改進YOLOv5s 模型的檢測效果。

與YOLOv5s 模型相比,改進YOLOv5s 模型對花椒簇的平均精度均值提升了1.9 個百分點、模型的參數量減少了15.7%、每秒幀率提高了14.5%。得到了速度以及精度的雙重提升。

本文將改進YOLOv5s 與其他常見目標檢測模型進行對比,試驗結果表明改進YOLOv5s 在檢測精度、檢測速度、模型參數量上均優于其他對比模型,對花椒簇具有較好的檢測結果。

本文提出的改進YOLOv5s 模型能實現對花椒簇的快速準確檢測,后續將繼續優化網絡結構記憶訓練策略,進一步提高對花椒簇的檢測效果。

猜你喜歡
錨框花椒標簽
基于YOLOv3錨框優化的側掃聲吶圖像目標檢測
錨框策略匹配的SSD飛機遙感圖像目標檢測
基于SSD算法的輕量化儀器表盤檢測算法*
基于GA-RoI Transformer的遙感圖像任意方向目標檢測
我國古代的玫瑰:花椒
當前花椒價格走低 椒農如何積極應對
無懼標簽 Alfa Romeo Giulia 200HP
不害怕撕掉標簽的人,都活出了真正的漂亮
摘花椒
花椒泡腳好處多
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合