本發(fā)明涉及網(wǎng)格地圖重建,尤其涉及一種實時網(wǎng)格地圖重建方法。
背景技術(shù):
1、常用的3d模型表示方法包括點云地圖、占位網(wǎng)格地圖、tsdf地圖、surfel面片地圖和網(wǎng)格地圖。其中,網(wǎng)格地圖(mesh地圖)相對其它地圖,具有能夠近似表達絕大部分復(fù)雜3d模型結(jié)構(gòu)、避免不連續(xù)、存儲花銷小且擴展性高等優(yōu)點。
2、但現(xiàn)有方法在構(gòu)建和更新mesh地圖時,需要不斷進行重新三角化,該過程的時耗與3d點數(shù)量呈指數(shù)關(guān)系,時耗非常高,因此主要適用于離線處理的場景,這限制了其在實時應(yīng)用場景中的普及,不適用于對實時性要求高的應(yīng)用場景。例如,在xr(擴展現(xiàn)實)應(yīng)用場景,需要通過實時構(gòu)建和更新mesh地圖,滿足諸如虛實遮擋、虛實碰撞、光場估計、體感互動、觸覺交互等空間計算和人機交互需求,但xr設(shè)備的算力和存儲均有限,這導(dǎo)致現(xiàn)有網(wǎng)格地圖重建方法無法在xr設(shè)備上實時運行。
技術(shù)實現(xiàn)思路
1、鑒于上述的分析,本發(fā)明實施例旨在提供一種實時網(wǎng)格地圖重建方法,用以解決現(xiàn)有網(wǎng)格地圖重建方法時耗高的問題。
2、一方面,本發(fā)明實施例提供了一種實時網(wǎng)格地圖重建方法,包括以下步驟:
3、獲取當(dāng)前時刻的點云數(shù)據(jù),確定點云數(shù)據(jù)中每個三維點所屬的體素單元;
4、對于當(dāng)前時刻的點云數(shù)據(jù)對應(yīng)的每個體素單元,若判斷所述體素單元的類型為表面,則確定所述體素單元的表面重建方向;
5、對于每個表面重建方向,基于所述體素單元的三維點采用高斯過程估計得到重建點,對重建點進行三角化得到該表面重建方向的重建結(jié)果。
6、基于上述方法的進一步改進,采用以下方式確定點云數(shù)據(jù)中每個三維點所屬的體素單元:
7、若當(dāng)前時刻的點云數(shù)據(jù)不是世界坐標(biāo)系,則將當(dāng)前時刻的點云數(shù)據(jù)轉(zhuǎn)換到世界坐標(biāo)系得到世界坐標(biāo)系下當(dāng)前時刻的點云數(shù)據(jù);
8、根據(jù)世界坐標(biāo)系下當(dāng)前時刻的點云數(shù)據(jù)的每個三維點的坐標(biāo)和體素單元的邊長計算得到每個三維點所屬體素單元的編號。
9、基于上述方法的進一步改進,采用以下公式計算每個三維點所屬體素單元的編號:
10、
11、其中,wdtmin=(xmin,ymin,zmin)表示當(dāng)前時刻的點云數(shù)據(jù)的最小坐標(biāo)值,wdtmax=(xmax,ymax,zmax)表示當(dāng)前時刻的點云數(shù)據(jù)的最大坐標(biāo)值,gs表示體素單元的邊長,(xc0,yc0,zc0)表示當(dāng)前時刻的點云數(shù)據(jù)的起始體素單元的起始坐標(biāo)點,ngx表示當(dāng)前時刻的點云數(shù)據(jù)在x軸方向的體素單元的數(shù)量,ngy表示當(dāng)前時刻的點云數(shù)據(jù)在y軸方向的體素單元的數(shù)量,ngz表示當(dāng)前時刻的點云數(shù)據(jù)在z軸方向的體素單元的數(shù)量,cid表示體素單元的編號,floor(·)表示向下取整,ceil(·)表示向上取整,(x,y,z)表示三維點的坐標(biāo)。
12、基于上述方法的進一步改進,采用以下方式判斷所述體素單元的類型:
13、對所述體素單元內(nèi)的所有三維點進行主成分分析得到對應(yīng)的特征值;
14、若最大特征值與次大特征值的比值大于等于第一閾值,則判斷所述體素單元的類型為非表面,否則所述體素單元的類型為表面。
15、基于上述方法的進一步改進,采用以下方式確定所述體素單元的表面重建方向:
16、對所述體素單元內(nèi)的所有三維點進行主成分分析得到對應(yīng)的特征值和特征向量;
17、計算最小特征值對應(yīng)的特征向量與三個坐標(biāo)軸間的夾角并從小到大排序得到第一夾角、第二夾角和第三夾角;
18、若第二夾角與第一夾角的差大于等于第二閾值,則第一夾角對應(yīng)的坐標(biāo)軸方向為表面重建方向;
19、若第二夾角與第一夾角的差小于第二閾值,且第三夾角與第二夾角的差大于等于第三閾值,則第一夾角和第二夾角對應(yīng)的坐標(biāo)軸方向均為表面重建方向;
20、若第二夾角與第一夾角的差小于第二閾值,且第三夾角與第二夾角的差小于第三閾值,則三個坐標(biāo)軸方向均為表面重建方向。
21、基于上述方法的進一步改進,對于每個表面重建方向,基于所述體素單元的三維點采用高斯過程估計得到重建點,包括:
22、對所述表面重建方向的零平面進行網(wǎng)格劃分得到網(wǎng)格點;
23、以所述三維點為觀測點,基于所述觀測點在所述表面重建方向上的值采用高斯過程估計得到所述網(wǎng)格點在所述表面重建方向上的數(shù)值,得到重建點。
24、基于上述方法的進一步改進,對于每個表面重建方向,基于所述體素單元的三維點采用高斯過程估計得到重建點,包括:
25、對所述表面重建方向的零平面進行網(wǎng)格劃分得到網(wǎng)格點;
26、將所述三維點投影在所述表面重建方向的零平面上得到投影點;
27、對于每個網(wǎng)格點,查找最鄰近投影點,將所述最鄰近投影點對應(yīng)的三維點加入觀測點集合;
28、以所述觀測點集合中的三維點為觀測點,基于所述觀測點在所述表面重建方向上的值采用高斯過程估計得到所述網(wǎng)格點在所述表面重建方向上的數(shù)值,得到重建點。
29、基于上述方法的進一步改進,基于所述觀測點在所述表面重建方向上的值采用以下公式得到所述網(wǎng)格點在所述表面重建方向上的數(shù)值:
30、
31、其中,predm×1表示網(wǎng)格點在表面重建方向上的數(shù)值向量,m表示網(wǎng)格點的數(shù)量,n表示觀測點的數(shù)量,obsn×1表示觀測點在表面重建方向上的數(shù)值向量,noise表示觀測點的噪聲,k表示高斯過程估計的核函數(shù)矩陣,i表示單位矩陣。
32、基于上述方法的進一步改進,對重建點進行三角化得到該表面重建方向的重建結(jié)果,包括:
33、依次遍歷每個網(wǎng)格點,若當(dāng)前網(wǎng)格點存在對角網(wǎng)格點,則將當(dāng)前網(wǎng)格點、當(dāng)前網(wǎng)格點相鄰的網(wǎng)格點、當(dāng)前網(wǎng)格點的對角網(wǎng)格點對應(yīng)的重建點構(gòu)成三角網(wǎng)格。
34、基于上述方法的進一步改進,采用以下公式將當(dāng)前時刻的點云數(shù)據(jù)轉(zhuǎn)換到世界坐標(biāo)系得到世界坐標(biāo)系下當(dāng)前時刻的點云數(shù)據(jù):
35、wdt=twb*tbd*dt
36、其中,wdt表示世界坐標(biāo)系下當(dāng)前時刻的點云數(shù)據(jù),twb表示當(dāng)前時刻定位裝置在世界坐標(biāo)系下的位姿數(shù)據(jù),tbd表示定位裝置到深度傳感器的位姿參數(shù),dt表示當(dāng)前時刻深度傳感器的點云數(shù)據(jù)。
37、與現(xiàn)有技術(shù)相比,本發(fā)明通過在每個時刻獲取當(dāng)前時刻的點云數(shù)據(jù),確定每個三維點所屬的體素單元,從而對當(dāng)前時刻的點云數(shù)據(jù)進行體素單元切分,這些體素單元相互獨立,可以并行處理,從而提高重建的效率;對每個體素單元,如果判斷其類型為表面類型,則對其進行表面重建,而對于非表面類型的體素單元則不進行重建,從而進一步簡化處理過程提高效率;對于表面類型,并非每個方向都需要進行重建,通過確定其需要進行表面重建的方向,進一步簡化處理提高效率;對于每個表面重建方向,基于體素單元的三維點采用高斯過程估計得到重建點,基于重建點進行三角化從而無需大量計算即可快速得到三角化連接關(guān)系,節(jié)省了三角化的時間。本發(fā)明的實時網(wǎng)格地圖重建方法時耗小,效率高,可以實現(xiàn)對實時性和存儲空間要求高的設(shè)備上的網(wǎng)格地圖實時重建。
38、本發(fā)明中,上述各技術(shù)方案之間還可以相互組合,以實現(xiàn)更多的優(yōu)選組合方案。本發(fā)明的其他特征和優(yōu)點將在隨后的說明書中闡述,并且,部分優(yōu)點可從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過說明書以及附圖中所特別指出的內(nèi)容中來實現(xiàn)和獲得。