劉 暢,莫海芳,馬 春
(1. 中南民族大學(xué)計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074;2.農(nóng)業(yè)區(qū)塊鏈與智能管理湖北省工程研究中心,武漢 430074;3. 湖北省制造企業(yè)智能管理工程技術(shù)研究中心,武漢 430074)
植物病害影響農(nóng)產(chǎn)品的質(zhì)量和產(chǎn)量,是造成農(nóng)業(yè)經(jīng)濟(jì)損失的主要原因之一。通過(guò)人工判斷植物病害的方式復(fù)雜、耗時(shí)且受主觀因素影響,因此需要一種自動(dòng)、快速、準(zhǔn)確的植物病害識(shí)別方法來(lái)保證植物的品質(zhì)和產(chǎn)量。
近年來(lái),基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)的模型在圖像識(shí)別領(lǐng)域取得了巨大的成功,這些模型能夠作為骨干模型,自動(dòng)從圖像中提取特征。目前常見(jiàn)的卷積神經(jīng)網(wǎng) 絡(luò) 模 型 有AlexNet[1],VGG[2],InceptionNet[3]和ResNet[4]等。很多研究人員利用卷積神經(jīng)網(wǎng)絡(luò)模型替代人工識(shí)別的方法,在植物病害識(shí)別領(lǐng)域進(jìn)行研究。Lyv 等[5]針對(duì)AlexNet 模型在復(fù)雜的自然環(huán)境中難以獲取玉米病害特征的問(wèn)題,使用膨脹卷積保留特征的細(xì)節(jié)信息,使用多尺度卷積增加特征的多樣性,取得了98.62%的準(zhǔn)確率。鮑文霞等[6]將ResNet 模塊和Inception 模塊結(jié)合,增大模型的特征映射區(qū)域,識(shí)別準(zhǔn)確率達(dá)到98.73%。何欣等[7]為了進(jìn)一步準(zhǔn)確識(shí)別葡萄葉片的病害程度,在ResNet 中引入多尺度卷積,識(shí)別準(zhǔn)確率達(dá)到90.83%。
以上研究中,模型都取得了很高的準(zhǔn)確率,但都是針對(duì)單一物種的數(shù)種病害,數(shù)據(jù)集中的病害種類(lèi)少且沒(méi)有不同植物同種病害的情況,應(yīng)用場(chǎng)景受限,難以適應(yīng)復(fù)雜的農(nóng)業(yè)生產(chǎn)環(huán)境。為此,有學(xué)者針對(duì)非單一物種的植物病害識(shí)別進(jìn)行研究,發(fā)現(xiàn)模型在真實(shí)場(chǎng)景下的識(shí)別精度不高。Ferentinos[8]使用Plant Village 數(shù)據(jù)和自制的真實(shí)環(huán)境數(shù)據(jù),分別對(duì)模型進(jìn)行訓(xùn)練,實(shí)驗(yàn)表明AlexNet與VGG模型使用實(shí)驗(yàn)環(huán)境的病害圖像進(jìn)行訓(xùn)練并識(shí)別真實(shí)場(chǎng)景下的病害圖像時(shí)準(zhǔn)確度僅為32.23%和33.27%。王東方等[9]提出基于深度殘差網(wǎng)絡(luò)和遷移學(xué)習(xí)的農(nóng)作物病害識(shí)別模型,在真實(shí)農(nóng)業(yè)場(chǎng)景數(shù)據(jù)集PlantDoc 上平均識(shí)別率達(dá)到47.37%。李進(jìn)[10]提出一種基于多尺度的殘差網(wǎng)絡(luò),在PlantDoc 數(shù)據(jù)集上最高識(shí)別準(zhǔn)確率達(dá)到了64.86%。以上的研究均采用CNN架構(gòu)模型,這些模型會(huì)更多地關(guān)注局部特征信息,缺乏對(duì)遠(yuǎn)程依賴關(guān)系的提取,模型泛化能力弱,導(dǎo)致對(duì)復(fù)雜背景的植物病害圖像識(shí)別不夠精準(zhǔn)。因此,增強(qiáng)模型的泛化能力,有助于提高真實(shí)場(chǎng)景下植物病害圖像的準(zhǔn)確識(shí)別率。
TransFormer[11]在視覺(jué)任務(wù)上也取得了巨大成果。該模型是一種非局部模型[12],不使用卷積核,對(duì)于長(zhǎng)距離特征的提取能力較強(qiáng),并且具有較強(qiáng)的泛化能力[13-15]。Dosovitskiy 等[16]提出的ViT 使用圖像塊(patch)作為圖像分類(lèi)的輸入,首次證明了Transformer 模型可以達(dá)到與CNN 同樣的圖片分類(lèi)精度。于是,基于Transformer 提取全局特征的優(yōu)勢(shì)和CNN提取局部特征的優(yōu)勢(shì),有學(xué)者提出將兩種模型結(jié)構(gòu)結(jié)合起來(lái)。谷歌研究人員提出的BotNet[17]利用Transformer 中的多頭注意力模塊去替換Res-Net中的3×3卷積模塊;Peng 等[18]提 出 的Conformer 混 合Transformer 和CNN 兩種結(jié)構(gòu),融合了不同分辨率下的全局特征和局部特征;Wang 等[19]提出的PVT 將Transformer模型設(shè)計(jì)為漸進(jìn)的金字塔結(jié)構(gòu)來(lái)實(shí)現(xiàn)較大的分辨率輸出,同時(shí)減少特征圖的計(jì)算。
為了提升模型的泛化能力,提高真實(shí)場(chǎng)景下的植物病害識(shí)別準(zhǔn)確率,本文設(shè)計(jì)了一種基于Transformer 和CNN 的深度學(xué)習(xí)模型CLT。CLT利用卷積改進(jìn)Token 嵌入,并將模型設(shè)計(jì)為多階段漸進(jìn)式結(jié)構(gòu),降低Token的長(zhǎng)度,同時(shí)增加了Token 的維度,從而保證了模型容量。同時(shí),在Transformer 模塊中,融入卷積模塊以增強(qiáng)模型的局部特征提取能力。
CLT 模型融合了視覺(jué)Transformer 模塊和CNN 模塊,并利用卷積操作增強(qiáng)Transformer 模塊的局部感知能力,結(jié)合Transformer 架構(gòu)在全局特征提取上的優(yōu)勢(shì),提升對(duì)真實(shí)場(chǎng)景下植物病害圖像的特征提取能力。CLT 模型在Transformer模塊中融入一個(gè)帶殘差的深度可分離卷積模塊和一個(gè)卷積投影模塊,并借鑒CNN 中多階段層次的設(shè)計(jì)思想,將模型設(shè)計(jì)為三個(gè)階段,整體結(jié)構(gòu)如圖1所示。
圖1 CLT模型整體架構(gòu)
第一階段,首先圖像輸入到Conv Stem 模塊,如圖2 所示。Conv Stem 由4 個(gè)卷積模塊構(gòu)成。前三個(gè)模塊使用卷積核大小為3×3 的卷積提取圖像的淺層特征,使模型能夠捕捉到更多局部細(xì)節(jié),其中第一個(gè)模塊的步長(zhǎng)設(shè)置為2,起到對(duì)輸入圖像維度縮減的作用。最后一個(gè)模塊使用卷積核大小為1×1 卷積,用于加強(qiáng)通道之間的信息交互。然后輸出的特征圖經(jīng)過(guò)分塊操作,輸入到Transformer模塊中。
圖2 Conv Stem 模塊
第二階段,將第一階段輸出的Token序列重塑為T(mén)oken map,經(jīng)過(guò)卷積Token 嵌入層,對(duì)Token map 進(jìn)行卷積操作,減少Token 的數(shù)量,同時(shí)增加Token 的維度,從而實(shí)現(xiàn)空間下采樣。然后輸出的Token序列直接輸入到Transformer模塊中。
第三階段,和第二階段的設(shè)計(jì)基本一樣,不同的是在卷積Token 嵌入層后,為新的Token添加一個(gè)class Token 用于進(jìn)行分類(lèi)。最后,輸出的分類(lèi)標(biāo)記通過(guò)MLP來(lái)預(yù)測(cè)結(jié)果。
在傳統(tǒng)的視覺(jué)Transformer 中,直接將輸入的圖像切分成大小相同的塊,然后將2D 的分塊圖像展平為T(mén)oken向量作為模型的輸入,圖3(a)展示了ViT中通過(guò)patch嵌入獲取Tokens的過(guò)程。這種簡(jiǎn)單的切分方式會(huì)導(dǎo)致圖像的邊緣信息丟失。CLT 通過(guò)對(duì)上一個(gè)階段得到的Token 序列進(jìn)行卷積運(yùn)算,得到下一個(gè)階段的Token序列,充分利用圖像的邊緣和線條等局部結(jié)構(gòu)信息。整個(gè)過(guò)程如圖3(b)所示,圖中的Token map都是由Token 序列重塑所得,第i- 1 階段得到的Token map 記 為xi-1∈RHi-1×Wi-1×Ci-1,這 里 通過(guò) 一 個(gè) 卷積函數(shù)f(·)將xi-1映射到一個(gè)新的通道大小為Ci的Token map,其 中f(·) 卷 積 核 大 小 為k×k,padding為p。那么新得到的Token mapf(xi-1)∈RHi×Wi×Ci,其寬度和高度為
圖3 傳統(tǒng)的Token嵌入和融入卷積的Token嵌入
再將這個(gè)Token map展平成HiWi×Ci,就得到了第i階段的Token序列。
卷積Token嵌入層允許通過(guò)改變卷積運(yùn)算的參數(shù)來(lái)調(diào)整每個(gè)階段的Token 特征維數(shù)和數(shù)量。通過(guò)這種方式,在每個(gè)階段逐步減少Token序列長(zhǎng)度,同時(shí)增加Token 特征維數(shù)。這使得Token能夠在越來(lái)越大的空間上表示越來(lái)越復(fù)雜的視覺(jué)模式,類(lèi)似于CNN的特征層。
為了增強(qiáng)模型的泛化能力,減少背景干擾,提升模型真實(shí)場(chǎng)景下病害特征的提取能力,CLT在Transformer 模塊中融入兩個(gè)卷積模塊,一個(gè)帶殘差的深度可分離卷積模塊和一個(gè)卷積投影模塊,詳細(xì)說(shuō)明如下。
1.3.1 帶殘差的深度可分離卷積模塊
在原始的視覺(jué)Transformer 模塊中通常采用絕對(duì)位置編碼存儲(chǔ)圖片中像素的空間位置關(guān)系,這導(dǎo)致模型對(duì)圖像中目標(biāo)的旋轉(zhuǎn)、平移、縮放不敏感。而CNN 對(duì)局部特征提取能力強(qiáng),目標(biāo)出現(xiàn)的位置不影響模型的輸出,具有平移不變性。因此,本文在Transformer 模塊中引入3×3的深度分離卷積(DW conv),用于增強(qiáng)網(wǎng)絡(luò)的平移不變性,并利用殘差連接穩(wěn)定網(wǎng)絡(luò)訓(xùn)練,如圖1 中Transformer 模塊所示??紤]到模型中堆疊了多個(gè)Transformer 模塊,為了不增加過(guò)多的運(yùn)算參數(shù),這里使用深度分離卷積。
1.3.2 卷積投影
Transformer 模塊中的多頭注意力模塊(MHA)中Q/K/V矩陣的Token 輸入采用的是線性投影。本文在MHA 前面添加一層卷積操作,將線性投影替換為卷積投影,實(shí)現(xiàn)對(duì)局部空間上下文的額外建模,如圖4 所示。首先將Token 重塑為T(mén)oken map。然后使用卷積核大小為3 的深度可分離卷積來(lái)實(shí)現(xiàn)Q/K/V矩陣的映射,計(jì)算方式如下:
圖4 卷積投影層結(jié)構(gòu)
PlantDoc[20]數(shù)據(jù)集是印度理工學(xué)院的研究人員于2019 年秋季發(fā)布的用于圖像分類(lèi)和對(duì)象檢測(cè)的數(shù)據(jù)集。該數(shù)據(jù)集花費(fèi)了300多個(gè)人工小時(shí)收集和標(biāo)注,包含13 個(gè)植物物種和27 個(gè)類(lèi)別(17 個(gè)疾?。?0 個(gè)健康)的2598 張圖像。本文將網(wǎng)絡(luò)爬取的真實(shí)場(chǎng)景下的病害圖片和數(shù)據(jù)集PlantDoc 融合構(gòu)建成擴(kuò)充的PlantDoc 數(shù)據(jù)集,擴(kuò)充的PlantDoc數(shù)據(jù)集與PlantDoc具有相同的植物物種和類(lèi)別。共計(jì)3171 張病害圖片。通過(guò)此數(shù)據(jù)集評(píng)價(jià)各個(gè)模型對(duì)真實(shí)環(huán)境下的植物病害識(shí)別性能。圖5給出了該數(shù)據(jù)樣本的展示圖。
圖5 擴(kuò)充后的PlantDoc植物病害圖片示例
2.2.1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境如表1 所示,GPU 配置為Nvidia Geforce RTX 3090 24 GB,并使用CUDA 計(jì)算框架進(jìn)行加速,實(shí)驗(yàn)平臺(tái)為Centos 64 位,處理器為Intel(R)Xeon(R)Silver 4110,并以PyTorch為深度學(xué)習(xí)框架,Python 3.8為編程語(yǔ)言。
表1 實(shí)驗(yàn)環(huán)境
2.2.2 參數(shù)設(shè)置
參數(shù)設(shè)置對(duì)模型的訓(xùn)練有著重要的影響。本實(shí)驗(yàn)對(duì)學(xué)習(xí)率、每個(gè)批次病害圖片的數(shù)量(batch size)、損失函數(shù)和優(yōu)化算法進(jìn)行統(tǒng)一設(shè)置。學(xué)習(xí)率的大小影響著模型的收斂速度,本實(shí)驗(yàn)將學(xué)習(xí)率設(shè)置為0.0001。Batch Size 會(huì)影響模型的性能和速度,為了提升GPU的使用效率,平衡內(nèi)存和算力,使用不同的Batch Size 進(jìn)行測(cè)試,最終選定為128。實(shí)驗(yàn)選擇交叉熵?fù)p失函數(shù),優(yōu)化算法使用自適應(yīng)矩估計(jì)(adaptive moment estimation,Adam)。相較于廣泛使用的隨機(jī)梯度下降算法(stochastic gradient descent,SGD),Adam的計(jì)算效率更高。
2.3.1 不同模型對(duì)比實(shí)驗(yàn)
為驗(yàn)證本文提出的模型CLT 在真實(shí)場(chǎng)景下的植物病害識(shí)別效果,選取InceptionV3、ResNet50、ViT 和Swin Transformer 作 為 對(duì) 比 模型,在擴(kuò)充后的PlantDoc 數(shù)據(jù)集上訓(xùn)練并進(jìn)行實(shí)驗(yàn)對(duì)比。其中,InceptionV3 和ResNet50 為CNN 架 構(gòu) 的 模 型,ViT 和Swin Transformer 為T(mén)ransformer架構(gòu)的模型。
為了評(píng)價(jià)各個(gè)模型的性能,結(jié)合植物病害識(shí)別分類(lèi)的特點(diǎn),本實(shí)驗(yàn)選擇平均準(zhǔn)確率(Average accuracy rate)和加權(quán)F1(Weighted-F1)作為模型性能的評(píng)價(jià)指標(biāo)。各模型均在PlantVillage 上進(jìn)行預(yù)訓(xùn)練,然后遷移到PlantDoc 上迭代300次。
本文提出的CLT 在迭代50 次以后,已經(jīng)取得了優(yōu)于其他模型的平均準(zhǔn)確率,且在后續(xù)訓(xùn)練中模型的準(zhǔn)確率仍在緩慢提升,如圖6所示。
圖6 不同模型平均識(shí)別率對(duì)比結(jié)果
雖然CLT 的收斂速度略慢于其他模型,但是取得了最好的平均準(zhǔn)確率,這說(shuō)明融合CNN和Transformer 結(jié)構(gòu)提升了模型的泛化性能,能更好地識(shí)別真實(shí)場(chǎng)景下的植物病害。
表2展示了不同植物病害識(shí)別模型在測(cè)試集上的平均準(zhǔn)確率和加權(quán)F1 值。各模型的平均準(zhǔn)確率在60%~80%之間,說(shuō)明深度學(xué)習(xí)模型在真實(shí)場(chǎng)景下的植物病害分類(lèi)性能還有很大提升空間。其中,Transformer 架構(gòu)的模型比CNN 架構(gòu)的模型表現(xiàn)的更好,說(shuō)明全局特征提取有助于提升模型在復(fù)雜背景下的病害特征提取。本文所提出的CLT 模型結(jié)合Transformer 和CNN 對(duì)不同距離特征的提取優(yōu)勢(shì),突出植物病害信息,抑制無(wú)用背景信息,在測(cè)試集上平均準(zhǔn)確率達(dá)到了77.91%,分類(lèi)效果優(yōu)于其他模型。同時(shí)加權(quán)F1 值也高于其他模型,證明CLT 對(duì)不同類(lèi)別的植物區(qū)分能力更強(qiáng),更適合多物種的病害識(shí)別場(chǎng)景。
表2 不同模型識(shí)別性能對(duì)比
2.3.2 消融實(shí)驗(yàn)
對(duì)CLT的Transformer模塊中添加的DW conv和卷積投影部分進(jìn)行消融實(shí)驗(yàn),實(shí)驗(yàn)均在擴(kuò)充后的PlantDoc 數(shù)據(jù)集上進(jìn)行。表3 中CLT_No_DW 表示在Transformer模塊中不使用帶殘差的深度可分離卷積模塊。CLT_No_ConvProj 表示在Transformer 模塊中,多頭注意力機(jī)制中的Q/K/V矩陣使用線性投影而非卷積投影獲取。在不使用DW Conv 時(shí),模型的平均準(zhǔn)確率為75.53%,對(duì)比CLT 下降了2.38 個(gè)百分點(diǎn)。而不使用卷積投影的CLT 模型的平均準(zhǔn)確率為74.95%,下降了2.96 個(gè)百分點(diǎn)。證明了融入卷積的Transformer模塊能更好地提取病害圖像中的特征,使用卷積投影的多頭注意力機(jī)制能更好地對(duì)局部空間上下文進(jìn)行建模,使得模型在真實(shí)場(chǎng)景下的植物病害識(shí)別能力得到進(jìn)一步的提升。
表3 局部感知單元LPU消融實(shí)驗(yàn)
本文基于CNN 模型與Transformer 模型,提出了一種植物病害分類(lèi)模型CLT,用于不指定具體植物種類(lèi)的病害檢測(cè),避免了傳統(tǒng)方法繁瑣的人工特征設(shè)計(jì),提升模型在真實(shí)場(chǎng)景下病害的檢測(cè)分類(lèi)性能。CLT 以Conv stem 作為初始特征提取模塊提取淺層局部特征,結(jié)合Transformer模塊以學(xué)習(xí)全局特征。通過(guò)卷積的方式改進(jìn)Token 嵌入,調(diào)整每個(gè)階段Token 的序列長(zhǎng)度和特征維數(shù),結(jié)合模型的多階段結(jié)構(gòu)設(shè)計(jì),增強(qiáng)模型空間局部特征提取能力。同時(shí),在Transformer模塊中插入卷積層并在多頭注意力中使用卷積投影,增加模型的平移不變性和局部感知能力。通過(guò)在擴(kuò)充后的PlantDoc 數(shù)據(jù)集上實(shí)驗(yàn),CLT 獲得了77.91%的平均準(zhǔn)確率,高于單獨(dú)的CNN 網(wǎng)絡(luò)和Transformer 網(wǎng)絡(luò),并通過(guò)消融實(shí)驗(yàn)證明了融合模型的有效性,更適合真實(shí)場(chǎng)景下的植物病害分類(lèi)任務(wù)。