(57)【特許請求の範囲】
【請求項１】
画像に含まれる特徴点の３次元位置を算出する情報処理装置であり、
カメラ撮影画像の画像フレーム中、複数の異なる位置から撮影した画像を含むフレーム０〜ｎの複数の先行画像フレームを入力し、各画像フレームに含まれる特徴点の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行して、特徴点の３次元位置情報とカメラ位置姿勢情報を取得する初期情報生成部と、
前記初期情報生成部が前記先行画像フレームから取得した特徴点位置情報とカメラ位置姿勢情報を初期画像フレームｎに対応する状態情報として設定し、フレームｎ＋１以降の後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、フレームｎ＋１以降の後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得する特徴点位置情報生成部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、さらに、
前記特徴点位置情報生成部の生成した特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行するバンドル調整処理部を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特徴点位置情報生成部は、
特徴点位置情報とカメラ位置姿勢情報を含む多次元正規分布データを状態情報として設定して拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記初期情報生成部と前記特徴点位置情報生成部とによって抽出されなかった特徴点を追加特徴点として抽出して抽出した追加特徴点の３次元位置を算出する処理を実行する特徴点抽出部を有し、
前記バンドル調整処理部は、
前記特徴点位置情報生成部の生成した特徴点位置情報と前記特徴点抽出部が抽出した追加特徴点の特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行する構成であることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記特徴点抽出部は、
画像フレームから抽出した特徴点と、前記初期情報生成部と前記特徴点位置情報生成部とによって抽出された特徴点との重複判定を実行し、重複しない新規特徴点のみを追加特徴点として選択する処理を実行することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記情報処理装置は、さらに、
前記特徴点位置情報生成部の生成した特徴点位置情報を利用した３次元画像データを生成する３Ｄマップ生成部を有することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
情報処理装置において、画像に含まれる特徴点の３次元位置を算出する情報処理方法であり、
初期情報生成部が、カメラ撮影画像の画像フレーム中、複数の異なる位置から撮影した画像を含むフレーム０〜ｎの複数の先行画像フレームを入力し、各画像フレームに含まれる特徴点の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行して、特徴点の３次元位置情報とカメラ位置姿勢情報を取得する初期情報生成ステップと、
特徴点位置情報生成部が、前記初期情報生成部が前記先行画像フレームから取得した特徴点位置情報とカメラ位置姿勢情報を初期画像フレームｎに対応する状態情報として設定し、フレームｎ＋１以降の後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、フレームｎ＋１以降の後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得する特徴点位置情報生成ステップと、
を実行することを特徴とする情報処理方法。
【請求項８】
前記情報処理方法は、さらに、
バンドル調整処理部が、前記特徴点位置情報生成ステップにおいて生成した特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行するバンドル調整処理ステップを有することを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記特徴点位置情報生成ステップは、
特徴点位置情報とカメラ位置姿勢情報を含む多次元正規分布データを状態情報として設定して拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得することを特徴とする請求項７に記載の情報処理方法。
【請求項１０】
前記情報処理方法は、さらに、
特徴点抽出部が、前記初期情報生成部と前記特徴点位置情報生成部とによって抽出されなかった特徴点を追加特徴点として抽出して抽出した追加特徴点の３次元位置を算出する処理を実行する特徴点抽出ステップを有し、
前記バンドル調整処理ステップは、
前記特徴点位置情報生成部の生成した特徴点位置情報と前記特徴点抽出部が抽出した追加特徴点の特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行することを特徴とする請求項８に記載の情報処理方法。
【請求項１１】
前記特徴点抽出ステップは、
画像フレームから抽出した特徴点と、前記初期情報生成部と前記特徴点位置情報生成部とによって抽出された特徴点との重複判定を実行し、重複しない新規特徴点のみを追加特徴点として選択する処理を実行することを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
前記情報処理方法は、さらに、
３Ｄマップ生成部が、前記特徴点位置情報生成部の生成した特徴点位置情報を利用した３次元画像データを生成する３Ｄマップ生成ステップを有することを特徴とする請求項７に記載の情報処理方法。
【請求項１３】
情報処理装置において、画像に含まれる特徴点の３次元位置を算出させるコンピュータ・プログラムであり、
初期情報生成部に、カメラ撮影画像の画像フレーム中、複数の異なる位置から撮影した画像を含むフレーム０〜ｎの複数の先行画像フレームを入力し、各画像フレームに含まれる特徴点の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行させて、特徴点の３次元位置情報とカメラ位置姿勢情報を取得させる初期情報生成ステップと、
特徴点位置情報生成部に、前記初期情報生成部が前記先行画像フレームから取得した特徴点位置情報とカメラ位置姿勢情報を初期画像フレームｎに対応する状態情報として設定し、フレームｎ＋１以降の後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、フレームｎ＋１以降の後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得させる特徴点位置情報生成ステップと、
を実行させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、カメラによる撮影画像に基づく３次元マップ（３Ｄ  ｍａｐ）の生成に適用する特徴点の３次元位置を算出する処理を行う情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
カメラの撮影画像を解析して撮影画像に含まれるオブジェクトの３次元位置を求める処理が様々な分野で利用されている。例えばカメラを備えたロボットなどのエージェント(移動体)が、カメラの撮影画像を解析して移動環境を観測し、観測状況に応じてエージェント周囲の環境を把握しながら移動を行う処理や、撮影画像に基づいて周囲環境の地図（環境地図）を作成する環境マップ構築処理に利用される。非特許文献１には、特徴点位置の追跡を全フレームで行い、全フレームのデータが得られた後、バッチ処理により特徴点の位置とカメラ位置を算出する方法を開示している。
【０００３】
３次元マップ（３Ｄ  ｍａｐ）の生成処理シーケンスの一例について図１を参照して説明する。まず、ステップＳ１１においてカメラによって画像を撮影する。例えばカメラを保持したユーザやロボットなどが移動しながら周りの画像を連続的に撮影する。
【０００４】
ステップＳ１２において取得画像の解析によって、画像に含まれる特徴点の位置情報などが含まれる疎な３次元情報を構築する。この処理においては、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理が適用される。ＳＬＡＭは、カメラから入力する画像内の特徴点の位置と、カメラの位置姿勢を併せて検出する処理である。ＳＦＭは、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析する処理などである。
【０００５】
さらに、ステップＳ１３では、ステップＳ１２において求めたカメラの軌跡情報や画像内の特徴点情報などを利用して詳細な３次元情報である密な３次元情報である３次元マップを生成する。
【０００６】
ステップＳ１２のＳＦＭやＳＬＡＭ処理において画像内の特徴点の解析を正確に実行することが、最終的な３次元情報の精度を高めることになる。このステップＳ１２では、画像フレームに含まれる特徴点情報とカメラ軌跡情報を取得する処理が行われる。この詳細処理例を図２に示す。
【０００７】
まず、ステップＳ２１においてカメラから複数の撮影画像を入力し、フレーム間の一致する特徴点を利用して、カメラの位置を算出するフレームマッチング処理を行う。入力画像は、例えば移動するカメラが撮影した動画像の複数の画像フレーム、すなわち異なる位置から撮影した複数の画像であり、同一のオブジェクトが複数フレームに撮影されている。ステップＳ２１では、複数の画像フレームから対応する特徴点を検出し、これらの情報を利用してカメラの位置を計算する。
【０００８】
ステップＳ２２では、フレームスティッチ処理（Ｆｒａｍｅ  Ｓｔｉｔｃｈ）を実行する。この処理は、ステップＳ２１で検出した情報を利用して各画像の特徴点（Ｌａｎｄｍａｒｋ）の３次元位置を推定して、複数の画像データ内の複数の特徴点位置に基づいて画像フレームを接合して各特徴点の３次元位置を反映したデータを生成する処理である。
【０００９】
ステップＳ２３では、バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）を実行する。このバンドル調整処理は、異なる位置から撮影した複数の画像に含まれる対応する特徴点の３次元位置を１つの位置に収束させる処理である。各撮影画像のカメラ位置情報と、各カメラ位置において撮影された画像に含まれる対応する特徴点の情報を利用して、特徴点の最も確からしい３次元位置を算出する処理である。この処理のためには、基本的には、２つ以上の異なる位置から撮影した画像フレームが必要となる。
【００１０】
例えば、図３に示すように、３つの異なる位置からの撮影画像１１〜１３を利用し、その撮影画像中から検出した特徴点２１〜２３を利用して、特徴点の３次元位置を求める。複数の画像に含まれる特徴点中、対応する特徴点の位置は図３に示す特徴点２１のように、各画像の撮影ポイントから特徴点２１を結ぶ線（Ｂｕｎｄｌｅ）が１つの特徴点２１位置において交わるはずである。
【００１１】
しかし、カメラの位置や特徴点の画像内の位置情報などは必ずしも正確に算出されず様々な要因による誤差が含まれる。従って、このような誤差を取り除く必要がある。具体的には１つの対応する特徴点の３次元位置とカメラ位置とを結ぶ線が、その１つの特徴点において交わるように補正する。すなわち算出済みのカメラ位置や特徴点位置を修正する処理が必要となる。この処理がバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）として実行され、この調整処理によって修正された特徴点位置情報やカメラ位置情報を利用してより精度の高い３次元情報を生成することが可能となる。
【００１２】
しかしながら、このような従来型の処理では、十分な数の対応特徴点が得られないと、ステップＳ２１のフレームマッチング処理が不可能となり、カメラ位置の算出が困難になる場合がある。フレームマッチを省略することはできず、フレームマッチに失敗した場合は、処理のやり直しが必要となる。またカメラは必ず移動していることが必要であり、また、カメラがあるオブジェクトの回りを周回しているような場合、特徴点の対応付けエラーが発生して本来１つのオブジェクトが複数あるものとして認識されてしまうといったエラーが発生しやすいという問題があった。
【非特許文献１】"Ｓｈａｐｅ  ａｎｄ  ｍｏｔｉｏｎ  ｆｒｏｍ  ｉｍａｇｅ  ｓｔｒｅａｍｓ  ｕｎｄｅｒ  ｏｒｔｈｏｇｒａｐｈｙ：  ａ  ｆａｃｔｏｒｉｚａｔｉｏｎ  ｍｅｔｈｏｄ"，Ｃ．Ｔｏｍａｓｉ  ａｎｄ  Ｔ．Ｋａｎａｄｅ，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，  Ｖｏｌｕｍｅ  ９，  Ｎｕｍｂｅｒ  ２，  ｐｐ．１３７−１５４，（１９９２）．
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、カメラによる撮影画像に基づく３次元マップ（３Ｄ  ｍａｐ）の生成に適用する特徴点の３次元位置を算出する構成において、一部の撮影画像のみを利用したフレームマッチング処理を行うのみで、その後の処理ではフレームマッチング処理を実行することなく効率的な特徴点の３次元位置情報生成を可能とする情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の側面は、
画像に含まれる特徴点の３次元位置を算出する情報処理装置であり、
カメラ撮影画像の画像フレーム中、複数の先行画像フレームを入力し、各画像フレームの対応特徴点解析により、特徴点の３次元位置情報を取得する初期情報生成部と、
前記初期情報生成部が先行画像フレームから取得した特徴点位置情報を初期画像フレームに対する状態情報として設定し、後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報を取得する特徴点位置情報生成部と、
を有することを特徴とする情報処理装置にある。
【００１５】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記特徴点位置情報生成部の生成した特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行するバンドル調整処理部を有することを特徴とする。
【００１６】
さらに、本発明の情報処理装置の一実施態様において、前記初期情報生成部は、複数の異なる位置から撮影した画像を利用して各画像フレームに含まれる特徴点の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行する構成であることを特徴とする。
【００１７】
さらに、本発明の情報処理装置の一実施態様において、前記初期情報生成部は、前記先行画像フレームの解析により、画像フレームを撮影したカメラの位置姿勢情報を算出する構成であり、前記特徴点位置情報生成部は、前記初期情報生成部が前記先行画像フレームから算出した特徴点位置情報とカメラ位置姿勢情報を、初期画像フレームに対応する状態情報として設定し、前記後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得することを特徴とする。
【００１８】
さらに、本発明の情報処理装置の一実施態様において、前記特徴点位置情報生成部は、特徴点位置情報とカメラ位置姿勢情報を含む多次元正規分布データを状態情報として設定して拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得することを特徴とする。
【００１９】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記初期情報生成部と前記特徴点位置情報生成部とによって抽出されなかった特徴点を追加特徴点として抽出して抽出した追加特徴点の３次元位置を算出する処理を実行する特徴点抽出部を有し、前記バンドル調整処理部は、前記特徴点位置情報生成部の生成した特徴点位置情報と前記特徴点抽出部が抽出した追加特徴点の特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行する構成であることを特徴とする。
【００２０】
さらに、本発明の情報処理装置の一実施態様において、前記特徴点抽出部は、画像フレームから抽出した特徴点と、前記初期情報生成部と前記特徴点位置情報生成部とによって抽出された特徴点との重複判定を実行し、重複しない新規特徴点のみを追加特徴点として選択する処理を実行することを特徴とする。
【００２１】
前記情報処理装置は、さらに、前記特徴点位置情報生成部の生成した特徴点位置情報を利用した３次元画像データを生成する３Ｄマップ生成部を有することを特徴とする。
【００２２】
さらに、本発明の第２の側面は、
情報処理装置において、画像に含まれる特徴点の３次元位置を算出する情報処理方法であり、
初期情報生成部が、カメラ撮影画像の画像フレーム中、複数の先行画像フレームを入力し、各画像フレームの対応特徴点解析により、特徴点の３次元位置情報を取得する初期情報生成ステップと、
特徴点位置情報生成部が、前記初期情報生成部が先行画像フレームから取得した特徴点位置情報を初期画像フレームに対する状態情報として設定し、後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報を取得する特徴点位置情報生成ステップと、
を有することを特徴とする情報処理方法にある。
【００２３】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、バンドル調整処理部が、前記特徴点位置情報生成ステップにおいて生成した特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行するバンドル調整処理ステップを有することを特徴とする。
【００２４】
さらに、本発明の情報処理方法の一実施態様において、前記初期情報生成ステップは、複数の異なる位置から撮影した画像を利用して各画像フレームに含まれる特徴点の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行するステップであることを特徴とする。
【００２５】
さらに、本発明の情報処理方法の一実施態様において、前記初期情報生成ステップは、前記先行画像フレームの解析により、画像フレームを撮影したカメラの位置姿勢情報を算出するステップであり、前記特徴点位置情報生成ステップは、前記初期情報生成部が前記先行画像フレームから算出した特徴点位置情報とカメラ位置姿勢情報を、初期画像フレームに対応する状態情報として設定し、前記後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得するステップであることを特徴とする。
【００２６】
さらに、本発明の情報処理方法の一実施態様において、前記特徴点位置情報生成ステップは、特徴点位置情報とカメラ位置姿勢情報を含む多次元正規分布データを状態情報として設定して拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報と後続フレームを撮影したカメラ位置姿勢情報を取得することを特徴とする。
【００２７】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、特徴点抽出部が、前記初期情報生成部と前記特徴点位置情報生成部とによって抽出されなかった特徴点を追加特徴点として抽出して抽出した追加特徴点の３次元位置を算出する処理を実行する特徴点抽出ステップを有し、前記バンドル調整処理ステップは、前記特徴点位置情報生成部の生成した特徴点位置情報と前記特徴点抽出部が抽出した追加特徴点の特徴点位置情報を入力して特徴点の３次元位置情報の修正処理を実行することを特徴とする。
【００２８】
さらに、本発明の情報処理方法の一実施態様において、前記特徴点抽出ステップは、画像フレームから抽出した特徴点と、前記初期情報生成部と前記特徴点位置情報生成部とによって抽出された特徴点との重複判定を実行し、重複しない新規特徴点のみを追加特徴点として選択する処理を実行することを特徴とする。
【００２９】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、３Ｄマップ生成部が、前記特徴点位置情報生成部の生成した特徴点位置情報を利用した３次元画像データを生成する３Ｄマップ生成ステップを有することを特徴とする。
【００３０】
さらに、本発明の第３の側面は、
情報処理装置において、画像に含まれる特徴点の３次元位置を算出させるコンピュータ・プログラムであり、
初期情報生成部に、カメラ撮影画像の画像フレーム中、複数の先行画像フレームを入力し、各画像フレームの対応特徴点解析により、特徴点の３次元位置情報を取得させる初期情報生成ステップと、
特徴点位置情報生成部に、前記初期情報生成部が先行画像フレームから取得した特徴点位置情報を初期画像フレームに対する状態情報として設定し、後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報を取得させる特徴点位置情報生成ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００３１】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３３】
本発明の一実施例の構成によれば、カメラの取得した画像に基づく特徴点の３次元位置取得構成において、カメラ撮影画像の画像フレーム中、複数の先行画像フレームのみを利用した対応特徴点解析による特徴点の３次元位置情報を初期情報として取得する処理と、この初期情報を初期画像フレームに対する状態情報として設定して、後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報を取得する構成としたので、例えばフレームマッチングなどを伴う特徴点抽出処理は、先行画像フレームに対してのみ実行すればよく、効率的な特徴点の３次元位置情報の取得および３次元画像データの生成が実現される。
【発明を実施するための最良の形態】
【００３４】
以下、図面を参照しながら本発明の実施形態に係る情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【００３５】
本発明の概要について、図４を参照して説明する。本発明の情報処理装置１２０は、例えば移動するユーザ１０１の保持するカメラ１０２の撮影画像、例えば動画像を構成する画像を入力し、その入力画像の解析を実行して撮影画像に含まれる様々なオブジェクトからなる３次元画像情報１０３を生成する。
【００３６】
情報処理装置１２０は、先に図１を参照して説明した処理と同様、取得画像の解析によって、画像に含まれる特徴点の位置情報などが含まれる疎な３次元マップ１３１を、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理を適用して生成し、さらに、カメラの軌跡情報や画像内の特徴点情報などを利用して詳細な３次元情報である密な３次元マップ１３２を生成する。
【００３７】
先に説明したように、ＳＬＡＭは、カメラから入力する画像内の特徴点の位置と、カメラの位置姿勢を併せて検出する処理である。ＳＦＭは、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析する処理などである。
【００３８】
疎な３次元マップ１３１は特徴点の３次元位置情報を持つ。この情報の生成処理シーケンスの従来例については、図２のフローチャートを参照して説明したが、本発明の情報処理装置１２０は、図２に示すフローと異なった処理により特徴点の３次元位置の取得を行う。
【００３９】
本発明の一実施例の特徴点の３次元位置およびカメラの位置姿勢情報の取得シーケンスについて、図５に示すフローチャートを参照して説明する。
【００４０】
特徴点の３次元位置情報およびカメラの位置姿勢情報の取得処理は、以下の処理シーケンスで実行する。
ステップＳ１０１：初期情報取得処理（ＳＦＭ）
ステップＳ１０２：拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）
ステップＳ１０３：バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）
【００４１】
本発明の一実施例の特徴点の３次元位置情報およびカメラの位置姿勢情報の取得処理の基本的流れは、このように、
「初期情報取得処理（ＳＦＭ）」
→「拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）」
→「バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）」
このような処理シーケンスである。
【００４２】
ステップＳ１０１の初期情報取得処理（ＳＦＭ）は、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理によって行われるが、この処理は、例えばカメラから入力する最初の数フレームの入力画像のみを適用して実行する。この処理によって得られた情報をステップＳ１０２において実行する拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）のイニシャライズ情報として利用する。
【００４３】
ＥＫＦ  ＳＬＡＭに適用するイニシャライズ情報が得られた後は、その後の入力画像に対しては、ＳＦＭを実行することなく、ＥＫＦ  ＳＬＡＭを実行して、特徴点位置情報と各画像を撮影したカメラの位置姿勢情報を取得する。
【００４４】
具体的な処理例について図６を参照して説明する。図６（ａ）に示すカメラによって取得される画像フレームに含まれる被写体の特徴点の位置情報とカメラの軌跡を求めるとする。なお、図６（ａ）には、カメラによって取得される画像フレームを一定間隔で示している。
【００４５】
本発明の情報処理装置は、特徴点の３次元位置情報の解析対象とする画像フレームのすべてではなく、最初からの数フレームのみ（図６に示すフレームＴ１までの入力フレーム）を、図５に示すステップＳ１０１の初期情報取得処理（ＳＦＭ）の処理対象フレームとする。この複数の先行画像フレームを対象とした初期情報取得処理（ＳＦＭ）によって、３次元マップとカメラフレームの軌跡情報が、次のステップＳ１０２において実行する「ＥＫＦ  ＳＬＡＭ」の初期化情報（Ｉｎｉｔｉａｌｉｚｅ  Ｄａｔａ）として利用される。
【００４６】
フレームＴ１までの複数の先行画像フレームによって得られた３次元マップとカメラフレームの軌跡情報が初期情報となり、この初期情報を用いて「ＥＫＦ  ＳＬＡＭ」の初期化を行い、「ＥＫＦ  ＳＬＡＭ」の処理を行う。すなわち、先行画像フレームから取得した特徴点位置情報を初期画像フレームに対する状態情報として設定し、後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報を取得する。
【００４７】
図７に示すフローチャートは、図５に示すフローの詳細シーケンスを示すフローチャートである。
図５に示すステップＳ１０１［初期情報取得処理（ＳＦＭ）］は図７のステップＳ２０４の処理、
図５に示すステップＳ１０２［拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）］は図７のステップＳ２０７の処理、
図５に示すステップＳ１０３［バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）］は、図７のステップＳ２０９の処理、
にそれぞれ対応する。
【００４８】
図７のフローチャートに従って本発明の処理シーケンスについて説明する。まず、ステップＳ２０１において、フラグ設定を行う。このフラグは、初期情報取得処理（ＳＦＭ）が完了しているか否かを示す状態フラグであり、初期情報取得処理（ＳＦＭ）が未完了の場合は［０］、完了した場合は［１］に設定される。
【００４９】
まず、初期的には、ステップＳ２０１において、状態フラグが［０］に設定され、ステップＳ２０２において画像を入力する。例えば図４に示すカメラ１０２の撮影した動画像を構成する１枚の画像フレームである。
【００５０】
次に、ステップＳ２０３において状態フラグの値を確認し、フラグ＝１でない場合は、初期情報取得処理（ＳＦＭ）が未完了であるので、ステップＳ２０４に進む。ステップＳ２０４では、初期情報取得処理（ＳＦＭ）を実行する。この処理は、複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理である。従来から知られるＳＦＭ処理と同様、フレームマッチングによる特徴点の対応付け処理、バンドル調整処理によって、特徴点３次元位置と、特徴点を含む画像フレームの位置姿勢情報（カメラの位置姿勢情報）を算出する。
【００５１】
このステップＳ２０４での初期情報取得処理（ＳＦＭ）は、予め設定したフレーム数に対してのみ実行される。ステップＳ２０４での初期情報取得処理（ＳＦＭ）の入力情報と出力情報は以下の通りである。
入力：予め設定したフレーム数の画像データ、
出力：入力画像フレームの位置姿勢と特徴点位置情報
なお、入力画像フレームの位置姿勢はカメラの位置姿勢に対応する情報であり、カメラ位置姿勢情報と同一または１対１に対応する情報である。
ステップＳ２０４での初期情報取得処理（ＳＦＭ）において生成した出力情報［入力画像フレームの位置姿勢と特徴点位置情報］は、ステップＳ２０７における拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）に利用される。なお、ステップＳ２０４での初期情報取得処理（ＳＦＭ）において生成した出力情報［入力画像フレームの位置姿勢と特徴点位置情報］は、処理対象画像フレームとともに、記憶部１５２に格納する。
【００５２】
ステップＳ２０４での初期情報取得処理（ＳＦＭ）の後、ステップＳ２０５では、予め設定されたフレーム数に達してＳＦＭが完了したか否かを判定し、完了していない場合は、ステップＳ２０２に戻り、次の画像を入力してステップＳ２０４の初期情報取得処理（ＳＦＭ）を継続する。
【００５３】
ステップＳ２０５において、予め設定されたフレーム数に達して初期情報取得処理（ＳＦＭ）が完了したと判定されると、ステップＳ２０６に進み、状態フラグを［１］、すなわち、初期情報取得処理（ＳＦＭ）の完了を示す値に設定してステップＳ２０２に戻り、次の画像を入力する。
【００５４】
次に、ステップＳ２０３において、状態フラグの値が［１］であることが確認され、ステップＳ２０７に進む。ステップＳ２０７では、図５のフローにおけるステップＳ１０２の処理、すなわち、拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）を実行する。
【００５５】
拡張カルマンフィルタ（ＥＫＦ）を適用した処理では、例えば先行する画像フレームなどから取得したカメラや特徴点の位置などの情報を状態変数として保持し、後続するフレームから対応する特徴点を観測した場合、観測情報に基づいて状態変数としてのカメラや特徴点の位置などの情報を更新してカメラの軌跡や、特徴点の３次元位置を求めるものである。なお、状態変数は、複数の状態値からなる多次元正規分布データとして保持される。すなわち、各変数の状態の確率を正規分布として示した多次元正規分布データとして保持される。
【００５６】
この拡張カルマンフィルタ（ＥＫＦ）を適用した処理を開始するためには、カメラや特徴点の位置を示す状態変数を初期値として予め保持していることが必要である。本発明の処理では、この初期値となるデータを図７のステップＳ２０４の初期情報取得処理（ＳＦＭ）（図５に示すステップＳ１０１の処理）によって取得する。
【００５７】
拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）において利用する状態変数について図８を参照して説明する。図８には、
（ａ）カメラによる撮影処理例、
（ｂ）状態変数、
（ｃ）状態変数の更新処理、
これらを示している。
【００５８】
状態変数［ｘ］は、例えば図８（ｂ）に示すように、カメラの位置、姿勢、速度、各速度、さらに、カメラの撮影画像から検出される複数の特徴点の位置情報Ｐ１〜Ｐｎによって構成される。このように複数の状態値からなる多次元正規分布データとして構成される。なお、ここに示す状態変数の例は一例であり、さらにその他の詳細情報を含めてもよいし、これらの一部のみからなるデータ構成としてもよい。
【００５９】
状態変数は、新たな入力画像に基づいて逐次更新される。図８（ｃ）に示すように、状態変数は新たな処理フレームから検出される特徴点情報に基づいて、以下のように、更新情報［ｘｔ＋１］が生成される。
ｘｔ＋１←ｆ（ｘｔ，ａｔ，ｓｔ）＋ｕ
ただし、
ａｔ：モーションモデル、
ｓｔ：観測モデル、
ｕ：ノイズ
である。
本実施例では、モーションモデルは「等速運動モデル」、観測モデルは「ピンホールカメラモデル」に従って処理する。
【００６０】
ステップＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）の開始に際して、データ変換処理部Ａ１５１が、ステップＳ２０４の初期情報取得処理（ＳＦＭ）において得られた情報を変換してＥＫＦ  ＳＬＡＭに適用するための状態変数を生成する。先に説明したように、ステップＳ２０４での初期情報取得処理（ＳＦＭ）の入力情報と出力情報は以下の通りである。
入力：予め設定したフレーム数の画像データ、
出力：入力画像フレームの位置姿勢と特徴点位置情報
【００６１】
データ変換処理部Ａ１５１は、初期情報取得処理（ＳＦＭ）の出力情報［入力画像フレームの位置姿勢と特徴点位置情報］を入力して、ステップＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）において利用するためのデータ、すなわち、ＥＫＦ  ＳＬＡＭにおいて適用する初期フレームの状態（＝状態変数）を生成する。
【００６２】
データ変換処理部Ａ１５１の入力値と出力値は以下の通りである。
入力値：ステップＳ２０４の初期情報取得処理（ＳＦＭ）において得られた入力画像フレームの位置姿勢（カメラ位置姿勢）と特徴点位置情報、
出力値：ＥＫＦ  ＳＬＡＭにおいて適用する初期フレームの状態（＝状態変数）
【００６３】
データ変換処理部Ａ１５１は、例えば、ＥＫＦ  ＳＬＡＭで用いる初期フレームに対応するカメラ位置姿勢と特徴点位置を初期フレームの状態（多次元正規分布）の平均として設定する。なお、図８に示す変数のようにカメラ速度・角速度が必要な場合は、例えばＳＦＭの結果として取得される過去の画像フレームに対応して算出されたカメラ位置姿勢と、カメラが等速度で運動するという仮説を用いて、カメラの速度・加速度を予測し、初期フレームの状態の平均に反映させる設定とする。
【００６４】
なお、状態変数は、前述したように多次元正規分布データであるが、この状態変数の共分散行列の設定態様としては様々な方法がある。共分散行列を直接求めることは、様々な誤差要因があるため困難であり、一般的には経験則で決める。本実施例では、ユーザが予め設定した値を用いた。例えば、共分散値は０として、カメラに関する自己共分散値は０、特徴点位置に関する自己共分散値はユーザが設定した経験的な値σを用いる。
【００６５】
このように、データ変換部Ａ１５１は、ステップＳ２０４の初期情報取得処理（ＳＦＭ）において処理を行った予め設定された０〜Ｔフレームの画像フレームの位置姿勢（カメラ位置姿勢）と特徴点位置情報を利用して、ＥＫＦ  ＳＬＡＭで用いる初期フレームに対応する状態変数を算出し、ステップＳ２０７では、この状態変数を利用して、拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）を行い、後続する画像フレームの入力に応じた状態変数の更新処理を行う。
【００６６】
ステップＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）の入力情報と出力情報は以下の通りである。
入力：特徴点と初期フレームの状態、すなわち、カメラ位置姿勢情報と特徴点位置情報の多次元正規分布データからなる状態変数（図８参照）、
出力：各画像フレームに対応する状態変数と、特徴点トラッキングデータ、
なお、特徴点トラッキングデータは、各画像フレームに対応する状態変数に含まれる特徴点位置情報によって算出できる。
このステップＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）において生成した出力情報［各画像フレームに対応する状態変数と、特徴点トラッキングデータ］は、処理対象画像フレームとともに、記憶部１５２に格納され、ステップＳ２０９におけるバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）に利用される。
【００６７】
ステップＳ２０７では、各処理画像フレームに対応する状態変数（例えば図８（ｂ）に示す状態変数ｘ（多次元正規分布））と、特徴点トラッキングデータを取得し、各フレームに対応付けて図７に示すように記憶部１５２に記録する。すなわち、記憶部１５２には、ステップＳ２０７における拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）において処理された画像フレームに対応する状態変数（多次元正規分布）と特徴点トラッキングデータが記録される。
【００６８】
ステップＳ２０８では、未処理の入力画像があるかを判定し、ある場合は、ステップＳ２０２に戻り、次の画像を入力して、ステップＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）を継続して実行する。
【００６９】
ステップＳ２０８において、未処理の入力画像がないと判定されると、ステップＳ２０９に進み、バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）を実行する。
【００７０】
このステップＳ２０９のバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）は、ステップＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）において生成された出力情報［各画像フレームに対応する状態変数（多次元正規分布）と、特徴点トラッキングデータ］を利用して実行する。
【００７１】
図７に示すデータ変換部Ｂ１５３は、ステップＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）において生成され記憶部１５２に記憶された情報を利用して、ステップＳ２０９のバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）で利用するデータへの変換処理を行う。
【００７２】
データ変換部Ｂ１５３の入出力は以下のとおりである。
入力：各画像フレームに対応する状態変数（多次元正規分布）と、特徴点トラッキングデータ（記憶部１５２の格納データ）
出力：各画像フレームに対応するカメラ位置姿勢と特徴点位置
【００７３】
データ変換部Ｂ１５３は、記憶部１５２の格納データである各画像フレームに対応する状態変数（多次元正規分布）を用いて、各画像フレームのカメラ位置姿勢情報を求め、特徴点位置は、最新フレームの状態（多次元正規分布）から求める。なお、状態変数は、前述したように各変数の状態の確率を正規分布として示した多次元正規分布データであり、正規分布データの平均に対応する値が、一番確率が高いので、カメラ位置姿勢や特徴点位置は、状態変数の各正規分布データの平均値を採用する。なお、特徴点トラッキングデータは記憶部１５２に記憶されたデータを利用する。
【００７４】
ステップＳ２０９のバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）は、データ変換部Ｂ１５３の生成したデータ、すなわち、各画像フレームに対応するカメラ位置姿勢と特徴点位置を入力して処理を行う。
ステップＳ２０９のバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）の入出力データは以下の通りである。
入力：各画像フレームのカメラ位置姿勢と特徴点位置、および特徴点トラッキングデータ
出力：各画像フレームのカメラ位置姿勢と特徴点位置
【００７５】
バンドル調整処理は、先に、図３を参照して説明したように異なる位置から撮影した複数の画像に含まれる対応する特徴点の３次元位置を１つの位置に収束させる処理によって、各画像フレームのカメラ位置姿勢と特徴点位置を求める処理である。すなわち、対応する特徴点の位置は図３に示す特徴点２１のように、各画像の撮影ポイントから特徴点２１を結ぶ線（Ｂｕｎｄｌｅ）が１つの特徴点２１位置において交わるはずであるが、カメラの位置や特徴点の画像内の位置情報などは必ずしも正確に算出されず様々な要因による誤差が含まれる。従って、このような誤差を取り除く必要がある。具体的には１つの対応する特徴点の３次元位置とカメラ位置とを結ぶ線が、その１つの特徴点において交わるように算出済みのカメラ位置や特徴点位置を修正する。この処理をバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）として実行する。
【００７６】
この修正処理によって得られたカメラ姿勢位置情報と、特徴点位置情報を最終的な出力として、３次元マップを生成する。この処理によって、精度の高い３次元マップの生成が可能となる。
【００７７】
［特徴点の追加を実行する処理例］
図７のフローチャートを参照して説明した処理では、ステップＳＳ２０７の拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）の結果で得られる特徴点の情報のみを用いて、ステップＳ２０９におけるバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）を行う構成としていた。
【００７８】
このような処理を実行しても得られた特徴点の３次元位置情報を用いて３次元マップを生成することが可能ではあるが、処理対象とするカメラフレーム数に対して特徴点数が相対的に少ない場合、生成される３次元マップの結果が悪くなる場合がある。より精度の高い３次元マップを生成するためには利用可能な特徴点の数が多いほうが有利である。すなわち、バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）を行う前に特徴点の追加が可能であれば、追加を行い追加した特徴点の情報も併せて利用して、バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）を行って多くの特徴点の３次元位置情報を出力する構成とすることが好ましい。以下では、この特徴点追加処理を実行する処理例について説明する。
【００７９】
本実施例の処理シーケンスは、図９に示すフローチャートに従った処理となる。図９に示す処理フローは、先に説明した図７に示すステップＳ２０９の処理の前にステップＳ３００の特徴点追加処理を追加した点である。その他の処理は、図７に示すフローと同様である。
【００８０】
ステップＳ３００の特徴点追加処理は、ステップＳ２０７における拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）の完了後に実行する。
【００８１】
この時点で、記憶部には、ステップＳ２０７におけるＥＫＦ  ＳＬＡＭ処理によって生成された各画像フレームに対応する状態変数と、特徴点トラッキングデータが格納され、ステップＳ３００の特徴点追加処理では、この記憶部の格納データと、処理済みの画像フレームデータを入力して特徴点の追加処理を行う。
【００８２】
ステップＳ３００の特徴点追加処理の入出力データは以下の通りである。
入力：データ変換部１５３の出力［各画像フレームのカメラ位置姿勢と特徴点位置、および特徴点トラッキングデータ］と処理済みの全画像フレームデータ
出力：特徴点の三次元位置と、各画像内での特徴点位置、
である。
【００８３】
ステップＳ２０９におけるバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）では、ステップＳ２０７におけるＥＫＦ  ＳＬＡＭ処理において抽出済みの特徴点情報に、ステップＳ３００の特徴点追加処理において追加された特徴点情報の双方を用いてバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）が行われることになる。すなわち、先に説明した図７に示すフローより多くの特徴点の３次元位置情報の出力が可能となる。
【００８４】
ステップＳ３００の特徴点追加処理の詳細シーケンスを図１０のフローチャートを参照して説明する。ステップＳ３０１では、処理対象画像フレームを１枚ずつ順次入力する。なお処理対象とする画像フレームは、ステップＳ２０４の初期情報取得処理（ＳＦＭ）と、ステップＳ２０７のＥＫＦ−ＳＬＡＭ処理の処理対象となった画像である。ステップＳ３０２以下の処理は、処理対象画像フレームの各々について順次実行する。
【００８５】
ステップＳ３０２では、処理対象の画像フレームからの特徴点抽出処理を実行する。特徴点抽出処理は、既存の処理方法が適用可能であり、例えば、ハリスコーナーディテクター（Ｈａｒｒｉｓ  Ｃｏｒｎｅｒ  Ｄｅｔｅｃｔｏｒ）を用いた特徴点抽出処理を適用する。
【００８６】
ハリスコーナーディテクター（Ｈａｒｒｉｓ  Ｃｏｒｎｅｒ  Ｄｅｔｅｃｔｏｒ）を用いた特徴点抽出処理について図１１を参照して説明する。情報処理装置のデータ処理部は、特徴点抽出に際して図１１に示すようにカメラによって撮影された取得イメージ１７０から複数のハリスコーナーイメージ１８０〜１８２と、ラプラシアンイメージ１９０〜１９２を生成する。
【００８７】
ハリスコーナーイメージは、取得イメージに対してハリスコーナーディテクター（Ｈａｒｒｉｓ  Ｃｏｒｎｅｒ  Ｄｅｔｅｃｔｏｒ）を適用して生成されるイメージデータである。これらのハリスコーナーイメージ１８０〜１８２から、例えば周囲８画素に比較して値の高い画素ポイント（ｍａｘｉｍａ  ｐｏｉｎｔ）１８５を検出点として抽出する。さらに、取得イメージ１７０に対して、ＬｏＧ（Ｌａｐｌａｃｉａｎ  ｏｆ  Ｇａｕｓｓｉａｎ）フィルタを適用して複数レベル（解像度）のラプラシアンイメージ１９０〜１９２を生成する。ＬｏＧ（Ｌａｐｌａｃｉａｎ  ｏｆ  Ｇａｕｓｓｉａｎ）フィルタは、画像の輪郭強調のために用いられる２次微分フィルタの一種であり、人間の視覚系で網膜からの情報が外側膝状体で中継されるまでに行われている処理の近似モデルとして用いられるものである。
【００８８】
特徴点抽出処理は、ＬｏＧフィルタ出力画像であるラプラシアンイメージ１９０〜１９２の所定のレベル範囲内の解像度変化によって位置の変化がないかハリスコーナーイメージ１８０〜１８２から得られた検出点の位置に対応する箇所に対して調べ、変化がない点を特徴点とする。これにより、画像の拡大縮小操作に対してロバストな特徴点間のマッチングが実現できる。なお、これらの特徴点抽出処理の詳細については、例えば、特開２００４−３２６６９３号公報（特願２００３−１２４２２５）に記載されている。
【００８９】
次に、ステップＳ３０３において、重複特徴点を除去する。すなわち、ステップＳ３０２において抽出された特徴点から、ステップＳ２０４の初期情報取得処理（ＳＦＭ）と、ステップＳ２０７のＥＫＦ−ＳＬＡＭ処理の処理において抽出された特徴点と重複する特徴点を除去する。ステップＳ２０４の初期情報取得処理（ＳＦＭ）と、ステップＳ２０７のＥＫＦ−ＳＬＡＭ処理の処理において抽出された特徴点情報は、記憶部１５２に格納されており、この取得済みの特徴点と、ステップＳ３０２において取得した特徴点とを比較して重複していない特徴点のみを記憶部１５２に追加登録する。
【００９０】
具体的には、処理画像フレームに対して、記憶部１５２に登録されている特徴点の画像フレーム中の位置を下式（数式１）によって計算する。
【００９１】
【数１】
0004985516.tif 000002
【００９２】
上記式の意味について、図１２、図１３を参照して説明する。上記式は、カメラの撮影画像２１０に含まれるオブジェクト２１１の点（ｍ）のカメラ像平面の画素位置２１２、すなわち、カメラ座標系によって表現されている位置と、世界座標系におけるオブジェクト２００の３次元位置（Ｍ）２０１との対応関係を示す式である。
【００９３】
カメラ像平面の画素位置２１２はカメラ座標系によって表現されている。カメラ座標系は、カメラの焦点を原点Ｃとして、像平面がＸｃ，Ｙｃの二次元平面、奥行きをＺｃとした座標系であり、カメラの動きによって原点Ｃは移動する。
【００９４】
一方、オブジェクト２００の３次元位置（Ｍ）２０１は、カメラの動きによって移動しない原点Ｏを有するＸＹＺ三軸からなる世界座標系によって示される。この異なる座標系でのオブジェクトの位置の対応関係を示す式が上述のピンホールカメラモデルとして定義される。
【００９５】
この式に含まれるλ，Ａ，Ｃｗ，Ｒｗは、図１３に示すように、
λ：正規化パラメータ
Ａ：カメラ内部パラメータ、
Ｃｗ：カメラ位置、
Ｒｗ：カメラ回転行列、
を意味している。
【００９６】
カメラ内部パラメータＡには、以下の値が含まれる。
f：焦点距離
θ：画像軸の直交性（理想値は９０°）
ｋｕ：縦軸のスケール（３次元位置のスケールから二次元画像のスケールへの変換）
ｋｖ：横軸のスケール（３次元位置のスケールから二次元画像のスケールへの変換）
（ｕ０，ｖ０）：画像中心位置
【００９７】
もし、ステップＳ３０２の特徴点抽出処理で抽出した特徴点が、記憶部１５２に登録されている特徴点の画像内の位置に近ければ、重複特徴点として削除する。近いかどうかの判断は、予め設定した閾値と比較して閾値より小さい差であれば削除する。具体的には、例えば、以下の式（数式２）、（数式３）を用いて判定を行う。
【数２】
0004985516.tif 000003
【数３】
0004985516.tif 000004
【００９８】
上記（数式２）と（数式３）のｄｉｓｔとＸｚを用いて、
「Ｘｚが正で且つ、ｄｉｓｔがある閾値以上」
の点を重複特徴点であると判断する。但し、ｍｄａｔａｂａｓｅは、記憶部１５２に登録された特徴点であり、前述の式（数式１）の左辺値と同じである。また、ｍｈａｒｒｉｓ＿ｃｏｒｎｅｒは、ステップＳ３０２の特徴点抽出と処理で抽出された点に対応する。また、式（数式３）の左辺の各成分は、前述の式（数式１）と同一である。なお、式（数式３）は、カメラの背面にある特徴点を無視した設定としている。
【００９９】
次に、ステップＳ３０４において、第１の特徴点トラッキング処理、すなわち、「特徴点トラッキング＃１（特徴点位置未知）」を実行する。この処理は、一般的なテンプレートウィンドウマッチングによる特徴点のオプティカルフロー検出処理である。なお、テンプレートウィンドウマッチングによる特徴点のオプティカルフロー検出処理の詳細は、例えば［ディジタル画像処理編集委員会、「ディジタル画像処理」、財団法人  画像情報教育振興協会  （２００４）ｐｐ．２４３］に記載されている。
【０１００】
処理対象としている画像フレームからステップＳ３０２の特徴点抽出処理において新たに抽出された特徴点を選択し、フレームの特徴点周辺をウィンドウとして切り出してテンプレート画像を取得する。ウィンドウサイズはユーザが設定する（例えば３６０ｘ２４０の画像に対して２１ｘ２１のテンプレート）。次に、未来方向のフレームに対してテンプレートマッチングを行い、対応点を求める。探索領域は、直前のフレームでの対応点周辺に設定して探索を実行する。
【０１０１】
マッチングしているか否かの指標として利用するマッチングスコアは、例えば正規化相関値を用いる。なお、正規化相関値については、上記文献［ディジタル画像処理編集委員会、「ディジタル画像処理」、財団法人  画像情報教育振興協会（２００４）ｐｐ．２０４］に記載されている。この処理において、マッチングスコアが小さければ（相関値が小さければ）探索を止める。求めた対応点が求めるトラッキング結果となる。このようにして、処理対象の画像フレームからステップＳ３０２の特点抽出処理において新たに抽出された特徴点の追跡（トラッキング）処理を実行する。
【０１０２】
次に、ステップＳ３０５において、特徴点三次元位置推定処理を実行する。この処理は、各画像フレームのカメラ位置と上述の処理によって得られる特徴点トラッキング結果を用いて特徴点の三次元位置を求める処理である。
【０１０３】
先に説明した式（数式１）、すなわち、ピンホールカメラモデルの式を用いて、特徴点の位置Ｍ求める。但し、カメラ位置はｃ、カメラ姿勢（回転行列）はＲ、カメラ内部パラメータはＡ、特徴点の画像内の位置はｍである。次に、式（数式１）を変形し、特徴点の位置Ｍに関する以下の式（数式４）を作成する。
【数４】
0004985516.tif 000005
【０１０４】
上記式（数式４）にあるそれぞれの変数は、前述した式（数式１）と同じである。また、ｄはカメラ位置ｃと特徴点Ｍとの距離を表す。また、下付き文字ｉはフレーム番号を表す。また、小文字で書かれているベクトルｘは、下式（数式５）によって定義される。
【数５】
0004985516.tif 000006
【０１０５】
なお、上記式（数式４）は正値にのみ成り立つので、図９に示すデータ変換部Ｂ１５３から得られる計測値に対しては、以下の式（数式６）が成り立つ。
【数６】
0004985516.tif 000007
【０１０６】
ただし、
記号［＾］は計測値を意味し、
［ε］は計測誤差により発生する左辺・右辺同士の誤差、
また、［ｘ＾］は、以下の式（数式７）によって定義される値である。
【数７】
0004985516.tif 000008
【０１０７】
入力フレームは１フレーム分ではなく、ステップＳ３０４の処理、すなわち、「特徴点トラッキング＃１（特徴点位置未知）」でトラッキングしたｎフレーム分（１フレーム分＝カメラ位置姿勢ｃ、Ｒと特徴点の画像内の位置ｍ）とするので、複数フレームに対応するために上記式（数式６）を拡張し、以下の式（数式８）を得る。
【数８】
0004985516.tif 000009
【０１０８】
ただし、Ｍは下式によって定義される。
【数９】
0004985516.tif 000010
【０１０９】
上記式（数式８）をｎフレーム分用意し、１つの式にまとめたのが以下に示す式（数式１０）である。
【数１０】
0004985516.tif 000011
【０１１０】
なお、上記式（数式１０）の各行列・ベクトルは、以下の式（数式１１）
【数１１】
0004985516.tif 000012
として定義する。
【０１１１】
上記式（数式１１）の左辺のεのノルム（ベクトルの長さ）が最小（誤差最小）になるようなベクトルＸを計算すれば、所望のベクトルＹ（特徴点の三次元位置Ｍと、各フレームデータのカメラ位置と特徴点との間の距離ｄｉ）が求まる。εのノルムの二乗の式は、以下の式（数式１２）になる。
【数１２】
0004985516.tif 000013
【０１１２】
上記式（数式１２）のベクトルＹを変数、他を全て定数とみなしたとき、上記式（数式１２）はベクトルＹに関する二次関数なので、左辺が最小になるＹは、上記式（数式１２）のベクトルＹに関する偏微分式である以下の式（数式１３）、すなわち、
【数１３】
0004985516.tif 000014
【０１１３】
上記式（数式１３）の偏微分値が０となるＹである。そのベクトルＹは、以下の式（数式１４）である。
【数１４】
0004985516.tif 000015
【０１１４】
上記式（数式１４）で求めたベクトル、すなわち、
【数１５】
0004985516.tif 000016
【０１１５】
上記式によって定義されるベクトル［Ｙ］から、特徴点位置［Ｍ］、すなわち、
【数１６】
0004985516.tif 000017
上記特徴点位置［Ｍ］を抽出し、結果とする。
【０１１６】
次のステップＳ３０６では第２の特徴点トラッキング処理、すなわち、「特徴点トラッキング＃２（特徴点位置既知）」を実行する。先に説明した一般的なテンプレートウィンドウマッチングによる特徴点のオプティカルフロー検出方法に、特徴点位置情報を用いてよりロバストにトラッキングをする。
【０１１７】
画像フレームの特徴点周辺を切り出し、予め設定したウィンドウサイズのテンプレート、例えば３６０ｘ２４０の画像に対して２１ｘ２１のテンプレート画像を取得する。ここまでは、先のステップＳ３０４の第１のトラッキング処理と同一の処理である。ステップＳ３０６では、未来方向のフレームに対してテンプレートマッチングを行い、対応点を求める。この際の探索中心を、ステップＳ３０５における特徴点三次元位置推定処理で求めた特徴点位置、すなわち、
【数１７】
0004985516.tif 000018
【０１１８】
上記特徴点位置Ｍを用いて計算する。計算は、先に説明した式（数式１）を用いる。この計算により探索中心を決定して、その探索中心に中心を設定したウィンドウ内の検索を行う。
【０１１９】
マッチングの有無の判定指標であるマッチングスコアは、先に説明したステップＳ３０４の「特徴点トラッキング＃１」と同様正規化相関値を用いることができる。もし、マッチングスコアが小さければ（相関値が小さければ）、そのフレームには特徴点がないと判定する。画像フレームデータに対して未来方向全フレームに対して処理を行い、特徴点のトラッキングを実行し、各画像フレームにおける対応特徴点を検出する。この処理によれば、カメラフレームから一旦外れた特徴点も、再度カメラフレームに入ったときに再度追跡することが可能となる。
【０１２０】
ステップＳ３０６の処理によって各画像フレームにおいて検出された対応特徴点情報の三次元位置をステップＳ３０７において算出し、算出した核特徴点の三次元位置情報を各フレームに対応付けて記憶部１５２に追加特徴点情報として記録する。
【０１２１】
ステップＳ３０８において、処理対象フレームにおける全特徴点の処理が完了したか否かを判定し、未処理特徴点がある場合は、ステップＳ３０４からの処理を未処理の特徴点について実行する。ステップＳ３０８において、処理対象フレームにおける全特徴点の処理が完了したと判定した場合は、ステップＳ３０９に進み、画像フレーム全ての処理が完了したか否かを判定し、未処理画像フレームがある場合は、ステップＳ３０１からの処理を未処理の画像フレームについて実行する。ステップＳ３０９において、全画像フレームの処理が完了したと判定した場合は処理を終了する。
【０１２２】
このようにして、図９に示すステップＳ３００の特徴点追加処理が実行され、ステップＳ２０４における初期情報取得処理（ＳＦＭ）、ステップＳ２０７における拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）において抽出されなかった特徴点が記憶部１５２に追加登録されることになる。
【０１２３】
ステップＳ２０９におけるバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）では、ステップＳ２０７におけるＥＫＦ  ＳＬＡＭ処理において抽出済みの特徴点情報に、ステップＳ３００の特徴点追加処理において追加された特徴点情報の双方を用いてバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）が行われることになる。すなわち、先に説明した図７に示すフローより多くの特徴点の３次元位置情報の出力が可能となる。
【０１２４】
より精度の高い３次元マップを生成するためには利用可能な特徴点の数が多いほうが有利であり、本実施例によって追加した特徴点を利用した３次元マップはより精度の高いデータとなる。
【０１２５】
先に図７のフローを参照して説明した特徴点を追加していない状態でバンドル調整を行った場合」と、図９のフローを参照して説明した「特徴点を追加した後でバンドル調整を行った場合」の、それぞれの特徴点のデータ例を図１４に示す。
【０１２６】
図１４は、図１４（ａ）に示すポスターを貼った壁面の撮影画像に基づいて、
（ｂ１）特徴点追加処理なしの場合の特徴点情報とカメラ軌跡、
（ｂ２）特徴点追加処理ありの場合の特徴点情報とカメラ軌跡、
これらのデータを示している。
（ｂ２）に示すように、特徴点の数が増大し、このような多くの特徴点を利用することで、より詳細な３Ｄマップを生成することが可能となる。図１５は、特徴点の追加処理を行って取得した特徴点の３次元位置情報を用いて生成した３Ｄマップの例を示している。
【０１２７】
図１６に本発明の情報処理装置の構成例を示す。情報処理装置１２０は、先に図４を参照して説明したように例えば移動するユーザ１０１の保持するカメラ１０２の撮影画像、例えば動画像を構成する画像を入力し、その入力画像の解析を実行して撮影画像に含まれるオブジェクトについての３次元画像情報１０３を生成する。
【０１２８】
情報処理装置１２０は、図１６に示すように、画像入力部５０１、初期情報生成部（ＳＦＭ）５０２、データ変換部Ａ５０３、特徴点位置情報生成部（ＥＫＦ−ＳＬＡＭ）５０４、データ変換部Ｂ５０５、バンドル調整処理部５０６、記憶部５０７、３Ｄマップ生成部５０８、特徴点抽出部５１１を有する。
【０１２９】
画像入力部５０１は、図４を参照して説明したように例えば移動するユーザ１０１の保持するカメラ１０２の撮影画像を入力して、初期情報取得部５０２、特徴点位置情報取得部５０４に出力する。なお、画像入力部５０１から入力する画像フレームは、直接、あるいは他の処理部を介して記憶部５０７に記憶される。
【０１３０】
画像入力部５０１の入力画像中、予め設定された所定の初期フレームは、初期情報取得部（ＳＦＭ）５０２に出力され、その後は、特徴点位置情報取得部５０４に出力される。
【０１３１】
初期情報生成部（ＳＦＭ）５０２は、図７、図９のフローチャートにおけるステップＳ２０４の処理を実行する。すなわち、複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行する。従来から知られるＳＦＭ処理と同様、フレームマッチングによる特徴点の対応付け処理、バンドル調整処理によって、特徴点３次元位置と、特徴点を含む画像フレームの位置姿勢情報（カメラの位置姿勢情報）を算出する。初期情報生成部（ＳＦＭ）５０２の入力情報と出力情報は以下の通りである。
入力：予め設定したフレーム数の画像データ、
出力：入力画像フレームの位置姿勢と特徴点位置情報
この出力情報は、データ変換部Ａ５０３に出力されるとともに、記憶部５０７に処理画像フレームに対応付けられて格納される。
【０１３２】
データ変換部Ａ５０３は、初期情報生成部（ＳＦＭ）５０２の初期情報取得処理（ＳＦＭ）において得られた入力画像フレームの位置姿勢（カメラ位置姿勢）と特徴点位置情報を入力して、
出力値：ＥＫＦ  ＳＬＡＭにおいて適用する初期フレームの状態（＝状態変数）
を生成する。なお、状態変数は、先に図８（ｂ）を参照して説明したように、カメラの位置、姿勢、速度、各速度、さらに、カメラの撮影画像から検出される複数の特徴点の位置情報Ｐ１〜Ｐｎによって構成される。
データ変換部Ａ５０３の生成した初期フレームの状態情報（＝状態変数）は、特徴点位置情報生成部（ＥＫＦ  ＳＬＡＭ）５０４に入力される。
【０１３３】
特徴点位置情報生成部（ＥＫＦ  ＳＬＡＭ）５０４は、図７、図９のフローチャートにおけるステップＳ２０７の処理を実行する。すなわち、拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）を実行する。
【０１３４】
前述したように拡張カルマンフィルタ（ＥＫＦ）を適用した処理では、例えば先に図８（ｂ）を参照して説明したように、カメラの位置、姿勢、速度、各速度、さらに、カメラの撮影画像から検出される複数の特徴点の位置情報Ｐ１〜Ｐｎによって構成される状態変数を、逐次更新して、各処理画像フレームに対応する状態変数を求める。この拡張カルマンフィルタ（ＥＫＦ）を適用した処理を開始するためには、カメラや特徴点の位置を示す状態変数を初期値として予め保持していることが必要であり、この初期値となるデータを、データ変換部Ａ５０３から受領して処理を開始する。
【０１３５】
特徴点位置情報生成部（ＥＫＦ  ＳＬＡＭ）５０４における入力情報と出力情報は以下の通りである。
入力：特徴点と初期フレームの状態、すなわち、カメラ位置姿勢情報と特徴点位置情報の多次元正規分布データからなる状態変数（図８参照）、
出力：各画像フレームに対応する状態変数と、特徴点トラッキングデータ、
なお、特徴点トラッキングデータは、各画像フレームに対応する状態変数に含まれる特徴点位置情報によって算出できる。
この特徴点位置情報生成部（ＥＫＦ  ＳＬＡＭ）５０４の処理（ＥＫＦ  ＳＬＡＭ）において生成した出力情報［各画像フレームに対応する状態変数と、特徴点トラッキングデータ］は、処理対象画像フレームとともに、記憶部５０７に格納される。
【０１３６】
データ変換部Ｂ５０５は、記憶部５０７に格納された特徴点位置情報生成部（ＥＫＦ  ＳＬＡＭ）５０４の生成データを取り出して、バンドル調整処理部（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）５０６で利用するデータへの変換処理を行う。データ変換部Ｂ５０５の入出力データは以下のとおりである。
入力：各画像フレームに対応する状態変数（多次元正規分布）と、特徴点トラッキングデータ（記憶部５０７の格納データ）
出力：各画像フレームに対応するカメラ位置姿勢と特徴点位置
【０１３７】
データ変換部Ｂ５０５は、記憶部５０７の格納データである各画像フレームに対応する状態変数（多次元正規分布）を用いて、各画像フレームのカメラ位置姿勢情報を求め、特徴点位置は、最新フレームの状態（多次元正規分布）から求める。なお、状態変数は、前述したように各変数の状態の確率を正規分布として示した多次元正規分布データであり、正規分布データの平均に対応する値が、一番確率が高いので、カメラ位置姿勢や特徴点位置は、状態変数の各正規分布データの平均値を採用する。
【０１３８】
データ変換部Ｂ５０５の生成データは、バンドル調整処理部（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）５０６に提供され、バンドル調整処理部（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）５０６は、この入力情報を利用してバンドル調整処理を行う。
バンドル調整処理部（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）５０６の入出力データは以下の通りである。
入力：各画像フレームのカメラ位置姿勢と特徴点位置、および特徴点トラッキングデータ
出力：各画像フレームのカメラ位置姿勢と特徴点位置
【０１３９】
バンドル調整処理は、先に、図３を参照して説明したように異なる位置から撮影した複数の画像に含まれる対応する特徴点の３次元位置を１つの位置に収束させる処理によって、各画像フレームのカメラ位置姿勢と特徴点位置を求める処理である。この処理によって得られたカメラ姿勢位置情報と、特徴点位置情報が記憶部５０７に格納され、さらに３Ｄマップ生成部５０８に提供される。３Ｄマップ生成部５０８は、これらの特徴点情報とカメラ軌跡情報を利用して３Ｄマップの生成を行う。例えば図１５に示すような３Ｄマップが生成される。
【０１４０】
特徴点抽出部５１１は、図９、図１０を参照して説明した特徴点追加処理を実行する場合の構成であり、図１０に示すフローに従った処理を実行して、初期情報生成部（ＳＦＭ）５０２、および特徴点位置情報生成部（ＥＫＦ−ＳＬＡＭ）５０４において抽出されなかった特徴点を検出し、その３次元位置情報と各画像フレーム内の位置情報を算出しては記憶部５０７に追加登録する。
【０１４１】
この処理が実行された場合、バンドル調整処理部（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）５０６は、初期情報生成部（ＳＦＭ）５０２、および特徴点位置情報生成部（ＥＫＦ−ＳＬＡＭ）５０４において抽出された特徴点と、さらに、特徴点抽出部５１１において新たに抽出された特徴点の双方を用いてバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）を実行し、より多くの特徴点の３次元位置情報を出力する。先に図１４を参照して説明した通りである。この処理によって、より精度の高い３次元マップの生成が実現される。
【０１４２】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１４３】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１４４】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１４５】
以上、説明したように、本発明の一実施例の構成によれば、カメラの取得した画像に基づく特徴点の３次元位置取得構成において、カメラ撮影画像の画像フレーム中、複数の先行画像フレームのみを利用した対応特徴点解析による特徴点の３次元位置情報を初期情報として取得する処理と、この初期情報を初期画像フレームに対する状態情報として設定して、後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報を取得する構成としたので、例えばフレームマッチングなどを伴う特徴点抽出処理は、先行画像フレームに対してのみ実行すればよく、効率的な特徴点の３次元位置情報の取得および３次元画像データの生成が実現される。
【図面の簡単な説明】
【０１４６】
【図１】３次元マップ（３Ｄ  ｍａｐ）の生成処理シーケンスの一例について説明するフローチャートを示す図である。
【図２】画像フレームに含まれる特徴点情報とカメラ軌跡情報を取得する処理シーケンスの一例について説明するフローチャートを示す図である。
【図３】バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）の一例について説明する図である。
【図４】本発明の処理の概要について説明する図である。
【図５】本発明の一実施例に従った処理のシーケンスについて説明するフローチャートを示す図である。
【図６】本発明の一実施例に従った処理の具体的なシーケンスについて説明する図である。
【図７】本発明の一実施例に従った処理の詳細シーケンスについて説明するフローチャートを示す図である。
【図８】拡張カルマンフィルタ（ＥＫＦ）を適用した処理において適用する状態変数について説明する図である。
【図９】本発明の一実施例に従った処理の詳細シーケンスについて説明するフローチャートを示す図である。
【図１０】本発明の一実施例に従った特徴点抽出処理の詳細シーケンスについて説明するフローチャートを示す図である。
【図１１】ハリスコーナーディテクター（Ｈａｒｒｉｓ  Ｃｏｒｎｅｒ  Ｄｅｔｅｃｔｏｒ）を用いた特徴点抽出処理について説明する図である。
【図１２】ピンホールカメラモデル、すなわちカメラ座標系によって表現されている位置と、世界座標系におけるオブジェクトの３次元位置との対応関係を示す式の意味について説明する図である。
【図１３】ピンホールカメラモデル、すなわちカメラ座標系によって表現されている位置と、世界座標系におけるオブジェクトの３次元位置との対応関係を示す式の意味について説明する図である。
【図１４】特徴点追加処理を行わない場合と行った場合の処理例について説明する図である。
【図１５】特徴点追加処理を行った場合の処理例について説明する図である。
【図１６】本発明の一実施例に係る情報処理装置の構成例について説明する図である。
【符号の説明】
【０１４７】
１１〜１３  撮影画像
２１〜２３  特徴点
１０１  ユーザ
１０２  カメラ
１０３  ３次元画像情報
１２０  情報処理装置
１３１  疎な３次元マップ
１３２  密な３次元マップ
１７０  取得イメージ
１８０〜１８２  ハリスコーナーイメージ
１９０〜１９２  ラプラシアンイメージ
５０１  画像入力部
５０２  初期情報生成部（ＳＦＭ）
５０３  データ変換部Ａ
５０４  特徴点位置情報生成部（ＥＫＦ−ＳＬＡＭ）
５０５  データ変換部Ｂ
５０６  バンドル調整処理部
５０７  記憶部
５０８  ３Ｄマップ生成部
５１１  特徴点抽出部
【図１】
0004985516.tif 000019
【図２】
0004985516.tif 000020
【図３】
0004985516.tif 000021
【図５】
0004985516.tif 000022
【図７】
0004985516.tif 000023
【図８】
0004985516.tif 000024
【図９】
0004985516.tif 000025
【図１０】
0004985516.tif 000026
【図１２】
0004985516.tif 000027
【図１３】
0004985516.tif 000028
【図１６】
0004985516.tif 000029
【図４】
0004985516.tif 000030
【図６】
0004985516.tif 000031
【図１１】
0004985516.tif 000032
【図１４】
0004985516.tif 000033
【図１５】
0004985516.tif 000034