代 麗,倪光亮
(浙江理工大學(xué)經(jīng)濟(jì)管理學(xué)院,浙江 杭州 310018)
玉米是全世界產(chǎn)量最高的作物,是我國(guó)重要的谷類(lèi)作物、飼料和工業(yè)原料作物[1,2]。玉米作物的病蟲(chóng)害嚴(yán)重影響其產(chǎn)量,近年來(lái),全球氣候的持續(xù)改變進(jìn)一步加劇了玉米病蟲(chóng)害的發(fā)生。及時(shí)發(fā)現(xiàn)并準(zhǔn)確地識(shí)別出玉米病害的類(lèi)型,對(duì)于病害的防治十分重要。隨著計(jì)算機(jī)視覺(jué)技術(shù)的快速發(fā)展,機(jī)器學(xué)習(xí)技術(shù)在農(nóng)業(yè)領(lǐng)域得到了廣泛應(yīng)用。傳統(tǒng)的機(jī)器學(xué)習(xí)方法在農(nóng)作物病害的識(shí)別中主要依靠人工設(shè)計(jì)特征,利用顏色、紋理和形狀等信息構(gòu)建特征向量,再通過(guò)支持向量機(jī)、貝葉斯分類(lèi)器和隨機(jī)森林等方法將特征向量分類(lèi)[3,4]。然而,依靠人工選定特征,要消耗大量的時(shí)間對(duì)圖像做預(yù)處理以及評(píng)估特征的有效性[5]。由于受植物類(lèi)型、生長(zhǎng)階段、病害種類(lèi)等因素的影響,病害癥狀復(fù)雜,特征提取困難,而識(shí)別模型缺乏普遍適用性,不能滿足實(shí)際農(nóng)業(yè)生產(chǎn)中的需求[6,7]。
近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)成為農(nóng)作物病害圖像分類(lèi)上的核心模型,由于提取農(nóng)作物病害的有效特征對(duì)于病害的識(shí)別非常重要,而卷積神經(jīng)網(wǎng)絡(luò)能夠系統(tǒng)地從原始輸入圖像中自動(dòng)學(xué)習(xí)特征,其端到端的結(jié)構(gòu)簡(jiǎn)化了識(shí)別流程為農(nóng)業(yè)領(lǐng)域的研究提供了便利[8,9]。Zhao等[10]通過(guò)將注意力機(jī)制模塊SENet集成到ResNet50每個(gè)stage 之后,提出了SE-ResNet50 模型,模型對(duì)番茄中10 種病害的識(shí)別準(zhǔn)確率達(dá)到96.81%。Zeng 等[11]提出了一種SKPSNet-50 卷積神經(jīng)網(wǎng)絡(luò)模型用于自然場(chǎng)景中玉米葉部病害的識(shí)別,該模型將骨干網(wǎng)絡(luò)ResNet-50 中3×3 的卷積核替換為Kernel-Point-Swish_B(SKPS),并將ReLU 激活函數(shù)替換為Swish_B激活函數(shù)來(lái)提高病斑的特征提取能力,采用焦點(diǎn)損失函數(shù)解決數(shù)據(jù)類(lèi)別不平衡問(wèn)題,該模型對(duì)自然場(chǎng)景中玉米葉部病害的識(shí)別準(zhǔn)確率達(dá)到了92.9%。因此,本文以玉米病害圖像為研究對(duì)象,提出一種基于注意力機(jī)制與殘差網(wǎng)絡(luò)的玉米病害識(shí)別方法,來(lái)實(shí)現(xiàn)對(duì)玉米病害準(zhǔn)確、快速地識(shí)別。
本實(shí)驗(yàn)所采用的玉米葉部病害圖像來(lái)自于公開(kāi)數(shù)據(jù)集PlantVillage,從中選取四類(lèi)玉米葉部病害(包含健康葉片)的圖像進(jìn)行識(shí)別,分別為玉米銹病1192張、玉米灰斑病513 張、玉米健康1162 張、玉米大斑病985張。每幅圖像的像素大小為256×256,4種玉米葉部病害的樣本圖像如圖1所示。
圖1 玉米葉部病害樣本示例
為了減少模型在訓(xùn)練時(shí)的過(guò)擬合問(wèn)題,提高模型的泛化能力,使用數(shù)據(jù)增強(qiáng)方法對(duì)數(shù)據(jù)進(jìn)行擴(kuò)充。所采用的數(shù)據(jù)增強(qiáng)手段包括隨機(jī)旋轉(zhuǎn)、隨機(jī)翻轉(zhuǎn)、改變銳化、改變亮度、改變飽和度以及對(duì)比度變換。最終獲得的玉米病害數(shù)據(jù)集包含有16400 張圖片,數(shù)據(jù)集按照8∶2的比例隨機(jī)分為訓(xùn)練集和驗(yàn)證集。數(shù)據(jù)集的具體信息如表1所示。
表1 玉米病害數(shù)據(jù)集
卷積神經(jīng)網(wǎng)絡(luò)能夠在不同語(yǔ)義層級(jí)上對(duì)圖像進(jìn)行特征提取,并且網(wǎng)絡(luò)層數(shù)越多,能夠提取到不同水平的特征也越豐富[5]。隨著網(wǎng)絡(luò)層數(shù)的不斷加深,網(wǎng)絡(luò)在訓(xùn)練過(guò)程中會(huì)出現(xiàn)梯度消失或者梯度爆炸現(xiàn)象,且退化現(xiàn)象的發(fā)生也會(huì)使網(wǎng)絡(luò)的準(zhǔn)確率出現(xiàn)飽和甚至下降,網(wǎng)絡(luò)優(yōu)化也越來(lái)越困難。因此,He 等[12]提出了殘差神經(jīng)網(wǎng)絡(luò)(ResNet),使得網(wǎng)絡(luò)深度大幅提升的同時(shí)可以達(dá)到更高的準(zhǔn)確率。
ResNet 通過(guò)恒等映射結(jié)構(gòu),采用捷徑連接的方式將多個(gè)淺層網(wǎng)絡(luò)連接起來(lái),使得不同層的特征可以互相傳遞,實(shí)現(xiàn)了特征的復(fù)用,緩解了網(wǎng)絡(luò)過(guò)深伴隨的梯度消失問(wèn)題。根據(jù)網(wǎng)絡(luò)層數(shù)的不同,設(shè)計(jì)了兩種不同殘差路徑的“殘差學(xué)習(xí)模塊”。如圖2 所示:(a)是為淺層網(wǎng)絡(luò)設(shè)計(jì)的殘差模塊,稱(chēng)之為“構(gòu)建模塊”,由兩個(gè)3×3的卷積層構(gòu)成;(b)是為深層網(wǎng)絡(luò)所設(shè)計(jì)的殘差模塊,稱(chēng)之為“瓶頸構(gòu)建模塊”,由兩個(gè)1×1 的卷積層和一個(gè)3×3 的卷積層所構(gòu)成,其中兩個(gè)1×1 的卷積層對(duì)輸入進(jìn)行先降維后升維的操作,一定程度上減少特征圖的層數(shù),從而減少了參數(shù)量和計(jì)算時(shí)間。
圖2 殘差學(xué)習(xí)模塊
SENet[13](Squeeze-and-Excitation Networks)是一個(gè)輕量級(jí)通道注意力機(jī)制模塊,如圖3所示,通過(guò)關(guān)注不同通道的權(quán)重,讓模型學(xué)習(xí)得到不同特征通道的權(quán)重系數(shù),根據(jù)特征通道權(quán)重系數(shù)的大小,對(duì)有效特征通道進(jìn)行增強(qiáng),對(duì)無(wú)效特征通道進(jìn)行抑制。SENet 模塊通過(guò)以下三個(gè)步驟對(duì)特征圖進(jìn)行操作。
圖3 SENet模塊
第1 步壓縮操作,將輸入的特征圖X使用全局平均池化進(jìn)行擠壓,得到大小為1× 1×C(C為通道數(shù))的特征圖Zc。計(jì)算公式如下:
其中,Zc為輸出的特征圖;Fsq為壓縮操作;uc為輸入的特征圖;H,W為特征圖的高和寬;i,j為特征圖上的位置。
第2步激勵(lì)操作,將生成的特征圖Zc經(jīng)過(guò)兩個(gè)全連接層,第一個(gè)全連接層將特征圖的通道數(shù)調(diào)整為C/16,接著使用ReLU 函數(shù)進(jìn)行激活。隨后第二個(gè)全連接層將特征圖的通道數(shù)還原為C,經(jīng)過(guò)Sigmod 激活函數(shù),得到各通道的權(quán)重參數(shù)。計(jì)算公式如下:
其中,S為通道間調(diào)整權(quán)重的參數(shù);Fex為激勵(lì)操作;σ為ReLU激活函數(shù);δ為Sigmod激活函數(shù)。
第3步特征重標(biāo)定操作,將激勵(lì)操作輸出的通道權(quán)重參數(shù)與原始輸入特征圖的對(duì)應(yīng)通道相乘,得到權(quán)值更新后輸出的特征圖。計(jì)算公式如下:
本文將殘差學(xué)習(xí)模塊(b)與注意力機(jī)制SENet模塊相結(jié)合,將SENet 模塊嵌入到殘差學(xué)習(xí)模塊(b)的第3 個(gè)卷積層之后,得到圖4 中所示的SE-ResNet結(jié)構(gòu)。
圖4 SE-ResNet的結(jié)構(gòu)
批歸一化層的主要目的是通過(guò)標(biāo)準(zhǔn)化方法使得神經(jīng)網(wǎng)絡(luò)各層每一個(gè)神經(jīng)元的輸入值分布服從均值為0、方差為1的標(biāo)準(zhǔn)正態(tài)分布。批歸一化操作可以加快網(wǎng)絡(luò)的收斂速度,提高模型的泛化能力。對(duì)于輸入的B={x1,x2,…,xn},計(jì)算均值μB和方差。
本文所設(shè)計(jì)的模型SRCNN 由卷積層、批歸一化層、激活層、最大池化層、2 個(gè)SE-ResNet 組合而成的雙重殘差模塊、全局平均池化層和Softmax 層構(gòu)成,其結(jié)構(gòu)如圖5所示。
圖5 SRCNN模型結(jié)構(gòu)圖
首先,2 個(gè)卷積層用來(lái)提取輸入圖像的淺層特征信息。其次,3 個(gè)雙重殘差模塊用于加深網(wǎng)絡(luò)的結(jié)構(gòu)同時(shí)提高模型收集圖像中目標(biāo)局部特征的能力,從而提高模型的識(shí)別準(zhǔn)確率。最后,全局平均池化層和Softmax 層用于輸出病害分類(lèi)的結(jié)果。模型的相關(guān)參數(shù)如表2所示。
表2 SRCNN模型的相關(guān)參數(shù)
本文使用的實(shí)驗(yàn)平臺(tái)配置如下:Ubuntu 20.04 LTS 64 位操作系統(tǒng),配備Intel(R) Xeon(R) Platinum 8255C(2.5GHz)處理器,運(yùn)行內(nèi)存為45G,顯卡為NVIDIA GeForce RTX 2080Ti,11G 顯存。編程語(yǔ)言是Python 3.8,深度學(xué)習(xí)框架是Pytorch 1.8.1 和Cuda 11.1。
本文模型的訓(xùn)練參數(shù)設(shè)置如下:批次大?。╞atch size)設(shè)置為32,訓(xùn)練迭代次數(shù)(epoch)設(shè)置為30,使用的損失函數(shù)為交叉熵?fù)p失函數(shù),使用Adam 優(yōu)化器來(lái)提高模型的訓(xùn)練速度,學(xué)習(xí)率(learning rate)設(shè)置為0.0001。
本研究選取準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1 得分(F1-score)和單張圖片識(shí)別耗時(shí)(TA),作為模型性能的評(píng)價(jià)指標(biāo)。計(jì)算公式如下:
式⑹~式⑽中,TP為預(yù)測(cè)為正例的正樣本的數(shù)量,TN 為預(yù)測(cè)為負(fù)例的負(fù)樣本的數(shù)量,F(xiàn)N 為預(yù)測(cè)為正例的負(fù)樣本的數(shù)量,F(xiàn)P為預(yù)測(cè)為負(fù)例的正樣本的數(shù)量,T為驗(yàn)證集的總識(shí)別耗時(shí);N為驗(yàn)證集圖片的總數(shù)。
表3 列出了不同模型對(duì)玉米病害的識(shí)別準(zhǔn)確率,可以看出,本文提出的SRCNN 模型的識(shí)別準(zhǔn)確率最高,達(dá)到了99.08%。與AlexNet、VGG-16、GoogleNet、ResNet-34 和MobileNet 模型相比,識(shí)別準(zhǔn)確率分別高出1.43%、1.22%、1.24%、1.04%和3.54%,優(yōu)于5 種主流CNN網(wǎng)絡(luò)。同時(shí),各模型的識(shí)別準(zhǔn)確率變化曲線如圖6 所示,從圖6 可以看出,SRCNN 模型在15 輪后開(kāi)始收斂,收斂速度是所有模型中最快的。此外,本文SRCNN 模型的單張圖片識(shí)別耗時(shí)也是最短的,僅為48.80ms,比排名第二的AlexNet 模型減少了1.04ms,滿足了玉米病害實(shí)時(shí)診斷的需求。綜合以上分析,本文所提出的SRCNN 模型在識(shí)別準(zhǔn)確率和收斂速度方面都達(dá)到了最佳性能。
表3 不同模型的識(shí)別準(zhǔn)確率
圖6 不同模型識(shí)別準(zhǔn)確率變化曲線圖
表4列出了玉米病害分類(lèi)的結(jié)果,可以看出,該模型對(duì)玉米銹病、灰斑病、健康、大斑病的分類(lèi)準(zhǔn)確率分別為100%、98.01%、100%、98.25%,其中玉米灰斑病和玉米大斑病由于病害特征相似度較高,容易誤分類(lèi)。16張玉米灰斑病圖像被識(shí)別為玉米大斑病,而14張玉米大斑病圖像被識(shí)別為玉米灰斑病,這也解釋了玉米灰斑病和玉米大斑病分類(lèi)準(zhǔn)確率較低的原因。
表4 玉米病害分類(lèi)結(jié)果
本文提出了一種基于注意力機(jī)制與殘差網(wǎng)絡(luò)的玉米病害識(shí)別模型,通過(guò)在模型的卷積層后使用批歸一化層,大大減少了訓(xùn)練時(shí)間,提高了模型泛化能力。同時(shí),將捷徑連接應(yīng)用于二個(gè)SE-ResNet 組合而成的結(jié)構(gòu)上,提高了模型對(duì)特征的復(fù)用能力和提取能力,進(jìn)而提高模型的識(shí)別準(zhǔn)確率。實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)的SRCNN 模型在識(shí)別準(zhǔn)確率、收斂速度和單張識(shí)別耗時(shí)上均優(yōu)于其他模型,可以為玉米病害的識(shí)別提供一種新的診斷方法??紤]到自然環(huán)境中進(jìn)行病害識(shí)別背景往往較為復(fù)雜,因此,如何在自然復(fù)雜背景下保證模型較高的識(shí)別準(zhǔn)確率和較低的識(shí)別耗時(shí)是后續(xù)研究的方向。