王海漫 ,俞 婷,肖明明,楊嘉誠(chéng) ,陳富榮,易干軍,林德球,羅 敏
(1.廣東省農(nóng)業(yè)科學(xué)院農(nóng)業(yè)生物基因研究中心/廣東省農(nóng)作物種質(zhì)資源保存與利用重點(diǎn)實(shí)驗(yàn)室,廣東 廣州 510640;2.仲愷農(nóng)業(yè)工程學(xué)院信息科學(xué)與技術(shù)學(xué)院,廣東 廣州 510225;3.廣州航海學(xué)院信息與通信工程學(xué)院,廣東 廣州 510725;4.廣東省農(nóng)業(yè)科學(xué)院,廣東 廣州 510640;5.廉江市經(jīng)濟(jì)社會(huì)發(fā)展研究會(huì),廣東 廉江 524400)
【研究意義】柑橘是我國(guó)南方最重要的果樹(shù)之一,其果實(shí)香嫩多汁、酸甜可口,深受廣大消費(fèi)者喜愛(ài),已成為兩廣及江浙等地區(qū)農(nóng)業(yè)經(jīng)濟(jì)發(fā)展的主力軍[1]。黃龍病是世界柑橘生產(chǎn)中最嚴(yán)重的侵染性病害,被稱(chēng)為柑橘的“癌癥”,植株一旦染病,果實(shí)產(chǎn)量及品質(zhì)下降,葉片黃化、植株生長(zhǎng)衰退甚至死亡,經(jīng)濟(jì)壽命縮短,直接影響柑桔產(chǎn)業(yè)的可持續(xù)發(fā)展[2]。黃龍病目前可防可控不可治,而其傳播的最主要媒介是柑橘木虱,因此,監(jiān)測(cè)木虱并對(duì)其消殺是抑制黃龍病傳播的一大有效手段。
【前人研究進(jìn)展】目標(biāo)檢測(cè)是機(jī)器視覺(jué)領(lǐng)域的核心問(wèn)題之一,其任務(wù)就是找出被測(cè)圖像中的所有物體,以及確認(rèn)它們的位置和大小。檢測(cè)模型按照運(yùn)算過(guò)程中是否需要產(chǎn)生候選區(qū)域,可以分為T(mén)wo-stage 和One-stage[3]。Two-stage 算法將運(yùn)算過(guò)程分為兩個(gè)階段,先提取候選框,判斷框選區(qū)域是前景還是背景,第二個(gè)階段進(jìn)行分類(lèi),判斷看前景具體類(lèi)別,Two-stage 算法典型代表有R-CNN[4]、Faster-RCNN[5]等,識(shí)別準(zhǔn)確率較高,但速度欠佳,不適合實(shí)時(shí)檢測(cè)場(chǎng)景。One-stage 算法主要代表有R-SSD[6]、YOLO[7]系列等,不需要候選階段,直接計(jì)算出目標(biāo)的類(lèi)別概率和位置信息,雖然識(shí)別精度比Two-stage 算法稍差[8],但檢測(cè)速度快、資源消耗更少使其成為嵌入式邊緣設(shè)備理想的模型[9]。
在昆蟲(chóng)的智慧監(jiān)測(cè)方面,俞龍等[10]使用了一種改進(jìn)的YOLOX 算法對(duì)一芽一葉、一芽二葉等茶葉嫩芽進(jìn)行識(shí)別、分類(lèi);朱立學(xué)等[11]使用加入了注意力機(jī)制的YOLOv5s 算法對(duì)草坪環(huán)境的紅火蟻進(jìn)行了精準(zhǔn)檢測(cè);胡嘉沛等[12]通過(guò)改進(jìn)YOLOv4-Tiny 模型的頸部網(wǎng)絡(luò),利用淺層卷積層包含的位置信息和細(xì)節(jié)信息,提高了模型對(duì)柑橘木虱小目標(biāo)的識(shí)別能力,并使用交叉小批量歸一化方法替代卷積層的批歸一化方法,提高了統(tǒng)計(jì)信息的準(zhǔn)確度,有效地提升了網(wǎng)絡(luò)的檢測(cè)精度;周逸博等[13]基于YOLOv5s 設(shè)計(jì)了Android 端蘋(píng)果樹(shù)皮病害識(shí)別APP,有效輔助果園精準(zhǔn)管理;Partel 等[14]使用移動(dòng)機(jī)器在田間拍打樹(shù)枝將木虱收集到拍攝臺(tái),使用YOLOv1 和YOLOv3 算法對(duì)木虱進(jìn)行監(jiān)測(cè),但我國(guó)農(nóng)林作業(yè)環(huán)境復(fù)雜,并多以小農(nóng)經(jīng)濟(jì)為主,沒(méi)有規(guī)范化管理,故無(wú)法使用上述行走機(jī)器作業(yè),我國(guó)農(nóng)業(yè)環(huán)境更適合體積較小的嵌入式檢測(cè)設(shè)備[15-16]。引誘劑以及特效殺蟲(chóng)劑對(duì)于木虱的消殺至關(guān)重要,胡妍月等[17]研究不同地區(qū)柑橘木虱種群對(duì)常用殺蟲(chóng)劑的抗性水平,為生產(chǎn)實(shí)踐合理化用藥提供依據(jù);劉科宏等[18]首次在亞洲柑橘木虱中檢測(cè)到CYVCV(柑橘黃脈病毒),研究結(jié)果豐富了基因組數(shù)據(jù)庫(kù),可為CYVCV 的防治和研究提供依據(jù)。
【本研究切入點(diǎn)】考慮到后期需要部署在嵌入式開(kāi)發(fā)板,選擇速度更快的One-stage類(lèi)型算法。YOLO 系列作為此類(lèi)典型代表,經(jīng)過(guò)幾年的發(fā)展,已經(jīng)廣泛應(yīng)用于工業(yè)領(lǐng)域。本研究選擇2021 年由曠視研究院提出的YOLOX[19]模型作為基準(zhǔn)算法,在其骨干網(wǎng)絡(luò)輸出層加入卷積注意力模塊CBAM(Convolutional block attention module)[20],增強(qiáng)其特征提取能力;針對(duì)柑橘木虱體積非常小,屬于小目標(biāo)檢測(cè)范疇,引入Focal Loss[21]損失函數(shù)提高模型對(duì)小目標(biāo)的檢測(cè)能力。
【擬解決的關(guān)鍵問(wèn)題】木虱體積較小,需要更加精確的目標(biāo)檢測(cè)算法才可以達(dá)到理想的識(shí)別效果,基于YOLOX 的改進(jìn)模型增強(qiáng)了特征提取和小目標(biāo)檢測(cè)能力,契合柑橘木虱檢測(cè)場(chǎng)景。
試驗(yàn)所用木虱數(shù)據(jù)采集于廣東省農(nóng)業(yè)科學(xué)院農(nóng)業(yè)生物基因研究中心與廉江智庫(kù)合作的果園試驗(yàn)基地廉江市橙夢(mèng)園,采集時(shí)間為2022 年5 月24—26 日,其中,24 日為陰天,其余兩日為晴天,每日選取7:00~8:00、12:00~13:00、17:00~18:00 3 個(gè)時(shí)間段進(jìn)行采樣,拍攝設(shè)備為小米11 手機(jī),為確保數(shù)據(jù)集的穩(wěn)定性和一致性,整個(gè)采集過(guò)程采用自動(dòng)對(duì)焦模式,禁用閃光燈和HDR 功能,拍攝距離9~11 cm,圖像像素為3384×6016,共600 張(圖1)。
圖1 柑橘木虱數(shù)據(jù)集Fig.1 Citrus psyllid data set
為了防止600 張木虱數(shù)據(jù)集發(fā)生過(guò)擬合現(xiàn)象,如直接輸入模型進(jìn)行訓(xùn)練會(huì)導(dǎo)致特征學(xué)習(xí)不明顯導(dǎo)致推理失敗,因此在訓(xùn)練階段前對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充和增強(qiáng)。首先對(duì)600 張圖像進(jìn)行旋轉(zhuǎn)和翻轉(zhuǎn),增強(qiáng)其泛化能力,并對(duì)擴(kuò)充后的數(shù)據(jù)集采用改進(jìn)的Mosaic 數(shù)據(jù)增強(qiáng)方法,原版Mosaic 是隨機(jī)選取4 張圖像進(jìn)行隨機(jī)裁剪,并將裁剪過(guò)后的圖像按順序拼接為一張新圖像,再將其與原始數(shù)據(jù)集一起作為模型的訓(xùn)練輸入。經(jīng)過(guò)數(shù)據(jù)擴(kuò)充與增強(qiáng)后,最終數(shù)據(jù)集數(shù)量為2 100 張,按照8∶1∶1的比例劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集,其中1 680 張訓(xùn)練數(shù)據(jù)通過(guò)LabelImg 軟件手動(dòng)標(biāo)注出木虱所在圖像中的位置,得到標(biāo)簽數(shù)據(jù)集。
近幾年來(lái),YOLOv1-YOLOv5 成為工業(yè)領(lǐng)域應(yīng)用最廣泛的目標(biāo)檢測(cè)算法,基于此改進(jìn)的檢測(cè)模型解決了大量的工作,但隨著網(wǎng)絡(luò)模型朝著向量化的方向改進(jìn),尤其是YOLOv5 其檢測(cè)準(zhǔn)確率受硬件影響較大,未考慮后期部署工作,其通常在V100 等高成本的機(jī)器上進(jìn)行比較。YOLOX 在前人廣泛的研究基礎(chǔ)上,汲取了大量?jī)?yōu)秀工作,將YOLO 系列進(jìn)一步增強(qiáng),基于YOLOX 模型開(kāi)展木虱檢測(cè)工作,提高其檢測(cè)準(zhǔn)確率。
1.3.1 YOLOX 模型概述 目標(biāo)檢測(cè)模型根據(jù)各部分功能的不同,可以被抽象為Backbone、Neck 和Head 3 個(gè)部分,如圖2 所示。主干網(wǎng)絡(luò)Backbone 部分對(duì)輸入的數(shù)據(jù)進(jìn)行特征提取,包括一些定位信息、細(xì)節(jié)信息等供后續(xù)網(wǎng)絡(luò)使用;頸部網(wǎng)絡(luò)Neck 部分用來(lái)提取一些更復(fù)雜的特征從而更好的融合和提取特征信息;檢測(cè)頭Head 部分利用之前提取到的特征進(jìn)行計(jì)算預(yù)測(cè)輸出結(jié)果。YOLO 系列各版本結(jié)構(gòu)設(shè)計(jì)如表1 所示。
圖2 檢測(cè)模型總體結(jié)構(gòu)Fig.2 Overall structure of detection model
表1 YOLO 各版本結(jié)構(gòu)設(shè)計(jì)Table 1 Structural design of various versions of YOLO
1.3.2 主干網(wǎng)絡(luò)改進(jìn) YOLOX 主干網(wǎng)絡(luò)使用的是CSPDarkNet 模型,主要使用CSP 結(jié)構(gòu)與卷積層相連接。輸入的圖像首先經(jīng)過(guò)Focus 結(jié)構(gòu)(圖3)進(jìn)行采樣,采用切片操作將分辨率較高的圖片切分為多個(gè)低分辨率的圖片,及隔行隔列的切割再拼接,F(xiàn)ocus 操作將平面上的信息轉(zhuǎn)換到通道維度,從而降低模型結(jié)算量。然后經(jīng)過(guò)CSPDarkNet獲取到3 個(gè)有效特征層,雖然CSP 結(jié)構(gòu)可以減輕隨著網(wǎng)絡(luò)的加深而出現(xiàn)的梯度消失問(wèn)題,但是也會(huì)一同將噪聲與提取到的特征傳輸?shù)缴顚泳W(wǎng)絡(luò),降低學(xué)習(xí)效率。因此本研究在3 個(gè)有效特征層后分別加入卷積注意力模塊(Convolutional Block Attention Module,CBAM),可以序列化地在通道和空間兩個(gè)維度上產(chǎn)生注意力特征圖信息,然后兩個(gè)維度再與原輸入特征圖進(jìn)行相乘以完成適應(yīng)特征修正獲得最后的特征圖,是一種結(jié)合了通道和空間的輕量級(jí)注意力模塊,可以將注意力聚焦在圖像中更加重要的區(qū)域,讓模型更加關(guān)注重要特征。改進(jìn)后的YOLOX 模型如圖4 所示。
圖3 Focus 結(jié)構(gòu)Fig.3 Structure of Focus
圖4 改進(jìn)的YOLOX 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Improved YOLOX network structure
1.3.3 損失函數(shù) YOLOX 的損失函數(shù)由3 部分構(gòu)成,如下式所示:
L=LReg+LCls+LObj
式中,L為模型總損失,LReg為預(yù)測(cè)位置和真實(shí)位置之間誤差的損失,LCls為判斷類(lèi)別概率的損失,LObj為對(duì)象的置信度損失?;诟涕倌臼∧繕?biāo)的特性,使用Focal Loss 損失函數(shù)替換目標(biāo)損失中的交叉熵?fù)p失,F(xiàn)ocal Loss 損失函數(shù)如下:
式中,γ>0,使得減少易分類(lèi)樣本的損失,使其可以更加關(guān)注困難的、錯(cuò)分的樣本,經(jīng)Focal Loss計(jì)算,小目標(biāo)就可以獲得更高的損失值,從而提升模型整體的小目標(biāo)檢測(cè)能力。
本模型訓(xùn)練環(huán)境為Ubuntu18.04 操作系統(tǒng),顯卡選用雙路NVIDIA RTX3060Ti 提供算力,選用Python3.8 編程語(yǔ)言以及Pytorch 1.10.0 深度學(xué)習(xí)框架,OpenCV 庫(kù)版本為4.6.0.66,并采用CUDA11.3+CUDNNv8.2.1 進(jìn)行加速。
評(píng)價(jià)指標(biāo)采用精準(zhǔn)率(Precision,P)表示正確識(shí)別木虱的占比,召回率(Recall,R)表示木虱的覆蓋程度,精度均值(Average Precision,AP)表示木虱識(shí)別的精度,平均精度均值(Mean Average Precision,mAP)表示木虱的平均識(shí)別精度,計(jì)算公式如下:
模型初始參數(shù)為學(xué)習(xí)率0.001,Batch 大小16,迭代次數(shù)epoch100。圖5 為木虱的識(shí)別效果圖,可以看出,模型對(duì)于木虱小目標(biāo)的檢測(cè)效果很好,并且對(duì)于重疊在一起的多個(gè)木虱也可以有較高的識(shí)別率;圖6 為改進(jìn)后的YOLOX P-R 曲線圖,橫坐標(biāo)為召回率(Recall,R),縱坐標(biāo)為精準(zhǔn)率(Precision,P),坐標(biāo)軸與P-R 曲線圍成的面積即為木虱識(shí)別精度(Average Precision,AP)值,可以得到木虱識(shí)別精度的AP 值為85.66%。
圖5 柑橘木虱識(shí)別效果Fig.5 Effect of citrus psyllid identification
圖6 YOLOX P-R 曲線Fig.6 P-R curve of YOLOX
YOLOX 主干部分具有多個(gè)殘差網(wǎng)絡(luò),其中CSP結(jié)構(gòu)將原來(lái)的殘差塊的堆疊拆分為兩個(gè)部分,主干部分繼續(xù)進(jìn)行之前的殘差塊的堆疊;另一部分則經(jīng)過(guò)少量處理與多個(gè)殘差的輸出特征直接相連,有較大的殘差邊。這個(gè)結(jié)構(gòu)可以增加深度來(lái)提高準(zhǔn)確率,且可以有效緩解深度增加帶來(lái)的梯度消失問(wèn)題,但是也會(huì)將噪聲一起傳到更深的網(wǎng)絡(luò),從而影響準(zhǔn)確性。加入CBAM 模塊后,使網(wǎng)絡(luò)更加關(guān)注重要特征,一直非必要特征,減輕噪音對(duì)網(wǎng)絡(luò)傳輸?shù)挠绊?,大大提高了模型在?fù)雜背景環(huán)境下對(duì)柑橘木虱的檢測(cè)能力。
本研究的改進(jìn)YOLOX 模型與原版YOLOX 以及其他YOLO 類(lèi)算法精度對(duì)比如表2 所示。從表2 可以看出,木虱檢測(cè)模型AP 值分別提高2.70、8.61、4.23、3.62個(gè)百分點(diǎn),取得了很好的檢測(cè)效果。
表2 精度對(duì)比實(shí)驗(yàn)Table 2 Comparison experiment of precision
為分析本文各改進(jìn)策略對(duì)模型性能的影響,共設(shè)計(jì)3 組實(shí)驗(yàn)對(duì)不同的改進(jìn)進(jìn)行分析,每組實(shí)驗(yàn)均使用相同訓(xùn)練參數(shù),在實(shí)景采集的木虱數(shù)據(jù)集上對(duì)各改進(jìn)策略進(jìn)行訓(xùn)練和評(píng)估,模型性能檢測(cè)結(jié)果如表3 所示,其中“√”代表在改進(jìn)模型中使用的策略,“×”代表在改進(jìn)模型中未使用的策略。原版YOLOX 模型AP 值為82.96%,在主干網(wǎng)絡(luò)3 個(gè)有效特征層加入CBAM 注意力模塊后,AP 值提高2.11 個(gè)百分點(diǎn);改變交叉熵?fù)p失為Focal Loss 損失后,AP 值提高0.79 個(gè)百分點(diǎn)。引入Focal Loss 損失函數(shù)后,解決了木虱數(shù)據(jù)集樣本不均衡的問(wèn)題,從而提高了準(zhǔn)確率。
表3 消融對(duì)比實(shí)驗(yàn)Table 3 Comparison experiment of ablation
YOLOX 是至今為止非常優(yōu)秀且在工業(yè)領(lǐng)域獲得一致好評(píng)的開(kāi)源檢測(cè)算法,其在輸入端添加了Mosaic 和MixUp 進(jìn)行數(shù)據(jù)增強(qiáng),主干部分主要采用Focus、CSP 跨階段局部網(wǎng)絡(luò)結(jié)構(gòu)和SPP空間金字塔池結(jié)構(gòu)組成,預(yù)測(cè)端與之前YOLO 系列相比有很大改變,增加了3 個(gè)Decoupled Head解耦頭,使網(wǎng)絡(luò)收斂速度加快,增強(qiáng)網(wǎng)絡(luò)表達(dá)能力;標(biāo)簽分配策略上對(duì)OTA 進(jìn)行了簡(jiǎn)化,提出了SimOTA,在訓(xùn)練過(guò)程自適應(yīng)地動(dòng)態(tài)分配正樣本,大大縮短訓(xùn)練時(shí)間。本研究針對(duì)目前小目標(biāo)檢測(cè)存在精度低、誤檢率高等問(wèn)題,以YOLOX 作為基準(zhǔn)模型提出了一種柑橘木虱檢測(cè)模型,通過(guò)在主干網(wǎng)絡(luò)的3 個(gè)有效特征層加入卷積注意力模塊CBAM,使其對(duì)于某些特征層和空間區(qū)域更加關(guān)注;使用Focal Loss 損失函數(shù)替換目標(biāo)損失中的交叉熵?fù)p失,使模型訓(xùn)練更加穩(wěn)定,收斂速度更快。
注意力機(jī)制的靈感最先起源于人類(lèi)的視覺(jué)研究,人們可以非常輕松地分辨重要區(qū)域和不重要區(qū)域,從而獲得重點(diǎn)信息。注意力機(jī)制是對(duì)數(shù)據(jù)引入注意力權(quán)重信息,突出重要特征,并且抑制非重要信息。CBAM 結(jié)合了圖像的通道維度和空間維度,使得網(wǎng)絡(luò)可以獲得全局信息并進(jìn)行分析,從而更加關(guān)注圖像中的目標(biāo)信息?;赮OLOX的木虱檢測(cè)模型通過(guò)加入CBAM,使得網(wǎng)絡(luò)更加關(guān)注木虱小目標(biāo)所在區(qū)域,從而提升木虱檢測(cè)能力,AP 值提高了2.11 個(gè)百分點(diǎn),且參數(shù)量增加很小。
在實(shí)際的預(yù)測(cè)中,小目標(biāo)相較于大目標(biāo)有著更低的準(zhǔn)確率,更難預(yù)測(cè),交叉熵?fù)p失函數(shù)沒(méi)有很好的提高模型對(duì)小目標(biāo)的檢測(cè)能力,為了進(jìn)一步提高模型對(duì)小目標(biāo)的檢測(cè)效果,將目標(biāo)損失中的交叉熵?fù)p失改為使用Focal Loss損失函數(shù)計(jì)算,其通過(guò)一個(gè)超參數(shù)γ 來(lái)控制網(wǎng)絡(luò)對(duì)小目標(biāo)的關(guān)注度,通過(guò)降低負(fù)樣本的權(quán)重,使網(wǎng)絡(luò)在訓(xùn)練階段可以更加關(guān)注真實(shí)部分和困難樣本,弱化數(shù)據(jù)不平衡問(wèn)題,從而提升性能。
本研究通過(guò)對(duì)YOLOX 的探索和優(yōu)化,針對(duì)柑橘木虱數(shù)據(jù)提出了一種精度更高的檢測(cè)模型。但是性能在我們自己創(chuàng)建的數(shù)據(jù)集上面沒(méi)有公共數(shù)據(jù)集表現(xiàn)的優(yōu)秀,因此在數(shù)據(jù)采集階段的工作還需標(biāo)準(zhǔn)化。另外,人工數(shù)據(jù)標(biāo)注也會(huì)對(duì)樣本訓(xùn)練產(chǎn)生一定的影響,可以考慮一些自動(dòng)標(biāo)注方法。
在科技快速發(fā)展的今天,農(nóng)業(yè)智能化已經(jīng)成為一種趨勢(shì),亟待為果園的智慧管理提供一種解決辦法。本研究基于YOLOX 檢測(cè)方法,在汲取前沿科技成果的基礎(chǔ)上,通過(guò)在主干網(wǎng)絡(luò)的3 個(gè)有效特征層加入卷積注意力模塊CBAM,提高其重點(diǎn)信息關(guān)注程度;改變交叉熵?fù)p失為Focal Loss損失,削弱樣本不平衡問(wèn)題,增強(qiáng)小目標(biāo)檢測(cè)能力,經(jīng)過(guò)測(cè)試,AP 值為85.66%,比原模型提高2.70個(gè)百分點(diǎn),推動(dòng)著目標(biāo)檢測(cè)領(lǐng)域向著更快更準(zhǔn)的方向高速發(fā)展。