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