葉少挺,吳子朝,梁森苗,鄭可鋒,祝利莉,胡為群,彭一輝
(1.浙江省農業科學院,浙江杭州 310021;2.杭州電子科技大學,浙江杭州 310058)
一種基于Unity3D的虛擬楊梅三維修剪系統
葉少挺1,吳子朝2,梁森苗1,鄭可鋒1,祝利莉1,胡為群1,彭一輝1
(1.浙江省農業科學院,浙江杭州 310021;2.杭州電子科技大學,浙江杭州 310058)
本文基于Unity3D平臺,提出了一種虛擬楊梅三維修剪系統的實現方法。該方法重點解決了場景模型組織、切割求交、重新三角化、知識展示等問題,設計和實現了修剪教學、標準修剪和自由修剪等功能。試驗表明,系統功能完善,有較好的擬真度和交互性,可以滿足在Internet上發布和實時傳輸的要求,在推廣中也獲得了較好的評價。
Unity3D;楊梅;虛擬修剪;建模
對楊梅進行適當的整形修剪,有利于培養結構合理的豐產樹型,促進幼樹營養生長向生殖生長轉化,提早進入結果期,且可改善樹冠的通風透光條件,減少病蟲害的發生,有利于提升果實品質[1]。在實際生產中,種植者往往很難快速掌握修剪的技術和要訣,會由此導致修剪效果不佳,影響楊梅的生長和采收。
虛擬楊梅三維修剪系統(簡稱系統)利用計算機圖形學和互聯網絡技術,模擬一系列高仿真、可自主學習的虛擬楊梅植株場景,提供一種方便的可多次模擬、反復練習,以掌握先進修剪技術的新方法[2]。用戶可在系統中一邊自主修剪,一邊學習相關科學知識,最終過渡到實際生產中的楊梅修剪操作[2],達到快速學習和掌握楊梅修剪實用關鍵技術的系統目標。
系統采用基于Web的虛擬現實技術,面向Internet發布。用戶通過Web瀏覽器訪問系統,使用鼠標鍵盤可360°觀察虛擬楊梅植株,并進行枝條修剪等交互操作。其修剪操作滿足如下要求:準確、快速地拾取待剪枝條;修剪過程具有實時性;用戶界面友好,人機交互過程符合真實的人工修剪操作等[3]。
1.1 平臺選擇
目前,基于Web的虛擬現實開發工具主要有WebGL,Unity3D,VRML,Quest3D,Virtools, Cult3D等。其中Unity3D是由Unity Technologies開發的一個功能強大的集成游戲引擎和編輯器,它可以通過簡單的用戶界面迅速高效地創建對象、導入外部資源,并可通過簡單的拖拽操作實現諸如變量賦值,連接腳本等操作。目前,Unity3D以其優越的框架已在眾多三維可視化應用系統開發中用作支撐平臺。經過綜合考慮,本系統采用Unity3D平臺進行開發。
1.2 功能設計
系統擬提供以下功能模塊。
修剪教學。提供修剪入門教程。包括如何使用鼠標選取枝條,選擇合理切割位置和切割方向等信息。
標準修剪。本模塊對用戶行為有一定的限制性和引導性。當用戶使用鼠標滑過待剪枝條時,系統會將該枝條高亮顯示,同時提示枝條類型和修剪位置等信息,并在修剪完成后提示修剪原因和相關技術知識,逐步引導用戶修剪出標準的楊梅樹型。
自由修剪。是“標準修剪”的進階功能,對用戶行為無限制。用戶可以沿任意方向對枝條進行自主修剪,修剪過程中系統不作任何提示,直到修剪完成后才會給出相關評價。
2.1 場景模型組織
為了保持楊梅植株逼真的視覺效果,同時降低系統負擔,系統使用面片建模法,在3D MAX中構建具有較少面片數但不影響真實感的植株模型[4]。
根據現實中楊梅植株的枝條層次關系和修剪規范要求,植株模型被分解成若干個子模型,如圖1所示,標號為②的二級主枝與③④號子枝條作為一個子模型被創建,該子模型的形態在術語中被稱為“直立枝”。在“標準修剪”模塊中這個“直立枝”模型將被整體高亮顯示并參與修剪運算。

圖1 植株模型的組織關系
模型組織完畢后,導入到Unity3D中,分別通過具體設計賦予其材質、光照等屬性,并添加交互事件和相關知識等接口,方便具體操作過程的交互和提示,具體流程如圖2所示。

圖2 虛擬場景構建的流程
2.2 修剪算法
修剪算法是系統實現的核心部分。為了逼真地實現枝條修剪操作,系統采用鼠標拖拽的方式來模擬該過程。
當用戶在虛擬場景中點擊鼠標并拖拽時,采用光射投射算法確定該射線同網格的具體相交點和拖拽方向,并根據該相交點和拖拽方向確定相交平面。然后將該平面與相交的模型作求交,并采用基于八叉樹的數據結構來加速該求交過程,得到三角形內的切割位置。如圖3所示,當用戶使用鼠標在模型上作切割之后,通過射線與模型求交,會得到一系列與線條有相交的三角形列表。隨后,采用Delaunay三角剖分的策略來重新網格化。具體Delaunay策略描述如下。

圖3 植株模型切割的示意圖
(1)找出面片內待插入的頂點(與邊有相交的頂點),將該點與該多邊形內其他點相連,從而生成一系列新的三角形。
(2)由2個公共邊組成的四邊形進行判斷,如果其中有一個三角形的外接圓包含第4個頂點,則將這個四邊形的對角線進行交換。
(3)對新的頂點,迭代(1)(2)步,直到對所有新插入的點都做好三角化。
具體細節如圖4所示:給定一個三角形(頂點以a,b,c來表示)(圖4中a),如果在e,f處將該三角形切割分開(圖4中b),則通過任意連接一條邊,假設為a,f,計算其外接圓,判斷是否包含其他點(圖4中c),通過優化最終將邊a,f優化為e,c(圖4中d)。

圖4 Delaunay三角化過程
2.3 知識集成
為了讓用戶快速有效地掌握楊梅修剪技術,系統在相關模塊中集成相關栽培知識,并在修剪過程中全方位實時展現。
這些知識存儲在一系列的XML文件中,并通過Unity3D自帶的GUI框架顯示。系統預加載和解析XML內容信息后,通過判斷鼠標位置和相關事件,觸發顯示事件。

圖5 “標準修剪”模塊的知識集成
系統開發完成后,相關實驗在一臺普通PC(Intel Celeron E3300 2.5GHz/2GB/IE8/電信寬帶4 Mbps)上進行。
速度試驗。如首次通過Internet訪問系統,其響應時間平均為5~6 s,而再次訪問時間可縮短到2~3 s;訪問一些較大場景的響應時間平均在3~5 s;通過鼠標旋轉、縮放、平移和修剪操作響應較實時,基本感覺不到等待時間,其算法效率較高(模型擁有三角形面數55 180個)。
功能試驗。系統使用了一個典型的成年東魁楊梅植株模型,在這個模型上實現了修剪教學、標準修剪和自由修剪等功能模塊,部分修剪效果見圖6。

圖6 修剪前后植株形態的比較
系統存在局限性。在“自由修剪”功能模塊中,植株模型枝條在三維空間呈縱橫交錯之勢,如果用戶在視野較遠的情況下進行修剪,其動作形成的平面可能會與不同緯度的多個枝條同時形成交集,導致修剪算法較難準確判斷修剪目標枝條,容易對非目標枝條造成“誤傷”。
現階段實現精確修剪的操作規范。用戶需先使用鼠標中鍵拉近與目標枝條的距離,然后通過鼠標左鍵在修剪部位做小范圍的手勢動作來完成。圖7展示了2種修剪方式的比較。
然而,此局限性并不影響系統的功能完整性和擬真度,因為現實中種植者一般只對距離較近的單根枝條進行操作。

圖7 “自由修剪”模塊的鼠標動作
兼容試驗。因為Unity3D平臺具有優秀的兼容性,系統在IE,Safari,Firefox和Chrome等主流版本的瀏覽器下均能流暢運行。
安全試驗。項目組使用Web安全測試工具IBM Security AppScan對系統進行了掃描實驗,發現中高風險0個,低風險6個,參考建議21個,表明系統的安全性較強。
推廣試驗。科研人員已將該系統推廣到5個鄉鎮,共計培訓種植者1 253人,受訓人員評價該系統操作直觀,可反復練習,對掌握楊梅修剪關鍵技術要點有較大幫助。
本文提出了一種使用Unity3D平臺來虛擬楊梅修剪操作的方法,可以有效模擬實際生產中的修剪操作,能夠滿足Web用戶實時交互性的需求[4],是數字農業與傳統農業研究相結合的一次協同創新,在現階段具有一定的先進性和探索性,但系統的實用性仍有待進一步提高。
隨著虛擬現實技術的進一步發展和推廣,本方法將得到更多面數、更高逼真度和更優秀算法的支撐,預期可以在農業實用技術推廣和科研領域得到更廣泛的應用。
[1] 謝志亮,吳振旺.浙江省四大楊梅良種及主要栽培技術[J].溫州農業科技,2011(12):26-29.
[2] 田世平,苗良.模擬果樹修剪系統研究[J].農業網絡信息,2006(2):32-38.
[3] 林定,陳崇成,唐麗玉,等.基于顏色編碼的虛擬樹木交互式修剪技術及其實現[J].計算機輔助設計與圖形學學報,2011,23(11):1799-1807.
[4] 張倩倩,淮永建.網絡環境中虛擬樹木的建模和實時渲染研究[J].計算機仿真,2009,26(2):259-262.
(責任編輯:高 峻)
TP 391.7
:B
:0528-9017(2014)10-1632-03
文獻著錄格式:葉少挺,吳子朝,梁森苗,等.一種基于Unity3D的虛擬楊梅三維修剪系統[J].浙江農業科學,2014(10):1632-1635.
2014-06-12
浙江省農科院科技創新能力提升工程項目(2012R28Y01E03);國家公益性行業(農業)科研專項經費(201203089)
葉少挺(1979-),男,助理研究員,從事農業信息技術與數字農業研究工作。E-mail:ysting@mail.zaas.ac.cn。