IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マジック リープ, インコーポレイテッドの特許一覧

特許7586918位置特定正確度のためのバッファを伴うクロスリアリティシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】位置特定正確度のためのバッファを伴うクロスリアリティシステム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20241112BHJP
   G06F 3/14 20060101ALI20241112BHJP
【FI】
G06T19/00 600
G06F3/14 310A
【請求項の数】 12
(21)【出願番号】P 2022550929
(86)(22)【出願日】2021-02-25
(65)【公表番号】
(43)【公表日】2023-04-13
(86)【国際出願番号】 US2021019716
(87)【国際公開番号】W WO2021173862
(87)【国際公開日】2021-09-02
【審査請求日】2024-02-13
(31)【優先権主張番号】62/981,961
(32)【優先日】2020-02-26
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】シャーロクニー, アリ
(72)【発明者】
【氏名】リン, ケン-シェン
(72)【発明者】
【氏名】ジャオ, シュアン
(72)【発明者】
【氏名】ムーア, クリスチャン イヴァン ロバート
(72)【発明者】
【氏名】スワミナサン, アシュウィン
【審査官】鈴木 明
(56)【参考文献】
【文献】米国特許出願公開第2010/0208057(US,A1)
【文献】国際公開第2017/183346(WO,A1)
【文献】国際公開第2015/186341(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/14
(57)【特許請求の範囲】
【請求項1】
動的バッファを伴う電子デバイスを位置特定するためのシステムであって、
バッファと、
前記バッファに結合され、コンピュータ実行可能命令を実行するプロセッサと、
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、その上に記憶される前記コンピュータ実行可能命令を有し、前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記プロセッサに、行為のセットを実施させ、前記行為のセットは、
前記バッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
前記システムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
前記特徴の第1のセットに関する前記第1の特性および前記特徴の第2のセットに関する前記第2の特性に少なくとも部分的に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと
を含む、非一過性コンピュータ可読媒体と
を備え、
前記特徴の第1のセットに関する前記第1の特性は、前記特徴の第1のセットに関する第1のクロスエントロピを備え、前記特徴の第2のセットに関する前記第2の特性は、前記特徴の第2のセットに関する第2のクロスエントロピを備え、
前記トリガ条件は、前記第1の特性と前記第2の特性との間の物理的分離閾値限界を超える差異で充足される、システム。
【請求項2】
前記第2のクロスエントロピは、前記第1の画像と前記第2の画像との間の平行移動距離、回転角度、視点の変化に関するデータ、前記第2の画像を捕捉する前記電子デバイスの無線フィンガプリント、少なくとも部分的に追跡マップに基づく前記電子デバイスの姿勢追跡データ、または前記第2の画像と前記第1の画像の視覚的類似性を備える、請求項1に記載のシステム。
【請求項3】
動的バッファを伴う電子デバイスを位置特定するためのシステムであって、
バッファと、
前記バッファに結合され、コンピュータ実行可能命令を実行するプロセッサと、
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、その上に記憶される前記コンピュータ実行可能命令を有し、前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記プロセッサに、行為のセットを実施させ、前記行為のセットは、
前記バッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
前記システムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
前記特徴の第1のセットに関する前記第1の特性および前記特徴の第2のセットに関する前記第2の特性に少なくとも部分的に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと、
前記トリガ条件が充足されると、前記バッファの前記サイズを動的に修正することと、
前記第1の特性と前記第2の特性との間の比較に少なくとも部分的に基づいて、前記特徴の第2のセットが破棄されるべきかどうかを決定することと
を含む、非一過性コンピュータ可読媒体と
を備える、システム。
【請求項4】
動的バッファを伴う電子デバイスを位置特定するためのシステムであって、
バッファと、
前記バッファに結合され、コンピュータ実行可能命令を実行するプロセッサと、
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、その上に記憶される前記コンピュータ実行可能命令を有し、前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記プロセッサに、行為のセットを実施させ、前記行為のセットは、
前記バッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
前記システムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
前記特徴の第1のセットに関する前記第1の特性および前記特徴の第2のセットに関する前記第2の特性に少なくとも部分的に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと、
前記バッファに追加された特徴の直近のセットに対応するバッファされた特徴のセットを識別することと、
前記バッファされた特徴のセットに関する別個の特性を識別することと、
前記第2の特性と前記別個の特性との間の比較に少なくとも部分的に基づいて、前記トリガ条件が充足されるかどうかを決定することと
を含む、非一過性コンピュータ可読媒体と
を備える、システム。
【請求項5】
動的バッファを伴う電子デバイスを位置特定するためのシステムであって、
バッファと、
前記バッファに結合され、コンピュータ実行可能命令を実行するプロセッサと、
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、その上に記憶される前記コンピュータ実行可能命令を有し、前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記プロセッサに、行為のセットを実施させ、前記行為のセットは、
前記バッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
前記システムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
前記特徴の第1のセットに関する前記第1の特性および前記特徴の第2のセットに関する前記第2の特性に少なくとも部分的に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと、
前記バッファの前記サイズに少なくとも部分的に基づいて、前記バッファ内に記憶される特徴のセットの総数を位置特定要求として前記システム上の位置特定サービスモジュールに伝送することと
を含む、非一過性コンピュータ可読媒体と
を備える、システム。
【請求項6】
動的バッファを伴う電子デバイスを位置特定するためのシステムであって、
バッファと、
前記バッファに結合され、コンピュータ実行可能命令を実行するプロセッサと、
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、その上に記憶される前記コンピュータ実行可能命令を有し、前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記プロセッサに、行為のセットを実施させ、前記行為のセットは、
前記バッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
前記システムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
前記特徴の第1のセットに関する前記第1の特性および前記特徴の第2のセットに関する前記第2の特性に少なくとも部分的に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと、
深層疎特徴の第1のセットを前記第1の画像から、および深層疎特徴の第2のセットを前記第2の画像から決定することと、
1つまたはそれを上回る候補規準マップを前記システムによってアクセス可能なリポジトリから識別することと
を含む、非一過性コンピュータ可読媒体と
を備える、システム。
【請求項7】
前記行為のセットは、
前記システムにおいて、追跡マップを前記電子デバイスから受信することであって、前記追跡マップは、前記電子デバイスによって捕捉された画像フレームに関する、ことと、
追跡マップ点のセットと、前記追跡マップ点のセットの少なくとも1つの追跡マップ点に結び付けられるまたは加えられる空間情報または姿勢情報とを識別することであって、前記追跡マップ点のセットは、前記電子デバイスによって捕捉された前記画像フレームから決定され、前記少なくとも1つの追跡マップ点は、前記画像フレームを捕捉する前記電子デバイスの頭部姿勢に関する前記空間情報を備える、ことと、
前記電子デバイスからの位置特定要求を処理すべきかどうかを決定することと
をさらに含む、請求項6に記載のシステム。
【請求項8】
前記位置特定要求が処理されるように決定されると、前記行為のセットは、
記述子のセットまたは前記姿勢情報を前記バッファに追加することと、
前記電子デバイスに関する場所データに少なくとも部分的に基づいて、前記システムによってアクセス可能な前記リポジトリから、前記1つまたはそれを上回る候補規準マップのうちの少なくとも1つの候補規準マップを選択することであって、前記場所データは、地理的場所または無線ネットワーク情報を備える、ことと、
前記追跡マップ点のセットに少なくとも部分的に基づいて、1つまたはそれを上回る持続座標フレームを、前記少なくとも1つの候補規準マップ内に記憶される持続座標フレームのセットから選択することと
をさらに含む、請求項7に記載のシステム。
【請求項9】
前記位置特定要求が処理されるように決定されると、前記行為のセットは、
少なくとも、類似性分析を実施することによって、前記少なくとも1つの候補規準マップ内の前記1つまたはそれを上回る持続座標フレームと前記追跡マップ内の前記追跡マップ点のセットとの間の類似性を決定することと、
前記類似性に少なくとも部分的に基づいて、相対的変換を決定することと、
少なくとも、前記相対的変換を前記追跡マップまたは前記少なくとも1つの候補規準マップのうちの少なくとも1つに適用することによって、前記追跡マップを前記少なくとも1つの候補規準マップに対して位置特定することと
をさらに含む、請求項に記載のシステム。
【請求項10】
動的バッファを伴う電子デバイスを位置特定するための方法であって、
ッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
ステムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
前記特徴の第1のセットに関する前記第1の特性および前記特徴の第2のセットに関する前記第2の特性に少なくとも部分的に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと、
深層疎特徴の第1のセットを前記第1の画像から、深層疎特徴の第2のセットを前記第2の画像から決定することと、
1つまたはそれを上回る候補規準マップを前記システムによってアクセス可能なリポジトリから識別することと、
前記システムにおいて、追跡マップを前記電子デバイスから受信することであって、前記追跡マップは、前記電子デバイスによって捕捉された画像フレームに関する、ことと、
追跡マップ点のセットと、前記追跡マップ点のセットの少なくとも1つの追跡マップ点に結び付けられるまたは加えられる空間情報または姿勢情報とを識別することであって、前記追跡マップ点のセットは、前記電子デバイスによって捕捉された前記画像フレームから決定され、前記少なくとも1つの追跡マップ点は、前記画像フレームを捕捉する前記電子デバイスの頭部姿勢に関する前記空間情報を備える、ことと、
前記電子デバイスからの位置特定要求を処理すべきかどうかを決定することと
を含む、方法。
【請求項11】
記述子のセットまたは前記姿勢情報を前記バッファに追加することと、
前記電子デバイスに関する場所データに少なくとも部分的に基づいて、前記システムによってアクセス可能な前記リポジトリから、前記1つまたはそれを上回る候補規準マップのうちの少なくとも1つの候補規準マップを選択することであって、前記場所データは、地理的場所または無線ネットワーク情報を備える、ことと、
前記追跡マップ点のセットに少なくとも部分的に基づいて、1つまたはそれを上回る持続座標フレームを、前記少なくとも1つの候補規準マップ内に記憶される持続座標フレームのセットから選択することと
をさらに含む、請求項10に記載の方法。
【請求項12】
少なくとも、類似性分析を実施することによって、前記少なくとも1つの候補規準マップ内の前記1つまたはそれを上回る持続座標フレームと前記追跡マップ内の前記追跡マップ点のセットとの間の類似性を決定することと、
前記類似性に少なくとも部分的に基づいて、相対的変換を決定することと、
少なくとも、前記相対的変換を前記追跡マップまたは前記少なくとも1つの候補規準マップのうちの少なくとも1つに適用することによって、前記追跡マップを前記少なくとも1つの候補規準マップに対して位置特定することと
をさらに含む、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、概して、クロスリアリティシステムに関する。
【背景技術】
【0002】
コンピュータは、ヒューマンユーザインターフェースを制御し、ユーザによって知覚されるにつれて、XR環境の一部または全部がコンピュータによって生成される、クロスリアリティ(XRまたはクロスリアリティ)環境を作成し得る。これらのXR環境は、XR環境の一部または全部が、部分的に、環境を説明するデータを使用して、コンピュータによって生成され得る、仮想現実(VR)、拡張現実(AR)、および複合現実(MR)環境であり得る。本データは、例えば、ユーザが、物理的世界の一部として、感知または知覚し、仮想オブジェクトと相互作用し得るようにレンダリングされ得る、仮想オブジェクトを説明し得る。ユーザは、例えば、頭部搭載型ディスプレイデバイス等のユーザインターフェースデバイスを通してレンダリングおよび提示されているデータの結果として、これらの仮想オブジェクトを体験し得る。データは、ユーザに見えるように表示され得る、またはユーザに聞こえるように再生される、オーディオを制御し得る、または触知的(または触覚的)インターフェースを制御し、ユーザが、仮想オブジェクトを感じるにつれて、ユーザが感知または知覚する、タッチ感覚を体験することを可能にし得る。
【0003】
XRシステムは、科学的可視化、医療訓練、工学設計、およびプロトタイプ化、遠隔操作およびテレプレゼンス、および個人的娯楽の分野に及ぶ、多くの用途のために有用であり得る。ARおよびMRは、VRと対照的に、物理的世界の実オブジェクトと関連して、1つまたはそれを上回るオブジェクトを含む。実オブジェクトと相互作用する、仮想オブジェクトの体験は、XRシステムを使用する際、ユーザの享受を大幅に向上させ、また、物理的世界が改変され得る様子についての現実的かつ容易に理解可能な情報を提示する、種々の用途のための可能性を広げる。
【0004】
仮想コンテンツを現実的にレンダリングするために、XRシステムは、システムのユーザの周囲の物理的世界の表現を構築し得る。本表現は、例えば、XRシステムの一部を形成する、ウェアラブルデバイス上のセンサを用いて入手された処理画像によって構築されてもよい。そのようなシステムでは、ユーザは、システムがその環境の表現を構築するために十分な情報を入手するまで、ユーザがXRシステムを使用することを意図する部屋または他の物理的環境を見て回ることによって、初期化ルーチンを実施し得る。システムが動作し、ユーザが環境の周囲を、または他の環境へと動き回るにつれて、ウェアラブルデバイス上のセンサは、付加的情報を入手し、物理的世界の表現を拡張または更新し得る。
【発明の概要】
【課題を解決するための手段】
【0005】
本願の側面は、Xリアリティ(クロスリアリティまたはXR)場面を提供するための方法および装置に関する。本明細書に説明される技法は、ともに、別個に、または任意の好適な組み合わせにおいて、使用されてもよい。
【0006】
いくつかの実施形態によると、電子デバイスが、提供される。電子デバイスは、クロスリアリティシステム内で動作するように構成される。電子デバイスは、3次元(3D)環境についての情報を捕捉するように構成される、1つまたはそれを上回るセンサを備える。捕捉された情報は、複数の画像を備える。電子デバイスはさらに、コンピュータ実行可能命令を実行するように構成される、少なくとも1つのプロセッサを備える。コンピュータ実行可能命令は、3D環境内の位置を表すためのローカル座標フレームを生成するステップと、特徴のセットを3D環境の複数の画像のそれぞれから抽出するステップと、位置特定サービスに、特徴の複数のセットと、複数のセット内の複数の特徴に関するローカル座標フレーム内に表される、位置情報とを備える、バッチを提供するステップと、位置特定サービスから、ローカル座標フレームを第2の座標フレームに関連させる、少なくとも1つの変換を受信するステップとのための命令を備える。コンピュータ実行可能命令はさらに、イベントの検出に応答して、特徴のセットを抽出し、特徴のセットを抽出するための命令をトリガするステップと、抽出された特徴のセットをバッチに追加するステップとのための命令を備える。
【0007】
いくつかの実施形態によると、ポータブルデバイスを動作させ、仮想コンテンツを3D環境内にレンダリングする方法が、提供される。本方法は、ポータブルデバイス上の1つまたはそれを上回るセンサの出力に基づいて、1つまたはそれを上回るプロセッサを用いて、ポータブルデバイス上に、ローカル座標フレームを生成するステップと、イベントの検出に応答して、ポータブルデバイス上に、3D環境内で感知される複数の特徴に関する複数の記述子を生成するステップと、複数の特徴に関する生成された複数の記述子をバッチに追加するステップと、ネットワークを経由して、位置特定サービスに、特徴の複数の記述子と、ローカル座標フレーム内に表される特徴の位置情報とを備える、バッチを送信するステップと、位置特定サービスから、3D環境についての記憶された空間情報の記憶された座標フレームとローカル座標フレームとの間の変換を取得するステップと、仮想オブジェクト座標フレームを有する、仮想オブジェクトの仕様と、記憶された座標フレームに対する仮想オブジェクトの場所を受信するステップと、仮想オブジェクトを、ポータブルデバイスのディスプレイ上において、少なくとも部分的に、算出された変換と、仮想オブジェクトの受信された場所とに基づいて決定された場所にレンダリングするステップとを含む。
【0008】
いくつかの実施形態によると、少なくとも1つのコンピュータ可読媒体が、提供される。少なくとも1つのコンピュータ可読媒体は、その上に記録された命令を有し、これは、ポータブルデバイスと、位置特定サービスとを備える、コンピューティングシステム内で実行されると、コンピューティングシステムに、ある方法を実施させる。本方法は、(A)ポータブルデバイスとポータブルデバイスの物理的周囲との間の相互作用に関連する情報を受信する行為であって、情報は、物理的周囲に関連する画像情報を備える、行為と、(B)イベントの検出に応答して、画像情報によって描写される物理的周囲の特徴の複数の記述子を生成する行為と、(C)ローカル座標フレーム内の位置情報と行為(A)で生成された特徴の複数の記述子を関連付ける行為と、(D)生成された複数の記述子をバッチに追加する行為と、(E)位置特定サービスに、特徴の複数の記述子と、ローカル座標フレーム内に表される特徴の位置情報とを備える、バッチを送信する行為と、(F)ポータブルデバイスの物理的周囲についての記憶された空間情報の記憶された座標フレームとローカル座標フレームとの間の変換を受信する行為と、(G)場所が、仮想コンテンツの規定された場所に基づいて、仮想コンテンツを物理的周囲に対して位置付けられるポータブルデバイスのディスプレイ上にレンダリングする際、本来の拡張現実(AR)フレームワークによる使用のために構成されるように、変換をポータブルデバイス上のアプリケーションによって規定された仮想コンテンツの場所に適用する行為とを含む。
【0009】
前述の説明は、例証として提供され、限定することを意図するものではない。
本発明は、例えば、以下を提供する。
(項目1)
動的バッファを伴う電子デバイスを位置特定するためのシステムであって、
バッファと、
前記バッファに結合され、コンピュータ実行可能命令を実行するプロセッサであって、前記コンピュータ実行可能命令は、命令を備える、プロセッサと、
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、その上に記憶される命令のシーケンスを有し、前記命令のシーケンスは、前記プロセッサによって実行されると、前記プロセッサに、行為のセットを実施させ、前記行為のセットは、
前記バッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
前記システムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
少なくとも部分的に、前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと
を含む、非一過性コンピュータ可読媒体と
を備える、システム。
(項目2)
前記特徴の第1のセットに関する第1の特性は、前記特徴の第1のセットに関する第1のクロスエントロピを備え、前記特徴の第2のセットに関する第2の特性は、前記特徴の第2のセットに関する第2のクロスエントロピを備える、項目1に記載のシステム。
(項目3)
前記第2のエントロピは、前記第1の画像と前記第2の画像との間の平行移動距離、回転角度、視点の変化に関するデータ、前記第2の画像を捕捉する前記電子デバイスの無線フィンガプリント、少なくとも部分的に追跡マップに基づく前記電子デバイスの姿勢追跡データ、または前記第2の画像と前記第1の画像の視覚的類似性を備える、項目2に記載のシステム。
(項目4)
前記トリガ条件は、前記第1の特性と第2の特性との間の物理的分離閾値限界を超える差異で充足される、項目2に記載のシステム。
(項目5)
前記行為のセットはさらに、
前記トリガ条件が充足されると、前記バッファのサイズを動的に修正することと、
少なくとも部分的に、前記第1の特性と第2の特性との間の比較に基づいて、前記特徴の第2のセットが破棄されるべきかどうかを決定することと
を含む、項目1に記載のシステム。
(項目6)
前記行為のセットはさらに、
前記バッファに追加された特徴の直近のセットに対応するバッファされた特徴のセットを識別することと、
前記バッファされた特徴のセットに関する別個の特性を識別することと、
少なくとも部分的に、前記第2の特性と前記別個の特性との間の比較に基づいて、前記トリガ条件が充足されるかどうかを決定することと
を含む、項目1に記載のシステム。
(項目7)
前記行為のセットはさらに、
少なくとも部分的に、前記バッファのサイズに基づいて、前記バッファ内に記憶される特徴のセットの総数を位置特定要求として前記システム上の位置特定サービスモジュールに伝送することを含む、項目1に記載のシステム。
(項目8)
前記行為のセットはさらに、
少なくとも部分的に、前記バッファのサイズに基づいて、前記バッファ内に記憶される特徴のセットの総数を位置特定要求として前記システム上の位置特定サービスモジュールに伝送することを含む、項目1に記載のシステム。
(項目9)
前記行為のセットはさらに、
深層疎特徴の第1のセットを前記第1の画像から、および深層疎特徴の第2のセットを前記第2の画像から決定することと、
1つまたはそれを上回る候補規準マップを前記システムによってアクセス可能なリポジトリから識別することと
を含む、項目1に記載のシステム。
(項目10)
前記行為のセットはさらに、
前記システムにおいて、追跡マップを前記電子デバイスから受信することであって、前記追跡マップは、前記電子デバイスによって捕捉された画像フレームに関する、ことと、
追跡マップ点のセットと、前記追跡マップ点のセットの少なくとも1つの追跡マップ点に結び付けられる、または加えられる、空間情報(随意)または姿勢情報を識別することであって、前記追跡マップ点のセットは、前記電子デバイスによって捕捉された画像から決定され、前記少なくとも1つの追跡マップ点は、前記画像フレームを捕捉する前記電子デバイスの頭部姿勢に関する空間情報を備える、ことと、
前記電子デバイスからの位置特定要求を処理すべきかどうかを決定することと
を含む、項目9に記載のシステム。
(項目11)
前記位置特定要求を処理すべきと決定されると、前記行為のセットはさらに、
前記記述子のセットまたは前記姿勢情報を前記バッファに追加することと、
少なくとも部分的に、前記電子デバイスに関する場所データに基づいて、前記システムによってアクセス可能なリポジトリから、少なくとも1つの候補規準マップを選択することであって、前記場所データは、地理的場所または無線ネットワーク情報を備える、ことと、
少なくとも部分的に、前記追跡マップ点のセットに基づいて、1つまたはそれを上回る持続座標フレームを、前記少なくとも1つの候補規準マップ内に記憶される前記持続座標フレームのセットから選択することと
を含む、項目10に記載のシステム。
(項目12)
前記位置特定要求を処理すべきと決定されると、前記行為のセットはさらに、
少なくとも、類似性分析を実施することによって、前記少なくとも1つの候補規準マップ内の前記1つまたはそれを上回る持続座標フレームと前記追跡マップ内の前記追跡マップ点のセットとの間の類似性を決定することと、
少なくとも部分的に、前記類似性に基づいて、相対的変換を決定することと、
少なくとも、前記相対的変換を前記追跡マップまたは前記少なくとも1つの候補規準マップのうちの少なくとも1つに適用することによって、前記追跡マップを前記少なくとも1つの候補規準マップに対して位置特定することと
を含む、項目10に記載のシステム。
(項目13)
クロスリアリティ環境において、動的バッファを伴う仮想コンテンツをレンダリングするための電子デバイスであって、
3次元(3D)環境についての画像情報を捕捉するセンサであって、前記情報は、複数の画像を備える、センサと、
コンピュータ実行可能命令を実行するプロセッサであって、前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記プロセッサに、行為のセットを実施させる命令を備え、前記行為のセットは、
前記3D環境内のオブジェクトまたはその一部を表すためのローカル座標フレームを生成することと、
特徴のセットを前記3D環境の画像情報から決定することと、
前記ローカル座標フレーム内に表される前記特徴のセットを遠隔サーバ上の位置特定サービスに転送することと、
前記位置特定サービスから、少なくとも1つの変換を受信することであって、前記少なくとも1つの変換は、前記ローカル座標フレームを共有可能世界モデルの規準マップの別個の座標フレームに対して位置特定する、ことと
を含む、プロセッサと
を備える、電子デバイス。
(項目14)
前記特徴のセットは、前記位置特定サービスに伝送されている特徴の別個のセットに対する前記電子デバイスに関する位置情報の変化を示し、前記位置情報の変化は、閾値を超える平行移動距離、回転角度、またはそれらの組み合わせの変化を備える、項目1に記載の電子デバイス。
(項目15)
前記行為のセットはさらに、少なくとも部分的に、前記特徴のセットに関する第1のクロスエントロピと、前記位置特定サービスに伝送されている特徴の別個のセットに関する第2のクロスエントロピとに基づいて、位置特定のための要求を前記位置特定サービスに送信することを含む、項目7に記載の電子デバイス。
(項目16)
前記行為のセットはさらに、前記特徴のセットを伴う追跡マップを生成することを含み、前記追跡マップは、それぞれ、前記電子デバイスに関する1つまたはそれを上回る頭部姿勢を表す1つまたはそれを上回る点ノードを含み、前記規準マップは、1つまたはそれを上回る持続座標フレームを備える、項目8に記載の電子デバイス。
(項目17)
動的バッファを伴う電子デバイスを位置特定するための方法であって、
前記バッファから、前記電子デバイスによって捕捉された第1の画像から抽出される特徴の第1のセットを識別することと、
前記システムにおいて、前記電子デバイスによって捕捉された第2の画像から抽出される特徴の第2のセットを受信することと、
前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性を決定することと、
少なくとも部分的に、前記特徴の第1のセットに関する第1の特性および前記特徴の第2のセットに関する第2の特性に基づいて、前記バッファのサイズを動的に変化させるためのトリガ条件が、充足されるかどうかを決定することと
を含む、方法。
(項目18)
深層疎特徴の第1のセットを前記第1の画像から、深層疎特徴の第2のセットを前記第2の画像から決定することと、
1つまたはそれを上回る候補規準マップを前記システムによってアクセス可能なリポジトリから識別することと、
前記システムにおいて、追跡マップを前記電子デバイスから受信することであって、前記追跡マップは、前記電子デバイスによって捕捉された画像フレームに関連する、ことと、
前記追跡マップ点のセットと、前記追跡マップ点のセットの少なくとも1つの追跡マップ点に結び付けられる、または加えられる、空間情報(随意)または姿勢情報とを識別することであって、前記追跡マップ点のセットは、前記電子デバイスによって捕捉された画像から決定され、前記少なくとも1つの追跡マップ点は、前記画像フレームを捕捉する前記電子デバイスの頭部姿勢に関する空間情報を備える、ことと、
前記電子デバイスからの位置特定要求を処理すべきかどうかを決定することと
をさらに含む、項目1に記載の方法。
(項目19)
前記記述子のセットまたは前記姿勢情報を前記バッファに追加することと、
少なくとも部分的に、前記電子デバイスに関する場所データに基づいて、前記システムによってアクセス可能なリポジトリから、少なくとも1つの候補規準マップを選択することであって、前記場所データは、地理的場所または無線ネットワーク情報を備える、ことと、
少なくとも部分的に、前記追跡マップ点のセットに基づいて、1つまたはそれを上回る持続座標フレームを、前記少なくとも1つの候補規準マップ内に記憶される前記持続座標フレームのセットから選択することと
をさらに含む、項目18に記載の方法。
(項目20)
少なくとも、類似性分析を実施することによって、前記少なくとも1つの候補規準マップ内の前記1つまたはそれを上回る持続座標フレームと前記追跡マップ内の前記追跡マップ点のセットとの間の類似性を決定することと、
少なくとも部分的に、前記類似性に基づいて、相対的変換を決定することと、
少なくとも、前記相対的変換を前記追跡マップまたは前記少なくとも1つの候補規準マップのうちの少なくとも1つに適用することによって、前記追跡マップを前記少なくとも1つの候補規準マップに対して位置特定することと
をさらに含む、項目19に記載の方法。
【図面の簡単な説明】
【0010】
添付の図面は、縮尺通りに描かれることを意図していない。図面では、種々の図に図示される、各同じまたはほぼ同じコンポーネントは、同様の数字で表される。明確性の目的のために、全てのコンポーネントが、全ての図面において標識されているわけではない。
【0011】
図1図1は、いくつかの実施形態による、簡略化された拡張現実(AR)場面の実施例を図示する、スケッチである。
【0012】
図2図2は、いくつかの実施形態による、XRシステムの例示的ユースケースを示す、例示的簡略化されたAR場面のスケッチである。
【0013】
図3図3は、いくつかの実施形態による、物理的世界と相互作用するARコンテンツの体験をユーザに提供するように構成される、ARシステム内の単一ユーザのためのデータフローを図示する、概略図である。
【0014】
図4図4は、いくつかの実施形態による、単一ユーザのための仮想コンテンツを表示する、例示的ARディスプレイシステムを図示する、概略図である。
【0015】
図5A図5Aは、いくつかの実施形態による、ユーザが物理的世界環境を通して移動するにつれてARコンテンツをレンダリングする、ARディスプレイシステムを装着しているユーザを図示する、概略図である。
【0016】
図5B図5Bは、いくつかの実施形態による、視認光学系アセンブリおよび付帯コンポーネントを図示する、概略図である。
【0017】
図6A図6Aは、いくつかの実施形態による、世界再構築システムを使用するARシステムを図示する、概略図である。
【0018】
図6B図6Bは、いくつかの実施形態による、パス可能世界のモデルを維持する、ARシステムのコンポーネントを図示する、概略図である。
【0019】
図7図7は、物理的世界を通した経路をトラバースするデバイスによって形成される、追跡マップの概略図である。
【0020】
図8図8は、いくつかの実施形態による、仮想コンテンツを知覚する、クロスリアリティ(XR)システムのユーザを図示する、概略図である。
【0021】
図9図9は、いくつかの実施形態による、座標系間で変換する、図8のXRシステムの第1のXRデバイスのコンポーネントのブロック図である。
【0022】
図10図10は、いくつかの実施形態による、ローカルXRコンテンツを正しくレンダリングするための原点座標フレームの目的地座標フレームへの例示的変換を図示する、概略図である。
【0023】
図11図11は、いくつかの実施形態による、瞳孔ベースの座標フレームを図示する、上部平面図である。
【0024】
図12図12は、いくつかの実施形態による、全ての瞳孔位置を含む、カメラ座標フレームを図示する、上部平面図である。
【0025】
図13図13は、いくつかの実施形態による、図9のディスプレイシステムの概略図である。
【0026】
図14図14は、いくつかの実施形態による、持続座標フレーム(PCF)の作成およびXRコンテンツのPCFへの結付を図示する、ブロック図である。
【0027】
図15図15は、いくつかの実施形態による、PCFを確立および使用する方法を図示する、フローチャートである。
【0028】
図16図16は、いくつかの実施形態による、第2のXRデバイスを含む、図8のXRシステムのブロック図である。
【0029】
図17図17は、いくつかの実施形態による、部屋と、部屋内の種々のエリアのために確立される、キーフレームとを図示する、概略図である。
【0030】
図18図18は、いくつかの実施形態による、キーフレームに基づく、持続姿勢の確立を図示する、概略図である。
【0031】
図19図19は、いくつかの実施形態による、持続姿勢に基づく、持続座標フレーム(PCF)の確立を図示する、概略図である。
【0032】
図20図20A-20Cは、いくつかの実施形態による、PCFを作成する実施例を図示する、概略図である。
【0033】
図21図21は、いくつかの実施形態による、個々の画像および/またはマップのためのグローバル記述子を生成するためのシステムを図示する、ブロック図である。
【0034】
図22図22は、いくつかの実施形態による、画像記述子を算出する方法を図示する、フローチャートである。
【0035】
図23図23は、いくつかの実施形態による、画像記述子を使用した位置特定の方法を図示する、フローチャートである。
【0036】
図24図24は、いくつかの実施形態による、ニューラルネットワークを訓練する方法を図示する、フローチャートである。
【0037】
図25図25は、いくつかの実施形態による、ニューラルネットワークを訓練する方法を図示する、ブロック図である。
【0038】
図26図26は、いくつかの実施形態による、複数の環境マップをランク付けおよびマージするように構成される、ARシステムを図示する、概略図である。
【0039】
図27図27は、いくつかの実施形態による、遠隔記憶媒体上に記憶された複数の規準マップを図示する、簡略化されたブロック図である。
【0040】
図28図28は、いくつかの実施形態による、規準マップを選択し、例えば、1つまたはそれを上回る規準マップ内で新しい追跡マップを位置特定する、および/またはPCFを規準マップから取得する方法を図示する、概略図である。
【0041】
図29図29は、いくつかの実施形態による、複数のランク付けされた環境マップを選択する方法を図示する、フローチャートである。
【0042】
図30図30は、いくつかの実施形態による、図26のARシステムの例示的マップランク付け部分を図示する、概略図である。
【0043】
図31A図31Aは、いくつかの実施形態による、データベース内の追跡マップ(TM)および環境マップのエリア属性の実施例を図示する、概略図である。
【0044】
図31B図31Bは、いくつかの実施形態による、図29の地理的場所フィルタリングのための追跡マップ(TM)の地理的場所を決定する実施例を図示する、概略図である。
【0045】
図32図32は、いくつかの実施形態による、図29の地理的場所フィルタリングの実施例を図示する、概略図である。
【0046】
図33図33は、いくつかの実施形態による、図29のWi-Fi BSSIDフィルタリングの実施例を図示する、概略図である。
【0047】
図34図34は、いくつかの実施形態による、図29の位置特定の使用の実施例を図示する、概略図である。
【0048】
図35図35および36は、いくつかの実施形態による、複数の環境マップをランク付けおよびマージするように構成される、XRシステムのブロック図である。
図36図35および36は、いくつかの実施形態による、複数の環境マップをランク付けおよびマージするように構成される、XRシステムのブロック図である。
【0049】
図37図37は、いくつかの実施形態による、規準形態において、物理的世界の環境マップを作成する方法を図示する、ブロック図である。
【0050】
図38A図38Aおよび38Bは、いくつかの実施形態による、図7の追跡マップを新しい追跡マップで更新することによって規準形態において作成された環境マップを図示する、概略図である。
図38B図38Aおよび38Bは、いくつかの実施形態による、図7の追跡マップを新しい追跡マップで更新することによって規準形態において作成された環境マップを図示する、概略図である。
【0051】
図39-1】図39A-39Fは、いくつかの実施形態による、マップをマージする実施例を図示する、概略図である。
図39-2】図39A-39Fは、いくつかの実施形態による、マップをマージする実施例を図示する、概略図である。
【0052】
図40図40は、いくつかの実施形態による、3次元の第1のローカル追跡マップ(マップ1)の2次元表現であって、これは、図9の第1のXRデバイスによって生成され得る。
【0053】
図41図41は、いくつかの実施形態による、マップ1を第1のXRデバイスから図9のサーバにアップロードすることを図示する、ブロック図である。
【0054】
図42図42は、いくつかの実施形態による、図16のXRシステムを図示する、概略図であって、第2のユーザが、第1のユーザが第1のセッションを終了した後、XRシステムの第2のXRデバイスを使用して、第2のセッションを開始したことを示す。
【0055】
図43A図43Aは、いくつかの実施形態による、図42の第2のXRデバイスのための新しいセッションを図示する、ブロック図である。
【0056】
図43B図43Bは、いくつかの実施形態による、図42の第2のXRデバイスのための追跡マップの作成を図示する、ブロック図である。
【0057】
図43C図43Cは、いくつかの実施形態による、規準マップをサーバから図42の第2のXRデバイスにダウンロードすることを図示する、ブロック図である。
【0058】
図44図44は、いくつかの実施形態による、規準マップに対して、図42の第2のXRデバイスによって生成され得る、第2の追跡マップ(マップ2)を位置特定するように試みる、位置特定を図示する、概略図である。
【0059】
図45図45は、いくつかの実施形態による、規準マップに対して、さらに展開され得、マップ2のPCFと関連付けられるXRコンテンツを伴う、図44の第2の追跡マップ(マップ2)を位置特定するように試みる、位置特定を図示する、概略図である。
【0060】
図46A図46A-46Bは、いくつかの実施形態による、規準マップに対する図45のマップ2の位置特定成功を図示する、概略図である。
図46B図46A-46Bは、いくつかの実施形態による、規準マップに対する図45のマップ2の位置特定成功を図示する、概略図である。
【0061】
図47図47は、いくつかの実施形態による、図46Aの規準マップからの1つまたはそれを上回るPCFを図45のマップ2の中に含めることによって生成された、規準マップを図示する、概略図である。
【0062】
図48図48は、いくつかの実施形態による、第2のXRデバイス上のマップ2のさらなる拡張を伴う、図47の規準マップを図示する、概略図である。
【0063】
図49図49は、いくつかの実施形態による、マップ2を第2のXRデバイスからサーバにアップロードすることを図示する、ブロック図である。
図50図50は、いくつかの実施形態による、マップ2と規準マップをマージすることを図示する、ブロック図である。
【0064】
図51図51は、いくつかの実施形態による、新しい規準マップのサーバから第1および第2のXRデバイスへの伝送を図示する、ブロック図である。
【0065】
図52図52は、いくつかの実施形態による、マップ2の2次元表現と、マップ2に参照される、第2のXRデバイスの頭部座標フレームとを図示する、ブロック図である。
【0066】
図53図53は、いくつかの実施形態による、2次元において、6自由度で生じ得る、頭部座標フレームの調節を図示する、ブロック図である。
【0067】
図54図54は、いくつかの実施形態による、音がマップ2のPCFに対して位置特定される、第2のXRデバイス上の規準マップを図示する、ブロック図である。
【0068】
図55図55および56は、いくつかの実施形態による、第1のユーザが第1のセッションを終了し、第1のユーザがXRシステムを使用して第2のセッションを開始したときの、XRシステムの使用を図示する、斜視図およびブロック図である。
図56図55および56は、いくつかの実施形態による、第1のユーザが第1のセッションを終了し、第1のユーザがXRシステムを使用して第2のセッションを開始したときの、XRシステムの使用を図示する、斜視図およびブロック図である。
【0069】
図57図57および58は、いくつかの実施形態による、3人のユーザが同一セッション内でXRシステムを同時に使用するときの、XRシステムの使用を図示する、斜視図およびブロック図である。
図58図57および58は、いくつかの実施形態による、3人のユーザが同一セッション内でXRシステムを同時に使用するときの、XRシステムの使用を図示する、斜視図およびブロック図である。
【0070】
図59図59は、いくつかの実施形態による、頭部姿勢を復元およびリセットする方法を図示する、フローチャートである。
【0071】
図60図60は、いくつかの実施形態による、本発明のシステム内でアプリケーションを見出し得る、コンピュータの形態における機械のブロック図である。
【0072】
図61図61は、いくつかの実施形態による、その中で複数のデバイスのうちのいずれかが、位置特定サービスにアクセスし得る、例示的XRシステムの概略図である。
【0073】
図62図62は、いくつかの実施形態による、クラウドベースの位置特定を提供する、XRシステムの一部としてのポータブルデバイスの動作のための例示的プロセスフローである。
【0074】
図63A図63A、B、およびCは、いくつかの実施形態による、クラウドベースの位置特定のための例示的プロセスフローである。
図63B図63A、B、およびCは、いくつかの実施形態による、クラウドベースの位置特定のための例示的プロセスフローである。
図63C図63A、B、およびCは、いくつかの実施形態による、クラウドベースの位置特定のための例示的プロセスフローである。
【0075】
図64図64、65、66、67、および68は、XRデバイスを装着しているユーザが、3D環境をトラバースするにつれて、無線フィンガプリントを有する複数のタイルを用いて、追跡マップを構築する、一連のポータブルXRデバイスの概略図である。
図65図64、65、66、67、および68は、XRデバイスを装着しているユーザが、3D環境をトラバースするにつれて、無線フィンガプリントを有する複数のタイルを用いて、追跡マップを構築する、一連のポータブルXRデバイスの概略図である。
図66図64、65、66、67、および68は、XRデバイスを装着しているユーザが、3D環境をトラバースするにつれて、無線フィンガプリントを有する複数のタイルを用いて、追跡マップを構築する、一連のポータブルXRデバイスの概略図である。
図67図64、65、66、67、および68は、XRデバイスを装着しているユーザが、3D環境をトラバースするにつれて、無線フィンガプリントを有する複数のタイルを用いて、追跡マップを構築する、一連のポータブルXRデバイスの概略図である。
図68図64、65、66、67、および68は、XRデバイスを装着しているユーザが、3D環境をトラバースするにつれて、無線フィンガプリントを有する複数のタイルを用いて、追跡マップを構築する、一連のポータブルXRデバイスの概略図である。
【0076】
図69図69は、ポータブルXRデバイスを位置特定し、図64、65、66、67、および68の追跡マップを構築する際に使用するための候補タイルとして、記憶されたマップのセット内の記憶されたマップ内のタイルを選択するために、無線フィンガプリントを使用する概略図である。
【0077】
図70図70は、いくつかの実施形態による、無線フィンガプリントを生成するためのポータブルXRデバイスの動作方法を図示する、フローチャートである。
【0078】
図71図71は、いくつかの実施形態による、XRデバイスと、クラウドベースの位置特定サービスとを備える、代表的XRシステムを描写する、ブロック図である。
【発明を実施するための形態】
【0079】
詳細な説明
以下の説明では、ある具体的詳細が、種々の開示される実施形態の完全な理解を提供するために記載される。しかしながら、当業者は、実施形態は、これらの具体的詳細のうちの1つまたはそれを上回るものを伴わずに、または他の方法、コンポーネント、材料等を用いて、実践されてもよいことを認識するであろう。他のインスタンスでは、空間コンピューティングヘッドセットと、アイウェアのつるのアームのためのヒンジシステムとを含む、アイウェアと関連付けられる周知の構造は、実施形態の説明を不必要に曖昧にすることを回避するために、図示または詳細に説明されていない。
【0080】
文脈によって別様に要求されない限り、本明細書および続く請求項全体を通して、単語「comprise(~を備える)」および「comprises(~を備える)」および「comprising(~を備える)」等のその変形例は、「限定ではないが、~を含む」という制限のない、包含的意味で解釈されるべきである。
【0081】
本明細書全体を通して、「一実施形態」または「ある実施形態」の言及は、実施形態に関連して説明される特定の特徴、構造、または特性が、少なくとも一実施形態に含まれることを意味する。したがって、本明細書全体を通した種々の場所における語句「一実施形態では」または「ある実施形態では」の表出は、必ずしも、全て同一実施形態を参照するわけではない。さらに、特定の特徴、構造、または特性は、1つ以上の実施形態では、任意の好適な様式において組み合わせられてもよい。
【0082】
以下の説明では、ある具体的詳細が、種々の開示される実施形態の完全な理解を提供するために記載される。しかしながら、当業者は、実施形態が、これらの具体的詳細のうちの1つまたはそれを上回るものを伴わずに、または他の方法、コンポーネント、材料等を伴って、実践されてもよいことを認識するであろう。他のインスタンスでは、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、およびエクステンデッドリアリティ(XR)システムと関連付けられる周知の構造は、実施形態の説明を不必要に曖昧にすることを回避するために、図示または詳細に説明されていない。用語「仮想現実(VR)」、「拡張現実(AR)」、「複合現実(MR)」、および「エクステンデッドリアリティ(XR)」は、本開示では、同義的に使用され、少なくとも、本明細書に説明されるウェアラブル光学アセンブリ12を介して、少なくとも仮想コンテンツをユーザに表示するための方法またはシステムを示し得るものとすることに留意されたい。
【0083】
詳細な説明
本明細書に説明されるものは、クロスリアリティ(XR)場面を提供するための方法および装置である。現実的XR体験を複数のユーザに提供するために、XRシステムは、実オブジェクトに関連して仮想オブジェクトの場所を正しく相関させるために、ユーザの場所を把握しなければならない。XRシステムは、場面の環境マップを構築し得、これは、XRシステムのユーザによって装着されるXRデバイスの一部であるセンサを用いて収集された、画像および/または深度情報から作成され得る。
【0084】
XRシステムでは、各XRデバイスは、収集された1つまたはそれを上回る画像からの情報を統合することによって、その物理的環境のローカルマップを展開し得る。いくつかの実施形態では、そのマップの座標系は、デバイスがその環境を走査することを開始したときのデバイスの配向に結び付けられる。その配向は、異なるセッションが、異なるユーザ、それぞれ環境を走査するセンサを伴うその独自のウェアラブルデバイス、または異なる時間において同一デバイスを使用する同一ユーザと関連付けられるかどうかにかかわらず、ユーザがXRシステムと相互作用するにつれて、セッション毎に変化し得る。
【0085】
XRシステム上で実行されるアプリケーションは、XRシステムと相互作用する複数のユーザによる共有様式においてアクセスされ得る、規準形式にあり得る持続マップから取得され得るような持続空間情報に基づいて、仮想コンテンツの場所を規定してもよい。持続マップは、遠隔記憶媒体(例えば、クラウド)内に記憶されてもよい。例えば、ユーザによって装着されるウェアラブルデバイスは、オンにされた後、クラウド記憶装置等の持続記憶装置から、以前に作成および記憶された、適切な記憶されたマップを読み出してもよい。記憶されたマップを読み出すことは、ウェアラブルデバイス上のセンサを用いた物理的世界の走査を伴わずに、ウェアラブルデバイスの使用を有効にし得る。代替として、または加えて、システム/デバイスは、物理的世界の新しい領域に進入することに応じて、同様に、適切な記憶されたマップを読み出してもよい。
【0086】
物理的世界についてのデータを複数のデバイス間で共有することは、仮想コンテンツの共有ユーザ体験を有効にし得る。同一の記憶されたマップへのアクセスを有する、2つのXRデバイスは両方とも、例えば、記憶されたマップに対して位置特定されてもよい。いったん位置特定されると、ユーザデバイスは、基準によって規定された場所を有する、仮想コンテンツを、その場所をユーザデバイスによって維持される基準フレームに平行移動させることによって、記憶されたマップにレンダリングしてもよい。ユーザデバイスは、本ローカル基準フレームを使用して、ユーザデバイスのディスプレイを制御し、仮想コンテンツを規定された場所内にレンダリングしてもよい。
【0087】
記憶されたマップは、各XRデバイス上のローカル基準フレームに関連し得る、規準形態で表されてもよい。デバイス毎に規準マップとローカルマップとの間の関係が、位置特定プロセスを通して決定されてもよい。その関係を有することは、デバイスが、そのローカルマップを使用して、コンテンツを規準マップに対して規定された場所にレンダリングすることを可能にする。
【0088】
位置特定プロセスは、選択された規準マップのセットに基づいて、各XRデバイス上で実施され、デバイスに送信されてもよい。代替として、または加えて、位置特定は、位置特定サービスによって実施されてもよく、これは、クラウド内で展開され得るような遠隔プロセッサ上に実装されてもよい。
【0089】
位置特定が実施される場所にかかわらず、位置特定は、ポータブルデバイスの環境を反映させる、場所情報を収集するステップを伴う。本情報は、デバイスのローカル座標フレームである、デバイス上に維持される追跡マップに対する姿勢付きであってもよい。本場所情報は、位置特定コンポーネントに提供されてもよく、これは、対応する場所情報を規準マップ内に見出す。その場所情報は、規準マップの座標フレーム内で姿勢が付けられてもよい。位置特定コンポーネントは、デバイスからの場所情報と規準マップからの対応する場所情報との間の変換を算出してもよい。本変換はまた、デバイスのローカル座標フレームと規準マップの座標フレームとの間の変換としての役割を果たし得る。
【0090】
その変換は、デバイス上において、規準マップの座標フレーム内に表される、仮想コンテンツまたは他のアイテムの場所を、デバイスのローカル座標フレームに変換するために使用されてもよい。XRシステムと相互作用する複数のデバイス毎に算出された変換は、異なってもよいが、各デバイスは、変換およびその独自のローカル座標フレームを使用して、物理的世界に対する同一場所において、仮想コンテンツを規準マップの座標フレーム内に規定された場所にレンダリングし、複数のユーザが、その仮想コンテンツの共有体験を有することを可能にしてもよい。
【0091】
誤差は、複数の理由から、位置特定プロセスにおいて生じ得る。ポータブルデバイスの環境を反映させる、場所情報は、場所情報が、過剰なコンピューティングリソースを用いずに、かつ過剰な時間を要求せずに、処理されることを可能にするために、環境の可視画像から抽出された特徴の疎セットとして表され得る。物理的世界内の同一オブジェクトの異なる画像から抽出された特徴の疎セットは、異なり得る。画像は、例えば、異なる照明条件下、または異なる配向から、または他の点において異なる捕捉条件下、撮影され得る。加えて、画像捕捉プロセスにおける雑音は、特徴の疎セットを形成するプロセスの間、環境についての情報を損失させ得るように、比較を歪曲させ得る。結果として、物理的世界の異なる部分の画像は、同一のように見える、特徴の疎セットにつながり得る。逆に言えば、これらの変動源は、異なる、物理的世界内の同一場所を表す、特徴の疎セットにつながり得る。
【0092】
変動源を前提として、規準マップに対するデバイスの位置特定の成功は、正確にマッチングする特徴セットを要求しない場合がある。むしろ、セット内の特徴の位置合わせにおける誤差の測定値が十分に小さいように、それに対してデバイスからの特徴のセットが整合され得る、規準マップ内の特徴のセットを見出すステップを伴う。そのような特徴のセットが、見出され得ない場合、位置特定は、失敗したと見なされ得る。
【0093】
本発明者らは、デバイスからの特徴の複数のセットを、位置特定プロセスへの入力として、バッチ内に提供することが、位置特定が失敗する、尤度を低減させ得ることを認識し、その真価を認めた。位置特定の正確度は、特徴の複数のセットに関してデバイスの一貫した位置を示す、対応を見出すことによって向上され得る。
【0094】
本発明者らはさらに、1つまたはそれを上回るイベントに応答して、特徴のセットをバッチに追加することが、バッチのクロスエントロピを増加させ得ることを認識し、その真価を認めた。情報理論に従って、増加されたクロスエントロピは、より少ない情報が、バッチによって表される場所と記憶されたマップとの間のマッチングを見出すために平均して要求されることを意味する。したがって、固定されたサイズバッチに関して、増加されたクロスエントロピは、位置特定が成功するであろう、尤度を増加させる。さらに、その位置特定の成功は、迅速に到着され得る。いくつかの実施形態では、イベントの同一下層セットにわたる2つの確率分布pとqとの間のクロスエントロピは、セットのために使用されるコーディングスキームが、真の分布pではなく、推定される確率分布qに関して最適化される場合、セットから引き出されるイベントを識別するために必要とされるビットの平均数を測定する。クロスエントロピは、2つの確率分布間の差異を定量化するために使用されてもよい。通常、「真」の分布(機械学習アルゴリズムがマッチングを試みているもの)は、いくつかの実施形態では、ワンホット分布の観点から表される。例えば、具体的訓練インスタンスに関する真の標識が、(可能性として考えられる標識A、B、およびCからの)Bである場合、本訓練インスタンスに関するワンホット分布は、確率(クラスA)=0.0、確率(クラスB)=1.0、および確率(クラスC)=0.0であり得る。A、B、およびCに関する個別の確率が非ゼロである、より一般的分布では、クロスエントロピは、式
【化1】

(式中、p(x)は、真の確率分布を示し、q(x)は、予測される確率分布を示す)を使用することによって、その分布と真の分布の近似度を決定するために使用されてもよい。出力Hは、その分布の真の分布からの逸脱量を示す。クロスエントロピの採用は、収束基準が充足されるまで(例えば、2つの連続反復における算出されたクロスエントロピ値が、閾値以内であるとき)、反復的に実施されてもよい。位置特定に関して、クロスエントロピ値は、特徴の第1のセットに関して同様に決定されてもよく、特徴の第1のセットのものより増加されたクロスエントロピに対応する、特徴の第2のセットは、特徴の第2のセットがより少ない実質的に繰り返される情報を含有し得ることを示す。
【0095】
バッチ処理は、イベントに応答して、バッチに、環境の画像から抽出された特徴の疎セットを追加することによって実装されてもよい。次の位置特定試行では、バッチは、位置特定プロセスへの入力として提供されてもよい。
【0096】
特徴のセットのバッチへの追加をトリガし得る、イベントの実施例は、閾値距離を上回るデバイスの平行移動を示す、IMUの出力および/または追跡マップに対するデバイスの算出された姿勢の変化、閾値角度を上回るデバイスの回転を示す、IMUの出力および/または追跡マップに対するデバイスの算出された姿勢の変化、閾値を上回るデバイスの平行移動を示す、無線フィンガプリントの変化、デバイス上の画像センサによって順次捕捉された画像フレームに関する画像フレームのコンテンツを表す、記述子の値の変化、および/またはデバイスの姿勢が閾値量を上回って変化していることを示す、別の測定可能パラメータの変化のうちの1つまたはそれを上回るものを含んでもよい。
【0097】
そのような特徴のセットをバッチ内で送信することによって、位置特定の成功は、システムと相互作用する複数のデバイスのそれぞれが、正確な位置特定情報を有することを確実にし、これは、ひいては、より現実的かつ没入型の体験をマルチユーザシステム内で提供する、平均レートで達成される可能性が高くなる。
【0098】
ARシステム概要
【0099】
図1および2は、物理的世界の一部と併せて表示される、仮想コンテンツを伴う場面を図示する。例証目的のために、ARシステムが、XRシステムの実施例として使用される。図3-6Bは、本明細書に説明される技法に従って動作し得る、1つまたはそれを上回るプロセッサと、メモリと、センサと、ユーザインターフェースとを含む、例示的ARシステムを図示する。
【0100】
図1を参照すると、屋外AR場面354が、描写されており、AR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム358を特徴とする、物理的世界公園状設定356が見える。これらのアイテムに加え、AR技術のユーザはまた、物理的世界コンクリートプラットフォーム358上に立っているロボット像357と、それによってマルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ352とが「見える」と知覚するが、これらの要素(例えば、アバタキャラクタ352およびロボット像357)は、物理的世界内には存在しない。ヒト視知覚および神経系の極端な複雑性に起因して、他の仮想または物理的世界画像要素の中で仮想画像要素の快適で、自然な感覚で、かつ豊かな提示を促進する、AR技術を生産することは、困難である。
【0101】
そのようなAR場面は、ユーがARコンテンツを物理的世界内に設置することを可能にし、ARコンテンツが設置された物理的世界のマップ内の場所を決定し、設置されたARコンテンツが、例えば、異なるAR体験セッションの間、物理的世界内に表示するために再ロードされ得るように、AR場面を保存し、複数のユーザがAR体験を共有することを可能にする、追跡情報に基づいて物理的世界のマップを構築するシステムを用いて、達成され得る。本システムは、ユーザの周囲の物理的世界表面のデジタル表現を構築および更新し得る。本表現は、仮想オブジェクトを設置するため、物理学ベースの相互作用において、および仮想キャラクタ経路計画およびナビゲーションのため、またはその中で物理的世界についての情報が使用される、他の動作のために、完全または部分的に、ユーザと仮想コンテンツのレンダリングされた場所との間で物理的オブジェクトによってオクルードされるように現れるように、仮想コンテンツをレンダリングするために使用されてもよい。
【0102】
図2は、いくつかの実施形態による、屋内AR場面400の別の実施例を描写し、XRシステムの例示的ユースケースを示す。例示的場面400は、壁と、壁の片側上の本棚と、部屋の角における床置きランプと、床と、ソファと、床上のコーヒーテーブルとを有する、居間である。これらの物理的アイテムに加え、AR技術のユーザはまた、ソファの背後の壁上の画像、ドアを通して飛んで来た鳥、本棚から外を覗いているシカ、およびコーヒーテーブル上に設置された風車の形態における装飾品等の仮想オブジェクトを知覚する。
【0103】
壁上の画像に関して、AR技術は、壁の表面だけではなく、また、仮想オブジェクトを正しくレンダリングするために画像をオクルードする、ランプ形状等の部屋内のオブジェクトおよび表面についての情報も要求する。飛んで来た鳥に関して、AR技術は、オブジェクトおよび表面を回避する、または鳥が衝突する場合、跳ね返るように、現実的物理学を用いて鳥をレンダリングするために、部屋の周囲の全てのオブジェクトおよび表面についての情報を要求する。シカに関して、AR技術は、シカを設置すべき場所を算出するために、床またはコーヒーテーブル等の表面についての情報を要求する。風車に関して、本システムは、テーブルと別個のオブジェクトであることを識別し得、それが移動可能であることを決定し得る一方、棚の角または壁の角は、定常であると決定され得る。そのような特異性は、種々の動作のそれぞれにおいて使用または更新される場面の部分に関する決定において使用されてもよい。
【0104】
仮想オブジェクトは、前のAR体験セッション内に設置されてもよい。新しいAR体験セッションが、居間で開始すると、AR技術は、仮想オブジェクトが、以前に設置された場所に正確に表示され、異なる視点から現実的に可視であることを要求する。例えば、風車は、書籍を伴わない異なる場所においても、テーブルの上方に漂流しているのではなく、書籍上に立っているように表示されるべきである。そのような漂流は、新しいAR体験セッションのユーザの場所が居間内で正確に位置特定されない場合に起こり得る。別の実施例として、ユーザが、風車が設置されたときの視点と異なる視点から風車を視認している場合、AR技術は、表示されている風車の対応する側を要求する。
【0105】
場面は、視覚、聴覚、および/または触覚等、1つまたはそれを上回るユーザ感知を刺激し得る、ユーザインターフェースを含む、複数のコンポーネントを含む、システムを介して、ユーザに提示されてもよい。加えて、本システムは、場面の物理的部分内のユーザの位置および/または運動を含む、場面の物理的部分のパラメータを測定し得る、1つまたはそれを上回るセンサを含んでもよい。さらに、本システムは、メモリ等の関連付けられるコンピュータハードウェアを伴う、1つまたはそれを上回るコンピューティングデバイスを含んでもよい。これらのコンポーネントは、単一デバイスの中に統合されてもよい、または複数の相互接続されるデバイスを横断して分散されてもよい。いくつかの実施形態では、これらのコンポーネントのいくつかまたは全ては、ウェアラブルデバイスの中に統合されてもよい。
【0106】
本明細書に説明される種々の実施形態は、限定ではないが、1つまたはそれを上回る疎マップ、1つまたはそれを上回る稠密マップ、1つまたはそれを上回る追跡マップ、1つまたはそれを上回る規準マップ、および/または1つまたはそれを上回る環境マップを含み得る、マップのうちの1つまたはそれを上回るものを採用する。
【0107】
追跡マップは、追跡マップを元々作成した、または続いて更新した、デバイス(例えば、XRデバイス)にローカルであってもよい。追跡マップは、稠密マップとしての役割を果たし得るが、追跡マップは、疎マップとして開始してもよい。追跡マップは、いくつかの実施形態では、デバイスの頭部姿勢データ(例えば、追跡マップを作成または更新するXRデバイスの場所、配向、および/または姿勢)等のデータを含んでもよい。そのようなデータは、これらの実施形態のうちのいくつかでは、追跡マップ内の点または点ノードとして表され得る。
【0108】
これらの実施形態のうちのいくつかでは、追跡マップはさらに、メッシュまたは深度情報および/または表面または深度情報から導出され得る、他の高レベルデータ(例えば、1つまたはそれを上回る平面または表面または他のオブジェクトに関する場所および/または1つまたはそれを上回る特性)のセットとして表され得る、表面情報またはデータを含んでもよい。追跡マップは、規準マップにレベル上げされてもよく、これは、より詳細に下記に説明されるであろう。いくつかの実施形態では、追跡マップは、物理的世界内の物理的オブジェクトの間取図を提供する。例えば、物理的オブジェクトまたはその特徴(例えば、画像処理から決定された頂点、縁、平面または表面等)は、追跡マップ内の点または点ノードとして表され得る。
【0109】
これらの実施形態のうちのいくつかでは、追跡マップは、点または点ノードに関するデータを含んでもよい。そのようなデータは、例えば、絶対および/または相対的姿勢(例えば、特定の場所、配向、および/または視線方向においてXRデバイスに対して既知の固定された基準、相対的場所、配向、および/または視線方向に対する絶対場所、配向、および/または視線方向)を含んでもよい。物理的オブジェクトまたはその一部を表す、特徴は、例えば、物理的オブジェクトまたはその一部を含有する、1つまたはそれを上回る画像の画像処理から導出されてもよく、ひいては、持続座標フレーム(PCF)に変換され得る、持続姿勢として使用されてもよい。いくつかの実施形態では、持続座標フレームは、アプリケーションを閉じ、再び開く、またはXRデバイスをリブートした後でも、(1つまたはそれを上回るXRデバイスのための)複数のユーザセッションを横断して、所定の閾値を超えてドリフトまたは逸脱を伴わずに、仮想または複合現実環境内におけるデジタルコンテンツのコンテンツ持続設置を可能にし、設置されたデジタルコンテンツを、例えば、仮想または複合現実環境(例えば、パス可能世界モデル、共有世界モデル、および/または本明細書に説明される1つまたはそれを上回るマップ)内の同一場所に留まらせる、ローカル座標フレーム(例えば、XRデバイスの基準点または座標系にローカルの座標フレーム)を備える。
【0110】
PCFは、例えば、本明細書に説明される規準マップ内に、最初に、PCFを作成し、オブジェクトまたはその一部を表す、視認XRデバイスの観点から、具体的場所において、具体的配向において、および/または特定の視線方向において、設置されてもよい。XRデバイスが、XRデバイスまたは別の協働XRデバイスが以前に見ていた(例えば、XRデバイスまたは別の協働XRデバイスによって捕捉された1つまたはそれを上回る画像を介して)、物理的環境に進入すると、本物理的環境のために設置された持続座標フレームは、物理的環境の少なくとも一部に関して作成された1つまたはそれを上回る対応する規準マップを読み出すことによって、XRデバイスによって、正しい場所に復元され得る。
【0111】
いくつかの実施形態では、PCFは、物理的世界内の所定の位置に対応し、ユーザが、ブラウザセッション内に、ポータブルコンピューティングデバイス(例えば、XRデバイス)上に、または遠隔サーバ上に記憶し得る、一意の識別子を有する。本一意の識別子は、複数のユーザ間で共有されてもよい。例えば、デジタルコンテンツが、仮想または複合現実セッション内に設置されると、より近いまたは最も近くのPCFが、要求され得、より近いまたは最も近くのPCFの一意の識別子およびPCFに対応する場所は、記憶されてもよい。
【0112】
PCFが、異なる場所におけるユーザのための異なるセッション内で再使用されると、PCFに対応する、本記憶された場所は、デジタルコンテンツが異なるセッションにおけるユーザに対する正しい場所に設置されるように、異なる仮想または複合現実セッションのための異なる場所に関する現在の座標系に対して変換(例えば、平行移動、回転、鏡映等)されてもよい。PCFは、いくつかの実施形態では、持続空間情報を記憶してもよい。これらの実施形態のうちのいくつかでは、PCFはさらに、基準場所、配向、および/または視線方向に対する変換およびPCFに対応する場所における1つまたはそれを上回る画像から導出される情報を含んでもよい。例えば、PCFは、マップ(例えば、追跡マップ、規準マップ、環境マップ、疎マップ、および/または稠密マップ等)の座標フレームとPCFとの間の変換を含む、または少なくともそれと関連付けられてもよい。
【0113】
これらの実施形態のうちのいくつかでは、PCFは、そこから持続座標フレームが作成される、キーフレームまたは画像フレームの3D環境内の場所を示す、地理的または空間情報を含んでもよい。いくつかの実施形態では、変換は、ポータブルコンピューティングデバイス(例えば、XRデバイス)にローカルの座標フレームと記憶された座標フレームとの間で決定されてもよい。
【0114】
いくつかの実施形態では、全てのPCFは、共有可能であって、個別の異なる場所における複数のユーザ間で伝送されることができる。いくつかの他の実施形態では、1つまたはそれを上回るPCFは、最初に、これらの1つまたはそれを上回るPCFを作成した、XRデバイスにのみ既知である。いくつかの実施形態では、物理的世界についての情報は、例えば、持続座標フレーム(PCF)として表され得る。PCFは、物理的世界内で認識される特徴を表す、1つまたはそれを上回る点に基づいて定義されてもよい。特徴は、それらがXRシステムのユーザセッション毎に同一である可能性が高いように選択されてもよい。PCFは、それらが効率的に処理および転送され得るように、疎らに存在し、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、実空間内の1つまたはそれを上回る座標系に基づいて、動的マップを作成し、疎マップにわたって、持続座標フレーム(PCF)を生成するステップを含んでもよく、これは、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。これらの能力は、1つまたはそれを上回るXRデバイスによって作成された複数のマップをランク付けおよびマージするための技法によってサポートされてもよい。持続空間情報はまた、算出上効率的方法において、1つまたはそれを上回るXRデバイスのそれぞれ上において、頭部姿勢を迅速に回復およびリセットすることを可能にし得る。いくつかの実施形態では、XRシステムは、仮想コンテンツを世界座標フレーム内に結び付けることとは対照的に、座標フレームを仮想コンテンツに割り当ててもよい。そのような構成は、ユーザのためにレンダリングされた場所にかかわらず、仮想コンテンツが説明されることを可能にするが、持続座標フレーム(PCF)等のより持続フレーム位置に結び付けられ、規定された場所にレンダリングされ得る。オブジェクトの場所が変化すると、XRデバイスは、環境マップの変化を検出し、ユーザによって装着される頭部ユニットの移動を実世界オブジェクトに対して決定してもよい。
【0115】
いくつかの実施形態では、空間存続が持続座標フレーム(PCF)を通して提供され得る。PCFは、物理的世界内で認識される特徴(例えば、角、縁)を表す、1つまたはそれを上回る点に基づいて定義されてもよい。特徴は、それらがユーザインスタンスからXRシステムの別のユーザインスタンスと同一である可能性が高いように選択されてもよい。加えて、または代替として、算出された追跡経路(例えば、カメラ軌道)を実際の追跡経路から逸脱させ得る、追跡の間のドリフトは、仮想コンテンツの場所を、追跡マップのみに基づく、ローカルマップに対してレンダリングされるとき、場所からずれて現れさせ得る。空間のための追跡マップは、XRデバイスが経時的に場面のさらなる情報を収集するにつれて、精緻化され、ドリフトを補正してもよい。しかしながら、仮想コンテンツが、マップ精緻化の前に、実オブジェクト上に設置され、追跡マップから導出されるデバイスの世界座標フレームに対して保存される場合、仮想コンテンツは、実オブジェクトがマップ精緻化の間に移動したかのように変位されて現れ得る。PCFは、PCFが、特徴に基づいて定義され、特徴がマップ精緻化の間に移動するにつれて、更新されるため、マップ精緻化に従って更新されてもよい。
【0116】
いくつかの実施形態では、PCFは、マップ座標系に対する平行移動および回転を伴う、6自由度を備えてもよい。PCFは、ローカルおよび/または遠隔記憶媒体内に記憶されてもよい。PCFの平行移動および回転は、例えば、記憶場所に応じて、マップ座標系に対して算出されてもよい。例えば、デバイスによってローカルで使用されるPCFは、デバイスの世界座標フレームに対する平行移動および回転を有してもよい。クラウド内のPCFは、規準マップの規準座標フレームに対する平行移動および回転を有してもよい。いくつかの実施形態では、PCFは、物理的世界の疎表現を提供し、それらが効率的に処理および転送され得るように、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、実空間内の1つまたはそれを上回る座標系に基づいて、動的マップを作成し、疎マップにわたって、持続座標フレーム(PCF)を生成するステップを含んでもよく、これは、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。
【0117】
いくつかの実施形態では、追跡マップは、1つまたはそれを上回る画像フレーム、キーフレーム等、および/または1つまたはそれを上回る画像フレーム、キーフレーム等から導出されるデータを含んでもよい。全ての特徴および画像フレーム(またはキーフレーム)が、追跡マップの一部として留保され得るわけではないことに留意されたい。むしろ、有意義な情報(例えば、非冗長情報、所定の閾値を超えた十分に高い正確度および/または分解能を伴う情報等)を提供する、特徴点または画像フレームが、追跡マップ内に留保され得る。したがって、追跡マップは、1つまたはそれを上回るカメラ、画像センサ、深度センサ、GPS(全地球測位)デバイス、無線デバイス(例えば、Wi-Fiまたはセルラー送受信機)等によって収集された、または集められたデータで構築されてもよい。
【0118】
追跡マップは、環境マップとして記憶され、またはそれとマージされてもよく、これはまた、下記により詳細に説明されるであろう。追跡マップは、精緻化され、例えば、実際の追跡経路から逸脱する、算出された追跡経路(例えば、算出されたカメラ軌道)の任意の逸脱またはドリフトを補正してもよい。いくつかの実施形態では、追跡マップに対する有意義な情報を提供する画像は、さらに、追跡マップ内に統合される(例えば、追跡マップ内に内蔵される)、またはそれと関連付けられる(例えば、分離されて記憶されるが、追跡マップとリンクされる)、キーフレームとして選択されてもよい。いくつかの実施形態では、追跡マップは、姿勢およびPCF(持続座標フレーム)変換器に接続される、またはそれと関連付けられてもよい。
【0119】
疎マップは、いくつかの実施形態では、特徴の全ての場所の代わりに、着目点または構造(例えば、角、縁、表面等)の場所を示す、データを含んでもよい。すなわち、物理的環境内のある点または構造は、疎マップから破棄されてもよい。疎マップは、例えば、1つまたはそれを上回る着目点または構造を抽出する、画像処理によって、マッピングされた着目点および/またはキーフレームのセットを用いて構築されてもよい。疎マップの一実施例は、上記に説明される追跡マップを含んでもよい。本実施例では、追跡マップは、頭部姿勢疎マップと見なされ得るが、他の疎マップは、常時、頭部姿勢データを含まなくてもよいことに留意されたい。疎マップは、いくつかの実施形態では、座標系を導出するために使用され得る、情報またはデータを含んでもよい。いくつかの他の実施形態では、疎マップは、座標系を含んでもよい、またはそれと関連付けられてもよい。そのような座標系は、下記により詳細に説明されるであろう、稠密マップ内のオブジェクトまたはその特徴の位置および/または配向を定義するために使用されてもよい。
【0120】
稠密マップは、例えば、いくつかの実施形態では、メッシュまたは深度情報によって表される表面データ等のデータまたは情報を含んでもよい。これらの実施形態のうちのいくつかでは、稠密マップは、表面または深度情報から導出され得る、高レベル情報を含んでもよい。例えば、稠密マップは、平面および/または他のオブジェクトの場所および/または1つまたはそれを上回る特性に関するデータを含んでもよい。稠密マップは、疎マップのオリジナルデータを前述のいずれかのデータまたは情報で拡張させることによって、疎マップから拡張されてもよいが、疎マップは、いくつかの実施形態では、稠密マップの作成から独立して作成されてもよく、その逆も同様であることに留意されたい。
【0121】
環境マップは、物理的世界の断片のデータまたは情報を含んでもよい。例えば、環境は、物理的環境(例えば、部屋の一部)内の物理的オブジェクトの場所、配向、および/または視線方向(XRデバイスを用いて知覚されるとき)および物理的オブジェクト(例えば、表面テクスチャ、色等)に関する他のデータを含んでもよい。環境マップは、例えば、カメラからの画像および/または深度センサからの深度データからのデータを用いて作成されてもよい。環境は、したがって、本明細書に説明される任意の他のマップより物理的環境についてのはるかに多くの詳細を含み得、複数のXRデバイス上で協働され(例えば、物理的世界を動き回る複数のXRデバイスによって作成される)、その間で共有され得る、パス可能3D世界を構築するために使用されてもよい。環境マップは、いくつかの実施形態では、例えば、必要とされないデータまたは情報を除去することによって、規準マップに変換される、またはまとめられてもよい。環境マップはまた、1つまたはそれを上回るパラメータ、無線ネットワークの受信された信号の強度等、または任意の他の所望または要求されるパラメータ等の複数の面積または体積属性と関連付けられてもよい。
【0122】
規準マップは、各コンピューティングデバイスが規準マップを再使用し得るように、規準マップが複数のコンピューティングデバイスのそれぞれに対して位置特定および配向され得るように、データまたは情報を含んでもよい。規準マップは、したがって、いくつかの実施形態では、追跡マップまたは疎として、またはある他の環境では、環境マップとして生じてもよい。
【0123】
規準マップは、単に、いくつかの実施形態では、規準マップ内に表されるオブジェクトの場所を決定するために十分なデータを含んでもよい、またはそれと関連付けられてもよい。例えば、規準マップは、着目オブジェクトまたはその一部の持続姿勢および/または持続座標フレームを含んでもよい、またはそれと関連付けられてもよい。規準マップは、本明細書に説明される任意の他のマップのように、例えば、別のマップ内の持続座標フレームとマージされ、新しい規準マップをレンダリングしてもよい(例えば、マップマージアルゴリズムを使用することによって)。
【0124】
具体的XRデバイスに対して位置特定されている、規準マップは、レベル上げされたマップと称され得る。いくつかの実施形態では、規準マップは、座標情報(例えば、点の座標、座標系等)を含み、また、例えば、少なくとも1つのPCF(持続座標フレーム)を含む、1つまたはそれを上回る構造を含んでもよい。追跡マップを位置特定するために、追跡マップに関する画像フレームまたはキーフレームは、規準マップに関する少なくとも1つのPCFと関連付けられてもよく、画像の姿勢は、次いで、姿勢情報を記憶する、追跡マップを位置特定するために使用されてもよい。いくつかの実施形態では、規準マップは、規準マップ内に記憶され、または別様に、データ構造内に別個に記憶され、1つまたはそれを上回る構造と関連付けられる、1つまたはそれを上回る持続座標フレーム(PCF)を含む、1つまたはそれを上回る構造(例えば、オブジェクト)を含む。規準マップ内に表される構造(例えば、オブジェクト)は、いくつかの実施形態では、持続座標フレーム情報を有し、オブジェクトを表す、単一PCFノードを含んでもよい。いくつかの他の実施形態では、規準マップ内に表される構造は、それぞれ、例えば、規準マップを生成または更新したデバイスの基準座標系に対するローカル座標フレームである、複数のPCFを含んでもよい。さらに、これらの複数のPCFは、それぞれ、オブジェクトの複数の対応する特徴を表してもよい。いくつかの実施形態では、規準フレームに関して定義され、および/またはその中に含まれる、モルフィズムまたは1つまたはそれを上回る関数はさらに、入力(例えば、入力場所、配向、姿勢、表面、座標系、および/または深度情報)を例えば、追跡マップ、疎マップ、稠密マップ等から受信し、変換(例えば、平行移動、回転、鏡映等のための行列演算)を実施することによって、入力に関する出力を生成する、1つまたはそれを上回る演算を備えてもよい。いくつかの実施形態では、規準マップは、それぞれ、1つまたはそれを上回る持続座標フレームによって表される、モルフィズム(または1つまたはそれを上回る関数)および1つまたはそれを上回る構造のみを含み、他のデータまたは情報を含まない。いくつかの他の実施形態では、規準マップは、モルフィズム、それぞれ、1つまたはそれを上回る持続座標フレームによって表される、1つまたはそれを上回る構造、および構造の記述または特性に対応する、データまたはメタデータを含む。持続座標フレームについてのさらなる詳細はさらに、下記に説明される。
【0125】
規準マップは、追跡マップを規準マップの中にマージするように試みることに応じて、追跡マップの少なくとも一部および規準マップの少なくとも一部との間の対応が存在するであろう可能性が高いように、追跡マップの領域に類似する領域を有する、規準マップを示し得る、個別のランク付けを用いて、ランク付けされてもよい。規準マップは、1つまたはそれを上回るタイルまたは定義されたエリアを有してもよく、規準マップと別のマップをマージするステップは、1つまたはそれを上回るタイルまたは定義されたエリアに限定され、コンピューティングリソース消費を節約してもよい。
【0126】
規準マップは、いくつかの実施形態では、1つまたはそれを上回る持続座標フレーム(PCF)を定義する、特徴のセットを含んでもよいが、特徴のセットが規準マップまたは追跡マップのいずれか内の単一持続場所と関連付けられなければならないという要件は存在しない。いくつかの実施形態では、追跡マップ内の特徴点のセットの変換は、規準マップ内の特徴の候補セットと整合する。本変換は、追跡マップ全体に適用され、追跡マップおよび規準マップの重複部分が識別されることを可能にしてもよい。
【0127】
複数の規準マップは、マージされ、新しい規準マップをレンダリングしてもよい。いくつかの実施形態では、規準マップの属性は、規準マップのエリアを形成するために使用される、追跡マップまたは複数のマップの属性から導出されてもよい。規準マップの持続座標フレームが、規準マップの中にマージされた追跡マップ内の持続姿勢に基づいて定義される、いくつかの実施形態では、持続座標フレームは、持続姿勢と同一属性を割り当てられてもよい。いくつかの実施形態では、規準マップは、惑星である地球上または空間内のある場所等、物理的空間内の規準マップの場所を示す、規準マップ識別子としての役割を果たす、複数の属性を含んでもよい。
【0128】
いくつかの実施形態では、複数の規準マップが、これらの複数の規準マップが地球の表面上(または空間内)に存在し得るため、2次元パターンで地理的に配置されてもよい。これらの規準マップは、例えば、対応する経度および緯度または地球に対する位置によって、一意に識別可能であってもよい。これらの実施形態では、これらの規準マップは、個別の点によって表される、対応する物理的世界内の再構成された物理的オブジェクトの間取図を提供してもよい。規準マップ内のマップ点は、複数の特徴を含み得る、物理的オブジェクトの特徴を表し得る。サーバが追跡マップによって表される物理的世界の領域に関する規準マップを記憶しない、いくつかの実施形態では、追跡マップは、利用可能であるとき、関連データを有する規準マップとなるようにさらに処理され得る、初期規準マップとして記憶されてもよい。
【0129】
図3は、いくつかの実施形態による、物理的世界506と相互作用する、ARコンテンツの体験を提供するように構成される、ARシステム502を描写する。ARシステム502は、ディスプレイ508を含んでもよい。図示される実施形態では、ディスプレイ508は、ユーザが、一対のゴーグルまたは眼鏡のように、ディスプレイをその眼にわたって装着し得るように、ヘッドセットの一部として、ユーザによって装着されてもよい。ディスプレイの少なくとも一部は、ユーザがシースルー現実510を観察し得るように、透明であってもよい。シースルー現実510は、ユーザが、物理的世界についての情報を入手するために、ARシステムのディスプレイおよびセンサの両方を組み込む、ヘッドセットを装着している場合における、ユーザの視点に対応し得る、ARシステム502の現在の視点内の物理的世界506の一部に対応し得る。
【0130】
ARコンテンツはまた、ディスプレイ508上に、シースルー現実510上にオーバーレイされて提示されてもよい。ARコンテンツとディスプレイ508上のシースルー現実510との間の正確な相互作用を提供するために、ARシステム502は、物理的世界506についての情報を捕捉するように構成される、センサ522を含んでもよい。
【0131】
センサ522は、深度マップ512を出力する、1つまたはそれを上回る深度センサを含んでもよい。各深度マップ512は、それぞれ、深度センサに対する特定の方向における、物理的世界内506の表面までの距離を表し得る、複数のピクセルを有してもよい。未加工深度データが、深度センサから生じ、深度マップを作成し得る。そのような深度マップは、数百または数千回/秒であり得る、深度センサが新しい画像を形成し得るのと同程度の速度で更新され得る。しかしながら、そのデータは、雑音があり、かつ不完全であって、図示される深度マップ上に黒色ピクセルとして示される、穴を有し得る。
【0132】
本システムは、画像センサ等の他のセンサを含んでもよい。画像センサは、他の方法において物理的世界を表すように処理され得る、単眼または立体視情報を入手してもよい。例えば、画像は、世界再構築コンポーネント516内で処理され、物理的世界内のオブジェクトの接続された部分を表す、メッシュを作成してもよい。例えば、色および表面テクスチャを含む、そのようなオブジェクトについてのメタデータも同様に、センサを用いて入手され、世界再構築物の一部として記憶されてもよい。
【0133】
本システムはまた、物理的世界に対するユーザの頭部姿勢(または「姿勢」)についての情報を入手してもよい。いくつかの実施形態では、本システムの頭部姿勢追跡コンポーネントは、頭部姿勢をリアルタイムで算出するために使用されてもよい。頭部姿勢追跡コンポーネントは、例えば、3つの垂直軸における平行移動(例えば、前/後、上/下、左/右)と、3つの垂直軸を中心とした回転(例えば、ピッチ、ヨー、およびロール)とを含む、6自由度を伴う、座標フレーム内に、ユーザの頭部姿勢を表し得る。いくつかの実施形態では、センサ522は、頭部姿勢514を算出および/または決定するために使用され得る、慣性測定ユニット(「IMU」)を含んでもよい。深度マップのための頭部姿勢514は、例えば、6自由度を伴う深度マップを捕捉する、センサの現在の視点を示し得るが、頭部姿勢514は、画像情報を物理的世界の特定の部分に関連させる、またはユーザの頭部上に装着されるディスプレイの位置を物理的世界に関連させるように、他の目的のために使用されてもよい。
【0134】
いくつかの実施形態では、頭部姿勢情報は、画像内のオブジェクトを分析することから等、IMUから以外の方法において導出されてもよい。例えば、頭部姿勢追跡コンポーネントは、カメラによって捕捉された視覚的情報と、IMUによって捕捉された慣性情報とに基づいて、物理的オブジェクトに対するARデバイスの相対的位置および配向を算出してもよい。頭部姿勢追跡コンポーネントは、次いで、例えば、物理的オブジェクトに対するARデバイスの算出された相対的位置および配向と物理的オブジェクトの特徴を比較することによって、ARデバイスの頭部姿勢を算出してもよい。いくつかの実施形態では、その比較は、経時的に捕捉された画像内のこれらの特徴の位置の変化がユーザの頭部姿勢の変化と関連付けられ得るように、経時的に安定する、センサ522のうちの1つまたはそれを上回るものを用いて捕捉された画像内の特徴を識別することによって、行われてもよい。
【0135】
本発明者らは、例えば、30Hzで動作する、4つのビデオグラフィックアレイ(VGA)カメラ、1kHzで動作する、1つの慣性測定ユニット(IMU)、単一の高度RISC機械(ARM)コアの演算能力、1GB未満のメモリ、および帯域幅100Mbp未満のネットワークとともに構成され得る、XRデバイスと接続する算出リソースの低使用量を伴って、1kHzの周波数において頭部姿勢を推定する等、より没入型のユーザ体験のためのXR場面を提供するようにXRシステムを動作させるための技法を実現し、その真価を認めた。これらの技法は、マップを生成および維持し、頭部姿勢を推定するために要求される、処理を低減させること、および低算出オーバーヘッドを伴って、データを提供および消費することに関する。XRシステムは、マッチングされた視覚的特徴に基づいて、その姿勢を計算してもよい。
【0136】
いくつかの実施形態では、ARデバイスは、ユーザがARデバイスとともに物理的世界全体を通して移動するにつれて捕捉された一連の画像フレーム内の連続画像内で認識される、特徴点から、マップを構築してもよい。各画像フレームは、ユーザが移動するにつれて、異なる姿勢から得られ得るが、本システムは、連続画像フレームの特徴と以前に捕捉された画像フレームをマッチングさせることによって、各連続画像フレームの特徴の配向を調節し、初期画像フレームの配向をマッチングさせてもよい。同一特徴を表す点が、以前に収集された画像フレームからの対応する特徴点にマッチングするであろうように、連続画像フレームの平行移動は、各連続画像フレームを整合させ、以前に処理された画像フレームの配向をマッチングさせるために使用されることができる。結果として生じるマップ内のフレームは、第1の画像フレームがマップに追加されたときに確立される共通配向を有し得る。本マップは、共通基準フレーム内の特徴点のセットとともに、現在の画像フレームからの特徴をマップにマッチングさせることによって、物理的世界内のユーザの姿勢を決定するために使用されてもよい。いくつかの実施形態では、本マップは、追跡マップと呼ばれ得る。
【0137】
環境内のユーザの姿勢の追跡を有効にすることに加え、本マップは、世界再構築コンポーネント516等のシステムの他のコンポーネントがユーザに対する物理的オブジェクトの場所を決定することを可能にし得る。世界再構築コンポーネント516は、深度マップ512および頭部姿勢514およびセンサからの任意の他のデータを受信し、そのデータを再構築物518の中に統合してもよい。再構築物518は、センサデータより完全かつより雑音が少なくあり得る。世界再構築コンポーネント516は、経時的な複数の視点からのセンサデータの空間および時間的平均を使用して、再構築物518を更新してもよい。
【0138】
再構築物518は、例えば、ボクセル、メッシュ、平面等を含む、1つまたはそれを上回るデータフォーマットにおいて、物理的世界の表現を含んでもよい。異なるフォーマットは、物理的世界の同一部分の代替表現を表し得る、または物理的世界の異なる部分を表し得る。図示される実施例では、再構築物518の左側には、物理的世界の一部が、グローバル表面として提示され、再構築物518の右側には、物理的世界の一部が、メッシュとして提示される。
【0139】
いくつかの実施形態では、頭部姿勢コンポーネント514によって維持されるマップは、物理的世界の維持され得る、他のマップに対して疎隔されてもよい。場所および可能性として表面の他の特性についての情報を提供するのではなく、疎マップは、角または縁等の着目点および/または構造の場所を示してもよい。いくつかの実施形態では、マップは、センサ522によって捕捉されるような画像フレームを含んでもよい。これらのフレームは、着目点および/または構造を表し得る、特徴に低減され得る。各フレームと併せて、そこからフレームが入手されたユーザの姿勢についての情報もまた、マップの一部として記憶されてもよい。いくつかの実施形態では、センサによって入手された全ての画像が、記憶される場合とそうではない場合がある。いくつかの実施形態では、本システムは、それらがセンサによって収集されるにつれて、画像を処理し、さらなる算出のために、画像フレームのサブセットを選択してもよい。選択は、情報の追加を限定するが、マップが有用な情報を含有することを確実にする、1つまたはそれを上回る基準に基づいてもよい。本システムは、例えば、マップにすでに追加されている以前の画像フレームとの重複に基づいて、または定常オブジェクトを表す可能性が高いと決定された十分な数の特徴を含有する、画像フレームに基づいて、新しい画像フレームをマップに追加してもよい。いくつかの実施形態では、選択された画像フレームまたは選択された画像フレームからの特徴の群は、マップのためのキーフレームとしての役割を果たし得、これは、空間情報を提供するために使用される。
【0140】
いくつかの実施形態では、マップを構築するときに処理される、データの量は、マッピングされた点の集合およびキーフレームを伴う、疎マップを構築し、および/またはマップをブロックに分割し、ブロック別の更新を有効にすること等によって、低減されてもよい。マッピングされた点は、環境内の着目点と関連付けられ得る。キーフレームは、カメラ捕捉データから選択された情報を含んでもよい。
【0141】
ARシステム502は、物理的世界の複数の視点からのセンサデータを経時的に統合してもよい。センサの姿勢(例えば、位置および配向)が、センサを含むデバイスが移動されるにつれて追跡されてもよい。センサのフレーム姿勢およびそれが他の姿勢とどのように関連するかが、把握されるにつれて、物理的世界のこれらの複数の視点はそれぞれ、物理的世界の単一の組み合わせられた再構築物の中にともに融合されてもよく、これは、マップのための抽象層としての役割を果たし、空間情報を提供し得る。再構築物は、空間および時間的平均(すなわち、経時的な複数の視点からのデータの平均)または任意の他の好適な方法を使用することによって、オリジナルセンサデータより完全かつ雑音が少なくなり得る。
【0142】
図3に図示される実施形態では、マップは、その中に単一ウェアラブルデバイスのユーザが存在する、物理的世界の一部を表す。そのシナリオでは、マップ内のフレームと関連付けられる頭部姿勢は、セッションの開始時における単一デバイスに関する初期配向に対する配向を示す、ローカル頭部姿勢として表されてもよい。例えば、頭部姿勢は、デバイスが、オンにされた、または別様に、環境を走査し、その環境の表現を構築するように動作されたときの、初期頭部姿勢に対して追跡されてもよい。
【0143】
物理的世界のその部分を特徴付けるコンテンツと組み合わせて、マップは、メタデータを含んでもよい。メタデータは、例えば、マップを形成するために使用されるセンサ情報の捕捉時間を示してもよい。メタデータは、代替として、または加えて、マップを形成するために使用される情報の捕捉時間におけるセンサの場所を示してもよい。場所は、直接、GPSチップからの情報等を用いて、または間接的に、センサデータが収集されていた間の1つまたはそれを上回る無線アクセスポイントから受信された信号の強度を示す、無線(例えば、Wi-Fi)シグネチャ等を用いて、および/またはセンサデータが収集された間にそれに対してユーザデバイスが接続した無線アクセスポイントのBSSID等の識別子を用いて、表されてもよい。
【0144】
再構築物518は、オクルージョン処理または物理学ベースの処理のための物理的世界の表面表現の生産等、AR機能のために使用されてもよい。本表面表現は、ユーザが移動する、または物理的世界内のオブジェクトが変化するにつれて、変化してもよい。再構築物518の側面は、例えば、他のコンポーネントによって使用され得る、世界座標内の変化するグローバル表面表現を生産する、コンポーネント520によって使用されてもよい。
【0145】
ARコンテンツは、本情報に基づいて、ARアプリケーション504等によって生成されてもよい。ARアプリケーション504は、例えば、視覚的オクルージョン、物理学ベースの相互作用、および環境推測等の物理的世界についての情報に基づいて、1つまたはそれを上回る機能を実施する、ゲームプログラムであってもよい。これは、世界再構築コンポーネント516によって生産された再構築物518から異なるフォーマットにおけるデータにクエリすることによって、これらの機能を実施してもよい。いくつかの実施形態では、コンポーネント520は、物理的世界の着目領域内の表現が変化すると、更新を出力するように構成されてもよい。その着目領域は、例えば、ユーザの視野内の一部等、システムのユーザの近傍内の物理的世界の一部に近似するように設定される、またはユーザの視野内に入るように投影(予測/決定)されてもよい。
【0146】
ARアプリケーション504は、本情報を使用して、ARコンテンツを生成および更新してもよい。ARコンテンツの仮想部分は、シースルー現実510と組み合わせて、ディスプレイ508上に提示され、現実的ユーザ体験を作成してもよい。
【0147】
いくつかの実施形態では、AR体験は、遠隔処理および/または遠隔データ記憶装置を含み得る、システムの一部であり得る、ウェアラブルディスプレイデバイス、および/または、いくつかの実施形態では、他のユーザによって装着される他のウェアラブルディスプレイデバイスであり得る、XRデバイスを通して、ユーザに提供されてもよい。図4は、例証の便宜上、単一ウェアラブルデバイスを含む、システム580(以降、「システム580」と称される)の実施例を図示する。システム580は、頭部搭載型ディスプレイデバイス562(以降、「ディスプレイデバイス562」と称される)と、ディスプレイデバイス562の機能をサポートする、種々の機械および電子モジュールおよびシステムとを含む。ディスプレイデバイス562は、フレーム564に結合されてもよく、これは、ディスプレイシステムのユーザまたは視認者560(以降、「ユーザ560」と称される)によって装着可能であって、ディスプレイデバイス562をユーザ560の眼の正面に位置付けるように構成される。種々の実施形態によると、ディスプレイデバイス562は、シーケンシャルディスプレイであってもよい。ディスプレイデバイス562は、単眼または両眼であってもよい。いくつかの実施形態では、ディスプレイデバイス562は、図3におけるディスプレイ508の実施例であってもよい。
【0148】
いくつかの実施形態では、スピーカ566が、フレーム564に結合され、ユーザ560の外耳道に近接して位置付けられる。いくつかの実施形態では、示されない、別のスピーカが、ユーザ560の別の外耳道に隣接して位置付けられ、ステレオ/調節可能音制御を提供する。ディスプレイデバイス562は、有線導線または無線コネクティビティ568等によって、ローカルデータ処理モジュール570に動作可能に結合され、これは、フレーム564に固定して取り付けられる、ユーザ560によって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ560に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載されてもよい。
【0149】
ローカルデータ処理モジュール570は、プロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを含んでもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、a)画像捕捉デバイス(カメラ等)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、および/またはジャイロスコープ等の(例えば、フレーム564に動作可能に結合される、または別様にユーザ560に取り付けられ得る)センサから捕捉されるデータ、および/またはb)可能性として、処理または読出後にディスプレイデバイス562への通過のために、遠隔処理モジュール572および/または遠隔データリポジトリ574を使用して入手および/または処理されるデータを含む。
【0150】
いくつかの実施形態では、ウェアラブルデバイスは、遠隔コンポーネントと通信してもよい。ローカルデータ処理モジュール570は、それぞれ、有線または無線通信リンク等を介して、通信リンク576、578によって、遠隔処理モジュール572および遠隔データリポジトリ574に、これらの遠隔モジュール572、574が、相互に動作可能に結合され、ローカルデータ処理モジュール570へのリソースとして利用可能であるように、動作可能に結合されてもよい。さらなる実施形態では、遠隔データリポジトリ574に加えて、またはその代替として、ウェアラブルデバイスは、クラウドベースの遠隔データリポジトリおよび/またはサービスにアクセスすることができる。いくつかの実施形態では、上記に説明される頭部姿勢追跡コンポーテントは、少なくとも部分的に、ローカルデータ処理モジュール570内に実装されてもよい。いくつかの実施形態では、図3における世界再構築コンポーネント516は、少なくとも部分的に、ローカルデータ処理モジュール570内に実装されてもよい。例えば、ローカルデータ処理モジュール570は、少なくとも部分的に、データの少なくとも一部に基づいて、コンピュータ実行可能命令を実行し、マップおよび/または物理的世界表現を生成するように構成されてもよい。
【0151】
いくつかの実施形態では、処理は、ローカルおよび遠隔プロセッサを横断して分散されてもよい。例えば、ローカル処理が、そのユーザのデバイス上のセンサを用いて収集されたセンサデータに基づいて、マップ(例えば、追跡マップ)をユーザデバイス上に構築するために使用されてもよい。そのようなマップは、そのユーザのデバイス上のアプリケーションによって使用されてもよい。加えて、以前に作成されたマップ(例えば、規準マップ)は、遠隔データリポジトリ574内に記憶されてもよい。好適な記憶されたまたは持続マップが、利用可能である場合、デバイス上にローカルで作成された追跡マップの代わりに、またはそれに加え、使用されてもよい。いくつかの実施形態では、追跡マップは、対応が、ユーザがシステムをオンにした時間におけるウェアラブルデバイスの位置に対して配向され得る、追跡マップと、1つまたはそれを上回る持続特徴に対して配向され得る、規準マップとの間に確立されるように、記憶されたマップに対して位置特定されてもよい。いくつかの実施形態では、持続マップは、ユーザデバイス上にロードされ、ユーザデバイスが、走査の間に入手されたセンサデータからのユーザの完全な環境の追跡マップを構築するための場所の走査と関連付けられる遅延を伴わずに、仮想コンテンツをレンダリングすることを可能にし得る。いくつかの実施形態では、ユーザデバイスは、持続マップをユーザデバイス上にダウンロードする必要なく、(例えば、クラウド上に記憶された)遠隔持続マップにアクセスしてもよい。
【0152】
いくつかの実施形態では、空間情報が、ウェアラブルデバイスから、デバイスを位置特定し、クラウドサービス上に維持されるマップに記憶するように構成される、クラウドサービス等の遠隔サービスに通信されてもよい。一実施形態によると、位置特定処理は、デバイス場所を、規準マップ等の既存のマップにマッチングさせ、仮想コンテンツをウェアラブルデバイス場所にリンクさせる、変換を返す、クラウド内で生じてもよい。そのような実施形態では、本システムは、マップを遠隔リソースからウェアラブルデバイスに通信することを回避することができる。他の実施形態は、デバイスベースおよびクラウドベースの位置特定の両方のために構成され、例えば、ネットワークコネクティビティが利用不可能である、またはユーザがクラウドベースの位置特定を有効にしないことを選ぶ場合、機能性を有効にすることができる。本明細書中に記載されているクラウドベースの位置特定環境は、XRデバイスのユーザによる直接管理を伴うコンピューティングリソース(例えば、算出リソース、記憶リソース等)のオンデマンドの利用可能性を提供する。クラウドベースの位置特定環境は、いくつかの実施形態においては、プライベートクラウドであり得、いくつかの他の実施形態においては、パブリッククラウドであり得、または、さらなる他の実施形態においては、プライベートおよびパブリッククラウドのハイブリットクラウドであり得る。
【0153】
プライベートクラウドは、内部から、または第三者によって管理され、内部または外部のいずれかからホストされるかどうかにかかわらず、単一組織のためだけに動作される、クラウドインフラストラクチャを含む。パブリッククラウドは、ユーザが、そのデータセンタをそのクラウド常駐アプリケーションにセキュアにリンクさせることを可能にする、パブリックインターネットまたは直接接続サービスを経由して、サービスを送達し、そのようなサービスは、有料サブスクリプションとして、または無料で提供されてもよい。ハイブリッドクラウドは、明確に異なるエンティティのままであるが、ともに結合され、複数の展開モデルの利益をもたらす、パブリッククラウドと、プライベートクラウドまたは敷地内リソース等のプライベート環境の合成である。ハイブリッドクラウドは、併置された管理および/または専用サービスとクラウドリソースを接続するための能力を提供し得、異なるサービスプロバイダからのプライベート、パブリック、およびコミュニティクラウドサービスのある組み合わせを含んでもよい。
【0154】
いくつかの実施形態では、本明細書に説明されるクラウドベースの位置特定環境は、そのような機能性のいくつかまたは全てをローカルで有することと比較して、先行投資コストおよび後続保守およびアップグレードコストを回避しながら、XRデバイスのユーザが、種々のアプリケーション、サービス、マイクロサービス等の機能性を活用し得るように、種々のコンピューティングリソースを共有する。いくつかの実施形態では、クラウドベースの位置特定環境は、高レベルアプリケーションプログラミングインターフェースを提供し、低レベル下層インフラストラクチャ(例えば、コンピューティングリソース、セキュリティ、バックアップ等)を抽象化し、それぞれ、仮想機械のセットをサポートし、サービス(例えば、任意のソフトウェアアプリケーション、サービス、マイクロサービス等)を動的にスケールアップおよびダウンする、ハイパーバイザの集合を伴うサービスとしてのインフラストラクチャの形態において、リソースプーリングをプロビジョニングする。
【0155】
いくつかの実施形態では、本明細書に説明されるクラウドベースの位置特定環境は、ソフトウェア開発者クライアントまたはユーザが、そのソフトウェアアプリケーションをクラウドプラットフォーム上で開発および起動するための基本コンピューティングリソース(例えば、ネットワーキング、サーバ、ウェブサーバ、プログラミング言語実行環境、データベース、オペレーティングシステム等)を含む、クラウドインフラストラクチャ上に、種々のアプリケーション(例えば、クライアントによって作成されたソフトウェアアプリケーション)、ライブラリ、サービス、ツール等を展開することによって、サービスとしてのプラットフォームとして提供されてもよい。いくつかの実施形態では、本明細書に説明されるクラウドベースの位置特定環境は、サービスとしてのソフトウェアとして提供されてもよい。これらの実施形態では、クラウドベースの位置特定環境は、オンデマンドソフトウェアとして、クラウドベースの位置特定環境のプロバイダまたは任意の第三者クラウドサービスプロバイダによって開発される、ソフトウェアアプリケーション、サービス、および/またはマイクロサービスをクライアントおよびユーザに提供してもよい。いくつかの実施形態では、クラウドベースの位置特定環境は、ユーザのウェブアプリケーションおよびモバイルアプリケーション(例えば、XRデバイス上のウェブアプリおよびモバイルアプリ)を、そのようなウェブアプリケーションおよびモバイルアプリケーションにエクスポーズされる1つまたはそれを上回るAPIを伴う、記憶装置およびコンピューティングサービスにリンクさせるように、サービスとしてのモバイルバックエンドとして提供されてもよい。
【0156】
加えて、アプリケーション機能性のうちの少なくともいくつかは、従量課金ベースでXRデバイスのユーザに利用可能であって、スケーラビリティを提供してもよい。いくつかの実施形態では、本明細書に説明されるクラウドベースの位置特定環境は、ハードウェア仮想化(例えば、1つまたはそれを上回るハイパーバイザを伴う、ハードウェアリソースを仮想化することによって、およびアプリケーションまたはサービス等を実行するサービスまたは仮想機械の形態におけるリソースプーリングをプロビジョニングすることによって)および/またはサービス指向アーキテクチャを採用し、セキュリティ、冗長性、スケーラビリティ、順応性、および/または動態を伴う、種々の機能性を、ブラウザを介して、そのような機能性を、および/またはネットワーク接続を介して、1つまたはそれを上回るアプリケーションプログラミングインターフェース(API)を取得し得る、微粒度自己サービスベースで、ユーザに提供してもよい。さらに、クラウドベースの位置特定環境内のサーバまたは仮想機械は、例えば、具体的な個別のタイプのサービスに適切な抽象化の1つまたはそれを上回るレベルにおいて、計測能力を活用することによって、リソース利用を監視、収集する、制御、および最適化してもよい。加えて、本明細書に説明されるクラウドベースの位置特定環境はまた、生産性アプリケーション、サービス、および/またはマイクロサービスを提供し、複数のユーザが、仮想設定内に提示されることを通して利用可能なあらゆるツール(例えば、ホワイトボード、プロジェクタ等)とともに、これらの複数のユーザが物理的会議室に存在するかのように、3D仮想環境内で仮想会議に出席する、同一ファイルを編集する等のタスクに関して協働することを可能にする。
【0157】
代替として、または加えて、追跡マップは、以前に記憶されたマップとマージされ、それらのマップを拡張させる、またはその品質を改良してもよい。好適な以前に作成された環境マップが利用可能であるか、および/または追跡マップと1つまたはそれを上回る記憶された環境マップをマージするかどうかを決定するための処理は、ローカルデータ処理モジュール570または遠隔処理モジュール572内で行われてもよい。
【0158】
いくつかの実施形態では、ローカルデータ処理モジュール570は、データおよび/または画像情報を分析および処理するように構成される、1つまたはそれを上回るプロセッサ(例えば、グラフィック処理ユニット(GPU))を含んでもよい。いくつかの実施形態では、ローカルデータ処理モジュール570は、単一プロセッサ(例えば、シングルコアまたはマルチコアARMプロセッサ)を含んでもよく、これは、ローカルデータ処理モジュール570の算出予算を限定するが、より小型のデバイスを有効にするであろう。いくつかの実施形態では、世界再構築コンポーネント516は、単一ARMコアの残りの算出予算が、例えば、メッシュの抽出等の他の使用のためにアクセスされ得るように、単一高度RISC機械(ARM)コアより少ない算出予算を使用して、物理的世界表現をリアルタイムで非所定の空間上に生成してもよい。
【0159】
いくつかの実施形態では、遠隔データリポジトリ574は、デジタルデータ記憶設備を含んでもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカルデータ処理モジュール570において実施され、遠隔モジュールからの完全に自律的な使用を可能にする。いくつかの実施形態では、全てのデータが、記憶され、全てまたは大部分の算出は、遠隔データリポジトリ574内で実施され、より小さいデバイスを可能にする。世界再構築物は、例えば、全体または部分的に、本リポジトリ574内に記憶されてもよい。
【0160】
その中にデータが、遠隔で記憶され、ネットワークを経由してアクセス可能である、実施形態では、データは、拡張現実システムの複数のユーザによって共有されてもよい。例えば、ユーザデバイスは、その追跡マップをアップロードし、環境マップのデータベース内に拡張されてもよい。いくつかの実施形態では、追跡マップのアップロードは、ウェアラブルデバイスとのユーザセッションの終了時に生じる。いくつかの実施形態では、追跡マップのアップロードは、持続的に、半持続的に、断続的に、事前に定義された時間において、前のアップロードから事前に定義された周期後、またはあるイベントによってトリガされると、生じ得る。任意のユーザデバイスによってアップロードされた追跡マップは、そのユーザデバイスまたは任意の他のユーザデバイスからのデータに基づくかどうかにかかわらず、以前に記憶されたマップを拡張または改良するために使用されてもよい。同様に、ユーザデバイスにダウンロードされた持続マップは、そのユーザデバイスまたは任意の他のユーザデバイスからのデータに基づいてもよい。このように、高品質環境マップが、ARシステムを用いたその体験を改良するために、ユーザに容易に利用可能であり得る。
【0161】
さらなる実施形態では、持続マップのダウンロードは、(例えば、クラウド内の)遠隔リソース上で実行される位置特定に基づいて、限定および/または回避され得る。そのような構成では、ウェアラブルデバイスまたは他のXRデバイスは、クラウドサービスに、姿勢情報と結合される、特徴情報(例えば、特徴情報内に表される特徴が感知された時点におけるデバイスに関する測位情報)を通信する。クラウドサービスの1つまたはそれを上回るコンポーネントは、特徴情報と個別の記憶されたマップ(例えば、規準マップ)をマッチングさせ、XRデバイスによって維持される追跡マップと規準マップの座標系との間の変換を生成してもよい。規準マップに対して位置特定されたその追跡マップを有する、各XRデバイスは、その独自の追跡に基づいて、仮想コンテンツを規準マップに対して規定された場所に正確にレンダリングし得る。
【0162】
いくつかの実施形態では、ローカルデータ処理モジュール570は、バッテリ582に動作可能に結合される。いくつかの実施形態では、バッテリ582は、市販のバッテリ等のリムーバブル電源である。他の実施形態では、バッテリ582は、リチウムイオンバッテリである。いくつかの実施形態では、バッテリ582は、ユーザ560が、電源に繋がれ、リチウムイオンバッテリを充電する必要なく、またはシステム580をシャットオフし、バッテリを交換する必要なく、より長い時間周期にわたってシステム580を動作させ得るように、システム580の非動作時間の間、ユーザ560によって充電可能な内部リチウムイオンバッテリと、リムーバブルバッテリとの両方を含む。
【0163】
図5Aは、ユーザ530が物理的世界環境532(以降、「環境532」と称される)を通して移動するにつれてARコンテンツをレンダリングする、ARディスプレイシステムを装着している、ユーザ530を図示する。ユーザの移動経路に沿ってARシステムによって捕捉された情報は、1つまたはそれを上回る追跡マップの中に処理されてもよい。ユーザ530は、ARディスプレイシステムを位置534に位置付け、ARディスプレイシステムは、位置534に対するパス可能世界(例えば、物理的世界内の実オブジェクトの変化に伴って記憶および更新され得る、物理的世界内の実オブジェクトのデジタル表現)の周囲情報を記録する。その情報は、画像、特徴、指向性オーディオ入力、または他の所望のデータと組み合わせて、姿勢として記憶されてもよい。位置534は、例えば、追跡マップの一部として、データ入力536に対して集約され、少なくともパス可能世界モジュール538によって処理され、これは、例えば、図4の遠隔処理モジュール572上の処理によって実装されてもよい。いくつかの実施形態では、パス可能世界モジュール538は、処理された情報が、レンダリング仮想コンテンツ内で使用される物理的オブジェクトについての他の情報と組み合わせて、物理的世界内のオブジェクトの場所を示し得るように、頭部姿勢コンポーネント514と、世界再構築コンポーネント516とを含んでもよい。
【0164】
パス可能世界モジュール538は、データ入力536から決定されるように、少なくとも部分的に、ARコンテンツ540が物理的世界内に設置され得る場所および方法を決定する。ARコンテンツは、ユーザインターフェースを介して、物理的世界の表現およびARコンテンツの両方を提示することによって、物理的世界内に「設置」され、ARコンテンツは、物理的世界内のオブジェクトと相互作用しているかのようにレンダリングされ、物理的世界内のオブジェクトは、ARコンテンツが、適切なとき、それらのオブジェクトのユーザのビューを不明瞭にしているかのように提示される。いくつかの実施形態では、ARコンテンツは、固定要素542(例えば、テーブル)の一部を再構築物(例えば、再構築物518)から適切に選択し、ARコンテンツ540の形状および位置を決定することによって、設置されてもよい。実施例として、固定要素は、テーブルであってもよく、仮想コンテンツは、そのテーブル上に現れるように位置付けられてもよい。いくつかの実施形態では、ARコンテンツは、現在の視野または推定される将来的視野であり得る、視野544内の構造の中に設置されてもよい。いくつかの実施形態では、ARコンテンツは、物理的世界のモデル546(例えば、メッシュ)に対して持続されてもよい。
【0165】
描写されるように、固定要素542は、ユーザ530にそれが見える度に、システムが固定要素542にマッピングする必要なく、ユーザ530が固定要素542上にコンテンツを知覚し得るように、パス可能世界モジュール538内に記憶され得る、物理的世界内の任意の固定要素のためのプロキシ(例えば、デジタルコピー)としての役割を果たす。固定要素542は、したがって、前のモデル化セッションからの、または別個のユーザから決定されるものであるものの、複数のユーザによる将来的参照のためにパス可能世界モジュール538によって記憶される、メッシュモデルであってもよい。したがって、パス可能世界モジュール538は、環境532を以前にマッピングされた環境から認識し、ユーザ530のデバイスが環境532の全部または一部を最初にマッピングすることなく、ARコンテンツを表示し、算出プロセスおよびサイクルを節約し、任意のレンダリングされたARコンテンツの待ち時間を回避し得る。
【0166】
物理的世界のメッシュモデル546は、ARディスプレイシステムによって作成されてもよく、ARコンテンツ540と相互作用し、表示するための適切な表面およびメトリックは、完全または部分的に、モデルを再作成する必要なく、ユーザ530または他のユーザによる将来的読出のために、パス可能世界モジュール538によって記憶されることができる。いくつかの実施形態では、データ入力536は、パス可能世界モジュール538に、1つまたはそれを上回る固定要素のうちのどの固定要素542が利用可能であるかどうか、固定要素542上に最後に設置されたARコンテンツ540、およびその同一コンテンツを表示すべきかどうか(そのようなARコンテンツは、ユーザが特定のパス可能世界モデルを視認しているかどうかにかかわらず、「持続」コンテンツである)を示すための、地理的場所、ユーザ識別、および現在のアクティビティ等の入力である。
【0167】
オブジェクトが固定されていると見なされる(例えば、台所のテーブル)、実施形態においてさえ、パス可能世界モジュール538は、物理的世界の変化の可能性を考慮するために、物理的世界のモデル内のそれらのオブジェクトを随時更新してもよい。固定されたオブジェクトのモデルは、非常に低頻度で更新されてもよい。物理的世界内の他のオブジェクトは、移動している、または別様に固定されていると見なされないものであり得る(例えば、台所の椅子)。AR場面を現実的感覚でレンダリングするために、ARシステムは、これらの非固定オブジェクトの位置を、固定オブジェクトを更新するために使用されるものよりはるかに高い頻度で更新してもよい。物理的世界内のオブジェクトの全ての正確な追跡を有効にするために、ARシステムは、1つまたはそれを上回る画像センサを含む、複数のセンサから情報を引き出してもよい。
【0168】
図5Bは、視認光学系アセンブリ548および付帯コンポーネントの概略例証である。いくつかの実施形態では、2つの眼追跡カメラ550が、ユーザの眼549に向かって指向され、眼形状、眼瞼オクルージョン、瞳孔方向、およびユーザの眼549上の閃光等、ユーザの眼549のメトリックを検出する。
【0169】
いくつかの実施形態では、センサのうちの1つは、飛行時間センサ等の深度センサ551であって、信号を世界に放出し、近隣のオブジェクトからのそれらの信号の反射を検出し、所与のオブジェクトまでの距離を決定してもよい。深度センサは、例えば、オブジェクトが、それらのオブジェクトの運動またはユーザの姿勢の変化のいずれかの結果として、ユーザの視野に進入したかどうかを迅速に決定し得る。しかしながら、ユーザの視野内のオブジェクトの位置についての情報は、代替として、または加えて、他のセンサを用いて収集されてもよい。深度情報は、例えば、立体視的画像センサまたはプレノプティックセンサから取得されてもよい。
【0170】
いくつかの実施形態では、世界カメラ552は、周辺より広いビューを記録し、マッピングし、および/または別様に、環境532のモデルを作成し、ARコンテンツに影響を及ぼし得る、入力を検出する。いくつかの実施形態では、世界カメラ552および/またはカメラ553は、グレースケールおよび/またはカラー画像センサであってもよく、これは、グレースケールおよび/またはカラー画像フレームを固定される時間インターバルにおいて出力してもよい。カメラ553はさらに、ユーザの視野内の物理的世界画像を具体的時間において捕捉してもよい。フレームベースの画像センサのピクセルは、その値が不変である場合でも、反復的にサンプリングされてもよい。世界カメラ552、カメラ553、および深度センサ551はそれぞれ、554、555、および556の個別の視野を有し、図34Aに描写される物理的世界環境532等の物理的世界場面からのデータを収集および記録する。
【0171】
慣性測定ユニット557は、視認光学系アセンブリ548の移動および配向を決定してもよい。いくつかの実施形態では、各コンポーネントは、少なくとも1つの他のコンポーネントに動作可能に結合される。例えば、深度センサ551は、ユーザの眼549が見ている実際の距離に対する測定された遠近調節の確認として、眼追跡カメラ550に動作可能に結合される。
【0172】
視認光学系アセンブリ548は、図34Bに図示されるコンポーネントのうちのいくつかを含んでもよく、図示されるコンポーネントの代わりに、またはそれに加え、コンポーネントを含んでもよいことを理解されたい。いくつかの実施形態では、例えば、視認光学系アセンブリ548は、4つの代わりに、2つの世界カメラ552を含んでもよい。代替として、または加えて、カメラ552および553は、その完全視野の可視光画像を捕捉する必要はない。視認光学系アセンブリ548は、他のタイプのコンポーネントを含んでもよい。いくつかの実施形態では、視認光学系アセンブリ548は、1つまたはそれを上回る動的視覚センサ(DVS)を含んでもよく、そのピクセルは、光強度の相対的変化が閾値を超えることに非同期して応答してもよい。
【0173】
いくつかの実施形態では、視認光学系アセンブリ548は、飛行時間情報に基づく深度センサ551を含まなくてもよい。いくつかの実施形態では、例えば、視認光学系アセンブリ548は、1つまたはそれを上回るプレノプティックカメラを含んでもよく、そのピクセルは、入射光の光強度および角度を捕捉してもよく、そこから深度情報が、決定されることができる。例えば、プレノプティックカメラは、透過性回折マスク(TDM)でオーバーレイされた画像センサを含んでもよい。代替として、または加えて、プレノプティックカメラは、角度感知ピクセルおよび/または位相検出自動焦点ピクセル(PDAF)および/またはマイクロレンズアレイ(MLA)を含有する、画像センサを含んでもよい。そのようなセンサは、深度センサ551の代わりに、またはそれに加え、深度情報源としての役割を果たし得る。
【0174】
また、図5Bにおけるコンポーネントの構成は、実施例として提供されることを理解されたい。視認光学系アセンブリ548は、任意の好適な構成を伴うコンポーネントを含んでもよく、これは、ユーザに、特定のセットのコンポーネントのために実践的な最大視野を提供するように設定されてもよい。例えば、視認光学系アセンブリ548が、1つの世界カメラ552を有する場合、世界カメラは、側面の代わりに、視認光学系アセンブリの中心領域内に設置されてもよい。
【0175】
視認光学系アセンブリ548内のセンサからの情報は、システム内のプロセッサのうちの1つまたはそれを上回るものに結合されてもよい。プロセッサは、ユーザに仮想コンテンツが物理的世界内のオブジェクトと相互作用するように知覚させるようにレンダリングされ得る、データを生成してもよい。そのレンダリングは、物理的および仮想オブジェクトの両方を描写する、画像データを生成することを含め、任意の好適な方法において実装されてもよい。他の実施形態では、物理的および仮想コンテンツは、ユーザが物理的世界を透かし見る、ディスプレイデバイスの不透明度を変調させることによって、1つの場面に描写されてもよい。不透明度は、仮想オブジェクトの外観を作成し、ユーザに仮想オブジェクトによってオクルードされる物理的世界内のオブジェクトが見えないように遮断するように、制御されてもよい。いくつかの実施形態では、画像データは、仮想コンテンツがユーザインターフェースを通して視認されるとき、物理的世界と現実的に相互作用するように、ユーザによって知覚されるように修正され得る(例えば、コンテンツをクリッピングし、オクルージョンを考慮する)、仮想コンテンツのみを含んでもよい。
【0176】
コンテンツが特定の場所におけるオブジェクトの印象を作成するために表示され得る、視認光学系アセンブリ548上の場所は、視認光学系アセンブリの物理学に依存し得る。加えて、物理的世界に対するユーザの頭部の姿勢およびユーザの眼が見ている方向は、コンテンツが現れるであろう視認光学系アセンブリ上の特定の場所に表示される、物理的世界コンテンツ内の場所に影響を及ぼすであろう。上記に説明されるようなセンサは、センサ入力を受信するプロセッサが、オブジェクトが、視認光学系アセンブリ548上にレンダリングされ、ユーザのために所望の外観を作成すべき場所を算出し得るように、本情報を収集し、および/またはそこから本情報が計算され得る、情報を供給してもよい。
【0177】
コンテンツがユーザに提示される方法にかかわらず、物理的世界のモデルが、仮想オブジェクトの形状、位置、運動、および可視性を含む、物理的オブジェクトによって影響され得る、仮想オブジェクトの特徴が、正しく算出され得るように、使用され得る。いくつかの実施形態では、モデルは、物理的世界の再構築物、例えば、再構築物518を含んでもよい。
【0178】
そのモデルは、ユーザのウェアラブルデバイス上のセンサから収集されたデータから作成されてもよい。但し、いくつかの実施形態では、モデルは、複数のユーザによって収集されたデータから作成されてもよく、これは、全てのユーザから遠隔のコンピューティングデバイス内に集約されてもよい(かつ「クラウド内」にあってもよい)。
【0179】
モデルは、少なくとも部分的に、例えば、図6Aにさらに詳細に描写される図3の世界再構築コンポーネント516等の世界再構築システムによって作成されてもよい。世界再構築コンポーネント516は、物理的世界の一部のための表現を生成、更新、および記憶し得る、知覚モジュール660を含んでもよい。いくつかの実施形態では、知覚モジュール660は、センサの再構築範囲内の物理的世界の一部を複数のボクセルとして表し得る。各ボクセルは、物理的世界内の所定の体積の3D立方体に対応し、表面情報を含み、ボクセルによって表される体積内に表面が存在するかどうかを示し得る。ボクセルは、その対応する体積が、物理的オブジェクトの表面を含むと決定されている、空であると決定されている、またはセンサを用いてまだ測定されていない、したがって、その値が未知であるかどうかを示す、値を割り当てられてもよい。空または未知であると決定されたボクセルを示す値は、明示的に記憶される必要はなく、ボクセルの値は、空または未知であると決定されたボクセルに関する情報を記憶しないことを含め、任意の好適な方法において、コンピュータメモリ内に記憶されてもよいことを理解されたい。
【0180】
持続される世界表現のための情報を生成することに加え、知覚モジュール660は、ARシステムのユーザの周囲の領域の変化のインジケーションを識別し、出力してもよい。そのような変化のインジケーションは、持続される世界の一部として記憶される立体データへの更新をトリガする、またはARコンテンツを生成し、ARコンテンツを更新する、コンポーネント604をトリガする等、他の機能をトリガしてもよい。
【0181】
いくつかの実施形態では、知覚モジュール660は、符号付き距離関数(SDF)モデルに基づいて、変化を識別してもよい。知覚モジュール660は、例えば、深度マップ660aおよび頭部姿勢660b等のセンサデータを受信し、次いで、センサデータをSDFモデル660cに融合させるように構成されてもよい。深度マップ660aは、直接、SDF情報を提供してもよく、画像は、SDF情報に到着するように処理されてもよい。SDF情報は、その情報を捕捉するために使用されるセンサからの距離を表す。それらのセンサは、ウェアラブルユニットの一部であり得るため、SDF情報は、ウェアラブルユニットの視点、したがって、ユーザの視点から物理的世界を表し得る。頭部姿勢660bは、SDF情報が物理的世界内のボクセルに関連されることを可能にし得る。
【0182】
いくつかの実施形態では、知覚モジュール660は、知覚範囲内にある、物理的世界の一部のための表現を生成、更新、および記憶してもよい。知覚範囲は、少なくとも部分的に、センサの再構築範囲に基づいて決定されてもよく、これは、少なくとも部分的に、センサの観察範囲の限界に基づいて決定されてもよい。具体的実施例として、アクティブIRパルスを使用して動作する、アクティブ深度センサは、ある距離の範囲にわたって確実に動作し、数センチメートルまたは数十センチメートル~数メートルであり得る、センサの観察範囲を作成し得る。
【0183】
世界再構築コンポーネント516は、知覚モジュール660と相互作用し得る、付加的モジュールを含んでもよい。いくつかの実施形態では、持続される世界モジュール662は、知覚モジュール660によって入手されたデータに基づいて、物理的世界のための表現を受信してもよい。持続される世界モジュール662はまた、物理的世界の種々のフォーマットの表現を含んでもよい。例えば、ボクセル等の立体メタデータ662bが、メッシュ662cおよび平面662dとともに記憶されてもよい。いくつかの実施形態では、深度マップ等の他の情報も、保存され得る。
【0184】
いくつかの実施形態では、図6Aに図示されるもの等の物理的世界の表現は、上記に説明されるように、特徴点に基づく追跡マップ等の疎マップと比較して、物理的世界についての比較的に稠密情報を提供し得る。
【0185】
いくつかの実施形態では、知覚モジュール660は、例えば、メッシュ660d、平面、および意味論660eを含む、種々のフォーマットにおける、物理的世界のための表現を生成する、モジュールを含んでもよい。物理的世界のための表現は、ローカルおよび遠隔記憶媒体を横断して記憶されてもよい。物理的世界のための表現は、例えば、記憶媒体の場所に応じて、異なる座標フレーム内に説明されてもよい。例えば、デバイス内に記憶された物理的世界のための表現は、デバイスにローカルの座標フレーム内に説明されてもよい。物理的世界のための表現は、クラウド内に記憶された対応物を有してもよい。クラウド内の対応物は、XRシステム内の全てのデバイスによって共有される座標フレーム内に説明されてもよい。
【0186】
いくつかの実施形態では、これらのモジュールは、表現が生成された時点の1つまたはそれを上回るセンサの知覚範囲内のデータおよび以前の時間に捕捉されたデータおよび持続される世界モジュール662内の情報に基づいて、表現を生成してもよい。いくつかの実施形態では、これらのコンポーネントは、深度センサを用いて捕捉された深度情報に作用してもよい。しかしながら、ARシステムは、視覚センサを含んでもよく、単眼または両眼視覚情報を分析することによって、そのような表現を生成してもよい。
【0187】
いくつかの実施形態では、これらのモジュールは、物理的世界の領域に作用してもよい。それらのモジュールは、物理的世界のサブ領域を、知覚モジュール660がそのサブ領域内の物理的世界の変化を検出すると、更新するようにトリガされてもよい。そのような変化は、例えば、SDFモデル660c内の新しい表面を検出することによって、またはサブ領域を表す十分な数のボクセルの値の変化等の他の基準によって、検出されてもよい。
【0188】
世界再構築コンポーネント516は、物理的世界の表現を知覚モジュール660から受信し得る、コンポーネント664を含んでもよい。物理的世界についての情報は、例えば、アプリケーションからの使用要求に従って、これらのコンポーネントによってプル配信されてもよい。いくつかの実施形態では、情報は、事前に識別された領域の変化または知覚範囲内の物理的世界表現の変化のインジケーション等を介して、使用コンポーネントにプッシュ配信されてもよい。コンポーネント664は、例えば、視覚的オクルージョン、物理学ベースの相互作用、および環境推測のための処理を実施する、ゲームプログラムおよび他のコンポーネントを含んでもよい。
【0189】
コンポーネント664からのクエリに応答して、知覚モジュール660は、物理的世界のための表現を1つまたはそれを上回るフォーマットにおいて送信してもよい。例えば、コンポーネント664が、使用が視覚的オクルージョンまたは物理学ベースの相互作用のためのものであることを示すとき、知覚モジュール660は、表面の表現を送信してもよい。コンポーネント664が、使用が環境推測のためのものであることを示すとき、知覚モジュール660は、物理的世界のメッシュ、平面、および意味論を送信してもよい。
【0190】
いくつかの実施形態では、知覚モジュール660は、フォーマット情報をコンポーネント664に提供する、コンポーネントを含んでもよい。そのようなコンポーネントの実施例は、レイキャスティングコンポーネント660fであってもよい。使用コンポーネント(例えば、コンポーネント664)は、例えば、特定の視点からの物理的世界についての情報をクエリしてもよい。レイキャスティングコンポーネント660fは、その視点からの視野内の物理的世界データの1つまたはそれを上回る表現から選択してもよい。
【0191】
前述の説明から理解されるはずであるように、知覚モジュール660またはARシステムの別のコンポーネントは、データを処理し、物理的世界の一部の3D表現を作成してもよい。処理されるべきデータは、少なくとも部分的に、カメラ錐台および/または深度画像に基づいて、3D再構築体積の一部を間引く、平面データを抽出および持続させる、近傍の一貫性を維持しながらローカル更新を可能にするブロックにおいて、3D再構築データを捕捉し、持続させ、更新する、オクルージョンデータが1つまたはそれを上回る深度データソースの組み合わせから導出される、オクルージョンデータをそのような場面を生成するアプリケーションに提供する、および/または多段階メッシュ簡略化を実施することによって、低減され得る。再構築物は、例えば、ライブ深度データ等の未加工データ、ボクセル等の融合された立体データ、およびメッシュ等の算出されたデータを含む、異なるレベルの精巧さのデータを含有してもよい。
【0192】
いくつかの実施形態では、パス可能世界モデルのコンポーネントは、分散されてもよく、いくつかの部分は、XRデバイス上でローカルで実行され、いくつかの部分は、サーバに接続されるネットワーク上または別様にクラウド内等の遠隔で実行される。ローカルXRデバイスとクラウドとの間の情報の処理および記憶の配分は、XRシステムの機能性およびユーザ体験に影響を及ぼし得る。例えば、処理をクラウドに配分することによって、ローカルデバイス上の処理を低減させることは、より長いバッテリ寿命を有効にし、ローカルデバイス上に生成される熱を低減させ得る。しかし、はるかに多い処理をクラウドに配分することは、容認不可能なユーザ体験を引き起こす、望ましくない待ち時間を作成し得る。
【0193】
図6Bは、いくつかの実施形態による、空間コンピューティングのために構成される、分散型コンポーネントアーキテクチャ600を描写する。分散型コンポーネントアーキテクチャ600は、パス可能世界コンポーネント602(例えば、図5AにおけるPW538)と、Lumin OS604と、API606と、SDK608と、アプリケーション610とを含んでもよい。Lumin OS604は、XRデバイスと互換性があるカスタムドライバを伴う、Linux(登録商標)ベースのカーネルを含んでもよい。APIの606は、XRアプリケーション(例えば、アプリケーション610)にXRデバイスの空間コンピューティング特徴へのアクセスを与える、アプリケーションプログラミングインターフェースを含んでもよい。SDK608は、XRアプリケーションの作成を可能にする、ソフトウェア開発キットを含んでもよい。
【0194】
アーキテクチャ600内の1つまたはそれを上回るコンポーネントは、パス可能世界のモデルを作成および維持してもよい。本実施例では、センサデータは、ローカルデバイス上で収集される。そのセンサデータの処理は、部分的に、XRデバイス上でローカルで、部分的に、クラウド内で実施されてもよい。PW538は、少なくとも部分的に、複数のユーザによって装着されるARデバイスによって捕捉されたデータに基づいて作成される、環境マップを含んでもよい。AR体験のセッションの間、個々のARデバイス(図4に関連して上記に説明されるウェアラブルデバイス等)は、マップの1つのタイプである、追跡マップを作成してもよい。
【0195】
いくつかの実施形態では、デバイスは、疎マップおよび稠密マップの両方を構築する、コンポーネントを含んでもよい。追跡マップは、疎マップとしての役割を果たしてもよく、環境を走査するARデバイスの頭部姿勢ならび各頭部姿勢においてその環境内で検出されたオブジェクトについての情報を含んでもよい。それらの頭部姿勢は、デバイス毎にローカルで維持されてもよい。例えば、各デバイス上の頭部姿勢は、デバイスがそのセッションのためにオンにされたときの初期頭部姿勢に対するものであり得る。結果として、各追跡マップは、それを作成するデバイスにローカルであり得る。稠密マップは、表面情報を含んでもよく、これは、メッシュまたは深度情報によって表されてもよい。代替として、または加えて、稠密マップは、平面および/または他のオブジェクトの場所および/または特性等の表面または深度情報から導出されるより高いレベルの情報を含んでもよい。
【0196】
稠密マップの作成は、いくつかの実施形態では、疎マップの作成から独立してもよい。稠密マップおよび疎マップの作成は、例えば、ARシステム内の別個の処理パイプライン内で実施されてもよい。処理を分離することは、例えば、異なるタイプのマップの生成または処理が異なるレートで実施されることを可能にし得る。疎マップは、例えば、稠密マップより高速のレートでリフレッシュされてもよい。しかしながら、いくつかの実施形態では、稠密および疎マップの処理は、異なるパイプライン内で実施される場合でも、関連し得る。疎マップ内で露見される物理的世界の変化は、例えば、稠密マップの更新をトリガし得る、またはその逆である。さらに、独立して作成される場合でも、マップは、ともに使用され得る。例えば、疎マップから導出される座標系は、稠密マップ内のオブジェクトの位置および/または配向を定義するために使用されてもよい。
【0197】
疎マップおよび/または稠密マップは、同一デバイスによる再使用のために、および/または他のデバイスと共有するために、存続してもよい。そのような存続は、情報をクラウド内に記憶することによって達成されてもよい。ARデバイスは、追跡マップをクラウドに送信し、例えば、クラウド内に以前に記憶された存続されるマップから選択された環境マップとマージしてもよい。いくつかの実施形態では、選択された存続されるマップは、マージするために、クラウドからARデバイスに送信されてもよい。いくつかの実施形態では、存続されるマップは、1つまたはそれを上回る持続座標フレームに対して配向されてもよい。そのようなマップは、それらが複数のデバイスのいずれかによって使用され得るため、規準マップとしての役割を果たし得る。いくつかの実施形態では、パス可能世界のモデルは、1つまたはそれを上回る規準マップを含む、または作成されてもよい。デバイスは、デバイスにローカルの座標フレームに基づいて、いくつかの動作を実施するものの、デバイスにローカルのその座標フレームと規準マップとの間の変換を決定することによって、規準マップを使用してもよい。
【0198】
規準マップは、追跡マップ(TM)(例えば、図31AにおけるTM1102)として生じてもよく、これは、規準マップにレベル上げされ得る。規準マップは、規準マップにアクセスするデバイスが、いったんそのローカル座標系と規準マップの座標系との間の変換を決定すると、規準マップ内の情報を使用して、デバイスの周囲の物理的世界内の規準マップ内に表されるオブジェクトの場所を決定し得るように、存続されてもよい。いくつかの実施形態では、TMは、XRデバイスによって作成された頭部姿勢疎マップであってもよい。いくつかの実施形態では、規準マップは、異なる時間においてXRデバイスによって、または他のXRデバイスによって、捕捉された付加的TMとマージするために、XRデバイスが1つまたはそれを上回るTMをクラウドサーバに送信すると、作成されてもよい。
【0199】
規準マップまたは他のマップは、個別のマップを作成するために処理されたデータによって表される物理的世界の一部についての情報を提供してもよい。図7は、いくつかの実施形態による、例示的追跡マップ700を描写する。追跡マップ700は、点702によって表される対応する物理的世界内の物理的オブジェクトの平面図706を提供してもよい。いくつかの実施形態では、マップ点702は、複数の特徴を含み得る、物理的オブジェクトの特徴を表し得る。例えば、テーブルの各角は、マップ上の点によって表される、特徴であり得る。特徴は、拡張現実システム内のウェアラブルデバイスのセンサを用いて入手され得るような処理画像から導出されてもよい。特徴は、例えば、センサによって出力された画像フレームを処理し、画像内の大勾配または他の好適な基準に基づいて、特徴を識別することによって導出されてもよい。さらなる処理は、各フレーム内の特徴の数を限定してもよい。例えば、処理は、持続オブジェクトを表す可能性が高い、特徴を選択してもよい。1つまたはそれを上回るヒューリスティックが、本選択のために適用されてもよい。
【0200】
追跡マップ700は、デバイスによって収集された点702に関するデータを含んでもよい。追跡マップ内に含まれるデータ点を伴う、画像フレーム毎に、姿勢が、記憶されてもよい。姿勢は、各画像フレーム内の特徴点が空間的に相関され得るように、そこから画像フレームが捕捉された配向を表し得る。姿勢は、ウェアラブルデバイス上のIMUセンサ等のセンサから導出され得るような位置付け情報によって決定されてもよい。代替として、または加えて、姿勢は、画像フレームと、物理的世界の重複部分を描写する、他の画像フレームをマッチングさせることから決定されてもよい。2つのフレーム内の特徴点のサブセットをマッチングさせることによって遂行され得る、そのような位置相関を見出すことによって、2つのフレーム間の相対的姿勢が、算出され得る。相対的姿勢は、マップが、追跡マップの構築が開始されたときのデバイスの初期姿勢に基づいて確立されるデバイスにローカルの座標系に対するものであり得るため、追跡マップのために適正であり得る。
【0201】
センサを用いて収集された情報の多くが冗長である可能性が高いため、デバイスによって収集された特徴点および画像フレームの全てが、追跡マップの一部として留保され得るわけではない。むしろ、あるフレームのみが、マップに追加されてもよい。それらのフレームは、すでにマップ内にある画像フレームとの重複度、それらが含有する新しい特徴の数、またはフレーム内の特徴に関する品質メトリック等の1つまたはそれを上回る基準に基づいて選択されてもよい。追跡マップに追加されない画像フレームは、破棄されてもよい、または特徴の場所を改訂するために使用されてもよい。さらなる代替として、特徴のセットとして表される、画像フレームの全部または大部分が、留保されてもよいが、それらのフレームのサブセットは、キーフレームとして指定されてもよく、これは、さらなる処理のために使用される。
【0202】
キーフレームは、処理され、キーリグ704を生産してもよい。キーフレームは、処理され、特徴点の3次元セットを生産し、キーリグ704として保存されてもよい。そのような処理は、例えば、2つのカメラから同時に導出される画像フレームを比較し、特徴点の3D位置を立体視的に決定することを伴ってもよい。姿勢等のメタデータが、これらのキーフレームおよび/またはキーリグと関連付けられてもよい。
【0203】
環境マップは、例えば、ARデバイスのローカル記憶装置および遠隔記憶装置を含む、例えば、環境マップの記憶場所に応じて、複数のフォーマットのいずれかを有してもよい。例えば、遠隔記憶装置内のマップは、メモリが限定されると、ウェアラブルデバイス上のローカル記憶装置内のマップより高い分解能を有してもよい。より高い分解能マップを遠隔記憶装置からローカル記憶装置に送信するために、マップは、マップ内に記憶される物理的世界のエリアあたりの姿勢の数および/または姿勢毎に記憶される特徴点の数を低減させること等によって、ダウンサンプリングまたは別様に適切なフォーマットに変換されてもよい。いくつかの実施形態では、遠隔記憶装置からの高分解能マップのスライスまたは一部が、ローカル記憶装置に送信されてもよく、スライスまたは一部は、ダウンサンプリングされない。
【0204】
環境マップのデータベースは、新しい追跡マップが作成されるにつれて、更新されてもよい。データベース内の潜在的に非常に多数の環境マップのうちのどれが更新されるべきかを決定するために、更新することは、新しい追跡マップに関連するデータベース内に記憶される1つまたはそれを上回る環境マップを効率的に選択することを含んでもよい。選択された1つまたはそれを上回る環境マップは、関連性によってランク付けされてもよく、より高いランク付けまたは最高のランク付けのマップのうちの1つまたはそれを上回るものが、より高いランク付けされた選択された環境マップと新しい追跡マップをマージし、1つまたはそれを上回る更新された環境マップを作成するために処理するために選択されてもよい。新しい追跡マップが、それにわたって更新するための既存の環境マップが存在しない、物理的世界の部分を表すとき、その追跡マップは、新しい環境マップとしてデータベース内に記憶されてもよい。
【0205】
ビュー独立ディスプレイ
【0206】
本明細書に説明されるものは、仮想コンテンツを視認する眼の場所から独立して、XRシステムを使用して仮想コンテンツを提供するための方法および装置である。従来、仮想コンテンツは、表示システムの任意の運動に応じて、再レンダリングされる。例えば、ディスプレイシステムを装着しているユーザが、ディスプレイ上の3次元(3D)オブジェクトの仮想表現を視認し、3Dオブジェクトが現れるエリアの周囲を歩き回る場合、3Dオブジェクトは、ユーザが実空間を占有する、オブジェクトの周囲を歩き回っているという知覚を有するように、視点毎に再レンダリングされるべきである。しかしながら、再レンダリングは、システムの有意な算出リソースを消費し、待ち時間に起因して、アーチファクトを生じさせる。
【0207】
本発明者らは、頭部姿勢(例えば、XRシステムを装着しているユーザの場所および配向)が、ユーザの頭部における眼回転から独立して、仮想コンテンツをレンダリングするために使用され得ることを認識し、その真価を認めた。いくつかの実施形態では、場面の動的マップが、ユーザの頭部における眼回転から独立して、および/または、例えば、高速算出集約的動作の間に生成された熱によって生じるセンサ変形から独立して、動的マップと相互作用する仮想コンテンツが、ロバストにレンダリングされ得るように、1つまたはそれを上回るセッションを横断して、実空間内の複数の座標フレームに基づいて生成されてもよい。いくつかの実施形態では、複数の座標フレームの構成は、第1のユーザによって装着される第1のXRデバイスおよび第2のユーザによって装着される第2のXRデバイスが、場面内の共通場所を認識することを可能にし得る。いくつかの実施形態では、複数の座標フレームの構成は、XRデバイスを装着しているユーザが、仮想コンテンツを場面の同一場所内で視認することを可能にし得る。
【0208】
いくつかの実施形態では、追跡マップが、世界座標フレーム内に構築されてもよく、これは、世界原点を有してもよい。世界原点は、XRデバイスが電源投入されるときの、XRデバイスの第1の姿勢であってもよい。世界原点は、XRアプリケーションの開発者が余剰作業を伴わずに重力整合を得ることができるように、重力に整合されてもよい。異なる追跡マップが、追跡マップが、異なるセッションにおける同一XRデバイスおよび/または異なるユーザによって装着される異なるXRデバイスによって捕捉され得るため、異なる世界座標フレーム内に構築されてもよい。いくつかの実施形態では、XRデバイスのセッションは、デバイスを電源オンにしてから開始し、電源オフにするまで続いてもよい。いくつかの実施形態では、XRデバイスは、頭部座標フレームを有してもよく、これは、頭部原点を有してもよい。頭部原点は、画像が撮影されるときの、XRデバイスの現在の姿勢であってもよい。世界座標フレームおよび頭部座標フレームの頭部姿勢の間の差異は、追跡ルートを推定するために使用されてもよい。
【0209】
いくつかの実施形態では、XRデバイスは、カメラ座標フレームを有してもよく、これは、カメラ原点を有してもよい。カメラ原点は、XRデバイスの1つまたはそれを上回るセンサの現在の姿勢であってもよい。本発明者らは、カメラ座標フレームの構成が、ユーザの頭部における眼回転から独立して、仮想コンテンツのロバストな表示を有効にすることを認識し、その真価を認めた。本構成はまた、例えば、動作の間に生成された熱に起因するセンサ変形から独立して、仮想コンテンツのロバストな表示を有効にする。
【0210】
いくつかの実施形態では、XRデバイスは、ユーザが、その頭部に固着させ得、ユーザの各眼の正面に1つずつ、2つの導波管を含み得る、頭部搭載可能フレームを伴う、頭部ユニットを有してもよい。導波管は、実世界オブジェクトからの周囲光が、導波管を通して透過し得、ユーザに実世界オブジェクトが見え得るように、透明であり得る。各導波管は、プロジェクタから投影された光をユーザの個別の眼に透過させ得る。投影された光は、画像を眼の網膜上に形成し得る。眼の網膜は、したがって、周囲光および投影された光を受光する。ユーザには、同時に、実世界オブジェクトと、投影された光によって作成される、1つまたはそれを上回る仮想オブジェクトとが見え得る。いくつかの実施形態では、XRデバイスは、ユーザの周囲の実世界オブジェクトを検出する、センサを有してもよい。これらのセンサは、例えば、実世界オブジェクトの場所を識別するために処理され得る、画像を捕捉する、カメラであってもよい。
【0211】
いくつかの実施形態では、XRシステムは、仮想コンテンツを世界座標フレーム内で結び付けることとは対照的に、座標フレームを仮想コンテンツに割り当ててもよい。そのような構成は、ユーザのためにレンダリングされた場所にかかわらず、仮想コンテンツが記述されることを可能にするが、例えば、図14-20Cに関連して説明される、持続座標フレーム(PCF)等のより持続するフレーム位置に結び付けられ、規定された場所にレンダリングされてもよい。オブジェクトの場所が変化すると、XRデバイスは、環境マップの変化を検出し、実世界オブジェクトに対するユーザによって装着される頭部ユニットの移動を決定してもよい。
【0212】
図8は、いくつかの実施形態による、XRシステム10によって物理的環境内にレンダリングされるような仮想コンテンツを体験するユーザを図示する。XRシステムは、第1のユーザ14.1によって装着される、第1のXRデバイス12.1と、ネットワーク18と、サーバ20とを含んでもよい。ユーザ14.1は、テーブル16の形態における実オブジェクトを伴う、物理的環境内に存在する。
【0213】
図示される実施例では、第1のXRデバイス12.1は、頭部ユニット22と、ベルトパック24と、ケーブル接続26とを含む。第1のユーザ14.1は、頭部ユニット22をその頭部に、頭部ユニット22から遠隔のベルトパック24をその腰部上に固着させる。ケーブル接続26は、頭部ユニット22をベルトパック24に接続する。頭部ユニット22は、第1のユーザ14.1にテーブル16等の実オブジェクトが見えることを可能にしたまま、仮想オブジェクトまたは複数のオブジェクトを第1のユーザ14.1に表示するために使用される、技術を含む。ベルトパック24は、主に、第1のXRデバイス12.1の処理および通信能力を含む。いくつかの実施形態では、処理および通信能力は、ベルトパック24が、除去され得る、またはリュック等の別のデバイス内に位置し得るように、全体的または部分的に、頭部ユニット22内に常駐してもよい。
【0214】
図示される実施例では、ベルトパック24は、無線接続を介して、ネットワーク18に接続される。サーバ20は、ネットワーク18に接続され、ローカルコンテンツを表すデータを保持する。ベルトパック24は、ローカルコンテンツを表すデータをサーバ20からネットワーク18を介してダウンロードする。ベルトパック24は、ケーブル接続26を介して、データを頭部ユニット22に提供する。頭部ユニット22は、光源、例えば、レーザ光源または発光ダイオード(LED)光源と、光を誘導する、導波管とを有する、ディスプレイを含んでもよい。
【0215】
いくつかの実施形態では、第1のユーザ14.1は、頭部ユニット22をその頭部に、ベルトパック24をその腰部に搭載してもよい。ベルトパック24は、仮想コンテンツを表す画像データをネットワーク18を経由してサーバ20からダウンロードしてもよい。第1のユーザ14.1には、頭部ユニット22のディスプレイを通して、テーブル16が見え得る。頭部ユニット22の一部を形成する、プロジェクタは、画像データをベルトパック24から受信し、画像データに基づいて、光を生成してもよい。光は、頭部ユニット22のディスプレイの一部を形成する導波管のうちの1つまたはそれを上回るものを通して進行してもよい。光は、次いで、導波管から出射し、第1のユーザ14.1の眼の網膜上に伝搬してもよい。プロジェクタは、第1のユーザ14.1の眼の網膜上に複製される、パターンにおいて光を生成してもよい。第1のユーザ14.1の眼の網膜上に当たる光は、第1のユーザ14.1が画像を導波管の背後の事前に選択された深度において知覚するように、選択された被写界深度を有してもよい。加えて、第1のユーザ14.1の両眼は、第1のユーザ14.1の脳が3次元画像または複数の画像を頭部ユニット22からの選択された距離において知覚するように、若干異なる画像を受信してもよい。図示される実施例では、第1のユーザ14.1は、仮想コンテンツ28をテーブル16の上方において知覚する。仮想コンテンツ28および第1のユーザ14.1からのその場所および距離の割合は、仮想コンテンツ28を表すデータと、仮想コンテンツ28を第1のユーザ14.1に表示するために使用される、種々の座標フレームとによって決定される。
【0216】
図示される実施例では、仮想コンテンツ28は、図面の視点から不可視であって、第1のXRデバイス12.1の使用を通して第1のユーザ14.1に可視である。仮想コンテンツ28は、最初に、視覚データ内のデータ構造およびベルトパック24内のアルゴリズムとして常駐し得る。データ構造は、次いで、頭部ユニット22のプロジェクタがデータ構造に基づいて光を生成するとき、光として露見し得る。仮想コンテンツ28は、第1のユーザ14.1の正面の3次元空間内に存在しないが、仮想コンテンツ28は、依然として、頭部ユニット22の装着者が知覚する内容の例証のために、3次元空間内の図1において表されることを理解されたい。3次元空間内のコンピュータデータの可視化は、1人またはそれを上回るユーザによって知覚されるレンダリングを促進するデータ構造が、ベルトパック24内のデータ構造の中で相互に関連する方法を図示するために、本説明において使用され得る。
【0217】
図9は、いくつかの実施形態による、第1のXRデバイス12.1のコンポーネントを図示する。第1のXRデバイス12.1は、頭部ユニット22と、例えば、レンダリングエンジン30と、種々の座標系32と、種々の原点および目的地座標フレーム34と、種々の原点/目的地座標フレーム変換器36とを含む、視覚データおよびアルゴリズムの一部を形成する、種々のコンポーネントとを含んでもよい。種々の座標系は、XRデバイスの固有性質に基づいてもよい、または本明細書に説明されるような持続姿勢または持続座標系等の他の情報を参照することによって決定されてもよい。
【0218】
頭部ユニット22は、頭部搭載可能フレーム40と、ディスプレイシステム42と、実オブジェクト検出カメラ44と、移動追跡カメラ46と、慣性測定ユニット48とを含んでもよい。
【0219】
頭部搭載可能フレーム40は、図8における第1のユーザ14.1の頭部に固着可能である、形状を有してもよい。ディスプレイシステム42、実オブジェクト検出カメラ44、移動追跡カメラ46、および慣性測定ユニット48は、頭部搭載可能フレーム40に搭載され、したがって、頭部搭載可能フレーム40とともに移動し得る。
【0220】
座標系32は、ローカルデータシステム52と、世界フレームシステム54と、頭部フレームシステム56と、カメラフレームシステム58とを含んでもよい。
【0221】
ローカルデータシステム52は、データチャネル62と、ローカルフレーム決定ルーチン64と、ローカルフレーム記憶命令66とを含んでもよい。データチャネル62は、内部ソフトウェアルーチン、外部ケーブルまたは無線周波数受信機等のハードウェアコンポーネント、または開放されるポート等のハイブリッドコンポーネントであってもよい。データチャネル62は、仮想コンテンツを表す画像データ68を受信するように構成されてもよい。
【0222】
ローカルフレーム決定ルーチン64は、データチャネル62に接続されてもよい。ローカルフレーム決定ルーチン64は、ローカル座標フレーム70を決定するように構成されてもよい。いくつかの実施形態では、ローカルフレーム決定ルーチンは、実世界オブジェクトまたは実世界場所に基づいて、ローカル座標フレームを決定してもよい。いくつかの実施形態では、ローカル座標フレームは、ブラウザウィンドウの底部縁に対する上部縁、キャラクタの頭または足、仮想コンテンツを包囲する、プリズムまたは境界ボックスの外面上のノード、または仮想コンテンツの対面方向およびそれを用いて仮想コンテンツを設置すべき場所(例えば、設置ノードまたはPCFノード等のノード)を定義する、座標フレームを設置するための任意の他の好適な場所等に基づいてもよい。
【0223】
ローカルフレーム記憶命令66は、ローカルフレーム決定ルーチン64に接続されてもよい。当業者は、ソフトウェアモジュールおよびルーチンが、サブルーチン、コール等を通して、相互に「接続」されることを理解するであろう。ローカルフレーム記憶命令66は、ローカル座標フレーム70をローカル座標フレーム72として原点および目的地座標フレーム34内に記憶してもよい。いくつかの実施形態では、原点および目的地座標フレーム34は、仮想コンテンツがセッション間で持続するために、操作または変換され得る、1つまたはそれを上回る座標フレームであってもよい。いくつかの実施形態では、セッションは、XRデバイスのブートアップとシャットダウンとの間の時間周期であってもよい。2つのセッションは、単一XRデバイスに関する2回の始動およびシャットダウン周期であってもよい、または2つの異なるXRデバイスに関する始動およびシャットダウンであってもよい。
【0224】
いくつかの実施形態では、原点および目的地座標フレーム34は、第1のユーザのXRデバイスおよび第2のユーザのXRデバイスが共通場所を認識するために要求される1つまたはそれを上回る変換の際に関わる座標フレームであってもよい。いくつかの実施形態では、目的地座標フレームは、第1および第2のユーザが同一場所における仮想コンテンツを視認するために、標的座標フレームに適用される一連の算出および変換の出力であってもよい。
【0225】
レンダリングエンジン30は、データチャネル62に接続されてもよい。レンダリングエンジン30は、レンダリングエンジン30が、少なくとも部分的に、画像データ68に基づいて、仮想コンテンツをレンダリングし得るように、画像データ68をデータチャネル62から受信してもよい。
【0226】
ディスプレイシステム42は、レンダリングエンジン30に接続されてもよい。ディスプレイシステム42は、画像データ68を可視光に変換する、コンポーネントを含んでもよい。可視光は、眼毎に1つの2つのパターンを形成してもよい。可視光は、図8における第1のユーザ14.1の眼に入射し得、第1のユーザ14.1の眼の網膜上で検出され得る。
【0227】
実オブジェクト検出カメラ44は、画像を頭部搭載可能フレーム40の異なる側から捕捉し得る、1つまたはそれを上回るカメラを含んでもよい。移動追跡カメラ46は、画像を頭部搭載可能フレーム40の側面上で捕捉する、1つまたはそれを上回るカメラを含んでもよい。1つまたはそれを上回るカメラの1つのセットが、実オブジェクト検出カメラ44および移動追跡カメラ46を表す、1つまたはそれを上回るカメラの2つのセットの代わりに使用されてもよい。いくつかの実施形態では、カメラ44、46は、画像を捕捉してもよい。上記に説明されるように、これらのカメラは、追跡マップを構築するために使用される、データを収集してもよい。
【0228】
慣性測定ユニット48は、頭部ユニット22の移動を検出するために使用される、いくつかのデバイスを含んでもよい。慣性測定ユニット48は、重力センサと、1つまたはそれを上回る加速度計と、1つまたはそれを上回るジャイロスコープとを含んでもよい。慣性測定ユニット48のセンサは、組み合わせて、少なくとも3つの直交方向および約少なくとも3つの直交軸において、頭部ユニット22の移動を追跡する。
【0229】
図示される実施例では、世界フレームシステム54は、世界表面決定ルーチン78と、世界フレーム決定ルーチン80と、世界フレーム記憶命令82とを含む。世界表面決定ルーチン78は、実オブジェクト検出カメラ44に接続される。世界表面決定ルーチン78は、実オブジェクト検出カメラ44によって捕捉された画像に基づいて、画像および/またはキーフレームを受信し、画像を処理し、画像内の表面を識別する。深度センサ(図示せず)は、表面までの距離を決定してもよい。表面は、したがって、そのサイズ、形状、および実オブジェクト検出カメラからの距離を含む、3次元におけるデータによって表される。
【0230】
いくつかの実施形態では、世界座標フレーム84は、頭部姿勢セッションの初期化時の原点に基づいてもよい。いくつかの実施形態では、世界座標フレームは、デバイスがブートアップされた場所に位置してもよい、またはブートセッションの間に頭部姿勢が喪失された場合、新しいある場所であり得る。いくつかの実施形態では、世界座標フレームは、頭部姿勢セッションの開始時の原点であってもよい。
【0231】
図示される実施例では、世界フレーム決定ルーチン80は、世界表面決定ルーチン78に接続され、世界表面決定ルーチン78によって決定されるような表面の場所に基づいて、世界座標フレーム84を決定する。世界フレーム記憶命令82は、世界フレーム決定ルーチン80に接続され、世界座標フレーム84を世界フレーム決定ルーチン80から受信する。世界フレーム記憶命令82は、世界座標フレーム84を世界座標フレーム86として原点および目的地座標フレーム34内に記憶する。
【0232】
頭部フレームシステム56は、頭部フレーム決定ルーチン90と、頭部フレーム記憶命令92とを含んでもよい。頭部フレーム決定ルーチン90は、移動追跡カメラ46および慣性測定ユニット48に接続されてもよい。頭部フレーム決定ルーチン90は、移動追跡カメラ46および慣性測定ユニット48からのデータを使用して、頭部座標フレーム94を計算してもよい。例えば、慣性測定ユニット48は、頭部ユニット22に対する重力の方向を決定する、重力センサを有してもよい。移動追跡カメラ46は、頭部フレーム決定ルーチン90によって使用され、頭部座標フレーム94を精緻化する、画像を継続的に捕捉してもよい。頭部ユニット22は、図8における第1のユーザ14.1がその頭部を移動させると移動する。移動追跡カメラ46および慣性測定ユニット48は、頭部フレーム決定ルーチン90が頭部座標フレーム94を更新し得るように、データを頭部フレーム決定ルーチン90に持続的に提供してもよい。
【0233】
頭部フレーム記憶命令92は、頭部フレーム決定ルーチン90に接続され、頭部座標フレーム94を頭部フレーム決定ルーチン90から受信してもよい。頭部フレーム記憶命令92は、頭部座標フレーム94を原点および目的地座標フレーム34間の頭部座標フレーム96として記憶してもよい。頭部フレーム記憶命令92は、頭部フレーム決定ルーチン90が頭部座標フレーム94を再計算すると、更新された頭部座標フレーム94を頭部座標フレーム96として繰り返し記憶してもよい。いくつかの実施形態では、頭部座標フレームは、ローカル座標フレーム72に対するウェアラブルXRデバイス12.1の場所であってもよい。
【0234】
カメラフレームシステム58は、カメラ固有性質98を含んでもよい。カメラ固有性質98は、その設計および製造の特徴である、頭部ユニット22の寸法を含んでもよい。カメラ固有性質98は、原点および目的地座標フレーム34内に記憶される、カメラ座標フレーム100を計算するために使用されてもよい。
【0235】
いくつかの実施形態では、カメラ座標フレーム100は、図8における第1のユーザ14.1の左眼の全ての瞳孔位置を含んでもよい。左眼が、左から右または上下に移動すると、左眼の瞳孔位置は、カメラ座標フレーム100内に位置する。加えて、右眼の瞳孔位置は、右眼のためのカメラ座標フレーム100内に位置する。いくつかの実施形態では、カメラ座標フレーム100は、画像が撮影されると、ローカル座標フレームに対するカメラの場所を含んでもよい。
【0236】
原点/目的地座標フレーム変換器36は、ローカル/世界座標変換器104と、世界/頭部座標変換器106と、頭部/カメラ座標変換器108とを含んでもよい。ローカル/世界座標変換器104は、ローカル座標フレーム72を受信し、ローカル座標フレーム72を世界座標フレーム86に変換してもよい。世界座標フレーム86へのローカル座標フレーム72の変換は、世界座標フレーム86内で世界座標フレーム110に変換されるローカル座標フレームとして表され得る。
【0237】
世界/頭部座標変換器106は、世界座標フレーム86から頭部座標フレーム96に変換してもよい。世界/頭部座標変換器106は、世界座標フレーム110に変換されるローカル座標フレームを頭部座標フレーム96に変換してもよい。変換は、頭部座標フレーム96内の頭部座標フレーム112に変換されるローカル座標フレームとして表され得る。
【0238】
頭部/カメラ座標変換器108は、頭部座標フレーム96からカメラ座標フレーム100に変換してもよい。頭部/カメラ座標変換器108は、頭部座標フレーム112に変換されるローカル座標フレームをカメラ座標フレーム100内のカメラ座標フレーム114に変換されるローカル座標フレームに変換してもよい。カメラ座標フレーム114に変換されるローカル座標フレームは、レンダリングエンジン30の中に取り込まれてもよい。レンダリングエンジン30は、カメラ座標フレーム114に変換されるローカル座標フレームに基づいて、ローカルコンテンツ28を表す画像データ68をレンダリングしてもよい。
【0239】
図10は、種々の原点および目的地座標フレーム34の空間表現である。ローカル座標フレーム72、世界座標フレーム86、頭部座標フレーム96、およびカメラ座標フレーム100が、図内に表される。いくつかの実施形態では、XRコンテンツ28と関連付けられるローカル座標フレームは、仮想コンテンツが実世界内に設置され、したがって、仮想コンテンツがユーザによって視認され得るとき、ローカルおよび/または世界座標フレームおよび/またはPCFに対する位置および回転を有し得る(例えば、ノードおよび対面方向を提供し得る)。各カメラは、片眼の全ての瞳孔位置を包含する、その独自のカメラ座標フレーム100を有してもよい。参照番号104Aおよび106Aは、それぞれ、図9におけるローカル/世界座標変換器104、世界/頭部座標変換器106、および頭部/カメラ座標変換器108によって行われる、変換を表す。
【0240】
図11は、いくつかの実施形態による、頭部座標フレームからカメラ座標フレームに変換するためのカメラレンダリングプロトコルを描写する。図示される実施例では、片眼に関する瞳孔は、位置AからBに移動する。定常として現れることが意図される仮想オブジェクトは、瞳孔の位置に応じて、2つの位置AまたはBのうちの1つにおける深度面上に投影されるであろう(カメラが瞳孔ベースの座標フレームとして使用するように構成されると仮定して)。その結果、頭部座標フレームに変換される瞳孔座標フレームを使用することは、眼が位置Aから位置Bに移動するにつれて、ジッタを定常仮想オブジェクト内に生じさせるであろう。本状況は、ビュー依存ディスプレイまたは投影と称される。
【0241】
図12に描写されるように、カメラ座標フレーム(例えば、CR)が、位置付けられ、全ての瞳孔位置を包含するが、オブジェクト投影は、ここでは、瞳孔位置AおよびBにかかわらず、一貫するであろう。頭部座標フレームは、CRフレームに変換し、これは、ビュー独立ディスプレイまたは投影と称される。画像再投影が、仮想コンテンツに適用され、眼位置の変化を考慮してもよいが、しかしながら、レンダリングは、依然として、同一位置にあるため、ジッタは、最小限にされる。
【0242】
図13は、ディスプレイシステム42をさらに詳細に図示する。ディスプレイシステム42は、レンダリングエンジン30に接続され、視覚データおよびアルゴリズムの一部を形成する、立体視分析器144を含む。
【0243】
ディスプレイシステム42はさらに、左および右プロジェクタ166Aおよび166Bと、左および右導波管170Aおよび170Bとを含む。左および右プロジェクタ166Aおよび166Bは、電力供給源に接続される。各プロジェクタ166Aおよび166Bは、画像データが個別のプロジェクタ166Aまたは166Bに提供されるための個別の入力を有する。個別のプロジェクタ166Aまたは166Bは、給電されると、2次元パターンにおける光を生成し、光をそこから発出する。左および右導波管170Aおよび170Bは、それぞれ、光を左および右プロジェクタ166Aおよび166Bから受光するように位置付けられる。左および右導波管170Aおよび170Bは、透明導波管である。
【0244】
使用時、ユーザは、頭部搭載可能フレーム40をその頭部に搭載する。頭部搭載可能フレーム40のコンポーネントは、例えば、ユーザの頭部の背面の周囲に巻着する、ストラップ(図示せず)を含んでもよい。左および右導波管170Aおよび170Bは、次いで、ユーザの左および右眼220Aおよび220Bの正面に位置する。
【0245】
レンダリングエンジン30は、それが受信する画像データを立体視分析器144の中に取り込む。画像データは、図8におけるローカルコンテンツ28の3次元画像データである。画像データは、複数の仮想平面上に投影される。立体視分析器144は、画像データを分析し、各深度面上への投影のために、画像データに基づいて、左および右画像データセットを決定する。左および右画像データセットは、3次元において投影され、ユーザに深度の知覚を与える、2次元画像を表す、データセットである。
【0246】
立体視分析器144は、左および右画像データセットを左および右プロジェクタ166Aおよび166Bに取り込む。左および右プロジェクタ166Aおよび166Bは、次いで、左および右光パターンを作成する。ディスプレイシステム42のコンポーネントは、プレーンビューに示されるが、左および右パターンは、正面立面図に示されるとき、2次元パターンであることを理解されたい。各光パターンは、複数のピクセルを含む。例証目的のために、ピクセルのうちの2つからの光線224Aおよび226Aが、左プロジェクタ166Aから出射し、左導波管170Aに入射するように示される。光線224Aおよび226Aは、左導波管170Aの側から反射する。光線224Aおよび226Aは、左導波管170A内で左から右に内部反射を通して伝搬することが示されるが、光線224Aおよび226Aはまた、屈折性および反射性システムを使用して、紙面に向かう方向にも伝搬することを理解されたい。
【0247】
光線224Aおよび226Aは、左光導波管170Aから瞳孔228Aを通して出射し、次いで、左眼220Aの瞳孔230Aを通して左眼220Aに入射する。光線224Aおよび226Aは、次いで、左眼220Aの網膜232A上に当たる。このように、左光パターンは、左眼220Aの網膜232A上に当たる。ユーザは、網膜232A上に形成されるピクセルが、ユーザが左眼220Aに対向する左導波管170Aの側上のある距離にあるように知覚する、ピクセル234Aおよび236Aであるという知覚を与えられる。深度知覚は、光の焦点距離を操作することによって作成される。
【0248】
同様に、立体視分析器144は、右画像データセットを右プロジェクタ166Bに取り込む。右プロジェクタ166Bは、右光パターンを伝送し、これは、光線224Bおよび226Bの形態におけるピクセルによって表される。光線224Bおよび226Bは、右導波管170B内で反射し、瞳孔228Bを通して出射する。光線224Bおよび226Bは、次いで、右眼220Bの瞳孔230Bを通して入射し、右眼220Bの網膜232B上に当たる。光線224Bおよび226Bのピクセルは、右導波管170Bの背後のピクセル134Bおよび236Bとして知覚される。
【0249】
網膜232Aおよび232B上に作成されたパターンは、左および右画像として個々に知覚される。左および右画像は、立体視分析器144の機能に起因して、相互に若干異なる。左および右画像は、ユーザの脳内で3次元レンダリングとして知覚される。
【0250】
述べられたように、左および右導波管170Aおよび170Bは、透明である。眼220Aおよび220Bに対向する左および右導波管170Aおよび170B側上のテーブル16等の実在のオブジェクトからの光は、左および右導波管170Aおよび170Bを通して投影され、網膜232Aおよび232B上に当たることができる。
【0251】
持続座標フレーム(PCF)
【0252】
本明細書に説明されるものは、共有空間内のユーザインスタンスを横断して空間存続を提供するための方法および装置である。空間存続がなければ、セッション内にユーザによって物理的世界内に設置された仮想コンテンツは、異なるセッション内のユーザのビュー内に存在し得ない、または誤設置され得る。空間存続がなければ、1人のユーザによって物理的世界内に設置された仮想コンテンツは、第2のユーザが第1のユーザと同一物理的空間の体験を共有するように意図する場合でも、第2のユーザのビュー内に、存在し得ない、または場所がずれ得る。
【0253】
本発明者らは、空間存続が持続座標フレーム(PCF)を通して提供され得ることを認識および理解している。PCFは、物理的世界内で認識される特徴(例えば、角、縁)を表す、1つまたはそれを上回る点に基づいて定義されてもよい。特徴は、それらがユーザインスタンスからXRシステムの別のユーザインスタンスと同一である可能性が高いように選択されてもよい。
【0254】
さらに、算出された追跡経路(例えば、カメラ軌道)を実際の追跡経路から逸脱させ得る、追跡の間のドリフトは、仮想コンテンツの場所を、追跡マップのみに基づく、ローカルマップに対してレンダリングされるとき、場所からずれて現れさせ得る。空間のための追跡マップは、XRデバイスが経時的に場面のさらなる情報を収集するにつれて、精緻化され、ドリフトを補正してもよい。しかしながら、仮想コンテンツが、マップ精緻化の前に、実オブジェクト上に設置され、追跡マップから導出されるデバイスの世界座標フレームに対して保存される場合、仮想コンテンツは、実オブジェクトがマップ精緻化の間に移動したかのように変位されて現れ得る。PCFは、PCFが、特徴に基づいて定義され、特徴がマップ精緻化の間に移動するにつれて、更新されるため、マップ精緻化に従って更新されてもよい。
【0255】
いくつかの実施形態では、持続空間情報は、ユーザ間で、およびアプリケーションを含む、分散型コンポーネント間で容易に共有され得る、方法で表されてもよい。物理的世界についての情報は、例えば、持続座標フレーム(PCF)として表されてもよい。PCFは、物理的世界内で認識される特徴を表す、1つまたはそれを上回る点に基づいて、定義されてもよい。特徴は、それらがXRシステムのユーザセッション毎に同一である可能性が高いように選択されてもよい。PCFは、それらが効率的に処理および転送され得るように、疎らに存在し、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、実空間内の1つまたはそれを上回る座標系に基づいて、動的マップを作成し、疎マップにわたって持続座標フレーム(PCF)を生成するステップを含んでもよく、これは、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。これらの能力は、1つまたはそれを上回るXRデバイスによって作成された複数のマップをランク付けおよびマージするための技法によってサポートされてもよい。持続空間情報はまた、算出上効率的方法において、1つまたはそれを上回るXRデバイスのそれぞれ上の頭部姿勢を迅速に復元およびリセットすることを可能にし得る。
【0256】
PCFは、マップ座標系に対する平行移動および回転を伴う、6自由度を備えてもよい。PCFは、ローカルおよび/または遠隔記憶媒体内に記憶されてもよい。PCFの平行移動および回転は、例えば、記憶場所に応じて、マップ座標系に対して算出されてもよい。例えば、デバイスによってローカルで使用されるPCFは、デバイスの世界座標フレームに対する平行移動および回転を有してもよい。クラウド内のPCFは、規準マップの規準座標フレームに対する平行移動および回転を有してもよい。
【0257】
PCFは、それらが効率的に処理および転送され得るように、物理的世界の疎表現を提供し、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、実空間内の1つまたはそれを上回る座標系に基づいて、動的マップを作成し、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされ得る、疎マップにわたる持続座標フレーム(PCF)を生成することを含んでもよい。
【0258】
図14は、いくつかの実施形態による、持続座標フレーム(PCF)の作成およびXRコンテンツとPCFの結付を図示する、ブロック図である。各ブロックは、コンピュータメモリ内に記憶されたデジタル情報を表し得る。アプリケーション1180の場合、データは、コンピュータ実行可能命令を表し得る。仮想コンテンツ1170の場合、デジタル情報は、例えば、アプリケーション1180によって規定されるような仮想オブジェクトを定義し得る。他のボックスの場合、デジタル情報は、物理的世界のいくつかの側面を特性評価し得る。
【0259】
図示される実施形態では、1つまたはそれを上回るPCFは、ウェアラブルデバイス上のセンサを用いて捕捉された画像から作成される。図14の実施形態では、センサは、視覚的画像カメラである。これらのカメラは、追跡マップを形成するために使用される、同一カメラであってもよい。故に、図14によって提案される処理のうちのいくつかは、追跡マップを更新することの一部として実施されてもよい。しかしながら、図14は、存続を提供する情報が追跡マップに加えて生成されることを図示する。
【0260】
3D PCFを導出するために、立体視画像分析を有効にする構成においてウェアラブルデバイスに搭載される、2つのカメラからの2つの画像1110は、ともに処理される。図14は、画像1および画像2を図示し、それぞれ、カメラのうちの1つから導出される。各カメラからの単一画像が、便宜上、図示される。しかしながら、各カメラは、画像フレームのストリームを出力してもよく、図14に図示される処理は、ストリーム内の複数の画像フレームのために実施されてもよい。
【0261】
故に、画像1および画像2はそれぞれ、画像フレームのシーケンス内の1つのフレームであってもよい。図14に描写されるような処理は、そこから持続空間情報を形成する、好適な画像を提供する特徴点を含有する画像フレームが処理されるまで、シーケンスにおいて連続画像フレーム上で繰り返されてもよい。代替として、または加えて、図14の処理は、ユーザがもはや以前に識別されたPCFに十分に近接しておらず、物理的世界に対する位置を決定するためにそのPCFを確実に使用することができないほど、ユーザが移動するにつれて、繰り返され得る。例えば、XRシステムは、ユーザのために、現在のPCFを維持してもよい。その距離が、閾値を超えると、本システムは、ユーザの現在の場所において入手された画像フレームを使用して図14のプロセスに従って生成され得る、ユーザにより近い新しい現在のPCFに切り替えてもよい。
【0262】
単一PCFを生成するときでも、画像フレームのストリームが、安定する可能性が高く、画像フレームに描写される物理的世界の領域の近傍におけるデバイスによって容易に識別され得る、物理的世界内のコンテンツを描写する画像フレームを識別するように処理されてもよい。図14の実施形態では、本処理は、画像内の特徴1120の識別から開始する。特徴は、例えば、オブジェクトの角に対応し得る、例えば、閾値を上回る画像内の勾配の場所または他の特性を見出すことによって、識別されてもよい。図示される実施形態では、特徴は、点であるが、縁等の他の認識可能特徴も、代替として、または加えて、使用されてもよい。
【0263】
図示される実施形態では、固定数Nの特徴1120が、さらなる処理のために選択される。それらの特徴点は、勾配の大きさまたは他の特徴点との近接度等の1つまたはそれを上回る基準に基づいて選択されてもよい。代替として、または加えて、特徴点は、特徴点が持続であることを示唆する、特性に基づいて等、ヒューリスティックに選択されてもよい。例えば、ヒューリスティックは、窓またはドアまたは大型家具の角に対応する可能性が高い、特徴点の特性に基づいて定義されてもよい。そのようなヒューリスティックは、特徴点自体およびそれを囲繞するものを考慮してもよい。具体的実施例として、画像あたり特徴点の数は、200等の100~500または150~250であってもよい。
【0264】
選択された特徴点の数にかかわらず、記述子1130が、特徴点に関して算出されてもよい。本実施例では、記述子は、選択された特徴点毎に算出されるが、記述子は、特徴点の群に関して、または特徴点のサブセットに関して、または画像内の全ての特徴に関して算出されてもよい。記述子は、物理的世界内の同一オブジェクトを表す特徴点が類似記述子を割り当てられるように、特徴点を特性評価する。記述子は、1つのマップが別のマップに対して位置特定されるときに生じ得るような2つのフレームの整合を促進し得る。2つの画像の特徴点間の距離を最小限にする、フレームの相対的配向を検索するのではなく、2つのフレームの初期整合は、類似記述子を伴う特徴点を識別することによって行われてもよい。画像フレームの整合は、類似記述子を伴う点を整合させることに基づいてもよく、これは、画像内の全ての特徴点の整合を算出する、より少ない処理を伴い得る。
【0265】
記述子は、記述子と特徴点のマッピング、またはいくつかの実施形態では、特徴点の周囲の画像のパッチのマッピングとして算出されてもよい。記述子は、数値量であってもよい。
【0266】
図14の実施例では、記述子1130は、各画像フレーム内の特徴点毎に算出される。記述子および/または特徴点および/または画像自体に基づいて、画像フレームは、キーフレーム1140として識別されてもよい。図示される実施形態では、キーフレームは、次いで、さらなる処理のために選択される、ある基準を満たす、画像フレームである。追跡マップを作成する際、例えば、有意義な情報をマップに追加する、画像フレームが、マップの中に統合される、キーフレームとして選択されてもよい。他方では、それにわたって画像フレームがすでにマップの中に統合されている、領域に実質的に重複する、画像フレームは、それらがキーフレームとならないように破棄されてもよい。代替として、または加えて、キーフレームは、画像フレーム内の特徴点の数および/またはタイプに基づいて選択されてもよい。図14の実施形態では、追跡マップ内への含有のために選択されたキーフレーム1150はまた、PCFを決定するためのキーフレームとして処理されてもよいが、PCFの生成のためのキーフレームを選択するための異なるまたは付加的基準が、使用されてもよい。
【0267】
図14は、キーフレームがさらなる処理のために使用されることを示すが、画像から入手された情報は、他の形態で処理されてもよい。例えば、キーリグ内等の特徴点が、代替として、または加えて、処理されてもよい。さらに、キーフレームは、単一画像フレームから導出されるように説明されるが、キーフレームと入手された画像フレームとの間の1対1の関係が存在する必要であるわけではない。キーフレームは、例えば、複数の画像内に現れる特徴のみがキーフレーム内に留保されるように、画像フレームをともにスティッチングまたは集約すること等によって、複数の画像フレームから入手されてもよい。
【0268】
キーフレームは、画像情報および/または画像情報と関連付けられるメタデータを含んでもよい。いくつかの実施形態では、カメラ44、46(図9)によって捕捉された画像が、1つまたはそれを上回るキーフレーム(例えば、キーフレーム1、2)の中に算出されてもよい。いくつかの実施形態では、キーフレームは、カメラ姿勢を含んでもよい。いくつかの実施形態では、キーフレームは、カメラ姿勢において捕捉された1つまたはそれを上回るカメラ画像を含んでもよい。いくつかの実施形態では、XRシステムは、カメラ姿勢において捕捉されたカメラ画像の一部を有用ではないと決定し、したがって、その部分をキーフレーム内に含まなくてもよい。したがって、キーフレームを使用して、新しい画像と場面のより早期の知識を整合させることは、XRシステムの算出リソースの使用を低減させる。いくつかの実施形態では、キーフレームは、ある方向/角度を伴う場所における画像および/または画像データを含んでもよい。いくつかの実施形態では、キーフレームは、そこから1つまたはそれを上回るマップ点が観察され得る、場所および方向を含んでもよい。いくつかの実施形態では、キーフレームは、あるIDを伴う、座標フレームを含んでもよい。
【0269】
キーフレーム1140のいくつかまたは全てが、キーフレームのための持続姿勢1150の生成等のさらなる処理のために選択されてもよい。選択は、画像フレーム内の特徴点の全てまたはサブセットの特性に基づいてもよい。それらの特性は、記述子、特徴、および/または画像フレーム自体を処理することから決定されてもよい。具体的実施例として、選択は、持続オブジェクトに関連する可能性が高いと識別された特徴点のクラスタに基づいてもよい。
【0270】
各キーフレームは、キーフレームが入手された、カメラの姿勢と関連付けられる。持続姿勢に処理するために選択されたキーフレームに関して、その姿勢情報は、入手時および/または入手の場所におけるWi-Fiフィンガプリントおよび/またはGPS座標等のキーフレームについての他のメタデータとともに保存されてもよい。いくつかの実施形態では、メタデータ、例えば、GPS座標は、個々に、または組み合わせて、位置特定プロセスの一部として使用されてもよい。
【0271】
持続姿勢は、デバイスがそれ自体を物理的世界についての以前に入手された情報に対して配向するために使用し得る、情報源である。例えば、そこから持続姿勢が作成された、キーフレームが、物理的世界のマップの中に組み込まれる場合、デバイスは、持続姿勢と関連付けられる、キーフレーム内の十分な数の特徴点を使用して、それ自体をその持続姿勢に対して配向し得る。デバイスは、その周囲の得られた現在の画像と持続姿勢を整合させ得る。本整合は、現在の画像と、持続姿勢を生じさせた画像1110、特徴1120、および/または記述子1130、またはその画像またはそれらの特徴または記述子の任意のサブセットのマッチングに基づいてもよい。いくつかの実施形態では、持続姿勢にマッチされた現在の画像フレームは、デバイスの追跡マップの中に組み込まれている、別のキーフレームであってもよい。
【0272】
持続姿勢についての情報は、同一または異なるデバイス上で実行され得る、複数のアプリケーション間の共有を促進する、フォーマットで記憶されてもよい。図14の実施例では、持続姿勢のいくつかまたは全てが、持続座標フレーム(PCF)1160として反映され得る。持続姿勢のように、PCFも、マップと関連付けられてもよく、デバイスがそのPCFに対するその配向を決定するために使用し得る、特徴のセットまたは他の情報を備えてもよい。PCFは、その位置をPCFに相関させることによって、デバイスがマップ内に反映される物理的世界内の任意のオブジェクトに対するその位置を決定し得るように、そのマップの原点に対するその変換を定義する、変換を含んでもよい。
【0273】
PCFが、物理的オブジェクトに対する場所を決定するための機構を提供するため、アプリケーション1180等のアプリケーションが、仮想コンテンツ1170のためのアンカとしての役割を果たす、1つまたはそれを上回るPCFに対する仮想オブジェクトの位置を定義し得る。図14は、例えば、アプリ1が、その仮想コンテンツ2とPCF1.2を関連付けていることを図示する。同様に、アプリ2は、その仮想コンテンツ3とPCF1.2を関連付けている。アプリ1はまた、その仮想コンテンツ1とPCF4.5を関連付けていることが示され、アプリ2は、その仮想コンテンツ4とPCF3を関連付けていることが示される。いくつかの実施形態では、PCF1.2が画像1および画像2に基づく方法と同様に、PCF3は、画像3(図示せず)に基づいてもよく、PCF4.5は、画像4および画像5(図示せず)に基づいてもよい。本仮想コンテンツをレンダリングするとき、デバイスは、1つまたはそれを上回る変換を適用し、デバイスのディスプレイに対する仮想コンテンツの場所および/または仮想コンテンツの所望の場所に対する物理的オブジェクトの場所等の情報を算出してもよい。PCFを基準として使用することは、そのような算出を簡略化し得る。
【0274】
いくつかの実施形態では、持続姿勢は、1つまたはそれを上回る関連付けられるキーフレームを有する、座標場所および/または方向であってもよい。いくつかの実施形態では、持続姿勢は、ユーザが、ある距離、例えば、3メートル進行した後、自動的に作成されてもよい。いくつかの実施形態では、持続姿勢は、位置特定の間、基準点として作用してもよい。いくつかの実施形態では、持続姿勢は、パス可能世界(例えば、パス可能世界モジュール538)内に記憶されてもよい。
【0275】
いくつかの実施形態では、新しいPCFは、隣接するPCF間で許容される、事前に定義された距離に基づいて決定されてもよい。いくつかの実施形態では、1つまたはそれを上回る持続姿勢は、ユーザが、所定の距離、例えば、5メートル進行すると、PCFの中に算出されてもよい。いくつかの実施形態では、PCFは、例えば、パス可能世界内において、1つまたはそれを上回る世界座標フレームおよび/または規準座標フレームと関連付けられてもよい。いくつかの実施形態では、PCFは、例えば、セキュリティ設定に応じて、ローカルおよび/または遠隔データベース内に記憶されてもよい。
【0276】
図15は、いくつかの実施形態による、持続座標フレームを確立および使用する方法4700を図示する。方法4700は、XRデバイスの1つまたはそれを上回るセンサを使用して、場面を中心として画像(例えば、図14における画像1および画像2)を捕捉すること(行為4702)から開始してもよい。複数のカメラが、使用されてもよく、1つのカメラが、例えば、ストリームにおいて、複数の画像を生成してもよい。
【0277】
方法4700は、着目点(例えば、図7におけるマップ点702、図14における特徴1120)を捕捉された画像から抽出すること(4704)と、抽出された着目点に関する記述子(例えば、図14における記述子1130)を生成すること(行為4706)と、記述子に基づいて、キーフレーム(例えば、キーフレーム1140)を生成すること(行為4708)とを含んでもよい。いくつかの実施形態では、本方法は、キーフレーム内の着目点を比較し、所定の量の着目点を共有する、対のキーフレームを形成してもよい。本方法は、個々の対のキーフレームを使用して、物理的世界の一部を再構築してもよい。物理的世界のマッピングされた部分は、3D特徴(例えば、図7におけるキーリグ704)として保存されてもよい。いくつかの実施形態では、対のキーフレームの選択された部分は、3D特徴を構築するために使用されてもよい。いくつかの実施形態では、マッピングの結果は、選択的に保存されてもよい。3D特徴を構築するために使用されない、キーフレームは、例えば、キーフレームの姿勢間に共分散行列を伴う、キーフレーム間の距離を表す、姿勢を通して、3D特徴と関連付けられてもよい。いくつかの実施形態では、対のキーフレームは、構築される3D特徴のそれぞれ間の距離が、必要とされる算出の量および結果として生じるモデルの正確度のレベルを平衡させるように決定され得る、所定の距離内にあるように、3D特徴を構築するように選択されてもよい。そのようなアプローチは、XRシステムを用いた効率的および正確な算出のために好適なデータの量を伴う、物理的世界のモデルを提供することを可能にする。いくつかの実施形態では、2つの画像の共分散行列は、2つの画像の姿勢(例えば、6自由度)間の共分散を含んでもよい。
【0278】
方法4700は、キーフレームに基づいて持続姿勢を生成すること(行為4710)を含んでもよい。いくつかの実施形態では、本方法は、対のキーフレームから再構成された3D特徴に基づいて、持続姿勢を生成することを含んでもよい。いくつかの実施形態では、持続姿勢は、3D特徴に結び付けられてもよい。いくつかの実施形態では、持続姿勢は、3D特徴を構築するために使用される、キーフレームの姿勢を含んでもよい。いくつかの実施形態では、持続姿勢は、3D特徴を構築するために使用される、キーフレームの平均姿勢を含んでもよい。いくつかの実施形態では、持続姿勢は、近傍の持続姿勢の間の距離が、所定の値、例えば、1メートル~5メートルの範囲内、その間の任意の値、または任意の他の好適な値内であるように生成されてもよい。いくつかの実施形態では、近傍の持続姿勢間の距離は、近傍の持続姿勢の共分散行列によって表されてもよい。
【0279】
方法4700は、持続姿勢に基づいてPCFを生成すること(行為4712)を含んでもよい。いくつかの実施形態では、PCFは、3D特徴に結び付けられてもよい。いくつかの実施形態では、PCFは、1つまたはそれを上回る持続姿勢と関連付けられてもよい。いくつかの実施形態では、PCFは、関連付けられる持続姿勢のうちの1つの姿勢を含んでもよい。いくつかの実施形態では、PCFは、関連付けられる持続姿勢の姿勢の平均姿勢を含んでもよい。いくつかの実施形態では、PCFは、近傍のPCF間の距離が、所定の値、例えば、3メートル~10メートルの範囲、その間の任意の値、または任意の他の好適な値内にあるように生成されてもよい。いくつかの実施形態では、近傍のPCF間の距離は、近傍のPCFの共分散行列によって表されてもよい。いくつかの実施形態では、PCFは、XRアプリケーションが、モデル自体にアクセスせずに、PCFを通して、物理的世界のモデルにアクセスし得るように、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。
【0280】
方法4700は、XRデバイスによって表示されるための仮想オブジェクトの画像データとPCFのうちの少なくとも1つを関連付けること(行為4714)を含んでもよい。いくつかの実施形態では、本方法は、関連付けられるPCFに対する仮想オブジェクトの平行移動および配向を算出することを含んでもよい。仮想オブジェクトと仮想オブジェクトを設置するデバイスによって生成されたPCFを関連付けることは、必要とされないことを理解されたい。例えば、デバイスは、クラウド内の規準マップ内の保存されたPCFを読み出し、仮想オブジェクトと読み出されたPCFを関連付けてもよい。仮想オブジェクトは、PCFが経時的に調節されるにつれて、関連付けられるPCFとともに移動し得ることを理解されたい。
【0281】
図16は、いくつかの実施形態による、第1のXRデバイス12.1と、第2のXRデバイス12.2の視覚データおよびアルゴリズムと、サーバ20とを図示する。図16に図示されるコンポーネントは、本明細書に説明されるような持続姿勢、持続座標フレーム、追跡マップ、または規準マップ等の空間情報を生成、更新、および/または使用することと関連付けられる、動作のいくつかまたは全てを実施するように動作し得る。図示されないが、第1のXRデバイス12.1は、第2のXRデバイス12.2と同一に構成されてもよい。サーバ20は、マップ記憶ルーチン118と、規準マップ120と、マップ伝送機122と、マップマージアルゴリズム124とを有してもよい。
【0282】
第1のXRデバイス12.1と同一場面にあり得る、第2のXRデバイス12.2は、持続座標フレーム(PCF)統合ユニット1300と、仮想オブジェクトをレンダリングするために使用され得る画像データ68を生成する、アプリケーション1302と、フレーム埋込生成器308(図21参照)とを含んでもよい。いくつかの実施形態では、マップダウンロードシステム126、PCF識別システム128、マップ2、位置特定モジュール130、規準マップ組込器132、規準マップ133、およびマップ発行器136は、パス可能世界ユニット1304の中に群化されてもよい。PCF統合ユニット1300は、パス可能世界ユニット1304および第2のXRデバイス12.2の他のコンポーネントに接続され、PCFの読出、生成、使用、アップロード、およびダウンロードを可能にしてもよい。
【0283】
PCFを備える、マップは、変化する世界内のより多くの存続を有効にし得る。いくつかの実施形態では、例えば、画像のためのマッチング特徴を含む、追跡マップを位置特定することは、PCFによって構成されるマップから、持続コンテンツを表す特徴を選択することを含んでもよく、これは、高速マッチングおよび/または位置特定を有効にする。例えば、人々が場面の内外に移動し、ドア等のオブジェクトが場面に対して移動する、世界は、より少ない記憶空間および伝送レートを要求し、場面をマッピングするために個々のPCFおよび相互に対するその関係(例えば、PCFの統合されたコンステレーション)の使用を有効にする。
【0284】
いくつかの実施形態では、PCF統合ユニット1300は、第2のXRデバイス12.2の記憶ユニット上のデータ記憶内に以前に記憶されたPCF1306と、PCF追跡器1308と、持続姿勢入手器1310と、PCF確認器1312と、PCF生成システム1314と、座標フレーム計算機1316と、持続姿勢計算機1318と、追跡マップおよび持続姿勢変換器1320と、持続姿勢およびPCF変換器1322と、PCFおよび画像データ変換器1324とを含む、3つの変換器とを含んでもよい。
【0285】
いくつかの実施形態では、PCF追跡器1308は、アプリケーション1302によって選択可能である、オンプロンプトおよびオフプロンプトを有してもよい。アプリケーション1302は、第2のXRデバイス12.2のプロセッサによって実行可能であって、例えば、仮想コンテンツを表示してもよい。アプリケーション1302は、オンプロンプトを介して、PCF追跡器1308をオンに切り替える、コールを有してもよい。PCF追跡器1308は、PCF追跡器1308がオンに切り替えられると、PCFを生成してもよい。アプリケーション1302は、オフプロンプトを介して、PCF追跡器1308をオフに切り替え得る、後続コールを有してもよい。PCF追跡器1308は、PCF追跡器1308がオフに切り替えられると、PCF生成を終了する。
【0286】
いくつかの実施形態では、サーバ20は、規準マップ120と関連付けられて以前に保存されている、複数の持続姿勢1332と、複数のPCF1330とを含んでもよい。マップ伝送機122は、規準マップ120を持続姿勢1332および/またはPCF1330とともに、第2のXRデバイス12.2に伝送してもよい。持続姿勢1332およびPCF1330は、規準マップ133と関連付けて第2のXRデバイス12.2上に記憶されてもよい。マップ2が、規準マップ133に対して位置特定すると、持続姿勢1332およびPCF1330は、マップ2と関連付けて記憶されてもよい。
【0287】
いくつかの実施形態では、持続姿勢入手器1310は、マップ2のための持続姿勢を入手してもよい。PCF確認器1312は、持続姿勢入手器1310に接続されてもよい。PCF確認器1312は、持続姿勢入手器1310によって読み出された持続姿勢に基づいて、PCFをPCF1306から読み出してもよい。PCF確認器1312によって読み出されたPCFは、PCFに基づいて、画像ディスプレイのために使用される、PCFの初期群を形成してもよい。
【0288】
いくつかの実施形態では、アプリケーション1302は、付加的PCFが生成されることを要求し得る。例えば、ユーザが、以前にマッピングされていないエリアに移動する場合、アプリケーション1302は、PCF追跡器1308をオンに切り替えてもよい。PCF生成システム1314は、PCF追跡器1308に接続され、マップ2が拡張し始めるにつれて、マップ2に基づいて、PCFの生成を開始してもよい。PCF生成システム1314によって生成されたPCFは、PCFベースの画像表示のために使用され得る、PCFの第2のグループを形成してもよい。
【0289】
座標フレーム計算機1316は、PCF確認器1312に接続されてもよい。PCF確認器1312がPCFを読み出した後、座標フレーム計算機1316は、頭部座標フレーム96を呼び出し、第2のXRデバイス12.2の頭部姿勢を決定してもよい。座標フレーム計算機1316はまた、持続姿勢計算機1318を呼び出してもよい。持続姿勢計算機1318は、フレーム埋込生成器308に直接または間接的に接続されてもよい。いくつかの実施形態では、画像フレームは、前のキーフレームからの閾値距離、例えば、3メートルが、進行された後、キーフレームと指定されてもよい。持続姿勢計算機1318は、複数の、例えば、3つのキーフレームに基づいて、持続姿勢を生成してもよい。いくつかの実施形態では、持続姿勢は、本質的に、複数のキーフレームの座標フレームの平均であってもよい。
【0290】
追跡マップおよび持続姿勢変換器1320は、マップ2および持続姿勢計算機1318に接続されてもよい。追跡マップおよび持続姿勢変換器1320は、マップ2を持続姿勢に変換し、マップ2に対する原点における持続姿勢を決定してもよい。
【0291】
持続姿勢およびPCF変換器1322は、追跡マップおよび持続姿勢変換器1320およびさらにPCF確認器1312およびPCF生成システム1314に接続されてもよい。持続姿勢およびPCF変換器1322は、持続姿勢(それに対して追跡マップが変換された)をPCF確認器1312およびPCF生成システム1314からのPCFに変換し、持続姿勢に対するPCFを決定してもよい。
【0292】
PCFおよび画像データ変換器1324は、持続姿勢およびPCF変換器1322およびデータチャネル62に接続されてもよい。PCFおよび画像データ変換器1324は、PCFを画像データ68に変換する。レンダリングエンジン30は、PCFおよび画像データ変換器1324に接続され、PCFに対する画像データ68をユーザに表示してもよい。
【0293】
PCF統合ユニット1300は、PCF1306内でPCF生成システム1314を用いて生成される、付加的PCFを記憶してもよい。PCF1306は、持続姿勢に対して記憶されてもよい。マップ発行器136は、マップ発行器136が、マップ2をサーバ20に伝送し、マップ発行器136がまた、マップ2と関連付けられるPCFおよび持続姿勢をサーバ20に伝送するとき、PCF1306およびPCF1306と関連付けられる持続姿勢を読み出し得る。サーバ20のマップ記憶ルーチン118が、マップ2を記憶するとき、マップ記憶ルーチン118はまた、第2の視認デバイス12.2によって生成された持続姿勢およびPCFを記憶してもよい。マップマージアルゴリズム124は、それぞれ、規準マップ120と関連付けられ、持続姿勢1332およびPCF1330内に記憶される、マップ2の持続姿勢およびPCFとともに、規準マップ120を作成してもよい。
【0294】
第1のXRデバイス12.1は、第2のXRデバイス12.2のPCF統合ユニット1300に類似する、PCF統合ユニットを含んでもよい。マップ伝送機122が、規準マップ120を第1のXRデバイス12.1に伝送するとき、マップ伝送機122は、規準マップ120と関連付けられ、第2のXRデバイス12.2から生じる、持続姿勢1332およびPCF1330を伝送してもよい。第1のXRデバイス12.1は、PCFおよび持続姿勢を第1のXRデバイス12.1の記憶デバイス上のデータ記憶装置内に記憶してもよい。第1のXRデバイス12.1は、次いで、PCFに対する画像表示のために、第2のXRデバイス12.2から生じる持続姿勢およびPCFを利用してもよい。加えて、または代替として、第1のXRデバイス12.1は、上記に説明されるように、第2のXRデバイス12.2に類似する様式において、PCFおよび持続姿勢を読み出し、生成し、利用し、アップロードし、ダウンロードしてもよい。
【0295】
図示される実施例では、第1のXRデバイス12.1は、ローカル追跡マップ(以降、「マップ1」と称される)を生成し、マップ記憶ルーチン118は、マップ1を第1のXRデバイス12.1から受信する。マップ記憶ルーチン118は、次いで、マップ1をサーバ20の記憶デバイス上に規準マップ120として記憶する。
【0296】
第2のXRデバイス12.2は、マップダウンロードシステム126と、アンカ識別システム128と、位置特定モジュール130と、規準マップ組込器132と、ローカルコンテンツ位置付けシステム134と、マップ発行器136とを含む。
【0297】
使用時、マップ伝送機122は、規準マップ120を第2のXRデバイス12.2に送信し、マップダウンロードシステム126は、規準マップ120を規準マップ133としてサーバ20からダウンロードし、記憶する。
【0298】
アンカ識別システム128は、世界表面決定ルーチン78に接続される。アンカ識別システム128は、世界表面決定ルーチン78によって検出されたオブジェクトに基づいて、アンカを識別する。アンカ識別システム128は、アンカを使用して、第2のマップ(マップ2)を生成する。サイクル138によって示されるように、アンカ識別システム128は、アンカを識別し続け、マップ2を更新し続ける。アンカの場所は、世界表面決定ルーチン78によって提供されるデータに基づいて、3次元データとして記録される。世界表面決定ルーチン78は、画像を実オブジェクト検出カメラ44から、深度データを深度センサ135から受信し、表面の場所および深度センサ135からのその相対的距離を決定する。
【0299】
位置特定モジュール130は、規準マップ133およびマップ2に接続される。位置特定モジュール130は、マップ2を規準マップ133に対して位置特定するように繰り返し試みる。規準マップ組込器132は、規準マップ133およびマップ2に接続される。位置特定モジュール130が、マップ2を規準マップ133に対して位置特定すると、規準マップ組込器132は、規準マップ133をマップ2のアンカの中に組み込む。マップ2は、次いで、規準マップ内に含まれる欠測データで更新される。
【0300】
ローカルコンテンツ位置付けシステム134は、マップ2に接続される。ローカルコンテンツ位置付けシステム134は、例えば、ユーザが世界座標フレーム内の特定の場所においてローカルコンテンツを位置特定し得る、システムであってもよい。ローカルコンテンツ自体が、次いで、マップ2の1つのアンカに結び付けられる。ローカル/世界座標変換器104は、ローカルコンテンツ位置付けシステム134の設定に基づいて、ローカル座標フレームを世界座標フレームに変換する。レンダリングエンジン30、ディスプレイシステム42、およびデータチャネル62の機能は、図2を参照して説明されている。
【0301】
マップ発行器136は、マップ2をサーバ20にアップロードする。サーバ20のマップ記憶ルーチン118は、次いで、マップ2をサーバ20の記憶媒体内に記憶する。
【0302】
マップマージアルゴリズム124は、マップ2と規準マップ120をマージする。物理的世界の同一または隣接する領域に関連する、2つを上回るマップ、例えば、3つまたは4つのマップが、記憶されているとき、マップマージアルゴリズム124は、全てのマップを規準マップ120にマージし、新しい規準マップ120をレンダリングする。マップ伝送機122は、次いで、新しい規準マップ120を、新しい規準マップ120によって表されるエリア内のあらゆるデバイス12.1および12.2に伝送する。デバイス12.1および12.2が、その個別のマップを規準マップ120に対して位置特定すると、規準マップ120は、レベル上げされたマップとなる。
【0303】
図17は、いくつかの実施形態による、場面のマップのためのキーフレームを生成する実施例を図示する。図示される実施例では、第1のキーフレームKF1は、部屋の左壁上のドアのために生成される。第2のキーフレームKF2は、部屋の床、左壁、および右壁が衝合する、角内のエリアのために生成される。第3のキーフレームKF3は、部屋の右壁上の窓のエリアのために生成される。第4のキーフレームKF4は、壁の床上のラグの縁端におけるエリアのために生成される。第5のキーフレームKF5は、ユーザに最も近いラグのエリアのために生成される。
【0304】
図18は、いくつかの実施形態による、図17のマップのための持続姿勢を生成する実施例を図示する。いくつかの実施形態では、新しい持続姿勢が、デバイスが進行された閾値距離を測定すると、および/またはアプリケーションが新しい持続姿勢(PP)を要求すると、作成される。いくつかの実施形態では、閾値距離は、3メートル、5メートル、20メートル、または任意の他の好適な距離であってもよい。より小さい閾値距離(例えば、1m)を選択することは、より多数のPPが、より大きい閾値距離と比較して、作成および管理され得るため、算出負荷の増加をもたらし得る。より大きい閾値距離(例えば、40m)を選択することは、より少数のPPが作成され、より少ないPCFが作成される結果をもたらし、PCFに結び付けられた仮想コンテンツが、PCFから比較的に大距離(例えば、30m)離れ、PCFから仮想コンテンツまでの距離の増加に伴って誤差が増加し得ることを意味するため、仮想コンテンツ設置誤差の増加をもたらし得る。
【0305】
いくつかの実施形態では、PPは、新しいセッションの開始時に作成されてもよい。本初期PPは、ゼロと見なされ得、閾値距離に等しい半径を有する、円形の中心として可視化され得る。デバイスが、円形の周に到達し、いくつかの実施形態では、アプリケーションが、新しいPPを要求すると、新しいPPは、デバイスの現在の場所(閾値距離)に設置されてもよい。いくつかの実施形態では、新しいPPは、デバイスが、既存のPPをデバイスの新しい位置からの閾値距離内に見出すことが可能である場合、閾値距離に作成されないであろう。いくつかの実施形態では、新しいPP(図14におけるPP1150)が、作成されると、デバイスは、最も近いキーフレームのうちの1つまたはそれを上回るものをPPに結び付ける。いくつかの実施形態では、キーフレームに対するPPの場所は、PPが作成された時点でのデバイスの場所に基づいてもよい。いくつかの実施形態では、PPは、アプリケーションがPPを要求しない限り、デバイスが閾値距離を進行しても作成されないであろう。
【0306】
いくつかの実施形態では、アプリケーションは、アプリケーションがユーザに表示するための仮想コンテンツを有するとき、PCFをデバイスから要求してもよい。アプリケーションからのPCF要求は、PP要求をトリガしてもよく、新しいPPは、デバイスが閾値距離を進行した後に作成されるであろう。図18は、例えば、キーフレームと持続姿勢との間の相対的姿勢を算出することによって、最も近いキーフレーム(例えば、KF1、KF2、およびKF3)を結び付けさせ得る、第1の持続姿勢PP1を図示する。図18はまた、最も近いキーフレーム(例えば、KF4およびKF5)を結び付けさせ得る、第2の持続姿勢PP2を図示する。
【0307】
図19は、いくつかの実施形態による、図17のマップのためのPCFを生成する実施例を図示する。図示される実施例では、PCF1は、PP1と、PP2とを含んでもよい。上記に説明されるように、PCFは、PCFに対する画像データを表示するために使用されてもよい。いくつかの実施形態では、各PCFは、別の座標フレーム(例えば、世界座標フレーム)内の座標と、例えば、PCFを一意に識別する、PCF記述子とを有してもよい。いくつかの実施形態では、PCF記述子は、PCFと関連付けられるフレーム内の特徴の特徴記述子に基づいて算出されてもよい。いくつかの実施形態では、PCFの種々のコンステレーションは、より少ないデータおよびより少ないデータの伝送を要求する、持続様式において、組み合わせられ、実世界を表してもよい。
【0308】
図20A-20Cは、持続座標フレームを確立および使用する実施例を図示する、概略図である。図20Aは、規準マップに対して位置特定されていない、個別のローカル追跡マップ4804A、4804Bを伴う、2人のユーザ4802A、4802Bを示す。個々のユーザに関する原点4806A、4806Bは、その個別のエリア内の座標系(例えば、世界座標系)によって描写される。各追跡マップのこれらの原点は、原点が、追跡が開始されたときのその個別のデバイスの配向に依存するため、各ユーザにローカルであり得る。
【0309】
ユーザデバイスのセンサが、環境を走査するにつれて、デバイスは、図14に関連して上記に説明されるように、それらの画像が、そこから持続姿勢が作成され得る、キーフレームとして分類され得るように、持続オブジェクトを表す特徴を含有し得る、画像を捕捉してもよい。本実施例では、追跡マップ4802Aは、持続姿勢(PP)4808Aを含み、追跡マップ4802Bは、PP4808Bを含む。
【0310】
また、図14に関連して上記に説明されるように、PPのうちのいくつかは、ユーザにそれをレンダリングするために仮想コンテンツの配向を決定するために使用される、PCFとして分類されてもよい。図20Bは、個別のユーザ4802A、4802Bによって装着されるXRデバイスが、PP4808A、4808Bに基づいて、ローカルPCF4810A、4810Bを作成し得ることを示す。図20Cは、持続コンテンツ4812A、4812B(例えば、仮想コンテンツ)が個別のXRデバイスによってPCF4810A、4810Bに結び付けられ得ることを示す。
【0311】
本実施例では、仮想コンテンツは、仮想コンテンツが表示されるべき方法にかかわらず、仮想コンテンツを生成するアプリケーションによって使用され得る、仮想コンテンツ座標フレームを有し得る。仮想コンテンツは、例えば、仮想コンテンツ座標フレームに対して特定の場所および角度における、メッシュの三角形等の表面として規定されてもよい。その仮想コンテンツをユーザにレンダリングするために、それらの表面の場所が、仮想コンテンツを知覚することになるユーザに対して決定されてもよい。
【0312】
仮想コンテンツをPCFに結び付けることは、ユーザに対する仮想コンテンツの場所を決定する際に関わる算出を簡略化し得る。ユーザに対する仮想コンテンツの場所は、一連の変換を適用することによって決定されてもよい。それらの変換のうちのいくつかは、変化し得、頻繁に更新されてもよい。それらの変換のその他は、安定し得、あまり頻繁にまたは全く更新されなくてもよい。それにもかかわらず、変換は、仮想コンテンツの場所が、ユーザに対して頻繁に更新され、現実的外観をレンダリングされた仮想コンテンツに提供し得るように、比較的に低算出負担を伴って適用され得る。
【0313】
図20A-20Cの実施例では、ユーザ1のデバイスは、変換rig1_T_w1によってマップの原点を定義する、座標系に関連し得る、座標系を有する。ユーザ2のデバイスは、類似変換rig2_T_w2を有する。これらの変換は、6度の変換として表され、デバイス座標系とマップ座標系を整合させるための平行移動および回転を規定し得る。いくつかの実施形態では、変換は、2つの別個の変換として表され得、一方は、平行移動を規定し、他方は、回転を規定する。故に、変換は、算出を簡略化する、または別様に利点を提供する形態で表され得ることを理解されたい。
【0314】
追跡マップの原点と個別のユーザデバイスによって識別されるPCFとの間の変換は、pcf1_T_w1およびpcf2_T_w2として表される。本実施例では、PCFおよびPPは、同一変換がまたPPを特性評価するように、同じである。
【0315】
PCFに対するユーザデバイスの場所は、したがって、rig1_T_pcf1=(rig1_T_w1)(pcf1_T_w1)等のこれらの変換の連続適用によって算出されることができる。
【0316】
図20Cに示されるように、仮想コンテンツは、obj1_T_pcf1の変換を用いて、PCFに対して位置特定される。本変換は、PCFに対する物理的オブジェクトを説明する世界再構築システムからの情報を受信し得る、仮想コンテンツを生成するアプリケーションによって設定されてもよい。仮想コンテンツをユーザにレンダリングするために、ユーザのデバイスの座標系への変換が、算出され、これは、変換obj1_t_w1=(obj1_T_pcf1)(pcf1_T_w1)を通して、仮想コンテンツ座標フレームを追跡マップの原点に関連させることによって算出され得る。その変換は、次いで、さらなる変換rig1_T_w1を通して、ユーザのデバイスに関連され得る。
【0317】
仮想コンテンツの場所は、仮想コンテンツを生成するアプリケーションからの出力に基づいて変化し得る。それが変化すると、ソース座標系から目的地座標系へのエンドツーエンド変換が、再算出され得る。加えて、ユーザの場所および/または頭部姿勢も、ユーザが移動するにつれて変化し得る。結果として、変換rig1_T_w1が、変化し得るのと同様に、ユーザの場所または頭部姿勢に依存する、任意のエンドツーエンド変換も変化するであろう。
【0318】
変換rig1_T_w1は、ユーザの位置を物理的世界内の定常オブジェクトに対して追跡することに基づいて、ユーザの運動に伴って更新されてもよい。そのような追跡は、上記に説明されるように、画像のシーケンスを処理するヘッドホン追跡コンポーネント、またはシステムの他のコンポーネントによって実施されてもよい。そのような更新は、PP等の定常基準フレームに対するユーザの姿勢を決定することによって行われてもよい。
【0319】
いくつかの実施形態では、ユーザデバイスの場所および配向は、最も近くの持続姿勢に対して決定されてもよい、または、本実施例では、PPとしてのPCFが、PCFとして使用される。そのような決定は、デバイス上のセンサを用いて捕捉された現在の画像内において、PPを特性評価する、特徴点を識別することによって、行われてもよい。立体視画像分析等の画像処理技法を使用して、それらの特徴点に対するデバイスの場所が、決定されてもよい。本データから、本システムは、関係rig1_T_pcf1=(rig1_T_w1)(pcf1_T_w1)に基づいて、ユーザの運動と関連付けられる変換の変化を計算し得る。
【0320】
システムは、算出上効率的である順序において、変換を決定および適用してもよい。例えば、rig1_T_pcf1をもたらす測定からrig1_T_w1を算出する必要性は、ユーザ姿勢を追跡することと、持続姿勢上に構築されるPPまたはPCFに対する仮想コンテンツの場所を定義することとの両方によって、回避され得る。このように、仮想コンテンツのソース座標系からユーザのデバイスの目的地座標系への変換は、表現(rig1_T_pcf1)(obj1_t_pcf1)に従う測定された変換に基づいてもよく、第1の変換は、システムによって測定され、後者の変換は、レンダリングのための仮想コンテンツを規定するアプリケーションによって供給される。仮想コンテンツがマップの原点に対して位置付けられる、実施形態では、エンドツーエンド変換は、マップ座標とPCF座標との間のさらなる変換に基づいて、仮想オブジェクト座標系をPCF座標系に関連させ得る。仮想コンテンツが、それに対してユーザ位置が追跡されているものと異なるPPまたはPCFに対して位置付けられる、実施形態では、2つの間の変換が、適用されてもよい。そのような変換は、固定されてもよく、例えば、両方が現れる、マップから決定されてもよい。
【0321】
変換ベースのアプローチは、例えば、センサデータを処理し、追跡マップを構築する、コンポーネントを伴う、デバイス内に実装されてもよい。そのプロセスの一部として、それらのコンポーネントは、持続姿勢として使用され得る、特徴点を識別してもよく、これは、ひいては、PCFに変えられてもよい。それらのコンポーネントは、図17-19に関連して上記に説明されるように、マップのために生成される持続姿勢の数を限定し、持続姿勢間の好適な間隔を提供する一方、ユーザが、物理的環境内の場所にかかわらず、持続姿勢場所に十分に近接し、ユーザの姿勢を正確に算出することを可能にし得る。ユーザに最も近い持続姿勢が、ユーザ移動、追跡マップに対する精緻化、または他の原因の結果として、更新されるにつれて、PP(または使用されている場合、PCF)の場所に依存する、ユーザに対する仮想コンテンツの場所を算出するために使用される、変換のいずれかが、少なくとも、ユーザがその持続姿勢から離れるように移動するまで、使用のために、更新および記憶されてもよい。なお、変換を算出および記憶することによって、仮想コンテンツの場所が更新される度の算出負担は、比較的に短待ち時間を伴って実施され得るほど比較的に低くなり得る。
【0322】
図20A-20Cは、追跡マップに対する位置付けを図示し、各デバイスがその独自の追跡マップを有する。しかしながら、変換は、任意のマップ座標系に対して生成されてもよい。XRシステムのユーザセッションを横断したコンテンツの存続は、持続マップを使用することによって達成され得る。ユーザの共有体験はまた、それに対して複数のユーザデバイスが配向され得る、マップを使用することによって促進され得る。
【0323】
下記により詳細に説明される、いくつかの実施形態では、仮想コンテンツの場所は、複数のデバイスのいずれかがマップを使用し得るようにフォーマットされる、規準マップにおける座標に関連して規定されてもよい。各デバイスは、追跡マップを維持し得、追跡マップに対するユーザの姿勢の変化を決定してもよい。本実施例では、追跡マップと規準マップとの間の変換は、「位置特定」のプロセスを通して決定されてもよく、これは、追跡マップ内の構造(1つまたはそれを上回る持続姿勢等)と規準マップの1つまたはそれを上回る構造(1つまたはそれを上回るPCF等)をマッチングさせることによって実施されてもよい。
【0324】
下記にさらに説明されるものは、このように規準マップを作成および使用するための技法である。
【0325】
深層キーフレーム
【0326】
本明細書に説明されるような技法は、画像フレームの比較に依拠する。例えば、追跡マップに対するデバイスの位置を確立するために、新しい画像が、ユーザによって装着されるセンサを用いて捕捉されてもよく、XRシステムは、追跡マップを作成するために使用された画像のセット内において、少なくとも所定の量の着目点を新しい画像と共有する、画像を検索してもよい。画像フレームの比較を伴う、別のシナリオの実施例として、追跡マップが、最初に、規準マップ内のPCFと関連付けられる画像フレームに類似する、追跡マップ内の持続姿勢と関連付けられる画像フレームを見出すことによって、規準マップに対して位置特定され得る。代替として、2つの規準マップ間の変換が、最初に、2つのマップ内の類似画像フレームを見出すことによって、算出されてもよい。
【0327】
本明細書に説明されるような技法は、空間情報の効率的比較を有効にし得る。いくつかの実施形態では、画像フレームは、数値記述子によって表されてもよい。その記述子は、画像内で識別された特徴のセットを記述子にマッピングする、変換を介して算出されてもよい。その変換は、訓練されたニューラルネットワーク内で実施されてもよい。いくつかの実施形態では、ニューラルネットワークへの入力として供給される、特徴のセットは、例えば、持続的である可能性が高い特徴を優先的に選択する、技法を使用して画像から抽出された、特徴のフィルタリングされたセットであってもよい。
【0328】
記述子としての画像フレームの表現は、例えば、新しい画像情報と記憶された画像情報の効率的マッチングを有効にする。XRシステムは、持続マップと併せて、1つまたはそれを上回るフレームの記述子を持続マップの下層に記憶してもよい。ユーザデバイスによって入手されたローカル画像フレームも同様に、そのような記述子に変換されてもよい。ローカル画像フレームのものに類似する記述子を伴う記憶されたマップを選択することによって、ユーザデバイスと同一物理的空間を表す可能性が高い1つまたはそれを上回る持続マップが、比較的に少量の処理を伴って選択され得る。いくつかの実施形態では、記述子は、ローカルマップおよび持続マップ内のキーフレームに関して算出され、マップを比較するとき、処理をさらに低減させてもよい。そのような効率的比較は、例えば、ローカルデバイスを用いて入手された画像情報に基づいて、ローカルデバイス内にロードする、または更新するための持続マップを見出すための持続マップを見出すことを簡略化するために使用されてもよい。
【0329】
深層キーフレームは、類似画像フレームを識別するために要求される処理の量を低減させるための方法を提供する。例えば、いくつかの実施形態では、比較は、新しい2D画像内の画像特徴(例えば、「2D特徴」)とマップ内の3D特徴との間で行われ得る。そのような比較は、3D画像を2D平面の中に投影すること等によって、任意の好適な方法において行われ得る。単語の袋(BoW)等の従来の方法は、マップ内の全ての2D特徴を含む、データベース内の新しい画像の2D特徴を検索し、これは、特に、マップが大エリアを表すとき、有意な算出リソースを要求し得る。従来の方法は、次いで、2D特徴のうちの少なくとも1つを新しい画像と共有する、画像を位置特定し、これは、マップ内の有意義な3D特徴を位置特定するために有用ではない、画像を含み得る。従来の方法は、次いで、新しい画像内の2D特徴に対して有意義ではない、3D特徴を位置特定する。
【0330】
本発明者らは、より少ないメモリリソース(例えば、BoWによって使用されるメモリリソースの4分の1)、より高い効率(例えば、キーフレーム毎に2.5msの処理時間、500枚のキーフレームに対する比較のために100μs)、およびより高い正確度(例えば、1,024次元モデルのためにBoWより20%良好な読出再生、256次元モデルのためにBoWより5%良好な読出再生)を使用した、マップ内の画像を読み出すための技法を認識および理解している。
【0331】
算出を低減させるために、画像フレームと他の画像フレームを比較するために使用され得る、記述子が、画像フレームのために算出されてもよい。記述子は、画像フレームおよび特徴点の代わりに、またはそれに加え、記憶されてもよい。持続姿勢および/またはPCFが画像フレームから生成され得る、マップでは、そこから各持続姿勢またはPCFが生成された画像フレームまたは複数のフレームの記述子が、持続姿勢および/またはPCFの一部として記憶されてもよい。
【0332】
いくつかの実施形態では、記述子は、画像フレーム内の特徴点の関数として算出されてもよい。いくつかの実施形態では、ニューラルネットワークが、画像を表すための一意のフレーム記述子を算出するように構成される。画像は、ユーザによって装着されるデバイスの視野内の3D環境の十分な詳細が画像内で捕捉されるように、1メガバイトより高い分解能を有し得る。フレーム記述子は、数字の列、例えば、128バイト~512バイトの範囲内またはその間の任意の数等、はるかに小さくあり得る。
【0333】
いくつかの実施形態では、ニューラルネットワークは、算出されたフレーム記述子が画像間の類似性を示すように訓練される。マップ内の画像は、マップを生成するために使用される画像を備えるデータベース内において、新しい画像のためのフレーム記述子に対して所定の距離内のフレーム記述子を有し得る、最も近くの画像を識別することによって位置特定され得る。いくつかの実施形態では、画像間の距離は、2つの画像のフレーム記述子間の差異によって表されてもよい。
【0334】
図21は、いくつかの実施形態による、個々の画像のための記述子を生成するためのシステムを図示する、ブロック図である。図示される実施例では、フレーム埋込生成器308が、示される。フレーム埋込生成器308は、いくつかの実施形態では、サーバ20と併用されてもよいが、代替として、または加えて、全体または部分的に、XRデバイス12.1および12.2、または他の画像との比較のための画像を処理する任意の他のデバイスのうちの1つ内で実行されてもよい。
【0335】
いくつかの実施形態では、フレーム埋込生成器は、低減されたサイズにもかかわらず、それでもなお、画像内のコンテンツを示す、初期サイズ(例えば、76,800バイト)から最終サイズ(例えば、256バイト)に低減された画像のデータ表現を生成するように構成されてもよい。いくつかの実施形態では、フレーム埋込生成器は、他の方法において使用されるキーフレームまたはフレームであり得る、画像のためのデータ表現を生成するために使用されてもよい。いくつかの実施形態では、フレーム埋込生成器308は、特定の場所および配向における画像を一意の数字の列(例えば、256バイト)に変換するように構成されてもよい。図示される実施例では、XRデバイスによって撮影される画像320は、画像320内の着目点322を検出するために特徴抽出器324によって処理されてもよい。着目点は、特徴1120(図14)に関して上記に説明されるように、または本明細書に別様に説明されるように、識別された特徴点から導出される場合とそうではない場合がある。いくつかの実施形態では、着目点は、深層疎特徴方法を使用して生成され得る、記述子1130(図14)に関して上記に説明されるように、記述子によって表されてもよい。いくつかの実施形態では、各着目点322は、数字の列(例えば、32バイト)によって表されてもよい。例えば、n個の特徴(例えば、100)が存在してもよく、各特徴は、32バイトの列によって表される。
【0336】
いくつかの実施形態では、フレーム埋込生成器308は、ニューラルネットワーク326を含んでもよい。ニューラルネットワーク326は、多層パーセプトロンユニット312と、最大(max)プールユニット314とを含んでもよい。いくつかの実施形態では、多層パーセプトロン(MLP)ユニット312は、多層パーセプトロンを備えてもよく、これは、訓練されてもよい。いくつかの実施形態では、着目点322(例えば、着目点のための記述子)は、多層パーセプトロン312によって低減され得、記述子の加重された組み合わせ310として出力され得る。例えば、MLPは、n個の特徴を、n個の特徴未満である、m個の特徴に低減させ得る。
【0337】
いくつかの実施形態では、MLPユニット312は、行列乗算を実施するように構成されてもよい。多層パーセプトロンユニット312は、画像320の複数の着目点322を受信し、各着目点を個別の数字の列(例えば、256)に変換する。例えば、100個の特徴が存在してもよく、各特徴は、256の数字の列によって表され得る。行列は、本実施例では、100の水平行および256の垂直列を有するように作成されてもよい。各行は、一部は、より小さく、一部は、より大きい、大きさが変動する、一連の256の数を有してもよい。いくつかの実施形態では、MLPの出力は、n×256の行列であってもよく、nは、画像から抽出された特徴の数を表す。いくつかの実施形態では、MLPの出力は、m×256行列であってもよく、mは、nから低減された着目点の数である。
【0338】
いくつかの実施形態では、MLP312は、その間にMLPのためのモデルパラメータが決定される、訓練相と、使用相とを有してもよい。いくつかの実施形態では、MLPは、図25に図示されるように、訓練されてもよい。入力訓練データは、3つのセット内にデータを備えてもよく、3つのセットは、1)クエリ画像と、2)正のサンプルと、3)負のサンプルとを備える。クエリ画像は、基準画像と見なされ得る。
【0339】
いくつかの実施形態では、正のサンプルは、クエリ画像に類似する、画像を備えてもよい。例えば、いくつかの実施形態では、類似するとは、同一オブジェクトをクエリおよび正のサンプル画像の両方内に有することであるが、異なる角度から視認され得る。いくつかの実施形態では、類似するとは、同一オブジェクトをクエリおよび正のサンプル画像の両方内に有することであるが、他の画像に対して(例えば、左、右、上、下に)偏移されるオブジェクトを有し得る。
【0340】
いくつかの実施形態では、負のサンプルは、クエリ画像と類似しない、画像を備えてもよい。例えば、いくつかの実施形態では、類似しない画像は、クエリ画像内で顕著な任意のオブジェクトを含有し得ない、またはクエリ画像内で顕著なオブジェクトの小部分のみ(例えば、<10%、1%)を含有し得る。類似画像は、対照的に、例えば、クエリ画像内でオブジェクトの大部分(例えば、>50%、または>75%)を有し得る。
【0341】
いくつかの実施形態では、着目点は、入力訓練データ内の画像から抽出されてもよく、特徴記述子に変換されてもよい。これらの記述子は、図25に示されるように、訓練画像のためと、図21のフレーム埋込生成器308の動作時に抽出された特徴のためとの両方のために算出されてもよい。いくつかの実施形態では、深層疎特徴(DSF)プロセスが、米国特許出願第16/190,948号に説明されるように、記述子(例えば、DSF記述子)を生成するために使用されてもよい。いくつかの実施形態では、DSF記述子は、n×32寸法である。記述子は、次いで、モデル/MLPを通して通過され、256バイト出力を作成してもよい。いくつかの実施形態では、モデル/MLPは、いったんモデルパラメータが訓練を通して設定されると、結果として生じる訓練されたMLPがMLP312として使用され得るように、MLP312と同一構造を有してもよい。
【0342】
いくつかの実施形態では、特徴記述子(例えば、MLPモデルから出力された256バイト)は、次いで、トリプレットマージン損失モジュール(MLPニューラルネットワークの訓練相の間にのみ使用され、使用相の間には使用され得ない)に送信されてもよい。いくつかの実施形態では、トリプレットマージン損失モジュールは、クエリ画像から出力された256バイトと正のサンプルから出力された256バイトとの間の差異を低減させ、クエリ画像から出力された256バイトと負のサンプルから出力された256バイトとの間の差異を増加させるように、モデルのためのパラメータを選択するように構成されてもよい。いくつかの実施形態では、訓練相は、複数のトリプレット入力画像を学習プロセスの中にフィードし、モデルパラメータを決定することを含んでもよい。本訓練プロセスは、例えば、正の画像に関する差異が最小限にされ、負の画像に関する差異が最大限にされるまで、または他の好適な終了基準に到達するまで、継続し得る。
【0343】
図21に戻って参照すると、フレーム埋込生成器308は、ここでは、最大(max)プールユニット314として図示される、プーリング層を含んでもよい。最大プールユニット314は、各列を分析し、個別の列内の最大数を決定してもよい。最大プールユニット314は、MLP312の出力行列の数の各列の最大値を、例えば、256の数のグローバル特徴列316に組み合わせてもよい。XRシステム内で処理された画像は、望ましくは、潜在的に数百万ピクセルを伴う、高分解能フレームを有し得ることを理解されたい。グローバル特徴列316は、比較的に少ないメモリを占有し、画像(例えば、1メガバイトより高い分解能を伴う)と比較して、容易に検索可能である、比較的に小数である。したがって、カメラからの各オリジナルフレームを分析せずに、画像を検索することが可能であって、また、完全フレームの代わりに、256バイトを記憶するようにより安価である。
【0344】
図22は、いくつかの実施形態による、画像記述子を算出する方法2200を図示する、フローチャートである。方法2200は、ユーザによって装着されるXRデバイスによって捕捉された複数の画像を受信すること(行為2202)から開始してもよい。いくつかの実施形態では、方法2200は、1つまたはそれを上回るキーフレームを複数の画像から決定すること(行為2204)を含んでもよい。いくつかの実施形態では、行為2204は、スキップされてもよい、および/または代わりに、ステップ2210後に生じてもよい。
【0345】
方法2200は、人工ニューラルネットワークを用いて、複数の画像内の1つまたはそれを上回る着目点を識別すること(行為2206)と、人工ニューラルネットワークを用いて、個々の着目点のための特徴記述子を算出すること(行為2208)とを含んでもよい。本方法は、画像毎に、少なくとも部分的に、人工ニューラルネットワークを用いて、画像内の識別された着目点のための算出された特徴記述子に基づいて、画像を表すためのフレーム記述子を算出すること(行為2210)を含んでもよい。
【0346】
図23は、いくつかの実施形態による、画像記述子を使用した位置特定の方法2300を図示する、フローチャートである。本実施例では、XRデバイスの現在の場所を描写する、新しい画像フレームが、マップ内の点(上記に説明されるように、持続姿勢またはPCF等)に関連して記憶された画像フレームと比較されてもよい。方法2300は、ユーザによって装着されるXRデバイスによって捕捉された新しい画像を受信すること(行為2302)から開始してもよい。方法2300は、1つまたはそれを上回るマップを生成するために使用されるキーフレームを備える、データベース内の1つまたはそれを上回る最も近くのキーフレームを識別すること(行為2304)を含んでもよい。いくつかの実施形態では、最も近くのキーフレームは、大まかな空間情報および/または以前に決定された空間情報に基づいて識別されてもよい。例えば、大まかな空間情報は、XRデバイスがマップの50m×50mエリアによって表される地理的領域内に存在することを示し得る。画像マッチングは、そのエリア内の点のみに関して実施されてもよい。別の実施例として、追跡に基づいて、XRシステムは、XRデバイスが、マップ内の第1の持続姿勢に以前に近接しており、マップ内の第2の持続姿勢の方向に移動していたことを把握してもよい。その第2の持続姿勢は、最も近くの持続姿勢と見なされ得、それとともに記憶されたキーフレームは、最も近くのキーフレームと見なされ得る。代替として、または加えて、GPSデータまたはWi-Fiフィンガプリント等の他のメタデータも、最も近くのキーフレームまたは最も近くのキーフレームのセットを選択するために使用されてもよい。
【0347】
最も近くのキーフレームが選択される方法にかかわらず、フレーム記述子が、新しい画像が近隣の持続姿勢と関連付けられるものとして選択されたフレームのいずれかにマッチングするかどうかを決定するために使用されてもよい。決定は、新しい画像のフレーム記述子と任意の他の好適な方法において選択されたデータベース内の最近キーフレームまたはキーフレームのサブセットのフレーム記述子を比較し、新しい画像のフレーム記述子の所定の距離内のフレーム記述子を伴うキーフレームを選択することによって行われてもよい。いくつかの実施形態では、2つのフレーム記述子間の距離は、2つのフレーム記述子を表し得る、2つの数字の列間の差異を取得することによって算出されてもよい。列が複数の量の列として処理される、実施形態では、差異は、ベクトル差異として算出されてもよい。
【0348】
いったんマッチング画像フレームが、識別されると、その画像フレームに対するXRデバイスの配向が、決定され得る。方法2300は、識別された最も近くのキーフレームに対応する、マップ内の3D特徴に対して特徴マッチングを実施すること(行為2306)と、特徴マッチング結果に基づいて、ユーザによって装着されるデバイスの姿勢を算出すること(行為2308)とを含んでもよい。このように、2つの画像内の特徴点の算出上集約的であるマッチングは、新しい画像のための可能性が高いマッチングであるとすでに決定されているわずか1つの画像に関して実施されてもよい。
【0349】
図24は、いくつかの実施形態による、ニューラルネットワークを訓練する方法2400を図示する、フローチャートである。方法2400は、複数の画像セットを備える、データセットを生成すること(行為2402)から開始してもよい。複数の画像セットはそれぞれ、クエリ画像と、正のサンプル画像と、負のサンプル画像とを含んでもよい。いくつかの実施形態では、複数の画像セットは、例えば、ニューラルネットワークに形状等の基本情報を教示するように構成される、合成記録対を含んでもよい。いくつかの実施形態では、複数の画像セットは、物理的世界から記録され得る、実記録対を含んでもよい。
【0350】
いくつかの実施形態では、正対応は、2つの画像間の基本行列を適合させることによって算出されてもよい。いくつかの実施形態では、疎重複が、画像の両方内で見られる着目点の和集合上の交点(IoU)として算出されてもよい。いくつかの実施形態では、正のサンプルは、クエリ画像内で同一である、正対応としての役割を果たす、少なくとも20個の着目点を含んでもよい。負のサンプルは、10未満の正対応点を含んでもよい。負のサンプルは、クエリ画像の解析点と重複する、半分未満の疎点を有してもよい。
【0351】
方法2400は、画像セット毎に、クエリ画像と正のサンプル画像および負のサンプル画像を比較することによって、損失を算出すること(行為2404)を含んでもよい。方法2400は、クエリ画像のために人工ニューラルネットワークによって生成されたフレーム記述子と正のサンプル画像のためのフレーム記述子との間の距離が、クエリ画像のためのフレーム記述子と負のサンプル画像のためのフレーム記述子との間の距離未満であるように、算出された損失に基づいて、人工ニューラルネットワークを修正すること(行為2406)を含んでもよい。
【0352】
個々の画像のためのグローバル記述子を生成するように構成される、方法および装置が、上記に説明されるが、方法および装置は、個々のマップのための記述子を生成するように構成されてもよいことを理解されたい。例えば、マップは、複数のキーフレームを含んでもよく、それぞれ、上記に説明されるように、フレーム記述子を有してもよい。最大プールユニットは、マップのキーフレームのフレーム記述子を分析し、フレーム記述子をマップのための一意のマップ記述子の中に組み合わせてもよい。
【0353】
さらに、他のアーキテクチャも、上記に説明されるように、処理のために使用されてもよいことを理解されたい。例えば、別個のニューラルネットワークは、DSF記述子およびフレーム記述子を生成するために説明される。そのようなアプローチは、算出上効率的である。しかしながら、いくつかの実施形態では、フレーム記述子は、最初にDSF記述子を生成せずに、選択された特徴点から生成されてもよい。
【0354】
マップのランク付けおよびマージ
【0355】
本明細書に説明されるものは、マップをマージする、またはマップに対してデバイスを位置特定する等、さらなる処理のための先行処理として、複数の環境マップをXリアリティ(XR)システム内でランク付けするための方法および装置である。マップマージは、物理的世界の重複部分を表すマップが、より大きいエリアを表すように組み合わせられることを可能にし得る。マップをランク付けすることは、それらの両方が類似性に基づいてマップをマップのセットから選択することを伴い得る、マップマージまたは位置特定を含む、本明細書に説明されるような技法を効率的に実施することを可能にし得る。いくつかの実施形態では、例えば、いくつかのXRデバイスのいずれかによってアクセスされ得る方法でフォーマットされる、規準マップのセットが、システムによって維持されてもよい。これらの規準マップは、それらのデバイスからの選択された追跡マップと他の追跡マップまたは以前に記憶された規準マップをマージすることによって形成されてもよい。
【0356】
規準マップは、例えば、1つまたはそれを上回る規準マップを選択し、新しい追跡マップとマージする、および/またはセットから1つまたはそれを上回る規準マップを選択し、デバイス内で使用する際に使用するために、ランク付けされてもよい。ランク付けは、追跡マップを規準マップの中にマージするように試みることに応じて、追跡マップの一部と規準マップの一部との間の対応が存在するであろう可能性が高いように、追跡マップの領域に類似する領域を有する、規準マップを示し得る。そのような対応は、追跡マップが、規準マップの中にマージされ得るように、規準マップと整合される、さらなる処理の先行処理であり得る。
【0357】
いくつかの実施形態では、追跡マップは、追跡マップと規準マップをマージするために要求される処理の量を限定するように、規準マップのタイルまたは他の定義されたエリアとマージされてもよい。特に、建物内の複数の部屋等の比較的に大エリアを表す、規準マップに関して、規準マップのエリア上に動作することは、マップ全体上での動作より少ない処理を要求し得る。それらの実施形態では、マップランク付けまたは他の選択前処理は、以前に記憶された規準マップの1つまたはそれを上回るエリアを識別し、マージするように試み得る。
【0358】
位置特定に関して、ポータブルデバイスの場所についての情報は、規準マップ内の情報と比較される。ローカルデバイスからの情報と規準マップとの間の対応の領域は、規準マップのセット内の候補エリアのセットが、セット内の規準マップをランク付けすることによって識別される場合、より迅速に識別され得る。
【0359】
本発明者らは、XRシステムが、複数のユーザによって収集された実/物理的世界の環境マップの効率的共有を有効にすることによって、それらのユーザが同一または異なる時間に世界内に存在するかどうかにかかわらず、実および/または仮想コンテンツを備える、同一世界を共有する複数のユーザに、向上されたXR体験を提供し得ることを認識し、その真価を認めた。しかしながら、そのようなシステムを提供する際、有意な課題が存在する。そのようなシステムは、複数のユーザによって生成された複数のマップを記憶し得、および/またはシステムは、異なる時間に生成された複数のマップを記憶し得る。例えば、位置特定またはマップマージ等の以前に生成されたマップを用いて実施され得る動作に関して、実質的処理が、同一世界(例えば、同一実世界場所)の関連環境マップをXRシステム内で収集された全ての環境マップから識別するために要求され得る。
【0360】
いくつかのシステムでは、そこからマップの選択を行うための多数の環境マップが存在し得る。本発明者らは、環境マップの関連性を、例えば、図28における全ての規準マップ120の母集団等のあらゆる可能性として考えられる環境マップから迅速かつ正確にランク付けする技法を認識し、その真価を認めた。高ランク付けマップまたは高ランク付けマップの小セットは、次いで、さらなる処理のために、選択されてもよい。そのさらなる処理は、選択されたマップに対してユーザデバイスの場所を決定するステップ、または仮想オブジェクトをユーザディスプレイ上にユーザの周囲の物理的世界と現実的に相互動作するようにレンダリングするステップ、またはそのユーザデバイスによって収集されたマップデータと記憶されたマップをマージし、より大きいまたはより正確なマップを作成するステップを含んでもよい。
【0361】
いくつかの実施形態では、物理的世界内のある場所におけるユーザのためのタスクに関連する、記憶されたマップが、複数の基準に基づいて、記憶されたマップをフィルタリングすることによって識別されてもよい。それらの基準は、その場所におけるユーザのウェアラブルデバイスによって生成された追跡マップまたは他の場所情報と、データベース内に記憶される候補環境マップの比較を示してもよい。比較は、マップを生成するデバイスによって検出されたWi-Fiフィンガプリント等のマップと関連付けられる、メタデータ、および/またはマップを形成する間、それに対してデバイスが接続されるBSSIDのセットに基づいて実施されてもよい。GPSデータ等のジオロケーション情報が、代替として、または加えて、1つまたはそれを上回る候補環境マップを選択する際に使用されてもよい。先験的情報もまた、候補マップの選択において使用されてもよい。例えば、デバイスの場所が、最近、規準マップに対して決定されている場合、以前の決定された場所、および/または隣接する場所を表す規準マップが、選択されてもよい。
【0362】
比較は、マップの圧縮または解凍されたコンテンツに基づいて実施されてもよい。圧縮された表現に基づく比較が、実施される、例えば、マップコンテンツから算出されたベクトルの比較によって、行われてもよい。解凍された表現に基づく比較は、例えば、追跡マップを記憶されたマップに対して位置特定する、またはその逆によって実施されてもよい。位置特定は、例えば、1つのマップの一部を表す特徴の1つまたはそれを上回るセットを別のマップ内の特徴のセットとマッチングさせることによって、実施されてもよい。複数の比較が、考慮のために、候補マップの数を低減させるために必要とされる算出時間に基づく順序に実施されてもよく、より少ない算出を伴う比較は、より多くの算出を要求する他の比較より先に実施される。
【0363】
いくつかの実施形態では、比較は、追跡マップの一部に基づいてもよく、追跡の一部は、選択されている環境マップのためのプロセスに応じて、異なってもよい。例えば、位置特定に関して、候補マップは、位置特定が実施されるべき時点においてユーザに最も近い、追跡マップ内の持続姿勢に基づいて、選択されてもよい。対照的に、マップマージ動作のための候補マップを選択するとき、候補マップは、追跡マップおよび規準マップ内の任意の1つまたはそれを上回る持続姿勢間の類似性に基づいて、選択されてもよい。2つのマップのどの部分が比較されるかにかかわらず、マッチングする部分を見出すことは、物理的世界内の同一場所に対応する可能性が高い、マップ内の特徴のセットを見出すことと関連付けられる、実質的処理を伴い得る。
【0364】
図26は、いくつかの実施形態による、1つまたはそれを上回る環境マップをランク付けするように構成される、ARシステム800を描写する。本実施例では、ランク付けは、マージ動作の先行処理として行われている。ARシステムは、ARデバイスのパス可能世界モデル802を含んでもよい。パス可能世界モデル802を取り込むための情報は、ARデバイス上のセンサから生じてもよく、これは、プロセッサ804(例えば、図4におけるローカルデータ処理モジュール570)内に記憶される、センサデータをマップに変換するための処理のいくつかまたは全てを実施し得る、コンピュータ実行可能命令を含んでもよい。そのようなマップは、ARデバイスが領域内で動作する際にセンサデータが収集されるにつれて構築され得るような追跡マップであってもよい。その追跡マップとともに、マップのメタデータとして形成され得るエリア属性が、追跡マップが表すエリアを示すように供給されてもよい。これらのエリア属性は、緯度および経度として提示される座標または場所を表すためにARシステムによって使用されるID等の地理的場所識別子であってもよい。代替として、または加えて、エリア属性は、そのエリアに関して一意である高尤度を有する、測定された特性であってもよい。エリア属性は、例えば、エリア内で検出された無線ネットワークのパラメータから導出されてもよい。いくつかの実施形態では、エリア属性は、ARシステムが近隣にある、および/または接続される、アクセスポイントの一意のアドレスと関連付けられてもよい。例えば、エリア属性は、5G基地局/ルータ、Wi-Fiルータ、および同等物のMACアドレスまたは基本サービスセット識別子(BSSID)と関連付けられてもよい。
【0365】
属性は、マップ自体またはマップ内に表される場所に結び付けられてもよい。例えば、追跡マップの属性は、マップ内の持続姿勢と関連付けられ得る。規準マップに関して、属性は、持続座標フレームまたはマップのタイルまたは他のエリアと関連付けられ得る。
【0366】
図26の実施例では、追跡マップは、環境の他のマップとマージされてもよい。マップランク付け部分806は、追跡マップをデバイスPW802から受信し、マップデータベース808と通信し、マップデータベース808からの環境マップを選択およびランク付けする。より高いランク付けされる選択されたマップは、マップマージ部分810に送信される。
【0367】
マップマージ部分810は、マージ処理をマップランク付け部分806から送信されるマップ上で実施してもよい。マージ処理は、追跡マップとランク付けされたマップのいくつかまたは全てをマージし、新しいマージされたマップをパス可能世界モデル812に伝送することを伴ってもよい。マップマージ部分は、物理的世界の重複部分を描写するマップを識別することによって、マップをマージしてもよい。それらの重複部分は、両方のマップ内の情報が最終マップの中に集約され得るように整合されてもよい。
【0368】
いくつかの実施形態では、重複部分が、最初に、追跡マップ内の持続姿勢と関連付けられる特徴のセットと対応する可能性が高い、規準マップ内の特徴のセットを識別することによって識別されてもよい。規準マップ内の特徴のセットは、持続座標フレームを定義する、特徴のセットであってもよい。しかしながら、特徴のセットが規準マップまたは追跡マップのいずれか内の単一持続場所と関連付けられなければならないという、要件は、存在しない。いくつかの実施形態では、処理は、それらの属性の値が、さらなる処理のために、特徴のセットを選択するために比較され得るように、それに対して属性が割り当てられている特徴のセット間の対応を識別することによって、簡略化されてもよい。
【0369】
いったん候補マップのセット、またはいくつかの実施形態では、マップの候補エリアが、識別されると、さらなるステップは、候補のセットを低減させ得、最終的には、マッチングするマップの識別につながり得る。1つのそのようなステップは、規準マップ内の特徴の候補セットと整合させるための追跡マップ内の特徴点のセットの変換を算出することであり得る。本変換は、追跡マップ全体に適用され、追跡マップおよび規準マップの重複部分が識別されることを可能にし得る。重複部分内の特徴間の閾値を上回る対応は、追跡マップが規準マップと位置合わせされていることの強い尤度を示し得る。対応が、閾値を下回る場合、追跡マップおよび/または規準マップ内の特徴の他の候補セットが、マップのマッチングする領域を見出すように試みる際に処理されてもよい。十分に大きな対応が、見出されるとき、追跡マップは、規準マップに対して位置特定されていると見なされ得、変換は、規準マップに対する追跡マップの場所を示す、大対応につながる。
【0370】
類似処理が、規準マップと他の規準マップおよび追跡マップをマージするために実施されてもよい。規準マップのマージは、その中で規準マップが、複数のマップが物理的世界の重複領域を表すように、追跡マップの繰り返されるマージを通して拡張されている、シナリオを識別するために、随時、実施されてもよい。マージされるマップのタイプにかかわらず、マージされているマップ間に重複が存在するとき、マージは、両方のマップからのデータを集約するステップを伴ってもよい。集約は、1つのマップを別のマップからの情報で拡張するステップを伴ってもよい。代替として、または加えて、集約は、別のマップ内の情報に基づいて、1つのマップ内の物理的世界の表現を調節するステップを伴ってもよい。後者のマップは、例えば、マップが後者の情報に基づいて更新され得るように、特徴点を生じさせるオブジェクトが移動したことを表し得る。代替として、2つのマップは、異なる特徴点を伴う、同一領域を特性評価し得、集約は、特徴点のセットを2つのマップから選択し、その領域をより良好に表すステップを伴ってもよい。
【0371】
マージするプロセスにおいて生じる、具体的処理にかかわらず、いくつかの実施形態では、マージされる全てのマップからの持続姿勢またはPCF等の持続場所が、コンテンツをそれらに対して位置付けるアプリケーションがそのように行い続け得るように、留保されてもよい。いくつかの実施形態では、マップのマージは、冗長持続姿勢をもたらし得、持続姿勢のうちのいくつかは、削除されてもよい。PCFが、削除されるべき持続姿勢と関連付けられるとき、マップをマージすることは、PCFがマージ後にマップ内に残る持続姿勢と関連付けられるように修正することを伴ってもよい。
【0372】
いくつかの実施形態では、マップが、拡張および/または更新されるにつれて、それらは、精緻化されてもよい。精緻化は、物理的世界内の同一オブジェクトを表す可能性が高い、特徴点間の内部不一致を低減させるための算出を伴ってもよい。不一致は、物理的世界内の同一オブジェクトを表す特徴点を供給する、キーフレームと関連付けられる姿勢内の不正確性から生じ得る。そのような不一致は、例えば、追跡マップに対する姿勢を算出するXRデバイスから生じ得、これは、ひいては、姿勢推定内の誤差が、蓄積し、「ドリフト」を姿勢正確度内に経時的に作成するように、姿勢を推定することに基づいて構築される。バンドル調整または他の動作を実施し、複数のキーフレームからの特徴点の不一致を低減させることによって、マップは、精緻化されてもよい。
【0373】
精緻化に応じて、マップの原点に対する持続点の場所は、変化し得る。故に、持続姿勢またはPCF等のその持続点と関連付けられる変換も、変化し得る。いくつかの実施形態では、XRシステムは、マップ精緻化(マージ動作の一部として、または他の理由から実施されるかどうかにかかわらず)に関連して、変化した任意の持続点と関連付けられる変換を再算出してもよい。これらの変換は、変換の任意の使用が持続点の更新された場所に基づき得るように、変換を算出するコンポーネントから変換を使用するコンポーネントにプッシュ配信され得る。
【0374】
マージはまた、マージされているマップ内の場所と関連付けられる属性に基づいて、場所メタデータをマージされたマップ内の場所に割り当てるステップを伴ってもよい。例えば、規準マップの属性は、追跡マップまたは規準マップのエリアを形成するために使用されるマップの属性から導出されてもよい。その中で規準マップの持続座標フレームが、規準マップの中にマージされた追跡マップ内の持続姿勢に基づいて定義される、シナリオでは、持続座標フレームは、持続姿勢と同一属性を割り当てられてもよい。持続座標フレームが、1つまたはそれを上回る追跡マップからの1つまたはそれを上回る持続姿勢から導出される場合、持続座標フレームに割り当てられる属性は、持続姿勢の属性の集約であってもよい。属性が集約される様式は、属性のタイプに基づいて、変動し得る。ジオロケーション属性は、持続座標フレームの場所に関する属性の値を持続姿勢と関連付けられるジオロケーション情報から補間することによって、集約されてもよい。他の属性に関して、値は、持続座標フレームに適用するために、値の全てを考慮することによって、集約されてもよい。類似論理は、マップのタイルまたは他のエリアに関して属性を導出するために適用されてもよい。
【0375】
その中でマージするために提出された追跡マップが、任意の以前に記憶された規準マップに対して十分な相関を有していない、シナリオでは、本システムは、その追跡マップに基づいて、新しい規準マップを作成してもよい。いくつかの実施形態では、追跡マップは、規準マップにレベル上げされてもよい。このように、規準マップのセットによって表される物理的世界の領域は、ユーザデバイスがマージするための追跡マップを提出するにつれて、成長し得る。
【0376】
パス可能世界モデル812は、クラウドモデルであってもよく、これは、複数のARデバイスによって共有されてもよい。パス可能世界モデル812は、環境マップをマップデータベース808内に記憶する、または別様にそれへのアクセスを有してもよい。いくつかの実施形態では、以前に算出された環境マップが、更新されると、そのマップの以前のバージョンは、古くなったマップをデータベースから除去するように、削除されてもよい。いくつかの実施形態では、以前に算出された環境マップが、更新されると、そのマップの以前のバージョンは、アーカイブされ、環境の以前のバージョンの読出/閲覧を有効にし得る。いくつかの実施形態では、許可が、ある読取/書込アクセスを有するARシステムのみが、マップの以前のバージョンの削除/アーカイブをトリガし得るように設定されてもよい。
【0377】
1つまたはそれを上回るARデバイス/システムによって供給される追跡マップから作成されたこれらの環境マップは、ARシステム内のARデバイスによってアクセスされてもよい。マップランク付け部分806はまた、環境マップをARデバイスに供給する際に使用されてもよい。ARデバイスは、その現在の場所に関する環境マップを要求するメッセージを送信してもよく、マップランク付け部分806は、要求側デバイスに関連する環境マップを選択およびランク付けするために使用されてもよい。
【0378】
いくつかの実施形態では、ARシステム800は、マージされたマップをクラウドPW812から受信するように構成される、ダウンサンプリング部分814を含んでもよい。クラウドPW812から受信され、マージされたマップは、クラウドのための記憶フォーマットであってもよく、これは、平方メートルあたり多数のPCFまたはPCFと関連付けられる複数の画像フレームまたは大セットの特徴点等の高分解能情報を含んでもよい。ダウンサンプリング部分814は、クラウドフォーマットマップをARデバイス上への記憶のために好適なフォーマットにダウンサンプリングするように構成されてもよい。デバイスフォーマットマップは、より少ないPCFまたはPCF毎に記憶されたより少ないデータ等のより少ないデータを有し、ARデバイスの限定されたローカル演算能力および記憶空間に対応し得る。
【0379】
図27は、遠隔記憶媒体、例えば、クラウド内に記憶され得る、複数の規準マップ120を図示する、簡略化されたブロック図である。各規準マップ120は、惑星である地球上のいずれかの場所等、物理的空間内の規準マップの場所を示す、規準マップ識別子としての役割を果たす、複数の属性を含んでもよい。これらの規準マップ識別子は、以下の識別子、すなわち、経度および緯度の範囲によって表される、エリア識別子と、フレーム記述子(例えば、図21におけるグローバル特徴列316)と、Wi-Fiフィンガプリントと、特徴記述子(例えば、図21における特徴記述子310)と、マップに寄与した1つまたはそれを上回るデバイスを示す、デバイス識別とのうちの1つまたはそれを上回るものを含んでもよい。マップ間の対応を検索する際、これらの属性は、比較されるマップおよび/または比較される部分またはマップを定義するために使用されてもよい。
【0380】
図27における要素はそれぞれ、別個のマップと見なされ得るが、いくつかの実施形態では、処理は、規準マップのタイルまたは他のエリア上で実施されてもよい。規準マップ120はそれぞれ、例えば、より大きいマップのエリアを表してもよい。それらの実施形態では、属性は、マップ全体の代わりに、またはそれに加え、エリアに割り当てられてもよい。故に、マップの選択の本明細書の議論は、代替として、または加えて、1つまたはそれを上回るタイル等のマップのセグメントを選択するために適用されてもよい。
【0381】
図示される実施例では、規準マップ120は、地球の表面上に存在し得るため、2次元パターンで地理的に配置される。規準マップ120は、重複経度および緯度を有する、任意の規準マップが、新しい規準マップの中にマージされ得るため、対応する経度および緯度によって、一意に識別可能であり得る。
【0382】
図28は、いくつかの実施形態による、新しい追跡マップを1つまたはそれを上回る規準マップに対して位置特定するために使用され得る、規準マップを選択する方法を図示する、概略図である。そのような処理は、マージするための候補マップを識別する際に使用されてもよい、またはユーザデバイスを規準マップに対して位置特定するために使用されてもよい。本方法は、実施例として、パス可能世界(例えば、パス可能世界モジュール538)内のデータベース内に記憶され得る、規準マップ120の母集合にアクセスするステップ(行為120)から開始してもよい。規準マップの母集合は、全ての以前に訪問した場所からの規準マップを含んでもよい。XRシステムは、全ての規準マップの母集合を小サブセットまたは単一マップのみにフィルタリングしてもよい。選択されたセットは、デバイス上でのさらなる処理のために、ユーザデバイスに送信されてもよい。代替として、または加えて、さらなる処理のいくつかまたは全ては、クラウド内で実施されてもよく、その処理の結果は、マップをマージする場合と同様に、ユーザデバイスに送信され、および/またはクラウド内に記憶されてもよい。
【0383】
本方法は、規準マップの母集合をフィルタリングすること(行為300)を含んでもよい。いくつかの実施形態では、行為300は、少なくとも1つのマップがその経度および緯度に存在する限り、XRデバイスから受信された位置識別子のその経度および緯度を含む、経度および緯度を網羅する、少なくとも1つのマッチング規準マップ120を選択してもよい。いくつかの実施形態では、行為300は、マッチング規準マップに隣接する、経度および緯度を網羅する、少なくとも1つの近傍の規準マップを選択してもよい。いくつかの実施形態では、行為300は、複数のマッチング規準マップと、複数の近傍の規準マップとを選択してもよい。行為300は、例えば、規準マップの数を約10分の1、例えば、数千から数百に低減させ、第1のフィルタリングされた選択を形成してもよい。代替として、または加えて、緯度および経度以外の基準が、近傍のマップを識別するために使用されてもよい。XRデバイスは、例えば、同一セッションの一部として、セット内の規準マップを用いて以前に位置特定されていてもよい。クラウドサービスは、以前に位置特定されたマップを含む、XRデバイスについての情報を留保してもよい。本実施例では、行為300において選択されたマップは、それに対してXRデバイスが位置特定されたマップに隣接する、エリアを網羅するものを含んでもよい。
【0384】
本方法は、Wi-Fiフィンガプリントに基づいて、規準マップの第1のフィルタリングされた選択をフィルタリングすること(行為302)を含んでもよい。行為302は、XRデバイスからの位置識別子の一部として受信されたWi-Fiフィンガプリントに基づいて、緯度および経度を決定してもよい。行為302は、Wi-Fiフィンガプリントからの緯度および経度と規準マップ120の緯度および経度を比較し、第2のフィルタリングされた選択を形成する、1つまたはそれを上回る規準マップを決定してもよい。行為302は、規準マップの数を約10分の1、例えば、第2の選択を形成する、数百から数十個の規準マップ(例えば、50)に低減させてもよい。例えば、第1のフィルタリングされた選択は、130個の規準マップを含み得、第2のフィルタリングされた選択は、130個の規準マップのうちの50個を含み得、130個の規準マップのうちの残りの80個を含み得ない。
【0385】
本方法は、キーフレームに基づいて、規準マップの第2のフィルタリングされた選択をフィルタリングすること(行為304)を含んでもよい。行為304は、XRデバイスによって捕捉された画像を表すデータと規準マップ120を表すデータを比較してもよい。いくつかの実施形態では、画像および/またはマップを表すデータは、特徴記述子(例えば、図25におけるDSF記述子)および/またはグローバル特徴列(例えば、図21における316)を含んでもよい。行為304は、規準マップの第3のフィルタリングされた選択を提供してもよい。いくつかの実施形態では、行為304の出力は、例えば、第2のフィルタリングされた選択に続いて識別された50個の規準マップのうちの5つのみであってもよい。マップ伝送機122が、次いで、第3のフィルタリングされた選択に基づいて、1つまたはそれを上回る規準マップを視認デバイスに伝送する。行為304は、規準マップの数を約10分の1、第3の選択を形成する、例えば、数十から単一桁数の規準マップ(例えば、5)に低減させ得る。いくつかの実施形態では、XRデバイスは、第3のフィルタリングされた選択内の規準マップを受信し、受信された規準マップの中に位置特定するように試みてもよい。
【0386】
例えば、行為304は、規準マップ120のグローバル特徴列316および視認デバイスによって捕捉された画像(例えば、ユーザのためのローカル追跡マップの一部であり得る、画像)に基づくグローバル特徴列316に基づいて、規準マップ120をフィルタリングしてもよい。図27における規準マップ120のそれぞれのものは、したがって、それと関連付けられる1つまたはそれを上回るグローバル特徴列316を有する。いくつかの実施形態では、グローバル特徴列316は、XRデバイスが画像または特徴詳細をクラウドに提出するときに入手されてもよく、クラウドは、画像または特徴詳細を処理し、規準マップ120のためのグローバル特徴列316を生成する。
【0387】
いくつかの実施形態では、クラウドは、視認デバイスによって捕捉されたライブ/新しい/現在の画像の特徴詳細を受信してもよく、クラウドは、ライブ画像のためのグローバル特徴列316を生成してもよい。クラウドは、次いで、ライブグローバル特徴列316に基づいて、規準マップ120をフィルタリングしてもよい。いくつかの実施形態では、グローバル特徴列は、ローカル視認デバイス上に生成されてもよい。いくつかの実施形態では、グローバル特徴列は、遠隔で、例えば、クラウド上で生成されてもよい。いくつかの実施形態では、クラウドは、フィルタリングされた規準マップを、フィルタリングされた規準マップと関連付けられるグローバル特徴列316とともに、XRデバイスに伝送してもよい。いくつかの実施形態では、視認デバイスが、その追跡マップを規準マップに対して位置特定すると、ローカル追跡マップのグローバル特徴列316と規準マップのグローバル特徴列をマッチングさせることによって、そのように行ってもよい。
【0388】
XRデバイスの動作は、行為(300、302、304)の全てを実施しなくてもよいことを理解されたい。例えば、規準マップの母集合が、比較的に小さい(例えば、500個のマップ)場合、位置特定するように試みるXRデバイスは、Wi-Fiフィンガプリント(例えば、行為302)およびキーフレーム(例えば、行為304)に基づいて、規準マップの母集合をフィルタリングするが、エリア(例えば、行為300)に基づくフィルタリングを省略してもよい。さらに、マップは、その全体として比較されることが必要であるわけではない。いくつかの実施形態では、例えば、2つのマップの比較は、新しいマップおよびマップの母集合から選択されたマップの両方に現れる、持続姿勢またはPCF等の共通の持続点の識別をもたらし得る。その場合、記述子は、持続点と関連付けられてもよく、それらの記述子は、比較されてもよい。
【0389】
図29は、いくつかの実施形態による、1つまたはそれを上回るランク付けされた環境マップを選択する方法900を図示する、フローチャートである。図示される実施形態では、ランク付けすることは、追跡マップを作成する、ユーザのARデバイスのために実施される。故に、追跡マップは、環境マップをランク付けする際に使用するために利用可能である。追跡マップが利用不可能である、実施形態では、追跡マップに明示的に依拠しない、環境マップの選択およびランク付けすることの部分のいくつかまたは全てが、使用されてもよい。
【0390】
方法900は、行為902から開始し得、追跡マップが形成された場所の近傍の環境マップのデータベースからのマップのセット(規準マップとしてフォーマット化され得る)が、アクセスされ、次いで、ランク付けのためにフィルタリングされ得る。加えて、行為902では、その中でユーザのARデバイスが動作しているエリアに関する、少なくとも1つのエリア属性が、決定される。ユーザのARデバイスが追跡マップを構築している、シナリオでは、エリア属性は、それにわたって追跡マップが作成される、エリアに対応し得る。具体的実施例として、エリア属性は、ARデバイスが追跡マップを算出していた間にアクセスポイントからコンピュータネットワークに受信された信号に基づいて、算出されてもよい。
【0391】
図30は、いくつかの実施形態による、ARシステム800の例示的マップランク付け部分806を描写する。マップランク付け部分806は、ARデバイス上で実行される部分およびクラウド等の遠隔コンピューティングシステム上で実行される部分を含み得るため、クラウドコンピューティング環境内で実行されてもよい。マップランク付け部分806は、方法900の少なくとも一部を実施するように構成されてもよい。
【0392】
図31Aは、いくつかの実施形態による、追跡マップ(TM)1102およびデータベース内の環境マップCM1-CM4のエリア属性AA1-AA8の実施例を描写する。図示されるように、環境マップは、複数のエリア属性に関連付けられてもよい。エリア属性AA1-AA8は、追跡マップ1102を算出するARデバイスによって検出された無線ネットワークのパラメータ、例えば、それに対してARデバイスが接続される、ネットワークの基本サービスセット識別子(BSSID)、および/または、例えば、ネットワークタワー1104を通して無線ネットワークへのアクセスポイントの受信される信号の強度を含んでもよい。無線ネットワークのパラメータは、Wi-Fiおよび5G NRを含む、プロトコルに準拠してもよい。図32に図示される実施例では、エリア属性は、その中でユーザARデバイスが、センサデータを収集し、追跡マップを形成した、エリアのフィンガプリントである。
【0393】
図31Bは、いくつかの実施形態による、追跡マップ1102の決定された地理的場所1106の実施例を描写する。図示される実施例では、決定された地理的場所1106は、重心点1110と、重心点の周囲を囲むエリア1108とを含む。本願の地理的場所の決定は、図示されるフォーマットに限定されないことを理解されたい。決定された地理的場所は、例えば、異なるエリア形状を含む、任意の好適なフォーマットを有してもよい。本実施例では、地理的場所は、エリア属性を地理的場所に関連させるデータベースを使用して、エリア属性から決定される。データベースは、市販されており、例えば、緯度および経度として表され、本動作のために使用され得る、Wi-Fiフィンガプリントを場所に関連させる、データベースである。
【0394】
図29の実施形態では、環境マップを含有する、マップデータベースはまた、マップによって網羅される緯度および経度を含む、それらのマップに関する場所データを含んでもよい。行為902における処理は、そのデータベースから、追跡マップのエリア属性に関して決定された同一緯度および経度を網羅する、環境マップのセットを選択することを伴ってもよい。
【0395】
行為904は、行為902においてアクセスされる環境マップのセットの第1のフィルタリングである。行為902では、環境マップは、追跡マップの地理的場所との近接度に基づいて、セット内に留保される。本フィルタリングステップは、追跡マップとセット内の環境マップと関連付けられる緯度および経度を比較することによって実施されてもよい。
【0396】
図32は、いくつかの実施形態による、行為904の実施例を描写する。各エリア属性は、対応する地理的場所1202を有してもよい。環境マップのセットは、追跡マップの決定された地理的場所と重複する地理的場所を有する、少なくとも1つのエリア属性を伴う、環境マップを含んでもよい。図示される実施例では、識別された環境マップのセットは、それぞれ、追跡マップ1102の決定された地理的場所と重複する地理的場所を有する、少なくとも1つのエリア属性を有する、環境マップCM1、CM2、およびCM4を含む。エリア属性AA6と関連付けられる、環境マップCM3は、追跡マップの決定された地理的場所外にあるため、セット内に含まれない。
【0397】
他のフィルタリングステップもまた、最終的に処理される(マップマージのため、またはパス可能世界情報をユーザデバイスに提供するため等)セット内の環境マップの数を低減させる/ランク付けするために、環境マップのセット上で実施されてもよい。方法900は、追跡マップおよび環境マップのセットの環境マップと関連付けられるネットワークアクセスポイントの1つまたはそれを上回る識別子の類似性に基づいて、環境マップのセットをフィルタリングすること(行為906)を含んでもよい。マップの形成の間、センサデータを収集し、マップを生成する、デバイスは、Wi-Fiまたは類似無線通信プロトコル等を通して、ネットワークアクセスポイントを通して、ネットワークに接続され得る。アクセスポイントは、BSSIDによって識別され得る。ユーザデバイスは、エリアを通して移動し、データを収集し、マップを形成するにつれて、複数の異なるアクセスポイントに接続し得る。同様に、複数のデバイスが、マップを形成するための情報を供給するとき、デバイスは、異なるアクセスポイントを通して接続されている場合があり、したがって、同様にその理由から、マップを形成する際に使用される複数のアクセスポイントが存在し得る。故に、マップと関連付けられる複数のアクセスポイントが存在し得、アクセスポイントのセットは、マップの場所のインジケーションであり得る。RSSI値として反映され得る、アクセスポイントからの信号の強度は、さらなる地理的情報を提供し得る。いくつかの実施形態では、BSSIDおよびRSSI値のリストは、マップのためのエリア属性を形成し得る。
【0398】
いくつかの実施形態では、ネットワークアクセスポイントの1つまたはそれを上回る識別子の類似性に基づいて、環境マップのセットをフィルタリングすることは、環境マップのセット内に、ネットワークアクセスポイントの1つまたはそれを上回る識別子に基づいて、追跡マップの少なくとも1つのエリア属性との最高Jaccard類似性を伴う環境マップを留保することを含んでもよい。図33は、いくつかの実施形態による、行為906の実施例を描写する。図示される実施例では、エリア属性AA7と関連付けられるネットワーク識別子は、追跡マップ1102に関する識別子として決定され得る。行為906後の環境マップのセットは、AA7とのより高いJaccard類似性内のエリア属性を有し得る、環境マップCM2と、同様にエリア属性AA7を含む、環境マップCM4とを含む。環境マップCM1は、AA7との最低Jaccard類似性を有するため、セット内に含まれない。
【0399】
行為902-906における処理は、マップと関連付けられるメタデータに基づいて、マップデータベース内に記憶されるマップのコンテンツに実際にアクセスすることなく、実施されてもよい。他の処理は、マップのコンテンツにアクセスすることを伴ってもよい。行為908は、メタデータに基づいてフィルタリング後にサブセット内に残っている環境マップにアクセスすることを示す。本行為は、後続動作がアクセスされるコンテンツを用いて実施され得る場合、プロセスにおけるより早い段階または後の段階のいずれかで実施されてもよいことを理解されたい。
【0400】
方法900は、追跡マップおよび環境マップのセットの環境マップのコンテンツを表すメトリックの類似性に基づいて、環境マップのセットをフィルタリングすること(行為910)を含んでもよい。追跡マップおよび環境マップのコンテンツを表すメトリックは、マップのコンテンツから算出された値のベクトルを含んでもよい。例えば、マップを形成する際に使用される1つまたはそれを上回るキーフレームのために算出される、上記に説明されるような深層キーフレーム記述子は、マップまたはマップの一部の比較のためのメトリックを提供し得る。メトリックは、行為908において読み出されたマップから算出されてもよい、または事前に算出され、それらのマップと関連付けられるメタデータとして記憶されてもよい。いくつかの実施形態では、追跡マップおよび環境マップのセットの環境マップのコンテンツを表すメトリックの類似性に基づいて、環境マップのセットをフィルタリングすることは、環境マップのセット内に、追跡マップの特性のベクトルと環境マップのセット内の環境マップを表すベクトルとの間に最小ベクトル距離を伴う環境マップを留保することを含んでもよい。
【0401】
方法900は、追跡マップの一部と環境マップのセットの環境マップの一部との間のマッチング度に基づいて、環境マップのセットをさらにフィルタリングすること(行為912)を含んでもよい。マッチング度は、位置特定プロセスの一部として決定されてもよい。非限定的実施例として、位置特定は、それらが物理的世界の同一部分を表し得るほど十分に類似する、追跡マップおよび環境マップ内の重要点を識別することによって実施されてもよい。いくつかの実施形態では、重要点は、特徴、特徴記述子、キーフレーム、キーリグ、持続姿勢、および/またはPCFであってもよい。追跡マップ内の重要点のセットは、次いで、環境マップ内の重要点のセットとの最良適合を生産するように整合され得る。対応する重要点間の平均二乗距離が、算出され得、追跡マップの特定の領域に関する閾値を下回る場合、追跡マップおよび環境マップが物理的世界の同一領域を表すことのインジケーションとして使用される。
【0402】
いくつかの実施形態では、追跡マップの一部と環境マップのセットの環境マップの一部との間のマッチング度に基づいて、環境マップのセットをフィルタリングすることは、環境マップのセットの環境マップ内にもまた表される、追跡マップによって表される物理的世界の体積を算出することと、環境マップのセット内に、セットのフィルタリング除去された環境マップより大きい算出された体積を伴う環境マップを留保することとを含んでもよい。図34は、いくつかの実施形態による、行為912の実施例を描写する。図示される実施例では、行為912後の環境マップのセットは、追跡マップ1102のエリアとマッチングされるエリア1402を有する、環境マップCM4を含む。環境マップCM1は、追跡マップ1102のエリアとマッチングされるエリアを有していないため、セット内に含まれない。
【0403】
いくつかの実施形態では、環境マップのセットは、行為906、行為910、および行為912の順序でフィルタリングされてもよい。いくつかの実施形態では、環境マップのセットは、行為906、行為910、および行為912に基づいて、フィルタリングされてもよく、これは、最低から最高へとフィルタリングを実施するために要求される処理に基づく順序で実施され得る。方法900は、環境マップおよびデータのセットをロードすること(行為914)を含んでもよい。
【0404】
図示される実施例では、ユーザデータベースは、ARデバイスが使用されたエリアを示す、エリア識別を記憶する。エリア識別は、エリア属性であってもよく、これは、使用時にARデバイスによって検出された無線ネットワークのパラメータを含み得る。マップデータベースは、ARデバイスによって供給されるデータおよび関連付けられるメタデータから構築された複数の環境マップを記憶してもよい。関連付けられるメタデータは、そこから環境マップが構築されたデータを供給した、ARデバイスのエリア識別から導出されるエリア識別を含んでもよい。ARデバイスは、メッセージをPWモジュールに送信し、新しい追跡マップが作成される、または作成中であることを示してもよい。PWモジュールは、ARデバイスに関するエリア識別子を算出し、受信されたパラメータおよび/または算出されたエリア識別子に基づいて、ユーザデータベースを更新してもよい。PWモジュールはまた、環境マップを要求するARデバイスと関連付けられるエリア識別子を決定し、エリア識別子に基づいて、マップデータベースから環境マップのセットを識別し、環境マップのセットをフィルタリングし、フィルタリングされた環境マップのセットをARデバイスに伝送してもよい。いくつかの実施形態では、PWモジュールは、例えば、追跡マップの地理的場所、追跡マップおよび環境マップのセットの環境マップと関連付けられるネットワークアクセスポイントの1つまたはそれを上回る識別子の類似性、追跡マップおよび環境マップのセットの環境マップのコンテンツを表すメトリックの類似性、および追跡マップの一部と環境マップのセットの環境マップの一部との間のマッチング度を含む、1つまたはそれを上回る基準に基づいて、環境マップのセットをフィルタリングしてもよい。
【0405】
いくつかの実施形態のいくつかの側面がこれまで説明されたが、種々の改変、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。一実施例として、実施形態は、拡張(AR)環境に関連して説明される。本明細書に説明される技法の一部または全部は、MR環境、より一般的には、他のXR環境およびVR環境内に適用されてもよいことを理解されたい。
【0406】
別の実施例として、実施形態は、ウェアラブルデバイス等のデバイスに関連して説明される。本明細書に説明される技法の一部または全部は、ネットワーク(クラウド等)、離散アプリケーション、および/またはデバイス、ネットワーク、および離散アプリケーションの任意の好適な組み合わせを介して実装されてもよいことを理解されたい。
【0407】
さらに、図29は、候補マップをフィルタリングし、高ランク付けマップのセットをもたらすために使用され得る、基準の実施例を提供する。他の基準が、説明される基準の代わりに、またはそれに加え、使用されてもよい。例えば、複数の候補マップが、あまり望ましくないマップをフィルタリング除去するために使用されるメトリックの類似値を有する場合、候補マップの特性が、候補マップとして留保される、またはフィルタリング除去されるマップを決定するために使用されてもよい。例えば、より大きいまたはより稠密な候補マップは、より小さい候補マップより優先されてもよい。いくつかの実施形態では、図27-28は、図29-34に説明されるシステムおよび方法の全部または一部を説明し得る。
【0408】
図35および36は、いくつかの実施形態による、複数の環境マップをランク付けおよびマージするように構成される、XRシステムを図示する、概略図である。いくつかの実施形態では、パス可能世界(PW)は、マップをランク付けおよび/またはマージすることをトリガすべきときを決定し得る。いくつかの実施形態では、使用されるべきマップを決定することは、いくつかの実施形態によると、少なくとも部分的に、図21-25に関連して上記に説明される深層キーフレームに基づいてもよい。
【0409】
図37は、いくつかの実施形態による、物理的世界の環境マップを作成する方法3700を図示する、ブロック図である。方法3700は、ユーザによって装着されるXRデバイスによって捕捉された追跡マップを規準マップの群(例えば、図28の方法および/または図29の方法900によって選択された規準マップ)に対して位置特定すること(行為3702)から開始してもよい。行為3702は、追跡マップのキーリグを規準マップの群の中に位置特定することを含んでもよい。各キーリグの位置特定結果は、キーリグの位置特定された姿勢と、2D/3D特徴対応のセットとを含んでもよい。
【0410】
いくつかの実施形態では、方法3700は、追跡マップを接続された成分に分裂させること(行為3704)を含んでもよく、これは、接続された断片をマージすることによって、マップをロバストにマージすることを可能にし得る。各接続された成分は、所定の距離内にある、キーリグを含んでもよい。方法3700は、所定の閾値より大きい接続された成分を1つまたはそれを上回る規準マップの中にマージすること(行為3706)と、マージされた接続された成分を追跡マップから除去することとを含んでもよい。
【0411】
いくつかの実施形態では、方法3700は、追跡マップの同一の接続された成分とマージされる、群の規準マップをマージすること(行為3708)を含んでもよい。いくつかの実施形態では、方法3700は、任意の規準マップとマージされない、追跡マップの残りの接続された成分を、規準マップにレベル上げすること(行為3710)を含んでもよい。いくつかの実施形態では、方法3700は、追跡マップの持続姿勢および/またはPCFと追跡マップの少なくとも1つの接続された成分とマージされる、規準マップをマージすること(行為3712)を含んでもよい。いくつかの実施形態では、方法3700は、例えば、マップ点を融合させ、冗長キーリグをプルーニングすることによって、規準マップを完成させること(行為3714)を含んでもよい。
【0412】
図38Aおよび38Bは、いくつかの実施形態による、新しい追跡マップで追跡マップ700(図7)からレベル上げされ得る、規準マップ700を更新することによって作成された環境マップ3800を図示する。図7に関して図示および説明されるように、規準マップ700は、点702によって表される、対応する物理的世界内の再構成された物理的オブジェクトの間取図706を提供し得る。いくつかの実施形態では、マップ点702は、複数の特徴を含み得る、物理的オブジェクトの特徴を表し得る。新しい追跡マップは、物理的世界を中心として捕捉され、クラウドにアップロードされ、マップ700とマージされてもよい。新しい追跡マップは、マップ点3802と、キーリグ3804、3806とを含んでもよい。図示される実施例では、キーリグ3804は、例えば、マップ700のキーリグ704との対応を確立することによって、規準マップに対して正常に位置特定されたキーリグを表す(図38Bに図示されるように)。他方では、キーリグ3806は、マップ700に対して位置特定されていない、キーリグを表す。キーリグ3806は、いくつかの実施形態では、別個の規準マップにレベル上げされてもよい。
【0413】
図39A-39Fは、同一物理的空間内のユーザのための共有体験を提供する、クラウドベースの持続座標系の実施例を図示する、概略図である。図39Aは、例えば、クラウドからの規準マップ4814が、図20A-20Cのユーザ4802Aおよび4802Bによって装着されるXRデバイスによって受信されることを示す。規準マップ4814は、規準座標フレーム4806Cを有してもよい。規準マップ4814は、複数の関連付けられるPP(例えば、図39Cにおける4818A、4818B)を伴う、PCF4810Cを有してもよい。
【0414】
図39Bは、XRデバイスが、その個別の世界座標系4806A、4806Bと規準座標フレーム4806Cとの間に関係を確立したことを示す。これは、例えば、規準マップ4814を個別のデバイス上で位置特定することによって行われてもよい。追跡マップを規準マップに対して位置特定することは、デバイス毎に、そのローカル世界座標系と規準マップの座標系との間の変換をもたらし得る。
【0415】
図39Cは、位置特定の結果として、変換が個別のデバイス上のローカルPCF(例えば、PCF4810A、4810B)と規準マップ上の個別の持続姿勢(例えば、PP4818A、4818B)との間で算出され得ることを示す(例えば、変換4816A、4816B)。これらの変換を用いることで、各デバイスは、そのローカルPCFを使用し得、これは、デバイス上のセンサを用いて検出された画像を処理し、ローカルデバイスに対する場所を決定し、PP4818A、4818Bまたは規準マップの他の持続点に結び付けられる仮想コンテンツを表示することによって、デバイス上でローカルで検出されることができる。そのようなアプローチは、仮想コンテンツを各ユーザに対して正確に位置特定し得、各ユーザが物理的空間内で仮想コンテンツの同一体験を有することを可能にし得る。
【0416】
図39Dは、規準マップからローカル追跡マップへの持続姿勢スナップショットを示す。図から分かるように、ローカル追跡マップは、持続姿勢を介して、相互に接続される。図39Eは、ユーザ4802Aによって装着されるデバイス上のPCF4810Aが、PP4818Aを通して、ユーザ4802Bによって装着されるデバイス内にアクセス可能であることを示す。図39Fは、追跡マップ4804A、4804Bおよび規準4814がマージされ得ることを示す。いくつかの実施形態では、いくつかのPCFは、マージの結果として、除去されてもよい。図示される実施例では、マージされたマップは、規準マップ4814のPCF4810Cを含むが、追跡マップ4804A、4804BのPCF4810A、4810Bを含まない。PCF4810A、4810Bと以前に関連付けられるPPは、マップマージ後、PCF4810Cと関連付けられてもよい。
【実施例
【0417】
図40および41は、図9の第1のXRデバイス12.1によって追跡マップを使用する実施例を図示する。図40は、いくつかの実施形態による、3次元の第1のローカル追跡マップ(マップ1)の2次元表現であって、これは、図9の第1のXRデバイスによって生成され得る。図41は、いくつかの実施形態による、マップ1を第1のXRデバイスから図9のサーバにアップロードすることを図示する、ブロック図である。
【0418】
図40は、第1のXRデバイス12.1上のマップ1および仮想コンテンツ(コンテンツ123およびコンテンツ456)を図示する。マップ1は、原点(原点1)を有する。マップ1は、いくつかのPCF(PCFa-PCFd)を含む。第1のXRデバイス12.1の視点から、PCFaは、一例として、マップ1の原点に位置し、(0,0,0)のX、Y、およびZ座標を有し、PCFbは、X、Y、およびZ座標(-1,0,0)を有する。コンテンツ123は、PCFaと関連付けられる。本実施例では、コンテンツ123は、(1,0,0)のPCFaに対するX、Y、およびZ関係を有する。コンテンツ456は、PCFbに対する関係を有する。本実施例では、コンテンツ456は、PCFbに対する(1,0,0)のX、Y、およびZ関係を有する。
【0419】
図41では、第1のXRデバイス12.1は、マップ1をサーバ20にアップロードする。本実施例では、サーバが、追跡マップによって表される物理的世界の同一領域のための規準マップを記憶しないため、追跡マップは、初期規準マップとして記憶された。サーバ20は、ここでは、マップ1に基づく、規準マップを有する。第1のXRデバイス12.1は、本段階では空である、規準マップを有する。サーバ20は、議論の目的のために、いくつかの実施形態では、マップ1以外の他のマップを含まない。マップは、第2のXRデバイス12.2上に記憶されていない。
【0420】
第1のXRデバイス12.1はまた、そのWi-Fiシグネチャデータをサーバ20に伝送する。サーバ20は、Wi-Fiシグネチャデータを使用して、記録されていたそのような他のデバイスのGPS場所とともに、過去にサーバ20または他のサーバに接続されていた他のデバイスから集められたインテリジェンスに基づいて、第1のXRデバイス12.1の大まかな場所を決定してもよい。第1のXRデバイス12.1は、ここで、第1のセッション(図8参照)を終了し得、サーバ20から接続解除し得る。
【0421】
図42は、いくつかの実施形態による、図16のXRシステムを図示する、概略図であって、第1のユーザ14.1が第1のセッションを終了した後、第2のユーザ14.2がXRシステムの第2のXRデバイスを使用して第2のセッションを開始したことを示す。図43Aは、第2のユーザ14.2による第2のセッションの開始を示す、ブロック図である。第1のユーザ14.1は、第1のユーザ14.1による第1のセッションが終了したため、想像線で示される。第2のXRデバイス12.2は、オブジェクトを記録し始める。可変粒度を伴う種々のシステムが、第2のXRデバイス12.2による第2のセッションが第1のXRデバイス12.1による第1のセッションの同一近傍内にあることを決定するために、サーバ20によって使用されてもよい。例えば、Wi-Fiシグネチャデータ、全地球測位システム(GPS)測位データ、Wi-Fiシグネチャデータに基づくGPSデータ、または場所を示す任意の他のデータが、その場所を記録するために、第1および第2のXRデバイス12.1および12.2内に含まれてもよい。代替として、第2のXRデバイス12.2によって識別されるPCFは、マップ1のPCFと類似性を示し得る。
【0422】
図43Bに示されるように、第2のXRデバイスは、ブートアップし、画像1110等のデータを1つまたはそれを上回るカメラ44、46から収集し始める。図14に示されるように、いくつかの実施形態では、XRデバイス(例えば、第2のXRデバイス12.2)は、1つまたはそれを上回る画像1110を収集し、画像処理を実施し、1つまたはそれを上回る特徴/着目点1120を抽出してもよい。各特徴は、記述子1130に変換されてもよい。いくつかの実施形態では、記述子1130は、結び付けられた関連付けられる画像の位置および方向を有し得る、キーフレーム1140を説明するために使用されてもよい。1つまたはそれを上回るキーフレーム1140は、前の持続姿勢1150からの閾値距離、例えば、3メートル後に自動的に生成され得る、単一持続姿勢1150に対応してもよい。1つまたはそれを上回る持続姿勢1150は、所定の距離後、例えば、5メートル毎に自動的に生成され得る、単一PCF1160に対応してもよい。経時的に、ユーザが、ユーザの環境を動き回り続け、XRデバイスが、画像1110等のより多くのデータを収集し続けるにつれて、付加的PCF(例えば、PCF3およびPCF4、5)が、作成され得る。1つまたはそれを上回るアプリケーション1180は、XRデバイス上で起動され、ユーザへの提示のために、仮想コンテンツ1170をXRデバイスに提供してもよい。仮想コンテンツは、関連付けられるコンテンツ座標フレームを有してもよく、これは、1つまたはそれを上回るPCFに対して設置されてもよい。図43Bに示されるように、第2のXRデバイス12.2は、3つのPCFを作成する。いくつかの実施形態では、第2のXRデバイス12.2は、サーバ上20に記憶される1つまたはそれを上回る規準マップに対して位置特定するように試みてもよい。
【0423】
いくつかの実施形態では、図43Cに示されるように、第2のXRデバイス12.2は、規準マップ120をサーバ20からダウンロードしてもよい。第2のXRデバイス12.2上のマップ1は、PCFa-dと、原点1とを含む。いくつかの実施形態では、サーバ20は、種々の場所のための複数の規準マップを有してもよく、第2のXRデバイス12.2が第1のセッションの間の第1のXRデバイス12.1の近傍と同じ近傍内にあることを決定し、第2のXRデバイス12.2に、その近傍に関する規準マップを送信してもよい。
【0424】
図44は、第2のXRデバイス12.2が、マップ2を生成する目的のためのPCFの識別を開始することを示す。第2のXRデバイス12.2は、単一PCF、すなわち、PCF1、2のみを識別している。第2のXRデバイス12.2のためのPCF1、2のX、Y、およびZ座標は、(1,1,1)であり得る。マップ2は、その独自の原点(原点2)を有し、これは、現在の頭部姿勢セッションのためのデバイス始動時のデバイス2の頭部姿勢に基づいてもよい。いくつかの実施形態では、第2のXRデバイス12.2は、マップ2を規準マップに対して位置特定するように直ちに試みてもよい。いくつかの実施形態では、マップ2は、システムが2つのマップ間の任意または十分な重複を認識しないため、規準マップ(マップ1)に対して位置特定することが不可能である場合がある(すなわち、位置特定が失敗し得る)。位置特定は、第2のマップ内にもまた表される、第1のマップ内に表される物理的世界の一部を識別し、第1のマップと第2のマップとの間の、それらの部分を整合させるために要求される変換を算出することによって実施されてもよい。いくつかの実施形態では、本システムは、ローカルマップと規準マップとの間のPCF比較に基づいて、位置特定してもよい。いくつかの実施形態では、本システムは、ローカルマップと規準マップとの間の持続姿勢比較に基づいて、位置特定してもよい。いくつかの実施形態では、本システムは、ローカルマップと規準マップとの間のキーフレーム比較に基づいて、位置特定してもよい。
【0425】
図45は、第2のXRデバイス12.2がマップ2のさらなるPCF(PCF1、2、PCF3、PCF4、5)を識別した後のマップ2を示す。第2のXRデバイス12.2は、再び、マップ2を規準マップに対して位置特定するように試みる。マップ2は、規準マップの少なくとも一部と重複するように拡張されたため、位置特定試行は、成功するであろう。いくつかの実施形態では、ローカル追跡マップ、マップ2、および規準マップ間の重複は、PCF、持続姿勢、キーフレーム、または任意の他の好適な中間または派生構築物によって表されてもよい。
【0426】
さらに、第2のXRデバイス12.2は、コンテンツ123およびコンテンツ456をマップ2のPCF1、2およびPCF3に関連付けている。コンテンツ123は、(1,0,0)のPCF1、2に対するX、Y、およびZ座標を有する。同様に、マップ2内のPCF3に対するコンテンツ456のX、Y、およびZ座標も、(1,0,0)である。
【0427】
図46Aおよび46Bは、規準マップに対するマップ2の位置特定成功を図示する。位置特定は、1つのマップと他のマップ内のマッチングする特徴に基づいてもよい。ここでは、1つのマップの他のマップに対する平行移動および回転の両方を伴う、適切な変換を用いることで、マップ1410の重複エリア/体積/セクションは、マップ1および規準マップとの共通部分を表す。マップ2は、位置特定する前に、PCF3および4、5を作成し、規準マップは、マップ2が作成される前に、PCFaおよびcを作成したため、異なるPCFが、実空間(例えば、異なるマップ)内の同一体積を表すために作成された。
【0428】
図47に示されるように、第2のXRデバイス12.2は、規準マップからのPCFa-dを含むように、マップ2を拡張させる。PCFa-dの含有は、規準マップに対するマップ2の位置特定を表す。いくつかの実施形態では、XRシステムは、最適化ステップを実施し、1410内のPCF、すなわち、PCF3およびPCF4、5等の複製PCFを重複エリアから除去してもよい。マップ2が位置特定した後、コンテンツ456およびコンテンツ123等の仮想コンテンツの設置は、更新されたマップ2内の最も近い更新されたPCFに対することになるだろう。仮想コンテンツは、コンテンツのための変化されたPCF結び付けにもかかわらず、かつマップ2のための更新されたPCFにもかかわらず、ユーザに対して同一実世界場所内に現れる。
【0429】
図48に示されるように、第2のXRデバイス12.2は、さらなるPCF(PCFe、f、g、およびh)が第2のXRデバイス12.2によって識別されるにつれて、例えば、ユーザが実世界を歩き回るにつれて、マップ2を拡張させ続ける。また、マップ1は、図47および48において拡張されていないことに留意されたい。
【0430】
図49を参照すると、第2のXRデバイス12.2は、マップ2をサーバ20にアップロードする。サーバ20は、規準マップとともに、マップ2を記憶する。いくつかの実施形態では、マップ2は、第2のXRデバイス12.2のためのセッションが終了すると、サーバ20にアップロードされてもよい。
【0431】
サーバ20内の規準マップは、ここでは、PCFiを含み、これは、第1のXRデバイス12.1上のマップ1内に含まれない。サーバ20上の規準マップは、第3のXRデバイス(図示せず)が、マップをサーバ20にアップロードし、そのようなマップが、PCFiを含むと、PCFiを含むように拡張され得る。
【0432】
図50では、サーバ20は、マップ2を規準マップとマージし、新しい規準マップを形成する。サーバ20は、PCFa-dが規準マップおよびマップ2と共通であることを決定する。サーバは、PCFe-hおよびPCF1、2をマップ2から含むように、規準マップを拡張させ、新しい規準マップを形成する。第1および第2のXRデバイス12.1および12.2上の規準マップは、マップ1に基づき、古くなる。
【0433】
図51では、サーバ20は、新しい規準マップを第1および第2のXRデバイス12.1および12.2に伝送する。いくつかの実施形態では、これは、第1のXRデバイス12.1および第2のデバイス12.2が、異なるまたは新しいまたは後続セッションの間、位置特定しようと試みるときに生じ得る。第1および第2のXRデバイス12.1および12.2は、上記に説明されるように、その個別のローカルマップ(それぞれ、マップ1およびマップ2)を新しい規準マップに対して位置特定することに進む。
【0434】
図52に示されるように、頭部座標フレーム96または「頭部姿勢」は、マップ2内のPCFに関連する。いくつかの実施形態では、マップの原点、すなわち、原点2は、セッションの開始時における第2のXRデバイス12.2の頭部姿勢に基づく。PCFが、セッションの間に作成されるにつれて、PCFは、世界座標フレーム、すなわち、原点2に対して設置される。マップ2のPCFは、規準座標フレームに対する持続座標フレームとしての役割を果たし、世界座標フレームは、前のセッションの世界座標フレーム(例えば、図40におけるマップ1の原点1)であってもよい。これらの座標フレームは、図46Bに関連して上記に議論されるように、規準マップに対してマップ2を位置特定するために使用される同一変換によって関連される。
【0435】
世界座標フレームから頭部座標フレーム96への変換は、図9を参照して前述されている。図52に示される頭部座標フレーム96は、マップ2のPCFに対する特定の座標位置にあって、マップ2に対して特定の角度にある、2つの直交軸のみを有する。しかしながら、頭部座標フレーム96は、マップ2のPCFに対するある3次元場所内にあって、3次元空間内の3つの直交軸を有することを理解されたい。
【0436】
図53では、頭部座標フレーム96は、マップ2のPCFに対して移動している。頭部座標フレーム96は、第2のユーザ14.2がその頭部を移動させたため、移動している。ユーザは、その頭部を6自由度(6dof)において移動させることができる。頭部座標フレーム96は、したがって、6dof、すなわち、図52におけるその前の場所3次元において、かつマップ2のPCFに対する約3つの直交軸において移動することができる。頭部座標フレーム96は、それぞれ、図9における実オブジェクト検出カメラ44および慣性測定ユニット48が、実オブジェクトおよび頭部ユニット22の運動を検出すると、調節される。
【0437】
図54は、音が1つまたはそれを上回るPCFと関連付けられてもよいことを示す。ユーザは、例えば、立体音を伴うヘッドホンまたはイヤホンを装着し得る。ヘッドホンを通した音の場所が、従来の技法を使用してシミュレートされることができる。音の場所は、ユーザがその頭部を左に回転させると、音の場所が右に回転し、したがって、ユーザが実世界内の同一場所から生じる音を知覚するように、定常位置に位置してもよい。本実施例では、音の場所は、音123および音456によって表される。議論の目的のために、図54は、その分析において、図48に類似する。第1および第2のユーザ14.1および14.2が、同一または異なる時間において、同一部屋内に位置するとき、彼らは、実世界内の同一場所から生じる音123および音456を知覚する。
【0438】
図55および56は、上記に説明される技術のさらなる実装を図示する。第1のユーザ14.1は、図8を参照して説明されるように、第1のセッションを開始した。図55に示されるように、第1のユーザ14.1は、想像線によって示されるように、第1のセッションを終了した。第1のセッションの終了時、第1のXRデバイス12.1は、マップ1をサーバ20にアップロードした。第1のユーザ14.1は、今度は、第1のセッションの後の時間において、第2のセッションを開始した。第1のXRデバイス12.1は、マップ1が第1のXRデバイス12.1上にすでに記憶されているため、マップ1をサーバ20からダウンロードしない。マップ1が、喪失される場合、第1のXRデバイス12.1は、マップ1をサーバ20からダウンロードする。第1のXRデバイス12.1は、次いで、上記に説明されるように、マップ2のためのPCFを構築し、マップ1に対して位置特定し、規準マップをさらに展開することに進む。第1のXRデバイス12.1のマップ2は、次いで、上記に説明されるように、ローカルコンテンツ、頭部座標フレーム、ローカル音等を関連させるために使用される。
【0439】
図57および58を参照すると、また、1人を上回るユーザが同一セッションにおいてサーバと相互作用することが可能性として考えられ得る。本実施例では、第1のユーザ14.1および第2のユーザ14.2に、第3のXRデバイス12.3を伴う第3のユーザ14.3が加わっている。各XRデバイス12.1、12.2、および12.3は、それぞれ、その独自のマップ、すなわち、マップ1、マップ2、およびマップ3を生成し始める。XRデバイス12.1、12.2、および12.3が、マップ1、2、および3を展開し続けるにつれて、マップは、サーバ20に漸次的にアップロードされる。サーバ20は、マップ1、2、および3をマージし、規準マップを形成する。規準マップは、次いで、サーバ20からXRデバイス12.1、12.2、および12.3のそれぞれのものに伝送される。
【0440】
図59は、いくつかの実施形態による、頭部姿勢を復元および/またはリセットするための視認方法の側面を図示する。図示される実施例では、行為1400において、視認デバイスが、電源投入される。行為1410では、電源投入されることに応答して、新しいセッションが、開始される。いくつかの実施形態では、新しいセッションは、頭部姿勢を確立することを含んでもよい。ユーザの頭部に固着される、頭部搭載型フレーム上の1つまたはそれを上回る捕捉デバイスが、最初に、環境の画像を捕捉し、次いで、表面を画像から決定することによって、環境の表面を捕捉する。いくつかの実施形態では、表面データはまた、重力センサからのデータと組み合わせられ、頭部姿勢を確立してもよい。頭部姿勢を確立する他の好適な方法が、使用されてもよい。
【0441】
行為1420では、視認デバイスのプロセッサが、頭部姿勢の追跡のためのルーチンに入る。捕捉デバイスは、ユーザがその頭部を移動させるにつれて、環境の表面を捕捉し、表面に対する頭部搭載型フレームの配向を決定し続ける。
【0442】
行為1430では、プロセッサが、頭部姿勢が喪失されたかどうかを決定する。頭部姿勢は、低特徴入手をもたらし得る、あまりに多くの反射性表面、低光量、何もない壁、屋外等、「エッジ」ケースに起因して、または移動し、マップの一部を形成する、群集等、動的ケースのため、喪失された状態になり得る。1430におけるルーチンは、頭部姿勢が喪失されたかどうかを決定するための十分な時間を可能にするために、ある時間量、例えば、10秒が経過することを可能にする。頭部姿勢が喪失されていない場合、プロセッサは、1420に戻り、再び、頭部姿勢の追跡に入る。
【0443】
頭部姿勢が、行為1430において喪失された場合、プロセッサは、1440において、頭部姿勢を復元するためのルーチンに入る。頭部姿勢が、低光量に起因して喪失された場合、以下のメッセージ等のメッセージが、視認デバイスのディスプレイを通してユーザに表示される。
【0444】
システムが、低光量条件を検出中です。より光の多いエリアに移動してください。
【0445】
システムは、十分な光が利用可能であるかどうかと、頭部姿勢が復元され得るかどうかとを監視し続けるであろう。システムは、代替として、表面の低テクスチャが頭部姿勢を喪失させていることを決定し得、その場合、ユーザは、表面の捕捉を改良するための提案として、以下のプロンプトがディスプレイ内に与えられる。
【0446】
システムは、微細なテクスチャを伴う十分な表面を検出することができません。表面のテクスチャが粗くなく、テクスチャがより精緻化されたエリアに移動してください。
【0447】
行為1450では、プロセッサは、頭部姿勢復元が失敗したかどうかを決定するためのルーチンに入る。頭部姿勢復元が失敗していない(すなわち、頭部姿勢復元が成功した)場合、プロセッサは、再び、頭部姿勢の追跡に入ることによって、行為1420に戻る。頭部姿勢復元が失敗した場合、プロセッサは、行為1410に戻り、新しいセッションを確立する。新しいセッションの一部として、全てのキャッシュされたデータは、無効化され、以降、頭部姿勢は、新しく確立される。
【0448】
遠隔位置特定
【0449】
種々の実施形態は、遠隔リソースを利用して、個々のユーザおよび/またはユーザのグループ間の持続かつ一貫したクロスリアリティ体験を促進し得る。本発明者らは、本明細書に説明されるような規準マップを用いたXRデバイスの動作の利点が、規準マップのセットをダウンロードせずに達成され得ることを認識および理解している。上記に議論される図30は、規準マップがデバイスにダウンロードされるであろう、例示的実装を図示する。マップをダウンロードしない利点は、例えば、特徴および姿勢情報を、規準マップのセットを維持する、遠隔サービスに送信することによって達成されてもよい。一実施形態によると、規準マップを使用して、仮想コンテンツを規準マップに対して規定された場所に位置付けることを求める、デバイスは、遠隔サービスから、特徴と規準マップとの間の1つまたはそれを上回る変換を受信してもよい。それらの変換は、物理的世界内のそれらの特徴の位置についての情報を維持する、デバイス上において、仮想コンテンツを規準マップに対して規定された場所に位置付ける、または別様に、規準マップに対して規定された物理的世界内の場所を識別するために使用されてもよい。
【0450】
いくつかの実施形態では、空間情報は、XRデバイスによって捕捉され、クラウドベースのサービス等の遠隔サービスに通信され、これは、空間情報を使用して、XRシステムのアプリケーションまたは他のコンポーネントによって使用される規準マップに対して、XRデバイスを位置特定し、物理的世界に対する仮想コンテンツの場所を規定する。いったん位置特定されると、デバイスによって維持される追跡マップを規準マップにリンクする、変換が、デバイスに通信されることができる。変換は、追跡マップと併せて、その中に規準マップに対して規定された仮想コンテンツをレンダリングするべき位置を決定する、または別様に、規準マップに対して規定された物理的世界内の場所を識別するために使用されてもよい。
【0451】
本発明者らは、デバイスと遠隔位置特定サービスとの間で交換されるために必要とされるデータが、デバイスが、追跡マップを遠隔サービスに通信し、そのサービスからデバイスベースの位置特定のための規準マップのセットを受信するときに生じ得るようなマップデータを通信することと比較して、非常にわずかであり得ることを認識している。いくつかの実施形態では、位置特定機能をクラウドリソース上で実施することは、少量の情報のみがデバイスから遠隔サービスに伝送されることを要求する。例えば、完全追跡マップが位置特定を実施するために遠隔サービスに通信されることは、要件ではない。いくつかの実施形態では、上記に説明されるように、持続姿勢に関連して記憶され得るような特徴および姿勢情報が、遠隔サーバに伝送され得る。上記に説明されるように、特徴が記述子によって表される、実施形態では、アップロードされた情報は、さらによりわずかであり得る。
【0452】
位置特定サービスからデバイスに返される結果は、アップロードされた特徴をマッチングする規準マップの部分に関連させる、1つまたはそれを上回る変換であってもよい。それらの変換は、その追跡マップと併せて、仮想コンテンツの場所を識別する、または別様に、物理的世界内の場所を識別するために、XRシステム内で使用されてもよい。上記に説明されるように、PCF等の持続空間情報が、規準マップに対する場所を規定するために使用される、実施形態では、位置特定サービスは、デバイスに、位置特定成功後、特徴と1つまたはそれを上回るPCFとの間の変換をダウンロードしてもよい。
【0453】
結果として、XRデバイスと位置特定を実施するための遠隔サービスとの間の通信によって消費されるネットワーク帯域幅は、小さくなり得る。本システムは、したがって、頻繁な位置特定をサポートし、システムと相互作用する各デバイスが、仮想コンテンツを位置付ける、または他の場所ベースの機能を実施するための情報を迅速に取得することを有効にし得る。デバイスが、物理的環境内を移動するにつれて、更新された位置特定情報のための要求を繰り返してもよい。加えて、デバイスは、規準マップが変化するとき等、付加的追跡マップのマージ等を通して、位置特定情報への更新を頻繁に取得し、マップを拡張させる、またはその正確度を増加させてもよい。
【0454】
さらに、特徴をアップロードし、変換をダウンロードすることは、偽装によってマップを取得する困難度を増加させることによって、マップ情報を複数のユーザ間で共有する、XRシステムにおけるプライバシを向上させ得る。非認可ユーザは、例えば、その中に非認可ユーザが位置しない、物理的世界の一部を表す、規準マップに関する偽の要求を送信することによって、マップをシステムから取得しないように阻止され得る。非認可ユーザは、その領域内に物理的に存在しない場合、それに関するマップ情報を要求している、物理的世界の領域内の特徴へのアクセスを有する可能性が低いであろう。特徴情報が特徴説明としてフォーマット化される、実施形態では、特徴情報をマップ情報に関する要求内で偽装する困難度は、高くなるであろう。さらに、本システムが、それについての場所情報が要求される、領域内で動作する、デバイスの追跡マップに適用されるように意図される変換を返すとき、本システムによって返される情報は、詐欺師には殆どまたは全く役に立たない可能性が高い。
【0455】
一実施形態によると、位置特定サービスは、クラウドベースのマイクロサービスとして実装される。いくつかの実施例では、クラウドベースの位置特定サービスを実装することは、デバイス算出リソースを保存することに役立ち得、位置特定のために要求される算出が非常に短待ち時間を伴って実施されることを有効にし得る。それらの動作は、付加的クラウドリソースを提供することによって利用可能なほぼ無限の算出力または他のコンピューティングリソースによってサポートされ、XRシステムのスケーラビリティが多数のデバイスをサポートすることを確実にすることができる。一実施例では、多くの規準マップは、ほぼ瞬時のアクセスのために、メモリ内に維持され、または代替として、高可用性デバイス内に記憶され、システム待ち時間を低減させることができる。
【0456】
さらに、クラウドサービス内で複数のデバイスに関する位置特定を実施することは、プロセスに対する精緻化を有効にし得る。位置特定遠隔測定および統計は、どの規準マップがアクティブメモリおよび/または高可用性記憶装置内にあるかに関する情報を提供することができる。複数のデバイスに関する統計は、例えば、最も頻繁にアクセスされる規準マップを識別するために使用されてもよい。
【0457】
付加的正確度もまた、遠隔デバイスに対する実質的処理リソースを用いたクラウド環境または他の遠隔環境内の処理の結果として達成され得る。例えば、位置特定は、ローカルデバイス上で実施される処理に対して、クラウド内のより高密度の規準マップ上で行われることができる。マップは、例えば、より多くのPCFまたはPCFあたりより高い密度の特徴記述子とともに、クラウド内に記憶され、デバイスからの特徴のセットと規準マップとの間のマッチングの正確度を増加させてもよい。
【0458】
図61は、XRシステム6100の概略図である。ユーザセッションの間、クロスリアリティコンテンツを表示する、ユーザデバイスは、種々の形態で現れることができる。例えば、ユーザデバイスは、ウェアラブルXRデバイス(例えば、6102)またはハンドヘルドモバイルデバイス(例えば、6104)であることができる。上記に議論されるように、これらのデバイスは、アプリケーションまたは他のコンポーネント等のソフトウェアとともに構成され、および/または有線接続され、仮想コンテンツをその個別のディスプレイ上にレンダリングするために使用され得る、ローカル位置情報(例えば、追跡マップ)を生成することができる。
【0459】
仮想コンテンツ位置付け情報は、グローバル場所情報に対して規定されてもよく、これは、例えば、1つまたはそれを上回るPCFを含有する、規準マップとして、フォーマット化されてもよい。いくつかの実施形態によると、システム6100は、ユーザデバイス上での仮想コンテンツの機能および表示をサポートする、クラウドベースのサービスとともに構成される。
【0460】
一実施例では、位置特定機能は、クラウドベースのサービス6106として提供され、これは、マイクロサービスであってもよい。クラウドベースのサービス6106は、複数のコンピューティングデバイスのいずれか上に実装されてもよく、そこからコンピューティングリソースが、クラウド内で実行される1つまたはそれを上回るサービスに配分されてもよい。それらのコンピューティングデバイスは、相互に、かつウェアラブルXRデバイス6102およびハンドヘルドデバイス6104等のデバイスにアクセス可能に相互接続されてもよい。そのような接続は、1つまたはそれを上回るネットワークを経由して提供されてもよい。
【0461】
いくつかの実施形態では、クラウドベースのサービス6106は、記述子情報を個別のユーザデバイスから受け取り、デバイスをマッチングする規準マップまたは複数のマップに対して「位置特定」するように構成される。例えば、クラウドベースの位置特定サービスは、受信された記述子情報を個別の規準マップに関する記述子情報にマッチングさせる。規準マップは、物理的世界についての情報を入手する、画像センサまたは他のセンサを有する、1つまたはそれを上回るデバイスによって提供される、マップをマージすることによって、規準マップを作成する、上記に説明されるような技法を使用して作成されてもよい。しかしながら、規準マップが、それらにアクセスするデバイスによって作成されることは、要件ではなく、したがって、マップは、例えば、マップを位置特定サービス6106に利用可能にすることによって、それらを公開し得る、マップ開発者によって作成されてもよい。
【0462】
いくつかの実施形態によると、クラウドサービスは、規準マップ識別をハンドリングし、規準マップのリポジトリを潜在的マッチングのセットに対してフィルタリングするための動作を含んでもよい。フィルタリングは、図29に図示されるように、または図29に示されるフィルタ基準の代わりに、またはそれに加え、フィルタ基準および他のフィルタ基準の任意のサブセットを使用することによって、実施されてもよい。一実施形態では、地理的データが、規準マップをマッチングさせるための検索を位置特定を要求するデバイスに近接するエリアを表すマップに限定するために使用されることができる。例えば、Wi-Fi信号データ、Wi-Fiフィンガプリント情報、GPSデータ、および/または他のデバイス場所情報等のエリア属性が、規準マップ上に記憶された大まかなフィルタとして使用され、それによって、記述子の分析を、ユーザデバイスに近接することが既知である、またはその可能性が高い規準マップに限定することができる。同様に、各デバイスの場所履歴が、デバイスの最新の場所の近傍内の規準マップが優先的に検索されるように、クラウドサービスによって維持されてもよい。いくつかの実施例では、フィルタリングは、図31B、32、33、および34に関して上記に議論される機能を含むことができる。
【0463】
図62は、クラウドベースのサービスを使用して、規準マップを用いて、デバイスの位置を位置特定し、デバイスローカル座標系と規準マップの座標系との間の1つまたはそれを上回る変換を規定する、変換情報を受信するために、デバイスによって実行され得る、例示的プロセスフローである。種々の実施形態および実施例は、第1の座標フレームから第2の座標フレームへの変換を規定するものとして変換を説明する。他の実施形態は、第2の座標フレームから第1の座標フレームへの変換を含む。任意のさらに他の実施形態では、変換は、1つの座標フレームから別の座標フレームへの遷移を有効にし、結果として生じる座標フレームは、所望の座標フレーム出力(例えば、その中にコンテンツを表示するべき座標フレームを含む)のみに依存する。まださらなる実施形態では、座標系変換は、第2の座標フレームから第1の座標フレームおよび第1の座標フレームから第2の座標の決定を有効にする。
【0464】
いくつかの実施形態によると、規準マップに対して定義された持続姿勢毎の変換を反映させる情報は、デバイスに通信されることができる。
【0465】
一実施形態によると、プロセス6200は、新しいセッションを用いて、6202から開始することができる。新しいセッションをデバイス上で開始することは、画像情報の捕捉を開始し、デバイスのための追跡マップを構築し得る。加えて、デバイスは、メッセージを送信し、位置特定サービスのサーバに登録し、サーバに、そのデバイスのためのセッションを作成するようにプロンプトしてもよい。
【0466】
いくつかの実施形態では、新しいセッションをデバイス上で開始することは、随意に、調節データをデバイスから位置特定サービスに送信することを含んでもよい。位置特定サービスは、デバイスに、特徴および関連付けられる姿勢のセットに基づいて算出される、1つまたはそれを上回る変換を返す。特徴の姿勢が、変換の算出前に、デバイス特有の情報に基づいて調節される、および/または変換が、変換の算出後、デバイス特有の情報に基づいて調節される場合、それらの算出をデバイス上で実施するのではなく、デバイス具体的情報は、位置特定サービスが調節を適用し得るように、位置特定サービスに送信され得る。具体的実施例として、デバイス特有の調節情報を送信することは、センサおよび/またはディスプレイに関する較正データを捕捉することを含んでもよい。較正データは、例えば、測定された場所に対する特徴点の場所を調節するために使用されてもよい。代替として、または加えて、較正データは、そこでディスプレイが、その特定のデバイスのために正確に位置付けられて現れるように、仮想コンテンツをレンダリングするようにコマンドされる、場所を調節するために使用されてもよい。本較正データは、例えば、デバイス上のセンサを用いて得られる同一場面の複数の画像から導出されてもよい。それらの画像内で検出された特徴の場所は、複数の画像が、センサ場所に関して解法され得る、方程式のセットをもたらすように、センサ場所の関数として表され得る。算出されたセンサ場所は、公称位置と比較されてもよく、較正データは、任意の差異から導出されてもよい。いくつかの実施形態では、デバイスの構造についての固有の情報はまた、いくつかの実施形態では、較正データがディスプレイのために算出されることを有効にし得る。
【0467】
較正データがセンサおよび/またはディスプレイのために生成される、実施形態では、較正データは、測定または表示プロセスにおいて、任意の点に適用されてもよい。いくつかの実施形態では、較正データは、位置特定サーバに送信されてもよく、これは、較正データを、位置特定サーバに登録されており、したがって、サーバとセッション中である、デバイス毎に確立されるデータ構造内に記憶してもよい。位置特定サーバは、較正データを、その較正データを供給するデバイスのための位置特定プロセスの一部として算出された任意の変換に適用してもよい。感知および/または表示される情報のより高い正確度のために較正データを使用する算出負担は、したがって、較正サービスによって担われ、デバイス上での処理負担を低減させるためのさらなる機構を提供する。
【0468】
いったん新しいセッションが、確立されると、プロセス6200は、デバイスの環境の新しいフレームの捕捉を伴う、6204に継続し得る。各フレームは、6206において、捕捉されたフレームに関する記述子(例えば、上記に議論されるDSF値を含む)を生成するように処理されることができる。これらの値は、図14、22、および23に関して上記に議論されるような技法を含む、上記に説明される技法のいくつかまたは全てを使用して、算出されてもよい。議論されるように、記述子は、記述子への特徴点のマッピング、またはいくつかの実施形態では、特徴点の周囲の画像のパッチのマッピングとして、算出されてもよい。記述子は、新しく入手されたフレーム/画像と記憶されたマップとの間の効率的マッチングを有効にする、値を有してもよい。さらに、画像から抽出された特徴の数は、画像あたり200の特徴点等の画像あたり最大数の特徴点に限定されてもよい。特徴点は、上記に説明されるように、着目点を表すように選択されてもよい。故に、行為6204および6206は、追跡マップを形成する、または別様に、デバイスの周囲の物理的世界の画像を周期的に収集するデバイスプロセスの一部として、実施されてもよい、または位置特定のために別個に実施されてもよいが、そうである必要はない。
【0469】
6206における特徴抽出は、姿勢情報を6206において抽出された特徴に付加することを含んでもよい。姿勢情報は、デバイスのローカル座標系内の姿勢であってもよい。いくつかの実施形態では、姿勢は、上記に議論されるように、持続姿勢等の追跡マップ内の基準点に対するものであってもよい。代替として、または加えて、姿勢は、デバイスの追跡マップの原点に対するものであってもよい。そのような実施形態は、本明細書に説明されるように、位置特定サービスが、広範囲のデバイスのための位置特定サービスを、それらが持続姿勢を利用しない場合でも、提供することを有効にし得る。それにかかわらず、姿勢情報は、位置特定サービスが、特徴を記憶されたマップ内の特徴にマッチングさせることに応じて、デバイスに返され得る、変換を算出するための姿勢情報を使用し得るように、各特徴または特徴の各セットに付加され得る。
【0470】
プロセス6200は、決定ブロック6207に継続し得、そこで、位置特定を要求するかどうかの決定が、行われる。1つまたはそれを上回る基準が、位置特定を要求するかどうかを決定するために適用されてもよい。基準は、デバイスが、ある閾値時間量後、位置特定を要求し得るように、時間の経過を含んでもよい。例えば、位置特定が、ある閾値時間量内に試行されなかった場合、プロセスは、決定ブロック6207から行為6208に継続し得、そこで、位置特定が、クラウドから要求される。その閾値時間量は、例えば、25秒等の10~30秒であってもよい。代替として、または加えて、位置特定は、デバイスの運動によってトリガされてもよい。プロセス6200を実行するデバイスは、IMUおよびその追跡マップを使用して、その運動を追跡し、デバイスが最後に位置特定を要求した場所からの閾値距離を超える運動の検出に応じて、位置特定を開始してもよい。閾値距離は、例えば、3~5メートル等の1~10メートルであってもよい。なおもさらなる代替として、位置特定は、上記に説明されるように、デバイスが新しい持続姿勢を作成する、またはデバイスに関する現在の持続姿勢が変化するとき等、イベントに応答して、トリガされてもよい。
【0471】
いくつかの実施形態では、決定ブロック6207は、位置特定をトリガするための閾値が動的に確立され得るように、実装されてもよい。例えば、その中で特徴が、抽出された特徴のセットを記憶されたマップの特徴にマッチングさせる際に低信頼度が存在し得るように、主として、均一である、環境では、位置特定は、より頻繁に要求され、位置特定における少なくとも1回の試行が成功するであろう、機会を増加させ得る。そのようなシナリオでは、決定ブロック6207において適用される閾値は、減少されてもよい。同様に、その中に比較的に少ない特徴が存在する、環境では、決定ブロック6207において適用される閾値は、位置特定試行の周波数を増加させるように、減少されてもよい。
【0472】
位置特定がトリガされる方法にかかわらず、トリガされると、プロセス6200は、行為6208に進み得、そこで、デバイスは、位置特定サービスによって位置特定を実施するために使用されるデータを含む、位置特定サービスのための要求を送信する。いくつかの実施形態では、複数の画像フレームからのデータが、位置特定試行のために提供されてもよい。位置特定サービスは、例えば、複数の画像フレーム内の特徴が一貫した位置特定結果をもたらさない限り、位置特定成功と見なされ得ない。
【0473】
いくつかの実施形態では、プロセス6200は、特徴記述子および付加された姿勢情報をバッファの中に保存することを含んでもよい。バッファは、例えば、最も最近捕捉されたフレームから抽出された特徴のセットを記憶する、巡回バッファであってもよい。故に、位置特定要求は、バッファ内に蓄積された特徴のいくつかのセットとともに送信されてもよい。いくつかの設定では、バッファサイズは、位置特定成功をもたらす可能性がより高いであろう、データのいくつかのセットを蓄積するように実装される。いくつかの実施形態では、バッファサイズは、例えば、2つ、3つ、4つ、5つ、6つ、7つ、8つ、9つ、または10のフレームからの特徴を蓄積するために設定されてもよい)。随意に、バッファサイズは、ベースライン設定を有することができ、これは、位置特定失敗に応答して、増加されることができる。いくつかの実施例では、増加するバッファサイズおよび伝送される特徴のセットの対応する数は、後続位置特定機能が結果を返すことに失敗する、尤度を低減させる。
【0474】
バッファサイズが設定される方法にかかわらず、デバイスは、位置特定要求の一部として、バッファのコンテンツを位置特定サービスに転送してもよい。他の情報も、特徴点および付加された姿勢情報と併せて、伝送されてもよい。例えば、いくつかの実施形態では、地理的情報が、伝送されてもよい。地理的情報は、例えば、デバイス追跡マップまたは現在の持続姿勢と関連付けられる、GPS座標または無線シグネチャを含んでもよい。
【0475】
6208において送信される要求に応答して、クラウド位置特定サービスは、特徴記述子を分析し、デバイスをサービスによって維持される規準マップまたは他の持続マップの中に位置特定してもよい。例えば、記述子は、それに対してデバイスが位置特定される、マップ内の特徴のセットにマッチングされる。クラウドベースの位置特定サービスは、デバイスベースの位置特定に関して上記に説明されるように、位置特定を実施してもよい(例えば、位置特定のための上記に議論される機能(マップランク付け、マップフィルタリング、場所推定、フィルタリングされたマップ選択、図44-46における、および/または位置特定モジュールに関して議論される、実施例、PCFおよび/またはPP識別およびマッチング等を含む)のいずれかに依拠することができる)。しかしながら、識別された規準マップを(例えば、デバイス位置特定における)デバイスに通信する代わりに、クラウドベースの位置特定サービスは、デバイスから送信される特徴セットの相対的配向およびに規準マップのマッチングする特徴に基づいて、変換を生成するように進めてもよい。位置特定サービスは、これらの変換をデバイスに返してもよく、これは、ブロック6210において受信されてもよい。
【0476】
いくつかの実施形態では、位置特定サービスによって維持される規準マップは、上記に説明されるように、PCFを採用してもよい。そのような実施形態では、デバイスから送信される特徴点にマッチングする、規準マップの特徴点は、1つまたはそれを上回るPCFに対して規定された位置を有し得る。故に、位置特定サービスは、1つまたはそれを上回る規準マップを識別し得、位置特定のための要求とともに送信される姿勢内に表される座標フレームと1つまたはそれを上回るPCFとの間の変換を算出し得る。いくつかの実施形態では、1つまたはそれを上回る規準マップの識別は、個別のデバイスに関する地理的データに基づいて、潜在的マップをフィルタリングすることによって補助される。例えば、いったん(例えば、オプションの中でもとりわけ、GPS座標によって)候補セットにフィルタリングされると、規準マップの候補セットは、上記に説明されるように、詳細に分析され、マッチングする特徴点またはPCFを決定することができる。
【0477】
行為6210において要求側デバイスに返されるデータは、持続姿勢変換のテーブルとしてフォーマット化されてもよい。テーブルは、1つまたはそれを上回る規準マップ識別子を伴い、それに対してデバイスが位置特定サービスによって位置特定された規準マップを示すことができる。しかしながら、位置特定情報は、関連付けられるPCFおよび/または規準マップ識別子を伴う変換のリストとしてを含む、他の方法において、フォーマット化されてもよいことを理解されたい。
【0478】
変換がフォーマット化される方法にかかわらず、行為6212において、デバイスは、これらの変換を使用して、仮想コンテンツを、それに関して場所がXRシステムのアプリケーションまたは他のコンポーネントによってPCFのいずれかに対して規定されている、レンダリングすべき場所を算出してもよい。本情報は、代替として、または加えて、デバイス上において、その中で場所がPCFに基づいて規定される、任意の場所ベースの動作を実施するために使用されてもよい。
【0479】
いくつかのシナリオでは、位置特定サービスは、デバイスから送信される特徴を任意の記憶された規準マップにマッチングすることができない場合があり得る、または位置特定サービスのための要求とともに通信される、位置特定成功が生じたと見なすための十分な数のセットの特徴にマッチングすることが不可能である場合がある。そのようなシナリオでは、行為6210に関連して上記に説明されるように、変換をデバイスに返すのではなく、位置特定サービスは、デバイスに、位置特定が失敗したことを示してもよい。そのようなシナリオでは、プロセス6200は、行為6230への決定ブロック6209において分岐し得、デバイスは、失敗処理のための1つまたはそれを上回るアクションを講じてもよい。これらのアクションは、位置特定のために送信される特徴セットを保持する、バッファのサイズを増加させることを含んでもよい。例えば、位置特定サービスが、3つのセットの特徴がマッチングしない限り、位置特定成功と見なさない場合、バッファサイズは、5つから6つに増加され、特徴の伝送されるセットのうちの3つが位置特定サービスによって維持される規準マップにマッチングされ得る可能性を増加させてもよい。
【0480】
代替として、または加えて、失敗処理は、デバイスの動作パラメータを調節し、より頻繁な位置特定試行をトリガすることを含んでもよい。位置特定試行間の閾値時間および/または閾値距離が、例えば、減少されてもよい。別の実施例として、特徴の各セット内の特徴点の数が、増加されてもよい。特徴のセットと規準マップ内に記憶された特徴との間のマッチングは、デバイスから送信されるセット内の十分な数の特徴がマップの特徴にマッチングするときに生じると見なされ得る。送信される特徴の数を増加させることは、マッチングの機会を増加させ得る。具体的実施例として、初期特徴セットサイズは、50であってもよく、これは、各連続位置特定失敗に応じて、100、150、次いで、200まで増加されてもよい。マッチングする成功に応じて、セットサイズは、次いで、その初期値に戻されてもよい。
【0481】
失敗処理はまた、位置特定サービスから以外の位置特定情報を取得することを含んでもよい。いくつかの実施形態によると、ユーザデバイスは、規準マップをキャッシュするように構成されることができる。キャッシュされたマップは、デバイスが、クラウドが利用不可能な場合、コンテンツにアクセスし、それを表示することを可能にする。例えば、キャッシュされた規準マップは、通信失敗または他の不可用性の場合、デバイスベースの位置特定を可能にする。
【0482】
種々の実施形態によると、図62は、デバイスがクラウドベースの位置特定を開始するための高レベルフローを説明する。他の実施形態では、図示されるステップの種々の1つまたはそれを上回るものは、組み合わせられる、省略される、または他のプロセスを呼び出し、位置特定と、最終的には、個別のデバイスのビュー内における仮想コンテンツの可視化とを遂行することができる。
【0483】
さらに、プロセス6200は、デバイスが、決定ブロック6207において位置特定を開始すべきかどうかを決定することを示すが、開始位置特定を開始するためのトリガは、位置特定サービスからを含む、デバイス外から生じてもよいことを理解されたい。位置特定サービスは、例えば、それとセッション中である、デバイスのそれぞれについての情報を維持してもよい。その情報は、例えば、それに対して各デバイスが最も最近位置特定された、規準マップの識別子を含んでもよい。位置特定サービスまたはXRシステムの他のコンポーネントは、図26に関連して上記に説明されるような技法を使用することを含め、規準マップを更新してもよい。規準マップが、更新されると、位置特定サービスは、通知を、そのマップに対して最も最近位置特定された各デバイスに送信してもよい。その通知は、デバイスが位置特定を要求するためのトリガとしての役割を果たしてもよく、および/またはデバイスからの特徴の最も最近送信されたセットを使用して再算出された、更新された変換を含んでもよい。
【0484】
図63A、B、およびCは、デバイスとクラウドサービスとの間の動作および通信を示す、例示的プロセスフローである。ブロック6350、6352、6354、および6456において示されるものは、クラウドベースの位置特定プロセスに関与するコンポーネント間の例示的アーキテクチャおよび分離である。例えば、ユーザデバイス上の知覚をハンドリングするように構成される、モジュール、コンポーネント、および/またはソフトウェアは、6350(例えば、660、図6A)に示される。存続される世界動作のためのデバイス機能性は、6352(例えば、上記において、存続される世界モジュールに関して説明されるようなものを含む(例えば、662、図6A))に示される。他の実施形態では、6350と6352との間の分離は、必要とされず、示される通信は、デバイス上で実行されるプロセス間で行われることができる。
【0485】
同様に、ブロック6354において示されるものは、パス可能世界/パス可能世界モデル化(例えば、802、812、図26)と関連付けられる機能性をハンドリングするように構成される、クラウドプロセスである。ブロック6356において示されるものは、デバイスから記憶された規準マップのリポジトリの1つまたはそれを上回るマップに送信される情報に基づいて、デバイスを位置特定することと関連付けられる機能性をハンドリングするように構成される、クラウドプロセスである。
【0486】
図示される実施形態では、プロセス6300は、新しいセッションが開始すると、6302から開始する。6304において、センサ較正データが、取得される。取得される較正データは、6350において表されるデバイス(例えば、カメラ、センサ、測位デバイス等の数)に依存し得る。いったんセンサ較正が、デバイスに関して取得されると、較正は、6306においてキャッシュされることができる。デバイス動作が、周波数パラメータ(例えば、オプションの中でもとりわけ、収集周波数、サンプリング周波数、マッチング周波数)の変化をもたらした場合、周波数パラメータは、6308において、ベースラインにリセットされる。
【0487】
いったん新しいセッション機能(例えば、較正ステップ6302-6306)が、完了すると、プロセス6300は、新しいフレーム6312の捕捉を継続することができる。特徴およびその対応する記述子が、6314において、フレームから抽出される。いくつかの実施例では、記述子は、上記に議論されるように、DSFを含むことができる。いくつかの実施形態によると、記述子は、それらに結び付けられる、空間情報を有し、後続処理(例えば、変換生成)を促進することができる。デバイス上で生成された姿勢情報(例えば、上記に議論されるように、物理的世界内の特徴を位置特定するために、デバイスの追跡マップに対して規定された情報)は、6316において、抽出された記述子に付加されることができる。
【0488】
6318では、記述子および姿勢情報が、バッファに追加される。ステップ6312-6318に示される新しいフレーム捕捉およびバッファへの追加は、6319において、バッファサイズ閾値を超えるまで、ループにおいて実行される。バッファサイズが満たされたことの決定に応答して、位置特定要求が、6320において、デバイスからクラウドに通信される。いくつかの実施形態によると、要求は、クラウド(例えば、6354)内でインスタンス化されるパス可能世界サービスによってハンドリングされることができる。さらなる実施形態では、候補規準マップを識別するための機能的動作は、(例えば、ブロック6354および6356として示される)実際のマッチングのための動作から分断されることができる。一実施形態では、マップフィルタリングおよび/またはマップランク付けのためのクラウドサービスが、6354において実行され、6320から受信された位置特定要求を処理することができる。一実施形態によると、マップランク付け動作は、6322において、デバイスの場所を含む可能性が高い、候補マップのセットを決定するように構成される。
【0489】
いくつかの実施形態では、マップランク付け機能は、地理的属性または他の場所データ(例えば、観察または推測される場所情報)に基づいて、候補規準マップを識別するための動作を含む。これらの実施形態では、1つまたはそれを上回る候補規準マップの識別は、例えば、1つまたはそれを上回る識別された候補規準マップを介して共有される世界モデルに対して、XRデバイスを位置特定する、またはそこから追跡するための多層位置特定スキームの粗粒度位置特定動作と見なされ得る。これらの実施形態のうちのいくつかでは、そのような他の場所データは、Wi-FiシグネチャまたはGPS情報を含んでもよい。
【0490】
他の実施形態によると、場所データは、デバイスおよびユーザとのクロスリアリティセッションの間、捕捉されることができる。プロセス6300は、所与のデバイスおよび/またはセッションのために場所を取り込むための付加的動作を含むことができる(図示せず)。例えば、場所データは、デバイスエリア属性値およびデバイスの場所に近接する候補規準マップを選択するために使用される属性値として記憶されてもよい。
【0491】
いくつかの実施形態では、場所オプションのうちの任意の1つまたはそれを上回るものが、規準マップのセットを、ユーザデバイスの場所を含むエリアを表す可能性が高いものにフィルタリングするために使用されることができる。いくつかの実施形態では、規準マップは、物理的世界の比較的に大領域を被覆してもよい。規準マップは、マップの選択がマップエリアの選択を伴い得るように、エリアにセグメント化されてもよい。マップエリアは、例えば、約数十平方メートルであってもよい。したがって、規準マップのフィルタリングされたセットは、マップのエリアのセットであってもよい。
【0492】
いくつかの実施形態によると、位置特定スナップショットが、候補規準マップ、姿勢付き特徴、およびセンサ較正データから構築されることができる。例えば、候補規準マップ、姿勢付き特徴、およびセンサ較正情報のアレイが、具体的にマッチングする規準マップを決定するための要求とともに送信されることができる。規準マップとのマッチングは、デバイスから受信された記述子および規準マップと関連付けられる記憶されたPCFデータに基づいて、実行されることができる。
【0493】
いくつかの実施形態では、デバイスからの特徴のセットは、規準マップの一部として記憶された特徴のセットと比較される。比較は、特徴記述子および/または姿勢に基づいてもよい。例えば、規準マップの特徴の候補セットは、それらが同一特徴であり得る、デバイスからの特徴セットの記述子と十分に類似する記述子を有する、候補セット内の特徴の数に基づいて、選択されてもよい。候補セットは、例えば、規準マップを形成する際に使用される画像フレームから導出される特徴であってもよい。
【0494】
いくつかの実施形態では、類似特徴の数が、閾値を超える場合、さらなる処理が、特徴の候補セット上で実施されてもよい。さらなる処理は、デバイスからの姿勢付き特徴のセットが候補セットの特徴と整合され得る程度を決定してもよい。規準マップからの特徴のセットは、デバイスからの特徴のように、姿勢付きであってもよい。
【0495】
いくつかの実施形態では、特徴は、高次元埋込(例えば、DSF等)としてフォーマット化されてもよく、最近傍検索を使用して比較されてもよい。一実施例では、本システムは、ユークリッド距離を使用して、上位2つの最近傍を見出すように構成され(例えば、プロセス6200および/または6300を実行することによって)、比率試験を実行してもよい。最近傍が、第2の最近傍よりはるかに近い場合、本システムは、その最近傍がマッチングであると見なす。「はるかに近い」とは、本コンテキストでは、例えば、第2の最近傍に対するユークリッド距離の比率が、閾値×最近傍に対するユークリッド距離を上回ることによって決定されてもよい。いったんデバイスからの特徴が、規準マップ内の特徴に「マッチングする」と見なされると、本システムは、マッチングする特徴の姿勢を使用し、相対的変換を算出するように構成されてもよい。姿勢情報から展開された変換は、いくつかの実施形態では、デバイスを規準マップに対して位置特定するために要求される、変換を示すために使用されてもよい。これらの実施形態では、デバイス(またはそこからの追跡マップ)を位置特定するステップは、デバイス(またはそこからの追跡マップ)を位置特定するための本明細書に説明される多層位置特定スキームの微粒度位置特定動作と見なされ得る。
【0496】
正対応の数は、マッチングの品質のインジケーションとしての役割を果たし得る。例えば、DSFマッチングの場合、正対応の数は、受信された記述子情報と記憶された/規準マップとの間でマッチングされた特徴の数を反映させる。さらなる実施形態では、正対応は、本実施形態では、「マッチング」する各セット内の特徴の数をカウントすることによって、決定されてもよい。
【0497】
マッチングの品質のインジケーションは、代替として、または加えて、他の方法において決定されてもよい。いくつかの実施形態では、例えば、変換が、マッチングする特徴の相対的姿勢に基づいて、複数の特徴を含有し得る、デバイスからのマップを、規準マップに対して位置特定するために算出されると、複数のマッチングする特徴毎に算出された変換の統計は、品質インジケーションとしての役割を果たし得る。大分散は、例えば、マッチングの不良品質を示し得る。代替として、または加えて、本システムは、決定された変換に関して、マッチングする記述子を伴う特徴間の平均誤差を算出してもよい。平均誤差は、変換に関して算出され、位置不整合の程度を反映させてもよい。平均二乗誤差は、誤差メトリックの具体的実施例である。具体的誤差メトリックにかかわらず、誤差が、閾値を下回る場合、変換は、デバイスから受信された特徴のために使用可能であると決定され得、算出された変換は、デバイスを位置特定するために使用される。代替として、または加えて、正対応の数はまた、デバイスから受信されたデバイスの位置情報および/または記述子にマッチングする、マップが存在するかどうかを決定する際に使用されてもよい。
【0498】
上記に述べられたように、いくつかの実施形態では、デバイスは、位置特定のために、特徴の複数のセットを送信してもよい。位置特定は、少なくとも、特徴のセットの閾値数が、誤差が閾値を下回り、正対応の数が、閾値を上回る状態で、規準マップからの特徴のセットにマッチングするとき、成功と見なされ得る。その閾値数、例えば、特徴の3つのセットであってもよい。しかしながら、特徴の十分な数のセットが好適な値を有するかどうかを決定するために使用される、閾値は、実験的に、または他の好適な方法において、決定されてもよいことを理解されたい。同様に、類似性分析(例えば、コサイン類似性分析、クラスタ化オペレーション、分類オペレーション等)からのマッチングすると見なされるべき特徴記述子間の類似性の程度、特徴の候補セットの選択のための正対応の数、および/または不整合誤差の大きさ等のマッチングプロセスの他の閾値またはパラメータも同様に、実験的に、または他の好適な方法において、決定されてもよい。
【0499】
いったんマッチングが、決定されると、マッチングされた規準マップまたは複数のマップと関連付けられる、持続マップ特徴のセットが、識別される。マッチングがマップのエリアに基づく、実施形態では、持続マップ特徴は、マッチングするエリア内のマップ特徴であってもよい。持続マップ特徴は、上記に説明されるように、持続姿勢またはPCFであってもよい。図63の実施例では、持続マップ特徴は、持続姿勢である。
【0500】
持続マップ特徴のフォーマットにかかわらず、各持続マップ特徴は、その中でそれが一部である、規準マップに対する所定の配向を有してもよい。本相対的配向は、算出された変換に適用され、デバイスからの特徴のセットと規準マップからの特徴のセットを整合させ、デバイスからの特徴のセットと持続マップ特徴との間の変換を決定してもよい。較正データから導出され得るような任意の調節が、次いで、本算出された変換に適用されてもよい。結果として生じる変換は、デバイスのローカル座標フレームと持続マップ特徴との間の変換であり得る。本算出は、マッチングするマップエリアの持続マップ特徴毎に実施されてもよく、結果は、6326において、persistent_pose_tableとして示されるテーブル内に記憶されてもよい。
【0501】
一実施例では、ブロック6326は、持続姿勢変換、規準マップ識別子、および正対応の数のテーブルを返す。いくつかの実施形態によると、規準マップIDは、規準マップおよび規準マップのバージョン(または定位置特定がマップエリアに基づく、実施形態では、マップのエリア)を一意に識別するための識別子である。
【0502】
種々の実施形態では、算出された位置特定データは、6328において、位置特定サービスによって維持される、位置特定統計および遠隔測定を取り込むために使用されることができる。本情報は、デバイス毎に記憶されてもよく、位置特定試行毎に更新されてもよく、デバイスのセッションが終了すると、クリアにされてもよい。例えば、デバイスによってマッチングされたマップは、マップランク付け動作を精緻化するために使用されることができる。例えば、それに対してデバイスが以前にマッチングされた、同一エリアを被覆するマップは、ランク付けにおいて優先化されてもよい。同様に、隣接するエリアを被覆するマップは、より遠隔エリアより高い優先順位を与えられてもよい。さらに、隣接するマップは、デバイスの経時的に検出された軌道に基づいて、優先化され得、運動の方向にあるマップエリアは、他のマップエリアより高い優先順位を与えられる。位置特定サービスは、例えば、デバイスからの後続位置特定要求に応じて、本情報を使用して、記憶された規準マップ内の特徴の候補セットのために検索されるマップまたはマップエリアを限定してもよい。マッチングが、低誤差メトリックおよび/または多数または高パーセンテージの正対応を伴って、本限定されたエリア内で識別される場合、エリア外のマップの処理は、回避され得る。
【0503】
プロセス6300は、クラウド(例えば、6354)からユーザデバイス(例えば、6352)への情報の通信を継続することができる。一実施形態によると、持続姿勢テーブルおよび規準マップ識別子が、6330において、ユーザデバイスに通信される。一実施例では、持続姿勢テーブルは、少なくとも、持続姿勢IDを識別する、ストリングと、デバイスの追跡マップおよび持続姿勢をリンクさせる、変換とを含む、要素から構築されることができる。持続マップ特徴がPCFである、実施形態では、テーブルは、代わりに、マッチングするマップのPCFへの変換を示してもよい。
【0504】
位置特定が、6336において、失敗する場合、プロセス6300は、デバイスから位置特定サービスに送信されるデータの量を増加させ、位置特定が成功するであろう機会を増加させ得る、パラメータを調節することによって、継続する。失敗は、例えば、規準マップ内の特徴のセットが、閾値数を上回る類似記述子を伴って見出され得ないとき、または候補特徴の全ての変換されたセットと関連付けられる誤差メトリックが、閾値を上回るときに示され得る。調節され得る、パラメータの実施例として、記述子バッファのためのサイズ制約(6319)が、増加されてもよい。例えば、記述子バッファサイズが、5である場合、位置特定失敗は、少なくとも6つの画像フレームから抽出された特徴の少なくとも6つのセットまでの増加をトリガすることができる。いくつかの実施形態では、プロセス6300は、記述子バッファインクリメント値を含むことができる。一実施例では、インクリメント値は、例えば、位置特定失敗に応答して、バッファサイズの増加率を制御するために使用されることができる。位置特定要求の率を制御するパラメータ等の他のパラメータも、マッチングする規準マップを見出すことの失敗に応じて、変更されてもよい。
【0505】
いくつかの実施形態では、6300の実行は、6340において、マッチングする結果を返さないのではなく、位置特定要求が機能することに失敗した実行を含む、エラー条件を生成することができる。エラーは、例えば、規準マップのデータベースを保持する記憶装置を位置特定サービスを実行するサーバに利用不可能にしたネットワーク不良、または正しくなくフォーマット化された情報を含有する位置特定サービスのための受信された要求の結果として、生じ得る。エラー条件の場合、本実施例では、プロセス6300は、6342において、要求の再試行をスケジューリングする。
【0506】
位置特定要求が、成功すると、失敗に応答して調節される、任意のパラメータは、リセットされてもよい。6332では、プロセス6300は、周波数パラメータを任意のデフォルトまたはベースラインにリセットする動作を継続することができる。いくつかの実施形態では、6332は、任意の変更にかかわらず、実行され、したがって、ベースライン周波数が、常時、確立されることを確実にする。
【0507】
受信された情報は、デバイスによって、6334において、キャッシュされた位置特定スナップショットを更新するために使用されることができる。種々の実施形態によると、個別の変換、規準マップ識別子、および他の位置特定データは、デバイスによって、記憶され、規準マップに対して規定された場所、または持続姿勢またはPCF等のそれらの持続マップ特徴を、その追跡マップから決定され得るようなそのローカル座標フレームに対してデバイスによって決定された場所に関連させるために使用されることができる。
【0508】
クラウド内の位置特定のためのプロセスの種々の実施形態は、前述のステップのうちの任意の1つまたはそれを上回るものを実装し、前述のアーキテクチャに基づくことができる。他の実施形態は、前述のステップの種々の1つまたはそれを上回るものを組み合わせ、ステップを同時に、並列に、または別の順序で実行してもよい。
【0509】
いくつかの実施形態によると、クロスリアリティ体験のコンテキストにおける、クラウド内の位置特定サービスは、付加的機能性を含むことができる。例えば、規準マップキャッシュが、コネクティビティに関する問題点を解決するために実行されてもよい。いくつかの実施形態では、デバイスは、周期的に、それに対してそれが位置特定されている、規準マップをダウンロードおよびキャッシュしてもよい。クラウド内の位置特定サービスが、利用不可能である場合、デバイスは、それ自体で位置特定を起動してもよい(例えば、図26に関してを含む、上記に議論されるように)。他の実施形態では、位置特定要求から返される変換は、ともに連鎖され、後続セッションにおいて適用されることができる。例えば、デバイスは、一連の変換をキャッシュし、変換のシーケンスを使用して、位置特定を確立してもよい。
【0510】
システムの種々の実施形態は、位置特定動作の結果を使用して、変換情報を更新することができる。例えば、位置特定サービスおよび/またはデバイスは、規準マップ変換に対する追跡マップに関する状態情報を維持するように構成されることができる。受信された変換は、経時的に平均されることができる。一実施形態によると、平均動作は、閾値数(例えば、3回、4回、5回、またはそれを上回る回数)の位置特定が成功した後に生じるように限定されることができる。さらなる実施形態では、他の状態情報も、クラウド内において、例えば、パス可能世界モジュールによって、追跡されることができる。一実施例では、状態情報は、デバイス識別子、追跡マップID、規準マップ基準(例えば、バージョンおよびID)、および規準マップ/追跡マップ変換を含むことができる。いくつかの実施例では、状態情報は、システムによって、持続的に更新し、クラウドベースの位置特定機能の実行毎に、より正確な規準マップ/追跡マップ変換を得るために使用されることができる。
【0511】
クラウドベースの位置特定に対する付加的向上は、デバイスに、規準マップ内の特徴にマッチングしなかった、特徴のセット内の誤対応を通信することを含むことができる。デバイスは、例えば、誤対応をその追跡マップを構築するために使用される特徴のセットから除去すること等によって、その追跡マップを改良するために、本情報を使用してもよい。代替として、または加えて、位置特定サービスからの情報は、デバイスが、その追跡マップのためのバンドル調整を、正対応特徴に基づく、コンピューティング調節に限定する、または別様に、バンドル調整プロセスに関する制約を課すことを有効にし得る。
【0512】
別の実施形態によると、種々のサブプロセスまたは付加的動作が、クラウドベースの位置特定に関して議論されるプロセスおよび/またはステップと併せて、および/またはその代替として、使用されることができる。例えば、候補マップ識別は、個別のマップとともに記憶されたエリア識別子および/またはエリア属性に基づいて、規準マップにアクセスすることを含んでもよい。
【0513】
イベントベースのバッファ
【0514】
図63に関連して上記に説明されるように、ポータブルデバイスは、画像情報をバッファに追加してもよく、これは、次いで、位置特定要求の一部として、位置特定サービスに送信される。いくつかの実施形態では、イベントベースのバッファは、バッファに追加される、特徴のセットを決定するために使用されてもよい。イベントは、例えば、図63Bに示されるように、行為6324において、情報をバッファ内でクエリバッチとして位置特定サービスに送信する前に、特徴のセットをバッファに周期的に追加することと比較して、個々のセット間のクロスエントロピが、増加されるようなものであり得る。
【0515】
本発明者らは、バッチ内の視覚的情報が、実質的に繰り返される情報を含有せず、むしろ、デバイスから捕捉された種々の異なる視点を表す場合、規準マップに対する位置特定の成功の機会および位置特定の正確度が、改良される可能性が高いことを認識し、その真価を認めた。例えば、デバイスのユーザが、10セットの特徴が周期的インターバルで収集されるときの時間周期にわたって、動き回らず、代わりに、じっと立っている場合、クエリが、同一エリアの複数の画像フレームに基づいて、特徴セットがいっぱいである、バッファを用いて、送信され、位置特定要求を失敗させるリスクがある。増加されたクロスエントロピを増加させている、特徴のセットをバッファに追加することによって、より成功し、かつ一貫した位置特定結果が、生産され得る。
【0516】
加えて、あるイベントに応答して、バッファ内にバッチ化されるべき特徴のセットを選択することもまた、冗長であり得る、特徴の複数のセットによって、クラウド位置特定サーバを埋め尽くすことを回避し得る。したがって、データを画像のストリームから回収する際の伝送帯域幅および遅延は、低減され得る。
【0517】
1つまたはそれを上回る基準が、抽出された特徴のセットをバッファに追加するかどうかを決定するために適用されてもよい。1つまたはそれを上回る基準が、評価されてもよく、これは、新しく抽出された特徴のセットのバッファへの追加をトリガし、新しく抽出された特徴のセットが以前に抽出された特徴のセットと大クロスエントロピを有する可能性が高いことを示し得る、イベントの検出につながり得る。
【0518】
いくつかの実施形態では、評価される基準は、画像フレームのストリームに基づいてもよい。検出されるイベントは、平行移動距離、回転角度、視点、またはそれらの任意の組み合わせの変化であってもよい。例えば、新しいおよび前の特徴のセットと関連付けられる位置間の少なくとも、50cm、1m、2m、または5mの平行移動が、イベントのためのトリガ条件として使用されてもよい。別の非限定的実施例として、少なくとも10度、15度、20度、または30度の回転角度が、種々の実施形態では、イベントのためのトリガ条件として使用されてもよい。平行移動および回転角度等の位置情報は、限定ではないが、IMUを使用したデバイスの運動の追跡または画像フレームとデバイスによって維持される追跡マップの比較等、上記に議論されるような種々の手段のいずれかを使用して追跡されてもよい。代替として、または加えて、Wi-Fiフィンガプリントが、イベントを検出するための基礎として使用されてもよい。Wi-Fiフィンガプリントは、ポータブルデバイスの場所に基づいて変化し、トリガ条件を規定する際に使用され得る、測定可能パラメータの実施例である。
【0519】
いくつかの実施形態では、デバイスによって捕捉された画像フレームの記述子は、トリガ条件を規定する際に使用される、測定可能パラメータであり得る。フレーム記述子は、デバイス上の画像センサによって捕捉された画像フレームによって描写される物理的周囲の特徴を表すために算出されてもよい。記述子は、深層キーフレームに関連して上記に説明されるようなものであってもよい。そのような記述子は、画像の視覚的類似性を示す、値を有し、したがって、2つの画像に関する記述子値における十分な差異は、それらの画像が、それらの画像が捕捉された環境が異なるように見える、十分な距離によって捕捉された場所間の物理的分離を示し得る。いくつかの実施形態では、それに関してそのような記述子が算出される、画像は、上記に説明されるように選択される、キーフレームであってもよい。しかしながら、ある時間順序において捕捉された任意の画像が、位置の経時的変化を決定するために使用されてもよい。画像フレームを表す、特徴のセットのバッファは、大クロスエントロピを有する、特徴のセットのみが、バッファ内に記憶され、位置特定サービスのための要求としてバッチ化され得るように、記述子値に基づく、イベントベースであってもよい。
【0520】
1つまたはそれを上回るトリガ条件を定義するために使用されるパラメータにかかわらず、イベントは、そのパラメータの値の変化の検出に基づいてもよい。変化は、デバイスによって捕捉された現在の画像に基づいて、バッファに、別の特徴のセットを追加することが、高クロスエントロピをもたらし得ることを示す、ベースラインに対するものであってもよい。変化は、画像のシーケンス内の以前の画像に対して測定されてもよい。それらの画像は、例えば、キーフレームのシーケンスであってもよい。変化は、シーケンス内の直前の画像に対するものであってもよい。代替として、または加えて、変化は、特徴のセットをバッファに追加するために使用された、直近の画像に対するものであってもよい。代替として、または加えて、変化は、それに関して特徴がバッファに追加された画像のいずれかに対するものであってもよい。
【0521】
バッファに、ポータブルデバイスによって入手された画像から導出される特徴のセットを追加するためのイベントを定義するために使用される基準にかかわらず、他の基準も、位置特定要求の一部としてバッファに送信すべきときを決定するために使用されてもよい。バッファは、周期的スケジュールに基づいて、またはバッファのコンテンツのサイズに基づいて、クエリバッチとして位置特定サービスに伝送されてもよい。例えば、10セットの特徴が、バッファに追加されるとき、デバイスは、バッファコンテンツを、位置特定要求の一部として、位置特定サービスに送信してもよい。
【0522】
いくつかの実施形態では、イベントが、ある周期後、検出されない場合、例えば、ユーザが、ある時間周期にわたって、デバイスを移動させないとき、バッファに追加されるために十分なクロスエントロピを有する、適切な情報量を待機し続けるのではなく、メッセージが、例えば、デバイス上のディスプレイ等のユーザインターフェースを介して、ユーザに通信されてもよい。メッセージは、環境を探索するようにユーザを促す、単語および/または記号および/または音および/または任意の他の好適な視覚的、可聴、または触覚イベントを含有してもよい。代替として、または加えて、イベント検出に関する閾値は、十分な数の特徴がバッファに追加されるまで、徐々に降下されてもよい。
【0523】
図71は、いくつかの実施形態による、XRデバイスと、クラウドベースの位置特定サービスとを備える、代表的XRシステムを描写する、ブロック図である。本実施例では、XRデバイスは、XRシステムと具体的に併用するために構成される、ヘッドセットと、関連付けられるプロセッサとを伴う、上記に説明されるようなデバイスであってもよい。他のシナリオでは、XRデバイスは、スマートフォンまたは他のポータブルデバイスであってもよく、その上にXRプラットフォームが、本明細書に説明されるような機能を実施するためにロードされている。
【0524】
図71は、クラウドベースの位置特定サービス7104と通信し、位置特定を実施する、例示的XRデバイス7102を図示する。位置特定サービスがクラウド内に位置することは、要件ではない。イベントベースのバッファは、本明細書に説明されるように、代替として、または加えて、例えば、デバイス自体上の位置特定サービスと併用されてもよい。
【0525】
XRデバイス7102内では、複数の画像が、カメラ入力7106として捕捉される。それらの画像は、特徴が画像のいくつかまたは全てに関して検出されるように処理されてもよい。本実施例では、画像は、角検出7108によって処理され、限定ではないが、角または縁等の着目点および/または構造を識別する。
【0526】
ブロック7112では、識別された着目点は、処理され、特徴の疎セットを選択する。上記に説明されるように、具体的特徴の選択は、視覚的弁別性、投影された持続性、または他の基準に基づいてもよい。さらに、ある画像のみが、キーフレームとして選択されてもよく、キーフレームの特徴のみが、さらに処理されてもよい。これらおよび他の技法は、カメラ出力7106全体に対する情報の量を低減させ得る。いくつかの実施形態では、表面等の稠密の視覚的特徴もまた、ブロック7112における処理の結果として認識されてもよい。いくつかの実施形態では、位置特定は、疎特徴に基づいて実施されてもよく、稠密の視覚的特徴は、別個に処理されてもよい。
【0527】
本実施例では、一連のキーフレームである、疎表現が、ブロック7110に提供され、キーフレームの起源となった、捕捉された画像の特徴のセットを表す、フレーム記述子を算出してもよい。記述子は、上記に説明されるように、深層キーフレーム記述子であってもよい。
【0528】
ブロック7112において算出された疎特徴はまた、ブロック7116における姿勢推定のために提供される。ブロック7116における処理の結果として、特徴は、姿勢付きであって、デバイス7102によって使用される座標フレームに対する位置および配向を割り当てられてもよい。その座標フレームは、例えば、デバイスによって維持される、追跡マップの座標フレームであってもよい。
【0529】
ブロック7112において導出される疎特徴、ブロック7116において導出される姿勢情報、およびフレーム記述子は、ブロック7114に提供され、そこで、それらは、PFR(「姿勢付き特徴リグ」)として組み合わせられる。PFRは、位置特定するために必要とされる情報を含み得る、位置特定で使用され得る、データ構造の実施例である。そのような情報は、捕捉された画像から抽出された特徴のセットを、結び付けられた位置情報(姿勢)とともに含む。PFRは、加えて、特徴記述子、GPSデータ、または無線フィンガプリント等の場所メタデータを含んでもよい。
【0530】
PFR生成器/スケジューラ7114は、位置特定要求がクラウドベースの位置特定サービス7118に送信されるときを制御する、1つまたはそれを上回るアクションを実施してもよい。制御は、要求をクラウドベースの位置特定サービス7104に送信することに立って、上記に説明されるように、イベントベースのバッファを含んでもよい。図示される実施形態では、画像についての情報が、処理されるにつれて、PFR生成器/スケジューラ7114は、1つまたはそれを上回る基準を適用し、PFRのバッファをトリガする、イベントが生じたかどうかを決定してもよい。PFR生成器/スケジューラ7114は、基準を評価するためのパラメータとしての役割を果たす、デバイス7102の他のコンポーネントによって生成されたデータへのアクセスを有してもよい。そのデータは、例えば、GPSデータおよび/またはIMUにアクセスし得る、例えば、無線メタデータを周期的に収集する、コンポーネントから導出されてもよい。
【0531】
例えば、Wi-Fiメタデータ、GPSまたはIMUからのデータ、または頭部姿勢データに基づく基準が、処理されているPFRが以前に追加されたPFRに対して冗長であるかどうかを決定するために使用されてもよい。該当しない場合、PFR生成器/スケジューラ7114は、PFRをバッファに追加してもよい。
【0532】
いくつかの実施形態では、時間ベースの基準が、PFRをバッファに追加すべきかどうかを決定するために、イベントベースの基準に加え、使用されてもよい。例えば、PFRが、2秒等の設定時間内に、バッファに追加されていない場合、PFRは、追加されてもよい。別の実施例として、最後の位置特定要求以降、3秒を上回って経過しており、バッファが、50%満未満である場合、PFRは、バッファに追加されてもよい。時間ベースの基準は、イベントベースの基準と併せて適用され、例えば、イベントが稀に生じる場合、位置特定要求のための十分なデータがバッファ内に存在することを確実にしてもよい。
【0533】
PFR生成器/スケジューラ7114はまた、位置特定のための要求7122がクラウドベースの位置特定コンポーネント7118に送信される、タイミングを制御してもよい。本決定は、例えば、バッファが所定の数のPFRで満たされるときに基づいて、行われてもよい。他の基準も、代替として、または加えて、適用されてもよい。例えば、位置特定が、所定の時間周期を上回って、要求されていない場合、PFR生成器/スケジューラ7114は、要求を送信してもよい。
【0534】
要求7122内の情報に基づいて、クラウドベースの位置特定コンポーネント7118は、上記に説明されるように、位置特定を実施してもよい。位置特定の一部として、位置特定コンポーネント7118は、XRデバイス7102の物理的周囲の座標フレームと、規準マップデータベース7120内の共有規準マップの座標フレームを関連させる、変換を生成してもよい。
【0535】
位置特定要求が、成功すると、変換を含む、位置特定の結果7124は、次いで、XRデバイス7102に返信される。
【0536】
いくつかの実施形態では、位置特定要求は、共有項が要求とともに送信されるPFRの複数のものに関して達成される位置特定結果内に存在しない限り、成功と見なされ得ない。例えば、位置特定要求が成功と見なされるために、PFRの少なくとも30%が、マッチングすると見なされるために、十分に類似する変換を伴って、同一マップと整合しなければならない。上記に説明されるようなイベントベースの処理を使用して、バッチのクロスエントロピを増加させることは、位置特定が成功するための十分な共有項の機会を増加させ得る。不成功試行に続く処理は、位置特定全体を繰り返す、または後続位置特定要求のためのバッチ内のPFRの数を増加させる等、算出上集約的であり得るため、いくつかの失敗を低減させることは、平均して、処理を有意に低減させ得る。
【0537】
無線フィンガプリント補助位置特定
【0538】
位置特定が、位置特定サービス(例えば、規準マップのセットを記憶し得る)内、またはデバイス(例えば、位置特定のための規準マップのセットを受信し得る)上で実施されるかどうかにかかわらず、位置特定プロセスは、それに対して、位置特定が試行され得る、無数の規準マップを効率的にフィルタリングすることによって、より効率的になり得る。いくつかの実施形態では、物理的世界の比較的に小領域を記述する、無線フィンガプリント等の場所メタデータは、ポータブルデバイスによって入手された物理的世界についての情報と関連付けられてもよく、それに対して位置特定が試行され得る、規準マップに関連して記憶されてもよい。無線フィンガプリントとポータブルデバイスによって捕捉された情報の類似性に基づいて、マップまたはマップの一部を選択することは、位置特定プロセスを簡略化し得る。
【0539】
無線フィンガプリントは、物理的世界の比較的に小領域内で受信された無線信号の特性から構築されてもよい。本明細書に説明される例示的実施形態では、Wi-Fi信号が、無線信号の実施例として使用される。具体的には、BSSIDおよびRSSIは、受信される無線信号の特性の実施例である。但し、他の実施形態では、無線ネットワークアクセスポイントまたは他の無線通信からの信号の他の特性が、代替として、または加えて、シグネチャを形成するために使用されてもよい。いくつかの実施形態では、GPSおよび/またはBluetooth(登録商標)ビーコンが、単独で、またはWi-Fi信号と組み合わせて、無線フィンガプリントを形成するために使用されてもよい。
【0540】
さらに、本明細書に説明されるいくつかの例示的実施形態では、無線フィンガプリントは、ポータブルデバイスによって捕捉された物理的世界についての持続情報の実施例である、持続姿勢と関連付けられる。持続姿勢は、ポータブルデバイス上で捕捉された画像情報を処理し、物理的世界内の持続コンテンツである可能性が高い内容を示す、特徴のクラスタを検出することによって、認識される。持続姿勢は、次いで、追跡マップの中に統合される。持続姿勢は、追跡マップ全体を通して分散される、例えば、物理的世界内の2~4メートルに対応する距離だけ離間される。追跡マップは、タイルにセグメント化されてもよく、各タイルは、持続姿勢を包含する。
【0541】
規準マップ内の持続座標フレーム(PCF)は、それに対してデバイスが位置特定し得る、持続情報の実施例である。PCFは、それらに結び付けられる、無線シグネチャを有してもよい。上記に説明されるように、規準マップは、上記に説明されるように、マップマージプロセス等を使用して、追跡マップから形成されてもよい。追跡マップを規準マップに変える、またはマージする際、PCFが、追跡マップの1つまたはそれを上回る持続姿勢から作成されてもよい。
【0542】
図64-68は、いくつかの実施形態による、ポータブルデバイスが、Wi-Fi補助位置特定または他の機能において使用するためのWi-Fiフィンガプリントを含有する、追跡マップを生成する、実施例を図示する。
【0543】
図64では、ポータブルデバイスを伴うユーザ6402が、無線ネットワークアクセスポイント6404a-6404eを含有する、3次元(3D)環境内に示される。いくつかの実施形態では、ユーザ6402のポータブルデバイスは、近隣のネットワークアクセスポイント、例えば、図64に示されるように、ネットワークアクセスポイント6404a、6404b、および6404cから、信号を受信し得る。ポータブルデバイス上の無線ハードウェアは、それに関して信号が検出される、ネットワークアクセスポイント毎に、ネットワークアクセスポイント識別子と、信号強度インジケータ値とを決定してもよい。無線チップセットが、例えば、利用可能な無線ネットワークのための走査を実施するように構成されてもよい。その走査機能は、本明細書に説明されるように、無線情報を取得するために開始されてもよい。
【0544】
いくつかの実施形態では、ネットワークアクセスポイント識別子は、基本サービスセット識別子(BSSID)であってもよく、信号強度インジケータ値は、受信信号強度インジケータ(RSSI)値であってもよい。いくつかの実施形態では、ネットワークアクセスポイントについての他の情報も、ネットワークアクセスポイント識別子および信号強度インジケータに加え、またはその代わりに、収集されてもよい。いくつかの実施形態では、ネットワークアクセスポイント情報は、Wi-Fiフィンガプリントを形成するために使用されてもよい。
【0545】
ネットワークアクセスポイント情報6406は、マップ6412のタイル6410内の持続場所情報6408と関連付けて記憶されてもよい。例えば、持続姿勢は、データ構造として、ポータブルデバイスの中の不揮発性メモリ内に記憶される、またはネットワークを経由して、それに接続されてもよい。無線情報は、例えば、本データ構造では、BSSID、RSSIタプルのリストとして記憶されてもよい。いくつかの実施形態では、持続場所情報6408は、上記に説明されるように、持続座標フレームまたは持続姿勢を含んでもよい。図64の実施例では、持続場所情報6408は、持続姿勢であって、無線信号が捕捉された時点における、ユーザ6402に最も近い持続姿勢として選択される。本コンテキストでは、最も近い持続姿勢は、ユーザと持続姿勢と関連付けられる特徴の3D環境内の場所との間の距離に基づいて決定される、姿勢であるが、他の方法も、使用されてもよい。
【0546】
いくつかの実施形態では、持続場所情報6408は、3D環境内のポータブルデバイスの場所、位置、または配向についての他の情報を含んでもよい。いくつかの実施形態では、複数の場所情報および関連付けられるネットワークアクセスポイント情報が、単一タイル内に記憶されてもよい。無線情報が、例えば、無線情報が、新しい持続姿勢が作成されるにつれて、捕捉および記憶され得るように、ポータブルデバイスが追跡マップを構築するにつれて、捕捉されてもよい。
【0547】
図65は、3D環境内で移動する、ユーザ6402を図示する。図示される実施例では、ユーザ6402のポータブルデバイスは、信号を同一無線ネットワークアクセスポイント6404a、6404b、および6404cから受信するが、ポータブルデバイスと無線ネットワークアクセスポイント6404a-6404eとの間の近接度の変化のため、これらの無線ネットワークアクセスポイントと関連付けられる、新しい信号強度値を取得する。本実施例では、ユーザの場所は、新しい持続姿勢が作成されるように、追跡マップ内にまだマッピングされていない、空間にユーザを進入させている。いくつかの実施形態では、新しい持続姿勢は、追跡マップのための新しいタイルを定義してもよい。いくつかの実施形態では、タイルのグリッドは、事前に定義され得る(例えば、他のタイルに対して固定されたサイズおよび形状)が、データを含有していない場合がある(例えば、エリアが、ユーザがそのタイルに進入し、いくつかの実施形態では、持続姿勢および/またはPCFが作成されるまで、これまでマッピングされていない場合)。新しいネットワークアクセスポイント情報6506は、図示されるように、新しい持続場所情報6508とともに、マップ6412の新しいタイル6510内に記憶されてもよい。いくつかの実施形態では、新しいタイル6510が、例えば、以前のタイルが作成されてから、ポータブルデバイスが移動した距離が閾値を超えるため、作成されてもよい。
【0548】
図66は、3D環境内でさらに移動する、ユーザ6402を図示する。本実施例では、ユーザ6402のポータブルデバイスは、信号を無線ネットワークアクセスポイント6404a、6404b、6404c、および6404dから受信する。図64および65に関連して議論されるように、ネットワークアクセスポイント情報6606および持続場所情報6608が、マップ6412のタイル6610内に記憶されてもよい。
【0549】
図64、65、および66に図示されるような持続姿勢と関連付けられる、無線情報は、そのタイルに関する初期無線シグネチャであってもよい。いくつかの実施形態では、タイルに関する無線シグネチャは、ユーザデバイスが動作し続け、より多くの無線情報を収集するにつれて、精緻化され得る。
【0550】
図67では、ユーザ6402は、3D環境6102内の、図66におけるものと同一場所に示される。いくつかの実施形態では、これは、ユーザが、ある持続時間にわたって、同一場所に留まるときに生じ得る。タイルは、例えば、2~4平方メートルのエリアに対応し得、無線走査が、約20~60秒毎に実施され得る。結果として、ユーザは、多くの場合は、走査間の時間において、1つのタイルから別のタイルに移動するために十分に遠くまで移動しない場合がある。代替として、または加えて、これは、ユーザが、いずれかの場所に移動した後、同一場所に戻るときに生じ得る。図示される実施例では、ユーザ6402のポータブルデバイスは、信号を同一無線ネットワークアクセスポイント6404a-6404dから受信し、新しいネットワークアクセスポイント情報を取得する。
【0551】
しかしながら、ユーザは、同一タイル内に存在するが、新しいネットワークアクセスポイント情報は、タイル6610(例えば、図66における6606)内に以前に記憶されたネットワークアクセスポイント情報と異なり得る。変更は、ユーザが、異なる無線走査が実施されるときに、あるタイルを伴う、異なる場所に位置することから生じ得る。代替として、または加えて、変更は、無線信号に関する伝搬条件の変化、無線アクセスポイントの変化、または他の原因から生じ得る。新規無線情報と以前に収集された情報をマージすることによって、無線情報は、より安定し、したがって、他の無線シグネチャとの比較のための無線シグネチャとしてより効果的となり得る。
【0552】
図示される実施例では、新しいネットワークアクセスポイント情報は、以前に記憶されたネットワークアクセスポイント情報とマージされ、マージされたネットワークアクセスポイント情報6706を生産し、これは、同一持続場所情報6608とともに、同一タイル6610内に記憶され得る。図示される実施形態では、以前に記憶された情報は、各持続姿勢と関連付けて記憶された無線情報が直近の無線走査を反映させるように、マージされた情報と置換される。
【0553】
マージされたネットワークアクセスポイント情報を生産することは、いくつかの実施形態では、以前に記憶された信号強度インジケータとアクセスポイント識別子と関連付けられる新しい信号強度インジケータの平均を求めることを含んでもよい。平均は、例えば、移動平均として算出されてもよい。マージされたネットワークアクセスポイント情報を生産することは、代替として、または加えて、ある記憶されたネットワークアクセスポイント情報と、新しいネットワークアクセスポイント情報の一部、全部を置換する、または全く置換しないことを含んでもよい。図示される実施例では、マージされたネットワークアクセスポイント情報6706内に太字で示されるRSSI値は、以前に記憶されたネットワークアクセスポイント情報6606内のRSSI値とネットワークアクセスポイントから取得される新しいRSSI値の平均を表す。
【0554】
他の処理も、代替として、または加えて、無線シグネチャの安定性を改良する、または別様に、無線シグネチャを効率的に比較するための情報をフォーマットするために使用されてもよい。図68は、3D環境内でさらに移動する、ユーザ6402を図示する。図示される実施例では、ポータブルデバイスは、もはや無線ネットワークアクセスポイント6404aの範囲内に存在しないが、信号をネットワークアクセスポイント6404b、6404c、6404d、および6404eから受信する。いくつかの実施形態では、ポータブルデバイスによって収集されたネットワークアクセスポイント情報は、記憶される前に、フィルタリングされてもよい。
【0555】
図68の実施例では、ポータブルデバイスがタイル6810内に存在する間に、無線ネットワークアクセスポイント6404b-eから収集されたネットワークアクセスポイント情報6806は、新しいネットワークアクセスポイント情報6807として示される。情報6807は、記憶される前に、フィルタリングされてもよい。新しいネットワークアクセスポイント情報は、例えば、信号強度に基づいて、フィルタリングされてもよい。いくつかの実施形態では、ネットワークアクセスポイントのタイプまたはネットワークアクセスポイント情報を含む他の情報は、フィルタリングするための基準であってもよい。図68では、低信号強度値に起因してフィルタリングされるべきアクセスポイント識別子の実施例は、ネットワークアクセスポイント情報6807内に太字で示される。本実施例では、新しいネットワークアクセスポイント情報6807内の無線ネットワークアクセスポイント6404eと関連付けられる、3のRSSI値は、閾値を下回り、フィルタリング除去される。故に、無線ネットワークアクセスポイント6404eのBSSIDは、ネットワークアクセスポイント情報6806内に現れない。
【0556】
図69は、いくつかの実施形態による、ネットワークアクセスポイント情報に基づいて、マップを別のマップ内のポータブルデバイスから位置特定する、実施例を図示する。図69では、ポータブルデバイスマップ7002は、例えば、遠隔コンピューティングデバイス上に記憶され得る、複数のマップの記憶されたマップ7004に対して位置特定されることになる。いくつかの実施形態では、ポータブルデバイスマップは、ポータブルデバイスによって作成された追跡マップであってもよい。いくつかの実施形態では、複数の記憶されたマップは、上記に説明されるように、位置特定サービスによって記憶されるような以前にマッピングされた環境を表す、規準マップであってもよい。ポータブルデバイスマップおよび記憶されたマップは、図64-68に関連して説明されるように、無線シグネチャとしての役割を果たす、関連付けられる場所情報およびネットワークアクセスポイント情報を伴う、複数のタイルを有してもよい。
【0557】
記憶されたマップに対するポータブルデバイスマップの位置特定は、位置特定試行の一部として、比較のために、候補マップのサブセットおよび各マップ内のタイルのサブセットを選択することによって、開始されてもよい。1つまたはそれを上回るフィルタ基準が、記憶されたマップのサブセットを候補マップとして選択するために適用されてもよい。無線シグネチャの類似性は、1つのそのようなフィルタ基準として使用されてもよい。
【0558】
図69の図示される実施例では、ポータブルデバイスマップ7002内のタイル7006のネットワークアクセスポイント情報は、記憶されたマップ7004のタイル7008内に記憶されたネットワークアクセスポイント情報に類似する。本類似性に基づいて、マップ7004は、候補マップとして選択されてもよい。さらに、タイル7006および7008は、候補タイルとして選択されてもよい。位置特定試行は、最初に、これらのタイルを相互に対して位置特定するように試みるように限定されてもよい。これらのタイルが、位置特定されることができない場合、位置特定は、他の対のタイル間で試行されてもよい。対のタイルは、類似性の減少順序において選択されてもよい。代替として、または加えて、タイル7006および7008が、それらが位置特定されると見なされ得る、十分に低誤差を伴って整合され得る場合でも、位置特定は、他の対のタイルに対して試行されてもよく、これは、対のタイル間の類似性の減少順序において選択されてもよい。他の対を位置特定することからの付加的データは、相互に対するマップの場所の正確度を改良し得る。代替として、または加えて、他の対のタイルの位置特定は、マップ7002と同一エリアの全部または一部を被覆する、付加的マップを識別するために実施されてもよい。
【0559】
いくつかの実施形態では、無線シグネチャの類似性は、Jaccard類似性に基づいてもよい。選択されたポータブルデバイスマップタイルおよび記憶されたマップタイルのネットワークアクセスポイント情報は、ポータブルデバイスマップタイルとともに記憶されたBSSIDおよび個別のRSSI値のリストと記憶されたマップタイルの対応する情報との間のJaccard類似性を算出することによって、比較されてもよい。ネットワークアクセスポイント情報を比較するための他のアルゴリズムおよびヒューリスティックも、加えて、または代替として、選択されたポータブルデバイスマップタイルのネットワークアクセスポイント情報と記憶されたマップタイルのネットワークアクセスポイント情報を比較するために、採用されてもよい。
【0560】
図69の図示される実施例では、記憶されたマップ7004の候補タイル7008は、ポータブルデバイスマップ7002の選択されたタイル7006と比較して、最も類似するように選択される。本実施例では、選択は、ポータブルデバイスマップタイル7006と関連付けられるネットワークアクセスポイント情報7010と記憶されたマップ7004の候補タイル7008のネットワークアクセスポイント情報7012との間の類似性に基づいてもよい。いくつかの実施形態では、複数の候補タイルが、規準マップ内で選択されてもよい。
【0561】
類似タイルを伴うマップを識別することは、マップをマージし、および/またはポータブルデバイスを共有座標フレームに対して位置特定する等のための付加的処理の予備ステップとして行われてもよい。いくつかの実施形態によると、ポータブルデバイスマップは、ネットワークアクセスポイント情報の比較に基づいて選択された候補タイルまたは複数のタイルから開始する、記憶されたマップ内で位置特定されてもよい。位置特定プロセスは、少なくとも、上記の図23、34、44、45、46A、および46Bに関連して詳細に説明される。本小節に説明される位置特定技法は、本明細書に説明される位置特定のための他の方法のいずれかと併用されてもよいことを理解されたい。
【0562】
いくつかの実施形態では、1つまたはそれを上回る記憶されたマップに対してデバイスを位置特定するとき、追跡マップ全体を記憶されたマップに対して比較するように要求されなくてもよい。その中にデバイスが現在位置する、現在のタイルは、例えば、記憶されたマップのタイルに対して位置特定されてもよい。それを用いて位置特定を試行すべき候補として選択するための記憶されたマップのタイルは、無線シグネチャの類似性に基づいて、選択されてもよい。代替として、または加えて、マップは、複数の階層分割を有してもよく、無線フィンガプリントは、無線フィンガプリントに基づくマップの選択が任意のレベルの階層における選択をもたらし得るように、任意のレベルの階層と関連付けられてもよい。
【0563】
マップは、例えば、エリアに細分割されてもよく、これは、ひいては、タイルに分割されてもよい。エリア内の任意のタイルの無線フィンガプリントは、エリアを候補マップとして選択する際に使用されてもよい。代替として、または加えて、エリア内の複数のタイルに関する無線フィンガプリントは、エリアに関する組み合わせられたフィンガプリントの中に集約されてもよい。集約は、例えば、任意のタイル内に現れる、BSSIDのリストを形成し、1つを上回るタイルのフィンガプリント内にある、BSSIDに関するRSSI値を平均することによって、実施されてもよい。
【0564】
代替として、または加えて、各タイルは、複数のPCF等の複数の持続点を含有してもよい。各そのような持続点は、その独自の無線シグネチャを有し得る。1つまたはそれを上回るPCFは、その無線シグネチャに基づいて、候補マップ選択の一部として選択されてもよい。
【0565】
さらに、記憶されたマップ内のタイルの選択が、追跡マップの任意の部分に対する位置特定試行につながることは、要件ではない。いくつかの実施形態では、例えば、共有マップを用いた位置特定に関する位置情報は、追跡マップからではなく、現在の画像データから導出されてもよい。なお、その中にポータブルデバイスが現在位置する、タイルと関連付けられる、無線シグネチャは、記憶されたマップのタイルを位置特定のための候補として選択するために使用されてもよい。
【0566】
いくつかの実施形態では、ネットワークアクセスポイント情報比較に基づく位置特定は、ポータブルデバイスマップの選択された座標フレームと位置特定されている記憶されたマップ座標フレームとの間の変換を算出することを含んでもよい。いくつかの実施形態では、座標フレームは、持続座標フレーム(PCF)および/または持続姿勢および/または追跡マップおよび規準マップのための原点であってもよい。ポータブルデバイスマップの選択された座標フレームは、ネットワークアクセスポイント情報の比較のために選択されたタイルと関連付けられる、座標フレームであってもよい。位置特定されている記憶されたマップの座標フレームは、ネットワークアクセスポイント比較の結果として選択された候補タイルと関連付けられる、座標フレームであってもよい。いくつかの実施形態では、他の座標フレームのための変換も、代替として、または加えて、ネットワークアクセスポイント情報の比較に基づいて算出されてもよい。
【0567】
無線シグネチャが使用される方法にかかわらず、本明細書に説明されるような技法は、無線シグネチャの効率的生成をもたらし得、これは、短待ち時間を伴って利用可能であり得る。図70は、いくつかの実施形態による、そのようなプロセスを図示する、フローチャートである。図70に関連して説明される処理は、いくつかの実施形態では、ポータブルデバイス上で実施されてもよいが、代替として、または加えて、ネットワークを経由してポータブルデバイスに接続される、1つまたはそれを上回るプロセッサ、またはシステムの他のプロセッサ上で実施されてもよい。マップを作成する、行為7102-7108は、ポータブルデバイスよって行われる一方、他の図示される行為は、例えば、クラウド構成において複数のコンピューティングデバイスを備える、サーバまたはコンピューティングデバイス等の遠隔コンピューティングデバイスによって、行われてもよい。
【0568】
行為7102では、ポータブルデバイスは、3D環境内のその場所におけるネットワークアクセスポイント情報を取得する。本行為は、そこからポータブルデバイスが信号を受信する、ネットワークアクセスポイントに関するBSSIDおよび対応するRSSI値を取得することを含んでもよい。いくつかの実施形態では、ネットワークアクセスポイントの名前またはタイプ等の他のネットワークアクセスポイント情報も、収集されてもよい。本情報は、デバイス上のWi-Fiチップによって実施される走査によって、Wi-Fiを具備するポータブルデバイス上で入手されてもよい。走査は、要素7112に関連して下記により詳細に議論される、任意の1つまたはそれを上回る条件によってトリガされてもよい。
【0569】
行為7104では、ポータブルデバイスは、随意に、行為7102において収集されたネットワークアクセスポイント情報をフィルタリングおよび処理してもよい。フィルタリングまたは処理する行為は、ネットワークアクセスポイント情報をドロップすることを含んでもよい。例えば、BSSIDは、対応する信号強度値に基づいて、またはBSSIDの除外基準に基づいて、フィルタリングされてもよい。除外基準は、例えば、BSSID名に基づいてもよい。ポータブルアクセスポイントを示唆する、用語「電話」または他の用語を含有する、名前は、除外されてもよい。同様に、発見可能ではない、アクセスポイントは、同一空間内で動作する別のデバイスによって検出され得ない、アクセスポイントを示し得る、任意の他の特性を伴うアクセスポイントであり得るため、除外されてもよい。いくつかの実施形態では、フィルタステップ7104は、全てではなく、所定の数量のアクセスポイント情報をフィルタリング除去してもよい。例えば、全てではなく、最高信号強度値を伴う、3つのBSSIDが、ネットワークアクセスポイント情報からフィルタリング除去されてもよい。
【0570】
さらなる処理または伝送のために、ネットワークアクセスポイント情報を正規化する、またはネットワークアクセスポイント情報を異なるフォーマットで表す等のネットワークアクセスポイント情報を処理する他の方法も、加えて、または代替として、採用されてもよい。
【0571】
行為7106では、持続点は、ポータブルデバイスの場所を表すように選択される。いくつかの実施形態では、選択された持続点は、それに対してポータブルデバイスが位置特定される、マップ内のポータブルデバイスに対して最も近い、持続姿勢またはPCFであってもよい。代替として、または加えて、選択された持続点は、ポータブルデバイスの場所を表す、他の情報であってもよい。
【0572】
しかしながら、図70の実施例では、持続点は、デバイスの追跡マップ内の持続姿勢であってもよい。行為7108aでは、いくつかの実施形態では、新しいタイルが、データがポータブルデバイスの現在の場所に関してまだ記憶されていない場合、追跡マップに追加されてもよい。他の実施形態では、空タイルが、作成されてもよく、新しい持続点および対応するデータが、空タイルに追加されてもよい。新しいタイルは、行為7106の持続点と、行為7104および7102のネットワークアクセスポイント情報とを含んでもよい。
【0573】
代替として、行為7108bでは、行為7104および7102のネットワークアクセスポイント情報は、追跡マップ内のタイルとすでに関連付けられている、ネットワークアクセスポイント情報とマージされてもよい。いくつかの実施形態では、これは、ネットワークアクセスポイント情報内の対応するBSSIDと関連付けられるRSSI値を平均することを含んでもよい。いくつかの実施形態では、これは、代替として、または加えて、記憶されたネットワークアクセスポイント情報と新しいネットワークアクセスポイント情報を置換する、または逆に言えば、記憶されたネットワークアクセスポイント情報を留保し、新しいネットワークアクセスポイント情報を廃棄することを含んでもよい。新しいネットワークアクセスポイント情報は、例えば、以前に収集された情報から広許容差で逸脱する、または全てのネットワークアクセスポイントに関して非常に低RSSI値を有し、受信問題の可能性を示す等、ある品質基準に不合格になる場合、マージされるのではなく、破棄され得る。
【0574】
データが、行為7108aまたは7108bにおいて記憶された後、ポータブルデバイスは、新しいネットワークアクセスポイント走査がトリガされるまで、無線フィンガプリントを形成することに関するさらなるアクションを講じ得ない。新しい走査がトリガされるための例示的基準は、行為7110a-7110cに示される。図示されるように、新しい走査は、前の走査以降のポータブルデバイスによって進行される距離が閾値を超えることに基づいて、トリガされてもよい(7110c)。進行される距離は、デバイスのハードウェアおよび/またはソフトウェアコンポーネントによって決定されてもよい。デバイスは、例えば、閾値距離が進行されたときを決定するために使用され得る、場所または位置のインジケーションを提供する、IMUまたはGPSハードウェアを含んでもよい。代替として、または加えて、追跡マップを捕捉された画像のシーケンスから形成するデバイスは、マップ内のデバイスの相対的位置に基づいて、進行された距離を決定してもよい。
【0575】
他の実施例では、新しい走査は、前の走査以降に経過した時間量によってトリガされてもよい(7110b)。例えば、走査は、走査が、例えば、20秒または60秒または20~60秒の範囲内の任意の値であり得る、閾値時間量を上回って実施されていない場合、トリガされてもよい。
【0576】
他の実施例では、BSSID変化等のネットワークアクセスポイント内の更新は、新しい走査をトリガしてもよく(7110a)、および/または無線ハードウェアをトリガし、走査の結果を送信してもよい。
【0577】
これらの行為は、ポータブルデバイス上で生じる必要はないが、いくつかの実施形態では、ポータブルデバイス自体が、行為7110a、7110b、または7110cに従って、新しい走査をトリガしてもよいことを理解されたい。走査はまた、図70に図示されるもの以外の理由から、自動的にトリガされてもよい。例えば、デバイス上で実行される他のコンポーネントは、無線チップセットに、無線シグネチャを維持することに関連しない理由から、走査を実施するようにコマンドしてもよい。いくつかの実施形態では、走査が実施される度に、無線コンポーネントは、走査データが利用可能であることのインジケーションを出力してもよく、これは、次いで、無線ネットワークアクセスポイントに関する情報が、無線フィンガプリントを構築するデバイスのコンポーネントからの明示的要求を伴わずに、ハードウェアからプッシュされ得るように、無線シグネチャを更新するために使用されてもよい。
【0578】
行為7112における走査をトリガする、具体的機構にかかわらず、新しいネットワーク走査が、トリガされる。プロセスは、次いで、上記に説明されるように、行為7102に進む。
【0579】
本小節に説明される技法は、本明細書に説明される他の技法と併用されてもよいことを理解されたい。例えば、本小節に説明される位置特定プロセスに関わるマップは、図28-34と併せて説明されるように、フィルタリングプロセスを受け得る。図28に示されるように、フィルタリングプロセスは、近傍のエリアフィルタ、Wi-Fiフィンガプリントフィルタ、キーフレームフィルタ、または本願に説明される他のフィルタのいずれかを含んでもよい。図28にさらに示されるように、位置特定プロセスは、フィルタリングプロセスに従ってもよい。いくつかの実施形態では、本位置特定プロセスは、本小節に説明される位置特定のために、ネットワークアクセスポイント比較技法を利用してもよい。
【0580】
さらに、無線フィンガプリントは、選択されたマップの使用にかかわらず、マップの比較または物理的世界内の特定の場所を表すマップの選択のために使用されてもよいことを理解されたい。本節に説明されるような技法は、位置特定プロセスにおける使用に限定されない。無線フィンガプリントは、例えば、上記に説明されるように、マップランク付けプロセスの一部として使用されてもよい。代替として、または加えて、無線フィンガプリントは、同様に上記に説明されるように、マップマージのために、同一または重複領域を表す、マップを選択するために使用されてもよい。
【0581】
さらなる考慮点
【0582】
図60は、コンピュータシステム1900の例示的形態における機械の略図表現を示し、機械に本明細書で議論される方法論のうちの任意の1つまたはそれを上回るものを実施させるための命令のセットが、いくつかの実施形態に従って実行されてもよい。代替実施形態では、機械は、独立型デバイスとして動作する、または他の機械に接続(例えば、ネットワーク化)されてもよい。さらに、単一機械のみが、図示されるが、用語「機械」はまた、個々にまたはともに、命令のセット(または複数のセット)を実行し、本明細書で議論される方法論のうちの任意の1つまたはそれを上回るものを実施する、機械の任意の集合を含むものと捉えられるものとする。
【0583】
例示的コンピュータシステム1900は、プロセッサ1902(例えば、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、または両方)と、メインメモリ1904(例えば、読取専用メモリ(ROM)、フラッシュメモリ、動的ランダムアクセスメモリ(DRAM)、例えば、同期DRAM(SDRAM)またはRambus DRAM(RDRAM)等)と、静的メモリ1906(例えば、フラッシュメモリ、静的ランダムアクセスメモリ(SRAM)等)とを含み、これらは、バス1908を介して相互に通信する。
【0584】
コンピュータシステム1900はさらに、ディスクドライブユニット1916と、ネットワークインターフェースデバイス1920とを含んでもよい。
【0585】
ディスクドライブユニット1916は、その上に本明細書に説明される方法論または機能のうちの任意の1つまたはそれを上回るものを具現化する、1つまたはそれを上回る命令のセット1924(例えば、ソフトウェア)が記憶される、機械可読媒体1922を含む。ソフトウェアはまた、コンピュータシステム1900、メインメモリ1904、およびプロセッサ1902によるその実行の間、完全にまたは少なくとも部分的に、メインメモリ1904内および/またはプロセッサ1902内に常駐し、同様に機械可読媒体を構成してもよい。
【0586】
ソフトウェアはさらに、ネットワーク18を経由して、ネットワークインターフェースデバイス1920を介して、伝送または受信されてもよい。
【0587】
コンピュータシステム1900は、プロジェクタを駆動し、光を生成するために使用される、ドライバチップ1950を含む。ドライバチップ1950は、その独自のデータ記憶装置1960と、その独自のプロセッサ1962とを含む。
【0588】
機械可読媒体1922が、例示的実施形態では、単一媒体であるように示されるが、用語「機械可読媒体」は、1つまたはそれを上回る命令のセットを記憶する、単一媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連付けられるキャッシュおよびサーバ)を含むものと捉えられるべきである。用語「機械可読媒体」はまた、機械による実行のための命令のセットを記憶、エンコーディング、または搬送することが可能であって、機械に、本発明の方法論のうちの任意の1つまたはそれを上回るものを実施させる、任意の媒体を含むものと捉えられるものとする。用語「機械可読媒体」は、故に、限定ではないが、ソリッドステートメモリ、光学および磁気媒体、および搬送波信号を含むものと捉えられるものとする。
【0589】
いくつかの実施形態のいくつかの側面がこれまで説明されたが、種々の改変、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。
【0590】
一実施例として、実施形態は、拡張(AR)環境に関連して説明される。本明細書に説明される技法の一部または全部は、MR環境、またはより一般的には、他のXR環境およびVR環境内に適用されてもよいことを理解されたい。
【0591】
別の実施例として、実施形態は、ウェアラブルデバイス等のデバイスに関連して説明される。本明細書に説明される技法の一部または全部は、ネットワーク(クラウド等)、離散アプリケーション、および/またはデバイス、ネットワーク、および離散アプリケーションの任意の好適な組み合わせを介して実装されてもよいことを理解されたい。
【0592】
さらに、図29は、候補マップをフィルタリングし、高ランク付けマップのセットをもたらすために使用され得る、基準の実施例を提供する。他の基準が、説明される基準の代わりに、またはそれに加え、使用されてもよい。例えば、複数の候補マップが、あまり望ましくないマップをフィルタリング除去するために使用されるメトリックの類似値を有する場合、候補マップの特性が、候補マップとして留保される、またはフィルタリング除去されるマップを決定するために使用されてもよい。例えば、より大きいまたはより稠密な候補マップは、より小さい候補マップより優先されてもよい。
【0593】
任意の自明な改変、修正、および改良が、企図され、本開示の一部であることが意図され、本開示の精神および範囲内であると意図されることに注意されたい。さらに、本開示の利点が示されるが、本開示の全ての実施形態が、全ての説明される利点を含むわけではないことを理解されたい。いくつかの実施形態は、本明細書およびいくつかの事例において有利として説明される任意の特徴を実装しなくてもよい。故に、前述の説明および図面は、一例にすぎない。
【0594】
本開示の前述の実施形態は、多数の方法のいずれかにおいて実装されることができる。例えば、実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを使用して実装されてもよい。ソフトウェア内に実装されるとき、ソフトウェアコードが、単一コンピュータ内に提供される、または複数のコンピュータ間に分散されるかどうかにかかわらず、任意の好適なプロセッサまたはプロセッサの集合上で実行されることができる。そのようなプロセッサは、いくつか挙げると、CPUチップ、GPUチップ、マイクロプロセッサ、マイクロコントローラ、またはコプロセッサ等、当技術分野において公知の市販の集積回路コンポーネントを含む、集積回路コンポーネント内の1つまたはそれを上回るプロセッサとともに、集積回路として実装されてもよい。いくつかの実施形態では、プロセッサは、ASIC等のカスタム回路内に、またはプログラマブル論理デバイスを構成することから生じる半カスタム回路内に実装されてもよい。さらなる代替として、プロセッサは、市販、半カスタム、またはカスタムかどうかにかかわらず、より大きい回路または半導体デバイスの一部であってもよい。具体的実施例として、いくつかの市販のマイクロプロセッサは、1つまたはそれらのコアのサブセットがプロセッサを構成し得るように、複数のコアを有する。但し、プロセッサは、任意の好適なフォーマットにおける回路を使用して実装されてもよい。
【0595】
さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータ等のいくつかの形態のうちのいずれかで具現化され得ることを理解されたい。加えて、コンピュータは、携帯情報端末(PDA)、スマートフォン、または任意の好適な携帯用または固定電子デバイスを含む、概してコンピュータと見なされないが好適な処理能力を伴う、デバイスで具現化されてもよい。
【0596】
また、コンピュータは、1つまたはそれを上回る入力および出力デバイスを有してもよい。これらのデバイスは、とりわけ、ユーザインターフェースを提示するために使用されることができる。ユーザインターフェースを提供するために使用され得る、出力デバイスの実施例は、出力の視覚的提示のためのプリンタまたはディスプレイ画面、または出力の可聴提示のためのスピーカまたは他の音生成デバイスを含む。ユーザインターフェースのために使用され得る、入力デバイスの実施例は、キーボード、およびマウス、タッチパッド、およびデジタル化タブレット等のポインティングデバイスを含む。別の実施例として、コンピュータは、発話認識を通して、または他の可聴フォーマットにおいて、入力情報を受信してもよい。図示される実施形態では、入力/出力デバイスは、コンピューティングデバイスと物理的に別個として図示される。しかしながら、いくつかの実施形態では、入力および/または出力デバイスは、プロセッサと同一ユニットまたはコンピューティングデバイスの他の要素の中に物理的に統合されてもよい。例えば、キーボードは、タッチスクリーン上のソフトキーボードとして実装され得る。いくつかの実施形態では、入力/出力デバイスは、コンピューティングデバイスから完全に接続解除され、無線接続を通して機能的に統合されてもよい。
【0597】
そのようなコンピュータは、企業ネットワークまたはインターネット等、ローカルエリアネットワークまたは広域ネットワークを含む、任意の好適な形態の1つまたはそれを上回るネットワークによって相互接続されてもよい。そのようなネットワークは、任意の好適な技術に基づいてもよく、任意の好適なプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワーク、または光ファイバネットワークを含んでもよい。
【0598】
また、本明細書で概説される種々の方法およびプロセスは、種々のオペレーティングシステムまたはプラットフォームのうちのいずれか1つを採用する、1つまたはそれを上回るプロセッサ上で実行可能である、ソフトウェアとしてコード化されてもよい。加えて、そのようなソフトウェアは、いくつかの好適なプログラミング言語および/またはプログラミングまたはスクリプト作成ツールのうちのいずれかを使用して、書き込まれてもよく、また、フレームワークまたは仮想マシン上で実行される実行可能機械言語コードまたは中間コードとしてコンパイルされてもよい。
【0599】
本側面では、本開示は、1つまたはそれを上回るコンピュータまたは他のプロセッサ上で実行されるときに、上記で議論される本開示の種々の実施形態を実装する方法を行う、1つまたはそれを上回るプログラムで符号化される、コンピュータ可読記憶媒体(または複数のコンピュータ可読媒体)(例えば、コンピュータメモリ、1つまたはそれを上回るフロッピー(登録商標)ディスク、コンパクトディスク(CD)、光学ディスク、デジタルビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイまたは他の半導体デバイス内の回路構成、または他の有形コンピュータ記憶媒体)として具現化されてもよい。前述の実施例から明白なように、コンピュータ可読記憶媒体は、非一過性形態においてコンピュータ実行可能命令を提供するために十分な時間の間、情報を留保し得る。そのようなコンピュータ可読記憶媒体または複数の媒体は、上記に記載されるように、その上に記憶される1つまたは複数のプログラムが、本開示の種々の側面を実装するように1つまたはそれを上回る異なるコンピュータまたは他のプロセッサ上にロードされ得るように、トランスポータブルであることができる。本明細書で使用されるように、用語「コンピュータ可読記憶媒体」は、製造(すなわち、製造品)または機械と見なされ得るコンピュータ可読媒体のみを包含する。いくつかの実施形態では、本開示は、伝搬信号等のコンピュータ可読記憶媒体以外のコンピュータ可読媒体として具現化されてもよい。
【0600】
用語「プログラム」または「ソフトウェア」は、上記に記載されるように、本開示の種々の側面を実装するようにコンピュータまたは他のプロセッサをプログラムするために採用され得る、任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために、一般的意味において本明細書で使用される。加えて、本実施形態の一側面によると、実行されると、本開示の方法を行う、1つまたはそれを上回るコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に常駐する必要はないが、本開示の種々の側面を実装するように、いくつかの異なるコンピュータまたはプロセッサの間でモジュール様式において分散され得ることを理解されたい。
【0601】
コンピュータ実行可能命令は、1つまたはそれを上回るコンピュータまたは他のデバイスによって実行される、プログラムモジュール等の多くの形態であってもよい。概して、プログラムモジュールは、特定のタスクを行う、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。典型的には、プログラムモジュールの機能性は、種々の実施形態では、所望に応じて、組み合わせられる、または分散されてもよい。
【0602】
また、データ構造は、任意の好適な形態でコンピュータ可読媒体に記憶されてもよい。例証を簡単にするために、データ構造は、データ構造内の場所を通して関係付けられるフィールドを有することが示されてもよい。そのような関係は、同様に、フィールド間の関係を伝えるコンピュータ可読媒体内の場所を伴うフィールドのために記憶装置を割り当てることによって、達成されてもよい。しかしながら、ポインタ、タグ、またはデータ要素間の関係を確立する他の機構の使用を通すことを含む、任意の好適な機構が、データ構造のフィールド内の情報の間の関係を確立するために使用されてもよい。
【0603】
本開示の種々の側面は、単独で、組み合わせて、または前述の実施形態に具体的に議論されない種々の配列において使用されてもよく、したがって、その用途は、前述の説明に記載される、または図面に図示されるコンポーネントの詳細および配列に限定されない。例えば、一実施形態に説明される側面は、他の実施形態に説明される側面と任意の様式で組み合わせられてもよい。
【0604】
また、本開示は、その実施例が提供されている、方法として具現化されてもよい。方法の一部として行われる作用は、任意の好適な方法で順序付けられてもよい。故に、例証的実施形態では、連続作用として示されるが、いくつかの作用を同時に行うことを含み得る、作用が図示されるものと異なる順序で行われる、実施形態が構築されてもよい。
【0605】
請求項要素を修飾するための請求項における「第1」、「第2」、「第の」等の順序の用語の使用は、単独では、別の要素と比べた1つの請求項要素のいかなる優先順位、先行、または順序、または方法の行為が行われる時間順序も含意しないが、順序の用語は、請求項要素を区別するために、(順序の用語の使用のためであるが)ある名前を有する1つの請求項要素と、同一の名前を有する別の要素を区別する標識としてのみ使用される。
【0606】
また、本明細書で使用される語句および専門用語は、説明目的のためのものであって、限定と見なされるべきではない。本明細書の「~を含む」、「~を備える」、または「~を有する」、「~を含有する」、「~を伴う」、およびその変形の使用は、その後列挙されたアイテムおよびその均等物および付加的アイテムを包含することを意味する。
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20A
図20B
図20C
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31A
図31B
図32
図33
図34
図35
図36
図37
図38A
図38B
図39A
図39B
図39C
図39D
図39E
図39F
図40
図41
図42
図43A
図43B
図43C
図44
図45
図46A
図46B
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58
図59
図60
図61
図62
図63A
図63B
図63C
図64
図65
図66
図67
図68
図69
図70
図71