JP2023515577A - 大規模環境再構築のためのクロスリアリティシステム - Google Patents
大規模環境再構築のためのクロスリアリティシステム Download PDFInfo
- Publication number
- JP2023515577A JP2023515577A JP2022551291A JP2022551291A JP2023515577A JP 2023515577 A JP2023515577 A JP 2023515577A JP 2022551291 A JP2022551291 A JP 2022551291A JP 2022551291 A JP2022551291 A JP 2022551291A JP 2023515577 A JP2023515577 A JP 2023515577A
- Authority
- JP
- Japan
- Prior art keywords
- map
- dense
- maps
- sparse
- persistent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000002085 persistent effect Effects 0.000 claims abstract description 309
- 238000012545 processing Methods 0.000 claims description 106
- 230000009466 transformation Effects 0.000 claims description 99
- 230000004807 localization Effects 0.000 claims description 78
- 230000002459 sustained effect Effects 0.000 claims description 52
- 238000003860 storage Methods 0.000 claims description 49
- 238000009877 rendering Methods 0.000 claims description 26
- 238000013442 quality metrics Methods 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001737 promoting effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 214
- 210000003128 head Anatomy 0.000 description 185
- 238000010586 diagram Methods 0.000 description 89
- 230000008569 process Effects 0.000 description 85
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 57
- 230000000875 corresponding effect Effects 0.000 description 42
- 238000000844 transformation Methods 0.000 description 42
- 230000015654 memory Effects 0.000 description 34
- 230000002688 persistence Effects 0.000 description 32
- 101150064138 MAP1 gene Proteins 0.000 description 30
- 230000033001 locomotion Effects 0.000 description 28
- 238000013507 mapping Methods 0.000 description 27
- 238000001914 filtration Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 23
- 230000008447 perception Effects 0.000 description 22
- 239000000872 buffer Substances 0.000 description 20
- 238000005259 measurement Methods 0.000 description 18
- 230000000007 visual effect Effects 0.000 description 18
- 210000001747 pupil Anatomy 0.000 description 17
- 230000004044 response Effects 0.000 description 17
- 238000013519 translation Methods 0.000 description 17
- 230000014616 translation Effects 0.000 description 17
- 230000008859 change Effects 0.000 description 16
- 238000013528 artificial neural network Methods 0.000 description 15
- 230000005484 gravity Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 210000001525 retina Anatomy 0.000 description 12
- 238000012549 training Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 230000003993 interaction Effects 0.000 description 10
- 101150009249 MAP2 gene Proteins 0.000 description 9
- 101100075995 Schizosaccharomyces pombe (strain 972 / ATCC 24843) fma2 gene Proteins 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000007613 environmental effect Effects 0.000 description 9
- 230000002829 reductive effect Effects 0.000 description 9
- 238000004441 surface measurement Methods 0.000 description 9
- 230000003190 augmentative effect Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 230000010354 integration Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 101100082497 Oryza sativa subsp. japonica PCF3 gene Proteins 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000000717 retained effect Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000012800 visualization Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 241000282994 Cervidae Species 0.000 description 3
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000004418 eye rotation Effects 0.000 description 3
- 229910001416 lithium ion Inorganic materials 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 210000000613 ear canal Anatomy 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000013518 transcription Methods 0.000 description 2
- 230000035897 transcription Effects 0.000 description 2
- 241000256837 Apidae Species 0.000 description 1
- 101100206190 Arabidopsis thaliana TCP20 gene Proteins 0.000 description 1
- 241000473391 Archosargus rhomboidalis Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 101100082494 Oryza sativa subsp. japonica PCF1 gene Proteins 0.000 description 1
- 101100045761 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) TFC4 gene Proteins 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 210000000744 eyelid Anatomy 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000002103 transcriptional effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/024—Multi-user, collaborative environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
エクステンデッドまたはクロスリアリティシステムは、ネットワークコンポーネントを介して、複数のポータブル電子デバイスに通信可能に接続される、コンピューティングデバイスと、コンピューティングデバイスおよび複数のポータブル電子デバイスによってアクセス可能なリポジトリと、稠密マップマージコンポーネントとを含む。エクステンデッドまたはクロスリアリティシステムは、少なくとも部分的に、複数のポータブルデバイスから受信された稠密マップのセットに基づいて、3D環境の複数の部分に関する表現を決定し、稠密マップのセットは、少なくとも部分的に、稠密マップのセットに関する姿勢データまたは稠密マップのセット内の表面情報に基づいて、複数のサブ群に群化される。エクステンデッドまたはクロスリアリティシステムは、表現を共有持続稠密マップの少なくとも一部として記憶する。
Description
本願は、概して、クロスリアリティシステムに関する。
コンピュータは、ヒューマンユーザインターフェースを制御し、その中でユーザによって知覚されるにつれて、XR環境のいくつかまたは全てがコンピュータによって生成される、クロスリアリティまたはエクステンデッドリアリティ(XR)環境を作成し得る。これらのXR環境は、仮想現実(VR)、拡張現実(AR)、および複合現実(MR)環境であってもよく、その中でXR環境のいくつかまたは全てが、部分的に、環境を記述する、データを使用して、コンピュータによって生成され得る。本データは、例えば、ユーザが、ユーザが仮想オブジェクトと相互作用し得るように、物理的世界の一部として、感知または知覚するようにレンダリングされ得る、仮想オブジェクトを記述し得る。ユーザは、データがレンダリングされ、例えば、頭部搭載型ディスプレイデバイス等のユーザインターフェースデバイスを通して提示される結果として、これらの仮想オブジェクトを体験し得る。データは、ユーザに見えるように表示されてもよい、またはユーザに聞こえるように再生される、オーディオを制御してもよい、または触覚(または触知)インターフェースを制御し、ユーザが、ユーザが仮想オブジェクトに触れていると感知または知覚する、タッチ感覚を体験することを可能にしてもよい。
XRシステムは、科学的可視化、医療訓練、工学設計、およびプロトタイプ化、遠隔操作およびテレプレゼンス、および個人的娯楽の分野に及ぶ、多くの用途のために有用であり得る。ARおよびMRは、VRと対照的に、物理的世界の実オブジェクトと関連して、1つまたはそれを上回るオブジェクトを含む。実オブジェクトと相互作用する、仮想オブジェクトの体験は、XRシステムを使用する際、ユーザの享受を大幅に向上させ、また、物理的世界が改変され得る様子についての現実的かつ容易に理解可能な情報を提示する、種々の用途のための可能性を広げる。
仮想コンテンツを現実的にレンダリングするために、XRシステムは、システムのユーザの周囲の物理的世界の表現を構築し得る。本表現は、例えば、XRシステムの一部を形成する、ウェアラブルデバイス上のセンサを用いて入手された処理画像によって構築されてもよい。そのようなシステムでは、ユーザは、システムがその環境の表現を構築するために十分な情報を入手するまで、ユーザがXRシステムを使用することを意図する部屋または他の物理的環境を見て回ることによって、初期化ルーチンを実施し得る。システムが動作し、ユーザが環境の周囲を、または他の環境へと動き回るにつれて、ウェアラブルデバイス上のセンサは、付加的情報を入手し、物理的世界の表現を拡張または更新し得る。
XRデバイスは、センサデータに基づいて、XRデバイスに対する表面の場所を決定することによって、ユーザの周囲の物理的世界の表現を再構築してもよい。物理的世界の再構築物内の表面は、1つまたはそれを上回るフォーマットで表されてもよい。1つのそのようなフォーマットは、「メッシュ」である。メッシュは、複数の相互接続された三角形によって表されてもよい。各三角形は各三角形が表面の一部を表すように、物理的世界内のオブジェクトの表面上の点を継合する、縁を有する。色、テクスチャ、または他の性質等の表面の一部についての情報は、三角形と関連付けて記憶されてもよい。動作時、XRデバイスは、画像情報を処理し、メッシュを作成または更新するように、点および表面を検出してもよい。表面は、表面がデバイスとボクセルによって表される場所との間で検出されたかどうかを示す、ボクセルに割り当てられる値とともに、デバイスに対する場所において、平面によって、またはボクセルによって等、他の方法で表されてもよい。
本願の側面は、クロスリアリティ(XR)場面を提供するための方法および装置に関する。本明細書に説明される技法は、ともに、別個に、または任意の好適な組み合わせにおいて、使用されてもよい。
いくつかの実施形態は、座標フレームを共有する記憶されたマップに基づいて、仮想コンテンツのレンダリングをサポートする、XRシステムに関する。記憶されたマップは、少なくとも疎マップと、稠密マップとを備える。疎マップは、1つまたはそれを上回る持続姿勢を備える。稠密マップは、立体データを備える。本システムは、複数のポータブル電子デバイスとネットワーク通信するために構成される、1つまたはそれを上回るコンピューティングデバイスを備える。1つまたはそれを上回るコンピューティングデバイスは、1つまたはそれを上回るポータブル電子デバイスのそれぞれから、姿勢付き表面情報の集合を受信するように構成される、通信コンポーネントを備える。1つまたはそれを上回るコンピューティングデバイスは、複数のポータブルデバイスから受信された姿勢付き表面情報の集合に基づいて、3D環境の複数の部分の表現を算出し、3D環境の少なくとも一部の表現を記憶された稠密マップの少なくとも一部として記憶されたマップのデータベース内に記憶するように構成される、稠密マップマージコンポーネントを備える。複数の部分のそれぞれの表現は、表面情報の姿勢によって群化される、姿勢付き表面情報の集合から算出される。
いくつかの実施形態では、通信コンポーネントはさらに、1つまたはそれを上回るポータブル電子デバイスのそれぞれから、1つまたはそれを上回る持続姿勢を備える、疎追跡マップを受信するように構成される。
いくつかの実施形態では、ポータブル電子デバイスから受信された表面情報の1つまたはそれを上回る集合はそれぞれ、ポータブル電子デバイスの個別の疎追跡マップの持続姿勢に対する姿勢付きである。
いくつかの実施形態では、1つまたはそれを上回るコンピューティングデバイスは、1つまたはそれを上回るポータブル電子デバイスから受信された疎追跡マップをマージするように構成される、疎マップマージコンポーネントであって、マージされた疎マップは、疎追跡マップの1つまたはそれを上回る持続姿勢に基づいて算出される、マージされた持続姿勢テーブルを備える、疎マップマージコンポーネントと、マージされた疎マップに対する選択された疎追跡マップに関する変換を算出するように構成される、疎マップ位置特定コンポーネントとを備える。
いくつかの実施形態では、疎マップマージコンポーネントは、マージされた持続姿勢テーブルを記憶された疎マップの少なくとも一部として記憶されたマップのデータベース内に記憶するように構成される。
いくつかの実施形態では、稠密マップマージコンポーネントは、マージされた持続姿勢テーブルと、表面情報の1つまたはそれを上回る集合のサブセットとに基づいて、3D環境の少なくとも一部の表現を算出するように構成される、3D再構築コンポーネントを備え、サブセットは、サブセットがマージされた持続姿勢テーブル内の持続姿勢と関連付けられることに基づいて、選択される。
いくつかの実施形態では、表面情報の1つまたはそれを上回る集合はそれぞれ、深度画像を備える。
いくつかの実施形態では、記憶された稠密マップは、記憶された稠密マップによって含有される、立体データのサイズと、マップ汎用一意識別子(マップUUID)およびマップバージョン識別子を備える、マップの一意の識別子とを備える、メタデータを備える。
いくつかの実施形態では、各疎追跡マップは、マップ汎用一意識別子(マップUUID)およびマップバージョン識別子を備える、マップ一意の識別子と、1つまたはそれを上回る持続姿勢のテーブルとを備える。各持続姿勢は、姿勢汎用一意識別子(姿勢UUID)と、6自由度を備える、姿勢とを備える。1つまたはそれを上回る持続姿勢のテーブルは、姿勢汎用一意識別子と姿勢との間の対応を示す。
いくつかの実施形態では、3D環境の同一部分に関して、その部分に関する稠密マップおよびその部分に関する疎マップは、同一マップ汎用一意識別子を有する。
いくつかの実施形態では、同一マップ汎用一意識別子は、128ビットである。
いくつかの実施形態では、表面情報の1つまたはそれを上回る集合は、オブジェクト情報の集合を備える。稠密マップマージコンポーネントは、選択された疎追跡マップがオブジェクト情報の集合を備える稠密マップと同一マップ識別子を備えることに基づいて、疎追跡マップを選択するように構成される、疎マップ選択コンポーネントを備える。
いくつかの実施形態では、オブジェクト情報の集合は、平面表面を備える。
いくつかの実施形態では、3D環境の少なくとも一部の表現は、立方体においてセグメント化される。
いくつかの実施形態では、記憶された稠密マップは、複数のボクセルを備える、立体データを備える。各ボクセルは、符号付き距離関数を備え、3D環境の少なくとも一部内の最も近くの表面までの距離を示す。
いくつかの実施形態では、マージされた持続姿勢テーブル内の持続姿勢と関連付けられる、表面情報の個々の集合に関して、立体データは、別個に算出される。
いくつかの実施形態は、クロスリアリティシステム内で動作するように構成される、電子デバイスに関する。電子デバイスは、3次元(3D)環境についての情報を捕捉するように構成される、1つまたはそれを上回るセンサであって、捕捉された情報は、複数の画像を備える、1つまたはそれを上回るセンサと、複数の画像に基づいて、疎追跡マップを算出するように構成される、マッピングコンポーネントと、捕捉された情報に基づいて、表面情報の集合を算出するように構成される、再構築コンポーネントと、ネットワークを通して、表面情報の集合および表面情報の集合に関する姿勢情報のうちの1つまたはそれを上回るものを伝送することと、稠密マップのメタデータを受信することであって、メタデータは、稠密マップによって表される3D環境の一部を示す、こととを行うように構成される、通信コンポーネントと、コンピュータ実行可能命令を実行するように構成される、少なくとも1つのプロセッサであって、コンピュータ実行可能命令は、少なくとも部分的に、疎追跡マップおよび受信されたメタデータに基づいて、稠密マップの少なくとも一部を取得すべきかどうかを決定するための命令を備える、少なくとも1つのプロセッサとを備える。
いくつかの実施形態では、稠密マップは、第1の稠密マップである。電子デバイスは、1つまたはそれを上回る稠密マップのメタデータを備える、ファイルシステムを備える。
いくつかの実施形態では、稠密マップ毎に、メタデータは、稠密マップ内のメッシュブロックの数と、最後の深度画像が稠密マップの中に融合されたときの時間を示す、タイムスタンプとを示す、品質メトリックを備える。第1の稠密マップの少なくとも一部を取得すべきかどうかを決定するステップは、少なくとも部分的に、第1の稠密マップの品質メトリックと、1つまたはそれを上回る稠密マップの品質メトリックとに基づく。
いくつかの実施形態では、コンピュータ実行可能命令は、稠密マップの少なくとも一部を取得すべきと決定されると、少なくとも部分的に、稠密マップの取得された少なくとも一部と、表面情報のローカルで生成された集合とに基づいて、ローカルでマージされたマップを算出するための命令を備え、ローカルマージされたマップは、視覚的オクルージョンおよび/または仮想オブジェクト物理学等のAR機能のために使用される。
いくつかの実施形態では、表面情報のローカルで生成された集合は、稠密マップの取得された少なくとも一部内に表されない。
いくつかの実施形態では、ローカルでマージされた稠密マップは、識別された場所に対応する、サブ領域を備える。
いくつかの実施形態では、場所は、疎追跡マップ内の持続姿勢に基づいて識別される。
いくつかの実施形態では、少なくとも部分的に、疎追跡マップと、受信されたメタデータとに基づいて、稠密マップの少なくとも一部を取得すべきかどうかを決定するステップは、少なくとも部分的に、電子デバイスの姿勢に基づいて、電子デバイスがその中に移動している、エリアを決定するステップと、エリアの表面情報が、稠密マップ内で利用可能であるが、デバイス上ではそうではないことが決定されると、エリアの表面情報をダウンロードするステップとを含む。
いくつかの実施形態では、稠密マップは、疎追跡マップ内の持続姿勢と関連付けられる、複数のサブ領域を備え、エリアに対応する、サブ領域は、少なくとも部分的に、電子デバイスの姿勢とサブ領域と関連付けられる持続姿勢との間の距離に基づく順序でダウンロードされる。
いくつかの実施形態は、クロスリアリティシステム内で動作するように構成される、電子デバイスに関する。電子デバイスは、3次元(3D)環境についての情報を捕捉するように構成される、1つまたはそれを上回るセンサであって、捕捉された情報は、複数の画像を備える、1つまたはそれを上回るセンサと、複数の画像に基づいて、疎追跡マップを算出するように構成される、マッピングコンポーネントと、捕捉された情報に基づいて、表面情報の集合を算出するように構成される、再構築コンポーネントと、ネットワークを通して、表面情報の集合および表面情報の集合に関する姿勢情報のうちの1つまたはそれを上回るものを伝送することと、稠密マップのメタデータを受信することであって、メタデータは、稠密マップのオブジェクトに関する一意のIDとそこからオブジェクトが取得されたデバイスに対するオブジェクトのローカルIDとの間の対応を示す、マップID転写テーブルを備える、こととを行うように構成される、通信コンポーネントと、コンピュータ実行可能命令を実行するように構成される、少なくとも1つのプロセッサであって、コンピュータ実行可能命令は、稠密マップのオブジェクトの少なくとも一部に関する一意のIDを電子デバイスに対する対応するオブジェクトのローカルIDにマッチングさせるための命令を備える、少なくとも1つのプロセッサとを備える。
いくつかの実施形態では、マッチングさせるステップは、マップID転写テーブルと、ローカルオブジェクトID履歴とに基づいて、電子デバイスに対する履歴ローカルIDを有する、稠密マップのオブジェクトのいずれかを決定するステップと、電子デバイスに対する履歴ローカルIDを有していないと決定される、稠密マップのオブジェクトに関する新しいローカルIDを生成するステップとを含む。
いくつかの実施形態では、マッチングさせるステップは、電子デバイスに対する履歴ローカルIDを有すると決定される、稠密マップのオブジェクト毎に、最も直近で生成された履歴ローカルIDを除き、全ての履歴ローカルIDを除去するステップを含む。
前述の説明は、例証として提供され、限定することを意図するものではない。
添付の図面は、縮尺通りに描かれることを意図していない。図面では、種々の図に図示される、各同じまたはほぼ同じコンポーネントは、同様の数字で表される。明確性の目的のために、全てのコンポーネントが、全ての図面において標識されているわけではない。
詳細な説明
本明細書に説明されるものは、XR場面を提供するための方法および装置である。現実的XR体験を複数のユーザに提供するために、XRシステムは、物理的世界内のユーザの場所および物理的世界内のオブジェクトの形状および場所に関する情報を提供してもよい。そのような情報は、システムが、仮想オブジェクトの場所を実オブジェクトに関連して正しく相関させることを可能にし得る。本発明者らは、例えば、ARシステム580(図4)、XRデバイス12.1(図8)、およびスマートフォンを含む、ポータブルデバイスのために好適な算出リソースおよびネットワーク帯域幅を用いて、大規模および非常に大規模環境(例えば、近所、都市、国、世界)の3D表現を生成および共有する、方法および装置を認識し、その真価を認めた。
本明細書に説明されるものは、XR場面を提供するための方法および装置である。現実的XR体験を複数のユーザに提供するために、XRシステムは、物理的世界内のユーザの場所および物理的世界内のオブジェクトの形状および場所に関する情報を提供してもよい。そのような情報は、システムが、仮想オブジェクトの場所を実オブジェクトに関連して正しく相関させることを可能にし得る。本発明者らは、例えば、ARシステム580(図4)、XRデバイス12.1(図8)、およびスマートフォンを含む、ポータブルデバイスのために好適な算出リソースおよびネットワーク帯域幅を用いて、大規模および非常に大規模環境(例えば、近所、都市、国、世界)の3D表現を生成および共有する、方法および装置を認識し、その真価を認めた。
XRシステムは、3D環境の表現を構築してもよく、これは、XRシステムのユーザによって装着されるXRデバイスの一部である、センサを用いて収集された、画像および/または深度情報から作成されてもよい。3D環境表現は、XRシステム内のXRデバイスの任意のコンポーネントによって使用されてもよい。例えば、3D環境表現は、視覚的オクルージョン処理を実施する、物理学ベースの相互作用を算出する、または環境推測を実施する、コンポーネントによって使用されてもよい。
オクルージョン処理は、物理的世界内に、仮想オブジェクトがユーザによって知覚されることになる場所のユーザのビューを遮断する、オブジェクトが存在するため、そのユーザにレンダリングおよび/または表示されるべきではない、仮想オブジェクトの部分を識別する。物理学ベースの相互作用は、仮想オブジェクトがユーザに現れる場所および/または方法を決定するために算出される。例えば、仮想オブジェクトは、物理的オブジェクト上に静置している、虚空を通して移動している、または物理的オブジェクトの表面と衝突しているように現れるように、レンダリングされてもよい。
環境推測もまた、仮想オブジェクトをレンダリングする方法を算出する際に使用され得る、情報を生成する過程において、3D環境表現を使用してもよい。例えば、環境推測は、それらが窓ガラスまたはガラステーブルの表面であることを認識することによって、クリア表面を識別するステップを伴ってもよい。そのような識別から、物理的オブジェクトを含有する、領域は、仮想オブジェクトをオクルードしないものとして分類され得るが、仮想オブジェクトと相互作用するものとして分類され得る。環境推測はまた、ユーザの視野に対して追跡され、ユーザの視野の運動を算出する、定常オブジェクトを識別する等、他の方法で使用される情報を生成してもよい。
3D環境表現は、そこから物理的世界内のオブジェクトについての情報がそのような計算のために取得され得る、モデルを提供する。しかしながら、リアルタイムの没入型のXR体験を提供する、そのようなシステムを提供する際、有意な課題が存在する。実質的処理が、3D環境表現を算出するために要求され得る。さらに、3D環境表現は、多くの場合、オブジェクトが物理的世界内を移動する(例えば、カップがテーブル上で移動する)につれて、更新されることが要求される。ユーザが体験している環境を表す、データへの更新は、デバイスが、3D環境表現を生成および更新する間、他の機能を実施することが不可能であり得るため、XR環境を生成するデバイスのコンピューティングリソースの非常に多くを使用せずに、迅速に実施されなければならない。
本発明者らは、XRシステムが、複数のデバイスのいずれかが、効率的かつ正確に、非常に大規模環境の以前に存続していた表現にアクセスし、それらの表現に関連して規定された仮想コンテンツをレンダリングすることを可能にすることを認識し、その真価を認めた。クラウドサービス等のネットワークを経由して複数のデバイスにアクセス可能な共有コンピューティングリソースは、1つまたはそれを上回るデバイスによって捕捉されたデータを使用して、大規模環境の3D表現を生成および記憶し、XRシステム内の任意のデバイスが、存続される3D表現にアクセスすることを可能にし得る。
存続される3D表現は、デバイスが、デバイスのために好適なネットワーク帯域幅を用いて、デバイスの位置から可視の体積に迅速にアクセスし得るように、より小さい体積に分割されてもよい。存続される3D表現を査定する、XRシステム内のデバイスは、デバイスが、最新の物理的世界幾何学形状を反映させる、3D表現を有するように、存続される3D表現をデバイスによって捕捉された新たなデータで更新してもよい。デバイスは、好適な3D表現が、短待ち時間および低算出オーバーヘッドを用いて、アクセスされ得るように、より小さい体積を管理してもよい。例えば、3D表現のより小さい体積のうちのいくつかは、将来的使用、例えば、デバイスが以前に探索した空間に再進入するときのために、ファイルシステム内に記憶されてもよい。さらに、3D表現は、3D環境内の表面に関する情報を組み合わせ、存続させることを促進するようにフォーマット化されてもよい。例えば、表面情報は、仮想コンテンツが、オブジェクト情報と関連付けられることによって存続され得るように、一意の記述子によって識別可能である、平面等の実オブジェクトの場所を示す、オブジェクト情報を含んでもよい。代替として、または加えて、表面は、メッシュによって、または、例えば、ボクセル等の立体データによって表されてもよい。
本明細書に説明される種々の実施形態は、限定ではないが、1つまたはそれを上回る疎マップ、1つまたはそれを上回る稠密マップ、1つまたはそれを上回る追跡するマップ、1つまたはそれを上回る規準マップ、および/または1つまたはそれを上回る環境マップを含み得る、マップのうちの1つまたはそれを上回るものを採用する。
追跡マップは、追跡マップを元々作成した、または続いて更新した、デバイス(例えば、XRデバイス)にローカルであってもよい。追跡マップは、稠密マップとしての役割を果たし得るが、追跡マップは、疎マップとして開始してもよい。追跡マップは、いくつかの実施形態では、デバイスの頭部姿勢データ(例えば、追跡マップを作成または更新するXRデバイスの場所、配向、および/または姿勢)等のデータを含んでもよい。そのようなデータは、これらの実施形態のうちのいくつかでは、追跡マップ内の点または点ノードとして表され得る。
これらの実施形態のうちのいくつかでは、追跡マップはさらに、メッシュまたは深度情報および/または表面または深度情報から導出され得る、他の高レベルデータ(例えば、1つまたはそれを上回る平面または表面または他のオブジェクトに関する場所および/または1つまたはそれを上回る特性)のセットとして表され得る、表面情報またはデータを含んでもよい。追跡マップは、規準マップにレベル上げされてもよく、これは、より詳細に下記に説明されるであろう。いくつかの実施形態では、追跡マップは、物理的世界内の物理的オブジェクトの間取図を提供する。例えば、物理的オブジェクトまたはその特徴(例えば、画像処理から決定された頂点、縁、平面または表面等)は、追跡マップ内の点または点ノードとして表され得る。
これらの実施形態のうちのいくつかでは、追跡マップは、点または点ノードに関するデータを含んでもよい。そのようなデータは、例えば、絶対および/または相対的姿勢(例えば、特定の場所、配向、および/または視線方向においてXRデバイスに対して既知の固定された基準、相対的場所、配向、および/または視線方向に対する絶対場所、配向、および/または視線方向)を含んでもよい。物理的オブジェクトまたはそれの一部を表す、特徴は、例えば、物理的オブジェクトまたはそれの一部を含有する、1つまたはそれを上回る画像の画像処理から導出されてもよく、ひいては、持続座標フレーム(PCF)に変換され得る、持続姿勢として使用されてもよい。いくつかの実施形態では、持続座標フレームは、アプリケーションを閉じ、再び開く、またはXRデバイスをリブートした後でも、(1つまたはそれを上回るXRデバイスのための)複数のユーザセッションを横断して、所定の閾値を超えてドリフトまたは逸脱を伴わずに、仮想または複合現実環境内におけるデジタルコンテンツのコンテンツ持続設置を可能にし、設置されたデジタルコンテンツを、例えば、仮想または複合現実環境(例えば、本明細書に説明されるパス可能世界モデル、共有世界モデル、および/または1つまたはそれを上回るマップ)内の同一場所に留まらせる、ローカル座標フレーム(例えば、XRデバイスの基準点または座標系にローカルの座標フレーム)を備える。
PCFは、例えば、本明細書に説明される規準マップ内に、最初に、PCFを作成し、オブジェクトまたはそれの一部を表す、視認XRデバイスの観点から、具体的場所において、具体的配向において、および/または特定の視線方向において、設置されてもよい。XRデバイスが、XRデバイスまたは別の協働XRデバイスが以前に見ていた(例えば、XRデバイスまたは別の協働XRデバイスによって捕捉された1つまたはそれを上回る画像を介して)、物理的環境に進入すると、本物理的環境のために設置された持続座標フレームは、物理的環境の少なくとも一部に関して作成された1つまたはそれを上回る対応する規準マップを読み出すことによって、XRデバイスによって、正しい場所に復元され得る。
いくつかの実施形態では、PCFは、物理的世界内の所定の位置に対応し、ユーザが、ブラウザセッション内に、ポータブルコンピューティングデバイス(例えば、XRデバイス)上に、または遠隔サーバ上に記憶し得る、一意の識別子を有する。本一意の識別子は、複数のユーザ間で共有されてもよい。例えば、デジタルコンテンツが、仮想または複合現実セッション内に設置されると、より近いまたは最も近くのPCFが、要求され得、より近いまたは最も近くのPCFの一意の識別子およびPCFに対応する場所は、記憶されてもよい。
PCFが、異なる場所におけるユーザのための異なるセッション内で再使用されると、PCFに対応する、本記憶された場所は、デジタルコンテンツが異なるセッションにおけるユーザに対する正しい場所に設置されるように、異なる仮想または複合現実セッションのための異なる場所に関する現在の座標系に対して変換(例えば、平行移動、回転、鏡映等)されてもよい。PCFは、いくつかの実施形態では、持続空間情報を記憶してもよい。これらの実施形態のうちのいくつかでは、PCFはさらに、基準場所、配向、および/または視線方向に対する変換およびPCFに対応する場所における1つまたはそれを上回る画像から導出される情報を含んでもよい。例えば、PCFは、マップ(例えば、追跡マップ、規準マップ、環境マップ、疎マップ、および/または稠密マップ等)の座標フレームとPCFとの間の変換を含む、または少なくともそれと関連付けられてもよい。
これらの実施形態のうちのいくつかでは、PCFは、そこから持続座標フレームが作成される、キーフレームまたは画像フレームの3D環境内の場所を示す、地理的または空間情報を含んでもよい。いくつかの実施形態では、変換は、ポータブルコンピューティングデバイス(例えば、XRデバイス)にローカルの座標フレームと記憶された座標フレームとの間で決定されてもよい。
いくつかの実施形態では、全てのPCFは、共有可能であって、個別の異なる場所における複数のユーザ間で伝送されることができる。いくつかの他の実施形態では、1つまたはそれを上回るPCFは、最初に、これらの1つまたはそれを上回るPCFを作成した、XRデバイスにのみ既知である。いくつかの実施形態では、物理的世界についての情報は、例えば、持続座標フレーム(PCF)として表され得る。PCFは、物理的世界内で認識される特徴を表す、1つまたはそれを上回る点に基づいて定義されてもよい。特徴は、それらがXRシステムのユーザセッション毎に同一である可能性が高いように選択されてもよい。PCFは、それらが効率的に処理および転送され得るように、疎らに存在し、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、実空間内の1つまたはそれを上回る座標系に基づいて、動的マップを作成し、疎マップにわたって、持続座標フレーム(PCF)を生成するステップを含んでもよく、これは、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。これらの能力は、1つまたはそれを上回るXRデバイスによって作成された複数のマップをランク付けおよびマージまたはスティッチングするための技法によってサポートされてもよい。持続空間情報はまた、算出上効率的方法において、1つまたはそれを上回るXRデバイスのそれぞれ上において、頭部姿勢を迅速に回復およびリセットすることを可能にし得る。いくつかの実施形態では、XRシステムは、仮想コンテンツを世界座標フレーム内に結び付けることとは対照的に、座標フレームを仮想コンテンツに割り当ててもよい。そのような構成は、ユーザのためにレンダリングされた場所にかかわらず、仮想コンテンツが説明されることを可能にするが、持続座標フレーム(PCF)等のより持続フレーム位置に結び付けられ、規定された場所にレンダリングされ得る。オブジェクトの場所が変化すると、XRデバイスは、環境マップの変化を検出し、ユーザによって装着される頭部ユニットの移動を実世界オブジェクトに対して決定してもよい。
いくつかの実施形態では、空間存続が持続座標フレーム(PCF)を通して提供され得る。PCFは、物理的世界内で認識される特徴(例えば、角、縁)を表す、1つまたはそれを上回る点に基づいて定義されてもよい。特徴は、それらがユーザインスタンスからXRシステムの別のユーザインスタンスと同一である可能性が高いように選択されてもよい。加えて、または代替として、算出された追跡経路(例えば、カメラ軌道)を実際の追跡経路から逸脱させ得る、追跡の間のドリフトは、仮想コンテンツの場所を、追跡マップのみに基づく、ローカルマップに対してレンダリングされるとき、場所からずれて現れさせ得る。空間のための追跡マップは、XRデバイスが経時的に場面のさらなる情報を収集するにつれて、精緻化され、ドリフトを補正してもよい。しかしながら、仮想コンテンツが、マップ精緻化の前に、実オブジェクト上に設置され、追跡マップから導出されるデバイスの世界座標フレームに対して保存される場合、仮想コンテンツは、実オブジェクトがマップ精緻化の間に移動したかのように変位されて現れ得る。PCFは、PCFが、特徴に基づいて定義され、特徴がマップ精緻化の間に移動するにつれて、更新されるため、マップ精緻化に従って更新されてもよい。
いくつかの実施形態では、PCFは、マップ座標系に対する平行移動および回転を伴う、6自由度を備えてもよい。PCFは、ローカルおよび/または遠隔記憶媒体内に記憶されてもよい。PCFの平行移動および回転は、例えば、記憶場所に応じて、マップ座標系に対して算出されてもよい。例えば、デバイスによってローカルで使用されるPCFは、デバイスの世界座標フレームに対する平行移動および回転を有してもよい。クラウド内のPCFは、規準マップの規準座標フレームに対する平行移動および回転を有してもよい。いくつかの実施形態では、PCFは、物理的世界の疎表現を提供し、それらが効率的に処理および転送され得るように、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、実空間内の1つまたはそれを上回る座標系に基づいて、動的マップを作成し、疎マップにわたって、持続座標フレーム(PCF)を生成するステップを含んでもよく、これは、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。
いくつかの実施形態では、追跡マップは、1つまたはそれを上回る画像フレーム、キーフレーム等、および/または1つまたはそれを上回る画像フレーム、キーフレーム等から導出されるデータを含んでもよい。全ての特徴および画像フレーム(またはキーフレーム)が、追跡マップの一部として留保され得るわけではないことに留意されたい。むしろ、有意義な情報(例えば、非冗長情報、所定の閾値を超えた十分に高正確度および/または分解能を伴う情報等)を提供する、特徴点または画像フレームが、追跡マップ内に留保され得る。したがって、追跡マップは、1つまたはそれを上回るカメラ、画像センサ、深度センサ、GPS(全地球測位)デバイス、無線デバイス(例えば、Wi-Fiまたはセルラー送受信機)等によって収集された、または集められたデータで構築されてもよい。
追跡マップは、環境マップとして記憶され、またはそれとマージまたはスティッチングされてもよく、これはまた、下記により詳細に説明されるであろう。追跡マップは、精緻化され、例えば、実際の追跡経路から逸脱する、算出された追跡経路(例えば、算出されたカメラ軌道)の任意の逸脱またはドリフトを補正してもよい。いくつかの実施形態では、追跡マップに対する有意義な情報を提供する画像は、さらに、追跡マップと統合される(例えば、追跡マップ内に内蔵される)、またはそれと関連付けられる(例えば、分離されて記憶されるが、追跡マップとリンクされる)、キーフレームとして選択されてもよい。いくつかの実施形態では、追跡マップは、姿勢およびPCF(持続座標フレーム)変換器に接続される、またはそれと関連付けられてもよい。
疎マップは、いくつかの実施形態では、特徴の全ての場所の代わりに、着目点または構造(例えば、角、縁、表面等)の場所を示す、データを含んでもよい。すなわち、物理的環境内のある点または構造は、疎マップから破棄されてもよい。疎マップは、例えば、1つまたはそれを上回る着目点または構造を抽出する、画像処理によって、マッピングされた着目点および/またはキーフレームのセットを用いて構築されてもよい。疎マップの一実施例は、上記に説明される追跡マップを含んでもよい。本実施例では、追跡マップは、頭部姿勢疎マップと見なされ得るが、他の疎マップは、常時、頭部姿勢データを含まなくてもよいことに留意されたい。疎マップは、いくつかの実施形態では、座標系を導出するために使用され得る、情報またはデータを含んでもよい。いくつかの他の実施形態では、疎マップは、座標系を含んでもよい、またはそれと関連付けられてもよい。そのような座標系は、下記により詳細に説明されるであろう、稠密マップ内のオブジェクトまたはその特徴の位置および/または配向を定義するために使用されてもよい。
稠密マップは、例えば、いくつかの実施形態では、メッシュまたは深度情報によって表される表面データ等のデータまたは情報を含んでもよい。これらの実施形態のうちのいくつかでは、稠密マップは、表面または深度情報から導出され得る、高レベル情報を含んでもよい。例えば、稠密マップは、平面および/または他のオブジェクトの場所および/または1つまたはそれを上回る特性に関するデータを含んでもよい。稠密マップは、疎マップのオリジナルデータを前述のいずれかのデータまたは情報で拡張させることによって、疎マップから拡張されてもよいが、疎マップは、いくつかの実施形態では、稠密マップの作成から独立して作成されてもよく、その逆も同様であることに留意されたい。
環境マップは、物理的世界の断片のデータまたは情報を含んでもよい。例えば、環境は、物理的環境(例えば、部屋の一部)内の物理的オブジェクトの場所、配向、および/または視線方向(XRデバイスを用いて知覚されるとき)および物理的オブジェクト(例えば、表面テクスチャ、色等)に関する他のデータを含んでもよい。環境マップは、例えば、カメラからの画像および/または深度センサからの深度データからのデータを用いて作成されてもよい。環境は、したがって、本明細書に説明される任意の他のマップより物理的環境についてのはるかに多くの詳細を含み得、複数のXRデバイス上で協働され(例えば、物理的世界を動き回る複数のXRデバイスによって作成される)、その間で共有され得る、パス可能3D世界を構築するために使用されてもよい。環境マップは、いくつかの実施形態では、例えば、必要とされないデータまたは情報を除去することによって、規準マップに変換される、またはまとめられてもよい。環境マップはまた、1つまたはそれを上回るパラメータ、無線ネットワークの受信された信号の強度等、または任意の他の所望または要求されるパラメータ等の複数の面積または体積属性と関連付けられてもよい。
規準マップは、各コンピューティングデバイスが規準マップを再使用し得るように、規準マップが複数のコンピューティングデバイスのそれぞれに対して位置特定および配向され得るように、データまたは情報を含んでもよい。規準マップは、したがって、いくつかの実施形態では、追跡マップまたは疎として、またはある他の環境では、環境マップとして生じてもよい。
規準マップは、単に、いくつかの実施形態では、規準マップ内に表されるオブジェクトの場所を決定するために十分なデータを含んでもよい、またはそれと関連付けられてもよい。例えば、規準マップは、着目オブジェクトまたはそれの一部の持続姿勢および/または持続座標フレームを含んでもよい、またはそれと関連付けられてもよい。規準マップは、本明細書に説明される任意の他のマップのように、例えば、別のマップ内の持続座標フレームとマージまたはスティッチングされ、新しい規準マップをレンダリングしてもよい(例えば、マップマージまたはスティッチングアルゴリズムを使用することによって)。いくつかの実施形態では、規準マップは、規準マップ内に記憶され、または別様に、データ構造内に別個に記憶され、1つまたはそれを上回る構造と関連付けられる、1つまたはそれを上回る持続座標フレーム(PCF)を含む、1つまたはそれを上回る構造(例えば、オブジェクト)を含む。規準マップ内に表される構造(例えば、オブジェクト)は、いくつかの実施形態では、持続座標フレーム情報を有し、オブジェクトを表す、単一PCFノードを含んでもよい。いくつかの他の実施形態では、規準マップ内に表される構造は、それぞれ、例えば、規準マップを生成または更新したデバイスの基準座標系に対するローカル座標フレームである、複数のPCFを含んでもよい。さらに、これらの複数のPCFは、それぞれ、オブジェクトの複数の対応する特徴を表してもよい。いくつかの実施形態では、規準フレームに関して定義され、および/またはその中に含まれる、モルフィズムまたは1つまたはそれを上回る関数はさらに、入力(例えば、入力場所、配向、姿勢、表面、座標系、および/または深度情報)を例えば、追跡マップ、疎マップ、稠密マップ等から受信し、変換(例えば、平行移動、回転、鏡映等のための行列演算)を実施することによって、入力に関する出力を生成する、1つまたはそれを上回る演算を備えてもよい。いくつかの実施形態では、規準マップは、それぞれ、1つまたはそれを上回る持続座標フレームによって表される、モルフィズム(または1つまたはそれを上回る関数)および1つまたはそれを上回る構造のみを含み、他のデータまたは情報を含まない。いくつかの他の実施形態では、規準マップは、モルフィズム、それぞれ、1つまたはそれを上回る持続座標フレームによって表される、1つまたはそれを上回る構造、および構造の記述または特性に対応する、データまたはメタデータを含む。持続座標フレームについてのさらなる詳細はさらに、下記に説明される。
具体的XRデバイスに対して位置特定されている、規準マップは、レベル上げされたマップと称され得る。いくつかの実施形態では、規準マップは、座標情報(例えば、点の座標、座標系等)を含み、また、例えば、少なくとも1つのPCF(持続座標フレーム)を含む、1つまたはそれを上回る構造を含んでもよい。追跡マップを位置特定するために、追跡マップに関する画像フレームまたはキーフレームは、規準マップに関する少なくとも1つのPCFと関連付けられてもよく、画像の姿勢は、次いで、姿勢情報を記憶する、追跡マップを位置特定するために使用されてもよい。
規準マップは、追跡マップを規準マップの中にマージまたはスティッチングするように試みることに応じて、追跡マップの少なくとも一部と規準マップの少なくとも一部との間の対応が存在するであろう可能性が高いように、追跡マップの領域に類似する領域を有する、規準マップを示し得る、個別のランク付けを用いて、ランク付けされてもよい。規準マップは、1つまたはそれを上回るタイルまたは定義されたエリアを有してもよく、規準マップと別のマップをマージまたはスティッチングするステップは、1つまたはそれを上回るタイルまたは定義されたエリアに限定され、コンピューティングリソース消費を節約してもよい。
規準マップは、いくつかの実施形態では、1つまたはそれを上回る持続座標フレーム(PCF)を定義する、特徴のセットを含んでもよいが、特徴のセットが規準マップまたは追跡マップのいずれか内の単一持続場所と関連付けられなければならないという要件は存在しない。いくつかの実施形態では、追跡マップ内の特徴点のセットの変換は、規準マップ内の特徴の候補セットと整合する。本変換は、追跡マップ全体に適用され、追跡マップおよび規準マップの重複部分が識別されることを可能にしてもよい。
複数の規準マップは、マージまたはスティッチングされ、新しい規準マップをレンダリングしてもよい。いくつかの実施形態では、規準マップの属性は、規準マップのエリアを形成するために使用される、追跡マップまたは複数のマップの属性から導出されてもよい。規準マップの持続座標フレームが、規準マップの中にマージまたはスティッチングされた追跡マップ内の持続姿勢に基づいて定義される、いくつかの実施形態では、持続座標フレームは、持続姿勢と同一属性を割り当てられてもよい。いくつかの実施形態では、規準マップは、惑星である地球上または空間内のある場所等、物理的空間内の規準マップの場所を示す、規準マップ識別子としての役割を果たす、複数の属性を含んでもよい。
いくつかの実施形態では、複数の規準マップが、これらの複数の規準マップが地球の表面上(または空間内)に存在し得るため、2次元パターンで地理的に配置されてもよい。これらの規準マップは、例えば、対応する経度および緯度または地球に対する位置によって、一意に識別可能であってもよい。これらの実施形態では、これらの規準マップは、個別の点によって表される、対応する物理的世界内の再構築された物理的オブジェクトの間取図を提供してもよい。規準マップ内のマップ点は、複数の特徴を含み得る、物理的オブジェクトの特徴を表し得る。サーバが追跡マップによって表される物理的世界の領域に関する規準マップを記憶しない、いくつかの実施形態では、追跡マップは、利用可能であるとき、関連データを有する規準マップとなるようにさらに処理され得る、初期規準マップとして記憶されてもよい。
XRシステムでは、各XRデバイスは、デバイスが動作するにつれて収集される、1つまたはそれを上回る画像からの情報を統合することによって、その物理的環境のローカル稠密マップを展開してもよい。ローカル稠密マップは、例えば、ボクセル、メッシュ、または平面を含む、1つまたはそれを上回る形態における環境の3D表現を含んでもよい。米国特許出願第16/229,799号は、3D表現をデバイス上で生成するステップを説明しており、参照することによってその全体として本明細書に組み込まれる。
いくつかの実施形態では、稠密情報は、そのフォーマットにかかわらず、疎マップに定義される座標フレームに対する姿勢付きであってもよい。デバイスは、例えば、ローカル疎追跡マップを維持してもよく、これは、特徴のセットを用いて構成され、持続姿勢を追跡マップ内に形成してもよい。表面の場所および配向は、例えば、そのような持続姿勢に対して表され得る。
各デバイス内の疎マップによって定義されたローカル座標フレームは、共有疎マップによって提供される共有基準フレームを通して、相互に関連し得る。そのような共有疎マップは、複数のデバイスからの追跡マップを、複数のデバイスを横断して共有される、より大きい疎マップの中にマージまたはスティッチングすることによって形成されてもよい。各デバイスは、その追跡マップに対して表される、その位置を、共有疎マップに対して位置特定し、複数のデバイスのそれぞれが、そのローカル追跡マップを使用して、共有マップの座標フレーム内に規定された3D環境内の場所および配向を識別することを可能にし得る。
デバイスは、稠密情報が空間的に相関され得るように、稠密情報の姿勢を定義するために疎マップを通して導出される、共有場所情報を使用してもよい。そのような空間相関を用いることで、稠密情報は、複数のデバイスから集約され、それぞれ、異なるローカル座標フレームを有し得る、複数のデバイスと共有され得る。
XRシステムは、共有疎マップによって提供される、持続空間情報に基づいて、動作を有効にするように、1つまたはそれを上回る技法を実装してもよい。共有空間情報は、持続マップによって表されてもよい。持続マップは、遠隔記憶媒体(例えば、クラウド)内に記憶されてもよい。例えば、ユーザによって装着されるウェアラブルデバイスは、オンにされた後、クラウド記憶装置等の持続記憶装置から、以前に作成および記憶された適切なマップを読み出してもよい。その以前に記憶されたマップは、以前のセッションの間、ユーザのウェアラブルデバイス上のセンサを用いて収集された環境についてのデータに基づいていてもよい。記憶されたマップを読み出すことは、ウェアラブルデバイス上のセンサを用いて物理的世界の走査を完了せずに、ウェアラブルデバイスの使用を有効にし得る。代替として、または加えて、システム/デバイスは、物理的世界の新しい領域に進入することに応じて、同様に、適切な記憶されたマップを読み出してもよい。
記憶されたマップは、それに対して各XRデバイス上のローカル基準フレームが関連し得る、規準形態で表されてもよい。マルチデバイスXRシステムでは、1つのデバイスによってアクセスされる記憶されたマップは、別のデバイスによって作成および記憶されていてもよく、および/または記憶されたマップによって表される物理的世界の少なくとも一部内に事前に存在する、複数のウェアラブルデバイス上のセンサによって収集された物理的世界についてのデータを集約することによって構築されていてもよい。
いくつかの実施形態では、持続空間情報は、ユーザ間で、およびアプリケーションを含む、分散型コンポーネント間で容易に共有され得る、方法で表されてもよい。規準マップは、物理的世界についての情報を、例えば、持続座標フレーム(PCF)として提供してもよい。PCFは、物理的世界内で認識される特徴のセットに基づいて、定義されてもよい。特徴は、それらがXRシステムのユーザセッション毎に同一である可能性が高いように選択されてもよい。PCFは、それらが効率的に処理および転送され得るように、疎らに存在し、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、1つまたはそれを上回るデバイスのローカル座標系に基づいて、動的マップを作成するステップを含んでもよい。これらのマップは、疎マップであって、マップを形成する際に使用される画像内で検出される特徴点のサブセットに基づいて、物理的世界を表す。持続座標フレーム(PCF)は、疎マップから生成されてもよく、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。これらの能力は、1つまたはそれを上回るXRデバイスによって作成された複数のマップをマージまたはスティッチングすることによって規準マップを形成するための技法によってサポートされてもよい。
デバイス毎の規準マップとローカルマップとの間の関係が、位置特定プロセスを通して決定されてもよい。その位置特定プロセスは、選択され、デバイスに送信される、規準マップのセットに基づいて、各XRデバイス上で実施されてもよい。代替として、または加えて、位置特定サービスは、クラウド内に実装され得るような遠隔プロセッサ上に提供されてもよい。
これらおよび他の機能をサポートするために、XRシステムは、ユーザデバイス上のセンサを用いて収集された物理的世界についてのデータに基づいて、1つまたはそれを上回る記憶されたマップを含む、持続空間情報を展開、維持、および使用する、コンポーネントを含んでもよい。これらのコンポーネントは、XRシステムを横断して分散されてもよく、いくつかは、例えば、ユーザデバイスの頭部搭載部分上で動作する。他のコンポーネントは、ローカルまたはパーソナルエリアネットワークを経由して頭部搭載部分に結合される、ユーザと関連付けられる、コンピュータ上で動作してもよい。さらにその他は、広域ネットワークを経由してアクセス可能な1つまたはそれを上回るサーバ等の遠隔場所で動作してもよい。
物理的世界についてのデータを複数のデバイス間で共有することは、仮想コンテンツの共有ユーザ体験を有効にし得る。例えば、同一の記憶されたマップへのアクセスを有する、2つのXRデバイスは両方とも、記憶されたマップに対して位置特定され得る。いったん位置特定されると、ユーザデバイスは、その場所をユーザデバイスによって維持される基準フレームに変換することによって、記憶されたマップへの参照によって規定された場所を有する、仮想コンテンツをレンダリングしてもよい。ユーザデバイスは、本ローカル基準フレームを使用して、ユーザデバイスのディスプレイを制御し、仮想コンテンツを規定された場所にレンダリングしてもよい。
記憶されたマップが、疎情報に対して姿勢付きである、稠密マップを含むとき、デバイスは、3D環境内の表面を表す、稠密情報を効率的に取得し得る。デバイスは、疎マップを通して追跡され得る、物理的世界を通したその運動に関連して、記憶されたマップにアクセスし、3D環境の最新稠密表現を維持し得る。
本明細書に説明される技法は、拡張または複合現実場面を提供する、限定された算出リソースを伴う、ウェアラブルまたはポータブルデバイスを含む、多くのタイプのデバイスとともに、かつ多くのタイプの場面のために、ともにまたは別個に使用されてもよい。いくつかの実施形態では、技法は、XRシステムの一部を形成する、1つまたはそれを上回るサービスによって実装されてもよい。
ARシステム概要
図1および2は、物理的世界の一部と併せて表示される、仮想コンテンツを伴う場面を図示する。例証目的のために、ARシステムが、XRシステムの実施例として使用される。図3-6Bは、本明細書に説明される技法に従って動作し得る、1つまたはそれを上回るプロセッサと、メモリと、センサと、ユーザインターフェースとを含む、例示的ARシステムを図示する。
図1を参照すると、屋外AR場面354が、描写されており、AR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム358を特徴とする、物理的世界公園状設定356が見える。これらのアイテムに加え、AR技術のユーザはまた、物理的世界コンクリートプラットフォーム358上に立っているロボット像357と、それによってマルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ352とが「見える」と知覚するが、これらの要素(例えば、アバタキャラクタ352およびロボット像357)は、物理的世界内には存在しない。ヒト視知覚および神経系の極端な複雑性に起因して、他の仮想または物理的世界画像要素の中で仮想画像要素の快適で、自然な感覚で、かつ豊かな提示を促進する、AR技術を生産することは、困難である。
そのようなAR場面は、ユーがARコンテンツを物理的世界内に設置することを可能にし、ARコンテンツが設置された物理的世界のマップ内の場所を決定し、設置されたARコンテンツが、例えば、異なるAR体験セッションの間、物理的世界内に表示するために再ロードされ得るように、AR場面を保存し、複数のユーザがAR体験を共有することを可能にする、追跡情報に基づいて物理的世界のマップを構築するシステムを用いて、達成され得る。本システムは、ユーザの周囲の物理的世界表面のデジタル表現を構築および更新し得る。本表現は、仮想オブジェクトを設置するため、物理学ベースの相互作用において、および仮想キャラクタ経路計画およびナビゲーションのため、またはその中で物理的世界についての情報が使用される、他の動作のために、完全または部分的に、ユーザと仮想コンテンツのレンダリングされた場所との間で物理的オブジェクトによってオクルードされるように現れるように、仮想コンテンツをレンダリングするために使用されてもよい。
図2は、いくつかの実施形態による、屋内AR場面400の別の実施例を描写し、XRシステムの例示的ユースケースを示す。例示的場面400は、壁と、壁の片側上の本棚と、部屋の角における床置きランプと、床と、ソファと、床上のコーヒーテーブルとを有する、居間である。これらの物理的アイテムに加え、AR技術のユーザはまた、ソファの背後の壁上の画像、ドアを通して飛んで来た鳥、本棚から外を覗いているシカ、およびコーヒーテーブル上に設置された風車の形態における装飾品等の仮想オブジェクトを知覚する。
壁上の画像に関して、AR技術は、壁の表面だけではなく、また、仮想オブジェクトを正しくレンダリングするために画像をオクルードする、ランプ形状等の部屋内のオブジェクトおよび表面についての情報も要求する。飛んで来た鳥に関して、AR技術は、オブジェクトおよび表面を回避する、または鳥が衝突する場合、跳ね返るように、現実的物理学を用いて鳥をレンダリングするために、部屋の周囲の全てのオブジェクトおよび表面についての情報を要求する。シカに関して、AR技術は、シカを設置すべき場所を算出するために、床またはコーヒーテーブル等の表面についての情報を要求する。風車に関して、本システムは、テーブルと別個のオブジェクトであることを識別し得、それが移動可能であることを決定し得る一方、棚の角または壁の角は、定常であると決定され得る。そのような特異性は、種々の動作のそれぞれにおいて使用または更新される場面の部分に関する決定において使用されてもよい。
仮想オブジェクトは、前のAR体験セッション内に設置されてもよい。新しいAR体験セッションが、居間で開始すると、AR技術は、仮想オブジェクトが、以前に設置された場所に正確に表示され、異なる視点から現実的に可視であることを要求する。例えば、風車は、書籍を伴わない異なる場所においても、テーブルの上方に漂流しているのではなく、書籍上に立っているように表示されるべきである。そのような漂流は、新しいAR体験セッションのユーザの場所が居間内で正確に位置特定されない場合に起こり得る。別の実施例として、ユーザが、風車が設置されたときの視点と異なる視点から風車を視認している場合、AR技術は、表示されている風車の対応する側を要求する。
場面は、視覚、聴覚、および/または触覚等、1つまたはそれを上回るユーザ感知を刺激し得る、ユーザインターフェースを含む、複数のコンポーネントを含む、システムを介して、ユーザに提示されてもよい。加えて、本システムは、場面の物理的部分内のユーザの位置および/または運動を含む、場面の物理的部分のパラメータを測定し得る、1つまたはそれを上回るセンサを含んでもよい。さらに、本システムは、メモリ等の関連付けられるコンピュータハードウェアを伴う、1つまたはそれを上回るコンピューティングデバイスを含んでもよい。これらのコンポーネントは、単一デバイスの中に統合されてもよい、または複数の相互接続されるデバイスを横断して分散されてもよい。いくつかの実施形態では、これらのコンポーネントのいくつかまたは全ては、ウェアラブルデバイスの中に統合されてもよい。
図3は、いくつかの実施形態による、物理的世界506と相互作用するARコンテンツの体験を提供するように構成される、ARシステム502を描写する。ARシステム502は、ディスプレイ508を含んでもよい。図示される実施形態では、ディスプレイ508は、ユーザが、一対のゴーグルまたは眼鏡のように、ディスプレイをその眼にわたって装着し得るように、ヘッドセットの一部としてユーザによって装着されてもよい。ディスプレイの少なくとも一部は、ユーザがシースルー現実510を観察し得るように、透明であってもよい。シースルー現実510は、ARシステム502の現在の視点内の物理的世界506の部分に対応し得、これは、ユーザが、ARシステムのディスプレイおよびセンサの両方を組み込む、ヘッドセットを装着し、物理的世界についての情報を入手している場合のユーザの視点に対応し得る。
ARコンテンツはまた、シースルー現実510上にオーバーレイされる、ディスプレイ508上に提示されてもよい。ARコンテンツとシースルー現実510との間の正確な相互作用をディスプレイ508上で提供するために、ARシステム502は、物理的世界506についての情報を捕捉するように構成される、センサ522を含んでもよい。
センサ522は、深度マップ512を出力する、1つまたはそれを上回る深度センサを含んでもよい。各深度マップ512は、それぞれ、深度センサに対する特定の方向における物理的世界506内の表面までの距離を表し得る、複数のピクセルを有してもよい。未加工深度データが、深度センサから生じ、深度マップを作成し得る。そのような深度マップは、深度センサが新しい画像を形成し得るほど高速に更新され得、これは、数百または数千回/秒であり得る。しかしながら、そのデータは、雑音が多くかつ不完全であって、図示される深度マップ上に黒色ピクセルとして示される、穴を有し得る。
システムは、画像センサ等の他のセンサを含んでもよい。画像センサは、他の方法において物理的世界を表すように処理され得る、単眼または立体視情報を入手してもよい。例えば、画像は、世界再構築コンポーネント516内で処理され、物理的世界内のオブジェクトの接続される部分を表す、メッシュを作成してもよい。例えば、色および表面テクスチャを含む、そのようなオブジェクトについてのメタデータも同様に、センサを用いて入手され、世界再構築物の一部として記憶されてもよい。
本システムはまた、物理的世界に対するユーザの頭部姿勢(または「姿勢」)についての情報を入手してもよい。いくつかの実施形態では、本システムの頭部姿勢追跡コンポーネントは、頭部姿勢をリアルタイムで算出するために使用されてもよい。頭部姿勢追跡コンポーネントは、例えば、3つの垂直軸における平行移動(例えば、前/後、上/下、左/右)と、3つの垂直軸を中心とした回転(例えば、ピッチ、ヨー、およびロール)とを含む、6自由度を伴う、座標フレーム内に、ユーザの頭部姿勢を表し得る。いくつかの実施形態では、センサ522は、頭部姿勢514を算出および/または決定するために使用され得る、慣性測定ユニット(「IMU」)を含んでもよい。深度マップのための頭部姿勢514は、例えば、6自由度を伴う深度マップを捕捉する、センサの現在の視点を示し得るが、頭部姿勢514は、画像情報を物理的世界の特定の部分に関連させる、またはユーザの頭部上に装着されるディスプレイの位置を物理的世界に関連させるように、他の目的のために使用されてもよい。
いくつかの実施形態では、頭部姿勢情報は、画像内のオブジェクトを分析することから等、IMUから以外の方法において導出されてもよい。例えば、頭部姿勢追跡コンポーネントは、カメラによって捕捉された視覚的情報と、IMUによって捕捉された慣性情報とに基づいて、物理的オブジェクトに対するARデバイスの相対的位置および配向を算出してもよい。頭部姿勢追跡コンポーネントは、次いで、例えば、物理的オブジェクトに対するARデバイスの算出された相対的位置および配向と物理的オブジェクトの特徴を比較することによって、ARデバイスの頭部姿勢を算出してもよい。いくつかの実施形態では、その比較は、経時的に捕捉された画像内のこれらの特徴の位置の変化がユーザの頭部姿勢の変化と関連付けられ得るように、経時的に安定する、センサ522のうちの1つまたはそれを上回るものを用いて捕捉された画像内の特徴を識別することによって、行われてもよい。
本発明者らは、例えば、30Hzで動作する、4つのビデオグラフィックアレイ(VGA)カメラ、1kHzで動作する、1つの慣性測定ユニット(IMU)、単一の高度RISC機械(ARM)コアの演算能力、1GB未満のメモリ、および帯域幅100Mbp未満のネットワークとともに構成され得る、XRデバイスと接続する算出リソースの低使用量を伴って、1kHzの周波数において頭部姿勢を推定する等、より没入型のユーザ体験のためのXR場面を提供するようにXRシステムを動作させるための技法を認識し、その真価を認めた。これらの技法は、マップを生成および維持し、頭部姿勢を推定するために要求される、処理を低減させること、および低算出オーバーヘッドを伴って、データを提供および消費することに関する。XRシステムは、マッチングされた視覚的特徴に基づいて、その姿勢を計算してもよい。米国特許出願第16/221,065号は、ハイブリッド追跡を説明しており、参照することによってその全体として本明細書に組み込まれる。
いくつかの実施形態では、ARデバイスは、ユーザがARデバイスとともに物理的世界全体を通して移動するにつれて捕捉された一連の画像フレーム内の連続画像内で認識される、特徴点から、マップを構築してもよい。各画像フレームは、ユーザが移動するにつれて、異なる姿勢から得られ得るが、本システムは、連続画像フレームの特徴と以前に捕捉された画像フレームをマッチングさせることによって、各連続画像フレームの特徴の配向を調節し、初期画像フレームの配向をマッチングさせてもよい。同一特徴を表す点が、以前に収集された画像フレームからの対応する特徴点にマッチングするであろうように、連続画像フレームの平行移動は、各連続画像フレームを整合させ、以前に処理された画像フレームの配向をマッチングさせるために使用されることができる。結果として生じるマップ内のフレームは、第1の画像フレームがマップに追加されたときに確立される共通配向を有し得る。本マップは、共通基準フレーム内の特徴点のセットとともに、現在の画像フレームからの特徴をマップにマッチングさせることによって、物理的世界内のユーザの姿勢を決定するために使用されてもよい。いくつかの実施形態では、本マップは、追跡マップと呼ばれ得る。
環境内のユーザの姿勢の追跡を有効にすることに加え、本マップは、世界再構築コンポーネント516等のシステムの他のコンポーネントがユーザに対する物理的オブジェクトの場所を決定することを可能にし得る。世界再構築コンポーネント516は、深度マップ512および頭部姿勢514およびセンサからの任意の他のデータを受信し、そのデータを再構築物518の中に統合してもよい。再構築物518は、センサデータより完全かつより雑音が少なくあり得る。世界再構築コンポーネント516は、経時的な複数の視点からのセンサデータの空間および時間的平均を使用して、再構築物518を更新してもよい。
再構築物518は、例えば、ボクセル、メッシュ、平面等を含む、1つまたはそれを上回るデータフォーマットにおいて、物理的世界の表現を含んでもよい。異なるフォーマットは、物理的世界の同一部分の代替表現を表し得る、または物理的世界の異なる部分を表し得る。図示される実施例では、再構築物518の左側には、物理的世界の一部が、グローバル表面として提示され、再構築物518の右側には、物理的世界の一部が、メッシュとして提示される。
いくつかの実施形態では、頭部姿勢コンポーネント514によって維持されるマップは、物理的世界の維持され得る、他のマップに対して疎隔されてもよい。場所および可能性として表面の他の特性についての情報を提供するのではなく、疎マップは、角または縁等の着目点および/または構造の場所を示してもよい。いくつかの実施形態では、マップは、センサ522によって捕捉されるような画像フレームを含んでもよい。これらのフレームは、着目点および/または構造を表し得る、特徴に低減され得る。各フレームと併せて、そこからフレームが入手されたユーザの姿勢についての情報もまた、マップの一部として記憶されてもよい。いくつかの実施形態では、センサによって入手された全ての画像が、記憶される場合とそうではない場合がある。いくつかの実施形態では、本システムは、それらがセンサによって収集されるにつれて、画像を処理し、さらなる算出のために、画像フレームのサブセットを選択してもよい。選択は、情報の追加を限定するが、マップが有用な情報を含有することを確実にする、1つまたはそれを上回る基準に基づいてもよい。本システムは、例えば、マップにすでに追加されている以前の画像フレームとの重複に基づいて、または定常オブジェクトを表す可能性が高いと決定された十分な数の特徴を含有する、画像フレームに基づいて、新しい画像フレームをマップに追加してもよい。いくつかの実施形態では、選択された画像フレームまたは選択された画像フレームからの特徴の群は、マップのためのキーフレームとしての役割を果たし得、これは、空間情報を提供するために使用される。
いくつかの実施形態では、マップを構築するときに処理される、データの量は、マッピングされた点の集合およびキーフレームを伴う、疎マップを構築し、および/またはマップをブロックに分割し、ブロック別の更新を有効にすること等によって、低減されてもよい。マッピングされた点は、環境内の着目点と関連付けられ得る。キーフレームは、カメラ捕捉データから選択された情報を含んでもよい。米国特許出願第16/520,582号は、位置特定マップを決定および/または評価するステップを説明しており、参照することによってその全体として本明細書に組み込まれる。
ARシステム502は、物理的世界の複数の視点からのセンサデータを経時的に統合してもよい。センサの姿勢(例えば、位置および配向)が、センサを含むデバイスが移動されるにつれて追跡されてもよい。センサのフレーム姿勢およびそれが他の姿勢とどのように関連するかが、把握されるにつれて、物理的世界のこれらの複数の視点はそれぞれ、物理的世界の単一の組み合わせられた再構築物の中にともに融合されてもよく、これは、マップのための抽象層としての役割を果たし、空間情報を提供し得る。再構築物は、空間および時間的平均(すなわち、経時的な複数の視点からのデータの平均)または任意の他の好適な方法を使用することによって、オリジナルセンサデータより完全かつ雑音が少なくなり得る。
図3に図示される実施形態では、マップは、その中に単一ウェアラブルデバイスのユーザが存在する、物理的世界の一部を表す。そのシナリオでは、マップ内のフレームと関連付けられる頭部姿勢は、セッションの開始時における単一デバイスに関する初期配向に対する配向を示す、ローカル頭部姿勢として表されてもよい。例えば、頭部姿勢は、デバイスが、オンにされた、または別様に、環境を走査し、その環境の表現を構築するように動作されたときの、初期頭部姿勢に対して追跡されてもよい。
物理的世界のその部分を特徴付けるコンテンツと組み合わせて、マップは、メタデータを含んでもよい。メタデータは、例えば、マップを形成するために使用されるセンサ情報の捕捉時間を示してもよい。メタデータは、代替として、または加えて、マップを形成するために使用される情報の捕捉時間におけるセンサの場所を示してもよい。場所は、直接、GPSチップからの情報等を用いて、または間接的に、センサデータが収集されていた間の1つまたはそれを上回る無線アクセスポイントから受信された信号の強度を示す、無線(例えば、Wi-Fi)シグネチャ等を用いて、および/またはセンサデータが収集された間にそれに対してユーザデバイスが接続した無線アクセスポイントのBSSID等の識別子を用いて、表されてもよい。
再構築物518は、オクルージョン処理または物理学ベースの処理のための物理的世界の表面表現の生産等、AR機能のために使用されてもよい。本表面表現は、ユーザが移動する、または物理的世界内のオブジェクトが変化するにつれて、変化してもよい。再構築物518の側面は、例えば、他のコンポーネントによって使用され得る、世界座標内の変化するグローバル表面表現を生産する、コンポーネント520によって使用されてもよい。
ARコンテンツは、本情報に基づいて、ARアプリケーション504等によって生成されてもよい。ARアプリケーション504は、例えば、視覚的オクルージョン、物理学ベースの相互作用、および環境推測等の物理的世界についての情報に基づいて、1つまたはそれを上回る機能を実施する、ゲームプログラムであってもよい。これは、世界再構築コンポーネント516によって生産された再構築物518から異なるフォーマットにおけるデータにクエリすることによって、これらの機能を実施してもよい。いくつかの実施形態では、コンポーネント520は、物理的世界の着目領域内の表現が変化すると、更新を出力するように構成されてもよい。その着目領域は、例えば、ユーザの視野内の一部等、システムのユーザの近傍内の物理的世界の一部に近似するように設定される、またはユーザの視野内に入るように投影(予測/決定)されてもよい。
ARアプリケーション504は、本情報を使用して、ARコンテンツを生成および更新してもよい。ARコンテンツの仮想部分は、シースルー現実510と組み合わせて、ディスプレイ508上に提示され、現実的ユーザ体験を作成してもよい。
いくつかの実施形態では、AR体験は、遠隔処理および/または遠隔データ記憶装置を含み得る、システムの一部であり得る、ウェアラブルディスプレイデバイス、および/または、いくつかの実施形態では、他のユーザによって装着される他のウェアラブルディスプレイデバイスであり得る、XRデバイスを通して、ユーザに提供されてもよい。図4は、例証の便宜上、単一ウェアラブルデバイスを含む、システム580(以降、「システム580」と称される)の実施例を図示する。システム580は、頭部搭載型ディスプレイデバイス562(以降、「ディスプレイデバイス562」と称される)と、ディスプレイデバイス562の機能をサポートする、種々の機械および電子モジュールおよびシステムとを含む。ディスプレイデバイス562は、フレーム564に結合されてもよく、これは、ディスプレイシステムのユーザまたは視認者560(以降、「ユーザ560」と称される)によって装着可能であって、ディスプレイデバイス562をユーザ560の眼の正面に位置付けるように構成される。種々の実施形態によると、ディスプレイデバイス562は、シーケンシャルディスプレイであってもよい。ディスプレイデバイス562は、単眼または両眼であってもよい。いくつかの実施形態では、ディスプレイデバイス562は、図3におけるディスプレイ508の実施例であってもよい。
いくつかの実施形態では、スピーカ566が、フレーム564に結合され、ユーザ560の外耳道に近接して位置付けられる。いくつかの実施形態では、示されない、別のスピーカが、ユーザ560の別の外耳道に隣接して位置付けられ、ステレオ/調節可能音制御を提供する。ディスプレイデバイス562は、有線導線または無線コネクティビティ568等によって、ローカルデータ処理モジュール570に動作可能に結合され、これは、フレーム564に固定して取り付けられる、ユーザ560によって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ560に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載されてもよい。
ローカルデータ処理モジュール570は、プロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを含んでもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、a)画像捕捉デバイス(カメラ等)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、および/またはジャイロスコープ等の(例えば、フレーム564に動作可能に結合される、または別様にユーザ560に取り付けられ得る)センサから捕捉されるデータ、および/またはb)可能性として、処理または読出後にディスプレイデバイス562への通過のために、遠隔処理モジュール572および/または遠隔データリポジトリ574を使用して入手および/または処理されるデータを含む。
いくつかの実施形態では、ウェアラブルデバイスは、遠隔コンポーネントと通信してもよい。ローカルデータ処理モジュール570は、それぞれ、有線または無線通信リンク等を介して、通信リンク576、578によって、遠隔処理モジュール572および遠隔データリポジトリ574に、これらの遠隔モジュール572、574が、相互に動作可能に結合され、ローカルデータ処理モジュール570へのリソースとして利用可能であるように、動作可能に結合されてもよい。さらなる実施形態では、遠隔データリポジトリ574に加えて、またはその代替として、ウェアラブルデバイスは、クラウドベースの遠隔データリポジトリおよび/またはサービスにアクセスすることができる。いくつかの実施形態では、上記に説明される頭部姿勢追跡コンポーテントは、少なくとも部分的に、ローカルデータ処理モジュール570内に実装されてもよい。いくつかの実施形態では、図3における世界再構築コンポーネント516は、少なくとも部分的に、ローカルデータ処理モジュール570内に実装されてもよい。例えば、ローカルデータ処理モジュール570は、少なくとも部分的に、データの少なくとも一部に基づいて、コンピュータ実行可能命令を実行し、マップおよび/または物理的世界表現を生成するように構成されてもよい。
いくつかの実施形態では、処理は、ローカルおよび遠隔プロセッサを横断して分散されてもよい。例えば、ローカル処理が、そのユーザのデバイス上のセンサを用いて収集されたセンサデータに基づいて、マップ(例えば、追跡マップ)をユーザデバイス上に構築するために使用されてもよい。そのようなマップは、そのユーザのデバイス上のアプリケーションによって使用されてもよい。加えて、以前に作成されたマップ(例えば、規準マップ)は、遠隔データリポジトリ574内に記憶されてもよい。好適な記憶されたまたは持続マップが、利用可能である場合、デバイス上にローカルで作成された追跡マップの代わりに、またはそれに加え、使用されてもよい。いくつかの実施形態では、追跡マップは、対応が、ユーザがシステムをオンにした時間におけるウェアラブルデバイスの位置に対して配向され得る、追跡マップと、1つまたはそれを上回る持続特徴に対して配向され得る、規準マップとの間に確立されるように、記憶されたマップに対して位置特定されてもよい。いくつかの実施形態では、持続マップは、ユーザデバイス上にロードされ、ユーザデバイスが、走査の間に入手されたセンサデータからのユーザの完全な環境の追跡マップを構築するための場所の走査と関連付けられる遅延を伴わずに、仮想コンテンツをレンダリングすることを可能にし得る。いくつかの実施形態では、ユーザデバイスは、持続マップをユーザデバイス上にダウンロードする必要なく、(例えば、クラウド上に記憶された)遠隔持続マップにアクセスしてもよい。
いくつかの実施形態では、空間情報が、ウェアラブルデバイスから、デバイスを位置特定し、クラウドサービス上に維持されるマップに記憶するように構成される、クラウドサービス等の遠隔サービスに通信されてもよい。一実施形態によると、位置特定処理は、デバイス場所を、規準マップ等の既存のマップにマッチングさせ、仮想コンテンツをウェアラブルデバイス場所にリンクさせる、変換を返す、クラウド内で生じてもよい。そのような実施形態では、本システムは、マップを遠隔リソースからウェアラブルデバイスに通信することを回避することができる。他の実施形態は、デバイスベースおよびクラウドベースの位置特定の両方のために構成され、例えば、ネットワークコネクティビティが利用不可能である、またはユーザがクラウドベースの位置特定を有効にしないことを選ぶ場合、機能性を有効にすることができる。
代替として、または加えて、追跡マップは、以前に記憶されたマップとマージまたはスティッチングされ、それらのマップを拡張させる、またはその品質を改良してもよい。好適な以前に作成された環境マップが利用可能であるか、および/または追跡マップと1つまたはそれを上回る記憶された環境マップをマージまたはスティッチングするかどうかを決定するための処理は、ローカルデータ処理モジュール570または遠隔処理モジュール572内で行われてもよい。
いくつかの実施形態では、ローカルデータ処理モジュール570は、データおよび/または画像情報を分析および処理するように構成される、1つまたはそれを上回るプロセッサ(例えば、グラフィック処理ユニット(GPU))を含んでもよい。いくつかの実施形態では、ローカルデータ処理モジュール570は、単一プロセッサ(例えば、シングルコアまたはマルチコアARMプロセッサ)を含んでもよく、これは、ローカルデータ処理モジュール570の算出予算を限定するが、より小型のデバイスを有効にするであろう。いくつかの実施形態では、世界再構築コンポーネント516は、単一ARMコアの残りの算出予算が、例えば、メッシュの抽出等の他の使用のためにアクセスされ得るように、単一高度RISC機械(ARM)コアより少ない算出予算を使用して、物理的世界表現をリアルタイムで非所定の空間上に生成してもよい。
いくつかの実施形態では、遠隔データリポジトリ574は、デジタルデータ記憶設備を含んでもよく、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカルデータ処理モジュール570において実施され、遠隔モジュールからの完全に自律的な使用を可能にする。いくつかの実施形態では、全てのデータが、記憶され、全てまたは大部分の算出は、遠隔データリポジトリ574内で実施され、より小さいデバイスを可能にする。世界再構築物は、例えば、全体または部分的に、本リポジトリ574内に記憶されてもよい。
その中にデータが、遠隔で記憶され、ネットワークを経由してアクセス可能である、実施形態では、データは、拡張現実システムの複数のユーザによって共有されてもよい。例えば、ユーザデバイスは、その追跡マップをアップロードし、環境マップのデータベース内に拡張されてもよい。いくつかの実施形態では、追跡マップのアップロードは、ウェアラブルデバイスとのユーザセッションの終了時に生じる。いくつかの実施形態では、追跡マップのアップロードは、持続的に、半持続的に、断続的に、事前に定義された時間において、前のアップロードから事前に定義された周期後、またはあるイベントによってトリガされると、生じ得る。任意のユーザデバイスによってアップロードされた追跡マップは、そのユーザデバイスまたは任意の他のユーザデバイスからのデータに基づくかどうかにかかわらず、以前に記憶されたマップを拡張または改良するために使用されてもよい。同様に、ユーザデバイスにダウンロードされた持続マップは、そのユーザデバイスまたは任意の他のユーザデバイスからのデータに基づいてもよい。このように、高品質環境マップが、ARシステムを用いたその体験を改良するために、ユーザに容易に利用可能であり得る。
さらなる実施形態では、持続マップのダウンロードは、(例えば、クラウド内の)遠隔リソース上で実行される位置特定に基づいて、限定および/または回避され得る。そのような構成では、ウェアラブルデバイスまたは他のXRデバイスは、クラウドサービスに、姿勢情報と結合される、特徴情報(例えば、特徴情報内に表される特徴が感知された時点におけるデバイスに関する測位情報)を通信する。クラウドサービスの1つまたはそれを上回るコンポーネントは、特徴情報と個別の記憶されたマップ(例えば、規準マップ)をマッチングさせ、XRデバイスによって維持される追跡マップと規準マップの座標系との間の変換を生成してもよい。規準マップに対して位置特定されたその追跡マップを有する、各XRデバイスは、その独自の追跡に基づいて、仮想コンテンツを規準マップに対して規定された場所に正確にレンダリングし得る。
いくつかの実施形態では、ローカルデータ処理モジュール570は、バッテリ582に動作可能に結合される。いくつかの実施形態では、バッテリ582は、市販のバッテリ等のリムーバブル電源である。他の実施形態では、バッテリ582は、リチウムイオンバッテリである。いくつかの実施形態では、バッテリ582は、ユーザ560が、電源に繋がれ、リチウムイオンバッテリを充電する必要なく、またはシステム580をシャットオフし、バッテリを交換する必要なく、より長い時間周期にわたってシステム580を動作させ得るように、システム580の非動作時間の間、ユーザ560によって充電可能な内部リチウムイオンバッテリと、リムーバブルバッテリとの両方を含む。
図5Aは、ユーザ530が物理的世界環境532(以降、「環境532」と称される)を通して移動するにつれてARコンテンツをレンダリングする、ARディスプレイシステムを装着している、ユーザ530を図示する。ユーザの移動経路に沿ってARシステムによって捕捉された情報は、1つまたはそれを上回る追跡マップの中に処理されてもよい。ユーザ530は、ARディスプレイシステムを位置534に位置付け、ARディスプレイシステムは、位置534に対するパス可能世界(例えば、物理的世界内の実オブジェクトの変化に伴って記憶および更新され得る、物理的世界内の実オブジェクトのデジタル表現)の周囲情報を記録する。その情報は、画像、特徴、指向性オーディオ入力、または他の所望のデータと組み合わせて、姿勢として記憶されてもよい。位置534は、例えば、追跡マップの一部として、データ入力536に対して集約され、少なくともパス可能世界モジュール538によって処理され、これは、例えば、図4の遠隔処理モジュール572上の処理によって実装されてもよい。いくつかの実施形態では、パス可能世界モジュール538は、処理された情報が、レンダリング仮想コンテンツ内で使用される物理的オブジェクトについての他の情報と組み合わせて、物理的世界内のオブジェクトの場所を示し得るように、頭部姿勢コンポーネント514と、世界再構築コンポーネント516とを含んでもよい。
パス可能世界モジュール538は、データ入力536から決定されるように、少なくとも部分的に、ARコンテンツ540が物理的世界内に設置され得る場所および方法を決定する。ARコンテンツは、ユーザインターフェースを介して、物理的世界の表現およびARコンテンツの両方を提示することによって、物理的世界内に「設置」され、ARコンテンツは、物理的世界内のオブジェクトと相互作用しているかのようにレンダリングされ、物理的世界内のオブジェクトは、ARコンテンツが、適切なとき、それらのオブジェクトのユーザのビューを不明瞭にしているかのように提示される。いくつかの実施形態では、ARコンテンツは、固定要素542(例えば、テーブル)の一部を再構築物(例えば、再構築物518)から適切に選択し、ARコンテンツ540の形状および位置を決定することによって、設置されてもよい。実施例として、固定要素は、テーブルであってもよく、仮想コンテンツは、そのテーブル上に現れるように位置付けられてもよい。いくつかの実施形態では、ARコンテンツは、現在の視野または推定される将来的視野であり得る、視野544内の構造の中に設置されてもよい。いくつかの実施形態では、ARコンテンツは、物理的世界のモデル546(例えば、メッシュ)に対して持続されてもよい。
描写されるように、固定要素542は、ユーザ530にそれが見える度に、システムが固定要素542にマッピングする必要なく、ユーザ530が固定要素542上にコンテンツを知覚し得るように、パス可能世界モジュール538内に記憶され得る、物理的世界内の任意の固定要素のためのプロキシ(例えば、デジタルコピー)としての役割を果たす。固定要素542は、したがって、前のモデル化セッションからの、または別個のユーザから決定されるものであるものの、複数のユーザによる将来的参照のためにパス可能世界モジュール538によって記憶される、メッシュモデルであってもよい。したがって、パス可能世界モジュール538は、環境532を以前にマッピングされた環境から認識し、ユーザ530のデバイスが環境532の全部または一部を最初にマッピングすることなく、ARコンテンツを表示し、算出プロセスおよびサイクルを節約し、任意のレンダリングされたARコンテンツの待ち時間を回避し得る。
物理的世界のメッシュモデル546は、ARディスプレイシステムによって作成されてもよく、ARコンテンツ540と相互作用し、表示するための適切な表面およびメトリックは、完全または部分的に、モデルを再作成する必要なく、ユーザ530または他のユーザによる将来的読出のために、パス可能世界モジュール538によって記憶されることができる。いくつかの実施形態では、データ入力536は、パス可能世界モジュール538に、1つまたはそれを上回る固定要素のうちのどの固定要素542が利用可能であるかどうか、固定要素542上に最後に設置されたARコンテンツ540、およびその同一コンテンツを表示すべきかどうか(そのようなARコンテンツは、ユーザが特定のパス可能世界モデルを視認しているかどうかにかかわらず、「持続」コンテンツである)を示すための、地理的場所、ユーザ識別、および現在のアクティビティ等の入力である。
オブジェクトが固定されていると見なされる(例えば、台所のテーブル)、実施形態においてさえ、パス可能世界モジュール538は、物理的世界の変化の可能性を考慮するために、物理的世界のモデル内のそれらのオブジェクトを随時更新してもよい。固定されたオブジェクトのモデルは、非常に低頻度で更新されてもよい。物理的世界内の他のオブジェクトは、移動している、または別様に固定されていると見なされないものであり得る(例えば、台所の椅子)。AR場面を現実的感覚でレンダリングするために、ARシステムは、これらの非固定オブジェクトの位置を、固定オブジェクトを更新するために使用されるものよりはるかに高い頻度で更新してもよい。物理的世界内のオブジェクトの全ての正確な追跡を有効にするために、ARシステムは、1つまたはそれを上回る画像センサを含む、複数のセンサから情報を引き出してもよい。
図5Bは、視認光学系アセンブリ548および付帯コンポーネントの概略例証である。いくつかの実施形態では、2つの眼追跡カメラ550が、ユーザの眼549に向かって指向され、眼形状、眼瞼オクルージョン、瞳孔方向、およびユーザの眼549上の閃光等、ユーザの眼549のメトリックを検出する。
いくつかの実施形態では、センサのうちの1つは、飛行時間センサ等の深度センサ551であって、信号を世界に放出し、近隣のオブジェクトからのそれらの信号の反射を検出し、所与のオブジェクトまでの距離を決定してもよい。深度センサは、例えば、オブジェクトが、それらのオブジェクトの運動またはユーザの姿勢の変化のいずれかの結果として、ユーザの視野に進入したかどうかを迅速に決定し得る。しかしながら、ユーザの視野内のオブジェクトの位置についての情報は、代替として、または加えて、他のセンサを用いて収集されてもよい。深度情報は、例えば、立体視的画像センサまたはプレノプティックセンサから取得されてもよい。
いくつかの実施形態では、世界カメラ552は、周辺より広いビューを記録し、マッピングし、および/または別様に、環境532のモデルを作成し、ARコンテンツに影響を及ぼし得る、入力を検出する。いくつかの実施形態では、世界カメラ552および/またはカメラ553は、グレースケールおよび/またはカラー画像センサであってもよく、これは、グレースケールおよび/またはカラー画像フレームを固定される時間インターバルにおいて出力してもよい。カメラ553はさらに、ユーザの視野内の物理的世界画像を具体的時間において捕捉してもよい。フレームベースの画像センサのピクセルは、その値が不変である場合でも、反復的にサンプリングされてもよい。世界カメラ552、カメラ553、および深度センサ551はそれぞれ、554、555、および556の個別の視野を有し、図34Aに描写される物理的世界環境532等の物理的世界場面からのデータを収集および記録する。
慣性測定ユニット557は、視認光学系アセンブリ548の移動および配向を決定してもよい。いくつかの実施形態では、慣性測定ユニット557は、重力の方向を示す、出力を提供してもよい。いくつかの実施形態では、各コンポーネントは、少なくとも1つの他のコンポーネントに動作可能に結合される。例えば、深度センサ551は、ユーザの眼549が見ている実際の距離に対する測定された遠近調節の確認として、眼追跡カメラ550に動作可能に結合される。
視認光学系アセンブリ548は、図34Bに図示されるコンポーネントのうちのいくつかを含んでもよく、図示されるコンポーネントの代わりに、またはそれに加え、コンポーネントを含んでもよいことを理解されたい。いくつかの実施形態では、例えば、視認光学系アセンブリ548は、4つの代わりに、2つの世界カメラ552を含んでもよい。代替として、または加えて、カメラ552および553は、その完全視野の可視光画像を捕捉する必要はない。視認光学系アセンブリ548は、他のタイプのコンポーネントを含んでもよい。いくつかの実施形態では、視認光学系アセンブリ548は、1つまたはそれを上回る動的視覚センサ(DVS)を含んでもよく、そのピクセルは、光強度の相対的変化が閾値を超えることに非同期して応答してもよい。
いくつかの実施形態では、視認光学系アセンブリ548は、飛行時間情報に基づく深度センサ551を含まなくてもよい。いくつかの実施形態では、例えば、視認光学系アセンブリ548は、1つまたはそれを上回るプレノプティックカメラを含んでもよく、そのピクセルは、入射光の光強度および角度を捕捉してもよく、そこから深度情報が、決定されることができる。例えば、プレノプティックカメラは、透過性回折マスク(TDM)でオーバーレイされた画像センサを含んでもよい。代替として、または加えて、プレノプティックカメラは、角度感知ピクセルおよび/または位相検出自動焦点ピクセル(PDAF)および/またはマイクロレンズアレイ(MLA)を含有する、画像センサを含んでもよい。そのようなセンサは、深度センサ551の代わりに、またはそれに加え、深度情報源としての役割を果たし得る。
また、図5Bにおけるコンポーネントの構成は、実施例として提供されることを理解されたい。視認光学系アセンブリ548は、任意の好適な構成を伴うコンポーネントを含んでもよく、これは、ユーザに、特定のセットのコンポーネントのために実践的な最大視野を提供するように設定されてもよい。例えば、視認光学系アセンブリ548が、1つの世界カメラ552を有する場合、世界カメラは、側面の代わりに、視認光学系アセンブリの中心領域内に設置されてもよい。
視認光学系アセンブリ548内のセンサからの情報は、システム内のプロセッサのうちの1つまたはそれを上回るものに結合されてもよい。プロセッサは、ユーザに仮想コンテンツが物理的世界内のオブジェクトと相互作用するように知覚させるようにレンダリングされ得る、データを生成してもよい。そのレンダリングは、物理的および仮想オブジェクトの両方を描写する、画像データを生成することを含め、任意の好適な方法において実装されてもよい。他の実施形態では、物理的および仮想コンテンツは、ユーザが物理的世界を透かし見る、ディスプレイデバイスの不透明度を変調させることによって、1つの場面に描写されてもよい。不透明度は、仮想オブジェクトの外観を作成し、ユーザに仮想オブジェクトによってオクルードされる物理的世界内のオブジェクトが見えないように遮断するように、制御されてもよい。いくつかの実施形態では、画像データは、仮想コンテンツがユーザインターフェースを通して視認されるとき、物理的世界と現実的に相互作用するように、ユーザによって知覚されるように修正され得る(例えば、コンテンツをクリッピングし、オクルージョンを考慮する)、仮想コンテンツのみを含んでもよい。
コンテンツが特定の場所におけるオブジェクトの印象を作成するために表示され得る、視認光学系アセンブリ548上の場所は、視認光学系アセンブリの物理学に依存し得る。加えて、物理的世界に対するユーザの頭部の姿勢およびユーザの眼が見ている方向は、コンテンツが現れるであろう視認光学系アセンブリ上の特定の場所に表示される、物理的世界コンテンツ内の場所に影響を及ぼすであろう。上記に説明されるようなセンサは、センサ入力を受信するプロセッサが、オブジェクトが、視認光学系アセンブリ548上にレンダリングされ、ユーザのために所望の外観を作成すべき場所を算出し得るように、本情報を収集し、および/またはそこから本情報が計算され得る、情報を供給してもよい。
コンテンツがユーザに提示される方法にかかわらず、物理的世界のモデルが、仮想オブジェクトの形状、位置、運動、および可視性を含む、物理的オブジェクトによって影響され得る、仮想オブジェクトの特徴が、正しく算出され得るように、使用され得る。いくつかの実施形態では、モデルは、物理的世界の再構築物、例えば、再構築物518を含んでもよい。
そのモデルは、ユーザのウェアラブルデバイス上のセンサから収集されたデータから作成されてもよい。但し、いくつかの実施形態では、モデルは、複数のユーザによって収集されたデータから作成されてもよく、これは、全てのユーザから遠隔のコンピューティングデバイス内に集約されてもよい(かつ「クラウド内」にあってもよい)。
モデルは、少なくとも部分的に、例えば、図6Aにさらに詳細に描写される図3の世界再構築コンポーネント516等の世界再構築システムによって作成されてもよい。世界再構築コンポーネント516は、物理的世界の一部のための表現を生成、更新、および記憶し得る、知覚モジュール660を含んでもよい。いくつかの実施形態では、知覚モジュール660は、センサの再構築範囲内の物理的世界の一部を複数のボクセルとして表し得る。各ボクセルは、物理的世界内の所定の体積の3D立方体に対応し、表面情報を含み、ボクセルによって表される体積内に表面が存在するかどうかを示し得る。ボクセルは、その対応する体積が、物理的オブジェクトの表面を含むと決定されている、空であると決定されている、またはセンサを用いてまだ測定されていない、したがって、その値が未知であるかどうかを示す、値を割り当てられてもよい。空または未知であると決定されたボクセルを示す値は、明示的に記憶される必要はなく、ボクセルの値は、空または未知であると決定されたボクセルに関する情報を記憶しないことを含め、任意の好適な方法において、コンピュータメモリ内に記憶されてもよいことを理解されたい。
持続される世界表現のための情報を生成することに加え、知覚モジュール660は、ARシステムのユーザの周囲の領域の変化のインジケーションを識別し、出力してもよい。そのような変化のインジケーションは、持続される世界の一部として記憶される立体データへの更新をトリガする、またはARコンテンツを生成し、ARコンテンツを更新する、コンポーネント604をトリガする等、他の機能をトリガしてもよい。
いくつかの実施形態では、知覚モジュール660は、符号付き距離関数(SDF)モデルに基づいて、変化を識別してもよい。知覚モジュール660は、例えば、深度マップ660aおよび頭部姿勢660b等のセンサデータを受信し、次いで、センサデータをSDFモデル660cに融合させるように構成されてもよい。深度マップ660aは、直接、SDF情報を提供してもよく、画像は、SDF情報に到着するように処理されてもよい。SDF情報は、その情報を捕捉するために使用されるセンサからの距離を表す。それらのセンサは、ウェアラブルユニットの一部であり得るため、SDF情報は、ウェアラブルユニットの視点、したがって、ユーザの視点から物理的世界を表し得る。頭部姿勢660bは、SDF情報が物理的世界内のボクセルに関連されることを可能にし得る。
いくつかの実施形態では、知覚モジュール660は、知覚範囲内にある、物理的世界の一部のための表現を生成、更新、および記憶してもよい。知覚範囲は、少なくとも部分的に、センサの再構築範囲に基づいて決定されてもよく、これは、少なくとも部分的に、センサの観察範囲の限界に基づいて決定されてもよい。具体的実施例として、アクティブIRパルスを使用して動作する、アクティブ深度センサは、ある距離の範囲にわたって確実に動作し、数センチメートルまたは数十センチメートル~数メートルであり得る、センサの観察範囲を作成し得る。
世界再構築コンポーネント516は、知覚モジュール660と相互作用し得る、付加的モジュールを含んでもよい。いくつかの実施形態では、持続世界モジュール662は、知覚モジュール660によって入手されたデータに基づいて、物理的世界のための表現を受信してもよい。持続世界モジュール662はまた、物理的世界の種々のフォーマットの表現を含んでもよい。例えば、ボクセル等の立体情報662bが、メッシュ662cおよび平面662dとともに記憶されてもよい。立体情報662aは、立体情報のサイズを含んでもよい。いくつかの実施形態では、深度マップ等の他の情報も、保存され得る。
いくつかの実施形態では、図6Aに図示されるもの等の物理的世界の表現は、上記に説明されるように、特徴点に基づく追跡マップ等の疎マップと比較して、物理的世界についての比較的に稠密情報を提供し得る。
いくつかの実施形態では、知覚モジュール660は、例えば、メッシュ660d、平面、および意味論660eを含む、種々のフォーマットにおける、物理的世界のための表現を生成する、モジュールを含んでもよい。物理的世界のための表現は、ローカルおよび遠隔記憶媒体を横断して記憶されてもよい。物理的世界のための表現は、例えば、記憶媒体の場所に応じて、異なる座標フレーム内に説明されてもよい。例えば、デバイス内に記憶された物理的世界のための表現は、デバイスにローカルの座標フレーム内に説明されてもよい。物理的世界のための表現は、クラウド内に記憶された対応物を有してもよい。クラウド内の対応物は、XRシステム内の全てのデバイスによって共有される座標フレーム内に説明されてもよい。
いくつかの実施形態では、これらのモジュールは、表現が生成された時点の1つまたはそれを上回るセンサの知覚範囲内のデータおよび以前の時間に捕捉されたデータおよび持続される世界モジュール662内の情報に基づいて、表現を生成してもよい。いくつかの実施形態では、これらのコンポーネントは、深度センサを用いて捕捉された深度情報に作用してもよい。しかしながら、ARシステムは、視覚センサを含んでもよく、単眼または両眼視覚情報を分析することによって、そのような表現を生成してもよい。
いくつかの実施形態では、これらのモジュールは、物理的世界の領域に作用してもよい。それらのモジュールは、物理的世界のサブ領域を、知覚モジュール660がそのサブ領域内の物理的世界の変化を検出すると、更新するようにトリガされてもよい。そのような変化は、例えば、SDFモデル660c内の新しい表面を検出することによって、またはサブ領域を表す十分な数のボクセルの値の変化等の他の基準によって、検出されてもよい。
世界再構築コンポーネント516は、物理的世界の表現を知覚モジュール660から受信し得る、コンポーネント664を含んでもよい。物理的世界についての情報は、例えば、アプリケーションからの使用要求に従って、これらのコンポーネントによってプル配信されてもよい。いくつかの実施形態では、情報は、事前に識別された領域の変化または知覚範囲内の物理的世界表現の変化のインジケーション等を介して、使用コンポーネントにプッシュ配信されてもよい。コンポーネント664は、例えば、視覚的オクルージョン、物理学ベースの相互作用、および環境推測のための処理を実施する、ゲームプログラムおよび他のコンポーネントを含んでもよい。
コンポーネント664からのクエリに応答して、知覚モジュール660は、物理的世界のための表現を1つまたはそれを上回るフォーマットにおいて送信してもよい。例えば、コンポーネント664が、使用が視覚的オクルージョンまたは物理学ベースの相互作用のためのものであることを示すとき、知覚モジュール660は、表面の表現を送信してもよい。コンポーネント664が、使用が環境推測のためのものであることを示すとき、知覚モジュール660は、物理的世界のメッシュ、平面、および意味論を送信してもよい。
いくつかの実施形態では、知覚モジュール660は、フォーマット情報をコンポーネント664に提供する、コンポーネントを含んでもよい。そのようなコンポーネントの実施例は、レイキャスティングコンポーネント660fであってもよい。使用コンポーネント(例えば、コンポーネント664)は、例えば、特定の視点からの物理的世界についての情報をクエリしてもよい。レイキャスティングコンポーネント660fは、その視点からの視野内の物理的世界データの1つまたはそれを上回る表現から選択してもよい。
前述の説明から理解されるはずであるように、知覚モジュール660またはARシステムの別のコンポーネントは、データを処理し、物理的世界の一部の3D表現を作成してもよい。処理されるべきデータは、少なくとも部分的に、カメラ錐台および/または深度画像に基づいて、3D再構築体積の一部を間引く、平面データを抽出および持続させる、近傍の一貫性を維持しながらローカル更新を可能にするブロックにおいて、3D再構築データを捕捉し、持続させ、更新する、オクルージョンデータが1つまたはそれを上回る深度データソースの組み合わせから導出される、オクルージョンデータをそのような場面を生成するアプリケーションに提供する、および/または多段階メッシュ簡略化を実施することによって、低減され得る。再構築物は、例えば、ライブ深度データ等の未加工データ、ボクセル等の融合された立体データ、およびメッシュ等の算出されたデータを含む、異なるレベルの精巧さのデータを含有してもよい。
いくつかの実施形態では、パス可能世界モデルのコンポーネントは、分散されてもよく、いくつかの部分は、XRデバイス上でローカルで実行され、いくつかの部分は、サーバに接続されるネットワーク上または別様にクラウド内等の遠隔で実行される。ローカルXRデバイスとクラウドとの間の情報の処理および記憶の配分は、XRシステムの機能性およびユーザ体験に影響を及ぼし得る。例えば、処理をクラウドに配分することによって、ローカルデバイス上の処理を低減させることは、より長いバッテリ寿命を有効にし、ローカルデバイス上に生成される熱を低減させ得る。しかし、はるかに多い処理をクラウドに配分することは、容認不可能なユーザ体験を引き起こす、望ましくない待ち時間を作成し得る。
図6Bは、いくつかの実施形態による、空間コンピューティングのために構成される、分散型コンポーネントアーキテクチャ600を描写する。分散型コンポーネントアーキテクチャ600は、パス可能世界コンポーネント602(例えば、図5AにおけるPW538)と、Lumin OS604と、API606と、SDK608と、アプリケーション610とを含んでもよい。Lumin OS604は、XRデバイスと互換性があるカスタムドライバを伴う、Linux(登録商標)ベースのカーネルを含んでもよい。APIの606は、XRアプリケーション(例えば、アプリケーション610)にXRデバイスの空間コンピューティング特徴へのアクセスを与える、アプリケーションプログラミングインターフェースを含んでもよい。SDK608は、XRアプリケーションの作成を可能にする、ソフトウェア開発キットを含んでもよい。
アーキテクチャ600内の1つまたはそれを上回るコンポーネントは、パス可能世界のモデルを作成および維持してもよい。本実施例では、センサデータは、ローカルデバイス上で収集される。そのセンサデータの処理は、部分的に、XRデバイス上でローカルで、部分的に、クラウド内で実施されてもよい。PW538は、少なくとも部分的に、複数のユーザによって装着されるARデバイスによって捕捉されたデータに基づいて作成される、環境マップを含んでもよい。AR体験のセッションの間、個々のARデバイス(図4に関連して上記に説明されるウェアラブルデバイス等)は、マップの1つのタイプである、追跡マップを作成してもよい。
いくつかの実施形態では、デバイスは、疎マップおよび稠密マップの両方を構築する、コンポーネントを含んでもよい。追跡マップは、疎マップとしての役割を果たし得、環境を走査するARデバイスの頭部姿勢および各頭部姿勢においてその環境内で検出されたオブジェクトについての情報を含んでもよい。それらの頭部姿勢は、デバイス毎に、ローカルで維持されてもよい。例えば、各デバイス上の頭部姿勢は、デバイスがそのセッションのためにオンにされたときの初期頭部姿勢に対するものであってもよい。結果として、各追跡マップは、それを作成するデバイスにローカルであり得、その独自のローカル座標系によって定義されたその独自の基準フレームを有し得る。しかしながら、いくつかの実施形態では、各デバイス上の追跡マップは、そのローカル座標系の1つの座標が、慣性測定ユニット557等のそのセンサによって測定されるような重力の方向と整合されるように形成されてもよい。
いくつかの実施形態では、デバイスは、疎マップおよび稠密マップの両方を構築する、コンポーネントを含んでもよい。追跡マップは、疎マップとしての役割を果たしてもよく、環境を走査するARデバイスの頭部姿勢ならび各頭部姿勢においてその環境内で検出されたオブジェクトについての情報を含んでもよい。それらの頭部姿勢は、デバイス毎にローカルで維持されてもよい。例えば、各デバイス上の頭部姿勢は、デバイスがそのセッションのためにオンにされたときの初期頭部姿勢に対するものであり得る。結果として、各追跡マップは、それを作成するデバイスにローカルであり得る。稠密マップは、表面情報を含んでもよく、これは、メッシュまたは深度情報によって表されてもよい。代替として、または加えて、稠密マップは、平面および/または他のオブジェクトの場所および/または特性等の表面または深度情報から導出されるより高いレベルの情報を含んでもよい。
稠密マップの作成は、いくつかの実施形態では、疎マップの作成から独立してもよい。稠密マップおよび疎マップの作成は、例えば、ARシステム内の別個の処理パイプライン内で実施されてもよい。処理を分離することは、例えば、異なるタイプのマップの生成または処理が異なるレートで実施されることを可能にし得る。疎マップは、例えば、稠密マップより高速のレートでリフレッシュされてもよい。しかしながら、いくつかの実施形態では、稠密および疎マップの処理は、異なるパイプライン内で実施される場合でも、関連し得る。疎マップ内で露見される物理的世界の変化は、例えば、稠密マップの更新をトリガし得る、またはその逆である。さらに、独立して作成される場合でも、マップは、ともに使用され得る。例えば、疎マップから導出される座標系は、稠密マップ内のオブジェクトの位置および/または配向を定義するために使用されてもよい。
疎マップおよび/または稠密マップは、同一デバイスによる再使用のために、および/または他のデバイスと共有するために、存続してもよい。そのような存続は、情報をクラウド内に記憶することによって達成されてもよい。ARデバイスは、追跡マップをクラウドに送信し、例えば、クラウド内に以前に記憶された存続されるマップから選択された環境マップとマージまたはスティッチングしてもよい。いくつかの実施形態では、選択された存続されるマップは、マージまたはスティッチングするために、クラウドからARデバイスに送信されてもよい。いくつかの実施形態では、存続されるマップは、1つまたはそれを上回る持続座標フレームに対して配向されてもよい。そのようなマップは、それらが複数のデバイスのいずれかによって使用され得るため、規準マップとしての役割を果たし得る。いくつかの実施形態では、パス可能世界のモデルは、1つまたはそれを上回る規準マップを含んでもよい、または作成されてもよい。デバイスは、デバイスにローカルの座標フレームに基づいて、いくつかの動作を実施するものの、デバイスにローカルのその座標フレームと規準マップとの間の変換を決定することによって、規準マップを使用してもよい。
規準マップは、追跡マップ(TM)(例えば、図31AにおけるTM1102)として生じてもよく、これは、規準マップにレベル上げされ得る。規準マップは、規準マップにアクセスするデバイスが、いったんそのローカル座標系と規準マップの座標系との間の変換を決定すると、規準マップ内の情報を使用して、デバイスの周囲の物理的世界内の規準マップ内に表されるオブジェクトの場所を決定し得るように、存続されてもよい。いくつかの実施形態では、TMは、XRデバイスによって作成された頭部姿勢疎マップであってもよい。いくつかの実施形態では、規準マップは、異なる時間においてXRデバイスによって、または他のXRデバイスによって、捕捉された付加的TMとマージするために、XRデバイスが1つまたはそれを上回るTMをクラウドサーバに送信すると、作成されてもよい。
追跡マップが、重力と整合されたローカル座標フレームの1つの座標を伴って、ローカルデバイス上に形成される、実施形態では、重力に対する本配向は、規準マップの作成に応じて、保存され得る。例えば、マージまたはスティッチングするために提出された追跡マップが、任意の以前に記憶されたマップと重複しないとき、その追跡マップは、規準マップにレベル上げされてもよい。同様に重力に対する配向を有し得る、他の追跡マップは、続いて、その規準マップとマージまたはスティッチングされてもよい。マージまたはスティッチングは、結果として生じる規準マップが重力に対するその配向を留保することを確実にするように行われてもよい。2つのマップは、例えば、重力と整合される各マップの座標が、十分に近似した許容度を伴って、相互に整合しない場合、それらのマップ内の特徴点の対応にかかわらず、マージまたはスティッチングされなくてもよい。
規準マップまたは他のマップは、個別のマップを作成するために処理されたデータによって表される物理的世界の一部についての情報を提供してもよい。図7は、いくつかの実施形態による、例示的追跡マップ700を描写する。追跡マップ700は、点702によって表される対応する物理的世界内の物理的オブジェクトの平面図706を提供してもよい。いくつかの実施形態では、マップ点702は、複数の特徴を含み得る、物理的オブジェクトの特徴を表し得る。例えば、テーブルの各角は、マップ上の点によって表される、特徴であり得る。特徴は、拡張現実システム内のウェアラブルデバイスのセンサを用いて入手され得るような処理画像から導出されてもよい。特徴は、例えば、センサによって出力された画像フレームを処理し、画像内の大勾配または他の好適な基準に基づいて、特徴を識別することによって導出されてもよい。さらなる処理は、各フレーム内の特徴の数を限定してもよい。例えば、処理は、持続オブジェクトを表す可能性が高い、特徴を選択してもよい。1つまたはそれを上回るヒューリスティックが、本選択のために適用されてもよい。
追跡マップ700は、デバイスによって収集された点702に関するデータを含んでもよい。追跡マップ内に含まれるデータ点を伴う、画像フレーム毎に、姿勢が、記憶されてもよい。姿勢は、各画像フレーム内の特徴点が空間的に相関され得るように、そこから画像フレームが捕捉された配向を表し得る。姿勢は、ウェアラブルデバイス上のIMUセンサ等のセンサから導出され得るような位置付け情報によって決定されてもよい。代替として、または加えて、姿勢は、画像フレームと、物理的世界の重複部分を描写する、他の画像フレームをマッチングさせることから決定されてもよい。2つのフレーム内の特徴点のサブセットをマッチングさせることによって遂行され得る、そのような位置相関を見出すことによって、2つのフレーム間の相対的姿勢が、算出され得る。相対的姿勢は、マップが、追跡マップの構築が開始されたときのデバイスの初期姿勢に基づいて確立されるデバイスにローカルの座標系に対するものであり得るため、追跡マップのために適正であり得る。
センサを用いて収集された情報の多くが冗長である可能性が高いため、デバイスによって収集された特徴点および画像フレームの全てが、追跡マップの一部として留保され得るわけではない。むしろ、あるフレームのみが、マップに追加されてもよい。それらのフレームは、すでにマップ内にある画像フレームとの重複度、それらが含有する新しい特徴の数、またはフレーム内の特徴に関する品質メトリック等の1つまたはそれを上回る基準に基づいて選択されてもよい。追跡マップに追加されない画像フレームは、破棄されてもよい、または特徴の場所を改訂するために使用されてもよい。さらなる代替として、特徴のセットとして表される、画像フレームの全部または大部分が、留保されてもよいが、それらのフレームのサブセットは、キーフレームとして指定されてもよく、これは、さらなる処理のために使用される。
キーフレームは、処理され、キーリグ704を生産してもよい。キーフレームは、処理され、特徴点の3次元セットを生産し、キーリグ704として保存されてもよい。そのような処理は、例えば、2つのカメラから同時に導出される画像フレームを比較し、特徴点の3D位置を立体視的に決定することを伴ってもよい。姿勢等のメタデータが、これらのキーフレームおよび/またはキーリグと関連付けられてもよい。
環境マップは、例えば、ARデバイスのローカル記憶装置および遠隔記憶装置を含む、例えば、環境マップの記憶場所に応じて、複数のフォーマットのいずれかを有してもよい。例えば、遠隔記憶装置内のマップは、メモリが限定されると、ウェアラブルデバイス上のローカル記憶装置内のマップより高い分解能を有してもよい。より高い分解能マップを遠隔記憶装置からローカル記憶装置に送信するために、マップは、マップ内に記憶される物理的世界のエリアあたりの姿勢の数および/または姿勢毎に記憶される特徴点の数を低減させること等によって、ダウンサンプリングまたは別様に適切なフォーマットに変換されてもよい。いくつかの実施形態では、遠隔記憶装置からの高分解能マップのスライスまたは一部が、ローカル記憶装置に送信されてもよく、スライスまたは一部は、ダウンサンプリングされない。
環境マップのデータベースは、新しい追跡マップが作成されるにつれて、更新されてもよい。データベース内の潜在的に非常に多数の環境マップのうちのどれが更新されるべきかを決定するために、更新するステップは、新しい追跡マップに関連するデータベース内に記憶される1つまたはそれを上回る環境マップを効率的に選択するステップを含んでもよい。選択された1つまたはそれを上回る環境マップは、関連性によってランク付けされてもよく、最高ランク付けマップのうちの1つまたはそれを上回るものが、より高いランク付けされた選択された環境マップと新しい追跡マップをマージまたはスティッチングし、1つまたはそれを上回る更新された環境マップを作成するために処理するために選択されてもよい。新しい追跡マップが、それにわたって更新するための既存の環境マップが存在しない、物理的世界の部分を表すとき、その追跡マップは、新しい環境マップとしてデータベース内に記憶されてもよい。
ビュー独立ディスプレイ
本明細書に説明されるものは、仮想コンテンツを視認する眼の場所から独立して、XRシステムを使用して仮想コンテンツを提供するための方法および装置である。従来、仮想コンテンツは、表示システムの任意の運動に応じて、再レンダリングされる。例えば、ディスプレイシステムを装着しているユーザが、ディスプレイ上の3次元(3D)オブジェクトの仮想表現を視認し、3Dオブジェクトが現れるエリアの周囲を歩き回る場合、3Dオブジェクトは、ユーザが実空間を占有する、オブジェクトの周囲を歩き回っているという知覚を有するように、視点毎に再レンダリングされるべきである。しかしながら、再レンダリングは、システムの有意な算出リソースを消費し、待ち時間に起因して、アーチファクトを生じさせる。しかしながら、再レンダリングは、システムの有意な算出リソースを消費し、待ち時間に起因して、アーチファクトを生じさせる。
本発明者らは、頭部姿勢(例えば、XRシステムを装着しているユーザの場所および配向)が、ユーザの頭部における眼回転から独立して、仮想コンテンツをレンダリングするために使用され得ることを認識し、その真価を認めた。いくつかの実施形態では、場面の動的マップが、ユーザの頭部における眼回転から独立して、および/または、例えば、高速算出集約的動作の間に生成された熱によって生じるセンサ変形から独立して、動的マップと相互作用する仮想コンテンツが、ロバストにレンダリングされ得るように、1つまたはそれを上回るセッションを横断して、実空間内の複数の座標フレームに基づいて生成されてもよい。いくつかの実施形態では、複数の座標フレームの構成は、第1のユーザによって装着される第1のXRデバイスおよび第2のユーザによって装着される第2のXRデバイスが、場面内の共通場所を認識することを可能にし得る。いくつかの実施形態では、複数の座標フレームの構成は、XRデバイスを装着しているユーザが、仮想コンテンツを場面の同一場所内で視認することを可能にし得る。
いくつかの実施形態では、追跡マップが、世界座標フレーム内に構築されてもよく、これは、世界原点を有してもよい。世界原点は、XRデバイスが電源投入されるときの、XRデバイスの第1の姿勢であってもよい。世界原点は、XRアプリケーションの開発者が余剰作業を伴わずに重力整合を得ることができるように、重力に整合されてもよい。異なる追跡マップが、追跡マップが、異なるセッションにおける同一XRデバイスおよび/または異なるユーザによって装着される異なるXRデバイスによって捕捉され得るため、異なる世界座標フレーム内に構築されてもよい。いくつかの実施形態では、XRデバイスのセッションは、デバイスを電源オンにしてから開始し、電源オフにするまで続いてもよい。いくつかの実施形態では、XRデバイスは、頭部座標フレームを有してもよく、これは、頭部原点を有してもよい。頭部原点は、画像が撮影されるときの、XRデバイスの現在の姿勢であってもよい。世界座標フレームおよび頭部座標フレームの頭部姿勢の間の差異は、追跡ルートを推定するために使用されてもよい。
いくつかの実施形態では、XRデバイスは、カメラ座標フレームを有してもよく、これは、カメラ原点を有してもよい。カメラ原点は、XRデバイスの1つまたはそれを上回るセンサの現在の姿勢であってもよい。本発明者らは、カメラ座標フレームの構成が、ユーザの頭部における眼回転から独立して、仮想コンテンツのロバストな表示を有効にすることを認識し、その真価を認めた。本構成はまた、例えば、動作の間に生成された熱に起因するセンサ変形から独立して、仮想コンテンツのロバストな表示を有効にする。
いくつかの実施形態では、XRデバイスは、ユーザが、その頭部に固着させ得、ユーザの各眼の正面に1つずつ、2つの導波管を含み得る、頭部搭載可能フレームを伴う、頭部ユニットを有してもよい。導波管は、実世界オブジェクトからの周囲光が、導波管を通して透過し得、ユーザに実世界オブジェクトが見え得るように、透明であり得る。各導波管は、プロジェクタから投影された光をユーザの個別の眼に透過させ得る。投影された光は、画像を眼の網膜上に形成し得る。眼の網膜は、したがって、周囲光および投影された光を受光する。ユーザには、同時に、実世界オブジェクトと、投影された光によって作成される、1つまたはそれを上回る仮想オブジェクトとが見え得る。いくつかの実施形態では、XRデバイスは、ユーザの周囲の実世界オブジェクトを検出する、センサを有してもよい。これらのセンサは、例えば、実世界オブジェクトの場所を識別するために処理され得る、画像を捕捉する、カメラであってもよい。
いくつかの実施形態では、XRシステムは、仮想コンテンツを世界座標フレーム内に結び付けることとは対照的に、座標フレームを仮想コンテンツに割り当ててもよい。そのような構成は、ユーザのためにレンダリングされた場所にかかわらず、仮想コンテンツが説明されることを可能にするが、例えば、図14-20Cに関連して説明される持続座標フレーム(PCF)等のより持続フレーム位置に結び付けられ、規定された場所にレンダリングされ得る。オブジェクトの場所が変化すると、XRデバイスは、環境マップの変化を検出し、ユーザによって装着される頭部ユニットの移動を実世界オブジェクトに対して決定してもよい。
図8は、いくつかの実施形態による、XRシステム10によって物理的環境内にレンダリングされるような仮想コンテンツを体験するユーザを図示する。XRシステムは、第1のユーザ14.1によって装着される、第1のXRデバイス12.1と、ネットワーク18と、サーバ20とを含んでもよい。ユーザ14.1は、テーブル16の形態における実オブジェクトを伴う、物理的環境内に存在する。
図示される実施例では、第1のXRデバイス12.1は、頭部ユニット22と、ベルトパック24と、ケーブル接続26とを含む。第1のユーザ14.1は、頭部ユニット22をその頭部に、頭部ユニット22から遠隔のベルトパック24をその腰部上に固着させる。ケーブル接続26は、頭部ユニット22をベルトパック24に接続する。頭部ユニット22は、第1のユーザ14.1にテーブル16等の実オブジェクトが見えることを可能にしたまま、仮想オブジェクトまたは複数のオブジェクトを第1のユーザ14.1に表示するために使用される、技術を含む。ベルトパック24は、主に、第1のXRデバイス12.1の処理および通信能力を含む。いくつかの実施形態では、処理および通信能力は、ベルトパック24が、除去され得る、またはリュック等の別のデバイス内に位置し得るように、全体的または部分的に、頭部ユニット22内に常駐してもよい。
図示される実施例では、ベルトパック24は、無線接続を介して、ネットワーク18に接続される。サーバ20は、ネットワーク18に接続され、ローカルコンテンツを表すデータを保持する。ベルトパック24は、ローカルコンテンツを表すデータをサーバ20からネットワーク18を介してダウンロードする。ベルトパック24は、ケーブル接続26を介して、データを頭部ユニット22に提供する。頭部ユニット22は、光源、例えば、レーザ光源または発光ダイオード(LED)光源と、光を誘導する、導波管とを有する、ディスプレイを含んでもよい。
いくつかの実施形態では、第1のユーザ14.1は、頭部ユニット22をその頭部に、ベルトパック24をその腰部に搭載してもよい。ベルトパック24は、仮想コンテンツを表す画像データをネットワーク18を経由してサーバ20からダウンロードしてもよい。第1のユーザ14.1には、頭部ユニット22のディスプレイを通して、テーブル16が見え得る。頭部ユニット22の一部を形成する、プロジェクタは、画像データをベルトパック24から受信し、画像データに基づいて、光を生成してもよい。光は、頭部ユニット22のディスプレイの一部を形成する導波管のうちの1つまたはそれを上回るものを通して進行してもよい。光は、次いで、導波管から出射し、第1のユーザ14.1の眼の網膜上に伝搬してもよい。プロジェクタは、第1のユーザ14.1の眼の網膜上に複製される、パターンにおいて光を生成してもよい。第1のユーザ14.1の眼の網膜上に当たる光は、第1のユーザ14.1が画像を導波管の背後の事前に選択された深度において知覚するように、選択された被写界深度を有してもよい。加えて、第1のユーザ14.1の両眼は、第1のユーザ14.1の脳が3次元画像または複数の画像を頭部ユニット22からの選択された距離において知覚するように、若干異なる画像を受信してもよい。図示される実施例では、第1のユーザ14.1は、仮想コンテンツ28をテーブル16の上方において知覚する。仮想コンテンツ28および第1のユーザ14.1からのその場所および距離の割合は、仮想コンテンツ28を表すデータと、仮想コンテンツ28を第1のユーザ14.1に表示するために使用される、種々の座標フレームとによって決定される。
図示される実施例では、仮想コンテンツ28は、図面の視点から不可視であって、第1のXRデバイス12.1の使用を通して第1のユーザ14.1に可視である。仮想コンテンツ28は、最初に、視覚データ内のデータ構造およびベルトパック24内のアルゴリズムとして常駐し得る。データ構造は、次いで、頭部ユニット22のプロジェクタがデータ構造に基づいて光を生成するとき、光として露見し得る。仮想コンテンツ28は、第1のユーザ14.1の正面の3次元空間内に存在しないが、仮想コンテンツ28は、依然として、頭部ユニット22の装着者が知覚する内容の例証のために、3次元空間内の図1において表されることを理解されたい。3次元空間内のコンピュータデータの可視化は、1人またはそれを上回るユーザによって知覚されるレンダリングを促進するデータ構造が、ベルトパック24内のデータ構造の中で相互に関連する方法を図示するために、本説明において使用され得る。
図9は、いくつかの実施形態による、第1のXRデバイス12.1のコンポーネントを図示する。第1のXRデバイス12.1は、頭部ユニット22と、例えば、レンダリングエンジン30と、種々の座標系32と、種々の原点および目的地座標フレーム34と、種々の原点/目的地座標フレーム変換器36とを含む、視覚データおよびアルゴリズムの一部を形成する、種々のコンポーネントとを含んでもよい。種々の座標系は、XRデバイスの固有性質に基づいてもよい、または本明細書に説明されるような持続姿勢または持続座標系等の他の情報を参照することによって決定されてもよい。
頭部ユニット22は、頭部搭載可能フレーム40と、ディスプレイシステム42と、実オブジェクト検出カメラ44と、移動追跡カメラ46と、慣性測定ユニット48とを含んでもよい。
頭部搭載可能フレーム40は、図8における第1のユーザ14.1の頭部に固着可能である、形状を有してもよい。ディスプレイシステム42、実オブジェクト検出カメラ44、移動追跡カメラ46、および慣性測定ユニット48は、頭部搭載可能フレーム40に搭載され、したがって、頭部搭載可能フレーム40とともに移動し得る。
座標系32は、ローカルデータシステム52と、世界フレームシステム54と、頭部フレームシステム56と、カメラフレームシステム58とを含んでもよい。
ローカルデータシステム52は、データチャネル62と、ローカルフレーム決定ルーチン64と、ローカルフレーム記憶命令66とを含んでもよい。データチャネル62は、内部ソフトウェアルーチン、外部ケーブルまたは無線周波数受信機等のハードウェアコンポーネント、または開放されるポート等のハイブリッドコンポーネントであってもよい。データチャネル62は、仮想コンテンツを表す画像データ68を受信するように構成されてもよい。
ローカルフレーム決定ルーチン64は、データチャネル62に接続されてもよい。ローカルフレーム決定ルーチン64は、ローカル座標フレーム70を決定するように構成されてもよい。いくつかの実施形態では、ローカルフレーム決定ルーチンは、実世界オブジェクトまたは実世界場所に基づいて、ローカル座標フレームを決定してもよい。いくつかの実施形態では、ローカル座標フレームは、ブラウザウィンドウの底部縁に対する上部縁、キャラクタの頭または足、仮想コンテンツを包囲する、プリズムまたは境界ボックスの外面上のノード、または仮想コンテンツの対面方向およびそれを用いて仮想コンテンツを設置すべき場所(例えば、設置ノードまたはPCFノード等のノード)を定義する、座標フレームを設置するための任意の他の好適な場所等に基づいてもよい。
ローカルフレーム記憶命令66は、ローカルフレーム決定ルーチン64に接続されてもよい。当業者は、ソフトウェアモジュールおよびルーチンが、サブルーチン、コール等を通して、相互に「接続」されることを理解するであろう。ローカルフレーム記憶命令66は、ローカル座標フレーム70をローカル座標フレーム72として原点および目的地座標フレーム34内に記憶してもよい。いくつかの実施形態では、原点および目的地座標フレーム34は、仮想コンテンツがセッション間で持続するために、操作または変換され得る、1つまたはそれを上回る座標フレームであってもよい。いくつかの実施形態では、セッションは、XRデバイスのブートアップとシャットダウンとの間の時間周期であってもよい。2つのセッションは、単一XRデバイスに関する2回の始動およびシャットダウン周期であってもよい、または2つの異なるXRデバイスに関する始動およびシャットダウンであってもよい。
いくつかの実施形態では、原点および目的地座標フレーム34は、第1のユーザのXRデバイスおよび第2のユーザのXRデバイスが共通場所を認識するために要求される1つまたはそれを上回る変換の際に関わる座標フレームであってもよい。いくつかの実施形態では、目的地座標フレームは、第1および第2のユーザが同一場所における仮想コンテンツを視認するために、標的座標フレームに適用される一連の算出および変換の出力であってもよい。
レンダリングエンジン30は、データチャネル62に接続されてもよい。レンダリングエンジン30は、レンダリングエンジン30が、少なくとも部分的に、画像データ68に基づいて、仮想コンテンツをレンダリングし得るように、画像データ68をデータチャネル62から受信してもよい。
ディスプレイシステム42は、レンダリングエンジン30に接続されてもよい。ディスプレイシステム42は、画像データ68を可視光に変換する、コンポーネントを含んでもよい。可視光は、眼毎に1つの2つのパターンを形成してもよい。可視光は、図8における第1のユーザ14.1の眼に入射し得、第1のユーザ14.1の眼の網膜上で検出され得る。
実オブジェクト検出カメラ44は、画像を頭部搭載可能フレーム40の異なる側から捕捉し得る、1つまたはそれを上回るカメラを含んでもよい。移動追跡カメラ46は、画像を頭部搭載可能フレーム40の側面上で捕捉する、1つまたはそれを上回るカメラを含んでもよい。1つまたはそれを上回るカメラの1つのセットが、実オブジェクト検出カメラ44および移動追跡カメラ46を表す、1つまたはそれを上回るカメラの2つのセットの代わりに使用されてもよい。いくつかの実施形態では、カメラ44、46は、画像を捕捉してもよい。上記に説明されるように、これらのカメラは、追跡マップを構築するために使用される、データを収集してもよい。
慣性測定ユニット48は、頭部ユニット22の移動を検出するために使用される、いくつかのデバイスを含んでもよい。慣性測定ユニット48は、重力センサと、1つまたはそれを上回る加速度計と、1つまたはそれを上回るジャイロスコープとを含んでもよい。慣性測定ユニット48のセンサは、組み合わせて、少なくとも3つの直交方向および約少なくとも3つの直交軸において、頭部ユニット22の移動を追跡する。
図示される実施例では、世界フレームシステム54は、世界表面決定ルーチン78と、世界フレーム決定ルーチン80と、世界フレーム記憶命令82とを含む。世界表面決定ルーチン78は、実オブジェクト検出カメラ44に接続される。世界表面決定ルーチン78は、実オブジェクト検出カメラ44によって捕捉された画像に基づいて、画像および/またはキーフレームを受信し、画像を処理し、画像内の表面を識別する。深度センサ(図示せず)は、表面までの距離を決定してもよい。表面は、したがって、そのサイズ、形状、および実オブジェクト検出カメラからの距離を含む、3次元におけるデータによって表される。
いくつかの実施形態では、世界座標フレーム84は、頭部姿勢セッションの初期化時の原点に基づいてもよい。いくつかの実施形態では、世界座標フレームは、デバイスがブートアップされた場所に位置してもよい、またはブートセッションの間に頭部姿勢が喪失された場合、新しい何処かの場所にあり得る。いくつかの実施形態では、世界座標フレームは、頭部姿勢セッションの開始時の原点であってもよい。
図示される実施例では、世界フレーム決定ルーチン80は、世界表面決定ルーチン78に接続され、世界表面決定ルーチン78によって決定されるような表面の場所に基づいて、世界座標フレーム84を決定する。世界フレーム記憶命令82は、世界フレーム決定ルーチン80に接続され、世界座標フレーム84を世界フレーム決定ルーチン80から受信する。世界フレーム記憶命令82は、世界座標フレーム84を世界座標フレーム86として原点および目的地座標フレーム34内に記憶する。
頭部フレームシステム56は、頭部フレーム決定ルーチン90と、頭部フレーム記憶命令92とを含んでもよい。頭部フレーム決定ルーチン90は、移動追跡カメラ46および慣性測定ユニット48に接続されてもよい。頭部フレーム決定ルーチン90は、移動追跡カメラ46および慣性測定ユニット48からのデータを使用して、頭部座標フレーム94を計算してもよい。例えば、慣性測定ユニット48は、頭部ユニット22に対する重力の方向を決定する、重力センサを有してもよい。移動追跡カメラ46は、頭部フレーム決定ルーチン90によって使用され、頭部座標フレーム94を精緻化する、画像を継続的に捕捉してもよい。頭部ユニット22は、図8における第1のユーザ14.1がその頭部を移動させると移動する。移動追跡カメラ46および慣性測定ユニット48は、頭部フレーム決定ルーチン90が頭部座標フレーム94を更新し得るように、データを頭部フレーム決定ルーチン90に持続的に提供してもよい。
頭部フレーム記憶命令92は、頭部フレーム決定ルーチン90に接続され、頭部座標フレーム94を頭部フレーム決定ルーチン90から受信してもよい。頭部フレーム記憶命令92は、頭部座標フレーム94を原点および目的地座標フレーム34間の頭部座標フレーム96として記憶してもよい。頭部フレーム記憶命令92は、頭部フレーム決定ルーチン90が頭部座標フレーム94を再計算すると、更新された頭部座標フレーム94を頭部座標フレーム96として繰り返し記憶してもよい。いくつかの実施形態では、頭部座標フレームは、ローカル座標フレーム72に対するウェアラブルXRデバイス12.1の場所であってもよい。
カメラフレームシステム58は、カメラ固有性質98を含んでもよい。カメラ固有性質98は、その設計および製造の特徴である、頭部ユニット22の寸法を含んでもよい。カメラ固有性質98は、原点および目的地座標フレーム34内に記憶される、カメラ座標フレーム100を計算するために使用されてもよい。
いくつかの実施形態では、カメラ座標フレーム100は、図8における第1のユーザ14.1の左眼の全ての瞳孔位置を含んでもよい。左眼が、左から右または上下に移動すると、左眼の瞳孔位置は、カメラ座標フレーム100内に位置する。加えて、右眼の瞳孔位置は、右眼のためのカメラ座標フレーム100内に位置する。いくつかの実施形態では、カメラ座標フレーム100は、画像が撮影されると、ローカル座標フレームに対するカメラの場所を含んでもよい。
原点/目的地座標フレーム変換器36は、ローカル/世界座標変換器104と、世界/頭部座標変換器106と、頭部/カメラ座標変換器108とを含んでもよい。ローカル/世界座標変換器104は、ローカル座標フレーム72を受信し、ローカル座標フレーム72を世界座標フレーム86に変換してもよい。世界座標フレーム86へのローカル座標フレーム72の変換は、世界座標フレーム86内で世界座標フレーム110に変換されるローカル座標フレームとして表され得る。
世界/頭部座標変換器106は、世界座標フレーム86から頭部座標フレーム96に変換してもよい。世界/頭部座標変換器106は、世界座標フレーム110に変換されるローカル座標フレームを頭部座標フレーム96に変換してもよい。変換は、頭部座標フレーム96内の頭部座標フレーム112に変換されるローカル座標フレームとして表され得る。
頭部/カメラ座標変換器108は、頭部座標フレーム96からカメラ座標フレーム100に変換してもよい。頭部/カメラ座標変換器108は、頭部座標フレーム112に変換されるローカル座標フレームをカメラ座標フレーム100内のカメラ座標フレーム114に変換されるローカル座標フレームに変換してもよい。カメラ座標フレーム114に変換されるローカル座標フレームは、レンダリングエンジン30の中に取り込まれてもよい。レンダリングエンジン30は、カメラ座標フレーム114に変換されるローカル座標フレームに基づいて、ローカルコンテンツ28を表す画像データ68をレンダリングしてもよい。
図10は、種々の原点および目的地座標フレーム34の空間表現である。ローカル座標フレーム72、世界座標フレーム86、頭部座標フレーム96、およびカメラ座標フレーム100が、図内に表される。いくつかの実施形態では、XRコンテンツ28と関連付けられるローカル座標フレームは、仮想コンテンツが実世界内に設置され、したがって、仮想コンテンツがユーザによって視認され得るとき、ローカルおよび/または世界座標フレームおよび/またはPCFに対する位置および回転を有し得る(例えば、ノードおよび対面方向を提供し得る)。各カメラは、片眼の全ての瞳孔位置を包含する、その独自のカメラ座標フレーム100を有してもよい。参照番号104Aおよび106Aは、それぞれ、図9におけるローカル/世界座標変換器104、世界/頭部座標変換器106、および頭部/カメラ座標変換器108によって行われる、変換を表す。
図11は、いくつかの実施形態による、頭部座標フレームからカメラ座標フレームに変換するためのカメラレンダリングプロトコルを描写する。図示される実施例では、片眼に関する瞳孔は、位置AからBに移動する。定常として現れることが意図される仮想オブジェクトは、瞳孔の位置に応じて、2つの位置AまたはBのうちの1つにおける深度面上に投影されるであろう(カメラが瞳孔ベースの座標フレームとして使用するように構成されると仮定して)。その結果、頭部座標フレームに変換される瞳孔座標フレームを使用することは、眼が位置Aから位置Bに移動するにつれて、ジッタを定常仮想オブジェクト内に生じさせるであろう。本状況は、ビュー依存ディスプレイまたは投影と称される。
図12に描写されるように、カメラ座標フレーム(例えば、CR)が、位置付けられ、全ての瞳孔位置を包含するが、オブジェクト投影は、ここでは、瞳孔位置AおよびBにかかわらず、一貫するであろう。頭部座標フレームは、CRフレームに変換し、これは、ビュー独立ディスプレイまたは投影と称される。画像再投影が、仮想コンテンツに適用され、眼位置の変化を考慮してもよいが、しかしながら、レンダリングは、依然として、同一位置にあるため、ジッタは、最小限にされる。
図13は、ディスプレイシステム42をさらに詳細に図示する。ディスプレイシステム42は、レンダリングエンジン30に接続され、視覚データおよびアルゴリズムの一部を形成する、立体視分析器144を含む。
ディスプレイシステム42はさらに、左および右プロジェクタ166Aおよび166Bと、左および右導波管170Aおよび170Bとを含む。左および右プロジェクタ166Aおよび166Bは、電力供給源に接続される。各プロジェクタ166Aおよび166Bは、画像データが個別のプロジェクタ166Aまたは166Bに提供されるための個別の入力を有する。個別のプロジェクタ166Aまたは166Bは、給電されると、2次元パターンにおける光を生成し、光をそこから発出する。左および右導波管170Aおよび170Bは、それぞれ、光を左および右プロジェクタ166Aおよび166Bから受光するように位置付けられる。左および右導波管170Aおよび170Bは、透明導波管である。
使用時、ユーザは、頭部搭載可能フレーム40をその頭部に搭載する。頭部搭載可能フレーム40のコンポーネントは、例えば、ユーザの頭部の背面の周囲に巻着する、ストラップ(図示せず)を含んでもよい。左および右導波管170Aおよび170Bは、次いで、ユーザの左および右眼220Aおよび220Bの正面に位置する。
レンダリングエンジン30は、それが受信する画像データを立体視分析器144の中に取り込む。画像データは、図8におけるローカルコンテンツ28の3次元画像データである。画像データは、複数の仮想平面上に投影される。立体視分析器144は、画像データを分析し、各深度面上への投影のために、画像データに基づいて、左および右画像データセットを決定する。左および右画像データセットは、3次元において投影され、ユーザに深度の知覚を与える、2次元画像を表す、データセットである。
立体視分析器144は、左および右画像データセットを左および右プロジェクタ166Aおよび166Bに取り込む。左および右プロジェクタ166Aおよび166Bは、次いで、左および右光パターンを作成する。ディスプレイシステム42のコンポーネントは、平面図に示されるが、左および右パターンは、正面立面図に示されるとき、2次元パターンであることを理解されたい。各光パターンは、複数のピクセルを含む。例証目的のために、ピクセルのうちの2つからの光線224Aおよび226Aが、左プロジェクタ166Aから出射し、左導波管170Aに入射するように示される。光線224Aおよび226Aは、左導波管170Aの側から反射する。光線224Aおよび226Aは、左導波管170A内で左から右に内反射を通して伝搬することが示されるが、光線224Aおよび226Aはまた、屈折性および反射性システムを使用して、紙面に向かう方向にも伝搬することを理解されたい。
光線224Aおよび226Aは、左光導波管170Aから瞳孔228Aを通して出射し、次いで、左眼220Aの瞳孔230Aを通して左眼220Aに入射する。光線224Aおよび226Aは、次いで、左眼220Aの網膜232A上に当たる。このように、左光パターンは、左眼220Aの網膜232A上に当たる。ユーザは、網膜232A上に形成されるピクセルが、ユーザが左眼220Aに対向する左導波管170Aの側上のある距離にあるように知覚する、ピクセル234Aおよび236Aであるという知覚を与えられる。深度知覚は、光の焦点距離を操作することによって作成される。
同様に、立体視分析器144は、右画像データセットを右プロジェクタ166Bに取り込む。右プロジェクタ166Bは、右光パターンを伝送し、これは、光線224Bおよび226Bの形態におけるピクセルによって表される。光線224Bおよび226Bは、右導波管170B内で反射し、瞳孔228Bを通して出射する。光線224Bおよび226Bは、次いで、右眼220Bの瞳孔230Bを通して入射し、右眼220Bの網膜232B上に当たる。光線224Bおよび226Bのピクセルは、右導波管170Bの背後のピクセル134Bおよび236Bとして知覚される。
網膜232Aおよび232B上に作成されたパターンは、左および右画像として個々に知覚される。左および右画像は、立体視分析器144の機能に起因して、相互に若干異なる。左および右画像は、ユーザの脳内で3次元レンダリングとして知覚される。
述べられたように、左および右導波管170Aおよび170Bは、透明である。眼220Aおよび220Bに対向する左および右導波管170Aおよび170B側上のテーブル16等の実在のオブジェクトからの光は、左および右導波管170Aおよび170Bを通して投影され、網膜232Aおよび232B上に当たることができる。
持続座標フレーム(PCF)
本明細書に説明されるものは、共有空間内のユーザインスタンスを横断して空間存続を提供するための方法および装置である。空間存続がなければ、セッション内にユーザによって物理的世界内に設置された仮想コンテンツは、異なるセッション内のユーザのビュー内に存在し得ない、または誤設置され得る。空間存続がなければ、1人のユーザによって物理的世界内に設置された仮想コンテンツは、第2のユーザが第1のユーザと同一物理的空間の体験を共有するように意図する場合でも、第2のユーザのビュー内に、存在し得ない、または場所がずれ得る。
本発明者らは、空間存続が持続座標フレーム(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は、着目点(例えば、図7におけるマップ点702、図14における特徴1120)を捕捉された画像から抽出すること(4704)と、抽出された着目点に関する記述子(例えば、図14における記述子1130)を生成すること(行為4706)と、記述子に基づいて、キーフレーム(例えば、キーフレーム1140)を生成すること(行為4708)とを含んでもよい。いくつかの実施形態では、本方法は、キーフレーム内の着目点を比較し、所定の量の着目点を共有する、対のキーフレームを形成してもよい。本方法は、個々の対のキーフレームを使用して、物理的世界の一部を再構築してもよい。物理的世界のマッピングされた部分は、3D特徴(例えば、図7におけるキーリグ704)として保存されてもよい。いくつかの実施形態では、対のキーフレームの選択された部分は、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(図21参照)とを含んでもよい。いくつかの実施形態では、マップダウンロードシステム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を生成する実施例を図示する。図示される実施例では、PCFは、PP1と、PP2とを含んでもよい。上記に説明されるように、PCFは、PCFに対する画像データを表示するために使用されてもよい。いくつかの実施形態では、各PCFは、別の座標フレーム(例えば、世界座標フレーム)内の座標と、例えば、PCFを一意に識別する、PCF記述子とを有してもよい。いくつかの実施形態では、PCF記述子は、PCFと関連付けられるフレーム内の特徴の特徴記述子に基づいて算出されてもよい。いくつかの実施形態では、PCFの種々のコンステレーションは、より少ないデータおよびより少ないデータの伝送を要求する、持続様式において、組み合わせられ、実世界を表してもよい。
図20A-20Cは、持続座標フレームを確立および使用する実施例を図示する、概略図である。図20Aは、規準マップに対して位置特定されていない、個別のローカル追跡マップ4804A、4804Bを伴う、2人のユーザ4802A、4802Bを示す。個々のユーザに関する原点4806A、4806Bは、その個別のエリア内の座標系(例えば、世界座標系)によって描写される。各追跡マップのこれらの原点は、原点が、追跡が開始されたときのその個別のデバイスの配向に依存するため、各ユーザにローカルであり得る。
ユーザデバイスのセンサが、環境を走査するにつれて、デバイスは、図14に関連して上記に説明されるように、それらの画像が、そこから持続姿勢が作成され得る、キーフレームとして分類され得るように、持続オブジェクトを表す特徴を含有し得る、画像を捕捉してもよい。本実施例では、追跡マップ4802Aは、持続姿勢(PP)4808Aを含み、追跡マップ4802Bは、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等)をマッチングさせることによって実施されてもよい。
下記にさらに説明されるものは、このように規準マップを作成および使用するための技法である。
深層キーフレーム
本明細書に説明されるような技法は、画像フレームの比較に依拠する。例えば、追跡マップに対するデバイスの位置を確立するために、新しい画像が、ユーザによって装着されるセンサを用いて捕捉されてもよく、XRシステムは、追跡マップを作成するために使用された画像のセット内において、少なくとも所定の量の着目点を新しい画像と共有する、画像を検索してもよい。画像フレームの比較を伴う、別のシナリオの実施例として、追跡マップが、最初に、規準マップ内のPCFと関連付けられる画像フレームに類似する、追跡マップ内の持続姿勢と関連付けられる画像フレームを見出すことによって、規準マップに対して位置特定され得る。代替として、2つの規準マップ間の変換が、最初に、2つのマップ内の類似画像フレームを見出すことによって、算出されてもよい。
深層キーフレームは、類似画像フレームを識別するために要求される処理の量を低減させるための方法を提供する。例えば、いくつかの実施形態では、比較は、新しい2D画像内の画像特徴(例えば、「2D特徴」)とマップ内の3D特徴との間で行われ得る。そのような比較は、3D画像を2D平面の中に投影すること等によって、任意の好適な方法において行われ得る。単語の袋(BoW)等の従来の方法は、マップ内の全ての2D特徴を含む、データベース内の新しい画像の2D特徴を検索し、これは、特に、マップが大エリアを表すとき、有意な算出リソースを要求し得る。従来の方法は、次いで、2D特徴のうちの少なくとも1つを新しい画像と共有する、画像を位置特定し、これは、マップ内の有意義な3D特徴を位置特定するために有用ではない、画像を含み得る。従来の方法は、次いで、新しい画像内の2D特徴に対して有意義ではない、3D特徴を位置特定する。
本発明者らは、より少ないメモリリソース(例えば、BoWによって使用されるメモリリソースの4分の1)、より高い効率(例えば、キーフレーム毎に2.5msの処理時間、500枚のキーフレームに対する比較のために100μs)、およびより高い正確度(例えば、1,024次元モデルのためにBoWより20%良好な読出再生、256次元モデルのためにBoWより5%良好な読出再生)を使用した、マップ内の画像を読み出すための技法を認識および理解している。
算出を低減させるために、画像フレームと他の画像フレームを比較するために使用され得る、記述子が、画像フレームのために算出されてもよい。記述子は、画像フレームおよび特徴点の代わりに、またはそれに加え、記憶されてもよい。持続姿勢および/またはPCFが画像フレームから生成され得る、マップでは、そこから各持続姿勢またはPCFが生成された画像フレームまたは複数のフレームの記述子が、持続姿勢および/またはPCFの一部として記憶されてもよい。
いくつかの実施形態では、記述子は、画像フレーム内の特徴点の関数として算出されてもよい。いくつかの実施形態では、ニューラルネットワークが、画像を表すための一意のフレーム記述子を算出するように構成される。画像は、ユーザによって装着されるデバイスの視野内の3D環境の十分な詳細が画像内で捕捉されるように、1メガバイトより高い分解能を有し得る。フレーム記述子は、数字の列、例えば、128バイト~512バイトの範囲内またはその間の任意の数等、はるかに小さくあり得る。
いくつかの実施形態では、ニューラルネットワークは、算出されたフレーム記述子が画像間の類似性を示すように訓練される。マップ内の画像は、マップを生成するために使用される画像を備えるデータベース内において、新しい画像のためのフレーム記述子に対して所定の距離内のフレーム記述子を有し得る、最も近くの画像を識別することによって位置特定され得る。いくつかの実施形態では、画像間の距離は、2つの画像のフレーム記述子間の差異によって表されてもよい。
図21は、いくつかの実施形態による、個々の画像のための記述子を生成するためのシステムを図示する、ブロック図である。図示される実施例では、フレーム埋込生成器308が、示される。フレーム埋込生成器308は、いくつかの実施形態では、サーバ20と併用されてもよいが、代替として、または加えて、全体または部分的に、XRデバイス12.1および12.2、または他の画像との比較のための画像を処理する任意の他のデバイスのうちの1つ内で実行されてもよい。
いくつかの実施形態では、フレーム埋込生成器は、低減されたサイズにもかかわらず、それでもなお、画像内のコンテンツを示す、初期サイズ(例えば、76,800バイト)から最終サイズ(例えば、256バイト)に低減された画像のデータ表現を生成するように構成されてもよい。いくつかの実施形態では、フレーム埋込生成器は、他の方法において使用されるキーフレームまたはフレームであり得る、画像のためのデータ表現を生成するために使用されてもよい。いくつかの実施形態では、フレーム埋込生成器308は、特定の場所および配向における画像を一意の数字の列(例えば、256バイト)に変換するように構成されてもよい。図示される実施例では、XRデバイスによって撮影される画像320は、画像320内の着目点322を検出するために特徴抽出器324によって処理されてもよい。着目点は、特徴1120(図14)に関して上記に説明されるように、または本明細書に別様に説明されるように、識別された特徴点から導出される場合とそうではない場合がある。いくつかの実施形態では、着目点は、深層疎特徴方法を使用して生成され得る、記述子1130(図14)に関して上記に説明されるように、記述子によって表されてもよい。いくつかの実施形態では、各着目点322は、数字の列(例えば、32バイト)によって表されてもよい。例えば、n個の特徴(例えば、100)が存在してもよく、各特徴は、32バイトの列によって表される。
いくつかの実施形態では、フレーム埋込生成器308は、ニューラルネットワーク326を含んでもよい。ニューラルネットワーク326は、多層パーセプトロンユニット312と、最大(max)プールユニット314とを含んでもよい。いくつかの実施形態では、多層パーセプトロン(MLP)ユニット312は、多層パーセプトロンを備えてもよく、これは、訓練されてもよい。いくつかの実施形態では、着目点322(例えば、着目点のための記述子)は、多層パーセプトロン312によって低減され得、記述子の加重された組み合わせ310として出力され得る。例えば、MLPは、n個の特徴を、n個の特徴未満である、m個の特徴に低減させ得る。
いくつかの実施形態では、MLPユニット312は、行列乗算を実施するように構成されてもよい。多層パーセプトロンユニット312は、画像320の複数の着目点322を受信し、各着目点を個別の数字の列(例えば、256)に変換する。例えば、100個の特徴が存在してもよく、各特徴は、256の数字の列によって表され得る。行列は、本実施例では、100の水平行および256の垂直列を有するように作成されてもよい。各行は、一部は、より小さく、一部は、より大きい、大きさが変動する、一連の256の数を有してもよい。いくつかの実施形態では、MLPの出力は、n×256の行列であってもよく、nは、画像から抽出された特徴の数を表す。いくつかの実施形態では、MLPの出力は、m×256行列であってもよく、mは、nから低減された着目点の数である。
いくつかの実施形態では、MLP312は、その間にMLPのためのモデルパラメータが決定される、訓練相と、使用相とを有してもよい。いくつかの実施形態では、MLPは、図25に図示されるように、訓練されてもよい。入力訓練データは、3つのセット内にデータを備えてもよく、3つのセットは、1)クエリ画像と、2)正のサンプルと、3)負のサンプルとを備える。クエリ画像は、基準画像と見なされ得る。
いくつかの実施形態では、正のサンプルは、クエリ画像に類似する、画像を備えてもよい。例えば、いくつかの実施形態では、類似するとは、同一オブジェクトをクエリおよび正のサンプル画像の両方内に有することであるが、異なる角度から視認され得る。いくつかの実施形態では、類似するとは、同一オブジェクトをクエリおよび正のサンプル画像の両方内に有することであるが、他の画像に対して(例えば、左、右、上、下に)偏移されるオブジェクトを有し得る。
いくつかの実施形態では、負のサンプルは、クエリ画像と類似しない、画像を備えてもよい。例えば、いくつかの実施形態では、類似しない画像は、クエリ画像内で顕著な任意のオブジェクトを含有し得ない、またはクエリ画像内で顕著なオブジェクトの小部分のみ(例えば、<10%、1%)を含有し得る。類似画像は、対照的に、例えば、クエリ画像内でオブジェクトの大部分(例えば、>50%、または>75%)を有し得る。
いくつかの実施形態では、着目点は、入力訓練データ内の画像から抽出されてもよく、特徴記述子に変換されてもよい。これらの記述子は、図25に示されるように、訓練画像のためと、図21のフレーム埋込生成器308の動作時に抽出された特徴のためとの両方のために算出されてもよい。いくつかの実施形態では、深層疎特徴(DSF)プロセスが、米国特許出願第16/190,948号に説明されるように、記述子(例えば、DSF記述子)を生成するために使用されてもよい。いくつかの実施形態では、DSF記述子は、n×32寸法である。記述子は、次いで、モデル/MLPを通して通過され、256バイト出力を作成してもよい。いくつかの実施形態では、モデル/MLPは、いったんモデルパラメータが訓練を通して設定されると、結果として生じる訓練されたMLPがMLP312として使用され得るように、MLP312と同一構造を有してもよい。
いくつかの実施形態では、特徴記述子(例えば、MLPモデルから出力された256バイト)は、次いで、トリプレットマージン損失モジュール(MLPニューラルネットワークの訓練相の間にのみ使用され、使用相の間には使用され得ない)に送信されてもよい。いくつかの実施形態では、トリプレットマージン損失モジュールは、クエリ画像から出力された256バイトと正のサンプルから出力された256バイトとの間の差異を低減させ、クエリ画像から出力された256バイトと負のサンプルから出力された256バイトとの間の差異を増加させるように、モデルのためのパラメータを選択するように構成されてもよい。いくつかの実施形態では、訓練相は、複数のトリプレット入力画像を学習プロセスの中にフィードし、モデルパラメータを決定することを含んでもよい。本訓練プロセスは、例えば、正の画像に関する差異が最小限にされ、負の画像に関する差異が最大限にされるまで、または他の好適な終了基準に到達するまで、継続し得る。
図21に戻って参照すると、フレーム埋込生成器308は、ここでは、最大(max)プールユニット314として図示される、プーリング層を含んでもよい。最大プールユニット314は、各列を分析し、個別の列内の最大数を決定してもよい。最大プールユニット314は、MLP312の出力行列の数の各列の最大値を、例えば、256の数のグローバル特徴列316に組み合わせてもよい。XRシステム内で処理された画像は、望ましくは、潜在的に数百万ピクセルを伴う、高分解能フレームを有し得ることを理解されたい。グローバル特徴列316は、比較的に少ないメモリを占有し、画像(例えば、1メガバイトより高い分解能を伴う)と比較して、容易に検索可能である、比較的に小数である。したがって、カメラからの各オリジナルフレームを分析せずに、画像を検索することが可能であって、また、完全フレームの代わりに、256バイトを記憶するようにより安価である。
図22は、いくつかの実施形態による、画像記述子を算出する方法2200を図示する、フローチャートである。方法2200は、ユーザによって装着されるXRデバイスによって捕捉された複数の画像を受信すること(行為2202)から開始してもよい。いくつかの実施形態では、方法2200は、1つまたはそれを上回るキーフレームを複数の画像から決定すること(行為2204)を含んでもよい。いくつかの実施形態では、行為2204は、スキップされてもよい、および/または代わりに、ステップ2210後に生じてもよい。
方法2200は、人工ニューラルネットワークを用いて、複数の画像内の1つまたはそれを上回る着目点を識別すること(行為2206)と、人工ニューラルネットワークを用いて、個々の着目点のための特徴記述子を算出すること(行為2208)とを含んでもよい。本方法は、画像毎に、少なくとも部分的に、人工ニューラルネットワークを用いて、画像内の識別された着目点のための算出された特徴記述子に基づいて、画像を表すためのフレーム記述子を算出すること(行為2210)を含んでもよい。
図23は、いくつかの実施形態による、画像記述子を使用した位置特定の方法2300を図示する、フローチャートである。本実施例では、XRデバイスの現在の場所を描写する、新しい画像フレームが、マップ内の点(上記に説明されるように、持続姿勢またはPCF等)に関連して記憶された画像フレームと比較されてもよい。方法2300は、ユーザによって装着されるXRデバイスによって捕捉された新しい画像を受信すること(行為2302)から開始してもよい。方法2300は、1つまたはそれを上回るマップを生成するために使用されるキーフレームを備える、データベース内の1つまたはそれを上回る最も近くのキーフレームを識別すること(行為2304)を含んでもよい。いくつかの実施形態では、最も近くのキーフレームは、大まかな空間情報および/または以前に決定された空間情報に基づいて識別されてもよい。例えば、大まかな空間情報は、XRデバイスがマップの50m×50mエリアによって表される地理的領域内に存在することを示し得る。画像マッチングは、そのエリア内の点のみに関して実施されてもよい。別の実施例として、追跡に基づいて、XRシステムは、XRデバイスが、マップ内の第1の持続姿勢に以前に近接しており、マップ内の第2の持続姿勢の方向に移動していたことを把握してもよい。その第2の持続姿勢は、最も近くの持続姿勢と見なされ得、それとともに記憶されたキーフレームは、最も近くのキーフレームと見なされ得る。代替として、または加えて、GPSデータまたはWiFiフィンガプリント等の他のメタデータも、最も近くのキーフレームまたは最も近くのキーフレームのセットを選択するために使用されてもよい。
最も近くのキーフレームが選択される方法にかかわらず、フレーム記述子が、新しい画像が近隣の持続姿勢と関連付けられるものとして選択されたフレームのいずれかにマッチングするかどうかを決定するために使用されてもよい。決定は、新しい画像のフレーム記述子と任意の他の好適な方法において選択されたデータベース内の最近キーフレームまたはキーフレームのサブセットのフレーム記述子を比較し、新しい画像のフレーム記述子の所定の距離内のフレーム記述子を伴うキーフレームを選択することによって行われてもよい。いくつかの実施形態では、2つのフレーム記述子間の距離は、2つのフレーム記述子を表し得る、2つの数字の列間の差異を取得することによって算出されてもよい。列が複数の量の列として処理される、実施形態では、差異は、ベクトル差異として算出されてもよい。
いったんマッチング画像フレームが、識別されると、その画像フレームに対するXRデバイスの配向が、決定され得る。方法2300は、識別された最も近くのキーフレームに対応する、マップ内の3D特徴に対して特徴マッチングを実施すること(行為2306)と、特徴マッチング結果に基づいて、ユーザによって装着されるデバイスの姿勢を算出すること(行為2308)とを含んでもよい。このように、2つの画像内の特徴点の算出上集約的であるマッチングは、新しい画像のための可能性が高いマッチングであるとすでに決定されているわずか1つの画像に関して実施されてもよい。
図24は、いくつかの実施形態による、ニューラルネットワークを訓練する方法2400を図示する、フローチャートである。方法2400は、複数の画像セットを備える、データセットを生成すること(行為2402)から開始してもよい。複数の画像セットはそれぞれ、クエリ画像と、正のサンプル画像と、負のサンプル画像とを含んでもよい。いくつかの実施形態では、複数の画像セットは、例えば、ニューラルネットワークに形状等の基本情報を教示するように構成される、合成記録対を含んでもよい。いくつかの実施形態では、複数の画像セットは、物理的世界から記録され得る、実記録対を含んでもよい。
いくつかの実施形態では、正対応は、2つの画像間の基本行列を適合させることによって算出されてもよい。いくつかの実施形態では、疎重複が、画像の両方内で見られる着目点の和集合上の交点(IoU)として算出されてもよい。いくつかの実施形態では、正のサンプルは、クエリ画像内で同一である、正対応としての役割を果たす、少なくとも20個の着目点を含んでもよい。負のサンプルは、10未満の正対応点を含んでもよい。負のサンプルは、クエリ画像の解析点と重複する、半分未満の疎点を有してもよい。
方法2400は、画像セット毎に、クエリ画像と正のサンプル画像および負のサンプル画像を比較することによって、損失を算出すること(行為2404)を含んでもよい。方法2400は、クエリ画像のために人工ニューラルネットワークによって生成されたフレーム記述子と正のサンプル画像のためのフレーム記述子との間の距離が、クエリ画像のためのフレーム記述子と負のサンプル画像のためのフレーム記述子との間の距離未満であるように、算出された損失に基づいて、人工ニューラルネットワークを修正すること(行為2406)を含んでもよい。
個々の画像のためのグローバル記述子を生成するように構成される、方法および装置が、上記に説明されるが、方法および装置は、個々のマップのための記述子を生成するように構成されてもよいことを理解されたい。例えば、マップは、複数のキーフレームを含んでもよく、それぞれ、上記に説明されるように、フレーム記述子を有してもよい。最大プールユニットは、マップのキーフレームのフレーム記述子を分析し、フレーム記述子をマップのための一意のマップ記述子の中に組み合わせてもよい。
さらに、他のアーキテクチャも、上記に説明されるように、処理のために使用されてもよいことを理解されたい。例えば、別個のニューラルネットワークは、DSF記述子およびフレーム記述子を生成するために説明される。そのようなアプローチは、算出上効率的である。しかしながら、いくつかの実施形態では、フレーム記述子は、最初にDSF記述子を生成せずに、選択された特徴点から生成されてもよい。
マップのランク付けおよびマージ
本明細書に説明されるものは、複数の環境マップをXリアリティ(XR)システム内でランク付けおよびマージまたはスティッチングするための方法および装置である。マップマージまたはスティッチングは、物理的世界の重複部分を表すマップが、より大きいエリアを表すように組み合わせられることを可能にし得る。マップをランク付けすることは、類似性に基づいてマップをマップのセットから選択するステップを伴う、マップマージまたはスティッチングを含む、本明細書に説明されるような技法を効率的に実施することを可能にし得る。いくつかの実施形態では、例えば、いくつかのXRデバイスのいずれかによってアクセスされ得る方法でフォーマットされる、規準マップのセットが、システムによって維持されてもよい。これらの規準マップは、それらのデバイスからの選択された追跡マップと他の追跡マップまたは以前に記憶された規準マップをマージまたはスティッチングすることによって形成されてもよい。規準マップは、例えば、1つまたはそれを上回る規準マップを選択し、新しい追跡マップとマージまたはスティッチングする、および/またはセットから1つまたはそれを上回る規準マップを選択し、デバイス内で使用する際に使用するために、ランク付けされてもよい。
現実的XR体験をユーザに提供するために、XRシステムは、実オブジェクトに関連して仮想オブジェクトの場所を正しく相関させるために、ユーザの物理的周囲を把握しなければならない。ユーザの物理的周囲についての情報は、ユーザの場所に関する環境マップから取得されてもよい。
本発明者らは、XRシステムが、複数のユーザによって収集された実/物理的世界の環境マップの効率的共有を有効にすることによって、それらのユーザが同一または異なる時間に世界内に存在するかどうかにかかわらず、実および/または仮想コンテンツを備える、同一世界を共有する複数のユーザに、向上されたXR体験を提供し得ることを認識し、その真価を認めた。しかしながら、そのようなシステムを提供する際、有意な課題が存在する。そのようなシステムは、複数のユーザによって生成された複数のマップを記憶し得、および/またはシステムは、異なる時間に生成された複数のマップを記憶し得る。例えば、上記に説明されるように、位置特定等の以前に生成されたマップを用いて実施され得る動作に関して、実質的処理が、同一世界(例えば、同一実世界場所)の関連環境マップをXRシステム内で収集された全ての環境マップから識別するために要求され得る。いくつかの実施形態では、デバイスが、例えば、位置特定のためにアクセスし得る、少数の環境マップのみが存在し得る。いくつかの実施形態では、デバイスがアクセスし得る、多数の環境マップが存在し得る。本発明者らは、環境マップの関連性を、例えば、図28における全ての規準マップ120の母集団等のあらゆる可能性として考えられる環境マップから迅速かつ正確にランク付けする技法を認識し、その真価を認めた。高ランク付けマップは、次いで、仮想オブジェクトをユーザディスプレイ上にユーザの周囲の物理的世界と現実的に相互作用するようにレンダリングする、またはそのユーザによって収集されたマップデータと記憶されたマップをマージまたはスティッチングし、より大きいまたはより正確なマップを作成するため等、さらなる処理のために、選択されてもよい。
いくつかの実施形態では、物理的世界内のある場所におけるユーザのためのタスクに関連する、記憶されたマップが、複数の基準に基づいて、記憶されたマップをフィルタリングすることによって識別されてもよい。それらの基準は、その場所におけるユーザのウェアラブルデバイスによって生成された追跡マップと、データベース内に記憶される候補環境マップの比較を示してもよい。比較は、マップを生成するデバイスによって検出されたWi-Fiフィンガプリント等のマップと関連付けられる、メタデータ、および/またはマップを形成する間、それに対してデバイスが接続されるBSSIDのセットに基づいて実施されてもよい。比較はまた、マップの圧縮または解凍されたコンテンツに基づいて実施されてもよい。圧縮された表現に基づく比較は、例えば、マップコンテンツから算出されたベクトルの比較によって実施されてもよい。解凍されたマップに基づく比較は、例えば、追跡マップを記憶されたマップ内で位置特定する、またはその逆によって実施されてもよい。複数の比較が、考慮のために、候補マップの数を低減させるために必要とされる算出時間に基づく順序に実施されてもよく、より少ない算出を伴う比較は、より多くの算出を要求する他の比較より先に実施される。
図26は、いくつかの実施形態による、1つまたはそれを上回る環境マップをランク付けおよびマージまたはスティッチングするように構成される、ARシステム800を描写する。ARシステムは、ARデバイスのパス可能世界モデル802を含んでもよい。パス可能世界モデル802を取り込むための情報は、ARデバイス上のセンサから生じてもよく、これは、プロセッサ804(例えば、図4におけるローカルデータ処理モジュール570)内に記憶される、センサデータをマップに変換するための処理のいくつかまたは全てを実施し得る、コンピュータ実行可能命令を含んでもよい。そのようなマップは、ARデバイスが領域内で動作する際にセンサデータが収集されるにつれて構築され得るような追跡マップであってもよい。その追跡マップとともに、エリア属性が、追跡マップが表すエリアを示すように供給されてもよい。これらのエリア属性は、緯度および経度として提示される座標または場所を表すためにARシステムによって使用されるID等のジオロケーション識別子であってもよい。代替として、または加えて、エリア属性は、そのエリアに関して一意である高尤度を有する、測定された特性であってもよい。エリア属性は、例えば、エリア内で検出された無線ネットワークのパラメータから導出されてもよい。いくつかの実施形態では、エリア属性は、ARシステムが近隣にある、および/または接続される、アクセスポイントの一意のアドレスと関連付けられてもよい。例えば、エリア属性は、5G基地局/ルータ、Wi-Fiルータ、および同等物のMACアドレスまたは基本サービスセット識別子(BSSID)と関連付けられてもよい。
図26の実施例では、追跡マップは、環境の他のマップとマージまたはスティッチングされてもよい。マップランク付け部分806は、追跡マップをデバイスPW802から受信し、マップデータベース808と通信し、マップデータベース808からの環境マップを選択およびランク付けする。より高いランク付けされる選択されたマップは、マップマージまたはスティッチング部分810に送信される。
マップマージまたはスティッチング部分810は、マージまたはスティッチング処理をマップランク付け部分806から送信されるマップ上で実施してもよい。マージ処理は、追跡マップとランク付けされたマップのいくつかまたは全てをマージまたはスティッチングし、新しいマージまたはスティッチングされたマップをパス可能世界モデル812に伝送するステップを伴ってもよい。マップマージまたはスティッチング部分は、物理的世界の重複部分を描写するマップを識別することによって、マップをマージまたはスティッチングしてもよい。それらの重複部分は、両方のマップ内の情報が最終マップの中に集約され得るように整合されてもよい。規準マップは、他の規準マップおよび/または追跡マップとマージまたはスティッチングされてもよい。
集約は、1つのマップを別のマップからの情報で拡張するステップを伴ってもよい。代替として、または加えて、集約は、別のマップ内の情報に基づいて、1つのマップ内の物理的世界の表現を調節するステップを伴ってもよい。後者のマップは、例えば、マップが後者の情報に基づいて更新され得るように、特徴点を生じさせるオブジェクトが移動したことを表し得る。代替として、2つのマップは、異なる特徴点を伴う、同一領域を特性評価し得、集約は、特徴点のセットを2つのマップから選択し、その領域をより良好に表すステップを伴ってもよい。マージまたはスティッチングするプロセスにおいて生じる、具体的処理にかかわらず、いくつかの実施形態では、マージまたはスティッチングされる全てのマップからのPCFが、コンテンツをそれらに対して位置付けるアプリケーションがそのように行い続け得るように、留保されてもよい。いくつかの実施形態では、マップのマージまたはスティッチングは、冗長持続姿勢をもたらし得、持続姿勢のうちのいくつかは、削除されてもよい。PCFが、削除されるべき持続姿勢と関連付けられるとき、マップをマージまたはスティッチングするステップは、PCFがマージまたはスティッチング後にマップ内に残る持続姿勢と関連付けられるように修正するステップを伴ってもよい。
いくつかの実施形態では、マップが、拡張および/または更新されるにつれて、それらは、精緻化されてもよい。精緻化は、物理的世界内の同一オブジェクトを表す可能性が高い、特徴点間の内部不一致を低減させるための算出を伴ってもよい。不一致は、物理的世界内の同一オブジェクトを表す特徴点を供給する、キーフレームと関連付けられる姿勢内の不正確性から生じ得る。そのような不一致は、例えば、追跡マップに対する姿勢を算出するXRデバイスから生じ得、これは、ひいては、姿勢推定内の誤差が、蓄積し、「ドリフト」を姿勢正確度内に経時的に作成するように、姿勢を推定することに基づいて構築される。バンドル調整または他の動作を実施し、複数のキーフレームからの特徴点の不一致を低減させることによって、マップは、精緻化されてもよい。
精緻化に応じて、マップの原点に対する持続点の場所は、変化し得る。故に、持続姿勢またはPCF等のその持続点と関連付けられる変換も、変化し得る。いくつかの実施形態では、XRシステムは、マップ精緻化(マージまたはスティッチング動作の一部として、または他の理由から実施されるかどうかにかかわらず)に関連して、変化した任意の持続点と関連付けられる変換を再算出してもよい。これらの変換は、変換の任意の使用が持続点の更新された場所に基づき得るように、変換を算出するコンポーネントから変換を使用するコンポーネントにプッシュ配信され得る。
パス可能世界モデル812は、クラウドモデルであってもよく、これは、複数のARデバイスによって共有されてもよい。パス可能世界モデル812は、環境マップをマップデータベース808内に記憶する、または別様にそれへのアクセスを有してもよい。いくつかの実施形態では、以前に算出された環境マップが、更新されると、そのマップの以前のバージョンは、古くなったマップをデータベースから除去するように、削除されてもよい。いくつかの実施形態では、以前に算出された環境マップが、更新されると、そのマップの以前のバージョンは、アーカイブされ、環境の以前のバージョンの読出/閲覧を有効にし得る。いくつかの実施形態では、許可が、ある読取/書込アクセスを有するARシステムのみが、マップの以前のバージョンの削除/アーカイブをトリガし得るように設定されてもよい。
1つまたはそれを上回るARデバイス/システムによって供給される追跡マップから作成されたこれらの環境マップは、ARシステム内のARデバイスによってアクセスされてもよい。マップランク付け部分806はまた、環境マップをARデバイスに供給する際に使用されてもよい。ARデバイスは、その現在の場所に関する環境マップを要求するメッセージを送信してもよく、マップランク付け部分806は、要求側デバイスに関連する環境マップを選択およびランク付けするために使用されてもよい。
いくつかの実施形態では、ARシステム800は、マージまたはスティッチングされたマップをクラウドPW812から受信するように構成される、ダウンサンプリング部分814を含んでもよい。クラウドPW812から受信され、マージまたはスティッチングされたマップは、クラウドのための記憶フォーマットであってもよく、これは、平方メートルあたり多数のPCFまたはPCFと関連付けられる複数の画像フレームまたは大セットの特徴点等の高分解能情報を含んでもよい。ダウンサンプリング部分814は、クラウドフォーマットマップをARデバイス上への記憶のために好適なフォーマットにダウンサンプリングするように構成されてもよい。デバイスフォーマットマップは、より少ないPCFまたはPCF毎に記憶されたより少ないデータ等のより少ないデータを有し、ARデバイスの限定されたローカル演算能力および記憶空間に対応し得る。
図27は、遠隔記憶媒体、例えば、クラウド内に記憶され得る、複数の規準マップ120を図示する、簡略化されたブロック図である。各規準マップ120は、惑星である地球上のいずれかの場所等、物理的空間内の規準マップの場所を示す、複数の規準マップ識別子を含んでもよい。これらの規準マップ識別子は、以下の識別子、すなわち、経度および緯度の範囲によって表される、エリア識別子と、フレーム記述子(例えば、図21におけるグローバル特徴列316)と、Wi-Fiフィンガプリントと、特徴記述子(例えば、図21における特徴記述子310)と、マップに寄与した1つまたはそれを上回るデバイスを示す、デバイス識別とのうちの1つまたはそれを上回るものを含んでもよい。
図示される実施例では、規準マップ120は、地球の表面上に存在し得るため、2次元パターンで地理的に配置される。規準マップ120は、重複経度および緯度を有する、任意の規準マップが、新しい規準マップの中にマージまたはスティッチングされ得るため、対応する経度および緯度によって、一意に識別可能であり得る。
図28は、いくつかの実施形態による、新しい追跡マップを1つまたはそれを上回る規準マップに対して位置特定するために使用され得る、規準マップを選択する方法を図示する、概略図である。本方法は、実施例として、パス可能世界(例えば、パス可能世界モジュール538)内のデータベース内に記憶され得る、規準マップ120の母集合にアクセスすること(行為120)から開始してもよい。規準マップの母集合は、全ての以前に訪問した場所からの規準マップを含んでもよい。XRシステムは、全ての規準マップの母集合を小サブセットまたは単一マップのみにフィルタリングしてもよい。いくつかの実施形態では、帯域幅制限に起因して、全ての規準マップを視認デバイスに送信することは不可能であり得ることを理解されたい。デバイスに送信するために、追跡マップにマッチングするための可能性が高い候補として選択されたサブセットを選択することは、マップの遠隔データベースにアクセスすることと関連付けられる帯域幅および待ち時間を低減させ得る。
本方法は、所定のサイズおよび形状を伴うエリアに基づいて、規準マップの母集合をフィルタリングすること(行為300)を含んでもよい。図27に図示される実施例では、各正方形は、エリアを表し得る。各正方形は、50m×50mを網羅し得る。各正方形は、6つの近傍のエリアを有し得る。いくつかの実施形態では、行為300は、少なくとも1つのマップがその経度および緯度に存在する限り、XRデバイスから受信された位置識別子のその経度および緯度を含む、経度および緯度を網羅する、少なくとも1つのマッチング規準マップ120を選択してもよい。いくつかの実施形態では、行為300は、マッチング規準マップに隣接する、経度および緯度を網羅する、少なくとも1つの近傍の規準マップを選択してもよい。いくつかの実施形態では、行為300は、複数のマッチング規準マップと、複数の近傍の規準マップとを選択してもよい。行為300は、例えば、規準マップの数を約10分の1、例えば、数千から数百に低減させ、第1のフィルタリングされた選択を形成してもよい。代替として、または加えて、緯度および経度以外の基準が、近傍のマップを識別するために使用されてもよい。XRデバイスは、例えば、同一セッションの一部として、セット内の規準マップを用いて以前に位置特定されていてもよい。クラウドサービスは、以前に位置特定されたマップを含む、XRデバイスについての情報を留保してもよい。本実施例では、行為300において選択されたマップは、それに対してXRデバイスが位置特定されたマップに隣接する、エリアを網羅するものを含んでもよい。
本方法は、Wi-Fiフィンガプリントに基づいて、規準マップの第1のフィルタリングされた選択をフィルタリングすること(行為302)を含んでもよい。行為302は、XRデバイスからの位置識別子の一部として受信されたWi-Fiフィンガプリントに基づいて、緯度および経度を決定してもよい。行為302は、Wi-Fiフィンガプリントからの緯度および経度と規準マップ120の緯度および経度を比較し、第2のフィルタリングされた選択を形成する、1つまたはそれを上回る規準マップを決定してもよい。行為302は、規準マップの数を約10分の1、例えば、第2の選択を形成する、数百から数十個の規準マップ(例えば、50)に低減させてもよい。例えば、第1のフィルタリングされた選択は、130個の規準マップを含み得、第2のフィルタリングされた選択は、130個の規準マップのうちの50個を含み得、130個の規準マップのうちの残りの80個を含み得ない。
本方法は、キーフレームに基づいて、規準マップの第2のフィルタリングされた選択をフィルタリングすること(行為304)を含んでもよい。行為304は、XRデバイスによって捕捉された画像を表すデータと規準マップ120を表すデータを比較してもよい。いくつかの実施形態では、画像および/またはマップを表すデータは、特徴記述子(例えば、図25におけるDSF記述子)および/またはグローバル特徴列(例えば、図21における316)を含んでもよい。行為304は、規準マップの第3のフィルタリングされた選択を提供してもよい。いくつかの実施形態では、行為304の出力は、例えば、第2のフィルタリングされた選択に続いて識別された50個の規準マップのうちの5つのみであってもよい。マップ伝送機122が、次いで、第3のフィルタリングされた選択に基づいて、1つまたはそれを上回る規準マップを視認デバイスに伝送する。行為304は、規準マップの数を約10分の1、第3の選択を形成する、例えば、数十から単一桁数の規準マップ(例えば、5)に低減させ得る。いくつかの実施形態では、XRデバイスは、第3のフィルタリングされた選択内の規準マップを受信し、受信された規準マップの中に位置特定するように試みてもよい。
例えば、行為304は、規準マップ120のグローバル特徴列316および視認デバイスによって捕捉された画像(例えば、ユーザのためのローカル追跡マップの一部であり得る、画像)に基づくグローバル特徴列316に基づいて、規準マップ120をフィルタリングしてもよい。図27における規準マップ120のそれぞれのものは、したがって、それと関連付けられる1つまたはそれを上回るグローバル特徴列316を有する。いくつかの実施形態では、グローバル特徴列316は、XRデバイスが画像または特徴詳細をクラウドに提出するときに入手されてもよく、クラウドは、画像または特徴詳細を処理し、規準マップ120のためのグローバル特徴列316を生成する。
いくつかの実施形態では、クラウドは、視認デバイスによって捕捉されたライブ/新しい/現在の画像の特徴詳細を受信してもよく、クラウドは、ライブ画像のためのグローバル特徴列316を生成してもよい。クラウドは、次いで、ライブグローバル特徴列316に基づいて、規準マップ120をフィルタリングしてもよい。いくつかの実施形態では、グローバル特徴列は、ローカル視認デバイス上に生成されてもよい。いくつかの実施形態では、グローバル特徴列は、遠隔で、例えば、クラウド上で生成されてもよい。いくつかの実施形態では、クラウドは、フィルタリングされた規準マップを、フィルタリングされた規準マップと関連付けられるグローバル特徴列316とともに、XRデバイスに伝送してもよい。いくつかの実施形態では、視認デバイスが、その追跡マップを規準マップに対して位置特定すると、ローカル追跡マップのグローバル特徴列316と規準マップのグローバル特徴列をマッチングさせることによって、そのように行ってもよい。
XRデバイスの動作は、行為(300、302、304)の全てを実施しなくてもよいことを理解されたい。例えば、規準マップの母集合が、比較的に小さい(例えば、500個のマップ)場合、位置特定するように試みるXRデバイスは、Wi-Fiフィンガプリント(例えば、行為302)およびキーフレーム(例えば、行為304)に基づいて、規準マップの母集合をフィルタリングするが、エリア(例えば、行為300)に基づくフィルタリングを省略してもよい。さらに、マップは、その全体として比較されることが必要であるわけではない。いくつかの実施形態では、例えば、2つのマップの比較は、新しいマップおよびマップの母集合から選択されたマップの両方に現れる、持続姿勢またはPCF等の共通の持続点の識別をもたらし得る。その場合、記述子は、持続点と関連付けられてもよく、それらの記述子は、比較されてもよい。
図29は、いくつかの実施形態による、1つまたはそれを上回るランク付けされた環境マップを選択する方法900を図示する、フローチャートである。図示される実施形態では、ランク付けすることは、追跡マップを作成する、ユーザのARデバイスのために実施される。故に、追跡マップは、環境マップをランク付けする際に使用するために利用可能である。追跡マップが利用不可能である、実施形態では、追跡マップに明示的に依拠しない、環境マップの選択およびランク付けすることの部分のいくつかまたは全てが、使用されてもよい。
方法900は、行為902から開始し得、追跡マップが形成された場所の近傍の環境マップのデータベースからのマップのセット(規準マップとしてフォーマット化され得る)が、アクセスされ、次いで、ランク付けのためにフィルタリングされ得る。加えて、行為902では、その中でユーザのARデバイスが動作しているエリアに関する、少なくとも1つのエリア属性が、決定される。ユーザのARデバイスが追跡マップを構築している、シナリオでは、エリア属性は、それにわたって追跡マップが作成される、エリアに対応し得る。具体的実施例として、エリア属性は、ARデバイスが追跡マップを算出していた間にアクセスポイントからコンピュータネットワークに受信された信号に基づいて、算出されてもよい。
図30は、いくつかの実施形態による、ARシステム800の例示的マップランク付け部分806を描写する。マップランク付け部分806は、ARデバイス上で実行される部分およびクラウド等の遠隔コンピューティングシステム上で実行される部分を含み得るため、クラウドコンピューティング環境内で実行されてもよい。マップランク付け部分806は、方法900の少なくとも一部を実施するように構成されてもよい。
図31Aは、いくつかの実施形態による、追跡マップ(TM)1102およびデータベース内の環境マップCM1-CM4のエリア属性AA1-AA8の実施例を描写する。図示されるように、環境マップは、複数のエリア属性に関連付けられてもよい。エリア属性AA1-AA8は、追跡マップ1102を算出するARデバイスによって検出された無線ネットワークのパラメータ、例えば、それに対してARデバイスが接続される、ネットワークの基本サービスセット識別子(BSSID)、および/または、例えば、ネットワークタワー1104を通して無線ネットワークへのアクセスポイントの受信される信号の強度を含んでもよい。無線ネットワークのパラメータは、Wi-Fiおよび5G NRを含む、プロトコルに準拠してもよい。図32に図示される実施例では、エリア属性は、その中でユーザARデバイスが、センサデータを収集し、追跡マップを形成した、エリアのフィンガプリントである。
図31Bは、いくつかの実施形態による、追跡マップ1102の決定された地理的場所1106の実施例を描写する。図示される実施例では、決定された地理的場所1106は、重心点1110と、重心点の周囲を囲むエリア1108とを含む。本願の地理的場所の決定は、図示されるフォーマットに限定されないことを理解されたい。決定された地理的場所は、例えば、異なるエリア形状を含む、任意の好適なフォーマットを有してもよい。本実施例では、地理的場所は、エリア属性を地理的場所に関連させるデータベースを使用して、エリア属性から決定される。データベースは、市販されており、例えば、緯度および経度として表され、本動作のために使用され得る、Wi-Fiフィンガプリントを場所に関連させる、データベースである。
図29の実施形態では、環境マップを含有する、マップデータベースはまた、マップによって網羅される緯度および経度を含む、それらのマップに関する場所データを含んでもよい。行為902における処理は、そのデータベースから、追跡マップのエリア属性に関して決定された同一緯度および経度を網羅する、環境マップのセットを選択することを伴ってもよい。
行為904は、行為902においてアクセスされる環境マップのセットの第1のフィルタリングである。行為902では、環境マップは、追跡マップの地理的場所との近接度に基づいて、セット内に留保される。本フィルタリングステップは、追跡マップとセット内の環境マップと関連付けられる緯度および経度を比較することによって実施されてもよい。
図32は、いくつかの実施形態による、行為904の実施例を描写する。各エリア属性は、対応する地理的場所1202を有してもよい。環境マップのセットは、追跡マップの決定された地理的場所と重複する地理的場所を有する、少なくとも1つのエリア属性を伴う、環境マップを含んでもよい。図示される実施例では、識別された環境マップのセットは、それぞれ、追跡マップ1102の決定された地理的場所と重複する地理的場所を有する、少なくとも1つのエリア属性を有する、環境マップCM1、CM2、およびCM4を含む。エリア属性AA6と関連付けられる、環境マップCM3は、追跡マップの決定された地理的場所外にあるため、セット内に含まれない。
他のフィルタリングステップもまた、最終的に処理される(マップマージのため、またはスティッチングのため、またはパス可能世界情報をユーザデバイスに提供するため等)セット内の環境マップの数を低減させる/ランク付けするために、環境マップのセット上で実施されてもよい。方法900は、追跡マップおよび環境マップのセットの環境マップと関連付けられるネットワークアクセスポイントの1つまたはそれを上回る識別子の類似性に基づいて、環境マップのセットをフィルタリングすること(行為906)を含んでもよい。マップの形成の間、センサデータを収集し、マップを生成する、デバイスは、Wi-Fiまたは類似無線通信プロトコル等を通して、ネットワークアクセスポイントを通して、ネットワークに接続され得る。アクセスポイントは、BSSIDによって識別され得る。ユーザデバイスは、エリアを通して移動し、データを収集し、マップを形成するにつれて、複数の異なるアクセスポイントに接続し得る。同様に、複数のデバイスが、マップを形成するための情報を供給するとき、デバイスは、異なるアクセスポイントを通して接続されている場合があり、したがって、同様にその理由から、マップを形成する際に使用される複数のアクセスポイントが存在し得る。故に、マップと関連付けられる複数のアクセスポイントが存在し得、アクセスポイントのセットは、マップの場所のインジケーションであり得る。RSSI値として反映され得る、アクセスポイントからの信号の強度は、さらなる地理的情報を提供し得る。いくつかの実施形態では、BSSIDおよびRSSI値のリストは、マップのためのエリア属性を形成し得る。
いくつかの実施形態では、ネットワークアクセスポイントの1つまたはそれを上回る識別子の類似性に基づいて、環境マップのセットをフィルタリングすることは、環境マップのセット内に、ネットワークアクセスポイントの1つまたはそれを上回る識別子に基づいて、追跡マップの少なくとも1つのエリア属性との最高Jaccard類似性を伴う環境マップを留保することを含んでもよい。図33は、いくつかの実施形態による、行為906の実施例を描写する。図示される実施例では、エリア属性AA7と関連付けられるネットワーク識別子は、追跡マップ1102に関する識別子として決定され得る。行為906後の環境マップのセットは、AA7とのより高いJaccard類似性内のエリア属性を有し得る、環境マップCM2と、同様にエリア属性AA7を含む、環境マップCM4とを含む。環境マップCM1は、AA7との最低Jaccard類似性を有するため、セット内に含まれない。
行為902-906における処理は、マップと関連付けられるメタデータに基づいて、マップデータベース内に記憶されるマップのコンテンツに実際にアクセスすることなく、実施されてもよい。他の処理は、マップのコンテンツにアクセスすることを伴ってもよい。行為908は、メタデータに基づいてフィルタリング後にサブセット内に残っている環境マップにアクセスすることを示す。本行為は、後続動作がアクセスされるコンテンツを用いて実施され得る場合、プロセスにおけるより早い段階または後の段階のいずれかで実施されてもよいことを理解されたい。
方法900は、追跡マップおよび環境マップのセットの環境マップのコンテンツを表すメトリックの類似性に基づいて、環境マップのセットをフィルタリングすること(行為910)を含んでもよい。追跡マップおよび環境マップのコンテンツを表すメトリックは、マップのコンテンツから算出された値のベクトルを含んでもよい。例えば、マップを形成する際に使用される1つまたはそれを上回るキーフレームのために算出される、上記に説明されるような深層キーフレーム記述子は、マップまたはマップの一部の比較のためのメトリックを提供し得る。メトリックは、行為908において読み出されたマップから算出されてもよい、または事前に算出され、それらのマップと関連付けられるメタデータとして記憶されてもよい。いくつかの実施形態では、追跡マップおよび環境マップのセットの環境マップのコンテンツを表すメトリックの類似性に基づいて、環境マップのセットをフィルタリングすることは、環境マップのセット内に、追跡マップの特性のベクトルと環境マップのセット内の環境マップを表すベクトルとの間に最小ベクトル距離を伴う環境マップを留保することを含んでもよい。
方法900は、追跡マップの一部と環境マップのセットの環境マップの一部との間のマッチング度に基づいて、環境マップのセットをさらにフィルタリングすること(行為912)を含んでもよい。マッチング度は、位置特定プロセスの一部として決定されてもよい。非限定的実施例として、位置特定は、それらが物理的世界の同一部分を表し得るほど十分に類似する、追跡マップおよび環境マップ内の重要点を識別することによって実施されてもよい。いくつかの実施形態では、重要点は、特徴、特徴記述子、キーフレーム、キーリグ、持続姿勢、および/またはPCFであってもよい。追跡マップ内の重要点のセットは、次いで、環境マップ内の重要点のセットとの最良適合を生産するように整合され得る。対応する重要点間の平均二乗距離が、算出され得、追跡マップの特定の領域に関する閾値を下回る場合、追跡マップおよび環境マップが物理的世界の同一領域を表すことのインジケーションとして使用される。
いくつかの実施形態では、追跡マップの一部と環境マップのセットの環境マップの一部との間のマッチング度に基づいて、環境マップのセットをフィルタリングすることは、環境マップのセットの環境マップ内にもまた表される、追跡マップによって表される物理的世界の体積を算出することと、環境マップのセット内に、セットのフィルタリング除去された環境マップより大きい算出された体積を伴う環境マップを留保することとを含んでもよい。図34は、いくつかの実施形態による、行為912の実施例を描写する。図示される実施例では、行為912後の環境マップのセットは、追跡マップ1102のエリアとマッチングされるエリア1402を有する、環境マップCM4を含む。環境マップCM1は、追跡マップ1102のエリアとマッチングされるエリアを有していないため、セット内に含まれない。
いくつかの実施形態では、環境マップのセットは、行為906、行為910、および行為912の順序でフィルタリングされてもよい。いくつかの実施形態では、環境マップのセットは、行為906、行為910、および行為912に基づいて、フィルタリングされてもよく、これは、最低から最高へとフィルタリングを実施するために要求される処理に基づく順序で実施され得る。方法900は、環境マップおよびデータのセットをロードすること(行為914)を含んでもよい。
図示される実施例では、ユーザデータベースは、ARデバイスが使用されたエリアを示す、エリア識別を記憶する。エリア識別は、エリア属性であってもよく、これは、使用時にARデバイスによって検出された無線ネットワークのパラメータを含み得る。マップデータベースは、ARデバイスによって供給されるデータおよび関連付けられるメタデータから構築された複数の環境マップを記憶してもよい。関連付けられるメタデータは、そこから環境マップが構築されたデータを供給した、ARデバイスのエリア識別から導出されるエリア識別を含んでもよい。ARデバイスは、メッセージをPWモジュールに送信し、新しい追跡マップが作成される、または作成中であることを示してもよい。PWモジュールは、ARデバイスに関するエリア識別子を算出し、受信されたパラメータおよび/または算出されたエリア識別子に基づいて、ユーザデータベースを更新してもよい。PWモジュールはまた、環境マップを要求するARデバイスと関連付けられるエリア識別子を決定し、エリア識別子に基づいて、マップデータベースから環境マップのセットを識別し、環境マップのセットをフィルタリングし、フィルタリングされた環境マップのセットをARデバイスに伝送してもよい。いくつかの実施形態では、PWモジュールは、例えば、追跡マップの地理的場所、追跡マップおよび環境マップのセットの環境マップと関連付けられるネットワークアクセスポイントの1つまたはそれを上回る識別子の類似性、追跡マップおよび環境マップのセットの環境マップのコンテンツを表すメトリックの類似性、および追跡マップの一部と環境マップのセットの環境マップの一部との間のマッチング度を含む、1つまたはそれを上回る基準に基づいて、環境マップのセットをフィルタリングしてもよい。
図35および36は、いくつかの実施形態による、複数の環境マップをランク付けおよびマージまたはスティッチングするように構成される、XRシステムを図示する、概略図である。いくつかの実施形態では、パス可能世界(PW)は、マップをランク付けおよび/またはマージまたはスティッチングするステップをトリガすべきときを決定し得る。いくつかの実施形態では、使用されるべきマップを決定するステップは、いくつかの実施形態によると、少なくとも部分的に、図21-25に関連して上記に説明される深層キーフレームに基づいてもよい。
図37は、いくつかの実施形態による、物理的世界の環境マップを作成する方法3700を図示する、ブロック図である。方法3700は、ユーザによって装着されるXRデバイスによって捕捉された追跡マップを規準マップの群(例えば、図28の方法および/または図29の方法900によって選択された規準マップ)に対して位置特定するステップ(行為3702)から開始してもよい。行為3702は、追跡マップのキーリグを規準マップの群の中に位置特定するステップを含んでもよい。各キーリグの位置特定結果は、キーリグの位置特定された姿勢と、2D/3D特徴対応のセットとを含んでもよい。
いくつかの実施形態では、方法3700は、追跡マップを接続された成分に分割させるステップ(行為3704)を含んでもよく、これは、接続された断片をマージまたはスティッチングすることによって、マップをロバストにマージまたはスティッチングすることを可能にし得る。各接続された成分は、所定の距離内にある、キーリグを含んでもよい。方法3700は、所定の閾値より大きい接続された成分を1つまたはそれを上回る規準マップの中にマージまたはスティッチングするステップ(行為3706)と、マージまたはスティッチングされた接続された成分を追跡マップから除去するステップとを含んでもよい。
いくつかの実施形態では、方法3700は、追跡マップの同一の接続された成分とマージまたはスティッチングされる、群の規準マップをマージまたはスティッチングするステップ(行為3708)を含んでもよい。いくつかの実施形態では、方法3700は、任意の規準マップとマージまたはスティッチングされない、追跡マップの残りの接続された成分を、規準マップにレベル上げするステップ(行為3710)を含んでもよい。いくつかの実施形態では、方法3700は、追跡マップの持続姿勢および/またはPCFと追跡マップの少なくとも1つの接続された成分とマージまたはスティッチングされる、規準マップをマージまたはスティッチングするステップ(行為3712)を含んでもよい。いくつかの実施形態では、方法3700は、例えば、マップ点を融合させ、冗長キーリグをプルーニングすることによって、規準マップを完成させるステップ(行為3714)を含んでもよい。
図38Aおよび38Bは、いくつかの実施形態による、新しい追跡マップで追跡マップ700(図7)からレベル上げされ得る、規準マップ700を更新することによって作成された環境マップ3800を図示する。図7に関して図示および説明されるように、規準マップ700は、点702によって表される、対応する物理的世界内の再構築された物理的オブジェクトの間取図706を提供し得る。いくつかの実施形態では、マップ点702は、複数の特徴を含み得る、物理的オブジェクトの特徴を表し得る。新しい追跡マップは、物理的世界を中心として捕捉され、クラウドにアップロードされ、マップ700とマージまたはスティッチングされてもよい。新しい追跡マップは、マップ点3802と、キーリグ3804、3806とを含んでもよい。図示される実施例では、キーリグ3804は、例えば、マップ700のキーリグ704との対応を確立することによって、規準マップに対して正常に位置特定されたキーリグを表す(図38Bに図示されるように)。他方では、キーリグ3806は、マップ700に対して位置特定されていない、キーリグを表す。キーリグ3806は、いくつかの実施形態では、別個の規準マップにレベル上げされてもよい。
図39A-39Fは、同一物理的空間内のユーザのための共有体験を提供する、クラウドベースの持続座標系の実施例を図示する、概略図である。図39Aは、例えば、クラウドからの規準マップ4814が、図20A-20Cのユーザ4802Aおよび4802Bによって装着されるXRデバイスによって受信されることを示す。規準マップ4814は、規準座標フレーム4806Cを有してもよい。規準マップ4814は、複数の関連付けられるPP(例えば、図39Cにおける4818A、4818B)を伴う、PCF4810Cを有してもよい。
図39Bは、XRデバイスが、その個別の世界座標系4806A、4806Bと規準座標フレーム4806Cとの間に関係を確立したことを示す。これは、例えば、規準マップ4814を個別のデバイス上で位置特定することによって行われてもよい。追跡マップを規準マップに対して位置特定することは、デバイス毎に、そのローカル世界座標系と規準マップの座標系との間の変換をもたらし得る。
図39Cは、位置特定の結果として、変換が個別のデバイス上のローカルPCF(例えば、PCF4810A、4810B)と規準マップ上の個別の持続姿勢(例えば、PP4818A、4818B)との間で算出され得ることを示す(例えば、変換4816A、4816B)。これらの変換を用いることで、各デバイスは、そのローカルPCFを使用し得、これは、デバイス上のセンサを用いて検出された画像を処理し、ローカルデバイスに対する場所を決定し、PP4818A、4818Bまたは規準マップの他の持続点に結び付けられる仮想コンテンツを表示することによって、デバイス上でローカルで検出されることができる。そのようなアプローチは、仮想コンテンツを各ユーザに対して正確に位置特定し得、各ユーザが物理的空間内で仮想コンテンツの同一体験を有することを可能にし得る。
図39Dは、規準マップからローカル追跡マップへの持続姿勢スナップショットを示す。図から分かるように、ローカル追跡マップは、持続姿勢を介して、相互に接続される。図39Eは、ユーザ4802Aによって装着されるデバイス上のPCF4810Aが、PP4818Aを通して、ユーザ4802Bによって装着されるデバイス内にアクセス可能であることを示す。図39Fは、追跡マップ4804A、4804Bおよび規準4814がマージまたはスティッチングされ得ることを示す。いくつかの実施形態では、いくつかのPCFは、マージまたはスティッチングの結果として、除去されてもよい。図示される実施例では、マージまたはスティッチングされたマップは、規準マップ4814のPCF4810Cを含むが、追跡マップ4804A、4804BのPCF4810A、4810Bを含まない。PCF4810A、4810Bと以前に関連付けられるPPは、マップマージまたはスティッチング後、PCF4810Cと関連付けられてもよい。
図40および41は、図9の第1のXRデバイス12.1によって追跡マップを使用する実施例を図示する。図40は、いくつかの実施形態による、3次元の第1のローカル追跡マップ(マップ1)の2次元表現であって、これは、図9の第1のXRデバイスによって生成され得る。図41は、いくつかの実施形態による、マップ1を第1のXRデバイスから図9のサーバにアップロードすることを図示する、ブロック図である。
図40は、第1のXRデバイス12.1上のマップ1および仮想コンテンツ(コンテンツ123およびコンテンツ456)を図示する。マップ1は、原点(原点1)を有する。マップ1は、いくつかのPCF(PCFa-PCFd)を含む。第1のXRデバイス12.1の視点から、PCFaは、一例として、マップ1の原点に位置し、(0,0,0)のX、Y、およびZ座標を有し、PCFbは、X、Y、およびZ座標(-1,0,0)を有する。コンテンツ123は、PCFaと関連付けられる。本実施例では、コンテンツ123は、(1,0,0)のPCFaに対するX、Y、およびZ関係を有する。コンテンツ456は、PCFbに対する関係を有する。本実施例では、コンテンツ456は、PCFbに対する(1,0,0)のX、Y、およびZ関係を有する。
図41では、第1のXRデバイス12.1は、マップ1をサーバ20にアップロードする。本実施例では、サーバが、追跡マップによって表される物理的世界の同一領域のための規準マップを記憶しないため、追跡マップは、初期規準マップとして記憶された。サーバ20は、ここでは、マップ1に基づく、規準マップを有する。第1のXRデバイス12.1は、本段階では空である、規準マップを有する。サーバ20は、議論の目的のために、いくつかの実施形態では、マップ1以外の他のマップを含まない。マップは、第2のXRデバイス12.2上に記憶されていない。
第1のXRデバイス12.1はまた、そのWi-Fiシグネチャデータをサーバ20に伝送する。サーバ20は、Wi-Fiシグネチャデータを使用して、記録されていたそのような他のデバイスのGPS場所とともに、過去にサーバ20または他のサーバに接続されていた他のデバイスから集められたインテリジェンスに基づいて、第1のXRデバイス12.1の大まかな場所を決定してもよい。第1のXRデバイス12.1は、ここで、第1のセッション(図8参照)を終了し得、サーバ20から接続解除し得る。
図42は、いくつかの実施形態による、図16のXRシステムを図示する、概略図であって、第1のユーザ14.1が第1のセッションを終了した後、第2のユーザ14.2がXRシステムの第2のXRデバイスを使用して第2のセッションを開始したことを示す。図43Aは、第2のユーザ14.2による第2のセッションの開始を示す、ブロック図である。第1のユーザ14.1は、第1のユーザ14.1による第1のセッションが終了したため、想像線で示される。第2のXRデバイス12.2は、オブジェクトを記録し始める。可変粒度を伴う種々のシステムが、第2のXRデバイス12.2による第2のセッションが第1のXRデバイス12.1による第1のセッションの同一近傍内にあることを決定するために、サーバ20によって使用されてもよい。例えば、Wi-Fiシグネチャデータ、全地球測位システム(GPS)測位データ、Wi-Fiシグネチャデータに基づくGPSデータ、または場所を示す任意の他のデータが、その場所を記録するために、第1および第2のXRデバイス12.1および12.2内に含まれてもよい。代替として、第2のXRデバイス12.2によって識別されるPCFは、マップ1のPCFと類似性を示し得る。
図43Bに示されるように、第2のXRデバイスは、ブートアップし、画像1110等のデータを1つまたはそれを上回るカメラ44、46から収集し始める。図14に示されるように、いくつかの実施形態では、XRデバイス(例えば、第2のXRデバイス12.2)は、1つまたはそれを上回る画像1110を収集し、画像処理を実施し、1つまたはそれを上回る特徴/着目点1120を抽出してもよい。各特徴は、記述子1130に変換されてもよい。いくつかの実施形態では、記述子1130は、結び付けられた関連付けられる画像の位置および方向を有し得る、キーフレーム1140を説明するために使用されてもよい。1つまたはそれを上回るキーフレーム1140は、前の持続姿勢1150からの閾値距離、例えば、3メートル後に自動的に生成され得る、単一持続姿勢1150に対応してもよい。1つまたはそれを上回る持続姿勢1150は、所定の距離後、例えば、5メートル毎に自動的に生成され得る、単一PCF1160に対応してもよい。経時的に、ユーザが、ユーザの環境を動き回り続け、XRデバイスが、画像1110等のより多くのデータを収集し続けるにつれて、付加的PCF(例えば、PCF3およびPCF4、5)が、作成され得る。1つまたはそれを上回るアプリケーション1180は、XRデバイス上で起動され、ユーザへの提示のために、仮想コンテンツ1170をXRデバイスに提供してもよい。仮想コンテンツは、関連付けられるコンテンツ座標フレームを有してもよく、これは、1つまたはそれを上回るPCFに対して設置されてもよい。図43Bに示されるように、第2のXRデバイス12.2は、3つのPCFを作成する。いくつかの実施形態では、第2のXRデバイス12.2は、サーバ上20に記憶される1つまたはそれを上回る規準マップに対して位置特定するように試みてもよい。
いくつかの実施形態では、図43Cに示されるように、第2のXRデバイス12.2は、規準マップ120をサーバ20からダウンロードしてもよい。第2のXRデバイス12.2上のマップ1は、PCFa-dと、原点1とを含む。いくつかの実施形態では、サーバ20は、種々の場所のための複数の規準マップを有してもよく、第2のXRデバイス12.2が第1のセッションの間の第1のXRデバイス12.1の近傍と同じ近傍内にあることを決定し、第2のXRデバイス12.2に、その近傍に関する規準マップを送信してもよい。
図44は、第2のXRデバイス12.2が、マップ2を生成する目的のためのPCFの識別を開始することを示す。第2のXRデバイス12.2は、単一PCF、すなわち、PCF1、2のみを識別している。第2のXRデバイス12.2のためのPCF1、2のX、Y、およびZ座標は、(1,1,1)であり得る。マップ2は、その独自の原点(原点2)を有し、これは、現在の頭部姿勢セッションのためのデバイス始動時のデバイス2の頭部姿勢に基づいてもよい。いくつかの実施形態では、第2のXRデバイス12.2は、マップ2を規準マップに対して位置特定するように直ちに試みてもよい。いくつかの実施形態では、マップ2は、システムが2つのマップ間の任意または十分な重複を認識しないため、規準マップ(マップ1)に対して位置特定することが不可能である場合がある(すなわち、位置特定が失敗し得る)。位置特定は、第2のマップ内にもまた表される、第1のマップ内に表される物理的世界の一部を識別し、第1のマップと第2のマップとの間の、それらの部分を整合させるために要求される変換を算出することによって実施されてもよい。いくつかの実施形態では、本システムは、ローカルマップと規準マップとの間のPCF比較に基づいて、位置特定してもよい。いくつかの実施形態では、本システムは、ローカルマップと規準マップとの間の持続姿勢比較に基づいて、位置特定してもよい。いくつかの実施形態では、本システムは、ローカルマップと規準マップとの間のキーフレーム比較に基づいて、位置特定してもよい。
図45は、第2のXRデバイス12.2がマップ2のさらなるPCF(PCF1、2、PCF3、PCF4、5)を識別した後のマップ2を示す。第2のXRデバイス12.2は、再び、マップ2を規準マップに対して位置特定するように試みる。マップ2は、規準マップの少なくとも一部と重複するように拡張されたため、位置特定試行は、成功するであろう。いくつかの実施形態では、ローカル追跡マップ、マップ2、および規準マップ間の重複は、PCF、持続姿勢、キーフレーム、または任意の他の好適な中間または派生構築物によって表されてもよい。
さらに、第2のXRデバイス12.2は、コンテンツ123およびコンテンツ456をマップ2のPCF1、2およびPCF3に関連付けている。コンテンツ123は、(1,0,0)のPCF1、2に対するX、Y、およびZ座標を有する。同様に、マップ2内のPCF3に対するコンテンツ456のX、Y、およびZ座標も、(1,0,0)である。
図46Aおよび46Bは、規準マップに対するマップ2の位置特定成功を図示する。位置特定は、1つのマップと他のマップ内のマッチングする特徴に基づいてもよい。ここでは、1つのマップの他のマップに対する平行移動および回転の両方を伴う、適切な変換を用いることで、マップ1410の重複エリア/体積/セクションは、マップ1および規準マップとの共通部分を表す。マップ2は、位置特定する前に、PCF3および4、5を作成し、規準マップは、マップ2が作成される前に、PCFaおよびcを作成したため、異なるPCFが、実空間(例えば、異なるマップ)内の同一体積を表すために作成された。
図47に示されるように、第2のXRデバイス12.2は、規準マップからのPCFa-dを含むように、マップ2を拡張させる。PCFa-dの含有は、規準マップに対するマップ2の位置特定を表す。いくつかの実施形態では、XRシステムは、最適化ステップを実施し、1410内のPCF、すなわち、PCF3およびPCF4、5等の複製PCFを重複エリアから除去してもよい。マップ2が位置特定した後、コンテンツ456およびコンテンツ123等の仮想コンテンツの設置は、更新されたマップ2内の最も近い更新されたPCFに対することになるだろう。仮想コンテンツは、コンテンツのための変化されたPCF結び付けにもかかわらず、かつマップ2のための更新されたPCFにもかかわらず、ユーザに対して同一実世界場所内に現れる。
図48に示されるように、第2のXRデバイス12.2は、さらなるPCF(PCFe、f、g、およびh)が第2のXRデバイス12.2によって識別されるにつれて、例えば、ユーザが実世界を歩き回るにつれて、マップ2を拡張させ続ける。また、マップ1は、図47および48において拡張されていないことに留意されたい。
図49を参照すると、第2のXRデバイス12.2は、マップ2をサーバ20にアップロードする。サーバ20は、規準マップとともに、マップ2を記憶する。いくつかの実施形態では、マップ2は、第2のXRデバイス12.2のためのセッションが終了すると、サーバ20にアップロードされてもよい。
サーバ20内の規準マップは、ここでは、PCFiを含み、これは、第1のXRデバイス12.1上のマップ1内に含まれない。サーバ20上の規準マップは、第3のXRデバイス(図示せず)が、マップをサーバ20にアップロードし、そのようなマップが、PCFiを含むと、PCFiを含むように拡張され得る。
図50では、サーバ20は、マップ2を規準マップとマージまたはスティッチングし、新しい規準マップを形成する。サーバ20は、PCFa-dが規準マップおよびマップ2と共通であることを決定する。サーバは、PCFe-hおよびPCF1、2をマップ2から含むように、規準マップを拡張させ、新しい規準マップを形成する。第1および第2のXRデバイス12.1および12.2上の規準マップは、マップ1に基づき、古くなる。
図51では、サーバ20は、新しい規準マップを第1および第2のXRデバイス12.1および12.2に伝送する。いくつかの実施形態では、これは、第1のXRデバイス12.1および第2のデバイス12.2が、異なるまたは新しいまたは後続セッションの間、位置特定しようと試みるときに生じ得る。第1および第2のXRデバイス12.1および12.2は、上記に説明されるように、その個別のローカルマップ(それぞれ、マップ1およびマップ2)を新しい規準マップに対して位置特定することに進む。
図52に示されるように、頭部座標フレーム96または「頭部姿勢」は、マップ2内のアンカに関連する。いくつかの実施形態では、マップの原点、すなわち、原点2は、セッションの開始時における第2のXRデバイス12.2の頭部姿勢に基づく。PCFが、セッションの間に作成されるにつれて、PCFは、世界座標フレーム、すなわち、原点2に対して設置される。マップ2のPCFは、規準座標フレームに対する持続座標フレームとしての役割を果たし、世界座標フレームは、前のセッションの世界座標フレーム(例えば、図40におけるマップ1の原点1)であってもよい。これらの座標フレームは、図46Bに関連して上記に議論されるように、規準マップに対してマップ2を位置特定するために使用される同一変換によって関連される。
世界座標フレームから頭部座標フレーム96への変換は、図9を参照して前述されている。図52に示される頭部座標フレーム96は、マップ2のPCFに対する特定の座標位置にあって、マップ2に対して特定の角度にある、2つの直交軸のみを有する。しかしながら、頭部座標フレーム96は、マップ2のPCFに対するある3次元場所内にあって、3次元空間内の3つの直交軸を有することを理解されたい。
図53では、頭部座標フレーム96は、マップ2のPCFに対して移動している。頭部座標フレーム96は、第2のユーザ14.2がその頭部を移動させたため、移動している。ユーザは、その頭部を6自由度(6dof)において移動させることができる。頭部座標フレーム96は、したがって、6dof、すなわち、図52におけるその前の場所3次元において、かつマップ2のPCFに対する約3つの直交軸において移動することができる。頭部座標フレーム96は、それぞれ、図9における実オブジェクト検出カメラ44および慣性測定ユニット48が、実オブジェクトおよび頭部ユニット22の運動を検出すると、調節される。頭部姿勢追跡に関するさらなる情報は、「Enhanced Pose
Determination for Display Device」と題された米国特許出願第16/221,065号に開示され、参照することによってその全体として本明細書に組み込まれる。
Determination for Display Device」と題された米国特許出願第16/221,065号に開示され、参照することによってその全体として本明細書に組み込まれる。
図54は、音が1つまたはそれを上回るPCFと関連付けられてもよいことを示す。ユーザは、例えば、立体音を伴うヘッドホンまたはイヤホンを装着し得る。ヘッドホンを通した音の場所が、従来の技法を使用してシミュレートされることができる。音の場所は、ユーザがその頭部を左に回転させると、音の場所が右に回転し、したがって、ユーザが実世界内の同一場所から生じる音を知覚するように、定常位置に位置してもよい。本実施例では、音の場所は、音123および音456によって表される。議論の目的のために、図54は、その分析において、図48に類似する。第1および第2のユーザ14.1および14.2が、同一または異なる時間において、同一部屋内に位置するとき、彼らは、実世界内の同一場所から生じる音123および音456を知覚する。
図55および56は、上記に説明される技術のさらなる実装を図示する。第1のユーザ14.1は、図8を参照して説明されるように、第1のセッションを開始した。図55に示されるように、第1のユーザ14.1は、想像線によって示されるように、第1のセッションを終了した。第1のセッションの終了時、第1のXRデバイス12.1は、マップ1をサーバ20にアップロードした。第1のユーザ14.1は、今度は、第1のセッションの後の時間において、第2のセッションを開始した。第1のXRデバイス12.1は、マップ1が第1のXRデバイス12.1上にすでに記憶されているため、マップ1をサーバ20からダウンロードしない。マップ1が、喪失される場合、第1のXRデバイス12.1は、マップ1をサーバ20からダウンロードする。第1のXRデバイス12.1は、次いで、上記に説明されるように、マップ2のためのPCFを構築し、マップ1に対して位置特定し、規準マップをさらに展開することに進む。第1のXRデバイス12.1のマップ2は、次いで、上記に説明されるように、ローカルコンテンツ、頭部座標フレーム、ローカル音等を関連させるために使用される。
図57および58を参照すると、また、1人を上回るユーザが同一セッションにおいてサーバと相互作用することが可能性として考えられ得る。本実施例では、第1のユーザ14.1および第2のユーザ14.2に、第3のXRデバイス12.3を伴う第3のユーザ14.3が加わっている。各XRデバイス12.1、12.2、および12.3は、それぞれ、その独自のマップ、すなわち、マップ1、マップ2、およびマップ3を生成し始める。XRデバイス12.1、12.2、および12.3が、マップ1、2、および3を展開し続けるにつれて、マップは、サーバ20に漸次的にアップロードされる。サーバ20は、マップ1、2、および3をマージまたはスティッチングし、規準マップを形成する。規準マップは、次いで、サーバ20からXRデバイス12.1、12.2、および12.3のそれぞれのものに伝送される。
図59は、いくつかの実施形態による、頭部姿勢を復元および/またはリセットするための視認方法の側面を図示する。図示される実施例では、行為1400において、視認デバイスが、電源投入される。行為1410では、電源投入されることに応答して、新しいセッションが、開始される。いくつかの実施形態では、新しいセッションは、頭部姿勢を確立するステップを含んでもよい。ユーザの頭部に固着される、頭部搭載型フレーム上の1つまたはそれを上回る捕捉デバイスが、最初に、環境の画像を捕捉し、次いで、表面を画像から決定することによって、環境の表面を捕捉する。いくつかの実施形態では、表面データはまた、重力センサからのデータと組み合わせられ、頭部姿勢を確立してもよい。頭部姿勢を確立する他の好適な方法が、使用されてもよい。
行為1420では、視認デバイスのプロセッサが、頭部姿勢の追跡のためのルーチンに入る。捕捉デバイスは、ユーザがその頭部を移動させるにつれて、環境の表面を捕捉し、表面に対する頭部搭載型フレームの配向を決定し続ける。
行為1430では、プロセッサが、頭部姿勢が喪失されたかどうかを決定する。頭部姿勢は、低特徴入手をもたらし得る、あまりに多くの反射性表面、低光量、何もない壁、屋外等、「縁」ケースに起因して、または移動し、マップの一部を形成する、群集等、動的ケースのため、喪失された状態になり得る。1430におけるルーチンは、頭部姿勢が喪失されたかどうかを決定するための十分な時間を可能にするために、ある時間量、例えば、10秒が経過することを可能にする。頭部姿勢が喪失されていない場合、プロセッサは、1420に戻り、再び、頭部姿勢の追跡に入る。
頭部姿勢が、行為1430において喪失された場合、プロセッサは、1440において、頭部姿勢を復元するためのルーチンに入る。頭部姿勢が、低光量に起因して喪失された場合、以下のメッセージ等のメッセージが、視認デバイスのディスプレイを通してユーザに表示される。
システムが、低光量条件を検出中です。より光の多いエリアに移動してください。
システムは、十分な光が利用可能であるかどうかと、頭部姿勢が復元され得るかどうかとを監視し続けるであろう。システムは、代替として、表面の低テクスチャが頭部姿勢を喪失させていることを決定し得、その場合、ユーザは、表面の捕捉を改良するための提案として、以下のプロンプトがディスプレイ内に与えられる。
システムは、微細なテクスチャを伴う十分な表面を検出することができません。表面のテクスチャが粗くなく、テクスチャがより精緻化されたエリアに移動してください。
行為1450では、プロセッサは、頭部姿勢復元が失敗したかどうかを決定するためのルーチンに入る。頭部姿勢復元が失敗していない(すなわち、頭部姿勢復元が成功した)場合、プロセッサは、再び、頭部姿勢の追跡に入ることによって、行為1420に戻る。頭部姿勢復元が失敗した場合、プロセッサは、行為1410に戻り、新しいセッションを確立する。新しいセッションの一部として、全てのキャッシュされたデータは、無効化され、以降、頭部姿勢は、新しく確立される。頭部追跡の任意の好適な方法が、図59に説明されるプロセスと組み合わせて使用されてもよい。米国特許出願第16/221,065号は、頭部追跡を説明しており、参照することによってその全体として本明細書に組み込まれる。
遠隔位置特定
遠隔位置特定
種々の実施形態は、遠隔リソースを利用して、個々のユーザおよび/またはユーザの群間の持続かつ一貫したクロスリアリティ体験を促進し得る。本発明者らは、図30に図示されるように、本明細書に説明されるような規準マップを用いたXRデバイスの動作の利点が、規準マップのセットをダウンロードせずに達成され得ることを認識および理解している。本利点は、例えば、特徴および姿勢情報を、規準マップのセットを維持する、遠隔サービスに送信することによって達成されてもよい。規準マップを使用して、仮想コンテンツを規準マップに対して規定された場所に位置付けることを求める、デバイスは、遠隔サービスから、特徴と規準マップとの間の1つまたはそれを上回る変換を受信してもよい。それらの変換は、物理的世界内のそれらの特徴の位置についての情報を維持する、デバイス上において、仮想コンテンツを規準マップに対して規定された場所に位置付ける、または別様に、規準マップに対して規定された物理的世界内の場所を識別するために使用されてもよい。
いくつかの実施形態では、空間情報は、XRデバイスによって捕捉され、クラウドベースのサービス等の遠隔サービスに通信され、これは、空間情報を使用して、XRシステムのアプリケーションまたは他のコンポーネントによって使用される規準マップに対して、XRデバイスを位置特定し、物理的世界に対する仮想コンテンツの場所を規定する。いったん位置特定されると、デバイスによって維持される追跡マップを規準マップにリンクする、変換が、デバイスに通信されることができる。変換は、追跡マップと併せて、その中に規準マップに対して規定された仮想コンテンツをレンダリングするべき位置を決定する、または別様に、規準マップに対して規定された物理的世界内の場所を識別するために使用されてもよい。
本発明者らは、デバイスと遠隔位置特定サービスとの間で交換されるために必要とされるデータが、デバイスが、追跡マップを遠隔サービスに通信し、そのサービスからデバイスベースの位置特定のための規準マップのセットを受信するときに生じ得るようなマップデータを通信することと比較して、非常にわずかであり得ることを認識している。いくつかの実施形態では、位置特定機能をクラウドリソース上で実施することは、少量の情報のみがデバイスから遠隔サービスに伝送されることを要求する。例えば、完全追跡マップが位置特定を実施するために遠隔サービスに通信されることは、要件ではない。いくつかの実施形態では、上記に説明されるように、持続姿勢に関連して記憶され得るような特徴および姿勢情報が、遠隔サーバに伝送され得る。上記に説明されるように、特徴が記述子によって表される、実施形態では、アップロードされた情報は、さらによりわずかであり得る。
位置特定サービスからデバイスに返される結果は、アップロードされた特徴をマッチングする規準マップの部分に関連させる、1つまたはそれを上回る変換であってもよい。それらの変換は、その追跡マップと併せて、仮想コンテンツの場所を識別する、または別様に、物理的世界内の場所を識別するために、XRシステム内で使用されてもよい。上記に説明されるように、PCF等の持続空間情報が、規準マップに対する場所を規定するために使用される、実施形態では、位置特定サービスは、デバイスに、位置特定成功後、特徴と1つまたはそれを上回るPCFとの間の変換をダウンロードしてもよい。
結果として、XRデバイスと位置特定を実施するための遠隔サービスとの間の通信によって消費されるネットワーク帯域幅は、小さくなり得る。本システムは、したがって、頻繁な位置特定をサポートし、システムと相互作用する各デバイスが、仮想コンテンツを位置付ける、または他の場所ベースの機能を実施するための情報を迅速に取得することを有効にし得る。デバイスが、物理的環境内を移動するにつれて、更新された位置特定情報のための要求を繰り返してもよい。加えて、デバイスは、規準マップが変化するとき等、付加的追跡マップのマージまたはスティッチング等を通して、位置特定情報への更新を頻繁に取得し、マップを拡張させる、またはその正確度を増加させてもよい。
さらに、特徴をアップロードし、変換をダウンロードすることは、偽装によってマップを取得する困難度を増加させることによって、マップ情報を複数のユーザ間で共有する、XRシステムにおけるプライバシを向上させ得る。非認可ユーザは、例えば、その中に非認可ユーザが位置しない、物理的世界の一部を表す、規準マップに関する偽の要求を送信することによって、マップをシステムから取得しないように阻止され得る。非認可ユーザは、その領域内に物理的に存在しない場合、それに関するマップ情報を要求している、物理的世界の領域内の特徴へのアクセスを有する可能性が低いであろう。特徴情報が特徴説明としてフォーマット化される、実施形態では、特徴情報をマップ情報に関する要求内で偽装する困難度は、高くなるであろう。さらに、本システムが、それについての場所情報が要求される、領域内で動作する、デバイスの追跡マップに適用されるように意図される変換を返すとき、本システムによって返される情報は、詐欺師には殆どまたは全く役に立たない可能性が高い。
一実施形態によると、位置特定サービスは、クラウドベースのマイクロサービスとして実装される。いくつかの実施例では、クラウドベースの位置特定サービスを実装することは、デバイス算出リソースを保存することに役立ち得、位置特定のために要求される算出が非常に短待ち時間を伴って実施されることを有効にし得る。それらの動作は、付加的クラウドリソースを提供することによって利用可能なほぼ無限の算出力または他のコンピューティングリソースによってサポートされ、XRシステムのスケーラビリティが多数のデバイスをサポートすることを確実にすることができる。一実施例では、多くの規準マップは、ほぼ瞬時のアクセスのために、メモリ内に維持され、または代替として、高可用性デバイス内に記憶され、システム待ち時間を低減させることができる。
さらに、クラウドサービス内で複数のデバイスに関する位置特定を実施することは、プロセスに対する精緻化を有効にし得る。位置特定遠隔測定および統計は、どの規準マップがアクティブメモリおよび/または高可用性記憶装置内にあるかに関する情報を提供することができる。複数のデバイスに関する統計は、例えば、最も頻繁にアクセスされる規準マップを識別するために使用されてもよい。
付加的正確度もまた、遠隔デバイスに対する実質的処理リソースを用いたクラウド環境または他の遠隔環境内の処理の結果として達成され得る。例えば、位置特定は、ローカルデバイス上で実施される処理に対して、クラウド内のより高密度の規準マップ上で行われることができる。マップは、例えば、より多くのPCFまたはPCFあたりより高い密度の特徴記述子とともに、クラウド内に記憶され、デバイスからの特徴のセットと規準マップとの間のマッチングの正確度を増加させてもよい。
図61は、XRシステム6100の概略図である。ユーザセッションの間、クロスリアリティコンテンツを表示する、ユーザデバイスは、種々の形態で現れることができる。例えば、ユーザデバイスは、ウェアラブルXRデバイス(例えば、6102)またはハンドヘルドモバイルデバイス(例えば、6104)であることができる。上記に議論されるように、これらのデバイスは、アプリケーションまたは他のコンポーネント等のソフトウェアとともに構成され、および/または有線接続され、仮想コンテンツをその個別のディスプレイ上にレンダリングするために使用され得る、ローカル位置情報(例えば、追跡マップ)を生成することができる。
仮想コンテンツ位置付け情報は、グローバル場所情報に対して規定されてもよく、これは、例えば、1つまたはそれを上回るPCFを含有する、規準マップとして、フォーマット化されてもよい。いくつかの実施形態、例えば、図61に示される実施例形態によると、システム6100は、ユーザデバイス上での仮想コンテンツの機能および表示をサポートする、クラウドベースのサービスとともに構成される。
一実施例では、位置特定機能は、クラウドベースのサービス6106として提供され、これは、マイクロサービスであってもよい。クラウドベースのサービス6106は、複数のコンピューティングデバイスのいずれか上に実装されてもよく、そこからコンピューティングリソースが、クラウド内で実行される1つまたはそれを上回るサービスに配分されてもよい。それらのコンピューティングデバイスは、相互に、かつウェアラブルXRデバイス6102およびハンドヘルドデバイス6104等のデバイスにアクセス可能に相互接続されてもよい。そのような接続は、1つまたはそれを上回るネットワークを経由して提供されてもよい。
いくつかの実施形態では、クラウドベースのサービス6106は、記述子情報を個別のユーザデバイスから受け取り、デバイスをマッチングする規準マップまたは複数のマップに対して「位置特定」するように構成される。例えば、クラウドベースの位置特定サービスは、受信された記述子情報を個別の規準マップに関する記述子情報にマッチングさせる。規準マップは、物理的世界についての情報を入手する、画像センサまたは他のセンサを有する、1つまたはそれを上回るデバイスによって提供される、マップをマージまたはスティッチングすることによって、規準マップを作成する、上記に説明されるような技法を使用して作成されてもよい。しかしながら、規準マップが、それらにアクセスするデバイスによって作成されることは、要件ではなく、したがって、マップは、例えば、マップを位置特定サービス6106に利用可能にすることによって、それらを公開し得る、マップ開発者によって作成されてもよい。
いくつかの実施形態によると、クラウドサービスは、規準マップ識別をハンドリングし、規準マップのリポジトリを潜在的マッチングのセットに対してフィルタリングするための動作を含んでもよい。フィルタリングは、図29に図示されるように、または図29に示されるフィルタ基準の代わりに、またはそれに加え、フィルタ基準および他のフィルタ基準の任意のサブセットを使用することによって、実施されてもよい。一実施形態では、地理的データが、規準マップをマッチングさせるための検索を位置特定を要求するデバイスに近接するエリアを表すマップに限定するために使用されることができる。例えば、Wi-Fi信号データ、Wi-Fiフィンガプリント情報、GPSデータ、および/または他のデバイス場所情報等のエリア属性が、規準マップ上に記憶された大まかなフィルタとして使用され、それによって、記述子の分析を、ユーザデバイスに近接することが既知である、またはその可能性が高い規準マップに限定することができる。同様に、各デバイスの場所履歴が、デバイスの最新の場所の近傍内の規準マップが優先的に検索されるように、クラウドサービスによって維持されてもよい。いくつかの実施例では、フィルタリングは、図31B、32、33、および34に関して上記に議論される機能を含むことができる。
図62は、クラウドベースのサービスを使用して、規準マップを用いて、デバイスの位置を位置特定し、デバイスローカル座標系と規準マップの座標系との間の1つまたはそれを上回る変換を規定する、変換情報を受信するために、デバイスによって実行され得る、例示的プロセスフローである。種々の実施形態および実施例は、第1の座標フレームから第2の座標フレームへの変換を規定するものとして1つまたはそれを上回る変換を説明し得る。他の実施形態は、第2の座標フレームから第1の座標フレームへの変換を含む。さらに他の実施形態では、変換は、1つの座標フレームから別の座標フレームへの遷移を有効にし、結果として生じる座標フレームは、所望の座標フレーム出力(例えば、その中にコンテンツを表示するべき座標フレームを含む)のみに依存する。まださらなる実施形態では、座標系変換は、第2の座標フレームから第1の座標フレームおよび第1の座標フレームから第2の座標の決定を有効にし得る。
いくつかの実施形態によると、規準マップに対して定義された持続姿勢毎の変換を反映させる情報は、デバイスに通信されることができる。
一実施形態によると、プロセス6200は、新しいセッションを用いて、6202から開始することができる。新しいセッションをデバイス上で開始することは、画像情報の捕捉を開始し、デバイスのための追跡マップを構築し得る。加えて、デバイスは、メッセージを送信し、位置特定サービスのサーバに登録し、サーバに、そのデバイスのためのセッションを作成するようにプロンプトしてもよい。
いくつかの実施形態では、新しいセッションをデバイス上で開始することは、随意に、調節データをデバイスから位置特定サービスに送信することを含んでもよい。位置特定サービスは、デバイスに、特徴および関連付けられる姿勢のセットに基づいて算出される、1つまたはそれを上回る変換を返す。特徴の姿勢が、変換の算出前に、デバイス特有の情報に基づいて調節される、および/または変換が、変換の算出後、デバイス特有の情報に基づいて調節される場合、それらの算出をデバイス上で実施するのではなく、デバイス具体的情報は、位置特定サービスが調節を適用し得るように、位置特定サービスに送信され得る。具体的実施例として、デバイス特有の調節情報を送信することは、センサおよび/またはディスプレイに関する較正データを捕捉することを含んでもよい。較正データは、例えば、測定された場所に対する特徴点の場所を調節するために使用されてもよい。代替として、または加えて、較正データは、そこでディスプレイが、その特定のデバイスのために正確に位置付けられて現れるように、仮想コンテンツをレンダリングするようにコマンドされる、場所を調節するために使用されてもよい。本較正データは、例えば、デバイス上のセンサを用いて得られる同一場面の複数の画像から導出されてもよい。それらの画像内で検出された特徴の場所は、複数の画像が、センサ場所に関して解法され得る、方程式のセットをもたらすように、センサ場所の関数として表され得る。算出されたセンサ場所は、公称位置と比較されてもよく、較正データは、任意の差異から導出されてもよい。いくつかの実施形態では、デバイスの構造についての固有の情報はまた、いくつかの実施形態では、較正データがディスプレイのために算出されることを有効にし得る。
較正データがセンサおよび/またはディスプレイのために生成される、実施形態では、較正データは、測定または表示プロセスにおいて、任意の点に適用されてもよい。いくつかの実施形態では、較正データは、位置特定サーバに送信されてもよく、これは、較正データを、位置特定サーバに登録されており、したがって、サーバとセッション中である、デバイス毎に確立されるデータ構造内に記憶してもよい。位置特定サーバは、較正データを、その較正データを供給するデバイスのための位置特定プロセスの一部として算出された任意の変換に適用してもよい。感知および/または表示される情報のより高い正確度のために較正データを使用する算出負担は、したがって、較正サービスによって担われ、デバイス上での処理負担を低減させるためのさらなる機構を提供する。
いったん新しいセッションが、確立されると、プロセス6200は、デバイスの環境の新しいフレームの捕捉を伴う、6204に継続し得る。各フレームは、6206において、捕捉されたフレームに関する記述子(例えば、上記に議論されるDSF値を含む)を生成するように処理されることができる。これらの値は、図14、22、および23に関して上記に議論されるような技法を含む、上記に説明される技法のいくつかまたは全てを使用して、算出されてもよい。議論されるように、記述子は、記述子への特徴点のマッピング、またはいくつかの実施形態では、特徴点の周囲の画像のパッチのマッピングとして、算出されてもよい。記述子は、新しく入手されたフレーム/画像と記憶されたマップとの間の効率的マッチングを有効にする、値を有してもよい。さらに、画像から抽出された特徴の数は、画像あたり200の特徴点等の画像あたり最大数の特徴点に限定されてもよい。特徴点は、上記に説明されるように、着目点を表すように選択されてもよい。故に、行為6204および6206は、追跡マップを形成する、または別様に、デバイスの周囲の物理的世界の画像を周期的に収集するデバイスプロセスの一部として、実施されてもよい、または位置特定のために別個に実施されてもよいが、そうである必要はない。
6206における特徴抽出は、姿勢情報を6206において抽出された特徴に付加することを含んでもよい。姿勢情報は、デバイスのローカル座標系内の姿勢であってもよい。いくつかの実施形態では、姿勢は、上記に議論されるように、持続姿勢等の追跡マップ内の基準点に対するものであってもよい。代替として、または加えて、姿勢は、デバイスの追跡マップの原点に対するものであってもよい。そのような実施形態は、本明細書に説明されるように、位置特定サービスが、広範囲のデバイスのための位置特定サービスを、それらが持続姿勢を利用しない場合でも、提供することを有効にし得る。それにかかわらず、姿勢情報は、位置特定サービスが、特徴を記憶されたマップ内の特徴にマッチングさせることに応じて、デバイスに返され得る、変換を算出するための姿勢情報を使用し得るように、各特徴または特徴の各セットに付加され得る。
プロセス6200は、決定ブロック6207に継続し得、そこで、位置特定を要求するかどうかの決定が、行われる。1つまたはそれを上回る基準が、位置特定を要求するかどうかを決定するために適用されてもよい。基準は、デバイスが、ある閾値時間量後、位置特定を要求し得るように、時間の経過を含んでもよい。例えば、位置特定が、ある閾値時間量内に試行されなかった場合、プロセスは、決定ブロック6207から行為6208に継続し得、そこで、位置特定が、クラウドから要求される。その閾値時間量は、例えば、25秒等の10~30秒であってもよい。代替として、または加えて、位置特定は、デバイスの運動によってトリガされてもよい。プロセス6200を実行するデバイスは、IMUおよび/またはその追跡マップを使用して、その運動を追跡し、デバイスが最後に位置特定を要求した場所からの閾値距離を超える運動の検出に応じて、位置特定を開始してもよい。閾値距離は、例えば、3~5メートル等の1~10メートルであってもよい。なおもさらなる代替として、位置特定は、上記に説明されるように、デバイスが新しい持続姿勢を作成する、またはデバイスに関する現在の持続姿勢が変化するとき等、イベントに応答して、トリガされてもよい。
いくつかの実施形態では、決定ブロック6207は、位置特定をトリガするための閾値が動的に確立され得るように、実装されてもよい。例えば、その中で特徴が、抽出された特徴のセットを記憶されたマップの特徴にマッチングさせる際に低信頼度が存在し得るように、主として、均一である、環境では、位置特定は、より頻繁に要求され、位置特定における少なくとも1回の試行が成功するであろう、機会を増加させ得る。そのようなシナリオでは、決定ブロック6207において適用される閾値は、減少されてもよい。同様に、その中に比較的に少ない特徴が存在する、環境では、決定ブロック6207において適用される閾値は、位置特定試行の周波数を増加させるように、減少されてもよい。
位置特定がトリガされる方法にかかわらず、トリガされると、プロセス6200は、行為6208に進み得、そこで、デバイスは、位置特定サービスによって位置特定を実施するために使用されるデータを含む、位置特定サービスのための要求を送信する。いくつかの実施形態では、複数の画像フレームからのデータが、位置特定試行のために提供されてもよい。位置特定サービスは、例えば、複数の画像フレーム内の特徴が一貫した位置特定結果をもたらさない限り、位置特定成功と見なされ得ない。いくつかの実施形態では、プロセス6200は、特徴記述子および付加された姿勢情報をバッファの中に保存することを含んでもよい。バッファは、例えば、最も最近捕捉されたフレームから抽出された特徴のセットを記憶する、巡回バッファであってもよい。故に、位置特定要求は、バッファ内に蓄積された特徴のいくつかのセットとともに送信されてもよい。いくつかの設定では、バッファサイズは、位置特定成功をもたらす可能性がより高いであろう、データのいくつかのセットを蓄積するように実装される。いくつかの実施形態では、バッファサイズは、例えば、2つ、3つ、4つ、5つ、6つ、7つ、8つ、9つ、または10のフレームからの特徴を蓄積するために設定されてもよい)。随意に、バッファサイズは、ベースライン設定を有することができ、これは、位置特定失敗に応答して、増加されることができる。いくつかの実施例では、増加するバッファサイズおよび伝送される特徴のセットの対応する数は、後続位置特定機能が結果を返すことに失敗する、尤度を低減させる。
バッファサイズが設定される方法にかかわらず、デバイスは、位置特定要求の一部として、バッファのコンテンツを位置特定サービスに転送してもよい。他の情報も、特徴点および付加された姿勢情報と併せて、伝送されてもよい。例えば、いくつかの実施形態では、地理的情報が、伝送されてもよい。地理的情報は、例えば、デバイス追跡マップまたは現在の持続姿勢と関連付けられる、GPS座標または無線シグネチャを含んでもよい。
6208において送信される要求に応答して、クラウド位置特定サービスは、特徴記述子を分析し、デバイスをサービスによって維持される規準マップまたは他の持続マップの中に位置特定してもよい。例えば、記述子は、それに対してデバイスが位置特定される、マップ内の特徴のセットにマッチングされる。クラウドベースの位置特定サービスは、デバイスベースの位置特定に関して上記に説明されるように、位置特定を実施してもよい(例えば、位置特定のための上記に議論される機能(マップランク付け、マップフィルタリング、場所推定、フィルタリングされたマップ選択、図44-46における、および/または位置特定モジュールに関して議論される、実施例、PCFおよび/またはPP識別およびマッチング等を含む)のいずれかに依拠することができる)。しかしながら、識別された規準マップを(例えば、デバイス位置特定における)デバイスに通信する代わりに、クラウドベースの位置特定サービスは、デバイスから送信される特徴セットの相対的配向およびに規準マップのマッチングする特徴に基づいて、変換を生成するように進めてもよい。位置特定サービスは、これらの変換をデバイスに返してもよく、これは、ブロック6210において受信されてもよい。
いくつかの実施形態では、位置特定サービスによって維持される規準マップは、上記に説明されるように、PCFを採用してもよい。そのような実施形態では、デバイスから送信される特徴点にマッチングする、規準マップの特徴点は、1つまたはそれを上回るPCFに対して規定された位置を有し得る。故に、位置特定サービスは、1つまたはそれを上回る規準マップを識別し得、位置特定のための要求とともに送信される姿勢内に表される座標フレームと1つまたはそれを上回るPCFとの間の変換を算出し得る。いくつかの実施形態では、1つまたはそれを上回る規準マップの識別は、個別のデバイスに関する地理的データに基づいて、潜在的マップをフィルタリングすることによって補助される。例えば、いったん(例えば、オプションの中でもとりわけ、GPS座標によって)候補セットにフィルタリングされると、規準マップの候補セットは、上記に説明されるように、詳細に分析され、マッチングする特徴点またはPCFを決定することができる。
行為6210において要求側デバイスに返されるデータは、持続姿勢変換のテーブルとしてフォーマット化されてもよい。テーブルは、1つまたはそれを上回る規準マップ識別子を伴い、それに対してデバイスが位置特定サービスによって位置特定された規準マップを示すことができる。しかしながら、位置特定情報は、関連付けられるPCFおよび/または規準マップ識別子を伴う変換のリストとしてを含む、他の方法において、フォーマット化されてもよいことを理解されたい。
変換がフォーマット化される方法にかかわらず、行為6212において、デバイスは、これらの変換を使用して、仮想コンテンツを、それに関して場所がXRシステムのアプリケーションまたは他のコンポーネントによってPCFのいずれかに対して規定されている、レンダリングすべき場所を算出してもよい。本情報は、代替として、または加えて、デバイス上において、その中で場所がPCFに基づいて規定される、任意の場所ベースの動作を実施するために使用されてもよい。
いくつかのシナリオでは、位置特定サービスは、デバイスから送信される特徴を任意の記憶された規準マップにマッチングすることができない場合があり得る、または位置特定サービスのための要求とともに通信される、位置特定成功が生じたと見なすための十分な数のセットの特徴にマッチングすることが不可能である場合がある。そのようなシナリオでは、行為6210に関連して上記に説明されるように、変換をデバイスに返すのではなく、位置特定サービスは、デバイスに、位置特定が失敗したことを示してもよい。そのようなシナリオでは、プロセス6200は、行為6230への決定ブロック6209において分岐し得、デバイスは、失敗処理のための1つまたはそれを上回るアクションを講じてもよい。これらのアクションは、位置特定のために送信される特徴セットを保持する、バッファのサイズを増加させることを含んでもよい。例えば、位置特定サービスが、3つのセットの特徴がマッチングしない限り、位置特定成功と見なさない場合、バッファサイズは、5つから6つに増加され、特徴の伝送されるセットのうちの3つが位置特定サービスによって維持される規準マップにマッチングされ得る可能性を増加させてもよい。
代替として、または加えて、失敗処理は、デバイスの動作パラメータを調節し、より頻繁な位置特定試行をトリガすることを含んでもよい。位置特定試行間の閾値時間および/または閾値距離が、例えば、減少されてもよい。別の実施例として、特徴の各セット内の特徴点の数が、増加されてもよい。特徴のセットと規準マップ内に記憶された特徴との間のマッチングは、デバイスから送信されるセット内の十分な数の特徴がマップの特徴にマッチングするときに生じると見なされ得る。送信される特徴の数を増加させることは、マッチングの機会を増加させ得る。具体的実施例として、初期特徴セットサイズは、50であってもよく、これは、各連続位置特定失敗に応じて、100、150、次いで、200まで増加されてもよい。マッチングする成功に応じて、セットサイズは、次いで、その初期値に戻されてもよい。
失敗処理はまた、位置特定サービスから以外の位置特定情報を取得することを含んでもよい。いくつかの実施形態によると、ユーザデバイスは、規準マップをキャッシュするように構成されることができる。キャッシュされたマップは、デバイスが、クラウドが利用不可能な場合、コンテンツにアクセスし、それを表示することを可能にする。例えば、キャッシュされた規準マップは、通信失敗または他の不可用性の場合、デバイスベースの位置特定を可能にする。
種々の実施形態によると、図62は、デバイスがクラウドベースの位置特定を開始するための高レベルフローを説明する。他の実施形態では、図示されるステップの種々の1つまたはそれを上回るものは、組み合わせられる、省略される、または他のプロセスを呼び出し、位置特定と、最終的には、個別のデバイスのビュー内における仮想コンテンツの可視化とを遂行することができる。
さらに、プロセス6200は、デバイスが、決定ブロック6207において位置特定を開始すべきかどうかを決定することを示すが、開始位置特定を開始するためのトリガは、位置特定サービスからを含む、デバイス外から生じてもよいことを理解されたい。位置特定サービスは、例えば、それとセッション中である、デバイスのそれぞれについての情報を維持してもよい。その情報は、例えば、それに対して各デバイスが最も最近位置特定された、規準マップの識別子を含んでもよい。位置特定サービスまたはXRシステムの他のコンポーネントは、図26に関連して上記に説明されるような技法を使用することを含め、規準マップを更新してもよい。規準マップが、更新されると、位置特定サービスは、通知を、そのマップに対して最も最近位置特定された各デバイスに送信してもよい。その通知は、デバイスが位置特定を要求するためのトリガとしての役割を果たしてもよく、および/またはデバイスからの特徴の最も最近送信されたセットを使用して再算出された、更新された変換を含んでもよい。
図63A、B、およびCは、デバイスとクラウドサービスとの間の動作および通信を示す、例示的プロセスフローである。ブロック6350、6352、6354、および6456において示されるものは、クラウドベースの位置特定プロセスに関与するコンポーネント間の例示的アーキテクチャおよび分離である。例えば、ユーザデバイス上の知覚をハンドリングするように構成される、モジュール、コンポーネント、および/またはソフトウェアは、6350(例えば、660、図6A)に示される。存続される世界動作のためのデバイス機能性は、6352(例えば、上記において、存続される世界モジュールに関して説明されるようなものを含む(例えば、662、図6A))に示される。他の実施形態では、6350と6352との間の分離は、必要とされず、示される通信は、デバイス上で実行されるプロセス間で行われることができる。
同様に、ブロック6354において示されるものは、パス可能世界/パス可能世界モデル化(例えば、802、812、図26)と関連付けられる機能性をハンドリングするように構成される、クラウドプロセスである。ブロック6356において示されるものは、デバイスから記憶された規準マップのリポジトリの1つまたはそれを上回るマップに送信される情報に基づいて、デバイスを位置特定することと関連付けられる機能性をハンドリングするように構成される、クラウドプロセスである。
図示される実施形態では、プロセス6300は、新しいセッションが開始すると、6302から開始する。6304において、センサ較正データが、取得される。取得される較正データは、6350において表されるデバイス(例えば、カメラ、センサ、測位デバイス等の数)に依存し得る。いったんセンサ較正が、デバイスに関して取得されると、較正は、6306においてキャッシュされることができる。デバイス動作が、周波数パラメータ(例えば、オプションの中でもとりわけ、収集周波数、サンプリング周波数、マッチング周波数)の変化をもたらした場合、周波数パラメータは、6308において、ベースラインにリセットされる。
いったん新しいセッション機能(例えば、較正ステップ6302-6306)が、完了すると、プロセス6300は、新しいフレーム6312の捕捉を継続することができる。特徴およびその対応する記述子が、6314において、フレームから抽出される。いくつかの実施例では、記述子は、上記に議論されるように、DSFを含むことができる。いくつかの実施形態によると、記述子は、それらに結び付けられる、空間情報を有し、後続処理(例えば、変換生成)を促進することができる。デバイス上で生成された姿勢情報(例えば、上記に議論されるように、物理的世界内の特徴を位置特定するために、デバイスの追跡マップに対して規定された情報)は、6316において、抽出された記述子に付加されることができる。
6318では、記述子および姿勢情報が、バッファに追加される。ステップ6312-6318に示される新しいフレーム捕捉およびバッファへの追加は、6319において、バッファサイズ閾値を超えるまで、ループにおいて実行される。バッファサイズが満たされたことの決定に応答して、位置特定要求が、6320において、デバイスからクラウドに通信される。いくつかの実施形態によると、要求は、クラウド(例えば、6354)内でインスタンス化されるパス可能世界サービスによってハンドリングされることができる。さらなる実施形態では、候補規準マップを識別するための機能的動作は、(例えば、ブロック6354および6356として示される)実際のマッチングのための動作から分断されることができる。一実施形態では、マップフィルタリングおよび/またはマップランク付けのためのクラウドサービスが、6354において実行され、6320から受信された位置特定要求を処理することができる。一実施形態によると、マップランク付け動作は、6322において、デバイスの場所を含む可能性が高い、候補マップのセットを決定するように構成される。
一実施例では、マップランク付け機能は、地理的属性または他の場所データ(例えば、観察または推測された場所情報)に基づいて、候補規準マップを識別する動作を含む。例えば、他の場所データは、Wi-FiシグネチャまたはGPS情報を含むことができる。
他の実施形態によると、場所データは、デバイスおよびユーザとのクロスリアリティセッションの間、捕捉されることができる。プロセス6300は、所与のデバイスおよび/またはセッションのために場所を取り込むための付加的動作を含むことができる(図示せず)。例えば、場所データは、デバイスエリア属性値およびデバイスの場所に近接する候補規準マップを選択するために使用される属性値として記憶されてもよい。
場所オプションのうちの任意の1つまたはそれを上回るものが、規準マップのセットを、ユーザデバイスの場所を含むエリアを表す可能性が高いものにフィルタリングするために使用されることができる。いくつかの実施形態では、規準マップは、物理的世界の比較的に大領域を被覆してもよい。規準マップは、マップの選択がマップエリアの選択を伴い得るように、エリアにセグメント化されてもよい。マップエリアは、例えば、約数十平方メートルであってもよい。したがって、規準マップのフィルタリングされたセットは、マップのエリアのセットであってもよい。
いくつかの実施形態によると、位置特定スナップショットが、候補規準マップ、姿勢付き特徴、およびセンサ較正データから構築されることができる。例えば、候補規準マップ、姿勢付き特徴、およびセンサ較正情報のアレイが、具体的にマッチングする規準マップを決定するための要求とともに送信されることができる。規準マップとのマッチングは、デバイスから受信された記述子および規準マップと関連付けられる記憶されたPCFデータに基づいて、実行されることができる。
いくつかの実施形態では、デバイスからの特徴のセットは、規準マップの一部として記憶された特徴のセットと比較される。比較は、特徴記述子および/または姿勢に基づいてもよい。例えば、規準マップの特徴の候補セットは、それらが同一特徴であり得る、デバイスからの特徴セットの記述子と十分に類似する記述子を有する、候補セット内の特徴の数に基づいて、選択されてもよい。候補セットは、例えば、規準マップを形成する際に使用される画像フレームから導出される特徴であってもよい。
いくつかの実施形態では、類似特徴の数が、閾値を超える場合、さらなる処理が、特徴の候補セット上で実施されてもよい。さらなる処理は、デバイスからの姿勢付き特徴のセットが候補セットの特徴と整合され得る程度を決定してもよい。規準マップからの特徴のセットは、デバイスからの特徴のように、姿勢付きであってもよい。
いくつかの実施形態では、特徴は、高次元埋込(例えば、DSF等)としてフォーマット化され、最近傍検索を使用して比較されてもよい。一実施例では、本システムは、ユークリッド距離を使用して、(例えば、プロセス6200および/または6300を実行することによって)上位2つの最近傍を見出すように構成され、比率試験を実行してもよい。最近傍が、第2の最近傍よりはるかに近い場合、本システムは、最近傍がマッチングすると見なす。本コンテキストにおける「はるかに近い」は、例えば、閾値×最近傍に対するユークリッド距離を上回る第2の最近傍に対するユークリッド距離の比率によって、決定され得る。いったんデバイスからの特徴が、規準マップ内の特徴に「マッチング」すると見なされると、本システムは、マッチングする特徴の姿勢を使用して、相対的変換を算出するように構成されてもよい。姿勢情報から展開された変換は、規準マップに対してデバイスを位置特定するために要求される、変換を示すために使用されてもよい。
正対応の数は、マッチングの品質のインジケーションとしての役割を果たし得る。例えば、DSFマッチングの場合、正対応の数は、受信された記述子情報と記憶された/規準マップとの間でマッチングされた特徴の数を反映させる。さらなる実施形態では、正対応は、本実施形態では、「マッチング」する各セット内の特徴の数をカウントすることによって、決定されてもよい。
マッチングの品質のインジケーションは、代替として、または加えて、他の方法において決定されてもよい。いくつかの実施形態では、例えば、変換が、マッチングする特徴の相対的姿勢に基づいて、複数の特徴を含有し得る、デバイスからのマップを、規準マップに対して位置特定するために算出されると、複数のマッチングする特徴毎に算出された変換の統計は、品質インジケーションとしての役割を果たし得る。大分散は、例えば、マッチングの不良品質を示し得る。代替として、または加えて、本システムは、決定された変換に関して、マッチングする記述子を伴う特徴間の平均誤差を算出してもよい。平均誤差は、変換に関して算出され、位置不整合の程度を反映させてもよい。平均二乗誤差は、誤差メトリックの具体的実施例である。具体的誤差メトリックにかかわらず、誤差が、閾値を下回る場合、変換は、デバイスから受信された特徴のために使用可能であると決定され得、算出された変換は、デバイスを位置特定するために使用される。代替として、または加えて、正対応の数はまた、デバイスから受信されたデバイスの位置情報および/または記述子にマッチングする、マップが存在するかどうかを決定する際に使用されてもよい。
上記に述べられたように、いくつかの実施形態では、デバイスは、位置特定のために、特徴の複数のセットを送信してもよい。位置特定は、少なくとも、特徴のセットの閾値数が、誤差が閾値を下回り、かつ/または正対応の数が、閾値を上回る状態で、規準マップからの特徴のセットにマッチングするとき、成功と見なされ得る。その閾値数は、例えば、特徴の3つのセットであってもよい。しかしながら、特徴の十分な数のセットが好適な値を有するかどうかを決定するために使用される、閾値は、実験的に、または他の好適な方法において、決定されてもよいことを理解されたい。同様に、マッチングすると見なされるべき特徴記述子間の類似性の程度、特徴の候補セットの選択のための正対応の数、および/または不整合誤差の大きさ等のマッチングプロセスの他の閾値またはパラメータも同様に、実験的に、または他の好適な方法において、決定されてもよい。
いったんマッチングが、決定されると、マッチングされた規準マップまたは複数のマップと関連付けられる、持続マップ特徴のセットが、識別される。マッチングがマップのエリアに基づく、実施形態では、持続マップ特徴は、マッチングするエリア内のマップ特徴であってもよい。持続マップ特徴は、上記に説明されるように、持続姿勢またはPCFであってもよい。図63の実施例では、持続マップ特徴は、持続姿勢である。
持続マップ特徴のフォーマットにかかわらず、各持続マップ特徴は、その中でそれが一部である、規準マップに対する所定の配向を有してもよい。本相対的配向は、算出された変換に適用され、デバイスからの特徴のセットと規準マップからの特徴のセットを整合させ、デバイスからの特徴のセットと持続マップ特徴との間の変換を決定してもよい。較正データから導出され得るような任意の調節が、次いで、本算出された変換に適用されてもよい。結果として生じる変換は、デバイスのローカル座標フレームと持続マップ特徴との間の変換であり得る。本算出は、マッチングするマップエリアの持続マップ特徴毎に実施されてもよく、結果は、6326において、persistent_pose_tableとして示されるテーブル内に記憶されてもよい。
一実施例では、ブロック6326は、持続姿勢変換、規準マップ識別子、および正対応の数のテーブルを返す。いくつかの実施形態によると、規準マップIDは、規準マップおよび規準マップのバージョン(または定位置特定がマップエリアに基づく、実施形態では、マップのエリア)を一意に識別するための識別子である。
種々の実施形態では、算出された位置特定データは、6328において、位置特定サービスによって維持される、位置特定統計および遠隔測定を取り込むために使用されることができる。本情報は、デバイス毎に記憶されてもよく、位置特定試行毎に更新されてもよく、デバイスのセッションが終了すると、クリアにされてもよい。例えば、デバイスによってマッチングされたマップは、マップランク付け動作を精緻化するために使用されることができる。例えば、それに対してデバイスが以前にマッチングされた、同一エリアを被覆するマップは、ランク付けにおいて優先化されてもよい。同様に、隣接するエリアを被覆するマップは、より遠隔エリアより高い優先順位を与えられてもよい。さらに、隣接するマップは、デバイスの経時的に検出された軌道に基づいて、優先化され得、運動の方向にあるマップエリアは、他のマップエリアより高い優先順位を与えられる。位置特定サービスは、例えば、デバイスからの後続位置特定要求に応じて、本情報を使用して、記憶された規準マップ内の特徴の候補セットのために検索されるマップまたはマップエリアを限定してもよい。マッチングが、低誤差メトリックおよび/または多数または高パーセンテージの正対応を伴って、本限定されたエリア内で識別される場合、エリア外のマップの処理は、回避され得る。
プロセス6300は、クラウド(例えば、6354)からユーザデバイス(例えば、6352)への情報の通信を継続することができる。一実施形態によると、持続姿勢テーブルおよび規準マップ識別子が、6330において、ユーザデバイスに通信される。一実施例では、持続姿勢テーブルは、少なくとも、持続姿勢IDを識別する、ストリングと、デバイスの追跡マップおよび持続姿勢をリンクさせる、変換とを含む、要素から構築されることができる。持続マップ特徴がPCFである、実施形態では、テーブルは、代わりに、マッチングするマップのPCFへの変換を示してもよい。
位置特定が、6336において、失敗する場合、プロセス6300は、デバイスから位置特定サービスに送信されるデータの量を増加させ、位置特定が成功するであろう機会を増加させ得る、パラメータを調節することによって、継続する。失敗は、例えば、規準マップ内の特徴のセットが、閾値数を上回る類似記述子を伴って見出され得ないとき、または候補特徴の全ての変換されたセットと関連付けられる誤差メトリックが、閾値を上回るときに示され得る。調節され得る、パラメータの実施例として、記述子バッファのためのサイズ制約(6319)が、増加されてもよい。例えば、記述子バッファサイズが、5である場合、位置特定失敗は、少なくとも6つの画像フレームから抽出された特徴の少なくとも6つのセットまでの増加をトリガすることができる。いくつかの実施形態では、プロセス6300は、記述子バッファインクリメント値を含むことができる。一実施例では、インクリメント値は、例えば、位置特定失敗に応答して、バッファサイズの増加率を制御するために使用されることができる。位置特定要求の率を制御するパラメータ等の他のパラメータも、マッチングする規準マップを見出すことの失敗に応じて、変更されてもよい。
いくつかの実施形態では、6300の実行は、6340において、マッチングする結果を返さないのではなく、位置特定要求が機能することに失敗した実行を含む、エラー条件を生成することができる。エラーは、例えば、規準マップのデータベースを保持する記憶装置を位置特定サービスを実行するサーバに利用不可能にしたネットワーク不良、または正しくなくフォーマット化された情報を含有する位置特定サービスのための受信された要求の結果として、生じ得る。エラー条件の場合、本実施例では、プロセス6300は、6342において、要求の再試行をスケジューリングする。
位置特定要求が、成功すると、失敗に応答して調節される、任意のパラメータは、リセットされてもよい。6332では、プロセス6300は、周波数パラメータを任意のデフォルトまたはベースラインにリセットする動作を継続することができる。いくつかの実施形態では、6332は、任意の変更にかかわらず、実行され、したがって、ベースライン周波数が、常時、確立されることを確実にする。
受信された情報は、デバイスによって、6334において、キャッシュされた位置特定スナップショットを更新するために使用されることができる。種々の実施形態によると、個別の変換、規準マップ識別子、および他の位置特定データは、デバイスによって、記憶され、規準マップに対して規定された場所、または持続姿勢またはPCF等のそれらの持続マップ特徴を、その追跡マップから決定され得るようなそのローカル座標フレームに対してデバイスによって決定された場所に関連させるために使用されることができる。
クラウド内の位置特定のためのプロセスの種々の実施形態は、前述のステップのうちの任意の1つまたはそれを上回るものを実装し、前述のアーキテクチャに基づくことができる。他の実施形態は、前述のステップの種々の1つまたはそれを上回るものを組み合わせ、ステップを同時に、並列に、または別の順序で実行してもよい。
いくつかの実施形態によると、クロスリアリティ体験のコンテキストにおける、クラウド内の位置特定サービスは、付加的機能性を含むことができる。例えば、規準マップキャッシュが、コネクティビティに関する問題点を解決するために実行されてもよい。いくつかの実施形態では、デバイスは、周期的に、それに対してそれが位置特定されている、規準マップをダウンロードおよびキャッシュしてもよい。クラウド内の位置特定サービスが、利用不可能である場合、デバイスは、それ自体で位置特定を起動してもよい(例えば、図26に関してを含む、上記に議論されるように)。他の実施形態では、位置特定要求から返される変換は、ともに連鎖され、後続セッションにおいて適用されることができる。例えば、デバイスは、一連の変換をキャッシュし、変換のシーケンスを使用して、位置特定を確立してもよい。
システムの種々の実施形態は、位置特定動作の結果を使用して、変換情報を更新することができる。例えば、位置特定サービスおよび/またはデバイスは、規準マップ変換に対する追跡マップに関する状態情報を維持するように構成されることができる。受信された変換は、経時的に平均されることができる。一実施形態によると、平均動作は、閾値数(例えば、3回、4回、5回、またはそれを上回る回数)の位置特定が成功した後に生じるように限定されることができる。さらなる実施形態では、他の状態情報も、クラウド内において、例えば、パス可能世界モジュールによって、追跡されることができる。一実施例では、状態情報は、デバイス識別子、追跡マップID、規準マップ基準(例えば、バージョンおよびID)、および規準マップ/追跡マップ変換を含むことができる。いくつかの実施例では、状態情報は、システムによって、持続的に更新し、クラウドベースの位置特定機能の実行毎に、より正確な規準マップ/追跡マップ変換を得るために使用されることができる。
クラウドベースの位置特定に対する付加的向上は、デバイスに、規準マップ内の特徴にマッチングしなかった、特徴のセット内の誤対応を通信することを含むことができる。デバイスは、例えば、誤対応をその追跡マップを構築するために使用される特徴のセットから除去すること等によって、その追跡マップを改良するために、本情報を使用してもよい。代替として、または加えて、位置特定サービスからの情報は、デバイスが、その追跡マップのためのバンドル調整を、正対応特徴に基づく、コンピューティング調節に限定する、または別様に、バンドル調整プロセスに関する制約を課すことを有効にし得る。
別の実施形態によると、種々のサブプロセスまたは付加的動作が、クラウドベースの位置特定に関して議論されるプロセスおよび/またはステップと併せて、および/またはその代替として、使用されることができる。例えば、候補マップ識別は、個別のマップとともに記憶されたエリア識別子および/またはエリア属性に基づいて、規準マップにアクセスすることを含んでもよい。
稠密マップマージ
本明細書に説明されるものは、ユーザデバイスの算出リソースが限定される場合でも、大規模環境内における、没入型のマルチユーザ体験を伴う、XRシステムの使用を有効にする、3D再構築物を効率的に生成および共有するための方法および装置である。3D再構築物は、物理的環境の3D表現を含んでもよく、これは、視覚的オクルージョン、仮想オブジェクトとの物理学ベースの相互作用、および/または環境推測等のXR機能のために使用されてもよい。
本発明者らは、大規模3D再構築物を構築、記憶、および共有する、方法および装置を認識し、その真価を認めた。これらの技法は、複数のデバイスが、マップの集合を通して、姿勢情報を共有することを可能にする、システムと連動してもよい。上記に説明される共有規準マップ等、姿勢情報を提供するために使用されるマップは、疎マップであってもよい。疎マップは、上記に説明される共有規準マップおよび追跡マップ内で使用される特徴のセット等、世界についての情報のサブセットのみに基づいて、物理的世界を表し得る。
疎マップは、デバイスが3D環境についての稠密情報を収集することと、共有処理リソースが、複数のデバイスからの稠密情報を3D環境の大規模稠密表現の中に処理することとの両方のために、共通基準フレームを提供してもよい。それらの共有処理リソースは、疎マップ構造および位置特定に関連して上記に説明されるように、クラウドサービスとして実装されてもよい。
例えば、規準マップに対して位置特定する、各デバイスは、持続姿勢のセットを取得し、場所および配向情報を提供してもよい(これは、いくつかの実施形態では、上記に説明されるように、PCFとしてフォーマット化されてもよい)。持続姿勢は、上記に説明されるように、位置特定プロセスを通して生成された変換を通して、デバイスのローカル座標フレームに関連し得る。複数のデバイスのそれぞれ上で収集された3D環境についての稠密情報は、基準フレームに対する場所および配向と関連付けられる、情報を有するように、姿勢付きであってもよい。位置特定プロセスを通して生成された変換の結果として、稠密情報の姿勢は、共有持続姿勢に関連し得る。本変換は、デバイス上で、またはクラウド内で、適用されてもよい。姿勢付き稠密情報が、クラウド内で処理されると、クラウド処理コンポーネントは、ともに処理するために、3D環境の同一領域についての稠密情報を群化することができる。そのようなクラウド処理コンポーネントは、本明細書では、稠密マップマージまたはスティッチングコンポーネントと称され、稠密情報の群を別個に処理し、3D環境の大規模再構築物の複数の部分を構築し得る。いくつかの実施形態では、共有疎マップ内の同一持続場所に参照される、複数のデバイス上で収集された稠密情報は、ともに処理され、大規模稠密再構築物の一部を形成し得る。
その大規模再構築物は、共有稠密マップとしての役割を果たし得る。ポータブルデバイスは、デバイスが、そうでなければ、センサデータからの稠密情報を再構築するために要求されるであろうものより低遅延および少ない処理を伴って、3D環境についての稠密情報を取得し得るように、共有稠密マップにアクセスしてもよい。
疎マップを通して導出される、姿勢情報はまた、各デバイスがその場所に適用可能である稠密マップ情報を取得するように、デバイスとクラウドサービスとの間に相互作用を管理することを補助し得る。例えば、クラウドサービスによって管理される複数の疎マップが存在する、実施形態では、それぞれ、疎マップのうちの1つの持続姿勢に参照される、稠密情報を伴う、複数の稠密マップが存在し得る。上記に説明されるように、疎マップに対するデバイスの位置特定は、その現在の場所におけるデバイスに適用可能である稠密情報を含有する、その疎マップに対応する、稠密マップの識別をもたらし得る。
いくつかの実施形態では、本システム内のデバイスは、クラウド上に構築される共有3D再構築物への効率的アクセスのためのキャッシュ構造を含んでもよい。各デバイスは、例えば、位置特定プロセスを通して決定されるような、その場所と関連付けられる、適用可能稠密マップを読み出し、記憶してもよい。デバイスは、次いで、ネットワークを経由するより高速である、ローカル記憶装置から、共有マップ内の稠密情報にアクセスしてもよい。
いくつかの実施形態では、デバイスは、共有稠密マップの一部のみをキャッシュしてもよい。キャッシュされた部分はまた、疎マップ位置特定の間に生成された情報に基づいて識別されてもよい。稠密マップが、疎マップ内の持続姿勢に対する姿勢付きの表面情報を含有する、実施形態では、共有疎マップ内の持続姿勢に対して表される位置特定結果は、各デバイスに関連する表面情報の選択を有効にする。各デバイスは、共有疎マップからの持続姿勢に対して位置特定されるにつれて、同一持続姿勢に参照される、稠密マップ部分を含むように、そのキャッシュを更新してもよい。いくつかの実施形態では、デバイスは、それに対して位置特定が達成された、同一持続姿勢、随意に、近傍の持続姿勢に参照される稠密マップ部分を含むように、キャッシュを維持してもよい。
デバイスは、キャッシュされた稠密マップ情報とデバイス上に構築されるローカル3D再構築物を組み合わせ、稠密マップ情報への効率的かつ正確なアクセスを提供してもよい。デバイスが動作するにつれて、それらは、3D再構築物をローカルで実施してもよい。これらのローカルで生成された3D再構築物は、共有稠密マップの中にマージまたはスティッチングするために、クラウドに送信されてもよい。いくつかのシナリオでは、デバイスは、共有稠密マップではなく、そのローカルで生成された3D再構築物を使用することを選択してもよい。例えば、デバイスは、それに関して共有稠密マップのキャッシュされた部分を有していない、3D環境の一部のローカル稠密表現を有する場合、そのローカルで生成された3D表現を使用してもよい、すなわち、デバイスは、そのローカル稠密表現を使用してもよい。その中でデバイスが、共有稠密マップのその部分がクラウド内で更新された後、それに関して共有稠密マップのキャッシュされた部分を有する、そのローカル稠密表現を更新している、シナリオでは、デバイスは、そのローカル稠密表現を使用してもよい。
いくつかの実施形態では、デバイスは、クラウドからダウンロードされた3D環境表現を、3D表現がクラウド上で構築されている間に蓄積された履歴深度および姿勢情報のサブセットおよび新しい姿勢および深度情報で更新してもよい。その結果、各デバイスは、最新実世界幾何学形状を反映させる、共有されるが、また、個々に適した、3D再構築物を有することができる。いくつかの実施形態では、デバイスは、以前に探索した空間に進入すると、複製された環境マッピングを回避するように、ダウンロードされた共有再構築物およびローカル再構築物を記憶する、ファイルシステムを含んでもよい。いったんクラウドからの環境表現が、デバイスによって蓄積された履歴深度および姿勢情報を反映させるように更新されると、その蓄積された情報は、デバイスから削除されてもよい。代替として、または加えて、いったんデバイスが、ダウンロードされた表現の一部によって表される環境の領域の変化を検出すると、ダウンロードされた表現のその部分は、更新されてもよい。
いくつかの実施形態では、デバイスは、3D再構築物がラウド上に構築される方法に基づいて、低算出オーバーヘッドを有してもよい。3D表現は、個々のデバイスが、最初に、クラウドから、デバイスに可視の体積をダウンロードし得るように、より小さい体積に分割されてもよく、これは、デバイス上でのリアルタイム実施を提供し、共有再構築物をフェッチするとき、必要とされるネットワーク帯域幅を最小限にし、それを非常に大規模環境に関してスケーラブルにする。代替として、または加えて、いくつかの実施形態では、3D再構築物内の表面情報は、フォーマット化され、持続的である可能性が高い、表面に関する情報の別個の処理を促進してもよい。結果として、算出およびネットワーク帯域幅等の低コンピュータリソースが、持続表面のために使用されてもよい。
これらの技法は、共有再構築物および/またはローカル再構築物に適用されてもよい。例えば、平面表面幾何学形状等の識別可能オブジェクトは、仮想コンテンツが、持続的一意の識別子を用いて、オブジェクトと関連付けられ、それによって存続され得るように、複数のセッションを横断して、持続的一意の識別子を割り当てられてもよい。
いくつかの実施形態では、各デバイスは、リアルタイムでデバイスによって捕捉された姿勢追跡および深度画像情報を使用して、その独自のローカル再構築物を構築してもよい。デバイスの近傍における表面の深度情報または他の表現は、姿勢付きであってもよい。最初に、その情報は、デバイスの追跡マップのローカル座標フレームに対する姿勢付きであってもよい。しかしながら、これらのローカル再構築物は、上記に説明されるように、規準マップの持続座標フレーム等、位置特定プロセスを通して本システム内でデバイスによって共有される持続姿勢に対する姿勢付きであってもよい。デバイス座標フレームに対する姿勢付き深度情報を共有座標フレームに対する姿勢付き深度情報に変換するための処理は、デバイス上またはクラウド上で実施されてもよいことを理解されたい。上記に説明されるように、好適な変換を算出するために十分な情報(ローカル座標フレームに対する姿勢付き特徴のセットまたはデバイスの追跡マップ等)は、規準疎マップを使用、構築、または維持することに関連して、デバイスからクラウドに送信される。いくつかの実施形態では、変換は、デバイスに関する深度情報に適用されてもよい。いくつかの実施形態では、変換は、代替として、または加えて、クラウド内で適用されてもよい。深度情報も同様に、変換がクラウド内のコンピューティングリソースによって適用されるように、そのような情報に関連して、クラウドに送信されてもよい。代替として、または加えて、また、上記に説明されるように、変換は、各デバイスに送信され、デバイス上で適用されてもよい。
デバイスが、ネットワークに接続されると、共有疎マップの座標フレームである、またはそれに関連付けられ得る、各深度画像は、クラウドにアップロードされてもよい。クラウド処理は、次いで、物理的世界の同一部分を表す、深度画像を識別することができる。高品質3D再構築物が、それらのアップロードされた深度画像を使用して、クラウド上で構築されることができる。
具体的実施例として、稠密マップは、上記に説明されるような疎マップマージまたはスティッチング機能に関連して構築されてもよい。各デバイス上で捕捉された深度画像は、個別のデバイスの追跡マップ内の持続座標フレームに対する姿勢付きであってもよい。追跡マップが、マージまたはスティッチングされた疎マップの中にマージまたはスティッチングするために、クラウドに送信されると、深度画像も同様に、送信されてもよい。疎マップマージまたはスティッチング処理は、デバイスが、3D環境の重複部分を表す持続座標フレームを伴う、追跡マップを有することを識別し得る。複数のデバイスが、重複持続座標フレームを有するとき、持続座標フレームは、組み合わせられ、依然として、その後、持続したままであってもよい。3D再構築物の一部は、組み合わせられた持続座標フレームのいずれかに関連付けられる、複数のデバイスからの深度情報から構築されてもよい。
3D再構築物内の3D表現は、より小さい体積に分割されることができ、これらのより小さい体積は、デバイスによってフェッチされてもよい。共有および/またはローカル再構築物は、デバイスが、識別された空間に進入すると、対応するデータが、デバイスのファイルシステムから、XRアプリケーションによってアクセスされ得る、デバイスのメモリにロードされ得るように、周期的に、デバイスのファイルシステムに記憶されることができる。
いくつかの実施形態では、デバイスが、探索済み空間に進入し、そのファイルシステムが、その空間のローカル再構築物を有するとき、デバイスは、その空間の3D表現をファイルシステムからフェッチすることができる。加えて、または代替として、その空間が、クラウド上に再構築されているとき、デバイスは、再び、最初から、その空間の3D再構築物を構築せずに、その空間の3D表現をクラウド上の共有再構築物から、またはその空間の3D表現が、以前にフェッチおよび記憶されている場合、そのファイルシステムから、フェッチするように指示することができる。いくつかの実施形態では、デバイスは、空間の3D表現がクラウド上に構築された後に蓄積された姿勢および深度データのサブセットを使用して、空間のダウンロードされた3D表現を調節してもよい。
図64は、いくつかの実施形態による、大規模3D環境再構築物を提供する、XRシステム6400のブロック図である。XRシステム6400は、クラウド6402と、ネットワークを通してクラウド6402と通信し得る、1つまたはそれを上回るデバイス6404とを含んでもよい。本実施例では、単一デバイスが、便宜上、図示されるが、同様のコンポーネント(例えば、図64に示されるコンポーネント)を伴う、複数のデバイスが、クラウドと相互作用してもよい。
デバイス6404は、デバイスによって訪問された環境のローカル3D再構築物を生成するように構成される、デバイス上3D再構築コンポーネント6460(例えば、図3における516)と、ダウンロードされた共有3D再構築物とローカル(例えば、デバイス上)3D再構築物をマージするまたはスティッチングように構成される、デバイス上稠密マップハンドリングコンポーネント6900とを含んでもよい。デバイス6404は、例えば、姿勢付きセンサデータ6422と、疎追跡マップ6412と、ローカル稠密マップ6432とを含む、環境情報を記憶し得る、キャッシュ構造6454を含んでもよい(図73参照)。いくつかの実施形態では、姿勢付きセンサデータ6422は、深度センサから入手されてもよいが、他の実施形態では、そこから表面が識別され得る、データを出力する、視覚センサまたは他のセンサから入手されてもよい。メタデータは、本環境情報と関連付けて記憶されてもよい、または環境情報の一部を形成してもよい。例えば、疎追跡マップ6412は、上記に説明されるように、追跡マップ内の持続姿勢および持続姿勢毎の一意の識別子および/または他の情報を列挙する、持続姿勢テーブル6413を含んでもよい。別の実施例として、姿勢付きセンサデータ6422は、デバイスの追跡マップの持続姿勢に対する姿勢およびその持続姿勢の一意のidを定義する、データと関連付けられている、センサデータを含んでもよい。
クラウド6402は、上記に説明されるように、疎マップをマージするまたはスティッチングするように構成される、クラウド疎マップマージまたはスティッチングコンポーネント6414を含んでもよい。マージまたはスティッチングされる、疎マップは、デバイス6404から受信された疎追跡マップを含んでもよく、これは、相互および/またはクラウド上の共有疎マップとマージまたはスティッチングされてもよい。クラウド6402はまた、稠密マップをマージするまたはスティッチングように構成される、クラウド稠密マップマージまたはスティッチングコンポーネント6440を含んでもよい。デバイス6404から送信される、ローカル稠密マップの部分は、相互および/またはすでにクラウド上に記憶されている共有稠密マップとマージまたはスティッチングされてもよい。いくつかの実施形態では、情報は、深度画像および検出された平面を、画像および平面に関する姿勢等のメタデータとともに、含む、またはそれに限定されてもよい。さらに、送信される情報は、デバイス上に維持される本タイプの情報のサブセットであってもよい。例えば、デバイスの追跡マップ内の1つまたはそれを上回る持続姿勢と関連付けられる、情報のみが、一度に送信されてもよい。
クラウド稠密マップマージまたはスティッチングコンポーネント6440は、コンポーネント6450をクラウド疎マップマージまたはスティッチングコンポーネント6414と共有してもよい。クラウド6402は、共有疎マップ6416と、共有稠密マップ6442とを記憶し得る、パス可能世界コンポーネント6452を含んでもよい。
いくつかの実施形態では、各デバイス6404は、デバイスが物理的環境を動き回るにつれて、疎追跡マップ6412を構築してもよい。デバイスは、1つまたはそれを上回る疎追跡マップを維持してもよい。各疎追跡マップ6412は、記述子(例えば、PP ID)によって識別可能な持続姿勢と、持続姿勢とその記述子との間の対応を示す、持続姿勢テーブルとを含んでもよい。各姿勢付きセンサデータ6422は、画像データと、深度画像と関連付けられる、疎追跡マップの持続姿勢の記述子と、深度画像が捕捉されたときの持続姿勢とデバイスの頭部姿勢との間の変換とを含んでもよい。
ローカル疎追跡マップ6412は、ネットワークを通して、デバイス6404によって、デバイスを大規模環境内で位置特定する、および大規模環境のための共有疎マップを構築する等の機能のために、クラウド6402に送信されてもよい。クラウド疎マップマージまたはスティッチングコンポーネント6414は、1つまたはそれを上回るデバイス6404によってクラウドに送信される、1つまたはそれを上回るローカル疎追跡マップ6412に基づいて、共有疎マップ6416を生成してもよい。いくつかの実施形態では、クラウド疎マップマージまたはスティッチングコンポーネント6414は、図37の方法3700および/または図63のプロセス6300の一部を実施するように構成される、コンポーネントを含んでもよい。
いくつかの実施形態では、各共有疎マップ6416は、メタデータ6418と、持続姿勢テーブル6420とを含んでもよい。メタデータ6418は、共有疎マップが、マップ識別子に基づいて、本システム内の任意のデバイスによってアクセスされ得るように、共有疎マップに関するマップ識別子(例えば、マップID)を含んでもよい。いくつかの実施形態では、マップ識別子は、3D環境の対応する一意のエリアを示す、一意の記述子(例えば、128ビット識別子)と、マップが構築されたときおよび/または最後に更新されたときを示す、バージョン記述子とを含んでもよい。持続姿勢テーブル6420は、疎追跡マップからの持続姿勢に基づいて作成され、持続姿勢記述子によって識別可能である、マージまたはスティッチングされた持続姿勢を含んでもよい。持続姿勢テーブル6420はまた、マージまたはスティッチングされた持続姿勢とその記述子との間の対応を示す、持続姿勢テーブルを含んでもよい。
いくつかの実施形態では、各デバイス6404は、物理的環境の一部についての表面情報を示す、ローカル稠密マップ6432を構築してもよい。デバイスは、1つまたはそれを上回るローカル稠密マップを維持してもよい。デバイス上3D再構築コンポーネント6460は、少なくとも部分的に、姿勢付きセンサデータ6422(例えば、図3の深度マップ512)と、疎追跡マップ6412(例えば、図7の追跡マップ700)とに基づいて、ローカル稠密マップ6432を生成してもよい。例えば、追跡マップの同一持続座標フレームと関連付けられる、深度情報が、ともに処理され、その持続座標フレームによって表される場所の近傍における3D環境の領域の3D再構築物を形成してもよい。ローカル稠密マップ6432は、表面情報を含んでもよく、これは、1つまたはそれを上回るフォーマットで表されてもよい。図示される実施例では、表面情報は、立体データ6436(例えば、立体情報662a)、メッシュ6456(例えば、メッシュ662c)、およびオブジェクト情報6438(例えば、平面662d)として表される。稠密マップはまた、メタデータ6434(例えば、立体メタデータ662b)を含んでもよい。
ローカル稠密マップ6432の一部は、ネットワークを通して、デバイス6404によって、大規模環境に関する共有稠密マップを構築する等の機能のために、クラウド6402に送信されてもよい。クラウド稠密マップマージまたはスティッチングコンポーネント6440は、1つまたはそれを上回るデバイス6404によってクラウドに送信される情報に基づいて、共有稠密マップ6442を生成してもよい。いくつかの実施形態では、共有稠密マップ6442に関する情報は、姿勢付きセンサデータ6422と、ローカル疎マップ6412とに基づいて生成されてもよい。代替として、または加えて、共有稠密マップ6442は、ローカル稠密マップ6432の一部に基づいて生成されてもよい。コンポーネント6440は、稠密マップが、XRシステム内で生成および共有されることを可能にし得る。コンポーネント6440は、冗長3D再構築物が構築されないように、将来的アクセスのために、3D再構築物をクラウド上に存続させてもよい。共有稠密マップ6442が、姿勢付きセンサデータ6422と、ローカル疎マップ6412とに基づいて生成されるとき等のいくつかのシナリオでは、コンポーネント6440は、デバイスを算出上集約的である3D再構築から解放し得る。
いくつかの実施形態では、各共有稠密マップ6442は、メタデータ6444と、立体データ6446と、メッシュ6458と、オブジェクト情報6448とを含んでもよい。メタデータ6444は、共有稠密マップが、マップ識別子に基づいて、本システム内の任意のデバイスによってアクセスされ得るように、共有稠密マップに関するマップ識別子(例えば、マップID)を含んでもよい。いくつかの実施形態では、マップ識別子は、物理的環境の対応する一意のエリアを示す、一意の記述子(例えば、128ビット識別子)を含んでもよい。物理的環境の同一の一意のエリアに関して、対応する疎マップおよび対応する稠密マップは、同一の一意の記述子を有してもよい。マップ識別子はまた、マップが構築されたときおよび/または最後に更新されたときを示す、バージョン記述子を含んでもよい。
共有稠密マップ6442は、XRシステム内の1つまたはそれを上回るデバイス6404によってアクセスされてもよい。デバイス6404は、その場所に対応する、1つまたはそれを上回る共有稠密マップ6442をダウンロードしてもよい。稠密マップがより小さい体積にセグメント化される、実施形態では、デバイスは、それらのより小さい体積のうちの1つまたは少数のものに関する情報をダウンロードしてもよい。デバイス上稠密マップハンドリングコンポーネント6900は、ダウンロードされた共有稠密マップ6442を受信してもよい。デバイス上稠密マップハンドリングコンポーネント6900は、少なくとも部分的に、ダウンロードされた共有稠密マップの一部がクラウド上に構築されているとき、および/またはその部分が構築された後、捕捉され得る、姿勢付きセンサデータ6422と、疎追跡マップ6412とに基づいて、ダウンロードされた共有稠密マップ6442の一部を更新してもよい。デバイス上稠密マップハンドリングコンポーネント6900は、更新された稠密マップを新しいローカル稠密マップ6432として記憶してもよい。コンポーネント6900は、デバイス6404が、リアルタイム変化に対応する、3D再構築物を有することを可能にする(図69参照)。
図65Aは、いくつかの実施形態による、クラウド疎マップマージまたはスティッチングコンポーネント6414の少なくとも一部6500のブロック図である。クラウド疎マップマージャまたはスティッチングコンポーネント6414の少なくとも一部6500は、複数の疎マップ、例えば、図示されるように、疎追跡マップ6502、6504、および6506からの持続姿勢を組み合わせるように構成される、持続姿勢マージまたはスティッチングコンポーネント6508を含んでもよい。持続姿勢マージャまたはスティッチングコンポーネント6508は、本実施例では、疎追跡マップ6502、6504、および6506である、マージまたはスティッチングされるべき疎マップに基づいて、マージまたはスティッチングされた疎マップ6510を提供してもよい。いくつかの実施形態では、以前に記憶されたマップ等の他のタイプの疎マップもまた、マージまたはスティッチング処理に入力されてもよい。各疎追跡マップは、追跡マップを構築するデバイスにローカルである、デバイス座標フレームを含んでもよい。マージまたはスティッチングされた疎マップは、クラウド上に記憶されるマップによって共有される、規準座標フレームを含んでもよい。マージまたはスティッチングされた疎マップ6510は、マージまたはスティッチングされた疎マップの座標フレーム内のマージまたはスティッチングされた持続姿勢テーブルを含んでもよい。
クラウド疎マップマージまたはスティッチングコンポーネント6414の部分6500は、1つまたはそれを上回る疎追跡マップに関する位置特定結果6514をマージまたはスティッチングされた疎マップおよび/またはすでにクラウド上に記憶されている共有疎マップに提供するように構成される、疎マップ位置特定コンポーネント6512を含んでもよい。位置特定結果6514は、個々の疎マップによって使用される座標フレームと規準座標フレームとの間の変換を含んでもよい。いくつかの実施形態では、疎マップ位置特定コンポーネント6520はまた、疎追跡マップおよびマージまたはスティッチングされた疎マップに関するマップ識別子を提供してもよい。
持続姿勢マージャまたはスティッチングコンポーネント6508および疎マップ位置特定コンポーネント6512が、図示されるが、クラウド疎マップマージまたはスティッチングコンポーネント6414は、代替および/または付加的コンポーネントを含んでもよいことを理解されたい。例えば、デバイスのローカル座標フレーム内で収集された深度情報を規準座標フレームに関連させるために使用され得る、変換は、他の方法で算出されてもよい。例えば、上記に説明されるように、変換は、追跡マップがマージまたはスティッチングするためにクラウドに送信されるより頻繁に、デバイスのために実施され得る、位置特定プロセスの結果として提供される。記憶されたマップに対する位置特定の結果として生成された変換は、デバイス上で収集された稠密情報を、記憶されたマップのものに関連し得る、基準フレームもまた有する、共有稠密マップに関連させるために使用されてもよい。別の実施例として、図65Aに図示される処理は、並行して実施される必要はないことを理解されたい。例えば、マージまたはスティッチングされた疎マップ内の持続姿勢の中にマージまたはスティッチングされる、ローカル追跡マップの持続姿勢は、個々の追跡マップがマージまたはスティッチングされた疎マップの中にマージまたはスティッチングされるにつれて、経時的に識別されてもよい。
図65Bは、いくつかの実施形態による、持続姿勢マージャまたはスティッチングコンポーネント6508によって提供される、マージまたはスティッチングされた疎マップ6510を図示する、概略図である。図65Cは、いくつかの実施形態による、マージまたはスティッチングされた疎マップ6510の別の概略図であって、疎マップ位置特定コンポーネント6414によって提供される、位置特定結果6514を図示する。
図65Aに図示される実施例では、持続姿勢マージャまたはスティッチングコンポーネント6508は、物理的環境6530の3つの疎追跡マップ6502、6504、および6506を受信してもよい。3つの疎追跡マップ6502、6504、および6506は、3つの異なるセッションにわたって、1つのデバイスによって、または個々のデバイスセッションにわたって、3つのデバイスによって、またはデバイスの数およびセッションの数の任意の好適な組み合わせによって、捕捉されてもよい。各疎追跡マップは、それぞれ、それと関連付けられる、1つまたはそれを上回るキーリグ6524を有し得る、持続姿勢6522を含んでもよい。各疎追跡マップはまた、キーリグ6524等の画像から抽出された特徴点6526を含んでもよい。特徴は、上記に説明されるように、記述子として表されてもよく、姿勢付きであってもよい。
各持続姿勢は、デバイスが、現在の画像情報と比較し、デバイスが持続姿勢によって表される場所の近傍にあるかどうかを決定し得る、特徴等の記憶された情報を含む。ともに近接する場所を表す、複数の持続姿勢は、デバイスが持続姿勢のいずれかに対するその場所を決定し得る場合、冗長であり得る。持続姿勢マージャまたはスティッチングコンポーネント6508は、例えば、冗長持続姿勢を除去することによって、各疎追跡マップからの持続姿勢を組み合わせてもよい。例えば、疎追跡マップ6502は、持続姿勢6522Cを含んでもよく、これはまた、疎追跡マップ6506内に含まれてもよい。持続姿勢マージャまたはスティッチングコンポーネント6508は、マージまたはスティッチングされた疎マップ6510に関する結果として生じる持続姿勢テーブルが、6522Cに対応する、1つのみのマージまたはスティッチングされた持続姿勢を含み得るように、持続姿勢6522Cのうちの1つを除去してもよい。クラウド疎マップマージまたはスティッチングコンポーネント6414は、3つの変換、すなわち、マージまたはスティッチングされた疎マップ6510への疎追跡マップ6502のためのT1と、マージまたはスティッチングされた疎マップ6510への疎追跡マップ6504のためのT2と、マージまたはスティッチングされた疎マップ6510への疎追跡マップ6506のためのT3とを提供してもよい。
図66および図67は、クラウド稠密マップマージまたはスティッチングコンポーネント6440の実施例6600および6700のブロック図である。クラウド稠密マップマージまたはスティッチングコンポーネント6440は、表面情報の集合を受信および/または生成してもよい。表面情報の集合は、深度画像および深度画像の姿勢等、姿勢付きセンサ捕捉データを含んでもよい。姿勢は、疎追跡マップの持続姿勢に対する姿勢と、いくつかの実施形態では、対応する疎追跡マップの識別子を含み得る、持続姿勢に関する識別子の形態で表されてもよい。しかしながら、本明細書に説明されるようなシステムXRは、ローカル座標フレームと共有座標フレームとの間の変換を算出および適用し得るため、深度情報および他の表面情報も、適切な変換を適用することによって、他の座標フレームに対する姿勢付きであってもよい。
クラウド疎マップマージまたはスティッチングコンポーネント6414は、疎追跡マップと重複する、1つまたはそれを上回る共有疎マップを識別し、疎追跡マップと1つまたはそれを上回る共有疎マップをマージまたはスティッチングしてもよい。本新しく生成されたマージまたはスティッチングされた共有疎マップに関して、クラウド稠密マップマージまたはスティッチングコンポーネント6440は、マージまたはスティッチングされた共有疎マップのマージまたはスティッチングされた持続姿勢と、それらのマージまたはスティッチングされた持続姿勢と関連付けられる深度画像とに基づいて、対応する共有稠密マップを構築してもよい。クラウド稠密マップマージまたはスティッチングコンポーネント6440は、各深度画像が規準座標フレーム内にカメラ錐台を有し得るように、デバイスにローカルのデバイス座標フレームと規準座標フレームとの間の算出された変換に基づいて、深度画像の姿勢をマージまたはスティッチングされた持続姿勢に変換してもよい。その結果、クラウド稠密マップマージまたはスティッチングコンポーネント6440は、3D再構築物を規準座標フレーム内で構築するために、深度画像およびその姿勢を使用してもよい。
マージまたはスティッチングされた稠密マップは、複数のデバイスによって収集された表面情報から構築されてもよい。その表面情報は、複数の方法のいずれかにおいてフォーマット化されてもよい。表面情報は、姿勢付き深度画像としてフォーマット化されてもよい。深度画像は、立体データを提供してもよく、これは、体積を定義する複数のボクセル毎に、表面がそのボクセルによって表される場所内で検出されたかどうかを示すようにフォーマット化されてもよい。代替として、または加えて、表面情報は、平面またはメッシュ等のオブジェクトとして表されてもよい。いくつかの実施形態では、稠密マップマージまたはスティッチングコンポーネントは、異なるフォーマットで受信された表面情報を処理してもよい。
図66に示される実施例では、表面情報は、姿勢付きセンサデータ6604として提供され、これは、疎追跡マップ6602に対する姿勢付きである。疎追跡マップ6602の全部または一部はまた、表面情報の仕様の一部として提供されてもよい。図示されるシナリオでは、クラウド稠密マップマージまたはスティッチングコンポーネント6600は、疎マップ位置特定コンポーネント6512と、3D再構築コンポーネント6606とを含んでもよい。疎マップ位置特定6512は、受信された疎追跡マップ6602に関する位置特定結果6614を1つまたはそれを上回る共有疎マップ6416に提供してもよい。位置特定結果6614および疎追跡マップ6602に対する姿勢付き深度画像6606は、深度画像の姿勢が共有疎マップ6416のものに関連することを可能にする。深度画像を共有疎マップの座標フレームに関連するように姿勢付けるための変換は、深度画像を3D再構築コンポーネント6606に通過させることに先立って、3D再構築コンポーネント6606によって、または別のコンポーネント(図示せず)によって適用されてもよい。変換が適用される場所にかかわらず、3D再構築コンポーネント6606は、共有疎マップの座標フレーム内に1つまたはそれを上回る共有稠密マップ6642を生成してもよい。
図67に示される実施例では、表面情報は、関連付けられる追跡マップを伴う、姿勢付きセンサデータ6702の形態で提供され、これは、追跡マップに関する持続姿勢テーブルとして表されてもよい。いくつかの実施形態では、表面情報は、代替として、または加えて、すでにデバイス上でローカルで再構築されている、深度画像および/または稠密情報等の他の形態で提供されてもよい。本実施例では、ローカルで生成された稠密情報は、現在の稠密マップ6708として示され、共有稠密マップ6742と同一フォーマットを有してもよい。
1つまたはそれを上回るデバイスからの表面情報をマージするまたはスティッチングするために実施される具体的処理は、表面情報の具体的フォーマットに依存し得る。本実施例では、クラウド稠密マップマージまたはスティッチングコンポーネント6700は、疎追跡マップ持続姿勢選択コンポーネント6704と、疎マップ選択コンポーネント6710と、疎マップ位置特定コンポーネント6512と、3D再構築コンポーネント6606とを含んでもよい。
疎追跡マップ持続姿勢選択コンポーネント6704は、受信された姿勢付き深度センサデータ6702のサブセット6706を選択してもよい。選択は、受信された疎追跡マップ6502と、マージまたはスティッチングされた疎マップ6510のマージまたはスティッチングされた持続姿勢テーブル6510Tとに基づいてもよい。いくつかの実施形態では、姿勢付きセンサデータ6702のサブセットは、サブセットの姿勢付きセンサデータがマージまたはスティッチングされた疎マップPPテーブル6510T内の持続姿勢(PP)に対して姿勢付けされるように選択される。これらの持続姿勢は、例えば、マージまたはスティッチングされた疎マップ6510のマージまたはスティッチングされた持続姿勢にレベル上げされている、疎追跡マップ6502の持続姿勢であってもよい。マージまたはスティッチングされた疎マップPPテーブル6510T内のPPと関連付けられる、姿勢付き深度センサデータ6702は、サブセット6706内への含有のために選択されてもよい。データをサブセット6706内に供給しない、姿勢付きセンサデータは、それらの姿勢付きセンサデータの姿勢が規準座標フレーム内で変換され得ないように、削除されてもよい。
複数のマージまたはスティッチングされた疎マップが維持される、実施形態では、疎マップ選択コンポーネント6710は、位置特定のためにデバイスによって供給される情報に基づいて、疎追跡マップを選択してもよい。疎マップ位置特定コンポーネント6512は、選択された疎追跡マップに関する位置特定結果6714をマージまたはスティッチングされた疎マップに提供してもよい。マージされた疎マップ6510はまた、3D再構築コンポーネント6606への入力として提供され、それに関してマージまたはスティッチングされた疎マップの座標フレームにまたはそこからの変換が利用可能である、マージまたはスティッチングされた疎マップまたは任意の他の基準フレームに対する姿勢付きである、表面情報に基づいて、3D再構築を促進してもよい。3D再構築6606は、姿勢付き深度センサデータのサブセット6706、位置特定結果6714、および/または他の入力に基づいて、1つまたはそれを上回る稠密マップ6742を算出してもよい。
3D再構築物は、代替として、または加えて、例えば、稠密マップマージまたはスティッチングのための入力を供給する、1つまたはそれを上回るデバイスの周囲の3D環境についての他のデータに基づいてもよい。例えば、デバイスからの現在の稠密マップ6708は、3D再構築コンポーネント6606に供給されてもよい。いくつかの実施形態では、デバイスは、オブジェクト情報を含み得る、その現在の稠密マップ6708の全部または一部を供給してもよい。稠密マップ6708がデバイス上のローカル座標フレームに対する基準フレームを有する、実施形態では、デバイスはまた、そのローカル座標フレームが、XRシステムと相互作用するデバイスによって共有される、マージまたはスティッチングされた疎マップ6510のために使用される、座標フレームに関連し得るように、情報を提供してもよい。
図68は、いくつかの実施形態による、クラウド稠密マップマージまたはスティッチングコンポーネント6440によって提供される、マージまたはスティッチングされた稠密マップ6800を図示する、簡略化された概略図である。マージまたはスティッチングされた稠密マップ6800は、ボクセル6802を備える、ボクセルグリッドに図示される。ボクセルグリッドは、近傍の表面までの符号付き距離値を含有する、塗り潰されたボクセルと、表面がその近傍にないため、値を含有しない、空ボクセルとを含んでもよい。例証では、ボクセルグリッドは、例証の便宜上、2次元で示される。ボクセルグリッドは、第3の次元に延在してもよい。
簡略化された実施例では、マージまたはスティッチングされた稠密マップ6800は、1つの共有稠密マップと、3つのアップロードされた稠密マップとに基づいてもよい。3つのアップロードされた稠密マップは、3つの異なるセッションにわたって、1つまたはそれを上回るデバイスによって構築されてもよい。3つのアップロードされた稠密マップを受信する前に、共有稠密マップは、物理的環境内の表面6804Aを表す、塗り潰されたボクセル領域6806Aを含んでもよい。塗り潰されたボクセル領域6806Aは、以前に受信された表面情報に基づいて再構築され、再構築後、クラウド上に記憶されてもよい。
クラウドは、本以前に再構築された共有マップと3つの新しく受信された稠密マップをマージするまたはスティッチングしてもよい。クラウドは、持続姿勢pp1を含む、第1の稠密マップと、持続姿勢pp2およびpp4を含む、第2の稠密マップと、持続姿勢pp3を含む、第3の稠密マップとを受信してもよい。持続姿勢に対する姿勢付きである、情報は、対応するカメラ錐台6808内に含有されるものとして示される。持続姿勢に対する姿勢付きである、情報は、ここでは、可視性範囲6810として示される、持続姿勢によって表される、場所に対する距離にわたって、延在してもよい。3D再構築コンポーネント6606は、物理的環境内の表面6804Bを表す、ボクセル領域6806Bと、物理的環境内の表面6804Cを表す、ボクセル領域6806Cとを再構築してもよい。
マージまたはスティッチングされた稠密マップ6800は、異なる時間において捕捉された表面情報に基づいて、1つまたはそれを上回るデバイスによって構築されることを理解されたい。図示される実施例では、ボクセル領域6806Bは、pp1と関連付けられる、深度画像と、pp2と関連付けられる、深度画像とに基づいて、構築される。本実施例では、pp1およびpp2は、それらの持続姿勢と関連付けられる深度情報が、同一オブジェクトを表し得、したがって、ともに融合され得るほど、ともに十分に近接していると識別され得る。例えば、pp1およびpp2は、マージまたはスティッチングされた疎追跡マップ内の持続姿勢の中にマージまたはスティッチングされる、持続姿勢であり得る。pp1およびpp2のそれぞれに対する姿勢付きである、深度情報は、pp1およびpp2に対する姿勢付きとして受信された情報が全てpp5に対する姿勢付きであるように、pp5の座標フレームに変換されてもよい。3D再構築コンポーネント6606は、表面情報を生成するために使用され得るように、姿勢付きセンサデータ、個々の深度画像、または深度情報を他のフォーマットで融合させてもよい。いくつかの実施形態では、マージまたはスティッチングされた深度情報は、次いで、立体データを算出するために使用されてもよい。このように、デバイスのいずれかからの深度情報のみに基づいて表され得るものより大きい物理的世界内の体積が、マージまたはスティッチングされた稠密マップ内に表され得る。例えば、平面または他のオブジェクトは、算出された立体データに基づいて、識別され得る。
いくつかの実施形態では、デバイス上でローカルで生成されたオブジェクトは、マージまたはスティッチングされた立体データを用いて生成されたオブジェクトにマッチングされてもよい。このように、同一オブジェクトは、オブジェクトを識別するために、処理が実施される場所にかかわらず、同一オブジェクト識別子を与えられてもよい。
他の実施形態では、深度画像以外の表面情報が、代替として、または加えて、共有稠密マップの中にマージまたはスティッチングされてもよい。表面は、平面または他のオブジェクトおよび/またはメッシュ等の他の方法で表されてもよい。異なるマージまたはスティッチング技法が、異なるタイプの表面情報のために採用されてもよい。平面のマージは、下記に説明されるように、処理が、場所および面法線の類似性等のため、同一表面を表す可能性が高いことを示す、平面をマージするまたはスティッチングする、またはマージまたはスティッチングされた稠密マップに、マージまたはスティッチングされている個々のマップから、同一表面の一部として示されない、平面の全てを追加するように実施されてもよい。同様に、処理が、2つまたはそれを上回るメッシュの一部が表面の同一部分を表す可能性が高いことを示す、メッシュに関して、それらのメッシュは、組み合わせられたメッシュの中にマージまたはスティッチングされてもよい。逆に言えば、表面が他のメッシュと重複しない、メッシュは、マージまたはスティッチングされたマップに不変であるように追加され得る。
いくつかの実施形態では、表面情報のマージまたはスティッチングは、その中でそれが表されるフォーマットにかかわらず、複製表面情報を除去するステップを伴ってもよい。例えば、あるデバイスからの稠密マップが、表面を示す、別のデバイスからの立体データと同一場所における平面を示す場合、その表面は、処理される前に、立体データから除去される、または別様に、マージまたはスティッチングされた稠密マップに追加されなくてもよい。同様に、1つの稠密マップ内のメッシュが、ある平面または立体データと同一表面に対応する可能性が高いと決定される場合、その平面または立体データは、除去される、または別様に、マージまたはスティッチングされた稠密マップに追加されなくてもよい。表面情報が異なるフォーマットで表され得る、いくつかの実施形態では、表面情報は、マージまたはスティッチング動作の間、階層方式において処理されてもよく、より低いレベルの階層における表面情報は、マージまたはスティッチングされたマップ内に含まれず、同一表面は、より高いレベルの階層に表される。例えば、最初に、メッシュが、次いで、平面、次いで、立体データが、処理されてもよい。
図68から分かるように、ボクセルは、マージまたはスティッチングされた共有疎マップ内の場所に関連し得る、持続場所に対して、決定可能場所を有する。故に、疎共有マップに対して位置特定されている、デバイスの近くの物理的世界の一部を表すマージまたはスティッチングされた稠密マップの一部が、識別されてもよい。クラウド上の共有稠密マップは、疎マップ位置特定コンポーネントによって提供される、その位置特定結果に従って、デバイスによってアクセスされてもよい。デバイスは、例えば、マージまたはスティッチングされた深度情報から算出された立体データをダウンロードし、3D環境内の表面の表現を算出するために、そのマージまたはスティッチングされた立体データを使用してもよい。デバイスは、マージまたはスティッチングされた立体データとそのセンサを用いて捕捉された立体データをマージするまたはスティッチングしてもよい。これは、例えば、図64の稠密マップハンドリングコンポーネント6900内で実施されてもよい。
稠密マップが平面または他のオブジェクトを含む、実施形態では、デバイスは、立体データをマージまたはスティッチングする代わりに、またはそれに加え、ダウンロードされた共有稠密マップのオブジェクトとローカル稠密マップ内のオブジェクトをマージするまたはスティッチングしてもよい。図69に示されるデバイス上稠密マップハンドリングコンポーネント6900は、マージまたはスティッチングされた稠密マップのメタデータと、疎追跡マップからマージまたはスティッチングされた疎マップへの少なくとも1つの変換を示す、疎マップ位置特定結果とを受信してもよい。デバイス上の疎マップ管理コンポーネントが、デバイスが、マージまたはスティッチングされた疎マップに移動し得ることを決定すると、対応するマージまたはスティッチングされた稠密マップが、稠密マップ位置特定のための候補として示され得る。少なくとも部分的に、受信されたメタデータに基づいて、デバイス上の稠密マップ管理コンポーネントは、デバイスがマージまたはスティッチングされた稠密マップに移動すべきであるかどうかを決定してもよい。稠密マップ管理コンポーネントが、マージまたはスティッチングされた稠密マップに移動しないことを決定すると、デバイスは、稠密マップデータをフェッチしないであろう。
稠密マップ管理コンポーネントが、マージまたはスティッチングされた稠密マップに移動すると決定すると、デバイスは、稠密マップをクラウドのデータからフェッチするステップに進み得る。マージまたはスティッチングされた稠密マップは、マージまたはスティッチングされた稠密マップが潜在的に非常に大きくあり得るため、より小さい体積(例えば、ブロック)に分割されてもよい。マージまたはスティッチングされた稠密マップをフェッチおよびロードするとき、デバイスは、最初に、デバイスに近いそれらのデータをフェッチおよびロードしてもよい(例えば、100メートル離れたデータは、5メートル離れたデータより低い優先順位を有する)。デバイスを装着しているユーザが、動き回るにつれて、デバイスは、デバイスによって可視のエリアに対応する、データを持続的にフェッチおよびロードしてもよい。いくつかの実施形態では、デバイスは、データが、デバイスがその場所に達するとき、ロードする準備ができた状態であり得、クラウドからのデータをフェッチすることによって生じる待ち時間が、低減され得るように、例えば、デバイスの予測される運動に基づいて、あるデータを事前にフェッチしてもよい。
デバイスの稠密マップマージまたはスティッチングコンポーネントは、新たなローカル姿勢付きセンサデータを用いてロードされている、マージまたはスティッチングされた稠密マップの一部を更新してもよい。デバイスが、新しいマージまたはスティッチングされた稠密マップをクラウドから受信すると、デバイスは、算出がクラウド上で起こるのと並行して、デバイスがセンサデータを捕捉するため、マージまたはスティッチングされた稠密マップの一部ではない、新たなローカル姿勢付きセンサデータを有し得る。マージまたはスティッチングされた稠密マップの一部を更新することは、デバイスが本新たなデータを喪失しないように防止する。
デバイスの稠密マップマージまたはスティッチングコンポーネントはまた、新たなローカル姿勢付きセンサデータに基づいて、疎追跡マップ内の持続姿勢を持続的に更新および補正してもよい。更新された持続姿勢に結び付けられる姿勢付きセンサデータを使用して生成された3D再構築物も同様に、持続姿勢への任意の更新に基づいて、更新されてもよい。
図69は、いくつかの実施形態による、デバイス上稠密マップハンドリングコンポーネント6900の実施例のブロック図である。デバイス上稠密マップハンドリングコンポーネント6900は、稠密マップ位置特定コンポーネント6904と、稠密マップ再位置特定コンポーネント6916と、稠密マップ管理コンポーネント6906と、稠密マップ事前フェッチコンポーネント6910と、稠密マップマージまたはスティッチングコンポーネント6912とを含んでもよい。いくつかの実施形態では、デバイス上稠密マップハンドリングコンポーネント6900は、疎マップ位置特定結果6714に基づいて、稠密マップ位置特定コンポーネント6904または稠密マップ再位置特定コンポーネント6916を有効にするかどうかを決定してもよい。
稠密マップ位置特定コンポーネント6904は、疎マップ位置特定結果6714が、デバイスが新しい共有疎マップに対して位置特定されることを示すときに、有効にされてもよい。稠密マップ位置特定コンポーネント6904は、それに対してデバイスが位置特定されることになる、共有稠密マップを選択してもよい。共有マップの選択における基準は、選択された稠密マップおよびそれに対してデバイスが位置特定される共有疎マップの被覆率における重複であってもよく、重複は、2つのマップ間で共通する持続データによって決定されてもよい。他の基準もまた、デバイスが現在位置特定されている稠密マップの品質および現在の稠密マップのタイムスタンプ等の重複被覆率を伴う、1つを上回る共有稠密マップが存在する場合、適用されてもよい。稠密マップの品質は、マップ内のメッシュブロックの数を示してもよい。稠密マップのタイムスタンプは、最後の深度画像が稠密マップの中に融合された時間および/またはマップがクラウド上で作成された時間を示してもよい。
デバイスは、デバイスの軌道内の累積された誤差を低減させるように、周期的に、例えば、デバイスが、その前の位置特定された位置から10メートル移動すると、新しい位置特定結果を得ようと試みてもよい。疎マップが、より大きいエリアを被覆し得るため、疎マップ位置特定結果6714は、多くの場合、デバイスが同一共有疎マップに対して位置特定されることを示し得る。稠密マップ再位置特定コンポーネント6906は、マップ間の不整合が低減されるように、デバイスの疎追跡マップと共有疎マップとの間の変換を更新することを可能にされてもよい。
位置特定された共有稠密マップのメタデータ6908に基づいて、稠密マップ事前フェッチコンポーネント6910は、例えば、図70に図示される方法7000を実施することによって、位置特定された共有稠密マップの一部をフェッチするステップに進み得る。図71は、いくつかの実施形態による、方法7000を使用して、マージまたはスティッチングされた稠密マップ6800を取得するステップを図示する、簡略化された概略図である。
方法7000は、稠密マップ管理コンポーネントが、デバイスがクラウドからの共有稠密マップに対して位置特定され得ることを決定すると、開始してもよく、これは、稠密マップ事前フェッチをトリガし得る。
方法7000は、デバイスの現在の位置(例えば、位置7102)に基づいて、現在の事前フェッチ領域7106を算出するステップ(行為7004)を含んでもよい。事前フェッチデータの一部または全部はデバイス上のアクティブRAMの中にロードされた、ロード領域(例えば、境界ボックス7104)であってもよい。いくつかの実施形態では、例えば、デバイスは、アクティブRAM内に、事前フェッチ領域より小さい、ロード領域に対応する、データを維持してもよい。事前フェッチデータの全部または一部は、ソリッドステート不揮発性メモリ内に実装されるファイルシステム等の他のメモリ内に記憶されてもよい。ロード領域は、デバイスの位置7102が変化するにつれて、変化されてもよい。
いくつかの実施形態では、事前フェッチデータは、漸次的にダウンロードされてもよい。方法7000は、それに関してデバイスがまだデータを記憶していない、サブ領域の一部に関する事前フェッチ要求を送信するステップ(行為7006)ステップを含んでもよく、選好が、現在のロード領域内のデータに関して与られている。例えば、境界ボックス7104内のサブ領域は、最初に、要求されてもよい。サブ領域の要求される部分は、「要求済み」としてマークされてもよい。
方法7000は、事前フェッチ要求に対する応答を受信するステップ(行為7008)を含んでもよい。応答は、立体データ、メッシュ、およびオブジェクト情報等の共有稠密マップのデータを含んでもよい。受信された事前フェッチ領域は、「完了」としてマークされてもよい。「完了」としてマークされる、事前フェッチ領域は、オクルージョン、物理学ベースの相互作用、および環境推測等のXR機能のために、デバイスのメモリにロードされてもよい。
ロード領域内のメッシュブロックが全て、ダウンロードされ、RAMにロードされる等、ある基準が満たされた後、稠密マップ管理コンポーネントは、本以前に決定された共有稠密マップに対して位置特定してもよい。その後、現在の場所およびデバイスの検出された運動に基づいて、稠密マップ事前フェッチコンポーネントは、データをクラウドからフェッチし、デバイスRAMにロードし続けてもよい。結果として、方法7000は、例えば、デバイスの現在の場所およびデバイスの任意の検出された運動に基づいて、行為7004、7006、および7008を反復してもよい。いくつかの実施形態では、境界ボックス7104内の全てのサブ領域をフェッチ後、方法7000は、例えば、境界ボックス7104を拡大し(例えば、拡大された境界ボックス)、および/または境界ボックス7104を偏移させる(例えば、事前フェッチボックス7108)ことによって、新しい現在の事前フェッチ領域を算出してもよい。
共有稠密マップのフェッチされた部分は、デバイスが物理的環境内の対応するエリアの中に進入すると、デバイスのメモリにロードされてもよい。稠密マップマージまたはスティッチングコンポーネント6912は、例えば、図72に図示される方法7200を実施することによって、共有稠密マップのロードされた部分を更新してもよい。
方法7200は、位置特定された共有稠密マップに対する最後の更新のタイムスタンプをチェックするステップ(行為7202)によって、開始してもよい。方法7200は、タイムスタンプ後に捕捉された対応する深度画像を伴う、疎追跡マップからの持続姿勢を待ち行列に入れるステップ(行為7204)を含んでもよい。
待ち行列内の深度画像毎に、方法7200は、デバイスの現在の場所と深度画像が結び付けられる持続姿勢との間の距離をチェックするステップ(行為7206)を含んでもよい。方法7200は、距離が閾値(例えば、15メートル)以内であるかどうかを決定するステップ(行為7208)を含んでもよい。距離が閾値以内であることが決定されるとき、方法7200は、デバイス上にダウンロードされ、ローカルで記憶されている場合がある、クラウドのパス可能世界からのこれらの持続姿勢と関連付けられる全ての深度画像をクエリするステップ(行為7210)を含んでもよい。方法7200は、待ち行列内の深度画像とクラウドのパス可能世界からのクエリされた深度画像を統合するステップ(行為7212)を含んでもよい。本持続姿勢は、統合後、待ち行列から削除されてもよい。距離が閾値を上回ることが決定されるとき、持続姿勢は、待ち行列から削除されてもよい。方法7200は、付加的持続姿勢が待ち行列内に存在するかどうかを決定するステップ(行為7214)を含んでもよい。行為7206-7214は、持続姿勢が待ち行列内になくなるまで、反復してもよい。
平面表面等の幾何学形状が、XRデバイスが動き回るにつれて、抽出されてもよい。幾何学形状を抽出するステップは、完全稠密マップを構築するより少ない演算能力および時間を要する。単純幾何学形状は、効率的であって、いくつかのXR機能のために十分であり得る。抽出された幾何学形状は、幾何学形状が、XRデバイス内の任意のデバイスと、共有幾何学形状に結び付けられる任意の仮想コンテンツとともに共有され得るように、クラウドにレベル上げされてもよい。
いくつかの実施形態では、デバイス上3D再構築コンポーネント(例えば、64360は、幾何学形状抽出コンポーネントを含んでもよい。幾何学形状抽出コンポーネントは、センサを用いて、場面を走査しながら、幾何学形状を抽出してもよく、これは、遠近調節する動的環境変化に対応し得る高速かつ効率的抽出を可能にする。抽出された幾何学形状は、例えば、対応する稠密マップのオブジェクト情報(例えば、オブジェクト情報6438、オブジェクト情報6448)の少なくとも一部として、デバイス上に記憶され、および/またはクラウドにレベル上げされてもよい。クラウドは、1つまたはそれを上回るデバイスによって提供される幾何学形状を組み合わせるように構成される、1つまたはそれを上回るコンポーネントを含んでもよい。クラウド上の組み合わせられた幾何学形状はそれぞれ、組み合わせられた幾何学形状およびそれによって結び付けられる仮想コンテンツがXRシステム内のデバイスによって共有され得るように、一意の幾何学形状識別子を有してもよい。
いくつかの実施形態では、オブジェクトは、個々に識別可能であってもよく、これらの識別子は、持続姿勢と同様に、セッションを横断して持続され得る。個々の識別子を用いることで、オブジェクトは、独立して参照されることができ、相互から区別可能である。それらは、種々のタイプの異なるインスタンスとして分類されることができる。例えば、大平坦壁表面は、同一識別子を経時的に有し得る。逆に言えば、同一識別子は、経時的に、同一平坦壁表面を参照し得る。持続オブジェクトを参照する能力は、コンテンツ設置等の処理を簡略化し得る。例えば、仮想画面は、本識別子が、後に、異なるエンティティ、例えば、代わりに、天井を指し得ることを心配せずに、その識別子を介して、それを参照することによって、大平坦壁表面上に設置され得る。
平面が、いくつかの実施形態では、例示的幾何学形状として使用されるが、幾何学形状抽出コンポーネントは、後続処理において使用するために、平面の代わりに、またはそれに加え、例えば、円柱、立方体、線、角、またはガラス表面または穴等の意味論を含む、他の幾何学形状を検出してもよいことを理解されたい。いくつかの実施形態では、幾何学形状抽出に関して本明細書に説明される原理は、オブジェクト抽出および同等物にも適用可能であり得る。
いくつかの実施形態では、変換が、デバイスにローカルの座標フレーム内のデバイスからのオブジェクト情報(例えば、6438)を、クラウドマージまたはスティッチングされた疎マップの共有座標フレームに変換するために取得されてもよい。いくつかの実施形態では、変換は、疎マップ位置特定結果を使用してもよい。例えば、アップロードされた平面表面を含有する、稠密マップに関して、クラウドは、同一のマップの一意の識別子を使用して、対応するローカル追跡疎マップを見出し、本疎マップからクラウドマージまたはスティッチングされた疎マップに対して疎マップ位置特定を実施してもよい。姿勢が、クラウドマージまたはスティッチングされた疎マップからローカル追跡疎マップに取得され、オブジェクト情報を処理するための付加的入力として使用されてもよい。いくつかの実施形態では、アップロードされた平面表面を含有する、稠密マップに関して、クラウドは、同一のマップの一意の識別子を使用して、対応するローカル追跡疎マップを見出し、オブジェクト情報を処理するための付加的入力として使用されるべき持続姿勢テーブルを抽出してもよい。各平面(その一意の識別子によって識別され得る)は、そのローカル追跡疎マップの持続姿勢テーブル内の持続姿勢に結び付けられてもよい。クラウドマージまたはスティッチングされた疎マップ内の同一持続姿勢を見出すことによって、姿勢が、本平面に関して、クラウドマージまたはスティッチングされた疎マップにローカル追跡疎マップから取得され得る。
それに対して同一オブジェクト(平面等)が姿勢付きである、ローカルマップとクラウドマップとの間の相対的姿勢は、変換としての役割を果たし得る。取得された変換に基づいて、デバイスからのオブジェクト情報は、例えば、姿勢を使用して、および/または境界ボックスマッチング等の幾何学形状ベースのマッチングを実施することによって、デバイスにローカルの座標フレームからクラウドマージの共有座標フレームまたはスティッチングされた疎マップに変換されてもよい。
オブジェクトUUID転写マッピングが、算出され、XRシステム内のデバイスによってアクセス可能であってもよい。オブジェクトUUID転写マッピングは、クラウドオブジェクト情報UUIDと入力オブジェクト情報UUIDとの間の対応を示してもよい。オブジェクトUUID転写マッピングは、デバイスが、例えば、UUIDを通して、デバイスよって以前に見られていた、持続オブジェクトを認識することを可能にし得る。
XRシステム内のデバイスは、マージまたはスティッチングされた稠密マップをロードしてもよく、オブジェクトUUIDは、マージまたはスティッチングされた稠密マップ内のそれらのUUIDであってもよく、これは、オブジェクトUUID転写マッピングに基づいて、デバイスに以前に見えていたUUIDに逆マッピングされ、したがって、デバイスの視点から持続性を提供し得る。
図73は、いくつかの実施形態による、平面等の持続オブジェクトを提供する、XRシステム7300のブロック図である。XRシステム7300は、クラウド7302と、1つまたはそれを上回るデバイス7304とを含んでもよい。オブジェクトは、例えば、クラウドにアップロードされる表面情報が、クラウドコンポーネントが、オブジェクト情報を含有する、ローカル稠密マップと、同様にオブジェクト情報を含有し得る、クラウド共有稠密マップとの間のオブジェクトをマッチングさせ得るように、オブジェクト情報(例えば、平面)を含む、実施形態では、複数のデバイスを横断して持続され得る。具体的実施例として、XRシステム7300は、平面マッチングコンポーネント7600を含んでもよく、これは、デバイス7304および/またはクラウド7302の一部であってもよい。
デバイス7304は、例えば、平面表面をメッシュから検出することによって、平面を抽出し、例えば、新しい抽出された平面が、2つの平面を接続するとき、平面を1つのグローバル平面の中にマージするまたはスティッチングし、例えば、グローバル平面の中央におけるブリック平面が除去されるとき、グローバル平面を分割するように構成される、1つまたはそれを上回るコンポーネントを含んでもよい。例えば、平面抽出システムの実施例は、米国特許出願第16/229,799号(参照することによって、その全体として本明細書に組み込まれる)に説明される。
デバイス7304は、メモリ7312と、ファイルシステム7314とを含んでもよい。メモリ7312は、ローカル平面データ7316と、ローカル平面ID履歴マップ7318とを含んでもよい。ローカル平面データ7316は、平面の境界点、平面のエリア、および平面のプリミティブ法線等の平面情報を含んでもよい。クエリされる平面に関して、平面ID履歴マップ7318は、クエリされた平面の一意のIDと平面の任意の履歴IDとの間の対応を含んでもよい。履歴IDは、平面の少なくとも一部が最後に複数のセッションを横断してクエリされたときのタイムスタンプを示してもよい。
メモリ7312およびファイルシステム7314は、共有およびローカル幾何学形状が、以前に探索した空間に進入するとき、複製された環境マッピングを回避するために、ファイルシステム内に記憶され得るように、協働して動作してもよい。図示される実施例では、ローカル平面データ7316およびローカル平面ID履歴マップ7318の一部は、デバイスの現在の場所に基づいて、ファイルシステム7314から読み出されてもよい。デバイスが、物理的環境内のいくつかの実オブジェクトから離れるように移動すると、デバイス7304は、対応する平面データおよびそのID履歴マップをメモリ7312から除去し、それらをファイルシステム7314内に記憶してもよい。いくつかの実施形態では、メモリ7312内のデータが、セッションの終了後に除去され得るが、ファイルシステム7314内のデータは、存続され、新しいセッションの開始に応じて、メモリ7312にロードされるために備えてもよい。
図74は、いくつかの実施形態による、持続性を平面等のオブジェクトに提供する、XRシステム7400のブロック図である。XRシステム7400は、クラウド7402と、1つまたはそれを上回るデバイス7404とを含んでもよい。クラウド7402は、上記に説明されるように、クラウドベースの疎マップ位置特定を実施するものと同一処理リソースを用いて、実装されてもよい、または他の算出リソースであってもよい。XRシステム7400は、平面マッチングコンポーネント7406を含んでもよい。平面マッチングコンポーネント7406は、クラウド7402の一部として図示されるが、また、デバイス7404の一部であってもよい、またはデバイス7404の一部のみ、またはクラウド7402の一部のみであってもよい。
クラウド7402は、持続姿勢テーブルを含む、共有疎マップ7412と、平面7416およびローカル/クラウド平面UUIDマッピング7418を含む、共有稠密マップ7414とを含んでもよい。平面マッチングコンポーネント7406は、少なくとも部分的に、クラウド7402の疎マップ7412と、稠密マップ7414の平面7416とに基づいて、ローカル/クラウド平面UUIDマッピング7418を提供してもよい。
デバイス7404は、持続姿勢テーブルを含む、疎追跡マップ7422と、平面7426およびローカル/クラウド平面UUIDマッピング7428を含む、稠密マップ7424とを含んでもよい。ローカル/クラウド平面UUIDマッピング7428は、デバイス7404によってクラウド7402からロードされた共有クラウド稠密マップからのもの、例えば、ローカル/クラウド平面UUIDマッピング7418であってもよい。平面マッチングコンポーネント7406は、少なくとも部分的に、デバイス7404の疎マップ7422と、稠密マップ7424の平面7426とに基づいて、ローカル/クラウド平面UUIDマッピング7418を提供してもよい。
本例示的実施形態では、デバイスが、平面等の持続オブジェクトを含む、稠密情報を提供するにつれて、平面マッチングコンポーネント7406は、デバイスからの平面をクラウド内に記憶される平面7426にマッチングさせようと試み得る。デバイスからの平面が、すでにクラウド内に記憶される平面と関連付けられている場合、その識別子は、マッピング7418内に記憶され、マッチングが識別子に基づいて実施されることを可能にし得る。
デバイスからの平面が、マッピング7418内にない場合、マッチングは、平面幾何学形状および平面についての他の情報に基づいてもよい。例えば、マッチング処理は、それに対して平面が姿勢付きである持続姿勢および姿勢に基づいてもよい。重複平面は、マッチングするものとして取り扱われ得る。マッチングを見出すことに応じて、デバイスによって使用される平面に関する識別子間の関連付けが、マッピング7418内に記録され、マッピング7428内への記憶のために、デバイスに通信されてもよい。
マッチングする平面が、識別されない場合、いくつかの実施形態では、デバイスからの平面は、共有平面7414のクラウド記憶に追加され、クラウド識別子を割り当てられてもよい。クラウド識別子間のマッピングは、次いで、マッピング7418内に記憶されてもよく、同様に、マッピング7428内に記憶されるために、デバイスに通信されてもよい。このように、平面または他のオブジェクトは、システムと相互作用する、各デバイス上で、およびクラウド内で、識別されてもよい。
また、デバイスからの稠密情報に基づいて、表面情報を追加することに加え、クラウド処理は、稠密情報を除去または更新してもよいことを理解されたい。例えば、図67に示されるように、デバイスは、現在の稠密マップ6708を維持してもよい。その稠密マップは、より多くのセンサデータがデバイス上で収集および処理されるにつれて、拡張されてもよい。稠密マップを拡張させる、更新は、クラウド内で稠密マップとマージまたはスティッチングするために、クラウドに通信されてもよい。逆に言えば、デバイス上での更新が、以前に検出された表面またはオブジェクトがもはや存在しないことを示すとき、更新は、クラウドからの表面情報の除去をもたらし得る。
同様に、デバイスが、そのセンサを動作させ、その3D環境についての情報を集めるにつれて、デバイスは、随時、3D環境のその表現を調節してもよい。いくつかの実施形態では、デバイスは、随時、上記に説明されるように、バンドル調整の間に生じ得るように、その疎追跡マップを調節してもよい。疎追跡マップの調節は、追跡マップに対する姿勢付きであった、稠密情報への調節をトリガし得る。例えば、稠密情報を生成するために使用されるセンサデータは、追跡マップの調節がセンサデータの調節をもたらし得るように、追跡マップ内の持続姿勢に対する姿勢付きであってもよい。調節された表面情報は、次いで、生成され得る。調節された表面情報は、生成された類似表面情報と未調節表面情報を置換してもよい。本置換は、デバイスにローカルの表面情報上で、およびクラウド上で、行われてもよい。
故に、その中で複数のデバイスのそれぞれが動作する、3D環境の信頼性がある表現が、生成および維持され、低デバイス上リソースを用いて、持続性の利点を有効にし得る。
さらなる考慮点
図60は、コンピュータシステム1900の例示的形態における機械の略図表現を示し、機械に本明細書で議論される方法論のうちの任意の1つまたはそれを上回るものを実施させるための命令のセットが、いくつかの実施形態に従って実行されてもよい。代替実施形態では、機械は、独立型デバイスとして動作する、または他の機械に接続(例えば、ネットワーク化)されてもよい。さらに、単一機械のみが、図示されるが、用語「機械」はまた、個々にまたはともに、命令のセット(または複数のセット)を実行し、本明細書で議論される方法論のうちの任意の1つまたはそれを上回るものを実施する、機械の任意の集合を含むものと捉えられるものとする。
例示的コンピュータシステム1900は、プロセッサ1902(例えば、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、または両方)と、メインメモリ1904(例えば、読取専用メモリ(ROM)、フラッシュメモリ、動的ランダムアクセスメモリ(DRAM)、例えば、同期DRAM(SDRAM)またはRambus DRAM(RDRAM)等)と、静的メモリ1906(例えば、フラッシュメモリ、静的ランダムアクセスメモリ(SRAM)等)とを含み、これらは、バス1908を介して相互に通信する。
コンピュータシステム1900はさらに、ディスクドライブユニット1916と、ネットワークインターフェースデバイス1920とを含んでもよい。
ディスクドライブユニット1916は、その上に本明細書に説明される方法論または機能のうちの任意の1つまたはそれを上回るものを具現化する、1つまたはそれを上回る命令のセット1924(例えば、ソフトウェア)が記憶される、機械可読媒体1922を含む。ソフトウェアはまた、コンピュータシステム1900、メインメモリ1904、およびプロセッサ1902によるその実行の間、完全にまたは少なくとも部分的に、メインメモリ1904内および/またはプロセッサ1902内に常駐し、同様に機械可読媒体を構成してもよい。
ソフトウェアはさらに、ネットワーク18を経由して、ネットワークインターフェースデバイス1920を介して、伝送または受信されてもよい。
コンピュータシステム1900は、プロジェクタを駆動し、光を生成するために使用される、ドライバチップ1950を含む。ドライバチップ1950は、その独自のデータ記憶装置1960と、その独自のプロセッサ1962とを含む。
機械可読媒体1922が、例示的実施形態では、単一媒体であるように示されるが、用語「機械可読媒体」は、1つまたはそれを上回る命令のセットを記憶する、単一媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連付けられるキャッシュおよびサーバ)を含むものと捉えられるべきである。用語「機械可読媒体」はまた、機械による実行のための命令のセットを記憶、エンコーディング、または搬送することが可能であって、機械に、本発明の方法論のうちの任意の1つまたはそれを上回るものを実施させる、任意の媒体を含むものと捉えられるものとする。用語「機械可読媒体」は、故に、限定ではないが、ソリッドステートメモリ、光学および磁気媒体、および搬送波信号を含むものと捉えられるものとする。
いくつかの実施形態のいくつかの側面がこれまで説明されたが、種々の改変、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。
一実施例として、実施形態は、拡張(AR)環境に関連して説明される。本明細書に説明される技法の一部または全部は、MR環境、またはより一般的には、他のXR環境およびVR環境内に適用されてもよいことを理解されたい。
別の実施例として、実施形態は、ウェアラブルデバイス等のデバイスに関連して説明される。本明細書に説明される技法の一部または全部は、ネットワーク(クラウド等)、離散アプリケーション、および/またはデバイス、ネットワーク、および離散アプリケーションの任意の好適な組み合わせを介して実装されてもよいことを理解されたい。
さらに、図29は、候補マップをフィルタリングし、高ランク付けマップのセットをもたらすために使用され得る、基準の実施例を提供する。他の基準も、説明される基準の代わりに、またはそれに加え、使用されてもよい。例えば、複数の候補マップが、より少ない望ましいマップをフィルタリングして取り出すために使用される、メトリックの類似値を有する場合、候補マップの特性が、候補マップとして留保される、またはフィルタリングして取り出される、マップを決定するために使用されてもよい。例えば、より大きいまたはより稠密な候補マップが、より小さい候補マップより優先されてもよい。
任意の明白である改変、修正、および改良が、検討され、本開示の一部であるものと意図され、本開示の精神および範囲内であるものとして意図されることに留意されたい。さらに、本開示の利点が、示されるが、本開示の全ての実施形態が、全ての説明される利点を含むわけではないであろうことを理解されたい。いくつかの実施形態は、本明細書およびいくつかのインスタンスに有利であるものとして説明される任意の特徴を実装しなくてもよい。故に、前述の説明および図面は、一例にすぎない。
本開示の前述の実施形態は、多数の方法のいずれかにおいて実装されることができる。例えば、実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを使用して実装されてもよい。ソフトウェア内に実装されるとき、ソフトウェアコードが、単一コンピュータ内に提供される、または複数のコンピュータ間に分散されるかどうかにかかわらず、任意の好適なプロセッサまたはプロセッサの集合上で実行されることができる。そのようなプロセッサは、いくつか挙げると、CPUチップ、GPUチップ、マイクロプロセッサ、マイクロコントローラ、またはコプロセッサ等、当技術分野において公知の市販の集積回路コンポーネントを含む、集積回路コンポーネント内の1つまたはそれを上回るプロセッサとともに、集積回路として実装されてもよい。いくつかの実施形態では、プロセッサは、ASIC等のカスタム回路内に、またはプログラマブル論理デバイスを構成することから生じる半カスタム回路内に実装されてもよい。さらなる代替として、プロセッサは、市販、半カスタム、またはカスタムかどうかにかかわらず、より大きい回路または半導体デバイスの一部であってもよい。具体的実施例として、いくつかの市販のマイクロプロセッサは、1つまたはそれらのコアのサブセットがプロセッサを構成し得るように、複数のコアを有する。但し、プロセッサは、任意の好適なフォーマットにおける回路を使用して実装されてもよい。
さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータ等のいくつかの形態のうちのいずれかで具現化され得ることを理解されたい。加えて、コンピュータは、携帯情報端末(PDA)、スマートフォン、または任意の好適な携帯用または固定電子デバイスを含む、概してコンピュータと見なされないが好適な処理能力を伴う、デバイスで具現化されてもよい。
また、コンピュータは、1つまたはそれを上回る入力および出力デバイスを有してもよい。これらのデバイスは、とりわけ、ユーザインターフェースを提示するために使用されることができる。ユーザインターフェースを提供するために使用され得る、出力デバイスの実施例は、出力の視覚的提示のためのプリンタまたはディスプレイ画面、または出力の可聴提示のためのスピーカまたは他の音生成デバイスを含む。ユーザインターフェースのために使用され得る、入力デバイスの実施例は、キーボード、およびマウス、タッチパッド、およびデジタル化タブレット等のポインティングデバイスを含む。別の実施例として、コンピュータは、発話認識を通して、または他の可聴フォーマットにおいて、入力情報を受信してもよい。図示される実施形態では、入力/出力デバイスは、コンピューティングデバイスと物理的に別個として図示される。しかしながら、いくつかの実施形態では、入力および/または出力デバイスは、プロセッサと同一ユニットまたはコンピューティングデバイスの他の要素の中に物理的に統合されてもよい。例えば、キーボードは、タッチスクリーン上のソフトキーボードとして実装され得る。いくつかの実施形態では、入力/出力デバイスは、コンピューティングデバイスから完全に接続解除され、無線接続を通して機能的に統合されてもよい。
そのようなコンピュータは、企業ネットワークまたはインターネット等、ローカルエリアネットワークまたは広域ネットワークを含む、任意の好適な形態の1つまたはそれを上回るネットワークによって相互接続されてもよい。そのようなネットワークは、任意の好適な技術に基づいてもよく、任意の好適なプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワーク、または光ファイバネットワークを含んでもよい。
また、本明細書で概説される種々の方法およびプロセスは、種々のオペレーティングシステムまたはプラットフォームのうちのいずれか1つを採用する、1つまたはそれを上回るプロセッサ上で実行可能である、ソフトウェアとしてコード化されてもよい。加えて、そのようなソフトウェアは、いくつかの好適なプログラミング言語および/またはプログラミングまたはスクリプト作成ツールのうちのいずれかを使用して、書き込まれてもよく、また、フレームワークまたは仮想マシン上で実行される実行可能機械言語コードまたは中間コードとしてコンパイルされてもよい。
本側面では、本開示は、1つまたはそれを上回るコンピュータまたは他のプロセッサ上で実行されるときに、上記で議論される本開示の種々の実施形態を実装する方法を行う、1つまたはそれを上回るプログラムで符号化される、コンピュータ可読記憶媒体(または複数のコンピュータ可読媒体)(例えば、コンピュータメモリ、1つまたはそれを上回るフロッピー(登録商標)ディスク、コンパクトディスク(CD)、光学ディスク、デジタルビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイまたは他の半導体デバイス内の回路構成、または他の有形コンピュータ記憶媒体)として具現化されてもよい。前述の実施例から明白なように、コンピュータ可読記憶媒体は、非一過性形態においてコンピュータ実行可能命令を提供するために十分な時間の間、情報を留保し得る。そのようなコンピュータ可読記憶媒体または複数の媒体は、上記に記載されるように、その上に記憶される1つまたは複数のプログラムが、本開示の種々の側面を実装するように1つまたはそれを上回る異なるコンピュータまたは他のプロセッサ上にロードされ得るように、トランスポータブルであることができる。本明細書で使用されるように、用語「コンピュータ可読記憶媒体」は、製造(すなわち、製造品)または機械と見なされ得るコンピュータ可読媒体のみを包含する。いくつかの実施形態では、本開示は、伝搬信号等のコンピュータ可読記憶媒体以外のコンピュータ可読媒体として具現化されてもよい。
用語「プログラム」または「ソフトウェア」は、上記に記載されるように、本開示の種々の側面を実装するようにコンピュータまたは他のプロセッサをプログラムするために採用され得る、任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために、一般的意味において本明細書で使用される。加えて、本実施形態の一側面によると、実行されると、本開示の方法を行う、1つまたはそれを上回るコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に常駐する必要はないが、本開示の種々の側面を実装するように、いくつかの異なるコンピュータまたはプロセッサの間でモジュール様式において分散され得ることを理解されたい。
コンピュータ実行可能命令は、1つまたはそれを上回るコンピュータまたは他のデバイスによって実行される、プログラムモジュール等の多くの形態であってもよい。概して、プログラムモジュールは、特定のタスクを行う、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。典型的には、プログラムモジュールの機能性は、種々の実施形態では、所望に応じて、組み合わせられる、または分散されてもよい。
また、データ構造は、任意の好適な形態でコンピュータ可読媒体に記憶されてもよい。例証を簡単にするために、データ構造は、データ構造内の場所を通して関係付けられるフィールドを有することが示されてもよい。そのような関係は、同様に、フィールド間の関係を伝えるコンピュータ可読媒体内の場所を伴うフィールドのために記憶装置を割り当てることによって、達成されてもよい。しかしながら、ポインタ、タグ、またはデータ要素間の関係を確立する他の機構の使用を通すことを含む、任意の好適な機構が、データ構造のフィールド内の情報の間の関係を確立するために使用されてもよい。
本開示の種々の側面は、単独で、組み合わせて、または前述の実施形態に具体的に議論されない種々の配列において使用されてもよく、したがって、その用途は、前述の説明に記載される、または図面に図示されるコンポーネントの詳細および配列に限定されない。例えば、一実施形態に説明される側面は、他の実施形態に説明される側面と任意の様式で組み合わせられてもよい。
また、本開示は、その実施例が提供されている、方法として具現化されてもよい。方法の一部として行われる作用は、任意の好適な方法で順序付けられてもよい。故に、例証的実施形態では、連続作用として示されるが、いくつかの作用を同時に行うことを含み得る、作用が図示されるものと異なる順序で行われる、実施形態が構築されてもよい。
請求項要素を修飾するための請求項における「第1」、「第2」、「第の」等の順序の用語の使用は、単独では、別の要素と比べた1つの請求項要素のいかなる優先順位、先行、または順序、または方法の行為が行われる時間順序も含意しないが、順序の用語は、請求項要素を区別するために、(順序の用語の使用のためであるが)ある名前を有する1つの請求項要素と、同一の名前を有する別の要素を区別する標識としてのみ使用される。
また、本明細書で使用される語句および専門用語は、説明目的のためのものであって、限定と見なされるべきではない。本明細書の「~を含む」、「~を備える」、または「~を有する」、「~を含有する」、「~を伴う」、およびその変形の使用は、その後列挙されたアイテムおよびその均等物および付加的アイテムを包含することを意味する。
Claims (24)
- 仮想コンテンツをレンダリングするためのエクステンデッドリアリティまたはクロスリアリティ(XR)システムであって、
ネットワークコンポーネントを介して、複数のポータブル電子デバイスに通信可能に接続されるコンピューティングデバイスと、
前記コンピューティングデバイスおよび前記複数のポータブル電子デバイスによってアクセス可能なリポジトリと、
稠密マップマージコンポーネントと
を備え、
前記エクステンデッドリアリティまたはクロスリアリティシステムは、
少なくとも部分的に、複数のポータブルデバイスから受信された稠密マップのセットに基づいて、3D環境の複数の部分に関する表現を決定することであって、稠密マップのセットは、少なくとも部分的に、稠密マップのセットに関する姿勢データまたは稠密マップのセット内の表面情報に基づいて、複数のサブ群に群化される、ことと、
前記表現を共有持続稠密マップの少なくとも一部として記憶することと
を含む行為のセットを実施するように構成される、エクステンデッドリアリティまたはクロスリアリティシステム。 - 前記行為のセットはさらに、
疎マップおよび稠密マップを、リポジトリ内に記憶される複数の規準マップから選択される規準マップに対して位置特定することを含み、座標系が、前記疎マップから導出され、前記稠密マップ内のオブジェクトの位置または配向を決定するために使用される、請求項1に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記行為のセットはさらに、
規準マップに関して、ポータブル電子デバイスの頭部姿勢の頭部姿勢データと、前記頭部姿勢において前記ポータブル電子デバイスによって検出された1つまたはそれを上回るオブジェクトに関するオブジェクト情報とを備える前記疎マップを決定することを含み、前記疎マップは、前記ポータブル電子デバイスのためのローカル基準フレームにローカルで配向される、請求項2に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記行為のセットはさらに、
第1の処理パイプラインにおいて、前記稠密マップを決定することを含み、前記疎マップは、第2の処理パイプラインにおいて決定され、第2のリフレッシュレートでリフレッシュされ、前記稠密マップは、前記第2のリフレッシュレートより低速の第1のレートでリフレッシュされ、前記稠密マップは、疎マップの持続姿勢を参照する稠密情報を備える、請求項2に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記行為のセットはさらに、
少なくとも部分的に、前記疎マップと、前記リポジトリ内に記憶されている1つまたはそれを上回る規準マップとの間の重複の範囲を決定する条件に基づいて、前記疎マップを規準マップにレベル上げすることを含む、請求項2に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記行為のセットはさらに、
前記ポータブル電子デバイスにおいて、少なくとも、ローカル3D再構築を実施することによって、共有世界モデルを生成することを含む、請求項1に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 少なくとも、前記ローカル3D再構築を実施することによって、前記共有世界モデルを生成することは、
前記複数のポータブル電子デバイスのポータブル電子デバイスにおいて、疎マップの姿勢を識別することと、
共有持続稠密マップを前記コンピューティングデバイスによってアクセス可能なリポジトリから識別することと
を含む、請求項6に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 少なくとも、前記ローカル3D再構築を実施することによって、前記共有世界モデルを生成することは、
少なくとも、変換を使用することによって、前記ポータブル電子デバイスによって生成された前記疎マップを規準マップに対して位置特定することを含み、前記変換は、少なくとも部分的に、前記規準マップ内の1つまたはそれを上回る持続座標フレームに基づいて、前記疎マップおよび前記規準マップに関して決定される、請求項7に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 少なくとも、前記ローカル3D再構築を実施することによって、前記共有世界モデルを生成することは、
前記ポータブル電子デバイスにおいて、少なくとも、前記オブジェクトまたはそれの一部のローカル姿勢データまたはローカル深度データを前記ポータブル電子デバイスによって捕捉された画像から決定することによって、稠密マップを生成することを含む、請求項8に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記稠密マップは、前記ポータブル電子デバイスにおいて、少なくともさらに、前記規準マップに対して位置特定された姿勢データまたは位置特定された深度データを識別することであって、前記位置特定された姿勢データまたは位置特定された深度データはそれぞれ、前記変換によって、前記位置特定された姿勢データまたはローカル深度データから変換される、ことと、前記位置特定された姿勢データまたは前記位置特定された深度データを伝送することとによって生成される、請求項8に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。
- 前記行為のセットはさらに、
遠隔サーバ上に常駐する前記稠密マップマージコンポーネントにおいて、前記3D環境の3D再構築を実施することを含む、請求項1に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記3D環境の3D再構築を実施することは、
前記複数のポータブル電子デバイスのポータブル電子デバイスから、前記ポータブル電子デバイスによって生成された疎マップのローカル姿勢データを受信することと、
共有持続稠密マップを前記稠密マップマージコンポーネントによってアクセス可能なリポジトリから識別することと
を含む、請求項1に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記3D環境の3D再構築を実施することはさらに、
前記ポータブル電子デバイスによって生成された前記疎マップを規準マップに対して位置特定する変換を決定することを含み、前記変換は、少なくとも部分的に、前記規準マップ内の1つまたはそれを上回る持続座標フレームと、前記疎マップ内の姿勢データとに基づいて、前記疎マップおよび前記規準マップに関して決定される、請求項12に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記3D環境の3D再構築を実施することはさらに、
前記ポータブル電子デバイスから、稠密マップを受信することであって、前記稠密マップは、前記姿勢付き表面情報の集合の少なくとも一部の表面と、前記ポータブル電子デバイスによって捕捉された画像内のオブジェクトまたはそれの一部に関するローカル姿勢データまたはローカル深度データとを使用することによって生成され、前記ローカル姿勢データおよび前記ローカル深度データはそれぞれ、前記規準マップに対して位置特定された姿勢データまたは位置特定された深度データに変換される、ことと、
少なくとも部分的に、前記疎マップを前記規準マップに対して位置特定する位置特定結果に基づいて、前記疎マップに対応する前記稠密マップを識別することと、
少なくとも、前記稠密マップと前記共有持続稠密マップを前記表現の一部としてマージすることによって、前記3D環境の表現を算出することと
を含む、請求項13に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記行為のセットはさらに、
前記複数のポータブル電子デバイスのポータブル電子デバイスによって生成された疎マップを前記規準マップに対して位置特定することと、
疎マップマージコンポーネントにおいて、前記3D環境に関する共有持続疎マップを生成することと
を含む、請求項14に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記共有持続疎マップを生成することは、
前記複数のポータブル電子デバイスのポータブル電子デバイスから、前記ポータブル電子デバイスによって生成された疎マップ内の前記オブジェクトまたはそれの一部のローカル姿勢データを受信することであって、前記ローカル姿勢データは、前記ポータブル電子デバイスに関連して配向され、前記オブジェクトまたはそれの一部は、前記疎マップ内の点ノードとして表される、ことと、
少なくとも部分的に、前記オブジェクトまたはそれの一部の前記ローカル姿勢データに基づいて、前記疎マップに関する少なくとも1つの持続座標フレームを前記規準マップから識別することと
を含む、請求項15に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - 前記共有持続疎マップを生成することは、
少なくとも、前記ローカル姿勢データの位置特定された姿勢データへの変換によって、少なくとも部分的に、前記規準マップ内に記憶される前記少なくとも1つの持続座標フレームに基づいて、前記疎マップを前記規準マップに対して位置特定することと、
少なくとも、前記疎マップを前記共有持続疎マップの中にマージすることによって、前記3D環境に関する前記共有持続疎マップを生成することと
を含む、請求項16に記載のエクステンデッドリアリティまたはクロスリアリティ(XR)システム。 - コンピュータプログラム製品であって、前記コンピュータプログラム製品は、1つまたはそれを上回る非一過性コンピュータ可読記憶媒体を備え、前記1つまたはそれを上回る非一過性コンピュータ可読記憶媒体は、その上に記憶される命令の少なくとも1つのシーケンスを有し、前記命令の少なくとも1つのシーケンスは、エクステンデッドリアリティまたはクロスリアリティ(XR)システムによって実行されると、前記エクステンデッドリアリティまたはクロスリアリティシステムに、行為のセットを実施させ、前記行為のセットは、
前記エクステンデッドリアリティまたはクロスリアリティシステムによってアクセス可能なリポジトリを決定することであって、前記リポジトリは、その中に複数の規準マップを記憶し、規準マップは、少なくとも1つのオブジェクトまたはそれの1つまたはそれを上回る部分に対応する1つまたはそれを上回る持続座標フレームを記憶することと、
少なくとも部分的に、前記複数のポータブルデバイスから受信された稠密マップのセットに基づいて、3D環境の複数の部分に関する表現を決定することであって、稠密マップのセットは、少なくとも部分的に、稠密マップのセットに関する姿勢データまたは稠密マップのセット内の表面情報に基づいて、複数のサブ群に群化される、ことと、
前記表現を共有持続稠密マップの少なくとも一部として記憶することと
を含む、コンピュータプログラム製品。 - 前記行為のセットはさらに、
疎マップおよび稠密マップを、リポジトリ内に記憶される複数の規準マップから選択される規準マップに対して位置特定することであって、座標系が、前記疎マップから導出され、前記稠密マップ内のオブジェクトの位置または配向を決定するために使用される、ことと、
規準マップに関して、ポータブル電子デバイスの頭部姿勢の頭部姿勢データと、前記頭部姿勢において前記ポータブル電子デバイスによって検出された1つまたはそれを上回るオブジェクトに関するオブジェクト情報とを備える前記疎マップを決定することであって、前記疎マップは、前記ポータブル電子デバイスのためのローカル基準フレームにローカルで配向される、ことと、
第1の処理パイプラインにおいて、前記稠密マップを決定することであって、前記疎マップは、第2の処理パイプラインにおいて決定され、第2のリフレッシュレートでリフレッシュされ、前記稠密マップは、前記第2のリフレッシュレートより低速の第1のレートでリフレッシュされ、前記稠密マップは、疎マップの持続姿勢を参照する稠密情報を備える、ことと、
少なくとも部分的に、前記疎マップと、前記リポジトリ内に記憶されている1つまたはそれを上回る規準マップとの間の重複の範囲を決定する条件に基づいて、前記疎マップを規準マップにレベル上げすることと
を含む、請求項18に記載のコンピュータプログラム製品。 - 前記行為のセットはさらに、
前記ポータブル電子デバイスにおいて、少なくとも、
前記複数のポータブル電子デバイスのポータブル電子デバイスにおいて、疎マップの姿勢を識別することと、
共有持続稠密マップを前記コンピューティングデバイスによってアクセス可能なリポジトリから識別することと、
少なくとも、変換を使用することによって、前記ポータブル電子デバイスによって生成された前記疎マップを規準マップに対して位置特定することであって、前記変換は、少なくとも部分的に、前記規準マップ内の1つまたはそれを上回る持続座標フレームに基づいて、前記疎マップおよび前記規準マップに関して決定される、ことと、
前記ポータブル電子デバイスにおいて、少なくとも、前記オブジェクトまたはそれの一部のローカル姿勢データまたはローカル深度データを前記ポータブル電子デバイスによって捕捉された画像から決定することによって、稠密マップを生成することと
によって、少なくとも、ローカル3D再構築を実施することによって、共有世界モデルを生成すること
を含む、請求項18に記載のコンピュータプログラム製品。 - クロスリアリティ表現をレンダリングするための電子デバイスであって、前記電子デバイスは、
3次元(3D)環境についての情報を捕捉するように構成される1つまたはそれを上回るセンサであって、前記情報は、複数の画像を備える、1つまたはそれを上回るセンサと、
命令のシーケンスを実行するように構成されるプロセッサであって、前記命令のシーケンスは、実行されると、前記プロセッサに、行為のセットを実施させ、前記行為のセットは、
少なくとも部分的に、前記複数の画像に基づいて、疎追跡マップを算出することと、
少なくとも部分的に、前記1つまたはそれを上回るセンサによって捕捉された情報に基づいて、表面または深度情報の1つまたはそれを上回る集合を決定することと、
前記表面または深度情報の1つまたはそれを上回る集合のうちの少なくとも1つと、前記表面または深度情報の1つまたはそれを上回る集合のうちの少なくとも1つに関する姿勢情報とを伝送することと、
稠密マップのメタデータを受信することであって、前記メタデータは、前記稠密マップによって表される前記3D環境の一部を示す、ことと、
少なくとも部分的に、前記疎追跡マップおよび前記メタデータに基づいて、前記稠密マップの少なくとも一部を読み出すべきかどうかを決定することと
を含む、プロセッサと
を備える、電子デバイス。 - 前記稠密マップのメタデータは、品質メトリックを備え、前記品質メトリックは、前記稠密マップ内のメッシュブロックの数と、最後の深度画像が前記稠密マップの中に融合されたときの時間を示すタイムスタンプとを示し、
前記稠密マップの少なくとも一部を取得すべきかどうかを決定することは、少なくとも部分的に、前記稠密マップの品質メトリックと、1つまたはそれを上回る稠密の異なるマップの品質メトリックとに基づく、
請求項21に記載の電子デバイス。 - 少なくとも部分的に、前記稠密マップの少なくとも一部と、前記表面または深度情報の1つまたはそれを上回る集合のうちの少なくとも1つとに基づいて、ローカルでマージされたマップを算出することをさらに含み、前記表面または深度情報の1つまたはそれを上回る集合のうちの少なくとも1つは、前記稠密マップの少なくとも一部内に表されない、請求項21に記載の電子デバイス。
- 前記行為のセットはさらに、
少なくとも部分的に、前記電子デバイスの姿勢に基づいて、その中に前記電子デバイスが移動しているエリアを決定することと、
前記エリアの表面情報が、前記稠密マップ内で利用可能であるが、前記デバイス上ではそうではないことが決定されると、前記エリアの表面情報をダウンロードすることであって、前記稠密マップは、疎追跡マップ内の持続姿勢と関連付けられる複数のサブ領域を備え、前記エリアに対応する1つまたはそれを上回るサブ領域は、少なくとも部分的に、前記電子デバイスの姿勢と前記サブ領域と関連付けられる1つまたはそれを上回る持続姿勢との間の個別の距離に基づく順序でダウンロードされる、ことと
を含む、請求項21に記載の電子デバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062982694P | 2020-02-27 | 2020-02-27 | |
US62/982,694 | 2020-02-27 | ||
PCT/US2021/019693 WO2021173850A1 (en) | 2020-02-27 | 2021-02-25 | Cross reality system for large scale environment reconstruction |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023515577A true JP2023515577A (ja) | 2023-04-13 |
Family
ID=77492025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022551291A Pending JP2023515577A (ja) | 2020-02-27 | 2021-02-25 | 大規模環境再構築のためのクロスリアリティシステム |
Country Status (5)
Country | Link |
---|---|
US (3) | US11501489B2 (ja) |
EP (1) | EP4111293A4 (ja) |
JP (1) | JP2023515577A (ja) |
CN (1) | CN115244493A (ja) |
WO (1) | WO2021173850A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11688073B2 (en) * | 2020-04-14 | 2023-06-27 | Samsung Electronics Co., Ltd. | Method and system for depth map reconstruction |
JP7379299B2 (ja) * | 2020-08-28 | 2023-11-14 | 株式会社東芝 | 位置姿勢推定装置、位置姿勢推定方法及びプログラム |
US11522945B2 (en) * | 2020-10-20 | 2022-12-06 | Iris Tech Inc. | System for providing synchronized sharing of augmented reality content in real time across multiple devices |
US11615594B2 (en) | 2021-01-21 | 2023-03-28 | Samsung Electronics Co., Ltd. | Systems and methods for reconstruction of dense depth maps |
US11720165B2 (en) * | 2021-03-25 | 2023-08-08 | Comcast Cable Communications, Llc | Multi-party location-based VR shared space usage optimization |
TWI779842B (zh) * | 2021-09-22 | 2022-10-01 | 宏碁股份有限公司 | 立體顯示裝置及其顯示方法 |
WO2023091131A1 (en) * | 2021-11-17 | 2023-05-25 | Innopeak Technology, Inc. | Methods and systems for retrieving images based on semantic plane features |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7002551B2 (en) * | 2002-09-25 | 2006-02-21 | Hrl Laboratories, Llc | Optical see-through augmented reality modified-scale display |
US20100045701A1 (en) * | 2008-08-22 | 2010-02-25 | Cybernet Systems Corporation | Automatic mapping of augmented reality fiducials |
US20100208033A1 (en) * | 2009-02-13 | 2010-08-19 | Microsoft Corporation | Personal Media Landscapes in Mixed Reality |
US8454425B2 (en) * | 2009-09-08 | 2013-06-04 | Aristocrat Technologies Australia Pty Limited | Gaming system and method of gaming |
US8587583B2 (en) | 2011-01-31 | 2013-11-19 | Microsoft Corporation | Three-dimensional environment reconstruction |
US8711206B2 (en) * | 2011-01-31 | 2014-04-29 | Microsoft Corporation | Mobile camera localization using depth maps |
CN107656615B (zh) * | 2011-05-06 | 2021-09-14 | 奇跃公司 | 大量同时远程数字呈现世界 |
US9578226B2 (en) * | 2012-04-12 | 2017-02-21 | Qualcomm Incorporated | Photometric registration from arbitrary geometry for augmented reality |
US9251590B2 (en) * | 2013-01-24 | 2016-02-02 | Microsoft Technology Licensing, Llc | Camera pose estimation for 3D reconstruction |
WO2014160342A1 (en) * | 2013-03-13 | 2014-10-02 | The University Of North Carolina At Chapel Hill | Low latency stabilization for head-worn displays |
US10262462B2 (en) * | 2014-04-18 | 2019-04-16 | Magic Leap, Inc. | Systems and methods for augmented and virtual reality |
US9984498B2 (en) * | 2013-07-17 | 2018-05-29 | Microsoft Technology Licensing, Llc | Sparse GPU voxelization for 3D surface reconstruction |
US10203762B2 (en) * | 2014-03-11 | 2019-02-12 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US9754419B2 (en) * | 2014-11-16 | 2017-09-05 | Eonite Perception Inc. | Systems and methods for augmented reality preparation, processing, and application |
KR102622571B1 (ko) * | 2015-02-10 | 2024-01-09 | 모빌아이 비젼 테크놀로지스 엘티디. | 자율 주행을 위한 약도 |
US9304003B1 (en) * | 2015-03-18 | 2016-04-05 | Microsoft Technology Licensing, Llc | Augmented reality navigation |
US10268740B2 (en) * | 2015-10-14 | 2019-04-23 | Tharmalingam Satkunarajah | 3D analytics actionable solution support system and apparatus |
US9978180B2 (en) * | 2016-01-25 | 2018-05-22 | Microsoft Technology Licensing, Llc | Frame projection for augmented reality environments |
US10373380B2 (en) * | 2016-02-18 | 2019-08-06 | Intel Corporation | 3-dimensional scene analysis for augmented reality operations |
KR20230098927A (ko) | 2016-03-31 | 2023-07-04 | 매직 립, 인코포레이티드 | 포즈들 및 멀티-dof 제어기들을 사용하는 3d 가상 객체들과상호작용들 |
US10395117B1 (en) * | 2016-08-29 | 2019-08-27 | Trifo, Inc. | Visual-inertial positional awareness for autonomous and non-autonomous tracking |
US10162362B2 (en) * | 2016-08-29 | 2018-12-25 | PerceptIn, Inc. | Fault tolerance to provide robust tracking for autonomous positional awareness |
WO2019152617A1 (en) * | 2018-02-03 | 2019-08-08 | The Johns Hopkins University | Calibration system and method to align a 3d virtual scene and 3d real world for a stereoscopic head-mounted display |
CN108416840B (zh) * | 2018-03-14 | 2020-02-18 | 大连理工大学 | 一种基于单目相机的三维场景稠密重建方法 |
JP7309849B2 (ja) * | 2018-07-24 | 2023-07-18 | マジック リープ, インコーポレイテッド | 画像ディスプレイデバイスの位置特定マップを決定および/または評価するための方法および装置 |
US11227435B2 (en) * | 2018-08-13 | 2022-01-18 | Magic Leap, Inc. | Cross reality system |
-
2021
- 2021-02-25 US US17/185,558 patent/US11501489B2/en active Active
- 2021-02-25 CN CN202180017245.3A patent/CN115244493A/zh active Pending
- 2021-02-25 WO PCT/US2021/019693 patent/WO2021173850A1/en unknown
- 2021-02-25 JP JP2022551291A patent/JP2023515577A/ja active Pending
- 2021-02-25 EP EP21760417.2A patent/EP4111293A4/en active Pending
-
2022
- 2022-09-21 US US17/949,599 patent/US11694394B2/en active Active
-
2023
- 2023-05-16 US US18/318,528 patent/US11967021B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11501489B2 (en) | 2022-11-15 |
US20210279949A1 (en) | 2021-09-09 |
WO2021173850A1 (en) | 2021-09-02 |
US20230290052A1 (en) | 2023-09-14 |
EP4111293A1 (en) | 2023-01-04 |
CN115244493A (zh) | 2022-10-25 |
US11694394B2 (en) | 2023-07-04 |
EP4111293A4 (en) | 2023-09-06 |
US11967021B2 (en) | 2024-04-23 |
US20230013511A1 (en) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7445642B2 (ja) | クロスリアリティシステム | |
US11568605B2 (en) | Cross reality system with localization service | |
US20220130120A1 (en) | Cross reality system supporting multiple device types | |
US20230119217A1 (en) | Cross reality system with fast localization | |
JP2023514205A (ja) | 正確な共有マップを伴うクロスリアリティシステム | |
JP2023514207A (ja) | 位置特定に関するジオロケーション情報の優先順位化を伴うクロスリアリティシステム | |
JP2023504570A (ja) | 仮想コンテンツの簡略化されたプログラミングを伴うクロスリアリティシステム | |
JP2023504775A (ja) | 位置特定サービスおよび共有場所ベースのコンテンツを伴うクロスリアリティシステム | |
JP2023514206A (ja) | 大規模環境のためのクロスリアリティシステム | |
JP2022551735A (ja) | 無線フィンガプリントを用いたクロスリアリティシステム | |
JP2023524446A (ja) | 大規模環境のためのクロスリアリティシステム | |
JP2023514208A (ja) | マルチ分解能フレーム記述子を使用したマップ処理を伴うクロスリアリティシステム | |
JP2023501952A (ja) | 持続座標フレームについての品質情報を伴うクロスリアリティシステム | |
JP2023515796A (ja) | Wifi/gpsベースのマップマージを伴うクロスリアリティシステム | |
US11694394B2 (en) | Cross reality system for large scale environment reconstruction | |
JP2022509731A (ja) | クロスリアリティシステム | |
JP2023515523A (ja) | 位置特定正確度のためのバッファを伴うクロスリアリティシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240213 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20240213 |