(57)【特許請求の範囲】
【請求項１】
画像に含まれる画素の３次元位置を算出する情報処理装置であり、
入力画像から複数画像を選択画像として選択する画像選択部と、
前記選択画像が３次元データの生成に適切な画像であるか否かを判定するための評価値を算出する評価値算出部と、
前記評価値算出部の算出した評価値に基づいて、前記選択画像が３次元データの生成に適切な画像であるか否かを判定する評価値判定部と、
前記選択画像の解析により、画像に含まれる特徴点の３次元位置およびカメラの位置姿勢情報を含む環境認識結果を生成する環境認識部と、
前記環境認識結果を検証するための参照画像を選択する参照画像選択部であり、参照画像候補と、前記選択画像に共通に含まれる対応特徴点の１画像座標系内での距離が規定閾値以上であるとの条件を満足する画像を参照画像として選択する参照画像選択部を有し、
前記評価値算出部は、
前記環境認識結果に含まれる情報と、前記参照画像選択部において選択された参照画像を適用して、
（ａ１）前記選択画像に含まれる３次元位置の推定された特徴点数
（ｂ１）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、
（ｃ１）参照画像のカメラモデルフィッティング誤差
上記（ａ１）〜（ｃ１）の少なくともいずれかを評価値として算出し、
前記評価値判定部は、
上記（ａ１）〜（ｃ１）の少なくともいずれかの値を予め設定した閾値と比較して、前記選択画像が３次元データの生成に適切な画像であるか否かを判定する構成であり、
（ａ２）前記選択画像に含まれる３次元位置の推定された特徴点数が規定閾値（Ｔｈａ）以上であること、
（ｂ２）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角が規定閾値（Ｔｈｂ）以上であること、
（ｃ２）参照画像のカメラモデルフィッティング誤差が規定閾値（Ｔｈｃ）以下であること、
上記（ａ２）〜（ｃ２）の少なくともいずれかの条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定することを特徴とする情報処理装置。
【請求項２】
前記評価値算出部は、
前記（ａ１）〜（ｃ１）のすべてを評価値として算出し、
前記評価値判定部は、
前記（ａ２）〜（ｃ２）のすべての条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記評価値算出部は、
前記評価値中、光線同士の交差角については、複数の対応特徴点および画像フレームを適用して算出した複数の交差角の中央値を算出する構成であり、
前記評価値判定部は、
前記中央値が規定閾値（Ｔｈｂ）以上であることを満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、
前記選択画像の解析により、画像に含まれる特徴点軌跡を求める特徴点追跡部を有し、
前記評価値算出部は、前記特徴点軌跡を適用して前記評価値を算出することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記入力画像選択部は、
選択フレーム間隔に対応する変数［Ｔ］と、最初の選択フレームに対応する変数［Ｆ］を設定および更新して、異なる画像の選択処理を行う構成であり、
前記評価値判定部において、前記選択画像が３次元データの生成に適切な画像でないと判定された場合に、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行することを特徴とする請求項１または２に記載の情報処理装置。
【請求項６】
前記入力画像選択部は、
前記評価値判定部における選択画像の評価態様に応じて、予め規定した変数更新アルゴリズムに従って、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置は、さらに、
前記評価値判定部が３次元データの生成に適切な画像であると判定した選択画像を適用したＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理と、該ＳＦＭ処理による生成情報を初期情報として利用した拡張カルマンフィルタ（ＥＫＦ）を適用した処理により３次元データ生成を実行する構成を有することを特徴とする請求項１〜６いずれかに記載の情報処理装置。
【請求項８】
情報処理装置において、画像に含まれる画素の３次元位置を算出するために適用する画像の選択処理を実行する画像処理方法であり、
画像選択部が、入力画像から複数画像を選択画像として選択する画像選択ステップと、
評価値算出部が、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するための評価値を算出する評価値算出ステップと、
評価値判定部が、前記評価値算出ステップにおいて算出した評価値に基づいて、前記選択画像が３次元データの生成に適切な画像であるか否かを判定する評価値判定ステップと、
環境認識部が、前記選択画像の解析により、画像に含まれる特徴点の３次元位置およびカメラの位置姿勢情報を含む環境認識結果を生成する環境認識ステップと、
参照画像選択部が、前記環境認識結果を検証するための参照画像を選択する参照画像選択部であり、参照画像候補と、前記選択画像に共通に含まれる対応特徴点の１画像座標系内での距離が規定閾値以上であるとの条件を満足する画像を参照画像として選択する参照画像選択ステップを有し、
前記評価値算出ステップは、
前記環境認識結果に含まれる情報と、前記参照画像選択部において選択された参照画像を適用して、
前記評価値算出ステップは、
（ａ１）前記選択画像に含まれる３次元位置の推定された特徴点数
（ｂ１）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、
（ｃ１）参照画像のカメラモデルフィッティング誤差
上記（ａ１）〜（ｃ１）の少なくともいずれかを評価値として算出するステップであり、
前記評価値判定ステップは、
上記（ａ１）〜（ｃ１）の少なくともいずれかの値を予め設定した閾値と比較して、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するステップであり、
（ａ２）前記選択画像に含まれる３次元位置の推定された特徴点数が規定閾値（Ｔｈａ）以上であること、
（ｂ２）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角が規定閾値（Ｔｈｂ）以上であること、
（ｃ２）参照画像のカメラモデルフィッティング誤差が規定閾値（Ｔｈｃ）以下であること、
上記（ａ２）〜（ｃ２）の少なくともいずれかの条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定するステップであることを特徴とする画像処理方法。
【請求項９】
前記評価値算出ステップは、
前記（ａ１）〜（ｃ１）のすべてを評価値として算出するステップであり、
前記評価値判定ステップは、
前記（ａ２）〜（ｃ２）のすべての条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定するステップであることを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記評価値算出ステップは、
前記評価値中、光線同士の交差角については、複数の対応特徴点および画像フレームを適用して算出した複数の交差角の中央値を算出するステップであり、
前記評価値判定ステップは、
前記中央値が規定閾値（Ｔｈｂ）以上であることを満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定するステップであることを特徴とする請求項８または９に記載の画像処理方法。
【請求項１１】
前記画像処理方法は、さらに、
特徴点追跡部が、前記選択画像の解析により、画像に含まれる特徴点軌跡を求める特徴点追跡ステップを有し、
前記評価値算出ステップは、前記特徴点軌跡を適用して前記評価値を算出するステップであることを特徴とする請求項８または９に記載の画像処理方法。
【請求項１２】
前記入力画像選択ステップは、
選択フレーム間隔に対応する変数［Ｔ］と、最初の選択フレームに対応する変数［Ｆ］を設定および更新して、異なる画像の選択処理を行うステップであり、
前記評価値判定ステップにおいて、前記選択画像が３次元データの生成に適切な画像でないと判定された場合に、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行するステップであることを特徴とする請求項８または９に記載の画像処理方法。
【請求項１３】
前記入力画像選択ステップは、
前記評価値判定ステップにおける選択画像の評価態様に応じて、予め規定した変数更新アルゴリズムに従って、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行するステップであることを特徴とする請求項１２に記載の画像処理方法。
【請求項１４】
前記画像処理方法は、さらに、
３次元データ生成部が、前記評価値判定ステップにおいて３次元データの生成に適切な画像であると判定した選択画像を適用したＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理と、該ＳＦＭ処理による生成情報を初期情報として利用した拡張カルマンフィルタ（ＥＫＦ）を適用した処理により３次元データ生成を実行するステップを有することを特徴とする請求項８〜１３いずれかに記載の画像処理方法。
【請求項１５】
情報処理装置において、画像に含まれる画素の３次元位置を算出するために適用する画像の選択処理を実行させるコンピュータ・プログラムであり、
画像選択部に、入力画像から複数画像を選択画像として選択させる画像選択ステップと、
評価値算出部に、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するための評価値を算出させる評価値算出ステップと、
評価値判定部に、前記評価値算出ステップにおいて算出した評価値に基づいて、前記選択画像が３次元データの生成に適切な画像であるか否かを判定させる評価値判定ステップと、
環境認識部が、前記選択画像の解析により、画像に含まれる特徴点の３次元位置およびカメラの位置姿勢情報を含む環境認識結果を生成させる環境認識ステップと、
参照画像選択部が、前記環境認識結果を検証するための参照画像を選択する参照画像選択部であり、参照画像候補と、前記選択画像に共通に含まれる対応特徴点の１画像座標系内での距離が規定閾値以上であるとの条件を満足する画像を参照画像として選択させる参照画像選択ステップを有し、
前記評価値算出ステップは、
前記環境認識結果に含まれる情報と、前記参照画像選択部において選択された参照画像を適用して、
（ａ１）前記選択画像に含まれる３次元位置の推定された特徴点数
（ｂ１）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、
（ｃ１）参照画像のカメラモデルフィッティング誤差
上記（ａ１）〜（ｃ１）の少なくともいずれかを評価値として算出させるステップであり、
前記評価値判定ステップは、
上記（ａ１）〜（ｃ１）の少なくともいずれかの値を予め設定した閾値と比較して、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するステップであり、
（ａ２）前記選択画像に含まれる３次元位置の推定された特徴点数が規定閾値（Ｔｈａ）以上であること、
（ｂ２）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角が規定閾値（Ｔｈｂ）以上であること、
（ｃ２）参照画像のカメラモデルフィッティング誤差が規定閾値（Ｔｈｃ）以下であること、
上記（ａ２）〜（ｃ２）の少なくともいずれかの条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定させるステップであることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、カメラ撮影画像を利用した３次元マップ（３Ｄ  ｍａｐ）生成において、最適な画像フレームの選択を行うことで精度の高い特徴点位置の算出や高精度な３次元マップ生成を可能とした情報処理装置、および画像処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
カメラの撮影画像を解析して撮影画像に含まれるオブジェクトの３次元位置を求める処理が様々な分野で利用されている。例えばカメラを備えたロボットなどのエージェント(移動体)が、カメラの撮影画像を解析して移動環境を観測し、観測状況に応じてエージェント周囲の環境を把握しながら移動を行う処理や、撮影画像に基づいて周囲環境の地図（環境地図）を作成する環境マップ構築処理に利用される。非特許文献１には、特徴点位置の追跡を全フレームで行い、全フレームのデータが得られた後、バッチ処理により特徴点の位置とカメラ位置を算出する方法を開示している。
【０００３】
３次元マップ（３Ｄ  ｍａｐ）の生成処理シーケンスの一例について図１を参照して説明する。まず、ステップＳ１１においてカメラによって画像を撮影する。例えばカメラを保持したユーザやロボットなどが移動しながら周りの画像を連続的に撮影する。
【０００４】
ステップＳ１２において取得画像の解析によって、画像に含まれる特徴点の位置情報などが含まれる疎な３次元情報を構築する。この処理においては、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理が適用される。ＳＬＡＭは、カメラから入力する画像内の特徴点の位置と、カメラの位置姿勢を併せて検出する処理である。ＳＦＭは、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析する処理などである。
【０００５】
さらに、ステップＳ１３では、ステップＳ１２において求めたカメラの軌跡情報や画像内の特徴点情報などを利用して詳細な３次元情報である密な３次元情報である３次元マップを生成する。
【０００６】
ステップＳ１２のＳＦＭやＳＬＡＭ処理において画像内の特徴点の解析を正確に実行することが、最終的な３次元情報の精度を高めることになる。このステップＳ１２では、画像フレームに含まれる特徴点情報とカメラ軌跡情報を取得する処理が行われる。この詳細処理例を図２に示す。
【０００７】
まず、ステップＳ２１においてカメラから複数の撮影画像を入力し、フレーム間の一致する特徴点を利用して、カメラの位置を算出するフレームマッチング処理を行う。入力画像は、例えば移動するカメラが撮影した動画像の複数の画像フレーム、すなわち異なる位置から撮影した複数の画像であり、同一のオブジェクトが複数フレームに撮影されている。ステップＳ２１では、複数の画像フレームから対応する特徴点を検出し、これらの情報を利用してカメラの位置を計算する。
【０００８】
ステップＳ２２では、フレームスティッチ処理（Ｆｒａｍｅ  Ｓｔｉｔｃｈ）を実行する。この処理は、ステップＳ２１で検出した情報を利用して各画像の特徴点（Ｌａｎｄｍａｒｋ）の３次元位置を推定して、複数の画像データ内の複数の特徴点位置に基づいて画像フレームを接合して各特徴点の３次元位置を反映したデータを生成する処理である。
【０００９】
ステップＳ２３では、バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）を実行する。このバンドル調整処理は、異なる位置から撮影した複数の画像に含まれる対応する特徴点の３次元位置を１つの位置に収束させる処理である。各撮影画像のカメラ位置情報と、各カメラ位置において撮影された画像に含まれる対応する特徴点の情報を利用して、特徴点の最も確からしい３次元位置を算出する処理である。この処理のためには、基本的には、２つ以上の異なる位置から撮影した画像フレームが必要となる。
【００１０】
例えば、図３に示すように、３つの異なる位置からの撮影画像１１〜１３を利用し、その撮影画像中から検出した特徴点２１〜２３を利用して、特徴点の３次元位置を求める。複数の画像に含まれる特徴点中、対応する特徴点の位置は図３に示す特徴点２１のように、各画像の撮影ポイントから特徴点２１を結ぶ線（Ｂｕｎｄｌｅ）が１つの特徴点２１位置において交わるはずである。
【００１１】
しかし、カメラの位置や特徴点の画像内の位置情報などは必ずしも正確に算出されず様々な要因による誤差が含まれる。従って、このような誤差を取り除く必要がある。具体的には１つの対応する特徴点の３次元位置とカメラ位置とを結ぶ線が、その１つの特徴点において交わるように補正する。すなわち算出済みのカメラ位置や特徴点位置を修正する処理が必要となる。この処理がバンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）として実行され、この調整処理によって修正された特徴点位置情報やカメラ位置情報を利用してより精度の高い３次元情報を生成することが可能となる。
【００１２】
このような処理において、正確な３次元情報を生成するためには、
複数の撮影画像から十分な数の対応特徴点を取得すること、
撮影方向の異なる複数の画像に対応特徴点が含まれていること、
対応特徴点の情報から誤差の少ない正確な特徴点位置情報が算出できること、
など、解析対象とする画像フレームの選択が重要な要素となる。３次元画像解析の専門家であれば、このような条件を満足する画像を直感的に判断して適切な画像を選択することができるが、通常のユーザは、自分の撮影した多数の画像フレームから適切な画像を選択することは難しい。
【非特許文献１】"Ｓｈａｐｅ  ａｎｄ  ｍｏｔｉｏｎ  ｆｒｏｍ  ｉｍａｇｅ  ｓｔｒｅａｍｓ  ｕｎｄｅｒ  ｏｒｔｈｏｇｒａｐｈｙ：  ａ  ｆａｃｔｏｒｉｚａｔｉｏｎ  ｍｅｔｈｏｄ"，Ｃ．Ｔｏｍａｓｉ  ａｎｄ  Ｔ．Ｋａｎａｄｅ，Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，  Ｖｏｌｕｍｅ  ９，  Ｎｕｍｂｅｒ  ２，  ｐｐ．１３７−１５４，（１９９２）．
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、例えば上述のような問題点に鑑みてなされたものであり、例えばビデオカメラで撮影された動画像を構成する多数の画像フレームから３次元情報を生成するために適切な画像フレームを予め設定したアルゴリズムに従って選択し、選択した画像を利用して特徴点位置の算出など処理を行うことで精度の高い３次元情報の生成を行う情報処理装置、および画像処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００１４】
また、本発明は、正確な３次元情報の生成を実現するための画像選択に適用可能な画像の評価処理を行う情報処理装置、および画像処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の第１の側面は、
画像に含まれる画素の３次元位置を算出する情報処理装置であり、
入力画像から複数画像を選択画像として選択する画像選択部と、
前記選択画像が３次元データの生成に適切な画像であるか否かを判定するための評価値を算出する評価値算出部と、
前記評価値算出部の算出した評価値に基づいて、前記選択画像が３次元データの生成に適切な画像であるか否かを判定する評価値判定部を有し、
前記評価値算出部は、
（ａ１）前記選択画像に含まれる３次元位置の推定された特徴点数
（ｂ１）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、
（ｃ１）参照画像のカメラモデルフィッティング誤差
上記（ａ１）〜（ｃ１）の少なくともいずれかを評価値として算出し、
前記評価値判定部は、
上記（ａ１）〜（ｃ１）の少なくともいずれかの値を予め設定した閾値と比較して、前記選択画像が３次元データの生成に適切な画像であるか否かを判定する構成であり、
（ａ２）前記選択画像に含まれる３次元位置の推定された特徴点数が規定閾値（Ｔｈａ）以上であること、
（ｂ２）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角が規定閾値（Ｔｈｂ）以上であること、
（ｃ２）参照画像のカメラモデルフィッティング誤差が規定閾値（Ｔｈｃ）以下であること、
上記（ａ２）〜（ｃ２）の少なくともいずれかの条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定することを特徴とする情報処理装置にある。
【００１６】
さらに、本発明の情報処理装置の一実施態様において、前記評価値算出部は、前記（ａ１）〜（ｃ１）のすべてを評価値として算出し、前記評価値判定部は、前記（ａ２）〜（ｃ２）のすべての条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定することを特徴とする。
【００１７】
さらに、本発明の情報処理装置の一実施態様において、前記評価値算出部は、前記評価値中、光線同士の交差角については、複数の対応特徴点および画像フレームを適用して算出した複数の交差角の中央値を算出する構成であり、前記評価値判定部は、前記中央値が規定閾値（Ｔｈｂ）以上であることを満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定することを特徴とする。
【００１８】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、前記選択画像の解析により、画像に含まれる特徴点の３次元位置およびカメラの位置姿勢情報を含む環境認識結果を生成する環境認識部を有し、前記評価値算出部は、前記環境認識結果に含まれる情報を適用して前記評価値を算出することを特徴とする。
【００１９】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、前記環境認識結果を検証するための参照画像を選択する参照画像選択部を有し、前記参照画像選択部は、参照画像候補と、前記選択画像に共通に含まれる対応特徴点の１画像座標系内での距離が規定閾値以上であるとの条件を満足する画像を参照画像として選択する構成であり、前記評価値算出部は、前記参照画像選択部において選択された参照画像を適用して前記評価値を算出することを特徴とする。
【００２０】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、前記選択画像の解析により、画像に含まれる特徴点軌跡を求める特徴点追跡部を有し、前記評価値算出部は、前記特徴点軌跡を適用して前記評価値を算出することを特徴とする。
【００２１】
さらに、本発明の情報処理装置の一実施態様において、前記入力画像選択部は、選択フレーム間隔に対応する変数［Ｔ］と、最初の選択フレームに対応する変数［Ｆ］を設定および更新して、異なる画像の選択処理を行う構成であり、前記評価値判定部において、前記選択画像が３次元データの生成に適切な画像でないと判定された場合に、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行することを特徴とする。
【００２２】
さらに、本発明の情報処理装置の一実施態様において、前記入力画像選択部は、前記評価値判定部における選択画像の評価態様に応じて、予め規定した変数更新アルゴリズムに従って、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行することを特徴とする。
【００２３】
さらに、本発明の情報処理装置の一実施態様において、前記情報処理装置は、さらに、前記評価値判定部が３次元データの生成に適切な画像であると判定した選択画像を適用したＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理と、該ＳＦＭ処理による生成情報を初期情報として利用した拡張カルマンフィルタ（ＥＫＦ）を適用した処理により３次元データ生成を実行する構成を有することを特徴とする。
【００２４】
さらに、本発明の第２の側面は、
情報処理装置において、画像に含まれる画素の３次元位置を算出するために適用する画像の選択処理を実行する画像処理方法であり、
画像選択部が、入力画像から複数画像を選択画像として選択する画像選択ステップと、
評価値算出部が、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するための評価値を算出する評価値算出ステップと、
評価値判定部が、前記評価値算出ステップにおいて算出した評価値に基づいて、前記選択画像が３次元データの生成に適切な画像であるか否かを判定する評価値判定ステップを有し、
前記評価値算出ステップは、
（ａ１）前記選択画像に含まれる３次元位置の推定された特徴点数
（ｂ１）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、
（ｃ１）参照画像のカメラモデルフィッティング誤差
上記（ａ１）〜（ｃ１）の少なくともいずれかを評価値として算出するステップであり、
前記評価値判定ステップは、
上記（ａ１）〜（ｃ１）の少なくともいずれかの値を予め設定した閾値と比較して、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するステップであり、
（ａ２）前記選択画像に含まれる３次元位置の推定された特徴点数が規定閾値（Ｔｈａ）以上であること、
（ｂ２）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角が規定閾値（Ｔｈｂ）以上であること、
（ｃ２）参照画像のカメラモデルフィッティング誤差が規定閾値（Ｔｈｃ）以下であること、
上記（ａ２）〜（ｃ２）の少なくともいずれかの条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定するステップであることを特徴とする画像処理方法にある。
【００２５】
さらに、本発明の画像処理方法の一実施態様において、前記評価値算出ステップは、前記（ａ１）〜（ｃ１）のすべてを評価値として算出するステップであり、前記評価値判定ステップは、前記（ａ２）〜（ｃ２）のすべての条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定するステップであることを特徴とする。
【００２６】
さらに、本発明の画像処理方法の一実施態様において、前記評価値算出ステップは、前記評価値中、光線同士の交差角については、複数の対応特徴点および画像フレームを適用して算出した複数の交差角の中央値を算出するステップであり、前記評価値判定ステップは、前記中央値が規定閾値（Ｔｈｂ）以上であることを満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定するステップであることを特徴とする。
【００２７】
さらに、本発明の画像処理方法の一実施態様において、前記画像処理方法は、さらに、環境認識部が、前記選択画像の解析により、画像に含まれる特徴点の３次元位置およびカメラの位置姿勢情報を含む環境認識結果を生成する環境認識ステップを有し、前記評価値算出ステップは、前記環境認識結果に含まれる情報を適用して前記評価値を算出するステップであることを特徴とする。
【００２８】
さらに、本発明の画像処理方法の一実施態様において、前記画像処理方法は、さらに、参照画像選択部が、前記環境認識結果を検証するための参照画像を選択する参照画像選択ステップを有し、前記参照画像選択ステップは、参照画像候補と、前記選択画像に共通に含まれる対応特徴点の１画像座標系内での距離が規定閾値以上であるとの条件を満足する画像を参照画像として選択するステップであり、前記評価値算出ステップは、前記参照画像選択ステップにおいて選択された参照画像を適用して前記評価値を算出するステップであることを特徴とする。
【００２９】
さらに、本発明の画像処理方法の一実施態様において、前記画像処理方法は、さらに、特徴点追跡部が、前記選択画像の解析により、画像に含まれる特徴点軌跡を求める特徴点追跡ステップを有し、前記評価値算出ステップは、前記特徴点軌跡を適用して前記評価値を算出するステップであることを特徴とする。
【００３０】
さらに、本発明の画像処理方法の一実施態様において、前記入力画像選択ステップは、選択フレーム間隔に対応する変数［Ｔ］と、最初の選択フレームに対応する変数［Ｆ］を設定および更新して、異なる画像の選択処理を行うステップであり、前記評価値判定ステップにおいて、前記選択画像が３次元データの生成に適切な画像でないと判定された場合に、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行するステップであることを特徴とする。
【００３１】
さらに、本発明の画像処理方法の一実施態様において、前記入力画像選択ステップは、前記評価値判定ステップにおける選択画像の評価態様に応じて、予め規定した変数更新アルゴリズムに従って、前記変数［Ｔ］または［Ｆ］の少なくともいずれかの変数の更新を実行して新たな画像選択を実行するステップであることを特徴とする。
【００３２】
さらに、本発明の画像処理方法の一実施態様において、前記画像処理方法は、さらに、３次元データ生成部が、前記評価値判定ステップにおいて３次元データの生成に適切な画像であると判定した選択画像を適用したＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理と、該ＳＦＭ処理による生成情報を初期情報として利用した拡張カルマンフィルタ（ＥＫＦ）を適用した処理により３次元データ生成を実行するステップを有することを特徴とする。
【００３３】
さらに、本発明の第３の側面は、
情報処理装置において、画像に含まれる画素の３次元位置を算出するために適用する画像の選択処理を実行させるコンピュータ・プログラムであり、
画像選択部に、入力画像から複数画像を選択画像として選択させる画像選択ステップと、
評価値算出部に、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するための評価値を算出させる評価値算出ステップと、
評価値判定部に、前記評価値算出ステップにおいて算出した評価値に基づいて、前記選択画像が３次元データの生成に適切な画像であるか否かを判定させる評価値判定ステップを有し、
前記評価値算出ステップは、
（ａ１）前記選択画像に含まれる３次元位置の推定された特徴点数
（ｂ１）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、
（ｃ１）参照画像のカメラモデルフィッティング誤差
上記（ａ１）〜（ｃ１）の少なくともいずれかを評価値として算出させるステップであり、
前記評価値判定ステップは、
上記（ａ１）〜（ｃ１）の少なくともいずれかの値を予め設定した閾値と比較して、前記選択画像が３次元データの生成に適切な画像であるか否かを判定するステップであり、
（ａ２）前記選択画像に含まれる３次元位置の推定された特徴点数が規定閾値（Ｔｈａ）以上であること、
（ｂ２）前記選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角が規定閾値（Ｔｈｂ）以上であること、
（ｃ２）参照画像のカメラモデルフィッティング誤差が規定閾値（Ｔｈｃ）以下であること、
上記（ａ２）〜（ｃ２）の少なくともいずれかの条件を満足する場合に、前記選択画像が３次元データの生成に適切な画像であると判定させるステップであることを特徴とするコンピュータ・プログラムにある。
【００３４】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３５】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３６】
本発明の一実施例の構成によれば、入力画像から選択した選択画像が３次元データの生成に適切な画像であるか否かを判定するために、（ａ）前記選択画像に含まれる３次元位置の推定された特徴点数、（ｂ）選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、（ｃ）参照画像のカメラモデルフィッティング誤差、これら（ａ）〜（ｃ）の少なくともいずれかを評価値として算出し、これらの評価値が規定条件を満足する場合に、選択画像が３次元データの生成に適切な画像であると判定してＳＦＭやＥＫＦ  ＳＬＡＭなどの３次元データ生成処理を実行する構成としたので、精度の高い３次元データの生成を実現することが可能となる。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照しながら本発明の実施形態に係る情報処理装置、および画像処理方法、並びにコンピュータ・プログラムの詳細について説明する。
【００３８】
本発明の概要について、図４を参照して説明する。本発明の情報処理装置１２０は、例えば移動するユーザ１０１の保持するカメラ１０２の撮影画像、例えば動画像を構成する画像を入力し、その入力画像の解析を実行して撮影画像に含まれる様々なオブジェクトからなる３次元画像情報１０３を生成する。
【００３９】
情報処理装置１２０は、先に図１を参照して説明した処理と同様、取得画像の解析によって、画像に含まれる特徴点の位置情報などが含まれる疎な３次元マップ１３１を、ＳＬＡＭ（ｓｉｍｕｌｔａｎｅｏｕｓ  ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  ｍａｐｐｉｎｇ）やＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）などの処理を適用して生成し、さらに、カメラの軌跡情報や画像内の特徴点情報などを利用して詳細な３次元情報である密な３次元マップ１３２を生成する。
【００４０】
先に説明したように、ＳＬＡＭは、カメラから入力する画像内の特徴点の位置と、カメラの位置姿勢を併せて検出する処理である。ＳＦＭは、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析する処理などである。
【００４１】
疎な３次元マップ１３１は特徴点の３次元位置情報を持つ。この情報の生成処理シーケンスの従来例については、図２のフローチャートを参照して説明したが、本発明の情報処理装置１２０においては、図２に示すフローと異なった処理により特徴点の３次元位置の取得を行う。
【００４２】
本発明の一実施例の特徴点の３次元位置およびカメラの位置姿勢情報の取得シーケンスについて、図５に示すフローチャートを参照して説明する。
【００４３】
特徴点の３次元位置情報およびカメラの位置姿勢情報の取得処理は、以下の処理シーケンスで実行する。
ステップＳ１０１：初期情報取得処理（ＳＦＭ）
ステップＳ１０２：拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）
ステップＳ１０３：バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）
【００４４】
本発明の一実施例の特徴点の３次元位置情報およびカメラの位置姿勢情報の取得処理の基本的流れは、このように、
「初期情報取得処理（ＳＦＭ）」
→「拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）」
→「バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）」
このような処理シーケンスである。
【００４５】
ステップＳ１０１の初期情報取得処理（ＳＦＭ）は、例えば複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理によって行われるが、この処理は、例えばカメラから入力する最初の数フレームの入力画像のみを適用して実行する。この処理によって得られた情報をステップＳ１０２において実行する拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）のイニシャライズ情報として利用する。
【００４６】
ＥＫＦ  ＳＬＡＭに適用するイニシャライズ情報が得られた後は、その後の入力画像に対しては、ＳＦＭを実行することなく、ＥＫＦ  ＳＬＡＭを実行して、特徴点位置情報と各画像を撮影したカメラの位置姿勢情報を取得する。
【００４７】
具体的な処理例について図６を参照して説明する。図６（ａ）に示すカメラによって取得される画像フレームに含まれる被写体の特徴点の位置情報とカメラの軌跡を求めるとする。なお、図６（ａ）には、カメラによって取得される画像フレームを一定間隔で示している。
【００４８】
本発明の情報処理装置は、特徴点の３次元位置情報の解析対象とする画像フレームのすべてではなく、最初の数フレーム（図６に示すフレームＴ１までの入力フレーム）から後述する画像選択処理アルゴリズムによって選択した画像フレームを、図５に示すステップＳ１０１の初期情報取得処理（ＳＦＭ）の処理対象フレームとする。この複数の選択画像フレームを対象とした初期情報取得処理（ＳＦＭ）によって、３次元マップとカメラフレームの軌跡情報が、次のステップＳ１０２において実行する「ＥＫＦ  ＳＬＡＭ」の初期化情報（Ｉｎｉｔｉａｌｉｚｅ  Ｄａｔａ）として利用される。
【００４９】
フレームＴ１までの複数の先行する選択画像フレームによって得られた３次元マップとカメラフレームの軌跡情報が初期情報となり、この初期情報を用いて「ＥＫＦ  ＳＬＡＭ」の初期化を行い、「ＥＫＦ  ＳＬＡＭ」の処理を行う。すなわち、先行画像フレームから取得した特徴点位置情報を初期画像フレームに対する状態情報として設定し、後続画像フレームに対する拡張カルマンフィルタ（ＥＫＦ）を適用した処理により、後続フレーム中の特徴点の３次元位置情報を取得する。
【００５０】
ステップＳ１０１の初期情報取得処理（ＳＦＭ）は、前述したように複数の異なる位置から撮影した画像を利用して画像内に含まれる特徴点（Ｌａｎｄｍａｒｋ）の対応を解析するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理によって行われ、この処理結果が、ステップＳ１０２において実行する「ＥＫＦ  ＳＬＡＭ」の初期化情報（Ｉｎｉｔｉａｌｉｚｅ  Ｄａｔａ）として利用されることになる。従って、ＳＦＭ処理の精度が、最終的に生成する３次元データの精度に大きく影響することになる。
【００５１】
ＳＦＭにおいては、例えば、
複数の撮影画像から十分な数の対応特徴点を取得すること、
撮影方向の異なる複数の画像に対応特徴点が含まれていること、
対応特徴点の情報から誤差の少ない正確な特徴点位置情報が算出できること、
など、解析対象とする画像フレームの選択が重要な要素となる。３次元画像解析の専門家であれば、このような条件を満足する画像を直感的に判断して適切な画像を選択することができるが、通常のユーザは、自分の撮影した多数の画像フレームから適切な画像を選択することは難しい。
【００５２】
本発明の情報処理装置では、このＳＦＭにおける適切な画像選択を自動的に実行して、かつＳＦＭの処理結果の評価を実行して、「ＥＫＦ  ＳＬＡＭ」の初期化情報として適切な情報を生成してＥＫＦ  ＳＬＡＭを実行することで精度の高い３次元データを生成することを可能としている。図７以下を参照して、この画像選択処理および評価処理の詳細について説明する。
【００５３】
図７は、本発明の情報処理装置の構成要素の一部、すなわち、ＳＦＭなど３次元情報の生成に適用するために最適な画像フレームの選択処理、画像選択のための画像評価処理を行う構成を示している。図７に示すように、情報処理装置は、カメラ３１２の撮影した映像データ３１３を入力する入力画像選択部３０１、環境認識部３０２、参照画像選択部３０４、さらに、特徴点追跡部３０３、評価値算出部３０５、評価値判定部３０６を有する。
【００５４】
なお、図７に示す処理を実行する本発明の構成においては、以下の制約がある。
・映像データ（画像フレーム）３１３を撮影するカメラ３１２はピンホールカメラモデルに近似可能
・カメラ３１２の内部パラメータは既知
・映像の撮影中においては、カメラ内部パラメータの変化はない
・静止環境３１１をカメラ３１２で記録した映像データ３１３を予め用意してある（撮影処理時にリアルタイム処理を行うのではなく、撮影済みの映像データ３１３に対するオフライン処理を行う）
・映像データ３１３のフレーム間毎の時間的間隔は同一である。
・映像データ３１３は時間的に連続したデータである（急に別のシーンに移ることはない）
また、本例では計算で扱うことの出来る映像フレーム数は、メモリ・計算量の制約上、Ｎ（例えばＮ＝５、ＮはＮ＞１を満たせばよい）とする。
【００５５】
なお、静止環境３１１とは、カメラの撮影する画像中に移動する物体が含まれないことを意味しているが、移動物体が含まれていてもその他の静止オブジェクトについての３次元位置の算出は可能であり、カメラ３１２によって撮影される対象すべてが静止していることが必須ではない。３次元位置の算出対象が静止していればよい。カメラ３１２は移動して映像を撮影し様々な角度からの画像を撮影する。
【００５６】
また、以下に説明する実施例では、カメラ撮影データを記憶部に蓄積し、記憶部に蓄積した画像を処理するオフライン処理を前提としているが、処理速度の速いプロセッサなど、所定の処理能力を備えた装置であれば、カメラ撮影に並行して画像選択および３次元データの生成を行うオンライン処理構成も可能である。
【００５７】
以下、図７以下を参照して、精度の高い３次元データの生成を可能とする画像選択処理の詳細について説明する。図７に示す構成によって、ＳＦＭなど３次元データの生成に適用する画像選択処理や画像評価処理が実行される。この処理シーケンスについて図８に示すフローチャートを参照して説明する。まずステップＳ３０１において、入力画像選択部３０１が映像データ３１３から入力フレームを選択する。選択する方法の一例として、本例では変数［Ｔ］と変数［Ｆ］を用いる。
変数［Ｔ］と変数［Ｆ］は、以下の変数である。
Ｔ：選択フレーム間隔に対応する変数、
Ｆ：最初の選択フレームに対応する変数、
【００５８】
図９に示すように、最初のフレームから数えてＦ番目のフレームから未来方向にＴフレーム間隔でＮフレームを選択して採用する。前述したように、Ｎは、メモリ・計算量の制約などによって決定すればよくＮ＞１を満たせばよい。例えばＮ＝５である。
【００５９】
図９に示すように、選択フレームは、［Ｆ，Ｆ＋Ｔ，Ｆ＋２Ｔ，Ｆ＋３Ｔ，・・・，Ｆ＋（Ｎ−１）×Ｔ］の各フレームである。なお、選択フレーム間隔に対応する変数［Ｔ］は初期値が１で、最初の選択フレームに対応する変数［Ｆ］は初期値が０（最初のフレームの番号、１スタートの場合は１）として設定し、その設定において画像評価を実行して、３次元データの生成に適切であるか否かを判定する評価値を算出し、評価値が規定に満たない場合は、変数を変更して、新たな画像フレームのセットを設定して、再度評価することになる。変数Ｔと変数Ｆは、ユーザが逐次、設定、更新するか、あるいは、評価結果に応じて更新態様を決定して自動更新する構成としてもよい。この処理については後段で詳細に説明する。
【００６０】
図８に示すフローのステップＳ３０２では、環境認識部３０２が、入力画像選択部３０１で選択した画像、すなわち、例えば図９に示すフレーム［Ｆ，Ｆ＋Ｔ，Ｆ＋２Ｔ，Ｆ＋３Ｔ，・・・，Ｆ＋（Ｎ−１）×Ｔ］の各フレームを入力して、静止環境３１１の構造とカメラ３１２の各映像フレームの位置・姿勢を計算する。環境認識部３０２の実行する処理は、従来から公知の処理として実行可能である。例えば、文献［１］［Ｙｉ  Ｍａ，Ｓｔｅｆａｎｏ  Ｓｏａｔｔｏ，Ｊａｎａ  Ｋｏｓｅｃｈａ  ａｎｄ  Ｓ．Ｓｈａｎｋａｒ  Ｓａｓｔｒｙ，"Ａｎ  Ｉｎｖｉｔａｔｉｏｎ  ｔｏ  ３−Ｄ  Ｖｉｓｉｏｎ"，Ｓｐｒｉｎｇｅｒ（２００６）．］のＣｈａｐｔｅｒ１１に記載の方法を適用することができる。
【００６１】
ステップＳ３０２の環境認識部３０２の処理で生成した結果は環境認識結果３１４として、情報処理装置内の記憶部に一旦保持される。環境認識結果３１４には以下の情報が保持されている。但し、特徴量は特徴点同士の比較（トラッキング）が可能な特徴量であれば、特に指定はない。スケール・回転に頑強な特徴量表現であることが望ましい。
・Ｎフレーム分のカメラの位置と姿勢
・各特徴点の３次元位置
・各特徴点の特徴量（特徴点追跡に利用）
・各特徴点に対するＮフレーム分の画像内位置（軌跡）
【００６２】
次に、ステップＳ３０３において、特徴点追跡部３０３による特徴点追跡処理を実行する。ステップＳ３０１において入力画像選択部３０１が選択した画像、すなわち、例えば図９に示すフレーム［Ｆ，Ｆ＋Ｔ，Ｆ＋２Ｔ，Ｆ＋３Ｔ，・・・，Ｆ＋（Ｎ−１）×Ｔ］の各フレームを入力して、共通する特徴点を追跡して特徴点の軌跡を求める。この処理は、環境認識結果にある対応特徴点のトラッキングを行う処理であり、公知の処理、具体的には、前述の文献［１］の１１章に記載の方法を用いることが可能である。
【００６３】
次に、ステップＳ３０４において、参照画像選択部３０４は、環境認識で用いた画像とは別に、環境認識結果を検証するために利用する参照画像を選択する。参照画像は、映像データ３１３を構成する１つの画像フレームを選択する処理であり、選択方法としては、例えば単純に、最終的な処理フレーム［Ｆ＋（Ｎ−１）×Ｔフレーム］の［Ｎ×Ｔ］フレーム前の画像を選択するといった処理が可能である。しかし、この方法では、カメラが長時間動いていない場合に遭遇したとき、参照画像としてふさわしくない。特徴点位置の撮影方向に変化のない画像を参照画像として選択してしまう恐れがある。
【００６４】
そのため、本処理例では、ステップＳ３０３の特徴点追跡部３０３の処理結果として得られる特徴点追跡結果を利用して、参照画像の特徴点の画像内位置が、環境認識部３０２で用いた特徴点軌跡に対してどの程度離れているか検証し、充分離れているフレームを、参照画像として選択する。
【００６５】
ステップＳ３０４において実行する参照画像選択処理の詳細シーケンスについて、図１０に示すフローチャートを参照して説明する。まず、ステップＳ３５１において、処理対象とする映像フレーム３１３から、任意の１フレームを参照画像候補として選択する。次にステップＳ３５２において、特徴点追跡部３０３において、ステップＳ３５１で選択した参照画像候補としての１フレームに対し、環境認識結果にある対応特徴点のトラッキングを行う。特徴点追跡処理は前述したように公知の処理を適用する。具体的には、前述の文献［１］の１１章に記載の方法を用いることが可能である。
【００６６】
次にステップＳ３５３において、ステップＳ３５２で追跡した特徴点位置群と、環境認識結果３１４において算出されている特徴点位置群との間の距離を計算する。計算式は以下に示す式（数式１）を適用する。
【００６７】
【数１】
0005012615.tif 000002
【００６８】
但し、上記式において、
ｄｉｓｔは特徴点追跡部３０３で追跡した特徴点位置群と環境認識部３０２で算出した特徴点位置群との間の距離、
ｉは、特徴点番号、
ｔは、フレーム番号、
【００６９】
【数２】
0005012615.tif 000003
はｉに関する中央値を出力する関数、
【００７０】
【数３】
0005012615.tif 000004
はｔに関する最小値を出力する関数、
ｍｉｔは、環境認識部３０２で用いたｉ番目の特徴点のフレームｔでの画像内の位置、
ｍ＿ｒｅｆｉは前述のｉ番目の特徴点に対応する参照画像内の位置を示す。
【００７１】
なお、図１１に１つの参照画像候補３２１と、入力画像選択部３０１が選択した画像フレーム３２２に対して、上記式（数式１）を適用して距離を算出した場合の処理例を示している。１つの参照画像候補３２１と、入力画像選択部３０１が選択した画像フレーム３２２にはそれぞれ対応特徴点３３１，３４１，３４２が存在し、入力画像選択部３０１が選択した画像フレーム３２２の特徴点の軌跡が図１１の下段に示すように特徴点軌跡３５１として求められ、この軌跡情報を利用して、参照画像上の特徴点３５２の位置との特徴点間距離３５３を算出する。
【００７２】
次に、ステップＳ３５４において、ステップＳ３５３で上記式（数式１）を用いて算出した選択フレームの特徴点群と参照画像候補の特徴点との特徴点間距離が予め設定した規定閾値以上であり、さらに特徴点の数が予め定めた閾値以上であるか否かを判定し、閾値以上であれば、参照画像として適切であると判定して参照画像の選択処理を終了し、もし閾値以上でない場合はステップＳ３５１に戻り、他の画像を参照画像候補として選択して、ステップＳ３５２以下の処理を実行する。このようにして、図８に示すフローのステップＳ３０４において参照画像の選択処理が実行される。
【００７３】
次に、図８に示すフローのステップＳ３０５では、評価値算出部３０５が、ステップＳ３０１において選択した画像フレームの評価を行う。すなわち、選択フレームが３次元画像の生成に適当であるか否かの評価を実行する。具体的には、例えば、図５のフローに示すステップＳ１０１の処理として実行するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理に適用する画像フレームとして適切であるか、さらに、その画像フレームを用いたＳＦＭ処理結果が、図５のステップＳ１０２の処理として実行する拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）に適用する初期情報として適切であるか否かを判定するための評価値を算出する。
【００７４】
本例では評価値として、
（ａ）環境認識部３０２で用いた特徴点の数
（ｂ）光線同士の交差角（図１２参照）の中央値
（ｃ）参照画像のカメラモデルフィッティング誤差
これらの３種類の値を評価値として用いる。
以下、上記の（ａ）〜（ｃ）それぞれの値について説明する。
【００７５】
（ａ）環境認識部で用いた特徴点の数
環境認識部３０２で用いた特徴点の数は、環境認識部３０２において３次元位置を推定した特徴点の数である。
精度の高い３次元データを生成するためには特徴点の数は多いほど３次元データの精度を高めることが可能となる、従って、特徴点数は多いほど評価値が高くなる。
【００７６】
（ｂ）光線同士の交差角の中央値
次に、光線同士の交差角の中央値について説明する。まず、「光線同士の交差角」の定義について図１２を参照して説明する。図１２に示すようなある２つの画像フレーム３７１，３７２のカメラ位置・姿勢と、その２つのフレーム３７１，３７２から見える１点の特徴点３８１があるとする。「光線同士の交差角」は、図１２に示すように、２つのカメラ位置において撮影した２つの画像フレーム３７１，３７２から特徴点３８１を結ぶ光線が交差する角度φである。
【００７７】
この交差角［φ］が大きければ大きいほど、フレーム間の視差が大きくとれていることになる。特徴点の３次元位置を高精度に算出するためには、より大きな視差を持つフレームに対応する特徴点が存在することが重要な要素となる。
交差角［φ］を求める式としては、以下に示す式（数式２）を用いる。
【００７８】
【数４】
0005012615.tif 000005
【００７９】
但し、上記式において、
ｗは特徴点の位置、
ｃｐはｐ番目のフレームのカメラ位置（焦点位置）、
‖  ‖はノルム、
はベクトル同士の内積、
を表し、
関数ａｃｏｓは逆コサイン関数である。
【００８０】
次に上記式（数式２）によって算出した交差角［φ］を用いて、「光線同士の交差角の中央値」を求める。まず、Ｎフレームから２フレームを１ペアとする組を［ｎＣ２］組用意する。例えば、ｐフレームとｑフレームがありそれぞれのフレームではｉ番目の特徴点が写っているものとする。それぞれの組に対して、ｉ番目の特徴点の「光線同士の交差角の中央値」を求める。そして、全ての特徴点に対して以上の処理を行い、「光線同士の交差角」の中央値を「光線同士の交差角の中央値」とする。
【００８１】
数式として示すと、以下に示す式（数式３）によって、光線同士の交差角の中央値［ａｎｇｌｅ］を算出する。
【００８２】
【数５】
0005012615.tif 000006
【００８３】
但し、上記式中、
【数６】
0005012615.tif 000007
は、もしあるフレームペアの少なくとも片方のフレームにｉ番目の特徴点がないとしたときは、採用しない。
前述したように、特徴点の３次元位置を高精度に算出するためには、より大きな視差を持つフレームに対応する特徴点が存在することが重要な要素となる。従って、光線同士の交差角の中央値［ａｎｇｌｅ］が大きいほど、評価値が高くなる。
【００８４】
（ｃ）参照画像のカメラモデルフィッティング誤差
次に、参照画像のカメラモデルフィッティング誤差について説明する。
環境認識部３０２による処理によって得られた特徴点の３次元位置と、参照画像から得られる画像内特徴点位置の双方（特徴点の３次元位置・参照画像での画像内特徴点位置）が正しいならば、ピンホールカメラモデルに従って、図１３に示すように参照画像フレーム３９０を通る全ての光線（参照画像フレーム３９０上の特徴点位置と、特徴点３９１ａ〜ｆを結ぶ線）は１点で交差する。この交差点は、参照画像フレーム３９０の焦点３９２である。
【００８５】
ピンホールカメラモデルについて、図１４、図１５を参照して説明する。ピンホールカメラモデルにおいて、特徴点の画像フレーム中の位置は下式（数式４）によって計算することができる。
【００８６】
【数７】
0005012615.tif 000008
【００８７】
上記式の意味について、図１４、図１５を参照して説明する。上記式は、カメラの撮影画像４１０に含まれるオブジェクト４１１の点（ｍ）のカメラ像平面の画素位置４１２、すなわち、カメラ座標系によって表現されている位置と、世界座標系におけるオブジェクト４００の３次元位置（Ｍ）４０１との対応関係を示す式である。
【００８８】
カメラ像平面の画素位置４１２はカメラ座標系によって表現されている。カメラ座標系は、カメラの焦点を原点Ｃとして、像平面がＸｃ，Ｙｃの二次元平面、奥行きをＺｃとした座標系であり、カメラの動きによって原点Ｃは移動する。
【００８９】
一方、オブジェクト４００の３次元位置（Ｍ）４０１は、カメラの動きによって移動しない原点Ｏを有するＸＹＺ三軸からなる世界座標系によって示される。この異なる座標系でのオブジェクトの位置の対応関係を示す式が上述のピンホールカメラモデルとして定義される。
【００９０】
この式に含まれる値は、図１５に示すように、
λ：正規化パラメータ
Ａ：カメラ内部パラメータ、
Ｃｗ：カメラ位置、
Ｒｗ：カメラ回転行列、
を意味している。
さらに、
【数８】
0005012615.tif 000009
は、同次座標系で表現されたカメラの像平面上の位置である。
λは、正規化パラメータであり、
【数９】
0005012615.tif 000010
の第３項を満足させるための値である。
【００９１】
なお、カメラ内部パラメータＡには、以下の値が含まれる。
f：焦点距離
θ：画像軸の直交性（理想値は９０°）
ｋｕ：縦軸のスケール（３次元位置のスケールから二次元画像のスケールへの変換）
ｋｖ：横軸のスケール（３次元位置のスケールから二次元画像のスケールへの変換）
（ｕ０，ｖ０）：画像中心位置
【００９２】
このように、世界座標系にある特徴点は位置［Ｍ］で表現される。また、カメラは位置［Ｃｗ］と姿勢（回転行列）Ｒｗで表現される。カメラの焦点位置・画像中心等はカメラ内部パラメータ［Ａ］で表現される。これらのパラメータから、「世界座標系にある特徴点」から「カメラの像平面上」に射影されるそれぞれの位置の関係式が、上述した式（数式４）によって表現することができる。
【００９３】
また、カメラの位置・姿勢を回転行列Ｒｗと並進ベクトルで表現した場合は、以下に示す式（数式５）のようになる。但し、並進ベクトルとカメラ位置との関係は式（数式６）で表される。
【００９４】
【数１０】
0005012615.tif 000011
【００９５】
【数１１】
0005012615.tif 000012
【００９６】
本発明の一実施例における「参照画像のカメラモデルフィッティング誤差」の算出処理具体例について図１６を参照して説明する。
「参照画像のカメラモデルフィッティング誤差」の算出処理は、以下の２つの処理によって行われる。
（処理１）ピンホールカメラモデルを元に参照画像のカメラ位置・姿勢を求める処理、
（処理２）得られたカメラ位置・姿勢を元に各特徴点を像平面に再射影し、再射影した点とトラッキング点（観測点）との誤差を計算する処理、
【００９７】
まず、図１６（ａ）を参照して、
（処理１）ピンホールカメラモデルを元に参照画像のカメラ位置・姿勢を求める処理、
について説明する。図１６（ａ）は、先に説明した図１３と同様の図である。参照画像フレーム３９０を撮影したカメラの位置・姿勢を求める。
カメラの位置・姿勢を求める数式は、以下の式（数式７）である。
【００９８】
【数１２】
0005012615.tif 000013
【００９９】
但し、
ｗｉは、ｉ番目の特徴点の３次元位置、
ｘｉは、下式（数式８）によって算出される値である。ただし、ｍｉは、特徴点の参照画像における位置、行列Ａは先に説明した式（数式４）に記載の内部パラメータを示す。
【０１００】
【数１３】
0005012615.tif 000014
【０１０１】
また、
Ｉ３は、３行３列の単位行列、
０は３行１列の零ベクトル、
【数１４】
0005012615.tif 000015
はｎ行１列の零ベクトル（左辺の行列の大きさに依存）、
ｒ１，ｒ２，ｒ３は、参照画像フレームの姿勢を表す下式に示される回転行列の列ベクトルＲ、
【数１５】
0005012615.tif 000016
【０１０２】
ｔは、参照画像フレームの並進ベクトルである。
なお、Ａ，Ｒ，ｔは、先に図１４、図１５を参照して説明した「ピンホールカメラモデル」における値Ａ，Ｒ，ｔに対応する値である。
【０１０３】
上述したカメラの位置・姿勢を求める数式（数式７）は、様々な求め方がある。解法の１例として、数式（数式７）を、
【数１６】
0005012615.tif 000017
【０１０４】
上記式のような表現としたとき、
行列ＢＴ・Ｂの最小固有値に対応する固有ベクトルがｑであるという設定で解を求めることができる。
但し、ｒ１，ｒ２，ｒ３は回転行列の列ベクトルでノルムが１になるように、ｑの各成分のスケールを算出後補正する必要がある。以上の処理により、上記式（数式７）を適用して参照画像のカメラ位置・姿勢が求めることができる。
【０１０５】
次に、図１６（ｂ）と図１７を参照して、
（処理２）得られたカメラ位置・姿勢を元に各特徴点を像平面に再射影し、再射影した点とトラッキング点（観測点）との誤差を計算する処理、
この処理について説明する。
【０１０６】
まず、上述の（処理１）によって、推定したカメラ位置・姿勢を元に各特徴点を像平面５００に再射影する。図１６（ｂ）、図１７に示すように再射影点５０１が設定される。さらに、特徴点追跡部３０３の処理によって取得される特徴点の特徴点３次元位置トラッキング点（観測点）５０２を像平面５００に設定する。これらの２つの点の距離を再投影誤差（ｒｅｐｒｏｊｅｃｔｉｏｎ  ｅｒｒｏｒ）［εｉ］として算出する。ｉは特徴点の識別番号であり、各特徴点についての再投影誤差［εｉ］をそれぞれ算出する。
【０１０７】
上記式（数式７）を適用して算出したカメラ位置・姿勢の誤差を測るために、再投影誤差（ｒｅｐｒｏｊｅｃｔｉｏｎ  ｅｒｒｏｒ）［εｉ］を計算する。再投影誤差［εｉ］は、以下に示す式（数式９）（数式１０）を適用して算出する。
【０１０８】
【数１７】
0005012615.tif 000018
【０１０９】
【数１８】
0005012615.tif 000019
【０１１０】
但し、
ｍｉはトラッキングで得られた特徴点の画像内位置、
【０１１１】
式（数式９）中の、
【数１９】
0005012615.tif 000020
は、再射影点であり、上記式（数式１０）を用いて求める。
【０１１２】
なお、上記の式（数式１０）は、先に図１４、図１５を参照して説明したピンホールカメラモデルに基づく式であり、式中のパラメータは、図１４、図１５を参照して説明したパラメータに相当する。
【０１１３】
上記式（数式９）で得られる各特徴点（ｉ＝１，２，・・・）に対応する複数の再投影誤差［εｉ］の中央値を「参照画像のカメラモデルフィッティング誤差」とする。
参照画像のカメラモデルフィッティング誤差を［ｒｅｐｒｏｊ＿ｅｒｒｏｒ］として、数式で表すと、以下の式（数式１１）によって示される。
【０１１４】
【数２０】
0005012615.tif 000021
【０１１５】
なお、参照画像のカメラモデルフィッティング誤差として、中央値を用いる理由は、特徴点追跡ミスなどによる遊離値、すなわちエラー測定値などを排除するためである。
【０１１６】
上記式（数式１１）によって示される「参照画像のカメラモデルフィッティング誤差」は小さい程、評価値が高くなる。
【０１１７】
評価値算出部３０５は、図８に示すフローチャートのステップＳ３０５において、上述したように、
（ａ）環境認識部３０２で用いた特徴点の数
（ｂ）光線同士の交差角（図１２参照）の中央値
（ｃ）参照画像のカメラモデルフィッティング誤差
これらの３種類の値を評価値として算出する。
【０１１８】
すなわち、ステップＳ３０１において選択した画像フレームが３次元データの生成に適切であるか。具体的には例えば図５のステップＳ１０１の処理として実行するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理に適用する画像フレームとして適切であるか、さらに、その画像フレームを用いたＳＦＭ処理結果が、図５のステップＳ１０２の処理として実行する拡張カルマンフィルタを適用したカメラ位置姿勢及び特徴点３次元位置情報取得処理（ＥＫＦ  ＳＬＡＭ）に適用する初期情報として適切であるか否かを判定するための評価値として、上記（ａ）〜（ｃ）の３種類の評価値を算出する。
【０１１９】
なお、上記（ａ）〜（ｃ）の各評価値は以下の設定となる。
（ａ）環境認識部３０２で用いた特徴点の数は大きいほど高い評価値、
（ｂ）光線同士の交差角（図１２参照）の中央値は大きいほど高い評価値、
（ｃ）参照画像のカメラモデルフィッティング誤差は小さいほど高い評価値、
このような設定となる。
【０１２０】
次に、図８に示すフローチャートのステップＳ３０６において、評価値判定部３０６が、上記の３種類の評価値に基づいて、ステップＳ３０１において選択した画像フレームが、３次元データの生成処理、例えばＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理やＥＫＦ  ＳＬＡＭ処理に適用する画像フレームとして適切であるか否かを判定する。
【０１２１】
ステップＳ３０６の評価値判定処理は、例えば以下のように実行される。
（ａ）環境認識部３０２で用いた特徴点の数が予め設定した閾値［Ｔｈａ］以上であれば適切、閾値［Ｔｈａ］未満であれば不適切、
（ｂ）光線同士の交差角（図１２参照）の中央値が予め設定した閾値［Ｔｈｂ］以上であれば適切、閾値［Ｔｈｂ］未満であれば不適切、
（ｃ）参照画像のカメラモデルフィッティング誤差が予め設定した閾値［Ｔｈｃ］以下であれば適切、閾値［Ｔｈｃ］より大きい場合は不適切、
このような判定を行う。なお、閾値はカメラの画角や環境中の特徴点の数、要求される精度などに依存するものであり、例えばユーザ設定によって適宜変更してよい。
【０１２２】
上記（ａ）〜（ｃ）のすべてが適切であれば、選択画像フレームは適正な評価値を有すると判定し、ステップＳ３０１において選択した画像フレームが３次元データの生成に適用される。具体的には、例えば図５のステップＳ１０１の処理として実行するＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理やその後のＥＫＦ  ＳＬＡＭ処理に適用する画像フレームとして適切であると判定して処理を終了する。
【０１２３】
上記（ａ）〜（ｃ）のいずれかが不適切と判定された場合は、ステップＳ３０１において選択した画像フレームが３次元データの生成、具体的には、ＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理やＥＫＦ  ＳＬＡＭ処理に適用する画像フレームとして適切でないと判定して、ステップＳ３０１に戻り、さらに異なる画像フレームの選択処理を実行して、ステップＳ３０２以下の処理を実行する。
【０１２４】
なお、上記処理例では、図８に示すフローチャートのステップＳ３０６において、上述した（ａ）〜（ｃ）すべての評価値が、規定閾値に基づく判定で適切であると判定された場合にステップＳ３０６の判定をＹｅｓの判定とし、その場合にはステップＳ３０１において選択した画像フレームを３次元データの生成処理に適用する画像フレームとする設定として説明したが、例えば（ａ）〜（ｃ）中の少なくとも２つまたは１つが適正であると判定された場合には、ステップＳ３０６の判定をＹｅｓの判定として、ステップＳ３０１において選択した画像フレームを３次元データの生成に適用するフレームとするといった処理構成とするという設定としてもよい。すなわち閾値や評価値に基づく判定基準は、状況に応じて変更可能な要素である。
【０１２５】
本発明の情報処理装置は、図７の構成を有し、図８に示すフローチャートを参照して説明した処理に従って選択した画像フレームを用いて３次元データの生成を行う。
具体的には、例えば図５のフローチャートに示すステップＳ１０１のＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行し、その処理結果をステップＳ１０２の「ＥＫＦ  ＳＬＡＭ」の初期化情報（Ｉｎｉｔｉａｌｉｚｅ  Ｄａｔａ）として利用する。
【０１２６】
図８に示すフローに従って選択された画像は、
（ａ）特徴点の数が予め設定した閾値［Ｔｈａ］以上、
（ｂ）光線同士の交差角（図１２参照）の中央値が予め設定した閾値［Ｔｈｂ］以上、
（ｃ）参照画像のカメラモデルフィッティング誤差が予め設定した閾値［Ｔｈｃ］以下、
このような条件を満足する画像フレームによって構成されることになり、これらの画像フレームを用いたＳＦＭ処理によって、精度の高い特徴点の３次元位置情報の取得が可能となり、その後の「ＥＫＦ  ＳＬＡＭ」においても精度の高い３次元データの生成が可能となる。
【０１２７】
すなわち情報処理装置の３次元データ生成部が、評価値判定部において３次元データの生成に適切な画像であると判定した選択画像を適用したＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理を実行し、さらにＳＦＭ処理による生成情報を初期情報として利用した拡張カルマンフィルタ（ＥＫＦ）を適用した処理により３次元データ生成を実行する。
【０１２８】
なお、図８に示すフローでは、ステップＳ３０６の判定においてＮｏの判定が得られた場合、ステップＳ３０１に戻り、新たな画像フレームの選択を行うことになり、この画像選択処理では、先に図９を参照して説明したように、最初のフレームから数えてＦ番目のフレームから未来方向にＴフレーム間隔でＮフレームを選択して採用する設定［Ｆ，Ｆ＋Ｔ，Ｆ＋２Ｔ，Ｆ＋３Ｔ，・・・，Ｆ＋（Ｎ−１）×Ｔ］として、
選択フレーム間隔に対応する変数［Ｔ］の初期値＝１、
最初の選択フレームに対応する変数［Ｆ］の初期値＝０、
この初期値を、まず選択して、満足する評価値が得られず、ステップＳ３０６に戻った場合に、変数を変更して新たな画像フレームのセットを選択する。
【０１２９】
この場合、変数［Ｔ］を１，２，・・・と変更する処理、変数［Ｆ］を０，１，２・・・と変更する処理をそれぞれシーケンシャルに実行する設定としてもよいが、評価値の状況に応じて、最適な変数［Ｔ］，［Ｆ］の変更処理を行うことが可能である。この変数変更処理シーケンスについて図１８に示すフローチャートを参照して説明する。
【０１３０】
図１８に示すフローチャートは、
（１）評価値判定処理
（２）画像選択用変数設定処理
これらの２つの処理部分によって構成される。（１）評価値判定処理は、図８のフローチャート中のステップＳ３０６の評価値判定ステップについて、
（ａ）環境認識部３０２で用いた特徴点の数
（ｂ）光線同士の交差角（図１２参照）の中央値
（ｃ）参照画像のカメラモデルフィッティング誤差
これらの各評価値各々についての判定処理を区分して記載したフローに相当する。（２）画像選択用変数設定処理は、（１）評価値判定処理の処理結果に応じて、
選択フレーム間隔に対応する変数［Ｔ］、
最初の選択フレームに対応する変数［Ｆ］、
これらの変数をどのように変更するかを決定するための処理である。なお、この図１８に示す（２）画像選択用変数設定処理は、図７に示す構成の入力画像選択部３０１において実行する。
【０１３１】
図１８に示すフローの各ステップについて説明する。ステップＳ５０１〜Ｓ５０３は、それぞれ、先に説明した図８のフローチャート中のステップＳ３０６の評価値判定処理に相当し、それぞれ、
（ａ）特徴点の数が予め設定した閾値［Ｔｈａ］以上、
（ｂ）光線同士の交差角（図１２参照）の中央値が予め設定した閾値［Ｔｈｂ］以上、
（ｃ）参照画像のカメラモデルフィッティング誤差が予め設定した閾値［Ｔｈｃ］以下、
これらの判定を行うステップである。すべてがＹｅｓの判定が得られれば、ステップＳ５０４に進み、その時点で選択された画像フレーム、すなわち、図８に示すステップＳ３０１において選択した画像フレームのセットが、図５のフローチャートに示すステップＳ１０１のＳＦＭ（Ｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  Ｍｏｔｉｏｎ）処理に適用するフレームとして選択される。
【０１３２】
ステップＳ５０１〜Ｓ５０３のいずれかの判定がＮｏとなった場合には、図１８の（２）画像選択用変数設定処理に進み、先に図９を参照して説明した変数、すなわち、
選択フレーム間隔に対応する変数［Ｔ］、
最初の選択フレームに対応する変数［Ｆ］、
これらの変数を新たに設定する処理が行われる。
【０１３３】
ステップＳ５０１において、
特徴点の数が予め設定した閾値［Ｔｈａ］以上でないと判定されると、ステップＳ５１１に進み、選択フレーム間隔に対応する変数［Ｔ］の設定値が１より大きい設定であるか否かを判定する。選択フレーム間隔［Ｔ］＝１の場合は、図１８に示すように（１）のルートに進み、ステップＳ５１４において、最初の選択フレームに対応する変数［Ｆ］を［Ｆ＋１］とする変数更新を行う。
【０１３４】
以下、図１８に示すルート（１）〜（５）各々の変数更新処理について説明する。
ルート（１）
これは、フレーム間隔［Ｔ］が［１］と最小値であるのに、特徴点数が少ない状態である。
この状態は、
「特徴のない環境を撮影している」、
「カメラ移動が余りにも速すぎてフレーム間の重畳領域がない」、
これらの状態であることが考えられる。
この場合は、ステップＳ５１４において、最初の選択フレームに対応する変数［Ｆ］を［Ｆ＋１］とする変数更新を実行して、ステップＳ５１７に進み、現在の選択フレーム［Ｆ］の次のフレーム［Ｆ＋１］から、画像フレームを選択する。この場合は、フレーム間隔［Ｔ］は更新しない。
【０１３５】
ステップＳ５１１において、選択フレーム間隔に対応する変数［Ｔ］の設定値が１より大きいと判定された場合、すなわち、選択フレーム間隔［Ｔ］＞１の場合は、図１８に示すようにステップＳ５１２に進み、選択フレーム間隔［Ｔ］を［Ｔ−１］として、さらに、ステップＳ５１３において、ステップＳ５０２と同様の判定処理、すなわち、（ｂ）光線同士の交差角（図１２参照）の中央値が予め設定した閾値［Ｔｈｂ］以上であるか否かを判定する。なお、この判定処理は、評価値判定部３０６において実行する。
【０１３６】
ステップＳ５１３において、（ｂ）光線同士の交差角（図１２参照）の中央値が予め設定した閾値［Ｔｈｂ］以上でないと判定した場合は、図１８に示すようにルート（２）に進み、ステップＳ５１４において、最初の選択フレームに対応する変数［Ｆ］を［Ｆ＋１］とする変数更新を行ってステップＳ５１７に進み、更新した変数［Ｆ］，［Ｔ］に従った新たな画像選択を行う。
【０１３７】
このルート（２）の処理について説明する。
このルート（２）の場合は、特徴点数が少なく、かつ光線の交差角が小さい状態である。
この状態は、
「特徴のない環境を撮影している」
この状態であると想定される。
この場合は、フレーム間隔［Ｔ］を１つデクリメント［Ｔ−１］するとともに、現在の選択フレーム［Ｆ］の次のフレーム［Ｆ＋１］から、画像フレームを選択する設定とする。
【０１３８】
一方、ステップＳ５１３において、（ｂ）光線同士の交差角（図１２参照）の中央値が予め設定した閾値［Ｔｈｂ］以上であると判定した場合は、図１８に示すようにルート（３）に進み、そのままステップＳ５１７に進み、更新した変数［Ｔ］に従った新たな画像選択を行う。
【０１３９】
このルート（３）の処理について説明する。
このルート（３）の場合は、特徴点数が少なく、光線の交差角が大きい状態である。
この状態は、
「サンプリングフレーム［Ｔ］の間隔に対し、カメラ移動が速過ぎてフレーム間の重畳領域が少ない」
このような場合であることが想定される。
この場合は、フレーム間隔［Ｔ］を１つデクリメント［Ｔ−１］して画像フレームの選択を行う。最初の選択フレームに対応する変数［Ｆ］は変更しない。
【０１４０】
図１８に示すルート（４）は、ステップＳ５０１の判定がＹｅｓ、ステップＳ５０２の判定がＮｏの場合である。この場合は、ステップＳ５１５に進み、フレーム間隔［Ｔ］を１つインクリメント［Ｔ＋１］して、ステップＳ５１７に進み、新たな画像選択を行う。変数［Ｆ］は変更しない。
【０１４１】
このルート（４）の処理について説明する。
このルート（４）の場合は、特徴点数は十分であるが光線の交差角が小さい状態である。
この状態は、
「サンプリングフレーム［Ｔ］の間隔に対し、カメラ移動が遅い」
このような場合であることが想定される。
この場合は、フレーム間隔［Ｔ］を１つインクリメント［Ｔ＋１］して、変数［Ｆ］は変更せずに新たな画像フレームの選択を行う。
【０１４２】
図１８に示すルート（５）は、ステップＳ５０１の判定がＹｅｓ、ステップＳ５０２の判定がＹｅｓ、ステップＳ５０３の判定がＮｏの場合である。この場合は、ステップＳ５１６に進み、最初の選択フレームに対応する変数［Ｆ］を１つインクリメント［Ｆ＋１］して、ステップＳ５１７に進み、新たな画像選択を行う。変数［Ｔ］は変更しない。
【０１４３】
このルート（５）の処理について説明する。
このルート（５）の場合は、特徴点数は十分であり、光線の交差角も十分大きいが、ピンホールカメラ誤差が大きい状態である。
この状態は、
３次元位置推定が特異解に陥った、
トラッキング失敗
これらの可能性がある。
この場合は、フレーム間隔［Ｔ］については変更せず、現在の選択フレーム［Ｆ］の次のフレーム［Ｆ＋１］から、画像フレームを選択する設定とする。
【０１４４】
なお、図１８に示すルート（６）の場合は、
（ａ）特徴点の数が予め設定した閾値［Ｔｈａ］以上、
（ｂ）光線同士の交差角（図１２参照）の中央値が予め設定した閾値［Ｔｈｂ］以上、
（ｃ）参照画像のカメラモデルフィッティング誤差が予め設定した閾値［Ｔｈｃ］以下、
これらのすべての条件が満足された場合であり、全ての条件を満たしているので、この時点で選択した画像フレームを処理フレームとして決定すればよい。
【０１４５】
この図１８に示すフローに従って、
選択フレーム間隔に対応する変数［Ｔ］、
最初の選択フレームに対応する変数［Ｆ］、
これらの変数を更新して、画像選択を実行することで、効率的に評価値の高い画像フレームを選択することが可能となる。
【０１４６】
なお、先に図７を参照して説明したように、本発明に係る情報処理装置は、静止環境３１１をカメラ３１２で記録した映像データ３１３を予め用意し、オフライン処理として、ＳＦＭやＥＫＦ  ＳＬＡＭに適用する画像フレームの選択処理を実行してＳＦＭやＥＫＦ  ＳＬＡＭを実行するものとして説明したが、情報処理装置の処理能力が十分に高く、処理が高速に実行できる装置であれば、オフラインではなく、撮影処理に追随して画像選択、ＳＦＭ、ＥＫＦ  ＳＬＡＭを実行するオンライン処理を行う構成としてもよい。
【０１４７】
例えば、カメラによって撮影された画像フレーム中、最初の数フレーム分だけ映像データとして記憶部に保存して、図８に示す画像選択処理を記憶部に格納された画像データを利用して実行し、さらに評価値の高い選択画像を利用してＳＦＭやＥＫＦ  ＳＬＡＭを高速（例えば１／３０秒より速い速度）で実行する。このような処理構成とすれば、カメラの撮影速度に追随して処理を行うことが可能である。
【０１４８】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１４９】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１５０】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１５１】
以上、説明したように、本発明の一実施例の構成によれば、入力画像から選択した選択画像が３次元データの生成に適切な画像であるか否かを判定するために、（ａ）前記選択画像に含まれる３次元位置の推定された特徴点数、（ｂ）選択画像に含まれる対応特徴点の推定３次元位置と各画像フレームの特徴点位置とを結ぶ光線同士の交差角、（ｃ）参照画像のカメラモデルフィッティング誤差、これら（ａ）〜（ｃ）の少なくともいずれかを評価値として算出し、これらの評価値が規定条件を満足する場合に、選択画像が３次元データの生成に適切な画像であると判定してＳＦＭやＥＫＦ  ＳＬＡＭなどの３次元データ生成処理を実行する構成としたので、精度の高い３次元データの生成を実現することが可能となる。
【図面の簡単な説明】
【０１５２】
【図１】３次元マップ（３Ｄ  ｍａｐ）の生成処理シーケンスの一例について説明するフローチャートを示す図である。
【図２】画像フレームに含まれる特徴点情報とカメラ軌跡情報を取得する処理シーケンスの一例について説明するフローチャートを示す図である。
【図３】バンドル調整処理（Ｂｕｎｄｌｅ  Ａｄｊｕｓｔｍｅｎｔ）の一例について説明する図である。
【図４】本発明の処理の概要について説明する図である。
【図５】本発明の一実施例に従った処理のシーケンスについて説明するフローチャートを示す図である。
【図６】本発明の一実施例に従った３次元情報生成処理のシーケンスについて説明する図である。
【図７】本発明の一実施例に従った情報処理装置の画像選択を行うための構成および画像選択処理について説明する図である。
【図８】本発明の一実施例に従った画像選択処理のシーケンスについて説明するフローチャートを示す図である。
【図９】本発明の一実施例に従った画像選択処理の態様および画像選択処理に用いる変数について説明する図である。
【図１０】図８に示すフロー中のステップＳ３０４において実行する参照画像選択処理の詳細シーケンスについて説明するフローチャートを示す図である。
【図１１】１つの参照画像候補と、入力画像選択部が選択した画像フレームを用いた追跡特徴点位置群と、環境認識結果として算出されている特徴点位置群との間の距離について説明する図である。
【図１２】光線同士の交差角について説明する図である。
【図１３】参照画像フレームを通る全ての光線（参照画像フレーム上の特徴点位置と、特徴点を結ぶ線）が１点で交差することについて説明する図である。
【図１４】ピンホールカメラモデル、すなわちカメラ座標系によって表現されている位置と、世界座標系におけるオブジェクトの３次元位置との対応関係を示す式の意味について説明する図である。
【図１５】ピンホールカメラモデル、すなわちカメラ座標系によって表現されている位置と、世界座標系におけるオブジェクトの３次元位置との対応関係を示す式の意味について説明する図である。
【図１６】本発明の一実施例における「参照画像のカメラモデルフィッティング誤差」の算出処理具体例について説明する図である。
【図１７】本発明の一実施例における「参照画像のカメラモデルフィッティング誤差」の算出処理具体例について説明する図である。
【図１８】本発明の一実施例に係る情報処理装置の実行する画像選択における変数更新処理シーケンスについて説明するフローチャートを示す図である。
【符号の説明】
【０１５３】
１１〜１３  撮影画像
２１〜２３  特徴点
１０１  ユーザ
１０２  カメラ
１０３  ３次元画像情報
１２０  情報処理装置
１３１  疎な３次元マップ
１３２  密な３次元マップ
３０１  入力画像選択部
３０２  環境認識部
３０３  特徴点追跡部
３０４  参照画像選択部
３０５  評価値算出部
３０６  評価値判定部
３１１  静止環境
３１２  カメラ
３１３  映像データ
３１４  環境認識結果
３２１  参照画像候補
３２２  画像フレーム
３３１，３４１，３４２  特徴点
３５１  特徴点軌跡
３５２  特徴点
３５３  距離
３７１，３７２  画像フレーム
３８１  特徴点
３９０  参照画像フレーム
３９１  特徴点
３９２  焦点
５００  像平面
５０１  再射影点
５０２  ３次元位置トラッキング点（観測点）
【図１】
0005012615.tif 000022
【図２】
0005012615.tif 000023
【図３】
0005012615.tif 000024
【図５】
0005012615.tif 000025
【図１１】
0005012615.tif 000026
【図１４】
0005012615.tif 000027
【図１５】
0005012615.tif 000028
【図１８】
0005012615.tif 000029
【図４】
0005012615.tif 000030
【図６】
0005012615.tif 000031
【図７】
0005012615.tif 000032
【図８】
0005012615.tif 000033
【図９】
0005012615.tif 000034
【図１０】
0005012615.tif 000035
【図１２】
0005012615.tif 000036
【図１３】
0005012615.tif 000037
【図１６】
0005012615.tif 000038
【図１７】
0005012615.tif 000039