林榆森,李秋潔,陳婷, 2
(1. 南京林業(yè)大學(xué)機械電子工程學(xué)院,南京市,210037; 2. 南京理工大學(xué)自動化學(xué)院,南京市,210094)
近年來,面向農(nóng)林作物的三維重建技術(shù)正逐漸成為研究熱點[1-3],樹木三維形態(tài)結(jié)構(gòu)的重建,對果園果樹科學(xué)管理、病蟲害防護(hù)等具有重要意義[4-6]。目前,農(nóng)林領(lǐng)域的三維重建內(nèi)容越發(fā)豐富,有蘋果樹的模型重建[7]、大豆植株的三維重建[8]、小麥葉片的三維重建[9]、植物葉片葉脈的模擬[10]等等。
三維信息的獲取途徑也多種多樣。張慧春等[11-12]通過高分辨率RGB相機獲取植株的二維圖像序列,基于HSV模型閾值分割方法實現(xiàn)植株與背景環(huán)境的分割,結(jié)合運動中恢復(fù)結(jié)構(gòu)(Structure from motion,SFM)算法生成三維點云,利用植物形態(tài)表型參數(shù)獲取系統(tǒng)進(jìn)行植物三維點云重建。李鵬等[13]利用Xtion深度相機多視角采集玉米植株的三維點云數(shù)據(jù),通過對三維信息的處理,實現(xiàn)玉米植株的三維重建,但是由于Xtion深度相機的限制,該方法不適用于光照強烈的環(huán)境。袁曉敏等[14]通過數(shù)字化儀對番茄植株進(jìn)行形態(tài)參數(shù)測量,構(gòu)建番茄群體的三維模型,三維數(shù)字化儀建立的模型精度較高,但價格昂貴且測量過程復(fù)雜耗時。方慧等[15]采用激光掃描儀獲取多視角下的植物點云數(shù)據(jù)進(jìn)行三維重建,激光掃描儀獲取信息的速度較慢,且存在數(shù)據(jù)冗余、價格昂貴等問題。第二代Kinect相機成本較低、攜帶方便,能夠同時獲得目標(biāo)的彩色和深度圖像[16],廣泛應(yīng)用于農(nóng)林領(lǐng)域的三維重建[17-18]。鄭立華等[19]利用Kinect相機采集兩個視角下的蘋果樹三維點云,使用NARF-ICP算法完成兩片點云的精確配準(zhǔn),相對傳統(tǒng)ICP算法精度大大提高。沈躍等[20]提出改進(jìn)的SIFT-ICP算法,提高配準(zhǔn)精度的同時加快了配準(zhǔn)速度。
為進(jìn)一步提高配準(zhǔn)質(zhì)量,本文提出一種基于快速點特征直方圖的樹木三維點云配準(zhǔn)方法。選用Kinect作為采集設(shè)備,以小型仿真樹木為試驗對象,通過增加標(biāo)定物以獲取更具鑒別力的快速點特征直方圖(Fast point feature histogram,F(xiàn)PFH),然后使用采樣一致性初始配準(zhǔn)算法(Sample consensus-initial alignment,SAC-IA)和最近點迭代算法(Iterative closest point,ICP)完成樹木點云配準(zhǔn)。
數(shù)據(jù)采集設(shè)備選用第二代Kinect相機,Kinect擁有1個彩色相機和1個紅外相機,其中,紅外相機采用飛行時間(Time of flight,ToF)主動光源技術(shù)采集場景深度信息,檢測范圍為0.5~4.5 m,水平角度為70°,垂直角度為60°。
樹木點云配準(zhǔn)流程如圖1所示。首先使用Kinect相機獲取樹木和標(biāo)定物不同視角下的RGB圖像和深度圖像,通過圖像融合得到XYZRGB型彩色點云數(shù)據(jù),去除背景、離群點后得到樹木彩色點云數(shù)據(jù),采用SAC-IA算法根據(jù)FPFH特征尋找匹配點對,進(jìn)行初始配準(zhǔn),采用ICP算法優(yōu)化配準(zhǔn)結(jié)果,得到點云變換矩陣。
圖1 樹木點云配準(zhǔn)流程圖
Kinect的彩色相機獲取1 920像素×1 080像素的RGB圖像,像素值是3個字節(jié)的RGB顏色數(shù)據(jù),紅外相機獲取512像素×424像素的深度圖像,像素值是2個字節(jié)的深度數(shù)據(jù),為獲取彩色點云數(shù)據(jù),首先需要進(jìn)行圖像融合。
基于小孔成像相機模型,圖像坐標(biāo)(u,v)與世界坐標(biāo)(xw,yw,zw)存在如式(1)、式(2)所示的變換關(guān)系。
(1)
(2)
式中:K——相機內(nèi)參矩陣;
T——相機外參矩陣,包括旋轉(zhuǎn)矩陣R和平移向量t。
通過相機標(biāo)定[21]分別求取彩色相機和紅外相機的參數(shù)矩陣Kc、Tc、TIR、KIR,則RGB圖像坐標(biāo)(uc,vc)與深度圖像坐標(biāo)(uIR,vIR)存在如式(3)所示的變換關(guān)系。
(3)
對深度圖像上的每個像素點,通過式(3)計算其RGB圖像坐標(biāo),從而獲取顏色信息,通過紅外相機標(biāo)定,獲取三維空間坐標(biāo)。圖像融合后得到與深度圖像尺寸一致的彩色點云數(shù)據(jù),每個點包含顏色分量r、g、b及三維空間直角坐標(biāo)x、y、z。
初始彩色點云包含無效背景點,可通過設(shè)置感興趣區(qū)域提取出樹木及標(biāo)定物點云數(shù)據(jù)。
受采集設(shè)備精度及測量誤差等因素影響,點云中存在一些離群點,為提高配準(zhǔn)精度,需要將其剔除。離群點檢測方法如下:獲取每個點到k個鄰近點平均距離d,計算整個點云集的平均值μ和標(biāo)準(zhǔn)差δ,將平均距離d>μ+γδ的點定義為離群點。
為提高后續(xù)點云處理速度,對點云進(jìn)行體素化下采樣,以體素重心替代體素內(nèi)的點,以此減小計算復(fù)雜度。
對不同視角下的點云進(jìn)行配準(zhǔn)需利用具有旋轉(zhuǎn)不變性的點云特征尋找匹配點對。
點特征直方圖(Point feature histogram,PFH)[22]使用一個鄰域點法向量夾角直方圖來描述查詢點的幾何屬性。鄰域點法向量夾角如圖2所示,以查詢點k鄰域中一點Ps的法向量ns為基準(zhǔn),構(gòu)建一個三維直角坐標(biāo)系UVW,則查詢點的另一鄰域點Pt的法向量nt與ns之間的夾角α、Φ、θ計算如式(4)所示。
圖2 鄰域點法向量夾角
(4)
PFH將α、Φ、θ劃分為5個區(qū)間,統(tǒng)計以查詢點為球心,參考半徑內(nèi)k個鄰域點兩兩之間的法向量夾角三維直方圖,形成一個125維(53)的特征向量。對于包含n個點的點云集,PFH的計算復(fù)雜度為O(nk2)。
FPFH是PFH的簡化形式,原理如下[23-24]。
1) 將α、Φ、θ均劃分為11個區(qū)間,統(tǒng)計查詢點Pq與鄰域點法向量夾角在三個分量上的直方圖,拼接為一個33維的特征向量,稱為簡化點特征直方圖(Simple Point Feature Histogram,SPFH),記為S(Pq)。
(5)
式中:wki——查詢點Pq與鄰域點Pki的距離。
(a) PFH
SAC-IA算法[25]對點云進(jìn)行一致性采樣,根據(jù)FPFH特征查找匹配點對,求取一個近似變換矩陣,對點云進(jìn)行初始配準(zhǔn)。具體執(zhí)行過程如下。
1) 從源點云P中選擇s個采樣點,要求每兩個采樣點的距離大于預(yù)先設(shè)定的閾值。
3.3 保肢失敗的經(jīng)驗教訓(xùn) 目前普遍使用的MESS評分系統(tǒng)將評分大于7分作為截肢的指征[6]。戰(zhàn)杰等[7]分析59例(61肢)保肢治療效果后認(rèn)為,MESS評分7~9分的嚴(yán)重創(chuàng)傷肢體也可試行保肢,保肢成功率達(dá)68.3%。國外學(xué)者認(rèn)為嚴(yán)重肢體損傷選擇保肢還是截肢,不能完全依賴評分系統(tǒng),應(yīng)綜合考慮創(chuàng)傷、患者及醫(yī)師3個方面因素,避免盲目保肢[8]。
2) 從目標(biāo)點云Q中查找與采樣點具有相似FPFH特征的點,從中隨機選取一個作為匹配點對。
3) 計算點對之間的變換矩陣。根據(jù)Huber誤差評估變換矩陣的配準(zhǔn)性能,第i組點對的Huber誤差記作H(ei)。
(6)
式中:ei——第i組點對的距離誤差;
te——距離誤差閾值。
重復(fù)上述3個步驟,選擇Huber誤差最小的變換矩陣,在此基礎(chǔ)上,采用Levenberg-Marquardt算法進(jìn)行局部優(yōu)化,得到初始變換矩陣。
在初始配準(zhǔn)的基礎(chǔ)上,采用ICP算法[26-27]進(jìn)行精確配準(zhǔn)。ICP算法通過最鄰近點查找匹配點對,具體執(zhí)行過程如下。
1) 對源點云P進(jìn)行采樣,選擇待配準(zhǔn)點。
2) 從目標(biāo)點云Q中查找待配準(zhǔn)點的最鄰近點,生成點對。
3) 通過法向量夾角判斷對應(yīng)點對的相似程度,剔除夾角超過閾值的點對。
4) 根據(jù)點對求解變換矩陣。
5) 返回至步驟(2)進(jìn)行迭代,直至收斂。
試驗對象為仿真樹,樹高1.3 m,冠幅0.8 m。試驗地點選擇室內(nèi),樹木正上方20 cm處放置一個23 cm×10 cm×6 cm的長方體。
軟件開發(fā)環(huán)境為Visual Studio 2015,采用Kinect for Windows SDK實現(xiàn)數(shù)據(jù)采集,采用開源計算視覺庫OpenCV實現(xiàn)圖像顯示與存儲,采用開源點云庫(Point Cloud Library,PCL)[28]實現(xiàn)點云配準(zhǔn)。
使用Kinect相機從不同視角采集樹木的RGB圖像和深度圖像,進(jìn)行數(shù)據(jù)融合,如圖4所示。
(a) RGB圖像
背景去除、離群點去除(k=50,γ=1)后得到僅保留樹木和標(biāo)定物的彩色點云數(shù)據(jù),如圖5所示。采用1 cm×1 cm×1 cm的立方體體素化點云數(shù)據(jù),提高后續(xù)處理效率。
(a) 視角1
FPFH將α、Φ、θ上的11維夾角直方圖拼接成33維的特征向量,α的角度劃分區(qū)間是[-180°, 180°],為降低粗糙表面對特征的影響,Φ、θ的角度劃分區(qū)間取[-57°, 57°]。為驗證FPFH對不同幾何表面的鑒別能力,計算球體(r=10 cm)、圓柱體(r=10 cm)、角、邊緣以及平面等5個基本三維幾何表面點的FPFH特征,如圖6所示。
(a) 幾何表面點
不同幾何表面的FPFH特征差異較大:平面上查詢點與鄰域點的法向量夾角均為0°,分布在各直方圖中間;邊緣處大部分鄰域點與查詢點仍在同一平面,法向量夾角為0°,少部分鄰域點與查詢點位于不同平面,法向量夾角不為0°,分布在各直方圖兩邊;角上有更多鄰域點與查詢點位于不同平面,與邊相比直方圖更為分散;球體上的鄰域點與查詢點位于曲面上,法向量夾角不為0°;圓柱體上鄰域點與查詢點的法向量夾角具有各向異性,與球體相比直方圖分布更為發(fā)散。
試驗選定標(biāo)定物為長方體,能在平面、邊緣、角等幾何表面提取大量穩(wěn)定的FPFH特征且相互之間存在差異性。分別在樹木、標(biāo)定物上提取1組點對,計算其FPFH特征,如圖7所示。x軸表示33個分布區(qū)間,y軸表示落在某區(qū)間的比率,a、b兩點取自枝葉,圖7(a)和圖7(b)顯示了枝葉處兩點的FPFH統(tǒng)計圖差異較小,說明二者的局部相似性較高,c、d兩點取自標(biāo)定物,二者的FPFH統(tǒng)計圖較a、b差異更為明顯,且與a、b的局部相似性較低。在初配準(zhǔn)時標(biāo)定物的設(shè)置增強了FPFH特征的鑒別力,從而提高對應(yīng)點選擇的準(zhǔn)確性。
(a) 樹木和標(biāo)定物
圖8給出樹木點云初始配準(zhǔn)和精確配準(zhǔn)的結(jié)果,其中,綠色為源點云,紅色為目標(biāo)點云。兩片點云的初始位置在平移分量和旋轉(zhuǎn)分量上都存在較大差異,經(jīng)過SAC-IA初始配準(zhǔn)后,兩片點云大致配準(zhǔn)到一起,通過ICP算法進(jìn)一步優(yōu)化旋轉(zhuǎn)平移矩陣,使得兩片樹木點云更好地融合在了一起。
(a) 配準(zhǔn)前
使用配準(zhǔn)后對應(yīng)點距離的均方根誤差作為評價指標(biāo),比較標(biāo)定物有無對配準(zhǔn)精度影響,如表1所示。增加標(biāo)定物使得點云數(shù)量增加了600多,初始配準(zhǔn)時間增長了5.55 s,精確配準(zhǔn)時間增長了0.05 s。由于初始配準(zhǔn)中需要計算標(biāo)定物點云的FPFH特征,因此增加標(biāo)定物對初始配準(zhǔn)時間的影響更為明顯。同時,放置標(biāo)定物提高了配準(zhǔn)精度,初始配準(zhǔn)和精確配準(zhǔn)的誤差均減小了0.06 cm。
表1 點云配準(zhǔn)誤差分析
為進(jìn)一步探究標(biāo)定物對點云配準(zhǔn)精度的影響,對樹木每隔40°進(jìn)行拍攝,共獲得9片點云數(shù)據(jù)。對相鄰點云進(jìn)行配準(zhǔn)試驗,結(jié)果如圖9所示。增加標(biāo)定物使得配準(zhǔn)誤差減小0.04~0.09 cm,最終配準(zhǔn)誤差小于1.9 cm。
圖9 方案穩(wěn)定性分析結(jié)果
為合理設(shè)置相機位置以獲取整棵樹木的完整彩色點云數(shù)據(jù),探討不同采集距離、高度、視角差對配準(zhǔn)精度的影響。
已知Kinect相機測量的有效深度范圍為0.5~4.5 m,考慮到本試驗對象樹高1.3 m,冠幅0.8 m,在相機距離地面高度為10 cm,兩次拍攝角度差為15°的情況下選擇1.5 m、2 m、2.5 m三個測量距離進(jìn)行試驗,試驗結(jié)果如表2所示。距離太近導(dǎo)致點云的局部性更強,兩片點云重疊率降低,因此1.5 m處較2 m處誤差更大。而距離增加到2.5 m時,由于樹木自身遮擋造成部分信息缺失,降低了配準(zhǔn)精度。
表2 不同距離的配準(zhǔn)結(jié)果
使相機始終距離樹木中心2 m,角度差為15°,通過改變相機的高度進(jìn)行試驗。分別對0 cm、10 cm和20 cm三個高度進(jìn)行試驗分析,試驗數(shù)據(jù)如表3所示。
表3 不同高度的配準(zhǔn)結(jié)果
從表3可以看出,當(dāng)高度為0時,獲取的點云側(cè)重樹干部分,上方的枝葉信息會缺失,不利于配準(zhǔn),當(dāng)高度為20 cm時,獲取的點云側(cè)重為當(dāng)前視角下的外層樹葉信息,內(nèi)部枝葉信息由于遮擋大量缺失,因此兩視角的重疊率相對較低,故而位于10 cm處精度相對最高。Kinect的水平掃描范圍為70°因而保持掃描距離為2 m、相機高度為10 cm,對前后兩次變化角度分別為20°、40°和60°的配準(zhǔn)進(jìn)行試驗分析,得到如表4的試驗結(jié)果。
從表4可以看出,角度對配準(zhǔn)質(zhì)量的影響最為顯著。角度變化越大,兩片樹木點云的重疊率就越低,不但配準(zhǔn)時對應(yīng)點的數(shù)量會減少,對應(yīng)點查詢的準(zhǔn)確率也會大大降低,導(dǎo)致配準(zhǔn)誤差變大。表中當(dāng)變化角度達(dá)到60°時,誤差已經(jīng)相當(dāng)大,可以認(rèn)為是失敗的配準(zhǔn)結(jié)果。
表4 不同視角差的配準(zhǔn)結(jié)果
綜合考慮以上三個因素,采集方式設(shè)置為:相機到樹木中心的距離為2 m,相機高度為10 cm,每次掃描間隔45°,此采集方式下對樹木的8個角度進(jìn)行拍攝,采集示意圖如圖10所示。
圖10 采集方式示意圖
對于獲取的8片點云A~H,首先將點云A轉(zhuǎn)換到點云B的坐標(biāo)系下,并將轉(zhuǎn)換后的A與B拼接成AB;然后將B轉(zhuǎn)換到C的坐標(biāo)系,將求解獲得的變換矩陣作用于AB,并將變換后的AB與C拼接得到ABC;依次轉(zhuǎn)換拼接直到獲得點云A~H,包含8個視角的點云信息,每相鄰視角的配準(zhǔn)誤差平均為 1.8 cm,且最大誤差小于1.9 cm。圖11展示了前后左右4個視角下的最終效果圖。
(a) 前方
1) 采用第二代Kinect相機獲取樹木點云信息,經(jīng)過預(yù)處理后使用SAC-IA初始配準(zhǔn)與ICP精確配準(zhǔn)相結(jié)合的方式,實現(xiàn)兩片樹木點云的精確配準(zhǔn)。初始配準(zhǔn)時間在170 s左右,有待進(jìn)一步提高,當(dāng)兩片點云的視角差不大于45°時,最終配準(zhǔn)誤差小于1.9 cm。
2) 在樹木正上方設(shè)置一個立方體作為標(biāo)定物,由于標(biāo)定物的結(jié)構(gòu)簡單且特征顯著,可以獲取更具鑒別力的FPFH,在初始配準(zhǔn)中,根據(jù)FPFH確定對應(yīng)點的準(zhǔn)確度有所提高,使配準(zhǔn)誤差平均減小0.06 cm,改善了配準(zhǔn)質(zhì)量。
3) 多次試驗探究了不同采集距離、高度以及兩片點云的視角差對配準(zhǔn)精度的影響,試驗發(fā)現(xiàn)距離在 2 m 左右,高度在10 cm左右時誤差相對較小,而角度越大則誤差越大。據(jù)此選擇最佳采集方式完成了對整棵樹木點云信息的采集和配準(zhǔn)。