(57)【要約】【課題】検索条件の動きデータから検索対象の動きデータを検索する際に、動きの多様性に対応した検索を行うこと、検索時の計算量を削減すること、を図る。【解決手段】物体の一連の動きを表す動きデータについて一定時間の区間毎に動きの特徴を表す区間特徴量を計算する区間特徴量計算部６と、クエリ動きデータについての区間特徴量と検索対象動きデータについての区間特徴量との間の距離を計算する区間特徴量距離計算部８と、該距離に基づいて検索結果の提示データを作成する提示データ作成部１０とを備える。【選択図】図１
2010033163.tif 000002
【特許請求の範囲】
【請求項１】
与えられた検索条件に基づいて動きデータを検索する動きデータ検索装置において、
物体の一連の動きを表す動きデータについて一定時間の区間毎に動きの特徴を表す区間特徴量を計算する区間特徴量計算部と、
検索条件動きデータについての区間特徴量と検索対象動きデータについての区間特徴量との間の距離を計算する区間特徴量距離計算部と、
前記距離に基づいて検索結果の提示データを作成する提示データ作成部と、
を備えたことを特徴とする動きデータ検索装置。
【請求項２】
前記区間特徴量計算部は、各区間の動きを、動きの変化の特徴を表す特定のダイナミックパターンに分類するダイナミックパターン分類計算手段を有することを特徴とする請求項１に記載の動きデータ検索装置。
【請求項３】
前記区間特徴量の計算対象となる各区間が重複区間を有するように、動きデータを分割するデータ分割部を備えたことを特徴とする請求項２に記載の動きデータ検索装置。
【請求項４】
前記区間特徴量距離計算部は、前記ダイナミックパターンの類似性に基づいて区間特徴量間の距離を計算することを特徴とする請求項２又は請求項３に記載の動きデータ検索装置。
【請求項５】
検索条件動きデータと検索対象動きデータとの間の動きの時間的ずれを調整した距離を計算する動き類似性計算部を備えたことを特徴とする請求項１から４のいずれか１項に記載の動きデータ検索装置。
【請求項６】
検索対象動きデータについての区間特徴量を蓄積する区間特徴量データベースを備えたことを特徴とする請求項１から５のいずれか１項に記載の動きデータ検索装置。
【請求項７】
スケルトン型動きデータを入力する入力部と、
スケルトン型動きデータから、スケルトン型動きデータが表す動きの期間におけるルートに対する各ジョイントの相対速度を算出する物理量変換部と、を備え、
前記区間特徴量計算部は該ジョイント相対速度から区間特徴量を計算することを特徴とする請求項１から６のいずれか１項に記載の動きデータ検索装置。
【請求項８】
前記スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであることを特徴とする請求項７に記載の動きデータ検索装置。
【請求項９】
前記ダイナミックパターンはジョイント相対速度の変化の特徴を表すことを特徴とする請求項７又は請求項８に記載の動きデータ検索装置。
【請求項１０】
前記ジョイント相対速度を平滑化するデータフィルタ部を備えたことを特徴とする請求項７から９のいずれか１項に記載の動きデータ検索装置。
【請求項１１】
与えられた検索条件に基づいて動きデータを検索する動きデータ検索処理を行うためのコンピュータプログラムであって、
物体の一連の動きを表す動きデータについて一定時間の区間毎に動きの特徴を表す区間特徴量を計算する区間特徴量計算機能と、
検索条件動きデータについての区間特徴量と検索対象動きデータについての区間特徴量との間の距離を計算する区間特徴量距離計算機能と、
前記距離に基づいて検索結果の提示データを作成する提示データ作成機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きデータ検索装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータ・グラフィックス（ＣＧ）やアニメーション・ゲームなどの動画像コンテンツを制作する際には、多種多様な動きデータを蓄積している動きデータベースが利用される。図１１に人の動きデータの定義例の概略を示す。図１１の例は、人のスケルトン型動きデータ（人体スケルトン型動きデータ）の定義例である。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点（ジョイント）を用い、一ジョイントを根（ルート）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）構造として定義される。図１１には、人体スケルトン型動きデータの定義の一部分のみを示している。図１１において、ジョイント１００は腰の部分であり、ルートとして定義される。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分、である。
【０００３】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動き（モーション）を記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢（ポーズ）の連続により表すものであり、人の基本ポーズ（neutral pose）を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型動きデータは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【０００４】
従来の動きデータ検索技術として、例えば、非特許文献１〜５に開示される技術が知られている。非特許文献１の従来技術１では、フレームデータ間の距離を計算し、ダイナミック・タイム・ワーピング（dynamic time warping：ＤＴＷ）法を用いて動き類似性を算出している。フレームデータ間の距離は、例えば、非特許文献２に開示される下記（１）式によりフレーム距離を用いて計算することが一般的である。
【０００５】
【数１】
2010033163.tif 000003
【０００６】
但し、（１）式において、ｍはジョイントの個数、pｉ，０はｉ番目のフレームデータによるルート位置、pｊ，０はｊ番目のフレームデータによるルート位置、ｑｉ，ｋはｉ番目のフレームデータによるジョイントｋの角度、ｑｊ，ｋはｊ番目のフレームデータによるジョイントｋの角度、ｗｋはジョイントｋに最適化された重み係数、ｄ（pｉ，pｊ）はｉ番目のフレームデータとｊ番目のフレームデータの間の距離である。
【０００７】
ＤＴＷ法は二つの時系列データを適応的にマッチングする技術である。ＤＴＷ法については、例えば非特許文献３に開示されている。
【０００８】
非特許文献４に開示される従来技術２では、複数のフレームデータ間で距離を定義し、ＤＴＷ法を用いて動き類似性を算出し、マルチステップで検索を行っている。マルチステップ検索では、検索条件の動きデータと距離が小さい動きデータを一旦検索し、検索結果の動きデータを新たな検索条件の動きデータとして、もう一度検索する。
【０００９】
非特許文献３に開示される従来技術３では、ポーズの幾何特性からブール特徴量を計算し、ＤＴＷ法を用いて動き類似性を算出している。ブール特徴量は人体のポイントを複数選択してジョイントの位置と比較し、二値のみを判断するものである。例えば、左足元、左ヒップとルートを選択し、選択した三つポイントで張って表面を右足元の位置と比較し、前と後を判断する。
【非特許文献１】Christos Faloutsos、Jessica Hodgins、Nancy Pollard，“Database Techniques with Motion Capture”，ACM SIGGRAPH 2007 courses，SESSION: Course 21，San Diego，California，2007．
【非特許文献２】J. Wang and B. Bodenheimer，“An evaluation of a cost metric for selecting transitions between motion segments”，In Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on Computer Animation，232-238，2003．
【非特許文献３】C. S. Myers and L. R. Rabiner，“A comparative study of several dynamic time-warping algorithms for connected word recognition”，The Bell System Technical Journal，60(7):1389-1409，September 1981．
【非特許文献４】Lucas Kovar and Michael Gleicher，“Automated extraction and parameterization of motions in large data sets”，ACM Transactions on Graphics，23(3):559-568，August 2004，(SIGGRAPH 2004)．
【非特許文献５】Meinard Muller、Tido Roder and Michael Clausen，“Efficient content based retrieval of motion capture data”，ACM Transactions on Graphics，24(3):677-685，August 2005，(SIGGRAPH 2005)．
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、上述した従来技術１，２，３では、動きの多様性に対応した検索を行う点、検索時の計算量の点で問題がある。動きの多様性とは、同じ種類の動きであっても、個人の特性等によって動きの見た目が変わる性質のことである。例えば「歩く動作」であっても、個人の歩調や体つき、その時の感情などによって、「ゆっくりとした歩き」、「早歩き」、「元気な歩き」、「しょんぼりとした歩き」など、見た目の動きは変わる。これら多様な「歩く動作」を一つの種類「歩く動作」として検索することが、従来技術１，２，３では難しい。例えば、「ゆっくりとした歩き」の動きデータを検索条件とした場合に、「ゆっくりとした歩き」の動きデータに加えて「早歩き」の動きデータも検索結果に含めることが難しい。
【００１１】
非特許文献１の従来技術１では、フレームデータ間距離に基づいた検索を行うが、動きの多様性に対して十分に対応することが困難である。又、検索条件の動きデータと検索対象の動きデータの間でフレームデータ間距離を一つずつ全て計算するために、計算量が膨大で検索時間が長くなる。
非特許文献２の従来技術２では、マルチステップ検索を行うので、同じ種類の動きが一定の密度で存在しないと、動きの多様性に対応することができない。例えば、「ゆっくりとした歩き」と「早歩き」がそれぞれ別の動きデータ内にしか存在しない場合には、「ゆっくりとした歩き」と「早歩き」を両方一緒に検索することができない。又、マルチステップ検索のため処理に時間がかかり、リアルタイム検索には不向きである。さらに、中間ステップで検索条件とは異なる動きを採用してしまうとその後のステップにエラーが及んでしまう恐れがある。
非特許文献３の従来技術３では、ブール特徴量を利用するには専門的な知識が必要であり、しかも、検索精度は特徴量の組み合わせに敏感に反応するため、一般ユーザには不向きである。又、ロバスト性が低いため実際の応用は困難である。
【００１２】
本発明は、このような事情を考慮してなされたもので、その目的は、検索条件の動きデータから検索対象の動きデータを検索する際に、動きの多様性に対応した検索を行うこと、検索時の計算量を削減すること、を図ることのできる動きデータ検索装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明に係る動きデータ検索装置は、与えられた検索条件に基づいて動きデータを検索する動きデータ検索装置において、物体の一連の動きを表す動きデータについて一定時間の区間毎に動きの特徴を表す区間特徴量を計算する区間特徴量計算部と、検索条件動きデータについての区間特徴量と検索対象動きデータについての区間特徴量との間の距離を計算する区間特徴量距離計算部と、前記距離に基づいて検索結果の提示データを作成する提示データ作成部と、を備えたことを特徴とする。
【００１４】
本発明に係る動きデータ検索装置においては、前記区間特徴量計算部は、各区間の動きを、動きの変化の特徴を表す特定のダイナミックパターンに分類するダイナミックパターン分類計算手段を有することを特徴とする。
【００１５】
本発明に係る動きデータ検索装置においては、前記区間特徴量の計算対象となる各区間が重複区間を有するように、動きデータを分割するデータ分割部を備えたことを特徴とする。
【００１６】
本発明に係る動きデータ検索装置においては、前記区間特徴量距離計算部は、前記ダイナミックパターンの類似性に基づいて区間特徴量間の距離を計算することを特徴とする。
【００１７】
本発明に係る動きデータ検索装置においては、検索条件動きデータと検索対象動きデータとの間の動きの時間的ずれを調整した距離を計算する動き類似性計算部を備えたことを特徴とする。
【００１８】
本発明に係る動きデータ検索装置においては、検索対象動きデータについての区間特徴量を蓄積する区間特徴量データベースを備えたことを特徴とする。
【００１９】
本発明に係る動きデータ検索装置においては、スケルトン型動きデータを入力する入力部と、スケルトン型動きデータから、スケルトン型動きデータが表す動きの期間におけるルートに対する各ジョイントの相対速度を算出する物理量変換部と、を備え、前記区間特徴量計算部は該ジョイント相対速度から区間特徴量を計算することを特徴とする。
【００２０】
本発明に係る動きデータ検索装置においては、前記スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであることを特徴とする。
【００２１】
本発明に係る動きデータ検索装置においては、前記ダイナミックパターンはジョイント相対速度の変化の特徴を表すことを特徴とする。
【００２２】
本発明に係る動きデータ検索装置においては、前記ジョイント相対速度を平滑化するデータフィルタ部を備えたことを特徴とする。
【００２３】
本発明に係るコンピュータプログラムは、与えられた検索条件に基づいて動きデータを検索する動きデータ検索処理を行うためのコンピュータプログラムであって、物体の一連の動きを表す動きデータについて一定時間の区間毎に動きの特徴を表す区間特徴量を計算する区間特徴量計算機能と、検索条件動きデータについての区間特徴量と検索対象動きデータについての区間特徴量との間の距離を計算する区間特徴量距離計算機能と、前記距離に基づいて検索結果の提示データを作成する提示データ作成機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の動きデータ検索装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００２４】
本発明によれば、検索条件の動きデータから検索対象の動きデータを検索する際に、動きの多様性に対応した検索を行うこと、検索時の計算量を削減すること、を図ることができるという効果が得られる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照し、本発明の実施形態について説明する。本実施形態では、人の動きデータを扱い、人の動きデータとして、図１１に例示されるように定義された人体スケルトン型動きデータを用いる。なお、本実施形態に係る以下の説明においては、人体スケルトン型動きデータのことを単に「動きデータ」と称する。
【００２６】
図１は、本発明の一実施形態に係る動きデータ検索装置１の構成を示すブロック図である。図１において、動きデータ検索装置１は、入力部２、物理量変換部３、データフィルタ部４、データ分割部５、区間特徴量計算部６、区間特徴量データベース７、区間特徴量距離計算部８、動き類似性計算部９、提示データ作成部１０及び出力部１１を有する。
【００２７】
動きデータ検索装置１には、検索対象動きデータとして、動きデータベース２０から動きデータが入力される。動きデータベース２０は、多種多様の動きデータを多数蓄積している。又、動きデータ検索装置１には、クエリ動きデータ（検索条件動きデータ）が入力される。クエリ動きデータは、ユーザ（検索依頼者）が希望する動きを表す動きデータである。動きデータ検索装置１は、クエリ動きデータに基づいて検索対象動きデータを検索し、検索結果を出力する。なお、検索対象動きデータ及びクエリ動きデータは、通信回線を介して動きデータ検索装置１に入力されるものであってもよい。
【００２８】
次に、図２を参照して、図１の動きデータ検索装置１が行う動きデータ検索処理全体の流れを説明する。図２は、本実施形態に係る動きデータ検索手順の全体の流れを示すフローチャートである。
【００２９】
図２において、本実施形態に係る動きデータ検索手順は大きく分けて準備段階（ステップＳ１）と検索段階（ステップＳ２〜Ｓ８）の２つに分かれている。
ステップＳ１では、準備段階として、動きデータベース２０内の動きデータを検索対象動きデータとして入力し、各検索対象動きデータについて区間特徴量を計算し、データベース化する。これにより、動きデータベース２０内の各動きデータについて、区間特徴量が区間特徴量データベース７に格納される。このデータベース化処理が終了すると、検索段階となり、クエリ動きデータの入力待ちとなる（ステップＳ２）。ステップＳ３では、クエリ動きデータの入力の有無を判断する。クエリ動きデータの入力ありの場合、ステップＳ４に進む。
【００３０】
ステップＳ４では、クエリ動きデータについて区間特徴量を計算する。ステップＳ５では、クエリ動きデータの区間特徴量と区間特徴量データベース７内の区間特徴量との距離を計算する。ステップＳ６では、クエリ動きデータと検索対象動きデータとの間の動きの時間的ずれを調整した距離（動き類似性）を計算する。ステップＳ７では、動き類似性に基づいて検索結果の提示データを作成する。ステップＳでは、提示データを出力する。提示データの出力方法は、画面表示、印字、記録媒体への書き込み、通信回線による送信などが利用可能である。
【００３１】
次に、図１に示す動きデータ検索装置１の詳細について順次説明する。
【００３２】
まず、入力部２、物理量変換部３、データフィルタ部４、データ分割部５及び区間特徴量計算部６により、入力された動きデータについて区間特徴量を算出するまでを説明する。それら各部２〜６は、動きデータについて区間特徴量を算出するための構成であり、図２における準備段階（検索対象動きデータの区間特徴量算出）と検索段階（クエリ動きデータの区間特徴量算出）で共通である。このため、ここでは検索対象動きデータとクエリ動きデータを区別せず、動きデータと称して説明する。
【００３３】
入力部２は入力した動きデータを物理量変換部３に出力する。
物理量変換部３は、動きデータが表す動きの期間において、各ジョイントがルートに対してどのくらいの速度で動いているのかを算出する。物理量変換部３の具体的な計算方法を以下に示す。ここでは、人体スケルトン型角度情報データを利用する。
【００３４】
まず、物理量変換部３は、人体スケルトン型角度情報データ内の基本ポーズデータとフレームデータを用いてジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻ｔにおけるｋ番目のジョイントの位置ｐｋ（ｔ）は、（２）式および（３）式により計算される。なお、時刻ｔはフレームデータの時刻である。
【００３５】
【数２】
2010033163.tif 000004
【００３６】
【数３】
2010033163.tif 000005
【００３７】
但し、０番目（ｉ＝０）のジョイントはルートである。Ｒａｘｉｓｉ−１，ｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント（「ｉ−１」番目のジョイント）間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ｒｉ（ｔ）は、ｉ番目のジョイントのローカル座標系におけるｉ番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ｔｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、ｉ番目のジョイントとその親ジョイント間の骨の長さを表す。
【００３８】
次いで、物理量変換部３は、時刻ｔにおけるｋ番目のジョイントの速度ｖｅｌｃｋ（ｔ）を（４）式により計算する。
【００３９】
【数４】
2010033163.tif 000006
【００４０】
但し、ｈはフレームデータ間の時間間隔である。
【００４１】
次いで、物理量変換部３は、時刻ｔにおける、ルートに対するｋ番目のジョイントの相対速度（ジョイント相対速度）ｖｅｌ’ｃｋ（ｔ）を（５）式により計算する。
【００４２】
【数５】
2010033163.tif 000007
【００４３】
但し、ｖｅｌｃｒｏｏｔ（ｔ）は時刻ｔにおけるルート（０番目のジョイント）の速度（ｖｅｌｃ０（ｔ））である。
なお、時刻ｔにおけるジョイント相対速度の絶対値ｖｅｌ’ｋ（ｔ）は、（６）式により算出することができる。
【００４４】
【数６】
2010033163.tif 000008
【００４５】
但し、ｖｅｌ’ｘｋ（ｔ）はジョイント相対速度ｖｅｌ’ｃｋ（ｔ）のｘ成分、ｖｅｌ’ｙｋ（ｔ）はジョイント相対速度ｖｅｌ’ｃｋ（ｔ）のｙ成分、ｖｅｌ’ｚｋ（ｔ）はジョイント相対速度ｖｅｌ’ｃｋ（ｔ）のｚ成分、である。
【００４６】
これにより、物理量変換部３によって、人体スケルトン型角度情報データから、各時刻における各ジョイントのジョイント相対速度が算出される。
【００４７】
データフィルタ部４は、物理量変換部３によって算出されたジョイント相対速度のデータからノイズ成分を除去するために、各ジョイントのジョイント相対速度データに対してそれぞれ平滑化処理を行う。データフィルタ部４は、各ジョイントのジョイント相対速度データに対して、（７）式により平滑化演算を行う。（７）式は、ローパスフィルタ（low pass filter）の演算式の一例である。（７）式では、ローパスフィルタのタップ数が５である。なお、ローパスフィルタのタップ数は、適宜、設定可能である。
【００４８】
【数７】
2010033163.tif 000009
【００４９】
但し、ｘ（ｎ−ｋ）はフィルタ前の第（ｎ−ｋ）番目のジョイント相対速度である。ｙ（ｎ）はフィルタ後の第（ｎ）番目のジョイント相対速度である。
図３に、ある一ジョイントについてフィルタ前のジョイント相対速度データとフィルタ後のジョイント相対速度データを示す。図３のグラフ図において、横軸はフレームデータのフレーム番号、縦軸はジョイント相対速度である。図３に例示されるように、フィルタ後のジョイント相対速度データは平滑化され、ノイズ成分が除去されている。
【００５０】
なお、平滑化処理にはメディアンフィルタ（median filter）を用いてもよい。又、メディアンフィルタとローパスフィルタを組み合わせて用いてもよい。
【００５１】
データ分割部５は、データフィルタ部によって平滑化されたジョイント相対速度データを、一定時間の区間に分割する。データ分割部５は、各ジョイントのジョイント相対速度データに対して、それぞれデータ分割処理を行う。図４にデータ分割処理の概念を示す。図４に示されるように、データ分割部５は、ジョイント相対速度データを一定時間（一定数のフレームデータ分に対応）の区間に分割する。このとき、各区間が重複区間（オーバーラップ）を有するようにしてもよい。重複区間の長さは、適宜、設定可能である。重複区間の長さは、例えば、分割区間の長さの半分である。
【００５２】
なお、各分割区間が重複しない場合、分割区間にまたがった動きの特徴量が分割後のデータからは取得できなくなる可能性がある。このため、各分割区間が重複するようにして、動きの特徴量の取得漏れを防ぐことが望ましい。
【００５３】
区間特徴量計算部６は、データ分割部５によって分割されたジョイント相対速度データから、各区間の区間特徴量を計算する。区間特徴量計算部６は、各ジョイントのジョイント相対速度データに対して、それぞれ区間特徴量計算処理を行う。区間特徴量計算処理の具体的な計算方法を、区間特徴量の種類をいくつか挙げて以下に示す。
【００５４】
［ダイナミックパターン］
区間特徴量の一つとしてダイナミックパターンがある。ダイナミックパターンは、動きの変化の特徴を表す。本実施形態においては、ダイナミックパターンはジョイント相対速度の変化の特徴を表す。図５に６個のダイナミックパターンを示す。ダイナミックパターン名称「ＵＰ」のダイナミックパターンは、ジョイント相対速度が増加していることを表す。ダイナミックパターン名称「ＰＥＡＫ」のダイナミックパターンは、ジョイント相対速度が増加の後に減少に転ずることを表す。ダイナミックパターン名称「ＤＯＷＮ」のダイナミックパターンは、ジョイント相対速度が減少していることを表す。ダイナミックパターン名称「ＮＡＤＩＲ」のダイナミックパターンは、ジョイント相対速度が減少の後に増加に転ずることを表す。ダイナミックパターン名称「ＷＡＶＥ」のダイナミックパターンは、ジョイント相対速度が、増加の後に減少しまた増加に転ずる、又は、減少の後に増加しまた減少に転ずる、ことを表す。ダイナミックパターン名称「ＦＬＡＴ」のダイナミックパターンは、ジョイント相対速度がほぼ一定であることを表す。
【００５５】
区間特徴量計算部６は、図６に示されるダイナミックパターン分類計算手順に従って、ある一ジョイントのジョイント相対速度データについて各区間の動きを図５の６個のダイナミックパターンのいずれかに分類する。図６のダイナミックパターン分類計算手順は、一つの区間に対する計算手順である。まず、区間特徴量計算部６は、各区間に共通の処理として、ジョイント相対速度データの全区間におけるジョイント相対速度の最大値（最大ジョイント相対速度）ＭＡＸを求める。次いで、区間特徴量計算部６は、ジョイント相対速度データの各区間に対して、図６のダイナミックパターン分類計算手順を実行する。
【００５６】
図６において、ステップＳ２１では、計算対象区間においてジョイント相対速度の最大値ｍａｘと最小値ｍｉｎを求め、最大値ｍａｘと最小値ｍｉｎの差が「“閾値ｔｈ”×“最大ジョイント相対速度ＭＡＸ”」よりも大きいか判定する。閾値ｔｈは、適宜、設定可能である。この結果、最大値ｍａｘと最小値ｍｉｎの差が「“係数ｔｈ”×“最大ジョイント相対速度ＭＡＸ”」以下である場合には、計算対象区間をダイナミックパターン「ＦＬＡＴ」に分類する。一方、最大値ｍａｘと最小値ｍｉｎの差が「“閾値ｔｈ”×“最大ジョイント相対速度ＭＡＸ”」よりも大きい場合には、ステップＳ２２に進む。
【００５７】
ステップＳ２２では、計算対象区間に存在する有効な極値の個数を計算し、判定する。まず、計算対象区間に存在する全ての極値を算出する。次いで、（８）式を満たす極値を、有効な極値であると判定する。次いで、有効な極値の個数「Ｅｘｔｒｅｍｅ  ｎｕｍ」を計算する。
【００５８】
【数８】
2010033163.tif 000010
【００５９】
但し、ｅｘｔｒｅｍｅ（ｉ）は計算対象区間の第ｉ番目の極値である。（８）式を満たす極値ｅｘｔｒｅｍｅ（ｉ）が有効な極値である。
【００６０】
ステップＳ２２の結果、有効な極値の個数「Ｅｘｔｒｅｍｅ  ｎｕｍ」が０である場合には、ステップＳ２３に進む。ステップＳ２３では、計算対象区間において始点のジョイント相対速度（開始ジョイント相対速度）ｖｅｌ（ｓｔａｒｔ）と終点のジョイント相対速度（終了ジョイント相対速度）ｖｅｌ（ｅｎｄ）を求め、開始ジョイント相対速度ｖｅｌ（ｓｔａｒｔ）が終了ジョイント相対速度ｖｅｌ（ｅｎｄ）よりも小さいか判定する。この結果、開始ジョイント相対速度ｖｅｌ（ｓｔａｒｔ）が終了ジョイント相対速度ｖｅｌ（ｅｎｄ）よりも小さい場合には、計算対象区間をダイナミックパターン「ＵＰ」に分類する。一方、開始ジョイント相対速度ｖｅｌ（ｓｔａｒｔ）が終了ジョイント相対速度ｖｅｌ（ｅｎｄ）以上である場合には、計算対象区間をダイナミックパターン「ＤＯＷＮ」に分類する。
【００６１】
ステップＳ２２の結果、有効な極値の個数「Ｅｘｔｒｅｍｅ  ｎｕｍ」が１である場合には、ステップＳ２４に進む。ステップＳ２４では、計算対象区間において開始ジョイント相対速度ｖｅｌ（ｓｔａｒｔ）と唯一の有効な極値のジョイント相対速度（極値ジョイント相対速度）ｖｅｌ（ｅｘｔｒ）を求め、開始ジョイント相対速度ｖｅｌ（ｓｔａｒｔ）が極値ジョイント相対速度ｖｅｌ（ｅｘｔｒ）よりも小さいか判定する。この結果、開始ジョイント相対速度ｖｅｌ（ｓｔａｒｔ）が極値ジョイント相対速度ｖｅｌ（ｅｘｔｒ）よりも小さい場合には、計算対象区間をダイナミックパターン「ＰＥＡＫ」に分類する。一方、開始ジョイント相対速度ｖｅｌ（ｓｔａｒｔ）が極値ジョイント相対速度ｖｅｌ（ｅｘｔｒ）以上である場合には、計算対象区間をダイナミックパターン「ＮＡＤＩＲ」に分類する。
【００６２】
ステップＳ２２の結果、有効な極値の個数「Ｅｘｔｒｅｍｅ  ｎｕｍ」が２以上である場合には、計算対象区間をダイナミックパターン「ＷＡＶＥ」に分類する。
【００６３】
これにより、計算対象区間は図５の６個のダイナミックパターンのいずれかに分類される。
【００６４】
［平均速度］
区間特徴量の一つとして平均速度がある。区間特徴量計算部６は、計算対象区間の全てのジョイント相対速度の総和を計算し、該総和を計算対象区間のジョイント相対速度の総数（計算対象区間のフレームデータ数に対応）で割ってジョイント相対速度の平均（平均ジョイント相対速度）を求める。
【００６５】
［標準偏差］
区間特徴量の一つとして標準偏差がある。区間特徴量計算部６は、計算対象区間の各ジョイント相対速度と平均ジョイント相対速度を用いて標準偏差（ジョイント相対速度標準偏差）を計算する。
【００６６】
なお、区間特徴量の種類としては、上述した「ダイナミックパターン」、「平均速度」及び「標準偏差」以外にも、例えばエネルギー値などが利用可能である。
【００６７】
ここまでが、入力部２、物理量変換部３、データフィルタ部４、データ分割部５及び区間特徴量計算部６により、入力された動きデータについて区間特徴量を算出するまでの説明である。これにより、図２における準備段階では、検索対象動きデータの区間特徴量が、ジョイント毎、且つ、分割区間毎に算出される。又、図２における検索段階では、クエリ動きデータの区間特徴量が、ジョイント毎、且つ、分割区間毎に算出される。
【００６８】
図２における準備段階（検索対象動きデータの区間特徴量算出）では、区間特徴量計算部６は、検索対象動きデータの区間特徴量を区間特徴量データベース７に格納する。図７は、区間特徴量データベース７の構成例である。図７において、区間特徴量データベース７は、検索対象動きデータの識別情報（動きデータＩＤ）に関連付けて、ジョイント番号毎に、区間番号とダイナミックパターン名称と平均速度と標準偏差の組を記憶する。これにより、検索対象動きデータ毎、且つ、ジョイント毎に、各分割区間の区間特徴量（ダイナミックパターン、平均速度及び標準偏差）がデータベース化されて記録される。
【００６９】
次に、区間特徴量距離計算部８、動き類似性計算部９、提示データ作成部１０及び出力部１１により、検索段階においてクエリ動きデータの区間特徴量に基づいて、検索対象動きデータを検索する処理を説明する。
【００７０】
区間特徴量距離計算部８は、クエリ動きデータの区間特徴量と検索対象動きデータの区間特徴量との間の距離（区間特徴量距離）を計算する。区間特徴量距離計算部８は、クエリ動きデータの区間特徴量に対し、区間特徴量データベース７内の全ての動きデータＩＤの区間特徴量を距離計算対象とする。区間特徴量距離計算部８は、クエリ動きデータの区間特徴量と、ある動きデータＩＤの区間特徴量を対象にして区間特徴量距離を計算する際、同じジョイントについて、全ての分割区間の組合せで、区間特徴量距離を計算する。区間特徴量距離計算処理の具体的な計算方法を、区間特徴量の種類毎に以下に示す。
【００７１】
［ダイナミックパターンについての区間特徴量距離］
ダイナミックパターンについての区間特徴量距離は、（９）式により計算される。
【００７２】
【数９】
2010033163.tif 000011
【００７３】
但し、ｓｉｋはクエリ動きデータのｋ番目のジョイントの分割区間ｉのダイナミックパターンを表す。ｓｊｋは検索対象動きデータのｋ番目のジョイントの分割区間ｊのダイナミックパターンを表す。Πは類似するダイナミックパターンの組合せの集合である。ｄ（ｓｉｋ，ｓｊｋ）はｓｉｋとｓｊｋについての区間特徴量距離である。
【００７４】
図８は、類似するダイナミックパターンの組合せを表す関係図である。図８に示されるように、「ＵＰ」に対して「ＰＥＡＫ」、「ＰＥＡＫ」に対して「ＵＰ」、「ＵＰ」に対して「ＮＡＤＩＲ」、「ＮＡＤＩＲ」に対して「ＵＰ」、「ＤＯＷＮ」に対して「ＰＥＡＫ」、「ＰＥＡＫ」に対して「ＤＯＷＮ」、「ＤＯＷＮ」に対して「ＮＡＤＩＲ」、「ＮＡＤＩＲ」に対して「ＤＯＷＮ」、「ＷＡＶＥ」に対して「ＰＥＡＫ」、「ＰＥＡＫ」に対して「ＷＡＶＥ」、「ＷＡＶＥ」に対して「ＮＡＤＩＲ」、「ＮＡＤＩＲ」に対して「ＷＡＶＥ」、の合計１２通りの順列・組合せが、集合Πに属する。これら１２通りの順列・組合せは、ジョイント相対速度の変化の特徴が部分的に同じであるものである。
【００７５】
（９）式において、ｓｉｋとｓｊｋが同じ場合、区間特徴量距離ｄ（ｓｉｋ，ｓｊｋ）は０．０である（ケース１）。（９）式において、ｓｉｋとｓｊｋの組合せが集合Πに属する場合、区間特徴量距離ｄ（ｓｉｋ，ｓｊｋ）は０．５である（ケース２）。（９）式において、ケース１，２以外の場合、区間特徴量距離ｄ（ｓｉｋ，ｓｊｋ）は１．０である。
【００７６】
［平均速度についての区間特徴量距離］
平均速度についての区間特徴量距離は、（１０）式により計算される。
【００７７】
【数１０】
2010033163.tif 000012
【００７８】
但し、ｍｉｋはクエリ動きデータのｋ番目のジョイントの分割区間ｉの平均ジョイント相対速度である。ｍｊｋは検索対象動きデータのｋ番目のジョイントの分割区間ｊの平均ジョイント相対速度である。ｄ（ｍｉｋ，ｍｊｋ）はｍｉｋとｍｊｋについての区間特徴量距離である。
【００７９】
［標準偏差についての区間特徴量距離］
標準偏差についての区間特徴量距離は、（１１）式により計算される。
【００８０】
【数１１】
2010033163.tif 000013
【００８１】
但し、σｉｋはクエリ動きデータのｋ番目のジョイントの分割区間ｉのジョイント相対速度標準偏差である。σｊｋは検索対象動きデータのｋ番目のジョイントの分割区間ｊのジョイント相対速度標準偏差である。ｄ（σｉｋ，σｊｋ）はσｉｋとσｊｋについての区間特徴量距離である。
【００８２】
これにより、区間特徴量の種類毎に、区間特徴量距離が計算される。区間特徴量距離計算部８は、各種類の区間特徴量距離を（１２）式により統合する。
【００８３】
【数１２】
2010033163.tif 000014
【００８４】
但し、ｗ１，ｗ２，ｗ３は各種類の区間特徴量距離についての重み係数である。ｃｌｉｐｉｋはクエリ動きデータのｋ番目のジョイントの分割区間ｉを表す。ｃｌｉｐｊｋは検索対象動きデータのｋ番目のジョイントの分割区間ｊを表す。Ｄｋ（ｃｌｉｐｉｋ，ｃｌｉｐｊｋ）は、ｃｌｉｐｉｋとｃｌｉｐｊｋについての区間特徴量距離の統合値（区間特徴量距離統合値）である。
【００８５】
区間特徴量距離計算部８は、全ジョイントの区間特徴量距離統合値を（１３）式により統合する。
【００８６】
【数１３】
2010033163.tif 000015
【００８７】
但し、ｗ（ｋ）はｋ番目のジョイントについての重み係数である。ｃｌｉｐｉはクエリ動きデータの分割区間ｉを表す。ｃｌｉｐｊは検索対象動きデータの分割区間ｊを表す。Ｄ（ｃｌｉｐｉ，ｃｌｉｐｊ）は、ｃｌｉｐｉとｃｌｉｐｊについての全ジョイントの区間特徴量距離統合値の統合値（全ジョイント区間特徴量距離統合値）である。
【００８８】
これにより、クエリ動きデータと全ての検索対象動きデータとの各組合せにおいて、クエリ動きデータと検索対象動きデータの分割区間の組合せ毎に、全ジョイント区間特徴量距離統合値が計算される。
【００８９】
動き類似性計算部９は、クエリ動きデータと検索対象動きデータとの間の動きの時間的ずれを調整した距離を計算する。クエリ動きデータによる動きと検索対象動きデータによる動きとでは、時間的にずれている可能性がある。このため、時間的ずれを調整し、クエリ動きデータによる動きと検索対象動きデータによる動きをマッチングさせることを試みる。ここでは、ダイナミック・タイム・ワーピング（ＤＴＷ）法を用いる。
【００９０】
図９、図１０は、ＤＴＷ法の概念を説明するための図である。図９において、時系列信号Ｘ（ｔ）と時系列信号Ｙ（ｔ）は、時刻ｔ８，ｔ１４，ｔ１５ではマッチングしているが、それ以外の時刻では時間的にずれている。そこで、図９に示されるようにＤＴＷ法を用いて最適パスを検出し、時系列信号Ｘ（ｔ）と時系列信号Ｙ（ｔ）をマッチングさせる。具体的には、（１４）式により最適パスの距離のコストを計算する。
【００９１】
【数１４】
2010033163.tif 000016
【００９２】
但し、ＤＴＷ（ｉ，ｊ）は、クエリ動きデータと検索対象動きデータの開始区間（ｉ＝ｊ＝１）から、クエリ動きデータの分割区間ｉ且つ検索対象動きデータの分割区間ｊまでの最適パスの距離のコストである。
【００９３】
動き類似性計算部９は、（１４）式によりＤＴＷ（ｉ，ｊ）を計算する。次いで、動き類似性計算部９は、ＤＴＷ（ｉ，ｊ）に基づいて、クエリ動きデータと検索対象動きデータの開始地点（ｉ＝ｊ＝１）から終了地点（ｉ＝ｊ＝Ｎ、Ｎは分割区間の個数）までの最適パスを決定する。次いで、動き類似性計算部９は、（１５）式により、クエリ動きデータと検索対象動きデータとの間の最短距離を計算する。
【００９４】
【数１５】
2010033163.tif 000017
【００９５】
但し、ｐａｔｈはクエリ動きデータと検索対象動きデータの開始地点から終了地点までの最適パスである。Ｌは最適パスの長さ（最適パスに含まれる、クエリ動きデータの分割区間ｉと検索対象動きデータの分割区間ｊの組の個数）である。ＭｏＣａｐｍはクエリ動きデータを表す。ＭｏＣａｐｎは検索対象動きデータを表す。Ｄ（ＭｏＣａｐｍ，ＭｏＣａｐｎ）は、ＭｏＣａｐｍとＭｏＣａｐｎの間の最短距離である。
【００９６】
これにより、クエリ動きデータと全ての検索対象動きデータとの各組合せにおいて、最短距離が計算される。
【００９７】
提示データ作成部１０は、動き類似性計算部９によって算出された最短距離に基づいて、検索結果の提示データを作成する。具体的には、まず、提示データ作成部１０は、最短距離が短い方の検索対象動きデータから順番に、所定数だけ検索対象動きデータを選択する。次いで、提示データ作成部１０は、選択した検索対象動きデータに係る提示データを作成する。提示データとしては、例えば、動きデータＩＤリスト、アニメーションデータ、キーポーズデータ、平均ポーズデータなどである。アニメーションデータでは、検索対象動きデータに含まれる動きの中の全てのポーズを時系列に従ってレンダリングする。キーポーズデータでは、検索対象動きデータに含まれる動きの中から重要なポーズだけを選択してレンダリングする。平均ポーズデータでは、検索対象動きデータに含まれる動きの中の全てのポーズから平均的なポーズを選択してレンダリングする。
【００９８】
出力部１１は、提示データ作成部１０によって作成された提示データを出力する。ユーザ（検索依頼者）は、その提示データによって検索結果の動きデータを参照したり、取得したりすることができる。
【００９９】
本実施形態によれば、クエリ動きデータの区間特徴量と検索対象動きデータの区間特徴量との間の距離に基づいて、検索結果として提示する検索対象動きデータを選択する。これにより、同じ種類の動きを有する検索対象動きデータが検索可能となる効果が得られる。特に、区間特徴量としてダイナミックパターンを用いることにより、分割区間における動きの基本的特徴を維持しながら、動きの精細な部分をぼかす効果が得られる。これにより、動きの多様性に十分に対応した動きデータ検索を行うことができ、検索精度の格段の向上を図ることが可能になる。
【０１００】
又、区間特徴量を用いるので、フレームデータ単位での特徴量間の距離の計算量に比して格段に計算量が削減される。これにより、検索時間の短縮を図ることができる。
【０１０１】
又、区間特徴量距離によって動き解析を行うといった応用も可能である。
【０１０２】
なお、本実施形態に係る動きデータ検索装置１は、専用のハードウェアにより実現されるものであってもよく、あるいはパーソナルコンピュータ等のコンピュータシステムにより構成され、図１に示される動きデータ検索装置１の各部の機能を実現するためのプログラムを実行することによりその機能を実現させるものであってもよい。
【０１０３】
また、その動きデータ検索装置１には、周辺機器として入力装置、表示装置等が接続されるものとする。ここで、入力装置とはキーボード、マウス等の入力デバイスのことをいう。表示装置とはＣＲＴ（Cathode Ray Tube）や液晶表示装置等のことをいう。
また、上記周辺機器については、動きデータ検索装置１に直接接続するものであってもよく、あるいは通信回線を介して接続するようにしてもよい。
【０１０４】
また、図１に示す動きデータ検索装置１の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、動きデータ検索処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１０５】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１０６】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した実施形態では人の動きデータを扱ったが、本発明は各種の物体の動きデータに適用することができる。ここで、物体とは、人、動物、植物その他の生物、及び、生物以外の物を含む。又、スケルトン型動きデータは、人、動物、植物その他の生物、及び、生物以外の物に対して、適用可能である。
【０１０７】
なお、物理量変換部３は、人体スケルトン型加速度情報データを用いて、各時刻における各ジョイントのジョイント相対速度を算出することも可能である。この具体的な計算方法を以下に示す。
まず、物理量変換部３は、動きデータにおいて、ジョイント毎に動きの平均速度を計算し、該平均速度をジョイントの初期速度に設定する。次いで、物理量変換部３は、（１６）式により、時刻ｔにおけるｋ番目のジョイントの速度ｖｅｌｃｋ（ｔ）を計算する。（１６）式では、加速度の積分値を初期速度に加算している。
【０１０８】
【数１６】
2010033163.tif 000018
【０１０９】
但し、ｖｅｌ＿ｉｎｉｔｃｋはｋ番目のジョイントの初期速度である。ａｃｋ（τ）は時刻τにおけるｋ番目のジョイントの加速度であり、人体スケルトン型加速度情報データに含まれる。
なお、（５）式と（６）式により、時刻ｔにおけるジョイント相対速度の絶対値ｖｅｌ’ｋ（ｔ）を算出することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の一実施形態に係る動きデータ検索装置１の構成を示すブロック図である。
【図２】同実施形態に係る動きデータ検索手順の全体の流れを示すフローチャートである。
【図３】図１に示すデータフィルタ部４のフィルタ前後のジョイント相対速度データの例である。
【図４】図１に示すデータ分割部５のデータ分割処理の概念図である。
【図５】ダイナミックパターンの例である。
【図６】図１に示す区間特徴量計算部６のダイナミックパターン分類計算手順のフローチャートである。
【図７】図１に示す区間特徴量データベース７の構成例である。
【図８】図５に示すダイナミックパターンのうち類似するダイナミックパターンの組合せを表す関係図である。
【図９】ＤＴＷ法の概念を説明するための図である。
【図１０】ＤＴＷ法の概念を説明するための図である。
【図１１】人体スケルトン型動きデータの定義例である。
【符号の説明】
【０１１１】
１…動きデータ検索装置、２…入力部、３…物理量変換部、４…データフィルタ部、５…データ分割部、６…区間特徴量計算部、７…区間特徴量データベース、８…区間特徴量距離計算部、９…動き類似性計算部、１０…提示データ作成部、１１…出力部
【図１】
2010033163.tif 000019
【図２】
2010033163.tif 000020
【図３】
2010033163.tif 000021
【図４】
2010033163.tif 000022
【図５】
2010033163.tif 000023
【図６】
2010033163.tif 000024
【図７】
2010033163.tif 000025
【図８】
2010033163.tif 000026
【図９】
2010033163.tif 000027
【図１０】
2010033163.tif 000028
【図１１】
2010033163.tif 000029