(57)【特許請求の範囲】
【請求項１】
視覚的な同時位置特定およびマッピングのためのプロセッサ実行型の方法であって、
次の画像を処理する前に、第1の参照画像から取得された第1の組のターゲット3Dポイントに基づいて3次元(3D)ターゲットを初期化するステップであって、前記第1の組における前記ターゲット3Dポイントは、あらかじめ決定された最初の深度値で平面に沿って初期化される、ステップと、
第2の参照画像を取得する前に前記第1の参照画像に基づいて、1つまたは複数の後続の画像を処理するステップであって、前記後続の画像は、非線形最適化を用い、推定されたカメラ位置と各3Dターゲットポイントの逆深度に対するガウス-ニュートン非線形リファイン方式を用いて、
6自由度で前記3Dターゲットを追跡するステップと、
前記第1の参照画像に続いて受信された前記1つまたは複数の後続の画像の前記処理から得られた後続の組のターゲット3Dポイントに基づいて、前記3Dターゲットをリファインするステップと
により連帯的に処理される、ステップと、
を含むプロセッサ実行型の方法。
【請求項２】
前記3Dターゲットを初期化すると、前記3Dターゲットの正しく配列され、配置され、離
された拡張現実表現を表示するステップ
をさらに含む請求項1に記載のプロセッサ実行型の方法。
【請求項３】
6自由度で前記3Dターゲットを追跡する間に、前記3Dターゲットの前記拡張現実表現を
更新するステップ
をさらに含む請求項2に記載のプロセッサ実行型の方法。
【請求項４】
1つまたは複数の後続の画像を処理する前記ステップが、2D関心ポイントを前記1つまたは複数の後続の画像から抽出するステップをさらに含む、請求項1に記載のプロセッサ実行型の方法。
【請求項５】
前記3Dターゲットを初期化するステップが、
2D関心ポイントの参照セットを前記第1の参照画像から抽出するステップと、
前記第1の参照画像に対する前記第1の組のターゲット3Dポイントを決定するステップであって、前記第1の組における各ターゲット3Dポイントが前記2D関心ポイントの参照セットにおける2D関心ポイントに対応する、ステップと、
前記あらかじめ決定された最初の深度値を各ターゲット3Dポイントに割り当てるステップと
をさらに含む、請求項1に記載のプロセッサ実行型の方法。
【請求項６】
前記3Dターゲットを追跡する前記ステップが、前記ターゲット3Dポイントのうちの少なくとも1つに対応する参照位置を、前記1つまたは複数の後続の画像から抽出された前記少なくとも1つのターゲット3Dポイントの対応する更新された2D位置と比較するステップをさらに含む、請求項1乃至5の何れか1項に記載のプロセッサ実行型の方法。
【請求項７】
前記3Dターゲットをリファインするステップが、
後続の組における対応する3Dポイントに基づいて前記第1の組における前記ターゲット3Dポイントの1つまたは複数の更新された深度値を決定するステップと、
前記1つまたは複数のターゲット3Dポイントごとに割り当てられたあらかじめ決定された最初の深度値を前記対応する更新された深度値に置き換えるステップと
をさらに含む、請求項1乃至5の何れか1項に記載のプロセッサ実行型の方法。
【請求項８】
更新された深度値を有する前記ターゲット3Dポイントの閾値数が満たされたときを決定するステップであって、前記ターゲット3Dポイントの閾値数が、前記1つまたは複数の後続の画像の対応するそれぞれの後続の画像から取得される、ステップと、
前記第2の参照画像として前記それぞれの後続の画像を割り当てるステップと
をさらに含む請求項7に記載のプロセッサ実行型の方法。
【請求項９】
前記3Dターゲットをリファインする前記ステップが、前記第2の参照画像から抽出され
た複数の2D関心ポイントを有する前記ターゲット3Dポイントを三角行列化することによっ
て前記3Dターゲットのさらなるリファインを実行するステップをさらに含む、請求項8に
記載のプロセッサ実行型の方法。
【請求項１０】
請求項1乃至9の何れか1項に記載の方法をデータ処理装置に実施させる実行可能プログラム命令を含む、コンピュータ可読非一時的記憶媒体。
【請求項１１】
視覚的な同時位置特定およびマッピングの装置であって、
次の画像を処理する前に、第1の参照画像から取得された第1の組のターゲット3Dポイントに基づいて3次元(3D)ターゲットを初期化するための手段であって、前記第1の組における前記ターゲット3Dポイントは、あらかじめ決定された最初の深度値で平面に沿って初期化される、手段と、
第2の参照画像を取得する前に前記第1の参照画像に基づいて、1つまたは複数の後続の画像を処理するための手段であって、前記後続の画像は、非線形最適化を用い、推定されたカメラ位置と各3Dターゲットポイントの逆深度に対するガウス-ニュートン非線形リファイン方式を用いて処理され、前記処理するための手段は、
連帯的に、6自由度で前記3Dターゲットを追跡し、前記第1の参照画像に続いて受信された前記1つまたは複数の後続の画像の前記処理から得られた後続の組のターゲット3Dポイントに基づいて、前記3Dターゲットをリファインするための手段を含む、
手段と、
を備える、装置。
【請求項１２】
前記3Dターゲットを初期化するための手段が、
2D関心ポイントの参照セットを前記第1の参照画像から抽出するための手段と、
前記第1の組のターゲット3Dポイントを決定するための手段であって、各ターゲット3Dポイントが前記2D関心ポイントの参照セットにおける2D関心ポイントに対応する、手段と、
前記あらかじめ決定された最初の深度値を、2D関心ポイントの前記参照セット内の2D関心ポイントに対応する各ターゲット3Dポイントに割り当てるための手段と
をさらに備える、請求項11に記載の装置。
【請求項１３】
連帯的に前記3Dターゲットを追跡するための手段が、前記参照セット内の前記ターゲット3Dポイントのうちの少なくとも1つに対応する参照位置を、前記1つまたは複数の後続の画像から抽出された前記少なくとも1つのターゲット3Dポイントの対応する更新された2D位置と比較するための手段をさらに備える、請求項12に記載の装置。
【請求項１４】
連帯的に前記3Dターゲットをリファインするための手段が、
後続の組における対応するターゲット3Dポイントに基づいて前記第1の組における前記ターゲット3Dポイントの1つまたは複数の更新された深度値を決定するための手段と、
前記1つまたは複数のターゲット3Dポイントごとに割り当てられたあらかじめ決定された最初の深度値を前記対応する更新された深度値に置き換えるための手段と
をさらに備える、請求項12に記載の装置。
【請求項１５】
更新された深度値を有する前記ターゲット3Dポイントの閾値数が満たされたときを決定するための手段であって、前記ターゲット3Dポイントの閾値数が、前記1つまたは複数の後続の画像の対応するそれぞれの後続の画像から取得される、手段と、
前記第2の参照画像として前記それぞれの後続の画像を割り当てるための手段と
をさらに備える、請求項14に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2013年3月14日に出願された米国特許出願番号第13/831,405号の利益および優先権を主張し、これは、2012年11月2日に出願された米国仮出願番号第61/722,091号の利益および優先権を主張し、それらの両方は全体が参照により本明細書に組み込まれる。
【０００２】
本明細書で開示する主題は、一般に視覚的な同時位置特定およびマッピング(visual simultaneous localization and mapping)に関する。
【背景技術】
【０００３】
同時の位置特定およびマッピング(SLAM)は、環境またはシーンからターゲットを構築するために、拡張現実システムおよびロボットナビゲーションにおいて使用される。Visual SLAM(VSLAM)は、環境のターゲットまたはモデルを構築するための入力として、カメラまたはビジュアルセンサデータもしくは画像を使用する。VSLAMが拡張現実(AR)システムとともに使用されるとき、仮想オブジェクトは、現実の世界のユーザのビューに挿入され、デバイス(たとえば、モバイルデバイス、携帯電話など)に表示され得る。
【０００４】
VSLAMがカメラの位置および配向(ポーズ)を追跡または決定するための1つの一般的な必要条件は、既知の参照を使用することである。たとえば、既知の、または以前に取得された参照は、環境の3次元(3D)モデルまたは現実の世界に挿入される人工のマーカとすることができる。従来のVSLAMは、第1の参照画像が初期化および追跡の前の環境における平坦面の正確な正面図であることを必要とし得る。そうしない場合、既知の参照または正確にキャプチャされた最初の画像がなく、オブジェクトが間違った位置に現れ得、または環境のマッピングが完全に失敗する場合がある。
【０００５】
単一のカメラでVSLAMを使用する追跡システムは、単一のカメラによってキャプチャされた2つの別々の参照画像からの3Dターゲットを初期化することにも依存し得る。2つの参照画像間のカメラの動きが適切であり、また、両方の画像におけるシーン間の十分な重複を維持する場合、2つの参照画像に基づいて従来の技法を使用して3Dターゲットを作成することのみが可能である。2つの特に定義された参照画像の間に十分最小の平行移動があるとき、参照画像は、適切なものとして決定され得る。
【０００６】
また、従来のVSLAM実装は、2つの参照画像を選択するために、または3Dターゲットが初期化され得る前に、6自由度(6DoF)でカメラの動きを記録するために追加のビジュアルターゲットを提供するために、直接のユーザ入力に依存し得る。
【０００７】
たとえば、いくつかの追跡方法は、その環境において本当の平面を見つけ、この平面から3Dターゲットを初期化するために、3D再構築方法が使用され得るように、ユーザが、視覚フィードバックなしに特定の非直感な動きシーケンスを実行する必要がある。
【０００８】
従来のVSLAM方法の上記の制限の結果、現在の拡張現実ユーザの経験は、しばしば思い通りにならず、不自然であると感じ得る。さらに、大部分のユーザは、従来のVSLAMの初期化のために必要なカメラの動きを知っている、または理解している可能性が低い。また、一般的なユーザは、拡張現実システムがあるシーンについての追跡更新を表示できる前に、特定の動きを実行しなければならない理由に関して、しばしば混乱する。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、改良されたVSLAMの初期化および追跡が望ましい。
【課題を解決するための手段】
【００１０】
本明細書で開示する実施形態は、視覚的な同時位置特定およびマッピングのための方法に関し得る。この方法は、次の画像を処理する前に、第1の参照画像からの3次元ターゲットを初期化するステップを含む。この方法は、1つまたは複数のその後の画像を処理し、6DoFで3Dターゲットを追跡し、1つまたは複数のその後の画像の処理に基づいて3Dターゲットをリファインするステップをさらに含む。
【００１１】
本明細書で開示する実施形態は、視覚的な同時位置特定およびマッピングを実行する旨の命令を有するコンピュータ可読非一時的記憶媒体にも関し得る。この媒体は、次の画像を処理する前に、第1の参照画像からの3次元ターゲットを初期化するための命令を含む。この媒体は、1つまたは複数のその後の画像を処理し、6DoFで3Dターゲットを追跡し、1つまたは複数のその後の画像の処理に基づいて3Dターゲットをリファインするための命令をさらに含む。
【００１２】
本明細書で開示する実施形態は、次の画像を処理する前に、第1の参照画像からの3次元ターゲットを初期化するための手段を含む装置にも関し得る。この装置は、1つまたは複数のその後の画像を処理し、6DoFで3Dターゲットを追跡し、1つまたは複数のその後の画像の処理に基づいて3Dターゲットをリファインするための命令をさらに含む。
【００１３】
本明細書で開示する実施形態は、視覚的な同時位置特定およびマッピングを実行する旨の命令を記憶するように構成可能な記憶デバイスおよびプロセッサを含むデータ処理システムにさらに関し得る。この命令によって、プロセッサは、1つまたは複数のその後の画像を処理する前に、第1の参照画像からの3次元ターゲットを初期化する。この命令によって、さらに、プロセッサは、その後の画像を処理し、6DoFで3Dターゲットを追跡し、1つまたは複数のその後の画像の処理に基づいて3Dターゲットをリファインする。
【００１４】
他の特徴および利点は、添付の図面、および発明を実施するための形態から明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】開示された方法を実行することが可能なシステムの一実施形態のブロック図である。
【図２】高速VSLAM初期化の一実施形態のフロー図である。
【図３】高速VSLAM初期化の別の実施形態のフロー図である。
【図４】平面で初期化されるターゲットの画像をキャプチャするカメラの例示的な側面概略図を示す図である。
【図５】シーンおよびカメラによる小さい動きの画像をキャプチャするカメラの例示的な側面概略図を示す図である。
【図６】シーンおよびカメラによる大きい動きの画像をキャプチャするカメラの例示的な側面概略図を示す図である。
【図７】カメラによる大きい動きの後のシーンの表現における更新された1組の関心ポイントの例示的な側面概略図を示す図である。
【発明を実施するための形態】
【００１６】
「例示的」または「例」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用される。「例示的」もしくは「例」として本明細書に記載される任意の態様または実施形態は、他の態様もしくは実施形態に比べて好ましいか、または有利であると必ずしも解釈されるべきではない。
【００１７】
図1は、開示された方法を実行することが可能なシステムを示すブロック図である。システムは、汎用プロセッサ161と、画像プロセッサ166と、ポーズプロセッサ168と、グラフィックスエンジン167と、メモリ164とを含み得るデバイス100を含み得る。デバイス100は、プロセッサ161、166および168のうちの少なくとも1つにさらに結合される1つまたは複数のバス177または信号回線に結合されたいくつかのデバイスセンサも含み得る。デバイス100は、モバイルデバイス、ワイヤレスデバイス、携帯電話、携帯情報端末、着用可能デバイス(たとえば、眼鏡、腕時計、帽子、または類似の身体に取り付けられたデバイスなど)、モバイルコンピュータ、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、または処理能力を有する任意のタイプのデバイスとすることができる。
【００１８】
一実施形態では、デバイス100はモバイル/ポータブルプラットフォームであってよい。デバイス100は、カメラ114および/またはCMOS/視覚センサ(図示せず)など画像をキャプチャするための手段を含むことができ、また、随意に、加速度計、ジャイロスコープ、電子コンパス、または他の類似の動き検知素子などの動きセンサ111を含み得る。デバイス100は、前および/または後ろに面したカメラ(たとえば、カメラ114)上の画像をキャプチャすることもできる。デバイス100は、ディスプレイ112など、拡張現実画像を表示するための手段を含むユーザインターフェース150をさらに含むことができる。ユーザインターフェース150はまた、キーボード、キーパッド152、またはユーザが情報をデバイス100に入力することのできる他の入力デバイスを含むことができる。必要に応じて、仮想キーパッドをタッチスクリーン/センサを有するディスプレイ112に統合することで、キーボードまたはキーパッド152をなくすことができる。たとえば、デバイス100がセルラー電話のようなモバイルプラットフォームであるとき、ユーザインターフェース150は、マイクロフォン154およびスピーカ156も含み得る。デバイス100は、たとえば、衛星位置システム受信機、電源デバイス(たとえば、バッテリー)、ならびに一般的にポータブルおよび非ポータブルの電子デバイスに関連付けられた他の構成要素など、様々な他の要素を含むことができる。
【００１９】
デバイス100は、モバイルまたはワイヤレスデバイスとして機能し得、任意の適切なワイヤレス通信技術に基づく、あるいは任意の適切なワイヤレス通信技術をサポートする1つまたは複数のワイヤレス通信リンクを介して、ワイヤレスネットワークにより通信してもよい。たとえば、いくつかの態様では、デバイス100は、クライアントまたはサーバでもよく、また、ワイヤレスネットワークと関連し得る。いくつかの態様では、ネットワークは、ボディエリアネットワークまたはパーソナルエリアネットワーク(たとえば、超広帯域ネットワーク)を備えることができる。いくつかの態様では、ネットワークは、ローカルエリアネットワークまたはワイドエリアネットワークを備えることができる。ワイヤレスデバイスは、たとえばCDMA、TDMA、OFDM、OFDMA、WiMAX、およびWi-Fiなどの多種多様なワイヤレス通信技術、プロトコル、または規格のうちの1つまたは複数をサポートするか、または場合によっては使用することができる。同様に、ワイヤレスデバイスは、様々な対応する変調または多重化方式のうちの1つまたは複数をサポートするか、または場合によっては使用することができる。モバイルワイヤレスデバイスは、他のモバイルデバイス、携帯電話、他の有線およびワイヤレスのコンピュータ、インターネットウェブサイトなどとワイヤレスに通信することができる。
【００２０】
上記のように、デバイス100は、ポータブル電子デバイス(たとえば、スマートフォン、専用の拡張現実(AR)デバイス、ゲームデバイス、またはAR処理および表示機能を備える他のデバイスなど)とすることができる。デバイス100は、本明細書で説明するARシステムを実施することができ、様々な環境で使用され得る(たとえば、ショッピングモール、通り、オフィス、家、またはユーザがそれらのデバイスを使用することができる任意の場所)。ユーザは、多種多様な状況でデバイス100の複数の機能とインターフェースすることが可能であり得る。ARコンテキストでは、ユーザは、ディスプレイ112を介して現実の世界の表現を見るために、デバイス100を使用することができる。ユーザは、現実の世界の画像/ビデオを受信するために、カメラ114を使用することによってAR対応デバイス100と対話することができる。次いで、デバイス100は、表示された現実の世界の画像/ビデオ上に追加または代替の情報を重ねる方法で画像を処理することができる。いくつかの実施形態では、デバイス100上のAR実装で、現実の世界のオブジェクトまたはシーンは、リアルタイムもしくはほぼリアルタイムに、または画像キャプチャの短時間窓内に置き換えられ、または変えられ、ディスプレイ112上にユーザに対して表示され得る。仮想オブジェクト(たとえば、テキスト、画像、ビデオ)は、デバイスディスプレイに図示されるシーンの表現に挿入され得る。
【００２１】
一実施形態では、本明細書で説明する高速VSLAM初期化モジュール(FVI)は、1つまたは複数の関心ポイント(たとえば、ターゲットオブジェクトまたはオブジェクト/シーンのグループに関連付けられた3D関心ポイント)を抽出または検出することができ、1組のポイントの対応から6DoFのカメラ位置および配向(ポーズ)を推定することができる。モジュールという用語は、ハードウェア、ファームウェア、ソフトウェア、または列挙された機能を実行することが可能な何らかのそれらの組合せを指すために使用される。いくつかの実施形態では、FVIは、リアルタイムに、ほぼリアルタイムに、または画像キャプチャの短時間窓内に動作し得る。たとえば、一実施形態では、FVIは、オーグメンテーションがカメラ114によってキャプチャされる画像と同時に、最小のユーザに顕著な遅延またはタイムラグで現れるように、入力画像の増強された表現を表示することができる。
【００２２】
FVIは、画像またはビデオ入力を受信した後、入力画像またはビデオ(AR)の増強された表現を出力(たとえば、表示)することができる。本明細書で使用する際、関心ポイントの検出および6DoFのカメラポーズを推定することは、ターゲットを「追跡する」ことと呼ばれる。ユーザの環境の事前知識なしに(たとえば、あらかじめ入力されているマップ、CADモデル、シーンまたは類似のあらかじめ定義されたターゲット記述子でのマーカなしに)、および視覚(たとえば、表示されたターゲット調整)フィードバックを提供する前の2つの異なる正確な参照画像を使用することなく、FVIは初期化することができる。
【００２３】
FVIは、単一のカメラ114または単眼視覚入力から画像またはビデオを受信し、追跡およびカメラポーズの決定を提供することができる。一実施形態では、FVIは、リアルタイムに、ほぼリアルタイムに、短時間窓内に、または単一の参照画像を受信すると瞬時に、シーンのオーグメンテーションを表示することができる(たとえば、仮想オブジェクトの現実の世界のシーンへの変更またはその追加)。一実施形態では、FVIは、単一の参照画像(たとえば、カメラ114からキャプチャされる画像フレーム)を使用して、加速度計、レーザー距離計、ジャイロスコープ、GPS、または位置を決定するために使用される他のセンサからの追加センサ入力なしに、正確な、およびリアルタイム、ほぼリアルタイム、または即時の追跡を提供することができる。したがって、高価で複雑な複数のカメラアレイシステムは、回避され得、FVIは、一般に利用可能なカメラセンサに結合され得る。たとえば、カメラは、スマートフォンなどのモバイルデバイス、またはAR眼鏡などの着用可能デバイスに結合され得、AR機能は、モバイルデバイスのプロセッサによって、またはAR眼鏡におけるプロセッサによって実行されるソフトウェアアプリケーションまたはプログラムとして実施され得る。
【００２４】
図2は、VSLAM初期化の一実施形態のフロー図を示す。ブロック205で、FVIは、次の画像を処理する前に、第1の参照画像(たとえば、単一の参照画像)からの3Dターゲットを初期化することができる。たとえば、第1の画像(たとえば、カメラ114からキャプチャされた単一の参照画像)を初期化することは、以下でさらに詳細に説明するように、最初の推定された深度を有する3次元空間における1組の関心ポイントを決定することを含み得る。いくつかの実施形態では、初期化は、リアルタイムに、ほぼリアルタイムに、または参照画像キャプチャの短時間窓内に即座に行われ得る。
【００２５】
一実施形態では、FVIは、最初のキャプチャされた参照画像からターゲットを作成することができる。また、本明細書で使用するターゲットは、3Dオブジェクトまたはシーンのモデルまたはマップであると理解され得る。FVIは、単一のカメラセンサまたは単眼ソースからの単一画像からターゲットを作成することができる。ターゲットは、メモリ(たとえば、デバイス100のメモリ164)に記憶され得、画像から抽出され、または計算される1つまたは複数の3D関心ポイントによって表され、またはそれに関連付けられ得る。いくつかの実施形態では、3Dターゲットは、最初の参照画像または第2の参照画像を選択するとき、任意のユーザ入力なしに初期化され得る。
【００２６】
ブロック210で、FVIは、1つまたは複数のその後の画像を処理することができる。処理は、その後の画像の各々の中の1組の関心ポイントを決定することを含み得る。いくつかの実施形態では、1組の関心ポイントは、参照画像の処理の後決定された同じ関心ポイントとすることができるが、位置および深度値は、参照画像とは異なり得る。
【００２７】
ブロック215で、FVIは、6自由度で3Dターゲットを追跡することができる。FVIは、受信された第1の画像フレームに基づいて、ターゲット(たとえば、シーン、オブジェクト、またはマップ)を追跡し始めることができる。いくつかの実施形態では、追跡は、即時に、瞬時に、リアルタイムに、ほぼリアルタイムに、または第1の単一の参照画像のFVIによる受信の後短期間内に行われ得る。いくつかの実施形態では、3Dターゲットが即座に、リアルタイムに、ほぼリアルタイムに、またはフレームキャプチャの短期間内に初期化され得るので、VSLAMの初期化は、拡張現実のユーザにとって容易に明らかであり得る。いくつかの実施形態では、3Dターゲットは、ユーザが任意の方向にカメラ114を動かし、追加の画像が受信され、処理されるとき、さらにリファイン（refine）され得る。FVIは、以下でより詳細に説明するように、追跡の間、ターゲットの表現を表示することができる。
【００２８】
ブロック220で、FVIは、1つまたは複数のその後の画像の処理に基づいて、3Dターゲットをリファイン（refine、洗練、精製）することができる。FVIは、関心ポイントが推定され得るかどうかを決定し、小さい動作に対してターゲットを増加的にリファインすることができる。一実施形態では、FVIは、想定された深度値を有する平面にターゲットを近づけることによって、最初の小さい動きについてのカメラ動き推定を提供することができる。また、ターゲットが平面に対して近づけられる実施形態では、エピポーラ形状(十分な平行移動を有することに依存し得る)について明確に解くステップは、省略され得る。したがって、いくつかの実施形態では、FVIは、第1の参照画像からの連続的なカメラ114の追跡を自動的に初期化し、さらに提供する。FVIは、カメラ114によって記録される追加の画像(たとえば、第1の最初の参照画像の後のその後の画像キャプチャ)から、第2の参照画像を自動的に選択することもできる。第2の参照画像を選択する方法について、以下でさらに詳細に説明する。第2の参照画像が選択された後、追跡およびカメラ114ポーズの決定は、第1および第2の参照画像からの追跡およびカメラポーズの決定に基づいて続行し得る。
【００２９】
一実施形態では、最初の参照画像からの十分な平行移動(たとえば、より大きい動作)を含む画像を発見すると、発見された画像は、第2の参照画像として自動的に割り当てられ得る。追跡精度のさらなる増加をもたらすターゲットを三角行列化するために、第2の参照画像からの関心ポイントが使用され得る。
【００３０】
いくつかの実施形態では、デバイス100は、任意の直接または手動のユーザ対話またはトリガなしに、FVI(たとえば、FVIエンジン、ソフトウェアプロセス、または他の実装として)を自動的に開始、実行、または稼働させる(たとえば、プロセッサ161を使用して)ことが可能であり得る。あるいは、他の実施形態では、FVIによって、デバイス100は、タッチスクリーンをタッチすることによって、ボタンを押すことによって、または類似の入力によって、ターゲットの初期化および追跡を開始するように、ユーザに対してプロンプトを出すことができる。さらに他の実装形態では、FVIは、アプリケーションまたはプログラムに統合され得、アプリケーションまたはプログラムは、ユーザにプロンプトを出す、または自動的に最初の参照画像をキャプチャし、追跡を開始する。
【００３１】
第1の画像は、最初のまたは第1の参照画像でもよい。デバイス100は、カメラ114で最初の画像をキャプチャし、拡張現実処理のために、画像をFVIに送ることができる。一実施形態では、カメラの動作または動きが検出されるとき、最初の画像フレームは、カメラ114によって自動的にキャプチャされ得る。本明細書で使用するキャプチャされた画像は、スチール/写真用画像フレームまたはビデオフレームであり得ることを理解されたい。たとえば、カメラ114は、ビデオならびにスチール写真画像キャプチャ機能を有し得る。
【００３２】
一実施形態では、少なくとも部分的に、単一の第1の画像(たとえば、カメラ114からキャプチャされた初期化画像)を処理し、最初の推定された深度を使用して1組の抽出された関心ポイントを計算することによって、第1の参照画像(たとえば、カメラ114によってキャプチャされた第1の画像)から始まる高速カメラ追跡が可能である。一実施形態では、拡張現実プログラムまたはアプリケーションは、任意のカメラ114の動き(たとえば、カメラの平行移動)が受信される前に、初期化から、(たとえば、モバイルデバイスまたはコンピュータのディスプレイ上に)シーンにおける登録されたコンテンツ(グラフィックス)を表示することができる。FVIは、回転の動きのみが受信されるとき、シーンにおける登録されたコンテンツを表示することもできる。
【００３３】
一実施形態では、FVIは、追跡を初期化するためにユーザに特定の動きを要求することなく、ターゲット追跡のための正確なデータセットを作成することができる。一実施形態では、FVIは、シーンまたはオブジェクトを瞬時に追跡し、ARの更新をディスプレイに、リアルタイムに、ほぼリアルタイムに、瞬時に、または短時間窓内に(たとえば、ターゲットのオーグメンテーション)を提供することができる。単一の最初の参照画像の初期化からのターゲット追跡を可能にすることによって、引き続きカメラを動かし/別の場所に動かし、デバイスカメラ114でターゲットまたはシーンを探査することを、ユーザは促進される。異なる角度および視点でのシーンのより大きい探査は、ターゲットに関する詳細な情報を明らかにし得る。FVIは、ユーザがターゲットをリファインするためにカメラを動かす間に学ばれた追加の情報を使用することができる。いくつかの実施形態では、FVIは、ユーザがカメラを動かすにつれて、リファインされたターゲットを使用して、リアルタイムの表示フィードバックを提供することができる。いくつかの実施形態では、リアルタイムの表示フィードバックを提供する間、ターゲットおよびカメラポーズに関するFVIの収集された情報をさらにリファインするために使用され得る第2の参照画像が発見され、選択され得る。
【００３４】
拡張現実(AR)の実装では、FVIは、随意に、ターゲットを増強するための追加の情報についてユーザを促すことができる。たとえば、ユーザは、ユーザが作成し、または選択したコンテンツを、デバイス100のディスプレイ上における表現に追加することが可能である。ユーザのコンテンツは、画像、3Dオブジェクト、ビデオ、テキスト、またはターゲットと統合され得る、またはそれにオーバーレイされ得る、またはターゲットの表現を置き換え得る他のコンテンツタイプとすることができる。
【００３５】
一実施形態では、少なくとも部分的に、第1の画像(たとえば、カメラ114からキャプチャされた初期化画像)を3Dターゲットとして(たとえば、平面または他の幾何学的形状の3Dターゲットとして)処理することによって、第1の参照画像(たとえば、カメラ114によってキャプチャされた第1の画像)からの高速ターゲット追跡が容易にされ得る。一実施形態では、FVIは、観察されたカメラ114の動きが与えられると更新され得るシーン(たとえば、3Dマップ)の部分(たとえば、関心ポイント)を自動的に選択する。したがって、いくつかの実施形態では、FVIは、第1の参照画像からその後キャプチャされる画像までの連続的なカメラ114の追跡を自動的に初期化し、提供する。FVIは、カメラ114によって記録される追加の画像(たとえば、第1の最初の参照画像の後のその後の画像キャプチャ)から、第2の参照画像を自動的に選択することもできる。第2の参照画像が選択された後、追跡およびカメラ114ポーズの決定は、第1および第2の参照画像からの追跡およびカメラポーズの決定に基づいて、さらに/十分にリファインされ得る。
【００３６】
一実施形態では、FVIは、特定のターゲット形状、マーカ(現実の世界、または仮想)、またはタグに関する任意のあらかじめ決定されたまたは事前の初期化入力を受信することなく、3Dターゲットの追跡の正確なデータセットを作成し得る。いくつかの実施形態では、FVIは、3Dターゲットの形状の事前の知識なしに、および3Dターゲット内の特定の特徴の存在の知識なしに、3Dターゲットを初期化することができる。たとえば、一実施形態では、あらかじめ定義されたターゲットオブジェクト、または既知の座標を有するターゲットを受信する代わりに、FVIは、3Dターゲットを初期化し、あらゆる発見された特徴に等しい深度を設定することができる。したがって、一実施形態では、3Dターゲットのためのデータセットは、第1の単一の参照画像からすべての関心ポイントについての深度および位置で完全に埋められ得る。深度の任意の誤差は、3Dターゲットに対するカメラポーズの変化として訂正され得る。
【００３７】
一実施形態では、ARプログラムまたはアプリケーションは、任意のカメラ114または回転の動きが受信される前に、初期化から、(たとえば、モバイルデバイスまたはコンピュータのディスプレイ上に)シーンにおける登録されたコンテンツ(グラフィックス)を表示することができる。たとえば、ARプログラムは、携帯電話またはハンドヘルドデバイスのディスプレイ上にターゲットのAR表現を提供することができる。
【００３８】
本明細書で使用する関心ポイントは、画像の興味深いまたは顕著な部分として定義され得る。関心ポイントの検出は、関心ポイントが特定のピクセルに存在するかどうかを決定するために、あらゆるピクセルを検査するための低レベルの画像処理操作とすることができる。あるいは、高レベルアルゴリズムも、関心ポイントの検出のために使用され得る。関心ポイントの検出は、全画像フレームあるいは画像のサブセクションを処理することができる。
【００３９】
画像から抽出された関心ポイントは、3次元空間(たとえば、軸X、YおよびZの座標)に沿って異なるポイントを表し得る。本明細書で使用するターゲットは、画像内の単一の分離されたオブジェクトまたは複数のオブジェクトから抽出され、またはそれに関連付けられた関心ポイントを含み得る。たとえば、画像においてキャプチャされるシーン全体は、複数のオブジェクトを含み得、各オブジェクトは、1つまたは複数の抽出された関心ポイントを有し得る。画像またはシーン内のオブジェクトのグループは、グループ全体に関連付けられた集合的な結合された関心ポイントを有することもできる。
【００４０】
一実施形態では、最初の推定された深度を有する関心ポイントのFVIの抽出は、非平面のシーン(たとえば、最初の参照画像または画像に平行した単一の平面ではなく、しかし、任意の位置または異なる3D表面にある平面にあり得るシーン、または主要な平面構造をまったく有していないシーン)についての追跡およびカメラポーズの決定を可能にする。
【００４１】
キャプチャされた画像またはビデオフレームごとに、ひとたび関心ポイントが検出されると、関心ポイントの周りのローカル画像パッチが抽出され得る。関心ポイントの位置を特定し、それらの記述を生成する、スケール不変特徴変換(SIFT)などのよく知られている技法を使用して、関心ポイントが抽出され得る。所望される場合、他の技法、たとえば、Speed Up Robust Features(SURF)、Gradient Location-Orientation Histogram(GLOH)、または他の同等の技法を使用してもよい。いくつかの実施形態では、画像の抽出された関心ポイントの数が閾値(たとえば、100の関心ポイントまたは他の数のポイント)を超えるように決定されると、画像は、第1の参照画像として保存され得、抽出された関心ポイントは、基準点として定義され得る。
【００４２】
いくつかの実施形態では、FVIは、任意の加速度計データの使用なしに、ターゲットを追跡することができる(たとえば、ターゲットは、重力に対して任意の配向であってもよく、水平または垂直に配列されたオブジェクトは、FVI追跡について等しく実行可能である)。さらに、FVIは、任意の形状のターゲットを追跡することができる(たとえば、FVIは、ターゲットを識別し、追跡するために、矩形または別の定義された幾何学的な構造に依存しない)。いくつかの実施形態では、FVIは、ターゲットを追跡するために、完全なターゲット形状/構造を必要としない、または想定しないので、ターゲットが部分的に閉塞されるときでさえ、ターゲットを追跡することができる。たとえば、FVIは、ターゲットの1つまたは複数の部分が失われている、または最初の基準フレームから隠されているときでさえ、ターゲットを追跡することができる。カメラが6DoFで移動するにつれて、FVIは、追加の発見された関心ポイントを備えるターゲットを更新することができる。
【００４３】
いくつかの実施形態では、FVIは、ユーザ入力を必要とせず、また、ターゲットを追跡し始めるために、他の追跡初期化方法に依存しない場合がある。たとえば、FVI追跡は、ターゲットを追跡する前に、特定の動きでカメラを動かす、特定の位置に立つ、カメラを水平に保つ、または他の形の追跡初期化方法を実行するためにユーザに依存しない。
【００４４】
上記のように、デバイス100は、ポータブル電子デバイス(たとえば、スマートフォン、専用の拡張現実(AR)デバイス、ゲームデバイス、眼鏡などの着用可能デバイス、またはAR処理および表示機能を備える他のデバイスなど)とすることができる。本明細書で説明するARシステムを実施するデバイスは、たとえば、ショッピングモール、通り、部屋、またはユーザが携帯デバイスを持っていくことができる任意の場所など、様々な環境で使用され得る。ARコンテキストでは、ユーザは、デバイスのディスプレイを介してターゲットおよび現実の世界の表現を見るために、デバイス100を使用することができる。
【００４５】
ユーザは、現実の世界の画像/ビデオを受信するためにデバイスのカメラを使用することによってAR対応可能なデバイスと対話し、デバイス上の表示された現実の世界の画像/ビデオ上に追加または代替の情報を重ねるまたはオーバーレイすることができる。ユーザがそのデバイス上でARの実装を見るにつれて、現実の世界のオブジェクトまたはシーンは、デバイスディスプレイ上でリアルタイムに置き換えられ、または変えられ得る。仮想オブジェクト(たとえば、テキスト、画像、ビデオ)は、デバイスディスプレイに図示されるシーンの表現に挿入され得る。たとえば、カスタマイズされた仮想写真は、現実の世界のサイン、ポスター、またはピクチャフレームの上に挿入され得る。たとえばカメラおよびARデバイスで見られるオフィスまたは家庭環境内など、3D仮想キャラクタ(たとえば、ビデオゲームキャラクタ)を現実の世界のシーンに入れる別の例。
【００４６】
一実施形態では、ARデバイスのユーザの経験は、ユーザがデバイスを動かすにつれて、ユーザの環境の事前の知識なしに、デバイスに表示されるARを自動的に更新することによって大幅に強化され得る。たとえば、いくつかの実施形態では、FVIは、シーンなどにおけるマップ、CADモデル、マーカなしに動作することができる。FVIは、複数の異なるおよび正確な画像キャプチャなしに視覚フィードバック(たとえば、ディスプレイ112上に表示されるターゲットに対するAR更新)を提供することによって、ユーザの経験を強化することもできる。いくつかの実施形態では、ARシステムに対する視覚の更新が、リアルタイムに、ほぼリアルタイムに、ほぼ瞬時に、または第1の参照画像をキャプチャする短時間窓内にディスプレイおよびユーザに提供され得る。
【００４７】
一実施形態では、どこでもオーグメンテーションを使用することによって、ユーザがカメラをポイントに向けるとすぐに、FVIは、オーグメンテーションがどのように環境における選択されたポイントに固定されるかの対話型フィードバックをユーザに提供することができる。たとえば、デバイス上の初期化で、FVIは、単にカメラをターゲットに向けることによって、ユーザがターゲットを自動的に選択することができるようにし得る。
【００４８】
デバイス100およびカメラ114の動作によって、ディスプレイは、リアルタイムに、(たとえば、1つまたは複数のオブジェクトまたはシーンなど)追跡されているターゲットのオーグメンテーションを更新することができる。最初の参照画像位置から離れるデバイスの動作で、デバイスは、代替のビューから追加の画像をキャプチャすることができる。代替のビューが表示されると、FVIが追加の画像を処理する間、シーンのオーグメンテーションは、より正確になり得る。FVIは、カメラが見ている環境の3Dの知識を取得するために、ターゲットに関連付けられた抽出された関心ポイントの3D位置を推定することができる。関心ポイントを追跡するための視野ベースのソリューションを使用して、ローカル法線ベクトルおよびポイント間の相対的な距離が推測され得る。
【００４９】
一実施形態では、オブジェクトまたはグラフィックは、カメラ114によってキャプチャされ、およびディスプレイ112に表示されたビデオストリーム(または画像)に挿入され、または統合され得る。ディスプレイは、いくつかの実施形態では、元のシーンからのシームレスな追跡でリアルタイムに更新することができる。たとえば、サイン上のテキストは、代替のテキストと置き換えられ得、または、3Dオブジェクトは、戦略的にシーンに配置され、デバイス100に表示され得る。ユーザがカメラ114の位置および配向を変えるとき、グラフィックまたはオブジェクトは、カメラ114の相対的な移動に一致させるために調整され、または増強され得る。
【００５０】
一実施形態では、FVIは、カメラビュー方向のカメラからの光線を推定された優位な平面(たとえば、上記の最初の深さで初期化される平面)に投じることができる。FVIは、加速度計を使用して重力の方向を推定し、カメラが狙っているときはいつでも、カメラから投じられる光線に加えて重力の方向を使用して、表示のためのターゲットの3Dオーグメンテーションを正しく配列し、配置し、距離を置く。たとえば、仮想オブジェクトが拡張現実の表示に挿入される場合、仮想オブジェクトから離れるカメラの動作は、カメラ114によって進む距離に対して仮想オブジェクトのサイズを低減し得る。たとえば、仮想オブジェクトから4つのステップを戻すことは、仮想オブジェクトから半ステップを戻すことと比較して、仮想オブジェクトのサイズのより大きい低減をもたらすはずであり、すべての他の変数は等しい。FVIによって表されるシーン内で、動きグラフィックスまたはアニメーションがアニメーション化され得る。たとえば、アニメーション化されたオブジェクトは、拡張現実表示に示されるシーン内で「動き」得る。
【００５１】
一実施形態では、カメラ114が動き、カメラのポーズが変わる(たとえば、ユーザまたはロボットが開始した動作)間、FVIは、適切な画像を第2の参照画像として使用されるように選択することができる。第2の参照画像は、画像フィードまたはストリームから選択され得る。関心ポイントを抽出し、第2の参照画像から三角行列化した後、オーグメンテーションの増加した精度が達成され得る(たとえば、オブジェクトの周りの境界は、より正確に適合し得、シーンにおけるオブジェクトの表現は、より現実的に見え、ターゲットの配置は、カメラ114のポーズに対してより正確であり得る)。
【００５２】
本明細書で説明する実施形態がAR以外の方法で実施され得ることを、当業者であれば理解されよう(たとえば、ロボットのポジショニングまたはFVIを利用するための他の実装)。
【００５３】
一実施形態では、FVIは、入力として画像またはビデオを受信するために、プロセッサによって実行されるエンジンまたはモジュールとして実施され得る。FVIは、単一の画像I0を受信することから始めることができる。最初の画像I0に関連付けられたカメラポーズは、C0=I4x4、識別である。2D関心ポイントpi=(ui,vi)は、単一画像から抽出され得る。各関心ポイントは、最初の深度zi=1に関連付けられ得る。深度は、逆深度
【００５４】
【数１】
0006258953.tif 000002
【００５５】
として記憶され得る。そのとき、関心ポイントpiに対応するポイントXiの3D位置は、同次座標で表されるXi=(ui,vi,1,wi)Tである。
【００５６】
時刻tにキャプチャされる任意の次のカメラ画像Itについて、カメラ位置Ctは、3DポイントXiの2D位置の測定から推定される。ポイントXiは、最後の既知のカメラポーズCt-1を使用して、現在画像Itに再度投影され、画像Itにおける2D位置の新しい測定が行われ得る。一実施形態では、画像Itにおける2D位置の新しい測定は、画像I0から取得された画像パッチ間の正規化された相互相関、または画像対応を取得する別の方法を使用して取得され得る。そのような方法を使用して、2D位置miは、各位置Xiのために観察され得る。次いで、カメラロケーションCtならびに各ポイントの逆深度wiの両方は、ガウス-ニュートン非線形リファイン方式を使用して最適化され得る。
【００５７】
投影機能は、以下の通りである。
【００５８】
【数２】
0006258953.tif 000003
【００５９】
R、T、およびwに関するヤコビアンは、
【００６０】
【数３】
0006258953.tif 000004
【００６１】
Ct-1のカメラの平行移動Tが小さすぎるとき、3Dポイントの逆深度wiに関する観察miのヤコビアンJwは消え(小さくなり、ほぼ0になる)、これは、逆深度の正確な推定を妨げることができる。したがって、ガウス-ニュートン反復の間、ポイントごとに、逆深度パラメータの情報マトリックス
【００６２】
【数４】
0006258953.tif 000005
【００６３】
がテストされる。情報マトリックスは、この場合、非負のスカラー値のみであり、たとえば10-3など、それが閾値未満である場合、その逆は0にセットされる。逆を0に設定することは、この場合、確実に行うことができないので、深度座標を更新することを回避する。
【００６４】
一実施形態では、ポイントXiは、既知の深度座標を有するので、FVIは、常にカメラポーズを推定することができる。したがって、一実施形態では、最適化のカメラパラメータ部分は、常にうまく制限される。
【００６５】
すべてのポイントのカメラポーズパラメータと逆深度座標wiの両方を最適化し、更新することによって、新しいカメラポーズCtおよびヤコビアンが消えなかったすべてのポイントの新しい深度推定が得られ得る。
【００６６】
図3は、高速VSLAM初期化の一実施形態のフロー図を示す。
【００６７】
ブロック305で、FVIは、参照画像として使用するための画像を読み、または受信することができる。参照画像は、カメラセンサ/画像フィードからの最初のキャプチャされた画像でもよく、またはユーザによって選択され得る。一実施形態では、FVIは、最初の画像を選択するための任意のユーザ入力なしに3Dターゲットを初期化することができる。一実施形態では、カメラ114が任意の方向に移動するとき、3Dターゲットを構築することが開始される。カメラ114が6DoFで動き、その後の画像をキャプチャすると、参照画像は、ターゲットの本当の/リファインされた形状を連続的に推定するための開始ポイントとすることができる。一実施形態では、ユーザは、任意の方向にカメラ114を動かすことができ、元のシーンが少なくとも部分的に表示されたままであるとき、3Dターゲットの追跡および初期化が実行され得る。一実施形態では、ポイントを割り当てることによって、想定された深度値のカメラ追跡は、第1の画像(参照画像)から、即座に、リアルタイムに、ほぼリアルタイムに、または短期間ウインドウ内に実行され得る。
【００６８】
ブロック310で、FVIは、上記の方法のうちの1つを使用して、参照画像から1組の3D関心ポイントを決定することができる。
【００６９】
ブロック315で、FVIは、ターゲットを幾何学的形状に設定することができる。一実施形態では、幾何学的形状は、平面の形をとることができるが、ターゲットを設定するために、他の形状が使用されてもよい。一実施形態では、FVIは、3D関心ポイントの各々を同じ/等しい固定された深度値に割り当てることができる。関心ポイントは、画像平面と平行な2D平面に沿って最初に位置し得る。一実施形態では、すべての3D関心ポイントが画像平面(たとえば、センサまたはカメラ平面)に平行な平面上にあるという想定は、3Dポイント深度が更新されると、漸進的リファインによるターゲットのリアルタイムの、ほぼリアルタイムの、または高速な追跡を容易にする。
【００７０】
図4は、平面で初期化されるターゲットの画像をキャプチャするカメラの側面概略図の一実施形態を示す。図4は、位置405におけるカメラ114から見たとき、あらかじめ定義された最初の距離で平面420に設定されるターゲット(たとえば、関心ポイント425、430、435、440、445、および450)の関心ポイントも示す。関心ポイントは、上記で開示したように抽出のためのよく知られている技法のうちの1つを使用して抽出され得る。たとえば、上記で開示したように、2D関心ポイントpi=(ui,vi)は、画像から抽出され得る。各関心ポイントは、最初の深度(たとえば、上記で開示したように、zi=1、または別のあらかじめ決定された初期化値)に関連付けられ得、したがって、すべての関心ポイントは、最初に同じ平面(たとえば、単一の平面420に沿ったポイント425、430、435、440、445、および450)に沿っている。
【００７１】
他の実施形態では、関心ポイントは、任意の他の幾何学的形状、または初期化された深度値の任意の配列によって初期化され得る。たとえば、FVIは、別の幾何学的形状がターゲットのベースラインの開始ポイントであると決定し、より多くのターゲット情報が発見されるにつれてリファインすることができる。さらに、同じ深度値を有するあらゆる関心ポイントの代わりに、初期化された深度値は、当技術分野で知られているように、他の技法によって個々に推定され、または決定され得る。たとえば、最初の深度値は、平均の関心ポイント深度があらかじめ決定された閾値平均深度内に入るように、ある範囲の値とすることができる。
【００７２】
また図4は、カメラ114によって観察された3Dシーンを表すオブジェクト(たとえば、オブジェクト410)を示す。線415は、オブジェクト410に関連付けられた関心ポイント425(たとえば、オブジェクト410の端部に関連付けられた関心ポイント425は、平面420に沿って検出された他の関心ポイントと最初の等しい深度を有する)が見られる光線を示す。位置405のカメラ114から線415に沿った関心ポイント425までの距離は、関心ポイント425の想定された深度である。
【００７３】
図3を参照すると、ブロック320で、FVIは、次の画像を処理し始めることができる。一実施形態では、デバイス100が参照画像内のオブジェクト(たとえば、オブジェクト410)に対して移動するにつれて、カメラ114は、異なる視点からのターゲットのその後の画像のうちの1つまたは複数をキャプチャし、処理し続けることができる。いくつかの例では、次(その後)の画像は、参照画像の直後にくることができる。あるいは、次(その後)の画像は、画像のストリームからキャプチャされ、参照画像の後の任意の後の時間にキャプチャされ得る(たとえば、他の画像は、参照画像と次の画像との間で即座にキャプチャされ得る)。次の画像を処理することは、次の画像内の1組の3D関心ポイントを抽出または決定することを含むことができる。次(その後)の画像における3D関心ポイントの組が参照画像と比較して異なる深度または位置にあり得ることを除いて、次(その後)の画像における3D関心ポイントの組は、参照画像から決定された3D関心ポイントと同じまたは等しくてもよい。
【００７４】
FVIは、参照画像の決定の直後にその後の画像を処理し始めることができ、または代替として、(たとえば、カメラフィード内など)2つ以上の画像が検出されるまで処理を遅延させることができる。たとえば、カメラ114は、30フレーム毎秒で画像をキャプチャすることができるが、FVIは、5つの直後のフレーム(たとえば、または最初の参照画像のキャプチャの直後の時間期間内にキャプチャされるフレーム)は、測定可能なカメラの平行移動になりそうにないと決定することができる。したがって、いくつかの実施形態では、FVIは、1つまたは複数のその後のフレームをバイパスすることができ、または、最初の基準フレームの後の時間期間がバイパスされ得る。同様に、FVIは、全体的な処理時間を低減するために、画像フィードにおけるあらゆる画像を常に処理することができるとは限らない。たとえば、FVIは、関心ポイントについて処理するために、画像(たとえば、あらゆる他の記録された画像、またはあらゆる5つの記録された画像における1つ)のフィードのサンプルを使用することができる。
【００７５】
ブロック325で、FVIは、次の画像の関心ポイントを追跡することができる。いくつかの実施形態では、ターゲットを追跡することは、参照画像からの各3D関心ポイントの位置を次の画像からの対応する3D関心ポイントと比較し、両方の画像で見つかる同じ3D関心ポイントのうちの1つまたは複数の位置の変化を決定することを含む。次の画像(たとえば、最初の参照画像の後にキャプチャされ、処理される画像)ごとに、FVIは、以下でより詳細に説明するように、次の画像が第2の参照画像としての割当ての候補であるかどうかを決定することができる。いくつかの動きでは、任意の残りの誤差がほとんどユーザに気づかれないように、平面近似値は、追跡誤差を低減する、または取り除く。たとえば、小さい動作では、シーンの第1の平面近似値は、追跡誤差が目立たないほど十分正確であり得る。これらの小さい動作から得られた画像は、次の参照画像として使用されないが、これは、さらに任意の誤差を低減するために第2の参照画像が取得されるまで、ユーザによるさらなるシーン探査を促進する。
【００７６】
平面に関する小さい動作の追跡の一実施形態は、カメラ位置405からカメラ位置505への小さい動作510の側面概略図として図5に示される。図5に示したように、光線および関心ポイントは、カメラ位置405から小さい動作510によって最初に分岐し得る。
【００７７】
図6は、シーンおよび位置405から新しいカメラ位置615までのカメラによる大きい動き610の画像をキャプチャするカメラの一実施形態の側面概略図を示す。図6は、関心ポイント425に以前関連付けられた光線415を示しており、光線620になり、もはや正確に関心ポイント425を追跡しない。
【００７８】
図3を参照すると、ブロック330で、FVIは、各関心ポイント深度、すなわち3Dポイント位置が推定され得るかどうかを決定することができる。3Dポイント推定は、それがカメラの動きおよびすべての可能な3Dポイントをジョイント推定するので、エピポーラ制約に関係する。上記で説明したように、関心ポイントごとに、逆深度パラメータの情報マトリックス
【００７９】
【数５】
0006258953.tif 000006
【００８０】
は、関心ポイントの深度が推定され得るかどうかを決定するためにテストされる。関心ポイント深度が推定できない場合、FVIは、ブロック340に進み、カメラの制約を追加することができる。そうでない場合、関心ポイントが推定できる場合、推定された関心ポイントは、ブロック335で更新された位置のリストに追加される。あるいは、推定された関心ポイントは、更新されたポイントの個別のリストまたは位置を維持する代わりに、関心ポイントのための主記憶ロケーション(たとえば、データベース、フラットファイル、または他の記憶タイプ)を更新することができる。関心ポイントを更新する、または更新がない可能性があることを決定した後、FVIは、関心ポイントのカメラの制約を追加するために、ブロック340に進むことができる。
【００８１】
ブロック340で、カメラの制約が関心ポイントに追加される。本明細書で使用される制約は、ヤコビアンおよび観察された2D測定によって与えられる線形制約である。R、Tおよびwに関して投影機能およびヤコビアンの詳細な説明については、上記を参照されたい。
【００８２】
ブロック345で、FVIは、カメラおよびターゲットを最適化することができる。一実施形態では、FVIは、カメラ114の動作に基づいて、カメラ114およびターゲットを最適化する。ユーザがカメラ114を動かすにつれて、ディスプレイは、更新をリアルタイムにユーザに提供することができる。リアルタイムのフィードバックを受信することは、ユーザがカメラ114を動かし続けるのを促進することができる。追加のカメラの動作は、ターゲットのさらなるリファインおよび追跡のより大きい精度を提供することができる。たとえば、ARコンテキストで、デバイス100は、ターゲットを有する統合されたグラフィックまたはオブジェクトを表示することができ、グラフィックまたはオブジェクトは、シーンに配置され得、したがって、カメラが移動する(たとえば、6DoFのうちの1つで)とき、グラフィックまたはオブジェクトは、(第1の参照画像から決定されるそれらの位置および配向に対して)他のオブジェクトまたは環境に対するその相対的な位置を維持する。
【００８３】
ブロック350で、FVIは、十分なポイントが推定されたかどうかを決定することができる。ポイントの数の閾値は、異なるシーンにおいて方法をテストすることを介して設定され、たとえば、閾値は、設計およびシステムパラメータに基づいて設定され得る。一実施形態では、閾値は、100ポイント、そうでない場合、150ポイント、または何らかの他の数に設定され得る。十分なポイントがあった場合、FVIはブロック355に進み得る。一実施形態では、ポイントの閾値数が満たされると、FVIは、第2の参照画像としてポイントに関連付けられた画像を割り当て、ブロック355に進むことができる。そうでない場合、FVIは、ブロック320で次の画像を処理し続ける。一実施形態では、FVIは、十分な関心ポイントが推定されたかどうかを決定しながら、複数のその後の画像(たとえば、カメラ114からキャプチャされる一連の画像フレームから)にわたって、各画像を処理することを繰り返すことができる。
【００８４】
ブロック355で、FVIは、完全な、および増加された精度の追跡がその後の画像のために提供されると決定され得る。たとえば、図7に示したように、FVIは、第1および第2の参照画像からの関心ポイント位置を三角行列化することができる。2つの参照画像は、異なる視聴方向から同じターゲット(たとえば、オブジェクトまたはシーンのセクション)を表すことができる。FVIは、対応(すなわち、第1および第2の画像における関心ポイント位置)を見つけ、第1の参照画像から第2の参照画像までカメラを動かした動きとともに、これらの対応する関心ポイントの3D構造を計算することができる。関心ポイントの三角行列化は、上記で説明した最初の小さい動きのリファインの後の第2のレベルのリファインと考えられ得る。2つの参照画像が決定された後、三角行列化が行われ得る。
【００８５】
図7は、大きいカメラ動作の後、および第2の参照画像の後のカメラ405の側面概略図が、カメラ114によって観察された1組のポイント725、735、745、750、740、および760の各々についてのより正確な(すなわち更新される)関心ポイント深度を考慮に入れるものとして示す(615)。線620は、更新された関心ポイント760が見られる光線を示す。
【００８６】
本明細書の教示は、様々な装置(たとえば、デバイス)に組み込む(たとえば、それらの装置内に実装するか、またはそれらの装置によって実行する)ことができる。たとえば、本明細書で教示された1つまたは複数の態様は、電話(たとえば、携帯電話)、携帯情報端末(「PDA」)、タブレット、モバイルコンピュータ、ラップトップコンピュータ、タブレット、エンターテインメントデバイス(たとえば、音楽デバイスもしくはビデオデバイス)、ヘッドセット(たとえば、ヘッドフォン、イヤピースなど)、医療用デバイス(たとえば、生体センサ、心拍数モニタ、歩数計、EKGデバイスなど)、ユーザI/Oデバイス、コンピュータ、サーバ、POSデバイス、エンターテインメントデバイス、セットトップボックス、または任意の他の適切なデバイスに組み込むことができる。これらのデバイスは、異なる電力およびデータ要件があり得、関心ポイントまたは関心ポイントの組ごとに生成される異なる電力プロファイルをもたらし得る。
【００８７】
いくつかの態様では、ワイヤレスデバイスは、通信システム用のアクセスデバイス(たとえば、Wi-Fiアクセスポイント)を備えることができる。そのようなアクセスデバイスは、たとえば、有線またはワイヤレスの通信リンクを介した、トランシーバ140を介した別のネットワーク(たとえば、インターネットまたはセルラーネットワークなどのワイドエリアネットワーク)への接続を提供することができる。したがって、アクセスデバイスは、別のデバイス(たとえば、Wi-Fi局)が他のネットワークまたは何らかの他の機能性にアクセスすることを可能にし得る。さらに、デバイスのうちの1つまたは両方はポータブルであってもよく、または場合によっては、相対的に非ポータブルであってもよいことを諒解されたい。
【００８８】
情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることが、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【００８９】
当業者は、本明細書に開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、エンジン、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることをさらに諒解されよう。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、エンジン、回路、およびステップについて、上記では概してそれらの機能性に関して説明した。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【００９０】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実施され得る。
【００９１】
本明細書に開示される実施形態に関連して説明される方法またはアルゴリズムのステップは、直接ハードウェアで具現化されるか、プロセッサによって実行されるソフトウェアで具現化されるか、またはその2つの組合せで具現化され得る。ソフトウェアは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、かつ記憶媒体に情報を書き込むことができるプロセッサに結合される。代替形態として、記憶媒体はプロセッサと一体にすることができる。プロセッサおよび記憶媒体はASIC中に存在し得る。ASICはユーザ端末内に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別構成要素として存在することができる。
【００９２】
1つまたは複数の例示的な実施形態では、説明される機能またはモジュールは、ハードウェア(たとえばハードウェア162)、ソフトウェア(たとえばソフトウェア165)、ファームウェア(たとえばファームウェア163)、またはそれらの任意の組合せにおいて実装され得る。コンピュータプログラム製品としてソフトウェアに実装された場合、機能またはモジュールは、1つまたは複数の命令またはコードとして、非一時的コンピュータ可読記録媒体を介して送信され得る。コンピュータ可読記録媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含み得る。記憶媒体は、コンピュータによってアクセス可能である任意の入手可能な媒体とすることができる。限定ではなく例として、そのような非一時的コンピュータ可読記録媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され、かつコンピュータによってアクセスされ得る、任意の他の媒体を含み得る。また、当然、あらゆる接続がコンピュータ可読記録媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー（登録商標）ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上記の組合せも非一時的コンピュータ可読記録媒体の範囲内に含めるべきである。
【００９３】
開示された実施形態の上記の説明は、任意の当業者が本発明を作製または使用することを可能にするために提供される。これらの実施形態への様々な修正が当業者には容易に明らかになり、本明細書で定義する一般原理は、本発明の趣旨または範囲を逸脱することなしに他の実施形態に適用され得る。したがって、本発明は、本明細書に示される実施形態に限定されるものではなく、本明細書において開示される原理および新規の特徴に矛盾しない最も広い範囲を与えられるべきである。
【符号の説明】
【００９４】
100  デバイス
111  動きセンサ
112  ディスプレイ
114  カメラ
140  トランシーバ
150  ユーザインターフェース
152  キーパッド
154  マイクロフォン
156  スピーカ
161  汎用プロセッサ
162  ハードウェア
163  ファームウェア
164  メモリ
165  ソフトウェア
166  画像プロセッサ
167  グラフィックスエンジン
168  ポーズプロセッサ
177  バス
【図１】
0006258953.tif 000007
【図２】
0006258953.tif 000008
【図３】
0006258953.tif 000009
【図４】
0006258953.tif 000010
【図５】
0006258953.tif 000011
【図６】
0006258953.tif 000012
【図７】
0006258953.tif 000013