表面重構(SR)涉及標識物理空間中的對象的表面。例如,表面可表示房間中的墻壁、地板、天花板、家具或其他對象。各表面提供物理環(huán)境的模型。這樣的模型可在大范圍應用中使用。一個示例是引導機器人通過物理空間。另一示例是諸如通過使用頭戴式顯示設備向用戶顯示虛擬對象。
概述
本文中描述的技術提供用于重構物理空間中的表面的各實施例。
物理空間的深度圖是使用深度傳感器獲得的。深度圖包含表示從深度傳感器到物理空間中的各表面的距離的深度值。深度圖是相對于物理空間中的各體來定義的,并且這些體的位置是相對于坐標系來定義的。例如,坐標系可根據(jù)用于承載深度傳感器的裝備的姿態(tài)(例如,位置和定向)來被定義。
然而,隨著附加的深度圖被獲得且附加的體被定義,這些體的位置的誤差可累積。為了降低誤差累積,物理空間的可見光圖像被獲得并被用于形成姿態(tài)圖。姿態(tài)圖包括與該裝備的不同姿態(tài)以及相應的圖像相關聯(lián)的節(jié)點。各節(jié)點之間的鏈接表示這些圖像之間的對應關系以及這些節(jié)點的坐標系之間的變換。有時,隨著新圖像被捕捉,姿態(tài)圖被更新。例如,節(jié)點可通過更新與節(jié)點相關聯(lián)的坐標系來被更新。
此外,體的頂點(例如角落)被錨定到姿態(tài)圖的不同節(jié)點或節(jié)點組合或與其相關聯(lián)。具體而言,相鄰的體可在共享面上具有共享頂點,使得在各體之間沒有間隙或交疊。當姿態(tài)圖被更新且節(jié)點的坐標系改變時,所述體被允許在形狀方面變形,以使得共享面的頂點繼續(xù)被錨定到相同節(jié)點或節(jié)點組合。然而,如果合適,頂點可被周期性地重新錨定到新節(jié)點或節(jié)點組合。
因為在執(zhí)行表面重構過程時避免了相鄰體之間的間隙和交疊,不同體中的表面將跨各體被平滑接合。表面可根據(jù)姿態(tài)圖的當前狀態(tài)在任何時間重構。
提供本概述以便以簡化的形式介紹以下在詳細描述中進一步描述的一些概念。本概述并非旨在標識所要求保護的主題的關鍵特征或必要特征,亦非旨在用作輔助確定所要求保護的主題的范圍。
附圖簡述
在附圖中,相同編號的元素彼此對應。
圖1是用于表面重構的系統(tǒng)5的框圖,該系統(tǒng)5包括裝備、服務器和中樞計算系統(tǒng)。
圖2是圖1中的裝備20作為頭戴式顯示器(HMD)設備150的實現(xiàn)的俯視圖。
圖3是描繪圖2的HMD設備150的各個組件的框圖。
圖4是描述圖2的處理單元105的各個組件的框圖。
圖5是圖1的中樞計算系統(tǒng)50的一個實施例的框圖。
圖6A描繪了用于使用姿態(tài)圖來重構物理空間中的各表面的過程。
圖6B描繪了圖6A的步驟603的進一步細節(jié)。
圖6C描繪了圖6A的步驟606的進一步細節(jié)。
圖6D描繪了圖6A的步驟607的進一步細節(jié)。
圖7描繪用于執(zhí)行圖6A的過程的表面重構流水線。
圖8A描繪如結合圖7的3D融合子系統(tǒng)734討論的符號距離函數(shù)的示例。
圖8B描繪了如結合圖7的3D融合子系統(tǒng)734討論的投影到體素中的深度圖的示例。
圖9A描繪了一組體900-905以及深度傳感器的視錐體920。
圖9B描繪了被添加到圖9A的一組體900-905中的新的體,如由初始放置的體907和經(jīng)重新定位的體906所表示的。
圖10描繪了表示物理空間中的裝備的姿態(tài)的姿態(tài)圖的示例。
圖11A描繪了針對相機所捕捉的圖像的示例數(shù)據(jù)記錄。
圖11B描繪了針對深度傳感器所捕捉的深度圖的示例數(shù)據(jù)記錄。
圖12A描繪了姿態(tài)圖的示例數(shù)據(jù)記錄。
圖12B描繪了第一體的示例數(shù)據(jù)記錄,其中該第一體的每個頂點被錨定到一不同節(jié)點。
圖12C描繪了與第一體相鄰的第二體的示例數(shù)據(jù)記錄,且其中該第二體的每個頂點被錨定到一不同節(jié)點。
圖12D描繪了第一體的示例數(shù)據(jù)記錄,其中該第一體的一個頂點被錨定到節(jié)點組合。
圖12E描繪了第二體的示例數(shù)據(jù)記錄,其中該第二體的一個頂點被錨定到節(jié)點組合。
圖13A描繪了示出深度傳感器的視錐體的示例物理空間。
圖13B描繪了與圖13A一致的深度圖。
圖13C描繪了圖13B的深度圖的距離值。
圖14A描繪了示出可見光相機的視野的圖13A的示例物理空間。
圖14B描繪由處于圖14A的姿態(tài)的可見光相機獲得的圖像。
圖14C描繪了隨著HMD設備的姿態(tài)被改變而示出可見光相機的另一視野的圖13A的示例物理空間。
圖14D描繪由處于圖14C的姿態(tài)的可見光相機獲得的圖像。
圖15描繪了各體在圖13A的物理空間中的初始放置。
圖16A描繪了圖6A的涉及圖15的體Vol1和Vol2的步驟606的示例,其中體的每個頂點鏈接到一不同節(jié)點,與圖12B和12C的數(shù)據(jù)記錄相一致。
圖16B描繪了圖6A的涉及圖15的體Vol1和Vol2的步驟606的示例,其中體的頂點鏈接到節(jié)點組合,與圖12D和12E的數(shù)據(jù)記錄相一致。
圖16C1描繪了節(jié)點N5和N11分別距最接近節(jié)點N6到v6的距離d5和d11。
圖16C2描繪了圖16B的組合坐標系1660的x軸。
圖16D描繪了當體Vol1和Vol2不被扭曲時這些體內(nèi)的未扭曲對象的深度圖。圖16E描繪了當體Vol1和Vol2被扭曲時這些體內(nèi)的被扭曲對象的深度圖。
圖17描繪了其中虛擬對象被放置在圖13A的物理空間中的示例應用。
詳細描述
表面重構可在許多應用中被使用,包括放置虛擬對象、定義游戲空間、路徑查找、碰撞檢測或虛擬對象對物理空間的遮擋。
大規(guī)模的表面重構要求對跟蹤和映射誤差的穩(wěn)健性。例如,具有大尺寸的物理空間可以是家里的房間、辦公室或博物館或室外空間。在表面重構過程中,使用由裝備上承載的深度傳感器獲取的多個深度圖來獲取各表面。這些表面是使用易造成累積不準確性的計算機視覺跟蹤和映射技術來相對于彼此定位的。此外,隨著更多關于環(huán)境的信息變得可用,對裝備的姿態(tài)估計隨時間改變。
一些SR解決方案在小規(guī)模上操作,或者忽略跟蹤誤差。然而,這導致非自身一致的SR數(shù)據(jù)。而且,一些SR解決方案允許各體之間的間隙或交疊。間隙導致缺少表面數(shù)據(jù),這在重構表面中將很清楚地注意到。交疊導致冗余或沖突的數(shù)據(jù)。冗余數(shù)據(jù)花費資源,諸如存儲器、計算時間和能力。沖突數(shù)據(jù)可引起可見的偽像。
本文中提供的技術解決了以上和其他問題。在一個方法中,SR過程涉及創(chuàng)建要重構的多個分開的SR體。體的每一頂點都可被錨定到跟蹤和映射姿態(tài)圖中的節(jié)點(例如,關鍵幀)或節(jié)點組合(例如,與其相關聯(lián))。而且,相鄰體可共享頂點以使得它們具有共享的面。在此情況下,每個頂點的位置可基于坐標系和該頂點錨定到的相應節(jié)點的姿態(tài)來定義。單個體中的頂點的位置因此可基于坐標系和不同節(jié)點的姿態(tài)來定義。在姿態(tài)圖諸如由于批量調(diào)整或重新定位而更新時,各頂點仍舊錨定到其相應節(jié)點。結果是,允許體變形和改變其形狀,且體之間的間隙和交疊繼續(xù)被避免。在實踐中,形狀的這些改變相對較小,以使得它們在執(zhí)行SR時通常不可見。
新體可被創(chuàng)建,以在獲得附加深度圖時確保物理空間的覆蓋。如果適當,體的頂點可被偶爾重新錨定。
圖1-5描述可用于表面重構的各種系統(tǒng)。圖6和更后面的附圖描繪表面重構技術和場景。
圖1是用于表面重構的系統(tǒng)5的框圖,該系統(tǒng)5包括裝備、服務器和中樞計算系統(tǒng)。裝備、服務器和中樞計算系統(tǒng)是硬件計算設備的示例。裝備20可表示在物理空間中到處移動的設備。該設備可被安裝到例如自主移動機器人上,或例如由用戶(例如人)攜帶或佩戴,諸如在頭戴式顯示設備上。裝備在其到處移動時具有不同的姿態(tài)。在跟蹤和映射算法的上下文中,姿態(tài)指示空間點和方向。也就是說,姿態(tài)是位置和定向的組合。裝備包括諸如用于經(jīng)由網(wǎng)絡30與服務器10通信的通信接口21。增強現(xiàn)實投影系統(tǒng)22可用于將增強現(xiàn)實圖像(例如,虛擬對象)顯示在用于執(zhí)行表面重構的物理空間中??刂齐娐?3用于控制裝備的各個組件??梢姽庀鄼C24例如以固定速率(諸如每秒鐘若干次)或以指定的次數(shù)獲得物理空間的圖像。
深度傳感器25獲得物理空間的深度圖。通常,與相機圖像相比,深度圖被更不頻繁地獲得。深度傳感器可以是例如飛行時間相機或立體相機。在裝備是頭戴式顯示設備的情況下,注視檢測系統(tǒng)26可用于確定用戶的注視。例如,這在將虛擬對象放置在物理空間中時可以是有用的。定向傳感器27獲得關于裝備的定向的讀數(shù)。例如,定向讀數(shù)可與每一圖像和深度圖相關聯(lián)。這些可以是例如以下進一步討論的慣性傳感器。存儲器28可存儲由控制電路執(zhí)行的可執(zhí)行代碼以提供本文中描述的功能,并存儲由可見光相機24、深度傳感器25、注視檢測系統(tǒng)26和定向傳感器27獲得的信息。
任選地,裝備與服務器10通信。例如,裝備可上傳其收集的一些信息或下載諸如可執(zhí)行代碼之類的信息、增強現(xiàn)實投影系統(tǒng)的數(shù)據(jù)或其他內(nèi)容。在一個方法中,服務器在該裝備遠程。在另一方法中,裝備與諸如在用戶的家中的本地中樞計算系統(tǒng)50通信。中樞計算系統(tǒng)可以是例如運行各種游戲和非游戲應用的游戲控制臺。還參見圖5。
在一個方法中,網(wǎng)絡30是諸如紅外(例如,)或蜂窩(例如,GSM)之類的無線網(wǎng)絡。任選地,多個裝備可在公共物理空間內(nèi)彼此通信。
一般來說,這些通信接口允許各計算設備之間的通信??刂齐娐诽峁ο鄳挠嬎阍O備的硬件和/或軟件的控制。例如,控制電路可包括一個或多個處理器,所述處理器執(zhí)行指令并被配置成執(zhí)行指令,所述指令被存儲在其上嵌入有處理器可讀軟件的一個或多個有形的非瞬態(tài)處理器可讀存儲設備(例如,存儲器)上,用以將處理器編程為執(zhí)行如本文所述的處理器實現(xiàn)的或計算機實現(xiàn)的方法。存儲器可存儲指令作為代碼,并可提供處理器可讀存儲設備。存儲器可提供數(shù)據(jù)庫、數(shù)據(jù)存儲或被訪問來執(zhí)行本文中描述的技術的其他數(shù)據(jù)源。存儲器可以是硬件存儲器設備。
替換地或附加地,此處描述的功能可以至少部分由一個或多個硬件邏輯組件來執(zhí)行。例如、但非限制,可使用的硬件邏輯組件的說明性類型包括場可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標準產(chǎn)品(ASSP)、片上系統(tǒng)(SOC)、復雜可編程邏輯器件(CPLD)、等等。
結合以下附圖提供了這些系統(tǒng)的進一步細節(jié)。
圖2是圖1中的裝備20作為頭戴式顯示器(HMD)設備150的實現(xiàn)的俯視圖。僅詳細描繪了HMD設備的右側。HMD設備包括通??梢允茄坨R架形狀的頭戴式鏡架101、鏡腿102和103、以及鼻梁104的前鏡片框。在鼻梁104中置入了話筒110以用于記錄聲音(包括說出的用戶命令)以及將對應的音頻數(shù)據(jù)傳送給處理單元105。在透視近眼HMD設備的示例中,透鏡116和119是透視的。沉浸式HMD設備可被替代地使用。
HMD設備可被戴在用戶的頭上,使得該用戶可以透過顯示器看并從而看到包括不是由該HMD設備生成的圖像的現(xiàn)實世界場景。HMD設備可以是自包含的,使得其所有組件由鏡架來承載。任選的,HMD設備的一個或多個組件不由該鏡架來承載。例如,不被該鏡架承載的一個或多個組件可以通過導線來物理地附連到該鏡架所承載的某一組件。
此外,未被該鏡架承載的一個或多個組件可以與該鏡架所承載的某一組件進行無線通信,并且沒有通過導線或以其他方式物理地附連到該鏡架所承載的某一組件。在一種方法中,未被該鏡架承載的一個或多個組件可由該用戶攜帶,如在腕上。例如,處理單元105可經(jīng)由有線鏈路或經(jīng)由無線鏈路連接到該鏡架中的組件。術語“HMD設備”可涵蓋鏡架上的組件和相關聯(lián)的鏡架外的組件兩者。
處理單元105包括用于操作HMD設備的計算能力中的許多能力。該處理器可以執(zhí)行存儲在處理器可讀存儲設備上的指令以執(zhí)行本文描述的過程。在一個實施例中,處理單元與一個或多個服務器、中樞計算系統(tǒng)、其他HMD、或其他計算設備無線通信??刂齐娐?36提供支持HMD設備的其他組件的各種電子裝置。
在HMD設備的前面是一個或多個面向前方的或面向房間的可見光相機113。相機可包括可捕捉視頻和靜態(tài)圖像以及將圖像傳送給處理單元的至少一個可見光攝像機。相機可用于標識物理空間中的各特征,諸如色彩、圖案、形狀、線等等。深度傳感器可由紅外發(fā)射器115和紅外傳感器/檢測器117的組合來形成??梢姽庖曨l相機也可以是深度傳感器的一部分??梢姽庀鄼C113面朝外,并具有與用戶的視點類似的視點。
HMD設備的鏡架的一部分圍繞包括一個或多個透鏡的顯示器。該顯示器包括光導光學元件112、不透明濾光器114、前部右側透視透鏡116和后部右側透視透鏡118。在一個實施例中,不透明濾光器114處于透視透鏡116之后并與其對齊,光導光學元件112處于不透明濾光器114之后并與其對齊,而透視透鏡118處于光導光學元件112之后并與其對齊。不透明濾光器114濾除自然光(要么逐像素地,要么均勻地)以增加增強現(xiàn)實圖像的對比度。光導光學元件112將人造光引導到眼睛。類似地,HMD的左側包括前部左側透視透鏡119和后部左側透視透鏡121。
在鏡腿102處或鏡腿102內(nèi)安裝有圖像源,該圖像源(在一個實施例中)包括用于對增強現(xiàn)實圖像進行投影的微顯示器120、以及用于將圖像從微顯示器引導到光導光學元件112中的透鏡122。在一個實施例中,透鏡122是準直透鏡。增強現(xiàn)實發(fā)射器可包括微顯示器、諸如透鏡122和光導光學元件112之類的一個或多個光學組件、以及諸如驅動器之類的相關聯(lián)的電子裝置。這樣的增強現(xiàn)實發(fā)射器與該HMD設備相關聯(lián),并向用戶的眼睛發(fā)射光,其中該光表示增強現(xiàn)實靜態(tài)圖像或視頻圖像。這可用于將虛擬對象顯示在物理空間中。
結合附圖3進一步討論的控制電路136提供支持HMD設備的其他組件的各種電子裝置。處于鏡腿102內(nèi)部或安裝在鏡腿102處的有耳機130、慣性傳感器132(例如,圖1的定向傳感器27的示例)。在一個實施例中,慣性傳感器132包括三軸磁力計132A、三軸陀螺儀132B、以及三軸加速度計132C(參見圖3)。慣性傳感器用于感測HMD設備的位置、定向、突然加速。例如,慣性傳感器可以是用于確定佩戴在用戶的頭部上的HMD的定向和位置的一個或多個傳感器。
微顯示器通過透鏡122來投影圖像。光導光學元件112將來自微顯示器的光傳送到用戶的眼睛140,同時允許來自HMD設備前方的光傳送經(jīng)過光導光學元件一直到眼睛140,如箭頭142所描繪的,從而允許用戶除了接收來自微顯示器的增強現(xiàn)實圖像之外還具有HMD設備的前方空間的實際直接視圖。從而,光導光學元件的壁是透視的。光導光學元件包括第一反射面124(例如鏡面或其他表面)。來自微顯示器的光穿過透鏡122并入射在反射面124上,反射面124反射該入射光,使得光通過內(nèi)反射而被陷在包括光導光學元件的平面基底內(nèi)。在基底的表面上進行若干次反射之后,所陷的光波到達選擇性反射面的陣列,包括示例表面126。
反射面126將從基底出射的入射光波耦合進用戶的眼睛140。由于不同光線以不同角度擊中各反射面126,它們將在基底內(nèi)部行進并以不同角度被反彈。因此,不同光線將被所述反射面中的不同反射面從基底反射出。關于哪些光線將被哪個表面126從基底反射出的選擇是通過選擇表面126的合適角度來設計的。在一個實施例中,每只眼睛將具有其自己的光導光學元件。當HMD設備具有兩個光導光學元件時,每只眼睛都可具有其自己的微顯示器,微顯示器可以在兩只眼睛中顯示相同圖像或者在兩只眼睛中顯示不同圖像。在另一實施例中,可以存在將光反射到兩只眼睛中的一個光導光學元件。
圖3是描繪圖2的HMD設備150的各個組件的框圖。HMD設備組件包括跟蹤各種條件的許多傳感器。在示例實現(xiàn)中,HMD設備將從處理單元105接收關于增強現(xiàn)實圖像的指令,并且將傳感器信息提供回給圖4中描繪的處理單元。任選地,處理單元還從服務器或中樞計算設備接收感測信息。基于該信息和/或其他準則,處理單元可確定在何處以及在何時向用戶提供增強現(xiàn)實圖像并相應地將指令發(fā)送給HMD設備。
注意,一些組件(例如眼睛跟蹤相機134B、微顯示器120、不透明濾光器114、眼睛跟蹤照明134A、以及耳機130)是以陰影示出的,以指示出這些設備中的每一者都存在兩個,其中一個用于HMD設備的左側,而一個用于HMD設備的右側。類似地,深度傳感器313可包括例如紅外發(fā)射器115和紅外傳感器/檢測器117。在另一方法中,彼此間具有已知間隔的兩個或更多個相機被用作深度相機,以便獲得房間內(nèi)的對象的深度數(shù)據(jù),深度數(shù)據(jù)指示出從相機/HMD設備到該對象的距離。任選地,使用一個可見光相機113。眼睛跟蹤相機134B和眼睛跟蹤照明134A是眼睛跟蹤組件134的一部分。
來自面向前方的相機的圖像可被用于標識用戶的視野中的人、手勢、以及其他對象。例如,可確定用戶何時作出諸如指向某一對象之類的手勢?,F(xiàn)實世界對象可被標識并與數(shù)據(jù)流相關聯(lián),或者被用作顯示先前相關聯(lián)的數(shù)據(jù)流的位置。
控制電路300與電源管理電路302通信??刂齐娐?00包括處理器310、與存儲器344(例如DRAM)通信的存儲器控制器312、相機接口316、相機緩沖器318、顯示驅動器320、顯示格式化器322、定時生成器326、顯示輸出接口328、以及顯示輸入接口330。GPS電路317可用于標識HMD設備的位置。
在一個實施例中,控制電路300的所有組件都通過專用線路或一個或多個總線彼此進行通信。在另一實施例中,控制電路300的每個組件都與處理器310通信。相機接口/緩沖器316向可見光相機提供接口并存儲來自可見光相機的圖像。深度傳感器接口/緩沖器318向深度傳感器提供接口并存儲來自深度傳感器的圖像。
顯示驅動器320驅動微顯示器。顯示格式化器322向控制不透明濾光器114的不透明度控制電路324提供與微顯示器上正在顯示的增強現(xiàn)實圖像有關的信息。定時生成器326被用來為該系統(tǒng)提供定時數(shù)據(jù)。顯示輸出接口328是用于將來自面向前方的相機113的圖像提供給處理單元105的緩沖器。顯示輸入接口330是用于接收諸如要在微顯示器上顯示的增強現(xiàn)實圖像之類的圖像的緩沖器。
當處理單元通過導線被附連到HMD設備的鏡架,或通過無線鏈路通信,以及通過腕帶被佩戴在用戶的腕上時,顯示輸出接口328和顯示輸入接口330與作為到處理單元的接口的帶接口332進行通信。該方法降低了HMD設備的鏡架承載的組件的重量。如上所述,在其他方法中,處理單元可由鏡架承載并且不使用帶接口。
電源管理電路302包括電壓調(diào)節(jié)器334、眼睛跟蹤照明驅動器337、音頻DAC和放大器338、話筒前置放大器音頻ADC 340、以及時鐘生成器345。電壓調(diào)節(jié)器334通過帶接口332從處理單元接收電力,并將該電力提供給HMD設備的其他組件。眼睛跟蹤照明驅動器如上文所述的那樣為眼睛跟蹤照明134A提供紅外(IR)光源。音頻DAC和放大器338接收來自耳機130的音頻信息。話筒前置放大器和音頻ADC 340提供用于話筒110的接口。作為定向傳感器是一部分,電源管理單元302還向三軸磁力計132A、三軸陀螺儀132B以及三軸加速度計132C提供電力并從其接收回數(shù)據(jù)。
圖4是描述圖2的處理單元105的各組件的框圖??刂齐娐?04與電源管理電路406通信??刂齐娐?04包括中央處理單元(CPU)420、圖形處理單元(GPU)422、高速緩存424、RAM 426、與存儲器430(例如DRAM)進行通信的存儲器控制器428、與閃存434(或其他類型的非易失性存儲)進行通信的閃存控制器432、經(jīng)由帶接口402和帶接口332(在被使用時)與HMD設備進行通信的顯示輸出緩沖器436、經(jīng)由帶接口402和帶接口332(在被使用時)與HMD設備進行通信的顯示輸入緩沖器438、與用于連接到話筒的外部話筒連接器442進行通信的話筒接口440、用于連接到無線通信組件446的外圍部件互連(PCI)快速接口444、以及(諸)USB端口448。
在一個實施例中,無線通信組件446可包括啟用的通信設備、通信設備、或紅外通信設備。無線通信組件446是無線通信接口,在一個實現(xiàn)中,該無線通信接口接收與由HMD設備顯示的內(nèi)容同步的數(shù)據(jù)。進而,可響應于所接收的數(shù)據(jù)來顯示增強現(xiàn)實圖像。在一個方法中,這樣的數(shù)據(jù)是從服務器、中樞計算系統(tǒng)、本地網(wǎng)絡或WLAN、蜂窩電話網(wǎng)絡、本地存儲設備或其他源接收的。
USB端口可被用于將處理單元對接到中樞計算設備50,以便將數(shù)據(jù)或軟件加載到處理單元上以及對處理單元進行充電。在一個實施例中,CPU 420和GPU 422是用于確定在何處、何時以及如何在用戶的視野內(nèi)插入增強現(xiàn)實圖像的主負荷設備。
電源管理電路406包括時鐘生成器460、模數(shù)轉換器462、電池充電器464、電壓調(diào)節(jié)器466和HMD電源476。模數(shù)轉換器462連接到充電插座470以用于接收AC供電并為該系統(tǒng)產(chǎn)生DC供電。電壓調(diào)節(jié)器466與用于向該系統(tǒng)提供電能的電池468進行通信。電池充電器464被用來在從充電插孔468接收到電力時(通過電壓調(diào)節(jié)器466)對電池470進行充電。HMD電源476向HMD設備提供電力。
確定在何處、如何以及何時插入增強現(xiàn)實圖像的計算可由HMD設備和/或由與HMD設備通信的計算設備來執(zhí)行。
在一個示例實施例中,HMD設備將基于HMD設備的視野,創(chuàng)建用戶所處環(huán)境的模型并跟蹤該環(huán)境中的各種對象。模型以及跟蹤信息被提供給處理單元。HMD設備所獲得的傳感器信息被傳送給處理單元4。處理單元細化用戶的視野并向HMD設備提供關于如何、在何處以及何時插入增強現(xiàn)實圖像的指令。
圖5是圖1的中樞計算系統(tǒng)50的一個實施例的框圖。在這一實施例中,計算系統(tǒng)是多媒體控制臺500,諸如游戲控制臺等。多媒體控制臺具有CPU 501以及便于處理器訪問各種類型的存儲器的存儲器控制器502,各種類型的存儲器包括閃存只讀存儲器(ROM)503、隨機存取存儲器(RAM)506、硬盤驅動器508,以及便攜式媒體驅動器505。在一種實現(xiàn)中,CPU包括1級高速緩存510和2級高速緩存512,這些高速緩存用于臨時存儲數(shù)據(jù)并因此減少對硬盤驅動器508進行的存儲器訪問周期的數(shù)量,從而提高處理速度和吞吐量。
CPU、存儲器控制器以及各種存儲器設備經(jīng)由一個或多個總線(未示出)互連。
在一個實現(xiàn)中,CPU、存儲器控制器、ROM以及RAM被集成到公用模塊514上。在此實現(xiàn)中,ROM被配置為通過PCI總線和ROM總線(兩者都沒有示出)連接到存儲器控制器的閃存ROM。RAM被配置為多個雙倍數(shù)據(jù)速率同步動態(tài)RAM(DDR SDRAM)模塊,它們被存儲器控制器通過分開的總線(未示出)獨立地進行控制。硬盤驅動器和便攜式媒體驅動器被示為通過PCI總線和AT附加(ATA)總線516連接到存儲器控制器。
GPU 520和視頻編碼器522形成用于高速和高分辨率圖形處理的視頻處理流水線。
音頻處理單元524和音頻編解碼器(編碼器/解碼器)526形成對應的用于對各種數(shù)字音頻格式進行多通道音頻處理的音頻處理流水線。通過通信鏈路(未示出)在音頻處理單元和音頻編解碼器之間傳送音頻數(shù)據(jù)。視頻和音頻處理流水線向A/V(音頻/視頻)端口528輸出數(shù)據(jù),以便傳輸?shù)诫娨暀C或其它顯示器。在例示出的實現(xiàn)中,視頻和音頻處理組件520、522、524、526以及528被安裝在該模塊上。
模塊514包括USB主控制器531和網(wǎng)絡接口532。USB主控制器被示為通過總線(例如,PCI總線)與CPU和存儲器控制器進行通信,并用作外圍控制器504(1)-504(4)的主機。網(wǎng)絡接口提供對網(wǎng)絡(例如,因特網(wǎng)、家庭網(wǎng)絡等)的訪問,并且可以是各種各樣的各種有線或無線接口組件中的任一者。
在所描繪的實現(xiàn)中,控制臺包括用于支持四個外圍設備控制器的控制器支持子組件540??刂破髦С肿硬考ㄖС峙c諸如,例如,媒體和游戲控制器之類的外部控制設備的有線和無線操作所需的任何硬件和軟件組件。前面板I/O子組件542支持電源按鈕512、彈出按鈕541,以及任何LED(發(fā)光二極管)或暴露在控制臺的外表面上的其它指示器等多個功能。這些子部件通過一個或多個電纜部件544與模塊進行通信。在其他實現(xiàn)中,控制臺可以包括另外的控制器子組件。光學I/O接口535發(fā)送和接收可被傳達到模塊514的信號。該接口可對遙控器590作出響應。
存儲器單元(MU)540(1)和540(2)可以分別連接到MU端口“A”530(1)和“B”530(2)。附加的MU(例如,MU 540(3)-540(6))被示為可連接到外圍設備控制器504(1)和504(3),即每一個控制器兩個MU。控制器504(2)和504(4)也可以被配置成接納MU(未示出)。每一個MU都提供附加存儲,在其上面可以存儲游戲、游戲參數(shù)、及其它數(shù)據(jù)。在一些實現(xiàn)中,其它數(shù)據(jù)可以包括數(shù)字游戲組件、可執(zhí)行的游戲應用,用于擴展游戲應用的指令集、以及媒體文件中的任何一種。當被插入到控制臺或控制器中時,MU可以被存儲器控制器訪問。系統(tǒng)供電模塊向控制臺的組件供電。風扇552冷卻控制臺內(nèi)的電路。還提供微控制器單元554。
包括機器指令的應用560被存儲在硬盤驅動器上。當控制臺被接通電源時,應用的各個部分被加載到RAM、和/或高速緩存中以供在CPU上執(zhí)行,其中應用是一個這樣的示例。各種應用可以被存儲在硬盤驅動器上以供在CPU上執(zhí)行。
控制臺可通過簡單地將系統(tǒng)連接到監(jiān)視器、電視機、視頻投影儀、或其它顯示設備而被用作獨立系統(tǒng)。在此獨立模式下,控制臺允許一個或多個玩家玩游戲或欣賞數(shù)字媒體,例如觀看電影或欣賞音樂。然而,隨著寬帶連接的集成通過網(wǎng)絡接口而成為可能,控制臺還可以作為較大的網(wǎng)絡游戲社區(qū)的參與者來操作。
圖6A描繪了用于使用姿態(tài)圖來重構物理空間中的各表面的過程。大規(guī)模表面重構涉及對齊來自多個源位置的范圍(深度)數(shù)據(jù)。這些源位置分開越遠,將它們共同對齊中的誤差越大。共同對齊技術(諸如迭代最接近點)解決了有關小規(guī)模的問題,但是在大規(guī)模上導致不期望的偽像,諸如漂移或扭曲。一種方法涉及將體錨定到姿態(tài)圖中的節(jié)點并準許相鄰體間的交疊以避免間隙。該解決方案受益于累積全局跟蹤誤差的知識,該知識不總是可用或精確。而且,其使用網(wǎng)格拉鏈扣緊(mesh zippering)來組合來自全部相異體的表面。
跟蹤和映射解決方案(諸如同時局部化和映射或并行跟蹤和映射)產(chǎn)生姿態(tài)圖,所述姿態(tài)圖的節(jié)點對應于世界中的“特征”的坐標的估計,且所述姿態(tài)圖的鏈接對應于這些節(jié)點間的變換。這些是用于在同時保持跟蹤裝備在物理環(huán)境中的位置的同時構建未知環(huán)境的圖(或更新已知環(huán)境內(nèi)的圖)的技術。
節(jié)點和鏈接兩者均包含在姿態(tài)圖被細化時例如歸因于進一步處理或附加測量的并入而隨時間改變的誤差。每個深度圖(范圍數(shù)據(jù)圖像)被指派相對于姿態(tài)圖中的節(jié)點的姿態(tài)(位置和定向)。還存在融合體的集合,每個融合體被錨定到姿態(tài)圖中的一個或多個節(jié)點。當姿態(tài)圖隨時間演進時,體遷移并且總體上相異地遷移。為了解決這一問題,在一個方法中,不是針對每個體使用單個錨,每個融合體的每個頂點可被錨定到一不同的姿態(tài)圖節(jié)點。例如,立方融合體具有8個頂點并且因此具有至少8個錨。而且,每個融合體被完全對準且與其鄰居相鄰地放置,以使得相鄰體具有帶共享頂點的共享面。當頂點遷移時,這些頂點一致地遷移,這意味著所有體保持完全齊平——沒有間隙或交疊。這等同于向每個體應用自由形式的變形。而且,變形可在融合之前或之后被應用,或者在融合之前和之后均被應用,從而產(chǎn)生受益于姿態(tài)圖細化的大規(guī)模重構。
步驟600指示裝備在物理空間中以不同的姿態(tài)移動。例如,裝備可以是機器人或在物理空間內(nèi)四處移動的用戶佩戴的HMD設備,其持續(xù)捕捉物理空間的圖像。步驟601涉及通過裝備上的可見光相機獲得物理空間的圖像。步驟602涉及通過裝備上的定向傳感器獲得定向讀數(shù)。步驟603涉及處理這些圖像和定向讀數(shù)以提供和更新姿態(tài)圖。例如,姿態(tài)圖可被從第一狀態(tài)更新到第二狀態(tài)。步驟604通過裝備上的深度相機獲得物理空間中的各體的定向深度圖。深度圖指示從傳感器到物理空間中的對象的距離以及傳感器和對象之間的定向。深度圖可在不同時刻被獲得,諸如當裝備瞄準物理空間中尚未獲得其深度數(shù)據(jù)的區(qū)域時。
步驟605涉及將物理空間分區(qū)成各體,并在合適的情況下創(chuàng)建新體。體可以是物理空間中形狀統(tǒng)一的空間,諸如立方體、長方體或其它六面體。還可以使用其它多面體形狀。在一個方法中,體被分割成被稱為塊的子體,其中每個體存在N×N×N子體,并且N是1或大于1的整數(shù)。此外,每一塊可被分割成8×8×8個體素。
步驟606涉及將這些體的頂點錨定到姿態(tài)圖中的點。例如,姿態(tài)圖中的每個點可以是節(jié)點或節(jié)點組合。一般而言,體的頂點被錨定到姿態(tài)圖中的至少兩個不同的點。
頂點到姿態(tài)圖中的點的錨定意味著物理空間中的頂點的位置被基于該點的坐標系來定義。坐標系可以是節(jié)點的坐標系,或者作為多個節(jié)點的坐標系的線性組合獲得的坐標系。關于進一步細節(jié)參看圖6C。
步驟607涉及基于姿態(tài)圖的狀態(tài)來重構物理空間中的各表面。注意,這些步驟中的一些步驟可并發(fā)地執(zhí)行或按不同的次序執(zhí)行。一般來說,獲得圖像和更新姿態(tài)圖可與獲得深度圖和重構各表面分開地發(fā)生。類似地,獲得深度圖可與獲得圖像和更新姿態(tài)圖分開地發(fā)生。隨著裝備繼續(xù)移動,附加的圖像和深度圖可被捕捉和處理。關于該過程的更多細節(jié)在以下提供。
圖6B描繪了圖6A的步驟603的進一步細節(jié)。步驟603涉及處理這些圖像和定向讀數(shù)以提供并更新姿態(tài)圖。步驟610涉及更新定向讀數(shù)以及裝備的姿態(tài)的圖像,并確定圖像特征。一般來說,圖像可被處理以按緊湊方式表示該圖像、降低數(shù)據(jù)存儲需求以及促成基于特征的圖像匹配。圖像可包括諸如色彩、圖案、形狀、線等特征,并且兩個圖像中的共同特征可被標識出。表示圖像的一種方式是使用特征檢測器和描述器。流行的描述器包括比例不變特征變換(SIFT)和加速穩(wěn)健特征(SURF)。已知這些對縮放、旋轉和照明改變穩(wěn)健。
例如,在SIFT技術中,首先從一組參考圖像中提取物理空間中的對象的關鍵點,并將其存儲在數(shù)據(jù)庫中。通過將來自新圖像的每一特征個體地與該數(shù)據(jù)庫進行比較并基于其特征向量的歐式距離尋找出候選匹配特征來識別新圖像中的對象。在完整的匹配集合中,就對象及其在新圖像中的位置、尺寸和定向方面達成一致的關鍵點子集被標識出以過濾出良好匹配。確定一致群集是通過使用通用霍夫變換的高效散列表實現(xiàn)來快速執(zhí)行的。就對象及其姿態(tài)達成一致的三個或更多個特征的每一群集隨后遭受更詳細的模型驗證,并隨后異常值被丟棄。最后,在給出擬合準確性和可能的錯誤匹配的數(shù)目的情況下,特定特征集合指示存在對象的概率被計算。通過所有這些測試的對象匹配可用高置信度被標識為正確。
判定步驟611確定該姿態(tài)是否為新。在一個方法中,如果姿態(tài)并不與先前姿態(tài)或另一姿態(tài)顯著不同,則該姿態(tài)不可被認為是新的,在該情況下,流程返回到步驟610。例如,如果定向與其他節(jié)點中的顯著不同,則該姿態(tài)可以是新的?;騽t,如果圖像的特征與其他節(jié)點中的顯著不同或者如果自最后一個新姿態(tài)起已經(jīng)經(jīng)過了指定時間量,則該姿態(tài)可以是新的。在一個方法中,相機提供視頻圖像序列,并且所選的圖像適合在定義節(jié)點時使用。
如果該姿態(tài)是新的,則步驟612將新節(jié)點添加到姿態(tài)圖。步驟613確定與姿態(tài)的定向相關聯(lián)的坐標系?;蛘?,該坐標系可能已經(jīng)被確定。步驟614將以該姿態(tài)取得的圖像(例如,在裝備/相機已采取該姿態(tài)時,由該裝備上的該相機捕捉的圖像)以及坐標系與新節(jié)點相關聯(lián)。例如,這可涉及將該信息存儲在數(shù)據(jù)庫中,如以下進一步討論的。圖像可按任何形式(包括像素數(shù)據(jù)和/或提取的特征數(shù)據(jù))來表示和存儲。步驟615確定與新節(jié)點相關聯(lián)的圖像與姿態(tài)圖中的一個或多個其他節(jié)點的圖像之間的對應關系。例如,這可涉及將新節(jié)點的圖像的特征與姿態(tài)圖中接近于該新節(jié)點的一個或多個其他節(jié)點的圖像的特征進行比較。當兩個圖像中的特征相對近似時,這兩個圖像之間的對應關系相對較高。例如,對應關系的程度可使用SIFT技術來確定。
步驟616確定新節(jié)點的坐標系和一個或多個其他節(jié)點的坐標系之間的變換。步驟617將變換和對應關系與新節(jié)點和一個和多個其他節(jié)點之間的一個或多個鏈接關聯(lián)。步驟618在合適的情況下更新姿態(tài)圖中的其他節(jié)點和鏈接。例如,姿態(tài)圖的狀態(tài)的更新可涉及執(zhí)行批量調(diào)整,在該批量調(diào)整中坐標系和變換被調(diào)整,或者更新這些坐標系中的一者或多者,或者執(zhí)行重新定位,在該重新定位中存在姿態(tài)圖的拓撲結構的變化。例如,該重新定位可包括環(huán)閉合,在環(huán)閉合中,在姿態(tài)圖中形成各節(jié)點的閉合環(huán)。
圖6C描繪了圖6A的步驟606的進一步細節(jié)。步驟606涉及將這些體的頂點錨定到姿態(tài)圖中的點。步驟620涉及選擇體的頂點。對于體,可針對每個頂點獨立作出關于該頂點將被錨定到什么點的判定。步驟621確定最接近的節(jié)點。一種方法是將頂點錨定到最接近的節(jié)點。例如,頂點距離每個節(jié)點的距離可被確定,其中具有最小距離的節(jié)點被選擇。頂點和節(jié)點之間的距離可被定義為該頂點距離該節(jié)點的坐標系的原點的距離。關于進一步的細節(jié),參見例如圖16A。
在一個選項中,步驟622將頂點錨定到最接近的節(jié)點。在判定步驟623,如果在體中沒有要錨定的下一頂點,則該過程在步驟624結束。如果存在要錨定的下一頂點,則通過選擇下一頂點來重復步驟620。在第二選項中,步驟625標識最接近的節(jié)點的半徑內(nèi)的一個或多個其它節(jié)點。步驟626確定作為該最接近節(jié)點和該一個或多個其它節(jié)點的組合的點。例如,該點可以是最接近節(jié)點的坐標系的原點和該一個或多個其它點之間的中心點。
例如,見圖16B。步驟627將頂點錨定到該點。此方法可將頂點錨定到基于節(jié)點組合的點,諸如距最接近節(jié)點指定范圍內(nèi)的所有節(jié)點的組合。關于進一步的細節(jié),見例如圖16B。一旦最接近節(jié)點被確定,就可標識出在該最接近節(jié)點的指定半徑內(nèi)的節(jié)點。例如,所述節(jié)點可以是其坐標系的原點在最接近節(jié)點的坐標系的原點的一半徑內(nèi)的節(jié)點。半徑定義其它節(jié)點位于其中的球。在一種方法中,半徑是固定的。在另一方法中,半徑是最接近節(jié)點和頂點之間的距離的指定百分比。半徑或其它距離也可以是體的大小的函數(shù),以使得當體相對較大時半徑相對較大。
將頂點錨定到基于節(jié)點組合的點可在執(zhí)行表面重構時提供平滑效果。
使用除了球之外的形狀來標識相對靠近最接近節(jié)點的節(jié)點是可能的。
一旦標識出節(jié)點或節(jié)點組合,將頂點錨定到被標識的節(jié)點或節(jié)點組合,例如通過更新數(shù)據(jù)庫中的記錄,如下面進一步討論的。從而,體的頂點與節(jié)點相關聯(lián),使得該頂點是基于該節(jié)點的坐標系被定位在物理空間中的。當該節(jié)點的坐標系被調(diào)整時,該體的該頂點在物理空間中的位置也被調(diào)整。通常,體的頂點持續(xù)被錨定到一個節(jié)點,但體的頂點有可能被重新錨定到不同的節(jié)點,諸如在由于對姿態(tài)圖的更新,不同節(jié)點的姿態(tài)變得更接近于用于獲得該體的姿態(tài)的情況下。同樣,頂點可在一個頂點對一個節(jié)點的基礎上或者在許多頂點對一個節(jié)點的基礎上被錨定到各節(jié)點。類似地,頂點可在一個頂點對一個點的基礎上或者在許多頂點對一個點的基礎上被錨定到姿態(tài)圖中的點。
在一些情況下,可能存在比頂點更少的節(jié)點,諸如在姿態(tài)圖被啟動時。初始地,可能僅有一個節(jié)點,在這種情況下所有頂點可被錨定到該節(jié)點。隨著新節(jié)點被添加,頂點可被重新錨定到新節(jié)點。姿態(tài)圖的更新可包括將一個或多個節(jié)點添加到姿態(tài)圖,其中對于一個或多個體,姿態(tài)圖中該體中的頂點所錨定到的點的數(shù)量在將一個或多個節(jié)點添加到姿態(tài)圖的過程中增加。
圖6D描繪了圖6A的步驟607的進一步細節(jié)。步驟607涉及基于姿態(tài)圖的狀態(tài)來重構物理空間中的各表面。步驟630涉及標識用于表面重構的一個或多個體及相關聯(lián)的深度圖。例如,這些體可對應于物理空間的在用戶的視野中的一部分。當用戶轉動他的頭并看物理空間的不同部分時,表面重構中所涉及的體可相應地改變。步驟631涉及確定一個或多個體被錨定到的一個或多個節(jié)點。這可通過查找數(shù)據(jù)庫中被交叉引用到體的節(jié)點來完成。步驟632涉及確定一個或多個節(jié)點的坐標系。這可通過查找數(shù)據(jù)庫中被交叉引用到節(jié)點的坐標系來完成。步驟633涉及基于一個或多個坐標系將一個或多個體投影到一個或多個深度圖中。尤其地,深度圖是相對于坐標系來定義的,使得該深度圖的深度值基于該坐標系與體的各部分相關聯(lián)。
圖7描繪用于執(zhí)行圖6A的過程的表面重構流水線。在該示例實現(xiàn)中,SR流水線跨專用集成電路(ASIC)700和片上系統(tǒng)(SoC)740兩者運行。ASIC和SoC各自托管多個設備和子系統(tǒng)。箭頭指示數(shù)據(jù)流動方向。傳感器710連接到ASIC。傳感器被承載在諸如HMD設備或機器人之類的裝備上。這些傳感器包括諸如慣性測量單元(IMU)之類的感測旋轉和線加速度的定向傳感器711??梢姽庀鄼C712獲得物理空間的可見光圖像,并且深度傳感器713獲得物理空間的深度圖。示例實現(xiàn)使用作為深度傳感器的飛行時間相機的時間。這一傳感器測量從相機閃光、從物理空間中的表面反彈并返回到該傳感器的光的往返時間。總往返時間花費幾十納秒。深度傳感器的另一實現(xiàn)是一對立體可見光相機,但該方法可能導致較低質量的深度圖。
跟蹤子系統(tǒng)720將傳感器數(shù)據(jù)轉換成姿態(tài)和互連的坐標框架的圖。例如,在為HMD設備的示例情況下,這可以是頭部跟蹤子系統(tǒng)。跟蹤子系統(tǒng)720對圖服務子系統(tǒng)741做出響應,且跟蹤子系統(tǒng)包括跟蹤和映射過程721。跟蹤子系統(tǒng)720和圖服務子系統(tǒng)741共同形成跟蹤和映射子系統(tǒng)742。
SR融合和提取內(nèi)核(SRFEK)730將深度圖和姿態(tài)轉換成表面數(shù)據(jù)。SRFEK在ASIC上運行,并與ASIC和SoC兩者中的其它進程通信。SRFEK攝入兩段輸入數(shù)據(jù):深度圖和姿態(tài)。原始到深度子系統(tǒng)731從深度傳感器中捕捉原始紅外圖像,并將其轉換成深度圖中的深度值。深度值指示物理空間中的一個或多個表面距深度傳感器的距離。這些深度圖具有透鏡扭曲。為了解決這個,去扭曲子系統(tǒng)732將來自相機的透鏡的扭曲效果從深度圖中移除,以提供經(jīng)去扭曲的深度圖。這可涉及應用透鏡扭曲模型(該模型的參數(shù)是通過校正測量的)以產(chǎn)生平的經(jīng)去扭曲的圖像。在運行時,這可涉及創(chuàng)建去扭曲圖(查找表)并將其應用于每一深度圖像素。
3D融合子系統(tǒng)734將經(jīng)去扭曲的深度圖與姿態(tài)組合以將其融合到3D體中。融合涉及將深度圖(其是2D圖像)投影到體(其是3D的)中。例如,可使用表示從深度傳感器到對象的表面的距離的符號距離函數(shù)(SDF)。參見圖8A和8B以獲得進一步細節(jié)。
提取算法733用該體數(shù)據(jù)創(chuàng)建多邊形網(wǎng)格。不是所有應用都需要多邊形網(wǎng)格,但是多邊形網(wǎng)格通常在諸如游戲引擎之類的使用網(wǎng)格來進行渲染和碰撞的應用中有用。在填充SDF體后提取網(wǎng)格的一種方式使用稱為移動立方體(Marching Cubes)的算法。移動立方體背后的概念涉及將每一體數(shù)據(jù)框都轉為多邊形集合,其中這些多邊形的頂點位于這些框的邊上。
3D融合子系統(tǒng)734和提取算法733的輸出可被存儲在SRFEK高速緩存735中。該輸出包括表示物理空間的幾何結構的經(jīng)重構的表面。
在給予SR服務750數(shù)據(jù)塊和處理該數(shù)據(jù)的命令的情況下,SR服務750是控制SRFEK的較高級過程。SR服務還將通過表面重構獲得的表面數(shù)據(jù)饋送給應用。該服務包括深度圖獲取子系統(tǒng)751,該深度圖獲取子系統(tǒng)751基于在何處以及在何時需要深度圖來決定何時觸發(fā)對深度圖的獲取。體放置子系統(tǒng)752決定如何將物理空間分區(qū)成各體,例如要創(chuàng)建多少體以及要將其放置在何處。決定要將體放置在何處是初始問題??蓮囊唤M先前定義的SR體開始。參見圖9A和9B以獲得進一步細節(jié)。
SR數(shù)據(jù)可占據(jù)大量存儲器,從而該服務使用高速緩存驅逐和補充子系統(tǒng)753決定要將哪些數(shù)據(jù)保持在存儲器(例如,SR服務高速緩存754)中,以及將哪些數(shù)據(jù)存儲以供以后使用(例如在后備存儲755中)。SR服務決定要驅逐以及補充哪些SR數(shù)據(jù),何時驅逐以及補充該數(shù)據(jù),以及向應用提供SR數(shù)據(jù)。SR服務在管理縮放時有用,兩者都基于物理空間的尺寸以及所生成的數(shù)據(jù)的質量。該系統(tǒng)應對延伸在用戶的緊鄰鄰近度上的物理范圍(例如在若干米的物理空間中,諸如在辦公建筑中)起作用。蠻力解決方案不將起作用,因為即使中間尺寸的區(qū)域使用了成百或上千個SR體并且每一SR體可使用幾兆字節(jié)。SR系統(tǒng)可通過以下來縮放:將空間分區(qū)成諸體并在存儲器和盤之間對這些體進行分頁(例如,轉移)。
SR服務可用高速緩存驅逐和重新填充子系統(tǒng)來實現(xiàn)持久性和數(shù)據(jù)可伸縮性兩者。例如,該子系統(tǒng)可建立最大數(shù)目的體。這提供關于SR服務消耗的SoC主存儲器的量的上限。當那個上限將通過添加更多數(shù)據(jù)、或更多SR體而被超過時,可重新填充一些其他體。這類似于近期最少使用(LRU)驅逐策略,只是SR服務可驅逐最遠的的體,例如距裝備最遠的體。此外,當裝備重新進入其先前捕捉SR數(shù)據(jù)的區(qū)域時,可向高速緩存重新填充那個數(shù)據(jù)。由此,可通過將最接近的體加載到裝備中來間歇地從后備存儲重新填充高速緩存。注意,仍可添加新的體,使得其也對高速緩存填充作出貢獻。
許多應用可按類似的方式消耗SR數(shù)據(jù)。SR擴展和利用子系統(tǒng)760為應用開發(fā)者提供共用功能。擴展和利用可包括用于用現(xiàn)實世界幾何結構來遮擋全息圖的遮擋渲染761、用于添加有用的輔助信息的網(wǎng)格后處理762、現(xiàn)實對象和虛擬對象之間的碰撞檢測763、用于幫助全息圖放置的運作空間定義764和負空間分配765。SR網(wǎng)格后處理例程的示例包括接合頂點、拉合網(wǎng)格、計算表面法線、剪裁重疊網(wǎng)格中的三角、平滑網(wǎng)格、以及簡化網(wǎng)格以降低多邊形的數(shù)目。
關于全息圖放置,網(wǎng)格對于某些類型的全息圖放置邏輯而言太過精細和復雜。相反,應用開發(fā)者可發(fā)現(xiàn)處理諸如墻壁、天花板和底板之類的抽象物更容易。一個解決方案將是尋找出平坦三角形、標識連接的平坦區(qū)域并隨后將各平面裝到那些區(qū)域。為了尋找出低曲率的連續(xù)區(qū)域,多個分開的網(wǎng)格先被組合到單個連續(xù)網(wǎng)格。這是接合和拉合有用的地方。
關于計算表面法線,為了尋找出平坦區(qū)域,計算表面曲率是有用的。SR流水線可從SDR(使用有限的差異)或從網(wǎng)格(使用每個面的法線)生成每個體素的法線。
SR網(wǎng)格后處理的另一示例是應用如通過相機捕捉的紋理。
圖8A描繪如結合圖7的3D融合子系統(tǒng)734討論的符號距離函數(shù)的示例。水平軸描繪從深度傳感器到物理空間中的對象800的距離。垂直軸描繪SDF的值。對象具有前表面801和后表面802。線805表示SDF。在對象外部的區(qū)域具有正距離,在對象內(nèi)部的區(qū)域具有負距離,并且在對象的表面處的區(qū)域具有零值。在一些情況下,檢測對象的前表面,但不檢測后表面。融合涉及用通過將體素投影到深度圖中而推斷出的SDF值來填充大量體素。從SDF體開始,隨后獲取深度圖及其相對于那個體的姿態(tài)。融合算法如下注入形成的深度圖。對于每一體素,將其投影到深度圖中并根據(jù)該體素的距離相對于距表面的距離來更新SDF值。表面位于負SDF值和正SDF值之間的邊界上,其中該函數(shù)為零—即所謂的零水平設置。對每一深度圖重復該過程。
圖8B描繪投影到體素上的深度圖的示例。每一方塊表示一體素。所示的體素可以是一個或多個塊的部分。實線810表示對象的表面。虛線811表示沒有被檢測到但被假設遠離傳感器、越過可被檢測到的最大深度的表面。該表面的深度值可被設在默認深度。被這些線穿越的體素具有SDF=0,并由帶斜紋線的圖案來表示,諸如對于體素813。被認為在對象內(nèi)部的體素具有SDF<0,并由帶點的圖案來表示,諸如對于體素812。被認為在對象外部的體素具有SDF>0,并由無圖案的框來表示,諸如對于體素814。線815表示深度傳感器的視錐體的邊界。所示的視圖可以是房間的頂視圖,其中線810表示墻壁和該墻壁的框架。
圖9A描繪了一組體900-905以及深度傳感器的視錐體920。注意,示出了各體之間的一些重疊。一些體用帶虛線的圖案示出的以將這些體清楚地區(qū)分開。當SR服務決定獲取深度圖時,深度傳感器被激活。視錐體表示深度傳感器的視野,例如其中可獲得深度讀數(shù)的物理空間的一部分。SR服務隨后將深度圖視錐體與該組SR體進行比較。如果深度圖視錐體中的任何部分都沒有被任何SR體覆蓋,則該服務可創(chuàng)建新的體。然而,新的體的放置(包括其相對于其他體的定向)是個問題。新的體最初可被放置在視錐體沒有被任何現(xiàn)有體覆蓋的任何地方。隨后,新的體被重新定位以與現(xiàn)有體對準并與現(xiàn)有體共享頂點。該重新定位可涉及在物理空間中的平移和/或旋轉,這改善了該新的體的位置。
圖9B描繪了被添加到圖9A的一組體900-905中的新的體,如由初始放置的體907和經(jīng)重新定位的體906所表示的。
圖10描繪了表示物理空間中的裝備的姿態(tài)的姿態(tài)圖1000的示例。姿態(tài)圖包括通過鏈接連接的節(jié)點。節(jié)點包括如由可見光相機捕捉的物理空間的圖像以及相關聯(lián)的坐標系。兩個節(jié)點之間的鏈接(例如,邊)包括兩個節(jié)點的圖像之間的對應關系以及兩個節(jié)點的坐標框架之間的變換。姿態(tài)圖表示裝備的路徑循環(huán)。箭頭1210描繪了裝備的路徑。示例節(jié)點是N1-N9。示例鏈接是節(jié)點N1和N2之間的鏈接L(N1,N2)以及節(jié)點N1和N3之間的鏈接L(N1,N3)。
具體地,裝備的姿態(tài)圖可用于為表面重構優(yōu)化各體的頂點在物理空間中的放置。空間分區(qū)的問題并不因SR而異,并且存在許多空間劃分方案。為了理解為何文本中描述的技術能針對SR良好工作,首先考慮裝備跟蹤如何工作的各方面。裝備的跟蹤和映射子系統(tǒng)742(圖7)通過分析由裝備的相機捕捉到的圖像(例如圖片)來在空間和時間上跟蹤裝備的軌跡。想象裝備在第一時間內(nèi)通電,并且相機捕捉圖像。跟蹤和映射子系統(tǒng)從這些圖像中提取特征,估計這些特征在圖像中的位置并存儲這些特征。跟蹤和映射子系統(tǒng)還創(chuàng)建它要使用來測量位置和定向的坐標系(例如,坐標框架)。圖像和坐標系兩者都與節(jié)點一起被存儲在圖中。隨后裝備移動。跟蹤和映射子系統(tǒng)拍攝更多的圖片,并創(chuàng)建另一坐標框架,該圖將這些更多的圖片和另一坐標框架與另一節(jié)點關聯(lián)。圖服務子系統(tǒng)741認識到第一和第二圖像具有一些共有的特征。映射器使用計算機視覺算法和IMU數(shù)據(jù)來估計那兩個節(jié)點之間的相對姿態(tài)。
各節(jié)點之間的鏈接表示圖像間的對應關系以及這些節(jié)點的坐標系之間的變換。然而,當映射器可獲得針對節(jié)點之間的變換的多個估計時,那些變換可能是不一致的。跟蹤和映射系統(tǒng)通過調(diào)整坐標變換和特征位置來使不一致性最小化。這被稱為批量調(diào)整。隨著裝備到處移動,映射器繼續(xù)添加節(jié)點和鏈接,并且這導致附加的姿態(tài)調(diào)整。結果,物理空間的圖隨時間變化。也就是說,對特征位置的估計改變了,并且姿態(tài)圖被改善。例如,姿態(tài)圖中的鏈接可使距離或定向變化。SR應當對姿態(tài)調(diào)整穩(wěn)健。
為了理解該問題可能有多嚴重以及圖像中的特征可表現(xiàn)為移動得有多遠,考慮環(huán)閉合—姿態(tài)圖調(diào)整的突變形式。環(huán)閉合是重定位的形式。例如,想象裝備訪問分開的空間,而無需訪問連接這些空間的區(qū)域。映射器將具有針對每一空間的分開的圖分量。隨后,想象裝備訪問這些空間之間的區(qū)域。跟蹤和映射子系統(tǒng)將認識到這些區(qū)域被連接,并且將添加鏈接到姿態(tài)圖。重新定位指的是姿態(tài)圖的任何拓撲變化。
一種形式的環(huán)閉合在裝備最終在它已經(jīng)訪問過的空間點并且跟蹤和映射子系統(tǒng)觀察到了那個事實時發(fā)生。例如,想象在起始位置開始,佩戴HMD設備的用戶走進諸如美術館中的房間并且總是面對距該用戶最近的墻壁。用戶沒有打量該房間也沒有看該用戶的后面。在跟蹤和映射子系統(tǒng)創(chuàng)建新節(jié)點時,該用戶隨后繞開該房間,轉而看著每一墻壁。就在用戶返回起始點之前,跟蹤和映射子系統(tǒng)還沒有認識到它又在起始點了。但是,最后,跟蹤和映射子系統(tǒng)將認識到用戶在起始點時捕捉的特征,并將標識在該環(huán)的起始和結束處拍攝的圖像之間的對應關系。因此,它將在姿態(tài)圖中創(chuàng)建新鏈接,由此形成閉合環(huán)。就在環(huán)閉合之前,該環(huán)的開始和結束之間的變換需要許多跳點。就在環(huán)閉合之后,該環(huán)的開始和結束之間的變換僅需要單個跳點。每一跳點都具有某個誤差,并且這些誤差累積。就在環(huán)閉合之后,累積誤差量較小。因此,就在環(huán)閉合之前和就在環(huán)閉合之后,節(jié)點之間的變換將突然改變。本文中提供的技術通過將各體錨定到姿態(tài)圖中的節(jié)點以及其坐標系來允許SR過程從對姿態(tài)圖的調(diào)整中獲益。當姿態(tài)圖變化時,SR體隨之改變,因為這些體的頂點跟隨其被錨定到的姿態(tài)圖節(jié)點。
圖11A描繪了針對相機所捕捉的圖像的示例數(shù)據(jù)記。每一圖像或圖像集合(諸如視頻)都可被存儲在數(shù)據(jù)記錄(例如,圖像1)中。裝備的定向讀數(shù)(例如,OR1)可與該圖像相關聯(lián)。
圖11B描繪了針對深度傳感器所捕捉的深度圖的示例數(shù)據(jù)記錄。每一深度圖都可被存儲在數(shù)據(jù)記錄(例如,DM1)中。裝備的定向讀數(shù)(例如,OR1)可與深度圖相關聯(lián)。
圖12A描繪了姿態(tài)圖的示例數(shù)據(jù)記錄。節(jié)點的記錄可包括節(jié)點標識符(例如,N1)、相機圖像(例如,圖像1)和坐標系(例如,CS1)。針對鏈接L(N1,N2)的記錄可包括鏈接標識符(例如,L(N1,N2))、圖像對應關系數(shù)據(jù)(例如,C(N1,N2))和坐標系之間的變換(例如,T(N1,N2))。針對鏈接L(N1,N3)的記錄可包括鏈接標識符(例如,L(N1,N3))、圖像對應關系數(shù)據(jù)(例如,C(N1,N3))和坐標系之間的變換(例如,T(N1,N3))。變換可以是將作為矩陣的一個坐標系與作為矩陣的另一坐標系相關的矩陣。
圖12B描繪了第一體的示例數(shù)據(jù)記錄,其中該體的每個頂點被錨定到一不同節(jié)點。例如,第一體可以是也結合圖15和16A-16E討論的Vol1。記錄包括體標識符(例如Vol1)以及該體的每個頂點的條目。每個條目包括頂點標識符和該頂點被錨定到的點的標識符。例如,頂點v1,v2,v3,v4,v5,v6,v7和v8分別被錨定到節(jié)點N1,N2,N3,N4,N5,N6,N7和N8。
圖12C描繪了與第一體相鄰的第二體的示例數(shù)據(jù)記錄,且其中該第二體的每個頂點被錨定到一不同節(jié)點。例如,該第二體可以是也結合圖15和16A-16E討論的Vol2。例如,頂點v2,v4,v6,v8,v9,v10,v11和v12分別被錨定到節(jié)點N2,N4,N6,N8,N9,N10,N11和N12。如所見,Vol1和Vol2具有公共節(jié)點v2,v4,v6和v8。這些公共節(jié)點定義這兩個相鄰體的公共面。
圖12D描繪了第一體的示例數(shù)據(jù)記錄,其中該第一體的一個頂點被錨定到一節(jié)點組合。此處,v6被錨定到N5,N6和N11的組合。
圖12E描繪了第二體的示例數(shù)據(jù)記錄,其中該第二體的一個頂點被錨定到節(jié)點組合。與圖12D相一致,v6被錨定到節(jié)點N10,N11和N12的組合。
圖13A描繪了示出深度傳感器的視錐體的示例物理空間。物理空間1300是諸如佩戴作為裝備的示例的HMD設備1302的用戶1301的家中的房間。HMD設備上的深度傳感器具有視野,該視野由延伸在后表面1304和房間的墻壁1306處的前表面1305之間的視錐體1303表示。墻壁包括門道1307和裝飾畫1308。該畫被附貼到墻壁1306并具有可注意的深度。線1309表示深度傳感器的視野的中心軸,例如深度傳感器(和用戶和HMD設備)正注視的方向。具有正交軸xr、yr和zr的笛卡爾坐標系1310是HMD設備的示例坐標系(r表示裝備)。例如,xr軸可具有與表示裝備的定向的(與線1309重合的)向量相同的方向。yr軸可被定義為與地面平行地延伸。zr軸因此與xr和yr軸正交。還描繪了物理空間的具有正交軸x、y和z的笛卡爾坐標系1311。深度傳感器在該坐標系的原點處。
圖13描繪了與圖13一致的深度圖1315。該深度圖包括針對墻壁1306的區(qū)域1320、針對畫1308的區(qū)域1321和針對門道1307的區(qū)域1322。
圖13C圖13B的深度圖的距離值。水平軸描繪了與深度傳感器的中心線1309正交的方向,諸如yr軸的方向。垂直軸描繪了對象距深度傳感器的距離,諸如沿著xr軸的距離。線1330表示深度。該線的對應于墻壁的深度的部分具有深度值D墻壁。該線的對應于畫的深度的部分具有深度值D繪畫。該線的對應于門道的深度的部分具有深度值Dmax(D最大),即深度傳感器可檢測到的最大深度。在該情況下,由于深度傳感器穿過門道看向在檢測范圍上方的表面,深度值可被設為最大值。Dmin(D最小)表示深度傳感器可檢測到的最小深度。
圖14A描繪了示出可見光相機的視野的圖13A的示例物理空間。一般來說,相機的視野1340可不同于深度傳感器的視野,但是它們可看著同一方向,例如HMD設備的方向,并且它們可基本上重疊。在該示例中,相機的視野1340比深度傳感器的視野略微更窄且更高。作為示例但這并不是必須的,HMD設備的坐標系1310與圖13A中的相同。該軸可與相機的中心線重合,該中心線與深度傳感器的中心線1309相同。
圖14B描繪由圖14A的姿態(tài)中的可見光相機獲得的圖像。圖像1400包括表示墻壁的部分1401、表示畫的部分1402和表示門道的部分1403。
圖14C描繪了隨著HMD設備的姿態(tài)被改變而示出可見光相機的另一視野的圖13A的示例物理空間。在該情況下,用戶已經(jīng)移動,使得HMD設備的相機捕捉物理空間的不同圖像。例如,用戶可能已旋轉了他的頭和/或在房間中到處走動。視野1420是相對于坐標系1430定義的,坐標系1430不同于圖14A的坐標系1310。在一種方法中,xr軸與相機的中心線1421重合。
圖14D描繪由圖14C的姿態(tài)中的可見光相機獲得的圖像。圖像1440包括表示墻壁1306和毗鄰墻壁1415的部分1441和表示畫的部分1442。如可明白的,圖像1400和1440將具有諸如畫框的水平線1444、畫框的垂直線1443和畫中的花和花瓶的色彩和形狀之類的相應特征。
圖15描繪了各體在圖13A的物理空間中的初始放置。視錐體1303連同8個體(包括圖12B的示例體Vol1和圖12C的Vol2)被描繪,所述8個體被定位成包圍該視錐體。這些體初始地被定位在彼此附近,從而在這些體之間沒有間隙或交疊。體的頂點關于一個或多個節(jié)點或節(jié)點組合被定義,如同所討論的。此示例中的體是立方體且初始地被放置成其底部表面平行于地。
圖16A描繪了圖6A的涉及圖15的體Vol1和Vol2的步驟606的示例,其中體的每個頂點鏈接到一不同節(jié)點,與圖12B和12C的數(shù)據(jù)記錄相一致。Vol1包括被標記為v1-v8的頂點。Vol2包括被標記為v2,v4,v6和v8(與Vol1共享)以及v9,v10,v11和v12的頂點。在此示例中,為了簡明只有兩個體,然而也可使用其它體。一些頂點的錨定作為示例被示出。例如,v5被錨定到節(jié)點N5及其坐標系1610,該坐標系具有原點O5以及軸x5,y5和z5。每個軸可被認為是在物理空間中具有方向的向量。V6被錨定到節(jié)點N6及其坐標系1620,該坐標系具有原點O6以及軸x6,y6和z6。V11被錨定到節(jié)點N11和其坐標系1630,其坐標系1630具有原點O11以及軸x11、y11和z11。V9被錨定到節(jié)點N9和其坐標系1640,其坐標系1640具有原點O9以及軸x9、y9和z9。一般而言,不同坐標系的z軸可彼此平行且表示高度。x軸和y軸可在各坐標系間不同。
圖16B描繪了圖6A的步驟606的涉及圖15的體Vol1和Vol2的示例,其中體的頂點被鏈接到節(jié)點組合,其與圖12D和12E的數(shù)據(jù)記錄相一致。v5、v11和v9與在圖16A中一樣被錨定到N5、N11和N9。然而,v6被錨定到點1650,該點由方塊表示。該點是坐標系1660的原點Oc,該坐標系1660包括軸xc、yc和zc。為了清楚起見,坐標系被獨立示出。在此示例中,N6被首先標識為姿態(tài)圖中的所有現(xiàn)有節(jié)點中最接近v6的節(jié)點。接著,N5和N11被標識為N6的半徑R(指定距離)內(nèi)的節(jié)點。例如,原點Oc可被定義為O5、O6和O11之間的中心點,從而給予每個原點/節(jié)點相等的權重。這種方法為該半徑內(nèi)的所有點提供了相等的權重。
圖16C1描繪了節(jié)點N5和N11分別距最接近節(jié)點N6到v6的距離d5和d11。另一種方法是通過向該半徑內(nèi)的不同節(jié)點賦予不同的權重來獲得中心點。例如,最接近節(jié)點的點(例如N6的O6)可被給予比該半徑內(nèi)的其它點更高的權重。該半徑內(nèi)的其它點可被等同地加權,或者可以被給予與距最接近節(jié)點的點的增加的距離成比例的減少的權重。在另一方法中,最接近節(jié)點和半徑內(nèi)的其它節(jié)點與其距頂點的距離成反比地被加權。
點1650表示節(jié)點N5、N6和N11(分別具有原點O5、O6和O11)之間的中心點,從而給予每個節(jié)點或原點相等的權重。在另一方法中,點1651表示在節(jié)點N5、N6和N11(分別具有原點O5、O6和O11)之間的中心點,從而給予v6的最接近節(jié)點(N6)比N5和N11更高的權重。
圖16C2描繪了圖16B的組合坐標系1660的x軸。坐標系1660作為N5、N6和N11的坐標系的線性組合被獲得。例如,在所有節(jié)點被等同加權的情況下,x軸xc可通過x軸x5、x6和x11的向量求和獲得。類似地,y軸yc可通過y軸y5、y6和y11的向量求和獲得,且z軸可通過z軸z5、z6和z11的向量求和獲得?;蛘?,如果所有z軸被定義為豎直,則不需要向量求和來獲得zc。在節(jié)點被等同加權的情況下,坐標系1620的各軸可通過據(jù)此在向量求和中對各軸加權來獲得。
圖16D描繪了當體Vol1和Vol2不被扭曲時這些體內(nèi)的未扭曲對象的深度圖。該深度圖與圖13B一樣包括針對墻壁的區(qū)域1320、針對畫的區(qū)域1321和針對門道的區(qū)域1322。這些區(qū)域在體Vol1和Vol2內(nèi)被提供。Vol1具有高度h2和寬度w2。Vol2也具有此高度和寬度。畫的區(qū)域1321具有高度h1和和寬度w1。
圖16E描繪了當體Vol1和Vol2被扭曲時這些體內(nèi)的被扭曲對象的深度圖。在此示例中,對v2被錨定到的節(jié)點做出調(diào)整,導致v2的位置從位置1661到位置1662的改變。這表示高度改變dh2和寬度改變dw2。從而,Vol1和Vol2經(jīng)歷形狀改變,或即扭曲。這些體內(nèi)的深度圖的區(qū)域也與體的扭曲相對應地被扭曲。例如,未扭曲墻壁區(qū)域1320變成扭曲墻壁區(qū)域1320d,未扭曲畫區(qū)域1321變成扭曲畫區(qū)域1321d,且未扭曲門道區(qū)域1322變成扭曲門道區(qū)域1322d。例如,畫的右上角可從點1665改變到點1666。右上角可向上移動距離dh1并向右移動距離dw1,距離dh1與h1xdh2/h2成比例,距離dw1與w1xdw2/w2成比例。這些是近似值,其描繪了基于體的扭曲該體內(nèi)的3D對象的扭曲的大致概念。在一種方法中,可針對該體內(nèi)的任何點執(zhí)行線性內(nèi)插,以確定該對象的已扭曲的形狀。
圖17描繪了其中虛擬對象被放置在圖13A的物理空間中的示例應用。如同前面提及的,表面重構可在許多應用中被使用,包括放置虛擬對象、定義游戲空間、路徑查找、碰撞檢測或虛擬對象對物理空間的遮擋。在此示例中,虛擬對象1710是作為HMD設備1302的增強現(xiàn)實圖像對用戶1301可見的人。視野1700與HMD設備的增強現(xiàn)實投影系統(tǒng)相關聯(lián)。由于房間中的各表面是已知的,因此虛擬對象可被放置在物理空間1300中的適當位置。例如,虛擬對象可被放置于在墻壁1306前面并在門道1307側面的指定距離處。此外,在諸如畫1308之類的虛擬對象后面的現(xiàn)實世界對象可被遮擋以提供更大的真實性。注意,不同或共同的視野可與深度傳感器、相機及增強現(xiàn)實投影系統(tǒng)相關聯(lián)。此外,盡管已描述了涉及HMD設備的示例實現(xiàn),但文本中描述的技術可適用于許多其他場景,包括涉及機器人和其他類型的裝備的那些場景。
因此,可以看出,在一個方面,一種用于重構物理空間的方法包括:在裝備通過多個姿態(tài)在所述物理空間中移動時,使用所述裝備承載的相機獲得所述物理空間的多個圖像;確定每一姿態(tài)的定向和坐標系;將所述物理空間分區(qū)為多個體,所述多個體中的每個體包括頂點;對于所述多個體中的每一體,使用所述裝備承載的深度傳感器獲得所述物理空間的深度圖;提供處于第一狀態(tài)的姿態(tài)圖,處于所述第一狀態(tài)的所述姿態(tài)圖包括多個節(jié)點和所述多個節(jié)點中的各節(jié)點之間的鏈接,所述多個節(jié)點中的每個節(jié)點與所述姿態(tài)中的一個姿態(tài)、所述圖像中與所述姿態(tài)中的所述一個姿態(tài)相關聯(lián)的一個圖像、以及所述坐標系中與所述姿態(tài)中的所述一個姿態(tài)相關聯(lián)的一個坐標系相關聯(lián),且所述鏈接定義所述圖像之間的對應關系以及所述坐標系之間的變換;對于所述多個體中的每個體,將該體的頂點錨定到處于所述第一狀態(tài)的所述姿態(tài)圖中的至少兩個不同點,該體的頂點包括共享頂點,當所述姿態(tài)圖處于所述第一狀態(tài)時所述共享頂點被與所述多個體中的相鄰體共享,將所述姿態(tài)圖更新到第二狀態(tài),所述更新包括更新所述節(jié)點中的一個或多個以及所述鏈接中的一個或多個;以及對于所述多個體中的每個體,當所述姿態(tài)圖處于所述第二狀態(tài)時維持所述共享頂點,其中所述維持所述共享頂點導致改變所述多個體中的至少一個體的形狀。
所述方法還包括根據(jù)所述姿態(tài)圖的所述第二狀態(tài)重構所述多個體中的至少一個體中的表面;以及在所述重構期間,對于所述多個體中的所述至少一個體,基于所述多個體中的所述至少一個體的形狀來使得所述物理空間的深度圖扭曲。
所述多個節(jié)點中的每個節(jié)點可與所述物理空間中的裝備的一位置相關聯(lián);以及對于所述多個體中的一個或多個體,將該體的頂點錨定到所述姿態(tài)圖中的至少兩個不同點可包括將該體的一個頂點錨定到所述姿態(tài)圖中的所述節(jié)點中位置最靠近所述一個頂點的一個節(jié)點。
所述多個節(jié)點中的每個節(jié)點可與所述物理空間中的裝備的一位置相關聯(lián);以及對于所述多個體中的一個或多個體,將該體的頂點錨定到所述姿態(tài)圖中的至少兩個不同點可包括將該體的一個頂點錨定到所述姿態(tài)圖中的節(jié)點組合,所述節(jié)點組合可包括所述姿態(tài)圖中的所述節(jié)點中位置最靠近所述一個頂點的一個節(jié)點。
所述節(jié)點組合可包括在所述姿態(tài)圖中的所述節(jié)點中位置最靠近所述一個頂點的所述一個節(jié)點的指定距離內(nèi)的一個或多個節(jié)點。
在所述節(jié)點組合中,在所述指定距離內(nèi)的所述一個或多個節(jié)點中的每個節(jié)點可根據(jù)該節(jié)點到所述姿態(tài)圖中的所述節(jié)點中位置最靠近所述一個頂點的所述一個節(jié)點的距離被加權。
對于所述多個體中的一個或多個體,將該體的頂點錨定到所述姿態(tài)圖中的至少兩個不同點可包括將該體的一個頂點錨定到所述姿態(tài)圖中的一個節(jié)點以及將該體的另一頂點錨定到所述姿態(tài)圖中的另一節(jié)點。
所述方法進一步包括對于所述多個體中的一個或多個體,將所述體的每個頂點錨定到所述姿態(tài)圖中的不同點。
所述更新姿態(tài)圖可包括將一個或多個節(jié)點添加到所述姿態(tài)圖;并且對于所述多個體中的一個或多個體,所述姿態(tài)圖中該體中的頂點所錨定到的點的數(shù)量在將一個或多個節(jié)點添加到所述姿態(tài)圖的過程中增加。
所述多個體可不彼此交疊且在所述體之間不存在間隙。
在另一方面,一種用于重構物理空間的裝置包括:定向傳感器;深度傳感器;相機;以及與所述定向傳感器、所述深度傳感器和所述相機通信的處理器。所述處理器被適配成:從所述相機獲得所述物理空間的多個圖像,基于所述定向傳感器來將姿態(tài)和坐標系與每一圖像關聯(lián),將所述物理空間分區(qū)為多個體,所述多個體中的每個體包括頂點,對于所述多個體中的每一體,從所述深度傳感器獲得所述物理空間的深度圖,提供處于第一狀態(tài)的姿態(tài)圖,所述姿態(tài)圖包括多個節(jié)點和所述節(jié)點之間的鏈接,所述多個節(jié)點中的每個節(jié)點與所述姿態(tài)中的一個姿態(tài)、所述圖像中與所述姿態(tài)中的所述一個姿態(tài)相關聯(lián)的一個圖像、以及所述坐標系中與所述姿態(tài)中的所述一個姿態(tài)相關聯(lián)的一個坐標系相關聯(lián),且所述鏈接定義所述圖像之間的對應關系以及所述坐標系之間的變換,對于所述多個體中的每個體,將該體的頂點錨定到處于所述第一狀態(tài)的所述姿態(tài)圖中的至少兩個不同點,該體的頂點包括共享頂點,當所述姿態(tài)圖處于所述第一狀態(tài)時所述共享頂點被與所述多個體中的相鄰體共享,使用所述節(jié)點中的一個或多個以及所述鏈接中的一個或多個的更新,將所述姿態(tài)圖更新到第二狀態(tài),對于所述多個體中的每個體,為了當所述姿態(tài)圖處于所述第二狀態(tài)時維持所述共享頂點,改變所述多個體中的至少一個體的形狀,以及根據(jù)所述姿態(tài)圖的第二狀態(tài)重構所述體中的一個或多個中的表面。
在另一方面,一種處理器可讀存儲器包括具體化在所述處理器可讀存儲器上的處理器可讀軟件,所述處理器可讀軟件用于將處理器編程為執(zhí)行一種用于重構物理空間的方法,其中所述方法包括:將物理空間分區(qū)為多個體,所述多個體中的每個體包括頂點,對于所述多個體中的每一體,獲得所述物理空間的深度圖;提供處于第一狀態(tài)的姿態(tài)圖,處于第一狀態(tài)的姿態(tài)圖包括多個節(jié)點和所述多個節(jié)點之間的鏈接;對于所述多個體中的每個體,將該體的頂點錨定到處于所述第一狀態(tài)的所述姿態(tài)圖中的至少兩個不同點,該體的頂點包括共享頂點,當所述姿態(tài)圖處于所述第一狀態(tài)時所述共享頂點被與所述多個體中的相鄰體共享;以及將所述姿態(tài)圖更新到第二狀態(tài),所述更新包括更新所述節(jié)點中的一個或多個以及所述鏈接中的一個或多個;以及對于所述多個體中的每個體,當所述姿態(tài)圖處于所述第二狀態(tài)時維持所述共享頂點,其中所述維持所述共享頂點導致改變所述多個體中的至少一個體的形狀。
盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述具體特征或動作。更確切而言,上述具體特征和動作是作為實現(xiàn)權利要求的示例形式公開的。