(57)【特許請求の範囲】
【請求項１】
シーンに対する３Ｄカメラポーズを、該カメラから得た２Ｄ画像フレームの２Ｄ画像データから推定する方法であって、
（ａ）前記２Ｄ画像フレーム中に検出したデテクテド・２Ｄキーポイントと、トレーニングした分類ツリーまたはデータベースからのデテクテド・３Ｄ観測と、を備えたデテクテド・２Ｄ−３Ｄ点相関関係を提供し、
（ｂ）前記２Ｄ画像フレーム中に検出した２Ｄキーポイントと、前のフレームのうちの一つ中に検出した２Ｄキーポイントと、のマッチングからのトラックド・２Ｄキーポイントと、前記トラックド・２Ｄキーポイントからのトラックド３Ｄ観測と、を備えたトラックド・２Ｄ−３Ｄ点相関関係を提供し、
（ｃ）前記カメラが前記２Ｄ画像フレームおよび前のフレームのうちの一つを取り込んだときの並進および回転の差を備えた運動モデル観測を提供し、
（ｄ）前記２Ｄ画像フレーム中に検出したエッジを備えたエッジ観測を提供し、
（ｅ）前記デテクテド・２Ｄ−３Ｄ点相関関係と、前記トラックド・２Ｄ−３Ｄ点相関関係と、前記運動モデル観測と、前記エッジ観測と、に従って前記シーンに対する３Ｄカメラポーズの推定を行う、
ことを備え、
前記ポーズの推定のために、数値最小化において、取り込んだ画像中のエッジと、スクリーンに射影した３Ｄモデルにおけるライン／エッジと、の間の距離を最小化し、
前記エッジ観測の生成が、その他の観測の一つまたは複数のスレッドとは異なるスレッドにおいて行われることを特徴とする、方法。
【請求項２】
前記ポーズの推定のために、数値最小化において、前記デテクテド・２Ｄ−３Ｄ点相関関係の２Ｄピクセル再射影誤差を最小化することを特徴とする請求項１に記載の方法。
【請求項３】
前記ポーズの推定のために、数値最小化において、前記トラックド・２Ｄ−３Ｄ点相関関係の２Ｄピクセル再射影誤差を最小化することを特徴とする請求項１に記載の方法。
【請求項４】
前記ポーズの推定のために、数値最小化において、前記運動モデル観測に基づき、前のフレームに対する並進および回転を最小化することを特徴とする請求項１に記載の方法。
【請求項５】
前記観測が、互いに評価、制限および制御されることを特徴とする請求項１に記載の方法。
【請求項６】
前記全ての観測が、数値最小化に加えられることを特徴とする請求項１に記載の方法。
【請求項７】
Levenberg-Marquardtアルゴリズムが、数値最小化のために用いられることを特徴とする請求項６に記載の方法。
【請求項８】
ロバスト・エスティメータが適用されることを特徴とする請求項６に記載の方法。
【請求項９】
Tukeyエスティメータが用いられることを特徴とする請求項８に記載の方法。
【請求項１０】
前記２Ｄ画像データが、システムＲＡＭの循環メモリバッファに記憶されることを特徴とする請求項１に記載の方法。
【請求項１１】
前記２Ｄ画像データの取り込みが、異なるスレッドにおいて行われることを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像の分野に関し、特に、あるシーンに関するカメラのポーズを、カメラが取り込んだシーンの画像から得た情報と、シーンの既知の特徴の既定の位置と、から判定することに関する。
【背景技術】
【０００２】
１  問題
解決すべき問題は、リアルタイムに、あるいは記録された一連の画像に基づいて、物理的カメラのポーズを推定することである。このように物理的カメラのポーズを知ろうとする動機は、画像ストリームの中にバーチャルオブジェクトをリアルタイムに埋め込み、拡張リアリティ効果を得ることが可能となるためである。典型的な一式の装置としては、ユーザが身に付けるヘッド装着型のディスプレー（ＨＭＤ）およびカメラであり、カメラからの画像が該カメラのポーズひいてはＨＭＤのポーズを再構築するために利用される。このポーズは、バーチャルオブジェクトをＨＭＤのスクリーン上に（カメラ画像の上（ビデオ・シースルー）もしくは光学的に透けて見えるスクリーン上のいずれかに）正確に整合させるために利用され、これにより、カメラで撮影された現実のシーンには実際には存在しないバーチャルオブジェクト／エレメントが、ユーザを囲む現実の中の実在のオブジェクトのように現れる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
２  従来技術
上記の問題についての従来の技術は、カメラ画像からカメラポーズをリアルタイムに判定するために用いられる方法やアルゴリズムが遅く、かつ効率的でないことから、リアルタイムの利用に適しておらず、あるいは、得られた結果の不正確性、低いリピータビリティ、ドリフト、ポーズの回復の利用不可能、ポーズ推定の非ロバスト性、といった欠点があることが知られている。
2.1  環境の既知の３Ｄモデルを用いたトラッキング
トラッキングもしくはフレーム・トゥ・フレーム・トラッキングについては、4.23章に述べている。一般に、フレーム・トゥ・フレーム・トラッキング法は、ドリフトおよび（実際上は）ポーズ法の回復の利用不可能という欠点がある。カメラのごく僅かな動きでは、フレーム・トゥ・フレーム・トラッキングは良好に機能するが、現実のシナリオでは、ユーザがカメラを制御するので、これは、実際に適用することができない制約となる。
【０００４】
実際の世界では、限界のない処理能力や限界のないフレーム速度は利用不可能であるから、フレーム・トゥ・フレーム・トラッキングは、また、ルージング・トラックという欠点があることが知られている。カメラが過度に動くと、次のフレームは、ポーズ推定を実行すべく前のフレームにおける特徴点とマッチし得る十分な特徴点を含まないものとなり得る。カメラの早い動きは、新しいフレームにおけるぼけ（動きによるぼけ）を招き、新しいフレームと信頼性をもってマッチする前のフレームの特徴点の数が減少する結果となる。もしトラッキングがそのポーズを手離してしまうと、トラッキングの再初期化のために、ポーズの回復法を実行する必要がある。種々の方法が提案されかつ発表されているが、その大部分は、ポーズの回復およびトラッキングの再初期化のために、ユーザがカメラを特定の位置や方向へと移動ないし回転させる必要があるものである。仮に適当な回復法を実行したとしても、フレーム・トゥ・フレーム・トラッキングはドリフトの欠点があることが知られている。
【０００５】
US 2002/0191862 A1（US 6,765,569 B1）は、ユーザが特定の方向を見るつまり特定の方向にカメラを向けることによって、システムの利用を開始し、かつこのシステムが使用中の可能な作業領域を拡張するようにした方法を開示している。この開示された方法は、フレーム・トゥ・フレーム・トラッキングに類似しているが、先の既知の３Ｄモデルを利用しない方法であり、つまり、特徴点の３Ｄ位置を探索するために後続のフレームにおける特徴点の位置の三角法に依存している。この方法は、使用中に特徴点の３Ｄ情報を記憶し、かつ特徴点が検出されるたびに、三角法に基づいて、３Ｄ位置を修正（refine）していく。この３Ｄ位置の修正が十分なレベルに達したら、特徴点は校正されたものとみなされる。この方法は、ドリフトの問題を多少は軽減するが、実際には、開始点から大きく動いたときに、まだ大きなドリフトが残る。新しい特徴点の正確な判定は、前の３Ｄ特徴点位置の３Ｄ位置の正確な推定に依存し、これはさらに、前のカメラポーズの正確な推定に依存している。
【０００６】
上記のような提案された方法においては、常に、演算／推定のたびに多少の数値的および数学的な誤差が加わる、ということがよく知られている。このことは、開始点から遠く離れた特徴点はドリフトのために大きな誤差を有する、ということを意味する。さらに、もし単一の特徴点の３Ｄ位置が「校正された」ものとみなされ、かつこの位置が実際には不良であった場合には、特徴点のその後のトラッキングおよび校正は、より大きな誤差の影響を受ける。
【０００７】
さらに、特徴点の３Ｄ位置の正確な推定および修正を確実に行うために、ユーザは、特定の方法で動くことを要求され、実用上は、面倒でかつ扱いが困難なシステムとなる。US 6,765,569 B1は、画像中に十分な特徴点を認識できなかった場合にポーズを回復する方法の開示を含んでいるが、この方法は、満足な推定がなされた特徴点が存在する方向をユーザに見させ、これらの点を「校正した」特徴点とみなしうるようにする、ということにまだ依存している。この方法は、カメラで観測し得るような環境の３Ｄモデルは使用せず、このことは、後続のフレームで三角法を実行しつつ特徴点の３Ｄ位置を演算することを意味する。
2.2  特徴点の局所的な検出およびマッチング（デテクション）
ドリフトおよびポーズの喪失という問題を除去する良いやり方は、システムの実行前に、環境／オブジェクト／シーンの特徴点に基づくシステムのトレーニングを行う方法を用いることである。３Ｄ位置とともにトレーニング／分類の情報を記憶することで、現在のフレームで検出された特徴点を、データベースに保存されたものあるいは分類装置を通して分類されたものとリアルタイムにマッチングすることができるようになる。十分な数の特徴点がマッチすれば、幾何学的計算を介して物理的カメラポーズの推定が可能である。数値最小化を通して、さらなる修正が得られる。これは、前のフレームの推定の結果に依存することなく、単一のフレームの各々ごとに実行できる。実際には、これは、「ポーズの回復」が単一のフレームの各々で実行されることを意味する。
【０００８】
十分な数の特徴点がキーポイントデータベースの内容に対して分類されあるいはマッチしている限りは、デテクションではドリフトおよびポーズの喪失は問題とならない。しかしながら、この種の方法は、偽デテクションの問題があることが知られており、つまり、リアルタイムに検出された特徴点が、データベースに記憶された特徴点に対し、偽の分類あるい偽のマッチとなる。カメラポーズの推定のいくつかの方法では、ある程度の数の偽マッチ（アウトライアーとも呼ばれる）を処理することができるが、いくつかのアウトライアーがあっただけでも、推定ポーズの最終的な結果は、一般にリピータビリティが低いものとなる。このようなデテクション法の通常のケースでは、少なくとも１５個のアウトライアーが存在する。これでは、カメラが完全に静止している場合であっても、一般に、低いリピータビリティとなる。この問題は、拡張リアリティシステムにおいては、バーチャルオブジェクトが所定位置に維持されず、周囲でバウンドしたり震えたりするように現れる、という影響を与える。
【０００９】
US 2006/0233423 A1は、特徴点をリアルタイムにデータベースとマッチングする方法、および、校正／トレーニングした特徴点についての関連情報をトレーニング／記憶する方法を示唆している。上述した記載との関係では、この示唆されている方法は、デテクション法であると考えられる。
【００１０】
V. Lepetit、P. LaggerおよびP. Fuaによる「Randomized Trees for Real-Time Keypoint Recognition」（http://cvlab.epfl.ch/reseach/augm/detect.php）は、単一のフレーム内でオブジェクトを検出するために、上記US 2006/0233423 A1に開示されたものと類似しかつこれよりも早期の方法を開示している。データベースを用いる代わりに、「分類ツリー」（後述の4.13章を参照）を用いることが提案されている。分類ツリーは、トレーニングフェーズにおいて構築され、実行時に各キーポイントが「ドロップダウン」する複数のツリーであって、最終的にキーポイントがあるスコア（信頼度）とマッチする。この方法であっても、デテクション法の長所と短所とを示す。
2.3  記録した画像ストリーム
記録した画像ストリームに基づいて物理的カメラのポーズを推定する他の方法およびアルゴリズムが多数公開され、かつ特許されている。画像ストリームに基づく物理的カメラポーズの推定とは、「現在」のフレームのカメラポーズを算出し得るようにするために、ストリームの全てないしいくつかの画像の「早送り」および「巻き戻し」を適時になし得ることが必要であることを意味している。映画の製造においては、この種のいくつかの方法が特許されかつ公開されているが、上述したように、かかる分野においては、その方法をリアルタイムに実行するのではなく、また満足のいく結果を得るために、完全な画像ストリームに依存している。これらの使用は、リアルタイムの拡張リアリティを意図したものではなく、「ハリウッド映画」の後工程的な画像効果を意図している。
【課題を解決するための手段】
【００１１】
3  本発明
本発明の装置および方法は、３Ｄモデルを用いたフレーム・トゥ・フレーム・トラッキングの長所と局所的な特徴点の検出およびマッチングの長所とを組み合わせ、満足のいく精度で物理的カメラのポーズの推定を得るようにしたものである。ドリフトや偽マッチによるポーズの喪失ならびに震えといった問題は、デテクションの長所とトラッキングの長所とを組み合わせた革新的かつユニークな方法および装置によって解消される。デテクションとトラッキングとを組み合わせることで、リアルタイムの利用には遅すぎる解法を実行するというリスクが回避されるものであり、本発明の装置および方法では、特にマルチＣＰＵシステムにおいて、早くかつ効率的な実行を確実なものとするために、サブタスクを複数のスレッドおよびスレッド・タスクに分割するというユニークな機会を提供する。今日のコンピュータでは、マルチＣＰＵやデュアルコアＣＰＵのテクノロジーが広く利用可能でかつ手頃なものとなっており、これは、本発明によって提供される解法の実行に非常に適している。本発明によって提供される解法のいくつかの重要な利点は、ステップ毎に数字を付すと、下記の通りである。
【００１２】
１．局所的な特徴点の検出およびマッチングを通したロバストな推定。これは、前のフレームでの推定に依存しない各フレーム毎の「ポーズの回復」を意味する。本発明により提供される解法は、２００５年６月のカルフォルニア州サンディエゴでの「Conference on Computer Vision and Pattern Recognition」におけるV. Lepetit、P. LaggerおよびP. Fuaによる「Randomized Trees for Real-Time Keypoint Recognition」に開示された方法を用いることにより、有利に実行される。
【００１３】
２．フレーム・トゥ・フレーム・トラッキングを通した精度およびリピータビリティが、前に推定したポーズと環境の３Ｄモデルとの組み合わせを用いることで得られる。
【００１４】
本発明により提供される解法では、さらに、一般的なフレーム・トゥ・フレーム・トラッキングに新規なアイデアを導入しており、最後に正常に（successfully）算出されたポーズが記憶され、かつトラッキングに用いられる。これは、もし前のフレームにおいてカメラポーズが正常に算出されなかったとしても、本発明による解法では、最後の正常なポーズに基づいてトラッキングの実行を試みる、ということを意味する。これにより、本発明による解法では、上記ステップ１に示すデテクション法が仮に失敗した場合や直前のいくつかのフレームにおいて最終的なポーズが役に立たないような場合であっても、ポーズの推定を再初期化することができる。ただし、この新規なアイデアは、最後のポーズの推定が正常になされたところに近似した位置／向きに、ユーザが戻ることを必要とする。
【００１５】
３．カメラポーズの推定のための数値最小化への入力パラメータに運動モデル観測を含むことによって、精度およびリピータビリティがさらに向上する。
【００１６】
４．「ロバスト・エスティメータ（estimator）」を通したロバストな演算により、アウトライアーの影響が軽減する。我々はTukeyエスティメータを用いるが、他のものも使用できる。
【００１７】
５．比類のない速度および性能が、我々のユニークな並行処理アルゴリズムによって得られる。
【図面の簡単な説明】
【００１８】
【図１】コンピュータのメインループの説明図。
【図２】本発明が組み込まれた装置のブロック図。
【図３】結合モードの説明図。
【図４】分割モードの説明図。
【図５】スレッドの説明図。
【図６】本発明の実施に適合したコンピュータの説明図。
【図７】Ｐ３Ｐの説明図。
【発明を実施するための形態】
【００１９】
3.1  システムの概説
図６は、本発明の実施に適合したものとして、デュアルコアの中央処理ユニット（ＣＰＵ）、ランダムアクセスメモリ（ＲＡＭ）グラフィックカードおよびハードドライブ（ＨＤＤ）が、マザーボード上に取り付けられてなる標準的なコンピュータを示している。さらに、カメラをコンピュータに接続するためのデータインターフェースがある。カメラは、興味のあるシーンのような現実環境の画像を取り込むために、レンズを有する。この画像は、センサ、通常はＣＣＤセンサないしＣＭＯＳセンサ、の上でデジタル化される。通常、画像はカメラの内部メモリに一旦記憶され、次いで、接続Ａを通してコンピュータに転送されるが、カメラインターフェースがこれを解釈し、かつマザーボードと通信して、システムＲＡＭの目的に応じて配置された領域へと送る。
【００２０】
ＣＰＵは、典型的には、IntelのCore 2 Duoとすることができる。我々のシステムは、シングルコアＣＰＵを用いることもできるが、その場合の性能は低下するであろう。ＲＡＭは、典型的には、標準の５１２MBのDDR2 SDRAMである。ハードドライブは、典型的には、標準の４０GB SATA 7200 rpmのハードドライブである。データインターフェースは、典型的には、USB 2.0、FireWire IEEE 1394、ワイヤレスLAN（WLAN）等とすることができる。接続Ａは、データインターフェースに応じて、有線もしくは無線となり得る。
【００２１】
ソフトウェアは、マシン可読コードでもってハードドライブ（ＨＤＤ）に記憶されており、実行開始時にＲＡＭに読み込まれる。画像はカメラを用いて取り込まれ、接続Ａを介して、ＲＡＭのメモリ領域に転送される。次いで、このＲＡＭに記憶した画像に対し、１つあるいは複数のＣＰＵないしＣＰＵコアを用いて、アルゴリズムが実行される。このアルゴリズムの結果となる物理的カメラの推定ポーズは、取り込んだ画像の上にバーチャルオブジェクトを現実環境に正しく整合した形で描くために用いられる。そして、この画像および／またはバーチャルオブジェクトは、通常はグラフィックカード内にレンダリングされ、その結果がスクリーン上に表示される。スクリーンとしては、透明スクリーン（画像がミラー、ガラス等に投影される）あるいは不透明スクリーンとすることができる。不透明スクリーンとする場合には、拡張リアリティ効果を得るために、バーチャルオブジェクトをレンダリングする前に、カメラで取り込んだ画像を背景として描く必要がある。スクリーンは、カメラを一体化したヘッド装着型ディスプレーとすることができ、カメラは該ヘッド装着型ディスプレーの前方に取り付けられる。カメラを前方に備えた他のディスプレーとしては、ＰＤＡや携帯電話ディスプレー（将来的には携帯電話の内部コンピュータを処理に利用し得る可能性もある）、タブレットＰＣディスプレー、等がある。
【００２２】
最近のパワフルなグラフィックカードは、ＧＰＵ（グラフィカル処理ユニット）上で数学的機能を実行することもでき、このことは、我々のシステムにおけるタスクおよびアルゴリズムを、ＣＰＵ／コアに加えてＧＰＵ上でも実行し得ることを意味している。Ageia PhysXのような物理カードであっても、我々のソフトウェアのタスクを実行するために利用し得る。
3.2  ソフトウェアの実現（implementation）
本発明の装置および方法（本章では一部、アルゴリズムと記す）は、基本的な数学的方法が利用可能なあらゆる種類のコンピュータソフトウェア環境において有利に実現することができる。もし基本的な数学的方法が利用可能でなければ、最初から開発（scratch）することができる。MATLAB、FORTRAN、C/C++、C#などが適したプログラム言語である。ソフトウェアは、Linuxオペレーティングシステム、Windows、Unix、Xbox、Playstation、Symbian等で動作するコンピュータ上で実現することができる。
【００２３】
必要な数学的方法としては、特に（但し、これらには限定されないが）、数値最小化と、フィルタ、エッジ検出、コーナ検出等の基本的なコンピュータビジョンアルゴリズムと、行列操作の方法（行列の反転、転置、乗算、等）と、がある。
3.3  メインループの概説
本発明を実現する例示的なシステム、例えば図１に示したようなコンピュータにおいて、そのメインループとしては、実際の画像をカメラから抽出するとともにシステムＲＡＭの循環メモリバッファに記憶し、カメラポーズを推定し、かつ最終的に結果をスクリーン上にレンダリングする。
【００２４】
最初のフレームの取り込みがなされかつポーズ推定タスクが開始すると、直ちに、新しいフレームを取り込むスレッドＡが開始する。最初のポーズ推定が完了すると、新フレームが既に並行して取り込まれている場合には、直ちに、新フレームにおけるカメラポーズの推定の開始が可能である。最初のレンダリングが完了すると、新フレームおよびカメラポーズがスレッドＡ，Ｂから利用可能である場合には、直ちに、新しいレンダリングが開始可能である。これは、スレッドＡがスレッドＢ，Ｃと並行して働き、新規なフレームを取り出し、スレッドＢが、前のタスクが完了するや否やこの新規なフレームを利用することができる、ということを意味する。スレッドＢも同様であり、このスレッドＢはスレッドＣと並行して働き、新規なポーズ推定を行い、スレッドＣは、前のレンダリングが完了するや否やこの新規なポーズ推定を利用することができる。このような方式は、複数のＣＰＵ、ＧＰＵあるいはマルチコアＣＰＵを備えたコンピュータを利用した非常に効率的な方法を提供する。結果として、フレーム速度および実行時間が実質的に速くなる。スレッドＢは、複数の並行したタスクに分割され、これにより、物理的カメラポーズの推定が非常に効率よく実現される。スレッドＢについての詳細な情報は3.4章を参照されたい。
【００２５】
開始時に最初の画像／フレームが取り込まれかつＲＡＭの保存先となるメモリ領域に転送された後に、このフレームにおける物理的カメラポーズの推定が可能である。ポーズ推定が達成された後に、カメラ画像およびポーズは、拡張リアリティ効果を得るべく最初の画像中にバーチャルオブジェクトをレンダリングするために利用できる。
【００２６】
スレッドＡ（ＴＡ）、スレッドＢ（ＴＢ）およびスレッドＣ（ＴＣ）は、全て、１つあるいは複数のシングルコアＣＰＵ、１つあるいは複数のマルチコアＣＰＵ、および／または、１つあるいは複数のＧＰＵ、あるいは他の特化したコンピューティングユニット、の上で動作する。これらのタスクは、特定のＣＰＵ／コア上で動作するように特に設定することもでき、また、オペレーティングシステム（ＯＳ）によってスレッドタスクを実行するＣＰＵが自動的に定まるものであってもよい。
【００２７】
本発明の一実施例が組み込まれた装置の例が、図２にブロック図として模式的に描かれている。
【００２８】
この装置は、シーン２２０の２次元（２Ｄ）画像を示す画像フレームの画像データ２３１をフレームグラバー２３０から受ける入力（通常は上記画像フレームはカメラ２１０によって取り込まれ、かつフレームグラバーによって取得される）と、カメラデータソース２４０から、カメラレンズデータ、主点、等のカメラデータＣを受ける入力と、シーンモデルデータソース２６０から３次元（３Ｄ）シーンモデルデータＭを受ける入力と、シーンデータソース２５０から予記録シーンデータ２５１（例えば予め記録したシーン画像の処理により得た３Ｄ特徴点データ等）を受ける入力と、を備える。この装置は、上記の中の１つあるいは複数の入力に基づいて演算を行い、カメラによって撮像されているシーンに関するカメラの幾何学的３Ｄポーズの現在の推定１８１を出力するように構成されている。有利には、本装置の幾何学的３Ｄカメラポーズ・エスティメータ（estimator）は、幾何学的３Ｄカメラポーズ推定の「信頼性のレベル」を判定するように構成され、幾何学的３Ｄカメラポーズ推定が算出されたところの信頼性のレベルを示す３Ｄポーズスコア値を出力するように構成し得る。
【００２９】
この装置は、さらに、フレームグラバー２３０から画像データ２３１を受け取るとともにこれを処理するように構成された候補２Ｄキーポイント・デテクター１１０を備えており、この候補２Ｄキーポイント・デテクターは、３Ｄ位置が既知であると考えられるキーポイントを示す特定の画像特徴部を検出し、この検出した特定の画像特徴部を示すデータを候補２Ｄキーポイント１１１として出力するように構成されている。この特定の特徴部の例としては、オブジェクトが特異な色で出現するようなシーンの特徴部、あるいは明瞭に識別可能な単一もしくは１組の幾何学的特徴、例えばコーナやエッジ、を示すシーンの一部、である。
【００３０】
この装置は、さらに、候補２Ｄキーポイント１１１および予記録シーンデータ２５１を受け取るデテクテド・３Ｄ観測デテクター１２０を備えており、このデテクテド・３Ｄ観測デテクターは、予記録シーンデータ中に対応する３Ｄ特徴点を有すると考えられる候補２Ｄキーポイントの各々についてのデテクテド・３Ｄ観測１２１を出力するように構成されている。上記デテクテド・３Ｄ観測デテクターは、さらに、デテクテド・３Ｄ観測の「信頼性のレベル」を判定するように構成され、デテクテド・３Ｄ観測が判定されたところの信頼性のレベルの指標としてスコア値を出力するように構成し得る。
【００３１】
この装置は、さらに、デテクテド・３Ｄ観測１２１およびカメラデータＣを受け取るデテクテド・３Ｄカメラポーズ・エスティメータ（estimator）１３０を備えており、このデテクテド・３Ｄカメラポーズ・エスティメータは、デテクテド・３Ｄカメラポーズ推定１３１を演算によって決定し、かつ出力するように構成されている。有利には、このデテクテド・３Ｄカメラポーズ・エスティメータは、デテクテド・３Ｄカメラポーズ推定の「信頼性のレベル」を判定するように構成され、デテクテド・３Ｄカメラポーズ推定が演算されたところの信頼性のレベルの指標となるポーズスコア値を出力するように構成し得る。
【００３２】
この装置は、さらに、グラブド・フレーム画像データ２３１および候補２Ｄキーポイント１１１を記憶するための第１ストレージ手段１４０を備えており、この第１ストレージ手段１４０は、シーンの２次元（２Ｄ）画像を示す画像フレームのフレームグラバー画像データを受け取るように構成されたものであって、カメラの幾何学的ポーズについての現在の推定出力１８１を検出し、これに応答して、前の幾何学的カメラポーズ推定が基礎としたストアド・グラブド・フレーム画像データ１４１およびストアド・候補２Ｄキーポイント１４２を出力するように構成されている。
【００３３】
この装置は、さらに、カメラの幾何学的ポーズについての前の推定１６１を記憶するとともに出力する第２ストレージ手段１６０を備えており、この前の推定は、シーンに関するカメラの幾何学的ポーズについての現在の推定の出力１８１よりも前に装置の出力に表されたものである。
【００３４】
この装置は、さらに、トラックド・３Ｄ観測デテクター１５０を備えており、このトラックド・３Ｄ観測デテクター１５０は、カメラの幾何学的ポーズについてのストアド・前推定１４１と、候補２Ｄキーポイント１１１と、前の幾何学的カメラポーズ推定が基礎としたストアド・グラブド・フレーム１４１および候補２Ｄキーポイント１４２と、カメラデータＣと、３次元（３Ｄ）シーンモデルデータＭと、を受け取るように構成されている。このトラックド・３Ｄ観測デテクターは、前の幾何学的カメラポーズ推定に存在する対応する３Ｄ特徴部を有するものと考えられる候補２Ｄキーポイントの各々についてトラックド・３Ｄ観測１５１を出力するように構成されている。上記トラックド・３Ｄ観測デテクターは、さらに、トラックド・３Ｄ観測の「信頼性のレベル」を判定するように構成され、トラックド・３Ｄ観測が判定されたところの信頼性のレベルの指標となるスコア値を出力するように構成し得る。
【００３５】
この装置は、さらに、３Ｄカメラポーズ推定セレクタ１７０を備え、この３Ｄカメラポーズ推定セレクタ１７０は、記憶した前の幾何学的３Ｄカメラポーズ推定１６１とデテクテド・３Ｄカメラポーズ推定１３１とをそれぞれ受け取る複数の入力を有するとともに、選択した３Ｄカメラポーズ推定１７１を提供する１つの出力を有する。有利には、この３Ｄカメラポーズ推定セレクタは、入力の各々が受け取った３Ｄカメラポーズ推定とともに表されたスコア値に応答して、その出力に、選択後３Ｄカメラポーズ推定として、入力が受け取った３Ｄポーズ推定の中の一方、あるいは、両者を結合したものを提供する。
【００３６】
この装置は、さらに、幾何学的３Ｄカメラポーズ・エスティメータ（estimator）１８０を備え、この幾何学的３Ｄカメラポーズ・エスティメータ１８０は、選択後３Ｄカメラポーズ推定１７１と、デテクテド・３Ｄ観測１２１と、トラックド・３Ｄ観測１５１と、カメラデータＣと、を受け取るように構成されているとともに、現在の幾何学的３Ｄカメラポーズ推定１８１を演算によって決定し、かつ出力するように構成されている。有利には、上記幾何学的３Ｄカメラポーズ・エスティメータは、現在の幾何学的３Ｄカメラポーズ推定の「信頼性のレベル」を判定するように構成され、現在の幾何学的３Ｄカメラポーズ推定が演算されたところの信頼性のレベルの指標となるポーズスコア値を出力するように構成し得る。
3.4  物理的カメラポーズ推定（スレッドＢ）
本発明のコンピュータによる有利な実施は、下記の通りである。
【００３７】
本発明のコンピュータで実行する物理的カメラポーズ推定方法（ここでは物理的カメラポーズ推定アルゴリズムとも呼ぶ）は、有利には、２つのモードの中の１つとして実行されるものであり、スタートアップ時に（Ａ）「結合」モードと（Ｂ）「分割」モードから選択される。スレッドＢは、そのタスクを、別のスレッドやスレッドタスクに分配し、複数のシングルコアＣＰＵやＧＰＵ、１つあるいは複数のマルチコアＣＰＵやＧＰＵ、を備えてなるコンピュータにおける実行時間性能を最適化する。
【００３８】
上記「結合」モードでは、デテクションおよびトラッキングの一部を並行して実行し、その後、結果を結合かつ処理して、最終的な数値最適化を行う。上記「分割」モードでは、デテクションおよびトラッキングをより切り離して実行し、最終的な結果を最終カメラポーズとして分析かつ処理する。本発明における「結合」モードおよび「分割」モードの実行は、図３および図４にそれぞれ図示されている。
結合モード（Ａ）と分割モード（Ｂ）の共通事項
3.4.1.1  回転（Rotation）および並進（Translation）のパラメータ化（外部パラメータ）
我々のPROSACの利用における再射影誤差（およびヤコビ行列）の演算および数値最小化（Levenberg-Marquardt）方法の際には、回転が、「exponential map」を用いてパラメータ化される。推定の前および後における回転行列と「exponential map」との間の相互の変換に、Rodriguesの公式が用いられる。
【００３９】
数値最小化の間、状態ベクトルは、６要素のベクトルであり、「exponential map」および並進ベクトルとしての回転および並進を含む。
【００４０】
「exponential map」における特異点を回避するために、我々は、「exponential map」（ベクトル）||w||の長さが、２πｎ（但し、πは３．１４、ｎは０よりも大きい整数）に近いかどうかチェックする。もし長さが２πｎに近い場合は、これを「（１−２π／||w||）w」（但し、wはexponential mapである）に置き換えることができる。（F. Sebastian Grassia「Practical parameterization of rotations using the exponential map」 Journal of Graphics Tools, 3(3):29-48, 1998年  より）
3.4.1.2  キーポイントの検出
カメラからの新鮮な生の画像に対し、可能性のある特徴点／キーポイントの検索がなされる。これらのキーポイントは、さらなるデテクションおよびトラッキングに用いるための候補点となる。添付の図に示すように、キーポイントの検出は、トラッキングおよびデテクションの双方に対し演算される。
3.4.1.3  レンズ歪曲の補償
カメラから取り込んだ画像は多少のレンズ歪曲を含む。我々のシステムにおいて、我々は、カメラおよびレンズの予校正を通して得た内部カメラパラメータにおけるラジアル方向歪曲および接線方向歪曲を補償する。
【００４１】
本発明の有利な実施例において内部カメラパラメータを補償しかつパラメータ化するためには、Z. Zhangによる「A flexible new technique for camera calibration」IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330-1334, 2000年  に記載されている方法が用いられる。
【００４２】
レンズ歪曲の補償においては、入力画像の全体を歪曲除去してもよく、あるいは、検出されるキーポイントだけ歪曲除去してもよい。画像全体を歪曲除去するのは、時間が掛かるタスクであり、検出されるキーポイントを歪曲除去する方がより効率的である。
【００４３】
もし歪曲したカメラ画像をバーチャルグラフィックとオーバーレイするために使用したとすると、バーチャルグラフィックは背景画像と正しく整合しない。これを補償するためには、バーチャルグラフィックを内部カメラパラメータに従って歪曲させる必要がある。もし、ビデオ・シースルー式の装置としてカメラ画像を背景に用いない場合には、このことは問題とはならない。
3.4.1.4  初期ポーズの推定
このタスクは、双方のモードにおいて実行され、キーポイントとデータベースとのマッチングに基づくラフな初期ポーズの推定（デテクション）からなる。
【００４４】
初期ポーズの推定の間に用いられる位置および方向のパラメータ化については、3.4.1.1章を参照されたい。
【００４５】
初期ポーズの推定のステップは次の通りである。
【００４６】
１．画像中に検出したキーポイントを、２Ｄ−３Ｄ点相関関係を得るために、分類する。有利には、本発明では、分類およびトレーニングのためのアルゴリズムとして、V. Lepetit、P. LaggerおよびP. Fuaによる「Randomized Trees for Real-Time Keypoint Recognition」という刊行物に示されているアルゴリズムを用いる。これ以外の特徴点の分類／デテクション法にも適当なものがあり得る。
【００４７】
２．所定の閾値（例えば０．５）を超えるスコアでもってマッチするものが４つ以上存在するか否か判定し、
ａ．ＹＥＳであれば、PROSACアルゴリズムを実行し（4.14章を参照）、
ｉ．PROSACからの結果が満足できるものか判定して、
１．ＹＥＳであれば、成功として終了し、
２．ＮＯであれば、失敗として終了し、
ｂ．ＮＯであれば、失敗として終了する。
【００４８】
この初期のラフなポーズは、最小化アルゴリズムが包括的な最小値を確実に見つけるために、数値最小化の開始点として用いられる。間違った／悪い初期ポーズを用いると、最小化は、最終的に、局部的な最小値、換言すれば不正解な解、となる。初期ポーズを包括的な最小値の近くに得るためには、要求される再射影誤差およびラフ初期ポーズの推定におけるインライアーの最小数に、適切な制約条件を設定することが重要である。最大の再射影誤差は、５ピクセルから２５ピクセルの間とすべきである。インライアーの最小数は、１５〜４０とすべきである。
【００４９】
我々の実施においては、我々はまた、インライアーの最小数を、観測の総個数（インライアーとアウトライアーの双方）のパーセンテージとして毎回演算するように、指定することができる余地を与えている。これにより、多数の観測が存在する場合に、アルゴリズムが自動的に要求に適合できるものとなる。このことの危険性は、多数のアウトライアーがある場合である。もしインライアーの最小パーセンテージが過度に高いと、PROSACアルゴリズムは、十分なインライアーでもってポーズを演算することに失敗してしまう。
3.4.1.5  数値最小化
本発明のさらなる有利な実施例においては、Levenberg-Marquardtアルゴリズムが数値最小化のために用いられるが、他の方法も利用可能である。
【００５０】
数値最小化の間に用いられる位置および方向のパラメータ化については、3.4.1.1を参照されたい。再射影誤差の合計が、数値最小化の間に最小化される。4.14章に記載したPROSAC法のように、数値最小化におけるアウトライアーを無視するために、ロバスト・エスティメータもまた再射影誤差の計算の間に適用することができる。有利には、本発明は、Tukeyエスティメータを用いるが、他のロバスト・エスティメータを用いることもできる。さらに、現在および前のフレームにおけるポーズの間での並進および回転の最小化のために、運動モデル観測が用いられる。
【００５１】
上記の記述は、モードＡおよびモードＢ双方の数値最小化サブタスクについて該当する。
3.4.2  結合モード（Ａ）
この章では、図３を参照して、結合モードについて説明する。
【００５２】
一般に、「新フレーム」は歪曲のないものと仮定され、つまり、カメラ／レンズの歪曲が補償されていることを前提とする。
【００５３】
２Ｄキーポイントのみが歪曲除去される場合には、図は多少変更する必要がある。しかし、コンピュータビジョンの技術者には、どこで２Ｄキーポイントの歪曲除去を適用するか認識することが可能である、と思われる。
【００５４】
「２Ｄ−３Ｄ相関関係の結合および予備処理」および「運動モデル観測の評価および準備」の２つのプロシージャは、互いに独立しており、さらなる性能最適化のために２つの別のスレッドにおいて、並行して実行されるように設定可能なものである。しかし、この２つのプロシージャは特に時間の掛かるものではなく、これらのタスクを別々のスレッドに分割するためのオーバヘッドは、タスクを並行に処理することにより得られる向上代と同等かそれ以上となり得る。
3.4.2.1  キーポイントの検出、デテクションおよびトラッキングのスレッドの開始
キーポイントが検出された後に、結合したスレッドＡ（ＣＴＡ）が結合したスレッドＣ（ＣＴＣ）と並行して開始する。
【００５５】
ＣＴＡは下記を実行する。
【００５６】
１．２Ｄ−３Ｄ点相関関係を得るために、Lepetit法を用いて、現在の画像中に検出したキーポイントを、予トレーニングした分類ツリー／データベースで分類する。
【００５７】
２．3.4.1.4章に記載した方法を用いて、２Ｄ−３Ｄ点相関関係に基づき初期ポーズを推定する。
【００５８】
ＣＴＣは、前に算出に成功したポーズ（最後の良ポーズ）が存在するのであれば、下記を実行する。
【００５９】
１．現在の画像中に検出したキーポイントを、「最後の良ポーズ」中に検出したキーポイントとマッチングする。
【００６０】
平均輝度閾値を適用することで、平均輝度の差が所定の閾値未満のキーポイント間でのみマッチングを許容するようにすることができる。低い値の設定（例えば可能性のある２５５の中の１０）により、類似した平均輝度を有するキーポイントのみが許容される。これにより、キーポイントのマッチングの信頼性が向上する。
【００６１】
２．対応マッチ・スコアが所定の閾値よりも高い全てのキーポイントについて、レイ・トレーシングを実行する。このレイ・トレーシングでは、前のフレームのカメラポーズと、３Ｄモデルと、内部カメラパラメータと、を用いて、マッチしたキーポイントの３Ｄ位置を演算する（４章のレイ・トレーシングの説明を参照されたい）。
【００６２】
我々のシステムにおいて、ＣＴＡからの「デテクション観測」のみに依存する場合と、ＣＴＣからの「トラッキング観測」にも依存する場合と、をシステムに自動的に選択させるための重要な特徴は、下記の通りである。
【００６３】
トラッキング・スレッド（ＣＴＣ）におけるキーポイントマッチングの実行においては、フレーム間の２Ｄキーポイント位置の最大差異を設定することが可能である。これにより、２つのフレームで互いに近接しているか否かに依存してマッチングされる、可能性のあるキーポイントを限定することができる。ｕ方向およびｖ方向の最大差異を低い数値、例えば１０ピクセル（但し、システムが１秒当たりに２０〜３０フレームを実行する場合）に設定することで、我々のシステムは、カメラが素早く動くときに、自動的に、デテクションによる観測のみに依存するようになる。カメラがゆっくりと動くようになると、直ちに、より多数のマッチングが許容されることから、フレーム・トゥ・フレーム・トラッキングからの観測が数値最小化により強く影響するようになる。このことは、我々のシステムの他の特徴と組み合わされて、システムを、速いカメラの動きに対しロバストなものとし、かつ同時に、カメラの動きが小さいときには、高いリピータビリティを有する正確なものとしている。
3.4.2.2  ２Ｄ−３Ｄ相関関係の結合および予備処理
ＣＴＡおよびＣＴＣからの２つのセットの相関関係ないし観測は、２つの異なるタイプのスコアを有する。デテクション・セット（ＣＴＡ）は、予トレーニングしたデータベースに対するマッチング／分類により与えられるスコアを有するが、トラッキング・セット（ＣＴＣ）は、現在のフレームにおけるキーポイントが前のフレームに対しどの程度良好にマッチするかを示す対応マッチ・スコアを有する。これらの２つのタイプの観測スコアを制御された形で確実に取り扱うために、デテクション観測（ＣＴＡ）がトラッキング観測（ＣＴＣ）と等しく「重要」になるように、全てのスコアが正規化される。
【００６４】
さらに、正規化したスコアに基づき、正規化したスコアにスカラを乗算することで、２つのタイプの観測の一方を「増進」もしくは「低下」させることが可能であり、これにより、選択されたタイプの観測がより「重要」にあるいはより「重要」ではないものとなる。
【００６５】
最後に、一方のセットもしくは他方のセットの観測の数の最小数および最大数を設定するフィルタリングが実行される。一般に、デテクション・セット（ＣＴＡ）から最大のｎ個の観測を許容したり、トラッキング・セット（ＣＴＣ）から最大のｋ個の観測を許容したりすることは、決してしないことが望ましい。これは、２つのタイプの観測の「重要性」をさらに制御するためになされる。
【００６６】
観測のタイプを互いに評価および制限／制御した後に、全ての観測が数値最小化に加えられる。もし、前のフレームでのポーズの演算が成功していなかった場合には、トラッキング・タスク（ＣＴＣ）は実行されておらず、ＣＴＡからのデテクション観測のみが加えられる。
3.4.2.3  運動モデル観測の評価および比較
運動モデル観測が用意される。この運動モデル観測は、前のフレームにおいてポーズが推定されていた場合に、現在のフレームと前のフレームとにおけるカメラポーズのｘ，ｙ，ｚ軸に沿った並進およびこれらを中心とした回転の差からなる。これらの観測は、数値最小化が、ｘ，ｙ，ｚ軸に沿った並進およびこれらを中心とした回転を最小化するように作用し、つまり、前のポーズに基づくポーズの結果を抑制しようとする。
【００６７】
運動モデルは、また、新フレームでの運動を予測するアドバンス型予測運動モデルともなる。
【００６８】
運動モデル観測の評価は、所定の値を設定し、この値は、これらの観測がどの程度数値最小化に影響するか、ということを左右する。
【００６９】
再射影誤差に関しては、運動モデル観測に対しやはりロバスト・エスティメータ（estimator）が用いられる。これは、例えば、２つの連続したフレームの間でのｘ軸に沿った非常に大きな運動がアウトライアー観測である、とみなされることを意味する。インライアー／アウトライアーを決定するための閾値は、システム全体のフレーム速度（カメラがどれくらい速く動くことが予想されるか、を含めて）に応じて設定される。
3.4.2.4  数値最小化の実行
初期の推定ポーズ（3.4.1.4章を参照）が、数値最小化の開始点として用いられ、これにより、最終結果が、確実に、実際の／正確な包括的な解となるようにしている。ピクセルにおける２Ｄ再射影誤差は、２Ｄ−３Ｄ点相関関係のために最小化され、運動モデル観測は、できるだけ最良のポーズを得るために最小化される。２Ｄ−３Ｄ点相関関係および運動モデル観測の双方に対し、ロバスト・エスティメータが実行され、アウトライアーに対し確実にロバストなものとしている。
【００７０】
最小化は、制限された数の繰り返しだけ実行され、あるいは、満足できる結果が得られるまで繰り返し実行される。
3.4.2.5  現在のカメラポーズ、フレーム、および２Ｄキーポイントの記憶保持
次のフレームへの準備を行うための後処理は下記の通りである。
【００７１】
インライアーの数を最小とする要求に基づいて、ポーズの推定が成功したか？
ａ．ＹＥＳの場合
ｉ．現在のフレーム、２Ｄキーポイントおよびポーズを、次のフレームのトラッキング・スレッドにおいて用いるために、「最後の良い」フレーム、２Ｄキーポイントおよびポーズとして、記憶し、
ii．現在のポーズを、次のフレームの運動モデル観測に用いるために、「前のカメラポーズ」として記憶する。
【００７２】
ｂ．ＮＯの場合。運動モデル観測に用いられる「前のカメラポーズ」が無効であると、マーク付けする。
3.4.3  分割モード（Ｂ）
図４を参照して、分割モードを説明する。分割モードにおいては、結合モードと同様、最初のステップは現在の画像中のキーポイントを検出することである。
【００７３】
次に、タスクは２つのスレッド、つまりデテクション・タスクを実行する分割スレッドＡ（ＳＴＡ）と、トラッキング・タスクを実行する分割スレッドＣ（ＳＴＣ）と、に分割される。
【００７４】
ＳＴＡは下記を実行する。
【００７５】
１．２Ｄ−３Ｄ点相関関係を得るために、現在の画像中に検出したキーポイントを予トレーニングしたデータベースとマッチングする。
【００７６】
２．２Ｄ−３Ｄ点相関関係に基づき、初期ポーズを推定する。
【００７７】
３．観測を、制限し、評価し、かつ制御する。
【００７８】
４．デテクションに関する数値最小化に観測を加える。
【００７９】
５．もし、前のポーズにおいてポーズの推定が成功していれば、運動モデル観測をデテクション・最小化に加える（結合モード中として）。
【００８０】
６．初期ポーズを開始点として用いて数値最小化を実行し、２Ｄ再射影誤差および運動モデル観測（これが追加されていれば）を最小化する。
【００８１】
前のポーズにおいてポーズの推定が成功していれば、これと並行して、ＳＴＣは下記を実行する。
【００８２】
１．現在の画像中に検出したキーポイントを、前の画像中に検出したキーポイントとマッチングする。
【００８３】
２．対応マッチ・スコアが所定の閾値よりも高い全てのキーポイントについて、レイ・トレーシングを実行する。マッチしたキーポイントの３Ｄ位置を、前のフレームでのカメラポーズと３Ｄモデルとを用いて演算する（４章のレイ・トレーシングについての説明を参照）。
【００８４】
３．トラッキングに関する数値最小化に観測を加える。
【００８５】
４．（前のポーズの推定が成功していれば）ＳＴＡと同様に運動モデルをトラッキング・最小化に加える。
【００８６】
５．前のポーズを開始点として用いて数値最小化を実行し、２Ｄ再射影誤差および運動モデル観測（これが追加されていれば）を最小化する。
【００８７】
ａ．前のポーズを用いる代わりに、ＳＴＡが初期ポーズを演算するのを待ち、この初期ポーズを前のポーズの代替として使用することも可能である。これにより、性能上、多少のオーバヘッドが生じるが、カメラの動きが速い間に、より良好な結果を導く。
【００８８】
各々の最小化は、最終的に別々に推定したカメラポーズとなり、各々、いくつかのインライアー観測を有するとともに、最小化からのトータルの残差を有する。２つのポーズの「良好性」を分析するためのステップが実行される。もし一方の最小化からの結果が他方に比べて顕著に良好であれば、その最良の一方が最終結果として選択される。もし、２つの最小化からの結果がほぼ同程度に良好なものであれば、これらの結果の平均が用いられる。所望であれば、最終結果を得るために、加重平均を用いることができる。
3.5  他の改良点
本発明により提供される解は、画像中に現れた特徴点、つまり高いコントラストを有するコーナやエッジ等に依存している。そのため、現実のシーンが、カメラポーズの推定のためにカメラで取り込まれるフレーム中に十分に特徴点を検出できるようなテクスチャ（質感）を含んでいることが必要である。室内において、例えば白い壁のみで塗装や他のオブジェクト／イラスト（これらは取り込まれるフレームにテクスチャおよびコントラストを与える）がない場合には、特徴点を提供する必要がある。
【００８９】
エッジ・デテクションを環境の３Ｄモデルと組み合わせて実施することにより、本システムは、このような種類の環境においても機能する。このようなアプローチを本システムに統合するために、同じ性能（毎秒のフレーム数）を確保するように、別のスレッドないしスレッド・タスクを並列に実行する必要がある。
【００９０】
この新しいスレッド・タスクは、別のセットの観測を生成する。これらの観測は、一般には、取り込んだフレーム中のエッジ／ラインである。そして、数値最小化によって、取り込んだ画像中に検出／測定したラインと、現在推定されているカメラポーズ（現在とは、最小化プロセスの各々の繰り返し毎のポーズ）を用いてスクリーンに射影された環境の３Ｄモデルにおけるラインと、の間の距離が最小化される。
【００９１】
結合モード（3.4.2章）において、このことは、４つのタイプの観測が存在することを意味する。
【００９２】
１．デテクテド・２Ｄ−３Ｄ点相関関係（２Ｄピクセル再射影誤差の最小化）
２．トラックド・２Ｄ−３Ｄ点相関関係（２Ｄピクセル再射影誤差の最小化）
３．運動モデル観測（前のフレームでポーズが推定されていれば、前のフレームに対する並進および回転の最小化）
４．新規：エッジ観測（取り込んだ画像中のエッジと、現在のカメラポーズを用いてスクリーンに射影した３Ｄモデルにおけるライン／エッジと、の間の距離の最小化）
これらの４つのタイプの観測を加えることによって、本システムは、テクスチャが少ないもしくは無いけれどもエッジ／ラインは存在するような環境においても、機能することができる。ライン／エッジは、典型的には、壁の間のエッジ、壁と床の間のエッジ、壁と天井との間のエッジ、ドアと壁との間のエッジ、等である。
４  本発明の開示に用いられている用語の定義
4.1  ポーズ
３Ｄ位置（ｘ，ｙ，ｚ）＋３Ｄ方向（ｘ，ｙ，ｚ軸回りの回転）。方向は、多くの場合、回転行列、オイラー角、四元数マップもしくは「exponential map」を用いてパラメータ化される。位置は、通常、ベクトル（３次元もしくは相次（homogenous）４次元）としてパラメータ化される。
4.2  バーチャル・カメラ
内部カメラパラメータおよび外部カメラパラメータを含む物理的カメラを数学的に表したもの。
4.3  内部カメラパラメータ
焦点距離、画像中心、解像度、レンズの歪曲パラメータ（ラジアル方向歪曲、接線方向歪曲）。
4.4  外部カメラパラメータ
特定の座標系における物理的カメラのポーズ。
4.5  キーポイントないし特徴点
画像の中の関心のある点。キーポイントの検出に利用できるアルゴリズムは、いくつか存在する。特徴点とは、コーナ、コントラストの急変、エッジ、などである。画像から特徴点を抽出するために用いられるいくつかの方法が存在する。我々の方法は、コーナを検出するものであり、２００５年の「Foundations and Trend in Computer Graphics and Vision」におけるVincent LepetitおよびPascal Fuaによる「Monoclular Model-based 3d Tracking of Rigid Objects」の4.4.1章の記述に基づいている。
4.6  数値最小化
数値最小化とは、変数の制約条件を受ける数学的関数の最小化を意味する。数値最小化の一例は、Levenberg-Marquardt法である。
4.7  Levenberg-Marquardt
Wikipedia.orgによれば、「Levenberg-Marquardtアルゴリズムは、一般に非線形の関数について該関数のパラメータの間隔に亘る関数の最小化の数学問題に数値解を与える。この最小化問題は、特に、最小自乗曲線フィッティングにおいて起こる。Levenberg-Marquardtアルゴリズム（LMA）は、ガウス−ニュートン法（GNA）と勾配法とを融合したものである。」とある。最小化の状態に応じて、LMAはGNAと勾配法から最良のものをとる。
4.8  ２Ｄ−３Ｄの点相関関係
画像中の検出された点は、所定のイメージピクセル座標における２Ｄ位置を有する。同じ点が、実世界においては、３Ｄ位置を有する。最小の３つの点およびこれらの２Ｄ−３Ｄ相関関係を有していれば、画像の撮影に用いた物理的カメラのポーズの推定が可能である（例えば、Ｐ３Ｐアルゴリズムを通して）。
4.9  観測（Observation）
数値最小化を論ずる際に、観測の一例は、２Ｄ−３Ｄ点相関関係である。物理的カメラのポーズの推定のために、運動モデルを２Ｄ−３Ｄ点相関関係と組み合わせて用いる場合には、前回の繰り返し（iteration）／フレームから現在の繰り返し／フレームの間での３軸の１つあるいはいくつかにおける位置の変化やいずれかの軸の回りの回転変化もまた観測となり得る。
4.10  アウトライアー（Outlier）
無効な観測である。観測として２Ｄ−３Ｄ点相関関係を論ずる場合には、アウトライアーは、３Ｄ位置が２Ｄ位置に誤ってマッチングしている誤った２Ｄ−３Ｄ点相関関係である。
4.11  インライアー
インライアーとは観測である。
4.12  キーポイントデータベース
トレーニングフェーズの間に記憶されるキーポイントおよびそのプロパティのデータベースである。
4.13  分類ツリー
分類を試みるいくつかのテストを含むツリー状階層化構造であり、我々の事例では、キーポイント／特徴点を分類する。このツリーは、「さかさま」に使われ、つまり、各キーポイントが「ドロップダウン」型のツリーであり、ルートから始まって葉において終了する。各ノードにおいてテストがなされ、このテストによりキーポイントが他の１つの枝へと下方へ進む。最終的にキーポイントは１つの葉（枝の末端）に達する。この枝は、キーポイントを識別するために必要な情報を含む。キーポイントの認識のために分類ツリーをどのように用いるか、については、２００５年６月のカルフォルニア州サンディエゴでの「Conference on Computer Vision and Pattern Recognition」におけるV. Lepetit、P. LaggerおよびP. Fuaによる「Randomized Trees for Real-Time Keypoint Recognition」というタイトルの開示を参照されたい。
4.14  ロバスト・エスティメータ（estimator）を備えたPROSAC
PROSACは、多数のアウトライアーデータが存在するモデルのロバストな当てはめ（fitting）のためのアルゴリズムである。我々の事例では、大まかな初期カメラポーズの推定のためにPROSACを用いるが、ここでは、多数の観測（２Ｄ−３Ｄ点相関関係）がアウトライアーである。
【００９３】
観測として２Ｄ−３Ｄ点相関関係のセットが与えられたときに、我々のPROSACの各ステップは次のように実行される。
【００９４】
１．観測をそのスコアに従ってソートし、最高スコアを最上部に一致させる。
【００９５】
２．観測を選ぶために、観測の配列の最上部からの観測の数であるｎを、２にセットする。
【００９６】
３．ｎ＝ｎ＋１にセットする。
【００９７】
４．もしｎが観測の数よりも大であれば、エラーとして中止する。最小の再射影誤差および最小のインライアーの個数とする所定の要求条件では、満足できる初期ポーズは検出されていない。
【００９８】
５．ｎ個の上部の列に限定して、配列の上部から３個の観測をランダムに選択する。
【００９９】
６．この３個のランダムに選択した観測を入力として、Ｐ３Ｐを用いて、カメラポーズを演算する。特異点を回避するために、Ｐ３Ｐから得た回転行列を「exponential map」に変換する。「exponential map」については、3.4.1.1章を参照されたい。Ｐ３Ｐ以外のアルゴリズムも、カメラポーズの演算に適しているかもしれない。
【０１００】
７．配列の中の全ての観測のために、
ａ．現在演算されたカメラポーズを用いて、再射影誤差（4.26章を参照）を演算し、
ｂ．アウトライアーを無視するために、ロバスト・エスティメータ（estimator）を適用する。例：Tukey…もし再射影誤差が所定の閾値（例えば１５ピクセル）よりも大であれば、観測がアウトライアーであると記録する。
【０１０１】
８．全てのインライアーの再射影誤差の和をインライアーの個数で除して、残差を算出する（残差＝インライアーの再射影誤差の平均）。
【０１０２】
９．残差が、前回の繰り返しにおいて算出された最小の残差よりも低いか否か判定し、
ａ．ＹＥＳであれば、
ｉ．現在のカメラポーズを最良のポーズとして記憶し、かつ対応する残差を記憶し、
ii．インライアーの数がインライアーの所定の個数（例えば２０個）以上であるかチェックし、
１．ＮＯであれば、ステップ３〜７を繰り返し、
２．ＹＥＳであれば、ステップ４で演算されたポーズを初期ポーズとして許容して、処理を中止し、
ｂ．ＮＯであれば、ステップ３〜７を繰り返す。
【０１０３】
PROSACについてのさらなる情報については、２００５年のＣＶＰＲでのChum、Ondrej、Matas、Jiriによる「Matching with PROSAC - Progressive Sample Consensus」を参照されたい。
4.15  Ｐ３Ｐ
「Perspective-Three-Point」：幾何学的推定の１つの方法であり、例えば、内部カメラパラメータが既知のときに、最小の３つの２Ｄ−３Ｄ点相関関係に基づき、物理的カメラのポーズを推定する。包括的な解を確実に発見するためには、４つの２Ｄ−３Ｄ点相関関係が必要である。
【０１０４】
以下のＰ３Ｐの説明について、ここで、添付した図７を参照する。
【０１０５】
Ｍi←→ｍiおよびＭj←→ｍjの各対の相関関係は、（未知の）カメラ−点間の距離ｘi＝||Ｍi−Ｃ||およびｘj＝||Ｍj−Ｃ||に制約条件を与える。
【０１０６】
ｄij2＝ｘi2＋ｘj2−２ｘiｘjcosθij
但し、
ｄij＝||Ｍi−Ｍj||は、ＭiとＭjの間の（既知の）距離、
θijは、カメラ中心においてＭiとＭjで定まる角度である。
【０１０７】
アルゴリズム
１．距離ｘiについて多項式を解く。
【０１０８】
ｄij2＝ｘi2＋ｘj2−２ｘiｘjcosθij
→ｆij（ｘi,ｘj）＝ｘi2＋ｘj2−２ｘiｘjcosθij−ｄij2＝０
２．点Ｍiのカメラ座標系における位置ＭiCは演算可能である。
【０１０９】
３．「Ｒ」および「Ｔ」は、ＭiからＭiCへのユークリッド変位として演算される。
【０１１０】
最良の最小二乗回転は、四元数を用いたクローズドフォームにおいて得られる。
【０１１１】
（１９８７年４月、Horn, B.K.P. 「Closed Form Solutions of Absolute Orientation Using Unit Quaternions」JOSA-A(4), No. 4、６２９〜６４２頁）
定義、図および説明は、Vincent Lepetitによる「Selected Topics in Computer Vision」の講座１からのものである。
【０１１２】
我々が実施するＰ３Ｐは、また、２００３年８月のＰＡＭＩのＩＥＥＥ会報vol.25、No.８のX. S. Gao、X.-R. Hou、J. Tang、H.-F. Changによる「Complete Solution Classfication for the Perspective-Three-Point Problem」に基づいている。
4.16  レイ・トレーシング
物理的カメラのポーズおよび内部カメラパラメータが既知で、かつ現実環境の３Ｄモデルが与えられれば、画像中に検出したいかなる２Ｄキーポイントの位置も演算可能である。これは、カメラ中心を始点として画像中の２Ｄキーポイント座標を通りかつ現実環境の３Ｄモデルに衝突する３次元ベクトルを、数学的に記述することでなされる。このようなベクトルは、「光線」においても見ることができ、この光線が３Ｄモデルと衝突するまでトレースされるので、それ故、この処理は、「レイ・トレーシング」と呼ばれる。そして、カメラの内部パラメータおよび外部パラメータが既に演算されていることを条件として、その衝突点が、画像中の検出した２Ｄキーポイントの現実世界の３Ｄ座標を与えるのである。
4.17  運動モデル
運動モデルとは、オブジェクトや物理的カメラ等の物理的運動を制約および／又は予測する数学的モデルである。これは、今回推定したポーズの「正確さ（correctness）」を改善するために、今回および前回の繰り返し（iteration）／フレーム／画像からの情報を用いる。
4.18  ドリフト（Drifting）
ドリフトは、フレーム・トゥ・フレーム・トラッキングに共通の問題である。良好かつ正確なポーズを有するフレームから開始しても、いくつか後のフレームでは、正しい解から離れるようにポーズが「ドリフト」し、つまり、時間が経過する（将来のフレームが処理される）に従って、ポーズの推定結果はさらにドリフトし、正しい解からさらに離れる。
【０１１３】
ドリフトは、この種の方法の基本が所定のフレームから開始し、この「最初のフレーム」に基づいて後続のフレームでのポーズを演算するために、生じる。新しいフレームを処理する各々のたびに、多少の数値的誤差や未知数（uncertainties）が推定したポーズに加わる。誤差は、各フレーム毎に”それ自身”の上に加わり、つまり、誤差の影響は、僅か数フレームのトラッキングの後に急激に増加する。
4.19  ロバスト性
カメラが素早く動くラフな環境の下では、カメラポーズを演算する能力は、部分的ないし完全に妨げられ、不正確な特徴点／キーポイントが推定に用いられる。
4.20  精度（Accuracy）
ポーズ推定の観点では、精度とは、精密かつ正確に物理的カメラポーズを演算する能力である。
4.21  リピータビリティ
ポーズ推定の観点では、リピータビリティとは、カメラがごく僅か動き、実際／現実のポーズが微小値だけ変化した後続のフレーム／画像において、殆ど同一の物理的カメラポーズを演算し得る能力である。
4.22  デテクションもしくはオブジェクト・デテクション
デテクションもしくはオブジェクト・デテクションとは、推定すべき前のフレームの情報を要求することなく、個々のフレームにおけるオブジェクト（あるいはオブジェクトに沿った１セットのキーポイント）を検出する処理のことである。
4.23  トラッキングもしくはフレーム・トゥ・フレーム・トラッキング
カメラのフレーム毎のトラッキングを実行し、前に推定したカメラポーズを、キーポイントのマッチングを介して、新しい／将来のフレームにおけるカメラポーズの演算に利用する処理を、トラッキングもしくはフレーム・トゥ・フレーム・トラッキングと呼ぶ。
【０１１４】
この方法は、あるフレームにおける既知のポーズを、後続のフレームにおけるポーズの推定に用いる。最初の既知となるポーズを見つけるためには、種々の方法がある。後続のフレームにおけるポーズの推定は、下記のような手順でなされる。
【０１１５】
１．できるだけ良い特徴点を検出し、次のフレームで使用するために、保存する。
【０１１６】
２．次のフレームにおいて、新たなできるだけ良い特徴点を検出する。
【０１１７】
３．前のフレームにおいてポーズが正しく推定／提供されていれば、特徴点を前のフレームとマッチングする（特徴点のマッチングについては、4.25章を参照されたい）。
【０１１８】
４．マッチした各々の特徴点について
ａ．前のカメラポーズおよび内部パラメータを用いて、特徴点の３Ｄ位置を演算する。これは、前のポーズにおけるカメラ中心から、前のフレームで検出した特徴点の２Ｄ位置を通り、かつ環境の３Ｄモデルへと、レイ・トレーシングを実行することにより行う。
【０１１９】
ｂ．前のフレームを用いて見いだした３Ｄ位置を、現在のフレームにおける同じ特徴点の２Ｄ位置とともに、ポーズ推定の基礎として用いる。
【０１２０】
５．全てのマッチした特徴点の２Ｄ−３Ｄ点相関関係を、数値最適化法例えばLevenberg-Marquardt法による物理的カメラポーズの推定のために用いる。
【０１２１】
６．アルゴリズムが不良となるまで、ステップ２〜５を繰り返す。アルゴリズムがトラッキングから外れると不良となるが、これは、前のフレームと今回のフレームとの間で十分なマッチした特徴点を見いだせなかった場合あるいは前のフレームでのポーズが不正確な推定であったり推定されていなかった場合、に生じる。
【０１２２】
ステップ１は、初期化ステップであり、ここでは、カメラポーズが既知であると仮定している。
【０１２３】
ステップ２〜５は、トラッキングの要求条件が成立している限り、新しいフレーム毎に繰り返される。この要求条件は、前のフレームについてポーズが正しく推定つまり提供されていること、そして、有効なポーズを推定し得るように、４つより多い特徴点が現在のフレームと前のフレームとの間でマッチしていること、である。
4.24  残差（Residual）
「残差とは、観測不能な誤差の観測可能な推定量である。残差は観測可能であるが、誤差は観測できない。」
（http://en.wikipedia.org/wiki/Errors and residuals in statistics）
4.25  キーポイントマッチング
画像間でキーポイントをマッチングするには、いくつかのやり方がある。処理の例は、１９９５年のZ. Zhang、R. Deriche、O. Faugeras、Q. Luongによる「A robust technique for matching two uncalibrated images through the recovery of the unknown epipolar geometry」Artificial Intelligence、vol.78の８７〜１１９頁に説明されている。本発明は、近接状態および輝度の相互対応関係に基づくマッチングを用いる。運動の推定のために、似た（通常は連続した）視点からの２つの画像から抽出した関心を引く点「ｍｉ」および「ｍ'ｊ」のセットのマッチングを行うことができる。第１の画像の各点「ｍｉ」に対して、第２の画像において「ｍｉ」の周囲で点「ｍ'ｊ」を探索する。この探索は、各点を中心とした局所的な画像ウィンドウの類似性に基づく。この類似性は、ゼロ正規化された相互対応関係を用いて評価され、これは、局所的な画像輝度のアフィン変化に対し不変であって、照度変化に対し処理をロバストなものとしている。より信頼できるマッチングのセットを得るために、我々は、２つの画像の立場を逆にして上記の処理を繰り返すようにしている。互いに選択された点の相関関係ｍｉ←→ｍ'ｊのみが保持される。（２００５年の「Foundations and Trend in Computer Graphics and Vision」におけるVincent LepetitおよびPascal Fuaによる「Monoclular Model-based 3d Tracking of Rigid Objects」の4.4.2章の方法および記述に基づく）。
4.26  再射影誤差
再射影誤差とは、特徴点の測定／検出した２Ｄ座標と、その対応する３Ｄ座標の射影２Ｄ座標と、の間の距離である。再射影誤差は下記のように記述できる。
【０１２４】
||Ａ[Ｒ|Ｔ]Ｍi−ｍi||2
ここで、Ａは、３×３の内部カメラパラメータ行列、[Ｒ|Ｔ]は、変換行列（Ｒ：回転行列、Ｔ：並進ベクトル）、Ｍiは特徴点の３Ｄ位置、ｍiは特徴点の測定／検出した２Ｄ座標、である。
【０１２５】
Ａ：
｜  fx  ０  cx  ｜
｜  ０  fy  cy  ｜
｜  ０  ０  １  ｜
但し、fx、fyは焦点距離、cx、cyは主点（画像中心）である。
4.27  再射影誤差の最小化
数値最小化の各繰り返しのたびに外部パラメータを変更し、全ての測定２Ｄキーポイントと射影２Ｄキーポイントとの間の距離の平均が最小となる外部パラメータを記憶することで、最適解が得られる。各繰り返しの際の外部パラメータの導関数は、やはり演算される。一般に、導関数によって、より小さい平均の再射影誤差を得るために次の繰り返しにおける外部パラメータを、どのように、またどの程度に、変更すべきか、が決定される。
【図１】
0005668091.tif 000002
【図２】
0005668091.tif 000003
【図３】
0005668091.tif 000004
【図４】
0005668091.tif 000005
【図５】
0005668091.tif 000006
【図６】
0005668091.tif 000007
【図７】
0005668091.tif 000008