劉東生,陳建林,費(fèi) 點(diǎn),張之江
(上海大學(xué) 特種光纖與光接入網(wǎng)重點(diǎn)實(shí)驗(yàn)室,上海 200444)
大型場(chǎng)景的三維重建是圖形學(xué)和計(jì)算機(jī)視覺領(lǐng)域的一個(gè)研究熱點(diǎn),被廣泛應(yīng)用于室內(nèi)設(shè)計(jì)、機(jī)器人導(dǎo)航和增強(qiáng)現(xiàn)實(shí)。在表面重建系統(tǒng)中,需要同時(shí)精確地獲取相機(jī)的運(yùn)動(dòng)軌跡和場(chǎng)景的三維模型。深度相機(jī)因其能以視頻幀速直接獲取物體的位置信息且價(jià)格低廉,而非常適合用來研究三維重建。
KinectFusion[1]系統(tǒng)開創(chuàng)了使用手持式深度傳感器進(jìn)行實(shí)時(shí)稠密重建的新領(lǐng)域。它采用點(diǎn)到平面的迭代最近點(diǎn)算法(Iterative Closest Point,ICP[2])將輸入的深度圖與當(dāng)前模型配準(zhǔn)來跟蹤相機(jī),實(shí)時(shí)性能由GPU的并行計(jì)算來實(shí)現(xiàn)。然而KinectFusion只能重建固定于空間中的小場(chǎng)景,并且相機(jī)位姿估計(jì)不精確。隨后,研究者使用移動(dòng)網(wǎng)格的策略來擴(kuò)展KinectFusion算法,使其能重建大型場(chǎng)景[3-5]。但對(duì)于大型場(chǎng)景重建,長(zhǎng)的相機(jī)掃描序列會(huì)引入越來越大的位姿累積誤差,測(cè)量的表面信息被不精確地融合到模型中,會(huì)進(jìn)一步惡化位姿估計(jì)的結(jié)果,最終導(dǎo)致相機(jī)漂移,重建的模型質(zhì)量差,甚至是重建失敗。
為了解決上述問題,F(xiàn)ioraio等人[5]使用最新K張深度圖像構(gòu)建局部子網(wǎng)格,以幀到模型的方式執(zhí)行相機(jī)跟蹤。盡管該方法可極大地減少累積誤差,但當(dāng)場(chǎng)景缺少幾何結(jié)構(gòu)特征時(shí),僅利用深度信息進(jìn)行重建會(huì)使相機(jī)丟失跟蹤。Fu等人[6]在跟蹤相機(jī)的同時(shí)檢測(cè)場(chǎng)景閉環(huán),以閉環(huán)為約束來矯正相機(jī)軌跡。但檢測(cè)的閉環(huán)存在錯(cuò)誤且有部分正確的閉環(huán)并未被檢測(cè)。Choi等人的離線方法[7-8]采用基于線流程(Line processes)的魯棒全局位姿優(yōu)化來消除檢測(cè)錯(cuò)誤的閉環(huán)以提高重建質(zhì)量,但需耗費(fèi)大量時(shí)間。在Dai等人[9]的BundleFusion算法中,新輸入的RGB-D圖像需要和之前所有分塊的關(guān)鍵幀匹配,以高斯牛頓法的求解方式極小化位姿對(duì)齊誤差來優(yōu)化全局軌跡,可得到精確的相機(jī)位姿,但需要兩張顯卡執(zhí)行復(fù)雜的局部和全局優(yōu)化。
針對(duì)大場(chǎng)景重建中,由位姿估計(jì)的累積誤差而導(dǎo)致的相機(jī)漂移、重建模型質(zhì)量低的問題,本文設(shè)計(jì)了一種基于深度相機(jī)的場(chǎng)景重建方法。在系統(tǒng)中保持一個(gè)K長(zhǎng)的滑動(dòng)窗口,基于由最新K幀融合的彩色模型跟蹤相機(jī),以此來減少局部累積誤差。在全局優(yōu)化中,迭代步長(zhǎng)式地在子網(wǎng)格間搜索表面對(duì)應(yīng)點(diǎn),并以對(duì)應(yīng)點(diǎn)的點(diǎn)到平面距離誤差和亮度誤差為約束,優(yōu)化全局相機(jī)軌跡。最后通過實(shí)驗(yàn)證明了本文方法的有效性。
基于深度相機(jī)的靜態(tài)場(chǎng)景重建方法都有相似的系統(tǒng)框架,如圖1(a)所示。
首先,對(duì)輸入的RGB-D圖像執(zhí)行深度圖像預(yù)處理以減少噪聲和錯(cuò)誤的深度值。其次,取決于不同的方法,從預(yù)處理過的深度圖像中獲取不同類型的深度信息。隨后,可利用幀到幀、幀到模型的方式計(jì)算當(dāng)前圖像到全局坐標(biāo)系的最優(yōu)變換。最后,將當(dāng)前深度圖的所有頂點(diǎn)轉(zhuǎn)換到全局坐標(biāo)系并融合到模型中。
為了重建大型場(chǎng)景,本文方法的流程如圖1(b)所示。隨著深度相機(jī)在靜態(tài)場(chǎng)景中掃描,根據(jù)時(shí)間戳對(duì)齊一對(duì)深度和彩色圖像。在算法啟動(dòng)時(shí),將第一個(gè)子網(wǎng)格固定于相機(jī)正前方,子網(wǎng)格內(nèi)的體素由第一對(duì)深度和彩色圖像初始化,用于后續(xù)的相機(jī)跟蹤。
在每個(gè)子網(wǎng)格內(nèi),結(jié)合彩色和深度測(cè)量執(zhí)行幀到模型的相機(jī)跟蹤??紤]到短時(shí)間內(nèi)的累積誤差小,且物體的顏色亮度可能在不同視角下有些許變化,本文提出使用彩色模型的去融合方案來減少累積誤差。核心思想是當(dāng)?shù)贜對(duì)圖像融合到模型時(shí),將N-K對(duì)圖像從模型中去融合,以此來確保輸入的圖像始終基于最新的K對(duì)幀估計(jì)位姿。
當(dāng)相機(jī)相對(duì)于當(dāng)前子網(wǎng)格中心點(diǎn)的位置超過給定閾值時(shí),為了高效性,將子網(wǎng)格平移體素單元倍數(shù)的距離。移動(dòng)到子網(wǎng)格外面的體素會(huì)丟失,而剩余的體素會(huì)從舊的子網(wǎng)格復(fù)制到新的子網(wǎng)格以繼續(xù)執(zhí)行幀到模型的相機(jī)跟蹤。
圖1 三維重建流程
在全局優(yōu)化中,本文提出了迭代步長(zhǎng)式的方法在子網(wǎng)格間搜索對(duì)應(yīng)表面點(diǎn),并基于對(duì)應(yīng)點(diǎn)的點(diǎn)到平面距離約束和亮度約束迭代地執(zhí)行全局優(yōu)化,目標(biāo)函以sparseLM的方式求解。相機(jī)軌跡優(yōu)化后,將子網(wǎng)格全局配準(zhǔn),融合到全局網(wǎng)格中[10]。隨后,采用marching cubes[11]算法提取三角片面以便可視化。
對(duì)于一個(gè)三維空間點(diǎn)P(x,y,z)∈3,可以使用針孔相機(jī)模型獲取其對(duì)應(yīng)于二維圖像平面的像素點(diǎn)X(u,v)∈2
(u,v)T=π(x,y,z)=
(1)
其中fx,fy和cx,cy分別是焦距和光軸中心點(diǎn)坐標(biāo),π為投影方程。
(2)
(3)
其中:三維正交矩陣Rl,k∈3×3表示旋轉(zhuǎn)分量,tl,k∈3×1表示平移分量。
本文采用文獻(xiàn)[12]的方法估計(jì)相機(jī)位姿。如圖2所示,使用加權(quán)截?cái)嘤邢蚓嚯x函數(shù)(TSDF[10])表示三維空間:
ψ:[ψrgb,ψd]→[3,],
(4)
其中ψrgb與ψd分別表示重建表面的色彩和幾何信息。
給定由前N對(duì)深度和彩色圖像融合的表面ψf_n,和由第N+1對(duì)深度和彩色圖像的反投影得到的表面ψs_n+1,其幾何位置和顏色亮度應(yīng)盡可能一致。誤差函數(shù)可定義為:
E(Tl,N+1)=
(5)
(6)
點(diǎn)P定義于第N+1幀的相機(jī)坐標(biāo)系,Ω為一個(gè)三維對(duì)角矩陣,將RGB格式的彩色圖轉(zhuǎn)換為灰度圖[13]:
(7)
誤差函數(shù)(5)可使用Gauss-Newton算法迭代求解直至收斂。
圖2 表面ψs_n+1與ψf_n的幾何位置和顏色亮度應(yīng)盡可能一致
本文在每個(gè)體素v中分配6個(gè)值,其中Φ是從v到最近表面的TSDF,R,G,B是三通道顏色值,Wd和Wc分別為TSDF和顏色值的確信度。在估計(jì)完第N+1對(duì)圖像的位姿后,可使用加權(quán)平均法[10]更新TSDF:
(8)
類似地,以相同的方式更新顏色信息:
γ∈{r,g,b}.
(9)
針對(duì)位姿估計(jì)存在累積誤差的問題,本文在文獻(xiàn)[5]的基礎(chǔ)上,結(jié)合深度和彩色信息對(duì)模型去融合。
考慮到短時(shí)間內(nèi)累積誤差可忽略不計(jì),本文基于由最新的K幀深度和彩色圖像融合的模型跟蹤相機(jī)。在當(dāng)前幀融合到模型后,將N-K幀的信息從模型中去融合,在程序中該過程對(duì)應(yīng)于一個(gè)K長(zhǎng)的FIFO隊(duì)列,如圖3所示,直到第N-1+C幀時(shí)生成一個(gè)新的子體積。去融合過程可表示為:
(10)
(11)
圖3 子網(wǎng)格的融合和去融合
對(duì)于彩色測(cè)量的累積誤差,以同樣的方式:
γ∈{r,g,b}.
(12)
若小于K幀圖像被跟蹤,則不對(duì)子網(wǎng)格去融合。一旦超過K幀被處理且滿足子網(wǎng)格的移動(dòng)條件,則將當(dāng)前子網(wǎng)格保存在內(nèi)存中。
當(dāng)相機(jī)的位置距離子網(wǎng)格的中心點(diǎn)超過給定閾值時(shí),需要移動(dòng)子網(wǎng)格來重建大型場(chǎng)景。
如圖4所示(彩圖見期刊電子版),相機(jī)從路標(biāo)L1移動(dòng)到路標(biāo)L2。橙色線表示相機(jī)光軸,相機(jī)在L1處采集到第1幀圖像,其位姿為I4×4,并新建子網(wǎng)格V1,中心點(diǎn)為O1,如綠色實(shí)線框所示。在任意時(shí)刻t, 第i幀圖像和當(dāng)前子網(wǎng)格Vj的絕對(duì)位姿可分別表示為Tg,i和Pg,j,Tj,i為第i幀到局部子網(wǎng)格Vj的變換:
(13)
在移動(dòng)子網(wǎng)格時(shí),如果同時(shí)考慮平移和旋轉(zhuǎn)分量,則當(dāng)下列條件滿足時(shí):
‖tji‖>Thold_t或aji=
‖rodrigues-1(Rj,i)‖>Thold_R,
(14)
Vj被移動(dòng)到Vj+1,如圖4中的藍(lán)色虛線框所示。其中Thold_t和Thold_R分別為距離和角度閾值,rodrigues為羅德里格斯變換。此時(shí),對(duì)于新建立的子網(wǎng)格Vj+1,有:
Tj+1,i=I4×4,Pj,j+1=Tj,iTj+1,i-1=Tj,i,
(15)
Vj中的體素需要被三線性插值到Vj+1中,會(huì)耗費(fèi)大量時(shí)間。同時(shí),由于體素在三線性插值后通常位于非整數(shù)坐標(biāo)處,因此插值方法會(huì)影響重建的準(zhǔn)確性。
本文采用圖4所示的子網(wǎng)格移動(dòng)方法,其中黑色實(shí)線箭頭表示O1與L2處光軸的距離,交光軸于點(diǎn)C。當(dāng)該距離超過給定閾值dth_1時(shí),移動(dòng)V1:
d1>dth_1.
(16)
考慮到三線性插值非常耗時(shí)且會(huì)引入不精確的tsdf, 本文將V1平移體素單元倍數(shù)的距離。同時(shí),為了使平移到新建的子網(wǎng)格內(nèi)用于相機(jī)跟蹤的有效體素?cái)?shù)量盡可能的多,點(diǎn)O1被平移到藍(lán)色虛線框的中心點(diǎn)O2,生成一個(gè)新的子網(wǎng)格,如圖4紅色虛線框所示。此時(shí),L2處滿足子網(wǎng)格移動(dòng)條件的相機(jī)視角在新的子網(wǎng)格內(nèi)具有很大的覆蓋范圍,如圖4黃色箭頭所示。因此,隨后用于相機(jī)跟蹤的實(shí)體素?cái)?shù)量眾多,相機(jī)跟蹤會(huì)更加精確魯棒。V1被平移整數(shù)體素單元的距離,最終生成的子網(wǎng)格如紅色實(shí)線框所示,此時(shí)子網(wǎng)格之間的位姿有以下關(guān)系:
Pj,j+1=
(17)
vs為單個(gè)體素的尺寸。
需要注意的是,當(dāng)相機(jī)沿著固定光軸向前或向后移動(dòng)超過一定距離時(shí),V1同樣需要被平移:
d2>dth_2_l‖d2 (18) 其中d2是點(diǎn)C到光心L2的距離,dth_2_l和dth_2_s為兩個(gè)閾值。當(dāng)式(17)或式(18)滿足時(shí),平移V1。移動(dòng)到子網(wǎng)格外的體素將會(huì)丟失,剩余的體素將從舊的子網(wǎng)格復(fù)制到新的子網(wǎng)格。 圖4 將子網(wǎng)格從L1平移到L2 雖然相機(jī)在每個(gè)子網(wǎng)格內(nèi)是低漂移的,但由于長(zhǎng)的掃描序列,子網(wǎng)格之間不可避免地存在累積誤差。本文基于文獻(xiàn)[5]的全局優(yōu)化框架,提出了迭代步長(zhǎng)式地尋找表面對(duì)應(yīng)點(diǎn)。如圖5(a)是未優(yōu)化的子網(wǎng)格,圖5(b)是優(yōu)化后的子網(wǎng)格。 圖5 全局優(yōu)化的示意圖 3.5.1 迭代步長(zhǎng)式尋找表面對(duì)應(yīng)點(diǎn) 如圖6,P={pi}和Q={qi}是子網(wǎng)格Vj和Vk的表面點(diǎn)集,pi和qi是一對(duì)對(duì)應(yīng)點(diǎn),Tg,j和Tg,k為子網(wǎng)格Vj和Vk的全局變換。若Tg,j和Tg,k都被精確地估計(jì),則可建立以下方程: (19) 為了表述簡(jiǎn)潔,公式中默認(rèn)存在點(diǎn)的齊次形式與非齊次形式間的轉(zhuǎn)換。 通常,由于噪聲的存在,式(19)不會(huì)相等。為了得到Tg,j和Tg,k的精確值,需要在Vj和Vk中尋找更加精確的對(duì)應(yīng)點(diǎn)。 對(duì)于任意表面點(diǎn)P,假設(shè)其tsdf值為ψd,可獲取歸一化的梯度: (20) 因tsdf表示一點(diǎn)距表面的有向距離,故Vk中的對(duì)應(yīng)點(diǎn)可通過以下方式搜索: (21) 在式(21)中,Vj中的表面點(diǎn)pi被轉(zhuǎn)換到Vk中,并沿著轉(zhuǎn)換后的點(diǎn)的法線方向行進(jìn)αψd的距離。理論上僅僅需要行進(jìn)距離ψd,但在實(shí)驗(yàn)中發(fā)現(xiàn),由于位姿估計(jì)和tsdf計(jì)算過程中存在誤差,尋找到的對(duì)應(yīng)點(diǎn)不一定是Vk的表面點(diǎn)。因此,本文引入步長(zhǎng)參數(shù)α,基于實(shí)驗(yàn)經(jīng)驗(yàn),α由0.8增長(zhǎng)到1.2,增量為Δα= 0.05,直到找到tsdf值足夠小的點(diǎn)qi。如果α增長(zhǎng)到1.2之后,qi仍然遠(yuǎn)離表面,則認(rèn)為pi沒有對(duì)應(yīng)點(diǎn)。 圖6 Vj和Vk之間尋找對(duì)應(yīng)點(diǎn) 3.5.2 迭代式的全局優(yōu)化 對(duì)于一對(duì)對(duì)應(yīng)點(diǎn)(pi,qi),其三維空間位置和亮度應(yīng)盡可能地一致。誤差函數(shù)可表示為: ei,i=‖(Tg,jpi-Tg,kqi)TTg,kn‖+ (22) 對(duì)于尋找的對(duì)應(yīng)點(diǎn)集,整體誤差函數(shù)可定義為如式(23),可使用sparseLM求解: E(Tg)= (23) 在本文中,設(shè)置迭代次數(shù)Nth,如果相鄰兩次迭代的優(yōu)化誤差小于給定閾值或者迭代次數(shù)超過Nth時(shí),則停止迭代,輸出優(yōu)化后的相機(jī)位姿。 3.5.3 獲取全局一致的三維模型 在全局軌跡優(yōu)化后,為了得到整體的三維模型,需將子網(wǎng)格融合到全局TSDF中: (24) 類似地,對(duì)于彩色信息: (25) 隨后使用marching cubes[11]算法提取三角片面以獲得精細(xì)的三維場(chǎng)景模型。 本節(jié)使用兩類不同的數(shù)據(jù)分別從定性和定量?jī)蓚€(gè)方面驗(yàn)證本文算法的有效性。 圖7是由Kinect v2從實(shí)驗(yàn)室中采集的450張深度和彩色圖像重建的模型。圖7(a)和圖7(b)分別從兩個(gè)不同的視角展示了重建的結(jié)果??梢钥闯?,盡管場(chǎng)景中的物體繁雜多樣,但最終重建的結(jié)果清晰地展示了實(shí)驗(yàn)室內(nèi)部的結(jié)構(gòu)。圖7(c)展示了書桌部分的局部細(xì)節(jié)圖,可以看到書桌、顯示器屏幕、紙箱表面都平坦光滑,甚至紙箱表面上貼的透明膠帶都清晰可見。圖7(d)展示了書架部分的局部細(xì)節(jié)圖,垃圾桶、植物、書架上擺放的書本、玩偶都實(shí)現(xiàn)了較高水平的還原。 圖7 實(shí)驗(yàn)室的重建結(jié)果 此外,本文還重建了Augmented_ICL_NUIM[5]數(shù)據(jù)集中的客廳(Living Room2)部分場(chǎng)景,并與現(xiàn)有方法進(jìn)行了比較,驗(yàn)證了本文提出算法的有效性。 圖8分別展示了4種方法的重建結(jié)果。圖8(a)為Bylow等人[14]的重建模型,與 KinectFusion[1]中通過點(diǎn)到平面的ICP 算法跟蹤相機(jī)不同,Bylow 等人直接基于TSDF最小化深度測(cè)量誤差,有效地提高了位姿估計(jì)的精確度。但僅通過單一網(wǎng)格持續(xù)估計(jì)位姿并融合數(shù)據(jù),位姿誤差不斷累積,不準(zhǔn)確的位姿導(dǎo)致融合的模型出現(xiàn)模糊或者斷裂現(xiàn)象,如8(a)中臺(tái)燈的燈柱和植物的枝葉所示。圖8(b)為Fioraio等人[5]的重建結(jié)果,為了減少累積誤差,F(xiàn)ioraio等人沿著相機(jī)運(yùn)動(dòng)軌跡新建子網(wǎng)格,子網(wǎng)格內(nèi)局部場(chǎng)景的細(xì)節(jié)精細(xì)度有所提升,模型中臺(tái)燈的燈柱和植物等細(xì)節(jié)都基本保留。但其在全局優(yōu)化中尋找的對(duì)應(yīng)點(diǎn)不夠精確,導(dǎo)致子網(wǎng)格之間的相對(duì)位姿仍然存在較大誤差,重建模型中的墻壁、沙發(fā)等處存在明顯的折痕。圖8(c)為Choi等人[8]的重建結(jié)果,該算法間隔固定幀數(shù)(實(shí)驗(yàn)中為50幀)生成一個(gè)新的子網(wǎng)格,但當(dāng)相機(jī)運(yùn)動(dòng)速度較快時(shí),單個(gè)子網(wǎng)格內(nèi)覆蓋的場(chǎng)景較大,包含的相機(jī)運(yùn)動(dòng)軌跡較長(zhǎng),重建模型細(xì)節(jié)處容易出現(xiàn)空洞,如模型中的靠枕和植物所示。圖8(d)為本文提出方法的重建結(jié)果,本文結(jié)合深度和彩色測(cè)量跟蹤相機(jī)位姿,同時(shí)對(duì)深度和彩色數(shù)據(jù)進(jìn)行融合和去融合操作,估計(jì)的位姿更加準(zhǔn)確,并且子網(wǎng)格間采用更加精確的步長(zhǎng)式方法尋找對(duì)應(yīng)點(diǎn),極大程度地減輕了折痕現(xiàn)象,同時(shí)保證了子網(wǎng)格內(nèi)局部場(chǎng)景的細(xì)節(jié)精細(xì)度,如圖中的靠枕和植物。 圖8 四種方法的重建結(jié)果對(duì)比 通過自采數(shù)據(jù)和公開數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果分析,本文提出的場(chǎng)景重建方法能夠克服較長(zhǎng)相機(jī)軌跡帶來的累積誤差問題,重建的模型平滑且完整,同時(shí)保留了精致的局部細(xì)節(jié),最終生成的三維模型具有更佳的可觀性。 表1所示為四種方法對(duì)數(shù)據(jù)集Augmented ICL-NUIM Living Room2部分場(chǎng)景評(píng)估的絕對(duì)軌跡誤差(ATE),其中包括均方根誤差(RMSE)、平均值(Mean)和標(biāo)準(zhǔn)差(STD),單位均為米。從表中可看出,相較于現(xiàn)有的幾種方法,本文方法估計(jì)的絕對(duì)軌跡誤差最低,均方根誤差 RMSE 與 Choi等人提出的算法相比低 14.1%,說明本文提出的算法在位姿估計(jì)準(zhǔn)確率上得到了很大提升。 表1 四種不同方法估計(jì)的相機(jī)絕對(duì)軌跡誤差 Tab.1 Absolute trajectory error evaluated by four different methods (m) 表2所示為三種方法對(duì)自采的450張實(shí)驗(yàn)室場(chǎng)景數(shù)據(jù)集評(píng)估的重建時(shí)間。需要說明的是,本文基于Fioraio[5]等人的方法實(shí)現(xiàn)整體模型配準(zhǔn),融合效率已在文獻(xiàn)[5]中說明。與文獻(xiàn)[5]不同的是,此處的對(duì)比實(shí)驗(yàn)基于串行CPU,硬件環(huán)境為i5-7300HQ、2.5 GHz英特爾CPU。 相比Bylow[14]等人直接配準(zhǔn)單張深度圖像,F(xiàn)ioraio[5]等人需對(duì)深度圖像去融合,且需新建子網(wǎng)格,后續(xù)還需對(duì)子網(wǎng)格融合配準(zhǔn)。而本文在文獻(xiàn)[5]的基礎(chǔ)上加上了彩色圖像的配準(zhǔn)和去融合,且在子網(wǎng)格間迭代式地尋找對(duì)應(yīng)點(diǎn),使用迭代式地方式優(yōu)化全局誤差函數(shù),因此耗費(fèi)時(shí)間比文獻(xiàn)[14],文獻(xiàn)[5]都長(zhǎng)。 表2 三種不同方法的重建時(shí)間對(duì)比 Tab.2 Reconstruction time for four different methods 方法Bylow[14]Fioraio[5]本文總體重建耗時(shí)/s99170190平均每幀耗時(shí)/ms221378423 后續(xù)使用GPU實(shí)現(xiàn)代碼加速可極大地減少重建時(shí)間,理論上可達(dá)到Fioraio[5]等人的重建效率。 除了上述定性和定量的實(shí)驗(yàn),本節(jié)還研究了算法中相關(guān)參數(shù)對(duì)重建效果的影響,包括位姿跟蹤中用于調(diào)節(jié)彩色誤差在總誤差中所占比例的權(quán)重參數(shù)θ和迭代步長(zhǎng)參數(shù)α。實(shí)驗(yàn)均基于Augmented ICL-NUIM Living Room2數(shù)據(jù)集。 表3 不同權(quán)重θ對(duì)絕對(duì)軌跡誤差的影響 表3所示為不同θ值對(duì)相機(jī)運(yùn)動(dòng)軌跡誤差的影響。當(dāng)θ=0,此時(shí)彩色誤差占比為 0,位姿跟蹤中僅使用了深度數(shù)據(jù);當(dāng)θ=100,此時(shí)彩色誤差占比為92%,位姿跟蹤中彩色信息起決定性的作用。當(dāng)θ=8時(shí),彩色誤差和深度誤差共同作用于位姿跟蹤,RMSE最小。 此外,對(duì)于全局優(yōu)化,本文還設(shè)置了三組對(duì)比實(shí)驗(yàn),分別命名為A:未優(yōu)化的絕對(duì)軌跡RMSE。B:迭代步長(zhǎng)α=1.0,優(yōu)化后的絕對(duì)軌跡RMSE。C:本文迭代步長(zhǎng)式尋找對(duì)應(yīng)點(diǎn),優(yōu)化后的絕對(duì)軌跡RMSE。表4展示了實(shí)驗(yàn)結(jié)果。從表中可看出,迭代步長(zhǎng)式尋找對(duì)應(yīng)點(diǎn)方法比直接尋找對(duì)應(yīng)點(diǎn)方法軌跡優(yōu)化結(jié)果提升8%。 表4 迭代步長(zhǎng)α對(duì)絕對(duì)軌跡誤差的影響 由上述實(shí)驗(yàn)結(jié)果可知,本文提出的三維重建方法可減少位姿估計(jì)中的累積誤差,得到的相機(jī)軌跡更加精確。 針對(duì)大場(chǎng)景重建中,相機(jī)位姿估計(jì)的累積誤差導(dǎo)致相機(jī)漂移、重建模型質(zhì)量低的問題,提出了基于深度相機(jī)的高質(zhì)量三維場(chǎng)景重建方案。針對(duì)在缺少幾何結(jié)構(gòu)特征的場(chǎng)景中,僅使用深度信息跟蹤相機(jī)易于失敗的問題,結(jié)合深度和彩色測(cè)量以幀到模型的方式跟蹤相機(jī);針對(duì)位姿估計(jì)中存在累積誤差,提出結(jié)合深度和彩色信息的去融合方案;在全局軌跡優(yōu)化中提出迭代步長(zhǎng)式地尋找表面對(duì)應(yīng)點(diǎn),并以對(duì)應(yīng)點(diǎn)的歐氏距離和亮度信息為約束,優(yōu)化全局相機(jī)位姿。 本文在傳統(tǒng)的三維重建框架基礎(chǔ)上提出了彩色信息去融合方案,并在全局優(yōu)化中引入迭代步長(zhǎng),提高了相機(jī)軌跡的精確度。與基于深度相機(jī)的重建方法對(duì)比,本文提出的重建方法相機(jī)軌跡精度提升14.1%,基于實(shí)際數(shù)據(jù)實(shí)驗(yàn),本文方法能實(shí)現(xiàn)精確的相機(jī)跟蹤,重建高質(zhì)量的場(chǎng)景模型。滿足實(shí)際應(yīng)用需求。本文的算法基于串行CPU實(shí)現(xiàn),重建時(shí)間相對(duì)較長(zhǎng)。同時(shí)本文使用歸一化體素網(wǎng)格表示三維場(chǎng)景,內(nèi)存消耗大,因此限制了重建的場(chǎng)景大小。后續(xù)工作可將算法移植到CUDA平臺(tái),用于GPU加速。同時(shí)使用Octree[19]或Voxel Hashing[20]來表示重建空間,以便重建更大場(chǎng)景。3.5 全局優(yōu)化
4 實(shí)驗(yàn)結(jié)果及分析
4.1 場(chǎng)景重建結(jié)果的定性展示
4.2 絕對(duì)軌跡誤差的定量分析
4.3 重建時(shí)間的定量分析
4.4 實(shí)驗(yàn)中的參數(shù)分析
5 結(jié) 論