鄭立華 王露寒 王敏娟 冀榮華
(中國農業大學現代精細農業系統集成研究教育部重點實驗室, 北京 100083)
利用計算機視覺技術對植物進行快速三維重建,獲取植株的形態結構,并進行表型參數無損測量,可以客觀反映植物生長狀況[1-2]和關鍵性狀[3-5],為揭示植物生命科學規律、提高分子育種研究水平、發展精確農業管理模式提供科學依據[6-10]。
由于植物生長的復雜性和隨機性,其三維模型的構建更為困難[11]。目前,基于溫室或室外自然光照條件下的農作物三維點云重構技術日趨成熟,在農業領域的應用也愈加廣泛和深入[12-17]。張慧春等[18]通過光學相機采集擬南芥植株的二維圖像序列,利用運動中恢復結構 (Structure from motion, SfM) 算法生成了三維點云;梁秀英等[19]采集不同視角下的玉米植株圖像,并利用基于SfM算法的Visual SfM軟件獲取玉米植株三維點云。以上研究側重于植物表型參數提取,利用匹配算法從時間系列的二維圖像中推算三維信息,并未針對植物三維點云進行自動化配準方法研究。郭彩玲等[20]利用地面三維激光掃描儀獲取蘋果樹冠層三維點云,結合標靶球輔助進行配準,該方法保證了一定的配準精度,但存在數據采集設備成本過高的問題。
以Microsoft Kinect 2.0為代表的消費級深度相機具有性價比高、性能穩定等優點,利用該設備更容易獲得高質量的三維圖像。三維成像也已成為低成本農業應用中傳感器設計、三維重建和表型分析[21]最具潛力的數據獲取解決方案。但三維重建過程繁瑣、復雜、費時費力,且三維點云配準精度得不到保證。KHOSHELHAM等[22]使用極線搜索方法將關鍵點從二維空間轉換到三維空間,并根據深度測量的理論隨機誤差給定三維點的權重,從而提高了三維數據的準確性。鄭立華等[23]通過引入初配準處理技術,獲得了較好的點云初始相對位置,使果樹精配準精度得到大幅提高。YE等[24]提出了一種利用顏色數據對深度數據進行配準的新方法,改進了迭代最近點(Iterative closest points, ICP)算法,并實現了更為準確的精配準精度。以上對三維點云重構技術的改進研究雖然未從根本上解決費時費力問題,但大大提高了點云配準精度。
單個Kinect一次只能從單視角對物體進行拍攝,無法獲得物體完整的結構信息。賈鶴鳴等[25]提出一種將農作物放置于轉盤上進行分角度拍攝的方法,將不同視角的點云按照原角度反轉補充到目標點云空間中。但該研究配準結果受人為因素影響較大,且人力成本較高。
為探索基于多片點云的作物自動化三維重建方法,本文以油麥菜為研究對象,提出一套配準效果評價體系和一種三維點云自動重建算法,以實現油麥菜點云的全局三維重構,為器官分割和表型參數測定提供參考。
如圖1所示,數據采集設備包括:計算機,Microsoft Kinect 2.0相機,直徑為40 cm的轉盤。在轉盤表面鋪設一層標記有旋轉刻度的漫反射白紙,白紙上標注了刻度,刻度間隔為22.5°。將油麥菜放置于轉盤中心,為了獲得視角清晰且質量較高的點云,將Kinect相機安裝在三腳架上,使其正對轉盤中心,調節鏡頭平面與轉盤表面中心呈45°,距轉盤表面的垂直高度為0.75 m。Kinect采集深度圖像時易受環境影響產生噪聲,在視野范圍內應減少反光物體。油麥菜品種選擇市面上常見的四季油麥菜(LactucasativaL. var.youmaicai)。
數據采集基于Ubuntu 18.04系統,配置Kinect相機驅動程序libfreenect2、PCL點云庫、Open3D庫[26]、ROS Melodic環境、Kinect的ROS接口工具和庫IAI Kinect2。IAI Kinect2提供了深度圖像和RGB圖像融合生成點云工具,能夠方便地保存實時深度圖像、RGB圖像和點云圖像,并且包含Kinect標定工具以減少點云顏色映射錯誤。
由于Kinect相機由位置不重合的彩色相機和深度(紅外)相機組成,造成RGB圖像和深度圖像存在一定視差,從而導致融合后的原始點云存在顏色映射問題。為了獲取高質量的原始點云數據,需要標定Kinect相機設備。針對一個5 mm×7 mm×30 mm國際象棋標定板,分別將Kinect相機置于距標定板0.6 m和1.5 m兩個水平距離處,以世界坐標系X、Y、Z軸為旋轉軸適度轉動相機,從多個視角共采集200幅完整輪廓的棋盤格RGB圖像、深度圖像、RGB相機和深度相機同步圖像,使用IAI Kinect2提供的標定工具對彩色相機和深度相機標定,計算轉換矩陣,以校正點云,同時抑制鏡頭畸變。
由于植物葉片位置及表面對光線的反射程度不同,以致單幀圖像往往不能獲取完整的數據,因此需要對同一視角下的多幀點云進行融合以獲得較為穩定的點云。本研究連續采集50幀同一視角下的點云,點云類型為PointXYZRGBA。對50幅點云的相同點的X、Y、Z坐標值和RGB值求平均,形成新的點云圖像,預處理后的點云有效減小了原始數據的噪聲對配準結果的影響。
將標記有刻度的轉盤(相鄰刻度夾角為22.5°)逆時針轉動,使RGB相機正對轉盤中心及刻度線端點,每隔22.5°采集50幅點云圖像,按以上方法進行數據融合,獲得當前視角下的1幅三維點云圖像,當轉盤轉過360°時得到16幅穩定的不同視角下的點云圖像。
然后,采用直通濾波法將植株點云從包含背景的原始點云中分離出來。通過查看植株的最小包圍盒,設置X、Y、Z軸方向的濾波尺寸為X(-0.2,0.2)、Y(-0.3,0.3)、Z(0.7,1.0),從而提取研究對象點云。
本文隨機選擇了12株油麥菜(定植10~29 d)進行試驗。為了進一步驗證本文算法的效果,使用同樣的方法采集了4株其他植物的三維點云數據,另外采用2組公共數據集的三維點云數據(http:∥graphics.stanford.edu/data/3Dscanrep/)進行驗證。
1.4.1點云初配準
初配準流程如圖2所示。首先使用下采樣方法分別計算并得到兩片點云中的下采樣點,隨后計算這些點的快速點特征直方圖 (Fast point feature histograms, FPFH)特征向量,基于Kd-Tree特征匹配算法匹配FPFH特征值從而獲取兩片點云之間的初步空間映射關系,繼而利用隨機采樣一致性(Random sample consensus, RANSAC) 算法提取映射關系,獲得源點云到目標點云的空間轉換矩陣,完成初始配準。
1.4.2基于ICP的點云精配準算法
對于經過初配準后的源點云source以及目標點云target,使用Dmax表示兩片點云中對應點最大距離,m表示迭代次數,則基于ICP的點云精配準步驟如下:
(1)若迭代次數小于m,則對每個在source中的點p,在target中找到距離其最近的點,距離小于Dmax的點集為本次迭代的對應點集。
(2)利用奇異值分解法(SVD)計算旋轉矩陣Rm和平移矩陣Tm。
(3)計算source旋轉平移后與target中對應點之間的均方誤差dm。
(4)更新源點云sourcem=Rmsourcem-1+Tm。
(5)當旋轉矩陣變化差值‖Rm-Rm-1‖2與平移矩陣變化差值‖Tm-Tm-1‖2均小于10-8或者|dm-dm-1|<10-8時結束迭代,否則返回步驟(1)。
ICP算法的輸出結果為精確配準矩陣以及配準誤差。
為了實現兩片油麥菜點云的自動化配準,本文在配準參數變化規律研究的基礎上提出了配準效果評價指標體系,包括重疊率、離散度及距離誤差。
1.5.1重疊率
配準能夠達到的最好效果是兩片點云相同的部分重合,不同的部分相互補充。可見,兩片點云重疊部分的內點數對配準具有直接影響。實驗發現,當兩片點云重疊率不小于30%時,即能保障對樣點云進行匹配關系提取后具有足夠的對應內點個數,而內點數越多,即公共部分點云面契合程度越好,表示源點云進行空間變換后與目標點云相同部分的重疊程度越大,一定意義上可說明點云配準效果越好。本文將內點占全部下采樣點的比值定義為重疊率,計算公式為
(1)
式中Pkey——源點云和目標點云中計算出來的所有下采樣點數
Pin——RANSAC匹配關系提取后計算出的兩片點云對應的內點總數
Roverlap——重疊率,%
為了保證足夠的內點數,同時又能保證配準算法的效率,本文將下采樣點數最小值定義為150,該設定值可以在不降低重疊率的前提下,保障較好的配準效率。
1.5.2離散度
單純計算重疊率還不足以保障配準精度,當下采樣點分布過于集中時,會造成局部下采樣點重疊率高而整體配準效果不佳的情況,此時會出現兩片點云部分重合但部分分層的現象。實驗發現,提純后內點之間的離散度越大,越能表現出點云的整體結構,點云配準效果越好。本文中,Kinect傳感器以豎直方向為軸逆時針旋轉拍攝油麥菜以獲取點云數據,因此將下采樣點的y坐標極差和z坐標極差之和定義為離散度,計算公式為
s=|ymax-ymin|+|zmax-zmin|
(2)
式中s——離散度,mm
ymax——y坐標軸方向最大值,mm
ymin——y坐標軸方向最小值,mm
zmax——z坐標軸方向最大值,mm
zmin——z坐標軸方向最小值,mm
1.5.3距離誤差
為保證精度,在RANSAC提純下采樣點匹配關系時需要計算兩片點云配準后對應點的距離誤差,即均方根誤差。距離誤差越小,表示配準效果越好。
式中D——配準距離誤差,mm
(xi,yi,zi)——配準后點云中對應點i的空間坐標,mm
(x′i,y′i,z′i)——配準后另一片點云中對應點i的空間坐標,mm
di——兩個對應點之間的距離,mm
n——采樣點數量,個
兩片點云配準過程中需要人工設置和調節的參數包括:點云下采樣算法中的體素尺寸,FPFH特征描述子計算算法中的搜索半徑和最大近鄰點值,RANSAC提純算法中的誤差閾值和ICP精配準算法中的最大對應點距離。參數的合理設置決定了配準效果。實驗發現,在不同拍攝距離和角度下,需要使用不同的參數才能獲得最優配準效果。為了解決手動調整參數費時費力、目測配準效果誤差較大等問題,本文研究了配準參數變化對配準效果的影響。
2.1.1下采樣算法參數
下采樣即對輸入的點云創建三維體素柵格,并將每個體素中出現的點近似為它們的質心或中心。分別估計下采樣前和下采樣后的油麥菜點云法線及FPFH特征值并進行初配準,同時基于ICP對完成初配準的兩片點云進行精配準。圖3a對比了下采樣前后的油麥菜點云配準消耗時間;圖3b則對比了下采樣前后的配準誤差,使用均方根誤差(Root mean square error,RMSE)作為評價指標。
圖3a中,Time1、Time2分別為下采樣前后初配準時間;Time3、Time4分別為下采樣前后總配準時間。圖3b中,RMSE1、RMSE2分別為下采樣前后初配準誤差;RMSE3、RMSE4分別為下采樣前后最終配準誤差。
分析實驗結果發現,下采樣能大幅節約初配準時間(RANSAC算法配準耗時),以致于其總配準時間(RANSAC與ICP算法總耗時)大大縮短。雖然經下采樣的點云在初配準階段配準誤差(RANSAC配準誤差)較大,但可通過后期ICP配準彌補精度,使得最終配準誤差(經ICP精配準后的誤差)在可接受范圍內。可見,下采樣處理可大幅縮短配準時間且可獲得相似的配準誤差。
合理的下采樣體素尺寸(Voxel size)對提升配準效率至關重要。實驗發現,體素尺寸越大,下采樣后保留的點云點數越少,其值決定了采樣后的點云是否具有穩定性和代表性。而且,體素尺寸的取值范圍為0.01~0.1時,具有較優的配準重疊率和均方根誤差。以0.001為步長,在0.01~0.1范圍內體素尺寸與初配準重疊率、RMSE的關系如圖4a所示;其與初配準時間及配對點對數之間的關系如圖4b所示。
配準實驗結果表明,RMSE隨體素尺寸的增大而增加,并逐漸趨于平緩,配準重疊率隨體素尺寸的增大而增加,配準消耗時間和對應點對數均與體素尺寸成反比關系,綜合考慮配準精度和配準效率,認為當體素尺寸取0.05時,點集穩定性和區別性最高。
2.1.2其他配準參數取值
FPFH用來描述點的某個鄰域內空間的幾何特征,鄰域選取是否合理,決定了FPFH描述子是否能夠準確地對下采樣點所在局部空間的幾何特征進行描述和區分。本文結合KNN和Radius Search計算FPFH特征值,包含搜索半徑和最大近鄰數兩個關鍵參數。實驗發現,當初始搜索半徑為5倍體素尺寸、最大近鄰數為100時,可保證初配準和精配準具有較優效果。在下采樣點數量和FPFH特征值有保障的前提下,初配準后續的工作主要是為了提高配準精度,實驗證明,RANSAC算法中的提純距離誤差閾值設置為1.5倍體素尺寸時(本文中提純最大迭代次數內置為1 000),即可為精配準提供良好的初始相對位置。
ICP算法中對應點距離閾值的合理設置能夠減少精配準過程中產生的錯誤對應點,提高配準精度和配準速度。實驗發現,當最大對應點距離閾值設為0.4倍體素尺寸時,可實現較高精度和效率的精配準。
兩片點云的自動化配準算法流程如圖5所示。
圖6為其中兩片油麥菜點云自動化配準的結果,圖6a為初配準后獲得的兩片點云的相對位置,即將原始源點云經最優初配準轉換矩陣轉換到原始目標點云空間后的結果,圖6b為經ICP精配準后獲得的最終配準結果。對比發現,初配準的兩片點云在葉片尖部未很好重合,存在錯位現象;而精配準后的點云在相同部位葉片重合度較高,可見精配準進一步優化了空間轉換矩陣,提高了兩片點云間的配準精度。
利用兩片點云自動化配準算法對16片原始點云進行兩兩配準,結果見表1中點云組1~8。初配準后點云距離誤差為2.02 cm,配準耗時0.441 355 s;而精配準后點云距離誤差減小到0.74 cm,配準耗時0.547 537 s,此時ICP只需幾次迭代即可達到預設精度,可見合理的初配準轉換矩陣對后續精配準結果至關重要。

表1 平均配準時間及精度對比
需要說明,人工調參有可能找到更好的初配準位置,從而獲得更高的配準精度,但需要投入大量的時間去反復嘗試。本文算法對點云的適應性很強,在保證配準精度的前提下,有效避免了人工調節參數盲目性大、不確定性高、耗時較長且不易達到最優精度等缺點。
為了減小多次迭代誤差累積,本文設計的配準流程見圖7。
點云序列Pij(i=0,1,2,3,4;j=1,2,…,16/2i)表示經過第i次配準后的第j幅點云圖像。對經過預處理后的16幅多視角點云進行第1階段配準,分別對點云P01和點云P02、點云P03和點云P04、…、點云P015和點云P016進行兩兩配準,得到8幅點云;第2階段對以上8幅點云按同樣的方法兩兩配準,得到4幅點云;第3階段對上述4幅點云進行兩兩配準得到2幅點云;最后對2幅點云配準完成全局重建,以上共經歷15次配準。
1株油麥菜各個階段的平均配準時間以及平均配準誤差如表1所示。本文獲取的原始點云圖像中,每片點云包含7 000~11 000個點,對16片多視角點云全局配準后得到的全局點云圖像平均包含139 021個點,即在油麥菜三維重建后,點云點數增加10倍以上。自動配準過程總消耗時間平均約為44.05 s,配準誤差均值約為0.65 cm。結果表明,在保證配準誤差精度的前提下,隨著后續配準點云數目的累加,配準耗時大大增加,其中ICP精配準耗時占配準總時間比重大幅上升。但點云點數的增加并沒有影響算法配準精度和最終配準結果,說明本文自動化三維重建算法對不同點云的適應性較強,可實現不同視角下油麥菜點云的自動化三維重建,在保證配準精度的前提下大大節省了人力和時間。
對采集的16片點云圖像兩兩配準得到第1階段配準結果(圖8a),基于第1階段結果兩兩配準得到第2階段配準結果(圖8b),重復以上步驟得到第3階段配準結果(圖8c)以及最終配準結果(圖8d)。
在全局配準過程中,點云數目隨著配準階段增加呈2n級增長,配準效率大大降低,但配準誤差維持在0.4~0.8 cm之間,在可接受的范圍內。
為了進一步調查逐一累加點云配準和本文自動化配準方法的區別,在原始點云中隨機挑選4組相鄰點云進行配準,每組包含4片點云(由于傳統累加點云配準方法往往會由于點云數量過多而導致配準精度過低,配準失敗,本文選擇4片點云進行不同方法的配準比較),結果顯示1~4組的傳統遞增式算法配準誤差分別為4.44、3.52、4.19、4.61 cm,自動化配準算法配準誤差分別為0.64、0.69、0.54、0.69 cm。使用本文算法進行油麥菜三維重建時,平均匹配誤差由遞增式配準時的4.19 cm降至0.64 cm,說明誤差被均勻地分散到不同視角的點云配準中,從而削減了多次迭代引起的誤差累積,保證了油麥菜三維重建的精度。
為驗證該算法適用于多種形態油麥菜,對隨機選取的12株樣本進行了三維重建,結果如圖9所示。結果表明,本文算法具有一定魯棒性,但在葉片分層和葉片遮擋問題上還需要進一步優化。此外,為驗證本文算法適合于其他植物,對Kinect采集的4株其他植物的點云進行了自動化三維重建,結果如圖10所示,經統計配準誤差分別為0.76、0.53、0.61、0.68 cm,平均誤差為0.65 cm。最后,對The Stanford 3D Scanning Repository中的公共點云數據Armadillo[27]和Stanford Bunny[28]進行了重建,結果如圖11所示,配準誤差分別為0.61 cm和0.54 cm。結果表明,本文算法適用于多種物體的點云重建,并且當數據采集精度足夠高時在配準中可有效避免葉片分層現象,并可應用于不同生長階段的油麥菜重建,具有一定的魯棒性。
(1)由實驗可知,RANSAC-ICP算法在相鄰兩片點云初配準、精配準過程中,其關鍵參數與配準效果之間存在確定的變化規律。
(2)提出的評價指標體系綜合了算法效率和配準精度,并能夠以此為算法控制條件實現兩片點云的自動化配準,最終配準誤差小于0.8 cm,配準消耗時間不超過0.6 s,有效避免了人工調節參數盲目性大、耗時較長且不易達到最優精度等問題。
(3)提出的油麥菜點云自動化三維重建方法減少了因多次迭代引起的誤差累積,其自動全局配準過程總消耗時間平均約為44.05 s,配準誤差均值為0.65 cm。本文算法為基于油麥菜三維點云的器官分割與表型無損測量奠定了基礎,可為其他作物的三維重建及表型研究提供參考。