陳國軍,張清偉,李開悅,曹 岳
(中國石油大學(華東) 計算機與通信工程學院,山東 青島 266000)
隨著計算機視覺技術的發展,三維重建技術的應用越來越廣泛,可應用于軍事、生活等各個領域。通常三維重建更多的是以人體、地形、室內環境等為目標,其形狀規整,特征突出,重建相對容易。但是相對于樹狀結構物體,其顏色單調,結構復雜,特征提取困難,而且枝干較細的部位測得的深度數據不完整,重建的模型精度差。樹狀物體是大自然中普遍存在的事物,對于農業、林業等領域有重要的研究價值。樹狀物體的三維模型能夠更好、更方便地應用于各方面的研究,因此對樹狀物體進行三維重建有著重要的研究意義。
三維重建的方法主要有基于圖片的方法和基于深度數據的方法。Martin提出使用物體輪廓的方法進行三維重建[1],該方法通過多個角度的輪廓圖像獲取三維模型,因為沒有深度信息,所以無法重建帶有凹面的物體;立體相機的出現解決了無法重建凹面的問題,立體視覺法[2-4]需要通過計算兩幅圖像的視差才能得到物體與相機的距離,計算量大。微軟推出的Kinect深度相機可以直接得到物體的深度,而不需要通過復雜的計算,而且Kinect SDK可以直接將獲取的深度數據轉化為三維點云模型,操作方便。但是Kinect獲取的深度數據存在大量噪聲,要進行數據預處理后才能使用?;谏疃葦祿娜S重建包括深度數據的獲取、深度數據預處理、點云配準等步驟。通常數據預處理的方法是對深度圖像應用雙邊濾波[4]及其改進算法[5-7]進行濾波處理后再重新映射到空間進行修復,但是由于樹狀物體噪聲分布廣泛,而且對于枝干部位數據丟失問題應用上述方法不能達到預處理的目的。何東健等[8]使用密度分析的方法對植物點云進行去噪,該方法可以去除離群點噪聲和高頻噪聲,但是沒有解決枝干數據缺失的問題。
ICP算法[9]是由Besl和Mckay提出的一種經典配準算法,如今依然應用廣泛。由于ICP算法是一個最小迭代的過程,直接使用ICP算法進行點云配準容易達到局部最優[10-11],從而導致配準不準確,所以配準通常分為粗配準和精確配準兩部分。粗配準可以使兩個點云模型擁有較大的重疊區域,為精確配準提供一個良好的初始位置,精確配準時才能夠達到全局最優。基于特征點匹配算法是常用的粗配準算法,針對不同的重建物體,特征點的提取方式不同。曲率與法向量是常用的特征提取的約束條件。嚴劍鋒等[12]根據擬合曲面的曲率提取特征點,楊小青等[13]通過主曲率特征獲取初始對應點集,用高斯曲率和點間距離雙重約束查找精確匹配點對。使用曲率與法向量提取普通物體的特征能夠達到很好的效果,但是對于樹狀物體,由于其結構相似,使用該方法效果不明顯。鄭立華等[14]使用FPFH特征描述子對蘋果樹進行特征點提取,并使用RANSAC算法進行特征匹配,該方法同樣是以法向量與曲率作為屬性進行特征提取,針對于葉片較大的植物配準效果差。邵小寧[15]使用圓形標定物作為配準時的特征點對樹狀物體進行粗配準,該方法需要額外的標定物,操作復雜。
綜上,文中使用Kinect深度相機,針對樹狀物體深度數據的缺失問題,提出應用彩色目標圖像修復深度數據的方法。借助于彩色圖像,該方法能夠解決枝干部位數據間斷的問題,同時也可以修復物體的邊界噪聲,使數據更完整。針對樹狀物體粗配準過程中的特征點提取問題,提出使用物體邊界點作為特征點進行配準,該方法能夠為ICP精確配準提供良好的初始位置,從而提高配準精度。
由于相機的精度問題,采集到的數據中含有大量的離群點和孔洞。尤其對于樹狀結構物體,其枝葉連接部分經常出現數據的缺失問題,使得重建出的模型不完整。所以數據預處理是三維重建的首要過程。
由于重建目標是單個物體,而非整個場景,所以目標提取是一個重要的過程。目標提取包括彩色圖像目標提取與深度數據的目標提取。
2.1.1 彩色圖像目標提取
彩色圖像目標提取是指將待重建的目標物體從彩色圖像中分離出來。文中使用Grab Cut算法[16]進行目標提取,該方法需要指定物體外圍的矩形邊框并進行初始化,然后通過迭代算法優化GMM模型得到最終的提取結果,如圖1所示,記點集C為提取目標的像素集合。

圖1 彩色圖像目標提取結果
2.1.2 深度數據目標提取
深度數據目標提取是指將待重建的點云模型從場景中提取出來。文中使用直通濾波器[17]進行目標提取,該方法需要設置一個深度值d0作為截斷閾值,利用式1進行點云目標提取計算,提取效果如圖2所示。
(1)

圖2 深度數據目標提取結果
由于Kinect深度相機測量不準確,點云模型中會出現一些孤立點,也稱作離群點。這些離群點在點云修復及后期的配準階段都會產生負面影響。文中使用RadiusOutlierRemoval濾波器[17]去除離群點,濾波器要設置兩個參數,一個是搜索半徑,另一個是閾值參數。如果在搜索半徑范圍內擁有的鄰域點個數小于閾值參數,則這個點就被當作離群點去掉。
去除離群點之后,使用彩色目標圖像來優化目標點云模型。如果彩色圖像中存在目標像素值而深度數據不存在,可以通過映射矩陣將彩色圖像坐標映射到空間坐標,映射矩陣可以通過相機標定的方法計算得到,具體步驟如下:
(1)獲取彩色目標像素點集C與目標點云模型P;
(2)遍歷C和P中的每一個點ci和pi,根據對應坐標關系進行判斷,如果ci存在而pi不存在,則pi作為待修復點存入點集Q;
(3)計算Q中每點的深度值zc,zc可由該點的鄰域點通過線性插值得到;
(4)計算映射矩陣M,根據Q中每點的深度值及對應的彩色坐標計算該點在空間坐標系中的坐標,通過式2~4計算映射矩陣M。
Zc=
(2)
即
(3)
消去Zc后得到兩個方程:
(4)
令m34=1,方程一共有11個未知數,使用最小二乘法求解超定方程組,得到11個未知參數的解,最終得到空間坐標與像素坐標的轉換關系。通過式5可以計算像素坐標對應的空間坐標。
(5)
通過以上方法,可以對原始深度數據進行修復。修復效果如圖3所示??梢钥闯觯摲椒ㄐ迯土酥Ω刹课蝗笔У臄祿?,同時解決了邊界噪聲產生的數據丟失問題,提高了數據的完整性。

圖3 深度數據修復結果
由于深度相機每次只能獲取一個面的數據,所以如果要得到完整的表面數據需要獲取多個視角的數據,然后將不同視角的數據經過點云配準匹配到同一視角坐標系中,得到完整的點云模型。為了提高配準的精度,點云配準通常需要經過粗配準和精確配準兩個步驟。
粗配準是配準過程中重要的一步,如果粗配準能夠為精確配準提供一個良好的初始位置,才能避免精確配準時的局部最優問題。粗配準主要通過特征點匹配來計算變換矩陣,特征點的選取直接影響粗配準的精度。文中針對樹狀結構物體的特性,提出使用邊界點作為特征點進行匹配,然后使用匹配的特征點對計算變換矩陣。
3.1.1 計算曲率
點云中每一點的曲率都可以根據其鄰域點計算得到。首先根據鄰域點通過最小二乘擬合局部二次曲面,然后根據擬合得到的曲面方程計算該點的兩個主曲率k1、k2,平均曲率H與高斯曲率K。
K=k1·k2
(6)
(7)
3.1.2 點云邊界提取
通常點云邊界區域相鄰點的深度值有較大的深度差,而非邊界區域相鄰點的深度值具有連續性,變化不明顯,根據這一特征可以提取點云模型的邊界,具體步驟如下:
(1)針對點云模型P中的每一個點pi(i=1,2,…,n),其中n為P中點的個數,獲取pi的四鄰域點集Ni中每一點的坐標,其中i=1,2,3,4;
(2)計算pi到其四鄰域點距離的最大值pmaxi;
(3)設定閾值α,如果pmaxi>α,則將pi作為邊界點進行提取。
應用上述方法對點云模型進行邊界提取,效果如圖4所示。

圖4 點云邊界提取
3.1.3 點云邊界特征點匹配
由于一點處的曲率并不會隨著旋轉平移變換而改變,所以應用曲率屬性進行特征點匹配。應用上述算法將B1、B2作為提取的兩個點云模型的邊界點集,B1、B2中的任意點為b1i、b2j(i=1,2,…,m;j=1,2,…,n),其中m、n分別為B1、B2中點的個數。由于平均曲率與高斯曲率不會因為坐標的改變而變化,保證了特征點對的存在,可以計算其平均曲率與高斯曲率,并規定向量s為兩個曲率共同組成的一個二維的屬性向量。計算B1、B2中所有點的屬性向量s1i、s2j(i=1,2,…,m;j=1,2,…,n)。Tonimoto距離不僅考慮了兩個向量的角度相似性,而且考慮了兩個向量的距離相似性。對B1中每個點的屬性向量s1i,通過式8逐個計算其與B2中每個點的屬性向量的Tonimoto系數Toi。設定一個閾值,計算B1中每個點的最小Tonimoto系數min(Toi),如果min(Toi)在閾值范圍內,則提取對應的特征點作為匹配點對,否則繼續B1中下一個匹配點的搜索,一直到遍歷完B1中所有的點。最后根據得到的匹配點對通過單位四元數法求取旋轉矩陣R與平移矩陣T。
(8)
經過粗配準之后,兩個點云模型有了很大的重疊區域,這時使用ICP算法進行精確配準可以得到最終的平移變換矩陣。但是由于點云模型分辨率高,點云比較密集,直接使用所有點去做配準會影響配準的效率,可以對原始點云模型先進行精簡然后再進行配準。為了提高效率,文中采用體素網格的精簡方法[18]對點云進行精簡。將點云模型劃分成n*n*n的網格模型,計算其每個網格中所有點的平均坐標值,用這一點的坐標來代替網格中所有點的坐標,這樣就達到了精簡的目的。應用精簡后的點云模型通過ICP算法進行精確配準得到最終的旋轉平移矩陣。
為了檢驗該算法的實驗效果,使用的設備配置為I7 6700CPU,32 G內存,GTX1080顯卡,Kinect 2.0深度相機;使用的開發工具有VS2013,PCL開發庫,OpenCV開發庫;實驗1使用的數據為玉蘭樹數據,實驗2使用的數據為桂花樹數據。
應用以上設備及提出的方法對原始點云進行目標提取后的結果如圖5(1)所示,可以看出兩個點云模型差別很大。使用文中方法對兩個不同視角的點云進行粗配準后得到旋轉矩陣R與平移矩陣T,點云模型的配準結果如圖5(2)所示,可以看出兩個點云模型已經有了很大的重疊區域。傳統方法使用曲率的極值點作為特征點進行粗配準,使用文中的實驗數據,應用傳統方法進行配準后得到旋轉矩陣Rt與平移矩陣Tt。圖5(3)所示為傳統方法粗配準結果,可以看出應用傳統粗配方法配準后的兩片點云的重合度很差,而應用文中提出的粗配準方法配準后的結果有更大的重疊區域,配準精度更高。進行粗配準之后,兩個點云模型已經有了較好的初始位置,此時使用ICP算法對模型進行精確配準,得到最終的旋轉矩陣R'和平移矩陣T',點云模型最終的配準效果如圖5(4)所示。

圖5 玉蘭樹實驗結果
實驗1采用的數據葉子大而且少。實驗2采用葉子更為復雜的樹狀物體,應用文中方法同樣也得到了較好的結果。圖6(1)所示為實驗2采集的原始數據。應用文中提出的粗配準方法對兩個不同視角模型進行配準,結果如圖6(2)所示。應用ICP配準算法對粗配準后的模型進行精確配準,結果如圖6(3)所示。為了得到完整的三維模型,對多個角度的點云模型進行配準。圖6(4)為具有顏色信息的完整的三維點云模型。

圖6 桂花樹實驗結果
針對樹狀結構物體,由于Kinect深度相機測量的深度數據存在大量的噪聲與數據的丟失問題,文中提出一種彩色圖像優化深度數據的方法,能夠解決邊界的噪聲問題,同時對枝干連接處丟失的數據進行修復,提高數據的完整性。
由于樹狀結構形狀相似,應用傳統的方法提取特征困難,文中提出將邊界點作為特征點,使用曲率等屬性信息進行特征點匹配,提高了粗配準的精度,進而提高精確配準精度。但是該算法運行時間較長,后續研究將集中在提高重建的時間效率上,應用GPU的并行運算來提高重建的速度。