關(guān)鍵詞:雜草識別;目標(biāo)檢測;YOLOv8;輕量化;注意力機(jī)制
中圖分類號:TP391 文獻(xiàn)標(biāo)志碼:A
0 引言(Introduction)
雜草生長在田間作物生產(chǎn)中是一個不可避免的問題,它會導(dǎo)致作物產(chǎn)量和質(zhì)量下降[1]。目前,雜草管理主要依賴化學(xué)除草,但長期濫用除草劑會引發(fā)環(huán)境污染、農(nóng)藥殘留及雜草抗性等一系列問題。因此,實現(xiàn)智能、快速、準(zhǔn)確的雜草檢測,對于推動機(jī)械除草和精確噴藥技術(shù)的發(fā)展具有重要意義。
如今,基于目標(biāo)識別技術(shù)[2]的除草機(jī)器人[3]在智能農(nóng)業(yè)領(lǐng)域[4]展現(xiàn)出了巨大的潛力,能夠通過高精度的圖像識別和深度學(xué)習(xí)算法[5]自動識別雜草并進(jìn)行精準(zhǔn)除草,從而減少化學(xué)除草劑的使用,提高作物產(chǎn)量和質(zhì)量。其中,One-Stage目標(biāo)檢測模型的YOLO(You Only Look Once)系列具有更好的檢測精度[6]、檢測速度[7]和模型尺寸等優(yōu)勢[8]。然而在現(xiàn)實生活中,農(nóng)田環(huán)境較為復(fù)雜,光照條件、作物與雜草的相似性、土壤背景的多樣性等因素給雜草的準(zhǔn)確識別帶來了困難。此外,除草機(jī)器人的實時處理能力與移動效率是限制其廣泛應(yīng)用的重要因素。因此,僅僅識別單一的雜草種類無法滿足農(nóng)民機(jī)械除草的需求,農(nóng)民更需要的是一種耗費更少的計算資源,同時具有較高的魯棒性的檢測模型。
1 雜草檢測(Weed detection)
本研究聚焦于復(fù)雜背景下不同種類雜草的檢測任務(wù),將在田間拍攝到的具有復(fù)雜背景、密集且相互遮擋的雜草圖像作為數(shù)據(jù)集用于訓(xùn)練,基于YOLO系列模型進(jìn)行改進(jìn),研究旨在探究如何在輕量化模型的同時保證模型檢測的準(zhǔn)確率,以更好地適應(yīng)農(nóng)田實際應(yīng)用場景的需求。通過這項工作,我們期望能夠高效完成復(fù)雜環(huán)境下不同種類雜草的準(zhǔn)確識別和定位任務(wù)。
1.1 數(shù)據(jù)集組成
本研究構(gòu)建的雜草數(shù)據(jù)集包含一個自制的丁香蓼數(shù)據(jù)集和兩個公開數(shù)據(jù)集。其中,丁香蓼數(shù)據(jù)集中的圖像采集于浙江省金華市的一處稻田實驗場地。該稻田實驗場地的環(huán)境復(fù)雜,為了減少光照強(qiáng)度和角度可能帶來的影響,圖片拍攝選在2021年7月17日的中午時段進(jìn)行。使用搭載高分辨率RGB攝像頭的“大疆”Mavic 2pro無人機(jī)在距離地面5 m的高度采集數(shù)據(jù),無人機(jī)按照事先規(guī)劃好的路線飛行并拍攝稻田正射影像,拍攝間隔為3 s,飛行速度為1.6 m/s,總共獲得了778張分辨率為5 472×3 648的照片。圖1為采集的航拍圖像,將采集到的圖像裁剪成640×640像素大小,總共得到1 493張JPG格式的圖像用于制作丁香蓼數(shù)據(jù)集。
本研究利用的兩個公開數(shù)據(jù)集分別是Weed25和WeedDetection,Weed25數(shù)據(jù)集的圖像主要采集自中國重慶地區(qū)的農(nóng)田與草地[9],涵蓋了東亞地區(qū)普遍存在的25種雜草。每種雜草的圖像數(shù)量為500~550張,反映了這些雜草在不同生長階段下的多樣形態(tài)。為了盡可能地模擬自然環(huán)境中雜草的真實狀態(tài),本研究從Weed25數(shù)據(jù)集中排除了在溫室條件下栽培的雜草圖像,保留了在自然環(huán)境中生長的雜草種類進(jìn)行分析。Weed Detection數(shù)據(jù)集是一個專注于雜草檢測的數(shù)據(jù)集,該數(shù)據(jù)集特別關(guān)注那些形態(tài)不規(guī)則且其顏色與背景易于混淆的雜草類別。具體 的15種雜 草圖像如圖2所示。
如圖2所示,田間許多禾本科雜草如稗草、綠尾草和芒草等,它們在外貌和結(jié)構(gòu)特征上具有高度相似性,種類和形態(tài)多樣的雜草共同構(gòu)成了一個高度模擬現(xiàn)實除草場景的測試平臺。
1.2 數(shù)據(jù)集制作
為了準(zhǔn)備用于實驗的雜草數(shù)據(jù)集,本文采用labelImg開源的圖像標(biāo)注工具對自制的丁香蓼數(shù)據(jù)集的圖像進(jìn)行標(biāo)注。將自制的丁香蓼數(shù)據(jù)集與另外兩個公開數(shù)據(jù)集(Weed25和WeedDetection)整合,構(gòu)成了本研究最終用于實驗的雜草數(shù)據(jù)集(表1)。該數(shù)據(jù)集涵蓋了15種不同類型的雜草,總計包含10 222幅圖像。按照1∶9的比例隨機(jī)劃分驗證集和訓(xùn)練集。
2 雜草檢測模型與改進(jìn)(Weed detection modeland its improvement
2.1 YOLOv8目標(biāo)檢測模型
YOLOv8是目前YOLO系列算法中最新的模型結(jié)構(gòu),該模型是在之前YOLO版本的基礎(chǔ)上引入了新的功能并加以改進(jìn),進(jìn)一步提升了性能。YOLOv8提供了包括N、S、M、L、X等多種尺度大小的模型,用于滿足不同場景的需求,本次實驗選取了輕量級的YOLOv8-s作為基準(zhǔn)模型進(jìn)行改進(jìn),網(wǎng)絡(luò)由主干網(wǎng)絡(luò)(Backbone)、加強(qiáng)特征融合網(wǎng)絡(luò)(Neck)和分類回歸網(wǎng)絡(luò)(Head)組成。
Backbone借鑒了CSP(Cross Stage Partial)模塊思想,將Yolov5中的C3模塊替換成C2f模塊,以獲得更加豐富的梯度流信息,同時沿用了Yolov5 中的SPPF(Spatial PyramidPooling Fast)模塊,Backbone對圖像進(jìn)行特征提取,輸出包含不同語義信息的特征層級進(jìn)入下一階段。Neck采用路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PANet)思想,通過上下采樣將高層和底層提取到的特征進(jìn)行進(jìn)一步融合。Head部分相比YOLOv5改動較大,換成目前主流的解耦頭(Decoupled head)結(jié)構(gòu),將分類和檢測頭分離。YOLOv8的模型結(jié)構(gòu)如圖3所示。
2.2 改進(jìn)的YOLOv8目標(biāo)檢測算法
本文在前人研究的基礎(chǔ)上,提出基于YOLOv8-s的改進(jìn)模型,讓模型能夠在減少參數(shù)量和計算量的前提下,提升雜草檢測精度,具體步驟如下:第一,將網(wǎng)絡(luò)中原有的CBS卷積基礎(chǔ)模塊替換成更為輕量化的Ghost Conv[10]模塊,減少模型參數(shù)量;第二,選用結(jié)構(gòu)更加簡潔的C3模塊,并將其中的Bottleneck替換成Ghost Bottleneck模塊,進(jìn)一步輕量化模型;第三,使用輕量化的CBAM 注意力機(jī)制模塊,將CBAM 模塊嵌入Neck最后三層輸出層之前,聚焦有效信息,在不增加模型參數(shù)的同時,提升檢測精度。
2.2.1 Ghost Bottleneck模塊
(1)Ghost Conv模塊(圖4)
常規(guī)的卷積模塊是利用多個卷積核對輸入特征圖中所有的通道進(jìn)行卷積映射操作。然而,堆疊大量的卷積層需要耗費巨大的參數(shù)量和計算量,也會產(chǎn)生豐富甚至冗余的特征圖。Ghost Conv是一種可以用來減少模型計算量和參數(shù)量的卷積模塊,主要思想是將普通的卷積操作分解為主卷積和幽靈卷積兩個階段。首先,使用原卷積核一半數(shù)量的1×1卷積核獲取必要的濃縮特征,得到一半的特征圖;其次,使用原卷積核一半數(shù)量的5×5卷積核進(jìn)行廉價計算(Cheap Operation),得到另一半特征層;最后,通過Concat操作將兩個部分的特征圖拼接成完整的特征層。將Ghost Conv替換原有卷積模塊,可以有效地減少參數(shù)量和計算量,模型的大小也會相應(yīng)減小,同時仍然能保持一定的模型性能,確保模型在資源受限的環(huán)境中也能有效運行。
(2)Ghost Bottleneck模塊
基于Ghost Conv構(gòu)建全新的輕量化Ghost Bottleneck模塊用以替換原始Bottleneck模塊。Ghost Bottleneck模塊如圖5所示。當(dāng)步長(Stride)為1時,由兩個Ghost Module和一個殘差邊組成Ghost Bottleneck。第一個Ghost Module擴(kuò)展輸入矩陣的通道數(shù),第二個Ghost Module縮減通道數(shù)。當(dāng)步長為2時,在兩個Ghost Module之間添加的深度可分離卷積完成寬高壓縮操作,殘差邊加入一個深度可分離卷積和一個普通卷積模塊,保證輸出特征圖的大小不變。
2.2.2C3Ghost模塊
C2f模塊和C3模塊分別是YOLOv8和YOLOv5的核心組成部分,C3模塊包含3個標(biāo)準(zhǔn)卷積層和多個Bottleneck模塊(數(shù)量由模型的深度決定),C2f模塊參考了C3模塊和高效輕量級注意力網(wǎng)絡(luò)(Efficient Lightweight Attention Network,ELAN)的思想進(jìn)行設(shè)計,將不同層次的Bottleneck輸出依次疊加,但C3模塊結(jié)構(gòu)更簡潔,因此本文選擇使用C3模塊替換YOLOv8中的C2模塊,并在此基礎(chǔ)上替換其中的Bottleneck為Ghost Bottleneck模塊,進(jìn)一步輕量化模型,具體結(jié)構(gòu)如圖6所示。
2.2.3 引入CBAM 注意力機(jī)制
注意力機(jī)制模塊是深度學(xué)習(xí)模型中的一種組件,允許模型在處理輸入時,通過學(xué)習(xí)權(quán)重或概率分布,使網(wǎng)絡(luò)能夠自適應(yīng)地關(guān)注一些特定部分或通道。CBAM[11]模塊結(jié)合了空間注意力和通道注意力兩個方面,通過調(diào)整不同通道的重要性,關(guān)注圖像的不同區(qū)域。CBAM注意力機(jī)制結(jié)構(gòu)如圖7所示。
從圖7可以看到,CBAM 包含2個獨立的子模塊,通道注意力模塊(Channel Attention" Module,CAM)和空間注意力模塊(Spatial Attention Module,SAM),分別在通道維度與空間維度上進(jìn)行注意力機(jī)制計算。CBAM 兩個子模塊的結(jié)構(gòu)如圖8所示。
(1)通道注意力模塊
對于輸入的(C×H ×W )特征圖分別進(jìn)行基于H 和W 的全局最大池化(global max pooling)和全局平均池化(globalaverage pooling),聚合空間信息,其中C 代表特征圖的通道數(shù),H 和W 分別代表特征圖的高和寬,由此得到兩個1×1×C 的特征圖,接著利用1×1卷積核代替全連接,其中卷積核的個數(shù)為C/r(r 為減少率),特征圖經(jīng)過兩個卷積層和激活函數(shù)(ReLU)后,相加激活輸出。
(2)空間注意力模塊
將經(jīng)過通道注意力模塊處理后的特征圖作為本模塊的輸入特征。首先沿著通道方向進(jìn)行最大池化和平均池化,得到兩個1×H ×W 的特征圖,將得到的兩個特征圖進(jìn)行維度上的拼接;其次經(jīng)過卷積和激活函數(shù)操作輸出;最后將該特征圖和該模塊的輸入特征圖做乘法,得到最終生成的特征。
3 實驗結(jié)果及分析(Experimental results and analysis)
3.1 實驗環(huán)境與參數(shù)設(shè)置
本文實驗使用的軟件環(huán)境為Windows 10 操作系統(tǒng),Pycharm編輯器,深度學(xué)習(xí)框架及開發(fā)環(huán)境分別為Pytorch1.12.1、Python 3.7、CUDA 10.1,硬件環(huán)境CPU為AMD Ryzen9 7950X 16-Core Processor@4.50 GHz,GPU為NVIDIA GeForceRTX 2080 Ti。訓(xùn)練輪次設(shè)置為100輪,批次大小為8。
3.2 評價指標(biāo)
為驗證模型有效性,使用的驗證指標(biāo)如下:每種雜草的平均精度(Average Precision, AP)、平均精度均值(Mean AveragePrecision,mAP)[包括mAP-0.5、mAP-0.5∶0.95,前者表示IoU閾值為0.5時的所有雜草類別的平均AP,后者表示在不同IoU閾值(0.5~0.95,步長為0.05)上的平均mAP]、浮點計算量(Floating point operations, FLOPs)、模型參數(shù)量。
3.3 消融實驗
在對YOLOv8-s(Baseline)原始網(wǎng)絡(luò)模型進(jìn)行優(yōu)化改進(jìn)時,選擇將基本卷積模塊替換為輕量的Ghost Conv,同時在網(wǎng)絡(luò)Neck結(jié)構(gòu)的最后三層輸出前添加CBAM 注意力機(jī)制,改進(jìn)后模型的性能表現(xiàn)如表2所示。
從表2中數(shù)據(jù)可以看出:采用替換輕量化卷積的優(yōu)化策略,在保證模型檢測精度基本不變的前提下,顯著減少了模型的參數(shù)量,相比官方Y(jié)OLOv8-s降低了46.09%的參數(shù)量,而且進(jìn)一步減輕了計算負(fù)擔(dān),計算量減少了42.11%。在此基礎(chǔ)上,增加CBAM注意力機(jī)制,雖然模型層數(shù)增加了,但是并沒有增加模型的參數(shù)量和計算量,反而有效地提升了模型對雜草的檢測精度,mAP-0.5和mAP-0.5∶0.95分別較原始模型提高了0.8百分點、0.3百分點。這一實驗結(jié)果證明了本次改進(jìn)不僅在模型輕量化上取得了顯著效果,而且成功提升了模型的檢測精度,為實際應(yīng)用場景的計算資源提供了更加高效的解決方案。
3.4 改進(jìn)模塊參數(shù)對比
通過計算每一個模塊的參數(shù)量,對改進(jìn)前后模塊實際參數(shù)量的大小變化進(jìn)行定量分析,將所有模塊輸入、輸出特征圖的寬和高固定為統(tǒng)一的640×640,計算結(jié)果如表3所示。
從表3可以看出,Ghost Conv模塊相比原始基本卷積模塊Conv的參數(shù)量減少了47.9%,將Bottleneck中的Conv結(jié)構(gòu)均替換成Ghost Conv后構(gòu)成Ghost Bottleneck,使得參數(shù)量顯著減少,從3.69 M降低為0.22 M,減少了96.5%,對比YOLOv8中使用的C2f模塊和YOLOv5中使用的C3模塊的參數(shù)量,C3的參數(shù)量更小,僅為C2f的64.6%,這也是本文選擇C3模塊作為改進(jìn)的基本模塊的原因,改進(jìn)后的C3Ghost模塊參數(shù)量降為0.88 M。以上實驗結(jié)果充分證明了本次輕量化改進(jìn)的有效性。
3.5 雜草檢測結(jié)果
為了驗證改進(jìn)模型的效果,對Faster R-CNN、RetinaNet、SSD、YOLOv5、YOLOv6、YOLOv7 和改進(jìn)后的YOLOv8-Ghost-CBAM模型進(jìn)行比較,每個模型均在自制數(shù)據(jù)集上訓(xùn)練100個周期(Epoch)。
表4中加粗的數(shù)字表示在模型對比實驗中表現(xiàn)最佳,可以明顯看到本次基于YOLOv8改進(jìn)后的模型擁有較高的檢測精度,包括mAP-0.5和mAP-0.5∶0.95的得分均為最高,同時本文所提模型擁有最小的尺寸,為解決實際場景中的雜草檢測問題提供了更為可靠和有效的解決方案。
最終15種雜草檢測的AP值結(jié)果如表5所示。
結(jié)果可視化如圖9所示。
圖9(a)展示的是雜草真實標(biāo)簽,圖9(b)為模型測試時得到的預(yù)測框,圖中的檢測框分別代表了模型檢測到的不同種類的雜草,通過觀察可以看出,本文所提模型在復(fù)雜環(huán)境下對不同種類雜草的檢測效果顯著,預(yù)測框幾乎可以覆蓋標(biāo)簽框,并且沒有觀察到誤檢情況的出現(xiàn)。特別值得一提的是,圖9中第一排第一張和第三張圖片中,模型正確預(yù)測了未標(biāo)注的雜草,這充分證明了模型在復(fù)雜背景下具有較好的魯棒性。然而,在檢測過程中也存在一定的遺漏,在圖9中第一列的最后兩張圖片中,因為陰影和遮擋問題,分別遺漏了一株標(biāo)注雜草,這表明在后續(xù)研究中模型性能還有待繼續(xù)優(yōu)化??傮w來說,本文所提的模型在處理復(fù)雜環(huán)境和形狀相似的雜草方面展現(xiàn)出了出色的能力,為實際應(yīng)用中的雜草檢測提供了可靠且有效的解決方案。
4 結(jié)論(Conclusion)
針對復(fù)雜農(nóng)田環(huán)境下的雜草檢測,本文提出了一種基于改進(jìn)YOLOv8-s的雜草檢測模型,即YOLOv8-Ghost-CBAM。該模型引入輕量級Ghost Conv模塊,并設(shè)計了全新的GhostBottleneck模塊和C3Ghost模塊,在保證模型魯棒性的同時有效減少了模型的參數(shù)量及模型大小;此外,通過添加CBAM 注意力模塊,提升了模型的特征融合能力,提高了模型檢測精度。改進(jìn)后的模型與YOLOv8相比,參數(shù)量減少了46.18%,模型計算量下降42.81%,而且改進(jìn)后的網(wǎng)絡(luò)檢測mAP為90.5%,提高了0.8%,這不僅使得模型能夠在復(fù)雜環(huán)境中高效地檢測雜草,還為農(nóng)業(yè)領(lǐng)域的小型嵌入式平臺搭載的除草機(jī)器人的發(fā)展提供了可行的解決方案,具有重要的實際應(yīng)用價值。
作者簡介:
束艾靜(1998-),女,碩士生。研究領(lǐng)域:計算機(jī)視覺,無人機(jī)低
空遙感。張艷超(1988-),男,博士,副教授。研究領(lǐng)域:無人機(jī)低空遙感,智能農(nóng)機(jī)裝備。