劉藝,孫延斌,翟鳳國,梁新
(1. 牡丹江醫(yī)學院,黑龍江牡丹江 157011;2. 牡丹江醫(yī)學院附屬紅旗醫(yī)院,黑龍江牡丹江 157011)
植物病害影響其各自物種的生長,因此早期識別非常重要。許多機器學習(Machine Learning,ML)模型已被用于植物病害的檢測和分類,但是,在ML的一個子集(即深度學習(Deep Learning, DL))取得進展之后,這一研究領(lǐng)域在提高準確性方面似乎具有巨大的潛力[1]。
葉片病斑的顏色和形態(tài)特征是病害識別的重要依據(jù)[2],傳統(tǒng)的機器學習方法在植物病蟲害識別中主要依賴圖像處理技術(shù)來提取葉片病斑的顏色、形狀、紋理等特征。這些方法需要手動設(shè)計和選擇特征提取算法,并且其分類性能很大程度上依賴特征提取的效果。這些方法通常是針對特定的病蟲害進行設(shè)計的,缺乏泛化能力,難以應用于其他病蟲害的識別[3]。相比之下,深度學習技術(shù)在植物病蟲害識別中具有許多優(yōu)勢。深度學習模型能夠自動學習和提取圖像中的特征,無需手動設(shè)計特征提取算法[4]。通過深層神經(jīng)網(wǎng)絡(luò)的層層堆疊和訓練,深度學習模型可以學習到更加高級和抽象的特征表示,從而能夠更準確地區(qū)分不同的病蟲害。深度學習模型具有較強的泛化能力,可以應用于多種病蟲害的識別任務[5-7]。通過大規(guī)模的訓練數(shù)據(jù)集和深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)化,深度學習模型能夠?qū)崿F(xiàn)快速、準確的病蟲害識別。與傳統(tǒng)的機器學習方法相比,深度學習技術(shù)能夠更好地處理圖像中的復雜特征和背景噪聲,提高識別的準確性和魯棒性。
許多最先進的深度學習模型/架構(gòu)在引入AlexNet后發(fā)展起來用于圖像檢測、分割和分類,如圖1所示。AlexNet被稱為第一個現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)[8]。圖像識別性能的關(guān)鍵在于其時間。AlexNet采用ReLU激活函數(shù)實現(xiàn)更好的性能,采用Dropout技術(shù)避免過擬合。OverFeat是第一個通過單個CNN進行對象檢測、定位和分類的模型。與AlexNet相比,有大量的參數(shù)。VGG考慮到3×3接收野包含更多的非線性函數(shù),使決策函數(shù)具有判別性。由于參數(shù)數(shù)量多,計算成本高,GoogleNet 與AlexNet模型相比,參數(shù)數(shù)量更少,即時的準確性更高。ResNet解決了梯度消失問題,精度優(yōu)于VGG和GoogleNet模型。本文中所提到的DenseNet通過密集連接、梯度傳播、參數(shù)效率、更好的特征表示和魯棒性等方面的優(yōu)勢,成為深度學習領(lǐng)域中重要的網(wǎng)絡(luò)架構(gòu)之一,被廣泛應用于圖像分類、目標檢測、語義分割等計算機視覺任務中。本文提出一種基于DenseNet的模型,以適應植物葉片病蟲害分類任務,并提高模型在該任務上的性能。

圖1 從AlexNet到DenseNet的模型演變
本實驗采用從Kaggle網(wǎng)站獲取的患病葉片圖像以及相應的標簽數(shù)據(jù)集,原始圖像共54 305張。如圖2所示,其中包含正常蘋果、番茄、馬鈴薯、玉米、葡萄等農(nóng)作物正常葉片以及蘋果黑霉病、番茄葉枯病、馬鈴薯晚疫病、玉米葉枯病等病變?nèi)~片,共38類。將數(shù)據(jù)進行劃分,訓練集占80%,驗證集和測試集各占總數(shù)據(jù)集的10%。

圖2 數(shù)據(jù)集中葉片預覽
數(shù)據(jù)增強是一種常用的技術(shù),用于在訓練過程中對輸入數(shù)據(jù)進行隨機變換,以增加數(shù)據(jù)的多樣性和泛化能力。使用以下5種數(shù)據(jù)增強方法。(1)隨機高度變換:在每個樣本上,將圖像的高度隨機調(diào)整,最大調(diào)整范圍為原始高度的20%。(2)隨機寬度變換:在每個樣本上,將圖像的寬度隨機調(diào)整,最大調(diào)整范圍為原始寬度的20%。(3)隨機旋轉(zhuǎn):在每個樣本上,將圖像隨機旋轉(zhuǎn),最大旋轉(zhuǎn)角度為20度。(4)水平翻轉(zhuǎn):在每個樣本上,以50%的概率將圖像水平翻轉(zhuǎn)。(5)像素值縮放:將圖像的像素值縮放到0到1的范圍,以便更好地適應模型的輸入要求。
通過這些數(shù)據(jù)增強方法,每個訓練樣本都會在每個訓練迭代中以隨機的方式進行變換。這樣可以增加數(shù)據(jù)的多樣性,使模型能夠?qū)W習到不同角度和樣本變化下的特征,從而提高模型的泛化能力。
遷移學習是一種有效的機器學習方法[10],可以利用預訓練的模型在新任務上進行訓練。在植物葉片病蟲害分類任務中,選擇使用遷移學習的原因是該任務與其他相關(guān)的圖像識別任務存在相似的特征。
植物葉片病蟲害分類任務的核心目標是對不同類型的葉片病蟲害進行準確分類。這些病蟲害可能表現(xiàn)出特定的形狀、顏色、紋理等特征,這與其他圖像識別任務中的對象分類任務具有相似性。以預訓練的Densenet模型作為基礎(chǔ)模型,可以利用其在大規(guī)模圖像數(shù)據(jù)集上訓練的能力,從中學習到普遍的特征表示。
在計算機視覺領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)已經(jīng)成為最主流的方法,比如最近的GoogLenet、VGG-19、Incepetion等模型[11]。CNN史上的一個里程碑事件是ResNet模型的出現(xiàn)。ResNet可以訓練出更深的CNN模型,從而實現(xiàn)更高的準確度。另一個在CNN領(lǐng)域具有重大影響的里程碑事件是DenseNet模型的出現(xiàn)。DenseNet(Densely connected convolutional Networks)是一種能夠訓練出更加密集連接的CNN模型[12],它通過引入密集連接塊(dense block)的結(jié)構(gòu),進一步推動了模型深度的增加,從而實現(xiàn)了更高的準確度。
DenseNet的核心思想[13]是在每一層中將前面所有層的特征圖(feature map)連接到當前層的輸入,這樣每一層都能直接訪問之前層的輸出。這種密集連接的設(shè)計帶來了以下幾個重要優(yōu)勢。(1)參數(shù)和特征重用。由于每一層都能直接訪問前面層的輸出,DenseNet能夠充分利用之前層的信息,并將其傳遞給后續(xù)層,從而實現(xiàn)參數(shù)和特征的重用。這使模型更加高效,并且可以使用相對較少的參數(shù)來實現(xiàn)更深的網(wǎng)絡(luò)結(jié)構(gòu)。(2)梯度傳播和特征傳遞。密集連接的結(jié)構(gòu)使梯度能夠更快地傳播,有助于解決梯度消失或梯度爆炸的問題。同時,前面層的特征也能夠直接傳遞給后續(xù)層,這有助于緩解信息丟失的問題,提高特征的傳遞效率。(3)特征融合和多尺度表示。DenseNet中密集連接塊的設(shè)計使網(wǎng)絡(luò)能夠同時學習不同層級的特征表示,從而實現(xiàn)多尺度的特征融合。這有助于模型捕捉不同尺度下的圖像特征,提高模型的表達能力和泛化能力。
對于一個n層的網(wǎng)絡(luò),DenseNet共包含個連接(圖3),相比ResNet,這是一種密集連接。而且DenseNet是直接連接來自不同層的特征圖,這可以實現(xiàn)特征重用,提升效率。

圖3 DenseNet網(wǎng)絡(luò)的密集連接機制
用公式表示,傳統(tǒng)的網(wǎng)絡(luò)在n層的輸出為
在DenseNet中,會連接前面所有層作為輸入,即
其中,上面的Hn( )代表是非線性轉(zhuǎn)化函數(shù)(non-liear transformation),它是一個組合操作,其中可能包括一系列的BN(Batch Normalization)、ReLU、Pooling及Conv操作。這里n層與n-1層之間可能實際上包含多個卷積層。
所有試驗均在Ubuntu 20.04 LTS 64位系統(tǒng)環(huán)境下運行,模型采用深度學習開源框架Pytorch1.10.1和Python3.8.0 搭建。計算機搭載的處理器為 Intel Core i7-12700H @八核,運行內(nèi)存16 GB,GPU為RTX 3060。輸入模型的圖像尺寸大小為224×224像素。受硬件條件的約束,批處理大?。╞atch-size)設(shè)置為16,模型迭代次數(shù)15 epoch,初始學習率設(shè)置為0.001。使用默認的更新策略。進行微調(diào)參數(shù)后,繼續(xù)訓練,模型迭代次數(shù)15 epoch。本文采用準確率(accuracy)、精確率(precision)、召回率(recall)、準確率與召回率加權(quán)調(diào)和平均值—F1值(F1-score)來衡量模型的分類性能。以上評價指標數(shù)值越高,模型性能越好。
以在大規(guī)模圖像數(shù)據(jù)集上訓練得到的預訓練的DenseNet-169模型作為基礎(chǔ)模型,并在植物葉片病蟲害分類任務上進行微調(diào),可以加速模型的訓練過程,并且由于模型已經(jīng)學習到了一些與圖像識別任務相關(guān)的特征,可以提高模型在植物葉片病蟲害分類中的性能。
DenseNet-169是一種深度卷積神經(jīng)網(wǎng)絡(luò)模型[14],其結(jié)構(gòu)可以分為以下幾個主要部分。(1)輸入層。接收輸入圖像的張量,通常是具有固定大小的圖像。(2)預處理層。對輸入圖像進行預處理操作,如歸一化、縮放等,以便適應網(wǎng)絡(luò)模型的輸入要求。(3)初始卷積層。由一系列卷積操作組成,用于對輸入圖像進行初步特征提取。在DenseNet-169中,初始卷積層通常包括一個7×7的卷積核,用于捕捉更大范圍的特征。(4)密集塊(dense block)。DenseNet-169由四個密集塊組成,每個密集塊由多個卷積層組成,且每個卷積層的輸入都來自于前面所有層的級聯(lián)連接。這種密集連接的結(jié)構(gòu)使特征可以在網(wǎng)絡(luò)中充分傳播和重用,有助于提取更豐富的特征表示。(5)過渡層(transition layer)。在相鄰的兩個密集塊之間,DenseNet-169引入了過渡層。過渡層通過使用1×1卷積核和2×2的平均池化操作,將特征圖的通道數(shù)減少,并將空間維度進行下采樣。這有助于控制特征圖的大小和參數(shù)數(shù)量,同時降低計算復雜度。(6)全局平均池化層。在最后一個密集塊之后,通常會添加一個全局平均池化層,將特征圖的高度和寬度降低為1,同時保留每個通道的平均值。這有助于進一步減少參數(shù)數(shù)量,并提取整個圖像的全局特征。(7)全連接層。在全局平均池化層之后,可以添加一個或多個全連接層,用于將提取到的特征映射到分類輸出空間。通常,最后一層使用softmax激活函數(shù),以得到每個類別的概率預測。
預訓練模型已經(jīng)在大規(guī)模數(shù)據(jù)集上學習到了有效的特征表示,只需要針對特定任務進行微調(diào)。首先解凍靠近輸出層的最后30層,并允許它們在葉病分類數(shù)據(jù)集上進行訓練,而不是使用預先訓練的權(quán)重。通過解凍這些層,模型能夠展示與葉病分類的特定任務相關(guān)的更具體和細粒度的特征。網(wǎng)絡(luò)中較早的層更接近輸入,已經(jīng)從大型數(shù)據(jù)集的預訓練中學習了一般特征。
為了優(yōu)化參數(shù)微調(diào)過程,需仔細調(diào)整學習率等優(yōu)化參數(shù)。通常情況下,微調(diào)過程需要使用較小的學習率,以確保模型在特定任務上收斂得更好??梢赃x擇使用適當?shù)膬?yōu)化器Adam優(yōu)化器[15],并設(shè)置較小的學習率0.000 1來進行微調(diào)。這有助于在微調(diào)過程中更精確地調(diào)整模型參數(shù),以使其適應葉病分類數(shù)據(jù)集。
解凍更多圖層需要仔細考慮,因為可能會增加過度擬合的風險,尤其是在數(shù)據(jù)集大小有限的情況下。使用正則化技術(shù)(如dropout或權(quán)重衰減)來緩解過度擬合[16],并確保模型很好地推廣到看不見的數(shù)據(jù)。
在初始的幾個epoch中,訓練集和驗證集的損失和準確率都有明顯的改善,如圖4、圖5所示,這表明模型在學習數(shù)據(jù)集的特征和模式。隨著訓練的進行,訓練集和驗證集的損失逐漸減小,模型逐漸收斂到更好的解決方案。訓練集和驗證集的準確率也逐漸提高,表明模型在分類任務上的性能在不斷提升。驗證集的準確率在前幾個epoch之后基本穩(wěn)定,這可能表示模型已經(jīng)趨于收斂。

圖4 模型損失函數(shù)曲線

圖5 模型準確率曲線
再對模型進行了15個epoch的訓練后,執(zhí)行額外的操作來進一步提高模型的性能。這些操作包括:解凍靠近輸出層的層,繼續(xù)訓練過程,從上一個訓練中斷的點開始,增加了幾個時期。這使模型能夠進一步完善其學習的表示,并專門為本研究的數(shù)據(jù)集優(yōu)化其參數(shù)。應用學習率計劃或?qū)W習率降低策略來控制持續(xù)訓練階段的學習率。這有助于微調(diào)模型的權(quán)重,而無需進行劇烈更新,并確保更穩(wěn)定的收斂。
在上一次訓練結(jié)束的輪數(shù)開始繼續(xù)訓練,如圖6所示,模型在第25個epoch時觸發(fā)了早停。這意味著在前面的epoch中,驗證集的性能指標沒有明顯提升,并且模型可能已經(jīng)達到了較好的泛化能力。

圖6 微調(diào)參數(shù)后模型訓練周期圖
在最初的15個epoch中,訓練集上的驗證準確率為95.1%,損失函數(shù)值為0.147。微調(diào)參數(shù)后,訓練集上的驗證準確率提高到98.2%,損失函數(shù)值下降到0.060 1。經(jīng)過微調(diào)后模型的性能有所提高,訓練集上的準確率更高,損失更小。
如表1和圖7所示,在測試集中,不同植物名稱的精確率表現(xiàn)良好,大多數(shù)類別的精確率超過了95%甚至接近或達到100%。這意味著模型在預測這些植物類別時能夠準確地識別出大部分正樣本。召回率也表現(xiàn)較好,大部分類別的召回率超過了95%。召回率衡量了模型對于正樣本的檢測能力,高召回率意味著模型能夠較好地找到正樣本。F1分數(shù)綜合了精確率和召回率的表現(xiàn)。絕大多數(shù)類別的F1分數(shù)都在95%以上,說明模型在植物分類任務中具有較好的綜合性能。每個植物類別的樣本數(shù)(support/count)也給出了測試集中每個類別的樣本數(shù)量。這些數(shù)字可以用于了解不同類別之間的數(shù)據(jù)分布情況。

表1 對不同類別植物葉片病蟲害分類模型評估
綜上所述,模型在測試集上取得了較高的分類性能,對于多個植物類別的識別都表現(xiàn)出很好的準確率、召回率和F1分數(shù)。這說明模型經(jīng)過訓練和微調(diào)后在植物分類任務上取得了較好的結(jié)果。
本研究提出了一個基于Densenet的高效準確的植物病蟲害識別模型。通過使用遷移學習和微調(diào)參數(shù),以預訓練的DenseNet模型作為基礎(chǔ)模型,并在特定植物病害數(shù)據(jù)集上對模型進行進一步訓練。該模型經(jīng)過兩個訓練階段,最終的識別準確率達到96%。
通過利用從大規(guī)模預訓練數(shù)據(jù)集中學習的知識,該模型能夠捕獲與植物病害相關(guān)的一般和信息特征。微調(diào)過程允許模型適應并學習與手頭的分類任務相關(guān)的更具體和更細微的特征。結(jié)果取得較高的識別精度,表明了所提方法的有效性。
使用遷移學習和預訓練模型有幾個優(yōu)點。它減少了對大量標記訓練數(shù)據(jù)的需求,因為預訓練模型已經(jīng)擁有有價值的學習表征。這使模型即使在有限的訓練樣本下也能獲得良好的性能。同時微調(diào)過程允許我們根據(jù)模型數(shù)據(jù)集中植物病害的特定特征定制其學習特征,增強其判別能力。
然而,本研究也存在一些局限性。首先,模型的性能很大程度上依賴訓練數(shù)據(jù)集的質(zhì)量和多樣性。雖然葉病分類數(shù)據(jù)集是多種常見植物葉片組成的,但仍有一些罕見或新穎的植物病害病例未被包括在內(nèi),這可能會影響模型推廣到未見數(shù)據(jù)的能力。其次,對預訓練模型進行微調(diào)需要仔細考慮要解凍的層數(shù)和正則化技術(shù),以減輕過擬合風險??梢赃M行進一步的優(yōu)化和實驗,以探索適合特定任務的最佳微調(diào)策略。
盡管存在這些限制,本研究顯示了在植物疾病診斷和識別中使用預訓練模型和遷移學習的潛力。所獲得的高識別精度驗證了所提方法的有效性及其在實際應用中的潛力。在未來的工作中,可以擴展數(shù)據(jù)集,探索不同的預訓練模型,并進一步優(yōu)化微調(diào)過程,以提高模型的性能和泛化能力。