微軟專利描述如何利用空間錨點構建AR/MR體驗
Spatial Anchors(空間錨點)表示存在於雲中的物理點。 對於增強現實應用,全息圖可以附著到空間錨點。 空間錨點的獨特地方在於,它能夠在雲中存儲和持久化,並在以後由創建它的設備或任何其他受支持設備進行查詢。 這能夠實現錨點的雲備份和基於雲的錨點共用。
想像一下這個場景:你和一個朋友在家,你們同意通過增強現實設備開玩國際象棋,並在桌面定位全息棋盤。 在設備端,兩人可以在現實世界中的同一位置(桌面)查看棋盤。 無論在物理空間中移動到何處,棋盤都將固定到一個點。 你甚至可以結束會話並在第二天重新啟動,無需再次放置錨。
對於幕後的技術原理,全息國際象棋應用使用一個空間錨點來保存棋盤的位置。 這包括有關環境點的特徵資訊。 全息國際象棋應用可以共享空間錨資訊。 然後,你朋友的Hololens、iOS或Android設備端的應用程式可以查詢空間錨點位置。 一旦確定,任意多個設備的應用程式就可以在相同的物理位置呈現棋盤。
在一份名為”Connecting spatial anchors for augmented reality”的專利中,這家公司描述了一種連接空間錨點的增強現實系統。 具體來說,發明介紹了一種利用空間錨點來構建AR/MR體驗的技術。
專利描述的計算設備包括攝像頭、處理器、以及儲存可由處理器執行的指令的記憶體。 攝像頭捕獲成像第一物理世界位置的第一圖像數據,然後處理器基於第一圖像數據創建第一物理世界位置的第一空間表示。
接收定義第一虛擬空間錨點相對第一圖像數據中的成像特徵的姿態的使用者輸入,追蹤使用者到第二物理世界位置的移動,通過攝像頭捕獲成像第二物理世界位置的第二圖像數據,接收定義第二虛擬空間錨點相對於第二圖像數據中的成像特徵的姿態的使用者輸入,並向遠端計算設備發送表示第一空間表示、第一虛擬空間錨點的姿態、第二空間表示的數據,第二虛擬空間錨點的姿態, 以及從用戶移動識別的第一虛擬空間錨點和第二虛擬空間錨點之間的位置關係。
上圖是一個示例環境100,其中使用者指定的虛擬空間錨點可用於表示關注點。 這種空間錨點可以支持開發者構建空間感知型AR和MR程式,並支援多種行動裝置硬體和/或作業系統,例如微軟HoloLens、支援ARKit的iOS設備和支援ARCore的Android設備。 空間錨點允許開發者利用增強現實和混合現實平臺感知空間,指定精確的興趣點,並從支持的設備中調用興趣點。
可以看到,使用者110可以使用行動裝置112在整個環境的各種物理世界位置創建空間錨114A、114B、114C、114D等。 例如,環境100可以是包含物理藝術品的博物館或畫廊,使用者110可以通過向特定藝術品添加空間錨點來提供虛擬遊覽。
諸如全息圖之類的虛擬內容可以與空間錨點關聯。 使用者110和其他使用者120、130和140可以通過各自的行動裝置查看所述虛擬內容。 在這個示例中,使用者110正在操作手持行動裝置,而使用者120、130和140正在佩戴頭戴式顯示器設備。
虛擬內容可以位於空間錨點的位置或稍有偏移。 例如,圖示為星形的任意虛擬內容116A位於與其相關聯的空間錨點114A處。 作為另一示例,虛擬內容116B與相關聯的空間錨點114B偏移。
另外或可選地,當在距離空間錨的閾值範圍內,可經由行動裝置自動播放的音訊內容。 例如,音訊內容可以包括提供物理物件描述的人聲,例如對於空間錨點114B,音訊內容可以是”這是15世紀的花瓶”。
在一個示例中,用戶可以通過攝像頭對物理環境成像,並定義空間錨點相對於攝像頭捕獲的特徵的位置和/或方向,從而創建空間錨點。 一旦已經定義了空間錨點的位置和/或方向,就可以相對於所述空間錨點來定義虛擬內容的位置和/或方向。
由於空間錨點可以與物理環境中的特徵相關聯,所以使用者在增強現實或混合現實環境中無法感知駐留在行動裝置攝像頭檢視之外的空間錨點或其虛擬內容。
例如,工廠可以在應用程式涉及的每個位置放置空間錨。 行動裝置有助於引導工人從一個位置移動到下一個位置。 移動設備可以聯繫基於雲的服務,並首先請求位於工人附近的空間錨點,然後逐步將工人引導到下一個位置。 移動設備可以顯示視覺指示器,指示完成任務的下一個位置的大致方向和距離。
另一個示例是,博物館為公共展示品創建對應的空間錨點,而這一系列的錨點共同創建博物館的特定AR遊覽。 當遊客參觀一個公共展覽品時,他們可以在行動裝置打開博物館的混合現實/擴增實境應用程式。 然後,他們可以將手機指向周圍的空間,並通過攝像頭輸入查看其他公共展覽品的大致方向和距離,從而幫助引導使用者走向下一個公共展覽品。
圖2是描繪用於創建彼此連接的空間錨點的示例方法流程圖。 在一個範例中,方法200由計算設備或計算系統執行,例如行動裝置和頭戴式設備等。 在這個範例中,行動裝置由使用者操作以創建空間錨點。
在210,所述方法包括經由行動裝置的攝像頭捕捉對第一物理世界位置成像的第一圖像數據。 在示例中,攝像頭是可見光攝像頭(例如,RGB攝像頭)。 在另一示例中,可以使用兩個或多個攝像頭來捕獲圖像數據,包括可見光照攝像頭和深度照攝像頭。
在212,所述方法包括基於第一圖像數據創建第一物理世界位置的第一空間表示。 在一個示例中,第一空間表示可以採用根據圖像數據確定的稀疏點雲形式。 稀疏點雲的點可以具有相對於行動裝置或其攝像頭定義的位置和/或方向值。 在其他範例中,可以提供任何其他合適的圖像數據,例如由機載深度圖像感測器捕獲的第一深度圖像數據。
在特定場景中,用戶可以將全息圖或其他虛擬內容與空間錨點關聯。 例如在216,所述方法包括接收定義第一全息圖相對於第一虛擬空間錨點的姿態的用戶輸入。 第一虛擬全息圖的姿態可定義相對於第一虛擬空間錨點的六自由度位置和/或方向。
在218,所述方法包括從行動裝置向網路可訪問服務發送表示第一空間表示、第一虛擬空間錨點的姿態、第一全息圖的姿態(如果定義)和一個或多個第一全息圖和/或第一全息圖的標識符(如果定義)的數據。 網路可訪問服務將此資料存儲在關係圖中,行動裝置可透過多個工作階段和其他設備存取該關係圖。 網路可訪問服務可以託管在一個或多個遠端計算設備上,例如伺服器系統。
用戶可以在物理世界中創建任意數量的空間錨,並且可以將任意數量的全息圖與特定空間錨點關聯。 例如,在創建第一虛擬空間錨之後,使用者可以隨行動裝置移動到第二物理世界位置以創建第二虛擬空間錨。
在220,所述方法包括追蹤行動裝置從第一物理世界位置到或朝向第二物理世界位置的移動,以捕獲追蹤數據。 追蹤數據描述行動裝置在六自由度空間的第一和第二物理世界位置之間的移動。 可基於從一個或多個感測器獲得的感測器數據來追蹤行動裝置的行動。 行動裝置可使用多個不同類型感測器的感測器融合來追蹤其在位置之間的移動。
在222,所述方法包括經由行動裝置的照攝像頭捕捉第二物理世界位置的第二圖像數據。 在224,所述方法包括基於第二圖像數據創建第二物理世界位置的第二空間表示。 例如,第二空間表示可以採用稀疏點雲的形式。 可以提供任何其他合適的圖像數據,例如由機載深度圖像感測器捕獲的第二深度圖像數據。
在226,所述方法包括接收定義第二空間表示內的第二虛擬空間錨點的姿態的用戶輸入。 可以相對於在第二圖像數據中成像的物理世界的特徵來定義第二虛擬空間錨點的姿態。 在228,所述方法包括基於第一虛擬空間錨點和第二虛擬空間錨點各自的姿態和追蹤數據來確定它們之間的空間關係。
在232,所述方法包括從行動裝置向網路可訪問服務發送表示第二空間表示的數據、第二虛擬空間錨的姿態、第二全息圖的姿態(如果有)、一個或多個第二全息圖和/或第二全息圖的標識符(如果定義),追蹤數據描述行動裝置在第一和第二物理世界位置之間的移動,以及第一和第二虛擬空間錨點之間的空間關係。 網路可訪問服務將該數據存儲在關係圖中,其中存儲了表示第一空間表示、第一虛擬空間錨點的姿態和第一全息圖(如果有)的姿態的數據。
名為”Connecting spatial anchors for augmented reality”的微軟專利申請最初在2021年4月提交,並在日前由美國專利商標局公佈。