(57)【特許請求の範囲】
【請求項１】
カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択する方法であって、
前記カメラにより撮像されたフレームを取得する取得工程と、
前記フレームに３次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する選択工程と
を有することを特徴とする方法。
【請求項２】
更に、
前記フレームに３次元空間におけるマップ点群を投影する投影工程を有することを特徴とする請求項１に記載の方法。
【請求項３】
前記選択工程は、
前記フレーム内の部分領域ごとに、前記投影された３次元空間におけるマップ点群に対応する特徴を決定する工程と、
前記フレーム内の部分領域について前記決定した特徴のヒストグラムを作成する工程と、
前記作成されたヒストグラムに基づいて、前記フレーム内の部分領域のうちの１つを未観測領域として決定する工程と
を有することを特徴とする請求項１に記載の方法。
【請求項４】
更に、前記未観測領域のサイズに基づいて前記フレームに優先順位を付ける工程を有する、ことを特徴とする請求項１に記載の方法。
【請求項５】
更に、
前のフレームと関連づけられている視点で前記未観測領域を投影する工程と、
前記前のフレーム内の前記投影された未観測領域のサイズを決定する工程と、
前記投影された未観測領域に対する前記決定されたサイズの比を決定する工程とを有し、前記フレームは、前記決定されたサイズ及び前記決定された比のうちの少なくとも１つに基づいて選択されることを特徴とする請求項１に記載の方法。
【請求項６】
更に、前のフレームと関連づけられている視点で前記未観測領域を投影する工程を有し、前記未観測領域の投影は、前記視点における前記カメラの位置及び姿勢に基づいていることを特徴とする請求項１に記載の方法。
【請求項７】
更に、前記選択されたフレームの部分領域における特徴の数が、所定の閾値よりも少ないか否かを判断する工程を有することを特徴とする請求項１に記載の方法。
【請求項８】
前記選択工程では、前記部分領域内の特徴の密度が所定の閾値よりも低い場合に、該部分領域を未観測領域として決定することを特徴とする請求項１に記載の方法。
【請求項９】
更に、前記未観測領域のサイズが所定の閾値よりも大きいか否かを判断する工程を有することを特徴とする請求項１に記載の方法。
【請求項１０】
前記未観測領域を決定するために所定の領域のサイズが用いられることを特徴とする請求項１に記載の方法。
【請求項１１】
前記未観測領域を決定するために、所定の領域内の特徴の数が用いられることを特徴とする請求項１に記載の方法。
【請求項１２】
カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択する装置であって、
前記カメラにより撮像されたフレームを取得する取得手段と、
前記フレームに３次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する手段と
を有することを特徴とする装置。
【請求項１３】
カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択するシステムであって、
データ及びコンピュータプログラムを格納するメモリと、
前記コンピュータプログラムを実行するために前記メモリと結合されているプロセッサとを有し、該コンピュータプログラムは、
前記カメラにより撮像されたフレームを取得し、
前記フレームに３次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する
ための命令を有する
ことを特徴とするシステム。
【請求項１４】
コンピュータに、請求項１乃至１１の何れか１項に記載の方法の各工程を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に拡張現実感（ＡＲ）システムに関するものであり、特に、高速且つ効率的なマップ拡張に関するものである。本発明はまた、複数のビデオイメージフレームからフレームを選択する方法、装置、及びシステムに関するものである。本発明はまた、複数のビデオイメージフレームからフレームを選択するコンピュータプログラムを記録したコンピュータ読み取り可能な媒体を含むコンピュータプログラムに関するものである。
【背景技術】
【０００２】
拡張現実感（ＡＲ）とは、現実世界とコンピュータにより生成されたデータとの融合を取り扱うコンピュータリサーチの分野であって、現実映像にコンピュータグラフィックオブジェクトをリアルタイムで融合させる。殆どの拡張現実感撮像システムは、ユーザの環境に関する所定の情報を取り扱う。この所定の情報とは、通常は、何らかのマップの形態である。ユーザは、このマップに基づいて環境と接触することができる。提供されたマップが広範囲のものである場合、このマップから直接的且つ正確に位置合わせ（registration）が可能となる。
【０００３】
マップを用いて位置合わせを行うことは、カメラを用いた拡張現実感トラッキングにおいて用いられる共通の方法である。広範囲のマップを生成する従来方法の１つは、初期化中に、ユーザ環境中に密に配された基準マーカ群を使用することである。しかしながら、マップを生成することは、困難で時間がかかる。そのようなマップは、たいてい熟練した技術者により手動で生成される。
【０００４】
未知の環境においてカメラなどのハンドヘルドデバイスをリアルタイムでトラッキングする方法が知られている。トラッキング及びマッピングは、通常は分離されて、マルチコアプロセッサ（例えば、スマートフォンやデスクトップコンピュータ）において別個のスレッドとして並行に実行される。トラッキングスレッドは、不規則なハンドヘルドモーションを、自然画像特徴を用いてリアルタイムで確実にトラッキングするタスクを取り扱う。トラッキングスレッドよりも低いレートで動作するマッピングスレッドは、「キーフレーム」と呼ばれる前に観察した画像のサブセットから点特徴の３次元（３Ｄ）マップを生成する。マップはバンドル調整を用いてリファインされる。
【０００５】
ハンドヘルドデバイスをトラッキングする周知の方法における１つの欠点は、その方法ではマップの拡張が非常に遅い、ことである。そのトラッキング方法は、現フレームが新たなキーフレームとして追加された場合にのみ、マップを拡張しようとする。一般的に、キーフレームとなるためには、現フレームは、トラッキングの品質が高い（例えば、観察されるマップ点の数と潜在的には可視のマップ点の数との比が所定の閾値を超えている）、最近のキーフレームが追加されてからの経過時間が２／３秒若しくは２０フレームなどの何らかの所定の閾値を超えている、フレームを撮像するカメラが、そのマップにおいてすでにキーフレームと関連づけられている最近接のカメラ位置から最小の距離にある、ということを含む条件を満足する必要がある。これらの条件は、キーフレーム間の距離を保証することによって冗長なキーフレームの追加を避けつつ、新たなマップ点を三角測量で測定するための好適な基準を提供しようとしている。しかしながら、そのような条件は、環境を探索する上記の方法の能力を限定している。更に、キーフレームの初期セットを撮像してしまうと、新たなマップ点を追加することは困難となる。現フレームは回転（すなわちパンニング）によってかなり異なるシーンのエリアとなるが、カメラ位置がマップ上で少なくとも１つのキーフレームに近接する可能性があるので、新たなマップ点を追加することは困難となる。新たに探索するエリアは未観測であることから、新たなマップ点を追加することの困難性は、早く且つ信頼性のある環境の探索の妨げとなる。
【０００６】
ハンドヘルドデバイスをトラッキングする既知の方法では、新たなキーフレームを追加した後、既存のキーフレームが選択されて、該新たなキーフレームと組み合わせてマップを拡張する。新たなマップ点は、マッチする点の対応から、三角測量により生成される。この既知の方法では、可能なステレオベースライン分離を限定する、ペアリングのための最近接のキーフレームを使用する。最近接のキーフレームは必ずしも、ビューイングエリアの最大オーバーラップを有するものではない。
【０００７】
キーフレーム間の最小距離を要求するのは、単にカメラを回転させても新たなキーフレームは生成されないであろうことを意味する。ある方法では、カメラが観察している方向に基づいて新たなキーフレームを追加している。現在のカメラの位置から最小距離よりも小さく離れている関連カメラ位置を有するそれぞれのキーフレームについて、現フレームの観察方向と、該キーフレームの観察方向と、を比較する。それぞれの観察方向の間の角度が所定の閾値よりも大きい場合には、現フレームを新たなキーフレームとして追加する。
【０００８】
有効な三角測量を保証し且つ新たなマップ点の数を最大化するために、ある既知の方法では先ず、カメラのビューイングベクトル同士の交点のうち最も近接する交点を決定する。そして、この交点とカメラ位置との間の距離が、キーフレームにおけるシーン深さと比較される。そして、予想される点の深さと実際の深さとの差分が、品質尺度として利用される。小さい差分は、カメラがシーンの同様のエリアを観察していることを意味しており、然るに最も小さい差分のキーフレームをペアリングに用いる。他の方法では、現フレームとの対応が一致する数が最も多いキーフレームを選択する。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明の目的は、既存の構成の１以上の不都合を実質的に解消する若しくは少なくとも改良することにある。
【００１０】
本開示のある様態によれば、カメラにより撮像されたフレームを、該カメラをトラッキングするために用いられるキーフレームとして選択する方法であって、
前記カメラにより撮像されたフレームを取得する取得工程と、
前記フレームに３次元空間におけるマップ点群を投影した投影結果に基づいて前記フレーム内の領域の一部の領域である部分領域において前記マップ点群に対応する特徴の数が閾値よりも小さい場合に前記部分領域を未観測領域として決定し、該決定された未観測領域のサイズに基づいて前記フレームを前記キーフレームとして選択する選択工程と
を有することを特徴とする方法が提供される。
【００１４】
本発明の他の様態も開示される。
【図面の簡単な説明】
【００１５】
本発明の１以上の実施形態は、以下の図面を参照して説明されるであろう。
【図１】図１は、説明される構成が実施されるビデオシステムの概略ブロック図。
【図２Ａ】図２Ａは、図１のビデオシステムの汎用コンピュータを示す概略ブロック図。
【図２Ｂ】図２Ｂは、図１のビデオシステムの汎用コンピュータを示す概略ブロック図。
【図３】図３は、３次元（３Ｄ）マップを生成する方法を示す概略フロー図。
【図４】図４は、移動カメラのポーズを決定する方法を示す概略フロー図。
【図５】図５は、キーフレームを選択する方法を示す概略フロー図。
【図６】図６は、３Ｄマップを保持してリファインする方法を示す概略フロー図。
【図７】図７は、現キーフレームを選択して新たなキーフレームと組み合わせる方法を示す概略フロー図。
【図８Ａ】図８Ａは、図７の方法で用いるソフトバリューロジックのセットを示す図。
【図８Ｂ】図８Ｂは、図７の方法で用いるソフトバリューロジックのセットを示す図。
【図８Ｃ】図８Ｃは、図７の方法で用いるソフトバリューロジックのセットを示す図。
【図８Ｄ】図８Ｄは、図７の方法で用いるソフトバリューロジックのセットを示す図。
【図８Ｅ】図８Ｅは、図７の方法で用いるソフトバリューロジックのセットを示す図。
【図９】図９は、新たなキーフレームにおいて決定された再投影未観測領域と、図７の方法で用いられる現キーフレームと、の間のオーバーラップを示す図。
【図１０】図１０は、所定のプリミティブな未観測領域のセットを示す図。
【発明を実施するための形態】
【００１６】
いずれか１つ以上の添付の図面において、同一の図中符号を有するステップ及び／又は特徴を参照する。それに反する意図が示されない限り、これらのステップ及び／又は特徴は、本明細書のために同一の機能又は動作を有する。
【００１７】
図１は、ビデオシステム１００を示す。ビデオシステム１００は、例えばシーン１１０の画像１４０，１４１，１４２を撮像する移動カメラ１２０を有する。ビデオシステム１００は、「拡張現実感」ビデオシステムと称される。後述するように、画像１４０，１４１，１４２のそれぞれは、フレームと称される。
【００１８】
移動カメラ１２０は、通信ネットワーク２２０に接続されている。通信ネットワーク２２０は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク（ＷＡＮ）又は専用ＷＡＮである。
【００１９】
図２Ａに示す如く、ビデオシステム１００は更に、コンピュータモジュール２０１、キーボード２０２、マウスポインタデバイス２０３、スキャナ２２６、マイク２８０などの入力装置と、プリンタ２１５、表示装置２１４及びスピーカ２１７を含む出力装置と、を備える。外部変復調器（モデム）送受信機デバイス２１６は、接続２２１を介して通信ネットワーク２２０と通信するためにコンピュータモジュール２０１により使用される。通信ネットワーク２２０は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク（ＷＡＮ）又は専用ＷＡＮである。接続２２１が電話線である場合、モデム２１６は従来の「ダイヤルアップ」モデムである。あるいは、接続２２１が大容量（例えば、ケーブル）接続である場合、モデム２１６はブロードバンドモデムである。無線モデムは、通信ネットワーク２２０に無線接続するために更に使用される。
【００２０】
一般にコンピュータモジュール２０１は、少なくとも１つのプロセッサユニット２０５と、メモリユニット２０６とを備える。例えばメモリユニット２０６は、半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体読み出し専用メモリ（ＲＯＭ）を有する。コンピュータモジュール２０１は、ビデオディスプレイ２１４、スピーカ２１７及びマイク２８０に結合するオーディオ−ビデオインタフェース２０７と、キーボード２０２、マウス２０３、スキャナ２２６、カメラ２２７及び必要に応じてジョイスティック又は他のヒューマンインタフェースデバイス（不図示）に結合する入出力（Ｉ／Ｏ）インタフェース２１３と、外部モデム２１６及びプリンタ２１５用のインタフェース２０８と、を含む複数のＩ／Ｏインタフェースを更に備える。いくつかの実現例において、モデム２１６は、インタフェース２０８等のコンピュータモジュール２０１内に組み込まれる。コンピュータモジュール２０１は、接続２２３を介してシステム１００がローカルエリアネットワーク（ＬＡＮ）として知られているローカルエリア通信ネットワーク２２２に接続できるようにするローカルネットワークインタフェース２１１を更に有する。図２Ａに示されるように、ローカル通信ネットワーク２２２は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えるデバイスを含むワイドネットワーク２２０に接続２２４を介して更に結合する。ローカルネットワークインタフェース２１１は、ＥｔｈｅｒｎｅｔＴＭ回路カード、ＢｌｕｅｔｏｏｔｈＴＭ無線装置又はＩＥＥＥ８０２．１１無線装置を備えるが、多数の他の種類のインタフェースがインタフェース２１１に対して実現される。
【００２１】
Ｉ／Ｏインタフェース２０８及び２１３は、直列接続性及び並列接続性のいずれか一方又は双方を提供する。一般に直列接続性は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に従って実現され、対応するＵＳＢコネクタ（不図示）を有する。記憶装置２０９が提供され、一般に記憶装置２０９はハードディスクドライブ（ＨＤＤ）２１０を含む。フロッピディスクドライブ及び磁気テープドライブ（不図示）等の他の記憶装置が更に使用されてもよい。光ディスクドライブ２１２は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ  ＤｉｓｃＴＭ）、ＵＳＢ−ＲＡＭ、ポータブルな外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム１００に対する適切なデータソースとして使用される。
【００２２】
コンピュータモジュール２０１の構成要素２０５〜２１３は、一般に、結果として当業者に既知であるシステム１００の動作の従来のモードから得られる方法で相互接続バス２０４を介して通信する。例えばプロセッサ２０５は、接続２１８を使用してシステムバス２０４に結合される。同様に、メモリ２０６及び光ディスクドライブ２１２は、接続２１９によりシステムバス２０４に結合される。説明した構成を実施するコンピュータの例には、ＩＢＭ−ＰＣ及び互換性のあるもの、Ｓｕｎ  Ｓｐａｒｃｓｔａｔｉｏｎｓ、Ａｐｐｌｅ  ＭａｃＴＭ又は同様のコンピュータシステムが含まれる。
【００２３】
後述する方法は、システム１００を使用して実現される。本明細書において説明される図１〜図１０の処理は、システム１００内で実行可能な１つ以上のソフトウェアアプリケーションプログラム２３３として実現される。特に、説明する方法の各ステップは、システム１００内で実行されるソフトウェア２３３中の命令２３１（図２Ｂを参照）により実施される。ソフトウェア命令２３１は、各々が１つ以上の特定のタスクを実行する１つ以上のコードモジュールとして形成される。ソフトウェアは２つの別個の部分に更に分割され、第１の部分及び対応するコードモジュールは開示される方法を実行し、第２の部分及び対応するコードモジュールは、第１の部分とユーザとの間のユーザインタフェースを管理する。
【００２４】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納される。一般にソフトウェア２３３は、ＨＤＤ２１０又はメモリ２０６に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム１００にロードされ、コンピュータシステム１００により実行される。従って、例えばソフトウェア２３３は、光ディスクドライブ２１２により読み出される光学的に読み出し可能なディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）２２５上に格納される。そのようなソフトウェア又コンピュータプログラムを記録したコンピュータ可読媒体は、コンピュータプログラムである。コンピュータシステム１００においてコンピュータプログラムを使用することにより、開示される方法の実施に有利な装置を実施することが好ましい。
【００２５】
いくつかの例において、アプリケーションプログラム２３３は、１つ以上のＣＤ−ＲＯＭ２２５上でユーザが符号化したものに供給されて対応するドライブ２１２を介して読み出されるか、あるいはユーザによりネットワーク２２０又は２２２から読み出される。また、ソフトウェアは、他のコンピュータ可読媒体からシステム１００に更にロードされてもよい。コンピュータ可読記憶媒体は、実行及び／又は処理するために記録された命令及び／又はデータをコンピュータシステム１００に提供するあらゆる非一時的な有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙＴＭ  Ｄｉｓｃ、ハードディスクドライブ、ＲＯＭ又は集積回路、ＵＳＢメモリ、光磁気ディスク、あるいは例えばＰＣＭＣＩＡカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール２０１の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及び／又はデータをコンピュータモジュール２０１に提供することに更に関係する一時的又は非一時的なコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【００２６】
上述したアプリケーションプログラム２３３の第２の部分及び対応するコードモジュールは、ディスプレイ２１４上にレンダリングされるかあるいは表される１つ以上のグラフィカルユーザインタフェース（ＧＵＩ）を実現するように実行される。一般にキーボード２０２及びマウス２０３を操作することにより、システム１００及びアプリケーションのユーザは、ＧＵＩと関連付けられたアプリケーションに制御コマンド及び／又は入力を提供するように機能的に適応可能な方法でインタフェースを操作する。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ２１７を介して出力された音声プロンプト及びマイク２８０を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
【００２７】
図２Ｂは、プロセッサ２０５及び「メモリ」２３４を示す詳細な概略ブロック図である。メモリ２３４は、図２Ａのコンピュータモジュール２０１がアクセスする全てのメモリモジュール（ＨＤＤ２０９及び半導体メモリ２０６を含む）の論理的な集合を示す。
【００２８】
コンピュータモジュール２０１の電源が最初に投入される場合、ｐｏｗｅｒ−ｏｎ  ｓｅｌｆ−ｔｅｓｔ（ＰＯＳＴ）プログラム２５０が実行する。一般にＰＯＳＴプログラム２５０は、図２Ａの半導体メモリ２０６のＲＯＭ２４９に格納される。ソフトウェアを格納するＲＯＭ２４９等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。ＰＯＳＴプログラム２５０は、コンピュータモジュール２０１内のハードウェアを調査して適切に機能することを保証し、一般に、正しく動作するために、プロセッサ２０５、メモリ２３４（２０９、２０６）及び一般にＲＯＭ２４９に更に格納された基本入出力システムソフトウェア（ＢＩＯＳ）モジュール２５１をチェックする。ＰＯＳＴプログラム２５０が正常に実行したら、ＢＩＯＳ２５１は図２Ａのハードディスクドライブ２１０を起動する。ハードディスクドライブ２１０を起動することにより、ハードディスクドライブ２１０上に常駐するブートストラップローダプログラム２５２がプロセッサ２０５を介して実行する。これにより、オペレーティングシステム２５３は、ＲＡＭメモリ２０６にロードされると動作を開始する。オペレーティングシステム２５３は、プロセッサ２０５により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【００２９】
オペレーティングシステム２５３は、メモリ２３４（２０９、２０６）を管理し、コンピュータモジュール２０１上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図２Ａのシステム１００で使用可能な種々のメモリは、各処理が効率的に実行できるように適切に使用されなければならない。従って、集約メモリ２３４は、メモリの特定の部分が割り当てられる方法を示すことを意図するのではなく（特に記載されない限り）、システム１００によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【００３０】
図２Ｂに示されるように、プロセッサ２０５は、制御ユニット２３９、演算論理装置（ＡＬＵ）２４０及びキャッシュメモリと呼ばれる場合もあるローカルメモリ又は内部メモリ２４８を含む多数の機能モジュールを含む。一般にキャッシュメモリ２４８は、レジスタ部に複数の記憶レジスタ２４４〜２４６を含む。１つ以上の内部バス２４１は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ２０５は、接続２１８を使用してシステムバス２０４を介して外部デバイスと通信する１つ以上のインタフェース２４２を更に有する。メモリ２３４は、接続２１９を使用してバス２０４に結合される。
【００３１】
アプリケーションプログラム２３３は、条件付き分岐命令及びループ命令を含む一連の命令２３１を含む。プログラム２３３は、プログラム２３３を実行する場合に使用されるデータ２３２も含む。命令２３１及びデータ２３２は、それぞれ、記憶場所２２８、２２９、２３０及び２３５、２３６、２３７に格納される。命令２３１及び記憶場所２２８〜２３０の相対的なサイズに依存して、特定の命令は、記憶場所２３０に示された命令により示されたように単一の記憶場所に格納される。あるいは、命令は、記憶場所２２８及び２２９に示された命令部分により示されたように、各々が別個の記憶場所に格納される多数の部分にセグメント化される。
【００３２】
一般にプロセッサ２０５は、そこで実行される命令の集合を与えられる。プロセッサ２０５は、命令の別の集合を実行することにより自身が反応する後続の入力を待つ。各入力は、入力装置２０２、２０３の１つ以上により生成されたデータ、ネットワーク２２０、２０２のうちの一方を介して外部ソースから受信したデータ、記憶装置２０６、２０９のうちの一方から検索されたデータ又は対応する読み取り装置２１２に挿入された記憶媒体２２５から検索されたデータを含む多数のソースのうちの１つ以上から提供され、その全てを図２Ａに示す。いくつかの例において、命令の集合を実行した結果、データが出力される。実行することは、データ又は変数をメモリ２３４に格納することも含む。
【００３３】
開示される方法は、対応する記憶場所２５５、２５６、２５７においてメモリ２３４に格納される入力変数２５４を使用する。開示される方法は、対応する記憶場所２６２、２６３、２６４においてメモリ２３４に格納される出力変数２６１を生成する。中間変数２５８は、記憶場所２５９、２６０、２６６及び２６７に格納される。
【００３４】
図２Ｂのプロセッサ２０５を参照すると、レジスタ２４４、２４５、２４６、演算論理装置（ＡＬＵ）２４０及び制御ユニット２３９は、プログラム２３３を構成する命令集合において命令毎に「取り込み、デコード及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、デコード及び実行サイクルの各々は、以下を含む。
【００３５】
記憶場所２２８、２２９、２３０からの命令２３１を取り込むかあるいは読み取る取り込み動作
制御ユニット２３９が取り込まれている命令を判定するデコード動作
制御ユニット２３９及び／又はＡＬＵ２４０が命令を実行する実行動作
その後、次の命令に対する更なる取り込み、デコード及び実行サイクルが実行される。同様に、制御ユニット２３９が値を記憶場所２３２に格納するかあるいは書き込むことにより、格納サイクルが実行される。
【００３６】
図１〜図１０の処理におけるステップ又はサブ処理の各々は、プログラム２３３の１つ以上の部分と関連付けられ、プログラム２３３の示された部分に対して命令集合において命令毎に取り込み、デコード及び実行サイクルを実行するように共に動作するプロセッサ２０５のレジスタ部２４４、２４５、２４７、ＡＬＵ２４０及び制御ユニット２３９により実行される。
【００３７】
あるいは、開示される方法は、開示される方法の機能又は部分機能を実行する１つ以上の集積回路のような専用ハードウェアで実現される。そのような専用ハードウェアには、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、グラフィックプロセッサ、デジタルシグナルプロセッサ又は１つ以上のマイクロプロセッサ及び関連メモリが含まれる。専用ハードウェアは、カメラ１２０に埋め込まれ且つコンピュータモジュール２０１内で実行されるソフトウェアのみで実行される構成に匹敵する機能を有すると考えられるデバイスを更に含む。
【００３８】
１つの構成において、開示される方法は、カメラ１２０のプロセッサにより実行されるソフトウェアとして実現されるか、もしくはカメラ１２０内部の専用ハードウェアを使用して実現される。更に別の構成において、開示される方法は、ソフトウェアモジュールとハードウェアモジュールとの混成構成を使用して実現される。
【００３９】
図１Ａの例において、シーン１１０は、３次元（３Ｄ）球形オブジェクト１１１及び３Ｄ正方形オブジェクト１１２とを含み、ほぼ静止している。フレーム１４０，１４１，１４２は、それぞれ異なる視点からの３Ｄシーン１１０のビューを表している。
【００４０】
１つの構成において、移動カメラ１２０は、シーン１１０を表すフレーム（若しくは画像）１４０，１４１，１４２を撮像するディジタルスチール画像カメラである。他の構成において、移動カメラ１２０は、３次元（３Ｄ）空間内のシーン１１０を表すフレーム群（若しくは画像群）を所定のフレームレートで連続的に撮像するディジタルビデオカメラである。さらなる構成では、カメラ１２０は、ステレオカメラなどのマルチレンズカメラシステムである。さらなる構成では、２以上の別個のカメラを有するマルチビューカメラシステムが、シーン１１０を表すフレーム１４０，１４１，１４２を撮像するために使用されても良い。
【００４１】
移動カメラ１２０は、カメラ内部パラメータを決定するために、あらゆる適切なカメラキャリブレーションアルゴリズムを使用してキャリブレーションされても良い。焦点距離、主点、レンズ歪みパラメータなどのカメラ内部パラメータは、移動カメラ１２０に対して予め定められていても良い。移動カメラ１２０は、シーン１１０に対し、点線のカメラ１２０で示される初期位置にある。図１に示す如く、フレーム（若しくは画像）１４０は、カメラ１２０が初期位置にある場合に該カメラ１２０によって撮像されるシーン１１０のビューを表す。その後、移動カメラ１２０は、矢印１３１で示す如く第２の位置に移動し、そこで移動カメラ１２０は、シーン１１０の異なるビューを表すフレーム（若しくは画像）１４１を撮像する。その後、移動カメラ１２０は、矢印１３２で示す如く、第２の位置から更に、実線で示すカメラ１２０により示される第３の位置に移動する。ここで、第２の位置及び第３の位置は、初期位置とは異なる。
【００４２】
説明のために、図１において実線で示す移動カメラ１２０は、初期位置から新たな位置に移動した後の、点線で示す同じ移動カメラ１２０を表す。図１に示す如く、撮像されたフレーム（若しくは画像）１４２は、新たな位置でカメラ１２０により撮像された、シーン１１０のビューを表す。
【００４３】
フレーム（若しくは画像）１４０，１４１，１４２は、図２Ａのプロセッサ２０５を用いて、通信ネットワーク２２０を介して移動カメラ１２０からコンピュータモジュール２０１に順次ダウンロードされる。あるいは、フレーム１４０，１４１，１４２は撮像されると、カメラ１２０によりコンピュータモジュール２０１に送信されても良い。
【００４４】
システム１００は、ハードディスクドライブ２１０上に常駐しており且つその実行がプロセッサ２０５により制御されるソフトウェアアプリケーションプログラム２３３の１以上のコードモジュールによって実施されるコンピュータビジョンアルゴリズムを用いて、ビジョンベースカメラトラッキング及びローカリゼーションを実行するように構成されている。ある構成において、ソフトウェアアプリケーションプログラム２３３のコードモジュールのうちの１以上は、システム起動時に初期３Ｄマップ１９０を生成するためのマップ初期化ソフトウェアモジュール１０１０を形成するように構成されても良い。３Ｄマップ１９０は、メモリ２０６及び／又は２０９に格納されても良い。更に、ソフトウェアアプリケーションプログラム２３３のコードモジュールのうちの１以上は、効率的なカメラトラッキングを実行するためのトラッキングソフトウェアモジュール１０２０を形成するように構成されても良い。トラッキングソフトウェアモジュール１０２０は更に、入力画像からカメラ１２０のポーズ（すなわち位置及び姿勢）を決定するためのトラッカーソフトウェアモジュール１０２２を有しても良い。トラッキングソフトウェアモジュール１０２０は更に、３Ｄマップ１９０を構成して時間とともに徐々に増加的に拡張させるためのマッパソフトウェアモジュール１０２４を有しても良い。
【００４５】
図１に示す如く、３Ｄマップ１９０は、３Ｄマップ点の集合により表される３Ｄ点クラウド１９２と、キーフレーム１９５と呼ばれる前フレームのサブセットと、を有する。キーフレーム１９５は、マップ１９０を拡張するために、マッパソフトウェアモジュール１０２４によって使用される。図１の例では、トラッカーソフトウェアモジュール１０２２及びマッパソフトウェアモジュール１０２４は、コンピュータモジュール２０１内で異なるスレッドで並行して実行される。トラッカーソフトウェアモジュール１０２２は、マッパソフトウェアモジュール１０２４のフレームレートとは異なるフレームレートで動作する。他の構成において、トラッカーソフトウェアモジュール１０２２の動作及びマッパソフトウェアモジュール１０２４の動作は交互になっている。
【００４６】
図１〜２Ｂの構成において、コンピュータモジュール２０１は、デスクトップ汎用コンピュータである。あるいは、コンピュータモジュール２０１は、サーバコンピュータなどでも構わない。開示される方法は、スマートフォン、モバイルフォン、ポータブルメディアプレーヤ、ディジタルカメラなどの処理リソースが限られている低パワーのポータブルコンピューティングデバイス上で実行されても良い。
【００４７】
先ず、システム１００が起動すると、３Ｄ点クラウド１９２及び初期キーフレーム１９５により表される初期３Ｄマップ１９０が、マップ初期化ソフトウェアモジュール１０１０によって作成される。その後、３Ｄマップ１９０はトラッキングソフトウェアモジュール１０２０により使用されて、移動カメラ１２０により撮像された入力フレーム（若しくは画像）からカメラ１２０の位置及び姿勢を決定する。３Ｄマップの作成方法３００については図３を用いて以下で詳細に説明する。方法３００は、ハードディスクドライブ２１０上で常駐し且つその実行がプロセッサ２０５により制御される、マップ初期化モジュール１０１０を形成するソフトウェアコードモジュールのうちの１以上によって実行される。
【００４８】
方法３００は選択ステップ３１０で開始し、プロセッサ２０５による実行の元で、移動カメラ１２０により撮像されたフレームがマップ初期化モジュール１０１０により第１のキーフレームとして選択される。第１のキーフレームは、カメラ１２０により撮像された複数のフレームの中から選択されても良い。ある構成において、ユーザは移動カメラ１２０をシーン１１０中の初期位置に配置し、移動カメラ１２０により撮像されたフレームを、点特徴の３次元（３Ｄ）マップを生成する第１のキーフレームとして選択するようにしても構わない。第１のキーフレームは、図２Ａのメモリ２０６若しくは記憶装置２０９内で構成される３Ｄマップ１９０に格納されても良い。
【００４９】
第１のキーフレームが選択された後、方法３００は、選択ステップ３１０から決定ステップ３２０へと進む。ステップ３２０では、プロセッサ２０５は、第１のキーフレーム中の画像特徴の集合を決定する為に使用される。決定された画像特徴群は、例えば、第１のキーフレーム中の点群、線分群、コーナー群、若しくは曲線群を含む。ある構成においては、画像特徴群の位置は、ステップ３２０においてＦＡＳＴ（”Features from Accelerated Segment Test”）アルゴリズムを用いて検出される。
【００５０】
選択されたキーフレーム（若しくは画像）中の各画素位置について、ＦＡＳＴアルゴリズムが使用されて、１６個の周囲画素から成る輪に対する画素の強度を評価することで該画素位置がコーナーであるのか否かを判断する。中心画素よりも一貫して大きい若しくは小さい強度値を有するｎ以上の連続画素のランが存在する場合には、この画素はコーナーであると考えられる。ある構成においては、ｎには、処理時間とトラッキングの精度との間のトレードオフとして１０がセットされる。「Shi-Tomasi」スコアに基づくNon-maximal suppression and thresholdingを用いて、選択されたキーフレームの最も顕著な画像特徴群を検出しても構わない。
【００５１】
あるいは、Harris Corner Detection algorithm、Scale-Invariant Feature Transform (SIFT)、Speeded Up Robust Features (SURF) algorithm、Binary Robust Invariant Scalable Keypoints (BRISK)等の他の画像特徴検出アルゴリズムが、画像特徴を検出するためにステップ３２０において使用されても良い。ステップ３２０において第１のキーフレームにおいて検出された画像特徴の集合は、メモリ２０６に格納される。
【００５２】
図１の例において、カメラ１２０は、第１のキーフレームとして選択されたフレームをカメラ１２０が撮像した該カメラ１２０の初期位置から第２の位置へと横に移動する。第２の位置は、カメラ１２０の初期位置からわずかにオフセットされている。ある構成においては、カメラ１２０は、第１のキーフレームが撮像されたときの該カメラ１２０の初期位置から最小距離だけ移動しても良い。最小距離は、シーン１１０中のオブジェクト群と移動カメラ１２０との間の平均距離に依存していても良い。ある構成においては、最小距離は、シーン深さの１０分の１に設定されても良い。
【００５３】
ステップ３２０に続いて、トラッキングステップ３３０では、カメラ１２０が新たな位置に移動した後で該カメラ１２０により撮像された全ての後続フレームについて、第１のキーフレームについて決定した画像特徴が探索される。ある構成において、画像特徴位置を中心とする８画素×８画素のサイズの２Ｄパッチが、第１のキーフレーム中のそれぞれの決定された画像特徴について作成される。そのような２Ｄパッチ探索は、後続する撮像フレーム中の一致する画像特徴を決定するために実行される。第１のキーフレーム中のそれぞれの検出された画像特徴について、新たなフレーム中の小さい半径（例えば２０画素）を有する円形領域内のどの画像特徴も、潜在的な画像特徴対応であると考えられる。そして、２Ｄの８×８のパッチのマッチが実行されて、二乗差のゼロ平均和（ＺＳＳＤ）スコアに基づいて画像特徴位置を中心とする２Ｄパッチと最も一致するパッチを決定する。そのようなパッチマッチング処理は、第２のキーフレームが選択されるまで繰り返し行われる。
【００５４】
他の構成において、画像特徴識別子が、第１のキーフレームにおいて検出されたそれぞれの画像特徴について作成されても良い。そして特徴マッチングは、新たなフレームにおいて、画像特徴識別子間の差が最も小さい画像特徴を検出することで実行されても良い。ある構成においては、画像特徴識別子は、ＳＩＦＴ及びＳＵＲＦ等のアルゴリズムを用いて、検出された画像特徴の位置の近傍における勾配分布に基づいて作成されても良い。あるいは、画像特徴識別子は、ＢＲＩＳＫ、Fast Retina Keypoint (FREAK)、Local Difference Binary (LDB) algorithm等のアルゴリズムを用いて、検出された画像特徴の位置の近傍におけるサンプル点の組間の強度及び勾配比較試験の結果を連結させることで作成されても良い。
【００５５】
方法３００は、ステップ３３０から選択ステップ３４０に進み、新たな位置に配置されたカメラ１２０により撮像されたフレーム群から第２のキーフレームが選択される。ある構成においては、カメラ１２０が第１のキーフレームを撮像したときの該カメラ１２０の位置から最小距離だけ該カメラ１２０が移動した後、ユーザは第２のキーフレームとしてフレームを選択する。ある構成においては、第２のキーフレームは、パッチマッチング処理に基づいてユーザにより選択される。マップ初期化モジュール１０１０は、メモリ２０６若しくは記憶モジュール２０９内で構成されているマップ１９０に、第２のキーフレームを格納するように構成されても良い。
【００５６】
またステップ３４０では、プロセッサ２０５は、ステップ３３０における第１のキーフレームについて決定した画像特徴の探索に基づいて、第１のキーフレームと第２のキーフレームとの間の画像特徴対応の集合を決定するために使用される。
【００５７】
第１のキーフレームと第２のキーフレームとの間の画像特徴対応の集合が決定された後、方法３００はステップ３５０に進み、第１のキーフレーム及び第２のキーフレームを撮像したときのカメラ１２０のそれぞれの相対的なポーズが、プロセッサ２０５による実行の元で決定される。
【００５８】
ある構成においては、ステップ３５０において５点アルゴリズムが使用され、第１のキーフレーム及び第２のキーフレームに対してカメラ１２０の相対ポーズを決定する。５点アルゴリズムは、第１のキーフレーム及び第２のキーフレームに渡って５つの画像特徴対応をランダムに選択して基本行列(essential matrix）の推定を行うために使用される。基本行列の推定を行うたびに、Sampson distance measure (SD)等の目的関数が使用されて、少なくとも１０００以上の画像特徴対応を用いて推定（すなわち残差）の品質を評価する。５点アルゴリズムは、画像特徴対応のそれぞれ異なるランダムな集合について、多数回数繰り返して実行されても良い。最も低いのスコア（すなわち最小ＳＤ）を与える基本行列が、第１のキーフレーム及び第２のキーフレームに対するカメラ１２０の相対ポーズについての最適な推定として選択される。
【００５９】
あるいは、８点アルゴリズム、７点アルゴリズム、６点アルゴリズムなどの他のアルゴリズムが、ステップ３５０においてカメラ１２０の相対ポーズを決定するために使用されても良い。
【００６０】
ステップ３５０において第１のキーフレーム及び第２のキーフレームに対してカメラ１２０の相対ポーズ（すなわち、位置及び姿勢）が決定した後は、方法３００は、マップ作成ステップ３６０に進む。ステップ３４０において決定した画像特徴対応の組毎に、第１のキーフレームと第２のキーフレームとの間の相対ポーズと、画像特徴対応群の画像位置と、から三角測量を用いて、関連マップ点の３Ｄ座標が、ステップ３６０において決定される。ある構成においては、ステップ３６０においてマップ点の３Ｄ座標を決定するためにSampson approximationを用いた非線形三角測量法が用いられても構わない。あるいは、マップ点の３Ｄ座標を決定するために、Direct Linear Transformation algorithmに基づく線形三角測量法が、ステップ３６０において用いられても構わない。上述したように、ステップ３１０及び３４０のそれぞれで決定した第１のキーフレーム及び第２のキーフレームは、メモリ２０６若しくは記憶モジュール２０９内で構成されている３Ｄマップ１９０内に格納される。
【００６１】
ステップ３６０で決定したマップ点は、第１のキーフレームの座標系（世界座標系と呼称する）における３Ｄ点クラウド１９２を形成する。３Ｄ点クラウド１９２、第１のキーフレーム、及び第２のキーフレームは共同で、初期３Ｄマップ１９０を形成する。
【００６２】
他の構成において、３Ｄ点クラウド１９２は、シーン１１０の部分復元であり、基準マーカ群を用いてオフラインで生成される。そのような基準マーカの構成において、基準マーカ群は、マップ１９０のスケール及びグローバル座標を定義する。
【００６３】
さらなる構成において、３Ｄ点クラウド１９２は、例えば、フレーム群のサブセットについてstructure-from-motion若しくは3D reconstruction techniquesを実行することで、オフラインで構成されても良い。
【００６４】
さらなる構成において、プロセッサ２０５による実行の元、マップ初期化モジュール１０１０は、自動マップ初期化方法を用いて、第１のキーフレーム及び第２のキーフレームを選択しても良い。例えば、第１のキーフレーム及び後続フレームについて決定した対応画像特徴の集合に、ホモグラフィー若しくはエピポーラ幾何モデルの何れがよりフィットしているのかを判断するために、Geometric Robust Information Criterion (GRIC) algorithmが第１のキーフレーム及び後続フレームに対して適用されても構わない。最低のスコアを有するモデルが最もフィットする。ホモグラフィーモデルは、第１のキーフレーム及び第２のキーフレームは同平面の画像であるとしており、且つ移動カメラ１２０の変位が小さい場合に、対応画像特徴の集合によりフィットしている。移動カメラ１２０のその初期位置からの変位が増えるにつれ、ホモグラフィー若しくはエピポーラ幾何モデルが同等となり、最終的には、エピポーラ幾何モデルがホモグラフィーベースのモデルをしのぐ。ある構成において、エピポーラ幾何モデルに基づいて決定されるＧＲＩＣスコアが、ホモグラフィーモデルに基づいて決まるＧＲＩＣスコアを下回る場合、第１のキーフレームの後のフレームであって、追跡できた画像特徴の数が追跡した画像特徴の数の９０％を超えた最初のフレームを、第２のキーフレームとして選択する。
【００６５】
ここで、図１のトラッカーソフトウェアモジュール１０２２について、図４を参照して更に詳細に説明する。トラッカーソフトウェアモジュール１０２２は、カメラモーションモデルに基づく、移動カメラ１２０の現在のポーズの初期推定を提供する。そしてトラッカーソフトウェアモジュール１０２２は、３Ｄ点クラウド１９２中の観察マップ点に基づいて、現在のポーズの初期推定をリファインする。
【００６６】
ここで、トラッカーソフトウェアモジュール１０２２により実行される、移動カメラ１２０のポーズを決定する方法４００について、図４を参照して詳細に説明する。方法４００は、トラッカーソフトウェアモジュール１０２２を構成する、ハードディスクドライブ２１０内に常駐し且つプロセッサ２０５によりその実行が制御されるソフトウェアコードモジュールのうちの１以上により実行される。方法４００について、一例として、移動カメラ１２０を参照して説明する。
【００６７】
方法４００は検索ステップ４１０で開始し、移動カメラ１２０により撮像されたフレームが検索される。例えば、フレームは、メモリ２０６から検索されても良いし、記憶モジュール２０９から検索されても良い。また、ステップ４１０では、プロセッサ２０５による実行の元で、トラッカーモジュール１０２２により、検索されたフレームから画像特徴が抽出される。ある構成においては、検索されたフレームにおける画像特徴の位置がＦＡＳＴアルゴリズムを用いて検出される。
【００６８】
方法４００は、検索ステップ４１０から推定ステップ４２０へと続き、移動カメラ１２０の現在のカメラポーズが、カメラモーションモデルから推定される。ある構成においては、decaying-velocity modelがステップ４１０において使用され、移動カメラ１２０のポーズを推定する。モーションモデルは、α、βが一定の簡単なvelocity modelと同様であって、且つ改良された安定性のための減衰項を有していても良い。追跡により、カメラ１２０のポーズの何れかの新たな測定を得ることができなかった場合には、ステップ４２０で推定したカメラポーズは徐々に速度を落とし、最終的には止まる。
【００６９】
他の構成においては、ステップ４２０において線形velocity modelを使用して、移動カメラ１２０のポーズを推定する。更に他の構成においては、カメラ１２０は静止しているとする。
【００７０】
方法４００は、ステップ４２０から投影ステップ４３０に進み、プロセッサ１０５による実行の元、トラッカーモジュール１０２２は、ステップ４２０で生成した推定カメラポーズに基づいて、ステップ４１０で検索したフレーム（すなわち「現フレーム」）にマップ点群１９２を投影する。一例として、ステップ３６０において決定したマップ点群１９２は、検索されたフレームに投影されても良い。ステップ３６０で決定したマップ点群１９２は先ず、世界座標系（すなわち、第１のキーフレームの座標系）から、ローカルカメラ座標フレームに、以下の式（１）に従って変換される。
【００７１】
【数１】
0005950973.tif 000002
【００７２】
ここで、（ＸＷ，ＹＷ，ＺＷ）は、世界座標系におけるマップ点の座標を表し、（ＸＣ，ＹＣ，ＺＣ）は、カメラ１２０の推定されたポーズの視点におけるマップ点の座標を表す。
【００７３】
そして、現フレームにおけるマップ点の画像座標は、以下の式（２）に従って決定される。
【００７４】
【数２】
0005950973.tif 000003
【００７５】
ここで、（ｘ、ｙ）は、マップ点の予測画像座標であり、Ｋは以下に示す３×３のマトリクスである。
【００７６】
【数３】
0005950973.tif 000004
【００７７】
ここで、ｆｘ、ｆｙは、水平方向、垂直方向の焦点距離を表し、ｃｘ、ｃｙは、主点を表し、γは、ｘ軸とｙ軸との間のスキュー係数を表す。ｆｘ、ｆｙ、ｃｘ、ｃｙ、γは、何らかの適切なカメラキャリブレーションアルゴリズムにより計算される。
【００７８】
マップ点の予測位置が、現フレームのサイズの所定の閾値内であれば、マップ点は、現フレーム内で可視であると判断される。
【００７９】
ステップ４３０の後、方法４００は検索ステップ４４０に進み、プロセッサ２０５による実行の元、トラッカーモジュール１０２２は、３次元空間内におけるマップ点群１９２が投影される画像特徴を決定するために使用される。上述したように、決定される画像特徴は、例えば、点、線分、コーナー、若しくは曲線を含む。画像特徴の決定において、トラッカーモジュール１０２２は、ステップ４３０で決定したマップ点群の予測位置の周囲で、現フレームにおける決定されたマップ点群のうち可視のマップ点群を検索する。
【００８０】
ステップ４４０においては、可視のマップ点毎に、画像中のマップ点の第１の観測位置を中心とするｍ×ｍのパッチが生成される。ある構成においては、ｍは８に設定される。そしてｍ×ｍのパッチは、上記の第１の観測位置とカメラ１２０の現在位置との間の視点変更を考慮するために、歪ませる。個々の画素値から平均画素強度が減じられ、ライティングの変更に幾分かの弾性を与える。そしてパッチ検索は、プロセッサ２０５による実行の元で現フレームについて実行され、現フレームにおいて最もマッチングするパッチを決定する。パッチ検索は、検索領域内の全ての画像特徴（例えばＦＡＳＴコーナー）の位置における二乗差の総和（ＺＳＳＤ）スコアを評価し、最も小さい差分スコアを有する（すなわち、現フレームの）位置を選択することにより、実行されても良い。マップ点は、ＺＳＳＤスコアが所定の閾値よりも小さい場合に求められるように考慮されても良い。
【００８１】
現フレームは、サブ画像領域に分割される。求めたマップ点群に対応する画像特徴のヒストグラムが、現フレーム中の複数のサブ画像領域について作成される。ヒストグラムは、現フレームのそれぞれのサブ画像領域において求めたマップ点群に対応する決定された画像特徴の数を判断するために作成される。１以上のサブ画像領域は、作成したヒストグラムに基づいて、未観測領域の部分として判断されても良い。
【００８２】
もし、サブ画像領域が含む、求めたマップ点群に対応する画像特徴の数が所定の閾値よりも小さい場合には、サブ画像領域は、未観測領域の一部として判断される。現フレーム中の求めたマップ点群の総数は、全てのサブ画像領域に渡るヒストグラムの合計となる。
【００８３】
ある構成において、現フレームは、Ｍ×Ｎのセル群のグリッドに分割される。グリッド内のセル群の各々は、サブ画像領域としても良い。未観測領域は、求めたマップ点群に対応する、事前定義済みの数よりも小さい数の画像特徴を含むセル群の矩形領域である。隣接する未観測領域は、より大きい未観測領域を形成するためにマージされても良い。
【００８４】
他の構成において、サブ画像領域は、イレギュラーな形状及びサイズ（例えば、スーパーピクセル群）を有していても良い。未観測領域は、事前規定済みの（若しくは「所定の」）閾値よりも少ない求めたマップ点群に対応する画像特徴の密度で隣接するスーパーピクセルを連結させることで形成されても構わない。
【００８５】
検索ステップ４４０に続いて、方法４００はリファインステップ４５０に進み、プロセッサ１０５による実行の元で、トラッカーモジュール１０２２は、求めたマップ点群を用いて、ステップ４２０において推定したカメラ１２０の現在のポーズ（すなわち位置及び姿勢）をリファインする。推定されたポーズは、求めたマップ点群の実際の画像特徴位置と、カメラ１２０の現在の推定されたポーズに基づく求めたマップ点群の予測位置と、の間の差分を減少させる最小化アルゴリズムを用いて繰り返しリファインされても良い。ある構成においては、ステップ４５０において使用される最小化アルゴリズムは、Levenberg-Marquardt（ＬＭ）アルゴリズムなどの逐次最小二乗アルゴリズムである。あるいは、ステップ４２０で決定したカメラ１２０の推定ポーズをリファインするために、Gauss-Newton法や勾配降下法が使用されても良い。ステップ４５０において決定した現在のポーズのリファインされた推定は、カメラ１２０の現在のポーズの正確且つ信頼性の高い決定を提供する。
【００８６】
そして方法４００は、ステップ４５０から決定ステップ４６０に進む。ステップ４６０においては、プロセッサ１０５による実行の元で、トラッカーモジュール１０２２は、未観測領域の最大連結領域に基づいて、現フレームをキーフレームとして選択する。ステップ４６０において実行される、フレームをキーフレームとして選択する方法５００について、図５を参照して、以下に詳細に説明する。方法５００によれば、トラッカーモジュール１０２２は、現フレームが、３Ｄマップ１９０に対して候補キーフレームとして追加されるべきか否かを判断する。現フレームは、未観測領域の最大連結領域に基づいて、メモリ２０６内に構成される候補キーフレームリストに挿入される。
【００８７】
方法５００は、ハードディスクドライブ２１０上で常駐し且つその実行がプロセッサ２０５により制御される、トラッカーソフトウェアモジュール１０２２を形成するソフトウェアコードモジュールのうちの１以上によって実行される。方法５００は、現フレームが、候補キーフレームとして選択されるべきであるか否かを判断する。現フレームは、未観測領域のサイズに基づいて、候補キーフレームとして選択される。方法５００は、現フレームを候補キーフレームリストに追加し、且つ未観測領域の最大連結領域のサイズに基づいて、リスト内の全ての候補キーフレームのち現フレームに対して優先順位を付ける。現フレームは、マッパモジュール１０２４に使用されて、３Ｄマップ１９０を拡張しても構わない。
【００８８】
方法５００は、決定ステップ５１０で開始し、プロセッサ２０５による実行の元、トラッカーソフトウェアモジュール１０２２が、トラッキングの品質が所定の閾値Ｔ１よりも大きいか否かを判断する。トラッキングの品質が閾値Ｔ１を超えている場合には、方法５００はステップ５２０に進む。トラッキングの品質が閾値Ｔ１を超えていない場合には、方法５００は終了し、現フレームは破棄される。
【００８９】
他の構成において、トラッキングの品質は、求めたマップ点群の数と、可視のマップ点群の数と、の比として定義される。求めたマップ点群の数は、方法４００のステップ４４０において決定した全てのセルについてのヒストグラムの和である。ある構成においては、閾値Ｔ１は０．３に設定される。他の構成においては、トラッキングの品質は、現画像において求めたマップ点群の最小数として定義しても構わない。
【００９０】
決定ステップ５２０において、プロセッサ２０５による実行の元、トラッカーソフトウェアモジュール１０２２は、最後にキーフレームが３Ｄマップ１９０に追加されてからの時間が、所定の閾値Ｔ２を超えたか否かを判断する。最後にキーフレームが３Ｄマップ１９０に追加されてからの経過時間の量が閾値Ｔ２を超えた場合には、方法５００はその後、ステップ５３０に進む。最後にキーフレームが３Ｄマップ１９０に追加されてからの経過時間の量が閾値Ｔ２を超えていない場合には、方法５００はステップ５００に進み、未観測領域の最大連結領域を決定する。
【００９１】
ある構成においては、閾値Ｔ２は、０．６７秒に設定される。他の構成においては、閾値Ｔ２は、最後にキーフレームが３Ｄマップ１９０に追加された後に処理される画像の最小数であっても良い。
【００９２】
ステップ５２０に続いて、方法５００は、決定ステップ５３０に進む。ステップ５３０では、トラッカーソフトウェアモジュール１０２２は、プロセッサ２０５による実行の元、カメラ１２０の現在位置と、最も近いキーフレームに対応するカメラの位置と、の間の最小距離が、所定の閾値Ｔ３を超えたか否かを判断する。最小距離は、シーン深さの関数であっても良い。ある構成においては、閾値Ｔ３は、シーン深さの１０分の１に設定される。
【００９３】
カメラ１２０の現在位置と、最も近いキーフレームに対応するカメラ１２０の位置と、の間の最小距離が、所定の閾値Ｔ３を超えた場合には、方法５００はステップ５４０に進み、現フレームをキーフレームとして追加する。カメラ１２０の現在位置と、最も近いキーフレームに対応するカメラ１２０の位置と、の間の最小距離が、所定の閾値Ｔ３を超えていない場合には、方法５００は決定ステップ５５０に進む。
【００９４】
ステップ５５０では、プロセッサ２０５による実行の元、トラッカーソフトウェアモジュール１０２２は、現フレームにおける未観測領域の最大連結領域（Ｒ）を決定する。方法５００は、ステップ４４０で作成したヒストグラムに基づいて未観測であるとして判断された現フレームのサブ画像領域を、隣接する未観測サブ画像領域と連結させる。最大数の連結サブ画像領域による未観測領域のエリアが決定される。
【００９５】
ある構成においては、未観測領域は、所定の形状及びサイズを有する。例えば、図１０は、８×６のグリッド１０００について、８個のプリミティブな画像領域１００１，１００２，１００３，１００４，１００５，１００６，１００７，１００８を示す。図１０の例において、プリミティブな領域は、その領域内の全てのセルがステップ４４０において未観測であるものとして判定された場合に、未観測であると考えられる。所定領域のサイズは、未観測領域を決定するために用いられる。そのような所定領域内の画像特徴の数は、未観測領域を決定するために用いられても良い。
【００９６】
隣接するプリミティブな未観測領域は共に結合されて、大きな未観測領域を形成しても良い。ステップ５００において決定した最大連結領域は、メモリ２０６に格納される。
【００９７】
現フレームにおける未観測領域の最大連結領域が決定されると、方法５００は決定ステップ５６０に進む。ステップ５６０において、ステップ５５０で決定した未観測領域の最大連結領域が現フレームのほとんどの部分を占めている場合には、方法５００は追加ステップ５７０に進む。一方、そうでない場合には、方法５００は終了し、現フレームは破棄される。
【００９８】
ステップ５７０では、トラッカーソフトウェアモジュール１０２２は、プロセッサ２０５による実行の元、現フレームを候補キーフレームとして、メモリ２０６内で構成されている候補キーフレームリストに追加する。現フレームはまた、リスト中の全ての候補キーフレームのうちで優先順位が付けられる。方法５００は、現フレームが、リスト中の他の全ての候補キーフレームと比べて、未観測領域の最も大きい最大未連結領域を有する場合には、現フレームに対して、より高い優先度を与える。
【００９９】
ある構成においては、未観測領域の最大連結領域は、候補キーフレームのリストに追加されるためには、ステップ５６０において、所定のサイズ閾値よりも大きい必要がある。方法５００は、未観測領域のサイズが所定のサイズ閾値よりも大きいか否かを判断するように構成される。例えば、サイズ閾値は、現フレームのサイズの１５％に設定されても良い。他の構成においては、サイズ閾値は、画像中の未観測領域の形状及び局所性（locality）に基づいている。例えば、図１０に示す如く、１つのフレームを表していても良いグリッド１０００のコーナーにおける未観測領域に対するサイズ閾値は、グリッド１０００の辺に沿う未観測領域のサイズよりも小さい。また、グリッド１０００のトップ若しくはボトムの画像境界に沿う未観測領域に対するサイズ閾値は、左若しくは右の境界に沿う領域に対するサイズ閾値とは異なる。
【０１００】
マッパソフトウェアモジュール１０２４は、３Ｄマップ１９０を保持してリファインする。３Ｄマップ１９０を保持してリファインする方法６００について、図６を参照して詳細に説明する。方法６００は、ハードディスクドライブ２１０上で常駐し且つその実行がプロセッサ２０５により制御される、マッパソフトウェアモジュール１０２４を形成するソフトウェアコードモジュールのうちの１以上によって実行される。
【０１０１】
方法６００は、決定ステップ６１０で開始し、プロセッサ２０５による実行の元、マッパソフトウェアモジュール１０２４は、３Ｄマップ１９０に追加されるために待機している候補キーフレームがあるか否かを判断する。候補キーフレームリストが空である場合には、方法６００はステップ６５０に進み、候補キーフレームリストが空ではない場合には、方法６００は選択ステップ６２０に進み、候補キーフレームを３Ｄマップ１９０に追加する。
【０１０２】
選択ステップ６２０では、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、新たなキーフレームとしてステップ５５０で特定された未観測領域のサイズの最も大きい最大連結領域を有する候補キーフレームを選択し、リスト中の他の全ての候補キーフレームを破棄する。
【０１０３】
ステップ６２０に続いて、方法６００は選択ステップ６３０に進む。ステップ６３０において、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、現キーフレームを選択して、三角測量のために、ステップ６２０において選択した新たなキーフレームと組み合わせる。例えば、図９は、シーン１１０の２つのビューを表す、現キーフレーム９０１と、新たなキーフレーム９０２と、を示す。現キーフレーム９０１は、領域Ａ及び領域Ｃ（すなわちＡ＋Ｃ）の合計により表される。新たなキーフレーム９０２は、トラッカーソフトウェアモジュール１０２２によりステップ５５０で決定された未観測領域９０３により構成されている。図９の例のために、未観測領域９０３は矩形により表され、異なる形状及びサイズを有する。この未観測領域９０３の部分は、現キーフレーム９０１内で可視の可能性があり、新たなキーフレーム９０２と関連づけられている視点における移動カメラ１２０の位置及び姿勢とシーン１００の推定された深さとに基づいて、新たなキーフレーム９０２内における未観測領域９０３をシーン１１０に逆投影（若しくは「投影」）することで推定される。未観測領域９０３の逆投影は、シーン内の仮想３Ｄ平面９０５を形成する。そして仮想３Ｄ平面９０５は、現キーフレーム９０１と関連づけられている移動カメラ１２０の以前に（例えば、ステップ３５０若しくはステップ４５０において）決定した位置及び姿勢に基づいて、現キーフレーム９０１に投影される。仮想３Ｄ平面の投影は、現キーフレーム９０１と関連づけられている視点における投影未観測領域９０７を定義する。投影未観測領域９０７は、領域Ａと領域Ｂとの合計（すなわちＡ＋Ｂ）により表される。しかしながら、現キーフレーム９０１は、領域Ａにより表される該投影未観測領域９０７の部分９０９のみを撮像している。領域Ｂは、現キーフレーム９０１の一部ではない。
【０１０４】
そして方法６００は、現キーフレームの範囲内に収まる投影未観測領域の部分（すなわちＡ）と、投影未観測領域の全体領域（すなわちＡ＋Ｂ）と、の比（すなわちＡ／Ａ＋Ｂ）を決定するように構成される。そして、ステップ５５０において特定された未観測領域の最大連結領域に対応する最大重複を有するキーフレームが選択される。従って、キーフレームは、サイズ及び比のうちの少なくとも１つに基づいて選択される。キーフレームを選択して新たなキーフレームと組み合わせる、ステップ６３０において実行される方法７００について、図７を参照して、以下で更に詳細に説明する。
【０１０５】
方法６００はその後、ステップ６３０から作成ステップ６４０へと続き、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、三角測量を用いて、新たなマップ点群を作成する。ある構成においては、トラッカーソフトウェアモジュール１０２２は既に、ステップ４１０で決定した新たなキーフレーム中の画像特徴の集合を特定している。Shi-Tomasiスコアに基づくNon-maximal suppression and thresholdingを用いて、最も顕著な画像特徴を特定しても構わない。そして方法６００は、図４のステップ４４０で決定した、観測に成功した現マップ点群の近くの顕著な画像特徴を破棄する。残っている顕著な画像特徴のそれぞれについて、選択されたキーフレーム中の一致する画像特徴が、エピポーラ検索を実行することで決定される。エピポーラ線から小さな距離だけ離れた、選択されたキーフレーム中の決定された画像特徴は、ＺＳＳＤを用いて、顕著な画像特徴と比較される。一致したものが見つかった場合には、新たな点について三角測量を行って、マップ１９０に挿入される。選択されたキーフレーム中の画像特徴の比較は、全てのマッチング対応が３Ｄ点クラウド１９２に追加されるまで繰り返し、そして方法６００は、ステップ６１０に戻る。
【０１０６】
ステップ６１０に戻り、候補キーフレームリストが空であれば、方法６００は、決定ステップ６５０に進む。ステップ６５０において、バンドル調整が既に収束している場合には、方法６００はその後、拡張ステップ６７０に進む。バンドル調整がまだ収束していない場合には、方法６００はその後、調整ステップ６６０に進み、更なるバンドル調整を実行する。
【０１０７】
ステップ６６０において、３Ｄマップ点群の座標及び全てのキーフレームのポーズは、バンドル調整によってリファインされる。ある構成において、グローバルバンドル調整は、キーフレーム群及び３Ｄマップ点群の全体集合を用いて、方法６００において実行される。
【０１０８】
他の構成において、ローカルバンドル調整は先ず、新たなキーフレーム及びその４近傍について実行される。そしてローカルバンドル調整は、キーフレーム群及び３Ｄマップ点群の全体集合を用いるグローバルバンドル調整に続く。方法６００は、バンドル調整が収束するか、若しくは最大繰り返し回数に達した場合には、ステップ６１０に戻る。
【０１０９】
ステップ６５０に戻って、バンドル調整が収束した場合には、方法６００は、ステップ６７０に進む。ステップ６７０では、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、過去のキーフレームについて新たな測定を行うことで３Ｄマップ１９０を改良する。ある構成においては、最近追加されたそれぞれの３Ｄマップ点について、方法６００は、他の全てのキーフレームについて繰り返し処理することでエピポーラ検索を行い、これにより、過去のキーフレーム内で一致する画像特徴を見つける。過去のキーフレームにおいて一致するものが見つかった場合には、方法６００は、この新たな測定結果をマップに追加する。他の構成において、連続して異常値として分類された観測結果及びマップ点群は、バンドル調整によって削除されても良い。さらなる他の構成において、ステップ６７０では、全てのキーフレームについてエピポーラ検索が行われるときに、同時に、１つの３Ｄマップ点が処理されても良い。ステップ６７０に続いて、方法６００は、ステップ６１０に戻って、新たな候補キーフレームをチェックし、候補キーフレームリストが空で且つバンドル調整が収束した場合には、ステップ６７０に復帰する。
【０１１０】
他の構成において、マッパソフトウェアモジュール１０２４は、新たな候補キーフレームが候補キーフレームリストに追加されると、中断する。そのような実施形態において、マッパソフトウェアモジュール１０２４は、新たなマップ点群ができるだけ早くにマップ１９０に追加可能となるように、ステップ６１０に戻る。
【０１１１】
３Ｄマップ１９０がより迅速に拡張可能となるように、ステップ６３０では、マッパソフトウェアモジュール１０２４は、図６のステップ６２０で選択された新たなキーフレーム内の未観測領域の最大連結領域に対応する最大の重複を有する現キーフレームを選択する。未観測領域内の重複エリアを最大化するためにキーフレームを選択して新たなキーフレームと組み合わせる、ステップ６３０で実行される方法７００について、図７，８，９を参照して説明する。方法７００は、ハードディスクドライブ２１０上で常駐し且つその実行がプロセッサ２０５により制御される、マッパソフトウェアモジュール１０２４を形成するソフトウェアコードモジュールのうちの１以上によって実行される。
【０１１２】
方法７００は、決定ステップ７１０で開始し、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、ステップ６２０で選択した新たなキーフレーム９０２内のステップ５５０で決定した未観測領域９０３に対応する画像領域を決定する。画像領域は、現キーフレーム９０１のビューポイントおいて決定される。現キーフレーム９０１は、新たなキーフレーム９０２に対する「前の」フレームとしても良い。ある構成において、画像領域は、新たなキーフレーム９０２の視点における移動カメラ１２０の決定された位置及び姿勢とシーン１１０の推定された深さとに基づいて、新たなキーフレーム９０２内で特定された未観測領域の四隅をシーン１１０に逆投影することで、ステップ７１０で推定される。未観測領域９０３の四隅の逆投影は、シーン１１０内の仮想３Ｄ平面９０５を定義する。そして仮想３Ｄ平面９０５は、現キーフレーム９０１の視点で投影される。未観測領域９０３は、前のフレームに関連づけられている視点で投影される。図９における領域Ａ及びＢは、現キーフレーム９０１の視点において、ステップ５５０で新たなキーフレーム９０２において決定した対応未観測領域９０３を表す。
【０１１３】
次の決定ステップ７２０において、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、投影された未観測領域（すなわち図９のＡ＋Ｂ）及び現キーフレーム内の領域（すなわちＡ）のサイズを決定する。投影された未観測領域（すなわち図９のＡ＋Ｂ）及び現キーフレーム内の領域（すなわちＡ）のサイズは、「The Surveyor’s Area Formula」を用いて決定しても良い。
【０１１４】
ステップ７２０に続いて、方法７００は決定ステップ７３０に進み、現キーフレーム９０１についてスコアが決定される。ソフトバリュ−ロジックの集合を使用して、最高スコアのキーフレームを選択することで、未観測領域９０３内のマップ１９０に追加されるものと予測されるマップ点の数を最大化するように、キーフレームに対するスコアを決定しても良い。
【０１１５】
図８Ａ，８Ｂ，８Ｃ，８Ｄ，８Ｅ，９を参照すると、新たなキーフレームと組み合わされるキーフレームに対するスコアは、以下の式（３）に従って決定される。
【０１１６】
【数４】
0005950973.tif 000005
【０１１７】
（ｉ）  Ｓｃｏｒｅｂｄは、現キーフレーム９０１の位置と新たなキーフレーム９０２の位置との間のベースライン距離の尺度である。図８Ａからも分かるように、Ｓｃｏｒｅｂｄの値は、求めた全てのマップ点の新たなキーフレーム９０２のカメラ位置までの距離から決定される推定シーン深さ（すなわちシーン１１０の深さ）の１０分の１でピークとなる。Ｓｃｏｒｅｂｄの値は、ベースライン距離が増えるほどゆっくりと０へと減少する。Ｓｃｏｒｅｂｄはまた、推定されたシーン深さの１０分の１よりも小さい距離については、ベースライン距離が三角測量には小さすぎるので、０である。
【０１１８】
（ｉｉ）  Ｓｃｏｒｅｖｄは、現キーフレーム９０１の視線方向と新たなキーフレーム９０２の視線方向との差分の尺度である。図８Ｂにおいて示されるように、Ｓｃｏｒｅｖｄの値は、視線方向の差分が１０度から３０度の間であれば１である。Ｓｃｏｒｅｖｄは、角度が１０度から０度及び３０度から４５度の間で減少するにつれて減少する。Ｓｃｏｒｅｖｄは、４５度以上の角度に対しては０になる。４５度以上の角度について、視点差分は、パッチマッチング及びエピポーラ検索が無効となるケースにおいては、大きすぎると考えられる。
【０１１９】
（ｉｉｉ）  図８Ｅを参照すると、Ｓｃｏｒｅｄは、未観測領域９０３における検出された画像特徴の密度の尺度である。Ｓｃｏｒｅｄは、現キーフレーム９０１が未観測エリア内にフラットカラー領域を有する場合に、現キーフレーム９０１を選択することを避けるために使用される。
【０１２０】
（ｉｖ）  図８Ｃを参照すると、Ｓｃｏｒｅｏｒｋは、現キーフレーム（すなわちＡ）内の未観測領域のサイズの尺度である。ある構成において、Ｓｃｏｒｅｏｒｋの値は、シーン１１０の推定される深さに基づいて、図５のステップ５５０で決定した未観測領域９０３の最大連結領域を、シーン１１０に逆投影することで近似される。そして、未観測領域９０３の逆投影を表す仮想３Ｄ平面９０５は、現キーフレーム９０１の視点に投影される。
【０１２１】
図９の例に示す如く、投影された未観測領域９０７は、「Ａ」で示される、現キーフレーム９０１と部分的に重複するだけである。図９において「Ｂ」は、現キーフレーム９０１の外側の未観測領域の部分を表す。ある構成において、Ｓｃｏｒｅｏｒｋは、未観測領域Ａの現キーフレーム９０１におけるパーセンテージに関するものである。未観測領域Ａの現キーフレーム９０１におけるパーセンテージが０％から４０％に増えると、スコアｏｒｋは０から１に増加する。また、未観測領域Ａの現キーフレーム９０１におけるパーセンテージが５０％に達すると、５０％というパーセンテージは、現キーフレーム９０１について推定したポーズは不正確であるかもしれないことを示しているため、Ｓｃｏｒｅｏｒｋは０まで減少する。５０％というパーセンテージについては、求めたマップ点群が現キーフレーム９０１の比較的小さな画像領域内に集中しているので、現キーフレーム９０１について推定したポーズは不正確かもしれない。
【０１２２】
（ｖ）  Ｓｃｏｒｅｏｒｆは、現キーフレーム内に収まる投影未観測領域の部分（すなわちＡ）と、投影未観測領域の全体領域（すなわちＡ＋Ｂ）と、の間の比率に関するものである。図８Ｄにおいて示されるように、Ｓｃｏｒｅｏｒｆは、投影未観測領域の全体が現キーフレーム９０１内に含まれている場合に最大となる。Ｓｃｏｒｅｏｒｋ及びＳｃｏｒｅｏｒｆは共に、２つのキーフレームが同様のシーン深さを有するように且つシーン１１０における未観測領域の同様のエリアを見るように促すものである。パラメータα、β、γ、δ、ρは、ヒューリスティックに得ることができる。ある構成において、α、β、γ、δ、ρはそれぞれ、０．１，０．１５，０．１５，０．５，０．１に設定される。
【０１２３】
方法７００は、次の決定ステップ７４０に続き、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、マップ１９０中に、新たなキーフレームと組み合わせ可能なキーフレームが存在するか否かを判断する。処理すべきキーフレームが存在する場合には、方法７００はステップ７１０に戻り、残っているキーフレームについてスコアを計算する。方法７００が、存在する全てのキーフレームについてスコアを計算した場合には、処理は選択ステップ７５０に進み、画像をキーフレームとして選択し、存在する全てのキーフレームのうち新たなキーフレームと組み合わせる。
【０１２４】
存在する全てのキーフレームについてスコアが決定すると、方法７００はその後、ステップ７５０に進み、マッパソフトウェアモジュール１０２４は、プロセッサ２０５による実行の元、最も高いスコアのキーフレームを選択して、新たなキーフレームと組み合わせる。
【０１２５】
産業上の利用可能性
マルチビューディジタル画像を処理する多くの方法、装置、コンピュータプログラム。それぞれは、上述した複数の画素を有する。
【０１２６】
上述した構成は、コンピュータ及びデータ処理産業に適用可能であり、特に画像処理に適用可能である。
【０１２７】
以上、本発明のいくつかの実施形態のみを説明したが、本発明の範囲及び精神から逸脱することなく、それらの実施形態に対して変形及び／又は変更を実施可能である。実施形態は単なる例であり、本発明を限定しない。本明細書の記述に関して、「備える」という用語は、「主に含むが、単独で必要ではない」又は「有する」又は「含む」ことを意味し、「〜のみから構成される」という意味ではない。「備える」の語形変化は、それに対応して意味の変化を示す。
【０１２８】
［関連特許出願の参照］
本出願は、２０１３年１０月４日に出願されたオーストラリア国特許出願第2013237718号についての優先権を、３５Ｕ．Ｓ．Ｃ．セクション１１９に基づいて請求するものであり、その全ての記載内容の参照により本出願に援用する。
【図２Ｂ】
0005950973.tif 000006
【図３】
0005950973.tif 000007
【図４】
0005950973.tif 000008
【図５】
0005950973.tif 000009
【図６】
0005950973.tif 000010
【図７】
0005950973.tif 000011
【図８Ａ】
0005950973.tif 000012
【図８Ｂ】
0005950973.tif 000013
【図８Ｃ】
0005950973.tif 000014
【図８Ｄ】
0005950973.tif 000015
【図８Ｅ】
0005950973.tif 000016
【図１】
0005950973.tif 000017
【図２Ａ】
0005950973.tif 000018
【図９】
0005950973.tif 000019
【図１０】
0005950973.tif 000020