(57)【要約】【課題】利用者が正しく運動を行っているか否かの把握を容易にでき、その応用範囲を拡大できる動作情報処理装置を提供する。【解決手段】運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続された動作情報処理装置であって、教示情報を取得し、運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得し、当該部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成して教示情報に含まれる、姿勢の情報と比較し、当該比較の結果を記録する。【選択図】図１
2015186531.tif 000002
【特許請求の範囲】
【請求項１】
運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続された動作情報処理装置であって、
前記データベースから、前記教示情報を取得する教示情報取得手段と、
運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得する利用者動作取得手段と、
前記利用者動作取得手段が取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成し、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報と比較する比較手段と、
前記比較の結果を記録する記録手段と、
を含む動作情報処理装置。
【請求項２】
請求項１記載の動作情報処理装置であって、
前記利用者動作取得手段において認識される部位情報から利用者の体の各部位の位置間の距離の情報を得て、当該距離の情報と、前記データベースに記録された前記教示情報に含まれる教示者の姿勢の情報とに基づき、前記教示者と利用者との体格差に関する情報を生成する生成手段をさらに含み、
前記比較手段は、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報を前記生成手段において生成した体格差に関する情報に基づいて補正し、当該補正した姿勢の情報と、前記利用者動作取得手段が取得した部位情報に基づいて得られる、予め定めたタイミングごとの利用者の姿勢を表す情報とを比較する動作情報処理装置。
【請求項３】
請求項１または２記載の動作情報処理装置であって、
利用者の立つ床面の位置を推定する手段と、
前記推定された床面の位置と、利用者の体の各部位の位置とに基づいて、利用者の足首から足先への方向を推定する手段と、をさらに含み、
前記データベースに含まれる教示情報は、教示者の足首と足先とを結ぶ線上にある点の位置の情報が抽出可能な情報であり、
前記利用者動作取得手段は、部位情報として、利用者の前記推定された利用者の足首から足先への方向を用いて、利用者の足首と足先とを結ぶ線上にある点の位置の情報を含む情報を取得し、
前記比較手段は、前記教示情報に含まれる姿勢情報から抽出した教示者の前記点の位置の情報と、前記利用者の前記点の位置の情報とを用いて、前記姿勢の情報の比較を行う動作情報処理装置。
【請求項４】
運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続されたコンピュータを、
前記データベースから、前記教示情報を取得する教示情報取得手段と、
運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得する利用者動作取得手段と、
前記利用者動作取得手段が取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成し、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報と比較する比較手段と、
前記比較の結果を記録する記録手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者の動作に関する情報を処理する動作情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
自宅で行い得る運動を教示し、その動きに即した運動を利用者が行っているかを判別するシステムがある。例えば、特許文献１には、間隔を置いた２以上の荷重センサを有しプレイヤの足が乗せられる支持台を備える荷重検出装置のコンピュータにおいて実行される荷重検出プログラムであって、荷重センサによって測定される支持台にかかる荷重値を検出し、検出された荷重値のプレイヤの体重値に対する割合を算出するとともに、検出された荷重値の重心位置を算出し、これら割合と重心位置とに基づいて、支持台に対してプレイヤが行った動作を判別するプログラムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０９２５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、利用者の体重と重心とを用いることができるだけであるので、上半身の動作や、下半身であっても詳細な動きの相違を捉えることができず、正しく運動が行われているか否かの判断が困難で、遊技用としては成立しても、運動指導の用途には耐えられない。
【０００５】
本発明は上記実情に鑑みて為されたもので、利用者が正しく運動を行っているか否かの把握を容易にでき、その応用範囲を拡大できる動作情報処理装置を提供することを、目的の一つとする。
【課題を解決するための手段】
【０００６】
上記従来例の問題点を解決するための本発明は、運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続された動作情報処理装置であって、前記データベースから、前記教示情報を取得する教示情報取得手段と、運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得する利用者動作取得手段と、前記利用者動作取得手段が取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成し、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報と比較する比較手段と、前記比較の結果を記録する記録手段と、を含むこととしたものである。
【発明の効果】
【０００７】
本発明によると、利用者が正しく運動を行っているか否かの把握を容易にでき、その応用範囲を拡大できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る動作情報処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る動作情報処理装置が利用する教示情報の内容例を表す説明図である。
【図３】本発明の実施の形態に係る動作情報処理装置の一例に係る機能ブロック図である。
【図４】本発明の実施の形態に係る動作情報処理装置がモニタ等に表示出力する画像の例を表す説明図である。
【図５】本発明の実施の形態に係る動作情報処理装置の例に係る情報比較のための機能ブロック図である。
【図６】本発明の実施の形態に係る動作情報処理装置の姿勢変換に係る処理手順の概要を表す説明図である
【図７】本発明の実施の形態に係る動作情報処理装置の別の例に係る情報比較のための機能ブロック図である。
【図８】本発明の実施の形態に係る動作情報処理装置の足先方向の推定処理例を表す説明図である。
【図９】本発明の実施の形態に係る動作情報処理装置の動作例を表すフローチャート図である。
【図１０】本発明の実施の形態に係る動作情報処理装置の初期化処理の動作例を表すフローチャート図である。
【図１１】本発明の実施の形態に係る動作情報処理装置がモニタ等に表示出力する画像のもう一つの例を表す説明図である。
【発明を実施するための形態】
【０００９】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る動作情報処理装置１は、図１に例示するように、撮像装置１０と、本体部２０とを含み、本体部２０は制御部２１と、記憶部２２と、操作部２３と、表示部２４と、通信部２５とを含んで構成される。
【００１０】
撮像装置１０は、例えばカメラと赤外線投射部とを備えた装置である。この撮像装置１０は、例えばカメラの視線方向の画像を撮像するとともに、赤外線投射部が被写体に向けて投射した赤外線の輝度を表す情報を取得する。またこの撮像装置１０はステレオカメラであってもよい。この場合、撮像装置１０は、各カメラの視線方向の画像を撮像して出力する。
【００１１】
本体部２０の制御部２１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。本実施の形態の制御部２１は、撮像装置１０が出力する情報に基づいて、その被写体となった利用者の体の各部位について、その深さ（撮像装置１０からの距離）を含めた三次元座標値と、利用者を撮影した像とを得て出力する。この三次元座標値は、具体的には、撮像装置１０のカメラの視線方向を法線方向とする面をＸＹ面とし、当該法線方向をＺ軸とする三次元座標系である。ここで鉛直下方をＹ軸正の向きとし、右手系で人差指方向をＹ軸正の向き、中指方向をＺ軸正の向きとしたとき、親指の向きをＸ軸正の向きとする。以下、このＸＹＺの直交座標系をワールド座標系と呼ぶ。
【００１２】
またこの制御部２１は、運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセスし、当該データベースから、教示情報を取得する。また制御部２１は、運動に伴う利用者の体の各部位の位置等に関する部位情報を、予め定めたタイミングごとに逐次的に取得し、当該取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す姿勢情報を生成し、教示情報に含まれる教示者の姿勢の情報と比較して、当該比較の結果を記録する処理を行う。この制御部２１の詳しい動作の内容については、後に述べる。
【００１３】
記憶部２２は、メモリデバイス等であり、制御部２１によって実行されるプログラムを保持する。本実施の形態の一例では、このプログラムはＤＶＤ−ＲＯＭ等持続的（non-transitory）かつコンピュータ可読な記録媒体に格納されて提供され、この記憶部２２に格納されたものであってもよい。またこのプログラムはネットワークを介して配信され、この記憶部１２に格納されたものであってもよい。
【００１４】
また本実施の形態の記憶部２２は、制御部２１のワークメモリとしても動作する。本実施の形態のある例においては、この記憶部２２に、データベースが保持されているものとする。具体的にこのデータベースは図２に例示するように、運動の種類（Ｐ）ごとに、教示者の初期の姿勢を表す情報とともに、運動に伴う時刻Ｔi（ｉ＝１，２，…）での教示者の姿勢を表す情報要素（Ｅ）を、時系列順に複数記録したものである。図２の例では、こうして種々の運動に伴う教示者の姿勢の時系列変化を表す教示情報が表現されている。
【００１５】
また、図２の例において教示者の初期の姿勢を表す情報は、教示者の体の部位を特定する部位特定情報（Ａ）と、教示者の当該部位の位置を表す座標情報（Ｂ）とを関連付けたものである。また、運動に伴う、各時刻Ｔi（ｉ＝１，２，…）における教示者の姿勢を表す情報要素（Ｅ）はさらに、その時刻Ｔiでの教示者の体の部位を特定する部位特定情報（Ａ）と、教示者の運動に伴う時刻Ｔiでの当該部位の位置を表す座標情報（Ｂ）とを関連付けた部位毎情報（ｅ）を少なくともひとつ含む。
【００１６】
ここでは教示者、利用者の体の各部位の具体的な例として、人体の関節や主要部を用いる。その一例は、頭部、首部、胴部、腰部、左右の肩中心、左右の肩関節、左右の肘関節、左右の手首、左右の指先、左右の股関節、左右の膝関節、左右の足首、左右の足の甲などである。また、実際の骨格により連結される部位のペアについて、当該ペアに係る部位間を連結するボーンの情報が予め規定されているものとする。上述の部位の例においては、頭部と首部とを連結するボーン、首部と左の肩中心とを連結するボーン、左の肩中心と左の肩関節とを連結するボーン…というように、ボーンが規定されているものとする。
【００１７】
ここでの例では、教示者の体の部位を特定する部位特定情報（Ａ）として、これらの各部位のいずれかを特定する情報（右手肘、左手肘、右手手首、左手手首、右肩、左肩…など、部位の名称）が用いられるものとする。そして初期位置の情報として、この部位特定情報と、それぞれの部位の位置の座標情報（一例としてＸＹＺ直交座標系（ワールド座標系）における座標値ｘ，ｙ，ｚを用いる）とが関連付けて記録される。また、運動に伴う教示者の姿勢を表す情報として、各部位特定情報に対して、対応する部位の位置の座標情報が関連付けて記録される。この座標情報も、本実施の形態の一例においてはワールド座標系における座標値で表されていてよい。
【００１８】
操作部２３は、例えばゲーム用のコントローラであり、十字キー等を備えている。この操作部２３は、利用者の操作を受け入れて、制御部２１に対して有線、または無線にて当該操作の内容を表す情報を伝達する。表示部２４は、例えばモニタやテレビ受像機に映像を出力するインタフェースであり、制御部２１から入力される指示に従い、画面の映像を生成して出力する。本実施の形態では、この表示部２４にはモニタが接続され、表示部２４が出力した映像が表示出力される。
【００１９】
通信部２５は、ネットワークインタフェース等であり、ネットワークを介して外部のサーバ装置等との間で情報の送受を行う。本実施の形態の一例では、この通信部２５は、ネットワークを介してサーバ装置３０に接続される。また通信部２５は、ネットワークを介して到来した、動作情報処理装置１宛の情報を受信して制御部２１に出力する。またこの通信部２５は、制御部２１から入力される指示に従い、ネットワークを介してサーバ装置３０等、外部の装置宛の情報を送出する。
【００２０】
次に、制御部２１の動作について説明する。本実施の形態では、制御部２１は機能的に、図３に例示するように、教示情報取得部４１と、利用者動作取得部４２と、教示情報提示部４３と、利用者画像表示部４４と、比較部４５と、記録部４６と、を含んで構成される。
【００２１】
教示情報取得部４１は、データベースに格納されている運動の種類のうち、どの種類の運動を行うかの指定を、利用者から受け入れる。そしてこの教示情報取得部４１は、指定された運動の種類に対応してデータベースに記録されている教示情報を読み出して取得し、教示情報提示部４３と比較部４５とに出力する。
【００２２】
利用者動作取得部４２は、撮像装置１０から入力される情報を受け入れる。そしてこの利用者動作取得部４２は、当該受け入れた情報から、利用者の体の各部位の位置を表す座標情報（ＸＹＺ直交座標系（ワールド座標系）における座標値ｘ，ｙ，ｚを用いる）を、部位情報として取得する。具体的にはこの利用者動作取得部４２は、米国マイクロソフト社のキネクト（登録商標）システムを利用する。この場合は利用者動作取得部４２は、利用者を撮影して得た像と、被写体に投射された赤外線の輝度の情報とを用いて、利用者の体の各部位の位置を表す座標情報を得るものである。こうした処理については、キネクトのＡＰＩ（Application Program Interface）群として実装されているので、ここでの詳しい説明を省略する。なお、ステレオカメラを用いる場合も同様の処理を行うものが広く知られているので、それらを採用すればよい。
【００２３】
本実施の形態の以下の例では、利用者動作取得部４２は、具体的にキネクトのＡＰＩとして用意されている関数を用いるものとするが、同等の機能を備えるものであればどのようなものであってもよい。ここでの例では、利用者動作取得部４２は、起動時に利用者の体の各部位を認識して、新たな利用者が認識されたときに実行されるべき処理（初期化処理）を開始する。
【００２４】
この利用者動作取得部４２は、初期化の処理として、教示情報取得部４１が取得した教示情報のうちから、初期の姿勢を表す情報（時刻Ｔ0における最初の姿勢）を読み出す。そして利用者動作取得部４２は、撮像装置１０から逐次的に入力される情報に基づいて利用者の各部位の位置を繰り返し取得しながら、当該取得した各部位の位置が、当該読み出した教示者の初期の姿勢に一致するまで待機する。具体的にこの利用者動作取得部４２は、利用者の各部位の座標情報と、教示者の初期の姿勢で、それぞれ対応する部位に係る座標情報との差を演算し、それぞれの差がいずれも予め定めたしきい値より小さくなる（これを教示者の初期の姿勢に利用者の姿勢が一致した状態とする）まで待機する。
【００２５】
利用者動作取得部４２は、利用者の各部位の位置が、当該読み出した教示者の初期の姿勢に一致するようになると、教示情報提示部４３に対して教示情報の提示開始を指示する。その後、利用者動作取得部４２は、後に説明する教示情報提示部４３における提示されている教示情報の再生時刻情報の入力を受け入れる。利用者動作取得部４２は、再生時刻情報が予め定められたタイミングになるごとに繰返して、スケルトン（骨格）データの取得のための関数等をコールして利用者の体の各部位の位置を表す部位情報を取得し、当該取得した部位情報を利用者画像表示部４４と比較部４５とに出力する。キネクトを用いる例では、このスケルトンデータのうちに、人体の複数のジョイント（関節）の座標が含まれる。さらにこの利用者動作取得部４２は、教示情報提示部４３から再生が終了した旨の情報の入力を受けて、処理を終了してもよい。
【００２６】
教示情報提示部４３は、利用者動作取得部４２から教示情報の提示開始の指示を受けて次の処理を開始する。すなわち、この教示情報提示部４３は、教示情報取得部４１が取得した教示情報を再生した画像を表示する。具体的に教示情報提示部４３は、利用者動作取得部４２から教示情報の提示開始の指示を受けると、予め定めた時間（例えば５秒）だけ待機した後、教示情報取得部４１が取得した教示情報の再生処理を開始する。
【００２７】
この再生処理では、教示情報提示部４３は、教示情報から初期の各部位ｑ（ｑは、右手肘、左手肘、右手手首、左手手首、右肩、左肩…など各部位ごとの識別情報、ここでは例えば識別番号１，２…とする）の座標情報Ｉｖq_0＝（Ｉｘq_T0，Ｉｙq_T0，Ｉｚq_T0）と、各時刻Ｔi（ｉ＝１，２，…）における各部位の位置を表す座標情報Ｉｖq_i＝（Ｉｘq_Ti，Ｉｙq_Ti，Ｉｚq_Ti）とを読み出す。なお、ここでの例では座標情報はいずれもワールド座標系での値として表されているものとしている。
【００２８】
そして教示情報提示部４３は、変数ｊを「１」に初期化し、時刻Ｔjにおける仮想の三次元空間内に人体を模した三次元モデルを生成する。教示情報提示部４３は、以下、所定のタイミングごとにｊを「１」ずつインクリメントしながら、三次元モデルの姿勢を更新してはその画像を表示部２４に出力してモニタ等に表示させていく。ここでｊをインクリメントするタイミングは、時刻Ｔjにて表示を更新した後、時刻Ｔj+1−Ｔjの実時間に相当する時間だけあとのタイミングとしてもよいし、実時間に対して利用者が設定したパラメータを乗じた時間だけ後のタイミングとしてもよい。後者のようにすると、やや早めに教示情報を再生したり、あるいは教示情報の再生速度をやや遅めにしたりすることができる。
【００２９】
教示情報提示部４３は、各時点Ｔjでの三次元モデルの各部位の位置を、教示情報に含まれる時刻Ｔjにおける対応する部位特定情報に関連付けられた座標情報の位置に設定して、三次元モデルの人体の姿勢を時刻Ｔjにおける教示者の姿勢に一致させ、当該三次元モデルの画像を表示部２４に出力してモニタ等に表示させる。またこのとき、教示情報提示部４３は、再生時刻情報として時刻Ｔjを表す情報を、利用者動作取得部４２に出力する。
【００３０】
教示情報提示部４３は、時刻Ｔjに対応する教示情報がなくなると（最後まで再生されると）、再生が終了した旨の情報を利用者動作取得部４２に対して出力する。
【００３１】
利用者画像表示部４４は、撮像装置１０から入力される画像の情報を受け入れて、この画像の情報を表示部２４に出力してモニタ等に表示させる。またこの利用者画像表示部４４は、この利用者の画像に対して、その画像に基づいて得られた部位の位置に対応する位置に、所定の図形（例えば塗り潰した円）を重ね合わせて描画して表示する。この利用者画像表示部４４の処理は、例えばキネクトを用いる場合には、開発キット（ＳＤＫ）として提供されたプログラムを採用でき、広く知られたものであるので、ここでの詳しい説明を省略する。
【００３２】
これら教示情報提示部４３と利用者画像表示部４４との出力する情報に基づいて、表示部２４は、図４に例示するように、教示情報に基づく仮想的な人体の三次元モデルの画像（Ｉ）と、利用者の映像（Ｕ）とを並べて表示するようにしてもよい。ここで利用者の映像には、利用者動作取得部４２が求めた各部位の位置を表す仮想的な図形（Ｆ）が合成されてもよい。さらに利用者の人体の三次元モデルの画像がさらに合成されてもよい。ここで教示者や利用者を表す仮想的な三次元モデルの画像の表示は、キネクトのＡＰＩを利用するばかりでなく、教示情報に表されているボーンや部位、または利用者動作取得部４２が求めたボーンや部位をメタボール（T. Nishita, E. Nakamae, "A Method for Displaying Metaballs by using Bezier Clipping," Computer Graphics Forum, Vol.13, No.3, 1994, pp.271-280等を参照）で表現してモデリングしたものであってもよいし、さらにより人体に近い形状にモデリングしたものを用いてもよく、一般的な三次元コンピュータグラフィックスの処理として広く知られた方法を採用できるので、ここでの詳しい説明は省略する。
【００３３】
比較部４５は、本実施の形態の一例では、図５に例示するように、姿勢情報生成部５１と、姿勢情報比較部５２とを含んで構成される。このうち、姿勢情報生成部５１は、利用者動作取得部４２が取得した部位情報に基づいて、予め定めたタイミング（時刻Ｔi（ｉ＝０，１，２，…））ごとの利用者の姿勢を表す姿勢情報を生成する。ここで生成する情報は、データベースから取得した情報と比較可能とするための情報である。
【００３４】
姿勢情報生成部５１は、キネクトを利用する場合は、予め定めたタイミングごと（時刻Ｔiごと）に、当該時刻Ｔi（ｉ＝１，２，…）における情報として、各部位ｑ（ｑ＝1，2…）について、利用者の各部位の座標情報を取得する。
【００３５】
具体的な例として、ここで教示情報に、予め定めたタイミング（時刻Ｔi（ｉ＝０，１，２，…））ごとの右肩関節の座標Ｉｖrs_i（Ｉｘrs_Ti，Ｉｙrs_Ti，Ｉｚrs_Ti）が含まれているとすると、この姿勢情報生成部５１は、利用者動作取得部４２が取得した部位情報から、各時刻Ｔiにおける右肩関節の座標情報ｖrs_i（ｘrs_Ti，ｙrs_Ti，ｚrs_Ti）を取り出し、姿勢情報に含める。
【００３６】
さらに比較部４５の姿勢情報比較部５２は、当該演算により得た、予め定めたタイミングごとの利用者の姿勢情報を、教示情報に含まれる、対応するタイミングでの姿勢の情報と比較する。すなわち姿勢情報比較部５２は、時刻Ｔi（ｉ＝０，１，２，…）ごとの、先に生成した利用者の姿勢情報のうちから、部位ごとの座標情報を読み出す。また比較部４５は、教示情報に含まれる、当該読み出した部位に対応する座標情報と、先に読み出した利用者の部位ごとの姿勢情報とを比較する。
【００３７】
具体的に上述の例を用いてこの姿勢情報比較部５２の動作を説明すると、姿勢情報比較部５２は、時刻Ｔiでの利用者の右肩関節の座標情報ｖrs_sを取得し、さらにこの座標情報と、時刻Ｔiでの教示情報から得られる右肩関節の座標情報Ｉｖrs_iとの差を演算する。この差は例えば各成分の差の二乗和、（Ｉｘrs_Ti−ｘrs_Ti）2＋（Ｉｙrs_Ti−ｙrs_Ti）2＋（Ｉｚrs_Ti−ｚrs_Ti）2の平方根等として演算できる。
【００３８】
そして姿勢情報比較部５２は、当該比較の結果を表す比較結果情報を記録部４６に出力する。具体的に姿勢情報比較部５２は、上述のように演算した、時刻Ｔiでいずれかの部位における教示情報との差が予め定められたしきい値を超える場合に、当該時刻Ｔiと、当該部位とを表す情報とに対して、動作が不完全であったことを表す情報を関連付けて、比較結果情報として記録部４６に出力する。また姿勢情報比較部５２は、当該部位を表す情報と、動作が不完全であったことを表す情報を利用者画像表示部４４に出力してもよい。この場合利用者画像表示部４４は、当該部位に対応する部分に動作が不完全であることを表す表示を行ってもよい。この表示は、例えば当該部位に対応する座標近傍に、赤色の円を描画するなどの方法で行うこととしてもよい。
【００３９】
この処理により、例えば時刻Ｔ10において、利用者の右肩関節の位置と、時刻Ｔ10における教示情報によって表される右肩関節の位置との差が、予め定めたしきい値より大きい場合に、時刻Ｔ10を表す情報と、右肩関節を表す情報とに関連付けて、利用者の動作が不完全であった旨の情報が比較の結果として記録部４６に出力される。
【００４０】
記録部４６は、比較部４５が出力する比較結果情報を、記憶部２２に蓄積して記録する。この記録部４６は、利用者動作取得部４２が教示情報提示部４３から再生が終了した旨の情報の入力を受けて、処理を終了すると、記録の処理を終了する。
【００４１】
本実施の形態の一例では、この記録部４６は、記録の処理を終了すると、当該処理で記録した比較結果情報を、通信部２５に出力して、例えば病院等に配されたサーバ装置３０へ送信させてもよい。病院側ではこのサーバ装置３０に送られた教示情報に対する利用者の姿勢の比較の結果を参照し、利用者の運動の状況を、医師等が確認できるようになる。
【００４２】
［各部位置座標の他の例］
なお、本実施の形態の一例では、利用者の各部位の位置や、教示情報に含まれる各部位の位置を表す座標情報として、ワールド座標系ではなく、各部位ごとに異なるローカル座標系を用いて表すこととしてもよい。
【００４３】
すなわち、医療の用途に本実施の形態の情報処理装置を用いる場合には、ワールド座標系における各部位の位置を比較するのみでは十分でなく、関節等の回転角を比較することが必要とされる場合がある。そこでこのような場合における各部位の回転角（部位ごとのローカル座標系間の回転角）を求めて比較する方法の例について次に説明する。
【００４４】
この例では、予め、どの部位の回転角を求めるかを定めておく。具体的に回転角を求め得る部位（対象部位）は、以下の例のように複数のボーンの端点となっている部位である。また当該複数のボーンのうちから一対のボーンを選択して、当該選択した一対のボーンのうち一つについての他方側の端点の部位（以下、隣接部位と呼ぶ）を基準部位、もう一つについての他方側の端点の部位（隣接部位）を末端部位として、対象部位、基準部位、末端部位の組ごとに、３つの回転角が求められる。そこでこの例では、予め回転角を求めるべき対象部位、基準部位、末端部位の組を複数組、定めておくものとする。
【００４５】
そして姿勢情報生成部５１は予め定められた対象部位、基準部位、末端部位の組を順次注目組として選択しながら、以下の処理を行う。すなわち、姿勢情報生成部５１は、選択した注目組に係る対象部位、基準部位、末端部位の各部位の位置のワールド座標系における座標情報を、利用者動作取得部４２が取得した部位情報から取り出す。以下では対象部位をＰ0と表す。
【００４６】
また姿勢情報生成部５１は、基準部位と末端部位とをそれぞれＰa，Ｐbとする（図６（ａ））。次に、姿勢情報生成部５１は、対象部位Ｐ0を原点として、これとＰaとを結ぶ線分の方向をＡ軸とし、部位Ｐ0からＰbへの線分の方向をＣ軸とする。つまり、Ａ軸上にある隣接部位が基準部位となり、Ｃ軸上にある隣接部位が末端部位となる。またこれらＡ軸とＣ軸とに直交する方向の軸をＢ軸とする。そして姿勢情報生成部５１は、Ａ軸とＣ軸とが平行であるか否かを調べる。ここでＡ軸とＣ軸とが平行であれば、姿勢情報生成部５１は、回転角（以下に説明するθA，θB，θCのいずれも）が「０」であるとして、対象部位Ｐ0と、隣接部位Ｐa，Ｐbとを特定する部位特定情報に関連付けて、姿勢情報として出力する。
【００４７】
また、Ａ軸とＣ軸とが平行でなければ、姿勢情報生成部５１は、Ａ軸まわりの回転角θAを次のように求める。すなわち、姿勢情報生成部５１は、ワールド座標系であるＸＹＺ直交座標系を回転させ、Ｘ軸をＡ軸に平行とする。またこの回転させた座標系を平行移動して対象部位Ｐ0の座標を原点とした座標系（ξηζ直交座標系とする）を定める。この座標系では、ξ軸はＡ軸に平行となっており、対象部位Ｐ0の座標情報は（ξ0，η0，ζ0）＝（０，０，０）となる。
【００４８】
姿勢情報生成部５１は、点Ｐa，Ｐbのξηζ座標系での座標情報を求めておく。この座標変換は、各点Ｐa，Ｐbのワールド座標系を回転してＸ軸をξ軸に、Ｙ軸をη軸に、Ｚ軸をζ軸に平行とし、さらに平行移動してその原点を対象部位の位置にする座標変換であり、広く知られた方法を用いて行うことができる。
【００４９】
姿勢情報生成部５１は、点Ｐbからξ軸に沿ってηζ面に下ろした垂線の足ＨＰbの座標情報（ξηζ座標系による）のη座標の値をＨＰb_η、ζ座標の値をＨＰb_ζとする。そしてＡ軸周りの回転角θAを、θA＝−arctan[ＨＰb_ζ／ＨＰb_η]として求める（図６（ｂ））。
【００５０】
次に姿勢情報生成部５１は、Ｐa，Ｐbの各部位のξηζ座標系での座標情報を、Ａ軸（つまりξ軸に一致する）まわりにθAだけ回転させたξ′η′ζ′座標系での値に変換する。この座標系においてはζ′軸がＢ軸に一致している。姿勢情報生成部５１は、このとき、点ＰbをＡ軸（ξ軸）まわりにθAだけ回転させた点Ｐ′bの座標情報を求めておく。
【００５１】
姿勢情報生成部５１は、点Ｐ′bからζ′軸に沿ってξ′η′面に下ろした垂線の足をＨＰ′bとして、当該足ＨＰ′bの座標情報を求める。ここでは足ＨＰ′bのξ′座標の値がＨＰ′b_ξ′、η′座標の値がＨＰ′b_η′として求められたものとする。姿勢情報生成部５１は、そして、Ｂ軸周りの回転角θBを、θB＝arctan[−ＨＰ′b_ξ′／ＨＰ′b_η′]として求める（図６（ｃ））。
【００５２】
次に姿勢情報生成部５１は、Ｐa，Ｐ′bの各部位のξ′η′ζ′座標系での座標情報を、ζ′軸まわりにθBだけ回転させたξ″η″ζ″座標系での値に変換する。この変換により、η″軸がＣ軸に一致する。またこのとき姿勢情報生成部５１は、点Ｐa，Ｐ′bをζ′軸まわりにそれぞれθBだけ回転させた点Ｐ″a，Ｐ″bの座標情報を求めておく。
【００５３】
姿勢情報生成部５１は、さらに、点Ｐ″ bからη″軸に沿ってξ″ζ″面に下ろした線分の足をＨＰ″cとし、そのξ″座標の値をＨＰ″b_ξ″、ζ″座標の値をＨＰ″b_ζ″とする。姿勢情報生成部５１は、Ｃ軸周りの回転角θCを、θC＝arctan[ＨＰ″b_ζ″／ＨＰ″b_ξ″]として求める（図６（ｄ））。
【００５４】
姿勢情報生成部５１は、こうして求められた回転角（θA，θB，θC）を、対象部位Ｐ0と、演算に用いた基準部位Ｐa、末端部位Ｐbとを特定する部位特定情報に関連付けて、姿勢情報として出力する。この回転角の情報は、対象部位Ｐ0におけるローカル座標系（ξηζ座標系）のξ軸と、それに隣接する末端部位Ｐb（を対象部位としたとき）におけるローカル座標系のξ軸との間の回転角度を表しており、対象部位Ｐ0のローカル座標系から、隣接する末端部位Ｐbのローカル座標系への変換のパラメータとして用いることのできるものである。
【００５５】
［教示情報の補間］
ここまでの説明では、比較を行う時点Ｔi（ｉ＝１，２，…）ごとの教示者の姿勢を表す情報が教示情報に含まれているものとしていたが、本実施の形態はこのような場合に限られない。
【００５６】
本実施の形態のある例では、ｉが奇数である時点Ｔiごとの教示者の姿勢を表す情報が教示情報に含まれていることとしてもよい。この場合は、ｉが偶数である時点Ｔiの教示者の姿勢を表す情報は、制御部２１が内挿補間によって求める。具体的に、時点τm（ｍ＝１，２…、τm-1＜τm）ごとの教示者の姿勢の情報として各部位の座標情報が教示情報に含まれているものとする。ここでτmは、Ｔiのいずれかに等しい。例えばｉが奇数である時点Ｔiごとの教示者の姿勢を表す情報（例えば部位ｑの座標情報ｖq_2m-1）が教示情報に含まれているとすると、τm＝Ｔ2m-1となる。
【００５７】
そして時点Ｔ2mの座標情報ｖq_2mと、ｖq_2m-1との間の移動量を、Δｖq_2m-1＝ｖq_2m+1-ｖq_2m-1として、ｗΔｖq_2m-1（０＜ｗ＜１）などとして演算する。このパラメータｗは常に１／２（つまり線形補間）としてもよい。この場合、時点Ｔ2mの座標情報ｖq_2mは、ｖq_2m-1＋ｗΔｖq_2m-1として定める。
【００５８】
また、τmとτm+1の間にある時点Ｔi（τm＜Ｔi＜τm+1）における教示者の姿勢を表す情報（例えば座標情報ｖq_i）を、τmとτm+1とのそれぞれにおける教示者の姿勢を表す座標情報ｖq_2m-1と、ｖq_2m+1とを通る時刻に関する３次多項式の係数を求め、ついで当該係数を備えた３次多項式に対して時刻Ｔi（τm＜Ｔi＜τm+1）を代入して、当該時刻における教示者の姿勢を表す座標情報を得る、いわゆる３次スプライン補間法を用いて定めてもよい。さらに、回転角の情報を用いる場合も、同様に補間を行うこととしてもよい。
【００５９】
［体格補正］
また、本実施の形態の比較部４５では、教示者と利用者との体格差を考慮して、次のような構成を備えてもよい。すなわち本実施の形態の一例に係る比較部４５は、図７に例示するようなものであってもよい。図７に例示する比較部４５は、体格差パラメータ設定部５０と、姿勢情報生成部５１と、教示者姿勢情報生成部５５と、姿勢情報比較部５２′とを含んで構成される。
【００６０】
体格差パラメータ設定部５０は、利用者動作取得部４２が取得する利用者の体の各部位の位置から、少なくとも一対の部位間の距離ＲUを演算する。この部位間の距離は、具体的にキネクトを用いる場合、右腰関節の位置から右膝関節の位置までの距離、あるいは左腰関節の位置から左膝関節の位置までの距離などとしておく。
【００６１】
体格差パラメータ設定部５０は、また、教示情報取得部４１が取得した教示情報に含まれる、教示者の初期の姿勢の情報から、上記利用者の一対の部位に対応する部位間の距離ＲIを演算する。そして例えばこれらの距離の比ＲU／ＲIを、体格差パラメータΠとする。
【００６２】
この例では、姿勢情報生成部５１は、予め定めたタイミングごと（時刻Ｔiごと）に、当該時刻Ｔi（ｉ＝１，２，…）における情報として、各時刻での利用者の各部位の位置を取得する。そして姿勢情報生成部５１は、それぞれ対応する部位Ｊk（ｋ＝１，２，…）の直前の時刻Ｔi-1での位置との差Δｘjk_Ti，Δｙjk_Ti，Δｚjk_Ti（ｋ＝１，２，…）を演算する。
【００６３】
また教示者姿勢情報生成部５５は、取得している教示情報に基づいて、予め定めたタイミングごと（時刻Ｔiごと）の教示者の各部位Ｊk（ｋ＝1，2…）の位置を表す座標情報ＩｖJk_iを取得する。ここで教示情報が時刻Ｔiごととなっていない場合は、時刻Ｔiごとの教示者の各部位Ｊkの座標情報を既に述べた教示情報の補間により求めてもよい。
【００６４】
またこの教示者姿勢情報生成部５５は、教示情報に教示者の姿勢情報として、予め定められた対象部位、基準部位、末端部位の組ごとの回転角を演算することで、時刻Ｔiでの当該部位の回転角の情報を得ておき、対象部位、基準部位、末端部位の組を特定する情報（各部位の部位特定情報の組）に関連付けて記憶しておく。この部位の回転角の演算方法は既に述べた利用者の姿勢に対する方法と同じ方法を採用できるので、ここでの繰り返しての説明を省略する。
【００６５】
姿勢情報比較部５２′は、当該姿勢情報生成部５１により得た、予め定めたタイミング（時刻Ｔi）ごとの利用者の姿勢を表す情報と、教示者姿勢情報生成部５５により得た、対応するタイミングでの教示者の姿勢の情報とを比較する。ここで姿勢情報比較部５２′は、各時刻Ｔiにおける教示者の姿勢の情報を、体格差パラメータΠを用いて補正してから比較する。
【００６６】
すなわち姿勢情報比較部５２′は、先に生成した時刻Ｔiにおける教示者の姿勢を表す情報のうちから、いずれかの部位（例えば腰関節中心）を起点として、当該起点とした部位を注目部位として、次の処理を行う。
【００６７】
まず姿勢情報比較部５２′は、注目部位を対象部位とした回転角の情報が演算されて記憶されているか否かを調べる。ここで回転角の情報が演算されていなければ、姿勢情報比較部５２′は、当該注目部位を端点に含む各ボーンについて、注目部位と隣接部位（ボーンで連結された部位）間の距離に体格差パラメータΠを乗じて各ボーンの補正後の長さを求め、注目部位の位置から各ボーンの方向へ補正後の長さだけ移動した位置の座標情報を、補正後の対応する隣接部位の位置として、当該隣接部位を特定する部位特定情報に関連付けて記憶する。
【００６８】
また、注目部位を対象部位とした回転角の情報が演算されて記憶されている場合は、姿勢情報比較部５２′は、当該注目部位を対象部位とした回転角の値（教示情報に基づいて演算により得られる）を用い、対象部位に隣接する末端部位（注目部位が首部であれば、例えば頭部と、左右の肩中心）の位置（複数あればそれぞれ）の座標情報を、対象部位のローカル座標系での座標情報として演算する。具体的に姿勢情報比較部５２′は、末端部位の方向（Ｃ軸方向）が対象部位のローカル座標系により表現できるので、この方向に、末端部位までの本来の距離に体格差パラメータΠを乗じて得た距離だけ移動した点の座標情報を、補正後の末端部位の座標情報とする。ここで演算される末端部位の座標情報は、対象部位のローカル座標系における値として求められるが、この対象部位のローカル座標系は、起点とした部位から順次座標変換を行っているので、ワールド座標系に対する回転角が演算でき、従って姿勢情報比較部５２′は、補正後の末端部位の座標情報をワールド座標系での座標情報に変換することができる。
【００６９】
姿勢情報比較部５２′は、この演算により得られた末端部位を、次の注目部位として、当該注目部位を対象部位とした回転角の値を用い、対象部位に隣接する末端部位の位置（複数あればそれぞれ）の座標情報を、対象部位のローカル座標系での座標情報として演算する処理を繰り返して行う。姿勢情報比較部５２′は、このように起点となる部位の位置情報やローカル座標系から順次、隣接する部位の位置座標やローカル座標系の回転角を決定していく。すなわちキネマティクスを考慮して、各時刻Ｔi（ｉ＝１，２，…）における、体格差補正後の各部位の位置座標を演算する。
【００７０】
そして姿勢情報比較部５２′は、利用者の姿勢を表す情報のうちから、部位ごとの座標情報を読み出し、当該読み出した座標情報と、先に得た体格差補正後の教示者の各部位の座標情報とを比較する。
【００７１】
そして姿勢情報比較部５２′は、当該比較の結果を表す比較結果情報を記録部４６に出力する。具体的に姿勢情報比較部５２は、上述のように演算した、時刻Ｔiでいずれかの部位における教示情報との差が予め定められたしきい値を超える場合に、当該時刻Ｔiと、当該部位とを表す情報とに対して、動作が不完全であったことを表す情報を関連付けて、比較結果情報として記録部４６に出力する。
【００７２】
また姿勢情報比較部５２′は、当該部位を表す情報と、動作が不完全であったことを表す情報を利用者画像表示部４４に出力してもよい。この場合利用者画像表示部４４は、当該部位に対応する部分に動作が不完全であることを表す表示を行ってもよい。この表示は、例えば当該部位に対応する座標近傍に、赤色の円を描画するなどの方法で行うこととしてもよい。
【００７３】
本実施の形態のこの例においては、教示情報提示部４３の再生処理においても、三次元モデルの人体の姿勢を体格差パラメータを用いて補正して、再生を行ってもよい。すなわちこの場合、教示情報提示部４３は、姿勢情報比較部５２′と同じ処理により、キネマティクスを考慮して、各時刻Ｔi（ｉ＝１，２，…）における、体格差補正後の、教示者の各部位の位置座標を演算する。そして教示情報提示部４３は、変数ｊを「１」に初期化し、時刻Ｔjにおける仮想の三次元空間内に人体を模した三次元モデルを生成する。
【００７４】
教示情報提示部４３は、この三次元モデルの各関節の位置を、体格差補正後の時刻Ｔjにおける教示者の各部位の位置座標に設定して、三次元モデルの人体の姿勢を時刻Ｔjにおける教示者の姿勢に一致させつつ、その体格を利用者のものに合わせる。そして教示情報提示部４３は、当該三次元モデルの画像を表示部２４に出力してモニタ等に表示させる。
【００７５】
また教示情報提示部４３は、所定のタイミングごとにｊを「１」ずつインクリメントしながら、三次元モデルの姿勢を更新してはその画像を表示部２４に出力してモニタ等に表示させていく。ここでｊをインクリメントするタイミングは、時刻Ｔjにて表示を更新した後、時刻Ｔj+1−Ｔjの実時間に相当する時間だけあとのタイミングとしてもよいし、実時間に対して利用者が設定したパラメータを乗じた時間だけ後のタイミングとしてもよい。後者のようにすると、やや早めに教示情報を再生したり、あるいは教示情報の再生速度をやや遅めにしたりすることができる。この例においても教示情報提示部４３は、時刻Ｔjに対応する教示情報がなくなると（最後まで再生されると）、再生が終了した旨の情報を利用者動作取得部４２に対して出力する。
【００７６】
なお、教示情報の補間を行う場合は、補間により、比較を行う各時点での教示者の姿勢の情報を得てから、この体格差の補正を行ってもよいし、教示情報に含まれる、各時点での教示者の姿勢の情報に対して体格差の補正を行ってから、体格差補正後の教示者の情報を用いて、比較を行う各時点での教示者の姿勢の情報を補間により得ても構わない。
【００７７】
［足先の向き］
また本実施の形態の利用目的によっては、教示者と利用者とのそれぞれの足首から足先を結ぶ線上にある点の位置を用いたい要望がある。しかしながらキネクトのあるバージョンなど、画像から関節の位置を取得する技術においては、利用者の両足首（ANKLE）の位置は検出されるが、足首から足先への方向は検出されない場合がある。
【００７８】
そこでこうした場合にも利用者の足首から足先を結ぶ線上にある点を検出するべく、制御部２１は次の処理を実行してもよい。この例において制御部２１は、利用者の足首の位置から鉛直下方（Ｙ軸方向）に予め定めた距離だけ移動した点を通り、ＸＺ面に平行な面を床面の向きと推定する。具体的に制御部２１は、床面の向きを推定する手段として動作し、撮像装置１０から得た画像から利用者の足首の関節の位置を検出する。この制御部２１は、複数Ｕ回に亘って得られている、利用者の足首の位置から鉛直下方（Ｙ軸方向）に予め定めた距離だけ移動した点のＹ座標値を元データとし、この元データのうちｕ個（Ｕ＞ｕ）のデータを任意に取り出してサンプル候補とし、その平均値と、サンプル候補としたデータとの誤差の累計（平均との差の二乗和などでよい）を演算する処理を、取り出すｕ個のデータを互いに異ならせた複数のサンプル候補について行う。
【００７９】
そして制御部２１は、複数のサンプル候補のうち、上記誤差の累計が最も小さいサンプル候補の平均値（Ｙ座標値の平均値）を、床面のＹ座標値とする。つまり、当該Ｙ座標値を通って、ＸＺ面に平行な面を床面の位置と推定する。
【００８０】
また制御部２１は、例えば図８に例示したように、左足先の方向については左股関節Ｈと左足首Ａとを結ぶ線Ｌを仮想的に設定し、この線Ｌを回転軸とする左膝関節Ｋの回転角θ（ＸＺ面内でＸ軸からの角度として表せばよい）を求める。そして左足首Ａからみてこの回転角θと同じ方向が左足先Ｆの方向であると推定する。制御部２１は、右足先の方向についても同様に、右股関節と右足首とを結ぶ線を仮想的に設定し、この線を回転軸とする右膝関節の回転角（ＸＺ面内でＸ軸からの角度として表せばよい）を求める。そして右足首からみてこの回転角と同じ方向が右足先の方向であると推定する。そして左足首Ａからみて、この推定された足先の方向に、所定の距離Ｌfootだけ離れた点を求め、この点を左足先の点と推定する。なお、この距離Ｌfootは、平均的な足首から足先までの長さとしてもよいし、利用者ごとに定めておいてもよい。制御部２１は、右足についても同様の処理を行い、左右の足先の点の位置を推定する。
【００８１】
この場合制御部２１は、教示情報にも、同様の方法で推定した部位（足首から足先の方向への線上にある部位）の位置の座標情報を含めておく。そして制御部２１は、当該推定により得られた利用者の体の部位の位置の座標情報についても、教示情報に含まれる、対応する部位の位置の座標情報（同様に推定された座標情報）と比較する。
【００８２】
この例では、制御部２１は時刻Ｔiにおける、上記推定した利用者の足先の位置の座標情報と、教示情報に含まれる、時刻Ｔiにおける教示者の足先の位置の座標情報とを比較して、その差が予め定めたしきい値を超える場合に、その旨の情報を出力し、記録する。
【００８３】
［教示情報の生成］
また、本実施の形態の一例では、教示情報の元となる教示者の姿勢もまた、利用者の姿勢を取得する方法と同じ方法によって取得することとしてもよい。
【００８４】
すなわち本実施の形態の一例では、制御部２１が、教示情報の生成指示を受け入れて教示情報の生成処理を開始する。この処理では、制御部２１は、予め定めた時間（リーディングタイム）だけ待機してから、撮像装置１０から入力される画像の情報を受け入れる。教示者はこのリーディングタイムの間に、撮像装置１０から撮像される位置に立って初期の姿勢をとる。
【００８５】
そして制御部２１はリーディングタイムの経過後、例えばその直後に、撮像装置１０から受け入れた画像から、教示者の体の各部位の位置（三次元座標上の位置）の情報を取得し、それぞれの各部位を特定する情報に関連付けて、対応する部位の位置の情報を初期の姿勢の情報として記録する。
【００８６】
その後制御部２１は、予め定められたタイミングごと（例えば時刻Ｔi（ｉ＝１，２…）ごと）に繰返して教示者の体の各部位の位置の座標情報を取得し、それぞれの各部位を特定する情報に関連付けて、対応する部位に関して取得した座標情報を、部位毎情報（ｅ）として記録する。以下、制御部２１は、教示者から教示情報の記録終了の指示を受けるまで、この繰り返しの処理を行う。
【００８７】
制御部２１は、記録した初期位置の情報と、部位毎情報（ｅ）をそれぞれに含む情報要素（Ｅ）とを含む教示情報を生成し、教示者に対して運動を識別する情報の入力を求める。教示者が、操作部２３を操作するなどして、運動を識別する情報（例えば運動の名称）を入力すると、制御部２１は、当該運動を識別する情報と、生成した教示情報とを関連付けて、記憶部２２に格納する。またこの教示情報は、サーバ装置３０に転送されてデータベースに蓄積されてもよい。
【００８８】
さらに、先に説明した例では、教示情報には教示者の各部位の座標情報（ワールド座標系における座標情報）を含めておき、必要であれば利用者の姿勢情報と教示者の姿勢の情報とを比較する際に各部位におけるローカル座標情報間の回転角の情報を演算することとしていたが、本実施の形態のある例では、ここでの教示情報の生成の処理において、先に述べた各部位におけるローカル座標情報間の回転角の情報を演算しておき、教示情報に含めておいても構わない。
【００８９】
この場合は、利用者の姿勢情報と教示者の姿勢の情報とを比較する際に必要があれば、教示情報に含められた、教示者の各部位におけるローカル座標情報間の回転角の情報を参照して、利用者の姿勢情報との比較（や、体格の補正処理等）を行うことになる。
【００９０】
［動作例］
本実施の形態の動作情報処理装置１は、以上の構成を備え、次のように動作する。動作情報処理装置１の利用者は、操作部２３を操作して、データベースに格納されている教示情報をブラウズする。利用者は、運動ごとの教示情報のうち、どの運動を行うかの指定を行う。
【００９１】
すると動作情報処理装置１が、利用者の指定された運動の種類に対応してデータベースに記録されている教示情報を読み出して取得し、図９に例示する処理を開始する。動作情報処理装置１は、撮像装置１０を起動して、その起動時に利用者の体の各部位を認識して初期化処理を開始する（Ｓ１）。
【００９２】
この初期化処理では、動作情報処理装置１は、図１０に例示するように、先に取得した教示情報のうちから、教示者の初期の姿勢の情報を読み出す。そして動作情報処理装置１は、撮像装置１０が撮像した画像を用い、利用者の各部位の位置の座標情報を繰り返し取得しながら、取得した利用者の各部位の位置の座標情報と、教示者の初期の姿勢で、それぞれ対応する部位に係る座標情報との差を演算し、それぞれの差がいずれも予め定めたしきい値より小さくなる（教示者の初期の姿勢に利用者の姿勢が一致する）まで待機する（Ｓ２１）。
【００９３】
利用者の各部位の位置の座標情報が、当該読み出した教示者の初期の姿勢に一致するようになると、取得する利用者の体の各部位の位置の座標情報から、少なくとも一対の部位間の距離ＲUを演算する（Ｓ２２）。この部位間の距離は、例えば右腰関節の位置から右膝関節の位置までの距離でよい。また複数対の部位間の距離を用いる場合は、各距離の平均（算術平均等でよい）を、この部位間の距離ＲUとする。
【００９４】
動作情報処理装置１はまた、先に取得した教示情報に含まれる、教示者の初期の姿勢の情報から、上記利用者の一対の部位に対応する部位間（ここでは右腰関節の位置から右膝関節の位置まで）の距離ＲIを演算する。ここでも複数対ある場合は、教示情報において対応する複数対の部位間の距離の平均を演算（ＲUを求めた際の演算と同じ演算）して、距離ＲIとする。動作情報処理装置１は、これらの距離の比ＲU／ＲIを、体格差パラメータΠとする（Ｓ２３）。
【００９５】
動作情報処理装置１は教示情報に含まれる、各時刻での各部位の角度を演算し、さらに体格差パラメータΠを利用し、キネマティクスを考慮して、教示情報から、各時刻Ｔi（ｉ＝１，２，…）における、体格差補正後の教示者の各部位の位置座標を演算する（Ｓ２４）。
【００９６】
そして動作情報処理装置１は初期化処理を終了して、図９の処理Ｓ２に移行する。動作情報処理装置１は、処理Ｓ２において教示情報の再生処理を開始する。具体的に動作情報処理装置１は、再生時刻を表す変数ｊを「１」に初期化する（Ｓ２）。
【００９７】
そして動作情報処理装置１は、時刻Ｔjにおける教示者の（体格差補正後の）各部位の位置の座標情報を生成する（Ｓ３）。具体的にここでは、教示情報には各時刻Ｔjでの教示者の姿勢を表す情報は教示情報には含まれず、時点τm（ｍ＝１，２…、τm-1＜τm）ごとの教示者の姿勢の情報が教示情報に含まれているものとする。ここでτmは、Ｔiのいずれかに等しい。ここでは例えばｉが奇数である時点Ｔiごとの教示者の姿勢を表す情報（例えば座標情報ｖ2m-1）が教示情報に含まれているとする。つまり、τm＝Ｔ2m-1となる。
【００９８】
動作情報処理装置１は、ｉが偶数である時点Ｔiの教示者の姿勢を表す情報を生成するため、時点Ｔ2mの、ある部位の位置の座標情報ｖ2mを、その前後の時点であって、教示者の姿勢を表す情報が得られている時点τm，τm+1のそれぞれにおける教示者の姿勢を表す情報ｖ2m-1と、ｖ2m+1とを通る３次多項式の係数を求める、いわゆる３次スプライン補完法を用いて定めてもよい。ついで動作情報処理装置１は、当該係数を備えた３次多項式に対して時刻Ｔi（τm＜Ｔi＜τm+1）を代入して、当該時刻における教示者の姿勢を表す座標情報を得る。このような内挿処理を、教示情報に含まれない時点Ｔiごとに行って動作情報処理装置１は、比較を行うすべての時点Ｔiでの教示者の各部部位Ｊk（ｋ＝1，2…）の位置を表す座標情報ＩｖJk_i（体格差補正後のもの）を取得する。
【００９９】
動作情報処理装置１は、ここで生成した教示者の各部位の位置の座標情報（体格差補正後のもの）を用いて、時刻Ｔjにおける仮想の三次元空間内に人体を模した三次元モデルを生成して表示出力する（Ｓ４）。具体的に動作情報処理装置１は、人体を模した三次元モデルの対応する各部位の位置を、処理Ｓ３で取得した、時刻Ｔjの教示者の各部位の位置に設定して、三次元モデルの人体の姿勢を時刻Ｔjにおける教示者の姿勢に一致させ、当該三次元モデルの画像を表示部２４に出力してモニタ等に表示させる。利用者は、このモニタの表示を参照して、教示情報に合わせた姿勢となるよう、体を動かす。
【０１００】
また動作情報処理装置１は、撮像装置１０から入力される画像を用いて、利用者の各部位（ここでは各関節）の位置の情報を取得する（Ｓ５）。また動作情報処理装置１は、撮像装置１０から入力された画像の情報を表示部２４に出力してモニタ等に表示させる。このとき動作情報処理装置１は、処理Ｓ５にて取得した、利用者の各部位の位置を表す図形の表示を、利用者の画像に重ね合わせて行う（Ｓ６）。これにより図４に例示したような画像がモニタ等に表示されることとなる。
【０１０１】
動作情報処理装置１は、先に生成した教示情報（または取得した教示情報）に含まれる、時刻Ｔjにおける教示者の各部位の座標（体格差補正後のもの）と、処理Ｓ５で得た、時刻Ｔjでの利用者の各部位の座標とを比較し（Ｓ７）、その結果を表す比較結果情報を記憶部２２に記録する。
【０１０２】
具体的に動作情報処理装置１は、時刻Ｔjでの利用者の各部位Ｊk（ｋ＝1，2…）の座標値ｖJk_jと、教示者の対応する部位Ｊk（ｋ＝1，2…）の座標値ＩｖJk_jとの差（座標値の各成分の差の二乗和）を演算する。そして動作情報処理装置１は、時刻Ｔiでのいずれかの関節Ｊk（ｋ＝1，2…）におけるこの差が予め定められたしきい値を超える場合に、当該時刻Ｔjと、当該部位Ｊkとを表す情報とに対して、動作が不完全であったことを表す情報を関連付けて、比較結果情報として記憶部２２に記録する。
【０１０３】
動作情報処理装置１は、教示情報として時刻Ｔj+1における情報があるか否かを調べ（Ｓ８）、時刻Ｔj+1における教示情報がなければ（Noならば）、処理を終了する。また処理Ｓ８において時刻Ｔj+1におけるあれば（Yesならば）、動作情報処理装置１は、所定の時間だけ待機してからｊを「１」だけインクリメントする（Ｓ９）。ここで待機の時間は、時刻Ｔj+1−Ｔjの時間から、処理Ｓ３から処理Ｓ８までの処理を行うのにかかった時間を差引いた時間とする。この時間が０以下であれば、動作情報処理装置１は、直ちにｊを「１」だけインクリメントすることとしてもよい。動作情報処理装置１はそして処理Ｓ３に戻って処理を続ける。
【０１０４】
［変形例］
なお、ここでは体の部位の位置として、関節の位置を用いているが、本実施の形態はこれに限られない。例えばここまでの説明では教示情報は、各部位を特定する情報と、当該部位の座標情報、あるいはその差分（直前の時刻での対応する部位の位置との差）とを関連付けたものとした。しかしながら、予め決められた部位の順で、各部位の座標情報や差分の情報を配列しておくこととすれば、制御部２１は各部位の位置の情報や差分の情報を抽出できるので、この場合は各部位を特定する情報との関連付けは必ずしも必要でない。
【０１０５】
本発明によると、教示情報と異なる動きとなった利用者の運動（異なる動きとなった時点と、関節等の部位を特定する情報と）が記録され、利用可能となるので、利用者が正しく運動を行っているか否かの把握を容易にでき、運動指導等の用途にも用いることが可能となる。
【０１０６】
さらに、利用者の運動に係る情報（各時点での関節位置の情報や、教示情報と異なる動きとなった時点や部位を特定する情報等）を病院等に送信して利用する場合であっても、利用者の姿を撮影した画像（実際には動作情報処理装置１を配置した利用者宅の室内の画像等）まで病院等に送られることがなく、利用者のプライバシーにも配慮しつつ、運動指導等の用途に役立てることが可能となる。
【０１０７】
また、図４に例示した教示情報に基づく人体を模した仮想的な三次元モデルや、利用者の姿勢を表す、人体を模した仮想的な三次元モデルの表示は、仮想的なカメラの位置を定め、当該仮想的なカメラから見たときの三次元モデルのレンダリング像を表示するものであるが、例えば、いつもその三次元モデルの前面から見た像となるように、仮想的なカメラの位置を設定してもよい。
【０１０８】
具体的には、座標情報を取得可能な人体の各部のうち、正立している状態（撮像装置１０に対して対向し、まっすぐに立っている状態）で横断面内にあり、人体の正中線に対し対称な位置にある二点を用いる。この二点は例えば左右の股関節の位置を表す点（ＬHIP，ＲHIP）でよい。そして動作情報処理装置１は、これら二点の中点Ｃを演算し、また、これら二点を結ぶ線分を法線とし、演算した中点Ｃを含む面をＡ面（矢状面と推定される面）とする。さらにＡ面に垂直に交わり、上記二点を結ぶ線分を含む面をＢ面（前額面と推定される面）とする。
【０１０９】
ここで、利用者など撮像装置１０で撮像される人物が正立しているときには、Ａ面はワールド座標系のＹＺ面に平行となり、Ｂ面はＸＹ面に平行となる。動作情報処理装置１は、仮想的なカメラの位置として、Ａ面内にあり（Ｘ座標をＡ面内にある中点ＣのＸ座標に一致させ）、Ｙ軸方向の位置を予め定めた高さｈに設定し、Ｚ軸方向の位置を、中点Ｃから予め定めた距離Ｌだけ撮像装置１０の方向に移動した点に設定する。またこの仮想的なカメラの視線方向を、人体の方向に設定する。ここで高さｈや距離Ｌの少なくとも一方は、人物の各部の座標情報に基づいて定めてもよい。例えば、首の高さ（首のワールド座標でのＹ座標の値）を高さｈとしてもよい。
【０１１０】
これにより、仮想的なカメラを人物に対してまっすぐに向き合う位置に設定でき、仮想的な三次元モデルや、利用者の姿勢を表す、人体を模した仮想的な三次元モデルを、正面から見た状態で表示できる。
【０１１１】
また、図４に例示したところでは教示情報に基づく仮想的な三次元モデルの画像（Ｉ）と、利用者の映像（Ｕ）とを並べて表示することとしていたが、本実施の形態はこれに限られず、教示情報に基づく仮想的な三次元モデルの画像（Ｉ）と、利用者の映像（Ｕ）とを重ね合わせて表示してもよい。
【０１１２】
この場合は、動作情報処理装置１は、例えば利用者の各部の座標情報、及び教示情報に含まれる各部の座標情報のうち、左右の股関節の位置を表す点（ＬHIP，ＲHIP）の座標情報と、左右の足首の位置を表す点（ＬANK，ＲANK）とをそれぞれ読み出し、それぞれの中点ＣHIP及びＣANKを演算する（以下では利用者についてのこれらの中点をＣHIP，ＣANKと書き、教示情報から求められるこれら中点を、Ｃ′HIP，Ｃ′ANKと書く）。
【０１１３】
動作情報処理装置１は、また、利用者の各部の座標情報から、利用者が立っている床面のＹ座標値（Ｈfloorとする）を既に説明した方法（足先の方向の推定処理で用いた方法）により推定して求める。また教示情報に基づいて教示者が立っていた床面のＹ座標値（Ｈ′floorとする）を、同様の方法で求める。
【０１１４】
動作情報処理装置１は、そして、Ｃ′ANKとＣANKとのＸ軸方向の座標の差Ｃ′ANK_x−ＣANK_xをＰoffsetxとして演算し、床面のＹ座標値Ｈ′floorとＨfloorとの差Ｈ′floor−ＨfloorをＰoffsetyとして演算し、Ｃ′HIPとＣHIPとのＺ軸方向の座標の差Ｃ′HIP_z−ＣHIP_zをＰoffsetzとして演算する。
【０１１５】
動作情報処理装置１は、これらＸＹＺ各軸方向のオフセット値を用いて、教示情報の各部の座標情報を各軸方向に平行移動するなどして、教示情報により表される仮想的な三次元モデルと、利用者についての仮想的な三次元モデルとを相対的に平行移動し、互いに重ね合わせて表示する。
【０１１６】
また動作情報処理装置１は、さらに、第２の仮想的なカメラとして、Ｂ面内にあり（Ｚ座標をＢ面内にある中点ＣのＺ座標に一致させ）、Ｙ軸方向の位置を予め定めた高さｈside（上記の高さｈと同じでも構わないし、異なっていてもよい）に設定し、Ｘ軸方向の位置を、中点Ｃから予め定めた距離ＬsideだけＸ軸方向のいずれかの方向に移動した点に設定する。またこの第２の仮想的なカメラの視線方向を、人体の方向に設定する。ここで高さｈsideや距離Ｌsideの少なくとも一方は、人物の各部の座標情報に基づいて定めてもよい。例えば、首の高さ（首のワールド座標でのＹ座標の値）を高さｈsideとしてもよい。
【０１１７】
そして動作情報処理装置１は、教示情報に基づく人体を模した仮想的な三次元モデルや、利用者の姿勢を表す人体を模した仮想的な三次元モデルを、この第２の仮想的なカメラの位置から見たときの像としてレンダリングし、当該レンダリングで得られたレンダリング像を、さらに表示してもよい。このレンダリング像は、教示情報または利用者の各部の情報に基づく三次元モデルを横から見た像となる。
【０１１８】
この場合も、この教示情報により表される仮想的な三次元モデルと、利用者についての仮想的な三次元モデルとを相対的に平行移動し、互いに重ね合わせて表示するようにしてもよい。
【０１１９】
これらの処理によれば、図１１に例示するように、教示情報に基づく仮想的な人体の三次元モデルの画像（Ｉ）と、利用者の映像（Ｕ）とが並べて表示されるとともに、利用者の各部の情報から得られた三次元モデルと教示情報に基づく仮想的な三次元モデルとの正面からのレンダリング結果（Ｔ）と、側面からのレンダリング結果（Ｓ）とがさらに併せて表示されることとなる。また、これら正面からのレンダリング結果（Ｔ）と、側面からのレンダリング結果（Ｓ）では、利用者の各部の情報から得られた三次元モデルと教示情報に基づく仮想的な三次元モデルとが重ね合わせて表示されていてもよい。
【符号の説明】
【０１２０】
１  動作情報処理装置、１０  撮像装置、２０  本体部、２１  制御部、２２  記憶部、２３  操作部、２４  表示部、２５  通信部、３０  サーバ装置、４１  教示情報取得部、４２  利用者動作取得部、４３  教示情報提示部、４４  利用者画像提示部、４５  比較部、４６  記憶部、５０  体格差パラメータ設定部、５１  姿勢情報生成部、５２，５２′  姿勢情報比較部。
【図１】
2015186531.tif 000003
【図２】
2015186531.tif 000004
【図３】
2015186531.tif 000005
【図４】
2015186531.tif 000006
【図５】
2015186531.tif 000007
【図６】
2015186531.tif 000008
【図７】
2015186531.tif 000009
【図８】
2015186531.tif 000010
【図９】
2015186531.tif 000011
【図１０】
2015186531.tif 000012
【図１１】
2015186531.tif 000013