JP2023527695A - 3d環境の合成表現を算出するための算出上効率的方法 - Google Patents
3d環境の合成表現を算出するための算出上効率的方法 Download PDFInfo
- Publication number
- JP2023527695A JP2023527695A JP2022567781A JP2022567781A JP2023527695A JP 2023527695 A JP2023527695 A JP 2023527695A JP 2022567781 A JP2022567781 A JP 2022567781A JP 2022567781 A JP2022567781 A JP 2022567781A JP 2023527695 A JP2023527695 A JP 2023527695A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- planar
- calculating
- refined
- rows
- 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
- 238000000034 method Methods 0.000 title claims abstract description 80
- 239000002131 composite material Substances 0.000 title description 7
- 239000011159 matrix material Substances 0.000 claims abstract description 102
- 239000013598 vector Substances 0.000 claims abstract description 23
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 5
- 238000005457 optimization Methods 0.000 abstract description 10
- 230000004438 eyesight Effects 0.000 abstract description 6
- 238000012545 processing Methods 0.000 description 52
- 210000003128 head Anatomy 0.000 description 34
- 238000003860 storage Methods 0.000 description 20
- 230000008447 perception Effects 0.000 description 17
- 230000002085 persistent effect Effects 0.000 description 13
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000005259 measurement Methods 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000005484 gravity Effects 0.000 description 7
- 238000000354 decomposition reaction Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 241000282994 Cervidae Species 0.000 description 3
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 229910001416 lithium ion Inorganic materials 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 210000000613 ear canal Anatomy 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000256837 Apidae Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004308 accommodation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004873 anchoring Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000000744 eyelid Anatomy 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/97—Determining parameters from multiple pictures
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
- G06F17/175—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
例えば、XRシステムおよび任意の好適なコンピュータビジョンおよびロボットアプリケーションにおいて、環境の表現を提供するための方法および装置。環境の表現は、1つまたはそれを上回る平面特徴を含んでもよい。環境の表現は、平面特徴の平面パラメータと、平面特徴が観察される、センサ姿勢とをともに最適化することによって提供されてもよい。共同最適化は、Jacobian行列およびオリジナル残差ベクトルの代わりに、低減された行列および低減された残差ベクトルに基づいてもよい。
Description
(関連出願)
本願は、参照することによってその全体として本明細書に組み込まれる、2020年5月11日に出願され、「COMPUTATIONALLY EFFICIENT METHOD FOR COMPUTING A COMPOSITE REPRESENTATION OF A 3D ENVIRONMENT」と題された、米国仮特許出願第63/023,089号の優先権および利益を主張する。
本願は、参照することによってその全体として本明細書に組み込まれる、2020年5月11日に出願され、「COMPUTATIONALLY EFFICIENT METHOD FOR COMPUTING A COMPOSITE REPRESENTATION OF A 3D ENVIRONMENT」と題された、米国仮特許出願第63/023,089号の優先権および利益を主張する。
本願は、概して、例えば、移動可能なセンサを含む、クロスリアリティ(XR)システム、自律車両、または他のコンピュータビジョンシステムにおいて、環境の表現を提供することに関する。
センサを使用して、3D環境についての情報を入手する、システムは、クロスリアリティ(XR)システムまたは自律車両等の複数のコンテキスト内で使用される。これらのシステムは、カメラ等のセンサを採用して、3D環境についての情報を入手してもよい。センサは、環境の表現の中に統合され得る、環境の多くの観察を提供し得る。例えば、自律車両が移動するにつれて、そのセンサは、3D環境の画像を異なる姿勢から入手してもよい。各画像は、環境の別の観察を提供し、以前に結像された環境の一部についてのさらなる情報または環境の新しい部分についての情報を提供してもよい。
そのようなシステムは、複数の観察にわたって入手された情報を3D環境の合成表現の中に組み立ててもよい。新しい画像が、合成環境の表現に追加され、そこからその画像が入手された姿勢に基づいて、情報を埋めてもよい。最初に、画像の姿勢が、画像を入手するセンサの運動を示す、内部センサの出力、またはすでに環境の合成表現の中に組み込まれている、以前の画像内の特徴に対する特徴の相関等に基づいて、推定されてもよい。しかしながら、経時的に、これらの推定技法における誤差が、蓄積し得る。
蓄積された誤差を補償するために、合成表現の調節が、随時、実施されてもよい。そのような調節は、3D環境内の同一オブジェクトを表す、異なる画像内の特徴が、より良好に整合するように、合成表現に組み合わせられ得る、画像の姿勢を調節することを伴ってもよい。いくつかのシナリオでは、整合される、特徴は、特徴点であってもよい。他のシナリオでは、特徴は、画像のコンテンツに基づいて識別される、平面であってもよい。そのようなシナリオでは、調節は、合成表現に基づいて、検出された各画像の相対的姿勢および平面の相対的位置の両方を調節することを伴ってもよい。
そのような調節は、複数の方法のいずれか内で使用され得る、3D環境の正確な表現を提供し得る。XRシステムでは、例えば、コンピュータは、ヒューマンユーザインターフェースを制御し、ユーザによって知覚されるにつれて、XR環境の一部または全部がコンピュータによって生成される、クロスリアリティ(XR)環境を作成し得る。これらのXR環境は、XR環境の一部または全部が、部分的に、環境を説明するデータを使用して、コンピュータによって生成され得る、仮想現実(VR)、拡張現実(AR)、および複合現実(MR)環境であり得る。本データは、例えば、ユーザが、物理的世界の一部として、感知または知覚し、仮想オブジェクトと相互作用し得るようにレンダリングされ得る、仮想オブジェクトを説明し得る。ユーザは、例えば、頭部搭載型ディスプレイデバイス等のユーザインターフェースデバイスを通してレンダリングおよび提示されているデータの結果として、これらの仮想オブジェクトを体験し得る。データは、ユーザに見えるように表示され得る、またはユーザに聞こえるように再生される、オーディオを制御し得る、または触知的(または触覚的)インターフェースを制御し、ユーザが、仮想オブジェクトを感じるにつれて、ユーザが感知または知覚する、タッチ感覚を体験することを可能にし得る。
XRシステムは、科学的可視化、医療訓練、工学設計、およびプロトタイプ化、遠隔操作およびテレプレゼンス、および個人的娯楽の分野に及ぶ、多くの用途のために有用であり得る。ARおよびMRは、VRと対照的に、物理的世界の実オブジェクトと関連して、1つまたはそれを上回るオブジェクトを含む。実オブジェクトと相互作用する、仮想オブジェクトの体験は、XRシステムを使用する際、ユーザの享受を大幅に向上させ、また、物理的世界が改変され得る様子についての現実的かつ容易に理解可能な情報を提示する、種々の用途のための可能性を広げる。
仮想コンテンツを現実的にレンダリングするために、XRシステムは、システムのユーザの周囲の物理的世界の表現を構築し得る。本表現は、例えば、XRシステムの一部を形成する、ウェアラブルデバイス上のセンサを用いて入手された処理画像によって構築されてもよい。そのようなシステムでは、ユーザは、システムがその環境の表現を構築するために十分な情報を入手するまで、ユーザがXRシステムを使用することを意図する部屋または他の物理的環境を見て回ることによって、初期化ルーチンを実施し得る。システムが動作し、ユーザが環境の周囲を、または他の環境へと動き回るにつれて、ウェアラブルデバイス上のセンサは、付加的情報を入手し、物理的世界の表現を拡張または更新し得る。
本願の側面は、例えば、移動可能なセンサを含む、クロスリアリティ(XR)システム、自律車両、または他のコンピュータビジョンシステムにおいて、環境の表現を提供するための方法および装置に関する。本明細書に説明される技法は、ともに、別個に、または任意の好適な組み合わせにおいて、使用されてもよい。
いくつかの実施形態は、コンピューティングシステムを動作させ、環境の表現を生成する方法に関する。本方法は、センサ捕捉情報を取得することであって、センサ捕捉情報は、第1の数の画像を備える、ことと、環境の初期表現を提供することであって、初期表現は、少なくとも部分的に、第1の数の画像に基づいて、第1の数の初期姿勢および第2の数の平面特徴の初期パラメータを備える、ことと、平面特徴の1つまたはそれを上回る観察を備える、画像に対応する、各姿勢における第2の数の平面特徴の各々に対し、平面特徴の1つまたはそれを上回る観察を示す、行列を算出することと、行列を2つまたはそれを上回る行列に分解することであって、2つまたはそれを上回る行列は、行列と比較して低減された行を有する、1つの行列を備える、ことと、少なくとも部分的に、低減された行を有する、行列に基づいて、第1の数の精緻化された姿勢および第2の数の平面特徴の精緻化されたパラメータを算出することとを含む。環境の表現は、第1の数の精緻化された姿勢および第2の数の平面特徴の精緻化されたパラメータを備える。
いくつかの実施形態は、コンピューティングシステムを動作させ、環境の表現を生成する方法に関する。本方法は、センサ捕捉情報を取得することであって、センサ捕捉情報は、第1の数の画像を備える、ことと、環境の初期表現を提供することであって、初期表現は、少なくとも部分的に、第1の数の画像に基づいて、第1の数の初期姿勢および第2の数の平面特徴の初期パラメータを備える、ことと、平面特徴の1つまたはそれを上回る観察を備える、画像に対応する、各姿勢における第2の数の平面特徴の各々に対し、第3の数の行を有する、行列を算出することであって、第3の数は、平面特徴の1つまたはそれを上回る観察の数より小さい、ことと、少なくとも部分的に、第3の数の行を有する、行列に基づいて、第1の数の精緻化された姿勢および第2の数の平面特徴の精緻化されたパラメータを算出することとを含む。環境の表現は、第1の数の精緻化された姿勢および第2の数の平面特徴の精緻化されたパラメータを備える。
前述の説明は、例証として提供され、限定することを意図するものではない。
添付の図面は、縮尺通りに描かれることを意図していない。図面では、種々の図に図示される、各同じまたはほぼ同じコンポーネントは、同様の数字で表される。明確性の目的のために、全てのコンポーネントが、全ての図面において標識されているわけではない。
詳細な説明
本明細書に説明されるものは、例えば、XRシステムおよび任意の好適なコンピュータビジョンおよびロボットアプリケーションにおいて、環境の表現を提供するための方法および装置である。本発明者らは、低減された時間および低減された算出コストおよびメモリ使用量を伴って、それらの中に多くのオブジェクトを伴う、部屋等の潜在的に複雑な環境の表現を提供する、方法および装置を認識し、その真価を認めた。いくつかの実施形態では、環境の正確な表現は、3D環境の合成表現を調節する際に処理される情報の量を低減させ、合成表現を複数の観察から構築する際に経時的に蓄積される誤差を低減させる、算出技法によって提供され得る。これらの技法は、複数の姿勢において入手された環境の画像を組み合わせることによって構築された環境の表現内で検出された平面によって環境を表す、システムにおいて適用されてもよい。そのような技法は、Jacobian行列およびオリジナル残差ベクトルの代わりに、低減された行列および低減された残差ベクトルに基づいてもよい。
本明細書に説明されるものは、例えば、XRシステムおよび任意の好適なコンピュータビジョンおよびロボットアプリケーションにおいて、環境の表現を提供するための方法および装置である。本発明者らは、低減された時間および低減された算出コストおよびメモリ使用量を伴って、それらの中に多くのオブジェクトを伴う、部屋等の潜在的に複雑な環境の表現を提供する、方法および装置を認識し、その真価を認めた。いくつかの実施形態では、環境の正確な表現は、3D環境の合成表現を調節する際に処理される情報の量を低減させ、合成表現を複数の観察から構築する際に経時的に蓄積される誤差を低減させる、算出技法によって提供され得る。これらの技法は、複数の姿勢において入手された環境の画像を組み合わせることによって構築された環境の表現内で検出された平面によって環境を表す、システムにおいて適用されてもよい。そのような技法は、Jacobian行列およびオリジナル残差ベクトルの代わりに、低減された行列および低減された残差ベクトルに基づいてもよい。
算出上より負担が少ない処理および/またはより低いメモリ使用量は、より短い待ち時間、より低い電力消費、より少ない熱生成、より軽い重量、または他の利点を伴って、3D環境の正確な表現を提供するためにシステム内で使用され得る。XRシステムは、そのような技法を用いて改良され得る、システムの実施例である。低算出複雑性を用いることで、例えば、XRシステムのためのユーザデバイスが、スマートフォン上でプログラミングすることによって形成され得る。
いくつかの実施形態では、現実的XR体験を複数のユーザに提供するために、XRシステムは、仮想オブジェクトの場所を実オブジェクトに関連して正しく相関させるために、ユーザの物理的周囲を把握しなければならない。XRシステムは、その中で仮想オブジェクトが表示され得る、環境の表現を構築してもよい。環境の表現は、XRシステムのXRデバイスの一部である、センサを用いて収集された情報から作成されてもよい。XRデバイスは、統合されたディスプレイおよびセンサを伴う、頭部搭載型デバイス、ハンドヘルドモバイルデバイス(例えば、スマートフォン、スマートウォッチ、タブレットコンピューティングデバイス等)、またはセンサを有する、他のデバイスであってもよい。しかしながら、本明細書に説明される技法は、センサを伴う自律機械等、センサを有する、他のタイプのデバイス上で使用されてもよい。そのようなデバイスは、例えば、画像センサ、LiDARカメラ、RGBDカメラ、赤外線カメラ、構造化光センサ、超音波センサ、またはコヒーレント光センサを含む、センサのうちの1つまたはそれを上回るタイプを含んでもよい。これらのデバイスは、赤外線エミッタ、超音波エミッタ、または構造化光エミッタ等、センサ情報を収集することを補助する、1つまたはそれを上回るコンポーネントを含んでもよい。代替として、または加えて、そのようなデバイスは、ジャイロスコープセンサ、加速度計、磁力計、高度計、近接度センサ、およびGPSセンサ等、姿勢を決定することを補助する、センサを含んでもよい。
環境の表現は、いくつかの実施形態では、XRデバイスを囲繞し、デバイスが動作するにつれて収集された1つまたはそれを上回る画像からの情報を統合することによって、XRデバイスによって作成される、環境のローカルマップであってもよい。いくつかの実施形態では、ローカルマップの座標系が、デバイスが、最初に、環境の走査を開始する(例えば、新しいセッションを開始する)ときのデバイスの位置および/または配向に結び付けられてもよい。デバイスのその位置および/または配向は、セッション毎に変化し得る。
ローカルマップは、マップを形成する際に使用される、センサ捕捉情報内で検出された特徴のサブセットに基づいて、環境を表す、疎情報を含んでもよい。加えて、または代替として、ローカルマップは、メッシュ等の環境内の表面の情報を用いて環境を表す、稠密情報を含んでもよい。
マップ内の特徴のサブセットは、特徴のうちの1つまたはそれを上回るタイプを含んでもよい。いくつかの実施形態では、特徴のサブセットは、テーブルの角等の点特徴を含んでもよく、これは、視覚的情報に基づいて検出されてもよい。いくつかの実施形態では、システムは、代替として、または加えて、平面等の平面特徴等のより高いレベルの特徴に基づいて、3D環境の表現を形成してもよい。平面は、例えば、深度情報を処理することによって検出されてもよい。デバイスは、特徴点の代わりに、またはそれに加え、平面特徴を記憶し得るが、いくつかの実施形態では、対応する点特徴の代わりに、平面特徴を記憶することは、マップのサイズを低減させ得る。例えば、平面は、マップの座標系の原点までの面法線および符号付き距離を用いて表される、マップ内に記憶されてもよい。対照的に、同一構造は、複数の特徴点として記憶され得る。
潜在的に、マップを作成するための入力を供給することに加え、センサ捕捉情報が、環境内のデバイスの運動を追跡するために使用されてもよい。追跡は、XRシステムが、マップによって確立される基準フレームに対する個別のデバイスの姿勢を推定することによって、XRデバイスを位置特定することを可能にし得る。XRデバイスを位置特定することは、比較を行い、XRデバイスによって捕捉された画像から抽出された測定のセットと既存のマップ内に記憶される特徴のセットとの間のマッチングを見出すことを要求し得る。
マップの作成とデバイスの位置特定との間の本共依存性は、有意な課題を構成する。平面を使用して、3D環境内の表面を表す、簡略化を用いても、実質的処理が、マップを正確に作成し、同時に、デバイスを位置特定するために要求され得る。処理は、デバイスが環境内で移動するにつれて、迅速に遂行されなければならない。他方では、XRデバイスは、デバイスが、合理的柔軟性を伴って、合理的速度で、環境内を移動し得るように、限定された算出リソースを有し得る。
その処理は、その中で平面が検出される、3D環境のマップを形成する際に使用される、平面特徴パラメータおよびセンサ姿勢をともに最適化することを含み得る。平面特徴パラメータおよび姿勢をともに最適化するための従来の技法は、高算出コストおよびメモリ消費を被り得る。センサは、異なる姿勢における平面特徴の異なる観察を記録し得るため、従来のアプローチに従う共同最適化は、小規模作業空間のためであっても、非常に大きな非線形最小二乗問題の解を要求し得る。
本明細書で使用されるように、「~を最適化する」(および類似用語)は、完璧または理論的に最良な解をもたらす必要はない。むしろ、最適化は、解における誤差の測定値を低減させる、処理から生じ得る。誤差を低減させるための処理は、十分に低誤差を伴う解に到達するまで、実施されてもよい。そのような処理は、反復的に実施されてもよく、反復は、十分に低誤差を示す、終了基準が検出されるまで、実施されてもよい。終了基準は、閾値を下回る、反復毎の誤差におけるパーセンテージ低減によって検出され得る、処理が解に収束したことのインジケーションであってもよい、および/または所定の数の反復および/または低誤差を伴う解が識別されたことを示す他の基準であってもよい。
効率的マップ最適化のための技法が、本明細書に説明され、XRシステムが、これらの技法を用いてマップを最適化し得る、システムの実施例として使用されている。いくつかの実施形態では、マップ内の各平面についての情報は、個別の姿勢から入手された複数の画像のそれぞれにおいて収集される。各平面の観察が、そこで3D表現を作成する際に使用される画像が捕捉された、各姿勢において行われてもよい。平面の1つまたはそれを上回る観察を示す、本情報は、行列としてフォーマット化されてもよい。マップを最適化するための従来のアプローチでは、本行列は、Jacobeanであり得、最適化は、本Jacobean行列を使用して実施される、算出に基づき得る。
いくつかの実施形態によると、最適化は、分解された行列に基づいて実施されてもよく、これは、従来のアプローチ内で使用されるような行列に数学的に関連し得るが、これは、行列と比較して、低減された行を有し得る。XRシステムは、低減された行を有する、分解された行列のうちの1つに基づいて、平面特徴の精緻化されたパラメータおよび精緻化された姿勢を算出し得、これは、算出コストおよびメモリ記憶を低減させる。平面特徴の精緻化されたパラメータおよび精緻化された姿勢は、個別の精緻化された姿勢からの個別の平面特徴への平面特徴の観察の投影誤差が最小となるように、算出され得る。
本明細書に説明される技法は、限定された算出リソースを伴う、ウェアラブルまたはポータブルまたは自律デバイスを含む、多くのタイプのデバイスとともに、かつ多くのタイプの環境のために、ともにまたは別個に使用されてもよい。いくつかの実施形態では、技法は、XRシステムの一部を形成する、1つまたはそれを上回るサービスによって実装されてもよい。
例示的システム
図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内の表面までの距離を表し得る、複数のピクセルを有してもよい。未加工深度データが、深度センサから生じ、深度マップを作成し得る。そのような深度マップは、深度センサが新しい画像を形成し得るほど高速に更新され得、これは、数百または数千回/秒であり得る。しかしながら、そのデータは、雑音が多くかつ不完全であって、図示される深度マップ上に黒色ピクセルとして示される、穴を有し得る。
センサ522は、画像センサ等の他のセンサを含んでもよい。画像センサは、単眼または立体視情報等の情報を入手してもよく、これは、物理的世界を他の方法で表すように処理されてもよい。いくつかの実施形態では、システムは、例えば、以下、すなわち、LiDARカメラ、RGBDカメラ、赤外線カメラセンサ、可視スペクトルカメラセンサ、構造化光エミッタおよび/またはセンサ、赤外線光エミッタ、コヒーレント光エミッタおよび/またはセンサ、ジャイロスコープセンサ、加速度計、磁力計、高度計、近接度センサ、GPSセンサ、超音波エミッタおよび検出器、および触知インターフェースのうちの1つまたはそれを上回るもの等の他のセンサを含んでもよい。センサデータは、世界再構築コンポーネント516内で処理され、物理的世界内のオブジェクトの接続された部分を表す、メッシュを作成してもよい。例えば、色および表面テクスチャを含む、そのようなオブジェクトについてのメタデータも同様に、センサを用いて入手され、世界再構築物の一部として記憶されてもよい。システムを含む、デバイスの場所についてのメタデータは、センサデータに基づいて、決定または推測されてもよい。例えば、磁力計、高度計、GPSセンサ、および同等物が、デバイスの場所を決定または推測するために使用されてもよい。デバイスの場所は、可変粒度であってもよい。例えば、デバイスの決定された場所の正確度は、大まか(例えば、10メートル球径まで正確)から、微細(例えば、3メートル球径まで正確)、非常に微細(例えば、1メートル球径まで正確)、超微細(例えば、0.5メートル球径まで正確)等まで変動し得る。
システムはまた、物理的世界に対するユーザの頭部姿勢(または「姿勢」)についての情報を入手してもよい。いくつかの実施形態では、システムの頭部姿勢追跡コンポーネントは、頭部姿勢をリアルタイムで算出するために使用されてもよい。頭部姿勢追跡コンポーネントは、例えば、3つの垂直軸における平行移動(例えば、前/後、上/下、左/右)および3つの垂直軸を中心とした回転(例えば、ピッチ、ヨー、およびロール)を含む、6自由度を伴って、座標フレーム内のユーザの頭部姿勢を表し得る。いくつかの実施形態では、センサ522は、頭部姿勢514を算出および/または決定するために使用され得る、慣性測定ユニットを含んでもよい。深度マップのための頭部姿勢514は、例えば、6自由度を伴う、深度マップを捕捉するセンサの現在の視点を示し得るが、頭部姿勢514は、画像情報を物理的世界の特定の部分に関連させる、またはユーザの頭部上に装着されるディスプレイの位置を物理的世界に関連させる等の他の目的のために使用されてもよい。
いくつかの実施形態では、頭部姿勢情報は、画像内のオブジェクトの分析から等、IMU以外の方法で導出されてもよい。例えば、頭部姿勢追跡コンポーネントは、カメラによって捕捉された視覚的情報およびIMUによって捕捉された慣性情報に基づいて、物理的オブジェクトに対するARデバイスの相対的位置および配向を算出してもよい。頭部姿勢追跡コンポーネントは、次いで、例えば、物理的オブジェクトに対するARデバイスの算出された相対的位置および配向と物理的オブジェクトの特徴を比較することによって、ARデバイスの頭部姿勢を算出してもよい。いくつかの実施形態では、その比較は、経時的に捕捉された画像内のこれらの特徴の位置の変化がユーザの頭部姿勢の変化と関連付けられ得るように、経時的に安定する、センサ522のうちの1つまたはそれを上回るものを用いて捕捉された画像内の特徴を識別することによって、行われてもよい。
XRシステムを動作させるための技法は、より没入型のユーザ体験のために、XR場面を提供してもよい。そのようなシステムでは、XRデバイスは、算出リソースの低使用量を伴って、頭部姿勢を1kHzの周波数で推定し得る。そのようなデバイスは、例えば、30Hzで動作する、4つのビデオグラフィックアレイ(VGA)カメラ、1kHzで動作する、1つの慣性測定ユニット(IMU)、単一の高度RISC機械(ARM)コアの算出電力、1GB未満のメモリ、および100Mbp未満のネットワーク帯域幅とともに構成され得る。本明細書に説明されるような技法は、マップを生成および維持し、頭部姿勢を推定し、かつ低算出オーバーヘッドを伴って、データを提供および消費するために要求される処理を低減させるために採用されてもよい。XRシステムは、マッチングされた視覚的特徴に基づいて、その姿勢を計算してもよい。米国特許出願公開第US2019/0188474号は、ハイブリッド追跡を説明しており、参照することによってその全体として本明細書に組み込まれる。
いくつかの実施形態では、ARデバイスは、ユーザがARデバイスとともに物理的世界全体を通して移動するにつれて捕捉された一連の画像フレーム内の連続画像内で認識される、特徴点から、マップを構築してもよい。各画像フレームは、ユーザが移動するにつれて、異なる姿勢から得られ得るが、システムは、連続画像フレームの特徴と以前に捕捉された画像フレームをマッチングさせることによって、各連続画像フレームの特徴の配向を調節し、初期画像フレームの配向をマッチングさせてもよい。同一特徴を表す点が、以前に収集された画像フレームからの対応する特徴点にマッチングするであろうように、連続画像フレームの平行移動は、各連続画像フレームを整合させ、以前に処理された画像フレームの配向をマッチングさせるために使用されることができる。結果として生じるマップ内のフレームは、第1の画像フレームがマップに追加されたときに確立される共通配向を有し得る。本マップは、共通基準フレーム内の特徴点のセットとともに、現在の画像フレームからの特徴をマップにマッチングさせることによって、物理的世界内のユーザの姿勢を決定するために使用されてもよい。いくつかの実施形態では、本マップは、追跡マップと呼ばれ得る。
代替として、または加えて、ユーザの周囲の3D環境のマップが、画像情報に基づいて、平面または他の表面を識別することによって構築されてもよい。画像毎のこれらの表面の位置は、表現を作成するために相関されてもよい。本明細書に説明されるように、そのようなマップを効率的に最適化するための技法は、そのマップを形成するために使用されてもよい。そのようなマップは、仮想オブジェクトを物理的世界に対して位置付けるために、または異なるまたは付加的機能のために使用されてもよい。例えば、平面に基づく3D表現は、頭部姿勢追跡のために使用されてもよい。
環境内のユーザの姿勢の追跡を有効にすることに加え、本マップは、世界再構築コンポーネント516等のシステムの他のコンポーネントがユーザに対する物理的オブジェクトの場所を決定することを可能にし得る。世界再構築コンポーネント516は、深度マップ512および頭部姿勢514およびセンサからの任意の他のデータを受信し、そのデータを再構築物518の中に統合してもよい。再構築物518は、センサデータより完全かつより雑音が少なくあり得る。世界再構築コンポーネント516は、経時的に複数の視点からのセンサデータの空間および時間的平均を使用して、再構築物518を更新してもよい。
再構築物518は、例えば、ボクセル、メッシュ、平面等を含む、1つまたはそれを上回るデータフォーマットにおいて、物理的世界の表現を含んでもよい。異なるフォーマットは、物理的世界の同一部分の代替表現を表し得る、または物理的世界の異なる部分を表し得る。図示される実施例では、再構築物518の左側には、物理的世界の一部が、グローバル表面として提示され、再構築物518の右側には、物理的世界の一部が、メッシュとして提示される。
いくつかの実施形態では、頭部姿勢コンポーネント514によって維持されるマップは、物理的世界の維持され得る、他のマップに対して疎隔されてもよい。場所および可能性として表面の他の特性についての情報を提供するのではなく、疎マップは、角または縁等の着目点および/または構造の場所を示してもよい。いくつかの実施形態では、マップは、センサ522によって捕捉されるような画像フレームを含んでもよい。これらのフレームは、着目点および/または構造を表し得る、特徴に低減され得る。各フレームと併せて、そこからフレームが入手されたユーザの姿勢についての情報もまた、マップの一部として記憶されてもよい。いくつかの実施形態では、センサによって入手された全ての画像が、記憶される場合とそうではない場合がある。いくつかの実施形態では、システムは、それらがセンサによって収集されるにつれて、画像を処理し、さらなる算出のために、画像フレームのサブセットを選択してもよい。選択は、情報の追加を限定するが、マップが有用な情報を含有することを確実にする、1つまたはそれを上回る基準に基づいてもよい。システムは、例えば、マップにすでに追加されている以前の画像フレームとの重複に基づいて、または定常オブジェクトを表す可能性が高いと決定された十分な数の特徴を含有する、画像フレームに基づいて、新しい画像フレームをマップに追加してもよい。いくつかの実施形態では、選択された画像フレームまたは選択された画像フレームからの特徴の群は、マップのためのキーフレームとしての役割を果たし得、これは、空間情報を提供するために使用される。
いくつかの実施形態では、マップを構築するときに処理される、データの量は、マッピングされた点の集合およびキーフレームを伴う、疎マップを構築し、および/またはマップをブロックに分割し、ブロック別の更新を有効にすること等によって、低減されてもよい。マッピングされた点は、環境内の着目点と関連付けられ得る。キーフレームは、カメラ捕捉データから選択された情報を含んでもよい。米国特許出願公開第US2020/0034624号は、位置特定マップを決定および/または評価することを説明しており、参照することによってその全体として本明細書に組み込まれる。
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)コアより少ない算出予算を使用して、物理的世界表現をリアルタイムで非所定の空間上に生成してもよい。
3D環境のマップを最適化するための本明細書に説明されるような処理は、システムの任意のプロセッサ内で実施されてもよい。しかしながら、本明細書に説明されるような最適化のために要求される低減された算出および低減されたメモリは、そのような動作が、ウェアラブルデバイスの一部である、ローカルプロセッサ上で、短待ち時間を伴って、実施さ得ることを可能にし得る。
いくつかの実施形態では、遠隔データリポジトリ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つまたはそれを上回る更新された環境マップを作成するために処理するために選択されてもよい。新しい追跡マップが、それにわたって更新するための既存の環境マップが存在しない、物理的世界の部分を表すとき、その追跡マップは、新しい環境マップとしてデータベース内に記憶されてもよい。
平面を用いたマップの効率的処理のための技法
図7は、特徴点に基づく、マップを図示する。いくつかのシステムは、個々の点のではなく、平面等の認識される表面に基づいて、マップを作成してもよい。いくつかの実施形態では、マップ点702を含有するのではなく、マップは、平面を含有してもよい。例えば、そのようなマップは、テーブルの角および可能性として、表面上の点を表す、特徴点の集合ではなく、平面を含有し、テーブルの表面を表してもよい。
そのようなマップを作成/更新する処理は、種々の姿勢から入手された画像内の平面の特徴(位置および配向等)を算出することを含んでもよい。しかしながら、姿勢の決定は、以前に検出された平面の推定される特徴に依存してもよい。したがって、マップを作成および更新することは、平面を説明する、推定される特徴と、そこから平面の特徴を推定するために使用される画像が捕捉される、センサ姿勢とをともに最適化することを伴ってもよい。共同最適化は、平面バンドル調整と称され得る。
本発明者らは、1つまたはそれを上回る平面特徴とともにマップに適用される、平面バンドル調整の従来のアプローチが、大規模非線形最小二乗問題をもたらし得、これが、高算出コストおよびメモリ消費を被ることを認識し、理解した。その中でセンサの1つの記録が点特徴の単一観察をもたらし得る、特徴点によって表されるマップのための従来実施されるバンドル調整と異なり、平面特徴は、無限オブジェクトであり得、センサからの1つの画像は、平面特徴の複数の観察を提供することができる。平面特徴の各観察は、平面特徴の平面パラメータおよび姿勢の姿勢パラメータに制約を課し、小作業場に関してさえ、大規模非線形最小二乗問題をもたらし得る。
本発明者らは、算出コストおよびメモリ使用量を低減させる、平面バンドル調整を認識し、その真価を認めた。図8Aは、いくつかの実施形態による、異なる姿勢における種々の平面の観察を図示する、概略図である。図示される実施例では、M個の平面と、N個のセンサ姿勢とが存在する。i番目の姿勢の回転および平行移動は、Ri∈SO3およびti∈R3として示される。j番目の平面が、πj=[nj;dj]としてのパラメータを有し、nが、||n||2=1を伴う、面法線であって、dが、座標系原点から平面までの負の距離であると仮定する。i番目の姿勢におけるj番目の平面の測定は、以下のように定義される、Kij個の点の集合である。
各pijk∈Pijは、i番目の姿勢およびj番目の平面に関する1つの制約を提供し、これは、図8Bに図示される。残差δijkは、pijkから平面πjまでの符号付き距離であって、これは、以下のように記述され得る。
各pijk∈Pijは、i番目の姿勢およびj番目の平面に関する1つの制約を提供し、これは、図8Bに図示される。残差δijkは、pijkから平面πjまでの符号付き距離であって、これは、以下のように記述され得る。
tiと異なり、回転Riおよび平面パラメータπjは、さらなる制約を有する。例えば、Riは、四元数、角軸、またはオイラー角によってパラメータ化されることができる。平面パラメータπjは、四元数に基づく、同次座標、最近点パラメータか、または最小限のパラメータ化によって表され得る。特殊パラメータ化にかかわらず、本実施例は、θi→R(θi)およびωj→π(ωj)を定義し、回転および平面パラメータに関する恣意的パラメータ化を提示する。θiおよびtiは、センサ姿勢に関連し、これは、ρi=[θi;ti]として組み合わせられてもよい。ρiは、回転行列のパラメータ化に対して変化される、6または7つの未知数を有してもよい、(四元数に関する7および角軸パラメータ化等の回転の最小限の表現に関する6)。ωjは、3または4つの未知数を有してもよい(平面の最小限の表現に関する3および平面の同次座標に関する4)。これらの表記を使用して、残差δijkは、ρiおよびωjの関数である。
平面バンドル調整は、以下の非線形最小二乗問題を最小限にすることによって、全てのρi(i≠1)およびωjをともに精緻化する、問題であり得る。
ここでは、第1の姿勢ρ1は、最適化の間、固定され、座標系を剛性にアンカする。
ここでは、第1の姿勢ρ1は、最適化の間、固定され、座標系を剛性にアンカする。
平面バンドル調整のJacobian行列が、算出されてもよく、最小二乗問題を解く、アルゴリズム(例えば、Levenberg-Marquardt(LM)アルゴリズムおよびGaussian-Newtonアルゴリズム)に提供されてもよい。i番目の姿勢におけるj番目の平面の観察は、点集合Pijである。Jacobian行列Jijは、点集合Pijから導出されてもよい。Jacobian行列Jは、全てのJijのスタックであってもよい。Pij内にKij個の点が存在すると仮定する。Jij(i≠1)は、以下のような形態を有する。
の偏導関数が、(7)における残差δijkの形態に基づいて、算出されてもよい。これは、以下のように定義されてもよい。
上記に定義されたRiの要素は、θiの関数機能であって、djおよびnjの要素は、ωjの関数機能であることに留意されたい。pijkは、i番目の姿勢におけるj番目の平面のk番目の測定を表し得る。xjik、yijk、およびzijkは、センサ座標フレームまたはデバイス座標フレームまたは規準座標フレームであり得る、座標フレーム内のpijkの位置を表し得る。残差δijkは、(10)を(7)に代入し、それを拡張させることによって算出されることができる。これは、以下をもたらす。
(11)は、以下のように書き換えられてもよい。
式中、cijkおよびνijは、以下のような13次元ベクトルである。
cijk内の要素は、観察pijkまたは1からのものであって、これは、定数である。他方では、νij内の要素は、ρiおよびωjの関数である。
δijkの偏導関数は、ρiが、nρ個の未知数を有し、ωjが、nω個の未知数を有すると仮定することによって算出されることができる。これは、以下のように定義されてもよい。
ζij dは、ζijのd番目の要素であると仮定する。(12)に従って、ζij dに対するδijkの偏導関数は、以下のような形態を有する。
式中、
は、13次元ベクトルであって、その要素は、ζij dに対するνijの要素の偏導関数である。(15)に従って、
は、以下のような形態を有する。
Vρiは、13×6または13×7行列(四元数に関する13×7および回転行列の最小限の表現に関する13×6)であってもよい。同様に、
は、以下のような形態を有する。
Vωjは、13×3または13×4行列(平面の最小限の表現に関する13×3および平面の同次座標に関する13×4)であってもよい。
ζij dは、ζijのd番目の要素であると仮定する。(12)に従って、ζij dに対するδijkの偏導関数は、以下のような形態を有する。
式中、
は、13次元ベクトルであって、その要素は、ζij dに対するνijの要素の偏導関数である。(15)に従って、
は、以下のような形態を有する。
Vρiは、13×6または13×7行列(四元数に関する13×7および回転行列の最小限の表現に関する13×6)であってもよい。同様に、
は、以下のような形態を有する。
Vωjは、13×3または13×4行列(平面の最小限の表現に関する13×3および平面の同次座標に関する13×4)であってもよい。
Jacobian行列Jijが、以下に基づいて算出されてもよい。
式中、k番目の行cijkは、(13)に定義される。Cijは、サイズKij×13の行列である。Jacobian行列Jijは、(18)におけるCijの定義を使用して、(16)および(17)を(9)に代入することによって算出されてもよい。これは、以下をもたらす。
式中、k番目の行cijkは、(13)に定義される。Cijは、サイズKij×13の行列である。Jacobian行列Jijは、(18)におけるCijの定義を使用して、(16)および(17)を(9)に代入することによって算出されてもよい。これは、以下をもたらす。
Cijは、以下のような形態で書き込まれることができる。
式中、Mijは、サイズ4×13であって、QT ijQij=I4I4は、4×4単位行列である。(13)におけるcijkの定義に示されるように、xijk、yijk、zijk、および1は、数回、複製され、cijkを形成する。したがって、Cijの13列の中に4つのみの個々の列が存在し、これは、定数1と、Pij内の点のx、y、z座標とを含有する。これは、以下のように示される。
Cij内の13列は、Eij内の4列のコピーである。Eijは、以下のように分解されることができる。
式中、QT ijQij=I4およびUijは、上三角行列である。Qijは、サイズKij×4であって、Uijは、サイズ4×4である。点Kijの数は、概して、4よりはるかに大きいため、QR分解が、使用されてもよい。thinQR分解は、算出時間を低減させることができる。Uijは、以下のように、その列によってパーティション化されることができる。
(24)を(22)に代入すると、以下がもたらされる。
(22)および(23)を比較すると、以下がもたらされる。
Cijの列は、Eijの列のコピーであるため、(13)におけるcijkの形態および(22)におけるEijの定義に従って、Cijは、以下のように記述されることができる。
(26)を(27)に代入すると、以下がもたらされる。
式中、Mijは、サイズ4×13であって、QT ijQij=I4I4は、4×4単位行列である。(13)におけるcijkの定義に示されるように、xijk、yijk、zijk、および1は、数回、複製され、cijkを形成する。したがって、Cijの13列の中に4つのみの個々の列が存在し、これは、定数1と、Pij内の点のx、y、z座標とを含有する。これは、以下のように示される。
Cij内の13列は、Eij内の4列のコピーである。Eijは、以下のように分解されることができる。
式中、QT ijQij=I4およびUijは、上三角行列である。Qijは、サイズKij×4であって、Uijは、サイズ4×4である。点Kijの数は、概して、4よりはるかに大きいため、QR分解が、使用されてもよい。thinQR分解は、算出時間を低減させることができる。Uijは、以下のように、その列によってパーティション化されることができる。
(24)を(22)に代入すると、以下がもたらされる。
(22)および(23)を比較すると、以下がもたらされる。
Cijの列は、Eijの列のコピーであるため、(13)におけるcijkの形態および(22)におけるEijの定義に従って、Cijは、以下のように記述されることができる。
(26)を(27)に代入すると、以下がもたらされる。
Cijの分解は、算出コストを有意に低減させるために使用されることができる。thinQR分解が、実施例に説明されるが、他の分解方法も、例えば、特異値分解(SVD)を含め、使用されてもよい。
低減されたJacobian行列Jr
ijは、Mijが、Cijよりはるかに小さい行列であるため、Jacobian行列Jijより少ない行を有する。Cijは、サイズKij×13を有する。対照的に、Mijは、サイズ4×13を有する。概して、Kijは、4よりはるかに大きい。
Jrは、Jに置換し、最小二乗問題を解く、アルゴリズム内のJTJを計算することができる。平面バンドル調整のために、JTJ=JrTJrである。JおよびJrは、(30)に定義されるように、JijおよびJr
ijの観点から、ブロックベクトルである。ブロック行列乗算に従って、以下となる。
i≠1に関して、(19)における表現を使用して、JT ijJijは、以下の形態を有する。
同様に、(29)における表現を使用して、Jr ij TJr ijは、以下の形態を有する。
事実QT ijQij=I4を使用して、(21)を
に代入する。
同様に、
i=1に関して、(20)に従って、JT 1jJ1jに関する唯一の非ゼロ項は、VT ωjCT 1jC1jVωjである。他方では、(29)に従って、Jr 1j TJr 1jは、1つのみの対応する非ゼロ項VT ωjMT 1jM1jVωjを有する。(34)における導出と同様に、以下を有する。
要するに、(34)、(35)、および(36)を使用して、JT ijJij=Jr ij TJr ijとなる。(31)に従って、その結果、JTJ=JrTJrとなる。
i≠1に関して、(19)における表現を使用して、JT ijJijは、以下の形態を有する。
同様に、(29)における表現を使用して、Jr ij TJr ijは、以下の形態を有する。
事実QT ijQij=I4を使用して、(21)を
に代入する。
同様に、
i=1に関して、(20)に従って、JT 1jJ1jに関する唯一の非ゼロ項は、VT ωjCT 1jC1jVωjである。他方では、(29)に従って、Jr 1j TJr 1jは、1つのみの対応する非ゼロ項VT ωjMT 1jM1jVωjを有する。(34)における導出と同様に、以下を有する。
要するに、(34)、(35)、および(36)を使用して、JT ijJij=Jr ij TJr ijとなる。(31)に従って、その結果、JTJ=JrTJrとなる。
Pij内のKij個の点に関する残差ベクトルは、
として定義されることができる。(12)に従って、δijは、以下のように記述されることができる。
δijの低減された残差ベクトルδr ijは、以下のように定義されることができる。
全てのδijおよびδr ijをスタックすると、残差ベクトルδおよび低減された残差ベクトルδrは、以下のような形態を有する。
低減された残差ベクトルδrは、最小二乗問題を解く、アルゴリズム内の残差ベクトルδに置換することができる。平面バンドル調整に関して、JTδ=JrTδrとなる。J、Jr、δおよびδrは、それぞれ、(30)および(39)に定義されるような要素Jij、Jr ij、δij、およびδr ijを伴う、ブロックベクトルである。ブロック行列乗算を適用すると、以下となる。
i≠1に関して、(19)におけるJijおよび(29)におけるJr ijの表現および(37)におけるδijおよび(38)におけるδr ijの表現を使用して、JT ijδijおよびJr ij Tδr ijは、以下のような形態を有する。
事実QT ijQij=I4を使用して、(21)を
に代入する。
同様に、
i=1に関して、(20)および(37)をJT 1jδ1jに代入し、ブロック行列乗算を適用すると、JT 1jδ1jの唯一の非ゼロ項は、VT ω1jCT 1jC1jν1jとなる。他方では、(29)および(38)をJr 1j Tδr 1jに代入すると、Jr 1j Tδr 1jのみが、1つの非ゼロ項VT ω1jMT 1jM1jν1jを有する。(42)における導出と同様に、以下となる。
要するに、(42)、(43)、および(44)から、JT ijδij=Jr ij Tδijとなる。(40)に従って、JTδ=JrTδとなる。
として定義されることができる。(12)に従って、δijは、以下のように記述されることができる。
δijの低減された残差ベクトルδr ijは、以下のように定義されることができる。
全てのδijおよびδr ijをスタックすると、残差ベクトルδおよび低減された残差ベクトルδrは、以下のような形態を有する。
低減された残差ベクトルδrは、最小二乗問題を解く、アルゴリズム内の残差ベクトルδに置換することができる。平面バンドル調整に関して、JTδ=JrTδrとなる。J、Jr、δおよびδrは、それぞれ、(30)および(39)に定義されるような要素Jij、Jr ij、δij、およびδr ijを伴う、ブロックベクトルである。ブロック行列乗算を適用すると、以下となる。
i≠1に関して、(19)におけるJijおよび(29)におけるJr ijの表現および(37)におけるδijおよび(38)におけるδr ijの表現を使用して、JT ijδijおよびJr ij Tδr ijは、以下のような形態を有する。
事実QT ijQij=I4を使用して、(21)を
に代入する。
同様に、
i=1に関して、(20)および(37)をJT 1jδ1jに代入し、ブロック行列乗算を適用すると、JT 1jδ1jの唯一の非ゼロ項は、VT ω1jCT 1jC1jν1jとなる。他方では、(29)および(38)をJr 1j Tδr 1jに代入すると、Jr 1j Tδr 1jのみが、1つの非ゼロ項VT ω1jMT 1jM1jν1jを有する。(42)における導出と同様に、以下となる。
要するに、(42)、(43)、および(44)から、JT ijδij=Jr ij Tδijとなる。(40)に従って、JTδ=JrTδとなる。
いくつかの実施形態では、低減されたJacobean行列を使用する、システムは、Jacobean行列を形成する、または算出を繰り返し、本明細書に説明される低減された行列の形態に到達せずに、低減されたJacobean行列を、直接、センサデータまたは他の情報から算出し得ることを理解されたい。
平面バンドル調整に関して、低減されたJacobian行列Jrおよび低減された残差ベクトルδrは、(4)におけるJおよびδに置換し、最小二乗問題を解く、アルゴリズム内のステップを算出することができ、Jrおよびδr内の各ブロックJr
ijおよびδijrは、4行を有する。最小二乗問題を解く、アルゴリズムは、(4)を使用して、反復毎に、ステップを計算する。JTJ=JrTJr、JTδ=JrTδであるため、
は、
と同等である。したがって、Jrおよびδrは、最小二乗問題を解く、アルゴリズム内のステップを算出するために、Jおよびδに置換することができる。(29)におけるJr ijおよび(38)におけるδr ijの定義に従って、Jr ijおよびδr ijの行の数は、Mijの行の数と同一であって、これは、4行を有する。その結果、Jrおよびδrは、4行を有する。したがって、Pij内にあり得る点の数にかかわらず、低減されたJr ijおよびδr ijは、最大で4行を有する。これは、最小二乗問題を解く、アルゴリズム内の算出コストを有意に低減させる。ここでの付加的コストは、Cij=QijMijを計算するためのものである。Cijは、反復の間、一定に保たれるため、反復前に、単回にわたって、算出される。
は、
と同等である。したがって、Jrおよびδrは、最小二乗問題を解く、アルゴリズム内のステップを算出するために、Jおよびδに置換することができる。(29)におけるJr ijおよび(38)におけるδr ijの定義に従って、Jr ijおよびδr ijの行の数は、Mijの行の数と同一であって、これは、4行を有する。その結果、Jrおよびδrは、4行を有する。したがって、Pij内にあり得る点の数にかかわらず、低減されたJr ijおよびδr ijは、最大で4行を有する。これは、最小二乗問題を解く、アルゴリズム内の算出コストを有意に低減させる。ここでの付加的コストは、Cij=QijMijを計算するためのものである。Cijは、反復の間、一定に保たれるため、反復前に、単回にわたって、算出される。
いくつかの実施形態では、平面バンドル調整は、N個の姿勢およびM個の平面パラメータの初期予測および測定値{Pij}を取得してもよい。平面バンドル調整は、(11)のように、pijk∈Pij毎に、行列ブロックcijkを算出し、(16)のように、行列ブロックをCijにスタックしてもよい。平面バンドル調整は、(19)のように、Cijを直交行列Qijおよび上三角行列Mijに分解してもよい。上三角行列Mijは、最小二乗問題を解く、アルゴリズム(例えば、Levenberg-Marquardt(LM)アルゴリズムおよびGaussian-Newtonアルゴリズム)に提供され、(27)のように、低減されたJacobian行列ブロックJr
ijと、(36)のように、低減された残差ブロックδr
ijとを算出してもよく、これは、(28)のように、低減されたJacobian行列Jrと、(37)のように、低減された残差ベクトルδrとを形成するようにスタックされてもよい。最小二乗問題を解く、アルゴリズムは、収束するまで、精緻化された姿勢および平面パラメータを算出してもよい。
いくつかの実施形態では、平面特徴は、3D再構築物内で、点特徴等の他の特徴と組み合わせられてもよい。複数の特徴から導出される、組み合わせられたコスト関数では、平面コストからのJacobian行列は、(28)におけるJの形態を有し、および残差ベクトルはまた、(37)におけるδの形態を有する。したがって、(28)における低減されたJacobian行列Jrおよび(37)における低減された残差ベクトルδは、ハイブリッド特徴を伴うバンドル調整における、Jacobian行列およびオリジナル残差ベクトルに置換し得る。
環境の表現は、平面バンドル調整を用いて算出されてもよい。図9は、いくつかの実施形態による、環境の表現を提供する方法900を図示する、フローチャートである。図10は、いくつかの実施形態による、方法900を使用して、センサ捕捉情報に基づいて算出される、環境の表現の部分1000を図示する、概略図である。
方法900は、個別の姿勢において、1つまたはそれを上回るセンサによって捕捉された情報を取得すること(行為902)から開始してもよい。いくつかの実施形態では、取得される情報は、視覚的画像および/または深度画像であってもよい。いくつかの実施形態では、画像は、複数の画像の組み合わせであり得る、キーフレームであってもよい。図10の実施例は、3つのセンサ、すなわち、センサ0、センサ1、およびセンサ2を示す。いくつかの実施形態では、センサは、デバイスに属してもよく、これは、原点Oを伴う、デバイス座標フレームを有してもよい。デバイス座標フレームは、デバイスが最初に本セッションのために環境の走査を開始したときの、場所および配向を表し得る。各センサは、対応するセンサ座標フレームを有してもよい。各センサは、個別の姿勢ρi-1、ρi、およびρi+1における、画像1002A、1002B、1002C等の1つまたはそれを上回る画像を捕捉してもよい。いくつかの実施形態では、原点Oを伴う、座標フレームは、1つまたはそれを上回るデバイスによって共有される座標フレームを表し得る。例えば、センサは、座標フレームを共有する、3つのデバイスに属してもよい。
方法900は、環境の第1の表現を提供すること(行為904)を含んでもよい。第1の表現は、センサ捕捉情報から抽出された特徴に関する特徴パラメータの初期予測と、対応する姿勢の初期予測とを含んでもよい。図10の実施例では、第1の平面1004が、画像1002Aおよび画像1002B内で観察される。第1の平面1004は、平面パラメータπj=[nj;dj]によって表されてもよい。画像1002Aおよび画像1002Bは、それぞれ、平面1004内の複数の点P(i-1)jおよびPijを観察する。第1の平面1004の部分は、画像1002Aおよび1002Bの両方によって観察されてもよい。第1の平面1004の部分は、画像1002Aのみまたは1002Bのみによって観察されてもよい。第2の平面1006が、画像1002Bおよび画像1002C内で観察される。第2の平面1006は、平面パラメータπj+1=[n(j+1);d(j+1)]によって表されてもよい。画像1002Bおよび画像1002Cは、それぞれ、平面1006内の複数の点Pi(j+1)およびP(i+1)jを観察する。第2の平面1006の部分は、画像1002Bおよび1002Cの両方によって観察されてもよい。第2の平面1006の部分は、画像1002Bのみまたは1002Cのみによって観察されてもよい。画像1002Bおよび画像1002Cはまた、点特徴1008を観察する。第1の表現は、姿勢ρi-1、ρi、およびρi+1の初期予測と、第1の平面1004および第2の平面1006に関する平面パラメータと、点特徴1008に関する点特徴パラメータとを含んでもよい。
初期予測は、最初に、特徴を観察する、画像に基づいてもよい。図10の実施例に関して、姿勢ρi-1の初期予測および第1の平面1004に関する平面パラメータは、画像1002Aに基づいてもよい。姿勢ρiの初期予測、第2の平面1006に関する平面パラメータ、および点特徴1008に関する特徴パラメータは、画像1002Bに基づいてもよい。姿勢ρi+1の初期予測は、画像1002Cに基づいてもよい。
特徴が、後続画像によって観察されるにつれて、初期予測は、精緻化され、ドリフトを低減させ、提示の品質を改良し得る。方法900は、行為906および行為908を含み、精緻化された姿勢および精緻化された特徴パラメータを算出し、これは、精緻化された平面パラメータと、精緻化された点特徴パラメータとを含んでもよい。行為906は、対応する姿勢において、平面毎に実施されてもよい。図10の実施例では、行為906は、それぞれ、姿勢ρi-1およびρiにおいて、第1の平面1004に関して実施される。行為906はまた、それぞれ、姿勢ρiおよびρi+1において、第2の平面1006に関して実施される。行為906は、個別の姿勢(例えば、姿勢i)における個別の平面(例えば、平面j)の観察を示す、行列(例えば、(16)のようなCij)を算出すること(行為906A)を含んでもよい。行為906は、行列を、行列(例えば、(19)のような上三角行列Mij)と比較して低減された行を有する、1つの行列を備える、2つまたはそれを上回る行列に分解すること(行為906B)を含んでもよい。
方法900は、精緻化された姿勢と、精緻化された特徴パラメータとを伴う、環境の第2の表現を提供すること(行為910)を含んでもよい。方法900は、行為902-910が繰り返されるべきであるように、新しい情報が観察されるかどうかを決定すること(行為912)を含んでもよい。
いくつかの実施形態のいくつかの側面がこれまで説明されたが、種々の改変、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。
一実施例として、実施形態は、拡張(AR)環境に関連して説明される。本明細書に説明される技法の一部または全部は、MR環境、またはより一般的には、他のXR環境およびVR環境および任意の他のコンピュータビジョンおよびロボットアプリケーション内に適用されてもよいことを理解されたい。
別の実施例として、実施形態は、ウェアラブルデバイス等のデバイスに関連して説明される。本明細書に説明される技法の一部または全部は、ネットワーク(クラウド等)、離散アプリケーション、および/またはデバイス、ネットワーク、および離散アプリケーションの任意の好適な組み合わせを介して実装されてもよいことを理解されたい。
そのような改変、修正、および改良は、本開示の一部であることが意図され、本開示の精神および範囲内であると意図される。さらに、本開示の利点が示されるが、本開示の全ての実施形態が、全ての説明される利点を含むわけではないことを理解されたい。いくつかの実施形態は、本明細書およびいくつかの事例において有利として説明される任意の特徴を実装しなくてもよい。故に、前述の説明および図面は、一例にすぎない。
本開示の前述の実施形態は、多数の方法のいずれかにおいて実装されることができる。例えば、実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを使用して実装されてもよい。ソフトウェア内に実装されるとき、ソフトウェアコードが、単一コンピュータ内に提供される、または複数のコンピュータ間に分散されるかどうかにかかわらず、任意の好適なプロセッサまたはプロセッサの集合上で実行されることができる。そのようなプロセッサは、いくつか挙げると、CPUチップ、GPUチップ、マイクロプロセッサ、マイクロコントローラ、またはコプロセッサ等、当技術分野において公知の市販の集積回路コンポーネントを含む、集積回路コンポーネント内の1つまたはそれを上回るプロセッサとともに、集積回路として実装されてもよい。いくつかの実施形態では、プロセッサは、ASIC等のカスタム回路内に、またはプログラマブル論理デバイスを構成することから生じる半カスタム回路内に実装されてもよい。さらなる代替として、プロセッサは、市販、半カスタム、またはカスタムかどうかにかかわらず、より大きい回路または半導体デバイスの一部であってもよい。具体的実施例として、いくつかの市販のマイクロプロセッサは、1つまたはそれらのコアのサブセットがプロセッサを構成し得るように、複数のコアを有する。但し、プロセッサは、任意の好適なフォーマットにおける回路を使用して実装されてもよい。
さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータ等のいくつかの形態のうちのいずれかで具現化され得ることを理解されたい。加えて、コンピュータは、携帯情報端末(PDA)、スマートフォン、または任意の好適な携帯用または固定電子デバイスを含む、概してコンピュータと見なされないが好適な処理能力を伴う、デバイスで具現化されてもよい。
また、コンピュータは、1つまたはそれを上回る入力および出力デバイスを有してもよい。これらのデバイスは、とりわけ、ユーザインターフェースを提示するために使用されることができる。ユーザインターフェースを提供するために使用され得る、出力デバイスの実施例は、出力の視覚的提示のためのプリンタまたはディスプレイ画面、または出力の可聴提示のためのスピーカまたは他の音生成デバイスを含む。ユーザインターフェースのために使用され得る、入力デバイスの実施例は、キーボード、およびマウス、タッチパッド、およびデジタル化タブレット等のポインティングデバイスを含む。別の実施例として、コンピュータは、発話認識を通して、または他の可聴フォーマットにおいて、入力情報を受信してもよい。図示される実施形態では、入力/出力デバイスは、コンピューティングデバイスと物理的に別個として図示される。しかしながら、いくつかの実施形態では、入力および/または出力デバイスは、プロセッサと同一ユニットまたはコンピューティングデバイスの他の要素の中に物理的に統合されてもよい。例えば、キーボードは、タッチスクリーン上のソフトキーボードとして実装され得る。いくつかの実施形態では、入力/出力デバイスは、コンピューティングデバイスから完全に接続解除され、無線接続を通して機能的に統合されてもよい。
そのようなコンピュータは、企業ネットワークまたはインターネット等、ローカルエリアネットワークまたは広域ネットワークを含む、任意の好適な形態の1つまたはそれを上回るネットワークによって相互接続されてもよい。そのようなネットワークは、任意の好適な技術に基づいてもよく、任意の好適なプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワーク、または光ファイバネットワークを含んでもよい。
また、本明細書で概説される種々の方法およびプロセスは、種々のオペレーティングシステムまたはプラットフォームのうちのいずれか1つを採用する、1つまたはそれを上回るプロセッサ上で実行可能である、ソフトウェアとしてコード化されてもよい。加えて、そのようなソフトウェアは、いくつかの好適なプログラミング言語および/またはプログラミングまたはスクリプト作成ツールのうちのいずれかを使用して、書き込まれてもよく、また、フレームワークまたは仮想マシン上で実行される実行可能機械言語コードまたは中間コードとしてコンパイルされてもよい。
本側面では、本開示は、1つまたはそれを上回るコンピュータまたは他のプロセッサ上で実行されるときに、上記で議論される本開示の種々の実施形態を実装する方法を行う、1つまたはそれを上回るプログラムで符号化される、コンピュータ可読記憶媒体(または複数のコンピュータ可読媒体)(例えば、コンピュータメモリ、1つまたはそれを上回るフロッピー(登録商標)ディスク、コンパクトディスク(CD)、光学ディスク、デジタルビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイまたは他の半導体デバイス内の回路構成、または他の有形コンピュータ記憶媒体)として具現化されてもよい。前述の実施例から明白なように、コンピュータ可読記憶媒体は、非一過性形態においてコンピュータ実行可能命令を提供するために十分な時間の間、情報を留保し得る。そのようなコンピュータ可読記憶媒体または複数の媒体は、上記に記載されるように、その上に記憶される1つまたは複数のプログラムが、本開示の種々の側面を実装するように1つまたはそれを上回る異なるコンピュータまたは他のプロセッサ上にロードされ得るように、トランスポータブルであることができる。本明細書で使用されるように、用語「コンピュータ可読記憶媒体」は、製造(すなわち、製造品)または機械と見なされ得るコンピュータ可読媒体のみを包含する。いくつかの実施形態では、本開示は、伝搬信号等のコンピュータ可読記憶媒体以外のコンピュータ可読媒体として具現化されてもよい。
用語「プログラム」または「ソフトウェア」は、上記に記載されるように、本開示の種々の側面を実装するようにコンピュータまたは他のプロセッサをプログラムするために採用され得る、任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために、一般的意味において本明細書で使用される。加えて、本実施形態の一側面によると、実行されると、本開示の方法を行う、1つまたはそれを上回るコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に常駐する必要はないが、本開示の種々の側面を実装するように、いくつかの異なるコンピュータまたはプロセッサの間でモジュール様式において分散され得ることを理解されたい。
コンピュータ実行可能命令は、1つまたはそれを上回るコンピュータまたは他のデバイスによって実行される、プログラムモジュール等の多くの形態であってもよい。概して、プログラムモジュールは、特定のタスクを行う、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。典型的には、プログラムモジュールの機能性は、種々の実施形態では、所望に応じて、組み合わせられる、または分散されてもよい。
また、データ構造は、任意の好適な形態でコンピュータ可読媒体に記憶されてもよい。例証を簡単にするために、データ構造は、データ構造内の場所を通して関係付けられるフィールドを有することが示されてもよい。そのような関係は、同様に、フィールド間の関係を伝えるコンピュータ可読媒体内の場所を伴うフィールドのために記憶装置を割り当てることによって、達成されてもよい。しかしながら、ポインタ、タグ、またはデータ要素間の関係を確立する他の機構の使用を通すことを含む、任意の好適な機構が、データ構造のフィールド内の情報の間の関係を確立するために使用されてもよい。
本開示の種々の側面は、単独で、組み合わせて、または前述の実施形態に具体的に議論されない種々の配列において使用されてもよく、したがって、その用途は、前述の説明に記載される、または図面に図示されるコンポーネントの詳細および配列に限定されない。例えば、一実施形態に説明される側面は、他の実施形態に説明される側面と任意の様式で組み合わせられてもよい。
また、本開示は、その実施例が提供されている、方法として具現化されてもよい。方法の一部として行われる作用は、任意の好適な方法で順序付けられてもよい。故に、例証的実施形態では、連続作用として示されるが、いくつかの作用を同時に行うことを含み得る、作用が図示されるものと異なる順序で行われる、実施形態が構築されてもよい。
要素を修飾するための請求項における「第1」、「第2」、「第の」等の順序の用語の使用は、単独では、別の要素と比べた1つの請求項要素のいかなる優先順位、先行、または順序、または方法の行為が行われる時間順序も含意しないが、順序の用語は、請求項要素を区別するために、(順序の用語の使用のためであるが)ある名前を有する1つの請求項要素と、同一の名前を有する別の要素を区別する標識としてのみ使用される。
また、本明細書で使用される語句および専門用語は、説明目的のためのものであって、限定と見なされるべきではない。本明細書の「~を含む」、「~を備える」、または「~を有する」、「~を含有する」、「~を伴う」、およびその変形の使用は、その後列挙されたアイテムおよびその均等物および付加的アイテムを包含することを意味する。
Claims (20)
- コンピューティングシステムを動作させ、環境の表現を生成する方法であって、前記方法は、
センサ捕捉情報を取得することであって、前記センサ捕捉情報は、第1の数の画像を備える、ことと、
前記環境の初期表現を提供することであって、前記初期表現は、少なくとも部分的に、前記第1の数の画像に基づいて、前記第1の数の初期姿勢および第2の数の平面特徴の初期パラメータを備える、ことと、
前記平面特徴の1つまたはそれを上回る観察を備える画像に対応する各姿勢における前記第2の数の平面特徴の各々に対し、
前記平面特徴の1つまたはそれを上回る観察を示す行列を算出することと、
前記行列を2つまたはそれを上回る行列に分解することであって、前記2つまたはそれを上回る行列は、前記行列と比較して低減された行を有する1つの行列を備える、ことと、
少なくとも部分的に、低減された行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することと
を含み、
前記環境の表現は、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを備える、方法。 - 前記平面特徴の1つまたはそれを上回る観察を備える画像に対応する各姿勢における前記第2の数の平面特徴の各々に対し、前記行列を2つまたはそれを上回る行列に分解することは、
直交行列および上三角行列を算出することを含む、請求項1に記載の方法。 - 前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、少なくとも部分的に、前記上三角行列に基づく、請求項2に記載の方法。
- 少なくとも部分的に、低減された行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
少なくとも部分的に、低減された行を有する前記行列に基づいて、低減されたJacobian行列ブロックを算出することを含む、請求項1に記載の方法。 - 少なくとも部分的に、低減された行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減されたJacobian行列ブロックをスタックし、低減されたJacobian行列を形成することを含む、請求項4に記載の方法。 - 少なくとも部分的に、低減された行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減されたJacobian行列を、最小二乗問題を解くアルゴリズムに提供し、現在の推定値を更新することを含む、請求項5に記載の方法。 - 少なくとも部分的に、低減された行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
少なくとも部分的に、低減された行を有する前記行列に基づいて、低減された残差ブロックを算出することを含む、請求項1に記載の方法。 - 少なくとも部分的に、低減された行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減された残差ブロックをスタックし、低減された残差ベクトルを形成することを含む、請求項7に記載の方法。 - 少なくとも部分的に、低減された行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減された残差ベクトルを、最小二乗問題を解くアルゴリズムに提供し、現在の推定値を更新することを含む、請求項8に記載の方法。 - 前記平面特徴の1つまたはそれを上回る観察を備える画像に対応する各姿勢における前記第2の数の平面特徴の各々に対し、前記平面特徴の1つまたはそれを上回る観察を示す前記行列を算出することは、
前記平面特徴の1つまたはそれを上回る観察の各々に対し、前記観察を示す行列ブロックを算出することと、
前記行列ブロックを、前記平面特徴の1つまたはそれを上回る観察を示す前記行列の中にスタックすることと
を含む、請求項1に記載の方法。 - コンピューティングシステムを動作させ、環境の表現を生成する方法であって、前記方法は、
センサ捕捉情報を取得することであって、前記センサ捕捉情報は、第1の数の画像を備える、ことと、
前記環境の初期表現を提供することであって、前記初期表現は、少なくとも部分的に、前記第1の数の画像に基づいて、前記第1の数の初期姿勢および第2の数の平面特徴の初期パラメータを備える、ことと、
前記平面特徴の1つまたはそれを上回る観察を備える画像に対応する各姿勢における前記第2の数の平面特徴の各々に対し、
第3の数の行を有する行列を算出することであって、前記第3の数は、前記平面特徴の1つまたはそれを上回る観察の数より小さい、ことと、
少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することと
を含み、
前記環境の表現は、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを備える、方法。 - 前記平面特徴の1つまたはそれを上回る観察を備える画像に対応する各姿勢における前記第2の数の平面特徴の各々に対し、前記第3の数の行を有する前記行列を算出することは、
前記平面特徴の1つまたはそれを上回る観察を示す行列を算出することと、
前記行列を2つまたはそれを上回る行列に分解することであって、前記2つまたはそれを上回る行列は、前記第3の数の行を有する前記行列を備える、ことと
を含む、請求項11に記載の方法。 - 前記行列を2つまたはそれを上回る行列に分解することは、直交行列および上三角行列を算出することを含む、請求項12に記載の方法。
- 少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、低減されたJacobian行列ブロックを算出することを含む、請求項11に記載の方法。 - 少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減されたJacobian行列ブロックをスタックし、低減されたJacobian行列を形成することを含む、請求項14に記載の方法。 - 少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減されたJacobian行列を、最小二乗問題を解くアルゴリズムに提供し、現在の推定値を更新することを含む、請求項15に記載の方法。 - 少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、低減された残差ブロックを算出することを含む、請求項11に記載の方法。 - 少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減された残差ブロックをスタックし、低減された残差ベクトルを形成することを含む、請求項17に記載の方法。 - 少なくとも部分的に、前記第3の数の行を有する前記行列に基づいて、前記第1の数の精緻化された姿勢および前記第2の数の平面特徴の精緻化されたパラメータを算出することは、
前記低減された残差ベクトルを、最小二乗問題を解くアルゴリズムに提供し、現在の推定値を更新することを含む、請求項18に記載の方法。 - 前記平面特徴の1つまたはそれを上回る観察を備える画像に対応する各姿勢における前記第2の数の平面特徴の各々に対し、前記平面特徴の1つまたはそれを上回る観察を示す前記行列を算出することは、
前記平面特徴の1つまたはそれを上回る観察の各々に対し、前記観察を示す行列ブロックを算出することと、
前記行列ブロックを、前記平面特徴の1つまたはそれを上回る観察を示す前記行列の中にスタックすることと
を含む、請求項12に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063023089P | 2020-05-11 | 2020-05-11 | |
US63/023,089 | 2020-05-11 | ||
PCT/US2021/031514 WO2021231261A1 (en) | 2020-05-11 | 2021-05-10 | Computationally efficient method for computing a composite representation of a 3d environment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023527695A true JP2023527695A (ja) | 2023-06-30 |
JPWO2021231261A5 JPWO2021231261A5 (ja) | 2024-05-20 |
Family
ID=78512726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022567781A Pending JP2023527695A (ja) | 2020-05-11 | 2021-05-10 | 3d環境の合成表現を算出するための算出上効率的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210358173A1 (ja) |
EP (1) | EP4150519A1 (ja) |
JP (1) | JP2023527695A (ja) |
CN (1) | CN115552468A (ja) |
WO (1) | WO2021231261A1 (ja) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1297691A2 (en) * | 2000-03-07 | 2003-04-02 | Sarnoff Corporation | Camera pose estimation |
WO2006034256A2 (en) * | 2004-09-17 | 2006-03-30 | Cyberextruder.Com, Inc. | System, method, and apparatus for generating a three-dimensional representation from one or more two-dimensional images |
US11195057B2 (en) * | 2014-03-18 | 2021-12-07 | Z Advanced Computing, Inc. | System and method for extremely efficient image and pattern recognition and artificial intelligence platform |
US8971612B2 (en) * | 2011-12-15 | 2015-03-03 | Microsoft Corporation | Learning image processing tasks from scene reconstructions |
US20130335528A1 (en) * | 2012-05-15 | 2013-12-19 | Board Of Regents Of The University Of Texas System | Imaging device capable of producing three dimensional representations and methods of use |
GB201303076D0 (en) * | 2013-02-21 | 2013-04-10 | Isis Innovation | Generation of 3D models of an environment |
US10203762B2 (en) * | 2014-03-11 | 2019-02-12 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US10429923B1 (en) * | 2015-02-13 | 2019-10-01 | Ultrahaptics IP Two Limited | Interaction engine for creating a realistic experience in virtual reality/augmented reality environments |
EP3494447B1 (en) * | 2016-08-04 | 2021-05-19 | Reification Inc. | Methods for simultaneous localization and mapping (slam) and related apparatus and systems |
DE102018212104A1 (de) * | 2018-07-19 | 2020-01-23 | Carl Zeiss Industrielle Messtechnik Gmbh | Verfahren und Anordnung zum optischen Erfassen eines Objekts mittels Lichtmusterprojektion |
US10950034B1 (en) * | 2020-01-27 | 2021-03-16 | Facebook Technologies, Llc | Systems, methods, and media for generating visualization of physical environment in artificial reality |
-
2021
- 2021-05-10 US US17/315,741 patent/US20210358173A1/en active Pending
- 2021-05-10 WO PCT/US2021/031514 patent/WO2021231261A1/en unknown
- 2021-05-10 JP JP2022567781A patent/JP2023527695A/ja active Pending
- 2021-05-10 CN CN202180034428.6A patent/CN115552468A/zh active Pending
- 2021-05-10 EP EP21804563.1A patent/EP4150519A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210358173A1 (en) | 2021-11-18 |
EP4150519A1 (en) | 2023-03-22 |
WO2021231261A1 (en) | 2021-11-18 |
CN115552468A (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386629B2 (en) | Cross reality system | |
US11978159B2 (en) | Cross reality system | |
US11995782B2 (en) | Cross reality system with localization service | |
US11551430B2 (en) | Cross reality system with fast localization | |
US11632679B2 (en) | Cross reality system with wireless fingerprints | |
US11257294B2 (en) | Cross reality system supporting multiple device types | |
US11967020B2 (en) | Cross reality system with map processing using multi-resolution frame descriptors | |
US20210256766A1 (en) | Cross reality system for large scale environments | |
JP2023516656A (ja) | 複数の特徴タイプに基づく効率的位置特定 | |
JP2023527695A (ja) | 3d環境の合成表現を算出するための算出上効率的方法 | |
US20240127538A1 (en) | Scene understanding using occupancy grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240509 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240509 |