楊猛,丁曙,馬云濤,謝佳翊,段瑞楓
(1.北京林業大學信息學院,北京 100083;2.國家林業草原林業智能信息處理工程技術研究中心,北京 100083)
隨著農業信息化的不斷發展,我國以現代信息技術和可持續發展的農業專業知識為主體形成了新型農業[1],計算機技術在農林領域的必要性和重要性日益增強,植物病害的模擬也成為計算機圖形學領域的熱點研究之一。
植物病害的種類繁多,形態各異。從視覺角度看,病害表觀特征包含幾何形狀、紋理特征、顏色變化等屬性,且植物作為生命體其表觀會隨時間和環境的改變而變化。從現實角度看,實現植物病害的模擬,可為廣大農業從業者提供直觀的信息參考,從而對發生的病害進行預判并及時做出處理。同時,病害的模擬為農業教學提供了極大的便利,學生可足不出戶了解病害侵染過程,增強課堂的趣味性,也有利于更好地普及相關基礎知識和專業技術方法。此外,也可將病害模擬應用于游戲場景、影視廣告等。
目前,國內外對病害模擬的研究,主要集中在對病害過程外觀變化和形狀變化的模擬上;也有對物體老化、腐蝕、生銹等的模擬及對物體表面紋理特征的模擬。
以植物為研究對象進行模擬,MIGUEL等[2]開發了基于數字圖像處理的控制系統,其中用HSV(hue-saturation-value)彩色系統模擬了煙草制作過程中植物顏色的變化;JEONG等[3]用生物學建模方法對樹葉在失水時產生干枯萎縮引起的形變過程進行了模擬;苗騰等[4]提出用細胞紋理基函數和shell模型相結合的方法實現對植物葉片在病害狀態下的模擬;苗騰等[5]通過單張圖像提取病斑動態特征信息,用可視化方法實現病害擴散模擬;趙春江等[6]提出一種基于生理因子的植物葉片表觀模型,通過控制葉綠素、胡蘿卜素和葉片結構參數等生理因子,實時調整葉片表觀;范東芳[7]用反應擴散模型和結合細胞力學的質點彈簧模型分別對真菌性輪紋病和生理性日灼病進行仿真;SUN等[8]提出一種多元線性回歸的植物圖形識別系統,將區域增長方法和真實彩色圖像相結合。
此外,DESBENOIT等[9]用非物理方法,提取了真實圖片中的裂縫并對其進行三維建模;YIN等[10]用蟻群優化算法模擬木材受微生物感染后隨時間變化而發生老化的過程;CHANG等[11]基于物體的幾何形狀和環境因素模擬金屬生銹的擴散過程,提出了模擬海水中黑色金屬生銹變化過程的改進模型;GOBRON等[12]提出通過作用于多層次材質上的3D元胞自動機方法處理裂紋與裂縫,提高了模擬效果的逼真性;OGASAWARA等[13]模擬了不同環境條件下物體表面苔蘚的生長狀態;鄭娜等[14]提出一種利用Simplex噪聲繪制游戲中高效率火焰的方法。
本文以小麥常見的3種銹病為例,從計算機圖形學的角度提出基于紋理特征的作物病害擴散動態模擬方法,對小麥在感染條銹病、葉銹病、稈銹病后的表觀變化進行模擬。根據前期調研建立病害侵染模型,針對不同銹病類型的特點,考慮溫度和濕度2個外部條件對病害侵染速度的影響,實現對病害從前期到后期擴散的動態變化全過程模擬,為病害模擬研究提供新思路。值得注意的是,因為我國農業信息化起步相對較晚,病害模擬作為農林業與計算機的交叉學科,現有的針對性研究不多,可供參考的內容相對較少,增加了研究的難度。目前大多以物體的腐蝕、銹蝕、老化等為研究方向,生成靜態的模擬結果。同時,因病害種類繁多,病因與病癥各不相同,如要對不同的病害進行可視化模擬,因過程算法較為復雜,易導致渲染時間過長,運行效果不穩定、效率低下,病害模擬困難。本文方法的重點是研究小麥銹病表觀紋理的變化,通過簡化生長模型,穩定且快速地實現動態過程可視化,為其他常見病害類型的模擬提供參考。
麥類銹病由柄銹菌屬的銹菌引起,此銹菌是轉主寄生的,可產生性孢子、銹孢子、夏孢子、冬孢子、擔孢子5種類型孢子。擔孢子不能侵染麥類作物,隨風傳播至寄主植物薔薇科,在此類植物葉片表皮上產生性孢子,性孢子與受精絲通過受精作用進行質配,最終產生銹孢子。銹孢子隨風傳播至小麥,在小麥葉片表皮形成夏孢子堆。夏孢子經傳播繼續危害麥類作物,生長后期形成冬孢子堆,越冬后萌發,經核配、減數分裂產生擔孢子,從而形成循環[15]。在此過程中,肉眼可見的表觀變化主要在夏孢子期與冬孢子期。
本文對小麥銹病的模擬研究主要包括病癥表觀模擬和侵染過程模擬兩部分。病癥表觀模擬,通過前期對麥類銹病相關的數據收集和特征調研,用遮罩貼圖標記3種銹病不同的危害區域,用Simplex噪聲實現對病斑即孢子堆的形態模擬;侵染過程模擬,根據小麥銹病病菌的傳播和侵染特點,建立病斑擴散模型和顏色變化模型,完成連續的動態變化過程模擬,用OpenGL著色器進行圖像渲染,實現可視化。方法總體結構如圖1所示。

圖1 總體結構示意Fig.1 Overall structure diagram
小麥銹病的3種類型在紋理特征上既有相同點也有不同點[16]。相同點是葉稈、葉鞘和葉片在夏孢子期均會出現黃斑并褪去綠色,在冬孢子期多為黑色瘡斑。不同點是條銹病和葉銹病主要危害小麥的葉片部分,稈銹病主要危害小麥的莖稈部分。條銹病和葉銹病的夏孢子堆呈鮮黃色或橘紅色,條銹病成行排列,葉銹病分布散亂,稈銹病差別較大,為較大褐黃色斑點[17]。病發初期多是單片小麥受到感染,逐漸擴散至整個麥田[18]。3種小麥銹病的表觀紋理特點如表1所示。對銹病的病癥表觀模擬分為銹病危害區域標記和病斑形態模擬兩部分。

表1 小麥銹病表觀紋理特征Table 1 The texture characteristics of wheat rust
1.2.1 銹病危害區域標記
在選擇銹病類型后,為能在小麥模型上精準定位病斑侵染的位置而不引起沖突,用遮罩貼圖對3種病害類型的危害區域進行遮罩,給出判定標記。用紅色(R)、綠色(G)和藍色(B)分別標記條銹病、葉銹病和稈銹病的發病部位,因葉銹病與條銹病的危害區域均在葉片上,重疊部分顯示為黃色。而對不發病的部位,如小麥麥穗部分用黑色標記。遮罩貼圖與普通紋理貼圖形狀相同,在模型中的綁定位置相同,但在圖像渲染時不顯示。根據小麥模型的紋理貼圖,得到對應的遮罩貼圖,如圖2所示。

圖2 貼圖類型Fig.2 Texture type
當用戶選擇模擬的病害類型后,遮罩貼圖中的R、G、B通道也隨之確定,根據已設定的標記,確定病害侵染區域。
1.2.2 病斑形態模擬
小麥感染銹病后,病原菌孢子堆破壞小麥葉片或莖稈,前期病部出現鮮黃色、紅褐色或褐色的夏孢子堆,后期生成黑色的冬孢子堆[19]。由于孢子堆的隨機性,以及較為密集的圓點型分布特點,用Simplex噪聲模擬孢子堆,使其呈現病斑形態。對得到的噪聲結果進行3次疊加優化,在疊加過程中適當更改相關參數,以達到較為逼真的模擬效果,結果如圖3所示。

圖3 噪聲結果示意Fig.3 Schematic diagram of noise result
Simplex噪聲[20]是一種在Perlin噪聲[21]基礎上基于單形晶格的梯度噪聲。相較于Perlin噪聲,Simplex噪聲的算法復雜度較低,可大范圍隨意延伸擴展,其復雜度為O(n2),低于Perlin噪聲。模擬過程分5步實現,分別為坐標偏斜、找到頂點位置、梯度值選擇、逆變換頂點和貢獻度求和[22]。
Perlin噪聲的晶格為正方形,而Simplex噪聲的晶格為單形,即以最簡單的形狀鋪滿整個空間。本文使用的三維Simplex噪聲,單形為四面體,將乘法轉換為求和運算[23],生成的噪聲更自然。
第1步坐標偏斜。將n維空間中的頂點P(x、y、z)變換至傾斜空間的P′(x′,y′,z′),公式為

其中,β1為頂點變換至傾斜空間的傾斜變換參數,n取3。
第2步找到頂點位置。對輸入坐標向下取整,得到頂點所在的超立方體,公式為

同時,計算小數部分,分別設為xf,yf,zf,公式為

通過比較xf,yf,zf的大小,按降序排列,確定輸入頂點所處的單形位置。
第3步梯度值選擇。從偏斜后的超立方體網格中獲取各個頂點的偽隨機梯度向量,用g表示。
第4步逆變換頂點。將單形頂點變換回之前單形所在的網格,公式為

其中,β2為更新后的傾斜變換參數,n取3。
第5步貢獻度求和。頂點的貢獻值Cv由徑向衰減函數計算得到:

其中,dot()為矩陣乘法函數,d為輸入頂點到偏斜后頂點的距離向量,g為該點存儲的偽隨機梯度向量,R2為常量,取值為0.5或0.6,取0.5時可保證噪聲的連續性,取0.6時能得到更好的視覺效果。
由于條銹病、葉銹病和稈銹病的孢子堆在顏色、大小上均存在差異,通過設置2個噪聲參數調整疊加過程中的噪聲結果,提高銹病模擬的逼真度。2個參數分別為S1和S2,其中,S1表示噪聲尺寸的范圍,S2表示噪聲的強度。通過調整參數改變噪聲呈現形態的原理是,在定義的噪聲函數3次疊加過程中,通過縮放、偏移和調節強度,使得到的噪聲結果發生變化,但本質上并沒有改變噪聲生成過程的算法。此外,由孢子堆類型改變噪聲較強處的顏色,即改變孢子堆積較為集中部位的顏色,達到更為逼真的模擬效果。疊加計算公式為

其中,Nj為優化后的噪聲點,snoise()為噪聲處理函數,N0為優化前的原始噪聲三維分量。以此進行3次疊加,S1和S2的值每循環一次累乘一次。
直接通過界面設計(UI)調整不同病害下的2個噪聲參數,觀察模擬的相似程度,記錄最恰當的參數值,如表2所示,并將其封裝于最終的模擬程序。

表2 3種小麥銹病的噪聲參數值Table 2 Noise parameter values of three wheat rusts
1.3.1 病害侵染模型
除受感病性、銹病病菌的致病性和栽培管理3個因素影響外,小麥銹病的感染程度主要受濕度和溫度2個環境因素的影響[24]。濕度,3種小麥銹病均喜潮濕,多雨多霧天氣利于銹病發生。溫度,通常條銹病發病最早,在春季發病,葉銹病次之,稈銹病最遲。目前對小麥銹病的影響因子只有定性描述,本文基于前期調研總結,提出一個關于小麥銹病擴散的定性模型,作為模擬銹病侵染小麥動態過程的理論依據。
用vw表示小麥銹病擴散速度,aw表示小麥銹病擴散的平均加速度,t表示擴散時間,建立小麥銹病擴散關系模型。忽略其余因素,設aw只受濕度(降雨量)和溫度影響,有

其中,a1,a2分別為溫度、降雨量的影響系數,T為環境溫度(℃),H為平均降雨量(mm),ε為其他因素對侵染加速度造成的隨機誤差,實際運行中可忽略不計。
參考楊恩玉等[25]小麥條銹病在不同環境條件下嚴重程度的相關數據,用0.5~2.0表示由輕至重的程度,對其進行多元線性回歸分析,得到擬合公式,該公式僅在一定范圍內表示小麥銹病的擴散。根據回歸分析結果,在不違背病原學原理的前提下,當a1為0.013,a2為0.014時,得到的侵染過程效果較符合肉眼觀察速度。本文中,溫度和降雨量為2個可調整數值的交互滑塊,不考慮銹病因環境因素停止侵染的臨界情況,可將此模型用于觀察在不同溫度和濕度條件下從夏孢子期到冬孢子期病害侵染的快慢。
1.3.2 病害侵染算法
在建立的病斑侵染模型基礎上,提出病斑侵染算法,以模擬小麥銹病從夏孢子期到冬孢子期的動態變化過程,算法流程如圖4所示。在選定模擬的病害類型和病害期后,通過改變遮罩貼圖中RGB 3種顏色分量的分布,確定發病位置,在著色器中調整作物模型指定位置的表面貼圖,以半徑逐漸增大的球形作為病斑侵染作物的動態擴散路徑,在實際代碼運行中展現病斑侵染的動態效果。

圖4 算法流程Fig.4 Algorithm flow
定義dS為一個vec4類型的數組,用于存放不同發病起始位置的種子點,包括該種子點的三維坐標x,y,z和當前時間下的發病半徑w。為更貼近實際情況,dS數組的容量設為10,即在同一時間,可設置多處發病點,展現病源的非單一性。以病源種子點O為例,模擬的病害侵染動態過程簡化為以O為球心,球半徑,即模擬范圍隨時間增長而增大,如圖5所示。當按下軟件中的暫停按鈕時,模擬停止,球半徑不再增大。

圖5 擴散范圍示意Fig.5 Schematic diagram of diffusion range
紋理貼圖轉化為噪聲貼圖的判斷在頂點著色器中完成。設置值dI表示發病程度,其值為0~1,將此值傳遞給片元著色器,以決定此面片的貼圖是否為病害噪聲貼圖。
定義浮點型數值r:

其中,dP為存放當前點的數組。
由式(9)可知,當前點距離種子點越近,r越接近于1,反之,r越接近于0。由此通過smoothstep函數對恰處于發病半徑上的點進行篩選,r與dI的關系為

即當r為0.5時,dI為0.5,否則,在發病 半徑內 的點dI為1,半徑外的點dI為0(用clamp函數取整)。再將dI值傳遞給片元著色器,參與噪聲貼圖的疊加計算,在發病范圍邊緣,噪聲貼圖呈半透明狀。此步驟完成后,執行可視化過程。
1.3.3 病斑顏色變化模型
采用關鍵幀線性插值方法模擬銹病在侵染作物過程中病斑顏色的變化。如表1所示,從夏孢子期到冬孢子期,3種小麥銹病危害部位的病斑顏色均有所改變。選取感染初期、夏孢子成熟期、冬孢子成熟期3個關鍵時期,從真實圖像中提取孢子堆的主要顏色,將其記錄在顏色特征向量Ci中,為令顏色變化過程平滑,用線性插值展現相鄰顏色特征向量Ci與Ci-1的病斑顏色特征,畫面每渲染一次,顏色更新一次。線性函數式為

其中,Ci為當前渲染幀的顏色向量,t為從開始到結束的病害模擬運行時間,dt為每幀更新的時間。
3種小麥銹病模擬效果如圖6所示。可知,3種小麥銹病的模擬效果均較理想,與條銹病、葉銹病、稈銹病真實圖片相比,能夠較好地展現不同銹病的形態特征。圖7為3種銹病侵染過程中危害區域的病斑及顏色變化,能夠較為連貫地體現小麥銹病從夏孢子期至冬孢子期的動態發展過程。

圖6 3種小麥銹病模擬效果比較Fig.6 Comparison of simulation effects of three wheat rusts

圖7 銹病染病過程Fig.7 Infection process of wheat rust
小麥條銹病孢子堆形成的條狀病斑的分布特點、顏色等均與病害真實圖片相似,與葉脈平行,以條狀形態擴散,前期為虛線狀,后期連接成行。葉銹病的夏孢子堆呈橘紅色、不規則排列的圓形或橢圓形病斑,夏孢子期至冬孢子期產生黑色冬孢子堆。稈銹病發病主要在莖稈部位,初期形成散生、褐黃色的夏孢子堆,后期連接成大斑,長出鐵褐色乃至黑色粉皰狀的冬孢子堆。在模型中,直觀性不及葉片部位。通過對比截圖與真實狀況,發現兩者較為相似,模擬效果較好。
為進一步說明本文銹病模擬效果的有效性,編制了《小麥銹病模擬效果調查問卷》,在收到的115份有效問卷中,被調查者年齡集中在18至40歲。問卷主要以李克特五級量表為評估工具,要求用戶將3種小麥銹病的模擬效果圖與真實圖進行比較,用直觀感受進行相似度選擇。由收集到的問卷知,小麥條銹病的模擬效果最受認可,葉銹病次之,稈銹病最后。統計結果如表3所示。

表3 模擬效果用戶反饋Table 3 The user feedback on simulation effects
由于銹病的發病作物較多,包括禾谷類、豆類等常見作物,用本文方法可模擬更多作物銹病的發生過程,從而獲得一個全面的作物銹病發病模擬軟件。但方法仍然存在許多局限性,結合問卷反饋意見,總結如下:
(1)算法中設置的病害擴散方式為球形,故病害在發病部位的擴散范圍必須是連續的,雖然在整體模擬過程中可以較為準確地描述病害擴散的過程和趨勢,但若具體到一張葉片上,孢子堆的擴散過程則較為分散,而本文用球形擴散方法模擬的病害形狀較為規整,與真實情況中的病害擴散有所區別。
(2)在真實情況下,病害的傳播與擴散形態受周圍土壤環境、鄰近生物群、天氣、時間等多種因素影響。但本文主要從計算機模擬表觀紋理變化的角度探究,只考慮環境溫度與濕度對銹病侵染速度的影響。同時,模擬開始后,無法實時修改2個影響因子的值。但實際情況下,環境溫度與濕度是不斷變化的,且環境溫度與濕度對銹病侵染過程病斑形態的變化也有影響。由于缺乏實際情況下小麥銹病的相關專業性農業數據與圖像資料,經簡化后的模型雖體現了普遍性,表征效果較好,但模擬過程的精準度與現實情況仍有一定區別。
(3)本文僅對孢子堆形成的病斑進行模擬,且主要為平面特征,未能很好地呈現孢子堆凸起的立體效果。且在實際情況下,因為病害的侵染,植物本身也會發生相應的變化,如葉片失綠、萎縮、干枯等。
(4)稈銹病的模擬效果較其他2種稍顯不足,危害區域范圍較小,孢子堆與小麥稈的對比不明顯,模擬的效果受限,未能很好地模擬孢子堆攀附于稈表面的狀態。
實現了3種小麥銹病的表觀形態模擬以及病害侵染植物動態過程的模擬,方法整體復雜度適中,在視覺上能較好地為使用者提供借鑒,運行效率較高,為病害模擬研究提供了新的思路。
本文方法目前適用于小麥銹病,如何優化整體算法使其適合更多類型的病害模擬,提高算法的普適性是今后要解決的重點問題之一。
有多種常見于小麥的病害,在表觀上與小麥銹病發病后有所相似,可借鑒銹病的模擬方法,對這些病害進行模擬,從而實現對多種病害的模擬。通常,植物病害具有共同的特點:表面病斑呈特定形狀,且隨機分布,病斑的顏色、外形與作物原本的外形差異較大。具備這些特點的病害類型均可借鑒本文模擬算法的思路,通過修改噪聲類型、顏色、強度、形狀與疊加次數等,得到相應的模擬算法。例如小麥白粉病[26],發病時小麥的葉片及葉鞘上出現白色霉點,白色霉點分布隨機,亦由真菌引起,擴散過程與銹病相似,可借鑒銹病模擬的思路,通過噪聲貼圖的方法進行模擬。另外,可利用更換貼圖的方法對小麥葉枯病[27]進行模擬。小麥葉枯病在發病初期葉片上出現卵圓形淡黃色斑點,后迅速擴大,形成不規則黃褐色大斑,最后整株葉片枯死,過程與銹病相似。找到不同類型病害形態與分布的相似性,并對其進行分類,在掌握核心算法的基礎上,進行優化調整,得到靈活性更高、應用范圍更廣的病害模擬算法。