(57)【要約】【課題】多次元時系列データの構造分析においてビート時刻を検出する際に、多様な動きに対して適応することにより、ビート時刻の検出精度の向上を図る。【解決手段】多次元時系列データに対し、一定時間の区間毎に、主成分分析を行う主成分分析部４と、区間毎に主成分座標を一つ選択する主成分選択部５と、各区間の主成分座標に基づいてビート時刻を検出するビート時刻検出部（ビート抽出部７、後処理部８）とを備える。【選択図】図１
2010157061.tif 000002
【特許請求の範囲】
【請求項１】
多次元時系列データの構造分析を行う多次元時系列データ分析装置において、
多次元時系列データに対し、一定時間の区間毎に、主成分分析を行う主成分分析部と、
区間毎に主成分座標を一つ選択する主成分選択部と、
各区間の主成分座標に基づいてビート時刻を検出するビート時刻検出部と、
を備えたことを特徴とする多次元時系列データ分析装置。
【請求項２】
前記主成分分析部は、各区間の多次元時系列データに対し、平均値を除いてから特異値分解を行い、主成分空間への変換を行うことを特徴とする請求項１に記載の多次元時系列データ分析装置。
【請求項３】
当区間の主成分座標に係る主成分係数と前区間における当区間の主成分座標に対応する主成分係数との内積に基づいて、当区間の主成分座標を符号反転する符号反転手段と、
当区間の主成分座標に対し、前区間の主成分座標に滑らかに連結されるように座標シフトを行う座標シフト手段と、
を備えたことを特徴とする請求項２に記載の多次元時系列データ分析装置。
【請求項４】
前記ビート時刻検出部は、連結後の全区間の主成分座標から極値を算出し、該極値に基づいてビート時刻を検出することを特徴とする請求項３に記載の多次元時系列データ分析装置。
【請求項５】
前記ビート時刻検出部は、連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値を算出し、該極値に基づいてビート時刻を検出することを特徴とする請求項３に記載の多次元時系列データ分析装置。
【請求項６】
前記ビート時刻検出部は、連結後の隣区間の主成分係数から算出した内積で自己相関値を算出し、該自己相関値の極値を算出し、該極値に基づいてビート時刻を検出することを特徴とする請求項３に記載の多次元時系列データ分析装置。
【請求項７】
前記ビート時刻検出部は、
前記極値間を正弦近似する正弦近似手段と、
該正弦近似値から最大成分周波数を検出するフーリエ変換手段と、を有し、
該最大成分周波数と前記正弦近似値の間の相関に基づいて、ビート間隔が一定である場合のビート時刻を検出する、
ことを特徴とする請求項４から６のいずれか１項に記載の多次元時系列データ分析装置。
【請求項８】
前記ビート時刻検出部は、ビート間隔が一定ではない場合において、連続する２つの極値の時間間隔が所定値よりも短い場合に、該２つの極値の時刻の中間の時刻を該２つの極値に係るビート時刻として算出することを特徴とする請求項４から６のいずれか１項に記載の多次元時系列データ分析装置。
【請求項９】
前記主成分分析部は、多次元時系列データが有する自由度のうちビートを表現するために必要な自由度のみに対して、主成分分析を行うことを特徴とする請求項１から８のいずれか１項に記載の多次元時系列データ分析装置。
【請求項１０】
多次元時系列データの構造分析を行う多次元時系列データ分析処理を行うためのコンピュータプログラムであって、
多次元時系列データに対し、一定時間の区間毎に、主成分分析を行う主成分分析ステップと、
区間毎に主成分座標を一つ選択する主成分選択ステップと、
各区間の主成分座標に基づいてビート時刻を検出するビート時刻検出ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多次元時系列データ分析装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
多次元時系列データは、多次元で起こる現象を一定の時間間隔で観測して記録した多次元の時系列データである。多次元時系列データとしては、人や物体等の動きを表す動きデータ、複数のマイクロホンで集音した音声データ、複数の地域で観測した気温データなどがある。ある時刻の多次元データは、フレームと呼ばれる。従って、多次元時系列データは、時系列に従って配列されたフレーム列である。
【０００３】
図６は、人の動きデータの定義例の概略図であり、人のスケルトン型動きデータ（人体スケルトン型動きデータ）の定義例である。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点（ジョイント）を用い、一ジョイントを根（ルート）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）構造として定義される。図６には、人体スケルトン型動きデータの定義の一部分のみを示している。図６において、ジョイント１００は腰の部分であり、ルートとして定義される。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分、である。
【０００４】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
【０００５】
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢（ポーズ）の連続により表すものであり、人の基本ポーズ（neutral pose）を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型角度情報データは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【０００６】
多次元時系列データの構造分析では、周期的な時刻や特徴的な時刻などの重要な時刻を検出し、データの構造を全体的に分析し理解することを行う。例えば、人体スケルトン型動きデータの構造分析としては、歩行や走行などの周期的な動きを分析する周期性分析、ダンスなどの動きのビート時刻（拍子を打つタイミング）の検出、一般的な動きのキーポーズの抽出などが挙げられる。ここでは、多次元時系列データの構造分析として、人体スケルトン型動きデータのビート時刻検出を例に挙げて説明する。ここで、人体スケルトン型動きデータのビート時刻は反復的な動きの方向又は強度が変化する時刻である、と定義する。
【０００７】
人体スケルトン型動きデータに係る従来のビート時刻検出技術として、例えば、非特許文献１，２に開示される技術が知られている。非特許文献１に開示の従来技術１では、毎ジョイントの角加速度がゼロとなる時刻によって正弦近似し、各ジョイントの正弦関数を合計し、そして、主周波成分ピークを参考ビートとし、参考ビートを中心にコスト最小値の時刻をビート時刻としている。非特許文献２に開示の従来技術２では、各骨の方向として時間的に変化した骨の角度を算出し、各骨の角度の重み付き平均として“Weight Effort”という特徴量を定義し、“Weight Effort”の極小値の時刻をビート時刻としている。
【０００８】
人の動作を表す動きデータは大きな自由度を有するが、各ジョイント間で強い関連性があるため、その主成分分析は動きデータの次元削減の手段として有効である。従来の主成分分析技術として、例えば、非特許文献３，４に開示される技術が知られている。これらの従来技術では、動きデータ全体を主成分分析し、寄与率の高いｍ個の主成分を取得している。
【非特許文献１】T.Kim，S.Park and S.Y.Shin，“Rhythmic-motion synthesis based on motion-beat analysis”，in ACM Transactions on Graphics，Vol.22，No.3（Also in SIGGRAPH 2003），pp.392-401，July 2003
【非特許文献２】T.Shiratori，A.Nakazawa，and K.Ikeuchi，“Dancing-to-Music Character Animation”，in Computer Graphics Forum，Vol.25，No.3（Also in Eurographics 2006），pp.449-458，Sept.2006
【非特許文献３】L.M.Tanco and A.Hilton，“Realistic synthesis of novel human movements from a database of motion capture examples”，In IEEE Workshop on Human Motion，pp.137-142，2000
【非特許文献４】P.Glardon，R.Boulic，D.Thalmann，“PCA-based Walking Engine Using Motion Capture Data”，In Computer Graphics International，pp.292-298，2004
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、上述した従来技術１では、正弦近似のため、ビート間隔が変化しない場合のみ有効であり、周期性を持たない動きに適用することが難しい。例えば、手足の止まる時刻に高確率でビート時刻が発生する日本伝統舞踊には適応するが、必ずしもそのような周期性を有さない最近のダンスには適応しない。従来技術２では、ジョイントの重みの設定として一定の知識が必要であり、安定的にビート時刻を検出することは困難である。また、従来技術１，２では、パラメータに対する依存性が高いため、パラメータの最適化が困難である。さらに、従来技術１，２では、ジョイントや骨の物理量から直接的にビート時刻を検出するため、多様な動きから安定的にビート時刻を検出することが難しい。
【００１０】
また、従来技術３，４では、動きデータ全体で主成分分析を行うため、複雑な動きに対してはビート時刻を検出することが難しい。
【００１１】
本発明は、このような事情を考慮してなされたもので、その目的は、多次元時系列データの構造分析においてビート時刻を検出する際に、多様な動きに対して適応することにより、ビート時刻の検出精度の向上を図ることのできる多次元時系列データ分析装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明に係る多次元時系列データ分析装置は、多次元時系列データの構造分析を行う多次元時系列データ分析装置において、多次元時系列データに対し、一定時間の区間毎に、主成分分析を行う主成分分析部と、区間毎に主成分座標を一つ選択する主成分選択部と、各区間の主成分座標に基づいてビート時刻を検出するビート時刻検出部と、を備えたことを特徴とする。
【００１３】
本発明に係る多次元時系列データ分析装置においては、前記主成分分析部は、各区間の多次元時系列データに対し、平均値を除いてから特異値分解を行い、主成分空間への変換を行うことを特徴とする。
【００１４】
本発明に係る多次元時系列データ分析装置においては、当区間の主成分座標に係る主成分係数と前区間における当区間の主成分座標に対応する主成分係数との内積に基づいて、当区間の主成分座標を符号反転する符号反転手段と、当区間の主成分座標に対し、前区間の主成分座標に滑らかに連結されるように座標シフトを行う座標シフト手段と、を備えたことを特徴とする。
【００１５】
本発明に係る多次元時系列データ分析装置においては、前記ビート時刻検出部は、連結後の全区間の主成分座標から極値を算出し、該極値に基づいてビート時刻を検出することを特徴とする。
【００１６】
本発明に係る多次元時系列データ分析装置においては、前記ビート時刻検出部は、連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値を算出し、該極値に基づいてビート時刻を検出することを特徴とする。
【００１７】
本発明に係る多次元時系列データ分析装置においては、前記ビート時刻検出部は、連結後の隣区間の主成分係数から算出した内積で自己相関値を算出し、該自己相関値の極値を算出し、該極値に基づいてビート時刻を検出することを特徴とする。
【００１８】
本発明に係る多次元時系列データ分析装置においては、前記ビート時刻検出部は、前記極値間を正弦近似する正弦近似手段と、該正弦近似値から最大成分周波数を検出するフーリエ変換手段と、を有し、該最大成分周波数と前記正弦近似値の間の相関に基づいて、ビート間隔が一定である場合のビート時刻を検出することを特徴とする。
【００１９】
本発明に係る多次元時系列データ分析装置においては、前記ビート時刻検出部は、ビート間隔が一定ではない場合において、連続する２つの極値の時間間隔が所定値よりも短い場合に、該２つの極値の時刻の中間の時刻を該２つの極値に係るビート時刻として算出することを特徴とする。
【００２０】
本発明に係る多次元時系列データ分析装置においては、前記主成分分析部は、多次元時系列データが有する自由度のうちビートを表現するために必要な自由度のみに対して、主成分分析を行うことを特徴とする。
【００２１】
本発明に係るコンピュータプログラムは、多次元時系列データの構造分析を行う多次元時系列データ分析処理を行うためのコンピュータプログラムであって、多次元時系列データに対し、一定時間の区間毎に、主成分分析を行う主成分分析ステップと、区間毎に主成分座標を一つ選択する主成分選択ステップと、各区間の主成分座標に基づいてビート時刻を検出するビート時刻検出ステップと、をコンピュータに実行させるためのコンピュータプログラムであることを特徴とする。
これにより、前述の多次元時系列データ分析装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００２２】
本発明によれば、多次元時系列データの構造分析においてビート時刻を検出する際に、多様な動きに対して適応することができる。これにより、ビート時刻の検出精度の向上を図ることができるという効果が得られる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照し、本発明の実施形態について説明する。本実施形態では、多次元時系列データの一例として、図６に例示されるように定義された人体スケルトン型動きデータ（以下、単に「動きデータ」と称する）を用いる。
【００２４】
図１は、本発明の一実施形態に係る多次元時系列データ分析装置１の構成を示すブロック図である。図１において、多次元時系列データ分析装置１は、物理量変換部２、データ分割部３、主成分分析部４、主成分選択部５、主成分座標連結部６、ビート抽出部７及び後処理部８を有する。多次元時系列データ分析装置１には動きデータが入力される。多次元時系列データ分析装置１は、入力された動きデータに対する分析結果として、ビート時刻を出力する。
【００２５】
以下、図１に示す多次元時系列データ分析装置１について順次、詳細に説明する。
【００２６】
［物理量変換部］
物理量変換部２は、入力された動きデータにおいて、時刻ｔにおけるジョイント相対位置を算出する。ジョイント相対位置は、ルートに対するジョイントの相対的な位置である。以下、ジョイント相対位置の算出方法を説明する。
【００２７】
まず、人体スケルトン型角度情報データ内の基本ポーズデータとフレームデータを用いて、ジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻ｔにおけるｋ番目のジョイントの位置ｐｋ（ｔ）は、（１）式および（２）式により算出される。ｐｋ（ｔ）は３次元座標で表される。なお、時刻ｔはフレームデータの時刻である。本実施形態では、時刻ｔを単に「フレームインデックス」として扱う。これにより、時刻ｔは、０，１，２，・・・，Ｔ−１の値をとる。Ｔは、動きデータに含まれるフレームの個数である。
【００２８】
【数１】
2010157061.tif 000003
【００２９】
【数２】
2010157061.tif 000004
【００３０】
但し、０番目（ｉ＝０）のジョイントはルートである。Ｒａｘｉｓｉ−１，ｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント（「ｉ−１」番目のジョイント）間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ｒｉ（ｔ）は、ｉ番目のジョイントのローカル座標系におけるｉ番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ｔｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、ｉ番目のジョイントとその親ジョイント間の骨の長さを表す。
【００３１】
次いで、時刻ｔにおける、ルートに対するｋ番目のジョイントの相対位置（ジョイント相対位置）ｐ’ｋ（ｔ）を（３）式により算出する。
【００３２】
【数３】
2010157061.tif 000005
【００３３】
但し、ｐｒｏｏｔ（ｔ）は時刻ｔにおけるルート（０番目のジョイント）の位置（ｐ０（ｔ））である。
【００３４】
これにより、時刻ｔのフレーム「ｘ（ｔ）」は、「ｘ（ｔ）＝｛ｐ’１（ｔ），ｐ’２（ｔ），・・・，ｐ’Ｋ（ｔ）｝」と表される。但し、Ｋは、ルートを除いたジョイントの個数である。
【００３５】
［データ分割部］
データ分割部３は、ジョイント相対位置データを、一定時間の区間に分割する。データ分割部３は、各ジョイントのジョイント相対位置データ「ｐ’ｋ（ｔ）」に対して、それぞれデータ分割処理を行う。図２，図３にデータ分割処理の概念を示す。データ分割処理では、ジョイント相対位置データを一定時間（一定数のフレーム分に対応）の区間に分割する。分割区間の長さは、適宜、設定可能である。分割区間の長さは、例えば、１フレーム当たりの時間の６０倍である。このとき、図２に示されるように、各区間が重複しないようにしてもよく、或いは、図３に示されるように、各区間が重複区間（オーバーラップ）を有するようにしてもよい。重複区間の長さは、適宜、設定可能である。重複区間の長さは、例えば、分割区間の長さの半分である。
【００３６】
［主成分分析部］
主成分分析部４は、データ分割部３によって分割されたジョイント相対位置データに対し、各区間で主成分分析処理を行う。ここで、時刻ｔのフレーム「ｘ（ｔ）」を用いて、一区間のデータ「Ｘ」を「Ｘ＝｛ｘ（ｔ１），ｘ（ｔ２），・・・，ｘ（ｔＮ）｝と表す。但し、Ｎは区間長（区間内に含まれるフレームの個数）である。Ｘは、Ｍ行Ｎ列の行列である（但し、Ｍ＝３×Ｋ）。
【００３７】
主成分分析処理では、Ｘに対して主成分分析処理を行い、Ｘを主成分空間へ変換する。以下、主成分分析方法を説明する。
【００３８】
ステップＳ１：（４）式により、Ｘから平均値を除いたＮ行Ｍ列の行列Ｄを算出する。
【００３９】
【数４】
2010157061.tif 000006
【００４０】
ステップＳ２：（５）式により、Ｎ行Ｍ列の行列Ｄに対して特異値分解（Singular Value Decomposition）を行う。
【００４１】
【数５】
2010157061.tif 000007
【００４２】
但し、Ｕは、Ｎ行Ｎ列のユニタリ行列である。Σは、Ｎ行Ｍ列の負でない対角要素を降順にもつ対角行列であり、主成分空間の座標の分散を表す。Ｖは、Ｍ行Ｍ列のユニタリ行列であり、主成分に対する係数（principal component）である。
【００４３】
ステップＳ３：（６）式により、Ｎ行Ｍ列の行列Ｄを主成分空間へ変換する。Ｍ行Ｎ列の行列Ｙは、主成分空間の座標を表す。
【００４４】
【数６】
2010157061.tif 000008
【００４５】
主成分分析部４は、区間毎に、主成分空間の座標を表す行列（主成分座標行列）Ｙと、主成分に対する係数の行列（主成分係数行列）Ｖをメモリに保存する。
【００４６】
なお、元空間の座標を表す行列Ｘと主成分座標行列Ｙは、（６）式と（７）式により相互に変換することができる。
【００４７】
【数７】
2010157061.tif 000009
【００４８】
また、上位のｒ個の主成分によって、（８）式により変換することができる。
【００４９】
【数８】
2010157061.tif 000010
【００５０】
但し、Ｖｒは、主成分係数行列Ｖ内の上位のｒ個の行から成るＭ行ｒ列の行列である。Ｙｒは、主成分座標行列Ｙ内の上位のｒ個の列から成るｒ行Ｎ列の行列である。Ｘ〜は、復元されたＭ行Ｎ列の行列である。
【００５１】
なお、元空間の一部の自由度だけを主成分分析処理することも可能である。例えば、足の動きだけでビートを表現することができる場合には、足に関するジョイント相対位置データのみから生成したＭ’行Ｎ列の行列Ｘ’に対して、（４）式、（５）式及び（６）式により主成分分析処理を行う。
【００５２】
［主成分選択部］
主成分選択部５は、各区間において、主成分座標行列Ｙから主成分を一つ選択する。以下、主成分選択方法を説明する。
【００５３】
（ユーザからの指定がない場合）
ユーザからの指定がない場合には、主成分座標行列Ｙ内の第１主成分（主成分座標行列Ｙの第１行）を選択する。第１主成分は、一区間における時間関連性がより強いために、動きの変化を表現しており、一般的に、ビート時刻に関する十分な情報を有する。
【００５４】
（ユーザからの指定がある場合）
ユーザによって主成分が指定されている場合には、その指定された主成分（第ｋ主成分（主成分座標行列Ｙの第ｋ行）、１≦ｋ≦Ｋ）を選択する。この場合、多次元時系列データ分析装置１には、動きデータと共に、主成分の指定情報が入力される。若しくは、予め主成分の指定情報を固定的に設定しておいてもよい。
なお、第１主成分以外の第ｎ主成分（１＜ｎ≦Ｋ）が選択される場合の例としては、体の一部分の動きがビートを表現しているものなどが挙げられる。例えば、最も大きい動きが体の回転である場合において、足の着地がビートをよく表現しているとする。すると、足の動きを表す第ｋ主成分がビート時刻に関する十分な情報を有する。
【００５５】
主成分選択部５は、区間毎に、選択した主成分を示す情報（例えば、主成分番号「ｋ（ｋは１からＫまでの自然数）」をメモリに保存する。
【００５６】
［主成分座標連結部］
主成分座標連結部６は、主成分選択部５によって選択された各区間の主成分の座標を、時系列に沿って連結する。この主成分座標連結処理では、連続する２つの区間の境界部分において、主成分の座標が滑らかに連結されるように、主成分の座標を調整する。
【００５７】
図４に、本実施形態に係る主成分座標連結処理を説明するための概念図を示す。本実施形態では、時系列に従って、先頭の区間から順番に主成分座標連結処理を行ってゆく。図４において、ある区間（前区間）までの主成分座標連結処理が終了している。そして、その前区間に対して、次の区間（当区間）を連結するための主成分座標連結処理を行う。この主成分座標連結処理では、前区間の主成分座標に対し、当区間の主成分座標が滑らかに連結されるように、当区間の主成分座標を調整する。この主成分座標の調整処理では、主成分選択部５によって選択された当区間の主成分座標（元座標）に対し、符号反転又は座標シフトを行う。以下、主成分座標連結処理を詳細に説明する。
【００５８】
ステップＳ１１：主成分選択部５によって選択された当区間の主成分の座標（第ｋ主成分の元座標）Ｙｋに対し、当区間の主成分係数行列Ｖから、第ｋ主成分に対する係数Ｖｋを取得する。さらに、メモリに保存されている前区間の主成分係数行列Ｖから、第ｋ主成分に対する係数Ｖｋｐｒｅを取得する。
【００５９】
ステップＳ１２：当区間に係る第ｋ主成分に対する係数Ｖｋと前区間に係る第ｋ主成分に対する係数Ｖｋｐｒｅとの関係に基づいて、当区間に係る第ｋ主成分の元座標を符号反転するか否かを判定する。この符号反転の判定は、（９）式により行う。（９）式による判定の結果、符号反転する場合には、当区間の第ｋ主成分の元座標Ｙｋに対して符号反転を行うと共に、当区間の主成分係数行列Ｖに対しても符号反転を行う。一方、（９）式による判定の結果、符号反転しない場合には、当区間の第ｋ主成分の元座標Ｙｋ及び当区間の主成分係数行列Ｖともに、そのままの値をステップＳ１２の処理結果とする。
【００６０】
【数９】
2010157061.tif 000011
【００６１】
但し、Ｙｋは、当区間で選択された主成分の座標（第ｋ主成分の元座標）である。Ｖは、当区間の主成分係数行列である。Ｖｋは、当区間に係る第ｋ主成分に対する係数である。Ｖｋｐｒｅは、前区間に係る第ｋ主成分に対する係数である。（Ｖｋ・Ｖｋｐｒｅ）は、ＶｋとＶｋｐｒｅの内積である。Ｙｋ’は、当区間で選択された主成分の座標（第ｋ主成分の元座標）Ｙｋに対するステップＳ１２の処理結果である。Ｖ’は、当区間の主成分係数行列Ｖに対するステップＳ１２の処理結果である。
【００６２】
ステップＳ１３：ステップＳ１２の処理結果の主成分座標Ｙｋ’に対し、座標シフトを行う。
（区間のオーバーラップがない場合）
区間のオーバーラップがない場合（図２に対応）には、（１０）式により座標シフトを行う。この場合、前区間の主成分座標行列Ｙから、前区間の第ｔＮフレームにおける第ｋ主成分の座標Ｙｋｐｒｅ（ｔＮ）を取得する。
【００６３】
【数１０】
2010157061.tif 000012
【００６４】
但し、Ｙｋ’（ｔ１）は、ステップＳ１２の処理結果の主成分座標Ｙｋ’のうち、第ｔ１フレームの座標である。Ｙｋ”（ｔ２）は、（１０）式の最初の計算式の計算結果の座標Ｙｋ”のうち、第ｔ２フレームの座標である。
（１０）式の最初の計算式の計算結果の座標Ｙｋ”に対し、第ｔ１フレームの座標Ｙｋ”（ｔ１）をＹｋｏｐｔ（ｔ１）に置き換える。この置き換え後の座標Ｙｋ”が、座標シフト結果の座標である。
【００６５】
（区間のオーバーラップがある場合）
区間のオーバーラップがある場合（図３に対応）には、（１１）式により座標シフトを行う。この場合、前区間の主成分座標行列Ｙから、前区間の第（ｔＮ−Ｌｏｌ＋１）フレームにおける第ｋ主成分の座標Ｙｋｐｒｅ（ｔＮ−Ｌｏｌ＋１）と、前区間の第（ｔＮ−Ｌｏｌ＋１＋ｉ）フレームにおける第ｋ主成分の座標Ｙｋｐｒｅ（ｔＮ−Ｌｏｌ＋１＋ｉ）とを取得する。但し、ｉ＝１，２，・・・，Ｌｏｌである。Ｌｏｌは、前区間と当区間で重複している区間（オーバーラップ）の長さである。
【００６６】
【数１１】
2010157061.tif 000013
【００６７】
但し、Ｙｋ’（ｔ１）は、ステップＳ１２の処理結果の主成分座標Ｙｋ’のうち、第ｔ１フレームの座標である。Ｙｋ”（ｔ１＋ｉ）は、（１１）式の最初の計算式の計算結果の座標Ｙｋ”のうち、第（ｔ１＋ｉ）フレームの座標である。
（１１）式の最初の計算式の計算結果の座標Ｙｋ”に対し、第（ｔ１＋ｉ）フレームの座標Ｙｋ”（ｔ１＋ｉ）をＹｋｏｐｔ（ｔ１＋ｉ）に置き換える。この置き換え後の座標Ｙｋ”が、座標シフト結果の座標である。
【００６８】
ステップＳ１４：当区間において、ステップＳ１２の処理結果の座標Ｙｋ’に対して、ステップＳ１３の処理結果の座標Ｙｋｏｐｔ（ｔ１）又はＹｋｏｐｔ（ｔ１＋ｉ）を反映する。これにより、当区間の主成分座標は、前区間の主成分座標に対して滑らかに連結されるものとなる。
【００６９】
主成分座標連結部６は、上記した主成分座標連結処理を最初の区間から最後の区間まで行う。これにより、連結後の全区間の主成分座標「ｙ（ｔ）、ｔ＝０，１，２，・・・，Ｔ−１」が求まる。但し、Ｔは、動きデータに含まれるフレームの個数である。
【００７０】
［ビート抽出部］
ビート抽出部７は、主成分座標連結部６によって算出された連結後の全区間の主成分座標ｙ（ｔ）から、極値ｂ（ｊ）を算出する。この算出結果の極値ｂ（ｊ）がビートに対応する。ビートの集合Ｂは、（１２）式で表される。
【００７１】
【数１２】
2010157061.tif 000014
【００７２】
但し、Ｊは、ビートの個数である。
【００７３】
なお、ビートの集合の算出は、上記した方法以外の方法でも可能である。
例えば、ビート抽出部７は、主成分座標連結部６によって算出された連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値ｂ（ｊ）をビートに対応するものとして算出することができる。
また、ビート抽出部７は、主成分座標連結部６によって、連結後の隣区間の主成分係数から算出した内積（（９）式によるもの）の自己相関値を算出し、該自己相関値の極値ｂ（ｊ）をビートに対応するものとして算出することができる。
【００７４】
［後処理部］
後処理部８は、ビート抽出部７によって算出されたビート集合Ｂから、ビート時刻を検出する。このビート時刻検出処理として、ビート間隔の状態に応じた２通りを定める。これは、ビート時刻の検出精度を向上させるためである。以下、２通りのビート時刻検出処理について順次説明する。
【００７５】
（ビート間隔が一定である場合の第１のビート時刻検出処理）
多次元時系列データ分析装置１に入力する動きデータにおいて、ビート間隔が一定である場合には、第１のビート時刻検出処理を適用する。なお、動きデータのビート間隔が一定であるか否かは、ユーザに入力してもらう。以下、第１のビート時刻検出処理を詳細に説明する。
【００７６】
まず、ビート集合Ｂ内の各極値間を、（１３）式により正弦曲線（sinusoid）で近似する。
【００７７】
【数１３】
2010157061.tif 000015
【００７８】
但し、ｓｊ−１（ｔ）は、（ｊ−１）番目の極値ｂ（ｊ−１）からｊ番目の極値ｂ（ｊ）までの区間の正弦近似値である。ｔはフレームに対応する時刻であり、「ｔ＝０，１，２，・・・，Ｔ−１」である。Ｔは、動きデータに含まれるフレームの個数である。
【００７９】
図５に、（１３）式による正弦近似処理の概念図を示す。図５において、１番目の極値ｂ（１）から２番目の極値ｂ（２）までの区間ａ１（ｊ＝２の場合の区間）は、ｓ１（ｔ）で近似される。同様に、２番目の極値ｂ（２）から３番目の極値ｂ（３）までの区間ａ２（ｊ＝３の場合の区間）はｓ２（ｔ）で近似され、３番目の極値ｂ（３）から４番目の極値ｂ（４）までの区間ａ３（ｊ＝４の場合の区間）はｓ３（ｔ）で近似され、４番目の極値ｂ（４）から５番目の極値ｂ（５）までの区間ａ４（ｊ＝５の場合の区間）はｓ４（ｔ）で近似される。
【００８０】
次いで、正弦近似値「ｓｊ−１（ｔ）、ｊ＝２，３，・・・，Ｊ」に対してフーリエ変換を行う。そのフーリエ変換処理には、所定のＦＦＴポイント数Ｌのハン窓を用いたＦＦＴ（Fast Fourier Transform）演算器を使用する。そして、そのフーリエ変換の結果に基づいて、該フーリエ変換に係る周波数範囲のうちから最大の成分を有する周波数（最大成分周波数）ｆｍａｘを検出する。そして、ビート間隔ＴＢを「ＴＢ＝Ｆｓ÷ｆｍａｘ」なる計算式により算出する。但し、Ｆｓは、１秒当たりのフレーム数である。
【００８１】
次いで、正弦近似値「ｓｊ−１（ｔ）、ｊ＝２，３，・・・，Ｊ」と、（１４）式で定義される基準値「ｓ’（ｔ）」との間の最大相関初期位相φ＾を（１５）式により算出する。
【００８２】
【数１４】
2010157061.tif 000016
【００８３】
【数１５】
2010157061.tif 000017
【００８４】
次いで、（１６）式により、ビート時刻ｅｂ（ｊ）の集合ＥＢを算出する。但し、ＥＪは、ビート時刻ｅｂ（ｊ）の個数である。
【００８５】
【数１６】
2010157061.tif 000018
【００８６】
（ビート間隔が一定ではない場合の第２のビート時刻検出処理）
多次元時系列データ分析装置１に入力する動きデータにおいて、ビート間隔が一定ではない場合には、第２のビート時刻検出処理を適用する。なお、動きデータのビート間隔が一定であるか否かは、ユーザに入力してもらう。
第２のビート時刻検出処理では、（１７）式により、連続する２つの極値の時間間隔が閾値ＴＨよりも短い場合に、該２つの極値の時刻の中間の時刻を該２つの極値に係るビート時刻として算出する。連続する２つの極値の時間間隔が閾値ＴＨより短い場合が消滅するまで、この作業を繰り返す。これにより、ビート時刻の間隔が閾値ＴＨ以上になるように、ビート時刻を調整する。
【００８７】
【数１７】
2010157061.tif 000019
【００８８】
後処理部８は、ビート時刻検出処理により算出されたビート時刻を出力する。
【００８９】
上述したように本実施形態によれば、入力された動きデータに対し、区間毎に主成分分析を行い、区間毎に主成分座標を一つ選択し、各区間の主成分座標を滑らかに連結し、連結後の全区間の主成分座標からビート時刻を検出する。主成分分析によれば、動きの最も大きい変化を表現できるため、動きの種類にかかわらず、多様な動きに適応することができる。これにより、ビート時刻の検出精度が向上するという効果が得られる。
【００９０】
また、パラメータに対する依存度が少ないので、処理の簡略化を図ることができる。
【００９１】
なお、本実施形態に係る多次元時系列データ分析装置１は、専用のハードウェアにより実現されるものであってもよく、あるいはパーソナルコンピュータ等のコンピュータシステムにより構成され、図１に示される多次元時系列データ分析装置１の各部の機能を実現するためのプログラムを実行することによりその機能を実現させるものであってもよい。
【００９２】
また、その多次元時系列データ分析装置１には、周辺機器として入力装置、表示装置等が接続されるものとする。ここで、入力装置とはキーボード、マウス等の入力デバイスのことをいう。表示装置とはＣＲＴ（Cathode Ray Tube）や液晶表示装置等のことをいう。
また、上記周辺機器については、多次元時系列データ分析装置１に直接接続するものであってもよく、あるいは通信回線を介して接続するようにしてもよい。
【００９３】
また、図１に示す多次元時系列データ分析装置１の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、多次元時系列データ分析処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００９４】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００９５】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した実施形態では人の動きデータを扱ったが、本発明は各種の物体の動きデータに適用することができる。ここで、物体とは、人、動物、植物その他の生物、及び、生物以外の物（ロボット等）を含む。又、スケルトン型動きデータは、人、動物、植物その他の生物、及び、生物以外の物に対して、適用可能である。
【００９６】
また、本発明に係る多次元時系列データとして、人や物体等の動きを表す動きデータ、複数のマイクロホンで集音した音声データ、複数の地域で観測した気温データなどが適用可能である。複数のマイクロホンで集音した音声データの場合、中心に位置するマイクロホンで集音した音声データの振幅値とその周辺に位置する各マイクロホンで集音した音声データの振幅値との振幅差の時系列データを、多次元時系列データとする。複数の地域で観測した気温データの場合、中心に位置する観測点（例えば、東京都）で観測した気温とその周辺に位置する観測点（例えば、千葉県、埼玉県、神奈川県など）で観測した気温との気温差の時系列データを、多次元時系列データとする。
【００９７】
なお、物理量変換部２は、人体スケルトン型加速度情報データを用いて、各時刻における各ジョイントのジョイント相対速度を算出し、各ジョイントのジョイント相対速度から各ジョイントのジョイント相対位置を算出することも可能である。この具体的な計算方法を以下に示す。
まず、動きデータにおいて、ジョイント毎に動きの平均速度を計算し、該平均速度をジョイントの初期速度に設定する。次いで、（１８）式により、時刻ｔにおけるｋ番目のジョイントの速度ｖｋ（ｔ）を計算する。（１８）式では、加速度の積分値を初期速度に加算している。
【００９８】
【数１８】
2010157061.tif 000020
【００９９】
但し、ｖ０ｋはｋ番目のジョイントの初期速度である。ａｋ（τ）は時刻τにおけるｋ番目のジョイントの加速度であり、人体スケルトン型加速度情報データに含まれる。
次いで、（１９）式により、時刻ｔにおけるｋ番目のジョイントの位置ｐｋ（ｔ）を算出する。
【０１００】
【数１９】
2010157061.tif 000021
【０１０１】
なお、（３）式により、時刻ｔにおける、ルートに対するｋ番目のジョイントの相対位置（ジョイント相対位置）ｐ’ｋ（ｔ）を算出することができる。
また、物理量変換部２が、入力された動きデータにおいて、時刻ｔにおけるジョイント相対速度（相対位置の差分）を算出し、該ジョイント相対速度を利用する場合には、適切なローパスフィルタを設けるようにする。
【図面の簡単な説明】
【０１０２】
【図１】本発明の一実施形態による多次元時系列データ分析装置１の構成を示すブロック図である。
【図２】図１に示すデータ分割部３に係るデータ分割処理の概念図である。
【図３】図１に示すデータ分割部３に係るデータ分割処理の概念図である。
【図４】本発明の一実施形態に係る主成分座標連結処理を説明するための概念図である。
【図５】本発明の一実施形態に係る正弦近似処理の概念図である。
【図６】人体スケルトン型動きデータの定義例である。
【符号の説明】
【０１０３】
１…多次元時系列データ分析装置、２…物理量変換部、３…データ分割部、４…主成分分析部、５…主成分選択部、６…主成分座標連結部（符号反転手段、座標シフト手段）、７…ビート抽出部（ビート時刻検出部）、８…後処理部（ビート時刻検出部、正弦近似手段、フーリエ変換手段）
【図１】
2010157061.tif 000022
【図２】
2010157061.tif 000023
【図３】
2010157061.tif 000024
【図４】
2010157061.tif 000025
【図５】
2010157061.tif 000026
【図６】
2010157061.tif 000027