(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-26
(54)【発明の名称】エピポーラ制約を使用したバンドル調節
(51)【国際特許分類】
G06T 7/80 20170101AFI20231219BHJP
H04N 13/344 20180101ALI20231219BHJP
H04N 13/378 20180101ALI20231219BHJP
【FI】
G06T7/80
H04N13/344
H04N13/378
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023535837
(86)(22)【出願日】2021-12-03
(85)【翻訳文提出日】2023-07-10
(86)【国際出願番号】 US2021061805
(87)【国際公開番号】W WO2022132464
(87)【国際公開日】2022-06-23
(32)【優先日】2020-12-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】スーイアイ, モハメド
(72)【発明者】
【氏名】グプタ, アンクール
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096CA05
5L096EA15
5L096EA16
5L096FA66
5L096FA67
5L096FA69
(57)【要約】
エピポーラ制約を使用してバンドリング調節を実施するための方法、システム、および装置。方法は、特定の姿勢に関してヘッドセットから画像データを受信することを含む。本方法は、少なくとも部分的に、第1の画像および第2の画像内に表される環境の3次元モデルにおける少なくとも1つのキー点を識別することと、バンドル調節を実施することとを含む。バンドル調節は、少なくとも1つのキー点に関する再投影誤差および少なくとも1つのキー点に関するエピポーラ誤差を共同で最適化することによって実施される。バンドル調節の結果は、(i)3次元モデルを更新すること、(ii)特定の姿勢におけるヘッドセットの位置を決定すること、または(iii)第1のカメラおよび第2のカメラの外部パラメータを決定することのうちの少なくとも1つを実施するために使用される。
【特許請求の範囲】
【請求項1】
方法であって、
ヘッドセットから、前記ヘッドセットの特定の姿勢に関する画像データを受信することであって、前記画像データは、(i)前記ヘッドセットの第1のカメラからの第1の画像と、(ii)前記ヘッドセットの第2のカメラからの第2の画像とを備える、ことと、
少なくとも部分的に、前記第1の画像および前記第2の画像内に表される環境の3次元モデルにおける少なくとも1つのキー点を識別することと、
(i)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関する再投影誤差と、(ii)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関するエピポーラ誤差とを共同で最適化することによって、前記第1の画像および第2の画像を使用して、バンドル調節を実施することと、
前記バンドル調節の結果を使用し、(i)前記3次元モデルを更新すること、(ii)前記特定の姿勢における前記ヘッドセットの位置を決定すること、または(iii)前記第1のカメラおよび第2のカメラの外部パラメータを決定することのうちの少なくとも1つを実施することと
を含む、方法。
【請求項2】
前記更新された3次元モデルに基づいて、前記ヘッドセットによる表示のための出力を提供することを含む、請求項1に記載の方法。
【請求項3】
前記エピポーラ誤差は、前記ヘッドセットの較正からの差異を引き起こす前記ヘッドセットの変形の結果である、請求項1に記載の方法。
【請求項4】
前記第1の画像および前記第2の画像に基づいて、前記第1のカメラおよび前記第2のカメラに関する外部パラメータのセットを決定することを含む、請求項1に記載の方法。
【請求項5】
前記外部パラメータは、前記ヘッドセット上の基準位置に対する前記第1のカメラまたは前記第2のカメラの関係をともに示す平行移動および回転を含む、請求項1に記載の方法。
【請求項6】
前記ヘッドセットの移動の経路に沿った複数の異なる姿勢のそれぞれにおいて、前記第1および第2のカメラから画像を受信することと、
前記エピポーラ誤差を伴う前記最適化の結果を使用して、前記異なる姿勢のうちの少なくともいくつかに関する前記第1および第2のカメラに関する異なる外部パラメータを決定することと、
を含む、請求項1に記載の方法。
【請求項7】
前記環境の3次元モデルにおける複数のキー点を識別することであって、前記複数のキー点は、それぞれ、少なくとも部分的に、前記第1の画像および前記第2の画像内に表される、ことと、
前記複数のキー点のそれぞれを横断する誤差を共同で最適化することと、
を含む、請求項1に記載の方法。
【請求項8】
前記誤差を共同で最適化することは、前記複数のキー点のそれぞれを横断する全誤差を最小限にすることを含み、前記全誤差は、前記再投影誤差および前記エピポーラ誤差の組み合わせを備える、請求項7に記載の方法。
【請求項9】
前記ヘッドセットから、前記ヘッドセットの複数の姿勢に関する第2の画像データを受信することと、
少なくとも部分的に、前記第2の画像データ内に表される前記環境の3次元モデルにおける少なくとも1つの第2のキー点を識別することと、
(i)前記第2の画像データに基づく前記少なくとも1つのキー点に関する再投影誤差と、(ii)前記第2の画像データに基づく前記少なくとも1つのキー点に関するエピポーラ誤差とを共同で最適化することによって、前記複数の姿勢毎にバンドル調節を実施することと、
前記複数の姿勢毎の前記バンドル調節の結果を使用し、(i)前記3次元モデルを更新すること、(ii)前記複数の姿勢のそれぞれにおける前記ヘッドセットの別の位置を決定すること、または(iii)前記複数の姿勢のそれぞれにおける前記第1のカメラおよび第2のカメラの他の外部パラメータを決定することのうちの少なくとも1つを実施することと
を含む、請求項1に記載の方法。
【請求項10】
前記ヘッドセットから、前記ヘッドセットの第1の姿勢に関する第1の画像データおよび前記ヘッドセットの第2の姿勢に関する第2の画像データを受信することであって、前記ヘッドセットの変形が、前記ヘッドセットの第1の姿勢と前記ヘッドセットの第2の姿勢との間で生じる、ことと、
少なくとも部分的に、前記第1の画像データ内および前記第2の画像データ内に表される前記環境の3次元モデルにおける少なくとも1つの第2のキー点を識別することと、
(a)少なくとも第2の1つのキー点に関する、(b)前記ヘッドセットの第1の姿勢と第2の姿勢との間に生じた前記ヘッドセットの変形を表す、少なくとも前記エピポーラ誤差を共同で最適化することによって、前記第1の画像データおよび前記第2の画像データを使用して、前記バンドル調節を実施することと、
前記バンドル調節の結果を使用し、(i)前記3次元モデルを更新すること、(ii)前記第1の姿勢における前記ヘッドセットの第1の位置または前記第2の姿勢における前記ヘッドセットの第2の位置を決定すること、または(iii)前記第1の姿勢における前記第1のカメラおよび前記第2のカメラの第1の外部パラメータまたは前記第2の姿勢における前記第1のカメラおよび前記第2のカメラの第2の外部パラメータを決定することのうちの少なくとも1つを実施することと
を含む、請求項1に記載の方法。
【請求項11】
(i)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関する前記再投影誤差と、(ii)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関する前記エピポーラ誤差と、(iii)前記ヘッドセットに関する工場較正データに基づく誤差とを共同で最適化することによって、前記第1の画像および前記第2の画像を使用して、バンドル調節を実施することを含む、請求項1に記載の方法。
【請求項12】
前記バンドル調節の結果を使用して、前記ヘッドセットの一連の姿勢を更新することを含む、請求項1に記載の方法。
【請求項13】
前記バンドル調節の結果を使用することは、前記3次元モデルにおける1つまたはそれを上回るキー点の位置を更新することを含む前記3次元モデルを更新することを含む、請求項1に記載の方法。
【請求項14】
前記バンドル調節の結果を使用することは、前記3次元モデルに対する前記特定の姿勢における前記ヘッドセットの位置を決定することを含む、請求項1に記載の方法。
【請求項15】
前記第1の画像および前記第2の画像は、ほぼ同時に捕捉された、請求項1に記載の方法。
【請求項16】
非一過性コンピュータ記憶媒体であって、前記非一過性コンピュータ記憶媒体は、命令を用いてエンコードされており、前記命令は、1つまたはそれを上回るコンピュータによって実行されると、前記1つまたはそれを上回るコンピュータに、
ヘッドセットから、前記ヘッドセットの特定の姿勢に関する画像データを受信することであって、前記画像データは、(i)前記ヘッドセットの第1のカメラからの第1の画像と、(ii)前記ヘッドセットの第2のカメラからの第2の画像とを備える、ことと、
少なくとも部分的に、前記第1の画像および前記第2の画像内に表される環境の3次元モデルにおける少なくとも1つのキー点を識別することと、
(i)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関する再投影誤差と、(ii)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関するエピポーラ誤差とを共同で最適化することによって、前記第1の画像および第2の画像を使用して、バンドル調節を実施することと、
前記バンドル調節の結果を使用し、(i)前記3次元モデルを更新すること、(ii)前記特定の姿勢における前記ヘッドセットの位置を決定すること、または(iii)前記第1のカメラおよび第2のカメラの外部パラメータを決定することのうちの少なくとも1つを実施することと
を含む動作を実施させる、非一過性コンピュータ記憶媒体。
【請求項17】
前記更新された3次元モデルに基づいて、前記ヘッドセットによる表示のための出力を提供することを含む、請求項16に記載のコンピュータ記憶媒体。
【請求項18】
前記エピポーラ誤差は、前記ヘッドセットの較正からの差異を引き起こす前記ヘッドセットの変形の結果である、請求項16に記載のコンピュータ記憶媒体。
【請求項19】
前記第1の画像および前記第2の画像に基づいて、前記第1のカメラおよび前記第2のカメラに関する外部パラメータのセットを決定することを含む、請求項16に記載のコンピュータ記憶媒体。
【請求項20】
システムであって、前記システムは、1つまたはそれを上回るコンピュータと、1つまたはそれを上回る記憶デバイスとを備え、前記1つまたはそれを上回る記憶デバイスは、その上に、命令が記憶されており、前記命令は、前記1つまたはそれを上回るコンピュータによって実行されると、前記1つまたはそれを上回るコンピュータに、
ヘッドセットから、前記ヘッドセットの特定の姿勢に関する画像データを受信することであって、前記画像データは、(i)前記ヘッドセットの第1のカメラからの第1の画像と、(ii)前記ヘッドセットの第2のカメラからの第2の画像とを備える、ことと、
少なくとも部分的に、前記第1の画像および前記第2の画像内に表される環境の3次元モデルにおける少なくとも1つのキー点を識別することと、
(i)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関する再投影誤差と、(ii)前記第1の画像および前記第2の画像に基づく前記少なくとも1つのキー点に関するエピポーラ誤差とを共同で最適化することによって、前記第1の画像および第2の画像を使用して、バンドル調節を実施することと、
前記バンドル調節の結果を使用し、(i)前記3次元モデルを更新すること、(ii)前記特定の姿勢における前記ヘッドセットの位置を決定すること、または(iii)前記第1のカメラおよび第2のカメラの外部パラメータを決定することのうちの少なくとも1つを実施することと
を含む動作を実施させるように動作可能である、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、概して、エクステンデッドリアリティシステム、例えば、仮想、複合、または拡張現実システムにおける画像処理に関する。
【背景技術】
【0002】
拡張現実(「AR」)および複合現実(「MR」)デバイスは、複数のセンサを含むことができる。センサのいくつかの実施例は、カメラ、加速度計、ジャイロスコープ、全地球測位システム受信機、および磁気計、例えば、コンパスである。
【0003】
ARデバイスは、複数のセンサからデータを受信し、データを組み合わせ、ユーザに関する出力を決定することができる。例えば、ARデバイスは、個別のセンサからジャイロスコープおよびカメラデータを受信し、受信されたデータを使用して、ディスプレイ上にコンテンツを提示することができる。ARデバイスは、センサデータ、例えば、カメラデータを使用して、環境マップを発生させ、環境マップを使用し、ディスプレイ上にコンテンツを提示することができる。
【発明の概要】
【課題を解決するための手段】
【0004】
コンピュータビジョンシステムは、センサデータを使用し、デバイス、例えば、コンピュータビジョンシステムが位置する環境の環境モデルを発生させる、環境内の本デバイスの位置を推定する、または両方を行うことができる。例えば、コンピュータビジョンシステムは、複数のセンサからのデータを使用し、本デバイスが位置する環境に関する環境モデルを発生させることができる。センサは、深度センサ、カメラ、慣性測定ユニット、またはこれらのうちの2つまたはそれを上回るものの組み合わせを含むことができる。
【0005】
拡張現実ヘッドセットは、環境のマップまたは3次元(「3D」)モデルを使用し、環境のビューに対応する3D情報を提供することができる。コンピュータビジョンシステムは、同時位置特定およびマッピング(「SLAM」)プロセスを使用し、環境モデルの更新および環境内の本デバイスの推定される場所の決定の両方を行うことができる。本デバイスの場所は、位置データ、配向データ、または両方を含むことができる。SLAMプロセスの一部として、コンピュータビジョンシステムは、バンドル調節、セットメンバーシッププロセス、統計プロセス、または別の適切なプロセスを使用することができる。例えば、コンピュータビジョンシステムは、SLAMプロセスの一部として、環境内の観察可能な点を表す、環境モデル内の3次元点に関する場所を決定することができる。観察可能な点は、環境内のオブジェクトの一部を表すことができる。コンピュータビジョンシステムは、次いで、バンドル調節を使用し、環境モデル内の3次元点の位置を精緻化し、例えば、付加的データ、更新されたデータ、または両方を使用して、観察可能な点の位置のより正確な予測を行うことができる。
【0006】
バンドル調節は、異なる視点からの画像のセットを使用し、環境の3Dモデル、画像を捕捉したカメラの姿勢位置、および/またはカメラの外部パラメータを同時に精緻化するためのプロセスである。バンドル調節では、再投影誤差等のカメラに関するデータの間の誤差は、最小限にされる。
【0007】
エピポーラ制約を使用するバンドル調節が、任意のカメラベースのSLAMシステムにおけるカメラセンサ外部特性の非常に正確なオンライン較正を実施するために使用されることができる。オンライン較正は、バンドル調節の一部として実施されるとき、外部特性の補正のために採用される加重スキームの影響を受けやすくあり得る。エピポーラ制約が、2つのカメラの間、または1つのカメラと基準点との間の回転および平行移動のクロス積として変形の確率を推定するために使用されることができる。したがって、変形誤差が、例えば、より高い更新率を伴って、より高い正確度、効率、または両方を達成するために回復されることができる。
【0008】
エピポーラ制約を使用するバンドル調節は、可撓性デバイス上の複数のカメラセンサの間の変形をより正確に推定するために使用されることができる。軽量かつウェアラブルな拡張現実デバイス、例えば、ヘッドセットは、経時的に、小さいが急速な変形を生じやすくあり得る。エピポーラ制約をバンドル調節に適用することは、幾何学的制約に基づく効率的な様式でその変形を推定する問題に対処することができる。推定された変形は、更新されたカメラパラメータ、例えば、外部特性を発生させるために使用されることができる。更新されたカメラパラメータは、マルチカメラ三角測量ベースのSLAMシステムにおいて使用されることができる。
【0009】
説明されるシステムは、拡張現実システムがユーザによって使用されている間、エピポーラ制約を使用してバンドル調節を実施することができる。例えば、バンドル調節は、システム、例えば、エクステンデッドリアリティシステムのために、システムが画像データを捕捉し、エクステンデッドリアリティ出力データを発生させ、ヘッドセットまたは他のディスプレイ上に出力データを表示すると同時に行われることができる。いくつかのエクステンデッドリアリティシステム、例えば、拡張現実システムは、カメラおよび他のセンサがその上に搭載される、ヘッドセット等のウェアラブルデバイスを含む、またはそれとして提供される。結果として、これらのシステムは、多くの場合、ユーザが歩行する、自身の頭部を回転させる、または他の移動を行う際、使用の間に移動される。これらの移動は、多くの場合、本デバイスに対する力および応力を変化させ、これは、一時的および/または恒久的変形をウェアラブルデバイスに引き起こし得る。バンドル調節は、拡張現実システムが装着され、移動している間、システムが必要であると決定する際、自動的に実施されることができる。これは、大量の屈曲、回転、および他の移動を被り得る非常に変形可能なシステムに関して改良された性能をもたらすことができる。
【0010】
エピポーラ制約を使用してバンドル調節を実施することは、拡張現実ヘッドセットのカメラ較正の正確度を改良することができる。エピポーラ制約を適用することによって、システムは、カメラが1つの姿勢から別の姿勢に移動する際、カメラの間の変形を考慮することができる。したがって、カメラの間の相対的位置または相対的回転の変化が、バンドル調節において考慮されることができる。
【0011】
1つの一般的側面では、方法は、ヘッドセットから、ヘッドセットの特定の姿勢に関する画像データを受信することであって、画像データは、(i)ヘッドセットの第1のカメラからの第1の画像と、(ii)ヘッドセットの第2のカメラからの第2の画像とを含む、ことと、少なくとも部分的に、第1の画像および第2の画像内に表される環境の3次元モデルにおける少なくとも1つのキー点を識別することと、(i)第1の画像および第2の画像に基づく少なくとも1つのキー点に関する再投影誤差および(ii)第1の画像および第2の画像に基づく少なくとも1つのキー点に関するエピポーラ誤差を共同で最適化することによって、第1の画像および第2の画像を使用して、バンドル調節を実施することと、バンドル調節の結果を使用し、(i)3次元モデルを更新すること、(ii)特定の姿勢におけるヘッドセットの位置を決定すること、または(iii)第1のカメラおよび第2のカメラの外部パラメータを決定することのうちの少なくとも1つを実施することとを含む。
【0012】
いくつかの実装では、本方法は、更新された3次元モデルに基づいて、ヘッドセットによる表示のための出力を提供することを含む。
【0013】
いくつかの実装では、エピポーラ誤差は、ヘッドセットの較正からの差異を引き起こす、ヘッドセットの変形の結果である。
【0014】
いくつかの実装では、本方法は、第1の画像および第2の画像に基づいて、第1のカメラおよび第2のカメラに関する外部パラメータのセットを決定することを含む。
【0015】
いくつかの実装では、外部パラメータは、ヘッドセット上の基準位置に対する第1のカメラまたは第2のカメラの関係をともに示す、平行移動および回転を含む。
【0016】
いくつかの実装では、本方法は、ヘッドセットの移動の経路に沿った複数の異なる姿勢のそれぞれにおいて、第1および第2のカメラから画像を受信することと、エピポーラ誤差を伴う最適化の結果を使用して、異なる姿勢のうちの少なくともいくつかに関する第1および第2のカメラに関する異なる外部パラメータを決定することとを含む。
【0017】
いくつかの実装では、本方法は、それぞれ、少なくとも部分的に、第1の画像および第2の画像内に表される環境の3次元モデルにおける複数のキー点を識別することと、複数のキー点のそれぞれを横断する誤差を共同で最適化することとを含む。
【0018】
いくつかの実装では、誤差を共同で最適化することは、複数のキー点のそれぞれを横断する全誤差を最小限にすることを含み、全誤差は、再投影誤差およびエピポーラ誤差の組み合わせを含む。
【0019】
いくつかの実装では、本方法は、ヘッドセットから、ヘッドセットの複数の姿勢に関する第2の画像データを受信することと、少なくとも部分的に、第2の画像データ内に表される環境の3次元モデルにおける少なくとも1つの第2のキー点を識別することと、(i)第2の画像データに基づく少なくとも1つのキー点に関する再投影誤差および(ii)第2の画像データに基づく少なくとも1つのキー点に関するエピポーラ誤差を共同で最適化することによって、複数の姿勢毎にバンドル調節を実施することと、複数の姿勢毎のバンドル調節の結果を使用し、(i)3次元モデルを更新すること、(ii)複数の姿勢のそれぞれにおけるヘッドセットの別の位置を決定すること、または(iii)複数の姿勢のそれぞれにおける第1のカメラおよび第2のカメラの他の外部パラメータを決定することのうちの少なくとも1つを実施することとを含む。
【0020】
いくつかの実装では、本方法は、ヘッドセットから、ヘッドセットの第1の姿勢に関する第1の画像データおよびヘッドセットの第2の姿勢に関する第2の画像データを受信することであって、ヘッドセットの変形が、ヘッドセットの第1の姿勢とヘッドセットの第2の姿勢との間で生じる、ことと、少なくとも部分的に、第1の画像データ内および第2の画像データ内に表される環境の3次元モデルにおける少なくとも1つのキー点を識別することと、(a)少なくとも1つのキー点に関する、(b)ヘッドセットの第1の姿勢と第2の姿勢との間に生じたヘッドセットの変形を表す、少なくともエピポーラ誤差を共同で最適化することによって、第1の画像データおよび第2の画像データを使用して、バンドル調節を実施することと、バンドル調節の結果を使用し、(i)3次元モデルを更新すること、(ii)第1の姿勢におけるヘッドセットの第1の位置または第2の姿勢におけるヘッドセットの第2の位置を決定すること、または(iii)第1の姿勢における第1のカメラおよび第2のカメラの第1の外部パラメータまたは第2の姿勢における第1のカメラおよび第2のカメラの第2の外部パラメータを決定することのうちの少なくとも1つを実施することとを含む。
【0021】
いくつかの実装では、本方法は、(i)第1の画像および第2の画像に基づく少なくとも1つのキー点に関する再投影誤差、(ii)第1の画像および第2の画像に基づく少なくとも1つのキー点に関するエピポーラ誤差、および(iii)ヘッドセットに関する工場較正データに基づく誤差を共同で最適化することによって、第1の画像および第2の画像を使用して、バンドル調節を実施することを含む。
【0022】
いくつかの実装では、本方法は、バンドル調節の結果を使用して、ヘッドセットの一連の姿勢を更新することを含む。
【0023】
いくつかの実装では、バンドル調節の結果を使用することは、3次元モデルにおける1つまたはそれを上回るキー点の位置を更新することを含む、3次元モデルを更新することを含む。
【0024】
いくつかの実装では、バンドル調節の結果を使用することは、3次元モデルに対するヘッドセットの位置を決定することを含む、特定の姿勢の位置を決定することを含む。
【0025】
いくつかの実装では、第1の画像および第2の画像は、ほぼ同時に捕捉された。
【0026】
これらの側面の他の実施形態は、本方法のアクションを実施するように構成される、対応するシステム、装置、およびコンピュータ記憶デバイス上でエンコードされるコンピュータプログラムを含む。1つまたはそれを上回るコンピュータのシステムは、動作時、本システムにアクションを実施させる、本システム上にインストールされるソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせによって、そのように構成されることができる。1つまたはそれを上回るコンピュータプログラムは、データ処理装置によって実行されると、本装置にアクションを実施させる、命令を有することによって、そのように構成されることができる。
【0027】
本明細書に説明される主題は、種々の実施形態において実装されることができ、以下の利点のうちの1つまたはそれを上回るものをもたらし得る。いくつかの実装では、本書に説明されるバンドル調節プロセスは、他のシステムと比較して、より速く、より少ないコンピュータリソース、例えば、プロセッササイクルまたはメモリまたは両方を使用する、またはこれらの組み合わせである。いくつかの実装では、本書に説明されるカメラ較正プロセスは、カメラを含むデバイスの変形を考慮するために、調節を行うことができる。これらの調節は、本デバイスに関して実施される算出の正確度を改良することができ、例えば、本デバイスが位置する環境の3次元モデル、環境内の本デバイスの予測される位置、本デバイス内に含まれるカメラに関する外部パラメータ、またはこれらの組み合わせの正確度を改良することができる。
【0028】
本明細書に説明される主題の1つまたはそれを上回る実装の詳細が、付随の図面および下記の説明に記載される。本主題の他の特徴、側面、および利点が、説明、図面、および請求項から明白となるであろう。
【図面の簡単な説明】
【0029】
【
図1】
図1は、デバイスが、エピポーラ制約を用いたバンドル調節を使用して環境のモデルを更新する、例示的システムを描写する。
【0030】
【
図2】
図2は、拡張現実デバイス上のキー点の投影の実施例を描写する。
【0031】
【
図3】
図3は、拡張現実デバイスの追跡される姿勢の実施例を描写する。
【0032】
【
図4】
図4は、エピポーラ制約を使用してバンドル調節を実施するための例示的システムを描写する。
【0033】
【
図5】
図5は、エピポーラ制約を用いたバンドル調節を使用して環境のモデルを更新するためのプロセスのフロー図である。
【0034】
種々の図面における同様の参照番号および指定は、同様の要素を示す。
【発明を実施するための形態】
【0035】
詳細な説明
図1は、デバイスが、エピポーラ制約を用いたバンドル調節を使用して環境のモデルを更新する、例示的システム100を描写する。
図1は、本デバイスとして拡張現実ヘッドセット102を参照して説明されるが、任意の他の適切なコンピュータビジョンシステムが、拡張現実ヘッドセット102の代わりに、またはそれに加えて、使用されることができる。例えば、拡張現実ヘッドセット102は、複合現実ヘッドセット等の任意の他の適切なタイプのエクステンデッドリアリティヘッドセットであり得る。
【0036】
拡張現実ヘッドセット102または別のデバイスは、バンドル調節を使用し、拡張現実ヘッドセット102が位置する物理的環境の3次元(「3D」)モデル122、拡張現実ヘッドセット102のカメラの外部パラメータ、物理的環境内の拡張現実ヘッドセット102の推定される位置、またはこれらの任意の組み合わせを含む、種々のデータを更新することができる。バンドル調節を実施することによって、拡張現実ヘッドセット102は、より正確な3Dモデル122、より正確な外部パラメータ、より正確な推定されるデバイス位置、またはこれらの任意の組み合わせを決定することができる。
【0037】
バンドル調節は、異なる視点からの画像のセットを使用し、環境の3Dモデル、画像を捕捉したカメラの姿勢、および/またはカメラの外部パラメータを同時に精緻化するためのプロセスである。バンドル調節では、再投影誤差等のカメラの間の誤差は、最小限にされる。
【0038】
拡張現実ヘッドセット102は、拡張現実ヘッドセット102の複数の物理的場所または姿勢に関する受信されたカメラデータに基づいて、更新された外部パラメータを発生させるプロセスを繰り返すことができる。例えば、拡張現実ヘッドセット102が、経路に沿って物理的環境を通して移動する際、ヘッドセット102は、経路に沿った複数の位置に関して、更新された外部パラメータ、3Dモデル122の更新、更新された推定されるデバイス位置、またはこれらの組み合わせを発生させることができる。
【0039】
拡張現実ヘッドセット102は、右カメラ104と、左カメラ106とを含む。拡張現実ヘッドセット102は、随意に、中心カメラ105、深度センサ108、または両方を含むことができる。拡張現実ヘッドセット102が、物理的環境を通して移動する際、拡張現実ヘッドセット102は、カメラ104、106によって捕捉された画像データ110を受信する。例えば、拡張現実ヘッドセット102が、物理的環境内の特定の物理的場所または姿勢にあるとき、カメラ104、106は、特定の物理的場所に関する特定の画像データ110を捕捉することができる。画像データ110は、カメラ104によって捕捉された第1の画像およびカメラ106によって捕捉された第2の画像、または個別のカメラによって捕捉された画像を表す他のデータ等の任意の適切な画像データであり得る。いくつかの実装では、画像データ110は、ビデオ画像のシーケンスにおける画像に関するものである。例えば、画像データ110は、ビデオシーケンスにおけるフレームに関するものであり得る。
【0040】
図1では、変形101が、ヘッドセット102において生じる。変形101は、例えば、ヘッドセット102が、第1の姿勢から第2の姿勢に移動するときに生じ得る。いくつかの実施例では、第1の姿勢から第2の姿勢へのヘッドセット102の運動は、変形101を引き起こし得る。いくつかの実施例では、例えば、丸め誤差に基づく、算出ドリフトが、経時的に生じ、変形101を引き起こし得る。変形は、ヘッドセットの較正からのカメラパラメータにおける差異を引き起こし得る。例えば、変形の結果は、経時的に、ヘッドセットに関する較正パラメータが、もはやヘッドセットの実際の較正を表さないことである。
【0041】
変形101は、カメラ104とヘッドセット102上の基準位置との間の相対的位置の変化を引き起こし得る。基準位置は、例えば、右カメラ104、中心カメラ105、左カメラ106、または深度センサ108であってもよい。第1の姿勢において、カメラ104は、破線円形線によって
図1に表される、第1の位置103に位置付けられ得る。拡張現実ヘッドセット102が、第2の姿勢に移動すると、カメラ104は、実線円形線によって表される、第2の位置に移動し得る。したがって、拡張現実ヘッドセット102の移動は、物理的変形101または算出ドリフト変形にかかわらず、ヘッドセット102の変形101を引き起こす。本変形は、カメラ104と基準位置、例えば、カメラ106との間の相対的位置の変化をもたらし得る。
【0042】
拡張現実ヘッドセット102は、本書に説明されるシステム、コンポーネント、および技法が実装される、1つまたはそれを上回る場所における1つまたはそれを上回るコンピュータ上のコンピュータプログラムとして実装される、システムであり得る。いくつかの実装では、拡張現実ヘッドセット102を参照して説明されるコンポーネントのうちの1つまたはそれを上回るものは、ネットワークを使用して拡張現実ヘッドセット102と通信するサーバ上等、別個のシステム内に含まれることができる。ネットワーク(図示せず)は、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、インターネット、またはそれらの組み合わせであり得る。別個のシステムは、単一のサーバコンピュータ、または、例えば、クラウドコンピューティングサービスとして展開される遠隔コンピュータのセットを含む、相互と併せて動作する複数のサーバコンピュータを使用してもよい。
【0043】
拡張現実ヘッドセット102は、バンドル調節モジュール116を含む、いくつかの異なる機能的コンポーネントを含むことができる。バンドル調節モジュール116は、1つまたはそれを上回るデータ処理装置を含むことができる。例えば、バンドル調節モジュール116は、1つまたはそれを上回るデータプロセッサと、1つまたはそれを上回るデータプロセッサに本明細書に議論される動作を実施させる、命令とを含むことができる。
【0044】
拡張現実ヘッドセット102の種々の機能的コンポーネントは、別個の機能的コンポーネントとして、または同一の機能的コンポーネントの異なるモジュールとして、1つまたはそれを上回るコンピュータ上にインストールされてもよい。例えば、バンドル調節モジュール116は、ネットワークを通してともに結合される、1つまたはそれを上回る場所における1つまたはそれを上回るコンピュータ上にインストールされる、コンピュータプログラムとして実装されることができる。例えば、クラウドベースのシステムでは、これらのコンポーネントは、分散コンピューティングシステムの個々のコンピューティングノードによって実装されることができる。
【0045】
ヘッドセット102のカメラ104、106は、画像データ110を捕捉する。画像データ110および工場較正データ112、例えば、粗視化された外部パラメータは、バンドル調節モジュール116に入力される。バンドル調節モジュール116は、バンドル調節を実施し、複数のキー点を横断するヘッドセット102の誤差を共同で最小限にする。バンドル調節モジュール116は、エピポーラ制約を適用し、カメラ外部パラメータ120を更新する。バンドル調節モジュール116はまた、3Dモデル122、ヘッドセット102の推定される位置、または両方の更新を発生させることができる。バンドル調節モジュール116は、更新された3Dモデル122を出力することができる。更新された3Dモデルまたは更新された3Dモデルの一部は、ヘッドセット102のディスプレイ上に提示されることができる。
【0046】
バンドル調節モジュール116は、例えば、データの受信またはヘッドセットの変化に応答して、または、例えば、時間、物理的距離、またはフレームにおける所定の間隔において、バンドル調節を実施することができる。例えば、バンドル調節モジュール116は、ビデオの画像フレーム毎に、1つおきの画像フレームに、3つ毎の画像フレームに、10個毎の画像フレームに等、バンドル調節を実施してもよい。いくつかの実施例では、バンドル調節モジュール116は、複数の姿勢に関する画像データ110を受信することに基づいて、バンドル調節を実施することができる。いくつかの実施例では、バンドル調節モジュール116は、閾値距離にわたるヘッドセット102の移動に基づいて、バンドル調節を実施することができる。いくつかの実施例では、バンドル調節モジュール116は、環境の1つの面積から環境の別の面積へのヘッドセットの位置の変化に基づいて、バンドル調節を実施することができる。例えば、バンドル調節モジュール116は、ヘッドセット102が、物理的場所の1つの部屋から物理的場所の別の部屋に移動するとき、バンドル調節を実施してもよい。ヘッドセット102は、例えば、SLAM技法を適用し、環境内のヘッドセット102の位置を決定することに基づいて、移動の量を決定することができる。
【0047】
いくつかの実施例では、バンドル調節モジュール116は、誤差の検出に応答して、バンドル調節を実施することができる。例えば、ヘッドセット102は、カメラ104、106の間の変形誤差を検出してもよい。ヘッドセット102が指定された閾値を上回る変形誤差を検出することに応答して、バンドル調節モジュール116は、バンドル調節を実施することができる。
【0048】
図2は、拡張現実ヘッドセット102上のキー点の投影の実施例を描写する。ヘッドセット102は、右カメラ104と、左カメラ106とを含む。カメラ104、106の画像平面が、
図2に長方形として図示される。カメラ104、106はそれぞれ、キー点x
1を描写する環境の画像を捕捉する。カメラ104、106は、同時またはほぼ同時に、環境の画像を捕捉してもよい。2つのみのカメラを有するものとして
図2に図示されるが、いくつかの実装では、ヘッドセットは、付加的カメラを含むことができる。
【0049】
キー点x1 206は、環境内の点を表す。例えば、キー点x1 206は、家具の縁上の点または出入口の角における点を表し得る。キー点x1 206は、キー点の視覚的記述子である、対応する2次元(「2D」)観察の座標または任意の幾何学的性質であり得る。
【0050】
システムは、カメラ104、106上にキー点x1 206の表現、例えば、3Dモデルにおいて表されるようなカメラに関する画像平面を投影することができる。キー点x1 206は、左カメラ106の点y1上および右カメラ104の点上z1上に投影される。点y1およびz2はそれぞれ、個別のカメラのピクセルを表すことができる。
【0051】
外部パラメータθは、カメラの外部にあり、基準点、例えば、別のカメラに対して変化し得る、カメラパラメータである。外部パラメータθは、基準点に対するカメラの場所および配向を定義する。
図2の外部パラメータθは、例えば、カメラ104、106のうちの1つが基準点であるとき、カメラ104、106の間の位置変換を示す。例えば、外部パラメータは、カメラ104とカメラ106との間の平行移動および回転関係を示すことができる。
【0052】
ヘッドセット102は、ヘッドセットの移動の経路に沿った異なる姿勢におけるカメラ104、106からの画像を捕捉することができる。いくつかの実装では、本デバイスは、ヘッドセットの第1の姿勢に関するカメラ104、106からの第1の画像データおよびヘッドセットの第2の姿勢に関する第2の画像データを受信することができる。変形が、ヘッドセットの第1の姿勢とヘッドセットの第2の姿勢との間で生じ得る。実施例が、
図3を参照して説明される。
【0053】
図3は、拡張現実ヘッドセット102の追跡される姿勢302a-bの実施例を描写する。
図3の実施例では、拡張現実ヘッドセット102は、第1の姿勢302aから第2の姿勢302bに移動する。第1の姿勢302aにおいて、ヘッドセット102は、外部パラメータθ
aを有する。第2の姿勢302bにおいて、ヘッドセット102は、外部パラメータθ
bを有する。θ
aとθ
bとの間の差異は、ヘッドセット102の変形を示す。変形は、第1の姿勢302aから第2の姿勢320bへのヘッドセット102の移動、算出ドリフト、または物理的または算出的にかかわらず、他のタイプの変形によって引き起こされ得る。
【0054】
第1の姿勢302aにおいて、ヘッドセット102は、外部パラメータθaを有する。右カメラ104および左カメラ106はそれぞれ、キー点xiを含む環境の画像を捕捉し、iは、各キー点の指数を表す。キー点xiは、キー点x1を含む。キー点x1の表現は、第1の姿勢302aにおいて、カメラ104、106上に投影される。キー点x1は、左カメラ106の点y1a上および右カメラ104の点z1a上に投影される。
【0055】
ヘッドセット102は、平行移動Tによって表される、第1の姿勢302aから第2の姿勢302bに移動する。平行移動Tは、ヘッドセット102の平行移動、回転移動、または両方を含むことができる。例えば、ヘッドセットを装着するユーザは、異なる場所に移動し得、ヘッドセットを上または下に回転させ得、第1の姿勢302aと第2の姿勢302bとの間でヘッドセットを傾斜または回転させ得る。ヘッドセット102の本移動は、平行移動Tによって表される。
【0056】
第2の姿勢302bにおいて、ヘッドセット102は、外部パラメータθbを有する。θaとθbとの間の差異または変形は、平行移動Tによって引き起こされ得る。第2の姿勢302bにおいて、右カメラ104および左カメラ106は、キー点x1を含む、キー点xiのうちの少なくともいくつかを含む、環境の画像を捕捉する。キー点x1は、左カメラ106の点y1b上および右カメラ104の点z1b上に投影される。
【0057】
カメラ104およびカメラ106等の2つのカメラを較正する際に使用されるべき点に関して、点は、両方のカメラの視野内にあるべきである。例えば、カメラ104の視野内の点は、カメラ106の視野内の線に沿って収まり得る。線は、点のエピポーラ線と見なされることができる。カメラ106の視野内のエピポーラ線とカメラ104のその視野内のその対応する点との間の距離は、エピポーラ誤差である。
【0058】
エピポーラ誤差等のエピポーラ制約が、姿勢302aおよび302bに関する画像平面点y、zおよび外部パラメータθに基づくバンドル調節に適用されることができる。エピポーラ制約は、同一の投影点を捕捉する2つのカメラの間の変換を表すために使用されることができる。このように、共有点の観察は、カメラの外部パラメータθを補正するために使用されることができる。
【0059】
実施例として、キー点x2が、姿勢302bにおける左カメラ106の点y2b上に投影される。キー点x2は、位置x2’から姿勢302bにおける右カメラ104の点z2b上に投影される。カメラ104の視野内のキー点x2’は、点z2bから、例えば、キー点x2’への線304に沿って収まる。エピポーラ誤差は、線304とキー点x2’に関する実際の場所であるキー点x2との間の距離から決定されることができる。
【0060】
エピポーラ誤差e
iが、下記の方程式1に示されるように、指数iを有するキー点毎に定義されることができる。
【数1】
【0061】
方程式1では、y
iは、第1のカメラ上の指数iを有するキー点の投影を表し、z
iは、第2のカメラ上の指数iを有するキー点の投影を表す。記号Eは、外部パラメータから成る基本行列を表す。基本行列Eは、下記の方程式2によって定義されることができる。
【数2】
【0062】
方程式2では、記号
【化1】
は、第1の姿勢と第2の姿勢との間の平行移動行列を表す。記号Rは、第1の姿勢と第2の姿勢との間の回転行列を表す。外部パラメータが、正確であるとき、エピポーラ誤差e
iは、ゼロである。例えば、ヘッドセットの較正された外部パラメータが、ヘッドセットの物理的コンポーネント間の実際の関係を示すとき、外部パラメータは、正確である。エピポーラ誤差e
iが、ゼロであるとき、下記の方程式3が、当てはまる。
【数3】
【0063】
各キー点x
iは、姿勢302aにおける点y
ia、z
iaおよび姿勢302bにおける点y
ib、z
ibに投影され得る。バンドル調節の間、キー点x
i毎のエピポーラ誤差は、姿勢、較正された外部パラメータ、環境の3Dモデル、またはこれらのうちの2つまたはそれを上回るものの組み合わせを精緻化するために、制約として使用されることができる。バンドル調節は、投影点x
iおよび観察されるピクセルy
i、z
iのセットに関する全誤差を最小限にするために使用されることができる。エピポーラ制約を使用してバンドル調節を実施するための例示的プロセスが、
図4を参照して説明される。
【0064】
図4は、エピポーラ制約を使用してバンドル調節を実施するための例示的システム400を描写する。システム400では、ヘッドセット102は、バンドル調節モジュール116を使用してバンドル調節を実施する。いくつかの実装では、別のデバイスまたはデバイスの組み合わせが、バンドル調節モジュール116を使用してバンドル調節を実施することができる。
【0065】
システム400では、右カメラ104および左カメラ106は、環境の画像を捕捉する。右カメラ104は、画像データ110aをバンドル調節モジュール116に出力する。左カメラ104は、画像データ110bをバンドル調節モジュール116に出力する。画像データ110aおよび画像データ110bは、ほぼ同時に捕捉された環境の画像を表す画像データであり得る。バンドル調節モジュール116は、入力として画像データ110a、110bを受信する。バンドル調節モジュールはまた、入力として、環境の3Dモデル122を受信することができる。
【0066】
バンドル調節モジュール116は、画像データ110a、110bおよび3Dモデル122に基づいて、再投影誤差を決定することができる。再投影誤差r
iは、下記の方程式4によって表されることができる。
【数4】
【0067】
方程式4では、r
iは、3D点x
iに関する再投影誤差を表す。項
【化2】
は、3Dモデル122に基づく、3Dx
i点の予期される投影を表す。項z
iは、3D点x
iの実際の投影を表す。
【0068】
いくつかの実装では、システム400は、例えば、xiが、右カメラによって捕捉された画像内に描写される点に関する値を表し、yiが、左カメラによって捕捉された画像内に描写される点に関する値を表すとき、異なるカメラからの値を伴う方程式(1)、(3)、または(4)のうちの1つまたはそれを上回るものを使用することができる。例えば、システムは、yiの値がxiの値と置換された、これらの方程式のうちの1つまたはそれを上回るものを使用することができる。いくつかの実施例では、システムは、xiの値がyiの値と置換された、これらの方程式のうちの1つまたはそれを上回るものを使用することができる。
【0069】
いくつかの実装では、システム400は、異なるカメラに関する対応する値を決定するために、異なる方程式を使用することができる。例えば、本システムは、右カメラに関する再投影誤差を決定するために、再投影誤差r
iを使用することができ、指数iに関する左カメラに関する再投影誤差r
yiを決定するために、下記の方程式5を使用することができる。
【数5】
【0070】
方程式5では、
【化3】
は、右カメラ上の指数iを有する3D点x
iの投影を表す。y
iは、投影された3d点x
iの左画像における2D観察を表す。
【0071】
いくつかの実装では、システム400は、両方のカメラに関する再投影誤差を決定することができる。例えば、システム400は、第1のカメラ、例えば、右カメラに関する再投影誤差riおよび第2の異なるカメラ、例えば、左カメラに関する再投影誤差ryiを決定することができる。
【0072】
再投影誤差は、3Dモデル点の推定値が、環境内の点の真の投影を厳密に再現する程度を定量化することによって、正確度の測度を提供することができる。再投影誤差は、3Dモデル122内に検出されるキー点の投影と同一の画像上に投影される実世界環境内のキー点の対応する投影との間の距離である。
【0073】
画像データ110a、110bに加えて、バンドル調節モジュール116は、入力として、工場較正データ112を受信することができる。工場較正データ112は、右カメラ104および左カメラ106に関する粗視化された外部パラメータを含むことができる。
【0074】
カメラに関する粗視化された外部パラメータは、特定のカメラと基準位置との間の初期平行移動および回転を示すことができる。基準位置は、例えば、ヘッドセット102上の基準位置であり得る。基準位置は、基準カメラまたは基準深度センサ等の基準センサ、またはヘッドセット102上の別の適切な基準位置であり得る。工場較正データに関するデータ項uは、下記の方程式6によって表されることができる。
【数6】
【0075】
方程式4では、θ0は、カメラの工場較正外部パラメータを表す。記号θは、カメラの算出された外部パラメータを表す。
【0076】
バンドル調節モジュール116はまた、入力として、追跡されるヘッドセット姿勢412を受信することができる。追跡されるヘッドセット姿勢412は、例えば、環境内の第1の姿勢302aおよび第2の姿勢302bの推定される位置であり得る。追跡されるヘッドセット姿勢は、ヘッドセットの移動の経路に沿ったいくつかの姿勢を含むことができる。
【0077】
バンドル調節モジュール116は、バンドル調節プロセスへの入力として、画像データ110a、110b、工場較正データ112、および追跡されるヘッドセット姿勢412を使用することができる。バンドル調節プロセスでは、バンドル調節モジュール116は、受信された入力に基づいて、複数の潜在的な誤差の源の共同最適化420を実施することができる。具体的には、バンドル調節モジュールは、再投影誤差、エピポーラ制約に基づく誤差、例えば、エピポーラ誤差、および工場較正誤差の共同最適化を実施することができる。全誤差
【化4】
を決定するためのこれらの3つの誤差の源の共同最適化は、下記の方程式7によって表されることができる。
【数7】
【0078】
方程式7における各合計は、i個のキー点のセットにわたって合計された誤差の源を表す。具体的には、第1の合計は、再投影誤差を表し、第2の合計は、工場較正誤差を表し、第3の合計は、エピポーラ誤差を表す。共同最適化は、複数のキー点を横断する組み合わせられた誤差e(T,X,θ)を最小限にすることによって実施されることができる。
【0079】
共同最適化において1つまたはそれを上回るエピポーラ制約を含めることによって、本システムは、誤差計算の正確度を改良することができる。エピポーラ制約項は、ヘッドセット102の変形を補正するために、キー点からのピクセル投影の未加工観察に依拠することができる。したがって、エピポーラ制約項は、そうでなければ考慮されない、無視される、または両方であろう誤差の源を最小限にすることによって、バンドル調節モジュールを拡張することができる。
【0080】
組み合わせられた誤差e(T,X,θ)は、回転Rおよび平行移動Tに関する推定値を挿入し、方程式7の出力を取得することによって、最適化される、例えば、最小限にされることができる。バンドル調節モジュール116は、全てのキー点に関する最適化された回転および平行移動として、最も小さい組み合わせられた誤差をもたらす回転および平行移動行列を選択することができる。言い換えると、バンドル調節の目標は、キー点のセットにおけるキー点に関する全ての平行移動行列および回転行列を横断する誤差を最小限にする、回転Rおよび平行移動Tの値を見出すことである。
【0081】
誤差を最適化することに応じて、バンドル調節モジュール116は、最適化された回転および平行移動行列を使用し、ヘッドセット102に関する値、パラメータ、または両方を更新することができる。例えば、バンドル調節モジュール116は、環境416の3Dモデルの更新を出力する、較正された外部パラメータ414を更新する、例えば、環境内のヘッドセット418の位置の更新を出力する、またはこれらの任意の組み合わせを行うことができる。
【0082】
例えば、バンドル調節モジュール116は、環境416の3Dモデルの更新を3Dモデル122に適用することができる。3Dモデルを更新することは、3Dモデル内の1つまたはそれを上回るキー点の位置を更新することを含むことができる。更新された3Dモデルまたは更新された3Dモデルの一部は、次いで、ヘッドセット102のディスプレイ422上に提示されることができる。
【0083】
バンドル調節モジュール116はまた、ヘッドセット102の特定の姿勢の位置を更新することができる。ヘッドセット102の位置を更新することは、3Dモデル122に対するヘッドセット102の位置を決定することを含むことができる。いくつかの実施例では、バンドル調節モジュール116は、バンドル調節に基づいて、ヘッドセット102の一連の姿勢または姿勢の経路を更新することができる。
【0084】
バンドル調節モジュール116は、右カメラ104、左カメラ106、または両方に関する外部パラメータを更新することができる。バンドル調節モジュール116は、カメラ毎に異なる外部パラメータを決定してもよい。バンドル調節モジュール116は、複数の異なる姿勢に関する外部パラメータを出力する、または別様に使用することができる。
【0085】
バンドル調節モジュール116によって決定された、更新されたパラメータ、例えば、更新された外部パラメータ414は、カメラ104、106によって捕捉された将来の画像データに適用されることができる。例えば、更新された外部パラメータは、環境内のヘッドセット102の位置を決定する際の将来の使用のために、SLAMシステムに提供されることができる。いくつかの実施例では、更新された外部パラメータ414は、ヘッドセット102の現在の外部パラメータを上書きするために使用されてもよい。更新された外部パラメータ414は、ヘッドセット102の位置または姿勢毎に特有であり得る。
【0086】
更新された外部パラメータ414を用いて、3Dモデル、ヘッドセット姿勢、または両方に関する正確度が、改良されることができる。エピポーラ制約を使用するバンドル調節に起因して、更新された外部パラメータは、ヘッドセット102の姿勢毎の全てのキー点を横断して最適化されることができる。したがって、バンドル調節問題に沿った最適化プロセスの間にエピポーラ制約を最小限にすることは、他のシステムと比較して、ヘッドセットのより高い正確度のオンライン較正をもたらすことができる。
【0087】
図5は、エピポーラ制約を使用してバンドル調節を実施するためのプロセス500のフロー図である。例えば、プロセス500は、システム100からの拡張現実ヘッドセット102等のデバイスによって使用されることができる。
【0088】
デバイスは、ヘッドセットから、ヘッドセットの特定の姿勢に関する画像データを受信し、画像データは、(i)ヘッドセットの第1のカメラからの第1の画像と、(ii)ヘッドセットの第2のカメラからの第2の画像とを含む(502)。いくつかの実施例では、本デバイスは、ヘッドセットの移動の経路に沿った複数の異なる姿勢のそれぞれにおいて、第1および第2のカメラから画像を受信することができる。いくつかの実施例では、本デバイスは、ヘッドセットの第1の姿勢に関するヘッドセットからの第1の画像データおよびヘッドセットの第2の姿勢に関する第2の画像データを受信することができる。変形が、ヘッドセットの第1の姿勢とヘッドセットの第2の姿勢との間で生じ得る。
【0089】
本デバイスは、1つまたはそれを上回るカメラから画像データを受信することができる。1つまたはそれを上回るカメラは、本デバイスまたは別のデバイスに統合されることができる。いくつかの実施例では、本デバイスは、第1のカメラから画像データの第1の部分を受信し、第2の異なるカメラから画像データの第2の異なる部分を受信することができる。第1の画像および第2の画像は、同時またはほぼ同時に、それぞれ、第1のカメラおよび第2のカメラによって捕捉されることができる。これは、第1の画像および第2の画像の同期を可能にすることができる。いくつかの実装では、第2の画像は、第1の画像の捕捉から閾値期間内に捕捉されることができる。
【0090】
本デバイスは、少なくとも部分的に、第1の画像および第2の画像内に表される環境の3次元モデルにおける少なくとも1つのキー点を識別する(504)。いくつかの実施例では、本デバイスは、複数のキー点を識別することができる。本デバイスは、例えば、別のデバイスまたはシステムから受信された、少なくとも1つのキー点を示すデータを受信することによって、少なくとも1つのキー点を識別することができる。本デバイスは、キー点を識別するために1回またはそれを上回る算出を実施することによって、少なくとも1つのキー点を識別することができる。例えば、本デバイスは、画像または複数の画像を分析し、画像または複数の画像のそれぞれにおいて描写される点を決定することができる。画像は、第1の画像または第2の画像であり得る。複数の画像は、第1の画像と、第2の画像とを含むことができる。
【0091】
本デバイスは、(i)第1の画像および第2の画像に基づく少なくとも1つのキー点に関する再投影誤差および(ii)第1の画像および第2の画像に基づく少なくとも1つのキー点に関するエピポーラ誤差を共同で最適化することによって、第1の画像および第2の画像を使用して、バンドル調節を実施する(506)。いくつかの実施例では、エピポーラ誤差は、ヘッドセットの較正からの差異を引き起こす、ヘッドセットの変形を表す。
【0092】
いくつかの実施例では、本デバイスは、複数のキー点を識別し、複数のキー点のそれぞれを横断する誤差を共同で最適化することができる。複数のキー点を横断する誤差を共同で最適化することは、複数のキー点のそれぞれを横断する全誤差を最小限にすることを含むことができる。全誤差は、複数のキー点のうちの2つまたはそれを上回るものに関する再投影誤差およびエピポーラ誤差の組み合わせを含むことができる。全誤差は、工場較正誤差を含むことができる。
【0093】
いくつかの実施例では、本デバイスは、(i)第1の画像および第2の画像に基づく少なくとも1つのキー点に関する再投影誤差、(ii)第1の画像および第2の画像に基づく少なくとも1つのキー点に関するエピポーラ誤差、および(iii)ヘッドセットの工場較正に基づく誤差を共同で最適化することによって、第1の画像および第2の画像を使用して、バンドル調節を実施することができる。
【0094】
本デバイスは、バンドル調節の結果を使用し、(i)3次元モデルを更新すること、(ii)特定の姿勢におけるヘッドセットの位置を決定すること、または(iii)第1のカメラおよび第2のカメラの外部パラメータを決定することのうちの少なくとも1つを実施する(508)。特定の姿勢の位置を決定することは、3次元モデルに対するヘッドセットの位置を決定することを含むことができる。
【0095】
いくつかの実施例では、本デバイスは、バンドル調節の結果を使用し、3次元モデルを更新することができ、更新された3次元モデルに基づいて、ヘッドセットによる表示のための出力を提供することができる。いくつかの実施例では、モデルを更新することは、モデル内の1つまたはそれを上回るキー点の位置を更新することを含む。
【0096】
いくつかの実施例では、本デバイスは、第1の画像および第2の画像に基づいて、特定の姿勢に関する外部パラメータのセットを決定することができる。本デバイスは、エピポーラ誤差を伴う最適化を使用して、複数の異なる姿勢のうちの少なくともいくつかに関する第1および第2のカメラに関する異なる外部パラメータを決定することができる。本デバイスは、バンドル調節に基づいて、ヘッドセットの一連の姿勢または姿勢の経路を更新することができる。
【0097】
本デバイスは、バンドル調節の結果を使用し、複数の姿勢のそれぞれにおけるヘッドセットの位置を決定する、複数の姿勢のそれぞれにおける第1のカメラおよび第2のカメラの外部パラメータを決定する、または両方を行うことができる。例えば、本デバイスは、第1の姿勢における第1のカメラおよび第2のカメラの第1の外部パラメータおよび第2の姿勢における第1のカメラおよび第2のカメラの第2の外部パラメータを決定することができる。第1の外部パラメータは、第2の外部パラメータと異なってもよい。いくつかの実施例では、第1の外部パラメータと第2の外部パラメータとの間の差異は、第1の姿勢と第2の姿勢との間で生じたヘッドセットの変形に起因し得る。
【0098】
いくつかの実施例では、外部パラメータは、ヘッドセット上の基準位置に対する第1のカメラまたは第2のカメラの関係を示す、平行移動および回転を含む。基準位置は、例えば、外部パラメータが決定されているカメラと異なる別のカメラ、深度センサ、慣性測定ユニット、またはヘッドセット上の別の適切な位置であり得る。いくつかの実装では、カメラ毎の外部パラメータは、ヘッドセット上の同一の基準位置に対するものである。いくつかの実装では、カメラのうちの少なくともいくつかに関する外部パラメータは、ヘッドセット上の異なる基準位置に対するものである。
【0099】
本デバイスは、環境に関する環境モデルの更新および環境内の本デバイスの推定される位置を決定する、同時位置特定およびマッピングプロセスへの入力としての使用のための更新されたカメラ外部パラメータを提供することができる。
【0100】
上記に説明されるプロセス500におけるステップの順序は、例証にすぎず、バンドル調節は、異なる順序で実施されることができる。いくつかの実装では、プロセス500は、付加的ステップ、より少ないステップを含むことができる、またはステップのうちのいくつかが、複数のステップに分割されることができる。例えば、本デバイスは、画像データを受信し、少なくとも1つのキー点を識別し、バンドル調節の結果を使用することなく、バンドル調節を実施することができる。これらの実施例では、本デバイスは、バンドル調節の結果を、別のデバイス、例えば、本デバイスがバンドル調節を実施する1つまたはそれを上回るコンピュータのシステムの一部であるとき、ヘッドセットに提供することができる。
【0101】
いくつかの実装が、説明されている。それにもかかわらず、種々の修正が、本開示の精神および範囲から逸脱することなく、行われ得ることを理解されたい。例えば、上記に示されるフローの種々の形態が、ステップが再順序付け、追加、または除去されて、使用されてもよい。
【0102】
本明細書に説明される主題の実施形態および機能的動作は、デジタル電子回路網において、有形に具現化されるコンピュータソフトウェアまたはファームウェアにおいて、本明細書に開示される構造およびそれらの構造的均等物を含む、コンピュータハードウェアにおいて、またはそれらのうちの1つまたはそれを上回るものの組み合わせにおいて実装されることができる。本明細書に説明される主題の実施形態は、1つまたはそれを上回るコンピュータプログラム、すなわち、データ処理装置による実行のための、またはその動作を制御するための有形非一過性プログラムキャリア上でエンコードされるコンピュータプログラム命令の1つまたはそれを上回るモジュールとして実装されることができる。代替として、または加えて、プログラム命令は、データ処理装置による実行のための好適な受信機装置への伝送のための情報をエンコードするために発生される、人工的に発生された伝搬信号、例えば、機械発生電気、光学、または電磁信号上でエンコードされることができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたはそれを上回るものの組み合わせであり得る。
【0103】
用語「データ処理装置」は、データ処理ハードウェアを指し、実施例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。本装置はまた、専用論理回路網、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)である、またはそれをさらに含むことができる。本装置は、随意に、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたはそれを上回るものの組み合わせを成すコードを含むことができる。
【0104】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも称される、またはそれとしても説明され得る、コンピュータプログラムは、コンパイル型または解釈型言語、または宣言型または手続き型言語を含む、任意の形態のプログラミング言語で記述されることができ、これは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境内での使用のために好適な他のユニットとしてを含む、任意の形態で展開されることができる。コンピュータプログラムは、必要ではないが、ファイルシステム内のファイルに対応してもよい。プログラムは、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語文書内に記憶される1つまたはそれを上回るスクリプト内に、当該プログラム専用である単一のファイル内に、または複数の協調ファイル、例えば、1つまたはそれを上回るモジュール、サブプログラム、またはコードの一部を記憶するファイル内に記憶されることができる。コンピュータプログラムは、1つのコンピュータ上で、または1つの地点に位置する、または複数の地点を横断して分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開されることができる。
【0105】
本明細書に説明されるプロセスおよび論理フローは、入力データに対して動作し、出力を発生させることによって機能を実施するために、1つまたはそれを上回るコンピュータプログラムを実行する、1つまたはそれを上回るプログラマブルコンピュータによって実施されることができる。プロセスおよび論理フローはまた、専用論理回路網、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施されることができ、装置はまた、それとして実装されることができる。
【0106】
コンピュータプログラムの実行のために好適なコンピュータは、実施例として、汎用または専用マイクロプロセッサまたは両方、または任意の他の種類の中央処理ユニットを含む。概して、中央処理ユニットは、読取専用メモリまたはランダムアクセスメモリまたは両方から命令およびデータを受信するであろう。コンピュータの不可欠の要素は、命令を実施または実行するための中央処理ユニットおよび命令およびデータを記憶するための1つまたはそれを上回るメモリデバイスである。概して、コンピュータはまた、データを記憶するための1つまたはそれを上回る大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光学ディスクを含む、またはそこからデータを受信する、またはそこにデータを転送するために動作的に結合される、または両方であろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。また、コンピュータは、別のデバイス、例えば、いくつかのみ例を挙げると、モバイル電話、スマートフォン、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ内に埋設されることができる。
【0107】
コンピュータプログラム命令およびデータを記憶するために好適なコンピュータ可読媒体は、実施例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路網によって補完される、またはその中に組み込まれることができる。
【0108】
ユーザとの相互作用を提供するために、本明細書に説明される主題の実施形態は、情報をユーザに表示するためのディスプレイデバイス、例えば、LCD(液晶ディスプレイ)、OLED(有機発光ダイオード)、または他のモニタと、それによってユーザが入力をコンピュータに提供し得る、キーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールとを有する、コンピュータ上で実装されることができる。他の種類のデバイスも、同様にユーザとの相互作用を提供するために使用されることができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形態で受信されることができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによって、例えば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
【0109】
本明細書に説明される主題の実施形態は、例えば、データサーバとして、バックエンドコンポーネントを含む、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含む、またはフロントエンドコンポーネント、例えば、それを通してユーザが本明細書に説明される主題の実装と相互作用し得る、グラフィカルユーザインターフェースまたはウェブブラウザを有する、クライアントコンピュータを含む、または1つまたはそれを上回るそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせを含む、コンピューティングシステムにおいて実装されることができる。本システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続されることができる。通信ネットワークの実施例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、例えば、インターネットを含む。
【0110】
コンピューティングシステムは、クライアントと、サーバとを含むことができる。クライアントおよびサーバは、概して、相互から遠隔であり、典型的には、通信ネットワークを通して相互作用する。クライアントおよびサーバの関係は、個別のコンピュータ上で実行され、相互に対するクライアント-サーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、例えば、クライアントとして作用する、ユーザデバイスと相互作用するユーザにデータを表示し、ユーザからユーザ入力を受信する目的のために、データ、例えば、ハイパーテキストマークアップ言語(HTML)ページをユーザデバイスに伝送する。ユーザデバイスにおいて発生されたデータ、例えば、ユーザ相互作用の結果は、サーバにおいてユーザデバイスから受信されることができる。
【0111】
本明細書は、多くの具体的な実装詳細を含有するが、これらは、請求され得る内容の範囲に対する限定として解釈されるべきではなく、むしろ、特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に説明されるある特徴はまた、単一の実施形態において組み合わせて実装されることができる。逆に、単一の実施形態の文脈において説明される種々の特徴はまた、複数の実施形態において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。また、特徴が、ある組み合わせにおいて作用するものとして上記に説明され、さらには最初にそのように請求され得るが、請求される組み合わせからの1つまたはそれを上回る特徴は、ある場合には、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。
【0112】
同様に、動作が、特定の順序で図面に描写されるが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または順次的順序で実施され、全ての図示される動作が実施されることを要求するものとして理解されるべきではない。ある状況では、マルチタスクおよび並列処理が、有利であり得る。また、上記に説明される実施形態における種々のシステムモジュールおよびコンポーネントの分離は、全ての実施形態においてそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムが、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0113】
本発明の特定の実施形態が、説明されている。他の実施形態も、以下の請求項の範囲内である。例えば、請求項に列挙される、本明細書に説明される、または図に描写されるステップは、異なる順序で実施され、依然として、望ましい結果を達成することができる。ある場合には、マルチタスクおよび並列処理が、有利であり得る。
【0114】
特許請求の範囲
【国際調査報告】