(57)【特許請求の範囲】
【請求項１】
複数の画像からキー画像を選択する方法であって、
第１の画像を撮像するために使用されたカメラの第１の姿勢に基づいて、前記第１の画像中のマーカに対応する第１の画像特徴を取得する第１の取得ステップと、
第２の画像を撮像するために使用されたカメラの第２の姿勢に基づいて、第２の画像中の前記第１の画像特徴に対応する第２の画像特徴を取得する第２の取得ステップと、
前記第１の画像中の前記第１の画像特徴の位置及び前記第２の画像中の前記第２の画像特徴の位置並びに前記カメラの前記第１の姿勢及び前記第２の姿勢に基づいて、３次元（３Ｄ）空間における前記マーカの再構成位置を決定する第１の決定ステップと、
前記マーカの前記決定された再構成位置及び前記３Ｄ空間における前記マーカの所定の位置に基づいて再構成誤差を決定する第２の決定ステップと、
前記決定された再構成誤差が所定の基準を満たす場合、拡張現実システムの座標系を構成するためのキー画像として前記第１の画像及び前記第２の画像のうち少なくとも一方の画像を選択する選択ステップと、
を備えることを特徴とする方法。
【請求項２】
前記所定の基準は、前記拡張現実システムのユーザにより設定される前記拡張現実システムの精度に応じて動的に調整されることを特徴とする請求項１に記載の方法。
【請求項３】
前記所定の基準は、前記マーカの前記画像特徴の前記再構成誤差の平均及び分散に応じて動的に調整されることを特徴とする請求項１に記載の方法。
【請求項４】
前記再構成誤差は、前記拡張現実システムの構成後の座標系において測定されることを特徴とする請求項１に記載の方法。
【請求項５】
１つのシーンの前記座標系を構成するために前記第１の画像を選択した後に前記シーンから前記マーカを除去するステップを更に備えることを特徴とする請求項１乃至４の何れか１項に記載の方法。
【請求項６】
前記第１の画像及び前記第２の画像は、複数のカメラを備えたマルチビューカメラシステムにより撮像されることを特徴とする請求項１乃至５の何れか１項に記載の方法。
【請求項７】
前記再構成誤差が前記所定の基準を満たさない場合、ユーザを移動させるための命令を生成するステップを更に備えることを特徴とする請求項１乃至６の何れか１項に記載の方法。
【請求項８】
複数の画像からキー画像を選択する装置であって、
第１の画像を撮像するために使用されたカメラの第１の姿勢に基づいて、前記第１の画像中のマーカに対応する第１の画像特徴を取得する第１の取得手段と、
第２の画像を撮像するために使用されたカメラの第２の姿勢に基づいて、第２の画像中の前記第１の画像特徴に対応する第２の画像特徴を取得する第２の取得手段と、
前記第１の画像中の前記第１の画像特徴の位置及び前記第２の画像中の前記第２の画像特徴の位置並びに前記カメラの前記第１の姿勢及び前記第２の姿勢に基づいて、３次元（３Ｄ）空間における前記マーカの再構成位置を決定する第１の決定手段と、
前記マーカの前記決定された再構成位置及び前記３Ｄ空間における前記マーカの所定の位置に基づいて再構成誤差を決定する第２の決定手段と、
前記決定された再構成誤差が所定の基準を満たす場合、拡張現実システムの座標系を構成するためのキー画像として前記第１の画像及び前記第２の画像のうち少なくとも一方の画像を選択する選択手段と、
を備えることを特徴とする装置。
【請求項９】
コンピュータに、請求項１乃至７の何れか１項に記載の方法の各ステップを実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に拡張現実（ＡＲ）システムに関し、特に、正確で信頼性の高いマップの生成及びカメラ位置の判定に使用するために画像シーケンスからキーフレームを選択することに関する。更に、本発明は、拡張現実システムの座標系を構成するのに使用するために複数の画像から第１の画像を選択する方法及び装置に関する。本発明は、拡張現実システムの座標系を構成するのに使用するために複数の画像から第１の画像を選択するためのコンピュータプログラムが記録されているコンピュータ可読媒体を含むコンピュータプログラムにも関する。
【背景技術】
【０００２】
拡張現実（ＡＲ）は、現実世界とコンピュータで生成されたデータとの組み合わせを扱う研究分野であり、コンピュータグラフィックスオブジェクトがリアルタイムで現実の場面に混入される。拡張現実画像撮像システムの大半は、ユーザの環境に関する所定の情報によって（すなわち、何らかのマップの形態で）動作する。ユーザは所定の情報に基づいて環境と対話できる。提供されるマップがわかりやすいものである場合、マップから直接登録を実行可能であるが、これは、カメラを利用する拡張現実追跡で使用される一般的な方法である。わかりやすいマップを作成するのは残念ながら難しく、長い時間を要する。そのようなマップは、多くの場合、熟練した技術者により手作業で作成され、一般に最小化方法により最適化されない限り、マップは十分に正確であるとはいえない。この最小化方法に必要とされる演算の負担も大きい。
【０００３】
並列追跡及びマッピング（ＰＴＡＭ）は、従来のマップを必要とせずにシーンにおけるリアルタイム追跡を実行するために特にカメラなどのハンドヘルドデバイスで使用されるアルゴリズムである。ユーザは、まず追跡すべき作業空間の上方にカメラを配置し、キーを押下することにより、マップ初期化のための初期キーフレームを選択する。通常、初期キーフレームから約１，０００の自然特徴が抽出され、後続フレームに渡って追跡される。次に、ユーザは、わずかに離れた位置へカメラをスムーズに平行移動し、２度目にキーを押下することにより第２のキーフレームを撮像する。その後、相対カメラ姿勢を推定し且つ選択されたキーフレーム及び追跡される特徴対応を使用して三角測量により初期マップを作成するために、周知の５点姿勢アルゴリズムが使用される。
【０００４】
５点姿勢アルゴリズムの欠点の１つは、マップ初期設定中にユーザとの対話が要求されることである。ユーザによっては、三角測量に必要とされる立体基線条件を理解できず、単なる回転を使用してカメラなどを初期設定しようとする場合もある。更に、５点姿勢アルゴリズムでは、長い時間中断なく特徴を追跡する必要がある。特徴は偶発的なカメラの回転や急激なカメラの移動により一致せず、その結果、マップ初期設定に利用可能な追跡特徴はほとんど得られなくなる。シーンにおけるリアルタイム追跡を実行する別の方法は、ユーザが当初は平面的なシーンを見ていると仮定する。初期キーフレームを選択した後にユーザがカメラを移動させるにつれて、フレームごとに一致した特徴から現在のフレームと初期キーフレームとの間のホモグラフィ仮説が生成される。その後、各ホモグラフィ仮説は、２つ以上の可能な３次元（３Ｄ）カメラ姿勢に分解される。条件数に基づいて第２のキーフレームが選択される。分解に至る８自由度（ＤＯＦ）の変化に関する各点の投影の偏導関数のヤコビ行列をＪとするとき、条件数は、情報行列ＪＴＪの最小固有値と最大固有値との比である。条件数は、分解の際のパラメータに関する誤差の尺度を示すだけであり、３Ｄマップ点の精度に直接関連しているわけではないので、このような方法も最適ではない。
【０００５】
シーンにおけるリアルタイム追跡を実行する別の方法は、ＧＲＩＣ（Ｇｅｏｍｅｔｒｉｃ  Ｒｏｂｕｓｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｒｉｔｅｒｉｏｎ）モデルに基づくモデルベースの方法である。このようなモデルベースの方法では、初期キーフレームと現在のフレームとの間の特徴対応に基づいてＧＲＩＣスコアが計算される。フレームごとに、２つのモデル（すなわちエピポーラ及びホモグラフィ）の各々に対してスコアが計算される。ホモグラフィモデルは、小さな基線によって立体画像の対応を最もよく記述する。エピポーラモデルはシーン幾何を考慮に入れるが、より大きな基線を必要とする。エピポーラモデルのＧＲＩＣスコアがホモグラフィモデルのＧＲＩＣスコアより低い場合、第２のキーフレームが選択される。しかし、このモデルベースの方法では、ホモグラフィモデル及びエピポーラモデルの双方に対して特徴を中断なく長い時間連続して追跡すること及び追跡特徴ごとに再投影誤差を計算することが必要とされるので、演算の負担は大きい。
【０００６】
シーンにおけるリアルタイム追跡を実行する他の方法は、２つのキーフレームの間の時間的距離又は追跡特徴の追跡長さのいずれかが一定の閾値より大きい場合に十分に正確な初期３Ｄマップを作成できることを黙示的に仮定する。カメラから特徴までの距離はキーフレーム間の所要距離に影響を及ぼすので、この仮定は不正確である場合が多い。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、既存の構成の１つ以上の欠点をほぼ克服すること又は少なくとも改善することである。
【課題を解決するための手段】
【０００８】
本開示の１つの態様によれば、複数の画像からキー画像を選択する方法であって、
第１の画像を撮像するために使用されたカメラの第１の姿勢に基づいて、第１の画像中のマーカに対応する第１の画像特徴を取得する第１の取得ステップと、
第２の画像を撮像するために使用されたカメラの第２の姿勢に基づいて、第２の画像中の第１の画像特徴に対応する第２の画像特徴を取得する第２の取得ステップと、
第１の画像中の第１の画像特徴の位置及び第２の画像中の第２の画像特徴の位置並びにカメラの第１の姿勢及び第２の姿勢に基づいて、３次元（３Ｄ）空間におけるマーカの再構成位置を決定する第１の決定ステップと、
マーカの決定された再構成位置及び３Ｄ空間におけるマーカの所定の位置に基づいて再構成誤差を決定する第２の決定ステップと、
決定された再構成誤差が所定の基準を満たす場合、拡張現実システムの座標系を構成するためのキー画像として第１の画像及び第２の画像のうち少なくとも一方の画像を選択する選択ステップと、
を備えることを特徴とする方法が提供される。
【００１６】
本発明の他の態様も開示される。
【図面の簡単な説明】
【００１７】
添付の図面を参照して、本発明の１つ以上の実施形態を説明する。
【図１Ａ】図１Ａは、拡張現実システムにより使用される２Ｄ校正マーカパターンを示す図である。
【図１Ｂ】図１Ｂは、拡張現実システムにより使用される３Ｄ校正マーカパターンを示す図である。
【図２Ａ】図２Ａは、説明される構成が実施されるビデオシステムを示す概略ブロック図である。
【図２Ｂ】図２Ｂは、説明される構成が実施されるビデオシステムを示す概略ブロック図である。
【図３】図３は、説明される構成が実施される図２Ａ及び図２Ｂのビデオシステムの別の構成を示す概略ブロック図である。
【図４Ａ】図４Ａは、複数の画像からキーフレームを選択する方法を示す概略フローチャートである。
【図４Ｂ】図４Ｂは、複数の画像からキーフレームを選択する方法を示す概略フローチャートである。
【図４Ｃ】図４Ｃは、複数の画像からキーフレームを選択する方法を示す概略フローチャートである。
【図５】図５は、図４の方法において実行される一致した画像特徴を判定する方法を示す概略フローチャートである。
【図６】図６は、本発明に係る校正マーカパターンの隅点の再構成誤差を示す図である。
【図７】図７は、図４の方法に従って生成された３次元（３Ｄ）マップの一例を示す図である。
【図８】図８は、マップ初期設定中の図２Ａのビデオディスプレイを示す図である。
【発明を実施するための形態】
【００１８】
添付の図面の１つ以上の図において、同一の図中符号により示されるステップ及び／又は特徴が参照される場合、説明の便宜上、特に指示のない限り、それらのステップ及び／又は特徴は同一の機能又は動作を有する。
【００１９】
図２Ａは、ビデオシステム２００を示す。ビデオシステム２００は、例えばシーン２９３の画像を撮像する移動カメラ２２０を備える。シーン２９３は静止している。移動カメラ２２０は通信網２９０に接続される。通信網２９０は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、携帯電話通信網又はプライベートＷＡＮである。
【００２０】
図２Ａに示されるように、ビデオシステム２００は、コンピュータモジュール２０１と、キーボード２０２、マウスポインタデバイス２０３、スキャナ２２６及びマイク２８０などの入力デバイスと、プリンタ２１５、ディスプレイ装置２１４及びスピーカ２１７を含む出力デバイスとを更に含む。
【００２１】
外部変復調器（モデム）トランシーバデバイス２１６は、接続回線２２１を介して通信網２９０との間で通信を実行するためにコンピュータモジュール２０１により使用される。接続回線２２１が電話回線である場合、モデム２１６は従来の「ダイヤルアップ」モデムである。あるいは、接続回線２２１が大容量（例えば、ケーブル）接続回線である場合、モデム２１６はブロードバンドモデムである。通信網２９０への無線接続を実現するために、無線モデムも使用可能である。
【００２２】
通常、コンピュータモジュール２０１は、少なくとも１つのプロセッサユニット２０５及びメモリユニット２０６を含む。例えばメモリユニット２０６は、半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体読み取り専用メモリ（ＲＯＭ）を有する。コンピュータモジュール２０１は、ビデオディスプレイ２１４、スピーカ２１７及びマイク２８０に結合するオーディオビデオインタフェース２０７と、キーボード２０２、マウス２０３、スキャナ２２６及びカメラ２２７に結合し且つ任意にジョイスティック又は他のヒューマンインタフェースデバイス（図示せず）に結合する入出力（Ｉ／Ｏ）インタフェース２１３と、外部モデム２１６及びプリンタ２１５に結合するインタフェース２０８とを含む複数のＩ／Ｏインタフェースを更に含む。いくつかの実現形態において、モデム２１６は、コンピュータモジュール２０１内に、例えばインタフェース２０８内に組み込まれる。コンピュータモジュール２０１は、接続回線２２３を介してコンピュータモジュール２０１をローカルエリアネットワーク（ＬＡＮ）として知られるローカルエリア通信網２２２に結合させることができるローカルネットワークインタフェース２１１を更に有する。
【００２３】
図２Ａに示されるように、ローカル通信網２２２は、いわゆる「ファイアウォール」デバイス又はそれに類似する機能を有するデバイスを通常含む接続回線２２４を介してワイド網２９０にも結合する。ローカルネットワークインタフェース２１１は、Ｅｔｈｅｒｎｅｔ（登録商標）回路カード、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線構成又はＩＥＥＥ８０２．１１無線構成を備えるが、インタフェース２１１として他の多くの種類のインタフェースが実施されてもよい。
【００２４】
Ｉ／Ｏインタフェース２０８及び２１３は、直列接続及び並列接続のいずれか一方又は双方を可能にするが、直列接続は、通常、ユニバーサルシリアルバス（ＵＳＢ）規格に従って実現され且つ対応するＵＳＢコネクタ（図示せず）を有する。記憶装置２０９が配置され、この記憶装置２０９はハードディスクドライブ（ＨＤＤ）２１０を通常含む。フロッピーディスクドライブ及び磁気テープドライブ（図示せず）のような他の記憶装置が使用されてもよい。不揮発性ソースとして動作するように、オプションのディスクドライブ２１２が通常配置される。ビデオシステム２００に対するデータの適切なソースとして、光ディスク（例えばＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ Ｄｉｓｃ（登録商標））、ＵＳＢ−ＲＡＭ、ポータブル外部ハードドライブ及びフロッピーディスクなどのポータブルメモリデバイスが使用される。
【００２５】
コンピュータモジュール２０１の構成要素２０５〜２１３は、通常、当業者には周知であるビデオシステム２００の従来の動作モードが実現されるように相互接続バス２０４を介して通信する。例えば、プロセッサ２０５は、接続線２１８を使用してシステムバス２０４に結合される。同様に、メモリ２０６及び光ディスクドライブ２１２は、接続線２１９によりシステムバス２０４に結合される。本明細書において説明される構成を実施できるコンピュータは、例えばＩＢＭ−ＰＣ及びその互換機、Ｓｕｎ Ｓｐａｒｃｓｔａｔｉｏｎ、Ａｐｐｌｅ Ｍａｃ（登録商標）又はそれに類似するコンピュータシステムを含む。
【００２６】
以下に説明される方法は、ビデオシステム２００を使用して実現される。その場合、以下に説明される図１〜図６の処理は、ビデオシステム２００内で実行可能な１つ以上のソフトウェアアプリケーションプログラム２３３として実現される。詳細には、説明される方法のステップは、ビデオシステム２００内で実行されるソフトウェアアプリケーションプログラム２３３の命令２３１により実行される（図２Ｂを参照）。ソフトウェア命令２３１は、各々が１つ以上の特定のタスクを実行する１つ以上のコードモジュールとして形成される。ソフトウェアは２つの個別の部分に分割されてもよく、第１の部分及び対応するコードモジュールは、以下に説明される方法を実行する。第２の部分及び対応するコードモジュールは、第１の部分とユーザとの間のユーザインタフェースを管理する。
【００２７】
ソフトウェアは、例えば以下に説明される記憶デバイスを含むコンピュータ可読媒体に記憶される。通常、ソフトウェアアプリケーションプログラム２３３はＨＤＤ２１０又はメモリ２０６に記憶される。ソフトウェアは、コンピュータ可読媒体からビデオシステム２００にロードされた後、ビデオシステム２００により実行される。従って、ソフトウェア２３３は、例えば光ディスクドライブ２１２により読み取られる光可読ディスク記憶媒体（例えばＣＤ−ＲＯＭ）２２５に記憶される。そのようなソフトウェアが記憶されたコンピュータ可読媒体又はコンピュータ可読媒体に記録されたコンピュータプログラムは、コンピュータプログラム製品である。コンピュータシステム２００においてこのコンピュータプログラム製品を使用することにより、以下に説明される方法を実現するのに有利な装置が実現されるのが好ましい。
【００２８】
場合によっては、ソフトウェアアプリケーションプログラム２３３は、１枚以上のＣＤ−ＲＯＭ２２５に符号化された形態でユーザに提供され、対応するドライブ２１２を介して読み取られても良いし、あるいは通信網２９０又は２２２からユーザにより読み取られても良い。更にソフトウェアは、他のコンピュータ可読媒体からビデオシステム２００にロードされてもよい。コンピュータ可読媒体は、実行及び／又は処理のために記録されている命令及び／又はデータをコンピュータシステム２００に提供するあらゆる非一時的な有形記憶媒体を表す。コンピュータモジュール２０１の内部に組み込まれるか又は外部にあるかにかかわらず、そのような記憶媒体には、フロッピーディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ Ｄｉｓｃ、ハードディスクドライブ、ＲＯＭ又は集積回路、ＵＳＢメモリ、光磁気ディスク、ＰＣＭＣＩＡカードなどのコンピュータ可読カードなどが含まれる。コンピュータモジュール２０１へのソフトウェア、アプリケーションプログラム、命令及び／又はデータの提供にも関与する一時的なコンピュータ可読送信媒体又は非有形コンピュータ可読送信媒体の例は、無線送信チャネル又は赤外線送信チャネル、並びに別のコンピュータ又は別のネットワーク化デバイスへのネットワーク接続、Ｅメール送信を含むインターネット又はイントラネット及びウェブサイトに記録された情報などを含む。
【００２９】
上述のソフトウェアアプリケーションプログラム２３３の第２の部分及び対応するコードモジュールは、ディスプレイ２１４にレンダリングされるか又は他の方法により表現される１つ以上のグラフィカルユーザインタフェース（ＧＵＩ）を実現するために実行される。ＧＵＩと関連するアプリケーションへ制御コマンド及び／又は入力を供給するために、ビデオシステム２００及びアプリケーションのユーザは、通常、キーボード２０２及びマウス２０３を操作することにより機能適応方式でインタフェースを操作する。スピーカ２１７を介して出力される音声プロンプト及びマイク２８０を介して入力されるユーザ音声コマンドを利用するオーディオインタフェースのような他の形態の機能適応型ユーザインタフェースが実現されてもよい。
【００３０】
図２Ｂは、プロセッサ２０５及び「メモリ」２３４を詳細に示す概略ブロック図である。メモリ２３４は、図２Ａのコンピュータモジュール２０１がアクセス可能なすべてのメモリモジュール（ＨＤＤ２０９及び半導体メモリ２０６を含む）の論理的集合体を表す。
【００３１】
コンピュータモジュール２０１が最初に起動された時点で、ＰＯＳＴ（ｐｏｗｅｒ−ｏｎ  ｓｅｌｆ−ｔｅｓｔ）プログラム２５０が実行される。ＰＯＳＴプログラム２５０は、通常、図２Ａの半導体メモリ２０６のＲＯＭ２４９に記憶される。ソフトウェアを記憶するＲＯＭ２４９のようなハードウェアデバイスはファームウェアと呼ばれる場合もある。ＰＯＳＴプログラム２５０は、適正に機能していることを確認するためにコンピュータモジュール２０１内部のハードウェアを検査し、通常、プロセッサ２０５及びメモリ２３４（２０９、２０６）と、通常は同様にＲＯＭ２４９に記憶されている基本入出力システムソフトウェア（ＢＩＯＳ）モジュール２５１とが正しく動作しているか否かを検査する。ＰＯＳＴプログラム２５０が正常に実行された後、ＢＩＯＳ２５１は図２Ａのハードディスクドライブ２１０を起動する。ハードディスクドライブ２１０が起動されると、ハードディスクドライブ２１０に常駐するブートストラップローダプログラム２５２がプロセッサ２０５を介して実行される。その結果、ＲＡＭメモリ２０６にオペレーティングシステム２５３がロードされるので、オペレーティングシステム２５３は動作を開始する。オペレーティングシステム２５３は、プロセッサ管理、メモリ管理、デバイス管理、記憶装置管理、ソフトウェアアプリケーションインタフェース及び一般ユーザインタフェースを含む種々の高レベル機能を実現するためにプロセッサ２０５により実行可能なシステムレベルアプリケーションである。
【００３２】
オペレーティングシステム２５３は、コンピュータモジュール２０１で実行中の各処理又は各アプリケーションが別の処理に割り当てられたメモリと衝突することなくその処理又はアプリケーションを実行するのに十分なメモリを使用できるようにメモリ２３４（２０９、２０６）を管理する。更に、図２Ａのシステム２００で利用可能な種々の種類のメモリは、各処理を有効に実行できるように適正に使用される。従って、メモリ集合体２３４は、（特に指示のない限り）メモリの特定のセグメントがどのように割り当てられるかを示すことを意図しているのではなく、コンピュータシステム２００がアクセス可能であるメモリの全体図を示し且つそのメモリがどのように使用されるかを示すことを意図する。
【００３３】
図２Ｂに示されるように、プロセッサ２０５は、制御ユニット２３９、算術論理ユニット（ＡＬＵ）２４０及びキャッシュメモリと呼ばれる場合もあるローカルメモリ又は内部メモリ２４８を含む複数の機能モジュールを含む。通常、キャッシュメモリ２４８は、レジスタ部分に複数の格納レジスタ２４４〜２４６を含む。１つ以上の内部バス２４１がこれらの機能モジュールを機能の上で相互に接続する。通常、プロセッサ２０５は、接続回線２１８を使用して、システムバス２０４を介して外部デバイスと通信する１つ以上のインタフェース２４２を更に有する。メモリ２３４は、接続線２１９を使用してバス２０４に結合される。
【００３４】
アプリケーションプログラム２３３は、条件分岐命令及び条件ループ命令を含む一連の命令２３１を含む。アプリケーションプログラム２３３は、プログラム２３３の実行に使用されるデータ２３２を更に含む。命令２３１及びデータ２３２は、記憶場所２２８、２２９、２３０及び２３５、２３６、２３７にそれぞれ記憶される。命令２３１及び記憶場所２２８〜２３０の相対的な大きさに応じて、記憶場所２３０に記憶されている命令により示されるように、特定の命令が１つの記憶場所に記憶される場合もある。あるいは、記憶場所２２８及び２２９に記憶されている命令セグメントにより示されるように、１つの命令が複数の部分に分割され、各部分が個別の記憶場所に記憶されてもよい。
【００３５】
一般に、プロセッサ２０５に命令セットが提供され、プロセッサ２０５はそれらの命令を実行する。プロセッサ２０５は次に続く入力を待ち、別の命令セットを実行することによりその入力に反応する。各入力は、入力デバイス２０２、２０３のうち１つ以上のデバイスにより生成されるデータ、通信網２９０、２０２のうちの１つを介して外部ソースから受信されるデータ、記憶装置２０６、２０９のうち１つから検索されるデータ又は適切な読み取り装置２１２に挿入された記憶媒体２２５から検索されるデータを含む複数のソースのうち１つ以上のソースから提供される。すべてのソースは図２Ａに示される。場合によっては、命令セットを実行することによりデータが出力される。命令セットの実行はデータ又は変数をメモリ２３４に記憶することを更に含む。
【００３６】
説明される構成は入力変数２５４を使用する。入力変数２５４は、メモリ２３４の対応する記憶場所２５５、２５６、２５７に記憶される。説明される構成は出力変数２６１を生成し、出力変数２６１はメモリ２３４の対応する記憶場所２６２、２６３、２６４に記憶される。中間変数２５８が記憶場所２５９、２６０、２６６及び２６７に記憶される場合もある。
【００３７】
図２Ｂのプロセッサ２０５に関して説明すると、レジスタ２４４、２４５、２４６、算術論理ユニット（ＡＬＵ）２４０及び制御ユニット２３９は、プログラム２３３を構成する命令セットの命令ごとに「フェッチ、復号、実行」サイクルを実行するために必要とされるマイクロ動作のシーケンスを実行するように互いに関連して動作する。各フェッチ、復号、実行サイクルは以下を含む。
【００３８】
（ａ）記憶場所２２８、２２９、２３０から命令２３１をフェッチする又は読み取るフェッチ動作
（ｂ）どの命令がフェッチされたかを制御ユニット２３９が判定する復号動作
（ｃ）制御ユニット２３９及び／又はＡＬＵ２４０がその命令を実行する実行動作
その後、次の命令に対して更なるフェッチ、復号、実行サイクルが実行される。同様に、制御ユニット２３９が記憶場所２３２に値を記憶する又は書き込む記憶サイクルが実行される。
【００３９】
図４〜図６の処理における各ステップ又は各部分処理は、プログラム２３３の１つ以上のセグメントと関連し且つプログラム２３３のそれらのセグメントに対して命令セットの命令ごとにフェッチ、復号、実行サイクルを実行するために互いに関連して動作するプロセッサ２０５のレジスタ部分２４４、２４５、２４７、ＡＬＵ２４０及び制御ユニット２３９により実行される。
【００４０】
あるいは、説明される方法は、説明される方法の機能又は部分機能を実行する１つ以上の集積回路のような専用ハードウェアで実現される。そのような専用ハードウェアには、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、グラフィックプロセッサ、デジタルシグナルプロセッサ又は１つ以上のマイクロプロセッサ及び関連メモリが含まれる。専用ハードウェアは、カメラ２２０、２２０Ａ〜２２０Ｅに埋め込まれ且つコンピュータモジュール２０１内で実行されるソフトウェアのみで実行される構成に匹敵する機能を有すると考えられるデバイスを更に含む。
【００４１】
１つの構成において、説明される方法は、カメラ２２０、２２０Ａ〜２２０Ｅのうち１つ以上のカメラのプロセッサにより実行されるソフトウェアとして実現されるか、もしくはカメラ内部の専用ハードウェアを使用して実現される。更に別の構成において、説明される方法は、ソフトウェアモジュールとハードウェアモジュールとの混成構成を使用して実現される。
【００４２】
図２Ａの例において、３次元（３Ｄ）空間のシーン２９３は、３Ｄ球形オブジェクト２９９、３Ｄ立方体オブジェクト２９７及び校正マーカパターン２９８を含む。
【００４３】
校正マーカパターン２９８は、拡張現実システムに使用可能な図１Ａに示されるような２Ｄ校正マーカパターンである。あるいは、校正マーカパターン２９８は、図１Ｂに示されるような３Ｄ校正マーカパターンである。図１Ｂに示されるような３Ｄ校正マーカパターンも拡張現実システムに使用可能である。
【００４４】
校正マーカパターン２９８は、撮像されるオブジェクトの縮尺及びシーン２９３におけるグローバル座標系の原点を定義する。校正マーカパターン２９８は、マップ初期設定を目的として当初は移動カメラ２２０により見えると想定されるが、後の追跡動作及びマッピング動作には必要ではない。校正マーカパターン２９８は、図１Ａに示される２Ｄ校正マーカパターン及び図１Ｂに示される３Ｄ校正マーカパターンに限定されない。校正マーカパターン２９８は、空間内の既知の場所に既知の寸法で固定され且つ撮像画像中で検出可能であるならば、どのような種類又は形状であってもよい。
【００４５】
１つの構成において、移動カメラ２２０は、シーン２９３の画像を撮像するデジタルスチル画像カメラである。別の構成において、移動カメラ２２０は、３Ｄ空間内で所定のフレームレートで連続してシーン２９３の画像を撮像するデジタルビデオカメラである。更に別の構成では、カメラ２２０は、立体カメラなどのマルチレンズカメラシステムである。更に別の構成において、シーンの画像を撮像するために、２つ以上の個別のカメラを備えたマルチビューカメラシステムが使用される。
【００４６】
カメラ内部（intrinsic）パラメータを判定するために、移動カメラ２２０は、何らかの適切なカメラ校正アルゴリズムを使用して校正される。焦点距離、主点及びレンズ歪みパラメータなどのカメラ内部パラメータは、移動カメラ２２０に対してあらかじめ判定される。移動カメラ２２０は、シーン２９３に関して、破線のカメラ２２０により示されるような初期位置にある。図２Ａに示されるように、撮像画像２９１は、初期位置にあるカメラ２２０により撮像されたシーン２９３のビューを表す。その後、矢印２９６により示されるように、移動カメラ２２０は、実線のカメラ２２０により示される新たな場所へ移動される。この新たな場所は初期位置とは異なる。理解しやすいように、初期位置から新たな場所へ移動された後も、実線で示される移動カメラ２２０は、破線で示される移動カメラ２２０と同一のカメラを表す。図２Ｂに示されるように、撮像画像２９２は、新たな場所でカメラ２２０により撮像されたシーン２９３のビューを表す。
【００４７】
画像２９１及び２９２は、プロセッサ２０５を使用して、移動カメラ２２０から通信網２９０を介してコンピュータモジュール２０１へ順次ダウンロードされる。あるいは、撮像中に、画像２９１及び２９２は、カメラ２２０によりコンピュータモジュール２０１へ送出される。
【００４８】
コンピュータモジュール２０１は、移動カメラ２２０により撮像された入力画像２９１及び２９２を通信網２９０を介して受信する。画像２９１及び２９２は、メモリ２０６及び／又はハードディスクドライブ２１０に記憶される。図４Ａ、図４Ｂ及び図４Ｃを参照して以下に詳細に説明される方法４００に従って、画像２９１及び２９２から１つ以上のキーフレーム（又はキー画像）が選択される。
【００４９】
方法４００に従って、図７に示されるように、画像２９１及び２９２を使用して生成されるべき３次元（３Ｄ）マップ２９５の予想画質が判定される。３Ｄマップ２９５の予想画質が所定の精度を超える場合、２つの画像２９１及び２９２はキーフレーム（又はキー画像）として設定され、３Ｄマップ２９５を生成するために、それらのキーフレーム（キー画像）から抽出された一致点を使用して三角測量が実行される。３Ｄマップ２９５の予想画質が不十分である場合、異なる初期キーフレーム（キー画像）を使用して方法４００が再び実行される。
【００５０】
図３は、ビデオシステム２００の別の構成を示す。この場合、ビデオシステム２００は、通信網２９０に接続された複数の固定カメラ２２０Ａ、２２０Ｂ、２２０Ｃ、２２０Ｄ及び２２０Ｅを備える。各固定カメラ２２０Ａ、２２０Ｂ、２２０Ｃ、２２０Ｄ又は２２０Ｅは独立して動作する。各カメラ２２０Ａ〜２２０Ｅにより撮像された画像２９１及び２９２に類似するシーン２９３の画像は、コンピュータモジュール２０１にダウンロードされ且つ方法４００に従って処理される。
【００５１】
図４Ａ、図４Ｂ及び図４Ｃを参照して、複数の画像からキーフレーム（キー画像）を選択する方法４００を詳細に説明する。方法４００は、移動可能なカメラ２２０により撮像された図２Ａの画像２９１及び２９２を例にして説明される。方法４００は、ハードディスクドライブ２１０に常駐し且つプロセッサ２０５により実行が制御されるソフトウェアアプリケーションプログラム２３３の１つ以上のコードモジュールとして実現される。
【００５２】
図４Ａに示されるように、方法４００は画像ダウンロードステップ４０１から開始される。このステップにおいて、プロセッサ２０５は、移動カメラ２２０から通信網２９０を介して現在のフレームをダウンロードするために使用される。図２Ａの例に従えば、方法４００の１回目の反復時における現在のフレームは画像２９１である。画像２９１は、方法４００に従って処理される準備が整った状態の生画像である。前述のように、ダウンロードされた画像２９１は、メモリ２０６及び／又はハードディスクドライブ２１０に記憶される。
【００５３】
別の構成において、画像２９１及び２９２は、ＪＰＥＧ、ＪＰＥＧ２０００、モーションＪＰＥＧ２０００、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４及びＨ．２６４のような従来の符号化方式を使用して移動カメラ２２０により圧縮される。そのような構成では、方法４００は、生画素データを生成するために画像２９１及び２９２を復号化するステップを含む。
【００５４】
決定ステップ４０２において、プロセッサ２０５は、現在のフレーム（例えば画像２９１）の中に校正マーカパターン２９８が存在するか否かを検出するために使用される。現在のフレーム（例えば画像２９１）の中に校正マーカパターン２９８が検出された場合、方法４００はステップ４０３へ進む。検出されない場合、初期キーフレームを設定する方法４００は、次の入力フレームを処理するためにダウンロードステップ４０１に戻る。
【００５５】
１つの構成において、ある特定のグレイ値閾値に満たない連結された暗画素群を判定するために、現在のフレームは検出ステップ４０２で２値化される。この場合、各暗画素群の輪郭が抽出され、４本の直線により囲まれた画素群が潜在マーカとしてマークされる。潜在マーカの４つの隅は、透視歪みを除去する目的でホモグラフィを判定するために使用される。校正マーカの内部パターンが標準正面図に移行された後、Ｎ×Ｎの２値格子が判定される。格子の２値は、相関により校正マーカパターン２９８の特徴ベクトルと比較される特徴ベクトルを形成する。この比較の出力は信頼度係数である。信頼度係数が所定の閾値より大きい場合、ステップ４０２において現在のフレームの中で校正マーカパターン２９８が検出されたと考えられる。
【００５６】
別の構成では、固定グレイ値閾値を使用して現在のフレームを２値化するのではなく、検出ステップ４０２において、エッジ検出器を使用してエッジ画素が検出される。この場合、エッジ画素はセグメントに連携され、セグメントは四辺形として分類される。各四辺形の４つの隅は、透視歪みを除去する目的でホモグラフィを判定するために使用される。その後、内部パターンがサンプリングされ、相関により既知の校正マーカパターン２９８の特徴ベクトルと比較される。この比較の出力が所定の閾値より大きい場合、校正マーカパターン２９８が発見されたと考えられる。
【００５７】
図４Ａを参照して説明すると、カメラ姿勢判定ステップ４０３において、プロセッサ２０５は、ステップ４０１で現在のフレームの中で検出された校正マーカパターン２９８の既知の位置及び姿勢と、検出された校正マーカパターン２９８の見え方とに基づいて現在のフレーム（例えば画像２９１）に対するカメラの姿勢を判定するために使用される。
【００５８】
１つの構成において、校正マーカパターン２９８の４本の輪郭直線及び４つの隅は、姿勢判定ステップ４０３でステップ４０２と同様にして判定される。次に、以下の式（１）で与えられる透視変換を使用して、検出されたマーカは正規化される。変換行列におけるすべての変数は、検出された校正マーカパターン２９８の４つの頂点の画像座標及びマーカ座標を、それぞれ（ｘｃ、ｙｃ）及び（Ｘｍ，Ｙｍ）に代入することにより判定される。
【００５９】
【数１】
0005491611.tif 000002
【００６０】
式中、ｈは任意のスケール係数である。
【００６１】
次に、校正マーカパターン２９８の２本の平行線により形成される平面の法線ベクトルが判定される。画像座標中の２本の平行線の式は、次の式（２）により与えられる。
【００６２】
【数２】
0005491611.tif 000003
【００６３】
式中、ａ１、ｂ１及びｃ１並びにａ２、ｂ２及びｃ２は、各平行線の定数パラメータである。
【００６４】
移動カメラ２２０が事前に校正されていたと仮定すると、透視投影行列Ｐは、以下の式（３）に従って４×４の行列として表される。
【００６５】
【数３】
0005491611.tif 000004
【００６６】
従って、式（１）を式（４）に従って次のように表すことができる。
【００６７】
【数４】
0005491611.tif 000005
【００６８】
式中、（Ｘｃ，Ｙｃ，Ｚｃ）は校正マーカパターン２９８の隅のカメラ座標である。
【００６９】
校正マーカパターン２９８の２つの辺を含む平面の式は、以下の式（５）に従って、カメラ座標において式（３）のｘｃ及びｙｃを式（２）のｘ及びｙに代入することにより表される。
【００７０】
【数５】
0005491611.tif 000006
【００７１】
式（５）から、校正マーカパターン２９８の２辺を含む平面の法線ベクトルが判定され、ｎ１及びｎ２によりそれぞれ表される。校正マーカパターン２９８の平行な２辺の方向ベクトルｖ１は、外積ｎ１×ｎ２により与えられる。次に、方向ベクトルｖ２を判定するために、第２の組の平行線が使用される。ｖ１及びｖ２が厳密に垂直になるように、雑音に起因する誤差及び画像処理誤差を補償するために２つの方向ベクトルｖ１及びｖ２は純化される。
【００７２】
ｖ１及びｖ２の双方に対して垂直な単位方向ベクトルｖ３も判定される。単位方向ベクトルｖ１、ｖ２及びｖ３は、マーカ座標から以下の式（６）に示されるカメラ座標への変換行列Ｔの回転成分を一体に形成する。
【００７３】
【数６】
0005491611.tif 000007
【００７４】
変換行列の回転成分、マーカ座標におけるマーカの４つの隅及び検出されたマーカの現在のフレームにおける対応する頂点が与えられると、８つの式（平行移動成分Ｗ３×１を含む）が生成され、それら８つの式から、この平行移動成分の値が得られる。変換行列Ｔはカメラの姿勢の大まかな推定を表す。画像雑音、動きによるぶれ及びカメラ校正の精度不足が存在する場合、一般に、校正マーカパターン２９８の１つの画像に基づいて判定された変換行列Ｔは、拡張現実システムに適用するのに十分な精度を有していないという点に注意することが重要である。
【００７５】
ステップ４０３に続いて、次の検査ステップ４０４では、プロセッサ２０５は、初期キーフレーム（又はキー画像）が設定されたか否かを検査するために使用される。初期キーフレームが既に設定されている場合、方法４００は、図４Ｂに示される投影ステップ４０６へ進む。本例において、ステップ４０４で初期キーフレームが設定されていると判定されるということは、現在のフレームが図２Ａの画像２９２であることを意味する。これに対し、初期キーフレームが設定されていない（すなわち、今回初めて校正マーカパターン２９８が検出された）場合、本例に従えば、現在のフレームは画像２９１であり、方法４００は設定ステップ４０５へ進む。ステップ４０５において、プロセッサ２０５は、現在のフレーム（例えば画像２９１）を初期キーフレームとして設定し、方法４００は読み取りステップ４０１に戻り、メモリ２０６及び／又はハードディスクドライブ２１０から次の入力フレーム（例えば画像２９２）を読み取る。
【００７６】
投影ステップ４０６において、プロセッサ２０５は、校正マーカパターン２９８の予想画像座標を推定するために、ステップ４０３で判定されたカメラ姿勢に基づいて既知の校正マーカパターン２９８から取り出された１組の隅を初期キーフレーム（例えば画像２９１）及び現在のフレーム（例えば画像２９２）に投影するために使用される。既知の校正マーカパターン２９８から取り出された１組の隅は事前に判定されており、ステップ４０６においてメモリ２０６又は記憶装置２１０からアクセスされる。別の構成において、１組の隅は、ディスク記憶媒体２２５及び／又はコンピュータネットワーク（９２０又は９２２）からアクセスされる。既知の校正マーカパターン２９８から取り出された１組の隅は、校正マーカパターン２９８の領域全体にまばらに且つ一様に分散されていることが望ましい。１つの構成において、校正マーカパターン２９８から少なくとも２０個の隅の特徴が選択される。
【００７７】
以下に詳細に説明されるように、図４Ｂに示される続くステップ４０７〜４０９において、プロセッサ２０５は、第１の画像（例えば画像２９１の形の初期キーフレーム）と関連する校正マーカパターン２９８の特徴に対応する第１の画像中の第１の画像特徴を判定するために方法４００で使用される。第１の画像特徴は、第１の画像を撮像するために使用されたカメラ２２０の第１の姿勢に基づいて判定される。次に、プロセッサ２０５は、複数の画像のうち第２の画像（例えば画像２９２）を撮像するために使用されたカメラの第２の姿勢に基づいて第２の画像中の第１の画像特徴と視覚的に一致する第２の画像特徴を判定するために使用される。
【００７８】
検出ステップ４０７において、プロセッサ２０５は、隅検出器を使用して初期キーフレーム（例えば画像２９１）及び現在のフレーム（例えば画像２９２）から突出（salient）画像特徴を検出するために使用される。１つの構成において、非最大抑制型のＦＡＳＴ−１０隅検出器が使用される。あるいは、初期キーフレーム（例えば画像２９１）中の突出画像特徴を検出するために、ハリス隅検出器、モラベック隅検出器、ＳＵＳＡＮ隅検出器、ＳＩＦＴ又はＳＵＲＦ隅検出器が使用されてもよい。
【００７９】
それに代わる構成において、ステップ４０７では、投影ステップ４０６で判定された初期キーフレーム（例えば画像２９１）中及び現在のフレーム（例えば画像２９２）中の校正マーカパターン２９８の隅の予想画像座標の付近の画像領域のみが検査される。この画像領域の大きさは、校正マーカパターン２９８の大きさ、位置及び姿勢と、ステップ４０３で判定されたカメラ姿勢とに基づいて判定される。
【００８０】
次に、方法４００は、検出ステップ４０７からマッチングステップ４０８へ進み、初期キーフレーム（例えば画像２９１）と、メモリ２０６及び／又はハードディスクドライブ２１０に記憶されている現在のフレーム（例えば画像２９２）とにおいて校正マーカパターン２９８の隅に対応する互いに一致する画像特徴を判定する。
【００８１】
図５を参照して、マッチングステップ４０８で実行される一致した画像特徴を判定する方法５００を説明する。方法５００は、ハードディスクドライブ２１０に常駐し且つプロセッサ２０５により実行を制御されるソフトウェアアプリケーションプログラム２３３の１つ以上のコードモジュールとして実現される。
【００８２】
方法５００の第１の選択ステップ５１０において、プロセッサ２０５は、校正マーカパターン２９８のすべての隅が処理されたか否かを判定するために使用される。処理すべき隅が残っていない場合、初期キーフレーム（例えば画像２９１）と現在のフレーム（例えば画像２９２）との間で一致したすべての隅の画像特徴が判定され、方法５００は終了し、方法４００は推定ステップ４０９に進む。処理すべき隅がまだ残っている場合、方法５００は判定ステップ５２０に進む。
【００８３】
判定ステップ５２０において、プロセッサ２０５は、校正マーカパターン２９８の隅に対応する初期キーフレーム（例えば画像２９１）中の１組の突出画像特徴候補を判定するために使用される。１組の突出画像特徴候補は、ステップ４０６で判定された選択された隅の予想画像座標から突出画像特徴までのユークリッド距離に基づいて判定される。
【００８４】
１つの構成において、選択された隅の予想画像座標を中心とする半径が１０画素の円形検索領域が定義される。この円形検索領域の中で発見されたすべての突出画像特徴は、投射された隅の場所になりうる候補であると考えられる。別の構成において、矩形の検索領域が使用され、矩形の検索領域の寸法は、ステップ４０３で判定された推定カメラ姿勢の位置及び姿勢によって決まる。
【００８５】
ステップ５２０に続いて、次の検査ステップ５３０において、プロセッサ２０５は、処理すべき画像特徴候補が残っているか否かを検査するために使用される。すべての画像特徴候補が処理されていた場合、方法５００は検査ステップ５１０に戻り、校正マーカパターン２９８の次の隅を処理する。処理すべき画像特徴候補が残っている場合、方法５００はステップ５４０へ進む。
【００８６】
マッチングステップ５４０において、ステップ５２０で初期キーフレームから判定された選択された各画像特徴候補は、メモリ２０６及び／又はハードディスクドライブ２１０に記憶されている現在のフレームの１組の画像特徴とマッチングされる。マッチングされる現在のフレーム中の１組の画像特徴は、ステップ４０６で判定された選択された隅の予想画像座標から画像特徴までのユークリッド距離に基づいて判定される。ステップ５４０に続いて、方法５００はステップ５３０に戻り、現在処理中の所定の隅に対して最もよくマッチングする特徴が発見されるまでステップ５４０が繰り返される。
【００８７】
１つの構成において、ステップ５４０では、初期キーフレーム及び現在のフレームの双方における突出画像特徴の場所を中心とする８×８パッチが抽出される。次に、８×８パッチは、零平均平方誤差和（ＺＳＳＤ）の尺度を使用してマッチングされる。最高のＺＳＳＤスコアを有する対の画像特徴が校正マーカパターン２９８の現在の隅に関する最良の一致として選択される。あるいは、選択された隅の予想画像座標に最も近く且つ所定の閾値を超えるＺＳＳＤスコアを有する対の画像特徴が校正マーカパターン２９８の現在の隅に関する最良の一致として選択される。
【００８８】
別の構成において、発見ステップ５４０で、選択された画像特徴候補と、現在のフレームの１組の画像特徴と、のマッチングを行うために、１６×１６パッチ又は３２×３２パッチなどの異なるパッチサイズ及び平方誤差和（ＳＳＤ）又は絶対値誤差和（ＳＡＤ）などの異なる類似度尺度が使用される。
【００８９】
図４Ｂに戻ると、方法４００は、判定ステップ４０８に続く推定ステップ４０９へ進む。推定ステップ４０９において、プロセッサ２０５は、第１の画像特徴の位置、第２の画像特徴の位置、第１のカメラ姿勢及び第２のカメラ姿勢に基づいて校正マーカパターン２９８の特徴の再構成位置を判定するために使用される。
【００９０】
推定ステップ４０９において、プロセッサ２０５は、ステップ４０８で判定された校正マーカパターン２９８の隅に対応する一致する特徴の画像座標及び初期キーフレーム（例えば画像２９１）と現在のフレーム（例えば画像２９２）との相対姿勢に基づいて、三角測量により校正マーカパターン２９８の隅の３Ｄ位置を推定するために使用される。相対カメラ姿勢は、方法４００のステップ４０３で判定された初期キーフレームのカメラ姿勢及び現在のフレームのカメラ姿勢に基づいて判定される。
【００９１】
１つの構成において、ステップ４０９では線形三角測量が実行される。例えば、空間内の点Ｘの２つの観測ｘ及びｘ'並びに初期キーフレーム（例えば画像２９１）及び現在のフレーム（例えば画像２９２）の投影行列Ｐ及びＰ'がそれぞれ与えられた場合、点Ｘの奥行きは式（７）及び（８）に従って判定される。
【００９２】
【数７】
0005491611.tif 000008
【００９３】
【数８】
0005491611.tif 000009
【００９４】
（式７）でクロス積を計算すると、
【００９５】
【数９】
0005491611.tif 000010
【００９６】
（式９）は、３つの一次方程式を使用して次のように書き改めることができる。
【００９７】
【数１０】
0005491611.tif 000011
【００９８】
式中、ｐｉＴは投影行列Ｐの行である。式（１０）に従って次のようにＡＸ＝０の形の式を合成できる。
【００９９】
【数１１】
0005491611.tif 000012
【０１００】
４つの同次未知数を含む式（１０）の４つの式は、式（１１）に従って特異値分解（ＳＶＤ）を実行することにより解くことができる。
【０１０１】
【数１２】
0005491611.tif 000013
【０１０２】
式中、Ｕ及びＶは４×４行列であり、ＶＴはＶの共役転置であり、Σは４×４対角行列である。式（１１）の解Ｘは、行列Ｖの最終列に対応する。
【０１０３】
１つの構成において、校正マーカパターン２９８の隅の３Ｄ位置を判定するために、サンプソンの距離尺度などの適切なコスト関数を最小化する反復アルゴリズム又は非反復アルゴリズムが使用される。
【０１０４】
次に、方法４００は、推定ステップ４０９から判定ステップ４１０へ進む。判定ステップ４１０において、プロセッサ２０５は、校正マーカパターン２９８の特徴の再構成位置に基づいて３Ｄ空間における３Ｄ再構成誤差を判定するために使用される。再構成誤差は校正マーカパターン２９８の隅ごとに判定される。隅ごとの再構成誤差は、プロセッサ２０５によりメモリ２０６及び／又はハードディスクドライブ２１０に記憶される。１つの構成において、再構成誤差は、拡張現実システムの構成後の座標系で測定される。例えば、図６を参照して説明すると、再構成誤差６０１は、パターンＸｍａｒｋｅｒの隅の実際の位置とステップ４０９で判定された再構成Ｘｒｅｃｏｎｓｔ６０２の位置との間のユークリッド距離である。パターンＸｍａｒｋｅｒのそのような隅の再構成位置Ｘｒｅｃｏｎｓｔ６０２は、一致した特徴及び相対カメラ姿勢に基づく。図６に示されるように、校正の不正確さ、雑音及び動きによるぶれのために、カメラ姿勢（例えば６０３）は不正確になる場合がある。図６は、観測された隅の特徴６０４（すなわちｘＬ及びｘＲ）並びに投影された隅６０５（すなわちｘ＾２及びｘ＾Ｒ）を示す。投影された隅（例えば６０５）は、判定されたカメラ姿勢に基づいて判定される。パターンＸｍａｒｋｅｒの隅の実際の位置は所定の位置であり、マップ初期設定中に入力として提供される。１つの実施形態において、パターンＸｍａｒｋｅｒの実際の位置は、マップ初期設定ステップの間にユーザにより提供される。別の実現形態において、パターンＸｍａｒｋｅｒの実際の位置は、コンピュータモジュール２０１により受信されたジオタグ付きビーコンを介して取得される。コンピュータモジュール２０１は、受信されたビーコンに基づいて実際の場所を判定する。
【０１０５】
続くステップ４１１〜４１３において、プロセッサ２０５は、判定された再構成誤差がシーン再構成に関する所定の基準を満たす場合に拡張現実システムの座標系を構成するための第１の画像（すなわち現在のフレームの形）を選択するために使用される。決定ステップ４１１において、プロセッサ２０５は、校正マーカパターン２９８の隅の３Ｄ再構成の品質が十分であるか否かを判定するために使用される。再構成の品質が十分である場合、方法４００は設定ステップ４１２へ進み、現在のフレーム（例えば画像２９２）をキーフレームとして設定する。そうでない場合、方法５００は決定ステップ４１５へ進む。
【０１０６】
１つの構成において、
１）再構成誤差が隅の再構成は成功であると示し（すなわち、隅の再構成誤差が第１の閾値Ｔ１より小さい場合）且つ
２）再構成に成功した隅の数が第２の閾値Ｔ２より大きい
場合、校正マーカパターン２９８の隅の３Ｄ再構成の品質は十分であると考えられる。
【０１０７】
別の構成において、閾値Ｔ１は固定ではない。閾値Ｔ１は、説明される方法を実現する拡張現実システムで要求される精度に応じて、システムのユーザの設定に従って動的に調整される。
【０１０８】
更に別の構成において、３Ｄ再構成の品質基準は、校正マーカパターン２９８の隅の再構成誤差の平均及び分散に基づく。
【０１０９】
次に、方法４００はステップ４１２へ進む。ステップ４１１で校正マーカパターン２９８の再構成された隅の品質は十分であると判定されているので、ステップ４１２では、プロセッサ２０５は、メモリ２０６及び／又はハードディスクドライブ２１０に記憶されている現在のフレーム（例えば画像２９２）を第２のキーフレームとして設定するために使用される。初期キーフレーム（例えば画像２９１）及び現在のフレーム（例えば画像２９２）は、初期３Ｄマップ（例えば図７に示されるようなマップ２９５）を構成するためにマップ初期設定ステップ４１３において使用される立体画像対を形成する。
【０１１０】
ステップ４１２に続いて、方法４００の構成ステップ４１３において、プロセッサ２０５は、初期キーフレーム（例えば画像２９１）及び第２のキーフレーム（すなわち現在のフレーム）（例えば画像２９２）に基づいて、メモリ２０６及び／又はハードディスクドライブ２１０内でシーン２９３のマップを構成するためのマップ初期設定を実行するために使用される。ＦＡＳＴ−１０隅検出器のような隅検出器を使用して、初期キーフレーム（例えば画像２９１）から、図２Ａ及び図３の３Ｄ球形オブジェクト２９９及び３Ｄ立方体オブジェクト２９７からの自然画像特徴を含む１組の自然画像特徴が抽出される。あるいは、初期キーフレーム（例えば画像２９１）の隅を検出するために、ハリス隅検出器、モラベック隅検出器、ＳＵＳＡＮ隅検出器、ＳＩＦＴ、又はＳＵＲＦ隅検出器が使用されてもよい。マップ初期設定ステップ４１３において、プロセッサ２０５は、推定ステップ４０９で判定された相対カメラ姿勢に基づいて現在のフレーム（例えば画像２９２）における特徴対応を判定するためのエピポーラ検索を実行するためにも使用される。画像２９１及び２９２のような一対の立体画像の間の相対カメラ姿勢が与えられている場合、一方の画像中の１点は、第２の画像中のいわゆるエピポーラ線に対応する。このエピポーラ線に沿った一致点の場所を判定するためにパッチ検索が実行される。次に、プロセッサ２０５は、ステップ４１３において、判定された特徴対応の画像座標及び相対カメラ姿勢に基づいてそれらの自然画像特徴に対応する隅の３Ｄ座標を判定する目的で三角測量を実行するために使用される。ステップ４１３の出力は初期３Ｄマップであり、図２Ａの例によれば、これは、図７に示されるような３Ｄ点群マップ２９５である。方法４００に従って校正された３Ｄマップ２９５は、メモリ２０６及び／又はハードディスクドライブ２１０に記憶される。３Ｄ点群２９５が処理４００により生成された後、校正マーカパターンはシーンから除去可能である。
【０１１１】
１つの構成において、方法４００は、非常に密度の高い３Ｄマップ２９５を生成するために、マップ初期設定に際して初期キーフレーム中の検出されたすべての隅の特徴を使用する。
【０１１２】
別の構成において、マップ初期設定には、初期キーフレーム中の検出された隅の特徴のうちサブセットのみが選択される。選択される画像特徴の数は事前定義済み閾値に限定され、選択される特徴は、初期キーフレーム中にまばらに且つ一様に分散する。
【０１１３】
決定ステップ４１１において隅の再構成の品質が不足している場合、図４Ｃに示されるように、方法４００は、ステップ４１１から決定ステップ４１５へ進む。ステップ４１５において、プロセッサ２０５は、初期キーフレームが撮像されてから経過した時間の長さが所定の閾値Ｔを超えたか否かを判定するために使用される。初期キーフレーム撮像後に経過した時間が閾値Ｔに満たない場合、方法４００は、方法４００のステップ４０１に戻り、次の入力フレームを処理する。そうでない場合、方法４００は決定ステップ４１６へ進む。
【０１１４】
方法４００のステップ４１６において、プロセッサ２０５は、閾値Ｔがメモリ２０６及び／又はハードディスクドライブ２１０に記憶されている所定の閾値ＭＡＸより小さいか否かを判定するために使用される。Ｔの現在の値がＭＡＸより小さい場合、方法４００は設定ステップ４１７へ進み且つ低速カメラ運動を処理するために閾値Ｔは２倍に増分される。これに対し、閾値ＴがＭＡＸ以上である場合、マップ初期設定は失敗したと判定され、方法４００は設定ステップ４１９へ進む。設定ステップ４１９において、閾値Ｔはデフォルト設定値ＤＥＦＡＵＬＴに再初期設定される。
【０１１５】
ステップ４１７及び４１９に続いて、次の設定ステップ４１８は、現在のフレーム（例えば画像２９２）を初期キーフレームとして設定し、方法４００はステップ４０１に戻って、次の入力フレームを処理する。
【０１１６】
更に別の構成において、図２Ａのビデオシステム２００は、マップ初期設定を成功させるために必要とされる移動カメラ２２０の距離及び方向を示す視覚標識及び／又は可聴標識を提供する。この視覚標識及び／又は可聴標識は、例えばビデオディスプレイ２１４及び／又はスピーカ２１７を介して提供される。方法４００により初期キーフレームが選択されていると仮定すると、立体基線条件を満たすために、移動カメラ２２０は、初期キーフレームの位置からある特定の距離だけ側方へ移動されなければならない。立体基線は、この場合、初期キーフレームの位置における移動カメラ２２０と校正マーカパターン２９８との間の距離であるシーン奥行きに関連する。立体基線とシーン奥行きとの関係は実験に基づいて判定される場合が多く、１つの構成において、立体基線距離はシーン奥行きの１０分の１とほぼ等しくなるように設定される。あるいは、マップ初期設定を成功させるためのカメラの動きを推定するために、ステップ４１１で判定された再構成の品質が使用される。再構成誤差（すなわち奥行き分解能）は、所定の奥行きを有するシーンに対して基線距離にほぼ反比例する。従って、プロセッサ２０５は、基線距離をステップ４１１で判定された推定再構成誤差と乗算し、次にこの乗算の結果を再構成誤差の所望のレベルで除算することにより、移動カメラの現在の位置から必要とされるカメラの動きを推定することができる。カメラの移動方向は、校正マーカパターン２９８の面と平行になるように制限される。
【０１１７】
次に、例によって方法４００を更に詳細に説明する。１つの例において、方法４００は屋内ナビゲーションシステムに使用される。この場合、１つのシーンの中で新たに観測されたオブジェクトのマッピングと、追跡されるオブジェクトからのカメラ姿勢（すなわち位置及び姿勢）の限定とはリアルタイムに同時に実行される。そのような屋内ナビゲーションアプリケーションの場合、ユーザは、展示住宅（「デモハウス」）の室内などの屋内シーンをカメラ付き携帯電話又は光学シースルーヘッドマウントディスプレイ（ＨＭＤ）などの撮像表示デバイスを介して見ている。まず、ユーザは、図１Ａ又は図１Ｂに示される校正マーカパターン２９８のような校正マーカパターンに直接目を向けることにより、屋内ナビゲーションシステムを初期設定する。この場合、校正マーカパターンは、目に見えるオブジェクトの縮尺及びシーン中のグローバル座標系を定義する。校正マーカパターンは、例えば展示住宅の玄関ドアの面、入口付近の床面又は下駄箱の上面に現れる。屋内ナビゲーションシステムは、方法４００に従って、撮像画像中の校正マーカパターンの存在を自動的に検出し、検出された校正マーカパターンと共に第１の画像を初期キーフレームとして提供する。再構成誤差が所定の基準を満たさない場合、ビデオシステム２００は、マップ初期設定のための所望のユーザの動きを示す視覚的命令及び可聴命令を提示する。例えば、図８は、ビデオディスプレイ２１４の右下隅にユーザが動くべき所望の方向及びその推定距離（すなわち１ｍ）を示す点滅矢印８０１及びテキスト８０２を示す。同時に、プロセッサ１０５は、「左へ１ｍ動いてください」のような命令をスピーカ２１７から発生させる。ユーザが校正マーカパターンを見ながら入口を通って展示住宅に入るにつれて、マップ初期設定のために、続く画像のうち１つが方法４００に従って選択される。
【０１１８】
展示住宅の例の説明を続けると、方法４００に従って（すなわち、ステップ４１２で）第２のキーフレームが判定された後、初期キーフレーム及び第２のキーフレームから自然特徴（例えば隅点）が抽出される。次に、校正マーカパターンから導出された学習済みエピポーラ幾何に基づいて特徴のマッチングが実行される。既知のエピポーラ幾何に基づいて、空間内の点の３Ｄ場所が判定される。また、三角測量により対の特徴対応も判定される。次に、展示住宅内部のシーンの初期３Ｄマップが生成される（ステップ４１３）。その後の追跡及び場所限定に、校正マーカパターンは不要である。
【０１１９】
その後、展示住宅に関して生成された３Ｄマップの中の既存のオブジェクトを追跡し続けるために、何らかの適切な並列追跡及びマッピングアルゴリズムが実行される。そのような並列追跡及びマッピングアルゴリズムは、検出された特徴の場所及び対応するマップ中の点に基づいて現在のカメラ姿勢（位置及び姿勢）を判定するために使用される。ユーザが展示住宅内に更に進入し、周囲環境の未調査領域に入るにつれて、生成された３Ｄマップに新たに検出された自然特徴が追加される。このような屋内ナビゲーションシステムは、補助テキスト情報又は合成オブジェクトを画像の上に重ねる（overlay）。補助テキスト情報は、グローバル座標系に関してユーザの現在の位置を示すと共に、初期ユーザ位置から歩いた距離を示す。合成オブジェクトは、壁の塗装、家具、家電製品、更にはユーザが展示住宅の窓又はバルコニーから外を見た場合の仮想オーシャンビューを含む。
【０１２０】
以上説明した方法は、製品設計に使用可能である。一例として、キューブの一面に校正マーカパターン（例えば校正マーカパターン２９８）を有するテクスチャ化キューブが考えられる。この場合、まず設計者は、カメラ付き携帯電話又はヘッドマウントディスプレイ（ＨＭＤ）を介して校正マーカパターンを見ることにより拡張現実（ＡＲ）システムを初期設定し、テクスチャ化キューブを新たな場所へ移動する。前述のように初期マップを生成するために、一対のキーフレームが判定される。カメラ付き携帯電話又はヘッドマウントディスプレイを通して見た場合に、例えばコピー機を表現するコンピュータグラフィックスが画像に重ね合わされてもよい。そこで、種々の視角及び観察位置からデザインを検討するために、設計者はキューブを移動させるか又は回転させる。次に、ボタン選択に応答したコピー機の動作をシミュレートするコンピュータアニメーションを見るために、合成プリンタのボタンが選択される。
【０１２１】
以上、本発明のいくつかの実施形態のみを説明したが、本発明の範囲及び精神から逸脱することなく、それらの実施形態に対して変形及び／又は変更を実施可能である。実施形態は一例であり、限定的なものではない。
【０１２２】
本明細書の記述に関して、「備える」という用語は、「主に含むが、専ら必要ではない」又は「有する」又は「含む」ことを意味し、「〜のみから構成される」という意味ではない。「備える」の語形変化は、それに対応して意味の変化を示す。
【０１２３】
［関連特許出願の参照］
本出願は、２０１１年１２月１２日に出願されたオーストラリア国特許出願第２０１１２５３９７３号についての優先権を、３５Ｕ．Ｓ．Ｃ．セクション１１９に基づいて請求するものであり、その全ての記載内容の参照により本出願に援用する。
【図１Ａ】
0005491611.tif 000014
【図１Ｂ】
0005491611.tif 000015
【図２Ａ】
0005491611.tif 000016
【図２Ｂ】
0005491611.tif 000017
【図３】
0005491611.tif 000018
【図４Ａ】
0005491611.tif 000019
【図４Ｂ】
0005491611.tif 000020
【図４Ｃ】
0005491611.tif 000021
【図５】
0005491611.tif 000022
【図６】
0005491611.tif 000023
【図７】
0005491611.tif 000024
【図８】
0005491611.tif 000025