詳細な説明
A. 緒言
仮想および拡張現実環境は、部分的に、環境を説明する、データを使用して、コンピュータによって生成される。本データは、例えば、それを用いてユーザが感知および相互作用し得る、種々のオブジェクトを説明し得る。これらのオブジェクトの実施例は、ユーザが見るためにレンダリングおよび表示される、オブジェクトと、ユーザが聞くために再生される、オーディオと、ユーザが感じるための触覚的(または触知)フィードバックとを含む。ユーザは、種々の視覚的、聴覚的、および触覚的方法を通して、仮想および拡張現実環境を感知し、それと相互作用し得る。
仮想または拡張現実(AR)システムは、多くの用途に有用であり得、科学的可視化、医学および軍事訓練、工学設計およびプロトタイピング、遠隔操作およびテレプレゼンス、およびパーソナルエンターテインメントの分野に及ぶ。拡張現実は、仮想現実と対照的に、物理的世界の実オブジェクトに関連して1つまたはそれを上回る仮想オブジェクトを備える。そのような体験は、拡張現実システムを用いたユーザの体験および享受性を大幅に向上させ、また、ユーザが実オブジェクトおよび仮想オブジェクトを同時に体験することを可能にする、種々の用途に関する門戸を開放する。
しかしながら、そのようなシステムを提供する際、有意な課題が存在する。現実的拡張現実体験をユーザに提供するために、ARシステムは、常時、実オブジェクトに関連して仮想オブジェクトの場所を正しく相関させるために、ユーザの物理的周囲を把握しなければならない。さらに、ARシステムはユーザの頭部、身体等に関連して仮想オブジェクトを位置付ける方法を正しく把握しなければならない。これは、常時、世界に関連してユーザの位置の広範な知識を要求する。加えて、これらの機能は、有利なこととして、コスト(例えば、エネルギーコスト等)が、低く保たれながら、速度および性能が維持されるような様式において実施されるべきである。
したがって、現実的拡張現実体験をユーザに提供するための改良されたシステムの必要がある。
B. ウェアラブルシステムの3Dディスプレイの実施例
ウェアラブルシステム(本明細書では、拡張現実(AR)システムとも称される)は、2Dまたは3D仮想画像をユーザに提示するために構成されることができる。画像は、組み合わせまたは同等物における、静止画像、ビデオのフレーム、またはビデオであってもよい。ウェアラブルシステムの少なくとも一部は、ユーザ相互作用のために、単独で、または組み合わせて、VR、AR、またはMR環境を提示し得る、ウェアラブルデバイス上に実装されることができる。ウェアラブルデバイスは、頭部搭載型デバイス(HMD)であることができ、これは、ARデバイス(ARD)と同義的に使用される。さらに、本開示の目的のために、用語「AR」は、用語「MR」と同義的に使用される。
図1は、人物によって視認される、ある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。図1では、MR場面100が、描写され、MR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム112を特徴とする、実世界公園状設定110が見える。これらのアイテムに加え、MR技術のユーザはまた、実世界プラットフォーム112上に立っているロボット像114と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ140とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
3Dディスプレイが、真の深度感覚、より具体的には、表面深度のシミュレートされた感覚を生成するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、表面深度のほぼ完全な欠如をもたらし得る。
VR、AR、およびMR体験は、複数の深度面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度面毎に異なってもよく(例えば、場面またはオブジェクトの若干異なる提示を提供する)、視認者の眼によって別個に集束され、それによって、異なる深度面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節に基づいて、または合焦からずれている異なる深度面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供する。
図2は、ウェアラブルシステム200の実施例を図示し、これは、AR/VR/MR場面を提供するように構成されることができ、本明細書に説明される例示的ウェイポイントシステムの実施形態を含むことができる。ウェアラブルシステム200はまた、ARシステム200と称され得る。ウェアラブルシステム200は、ディスプレイ220と、ディスプレイ220の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイ220は、ユーザ、装着者、または視認者210によって装着可能である、フレーム230に結合されてもよい。ディスプレイ220は、ユーザ210の眼の正面に位置付けられることができる。ディスプレイ220は、AR/VR/MRコンテンツをユーザに提示することができる。ディスプレイ220は、ユーザの頭部上に装着される、頭部搭載型ディスプレイを備えることができる。いくつかの実施形態では、スピーカ240が、フレーム230に結合され、ユーザの外耳道に隣接して位置付けられる(いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音制御を提供する)。ディスプレイ220は、環境からオーディオストリームを検出し、周囲音を捕捉するために、オーディオセンサ(例えば、マイクロホン)232を含むことができる。示されない1つまたはそれを上回る他のオーディオセンサが、ステレオ音受信を提供するために位置付けられることができる。ステレオ音受信は、音源の場所を決定するために使用されることができる。ウェアラブルシステム200は、音声または発話認識をオーディオストリームに実施することができる。
ウェアラブルシステム200は、ユーザの周囲の環境内の世界を観察する、外向きに向いた結像システム464(図4に示される)を含むことができる。ウェアラブルシステム200はまた、ユーザの眼移動を追跡することができる、内向きに向いた結像システム462(図4に示される)を含むことができる。内向きに向いた結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡し得る。内向きに向いた結像システム462は、フレーム230に取り付けられてもよく、内向きに向いた結像システムによって入手された画像情報を処理し、例えば、ユーザ210の眼の瞳孔直径または配向、眼の移動、または眼姿勢を決定し得る、処理モジュール260または270と電気通信してもよい。
実施例として、ウェアラブルシステム200は、外向きに向いた結像システム464または内向きに向いた結像システム462を使用して、ユーザの姿勢の画像を入手することができる。画像は、静止画像、ビデオのフレーム、またはビデオであってもよい。
ディスプレイ220は、有線導線または無線接続等によって、フレーム230に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ210に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る、ローカルデータ処理モジュール260に動作可能に結合されることができる(250)。
ローカル処理およびデータモジュール260は、ハードウェアプロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシング、および記憶を補助するために利用され得る。データは、a)画像捕捉デバイス(例えば、内向きに向いた結像システムまたは外向きに向いた結像システム内のカメラ)、オーディオセンサ(例えば、マイクロホン)、慣性測定ユニット(IMU)、加速度計、コンパス、全地球測位システム(GPS)ユニット、無線デバイス、またはジャイロスコープ等の(例えば、フレーム230に動作可能に結合される、または別様にユーザ210に取り付けられ得る)センサから捕捉されるデータ、またはb)可能性として処理または読出後にディスプレイ220への通過のために、遠隔処理モジュール270または遠隔データリポジトリ280を使用して入手または処理されるデータを含んでもよい。ローカル処理およびデータモジュール260は、これらの遠隔モジュールがローカル処理およびデータモジュール260へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク262または264を遠隔処理モジュール270または遠隔データリポジトリ280に動作可能に結合されてもよい。加えて、遠隔処理モジュール270および遠隔データリポジトリ280は、相互に動作可能に結合されてもよい。
遠隔処理モジュール270は、データまたは画像情報を分析および処理するように構成される、1つまたはそれを上回るプロセッサを含んでもよい。遠隔データリポジトリ280は、デジタルデータ記憶設備を含むことができ、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。データが、記憶されることができ、算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にすることができる。
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。理論によって限定されるわけではないが、オブジェクトの視認者は、輻輳・開散運動と遠近調節の組み合わせに起因して、オブジェクトを3次元として知覚し得ると考えられる。相互に対する2つの眼の輻輳・開散運動移動(例えば、眼の視線を収束させ、オブジェクトを固視するための相互に向かった、またはそこから離れる瞳孔の回転移動)は、眼の水晶体の合焦(または「遠近調節」)と緊密に関連付けられる。正常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼の水晶体の焦点の変化または眼の遠近調節は、「遠近調節-輻輳・開散運動反射」として知られる関係下、輻輳・開散運動の整合変化を自動的に同一距離に生じさせるであろう。同様に、輻輳・開散運動の変化が、正常条件下、遠近調節の合致する変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な合致を提供するディスプレイシステムが3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
図3は、複数の深度面を使用して3次元画像をシミュレートするためのアプローチの側面を図示する。図3を参照すると、z-軸上の眼302および304からの種々の距離におけるオブジェクトは、それらのオブジェクトが合焦するように、眼302および304によって遠近調節される。眼302および304は、特定の遠近調節された状態をとり、オブジェクトをz-軸に沿った異なる距離に合焦させる。その結果、特定の遠近調節された状態は、特定の深度面におけるオブジェクトまたはオブジェクトの一部が、眼がその深度面に対して遠近調節された状態にあるときに合焦するように、関連付けられる焦点距離を有する、深度面306のうちの特定の1つと関連付けられると言え得る。3次元画像が、眼302および304毎に、画像の異なる提示を提供することによって、また、深度面のそれぞれに対応する画像の異なる提示を提供することによって、シミュレートされることができる。例証を明確にするために、別個であるものとして示されるが、眼302および304の視野は、例えば、z-軸に沿った距離が増加するにつれて、重複し得ることを理解されたい。加えて、例証を容易にするために、平坦であるものとして示される、深度面の等高線は、深度面内の全ての特徴が特定の遠近調節された状態における眼と合焦するように、物理的空間内で湾曲され得ることを理解されたい。理論によって限定されるわけではないが、ヒトの眼は、典型的には、有限数の深度面を解釈し、深度知覚を提供することができると考えられる。その結果、知覚された深度の高度に真実味のあるシミュレーションが、眼にこれらの限定数の深度面のそれぞれに対応する画像の異なる提示を提供することによって達成され得る。
C. 導波管スタックアセンブリ
図4は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム400は、複数の導波管432b、434b、436b、438b、4400bを使用して、3次元知覚を眼/脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ480を含む。ウェアラブルシステム400は、図2のウェアラブルシステム200に対応することができ、図4は、そのウェアラブルシステム200のいくつかの部分をより詳細に図式的に示す。例えば、導波管アセンブリ480は、図2のディスプレイ220の中に統合されることができる。
図4を継続して参照すると、導波管アセンブリ480はまた、複数の特徴458、456、454、452を導波管の間に含んでもよい。特徴458、456、454、452は、レンズであってもよい。特徴458、456、454、452は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい(例えば、クラッディング層または空気間隙を形成するための構造)。
導波管432b、434b、436b、438b、440bまたは複数のレンズ458、456、454、452は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度面と関連付けられてもよく、その深度面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス420、422、424、426、428は、それぞれ、眼410に向かって出力するために、各個別の導波管を横断して入射光を分散させるように構成され得る、導波管440b、438b、436b、434b、432bの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス420、422、424、426、428の出力表面から出射し、導波管440b、438b、436b、434b、432bの対応する入力縁の中に投入される。光の単一ビーム(例えば、コリメートされたビーム)が、各導波管の中に投入され、特定の導波管と関連付けられる深度面に対応する特定の角度(および発散量)において眼410に向かって指向される、クローン化されるコリメートされたビームの場全体を出力してもよい。
画像投入デバイス420、422、424、426、428は、それぞれ、それぞれの対応する導波管440b、438b、436b、434b、432bの中への投入のための画像情報を生成する、離散ディスプレイであることができる。加えて、または代替として、画像投入デバイス420、422、424、426、428は、例えば、1つまたはそれを上回る光学導管(光ファイバケーブル等)を介して、画像情報を画像投入デバイス420、422、424、426、428のそれぞれに送り得る、単一の多重化されたディスプレイの出力端であることができる。
コントローラ460が、スタックされた導波管アセンブリ480および画像投入デバイス420、422、424、426、428の動作を制御する。コントローラ460は、導波管440b、438b、436b、434b、432bへの画像情報のタイミングおよび提供を調整する、プログラミング(例えば、非一過性コンピュータ可読媒体内の命令)を含むことができる。コントローラ460は、単一一体型デバイスまたは有線または無線通信チャネルによって接続される分散型システムであってもよい。コントローラ460は、いくつかの実施形態では、処理モジュール260または270(図2に図示される)の一部であってもよい。
導波管440b、438b、436b、434b、432bは、全内部反射(TIR)によって各個別の導波管内で光を伝搬するように構成されてもよい。導波管440b、438b、436b、434b、432bはそれぞれ、主要上部表面および底部表面およびそれらの主要上部表面と底部表面との間に延在する縁を伴う、平面である、または別の形状(例えば、湾曲)を有してもよい。図示される構成では、導波管440b、438b、436b、434b、432bはそれぞれ、各個別の導波管内で伝搬する光を導波管から外に再指向し、画像情報を眼410に出力することによって、光を導波管から抽出するように構成される、光抽出光学要素440a、438a、436a、434a、432aを含んでもよい。抽出された光はまた、外部結合光と称され得、光抽出光学要素はまた、外部結合光学要素と称され得る。抽出された光のビームは、導波管によって、導波管内を伝搬する光が光再指向要素に衝打する場所に出力されることができる。光抽出光学要素(440a、438a、436a、434a、432a)は、例えば、反射または回折光学特徴であってもよい。説明の容易性および図面の明確性のために、導波管440b、438b、436b、434b、432bの底部主要表面に配置されて図示されるが、光抽出光学要素440a、438a、436a、434a、432aは、上部または底部主要表面に配置されてもよい、または導波管440b、438b、436b、434b、432bの容積内に直接配置されてもよい。光抽出光学要素440a、438a、436a、434a、432aは、透明基板に取り付けられ、導波管440b、438b、436b、434b、432bを形成する、材料の層内に形成されてもよい。導波管440b、438b、436b、434b、432bは、材料のモノリシック片であってもよく、光抽出光学要素440a、438a、436a、434a、432aは、材料のその部品の表面上および/またはその内部に形成されてもよい。
図4を継続して参照すると、本明細書に議論されるように、各導波管440b、438b、436b、434b、432bは、光を出力し、特定の深度面に対応する画像を形成するように構成されることができる。例えば、眼の最近傍の導波管432bは、そのような導波管432bの中に投入されるにつれて、コリメートされた光を眼410に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の導波管434bは、眼410に到達し得る前に、第1のレンズ452(例えば、負のレンズ)を通して通過する、コリメートされた光を送出するように構成されてもよい。第1のレンズ452は、眼/脳が、その次の上方の導波管434bから生じる光を光学無限遠から眼410に向かって内向きにより近い第1の焦点面から生じるものとして解釈するように、若干の凸面波面曲率を生成するように構成されてもよい。同様に、第3の上方の導波管436bは、眼410に到達する前に、その出力光を第1のレンズ452および第2のレンズ454の両方を通して通過させる。第1および第2のレンズ452および454の組み合わせられた屈折力は、眼/脳が、第3の導波管436bから生じる光が次の上方の導波管434bからの光であったよりも光学無限遠から人物に向かって内向きにさらにより近い第2の焦点面から生じるものとして解釈するように、別の漸増量の波面曲率を生成するように構成されてもよい。
他の導波管層(例えば、導波管438b、440b)およびレンズ(例えば、レンズ456、458)も同様に構成され、スタック内の最高導波管440bを用いて、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ480の他側の世界470から生じる光を視認/解釈するとき、レンズ458、456、454、452のスタックを補償するために、補償レンズ層430が、スタックの上部に配置され、下方のレンズスタック458、456、454、452の集約力を補償してもよい。そのような構成は、利用可能な導波管/レンズ対と同じ数の知覚される焦点面を提供する。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい(例えば、動的または電気活性ではない)。加えて、または代替として、一方または両方とも、電気活性特徴を使用して動的であってもよい。
図4を継続して参照すると、光抽出光学要素440a、438a、436a、434a、432aは、光をその個別の導波管から再指向し、かつ導波管と関連付けられる特定の深度面のための適切な発散またはコリメーション量を用いて本光を出力することの両方のために構成されてもよい。その結果、異なる関連付けられる深度面を有する導波管は、関連付けられる深度面に応じて、異なる量の発散を伴う光を出力する、異なる構成の光抽出光学要素を有してもよい。本明細書に議論されるように、光抽出光学要素440a、438a、436a、434a、432aは、光を具体的角度で出力するように構成され得る、立体または表面特徴であってもよい。例えば、光抽出光学要素440a、438a、436a、434a、432aは、立体ホログラム、表面ホログラム、または回折格子であってもよい。回折格子等の光抽出光学要素は、2015年6月25日に公開された米国特許公開第2015/0178939号(参照することによってその全体として本明細書に組み込まれる)に説明される。
いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、回折パターンを形成する回折特徴、すなわち、「回折光学要素」(本明細書では、「DOE」とも称される)である。好ましくは、DOEは、ビームの光の一部のみが、DOEの各交点で、眼410に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割され、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼304に向かって非常に均一パターンの出射放出となることができる。
1つまたはそれを上回るDOEは、能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であってもよい。例えば、切替可能なDOEは、微小液滴がホスト媒体内に回折パターンを備える、ポリマー分散液晶の層を備えてもよく、微小液滴の屈折率は、ホスト材料の屈折率に実質的に合致するように切り替えられることができる(その場合、パターンは、入射光を著しく回折させない)、または微小液滴は、ホスト媒体のものに合致しない屈折率に切り替えられることができる(その場合、パターンは、入射光を能動的に回折させる)。
深度面または被写界深度の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動されてもよい。被写界深度は、視認者の瞳孔サイズと反比例して変化してもよい。その結果、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である1つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間された深度面の数は、減少された瞳孔サイズに伴って減少され得る。例えば、視認者は、一方の深度面から他方の深度面への眼の遠近調節を調節することなく、第1の深度面および第2の深度面の両方の詳細を1つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの2つの深度面は、同時に、遠近調節を変化させることなく、別の瞳孔サイズにおいてユーザにとって十分に合焦し得る。
ディスプレイシステムは、瞳孔サイズまたは配向の決定に基づいて、または特定の瞳孔サイズまたは配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させてもよい。例えば、ユーザの眼が、2つの導波管と関連付けられる2つの深度面間を区別不能である場合、コントローラ460(ローカル処理およびデータモジュール260の実施形態であり得る)は、これらの導波管のうちの1つへの画像情報の提供を停止するように構成またはプログラムされることができる。有利なこととして、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのDOEがオンおよびオフ状態間で切替可能である実施形態では、DOEは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされ得る。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。出射ビームサイズは、可変開口を使用して変動されてもよい。
ウェアラブルシステム400は、世界470の一部を結像する、外向きに向いた結像システム464(例えば、デジタルカメラ)を含むことができる。世界470の本部分は、世界カメラの視野(FOV)と称され得、結像システム464は、時として、FOVカメラとも称される。世界カメラのFOVは、視認者210のFOVと同一である場合とそうではない場合があり、これは、視認者210が所与の時間に知覚する、世界470の一部を包含する。例えば、いくつかの状況では、世界カメラのFOVは、ウェアラブルシステム400の視認者210の視野より大きくあり得る。視認者による視認または結像のために利用可能な領域全体は、動眼視野(FOR)と称され得る。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含んでもよい。他のコンテキストでは、装着者の移動は、より抑制されてもよく、それに応じて、装着者のFORは、より小さい立体角に接し得る。外向きに向いた結像システム464から得られた画像は、ユーザによって行われるジェスチャ(例えば、手または指のジェスチャ)を追跡し、ユーザの正面における世界470内のオブジェクトを検出する等のために、使用されることができる。
ウェアラブルシステム400は、オーディオセンサ232、例えば、マイクロホンを含み、周囲音を捕捉することができる。上記に説明されるように、1つまたはそれを上回る他のオーディオセンサが、発話源の場所の決定に有用なステレオ音受信を提供するために位置付けられることができる。オーディオセンサ232は、別の実施例として、指向性マイクロホンを備えることができ、これはまた、オーディオ源が位置する場所に関するそのような有用な指向性情報を提供することができる。ウェアラブルシステム400は、発話源を位置特定する際、または特定の瞬間におけるアクティブ話者を決定するため等に、外向きに向いた結像システム464およびオーディオセンサ232の両方からの情報を使用することができる。例えば、ウェアラブルシステム400は、単独で、または話者の反射された画像(例えば、鏡に見られるように)と組み合わせて、音声認識を使用し、話者の識別を決定することができる。別の実施例として、ウェアラブルシステム400は、指向性マイクロホンから入手された音に基づいて、環境内の話者の位置を決定することができる。ウェアラブルシステム400は、発話認識アルゴリズムを用いて、話者の位置から生じる音を解析し、発話のコンテンツを決定し、音声認識技法を使用して、話者の識別(例えば、名称または他の人口統計情報)を決定することができる。
ウェアラブルシステム400はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに向いた結像システム462(例えば、デジタルカメラ)を含むことができる。内向きに向いた結像システム462は、眼410の画像を捕捉し、眼304の瞳孔のサイズまたは配向を決定するために使用されてもよい。内向きに向いた結像システム462は、ユーザが見ている方向(例えば、眼姿勢)を決定する際に使用するため、またはユーザのバイオメトリック識別のため(例えば、虹彩識別を介して)、画像を得るために使用されることができる。少なくとも1つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。単一眼410のみの瞳孔直径または配向(例えば、対の眼あたり単一カメラのみを使用して)が、決定され、ユーザの両眼に関して類似すると仮定され得る。内向きに向いた結像システム462によって得られる画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム400によって使用され得る、ユーザの眼姿勢または気分を決定するために分析されてもよい。加えて、または代替として、ウェアラブルシステム400は、IMU、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢(例えば、頭部位置または頭部配向)を決定してもよい。
ウェアラブルシステム400は、ユーザが、コマンドをコントローラ460に入力し、ウェアラブルシステム400と相互作用し得る、ユーザ入力デバイス466を含むことができる。例えば、ユーザ入力デバイス466は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度(DOF)コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド(Dパッド)、ワンド、触知デバイス、トーテム(例えば、仮想ユーザ入力デバイスとして機能する)等を含むことができる。マルチDOFコントローラは、コントローラの一部または全部の可能性として考えられる平行移動(例えば、左/右、前方/後方、または上/下)または回転(例えば、ヨー、ピッチ、またはロール)におけるユーザ入力を感知することができる。平行移動をサポートする、マルチDOFコントローラは、3DOFと称され得る一方、平行移動および回転をサポートする、マルチDOFコントローラは、6DOFと称され得る。ユーザは、指(例えば、親指)を使用して、タッチセンサ式入力デバイスを押下またはその上でスワイプし、入力をウェアラブルシステム400に提供してもよい(例えば、ユーザ入力をウェアラブルシステム400によって提供されるユーザインターフェースに提供するために)。ユーザ入力デバイス466は、ウェアラブルシステム400の使用の間、ユーザの手によって保持されてもよい。ユーザ入力デバイス466は、ウェアラブルシステム400と有線または無線通信することができる。
図5は、導波管によって出力された出射ビームの実施例を示す。1つの導波管が、図示されるが、導波管アセンブリ480内の他の導波管も、同様に機能してもよく、導波管アセンブリ480は、複数の導波管を含むことを理解されたい。光520が、導波管432bの入力縁432cにおいて導波管432bの中に投入され、TIRによって導波管432b内を伝搬する。光520がDOE432aに衝突する点において、光の一部が、出射ビーム510として導波管から出射することができる。出射ビーム510は、略平行として図示されるが、それらはまた、導波管432bと関連付けられる深度面に応じて、ある角度で眼410に伝搬するように再指向されてもよい(例えば、発散出射ビーム形成)。略平行出射ビームは、光を外部結合し、眼410から遠距離(例えば、光学無限遠)における深度面に設定されるように現れる画像を形成する光抽出光学要素を伴う、導波管を示し得ることを理解されたい。他の導波管または他の光抽出光学要素のセットが、より発散する、出射ビームパターンを出力してもよく、これは、眼410がより近い距離に遠近調節し、網膜上に合焦させることを要求し、光学無限遠より眼410に近い距離からの光として脳によって解釈されるであろう。
図6は、導波管装置と、光を導波管装置へまたはそこから光学的に結合するための光学結合器サブシステムと、多焦点立体ディスプレイ、画像、またはライトフィールドの生成において使用される制御サブシステムとを含む、光学システムを示す、概略図である。光学システムは、導波管装置と、光を導波管装置にまたはそこから光学的に結合するための光学結合器サブシステムと、制御サブシステムとを含むことができる。光学システムは、多焦点立体、画像、またはライトフィールドを生成するために使用されることができる。光学システムは、1つまたはそれを上回る一次平面導波管632a(1つだけが図6に示される)と、一次導波管632aのうちの少なくともいくつかのそれぞれと関連付けられる、1つまたはそれを上回るDOE632bとを含むことができる。平面導波管632bは、図4を参照して議論される導波管432b、434b、436b、438b、440bに類似することができる。光学システムは、分散導波管装置を採用し、光を第1の軸(図6の図では、垂直またはY-軸)に沿って中継し、第1の軸(例えば、Y-軸)に沿って光の有効射出瞳を拡張させてもよい。分散導波管装置は、例えば、分散平面導波管622bと、分散平面導波管622bと関連付けられる少なくとも1つのDOE622a(二重破線によって図示される)とを含んでもよい。分散平面導波管622bは、少なくともいくつかの点において、それと異なる配向を有する一次平面導波管632bと類似する、または同じであり得る。同様に、少なくとも1つのDOE622aは、少なくともいくつかの点において、DOE632aと類似する、または同じであり得る。例えば、分散平面導波管622bまたはDOE622aは、それぞれ、一次平面導波管632bまたはDOE632aと同一材料から成ってもよい。図6に示される光学ディスプレイシステム600の実施形態は、図2に示されるウェアラブルシステム200の中に統合されることができる。
中継され、射出瞳が拡張された光は、分散導波管装置から1つまたはそれを上回る一次平面導波管632bの中に光学的に結合され得る。一次平面導波管632bは、好ましくは、第1の軸に直交する、第2の軸(例えば、図6の図では、水平またはX-軸)に沿って、光を中継することができる。着目すべきこととして、第2の軸は、第1の軸に対して非直交軸であることができる。一次平面導波管632bは、その第2の軸(例えば、X-軸)に沿って、光の有効射出瞳を拡張させる。例えば、分散平面導波管622bは、光を垂直またはY-軸に沿って中継および拡張させ、光を水平またはX-軸に沿って中継および拡張させ得る、一次平面導波管632bにその光を通過させることができる。
光学システムは、単一モード光ファイバ640の近位端の中に光学的に結合され得る、1つまたはそれを上回る着色光源(例えば、赤色、緑色、および青色レーザ光)610を含んでもよい。光ファイバ640の遠位端は、圧電材料の中空管642を通して螺合または受容されてもよい。遠位端は、固定されない可撓性カンチレバー644として、管642から突出する。圧電管642は、4つの象限電極(図示せず)と関連付けられることができる。電極は、例えば、管642の外側、外面または外周、または直径に鍍着されてもよい。コア電極(図示せず)もまた、管642のコア、中心、内周、または内径に位置してもよい。
例えば、ワイヤ660を介して電気的に結合される、駆動電子機器650は、対向する対の電極を駆動し、圧電管642を独立して2つの軸において屈曲させる。光ファイバ644の突出する遠位先端は、機械的共鳴モードを有する。共鳴の周波数は、光ファイバ644の直径、長さ、および材料性質に依存し得る。圧電管642をファイバカンチレバー644の第1の機械的共鳴モードの近傍で振動させることによって、ファイバカンチレバー644は、振動させられ、大偏向を通して掃引し得る。
2つの軸において共振振動を刺激することによって、ファイバカンチレバー644の先端は、2次元(2-D)走査を充填するエリア内において2軸方向に走査される。光源610の強度をファイバカンチレバー644の走査と同期して変調させることによって、ファイバカンチレバー644から発せられる光が、画像を形成することができる。そのような設定の説明は、米国特許公開第2014/0003762号(参照することによってその全体として本明細書に組み込まれる)に提供されている。
光学結合器サブシステムのコンポーネントは、走査ファイバカンチレバー644から発せられる光をコリメートすることができる。コリメートされた光は、鏡面表面648によって、少なくとも1つの回折光学要素(DOE)622aを含有する、狭分散平面導波管622bの中に反射されることができる。コリメートされた光は、TIRによって分散平面導波管622bに沿って(図6の図に対して)垂直に伝搬し、そうすることによって、DOE622aと繰り返し交差することができる。DOE622aは、好ましくは、低回折効率を有する。これは、光の一部(例えば、10%)をDOE622aとの交点の各点においてより大きい一次平面導波管632bの縁に向かって回折させ、TIRを介して、光の一部を分散平面導波管622bの長さを辿ってそのオリジナル軌道上で継続させることができる。
DOE622aとの交点の各点において、付加的光が、一次導波管632bの入口に向かって回折されることができる。入射光を複数の外部結合セットに分割することによって、光の射出瞳は、分散平面導波管622b内のDOE622aによって垂直に拡張されることができる。分散平面導波管622bから外部結合される、本垂直拡張された光は、一次平面導波管632bの縁に入射することができる。
一次導波管632bに入射する光は、TIRを介して、一次導波管632bに沿って(図6の図に対して)水平に伝搬することができる。光は、複数の点においてDOE632aと交差するにつれて、TIRを介して、一次導波管632bの長さの少なくとも一部に沿って水平に伝搬する。DOE632aは、有利なこととして、線形回折パターンおよび半径方向対称回折パターンの総和である、位相プロファイルを有し、光の偏向および集束の両方を生成するように設計または構成され得る。DOE632aは、有利なこととして、ビームの光の一部のみが、DOE632aの各交点で視認者の眼に向かって偏向される一方、光の残りが、TIRを介して、一次導波管632bを通して伝搬し続けるように、低回折効率(例えば、10%)を有し得る。
伝搬する光とDOE632aとの間の交点の各点において、光の一部は、一次導波管632bの隣接面に向かって回折され、光がTIRから逃散し、一次導波管632bの面から発せられることを可能にする。DOE632aの半径方向対称回折パターンは、加えて、ある焦点レベルを回折された光に付与し、個々のビームの光波面を成形(例えば、曲率を付与する)し、かつビームを設計される焦点レベルにマッチングする角度に操向することの両方を行うことができる。
故に、これらの異なる経路は、異なる角度におけるDOE632aの多重度、焦点レベル、または射出瞳において異なる充填パターンをもたらすことによって、光を一次平面導波管632bの外部で結合させることができる。射出瞳における異なる充填パターンは、有利なこととして、複数の深度面を伴うライトフィールドディスプレイを生成するために使用されることができる。導波管アセンブリ内の各層またはスタック内の層のセット(例えば、3層)が、個別の色(例えば、赤色、青色、緑色)を生成するために採用されてもよい。したがって、例えば、第1の3つの隣接する層のセットが、それぞれ、赤色、青色、および緑色光を第1の焦点深度において生成するために採用されてもよい。第2の3つの隣接する層のセットが、それぞれ、赤色、青色、および緑色光を第2の焦点深度において生成するために採用されてもよい。複数のセットが、種々の焦点深度を伴うフル3Dまたは4Dカラー画像ライトフィールドを生成するために採用されてもよい。
D. ウェアラブルシステムの他のコンポーネント
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、1つまたはそれを上回る触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ(例えば、仮想オブジェクト、仮想ツール、他の仮想構造)に触れると、圧力またはテクスチャの触覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの感覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトまたはキャラクタ(例えば、ドラゴン)の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい(例えば、ユーザウェアラブルグローブ)。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
ウェアラブルシステムは、例えば、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする、1つまたはそれを上回る物理的オブジェクトを含んでもよい。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、無生物オブジェクト、例えば、金属またはプラスチック片、壁、テーブルの表面の形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造(例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ)を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの1つまたはそれを上回る表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの1つまたはそれを上回る表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たす、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、いずれの物理的キーまたはトラックパッドまたはセンサも有していない。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用またはタッチを検出し得る。ユーザ入力デバイス466(図4に示される)は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカまたは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムまたは他のユーザと相互作用してもよい。
本開示のウェアラブルデバイス、HMD、およびディスプレイシステムと使用可能な触知デバイスおよびトーテムの実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明される。
E. 例示的ウェアラブルシステム、環境、およびインターフェース
ウェアラブルシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されたFOV画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点(2D点または3D点等)のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第1のユーザの世界モデルは、第2のユーザが第1のユーザを囲繞する世界を体験し得るように、(例えば、クラウドネットワーク等のネットワークを経由して)第2のユーザに通信されることができる。
図7は、MR環境700の実施例のブロック図である。MR環境700は、入力(例えば、ユーザのウェアラブルシステムからの視覚的入力702、室内カメラ等の定常入力704、種々のセンサからの感覚入力706、ユーザ入力デバイス466からのジェスチャ、トーテム、眼追跡、ユーザ入力等)を1つまたはそれを上回るユーザウェアラブルシステム(例えば、ウェアラブルシステム200またはディスプレイシステム220)または定常室内システム(例えば、室内カメラ等)から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ(例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、GPSセンサ、内向きに向いた結像システム、外向きに向いた結像システム等)を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ(室内カメラまたは外向きに向いた結像システムのカメラ等)によって入手された画像データは、マッピング点のセットに低減されてもよい。
1つまたはそれを上回るオブジェクト認識装置708が、受信されたデータ(例えば、点の集合)を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース710を用いて、意味論情報をオブジェクトに結び付けることができる。マップデータベース710は、経時的に収集された種々の点およびその対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク(例えば、LAN、WAN等)を通して相互に接続され、クラウドにアクセスすることができる。
本情報およびマップデータベース内の点集合に基づいて、オブジェクト認識装置708a-708nは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ドキュメント(例えば、本明細書におけるセキュリティ実施例において説明されるような旅券、運転免許証、パスポート)、ユーザの環境内の他のオブジェクト等を認識することができる。1つまたはそれを上回るオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置708aは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、ドキュメントを認識するために使用されてもよい。
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに向いた結像システム464(図4に示される)によって入手された画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識(例えば、人物またはドキュメント)、オブジェクト姿勢推定、顔認識(例えば、環境内の人物またはドキュメント上の画像から)、学習、インデックス化、運動推定、または画像分析(例えば、写真、署名、識別情報、旅行情報等のドキュメント内の印を識別する)等を実施することができる。1つまたはそれを上回るコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)、配向FASTおよび回転BRIEF(ORB)、バイナリロバスト不変スケーラブルキーポイント(BRISK)、高速網膜キーポイント(FREAK)、Viola-Jonesアルゴリズム、Eigenfacesアプローチ、Lucas-Kanadeアルゴリズム、Horn-Schunkアルゴリズム、Mean-shiftアルゴリズム、視覚的同時位置推定およびマッピング(vSLAM)技法、シーケンシャルベイズ推定器(例えば、カルマンフィルタ、拡張カルマンフィルタ等)、バンドル調節、適応閾値化(および他の閾値化技法)、反復最近傍点(ICP)、セミグローバルマッチング(SGM)、セミグローバルブロックマッチング(SGBM)、特徴点ヒストグラム、種々の機械学習アルゴリズム(例えば、サポートベクトルマシン、k最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k-平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、Deep Boltzmann Machine、すなわち、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、Stacked Gneralization等)、または他の機械学習アルゴリズムを含む。個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置708a-708nは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、生命をオブジェクトに与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、システムは、いくつかの意味論情報を結び付けてもよい(例えば、ドアは、ヒンジを有し、ヒンジを中心として90度移動を有する)。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、システムは、鏡が、部屋内のオブジェクトの画像を反射させ得る、反射表面を有するという意味論情報を結び付けてもよい。意味論情報は、本明細書に説明されるように、オブジェクトのアフォーダンスを含むことができる。例えば、意味論情報は、オブジェクトの法線を含んでもよい。システムは、ベクトルを割り当てることができ、その方向は、オブジェクトの法線を示す。経時的に、マップデータベースは、システム(ローカルで常駐し得る、または無線ネットワークを通してアクセス可能であり得る)がより多くのデータを世界から蓄積するにつれて成長する。いったんオブジェクトが認識されると、情報は、1つまたはそれを上回るウェアラブルシステムに伝送されてもよい。例えば、MR環境700は、Californiaで起こっている場面についての情報を含んでもよい。環境700は、New Yorkにおける1人またはそれを上回るユーザに伝送されてもよい。FOVカメラおよび他の入力から受信されたデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第2のユーザに正確に「パス」され得るように、種々の画像から収集された点をマッピングし、オブジェクトを認識すること等ができる。環境700はまた、場所特定目的のために、トポロジマップを使用してもよい。
図8は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法800の実施例のプロセスフロー図である。方法800は、仮想場面がウェアラブルシステムのユーザに提示され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在してもよい。例えば、ユーザは、New Yorkに存在し得るが、Californiaで現在起こっている場面を視認することを所望し得る、またはCaliforniaに存在する友人と散歩に行くことを所望し得る。
ブロック810では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成されてもよい。ユーザのFOVカメラ、センサ、GPS、眼追跡等が、ブロック810において、情報をシステムに伝達する。システムは、ブロック820において、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示および理解する際に使用され得る、姿勢データ(例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ)を決定する際に使用されてもよい。オブジェクト認識装置708a-708nは、ブロック830において、これらの収集された点を通してクローリングし、マップデータベースを使用して、1つまたはそれを上回るオブジェクトを認識してもよい。本情報は、次いで、ブロック840において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、ブロック850において、適宜、ユーザに表示されてもよい。例えば、所望の仮想場面(例えば、CAにおけるユーザ)が、New Yorkにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
図9は、ウェアラブルシステムの別の実施例のブロック図である。本実施例では、ウェアラブルシステム900は、マップ920を備え、これは、世界に関するマップデータを含有する、マップデータベース710を含んでもよい。マップは、部分的に、ウェアラブルシステム上にローカルで常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所(例えば、クラウドシステム内)に常駐してもよい。姿勢プロセス910が、ウェアラブルコンピューティングアーキテクチャ(例えば、処理モジュール260またはコントローラ460)上で実行され、ウェアラブルコンピューティングハードウェアまたはユーザの位置および配向を決定するために、マップ920からのデータを利用してもよい。姿勢データは、ユーザが、システムを体験し、その世界内で動作するにつれて、オンザフライで収集されたデータから算出されてもよい。データは、実または仮想環境内のオブジェクトに関する画像、センサ(概して、加速度計およびジャイロスコープコンポーネントを備える、慣性測定ユニット等)からのデータ、および表面情報を備えてもよい。
疎点表現は、同時位置特定およびマッピング(例えば、入力が画像/視覚のみである構成を指す、SLAMまたはvSLAM)プロセスの出力であってもよい。システムは、世界内の種々のコンポーネントの場所だけではなく、世界が構成される内容も見出すように構成されることができる。姿勢は、マップへの取込およびマップからのデータの使用を含め、多くの目標を達成する、構築ブロックであり得る。
一実施形態では、疎点位置は、それ自体では完全に適正であり得ず、さらなる情報が、多焦点AR、VR、またはMR体験を生成するために必要とされ得る。概して、深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、立体視940と称されるプロセスから算出されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。画像情報およびアクティブパターン(アクティブプロジェクタを使用して生成される赤外線パターン等)、画像カメラから入手された画像、または手ジェスチャ/トーテム950が、立体視プロセス940への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合されてもよく、このうちのいくつかは、表面表現を用いて要約されてもよい。例えば、数学的に定義可能な表面は、ゲームエンジンのような他の処理デバイスへの効率的(例えば、大点群に対して)かつ要約しやすい入力であり得る。したがって、立体視プロセス(例えば、深度マップ)940の出力は、融合プロセス930において組み合わせられてもよい。姿勢910は、同様に、本融合プロセス930への入力であってもよく、融合930の出力は、マップ取込プロセス920への入力となる。サブ表面が、トポグラフィマッピング等において、相互に接続し、より大きい表面を形成し得、マップは、点および表面の大規模ハイブリッドとなる。
複合現実プロセス960における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、図9に描写される実施形態では、ゲームパラメータは、システムのユーザが1匹またはそれを上回るモンスタと種々の場所においてモンスタバトルゲームをプレーしていること、モンスタが死んでいる、または種々の条件下で逃げている(ユーザがモンスタを撃つ場合等)、種々の場所における壁または他のオブジェクト、および同等物を決定するための入力であってもよい。世界マップは、オブジェクトの場所に関する情報またはオブジェクトの意味論情報を含んでもよく、世界マップは、複合現実に対する別の有用な入力となることができる。世界に対する姿勢は、同様に、入力となり、ほぼあらゆる双方向システムに対して重要な役割を果たす。
ユーザからの制御または入力は、ウェアラブルシステム900への別の入力である。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回るまたはゲームをプレーするために、例えば、ユーザは、ウェアラブルシステム900に、行うことを所望する対象に関して命令する必要があり得る。空間内で自ら移動するだけではなく、利用され得る種々の形態のユーザ制御が、存在する。トーテム(例えば、ユーザ入力デバイス)、または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう(例えば、トーテムまたはオブジェクトが、銃である場合、システムは、場所および配向だけではなく、ユーザが、そのようなアクティビティがカメラのいずれかの視野内にないときでも、生じている状況を決定することを補助し得る、IMU等のセンサを装備し得る、トリガまたは他の感知ボタンまたは要素をクリックしているかどうかも理解するように構成されてもよい。)
手のジェスチャ追跡または認識もまた、入力情報を提供してもよい。ウェアラブルシステム900は、ボタン押下のため、左または右、停止、握持、保持等をジェスチャするために、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、1つの構成では、ユーザは、非ゲーム環境において電子メールまたはカレンダを捲る、または別の人物またはプレーヤと「フィストバンプ」を行うことを所望し得る。ウェアラブルシステム900は、動的である場合とそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止を示すために手を広げる、OKを示すために親指を上げる、OKではないことを示すために親指を下げる、または指向性コマンドを示すために左右または上下に手をフリップする等、単純な静的ジェスチャであってもよい。
眼追跡は、別の入力である(例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲にレンダリングする)。眼の輻輳・開散運動が、三角測量を使用して決定されてもよく、次いで、その特定の人物のために開発された輻輳・開散運動/遠近調節モデルを使用して、遠近調節が、決定されてもよい。眼カメラは、眼追跡を実施し、眼視線(例えば、片眼または両眼の方向または配向)を決定することができる。他の技法も、例えば、眼の近傍に設置された電極による電位の測定(例えば、電気眼球図記録)等、眼追跡のために使用されることができる。
発話追跡は、単独で、または他の入力(例えば、トーテム追跡、眼追跡、ジェスチャ追跡等)と組み合わせて使用され得る、別の入力であり得る。発話追跡は、単独で、または組み合わせて、発話認識、音声認識を含んでもよい。システム900は、オーディオストリームを環境から受信する、オーディオセンサ(例えば、マイクロホン)を含むことができる。システム900は、発話している人物(例えば、発話がARDの装着者または別の人物または音声(例えば、環境内のラウドスピーカによって伝送される記録された音声)からのものであるかどうか)を決定するための音声認識技術および言われていることを決定するための発話認識技術を組み込むことができる。ローカルデータおよび処理モジュール260または遠隔処理モジュール270は、マイクロホンからのオーディオデータ(または、例えば、ユーザによって鑑賞されているビデオストリーム等の別のストリーム内のオーディオデータ)を処理し、例えば、隠れマルコフモデル、動的時間伸縮法(DTW)ベースの発話認識、ニューラルネットワーク、ディープフィードフォワードおよび再帰ニューラルネットワーク等の深層学習アルゴリズム、エンドツーエンド自動発話認識、機械学習アルゴリズム(図7を参照して説明される)、または音響モデル化または言語モデル化等を使用する、他のアルゴリズム等の種々の発話認識アルゴリズムを適用することによって、発話のコンテンツを認識することができる。ある場合には、発話は、複数の源から、例えば、ユーザの近傍の別の人物から、人物の近傍で放送されているテレビ上のアナウンサーから、およびスピーカ240を介してARDのユーザに再生されている発話コンテンツから生じるであろう。以下にさらに説明されるように、これらの異なる発話源(例えば、本実施例では、人物、テレビのアナウンサー、およびオーディオストリーム)は、コンテンツ分析されてもよく、異なる話題が、ARDのユーザインターフェースによって、ユーザに異なるように提示され得る(例えば、異なるスレッドの中に編成される異なる話題、異なるスレッドの中に編成される異なる話者による発話、またはこれらの組み合わせ)。
ローカルデータおよび処理モジュール260または遠隔処理モジュール270はまた、音声認識アルゴリズムを適用することができ、これは、話者がウェアラブルシステム900のユーザ210またはユーザが会話している別の人物であるかどうか等の話者の識別を識別することができる。いくつかの例示的音声認識アルゴリズムは、頻度推定、隠れマルコフモデル、ガウス混合モデル、パターンマッチングアルゴリズム、ニューラルネットワーク、マトリクス表現、ベクトル量子化、話者ダイアライゼーション、決定ツリー、および動的時間伸縮(DTW)技法を含むことができる。音声認識技法はまた、コホートモデルおよび世界モデル等のアンチ話者技法を含むことができる。スペクトル特徴は、話者特性を表す際に使用されてもよい。ローカルデータおよび処理モジュールまたは遠隔データ処理モジュール270は、図7を参照して説明される種々の機械学習アルゴリズムを使用して、音声認識を実施することができる。
ウェイポイントマッピングシステム970の実装は、ユーザインターフェース(UI)を介して、これらのユーザ制御または入力を使用することができる。UI要素(例えば、制御、ポップアップウィンドウ、バブル、データエントリフィールド等)が、使用され、例えば、補助情報の表示を閉じる、または単語を一般的単語辞書に追加することができる。ウェイポイントマッピングシステム970のそのような実装およびこれらの使用の実施例は、図13-24を参照して説明される。
カメラシステムに関して、図9に示される例示的ウェアラブルシステム900は、3つの対のカメラ、すなわち、ユーザの顔の両側に配列される相対的広FOVまたは受動SLAM対のカメラと、ユーザの正面に配向され、立体視結像プロセス940をハンドリングし、また、ユーザの顔の正面の手のジェスチャおよびトーテム/オブジェクトの軌道を捕捉するための異なる対のカメラとを含むことができる。ステレオプロセス940に対するFOVカメラおよび対のカメラは、外向きに向いた結像システム464(図4に示される)の一部であってもよい。ウェアラブルシステム900は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される眼追跡カメラ(図4に示される内向きに向いた結像システム462の一部であってもよい)を含むことができる。ウェアラブルシステム900はまた、1つまたはそれを上回るテクスチャ化光プロジェクタ(赤外線(IR)プロジェクタ等)を備え、テクスチャを場面の中に投入してもよい。
図10は、ウェアラブルシステムへのユーザ入力を決定するための方法1000の実施例のプロセスフロー図である。本実施例では、ユーザは、トーテムと相互作用してもよい。ユーザは、複数のトーテムを有してもよい。例えば、ユーザは、ソーシャルメディアアプリケーションのための指定される1つのトーテム、ゲームをプレーするための別のトーテム等を有してもよい。ブロック1010では、ウェアラブルシステムは、トーテムの運動を検出してもよい。トーテムの移動は、外向きに向いた結像システムを通して認識されてもよい、またはセンサ(例えば、触知グローブ、画像センサ、手追跡デバイス、眼追跡カメラ、頭部姿勢センサ等)を通して検出されてもよい。
少なくとも部分的に、検出されたジェスチャ、眼姿勢、頭部姿勢、またはトーテムを通した入力に基づいて、ウェアラブルシステムは、ブロック1020において、基準フレームに対するトーテム(またはユーザの眼または頭部またはジェスチャ)の位置、配向、または移動を検出する。基準フレームは、それに基づいてウェアラブルシステムがトーテム(またはユーザ)の移動をアクションまたはコマンドに変換する、マップ点のセットであってもよい。ブロック1030では、トーテムとのユーザの相互作用が、マッピングされる。基準フレーム1020に対するユーザ相互作用のマッピングに基づいて、システムは、ブロック1040において、ユーザ入力を決定する。
例えば、ユーザは、トーテムまたは物理的オブジェクトを前後に移動させ、仮想ページを捲り、次のページに移動する、または1つのユーザインターフェース(UI)ディスプレイ画面から別のUI画面に移動することを示してもよい。別の実施例として、ユーザは、ユーザのFOR内の異なる実または仮想オブジェクトを見るために、その頭部または眼を移動させてもよい。特定の実または仮想オブジェクトにおけるユーザの注視が、閾値時間より長い場合、その実または仮想オブジェクトは、ユーザ入力として選択されてもよい。ユーザの眼の輻輳・開散運動が、追跡されることができ、遠近調節/輻輳・開散運動モデルが、ユーザが合焦している深度面に関する情報を提供する、ユーザの眼の遠近調節状態を決定するために使用されることができる。ウェアラブルシステムは、レイキャスティング技法を使用して、ユーザの頭部姿勢または眼姿勢の方向に沿っている実または仮想オブジェクトを決定することができる。レイキャスティング技法は、実質的に殆ど横幅を伴わない細い光線束を投じる、または実質的横幅を伴う光線(例えば、円錐または円錐台)を投じることを含むことができる。
ユーザインターフェースは、本明細書に説明されるようなディスプレイシステム(図2におけるディスプレイ220等)によって投影されてもよい。また、1つまたはそれを上回るプロジェクタ等の種々の他の技法を使用して表示されてもよい。プロジェクタは、画像をキャンバスまたは球体等の物理的オブジェクト上に投影してもよい。ユーザインターフェースとの相互作用は、システムの外部またはシステムの一部の1つまたはそれを上回るカメラを使用して(例えば、内向きに向いた結像システム462または外向きに向いた結像システム464を使用して)追跡されてもよい。
図11は、仮想ユーザインターフェースと相互作用するための方法1100の実施例のプロセスフロー図である。方法1100は、本明細書に説明されるウェアラブルシステムによって行われてもよい。方法1100の実施形態は、ウェアラブルシステムのFOV内の人物またはドキュメントを検出するためにウェアラブルシステムによって使用されることができる。
ブロック1101では、ウェアラブルシステムは、特定のUIを識別してもよい。UIのタイプは、ユーザによって決定されてもよい。ウェアラブルシステムは、特定のUIがユーザ入力(例えば、ジェスチャ、視覚的データ、オーディオデータ、感覚データ、直接コマンド等)に基づいて取り込まれる必要があることを識別してもよい。UIは、セキュリティシナリオに特有であることができ、システムの装着者は、ドキュメントを装着者に提示するユーザを観察する(例えば、旅客検問所において)。ブロック1105では、ウェアラブルシステムは、仮想UIのためのデータを生成してもよい。例えば、UIの境界、一般的構造、形状等と関連付けられるデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがユーザの物理的場所に関連してUIを表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、UIが、身体中心である場合、ウェアラブルシステムは、リングUIがユーザの周囲に表示され得る、または平面UIが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置、頭部姿勢、または眼姿勢の座標を決定してもよい。本明細書に説明されるセキュリティコンテキストでは、UIは、装着者が、旅行者および旅行者のドキュメントを見ている間、UIを容易に視認し得るように、UIがドキュメントをシステムの装着者に提示する旅行者を囲繞しているかのように表示され得る。UIが、手中心の場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、FOVカメラ、感覚入力を通して受信されたデータ、または任意の他のタイプの収集されたデータを通して導出されてもよい。
ブロック1115では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック1125では、UIは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想UIをユーザの眼の一方または両方の中に投影することができる。いったん仮想UIが生成されると、ウェアラブルシステムは、ブロック1135において、単に、ユーザからのコマンドを待機し、より多くの仮想コンテンツを仮想UI上に生成してもよい。例えば、UIは、ユーザの身体またはユーザの環境内の人物(例えば、旅行者)の身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド(ジェスチャ、頭部または眼移動、音声コマンド、ユーザ入力デバイスからの入力等)を待機してもよく、認識される場合(ブロック1165)、コマンドと関連付けられる仮想コンテンツが、ユーザに表示されてもよい(ブロック1175)。
ウェアラブルシステム、UI、およびユーザ体験(UX)の付加的実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明される。
F. ウェアラブルシステム間の例示的通信
図12は、相互に相互作用する複数のユーザデバイスを描写する、全体的システム図を図式的に図示する。コンピューティング環境1200は、ユーザデバイス1230a、1230b、1230cを含む。ユーザデバイス1230a、1230b、および1230cは、ネットワーク1290を通して、相互に通信することができる。ユーザデバイス1230a-1230cはそれぞれ、ネットワークインターフェースを含み、ネットワーク1290を介して、遠隔コンピューティングシステム1220(また、ネットワークインターフェース1271を含んでもよい)と通信することができる。ネットワーク1290は、LAN、WAN、ピアツーピアネットワーク、無線、Bluetooth(登録商標)、または任意の他のネットワークであってもよい。コンピューティング環境1200はまた、1つまたはそれを上回る遠隔コンピューティングシステム1220を含むことができる。遠隔コンピューティングシステム1220は、クラスタ化され、異なる地理的場所に位置する、サーバコンピュータシステムを含んでもよい。ユーザデバイス1230a、1230b、および1230cは、ネットワーク1290を介して、遠隔コンピューティングシステム1220と通信してもよい。
遠隔コンピューティングシステム1220は、遠隔データリポジトリ1280を含んでもよく、これは、具体的ユーザの物理的または仮想世界についての情報を維持することができる。遠隔データリポジトリは、図2に示される遠隔データリポジトリ280の実施形態であってもよい。遠隔コンピューティングシステム1220はまた、遠隔処理モジュール1270を含んでもよい。遠隔処理モジュール1270は、図2に示される遠隔処理モジュール270の実施形態であってもよい。遠隔処理モジュール1270は、1つまたはそれを上回るプロセッサを含んでもよく、これは、ユーザデバイス(1230a、1230b、1230c)および遠隔データリポジトリ1280と通信することができる。プロセッサは、ユーザデバイスおよび他の源から取得される情報を処理することができる。処理または記憶の少なくとも一部は、ローカル処理およびデータモジュール260(図2に示されるように)によって提供されることができる。遠隔コンピューティングシステム1220は、所与のユーザが、具体的ユーザ自身の物理的または仮想世界についての情報を別のユーザと共有することを可能にしてもよい。
ユーザデバイスは、単独で、または組み合わせて、ウェアラブルデバイス(HMDまたはARD等)、コンピュータ、モバイルデバイス、または任意の他のデバイスであってもよい。例えば、ユーザデバイス1230bおよび1230cは、図2に示されるウェアラブルシステム200(または図4に示されるウェアラブルシステム400)の実施形態であってもよく、これは、AR/VR/MRコンテンツを提示するように構成されることができる。
ユーザデバイスのうちの1つまたはそれを上回るものは、図4に示されるユーザ入力デバイス466と併用されることができる。ユーザデバイスは、ユーザおよびユーザの環境についての情報を取得することができる(例えば、図4に示される外向きに向いた結像システム464を使用して)。ユーザデバイスまたは遠隔コンピューティングシステム1220は、ユーザデバイスから取得される情報を使用して、画像、点、および他の情報の集合を構築、更新、および建造することができる。例えば、ユーザデバイスは、入手された未加工情報を処理し、さらなる処理のために、処理された情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスはまた、処理のために、未加工情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスは、処理された情報を遠隔コンピューティングシステム1220から受信し、ユーザに投影させる前に、最終処理を提供してもよい。ユーザデバイスはまた、取得された情報を処理し、処理された情報を他のユーザデバイスに渡してもよい。ユーザデバイスは、入手された情報を処理しながら、遠隔データリポジトリ1280と通信してもよい。複数のユーザデバイスまたは複数のサーバコンピュータシステムが、入手された画像の構築または処理に関与してもよい。
物理的世界に関する情報は、経時的に展開されてもよく、異なるユーザデバイスによって収集される情報に基づいてもよい。仮想世界のモデルはまた、経時的に展開され、異なるユーザの入力に基づいてもよい。そのような情報およびモデルは、時として、本明細書では、世界マップまたは世界モデルと称され得る。図7および9を参照して説明されるように、ユーザデバイスによって入手された情報は、世界マップ1210を構築するために使用されてもよい。世界マップ1210は、図9に説明されるマップ920の少なくとも一部を含んでもよい。種々のオブジェクト認識装置(例えば、708a、708b、708c…708n)が、オブジェクトおよびタグ画像を認識するため、および意味論情報をオブジェクトに付加するために使用されてもよい。これらのオブジェクト認識装置はまた、図7に説明される。
遠隔データリポジトリ1280は、データを記憶し、世界マップ1210の構造を促進するために使用されることができる。ユーザデバイスは、ユーザの環境についての情報を常に更新し、世界マップ1210についての情報を受信することができる。世界マップ1210は、ユーザまたは別の人物によって作成されてもよい。本明細書に議論されるように、ユーザデバイス(例えば、1230a、1230b、1230c)および遠隔コンピューティングシステム1220は、単独で、または組み合わせて、世界マップ1210を構築または更新してもよい。例えば、ユーザデバイスは、遠隔処理モジュール1270および遠隔データリポジトリ1280と通信してもよい。ユーザデバイスは、ユーザおよびユーザの環境についての情報を入手または処理してもよい。遠隔処理モジュール1270は、遠隔データリポジトリ1280およびユーザデバイス(例えば、1230a、1230b、1230c)と通信し、ユーザおよびユーザの環境についての情報を処理してもよい。遠隔コンピューティングシステム1220は、例えば、ユーザの画像を選択的にクロッピングする、ユーザの背景を修正する、仮想オブジェクトをユーザの環境に追加する、ユーザの発話に補助情報で注釈を付ける等、ユーザデバイス(例えば、1230a、1230b、1230c)によって入手された情報を修正することができる。遠隔コンピューティングシステム1220は、処理された情報を同一または異なるユーザデバイスに送信することができる。
G. 例示的マップ
図13Aは、ユーザ1331が物理的世界環境1333(以降、「環境1333」と称される)を通して移動するにつれてARコンテンツをレンダリングする、ARディスプレイシステムを装着している、ユーザ1331を図示する。ユーザの移動経路に沿ってARシステムによって捕捉された情報は、1つまたはそれを上回る追跡マップの中に処理されてもよい。ユーザ1331は、ARディスプレイシステムを位置1334に位置付け、ARディスプレイシステムは、位置1334に対するパス可能世界(例えば、物理的世界内の実オブジェクトの変化に伴って記憶および更新され得る、物理的世界内の実オブジェクトのデジタル表現)の周囲情報を記録する。その情報は、画像、特徴、指向性オーディオ入力、または他の所望のデータと組み合わせて、姿勢として記憶されてもよい。位置1334は、例えば、追跡マップの一部として、データ入力1336に対して集約され、少なくともパス可能世界モジュール1338によって処理され、これは、遠隔処理モジュール上の処理によって実装されてもよい。いくつかの実施形態では、パス可能世界モジュール1338は、処理された情報が、レンダリング仮想コンテンツ内で使用される物理的オブジェクトについての他の情報と組み合わせて、物理的世界内のオブジェクトの場所を示し得るように、頭部姿勢コンポーネントと、世界再構築コンポーネントとを含んでもよい。
パス可能世界モジュール1338は、データ入力1336から決定されるように、少なくとも部分的に、ARコンテンツ1340が物理的世界内に設置され得る場所および方法を決定する。ARコンテンツは、ユーザインターフェースを介して、物理的世界の表現およびARコンテンツの両方を提示することによって、物理的世界内に「設置」され、ARコンテンツは、物理的世界内のオブジェクトと相互作用しているかのようにレンダリングされ、物理的世界内のオブジェクトは、ARコンテンツが、適切なとき、それらのオブジェクトのユーザのビューを不明瞭にしているかのように提示される。いくつかの実施形態では、ARコンテンツは、固定要素1342(例えば、テーブル)の一部を再構築物から適切に選択し、ARコンテンツ1340の形状および位置を決定することによって、設置されてもよい。実施例として、固定要素は、テーブルであってもよく、仮想コンテンツは、そのテーブル上に現れるように位置付けられてもよい。いくつかの実施形態では、ARコンテンツは、現在の視野または推定される将来的視野であり得る、視野1344内の構造の中に設置されてもよい。いくつかの実施形態では、ARコンテンツは、物理的世界のモデル1346(例えば、メッシュ)に対して持続されてもよい。
描写されるように、固定要素1342は、ユーザ1331にそれが見える度に、システムが固定要素1342にマッピングする必要なく、ユーザ1331が固定要素1342上にコンテンツを知覚し得るように、パス可能世界モジュール1338内に記憶され得る、物理的世界内の任意の固定要素のためのプロキシ(例えば、デジタルコピー)としての役割を果たす。固定要素1342は、したがって、前のモデル化セッションからの、または別個のユーザから決定されるものであるものの、複数のユーザによる将来的参照のためにパス可能世界モジュール1338によって記憶される、メッシュモデルであってもよい。したがって、パス可能世界モジュール1338は、環境1333を以前にマッピングされた環境から認識し、ユーザ1331のデバイスが環境1333の全部または一部を最初にマッピングすることなく、ARコンテンツを表示し、算出プロセスおよびサイクルを節約し、任意のレンダリングされたARコンテンツの待ち時間を回避し得る。
物理的世界のメッシュモデル1346は、ARディスプレイシステムによって作成されてもよく、ARコンテンツ1340と相互作用し、表示するための適切な表面およびメトリックは、完全または部分的に、モデルを再作成する必要なく、ユーザ1331または他のユーザによる将来的読出のために、パス可能世界モジュール1338によって記憶されることができる。いくつかの実施形態では、データ入力1336は、パス可能世界モジュール1338に、1つまたはそれを上回る固定要素のうちのどの固定要素1342が利用可能であるかどうか、固定要素1342上に最後に設置されたARコンテンツ1340、およびその同一コンテンツを表示すべきかどうか(そのようなARコンテンツは、ユーザが特定のパス可能世界モデルを視認しているかどうかにかかわらず、「持続」コンテンツである)を示すための、地理的場所、ユーザ識別、および現在のアクティビティ等の入力である。
オブジェクトが固定されていると見なされる(例えば、台所のテーブル)、実施形態においてさえ、パス可能世界モジュール1338は、物理的世界の変化の可能性を考慮するために、物理的世界のモデル内のそれらのオブジェクトを随時更新してもよい。固定されたオブジェクトのモデルは、非常に低頻度で更新されてもよい。物理的世界内の他のオブジェクトは、移動している、または別様に固定されていると見なされないものであり得る(例えば、台所の椅子)。AR場面を現実的感覚でレンダリングするために、ARシステムは、これらの非固定オブジェクトの位置を、固定オブジェクトを更新するために使用されるものよりはるかに高い頻度で更新してもよい。物理的世界内のオブジェクトの全ての正確な追跡を有効にするために、ARシステムは、1つまたはそれを上回る画像センサを含む、複数のセンサから情報を引き出してもよい。
図13Bは、視認光学系アセンブリ1348および付帯コンポーネントの概略例証である。いくつかの実施形態では、2つの眼追跡カメラ1350が、ユーザの眼1349に向かって指向され、眼形状、眼瞼オクルージョン、瞳孔方向、およびユーザの眼1349上の閃光等、ユーザの眼1349のメトリックを検出する。
いくつかの実施形態では、センサのうちの1つは、飛行時間センサ等の深度センサ1351であって、信号を世界に放出し、近隣のオブジェクトからのそれらの信号の反射を検出し、所与のオブジェクトまでの距離を決定してもよい。深度センサは、例えば、オブジェクトが、それらのオブジェクトの運動またはユーザの姿勢の変化のいずれかの結果として、ユーザの視野に進入したかどうかを迅速に決定し得る。しかしながら、ユーザの視野内のオブジェクトの位置についての情報は、代替として、または加えて、他のセンサを用いて収集されてもよい。深度情報は、例えば、立体視的画像センサまたはプレノプティックセンサから取得されてもよい。
いくつかの実施形態では、世界カメラ1352は、周辺より広いビューを記録し、マッピングし、および/または別様に、環境1333のモデルを作成し、ARコンテンツに影響を及ぼし得る、入力を検出する。いくつかの実施形態では、世界カメラ1352および/またはカメラ1353は、グレースケールおよび/またはカラー画像センサであってもよく、これは、グレースケールおよび/またはカラー画像フレームを固定される時間インターバルにおいて出力してもよい。カメラ1353はさらに、ユーザの視野内の物理的世界画像を具体的時間において捕捉してもよい。フレームベースの画像センサのピクセルは、その値が不変である場合でも、反復的にサンプリングされてもよい。世界カメラ1352、カメラ1353、および深度センサ1351はそれぞれ、1354、1355、および1356の個別の視野を有し、物理的世界場面からのデータを収集および記録する。
慣性測定ユニット1357は、視認光学系アセンブリ1348の移動および配向を決定してもよい。いくつかの実施形態では、各コンポーネントは、少なくとも1つの他のコンポーネントに動作可能に結合される。例えば、深度センサ1351は、ユーザの眼1349が見ている実際の距離に対する測定された遠近調節の確認として、眼追跡カメラ1350に動作可能に結合される。
いくつかの実施形態では、例えば、視認光学系アセンブリ1348は、4つの代わりに、2つの世界カメラ1352を含んでもよい。代替として、または加えて、カメラ1352および1353は、その完全視野の可視光画像を捕捉する必要はない。視認光学系アセンブリ1348は、他のタイプのコンポーネントを含んでもよい。いくつかの実施形態では、視認光学系アセンブリ1348は、1つまたはそれを上回る動的視覚センサ(DVS)を含んでもよく、そのピクセルは、光強度の相対的変化が閾値を超えることに非同期して応答してもよい。
いくつかの実施形態では、視認光学系アセンブリ1348は、飛行時間情報に基づく深度センサ1351を含まなくてもよい。いくつかの実施形態では、例えば、視認光学系アセンブリ1348は、1つまたはそれを上回るプレノプティックカメラを含んでもよく、そのピクセルは、入射光の光強度および角度を捕捉してもよく、そこから深度情報が、決定されることができる。例えば、プレノプティックカメラは、透過性回折マスク(TDM)でオーバーレイされた画像センサを含んでもよい。代替として、または加えて、プレノプティックカメラは、角度感知ピクセルおよび/または位相検出自動焦点ピクセル(PDAF)および/またはマイクロレンズアレイ(MLA)を含有する、画像センサを含んでもよい。そのようなセンサは、深度センサ1351の代わりに、またはそれに加え、深度情報源としての役割を果たし得る。
また、図13Bにおけるコンポーネントの構成は、実施例として提供されることを理解されたい。視認光学系アセンブリ1348は、任意の好適な構成を伴うコンポーネントを含んでもよく、これは、ユーザに、特定のセットのコンポーネントのために実践的な最大視野を提供するように設定されてもよい。例えば、視認光学系アセンブリ1348が、1つの世界カメラ1352を有する場合、世界カメラは、側面の代わりに、視認光学系アセンブリの中心領域内に設置されてもよい。
視認光学系アセンブリ1348内のセンサからの情報は、システム内のプロセッサのうちの1つまたはそれを上回るものに結合されてもよい。プロセッサは、ユーザに仮想コンテンツが物理的世界内のオブジェクトと相互作用するように知覚させるようにレンダリングされ得る、データを生成してもよい。そのレンダリングは、物理的および仮想オブジェクトの両方を描写する、画像データを生成するステップを含め、任意の好適な方法において実装されてもよい。他の実施形態では、物理的および仮想コンテンツは、ユーザが物理的世界を透かし見る、ディスプレイデバイスの不透明度を変調させることによって、1つの場面に描写されてもよい。不透明度は、仮想オブジェクトの外観を作成し、ユーザに仮想オブジェクトによってオクルードされる物理的世界内のオブジェクトが見えないように遮断するように、制御されてもよい。いくつかの実施形態では、画像データは、仮想コンテンツがユーザインターフェースを通して視認されるとき、物理的世界と現実的に相互作用するように、ユーザによって知覚されるように修正され得る(例えば、コンテンツをクリッピングし、オクルージョンを考慮する)、仮想コンテンツのみを含んでもよい。
コンテンツが特定の場所におけるオブジェクトの印象を作成するために表示され得る、視認光学系アセンブリ1348上の場所は、視認光学系アセンブリの物理学に依存し得る。加えて、物理的世界に対するユーザの頭部の姿勢およびユーザの眼が見ている方向は、コンテンツが現れるであろう視認光学系アセンブリ上の特定の場所に表示される、物理的世界コンテンツ内の場所に影響を及ぼすであろう。上記に説明されるようなセンサは、センサ入力を受信するプロセッサが、オブジェクトが、視認光学系アセンブリ1348上にレンダリングされ、ユーザのために所望の外観を作成すべき場所を算出し得るように、本情報を収集し、および/またはそこから本情報が計算され得る、情報を供給してもよい。
コンテンツがユーザに提示される方法にかかわらず、物理的世界のモデルが、仮想オブジェクトの形状、位置、運動、および可視性を含む、物理的オブジェクトによって影響され得る、仮想オブジェクトの特徴が、正しく算出され得るように、使用され得る。いくつかの実施形態では、モデルは、物理的世界の再構築物、例えば、再構築物1318を含んでもよい。
そのモデルは、ユーザのウェアラブルデバイス上のセンサから収集されたデータから作成されてもよい。但し、いくつかの実施形態では、モデルは、複数のユーザによって収集されたデータから作成されてもよく、これは、全てのユーザから遠隔のコンピューティングデバイス内に集約されてもよい(かつ「クラウド内」にあってもよい)。
モデルは、少なくとも部分的に、例えば、図6Aにさらに詳細に描写される世界再構築システムによって作成されてもよい。世界再構築コンポーネント516は、物理的世界の一部のための表現を生成、更新、および記憶し得る、知覚モジュール1360を含んでもよい。いくつかの実施形態では、知覚モジュール1360は、センサの再構築範囲内の物理的世界の一部を複数のボクセルとして表し得る。各ボクセルは、物理的世界内の所定の体積の3D立方体に対応し、表面情報を含み、ボクセルによって表される体積内に表面が存在するかどうかを示し得る。ボクセルは、その対応する体積が、物理的オブジェクトの表面を含むと決定されている、空であると決定されている、またはセンサを用いてまだ測定されていない、したがって、その値が未知であるかどうかを示す、値を割り当てられてもよい。空または未知であると決定されたボクセルを示す値は、明示的に記憶される必要はなく、ボクセルの値は、空または未知であると決定されたボクセルに関する情報を記憶しないことを含め、任意の好適な方法において、コンピュータメモリ内に記憶されてもよいことを理解されたい。
持続される世界表現のための情報を生成することに加え、知覚モジュール1360は、ARシステムのユーザの周囲の領域の変化のインジケーションを識別し、出力してもよい。そのような変化のインジケーションは、持続される世界の一部として記憶される立体データへの更新をトリガする、またはARコンテンツを生成し、ARコンテンツを更新する、コンポーネント604をトリガする等、他の機能をトリガしてもよい。
いくつかの実施形態では、知覚モジュール1360は、符号付き距離関数(SDF)モデルに基づいて、変化を識別してもよい。知覚モジュール1360は、例えば、深度マップ1360aおよび頭部姿勢1360b等のセンサデータを受信し、次いで、センサデータをSDFモデル1360cに融合させるように構成されてもよい。深度マップ1360aは、直接、SDF情報を提供してもよく、画像は、SDF情報に到着するように処理されてもよい。SDF情報は、その情報を捕捉するために使用されるセンサからの距離を表す。それらのセンサは、ウェアラブルユニットの一部であり得るため、SDF情報は、ウェアラブルユニットの視点、したがって、ユーザの視点から物理的世界を表し得る。頭部姿勢1360bは、SDF情報が物理的世界内のボクセルに関連されることを可能にし得る。
いくつかの実施形態では、知覚モジュール1360は、知覚範囲内にある、物理的世界の一部のための表現を生成、更新、および記憶してもよい。知覚範囲は、少なくとも部分的に、センサの再構築範囲に基づいて決定されてもよく、これは、少なくとも部分的に、センサの観察範囲の限界に基づいて決定されてもよい。具体的実施例として、アクティブIRパルスを使用して動作する、アクティブ深度センサは、ある距離の範囲にわたって確実に動作し、数センチメートルまたは数十センチメートル~数メートルであり得る、センサの観察範囲を作成し得る。
世界再構築コンポーネント516は、知覚モジュール1360と相互作用し得る、付加的モジュールを含んでもよい。いくつかの実施形態では、持続される世界モジュール1362は、知覚モジュール1360によって入手されたデータに基づいて、物理的世界のための表現を受信してもよい。持続される世界モジュール1362はまた、物理的世界の種々のフォーマットの表現を含んでもよい。例えば、ボクセル等の立体メタデータ1362bが、メッシュ1362cおよび平面1362dとともに記憶されてもよい。いくつかの実施形態では、深度マップ等の他の情報も、保存され得る。
いくつかの実施形態では、図6Aに図示されるもの等の物理的世界の表現は、上記に説明されるように、特徴点に基づく追跡マップ等の疎マップと比較して、物理的世界についての比較的に稠密情報を提供し得る。
いくつかの実施形態では、知覚モジュール1360は、例えば、メッシュ1360d、平面、および意味論1360eを含む、種々のフォーマットにおける、物理的世界のための表現を生成する、モジュールを含んでもよい。物理的世界のための表現は、ローカルおよび遠隔記憶媒体を横断して記憶されてもよい。物理的世界のための表現は、例えば、記憶媒体の場所に応じて、異なる座標フレーム内に説明されてもよい。例えば、デバイス内に記憶された物理的世界のための表現は、デバイスにローカルの座標フレーム内に説明されてもよい。物理的世界のための表現は、クラウド内に記憶された対応物を有してもよい。クラウド内の対応物は、XRシステム内の全てのデバイスによって共有される座標フレーム内に説明されてもよい。
いくつかの実施形態では、これらのモジュールは、表現が生成された時点の1つまたはそれを上回るセンサの知覚範囲内のデータおよび以前の時間に捕捉されたデータおよび持続される世界モジュール1362内の情報に基づいて、表現を生成してもよい。いくつかの実施形態では、これらのコンポーネントは、深度センサを用いて捕捉された深度情報に作用してもよい。しかしながら、ARシステムは、視覚センサを含んでもよく、単眼または両眼視覚情報を分析することによって、そのような表現を生成してもよい。
いくつかの実施形態では、これらのモジュールは、物理的世界の領域に作用してもよい。それらのモジュールは、物理的世界のサブ領域を、知覚モジュール1360がそのサブ領域内の物理的世界の変化を検出すると、更新するようにトリガされてもよい。そのような変化は、例えば、SDFモデル1360c内の新しい表面を検出することによって、またはサブ領域を表す十分な数のボクセルの値の変化等の他の基準によって、検出されてもよい。
世界再構築コンポーネント516は、物理的世界の表現を知覚モジュール1360から受信し得る、コンポーネント1364を含んでもよい。物理的世界についての情報は、例えば、アプリケーションからの使用要求に従って、これらのコンポーネントによってプル配信されてもよい。いくつかの実施形態では、情報は、事前に識別された領域の変化または知覚範囲内の物理的世界表現の変化のインジケーション等を介して、使用コンポーネントにプッシュ配信されてもよい。コンポーネント1364は、例えば、視覚的オクルージョン、物理学ベースの相互作用、および環境推測のための処理を実施する、ゲームプログラムおよび他のコンポーネントを含んでもよい。
コンポーネント1364からのクエリに応答して、知覚モジュール1360は、物理的世界のための表現を1つまたはそれを上回るフォーマットにおいて送信してもよい。例えば、コンポーネント1364が、使用が視覚的オクルージョンまたは物理学ベースの相互作用のためのものであることを示すとき、知覚モジュール1360は、表面の表現を送信してもよい。コンポーネント1364が、使用が環境推測のためのものであることを示すとき、知覚モジュール1360は、物理的世界のメッシュ、平面、および意味論を送信してもよい。
いくつかの実施形態では、知覚モジュール1360は、フォーマット情報をコンポーネント1364に提供する、コンポーネントを含んでもよい。そのようなコンポーネントの実施例は、レイキャスティングコンポーネント1360fであってもよい。使用コンポーネント(例えば、コンポーネント1364)は、例えば、特定の視点からの物理的世界についての情報をクエリしてもよい。レイキャスティングコンポーネント1360fは、その視点からの視野内の物理的世界データの1つまたはそれを上回る表現から選択してもよい。
前述の説明から理解されるはずであるように、知覚モジュール1360またはARシステムの別のコンポーネントは、データを処理し、物理的世界の一部の3D表現を作成してもよい。処理されるべきデータは、少なくとも部分的に、カメラ錐台および/または深度画像に基づいて、3D再構築体積の一部を間引く、平面データを抽出および持続させる、近傍の一貫性を維持しながらローカル更新を可能にするブロックにおいて、3D再構築データを捕捉し、持続させ、更新する、オクルージョンデータが1つまたはそれを上回る深度データソースの組み合わせから導出される、オクルージョンデータをそのような場面を生成するアプリケーションに提供する、および/または多段階メッシュ簡略化を実施することによって、低減され得る。再構築物は、例えば、ライブ深度データ等の未加工データ、ボクセル等の融合された立体データ、およびメッシュ等の算出されたデータを含む、異なるレベルの精巧さのデータを含有してもよい。
いくつかの実施形態では、パス可能世界モデルのコンポーネントは、分散されてもよく、いくつかの部分は、XRデバイス上でローカルで実行され、いくつかの部分は、サーバに接続されるネットワーク上または別様にクラウド内等の遠隔で実行される。ローカルXRデバイスとクラウドとの間の情報の処理および記憶の配分は、XRシステムの機能性およびユーザ体験に影響を及ぼし得る。例えば、処理をクラウドに配分することによって、ローカルデバイス上の処理を低減させることは、より長いバッテリ寿命を有効にし、ローカルデバイス上に生成される熱を低減させ得る。しかし、はるかに多い処理をクラウドに配分することは、容認不可能なユーザ体験を引き起こす、望ましくない待ち時間を作成し得る。
図13Dは、いくつかの実施形態による、空間コンピューティングのために構成される、分散型コンポーネントアーキテクチャ1370を描写する。分散型コンポーネントアーキテクチャ1370は、パス可能世界コンポーネント1372(例えば、図5AにおけるPW538)と、Lumin OS1374と、API1376と、SDK1378と、アプリケーション1380とを含んでもよい。Lumin OS1374は、XRデバイスと互換性があるカスタムドライバを伴う、Linux(登録商標)ベースのカーネルを含んでもよい。API1376は、XRアプリケーション(例えば、アプリケーション1380)にXRデバイスの空間コンピューティング特徴へのアクセスを与える、アプリケーションプログラミングインターフェースを含んでもよい。SDK1378は、XRアプリケーションの作成を可能にする、ソフトウェア開発キットを含んでもよい。
アーキテクチャ1370内の1つまたはそれを上回るコンポーネントは、パス可能世界のモデルを作成および維持してもよい。本実施例では、センサデータは、ローカルデバイス上で収集される。そのセンサデータの処理は、部分的に、XRデバイス上でローカルで、部分的に、クラウド内で実施されてもよい。PW538は、少なくとも部分的に、複数のユーザによって装着されるARデバイスによって捕捉されたデータに基づいて作成される、環境マップを含んでもよい。AR体験のセッションの間、個々のARデバイス(図4に関連して上記に説明されるウェアラブルデバイス等)は、マップの1つのタイプである、追跡マップを作成してもよい。
いくつかの実施形態では、デバイスは、疎マップおよび稠密マップの両方を構築する、コンポーネントを含んでもよい。追跡マップは、疎マップとしての役割を果たしてもよく、環境を走査するARデバイスの頭部姿勢ならび各頭部姿勢においてその環境内で検出されたオブジェクトについての情報を含んでもよい。それらの頭部姿勢は、デバイス毎にローカルで維持されてもよい。例えば、各デバイス上の頭部姿勢は、デバイスがそのセッションのためにオンにされたときの初期頭部姿勢に対するものであり得る。結果として、各追跡マップは、それを作成するデバイスにローカルであり得る。稠密マップは、表面情報を含んでもよく、これは、メッシュまたは深度情報によって表されてもよい。代替として、または加えて、稠密マップは、平面および/または他のオブジェクトの場所および/または特性等の表面または深度情報から導出されるより高いレベルの情報を含んでもよい。
稠密マップの作成は、いくつかの実施形態では、疎マップの作成から独立してもよい。稠密マップおよび疎マップの作成は、例えば、ARシステム内の別個の処理パイプライン内で実施されてもよい。処理を分離することは、例えば、異なるタイプのマップの生成または処理が異なるレートで実施されることを可能にし得る。疎マップは、例えば、稠密マップより高速のレートでリフレッシュされてもよい。しかしながら、いくつかの実施形態では、稠密および疎マップの処理は、異なるパイプライン内で実施される場合でも、関連し得る。疎マップ内で露見される物理的世界の変化は、例えば、稠密マップの更新をトリガし得る、またはその逆である。さらに、独立して作成される場合でも、マップは、ともに使用され得る。例えば、疎マップから導出される座標系は、稠密マップ内のオブジェクトの位置および/または配向を定義するために使用されてもよい。
疎マップおよび/または稠密マップは、同一デバイスによる再使用のために、および/または他のデバイスと共有するために、存続してもよい。そのような存続は、情報をクラウド内に記憶することによって達成されてもよい。ARデバイスは、追跡マップをクラウドに送信し、例えば、クラウド内に以前に記憶された存続されるマップから選択された環境マップとマージしてもよい。いくつかの実施形態では、選択された存続されるマップは、マージするために、クラウドからARデバイスに送信されてもよい。いくつかの実施形態では、存続されるマップは、1つまたはそれを上回る持続座標フレームに対して配向されてもよい。そのようなマップは、それらが複数のデバイスのいずれかによって使用され得るため、規準マップとしての役割を果たし得る。いくつかの実施形態では、パス可能世界のモデルは、1つまたはそれを上回る規準マップから成る、または作成されてもよい。デバイスは、デバイスにローカルの座標フレームに基づいて、いくつかの動作を実施するものの、デバイスにローカルのその座標フレームと規準マップとの間の変換を決定することによって、規準マップを使用してもよい。
規準マップは、追跡マップ(TM)(例えば、図31AにおけるTM1102)として生じてもよく、これは、規準マップにレベル上げされ得る。規準マップは、規準マップにアクセスするデバイスが、いったんそのローカル座標系と規準マップの座標系との間の変換を決定すると、規準マップ内の情報を使用して、デバイスの周囲の物理的世界内の規準マップ内に表されるオブジェクトの場所を決定し得るように、存続されてもよい。いくつかの実施形態では、TMは、XRデバイスによって作成された頭部姿勢疎マップであってもよい。いくつかの実施形態では、規準マップは、異なる時間においてXRデバイスによって、または他のXRデバイスによって、捕捉された付加的TMとマージするために、XRデバイスが1つまたはそれを上回るTMをクラウドサーバに送信すると、作成されてもよい。
規準マップまたは他のマップは、個別のマップを作成するために処理されたデータによって表される物理的世界の一部についての情報を提供してもよい。例えば、追跡マップが、点によって表される対応する物理的世界内の物理的オブジェクトの平面図を提供してもよい。いくつかの実施形態では、マップ点は、複数の特徴を含み得る、物理的オブジェクトの特徴を表し得る。例えば、テーブルの各角は、マップ上の点によって表される、特徴であり得る。特徴は、拡張現実システム内のウェアラブルデバイスのセンサを用いて入手され得るような処理画像から導出されてもよい。特徴は、例えば、センサによって出力された画像フレームを処理し、画像内の大勾配または他の好適な基準に基づいて、特徴を識別することによって導出されてもよい。さらなる処理は、各フレーム内の特徴の数を限定してもよい。例えば、処理は、持続オブジェクトを表す可能性が高い、特徴を選択してもよい。1つまたはそれを上回るヒューリスティックが、本選択のために適用されてもよい。
追跡マップは、デバイスによって収集された点に関するデータを含んでもよい。追跡マップ内に含まれるデータ点を伴う、画像フレーム毎に、姿勢が、記憶されてもよい。姿勢は、各画像フレーム内の特徴点が空間的に相関され得るように、そこから画像フレームが捕捉された配向を表し得る。姿勢は、ウェアラブルデバイス上のIMUセンサ等のセンサから導出され得るような位置付け情報によって決定されてもよい。代替として、または加えて、姿勢は、画像フレームと、物理的世界の重複部分を描写する、他の画像フレームをマッチングさせることから決定されてもよい。2つのフレーム内の特徴点のサブセットをマッチングさせることによって遂行され得る、そのような位置相関を見出すことによって、2つのフレーム間の相対的姿勢が、算出され得る。相対的姿勢は、マップが、追跡マップの構築が開始されたときのデバイスの初期姿勢に基づいて確立されるデバイスにローカルの座標系に対するものであり得るため、追跡マップのために適正であり得る。
センサを用いて収集された情報の多くが冗長である可能性が高いため、デバイスによって収集された特徴点および画像フレームの全てが、追跡マップの一部として留保され得るわけではない。むしろ、あるフレームのみが、マップに追加されてもよい。それらのフレームは、すでにマップ内にある画像フレームとの重複度、それらが含有する新しい特徴の数、またはフレーム内の特徴に関する品質メトリック等の1つまたはそれを上回る基準に基づいて選択されてもよい。追跡マップに追加されない画像フレームは、破棄されてもよい、または特徴の場所を改訂するために使用されてもよい。さらなる代替として、特徴のセットとして表される、画像フレームの全部または大部分が、留保されてもよいが、それらのフレームのサブセットは、キーフレームとして指定されてもよく、これは、さらなる処理のために使用される。
キーフレームは、処理され、キーリグを生産してもよい。キーフレームは、処理され、特徴点の3次元セットを生産し、キーリグとして保存されてもよい。そのような処理は、例えば、2つのカメラから同時に導出される画像フレームを比較し、特徴点の3D位置を立体視的に決定するステップを伴ってもよい。姿勢等のメタデータが、これらのキーフレームおよび/またはキーリグと関連付けられてもよい。
環境マップは、例えば、ARデバイスのローカル記憶装置および遠隔記憶装置を含む、例えば、環境マップの記憶場所に応じて、複数のフォーマットのいずれかを有してもよい。例えば、遠隔記憶装置内のマップは、メモリが限定されると、ウェアラブルデバイス上のローカル記憶装置内のマップより高い分解能を有してもよい。より高い分解能マップを遠隔記憶装置からローカル記憶装置に送信するために、マップは、マップ内に記憶される物理的世界のエリアあたりの姿勢の数および/または姿勢毎に記憶される特徴点の数を低減させること等によって、ダウンサンプリングまたは別様に適切なフォーマットに変換されてもよい。いくつかの実施形態では、遠隔記憶装置からの高分解能マップのスライスまたは一部が、ローカル記憶装置に送信されてもよく、スライスまたは一部は、ダウンサンプリングされない。
環境マップのデータベースは、新しい追跡マップが作成されるにつれて、更新されてもよい。データベース内の潜在的に非常に多数の環境マップのうちのどれが更新されるべきかを決定するために、更新するステップは、新しい追跡マップに関連するデータベース内に記憶される1つまたはそれを上回る環境マップを効率的に選択するステップを含んでもよい。選択された1つまたはそれを上回る環境マップは、関連性によってランク付けされてもよく、最高ランク付けマップのうちの1つまたはそれを上回るものが、より高いランク付けされた選択された環境マップと新しい追跡マップをマージし、1つまたはそれを上回る更新された環境マップを作成するために処理するために選択されてもよい。新しい追跡マップが、それにわたって更新するための既存の環境マップが存在しない、物理的世界の部分を表すとき、その追跡マップは、新しい環境マップとしてデータベース内に記憶されてもよい。
H. 持続座標フレーム
本発明者らは、空間存続が持続座標フレーム(PCF)を通して提供され得ることを認識および理解している。PCFは、物理的世界内で認識される特徴(例えば、角、縁)を表す、1つまたはそれを上回る点に基づいて定義されてもよい。特徴は、それらがユーザインスタンスからXRシステムの別のユーザインスタンスと同一である可能性が高いように選択されてもよい。
さらに、算出された追跡経路(例えば、カメラ軌道)を実際の追跡経路から逸脱させ得る、追跡の間のドリフトは、仮想コンテンツの場所を、追跡マップのみに基づく、ローカルマップに対してレンダリングされるとき、場所からずれて現れさせ得る。空間のための追跡マップは、XRデバイスが経時的に場面のさらなる情報を収集するにつれて、精緻化され、ドリフトを補正してもよい。しかしながら、仮想コンテンツが、マップ精緻化の前に、実オブジェクト上に設置され、追跡マップから導出されるデバイスの世界座標フレームに対して保存される場合、仮想コンテンツは、実オブジェクトがマップ精緻化の間に移動したかのように変位されて現れ得る。PCFは、PCFが、特徴に基づいて定義され、特徴がマップ精緻化の間に移動するにつれて、更新されるため、マップ精緻化に従って更新されてもよい。
PCFは、マップ座標系に対する平行移動および回転を伴う、6自由度を備えてもよい。PCFは、ローカルおよび/または遠隔記憶媒体内に記憶されてもよい。PCFの平行移動および回転は、例えば、記憶場所に応じて、マップ座標系に対して算出されてもよい。例えば、デバイスによってローカルで使用されるPCFは、デバイスの世界座標フレームに対する平行移動および回転を有してもよい。クラウド内のPCFは、規準マップの規準座標フレームに対する平行移動および回転を有してもよい。
PCFは、それらが効率的に処理および転送され得るように、物理的世界の疎表現を提供し、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、実空間内の1つまたはそれを上回る座標系に基づいて、動的マップを作成し、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされ得る、疎マップにわたる持続座標フレーム(PCF)を生成するステップを含んでもよい。
図14は、いくつかの実施形態による、持続座標フレーム(PCF)の作成およびXRコンテンツとPCFの結付を図示する、ブロック図である。各ブロックは、コンピュータメモリ内に記憶されたデジタル情報を表し得る。アプリケーション1180の場合、データは、コンピュータ実行可能命令を表し得る。仮想コンテンツ1170の場合、デジタル情報は、例えば、アプリケーション1180によって規定されるような仮想オブジェクトを定義し得る。他のボックスの場合、デジタル情報は、物理的世界のいくつかの側面を特性評価し得る。
図示される実施形態では、1つまたはそれを上回るPCFは、ウェアラブルデバイス上のセンサを用いて捕捉された画像から作成される。図14の実施形態では、センサは、視覚的画像カメラである。これらのカメラは、追跡マップを形成するために使用される、同一カメラであってもよい。故に、図14によって提案される処理のうちのいくつかは、追跡マップを更新するステップの一部として実施されてもよい。しかしながら、図14は、存続を提供する情報が追跡マップに加えて生成されることを図示する。
3D PCFを導出するために、立体視画像分析を有効にする構成においてウェアラブルデバイスに搭載される、2つのカメラからの2つの画像1110は、ともに処理される。図14は、画像1および画像2を図示し、それぞれ、カメラのうちの1つから導出される。各カメラからの単一画像が、便宜上、図示される。しかしながら、各カメラは、画像フレームのストリームを出力してもよく、図14に図示される処理は、ストリーム内の複数の画像フレームのために実施されてもよい。
故に、画像1および画像2はそれぞれ、画像フレームのシーケンス内の1つのフレームであってもよい。図14に描写されるような処理は、そこから持続空間情報を形成する、好適な画像を提供する特徴点を含有する画像フレームが処理されるまで、シーケンスにおいて連続画像フレーム上で繰り返されてもよい。代替として、または加えて、図14の処理は、ユーザがもはや以前に識別されたPCFに十分に近接しておらず、物理的世界に対する位置を決定するためにそのPCFを確実に使用することができないほど、ユーザが移動するにつれて、繰り返され得る。例えば、XRシステムは、ユーザのために、現在のPCFを維持してもよい。その距離が、閾値を超えると、本システムは、ユーザの現在の場所において入手された画像フレームを使用して図14のプロセスに従って生成され得る、ユーザにより近い新しい現在のPCFに切り替えてもよい。
単一PCFを生成するときでも、画像フレームのストリームが、安定する可能性が高く、画像フレームに描写される物理的世界の領域の近傍におけるデバイスによって容易に識別され得る、物理的世界内のコンテンツを描写する画像フレームを識別するように処理されてもよい。図14の実施形態では、本処理は、画像内の特徴1120の識別から開始する。特徴は、例えば、オブジェクトの角に対応し得る、例えば、閾値を上回る画像内の勾配の場所または他の特性を見出すことによって、識別されてもよい。図示される実施形態では、特徴は、点であるが、縁等の他の認識可能特徴も、代替として、または加えて、使用されてもよい。
図示される実施形態では、固定数Nの特徴1120が、さらなる処理のために選択される。それらの特徴点は、勾配の大きさまたは他の特徴点との近接度等の1つまたはそれを上回る基準に基づいて選択されてもよい。代替として、または加えて、特徴点は、特徴点が持続であることを示唆する、特性に基づいて等、ヒューリスティックに選択されてもよい。例えば、ヒューリスティックは、窓またはドアまたは大型家具の角に対応する可能性が高い、特徴点の特性に基づいて定義されてもよい。そのようなヒューリスティックは、特徴点自体およびそれを囲繞するものを考慮してもよい。具体的実施例として、画像あたり特徴点の数は、200等の100~500または150~250であってもよい。
選択された特徴点の数にかかわらず、記述子1130が、特徴点に関して算出されてもよい。本実施例では、記述子は、選択された特徴点毎に算出されるが、記述子は、特徴点の群に関して、または特徴点のサブセットに関して、または画像内の全ての特徴に関して算出されてもよい。記述子は、物理的世界内の同一オブジェクトを表す特徴点が類似記述子を割り当てられるように、特徴点を特性評価する。記述子は、1つのマップが別のマップに対して位置特定されるときに生じ得るような2つのフレームの整合を促進し得る。2つの画像の特徴点間の距離を最小限にする、フレームの相対的配向を検索するのではなく、2つのフレームの初期整合は、類似記述子を伴う特徴点を識別することによって行われてもよい。画像フレームの整合は、類似記述子を伴う点を整合させるステップに基づいてもよく、これは、画像内の全ての特徴点の整合を算出する、より少ない処理を伴い得る。
記述子は、記述子と特徴点のマッピング、またはいくつかの実施形態では、特徴点の周囲の画像のパッチのマッピングとして算出されてもよい。記述子は、数値量であってもよい。米国特許出願第16/190,948号は、特徴点に関する記述子を算出するステップを説明しており、参照することによってその全体として本明細書に組み込まれる。
図14の実施例では、記述子1130は、各画像フレーム内の特徴点毎に算出される。記述子および/または特徴点および/または画像自体に基づいて、画像フレームは、キーフレーム1140として識別されてもよい。図示される実施形態では、キーフレームは、次いで、さらなる処理のために選択される、ある基準を満たす、画像フレームである。追跡マップを作成する際、例えば、有意義な情報をマップに追加する、画像フレームが、マップの中に統合される、キーフレームとして選択されてもよい。他方では、それにわたって画像フレームがすでにマップの中に統合されている、領域に実質的に重複する、画像フレームは、それらがキーフレームとならないように破棄されてもよい。代替として、または加えて、キーフレームは、画像フレーム内の特徴点の数および/またはタイプに基づいて選択されてもよい。図14の実施形態では、追跡マップ内への含有のために選択されたキーフレーム1150はまた、PCFを決定するためのキーフレームとして処理されてもよいが、PCFの生成のためのキーフレームを選択するための異なるまたは付加的基準が、使用されてもよい。
図14は、キーフレームがさらなる処理のために使用されることを示すが、画像から入手された情報は、他の形態で処理されてもよい。例えば、キーリグ内等の特徴点が、代替として、または加えて、処理されてもよい。さらに、キーフレームは、単一画像フレームから導出されるように説明されるが、キーフレームと入手された画像フレームとの間の1対1の関係が存在する必要であるわけではない。キーフレームは、例えば、複数の画像内に現れる特徴のみがキーフレーム内に留保されるように、画像フレームをともにスティッチングまたは集約すること等によって、複数の画像フレームから入手されてもよい。
キーフレームは、画像情報および/または画像情報と関連付けられるメタデータを含んでもよい。いくつかの実施形態では、カメラ44、46(図9)によって捕捉された画像が、1つまたはそれを上回るキーフレーム(例えば、キーフレーム1、2)の中に算出されてもよい。いくつかの実施形態では、キーフレームは、カメラ姿勢を含んでもよい。いくつかの実施形態では、キーフレームは、カメラ姿勢において捕捉された1つまたはそれを上回るカメラ画像を含んでもよい。いくつかの実施形態では、XRシステムは、カメラ姿勢において捕捉されたカメラ画像の一部を有用ではないと決定し、したがって、その部分をキーフレーム内に含まなくてもよい。したがって、キーフレームを使用して、新しい画像と場面のより早期の知識を整合させることは、XRシステムの算出リソースの使用を低減させる。いくつかの実施形態では、キーフレームは、ある方向/角度を伴う場所における画像および/または画像データを含んでもよい。いくつかの実施形態では、キーフレームは、そこから1つまたはそれを上回るマップ点が観察され得る、場所および方向を含んでもよい。いくつかの実施形態では、キーフレームは、あるIDを伴う、座標フレームを含んでもよい。米国特許第出願第15/877,359号は、キーフレームを説明しており、参照することによってその全体として本明細書に組み込まれる。
キーフレーム1140のいくつかまたは全てが、キーフレームのための持続姿勢1150の生成等のさらなる処理のために選択されてもよい。選択は、画像フレーム内の特徴点の全てまたはサブセットの特性に基づいてもよい。それらの特性は、記述子、特徴、および/または画像フレーム自体を処理することから決定されてもよい。具体的実施例として、選択は、持続オブジェクトに関連する可能性が高いと識別された特徴点のクラスタに基づいてもよい。
各キーフレームは、キーフレームが入手された、カメラの姿勢と関連付けられる。持続姿勢に処理するために選択されたキーフレームに関して、その姿勢情報は、入手時および/または入手の場所におけるWiFiフィンガプリントおよび/またはGPS座標等のキーフレームについての他のメタデータとともに保存されてもよい。
持続姿勢は、デバイスがそれ自体を物理的世界についての以前に入手された情報に対して配向するために使用し得る、情報源である。例えば、そこから持続姿勢が作成された、キーフレームが、物理的世界のマップの中に組み込まれる場合、デバイスは、持続姿勢と関連付けられる、キーフレーム内の十分な数の特徴点を使用して、それ自体をその持続姿勢に対して配向し得る。デバイスは、その周囲の得られた現在の画像と持続姿勢を整合させ得る。本整合は、現在の画像と、持続姿勢を生じさせた画像1110、特徴1120、および/または記述子1130、またはその画像またはそれらの特徴または記述子の任意のサブセットのマッチングに基づいてもよい。いくつかの実施形態では、持続姿勢にマッチされた現在の画像フレームは、デバイスの追跡マップの中に組み込まれている、別のキーフレームであってもよい。
持続姿勢についての情報は、同一または異なるデバイス上で実行され得る、複数のアプリケーション間の共有を促進する、フォーマットで記憶されてもよい。図14の実施例では、持続姿勢のいくつかまたは全てが、持続座標フレーム(PCF)1160として反映され得る。持続姿勢のように、PCFも、マップと関連付けられてもよく、デバイスがそのPCFに対するその配向を決定するために使用し得る、特徴のセットまたは他の情報を備えてもよい。PCFは、その位置をPCFに相関させることによって、デバイスがマップ内に反映される物理的世界内の任意のオブジェクトに対するその位置を決定し得るように、そのマップの原点に対するその変換を定義する、変換を含んでもよい。
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を基準として使用することは、そのような算出を簡略化し得る。
いくつかの実施形態では、持続姿勢は、1つまたはそれを上回る関連付けられるキーフレームを有する、座標場所および/または方向であってもよい。いくつかの実施形態では、持続姿勢は、ユーザが、ある距離、例えば、3メートル進行した後、自動的に作成されてもよい。いくつかの実施形態では、持続姿勢は、位置特定の間、基準点として作用してもよい。いくつかの実施形態では、持続姿勢は、パス可能世界(例えば、パス可能世界モジュール538)内に記憶されてもよい。
いくつかの実施形態では、新しいPCFは、隣接するPCF間で許容される、事前に定義された距離に基づいて決定されてもよい。いくつかの実施形態では、1つまたはそれを上回る持続姿勢は、ユーザが、所定の距離、例えば、5メートル進行すると、PCFの中に算出されてもよい。いくつかの実施形態では、PCFは、例えば、パス可能世界内において、1つまたはそれを上回る世界座標フレームおよび/または規準座標フレームと関連付けられてもよい。いくつかの実施形態では、PCFは、例えば、セキュリティ設定に応じて、ローカルおよび/または遠隔データベース内に記憶されてもよい。
図15は、いくつかの実施形態による、持続座標フレームを確立および使用する方法4700を図示する。方法4700は、XRデバイスの1つまたはそれを上回るセンサを使用して、場面を中心として画像(例えば、図14における画像1および画像2)を捕捉するステップ(行為4702)から開始してもよい。複数のカメラが、使用されてもよく、1つのカメラが、例えば、ストリームにおいて、複数の画像を生成してもよい。
方法4700は、着目点(例えば、図14における特徴1120)を捕捉された画像から抽出するステップ(4704)と、抽出された着目点に関する記述子(例えば、図14における記述子1130)を生成するステップ(行為4706)と、記述子に基づいて、キーフレーム(例えば、キーフレーム1140)を生成するステップ(行為4708)とを含んでもよい。いくつかの実施形態では、本方法は、キーフレーム内の着目点を比較し、所定の量の着目点を共有する、対のキーフレームを形成してもよい。本方法は、個々の対のキーフレームを使用して、物理的世界の一部を再構築してもよい。物理的世界のマッピングされた部分は、3D特徴(例えば、キーリグ)として保存されてもよい。いくつかの実施形態では、対のキーフレームの選択された部分は、3D特徴を構築するために使用されてもよい。いくつかの実施形態では、マッピングの結果は、選択的に保存されてもよい。3D特徴を構築するために使用されない、キーフレームは、例えば、キーフレームの姿勢間に共分散行列を伴う、キーフレーム間の距離を表す、姿勢を通して、3D特徴と関連付けられてもよい。いくつかの実施形態では、対のキーフレームは、構築される3D特徴のそれぞれ間の距離が、必要とされる算出の量および結果として生じるモデルの正確度のレベルを平衡させるように決定され得る、所定の距離内にあるように、3D特徴を構築するように選択されてもよい。そのようなアプローチは、XRシステムを用いた効率的および正確な算出のために好適なデータの量を伴う、物理的世界のモデルを提供することを可能にする。いくつかの実施形態では、2つの画像の共分散行列は、2つの画像の姿勢(例えば、6自由度)間の共分散を含んでもよい。
方法4700は、キーフレームに基づいて持続姿勢を生成するステップ(行為4710)を含んでもよい。いくつかの実施形態では、本方法は、対のキーフレームから再構成された3D特徴に基づいて、持続姿勢を生成するステップを含んでもよい。いくつかの実施形態では、持続姿勢は、3D特徴に結び付けられてもよい。いくつかの実施形態では、持続姿勢は、3D特徴を構築するために使用される、キーフレームの姿勢を含んでもよい。いくつかの実施形態では、持続姿勢は、3D特徴を構築するために使用される、キーフレームの平均姿勢を含んでもよい。いくつかの実施形態では、持続姿勢は、近傍の持続姿勢の間の距離が、所定の値、例えば、1メートル~5メートルの範囲内、その間の任意の値、または任意の他の好適な値内であるように生成されてもよい。いくつかの実施形態では、近傍の持続姿勢間の距離は、近傍の持続姿勢の共分散行列によって表されてもよい。
方法4700は、持続姿勢に基づいてPCFを生成するステップ(行為4712)を含んでもよい。いくつかの実施形態では、PCFは、3D特徴に結び付けられてもよい。いくつかの実施形態では、PCFは、1つまたはそれを上回る持続姿勢と関連付けられてもよい。いくつかの実施形態では、PCFは、関連付けられる持続姿勢のうちの1つの姿勢を含んでもよい。いくつかの実施形態では、PCFは、関連付けられる持続姿勢の姿勢の平均姿勢を含んでもよい。いくつかの実施形態では、PCFは、近傍のPCF間の距離が、所定の値、例えば、3メートル~10メートルの範囲、その間の任意の値、または任意の他の好適な値内にあるように生成されてもよい。いくつかの実施形態では、近傍のPCF間の距離は、近傍のPCFの共分散行列によって表されてもよい。いくつかの実施形態では、PCFは、XRアプリケーションが、モデル自体にアクセスせずに、PCFを通して、物理的世界のモデルにアクセスし得るように、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。
方法4700は、XRデバイスによって表示されるための仮想オブジェクトの画像データとPCFのうちの少なくとも1つを関連付けるステップ(行為4714)を含んでもよい。いくつかの実施形態では、本方法は、関連付けられるPCFに対する仮想オブジェクトの平行移動および配向を算出するステップを含んでもよい。仮想オブジェクトと仮想オブジェクトを設置するデバイスによって生成されたPCFを関連付けることは、必要とされないことを理解されたい。例えば、デバイスは、クラウド内の規準マップ内の保存されたPCFを読み出し、仮想オブジェクトと読み出されたPCFを関連付けてもよい。仮想オブジェクトは、PCFが経時的に調節されるにつれて、関連付けられるPCFとともに移動し得ることを理解されたい。
図16は、いくつかの実施形態による、第1のXRデバイス12.1と、第2のXRデバイス12.2の視覚データおよびアルゴリズムと、サーバ20とを図示する。図16に図示されるコンポーネントは、本明細書に説明されるような持続姿勢、持続座標フレーム、追跡マップ、または規準マップ等の空間情報を生成、更新、および/または使用するステップと関連付けられる、動作のいくつかまたは全てを実施するように動作し得る。図示されないが、第1のXRデバイス12.1は、第2のXRデバイス12.2と同一に構成されてもよい。サーバ20は、マップ記憶ルーチン118と、規準マップ120と、マップ伝送機122と、マップマージアルゴリズム124とを有してもよい。
第1のXRデバイス12.1と同一場面にあり得る、第2のXRデバイス12.2は、持続座標フレーム(PCF)統合ユニット1300と、仮想オブジェクトをレンダリングするために使用され得る画像データ68を生成する、アプリケーション1302と、フレーム埋込生成器308とを含んでもよい。いくつかの実施形態では、マップダウンロードシステム126、PCF識別システム128、マップ2、位置特定モジュール130、規準マップ組込器132、規準マップ133、およびマップ発行器136は、パス可能世界ユニット1304の中に群化されてもよい。PCF統合ユニット1300は、パス可能世界ユニット1304および第2のXRデバイス12.2の他のコンポーネントに接続され、PCFの読出、生成、使用、アップロード、およびダウンロードを可能にしてもよい。
PCFを備える、マップは、変化する世界内のより多くの存続を有効にし得る。いくつかの実施形態では、例えば、画像のためのマッチング特徴を含む、追跡マップを位置特定するステップは、PCFによって構成されるマップから、持続コンテンツを表す特徴を選択するステップを含んでもよく、これは、高速マッチングおよび/または位置特定を有効にする。例えば、人々が場面の内外に移動し、ドア等のオブジェクトが場面に対して移動する、世界は、より少ない記憶空間および伝送レートを要求し、場面をマッピングするために個々のPCFおよび相互に対するその関係(例えば、PCFの統合されたコンステレーション)の使用を有効にする。
いくつかの実施形態では、PCF統合ユニット1300は、第2のXRデバイス12.2の記憶ユニット上のデータ記憶内に以前に記憶されたPCF1306と、PCF追跡器1308と、持続姿勢入手器1310と、PCF確認器1312と、PCF生成システム1314と、座標フレーム計算機1316と、持続姿勢計算機1318と、追跡マップおよび持続姿勢変換器1320と、持続姿勢およびPCF変換器1322と、PCFおよび画像データ変換器1324とを含む、3つの変換器とを含んでもよい。
いくつかの実施形態では、PCF追跡器1308は、アプリケーション1302によって選択可能である、オンプロンプトおよびオフプロンプトを有してもよい。アプリケーション1302は、第2のXRデバイス12.2のプロセッサによって実行可能であって、例えば、仮想コンテンツを表示してもよい。アプリケーション1302は、オンプロンプトを介して、PCF追跡器1308をオンに切り替える、コールを有してもよい。PCF追跡器1308は、PCF追跡器1308がオンに切り替えられると、PCFを生成してもよい。アプリケーション1302は、オフプロンプトを介して、PCF追跡器1308をオフに切り替え得る、後続コールを有してもよい。PCF追跡器1308は、PCF追跡器1308がオフに切り替えられると、PCF生成を終了する。
いくつかの実施形態では、サーバ20は、規準マップ120と関連付けられて以前に保存されている、複数の持続姿勢1332と、複数のPCF1330とを含んでもよい。マップ伝送機122は、規準マップ120を持続姿勢1332および/またはPCF1330とともに、第2のXRデバイス12.2に伝送してもよい。持続姿勢1332およびPCF1330は、規準マップ133と関連付けて第2のXRデバイス12.2上に記憶されてもよい。マップ2が、規準マップ133に対して位置特定すると、持続姿勢1332およびPCF1330は、マップ2と関連付けて記憶されてもよい。
いくつかの実施形態では、持続姿勢入手器1310は、マップ2のための持続姿勢を入手してもよい。PCF確認器1312は、持続姿勢入手器1310に接続されてもよい。PCF確認器1312は、持続姿勢入手器1310によって読み出された持続姿勢に基づいて、PCFをPCF1306から読み出してもよい。PCF確認器1312によって読み出されたPCFは、PCFに基づいて、画像ディスプレイのために使用される、PCFの初期群を形成してもよい。
いくつかの実施形態では、アプリケーション1302は、付加的PCFが生成されることを要求し得る。例えば、ユーザが、以前にマッピングされていないエリアに移動する場合、アプリケーション1302は、PCF追跡器1308をオンに切り替えてもよい。PCF生成システム1314は、PCF追跡器1308に接続され、マップ2が拡張し始めるにつれて、マップ2に基づいて、PCFの生成を開始してもよい。PCF生成システム1314によって生成されたPCFは、PCFベースの画像表示のために使用され得る、PCFの第2のグループを形成してもよい。
座標フレーム計算機1316は、PCF確認器1312に接続されてもよい。PCF確認器1312がPCFを読み出した後、座標フレーム計算機1316は、頭部座標フレーム96を呼び出し、第2のXRデバイス12.2の頭部姿勢を決定してもよい。座標フレーム計算機1316はまた、持続姿勢計算機1318を呼び出してもよい。持続姿勢計算機1318は、フレーム埋込生成器308に直接または間接的に接続されてもよい。いくつかの実施形態では、画像フレームは、前のキーフレームからの閾値距離、例えば、3メートルが、進行された後、キーフレームと指定されてもよい。持続姿勢計算機1318は、複数の、例えば、3つのキーフレームに基づいて、持続姿勢を生成してもよい。いくつかの実施形態では、持続姿勢は、本質的に、複数のキーフレームの座標フレームの平均であってもよい。
追跡マップおよび持続姿勢変換器1320は、マップ2および持続姿勢計算機1318に接続されてもよい。追跡マップおよび持続姿勢変換器1320は、マップ2を持続姿勢に変換し、マップ2に対する原点における持続姿勢を決定してもよい。
持続姿勢およびPCF変換器1322は、追跡マップおよび持続姿勢変換器1320およびさらにPCF確認器1312およびPCF生成システム1314に接続されてもよい。持続姿勢およびPCF変換器1322は、持続姿勢(それに対して追跡マップが変換された)をPCF確認器1312およびPCF生成システム1314からのPCFに変換し、持続姿勢に対するPCFを決定してもよい。
PCFおよび画像データ変換器1324は、持続姿勢およびPCF変換器1322およびデータチャネル62に接続されてもよい。PCFおよび画像データ変換器1324は、PCFを画像データ68に変換する。レンダリングエンジン30は、PCFおよび画像データ変換器1324に接続され、PCFに対する画像データ68をユーザに表示してもよい。
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を作成してもよい。
第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および持続姿勢を読み出し、生成し、利用し、アップロードし、ダウンロードしてもよい。
図示される実施例では、第1のXRデバイス12.1は、ローカル追跡マップ(以降、「マップ1」と称される)を生成し、マップ記憶ルーチン118は、マップ1を第1のXRデバイス12.1から受信する。マップ記憶ルーチン118は、次いで、マップ1をサーバ20の記憶デバイス上に規準マップ120として記憶する。
第2のXRデバイス12.2は、マップダウンロードシステム126と、アンカ識別システム128と、位置特定モジュール130と、規準マップ組込器132と、ローカルコンテンツ位置付けシステム134と、マップ発行器136とを含む。
使用時、マップ伝送機122は、規準マップ120を第2のXRデバイス12.2に送信し、マップダウンロードシステム126は、規準マップ120を規準マップ133としてサーバ20からダウンロードし、記憶する。
アンカ識別システム128は、世界表面決定ルーチン78に接続される。アンカ識別システム128は、世界表面決定ルーチン78によって検出されたオブジェクトに基づいて、アンカを識別する。アンカ識別システム128は、アンカを使用して、第2のマップ(マップ2)を生成する。サイクル138によって示されるように、アンカ識別システム128は、アンカを識別し続け、マップ2を更新し続ける。アンカの場所は、世界表面決定ルーチン78によって提供されるデータに基づいて、3次元データとして記録される。世界表面決定ルーチン78は、画像を実オブジェクト検出カメラ44から、深度データを深度センサ135から受信し、表面の場所および深度センサ135からのその相対的距離を決定する。
位置特定モジュール130は、規準マップ133およびマップ2に接続される。位置特定モジュール130は、マップ2を規準マップ133に対して位置特定するように繰り返し試みる。規準マップ組込器132は、規準マップ133およびマップ2に接続される。位置特定モジュール130が、マップ2を規準マップ133に対して位置特定すると、規準マップ組込器132は、規準マップ133をマップ2のアンカの中に組み込む。マップ2は、次いで、規準マップ内に含まれる欠測データで更新される。
ローカルコンテンツ位置付けシステム134は、マップ2に接続される。ローカルコンテンツ位置付けシステム134は、例えば、ユーザが世界座標フレーム内の特定の場所においてローカルコンテンツを位置特定し得る、システムであってもよい。ローカルコンテンツ自体が、次いで、マップ2の1つのアンカに結び付けられる。ローカル/世界座標変換器104は、ローカルコンテンツ位置付けシステム134の設定に基づいて、ローカル座標フレームを世界座標フレームに変換する。レンダリングエンジン30、ディスプレイシステム42、およびデータチャネル62の機能は、図2を参照して説明されている。
マップ発行器136は、マップ2をサーバ20にアップロードする。サーバ20のマップ記憶ルーチン118は、次いで、マップ2をサーバ20の記憶媒体内に記憶する。
マップマージアルゴリズム124は、マップ2と規準マップ120をマージする。物理的世界の同一または隣接する領域に関連する、2つを上回るマップ、例えば、3つまたは4つのマップが、記憶されているとき、マップマージアルゴリズム124は、全てのマップを規準マップ120にマージし、新しい規準マップ120をレンダリングする。マップ伝送機122は、次いで、新しい規準マップ120を、新しい規準マップ120によって表されるエリア内のあらゆるデバイス12.1および12.2に伝送する。デバイス12.1および12.2が、その個別のマップを規準マップ120に対して位置特定すると、規準マップ120は、レベル上げされたマップとなる。
図17は、いくつかの実施形態による、場面のマップのためのキーフレームを生成する実施例を図示する。図示される実施例では、第1のキーフレームKF1は、部屋の左壁上のドアのために生成される。第2のキーフレームKF2は、部屋の床、左壁、および右壁が衝合する、角内のエリアのために生成される。第3のキーフレームKF3は、部屋の右壁上の窓のエリアのために生成される。第4のキーフレームKF4は、壁の床上のラグの遠端におけるエリアのために生成される。第5のキーフレームKF5は、ユーザに最も近いラグのエリアのために生成される。
図18は、いくつかの実施形態による、図17のマップのための持続姿勢を生成する実施例を図示する。いくつかの実施形態では、新しい持続姿勢が、デバイスが進行された閾値距離を測定すると、および/またはアプリケーションが新しい持続姿勢(PP)を要求すると、作成される。いくつかの実施形態では、閾値距離は、3メートル、5メートル、20メートル、または任意の他の好適な距離であってもよい。より小さい閾値距離(例えば、1m)を選択することは、より多数のPPが、より大きい閾値距離と比較して、作成および管理され得るため、算出負荷の増加をもたらし得る。より大きい閾値距離(例えば、40m)を選択することは、より少数のPPが作成され、より少ないPCFが作成される結果をもたらし、PCFに結び付けられた仮想コンテンツが、PCFから比較的に大距離(例えば、30m)離れ、PCFから仮想コンテンツまでの距離の増加に伴って誤差が増加し得ることを意味するため、仮想コンテンツ設置誤差の増加をもたらし得る。
いくつかの実施形態では、PPは、新しいセッションの開始時に作成されてもよい。本初期PPは、ゼロと見なされ得、閾値距離に等しい半径を有する、円形の中心として可視化され得る。デバイスが、円形の周に到達し、いくつかの実施形態では、アプリケーションが、新しいPPを要求すると、新しいPPは、デバイスの現在の場所(閾値距離)に設置されてもよい。いくつかの実施形態では、新しいPPは、デバイスが、既存のPPをデバイスの新しい位置からの閾値距離内に見出すことが可能である場合、閾値距離に作成されないであろう。いくつかの実施形態では、新しいPP(図14におけるPP1150)が、作成されると、デバイスは、最も近いキーフレームのうちの1つまたはそれを上回るものをPPに結び付ける。いくつかの実施形態では、キーフレームに対するPPの場所は、PPが作成された時点でのデバイスの場所に基づいてもよい。いくつかの実施形態では、PPは、アプリケーションがPPを要求しない限り、デバイスが閾値距離を進行しても作成されないであろう。
いくつかの実施形態では、アプリケーションは、アプリケーションがユーザに表示するための仮想コンテンツを有するとき、PCFをデバイスから要求してもよい。アプリケーションからのPCF要求は、PP要求をトリガしてもよく、新しいPPは、デバイスが閾値距離を進行した後に作成されるであろう。図18は、例えば、キーフレームと持続姿勢との間の相対的姿勢を算出することによって、最も近いキーフレーム(例えば、KF1、KF2、およびKF3)を結び付けさせ得る、第1の持続姿勢PP1を図示する。図18はまた、最も近いキーフレーム(例えば、KF4およびKF5)を結び付けさせ得る、第2の持続姿勢PP2を図示する。
図19は、いくつかの実施形態による、図17のマップのためのPCFを生成する実施例を図示する。図示される実施例では、PCF1は、PP1と、PP2とを含んでもよい。上記に説明されるように、PCFは、PCFに対する画像データを表示するために使用されてもよい。いくつかの実施形態では、各PCFは、別の座標フレーム(例えば、世界座標フレーム)内の座標と、例えば、PCFを一意に識別する、PCF記述子とを有してもよい。いくつかの実施形態では、PCF記述子は、PCFと関連付けられるフレーム内の特徴の特徴記述子に基づいて算出されてもよい。いくつかの実施形態では、PCFの種々のコンステレーションは、より少ないデータおよびより少ないデータの伝送を要求する、持続様式において、組み合わせられ、実世界を表してもよい。
図20A-20Cは、持続座標フレームを確立および使用する実施例を図示する、概略図である。図20Aは、規準マップに対して位置特定されていない、個別のローカル追跡マップ4804A、4804Bを伴う、2人のユーザ4802A、4802Bを示す。個々のユーザに関する原点4806A、4806Bは、その個別のエリア内の座標系(例えば、世界座標系)によって描写される。各追跡マップのこれらの原点は、原点が、追跡が開始されたときのその個別のデバイスの配向に依存するため、各ユーザにローカルであり得る。
ユーザデバイスのセンサが、環境を走査するにつれて、デバイスは、図14に関連して上記に説明されるように、それらの画像が、そこから持続姿勢が作成され得る、キーフレームとして分類され得るように、持続オブジェクトを表す特徴を含有し得る、画像を捕捉してもよい。本実施例では、追跡マップ4804Aは、持続姿勢(PP)4808Aを含み、追跡マップ4804Bは、PP4808Bを含む。
また、図14に関連して上記に説明されるように、PPのうちのいくつかは、ユーザにそれをレンダリングするために仮想コンテンツの配向を決定するために使用される、PCFとして分類されてもよい。図20Bは、個別のユーザ4802A、4802Bによって装着されるXRデバイスが、PP4808A、4808Bに基づいて、ローカルPCF4810A、4810Bを作成し得ることを示す。図20Cは、持続コンテンツ4812A、4812B(例えば、仮想コンテンツ)が個別のXRデバイスによってPCF4810A、4810Bに結び付けられ得ることを示す。
本実施例では、仮想コンテンツは、仮想コンテンツが表示されるべき方法にかかわらず、仮想コンテンツを生成するアプリケーションによって使用され得る、仮想コンテンツ座標フレームを有し得る。仮想コンテンツは、例えば、仮想コンテンツ座標フレームに対して特定の場所および角度における、メッシュの三角形等の表面として規定されてもよい。その仮想コンテンツをユーザにレンダリングするために、それらの表面の場所が、仮想コンテンツを知覚することになるユーザに対して決定されてもよい。
仮想コンテンツをPCFに結び付けることは、ユーザに対する仮想コンテンツの場所を決定する際に関わる算出を簡略化し得る。ユーザに対する仮想コンテンツの場所は、一連の変換を適用することによって決定されてもよい。それらの変換のうちのいくつかは、変化し得、頻繁に更新されてもよい。それらの変換のその他は、安定し得、あまり頻繁にまたは全く更新されなくてもよい。それにもかかわらず、変換は、仮想コンテンツの場所が、ユーザに対して頻繁に更新され、現実的外観をレンダリングされた仮想コンテンツに提供し得るように、比較的に低算出負担を伴って適用され得る。
図20A-20Cの実施例では、ユーザ1のデバイスは、変換rig1_T_w1によってマップの原点を定義する、座標系に関連し得る、座標系を有する。ユーザ2のデバイスは、類似変換rig2_T_w2を有する。これらの変換は、6度の変換として表され、デバイス座標系とマップ座標系を整合させるための平行移動および回転を規定し得る。いくつかの実施形態では、変換は、2つの別個の変換として表され得、一方は、平行移動を規定し、他方は、回転を規定する。故に、変換は、算出を簡略化する、または別様に利点を提供する形態で表され得ることを理解されたい。
追跡マップの原点と個別のユーザデバイスによって識別されるPCFとの間の変換は、pcf1_T_w1およびpcf2_T_w2として表される。本実施例では、PCFおよびPPは、同一変換がまたPPを特性評価するように、同じである。
PCFに対するユーザデバイスの場所は、したがって、rig1_T_pcf1=(rig1_T_w1)*(pcf1_T_w1)等のこれらの変換の連続適用によって算出されることができる。
図20Cに示されるように、仮想コンテンツは、obj1_T_pcf1の変換を用いて、PCFに対して位置特定される。本変換は、PCFに対する物理的オブジェクトを説明する世界再構築システムからの情報を受信し得る、仮想コンテンツを生成するアプリケーションによって設定されてもよい。仮想コンテンツをユーザにレンダリングするために、ユーザのデバイスの座標系への変換が、算出され、これは、変換obj1_t_w1=(obj1_T_pcf1)*(pcf1_T_w1)を通して、仮想コンテンツ座標フレームを追跡マップの原点に関連させることによって算出され得る。その変換は、次いで、さらなる変換rig1_T_w1を通して、ユーザのデバイスに関連され得る。
仮想コンテンツの場所は、仮想コンテンツを生成するアプリケーションからの出力に基づいて変化し得る。それが変化すると、ソース座標系から目的地座標系へのエンドツーエンド変換が、再算出され得る。加えて、ユーザの場所および/または頭部姿勢も、ユーザが移動するにつれて変化し得る。結果として、変換rig1_T_w1が、変化し得るのと同様に、ユーザの場所または頭部姿勢に依存する、任意のエンドツーエンド変換も変化するであろう。
変換rig1_T_w1は、ユーザの位置を物理的世界内の定常オブジェクトに対して追跡することに基づいて、ユーザの運動に伴って更新されてもよい。そのような追跡は、上記に説明されるように、画像のシーケンスを処理するヘッドホン追跡コンポーネント、またはシステムの他のコンポーネントによって実施されてもよい。そのような更新は、PP等の定常基準フレームに対するユーザの姿勢を決定することによって行われてもよい。
いくつかの実施形態では、ユーザデバイスの場所および配向は、最も近くの持続姿勢に対して決定されてもよい、または、本実施例では、PPとしてのPCFが、PCFとして使用される。そのような決定は、デバイス上のセンサを用いて捕捉された現在の画像内において、PPを特性評価する、特徴点を識別することによって、行われてもよい。立体視画像分析等の画像処理技法を使用して、それらの特徴点に対するデバイスの場所が、決定されてもよい。本データから、本システムは、関係rig1_T_pcf1=(rig1_T_w1)*(pcf1_T_w1)に基づいて、ユーザの運動と関連付けられる変換の変化を計算し得る。
システムは、算出上効率的である順序において、変換を決定および適用してもよい。例えば、rig1_T_pcf1をもたらす測定からrig1_T_w1を算出する必要性は、ユーザ姿勢を追跡することと、持続姿勢上に構築されるPPまたはPCFに対する仮想コンテンツの場所を定義することとの両方によって、回避され得る。このように、仮想コンテンツのソース座標系からユーザのデバイスの目的地座標系への変換は、表現(rig1_T_pcf1)*(obj1_t_pcf1)に従う測定された変換に基づいてもよく、第1の変換は、システムによって測定され、後者の変換は、レンダリングのための仮想コンテンツを規定するアプリケーションによって供給される。仮想コンテンツがマップの原点に対して位置付けられる、実施形態では、エンドツーエンド変換は、マップ座標とPCF座標との間のさらなる変換に基づいて、仮想オブジェクト座標系をPCF座標系に関連させ得る。仮想コンテンツが、それに対してユーザ位置が追跡されているものと異なるPPまたはPCFに対して位置付けられる、実施形態では、2つの間の変換が、適用されてもよい。そのような変換は、固定されてもよく、例えば、両方が現れる、マップから決定されてもよい。
変換ベースのアプローチは、例えば、センサデータを処理し、追跡マップを構築する、コンポーネントを伴う、デバイス内に実装されてもよい。そのプロセスの一部として、それらのコンポーネントは、持続姿勢として使用され得る、特徴点を識別してもよく、これは、ひいては、PCFに変えられてもよい。それらのコンポーネントは、図17-19に関連して上記に説明されるように、マップのために生成される持続姿勢の数を限定し、持続姿勢間の好適な間隔を提供する一方、ユーザが、物理的環境内の場所にかかわらず、持続姿勢場所に十分に近接し、ユーザの姿勢を正確に算出することを可能にし得る。ユーザに最も近い持続姿勢が、ユーザ移動、追跡マップに対する精緻化、または他の原因の結果として、更新されるにつれて、PP(または使用されている場合、PCF)の場所に依存する、ユーザに対する仮想コンテンツの場所を算出するために使用される、変換のいずれかが、少なくとも、ユーザがその持続姿勢から離れるように移動するまで、使用のために、更新および記憶されてもよい。なお、変換を算出および記憶することによって、仮想コンテンツの場所が更新される度の算出負担は、比較的に短待ち時間を伴って実施され得るほど比較的に低くなり得る。
図20A-20Cは、追跡マップに対する位置付けを図示し、各デバイスがその独自の追跡マップを有する。しかしながら、変換は、任意のマップ座標系に対して生成されてもよい。XRシステムのユーザセッションを横断したコンテンツの存続は、持続マップを使用することによって達成され得る。ユーザの共有体験はまた、それに対して複数のユーザデバイスが配向され得る、マップを使用することによって促進され得る。
下記により詳細に説明される、いくつかの実施形態では、仮想コンテンツの場所は、複数のデバイスのいずれかがマップを使用し得るようにフォーマットされる、規準マップにおける座標に関連して規定されてもよい。各デバイスは、追跡マップを維持し得、追跡マップに対するユーザの姿勢の変化を決定してもよい。本実施例では、追跡マップと規準マップとの間の変換は、「位置特定」のプロセスを通して決定されてもよく、これは、追跡マップ内の構造(1つまたはそれを上回る持続姿勢等)と規準マップの1つまたはそれを上回る構造(1つまたはそれを上回るPCF等)をマッチングさせることによって実施されてもよい。
下記にさらに説明されるものは、このように規準マップを作成および使用するための技法である。
I. マップ作成プロセス
ユーザは、ユーザが、その現在の環境と以前に相互作用する、またはそこに訪問していない、その現在の環境を以前に走査していない、またはARシステムが、ユーザの環境を認識することに失敗する場合、その環境のマップを作成してもよい。図21は、マップ作成プロセス2100の例示的フローチャートを図示する。マップ作成プロセス2100の実施例は、図22Aに図示されるような新しいユーザマップ作成フロー2200または図22Bに図示されるような既存のユーザマップ作成フロー2201を含むことができる。マップ作成プロセス2100は、限定ではないが、開始ブロック2110、走査ブロック2112、マップ認識ブロック2114、マップ品質ブロック2116、決定ブロック2118、コンテンツ復元ブロック2120、マップ保存ブロック2122、およびランドスケープ進入ブロック2124を含むことができる。
マッピング開始ブロック2110では、ARシステムは、ユーザの環境の走査またはマッピングを開始するかどうかを決定することができる。例えば、ARシステムは、開始条件が環境の走査を開始するために満たされるかどうかを決定することができる。いくつかの実施例では、開始条件は、システムによる新しいおよび/または熟知されていない場所の中へのユーザの移動の検出、1つまたはそれを上回るセンサからの入力、および/またはユーザ入力を含むことができる。ユーザ入力は、1つまたはそれを上回るプロンプトに対する肯定または否定応答を含むことができる。1つまたはそれを上回るプロンプトは、ユーザが、新しいユーザまたは既存のユーザであるかどうか、ユーザが、その環境を以前に走査し、マップを作成しているかどうか、またはプロンプトを開始するために使用されるプログラムのタイプ等の任意の数のARシステム条件に基づいて、異なり得る。
例えば、図22Aに図示されるように、新しいユーザのためのマッピング開始プロンプトは、新しいユーザに特有の(画面00-画面6として標識されるようなブロック2210、2212に示されるような)1つまたはそれを上回るユーザインターフェースを含むことができる。例えば、ユーザインターフェースは、ウェルカムインターフェースを含むことができる。ウェルカムインターフェースは、ユーザに、ユーザの環境を走査または走査し続けるようにプロンプトする、ダイアログを含むことができる。いくつかの実施例では、ウェルカムインターフェースは、ユーザ入力を受信することができる。ARシステムは、そのユーザ入力に基づいて、走査を開始または開始しないことができる。加えて、または代替として、ARシステムは、ユーザ入力に基づいて、別のプロンプトをユーザに提示してもよい。加えて、または代替として、マッピング開始プロンプトは、ブロック2212において、マッピング開始プロンプトを含むことができる。マッピング開始プロンプトは、ユーザの環境を走査またはマッピングするプロセスと関連付けられる、情報を含むことができる。加えて、または代替として、マッピング開始プロンプトは、ユーザの環境のマッピングまたは走査を開始する、またはユーザの環境のマッピングまたは走査をスキップするためのプロンプトを含むことができる。ARシステムは、プロンプトに応答して、ユーザ入力を受信することができる。ARシステムは、その入力に基づいて、マッピングを開始してもよい、または開始しなくてもよい。
別の実施例では、図22Bに図示されるように、既存のユーザのためのマッピング開始プロンプトは、既存のユーザと関連付けられる、(画面00-画面6として標識されるようなブロックまたは画面2230、2232に示されるような)1つまたはそれを上回るユーザインターフェースを含むことができる。例えば、ユーザインターフェース2230は、認識インターフェースを含むことができる。認識インターフェースは、ユーザに、前のマップを選択し、コンテンツをユーザの環境に復元するようにプロンプトする、ダイアログを含むことができる。加えて、または代替として、インターフェース2230は、マップの選択をスキップする、または新しいマップを生成するためのプロンプトを含むことができる。故に、インターフェースは、ユーザ入力に基づいて、マッピングを開始する、または開始せず、保存されたマップに進入する、またはユーザを別のプロンプトに移動させることができる。加えて、または代替として、マッピング開始プロンプトは、マップ選択プロンプトと別個に、またはその一部として、マッピング開始プロンプトを含むことができる。マッピング開始プロンプトは、ユーザが、走査プロセスの間、作成するであろう、マップに関する名称を選択するためのプロンプトを含むことができる。ARシステムは、次いで、その入力に基づいて、またはそれを使用して、マッピングまたは走査を開始することができる。例えば、ユーザは、マップが、オフィス、自宅、学校、または他の場所であることを選択してもよく、ARシステムは、ユーザ入力に基づいて、新しく作成されたマップをタグ付けしてもよい。
ARシステムが、マッピングが開始されるであろうことを決定する場合、本システムは、ブロック2112に進み、ユーザの環境を走査またはマッピングしてもよい。ARシステムが、アクティブマッピングが開始されないであろうことを決定する場合、本システムは、ブロック2124において、ARランドスケープに進入することができる。図22Aおよび22Bに図示されるように、ARランドスケープは、拡張現実コンテンツと関連付けられる、ブロック2224、2244において示されるようなアプリケーションまたはユーザインターフェースを含むことができる。
加えて、または代替として、ARシステムは、ユーザの環境を受動的に走査またはマッピングすることができる。例えば、ARシステムが、アクティブマッピングが開始されないであろう(またはユーザが完了に先立って、アクティブマッピングから退出する)ことを決定する、インスタンスでは、ARシステムは、ARランドスケープに進入後、ユーザの環境をマッピングまたは走査することができる。したがって、有利なこととして、マップ品質が、セッションがARランドスケープ内で終了する前に、十分な閾値に到達する場合、ユーザの現在の環境と関連付けられる、ユーザコンテンツは、ゲーム化されたフローまたはアクティブ走査プロセスを介して、能動的にマッピングされない場合でも、その環境と関連付けられて読み出されることができる。その環境が、将来的に認識される場合、ARシステムは、ユーザに、その後の時間において、その場所を命名またはタグ付けするようにプロンプトしてもよい。しかしながら、マップ品質が、十分な閾値に到達しない場合、ARシステムは、後の使用のために、コンテンツを保存または復元しなくてもよい。
走査ブロック2112では、ARシステムは、図28-34Cを参照してさらに詳細に説明される、または図22Aのブロック2214、2216、2218、2220、または図22Bのブロック2234、2236、2238、2240に示される、1つまたはそれを上回るプロセス等の走査プロセスを開始することができる。有利なこととして、走査ブロック2112における走査プロセスは、ゲーム化された要素を有し、ユーザに、その環境を動き回り、その空間内のデータを収集するように指示することに役立つ、プロセスであってもよい。例えば、下記の図28-34Cを参照して説明されるように、ARシステムは、ユーザの周囲の環境の1つまたはそれを上回るグラフィック(ウェイポイントとも称される)を生成および表示し、ユーザに、終了基準が満たされるまで、グラフィックと相互作用するように指示してもよい。本明細書で使用されるように、ウェイポイントは、マップ内の特定の場所をおよび/またはマップ内の特定の場所のグラフィック(または他のインジケーション)指し得る。いくつかの実施例では、ウェイポイントは、マップ内の特定の場所をマークし、および/またはユーザにウェイポイント場所に向かって指示する、グラフィックを含んでもよい。ユーザと1つまたはそれを上回るグラフィックの相互作用の間、ARシステムは、ユーザの環境についてのデータを収集してもよい。
いくつかの実施例では、ARシステムは、ユーザの空間が、マップ認識ブロック2114において既知または認識されるかどうかをチェックしてもよい。ARシステムは、走査ブロック2112の間または後に、本チェックを実施してもよい。例えば、ARシステムは、ブロック2112において、走査プロセスを実施してもよく、ARシステムは、走査プロセスの間、インターバルを空けて、ユーザの環境が既知の環境にマッチングするかどうかをチェックしてもよい(例えば、ARシステムは、ユーザの現在の環境に見出される1つまたはそれを上回るPCFとユーザの保存されたマップ内の1つまたはそれを上回るPCFをマッチングさせることができる)。マップが、ARシステムによって認識される場合、ARシステムは、ブロック2124においてランドスケープに進入する前に、ブロック2120において、認識されたマップと関連付けられる、ARコンテンツを復元することができる。マップが、ARシステムによって認識されない場合、本システムは、ブロック2116において、マップ品質をチェックすることができる。
マップ品質ブロック2116では、ARシステムは、走査ブロック2112の間に収集された(および/または仮想世界マップ内に記憶されるデータと組み合わせられた)データに基づいて生成されたマップが、現在および/または将来的使用の間、高品質ユーザ体験を提供するために十分に高い品質であるかどうかをチェックすることができる。品質基準は、ユーザの環境内のキーフレーム、PCF、またはメッシュと関連付けられる他のデータの数等のマップ品質を査定するための任意の好適な基準であることができる。例えば、ARシステムは、十分なPCFが、収集されたデータに基づいて、ユーザの空間を将来的走査において識別可能にするために見出されている、または生成されているかどうかを決定してもよい。PCFの数は、ユーザの環境内の1つ、2つ、3つ、または5つのPCF等の好適な数であってもよい。しかしながら、他の数もまた、可能性として考えられ得る。例えば、特定の環境のために必要なPCFの数は、集められた走査データおよび/または環境と以前に関連付けられるマップデータの分析に基づいて等、ARシステムによって動的に決定されてもよい。いったんARシステムが、マップが品質閾値に達することが決定されると、ARシステムは、ブロック2122において収集されたデータを使用して、マップを保存してもよい。
保存ブロック2122では、ARシステムは、ユーザまたは第三者による読出のために、マップを遠隔またはローカルメモリに保存してもよい。加えて、または代替として、本システムは、ユーザに、名称または地球物理的場所等、メタデータとしてマップとともに記憶されるべきマップと関連付けられる他の情報を入力するようにプロンプトしてもよい。図22Aに図示されるように、本システムは、ブロック2222において、インターフェースを表示し、ユーザに、マップ場所を選択するまたは入力するようにプロンプトしてもよい。加えて、または代替として、図22Bに図示されるように、ARシステムは、ブロック2242において、ユーザに、新しいマップが作成または保存されたことを信号伝達する、確認応答インターフェースまたはメッセージを表示してもよい。
マップ品質が、マップ品質閾値に達することに失敗する、または別様に、品質ユーザ体験を提供するために十分ではない場合、ARシステムは、決定ブロック2118において、ユーザがユーザの環境の走査またはマッピングを継続することを所望するかどうかを決定することができる。例えば、ARシステムは、ユーザに、走査を継続する、または走査プロセスを停止するようにプロンプトすることができる。ARシステムは、ブロック2112において、ユーザ入力をプロンプトに対する応答として受信し、環境の走査を継続する、またはブロック2124において、ランドスケープに進入してもよい。
加えて、または代替として、ARシステムは、任意の時点で、マップ作成プロセス2100を停止し、ブロック2124において、ランドスケープに進入することができる。例えば、ユーザは、ブロック2112において、走査プロセスの間、終了またはスキップコマンドを入力することができる。ARシステムは、次いで、ブロック2112において、走査プロセスを中止する、またはブロック2124において、ランドスケープに進入することができる。
J. 再位置特定プロセス
ARシステムは、拡張現実コンテンツを(例えば、保存された世界マップから)ユーザの環境内に復元するために、ユーザを保存または別様に認識された空間の中に再位置特定または設置しようと試み得る。図23Aは、図23Bに示される例示的AR画像を参照して解説されるであろう、例示的再位置特定プロセス2300を図示する。再位置特定プロセス2300は、マップ決定ステップ2310、再位置特定チェック2312、走査ブロック2314、再位置特定チェック2316、決定ブロック2318、コンテンツ復元ブロック2310、およびランドスケープ進入ブロック2322を含むことができる。実施形態に応じて、図23の方法は、より少ないまたは付加的ブロックを含んでもよく、および/またはブロックは、図示されるものと異なる順序で実施されてもよい。
マップ決定ブロック2310では、ARシステムは、ユーザのために復元するためのマップを決定することができる。例えば、ARシステムは、ユーザの検出された地理的場所と関連付けられる、マップを自動的に決定してもよい。別の実施例では、図23Bのブロック2410に図示されるように、ARシステムは、ユーザが既存のマップを選択する(および/またはARシステムによって自動的に選択されたマップを確認する)ためのプロンプトを表示することができる。加えて、または代替として、ARシステムは、ユーザが新しいマップを作成する、または走査またはマッピングプロセスをスキップするためのプロンプトを表示することができる。ユーザが、既存のマップを選択する場合、ARシステムは、ユーザを、選択されたマップを含み得る、既知の環境の中に再位置特定しようと試み、ブロック2312に移動してもよい。ユーザが、新しいマップを作成することを選択する場合、ARシステムは、図21-22Bを参照して説明されるようなマップ作成プロセスに移動してもよい。ユーザが、マッピングまたは走査プロセスをスキップすることを選択する場合、ARシステムは、ブロック2322において、ランドスケープに進入してもよい。加えて、または代替として、ユーザが、マッピングまたは走査プロセスをスキップすることを選択する場合、ARシステムは、ユーザの環境に関するデータを受動的に収集し、受動的に収集されたデータを用いて、再位置特定してもよい。図23Bに図示されるように、ARランドスケープは、ブロック2420において示されるインターフェース等、拡張現実コンテンツと関連付けられる、アプリケーションまたはユーザインターフェースを含むことができる。走査プロセスをスキップするためのユーザ入力を受信後、ARシステムは、ARランドスケープと関連付けられる、アプリケーションを開始してもよい。
再位置特定チェック2312では、ARシステムは、再位置特定がブロック2310において決定されたマップ内ですでに生じているかどうかを決定することができる。ARシステムは、例えば、既知の環境内に記憶される少なくとも1つのPCF(またはいくつかの実装では、ある他の最小量のPCF)が、ユーザの環境内に見出されるかどうかを決定することによって、再位置特定が生じていることを決定してもよい。例えば、既知の環境は、1つまたはそれを上回るPCFを有してもよい。ARシステムを使用する過程の間、ARシステムは、ユーザの環境についてのデータを受動的または能動的に収集してもよい。収集されたデータは、ユーザの現在の環境内のPCFを含むことができる。ブロック2312では、ARシステムは、ユーザの現在の環境内の任意のPCFが既知の環境内のそれらにマッチングするかどうかを決定してもよい。PCFが、マッチングする場合、ARシステムは、再位置特定が生じていることを決定し得る。PCFが、マッチングしない場合、ARシステムは、再位置特定が生じていないことを決定し得る。ARシステムが、再位置特定が生じていることを決定する場合、ARシステムは、ブロック2322においてランドスケープに進入する前に、ブロック2320において、認識されたマップと関連付けられる、コンテンツを復元してもよい。マップが、ARシステムによって認識されない場合、ARシステムは、移動し、ブロック2314において、環境を走査またはマッピングしてもよい。
走査ブロック2314では、ARシステムは、図28-34Cを参照して説明される、または図24のブロック2412、2414、2416に示される、1つまたはそれを上回るプロセス等の走査プロセスを開始することができる。有利なこととして、マップ作成を参照して上記に説明されるように、走査ブロック2314における走査プロセスは、ゲーム化された要素を有し、ユーザに、その環境を動き回り、その空間内のデータを収集するように指示することに役立つ、プロセスであってもよい。例えば、下記の図28-34Cを参照して説明されるように、ARシステムは、ユーザの周囲の環境の1つまたはそれを上回るグラフィックを生成および表示し、ユーザに、終了基準が満たされるまで、ウェイポイントと相互作用するように指示してもよい。ユーザと1つまたはそれを上回るグラフィックの相互作用の間、ARシステムは、ユーザの環境のマップを構築するために、ユーザの環境についてのデータを収集してもよい。
再位置特定チェック2316では、ARシステムは、ユーザの空間が既知または認識されるかどうかをチェックすることができる。ARシステムは、走査ブロック2314の間または後に、本チェックを実施してもよい。例えば、ARシステムは、ブロック2314において、走査プロセスを実施してもよく、ARシステムは、走査プロセスの間、インターバルを空けて、ユーザの環境が既知の環境にマッチングするかどうかをチェックしてもよく、ARシステムは、ユーザの現在の環境内に見出される1つまたはそれを上回るPCFとユーザの選択されたマップまたは別の保存されたマップ内の1つまたはそれを上回るPCFをマッチングさせることができる。しかしながら、再位置特定の他の方法も、可能性として考えられる。マップが、ARシステムによって認識される場合、ARシステムは、ブロック2322において、ランドスケープに進入する前に、ブロック2320において、認識されたマップと関連付けられる、ARコンテンツを復元することができる。マップが、ARシステムによって認識されない場合、ブロック2318に進むことができる。
決定ブロック2318では、ARシステムは、走査を継続するかどうかを決定することができる。例えば、再位置特定が、生じていない場合、ARシステムは、新しいマップを生成する、または1つまたはそれを上回るPCFをユーザの環境内で見出すために、より多くのデータを必要とし得る。しかしながら、ARシステムは、走査プロセスを停止させるためのタイムアウト、ユーザ入力、または他の終了基準を利用してもよい(例えば、ブロック2314の間)。ARシステムは、次いで、ユーザに、ユーザの環境を走査し続けるかどうかに関する入力をプロンプトしてもよい(例えば、走査プロセス2314によって)。ARシステムが、例えば、ユーザ入力または他の基準に起因して、走査が継続すべきであることを決定する場合、ARシステムは、ブロック2314において、走査を継続し得る。ARシステムが、走査が継続べきではないをすることを決定する場合、ARシステムは、ブロック2322において、ランドスケープに進入し得る。
加えて、または代替として、ARシステムは、任意の時点で、マップ作成プロセス2300の1つまたはそれを上回る側面を停止し、ブロック2322において、ランドスケープに進入することができる。いくつかの実施例では、ARシステムは、ユーザ入力に応答して、マップ作成プロセス2300の1つまたはそれを上回る側面を停止してもよい。例えば、ユーザは、ブロック2314において、走査プロセスの間、終了またはスキップコマンドを入力することができる。ARシステムは、次いで、ブロック2314において、走査プロセスを中止する、またはブロック2322において、ランドスケープに進入することができる。
加えて、または代替として、ARシステムは、ユーザの環境を受動的に走査またはマッピングすることができる。例えば、ARシステムが、ユーザを既知のマップの中に正常に再位置特定しない、インスタンスでは、ARシステムは、ARランドスケープに進入後、ユーザの環境をマッピングまたは走査することができる。したがって、有利なこととして、ユーザが、既知の環境を見出さず、ユーザの現在の環境のマップ品質が、セッションがARランドスケープ内で終了する前に、十分な閾値に到達しない場合、ARシステムは、ユーザに、環境を新しいマップとして保存するようにプロンプトしてもよい。
K. マップ許可および記憶
ユーザによって生成されたマップは、1人またはそれを上回るユーザによるアクセス性のための複数の方法において記憶されてもよい。例えば、ユーザは、マップをそのデバイス上または外部メモリ(例えば、遠隔サーバ上の「クラウド」記憶装置)上に記憶してもよい。ユーザは、そのデバイス上またはクラウド記憶装置上のいずれかに記憶されるとき、クラウド記憶装置へのアクセスを伴う、認可されたユーザのみが、マップコンテンツにアクセスし、それと相互作用し得るように、マップへのアクセスのための許可を設定してもよい。いくつかの実施例では、マップは、ユーザデバイス上に記憶され、マップを生成したユーザにのみアクセス可能であってもよい。いくつかの実施例では、マップは、ユーザデバイス上に記憶され、そのユーザデバイスの全てのユーザにアクセス可能であってもよい。いくつかの実施例では、マップは、外部メモリ(例えば、ローカルでネットワーク化されたデバイスまたはクラウド記憶装置)内に記憶されてもよい。いくつかの実施例では、記憶されたマップは、そのマップを生成したユーザにのみアクセス可能であってもよい。いくつかの実施例では、マップは、外部メモリ(例えば、ローカルでネットワーク化されたデバイスまたはクラウド記憶装置)内に記憶されてもよい。いくつかの実施例では、記憶されたマップは、その外部メモリにアクセスするための許可を伴う、ユーザにアクセス可能であってもよい。図24Aは、ユーザ生成マップのための記憶設定およびアクセス許可を設定するための例示的プロセス3400を図示する。
ブロック3402では、ARシステムは、マップ許可を決定してもよい。マップ許可は、現在生成されようとしている、または新しく生成されたマップのアクセスおよび記憶と関連付けられる、1つまたはそれを上回るマップ特有のユーザ設定を含むことができる。いくつかの実施例では、マップ特有のユーザ設定は、マップデータを記憶するための所望の場所を含むことができる。所望の場所は、デバイス専用記憶、パーソナル世界記憶、共有世界記憶、それらのある組み合わせ、またはマップデータのための他の記憶を含むことができる。デバイス専用記憶は、マップの内部またはデバイス上記憶を含むことができる。デバイス専用記憶は、マップデータへのアクセスを、生成されたマップを記憶するデバイスのユーザに限定し得る。パーソナル世界記憶は、マップデータの外部またはクラウドベースの記憶を含むことができる。パーソナル世界記憶装置は、マップデータへのアクセスを、マップを生成したユーザ等の具体的ユーザに限定し得る。共有世界記憶は、マップデータの外部またはクラウドベースの記憶を含むことができる。共有世界記憶は、マップデータへのアクセスを複数のユーザに可能にし得る。
共有世界データへのアクセスおよび/またはその可視性は、ARシステム、ユーザ、または第三者によって設定される認可に基づいて決定されてもよい。ユーザ設定に従って記憶され得るようなマップデータは、マップ点データ、PCF、環境メッシュデータ、音響データ、照明データ、他のモデル情報、認識されるオブジェクト、同等物、またはそれらのある組み合わせ等のマップと関連付けられる、任意の量の情報を含むことができる。いくつかの実施例では、マップ許可は、マップデータの少なくとも一部の可視性および/または相互作用性のある組み合わせを含むことができる。例えば、マップ許可は、マップデータが、ユーザに可視、不可視、選択可能、選択不能、相互作用可能、相互作用不能、同等物、またはそれらのある組み合わせであることを含むことができる。
加えて、または代替として、ARシステムは、ユーザが、異なるタイプのマップデータのために異なるマップ記憶場所を選定することを可能にしてもよい。有利なこととして、これは、ユーザが、知覚されるプライバシおよび/または他の必要性に基づいて、そのマップ共有を個人化することを可能にし得る。例えば、ユーザは、世界特徴(PCFおよび/または1つまたはそれを上回る疎マップ等)を共有世界記憶に記憶することを選び得るが、世界モデル(稠密メッシュ、照明、平面検出、または音響データ等)をデバイス上にのみ記憶してもよい。世界理解(オブジェクト認識および/または場面理解等)は、ユーザが記憶場所または設定を選択するための別のオプションであり得る。いくつかの実施例では、世界理解は、デフォルトによって、世界特徴と同一場所に記憶されてもよい。他の実施例では、ユーザが、世界理解が記憶される場所を選択してもよい。
いくつかの実施例では、ARシステムは、ユーザへの1つまたはそれを上回るプロンプトに基づいて、マップ許可を決定してもよい。例えば、ARシステムは、1つまたはそれを上回るプロンプトをユーザインターフェース内に表示し、マップの1つまたはそれを上回る許可特徴に関するユーザ入力を受信してもよい。図24B-1、24B-2、および24B-3を参照すると、ARシステムは、記憶および/またはマップ許可に関する1つまたはそれを上回るオプションを提示し、マップデータと関連付けられる、記憶および/またはマップ許可を決定してもよい。いくつかの実施例では、ユーザは、マップカテゴリ化に基づいて、1つまたはそれを上回るオプションを視認および/または選択してもよい。例えば、ユーザは、世界特徴および/または世界モデルを、デバイス上に、パーソナル世界内に、または共有世界内に記憶するためのオプションを提示されてもよい。加えて、または代替として、ユーザは、世界理解を記憶するためのオプションを提示されてもよい。いくつかの実施例では、世界理解は、デフォルトによって、世界モデルと同一場所内に記憶されてもよい。そのような場合、ユーザは、世界理解を保存するか、または保存しないかのいずれかのためのオプションを提示されてもよい。いくつかの実施例では、世界理解は、世界モデルと異なる場所に記憶されてもよい。オプションをユーザに提示する際、ARシステムは、オプションを、可視および選択可能にする、可視であるが、選択不能にする、可視かつ選択された状態にする、または別の様式においてしてもよい。オプションが選択される場合、ARシステムは、選択を示してもよい。ARシステムは、例えば、チェックマークをオプションの隣に示すことによって、またはオプションの他のハイライトを通して、選択を示してもよい。
図24B-1に図示されるように、ARシステムが、ユーザが世界特徴をデバイス上に記憶することを所望することを決定した場合、ARシステムは、ユーザが、世界モデルをデバイス上にのみ記憶することを可能にし得、および/またはユーザが、世界理解を記憶することを可能にし得ない。ユーザは、次いで、それらのオプションのある組み合わせを選択してもよい。例えば、図24B-1を参照すると、第1のオプション構成では、世界特徴は、デバイス上に記憶されてもよく、世界モデルは、デバイス上に記憶されてもよく、世界理解は、記憶されなくてもよい。
図24B-2に図示されるように、ARシステムが、ユーザが世界特徴をパーソナル世界内に記憶することを所望することを決定した場合、ARシステムは、世界モデルのための記憶オプションの選択に基づいて、ユーザが、世界モデルをデバイス上またはパーソナル世界内に記憶することを可能にし得、および/またはユーザが、世界理解を記憶することを可能にし得ない。ユーザは、次いで、それらのオプションのある組み合わせを選択してもよい。例えば、図24B-2を参照すると、第2のオプション構成では、世界特徴は、パーソナル世界内に記憶されてもよく、世界モデルは、デバイス上に記憶されてもよく、世界理解は、記憶されなくてもよい。第3の構成では、世界特徴は、パーソナル世界内に記憶されてもよく、世界モデルは、パーソナル世界内に記憶されてもよく、世界理解は、記憶されなくてもよい。第4の構成では、世界特徴は、パーソナル世界内に記憶されてもよく、世界モデルは、デバイス上に記憶されてもよく、世界理解は、パーソナル世界上に記憶されてもよい。第5の構成では、世界特徴は、パーソナル世界内に記憶されてもよく、世界モデルは、パーソナル世界内に記憶されてもよく、世界理解は、パーソナル世界内に記憶されてもよい。
図24B-3に図示されるように、ARシステムが、ユーザが世界特徴を共有世界内に記憶することを所望することを決定した場合、ARシステムは、世界モデルのための記憶オプションの選択に基づいて、ユーザが、世界モデルをデバイス上または共有世界内に記憶することを可能にし得、および/またはユーザが、世界理解を記憶することを可能にし得ない。ユーザは、次いで、それらのオプションのある組み合わせを選択してもよい。例えば、図24B-3を参照すると、第6のオプション構成では、世界特徴は、共有世界内に記憶されてもよく、世界モデルは、デバイス上に記憶されてもよく、世界理解は、記憶されなくてもよい。第7の構成では、世界特徴は、共有世界内に記憶されてもよく、世界モデルは、共有世界内に記憶されてもよく、世界理解は、記憶されなくてもよい。第8の構成では、世界特徴は、共有世界内に記憶されてもよく、世界モデルは、デバイス上に記憶されてもよく、世界理解は、共有世界上に記憶されてもよい。第9の構成では、世界特徴は、共有世界内に記憶されてもよく、世界モデルは、共有世界内に記憶されてもよく、世界理解は、共有世界上に記憶されてもよい。
マップデータと記憶および/または許可のある組み合わせが、本明細書に説明されるが、マップデータの記憶および/または許可の任意の組み合わせも、可能性として考えられる。例えば、マップデータは、世界特徴、世界モデル、または世界理解としてカテゴリ化されてもよい。
図24Aを継続して参照すると、ブロック3404では、ARシステムは、ユーザの環境の走査またはマッピングを開始するかどうかを決定することができる。例えば、ARシステムは、開始条件が環境の走査を開始するために満たされるかどうかを決定することができる。いくつかの実施例では、開始条件は、新しいおよび/または熟知されていない場所の中へのユーザの移動のシステムによる検出、1つまたはそれを上回るセンサからの入力、および/または付加的マッピングが実施されるべきであることを示すユーザ入力を含むことができる。ユーザ入力は、1つまたはそれを上回るプロンプトに対する肯定または否定応答を含むことができる。1つまたはそれを上回るプロンプトは、ユーザが、新しいユーザまたは既存のユーザであるかどうか、ユーザが、その環境を以前に走査し、マップを作成しているかどうか、またはプロンプトを開始するために使用されるプログラムのタイプ等の任意の数のARシステム条件に基づいて、異なり得る。
ブロック3406では、ARシステムは、ユーザの環境をマッピングおよび/または走査してもよい。マッピングまたは走査プロセスは、図28-34Cを参照して説明されるような走査プロセスを含むことができる。ブロック3406におけるマッピングまたは走査プロセスは、例えば、ユーザの環境内に見出される1つまたはそれを上回るPCFと保存されたマップ内の1つまたはそれを上回るPCFをマッチングさせることによって、マップを認識するためのステップを含むことができる。ブロック3406におけるマッピングまたは走査プロセスは、収集された(および/または仮想世界マップ内に記憶されるデータと組み合わせられた)データに基づいて生成されたマップが、現在および/または将来的使用の間、高品質ユーザ体験を提供するために十分に高い品質であるかどうかをチェックするステップを含むことができる。品質基準は、ユーザの環境内のキーフレーム、PCF、またはメッシュと関連付けられる他のデータの数等、マップ品質を査定するための任意の好適な基準であることができる。例えば、ARシステムは、十分なPCFが、収集されたデータに基づいて、ユーザの空間を将来的走査において識別可能にするために見出されている、または生成されているかどうかを決定してもよい。
ブロック3408では、ARシステムは、マップ許可に従って、マップを記憶してもよい。例えば、ARシステムは、ブロック3402において決定された許可に従って、マップを遠隔またはローカルメモリに保存してもよい。加えて、または代替として、本システムは、ユーザに、名称または地球物理的場所等、メタデータとしてマップとともに記憶されるべきマップと関連付けられる、他の情報を入力するようにプロンプトしてもよい。本システムは、ブロック2222(例えば、図22A)において、インターフェースを表示し、ユーザに、マップ場所を選択または入力するようにプロンプトしてもよい。加えて、または代替として、ARシステムは、ブロック2242(例えば、図22B)において、ユーザに、新しいマップが作成または保存されたことを信号伝達する、確認応答インターフェースまたはメッセージを表示してもよい。
ブロック3410では、ARシステムは、ランドスケープに進入してもよい。例えば、ARシステムは、ユーザが、共有マップと関連付けられる、コンテンツにアクセスすることを可能にしてもよい。アプリケーションは、ユーザが、拡張現実コンテンツを他のユーザと協調して体験することを可能にしてもよい。
L. 例示的マップ相互作用
1. ローカルマップ相互作用
いくつかの実施例では、ユーザは、プライベートまたはローカルで保存されたマップと相互作用してもよい。例えば、ユーザは、ユーザによる将来的使用のために、プライベート自宅またはオフィスマップを保存してもよい。図25A-25Hは、ローカル再位置特定およびマップ作成を含む、ローカルマップとの例示的ユーザ相互作用を図示する。
図25Aは、選択されたマップの中への例示的再位置特定を図示する。例えば、ユーザは、マップの中への位置特定および/または将来的再位置特定を可能にする意図を伴って、「自宅」等のマップを選択または命名してもよい。本プロセスは、例えば、図23のブロック2310の間に生じてもよい。ARシステムは、ユーザの環境内のデータの能動的または受動的収集によって、PCFを能動的または受動的に見出してもよい。ARシステムは、次いで、それらの見出されたPCFを選択されたマップにマッチングさせ、ユーザを選択されたマップの中に再位置特定してもよい。
図25Bは、保存されたマップの中への未選択マップを用いた例示的再位置特定を図示する。例えば、ARシステムは、ユーザがユーザの自宅内の別の部屋に進入する等、ユーザが新しい環境の中に移動するにつれて、PCFを自動的に走査してもよい。ユーザは、その中で位置特定するためのマップを拒否または別様に選択しなくてもよい。ARシステムは、ユーザの環境内のデータの能動的または受動的収集によって、PCFを能動的または受動的に見出してもよい。ARシステムは、次いで、それらの見出されたPCFを保存されたまたは別様に既知のマップ内のPCFにマッチングさせ、ユーザを保存されたまたは別様に既知のマップの中に再位置特定してもよい。
図25Cは、選択されたマップを用いた例示的再位置特定と、選択されたマップの中への再位置特定の失敗とを図示する。例えば、ユーザは、選択されたマップの中で位置特定する意図を伴って、「自宅」等のマップを選択または命名してもよい。ARシステムは、ユーザの環境内のデータの能動的または受動的収集によって、PCFを能動的または受動的に見出してもよい。ARシステムは、収集されたPCFと保存または選択されたマップ内のPCFのマッチングを見出さない場合がある。ARシステムは、次いで、同一または異なる名称を用いて、PCFを第2のマップとして保存する、または選択または保存されたマップの未接続部分として、PCFを保存してもよい。いくつかの実施例では、ARシステムによるさらなるデータ収集は、図25Dに図示されるように、選択されたマップの中への再位置特定の後続成功をもたらし得る。
いくつかの実装では、ARシステムは、ユーザを同時に複数のマップの中に再位置特定しようと試み得る。したがって、ユーザが、マップ(例えば、「自宅」)を再位置特定段階において選択する場合(またはユーザが、マップを選択しない場合)でも、ARシステムは、代わりに、ユーザの現在の場所と関連付けられ得る、複数の部屋の再位置特定の試行に起因して、異なる部屋(例えば、「オフィス」)と関連付けられる、コンテンツを識別してもよい。ARシステムは、次いで、ユーザに、彼らがその他の部屋の中に再位置特定されていることを通知してもよい(例えば、「あなたのオフィスへようこそ」)。
図25Dは、再位置特定の失敗後の選択されたマップの中への例示的再位置特定の成功を図示する。例えば、ARシステムは、異なるマップのほぼ同一場所において、マップを保存する、生成する、または別様に、それと相互作用してもよい。ARシステムは、いくつかの実施例では、2つのマップを接続し、両方のマップからのデータを包含するようにマップを事実上拡張させてもよい。ARシステムは、第1のマップの中で位置特定し、次いで、ユーザの環境内の第2のマップからのPCFの存在を決定する結果として、マップを接続してもよい。ARシステムは、例えば、ARシステムが、最初に、選択されたマップの中で位置特定し得なかった場合、2つのマップをマージするために、位置特定されたマップ内のPCFを探してもよい。そのようなインスタンスでは、ARシステムは、次いで、後の位置特定のために、または選択されたマップの拡張のために、選択されたマップのあるバージョンとして、作成されたマップを保存してもよい。例えば、図25Cに図示されるように、ユーザは、「自宅」マップを選択してもよい。ARシステムは、ユーザを以前に保存された「自宅」マップの中に再位置特定することが不可能である場合がある。結果として、ARシステムは、新しく作成されたマップを「自宅」のあるバージョンとして保存してもよい。ARシステムは、続いて、ユーザの環境のより多くのものが、走査された、または「自宅」のオリジナルバージョンからのPCFが、ユーザの環境に見出された後、「自宅」のオリジナルバージョンと「自宅」の新しく作成されたバージョンを接続してもよい。
有利なこととして、マップをマージすることは、ARシステムが、大マップまたは環境の中で位置特定することを可能にすることができる。例えば、ARシステムは、PCFを命名されたマップから見出し、命名されたマップの中に再位置特定できないが、依然として、本システムが、新しい場所を生成せずに、命名されたマップ上に構築し得るように、見出されたPCFと命名されたマップをタグ付けしてもよい。
図25Eは、再位置特定の成功の別の実施例を図示する。例えば、ユーザは、再位置特定のためのマップを選択してもよい。再位置特定の間、ユーザの環境を走査する際、ARシステムは、第2のマップのためのPCFを見出し得る。ARシステムは、次いで、マップを接続してもよい。ARシステムは、例えば、ARシステムが、最初に、選択されたマップの中で位置特定し得なかった(図25Dに図示されるように)またはARシステムが、異なる選択されたマップを走査する間、第2のマップと関連付けられるPCFを見出す場合、2つのマップを接続するために、位置特定されたマップ内のPCFを探してもよい。
図25Fは、選択されたマップおよび追加されるPCFを用いた例示的再位置特定を図示する。例えば、図23および24に説明されるような再位置特定プロセスの間、ARシステムは、選択されたマップ内に以前に保存されていない、1つまたはそれを上回るPCFを識別してもよい。いくつかの実施例では、ARシステムは、1つまたはそれを上回る識別されたPCFを選択されたマップの中に追加または保存してもよい。
図25Gは、新しいPCFを用いた例示的マップ作成を図示する。例えば、ユーザが、走査をスキップすることを決定する、または再位置特定のためのマップを選択しない場合、ARシステムは、ユーザの環境内のPCFを受動的に決定してもよい。いくつかの実施例では、ARシステムは、見出されたPCFを命名されていない、またはタグ付けされていないマップの中に保存してもよい。図25Hに図示されるように、命名されていない、またはタグ付けされていないマップは、ユーザの環境の後続走査の間、命名されたマップとマージまたは接続されてもよい。
2. 外部記憶されたマップの相互作用
いくつかの実施例では、ユーザは、ユーザが作成していない、マップと相互作用することを所望し得る。例えば、ユーザは、ARシステムの第三者または他のユーザによって作成された外部記憶されたマップに参加するように招待される、またはそれを求めてもよい。別の実施例では、ユーザは、パブリックまたは半パブリック環境内のマップ等の公的に入手可能なマップと相互作用することを所望し得る。いくつかの実施例では、1人またはそれを上回るユーザは、外部記憶されたマップの中で位置特定してもよい。1人またはそれを上回るユーザが、外部記憶されたマップの中で位置特定すると、ユーザは、マップの仮想要素と相互作用することが可能となり得る。例えば、1人のユーザによる仮想オブジェクトの変更は、マップの中で位置特定された別のユーザによって知覚可能になり得る。例えば、2人のユーザは、仮想チェスの駒を共有仮想チェスゲーム内で移動させることが可能であってもよい。別の実施例では、チャットセッションにおける2人のユーザは、共有環境内の他のユーザによって視認可能な1人のユーザの環境内の仮想コンテンツを示す、または共有することが可能であってもよい。図26Aは、共有マップの中への例示的位置特定プロセス3300のフローチャートを示す。図26Bおよび26Cは、共有マップの中へのユーザ位置特定のための例示的グラフィカルユーザインターフェースを図示する。有利なこととして、下記に説明されるプロセスは、ユーザが、共有マップ、またはユーザがマッピングまたは作成していない、空間と関連付けられる、ARコンテンツにアクセスすることを可能にすることができる。
図26Aを参照すると、ブロック3302では、ARシステムは、共有セッションに参加する、または外部記憶されたマップの中で位置特定するための招待を受信、識別、伝送、または生成してもよい。例えば、ユーザは、第2のユーザによって、共有セッションに参加するように招待されてもよい。共有セッションは、その中で複数のユーザが、複数のユーザのうちの2人またはそれを上回る人数によって共有される、または別様に、彼らと関連付けられ得る、仮想コンテンツと相互作用する、状況を含むことができる。いくつかの実施例では、あるユーザまたは複数のユーザは、マップの中で位置特定するようにプロンプトされる、または別様に、それを決定してもよい。有利なこととして、共有マップの中に位置特定することは、ユーザが、マップと関連付けられる、情報にアクセスする、またはマップと関連付けられ得る、コンテンツを通して、共有セッション内でより良好に相互作用することを可能にし得る。マップは、外部記憶システムまたはクラウド内に記憶される、マップであってもよい。招待は、マップに参加する、またはその中で位置特定するためのプロンプトを含むことができる。例えば、1人またはそれを上回るユーザが、単一実世界空間を利用してもよい。第1のユーザは、ユーザがマップと関連付けられる仮想コンテンツにアクセスし得るように、両方のユーザが現在占有している、実世界空間のマップにアクセスするように、第2のユーザを招待してもよい。別の実施例では、ユーザは、ARシステムによって、ARシステムによって認識されるマップの中で位置特定するための招待を受信してもよい。例えば、ユーザが、映画館または美術館等のパブリック空間の中に進入し得る。ARシステムは、パブリック空間をクラウド記憶装置内のマップにマッチングするものとして認識し得る。ARシステムは、次いで、ユーザに、マップの中で位置特定、参加、または同期するように招待またはプロンプトしてもよい。いくつかの実施例では、ARシステムは、1つを上回るマップ招待を受信または伝送してもよい。例えば、1人を上回るユーザが、空間をマッピングしており、マップの中で位置特定するようにユーザを招待している場合、ARシステムは、その中で位置特定するためのマップの1つを上回る招待または選択肢を伝送してもよい。
ブロック3304では、ARシステムは、ユーザが、ブロック3302からのマップに参加するための招待を承認しているかどうかを決定してもよい。例えば、ユーザは、ARシステムに、マップ招待と関連付けられる入力を提供してもよい。入力は、マップ招待に対する承認、否認、または他の応答を含むことができる。ユーザが、承認を提供する場合、ARシステムは、ブロック3306において、ユーザ認可を決定するステップ、またはブロック3308において、環境を走査するステップに進み得る。ユーザが、否認を提供する場合、ARシステムは、ブロック3316において、ランドスケープに進入するステップに進み得る。
ブロック3302または3304に加えて、または代替として、ユーザは、ブロック3306に進み、ユーザ入力またはARシステムによって認識される条件に基づいて、環境を走査してもよい。例えば、ユーザは、入力をARシステムに提供し、マップにアクセスしてもよい。ユーザ入力は、例えば、ユーザの環境を走査し、マップを示される情報を追加することによって、パーソナル世界マップまたは他のマップ等のマップを改良するためのインジケーションを含むことができる。別の実施例では、ユーザ入力は、マップの中で位置特定するためのインジケーションを含むことができる。加えて、または代替として、ARシステムは、直接ユーザ入力を伴わずに、マップの中への位置特定のために、ユーザの環境の走査を開始してもよい。例えば、ARシステムは、ユーザが、あるマップを含有する、地理的場所内に存在することを識別し得る。ARシステムは、ユーザの入力を待機せずに、ユーザの環境のマッピングまたは走査を開始し、そのマップの中で位置特定することを試みてもよい。
ブロック3306では、ARシステムは、ユーザがマップにアクセスするための認可を有するかどうかを決定してもよい。例えば、図24を参照して上記に議論されるように、マップは、許可のセットとともに記憶されてもよい。許可は、ユーザがマップにアクセスすることができるかどうかを決定付けることに役立ち得る。マップの場合、許可は、ユーザが、マップにアクセスし、および/またはそれを更新するための認可されたユーザであるかどうかを含んでもよい。ユーザの認可状態は、現在認可されているユーザまたは他の認可源が、マップにアクセスする、またはそれを編集するためにユーザを認可しているかどうかを含むことができる。いくつかの実施例では、マップは、ユーザデバイスに外部記憶されているが、そのマップを生成したユーザのみがそのマップにアクセスし得るように、ユーザにパーソナルである、マップであってもよい。別の実施例では、マップは、マップがその中に記憶されている、クラウド記憶装置へのアクセスを伴う、全てのユーザが、マップにアクセスし得るように、パブリックであってもよい。いくつかの実施例では、あるユーザが、アクセス許可を有し得、あるユーザが、編集許可を有し得るように、階層または異なるタイプのマップ許可が存在してもよい。ユーザが、マップにアクセスする、またはそれを編集することが認可されていることが決定される場合、ARシステムは、ブロック3308に進み、ユーザの環境を走査してもよい。ユーザが、マップにアクセスする、またはそれを編集するために要求される認可を有していないことが決定される場合、ARシステムは、ブロック3316に進み、マップをロードせずに、またはそれにアクセスせずに、ランドスケープに進入してもよい。いくつかの実施例では、ユーザは、マップへのアクセスを有するが、マップを編集する許可を有していない場合がある。そのような場合、ARシステムは、ユーザが、環境を走査することを可能にするが、ユーザがマップへの任意の変更を記憶することを防止してもよい。
ブロック3308では、ARシステムは、ユーザの環境をマッピングおよび/または走査してもよい。マッピングまたは走査プロセスは、図28-34Cを参照して説明されるような走査プロセスを含むことができる。例えば、ARシステムは、その環境を通して、ユーザを誘導し、ユーザの環境内の1つまたはそれを上回るPCFを見出すことができる。ARシステムは、空間を走査する際、ユーザの識別された目的に基づいて、その環境を通して、ユーザを異なるように誘導してもよい。例えば、ユーザが、彼らがマップを更新することを示す場合、ARシステムは、情報が殆どないユーザの環境のエリアをより優先的に、ユーザを誘導し(例えば、図28-34Cを参照して説明される走査プロセスによって)、マップ内にまだない情報をマップに追加することに役立ててもよい。別の実施例では、ユーザが、彼らが、マップの中で位置特定している、またはマップの中に同期されることを示す場合、ARシステムは、情報がより多い環境のエリアを優先的に、ユーザを誘導し、ユーザを位置特定することに役立ててもよい。ブロック3308におけるマッピングまたは走査プロセスは、例えば、ユーザの環境内に見出される1つまたはそれを上回るPCFと外部記憶または保存されたマップ内の1つまたはそれを上回るPCFをマッチングさせることによって、マップを認識するためのステップを含むことができる。
ブロック3310では、ARシステムは、ユーザがマップの中で位置特定されたかどうかを決定してもよい。例えば、ARシステムは、十分なPCFが、収集されたデータに基づいて、ユーザの空間またはユーザの空間と関連付けられるマップデータを識別するために見出されている、または生成されているかどうかを決定してもよい。いくつかの実施例では、位置特定は、ユーザが外部記憶されたマップと関連付けられる1つまたはそれを上回るPCF(共有PCFとも称される)を見出すことによって定義され得る。しかしながら、他のタイプの位置特定もまた、可能性として考えられ得る。いくつかの実施例では、ユーザは、単一共有PCFを見出し、共有マップの中で正常に位置特定し得る。別の実施例では、ユーザは、マップの中で正常に位置特定するために、複数のPCFを見出し得る。位置特定の成功は、ユーザ、ARシステム、またはマップデータと関連付けられる具体的アプリケーションによって、決定されてもよい。例えば、アプリケーションは、物理的世界データおよび仮想データのより精密な環境同期を要求し得る。ARシステムは、したがって、より良好なまたはより正確な位置特定を確実にすることに役立つために、ユーザが見出すことが必要とされるPCFの数を増加させてもよい。ARシステムが、位置特定が生じたことを決定する場合、ARシステムは、ブロック3312において、位置特定されたマップと関連付けられる、マップデータをロードしてもよい。ARシステムが、位置特定が生じていないことを決定する場合、ARシステムは、ブロック3314において、走査を継続するかどうかを決定してもよい。
加えて、または代替として、ARシステムが、位置特定が、同一マップの中で位置特定するように試みている場合がある、ユーザのうちの1人またはそれを上回る人数によって生じていないことを決定する場合、ARシステムは、マップと関連付けられる、マップデータをロードしてもよい。しかしながら、マップデータは、位置特定の失敗に起因して、ユーザを横断して整合し得ない。いくつかの実施例では、複数のユーザのためのマップデータの大まかな整合が、マップと関連付けられるコンテンツの操作を通して、共通基準フレームのユーザ手動または半手動整合を通して、遂行されてもよい。例えば、共有セッションは、コンテンツの整合を達成することに役立つために、ユーザが操作するためのハンドルまたは他のコンテンツを含むことができる。大まかな整合機構は、共有実世界空間内で位置特定することに失敗したユーザに、および/または遠隔実世界空間内のユーザのために適用可能であり得る。いくつかの実施例では、大まかな整合機構は、ARシステムが位置特定が生じたことを決定するとき、位置特定における誤差または知覚される誤差を補正するために使用されることができる。
ブロック3314では、ARシステムは、走査を継続するかどうかを決定してもよい。例えば、位置特定が、生じていない場合、ARシステムは、新しいマップを生成する、またはユーザの環境内の1つまたはそれを上回るPCFを見出すために、より多くのデータを必要とし得る。しかしながら、ARシステムは、走査プロセスを停止させるためのタイムアウト、ユーザ入力、または他の終了基準を利用してもよい。ARシステムは、次いで、ユーザに、ユーザの環境を走査し続けるかどうかに関する入力をプロンプトしてもよい(例えば、ブロック3308における走査プロセスによって)。ARシステムが、例えば、ユーザ入力または他の基準に起因して、走査が継続すべきであることを決定する場合、ARシステムは、ブロック3308において、走査を継続し得る。ARシステムが、走査が継続べきではないことを決定する場合、ARシステムは、ブロック3308において、ランドスケープに進入し得る。
加えて、または代替として、ARシステムは、任意の時点で、プロセス3300を停止し、ブロック3316において、ランドスケープに進入することができる。例えば、ユーザは、ブロック3308において、走査プロセスの間、終了またはスキップコマンドを入力することができる。ARシステムは、次いで、走査プロセスを中止する、またはランドスケープに進入することができる。
ブロック3318では、ARシステムは、ユーザに、位置特定のステータスを通知してもよい。例えば、ユーザが、正常に位置特定されている場合、ARシステムは、マップの中で位置特定されたユーザまたは他のユーザ(同一マップの中で現在位置特定されている、または位置特定を試みている者等)に、位置特定の成功を通知してもよい。別の実施例では、ユーザが、正常に位置特定されていない場合、ARシステムは、マップの中で位置特定を試みたユーザまたは他のユーザ(同一マップの中で現在位置特定されている、または位置特定を試みている者等)に、位置特定の失敗を通知してもよい。
図26Bは、パブリックまたは世界マップの中での位置特定2500の間の例示的グラフィカルユーザインターフェースを図示する。例えば、招待ブロック2510では、ARシステムは、ユーザが共有マップに参加するための招待を受信またはに送信することができる。共有マップは、他のユーザにアクセス可能なマップであってもよい。ユーザが、ブロック2518において招待を承認する場合、ARシステムは、次いで、ARシステムが共有マップの中で位置特定されたかどうかを決定してもよい。ARシステムが、共有マップの中で位置特定されない場合、ARシステムは、ユーザに、ブロック2512において、その環境の走査プロセスを開始するようにプロンプトしてもよい。ARシステムが、共有マップの中で位置特定される場合、ARシステムは、ユーザに、ブロック2512において、ユーザの環境の走査を開始するようにプロンプトしてもよい。ARシステムは、次いで、ではブロック2514において、例えば、ゲーム化された走査プロセスを通してユーザを誘導することによって、ユーザの環境を走査してもよい。ARシステムは、次いで、ブロック2516において、位置特定が成功するかどうかをチェックしてもよい。位置特定が、成功する場合、ARシステムは、ブロック2520において、コンテンツを復元してもよい。位置特定が、成功しない場合、ARシステムは、ユーザに、その環境の走査を継続する、または新しいマップを生成するようにプロンプトしてもよい。いったんARシステムが、位置特定が完了した、または他の終了基準が満たされたことを決定すると、ARシステムは、ブロック2522において、ARランドスケープに進入してもよい。例えば、ARシステムは、ユーザが共有マップと関連付けられるコンテンツにアクセスすることを可能にし得る、アプリケーションにハンドオフしてもよい。アプリケーションは、ユーザが、他のユーザと協調して、拡張現実コンテンツを体験することを可能にしてもよい。
図26Cは、共有プライベートマップの中での位置特定2501の間の例示的グラフィカルユーザインターフェースを図示する。例えば、招待ブロック2530では、ユーザは、ユーザが共有マップに参加するための招待を送信または受信してもよい。共有マップは、他のユーザにアクセス可能なマップであってもよい。ユーザが、招待を承認する場合、ARシステムは、ブロック2532において、共有マップと関連付けられるマーカを受信してもよい。マーカは、共有マップと関連付けられる、1つまたはそれを上回るPCFを含むことができる。ARシステムは、ユーザに、ブロック2534において、ユーザの環境を走査することの許可を有効にするようにプロンプトしてもよい。ユーザ許可の受信に応じて、ARシステムは、ブロック2536において、ユーザの環境を走査してもよい。いったんARシステムが、ユーザの環境内のマーカを認識すると、ARシステムは、ブロック2538において、例えば、視覚的、可聴、または触知フィードバックによって、位置特定の完了成功を示してもよい。いったんARシステムが、位置特定が完了した、または他の終了基準が満たされたことを決定すると、ARシステムは、ブロック2540において、ARランドスケープに進入してもよい。例えば、ARシステムは、ユーザが、共有マップと関連付けられるコンテンツにアクセスすることを可能にし得る、アプリケーションにハンドオフしてもよい。アプリケーションは、ユーザが、他のユーザと協調して、拡張現実コンテンツを体験することを可能にしてもよい。
3. マップキュレーション
いくつかの実施例では、ARシステムは、マップ品質を改良するために、図28-34Cを参照して説明されるような走査プロセスを利用してもよい。例えば、すでに生成されたマップは、メッシュデータまたはPCFデータ等の完全情報を欠いている場合がある。ARシステムは、それらのエリアをマッピングすることによってマップ品質を改良するために、走査プロセスを使用して、高品質データを欠いている、そのマップのエリアにユーザを誘導してもよい。マップ品質を改良することは、マップキュレーションと称され得る。そのようなマップキュレーションは、そのまたは別のマップを以前に構築または生成したユーザによって行われてもよい。例えば、ソフトウェア開発者および/またはユーザが、マップ品質を改良するために、マップキュレーションモードに入ってもよい。他の実施例では、複数のユーザが、マップをキュレートしてもよく、データは、マップ品質を改良するためにマージされてもよい。「拡張現実マップキュレーション」と題され、2020年1月27日に出願された、関連米国特許出願第62/966267号は、本明細書で議論され、あらゆる目的のために、参照することによってその全体として本明細書に組み込まれる、実施形態の中に実装され得る、マップキュレーションプロセスに関するさらなる詳細を提供する。
ブロック3502では、ARシステムは、キュレートするためのマップを決定してもよい。例えば、ARシステムは、ユーザの検出された地理的場所と関連付けられる、マップを自動的に決定してもよい。別の実施例では、ARシステムは、ユーザがキュレートするための既存のマップを選択する(および/またはARシステムによって自動的に選択されたマップを確認する)ためのプロンプトを表示することができる。ユーザが、マップを選択する場合、ARシステムは、ブロック3504において、マップがさらなるキュレーションを必要とするかどうかを決定する。いくつかの実施例では、ユーザが、マップを選択する場合、ARシステムは、ブロック3506に進み、ブロック3504において、選択されたマップが、マップ品質閾値を満たすかどうかを決定せずに、環境を走査してもよい。
ブロック3504では、ARシステムは、選択されたマップがマップ品質閾値を満たすかどうかを決定してもよい。例えば、ARシステムは、マップ品質が、マップが改良を必要とする、または改良を必要としないほど十分であるかどうかを決定することができる。マップ品質が、閾値品質を満たさない場合、ARシステムは、ブロック3506に進み、ユーザの環境を走査してもよい。いくつかの実施例では、マップ品質閾値は、環境のために利用可能なマップデータの閾値パーセンテージ、環境内の保存されたPCFの数、同等物、またはそれらのある組み合わせを含むことができる。
ブロック3504に加えて、または代替として、ARシステムは、品質にかかわらず、ユーザにマップをキュレートさせてもよい。例えば、ユーザは、マップのサイズを新しい領域の中に拡張させることを所望し得る。いくつかの実施例では、マップは、高品質であるが、ユーザが所望するほど大きくないまたは完全ではない場合がある。ARシステムは、したがって、ユーザがキュレーションプロセスを終了することを所望するまで、環境の走査を継続し、マップをキュレートしてもよい。
ブロック3506では、ARシステムは、ユーザの環境をマッピングおよび/または走査してもよい。マッピングまたは走査プロセスは、図28-34Cを参照して説明されるような走査プロセスを含むことができる。例えば、ARシステムは、その環境を通してユーザを誘導し、ユーザの環境内の1つまたはそれを上回るPCFを見出すことができる。例えば、ユーザが、彼らがマップを更新することを示す場合、ARシステムは、情報が殆どないユーザの環境のエリアにより優先的に、ユーザを誘導し(例えば、図28-34Cを参照して説明される走査プロセスによって)、共有マップ内にまだない情報を共有マップに追加することに役立ててもよい。別の実施例では、ARシステムは、図28-34Cを参照して説明されるような1つまたはそれを上回る基準に従って、ユーザの空間全体を通してユーザを誘導してもよい。ブロック3308におけるマッピングまたは走査プロセスは、例えば、ユーザの環境内に見出される1つまたはそれを上回るPCFと共有または保存されたマップ内の1つまたはそれを上回るPCFをマッチングさせることによって、マップを認識するためのステップを含むことができる。
いくつかの実施例では、ブロック3506における走査プロセスの間、ARシステムは、識別されたマップ品質に基づいて、ユーザを誘導してもよい。例えば、マップのエリアは、マップの他のエリアより高いマップ品質を有し得る。ARシステムは、より低い品質を伴うマップのエリアに、それらのエリア内でデータを集め、そこのマップ品質を改良するために、ユーザを誘導してもよい。マップ品質は、限定ではないが、マップのそのエリアで収集されたデータの量を含む、任意の数の基準によって定義され得る。いくつかの実施例では、ユーザが、その空間を動き回るにつれて、ARシステムは、ユーザに、マップキュレーションが必要とされる、または完了された量を知らせるために、ユーザに、現在のマップ品質を通知してもよい。通知は、上記の関連出願にさらに詳細に説明されるように、現在のマップ品質のユーザへのグラフィカル、触知、可聴、または他のフィードバックを伴うことができる。一実施例では、通知は、正規化されたマップ品質インデックスまたは値と関連付けられる、進行度バーを含むことができる。別の実施例では、通知は、マップの色コーディングを含むことができる。
ブロック3508では、ARシステムは、走査を継続するかどうかを決定してもよい。例えば、ARシステムは、マップ品質が走査を停止するために十分であるかどうか、または走査が継続すべきであるかどうかを識別してもよい。マップ品質が、依然として、低い場合、ARシステムは、より多くのデータを必要とし、ユーザを誘導し、ユーザの環境内の1つまたはそれを上回るPCFを見出すことに役立ててもよい。しかしながら、ARシステムは、走査プロセスを停止させるためのタイムアウト、ユーザ入力、または他の終了基準を利用してもよい。ARシステムは、次いで、ユーザに、ユーザの環境を走査し続けるかどうかに関する入力をプロンプトしてもよい(例えば、ブロック3506における走査プロセスによって)。ARシステムが、例えば、ユーザ入力または他の基準に起因して、走査が継続すべきであることを決定する場合、ARシステムは、ブロック3506において、走査を継続し得る。ARシステムが、走査が継続すべきではないことを決定する場合、ARシステムは、ブロック3512において、キュレーションを終了し得る。いくつかの実施例では、終了基準のみが、ユーザが、彼らが終了することを決定するまで、その空間のマッピングまたは走査を継続し得るように、ユーザ入力であってもよい。有利なこととして、これは、ARシステムがマッピングまたは走査プロセスのための終了基準を決定することを伴わずに、ユーザが、彼らが彼らがキュレートしているマップ内で所望する通りの詳細を得ることを可能にする。
M. 環境走査プロセス
上記で参照されるように、ユーザをマップの中で再位置特定または位置特定する、またはマップを作成する際、ARシステムは、ユーザの環境を走査し、ユーザの環境内のPCFまたは他のマーカを認識する必要があり得る。いくつかの実施例では、ARシステムは、ユーザが、自然に、その環境を動き回るにつれて、データを受動的に収集し、ユーザの環境を走査してもよい。しかしながら、いくつかの実施例では、ARシステムは、その環境を歩き回り、観察するようにユーザを促すことによって、環境を能動的に走査してもよい。ARシステムは、ユーザの環境全体を通して、ウェイポイントまたは表示されるグラフィックを使用して、本走査を実施するようにユーザを促してもよい。加えて、ARシステムは、データ収集の成功と関連付けられる、アニメーションを表示してもよい。図26は、ユーザの環境を走査するためにARシステムによって実装され得る、例示的走査プロセス2600を図示する。例えば、走査プロセスは、ウェイポイント決定ブロック2610、ユーザ指示ブロック2612、データ収集ブロック2614、および終了基準決定ブロック2616を含むことができる。
ウェイポイント決定ブロック2610では、ARシステムは、1つまたはそれを上回るグラフィック(例えば、可視化)をユーザの環境内に設置するための場所を決定することができる。例えば、ARシステムは、図29を参照して説明されるようなプロセスに従って、グラフィックの場所を決定することができる。いくつかの実施例では、ARシステムは、ユーザの環境内に分散される、1つまたはそれを上回るグラフィックのための場所を決定することができる。ARシステムは、限定ではないが、ユーザの環境のエリア内で収集されたデータまたはメッシュの存在または不在を含む、任意の数の基準に基づいて、場所を選択してもよい。加えて、または代替として、ARシステムは、ユーザまたは他の選択されたウェイポイント場所からの距離に基づいて、場所を選択してもよい。有利なこととして、ARシステムは、その環境のより多くのものを探索するようにユーザを促すために、ユーザまたは他のウェイポイント場所からさらに離れた場所を選択してもよい。
ARシステムは、ユーザの環境について収集されたデータを分析するための任意の好適な手段によって、ウェイポイント場所を決定してもよい。例えば、ARシステムは、1つまたはそれを上回る外向きに向いたカメラまたはセンサを使用して、ユーザの環境についてのデータを収集してもよい。ARシステムは、潜在的ウェイポイント場所を決定する際、1つまたはそれを上回る基準に従って、データを分析してもよい。例えば、ARシステムは、外向きに向いたカメラからのデータに基づいて、32個の潜在的ウェイポイント場所を決定してもよい。ARシステムは、ユーザおよび他の潜在的または決定されたウェイポイント場所からの距離に基づいて、32個の潜在的場所を順序付けてもよい。ARシステムは、次いで、順序付けられた場所のサブセットを選択し、ユーザに表示してもよい。
ユーザ指示ブロック2612では、ARシステムは、ブロック2610において決定されたウェイポイント場所における1つまたはそれを上回るグラフィックを使用して、ユーザに、その環境を探索するように指示することができる。例えば、ARシステムは、ブロック2610において決定された1つまたはそれを上回る場所において、1つまたはそれを上回るグラフィックを表示してもよい。ARシステムは、順次または一度に、グラフィックを表示する、順次または一度に、グラフィックの一部を表示する、またはそれらのある組み合わせであってもよい。ARシステムは、例えば、誘導アニメーション(例えば、下記の図30を参照して説明される誘導アニメーションプロセス参照)を表示することによって、ウェイポイント場所のうちの1つまたはそれを上回るものにユーザを誘導してもよい。ARシステムは、ユーザの環境内の複数のウェイポイント場所にユーザを誘導するように、誘導アニメーションを使用してもよい。例えば、6つのウェイポイント場所が存在する場合、ARシステムは、順次、6つのウェイポイント場所のそれぞれにユーザを誘導することができる。別の実施例では、ARシステムは、一度に、単一ウェイポイント場所を決定し、選択されたウェイポイント場所のそれぞれにユーザを誘導することができる。ARシステムは、次いで、すでに完了されたウェイポイント場所に基づいて、後続ウェイポイント場所を決定し、後続ウェイポイント場所にユーザを誘導してもよい。
データ収集ブロック2614では、ARシステムは、ユーザの環境と関連付けられる、データを収集することができる。例えば、ARシステムは、ARシステムの頭部搭載型ディスプレイ上の1つまたはそれを上回る外向きに向いたカメラ等のARシステムと関連付けられる1つまたはそれを上回るセンサを使用して、データを収集することができる。ARシステムは、走査プロセス2600のステップのいずれかの前、間、または後に、データを収集してもよい。例えば、ARシステムは、ウェイポイント場所決定ブロック2610またはユーザ指示ブロック2612の間、データを収集してもよい。加えて、または代替として、ARシステムは、ブロック2610において決定されたウェイポイント場所におけるグラフィックとの相互作用の間、データを収集してもよい。例えば、ユーザが、例えば、ウェイポイント場所の閾値距離内に来ることによって、グラフィックと相互作用すると、ARシステムは、そのウェイポイント場所の近くのユーザの環境についてのデータを収集してもよい。有利なこととして、ARシステムは、ブロック2612において、ユーザをウェイポイント場所に誘導しながら、データを収集し、ブロック2614において、ブロック2610において決定されたウェイポイント場所においてグラフィックと相互作用しながら、より多くの量の詳細なデータを収集することができる。故に、ARシステムは、データが収集される必要がある場所として識別され得る、ユーザの環境のエリアにおいて、さらに詳細なデータを収集し得る。
終了基準決定ブロック2616では、ARシステムは、より多くのデータが収集される必要があるかどうか、または走査プロセス2600を終了すべきかどうかを決定することができる。ARシステムは、1つまたはそれを上回る走査終了基準が満たされたかどうかを分析することによって、走査プロセスを終了することを決定することができる。例えば、ARシステムは、ブロック2614において、ウェイポイント場所におけるデータを収集することができる。ARシステムは、ユーザが、閾値数のウェイポイント場所においてデータを収集した、最小量のPCFを識別した、および/またはユーザの環境内の適正な量のメッシュを決定するための他の基準を満たしたかどうかを決定することができる。いくつかの実施形態では、終了基準は、位置特定プロセスが生じるための基準にマッチングしてもよい。ARシステムが、ユーザが閾値数のウェイポイント場所においてデータを収集したことを決定する場合、ARシステムは、走査プロセスを終了してもよい。ARシステムが、ユーザが閾値数のウェイポイント場所においてデータを収集していないことを決定する場合、ARシステムは、ブロック2610において、走査プロセス2600を継続または再開してもよい。別の実施例では、ARシステムは、プロセス2600の間、任意の時点で、走査プロセスを停止またはスキップするためのユーザからの入力を受信することができる。ユーザが、走査プロセス2600を停止した場合、ARシステムは、走査プロセスを終了してもよい。ARシステムが、走査プロセス2600を停止していない場合、ARシステムは、走査プロセスを継続し得る。別の実施例では、ARシステムは、閾値量のデータが閾値タイムフレーム以内に収集されたかどうかを決定することができる。ARシステムが、十分なデータが閾値タイムフレーム以内に収集されていないことを決定する場合、ARシステムは、プロセス2600を終了してもよい。ARシステムが、閾値タイムフレームが経過しておらず、より多くのデータが収集されるべきであることを決定する場合、ARシステムは、走査プロセスを継続し得る。
N. 例示的ウェイポイント生成
上記に議論されるように、図28を参照して説明されるような走査プロセスの側面は、ユーザの環境内のウェイポイントまたはグラフィック場所の決定を含むことができる。図27は、例示的グラフィックスポーンプロセス2700を図示する。例えば、グラフィックスポーンプロセス2700は、レイキャスティングブロック2712、レイキャスティングタイプブロック2714、順序決定ブロック2716、選択ブロック2718、ディスプレイブロック2720、および終了基準ブロック2722を含むことができる。
レイキャスティングブロック2712では、ARシステムは、レイキャスティングをユーザの周囲に送信することができる。種々の実施形態では、レイキャスティング技法は、ユーザの環境のデジタルバージョン内に、実質的に横方向幅が殆どない、細いデジタル光線をキャスティングするステップ、または実質的横方向幅を伴う光線(例えば、円錐または錐台)をキャスティングするステップを含んでもよい。例えば、光線は、ユーザから離れるように延在し、実世界のデジタルコピー内の1つまたはそれを上回る実または仮想オブジェクトと交差し得る、デジタル線であってもよい。いくつかの実施形態では、実オブジェクトは、実世界のデジタルコピー内のメッシュによって表されてもよい。いくつかの実施形態では、仮想オブジェクトは、レンダリング可能3Dアセット(例えば、例えば、メッシュおよび対応するメッシュレンダラデータを伴う、3Dモデル)によって表されてもよい。レイキャスティングは、ユーザの環境の中への特定の方向における限定されたデータ収集を迅速に取得するために使用されてもよい。例えば、限定されたデータ収集は、メッシュの方向における表面またはコンテンツの存在、メッシュがレイキャスティングの方向に存在するかどうか、任意の見出されるコンテンツまたはメッシュまでの距離、同等物、またはそれらのある組み合わせを含むことができる。レイキャスティングは、水平に、垂直に、および/または半径方向に、ユーザと関連付けられる原点から延在してもよい。例えば、レイキャスティングは、1つまたはそれを上回るレイキャスティングがユーザによって装着される頭部搭載型ディスプレイと垂直であるように、水平に、ユーザの頭部から延在してもよい。ARシステムは、任意の数のレイキャスティングを送信してもよい。例えば、ARシステムは、ユーザの頭部に中心合わせされる32本のレイキャスティングを送信することができる。しかしながら、他の数のレイキャスティングも、可能性として考えられる。例えば、特定の環境のために必要なレイキャスティングの数は、環境と以前に関連付けられる集められた走査データおよび/またはマップデータの分析等に基づいて、ARシステムによって動的に決定されてもよい。
レイキャスティングタイプブロック2714では、ARシステムは、ブロック2712からの1つまたはそれを上回るレイキャスティングに関するタイプを割り当てる、決定する、またはカテゴリ化することができる。例えば、レイキャスティングは、ユーザの環境と関連付けられる情報、メッシュ、または他のARコンテンツを含んでもよい。ARシステムは、個別のレイキャスティングから取得される情報に従って、レイキャスティングのうちの1つまたはそれを上回るものをカテゴリ化してもよい。例えば、ARシステムは、当射、無当射、または観察されないタイプのレイキャスティングとして、レイキャスティングのそれぞれをカテゴリ化してもよい。いくつかの実施形態では、本システムは、空間をグリッドによって分割することによって、環境を一連のセルに分割してもよい。当射レイキャスティングは、レイキャスティングの原点からの閾値距離内のコンテンツと交差する、またはメッシュまたはPCF等のコンテンツを含有する、セルと交差する、レイキャスティングを含むことができる。無当射レイキャスティングは、レイキャスティングの原点からの閾値距離内の、無コンテンツを含有する、セルと交差する、レイキャスティング、またはメッシュまたはPCF等のコンテンツと交差する、レイキャスティングを含むことができる。観察されないレイキャスティングは、レイキャスティングの原点からの閾値距離内にコンテンツが存在するかどうかが未知である、レイキャスティングを含むことができる。観察されないレイキャスティングは、ユーザがデータを収集するためのレイキャスティングと関連付けられる場所にいる可能性がないことを示し得る。ARシステムは、次いで、さらなるメッシュデータの入手を可能にするであろう、ユーザ移動を促すために、グラフィックを表示するための場所を決定する際、さらなる分析のために、観察されないレイキャスティングタイプおよび/または他のレイキャスティングタイプを選択してもよい。
順序決定ブロック2616では、ARシステムは、レイキャスティングと関連付けられる1つまたはそれを上回る基準に従って、レイキャスティングを配列することができる。例えば、ARシステムは、レイキャスティングの原点から離れた最も遠い点から最も近い点までの距離に従って、観察されないレイキャスティングを順序付けることができる。有利なこととして、距離に従ってレイキャスティングを配列することは、ARシステムが、ユーザからさらに離れるようにグラフィックを表示するための場所を決定または優先的に選択することを可能にすることができる。ユーザからさらに離れるようにグラフィックを表示することは、ARシステムが、場所がユーザにより近い場合よりも、その環境のより多くのものを探索するようにユーザを誘導することを可能にすることができる。いくつかの実施例では、他の順序付け基準も、使用されてもよい。
選択ブロック2718では、ARシステムは、ユーザの環境内のある場所を決定する、またはある場所にグラフィックを表示することができる。ARシステムは、レイキャスティングに基づいて、ユーザのFOV内のほぼ中心または別の場所にある、グラフィックを表示するための場所を選択してもよい。別の実施例では、ARシステムは、ユーザのFOVの外側の場所にある、グラフィックを表示してもよい。いくつかの実施例では、ARシステムは、レイキャスティングからのデータを分析し、より多くのデータ収集を使用し得る、ユーザの環境内の場所を決定してもよい。例えば、ARシステムは、ある場所がメッシュ化されていないことを決定し得る。ARシステムは、メッシュ化されていない場所を優先的に選択してもよい。加えて、または代替として、ARシステムは、ユーザの閾値距離内または外の場所を選択してもよい。例えば、ARシステムは、初期ウェイポイント場所がユーザからの閾値距離にあることを決定し得る。いくつかの実施例では、閾値距離は、1メートル、2メートル、5メートル、または他の距離であることができる。いくつかの実施例では、ARシステムは、ウェイポイントグラフィックのためのスポーン場所を決定する際、1つを上回るを基準を使用してもよい。例えば、ARシステムは、ユーザから閾値距離(例えば、2メートル)を上回り、かつ別の選択された場所(例えば、前のウェイポイント)から閾値距離(例えば、2メートル)を上回る場所、またはメッシュ化されたエリアを決定してもよい。有利なこととして、初期ウェイポイント場所をユーザからの閾値距離に設置することは、ユーザが、その環境を動き回り、グラフィックと相互作用することを促すことができる。
いくつかの実施例では、ARシステムは、ユーザに表示されたグラフィックの数に従って、ウェイポイント場所を選択してもよい。例えば、ARシステムが、任意のグラフィックをユーザに表示していない場合、走査プロセスが、最初に、開始し、または走査プロセスが、再開し、ARシステムは、グラフィックをユーザのFOV内に表示してもよい。加えて、または代替として、ARシステムは、順序決定ブロック2716において決定された順序に従って、グラフィックを最良場所に表示してもよい。ARシステムは、ARシステムがグラフィックをユーザにすでに表示している場合、グラフィックを最良場所に表示してもよい。
グラフィック表示ブロック2720では、ARシステムは、1つまたはそれを上回るグラフィックを決定されたウェイポイント場所のうちの1つまたはそれを上回るものに表示してもよい。例えば、ARシステムは、グラフィックを単一ウェイポイント場所に表示してもよい。いったんデータが、ウェイポイント場所で収集されると、ARシステムは、第2のウェイポイント場所を決定し、ブロック2712からプロセス2700を繰り返してもよい。加えて、または代替として、ARシステムは、グラフィックを1つを上回る場所に表示してもよい。
終了基準ブロック2722では、ARシステムは、より多くのグラフィックが表示される必要があるかどうか、またはグラフィック表示プロセス2700を終了すべきかどうかを決定することができる。ARシステムは、1つまたはそれを上回る終了基準が満たされたかどうかを分析することによって、プロセス2700を終了することを決定することができる。例えば、ARシステムは、ウェイポイント場所を決定し、ウェイポイント場所におけるデータを収集することができる。ARシステムは、ユーザが閾値数のウェイポイント場所においてデータを収集したかどうかを決定することができる。ARシステムが、ユーザが閾値数のウェイポイント場所においてデータを収集したことを決定する場合、ARシステムは、走査プロセスを終了してもよい。ARシステムが、ユーザが閾値数のウェイポイント場所においてデータを収集していないことを決定する場合、ARシステムは、プロセス2700を継続または再開し、より多くのグラフィックを表示してもよい。別の実施例では、ARシステムは、プロセス2700の間、任意の時点で、走査プロセスを停止またはスキップするためのユーザからの入力を受信することができる。ユーザが、走査プロセスを停止している場合、ARシステムは、プロセス2700を終了してもよい。
O. 例示的ウェイポイント誘導
ARシステムによってスポーンまたは生成された、表示されるグラフィックまたはウェイポイントと相互作用するようにユーザを促すために、ARシステムは、ユーザの環境内のスポーンされたウェイポイントにユーザを誘導してもよい。図30は、インジケータリンググラフィックを使用して、ユーザの環境内のウェイポイントまたは複数のウェイポイントにユーザを誘導するための例示的誘導プロセス2800を図示する。例示的インジケータリング段階が、図31Aおよび31Bに図示される。インジケータリンググラフィックは、ウェイポイントを識別し、ウェイポイントに向かってユーザの移動を促すために使用され得る、グラフィックの一実施例である。他の実装では、任意の他のグラフィックおよび/またはオーディオ誘導が、ユーザに提供されてもよい。例えば、プロセス2800は、視野決定ブロック2810、FOV外誘導ブロック2812、FOV内誘導ブロック2814、更新ブロック2816、アクティブ化決定ブロック2818、および終了ブロック2820を含むことができる。
視野決定ブロック2810では、ARシステムは、ウェイポイントがユーザの視野(FOV)内にあるかどうかを決定することができる。ウェイポイントは、グラフィックのいくつかまたは全てがユーザのFOV内にある場合、ユーザのFOV内にあると見なされ得る。例えば、ARシステムは、ウェイポイントの閾値部分がユーザのFOV内にある場合、ウェイポイントがユーザのFOV内にあることを決定し得る。閾値部分は、10パーセント、25パーセント、50パーセント、または別のパーセンテージを含むことができる。加えて、または代替として、ARシステムは、ウェイポイントがユーザのFOV内で(例えば、ユーザの環境内のオブジェクトの背後に)隠蔽されるかどうかを決定してもよい。ARシステムが、ウェイポイントがユーザのFOV内で隠蔽されていることを決定する場合、ARシステムは、ウェイポイントをユーザのFOVの外側にあるものとして取り扱い得る。加えて、または代替として、ARシステムは、隠蔽されたウェイポイントをユーザのFOV内の隠蔽されていない場所に再位置特定し、ウェイポイントをオクルードされていない場所に移動させる、アニメーション等を用いて、新しい場所にユーザを誘導してもよい。ARシステムが、ウェイポイントがユーザのFOV内にあることを決定する場合、ARシステムは、ARシステムがウェイポイントがユーザのFOVの外側にあることを決定する場合と異なるグラフィックを使用して、ウェイポイントにユーザを誘導してもよい。例えば、ARシステムが、ウェイポイントがユーザのFOVの外側にあることを決定する場合、ARシステムは、ブロック2812において、図29Aに図示されるような部分的リングを使用して、ユーザをウェイポイントに誘導してもよい。ARシステムが、ウェイポイントがユーザのFOV内にあることを決定する場合、ARシステムは、ブロック2814において、図29Bに図示されるような完全リングを使用して、ユーザをウェイポイントに誘導してもよい。
FOV外誘導ブロック2812では、ARシステムは、ブロック2810において決定されるようなユーザのFOVの外側のウェイポイントにユーザを誘導してもよい。例えば、ARシステムは、ユーザが、表示されるウェイポイントに移動し、それを見出すための方向を視覚的に、聴覚的に、または別様に示してもよい。例えば、ARシステムは、図31Aに図示されるような部分的リンググラフィック2910を表示してもよい。部分的リンググラフィック2910は、曲率を有してもよい。曲率は、ピークを有してもよい。ピークは、上、下、左、または右等のウェイポイントを見出すための進行する、見る、または走査するべき方向を示してもよい。加えて、または代替として、部分的リンググラフィック2910は、弧状に配列される、いくつかのバブルまたは粒子を含むことができる。弧は、ウェイポイントを見出すために進行する、見る、または走査するべき方向を示すために、弧に沿った場所にバブルまたは粒子の増加された密度を有してもよい。
図28に戻ると、FOV内誘導ブロック2814では、ARシステムは、ブロック2810において決定されるようなユーザのFOV内のウェイポイントにユーザを誘導してもよい。例えば、ARシステムは、ユーザが、表示されるウェイポイントに移動し、それを見出すための方向を視覚的に、聴覚的に、または別様に示してもよい。例えば、ARシステムは、図31Bに図示されるように、リンググラフィック2914を表示されるウェイポイント2916の周囲に表示してもよい。リング2914は、ウェイポイントグラフィック2916の幅を上回るまたはそれに等しい、直径を有してもよい。例えば、リング2914は、ウェイポイントグラフィック2916の幅の2倍の直径を有してもよい。いくつかの実施例では、ARシステムは、ウェイポイント場所からのユーザの距離に依存するサイズにおいて、リング2914を表示してもよい。いくつかの実施例では、ARシステムは、ユーザがウェイポイント場所の閾値距離内に入るまで、固定されたサイズにおいて、リング2914を表示してもよい。いくつかの実施例では、ARシステムは、ウェイポイント2916がユーザのFOV内にある間、リング2914をウェイポイント2916の周囲に表示してもよい。
図28に戻ると、更新ブロック2816では、ARシステムは、リング等の誘導グラフィックを更新してもよい。例えば、ARシステムは、ウェイポイント場所までのユーザ近接度を決定してもよい。ARシステムは、ユーザ近接度に基づいて、誘導グラフィックの外観を変化させてもよい。例えば、ARシステムは、ウェイポイントまたは表示されるグラフィックに徐々に近づくようにリングのサイズを変化させてもよい。加えて、または代替として、ARシステムは、オーディオを再生し、または触知フィードバックを生成し、ウェイポイントまでの近接性を示してもよい。
アクティブ化決定ブロック2818では、ARシステムは、標的ウェイポイントがアクティブ化されているかどうかを決定してもよい。例えば、ARシステムは、標的ウェイポイントが、ユーザがウェイポイント場所までの閾値近接度に到達することによって、アクティブ化されていることを決定し得る。ウェイポイントが、アクティブ化されると、ARシステムは、図32-34Cを参照して説明されるような確認応答をユーザに表示する、または示してもよい。例えば、ARシステムは、図31を参照して説明されるようなアニメーション、可聴確認応答、および/または触知確認応答を表示してもよい。ウェイポイントが、アクティブ化される、または誘導プロセスが、別様に停止される場合、ARシステムは、新しい標的ウェイポイントを決定し、新しい標的ウェイポイントを用いて、プロセス2800を開始してもよい。別の実施例では、ARシステムは、誘導プロセス2800を終了してもよい。ウェイポイントが、アクティブ化されない場合、ARシステムは、例えば、ブロック2810において、再びプロセスを開始することによって、現在のウェイポイントを用いて、誘導プロセス2800を継続し得る。
P. 例示的ウェイポイントアクティブ化プロセス
いったんARシステムが、ユーザをウェイポイント場所に正常に誘導すると(例えば、図29を参照して説明される誘導プロセスによって)、ARシステムは、ウェイポイントアクティブ化と関連付けられる、アクティブ化プロセスをトリガしてもよい。アクティブ化プロセスは、ウェイポイントの近くのユーザの環境と関連付けられる情報を記憶するステップと、視聴覚または触知フィードバックを通して、ウェイポイントの完了の成功をユーザに示すステップを含むことができる。図32は、例示的ウェイポイントアクティブ化プロセス3000を図示する。ウェイポイントアクティブ化プロセス3000は、相互作用決定ブロック3010、アニメーションブロック3012、および除去ブロック3014を含むことができる。
相互作用決定ブロック3010では、ARシステムは、ウェイポイントとのユーザ相互作用を決定することができる。いくつかの実施例では、相互作用は、ユーザ視線またはウェイポイントとの近接度を含むことができる。別の実施例では、相互作用は、ユーザ入力デバイスの作動または他のユーザ入力による、ウェイポイントの選択を含むことができる。相互作用が、閾値相互作用を超える場合、ARシステムは、ブロック3012において、ウェイポイントをアニメーション化することができる。
アニメーションブロック3012では、ARシステムは、ウェイポイントの相互作用またはアクティブ化の成功のインジケーションを表示することができる。例えば、図33-34Cを参照して議論されるように、ARシステムは、アニメーションまたは一連のグラフィックを表示する、またはウェイポイントのアクティブ化またはそれとの相互作用と関連付けられる、可聴または触知フィードバックを生成することができる。
除去ブロック3014では、ARシステムは、図29を参照して説明されるようなウェイポイントスポーンプロセスの一部として生成されているとされ得る、スポーンまたは表示するためのウェイポイントをウェイポイントのリストから除去することができる。ARシステムが、単一ウェイポイントを一度に表示する、または単一ウェイポイント場所を一度に決定する、実施例では、ウェイポイントのリストが存在しなくてもよく、ARシステムは、ユーザに表示するための次のウェイポイントを動的に決定してもよい。加えて、または代替として、ARシステムは、現在のウェイポイント場所をすでに訪問した場所として保存してもよい。
図33は、ウェイポイントのアクティブ化を示すために実施され得る、例示的ウェイポイントアニメーションプロセス3100を図示する。例えば、ARシステムは、ブロック3110において、バブルを生成し、ブロック3116において、衝突軌道を決定する、バブルをアニメーション化する(例えば、ユーザの環境内の衝突場所に進行するように)、またはユーザの環境内のオブジェクトまたはメッシュとの衝突をアニメーション化することによって、ブロック3112において、バブルをアクティブ化し、ブロック3114において、バブルを表示から除去することができる。他の実装では、任意の他のグラフィックおよび/またはオーディオ誘導が、ウェイポイントアクティブ化のインジケーションとして、ユーザに提供されてもよい。一例示的実装では、ユーザが、その第1のウェイポイントをアクティブ化すると、ARシステムは、彼らに、「光の粒子を見回して」(例えば、バブルまたはある他の視覚的効果)と通知する。それらを見ることによって、それらの特定のバブルは、アクティブ化するであろう。これは、ユーザにその環境をさらに見回せさせ、それによって、そのマップ品質を増加させるという有益な副次的効果を有する。したがって、このようなバブル(および/または他の視覚的効果)の使用は、面白い視覚的/聴覚的報酬をユーザに提供するだけではなく、また、実践的利点をもたらし得る。
ブロック3110では、ARシステムは、1つまたはそれを上回るバブルまたは他のグラフィックを生成することができる。バブルまたは他のグラフィックは、ウェイポイントから生成されることができる。例えば、図34Aに図示されるように、ウェイポイント3210は、グラフィックを含むことができる。いったんウェイポイントが、上記に説明されるようにアクティブ化されると、ARシステムは、ウェイポイントを図34Bに図示されるような複数のより小さいバブル3220に弾発または爆発させてもよい。バブルは、ユーザのFOV内の異なる点に表示されてもよい。例えば、バブルは、ユーザのFOV内にランダムに表示されてもよい。別の実施例では、バブルは、ウェイポイントバブル3210が弾発したかのように、バブル3220が見えるように、表示されてもよい。有利なこととして、ユーザのFOV内の分散された点におけるバブルを位置特定することは、彼らがバブルアニメーションを伴わないであろう場合よりも、ユーザがウェイポイント場所の近くのその環境をより見回すことを促すことができる。バブルは、静的または動的であってもよい。バブル3220に加えて、または代替として、ARシステムは、アクティブ化のインジケーション3214を表示してもよい。インジケーション3214は、アクティブ化の成功のチェックマークまたは他のインジケーションを含むことができる。加えて、または代替として、ARシステムは、インジケーションと関連付けられる、オーディオを再生する、または触知フィードバックを生成することができる。
いくつかの実施例では、ARシステムは、ユーザに、バブル(またはウェイポイントを囲繞する、またはと関連付けられる、他のグラフィック)を見るように指示することができる。ARシステムが、ユーザがバブルまたは他のグラフィックと相互作用していることを検出すると、ARシステムは、ブロック3116に進み、バブルをアクティブ化してもよい。例えば、ARシステムは、ユーザがその視線をバブルに指向していることを決定し得る。ARシステムは、次いで、そのバブルをアクティブ化してもよい。
下記にさらに議論されるように、いくつかの実装では、バブルがアクティブ化される(例えば、ユーザがそれを見ることによって)と、ARシステムは、その場所に近接する(また、概して、ユーザから離れている)、メッシュを計算する。バブルは、次いで、直接、その近接メッシュ場所まで飛行し、弾発する(例えば、別のアニメーションをトリガする)。バブルの近隣のメッシュが存在しない場合、単に、ユーザから離れるように飛行し、より大きい弾発アニメーションを伴わずに、フェードアウトしてもよい。いくつかの実装では、アクティブ化される、いくつかまたは全てのバブルは、ランダム軌道内で移動させてもよい。
ブロック3116では、ARシステムは、1つまたはそれを上回るバブル3210のための軌道を決定することができる。例えば、ARシステムは、ユーザの環境内の1つまたはそれを上回るバブル3210の進行方向を決定することができる。いくつかの実施例では、バブルの進行方向は、原点、例えば、ウェイポイントから、メッシュ等のユーザの環境内のコンテンツまでの経路を辿ることができる。例えば、バブルのうちの少なくともいくつかは、ウェイポイントのユーザのアクティブ化を通して生成および/または更新された、メッシュのエリアまで進行してもよい。ARシステムは、ユーザの環境内のメッシュまたは他のコンテンツに向かって、バブル3210の軌道を選択することができる。ブロック3118では、ARシステムは、決定された軌道に沿って進行するように、バブル3210をアニメーション化することができる。ブロック3120では、ARシステムは、バブル3210とユーザの環境内のメッシュ3216との間の衝突をアニメーション化してもよい。例えば、ARシステムは、衝突3218を表示し、その周囲で衝突3218が生じたメッシュ3216の一部を表示してもよい。ARシステムは、終了基準が満たされるまで、バブル3210を衝突させ続けてもよい。例えば、終了基準は、ユーザの環境内の計算されたメッシュ3216の閾値部分の表示を含むことができる。別の実施例では、終了基準は、閾値数の表示されるバブル衝突を含むことができる。ブロック3114では、いったんバブル衝突が、生じると、ARシステムは、バブルを表示から除去することができる。例えば、ARシステムは、バブルをフェードアウトさせる、またはバブルをユーザのFOVから外に移動させることによって、消散するように、バブルをアニメーション化してもよい。図34Cに図示されるように、アニメーションプロセス3100の結果は、完了またはアクティブ化されたウェイポイント3214のエリア内に表示され得る、メッシュ3216を含むことができる。
Q. 付加的実施例
本明細書に説明されるシステム、方法、およびデバイスはそれぞれ、いくつかの側面を有するが、そのうちのいずれの単一の1つだけが、その望ましい属性に関与するわけではない。本開示の範囲を限定することなく、いくつかの非限定的特徴が、ここで、簡単に議論されるであろう。以下の段落は、本明細書に説明されるデバイス、システム、および方法の種々の例示的実装を説明する。
実施例1:拡張現実(AR)システムであって、仮想コンテンツをARシステムのユーザに提示するように構成される、ARディスプレイと、ユーザの環境の1つまたはそれを上回る画像を捕捉するように構成される、外向きに向いたカメラであって、ユーザに可視のユーザの環境の一部は、ユーザの視野(FOV)を備える、外向きに向いたカメラと、ARディスプレイおよび外向きに向いたカメラと通信する、ハードウェアプロセッサであって、ユーザの頭部と関連付けられる場所を備える、原点から、複数のレイキャスティングを生成し、複数のレイキャスティングを分析し、環境のマッピングされていない場所と関連付けられる、レイキャスティングを識別し、マッピングされていない場所と関連付けられるグラフィックを含むように、仮想コンテンツを更新し、ユーザの環境と関連付けられる、データを収集し、マッピングされていない場所と関連付けられる十分なデータを収集することに応答して、ユーザに、データが正常に収集されたことを信号伝達するようにプログラムされる、ハードウェアプロセッサとを備える、ARシステム。
実施例2:ハードウェアプロセッサは、ユーザに、グラフィックを観察するように指示するように構成される、実施例1に記載のARシステム。
実施例3:ハードウェアプロセッサは、環境内に付加的マッピングされていない場所が存在することの決定に応答して、付加的マッピングされていない場所に関する該更新、指示、収集、および信号伝達を繰り返すように構成される、実施例1または2に記載のARシステム。
実施例4:該更新、指示、収集、および信号伝達は、少なくとも、マッピングされていない場所と関連付けられるデータの最小閾値が取得されるまで、繰り返される、実施例1-3のうちのいずれか1項に記載のARシステム。
実施例5:ハードウェアプロセッサはさらに、収集されたデータに基づいて、ユーザの環境内の少なくとも1つの持続座標フレーム(PCF)の存在を決定するように構成され、環境内に付加的マッピングされていない場所が存在するかどうかを決定するステップは、少なくとも1つのPCFが識別されたかどうかの決定に基づく、実施例1-4のうちのいずれか1項に記載のARシステム。
実施例6:ハードウェアプロセッサはさらに、少なくとも1つのPCFの存在の決定に応答して、少なくとも1つのPCFを含む、保存されたマップと関連付けられるコンテンツをロードするように構成される、実施例1-5のうちのいずれか1項に記載のARシステム。
実施例7:複数のレイキャスティングを分析するために、ハードウェアプロセッサは、レイキャスティングに関して、レイキャスティングに沿ったメッシュの存在を決定し、レイキャスティングに沿ったメッシュの距離を計算し、メッシュの存在、コンテンツの存在、およびメッシュの距離に基づいて、コンテンツタイプ、無コンテンツタイプ、または観察されないタイプを備える、レイキャスティングタイプを決定するように構成される、実施例1-6のうちのいずれか1項に記載のARシステム。
実施例8:コンテンツタイプは、ユーザおよび他の観察されない場所のうちの少なくとも1つからの最大距離内のメッシュ上にコンテンツを伴うレイキャスティングを備える、実施例7に記載のARシステム。
実施例9:最大距離は、2メートルである、実施例8に記載のARシステム。
実施例10:無コンテンツタイプは、最大距離内のメッシュ上に無コンテンツを伴うレイキャスティングを備える、実施例7-9のうちのいずれか1項に記載のARシステム。
実施例11:観察されないタイプは、最大距離内に未知のコンテンツを伴うレイキャスティングを備える、実施例7-10のうちのいずれか1項に記載のARシステム。
実施例12:ハードウェアプロセッサは、グラフィックをユーザのFOVの中心に表示するように構成される、実施例1-12のうちのいずれか1項に記載のARシステム。
実施例13:ハードウェアプロセッサは、グラフィックを観察されない場所に生成することに先立って、グラフィックをユーザのFOVの中心に表示するように構成される、実施例12に記載のARシステム。
実施例14:ハードウェアプロセッサは、ユーザに、ユーザのFOVの中心におけるグラフィックを観察するように指示し、ユーザに、データが少なくとも1つの観察されない場所の近くで正常に収集されたことを信号伝達するように構成され、収集されたデータは、ユーザのFOVの中心と関連付けられる、データを備える、実施例12-13のうちのいずれか1項に記載のARシステム。
実施例15:ユーザに、データが観察されない場所において正常に収集されたことを信号伝達するために、ハードウェアプロセッサは、グラフィックと関連付けられるアニメーションを観察されない場所に表示するように構成される、実施例1-14のうちのいずれか1項に記載のARシステム。
実施例16:アニメーションを表示するために、ARシステムは、グラフィックと関連付けられる、少なくとも1つのバブルを生成し、少なくとも1つのバブルと関連付けられる、衝突軌道を決定し、少なくとも1つのバブルを、衝突軌道に沿って、ユーザの環境のマップと関連付けられるメッシュ上の衝突場所に向かって移動させるようにアニメーション化し、少なくとも1つのバブルとメッシュの衝突を表示するように構成される、実施例15に記載のARシステム。
実施例17:ユーザに、グラフィックを観察するように指示するために、ハードウェアプロセッサは、ユーザの位置に対する観察されない場所に基づいて、インジケータリングを表示するように構成される、実施例1-16のうちのいずれか1項に記載のARシステム。
実施例18:拡張現実(AR)システムであって、仮想コンテンツをARシステムのユーザに提示するように構成される、ARディスプレイと、ユーザの環境の1つまたはそれを上回る画像を捕捉するように構成される、外向きに向いたカメラであって、ユーザに可視のユーザの環境の一部は、ユーザの視野(FOV)を備える、外向きに向いたカメラと、ARディスプレイおよび外向きに向いたカメラと通信する、ハードウェアプロセッサであって、マップのユーザ選択を受信し、ユーザの頭部と関連付けられる場所を備える、原点から、複数のレイキャスティングを生成し、複数のレイキャスティングを分析し、環境のマッピングされていない場所と関連付けられる、レイキャスティングを識別し、マッピングされていない場所と関連付けられるグラフィックを含むように、仮想コンテンツを更新し、ユーザに、グラフィックを観察するように指示し、ユーザの環境と関連付けられる、データを収集し、マッピングされていない場所と関連付けられる十分なデータを収集することに応答して、ユーザに、データが正常に収集されたことを信号伝達する、および収集されたデータ内の少なくとも1つのマーカがマップ内の少なくとも1つのマーカに対応することの決定に応答して、マップと関連付けられる、仮想現実コンテンツを表示する、または収集されたデータ内のマーカがマップ内のマーカに対応しないことの決定に応答して、別のマッピングされていない場所に関する該更新、指示、収集、および信号伝達を繰り返すようにプログラムされる、ハードウェアプロセッサとを備える、ARシステム。
実施例19:少なくとも1つのマーカは、少なくとも1つのPCFを備える、実施例18に記載のARシステム。
実施例20:複数のレイキャスティングを分析するために、ハードウェアプロセッサは、レイキャスティングに関して、レイキャスティングに沿ったメッシュの存在を決定し、レイキャスティングに沿ったメッシュの距離を計算し、メッシュの存在、コンテンツの存在、およびメッシュの距離に基づいて、コンテンツタイプ、無コンテンツタイプ、または観察されないタイプを備える、レイキャスティングタイプを決定するように構成される、実施例18-19のうちのいずれか1項に記載のARシステム。
実施例21:コンテンツタイプは、ユーザおよび他の観察されない場所のうちの少なくとも1つからの最大距離内のメッシュ上にコンテンツを伴うレイキャスティングを備える、実施例20に記載のARシステム。
実施例22:最大距離は、2メートルである、実施例21に記載のARシステム。
実施例23:無コンテンツタイプは、最大距離内のメッシュ上に無コンテンツを伴うレイキャスティングを備える、実施例20-22のうちのいずれか1項に記載のARシステム。
実施例24:観察されないタイプは、最大距離内に未知のコンテンツを伴うレイキャスティングを備える、実施例20-23のうちのいずれか1項に記載のARシステム。
実施例25:ハードウェアプロセッサは、グラフィックをユーザのFOVの中心に表示するように構成される、実施例18-25のうちのいずれか1項に記載のARシステム。
実施例26:ハードウェアプロセッサは、グラフィックを観察されない場所に生成することに先立って、グラフィックをユーザのFOVの中心に表示するように構成される、実施例25に記載のARシステム。
実施例27:ハードウェアプロセッサは、ユーザに、ユーザのFOVの中心におけるグラフィックを観察するように指示し、ユーザに、データが少なくとも1つの観察されない場所の近くで正常に収集されたことを信号伝達するように構成され、収集されたデータは、ユーザのFOVの中心と関連付けられる、データを備える、実施例25-26のうちのいずれか1項に記載のARシステム。
実施例28:ユーザに、データが観察されない場所において正常に収集されたことを信号伝達するために、ハードウェアプロセッサは、グラフィックと関連付けられるアニメーションを観察されない場所に表示するように構成される、実施例18-27のうちのいずれか1項に記載のARシステム。
実施例29:アニメーションを表示するために、ARシステムは、グラフィックと関連付けられる、少なくとも1つのバブルを生成し、少なくとも1つのバブルと関連付けられる、衝突軌道を決定し、少なくとも1つのバブルを、衝突軌道に沿って、ユーザの環境のマップと関連付けられるメッシュ上の衝突場所に向かって移動させるようにアニメーション化し、少なくとも1つのバブルとメッシュの衝突を表示するように構成される、実施例28に記載のARシステム。
実施例30:ユーザに、グラフィックを観察するように指示するために、ハードウェアプロセッサは、ユーザの位置に対する観察されない場所に基づいて、インジケータリングを表示するように構成される、実施例18-29のうちのいずれか1項に記載のARシステム。
実施例31:1つまたはそれを上回るハードウェアコンピュータプロセッサと、コンピューティングシステムによってコンピュータ化された方法を実施することが実行可能なソフトウェア命令を記憶する、1つまたはそれを上回る非一過性コンピュータ可読記憶デバイスとを有する、コンピューティングシステムによって実施される、ユーザ環境の拡張現実マップを作成または更新する方法であって、ユーザの周囲の複数の方向のそれぞれからの距離データを取得するステップであって、距離データは、物理的オブジェクトが個別の方向において検出された距離を示す、ステップと、閾値距離を超える距離を有する、距離データと関連付けられる、ウェイポイントのランク付けされたリストを作成するステップであって、最大距離と関連付けられる、ウェイポイントは、ランク付けされたリスト内の最初にある、ステップと、ユーザによって装着される拡張現実(AR)デバイス上で視認するための最高ランク付けされたウェイポイントを参照して位置付けられる、グラフィックを表示するステップであって、グラフィックは、ユーザに、拡張現実マップが不完全である、ユーザ環境のエリアを指示するように構成される、ステップと、ウェイポイントと関連付けられる、ARデバイスによるデータの収集を可能にする、ユーザの移動を検出するステップと、ランク付けされたリスト内に付加的ウェイポイントが残っているかどうかを決定するステップと、付加的ウェイポイントがランク付けされたリスト内に残っていることの決定に応答して、次の最高ランク付けされたウェイポイントを用いて、該表示、検出、および決定を実施するステップとを含む、方法。
実施例32:ランク付けされたリストは、6つのウェイポイントを備える、実施例31に記載の方法。
実施例33:該表示、検出、および決定は、少なくとも、データの最小閾値が収集されるまで、繰り返される、実施例31または32に記載の方法。
実施例34:収集されたデータに基づいて、ユーザの環境内の少なくとも1つの持続座標フレーム(PCF)の存在を決定するステップをさらに含む、実施例31-33のいずれか1項に記載の方法。
実施例35:少なくとも1つのPCFの存在の決定に応答して、少なくとも1つのPCFを含む、保存されたマップと関連付けられるコンテンツをロードするステップを含む、実施例31-34のいずれか1項に記載の方法。
実施例36:グラフィックをユーザのFOVの中心に表示するステップを含む、実施例31-35のいずれか1項に記載の方法。
実施例37:ハードウェアプロセッサは、最高ランク付けされたウェイポイントを参照して位置付けられるグラフィックを生成することに先立って、グラフィックをユーザのFOVの中心に表示するように構成される、実施例36に記載の方法。
実施例38:ユーザのFOVの中心と関連付けられる、ARデバイスによるデータの収集を可能にする、ユーザの移動を検出するステップを含む、実施例36または37に記載の方法。
実施例39:最高ランク付けされたウェイポイントを参照して位置付けられるグラフィックと関連付けられる、アニメーションを表示するステップを含む、実施例31-38のいずれか1項に記載の方法。
実施例40:アニメーションを表示するステップは、
グラフィックと関連付けられる、少なくとも1つのバブルを生成するステップと、少なくとも1つのバブルと関連付けられる、衝突軌道を決定するステップと、少なくとも1つのバブルを、衝突軌道に沿って、ユーザの環境のマップと関連付けられるメッシュ上の衝突場所に向かって移動させるようにアニメーション化するステップと、少なくとも1つのバブルとメッシュの衝突を表示するステップとを含む、実施例39に記載の方法。
実施例41:ユーザをウェイポイントに誘導するステップを含む、実施例31-40のいずれか1項に記載の方法。
実施例42:ユーザを誘導するステップは、インジケータリングを表示するステップを含む、実施例41に記載の方法。
実施例43:拡張現実(AR)システムであって、
仮想コンテンツをARシステムのユーザに提示するように構成される、ARディスプレイと、
ユーザの3次元(3D)環境の1つまたはそれを上回る画像を捕捉するように構成される、外向きに向いたカメラと、
ARディスプレイおよび外向きに向いたカメラと通信する、ハードウェアプロセッサであって、
共有マップにアクセスするための招待を受信し、
共有マップへのユーザアクセスを促進し、
ユーザの3D環境を観察するようにユーザを誘導し、
ユーザの3D環境と関連付けられる、データを収集し、
共有マップと関連付けられる、データが、ユーザの3D環境内に見出される場合、共有マップと関連付けられる、コンテンツをロードする、
ようにプログラムされる、ハードウェアプロセッサと、
を備える、ARシステム。
実施例44:ハードウェアプロセッサはさらに、
収集されたデータに基づいて、ユーザの環境内の少なくとも1つの持続座標フレーム(PCF)の存在を決定するように構成され、共有マップと関連付けられる、データが、ユーザの3D環境内に見出されるかどうかを決定するステップは、共有マップと関連付けられる、少なくとも1つのPCFが、収集されたデータ内で識別されたかどうかの決定に基づく、実施例43に記載のARシステム。
実施例45:コンテンツをロードするために、ハードウェアプロセッサは、少なくとも1つのPCFの存在の決定に応答して、少なくとも1つのPCFを含む、共有マップと関連付けられる、コンテンツをロードするように構成される、実施例43-44のうちのいずれか1項に記載のARシステム。
実施例46:ハードウェアプロセッサは、グラフィックをユーザのFOVの中心に表示するように構成される、実施例43-45のうちのいずれか1項に記載のARシステム。
実施例47:ハードウェアプロセッサは、グラフィックを観察されない場所に生成することに先立って、グラフィックをユーザのFOVの中心に表示するように構成される、実施例46に記載のARシステム。
実施例48:ハードウェアプロセッサは、
ユーザに、ユーザのFOVの中心におけるグラフィックを観察するように指示し、
ユーザに、データが少なくとも1つの観察されない場所の近くで正常に収集されたことを信号伝達する、
ように構成され、収集されたデータは、ユーザのFOVの中心と関連付けられる、データを備える、実施例43-47のうちのいずれか1項に記載のARシステム。
実施例49:ユーザに、データが観察されない場所において正常に収集されたことを信号伝達するために、ハードウェアプロセッサは、グラフィックと関連付けられるアニメーションを観察されない場所に表示するように構成される、実施例43-48のうちのいずれか1項に記載のARシステム。
実施例50:アニメーションを表示するために、ARシステムは、
グラフィックと関連付けられる、少なくとも1つのバブルを生成し、
少なくとも1つのバブルと関連付けられる、衝突軌道を決定し、
少なくとも1つのバブルを、衝突軌道に沿って、ユーザの環境のマップと関連付けられるメッシュ上の衝突場所に向かって移動させるようにアニメーション化し、
少なくとも1つのバブルとメッシュの衝突を表示する、
ように構成される、実施例49に記載のARシステム。
実施例51:共有マップは、ARディスプレイの外部の場所に記憶される、マップを備える、実施例43-50のうちのいずれか1項に記載のARシステム。
実施例52:共有マップは、複数のARデバイスまたは複数のユーザにアクセス可能なマップを備える、実施例43-51のうちのいずれか1項に記載のARシステム。
実施例53:ユーザに、グラフィックを観察するように指示するために、ハードウェアプロセッサは、ユーザの位置に対する観察されない場所に基づいて、インジケータリングを表示するように構成される、実施例43-52のうちのいずれか1項に記載のARシステム。
実施例54:ハードウェアプロセッサは、
記憶するためのマップを識別し、
デバイス上記憶装置またはデバイス外記憶装置を備える、記憶場所を決定し、
識別されたマップと関連付けられる、1つまたはそれを上回るユーザ許可を決定し、1つまたはそれを上回るユーザ許可は、1人またはそれを上回るユーザが識別されたマップにアクセスするための認可を備え、
決定された記憶場所および決定された1つまたはそれを上回るユーザ許可に基づいて、識別されたマップを記憶する、
ように構成される、実施例43-53のうちのいずれか1項に記載のARシステム。
実施例55:拡張現実(AR)システムであって、
仮想コンテンツをARシステムのユーザに提示するように構成される、ARディスプレイと、
ユーザの3次元(3D)環境の1つまたはそれを上回る画像を捕捉するように構成される、外向きに向いたカメラと、
ARディスプレイおよび外向きに向いたカメラと通信する、ハードウェアプロセッサであって、
マップを更新するためのユーザ入力を受信し、
ユーザの3D環境を観察するようにユーザを誘導し、
ユーザの3D環境と関連付けられる、データを収集し、
マップと関連付けられる、マップ品質インデックスを決定し、
マップ品質インデックスのインジケーションをARディスプレイ上に表示し、
収集されたデータに基づいて、マップを更新し、
停止するためのユーザ入力またはマップ品質インデックスが閾値に達することの決定を備える、停止条件を識別することに応答して、ユーザを誘導することを停止する、
ようにプログラムされる、ハードウェアプロセッサと、
を備える、ARシステム。
実施例56:マップ品質インデックスは、関連付けられる収集されたデータを有する、3D環境のパーセンテージに基づく、実施例55に記載のARシステム。
実施例57:ハードウェアプロセッサは、グラフィックをユーザのFOVの中心に表示するように構成される、実施例55-56のうちのいずれか1項に記載のARシステム。
実施例58:ハードウェアプロセッサは、グラフィックを観察されない場所に生成することに先立って、グラフィックをユーザのFOVの中心に表示するように構成される、実施例57に記載のARシステム。
実施例59:ハードウェアプロセッサは、
ユーザに、ユーザのFOVの中心におけるグラフィックを観察するように指示し、
ユーザに、データが少なくとも1つの観察されない場所の近くで正常に収集されたことを信号伝達する、
ように構成され、収集されたデータは、ユーザのFOVの中心と関連付けられる、データを備える、実施例55-58のうちのいずれか1項に記載のARシステム。
実施例60:ユーザに、データが観察されない場所において正常に収集されたことを信号伝達するために、ハードウェアプロセッサは、グラフィックと関連付けられるアニメーションを観察されない場所に表示するように構成される、実施例55-59のうちのいずれか1項に記載のARシステム。
実施例61:アニメーションを表示するために、ARシステムは、
グラフィックと関連付けられる、少なくとも1つのバブルを生成し、
少なくとも1つのバブルと関連付けられる、衝突軌道を決定し、
少なくとも1つのバブルを、衝突軌道に沿って、ユーザの環境のマップと関連付けられるメッシュ上の衝突場所に向かって移動させるようにアニメーション化し、
少なくとも1つのバブルとメッシュの衝突を表示する、
ように構成される、実施例60に記載のARシステム。
実施例62:ユーザに、グラフィックを観察するように指示するために、ハードウェアプロセッサは、ユーザの位置に対する観察されない場所に基づいて、インジケータリングを表示するように構成される、実施例55-61のうちのいずれか1項に記載のARシステム。
上記の実施例のいずれかは、任意の好適な組み合わせにおいて組み合わせられてもよい。
R. 他の考慮点
本明細書に説明される、または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つまたはそれを上回る物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ得る、動的リンクライブラリ内にインストールされ得る、またはインタープリタ型プログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つまたはそれを上回る物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、動画またはビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
本明細書に説明される、または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つまたはそれを上回る実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、本明細書に提供される例証的実施例に追加される、そこから削除される、修正される、または別様にそこから変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、いずれの特定のシーケンスにも限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそこから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証目的のためであり、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装または実施形態に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
別個の実装または実施形態の文脈において本明細書に説明されるある特徴はまた、単一の実装または実施形態における組み合わせにおいて実装されることができる。逆に、単一の実装または実施形態の文脈において説明される種々の特徴もまた、複数の実装または実施形態において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つまたはそれを上回る特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、またはステップが、1つまたはそれを上回る実施形態に対していかようにも要求されること、または1つまたはそれを上回る実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを含意することを意図されない。用語「~を備える(comprising)」、「~を含む(including)」、「~を有する(having)」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つまたはそれを上回る」または「少なくとも1つ」を意味するように解釈されるべきである。
本明細書で使用されるように、項目のリスト「のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図するものではない。
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つまたはそれを上回る例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つまたはそれを上回る付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。