(57)【要約】モーションキャプチャデータやアニメータの手作業等により得られた大量の運動データを蓄積し、再利用するためのデータベース構造を提供する。複数の正規化運動データを用いたデータベース構造は、木構造を備えた階層型データベースである。木構造の最上位層は、複数の正規化運動データの全てのフレームが含まれている１つのノードであり、正規化運動データの各フレームは、木構造の各階層のいずれかの１つのノードに含まれていると共に、各ノードには、上位層から下位層に行くにしたがってより近い状態量を備えたフレームが含まれている。各階層毎に、各階層を構成する複数のノード間の遷移確率が格納されている。
2009145071.tif 000002
【特許請求の範囲】
【請求項１】
複数の正規化運動データを用いたデータベース構造であって、
前記複数の正規化運動データの各フレームの時間間隔は共通化されており、
前記データベース構造は、木構造を備えた階層型データベースであり、
木構造の最上位層は、複数の正規化運動データの全てのフレームが含まれている１つのノードであり、
正規化運動データの各フレームは、木構造の各階層のいずれかの１つのノードに含まれていると共に、各ノードには、上位層から下位層に行くにしたがってより近い状態量を備えたフレームが含まれており、
各階層毎に、各階層を構成する複数のノード間の遷移確率が格納されている、
運動データベース構造。
【請求項２】
前記木構造は、二分木構造である、請求項１に記載の運動データベース構造。
【請求項３】
各運動データ毎に、各階層を構成する複数のノード間の遷移確率が格納されている、請求項１、２いずれかに記載の運動データベース構造。
【請求項４】
正規化運動データの各フレームの状態量は、骨格モデルの任意の姿勢を決定し得る仮想マーカセットの各仮想マーカの位置および速度によって決定される、請求項１乃至３いずれかに記載の運動データベース構造。
【請求項５】
木構造の最下位層のノードには、所定数以上のフレームが含まれている、請求項１乃至４いずれかに記載の運動データベース構造。
【請求項６】
各ノードに含まれる複数のフレームの状態量の代表値を各ノードの特徴量とし、各ノードの特徴量が、各ノードに含まれる複数のフレームの状態量に代えて或は加えて、格納されている、請求項１乃至５いずれかに記載の運動データベース構造。
【請求項７】
複数の正規化運動データの全てのフレームから最上位のノードを形成して木構造のルートとし、
各階層のノードに含まれるフレーム数が第１閾値以下となるまでノード分割を行う第１分割ステップと、
各階層のノードに含まれるフレーム数が第２閾値以下となるまで、第１分割ステップの最下層のノードから順次ノード分割を行う第２分割ステップと、
を備え、
前記第１分割ステップは、各ノードに含まれるフレームの状態量から取得した１次元の指標に基づいてノード分割を行い、
前記第２分割ステップは、各ノードに含まれるフレームの状態量を用いた階層的クラスタリングによりノード分割を行う、
複数の正規化運動データを用いた運動データベース構築方法。
【請求項８】
前記第１分割ステップ及び第２分割ステップは、各ノードを下位の２つのノードに分割するものである、請求項７に記載の運動データベース構築方法。
【請求項９】
正規化運動データの各フレームの状態量は、骨格モデルの任意の姿勢を決定し得る仮想マーカセットの各仮想マーカの位置および速度によって決定される、請求項７，８いずれかに記載の運動データベース構造。
【請求項１０】
前記第１分割ステップは、主成分分析に基づくノード分割であり、前記指標は第１主成分得点である、請求項７乃至９いずれかに記載の運動データベース構築方法。
【請求項１１】
前記第１分割ステップにおける前記指標は重心の高さである、請求項７乃至９いずれかに記載の運動データベース構築方法。
【請求項１２】
１つの上位ノードに含まれる複数のフレームを複数の下位ノードに分配する際に、各運動データを構成する各フレームと次フレームがどのノードに所属しているかの情報を格納し、同階層の各ノード間の遷移確率を求めることを含む、請求項７乃至１１いずれかに記載の運動データベース構築方法。
【請求項１３】
運動データを正規化する方法であって、
運動データは、骨格モデルの各関節角の時系列データからなり、
複数の仮想マーカからなる仮想マーカセットを、骨格モデルの任意の姿勢を決定可能なように骨格モデルの所定位置に配置し、
前記関節角の時系列データから、各フレームの仮想マーカセットの位置および速度を取得して、仮想マーカセットの位置及び速度をフレームの状態量とし、
各フレームの状態量を、骨格モデルのルートリンクを基準とする座標系に変換し、
変換された各フレームの状態量をスケーリングし、
スケーリングされた各フレームの状態量を時系列に並べて正規化した運動データとする、
運動データの正規化方法。
【請求項１４】
各フレームの時間間隔を共通化することを含む、請求項１３に記載の運動データの正規化方法。
【請求項１５】
前記関節角の時系列データは、ある骨格モデルに配置したマーカ位置の時系列データから逆運動学計算によって取得されたものである、請求項１３、１４いずれかに記載の運動データの正規化方法。
【請求項１６】
前記関節角の時系列データは、骨格モデルに対して直接付与されている、請求項１３、１４いずれかに記載の運動データの正規化方法。
【請求項１７】
請求項１乃至６いずれかに記載のデータベース構造と、入力部と、出力部と、処理部と、を備えた運動データ検索装置であって、
入力部は、１フレーム以上の運動データに対応する正規化された状態量あるいは状態量列を入力するように構成され、
処理部は、各ノードに含まれた複数のフレームの状態量に基づく各ノードの代表値を用いて、入力された状態量あるいは状態量列を生成する尤度を算出し、
出力部は、尤度が大きい１つ以上のノードあるいは１つ以上のノード遷移系列を候補として出力するように構成されている、
運動データ検索装置。
【請求項１８】
前記処理部は、ノード間遷移確率を用いて、前記算出されたノードが遷移し得る１つ以上の次ノードを算出し、
出力部は、算出された１つ以上の次ノードを候補として出力する、
請求項１７に記載の運動データ検索装置。
【請求項１９】
入力部から入力される状態量は、仮想マーカセットの各仮想マーカの位置および速度によって決定される、請求項１７、１８いずれかに記載の運動データ検索装置。
【請求項２０】
請求項１乃至６いずれかに記載のデータベース構造を用いた運動データ検索方法であって、
１フレーム以上の運動データに対応する正規化された状態量あるいは状態量列を入力するステップと、
各ノードに含まれた複数のフレームの状態量に基づく各ノードの代表値を用いて、入力された状態量あるいは状態量列を生成する尤度を算出するステップと、
尤度が大きい１つ以上のノードあるいは１つ以上のノード遷移系列を候補として出力するステップと、を備えている、
運動データ検索方法。
【請求項２１】
さらに、ノード間遷移確率を用いて、前記算出されたノードが遷移し得る１つ以上の次ノードを算出するステップと、
算出された１つ以上の次ノードを候補として出力する、
請求項２０に記載の運動データ検索方法。
【請求項２２】
入力される状態量は、仮想マーカセットの各仮想マーカの位置および速度によって決定される、請求項２０、２１いずれかに記載の運動データ検索方法。
【請求項２３】
１フレーム以上の運動データは、ある関節モデルの関節角データによって特定されており、
入力される前記正規化された状態量は、
前記関節角データに基づいて、順運動学計算により仮想マーカの位置あるいは位置及び速度を取得するステップと、
取得された仮想マーカの位置あるいは位置及び速度を骨格モデルのルートリンクを基準とする座標系に変換するステップと、
変換された仮想マーカの位置あるいは位置及び速度をスケーリングするステップと、
によって取得される、
請求項２２に記載の運動データ検索方法。
【請求項２４】
前記１つ以上のノード候補あるいは１つ以上のノード遷移系列候補は、
前記ノード候補あるいはノード遷移系列候補に含まれる状態量の代表値に基づいて、逆運動学計算により関節角データを取得し、
取得した関節角データを上記関節モデルに適用することで表示される、
請求項２３に記載の運動データ検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運動データベース構造、および当該運動データベース構造のための運動データ正規化方法、並びに当該運動データベース構造を用いた検索装置及び方法に関するものである。
【背景技術】
【０００２】
医療・スポーツ・エンターテイメントなどの分野でヒト骨格モデルの運動データを扱う事例が増えてきている。モーションキャプチャには設備費や人件費等多大なコストを要する上に、マーカ配置や骨格モデルが異なるとデータの再利用が難しいという問題がある。【０００３】
実際、ＣＧ・ゲーム分野では、これまでに計測した大量の運動データを分類・蓄積する手段がなく、再利用が事実上不可能であった。【０００４】
これまでにも、非特許文献１乃至４に示すように、運動データベースを構築しようとする試みはなされているが、関節構造やマーカ配置に依存する、１〜２階層のデータベースであるため検索速度が遅い、適用できる動作が歩行などに限られるといった限界があった。
【非特許文献１】L. Kovar, M. Gleicher, and F. Pighin. Motion graphs. In Proceedings of ACM SIGGRAPH 2002, pp. 473.482, 2002.
【非特許文献２】O. Arikan and D.A. Forsyth: "Interactive Motion Generation from Examples," Proceedings of SIGGRAPH2002, pp. 483-490, 2002.
【非特許文献３】J. Lee et al.: "Interactive control of avatars animated with human motion data," Proceedings of SIGGRAPH2002, pp. 491-500, 2002.
【非特許文献４】W. Takano, K. Yamane, and Y. Nakamura: "Capture Database through Symbolization, Recognition and Generation of Motion Patterns," Proceedings of IEEE ICRA, pp. 3092-3097, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、モーションキャプチャデータやアニメータの手作業等により得られた大量の運動データを蓄積し、再利用するためのデータベース構造、データベース構造のための運動データの正規化方法、およびデータベース構造を用いた運動データの検索手法を提案するものである。
本発明は、運動データを計測・生成時のマーカ位置やモデルの関節構造に依存しない形で大規模なモーションデータベースを構築する手法を提案するものである。
本発明は、１フレーム以上の動作・ポーズを鍵として、モーションデータベースから動作・ポーズを検索する手法を提案するものである。
【課題を解決するための手段】
【０００６】
本発明が採用した第１の技術手段は、
複数の正規化運動データを用いたデータベース構造であって、
前記複数の正規化運動データの各フレームの時間間隔は共通化されており、
前記データベース構造は、木構造を備えた階層型データベースであり、
木構造の最上位層は、複数の正規化運動データの全てのフレームが含まれている１つのノードであり、
正規化運動データの各フレームは、木構造の各階層のいずれかの１つのノードに含まれていると共に、各ノードには、上位層から下位層に行くにしたがってより近い状態量を備えたフレームが含まれており、
各階層毎に、各階層を構成する複数のノード間の遷移確率が格納されている、
運動データベース構造、である。【０００７】
１つの運動データは、時系列に並べた複数のフレームから構成される。各フレームは、骨格モデルの姿勢に対応しており、各フレームは状態量によって特定されている。
正規化運動データは、典型的には、異なる骨格モデルや異なる手法によって得られた運動データを正規化してなる運動データであるが、同じ骨格モデルについて同じ手法で取得した大量の運動データ（結果として正規化されている）からなるデータベース構造を排除するものではない。
正規化運動データから運動データベースを構築するにあたり、各フレームの時間間隔Δtは遷移確率に影響を与えるため、時間間隔Δtを共通化する。時系列のフレームからなる運動データがあった時に、多項式補間によって、フレームの時間間隔を任意の間隔に変更できることは当業者に理解される。一つの態様では、運動データを逆運動学計算で関節角データに変換した後で多項式補間し、Δtおきの運動データを取得する。運動データの補間のタイミングとしては、マーカ軌跡の段階で補間するものでもよい。また、本明細書において、「時間間隔が共通化されており」には、運動データベースを構成する複数の運動データにおいて、初めから時間間隔が同じである場合も含む。
骨格モデルは、関節角データあるいはマーカ位置を再現するためのコンピュータ上のキャラクタであり、骨格モデルの姿勢は、関節角データやマーカセットの位置によって特定される。
マーカセットとは、被験者の動きを計測するための印であり、キャラクタに動きを再現させるための目標値でもある。
状態量とは、ロボットやシステム等の「状態」を一意に表す変数であり、ここでは骨格モデルの状態を表す。１つの態様では、状態量は、骨格モデルの任意の姿勢を決定し得るマーカセットの各マーカの位置および速度によって決定される。また、状態量に、ルートリンクの速度を含めてもよい（特に、ルートリンクにマーカが配置されていない場合）。あるいは、骨格モデルの関節角、または関節角と関節速度を並べたベクトルを状態量としてもよい。
ルートリンクは、関節モデルを表現する木構造のルート（根）に相当するリンクである。典型的な態様例では、ルートリンクは体幹リンク、体幹が複数のリンクからなる場合はその中の１つ、あるいは腰に対応する部位のリンクである。【０００８】
１つの態様では、前記木構造は、二分木構造である。本発明のデータベース構造を構成する二分木構造は、全二分木、完全二分木でもよいが、必ずしも全二分木、完全二分木である必要はない。本発明のデータベース構造の木構造は、主体としての二分木構造の一部に、平衡木（B木）や多分木が含まれていてもよい。例えば、二分木に偏りが生じないように平衡木（B木）を用いる場合があり得る。本明細書における「二分木構造」には、一部に二分木以外の枝を備えた二分木構造も含まれる。
また、検索速度の観点からは二分木構造が有利ではあるが、本発明のデータベース構造の木構造は、二分木構造に限定されるものではなく、平衡木（B木）、多分木でもよい。
二分木の各ノードには運動データの集合に含まれるフレームのうち動作の種類（各運動データ）に関係なく状態量の近いものが含まれる。各ノードには、上位層から下位層に行くにしたがって階層に応じてより状態量の近いフレームが含まれている。
１つの態様では、木構造の最下位層のノードには、所定数以上のフレームデータが含まれている。一般に、最下位層のノードに含まれるフレーム数の最小値を設定しておかないと、検索速度が遅くなってしまう。また、データベース全体のデータ量が増加してしまう。
最下位層のノードに含まれるフレーム数の最小値は、検索の粒度や全体のデータ量の上限等を考慮して、適宜に決定できることが当業者に理解される。例えば、200fpsのデータで、平均0.2秒ごとに次ノードへ遷移するような粒度を想定する場合では、1ノードあたりのフレーム数を40程度に設定することができる。あるいは、データベース全体のデータ量の上限を決めた上で、データベース全体のデータ量が決定した上限に収まるように、最下位層ノードのフレーム数を決定する。最下位層ノードのフレーム数を増やすことによって、総ノード数を減らしてデータベース全体のデータ量を削減することができる。特に、各ノードの特徴量（平均、分散等）のみを保存することでデータ圧縮を行う場合には、総ノード数を削減することは有利である。
木構造の各ノードは、当該ノードに含まれる複数のフレームの状態量に基づく特徴量によって特徴付けられる。特徴量としては、平均（トリム平均、重み付け平均を含む）、メディアン、分散（共分散行列）が例示される。一つの態様では、各ノードの特徴量は、テーブルとして格納されている。
１つの態様では、各ノードに含まれる複数のフレームの状態量の代表値を各ノードの特徴量とし、各ノードの特徴量が、各ノードに含まれる複数のフレームの状態量に代えて或は加えて、格納されている。【０００９】
本発明に係る運動データベース構造には、各階層におけるノード間遷移確率が格納されている。本発明では、２つのノード間遷移確率のテーブルがある。一つは、運動データの区別を問わない各階層におけるノード間遷移確率のテーブルである。もう一つは、各運動データについて、各階層におけるノード間遷移確率のテーブルである。【００１０】
一つの態様では、正規化運動データの各フレームの状態量は、骨格モデルの任意の姿勢を決定し得る仮想マーカセットの各仮想マーカの位置および速度によって決定される。仮想マーカセットを採用することで、運動データを計測・生成時のマーカ位置やモデルの関節構造に依存しない形でモーションデータベースを構築することができる。しかしながら、本発明の運動データベース構造は、正規化された運動データがあれば、正規化の手法は限定されるものではなく、関節角を基準にする、絶対座標系でのリンク位置を基準にする、などの手法で正規化されたデータを排除するものではない。【００１１】
本発明に係るモーションデータベースについて小括する。使用するモーションデータベースでは、学習させる複数の動作に含まれる全フレームがサンプルとなり、一つのデータベースを構成する。学習させる動作のサンプリング時間は一定でΔtとする。データベースはあるノードに最大2個の子ノードが接続される2分木構造であり、各層において全サンプルがその層に属するいずれかのノードに含まれる。【００１２】
各ノードでは、そのノードからある状態量が生成される尤度を計算するための統計量（代表値）が計算されている。最も単純な実施形態では、全サンプル（フレームの状態量）の平均および共分散行列を用い、ガウス分布を仮定して尤度を計算する。より正確な尤度を計算するためには、混合ガウス分布等を用いることが考えられる。以下では、ノードnから状態量sが生成される尤度をF(s|n)と表す。平均μ、共分散行列Σのガウス分布の場合、F(s|n)は次式のように計算できる。
【数１】
2009145071.tif 000003
ここでDは状態量ベクトルの次元である。【００１３】
さらに、学習された動作において見られたノード間の遷移とそれぞれの遷移確率を求めておく。サンプルがどの動作に属するかを考慮せずに遷移を数え上げて求められた遷移確率と、同じ動作内での遷移のみを数え上げて求められた遷移確率がある。前者の遷移確率のテーブルは各層に対して1組ある。後者の遷移確率のテーブルは、各層・各動作に対して1組ある。【００１４】
本発明が採用した第２の技術手段は、
複数の正規化運動データの全てのフレームから最上位のノードを形成して木構造のルートとし、
各階層のノードに含まれるフレーム数が第１閾値以下となるまでノード分割を行う第１分割ステップと、
各階層のノードに含まれるフレーム数が第２閾値以下となるまで、第１分割ステップの最下層のノードから順次ノード分割を行う第２分割ステップと、
を備え、
前記第１分割ステップは、各ノードに含まれるフレームの状態量から取得した１次元の指標に基づいてノード分割を行い、
前記第２分割ステップは、各ノードに含まれるフレームの状態量を用いた階層的クラスタリングによりノード分割を行う、
複数の正規化運動データを用いた運動データベース構築方法、である。【００１５】
一つの態様では、前記第１分割ステップ及び第２分割ステップは、各ノードを下位の２つのノードに分割するものである。これによって正規化されたデータから二分木構造のデータベースが構築される。【００１６】
一つの態様では、前記第１分割ステップは、主成分分析に基づくノード分割である。ノードの共分散行列を算出し、共分散行列について主成分分析を行う。各フレームの第1主成分得点を計算し、第1主成分得点の降順にノードを二分する。ノード内のフレーム数が閾値以下になるまで繰り返す。第１分割ステップは、主成分分析を用いるものに限定されず、例えば、重心の高さを指標としてノードを分割するものでもよい。重心の座標の求め方としては、マーカ位置の単純または重み付き平均、あるいは逆運動学計算の後、各リンクの質量を考慮して重心を計算する方法が例示される。第１分割ステップで用いられる１次元の指標としては、第１主成分得点や重心の高さの他に、重心の他の座標値、ルートリンクの高さ等を採用し得ることは当業者に理解される。【００１７】
第２分割ステップとしては、後述の実施態様ではWard法を示すが、最短距離法等の他の階層的クラスタリング手法でもよい。【００１８】
フレームをノードに分配する際に、各フレームと次フレームがどのノードに所属しているかの情報を格納し、同層の各ノード間の遷移確率を求める。【００１９】
本発明が採用した第３の技術手段は、
運動データを正規化する方法であって、
運動データは、骨格モデルの各関節角の時系列データからなり、
複数の仮想マーカからなる仮想マーカセットを、骨格モデルの任意の姿勢を決定可能なように骨格モデルの所定位置に配置し、
前記関節角の時系列データから、各フレームの仮想マーカセットの位置および速度を取得して、仮想マーカセットの位置及び速度をフレームの状態量とし、
各フレームの状態量を、骨格モデルのルートリンクを基準とする座標系に変換し、
変換された各フレームの状態量をスケーリングし、
スケーリングされた各フレームの状態量を時系列に並べて正規化した運動データとする、
運動データの正規化方法、である。
運動データの正規化方法は、さらに、各フレームの時間間隔を共通化することを含んでもよい。【００２０】
仮想マーカからなる仮想マーカセットは、任意の骨格モデルの任意の姿勢を決定可能なように用意される。例えば、人骨格モデルであれば、異なる骨格モデルであっても、概ね同じリンク構造を備えていると考えられ、十分な数の仮想マーカからなる仮想マーカセットを用意することで、任意の骨格モデルの任意の姿勢が決定可能である。仮想マーカセットは、１つの態様では、基本となる基本骨格モデル（仮想モデルでも、実在するモデルでも良い）に対して、装着位置（どのリンクのどの位置）が決定されている。対象となる骨格モデルと基本骨格モデルとの各リンクを対応させることで、仮想マーカセットを対象となる骨格モデルに配置する。【００２１】
骨格モデルのルートリンクを基準とする座標系は、一つの態様では、直立姿勢で、人型リンク機構の「前」方向とみなされる方向をルートリンクの座標系で表したベクトルに一つの軸を取り、この軸を水平面に投影して新しい軸とする。異なる人型リンク機構間の対応が取れれば必ずしも「前」である必要はなく「後」方向や「左」方向、「右」方向のベクトルに一つの軸を取ってもよい。【００２２】
一つの態様では、前記関節角の時系列データは、骨格モデルに配置したマーカ位置の時系列データから逆運動学計算によって取得されたものである。
一つの態様では、計測用モデルSuと計測用マーカセットMuを用いて逆運動学により関節角データの時系列Qを求め、Qと計測用モデルSuと仮想マーカセットMvを用いて順運動学により仮想マーカ位置の時系列Pv'を取得し、これをスケーリングすることで、仮想マーカ位置の時系列Pvを得る。
一つの態様では、前記関節角の時系列データは、骨格モデルに対して直接付与されている。【００２３】
本発明が採用した第４の技術手段は、
請求項１乃至６いずれかに記載のデータベース構造と、入力部と、出力部と、処理部と、を備えた運動データ検索装置であって、
入力部は、１フレーム以上の運動データに対応する正規化された状態量あるいは状態量列を入力するように構成され、
処理部は、各ノードに含まれた複数のフレームの状態量に基づく各ノードの代表値を用いて、入力された状態量あるいは状態量列を生成する尤度を算出し、
出力部は、尤度が大きい１つ以上のノードあるいは１つ以上のノード遷移系列を候補として出力するように構成されている、
運動データ検索装置、である。
各ノードに含まれた複数のフレームの状態量に基づく各ノードの代表値としては、平均、メディアン、トリム平均、重み付け平均等を用いることができる。
入力される状態量列のフレームの時間間隔は、必ずしもデータベース構造を構成するフレームの時間間隔と一致していなくてもよい。また、入力される状態量列のフレームの時間間隔を補間によって変更し得ることも当業者に理解される。【００２４】
一つの態様では、
前記処理部は、ノード間遷移確率を用いて、前記算出されたノードが遷移し得る１つ以上の次ノードを算出し、
出力部は、算出された１つ以上の次ノードを候補として出力する。
一つの態様では、
入力部から入力される状態量は、仮想マーカセットの各仮想マーカの位置および速度によって決定される。
処理部は、入力部から入力された状態量の全部あるいは部分情報を用いて尤度を算出する。例えば、体の一部分に着目しての次の姿勢の提示を行っても良く、あるいは、注目したいマーカだけを考えた尤度を用いてもよい。【００２５】
本発明が採用した第５の技術手段は、
請求項１乃至６いずれかに記載のデータベース構造を用いた運動データ検索方法であって、
１フレーム以上の運動データに対応する正規化された状態量あるいは状態量列を入力するステップと、
各ノードに含まれた複数のフレームの状態量に基づく各ノードの代表値を用いて、入力された状態量あるいは状態量列を生成する尤度を算出するステップと、
尤度が大きい１つ以上のノードあるいは１つ以上のノード遷移系列を候補として出力するステップと、を備えている、
運動データ検索方法、である。【００２６】
一つの態様では、
さらに、ノード間遷移確率を用いて、前記算出されたノードが遷移し得る１つ以上の次ノードを算出するステップと、
算出された１つ以上の次ノードを候補として出力する。【００２７】
一つの態様では、
入力される状態量は、仮想マーカセットの各仮想マーカの位置および速度によって決定される。
一つの態様では、１フレーム以上の運動データは、ある関節モデルの関節角データによって特定されており、
入力される前記正規化された状態量は、
前記関節角データに基づいて、順運動学計算により仮想マーカの位置あるいは位置及び速度を取得するステップと、
取得された仮想マーカの位置あるいは位置及び速度を骨格モデルのルートリンクを基準とする座標系に変換するステップと、
変換された仮想マーカの位置あるいは位置及び速度をスケーリングするステップと、
によって取得される。
前記１つ以上のノード候補あるいは１つ以上のノード遷移系列候補は、
前記ノード候補あるいはノード遷移系列候補に含まれる状態量の代表値に基づいて、逆運動学計算により関節角データを取得し、
取得した関節角データを上記関節モデルに適用することで表示される。【００２８】
単一フレーム検索は、関節モデルのある姿勢を特定する状態量が入力され、入力された状態量を生成する尤度の高いノードが検索される。典型的には、検索されたノードから遷移し易いノードを検索し、次フレームノード候補として提示する。
一つの態様では、ある姿勢の次フレームに対応するノードの検索は、以下のようなステップとなる。
（１）姿勢における関節角データ（関節モデルが既知である）に基づいて、順運動学計算により仮想マーカの位置を求める。
（２）仮想マーカの位置を、座標系｛O´｝に変換し、かつスケーリングしたものを入力データとする。
（３）入力データに対応する１つ以上のノード候補を得る。
（４）ノード間遷移確率に基づいてノード候補が選択される。
（５）ノード候補に含まれる仮想マーカ位置情報の代表値（例えば平均値）に基づいて、スケールを戻し、逆運動学計算により関節角データを求める。
（５）関節角データを、上記関節モデルに適用して、表示する。
複数フレームの検索、すなわち、検索しようとしている運動が、ある遷移から生成される尤度は、「各フレームの状態がノードから生成される尤度」と「各ノード間の遷移確率」の積になり、それが最大になる遷移を探索する。後述する実施形態ではDijkstra法を用いた検索を説明するが、本発明に適用し得る探索法はDijkstra法に限定されるものではない。Dijkstra法以外の探索法として、深さ優先探索、幅優先探索、あるいはうまくヒューリスティック関数を設計できる問題であればA*探索、を例示することができる。【００２９】
本発明に係る運動データベース構造、および当該運動データベース構造のための運動データ正規化方法、並びに当該運動データベース構造を用いた検索装置及び方法のハードウエア構成は、一つ又は複数のコンピュータ装置から構成される。コンピュータ装置は、データを格納する記憶手段、データが入力される入力手段、入力されたデータおよび記憶されたデータを用いて計算を行う処理手段、処理結果を出力する出力手段、出力された処理結果を表示する表示手段と、を備えている。
本発明は、運動データの正規化を行うためにコンピュータを実行させるコンピュータプログラムとして提供することができる。本発明は、運動データベース構造を用いて運動データの検索を行うためにコンピュータを実行させるコンピュータプログラムとして提供することができる。
【発明の効果】
【００３０】
本発明に係る運動データベースは、計測・生成時のマーカ配置やモデルの関節構造・大きさに依存しない再利用可能な形でデータベース化されていることを特徴とする。また、木構造の各層の各ノード間の遷移確率が格納されている。これによりネットワーク上に散在しているモーションキャプチャデータを広く利用できるようになるほか、検索機能により動作の認識や予測が可能になり、アニメーションの生成やロボットによる人間の運動認識等に応用できる。【００３１】
データベース検索方法に関しては1つのフレームに対してなるべく高速に複数の候補を提示する必要があるため、検索の高速性と実装の可能性を考慮して探索時間がO(log N)となる二分木を採用した。したがって、ポーズや動作をキーとして類似した動作をO(log N)で高速に検索できる。
【発明を実施するための形態】
【００３２】
［Ａ］モーションデータベースの構築
図１に、データベースの構築方法の概略を示す。先ず、様々なマーカ配置やモデルの運動データを一つのデータベースに蓄積するため、モーションデータの正規化を行う。さらに、様々な精度での検索を高速に行うため、正規化されたデータを二分木構造のデータベースに登録する。また、元のモーションデータのフレーム情報を用いて、二分木構造の各階層のノード間の遷移確率を計算する。
【００３３】
［Ａ−１］モーションデータの正規化
データの形式によらないデータベースとするため、仮想的なマーカセットＭｖを定義し、これに含まれる各マーカの位置・速度を用いて運動を表現する。Ｍｖに含まれるマーカの個数Ｎｍを十分大きく取れば、ほとんどの実用的な骨格モデルの運動が表現可能となる。仮想マーカセットの１つの態様を、図７に示す。図７に示す骨格モデルは１５５自由度のモデルであり、仮想マーカセットは３４個の仮想マーカから構成されている。仮想マーカの個数は限定されないが、３４個程度の仮想マーカを骨格モデルに配置することで、骨格モデルの任意の姿勢を表現できると考えられる。
【００３４】
汎用的な大規模モーションデータベースを構築するにあたって、オリジナルデータから登録用のデータに正規化をする必要がある。オリジナルデータは様々なツールによって作成されることが考えられる。モーションキャプチャではユーザが計測用モデルＳｕと計測用マーカセットＭｕを用いて時系列の計測用マーカ位置のデータＰｕを得るため、本発明のモーションデータベースに登録するためには計測用マーカセットＭｕとモデルＳｕ、およびそのモデルにおける仮想マーカセットＭｖが必要である。
【００３５】
したがって、モーションキャプチャデータに対しては、まず計測時に用いたモデルＳｕとマーカセットＭｕ、およびＳｕにおけるＭｖの配置を指定する。Ｓｕ、Ｍｕおよびマーカ位置ｐｕの時系列データＰｕから逆運動学計算により関節角θの時系列データΘを得る。このΘ、Ｓｕおよび仮想マーカセットＭｖから順運動学計算により仮想マーカ位置ｐｖの時系列データＰｖを求める。
【００３６】
手付けアニメーションの場合は、アニメータが直接キャラクタを操作しているため、生成モデルの関節角の時系列データΘが直接得られる。したがって、本発明のモーションデータベースに登録するには生成モデルＳｕとそのモデルにおける仮想マーカセットＭｖが必要である。すなわち、アニメータの手作業により生成された動作の場合は、ＳｕとΘが直接与えられるので、ＳｕにおけるＭｖの配置を与えればＰｖが求められる。
【００３７】
次にこの仮想マーカセットの位置ｐｖをデータベースに登録する状態量ｘに変換する。以下では、Ｓｕのルートリンクに固定されたキャラクタの前方向をｘ軸、上方向をｚ軸とする座標系｛Ｒ｝を用いる。また、絶対座標系の鉛直上向きをｚ軸とする。各フレームにおいて、座標系｛Ｒ｝のｘ軸を絶対座標系｛Ｏ｝のｘｙ平面に射影し、その始点を座標系｛Ｏ´｝の原点、影をそのｘ軸とする。また、絶対座標系｛Ｏ｝のｚ軸と同方向を｛Ｏ´｝のｚ軸とする。最後にｙ軸を右手系に準拠して選ぶと｛Ｏ´｝が決まる。言い換えると、腰リンク（ルートリンク）の重心を地面に下ろした垂線の足を原点とし、地面に垂直の方向をｚ軸とし、人間の前方向を地面に射影した方向をｘ軸とする。このローカル座標系により、人間の立ち位置、回転の向きによって区別せずに、姿勢のみによってフレームデータを分類できる。変換時の各軸、すなわち、x軸、ｙ軸、ｚ軸、の取り方は限定されなない。例えば、座標系｛Ｒ｝において、キャラクタの前方向をｚ軸、上方向をｙ軸としてもよい。
【００３８】
この｛Ｏ´｝から見た仮想マーカＸの位置
【数２】
2009145071.tif 000004
と速度
【数３】
2009145071.tif 000005
を求め、全マーカについて並べると状態量ｘ´
【数４】
2009145071.tif 000006
が得られる。
【００３９】
最後に、モデルＳｕの大きさによる差をなくすためにスケーリングを行う。モデルＳｕを正規化するための係数αを用いて、データベースに登録する状態量ｘ
【数５】
2009145071.tif 000007
が得られる。αは例えば身長が１単位長さになるように決定する。あるいは、ユーザの用いたモデルＳｕと所定の基本モデルとの比をαとしてもよい。
【００４０】
この状態量ｘを時系列に並べて、フレーム数Ｎｆの動作ａを表す正規化されたモーションデータＭａ
【数６】
2009145071.tif 000008
を定義する。ここで、状態量の次元６ＮｍをＤと表す。
【００４１】
［Ａ−２］データベースの構築
１つ以上のモーションデータＭ＝[Ｍ１，Ｍ２，...，ＭＮａ]の全フレームを用いてモーションデータベースを構築する。動作間の遷移を可能とし、様々な精度での検索を高速に行うため、動作の種類によらず全てのフレームを１つの二分木構造を持つ階層型のデータベースに格納する。各フレームは二分木の各階層のいずれかのノードに含まれ、各ノードは階層に応じた粒度で状態量の近いフレームを含む。各ノードの特徴量は、そのノードに含まれるフレームの状態量の平均及び分散である。
【００４２】
階層的クラスタリングには様々な手法が提案されているが、一般に全サンプル間の距離情報が必要となる。本発明はこのような距離情報を用いたクラスタリングを排除するものではないが、本発明のように多数（数千〜数万以上）のサンプルを含むデータのクラスタリングは、メモリ量・計算量の観点から好適であるとは言えない。一方、人間の運動は連続的であるため、十分に多くの動作を含む場合、フレームデータの集合は明確なクラスタ構造を持たないとも考えられる。
【００４３】
以上から、二分木の上位階層ノードを直下の階層のノードに分割する際には、多数のフレームを含むため主成分分析に基づく単純な分割手法を適用し、ノード内のフレーム数が一定値ｎｃ以下になってから階層的クラスタリング手法の一つであるWard法によりクラスタリングを行う。
【００４４】
［Ａ−２−１］上位階層ノードの分割法
初めに第１層にモーションマーカデータの集合Ｍの全てのフレームを含むノードＢ１，１を作成する。以後、第ｌ層の第ｉノードＢｌ，ｉにｎｃ以上のサンプル（フレームデータ）が含まれているとき、以下の手順で２個の子ノードに分割する。まず、Ｂｌ，ｉに含まれる状態量の共分散行列Σｌ，ｉの主成分分析を行い、第１主成分の主軸にＢｌ，ｉに含まれる各状態量を射影して第１主成分得点を求める。これらを２つのノードに分割するには、適当な閾値を求めればよい。ここでは、検索における誤識別率を最小化することを目的としてKittlerらの自動閾値選定法（J.Kittler and J.Illingworth. Minimum error thresholding Pattern Recognition, Vol. 19, No. 1, pp. 41.47, 1986.）を用いる。また、第１主成分得点の降順にノード内のフレームを半数ずつ２つの子ノードに分けてもよい。
【００４５】
［Ａ−２−２］Ward法によるクラスタリング
あるノードのサンプル数がｎｃ以下になったら、１個のサンプルを含むｎｃ個のノード群を初期状態として、Ward法を用いてクラスタリングを行う。クラスタリング終了後、サンプル数がある閾値以下のノードを削除する。
【００４６】
［Ａ−３］ノード間遷移確率
まず動作の種類によらないノード間遷移確率を求める。上述のとおり、１つのモーションデータＭ内のすべてのフレームデータが各層の各ノードに分配されるが、ノードに分配する際に各フレームデータがどのノードに所属しているかの情報を記録しておく。この情報を用いて各層のノード間遷移確率を決定する。すなわち、各層においてフレームをノードに分配する際に各フレームとその次フレームがどのノードに所属しているかの情報を記録しておくと、同層の各ノード間の遷移確率ａｉｊは各ノードへのノードｉからノードｊへの遷移数Ｎｉｊをノードｉから自分を含む他ノードへの総遷移数で割ることにより求められる。
【数７】
2009145071.tif 000009
例えば、図５において、1→1が5回、1→2が2回、1→3が3回であれば、ａ１３は０．３となる。この遷移情報は検索時に次フレームの候補を提示する際に用いられる。
【００４７】
また、各動作における各層のノードの遷移確率も求める。モーションデーＭ全体についての各層の各ノード間の遷移情報を上述の通り求めるが、この情報には各モーションデータMiの独立した情報は消えてしまっている。しかし、データベースの使用目的によっては動作毎における遷移情報が必要になり得る。そこで、図６に示すように、各モーションデータMiのノードの遷移確率を表現する。基本的な方法は、は上記と同様であるが、時系列であることを表現するためにleft-to-right型で表現する。各ノード間の遷移確率はノードを遷移した時点で更新し、自己遷移と他ノードへの遷移の確率の和が１になるように設定する。各層において各動作（各モーションデータ）のノード遷移確率のテーブルを保持する。
【００４８】
［Ｂ］モーションデータベースを用いた検索
［Ｂ−１］概要
複数のモーションデータから構築されたデータベースを用いて、与えられた１フレーム以上の運動データに最も良く対応する、すなわち与えられた運動データを生成する尤度が最大となるノード遷移系列を求める。この結果を用いて与えられた運動がデータベース中のどの動作に対応するかを認識することができる。また、最後のノードから次に遷移できるノードとその遷移確率がわかるので、次の動作を予測することができる。
【００４９】
検索においては、ノードＢｌ，ｉ内のフレームの平均μｌ，ｉ、共分散行列Σｌ，ｉを用いて、あるフレームにおける姿勢に対応する状態量ｘがＢｌ，ｉから生成される尤度
【数８】
2009145071.tif 000010
を用いる。状態量ｘとしては、姿勢から計算される仮想マーカ位置および速度を［Ａ−１］と同じ方法で正規化したものを用いる。すなわち、ある姿勢に対応するノードの検索において、姿勢における関節角データ（関節モデルが既知である）に基づいて、順運動学計算により仮想マーカの位置を求める。次いで、仮想マーカの位置を、座標系｛O´｝に変換し、かつスケーリングして得られた状態量を入力データとする。ただし、速度情報が得られない場合や一部の仮想マーカしか考慮しない場合には、Partial Observation（D.H. Lee and Y. Nakamura. Mimesis from partial observations. In Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 1911.1916, 2005.）と同様に、考慮しない成分については平均値をそのまま用いる。
【００５０】
［Ｂ−２］対応ノード候補
検索のキーとして入力された１フレーム以上からなる運動データの各フレームについて、対応する最下層ノードの候補を求める。このとき、データベースの階層構造を利用して上位階層から数８の尤度が高いものを辿っていくことで高速に候補を求めることができる。下位階層に移る際に尤度の低いノードを削除する方法として、一定の閾値で打ち切る方法、一定個数を残す方法、尤度が大きく低下するところで打ち切る方法などが考えられる。
【００５１】
以上の方法により、各フレームに対して１個以上の対応ノード候補を求め、それらを尤度の降順に並べておく。
【００５２】
［Ｂ−３］最適ノード遷移系列
複数のフレームが与えられている場合は、ノード間の遷移確率も考慮して最も尤度の高いノード遷移を探索する。ノード間遷移確率と対応ノード候補を用いて、与えられた運動を生成する尤度が最大となるノード遷移系列を求める。Ｋフレームからなる運動データＭ＝[ｘ１ｘ２・・・ｘＫ]をキーとして検索を行うことを考える。ノード遷移系列Ｂ＝[Ｂ１，Ｂ２，・・・，ＢＫ]が運動データＭを生成する尤度は次式で計算される。
【数９】
2009145071.tif 000011
ここでａｋ，ｋ＋１はノードＢｋからＢｋ＋１への遷移確率であり、ａＫ，Ｋ＋１＝１とする。
【００５３】
１つの実施態様では、これをコスト
【数１０】
2009145071.tif 000012
を最小化する探索問題とみなし、Dijkstra法（Steven M. LaValle. Planning Algorithms. Cambridge University Press, New York, NY, 2006.）を適用する。
【００５４】
［Ｂ−４］モーションデータベースを用いた探索の詳細説明
探索対象として、N個のキーフレームにおける状態量s1,s2,...,sNと、各キーフレームの時刻t1,t2,...,tNが与えられているものとする。探索の目的は、これらのキーフレームを最もよく表す、すなわち生成尤度が最大となるノード遷移系列を見つけることである。探索の方法として、以下のようなオプションがある。
【００５５】
[補間の有無]
(1)補間あり：与えられたキーフレームをあらかじめ補間し、補間後の各フレームにノードを対応させる方法。
(2)補間なし：キーフレームが与えられた時刻にそのキーフレームを通過するようなノード遷移系列を求める方法。
[動作の途中変更の有無]
(1)ノード遷移を同一の動作に限れば、動作の途中変更を許さない探索となる。
(2)動作の種類によらずすべての可能な遷移を考慮すれば、動作の途中変更を許す検索となる。
以上の組み合わせは自由であるので、4通りの検索があることになる。
【００５６】
本発明の探索法の１つの実施態様としてDijkstra(ダイキストラ)法を用いる。Dijkstra法は離散最適化法の一つで、コスト最小の候補から順に1ステップ後に可能な入力を数え上げて行く方法である。最終ステップがコスト最小となると最適な入力系列が求まることが保証されている。本手法では、入力としては可能な遷移のうちどれを選択するか、コストとしては生成尤度の逆数の対数を用いる。
【００５７】
［Ｂ−４−１］準備
キーフレームに対応する状態量si(i=1,2,...,N)に対し、データベース最下層のノードのうち対応する可能性のあるものの集合Ciを求める。これは一般に最上位層から尤度の高いノードをたどっていくことで高速に求められる。このとき、各層では生成尤度がある閾値より高いもののみを次の層で考慮することにしてもよいし、尤度の降順に並べて大きく変化するところで切ってもよい。
以下では、ノードniからnjへ遷移する確率をT(ni,nj)と表す。自分に遷移する確率、すなわちni=njである場合も含む。
【００５８】
［Ｂ−４−２］上位の探索
Ci(i =1,2,...,N)に含まれるノードを順にたどっていく最適な経路を探索する。
ノード遷移系列{n1 →n2 →... →nN}(ni∈Ci)に対する生成尤度Ｐは次式で計算される。
【数１１】
2009145071.tif 000013
ここでＴ（ハット）ｍ(ni,nj)はノードniからnjへｍステップで遷移する確率を表し、次節で述べる下位の探索により求める。またＭiはキーフレームsiとsi+1の間の時間間隔が学習させた動作データの何フレーム分に相当するかを表し、Ｍi=(ti+1−ti)/Δtで求められる。このPに対し、−logＰをコストするDijkstra法を適用する。
【００５９】
［Ｂ−４−３］下位の探索
Ｔ（ハット）ｍ(ni,nj)は、ｍステップでノードniからnjへ移動できる可能なノード遷移系列のうち、確率が最大となるものの確率と定義される。これは、遷移系列
【数１２】
2009145071.tif 000014
が発生する確率
【数１３】
2009145071.tif 000015
に対して−logＰをコストとするDijkstra法により得られる。
【００６０】
［Ｂ−４−４］各オプションへの対応
補間の有無：あらかじめ補間を行う場合は、補間後の全フレームをキーフレームとみなす。したがって下位の探索は常に1ステップとなるので非常に高速である。しかし、上位の探索のステップ数が増加するので、全体の探索時間の長短は一概には言えない。
動作の途中変更の有無：上位・下位の探索において、可能な遷移をリストアップする際に前のステップの遷移と同じ動作における遷移のみを考慮すれば、同一動作内での探索となり、二分木のある層において可能な遷移をすべて考慮すれば動作の途中変更を許す探索となる。
【００６１】
［Ｂ−５］例
図８Ａにデータベースにおける最下層ノード間で可能な遷移を図示した例を示す。上が動作の種類を考慮せずすべての可能な遷移と各遷移確率（T）を表したもの、下がデータベース構築に使われた3つの動作データにおける遷移を表したものである。動作内の遷移図では遷移確率および自分への遷移を表す矢印を省略した。以下では上の遷移図に基づく検索例を示す。
【００６２】
図８Ｂは検索システムへの入力の例である。ここでは3つのキーフレームs1,s2,s3が指定され、キーフレーム間の時間間隔はデータベースに含まれる動作データのそれぞれ2フレーム、3フレーム分に相当するものとする。
【００６３】
まず各キーフレームが対応する可能性のあるノードをリストアップする。その結果を尤度の高い順に並べたものが図８Ｂ下部のようになったとする。すなわち、C1={n1,n3}等である。ノードの横の数字は尤度を表す(確率ではないので1より大きくなることがある)。
【００６４】
キーフレームs1に対応する可能性のノードはn1,n3の2つあり、それぞれの尤度はP=3.0,0.1でありn1の方が尤度が高いので、コストは低くなる。そこでまずn1がs1に対応する場合を考える。
【００６５】
s2に対応する可能性があるのはn4とn1であるので、まずn1からn4へ2ステップで遷移することができるかどうかを探索する。その結果、以下の遷移が可能であることがわかる。
【数１４】
2009145071.tif 000016
遷移確率はそれぞれ0.2×0.1=0.02, 0.05×0.3=0.015 となる。これら両方を保持してもよいし、最適な遷移のみを残してもよい。ここでは簡単のため最適な遷移である前者のみを残すこととする。これとノードn4からキーフレームs2が生成される尤度を合わせた尤度は2.0×0.02=0.04 である。一方、n1 からn1へ2ステップで遷移する経路は以下の2種類である。
【数１５】
2009145071.tif 000017
遷移確率はそれぞれ0.7×0.7=0.49、0.2×0.3=0.06なので前者が最適な遷移となり、キーフレーム生成尤度を合わせた尤度は0.5×0.49=0.245 となる。以上からs1にn1が対応するとき、s2への遷移としては尤度の高い順にn1 → n1(P =0.245), n1 → n4(P =0.02)の2通りがあることになる。
【００６６】
s1 の生成尤度も考慮し，現時点での候補を尤度の降順に並べると以下のようになる。
【数１６】
2009145071.tif 000018
Dijkstra 法では常にコストの最も低い(この例では尤度が最も高い)ものから考慮するので、次にs1:n1→s2:n1と遷移してきたものを考える。
【００６７】
s3 に対応する可能性があるのはn2,n5である。まずn1 からn2 へ3 ステップで遷移する方法を探索すると、以下のような結果が得られる。
【数１７】
2009145071.tif 000019
このうち遷移確率が最大のものを採用する。n1 からn5 へ3 ステップで遷移する方法とその確率も同様に探索する。これらによって得られた候補を加えて尤度の降順に並べ、同様に尤度が最大のものから考えていく。Dijkstra法の性質により、すでにs3 まで到達した候補が選ばれた時点で尤度最大となる最適な遷移系列が見つかったことになるので、探索は終了する。
【００６８】
［Ｃ］キーフレーム生成支援ツールへの応用
［Ｃ−１］背景
提案したデータベースの応用例として、キャラクタアニメーションにおけるキーフレーム生成支援ツールとしての実装を示す。一般にキャラクタアニメーションにおけるキーフレームは逆運動学計算などを用いてアニメータによる手作業で生成されることが多いが、熟練したアニメータでも時間を要する作業である。
【００６９】
そこで、少数のポーズを作成すれば、それをキーとした検索により次ポーズ候補が提示され、それらの中から最も適切なものを選択していくことで容易に多数のキーフレームを生成できるアプリケーションを実装した。次ポーズ候補は、前節の検索により得られた遷移系列における最後のノードから遷移可能なノードを求め、各ノードの平均値から得られたマーカ位置を用いて逆運動学計算を行うことで可能である。
【００７０】
［Ｃ−２］データベース構築
２００ｆｐｓで取得した「走る、歩く、跳ぶなど」１０種類のモーションキャプチャデータを用いた。各フレームにおいて逆運動学計算を行った後、アニメーションにおいて通常用いられる３０ｆｐｓや２４ｆｐｓへの変換を容易にするために１２０ｆｐｓでリサンプリングした結果、フレーム数の合計は３４８０となった。また、マーカ数Ｎｍ＝３４の仮想マーカセット（図７参照）を用いた。Ward法によるクラスタリングを行う最大サンプル数をＮc＝２００、各ノードの最小サンプル数を２４としたとき、ファイルの読み込み、逆運動学、順運動学、データベース構築に要した時間の合計は１１９０秒であった。なお、全階層で単純なノード分割を行った場合は２６０秒となる。
【００７１】
［Ｃ−３］結果
単一フレームをキーとして、検索した結果から得られた次ポーズ候補のうち上位８個を提示した例を図９に示す。中央に表示されたキャラクタが入力した姿勢であり、その下に次ポーズ候補が左から尤度の降順に並んでいる。入力によりそれぞれ妥当な検索結果が得られていることがわかる。また、入力した運動データのフレーム数と検索及び逆運動学計算に要した時間および得られた候補数を表１に示す。
【表１】
2009145071.tif 000020
なお、逆運動学計算には、「山根克, 中村仁彦. ヒューマンフィギュアの全身運動生成のための協応構造化インターフェイス. 日本ロボット学会誌, Vol. 20, No. 3, pp. 335.343, 2002.」の方法を使い、収束計算を１０回繰り返した。候補１個につき３４×３＝１０２個の拘束条件を考慮しなければならない逆運動学計算に比べ、検索に要する時間は短い。
【００７２】
［Ｄ］運動データの追加登録
モーションデータ初期登録の方法を述べたが、データベースをより汎用にするためにはモーションデータのデータベースの追加機能が必要である。運動データの追加登録の１つの態様について説明する。ここで述べる態様では、バックアップデータを用いてノードを再構成する。バックアップデータベースとは、モーションデータベースの構築に用いたモーションデータの全てのフレーム、ならびに構築されたモーションデータベースの各情報を記録する場所である。
【００７３】
図１０に示すように、まずモーションデータのモーションデータベースへの初期登録を行う（ステップ１）。
初期登録が完了したすべてフレームとツリーの構成及び各ノードの平均と共分散行をバックアップデータベースに保存する（ステップ２）。
次にモーションデータベースを用いるときにはバックアップデータベースからノードの平均と共分散行列を読み込み、モーションデータベースの再構成を行う（ステップ３）。
モーションデータを追加登録する際は各ノードに所属するフレームの情報をバックアップデータベースから取得し、追加されたデータを加味してノードの平均と共分散行列ならびにノードが保持するフレームのインデックスを更新する（ステップ４）。
更新が完了したら再びバックアップデータベースに各ノードの平均と共分散行列ならびにノードが保持するフレームを更新登録し、以下からを繰り返すことで、モーションデータベースを再構成できる。
【００７４】
ノードの更新方法の１つの態様について説明する。あるノードにおいて追加登録前のノードBl,i内のフレーム数がn，平均がμl,i、共分散行列がΣl,iとする。このノードにあるフレームｘn+1が入ってきた時、平均と共分散行列は以下の通りである。
【数１８】
2009145071.tif 000021
これにより逐次的にノードの平均と共分散行列を更新していく。ここで追加したあるフレームに割り振られるかは、数８に示す式で計算される尤度によって決定される（図１１の（A））。
【００７５】
最上位ノードから子ノードの中でｘn+1と各層において尤度最大のノードに追加していく。また新規登録の時と同様にノード内のフレーム数が閾値を超えた場合は２つの子ノードに分割する（図１１の（B））。これにより枝によって深さが異なるツリーとなる場合は深さ最大の枝に合うよう単一の子ノードを追加していく（図１１の（C））。
【産業上の利用可能性】
【００７６】
本発明は、コンピュータグラフィックスのみならず、スポーツ科学、リハビリテーション、医療分野等の様々な分野においても利用可能である。
【図面の簡単な説明】
【００７７】
【図１】モーションデータをモーションデータベースに登録するまでの概要を示す。図中、IKは逆運動学計算、FKは順運動学計算を示す。
【図２】順運動学計算により取得した仮想マーカセットの位置の、骨格モデルのルートリンクを基準とする座標系への変換を示す。
【図３】図２で得られた仮想マーカセットの位置のスケーリングを示す。
【図４】二分木構造の概要を示す。二分木の各ノードの深さを本発明では層と呼び、最上位層が第１層とする。第l層におけるノード数は2l-1である。モーションデータの集合Ｍの各フレームデータ（状態量×）は、二分木の各層のいずれか一つのノードに含まれる。
【図５】各階層（第ｌ層）を構成する複数のノード間の遷移確率の算出を説明する図である。
【図６】各運動データ毎における、各階層を構成する複数のノード間の遷移確率の算出を説明する図である。
【図７】仮想マーカセットを示す図である。
【図８Ａ】最下層ノードの遷移図を示す。
【図８Ｂ】検索への入力例を示す。
【図９】実験結果を表示する。
【図１０】モーションデータの追加登録の全体の流れを示す。
【図１１】二分木構造におけるモーションデータの追加登録を示す。
【図８Ａ】
2009145071.tif 000022
【図８Ｂ】
2009145071.tif 000023
【図１】
2009145071.tif 000024
【図２】
2009145071.tif 000025
【図３】
2009145071.tif 000026
【図４】
2009145071.tif 000027
【図５】
2009145071.tif 000028
【図６】
2009145071.tif 000029
【図７】
2009145071.tif 000030
【図９】
2009145071.tif 000031
【図１０】
2009145071.tif 000032
【図１１】
2009145071.tif 000033
【国際調査報告】
2009145071.tif 000034
2009145071.tif 000035
2009145071.tif 000036