本發(fā)明涉及計算機視覺技術(shù)領(lǐng)域,具體地,涉及一種基于消費級深度相機進行室內(nèi)完整場景三維重建的方法及系統(tǒng)。
背景技術(shù):
室內(nèi)場景高精度三維重建是計算機視覺中具有挑戰(zhàn)性的研究課題之一,涉及計算機視覺、計算機圖形學(xué)、模式識別、最優(yōu)化等多個領(lǐng)域的理論與技術(shù)。實現(xiàn)三維重建有多種途徑,傳統(tǒng)方法是采用激光、雷達等測距傳感器或結(jié)構(gòu)光技術(shù)來獲取場景或物體表面的結(jié)構(gòu)信息進行三維重建,但這些儀器大多價格昂貴并且不易攜帶,所以應(yīng)用場合有限。隨著計算機視覺技術(shù)的發(fā)展,研究者們開始研究使用純視覺的方法進行三維重建,其中涌現(xiàn)出來了大量有益的研究工作。
消費級深度攝像機Microsoft Kinect推出后,人們可以直接利用深度數(shù)據(jù)比較便捷地進行室內(nèi)場景三維重建。Newcombe等人提出的KinectFusion算法利用Kinect來獲取圖像中各點的深度信息,通過迭代近似最近鄰點(Iterative Closest Point,ICP)算法將三維點在當(dāng)前幀相機坐標(biāo)系下的坐標(biāo)與在全局模型中的坐標(biāo)進行對齊來估計當(dāng)前幀相機的姿態(tài),再通過曲面隱函數(shù)(Truncated Signed Distance Function,TSDF)迭代進行體數(shù)據(jù)融合,得到稠密的三維模型。雖然Kinect獲取深度不受光照條件和紋理豐富程度的影響,但其深度數(shù)據(jù)范圍只有0.5-4m,而且網(wǎng)格模型的位置和大小是固定的,所以只適用于局部、靜態(tài)的室內(nèi)場景。
基于消費級深度相機進行室內(nèi)場景三維重建,一般存在以下幾個問題:(1)消費級深度相機獲取的深度圖像分辨率小、噪聲大使得物體表面細節(jié)難以保持,而且深度值范圍有限不能直接用于完整場景三維重建;(2)相機姿態(tài)估計產(chǎn)生的累積誤差會造成錯誤、扭曲的三維模型;(3)消費級深度相機一般都是手持式拍攝,相機的運動狀態(tài)比較隨意,獲取的數(shù)據(jù)質(zhì)量有好有壞,影響重建效果。
為了進行完整的室內(nèi)場景三維重建,Whelan等人提出了Kintinuous算法,其是對KinectFusion的進一步擴展。該算法使用ShiftingTSDFVolume循環(huán)利用顯存的方式解決大場景重建時網(wǎng)格模型顯存消耗的問題,并通過DBoW尋找匹配的關(guān)鍵幀進行閉環(huán)檢測,最后對位姿圖和模型做優(yōu)化,從而得到大場景三維模型。Choi等人提出了Elastic Fragment思想,先將RGBD數(shù)據(jù)流每隔50幀做分段,對每段單獨做視覺里程計估計,從兩兩段間的點云數(shù)據(jù)中提取幾何描述子FPFH尋找匹配進行閉環(huán)檢測,再引入line processes約束對檢測結(jié)果進行優(yōu)化、去除錯誤的閉環(huán),最后利用優(yōu)化后的里程計信息進行體數(shù)據(jù)融合。通過分段處理和閉環(huán)檢測實現(xiàn)了室內(nèi)完整場景重建,但是沒有考慮保留物體的局部幾何細節(jié),而且這種固定分段的方法在進行真實室內(nèi)場景重建時并不魯棒。Zeng等人提出了3D Match描述子概念,該算法先將RGBD數(shù)據(jù)流進行固定分段處理并重建得到局部模型,從每個分段的3D模型上提取關(guān)鍵點作為3D卷積網(wǎng)絡(luò)(ConvNet)的輸入,用該網(wǎng)絡(luò)學(xué)習(xí)得到的特征向量作為另一矩陣網(wǎng)絡(luò)(Metric network)的輸入,通過相似度比較輸出匹配結(jié)果。由于深度網(wǎng)絡(luò)具有非常明顯的特征學(xué)習(xí)優(yōu)勢,相對其他描述子用3D Match來做幾何配準(zhǔn)可以提高重建精度。但這種方法需要先進行局部三維重建,利用深度學(xué)習(xí)網(wǎng)絡(luò)來做幾何配準(zhǔn),再輸出全局三維模型,而且網(wǎng)絡(luò)訓(xùn)練需要大量的數(shù)據(jù),整個重建流程效率較低。
在提高三維重建精度方面,Angela等人提出了VSBR算法,其主要思想是利用明暗恢復(fù)形狀(Shape from Shading,SFS)技術(shù)對TSDF數(shù)據(jù)進行分層優(yōu)化后再進行融合,以解決TSDF數(shù)據(jù)融合時過度平滑導(dǎo)致物體表面細節(jié)丟失的問題,從而得到較為精細的三維結(jié)構(gòu)模型。但這種方法只對理想光源下的單體重建比較有效,室內(nèi)場景由于光源變化較大精度提升不明顯。
有鑒于此,特提出本發(fā)明。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中的上述問題,即為了解決如何提高室內(nèi)場景下三維重建精度的技術(shù)問題,提供一種基于消費級深度相機進行室內(nèi)完整場景三維重建的方法及系統(tǒng)。
為了實現(xiàn)上述目的,一方面,提供以下技術(shù)方案:
一種基于消費級深度相機進行室內(nèi)完整場景三維重建的方法,該方法可以包括:
獲取深度圖像;
對所述深度圖像進行自適應(yīng)雙邊濾波;
對濾波后的深度圖像進行基于視覺內(nèi)容的分塊融合和配準(zhǔn)處理;
根據(jù)處理結(jié)果,進行加權(quán)體數(shù)據(jù)融合,從而重建室內(nèi)完整場景三維模型。
優(yōu)選地,所述對所述深度圖像進行自適應(yīng)雙邊濾波具體包括:
根據(jù)下式進行自適應(yīng)雙邊濾波:
其中,所述u和所述uk分別表示所述深度圖像上的任一像素及其領(lǐng)域像素;所述Z(u)和所述Z(uk)分別表示對應(yīng)所述u和所述uk的深度值;所述表示濾波后對應(yīng)的深度值;所述W表示在領(lǐng)域上的歸一化因子;所述ws和所述wc分別表示在空間域和值域濾波的高斯核函數(shù)。
優(yōu)選地,所述在空間域和值域濾波的高斯核函數(shù)根據(jù)下式來確定:
其中,所述δs和所述δc分別是空間域和值域高斯核函數(shù)的方差;
其中,所述δs和所述δc根據(jù)下式來確定:
其中,所述f表示所述深度相機的焦距,所述Ks和所述Kc表示常數(shù)。
優(yōu)選地,所述對濾波后的深度圖像進行基于視覺內(nèi)容的分塊融合和配準(zhǔn)處理具體包括:基于視覺內(nèi)容對深度圖像序列進行分段,并對每一分段進行分塊融合,且所述分段間進行閉環(huán)檢測,對閉環(huán)檢測的結(jié)果做全局優(yōu)化。
優(yōu)選地,所述基于視覺內(nèi)容對深度圖像序列進行分段,并對每一分段進行分塊融合,且所述分段間進行閉環(huán)檢測,對閉環(huán)檢測的結(jié)果做全局優(yōu)化具體包括:
基于視覺內(nèi)容檢測自動分段方法對深度圖像序列進行分段,將相似的深度圖像內(nèi)容分在一個分段中,并對每一分段進行分塊融合,確定所述深度圖像之間的變換關(guān)系,并根據(jù)所述變換關(guān)系在段與段之間做閉環(huán)檢測,以實現(xiàn)全局優(yōu)化。
優(yōu)選地,所述基于視覺內(nèi)容檢測自動分段方法對深度圖像序列進行分段,將相似的深度圖像內(nèi)容分在一個分段中,并對每一分段進行分塊融合,確定所述深度圖像之間的變換關(guān)系,并根據(jù)所述變換關(guān)系在段與段之間做閉環(huán)檢測,以實現(xiàn)全局優(yōu)化,具體包括:
采用Kintinuous框架,進行視覺里程計估計,得到每幀深度圖像下的相機位姿信息;
根據(jù)所述相機位姿信息,將由所述每幀深度圖像對應(yīng)的點云數(shù)據(jù)反投影到初始坐標(biāo)系下,用投影后得到的深度圖像與初始幀的深度圖像進行相似度比較,并當(dāng)相似度低于相似度閾值時,初始化相機位姿,進行分段;
提取每一分段點云數(shù)據(jù)中的PFFH幾何描述子,并在每兩段之間進行粗配準(zhǔn),以及采用GICP算法進行精配準(zhǔn),得到段與段之間的匹配關(guān)系;
利用每一分段的位姿信息以及所述段與段之間的匹配關(guān)系,構(gòu)建圖并采用G2O框架進行圖優(yōu)化,得到優(yōu)化后的相機軌跡信息,從而實現(xiàn)所述全局優(yōu)化。
優(yōu)選地,所述根據(jù)所述相機位姿信息,將由所述每幀深度圖像對應(yīng)的點云數(shù)據(jù)反投影到初始坐標(biāo)系下,用投影后得到的深度圖像與初始幀的深度圖像進行相似度比較,并當(dāng)相似度低于相似度閾值時,初始化相機位姿,進行分段,具體包括:
步驟1:計算所述每幀深度圖像與第一幀深度圖像的相似度;
步驟2:判斷所述相似度是否低于相似度閾值;
步驟3:若是,則對所述深度圖像序列進行分段;
步驟4:將下一幀深度圖像作為下一分段的起始幀深度圖像,并重復(fù)執(zhí)行步驟1和步驟2,直至處理完所有幀深度圖像。
優(yōu)選地,所述步驟1具體包括:
根據(jù)投影關(guān)系和任一幀深度圖像的深度值,并利用下式計算所述深度圖像上每個像素所對應(yīng)的第一空間三維點:
p=π-1(up,Z(up))
其中,所述up是所述深度圖像上的任一像素;所述Z(up)和所述p分別表示所述up對應(yīng)的深度值和所述第一空間三維點;所述π表示所述投影關(guān)系;
根據(jù)下式將所述第一空間三維點旋轉(zhuǎn)平移變換到世界坐標(biāo)系下,得到第二空間三維點:
q=Tip
其中,所述Ti表示第i幀深度圖對應(yīng)空間三維點到世界坐標(biāo)系下的旋轉(zhuǎn)平移矩陣;所述p表示所述第一空間三維點,所述q表示所述第二空間三維點;所述i取正整數(shù);
根據(jù)下式將所述第二空間三維點反投影到二維圖像平面,得到投影后的深度圖像:
其中,所述uq是所述q對應(yīng)的投影后深度圖像上的像素;所述fx、所述fy、所述cx和所述cy表示深度相機的內(nèi)參;所述xq、yq、zq表示所述q的坐標(biāo);所述T表示矩陣的轉(zhuǎn)置;
分別計算所述起始幀深度圖像和任一幀投影后的深度圖像上的有效像素個數(shù),并將兩者比值作為相似度。
優(yōu)選地,所述根據(jù)處理結(jié)果,進行加權(quán)體數(shù)據(jù)融合,從而重建室內(nèi)完整場景三維模型具體包括:根據(jù)所述處理結(jié)果,利用截斷符號距離函數(shù)網(wǎng)格模型融合各幀的深度圖像,并使用體素網(wǎng)格來表示三維空間,從而得到室內(nèi)完整場景三維模型。
優(yōu)選地,根據(jù)所述處理結(jié)果,利用截斷符號距離函數(shù)網(wǎng)格模型融合各幀的深度圖像,并使用體素網(wǎng)格來表示三維空間,從而得到室內(nèi)完整場景三維模型,具體包括:
基于噪聲特點與興趣區(qū)域模型,利用Volumetric method框架進行所述截斷符號距離函數(shù)數(shù)據(jù)加權(quán)融合;
采用Marching cubes算法進行Mesh模型提取,從而得到所述室內(nèi)完整場景三維模型。
優(yōu)選地,所述截斷符號距離函數(shù)根據(jù)下式來確定:
fi(v)=[K-1zi(u)[uT,1]T]z-[vi]z
其中,fi(v)表示截斷符號距離函數(shù),也即網(wǎng)格到物體模型表面的距離,正負表示該網(wǎng)格是在表面被遮擋一側(cè)還是在可見一側(cè),而過零點就是表面上的點;所述K表示所述相機的內(nèi)參數(shù)矩陣;所述u表示像素;所述zi(u)表示所述像素u對應(yīng)的深度值;所述vi表示體素。
優(yōu)選地,所述數(shù)據(jù)加權(quán)融合根據(jù)下式進行:
其中,所述v表示體素;所述fi(v)和所述wi(v)分別表示所述體素v對應(yīng)的截斷符號距離函數(shù)及其權(quán)值函數(shù);所述n取正整數(shù);所述F(v)表示融合后所述體素v所對應(yīng)的截斷符號距離函數(shù)值;所述W(v)表示融合后體素v所對應(yīng)的截斷符號距離函數(shù)值的權(quán)重;
其中,所述權(quán)值函數(shù)可以根據(jù)下式來確定:
其中,所述di表示興趣區(qū)域的半徑;所述δs是深度數(shù)據(jù)中的噪聲方差;所述w為常數(shù)。
為了實現(xiàn)上述目的,另一方面,還提供了一種基于消費級深度相機進行室內(nèi)完整場景三維重建的系統(tǒng),該系統(tǒng)包括:
獲取模塊,用于獲取深度圖像;
濾波模塊,用于對所述深度圖像進行自適應(yīng)雙邊濾波;
分塊融合與配準(zhǔn)模塊,用于對濾波后的深度圖像進行基于視覺內(nèi)容的分塊融合和配準(zhǔn)處理;
體數(shù)據(jù)融合模塊,用于根據(jù)處理結(jié)果,進行加權(quán)體數(shù)據(jù)融合,從而重建室內(nèi)完整場景三維模型。
優(yōu)選地,所述濾波模塊具體用于:
根據(jù)下式進行自適應(yīng)雙邊濾波:
其中,所述u和所述uk分別表示所述深度圖像上的任一像素及其領(lǐng)域像素;所述Z(u)和所述Z(uk)分別表示對應(yīng)所述u和所述uk的深度值;所述表示濾波后對應(yīng)的深度值;所述W表示在領(lǐng)域上的歸一化因子;所述ws和所述wc分別表示在空間域和值域濾波的高斯核函數(shù)。
優(yōu)選地,所述分塊融合與配準(zhǔn)模塊具體可以用于:基于視覺內(nèi)容對深度圖像序列進行分段,并對每一分段進行分塊融合,且所述分段間進行閉環(huán)檢測,對閉環(huán)檢測的結(jié)果做全局優(yōu)化。
優(yōu)選地,所述分塊融合與配準(zhǔn)模塊還具體可以用于:
基于視覺內(nèi)容檢測自動分段方法對深度圖像序列進行分段,將相似的深度圖像內(nèi)容分在一個分段中,對每一分段進行分塊融合,確定所述深度圖像之間的變換關(guān)系,并根據(jù)所述變換關(guān)系在段與段之間做閉環(huán)檢測,以實現(xiàn)全局優(yōu)化。
優(yōu)選地,所述分塊融合與配準(zhǔn)模塊具體包括:
相機位姿信息獲取單元,用于采用Kintinuous框架,進行視覺里程計估計,得到每幀深度圖像下的相機位姿信息;
分段單元,用于根據(jù)所述相機位姿信息,將由所述每幀深度圖像對應(yīng)的點云數(shù)據(jù)反投影到初始坐標(biāo)系下,用投影后得到的深度圖像與初始幀的深度圖像進行相似度比較,并當(dāng)相似度低于相似度閾值時,初始化相機位姿,進行分段;
配準(zhǔn)單元,用于提取每一分段點云數(shù)據(jù)中的PFFH幾何描述子,并在每兩段之間進行粗配準(zhǔn),以及采用GICP算法進行精配準(zhǔn),得到段與段之間的匹配關(guān)系;
優(yōu)化單元,用于利用每一分段的位姿信息以及所述段與段之間的匹配關(guān)系,構(gòu)建圖并采用G2O框架進行圖優(yōu)化,得到優(yōu)化后的相機軌跡信息,從而實現(xiàn)所述全局優(yōu)化。
優(yōu)選地,所述分段單元具體包括:
計算單元,用于計算所述每幀深度圖像與第一幀深度圖像的相似度;
判斷單元,用于判斷所述相似度是否低于相似度閾值;
分段子單元,用于當(dāng)所述相似度低于相似度閾值時,對所述深度圖像序列進行分段;
處理單元,用于將下一幀深度圖像作為下一分段的起始幀深度圖像,并重復(fù)執(zhí)行計算單元和判斷單元,直至處理完所有幀深度圖像。
優(yōu)選地,所述體數(shù)據(jù)融合模塊具體用于:根據(jù)所述處理結(jié)果,利用截斷符號距離函數(shù)網(wǎng)格模型融合各幀的深度圖像,并使用體素網(wǎng)格來表示三維空間,從而得到室內(nèi)完整場景三維模型。
優(yōu)選地,所述體數(shù)據(jù)融合模塊具體包括:
加權(quán)融合單元,用于基于噪聲特點與興趣區(qū)域,利用Volumetric method框架進行所述截斷符號距離函數(shù)數(shù)據(jù)加權(quán)融合;
提取單元,用于采用Marching cubes算法進行Mesh模型提取,從而得到所述室內(nèi)完整場景三維模型。
本發(fā)明實施例提供一種基于消費級深度相機進行室內(nèi)完整場景三維重建的方法及系統(tǒng)。其中,該方法包括獲取深度圖像;對深度圖像進行自適應(yīng)雙邊濾波;對濾波后的深度圖像進行基于視覺內(nèi)容的分塊融合和配準(zhǔn)處理;根據(jù)處理結(jié)果,進行加權(quán)體數(shù)據(jù)融合,從而重建室內(nèi)完整場景三維模型。本發(fā)明實施例通過對深度圖像進行基于視覺內(nèi)容的分塊融合和配準(zhǔn),能有效地降低視覺里程計估計中的累積誤差并提高配準(zhǔn)精度,還采用加權(quán)體數(shù)據(jù)融合算法,這可以有效地保持物體表面的幾何細節(jié),由此,解決了如何提高室內(nèi)場景下三維重建精度的技術(shù)問題,從而能夠得到完整、準(zhǔn)確、精細化的室內(nèi)場景模型。
附圖說明
圖1為根據(jù)本發(fā)明實施例的基于消費級深度相機進行室內(nèi)完整場景三維重建的方法的流程示意圖;
圖2a為根據(jù)本發(fā)明實施例的深度圖像對應(yīng)的彩色圖像;
圖2b為根據(jù)本發(fā)明實施例的從深度圖像得到的點云示意圖;
圖2c為根據(jù)本發(fā)明實施例的對深度圖像進行雙邊濾波得到的點云示意圖;
圖2d為根據(jù)本發(fā)明實施例的對深度圖像進行自適應(yīng)雙邊濾波得到的點云示意圖
圖3為根據(jù)本發(fā)明實施例的基于視覺內(nèi)容分段融合、配準(zhǔn)的流程示意圖;
圖4為根據(jù)本發(fā)明實施例的加權(quán)體數(shù)據(jù)融合過程示意圖;
圖5a為運用非加權(quán)體數(shù)據(jù)融合算法的三維重建結(jié)果示意圖;
圖5b為圖5a中三維模型的局部細節(jié)示意圖;
圖5c為根據(jù)本發(fā)明實施例提出的加權(quán)體數(shù)據(jù)融合算法得到的三維重建結(jié)果示意圖;
圖5d為圖5c中三維模型的局部細節(jié)示意圖;
圖6為根據(jù)本發(fā)明實施例的在3D Scene Data數(shù)據(jù)集上使用本發(fā)明實施例提出的方法進行三維重建的效果示意圖;
圖7為根據(jù)本發(fā)明實施例的在Augmented ICL-NUIM Dataset數(shù)據(jù)集上使用本發(fā)明實施例提出的方法進行三維重建的效果示意圖;
圖8為根據(jù)本發(fā)明實施例的利用Microsoft Kinect for Windows采集的室內(nèi)場景數(shù)據(jù)進行三維重建的效果示意圖;
圖9為根據(jù)本發(fā)明實施例的基于消費級深度相機進行室內(nèi)完整場景三維重建的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面參照附圖來描述本發(fā)明的優(yōu)選實施方式。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,這些實施方式僅僅用于解釋本發(fā)明的技術(shù)原理,并非旨在限制本發(fā)明的保護范圍。
本發(fā)明實施例提供一種基于消費級深度相機進行室內(nèi)完整場景三維重建的方法。如圖1所示,該方法包括:
S100:獲取深度圖像。
具體地,本步驟可以包括:利用基于結(jié)構(gòu)光原理的消費級深度相機來獲取深度圖像。
其中,基于結(jié)構(gòu)光原理的消費級深度相機(Microsoft Kinect for Windows和Xtion,簡稱深度相機),是通過發(fā)射結(jié)構(gòu)光,接收反射信息來獲取深度圖像的深度數(shù)據(jù)的。
在實際應(yīng)用中,可以利用手持式消費級深度相機Microsoft Kinect for Windows采集真實室內(nèi)場景數(shù)據(jù)。
深度數(shù)據(jù)可以根據(jù)下式來計算:
其中,f表示消費級深度相機的焦距;B表示基線;D表示視差。
S110:對深度圖像進行自適應(yīng)雙邊濾波。
本步驟利用基于結(jié)構(gòu)光原理的消費級深度相機的噪聲特點對獲取的深度圖像進行自適應(yīng)雙邊濾波。
其中,自適應(yīng)雙邊濾波算法是指在深度圖像的空間域和值域上都進行濾波。
在實際應(yīng)用中,可以根據(jù)深度相機的噪聲特點及其內(nèi)部參數(shù)來設(shè)置自適應(yīng)雙邊濾波算法的參數(shù),這樣能有效地去除噪聲并保留邊緣信息。
對深度Z關(guān)于視差D求偏導(dǎo),存在以下關(guān)系:
深度數(shù)據(jù)的噪聲主要產(chǎn)生于量化過程,從上式可以看出深度噪聲的方差與深度值二次方成正比,也就是說深度值越大,噪聲也越大。為了有效去除深度圖像中的噪聲,本發(fā)明實施例基于這個噪聲特點來定義濾波算法。
具體地,上述自適應(yīng)雙邊濾波可以根據(jù)下式進行:
其中,u和uk分別表示深度圖像上的任一像素及其領(lǐng)域像素;Z(u)和Z(uk)分別表示對應(yīng)u和uk的深度值;表示濾波后對應(yīng)的深度值;W表示在領(lǐng)域上的歸一化因子;ws和wc分別表示在空間域和值域濾波的高斯核函數(shù)。
在上述實施例中,ws和wc可以根據(jù)下式來確定:
其中,δs和δc分別是空間域和值域高斯核函數(shù)的方差。
δs和δc與深度值大小有關(guān),其取值不是固定的。
具體地,在上述實施例中,δs和δc可以根據(jù)下式來確定:
其中,f表示深度相機的焦距,Ks和Kc表示常數(shù),其具體取值與深度相機的參數(shù)有關(guān)。
圖2a-d示例性地示出了不同濾波算法的效果比較示意圖。其中,圖2a示出了深度圖像對應(yīng)的彩色圖像。圖2b示出了從深度圖像得到的點云。圖2c示出了對深度圖像進行雙邊濾波得到的點云。圖2d示出了對深度圖像進行自適應(yīng)雙邊濾波得到的點云。
本發(fā)明實施例通過采用自適應(yīng)雙邊濾波方法,可以實現(xiàn)深度圖的保邊、去噪。
S120:對深度圖像進行基于視覺內(nèi)容的分塊融合和配準(zhǔn)處理。
本步驟基于視覺內(nèi)容對深度圖像序列進行分段,并對每個分段進行分塊融合,且分段間進行閉環(huán)檢測,對閉環(huán)檢測的結(jié)果做全局優(yōu)化。其中,深度圖像序列為深度圖像數(shù)據(jù)流。
優(yōu)選地,本步驟可以包括:確定深度圖像之間的變換關(guān)系,基于視覺內(nèi)容自動分段的方法對深度圖像序列進行分段,將相似的深度圖像內(nèi)容分在一個分段中,對每個分段進行分塊融合,確定深度圖像之間的變換關(guān)系,并根據(jù)變換關(guān)系在段與段之間做閉環(huán)檢測,并實現(xiàn)全局優(yōu)化。
進一步地,本步驟可以包括:
S121:采用Kintinuous框架,進行視覺里程計估計,得到每幀深度圖像下的相機位姿信息。
S122:根據(jù)相機位姿信息,將由每幀深度圖像對應(yīng)的點云數(shù)據(jù)反投影到初始坐標(biāo)系下,用投影后得到的深度圖像與初始幀的深度圖像進行相似度比較,并當(dāng)相似度低于相似度閾值時,初始化相機位姿,進行分段。
S123:提取每一分段點云數(shù)據(jù)中的PFFH幾何描述子,并在每兩段之間進行粗配準(zhǔn),以及采用GICP算法進行精配準(zhǔn),得到段與段之間的匹配關(guān)系。
本步驟對段與段之間做閉環(huán)檢測。
S124:利用每一分段的位姿信息以及段與段之間的匹配關(guān)系,構(gòu)建圖并采用G2O框架進行圖優(yōu)化,得到優(yōu)化后的相機軌跡信息,從而實現(xiàn)全局優(yōu)化。
本步驟在優(yōu)化時應(yīng)用(Simultaneous Localization and Calibration,SLAC)模式改善非剛性畸變,引入line processes約束刪除錯誤的閉環(huán)匹配。
上述步驟S122還可以具體包括:
S1221:計算每幀深度圖像與第一幀深度圖像的相似度。
S1222:判斷該相似度是否低于相似度閾值,若是,則執(zhí)行步驟S1223;否則,執(zhí)行步驟S1224。
S1223:對深度圖像序列進行分段。
本步驟基于視覺內(nèi)容對深度圖像序列進行分段處理。這樣既可以有效地解決視覺里程計估計產(chǎn)生的累積誤差問題,又可以將相似的內(nèi)容融合在一起,從而提高配準(zhǔn)精度。
S1224:對深度圖像序列不進行分段。
S1225:將下一幀深度圖像作為下一分段的起始幀深度圖像,并重復(fù)執(zhí)行步驟S1221和步驟S1222,直至處理完所有幀深度圖像。
在上述實施例中,計算每幀深度圖像與第一幀深度圖像的相似度的步驟具體可以包括:
S12211:根據(jù)投影關(guān)系和任一幀深度圖像的深度值,并利用下式計算深度圖像上每個像素所對應(yīng)的第一空間三維點:
p=π-1(up,Z(up))
其中,up是深度圖像上的任一像素;Z(up)和p分別表示up對應(yīng)的深度值和第一空間三維點;π表示投影關(guān)系,即每幀深度圖像對應(yīng)的點云數(shù)據(jù)反投影到初始坐標(biāo)系下的2D-3D投影變換關(guān)系。
S12212:根據(jù)下式將第一空間三維點旋轉(zhuǎn)平移變換到世界坐標(biāo)系下,得到第二空間三維點:
q=Tip
其中,Ti表示第i幀深度圖對應(yīng)空間三維點到世界坐標(biāo)系下的旋轉(zhuǎn)平移矩陣,其可以通過視覺里程計估計得到;i取正整數(shù);p表示第一空間三維點,q表示第二空間三維點,p和q的坐標(biāo)分別為:
p=(xp,yp,zp),q=(xq,yq,zq)。
S12213:根據(jù)下式將第二空間三維點反投影到二維圖像平面,得到投影后的深度圖像:
其中,uq是q對應(yīng)的投影后深度圖像上的像素;fx、fy、cx和cy表示深度相機的內(nèi)參;xq、yq、zq表示q的坐標(biāo);T表示矩陣的轉(zhuǎn)置。
S12214:分別計算起始幀深度圖像和任一幀投影后的深度圖像上的有效像素個數(shù),并將兩者比值作為相似度。
舉例來說,根據(jù)下式來計算相似度:
其中,n0和ni分別表示起始幀深度圖像和任一幀投影后的深度圖像上的有效像素個數(shù);ρ表示相似度。
圖3示例性地示出了基于視覺內(nèi)容分段融合、配準(zhǔn)的流程示意圖。
本發(fā)明實施例采用基于視覺內(nèi)容自動分段算法,能有效降低視覺里程計估計中的累積誤差,提高了配準(zhǔn)精度。
S130:根據(jù)處理結(jié)果,進行加權(quán)體數(shù)據(jù)融合,從而重建室內(nèi)完整場景三維模型。
具體地,本步驟可以包括:根據(jù)基于視覺內(nèi)容的分塊融合和配準(zhǔn)處理結(jié)果,利用截斷符號距離函數(shù)(TSDF)網(wǎng)格模型融合各幀的深度圖像,并使用體素網(wǎng)格來表示三維空間,從而得到室內(nèi)完整場景三維模型。
本步驟還可以進一步包括:
S131:基于噪聲特點與興趣區(qū)域,利用Volumetric method框架進行截斷符號距離函數(shù)數(shù)據(jù)加權(quán)融合。
S132:采用Marching cubes算法進行Mesh模型提取。
在實際應(yīng)用中,可以根據(jù)視覺里程計的估計結(jié)果,利用TSDF網(wǎng)格模型融合各幀的深度圖像使用分辨率為m的體素網(wǎng)格來表示三維空間,即每個三維空間被分為m塊,每個網(wǎng)格v存儲兩個值:截斷符號距離函數(shù)fi(v)及其權(quán)重wi(v)。
其中,可以根據(jù)下式來確定截斷符號距離函數(shù):
fi(v)=[K-1zi(u)[uT,1]T]z-[vi]z
其中,fi(v)表示截斷符號距離函數(shù),也即網(wǎng)格到物體模型表面的距離,正負表示該網(wǎng)格是在表面被遮擋一側(cè)還是在可見一側(cè),而過零點就是表面上的點;K表示相機的內(nèi)參數(shù)矩陣;u表示像素;zi(u)表示像素u對應(yīng)的深度值;vi表示體素。其中,該相機可以為深度相機或深度攝像機。
其中,可以根據(jù)下式進行數(shù)據(jù)加權(quán)融合:
其中,fi(v)和wi(v)分別表示體素v對應(yīng)的截斷符號距離函數(shù)(TSDF)及其權(quán)值函數(shù);n取正整數(shù);F(v)表示融合后體素v所對應(yīng)的截斷符號距離函數(shù)值;W(v)表示融合后體素v所對應(yīng)的截斷符號距離函數(shù)值的權(quán)重。
在上述實施例中,權(quán)值函數(shù)可以根據(jù)深度數(shù)據(jù)的噪聲特點以及興趣區(qū)域來確定,其值是不固定的。為了保持物體表面的幾何細節(jié),將噪聲小的區(qū)域以及感興趣區(qū)域的權(quán)值設(shè)置得大,將噪聲大的區(qū)域或不感興趣區(qū)域的權(quán)值設(shè)置得小。
具體地,權(quán)值函數(shù)可以根據(jù)下式來確定:
其中,di表示興趣區(qū)域的半徑,半徑越小表示越感興趣,權(quán)值越大;δs是深度數(shù)據(jù)中的噪聲方差,其取值與自適應(yīng)雙邊濾波算法空間域核函數(shù)的方差一致;w為常數(shù),優(yōu)選地,其可以取值為1或0。
圖4示例性地示出了加權(quán)體數(shù)據(jù)融合過程示意圖。
本發(fā)明實施例采用加權(quán)體數(shù)據(jù)融合算法可以有效保持物體表面的幾何細節(jié),能夠得到完整、準(zhǔn)確、精細化的室內(nèi)場景模型,具有良好的魯棒性和擴展性。
圖5a示例性地示出了運用非加權(quán)體數(shù)據(jù)融合算法的三維重建結(jié)果;圖5b示例性地示出了圖5a中三維模型的局部細節(jié);圖5c示例性地示出了利用本發(fā)明實施例提出的加權(quán)體數(shù)據(jù)融合算法得到的三維重建結(jié)果;圖5d示例性地示出了圖5c中三維模型的局部細節(jié)。
圖6示例性地示出了在3D Scene Data數(shù)據(jù)集上使用本發(fā)明實施例提出的方法進行三維重建的效果示意圖;圖7示例性地示出了在Augmented ICL-NUIM Dataset數(shù)據(jù)集上使用本發(fā)明實施例提出的方法進行三維重建的效果示意圖;圖8示例性地示出了利用Microsoft Kinect for Windows采集的室內(nèi)場景數(shù)據(jù)進行三維重建的效果示意圖。
應(yīng)指出的是,本文雖然以上述順序來描述本發(fā)明實施例,但是,本領(lǐng)域技術(shù)人員能夠理解,還可以采取不同于此處的描述順序來實施本發(fā)明,這些簡單的變化也應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
基于與方法實施例相同的技術(shù)構(gòu)思,本發(fā)明實施例還提供一種基于消費級深度相機進行室內(nèi)完整場景三維重建的系統(tǒng),如圖9所示,該系統(tǒng)90包括:獲取模塊92、濾波模塊94、分塊融合與配準(zhǔn)模塊96和體數(shù)據(jù)融合模塊98。其中,獲取模塊92用于獲取深度圖像。濾波模塊94用于對深度圖像進行自適應(yīng)雙邊濾波。分塊融合與配準(zhǔn)模塊96用于對濾波后的深度圖像進行基于視覺內(nèi)容的分塊融合和配準(zhǔn)處理。體數(shù)據(jù)融合模塊98用于根據(jù)處理結(jié)果,進行加權(quán)體數(shù)據(jù)融合,從而重建室內(nèi)完整場景三維模型。
本發(fā)明實施例通過采用上述技術(shù)方案,能有效地降低視覺里程計估計中的累積誤差,并提高配準(zhǔn)精度,可以有效保持物體表面的幾何細節(jié),能夠得到完整、準(zhǔn)確、精細化的室內(nèi)場景模型。
在一些實施例中,濾波模塊具體用于:根據(jù)下式進行自適應(yīng)雙邊濾波:
其中,u和uk分別表示深度圖像上的任一像素及其領(lǐng)域像素;Z(u)和Z(uk)分別表示對應(yīng)u和uk的深度值;表示濾波后對應(yīng)的深度值;W表示在領(lǐng)域上的歸一化因子;ws和wc分別表示在空間域和值域濾波的高斯核函數(shù)。
在一些實施例中,分塊融合與配準(zhǔn)模塊具體可以用于:基于視覺內(nèi)容對深度圖像序列進行分段,并對每一分段進行分塊融合,且分段間進行閉環(huán)檢測,對閉環(huán)檢測的結(jié)果做全局優(yōu)化。
在另一些實施例中,分塊融合與配準(zhǔn)模塊還具體可以用于:確定深度圖像之間的變換關(guān)系,基于視覺內(nèi)容檢測自動分段方法對深度圖像序列進行分段,將相似的深度圖像內(nèi)容分在一個分段中,并對每一分段進行分塊融合,確定深度圖像之間的變換關(guān)系,根據(jù)變換關(guān)系在段與段之間做閉環(huán)檢測,并實現(xiàn)全局優(yōu)化。
在一些優(yōu)選的實施例中,分塊融合與配準(zhǔn)模塊具體可以包括:相機位姿信息獲取單元、分段單元、配準(zhǔn)單元和優(yōu)化單元。其中,相機位姿信息獲取單元用于采用Kintinuous框架,進行視覺里程計估計,得到每幀深度圖像下的相機位姿信息。分段單元用于根據(jù)相機位姿信息,將由每幀深度圖像對應(yīng)的點云數(shù)據(jù)反投影到初始坐標(biāo)系下,用投影后得到的深度圖像與初始幀的深度圖像進行相似度比較,并當(dāng)相似度低于相似度閾值時,初始化相機位姿,進行分段。配準(zhǔn)單元用于提取每一分段點云數(shù)據(jù)中的PFFH幾何描述子,并在每兩段之間進行粗配準(zhǔn),以及采用GICP算法進行精配準(zhǔn),得到段與段之間的匹配關(guān)系。優(yōu)化單元用于利用每一分段的位姿信息以及段與段之間的匹配關(guān)系,構(gòu)建圖并采用G2O框架進行圖優(yōu)化,得到優(yōu)化后的相機軌跡信息,從而實現(xiàn)全局優(yōu)化。
其中,上述分段單元具體可以包括:計算單元、判斷單元、分段子單元和處理單元。其中,計算單元用于計算每幀深度圖像與第一幀深度圖像的相似度。判斷單元用于判斷相似度是否低于相似度閾值。分段子單元用于當(dāng)相似度低于相似度閾值時,對深度圖像序列進行分段。處理單元用于將下一幀深度圖像作為下一分段的起始幀深度圖像,并重復(fù)執(zhí)行計算單元和判斷單元,直至處理完所有幀深度圖像。
在一些實施例中,體數(shù)據(jù)融合模塊具體可以用于根據(jù)處理結(jié)果,利用截斷符號距離函數(shù)網(wǎng)格模型融合各幀的深度圖像,并使用體素網(wǎng)格來表示三維空間,從而得到室內(nèi)完整場景三維模型。
在一些實施例中,體數(shù)據(jù)融合模塊具體可以包括加權(quán)融合單元和提取單元。其中,加權(quán)融合單元用于基于噪聲特點與興趣區(qū)域,利用Volumetric method框架進行截斷符號距離函數(shù)數(shù)據(jù)加權(quán)融合。提取單元用于采用Marching cubes算法進行Mesh模型提取,從而得到室內(nèi)完整場景三維模型。
下面以一優(yōu)選實施例來詳細說明本發(fā)明。
基于消費級深度相機進行室內(nèi)完整場景三維重建的系統(tǒng)包括采集模塊、濾波模塊、分塊融合與配準(zhǔn)模塊和體數(shù)據(jù)融合模塊。其中:
采集模塊用于利用深度相機對室內(nèi)場景進行深度圖像采集。
濾波模塊用于對獲取的深度圖像做自適應(yīng)雙邊濾波處理。
該采集模塊為上述獲取模塊的等同替換。在實際應(yīng)用中,可以利用手持式消費級深度相機Microsoft Kinect for Windows采集真實室內(nèi)場景數(shù)據(jù)。然后,對采集到的深度圖像進行自適應(yīng)雙邊濾波,根據(jù)深度相機的噪聲特點及其內(nèi)部參數(shù)來自動設(shè)置自適應(yīng)雙邊濾波方法中的參數(shù),故,本發(fā)明實施例能有效去除噪聲并保留邊緣信息。
分塊融合與配準(zhǔn)模塊用于基于視覺內(nèi)容對數(shù)據(jù)流做自動分段,每個分段進行分塊融合,分段間進行閉環(huán)檢測,對閉環(huán)檢測的結(jié)果做全局優(yōu)化。
該分塊融合與配準(zhǔn)模塊進行基于視覺內(nèi)容的自動分塊融合、配準(zhǔn)。
在一個更優(yōu)選的實施例中,分塊融合與配準(zhǔn)模塊具體包括:位姿信息獲取模塊、分段模塊、粗配準(zhǔn)模塊、精配準(zhǔn)模塊和優(yōu)化模塊。其中,位姿信息獲取模塊用于采用Kintinuous框架,進行視覺里程計估計,得到每幀深度圖像下的相機位姿信息。分段模塊用于根據(jù)相機位姿信息將由每幀深度圖像對應(yīng)的點云數(shù)據(jù)反投影到初始坐標(biāo)系下,用投影后的深度圖像與初始幀的深度圖像進行相似度比較,若相似度低于相似度閾值則初始化相機位姿,并進行新的分段。粗配準(zhǔn)模塊用于提取每一分段點云數(shù)據(jù)中的PFFH幾何描述子,并在每兩段間之間進行粗配準(zhǔn);精配準(zhǔn)模塊用于采用GICP算法進行精配準(zhǔn),以獲取段與段之間的匹配關(guān)系。優(yōu)化模塊用于利用每一段的位姿信息以及段與段之間的匹配關(guān)系,構(gòu)建圖并采用G2O框架進行圖優(yōu)化。
優(yōu)選地,上述優(yōu)化模塊還進一步用于應(yīng)用SLAC(Simultaneous Localization and Calibration)模式以優(yōu)化非剛性畸變,并利用line processes約束刪除錯誤的閉環(huán)匹配。
上述分塊融合與配準(zhǔn)模塊基于視覺內(nèi)容對RGBD數(shù)據(jù)流進行分段處理,既可以有效地解決視覺里程計估計產(chǎn)生的累積誤差問題,又可以將相似的內(nèi)容融合在一起,從而可以提高配準(zhǔn)精度。
體數(shù)據(jù)融合模塊用于根據(jù)優(yōu)化后的相機軌跡信息進行加權(quán)體數(shù)據(jù)融合,得到場景的三維模型。
該體數(shù)據(jù)融合模塊根據(jù)深度相機的噪聲特點和感興趣區(qū)域來定義截斷符號距離函數(shù)的權(quán)值函數(shù),來實現(xiàn)物體表面的幾何細節(jié)的保持。
基于消費級深度相機進行室內(nèi)完整場景三維重建的系統(tǒng)上的實驗表明:基于消費級深度相機的高精度三維重建方法,能夠得到完整、準(zhǔn)確、精細化的室內(nèi)場景模型,系統(tǒng)具有良好的魯棒性和擴展性。
上述基于消費級深度相機進行室內(nèi)完整場景三維重建的系統(tǒng)實施例可以用于執(zhí)行基于消費級深度相機進行室內(nèi)完整場景三維重建的方法實施例,其技術(shù)原理、所解決的技術(shù)問題及產(chǎn)生的技術(shù)效果相似,可以互相參考;為描述的方便和簡潔,各個實施例之間省略了描述相同的部分。
需要說明的是,上述實施例提供的基于消費級深度相機進行室內(nèi)完整場景三維重建的系統(tǒng)和方法在進行室內(nèi)完整場景三維重建時,僅以上述各功能模塊、單元或步驟的劃分進行舉例說明,例如,前述中的獲取模塊也可以作為采集模塊,在實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊、單元或步驟來完成,即將本發(fā)明實施例中的模塊、單元或者步驟再分解或者組合,例如,可以將獲取模塊或采集和濾波模塊合并為數(shù)據(jù)預(yù)處理模塊。
至此,已經(jīng)結(jié)合附圖所示的優(yōu)選實施方式描述了本發(fā)明的技術(shù)方案,但是,本領(lǐng)域技術(shù)人員容易理解的是,本發(fā)明的保護范圍顯然不局限于這些具體實施方式。在不偏離本發(fā)明的原理的前提下,本領(lǐng)域技術(shù)人員可以對相關(guān)技術(shù)特征作出等同的更改或替換,這些更改或替換之后的技術(shù)方案都將落入本發(fā)明的保護范圍之內(nèi)。