鮑文霞 林 澤 胡根生 梁 棟 黃林生 楊先軍
(1.安徽大學農業生態大數據分析與應用技術國家地方聯合工程研究中心, 合肥 230601;2.中國科學院合肥物質科學研究院, 合肥 230031)
準確地估計小麥病害的嚴重度,有助于麥田病情的精準防控,同時針對性施用農藥,減少種植成本和農業生態環境污染,對于病害的科學防治尤為關鍵[1]。
目前小麥病害嚴重度估計主要依靠有經驗的工作人員到現場進行目視觀察,人工方法耗時且費力,而且依賴于經驗。利用可見光、多光譜或者紅外傳感器可以獲得作物病害信息,結合計算機視覺和機器學習技術實現高效監測作物病害的嚴重程度,從而實時科學地精細化管控農業生產,提升作業效率,對于實施“智慧農業”有著積極意義。染病組織的光譜反射率有效地反映作物病害發生過程中的內部結構和形態等差異,因而利用光譜成像技術可以進行小麥病害的嚴重度估計[2-3],但該方法的計算成本較大,而且野外環境對高光譜圖像的采集造成一定影響。與傳統的人工檢測和高光譜成像相比,紅外和可見光圖像技術在小麥病害嚴重度估計工作中應用更廣泛[4-5]。通過采集的紅外熱成像探明病害過程中的溫度變化規律,以及對RGB圖像的分析和處理,可實現對小麥葉銹病的快速檢測和分級。目前基于經典機器視覺的病害嚴重度估計方式特征提取難,由于小麥病害葉片圖像易受復雜的背景環境干擾,尤其是同類別病害的不同嚴重度之間的顏色紋理特征相似,細粒度差異較小,傳統方法難以準確地對小麥葉片病害進行嚴重度估計。
隨著深度學習技術的發展,卷積神經網絡(Convolutional neural networks,CNN)在圖像處理和分類中的應用日益廣泛[6-9]。與傳統機器學習算法相比,CNN能夠自動檢索圖像的全局信息和局部特征,不需要人工檢測和提取,具有更好的性能[10-12]。
相比于作物病害的識別[13-15],病害的嚴重度估計對方法的有效性和精確度的要求更高。由于作物病害不同嚴重度之間的特征差異小,準確進行病害嚴重度估計往往需要大量的數據對網絡進行訓練[16-19]。上述嚴重度估計方法均是直接對原始數據集進行學習以實現對作物病害的嚴重度估計,學習的對象是病害圖像的全局信息,缺乏作物病害圖像局部區域之間的相互關聯性[20]。
小麥葉片病害的嚴重度等級之間的顏色紋理特征差異較小,可以歸屬于細粒度分類問題。目前,細粒度分類問題的解決方式可以分為兩類:基于圖像注意力區域檢測的方法[21-22]和基于圖像細粒度特征表達的方法[23-24],分別通過弱監督的信息檢測圖像中的注意力區域和使用高維圖像特征對圖像信息自適應提取,實現精細化分類。文獻[25]研究表明,針對細粒度圖像的處理和分類問題,形態、輪廓特征的重要性表現較小,而局部細節特征則至關重要。針對小麥條銹病和白粉病癥狀主要位于葉片的局部區域的特征,運用傳統分類方式對全局信息進行卷積操作,勢必會影響最終的分類準確率。本文通過注意力區域檢測和局部細粒度特征表達的聯合優化和遞歸學習,構造基于循環空間變換的卷積神經網絡(Recurrent spatial transformer convolutional neural network,RSTCNN)方法用于小麥葉片病害的嚴重度估計。將圖像由卷積池化后生成的特征圖,通過空間變換(Spatial transformer,ST)層實現葉片的病害區域檢測,提取出病害特征的關鍵區域,接著以交替促進的方式對注意力區域檢測和局部細粒度特征表達進行聯合優化,由分類子網絡實現圖像分類并依次遞歸學習。最后對各尺度全連接層的輸出進行特征融合,再并入到Softmax層預測最終的概率,以實現病害的嚴重度估計。
本文所用小麥葉片病害圖像來源于安徽省農業科學研究院試驗基地(31°89′N,117°25′E),該試驗基地作為國家級科研平臺,同時也是國家小麥育種分中心,長期以來一直承擔小麥、水稻等多種農作物育種科研試驗任務。葉片病害數據采集于2019年4月26日至2019年5月10日09:00—16:00,天氣晴朗且少云,相對濕度和溫度分別在30%~50%和18~25℃之間。此時該基地的小麥葉片正值青翠繁茂期,主要遭受條銹病、白粉病的侵擾。拍攝設備為EOS80D型佳能數碼相機(圖像尺寸6 016像素×4 000像素,焦距4 mm,光圈f/22,曝光時間1/2 000 s)。采集并經過篩選后得到兩類小麥葉片病害圖像各計180幅。研究區域和數據采集工作圖如圖1所示。
為了更好地檢驗模型性能,針對獲取的數據集樣本有限和不平衡的情況,先將原始樣本通過裁剪的方式,切分圖像的長邊為4等份,每幅圖像可擴充得到4幅病害圖像,如圖2所示。接著對擴充后的病害圖像按照病斑面積占葉片總面積的百分比R來界定病害嚴重程度[26]:0 表1 數據集樣本分布Tab.1 Sample distribution of dataset 幅 針對同種病害不同嚴重度間的顏色、紋理特征差異較小以及細粒度圖像難以分類問題,本文構建RSTCNN網絡模型,該網絡由圖像分類和區域檢測兩個子任務的多層結構構成,運用區域檢測和圖像分類兩個子網絡交替訓練的思想,通過交替促進的方式對注意力區域檢測和局部細粒度特征表達進行聯合優化和遞歸學習,從而達到精確估計小麥葉片病害嚴重度的目的。 1.2.1RSTCNN RSTCNN主要包含3個尺度網絡(可根據需要疊加多個尺度),每個尺度網絡的結構都一樣,均以基礎分類網絡模型為框架,并插入空間金字塔池化(Spatial pyramid pooling,SPP)層固定輸出特征圖維度,各尺度網絡間通過ST層連接并進行區域檢測。本文實驗的每個尺度網絡以VGG19作為子網絡,圖像通過卷積池化層生成的特征圖,一方面輸入該尺度網絡的SPP層和全連接層,另一方面由空間變換層進行區域檢測后,作為下一個尺度網絡的輸入。RSTCNN網絡架構如圖3所示,其中as(s=1,2,3)表示各尺度網絡(Scale 1、Scale 2、Scale 3),以VGG19作為框架,其網絡結構如圖4所示;bs表示各尺度網絡的卷積層和池化層,從輸入病害葉片圖像中提取特征;cs表示各尺度網絡的SPP層,用來在全連接層前統一輸出不同特征圖維度;ds表示各尺度網絡的全連接層和Softmax層,可得到單個分類子網絡的輸出結果。 在更高尺度的網絡中,以上層尺度網絡卷積池化后的特征圖作為研究對象,一方面由ST層(e1、e2)進行區域檢測,由粗到細迭代生成病害細粒度表征的注意力區域并提取,另一方面通過分類子網絡,送入SPP層和全連接層。接著將注意力區域特征圖以循環的方式在下一個尺度網絡再次進行迭代訓練,然后對全連接層的輸出規范一致化后以Concat方式對特征圖通道合并以達到特征融合[27]的目的,最后并入到Softmax層預測該圖像病害嚴重度類別的概率,獲得更佳的分類效果。算法流程如下: (1)將數據集通過分類子網絡提取特征并分類,然后在全連接層前將提取特征圖送入ST層區域,檢測得到葉片病害的注意力區域。 (2)將注意力區域生成的特征圖在分類子網絡的全連接層前通過SPP層,統一規范化特征圖的尺寸,并送入下級尺度網絡,再次進行局部細粒度特征的學習和區域檢測。 (3)通過尺度內分類損失和尺度間排序交叉熵損失聯合優化,以相互強化的方式對圖像注意力區域檢測和局部細粒度特征表達進行遞歸學習,并可根據需要決定尺度和迭代次數。 (4)綜合各尺度網絡全連接層的輸出,規范一致化后通過Concat進行特征融合,再并入到Softmax層得到最終預測值,達到更佳的分類結果,實現葉片病害嚴重度的精準估計。 1.2.2區域檢測和提取 區域檢測子網絡位于各個尺度網絡之間,通過空間變換有效檢測出上級尺度網絡特征圖中的注意力區域,提取并作為下級尺度網絡的輸入。ST層基本架構如圖5所示,通過區位網絡和采樣映射機制[28-29],在網絡中對數據進行空間變換處理。其核心為空間轉換模塊,主要由3部分組成,其中區位網絡用來計算空間變換的參數,坐標映射器得到輸入特征圖U到輸出特征圖V的映射位置對應關系Tθ,圖像采樣器則根據輸入特征圖U和對應映射關系Tθ,生成最終的輸出映射。 (1)區位網絡 區位網絡以特征圖作為輸入,仿射變換后經一系列的隱藏網絡層學習并輸出變換參數θ。對于一個局部網絡,設輸入前一層的特征圖為U,則區位網絡的輸出表示為 θ=floc(U) (1) 式中floc——卷積神經網絡(局部網絡) θ——網絡輸出的變換矩陣,用作轉換器的訓練參數(本文實驗為二維仿射變換,θ為六維矩陣,元素分別記作θαβ(α=1,2;β=1,2,3)) (2)坐標映射器 采用逆變換的方法獲得輸出特征圖,并生成網格上每個像素點的對應值。根據區位網絡的參數,坐標映射器構建逆變換后的圖像與輸入圖像上采樣網格Gi的坐標映射,得到輸入特征圖U∈RH×W×C到輸出特征圖V∈RH′×W′×C的各映射位置對應關系Tθ。其中W、H是對應特征圖的寬、高,C為通道數。通過仿射變換,將輸入和輸出的橫縱坐標范圍規范一致化,得到變換后輸出的特征圖。 (2) (3)圖像采樣器 由前兩部分傳輸變換獲得相應的網格和坐標映射關系Tθ后,將特征圖和坐標映射關系同時作為生成器的輸入獲得輸出。 在原始圖中采樣像素復制到對應圖中,生成輸出映射。將原圖像像素坐標仿射變換為目標圖像的像素點坐標,表達為 (3) k——核函數,表示實現重采樣功能的線性插值 Φx、Φy——采樣內核k的輸入插值參數 綜上,ST層是一個可微模塊,既可對輸入特征圖進行空間變換,也可作為網絡模塊插入到任務需求網絡的任意層中,使得CNN能夠自主在空間上轉換特征映射,進行區域檢測和獲取。 對檢測區域進行提取,設提取出的病害特征區域均為正方形,表示為(tx,ty,tl),可得 (tx,ty,tl)=g(WcX) (4) 式中g(·)——ST層網絡函數 X——輸入圖像 Wc——分類子網絡,從X中提取特征 tx、ty——檢測區域中心點坐標 tl——檢測區域邊長 特征圖的注意力區域檢測示意圖如圖6所示。 假設特征圖的左上角是坐標系的起點,用符號Cl表示左上角點,符號Cr表示右下角點。則根據ST層網絡的tx、ty和tl,可計算出裁剪后區域的x軸坐標tx(Cl)、tx(Cr)和y軸坐標ty(Cl)、ty(Cr)分別為 (5) 為實現整體網絡端到端優化訓練,需要定義掩膜函數為連續函數以易于在逆向傳播中優化,這里使用二維boxcar函數的變體作為注意掩膜進行近似裁剪操作,避免了直接根據坐標和邊長信息生成(0,1)的掩膜,表達式為 M=(h(x-tx(Cl))-h(x-tx(Cr)))· (6) (7) 式中M——掩膜函數 h——Sigmoid激活函數 通過坐標關系,將掩膜函數M和輸入圖像X的數組元素依次相乘提取區域Xatt,表達式為 Xatt=X?M(tx,ty,tl) (8) 1.2.3空間金字塔池化 傳統CNN的全連接層是神經元對于所有輸入的連接權重,若輸入尺寸不一致,則會使得全連接層參數無法固定。CNN要求輸入維度一致是導致隨機尺寸的圖像識別率低的關鍵。RSTCNN的各尺度網絡需要特征圖經過ST層進行區域檢測和特征提取,會使特征圖的尺寸發生改變。若采用傳統的數據集預處理的方式,對特征圖進行裁剪或者放大,使其維度相同,則會帶來較大的弊端,一方面裁剪掉的區域可能會包含病害目標區域,另一方面特征圖的放大也會導致圖像幾何方面的失真和扭曲[30]。 為了解決特征圖經過ST層提取區域后特征圖尺寸會改變的問題,RSTCNN在各尺度網絡的全連接層前引入SPP層[31-32],如圖7所示。不同尺寸的輸入特征圖規范化為一致性向量,以保存特征信息的同時,改進模型的識別精度。SPP通過空間像素級的層次關系,將空間的第l層級進行劃分(l∈N+),其中每層有2l個子集,橫縱坐標則依次切分成2l個網格,獲得4l塊特征圖。對于任意大小的輸入特征圖,每個子網絡上的3個池化層分別以4l個網格將特征圖分為4l塊,并采用最大池化以維持圖像特征的細節信息,得到相應的4l維特征向量。最后將各池化層提取的特征融合,使任意尺寸特征圖均統一規范為同維的特征向量,不再固定限制輸入圖像的尺寸。從而避免了特征圖因適應傳統CNN的方式需要進行裁剪或扭曲,導致圖像部分信息丟失,特征提取難等問題。 1.2.4訓練策略 整個網絡模型基于注意力區域檢測和局部細粒度特征表達聯合優化和遞歸學習的思想,以相互促進的方式迭代訓練,算法流程如圖8所示。 具體的訓練步驟如下: (1)初始化分類子網絡中的卷積層和全連接層參數。 (3)設置學習率,先通過取值為0來固定分類和檢測子網絡參數。接著保持ST子網絡參數不變,優化分類子網絡直到Lcls收斂。然后固定分類子網絡參數,并切換到尺度間的排序交叉熵損失來優化兩個ST子網絡,直到Lrank收斂。 (4)返回步驟(3),直到兩類子網絡損失均收斂。 RSTCNN的損失函數包含兩部分,由Y(s)和Y*構成分類損失Lcls,其中Y(s)為預測的類別概率,Y*為真實類別。以及表示尺度間排序的交叉熵損失Lrank,Scale 1網絡和Scale 2網絡,以及Scale 2網絡和Scale 3網絡分別構成兩個不同Lrank,表達式為 (9) 其中 (10) 式中L(X)——RSTCNN的損失函數 t——真實標簽類別 margin——定值參數 綜上,通過RSTCNN獲取到的小麥圖像輸出的不同尺度特征表示為{F1,F2,…,Fi,…,FN}。其中N表示尺度數目,Fi表示第i個尺度網絡的全連接層輸出。通過獨立地對每個Fi規范化統一后,以Concat方式實現特征融合,再并入到Softmax層得到最終的分類結果。 本文實驗軟件環境為Linux Ubuntu 16.04操作系統、NVIDIA GTX2070 GPU上的CUDA8.0平臺,使用Pytorch的開源軟件框架和Python編程語言實現。實驗中采用批量訓練方式,將訓練集和測試集劃分為多個批次,以便更好對比觀察實驗效果。所有模型訓練的迭代周期(Epoch)均設置為300,通過L2正則化與Dropout策略減少模型過擬合程度,整個訓練過程是迭代進行的,并采用損失函數交替訓練的策略來優化網絡參數。 為了驗證基于RSTCNN模型對小麥病害葉片進行嚴重度估計算法的有效性,分別對網絡模型集成方式和參數選取進行對比實驗,同時也將傳統的機器學習分類器和流行的CNN進行對比。模型評價指標有精確率(Precision)、召回率(Recall)、F1值(F1 scores)以及準確率(Accuracy)。其中,精確率針對預測結果,實際正樣本占預測為正樣本的比例。本文的正樣本指屬于某一類別的樣本,而負樣本指不屬于某一類別的樣本。召回率針對原樣本,預測為正樣本的數量占實際正樣本的比例。F1值為精確率與召回率的調和均值。準確率為預測正確的結果占總樣本的比例。 運用本文的RSTCNN模型,分別選取常用的VGG19、GoogleNet、ResNet50、AlexNet基礎網絡作為分類子網絡,并與區域檢測子網絡分別構成RSTCNN_VGG19、RSTCNN_GoogleNet、RSTCNN_ResNet50、RSTCNN_AlexNet網絡模型。通過和基礎分類網絡進行比較實驗,驗證RSTCNN模型通過分類實現對小麥葉片病害嚴重度估計的提升效果。 表2展示了不同分類網絡模型對小麥葉片病害嚴重度估計的結果,表明相較于傳統的分類網絡,所提出基于RSTCNN模型改進網絡增強了基礎分類網絡對圖像中病害區域的檢測和分類能力。通過交替促進的方式對注意力區域檢測和局部細粒度特征表達進行聯合優化和遞歸學習,根本性解決了細粒度圖像識別中,局部細節特征起主導作用的難點,各評價指標均有一定的提升。 表2 不同分類網絡模型的嚴重度估計結果Tab.2 Severity estimation results of different network models % 圖9為不同分類網絡模型的嚴重度估計準確率變化曲線,直觀地對比出RSTCNN模型在基礎分類網絡上改進后,各個訓練周期時精度的提升狀況,并減少了模型達到穩定的訓練周期,為小麥葉病的嚴重度估計提供了高效精準的指導。其中RSTCNN網絡模型與VGG19聯合構造的準確率最高,因此本文所有的對比驗證實驗中,RSTCNN網絡模型均采用VGG19作為分類子網絡。 本文運用多尺度網絡的優勢,表現為模型訓練時可逐漸聚焦到小麥葉片病害的顯著區域,并增強其特征信息表達能力,有利于提高嚴重度估計效果。另外針對分類網絡和ST網絡設計2個損失,通過限制其中一個網絡的參數來交替訓練另一個網絡,實現圖像的注意力區域檢測和局部細粒度特征表達的聯合優化和遞歸學習。由于該模型通過多尺度網絡對圖像及其特征圖進行了多次區域檢測和再分類,從某種意義上也起到了擴充數據集的效果。 對RSTCNN模型學習過程中生成的特征進行可視化,以VGG19作為分類子網絡,通過3個尺度網絡的構造形式,得到一系列特征圖如圖10所示,可以發現隨著RSTCNN尺度的增加,通過ST層的區域檢測和提取能力,逐漸定位并精細化了圖像中具有葉片病害的注意力區域,達到了提高病害嚴重度估計準確率的目的。 為驗證RSTCNN模型的ST層子網絡進行注意力區域檢測的優越性,本文選取了常用的區域檢測網絡進行對比實驗,分別得到小麥葉片病害嚴重度估計的準確率。其中,全卷積自適應網絡(FCAN)[33]由圖像域適應網絡和特征自適應網絡組成,以解決域適應背景下的語義分割難題。多注意力卷積神經網絡(MACNN)[34]利用特征圖不同通道關注的視覺信息不同會導致峰值響應區域差異性的特點,聚類響應區域接近的通道獲得注意力區域。多樣化視覺注意網絡(DVAN)[35]追求最大限度收集差異性信息,并結合圖像的不同區域和尺度的信息來建立動態的類內分類表示。 此外,本文還對各尺度(Scale 2、Scale 3、Scale 4)下的單獨嚴重度估計結果以及融合不同尺度特征的嚴重度估計結果(Scale 1+2、Scale 1+2+3、Scale 1+2+3+4)分別進行了實驗。圖11為不同注意力區域獲取方式和RSTCNN各個尺度下的病害嚴重度估計準確率,通過實驗結果可發現,隨著融合尺度的增加,網絡模型更加復雜,但準確率由較高提升逐漸變緩至甚微,綜合衡量3層尺度融合的網絡準確率為最佳。Scale 4網絡效果不及Scale 3網絡效果,主要原因在于Scale 4丟失了較多的全局信息,導致部分病害區域的信息欠缺。 在使用深度學習識別圖像時,混淆矩陣作為有效的可視化工具,將數據劃分為輸入類和預測輸出類的樣本數量,直觀地把分類結果的精度展示于一幅矩陣圖中,比較出分類結果和實際測得值間的差異,因此常被用在多分類問題中評價模型的精度。 實驗對小麥葉片的條銹病和白粉病進行病害等級分類為輕度、中度、重度,其中條銹病的輕度、中度、重度分別記為A、B、C,白粉病的輕度、中度、重度分別記為D、E、F,共計6類。VGG19基礎網絡模型和將VGG19作為分類子網絡的RSTCNN網絡模型的生成嚴重度估計混淆矩陣如圖12所示。圖中每行為小麥病害的實際種類,其總數Sum_lin表示歸屬該種類的實際數據。每列為小麥病害的預測種類,其總數Sum_col表示該種類的預測數據。行列交叉處的數值表示小麥病害被預測為相應行種類的數目,而對角線上的值為預測正確的結果總數。根據結果,直觀展示出葉片病害嚴重度的真實數據和預測數據混淆的樣本數目,以及各類病害嚴重度樣本的分類錯誤數據類型,表明RSTCNN網絡模型可以實現更精準的嚴重度估計效果。 為驗證本文方法相比于傳統機器學習算法的優越性,實驗將本文方法與3種在農作物病害嚴重度估計上的傳統機器學習算法進行了比較分析。這3種傳統機器學習算法分別運用K近鄰(KNN)分類[36]提取圖像顏色特征,利用隨機森林(RF)分類[37]提取圖像紋理特征和通過支持向量機(SVM)分類[38]提取圖像的組合特征。 實驗中,通過開源庫Scikit-learn2.2調用3種經典機器學習分類器。其中,KNN的樣本點相似性度量采用歐氏距離,待預測樣本附近標簽的個數在通過交叉驗證法后,選取5為最優值用于比較實驗。RF選取對樣本有放回抽樣進行構建,所有參數均先采用默認值再調參,應用十折交叉驗證發現預測變量值為81且最大特征數為6時取得最佳結果。SVM選取分類庫NuSVC用于病害嚴重度的多分類,經調參優化,得到訓練誤差上界和支持向量下限的值為0.5,核函數為RBF核,函數最高次冪為3時,效果最佳。在經上述參數調優設置后,不同經典算法的平均嚴重度估計準確率如圖13所示,可以發現相較于傳統的機器學習算法,本文提出的RSTCNN網絡模型顯著提高了小麥葉片病害嚴重度估計的平均準確率。 不同方法的精確率、召回率和F1值如表3所示,可以得到,相比于其他3種傳統機器學習方法,本文所提的RSTCNN方法具有更佳的評價指標。 表3 與傳統機器學習算法的各類指標對比結果Tab.3 Comparison of various indicators with traditional machine learning algorithms % (1)針對病害等級間特征差異較小、細粒度圖像難以分類的問題, RSTCNN運用區域檢測和圖像分類2個子網絡交替訓練的思想,基于注意力區域檢測和局部細粒度特征表達的聯合優化和遞歸學習的方式,逐漸聚焦到圖像中具有葉片病害的注意力區域,減少無關信息的干擾,然后對檢測出的病害注意力區域自適應提取,并送入下一級的分類網絡,依次迭代交替訓練,最后通過多尺度特征融合,達到更好的分類效果,實現小麥葉片病害的嚴重度估計。與傳統分類網絡相比,RSTCNN網絡模型的精確率為94.3%,召回率為94.9%,F1值為94.6%,病害嚴重度估計準確率達到95.8%,各評價指標均有所提高,表明該模型顯著增強了基礎分類網絡對圖像中病害區域的分類能力。 (2)與常見的區域檢測網絡進行對比實驗,RSTCNN模型的ST層子網絡比其他方法嚴重度估計準確率提高了4~5個百分點。另外還對各尺度下的單獨嚴重度估計結果以及融合不同尺度特征的嚴重度估計結果分別進行了實驗,發現融合尺度下的嚴重度估計準確率更高。但隨著融合尺度的增加,網絡變得更復雜,準確率卻只上升0.01個百分點,因此本文設計的3層尺度融合的網絡嚴重度估計準確率為最佳。 (3)與農作物病害嚴重度估計的傳統機器學習算法進行比較分析,相比于傳統基于顏色和紋理特征的方式,RSTCNN的分類準確率提高了9~20個百分點,顯著提高了小麥葉片病害嚴重度等級的估計準確率。
1.2 小麥病害嚴重度估計



(h(y-ty(Cl))-h(y-ty(Cr)))

2 結果與分析
2.1 實驗環境和評價指標
2.2 不同分類網絡及其作為RSTCNN子網絡時嚴重度估計

2.3 特征可視化和不同區域檢測子網絡對比
2.4 病害嚴重度估計結果混淆矩陣
2.5 與傳統算法對比

3 結論