説明

多次元時系列データ分析装置及び多次元時系列データ分析プログラム

【課題】予めパラメータ値の決定や事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要であり、かつ、より少ない計算量でパターン境界を判定できる多次元時系列データ分析装置を提供する。
【解決手段】多次元時系列データ分析装置が、多次元時系列データ記憶部から読み出される多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、主成分行列中のある1行に含まれる複数の要素を主成分として選択する主成分選択部と、主成分選択部が選択した主成分を主成分行列記憶部から読み出し、主成分の値の分布の中心と分布幅を決定し、主成分の値と分布の中心とのずれが分布幅よりも大きくなる点に基づいて多次元時系列データのパターン境界を判定して出力する境界判定部とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多次元時系列データ分析装置及び多次元時系列データ分析プログラムに関する。
【背景技術】
【0002】
多次元時系列データは、多次元で起こる現象を一定の時間間隔で観測して記録した多次元の時系列データである。多次元時系列データとしては、人や物体等の動きを表す動きデータ、映像のデータ、複数のマイクロホンで集音した音声データ、複数の株価の推移を表すデータ、複数の地域で観測した気温データなどがある。ある時刻の多次元データは、フレーム(Frame)と呼ばれる。
多次元時系列データからパターンを抽出するために、各パターンの境界を判定することを、パターン境界判定という。例えば、人の動きを示す多次元時系列データである人体スケルトン(Skeleton、骨格)型動きデータのパターン境界判定においては、歩行や走行など複数の動きのパターンを含む動きデータから各動きのパターンの開始時刻と終了時刻とを判定する。
【0003】
人体スケルトン型動きデータからパターン境界を判定する方法として、例えば、非特許文献1および2に示される方法が知られている。非特許文献1では、パターン境界を判定する3つの方法が示されている。方法1では人体スケルトン型動きデータに対して主成分分析を行う際に生じる誤差の変化量に基づいて、パターンの境界を判定する。方法2では人体スケルトン型動きデータに対して主成分分析を行って動きデータの各フレーム間の類似度を評価して、動きパターンの境界を判定する。方法3では連続するフレームが同じガウス混合モデル(Gaussian Mixture Model)に含まれない場合に、その箇所を動きパターンの境界であると判定する。非特許文献2では、サポートベクターマシン(Support Vector Machine: SVM)で動きのパターン境界を判定する方法が示されている。
人間の動作を表現する人体スケルトン型動きデータは、通常、多くの自由度を有するが、各ジョイント間には強い関連性がある。そこで、人体スケルトン型動きデータの次元削減のために主成分分析を行うことが有効である。主成分分析の方法としては、例えば、非特許文献3および非特許文献4に示される方法がある。これらの方法では、人体スケルトン型動きデータ全体を主成分分析し、動きに対する寄与率の高い幾つかの主成分を抽出する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】J. Barbic、他5名,"Segmenting Motion Capture Data into Distinct Behaviors",Proceedings of Graphics Interface 2004,2004年,Vol. GI04,p.185-194
【非特許文献2】O. Arikan、他2名,"Motion synthesis from annotations",ACM Transactions on Graphics,2003年7月,vol.22(3),p.402-408
【非特許文献3】L. M. Tanco、他1名,"Realistic synthesis of novel human movements from a database of motion capture examples",IEEE Workshop on Human Motion,200年,p.137-142
【非特許文献4】P. Glardon、他2名,"PCA-based Walking Engine Using Motion Capture Data",Computer Graphics International,2004年,p.292-298
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した非特許文献1の方法1および方法2では、フレームを一定数ずつ増やすごとに主成分分析を行い、各回の主成分分析結果の違いに基づいてパターン境界を判定するため繰り返し主成分分析を行う必要があり、計算量が膨大になる。
また、方法3では、予めガウス混合モデルのパラメータ値を決定することは困難である。さらに、事前の訓練が必要なため、オンライン処理には適用できないという問題もある。また、非特許文献2の方法では、ユーザが訓練用データを作成し、サポートベクターマシンが判別を間違えた場合はユーザが正解を示す必要がある。
【0006】
本発明は、このような事情に鑑みてなされたものであり、その目的は、ガウス混合モデルのパラメータ値を決定することや事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要であり、かつ、より少ない計算量でパターン境界を判定できる多次元時系列データ分析装置を提供することにある。
【課題を解決するための手段】
【0007】
[1]この発明は上述した課題を解決するためになされたもので、本発明の一態様による多次元時系列データ分析装置は、複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、主成分行列を記憶する主成分行列記憶部と、前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、前記主成分行列中のある1行に含まれる複数の要素を主成分として選択する主成分選択部と、前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点に基づいて前記多次元時系列データのパターン境界を決定して出力する境界判定部とを具備することを特徴とする。
【0008】
[2]また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、前記境界判定部は、前記主成分の極点の各々について、当該極点以前の所定期間における前記主成分の値の平均値である前方平均値と当該極点以後の前記所定期間における前記主成分の値の平均値である後方平均値とを算出し、該前方平均値に基づいて、前記極点毎に前記分布の中心と前記分布幅とを決定し、前記後方平均値と前記分布の中心との差を前記ずれとすることを特徴とする。
【0009】
[3]また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、前記主成分分析部は、前記多次元時系列データに基づく処理対象行列から該処理対象行列の時間方向の平均値の行列を減算して変動データ行列を生成し、該変動データ行列に対して特異値分解を行うことによって主成分行列を生成することを特徴とする。
【0010】
[4]また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、前記主成分選択部は、前記主成分行列の第1行の各要素を主成分として選択し、前記境界判定部が該主成分を用いてパターン境界の位置を判定できなかった場合は、前記主成分行列の第2行の各要素を主成分として選択し、以下、前記境界判定部がパターン境界の位置を判定できない毎に、前記主成分行列中の上からK行目(Kは1以上かつ主成分行列の行数以下の任意の整数)までの部分行列である判定対象主成分中の上の行から順に1行中の各要素を主成分として選択することを特徴とする。
【0011】
[5]また、本発明の一態様による多次元時系列データ分析装置は、上述の多次元時系列データ分析装置であって、多次元時系列データを多次元時系列データ記憶部に保存し、古い順にN個(Nは任意の正の整数)の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示し、前記境界判定部がパターン境界の位置を判定し出力した場合に該パターン境界の位置以後の多次元時系列データ中から古い順にN個の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ取得部と、判定対象主成分に含まれる全ての主成分について前記境界判定部がパターン境界の位置を判定できなかった場合に、前記主成分分析部が主成分分析を行ったフレームと該フレームよりも新しいフレーム中から古い順にP個(Pは任意の正の整数)のフレームとを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ追加部とをさらに具備することを特徴とする。
【0012】
[6]また、本発明の一態様による多次元時系列データ分析装置は、複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、主成分行列を記憶する主成分行列記憶部と、前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、前記主成分行列中のある1行に含まれる複数の要素を主成分として選択する主成分選択部と、前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点が存在する場合に前記主成分の値の自己相関を算出し、該自己相関の値が極大となる時刻に基づいてパターン境界の位置を判定して出力する境界判定部とを具備することを特徴とする。
【0013】
[7]また、本発明の一態様による多次元時系列データ分析プログラムは、複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析ステップと、前記主成分行列中のある1行に含まれる複数の要素を主成分として選択する主成分選択ステップと、前記主成分選択ステップが選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点に基づいて前記多次元時系列データのパターン境界を判定して出力する境界判定ステップとを具備することを特徴とする。
【発明の効果】
【0014】
この発明によれば、多次元時系列データ分析装置において、ガウス混合モデルのパラメータ値を決定することや事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要であり、かつ、より少ない計算量でパターン境界を判定することができる。
【図面の簡単な説明】
【0015】
【図1】この発明の一実施形態による多次元時系列データ分析装置1の構成を示す概略ブロック図である。
【図2】人体スケルトン型動きデータの定義に用いられる人体のスケルトンモデルの例を示す概略図である。
【図3】同実施形態において多次元時系列データ分析装置1がパターン境界判定を行う際に、主成分から算出した各値の例を示すグラフである。
【図4】同実施形態において多次元時系列データ分析装置1の処理手順を示すフロー図である。
【図5】同実施形態において境界判定部41が行う、図4のステップSa4における処理の手順を示すフロー図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して、本発明の実施の形態について説明する。図1は、この発明の一実施形態による多次元時系列データ分析装置1の構成を示す概略ブロック図である。同図において、多次元時系列データ分析装置1は、データ取得部11と、データメモリ(多次元時系列データ記憶部)12と、主成分分析部21と、主成分行列記憶部(図示せず)と、主成分選択部31と、境界判定部41と、データ追加部51とを含んで構成される。
【0017】
本実施形態では、多次元時系列データの一例として人体のスケルトンモデル(Skeleton Model、骨格の型)で定義された人体スケルトン型動きデータを用いる。スケルトン型動きデータは、スケルトン型が定義された対象物であるスケルトン型対象物の各ジョイントの動きを記録したデータである。スケルトン型対象物としては例えば、人体や動物やロボットなどがある。
【0018】
図2は、人体スケルトン型動きデータ(以下、単に「動きデータ」と称する)の定義に用いられる人体のスケルトンモデルの例を示す概略図である。人体のスケルトンモデルは、人の骨格を基に、骨及び骨の連結点(ジョイント、Joint)を用い、ある1つのジョイントを根(ルート、Root)とし、ルートからジョイント経由で順次連結される骨の構造を木(ツリー、Tree)構造として構成される。図5において、ジョイント100は腰の部分であり、ルートである。ジョイント101は左腕の肘の部分、ジョイント102は左腕の手首の部分、ジョイント103は右腕の肘の部分、ジョイント104は右腕の手首の部分、ジョイント105は左足の膝の部分、ジョイント106は左足の足首の部分、ジョイント107は右足の膝の部分、ジョイント108は右足の足首の部分である。なお、肩の部分のジョイントなどを含むより複雑なスケルトンモデルを用いてもよい。
【0019】
動きデータは、各ジョイントの位置情報または角度情報または速度情報または加速度情報あるいはこれらの組み合わせで表現することが可能である。本実施形態の多次元時系列データ分析装置は、人体スケルトン型角度情報データや人体スケルトン型加速度情報データなど、様々な表現形式の動きデータに対してパターン境界判定を行うことができる。
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢(ポーズ、Pose)の連続により示すものであり、人の基本ポーズ(Neutral Pose)を示す基本ポーズデータと、実際の人の動きの中の各ポーズを示すポーズ毎のフレームデータとを含む。基本ポーズデータは、基本ポーズにおけるルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を含む。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続として、人の一連の動きが特定される。なお、人体スケルトン型動きデータは、人の動きをカメラ撮影した映像からモーションキャプチャ(Motion Capture)処理によって生成する、或いは、キーフレームアニメーション(Key Frame Animation)の手法を用いて生成することができる。
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【0020】
図1に戻って各部の機能について説明する。
データメモリ12は、複数時刻のそれぞれにおいて多次元データを時系列に従い配置してなる多次元時系列データを記憶する。以下では、多次元データメモリ12に記憶される多次元時系列データの行列をXで示す。
主成分行列記憶部(図示せず)は、主成分分析部21が生成する主成分行列Yを記憶する。
データ取得部11は一定期間ごとの複数の時刻において動きデータを取得する。以下では、データ取得部11が動きデータを取得する時刻を古い順に、時刻1,時刻2,時刻3,…で示す。データ取得部11は取得した動きデータのうちルートの自由度を除いた他の自由度に対応するデータをデータメモリ12に時系列順に書き込む。すなわち、データ取得部11は、入力される多次元時系列データ(以下では、データ取得部11に入力される多次元時系列データの行列をX’で示す)からルートの自由度を除いた多次元時系列データの行列Xをデータメモリ12に書き込む。以下では、データメモリ12に書き込まれる、時刻ごとの多次元データをフレームという。i番目に古い時刻にフレームに番号iを付して各フレームを区別する。なお、データ取得部11は取得した動きデータからルートの自由度を除かずにそのままのデータをデータメモリ12に保存してもよい。
また、データ取得部11はN個のフレームを主成分分析部21に対してN個のフレームを読み出すよう指示する。ここで、Nは予め定められた定数である。多次元時系列データ分析装置1がパターン境界の判定を開始するときには、データ取得部11は、第1フレームの番号「1」と第Nフレームの番号Nとを主成分分析部21に出力する。ここで、Nは任意の正の整数である。一方、境界判定部41がパターン境界の位置を判定した場合は、データ取得部11はパターン境界の位置と判定された第Qフレーム以降に取得されたフレームの中から古い順にN個のフレームを示す、最初のフレームの番号Qと最後のフレームの番号Q+N−1とを主成分分析部21に出力する。つまり、データ取得部11は、まず古い順にN個の時刻分のデータを多次元時系列データ記憶部(データメモリ)12から読み出すよう主成分分析部21に指示し、境界判定部41がパターン境界の位置を判定し出力した場合に該パターン境界の位置以後の多次元時系列データの行列X中から古い順にN個の時刻分のデータを多次元時系列データ記憶部(データメモリ)12から読み出すよう主成分分析部21に指示する。なお、フレームの個数を示すNの値を変更可能としてもよい。例えば、境界判定部41がパターン境界の位置を判定して処理を終了した時点で変更することができる。
【0021】
主成分分析部21は、データ取得部11から入力されたフレームの番号に従ってデータメモリ12からN個のフレームを読み出し、M行N列の多次元時系列データの行列X=(x(1),x(2),…x(N))を生成する。ここで、Mは各フレームに含まれるデータの個数、x(i)は第iフレームのデータ縦ベクトルで表したものを示す。主成分分析部21は、以下の手順に従って多次元時系列データの行列Xから主成分行列Yを生成する。つまり、主成分分析部21は、データメモリ(多次元時系列データ記憶部)12から読み出される多次元時系列データであるN個のフレームに対して以下の手順で主成分分析を行うことによって主成分行列Yを生成する。
【0022】
手順1:式(1)を用いて、多次元時系列データの行列Xから該多次元時系列データの平均値の行列を減算したN行M列の変動データ行列Dを生成する。
【0023】
【数1】

【0024】
手順2:式(2)を用いて、変動データ行列Dに対して特異値分解(Singular Value Decomposition)を行う。
【0025】
【数2】

【0026】
但し、Uは、N行N列のユニタリ行列である。Σは、N行M列の負でない対角要素を降順にもつ対角行列であり、主成分空間における座標の分散を示す。Vは、M行M列のユニタリ行列であり、主成分に対する係数(Principal Component)である。
【0027】
手順3:式(3)を用いて、主成分空間上のM行N列の主成分行列Yを生成する。つまり、主成分分析部21は、変動データ行列Dに対して特異値分解を行うことによって主成分行列Yを生成する。
主成分分析部21は、主成分行列Yを主成分行列記憶部(図示せず)に書き込む。また主成分分析部21は、データ取得部11から入力された最初のフレームの番号と最後のフレームの番号とを主成分選択部31に出力する。
【0028】
【数3】

【0029】
主成分選択部31は、主成分行列Yの中から1行分の要素を主成分として選択し、選択した主成分の番号を境界判定部41に出力する。つまり、主成分選択部31は主成分行列Y中のある1行に含まれる複数の要素を主成分として選択する。併せて、主成分選択部31は、主成分分析部21から入力された最初のフレームの番号と最後のフレームの番号とを境界判定部41に出力する。
主成分選択部31は、以下の3つの場合に応じて主成分を選択する。
ケース1:主成分分析部21から主成分行列Yが入力された後最初に境界判定部41に主成分を出力する場合、主成分選択部31は、主成分行列Yの第1行の各要素を主成分として選択する。以下、行列Yの第1行の各要素を第1主成分という。第1主成分はフレーム毎のデータ値の変化が大きく、境界判定が適切に行われることが期待されるが、フレームによっては他の行のほうがデータ値の変化が大きい場合もある。
ケース2:境界判定部41が第1主成分を用いてパターン境界が無いと判定した場合、つまりパターン境界の位置を判定出来なかった場合は、主成分行列Yの第2行の各要素を主成分として選択する。以下、行列Yの第2行の各要素を第2主成分という。
ケース3:境界判定部41が、第2主成分を用いた判定でパターン境界が無いと判定した場合は、主成分行列Yの第3行の各要素を主成分として選択する。以下、行列Yの第3行の各要素を第3主成分という。なお、主成分選択部が選択する主成分は第1主成分から第3主成分までに限らず、第K主成分(Kは1以上かつ主成分行列の行数以下の任意の整数)までを上記のように順次選択もよい。つまり、主成分選択部21は、境界判定部41がパターン境界の位置情報を判定できない毎に、主成分行列Y中の上からK行列目までの部分行列である判定対象主成分中の上の行から順に1行中の各要素を主成分として選択する。
以下では、主成分選択部31が選択した主成分を、行列Yでの順番、すなわち時系列順に従ってy(1)、y(2)、…、y(N)で示す。
【0030】
境界判定部41は、主成分選択部31から入力された主成分の番号に従って、主成分選択部31が選択した主成分を主成分行列記憶部(図示せず)から読み出す。また、境界判定部41は主成分行列Yの中から主成分選択部31が選択した境界判定部41は主成分を用いて、判定対象のNフレーム中にパターン境界があるか否かを判定する。境界判定部41は、パターン境界があると判定した場合は該パターン境界の位置として、先のパターンの終了時刻と後のパターンの開始時刻とを判定する。境界判定部41は主成分の極点(値が極大または極小となる点)における該主成分の値を用いて、後述する一連の式で示される予め定められた条件を主成分が満たすか否かを判定することによってパターン境界の有無を判定する。境界判定部41は、以下の手順に従い判定を行う。
手順1:式(4)を用いて主成分の極点を求める。以下では、主成分が極点をとる時刻(以下、極点の時刻または単に時刻という)を古い順にc(1),c(2),c(3),…で示す。
【0031】
【数4】

【0032】
手順2:以下の初期化を行う。最初の2個の極点の時刻c(1)およびc(2)について、式(5)を用いて前方平均値fm(1)および前方平均値fm(2)を算出する。
【0033】
【数5】

【0034】
手順3:パターン境界の有無を判定するための特徴量として、時刻c(j)における前方平均値fm(j)を、式(5)を用いて算出する。
また、パターン境界の有無を判定するための特徴量として、時刻c(j+1)とc(j+2)における後方平均値bm(j+1)とbm(j+2)とを、式(6)を用いて算出する。
【0035】
【数6】

【0036】
手順4:式(7)を用いて時刻c(j)における前方平均値の平均値mm(j)を算出する。
【0037】
【数7】

【0038】
式(8)を用いて時刻c(j)における前方平均値の標準偏差stdm(j)を算出する。
【0039】
【数8】

【0040】
式(9)を用いて時刻c(j+1)における後方平均値bm(j+1)と前方平均値の平均値mm(j)との大きさの差diff1(j)と、時刻c(j+2)における後方平均bm(j+2)と前方平均値の平均値mm(j)との大きさの差diff2(j)とを算出する。
【0041】
【数9】

【0042】
式(10)成立する場合はパターン境界があると判定し、成立しない場合はパターン境界が無いと判定する。
【0043】
【数10】

【0044】
境界判定部41は、式(10)の成否に応じて以下を行う。
ケース1:式(10)が不成立の場合、すなわちパターン境界が無いと判定した場合は、判定対象の時刻c(j)の極点から時間方向に3個後の時刻c(j+3)の極点が存在するかを判定する。時刻c(j+1)の極点が存在すると判定した場合は、時刻c(j+1)の極点以降について手順3以降を繰り返す。
時刻c(j+3)の極点が存在しないと判定した場合は、用いた主成分が第何主成分かを判断する。第1主成分または第2主成分の場合は、主成分選択部31に、主成分の番号と最初のフレームの番号と最後のフレームの番号とを出力する。第3主成分の場合は、データ追加部51に最初のフレームの番号と最後のフレームの番号とを出力する。
ケース2:式(10)が成立する場合、すなわちパターン境界があると判定した場合は、具体的な境界位置を判定する。判定の対象となっている時刻c(j)の極点から順に、式(9)のdiff1(j)とdiff2(j)とを算出し、式(11)の成否を判定する。式(11)が成立する最初の極点の時刻を先のパターンの終了時刻と判定し、次の極点の時刻を次のパターンの開始時刻と判定し、これらの時刻を境界データとして出力する。つまり、境界判定部41は主成分の極点の各々について、当該極点以前の所定期間における主成分の値の平均値である前方平均値と当該極点以後の所定期間における主成分の値の平均値である後方平均値とを算出し、前方平均値に基づいて、主成分の極点毎に主成分の値の分布の中心と分布幅とを決定し、後方平均値と分布の中心との差を主成分の値と分布の中心とのずれとして、該ずれが分布幅よりも大きくなる点に基づいて多次元時系列データX’のパターン境界を判定して出力する。主成分の値と分布の中心とのずれを算出する際に主成分の値として後方平均値を用いるのは、主成分の値が局所的に大きくまたは小さくなる、いわばノイズによる極点をパターン境界と判定しないためである。式(11)が成立する極点が存在しない場合は、パターン境界が無いとの判定に変更する。
【0045】
【数11】

【0046】
図3は、多次元時系列データ分析装置1がパターン境界判定を行う際に、主成分から算出した各値の例を示すグラフである。境界判定部41は、時刻c(3)から順にパターン境界の有無を判定する。ここで、説明のために式(10)を式(12)と変形する。
【0047】
【数12】

【0048】
同図において、bm(5)≦mm(3)+TH1・stdm(3)かつbm(5)≧mm(3)−TH1・stdm(3)であり、式(12)は成立しないので式(10)も成立しない。したがって、境界判定部41は、手順4においてパターン境界が無いと判定し、次の極点について判定を行う。同様に時刻c(4)〜c(14)では式(10)は成立しない。したがって、境界判定部41はパターン境界が無いと判定し、次の極点について判定を行う。時刻c(15)では式(12)が成立するので式(10)が成立する。境界判定部41は、手順4においてパターン境界があると判定し、具体的な境界位置の判定を行う。時刻c(15)において式(11)は成立するので、境界判定部41は、時刻c(15)を先のパターンの終了時刻、時刻c(16)を次のパターンの開始時刻と判定する。
【0049】
なお、手順4で式(10)が成立した場合、すなわち境界判定部41がパターン境界があると判定した場合、以下のように主成分の値の自己相関を算出し、該自己相関に基づいてパターン境界の位置を求めてもよい。
まず、境界判定部41は主成分座標y(t)の自己相関R(τ)を、式(13)を用いて算出する。
【0050】
【数13】

【0051】
次に、境界判定部41は自己相関R(τ)が極大となる点のうち、時刻τ=0を除いて最大値R(τ)をとる時刻τを算出し、時刻τの直前の極点の時刻c(j)と直後の極点の時刻c(j+1)をそれぞれ先のパターンの終了時刻と次のパターンの開始時刻と判定する。
【0052】
手順5:手順4までを行った境界判定部41は、以下の各場合に応じて処理を終了する。
ケース1:手順4でパターン境界が存在すると判定した場合、先のパターンの終了時刻と次のパターンの開始時刻とをパターン境界の位置として出力し、データ取得部11に次のパターンの開始時刻を出力する。
ケース2:第3主成分を用いて判定を行い、手順4でパターン境界が無いと判定した場合、主成分選択部31から入力された最初のフレームの番号および最後のフレームの番号をデータ追加部51に出力する。
ケース3:他の場合(第1主成分または第2主成分を用いて判定を行い、手順4でパターン境界が無いと判定した場合)、主成分選択部31から入力された主成分の番号を主成分選択部31に出力する。
なお、上記主成分選択部31の説明において説明したように、境界判定部が用いる主成分は第1主成分から第3主成分までに限らず、第K主成分(Kは1以上かつ主成分行列の行数以下の任意の整数)までを順次用いて判定を行ってもよい。
【0053】
データ追加部51は、境界判定部41が第3行の各要素で構成される第3主成分を用いてパターン境界が無いと判定した場合に、主成分分析部21が主成分分析を行う対象とするフレームにP個(Pは任意の正の整数)のフレームを追加する。なお、データ追加部51が追加するフレーム数は変更可能としてもよい。
【0054】
図4は多次元時系列データ分析装置1の処理手順を示すフロー図である。多次元時系列データ分析装置1がパターン境界判定を開始すると、まず、予め定められた複数の時刻においてデータ取得部11が動きデータをフレームとして取得してデータメモリ12に記憶する。データ取得部11は、N個のフレームの番号として最初のフレームの番号「1」と最後のフレームの番号Nとを主成分分析部21に出力する(ステップSa1)。主成分分析部21は、第1フレームから第Nフレームまでをデータメモリ12から読み出して主成分分析を行い、主成分空間の行列Yを生成して主成分記憶部(図示せず)に書き込む。主成分分析部21は、最初のフレームの番号「1」と最後のフレームの番号Nとを主成分選択部31へ出力する(ステップSa2)。主成分選択部31は、第1主成分であることを示す数字「1」と最初のフレームの番号「1」と最後のフレームの番号Nとを境界判定部41へ出力する(ステップSa3)。なお、以下では第何主成分であるかを示す数字を主成分の番号という。
【0055】
境界判定部41は、第1主成分を主成分記憶部(図示せず)から読み出し、該第1主成分を用いてN個のフレーム中にパターン境界があるか否かを判定し、パターン境界があると判定した場合には、前のパターンの終了時刻と次のパターンの開始時刻とを境界データとして出力する(ステップSa4)。また、パターン境界があると判定した場合は、境界判定部41は、次のパターンの開始時刻Qをデータ取得部11に出力する(ステップSa4−境界有り)。データ取得部11は、入力された次のパターンの開始時刻以降の残りフレーム数を調べ(ステップSa21)、N個以上無い場合は多次元時系列データ分析装置1の処理を終了する(ステップSa21−Nフレーム未満)。一方、N個以上ある場合は(ステップSa21−Nフレーム以上)、データ取得部11は、最初のフレームの番号Qと、最後のフレームの番号Q+N−1とを主成分分析部21に出力する(ステップSa1)。以降、多次元時系列データ分析装置1はステップSa2以下を繰り返す。
なお、データ取得部11は、多次元時系列データ分析装置1の処理開始時に全データを取得しておく必要はなく、各部の処理と並行してデータを取得してもよい。この場合、フレーム数の判定は、フレームを取得予定の回数を既に取得しているフレームの個数と足し合わせた数を用いて行う。または、データ取得が終了しているか否かの情報を取得して、データ取得が終了している場合かつ残りデータ数が足りない場合に処理を終了してもよい。
【0056】
ステップSa4において、パターン境界が無いと判定した場合は、境界判定部41は主成分の番号「1」を主成分選択部31に出力する(ステップSa4−判定途中)。主成分選択部31は、第1主成分の次の第2主成分(行列Yの第2行のデータ)と、主成分の番号「2」とを境界判定部41へ出力する(ステップSa3)。境界判定部41は、第2主成分を用いてステップSa4を繰り返す(ステップSa4)。第2主成分についてもパターン境界が無いと判定した場合は、境界判定部41は主成分の番号「2」を主成分選択部31に出力する(ステップSa4−判定途中)。主成分選択部31は、第2主成分の次の第3主成分(行列Yの第3行のデータ)と、主成分の番号「3」とを境界判定部41へ出力する(ステップSa3)。境界判定部41は、第3主成分を用いてステップSa4を繰り返す(ステップSa4)。
第3主成分についてもパターン境界が無いと判定した場合は、境界判定部41はデータ追加部51に最初のフレームの番号「1」と最後のフレームの番号Nとを出力する(ステップSa4−境界無し)。データ追加部51は、データメモリ12を参照して全フレームの個数を調べ、P個以上残りがあるか判定する(ステップSa31)。P個以上残りが無い場合は、多次元時系列データ分析装置1は処理を終了する(ステップSa31−P個未満)。P個以上残りがある場合は(ステップSa31−P個以上)、データ追加部51はP個のフレームを追加する、すなわち最初のフレームの番号「1」と最後のフレームの番号N+Pとを主成分分析部21へ出力する(ステップSa32)。以降、多次元時系列データ分析装置1はステップSa2以下を繰り返す。
【0057】
図5は境界判定部41が行う、図4のステップSa4における処理の手順を示すフロー図である。
主成分選択部31から主成分の番号と最初のフレームの番号と最後のフレームの番号との入力を受けると、境界判定部41は主成分の極点を求める(ステップSb1)。次に、境界判定部41は、初期化として、最初の2個の極点の時刻c(1)とc(2)とについて前方平均値fm(1)とfm(2)とを算出する(ステップSb2)。次に、境界判定部41は、境界の有無を判定するための特徴量として、3番目の極点の時刻c(3)における前方平均値fm(3)と、4番目および5番目の極点の時刻c(4)およびc(5)における後方平均値bm(4)およびbm(5)とを算出する(ステップSb3)。境界判定部41は、算出した特徴量を用いて時刻c(3)についてパターン境界の有無を判定する(ステップSb4)。パターン境界が無いと判定した場合は(ステップSb4−境界無し)、判定対象の極点から時間方向に3個後の極点が存在するか(ここでは時刻c(6)の極点が存在するか)を判定する(ステップSb21)。該極点が存在すると判定した場合は(ステップSb21−有り)、パターン境界の有無を判定した極点の時刻c(3)の次の極点の時刻c(4)以降について順次ステップSb3以降を繰り返す。ステップSb4において極点が存在しないと判定した場合は(ステップSb21−無し)、用いた主成分が第何主成分かを判断する(Sb22)。第1主成分または第2主成分の場合は(Sb22−第1、2主成分)、主成分の番号と最初のフレームの番号と最後のフレームの番号とを主成分選択部31に出力し(ステップSb31)、処理を終了する。第3主成分の場合は(Sb22−第3主成分)、データ追加部51に最初のフレームの番号と最後のフレームの番号とを出力し(ステップSb41)、処理を終了する。
ステップSb4において境界があると判定した場合は(ステップSb4−境界有り)、具体的な境界位置として、先のパターンの終了時刻と次のパターンの開始時刻とを決定する(ステップSb51)。これらの時刻を決定できた場合は(ステップSb52−境界位置決定)、先のパターンの終了時刻と次のパターンの開始時刻とを境界データとして出力する。また、次のパターンの開始時刻をデータ取得部11に出力し(ステップSb61)、処理を終了する。具体的な境界位置を決定できなかった場合は(ステップSb52−境界位置決定せず)、パターン境界が無いとの判定に変更してステップSb22以下を行う。
【0058】
なお、本実施形態ではデータ取得部11は、取得した動きデータからルートの自由度を除いた他の自由度のデータを各フレームのデータとしたが、人体スケルトン型角度情報の入力を受けて各ジョイントの相対位置を算出し、これを各フレームのデータとしてもよい。この場合、データ取得部11は、人体スケルトン型角度情報データとして基本ポーズデータとフレームデータとの入力を受け、各ジョイントの位置を算出する。ここで、基本ポーズデータは、基本ポーズとして定められたあるポーズにおけるルートの位置及び各ジョイントの角度、並びに各骨の長さなど、基本ポーズを特定するデータである。フレームデータは、各データ測定時刻における各ジョイントの基本ポーズからの移動量を示す。ここでは、移動量として角度情報を用いる。
データ取得部11は、データ測定時刻tにおけるi−1番目のジョイントから見たi番目のジョイントの相対位置M(t)を、式(14)を用いて算出する。
【0059】
【数14】

【0060】
データ取得部11は、データ測定時刻tにおけるk番目のジョイントの位置p(t)を、式(15)を用いて算出する。p(t)は3次元座標で示される。以下では、時刻tは、0,1,2,・・・,T−1の値をとるものとし、時刻tをフレームデータのインデックスとしても扱う。ここで、Tは、データ取得部11に入力されるフレームデータの個数である。
【0061】
【数15】

【0062】
但し、0番目(i=0)のジョイントはルートである。行列Raxisi−1,i(t)は、基本ポーズにおけるi番目のジョイントとその親ジョイント(「i−1」番目のジョイント)との位置関係を示す行列であり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が設定されており、行列Raxisi−1,i(t)は、親子関係にあるジョイント間のローカル座標系の対応関係を示す。R(t)は、i番目のジョイントについて設定されたローカル座標系を用いてi番目のジョイントの角度情報を示す行列であり、フレームデータに含まれる。T(t)は、i番目のジョイントとその親ジョイントとの間の遷移を示す行列、具体的にはi番目のジョイントとその親ジョイント間の骨の長さを示す行列であり、基本ポーズデータに含まれる。
データ取得部11は式(16)を用いて、時刻tにおけるルートに対するk番目のジョイントの相対位置(ジョイント相対位置)p’(t)を算出する。
【0063】
【数16】

【0064】
但し、proot(t)は時刻tにおけるルート(0番目のジョイント)の位置(p(t))である。データ取得部11は式(17)を用いて時刻tのフレームx(t)を、x(t)=(p’(t),p’(t),・・・,p’(t))と生成する。但し、Kは、ルートを除いたジョイントの個数である。
【0065】
なお、データ取得部11は、人体スケルトン型加速度情報データの入力を受けて、各時刻における各ジョイントのジョイント相対速度を算出し、これを各フレームのデータとしてもよい。この場合、データ取得部11は、まず、各ジョイントの初期速度の入力を受ける。次に、データ取得部11は、式(17)を用いて、時刻tにおけるk番目のジョイントの速度v(t)を算出する。式(17)では、加速度の積分値を初期速度に加算している。
【0066】
【数17】

【0067】
但し、vはk番目のジョイントの初期速度である。a(τ)は時刻τにおけるk番目のジョイントの加速度であり、データ取得部11に入力される人体スケルトン型加速度情報データに含まれる。
次いで、データ取得部11は、式(18)を用いて、時刻tにおけるk番目のジョイントの位置p(t)を算出する。
【0068】
【数18】

【0069】
なお、データ取得部11は、上記の式(16)を用いて、時刻tにおけるジョイント相対位置p’(t)を算出してもよい。
【0070】
以上のように、本実施形態の多次元時系列データ分析装置1は、ガウス混合モデルやパターン学習の手法を用いてパターン境界の判定を行う多次元時系列データ分析装置とは異なり、ガウス混合モデルのパラメータ値を予め決定することや事前の訓練やユーザによる訓練データの作成やユーザによる正解の提示が不要である。また、本実施形態の多次元時系列データ分析装置1は、判定対象であるNフレーム内のパターン境界の判定を、1回の主成分分析によって得られる各時刻における主成分を用いて行う。したがって、フレームを一定数ずつ増やすごとに主成分分析を行い、各回の主成分分析結果の違いに基づいてパターン境界を判定する多次元時系列データ分析装置と比べて主成分分析の回数が少なくて済むので、より少ない計算量でパターン境界を判定できる。
【0071】
なお、図1におけるデータ取得部11と、主成分分析部21と、主成分選択部31と、境界判定部41との機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0072】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0073】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0074】
本発明は、多次元時系列データ分析装置に用いて好適である。なお、本発明は、上述した実施形態で扱った人の動きデータに限らず、要素が数値で示される様々な多次元時系列データに適用できる。
【符号の説明】
【0075】
1…多次元時系列データ分析装置
11…データ取得部
12…データメモリ
21…主成分分析部
31…主成分選択部
41…境界判定部
51…データ追加部

【特許請求の範囲】
【請求項1】
複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、
主成分行列を記憶する主成分行列記憶部と、
前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、
前記主成分行列中のある1行に含まれる複数の要素を主成分として選択する主成分選択部と、
前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅とを決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる時刻に基づいて前記多次元時系列データのパターン境界を判定して出力する境界判定部と
を具備することを特徴とする多次元時系列データ分析装置。
【請求項2】
前記境界判定部は、前記主成分の極点の各々について、当該極点以前の所定期間における前記主成分の値の平均値である前方平均値と当該極点以後の前記所定期間における前記主成分の値の平均値である後方平均値とを算出し、該前方平均値に基づいて、前記極点毎に前記分布の中心と前記分布幅とを決定し、前記後方平均値と前記分布の中心との差を前記ずれとすることを特徴とする請求項1に記載の多次元時系列データ分析装置。
【請求項3】
前記主成分分析部は、前記多次元時系列データの行列から該多次元時系列データの時間方向の平均値の行列を減算して変動データ行列を生成し、該変動データ行列に対して特異値分解を行うことによって主成分行列を生成することを特徴とする請求項1または請求項2に記載の多次元時系列データ分析装置。
【請求項4】
前記主成分選択部は、前記主成分行列の第1行の各要素を主成分として選択し、前記境界判定部が該主成分を用いてパターン境界の位置を判定できなかった場合は、前記主成分行列の第2行の各要素を主成分として選択し、以下、前記境界判定部がパターン境界の位置を判定できない毎に、前記主成分行列中の上からK行目(Kは1以上かつ主成分行列の行数以下の任意の整数)までの部分行列である判定対象主成分中の上の行から順に1行中の各要素を主成分として選択することを特徴とする請求項3に記載の多次元時系列データ分析装置。
【請求項5】
多次元時系列データを多次元時系列データ記憶部に保存し、古い順にN個(Nは任意の正の整数)の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示し、前記境界判定部がパターン境界の位置を判定し出力した場合に該パターン境界の位置以後の多次元時系列データ中から古い順にN個の時刻分のデータを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ取得部と、
判定対象主成分に含まれる全ての主成分について前記境界判定部がパターン境界の位置を判定できなかった場合に、前記主成分分析部が主成分分析を行ったフレームと該フレームよりも新しいフレーム中から古い順にP個(Pは任意の正の整数)のフレームとを前記多次元時系列データ記憶部から読み出すよう前記主成分分析部に指示するデータ追加部と
をさらに具備することを特徴とする請求項4に記載の多次元時系列データ分析装置。
【請求項6】
複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部と、
主成分行列を記憶する主成分行列記憶部と、
前記多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析部と、
前記主成分行列中のある1行に含まれる複数の要素を主成分として選択する主成分選択部と、
前記主成分選択部が選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点が存在する場合に前記主成分の値の自己相関を算出し、該自己相関の値が極大となる時刻に基づいてパターン境界の位置を判定して出力する境界判定部と
を具備することを特徴とする多次元時系列データ分析装置。
【請求項7】
複数時刻のそれぞれにおける多次元データを時系列に従い配置してなる多次元時系列データを記憶する多次元時系列データ記憶部から読み出される前記多次元時系列データに対して主成分分析を行うことによって主成分行列を生成し主成分記憶部に書き込む主成分分析ステップと、
前記主成分行列中のある1行に含まれる複数の要素を主成分として選択する主成分選択ステップと、
前記主成分選択ステップが選択した前記主成分を前記主成分行列記憶部から読み出し、当該主成分の値の分布の中心と分布幅を決定し、前記主成分の値と前記分布の中心とのずれが前記分布幅よりも大きくなる点に基づいて前記多次元時系列データのパターン境界を判定して出力する境界判定ステップと
を具備することを特徴とする多次元時系列データ分析プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−231452(P2010−231452A)
【公開日】平成22年10月14日(2010.10.14)
【国際特許分類】
【出願番号】特願2009−77619(P2009−77619)
【出願日】平成21年3月26日(2009.3.26)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】