關(guān)鍵詞:果蠅識別;YOLOv8n;GhostNetV2;BiFPN;C2fMBC
中圖分類號:S126:S436.63 文獻標(biāo)識號:A 文章編號:1001-4942(2025)02-0172-09
果蠅是一種體型微小的雙翅目昆蟲,是全球最重要的農(nóng)業(yè)害蟲之一。其寄主植物廣泛,喜食各類漿果,常造成漿果腐爛和落果。劉曼、張小玲、陳哲等研究揭示,藍莓和樹莓主要受到黑腹果蠅的危害,常造成嚴(yán)重的經(jīng)濟損失。然而,果蠅的防治以預(yù)防為主,即在適宜的時間段內(nèi)對果蠅進行識別和計數(shù),預(yù)測其暴發(fā)期,再采取措施及時誘殺。目前,果蠅識別仍主要依賴于人工肉眼識別,由專家在屏幕上手動計數(shù),存在主觀性強及準(zhǔn)確性和工作效率低等問題。因此,探索更為高效的果蠅識別技術(shù)成為該領(lǐng)域迫切需要解決的問題。
隨著圖像處理和機器學(xué)習(xí)技術(shù)的發(fā)展,利用這些技術(shù)進行蟲害識別的方法日臻成熟,相比于人工肉眼識別,在精度和效率方面都有顯著提升。然而,實際應(yīng)用中存在多種因素影響其識別效果的問題,如顏色和形狀特征差異不明顯、背景復(fù)雜易誤報以及手動提取特征繁瑣等,因此需要進一步研究和改進,以提高準(zhǔn)確性和效率。
與傳統(tǒng)的圖像處理和機器學(xué)習(xí)技術(shù)相比,基于深度學(xué)習(xí)的目標(biāo)識別技術(shù)有自動提取特征及泛化能力強等優(yōu)勢。其中,F(xiàn)aster R-CNN是兩階段算法,在蟲害識別任務(wù)上具有良好的識別效果。Uzun等使用Faster R-CNN成功識別了地中海果蠅,成功率達到約94%。但該算法需要的計算代價高且推理速度較慢,限制了其實際應(yīng)用。YOLO系列算法作為一階段算法,速度和精度相較兩階段算法更加平衡,在蟲害識別任務(wù)上應(yīng)用更加廣泛。郭小燕等通過集成輕量級神經(jīng)網(wǎng)絡(luò)架構(gòu)GhostNetV1中的Ghost模塊,用兩個Ghost模塊組合成的復(fù)合模塊替換YOLOv5s主干網(wǎng)絡(luò)中Focus模塊和SPP模塊之間的7個現(xiàn)有模塊,對YOLOv5s模型進行改進,實現(xiàn)了模型的輕量化并同時保持或提升其識別性能,在包括5種農(nóng)作物12類蟲害的數(shù)據(jù)集上的平均精確率均值(mAP)相較于原始YOLOv5s提升了2.5%。
由上可知,YOLO系列算法在蟲害識別領(lǐng)域展現(xiàn)出良好的性能。然而,在面對體型較小以及密度較高的果蠅識別任務(wù)時仍存在一定的局限性。此外,需要在移動設(shè)備上部署的應(yīng)用場景對該算法的性能優(yōu)化和模型壓縮也提出了更高的要求。為此,本研究提出一種基于改進YOLOv8n算法的漿果園內(nèi)果蠅識別方法,以期在提高識別精度的同時降低算法復(fù)雜度,以滿足在移動端部署的需求,實現(xiàn)對漿果園果蠅的識別與防治。
1材料與方法
1.1數(shù)據(jù)采集及原始數(shù)據(jù)集構(gòu)建
數(shù)據(jù)于2023年4月1日至8月31日在貴州省植物園中的漿果園果蠅研究示范基地進行采集。以黑腹果蠅和殘翅果蠅為待識別目標(biāo),采用粘性的黃色誘蟲板捕獲,誘蟲板每4~5天更換一次并用不透明亞克力板固定,防止光照不均勻影響圖片質(zhì)量。圖像采集系統(tǒng)包括電源供應(yīng)模塊、支撐結(jié)構(gòu)、邊緣計算設(shè)備以及攝像頭,安裝于基地的中心位置。在每天8時—17時期間,每隔半小時自動拍攝誘蟲板圖像,圖像的分辨率為3472×3472像素,存儲在工控機內(nèi)。圖1為數(shù)據(jù)集中的代表性圖像,其中綠色框標(biāo)注的是黑腹果蠅,藍色框標(biāo)注的是殘翅果蠅。
對采集的圖像進行篩選,去除不清晰和不含待測目標(biāo)的圖像,最終獲得1325張包含兩類果蠅的圖像,用Labelimg軟件對其進行手工標(biāo)注后構(gòu)建數(shù)據(jù)集,然后按照8:1:1的比例劃分為訓(xùn)練集、驗證集及測試集。數(shù)據(jù)集具體信息如表1所示。
1.2數(shù)據(jù)增強及最終數(shù)據(jù)集信息
原始數(shù)據(jù)是高分辨率的,直接下采樣不僅會造成數(shù)據(jù)的丟失,還會增大訓(xùn)練負(fù)擔(dān),而直接re-size到640×640像素又會漏檢許多目標(biāo)。因此,我們將原始圖像均勻分割成4塊,并設(shè)置20%的重疊率,以減少處于分界處的目標(biāo)被截斷進而導(dǎo)致漏檢的情況:考慮到果蠅屬于微小目標(biāo)且大小不一,在誘蟲板上的分布及密集情況也不同,為了提升果蠅識別算法的魯棒性,采用多種數(shù)據(jù)增強技術(shù)對圖像數(shù)據(jù)集進行擴充,包括隨機亮度變換、隨機填充、隨機縮放以及隨機翻轉(zhuǎn)等;然后再將圖片resize到640×640像素。所得最終數(shù)據(jù)集的具體信息如表2所示。通過上述操作,模型訓(xùn)練過程中數(shù)據(jù)的多樣性得以增加,從而有助于提高算法對不同條件下果蠅圖像的識別能力,并有效防止模型在訓(xùn)練過程中出現(xiàn)過擬合現(xiàn)象,確保模型的泛化性能。
1.3改進YOLOv8n算法
YOLOv8是新提出的Anchor-Free算法,借鑒YOLOv5的C3模塊和YOLOv7的ELAN的思想,設(shè)計了輕量化的C2f模塊,用該模塊替代YOLOv5的所有C3模塊,并將第三個模塊的重復(fù)次數(shù)由9降到6:頸部仍然采用FPN結(jié)合PAN的結(jié)構(gòu),但去除了1×1卷積,將主干不同階段輸出的特征直接送人上采樣操作,使模型更加精簡且高效:頭部設(shè)計采用YOLOX的解耦策略,分別獨立處理分類和定位任務(wù):回歸頭則引入分布焦點損失(DFL)的思想,分類損失使用BCELoss:最后采用TOOD標(biāo)簽分配策略替代IOU匹配方式,更好地解決正負(fù)樣本分配問題,進一步提高算法的性能。根據(jù)網(wǎng)絡(luò)深度和寬度的不同,YOLOv8算法分為n、s、m、l、x五種類型,其中YOLOv8n是最小的算法,推理速度快,適合漿果園場景下的蟲害識別任務(wù)。然而,原始的YOLOv8n算法在識別果蠅時,會出現(xiàn)誤識別和漏識別的情況,而且仍有超過三百萬的參數(shù),仍具有輕量化的空間。針對上述問題,本研究在YOLOv8n的基礎(chǔ)上進行改進,改進后算法的整體框架如圖2所示。
1.3.1構(gòu)建C2fGhostV2模塊 GhostNetV2是一種輕量級端側(cè)架構(gòu),由華為諾亞方舟實驗室于2022年提出。該架構(gòu)在GhostNet的基礎(chǔ)上重新考慮了注意力機制對算法的影響,并設(shè)計了一種適用于移動端的解耦全連接注意力機制(DFC-Attention)。通過同時使用DFC注意力和Ghost-Conv模塊,GhostNetV2能夠有效捕獲長距離空間信息。其核心模塊是GhostNetV2 bottleneck(GV2BN),如圖3所示,它類似于由兩個堆疊的GhostConv組成的殘差塊,遵循逆瓶頸先升維再降維的設(shè)計理念。此外,與普通卷積相比,Ghost-Conv能夠用更少的參數(shù)提取更多的特征。
YOLOv8n采用CSPDarkNet53作為主干,以實現(xiàn)性能和速度的平衡。然而,隨著網(wǎng)絡(luò)層數(shù)的增加,參數(shù)量和計算量逐漸增加,導(dǎo)致冗余問題的出現(xiàn)。此外,由于多次卷積操作,果蠅的特征會逐漸被忽略。因此,本研究使用GV2BN模塊替代主干部分所有C2f模塊的殘差塊,構(gòu)建了C2fGhostV2模塊,如圖4所示。利用GhostConv可以減少計算代價的特點,并結(jié)合DFC注意力機制,實現(xiàn)了主干的輕量化和更準(zhǔn)確的圖像特征提取,因此能更精確地識別微小果蠅。
1.3.2設(shè)計L-BiFPN結(jié)構(gòu)并替換Neck部分的FPN+PAN結(jié)構(gòu) BiFPN,即加權(quán)雙向特征金字塔網(wǎng)絡(luò),是在谷歌的EfficientDet架構(gòu)中提出的一種改進網(wǎng)絡(luò)。它保留了FPN+PAN自頂向下傳遞強語義信息和自底向上傳遞強位置信息的能力,并能夠通過刪除單輸入節(jié)點和引入跳躍連接機制精簡網(wǎng)絡(luò),在降低計算量的同時保持特征圖的分辨率不變,減少了信息丟失,有利于梯度傳播。另外,BiFPN對每個輸入特征設(shè)置權(quán)重以區(qū)分重要性,而且其網(wǎng)絡(luò)結(jié)構(gòu)靈活,大小可調(diào)節(jié)。FPN+PAN及BiFPN的結(jié)構(gòu)見圖5。
原始的YOLOv8n在Neck部分采用FPN+PAN結(jié)構(gòu),通過路徑聚合進行特征融合以提高網(wǎng)絡(luò)的特征提取能力。但該結(jié)構(gòu)存在參數(shù)冗余和原始特征丟失的問題,影響識別性能。為了解決該問題,本研究基于BiFPN常規(guī)用法(圖6a),設(shè)計了更高效的L-BiFPN結(jié)構(gòu)(圖6b)來替代FPN+PAN結(jié)構(gòu)。具體而言,在P3、P4和P5層各增加一個1×1卷積層,將通道數(shù)統(tǒng)一調(diào)整為256以輕量化算法并進行更豐富的特征融合和處理;此外,在P3層增加一個跳躍連接,但仍然保持YOLOv8n的3個識別頭。L-BiFPN延續(xù)了BiF-PN的雙向特征傳播機制和多級特征融合機制,能提高特征融合效率并增強網(wǎng)絡(luò)的特征表達能力,同時還能更好地保留和傳遞特征信息,因此在果蠅識別任務(wù)中能取得更好的效果。此外,這種高效且靈活的設(shè)計使得L-BiFPN在保持高性能的同時實現(xiàn)了一定程度的輕量化。
1.3.3 C2fMBC模塊 MBCoriv,即移動翻轉(zhuǎn)瓶頸卷積,是一種深度可分離卷積的倒置線性瓶頸層,采用深度可分離卷積(DWConv)和SENet相結(jié)合的設(shè)計思想。該結(jié)構(gòu)的目標(biāo)在于通過整合DWConv和SENet構(gòu)建一種高效的卷積結(jié)構(gòu)。
YOLOv8n頸部的C2f模塊有3個殘差塊,每個殘差塊由1個1×1 Conv和1個3×3 Conv構(gòu)成,不使用殘差連接,與主干部分的C2f模塊結(jié)構(gòu)不同。由于果蠅體型較小且數(shù)量眾多,容易出現(xiàn)目標(biāo)難以捕捉以及特征信息難以充分利用的情況,從而影響果蠅識別的準(zhǔn)確性和魯棒性。針對該問題,本研究使用MBConv替代頸部所有C2f模塊的殘差塊,設(shè)計了新的C2fMBC模塊(圖8),以提高識別任務(wù)的準(zhǔn)確性和處理速度。由于深度可分離卷積的特性,C2fMBC可以更高效地處理特征圖,且相比于1×1 Conv和3×3 Conv,參數(shù)量顯著降低。得益于SENet的特性,C2fMBC模塊能夠更為有效地聚焦于關(guān)鍵特征,優(yōu)化了網(wǎng)絡(luò)對信息通道的重視程度,從而顯著提升了模型在特征提取和表達方面的性能。因此,使得改進算法能在保持高精度的同時實現(xiàn)果蠅識別任務(wù)的高效MBConv的結(jié)構(gòu)如圖7所示。首先,輸入數(shù)據(jù)經(jīng)過1×1 Conv進行升維,隨后利用DWConv對每個通道執(zhí)行卷積操作;接著,通過SENet增強有效特征的權(quán)重,抑制無效特征;在SENet處理完成后,再通過1×1 Conv的降維操作,將數(shù)據(jù)的通道數(shù)還原到原始狀態(tài),最終輸出為降維后的數(shù)據(jù)。與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)不同,MBConv采用殘差連接的思想,并在短連接部分引入SE層??傮w而言,MBConv的設(shè)計不僅提高了計算效率,還增強了模型對特征的有效利用,使得模型在保持精度的同時具有更小的模型規(guī)模和更快的運行速度。
1.4實驗環(huán)境和參數(shù)配置
實驗環(huán)境配置如表3所示。算法保持從頭開始訓(xùn)練。在模型訓(xùn)練階段,初始學(xué)習(xí)率被設(shè)定為0.01,為了優(yōu)化學(xué)習(xí)過程,采用余弦退火策略逐步減小學(xué)習(xí)率的值。使用SGD優(yōu)化器。訓(xùn)練輪次(epoch)的數(shù)量和batch size分別設(shè)置為100和32。為了防止算法的訓(xùn)練過程受到由大學(xué)習(xí)率引起的過擬合的影響,使用預(yù)熱學(xué)習(xí)率,并且將預(yù)熱時期設(shè)置為3。在訓(xùn)練的最后10個epoch提前關(guān)閉Mosaic增強,使識別器更好地適應(yīng)真實數(shù)據(jù)分布,從而促進模型在真實場景下的最終收斂。
1.5評價指標(biāo)
為了在漿果園場景下對果蠅進行有效識別,本研究采用一系列性能評價指標(biāo)全面評估所提改進YOLOv8n算法的有效性與實用性,包括參數(shù)量(Parameters)、權(quán)重(Weights)、浮點運算次數(shù)(FLOPs)、平均精確率均值(mAP)、精確率(Pre-cision)以及召回率(Recall),計算公式如下。
2結(jié)果與分析
2.1消融實驗
為了驗證本研究提出的改進策略的有效性,深入分析各改進模塊對模型最終性能的貢獻程度,在相同實驗環(huán)境和參數(shù)配置下進行了一系列的消融實驗。根據(jù)改進策略,共進行8組實驗,如表4所示。其中,a組代表原始YOLOv8n算法;b、c、d組分別展示了3種改進策略單獨應(yīng)用時的效果;e、f、g組分別呈現(xiàn)了任意兩種改進策略組合使用的效果:h組即本研究提出的改進算法,反映了3種改進策略的綜合效果。由表5可以看出,a組精確率、召回率和mAP都在96%以上,表明原始YOLOv8n算法擁有良好性能,適合作為基線算法。b、c、d三組的方法都在不同程度上優(yōu)化了模型性能,其中b和c組通過顯著降低參數(shù)量、權(quán)重大小和FLOPs實現(xiàn)了更高的效率;而d組雖然增加了算法規(guī)模,但降低了FLOPs,模型的準(zhǔn)確率和召回率也都有所提高。值得注意的是,c組的mAP高達98.17%,同時參數(shù)量、權(quán)重、FLOPs相對于a組分別降低33.89%、31.94%、12.35%,表明用L-BiFPN結(jié)構(gòu)替換Neck部分的FPN+PAN結(jié)構(gòu)的策略更為高效。上述結(jié)果表明,本研究提出的改進策略對于提升模型性能和計算效率都是有效的。
e、f、g三組的方法都提升了模型的精確率、召回率和mAP,并且降低了模型的參數(shù)量、權(quán)重大小和FLOPs。其中,e組的mAP高達98.28%,同時參數(shù)量、權(quán)重、FLOPs相對于a組分別降低49.83%、45.65%、28.40%,表明C2fGhostV2和L-BiFPN兩種改進策略共同作用更高效。h組參數(shù)量、權(quán)重、FLOPs相比a組分別降低48.50%、43.98%、32.10%,mAP達到最高,精確率和召回率也均較高。表明三種改進共同作用可以進一步提高模型的效率和識別精度??傮w而言,在果蠅識別任務(wù)中,無論是單獨應(yīng)用還是組合使用,本研究提出的改進策略對原始YOLOv8n算法的輕量化和精度提升都做出了積極的貢獻,可以在輕量化的同時實現(xiàn)漿果園果蠅的高效識別。
為了進一步展示改進YOLOv8n算法相對于原始YOLOv8n的優(yōu)越性,對訓(xùn)練過程中的總損失和mAP隨epoch變化的趨勢進行了對比分析,結(jié)果如圖9所示。整體而言,兩種算法展現(xiàn)出相似的變化趨勢,即總損失隨著epoch的增加而逐漸減少,而mAP則隨著訓(xùn)練的深入逐步提高。但改進后的算法在整個訓(xùn)練過程中擁有更低的總損失值而mAP略有提升,這意味著本研究提出的模型在擬合訓(xùn)練數(shù)據(jù)方面具有更優(yōu)的表現(xiàn),在果蠅識別這一特定任務(wù)上的性能得到的一定程度的增強,不僅能夠更有效地學(xué)習(xí)訓(xùn)練集中的數(shù)據(jù)特征,而且在目標(biāo)識別的準(zhǔn)確性方面也取得了較為明顯的改善。
2.2對比實驗
為了驗證改進YOLOv8n算法在果蠅識別任務(wù)上的競爭力和優(yōu)越性,并為算法的實際應(yīng)用提供指導(dǎo)和支持,本研究在一致的實驗環(huán)境和參數(shù)設(shè)置條件下,將改進YOLOv8n算法與其他優(yōu)秀的YOLO系列算法,包括YOLOv3-Tiny、YOLOv4-Tiny、YOLOv5n、YOLOv5s、YOLOv7-Tiny和YOLOv8n,進行對比分析,由表6可見,所有算法的mAP均在97%以上,性能良好,但是不同算法的整體性能存在明顯差異。其中,YOLOv4-Tiny雖然擁有最多的參數(shù)、最大的權(quán)重和最高的FLOPs,但精確率、召回率以及mAP卻最低,這表明其性能整體較差,主要是由于其復(fù)雜度高而精度不足。改進后的YOLOv8n算法的參數(shù)量僅為1.55 M,權(quán)重大小為3.35 MB,F(xiàn)LOPs為5.50G,遠低于其他算法,這使它非常適合在資源受限的設(shè)備上執(zhí)行實時推理任務(wù);同時,改進YOLOv8n算法又能保持高水平的識別性能,精確率和召回率分別高達97.40%和96.60%,僅次于YOLOv5s和YOLOv7-Tiny,與其他算法相比仍然具有競爭力,表明其在識別過程中能夠有效捕捉到所有果蠅。此外,改進后的YOLOv8n算法的mAP值最高,達到98.32%,這對于最小化誤檢至關(guān)重要,進一步鞏固了它作為漿果園果蠅識別任務(wù)的可靠解決方案的地位。
2.3識別結(jié)果可視化
在保持參數(shù)設(shè)置和環(huán)境配置一致的條件下,本研究比較了原始YOLOv8n算法和改進YOLOv8n算法在本研究建立的同一測試集上的識別效果,并進行了可視化展示,如圖10所示,其中,第一行圖像為原始YOLOv8n算法的識別結(jié)果,第二行是改進YOLOv8n算法的識別結(jié)果??梢钥吹?,在第二列和第三列圖像中,原始算法錯誤地將黑腹果蠅標(biāo)記為殘翅果蠅(紅圈標(biāo)出),而改進算法在這些區(qū)域正確地執(zhí)行了識別任務(wù),識別準(zhǔn)確性高:進一步觀察第四列圖像,兩只距離非常近的黑腹果蠅和殘翅果蠅(黃圈標(biāo)出),原始算法未能成功識別出殘翅果蠅,而改進后的算法能夠準(zhǔn)確識別出兩者,證明了本研究提出算法在降低漏識別率方面的有效性。值得注意的是,盡管兩行圖像相同位置的果蠅識別置信度相近,但從整體上來看,第二行的置信度普遍高于第一行,這進一步證明了改進YOLOv8n算法相較于原始YOLOv8n算法的優(yōu)越性。
3討論與結(jié)論
本研究在YOLOv8n算法的基礎(chǔ)上進行一系列改進,以提高對微小目標(biāo)的識別精度并實現(xiàn)算法的輕量化,最終設(shè)計出一種適用于移動端的輕量級識別算法,用于識別誘蟲板上的黑腹果蠅和殘翅果蠅。實驗結(jié)果表明,各項改進策略無論單獨作用還是共同作用都是有效的,為算法的性能提升提供了實證依據(jù)。此外,改進算法在原算法的基礎(chǔ)上實現(xiàn)了模型效率與識別精度的協(xié)同優(yōu)化,綜合性能相對于YOLO系列的其他優(yōu)秀算法也具有一定競爭力??梢暬Y(jié)果表明,本研究提出的改進算法改善了果蠅錯誤識別和遺漏的問題,具有明顯的置信度優(yōu)勢,而且所需的硬件資源較少,屬于硬件友好型算法,這為其實際應(yīng)用創(chuàng)造了條件。
綜上所述,本研究提出的改進YOLOv8n算法在性能和算法復(fù)雜度之間取得了良好的平衡,實現(xiàn)了對漿果園果蠅的精準(zhǔn)識別,符合農(nóng)業(yè)場景下果蠅識別任務(wù)對識別精度和輕量化的需求。未來的研究工作將根據(jù)實驗需求和場景需求增加蟲害類別,以進一步提高算法的魯棒性和泛化能力,并探索將該算法應(yīng)用于其他領(lǐng)域的可行性。