袁培森 曹益飛 馬千里 王浩云 徐煥良
(1.南京農業大學人工智能學院, 南京 210095; 2.南京農業大學工學院, 南京 210031)
植物表型是植物在一定環境下可觀察的形態特征,在植物保護、育種等領域具有重要應用價值,其研究涉及植物學、數據科學、機器學習等領域[1-2]。水稻細菌性條斑病屬于水稻表型研究的重要內容,是一種由稻黃單胞菌致病變種引發的水稻病害[3],實時準確地判定水稻細菌性條斑病的分布區域和危害程度是采取有效防控措施和實現精準噴藥的關鍵。目前,水稻細菌性條斑病常用的診斷方法主要依靠人力在田間觀察,這種方法不僅費時費力、難以在大范圍內展開,還受觀察者自身經驗的影響[4],并且細菌性條斑病早期癥狀并不明顯,很容易被忽略。因此,研究既能克服傳統觀測方法局限性,又能精確、有效診斷早期細菌性條斑病病害的技術迫在眉睫[5]。
高光譜成像是植物病害檢測中常用的監測技術,具有無污染、高效等特點[6]。通過光譜中的每個波段記錄一個圖像,反映每個空間像素點的光譜信息,從而彌補了傳統光譜分析與成像技術的缺點[7-8]。研究人員對高光譜成像技術應用于植物病理分析進行了大量的研究。WU等[9]利用高光譜成像技術結合病理分析,通過聚合酶鏈式反應標記不同條件下收集的稻粒真實感染狀態,使用主成分分析分離健康稻谷粒和受感染稻谷粒,并使用隨機森林極限學習機模型(RF-ELM)對不同感染程度的健康和感染混合粒進行分類。雷雨等[10]對小麥葉片的高光譜圖像進行掩膜處理,利用主成分分析法和最大類間方差法獲取小麥葉片的條銹病病斑區域,通過面積比判定小麥的條銹病病害等級。LU等[11]利用遠程高光譜遙感監測實時和特定位置的水稻氮、磷和硫等含量。SUN等[12]結合高光譜技術和全基因組關聯分析技術對水稻種子的生化特性進行表型分析,結果表明,歸一化光譜指數與蛋白質含量具有高度相關性。GHAMISI等[13]根據LiDAR和高光譜數據的空間信息進行建模,通過使用支持向量機或隨機森林分類技術獲得最終的分類圖。張帥堂等[14]提出了基于高光譜成像技術和圖像處理技術融合的茶葉病斑識別方法。YEH等[15]基于高光譜成像技術,利用光譜角度映射器檢測3個不同感染階段的草莓葉狀炭疽病。郭偉等[16]通過高光譜影像的光譜指數、比值光譜指數及歸一化差值光譜指數構建偏最小二乘回歸預測模型,反演冬小麥全蝕病病情指數。梁琨等[17]利用連續投影算法和自適應加權算法提取特征波段的光譜圖像,識別小麥赤霉病。這些研究表明,高光譜可以用于作物病害檢測,并且取得了較好的效果。但基于高光譜成像對細菌性條斑病進行早期識別的研究較少。
張智韜等[18]探討了分數階微分聯合支持向量機分類-隨機森林模型改善高光譜監測荒漠土壤有機質含量的效果,通過篩選敏感的歸一化光譜指數,建立不同分數階微分的隨機森林模型,并以不同土質中的最佳模型進行組合,構建的支持向量機分類和隨機森林模型能夠快速評估荒漠土壤有機質含量。競霞等[19]利用弗勞恩霍夫譜線三波段判別算法提取冠層日光誘導葉綠素熒光數據,結合對小麥條銹病病情嚴重度敏感的11種反射率微分光譜指數,基于隨機森林算法和BP神經網絡算法預測小麥條銹病的病情嚴重度。BISWAS等[20]利用灰度共生矩陣和隨機森林對感染炭疽病、白粉病和霜霉病的葡萄葉片進行分類,并確定其嚴重程度。目前,基于高光譜影像病害的研究多集中于提取光譜指數,再對病害進行識別和分類,基于光譜本身對病害進行識別的研究較少。
本研究以感染細菌性條斑病的水稻葉片為研究對象,利用隨機森林算法基于高光譜曲線本身的光譜信息建立水稻細菌性條斑病早期檢測模型,并對特征波段重要性進行篩選,以提高識別性能和效果。
試驗水稻栽培品種選用2015年被農業部評為超級稻品種的南梗9108。種植前挑選飽滿種粒,浸種、催芽后,于2019年8月17日在南京農業大學植物保護學院溫室播種,采用盆栽式,共80杯,每杯6~8顆種子,均勻播種,管理方法相同。水稻出苗后,搬運到室外,在自然條件下生長。試驗采用的細菌性條斑病菌種由江蘇省農業科學院植物保護研究所提供,菌種為致病性強的B5-16病原菌,水稻細菌性條斑病病原菌培育圖如圖1所示。
2019年9月21日,水稻苗長到4葉期后,接種細菌性條斑病菌。將每株水稻苗的倒二葉葉片完全伸展,用酒精消毒的雙針頭棉花注射器均勻沾取準備好的菌液,將針頭口按住葉片,輕輕按動,使菌液通過壓力滲入到葉片細胞間隙內[21]。每片倒二葉首末兩端各接種一次,距離保持在8 cm左右,水稻接種后如圖2所示。
本試驗采用的推掃型高光譜成像系統(HSI-VNIR-0001, 上海五鈴光電科技有限公司)如圖3所示。采集軟件為Spectral-image成像軟件和HSI Analyzer分析軟件。高光譜系統采集的水稻葉片光譜波長范圍為373~1 033 nm,共616個波段。選用17 mm的成像鏡頭,確定物距為27 cm,亮度為200 lx,調節曝光時間8 ms使分辨率達到3 000像素。
水稻細菌性條斑病的潛伏期為3 d,前3 d接種點附近的葉片和健康葉片類似。由預試驗及植保專家確定,3~7 d為爆發期,在此期限內,細菌性條斑病會快速蔓延。由于設備與場地限制,試驗在病害早期的第3天和第7天進行離體拍攝,以6~8片離體水稻葉片樣本為1組放置在載物臺上進行成像,水稻葉片隨著載物臺勻速移動,高光譜成像儀獲取葉片每個像素在各個波長處的光譜信息和圖像數據。共獲得1 961個接種水稻細菌性條斑病病原菌的水稻葉片樣本的高光譜數據和400個接種蒸餾水的水稻葉片樣本的高光譜數據。
對高光譜儀器進行校正后再進行高光譜曲線采集,通過調節光強、圖像清晰度、圖像失真度來實現高光譜成像系統的校正。物鏡之間的高度、電控載物臺的移動速度和曝光時間都會影響圖像清晰度。為了減少噪聲信息對高光譜曲線的影響,進而提高光譜曲線定性或定量分析模型的穩定性和精度,需要對高光譜曲線進行黑白校正[16],采用HSI Analyzer分析軟件進行圖像處理。先對采集的光譜圖像進行校正,圖像校正公式為
(1)
式中R(i)——校正后的圖像相對反射率
Ir(i)——試驗光譜的原始圖像反射率
Iw(i)——白板校正后亮電流光譜反射率
Id(i)——黑板校正后暗電流光譜反射率
用水稻樣本感興趣區域(Region of interest, ROI)中的所有像素點的光譜平均值作為該樣本的平均光譜。
通過HSI Analyzer加載水稻樣本的高光譜圖像,放大水稻葉片的高光譜圖像,選擇接種條斑病病原菌葉片中心10像素×10像素的圓形感興趣區域,計算感興趣區域內所有像素點的平均光譜,作為水稻感染條斑病葉片樣本的原始高光譜數據。
常見的高光譜數據預處理方法有S-G卷積平滑[10]、多元散射校正[14](Multiple scattering correction, MSC)、標準正態變量變換[15](Standard normal variate,SNV)和一階導數法[17]。比較以上4種方法對染病水稻數據和健康水稻數據進行平滑處理的效果,得到經過S-G、MSC以及SNV處理后的光譜反射率基本保持了原始光譜曲線的走向,但效果不佳,而經過多元散射校正處理后的光譜曲線反射率保持在0~0.6的區間范圍內,曲線集中、輪廓清晰,處理效果較好,預處理后的光譜曲線如圖4所示。因此本文選定多元散射校正對數據進行預處理。
隨機森林(Random forest,RF)算法解決了決策樹創建不穩定、過擬合等問題,在分類精度上比單株決策樹有明顯的提高。此外,RF算法對比其他分類算法具有分類速度快和能夠處理高維數據等特點,而且對噪聲和孤立點不敏感,不存在過擬合等問題[22-23]。
將RF算法用于葉片高光譜數據集,數據集中的每行數據對應616個反射率和標簽,共2 361行。為保證試驗數據劃分的隨機性和一致性,將2 361行水稻葉片高光譜數據以8∶2的比例隨機劃分為訓練集和測試集[24],訓練集共1 889行水稻葉片高光譜數據,用于模型的建立與優化;測試集共472個水稻葉片高光譜數據,用于檢驗。
利用RF算法對1 889個水稻葉片高光譜數據進行訓練。一行葉片數據對應一個決策樹,在單棵決策樹進行分裂時,有3種方法可以選擇[25-26],分別為開平方、取對數和無處理,本模型選擇將波段數開平方取整,即從616個反射率中隨機選取24個反射率。用全波段反射率的熵和24個反射率的熵做差,算出24個反射率的信息增益。信息增益最大的反射率為這棵決策樹的根部節點,其余反射率按信息增益大小依次排列,作為其他非葉子節點,建成一個分類決策樹。按照以上步驟,生成大量的決策樹,建立基于RF算法的水稻細菌性條斑病識別模型。在構建RF算法時,有3個影響性能和效率的重要參數[27]:
(1)決策樹數量
設ntrees為森林中決策樹數量,即評估器數量。這個參數對RF算法的精確性影響是單一的。較多的子樹可以讓模型有更好的性能,但同時會使模型運行變慢。ntrees達到一定值后,RF算法的精確性往往不再上升或開始波動。對于這個參數,需要在訓練難度和算法效果之間取得平衡。
(2)葉節點樣本數
隨機森林是決策樹B的集合{T1(X),T2(X),…,TB(X)},其中X=(X1,X2,…,Xp)為分子描述符或與分子有關的p維向量。決策樹B產生輸出集合B={T1(X),T2(X),…,TB(X)},其中B(B=1,2,…,b)是第B棵樹對一個分子的預測,對所有樹的輸出進行聚合以產生一個最終預測,在本文水稻細菌性條斑病的識別模型中,是集成的決策樹的預測結果。
將水稻葉片的高光譜數據整理成一組含n個訓練分子的數據集D={(X1,Y1),(X2,Y2),…,(Xn,Yn)},其中Xi(i=1,2,…,n)是描述符向量,Yi對應的標簽是0或1,訓練算法步驟如下[28]:①從隨機水稻葉片訓練數據集D中抽取一個隨機樣本,即隨機抽樣,替換n個訓練分子。②對于每個bootstrap樣本,在每個節點上,隨機選擇隨機特征數mtry,在子集中確定最佳分割位置使樹長到最大尺寸(即不可能進一步分裂,停止生長)。③重復步驟①、②,直到(足夠大的數量)決策樹B長至足夠大,此時葉節點的樣本數為nestimators。
(3)候選特征子集
在決策樹生長過程中,所有的隨機特征數都在每個節點上測試其分裂性能,而RF算法只測試隨機特征數mtry。由于mtry通常非常小(軟件中的默認值是分類描述符數量的平方根),因此運行速度非??臁榱双@得具有最佳預測強度的模型復雜度,一般算法是通過交叉驗證對單個決策樹進行修剪,該過程計算量較大。但是,隨機森林不作任何修改。所以在水稻葉片的高光譜數據量非常大的情況下,RF算法可以比單個決策樹在更少的時間內被訓練。
根據RF算法原理[29],本試驗取mtry=p、在所有描述符中選擇每個節點的最佳分割點時,RF算法與Bagging相同。
水稻葉片的高光譜波長范圍為373.79~1 033.59 nm,共616個波段,不是每一個波段對隨機森林分類模型都能造成影響,對于重要性較小或者冗余波段,即使受到噪聲干擾,對分類結果也沒有影響。從616個光譜波段中篩選出對分類結果影響較大的光譜波段,用重要波段分類模型代替全波段分類模型,以此來簡化隨機森林分類模型,減少計算量。本文模型中對波段重要性的排序步驟如下[26]:①遍歷616個波段,利用袋外數據進行預測,將每個波段的預測誤差記為{E1,E2,…,Em}。②對袋外數據的某一自變量值進行干擾,再對袋外數據進行預測,將每個波段的預測誤差記為{E11,E12,…,E1m}。③干擾后的預測誤差與干擾前的預測誤差取差值,對m個差值取平均值,將每個差值與平均值比較,其相差越大則該波段的重要程度越高。
選取經過MSC預處理的健康和染病水稻葉片的高光譜數據,對兩種不同葉片的光譜曲線進行分析。水稻葉片樣本高光譜曲線如圖6所示。
在616個全波段水稻葉片高光譜數據中,對本文方法識別水稻細菌性條斑病有重要影響的波段是12個,其中10個均勻分布在第56號波長(429.27 nm)和第69號波長(442.55 nm)之間,即藍光波長(并不在上述范圍內)附近。
剩下2個波長為第301號波長(688.15 nm)和第302號波長(689.24 nm),驗證了圖6中水稻葉片樣本的健康高光譜數據與染病數據對比分析,因為在第275號波長(659.99 nm)附近,健康水稻葉片的光譜反射率到達谷值,與同波段染病的水稻葉片光譜反射率相比,差異明顯。
這12個波長均不在綠光波長(550 nm)附近。其他的101個波長也鮮有在綠光波長(550 nm)附近。
因為接種水稻細菌性條斑病病原菌的水稻葉片在發病前期,其細胞內部含有大量的葉綠素,在陽光的照射下呈墨綠色水漬斑點,與健康水稻葉片沒有太大區別。在綠光波長(550 nm)附近,染病水稻葉片的光譜反射率與健康水稻葉片的光譜反射率也重合,充分說明了在綠光波長(550 nm)附近沒有重要光譜的原因。
在藍光波長(450 nm)附近,由于藍光可以被水稻葉片中葉黃素吸收,轉給葉綠素進行光合作用,促進水稻生長,導致大量水稻代謝產物堆積在藍光附近,所以重要光譜基本出現在藍光波段附近。
試驗平臺為Windows10系統,16 GB內存,256 GB SSD,1TB HD,Intel QuadCore i7-8700, 4.2 GHz。采用scikit-learn 2.2和Python 3.7編寫算法,高光譜數據采用HSI Analyzer和Matlab 7.1軟件完成處理。
將預測正確的健康樣本數量記為TP,將預測錯誤的健康樣本數量記為TN,將預測正確的染病樣本數量記為FP,將預測錯誤的染病樣本數量記為FN[28-29]。采用精確率P、召回率R、綜合評價指標F1值、準確率A作為評價指標。
RF算法篩選出的水稻葉片的高光譜波長中一共有113個波長對基于隨機森林的水稻細菌性條斑病的分類模型有相關性影響。圖7為波長重要程度相關性分析示意圖。
由圖7可知,排序第1的波長是443.58 nm,其重要性分值為0.046 40。重要程度排序第1的波長(443.58 nm,第70號波長)到第11的波長(432.33 nm,第59號波長)對RF算法的重要性依次緩慢遞減。排序第12波長(659.99 nm,第275號波長)到第13波長(845.68 nm,第445號波長)對RF算法的重要性迅速下降。之后緩慢下降,此時的光譜波長的重要性已經很低,對RF算法分類水稻細菌性條斑病的影響不大。
從113個對本文模型有影響的波長中選取影響程度最高的前12個光譜波長,波長重要性排序見表1。

表1 波長重要性排序Tab.1 Band importance ranking
試驗選取邏輯回歸(Logistic regression, LR)、樸素貝葉斯(Naive Bayes, NB)、決策樹(Decision tree, DT)、k最近鄰(k-nearest neighbor, KNN)、支持向量分類機(Support vector classifier, SVC)和(Gradient boosting decision tree,GBDT)算法進行對比試驗,相關算法參數均為scikit-learn 2.2默認參數。
通過對比分析發現樸素貝葉斯準確率最低,只有74.27%(表2)。因為樸素貝葉斯模型在給定輸出類別的情況下,假設屬性之間相互獨立,這個假設在實際應用中往往不成立,當屬性個數比較多或者屬性之間相關性較大時,分類效果較差。相對邏輯回歸算法,RF算法的準確率提高了2.32個百分點,相對樸素貝葉斯算法,RF算法的準確率提高了20.97個百分點,相對決策樹算法,RF算法的準確率提高了1.94個百分點,相對KNN算法,RF算法的準確率提高了3.96個百分點,相對SVC,RF算法的準確率提高了3.66個百分點,相對GBT,RF算法的準確率提高了2.02個百分點。

表2 不同分類算法的準確率Tab.2 Accuracy of different classification algorithm
綜上所述,基于隨即森林的水稻細菌性條斑病識別方法的分類效果最優。
將427個測試水稻葉片樣本數據輸入訓練好的水稻細菌性條斑病識別算法中,健康樣本標簽為0,染病樣本標簽為1。
本文方法對全波段的分類結果的精確率為97.63%,召回率為95.15%,F1值為96.37%,準確率為95.17%。本文中的水稻葉片數據集不均衡,染病葉片遠遠高于健康葉片數量,F1值較高,從側面反映本文方法的精確性和穩定性較好。
使用隨機森林算法篩選水稻葉片高光譜重要光譜波段,提高模型的預測性能,將用于分類的波段數量從616個減少到12個,數量下降了98.05%,大大簡化了模型結構。
本文方法對12個波長分類的識別精確率為94.66%,召回率為99.55%,F1值為97.04%,準確率為94.32%。與全波段分類結果相比,精確率減少了2.97個百分點,召回率增加了4.4個百分點,F1值增加了0.67個百分點,準確率減少了0.85個百分點。雖然準確率有所下降,但是模型結構更加精簡,計算復雜度下降,模型精度基本保持不變。
(1)通過對水稻葉片全波段光譜曲線分析可得,水稻葉片光譜曲線總體呈上升趨勢,患病葉片光譜曲線在590 nm附近,達到高峰;之后開始緩慢波動,在650 nm附近開始下降,在680 nm附近到達谷值,染病水稻葉片的光譜反射率與健康水稻葉片有明顯差異;隨后迅速上升,在750 nm附近趨于平緩。在藍光波長(450 nm)和紅光波長(664 nm)附近,染病水稻葉片的光譜反射率與健康水稻葉片的光譜反射率差距較大。
(2) RF算法的分類準確率最高,為95.24%,相對LR、NB、DT、KNN、SVC和GBT算法,準確率分別提高了2.32、20.97、1.94、3.96、3.66、2.02個百分點。
(3)采用RF算法對基于全波段和基于12個重要波長的分類結果進行比較?;?2個重要波長的識別精確率為94.66%、召回率為99.55%、F1值為97.04%、準確率為94.32%,與全波段分類結果相比,精確率減少了2.97個百分點,召回率增加了4.4個百分點,F1值增加了0.67個百分點,準確率減少了0.85個百分點。雖然準確率有所下降,但是模型結構更加精簡、計算復雜度下降,模型精度基本保持不變。
(4)采用MSC對光譜曲線進行預處理,利用RF算法對細菌性條斑病高光譜影像識別的準確率均高于94%,可以實現對細菌性條斑病的快速識別。