JP2023514206A - 大規模環境のためのクロスリアリティシステム - Google Patents
大規模環境のためのクロスリアリティシステム Download PDFInfo
- Publication number
- JP2023514206A JP2023514206A JP2022548662A JP2022548662A JP2023514206A JP 2023514206 A JP2023514206 A JP 2023514206A JP 2022548662 A JP2022548662 A JP 2022548662A JP 2022548662 A JP2022548662 A JP 2022548662A JP 2023514206 A JP2023514206 A JP 2023514206A
- Authority
- JP
- Japan
- Prior art keywords
- map
- features
- maps
- user
- coordinate frame
- 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
- 238000013528 artificial neural network Methods 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims description 226
- 230000002085 persistent effect Effects 0.000 claims description 184
- 230000009466 transformation Effects 0.000 claims description 94
- 230000004807 localization Effects 0.000 claims description 85
- 238000013442 quality metrics Methods 0.000 claims description 36
- 230000002688 persistence Effects 0.000 claims description 28
- 239000013598 vector Substances 0.000 claims description 28
- 238000012549 training Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 17
- 230000001131 transforming effect Effects 0.000 claims description 7
- 238000009826 distribution Methods 0.000 claims description 4
- 238000009877 rendering Methods 0.000 abstract description 24
- 210000003128 head Anatomy 0.000 description 180
- 238000012545 processing Methods 0.000 description 98
- 230000008569 process Effects 0.000 description 87
- 238000010586 diagram Methods 0.000 description 74
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 56
- 238000003860 storage Methods 0.000 description 44
- 230000002459 sustained effect Effects 0.000 description 42
- 238000000844 transformation Methods 0.000 description 38
- 230000000875 corresponding effect Effects 0.000 description 33
- 101150064138 MAP1 gene Proteins 0.000 description 30
- 238000001914 filtration Methods 0.000 description 25
- 230000033001 locomotion Effects 0.000 description 24
- 230000015654 memory Effects 0.000 description 22
- 230000008447 perception Effects 0.000 description 22
- 239000000872 buffer Substances 0.000 description 20
- 238000005259 measurement Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 19
- 230000005484 gravity Effects 0.000 description 19
- 210000001747 pupil Anatomy 0.000 description 17
- 230000008859 change Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 14
- 238000013519 translation Methods 0.000 description 13
- 230000014616 translation Effects 0.000 description 13
- 210000001525 retina Anatomy 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 11
- 101150009249 MAP2 gene Proteins 0.000 description 10
- 238000001514 detection method Methods 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 10
- 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
- 238000004441 surface measurement Methods 0.000 description 9
- 230000003190 augmentative effect Effects 0.000 description 8
- 238000000605 extraction Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000004364 calculation 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
- 230000010354 integration Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000000717 retained effect Effects 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 230000001976 improved effect Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011084 recovery Methods 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
- 230000004075 alteration Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000004418 eye rotation Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 229910001416 lithium ion Inorganic materials 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 101100206190 Arabidopsis thaliana TCP20 gene Proteins 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 101100082494 Oryza sativa subsp. japonica PCF1 gene Proteins 0.000 description 2
- 101100045761 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) TFC4 gene Proteins 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000009795 derivation Methods 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
- 238000010191 image analysis Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 239000003826 tablet Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 241000256837 Apidae Species 0.000 description 1
- 241000473391 Archosargus rhomboidalis Species 0.000 description 1
- 101100459256 Cyprinus carpio myca gene Proteins 0.000 description 1
- 101100459261 Cyprinus carpio mycb gene Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 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
- 239000007943 implant Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 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
- 230000001737 promoting effect Effects 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
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 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
Images
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/98—Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
- G06V10/993—Evaluation of the quality of the acquired pattern
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/38—Services specially adapted for particular environments, situations or purposes for collecting sensor information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
クロスリアリティシステムが、複数のデバイスのいずれかが、効率的かつ正確に、非常に大規模な環境の以前に存続していたマップにアクセスし、それらのマップに関連して規定された仮想コンテンツをレンダリングすることを可能にする。クロスリアリティシステムは、迅速に、ポータブルデバイスを用いて入手された画像から導出される特徴の2Dセットが、環境マップの3D特徴のセットにマッチングするかどうかを決定し、該当する場合、特徴セットの相対的姿勢を決定し得る。姿勢は、迅速および正確に、ポータブルデバイスを環境マップに対して位置特定する際に使用されてもよい。2Dおよび3D特徴セット内の対の特徴は、特徴記述子をマッチングさせることに基づいて、識別されてもよく、マッチングの品質を査定するように訓練されるニューラルネットワーク内でスコア化されてもよい。
Description
(関連出願の相互参照)
本願は、参照することによってその全体として本明細書に組み込まれる、2020年2月13日に出願され、「CROSS REALITY SYSTEM FOR LARGE SCALE ENVIRONMENT」と題された、米国仮特許出願第62/976,129号の優先権および利益を主張する。
本願は、参照することによってその全体として本明細書に組み込まれる、2020年2月13日に出願され、「CROSS REALITY SYSTEM FOR LARGE SCALE ENVIRONMENT」と題された、米国仮特許出願第62/976,129号の優先権および利益を主張する。
本願は、概して、クロスリアリティシステムに関する。
コンピュータは、ヒューマンユーザインターフェースを制御し、ユーザによって知覚されるにつれて、XR環境の一部または全部がコンピュータによって生成される、クロスリアリティ(XR)環境を作成し得る。これらのXR環境は、XR環境の一部または全部が、部分的に、環境を説明するデータを使用して、コンピュータによって生成され得る、仮想現実(VR)、拡張現実(AR)、および複合現実(MR)環境であり得る。本データは、例えば、ユーザが、物理的世界の一部として、感知または知覚し、その結果、ユーザが、仮想オブジェクトと相互作用し得るようにレンダリングされ得る、仮想オブジェクトを説明し得る。ユーザは、例えば、頭部搭載型ディスプレイデバイス等のユーザインターフェースデバイスを通してレンダリングおよび提示されているデータの結果として、これらの仮想オブジェクトを体験し得る。データは、ユーザに見えるように表示され得る、またはユーザに聞こえるように再生される、オーディオを制御し得る、または触知的(または触覚的)インターフェースを制御し、ユーザが、仮想オブジェクトを感じるにつれて、ユーザが感知または知覚する、タッチ感覚を体験することを可能にし得る。
XRシステムは、科学的可視化、医療訓練、工学設計、およびプロトタイプ化、遠隔操作およびテレプレゼンス、および個人的娯楽の分野に及ぶ、多くの用途のために有用であり得る。ARおよびMRは、VRと対照的に、物理的世界の実オブジェクトと関連して、1つまたはそれを上回るオブジェクトを含む。実オブジェクトと相互作用する、仮想オブジェクトの体験は、XRシステムを使用する際、ユーザの享受を大幅に向上させ、また、物理的世界が改変され得る様子についての現実的かつ容易に理解可能な情報を提示する、種々の用途のための可能性を広げる。
仮想コンテンツを現実的にレンダリングするために、XRシステムは、システムのユーザの周囲の物理的世界の表現を構築し得る。本表現は、例えば、XRシステムの一部を形成する、ウェアラブルデバイス上のセンサを用いて入手された処理画像によって構築されてもよい。そのようなシステムでは、ユーザは、システムがその環境の表現を構築するために十分な情報を入手するまで、ユーザがXRシステムを使用することを意図する部屋または他の物理的環境を見て回ることによって、初期化ルーチンを実施し得る。システムが動作し、ユーザが環境の周囲を、または他の環境へと動き回るにつれて、ウェアラブルデバイス上のセンサは、付加的情報を入手し、物理的世界の表現を拡張または更新し得る。
本願の側面は、クロスリアリティ(XR)場面を提供するための方法および装置に関する。本明細書に説明される技法は、ともに、別個に、または任意の好適な組み合わせにおいて、使用されてもよい。
いくつかの実施形態は、クロスリアリティシステム内で動作するように構成される、電子デバイスに関する。電子デバイスは、デバイス座標フレームを有する。電子デバイスは、3次元(3D)環境についての情報を捕捉するように構成される、1つまたはそれを上回るセンサであって、捕捉された情報は、複数の画像を備える、1つまたはそれを上回るセンサと、コンピュータ実行可能命令を実行するように構成される、少なくとも1つのプロセッサとを含む。コンピュータ実行可能命令は、複数の特徴を3D環境の複数の画像のうちの1つまたはそれを上回るものから抽出するステップと、抽出された特徴毎に、特徴を表す情報を、ネットワークを経由して、位置特定サービスに送信するステップと、位置特定サービスから、デバイス座標フレームを第2の座標フレームに関連させる少なくとも1つの変換を受信するステップとのための命令を備える。
いくつかの実施形態では、電子デバイスは、ディスプレイを備える。コンピュータ実行可能命令は、ディスプレイ上の第2の座標フレーム内に規定された場所を有する、仮想コンテンツを、少なくとも部分的に、少なくとも1つの変換の変換に基づいて算出された位置にレンダリングするための命令を備える。
いくつかの実施形態では、抽出された特徴を表す情報は、個々の特徴に関する記述子を備える。
いくつかの実施形態では、複数の特徴は、電子デバイスの少なくとも2つのセンサによって捕捉された複数の画像から抽出される。
いくつかの実施形態では、少なくとも2つのセンサはそれぞれ、個別のセンサ座標フレームと関連付けられる。コンピュータ実行可能命令はさらに、個別のセンサ座標フレームからの複数の画像から抽出された特徴をデバイス座標フレームに変換するための命令を備える。
いくつかの実施形態では、1つまたはそれを上回るセンサは、個別のセンサ座標フレームを有する。コンピュータ実行可能命令は、電子デバイス上の1つまたはそれを上回るセンサの場所に基づいて、センサ座標フレームを算出するための命令を備える。
いくつかの実施形態では、電子デバイスは、ディスプレイを備える。コンピュータ実行可能命令は、ディスプレイに対する1つまたはそれを上回るセンサの場所に基づいて、センサ座標フレームを算出するための命令を備える。
いくつかの実施形態では、第1のベクトルは、単位法線ベクトルである。
いくつかの実施形態では、情報は、特徴を備える画像を捕捉した、センサのセンサ座標フレーム内の特徴の位置を示す、第1のベクトルと、特徴を備える画像を捕捉した、センサのセンサ座標フレーム内の特徴の位置を示す、第2のベクトルとを備える。
いくつかの実施形態は、持続マップのデータベース内の持続マップに対する仮想コンテンツの位置の仕様をサポートする、XRシステムに関する。本システムは、ポータブル電子デバイスから、ポータブル電子デバイスの3次元(3D)環境内の特徴のセットについての情報を受信するように構成される、通信コンポーネントと、通信コンポーネントに接続される、位置特定コンポーネントであって、特徴のセットを、それぞれ、受信された特徴および持続特徴を備える、対のマッチングされた特徴を提供する、持続マップのデータベース内の持続特徴に対してマッチングさせ、対のマッチングされた特徴に関する品質メトリックを算出し、品質メトリックは、マッチングされた特徴が3D環境内の同一特徴を表す、尤度を示し、マッチングされた対応およびマッチングされた対応に関して算出された品質メトリックに基づいて、ポータブル電子デバイスのデバイス座標フレームと持続マップの規準座標フレーム間の変換を生成するように構成される、位置特定コンポーネントとを含む。
いくつかの実施形態では、位置特定コンポーネントはさらに、変換をポータブル電子デバイスに送信するように構成される。
いくつかの実施形態では、通信コンポーネントはさらに、ポータブル電子デバイスから、特徴のセットを備える画像を捕捉したセンサの個別のセンサ座標フレーム内に表される、特徴のセットの特徴に関する位置付け情報を受信するように構成される。
いくつかの実施形態では、位置特定コンポーネントは、特徴のセットを備える画像を捕捉したセンサの個別のセンサ座標フレーム内に表される、特徴のセットの特徴に関する位置付け情報を算出するように構成される。
いくつかの実施形態では、位置特定コンポーネントは、ポータブル電子デバイスのデバイス座標フレームと持続マップの規準座標フレームとの間の変換を生成するように構成される、姿勢推定コンポーネントを備える。
いくつかの実施形態では、姿勢推定コンポーネントは、マッチングされた対応に関する算出された品質メトリックに基づいて、マッチングされた特徴のサブセットを選択するように構成される。
いくつかの実施形態では、姿勢推定コンポーネントは、選択されたサブセットに基づいて、変換を生成するように構成される。
いくつかの実施形態では、位置特定コンポーネントは、マッチングされた特徴に関する品質メトリックを算出するように構成される、人工ニューラルネットワークを備える。
いくつかの実施形態では、ニューラルネットワークは、第1の複数の多層パーセプトロンを備える、埋込層であって、第1の複数の多層パーセプトロンは、マッチングされた特徴を受信し、個々のマッチングされた特徴のエンコーディングされたバージョンを提供するように構成され、エンコーディングされたバージョンは、受信された特徴より高い次元を有する、埋込層と、要素毎総和ブロックによって接続される、複数の残差ネットワークブロックを備える、中間層であって、要素毎総和ブロックは、上方に隣接する残差ネットワークブロックへの入力およびそこからの出力を受信するように構成される、中間層と、個々のトリガブロックに接続される、第2の複数の多層パーセプトロンを備える、埋込層であって、第2の複数の多層パーセプトロンは、対応のデコーディングされたバージョンを提供するように構成され、デコーディングされたバージョンは、受信された対応と同一寸法を有し、トリガブロックは、マッチングされた特徴に関する予測される品質メトリックを提供するように構成される、埋込層とを備える。
いくつかの実施形態では、複数の残差ネットワークブロックはそれぞれ、複数の多層パーセプトロンと、複数の多層パーセプトロンの出力の分布を正規化するように構成される、サブブロックとを備える。
いくつかの実施形態では、通信コンポーネントはさらに、特徴のセットを備える画像を捕捉したセンサに関するデバイス座標フレーム内の位置付け情報を受信するように構成される。
いくつかの実施形態は、ポータブル電子デバイス上で収集された少なくとも1つの画像から導出される第1のセットの特徴と記憶されたマップ内の第2のセットの特徴との間の姿勢を算出する方法に関する。本方法は、第1のセットの特徴に関する記述子を算出するステップと、第1のセットに関する算出された記述子と第2のセットの特徴に関する記述子の類似性に基づいて、複数の対のマッチングされた特徴を識別するステップと、複数の対のマッチングされた特徴に関する品質メトリックを算出するステップと、品質メトリックに基づいてサブセット内への含有をバイアスするように、品質メトリックに基づいてマッチングされた特徴のサブセットを選択するステップと、サブセット内に含まれる第1のセットの特徴とサブセット内に含まれる第2のセットの特徴の相対的姿勢を決定するステップと、決定された姿勢に基づいて、第2のセットの特徴にマッチングする、第1のセットの特徴のうちの特徴の少なくとも一部を変換するステップと、第1のセットの変換された特徴と第2のセット内のマッチングする特徴の整合に基づいて、決定された姿勢の正確度を決定するステップとを含む。
いくつかの実施形態では、本方法はさらに、算出された品質メトリックに基づいて、マッチングされた特徴のサブセットを反復的に形成し、反復的に形成されたサブセットに関する姿勢を決定するステップと、決定された姿勢の決定された正確度に基づいて、決定された姿勢を選択するステップとを含む。
いくつかの実施形態では、ポータブル電子デバイスは、決定された姿勢を10ミリ秒以内に受信する。
いくつかの実施形態では、20個未満のサブセットが、形成される。
いくつかの実施形態では、第1のセットの特徴は、100個以下の特徴を含む。
いくつかの実施形態は、持続マップのデータベース内の持続マップに対する仮想コンテンツの位置の仕様をサポートする、XRシステムを使用するために、ニューラルネットワークを訓練する方法に関する。本方法は、対のマッチングされた特徴のセットを受信するステップであって、各対のマッチングされた特徴は、第1の座標フレーム内の2D特徴、第2の座標フレーム内の3D特徴、および第1の座標フレームに投影された3D特徴と第1の座標フレーム内の2D特徴との間の位置誤差を示す、グラウンドトゥルース加重を備える、ステップと、対のマッチングされた特徴のセットに関する品質メトリックを予測するステップと、グラウンドトゥルース加重および推定される品質メトリックに基づいて、損失を算出するステップと、算出された損失に基づいて、ニューラルネットワークを修正するステップとを含む。
前述の説明は、例証として提供され、限定することを意図するものではない。
添付の図面は、縮尺通りに描かれることを意図していない。図面では、種々の図に図示される、各同じまたはほぼ同じコンポーネントは、同様の数字で表される。明確性の目的のために、全てのコンポーネントが、全ての図面において標識されているわけではない。
詳細な説明
本明細書に説明されるものは、XR場面を提供するための方法および装置である。現実的XR体験を複数のユーザに提供するために、XRシステムは、仮想オブジェクトの場所を実オブジェクトに関連して正しく相関させるために、物理的世界内のユーザの場所を把握しなければならない。本発明者らは、短縮された時間および改良された正確度を伴って、XRデバイスを大規模および非常に大規模な環境(例えば、近所、都市、国、世界)内で位置特定する、方法および装置を認識し、その真価を認めた。
本明細書に説明されるものは、XR場面を提供するための方法および装置である。現実的XR体験を複数のユーザに提供するために、XRシステムは、仮想オブジェクトの場所を実オブジェクトに関連して正しく相関させるために、物理的世界内のユーザの場所を把握しなければならない。本発明者らは、短縮された時間および改良された正確度を伴って、XRデバイスを大規模および非常に大規模な環境(例えば、近所、都市、国、世界)内で位置特定する、方法および装置を認識し、その真価を認めた。
XRシステムは、XRシステムのユーザによって装着されるXRデバイスの一部である、センサを用いて収集された画像および/または深度情報から作成され得る、場面の環境マップを構築してもよい。各XRデバイスは、デバイスが動作するにつれて収集された1つまたはそれを上回る画像からの情報を統合することによって、その物理的環境のローカルマップを展開してもよい。いくつかの実施形態では、そのマップの座標系は、デバイスが最初に物理的世界を走査し始める(例えば、新しいセッションを開始する)と、デバイスの位置および/または配向に結び付けられる。デバイスのその位置および/または配向は、異なるセッションが、それぞれ、環境を走査するセンサを伴う、その独自のウェアラブルデバイスを伴う、異なるユーザ、または同一デバイスを異なる時間に使用する、同一ユーザと関連付けられるかどうかにかかわらず、ユーザがXRシステムと相互作用するにつれて、セッション毎に変化し得る。
XRシステムは、持続空間情報に基づいて、動作を有効にするように、1つまたはそれを上回る技法を実装してもよい。技法は、例えば、持続空間情報が、XRシステムの複数のユーザのいずれかによって作成される、記憶される、読み出されることを可能にすることによって、単一または複数のユーザのためのより算出上効率的かつ没入型の体験のためのXR場面を提供してもよい。持続空間情報はまた、算出上効率的方法において、1つまたはそれを上回るXRデバイスのそれぞれ上の頭部姿勢を迅速に復元およびリセットすることを可能にし得る。
持続空間情報は、持続マップによって表されてもよい。持続マップは、遠隔記憶媒体(例えば、クラウド)内に記憶されてもよい。例えば、ユーザによって装着されるウェアラブルデバイスは、オンにされた後、クラウド記憶装置等の持続記憶装置から、以前に作成および記憶された適切なマップを読み出してもよい。その以前に記憶されたマップは、以前のセッションの間、ユーザのウェアラブルデバイス上のセンサを用いて収集された環境についてのデータに基づいていてもよい。記憶されたマップを読み出すことは、ウェアラブルデバイス上のセンサを用いて物理的世界の走査を完了せずに、ウェアラブルデバイスの使用を有効にし得る。代替として、または加えて、システム/デバイスは、物理的世界の新しい領域に進入することに応じて、同様に、適切な記憶されたマップを読み出してもよい。
記憶されたマップは、それに対して各XRデバイス上のローカル基準フレームが関連し得る、規準形態で表されてもよい。マルチデバイスXRシステムでは、1つのデバイスによってアクセスされる記憶されたマップは、別のデバイスによって作成および記憶されていてもよく、および/または記憶されたマップによって表される物理的世界の少なくとも一部内に事前に存在する、複数のウェアラブルデバイス上のセンサによって収集された物理的世界についてのデータを集約することによって構築されていてもよい。
いくつかの実施形態では、持続空間情報は、ユーザ間で、およびアプリケーションを含む、分散型コンポーネント間で容易に共有され得る、方法で表されてもよい。規準マップは、例えば、持続座標フレーム(PCF)として、物理的世界についての情報を提供してもよい。PCFは、物理的世界内で認識される特徴のセットに基づいて、定義されてもよい。特徴は、それらがXRシステムのユーザセッション毎に同一である可能性が高いように選択されてもよい。PCFは、それらが効率的に処理および転送され得るように、疎らに存在し、物理的世界についての利用可能な情報の全て未満を提供してもよい。持続空間情報を処理するための技法は、1つまたはそれを上回るセッションを横断して、1つまたはそれを上回るデバイスのローカル座標系に基づいて、動的マップを作成するステップを含んでもよい。これらのマップは、マップを形成する際に使用される画像内で検出された特徴点のサブセットに基づく、物理的世界を表す、疎マップであってもよい。持続座標フレーム(PCF)は、疎マップから生成されてもよく、例えば、アプリケーションプログラミングインターフェース(API)を介して、XRアプリケーションにエクスポーズされてもよい。これらの能力は、1つまたはそれを上回るXRデバイスによって作成された複数のマップをマージすることによって規準マップを形成するための技法によってサポートされてもよい。
デバイス毎に規準マップとローカルマップとの間の関係が、位置特定プロセスを通して決定されてもよい。その位置特定プロセスは、選択され、デバイスに送信される、規準マップのセットに基づいて、各XRデバイス上で実施されてもよい。代替として、または加えて、位置特定サービスは、クラウド内に実装され得るような遠隔プロセッサ上に提供されてもよい。
物理的世界についてのデータを複数のデバイス間で共有することは、仮想コンテンツの共有ユーザ体験を有効にし得る。例えば、同一の記憶されたマップへのアクセスを有する、2つのXRデバイスは両方とも、記憶されたマップに対して位置特定され得る。いったん位置特定されると、ユーザデバイスは、その場所をユーザデバイスによって維持される基準フレームに変換することによって、記憶されたマップへの参照によって規定された場所を有する、仮想コンテンツをレンダリングしてもよい。ユーザデバイスは、本ローカル基準フレームを使用して、ユーザデバイスのディスプレイを制御し、仮想コンテンツを規定された場所にレンダリングしてもよい。
これらおよび他の機能をサポートするために、XRシステムは、ユーザデバイス上のセンサを用いて収集された物理的世界についてのデータに基づいて、1つまたはそれを上回る記憶されたマップを含む、持続空間情報を展開、維持、および使用する、コンポーネントを含んでもよい。これらのコンポーネントは、XRシステムを横断して分散されてもよく、一部は、例えば、ユーザデバイスの頭部搭載型部分上で動作する。他のコンポーネントは、ローカルまたはパーソナルエリアネットワークを経由して頭部搭載型部分に結合される、ユーザと関連付けられるコンピュータ上で動作してもよい。さらにその他は、広域ネットワークを経由してアクセス可能な1つまたはそれを上回るサーバ等、遠隔場所で動作してもよい。
これらのコンポーネントは、例えば、1つまたはそれを上回るユーザデバイスによって収集された物理的世界についての情報から、持続マップとして、または持続マップ内に記憶されるために十分な品質である情報を識別し得る、コンポーネントを含んでもよい。下記により詳細に説明される、そのようなコンポーネントの実施例は、マップマージコンポーネントである。そのようなコンポーネントは、例えば、ユーザデバイスからの入力を受信し、持続マップを更新するために使用される入力の部分の好適性を決定してもよい。マップマージコンポーネントは、例えば、ユーザデバイスによって作成されたローカルマップを部分に分裂させ、部分のうちの1つまたはそれを上回るものと持続マップのマージ可能性を決定し、認定されたマージ可能性基準を満たす部分を持続マップにマージしてもよい。マップマージコンポーネントはまた、例えば、持続マップとマージされないユーザデバイスからのローカルマップが別個の持続マップとなるようにレベル上げしてもよい。
別の実施例として、これらのコンポーネントは、ユーザデバイスによって提供される場所情報によって表される物理的世界の同一領域を表す可能性が高い、1つまたはそれを上回る持続マップの適切なセットを選択することを補助し得る、コンポーネントを含んでもよい。下記により詳細に説明される、そのようなコンポーネントの実施例は、マップランク付けおよびマップ選択コンポーネントである。そのようなコンポーネントは、例えば、入力をユーザデバイスから受信し、その中でそのデバイスが動作している、物理的世界の領域を表す可能性が高い、1つまたはそれを上回る持続マップを識別してもよい。マップランク付けコンポーネントは、例えば、仮想コンテンツをレンダリングする、環境についてのデータを集める、または他のアクションを実施するにつれて、そのローカルデバイスによって使用されるべき持続マップを選択することを補助し得る。マップランク付けコンポーネントは、代替として、または加えて、物理的世界についての付加的情報が1つまたはそれを上回るユーザデバイスによって収集されるにつれて更新されるべき持続マップを識別することを補助し得る。
さらに他のコンポーネントは、1つの基準フレームに関連して捕捉または記述される情報を別の基準フレームに変換する、変換を決定してもよい。例えば、センサが、それらのセンサから読み取られるデータが、装着者の頭部姿勢に対する物理的世界内のオブジェクトの場所を示すように、頭部搭載型ディスプレイに取り付けられてもよい。1つまたはそれを上回る変換が、その場所情報を持続環境マップと関連付けられる座標フレームに関連させるように適用されてもよい。同様に、持続環境マップの座標フレーム内に表されるとき、仮想オブジェクトがレンダリングされるべき場所を示す、データも、ユーザの頭部上のディスプレイの基準フレーム内にあるように、1つまたはそれを上回る変換を受けてもよい。下記により詳細に説明されるように、複数のそのような変換が存在してもよい。これらの変換は、それらが分散型システム内で効率的に更新および/または適用され得るように、XRシステムのコンポーネントを横断してパーティション化されてもよい。
いくつかの実施形態では、持続マップは、複数のユーザデバイスによって収集された情報から構築されてもよい。XRデバイスはそれぞれ、ローカル空間情報を捕捉し、種々の場所および時間においてXRデバイスのそれぞれのセンサによって収集された情報を用いて、別個の追跡マップを構築してもよい。各追跡マップは、それぞれ、複数の特徴を含み得る、実オブジェクトの特徴と関連付けられ得る、点を含んでもよい。潜在的に、持続マップを作成および維持するための入力を供給することに加え、追跡マップは、場面内のユーザの運動を追跡し、XRシステムが、ユーザのそのデバイス上の追跡マップによって確立される基準フレームに対する個別のユーザの頭部姿勢を推定することを可能にするために使用されてもよい。
マップの作成と頭部姿勢の推定との間の本共依存性は、有意な課題を構成する。実質的処理が、同時に、マップを作成し、頭部姿勢を推定するために要求され得る。処理は、待ち時間がユーザのためのXR体験をあまり現実的ではないものにするため、オブジェクトが場面内を移動するにつれて(例えば、カップをテーブル上で移動させる)、およびユーザが場面内を移動するにつれて迅速に遂行されなければならない。他方では、XRデバイスは、XRデバイスがユーザが快適に装着するために軽量であるべきであるため、限定された算出リソースを提供し得る。算出リソースの欠如は、センサの追加がまた、望ましくないことに、重量を追加するであろうため、より多くのセンサを用いて補償されることができない。さらに、より多くのセンサまたはより多くの算出リソースのいずれも、熱につながり、これは、XRデバイスの変形を生じさせ得る。
XRシステムは、より没入型のユーザ体験を提供するために、算出リソースの低使用量および/または短待ち時間を伴って、持続空間情報を作成、共有、および使用するように構成され得る。いくつかのそのような技法は、空間情報の効率的比較を有効にし得る。そのような比較は、例えば、位置特定の一部として生じてもよく、その中でローカルデバイスからの特徴のセットは、規準マップ内の特徴のセットにマッチングされる。同様に、マップマージプロセスでは、デバイスからの追跡マップ内の特徴の1つまたはそれを上回るセットを規準マップ内の対応する特徴にマッチングさせる試みが、行われてもよい。追跡マップを規準マップのセットの中に組み込むための後続処理は、その比較の結果に基づいてもよい。
いくつかの実施形態では、特徴点のセットの比較は、特徴記述子の使用を通して効率化されてもよい。記述子は、訓練されたニューラルネットワークによって割り当てられる、特徴の比較を有効にする、数値を有してもよい。物理的世界内の同一特徴点を表す可能性が高い、特徴は、マッチングする特徴点が、類似値を伴う記述子に基づいて、迅速に識別され得るように、類似値の特徴記述子を割り当てられる。
類似画像フレームを見出すステップはまた、全体として、数値記述子によって画像フレームを表すことによって、簡略化されてもよい。記述子は、画像内で識別された特徴のセットを記述子にマッピングする、変換を介して算出されてもよい。その変換は、訓練されたニューラルネットワーク内で実施されてもよい。いくつかの実施形態では、入力としてニューラルネットワークに供給される、特徴のセットは、例えば、持続する可能性が高い特徴を優先的に選択する、技法を使用して、画像から抽出された特徴のセットによってフィルタリングされてもよい。
画像フレームおよび記述子としての画像内の特徴点の表現は、新しい画像情報と記憶された画像情報の効率的マッチングを有効にする。XRシステムは、持続マップと併せて、持続マップの下層にある1つまたはそれを上回るフレームの記述子を記憶してもよい。ユーザデバイスによって入手されたローカル画像フレームも同様に、そのような記述子に変換されてもよい。ローカル画像フレームのものに類似する記述子を伴う、記憶されたマップを選択することによって、ユーザデバイスと同一物理的空間を表す可能性が高い1つまたはそれを上回る持続マップが、比較的に少量の処理を伴って、選択され得る。いくつかの実施形態では、記述子は、ローカルマップおよび持続マップ内のキーフレームに関して算出され、マップを比較するとき、処理をさらに低減させてもよい。そのような効率的比較は、例えば、ローカルデバイス内にロードするための持続マップを見出すステップを簡略化するため、またはローカルデバイスを用いて入手された画像情報に基づいて更新するための持続マップを見出すために使用されてもよい。
全体として、画像フレームを比較するための技法を用いても、特徴点のセットの比較は、それにもかかわらず、いくつかの動作のために使用され得、算出上集約的であり得る。例えば、マッチングするフレーム記述子を伴う、2つのフレームは、それらのフレーム内の特徴点のセット間に十分に低誤差を伴う対応を見出した後のみ、マッチングすると決定される。低誤差を伴う特徴点のセット間の対応を見出すことは、ローカルデバイスから受信された特徴点のセットが記憶されたマップにマッチングすることの確認としての役割を果たし得る。代替として、または加えて、比較は、それらの特徴点のセットを含有する2つのマップ間の変換が決定され得るように、特徴点のセットの整合につながり得る。逆に言えば、特徴点のセット間の対応が、閾値を上回る誤差を伴わずに、達成されることができないとき、ローカルデバイスからの特徴点は、それらの特徴点を含有するフレームに関する記述子が類似性を示すときでも、記憶されたマップ内のものにマッチングし得ない。マッチングを見出すことの失敗に続いて、処理は、マッチングする、他の特徴点のセットを見出し続けてもよい。
マッチングプロセスにおける不確実性は、デバイスからのものと記憶されたマップ内のものの特徴のセット間の好適なマッチングを見出すために、実質的処理を要求し得る。いくつかのシナリオでは、特徴フォーマットにおける差異は、不確実性を増加させ得、これは、付加的処理を要求する。例えば、位置特定のための要求の一部としてポータブルデバイスから送信され得るような特徴セットは、2次元画像から導出され得る。しかしながら、記憶されたマップは、3次元で定義された場所内に特徴を含有し得る。そのような異なる次元の特徴セットの比較は、3次元特徴点を2次元に投影するステップを伴い得る。本発明者らは、本投影プロセスが、マッチングすると見なされるために十分に低誤差を伴って対応する、特徴点のセットを識別するために要求される処理の量を増加させる、不確実性を作成することを認識および理解している。
さらに算出需要と相まって、持続マップ内の特徴点の数は、環境の規模が成長するにつれて増加し、これは、ひいては、十分な信頼度を伴って、2つの特徴点のセットがマッチングすることを決定するために比較され得る、特徴点のセットの数を増加させる。例えば、画像フレームは、マップの中に組み込まれる、数百個の特徴点を生じさせ得る。単一の部屋のマップは、多数のフレームを有し得る。ある建物は、多数の部屋を有し得る。ある地域は、通りおよび公園等の屋外エリアに加え、多数の建物を含み得る。ある都市は、多数の地域等を含み得る。検索空間を大記憶マップ内に限定する技法を用いても、大マップは、類似記述子を伴う、多数のフレームを有し得(例えば、多くの類似する見た目の机および椅子を伴う、大オフィスを表し得)、これは、ひいては、マッチングが存在するかどうかを決定するために、デバイスからの特徴のセットと環境の記憶されたマップ内の特徴点との間の多数の比較をもたらし得る。また、多数の特徴点のセットを比較するための実質的処理にもかかわらず、正確なマッチングが見出され得ないという、対応するリスクの増加も存在し得る。
特徴セットの比較を実施するために費やされる処理時間を低減させるために、各セット内の特徴のサブセットが、比較のために選択されてもよい。マッチングする特徴記述子は、各サブセット内への含有のための基準として使用されてもよい。対応が、マッチングする記述子を伴う特徴点のサブセット間に見出される場合、全体として特徴のセット点間の対応における誤差が、特徴のセット点がマッチングするかどうかを決定するために算出されてもよい。
マッチングする特徴点のセットを見出すための処理の量を低減させるために、特に、特徴点のセットを大エリアを網羅する環境マップにマッチングさせ、その処理がマッチングを見出さずに終了するリスクを低減させるように試みるとき、マッチングプロセスを実行するコンポーネントは、対の対応する特徴のマッチングの品質を査定するように構成される、人工ニューラルネットワークによって誘導されてもよい。人工ニューラルネットワークは、入力として、対の対応する特徴をとり、出力として、対の対応する特徴に関する品質メトリックを提供してもよい。品質メトリックは、対の対応する特徴が比較される特徴点のサブセット内に含まれる場合にマッチングする特徴のセットを見出す尤度を示してもよい。特徴点のサブセットを選択する際、品質スコアは、形成されるサブセットが、マッチングする特徴のセットを見出すことにつながる可能性がより高い、特徴の含有を目指してバイアスされるように、加重としての役割を果たし得る。低誤差を伴って対応する、特徴のセットは、より少ない処理を伴って見出され得る。
本明細書に説明される技法は、拡張または複合現実場面を提供する、限定された算出リソースを伴う、ウェアラブルまたはポータブルデバイスを含む、多くのタイプのデバイスとともに、かつ多くのタイプの場面のために、ともにまたは別個に使用されてもよい。いくつかの実施形態では、技法は、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を算出および/または決定するために使用され得る、慣性測定ユニットを含んでもよい。深度マップのための頭部姿勢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とともに記憶されてもよい。いくつかの実施形態では、深度マップ等の他の情報も、保存され得る。
いくつかの実施形態では、図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デバイスに送信されてもよい。いくつかの実施形態では、存続されるマップは、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を生成する実施例を図示する。図示される実施例では、PCF1は、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つまたはそれを上回る基準に基づいて、環境マップのセットをフィルタリングしてもよい。
いくつかの実施形態のいくつかの側面がこれまで説明されたが、種々の改変、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。一実施例として、実施形態は、拡張(AR)環境に関連して説明される。本明細書に説明される技法の一部または全部は、MR環境、より一般的には、他のXR環境およびVR環境内に適用されてもよいことを理解されたい。
別の実施例として、実施形態は、ウェアラブルデバイス等のデバイスに関連して説明される。本明細書に説明される技法の一部または全部は、ネットワーク(クラウド等)、離散アプリケーション、および/またはデバイス、ネットワーク、および離散アプリケーションの任意の好適な組み合わせを介して実装されてもよいことを理解されたい。
さらに、図29は、候補マップをフィルタリングし、高ランク付けマップのセットをもたらすために使用され得る、基準の実施例を提供する。他の基準が、説明される基準の代わりに、またはそれに加え、使用されてもよい。例えば、複数の候補マップが、あまり望ましくないマップをフィルタリング除去するために使用されるメトリックの類似値を有する場合、候補マップの特性が、候補マップとして留保される、またはフィルタリング除去されるマップを決定するために使用されてもよい。例えば、より大きいまたはより稠密な候補マップは、より小さい候補マップより優先されてもよい。いくつかの実施形態では、図27-28は、図29-34に説明されるシステムおよび方法の全部または一部を説明し得る。
図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内のPCFに関連する。いくつかの実施形態では、マップの原点、すなわち、原点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号は、頭部追跡を説明しており、参照することによってその全体として本明細書に組み込まれる。
遠隔位置特定
種々の実施形態は、遠隔リソースを利用して、個々のユーザおよび/またはユーザのグループ間の持続かつ一貫したクロスリアリティ体験を促進し得る。本発明者らは、本明細書に説明されるような規準マップを用いたXRデバイスの動作の利点が、図30に図示されているように、規準マップのセットをダウンロードせずに達成され得ることを認識および理解している。利点は、例えば、特徴および姿勢情報を、規準マップのセットを維持する、遠隔サービスに送信することによって達成されてもよい。規準マップを使用して、仮想コンテンツを規準マップに対して規定された場所に位置付けることを求める、デバイスは、遠隔サービスから、特徴と規準マップとの間の1つまたはそれを上回る変換を受信してもよい。それらの変換は、物理的世界内のそれらの特徴の位置についての情報を維持する、デバイス上において、仮想コンテンツを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デバイスを大規模な環境内においてリアルタイムで位置特定する際に生じ得るように、効率的かつ正確に、特徴点のマッチングセットを見出すための方法および装置である。故に、位置特定の一部としての特徴のマッチングセットが、高速および正確なマッチングにつながり得る、技法を例証するために本明細書に説明される。これらの技法のいくつかまたは全ては、マップマージプロセスの一部として、追跡マップの一部と規準マップとの間のマッチングを検索するとき等、他のコンテキストにおいて特徴のセットをマッチングさせるときに適用されてもよい。
XRデバイスを位置特定するステップは、XRデバイスによって捕捉された1つまたはそれを上回る画像からの2D特徴のセットと、記憶された規準マップ内の3Dマップ点であり得る、特徴点のセットとの間のマッチングを見出すために比較を行うことを要求し得る。大規模な環境のためのマップは、多数の3Dマップ点を含み得る。
3Dマップ点のうちのいくつかは、2D画像特徴と比較して、1日の間または異なる季節における異なる時間において捕捉され得る。異なる次元、異なる照明条件、および他の条件は、特徴のマッチングセットを正確に見出すことをより困難にする。例えば、大規模および非常に大規模な環境内における正確な位置特定は、正確な位置特定結果を提供するために、より多数の2D特徴のセットが比較されることを要求し得る。その結果、XRデバイスを大規模および非常に大規模な環境内において位置特定することは、より時間がかかり、より多くの演算能力を消費し、仮想コンテンツを表示する際に遅延を引き起こし、XR体験の現実性のレベルに影響を及ぼす。
本発明者らは、マッチング記述子を伴う、特徴のマッチングセットを使用して、特徴のサブセットを検索するサービスを用いることで、短縮された時間および改良された正確度を伴って、XRデバイスを大規模および非常に大規模な環境内において位置特定する、方法および装置を認識し、その真価を認めた。本システムは、サブセット内にマッチング記述を伴う、一対の特徴を含むことが、特徴のマッチングセットを見出すことにつながるであろう、尤度を査定する、コンポーネントを含んでもよい。
いくつかの実施形態では、コンポーネントによるマッチング特徴を用いた特徴のサブセットの選択の際に誘導される位置特定サービスは、いくつかの実施形態では、10ミリ秒、5ミリ秒、または2ミリ秒以下等、位置特定結果をリアルタイムで提供し得る。いくつかの実施形態では、コンポーネントによって誘導される位置特定サービスは、位置特定要求に応答するためのランタイムを、類似または改良された位置特定正確度を伴って、約10分の1に、例えば、100個の対応する特徴では、25msから3msまで短縮させ得る。いくつかの実施形態では、コンポーネントによって誘導される位置特定サービスは、マッチング記述子を用いて、特徴の1つのサブセットと特徴の別のサブセットを整合させる、変換を決定し得る、姿勢推定アルゴリズムによって起動される反復の回数を、類似または改良された位置特定正確度を伴って、約10分の1に、例えば、100回の反復から12回の反復まで低減させ得る。
位置特定サービスは、XRデバイス上、クラウド上、または両方上にあってもよい。いくつかの実施形態では、持続マップは、例えば、図26に関して上記に説明されるように、XRデバイスをマップ内で位置特定するために、XRデバイスにダウンロードされてもよい。いくつかの実施形態では、XRデバイスは、例えば、図61-63Cに関して上記に説明されるように、情報(例えば、2D特徴および/または関連付けられるメタデータ)を、位置特定サービスを含有する、クラウドにアップロードし、1つまたはそれを上回る持続マップ内のその場所を受信してもよい。いくつかの実施形態では、位置特定結果の決定は、ランダムサンプル共有項(RANSAC)アプローチに従って、対のマッチングされた特徴のセットを用いて行われてもよい。
そのような位置特定サービスは、候補マップ、フレーム記述子、または他の基準のセットを選択するための位置特定要求に関連して、場所メタデータの任意のうちの1つまたはそれを上回るタイプを受信および適用してもよい。これらの基準は、それに対して位置特定が試行され得る、1つまたはそれを上回る規準マップまたは規準マップのセグメントを選択するために使用されてもよい。深層キーフレーム記述子等の他の基準も、候補マップのセットからさらに絞り込む、またはそれに対して位置特定を試行すべき候補マップのセグメントを識別するために使用されてもよい。
そのような絞込に続いて、特徴レベル比較が、実施されてもよい。デバイスによって生成されたキーフレーム内の特徴のセットは、例えば、候補マップの識別されたセグメント内の特徴のセットと比較されてもよい。1つを上回る候補マップまたは候補マップの1つを上回る識別されたセグメントが存在するとき、デバイスからの特徴セットは、位置特定結果が決定される前に、複数の特徴のセットと比較されてもよい。比較は、全ての候補マップの全ての候補セグメントが処理されるまで、継続し得る。位置特定は、デバイスからの特徴セットに最良に対応する、候補マップからの特徴のセットが、ある閾値を下回る誤差を有する場合、成功と見なされ得る。代替として、または加えて、処理は、いったんある閾値を下回る誤差の対応を伴う、候補マップからの特徴のセットが、識別されると、完了し得る。それにもかかわらず、位置特定プロセスは、複数の特徴のセットを比較するステップを伴ってもよい。便宜上、1つのセットの処理が、説明される。
位置特定サービスは、1つまたはそれを上回る持続マップのセットに対して位置特定するための1つまたはそれを上回るXRデバイスからの要求に応答してもよい。要求は、デバイスの周囲の物理的世界の画像から抽出された2D特徴を含んでもよい。いくつかの実施形態では、画像は、デバイスのカメラ等の1つまたはそれを上回るセンサによって捕捉されてもよい。いくつかの実施形態では、XRデバイスからの特徴のセットは、複数のセンサによって同時に捕捉された情報に基づいてもよく、これは、特徴のマッチングセットを見出す速度および/または正確度を増加させ得る。
それらの2D特徴は、複数のセンサによって捕捉された2D特徴が、ともに処理され、位置特定結果を提供し得るように、XRデバイスによって使用される座標フレームに対して姿勢付きであってもよい。いくつかの実施形態では、位置特定サービスは、センサ付帯パラメータを2D特徴内に埋め込むことによって、複数のセンサからの2D特徴を統合してもよい。センサ付帯パラメータは、センサの物理的寸法、センサ間の距離、XRデバイスディスプレイの物理的寸法、XRデバイス上のセンサの場所等を含んでもよい。埋込を実装するために使用され得る、センサ付帯パラメータを表すための適切な変換は、較正プロセスを通して決定されてもよい。
2D特徴の本セットは、位置特定プロセスへの入力としての役割を果たし得る。位置特定サービスは、3D特徴のセットを候補マップから識別してもよい。3D特徴のセットは、2D特徴の記述子にマッチングする、特徴記述子に基づいて選択されてもよい。本発明者らは、マッチングされた対応のうちのいくつかが、真であって、特徴の2Dおよび3Dセット内の対応する特徴が、物理的世界内の同一特徴を表すことを意味し得る一方、マッチングされた対応のその他は、偽であって、特徴の2Dおよび3Dセット内の対応する特徴が、マッチング記述子を有するにもかかわらず、物理的世界内の同一特徴を表さないことを意味し得ることを認識および理解している。故に、対応の品質を査定し、高品質の対応する特徴の考慮を目指して、プロセスに加重することは、算出時間を短縮し、および/または位置特定結果の正確度を増加させ得る。
位置特定サービスは、対応する特徴の品質を査定するように構成される、コンポーネントを含んでもよい。位置特定サービスは、次いで、対の対応する特徴のサブセットのサブセットを処理することによって、2D特徴のセットと3D特徴のセットを整合させる、変換を識別してもよい。対の対応する特徴のサブセットのサブセットは、高品質を伴う対を使用すること目指して選択されてもよい。
いくつかの実施形態では、2つの特徴のセット間の変換を検索するステップは、算出上集約的であり得る。いくつかの実施形態では、位置特定サービスは、重力配向を使用して、2D特徴と3D特徴をマッチングさせるときに検索されるべき自由度を低減させてもよい。デバイスからの2D特徴および記憶されたマップからの3D特徴は両方とも、1つの座標が重力と整合される、座標フレーム内に表されてもよい。いくつかの実施形態では、位置特定サービスは、変換を検索するステップに先立って、重力と整合される2D特徴セットの座標が、同様に重力と整合される、3D特徴のセットの座標と整合するように、2D特徴のセットを回転させてもよい。代替として、または加えて、変換の任意の検索は、重力に対する特徴セットの整合を変化させるであろう、変換を除外してもよい。
本変換から、位置特定サービスは、その中で2D特徴が姿勢付きであった、そのローカル座標フレームを、そこから3D特徴のセットが取得された、持続マップの座標フレームに関連させるための変換を算出し、デバイスに返してもよい。
マッチングされた対応の品質を査定するように構成される、コンポーネントは、人工ニューラルネットワークを含んでもよい。ニューラルネットワークは、対の対応する特徴毎に、品質メトリックを提供するように訓練されてもよい。品質メトリックは、2D-3D特徴対が物理的世界内の同一特徴を識別する、尤度を示してもよい。いくつかの実施形態では、品質メトリックは、ゼロ~1の範囲内の確率であってもよく、例えば、1は、正しいマッチングを示し、ゼロは、誤ったマッチングを示す。
ニューラルネットワークは、2Dおよび3D特徴の両方として表される特徴点を有する、データセットで訓練されてもよい。訓練セットはまた、物理的世界内の異なる特徴を表すが、同一または類似記述子を有する、2Dおよび3D特徴を含んでもよい。そのようなデータセットは、その中でXRデバイスが動作し得る、環境を描写する、コンピュータグラフィック生成データ等から、合成的に生成されてもよい。データは、測定プロセスに存在する、または別様に実世界データを表すように歪曲され得る雑音を示す、それに適用される雑音を有してもよい。
ニューラルネットワークの訓練は、誤った結果にペナルティを科す、損失関数に基づいてもよい。誤った結果は、低品質を、物理的世界内の同一特徴を表す、一対の2Dおよび3D特徴に割り当てるか、または高品質を、物理的世界内の異なる特徴を表す、一対の2Dおよび3D特徴に割り当てるかのいずれかであり得る。代替として、または加えて、損失関数は、高品質を、物理的世界内の同一特徴を表す、一対の2Dおよび3D特徴に割り当てるか、または低品質を、物理的世界内の異なる特徴を表す、一対の2Dおよび3D特徴に割り当てるかのいずれかであり得る、正しい結果を促し得る。
図64は、いくつかの実施形態による、大規模および非常に大規模な位置特定を提供する、XRシステム6400の一部を図示する、ブロック図である。図65は、いくつかの実施形態による、XRシステム6400によって処理されている物理的世界についての情報を図示する、概略図である。図64に示されるような処理は、ポータブルデバイス上に実装されてもよい、またはデバイスおよびクラウドサービス等の1つまたはそれを上回る遠隔処理システムを横断して分散されてもよい。
XRシステム6400は、物理的世界についての情報6404を捕捉するように構成される、1つまたはそれを上回るセンサ6402を含んでもよい。いくつかの実施形態では、センサは、1つまたはそれを上回る画像センサ、例えば、図5Bにおけるカメラ552および/または553を含んでもよく、これは、グレースケールおよび/またはカラー画像フレームを固定された時間インターバルにおいて出力してもよい。いくつかの実施形態では、センサは、1つまたはそれを上回る慣性測定ユニット(IMU)、例えば、図5BにおけるIMU557を含んでもよく、これは、移動および配向を検出してもよい。カメラによって出力された画像フレームは、画像が撮影されたときのデバイスの重力配向等、IMUによって捕捉された配向とともに付加されてもよい。画像は、重力配向が整合されるように回転されてもよく、これは、位置特定サービスのための検索の自由度を低減させる。
図65は、センサ6402によって収集されたデータの埋込を図示する。図65の実施例では、XRデバイスの4つのカメラcam0-cam3が、図示される。XRデバイスは、デバイス座標フレーム6502を有してもよい。いくつかの実施形態では、デバイス座標フレーム6502は、キーリグ(例えば、図7のキーリグ704)が捕捉されるときのデバイスの姿勢を示す、キーリグ座標フレームであってもよい。いくつかの実施形態では、キーリグの姿勢は、XRデバイス上に構築される追跡マップの座標フレーム、例えば、世界座標フレーム86(図9、10)に示され得る。いくつかの実施形態では、キーリグの姿勢は、仮想コンテンツが、いったんデバイスがマップに対して位置特定されると、ディスプレイ上に正しく表示され得るように、デバイスのディスプレイの場所に基づいて決定されてもよい。
XRデバイスは、データベース6410内に存続される1つまたはそれを上回るマップ、例えば、図16における規準マップ120に対して位置特定しようと試み得る。持続マップは、物理的世界の3D特徴を表すマップ点、例えば、図38Aにおけるマップ点3802を含んでもよい。マップ点は、マップ座標フレームを共有し、共有マップ座標フレーム、例えば、図39Aにおける規準座標フレーム4806Cを通して、参照可能であってもよい。
システム6400は、姿勢推定6424を提供してもよく、これは、デバイス座標フレームとマップ座標フレームとの間の変換の形態にあってもよい。図65の実施例では、姿勢推定6424の実施例は、デバイス座標フレーム6502とマップ座標フレーム6504との間の変換6506として図示される。変換6506は、座標フレーム6502と6504との間の平行移動および回転を含んでもよく、これは、行列によって表されてもよい。
上記に説明されるように、姿勢は、2つの特徴のセットを整合させる、変換を見出すことによって推定されてもよい。XRシステム6400は、特徴をセンサ捕捉情報および出力特徴情報6408から識別するように構成される、特徴抽出コンポーネント6406を含んでもよい。上記に説明されるように、特徴の実施例は、物理的世界内のオブジェクトの角および縁を含んでもよい。図65の実施例では、特徴抽出コンポーネント6406は、cam3によって捕捉された画像6508を受信し、画像5408内の1つまたはそれを上回る特徴6510kを識別してもよい。特徴抽出コンポーネント6406はまた、画像をcam0、cam1、およびcam2から受信し、6510iおよび6510j等の特徴を識別してもよい。特徴毎の記述子もまた、効率的マッチングを有効にするために生成されてもよい。いくつかの実施形態では、特徴情報6408は、記述子(例えば、図25におけるDSF記述子)を含んでもよい。
特徴抽出コンポーネント6406はまた、XRシステム6400が複数のセンサによって捕捉された情報を同時に処理し得るように、センサ付帯パラメータを識別された特徴に付加するように構成されてもよい。いくつかの実施形態では、特徴情報6408は、2つの3dベクトルを組み合わせることによって、6dベクトルを含んでもよい。第1の3dベクトルは、特徴(例えば、uiviwi、ujvjwj、ukvkwk)を含有する画像を捕捉した、センサのセンサ座標フレーム内の特徴の位置を示してもよい。第2の3dベクトルは、特徴(例えば、t0、t1、t2、t3)を含有する画像を捕捉した、センサのデバイス座標フレーム6502内の位置を示してもよい。例えば、特徴6510kに関する特徴情報6408は、特徴に関する一意の記述子と、第1のベクトルukvkwkと、第2のベクトルt3とを含んでもよい。
いくつかの実施形態では、特徴抽出コンポーネント6406は、デバイス上にあってもよい。特徴情報6408は、位置特定サービス6426に通信されてもよい。特徴情報6408を通信することは、完全画像を送信するほど帯域幅を消費し得ない。しかしながら、本願は、本点について限定されない。いくつかの実施形態では、位置特定サービス6426は、特徴抽出コンポーネント6406を含んでもよい。
位置特定サービス6426は、特徴マッチングコンポーネント6414を含んでもよく、これは、特徴情報6408を特徴抽出コンポーネント6406から受信してもよい。特徴マッチングコンポーネント6414はまた、マップ情報6412をデータベース6410内に存続される1つまたはそれを上回るマップから受信してもよい。いくつかの実施形態では、1つまたはそれを上回るマップは、図28の方法および/または図29の方法900によって、データベース6410から選択されてもよい。マップ情報6412は、物理的世界の3D特徴を表す、マップ点を含んでもよい。特徴マッチングコンポーネント6414は、例えば、同一または類似記述子を有する、対の特徴を2Dおよび3Dセットから選択することによって、特徴情報6408およびマップ情報6412からの対応する特徴をマッチングさせるように構成されてもよい。
図65の実施例では、特徴マッチングコンポーネント6414は、特徴6510i、6510j、6510kが、それぞれ、マップ点6512i、6512j、6512kとマッチングすることを決定し得る。マップ点6512i、6512j、6512kは、3dベクトルxiyizi、xjyjzj、xkykzkとして表され、マップ座標フレーム6504内のマップ点の位置を示してもよい。図示されるように、いくつかのマッチングされた対応は、正しい場合があり、例えば、6510jと6512jとの間の対応および6510kと6512kとの間の対応であって、いくつかのマッチングされた対応は、誤っている場合があり、例えば、6510iと6512iとの間の対応である。
位置特定サービス6426は、特徴マッチングコンポーネント6414によって提供される対のマッチングされた特徴6416の品質を査定するように構成される、マッチングされた特徴の品質予測コンポーネント6418を含んでもよい。マッチングされた特徴の品質予測コンポーネント6418は、姿勢推定コンポーネント6422が、姿勢推定6424を算出するとき、品質情報6420によって誘導され得るように、品質情報6420を位置特定サービス6426の姿勢推定コンポーネントに提供してもよい。
品質情報6420は、対のマッチングされた特徴毎に、品質メトリックを含んでもよい。いくつかの実施形態では、品質メトリックは、ゼロ~1の範囲内の確率であってもよく、より高い割り当てられた品質は、マッチングされた特徴が物理的世界内の同一場所を表す、より高い尤度を示す。コンポーネントは、他の数値を用いて、マッチングされた対応の品質を示す、例えば、正しい可能性が高いマッチングをゼロで示し、誤っている可能性が高いマッチングを1で示す、またはその逆であるように構成されてもよいことを理解されたい。
姿勢推定コンポーネント6422は、マッチングされた特徴の品質予測コンポーネント6418によって出力された品質情報6420に基づいて、特徴マッチングコンポーネント6414によって出力された対のマッチングされた特徴6416を処理してもよい。いくつかの実施形態では、姿勢推定コンポーネント6422は、対のマッチングされた特徴の第1のサブセットをセット6416から選択し、選択されたサブセットに基づいて、第1の姿勢を算出してもよい。サブセット内の対応の数は、5つ、7つ、8つ、または有効変換行列を提供するために十分な任意の値であってもよい。第1のサブセットの選択は、品質情報6420によって誘導されてもよく、選択は、より高い品質のマッチング特徴を目指して加重される。例えば、姿勢推定コンポーネント6422は、マッチング特徴の第1のサブセットを全ての対のマッチング特徴からランダムに、但し、より高い品質メトリックを有するマッチング特徴が、低品質メトリックを伴うものより選択される可能性がより高いようにバイアスされた選択を伴って、選択してもよい。一対のマッチングされた特徴が選択される尤度は、品質メトリックに比例してもよい。
姿勢推定コンポーネント6422は、対のマッチングされた特徴の選択されたサブセットの2D特徴とサブセット内の対応する3D特徴を整合させる、変換を算出してもよい。重力を考慮する、システムでは、重力に対する2D特徴の配向を改変する、変換は、考慮されなくてもよい。
姿勢推定コンポーネント6422は、算出された変換を、第1のサブセット内に含まれない、対のマッチングされた特徴のいくつかまたは全てを含む、対のマッチングされた特徴のより大きいセットに適用することによって、第1の姿勢の正確度を決定してもよい。いくつかの実施形態では、姿勢推定コンポーネント6422は、個々の対応に関する投影誤差を算出することによって、正確度を決定してもよい。マッチングされた対応に関する投影誤差は、2D特徴を含有する画像内の2D特徴の位置と、画像が延在する平面に投影されたマッチングされたマップ点の位置との間の距離を示し得る。
いくつかのシナリオでは、姿勢推定コンポーネント6422は、さらに推定される姿勢を算出し、正確な姿勢が算出されることを確実にしてもよい。いくつかの実施形態では、姿勢推定コンポーネント6422は、閾値誤差(例えば、2つのピクセル)を下回る投影誤差を有する、対のマッチングされた特徴の数が、閾値(例えば、セット6416の80%)を上回るとき、推定される姿勢が正確であると決定してもよい。本チェックは、第1の姿勢推定が完了されるにつれて、行われてもよい。代替として、姿勢推定コンポーネント6422は、複数の姿勢推定を算出し、閾値に対する姿勢推定の最良のものの正確度をチェックしてもよい。
姿勢推定コンポーネント6422が、第1の位置特定が十分に正確ではないと決定するとき、またはその中で複数の姿勢推定が最良のものの好適性を査定する前に算出される、実施形態では、姿勢推定コンポーネント6422は、対のマッチングされた特徴の第2のサブセットをセット6416からランダムに選択してもよい。第1のサブセットに関する対のマッチングされた特徴のさらなるサブセットの選択は、品質情報6420によって加重されてもよい。姿勢推定コンポーネント6422は、第2の姿勢を算出し、選択された第2のサブセットの2D特徴および3D特徴を整合させてもよい。本プロセスは、正確な位置特定結果が見出され、および/または所定の数のサブセットの処理等の他の停止条件に到達するまで、付加的サブセットが選択および処理されるように継続されてもよい。品質情報6420からの誘導を伴うことで、姿勢推定コンポーネントは、誘導を伴わないものより10分の1も少ない数のマッチングされた対応のサブセットに基づいて、選択および算出を用いて、正確な位置特定結果を提供することが可能であり得ることを理解されたい。
いくつかの実施形態では、マッチングされた特徴の品質予測コンポーネント6418は、例えば、いくつかの実施形態による、図66におけるXRシステム6400のサブシステム6600に図示されるように、人工ニューラルネットワーク6602を含んでもよい。ニューラルネットワーク6602は、埋込層6604と、埋込層6616と、埋込層6604と埋込層6616との間の中間層6622とを含んでもよい。
埋込層6604は、多層パーセプトロン(MLP)6606を含んでもよい。埋込層6604内の各MLP6606は、1つまたはそれを上回る対のマッチングされた特徴をセット6416から受信してもよい。いくつかの実施形態では、マッチングされた対の特徴は、9dベクトルを含んでもよく、これは、上記に説明されるような2D特徴の6dベクトル(例えば、ukvkwkおよびt3)とマップ内のマッチングされた3D特徴の位置を示す3dベクトル(例えば、xkykzk)の組み合わせであってもよい。MLPは、エンコーディングされたベクトル6608を提供してもよく、これは、入力対応より高い特徴の次元を提供し得る。いくつかの実施形態では、エンコーディングされたベクトル6608は、64dベクトルを含んでもよい。
中間層6622は、要素毎総和ブロック6614によって接続される、1つまたはそれを上回る残差ネットワークブロック6610を含んでもよい。残差ネットワークブロック6610は、MLPと、残差ネットワークブロックのMLPの出力の分布を正規化するように構成される、サブブロックとを含んでもよい。
埋込層6616もまた、MLPを含んでもよい。埋込層6616内の各MLPは、エンコーディングされた出力を中間層6622から受信し、デコーディングされたベクトル6618を出力してもよく、これは、入力対応と同一寸法を有し得る。デコーディングされたベクトル6618は、アクティブ化ブロック6620を通して、品質情報6420に変換されてもよい。
図67は、いくつかの実施形態による、ニューラルネットワーク6602を訓練するための基準データセットを生成する方法6700を図示する、フローチャートである。方法6700は、2D-3Dマッチング特徴を備える、基準データセットを作成するステップ(行為6702)から開始してもよい。基準データセットは、合成または実世界データであってもよい。いくつかの実施形態では、基準データセットは、正しいマッチングに対応する、対の特徴と、正しくないマッチングに対応する、対の特徴とを含んでもよい。
行為6704では、方法6700は、例えば、姿勢推定コンポーネント6420を使用することによって、基準データセットに基づいて、姿勢を算出してもよい。行為6706では、推定される姿勢は、個々の対応に関するグラウンドトゥルース(GT)投影誤差を算出するために使用されてもよい。その中で合成データが使用される、シナリオでは、グラウンドトゥルースは、合成データを形成する際に導入される、2Dセットと3Dセットとの間の任意の変換から決定されてもよい。他のデータセットに関して、グラウンドトゥルースは、データセットまたはそこからデータセットが生成された画像を手動精査する結果としてを含む、他の方法において決定されてもよい。2D-3D特徴対応に関して、GT投影誤差は、2D特徴を含有する画像上の対応の2D特徴の位置と、対応内の3D特徴に対応する2D特徴の位置との間の実際の距離を示し得る。
行為6708では、方法6700は、算出されたGT投影誤差に基づいて、基準データセットの対応に関するGT加重を算出してもよい。いくつかの実施形態では、GT加重WGTは、下記に示されるように、GT投影誤差のCauchy加重関数として定義されてもよい。
式中、Cは、0.5のGT加重に関する誤差の値を有してもよい。いくつかの実施形態では、訓練データセット6710は、基準データセットの2D-3Dのマッチング対応と、算出されたGT加重とを含んでもよい。Cauchy損失が、実施例として説明されるが、高再投影誤差にペナルティを科す、任意の損失関数が使用されてもよいことを理解されたい。
式中、Cは、0.5のGT加重に関する誤差の値を有してもよい。いくつかの実施形態では、訓練データセット6710は、基準データセットの2D-3Dのマッチング対応と、算出されたGT加重とを含んでもよい。Cauchy損失が、実施例として説明されるが、高再投影誤差にペナルティを科す、任意の損失関数が使用されてもよいことを理解されたい。
図68は、いくつかの実施形態による、ニューラルネットワーク6602を訓練する方法6800を図示する、フローチャートである。方法6800は、ニューラルネットワーク6602を使用して、訓練データセット内の対の特徴毎に、品質メトリックを算出するステップ(行為6802)から開始してもよい。行為6804では、方法6800は、品質メトリックとGT加重との間の差異に基づいて、損失を算出してもよい。いくつかの実施形態では、損失は、GT加重WGT上の回帰損失、例えば、訓練セット6710内の対の特徴に関する品質メトリックと対応するGT加重との間の平均二乗誤差であってもよい。行為6806では、方法6800は、損失を低減させるように、損失に基づいて、ニューラルネットワーク6602の加重を修正してもよい。訓練セット内の対のマッチング特徴は、損失を減少させるように、各対が処理されるにつれて、連続的に適用され、ニューラルネットワークを更新してもよい。
それによってニューラルネットワークが訓練される、具体的方法にかかわらず、いったん訓練されると、図64に関連して上記に説明されるように、マッチングする対の特徴のサブセットの選択を誘導し、2つの特徴のセット間の姿勢を識別するように処理されるサブセットの数を低減させるために使用されてもよい。本プロセスは、他の処理に先行する、またはその後に他の処理が続いてもよい。1つまたはそれを上回る基準が、図64に図示される処理の前に、適用され、2D特徴のセットに対して比較すべき3D特徴のセットを決定してもよい。複数の3D特徴のセットが、比較されるべきである場合、図64のプロセスは、3D特徴のセット毎に繰り返され、最良にマッチングする特徴セットを決定してもよい。図64の処理に続いて、識別された姿勢は、位置特定結果に変換されてもよい。
図64の姿勢推定のためのプロセスは、代替として、または加えて、他のコンテキストに適用されてもよい。例えば、追跡マップを規準マップにマージする際、持続姿勢と関連付けられるもの等の追跡マップからの2D特徴のセットが、規準マップ内の3D特徴と比較されてもよい。図64の姿勢推定プロセスは、特徴のセットがマッチングするかどうかと、該当する場合、特徴のセット間の変換を決定するために適用されてもよい。その変換の算出は、マップが組み合わせられ得るように、追跡マップを規準マップに整合させるために使用されてもよい。
故に、デバイスを位置特定するステップに関連して本明細書に説明されるような姿勢推定のプロセスは、他のシナリオにおいて適用されてもよいことを理解されたい。
さらなる考慮点
図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 (26)
- クロスリアリティシステム内で動作するように構成される電子デバイスであって、前記電子デバイスは、デバイス座標フレームを有し、前記電子デバイスは、
3次元(3D)環境についての情報を捕捉するように構成される1つまたはそれを上回るセンサであって、前記捕捉された情報は、複数の画像を備える、1つまたはそれを上回るセンサと、
コンピュータ実行可能命令を実行するように構成される少なくとも1つのプロセッサであって、前記コンピュータ実行可能命令は、
複数の特徴を前記3D環境の複数の画像のうちの1つまたはそれを上回るものから抽出することと、
抽出された特徴毎に、前記特徴を表す情報を、ネットワークを経由して、位置特定サービスに送信することと、
前記位置特定サービスから、前記デバイス座標フレームを第2の座標フレームに関連させる少なくとも1つの変換を受信することと
を行うための命令を備える、少なくとも1つのプロセッサと
を備える、電子デバイス。 - 前記電子デバイスは、ディスプレイを備え、
前記コンピュータ実行可能命令は、前記ディスプレイ上の第2の座標フレーム内に規定された場所を有する仮想コンテンツを、少なくとも部分的に、前記少なくとも1つの変換の変換に基づいて算出された位置にレンダリングするための命令を備える、
請求項1に記載の電子デバイス。 - 前記抽出された特徴を表す情報は、個々の特徴に関する記述子を備える、請求項1に記載の電子デバイス。
- 前記複数の特徴は、前記電子デバイスの少なくとも2つのセンサによって捕捉された複数の画像から抽出される、請求項1に記載の電子デバイス。
- 前記少なくとも2つのセンサのそれぞれは、個別のセンサ座標フレームと関連付けられ、
前記コンピュータ実行可能命令はさらに、個別のセンサ座標フレームからの前記複数の画像から抽出された特徴を前記デバイス座標フレームに変換するための命令を備える、
請求項4に記載の電子デバイス。 - 前記1つまたはそれを上回るセンサは、個別のセンサ座標フレームを有し、
前記コンピュータ実行可能命令は、前記電子デバイス上の1つまたはそれを上回るセンサの場所に基づいて、前記センサ座標フレームを算出するための命令を備える、
請求項1に記載の電子デバイス。 - 前記電子デバイスは、ディスプレイを備え、
前記コンピュータ実行可能命令は、前記ディスプレイに対する前記1つまたはそれを上回るセンサの場所に基づいて、前記センサ座標フレームを算出するための命令を備える、
請求項1に記載の電子デバイス。 - 前記第1のベクトルは、単位法線ベクトルである、請求項1に記載の電子デバイス。
- 前記情報は、
前記特徴を備える画像を捕捉した前記センサのセンサ座標フレーム内の前記特徴の位置を示す第1のベクトルと、
前記特徴を備える画像を捕捉した前記デバイスのセンサ座標フレーム内の前記特徴の位置を示す第2のベクトルと
を備える、請求項1に記載の電子デバイス。 - 持続マップのデータベース内の持続マップに対する仮想コンテンツの位置の仕様をサポートするXRシステムであって、前記システムは、
ポータブル電子デバイスから、前記ポータブル電子デバイスの3次元(3D)環境内の特徴のセットについての情報を受信するように構成される通信コンポーネントと、
前記通信コンポーネントに接続される位置特定コンポーネントであって、前記位置特定コンポーネントは、
受信された特徴のセットを、それぞれが受信された特徴および持続特徴を備える対のマッチングされた特徴を提供する前記持続マップのデータベース内の持続特徴に対してマッチングさせることと、
前記対のマッチングされた特徴に関する品質メトリックを算出することであって、前記品質メトリックは、前記マッチングされた特徴が前記3D環境内の同一特徴を表す尤度を示す、ことと、
前記マッチングされた対応および前記マッチングされた対応に関して算出された品質メトリックに基づいて、前記ポータブル電子デバイスのデバイス座標フレームと前記持続マップの規準座標フレームとの間の変換を生成することと
を行うように構成される、位置特定コンポーネントと
を備える、システム。 - 前記位置特定コンポーネントはさらに、
前記変換を前記ポータブル電子デバイスに送信するように構成される、
請求項10に記載のXRシステム。 - 前記通信コンポーネントはさらに、前記ポータブル電子デバイスから、前記特徴のセットを備える画像を捕捉した前記センサの個別のセンサ座標フレーム内に表される前記特徴のセットの特徴に関する位置付け情報を受信するように構成される、請求項10に記載のXRシステム。
- 前記位置特定コンポーネントは、前記特徴のセットを備える画像を捕捉した前記センサの個別のセンサ座標フレーム内に表される前記特徴のセットの特徴に関する位置付け情報を算出するように構成される、請求項10に記載のXRシステム。
- 前記位置特定コンポーネントは、前記ポータブル電子デバイスのデバイス座標フレームと前記持続マップの規準座標フレームとの間の変換を生成するように構成される姿勢推定コンポーネントを備える、請求項10に記載のXRシステム。
- 前記姿勢推定コンポーネントは、前記マッチングされた対応に関する算出された品質メトリックに基づいて、前記マッチングされた特徴のサブセットを選択するように構成される、請求項14に記載のXRシステム。
- 前記姿勢推定コンポーネントは、前記選択されたサブセットに基づいて、前記変換を生成するように構成される、請求項15に記載のXRシステム。
- 前記位置特定コンポーネントは、前記マッチングされた特徴に関する品質メトリックを算出するように構成される人工ニューラルネットワークを備える、請求項10に記載のXRシステム。
- 前記ニューラルネットワークは、
第1の複数の多層パーセプトロンを備える埋込層であって、前記第1の複数の多層パーセプトロンは、マッチングされた特徴を受信し、個々のマッチングされた特徴のエンコーディングされたバージョンを提供するように構成され、前記エンコーディングされたバージョンは、前記受信された特徴より高い次元を有する、埋込層と、
要素毎総和ブロックによって接続される複数の残差ネットワークブロックを備える中間層であって、前記要素毎総和ブロックは、上方に隣接する残差ネットワークブロックへの入力およびそこからの出力を受信するように構成される、中間層と、
個々のトリガブロックに接続される第2の複数の多層パーセプトロンを備える埋込層であって、前記第2の複数の多層パーセプトロンは、対応のデコーディングされたバージョンを提供するように構成され、前記デコーディングされたバージョンは、前記受信された対応と同一寸法を有し、前記トリガブロックは、前記マッチングされた特徴に関する予測される品質メトリックを提供するように構成される、埋込層と
を備える、請求項17に記載のXRシステム。 - 前記複数の残差ネットワークブロックのそれぞれは、複数の多層パーセプトロンと、前記複数の多層パーセプトロンの出力の分布を正規化するように構成されるサブブロックとを備える、請求項18に記載のXRシステム。
- 前記通信コンポーネントはさらに、前記特徴のセットを備える画像を捕捉したセンサに関するデバイス座標フレーム内の位置付け情報を受信するように構成される、請求項10に記載のXRシステム。
- ポータブル電子デバイス上で収集された少なくとも1つの画像から導出される第1のセットの特徴と記憶されたマップ内の第2のセットの特徴との間の姿勢を算出する方法であって、前記方法は、
前記第1のセットの特徴に関する記述子を算出することと、
前記第1のセットに関する前記算出された記述子と前記第2のセットの特徴に関する記述子との類似性に基づいて、複数の対のマッチングされた特徴を識別することと、
前記複数の対のマッチングされた特徴に関する品質メトリックを算出することと、
前記品質メトリックに基づいて前記サブセット内への含有をバイアスするように、前記品質メトリックに基づいてマッチングされた特徴のサブセットを選択することと、
前記サブセット内に含まれる前記第1のセットの特徴と前記サブセット内に含まれる前記第2のセットの特徴の相対的姿勢を決定することと、
前記決定された姿勢に基づいて、前記第2のセットの特徴にマッチングする前記第1のセットの特徴のうちの特徴の少なくとも一部を変換することと、
前記第1のセットの前記変換された特徴と前記第2のセット内のマッチングする特徴との整合に基づいて、前記決定された姿勢の正確度を決定することと
を含む、方法。 - 前記算出された品質メトリックに基づいて、マッチングされた特徴のサブセットを反復的に形成し、前記反復的に形成されたサブセットに関する姿勢を決定することと、
前記決定された姿勢の決定された正確度に基づいて、決定された姿勢を選択することと
をさらに含む、請求項21に記載の方法。 - 前記ポータブル電子デバイスは、前記決定された姿勢を10ミリ秒以内に受信する、請求項22に記載の方法。
- 20個未満のサブセットが、形成される、請求項22に記載の方法。
- 前記第1のセットの特徴は、100個以下の特徴を含む、請求項21に記載の方法。
- 持続マップのデータベース内の持続マップに対する仮想コンテンツの位置の仕様をサポートするXRシステムにおいて使用するために、ニューラルネットワークを訓練する方法であって、
対のマッチングされた特徴のセットを受信することであって、各対のマッチングされた特徴は、第1の座標フレーム内の2D特徴、第2の座標フレーム内の3D特徴、および前記第1の座標フレームに投影された3D特徴と前記第1の座標フレーム内の2D特徴との間の位置誤差を示すグラウンドトゥルース加重を備える、ことと、
前記対のマッチングされた特徴のセットに関する品質メトリックを予測することと、
前記グラウンドトゥルース加重および前記推定される品質メトリックに基づいて、損失を算出することと、
前記算出された損失に基づいて、前記ニューラルネットワークを修正することと
を含む、方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062976129P | 2020-02-13 | 2020-02-13 | |
US62/976,129 | 2020-02-13 | ||
PCT/US2021/017607 WO2021163289A1 (en) | 2020-02-13 | 2021-02-11 | Cross reality system for large scale environments |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023514206A true JP2023514206A (ja) | 2023-04-05 |
JPWO2021163289A5 JPWO2021163289A5 (ja) | 2024-02-20 |
Family
ID=77272775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022548662A Pending JP2023514206A (ja) | 2020-02-13 | 2021-02-11 | 大規模環境のためのクロスリアリティシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210256766A1 (ja) |
EP (1) | EP4104144A4 (ja) |
JP (1) | JP2023514206A (ja) |
CN (1) | CN115380264A (ja) |
WO (1) | WO2021163289A1 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11227435B2 (en) | 2018-08-13 | 2022-01-18 | Magic Leap, Inc. | Cross reality system |
US10957112B2 (en) | 2018-08-13 | 2021-03-23 | Magic Leap, Inc. | Cross reality system |
JP7503542B2 (ja) | 2018-10-05 | 2024-06-20 | マジック リープ, インコーポレイテッド | 任意の場所における場所特有の仮想コンテンツのレンダリング |
JP2022551734A (ja) | 2019-10-15 | 2022-12-13 | マジック リープ, インコーポレイテッド | 複数のデバイスタイプをサポートするクロスリアリティシステム |
JP2022551735A (ja) | 2019-10-15 | 2022-12-13 | マジック リープ, インコーポレイテッド | 無線フィンガプリントを用いたクロスリアリティシステム |
EP4046139A4 (en) | 2019-10-15 | 2023-11-22 | Magic Leap, Inc. | EXTENDED REALITY SYSTEM WITH LOCATION SERVICE |
WO2021096931A1 (en) | 2019-11-12 | 2021-05-20 | Magic Leap, Inc. | Cross reality system with localization service and shared location-based content |
CN114762008A (zh) | 2019-12-09 | 2022-07-15 | 奇跃公司 | 简化的虚拟内容编程的交叉现实系统 |
US11393176B2 (en) * | 2020-02-07 | 2022-07-19 | Krikey, Inc. | Video tools for mobile rendered augmented reality game |
WO2021163306A1 (en) | 2020-02-13 | 2021-08-19 | Magic Leap, Inc. | Cross reality system with accurate shared maps |
CN115398314A (zh) | 2020-02-13 | 2022-11-25 | 奇跃公司 | 使用多分辨率帧描述符进行地图处理的交叉现实系统 |
CN115398484A (zh) * | 2020-02-13 | 2022-11-25 | 奇跃公司 | 具有用于定位的地理定位信息优先级的交叉现实系统 |
WO2021173779A1 (en) | 2020-02-26 | 2021-09-02 | Magic Leap, Inc. | Cross reality system with fast localization |
US11107290B1 (en) * | 2020-02-27 | 2021-08-31 | Samsung Electronics Company, Ltd. | Depth map re-projection on user electronic devices |
CN115803788A (zh) * | 2020-04-29 | 2023-03-14 | 奇跃公司 | 用于大规模环境的交叉现实系统 |
DE102020215461A1 (de) * | 2020-12-08 | 2022-06-09 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorrichtung und Verfahren zum Trainieren eines Bildgenerators |
WO2023063937A1 (en) * | 2021-10-13 | 2023-04-20 | Innopeak Technology, Inc. | Methods and systems for detecting planar regions using predicted depth |
WO2023150885A1 (en) * | 2022-02-10 | 2023-08-17 | Singulos Research Inc. | System and method for object comprehension |
CN118334075A (zh) * | 2023-01-12 | 2024-07-12 | 高通科技公司 | 位姿追踪方法及系统、可移动设备、电子设备及存储介质 |
CN116342826B (zh) * | 2023-05-25 | 2023-10-10 | 上海维智卓新信息科技有限公司 | 一种ar地图的构建方法及装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012135546A1 (en) * | 2011-03-29 | 2012-10-04 | Qualcomm Incorporated | Anchoring virtual images to real world surfaces in augmented reality systems |
CN102682091A (zh) * | 2012-04-25 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 基于云服务的视觉搜索方法和系统 |
US8798357B2 (en) * | 2012-07-09 | 2014-08-05 | Microsoft Corporation | Image-based localization |
CN104541290A (zh) * | 2012-07-23 | 2015-04-22 | Metaio有限公司 | 提供图像特征描述符的方法 |
US10373366B2 (en) * | 2015-05-14 | 2019-08-06 | Qualcomm Incorporated | Three-dimensional model generation |
GB201517101D0 (en) * | 2015-09-28 | 2015-11-11 | Univ Essex Entpr Ltd | Mixed-reality system |
US20180122143A1 (en) * | 2016-03-15 | 2018-05-03 | Sutherland Cook Ellwood, JR. | Hybrid photonic vr/ar systems |
US10802147B2 (en) * | 2016-05-18 | 2020-10-13 | Google Llc | System and method for concurrent odometry and mapping |
US10504008B1 (en) * | 2016-07-18 | 2019-12-10 | Occipital, Inc. | System and method for relocalization and scene recognition |
US10162362B2 (en) * | 2016-08-29 | 2018-12-25 | PerceptIn, Inc. | Fault tolerance to provide robust tracking for autonomous positional awareness |
US10452133B2 (en) * | 2016-12-12 | 2019-10-22 | Microsoft Technology Licensing, Llc | Interacting with an environment using a parent device and at least one companion device |
US10664993B1 (en) * | 2017-03-13 | 2020-05-26 | Occipital, Inc. | System for determining a pose of an object |
US10600252B2 (en) * | 2017-03-30 | 2020-03-24 | Microsoft Technology Licensing, Llc | Coarse relocalization using signal fingerprints |
JP7149289B2 (ja) * | 2017-04-19 | 2022-10-06 | マジック リープ, インコーポレイテッド | ウェアラブルシステムのためのマルチモード実行およびテキスト編集 |
CN108665508B (zh) * | 2018-04-26 | 2022-04-05 | 腾讯科技(深圳)有限公司 | 一种即时定位与地图构建方法、装置及存储介质 |
CN110515452B (zh) * | 2018-05-22 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、存储介质和计算机设备 |
US10964053B2 (en) * | 2018-07-02 | 2021-03-30 | Microsoft Technology Licensing, Llc | Device pose estimation using 3D line clouds |
US11227435B2 (en) * | 2018-08-13 | 2022-01-18 | Magic Leap, Inc. | Cross reality system |
US10839556B2 (en) * | 2018-10-23 | 2020-11-17 | Microsoft Technology Licensing, Llc | Camera pose estimation using obfuscated features |
US10767997B1 (en) * | 2019-02-25 | 2020-09-08 | Qualcomm Incorporated | Systems and methods for providing immersive extended reality experiences on moving platforms |
US11074706B2 (en) * | 2019-04-12 | 2021-07-27 | Intel Corporation | Accommodating depth noise in visual slam using map-point consensus |
US20200401617A1 (en) * | 2019-06-21 | 2020-12-24 | White Raven Ltd | Visual positioning system |
-
2021
- 2021-02-11 WO PCT/US2021/017607 patent/WO2021163289A1/en unknown
- 2021-02-11 CN CN202180027900.3A patent/CN115380264A/zh active Pending
- 2021-02-11 JP JP2022548662A patent/JP2023514206A/ja active Pending
- 2021-02-11 EP EP21753053.4A patent/EP4104144A4/en active Pending
- 2021-02-11 US US17/173,497 patent/US20210256766A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4104144A1 (en) | 2022-12-21 |
WO2021163289A1 (en) | 2021-08-19 |
CN115380264A (zh) | 2022-11-22 |
US20210256766A1 (en) | 2021-08-19 |
EP4104144A4 (en) | 2024-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7445642B2 (ja) | クロスリアリティシステム | |
US11790619B2 (en) | Cross reality system with accurate shared maps | |
US11257294B2 (en) | Cross reality system supporting multiple device types | |
JP2023514206A (ja) | 大規模環境のためのクロスリアリティシステム | |
US20210110614A1 (en) | Cross reality system with localization service | |
JP2023515524A (ja) | 高速位置特定を伴うクロスリアリティシステム | |
JP2022551735A (ja) | 無線フィンガプリントを用いたクロスリアリティシステム | |
JP2023524446A (ja) | 大規模環境のためのクロスリアリティシステム | |
JP2023514207A (ja) | 位置特定に関するジオロケーション情報の優先順位化を伴うクロスリアリティシステム | |
JP2023514208A (ja) | マルチ分解能フレーム記述子を使用したマップ処理を伴うクロスリアリティシステム | |
JP2023504570A (ja) | 仮想コンテンツの簡略化されたプログラミングを伴うクロスリアリティシステム | |
JP2023504775A (ja) | 位置特定サービスおよび共有場所ベースのコンテンツを伴うクロスリアリティシステム | |
JP2023501952A (ja) | 持続座標フレームについての品質情報を伴うクロスリアリティシステム | |
JP2023515796A (ja) | Wifi/gpsベースのマップマージを伴うクロスリアリティシステム | |
JP2023515577A (ja) | 大規模環境再構築のためのクロスリアリティシステム | |
JP7526169B2 (ja) | クロスリアリティシステム | |
JP2023515523A (ja) | 位置特定正確度のためのバッファを伴うクロスリアリティシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240209 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240209 |