(57)【特許請求の範囲】
【請求項１】
時刻（ｔ）におけるフレーム画像における移動物体の特徴点の座標である２次元座標と、時刻（ｔ）より前の時刻（ｔ−Δｔ）における前記移動物体の特徴点の実空間における座標である３次元座標とを組み合わせたペア情報と、前記フレーム画像を撮像したカメラの位置及び向きを示すカメラポーズと、前記カメラの特性を示すカメラパラメータとに基づいて、前記フレーム画像上の時刻（ｔ−Δｔ）から時刻（ｔ）における前記移動物体の移動を示す動きベクトルを算出する移動物体フロー特定部と、
前記移動物体フロー特定部が算出した動きベクトルと、前記ペア情報の３次元座標と、時刻（ｔ−Δｔ）における前記移動物体の実空間での位置及び向きを示す移動物体ポーズと、前記カメラポーズと、前記カメラパラメータとに基づいて、前記移動物体に対するヤコビアン行列Ｊを算出し、算出したヤコビアン行列Ｊから時刻（ｔ−Δｔ）から時刻（ｔ）における移動物体ポーズの変動を示す変動ベクトルμを算出する移動物体ポーズ変動ベクトル算出部と、
前記移動物体ポーズ変動ベクトル算出部が算出した前記移動物体の変動ベクトルμと、時刻（ｔ−Δｔ）における前記移動物体の移動物体ポーズとから、時刻（ｔ）における前記移動物体の移動物体ポーズを算出する移動物体ポーズパラメータ算出部と
を備えることを特徴とする移動物体ポーズ算出装置。
【請求項２】
請求項１に記載の移動物体ポーズ算出装置であって、
前記移動物体フロー特定部は、
前記移動物体の特徴点ごとに、前記カメラポーズ及び前記カメラパラメータに基づいて、前記ペア情報の３次元座標を時刻（ｔ）におけるフレーム画像に射影点を算出し、算出した射影点と、該３次元座標に対応する２次元座標とから前記動きベクトルを算出する
ことを特徴とする移動物体ポーズ算出装置。
【請求項３】
請求項１又は請求項２のいずれかに記載の移動物体ポーズ算出装置であって、
前記移動物体ポーズ変動ベクトル算出部は、
前記移動物体の各特徴点に対応する動きベクトルの大きさである移動距離から生成したベクトルｄと前記ヤコビアン行列Ｊとから前記変動ベクトルμを算出する
ことを特徴とする移動物体ポーズ算出装置。
【請求項４】
請求項３に記載の移動物体ポーズ算出装置であって、
前記移動物体ポーズ変動ベクトル算出部は、
前記ヤコビアン行列Ｊと前記変動ベクトルμとを乗算した結果から前記ベクトルｄを減算した結果を０に近づけるように前記変動ベクトルμを算出する
ことを特徴とする移動物体ポーズ算出装置。
【請求項５】
時刻（ｔ）におけるフレーム画像における移動物体の特徴点の座標である２次元座標と、時刻（ｔ）より前の時刻（ｔ−Δｔ）における前記移動物体の特徴点の実空間における座標である３次元座標とを組み合わせたペア情報と、前記フレーム画像を撮像したカメラの位置及び向きを示すカメラポーズと、前記カメラの特性を示すカメラパラメータとに基づいて、前記フレーム画像上の時刻（ｔ−Δｔ）から時刻（ｔ）における前記移動物体の移動を示す動きベクトルを算出する移動物体フロー特定ステップと、
前記移動物体フロー特定ステップにおいて算出した動きベクトルと、前記ペア情報の３次元座標と、時刻（ｔ−Δｔ）における前記移動物体の実空間での位置及び向きを示す移動物体ポーズと、前記カメラポーズと、前記カメラパラメータとに基づいて、前記移動物体に対するヤコビアン行列Ｊを算出し、算出したヤコビアン行列Ｊから時刻（ｔ−Δｔ）から時刻（ｔ）における移動物体ポーズの変動を示す変動ベクトルμを算出する移動物体ポーズ変動ベクトル算出ステップと、
前記移動物体ポーズ変動ベクトル算出ステップにおいて算出した前記移動物体の変動ベクトルμと、時刻（ｔ−Δｔ）における前記移動物体の移動物体ポーズとから、時刻（ｔ）における前記移動物体の移動物体ポーズを算出する移動物体ポーズパラメータ算出ステップと
を有することを特徴とする移動物体ポーズ算出方法。
【請求項６】
請求項１から請求項４のいずれかに記載の移動物体ポーズ算出装置が備える各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動物体を含む実空間を撮像するカメラによって入力されたフレーム画像列から、移動物体に対してコンピュータグラフィクス等を合成するために算出する、実空間内の基準座標系であるワールド座標系から見た移動物体の位置・姿勢を示す移動物体ポーズを算出する移動物体ポーズ算出装置、移動物体ポーズ算出方法、及びプログラムに関する。
【背景技術】
【０００２】
実空間を撮像するカメラによって入力されたフレーム画像から、実空間におけるカメラの位置及び姿勢を示すカメラポーズと、フレーム画像上の特徴点の３次元座標とを算出するカメラポーズ３Ｄ推定装置では、算出したカメラポーズを用いて、例えばフレーム画像上にコンピュータグラフィクス（Computer Graphics：ＣＧ）等を合成することを可能にしている。
【０００３】
カメラポーズ３Ｄ推定装置では、カメラポーズと実空間内の３次元点との初期値、及びフレーム画像を入力し、（１）実空間の３次元点がフレーム画像で観測された画像点を決定し、（２）３次元点の３次元座標と画像点の座標との組から非線形最小自乗法によってカメラポーズを算出し、（３）過去に亘った複数時刻のフレーム画像を用いて３次元点の３次元座標を更新する、（１）〜（３）の処理を時々刻々繰り返すことによって、正確にカメラポーズと３次元座標とを算出することを実現している。
【０００４】
このようなカメラポーズ３Ｄ推定装置で算出されるカメラポーズと３次元座標とは、カメラポーズがワールド座標系におけるカメラの位置及び向きとして表現され、３次元座標がワールド座標系における位置として表現される。カメラポーズ３Ｄ推定装置は、初期時刻において予め設定された座標系がワールド座標系として利用される。このため、例えばフレーム画像上の物体に対してＣＧ等を合成する場合には、ワールド座標系における物体の位置及び姿勢を示す物体ポーズを何かしらの方法で算出する必要がある。
【０００５】
例えば非特許文献１に記載の方法では、フレーム画像上の物体領域を予め登録しておいた物体のテンプレート画像を比較することで検出し、当該物体領域に属する特徴点の３次元座標を用いて３次元空間内の物体ポーズを算出することを可能としている。
【０００６】
物体が実空間内で移動する場合に当該物体上にＣＧを合成するには、時々刻々の物体ポーズを示す移動物体ポーズを算出する必要がある。この算出処理は、上述の物体ポーズ算出処理を時々刻々繰り返すことにより行うことができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Robert O. Castle, David W. Murray,“Object Recognition and Localization while Tracking and Mapping,” International Symposium on Mixed and Augmented Reality, pp. 179-180,Oct. 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、フレーム画像上の物体領域を予め登録しておいた物体のテンプレート画像と比較する処理で得られる移動物体ポーズは、予め登録されたテンプレート画像に依存してしまうため、フレーム画像における物体の実際の移動物体ポーズとの差（誤差）が生じることがある。誤差を含む移動物体ポーズを用いてＣＧを合成した場合、合成ＣＧを観察するユーザに違和感を生じさせてしまうといった問題がある。
【０００９】
本発明は、上記問題を解決すべくなされたものであり、フレーム画像における移動物体の移動物体ポーズの精度を向上させることができる移動物体ポーズ算出装置、移動物体ポーズ算出方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記問題を解決するために、本発明は、時刻（ｔ）におけるフレーム画像における移動物体の特徴点の座標である２次元座標と、時刻（ｔ）より前の時刻（ｔ−Δｔ）における前記移動物体の特徴点の実空間における座標である３次元座標とを組み合わせたペア情報と、前記フレーム画像を撮像したカメラの位置及び向きを示すカメラポーズと、前記カメラの特性を示すカメラパラメータとに基づいて、前記フレーム画像上の時刻（ｔ−Δｔ）から時刻（ｔ）における前記移動物体の移動を示す動きベクトルを算出する移動物体フロー特定部と、前記移動物体フロー特定部が算出した動きベクトルと、前記ペア情報の３次元座標と、時刻（ｔ−Δｔ）における前記移動物体の実空間での位置及び向きを示す移動物体ポーズと、前記カメラポーズと、前記カメラパラメータとに基づいて、前記移動物体に対するヤコビアン行列Ｊを算出し、算出したヤコビアン行列Ｊから時刻（ｔ−Δｔ）から時刻（ｔ）における移動物体ポーズの変動を示す変動ベクトルμを算出する移動物体ポーズ変動ベクトル算出部と、前記移動物体ポーズ変動ベクトル算出部が算出した前記移動物体の変動ベクトルμと、時刻（ｔ−Δｔ）における前記移動物体の移動物体ポーズとから、時刻（ｔ）における前記移動物体の移動物体ポーズを算出する移動物体ポーズパラメータ算出部とを備えることを特徴とする移動物体ポーズ算出装置である。
【００１１】
また、本発明は、上記に記載の移動物体ポーズ算出装置であって、前記移動物体フロー特定部は、前記移動物体の特徴点ごとに、前記カメラポーズ及び前記カメラパラメータに基づいて、前記ペア情報の３次元座標を時刻（ｔ）におけるフレーム画像に射影点を算出し、算出した射影点と、該３次元座標に対応する２次元座標とから前記動きベクトルを算出することを特徴とする。
【００１２】
また、本発明は、上記に記載の移動物体ポーズ算出装置であって、前記移動物体ポーズ変動ベクトル算出部は、前記移動物体の各特徴点に対応する動きベクトルの大きさである移動距離から生成したベクトルｄと前記ヤコビアン行列Ｊとから前記変動ベクトルμを算出することを特徴とする。
【００１３】
また、本発明は、上記に記載の移動物体ポーズ算出装置であって、前記移動物体ポーズ変動ベクトル算出部は、前記ヤコビアン行列Ｊと前記変動ベクトルμとを乗算した結果から前記ベクトルｄを減算した結果を０に近づけるように前記変動ベクトルμを算出することを特徴とする。
【００１４】
また、上記問題を解決するために、本発明は、時刻（ｔ）におけるフレーム画像における移動物体の特徴点の座標である２次元座標と、時刻（ｔ）より前の時刻（ｔ−Δｔ）における前記移動物体の特徴点の実空間における座標である３次元座標とを組み合わせたペア情報と、前記フレーム画像を撮像したカメラの位置及び向きを示すカメラポーズと、前記カメラの特性を示すカメラパラメータとに基づいて、前記フレーム画像上の時刻（ｔ−Δｔ）から時刻（ｔ）における前記移動物体の移動を示す動きベクトルを算出する移動物体フロー特定ステップと、前記移動物体フロー特定ステップにおいて算出した動きベクトルと、前記ペア情報の３次元座標と、時刻（ｔ−Δｔ）における前記移動物体の実空間での位置及び向きを示す移動物体ポーズと、前記カメラポーズと、前記カメラパラメータとに基づいて、前記移動物体に対するヤコビアン行列Ｊを算出し、算出したヤコビアン行列Ｊから時刻（ｔ−Δｔ）から時刻（ｔ）における移動物体ポーズの変動を示す変動ベクトルμを算出する移動物体ポーズ変動ベクトル算出ステップと、前記移動物体ポーズ変動ベクトル算出ステップにおいて算出した前記移動物体の変動ベクトルμと、時刻（ｔ−Δｔ）における前記移動物体の移動物体ポーズとから、時刻（ｔ）における前記移動物体の移動物体ポーズを算出する移動物体ポーズパラメータ算出ステップとを有することを特徴とする移動物体ポーズ算出方法である。
【００１５】
また、本発明は、上記に記載の移動物体ポーズ算出装置が備える各部としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１６】
この発明によれば、時刻（ｔ）におけるフレーム画像における移動物体の特徴点の２次元座標と、特徴点の実空間における３次元座標と、時刻（ｔ−Δｔ）における移動物体の移動物体ポーズと、カメラポーズと、カメラパラメータとから、時刻（ｔ）における移動物体ポーズを幾何計算によって算出する。これにより、フレーム画像に撮像された移動物体に則した移動物体ポーズを算出することができ、移動物体ポーズの精度を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】本明細書における座標系及び用語を説明するための図である。
【図２】本実施形態における移動物体ポーズ算出装置１の構成を示す概略ブロック図である。
【図３】本実施形態における２Ｄ−３Ｄ点対応ペア情報の一例を示す図である。
【図４】本実施形態における移動物体フローの一例を示す図である。
【図５】本実施形態の記憶部１２に記憶される２Ｄ−３Ｄ点対応ペア情報、及びフロー特定情報の一例を示す図である。
【図６】本実施形態における移動物体ポーズ変動ベクトル算出部１４が行う変動ベクトル算出処理を示すフローチャートである。
【図７】本実施形態における前時刻（ｔ−Δｔ）における物体ポーズＬ（ｔ−Δｔ）との一例を示す図である。
【図８】本実施形態における前時刻（ｔ−Δｔ）における物体ポーズＬ（ｔ−Δｔ）と、現時刻（ｔ）における物体ポーズＬ（ｔ）と、移動物体ポーズ変動ベクトルμの関係の一例を示す図である。
【図９】本実施形態における移動物体ポーズパラメータ算出部１５が行う移動物体ポーズ算出処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明に係る一実施形態における移動物体ポーズ算出装置、移動物体ポーズ算出方法、及びプログラムを説明する。
【００１９】
まず、実施形態において用いる座標系及び用語について説明する。
図１は、本明細書における座標系及び用語を説明するための図である。同図に示すように、ワールド座標系は空間全体を表す座標系であって予め定められた座標系である。
３次元点（３Ｄ点）はカメラによって撮像される物体の特徴点である。３Ｄ点の３次元座標はワールド座標系における３次元点の位置を示す３次元座標である。なお、この３次元点の３次元座標は、カメラポーズ３Ｄ推定装置などによって算出されたものであり、現時刻（ｔ）に対してΔｔ前の時刻（ｔ−Δｔ）における３次元座標である。
【００２０】
カメラポーズは、フレーム画像を撮像するカメラの位置及び向きを、ワールド座標系に対する並進と回転とで表す情報である。２次元点（２Ｄ点）は、カメラが物体を撮像したときのフレーム画像における特徴点である。２次元点の２次元座標は、対応する３次元点（特徴点）のフレーム画像における座標である。
【００２１】
図２は、本実施形態における移動物体ポーズ算出装置１の構成を示す概略ブロック図である。同図に示すように、移動物体ポーズ算出装置１は、入力部１１と、記憶部１２と、移動物体フロー特定部１３と、移動物体ポーズ変動ベクトル算出部１４と、移動物体ポーズパラメータ算出部１５とを具備している。
入力部１１は、外部から２Ｄ−３Ｄ点対応ペア情報、前時刻（ｔ−Δｔ）における移動物体ポーズ、現時刻（ｔ）におけるカメラポーズ、及び、カメラパラメータが入力される。
【００２２】
２Ｄ−３Ｄ点対応ペア情報とは、３次元点と、当該３次元点に対応するフレーム画像上の２次元点とのペアを識別するペアＩＤに、当該３次元点の前時刻（ｔ−Δｔ）における３次元座標と当該２次元点の現時刻（ｔ）における２次元座標との組み合わせが対応付けられた情報である。図３は、本実施形態における２Ｄ−３Ｄ点対応ペア情報の一例を示す図である。例えば、ペアＩＤ「１」には、フレーム画像における２次元座標（２０，２０）と、ワールド座標系における３次元座標（１，１，１）との組み合わせが対応付けられている。
【００２３】
図２に戻って、移動物体ポーズ算出装置１の構成の説明を続ける。
移動物体ポーズは、ワールド座標系における物体の並進と回転を表し、ワールド座標系で表現される空間中にある物体のうち、移動している物体（以下、移動物体）ごとに算出される。カメラポーズは、前述したように、ワールド座標系におけるカメラ位置及び向きの並進と回転とを表す。カメラパラメータは、フレーム画像を撮影したカメラの特性を示す情報であり、例えば焦点距離、レンズ歪み量などを示すパラメータである。
【００２４】
記憶部１２には、入力部１１に入力された、外部から２Ｄ−３Ｄ点対応ペア情報、前時刻（ｔ−Δｔ）における移動物体ポーズ、現時刻（ｔ）におけるカメラポーズ、及びカメラパラメータが記憶される。また、記憶部１２には、移動物体フロー特定部１３が算出するフロー特定情報が記憶される。また、記憶部１２には、移動物体ポーズ変動ベクトル算出部１４が算出する移動物体ポーズ変動ベクトルが記憶される。また、記憶部１２には、移動物体ポーズパラメータ算出部１５が算出する各移動物体の現時刻（ｔ）における移動物体ポーズが記憶される。
【００２５】
移動物体フロー特定部１３は、記憶部１２に記憶されている２Ｄ−３Ｄ点対応ペア情報とカメラポーズとカメラパラメータとに基づいて、実空間内の物体が前時刻（ｔ−Δｔ）から現時刻（ｔ）までの間に移動したことによってフレーム画像上で生じた移動物体フローを算出する。また、移動物体フロー特定部１３は、移動物体フローから算出した移動距離及び移動方向を、各移動物体に唯一に割り振られた移動物体ＩＤに対応付けたフロー特定情報を記憶部１２に記憶させる。また、移動物体フロー特定部１３は、フロー特定情報を記憶部１２に記憶させる際に、２Ｄ−３Ｄ点対応ペア情報と対応付ける。
【００２６】
移動物体ポーズ変動ベクトル算出部１４は、記憶部１２に記憶されている、移動物体ＩＤと対応付けられた２Ｄ−３Ｄ点対応ペア情報と、当該移動物体ＩＤに対応する移動距離及び移動方向と、前時刻（ｔ−Δｔ）の移動物体ポーズと、カメラポーズとに基づいて、前時刻（ｔ−Δｔ）における移動物体ポーズに対する移動物体ポーズ変動ベクトルを算出する。
【００２７】
移動物体ポーズパラメータ算出部１５は、移動物体ポーズ変動ベクトル算出部１４が算出する移動物体ポーズ変動ベクトルと、記憶部１２に記憶されている前時刻（ｔ−Δｔ）における移動物体ポーズとに基づいて、現時刻（ｔ）における移動物体ポーズを算出する。また、移動物体ポーズパラメータ算出部１５は、算出した移動物体ポーズを外部に出力する。
【００２８】
以下、移動物体フロー特定部１３、移動物体ポーズ変動ベクトル算出部１４、及び移動物体ポーズパラメータ算出部１５における処理の詳細について説明する。
【００２９】
移動物体フロー特定部１３は、まず２Ｄ−３Ｄ点対応ペア情報、前時刻（ｔ）の移動物体ポーズ、カメラポーズ、及びカメラパラメータを記憶部１２から読み出す。続いて移動物体フロー特定部１３は移動物体フローを算出する。図４は、本実施形態における移動物体フローの一例を示す図である。また、同図はフレーム画像を示す図である。同図において、バツ印（×）で示されている点は物体の時刻（ｔ−Δｔ）における特徴点を射影した点（２次元点）であり、黒塗りの点（・）で示されている点は物体の時刻（ｔ）における特徴点を射影した点である。
【００３０】
同図において、移動物体フローは点線の矢印で示されており、５つの２次元点で示されている円形の移動による移動物体フローｆ２と、３つの２次元点で示されている三角形の移動による移動物体フローｆ１とが示されている。すなわち、移動物体フローは、実空間内の物体が前時刻（ｔ−Δｔ）から現時刻（ｔ）までの間に移動したことによってフレーム画像上で生じたベクトルのことであり、実空間内の移動物体ごとに唯一に割り振られた移動物体ＩＤに関連付けられる。
【００３１】
移動物体フロー特定部１３による移動物体フローの算出は、公知の方法、例えば参考文献１に記載の方法を用いることにより実現できる（参考文献１：Robust vSLAM for dynamic scenes, Jun SHIMAMURA, Masashi MORIMOTO and Hideki KOIKE, pp.344-347, MVA2011 IAPR Conference on Machine Vision Applications, June 13-15, 2011, Nara, JAPAN）。
【００３２】
以下、参考文献１に記載されている移動物体フローを算出する方法を概説する。
まず時刻（ｔ−Δｔ）の或る３次元点をカメラポーズとカメラパラメータを用いて現時刻（ｔ）のフレーム画像に射影した再射影点の２次元座標を算出する。算出した２次元座標と、当該３次元点に対応する２Ｄ点の２次元座標とから動きベクトルを算出する。この動きベクトルを算出する処理をすべての３次元点に亘って行う。
なお、実空間内で静止している物体の３次元点はベクトルの大きさがほぼ０となる。そのため動きベクトルは実空間内で物体が移動したことによって生じたフレーム画像でのベクトルを表現する。
【００３３】
上述の方法を本実施形態における移動物体フロー特定部１３に対応させると、移動物体フロー特定部１３は、記憶部１２に記憶されている、２Ｄ−３Ｄ点対応ペア情報と、カメラポーズと、カメラパラメータとを読み出す。移動物体フロー特定部１３は、読み出した２Ｄ−３Ｄ点対応ペア情報ごとに、当該２Ｄ−３Ｄ点対応ペア情報の３次元点を現時刻（ｔ）のフレーム画像に射影した再射影点の２次元座標を算出し、算出した２次元座標と当該２Ｄ−３Ｄ点対応ペア情報の２Ｄ点の２次元座標とから動きベクトルを算出する。
【００３４】
続いて、移動物体フロー特定部１３は、算出した各動きベクトルからその角度などの特徴量を算出し、ＥＭ（Expectation-Maximization：期待値最大化法）アルゴリズム等を用いて移動物体ごとにクラスタリングし、当該クラスタに属す動きベクトルを移動物体ベクトルとする。また、移動物体フロー特定部１３は、移動物体ベクトルから、その長さを移動距離ｄとして、またその方向を移動方向ｎとして算出する。また、移動物体フロー特定部１３は、クラスタリングにおけるクラスタＩＤを移動物体ＩＤとし、当該移動物体ＩＤに移動距離ｄ及び移動方向ｎを対応付けたフロー特定情報を記憶部１２に記憶させる。なお、移動物体フロー特定部１３は、フロー特定情報を記憶部１２に記憶させる際に、２Ｄ−３Ｄ点対応ペア情報に関連付けて記憶させる。
【００３５】
図５は、本実施形態の記憶部１２に記憶される２Ｄ−３Ｄ点対応ペア情報、及びフロー特定情報の一例を示す図である。同図に示すように、各２Ｄ−３Ｄ点対応ペア情報に対して、上述した処理により算出されるフロー特定情報（移動物体ＩＤ、移動距離ｄ、及び移動方向ｎ）が関連付けられて記憶される。例えば、ペアＩＤ「１」で識別される２Ｄ−３Ｄ点対応ペア情報には、２次元座標（２０，２０）及び（１，１，１）が含まれ、移動物体ＩＤ「２」と移動距離「３」と移動方向（０，１）とを含むフロー特定情報が関連付けられている。
【００３６】
図６は、本実施形態における移動物体ポーズ変動ベクトル算出部１４が行う変動ベクトル算出処理を示すフローチャートである。
移動物体ポーズ変動ベクトル算出部１４は、移動物体フロー特定部１３によるフロー特定情報の算出が完了すると、移動物体ＩＤが付与された２Ｄ−３Ｄ点対応ペア情報と、当該情報に対応付けられたフロー特定情報の移動距離ｄ及び移動方向ｎと、カメラポーズと、カメラパラメータとを記憶部１２から読み出す（ステップＳ１０１）。
次に、移動物体ポーズ変動ベクトル算出部１４は、変動ベクトル算出処理における処理回数を示し、移動物体を特定するインデックスとしてのカウンタｋを０に初期化する（ステップＳ１０２）。
【００３７】
続いて、移動物体ポーズ変動ベクトル算出部１４は、唯一の値をとる移動物体ＩＤの数である移動物体数Ｋより処理回数ｋが小さいかどうかを判定する（ステップＳ１０３）。処理回数ｋが移動物体数以上である場合（ステップＳ１０３：Ｎｏ）、移動物体ポーズ変動ベクトル算出部１４は、変動ベクトル算出処理を終了する。
一方、処理回数ｋが移動物体数Ｋより小さい場合（ステップＳ１０３：Ｙｅｓ）、移動物体ポーズ変動ベクトル算出部１４は、移動物体ＩＤがｋである２Ｄ−３Ｄ点対応ペア情報の３次元座標、当該情報に対応する移動方向ｎ、前時刻（ｔ−Δｔ）の移動物体ポーズ、カメラポーズ、及びカメラパラメータからヤコビアン行列の各要素を算出する（ステップＳ１０４）。
ここで、移動物体ＩＤが「ｋ」の移動物体に対するヤコビアン行列Ｊｋは次式（１）により定義される。
【００３８】
【数１】
0005735455.tif 000002
【００３９】
式（１）において、添え字のｉは、移動物体ＩＤ「ｋ」に対応する３次元点ｐごとに唯一に割り振られた０から始まるＩＤ（識別子）を示す。以下、第ｉ番目の３次元点ｐを３次元点ｐｉという。ｄｉは３次元点ｐｉの移動距離ｄを示す。また、μは前時刻（ｔ−Δｔ）における移動物体ポーズＬ（ｔ−Δｔ）から現時刻（ｔ）における移動物体ポーズＬ（ｔ）への並進及び回転を示す６要素から成る６行１列のベクトルであり、移動物体ポーズ変動ベクトルを示す。μｊは移動物体ポーズ変動ベクトルμの要素を示し、μｊにおける添え字のｊは移動物体ポーズ変動ベクトルμの要素番号であり１から６までの値をとる。
すなわち、ヤコビアン行列Ｊｋの要素は、移動物体の各３次元点ｐ（特徴点）のフレーム画像における移動距離ｄを、時刻（ｔ−Δｔ）から時刻（ｔ）への移動物体ポーズの変動を示す移動物体ポーズ変動ベクトルμの各要素で偏微分した値である。
【００４０】
つまり、式（１）におけるヤコビアン行列Ｊｋは、Ｎ行６列の行列となる。Ｎは移動物体ＩＤがｋである２Ｄ−３Ｄ点対応ペアの数を示す。前時刻（ｔ−Δｔ）における物体ポーズＬ（ｔ−Δｔ）と、現時刻（ｔ）における物体ポーズＬ（ｔ）と、移動物体ポーズ変動ベクトルμの関係を、本実施形態における一例として図７、図８で示す。
【００４１】
図７及び図８は、本実施形態における前時刻（ｔ−Δｔ）における物体ポーズＬ（ｔ−Δｔ）と、現時刻（ｔ）における物体ポーズＬ（ｔ）と、移動物体ポーズ変動ベクトルμの関係の一例を示す図である。
図７には、前時刻（ｔ−Δｔ）における、物体の３次元点（特徴点）と移動物体の移動物体ポーズＬ１（ｔ−Δｔ）及び移動物体ポーズＬ２（ｔ−Δｔ）と、フレーム画像及びカメラポーズとが示されている。
図８には、図７に示されていたものに加えて、現時刻（ｔ）における、物体の３次元点と、移動物体の移動物体ポーズＬ１（ｔ）及び移動物体ポーズＬ２（ｔ）と、移動物体ポーズ変動ベクトルμ１及び移動物体ポーズ変動ベクトルμ２とが示されている。同図に示すように、移動物体ポーズ変動ベクトルは、実空間内の物体が前時刻（ｔ−Δｔ）から現時刻（ｔ）までの間に移動したことによって生じる、移動体ポーズの変動を示すベクトルである。
【００４２】
図６に戻って、変動ベクトル算出処理の説明を続ける。
式（１）は３次元点をカメラで撮像した画像（フレーム画像）に射影する関数ＣａｍＰｒｏｊ（）を用いて次式（２）のように記述し直すことができる。
【００４３】
【数２】
0005735455.tif 000003
【００４４】
式（２）において、行列Ｃｔは受信した現時刻（ｔ）のカメラポーズを示す行列である。行列Ｋは移動物体ポーズ変動ベクトルμを４行４列の行列で表現したものであり、移動物体ポーズ変動ベクトルμと同様に６自由度の剛体変換を示す行列である。ベクトルｘｉは３次元点ｐｉの座標を示すベクトルであって、｛ｘ，ｙ，ｚ，１｝Ｔである。ここでＴは転置を表す。また、ベクトルｎｉは３次元点ｐｉの移動方向を示すベクトルである。式（２）における添え字のｉ，ｊは式（１）と同様である。式（２）はヤコビアン行列Ｊｋを演算可能な形式として次式（３）のように展開できる。
【００４５】
【数３】
0005735455.tif 000004
【００４６】
式（３）においてＪａ、Ｊｂ、Ｊｃは３次元点をカメラ画像に射影する関数ＣａｍＰｒｏｊ（）の部分要素を偏微分したものである。Ｇｊはリー群の生成子を示す。Ｊａ、Ｊｂ、Ｊｃの算出は、公知の方法、例えば参考文献２に記載された方法を用いる（参考文献２："Visual Tracking for Augmented Reality," Georg Klein, PhD Thesis, University of Cambridge, Appendix B p.157-158, 2006）。
移動物体ポーズ変動ベクトル算出部１４は、式（３）を用いて各要素を算出し、ヤコビアン行列Ｊｋを得る。
【００４７】
次に、移動物体ポーズ変動ベクトル算出部１４は、移動物体の各３次元点の移動距離ｄｉを点数分Ｎ個並べたＮ行１列のベクトルｄと、ヤコビアン行列Ｊｋとから次式（４）により、移動物体ポーズ変動ベクトルμｋを算出する（ステップＳ１０５）。
【００４８】
【数４】
0005735455.tif 000005
【００４９】
なお、式（４）で移動物体ポーズ変動ベクトルμｋを算出する場合、計測ノイズに対する精度向上のために参考文献２に記載されている方法と同様にロバスト推定を用いてもよい。例えば、ヤコビアン行列Ｊｋと移動物体ポーズ変動ベクトルμｋとを乗算した結果から、式（４）におけるベクトルｄを減算した結果の絶対値の２乗（｜Ｊｋ・μｋ−ｄ｜２）である残差平方和を最小にする、又は０に近づけるように移動物体ポーズ変動ベクトルμｋを、Ｍ推定法を用いて求めるようにしてもよい。これにより、外れ値の影響を抑えることができ、移動物体ポーズ変動ベクトルμｋの精度を向上させることができる。なお、移動物体ポーズ変動ベクトルμｋの算出方法は、公知の方法、例えば参考文献２（pp.161-164, Appendix C）に記載の方法を用いるようにしてもよい。また、ロバスト推定として、Ｍ推定法以外のＲＡＮＳＡＣ（RANdom SAmple Consensus）などを用いるようにしてもよい。
【００５０】
続いて、移動物体ポーズ変動ベクトル算出部１４は、移動物体ポーズ変動ベクトルμｋをｋ（移動物体ＩＤ）に対応付けて記憶部１２に記録する（ステップＳ１０６）。続いて、移動物体ポーズ変動ベクトル算出部１４は、処理回数を示すカウンタｋに１を加算し（ステップＳ１０７）、移動物体数Ｋより処理回数ｋが小さいかどうかを判定する処理（ステップＳ１０３）に戻る。
移動物体ポーズ変動ベクトル算出部１４は、ステップＳ１０３からステップＳ１０７までの各処理を繰り返して行い、各移動物体に対する移動物体ポーズ変動ベクトルμｋ（ｋ＝０，１，２，…，Ｋ）を算出して、変動ベクトル算出処理を終了する。
【００５１】
図９は、本実施形態における移動物体ポーズパラメータ算出部１５が行う移動物体ポーズ算出処理を示すフローチャートである。
移動物体ポーズパラメータ算出部１５は、移動物体ポーズ変動ベクトル算出部１４による移動物体ポーズ変動ベクトルμの算出が完了すると、まず各移動物体の移動物体ポーズ変動ベクトルμと、前時刻（ｔ−Δｔ）における各移動物体の移動物体ポーズとを記憶部１２から読み出す（ステップＳ２０１）。
次に、移動物体ポーズパラメータ算出部１５は、移動物体ポーズ算出処理における処理回数を示し、移動物体を特定するインデックスとしてのカウンタｋを０に初期化する（ステップＳ２０２）。
【００５２】
続いて、移動物体ポーズパラメータ算出部１５は、移動物体数Ｋより処理回数ｋが小さいかどうかを判定する（ステップＳ２０３）。処理回数ｋが移動物体数Ｋより小さい場合（ステップＳ２０３：Ｙｅｓ）、移動物体ポーズパラメータ算出部１５は、移動物体ＩＤがｋである移動物体に対応する移動物体ポーズ変動ベクトルμｋと、当該移動物体の前時刻（ｔ−Δｔ）における移動物体ポーズから現時刻の移動物体ポーズを次式（５）によって算出する（ステップＳ２０４）。
【００５３】
【数５】
0005735455.tif 000006
【００５４】
式（５）において、Ｌｋ（ｔ）は現時刻（ｔ）の移動物体ポーズを、Ｌｋ（ｔ−Δｔ）は前時刻（ｔ−Δｔ）の移動物体ポーズを示す。行列Ｍｋは式（２）と同様に移動物体ポーズ変動ベクトルμｋを４行４列の行列で表現したものである。移動物体ポーズ変動ベクトルμｋから行列Ｍｋへの変換は次式（６）で算出する。
【００５５】
【数６】
0005735455.tif 000007
【００５６】
式（６）において、ｅはネイピア数を示す。μｋｊは移動物体ポーズ変動ベクトルμｋの第ｊ要素を示し、Ｇｊは式（３）と同様にリー群の生成子を示す。
続いて、移動物体ポーズパラメータ算出部１５は、式（５）及び式（６）を用いて算出した現時刻の移動物体ポーズＬｋ（ｔ）をｋ（移動物体ＩＤ）に関連付けて記憶部１２に記録する（ステップＳ２０５）。続いて、移動物体ポーズパラメータ算出部１５は、処理回数を示すカウンタｋに１を加算し（ステップＳ２０６）、移動物体数より処理回数ｋが小さいかどうかを判定する処理（ステップＳ２０３）に戻る。
【００５７】
移動物体ポーズパラメータ算出部１５は、ステップＳ２０３からステップＳ２０６までの各処理を繰り返して行い、各移動物体に対する現時刻（ｔ）の移動物体ポーズＬｋ（ｔ）を算出する。
すべての移動物体に対して移動物体ポーズＬｋ（ｔ）を算出した後、ステップＳ２０３において、処理回数ｋが移動物体数Ｋ以上である場合（ステップＳ２０３：Ｎｏ）、移動物体ポーズパラメータ算出部１５は、記憶部１２に記録した各移動物体の現時刻（ｔ）における移動物体ポーズＬ（ｔ）を読み出して出力し（ステップＳ２０７）、移動物体ポーズ算出処理を終了する。
【００５８】
上述したように、本実施形態における移動物体ポーズ算出装置１では、現時刻（ｔ）より以前の時刻（ｔ−Δｔ）の３次元点（特徴点）の座標と、当該３次元点が現時刻のフレーム画像Ｆ（ｔ）において観測されるべき射影点と、フレーム画像Ｆ（ｔ）で実際に観測された２次元点との関係から、幾何計算によって移動物体の移動物体ポーズを算出する。これにより、予め登録しておいた物体のテンプレート画像との比較処理を用いないため、移動物体ポーズの算出処理を高速に行うことができる。
【００５９】
例えば、テンプレート画像を用いて移動物体ポーズを算出すると、予め登録したおいたテンプレート画像の数やテンプレート画像の組み合わせに応じて、比較処理により得られる移動物体ポーズと、フレーム画像における移動物体の移動物体ポーズとに差（誤差）が生じる場合がある。この場合、比較処理により得られた移動物体ポーズを用いて物体にＣＧを合成すると、フレーム画像における移動物体と合成するＣＧとにずれが生じて、合成ＣＧを観察するユーザが違和感を感じてしまう。この違和感を低減させるには上述の差を小さくするために多数のテンプレート画像を用意することが考えられるが、多数のテンプレート画像との比較処理は時間を要するので合成ＣＧの生成間隔が広がり、合成ＣＧを観察するユーザに違和感を生じさせてしまうことになる。
これに対して、本実施形態における移動物体ポーズ算出装置１は、上述のように、テンプレート画像との比較処理を用いずに、フレーム画像における移動物体の２次元座標を用いた幾何計算によって移動物体の移動物体ポーズを算出するので、演算量を増加させることなくフレーム画像に撮像された移動物体に則した移動物体ポーズを算出することができる。その結果、合成ＣＧの生成間隔を広げることなく、移動物体ポーズの精度を向上させることができ、合成ＣＧを観察するユーザが感じる違和感を低減させることができる。
【００６０】
以上、本発明を実施形態の例に基づき具体的に説明したが、上述の実施形態の説明は、本発明を説明するためのものであって、特許請求の範囲に記載の発明を限定しあるいは範囲を減縮するように解すべきではない。また、本発明の各手段構成は上述の実施形態に限らず、特許請求の範囲に記載の技術的範囲内で種々の変形が可能であることは勿論である。
【００６１】
なお、本発明における移動体ポーズ算出装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行することにより、移動体ポーズ算出装置の各部（移動物体フロー特定部、移動物体ポーズ変動ベクトル算出部、及び移動物体ポーズパラメータ算出部）としてコンピュータを機能させるようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。更に「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００６２】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。更に、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００６３】
１…移動物体ポーズ算出装置、１１…入力部、１２…記憶部、１３…移動物体フロー特定部、１４…移動物体ポーズ変動ベクトル算出部、１５…移動物体ポーズパラメータ算出部
【図１】
0005735455.tif 000008
【図２】
0005735455.tif 000009
【図３】
0005735455.tif 000010
【図４】
0005735455.tif 000011
【図５】
0005735455.tif 000012
【図６】
0005735455.tif 000013
【図７】
0005735455.tif 000014
【図８】
0005735455.tif 000015
【図９】
0005735455.tif 000016