JP2022541100A - 共同環境再構築およびカメラキャリブレーション - Google Patents
共同環境再構築およびカメラキャリブレーション Download PDFInfo
- Publication number
- JP2022541100A JP2022541100A JP2021571007A JP2021571007A JP2022541100A JP 2022541100 A JP2022541100 A JP 2022541100A JP 2021571007 A JP2021571007 A JP 2021571007A JP 2021571007 A JP2021571007 A JP 2021571007A JP 2022541100 A JP2022541100 A JP 2022541100A
- Authority
- JP
- Japan
- Prior art keywords
- environment
- observations
- camera
- model
- poses
- 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 claims abstract description 119
- 230000007613 environmental effect Effects 0.000 claims abstract description 17
- 230000033001 locomotion Effects 0.000 claims description 49
- 238000003860 storage Methods 0.000 claims description 32
- 230000004807 localization Effects 0.000 claims description 14
- 230000003287 optical effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 10
- 238000005259 measurement Methods 0.000 description 8
- 230000004927 fusion Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000000275 quality assurance Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000001429 visible spectrum Methods 0.000 description 2
- 206010011878 Deafness Diseases 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000008733 trauma Effects 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/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/497—Means for monitoring or calibrating
-
- 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/521—Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
-
- 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/10048—Infrared image
-
- 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)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Optics & Photonics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
一実施形態では、ある方法が、カメラリグに関するキャリブレーションモデルにアクセスすることを含む。この方法は、環境における複数の姿勢からカメラリグによって取り込まれた環境の複数の観測値にアクセスすることを含む。この方法は、少なくとも観測値、姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することを含む。この方法は、姿勢のうちの1つまたは複数に関して、環境モデルおよび姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することを含む。この方法は、予測された観測値を、予測された観測値が特定された元である姿勢に対応する観測値に比較することを含む。この方法は、比較に基づいてキャリブレーションモデルを改訂することを含む。この方法は、少なくとも環境の観測値のセットおよび改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することを含む。【選択図】図1
Description
本開示は、全般的にカメラキャリブレーションに関する。
精度を確保するために、カメラはしばしば、コンピュータビジョンおよび関連したアプリケーションで使用される測定値またはその他のデータを取り込むために使用される前にキャリブレーションされる。不正確な測定は、エラーの原因に関係なく、基本的な測定値に依存するアプリケーションで悪化して重大なエラーにつながり得る。コンピュータビジョンアプリケーションの複雑さが増すにつれて、測定エラーが悪化する機会も増える。カメラキャリブレーションに対する多くのアプローチはしばしば、特別な構成機器、特別に構成された環境、または環境における特別なジオメトリを必要とする。多くのアプローチはまた、かなりの時間および計算リソースを消費し、誤った取り扱い、環境における変化、および機器の劣化に起因して以前のキャリブレーションが不正確になる確率が高いにもかかわらず、キャリブレーションを頻繁に実行することによって引き起こされる負担を増やす。カメラキャリブレーション技術は、デジタル出力を有する多くのタイプのカメラで使用され得る。
スマートフォン、タブレットコンピュータ、またはラップトップコンピュータなどのモバイルコンピューティングデバイスは、GPS受信機、コンパス、ジャイロスコープ、または加速度計など、自身の場所、方向、または向きを特定するための機能性を含み得る。このようなデバイスはまた、BLUETOOTH通信、近距離無線通信(NFC)、もしくは赤外線(IR)通信などのワイヤレス通信、またはワイヤレスローカルエリアネットワーク(WLAN)もしくはセルラー電話ネットワークとの通信のための機能性を含み得る。このようなデバイスはまた、1つまたは複数のカメラ、スキャナ、タッチスクリーン、マイクロフォン、またはスピーカーを含み得る。モバイルコンピューティングデバイスはまた、ゲーム、ウェブブラウザ、またはソーシャルネットワーキングアプリケーションなどのソフトウェアアプリケーションを実行し得る。ソーシャルネットワーキングアプリケーションを用いて、ユーザたちは、自分たちのソーシャルネットワークにおいてその他のユーザとつながり、コミュニケーションし、情報を共有し得る。
特定の実施形態では、カメラリグに関連付けられているコンピューティングデバイスによる共同環境再構築およびカメラキャリブレーションのための方法が、カメラリグに関するキャリブレーションモデルにアクセスすることを含む。初期キャリブレーションモデルが、たとえば、製造業者のプロセスの一部としての標準的なキャリブレーション手順によって事前に特定され得る。この方法は、環境における複数の姿勢からカメラリグによって取り込まれた環境の第1の複数の観測値にアクセスすることを含み得る。環境の観測値が取り込まれる際に、カメラリグの姿勢に関する情報も取り込まれ得る。特定の実施形態では、環境の観測値は、環境へと投影された構造化光パターンの検知に基づく(たとえば、奥行きカメラから生成された)奥行きマップを含み得る。
特定の実施形態では、この方法は、少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することを含み得る。キャリブレーションモデルは、姿勢に基づいて観測値を解釈するために使用され得る。環境モデルは、環境の複数の推定値を融合することによって形成された環境のデジタル再構築を含むことが可能であり、環境のそれぞれの推定値は、単一の観測値と姿勢との組合せから生じ得る。
この方法は、複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することを含み得る。予測された観測値は、収集された姿勢に基づいて(たとえば、環境モデルを通じて)環境のシミュレートされた観測値を作成することによって生成され得る。この方法は、1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することを含み得る。この比較は、予測された観測値と、取り込まれた観測値との間におけるあらゆる差を特定することを含み得る。カメラキャリブレーションモデルは、たとえば、比較の結果になど、比較に基づいて改訂され得る。この方法は、少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することを含み得る。このプロセスは、新たな取り込まれた観測値に基づいて環境モデルを改訂することと、改訂された環境モデルに基づいてカメラキャリブレーションモデルを改訂することとを交互に行って継続し得る。
本発明の実施形態は、人工現実システムを含むこと、または人工現実システムとともに実施されることが可能である。人工現実とは、ユーザへの提示の前に何らかの様式で調整された現実の一形態であり、この形態は、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、またはそれらの何らかの組合せおよび/もしくは派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、または取り込まれたコンテンツ(たとえば、現実世界の写真)と組み合わされた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含むことが可能であり、それらのいずれも、単一のチャネルで、または複数のチャネル(視聴者に対する3次元効果をもたらすステレオビデオなど)で提示され得る。加えて、いくつかの実施形態では、たとえば、人工現実においてコンテンツを作成するために使用される、および/または人工現実において使用される(たとえば、人工現実において活動を実行する)アプリケーション、製品、付属物、サービス、またはそれらの何らかの組合せに人工現実が関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されているヘッドマウントディスプレイ(HMD)、スタンドアロンのHMD、モバイルデバイスもしくはコンピューティングシステム、または、1人もしくは複数の視聴者に人工現実コンテンツを提供することが可能な任意のその他のハードウェアプラットフォームを含むさまざまなプラットフォーム上で実施され得る。
本明細書に開示されている実施形態は、例にすぎず、本開示の範囲は、それらに限定されない。特定の実施形態は、本明細書に開示されている実施形態のコンポーネント、要素、特徴、機能、オペレーション、またはステップのうちのすべてを含むこと、いくつかを含むこと、またはいずれも含まないことが可能である。本発明による実施形態は、詳細には、方法、ストレージメディア、システム、およびコンピュータプログラム製品を対象とした添付の特許請求の範囲に開示されており、1つの請求項カテゴリー、たとえば方法で言及されている任意の特徴が、別の請求項カテゴリー、たとえばシステムでも特許請求されることが可能である。添付の特許請求の範囲での従属関係または後方参照は、形式上の理由でのみ選ばれている。しかしながら、任意の前の請求項への意図的な後方参照(とりわけ複数の従属関係)から生じる任意の主題が特許請求されることも可能であり、それによって、請求項どうしおよびその特徴どうしの任意の組合せが開示され、添付の特許請求の範囲で選ばれている従属関係に関係なく特許請求されることが可能である。特許請求されることが可能である主題は、添付の特許請求の範囲に示されている特徴どうしの組合せだけでなく、特許請求の範囲における特徴どうしの任意のその他の組合せも含み、特許請求の範囲で言及されているそれぞれの特徴は、特許請求の範囲における任意のその他の特徴またはその他の特徴どうしの組合せと組み合わされることが可能である。さらに、本明細書に記述されているまたは示されている実施形態および特徴のうちのいずれも、個別の請求項で、および/あるいは本明細書に記述されているもしくは示されている任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のうちのいずれかとの任意の組合せで特許請求されることが可能である。
コンピューティングデバイスによって、
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢からカメラリグによって取り込まれた環境の第1の複数の観測値にアクセスすることと、
少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することと、
複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することと、
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することと、
比較に基づいてキャリブレーションモデルを改訂することと、
少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することとを含む方法が提供される。
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢からカメラリグによって取り込まれた環境の第1の複数の観測値にアクセスすることと、
少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することと、
複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することと、
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することと、
比較に基づいてキャリブレーションモデルを改訂することと、
少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することとを含む方法が提供される。
この方法はさらに、
カメラリグによって、構造化光パターンを環境へと投影することと、
カメラリグのカメラによって、環境における投影された構造化光パターンを検知することと、
検知された構造化光パターンをテンプレート構造化光パターンに比較することとによって環境の第1の複数の観測値を取り込むことを含み得る。
カメラリグによって、構造化光パターンを環境へと投影することと、
カメラリグのカメラによって、環境における投影された構造化光パターンを検知することと、
検知された構造化光パターンをテンプレート構造化光パターンに比較することとによって環境の第1の複数の観測値を取り込むことを含み得る。
この方法はさらに、
カメラリグによって、複数の点を含む構造化光パターンを環境へと投影することと、
カメラリグのカメラによって、環境における構造化光パターンの1つまたは複数の点を検知することと、
検知された点のそれぞれを識別することと、
それぞれの識別された点に関して、識別された点の場所を、構造化光パターンにおける識別された点の対応する予想された関係に比較することとによって環境の第1の複数の観測値を取り込むことを含み得る。
カメラリグによって、複数の点を含む構造化光パターンを環境へと投影することと、
カメラリグのカメラによって、環境における構造化光パターンの1つまたは複数の点を検知することと、
検知された点のそれぞれを識別することと、
それぞれの識別された点に関して、識別された点の場所を、構造化光パターンにおける識別された点の対応する予想された関係に比較することとによって環境の第1の複数の観測値を取り込むことを含み得る。
この方法はさらに、
カメラリグの位置特定システムからカメラリグの姿勢を受信することによって、それぞれの第1の観測値が取り込まれた元であるカメラリグの姿勢を取り込むことを含み得る。
カメラリグの位置特定システムからカメラリグの姿勢を受信することによって、それぞれの第1の観測値が取り込まれた元であるカメラリグの姿勢を取り込むことを含み得る。
この方法はさらに、
カメラリグのモーションセンサからの出力に基づいてカメラリグの位置特定システムを初期化することを含み得る。
カメラリグのモーションセンサからの出力に基づいてカメラリグの位置特定システムを初期化することを含み得る。
この方法はさらに、
少なくとも観測値およびキャリブレーションモデルに基づいてカメラリグを位置特定することによって、それぞれの観測値が取り込まれた元であるカメラリグの姿勢を取り込むことを含み得る。
少なくとも観測値およびキャリブレーションモデルに基づいてカメラリグを位置特定することによって、それぞれの観測値が取り込まれた元であるカメラリグの姿勢を取り込むことを含み得る。
少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含み得る環境モデルを生成することは、
それぞれの観測値と、観測値が取り込まれた元であるカメラリグの姿勢とから環境のジオメトリの推定値を生成することと、
それぞれの観測値から生成された推定値どうしを組み合わせて環境モデルを形成することとを含む。
それぞれの観測値と、観測値が取り込まれた元であるカメラリグの姿勢とから環境のジオメトリの推定値を生成することと、
それぞれの観測値から生成された推定値どうしを組み合わせて環境モデルを形成することとを含む。
1つまたは複数の予測された観測値および第1の複数の観測値は、構造化光パターンの点に関する場所情報を含むことが可能であり、
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することは、それぞれの予測された観測値の場所情報をそれぞれの対応する第1の観測値の場所情報と比較することを含み得る。
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することは、それぞれの予測された観測値の場所情報をそれぞれの対応する第1の観測値の場所情報と比較することを含み得る。
カメラリグに関するキャリブレーションモデルは、
カメラリグのカメラに関する固有のパラメータ、
カメラリグのエミッタに関する固有のパラメータ、
環境におけるカメラリグの位置特定を実行するためのパラメータ、または
カメラリグのカメラとエミッタとの間における関係に関連付けられているパラメータを含む。
カメラリグのカメラに関する固有のパラメータ、
カメラリグのエミッタに関する固有のパラメータ、
環境におけるカメラリグの位置特定を実行するためのパラメータ、または
カメラリグのカメラとエミッタとの間における関係に関連付けられているパラメータを含む。
比較に基づいてキャリブレーションモデルを改訂することは、
1つまたは複数の予測された観測値と、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数との間における差を最小化するように、キャリブレーションモデルのパラメータのうちの1つまたは複数を修正することを含み得る。
1つまたは複数の予測された観測値と、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数との間における差を最小化するように、キャリブレーションモデルのパラメータのうちの1つまたは複数を修正することを含み得る。
あるいは、比較に基づいてキャリブレーションモデルを改訂することは、
提案された改訂済みのキャリブレーションモデルを計算することと、
提案された改訂済みのキャリブレーションモデル、環境における1つまたは複数の姿勢からカメラリグによって取り込まれた環境の1つまたは複数の観測値に基づいて環境のジオメトリの予測値を生成することと、
1つまたは複数の予測された観測値の比較を、第1の観測値のうちの1つまたは複数およびジオメトリの予測値に比較することと、
比較が改訂しきい値を満たしているということを特定することとを含み得る。
提案された改訂済みのキャリブレーションモデルを計算することと、
提案された改訂済みのキャリブレーションモデル、環境における1つまたは複数の姿勢からカメラリグによって取り込まれた環境の1つまたは複数の観測値に基づいて環境のジオメトリの予測値を生成することと、
1つまたは複数の予測された観測値の比較を、第1の観測値のうちの1つまたは複数およびジオメトリの予測値に比較することと、
比較が改訂しきい値を満たしているということを特定することとを含み得る。
少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することは、
第2の複数の観測値、観測値が収集された元である第2の複数の姿勢、および改訂されたキャリブレーションモデルから、提案された改訂済みの環境モデルを生成することと、
環境モデルと、提案された改訂済みの環境モデルとを比較することとを含み得る。
第2の複数の観測値、観測値が収集された元である第2の複数の姿勢、および改訂されたキャリブレーションモデルから、提案された改訂済みの環境モデルを生成することと、
環境モデルと、提案された改訂済みの環境モデルとを比較することとを含み得る。
カメラリグの動きセンサからカメラリグの動きを受信したことに応答して、環境の1つまたは複数の予測された観測値が特定され得るか、または
カメラリグの動きセンサからカメラリグの動きを受信したことに応答して、環境モデルが改訂される。
カメラリグの動きセンサからカメラリグの動きを受信したことに応答して、環境モデルが改訂される。
この方法はさらに、
環境モデルを改訂する前に、カメラリグの受信された動きを、少なくとも改訂されたカメラキャリブレーションモデルおよび環境の第2の複数の観測値に基づいて特定されたカメラリグの動きに比較することを含み得る。
環境モデルを改訂する前に、カメラリグの受信された動きを、少なくとも改訂されたカメラキャリブレーションモデルおよび環境の第2の複数の観測値に基づいて特定されたカメラリグの動きに比較することを含み得る。
カメラリグの動きセンサは、
加速度計、
ジャイロスコープ、
超音波動きセンサ、
磁力計、または
光学動きセンサを含み得る。
加速度計、
ジャイロスコープ、
超音波動きセンサ、
磁力計、または
光学動きセンサを含み得る。
カメラリグのカメラは、赤外線または紫外線を検知するように構成され得る。
カメラリグは、ヘッドマウントデバイスに組み込まれ得る。
カメラリグは、ハンドヘルドコンピューティングデバイスに組み込まれ得る。
ソフトウェアを具体化している1つまたは複数のコンピュータ可読非一時的ストレージメディアであって、そのソフトウェアが、実行されたときに、
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢からカメラリグによって取り込まれた環境の第1の複数の観測値にアクセスすることと、
少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することと、
複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することと、
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することと、
比較に基づいてキャリブレーションモデルを改訂することと、
少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することとを行うように動作可能である、1つまたは複数のコンピュータ可読非一時的ストレージメディアも提供される。
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢からカメラリグによって取り込まれた環境の第1の複数の観測値にアクセスすることと、
少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することと、
複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することと、
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することと、
比較に基づいてキャリブレーションモデルを改訂することと、
少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することとを行うように動作可能である、1つまたは複数のコンピュータ可読非一時的ストレージメディアも提供される。
1つまたは複数のプロセッサと、
プロセッサのうちの1つまたは複数に結合されていて、命令を含む1つまたは複数のコンピュータ可読非一時的ストレージメディアと
を備えたシステムであって、命令が、プロセッサのうちの1つまたは複数によって実行されたときに、
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢からカメラリグによって取り込まれた環境の第1の複数の観測値にアクセスすることと、
少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することと、
複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することと、
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することと、
比較に基づいてキャリブレーションモデルを改訂することと、
少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することとをシステムに行わせるように動作可能である、システムがさらに提供される。
プロセッサのうちの1つまたは複数に結合されていて、命令を含む1つまたは複数のコンピュータ可読非一時的ストレージメディアと
を備えたシステムであって、命令が、プロセッサのうちの1つまたは複数によって実行されたときに、
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢からカメラリグによって取り込まれた環境の第1の複数の観測値にアクセスすることと、
少なくとも第1の複数の観測値、複数の姿勢、およびキャリブレーションモデルに基づいて、環境のジオメトリを含む環境モデルを生成することと、
複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定することと、
1つまたは複数の予測された観測値を、1つまたは複数の予測された観測値が特定された元である1つまたは複数の姿勢に対応する第1の観測値のうちの1つまたは複数に比較することと、
比較に基づいてキャリブレーションモデルを改訂することと、
少なくとも環境の第2の複数の観測値および改訂されたキャリブレーションモデルに基づいて環境モデルを改訂することとをシステムに行わせるように動作可能である、システムがさらに提供される。
本発明の1つまたは複数の態様または実施形態への組み込みに適しているものとして本明細書に記述されているいずれの特徴も、本開示のありとあらゆる態様および実施形態にわたって一般化可能であることを意図されているということが理解されるであろう。
特定の実施形態では、カメラリグは、カメラリグを取り巻く環境に関するジオメトリをリグが特定することを可能にするコンポーネントを含み得る。これらの実施形態は、奥行き感知カメラ、または単に「奥行きカメラ」を含むことが可能であり、これは、カメラの視野における物体に関してカメラからの距離を測定するように構成されている。奥行きカメラの出力は、カメラからの画像における個々のピクセルの距離を伝達する奥行きマップを含み得る。このピクセルごとの奥行きは、カメラの別のセンサ(たとえば、画像センサ)によって提供される色情報と統合されて、奥行き情報を伴う画像を生成することが可能である。特定の実施形態では、奥行きカメラは、リアルタイムでカメラの視野におけるジオメトリに関する奥行きマップを示す静止画像または出力ライブビデオを提供し得る。それゆえに奥行きカメラは、幅広い潜在的な用途を有する。
特定の実施形態では、奥行きカメラの個々のフレームの出力を使用して、奥行きカメラの環境に関するモデルを生成または再構築することが可能である。たとえば、「ジオメトリ融合」では、環境に関する奥行き情報が、フレームどうし(または入力のその他のスパンどうし)にわたって統合または「融合」されて環境モデルになり得る。カメラによって検知可能な物体が認識されることが可能であり、その物体の位置がフレームどうしにわたって記録され得る。これは、物体、または後壁など、環境のその他の認識された部分の奥行きが、時間の経過に伴うその物体に関する奥行きどうしの組合せ(たとえば、加重平均)に基づいて特定されることを可能にし得る。特定のアプリケーションでは、環境モデルは、単一の画像からなど、単一の奥行きマップを使用して利用可能であり得るよりも、環境のさらに正確な表示を提供し得る。複数の奥行きマップからのピクセルの色およびピクセルごとの奥行きを使用して、詳細な環境モデルを生成することが可能である。結果として生じるモデルは、奥行きカメラを取り巻く環境の容積測定の再構築であり得る。しかしながら、時間の経過に伴って正確なジオメトリ融合を実行するためのコンピューティング要件は、きわめて高い場合があり、その結果、特定のリアルタイムオペレーションに関するパフォーマンスが貧弱になる。
特定の実施形態では、環境モデルは、環境において奥行きカメラを位置特定するためのプロセスの一部として使用され得る。自己位置推定と環境地図作成の同時実行(「SLAM」)として知られている、コンピュータビジョンの1つの問題では、目標は概して、1つまたは複数のセンサからのセンサデータを使用して、エージェントを取り巻く環境の地図と、その環境内のエージェントの場所との両方を特定することである。たとえば、時間の経過に伴うカメラからの画像データどうしの間における共通性を使用して、SLAM問題を解決することが可能である。特定の実施形態では、環境モデルを使用して、奥行きカメラを、その他の解決策よりも効率的に(スピードおよび計算リソースの観点で)かつ正確に位置特定することが可能である。たとえば、カメラから受信された画像データを環境モデルに比較して、環境に対するカメラの姿勢を特定することが可能である。奥行きカメラからの奥行き情報を使用してプロセスを拡張して、あいまいさ(たとえば、縮尺、投影など)をシステムがより効率的に解決することを可能にすることもできる。いくつかの実施形態では、姿勢は、たとえば、カメラを環境内に置いて世界座標系の点から表され得る。いくつかの実施形態では、姿勢は、たとえば、カメラの環境の物体を置いてカメラ座標系の点から表され得る。奥行きカメラをその環境で位置特定することは、さまざまな用途を有する。位置特定プロセスのスピードを改善することは、製造(たとえば、製品の設計またはテスト)、エンターテインメントおよび生産性(たとえば、人工現実アプリケーション用のヘッドマウントデバイス、または内部マッピング用のヘッドヘルドデバイス)、自律オペレーション、生活支援(たとえば、環境に関する情報を視覚障害者または聴覚障害者に提供するため)、ならびにその他の多くの分野などの分野でのさまざまなリアルタイムアプリケーションを含むように使用をさらに広げる。
多くのコンピュータビジョン関連の技術と同様に、奥行きカメラのコンポーネントのキャリブレーションは、環境モデルの精度に影響を与え得る。いくつかの実施形態では、奥行きカメラに関する正確なキャリブレーションモデルを生成しようとする試みにおいて、高度に専門化された機器を使用してキャリブレーションが実行され得る。たとえば、奥行きカメラが製造上の欠陥または異常を示すかどうかを特定するために製造業者または品質保証提供者によって検査機器が使用され得る。同様に、自動化された技術は、専門化されたキャリブレーションターゲットと、正確に測定された距離とを含み得る慎重に構築されたキャリブレーション環境に依存し得る。グラウンドトゥルース値(たとえば、キャリブレーション環境に関する既知の値)と比較して、奥行きカメラによって検知された奥行き情報を使用して、奥行きカメラのキャリブレーションモデルに対する訂正が行われ得る。典型的な使用事例では、奥行きカメラがキャリブレーションされると、その奥行きカメラは、エンドユーザによって使用され得る。
環境モデルの品質は、奥行きカメラのキャリブレーションを実際の使用から切り離すという実践上の必要性によって制限され得る。特定の実施形態では、キャリブレーションパラメータが、時間の経過に伴って、いくつかのケースでは予測可能に、しかし多くの場合は予想外に変動し得る。たとえば、自然に生じる環境要因は、微妙なものでさえ、使用されるキャリブレーションの厳密な性質に起因して奥行きカメラキャリブレーションモデルに影響を与え得る。周囲の熱または圧力における変化が、カメラキャリブレーションに不規則性をもたらし得る。別の例として、奥行きカメラアプリケーションがカメラの動きを必要とする場合、たとえば、カメラがヘッドマウントディスプレイまたはハンドヘルドデバイスに組み込まれている場合、ユーザの通常の動きが不規則性をもたらし得る。さらに、奥行きカメラは、衝撃(たとえば、輸送または使用中の落下および衝突)、極端な温度、改ざんもしくはその他の悪意ある活動、またはさまざまなその他のものなど、予想外のストレスにさらされ得る。高性能機器での、またはリアルタイムオペレーションでの使用など、正確なキャリブレーションが高い優先事項である用途では、奥行きカメラは、キャリブレーションスペシャリストに渡されることが可能になるまで、または時間のかかるキャリブレーション手順を受けるまで、使用できなくされ得る。
特定の実施形態では、共同奥行きカメラキャリブレーションおよび環境再構築手順が、再構築品質を著しく改善することが可能であり、その一方でさらなるキャリブレーションターゲットまたはカスタマイズされた環境に対する必要性を低減するか、またはなくしさえする。さらに、特定の実施形態では、共同手順の計算効率が、バックグラウンドオペレーションとしてキャリブレーションが生じることを可能にすることができ、バックグラウンドオペレーションでは、システムの非キャリブレーション使用中に時間の経過に伴ってキャリブレーションが生じる。共同キャリブレーションおよび再構築手順は、交互の反復プロセスで解決され得る2つの相互に関連した推定問題へと分解され得る。第1のステップでは、奥行きカメラに関するキャリブレーションモデルがアクセスまたは推定され得る。例として、公称製造キャリブレーションパラメータが使用され得る。別の例として、キャリブレーションは、製造プロセスの一部として実行され得る。事前のキャリブレーションを使用して、奥行きカメラを取り巻く環境のジオメトリが推定され得る。本開示の全体を通じて詳細に記述されているように、環境推定は、キャリブレーションモデルと、指定された時間枠におけるさまざまな時点で奥行きカメラによって収集された奥行き測定値、姿勢、またはその他のセンサデータとに基づき得る。例として、姿勢は、カメラリグのSLAMサブシステムによって、またはそのSLAMサブシステムを用いて特定され得る。別の例として、姿勢は、カメラリグの1つまたは複数の動きセンサに基づいて特定され得る。たとえばジオメトリ融合を使用して、環境ジオメトリの複数の個々の推定値が組み合わされて環境モデルの最初の反復になることが可能である。第2のステップでは、次いで環境モデルを使用して奥行きカメラキャリブレーションを更新することが可能である。第1のステップからの姿勢と、環境モーダルとを使用して環境の予測を生成することが可能である。予測は、それぞれの所与の姿勢に関連付けられている、第1のステップからのカメラ奥行きまたは画像計算と比較され得る。予測と、取り込まれたデータとの間における違いは、エラーとして解釈され得る。エラーは、カメラキャリブレーションモデルを改訂することによって訂正され得る。この記述されている技術では、奥行き測定値は、奥行きカメラに関して使用されるキャリブレーションパラメータの関数として解釈され得る。カメラキャリブレーションモデル、環境モデル、ならびに共同奥行きカメラキャリブレーションおよび環境再構築手順が、ここで本開示の図を参照しながら、より詳細に説明される。
図1は、リグにおける例示的な奥行きカメラ100を示している。例示的な奥行きカメラ100は、カメラ110およびエミッタ120という2つのコンポーネントを含む。エミッタ120は、奥行きカメラ100を取り巻く環境へと構造化光パターンを投影し得る。エミッタ120は、光パターンを生成することが可能であり、その光パターンは、1つまたは複数の回折光学素子125を通じて投影され、それらの回折光学素子125は、光パターンが環境全体に広がるようにし得る。光パターンは、環境における表面135に当たる複数の光線130aを含み得る。表面135で反射する光線130bは、カメラ110に到達し得る。簡潔さという目的のために、カメラ110に到達する光線のみが示されている。実際には、光線130aが環境における表面135に当たった際には、複数の光線が任意の数の可能な方向に反射される可能性があり、一部がカメラ110に到達する。カメラ固有のパラメータ、エミッタ固有のパラメータ、カメラ/エミッタ変換パラメータ、および、構造化光パターン、カメラ130、またはカメラのコンピューティングシステムに関して知られているその他の情報を含むがこれらに限定されないさまざまなパラメータを使用することは、反射された光線130bを解釈して、環境に関する奥行きマッピング情報を特定し得る。
投影された光線は、指定された光パターン、たとえば、パターン160を含み得る。特定の実施形態では、投影パターンは、エミッタ120から投影された数百を超える光ドットを含み得る。光ドットは、エミッタ120によって形成されて、回折光学素子125などの回折光学系を通じた複製プロセスを通じて増大され得る。エミッタ120は、光の可視スペクトルにおいて光ドットを生成するように構成され得る。特定の実施形態では、エミッタ120は、赤外線または紫外線を含むがこれらに限定されない、光の可視スペクトルを超える光ドットを生成するように構成され得る。カメラ110は、光ドットの選ばれた波長に関係なく、光ドットを検知するように構成され得る。特定の実施形態では、エミッタ120によって放射されるパターン、たとえば、パターン160は、テンプレート構造化光パターンを含み得る。特定の実施形態では、エミッタからのパターンのドットどうしの予想される関係も知られ得る(ドットどうしの間において絶対的にであろうと相対的にであろうと)。ドットどうしの関係は、独立したキャリブレーション手順の一部として、または本明細書に記述されている手順の一部としてキャリブレーションされ得る。ドットどうしの関係に関する情報は、本明細書に記述されているように、パターンにおける乱れをより正確に検知するために使用され得る。次いで乱れを使用して、パターンにおける特定の乱れの理由に関するあいまいさを解決することが可能である。たとえば、環境へと投影された後のパターンのドットどうしの検知された関係または場所を、それらのドットの予想される個々の関係に比較することによって、パターンのさらに微妙な乱れが検知され得る。そしてこれは、環境のさらに正確な測定を可能にし得る。
特定のパラメータが、図1に記号で表されている。パラメータの1つのそのようなセットが、カメラ固有のパラメータ140(KC)である。カメラ固有のパラメータは一般に、理想化されたカメラに比較して実際のカメラをシミュレートするために使用されるパラメータを指し得る。特定の実施形態では、カメラ固有のパラメータ140は、カメラの焦点距離、主点オフセット、軸スキュー、または任意のその他の適切なカメラ固有のパラメータを含み得る。焦点距離は、レンズと画像センサとの間における距離を指し得る。主点オフセットは、画像センサ平面の原点に対する主光線(標準的なカメラのピンホールを通過する光線)の場所を指し得る。軸スキューは、取り込まれた画像におけるせん断歪みを指し得る。図1に記号で表されているパラメータの別のセットが、エミッタ固有のパラメータ145(KE)である。エミッタ固有のパラメータは、理想化されたエミッタに比較してエミッタオペレーションを記述するために使用されるパラメータを指し得る。特定の実施形態では、エミッタ固有のパラメータは、エミッタの電力、エミッタ本体120のダイオードに対する回折格子125の配置、回折格子125のうちの1つもしくは複数の向き、傾き、屈折率、使用される光の波長、任意のその他の適切なパラメータ、またはそれらの任意の適切な組合せなどの情報を含み得る。図1に記号で表されているパラメータの別のセットが、カメラ/エミッタ変換パラメータ150(TEC)である。特定の実施形態では、カメラ/エミッタ変換パラメータ150は、エミッタおよびカメラの物理的な配置および向きを測定するために使用されるパラメータを指し得る。特定の実施形態では、環境へと放射される光の原点は、奥行きカメラの画像センサの場所とは異なるので、カメラ/エミッタ変換パラメータ150を使用して、統一された奥行きカメラ/エミッタ(たとえば、そこではエミッタおよびカメラは、同じ物理空間を共有するか、または同じデバイスである)をシミュレートすることが可能である。カメラおよび/またはエミッタは、使用、特に外傷(たとえば、落下)に起因して変わり得るので、パラメータは、奥行きカメラが製造業者を離れた後に改訂を必要とし得る。
図2は、奥行きカメラのキャリブレーションおよび環境の再構築のための例示的な方法200を示している。特定の実施形態では、方法200のステップは、システムの最初の使用中に、新たな環境での最初の使用中に、または定期的なメンテナンスとして実行される標準化されたキャリブレーション手順の一部として実行され得る。特定の実施形態では、方法200のステップは、通常の使用中に(たとえば、システムがその他の非キャリブレーションオペレーションに関与している間に)バックグラウンドでコンピューティングシステムによって実行され得る。この方法は、ステップ201で開始することが可能であり、そこでは、奥行きカメラ110に関連付けられているコンピューティングシステムが、奥行きカメラ110の初期キャリブレーションを実行し得る。初期キャリブレーションは、製造業者、品質保証エージェント、またはその他の資格のあるキャリブレーションエージェントによって実行され得る。初期キャリブレーションは、既知のサイズ、形状、色、または距離の物体を含む環境を含む、1つまたは複数のグラウンドトゥルース構成を使用して実行され得る。初期キャリブレーションは、奥行きカメラが中間ユーザまたはエンドユーザに出荷される前に実行され得る。特定の実施形態では、初期キャリブレーションは、奥行きカメラ、または奥行きカメラを含むシステムの初期化または起動時にユーザによって実行され得る。初期キャリブレーションは、初回使用手順の一部として、または定期的なメンテナンスの一部として実行され得る。
ステップ210で、コンピューティングシステムは、カメラキャリブレーションモデルにアクセスし得る。この方法の最初の反復中に、初期キャリブレーションからカメラキャリブレーションが受信され得る。しかしながら、本開示の全体を通じて記述されるように、記述されている手順は、繰り返し実行されて、環境モデルおよびカメラキャリブレーションモデルの両方を反復的に改良し得る。それらのケースでは、ステップ210中にアクセスされるカメラキャリブレーションモデルは、改訂されたカメラキャリブレーションモデルであり得る。コンピューティングシステムは、カメラキャリブレーションモデルを使用して、奥行きカメラからの観測値を解釈し得る。
ステップ211で、カメラリグのエミッタが光パターンを投影し得る。エミッタは、光パターンを奥行きカメラの環境へと投影し得る。光パターンは、テンプレートに基づく構造化光パターンであり得る。テンプレートは、どこでパターンの逸脱が生じるかを特定することをより簡単にし得る特定のパターンを含み得る。たとえば、パターンは、等間隔のドットのグリッドを含み得る。ジオメトリがなく裏面がある環境へと投影された場合、カメラによって検知されたときのパターンは、同じグリッドであり得る。もちろん、それでも、検知されたグリッドは、カメラリグからの裏壁の距離に基づくスケールに関する調整によって引き起こされる変動を有し得る。ジオメトリのある環境へと投影された場合、検知されたグリッドがテンプレートから逸脱することによってジオメトリが検知され得る。これらの逸脱を使用して、逸脱を引き起こしている環境におけるジオメトリの形状を推定することが可能である。特定の実施形態では、光パターンは、各ドットの場所が知られていて各ドットが個々に識別可能である構造化光パターンであり得る。それゆえに、全体的なパターンに加えて、それぞれの個々のドットに関連付けられている逸脱の度合いを識別することによって、環境のジオメトリをより正確に特定することが可能であり得る。
ステップ212で、カメラリグの奥行きカメラが、環境の観測値を取り込み得る。それらの観測値は、環境の従来の色および/または輝度強度の画像を含み得る。特定の実施形態では、取り込まれる観測値は、カメラリグのエミッタによって環境へと投影された光パターンの観測値を含み得る。たとえば、カメラリグのカメラが、カメラリグのエミッタによって環境へと投影されていた環境における構造化光パターンを検知し得る。構造化光パターンは、構造化光パターンに関するテンプレートに基づいて生成され得る。コンピューティングデバイス(またはカメラのシステム)は、環境で検知された構造化光パターンをテンプレート構造化光パターンに比較し得る。別の例として、それぞれの取り込まれた観測値は、環境における表面によって引き起こされた投影された光パターンの歪みを取り込む点から点への対応のセットを含み得る。カメラリグのエミッタによって環境へと投影される光パターンは、パターンのそれぞれの点の場所が既知であるかまたは特定されることが可能である構造光パターンに基づき得る。カメラは、観測値を取り込む際に、構造光パターンの個々の点を検知し得る。カメラまたは関連したシステムは、構造化光パターンのそれぞれの個々の点を識別することが可能であり、それぞれの識別された点の場所または関係を、構造化光パターンにおける識別された点の対応する予想される場所または関係に比較し得る。点から点への対応(たとえば、観測された構造化光パターンにおける特定の点の予想される場所と、その特定の点の観測された場所との間の差)を比較することによって、カメラおよびコンピューティングシステムは、より微妙な変動を考慮し得るさらに正確な奥行きマップを生成し得る。システムは、構造化光パターンにおける潜在的なあいまいさ、たとえば、表面のコーナーの近くの光パターンの観測値によって引き起こされるあいまいさを特定することが可能であり得る。点から点への対応から、それぞれのポイントの場所が解明され得るので、コンピューティングシステムは、あいまいさを解決し得る。特定の実施形態では、取り込まれた観測値から、奥行きカメラ(または奥行きカメラに関連付けられているコンピューティングシステム)は、1つまたは複数の奥行きマップを生成し得る。
ステップ213で、カメラリグは、環境におけるカメラリグの姿勢を特定し得る。姿勢は、カメラリグの奥行きカメラによって観測値が取り込まれた時点でのカメラリグの姿勢に対応し得る。特定の実施形態では、ステップ212および213は、それぞれの観測値に関して姿勢が特定されるという点で連続して実行され得る。特定の実施形態では、位置特定システムが、環境におけるカメラリグの複数の姿勢を計算し得る。計算される姿勢の数は、奥行きカメラによって取り込まれた環境の個別の観測値の数に等しいことが可能である。たとえば、奥行きカメラが、ビデオと一致する観測値を取り込むこと(たとえば、1秒あたり24、30、または60個の観測値を取り込むこと)が可能である場合、コンピューティングシステムは、等しい数の姿勢を計算し得る。姿勢は、たとえば、取り込まれた観測データと、カメラキャリブレーションモデルのパラメータとに基づいて環境において奥行きカメラを位置特定することによって、取り込まれた観測値からリアルタイムで特定され得る。たとえば、位置特定システムは、奥行きカメラによって取り込まれた画像から1つまたは複数のSLAM方法を使用して、環境に対する奥行きカメラのおおよその姿勢を生成し得る。そしてその姿勢は、観測値が取り込まれた時点での奥行きカメラの位置に対応し得る。特定の実施形態では、姿勢は、位置特定システムに組み込まれているカメラリグのハードウェアコンポーネントに基づいて特定され得る。ハードウェアコンポーネントは、1つまたは複数の多軸加速度計、多軸ジャイロスコープ(単独で、または多軸加速度計と組み合わせて慣性測定ユニットにして)、超音波動きセンサ、磁力計、光学動きセンサ、任意のその他の適切なハードウェア動きセンサ、またはそれらの任意のコンポーネントなどの動きセンサを含み得る。それぞれの観測値が取り込まれるのと同時に、位置特定システムの1つまたは複数のハードウェアコンポーネントから姿勢が取り出され得る。
ステップ214で、コンピューティングシステムは、環境の複数の推定値を生成し得る。特定の実施形態では、推定値は、それぞれの取り込まれた観測値と、観測値が取り込まれた時点でのカメラリグの対応する姿勢と、カメラキャリブレーションモデルとに基づいて生成され得る。環境の推定値を生成するために、コンピューティングシステムは、取り込まれた観測値および対応する姿勢にアクセスし得る。上述されているように、計算された姿勢の数は、取り込まれた観測値の数と一致し得る。それぞれの姿勢は、時間ごとに奥行きカメラによって取り込まれた観測値に直接関連付けられることが可能であり、それによって姿勢は、観測値が取り込まれた時点での奥行きカメラの姿勢に相当する。ジオメトリ推定システムは、カメラキャリブレーションモデル、取り込まれた観測値、および関連付けられている姿勢にアクセスし得る。ジオメトリ推定システムは、カメラキャリブレーションモデルのパラメータを使用して、奥行きカメラ観測値を解釈し得る。ジオメトリ推定システムは、それぞれの奥行きカメラ観測値に関連付けられている姿勢を使用して、観測値が取り込まれた時点でのカメラの視点を推定、概算、または特定し得る。このことから、ジオメトリ観測システムは、環境の「ビュー」を特定し得る。ジオメトリ観測システムは、観測値のうちの複数(観測値のうちのすべてまで(すべてを含む))に関して、これらのステップを実行し得る。個々に見ると、ビューは、環境の1回限りの推定値として解釈され得る。それらは、環境に関する奥行きマップおよびカラーマップ、ならびに場合によっては個々には環境におけるオブジェクトなどの情報を含み得る。
ステップ215で、コンピューティングシステムが、推定値に基づいて環境モデルを形成し得る。コンピューティングシステムは、推定値どうしを組み合わせて、環境の環境モデルを形成し得る。特定の実施形態では、推定値どうしは、ジオメトリ融合または関連した技術を使用して組み合わされ得る。たとえば、環境の取り込まれた観測値どうしからの奥行き情報が、別々の観測値にわたって統合され得る。融合は、奥行きカメラの環境の環境モデルを生成し得る。環境モデルは、たとえば、観測値が取り込まれた期間にわたる環境の3次元の再構築であり得る。いくつかの実施形態では、処理スピードを改善するために、奥行きカメラ(またはその他の撮像デバイス)が観測値を取り込んでいる間に、環境は、時間の経過に伴って大幅には変化しないと想定され得る。いくつかの実施形態では、コンピューティングシステムは、観測値、姿勢、およびカメラキャリブレーションモデルから直接環境モデルを形成し得るということに留意されたい。
ステップ210~215(およびその他の介在するステップ)は、プロセスの環境再構築部分と呼ばれ得る。ステップ220~224は、この方法のカメラキャリブレーション部分と呼ばれ得る。ステップ210~215では、環境モデルは、取り込まれた観測値に基づいて、必要に応じて作成および/または更新され得る。ステップ220~224では、環境モデルは、カメラモデルキャリブレーションという目的のために正確であると想定されること、およびカメラキャリブレーションモデルのカメラキャリブレーションパラメータが調整されている間に一定に保たれることが可能である。
ステップ220で、コンピューティングシステムは、姿勢および環境モデルに基づいて、予測された観測値を特定し得る。コンピューティングシステムは、複数の姿勢のうちの1つまたは複数の姿勢に関して、環境モデルおよび1つまたは複数の姿勢に基づいて、環境の1つまたは複数の予測された観測値を特定し得る。特定の実施形態では、姿勢情報を使用して、コンピューティングシステムは、環境モデルに取り込まれる際の環境へのビューをシミュレートし得る。環境モデル、カメラキャリブレーションモデル(奥行きカメラまたはエミッタ固有のパラメータ、奥行きカメラまたはエミッタの外部のパラメータ、カメラ/エミッタ変換パラメータなどのパラメータを含む)、および姿勢が与えられると、コンピューティングシステムは、光投影の投影されたエミッタドットが、奥行きカメラによって撮像された際に、どこに現れることになるかを予測し得る。予測された観測値(または単に予測値)を生成するために、コンピューティングシステムは、環境へと投影される構造化光パターンをシミュレートし得る。その光パターンは、カメラリグのエミッタによって放射される同じ構造化光パターンのモデルであり得る。そして予測値は、姿勢によって決定される環境のビューにおいて見える、環境モデルに取り込まれる際の、環境におけるジオメトリによって引き起こされる光パターンの変動に関する情報を含み得る。このプロセスは、姿勢のうちの複数(すべての姿勢まで(すべての姿勢を含む))に関して実行され得る。特定の実施形態では、コンピューティングシステムは、カメラリグの動きを検知したことに応答して、予測された観測値を特定し得る。動きは、動きセンサ(たとえば、上で検知がなされた動きセンサのうちの1つ)によって検知され得る。それゆえに、カメラリグの動きは、このプロセスのカメラモデルキャリブレーション部分を開始するためのトリガーとして使用され得る。動きは、(たとえば、再キャリブレーションがシステム全体のパフォーマンスを改善する可能性が高いかどうかを特定するために)再キャリブレーションが必要とされるかどうかを特定するための関連したプロセスの一部として使用され得る。
ステップ221で、それぞれの姿勢に関して、コンピューティングシステムは、予測された観測値を、予測された観測値を特定するために使用された姿勢に関連付けられている取り込まれた観測値に比較し得る。たとえば、コンピューティングシステムは、それぞれの予測された観測値を、予測された観測値が特定された元である姿勢から取り込まれた観測値に比較し得る。上述されているように、それぞれの姿勢は、奥行きカメラによって取り込まれた環境の観測値に(たとえば、時間ごとに)関連付けられ得る。特定の実施形態では、取り込まれた観測値は、環境へと投影された光パターンの変動を含み得る。予測および取り込まれた観測値は、同じ光パターンに基づいているので、予測および観測値は、それぞれにおいて乱れを構造化光パターンに比較することによって比較され得る。特定の取り込まれた観測値に関して、コンピューティングシステムは、予測された観測値がどれぐらい正確であったかを特定することが可能であり得る。環境モデルは正確であると想定されているので、予測された観測値は、実行され得るカメラリグキャリブレーションの要因をカメラキャリブレーションモデルがどれぐらい正確に考慮しているかの尺度としての役割を果たし得る。
特定の実施形態では、ステップ221で、予測された観測値を取り込まれた観測値に比較しながら、コンピューティングシステムは、ステップ222で、取り込まれた観測値と、関連付けられている予測された観測値との間における変動を比較して、それぞれの姿勢に関連付けられている観測値と予測値との間におけるモデルエラーを計算し得る。特定の実施形態では、予測された観測値および取り込まれた観測値は、構造化光パターンの点に関する場所情報を含み得る。そして、予測された観測値を、取り込まれた観測値に比較することは、それぞれの予測された観測値の場所情報を、それぞれの対応する取り込まれた観測値の場所情報と比較することを含み得る。比較の結果、観測された光投影パターンが、放射された光投影パターンに関連付けられたとすると、コンピューティングシステムは、それぞれの予測値(たとえば、予測されたドットパターン)を、観測された現実に比較し得る。観測値と予測値との間における差どうしを組み合わせて、モデルエラー(たとえば、カメラキャリブレーションモデルによって引き起こされるエラー)を計算することが可能である。直感的には、この段階での環境モデルは、ほぼ正確であると想定されるので、エラーの1つの源は、予測値を生成するために姿勢と共に使用されるカメラキャリブレーションモデルであると想定され得る。特定の実施形態では、エラーのさらなる源は、特定された姿勢そのものであり得る。特定の実施形態では、モーションセンサまたはモーション検知システムを使用して、位置特定システムの精度を改善し得る位置特定システムに関する初期化条件を生成し得る。さらに、モーションセンサの出力を位置特定システムの結果に比較して、たとえば、モーションセンサおよび位置特定システムの位置における相対的な変化を比較することによって、個々の姿勢の精度を特定し得る。特定の実施形態では、それぞれの取り込まれた観測値に関する姿勢が、予測値を生成するために使用されるので、キャリブレーション手順を簡略化するために、姿勢はエラーの源ではないと想定され得る。目標は、モデルエラーを最小化するカメラパラメータ(たとえば、奥行きカメラまたはエミッタ固有のパラメータ、奥行きカメラまたはエミッタの外部のパラメータ、およびカメラ/エミッタ変換パラメータ)を見つけ出すことになる。
ステップ223で、コンピューティングシステムは、カメラキャリブレーションモデルを改訂するためのしきい値をモデルエラーが満たしているかどうかを特定し得る。一般には、カメラキャリブレーションパラメータの新たなセットを計算して適用することの影響を予測することは困難である場合がある。いくつかの状況では、カメラキャリブレーションパラメータの品質を改善するための努力にもかかわらず、カメラキャリブレーション手順に対する修正は、観測値および結果として生じる環境モデルの精度を悪化させる可能性を有し得る。新たなまたは改訂されたカメラキャリブレーションモデルを生成するオペレーションは、かなりの計算リソースを消費し得るので、コンピューティングシステムは、再キャリブレーションから改善が生じることになる可能性が高いかどうかを特定するためにチェックを行い得る。そうするための1つのアプローチは、モデルエラー(または予測された観測値を、取り込まれた観測値に比較した結果を追跡把握するために使用される任意のメトリック)が、行われる変更がそのエラーを低減することになる可能性が高くなるようなものであるかどうかを特定することであり得る。たとえば、モデルエラーが十分に高い場合には、いかなる変更も成功する可能性が高いであろう。はじめからモデルエラーが低かった場合には、カメラキャリブレーションモデルを再計算することは、エラーを大幅に改善しない可能性がある。特定の実施形態では、リソースを節約するために、コンピューティングシステムは、観測値のこのセットに関してカメラキャリブレーションモデルを再計算するのをスキップすることを選び得る。それゆえに、一例では、カメラキャリブレーションモデルを改訂するためのしきい値をモデルエラーが満たしていない場合、プロセスは、カメラキャリブレーションモデルが変更されない状態で、ステップ210へ戻って続くことが可能である。モデルエラーがしきい値を満たしている場合、プロセスはステップ224へ進み得る。特定の実施形態では、しきい値は逆にされ得る。すなわち、しきい値は、カメラキャリブレーションモデルの精度が既に許容可能であるかどうかを特定するためのものであり得る。これは、低いモデルエラーによって表されることが可能であり、しきい値は、カメラキャリブレーションモデルが許容できる程度に正確である場合の境界を定めるモデルエラー上の下限であり得る。カメラキャリブレーションモデルを改訂するかどうかを特定するためのその他の方法が使用され得る。
ステップ224で、コンピューティングシステムは、カメラキャリブレーションモデルを改訂し得る。いくつかの実施形態では、カメラキャリブレーションモデルを改訂することは、既存のモデルを調整することを含み得る。いくつかの実施形態では、改訂プロセスは、新たに収集された情報(たとえば、予測されたおよび取り込まれた観測値ならびにそれらの比較)に基づいて新たなカメラキャリブレーションモデルを生成することを含み得る。特定の実施形態では、カメラキャリブレーションモデルを改訂することは、モデルエラーを(それが計算される場合)、または、1つもしくは複数の予測された観測値と、1つもしくは複数の予測された観測値が特定された元である1つもしくは複数の姿勢に対応する取り込まれた観測値のうちの1つもしくは複数との間における差を最小化するためにキャリブレーションモデルのパラメータのうちの1つまたは複数を修正または置換することを含み得る。
正式には、環境の予測された観測値および取り込まれた観測値からカメラキャリブレーションモデルを生成するために、コンピューティングシステムは、IR画像iにおけるすべての観測されたドットまたは点から点への対応
に関する下記の二乗再投影誤差の合計を最小化し得る:
この場合、
は、(画像として解釈される)観測値iにおけるドットの場所の予測された観測値である:
ここで、この場合、
は、IRカメラフレームiにおける点
をピクセル座標
へ取り入れる関数である。
は、エミッタ逆投影を表す関数であり、エミッタ2Dドットパターン
をエミッタフレームベクトル
へ取り入れる。
は、光線rと平面N=[n,r]との間における交点を算出する関数であり、
この場合、
は、環境における表面および基準のエミッタフレーム(それぞれwおよびe)の線形化に対応する平面である。
Twr,Tri∈SE(3)は、それぞれ、リグから世界への、および奥行きカメラからリグへの変換である。
αおよびβは、フレームの姿勢およびカメラの外部に対する未知の更新である。
xiおよびxeは、それぞれ奥行きカメラのパラメータおよびエミッタプロジェクタパラメータである。
に関する下記の二乗再投影誤差の合計を最小化し得る:
この場合、
は、(画像として解釈される)観測値iにおけるドットの場所の予測された観測値である:
ここで、この場合、
は、IRカメラフレームiにおける点
をピクセル座標
へ取り入れる関数である。
は、エミッタ逆投影を表す関数であり、エミッタ2Dドットパターン
をエミッタフレームベクトル
へ取り入れる。
は、光線rと平面N=[n,r]との間における交点を算出する関数であり、
この場合、
は、環境における表面および基準のエミッタフレーム(それぞれwおよびe)の線形化に対応する平面である。
Twr,Tri∈SE(3)は、それぞれ、リグから世界への、および奥行きカメラからリグへの変換である。
αおよびβは、フレームの姿勢およびカメラの外部に対する未知の更新である。
xiおよびxeは、それぞれ奥行きカメラのパラメータおよびエミッタプロジェクタパラメータである。
特定の実施形態では、カメラキャリブレーションモデルを改訂することは、たとえば、本明細書に記述されている方法を使用して、提案された改訂済みのキャリブレーションモデルを計算することを含み得る。コンピューティングシステムは、提案された改訂済みのキャリブレーションモデル、環境における1つまたは複数の姿勢からカメラリグによって取り込まれた環境の1つまたは複数の観測値に基づいて環境のジオメトリの予測値を生成し得る。たとえば、コンピューティングシステムは、新たなカメラキャリブレーションモデルを使用して、予測された観測値を特定するために、1つまたは取り込まれた観測値に関連付けられている1つまたは複数の姿勢を使用し得る。予測された観測値を特定するためのプロセスは、本明細書に記述されているプロセスと同様であり得る。コンピューティングシステムは、1つまたは複数の予測された観測値どうしの上述の比較を、取り込まれた観測値のうちの1つまたは複数およびジオメトリの予測値に比較し得る。特定の実施形態では、コンピューティングシステムは、この比較に基づいて改訂効果を計算し得る。コンピューティングシステムは次いで、改訂効果を改訂しきい値に比較し得る。改訂しきい値が満たされているということを特定すると、改訂されたカメラキャリブレーションモデルが受け入れられて、最初のカメラキャリブレーションモデルの代わりに用いられ得る。
方法200に示されているように、カメラキャリブレーションモデルを改訂した後に、または任意選択で、モデルエラーがしきい値エラーを満たしていないということを特定した後に、この方法は、ステップ210へ再び進み得る。特定の実施形態では、コンピューティングシステムは、改訂されたカメラキャリブレーションモデルに基づいて環境モデルを再び改訂し得る。たとえば、コンピューティングシステムは、同じ取り込まれた観測値を使用して、再び方法200のオペレーションを実行し得る。キャリブレーション手順は、観測値の取り込みに必ずしも影響を与えるとは限らないので、所望のレベルのキャリブレーション精度が達成されるまで、同じ観測値が繰り返し使用され得る。別の例として、コンピューティングシステムは、環境の観測値の第2のセットを取り込み得る。ステップ210~215に続いて、コンピューティングシステムは次いで、ステップ210~215までを含む、方法200の環境再構築部分のステップを実行し得る。これは、ステップ212で観測値の第2のセットを取り込むことと、ステップ213で姿勢の第2のセットを特定することとを含み得る。コンピューティングシステムは、少なくとも、環境の観測値の第2のセットおよび改訂されたカメラキャリブレーションモデルに基づいて、環境モデルを改訂し得る。
特定の実施形態では、環境モデルを改訂する前に、コンピューティングシステムは、カメラリグの動きを検知し得る。たとえば、コンピューティングシステムは、カメラリグの動きセンサからカメラリグの動きを受信し得る。環境モデルは、その動きに応じて特定され得る。特定の実施形態では、コンピューティングシステムは、環境モデルを改訂する前に、カメラリグの受信された動きを、少なくとも改訂されたカメラキャリブレーションモデルおよび環境の第2の複数の観測値に基づいて特定されたカメラリグの動きに比較し得る。その比較に基づいて、コンピューティングシステムは、その動きが本物の動きであったかどうか、またはその動きが誤って検知されたのかどうかを特定し得る。その動きがエラーであったと特定された場合、コンピューティングシステムは、リソースを節約するために、環境モデルを改訂するためのプロセスを開始しないことが可能である。
特定の実施形態では、コンピューティングシステムは、本明細書に記述されているのと同じ手順を使用して、観測値の第2のセット、観測値が収集された元である第2の複数の姿勢、および改訂されたキャリブレーションモデルから、提案された改訂済みの環境モデルを生成することによって、少なくとも環境の観測値の第2のセットおよび改訂されたキャリブレーションモデルに基づいて環境モデルを改訂し得る。コンピューティングシステムは、環境モデルと、提案された改訂済みの環境モデルとを比較し得る。コンピューティングシステムは、現在の環境モデルの代わりに、提案された改訂済みの環境モデルを用いることの効果を特定して、環境モデルを改訂することが、カメラリグおよびシステムのオペレーションに利益をもたらすことになるかどうかを特定し得る。提案された改訂済みの環境モデルが改善にならないと特定された(たとえば、計算されたエラーがしきい値を超えた)場合、提案された改訂済みの環境モデルは、使用されなくてよい。
本明細書に記述されている手順は、奥行きカメラの環境に関する正確な環境モデルを再構築するための現在の手順に複数の重要な利点を提供し得る。本明細書に記述されている手順は、より少ない限られたリソースを使用して、より計算効率が高くなることが可能である。これは、次いで、これらの技術を具体化するコンピューティングデバイスが、さらなるタスクのために使用されること、またはエネルギー効率を高められることを可能にし得る。それらの手順は、2つの近似モデル(たとえば、カメラキャリブレーションモデルおよび環境モデル)において、より迅速に収束し得る。なぜなら、両方がほぼ同時の様式で変動することを許可されているからである。これは、それら2つが必要に応じて互いに合わせて、ならびに環境に関する新たな情報に合わせて調整を行うことを可能にする。このプロセスは、奥行きカメラからの奥行きマップおよび画像を使用するので、手順は、システムによって使用されているアプリケーションが何であれ、それらと連携して使用され得る。それゆえに、システムは、通常のオペレーション中にカメラキャリブレーションモデルおよび環境モデルの両方の改良をサポートして、システムに対するユーザの関与と使用との間における遅延を低減し得る。たとえば、システムは、ユーザがシステムにその他の形で関与している間に、記述されている共同キャリブレーションおよび再構築手順を実行し得る。ユーザは、キャリブレーションを促進することに特に関連している行動を取っている(たとえば、正確なキャリブレーションを促進するためのシステムのプロンプトに従っている)必要はない。ユーザは、キャリブレーションが生じているということを知らされないことさえ可能である。カメラリグおよびコンピューティングシステムは、通常の使用中にユーザの動きを検知し、その動きをトリガーとして使用して、さらなるカメラリグキャリブレーションまたは環境再構築が実行されるべきであるか否かを特定し得る。これら、および多くのその他の利点は、当業者にとって明らかであろう。
特定の実施形態は、適切な場合には、図2の方法の1つまたは複数のステップを繰り返すことが可能である。本開示は、図2の方法の特定のステップを、特定の順序で生じるものとして記述および例示しているが、本開示は、図2の方法の任意の適切なステップが任意の適切な順序で生じることを想定している。その上、本開示は、図2の方法の特定のステップを含む、奥行きカメラのキャリブレーションおよび環境の再構築のための例示的な方法を記述および例示しているが、本開示は、適切な場合には、図2の方法のステップのうちのすべてを含むこと、いくつかを含むこと、またはいずれも含まないことが可能である任意の適切なステップを含む、奥行きカメラのキャリブレーションおよび環境の再構築のための任意の適切な方法を想定している。さらに、本開示は、図2の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを記述および例示しているが、本開示は、図2の方法の任意の適切なステップを実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組合せを想定している。
図3は、キャリブレーションおよび再構築のための交互の反復プロセスを概略的な様式で示している。図3のうちで真ん中の分割線より左の側は、「再構築」段階を表すことが可能であり、その一方で、図3のうちで真ん中の線より右の側は、「キャリブレーション」段階を表し得る。再構築段階中に、カメラリグ(たとえば、カメラリグ100)のコンピューティングシステムが、カメラリグに関するキャリブレーションモデルの1つまたは複数のパラメータを提供され得る(たとえば、方法200のステップ210に続いて)。たとえば、カメラリグに関するキャリブレーションモデルのパラメータは、カメラ固有のパラメータ(KC)301a、エミッタ固有のパラメータ(KE)302a、およびカメラからエミッタへの変換パラメータ(TEC)303aを含み得る。
カメラリグに関連付けられているコンピューティングシステムが、環境モデルを生成し得る。方法200のステップ211におけるように、エミッタ(たとえば、エミッタ120)が、構造化光パターン305を環境へと放射し得る。パターン305は、光パターンの全体的な構造に関する情報を含むことが可能であり、および/または光パターンのそれぞれのドットの予想される関係もしくは予想される場所に関する情報を含み得る。方法200のステップ212におけるように、カメラ(たとえば、奥行きカメラ110)が、一連の取り込まれた観測値310a、310b、および310cなどにおいて構造化光パターンを検知し得る。これらの観測値は、構造化光パターン305の変動を含み得る。それぞれの観測値310a、310b、および310cは、特定の時点で取り込まれることが可能であり、それぞれの観測値310a、310b、および310cは、その観測値が取り込まれた時点でのカメラの姿勢315a、315b、および315cそれぞれに関連付けられ得る。特定の実施形態では、姿勢は、それぞれの観測値を取り込むための部分プロセスとして取り込まれ得る(たとえば、方法200のステップ212および213が、矢継ぎ早に実行され得る。特定の実施形態では、観測値310a、310b、および310cから、カメラ(または関連付けられているコンピューティングシステム)は、複数の奥行きマップ320a、320b、および320cをそれぞれ生成し得る。ステップ214におけるように、コンピューティングシステムが、環境の一連の推定値325a、325b、および325cを特定し得る。特定の実施形態では、コンピューティングシステムが、カメラキャリブレーションパラメータ301a、302a、および302aに加えて、構造化光観測値310a、310b、および310c、奥行きマップ320a、および320b、および320c、ならびに対応する姿勢315a、315b、および315cを使用して、推定値を特定し得る。それぞれの推定値は、環境の単一のビューを提供し得る。ステップ215におけるように、多くの推定値、たとえば、推定値325a、325b、および325cが、1つまたは複数の適切な融合技術を通じて組み合わされて、環境モデル330を生成し得る。
環境モデル330の生成後に、プロセスは、図3のうちで真ん中の分割線より右の側に示されているように、プロセスのカメラモデルキャリブレーション段階へ移行し得る。この段階では、環境モデル330は、ほぼ正確であるとみなされ、カメラキャリブレーションモデル(たとえば、パラメータ301a、302a、および302c)は、潜在的に変動する。ステップ220におけるように、コンピューティングシステムが、環境モデル330、構造化光パターン305、ならびに姿勢315a、315b、および315cを使用して、環境モデル330に基づいて環境の予測された観測値340a、340b、および340cを生成し得る。予測された観測値340a、340b、および340cは、特定された環境モデル330に基づく物理的な環境の予測値であり得る。
ステップ221におけるように、コンピューティングシステムは、予測された観測値340a、340b、および340cを、予測値を生成するために使用された同じ姿勢315a、315b、および315cから取り込まれた観測値320a、320b、および320cに比較し得る。たとえば、予測された観測値340aは、姿勢315aおよび環境モデル330を使用して生成されたので、それは、取り込まれた観測値320aに比較される。同様に、予測された観測値340bは、姿勢315bおよび環境モデル330を使用して生成されたので、それは、取り込まれた観測値320bに比較される。取り込まれた観測値および予測された観測値は、同様の形式で表され得る。たとえば、取り込まれた観測値および予測された観測値は、奥行きマップによって、テンプレート構造化光パターンに対する構造化光パターンの逸脱として、構造化光パターンの点と点の間の逸脱として、または任意のその他の適切な形式で表され得る。環境モデル300は、このステップに関してほぼ正確であると想定されるので、予測された観測値と取り込まれた観測値との間におけるいかなる差も、カメラキャリブレーションモデルから派生すると想定され得る。特定の実施形態では、エラーのその他の源が想定され考慮され得る。たとえば、エラーの1つのさらなる源は、検知された姿勢そのものであり得る。特定の実施形態では、本明細書に記述されているように、モーション検知システムは、検知された姿勢の精度をチェックするための方法として使用され得る。
予測された観測値340a、340b、および340cの、取り込まれた観測値320a、320b、および320cに対する比較が、一連のモデルエラー345a、345b、および345cとして図3に示されている。この比較は、複数の実施形態において任意の適切な形式で具体化され得る。モデルエラーは、予測された観測値と、予測された観測値が生成された元である姿勢において取り込まれた、取り込まれた観測値との差を取り込み得る。モデルエラーは、取り込まれた観測値と、予測された観測値との構造化光パターン(または奥行きマップ)の間における複数の点と点の間の差を含み得る。取り込まれた観測値と、予測された観測値との間における変動は、環境モデルを生成するための融合プロセスから自然に生じる場合があり、これは、複数の観測値に基づく環境モデルの「平均」を提供する。たとえば、モデルエラー345aは、予測された観測値340aと、取り込まれた観測値320a(予測された観測値340aが取り込まれた元である姿勢315aにおいて取り込まれたもの)との間における逸脱を具体化する。同様に、モデルエラー345bは、予測された観測値340bと、取り込まれた観測値320bとの間における逸脱を具体化する。モデルエラー345cは、予測された観測値340cと、取り込まれた観測値320cとの間における逸脱を具体化する。
方法200のステップ224におけるように、カメラキャリブレーションモデルは、改訂され得る。特定の実施形態では、カメラキャリブレーションモデルに含まれるパラメータのうちの1つまたは複数(たとえば、301a、302a、および303a)は、収集されたモデルエラーを最小化するように改訂され得る。改訂されたカメラキャリブレーションモデルパラメータ(たとえば、301b、302b、および302c)は、プロセスがプロセスの再構築段階へ再び返る際に使用されることが可能であり、この段階では、環境モデルは、環境の新たに取り込まれた観測値を使用して再び再構築され得る。プロセスは、この様式で反復的に交互に生じ得る。プロセスは、複数の停止条件のうちの1つまたは複数が到達されるまで継続し得る。たとえば、1つの停止条件は、いずれの提案された改訂も特定のしきい値を下回っていると(たとえば、本明細書に記述されている方法を使用して)特定されることであり得、これはモデルの一方または両方がほぼ正確であることを示す。
図4は、例示的なコンピュータシステム400を示している。特定の実施形態では、1つまたは複数のコンピュータシステム400が、本明細書に記述または例示されている1つまたは複数の方法の1つまたは複数のステップを実行する。特定の実施形態では、1つまたは複数のコンピュータシステム400が、本明細書に記述または例示されている機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム400上で稼働するソフトウェアが、本明細書に記述もしくは例示されている1つもしくは複数の方法の1つもしくは複数のステップを実行し、または本明細書に記述もしくは例示されている機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム400の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合には、コンピューティングデバイスを包含することが可能であり、その逆もまた同様である。その上、コンピュータシステムへの言及は、適切な場合には、1つまたは複数のコンピュータシステムを包含し得る。
本開示は、任意の適切な数のコンピュータシステム400を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータシステム400を想定している。限定ではなく、例として、コンピュータシステム400は、組み込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(たとえば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、モバイル電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、またはこれらのうちの2つ以上の組合せであり得る。適切な場合には、コンピュータシステム400は、1つもしくは複数のコンピュータシステム400を含むこと、単一型もしくは分散型であること、複数の場所にわたること、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド(1つもしくは複数のネットワークにおける1つもしくは複数のクラウドコンポーネントを含み得る)に存在することが可能である。適切な場合には、1つまたは複数のコンピュータシステム400は、本明細書に記述または例示されている1つまたは複数の方法の1つまたは複数のステップを、実質的な空間上のまたは時間上の制限を伴わずに実行し得る。限定ではなく、例として、1つまたは複数のコンピュータシステム400は、本明細書に記述または例示されている1つまたは複数の方法の1つまたは複数のステップをリアルタイムで、またはバッチモードで実行し得る。1つまたは複数のコンピュータシステム400は、適切な場合には、本明細書に記述または例示されている1つまたは複数の方法の1つまたは複数のステップを別々の時点で、または別々の場所で実行し得る。
特定の実施形態では、コンピュータシステム400は、プロセッサ402、メモリ404、ストレージ406、入力/出力(I/O)インターフェース408、通信インターフェース410、およびバス412を含む。本開示は、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータシステムを記述および例示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータシステムを想定している。
特定の実施形態では、プロセッサ402は、コンピュータプログラムを構成している命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ402は、内部レジスタ、内部キャッシュ、メモリ404、またはストレージ406から命令を取り出し(またはフェッチし)、それらの命令をデコードして実行し、次いで1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ404、またはストレージ406に書き込むことが可能である。特定の実施形態では、プロセッサ402は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ402を想定している。限定ではなく、例として、プロセッサ402は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数の変換ルックアサイドバッファ(TLB)を含み得る。命令キャッシュにおける命令は、メモリ404またはストレージ406における命令のコピーであり得、命令キャッシュは、プロセッサ402によるそれらの命令の取り出しをスピードアップし得る。データキャッシュにおけるデータは、プロセッサ402において実行する命令が動作する際に基づくメモリ404もしくはストレージ406におけるデータのコピー、プロセッサ402において実行する後続の命令によるアクセスのための、またはメモリ404もしくはストレージ406への書き込みのためのプロセッサ402において実行された以前の命令の結果、あるいはその他の適切なデータであり得る。データキャッシュは、プロセッサ402による読み取りまたは書き込みオペレーションをスピードアップし得る。TLBは、プロセッサ402のための仮想アドレス変換をスピードアップし得る。特定の実施形態では、プロセッサ402は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ402を想定している。適切な場合には、プロセッサ402は、1つもしくは複数の演算ロジックユニット(ALU)を含むこと、マルチコアプロセッサであること、または1つもしくは複数のプロセッサ402を含むことが可能である。本開示は、特定のプロセッサを記述および例示しているが、本開示は、任意の適切なプロセッサを想定している。
特定の実施形態では、メモリ404は、プロセッサ402が実行するための命令、またはプロセッサ402が動作する際に基づくデータを格納するためのメインメモリを含む。限定ではなく、例として、コンピュータシステム400は、命令をストレージ406または別のソース(たとえば、別のコンピュータシステム400など)からメモリ404へロードし得る。プロセッサ402は次いで、命令をメモリ404から内部レジスタまたは内部キャッシュへロードし得る。命令を実行するために、プロセッサ402は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードし得る。命令の実行中または実行後に、プロセッサ402は、1つまたは複数の結果(それらは、中間のまたは最終的な結果であり得る)を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ402は次いで、それらの結果のうちの1つまたは複数をメモリ404に書き込み得る。特定の実施形態では、プロセッサ402は、(ストレージ406またはその他の場所ではなく)1つもしくは複数の内部レジスタもしくは内部キャッシュにおける、またはメモリ404における命令のみを実行し、(ストレージ406またはその他の場所ではなく)1つもしくは複数の内部レジスタもしくは内部キャッシュにおける、またはメモリ404におけるデータ上でのみ動作する。1つまたは複数のメモリバス(それらはそれぞれ、アドレスバスおよびデータバスを含み得る)は、プロセッサ402をメモリ404に結合し得る。バス412は、以降で記述されているような1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ402とメモリ404との間に存在し、プロセッサ402によって要求されるメモリ404へのアクセスを容易にする。特定の実施形態では、メモリ404は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合には、揮発性メモリであり得る。適切な場合には、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合には、このRAMは、シングルポートRAMまたはマルチポートRAMであり得る。本開示は、任意の適切なRAMを想定している。メモリ404は、適切な場合には、1つまたは複数のメモリ404を含み得る。本開示は、特定のメモリを記述および例示しているが、本開示は、任意の適切なメモリを想定している。
特定の実施形態では、ストレージ406は、データまたは命令のためのマスストレージを含む。限定ではなく、例として、ストレージ406は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組合せを含み得る。ストレージ406は、適切な場合には、取り外し可能なまたは取り外し不能な(すなわち固定された)メディアを含み得る。ストレージ406は、適切な場合には、コンピュータシステム400の内部または外部にあり得る。特定の実施形態では、ストレージ406は、不揮発性のソリッドステートメモリである。特定の実施形態では、ストレージ406は、読み取り専用メモリ(ROM)を含む。適切な場合には、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書替え可能ROM(EAROM)、またはフラッシュメモリ、またはこれらのうちの2つ以上の組合せであり得る。本開示は、任意の適切な物理的な形態を取るマスストレージ406を想定している。ストレージ406は、適切な場合には、プロセッサ402とストレージ406との間における通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合には、ストレージ406は、1つまたは複数のストレージ406を含み得る。本開示は、特定のストレージを記述および例示しているが、本開示は、任意の適切なストレージを想定している。
特定の実施形態では、I/Oインターフェース408は、コンピュータシステム400と1つまたは複数のI/Oデバイスとの間における通信のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。コンピュータシステム400は、適切な場合には、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム400との間における通信を可能にし得る。限定ではなく、例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイス、またはこれらのうちの2つ以上の組合せを含み得る。I/Oデバイスは、1つまたは複数のセンサを含み得る。本開示は、任意の適切なI/Oデバイスと、それらのための任意の適切なI/Oインターフェース408とを想定している。適切な場合には、I/Oインターフェース408は、これらのI/Oデバイスのうちの1つまたは複数をプロセッサ402が駆動することを可能にする1つまたは複数のデバイスドライバまたはソフトウェアドライバを含み得る。I/Oインターフェース408は、適切な場合には、1つまたは複数のI/Oインターフェース408を含み得る。本開示は、特定のI/Oインターフェースを記述および例示しているが、本開示は、任意の適切なI/Oインターフェースを想定している。
特定の実施形態では、通信インターフェース410は、コンピュータシステム400と、1つもしくは複数のその他のコンピュータシステム400または1つもしくは複数のネットワークとの間における通信(たとえば、パケットベースの通信など)のための1つまたは複数のインターフェースを提供するハードウェア、ソフトウェア、または両方を含む。限定ではなく、例として、通信インターフェース410は、イーサネットもしくはその他の有線ベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)もしくはネットワークアダプタ、またはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)もしくはワイヤレスアダプタを含み得る。本開示は、任意の適切なネットワークと、そのネットワークのための任意の適切な通信インターフェース410とを想定している。限定ではなく、例として、コンピュータシステム400は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、または、インターネットの1つもしくは複数の部分、またはこれらのうちの2つ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線またはワイヤレスであり得る。例として、コンピュータシステム400は、ワイヤレスPAN(WPAN)(たとえば、BLUETOOTH WPANなど)、WI-FIネットワーク、WI-MAXネットワーク、セルラー電話ネットワーク(たとえば、グローバルシステムフォーモバイルコミュニケーションズ(GSM)ネットワークなど)、またはその他の適切なワイヤレスネットワーク、またはこれらのうちの2つ以上の組合せと通信し得る。コンピュータシステム400は、適切な場合には、これらのネットワークのうちのいずれかのための任意の適切な通信インターフェース410を含み得る。通信インターフェース410は、適切な場合には、1つまたは複数の通信インターフェース410を含み得る。本開示は、特定の通信インターフェースを記述および例示しているが、本開示は、任意の適切な通信インターフェースを想定している。
特定の実施形態では、バス412は、コンピュータシステム400のコンポーネントどうしを互いに結合するハードウェア、ソフトウェア、または両方を含む。限定ではなく、例として、バス412は、アクセラレイティッドグラフィックスポート(AGP)もしくはその他のグラフィックスバス、エンハンストインダストリースタンダードアーキテクチャー(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)インターコネクト、インダストリースタンダードアーキテクチャー(ISA)バス、インフィニバンドインターコネクト、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャー(MCA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCIエクスプレス(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクススタンダーズアソシエーションローカル(VLB)バス、または別の適切なバス、またはこれらのうちの2つ以上の組合せを含み得る。バス412は、適切な場合には、1つまたは複数のバス412を含み得る。本開示は、特定のバスを記述および例示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
本明細書では、1つまたは複数のコンピュータ可読非一時的ストレージメディアは、適切な場合には、1つもしくは複数の半導体ベースのもしくはその他の集積回路(IC)(たとえば、フィールドプログラマブルゲートアレイ(FPGA)もしくは特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードもしくはドライブ、任意のその他の適切なコンピュータ可読非一時的ストレージメディア、またはこれらのうちの2つ以上の任意の適切な組合せを含み得る。コンピュータ可読非一時的ストレージメディアは、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
本明細書では、「または(もしくは)」は、包含的であり、排他的ではない(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。そのため、本明細書では、「AまたはB」は、「A、B、または両方」を意味する(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。その上、「および(ならびに)」は、包括的および個別的の両方である(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。そのため、本明細書では、「AおよびB」は、「まとめて、または個別に、AおよびB」を意味する(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書に記述または例示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書に記述または例示されている例示的な実施形態に限定されない。その上、本開示は、本明細書におけるそれぞれの実施形態を、特定のコンポーネント、要素、特徴、機能、オペレーション、またはステップを含むものとして記述および例示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所に記述または例示されているコンポーネント、要素、特徴、機能、オペレーション、またはステップのうちのいずれかの任意の組合せまたは順列を含み得る。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することが可能である、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムのコンポーネントへの添付の特許請求の範囲における言及は、その装置、システム、コンポーネント、またはその特定の機能が、アクティブ化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、またはコンポーネントが、そうするように適合されている、そうするようにアレンジされている、そうすることが可能である、そうするように構成されている、そうすることを可能にされている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、コンポーネントを包含する。加えて、本開示は、特定の実施形態を、特定の利点を提供するものとして記述または例示しているが、特定の実施形態は、これらの利点のうちのいずれも提供しないこと、いくつかを提供すること、またはすべてを提供することが可能である。
Claims (15)
- コンピューティングデバイスによって、
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢から前記カメラリグによって取り込まれた前記環境の第1の複数の観測値にアクセスすることと、
少なくとも前記第1の複数の観測値、前記複数の姿勢、および前記キャリブレーションモデルに基づいて、前記環境のジオメトリを含む環境モデルを生成することと、
前記複数の姿勢のうちの1つまたは複数の姿勢に関して、前記環境モデルおよび前記1つまたは複数の姿勢に基づいて、前記環境の1つまたは複数の予測された観測値を特定することと、
前記1つまたは複数の予測された観測値を、前記1つまたは複数の予測された観測値が特定された元である前記1つまたは複数の姿勢に対応する第1の前記観測値のうちの1つまたは複数に比較することと、
前記比較に基づいて前記キャリブレーションモデルを改訂することと、
少なくとも前記環境の第2の複数の観測値および改訂された前記キャリブレーションモデルに基づいて前記環境モデルを改訂することとを含む、方法。 - 前記カメラリグによって、構造化光パターンを前記環境へと投影することと、
前記カメラリグのカメラによって、前記環境における投影された前記構造化光パターンを検知することと、
検知された前記構造化光パターンをテンプレート構造化光パターンに比較することと
によって前記環境の前記第1の複数の観測値を取り込むことをさらに含む、請求項1に記載の方法。 - 前記カメラリグによって、複数の点を含む構造化光パターンを前記環境へと投影することと、
前記カメラリグのカメラによって、前記環境における前記構造化光パターンの1つまたは複数の点を検知することと、
検知された前記点のそれぞれを識別することと、
それぞれの識別された点に関して、前記識別された点の場所を、前記構造化光パターンにおける前記識別された点の対応する予想された関係に比較することと
によって前記環境の前記第1の複数の観測値を取り込むことをさらに含む、請求項1または2に記載の方法。 - 前記カメラリグの位置特定システムから前記カメラリグの姿勢を受信することによって、それぞれの第1の観測値が取り込まれた元である前記カメラリグの前記姿勢を取り込むこと
をさらに含み、好ましくは、
前記カメラリグのモーションセンサからの出力に基づいて前記カメラリグの前記位置特定システムを初期化することをさらに含む、請求項1から3のいずれか一項に記載の方法。 - 少なくとも前記観測値および前記キャリブレーションモデルに基づいて前記カメラリグを位置特定することによって、それぞれの観測値が取り込まれた元である前記カメラリグの前記姿勢を取り込むこと
をさらに含む、請求項1から4のいずれか一項に記載の方法。 - 少なくとも前記第1の複数の観測値、前記複数の姿勢、および前記キャリブレーションモデルに基づいて、前記環境のジオメトリを含む前記環境モデルを生成することが、
それぞれの観測値と、前記観測値が取り込まれた元である前記カメラリグの前記姿勢とから前記環境の前記ジオメトリの推定値を生成することと、
それぞれの観測値から生成された前記推定値どうしを組み合わせて前記環境モデルを形成することとを含む、請求項1から5のいずれか一項に記載の方法。 - 前記1つまたは複数の予測された観測値および前記第1の複数の観測値が、構造化光パターンの点に関する場所情報を含み、
前記1つまたは複数の予測された観測値を、前記1つまたは複数の予測された観測値が特定された元である前記1つまたは複数の姿勢に対応する前記第1の観測値のうちの1つまたは複数に比較することが、それぞれの予測された観測値の前記場所情報をそれぞれの対応する前記第1の観測値の前記場所情報と比較することを含む、請求項1から6のいずれか一項に記載の方法。 - 前記カメラリグに関する前記キャリブレーションモデルが、
前記カメラリグのカメラに関する固有のパラメータ、
前記カメラリグのエミッタに関する固有のパラメータ、
環境における前記カメラリグの位置特定を実行するためのパラメータ、または
前記カメラリグの前記カメラとエミッタとの間における関係に関連付けられているパラメータを含む、請求項1から7のいずれか一項に記載の方法。 - 前記比較に基づいて前記キャリブレーションモデルを改訂することが、
1つまたは複数の予測された観測値と、前記1つまたは複数の予測された観測値が特定された元である前記1つまたは複数の姿勢に対応する前記第1の観測値のうちの1つまたは複数との間における差を最小化するように、前記キャリブレーションモデルの前記パラメータのうちの1つまたは複数を修正することを含む、請求項1から8のいずれか一項に記載の方法。 - 前記比較に基づいて前記キャリブレーションモデルを改訂することが、
提案された改訂済みのキャリブレーションモデルを計算することと、
前記提案された改訂済みのキャリブレーションモデル、前記環境における1つまたは複数の姿勢から前記カメラリグによって取り込まれた前記環境の1つまたは複数の観測値に基づいて前記環境の前記ジオメトリの予測値を生成することと、
前記1つまたは複数の予測された観測値の前記比較を、前記第1の観測値のうちの1つまたは複数および前記ジオメトリの前記予測値に比較することと、
前記比較が改訂しきい値を満たしているということを特定することとを含む、請求項1から9のいずれか一項に記載の方法。 - 少なくとも前記環境の前記第2の複数の観測値および前記改訂されたキャリブレーションモデルに基づいて前記環境モデルを改訂することが、
前記第2の複数の観測値、前記観測値が収集された元である第2の複数の姿勢、および前記改訂されたキャリブレーションモデルから、提案された改訂済みの環境モデルを生成することと、
前記環境モデルと、前記提案された改訂済みの環境モデルとを比較することとを含む、請求項1から10のいずれか一項に記載の方法。 - 前記カメラリグの動きセンサから前記カメラリグの動きを受信したことに応答して、前記環境の前記1つまたは複数の予測された観測値が特定されるか、または
前記カメラリグの前記動きセンサから前記カメラリグの動きを受信したことに応答して、前記環境モデルが改訂され、好ましくは前記方法がさらに、
前記環境モデルを改訂する前に、前記カメラリグの受信された前記動きを、少なくとも改訂されたカメラキャリブレーションモデルおよび前記環境の前記第2の複数の観測値に基づいて特定された前記カメラリグの動きに比較することを含み、ならびに/または、好ましくは前記カメラリグの前記動きセンサが、
加速度計、
ジャイロスコープ、
超音波動きセンサ、
磁力計、もしくは
光学動きセンサを含む、
請求項1から11のいずれか一項に記載の方法。 - 前記カメラリグのカメラが、赤外線もしくは紫外線を検知するように構成されており、および/または好ましくは、前記カメラリグがヘッドマウントデバイスに組み込まれており、および/または好ましくは、前記カメラリグがハンドヘルドコンピューティングデバイスに組み込まれている、請求項1から12のいずれか一項に記載の方法。
- ソフトウェアを具体化している1つまたは複数のコンピュータ可読非一時的ストレージメディアであって、前記ソフトウェアが、実行されたときに、
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢から前記カメラリグによって取り込まれた前記環境の第1の複数の観測値にアクセスすることと、
少なくとも前記第1の複数の観測値、前記複数の姿勢、および前記キャリブレーションモデルに基づいて、前記環境のジオメトリを含む環境モデルを生成することと、
前記複数の姿勢のうちの1つまたは複数の姿勢に関して、前記環境モデルおよび前記1つまたは複数の姿勢に基づいて、前記環境の1つまたは複数の予測された観測値を特定することと、
前記1つまたは複数の予測された観測値を、前記1つまたは複数の予測された観測値が特定された元である前記1つまたは複数の姿勢に対応する第1の前記観測値のうちの1つまたは複数に比較することと、
前記比較に基づいて前記キャリブレーションモデルを改訂することと、
少なくとも前記環境の第2の複数の観測値および改訂された前記キャリブレーションモデルに基づいて前記環境モデルを改訂することとを行うように動作可能である、1つまたは複数のコンピュータ可読非一時的ストレージメディア。 - 1つまたは複数のプロセッサと、
前記プロセッサのうちの1つまたは複数に結合されていて、命令を含む1つまたは複数のコンピュータ可読非一時的ストレージメディアと
を備えたシステムであって、前記命令が、前記プロセッサのうちの1つまたは複数によって実行されたときに、
カメラリグに関するキャリブレーションモデルにアクセスすることと、
環境における複数の姿勢から前記カメラリグによって取り込まれた前記環境の第1の複数の観測値にアクセスすることと、
少なくとも前記第1の複数の観測値、前記複数の姿勢、および前記キャリブレーションモデルに基づいて、前記環境のジオメトリを含む環境モデルを生成することと、
前記複数の姿勢のうちの1つまたは複数の姿勢に関して、前記環境モデルおよび前記1つまたは複数の姿勢に基づいて、前記環境の1つまたは複数の予測された観測値を特定することと、
前記1つまたは複数の予測された観測値を、前記1つまたは複数の予測された観測値が特定された元である前記1つまたは複数の姿勢に対応する第1の前記観測値のうちの1つまたは複数に比較することと、
前記比較に基づいて前記キャリブレーションモデルを改訂することと、
少なくとも前記環境の第2の複数の観測値および改訂された前記キャリブレーションモデルに基づいて前記環境モデルを改訂することとを前記システムに行わせるように動作可能である、システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/518,862 US11488324B2 (en) | 2019-07-22 | 2019-07-22 | Joint environmental reconstruction and camera calibration |
US16/518,862 | 2019-07-22 | ||
PCT/US2020/042426 WO2021016051A1 (en) | 2019-07-22 | 2020-07-16 | Joint environmental reconstruction and camera calibration |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022541100A true JP2022541100A (ja) | 2022-09-22 |
Family
ID=71995110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021571007A Pending JP2022541100A (ja) | 2019-07-22 | 2020-07-16 | 共同環境再構築およびカメラキャリブレーション |
Country Status (6)
Country | Link |
---|---|
US (2) | US11488324B2 (ja) |
EP (1) | EP4004874A1 (ja) |
JP (1) | JP2022541100A (ja) |
KR (1) | KR20220035250A (ja) |
CN (1) | CN114051626A (ja) |
WO (1) | WO2021016051A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11727597B2 (en) * | 2018-12-21 | 2023-08-15 | Sony Group Corporation | Calibrating volumetric rig with structured light |
CN113242421A (zh) * | 2021-04-02 | 2021-08-10 | 青岛小鸟看看科技有限公司 | 相机校准方法、装置及虚拟现实设备 |
US11909950B1 (en) * | 2021-09-21 | 2024-02-20 | Amazon Technologies, Inc. | Three-dimensional (3D) sensor performance evaluation |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734419B1 (en) * | 2008-12-30 | 2017-08-15 | Cognex Corporation | System and method for validating camera calibration in a vision system |
CN110120072B (zh) * | 2013-12-19 | 2023-05-09 | 苹果公司 | 用于跟踪移动设备的方法和系统 |
US10187629B2 (en) * | 2016-04-06 | 2019-01-22 | Facebook, Inc. | Camera calibration system |
WO2018134686A2 (en) | 2017-01-19 | 2018-07-26 | Mindmaze Holding Sa | Systems, methods, device and apparatuses for performing simultaneous localization and mapping |
US10089750B2 (en) | 2017-02-02 | 2018-10-02 | Intel Corporation | Method and system of automatic object dimension measurement by using image processing |
GB201702118D0 (en) * | 2017-02-09 | 2017-03-29 | Cathx Ocean Ltd | Method and system for calibrating imaging system |
US10692244B2 (en) * | 2017-10-06 | 2020-06-23 | Nvidia Corporation | Learning based camera pose estimation from images of an environment |
US20200042656A1 (en) * | 2018-07-31 | 2020-02-06 | Toyota Research Institute, Inc. | Systems and methods for persistent simulation |
-
2019
- 2019-07-22 US US16/518,862 patent/US11488324B2/en active Active
-
2020
- 2020-07-16 CN CN202080047325.9A patent/CN114051626A/zh active Pending
- 2020-07-16 EP EP20753569.1A patent/EP4004874A1/en active Pending
- 2020-07-16 JP JP2021571007A patent/JP2022541100A/ja active Pending
- 2020-07-16 WO PCT/US2020/042426 patent/WO2021016051A1/en unknown
- 2020-07-16 KR KR1020227005697A patent/KR20220035250A/ko unknown
-
2022
- 2022-10-31 US US18/051,370 patent/US20230169686A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
KR20220035250A (ko) | 2022-03-21 |
WO2021016051A1 (en) | 2021-01-28 |
US20210027492A1 (en) | 2021-01-28 |
US11488324B2 (en) | 2022-11-01 |
CN114051626A (zh) | 2022-02-15 |
US20230169686A1 (en) | 2023-06-01 |
EP4004874A1 (en) | 2022-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896497B2 (en) | Inconsistency detecting system, mixed-reality system, program, and inconsistency detecting method | |
EP3466070B1 (en) | Method and device for obtaining image, and recording medium thereof | |
KR102334139B1 (ko) | 적응적 호모그래피 매핑에 기초한 눈 시선 추적 | |
JP2022541100A (ja) | 共同環境再構築およびカメラキャリブレーション | |
US9519968B2 (en) | Calibrating visual sensors using homography operators | |
EP2636223B1 (en) | In-home depth camera calibration | |
US20140369557A1 (en) | Systems and Methods for Feature-Based Tracking | |
CN112399158B (zh) | 投影图像校准方法、装置及投影设备 | |
JP2013539147A5 (ja) | ||
CN109615664B (zh) | 一种用于光学透视增强现实显示器的标定方法与设备 | |
US11657535B2 (en) | System and method for optimal camera calibration | |
WO2017143745A1 (zh) | 一种确定待测对象的运动信息的方法及装置 | |
US20160086385A1 (en) | Using Free-Form Deformations In Surface Reconstruction | |
US11488354B2 (en) | Information processing apparatus and information processing method | |
US11012677B1 (en) | Systems and methods for correcting rolling shutter artifacts | |
JP2016100698A (ja) | 校正装置、校正方法、プログラム | |
JP2018106661A (ja) | 不整合検出システム、複合現実システム、プログラム及び不整合検出方法 | |
KR20210123994A (ko) | 전자 장치 및 페어링된 전자 장치를 이용한 객체 식별 방법 | |
US20160349918A1 (en) | Calibration for touch detection on projected display surfaces | |
US11030820B1 (en) | Systems and methods for surface detection | |
CN106803284A (zh) | 构建脸部的三维图像的方法及装置 | |
US11516452B2 (en) | Systems and methods for temporal corrections for parallax reprojection | |
JP5464671B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
US20230112148A1 (en) | Frame Selection for Image Matching in Rapid Target Acquisition | |
WO2023141491A1 (en) | Sensor calibration system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230501 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240416 |