賈兆紅 張袁源 王海濤 梁 棟
(安徽大學(xué)互聯(lián)網(wǎng)學(xué)院, 合肥 230039)
番茄病害是影響番茄產(chǎn)量的重要因素之一,如果可以提早發(fā)現(xiàn)并防治,對于提升作物品質(zhì),增加經(jīng)濟效益有著不可或缺的重要作用[1]。而傾向于細粒度識別(Fine-grained recognition)[2]的葉片病害早晚期識別,可以在病害發(fā)生初期就得以發(fā)現(xiàn)并解決,減少經(jīng)濟損失,但早期病害的特征不明顯且占據(jù)葉片的比例較小,部分病害早晚期區(qū)分差異小等都給識別判斷帶來了挑戰(zhàn)。
隨著人工智能技術(shù)的興起,相比于傳統(tǒng)人工識別植物病害的低效和費時,通過機器學(xué)習(xí)和深度學(xué)習(xí)自動提取特征并進行分類的效果更好[3]。柴阿麗等[4]通過圖形處理手段人工提取了番茄早疫病、晚疫病、葉霉病和棒孢葉斑病等4種葉部病害的病變區(qū)域的顏色、紋理和形狀特征參數(shù),并構(gòu)建貝葉斯判別模型對病害識別分類。因為人工提取特征常受到主觀因素和先驗知識的限制,因此利用神經(jīng)網(wǎng)絡(luò)自動提取病害特征進行迭代學(xué)習(xí),在農(nóng)作物病害分類中取得了更好的分類效果[5-9]。袁培森等[10]以Inception ResNet V2作為基礎(chǔ)模型,將雙線性卷積神經(jīng)網(wǎng)絡(luò)用于細粒度菌菇表型數(shù)據(jù)集上,并取得了較好的分類識別率。除雙線性模型[11]外,注意力機制也常常用于細粒度圖像分類。胡志偉等[12]提出一種注意力與殘差思想結(jié)合的卷積神經(jīng)網(wǎng)絡(luò)模型,通過殘差網(wǎng)絡(luò)提取葉片特征,注意力機制分配網(wǎng)絡(luò)權(quán)重,過濾掉噪聲信息并提升模型效果。ZHENG等[13]通過多注意力實現(xiàn)的信道分組將圖像分為N個部分,并使用兩個損失函數(shù)相互加強,不斷迭代達到了分組和分類相互強化的細粒度分類效果。LIANG等[14]將ResNet作為基礎(chǔ)網(wǎng)絡(luò),加入Shuffle單元,在實現(xiàn)植物病害的3個不同功能分類的同時,降低了模型的計算復(fù)雜度。
上述研究都沒有在農(nóng)作物數(shù)據(jù)集中嘗試結(jié)合細粒度識別中的不同方法,相互促進學(xué)習(xí),彌補單一網(wǎng)絡(luò)的不足。本文提出采用Res2Net作為基礎(chǔ)網(wǎng)絡(luò),提升多尺度特征提取能力,以使網(wǎng)絡(luò)獲得更豐富特征信息,增強模型的表征能力。同時提出一種新的通道注意力模塊,解決注意力權(quán)重獲取過程中信息丟失和模型復(fù)雜度問題。改進雙線性網(wǎng)絡(luò)的特征融合,避免外積后出現(xiàn)大量特征冗余,且將空間和通道注意力模塊分別引入雙線性網(wǎng)絡(luò),解決串聯(lián)注意力模塊造成的準(zhǔn)確率不升反降的問題。
1.1.1Res2Net 核心思想
番茄葉片上的病害程度不同且類型多樣,采用基礎(chǔ)的ResNet[15]提取特征往往難以充分表達葉片不同部位的語義信息,因此需要考慮多尺度特征以解決細粒度葉片分類中差異性局部關(guān)鍵信息的提取問題。由GAO等[16]提出的一種新的多尺度主干網(wǎng)絡(luò)(Res2Net),利用特征分組的思想,在殘差塊內(nèi)以卷積組代替原來單一卷積,并以層級殘差方式連接,從而達到增加網(wǎng)絡(luò)的感受野區(qū)域,多個特征尺度產(chǎn)生組合效應(yīng),提升網(wǎng)絡(luò)的多尺度特征提取能力。
Res2Net的核心網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,主要修改了Bottleneck block中間的3×3卷積層結(jié)構(gòu),引入超參數(shù)s,將經(jīng)過1×1卷積層輸出的特征圖F(h×w×d)按通道劃分為s組,即每一組特征Xi的形狀為h×w×d/s,i∈{1,2,…,s}。在保持空間信息不變的同時,記經(jīng)過3×3卷積層輸出的操作為Ki(),第1組特征X1不經(jīng)過卷積操作直接輸出Y1=X1,X2經(jīng)過3×3卷積層輸出Y2=K2(X2),X3與Y2作殘差連接通過卷積層后輸出Y3=K3(X3+Y2),以此類推,最后得到輸出Ys。再將這些特征組進行通道拼接后輸入1×1卷積層,輸出即可,具體輸入公式為
圖1 Res2Net網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of Res2Net network
(1)
1.1.2Bilinear CNN模型
細粒度圖像分類中除使用類別標(biāo)簽,還通過額外的bounding box和part locations等人工標(biāo)注信息,以更加精確地獲取目標(biāo)區(qū)域的位置和大小,提升局部與全局區(qū)域的關(guān)聯(lián)性,這類算法稱為強監(jiān)督學(xué)習(xí)[17]。只用類別標(biāo)簽而不用其它標(biāo)簽信息的算法稱為弱監(jiān)督學(xué)習(xí)[18]。雖然強監(jiān)督學(xué)習(xí)已取得不錯的分類效果,但人工標(biāo)注代價高且算法通用性不強。因此本文采取弱監(jiān)督圖像分類算法中的端到端模型,即由LIN等[11]提出的雙線性卷積神經(jīng)網(wǎng)絡(luò)。
一個雙線性模型主要由一個四元組函數(shù)T=(fx,fy,p,c)構(gòu)成,其中f是指去除softmax層和全連接層的卷積網(wǎng)絡(luò)特征提取函數(shù),x與y相同時稱為同源雙線性模型,x與y不同時則稱為多模雙線性模型,p代表池化函數(shù),c代表由全連接層構(gòu)成的分類器。對于fx提取的特征向量A.Rt×m,fy提取的特征向量B.Rt×n,通過雙線性池化進行外積相乘得到M.Rm×n,這樣得到的融合特征計算方便且便于梯度反向傳播。
由于原Bilinear CNN模型采取VGG作為特征提取子網(wǎng)絡(luò),而VGG網(wǎng)絡(luò)多尺度特征提取能力較弱,無法完成番茄病害葉片上的差異性局部關(guān)鍵信息的捕捉,不利于提高網(wǎng)絡(luò)的表征能力,所以本文采用Res2Net作為特征提取子網(wǎng)絡(luò),獲得靈活的感受野,以識別多尺度范圍的葉片病害。
針對同一種番茄病害在早晚期的表現(xiàn)特征差異大,且拍攝角度、光照陰影等環(huán)境因素影響較大,使用傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)進行識別準(zhǔn)確率不高,本文提出一種基于Res2Net的雙線性注意力網(wǎng)絡(luò)模型用于番茄病害葉片早晚期識別。模型主要包括兩部分:結(jié)合高效頻域和瓶頸結(jié)構(gòu)設(shè)計的通道注意力模塊(EFCA)和空間注意力模塊(SA)。分別將這兩個注意力模塊添加到Res2Net50和ResNet34的殘差結(jié)構(gòu)中,然后使用雙線性融合兩個子網(wǎng)絡(luò)提取的特征。由于雙線性外積得到的特征維度較高,存在特征冗余,嚴(yán)重影響分類精度和模型效率,所以在融合后先使用一維卷積捕獲通道間的交互關(guān)系,然后追加最大池化層降低特征維度,減少冗余信息。同時借鑒殘差網(wǎng)絡(luò)的shortcut思想,再與外積前的特征張量做concat操作,使得融合后模型的表征能力較融合前至少沒有降低,最后使用全連接層達到分類的目的。模型整體結(jié)構(gòu)如圖2所示。
圖2 雙線性注意力網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.2 Structure of bilinear attention network model
卷積神經(jīng)網(wǎng)絡(luò)通過卷積濾波器捕捉局部感受域的空間和通道融合信息,從而獲得全局感受域的分層模式來作為圖像特征的表示。但是不同的空間和通道信息對應(yīng)圖像中的不同信息,有些背景干擾信息會影響分類性能,所以采用空間[19]和通道[20]注意力機制為特征層添加不同權(quán)重,以降低特征冗余產(chǎn)生的影響。
(1)通道注意力
EFCA模塊是結(jié)合模塊ECANet block[21]和FcaNet block[22]各自優(yōu)勢的一種通道注意力模塊,避免了權(quán)重獲取過程中部分特征在降采樣時僅保留不充分信息及降維給通道注意力預(yù)測帶來的副作用,而且在不增加模型復(fù)雜度和計算量的同時性能得到明顯提升,模塊結(jié)構(gòu)如圖3所示。
圖3 EFCA模塊結(jié)構(gòu)Fig.3 Structure of EFCA module
獲取通道注意力的過程描述如下:①特征提取函數(shù)某一卷積層捕捉得到的特征圖Fa.Rh×w×d作為輸入,其中h、w代表特征圖的空間維度,d代表通道維度的數(shù)量。為了避免全局平均池化降低特征維度,增大kernel感受野范圍時導(dǎo)致信息丟失,對Fa使用DCT(Discrete cosine transform)進行降采樣處理,得到由多個頻域組合提取得到的特征向量Fq.R1×1×d。②將Fq通過內(nèi)核大小為k的一維卷積,使得在提取非線性特征時,實現(xiàn)無需降維的局部跨通道交互,再通過Sigmoid激活函數(shù)生成通道權(quán)重Wt.R1×1×d。③將權(quán)重Wt和輸入的特征圖Fa采用對應(yīng)元素相乘的策略進行加權(quán)融合,得到帶通道注意力的融合特征圖Fb。相較于Fa,使用Fb可以使模型更關(guān)注于顯著區(qū)分特征,而忽視冗余的背景信息,增強模型的有效特征提取能力。
步驟①~③的通道注意力獲取過程可表示為
Fb=δ(C1[Dct(Fa)])?Fa
(2)
式中δ——sigmoid激活函數(shù)
C1——卷積核大小為k的一維卷積操作
Dct——2維離散余弦變換
?——對應(yīng)元素乘積操作
(2)空間注意力
對于二維圖像來說,僅關(guān)注圖像的通道維度是不夠的,還需要基于圖像的尺度空間即長寬的注意力機制。本文基于CBAM[23]算法,結(jié)合使用空間注意力尋找圖像中與任務(wù)相關(guān)的區(qū)域,使得網(wǎng)絡(luò)具有一定的尺度不變性,模塊結(jié)構(gòu)如圖4所示。
圖4 空間注意力模塊結(jié)構(gòu)圖Fig.4 Structure diagram of spatial attention module
獲取空間注意力的過程描述如下:①將特征提取函數(shù)得到的特征圖Fa.Rh×w×d作為輸入,通過最大池化和平均池化在通道維度上進行降采樣,得到兩個特征向量Sa.Rh×w×2。②使用concat函數(shù)對兩個特征向量Sa級聯(lián)后,采用大小為7的二維卷積進行空間維度的特征提取,并通過sigmoid函數(shù)激活得到對應(yīng)的空間權(quán)重Wt.Rh×w×1。③對Wt與Fa進行對應(yīng)元素相乘,得到帶權(quán)重信息的空間注意力特征圖Fc。
步驟①~③的通道注意力獲取過程可表示為
Fc=δ{C2[Pma(Fa)]}?Fa
(3)
式中C2——卷積核大小為7的二維卷積操作
Pma——通道維度上的最大池化和平均池化
所提出的網(wǎng)絡(luò)模型可用于不同農(nóng)作物病害的分類,本文使用番茄病害作為實驗對象。采用的數(shù)據(jù)集來自AI Challenger 2018比賽中的農(nóng)作物病害數(shù)據(jù)集,單獨將其中的番茄病害分離出來,并篩選掉其中個別圖像數(shù)目極不平衡的類別。最終得到番茄的14個病害類別數(shù)據(jù)集,共11 359幅圖像,分別是白粉病早晚期、早疫病早晚期、晚疫病菌早晚期、葉霉病早晚期、斑枯病早晚期、紅蜘蛛損傷早晚期、黃化曲葉病毒病早晚期,具體類別與對應(yīng)數(shù)目如表1所示。
表1 番茄數(shù)據(jù)集病害種類與數(shù)量分布Tab.1 Disease types and quantity distribution of tomato dataset
病害不同時期的表現(xiàn)如圖5所示,部分病害主要區(qū)別為:①晚疫病早期從葉片邊緣、葉尖處開始,為暗綠色水漬狀半圓形病斑;晚期病斑擴大后中間黑褐色、周圍暗綠色。②紅蜘蛛損傷早期葉片呈現(xiàn)密集蒼白的小斑點,卷曲發(fā)黃;晚期病害面積擴散,葉片變黃,出現(xiàn)卷葉、焦葉??梢园l(fā)現(xiàn)葉片病害早晚期的表現(xiàn)不同,病狀差異明顯。符合細粒度圖像識別的“類內(nèi)差異大,類間差異小”的基本特征[24],這也給使用常規(guī)卷積神經(jīng)網(wǎng)絡(luò)進行葉片分類帶來了困難。
圖5 不同病害類別早晚期對比圖像Fig.5 Contrast images of different disease categories in early and late stages
由于深度學(xué)習(xí)依賴于海量數(shù)據(jù)集的訓(xùn)練,所以使用數(shù)據(jù)增強技術(shù)擴展數(shù)據(jù)集是取得良好分類效果且避免模型訓(xùn)練過擬合的重要途徑。本實驗中采取在訓(xùn)練過程中獲得batch后,對batch數(shù)據(jù)進行在線增強,對數(shù)據(jù)進行隨機旋轉(zhuǎn)角度、水平平移和上下平移、錯切變換、隨機縮放比例、水平翻轉(zhuǎn)等預(yù)處理方式,增強后的部分圖像與原始圖像對比見圖6。
圖6 部分病害圖像及增強圖像示例Fig.6 Examples of partial disease image and enhanced image
本文在深度學(xué)習(xí)框架tensorflow2基礎(chǔ)上,使用NVIDIA GeForce RTX 2080Ti GPU加速網(wǎng)絡(luò)訓(xùn)練。為減少模型計算量,將圖像縮放至224像素×224像素,另外考慮降低圖像幾何變化帶來的影響,需要對圖像進行歸一化處理,并將圖像按8∶2的比例劃分為訓(xùn)練集、驗證集,保證模型的泛化性和魯棒性。
由于數(shù)據(jù)集中各類別數(shù)量較不平衡,因此采用focal loss[25]取代傳統(tǒng)的交叉熵損失函數(shù),解決難易樣本和正負樣本不平衡給模型訓(xùn)練帶來的過擬合問題。針對數(shù)據(jù)集中異常的樣本標(biāo)注,使用label smoothing[26]緩解錯誤標(biāo)簽給模型訓(xùn)練帶來的影響。
使用自適應(yīng)矩估計(Adam)優(yōu)化器優(yōu)化網(wǎng)絡(luò)并在一定程度上解決數(shù)據(jù)噪聲較高的問題,初始學(xué)習(xí)率為0.001,使用keras中的回調(diào)函數(shù)ReduceLROnPlateau動態(tài)調(diào)整學(xué)習(xí)率,當(dāng)val_loss連續(xù)3次不下降時,調(diào)整學(xué)習(xí)率為0.2。最大訓(xùn)練輪數(shù)為50,批量大小為16,使用EarlyStopping函數(shù)監(jiān)測val_loss指標(biāo),當(dāng)連續(xù)5次下降低于0.000 1時停止訓(xùn)練。Res2Net中的超參數(shù)width設(shè)為16,scale為4,F(xiàn)ECA模塊中一維卷積核大小k設(shè)為3,用于捕獲模型的跨通道交互,雙線性融合后的最大池化層pool_size為16,達到降低特征維度,避免特征冗余對分類效果的影響。
為了驗證本文提出的模型在番茄葉片病害識別上的有效性,首先對模型進行消融實驗,分別使用Res2Net50、+通道注意力(EFCA)、+空間注意力(SA)、+Bilinear CNN在數(shù)據(jù)集上從頭訓(xùn)練,采用準(zhǔn)確率作為評價指標(biāo),結(jié)果如表2所示,訓(xùn)練過程中驗證集損失和準(zhǔn)確率曲線如圖7所示。
圖7 消融實驗驗證集損失值與準(zhǔn)確率曲線Fig.7 Loss and accuracy curves of verification set in ablation experiment
表2 不同模塊消融實驗結(jié)果Tab.2 Ablation results of different modules
從表2可以看出,使用EFCA通道注意力可以在基礎(chǔ)模型的基礎(chǔ)上將準(zhǔn)確率提升0.84個百分點。將空間和通道注意力串聯(lián)使用后,準(zhǔn)確率反而有所下降,可能原因是通過通道注意力后,特征圖缺失了部分空間特征,因此再使用空間注意力后效果不升反降。因此本文提出的模型將通道和空間注意力并行實現(xiàn)在Res2Net50和ResNet34中,再通過雙線性融合以便更好地提取病害特征,最終模型準(zhǔn)確率可以達到86.89%,較基礎(chǔ)模型提升2.11個百分點。觀察圖7發(fā)現(xiàn),串聯(lián)空間和通道注意力后導(dǎo)致模型的損失值和準(zhǔn)確率曲線震蕩嚴(yán)重,表現(xiàn)較差。而本文使用的雙線性注意力模型觸發(fā)EarlyStopping最晚,且曲線后期表現(xiàn)平穩(wěn),說明該模型具有較高的穩(wěn)定性。
為了驗證本文方法的優(yōu)越性,首先將backbone模型與ShuffleNetV2[27]、InceptionV4[28]、DenseNet121[29]做對比實驗;同時為了實驗的公平性,與同樣使用注意力機制的CBAM[23]、ARNet[12]模型進行對比;最后,與原文中提出的雙線性模型Bilinear CNN[11]和自定義的Bilinear EfficientNet比較,結(jié)果見表3,驗證集損失值和準(zhǔn)確率曲線如圖8所示。
表3 不同分類方法對比實驗結(jié)果Tab.3 Comparative experiment results of different methods
圖8 對比實驗驗證集損失值與準(zhǔn)確率曲線Fig.8 Loss and accuracy curves of verification set in comparative experiment
從表3可看出,與ShuffleNetV2、InceptionV4和DenseNet121相比,Res2Net50取得了最佳結(jié)果,準(zhǔn)確率分別提升3.74、0.57、2.47個百分點。對比同樣使用空間注意力和通道注意力的CBAM模型,以及針對番茄病害分類所提出的殘差注意力ARNet模型,本文提出的雙線性注意力模型準(zhǔn)確率分別提升3.45、3.17個百分點,比Bilinear CNN 和自定義的Bilinear EfficientNet準(zhǔn)確率分別提升2.11、1.15個百分點。原雙線性網(wǎng)絡(luò)表現(xiàn)不好的原因是,雙線性融合后大量的特征冗余影響了模型決策。在圖8的backbone模型比較中可以發(fā)現(xiàn),只有InceptionV4的最終表現(xiàn)接近Res2Net,這是因為二者都利用多個不同大小的卷積核提取多尺度特征,這有利于模型捕捉番茄葉面病害的差異性局部關(guān)鍵特征,但InceptionV4的曲線波動較大,穩(wěn)定性較差,這也是本文選取Res2Net作為基礎(chǔ)模型的原因之一。自定義的Bilinear EfficientNet模型表現(xiàn)較穩(wěn)定的主要原因是遷移學(xué)習(xí)了ImageNet的預(yù)訓(xùn)練參數(shù),但同時觸發(fā)EarlyStopping較早,說明遷移學(xué)習(xí)在細粒度病害分類問題上僅僅加速了模型的收斂速度,但對于模型的準(zhǔn)確率提升并沒有較大的幫助,因此本文并沒有基于遷移學(xué)習(xí)進行模型訓(xùn)練。
本文模型在14種不同程度病害分類上的準(zhǔn)確率為86.89%,如果不區(qū)分病害時期,僅關(guān)注病害類別,在7種不同種類病害數(shù)據(jù)集上,本文模型平均準(zhǔn)確率為98.66%,說明該模型具有良好的泛化能力。由圖9計算可知每個類別的準(zhǔn)確率,其中圖9a中行列號0~6分別對應(yīng)白粉病、早疫病、晚疫病、葉霉病、斑枯病、紅蜘蛛損傷、黃化曲葉病這7種病害類別,圖9b中的行列號0~13對應(yīng)表1中的序號0、9、10、11、12、13、1、2、3、4、5、6、7、8??梢钥闯鰠^(qū)分病害時期的分類中,紅蜘蛛損傷晚期和黃化曲葉病晚期的準(zhǔn)確率只達到74.36%和75.74%,較其它種類分類效果較差,主要原因是這兩種病害早晚期界定較難,人工分類存在部分標(biāo)簽異常,影響模型分類效果。
圖9 驗證集混淆矩陣Fig.9 Validation set confusion matrix
通過將卷積層的特征映射與原圖在空間位置上進行對應(yīng),利用類激活可視化(grad-cam)[30]方法,將模型最后一個卷積層在葉片上的注意力可視化,更清晰地說明注意力機制在模型判別時所關(guān)注的葉片病害特征。分別將Res2Net50、空間注意力、通道注意力生成的熱力圖進行可視化,如圖10所示。
圖10 注意力特征圖可視化對比Fig.10 Visual comparison of attention characteristic map
熱力圖中紅色區(qū)域代表特征圖與預(yù)測類別的響應(yīng)值高,這些區(qū)域越多代表模型決策依據(jù)越多,判別更準(zhǔn)確。觀察紅蜘蛛損傷以及早疫病的早晚期在空間和通道注意力中的熱力圖可以發(fā)現(xiàn),使用注意力后模型對于病害判別性區(qū)域,即葉片中出現(xiàn)的小斑點和大面積病斑識別更精準(zhǔn)。對于黃化曲葉病,相較于早期時關(guān)注的葉肉變厚特征,注意力機制在判別晚期時更加關(guān)注葉片卷曲、皺縮的邊緣區(qū)域,使得模型的決策依據(jù)更加豐富多樣化,增強了模型的病害表征能力。
通過結(jié)合細粒度圖像分類中的弱監(jiān)督分類算法,提出一種基于Res2Net和雙線性注意力模型對番茄葉面型病害時期進行分類。首先,針對常規(guī)通道注意力獲取過程中出現(xiàn)的信息丟失問題,在不降維的基礎(chǔ)上,提出使用DCT代替GAP的EFCA通道注意力模塊,避免部分特征在降采樣中缺失。其次,針對雙線性融合后維度過高導(dǎo)致的特征冗余,通過在外積后增加最大池化和基于shortcut思想設(shè)計的concat模塊進行了有效解決。