










關(guān)鍵詞:YOLOv8;棉花蟲害;目標檢測;可變形卷積;高效通道注意力
0 引言
棉花作為我國重要的經(jīng)濟作物,其生長過程中常受到多種病蟲害的侵擾,導致產(chǎn)量和質(zhì)量受到嚴重影響[1]。因此,快速而準確地識別棉花病蟲害,并采取有效的防治措施,對于維護棉花產(chǎn)業(yè)的穩(wěn)定發(fā)展至關(guān)重要。傳統(tǒng)的蟲害識別方法依賴于經(jīng)驗豐富的專家或農(nóng)民,不僅費時費力,而且在識別微小病變時準確率較低。此外,傳統(tǒng)方法還面臨復雜的人工特征分割和提取問題,增加了人力成本,并且計算復雜度高,導致識別效果不理想。因此,開發(fā)一種高效、準確的棉花病蟲害識別方法成為當前研究的迫切需求。
近年來,隨著光譜信息分析和遙感影像技術(shù)的興起,蟲害識別取得了顯著進展。趙亮等[2]構(gòu)建了基于敏感波段的蟲害診斷模型,實現(xiàn)了對棉花螨害的識別提取。地力夏提·依馬木等[3]利用多種算法實現(xiàn)了棉田多種蟲害的快速精準識別監(jiān)測。同時,深度學習技術(shù)在農(nóng)業(yè)領(lǐng)域的應用也逐漸增多,為棉花病蟲害識別提供了新的解決方案[4]。王曾龍等[5]采用深度學習方法Faster-RCNN進行棉花害蟲識別和計數(shù),為化學防治提供了依據(jù)。然而,深度學習在棉花蟲害識別中也面臨一些難點和挑戰(zhàn),如蟲害外觀的相似性、數(shù)據(jù)集的獲取和標注困難、模型的訓練和優(yōu)化等。
為了解決這些問題,本研究提出了一種基于YOLOv8模型的棉花蟲害識別方法。YOLOv8作為YOLO系列中的最新模型,具有更高的識別精度和更快的檢測速度[6]。通過優(yōu)化和改進YOLOv8模型,提高棉花蟲害識別的精度和速度,為棉花產(chǎn)業(yè)的可持續(xù)發(fā)展提供技術(shù)支持。期待通過本研究能夠為棉花蟲害的有效治理提供新的思路和方法,推動農(nóng)業(yè)智能化和精準化的發(fā)展。
1 YOLOv8模型改進
YOLOv8是一種高效的目標檢測模型,采用了基于Anchor-Free的檢測方式,相較于Anchor-Based方式具有更高的檢測精度和更快的檢測速度。其模型結(jié)構(gòu)可分為主干網(wǎng)絡、特征增強網(wǎng)絡和檢測頭3個部分。在主干網(wǎng)絡中,YOLOv8替換了YOLOv5的C3模塊并進行改進,其余部分與其一致。在特征增強網(wǎng)絡中,YOLOv8采用PA-FPN思想去除了上采樣階段卷積,并將C3模塊替換為C2f模塊。在檢測頭部分,YOLOv8使用Decoupled-Head結(jié)構(gòu),摒棄Anchor-Based方案,擁抱Anchor-Free思想。在損失函數(shù)方面,分類采用BCEloss,回歸采用DFLLoss和CIOULoss。在標簽分配上,采用Task-AlignedAssigner匹配方式。總體而言,YOLOv8模型具有更高的檢測精度和更快的檢測速度。
1.1 C2f-DCNv3Block
C2fBlock是YOLOv8模型中的一種結(jié)構(gòu),它借鑒了CSPNet的網(wǎng)絡結(jié)構(gòu),并結(jié)合殘差結(jié)構(gòu)和ELAN思想對C3Block進行了優(yōu)化。該結(jié)構(gòu)的主分支梯度模塊采用Bottleneck模塊,通過控制堆疊的個數(shù)n獲得不同規(guī)模的模型。同時,通過并行更多的梯度流分支以獲得更豐富的梯度信息,進而獲得更高精度和更低延遲。
WANGW等[7]提出InterImage,以形變卷積作為核心算子。與傳統(tǒng)的CNN方案不同,形變卷積不僅具有有效感受野,還具有輸入與任務自適應的空域聚合能力;在多個數(shù)據(jù)集上驗證了InternImage的可行性和有效性,表明它降低了傳統(tǒng)CNN的嚴格歸納偏置,并且學習出更強、更理想的表達能力。
本研究引入InterImage中提出的DCNv3算子,如圖1所示。該算子基于DCNv2算子引入共享投射權(quán)重、多組機制和采樣點調(diào)制標量歸一化,使得模型保留采樣位置依賴性、產(chǎn)生豐富的特征多樣性和訓練更加穩(wěn)定的優(yōu)點。
將DCNv3算子引入YOLOv8模型的Head層中,對Head層中的C2fBlock進行改進和優(yōu)化。首先,把C2fBlock中Bottleneck結(jié)構(gòu)的普通卷積替換為DCNv3算子,形成新的DCNv3-Bottleneck結(jié)構(gòu),如圖2所示。
最后,將C2fBlock中的Bottleneck結(jié)構(gòu)替換為新的DCNv3-Bottleneck結(jié)構(gòu),新的C2f-DCNv3Block結(jié)構(gòu)如圖3所示。這樣可使棉花蟲害檢測模型具有獲得更細致特征的能力,在保證模型效率不變的情況下,對于目標較小的棉花蟲害識別率可以達到更加理想的狀態(tài)。
1.2 ECA高效通道注意力機制
由于YOLOv8的主干網(wǎng)絡依然采用了多尺度特征融合的理念,即Backbone產(chǎn)生的p3、p4和p53個尺度的特征被分別和Head部分的同尺度特征進行融合后再進行后續(xù)處理。這種設(shè)計方式的優(yōu)勢在于,它可以讓多個尺度的特征得到更加充分地利用,從而提高模型的精度。然而,由于通道數(shù)不斷增加,特征融合的通道會產(chǎn)生冗余信息。如果能夠?qū)νǖ肋M行一個自適應的重要程度加權(quán),使得模型能夠利用全局信息,有選擇地強調(diào)部分通道信息,并抑制不太有用的特征,那么將進一步提高模型的特征提取能力。
在盡可能不增加模型參數(shù)量和計算量的前提下,本研究使用ECA高效通道注意力機制來提高模型的精度和效率[8]。ECA是一種通道注意力機制,結(jié)構(gòu)如圖4所示。通過全局平均池化和兩層全連接層,自適應地調(diào)整通道特征的權(quán)重,以更好地關(guān)注重要的特征,抑制不重要的特征,從而提升網(wǎng)絡的特征表示能力。相比于其他注意力機制,通道注意力機制的優(yōu)勢在于其可以捕捉到特征圖不同通道之間的關(guān)系,不會顯著增加網(wǎng)絡的參數(shù)和計算成本。使ECA提升網(wǎng)絡性能的同時,保持了模型的輕量級和可訓練性。通過引入這種機制,ECA能夠有效地增強網(wǎng)絡的表征能力。所以,本研究在YOLOv8的Head層加入了一模ECA塊,緩解了最后Head層輸出因拼接多個通道造成的通道信息冗余的問題,有助于提升特征的判別能力,有助于抑制不重要的特征,從而減少了過擬合風險。網(wǎng)絡更加關(guān)注重要的特征,有助于提高泛化能力和模型的檢測精度。
2 試驗設(shè)計與分析
2.1 數(shù)據(jù)集介紹
所使用數(shù)據(jù)集為CottonInsect棉田昆蟲識別研究圖像數(shù)據(jù)集,為了解決復雜背景下棉田昆蟲分類及檢測問題,構(gòu)建新疆棉田昆蟲圖像數(shù)據(jù)集[9]。本數(shù)據(jù)集包含13種常見的棉花昆蟲,共2961張圖片,原始圖像共24GB,部分數(shù)據(jù)展示如圖5所示。圖像數(shù)據(jù)都是不同時間、地點和環(huán)境收集,包含棉田昆蟲在真實環(huán)境中不同姿態(tài)和生長周期的圖像。通過人工篩選和標注分為圖像分類和目標檢測兩種格式的數(shù)據(jù)集。最終可為棉田棉花昆蟲圖像分類、目標檢測等任務提供基礎(chǔ)數(shù)據(jù)。
在深度學習算法中,通常將預處理的數(shù)據(jù)集劃分為訓練集、驗證集和測試集3個部分(劃分要盡可能按照合適的比例保持數(shù)據(jù)分布的一致性),如表1所示。其中,訓練集作用是通過訓練獲取圖像特征信息,驗證集作用是用來避免過擬合,測試集作用則是測試網(wǎng)絡在測試集上準確率。改進試驗及對比試驗均是在該數(shù)據(jù)集上進行的。
2.2 環(huán)境配置
試驗所使用服務器操作系統(tǒng)為Ubuntu20.04,計算資源為單張NVIDIARTXA5000顯卡,深度學習框架為Pytorch1.11.0。詳細配置如表2所示。
2.3 模型訓練
在原模型和改進后模型上進行了300輪訓練后,驗證集上的mAP50曲線如圖6所示。由圖6可知,由于原模型能夠加載預訓練權(quán)重,因而在一開始具備較好的表現(xiàn),并且僅需約200輪訓練即可達到收斂狀態(tài)。然而,改進后的模型由于改變了模型結(jié)構(gòu),只能加載部分預訓練權(quán)重,因此其效果相當于重新訓練,需要更多的訓練輪數(shù)才能達到收斂。對比兩條曲線可以發(fā)現(xiàn),改進后的模型由于引入了通道注意力機制,使其在mAP50指標上提高3.0個百分點,從0.676提升至0.706。
2.4 試驗結(jié)果與分析
為了評估棉花蟲害目標檢測算法的性能,采用一系列評價指標來對其進行定量描述[10]。本研究所用評價指標包括準確率、精確度、召回率、F1分數(shù)和mAP。
(1)準確率是重要評價指標之一,是指在所有樣本中預測正確的比例,可以用混淆矩陣的對角線之和除以測試集圖片數(shù)量來計算。在二分類問題中,混淆矩陣的4個單元格分別為真陽性(TP)、假陽性(FP)、真陰性(TN)和假陰性(FN)。準確率PAccuracy計算公式為
在多分類問題中,準確率的計算方式類似,只需將混淆矩陣的每個單元格進行相應的擴展即可。
(2)精確度和召回率也是評價指標。精確度是指在所有檢測出的目標中,有多少是真正的目標。召回率是指所有真正的目標中,有多少被正確地檢測出來。精確度PPrecision和召回率PRecall計算公式為
(3)為了綜合考慮精確度和召回率,可以計算F1分數(shù)。F1分數(shù)是精確度和召回率的調(diào)和平均數(shù)。F1分數(shù)PF1計算公式為
(4)mAP是另一個重要評價指標,是指averageprecision(AP)的平均值。對于每個類別,可以計算其AP值,即在該類別的所有樣本中,以不同閾值分割時的精確度和召回率的曲線下的面積。再將所有類別的AP值求平均值即為mAP值。
為了驗證本研究所做改進的有效性,在YOLOv8n模型上做了以下消融試驗。由表3可知,所設(shè)計的DCNv3_C2fBlock使得模型mAP值提升3.0個點的同時,模型大小減少了0.3MB,實現(xiàn)了模型精度和速度的雙提升。
將本研究的改進模型與輕量化的一階段目標檢測模型YOLOv3-tiny[11]、YOLOv5[12]、YOLOv6[13]及YOLOv8n模型對比,驗證本研究改進的模型在精度和速度方面的表現(xiàn),結(jié)果如表4所示。
由表4可知,改進后的棉花蟲害檢測模型在精度優(yōu)于YOLOv3-tiny、YOLOv5、YOLOv6和YOLOv8n模型,模型參數(shù)量和推理時間也低于其他4個模型。因此,證明了本研究所提改進方法的有效性,將改進后的棉花蟲害檢測模型用于實際的蟲害檢測中,不但精度可以得到保證,速度也得到了保證。棉花蟲害檢測模型檢測效果如圖7所示,對于每張圖像上的蟲害都做到了精確檢測和準確定位,大部分蟲害的識別準確率達到90%以上,為解決棉田蟲害識別提供了一定的參考與助力。
3 結(jié)束語
使用了最新的一階段目標檢測算法YOLOv8,對原模型進行了改進。一是為了提升模型的檢測精度,改進了YOLOv8模型中的C2fBlock,引入DCNv3算子,讓模型獲得了更強的特征提取能力,從而獲得更高精度的棉花蟲害檢測模型。二是在YOLOv8的Head層后面加入了高效通道注意力機制ECA,使得模型獲得更高精度的同時,模型效率更高。
不足之處在于使用了較輕量的模型,模型的檢測精度還有較大的提升空間。由于本研究使用的棉田昆蟲數(shù)據(jù)集包含了許多重復的圖像并且部分害蟲顏色與背景極為相似,對于害蟲的識別有一定的困難。在對數(shù)據(jù)集做擴充和數(shù)據(jù)增強后,訓練出來的模型將會有更好的泛化性。為了解決這些不足,后續(xù)研究中根據(jù)實際場景的需求,收集更多的棉花蟲害數(shù)據(jù)集,進一步提高棉花蟲害識別模型的精度、速度和泛化性。