(57)【要約】【課題】複数の動きデータに対して同じセグメント数で各動きデータをセグメントに分割し、該動きデータ間で各セグメントの対応関係を求めることを図る。【解決手段】複数の動きデータの各々の定義の差を吸収する処理を行う動きデータ前処理部１２と、前記複数の動きデータに対する共通セグメント数を決定するセグメント数決定部１６と、前記共通セグメント数とは異なるセグメント数の第１の前記動きデータと、前記共通セグメント数と同じセグメント数の第２の前記動きデータとの対応関係を算出し、該算出された対応関係に基づいて、前記第１の動きデータのセグメント数が前記共通セグメント数になるように、前記第１の動きデータのセグメント境界を修正するセグメント修正部１７と、を備える。【選択図】図１
2014215678.tif 000002
【特許請求の範囲】
【請求項１】
複数の動きデータに対してセグメントを決める動きデータセグメント決定装置において、
前記複数の動きデータの各々の定義の差を吸収する処理を行う動きデータ前処理部と、
前記複数の動きデータに対する共通セグメント数を決定するセグメント数決定部と、
前記共通セグメント数とは異なるセグメント数の第１の前記動きデータと、前記共通セグメント数と同じセグメント数の第２の前記動きデータとの対応関係を算出し、該算出された対応関係に基づいて、前記第１の動きデータのセグメント数が前記共通セグメント数になるように、前記第１の動きデータのセグメント境界を修正するセグメント修正部と、
を備えたことを特徴とする動きデータセグメント決定装置。
【請求項２】
前記動きデータはスケルトン型の動きデータであり、
前記動きデータ前処理部は、前記複数の動きデータに対して、ルートの高さを標準高に合わせる正規化処理と、処理対象のジョイントを共通にする処理とを行う、
ことを特徴とする請求項１に記載の動きデータセグメント決定装置。
【請求項３】
前記動きデータは人体のスケルトン型の動きデータであり、
前記処理対象のジョイントは、ルート、両手、両足および頭のみに限定される、
ことを特徴とする請求項２に記載の動きデータセグメント決定装置。
【請求項４】
前記セグメント数決定部は、前記複数の動きデータの各々のセグメント数を用いた投票に基づいて、前記複数の動きデータに対する共通セグメント数を決定する、
ことを特徴とする請求項１から３のいずれか１項に記載の動きデータセグメント決定装置。
【請求項５】
前記セグメント修正部は、複数の前記第２の動きデータに関する平均の動きデータと、前記第１の動きデータとの対応関係を算出し、該算出された対応関係に基づいて前記第１の動きデータのセグメント境界の修正を行う、
ことを特徴とする請求項１から４のいずれか１項に記載の動きデータセグメント決定装置。
【請求項６】
前記動きデータの隣り合うセグメント境界候補についての時間的距離と空間的距離を用いて、各セグメント境界候補の信頼度を算出するセグメント候補抽出部と、
前記セグメント境界候補の信頼度に基づいて前記動きデータのセグメントを生成するセグメント推定部と、
を備えたことを特徴とする請求項１から５のいずれか１項に記載の動きデータセグメント決定装置。
【請求項７】
前記セグメント境界候補の信頼度は、時間的距離または空間的距離が大きいほど、信頼度が高いことを特徴とする請求項６に記載の動きデータセグメント決定装置。
【請求項８】
前記信頼度が低いセグメント境界候補を削除し、隣接するセグメント境界候補を直線で繋いだ波形の極値がセグメント境界であることを特徴とする請求項６又は７に記載の動きデータセグメント決定装置。
【請求項９】
複数の動きデータに対してセグメントを決める動きデータセグメント決定装置の動きデータセグメント決定方法であって、
動きデータ前処理部が、前記複数の動きデータの各々の定義の差を吸収する処理を行うステップと、
セグメント数決定部が、前記複数の動きデータに対する共通セグメント数を決定するステップと、
セグメント修正部が、前記共通セグメント数とは異なるセグメント数の第１の前記動きデータと、前記共通セグメント数と同じセグメント数の第２の前記動きデータとの対応関係を算出し、該算出された対応関係に基づいて、前記第１の動きデータのセグメント数が前記共通セグメント数になるように、前記第１の動きデータのセグメント境界を修正するステップと、
を含むことを特徴とする動きデータセグメント決定方法。
【請求項１０】
複数の動きデータに対してセグメントを決める動きデータセグメント決定処理を行うためのコンピュータプログラムであって、
前記複数の動きデータの各々の定義の差を吸収する処理を行う動きデータ前処理ステップと、
前記複数の動きデータに対する共通セグメント数を決定するセグメント数決定ステップと、
前記共通セグメント数とは異なるセグメント数の第１の前記動きデータと、前記共通セグメント数と同じセグメント数の第２の前記動きデータとの対応関係を算出し、該算出された対応関係に基づいて、前記第１の動きデータのセグメント数が前記共通セグメント数になるように、前記第１の動きデータのセグメント境界を修正するセグメント修正ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きデータセグメント決定装置、動きデータセグメント決定方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、スマートフォンやタブレットＰＣなどの携帯端末において、キャラクタアニメーションを用いたユーザーインタフェースが利用されている。そのキャラクタアニメーションを生成するためにモーションキャプチャデータを利用することが増えてきているために、モーションキャプチャデータの解析の重要性が高まっている。
【０００３】
従来、例えば非特許文献１に、一つのモーションキャプチャデータを複数の部分（セグメント）に分割するモーションセグメント技術が開示されている。非特許文献１のモーションセグメント技術では、高次元のモーションキャプチャデータを低次元の主成分空間に変換する際に、モーションキャプチャデータの観測区間長を逐次延長しながら、主成分空間の上位Ｋ個の成分だけを用いてモーションキャプチャデータ空間に戻したときの再建エラーを観測し、再建エラーが急激に増大する観測区間長でセグメントの分割を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５７０６１号公報
【非特許文献】
【０００５】
【非特許文献１】Barbic, Jernej, Alla Safonova, Jia-Yu Pan, Christos Faloutsos, Jessica K. Hodgins, and Nancy S. Pollard. "Segmenting motion capture data into distinct behaviors." In Proceedings of Graphics Interface 2004, pp. 185-194. Canadian Human-Computer Communications Society, 2004.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述した従来のモーションセグメント技術では、複数のモーションキャプチャデータに適用すると、全てのモーションキャプチャデータ間で同じセグメント数になるとは限らない。さらに、複数のモーションキャプチャデータがそれぞれ異なるセグメント数で分割されている場合、モーションキャプチャデータ間で対応関係にあるセグメントを見つけることは困難である。
【０００７】
このため、以下に示すような適用例において、モーションセグメント技術の向上が要望されている。
【０００８】
近年、モーションキャプチャデータを利用して様々な動作を表現する際に、同種の動きであってもニュアンスの異なる動き間で対応関係を求めることにより、あらたなニュアンスの表現を導く研究が進められている。例えば、感情のないニュートラルな歩行動作の１０歩と、嬉しそうに歩く歩行動作の１０歩との対応関係を学習させ、該学習させた対応関係に基づいて、任意のニュートラルな歩行動作を用いて嬉しそうな歩行動作を導くことが挙げられる。このとき、複数のモーションキャプチャデータに対して同じセグメント数で各モーションキャプチャデータをセグメントに分割し、モーションキャプチャデータ間で各セグメントの対応関係を求める必要がある。例えば、ニュートラルな歩行動作の第１のセグメントが嬉しそうな歩行動作のどのセグメントと対応関係にあるのかを求める。しかしながら、上述した従来のモーションセグメント技術では、複数のモーションキャプチャデータに対して同じセグメント数で各モーションキャプチャデータをセグメントに分割し、該モーションキャプチャデータ間で各セグメントの対応関係を求めることが難しいという課題がある。
【０００９】
本発明は、このような事情を考慮してなされたもので、複数の動きデータに対して同じセグメント数で各動きデータをセグメントに分割し、該動きデータ間で各セグメントの対応関係を求めることができる動きデータセグメント決定装置、動きデータセグメント決定方法およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明に係る動きデータセグメント決定装置は、複数の動きデータに対してセグメントを決める動きデータセグメント決定装置において、前記複数の動きデータの各々の定義の差を吸収する処理を行う動きデータ前処理部と、前記複数の動きデータに対する共通セグメント数を決定するセグメント数決定部と、前記共通セグメント数とは異なるセグメント数の第１の前記動きデータと、前記共通セグメント数と同じセグメント数の第２の前記動きデータとの対応関係を算出し、該算出された対応関係に基づいて、前記第１の動きデータのセグメント数が前記共通セグメント数になるように、前記第１の動きデータのセグメント境界を修正するセグメント修正部と、を備えたことを特徴とする。
【００１１】
本発明に係る動きデータセグメント決定装置においては、前記動きデータはスケルトン型の動きデータであり、前記動きデータ前処理部は、前記複数の動きデータに対して、ルートの高さを標準高に合わせる正規化処理と、処理対象のジョイントを共通にする処理とを行う、ことを特徴とする。
【００１２】
本発明に係る動きデータセグメント決定装置においては、前記動きデータは人体のスケルトン型の動きデータであり、前記処理対象のジョイントは、ルート、両手、両足および頭のみに限定される、ことを特徴とする。
【００１３】
本発明に係る動きデータセグメント決定装置においては、前記セグメント数決定部は、前記複数の動きデータの各々のセグメント数を用いた投票に基づいて、前記複数の動きデータに対する共通セグメント数を決定する、ことを特徴とする。
【００１４】
本発明に係る動きデータセグメント決定装置においては、前記セグメント修正部は、複数の前記第２の動きデータに関する平均の動きデータと、前記第１の動きデータとの対応関係を算出し、該算出された対応関係に基づいて前記第１の動きデータのセグメント境界の修正を行う、ことを特徴とする。
【００１５】
本発明に係る動きデータセグメント決定装置においては、前記動きデータの隣り合うセグメント境界候補についての時間的距離と空間的距離を用いて、各セグメント境界候補の信頼度を算出するセグメント候補抽出部と、前記セグメント境界候補の信頼度に基づいて前記動きデータのセグメントを生成するセグメント推定部と、を備えたことを特徴とする。
【００１６】
本発明に係る動きデータセグメント決定装置においては、前記セグメント境界候補の信頼度は、時間的距離または空間的距離が大きいほど、信頼度が高いことを特徴とする。
【００１７】
本発明に係る動きデータセグメント決定装置においては、前記信頼度が低いセグメント境界候補を削除し、隣接するセグメント境界候補を直線で繋いだ波形の極値がセグメント境界であることを特徴とする。
【００１８】
本発明に係る動きデータセグメント決定方法は、複数の動きデータに対してセグメントを決める動きデータセグメント決定装置の動きデータセグメント決定方法であって、動きデータ前処理部が、前記複数の動きデータの各々の定義の差を吸収する処理を行うステップと、セグメント数決定部が、前記複数の動きデータに対する共通セグメント数を決定するステップと、セグメント修正部が、前記共通セグメント数とは異なるセグメント数の第１の前記動きデータと、前記共通セグメント数と同じセグメント数の第２の前記動きデータとの対応関係を算出し、該算出された対応関係に基づいて、前記第１の動きデータのセグメント数が前記共通セグメント数になるように、前記第１の動きデータのセグメント境界を修正するステップと、を含むことを特徴とする。
【００１９】
本発明に係るコンピュータプログラムは、複数の動きデータに対してセグメントを決める動きデータセグメント決定処理を行うためのコンピュータプログラムであって、前記複数の動きデータの各々の定義の差を吸収する処理を行う動きデータ前処理ステップと、前記複数の動きデータに対する共通セグメント数を決定するセグメント数決定ステップと、前記共通セグメント数とは異なるセグメント数の第１の前記動きデータと、前記共通セグメント数と同じセグメント数の第２の前記動きデータとの対応関係を算出し、該算出された対応関係に基づいて、前記第１の動きデータのセグメント数が前記共通セグメント数になるように、前記第１の動きデータのセグメント境界を修正するセグメント修正ステップと、をコンピュータに実行させるためのコンピュータプログラムであることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、複数の動きデータに対して同じセグメント数で各動きデータをセグメントに分割し、該動きデータ間で各セグメントの対応関係を求めることができる。これにより、例えば、モーションキャプチャデータを利用して様々な動作を表現する際に、同種の動きであってもニュアンスの異なる動き間で対応関係を求めることに寄与できる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係る動きデータセグメント決定装置１の構成を示すブロック図である。
【図２】人体のスケルトン動きデータの定義例の概略図である。
【図３】本発明の一実施形態に係る動きデータセグメント決定処理を説明するためのグラフ図である。
【図４】ＤＴＷ法によるシーケンスＸ，Ｙ間の対応関係の算出の概念図である。
【図５】本発明の一実施形態に係る動きデータセグメント決定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、本発明の一実施形態に係る動きデータセグメント決定装置１の構成を示すブロック図である。図１において、動きデータセグメント決定装置１は、入力部１１と動きデータ前処理部１２とセグメント候補抽出部１３とセグメント推定部１４と記憶部１５とセグメント数決定部１６とセグメント修正部１７と出力部１８を備える。各部１１〜１８はデータを送受できるように接続されている。
【００２３】
動きデータセグメント決定装置１は、複数の動きデータに対して同じセグメント数で各動きデータをセグメントに分割し、該動きデータ間で各セグメントの対応関係を求める。本実施形態では、動きデータとしてスケルトン型の動きデータ（以下、スケルトン動きデータと称する）を利用する。
【００２４】
図２は、人体のスケルトン動きデータの定義例の概略図である。人体のスケルトン動きデータは、人の骨格を基に、骨及び骨の連結点（ジョイント）を用い、一ジョイントを根（ルート）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）構造として定義される。図２には、スケルトン動きデータの定義の一部分のみを示している。図２において、ジョイント１００は腰の部分であり、ルートとして定義される。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分、ジョイント１０９は鎖骨の部分、ジョイント１１０、１１１は肩の部分、ジョイント１１２は頭の部分、ジョイント１１３、１１４は股関節の部分、である。
【００２５】
スケルトン動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン動きデータは、例えばモーションキャプチャデータに基づいて生成される。
【００２６】
人体のスケルトン動きデータは、人（スケルトン型対象物）の一連の動きを複数の姿勢（ポーズ）の連続により表すものである。一つのポーズは、一つのフレームに対応し、全ての関節（ジョイント）の位置情報を記録する。一つのフレームｘ（ｔ）は、式（１）で表される。
【００２７】
【数１】
2014215678.tif 000003
【００２８】
但し、pｋ（ｔ）は、時刻ｔにおけるｋ番目のジョイントの位置であり、３次元座標で表される。時刻ｔはフレームの時刻である。Ｋはジョイントの数である。したがって、ｘ（ｔ）は３Ｋ次元のベクトルである。
【００２９】
Ｔ個のフレームからなるスケルトン動きデータＸは、式（２）で表される。
【００３０】
【数２】
2014215678.tif 000004
【００３１】
Ｘは３Ｋ×Ｔの行列である。本実施形態では、時刻ｔを単に「フレームインデックス」として扱う。これにより、時刻ｔは、「０，１，２，・・・，Ｔ−１」の値をとる。Ｔは、スケルトン動きデータに含まれるフレームの個数である。
【００３２】
また、他のフレームの定義例として、基本ポーズからの移動量をジョイント毎に表すことも可能である。一フレームは、基本ポーズに対して各ジョイントの移動量が加味された一ポーズを特定する。これにより、各フレームによって特定される各ポーズの連続により、人の一連の動きが特定される。
【００３３】
この場合、移動量として角度情報を利用する。そして、角度情報データ内の基本ポーズデータとフレームデータを用いて、ジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量を表す角度情報を有する。時刻ｔにおけるｋ番目のジョイントの位置pｋ（ｔ）は、式（３）および式（４）により算出される。
【００３４】
【数３】
2014215678.tif 000005
【００３５】
【数４】
2014215678.tif 000006
【００３６】
但し、０番目（ｉ＝０）のジョイントはルートである。Ｒａｘｉｓｉ−１，ｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント（「ｉ−１」番目のジョイント）間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ｒｉ（ｔ）は、ｉ番目のジョイントのローカル座標系におけるｉ番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ｔｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、ｉ番目のジョイントとその親ジョイント間の骨の長さを表す。
【００３７】
以上がスケルトン動きデータの説明である。説明を図１に戻す。以下の説明では、人体のスケルトン動きデータ（以下、単にスケルトン動きデータと称する）を利用する。また、フレームの定義として、基本ポーズからの移動量をジョイント毎に角度情報で表すものを利用する。
【００３８】
［入力部］
入力部１１は、動きデータセグメント決定処理の対象となるスケルトン動きデータを入力する。入力されたスケルトン動きデータは、記憶部１５に格納される。動きデータセグメント決定処理対象のスケルトン動きデータは、複数が入力される。
【００３９】
［動きデータ前処理部］
動きデータ前処理部１２は、記憶部１５に格納された動きデータセグメント決定処理対象のスケルトン動きデータ毎に、所定の事前処理を行う。以下、動きデータ前処理部１２が一つのスケルトン動きデータに対して行う事前処理を説明する。
【００４０】
動きデータ前処理部１２は、スケルトン動きデータに対してルートの高さを標準高に合わせる正規化処理を行う。図２に示されるスケルトン動きデータの定義例において、標準モデルは各骨の長さが一定であるとする。スケルトン動きデータにおいてルート以外のジョイントは角度で表されるので、身長の影響がない。しかし、ルートの位置は個人差があり、標準モデルに適用する場合には正規化が必要である。そこで、男女別にルートの標準高を予め定める。例えば、男性が８５ｃｍ、女性が８２ｃｍと設定する。動きデータ前処理部１２は、基本ポーズを用いてルートの高さと標準高との倍率λを算出し、スケルトン動きデータのルートの位置p０（ｔ）を式（５）によりp〜０（ｔ）調整する。
【００４１】
【数５】
2014215678.tif 000007
【００４２】
また、動きデータ前処理部１２は、スケルトン動きデータに対して処理対象のジョイントを限定する処理を行う。スケルトン動きデータによって、骨構造が異なる場合がある。そこで、本実施形態では、一般に共通であり且つ人の動きを反映できるジョイントとして「ルート、両手、両足、頭」のみを処理対象のジョイントに設定する。図２のスケルトン動きデータの定義例では、処理対象のジョイントは、ジョイント１００、１０２、１０４、１０６、１０８、１１２のみに限定される。これにより、動きデータセグメント決定処理対象の全スケルトン動きデータにおいて処理対象のジョイントを共通にする。
【００４３】
動きデータ前処理部１２は、事前処理後のスケルトン動きデータを記憶部１５に格納する。
【００４４】
［セグメント候補抽出部］
セグメント候補抽出部１３は、記憶部１５に格納された、動きデータ前処理部１２の事前処理後のスケルトン動きデータ毎に、セグメント境界候補を抽出する所定のセグメント候補抽出処理を行う。以下、セグメント候補抽出部１３が一つのスケルトン動きデータに対して行う処理を説明する。
【００４５】
セグメント候補抽出部１３は、スケルトン動きデータが示す動きの速度についての極値を求める。時刻ｔにおける動きの速度ｖ（ｔ）は、式（６）により算出される。式（６）では、全ての処理対象のジョイントについての平均速度を算出する。
【００４６】
【数６】
2014215678.tif 000008
【００４７】
次いで、セグメント候補抽出部１３は、動きの速度ｖ（ｔ）に対して平滑化フィルタを掛ける。これにより、ノイズの影響を低減する。平滑化フィルタとしては、例えば、ガウシアンフィルタやメジアン（median）フィルタなどが利用可能である。
【００４８】
次いで、セグメント候補抽出部１３は、平滑化フィルタによる処理後の動きの速度ｖ〜（ｔ）から、極値（極大値と極小値）を算出する。この算出された極値は｛ｔ*（ｉ）、ｖ*（ｉ）｝で表される。ｔ*（ｉ）はｉ番目の極値の時刻である。ｖ*（ｉ）はｉ番目の極値の速度である。極値の時刻ｔ*（ｉ）はセグメント候補として設定される。
【００４９】
次いで、セグメント候補抽出部１３は、式（７）により、ｉ番目の極値（セグメント候補）の信頼度ｆ（ｉ）を算出する。
【００５０】
【数７】
2014215678.tif 000009
【００５１】
但し、αおよびβは所定の係数であり、任意に設定可能とする。
【００５２】
式（７）では、ｉ番目の極値に対して、隣の極値との間の時間的距離および空間的距離を算出し、算出した時間的距離および空間的距離を用いて信頼度を算出する。空間的距離は、速度から算出される。式（７）の信頼度によれば、時間的距離が大きいほど、又、空間的距離が大きいほど、信頼度が高くなる。
【００５３】
セグメント候補抽出部１３は、セグメント候補の情報「｛ｔ*（ｉ）、ｖ*（ｉ）｝および信頼度ｆ（ｉ）」を記憶部１５に格納する。
【００５４】
なお、特許文献１に開示されるように、主成分空間に変換し、特定の主成分座標または該特定の主成分座標の微分を動きの速度の代わりに使用して極値を求め、求めた極値をセグメント候補としてもよい。
【００５５】
［セグメント推定部］
セグメント推定部１４は、記憶部１５に格納されたセグメント候補の情報「｛ｔ*（ｉ）、ｖ*（ｉ）｝および信頼度ｆ（ｉ）」を用いて、スケルトン動きデータ毎に、所定のセグメント推定処理を行う。以下、セグメント推定部１４が一つのスケルトン動きデータに対して行う処理を説明する。
【００５６】
セグメント推定部１４は、閾値判定により信頼度が低いセグメント候補を削除する。これにより、「ｆ（ｉ）＜ＴＨ」を満足するセグメント候補が削除される。ＴＨは所定の閾値であり、任意に設定可能とする。
【００５７】
次いで、セグメント推定部１４は、時刻ｔ*（ｉ）に従ってセグメント候補の速度ｖ*（ｉ）間を直線で繋げたときの極小値｛ｓ*（ｉ）、ｖｓ*（ｉ）｝を算出する。ｓ*（ｉ）はｉ番目の極小値の時刻である。ｖｓ*（ｉ）はｉ番目の極小値の速度である。極小値の時刻ｓ*（ｉ）はセグメント間を分割する時刻（セグメント分割時刻）として設定される。
【００５８】
セグメント推定部１４は、セグメント分割時刻ｓ*（ｉ）を記憶部１５に格納する。
【００５９】
なお、上記した実施例では、極小値をセグメント間の分割点に利用したが、極大値をセグメント間の分割点に利用してもよい。又は、極小値および極大値の両方をセグメント間の分割点に利用してもよい。但し、一般的に動きの速度が落ちた時をセグメント間の分割点にする方が好ましいので、極小値をセグメント間の分割点に利用することが好ましい。
【００６０】
［セグメント数決定部］
セグメント数決定部１６は、動きデータセグメント決定処理対象である複数のスケルトン動きデータに対して、記憶部１５に格納された各スケルトン動きデータのセグメント分割時刻ｓ*（ｉ）を用いて、共通のセグメント数（共通セグメント数）を決定する。以下、このセグメント数決定処理を説明する。
【００６１】
セグメント数決定部１６は、複数（Ｎ個）のスケルトン動きデータを対象にして、各スケルトン動きデータのセグメント数の投票を行う。ｊ番目のスケルトン動きデータのセグメント分割時刻の個数をＪとすると、ｊ番目のスケルトン動きデータのセグメント分割時刻の集合は｛ｓ*（ｉ）；ｉ＝１，２，・・・Ｉ（Ｊ）｝である。そして、ｊ番目のスケルトン動きデータのセグメント数Ｉ（ｊ）はＩ（Ｊ）である。これにより、Ｎ個のスケルトン動きデータでのセグメント数｛Ｉ（１），Ｉ（２），・・・Ｉ（Ｎ）｝の投票によって、最大得票数のセグメント数を共通セグメント数に決定する。
【００６２】
図３は、本実施形態に係る動きデータセグメント決定処理を説明するためのグラフ図である。図３のグラフ図には、説明の便宜上、５個（Ｎ＝５）のスケルトン動きデータについて、各セグメント候補の速度ｖ*（ｉ）間を直線で繋いだ各波形Ｗ１，Ｗ２，Ｗ３，Ｗ４，Ｗ５を各区間１０１，１０２，１０３，１０４，１０５に示している。各波形Ｗ１，Ｗ２，Ｗ３，Ｗ４，Ｗ５の極小値がセグメント分割時刻に対応する。１番目のスケルトン動きデータでは、波形Ｗ１の３個の極小値１１１，１１２，１１３がセグメント分割時刻に対応する。２番目のスケルトン動きデータでは、波形Ｗ２の３個の極小値１２１，１２２，１２３がセグメント分割時刻に対応する。３番目のスケルトン動きデータでは、波形Ｗ３の４個の極小値１３１，１３２，１３３，１３４がセグメント分割時刻に対応する。４番目のスケルトン動きデータでは、波形Ｗ４の３個の極小値１４１，１４２，１４３がセグメント分割時刻に対応する。５番目のスケルトン動きデータでは、波形Ｗ５の２個の極小値１５１，１５２がセグメント分割時刻に対応する。
【００６３】
上記図３の例では、５（Ｎ＝５）のスケルトン動きデータのセグメント数「｛Ｉ（１），Ｉ（２），Ｉ（３），Ｉ（４），Ｉ（５）｝＝｛３，３，４，３，２｝」を対象にした投票によって、最大得票数「３」であるセグメント数「３」が共通セグメント数に決定される。
【００６４】
次いで、セグメント数決定部１６は、Ｎ個のスケルトン動きデータのうち、共通セグメント数に一致するセグメント数のスケルトン動きデータに対して１からＭまでのインデックスをそれぞれ付与する。一方、セグメント数決定部１６は、Ｎ個のスケルトン動きデータのうち、共通セグメント数に不一致するセグメント数のスケルトン動きデータに対して「Ｍ＋１」からＮまでのインデックスをそれぞれ付与する。
【００６５】
例えば、図３の例では、共通セグメント数「３」に一致するセグメント数に該当する１番目と２番目と４番目のスケルトン動きデータに対して、１番目のスケルトン動きデータにインデックス「１」を、２番目のスケルトン動きデータにインデックス「２」を、４番目のスケルトン動きデータにインデックス「３」をそれぞれ付与する。そして、共通セグメント数「３」に不一致するセグメント数に該当する３番目と５番目のスケルトン動きデータに対して、３番目のスケルトン動きデータにインデックス「４」を、５番目のスケルトン動きデータにインデックス「５」をそれぞれ付与する。
【００６６】
次いで、セグメント数決定部１６は、共通セグメント数に一致するセグメント数のＭ個のスケルトン動きデータに対して、各スケルトン動きデータ間で、セグメント分割時刻の順番で、一対一のセグメントの対応関係を設定する。ｍ番目のスケルトン動きデータとｎ番目のスケルトン動きデータがいずれも共通セグメント数「Ｉ」個のセグメントに分割されている場合には、式（８）の対応関係が設定される。
【００６７】
【数８】
2014215678.tif 000010
【００６８】
但し、ｓｍ（ｉ）はｍ番目のスケルトン動きデータのｉ番目のセグメント分割時刻である。ｓｎ（ｉ）はｎ番目のスケルトン動きデータのｉ番目のセグメント分割時刻である。
【００６９】
セグメント数決定部１６は、共通セグメント数に関する情報「共通セグメント数、各スケルトン動きデータのインデックスの情報、共通セグメント数に一致するセグメント数のＭ個のスケルトン動きデータについてのセグメントの対応関係の情報」を記憶部１５に格納する。
【００７０】
［セグメント修正部］
セグメント修正部１７は、動きデータセグメント決定処理対象である複数のスケルトン動きデータのうち、共通セグメント数に不一致するセグメント数のスケルトン動きデータに対して、記憶部１５に格納された共通セグメント数に関する情報を用いて、セグメント数が共通セグメント数になるように、セグメント境界を修正するセグメント修正処理を行う。以下、このセグメント修正処理を説明する。
【００７１】
セグメント修正部１７は、共通セグメント数に一致するセグメント数のＭ個のスケルトン動きデータについての平均の動きデータを算出する。本実施形態では、平均の動きデータとして、近似動きの平均（近似動き平均）を算出する。近似動きは、図３に例示されるような、速度の波形である。セグメント修正部１７は、近似動き平均を算出するために、共通セグメント数に一致するセグメント数のＭ個のスケルトン動きデータについてのセグメントの対応関係に基づいて、それぞれ対応関係にあるセグメント間で速度の極値を式（９）により平均する。近似動き平均は、式（９）により算出された平均値間を時刻順に直線で繋げた波形である。
【００７２】
【数９】
2014215678.tif 000011
【００７３】
但し、ｎは、共通セグメント数に一致するセグメント数のスケルトン動きデータのインデックスである。ｓｎ（ｉ）はｉ番目の極値の値である。ｔｎ（ｉ）はｉ番目の極値の時刻である。
【００７４】
次いで、セグメント修正部１７は、共通セグメント数に不一致するセグメント数のスケルトン動きデータ（不一致スケルトン動きデータ）に対して、セグメント数が共通セグメント数になるように、近似動き平均に基づいてセグメント境界を修正する。
【００７５】
まず、セグメント修正部１７は、不一致スケルトン動きデータの近似動きと、近似似動き平均との対応関係を算出する。この対応関係の算出には、「Dynamic time warping；ＤＴＷ」法を利用可能である。図４は、ＤＴＷ法によるシーケンスＸ，Ｙ間の対応関係の算出の概念図である。ＤＴＷ法では、時間軸を調節してシーケンスＸ，Ｙ間の類似点を検出する。次いで、セグメント修正部１７は、不一致スケルトン動きデータの近似動きにおいて、近似似動き平均のセグメント分割点と対応関係にある点のみを、当該不一致スケルトン動きデータのセグメント分割点に設定する。
【００７６】
これにより、不一致スケルトン動きデータに対して、共通セグメント数個のセグメントが設定される。そして、動きデータセグメント決定処理対象であるＮ個のスケルトン動きデータに対して、共通セグメント数個のセグメントが設定されると共に、スケルトン動きデータ間で各セグメントの対応関係が求められる。
【００７７】
セグメント修正部１７は、各不一致スケルトン動きデータに関するセグメント修正情報「修正後のセグメント分割時刻」を記憶部１５に格納する。
【００７８】
［出力部］
出力部１８は、記憶部１５に格納される情報に基づいて、動きデータセグメント決定処理対象であるＮ個のスケルトン動きデータに関するセグメント情報「共通セグメント数、各スケルトン動きデータのセグメント分割時刻」を出力する。
【００７９】
図５は、本実施形態に係る動きデータセグメント決定処理の流れを示すフローチャートである。まず、入力部１１が入力情報として動きデータセグメント決定処理対象であるＮ個のスケルトン動きデータを入力する（ステップＳ１）。次いで、動きデータ前処理部１２が動きデータセグメント決定処理対象のスケルトン動きデータに対して所定の事前処理を行う（ステップＳ２）。次いで、セグメント候補抽出部１３が該事前処理後のスケルトン動きデータに対して所定のセグメント候補抽出処理を行う（ステップＳ３）。
【００８０】
次いで、セグメント推定部１４が該抽出されたセグメント候補に対して所定のセグメント推定処理を行う（ステップＳ４）。次いで、動きデータセグメント決定処理対象であるＮ個のスケルトン動きデータの全てに対して、ステップＳ２〜Ｓ４の処理が終了したかを判断する（ステップＳ５）。この結果、終了した場合にはステップＳ５に進み、終了していない場合にはステップＳ２に戻る。
【００８１】
次いで、セグメント数決定部１６が、動きデータセグメント決定処理対象であるＮ個のスケルトン動きデータに対して、共通セグメント数を決定する（ステップＳ６）。次いで、セグメント修正部１７が、共通セグメント数に不一致するセグメント数のスケルトン動きデータに対して、セグメント数が共通セグメント数になるように、セグメント境界を修正する（ステップＳ７）。次いで、出力部１８が、動きデータセグメント決定処理対象であるＮ個のスケルトン動きデータに関するセグメント情報を出力する（ステップＳ８）。
【００８２】
上述した実施形態によれば、複数の動きデータに対して同じセグメント数で各動きデータをセグメントに分割すると共に、該動きデータ間で各セグメントの対応関係を求めることができる。これにより、例えば、モーションキャプチャデータを利用して様々な動作を表現する際に、同種の動きであってもニュアンスの異なる動き間で対応関係を求めることに寄与できる。
【００８３】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００８４】
また、上述した動きデータセグメント決定装置１を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００８５】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００８６】
１…動きデータセグメント決定装置、１１…入力部、１２…動きデータ前処理部、１３…セグメント候補抽出部、１４…セグメント推定部、１５…記憶部、１６…セグメント数決定部、１７…セグメント修正部、１８…出力部
【図１】
2014215678.tif 000012
【図２】
2014215678.tif 000013
【図３】
2014215678.tif 000014
【図４】
2014215678.tif 000015
【図５】
2014215678.tif 000016