




關(guān)鍵詞: 改進ATSS模型; FPN-CARAFE; CIoU損失函數(shù); 水稻葉片病害
中圖法分類號: TP391.4 文獻標識碼: A 文章編號: 1000-2324(2024)01-0093-07
我國是糧食的重要產(chǎn)出地和消耗地。我國利用全球7%的耕地,養(yǎng)活了世界五分之一的人口[1]。水稻作為我國主要的糧食作物,在生長過程中易受到生產(chǎn)環(huán)境及自身特點的影響,從而發(fā)生各種各樣的病害蟲害,最終影響水稻的產(chǎn)量和品質(zhì)。因此,及時準確高效地識別病蟲害并采取病蟲害綜合防治措施對保障水稻的產(chǎn)量和質(zhì)量非常重要。
目前農(nóng)作物病蟲害的診斷方法主要有通過面對面詢問領(lǐng)域?qū)<摇⒎啿∠x害圖譜和聯(lián)網(wǎng)查詢比對病蟲害信息。在這些方法中,咨詢專家準確度較高,但專家缺乏且人工識別耗時耗力;查詢病蟲害圖譜雖容易實現(xiàn)和普及,但僅靠圖片對比和文字描述容易引起一些相似病蟲害之間的誤判;網(wǎng)上咨詢或查詢的實時效果較差,不能及時的診斷和提供有效的防治措施[2]。
近些年來,隨著計算機視覺技術(shù)的發(fā)展,深度學習方法被應用于農(nóng)作物病蟲害識別和檢測領(lǐng)域中,為水稻病蟲害識別與檢測提供了新的思路。目前廣泛應用的檢測算法包括以R-CNN系列為代表的雙階段(Two-stage) 檢測算法和以Retinanet、YOLO 系列為代表的單階段(Onestage)檢測算法[3-5]。李鑫然等在Faster R-CNN模型的基礎(chǔ)上,引入特征金字塔網(wǎng)絡(FeaturePyramid Network, FPN)進行深度特征融合,并用精確感興趣區(qū)域池化(PrROI Pooling)取代模型的區(qū)域池化(ROI Pooling)層,在5 種蘋果葉片病害的檢測上,改進模型的平均精度均值(Meanaverage precision, mAP)達到了82.48%,相對于原模型提升了6.01 個百分點[6]。樊湘鵬等從特征提取網(wǎng)絡、區(qū)域建議網(wǎng)絡(Region ProposalNetwork)、損失函數(shù)等方面對Faster R-CNN模型提出改進,在青皮核桃的識別上,改進模型的檢測精度比原模型高5.04 個百分點[7]。宋中山等提出基于二值化的Faster R-CNN模型,并將模型應用到柑橘病蟲害識別上,通過實驗驗證了模型在檢測準確度和檢測速度上的優(yōu)勢[8]。易佳昕等針對棉間雜草識別,從特征提取網(wǎng)絡、錨框(Anchor)等方面對Faster R-CNN模型提出改進,模型的平均精度均值指標達到了89.19%,在檢測精度和速度均具備優(yōu)勢[9]。張遠琴等針對水稻稻穗檢測,從區(qū)域池化層、錨框等方面改進Faster R-CNN模型,模型的平均精度均值指標達到了80.3%,相比于原Faster R-CNN模型提升了2.4 個百分點[10]。邢偉寅等在Retinanet 模型的基礎(chǔ)上,采用DenseNet 替換原特征提取網(wǎng)絡ResNet50,并對非極大值抑制(Non-Maximum Supression, NMS)算法提出改進,改進模型對10種農(nóng)作物病蟲害的平均精度均值指標達49.8%[11]。姚青等提出改進的RetinaNet 模型并用來檢測水稻冠層害蟲為害狀,使用組歸一化(Group Normalization,GN)作為歸一化方法,并改進了特征金字塔網(wǎng)絡結(jié)構(gòu),對兩種害蟲危害狀的檢測平均精度均值達到了93.76%[12]。孫俊等針對蘋果檢測,在RetinaNet 模型的特征提取網(wǎng)絡、特征金字塔網(wǎng)絡、損失函數(shù)等方面進行改進,并實驗驗證了模型的有效性[13]。劉延鑫等構(gòu)建基于YOLOv3 的煙草病害檢測模型,使用Darknet53 背景網(wǎng)絡提取病害特征,并使用Kmeans++算法對錨框?qū)捀呔垲愡M而重設錨框,模型平均精度均值達到了77%,比SSD 模型提升8 個百分點[14]。周維等結(jié)合YOLOv4 和輕量化網(wǎng)絡GhostNet,提出了YOLOv4-GhostNet 網(wǎng)絡模型,對9 種水稻病蟲害的檢測平均精度均值達到了79.38%[15]。
目前深度學習方法也被應用到水稻檢測方面,但模型仍然以R-CNN系列、Retinanet、YOLO系列為主,關(guān)于ATSS(Adaptive Training SampleSelection) 這一經(jīng)典Anchor-free 模型的應用較少,而本文主要將ATSS 模型應用到水稻葉片病害檢測上[10,12,15]。本文在ATSS 模型的基礎(chǔ)上,模型Neck 部分使用FPN-CARAFE 模塊,回歸分支的損失函數(shù)采用CIoU(Complete-IoU)損失函數(shù),并將改進模型應用到水稻白葉枯病(Ricebacterial leaf blight)、水稻胡麻斑病(Rice brownspot)、水稻葉瘟病(Rice leaf blast)的檢測上,提升了檢測的準確度。
1 材料與方法
1.1 數(shù)據(jù)來源
本文以水稻白葉枯病、水稻胡麻斑病、水稻葉瘟病作為研究對象。數(shù)據(jù)集主要來源于Kaggle 網(wǎng)站,經(jīng)由人工篩選后,得到950張圖像,使用Labelme 軟件標注病害位置,使用PascalVoc 數(shù)據(jù)格式的XML文件保存病害位置信息。收集到的圖像數(shù)量有限,且驗證集和測試集需要保留一定數(shù)量的圖像,從而保證模型訓練的有效性,按照約6∶2∶2 的比例隨機劃分訓練集、驗證集、測試集。訓練集、驗證集、測試集包含的圖像數(shù)量如表1 所示。訓練集圖像數(shù)據(jù)有限,無法滿足模型的訓練的需求,為了減少過擬合,提高模型的訓練效果,使用圖像翻轉(zhuǎn)、旋轉(zhuǎn)(90 度、180 度、270度角旋轉(zhuǎn))、明暗度調(diào)節(jié)等圖像增強方法,將訓練集圖像數(shù)據(jù)量提高到原來的8 倍,并且在訓練時均以0.5 的概率進行30 度內(nèi)隨機旋轉(zhuǎn)和直方圖均衡變換進行在線增強。部分數(shù)據(jù)集圖像展示如圖1所示。
1.2 水稻葉片檢測模型框架
本文用于水稻葉片病害檢測的ATSS網(wǎng)絡結(jié)構(gòu)如圖2 所示。該網(wǎng)絡主要包含骨干特征提取網(wǎng)絡Backbone、特征融合網(wǎng)絡Neck、頭部檢測網(wǎng)絡Head 三個模塊。Backbone 網(wǎng)絡對輸入的水稻葉片病害圖像進行特征提取,這里選擇Resnet50作為Backbone[16]。ResNet50 的C3、C4、C5層作為Neck 的輸入,其步長分別為8、16、32。Neck 是Backbone 和Head 的連接層,主要負責對Backbone 的特征進行高效融合和增強,能夠?qū)斎隒3、C4、C5層上的多尺度特征進行融合,并輸出特征金字塔{P3,P4,P5,P6,P7},這里采用FPN-CARAFE結(jié)構(gòu)作為模型的Neck。分類分支(Classification)、回歸分支(Regression)及中心度分支(Center-ness)在Head 中,在訓練和測試時預測目標的種類和位置[17]。
1.2.1 FPN-CARAFE 傳統(tǒng)的特征金字塔網(wǎng)絡中,主要使用雙線性插值對特征圖進行上采樣[18]。然而雙線性插值只考慮鄰域內(nèi)的亞像素,無法捕獲密集檢測任務所需的豐富語義信息,而且在插值過程中引入的噪聲也在一定程度上影響檢測。而CARAFE(Content-Aware ReAssemblyof FEatures)可以在不同位置使用自適應和優(yōu)化的重組內(nèi)核,能夠克服雙線性插值的缺點[19]。因此模型Neck 部分采用基于CARAFE 的FPNCARAFE模塊,在該模塊中,上采樣算子采用CARAFE。FPN-CARAFE 模塊的結(jié)構(gòu)在圖2 中展示。
2 結(jié)果與分析
2.1 參數(shù)設置與評價指標
模型在Ubuntu 20.04操作系統(tǒng)、PyTorch1.10框架、Python 3.7的環(huán)境下訓練測試,所用顯卡為RTX 3090,GPU 加速庫采用CUDA11.3 以及CUDNN 8.2,所有模型借助框架mmdetection2.28 實現(xiàn)。參數(shù)更新采用隨機梯度下降法(Stochastic gradient descent),學習率設置為0.01,學習率優(yōu)化采用熱身(Warm up)策略[5],動量設為0.9,epoch 設置為12,在第8 和11 個epoch 之后,學習率下降為原來的十分之一。該模型的訓練損失曲線如圖5 所示。整體而言,隨著迭代次數(shù)的增加,損失函數(shù)隨之降低,在2 500 次迭代之后,模型損失基本收斂到穩(wěn)定值,說明模型訓練的有效性。
模型評價指標采用平均精度均值(Meanaverage precision, mAP)、平均幀率(Frame persecond,F(xiàn)PS)。平均精度均值是水稻各病害檢測平均精度的均值,其衡量模型的檢測精度,該值越高,說明模型檢測效果越好。平均幀率衡量模型的檢測速度,其值為每秒模型處理的圖像數(shù)量。平均幀率越高,模型檢測速度越快。平均幀率在增強后的訓練集、驗證集、測試集組成的數(shù)據(jù)集上測試,實驗所用模型的圖像輸入維度為(640,640)。
2.2 不同檢測模型性能對比
為了驗證所提模型的有效性,選擇Retinanet、Faster R-CNN、Cascade R-CNN、FCOS、TOOD 等模型作為對比模型[3-4,22-24]。在訓練環(huán)境和參數(shù)設置保持一致的前提下,對比模型的各項指標,對比結(jié)果如表2 所示。在小目標占比相對較多的水稻葉片數(shù)據(jù)集上,Cascade R-CNN、TOOD以及本文模型取得了超過70%的檢測精度,F(xiàn)aster RCNN和FCOS 的檢測精度也接近70%。本文模型檢測精度最高,其mAP 達到74.0%,比Retinanet、Faster R-CNN、Cascade R-CNN、FCOS、TOOD 分別提升了12.2、4.7、3.8、4.4、2.0個百分點。Retinanet 模型的FPS 指標最高,達到了38.0,但其檢測精度遠低于改進ATSS 模型。Faster R-CNN 和FCOS 模型的FPS 分別達到了36.7 和35.8,超越了改進ATSS模型,但其檢測精度低于改進ATSS 模型超過4 個百分點。模型Cascade R-CNN 的檢測精度和速度均低于改進ATSS 模型。模型TOOD的mAP 達到72.0%,接近改進ATSS模型,但其FPS 指標僅為26.2,在所有實驗對比模型中最低。綜合以上分析,認為改進ATSS 取得了最高的檢測精度,且在檢測精度和檢測速度上取得了最高的權(quán)衡。
2.3 特征提取網(wǎng)絡對比
水稻葉片病害檢測模型采用殘差神經(jīng)網(wǎng)絡ResNet 作為骨干特征提取網(wǎng)絡Backbone,為確定ResNet 的最佳層數(shù),在參數(shù)設置等其它條件一致的前提下,分別采用ResNet18、ResNet34、ResNet50、ResNet101 作為Backbone 并對比模型檢測效果,對比結(jié)果如表3 所示。ResNet50 和ResNet101 的mAP達到74.0,取得了最高的模型精度,比ResNet18 和ResNet34 提高了4.2 和1.5個百分點。隨著ResNet 層數(shù)的增長,模型的檢測精度隨之上升,檢測速度隨之降低。從ResNet18 到ResNet34,mAP 增加了2.7 個百分點,F(xiàn)PS 隨之降低了4.8;從ResNet34 到ResNet50,mAP增加了1.5 個百分點,F(xiàn)PS降低了3.0f;從ResNet50 到ResNet101,mAP 指標不增加,F(xiàn)PS 卻降低了7.5。綜合考慮檢測精度和檢測速度,選擇ResNet50 作為水稻葉片病害檢測模型的特征提取網(wǎng)絡。
2.4消融實驗
為驗證FPN-CARAFE 和CIoU 損失函數(shù)對模型的改進效果,本研究進行了消融實驗,結(jié)果見表4。僅引入FPN-CARAFE 模塊,mAP 提升了2.8 個百分點。僅引入CIoU 損失函數(shù),mAP提升了1.1 個百分點。同時引入FPN-CARAFE和CIoU 損失函數(shù),mAP提升3.5 個百分點,相比于單獨引入FPN-CARAFE 模塊提升了0.7 個百分點,相對于單獨引入CIoU 提升了2.4 個百分點。
3結(jié)論
針對水稻葉片病害檢測,首先收集3 種水稻葉片病害圖像,構(gòu)建水稻葉片病害數(shù)據(jù)集。將ATSS 模型作為檢測的基礎(chǔ)模型并在此基礎(chǔ)上,Neck 部分采用FPN-CARAFE 模塊取代原FPN模塊,回歸損失函數(shù)采用CIoU 損失函數(shù)。實驗結(jié)果表明,改進ATSS 模型對3 種水稻葉片病害檢測的平均精度均值達到了74.0%,比原ATSS模型超出3.5 個百分點;與Retinanet、Faster RCNN、Cascade R-CNN、FCOS、TOOD模型相比,本文提出的模型取得了最優(yōu)的檢測精度,且在檢測精度和速度上取得了最高的權(quán)衡。實驗結(jié)果驗證了所提模型的有效性,但仍然存在著樣本偏少、病害種類少的問題,將來可以收集更多的水稻葉片病害圖像,擴增數(shù)據(jù)集的樣本數(shù)量和模型檢測對象種類。