陳富強,周學成,2,李一海,楊自尚,王高峰,閆露露
1.華南農業大學 工程學院,廣州 510642
2.南方農業機械關鍵技術與裝備教育部重點實驗室,廣州 510642
根系是植物的重要組成器官,其形態構型決定了植物吸收水分和養分的能力。目前對植物根系測量與分析技術的研究大都集中在基于二維圖像的根系平面構型參數的測量與分析,專門針對原位根系的三維構型參數檢測與分析的研究則少見報道。其主要原因在于土壤等介質的阻隔限制了對根系構型的直接觀測,以及根系本身的復雜性和重疊性也加大了根系精確測量的難度[1-2]?,F有的相關研究工作主要集中在原位成像技術、圖像處理和三維可視化等方面,而對基于原位空間序列圖像數據,尤其是原位斷層序列圖像數據的利用大都停留在三維可視化階段,對三維根系的定量描述和分析方法的研究則明顯不足。RootReader3D軟件是美國康奈爾大學在2011年開發的,該軟件可以獲取根系的三維重建模型,并對根長、最大水平寬度、最小水平寬度、最大垂直深度等27個測量參數進行分析[3]。但其測試的根系樣本是生長在培養液中的水稻根系幼苗,這與實際土壤生長環境有極大的差別,所以獲取的參數不具備絕對的參考意義。諾丁漢大學開發的RooTrak軟件,它通過對虛擬根切片中每一個根截面進行追蹤來從土壤中獲取到完整的植物根系模型。但該軟件只是實現了三維根系的可視化,并不能測量根系參數[4]。德國的Dagmar van Dusschoten等人開發了NMRooting軟件,該軟件以MRI獲取的圖像作為數據源進行三維可視化,并計算了一些根系整體參數。但該軟件對于細小根系獲取不到理想結果。且測量精度也有待提高[5]。為了實現原位根系三維構型參數的無損檢測,筆者所在的課題組在國家自然科學基金和“863”計劃等科研項目的資助下,相繼開展了基于XCT技術的植物根系原位成像方法、CT序列圖像的處理與分析方法、原位根系的三維可視化重建方法、原位根系三維矢量模型構建等一系列的相關研究工作。在此基礎上,設計開發了以CT序列圖像為數據基礎的植物根系三維構型測量系統,以期為相關研究人員提供一個可視化的三維根系構型分析平臺。
本系統是借助Qt、ITK、VTK三大開源工具包開發完成的。主要由序列圖像分割、三維重建、矢量模型構建以及根構型參數測量四大功能模塊構成。原型系統的總體設計框架如圖1。

圖1 總體框架設計
系統所使用到的開源庫都具有不同的作用。其中Qt是一款跨平臺C++圖形用戶界面開發框架,其完全面向對象,很容易擴展,并且允許真正的組件編程[6]。能夠為系統提供良好的圖像交互界面。VTK是一個開源、跨平臺的圖形圖像應用函數庫[7]。利用VTK可以完成三維圖像可視化功能。ITK提供了一個圖像處理、分割與配準的算法平臺[8]。可以為系統圖像處理、分割等算法提供支持。整個軟件框架是基于Qt完成的。其示意圖如圖2。

圖2 VTK、ITK、Qt結合示意圖
流水線是一種ITK和VTK特有機制,其是以數據處理為中心,將算法和數據對象分開考慮。這種機制有助于將大量不同的算法結合到一起。這種機制的表示如圖3。

圖3 流水線示意圖
Source、Filter和Target分別表示3種不同的抽象算法對象,它們的意義分別是:
Source為流水線的起點,沒有輸入,產生至少有一個輸出。主要作為流水線的數據源。
Filter為負責對數據對象進行處理,可以有一個或多個輸入,產生一個或多個輸出。其具有GetOutput()輸出接口和SetInputData()輸入接口。
Target為流水線的終點,只有輸入沒有輸出。具有SetInputData()接口。
信號槽機制是Qt的核心機制,該機制可以實現對象與對象之間的通信,降低模塊之間的耦合性。該機制的使用需要自定義類繼承于QObject,并且在類內開始位置引用了Q_OBJECT宏。通過簡單例子來說明信號槽機制。現在有一個按鈕和對話框,其類圖如圖4。

圖4 QPushButton和QDialog類圖
其中按鈕類(QPushButton)有信號clicked();進度對話框類(QProgressDialog)有槽函數exec()。當按鈕被點擊會發出一個clicked()信號給進度對話框,激活進度對話框的exec()函數,彈出一個模態對話框。整個過程可以由一個協作圖表示,如圖5。

圖5 對話框彈出協作圖
軟件在開發過程中同時融合了這兩種機制,以保證既可以簡化數據處理過程,又可以降低模塊之間的耦合度。其主要思路為:用Qt封裝ITK和VTK類以提供信號與槽的功能。同時實現了VTK、ITK中作為算法對象的接口setInputData()和getOutPut()。使得這些Qt類也可以作為流水線算法的一部分加入。下面通過一個讀取圖片顯示的實例來描述這種機制:現有ImageReader的Qt類和ImageViewer的Qt類,其類圖如圖6。

圖6 ImageReader和ImageViewer類圖
其中圖像讀取類(ImageReader)封裝了一個VTK讀取類(vtkPNGReader),并定義一個信號iGotImageData;圖像顯示類(ImageViewer)封裝了一個VTK顯示類(vtkImageViewer2),并定義了一個槽函數iLikeImage-Data();當圖像讀取類讀取到了一幅圖像會發出一個iGotImageData信號給圖像顯示類,并激活一個槽函數iLikeImageData()實現圖片的顯示。整個過程的協作圖如圖7。

圖7 圖像讀取與顯示的協作圖
這個過程中將圖像讀取和顯示的算法抽象成為兩個算法對象,簡化了處理過程;又可以使用Qt信號槽機制在算法對象之間傳遞數據,降低耦合性。
本系統在開發過程中涉及到多個算法。為了提高算法效率,在實現過程中引用了一些設計模式的規則進行設計。這里簡要介紹幾個最為關鍵的算法。
三維重建是實現根系可視化的重要環節,也是后續參數測量的重要依據。重建過程分為體重建和表面重建兩類重建方式,每類方式又有基于不同原理的重建方法。因此該算法具有較高的復雜度。為了提高算法的效率與靈活度,在實現過程中采取了工廠模式[9]來設計算法。重建算法的結構圖如圖8。
結構圖的詳細說明如下:
BaseReconstruction:這是三維重建的基類,包含了兩個純虛成員函數:setPipLine()、getProp()。其中setPipLine()函數表示的是重建流水線算法。根據重建方法的不同,其內部算法的實現也會有所不同。該函數的具體實現由其子類中的同名函數完成。getProp()函數可以獲取重建結果對象。
BaseSurfaceReconstruction:表面重建基類,繼承于BaseReconstruction。該類包含一個成員變量:actor,該變量用來表示表面重建得到的結果;兩個成員虛函數:setPipLine(),該函數封裝了部分表面重建的流水線算法。GetProp(),該函數返回表面重建的結果。
BaseVolumeReconstruction:體重建基類,繼承于BaseReconstruction。該類包含一個成員變量:volume,該變量用來表示體重建的結果;兩個成員虛函數:setPipeLine(),該函數封裝了部分體重建的流水線算法。GetProp,該函數返回體重建的結果。
ContourFilter:基于平面輪廓的表面重建方法?;驹硎牵菏紫葟拿總€切片或斷層輪廓中提取感興趣輪廓曲線,再將這一組輪廓曲線重建為三維物體形態[6]。setPipLine()中封裝了該重建方法的流水線算法。
MarchingCube:基于移動立方體的表面重建方法?;驹硎牵褐饌€處理數據場中的立方體(體素),分類出與等值面相交的立方體,再采用插值計算出等值面與立方體的交點。將獲取的交點以一定方式連接成等值面,作為該立方體的一個逼近表示[10-12]。setPipLine()中封裝了該重建方法的流水線算法。

圖8 重建算法結構圖
VolumeTexture:基于紋理映射的體重建方法?;驹恚簩⒚總€坐標軸方向的切片圖像作為二維紋理保存至圖形硬件緩存中,在光線投射時,選擇與當前視線方向垂直的一組紋理圖像,在硬件中進行插值和合成運算以實現體繪制。getPipLine()中封裝了該重建方法的流水線算法。
FixedPointVolumeRayCast:基于光線投射的體重建方法?;驹恚合驁D像平面的每個像素發射一條沿視線方向的射線,在射線穿過體數據集時按照一定的步長采樣顏色值和不透明度。然后累計每條射線上的顏色值和不透明度直至光線被完全吸收。getPipLine()中封裝了該重建方法的流水線算法。
Reconstruct3D:工廠類。包含一個成員函數:createReconstructMethod()。該函數可以根據不同的需求創建不同的重建算法對象。
植物根系的矢量模型主要包括提取根系骨架和根節點屬性值兩方面內容。其是植物根構型參數測量最為重要的基礎模型,好的矢量模型可以提高構型參數的測量精度和運算效率[13-16]。矢量模型構建算法實現流程圖如圖9所示。

圖9 矢量模型算法流程圖
流程圖的詳細說明如下。
(1)構建初始根節點:根節點構建需要獲取根節點的中心坐標以及對應的根截面面積。在三維可視化模型的基礎上,使用重切器對模型進行重切來獲取其根節點的三維坐標和面積。由于重切器角度以及截面輪廓不規則導致獲取的根節點位置和面積存在一定的誤差,所以通過該步獲取的根節點稱之為初始根節點,有待進一步減小誤差。
(2)構建初始根分支:前一步獲取的根節點集合只是一個空間散點集合,為了提取到根系矢量模型,需要對這些空間散點進行分組來構建根分支。具體分組策略是采用空間連通性和最短路徑作為分組依據,并將面積變化率、偏轉角閾值作為約束條件來提高空間散點分組的正確率。
(3)重構根節點和根分枝:為了糾正初始根節點的位置偏差,以根分支為處理單元進行三次B樣條擬合。擬合得到一條光滑的根分支曲線,來替代那些有偏差的根節點。通過該重構步驟,基本消除根節點的位置偏差。為獲取到精準的根系矢量模型做準備。
(4)獲取根節點屬性:在獲取到根節點的精確坐標值后,需要進一步補充根節點的面積、周長、圓率等基本屬性值。獲取屬性數據的方法是使用重切器沿著根分支曲線的切向量進行二次重切。對得到的重切截面圖像進行分析提取有用參數。
(5)判定根分支關系:該步驟是建立根分支的拓撲結構。根據根構型的特點,其結構近似于一種樹形結構,每個根分支節點都有一個父節點和n個子節點。根據其結構特點采用了樹形數據結構來保存根分支。并設計一種遍歷算法,從主根出發依次向下遍歷,以連通性和最短路徑為約束條件進行根分支關系的判定。
(6)補充根節點:在一些根分支位置根節點較為稀疏,為了提高根構型參數測量精度,需要通過插值的方法對根分支部分進行節點補充。
參數計算是系統的核心功能,本系統實現了根數、根長、根表面積、根體積、根夾角5種參數的測量。下面對一些核心參數計算原理進行介紹。
3.3.1 根體積和表面積
同一根分枝相鄰根節點之間的根段可近似為圓臺(圖10),因此可以分別使用圓臺體積和側面積公式計算相鄰根節點之間的根段的體積和側面積[17]。

圖10 根段示意圖
相鄰根節點間根段體積公式如下:

相鄰根節點間根段側面積公式如下:

根分枝體積和表面積分別為相鄰根節點間根段的體積之和以及側面積之和,分別如式(4)和式(5)。

3.3.2 根夾角
定義1(根夾角)設子根分枝根心線在起始端點處的切向量為V1,父根分枝根心線在相應分叉根節點處的切向量為V0,則V0與V1的夾角θ即為根夾角(圖11)。需要注意的是V0和V1都必須和根分枝的生長方向一致[18]。

圖11 根夾角示意圖
V0與V1的數量積如式(6)所示。

由式(6)可得根夾角ψ計算公式為:

本系統是在Windows 10(64 bit)系統上借助Qt應用程序開發框架進行設計開發的。其設計主要目的是實現根系構型參數的無損和自動化檢測,輔助根系研究人員的研究。軟件系統主界面如圖12所示。其中標號1為菜單和工具欄,用于提供快捷操作;標號2為文件瀏覽器;標號3為圖像瀏覽器,用于顯示序列圖像;標號4為三維圖形瀏覽器,用于顯示重建模型和矢量模型;標號5為屬性欄,用于顯示參數測量結果;標號6為狀態欄,用于顯示圖形圖像的拾取坐標。

圖12 系統主界面
構型參數測量的具體操作流程如下:
步驟1對原始序列圖像進行分割獲取分割數據源。
步驟2以分割后的序列圖像作為數據源進行三維重建以獲取根系的可視化模型。
步驟3使用重切技術對根系三維模型重切獲取其根系的根節點以及相對應的屬性值;以此為基礎構建根系矢量模型。
步驟4利用矢量模型并根據構型參數的計算方法來計算根系的各種參數。
矢量模型的保存格式為.rvm格式(軟件自有格式)。這樣對于已有矢量模型的根系樣本可以直接通過步驟4獲取根構型參數。
系統測試環境為聯想p50移動圖形工作站,其操作系統為Win10(64 bit)。測試目的是為了驗證系統中三維模型和矢量模型構建算法實際效果。并將獲取的構型參數測量結果與手工測量結果做對比來驗證參數測量的精確度。
為獲取對比數據,本文采用了一系列傳統方法來獲取根構型參數。如:采用排沙法獲取根系體積;采用染色液蘸根法獲取根系表面積。采用直接截獲法獲取根系總長度。
本文采用了兩組測試樣本,分別是生長在有機基質中的榕樹和梔子幼苗根系圖像。圖像由工業CT設備獲取。主要掃描參數為:管電壓80 kV,管電流1 mA。經過掃描,獲取到分辨率為512×512的16位斷層序列圖像。對原位CT序列圖像經過適當濾波、插值和三維封裝預處理后用作圖像分割數據源。
對封裝后的樣本數據使用三維區域生長法進行分割。其中種子點通過系統的坐標拾取器來確定。樣本分割結果被保存為分辨率為512×512的8位png序列圖像。
對分割后的序列圖像進行三維重建。重建采用移動立方體法。設置其等值面參數為128。重建完成后對模型進行孔洞修補,設置其孔洞填充最小尺寸參數為10。最后生成的三維重建模型如圖13。

圖13 榕樹苗三維重建結果
在三維模型的基礎上提取其矢量模型,首先對三維體數據進行重切獲取根系骨架節點。重切間隔參數設置為0.5 mm。通過連通性分組獲取根系拓撲結構。連通性限制條件相鄰節點最大間距設置為7 mm。最后生成的矢量模型如圖14所示。其中紅色線條表示根系骨架,綠色為矢量模型,藍色分枝表示當前被選中分枝。

圖14 榕樹苗矢量模型
以樣本矢量模型為數據源,根據根系參數的計算公式獲取整根和各根分枝構型參數。參數結果在屬性欄中顯示。效果如圖15。

圖15 榕樹苗參數測量結果
原型系統所測量的三維構型參數值與對應手工測量值如表1所示。由表可知,根分枝數、根總長、根總表面積以及根總體積的測量誤差分別為4.55%、2.10%、6.26%、1.02%。

表1 榕樹苗總體參數對比結果
本次實驗的另外一組樣本是梔子幼苗,對數據進行三維封裝、分割、重建并進行矢量模型提取,獲得的結果如圖16。

圖16 梔子苗重建模型和矢量模型
原型系統所測量的根構型參數如圖17。

圖17 梔子苗參數測量結果
原型系統所測量的三維構型參數值與對應手工測量值如表2所示。由表可知,根分枝數、根總長、根總表面積以及根總體積的測量誤差分別為0%、4.1%、2.91%、1.68%。

表2 梔子苗總體參數對比結果
由上述測試與分析結果可知,原型系統基本滿足了設計需求。系統參數測量結果與手工測量結果有一定誤差主要因為根系表面較為粗糙造成了一系列偽根心點。后續將繼續完善偽根心點剔除算法以進一步提高測量精度。
本文介紹了植物根系三維構型測量系統的設計目標、整體框架以及關鍵算法。在根系可視化的基礎上提出并實現了一種具有可行性的根系矢量模型構建方法,并以此模型為依據實現了原位根系構型參數的自動測量。目前該系統尚處于原型階段,系統的穩定性有待繼續完善。系統所采用的根構型參數測量方法有待繼續通過大量實例來進行論證。
:
[1]羅錫文,周學成,嚴小龍,等.基于XCT技術的植物根系原位形態可視化研究[J].農業機械學報,2004,35(2):104-133.[2]張常玲,周學成,李駢臻.土壤中植物根系的層析成像檢測試驗[J].光學應用:中英文版,2014(2):19-24.
[3]Clark,Randy T,Curdy M,et al.Three-dimensional root phenotyping with a novel imaging and software platform[J].Plant Physiology,2011,156(2):455-465.
[4]Mairhofer S,Tracy S R.RooTrak:automated recovery of three-dimensional plant root architecture in soil from XRay microcomputed tomography images using visual tracking[J].Plant Physiology,2012,158(2):561-569.
[5]Van D D,Metzner R,Kochs J,et al.Quantitative 3D analysis of plant roots growing in soil using magnetic resonance imaging[J].Plant Physiology,2016,170(3):1176-1188.
[6]霍亞飛,程梁.Qt5編程入門[M].北京:北京航空航天大學出版社,2015:1-2.
[7]張曉東,羅火靈.VTK圖形圖像開發進階[M].北京:機械工業出版社,2015:170-192.
[8]周振環,鄭小中,趙明.三維圖像編程實驗[M].北京:電子工業出版社,2011:82-86.
[9]程杰.大話設計模式[M].北京:清華大學出版社,2011:67-72.
[10]Heeraman D A,Hopmans J W,Clausnitzer V.Three dimensional imaging of plant roots in situ with X-Ray computed tomography[J].Plant and Soil,1997,189(2):167-179.
[11]胡占利.基于VTK的醫學圖像三維重建及交互研究[D].哈爾濱:哈爾濱工程大學,2008.
[12]陳郁淦,周學成,羅錫文,等.基于ITK和VTK的原位根系三維可視化研究[C]//中國農業工程學會2011年學術年會論文集,2011:1164-1168.
[13]李一海.植物根系三維矢量模型的構建與分析方法[D].廣州:華南農業大學,2016.
[14]Kuijken R C,van Eeuwijk F A,Marcelis L F,et al.Root phenotyping:from component trait in the lab to breeding[J].Journal of Experimental Botany,2015,66(18):5389-5401.
[15]田緒紅,李志垣,韓國強,等.基于橫截面算法的三維植物根系圖象骨架生成方法[C]//第十二屆全國圖象圖形學學術會議論文集,2005:655-658.
[16]李駢臻,周學成,張常玲,等.基于骨架模型的植物根系三維構型可視化方法[J].計算機工程與設計,2014,35(11):3913-3917.
[17]陳郁淦.植物根系三維可視化分析系統的研究與實現[D].廣州:華南農業大學,2012.
[18]Ralf M,Anja E,van D D,et al.Direct comparison of MRI and X-ray CT technologies for 3D imaging of root systems in soil:potential and challenges for root trait quantification[J].Plant Methods,2015,11(1).