(57)【要約】【課題】予めパラメータ値の決定や事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要であり、かつ、より少ない計算量でパターン境界を判定できる多次元時系列データ分析装置を提供する。  【解決手段】多次元時系列データ分析装置が、多次元時系列データ記憶部から読み出される多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、主成分行列中のある１行に含まれる複数の要素を主成分として選択する主成分選択部と、主成分選択部が選択した主成分を主成分行列記憶部から読み出し、主成分の値の分布の中心と分布幅を決定し、主成分の値と分布の中心とのずれが分布幅よりも大きくなる点に基づいて多次元時系列データのパターン境界を判定して出力する境界判定部とを具備する。【選択図】図１
2010231452.tif 000002
【特許請求の範囲】
【請求項１】
複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、
主成分行列を記憶する主成分行列記憶部と、
前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、
前記主成分行列中のある１行に含まれる複数の要素を主成分として選択する主成分選択部と、
前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅とを決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる時刻に基づいて前記多次元時系列データのパターン境界を判定して出力する境界判定部と
を具備することを特徴とする多次元時系列データ分析装置。
【請求項２】
前記境界判定部は、前記主成分の極点の各々について、当該極点以前の所定期間における前記主成分の値の平均値である前方平均値と当該極点以後の前記所定期間における前記主成分の値の平均値である後方平均値とを算出し、該前方平均値に基づいて、前記極点毎に前記分布の中心と前記分布幅とを決定し、前記後方平均値と前記分布の中心との差を前記ずれとすることを特徴とする請求項１に記載の多次元時系列データ分析装置。
【請求項３】
前記主成分分析部は、前記多次元時系列データの行列から該多次元時系列データの時間方向の平均値の行列を減算して変動データ行列を生成し、該変動データ行列に対して特異値分解を行うことによって主成分行列を生成することを特徴とする請求項１または請求項２に記載の多次元時系列データ分析装置。
【請求項４】
前記主成分選択部は、前記主成分行列の第１行の各要素を主成分として選択し、前記境界判定部が該主成分を用いてパターン境界の位置を判定できなかった場合は、前記主成分行列の第２行の各要素を主成分として選択し、以下、前記境界判定部がパターン境界の位置を判定できない毎に、前記主成分行列中の上からＫ行目（Ｋは１以上かつ主成分行列の行数以下の任意の整数）までの部分行列である判定対象主成分中の上の行から順に１行中の各要素を主成分として選択することを特徴とする請求項３に記載の多次元時系列データ分析装置。
【請求項５】
多次元時系列データを多次元時系列データ記憶部に保存し、古い順にＮ個（Ｎは任意の正の整数）の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示し、前記境界判定部がパターン境界の位置を判定し出力した場合に該パターン境界の位置以後の多次元時系列データ中から古い順にＮ個の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ取得部と、
判定対象主成分に含まれる全ての主成分について前記境界判定部がパターン境界の位置を判定できなかった場合に、前記主成分分析部が主成分分析を行ったフレームと該フレームよりも新しいフレーム中から古い順にＰ個（Ｐは任意の正の整数）のフレームとを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ追加部と
をさらに具備することを特徴とする請求項４に記載の多次元時系列データ分析装置。
【請求項６】
複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、
主成分行列を記憶する主成分行列記憶部と、
前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、
前記主成分行列中のある１行に含まれる複数の要素を主成分として選択する主成分選択部と、
前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点が存在する場合に前記主成分の値の自己相関を算出し、該自己相関の値が極大となる時刻に基づいてパターン境界の位置を判定して出力する境界判定部と
を具備することを特徴とする多次元時系列データ分析装置。
【請求項７】
複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析ステップと、
前記主成分行列中のある１行に含まれる複数の要素を主成分として選択する主成分選択ステップと、
前記主成分選択ステップが選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点に基づいて前記多次元時系列データのパターン境界を判定して出力する境界判定ステップと
を具備することを特徴とする多次元時系列データ分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多次元時系列データ分析装置及び多次元時系列データ分析プログラムに関する。
【背景技術】
【０００２】
多次元時系列データは、多次元で起こる現象を一定の時間間隔で観測して記録した多次元の時系列データである。多次元時系列データとしては、人や物体等の動きを表す動きデータ、映像のデータ、複数のマイクロホンで集音した音声データ、複数の株価の推移を表すデータ、複数の地域で観測した気温データなどがある。ある時刻の多次元データは、フレーム（Frame）と呼ばれる。
多次元時系列データからパターンを抽出するために、各パターンの境界を判定することを、パターン境界判定という。例えば、人の動きを示す多次元時系列データである人体スケルトン（Skeleton、骨格）型動きデータのパターン境界判定においては、歩行や走行など複数の動きのパターンを含む動きデータから各動きのパターンの開始時刻と終了時刻とを判定する。
【０００３】
人体スケルトン型動きデータからパターン境界を判定する方法として、例えば、非特許文献１および２に示される方法が知られている。非特許文献１では、パターン境界を判定する３つの方法が示されている。方法１では人体スケルトン型動きデータに対して主成分分析を行う際に生じる誤差の変化量に基づいて、パターンの境界を判定する。方法２では人体スケルトン型動きデータに対して主成分分析を行って動きデータの各フレーム間の類似度を評価して、動きパターンの境界を判定する。方法３では連続するフレームが同じガウス混合モデル（Gaussian Mixture Model）に含まれない場合に、その箇所を動きパターンの境界であると判定する。非特許文献２では、サポートベクターマシン（Support Vector Machine: SVM）で動きのパターン境界を判定する方法が示されている。
人間の動作を表現する人体スケルトン型動きデータは、通常、多くの自由度を有するが、各ジョイント間には強い関連性がある。そこで、人体スケルトン型動きデータの次元削減のために主成分分析を行うことが有効である。主成分分析の方法としては、例えば、非特許文献３および非特許文献４に示される方法がある。これらの方法では、人体スケルトン型動きデータ全体を主成分分析し、動きに対する寄与率の高い幾つかの主成分を抽出する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】J. Barbic、他５名，"Segmenting Motion Capture Data into Distinct Behaviors"，Proceedings of Graphics Interface 2004，２００４年，Vol.  GI04，p.185-194
【非特許文献２】O. Arikan、他２名，"Motion synthesis from annotations"，ACM Transactions on Graphics，２００３年７月，vol.22(3)，p.402-408
【非特許文献３】L. M. Tanco、他１名，"Realistic synthesis of novel human movements from a database of motion capture examples"，IEEE Workshop on Human Motion，２００年，p.137-142
【非特許文献４】P. Glardon、他２名，"PCA-based Walking Engine Using Motion Capture Data"，Computer Graphics International，２００４年，p.292-298
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した非特許文献１の方法１および方法２では、フレームを一定数ずつ増やすごとに主成分分析を行い、各回の主成分分析結果の違いに基づいてパターン境界を判定するため繰り返し主成分分析を行う必要があり、計算量が膨大になる。
また、方法３では、予めガウス混合モデルのパラメータ値を決定することは困難である。さらに、事前の訓練が必要なため、オンライン処理には適用できないという問題もある。また、非特許文献２の方法では、ユーザが訓練用データを作成し、サポートベクターマシンが判別を間違えた場合はユーザが正解を示す必要がある。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、その目的は、ガウス混合モデルのパラメータ値を決定することや事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要であり、かつ、より少ない計算量でパターン境界を判定できる多次元時系列データ分析装置を提供することにある。
【課題を解決するための手段】
【０００７】
［１］この発明は上述した課題を解決するためになされたもので、本発明の一態様による多次元時系列データ分析装置は、複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、主成分行列を記憶する主成分行列記憶部と、前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、前記主成分行列中のある１行に含まれる複数の要素を主成分として選択する主成分選択部と、前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点に基づいて前記多次元時系列データのパターン境界を決定して出力する境界判定部とを具備することを特徴とする。
【０００８】
［２］また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、前記境界判定部は、前記主成分の極点の各々について、当該極点以前の所定期間における前記主成分の値の平均値である前方平均値と当該極点以後の前記所定期間における前記主成分の値の平均値である後方平均値とを算出し、該前方平均値に基づいて、前記極点毎に前記分布の中心と前記分布幅とを決定し、前記後方平均値と前記分布の中心との差を前記ずれとすることを特徴とする。
【０００９】
［３］また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、前記主成分分析部は、前記多次元時系列データに基づく処理対象行列から該処理対象行列の時間方向の平均値の行列を減算して変動データ行列を生成し、該変動データ行列に対して特異値分解を行うことによって主成分行列を生成することを特徴とする。
【００１０】
［４］また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、前記主成分選択部は、前記主成分行列の第１行の各要素を主成分として選択し、前記境界判定部が該主成分を用いてパターン境界の位置を判定できなかった場合は、前記主成分行列の第２行の各要素を主成分として選択し、以下、前記境界判定部がパターン境界の位置を判定できない毎に、前記主成分行列中の上からＫ行目（Ｋは１以上かつ主成分行列の行数以下の任意の整数）までの部分行列である判定対象主成分中の上の行から順に１行中の各要素を主成分として選択することを特徴とする。
【００１１】
［５］また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、多次元時系列データを多次元時系列データ記憶部に保存し、古い順にＮ個（Ｎは任意の正の整数）の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示し、前記境界判定部がパターン境界の位置を判定し出力した場合に該パターン境界の位置以後の多次元時系列データ中から古い順にＮ個の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ取得部と、判定対象主成分に含まれる全ての主成分について前記境界判定部がパターン境界の位置を判定できなかった場合に、前記主成分分析部が主成分分析を行ったフレームと該フレームよりも新しいフレーム中から古い順にＰ個（Ｐは任意の正の整数）のフレームとを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ追加部とをさらに具備することを特徴とする。
【００１２】
［６］また、本発明の一態様による多次元時系列データ分析装置は、複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、主成分行列を記憶する主成分行列記憶部と、前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、前記主成分行列中のある１行に含まれる複数の要素を主成分として選択する主成分選択部と、前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点が存在する場合に前記主成分の値の自己相関を算出し、該自己相関の値が極大となる時刻に基づいてパターン境界の位置を判定して出力する境界判定部とを具備することを特徴とする。
【００１３】
［７］また、本発明の一態様による多次元時系列データ分析プログラムは、複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析ステップと、前記主成分行列中のある１行に含まれる複数の要素を主成分として選択する主成分選択ステップと、前記主成分選択ステップが選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点に基づいて前記多次元時系列データのパターン境界を判定して出力する境界判定ステップとを具備することを特徴とする。
【発明の効果】
【００１４】
この発明によれば、多次元時系列データ分析装置において、ガウス混合モデルのパラメータ値を決定することや事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要であり、かつ、より少ない計算量でパターン境界を判定することができる。
【図面の簡単な説明】
【００１５】
【図１】この発明の一実施形態による多次元時系列データ分析装置１の構成を示す概略ブロック図である。
【図２】人体スケルトン型動きデータの定義に用いられる人体のスケルトンモデルの例を示す概略図である。
【図３】同実施形態において多次元時系列データ分析装置１がパターン境界判定を行う際に、主成分から算出した各値の例を示すグラフである。
【図４】同実施形態において多次元時系列データ分析装置１の処理手順を示すフロー図である。
【図５】同実施形態において境界判定部４１が行う、図４のステップＳａ４における処理の手順を示すフロー図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、この発明の一実施形態による多次元時系列データ分析装置１の構成を示す概略ブロック図である。同図において、多次元時系列データ分析装置１は、データ取得部１１と、データメモリ（多次元時系列データ記憶部）１２と、主成分分析部２１と、主成分行列記憶部（図示せず）と、主成分選択部３１と、境界判定部４１と、データ追加部５１とを含んで構成される。
【００１７】
本実施形態では、多次元時系列データの一例として人体のスケルトンモデル（Skeleton Model、骨格の型）で定義された人体スケルトン型動きデータを用いる。スケルトン型動きデータは、スケルトン型が定義された対象物であるスケルトン型対象物の各ジョイントの動きを記録したデータである。スケルトン型対象物としては例えば、人体や動物やロボットなどがある。
【００１８】
図２は、人体スケルトン型動きデータ（以下、単に「動きデータ」と称する）の定義に用いられる人体のスケルトンモデルの例を示す概略図である。人体のスケルトンモデルは、人の骨格を基に、骨及び骨の連結点（ジョイント、Joint）を用い、ある１つのジョイントを根（ルート、Root）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー、Tree）構造として構成される。図５において、ジョイント１００は腰の部分であり、ルートである。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分である。なお、肩の部分のジョイントなどを含むより複雑なスケルトンモデルを用いてもよい。
【００１９】
動きデータは、各ジョイントの位置情報または角度情報または速度情報または加速度情報あるいはこれらの組み合わせで表現することが可能である。本実施形態の多次元時系列データ分析装置は、人体スケルトン型角度情報データや人体スケルトン型加速度情報データなど、様々な表現形式の動きデータに対してパターン境界判定を行うことができる。
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢（ポーズ、Pose）の連続により示すものであり、人の基本ポーズ（Neutral Pose）を示す基本ポーズデータと、実際の人の動きの中の各ポーズを示すポーズ毎のフレームデータとを含む。基本ポーズデータは、基本ポーズにおけるルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を含む。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続として、人の一連の動きが特定される。なお、人体スケルトン型動きデータは、人の動きをカメラ撮影した映像からモーションキャプチャ（Motion Capture）処理によって生成する、或いは、キーフレームアニメーション（Key Frame Animation）の手法を用いて生成することができる。
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【００２０】
図１に戻って各部の機能について説明する。
データメモリ１２は、複数時刻のそれぞれにおいて多次元データを時系列に従い配置してなる多次元時系列データを記憶する。以下では、多次元データメモリ１２に記憶される多次元時系列データの行列をＸで示す。
主成分行列記憶部（図示せず）は、主成分分析部２１が生成する主成分行列Ｙを記憶する。
データ取得部１１は一定期間ごとの複数の時刻において動きデータを取得する。以下では、データ取得部１１が動きデータを取得する時刻を古い順に、時刻１，時刻２，時刻３，…で示す。データ取得部１１は取得した動きデータのうちルートの自由度を除いた他の自由度に対応するデータをデータメモリ１２に時系列順に書き込む。すなわち、データ取得部１１は、入力される多次元時系列データ（以下では、データ取得部１１に入力される多次元時系列データの行列をＸ’で示す）からルートの自由度を除いた多次元時系列データの行列Ｘをデータメモリ１２に書き込む。以下では、データメモリ１２に書き込まれる、時刻ごとの多次元データをフレームという。ｉ番目に古い時刻にフレームに番号ｉを付して各フレームを区別する。なお、データ取得部１１は取得した動きデータからルートの自由度を除かずにそのままのデータをデータメモリ１２に保存してもよい。
また、データ取得部１１はＮ個のフレームを主成分分析部２１に対してＮ個のフレームを読み出すよう指示する。ここで、Ｎは予め定められた定数である。多次元時系列データ分析装置１がパターン境界の判定を開始するときには、データ取得部１１は、第１フレームの番号「１」と第Ｎフレームの番号Ｎとを主成分分析部２１に出力する。ここで、Ｎは任意の正の整数である。一方、境界判定部４１がパターン境界の位置を判定した場合は、データ取得部１１はパターン境界の位置と判定された第Ｑフレーム以降に取得されたフレームの中から古い順にＮ個のフレームを示す、最初のフレームの番号Ｑと最後のフレームの番号Ｑ＋Ｎ−１とを主成分分析部２１に出力する。つまり、データ取得部１１は、まず古い順にＮ個の時刻分のデータを多次元時系列データ記憶部（データメモリ）１２から読み出すよう主成分分析部２１に指示し、境界判定部４１がパターン境界の位置を判定し出力した場合に該パターン境界の位置以後の多次元時系列データの行列Ｘ中から古い順にＮ個の時刻分のデータを多次元時系列データ記憶部（データメモリ）１２から読み出すよう主成分分析部２１に指示する。なお、フレームの個数を示すＮの値を変更可能としてもよい。例えば、境界判定部４１がパターン境界の位置を判定して処理を終了した時点で変更することができる。
【００２１】
主成分分析部２１は、データ取得部１１から入力されたフレームの番号に従ってデータメモリ１２からＮ個のフレームを読み出し、Ｍ行Ｎ列の多次元時系列データの行列Ｘ＝（ｘ（１），ｘ（２），…ｘ（Ｎ））を生成する。ここで、Ｍは各フレームに含まれるデータの個数、ｘ（ｉ）は第ｉフレームのデータ縦ベクトルで表したものを示す。主成分分析部２１は、以下の手順に従って多次元時系列データの行列Ｘから主成分行列Ｙを生成する。つまり、主成分分析部２１は、データメモリ（多次元時系列データ記憶部）１２から読み出される多次元時系列データであるＮ個のフレームに対して以下の手順で主成分分析を行うことによって主成分行列Ｙを生成する。
【００２２】
手順１：式（１）を用いて、多次元時系列データの行列Ｘから該多次元時系列データの平均値の行列を減算したＮ行Ｍ列の変動データ行列Ｄを生成する。
【００２３】
【数１】
2010231452.tif 000003
【００２４】
手順２：式（２）を用いて、変動データ行列Ｄに対して特異値分解（Singular Value Decomposition）を行う。
【００２５】
【数２】
2010231452.tif 000004
【００２６】
但し、Ｕは、Ｎ行Ｎ列のユニタリ行列である。Σは、Ｎ行Ｍ列の負でない対角要素を降順にもつ対角行列であり、主成分空間における座標の分散を示す。Ｖは、Ｍ行Ｍ列のユニタリ行列であり、主成分に対する係数（Principal Component）である。
【００２７】
手順３：式（３）を用いて、主成分空間上のＭ行Ｎ列の主成分行列Ｙを生成する。つまり、主成分分析部２１は、変動データ行列Ｄに対して特異値分解を行うことによって主成分行列Ｙを生成する。
主成分分析部２１は、主成分行列Ｙを主成分行列記憶部（図示せず）に書き込む。また主成分分析部２１は、データ取得部１１から入力された最初のフレームの番号と最後のフレームの番号とを主成分選択部３１に出力する。
【００２８】
【数３】
2010231452.tif 000005
【００２９】
主成分選択部３１は、主成分行列Ｙの中から１行分の要素を主成分として選択し、選択した主成分の番号を境界判定部４１に出力する。つまり、主成分選択部３１は主成分行列Ｙ中のある１行に含まれる複数の要素を主成分として選択する。併せて、主成分選択部３１は、主成分分析部２１から入力された最初のフレームの番号と最後のフレームの番号とを境界判定部４１に出力する。
主成分選択部３１は、以下の３つの場合に応じて主成分を選択する。
ケース１：主成分分析部２１から主成分行列Ｙが入力された後最初に境界判定部４１に主成分を出力する場合、主成分選択部３１は、主成分行列Ｙの第１行の各要素を主成分として選択する。以下、行列Ｙの第１行の各要素を第１主成分という。第１主成分はフレーム毎のデータ値の変化が大きく、境界判定が適切に行われることが期待されるが、フレームによっては他の行のほうがデータ値の変化が大きい場合もある。
ケース２：境界判定部４１が第１主成分を用いてパターン境界が無いと判定した場合、つまりパターン境界の位置を判定出来なかった場合は、主成分行列Ｙの第２行の各要素を主成分として選択する。以下、行列Ｙの第２行の各要素を第２主成分という。
ケース３：境界判定部４１が、第２主成分を用いた判定でパターン境界が無いと判定した場合は、主成分行列Ｙの第３行の各要素を主成分として選択する。以下、行列Ｙの第３行の各要素を第３主成分という。なお、主成分選択部が選択する主成分は第１主成分から第３主成分までに限らず、第Ｋ主成分（Ｋは１以上かつ主成分行列の行数以下の任意の整数）までを上記のように順次選択もよい。つまり、主成分選択部２１は、境界判定部４１がパターン境界の位置情報を判定できない毎に、主成分行列Ｙ中の上からＫ行列目までの部分行列である判定対象主成分中の上の行から順に１行中の各要素を主成分として選択する。
以下では、主成分選択部３１が選択した主成分を、行列Ｙでの順番、すなわち時系列順に従ってｙ（１）、ｙ（２）、…、ｙ（Ｎ）で示す。
【００３０】
境界判定部４１は、主成分選択部３１から入力された主成分の番号に従って、主成分選択部３１が選択した主成分を主成分行列記憶部（図示せず）から読み出す。また、境界判定部４１は主成分行列Ｙの中から主成分選択部３１が選択した境界判定部４１は主成分を用いて、判定対象のＮフレーム中にパターン境界があるか否かを判定する。境界判定部４１は、パターン境界があると判定した場合は該パターン境界の位置として、先のパターンの終了時刻と後のパターンの開始時刻とを判定する。境界判定部４１は主成分の極点（値が極大または極小となる点）における該主成分の値を用いて、後述する一連の式で示される予め定められた条件を主成分が満たすか否かを判定することによってパターン境界の有無を判定する。境界判定部４１は、以下の手順に従い判定を行う。
手順１：式（４）を用いて主成分の極点を求める。以下では、主成分が極点をとる時刻（以下、極点の時刻または単に時刻という）を古い順にｃ（１），ｃ（２），ｃ（３），…で示す。
【００３１】
【数４】
2010231452.tif 000006
【００３２】
手順２：以下の初期化を行う。最初の２個の極点の時刻ｃ（１）およびｃ（２）について、式（５）を用いて前方平均値ｆｍ（１）および前方平均値ｆｍ（２）を算出する。
【００３３】
【数５】
2010231452.tif 000007
【００３４】
手順３：パターン境界の有無を判定するための特徴量として、時刻ｃ（ｊ）における前方平均値ｆｍ（ｊ）を、式（５）を用いて算出する。
また、パターン境界の有無を判定するための特徴量として、時刻ｃ（ｊ＋１）とｃ（ｊ＋２）における後方平均値ｂｍ（ｊ＋１）とｂｍ（ｊ＋２）とを、式（６）を用いて算出する。
【００３５】
【数６】
2010231452.tif 000008
【００３６】
手順４：式（７）を用いて時刻ｃ（ｊ）における前方平均値の平均値ｍｍ（ｊ）を算出する。
【００３７】
【数７】
2010231452.tif 000009
【００３８】
式（８）を用いて時刻ｃ（ｊ）における前方平均値の標準偏差ｓｔｄｍ（ｊ）を算出する。
【００３９】
【数８】
2010231452.tif 000010
【００４０】
式（９）を用いて時刻ｃ（ｊ＋１）における後方平均値ｂｍ（ｊ＋１）と前方平均値の平均値ｍｍ（ｊ）との大きさの差ｄｉｆｆ１（ｊ）と、時刻ｃ（ｊ＋２）における後方平均ｂｍ（ｊ＋２）と前方平均値の平均値ｍｍ（ｊ）との大きさの差ｄｉｆｆ２（ｊ）とを算出する。
【００４１】
【数９】
2010231452.tif 000011
【００４２】
式（１０）成立する場合はパターン境界があると判定し、成立しない場合はパターン境界が無いと判定する。
【００４３】
【数１０】
2010231452.tif 000012
【００４４】
境界判定部４１は、式（１０）の成否に応じて以下を行う。
ケース１：式（１０）が不成立の場合、すなわちパターン境界が無いと判定した場合は、判定対象の時刻ｃ（ｊ）の極点から時間方向に３個後の時刻ｃ（ｊ＋３）の極点が存在するかを判定する。時刻ｃ（ｊ＋１）の極点が存在すると判定した場合は、時刻ｃ（ｊ＋１）の極点以降について手順３以降を繰り返す。
時刻ｃ（ｊ＋３）の極点が存在しないと判定した場合は、用いた主成分が第何主成分かを判断する。第１主成分または第２主成分の場合は、主成分選択部３１に、主成分の番号と最初のフレームの番号と最後のフレームの番号とを出力する。第３主成分の場合は、データ追加部５１に最初のフレームの番号と最後のフレームの番号とを出力する。
ケース２：式（１０）が成立する場合、すなわちパターン境界があると判定した場合は、具体的な境界位置を判定する。判定の対象となっている時刻ｃ（ｊ）の極点から順に、式（９）のｄｉｆｆ１（ｊ）とｄｉｆｆ２（ｊ）とを算出し、式（１１）の成否を判定する。式（１１）が成立する最初の極点の時刻を先のパターンの終了時刻と判定し、次の極点の時刻を次のパターンの開始時刻と判定し、これらの時刻を境界データとして出力する。つまり、境界判定部４１は主成分の極点の各々について、当該極点以前の所定期間における主成分の値の平均値である前方平均値と当該極点以後の所定期間における主成分の値の平均値である後方平均値とを算出し、前方平均値に基づいて、主成分の極点毎に主成分の値の分布の中心と分布幅とを決定し、後方平均値と分布の中心との差を主成分の値と分布の中心とのずれとして、該ずれが分布幅よりも大きくなる点に基づいて多次元時系列データＸ’のパターン境界を判定して出力する。主成分の値と分布の中心とのずれを算出する際に主成分の値として後方平均値を用いるのは、主成分の値が局所的に大きくまたは小さくなる、いわばノイズによる極点をパターン境界と判定しないためである。式（１１）が成立する極点が存在しない場合は、パターン境界が無いとの判定に変更する。
【００４５】
【数１１】
2010231452.tif 000013
【００４６】
図３は、多次元時系列データ分析装置１がパターン境界判定を行う際に、主成分から算出した各値の例を示すグラフである。境界判定部４１は、時刻ｃ（３）から順にパターン境界の有無を判定する。ここで、説明のために式（１０）を式（１２）と変形する。
【００４７】
【数１２】
2010231452.tif 000014
【００４８】
同図において、ｂｍ（５）≦ｍｍ（３）＋ＴＨ１・ｓｔｄｍ（３）かつｂｍ（５）≧ｍｍ（３）−ＴＨ１・ｓｔｄｍ（３）であり、式（１２）は成立しないので式（１０）も成立しない。したがって、境界判定部４１は、手順４においてパターン境界が無いと判定し、次の極点について判定を行う。同様に時刻ｃ（４）〜ｃ（１４）では式（１０）は成立しない。したがって、境界判定部４１はパターン境界が無いと判定し、次の極点について判定を行う。時刻ｃ（１５）では式（１２）が成立するので式（１０）が成立する。境界判定部４１は、手順４においてパターン境界があると判定し、具体的な境界位置の判定を行う。時刻ｃ（１５）において式（１１）は成立するので、境界判定部４１は、時刻ｃ（１５）を先のパターンの終了時刻、時刻ｃ（１６）を次のパターンの開始時刻と判定する。
【００４９】
なお、手順４で式（１０）が成立した場合、すなわち境界判定部４１がパターン境界があると判定した場合、以下のように主成分の値の自己相関を算出し、該自己相関に基づいてパターン境界の位置を求めてもよい。
まず、境界判定部４１は主成分座標ｙ（ｔ）の自己相関Ｒ（τ）を、式（１３）を用いて算出する。
【００５０】
【数１３】
2010231452.tif 000015
【００５１】
次に、境界判定部４１は自己相関Ｒ（τ）が極大となる点のうち、時刻τ＝０を除いて最大値Ｒ（τ＊）をとる時刻τ＊を算出し、時刻τ＊の直前の極点の時刻ｃ（ｊ）と直後の極点の時刻ｃ（ｊ＋１）をそれぞれ先のパターンの終了時刻と次のパターンの開始時刻と判定する。
【００５２】
手順５：手順４までを行った境界判定部４１は、以下の各場合に応じて処理を終了する。
ケース１：手順４でパターン境界が存在すると判定した場合、先のパターンの終了時刻と次のパターンの開始時刻とをパターン境界の位置として出力し、データ取得部１１に次のパターンの開始時刻を出力する。
ケース２：第３主成分を用いて判定を行い、手順４でパターン境界が無いと判定した場合、主成分選択部３１から入力された最初のフレームの番号および最後のフレームの番号をデータ追加部５１に出力する。
ケース３：他の場合（第１主成分または第２主成分を用いて判定を行い、手順４でパターン境界が無いと判定した場合）、主成分選択部３１から入力された主成分の番号を主成分選択部３１に出力する。
なお、上記主成分選択部３１の説明において説明したように、境界判定部が用いる主成分は第１主成分から第３主成分までに限らず、第Ｋ主成分（Ｋは１以上かつ主成分行列の行数以下の任意の整数）までを順次用いて判定を行ってもよい。
【００５３】
データ追加部５１は、境界判定部４１が第３行の各要素で構成される第３主成分を用いてパターン境界が無いと判定した場合に、主成分分析部２１が主成分分析を行う対象とするフレームにＰ個（Ｐは任意の正の整数）のフレームを追加する。なお、データ追加部５１が追加するフレーム数は変更可能としてもよい。
【００５４】
図４は多次元時系列データ分析装置１の処理手順を示すフロー図である。多次元時系列データ分析装置１がパターン境界判定を開始すると、まず、予め定められた複数の時刻においてデータ取得部１１が動きデータをフレームとして取得してデータメモリ１２に記憶する。データ取得部１１は、Ｎ個のフレームの番号として最初のフレームの番号「１」と最後のフレームの番号Ｎとを主成分分析部２１に出力する（ステップＳａ１）。主成分分析部２１は、第１フレームから第Ｎフレームまでをデータメモリ１２から読み出して主成分分析を行い、主成分空間の行列Ｙを生成して主成分記憶部（図示せず）に書き込む。主成分分析部２１は、最初のフレームの番号「１」と最後のフレームの番号Ｎとを主成分選択部３１へ出力する（ステップＳａ２）。主成分選択部３１は、第１主成分であることを示す数字「１」と最初のフレームの番号「１」と最後のフレームの番号Ｎとを境界判定部４１へ出力する（ステップＳａ３）。なお、以下では第何主成分であるかを示す数字を主成分の番号という。
【００５５】
境界判定部４１は、第１主成分を主成分記憶部（図示せず）から読み出し、該第１主成分を用いてＮ個のフレーム中にパターン境界があるか否かを判定し、パターン境界があると判定した場合には、前のパターンの終了時刻と次のパターンの開始時刻とを境界データとして出力する（ステップＳａ４）。また、パターン境界があると判定した場合は、境界判定部４１は、次のパターンの開始時刻Ｑをデータ取得部１１に出力する（ステップＳａ４−境界有り）。データ取得部１１は、入力された次のパターンの開始時刻以降の残りフレーム数を調べ（ステップＳａ２１）、Ｎ個以上無い場合は多次元時系列データ分析装置１の処理を終了する（ステップＳａ２１−Ｎフレーム未満）。一方、Ｎ個以上ある場合は（ステップＳａ２１−Ｎフレーム以上）、データ取得部１１は、最初のフレームの番号Ｑと、最後のフレームの番号Ｑ＋Ｎ−１とを主成分分析部２１に出力する（ステップＳａ１）。以降、多次元時系列データ分析装置１はステップＳａ２以下を繰り返す。
なお、データ取得部１１は、多次元時系列データ分析装置１の処理開始時に全データを取得しておく必要はなく、各部の処理と並行してデータを取得してもよい。この場合、フレーム数の判定は、フレームを取得予定の回数を既に取得しているフレームの個数と足し合わせた数を用いて行う。または、データ取得が終了しているか否かの情報を取得して、データ取得が終了している場合かつ残りデータ数が足りない場合に処理を終了してもよい。
【００５６】
ステップＳａ４において、パターン境界が無いと判定した場合は、境界判定部４１は主成分の番号「１」を主成分選択部３１に出力する（ステップＳａ４−判定途中）。主成分選択部３１は、第１主成分の次の第２主成分（行列Ｙの第２行のデータ）と、主成分の番号「２」とを境界判定部４１へ出力する（ステップＳａ３）。境界判定部４１は、第２主成分を用いてステップＳａ４を繰り返す（ステップＳａ４）。第２主成分についてもパターン境界が無いと判定した場合は、境界判定部４１は主成分の番号「２」を主成分選択部３１に出力する（ステップＳａ４−判定途中）。主成分選択部３１は、第２主成分の次の第３主成分（行列Ｙの第３行のデータ）と、主成分の番号「３」とを境界判定部４１へ出力する（ステップＳａ３）。境界判定部４１は、第３主成分を用いてステップＳａ４を繰り返す（ステップＳａ４）。
第３主成分についてもパターン境界が無いと判定した場合は、境界判定部４１はデータ追加部５１に最初のフレームの番号「１」と最後のフレームの番号Ｎとを出力する（ステップＳａ４−境界無し）。データ追加部５１は、データメモリ１２を参照して全フレームの個数を調べ、Ｐ個以上残りがあるか判定する（ステップＳａ３１）。Ｐ個以上残りが無い場合は、多次元時系列データ分析装置１は処理を終了する（ステップＳａ３１−Ｐ個未満）。Ｐ個以上残りがある場合は（ステップＳａ３１−Ｐ個以上）、データ追加部５１はＰ個のフレームを追加する、すなわち最初のフレームの番号「１」と最後のフレームの番号Ｎ＋Ｐとを主成分分析部２１へ出力する（ステップＳａ３２）。以降、多次元時系列データ分析装置１はステップＳａ２以下を繰り返す。
【００５７】
図５は境界判定部４１が行う、図４のステップＳａ４における処理の手順を示すフロー図である。
主成分選択部３１から主成分の番号と最初のフレームの番号と最後のフレームの番号との入力を受けると、境界判定部４１は主成分の極点を求める（ステップＳｂ１）。次に、境界判定部４１は、初期化として、最初の２個の極点の時刻ｃ（１）とｃ（２）とについて前方平均値ｆｍ（１）とｆｍ（２）とを算出する（ステップＳｂ２）。次に、境界判定部４１は、境界の有無を判定するための特徴量として、３番目の極点の時刻ｃ（３）における前方平均値ｆｍ（３）と、４番目および５番目の極点の時刻ｃ（４）およびｃ（５）における後方平均値ｂｍ（４）およびｂｍ（５）とを算出する（ステップＳｂ３）。境界判定部４１は、算出した特徴量を用いて時刻ｃ（３）についてパターン境界の有無を判定する（ステップＳｂ４）。パターン境界が無いと判定した場合は（ステップＳｂ４−境界無し）、判定対象の極点から時間方向に３個後の極点が存在するか（ここでは時刻ｃ（６）の極点が存在するか）を判定する（ステップＳｂ２１）。該極点が存在すると判定した場合は（ステップＳｂ２１−有り）、パターン境界の有無を判定した極点の時刻ｃ（３）の次の極点の時刻ｃ（４）以降について順次ステップＳｂ３以降を繰り返す。ステップＳｂ４において極点が存在しないと判定した場合は（ステップＳｂ２１−無し）、用いた主成分が第何主成分かを判断する（Ｓｂ２２）。第１主成分または第２主成分の場合は（Ｓｂ２２−第１、２主成分）、主成分の番号と最初のフレームの番号と最後のフレームの番号とを主成分選択部３１に出力し（ステップＳｂ３１）、処理を終了する。第３主成分の場合は（Ｓｂ２２−第３主成分）、データ追加部５１に最初のフレームの番号と最後のフレームの番号とを出力し（ステップＳｂ４１）、処理を終了する。
ステップＳｂ４において境界があると判定した場合は（ステップＳｂ４−境界有り）、具体的な境界位置として、先のパターンの終了時刻と次のパターンの開始時刻とを決定する（ステップＳｂ５１）。これらの時刻を決定できた場合は（ステップＳｂ５２−境界位置決定）、先のパターンの終了時刻と次のパターンの開始時刻とを境界データとして出力する。また、次のパターンの開始時刻をデータ取得部１１に出力し（ステップＳｂ６１）、処理を終了する。具体的な境界位置を決定できなかった場合は（ステップＳｂ５２−境界位置決定せず）、パターン境界が無いとの判定に変更してステップＳｂ２２以下を行う。
【００５８】
なお、本実施形態ではデータ取得部１１は、取得した動きデータからルートの自由度を除いた他の自由度のデータを各フレームのデータとしたが、人体スケルトン型角度情報の入力を受けて各ジョイントの相対位置を算出し、これを各フレームのデータとしてもよい。この場合、データ取得部１１は、人体スケルトン型角度情報データとして基本ポーズデータとフレームデータとの入力を受け、各ジョイントの位置を算出する。ここで、基本ポーズデータは、基本ポーズとして定められたあるポーズにおけるルートの位置及び各ジョイントの角度、並びに各骨の長さなど、基本ポーズを特定するデータである。フレームデータは、各データ測定時刻における各ジョイントの基本ポーズからの移動量を示す。ここでは、移動量として角度情報を用いる。
データ取得部１１は、データ測定時刻ｔにおけるｉ−１番目のジョイントから見たｉ番目のジョイントの相対位置Ｍｉ（ｔ）を、式（１４）を用いて算出する。
【００５９】
【数１４】
2010231452.tif 000016
【００６０】
データ取得部１１は、データ測定時刻ｔにおけるｋ番目のジョイントの位置ｐｋ（ｔ）を、式（１５）を用いて算出する。ｐｋ（ｔ）は３次元座標で示される。以下では、時刻ｔは、０，１，２，・・・，Ｔ−１の値をとるものとし、時刻ｔをフレームデータのインデックスとしても扱う。ここで、Ｔは、データ取得部１１に入力されるフレームデータの個数である。
【００６１】
【数１５】
2010231452.tif 000017
【００６２】
但し、０番目（ｉ＝０）のジョイントはルートである。行列Ｒａｘｉｓｉ−１，ｉ（ｔ）は、基本ポーズにおけるｉ番目のジョイントとその親ジョイント（「ｉ−１」番目のジョイント）との位置関係を示す行列であり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が設定されており、行列Ｒａｘｉｓｉ−１，ｉ（ｔ）は、親子関係にあるジョイント間のローカル座標系の対応関係を示す。Ｒｉ（ｔ）は、ｉ番目のジョイントについて設定されたローカル座標系を用いてｉ番目のジョイントの角度情報を示す行列であり、フレームデータに含まれる。Ｔｉ（ｔ）は、ｉ番目のジョイントとその親ジョイントとの間の遷移を示す行列、具体的にはｉ番目のジョイントとその親ジョイント間の骨の長さを示す行列であり、基本ポーズデータに含まれる。
データ取得部１１は式（１６）を用いて、時刻ｔにおけるルートに対するｋ番目のジョイントの相対位置（ジョイント相対位置）ｐ’ｋ（ｔ）を算出する。
【００６３】
【数１６】
2010231452.tif 000018
【００６４】
但し、ｐｒｏｏｔ（ｔ）は時刻ｔにおけるルート（０番目のジョイント）の位置（ｐ０（ｔ））である。データ取得部１１は式（１７）を用いて時刻ｔのフレームｘ（ｔ）を、ｘ（ｔ）＝（ｐ’１（ｔ），ｐ’２（ｔ），・・・，ｐ’Ｋ（ｔ））と生成する。但し、Ｋは、ルートを除いたジョイントの個数である。
【００６５】
なお、データ取得部１１は、人体スケルトン型加速度情報データの入力を受けて、各時刻における各ジョイントのジョイント相対速度を算出し、これを各フレームのデータとしてもよい。この場合、データ取得部１１は、まず、各ジョイントの初期速度の入力を受ける。次に、データ取得部１１は、式（１７）を用いて、時刻ｔにおけるｋ番目のジョイントの速度ｖｋ（ｔ）を算出する。式（１７）では、加速度の積分値を初期速度に加算している。
【００６６】
【数１７】
2010231452.tif 000019
【００６７】
但し、ｖ０ｋはｋ番目のジョイントの初期速度である。ａｋ（τ）は時刻τにおけるｋ番目のジョイントの加速度であり、データ取得部１１に入力される人体スケルトン型加速度情報データに含まれる。
次いで、データ取得部１１は、式（１８）を用いて、時刻ｔにおけるｋ番目のジョイントの位置pｋ（ｔ）を算出する。
【００６８】
【数１８】
2010231452.tif 000020
【００６９】
なお、データ取得部１１は、上記の式（１６）を用いて、時刻ｔにおけるジョイント相対位置p’ｋ（ｔ）を算出してもよい。
【００７０】
以上のように、本実施形態の多次元時系列データ分析装置１は、ガウス混合モデルやパターン学習の手法を用いてパターン境界の判定を行う多次元時系列データ分析装置とは異なり、ガウス混合モデルのパラメータ値を予め決定することや事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要である。また、本実施形態の多次元時系列データ分析装置１は、判定対象であるＮフレーム内のパターン境界の判定を、１回の主成分分析によって得られる各時刻における主成分を用いて行う。したがって、フレームを一定数ずつ増やすごとに主成分分析を行い、各回の主成分分析結果の違いに基づいてパターン境界を判定する多次元時系列データ分析装置と比べて主成分分析の回数が少なくて済むので、より少ない計算量でパターン境界を判定できる。
【００７１】
なお、図１におけるデータ取得部１１と、主成分分析部２１と、主成分選択部３１と、境界判定部４１との機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００７２】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００７３】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【００７４】
本発明は、多次元時系列データ分析装置に用いて好適である。なお、本発明は、上述した実施形態で扱った人の動きデータに限らず、要素が数値で示される様々な多次元時系列データに適用できる。
【符号の説明】
【００７５】
１…多次元時系列データ分析装置
１１…データ取得部
１２…データメモリ
２１…主成分分析部
３１…主成分選択部
４１…境界判定部
５１…データ追加部
【図１】
2010231452.tif 000021
【図２】
2010231452.tif 000022
【図３】
2010231452.tif 000023
【図４】
2010231452.tif 000024
【図５】
2010231452.tif 000025