MR頭顯需要相對于物理環境的位置和/或物理環境的幾何形狀來呈現虛擬內容。所以,MR系統必須保持位置和方向的精確感知,從而能夠根據用戶的視角變化來顯示自然的數字內容。
為了做到這一點,一系列的MR系統都依賴于SLAM技術。這通常要求用戶在整個物理環境中移動,以允許MR系統捕獲足夠數量的物理環境關鍵幀,從而構建物理環境的映射。然而,初始映射構建非常耗時,并且極大地限制了MR系統提供多樣化體驗的多功能性。
為了避免初始映射構建過程,MR系統可以至少部分地利用先前構建的物理環境映射來初始化MR體驗。然而,為了使用先前構建的物理環境映射來初始化MR體驗,MR系統通常必須知曉MR系統相對于物理環境的位置。換言之,MR系統必須在物理環境中進行自定位/重定位。
另外,MR系統在關鍵幀之間進行搜索會耗費大量計算和時間,尤其是對于包含大量關鍵幀的大型現實世界空間映射。
針對上述問題,微軟提出了一種旨在促進快速定位的優化技術和系統。在名為“Systems and methods for gps-based and sensor-based relocalization”的專利申請中,團隊介紹了一種基于GPS和傳感器的重定位系統。
圖1示出了頭戴式設備100的示例。頭顯100包括傳感器150,而傳感器150包括攝像頭155、GPS 160和慣性測量單元(IMU)165。IMU 165可包括各種慣性追蹤組件,例如加速計170、陀螺儀175、指南針180(例如一個或多個磁強計)和/或氣壓計185。
頭顯100的慣性追蹤組件/系統可以與視覺追蹤系統協同工作,以形成頭部追蹤系統,并為頭顯100生成姿勢數據。在一個實施例中,視覺追蹤系統包括捕捉環境的圖像數據的一個或多個攝像頭。
在一個實施例中,以上組件可以形成視覺慣性SLAM技術,并結合一個或多個攝像頭捕獲的視覺追蹤數據和加速計170、陀螺儀175、傳感器155、和/或羅盤(es)180來實時(或接近實時)估計頭顯00相對于環境的六自由度定位(即姿勢)。
在一個實施例中,頭顯100的視覺追蹤系統包括一對立體攝像頭,其配置為獲取用戶環境的深度映射并提供用戶環境的視覺映射。頭顯100可以利用環境的視覺映射數據來準確地顯示關于用戶環境的虛擬內容,以及促進頭顯100在環境中的幀到幀姿勢追蹤。可視化映射數據同時可以在共享的混合現實環境中實現用戶之間的位置共享。
圖1同時示出,頭顯100可以包括GPS 160,后者獲取GPS數據以追蹤頭顯100的全球位置。
現在請注意圖2,圖2示出了可以示例環境200。環境200包括各種區域,例如森林區域205、建筑210、建筑220和區域215。用戶250穿戴的頭顯100可以獲取環境映射,例如與區域215相關聯的視覺映射數據,然后用于促進區域215內的SLAM追蹤。頭顯100同時可以在環境200內獲得GPS數據260、IMU數據265和/或圖像數據270。
當用戶250從森林區域205接近區域215時,與用戶250相關聯的系統可能需要建立其相對于區域215的位置,以便于SLAM在區域215內為用戶250提供準確的MR體驗。然而,環境200的映射可以包括區域215的大量視覺映射數據,而這或會導致延遲和/或錯誤定位。
針對這個問題,微軟提出的系統可以配置為使用諸如GPS數據260和/或IMU數據265等數據來智能地/可選擇地識別和選擇視覺映射數據的子集,以用于在環境200內定位或重定位。
圖3示出了與環境200相關聯的示例映射300。如上所述,映射300包括映射300的區域315內的視覺映射數據。例如,映射300包括區域315內多個關鍵幀320和多個錨定點310形式的視覺映射數據。在一個實施例中,如圖2所示,在用戶250進入環境200的區域215之前獲得映射300的區域315內的視覺映射數據。換言之,映射300的至少區域315可視為代表環境200的區域215的預映射,其配置為在區域215定位時促進位于區域215的MR體驗,亦即不首先要求用戶捕獲或獲取區域215的新視覺映射數據。
在一個實施例中,基于使用一個或多個攝像頭捕獲的圖像來獲得映射300的關鍵幀320。系統可從立體圖像對中提取特征,以識別區域215內環境200的錨定點310。錨定點310可以提供參考點,并用于追蹤區域215內的代理姿勢變化。另外,系統可以對立體圖像對執行深度計算,以獲得在圖像捕獲期間識別各種錨定點310和立體攝像頭對之間的距離的深度數據。根據深度數據,可以獲得或建立立體攝像頭對在圖像捕獲期間相對于錨定點310的位置和方向。
可以獲得從區域215內的多個位置捕獲的多個關鍵幀320,以及多個錨定點310,并將其存儲為環境200的映射300的一部分,如圖3所示,映射300的區域315代表環境200的區域215。與用戶250相關聯的系統可以利用關鍵幀320和錨定點310來追蹤其相對于環境200的映射300的映射部分的姿勢。例如,當系統的初始位置和方向不可靠時,系統可以在當前時間點捕捉區域315的一個或多個當前圖像。
系統可以從當前圖像中提取特征,并將特征和與各種關鍵幀320相關聯的錨定點310進行比較。系統可識別與錨定點310相關聯的特定關鍵幀320。然后,系統可基于與錨定點310相關聯的特定關鍵幀320的位置和方向來估計其在映射300內的位置和方向,亦即系統可實現定位或重定位。
隨后,系統可以追蹤系統相對于定位點310的幀到幀姿態變化,并且系統可以使用與其他關鍵幀320相關聯的錨定點310,以在用戶250在整個區域215中移動時保持精確追蹤。
圖3示出了相對于用戶250所在環境200的映射300,用戶250(或與用戶相關聯的系統)的估計位置360和估計方向365。用戶250的估計位置360和估計方向365至少部分地對應于環境200內用戶250的位置250B。例如,當用戶250位于環境中的位置250B時,與用戶250相關聯的系統可以獲得GPS數據260和/或IMU數據265。
在一個實施例中,GPS數據260指示用戶250相對于映射300的估計位置360。例如,GPS數據260可以指示與用戶250相關聯的GPS 160的估計經度和緯度,從而提供用戶250的估計全球位置。應注意,映射300內的空間位置可與GPS坐標相關。
映射300內的空間位置和GPS坐標之間的相關性可以通過各種方式建立,例如在預映射過程中,可以在映射300手動覆蓋GPS坐標。因此,用戶250在環境200內的估計全球位置可以指示用戶250相對于映射300的估計位置360。
在一個實施例中,IMU數據265指示相對于映射300的估計方向365。例如,IMU數據265可包括由羅盤180獲得的航向數據,其可指示與用戶250相關聯的系統的估計航向或偏航。IMU數據265同時可以包括基于陀螺儀175獲得的角速度數據,以及加速計170獲得的重力矢量。
估計位置360和/或估計方向365可為識別系統搜索定位的映射300的關鍵幀320子集提供基礎。圖4示出了在映射300內定義搜索空間400的示例。如圖4所示,搜索空間400基于和/或關于與用戶250相關聯的系統的估計位置360來定義。
搜索空間400識別映射300的多個關鍵幀320中的一個或多個關鍵幀。例如,關鍵幀420A、420B、420C、420D和420E識別為在基于估計位置360定義的搜索空間400內。以這種方式,系統使用估計的位置360來選擇從環境200中的位置捕獲的關鍵幀。關鍵幀420A、420B、420C、420D和420E可包括關鍵幀320的子集,與用戶250相關聯的系統可將其用作進入環境200的區域215時對系統進行本地化的候選。
所以,與用戶250相關聯的系統減少或限制搜索空間,并僅包括用于執行定位的映射300的關鍵幀320的子集,而非全部。因此,系統可以減少與相對于環境200的區域215定位系統相關聯的延遲和/或計算負擔。另外,僅利用關鍵幀子集進行定位降低了錯誤定位的可能性。
高GPS置信度410可以產生較小的搜索空間400,而低GPS置信度410則可能導致較大的搜索空間400。
與GPS數據260相關聯的置信度測量可包括信噪比、可用于基于無線電的定位設備的若干GNSS格式、基于無線電的定位設備所使用的無線電頻帶、天線特性等等。另外,搜索空間400的大小和/或形狀可至少部分取決于與IMU數據265相關聯的置信度。例如,在系統至少部分地基于由與IMU 165的氣壓計185獲得的高度數據來定義搜索空間400的情況時,氣壓計置信度415可以影響搜索空間400的大小和/或形狀。
除了如上所述通過定義搜索空間400和識別搜索空間400內的關鍵幀子集來減少用于定位與用戶250相關聯的系統的映射300的關鍵幀320的數量之外,系統可采用附加或替代技術來進一步減少用于定位系統的關鍵幀的數量。
圖5示出了基于估計方向365識別搜索空間400內的關鍵幀子集的示例。如上所述,映射300的每個關鍵幀320可以包括關鍵幀320被捕獲的方向的指示。因此,搜索空間400內的關鍵幀420A、420B、420C、420D和420D包括與每個關鍵幀相關聯的關鍵幀方向。系統可以將與用戶250相關聯的系統的估計方向365與搜索空間400內的關鍵幀的關鍵幀方向進行比較,以確定搜索空間400內的哪個關鍵幀子集用作定位候選。
在一個實施例中,系統定義了閾值方向相似性505。然后,系統可以執行關鍵幀方向分析500,以確定搜索空間400內的哪些關鍵幀包括滿足或超過閾值方向相似性505的方向。例如,如圖5所示,關鍵幀方向分析500可以包括分析關鍵幀420A的方向520A,以確定方向520A和估計方向365之間的差異是否滿足或超過閾值方向相似性505。關鍵幀方向分析500可以包括對與其他關鍵幀相關聯的其他方向執行類似的分析,例如關鍵幀420B的方向520B、關鍵幀420C的方向520C、關鍵幀420D的方向520D和關鍵幀420D的方向520D。
圖5進一步示出了在搜索400內圍繞關鍵幀420A、420D和420E中的每一個的圓圈,指示關鍵幀420A、420D和420E可以形成關鍵幀的子集,與用戶250相關聯的系統可以利用所述子集進行定位。
因此,圖5說明了系統可以對搜索空間400內的關鍵幀執行關鍵幀方向分析500,以確定搜索空間400內用于定位的關鍵幀子集。這種技術可允許系統進一步減少用于定位的候選關鍵幀的數量,從而在降低計算成本和/或延遲的情況下促進定位。
圖5同時示出了可以基于與IMU數據265相關聯的置信度來定義或生成閾值方向相似性505。系統可基于各種因素來確定IMU置信度510。在IMU置信度510較低的情況下,系統定義更廣泛的閾值方向相似性505,以補償估計方向365的潛在不精確性。在其他實例中,在IMU置信度高的情況下,系統可定義窄閾值取向相似性505,其可進一步提高重定位處理的效率。
因此,與環境200內的用戶250相關聯的系統可利用系統的估計位置360(基于GPS數據260和/或IMU數據265)和/或估計方向365(基于IMU數據265)來限制環境200的映射300內的定位搜索空間,以識別映射300內的關鍵幀320子集,并將其用作環境200的候選關鍵幀本地化。因此,系統可以避免使用不包括在關鍵幀320的子集中的映射300的關鍵幀320作為用于定位的候選關鍵幀,這可以提高與環境200內的定位相關聯的效率。
如上文參考圖2所示,當用戶位于環境200內的位置250B時,與用戶250相關聯的系統可以獲得追蹤數據255(包括GPS數據260、IMU數據265和圖像數據270)。在一個實施例中,與用戶250相關聯的系統配置為在環境中的不同追蹤模式之間選擇性地轉換。
在不同追蹤模式之間有選擇地轉換可以避免不必要的數據采集,從而節省電池和/或計算資源。例如,圖8是圖2中的環境200,其描繪了用戶250從區域205內的位置250A移動到區域215的位置250B。
如上所述,環境200的映射300可以省略視覺映射數據,以便于在環境的樹木覆蓋區域205內定位。因此,與用戶250相關聯的系統可以使用第一追蹤模式810追蹤環境200內的系統位置。
在一個實施例中,第一追蹤模式810包括GPS追蹤815。在一個實施例中,當在第一追蹤模式810下操作時,系統避免執行與SLAM相關聯的操作,例如捕獲圖像數據、提取特征、執行深度計算、追蹤幀到幀六自由度姿勢等,從而節省計算和/或電池資源。例如,系統可依賴GPS追蹤815來維持系統相對于環境200的粗略位置感知,并且當GPS追蹤815指示系統基本上在森林區域205內時,系統可以避免獲取圖像數據。
當用戶250從位置250A過渡到位置250B時,與用戶相關聯的系統可檢測到觸發條件830。在一個實施例中,觸發條件830配置為選擇性地從第一追蹤模式810切換到第二追蹤模式850。在一個實施例中,第二追蹤模式850包括相對于第一追蹤模式810的高保真追蹤模式。例如,第二追蹤模式850可包括SLAM 870,其利用圖像數據880和IMU數據890以厘米或毫米精度追蹤系統的六自由度姿態。
相關專利:Microsoft Patent | Systems and methods for gps-based and sensor-based relocalization
名為“Systems and methods for gps-based and sensor-based relocalization”的微軟專利申請最初在2021年6月提交,并在日前由美國專利商標局公布。