JP2015186531A - 動作情報処理装置、及びプログラム - Google Patents
動作情報処理装置、及びプログラム Download PDFInfo
- Publication number
- JP2015186531A JP2015186531A JP2014064882A JP2014064882A JP2015186531A JP 2015186531 A JP2015186531 A JP 2015186531A JP 2014064882 A JP2014064882 A JP 2014064882A JP 2014064882 A JP2014064882 A JP 2014064882A JP 2015186531 A JP2015186531 A JP 2015186531A
- Authority
- JP
- Japan
- Prior art keywords
- information
- user
- posture
- teaching
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
【課題】利用者が正しく運動を行っているか否かの把握を容易にでき、その応用範囲を拡大できる動作情報処理装置を提供する。
【解決手段】運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続された動作情報処理装置であって、教示情報を取得し、運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得し、当該部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成して教示情報に含まれる、姿勢の情報と比較し、当該比較の結果を記録する。
【選択図】図1
【解決手段】運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続された動作情報処理装置であって、教示情報を取得し、運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得し、当該部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成して教示情報に含まれる、姿勢の情報と比較し、当該比較の結果を記録する。
【選択図】図1
Description
本発明は、利用者の動作に関する情報を処理する動作情報処理装置、及びプログラムに関する。
自宅で行い得る運動を教示し、その動きに即した運動を利用者が行っているかを判別するシステムがある。例えば、特許文献1には、間隔を置いた2以上の荷重センサを有しプレイヤの足が乗せられる支持台を備える荷重検出装置のコンピュータにおいて実行される荷重検出プログラムであって、荷重センサによって測定される支持台にかかる荷重値を検出し、検出された荷重値のプレイヤの体重値に対する割合を算出するとともに、検出された荷重値の重心位置を算出し、これら割合と重心位置とに基づいて、支持台に対してプレイヤが行った動作を判別するプログラムが開示されている。
しかしながら、上記従来の技術では、利用者の体重と重心とを用いることができるだけであるので、上半身の動作や、下半身であっても詳細な動きの相違を捉えることができず、正しく運動が行われているか否かの判断が困難で、遊技用としては成立しても、運動指導の用途には耐えられない。
本発明は上記実情に鑑みて為されたもので、利用者が正しく運動を行っているか否かの把握を容易にでき、その応用範囲を拡大できる動作情報処理装置を提供することを、目的の一つとする。
上記従来例の問題点を解決するための本発明は、運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続された動作情報処理装置であって、前記データベースから、前記教示情報を取得する教示情報取得手段と、運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得する利用者動作取得手段と、前記利用者動作取得手段が取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成し、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報と比較する比較手段と、前記比較の結果を記録する記録手段と、を含むこととしたものである。
本発明によると、利用者が正しく運動を行っているか否かの把握を容易にでき、その応用範囲を拡大できる。
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る動作情報処理装置1は、図1に例示するように、撮像装置10と、本体部20とを含み、本体部20は制御部21と、記憶部22と、操作部23と、表示部24と、通信部25とを含んで構成される。
撮像装置10は、例えばカメラと赤外線投射部とを備えた装置である。この撮像装置10は、例えばカメラの視線方向の画像を撮像するとともに、赤外線投射部が被写体に向けて投射した赤外線の輝度を表す情報を取得する。またこの撮像装置10はステレオカメラであってもよい。この場合、撮像装置10は、各カメラの視線方向の画像を撮像して出力する。
本体部20の制御部21は、CPU等のプログラム制御デバイスであり、記憶部22に格納されたプログラムに従って動作する。本実施の形態の制御部21は、撮像装置10が出力する情報に基づいて、その被写体となった利用者の体の各部位について、その深さ(撮像装置10からの距離)を含めた三次元座標値と、利用者を撮影した像とを得て出力する。この三次元座標値は、具体的には、撮像装置10のカメラの視線方向を法線方向とする面をXY面とし、当該法線方向をZ軸とする三次元座標系である。ここで鉛直下方をY軸正の向きとし、右手系で人差指方向をY軸正の向き、中指方向をZ軸正の向きとしたとき、親指の向きをX軸正の向きとする。以下、このXYZの直交座標系をワールド座標系と呼ぶ。
またこの制御部21は、運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセスし、当該データベースから、教示情報を取得する。また制御部21は、運動に伴う利用者の体の各部位の位置等に関する部位情報を、予め定めたタイミングごとに逐次的に取得し、当該取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す姿勢情報を生成し、教示情報に含まれる教示者の姿勢の情報と比較して、当該比較の結果を記録する処理を行う。この制御部21の詳しい動作の内容については、後に述べる。
記憶部22は、メモリデバイス等であり、制御部21によって実行されるプログラムを保持する。本実施の形態の一例では、このプログラムはDVD−ROM等持続的(non-transitory)かつコンピュータ可読な記録媒体に格納されて提供され、この記憶部22に格納されたものであってもよい。またこのプログラムはネットワークを介して配信され、この記憶部12に格納されたものであってもよい。
また本実施の形態の記憶部22は、制御部21のワークメモリとしても動作する。本実施の形態のある例においては、この記憶部22に、データベースが保持されているものとする。具体的にこのデータベースは図2に例示するように、運動の種類(P)ごとに、教示者の初期の姿勢を表す情報とともに、運動に伴う時刻Ti(i=1,2,…)での教示者の姿勢を表す情報要素(E)を、時系列順に複数記録したものである。図2の例では、こうして種々の運動に伴う教示者の姿勢の時系列変化を表す教示情報が表現されている。
また、図2の例において教示者の初期の姿勢を表す情報は、教示者の体の部位を特定する部位特定情報(A)と、教示者の当該部位の位置を表す座標情報(B)とを関連付けたものである。また、運動に伴う、各時刻Ti(i=1,2,…)における教示者の姿勢を表す情報要素(E)はさらに、その時刻Tiでの教示者の体の部位を特定する部位特定情報(A)と、教示者の運動に伴う時刻Tiでの当該部位の位置を表す座標情報(B)とを関連付けた部位毎情報(e)を少なくともひとつ含む。
ここでは教示者、利用者の体の各部位の具体的な例として、人体の関節や主要部を用いる。その一例は、頭部、首部、胴部、腰部、左右の肩中心、左右の肩関節、左右の肘関節、左右の手首、左右の指先、左右の股関節、左右の膝関節、左右の足首、左右の足の甲などである。また、実際の骨格により連結される部位のペアについて、当該ペアに係る部位間を連結するボーンの情報が予め規定されているものとする。上述の部位の例においては、頭部と首部とを連結するボーン、首部と左の肩中心とを連結するボーン、左の肩中心と左の肩関節とを連結するボーン…というように、ボーンが規定されているものとする。
ここでの例では、教示者の体の部位を特定する部位特定情報(A)として、これらの各部位のいずれかを特定する情報(右手肘、左手肘、右手手首、左手手首、右肩、左肩…など、部位の名称)が用いられるものとする。そして初期位置の情報として、この部位特定情報と、それぞれの部位の位置の座標情報(一例としてXYZ直交座標系(ワールド座標系)における座標値x,y,zを用いる)とが関連付けて記録される。また、運動に伴う教示者の姿勢を表す情報として、各部位特定情報に対して、対応する部位の位置の座標情報が関連付けて記録される。この座標情報も、本実施の形態の一例においてはワールド座標系における座標値で表されていてよい。
操作部23は、例えばゲーム用のコントローラであり、十字キー等を備えている。この操作部23は、利用者の操作を受け入れて、制御部21に対して有線、または無線にて当該操作の内容を表す情報を伝達する。表示部24は、例えばモニタやテレビ受像機に映像を出力するインタフェースであり、制御部21から入力される指示に従い、画面の映像を生成して出力する。本実施の形態では、この表示部24にはモニタが接続され、表示部24が出力した映像が表示出力される。
通信部25は、ネットワークインタフェース等であり、ネットワークを介して外部のサーバ装置等との間で情報の送受を行う。本実施の形態の一例では、この通信部25は、ネットワークを介してサーバ装置30に接続される。また通信部25は、ネットワークを介して到来した、動作情報処理装置1宛の情報を受信して制御部21に出力する。またこの通信部25は、制御部21から入力される指示に従い、ネットワークを介してサーバ装置30等、外部の装置宛の情報を送出する。
次に、制御部21の動作について説明する。本実施の形態では、制御部21は機能的に、図3に例示するように、教示情報取得部41と、利用者動作取得部42と、教示情報提示部43と、利用者画像表示部44と、比較部45と、記録部46と、を含んで構成される。
教示情報取得部41は、データベースに格納されている運動の種類のうち、どの種類の運動を行うかの指定を、利用者から受け入れる。そしてこの教示情報取得部41は、指定された運動の種類に対応してデータベースに記録されている教示情報を読み出して取得し、教示情報提示部43と比較部45とに出力する。
利用者動作取得部42は、撮像装置10から入力される情報を受け入れる。そしてこの利用者動作取得部42は、当該受け入れた情報から、利用者の体の各部位の位置を表す座標情報(XYZ直交座標系(ワールド座標系)における座標値x,y,zを用いる)を、部位情報として取得する。具体的にはこの利用者動作取得部42は、米国マイクロソフト社のキネクト(登録商標)システムを利用する。この場合は利用者動作取得部42は、利用者を撮影して得た像と、被写体に投射された赤外線の輝度の情報とを用いて、利用者の体の各部位の位置を表す座標情報を得るものである。こうした処理については、キネクトのAPI(Application Program Interface)群として実装されているので、ここでの詳しい説明を省略する。なお、ステレオカメラを用いる場合も同様の処理を行うものが広く知られているので、それらを採用すればよい。
本実施の形態の以下の例では、利用者動作取得部42は、具体的にキネクトのAPIとして用意されている関数を用いるものとするが、同等の機能を備えるものであればどのようなものであってもよい。ここでの例では、利用者動作取得部42は、起動時に利用者の体の各部位を認識して、新たな利用者が認識されたときに実行されるべき処理(初期化処理)を開始する。
この利用者動作取得部42は、初期化の処理として、教示情報取得部41が取得した教示情報のうちから、初期の姿勢を表す情報(時刻T0における最初の姿勢)を読み出す。そして利用者動作取得部42は、撮像装置10から逐次的に入力される情報に基づいて利用者の各部位の位置を繰り返し取得しながら、当該取得した各部位の位置が、当該読み出した教示者の初期の姿勢に一致するまで待機する。具体的にこの利用者動作取得部42は、利用者の各部位の座標情報と、教示者の初期の姿勢で、それぞれ対応する部位に係る座標情報との差を演算し、それぞれの差がいずれも予め定めたしきい値より小さくなる(これを教示者の初期の姿勢に利用者の姿勢が一致した状態とする)まで待機する。
利用者動作取得部42は、利用者の各部位の位置が、当該読み出した教示者の初期の姿勢に一致するようになると、教示情報提示部43に対して教示情報の提示開始を指示する。その後、利用者動作取得部42は、後に説明する教示情報提示部43における提示されている教示情報の再生時刻情報の入力を受け入れる。利用者動作取得部42は、再生時刻情報が予め定められたタイミングになるごとに繰返して、スケルトン(骨格)データの取得のための関数等をコールして利用者の体の各部位の位置を表す部位情報を取得し、当該取得した部位情報を利用者画像表示部44と比較部45とに出力する。キネクトを用いる例では、このスケルトンデータのうちに、人体の複数のジョイント(関節)の座標が含まれる。さらにこの利用者動作取得部42は、教示情報提示部43から再生が終了した旨の情報の入力を受けて、処理を終了してもよい。
教示情報提示部43は、利用者動作取得部42から教示情報の提示開始の指示を受けて次の処理を開始する。すなわち、この教示情報提示部43は、教示情報取得部41が取得した教示情報を再生した画像を表示する。具体的に教示情報提示部43は、利用者動作取得部42から教示情報の提示開始の指示を受けると、予め定めた時間(例えば5秒)だけ待機した後、教示情報取得部41が取得した教示情報の再生処理を開始する。
この再生処理では、教示情報提示部43は、教示情報から初期の各部位q(qは、右手肘、左手肘、右手手首、左手手首、右肩、左肩…など各部位ごとの識別情報、ここでは例えば識別番号1,2…とする)の座標情報Ivq_0=(Ixq_T0,Iyq_T0,Izq_T0)と、各時刻Ti(i=1,2,…)における各部位の位置を表す座標情報Ivq_i=(Ixq_Ti,Iyq_Ti,Izq_Ti)とを読み出す。なお、ここでの例では座標情報はいずれもワールド座標系での値として表されているものとしている。
そして教示情報提示部43は、変数jを「1」に初期化し、時刻Tjにおける仮想の三次元空間内に人体を模した三次元モデルを生成する。教示情報提示部43は、以下、所定のタイミングごとにjを「1」ずつインクリメントしながら、三次元モデルの姿勢を更新してはその画像を表示部24に出力してモニタ等に表示させていく。ここでjをインクリメントするタイミングは、時刻Tjにて表示を更新した後、時刻Tj+1−Tjの実時間に相当する時間だけあとのタイミングとしてもよいし、実時間に対して利用者が設定したパラメータを乗じた時間だけ後のタイミングとしてもよい。後者のようにすると、やや早めに教示情報を再生したり、あるいは教示情報の再生速度をやや遅めにしたりすることができる。
教示情報提示部43は、各時点Tjでの三次元モデルの各部位の位置を、教示情報に含まれる時刻Tjにおける対応する部位特定情報に関連付けられた座標情報の位置に設定して、三次元モデルの人体の姿勢を時刻Tjにおける教示者の姿勢に一致させ、当該三次元モデルの画像を表示部24に出力してモニタ等に表示させる。またこのとき、教示情報提示部43は、再生時刻情報として時刻Tjを表す情報を、利用者動作取得部42に出力する。
教示情報提示部43は、時刻Tjに対応する教示情報がなくなると(最後まで再生されると)、再生が終了した旨の情報を利用者動作取得部42に対して出力する。
利用者画像表示部44は、撮像装置10から入力される画像の情報を受け入れて、この画像の情報を表示部24に出力してモニタ等に表示させる。またこの利用者画像表示部44は、この利用者の画像に対して、その画像に基づいて得られた部位の位置に対応する位置に、所定の図形(例えば塗り潰した円)を重ね合わせて描画して表示する。この利用者画像表示部44の処理は、例えばキネクトを用いる場合には、開発キット(SDK)として提供されたプログラムを採用でき、広く知られたものであるので、ここでの詳しい説明を省略する。
これら教示情報提示部43と利用者画像表示部44との出力する情報に基づいて、表示部24は、図4に例示するように、教示情報に基づく仮想的な人体の三次元モデルの画像(I)と、利用者の映像(U)とを並べて表示するようにしてもよい。ここで利用者の映像には、利用者動作取得部42が求めた各部位の位置を表す仮想的な図形(F)が合成されてもよい。さらに利用者の人体の三次元モデルの画像がさらに合成されてもよい。ここで教示者や利用者を表す仮想的な三次元モデルの画像の表示は、キネクトのAPIを利用するばかりでなく、教示情報に表されているボーンや部位、または利用者動作取得部42が求めたボーンや部位をメタボール(T. Nishita, E. Nakamae, "A Method for Displaying Metaballs by using Bezier Clipping," Computer Graphics Forum, Vol.13, No.3, 1994, pp.271-280等を参照)で表現してモデリングしたものであってもよいし、さらにより人体に近い形状にモデリングしたものを用いてもよく、一般的な三次元コンピュータグラフィックスの処理として広く知られた方法を採用できるので、ここでの詳しい説明は省略する。
比較部45は、本実施の形態の一例では、図5に例示するように、姿勢情報生成部51と、姿勢情報比較部52とを含んで構成される。このうち、姿勢情報生成部51は、利用者動作取得部42が取得した部位情報に基づいて、予め定めたタイミング(時刻Ti(i=0,1,2,…))ごとの利用者の姿勢を表す姿勢情報を生成する。ここで生成する情報は、データベースから取得した情報と比較可能とするための情報である。
姿勢情報生成部51は、キネクトを利用する場合は、予め定めたタイミングごと(時刻Tiごと)に、当該時刻Ti(i=1,2,…)における情報として、各部位q(q=1,2…)について、利用者の各部位の座標情報を取得する。
具体的な例として、ここで教示情報に、予め定めたタイミング(時刻Ti(i=0,1,2,…))ごとの右肩関節の座標Ivrs_i(Ixrs_Ti,Iyrs_Ti,Izrs_Ti)が含まれているとすると、この姿勢情報生成部51は、利用者動作取得部42が取得した部位情報から、各時刻Tiにおける右肩関節の座標情報vrs_i(xrs_Ti,yrs_Ti,zrs_Ti)を取り出し、姿勢情報に含める。
さらに比較部45の姿勢情報比較部52は、当該演算により得た、予め定めたタイミングごとの利用者の姿勢情報を、教示情報に含まれる、対応するタイミングでの姿勢の情報と比較する。すなわち姿勢情報比較部52は、時刻Ti(i=0,1,2,…)ごとの、先に生成した利用者の姿勢情報のうちから、部位ごとの座標情報を読み出す。また比較部45は、教示情報に含まれる、当該読み出した部位に対応する座標情報と、先に読み出した利用者の部位ごとの姿勢情報とを比較する。
具体的に上述の例を用いてこの姿勢情報比較部52の動作を説明すると、姿勢情報比較部52は、時刻Tiでの利用者の右肩関節の座標情報vrs_sを取得し、さらにこの座標情報と、時刻Tiでの教示情報から得られる右肩関節の座標情報Ivrs_iとの差を演算する。この差は例えば各成分の差の二乗和、(Ixrs_Ti−xrs_Ti)2+(Iyrs_Ti−yrs_Ti)2+(Izrs_Ti−zrs_Ti)2の平方根等として演算できる。
そして姿勢情報比較部52は、当該比較の結果を表す比較結果情報を記録部46に出力する。具体的に姿勢情報比較部52は、上述のように演算した、時刻Tiでいずれかの部位における教示情報との差が予め定められたしきい値を超える場合に、当該時刻Tiと、当該部位とを表す情報とに対して、動作が不完全であったことを表す情報を関連付けて、比較結果情報として記録部46に出力する。また姿勢情報比較部52は、当該部位を表す情報と、動作が不完全であったことを表す情報を利用者画像表示部44に出力してもよい。この場合利用者画像表示部44は、当該部位に対応する部分に動作が不完全であることを表す表示を行ってもよい。この表示は、例えば当該部位に対応する座標近傍に、赤色の円を描画するなどの方法で行うこととしてもよい。
この処理により、例えば時刻T10において、利用者の右肩関節の位置と、時刻T10における教示情報によって表される右肩関節の位置との差が、予め定めたしきい値より大きい場合に、時刻T10を表す情報と、右肩関節を表す情報とに関連付けて、利用者の動作が不完全であった旨の情報が比較の結果として記録部46に出力される。
記録部46は、比較部45が出力する比較結果情報を、記憶部22に蓄積して記録する。この記録部46は、利用者動作取得部42が教示情報提示部43から再生が終了した旨の情報の入力を受けて、処理を終了すると、記録の処理を終了する。
本実施の形態の一例では、この記録部46は、記録の処理を終了すると、当該処理で記録した比較結果情報を、通信部25に出力して、例えば病院等に配されたサーバ装置30へ送信させてもよい。病院側ではこのサーバ装置30に送られた教示情報に対する利用者の姿勢の比較の結果を参照し、利用者の運動の状況を、医師等が確認できるようになる。
[各部位置座標の他の例]
なお、本実施の形態の一例では、利用者の各部位の位置や、教示情報に含まれる各部位の位置を表す座標情報として、ワールド座標系ではなく、各部位ごとに異なるローカル座標系を用いて表すこととしてもよい。
なお、本実施の形態の一例では、利用者の各部位の位置や、教示情報に含まれる各部位の位置を表す座標情報として、ワールド座標系ではなく、各部位ごとに異なるローカル座標系を用いて表すこととしてもよい。
すなわち、医療の用途に本実施の形態の情報処理装置を用いる場合には、ワールド座標系における各部位の位置を比較するのみでは十分でなく、関節等の回転角を比較することが必要とされる場合がある。そこでこのような場合における各部位の回転角(部位ごとのローカル座標系間の回転角)を求めて比較する方法の例について次に説明する。
この例では、予め、どの部位の回転角を求めるかを定めておく。具体的に回転角を求め得る部位(対象部位)は、以下の例のように複数のボーンの端点となっている部位である。また当該複数のボーンのうちから一対のボーンを選択して、当該選択した一対のボーンのうち一つについての他方側の端点の部位(以下、隣接部位と呼ぶ)を基準部位、もう一つについての他方側の端点の部位(隣接部位)を末端部位として、対象部位、基準部位、末端部位の組ごとに、3つの回転角が求められる。そこでこの例では、予め回転角を求めるべき対象部位、基準部位、末端部位の組を複数組、定めておくものとする。
そして姿勢情報生成部51は予め定められた対象部位、基準部位、末端部位の組を順次注目組として選択しながら、以下の処理を行う。すなわち、姿勢情報生成部51は、選択した注目組に係る対象部位、基準部位、末端部位の各部位の位置のワールド座標系における座標情報を、利用者動作取得部42が取得した部位情報から取り出す。以下では対象部位をP0と表す。
また姿勢情報生成部51は、基準部位と末端部位とをそれぞれPa,Pbとする(図6(a))。次に、姿勢情報生成部51は、対象部位P0を原点として、これとPaとを結ぶ線分の方向をA軸とし、部位P0からPbへの線分の方向をC軸とする。つまり、A軸上にある隣接部位が基準部位となり、C軸上にある隣接部位が末端部位となる。またこれらA軸とC軸とに直交する方向の軸をB軸とする。そして姿勢情報生成部51は、A軸とC軸とが平行であるか否かを調べる。ここでA軸とC軸とが平行であれば、姿勢情報生成部51は、回転角(以下に説明するθA,θB,θCのいずれも)が「0」であるとして、対象部位P0と、隣接部位Pa,Pbとを特定する部位特定情報に関連付けて、姿勢情報として出力する。
また、A軸とC軸とが平行でなければ、姿勢情報生成部51は、A軸まわりの回転角θAを次のように求める。すなわち、姿勢情報生成部51は、ワールド座標系であるXYZ直交座標系を回転させ、X軸をA軸に平行とする。またこの回転させた座標系を平行移動して対象部位P0の座標を原点とした座標系(ξηζ直交座標系とする)を定める。この座標系では、ξ軸はA軸に平行となっており、対象部位P0の座標情報は(ξ0,η0,ζ0)=(0,0,0)となる。
姿勢情報生成部51は、点Pa,Pbのξηζ座標系での座標情報を求めておく。この座標変換は、各点Pa,Pbのワールド座標系を回転してX軸をξ軸に、Y軸をη軸に、Z軸をζ軸に平行とし、さらに平行移動してその原点を対象部位の位置にする座標変換であり、広く知られた方法を用いて行うことができる。
姿勢情報生成部51は、点Pbからξ軸に沿ってηζ面に下ろした垂線の足HPbの座標情報(ξηζ座標系による)のη座標の値をHPb_η、ζ座標の値をHPb_ζとする。そしてA軸周りの回転角θAを、θA=−arctan[HPb_ζ/HPb_η]として求める(図6(b))。
次に姿勢情報生成部51は、Pa,Pbの各部位のξηζ座標系での座標情報を、A軸(つまりξ軸に一致する)まわりにθAだけ回転させたξ′η′ζ′座標系での値に変換する。この座標系においてはζ′軸がB軸に一致している。姿勢情報生成部51は、このとき、点PbをA軸(ξ軸)まわりにθAだけ回転させた点P′bの座標情報を求めておく。
姿勢情報生成部51は、点P′bからζ′軸に沿ってξ′η′面に下ろした垂線の足をHP′bとして、当該足HP′bの座標情報を求める。ここでは足HP′bのξ′座標の値がHP′b_ξ′、η′座標の値がHP′b_η′として求められたものとする。姿勢情報生成部51は、そして、B軸周りの回転角θBを、θB=arctan[−HP′b_ξ′/HP′b_η′]として求める(図6(c))。
次に姿勢情報生成部51は、Pa,P′bの各部位のξ′η′ζ′座標系での座標情報を、ζ′軸まわりにθBだけ回転させたξ″η″ζ″座標系での値に変換する。この変換により、η″軸がC軸に一致する。またこのとき姿勢情報生成部51は、点Pa,P′bをζ′軸まわりにそれぞれθBだけ回転させた点P″a,P″bの座標情報を求めておく。
姿勢情報生成部51は、さらに、点P″ bからη″軸に沿ってξ″ζ″面に下ろした線分の足をHP″cとし、そのξ″座標の値をHP″b_ξ″、ζ″座標の値をHP″b_ζ″とする。姿勢情報生成部51は、C軸周りの回転角θCを、θC=arctan[HP″b_ζ″/HP″b_ξ″]として求める(図6(d))。
姿勢情報生成部51は、こうして求められた回転角(θA,θB,θC)を、対象部位P0と、演算に用いた基準部位Pa、末端部位Pbとを特定する部位特定情報に関連付けて、姿勢情報として出力する。この回転角の情報は、対象部位P0におけるローカル座標系(ξηζ座標系)のξ軸と、それに隣接する末端部位Pb(を対象部位としたとき)におけるローカル座標系のξ軸との間の回転角度を表しており、対象部位P0のローカル座標系から、隣接する末端部位Pbのローカル座標系への変換のパラメータとして用いることのできるものである。
[教示情報の補間]
ここまでの説明では、比較を行う時点Ti(i=1,2,…)ごとの教示者の姿勢を表す情報が教示情報に含まれているものとしていたが、本実施の形態はこのような場合に限られない。
ここまでの説明では、比較を行う時点Ti(i=1,2,…)ごとの教示者の姿勢を表す情報が教示情報に含まれているものとしていたが、本実施の形態はこのような場合に限られない。
本実施の形態のある例では、iが奇数である時点Tiごとの教示者の姿勢を表す情報が教示情報に含まれていることとしてもよい。この場合は、iが偶数である時点Tiの教示者の姿勢を表す情報は、制御部21が内挿補間によって求める。具体的に、時点τm(m=1,2…、τm-1<τm)ごとの教示者の姿勢の情報として各部位の座標情報が教示情報に含まれているものとする。ここでτmは、Tiのいずれかに等しい。例えばiが奇数である時点Tiごとの教示者の姿勢を表す情報(例えば部位qの座標情報vq_2m-1)が教示情報に含まれているとすると、τm=T2m-1となる。
そして時点T2mの座標情報vq_2mと、vq_2m-1との間の移動量を、Δvq_2m-1=vq_2m+1-vq_2m-1として、wΔvq_2m-1(0<w<1)などとして演算する。このパラメータwは常に1/2(つまり線形補間)としてもよい。この場合、時点T2mの座標情報vq_2mは、vq_2m-1+wΔvq_2m-1として定める。
また、τmとτm+1の間にある時点Ti(τm<Ti<τm+1)における教示者の姿勢を表す情報(例えば座標情報vq_i)を、τmとτm+1とのそれぞれにおける教示者の姿勢を表す座標情報vq_2m-1と、vq_2m+1とを通る時刻に関する3次多項式の係数を求め、ついで当該係数を備えた3次多項式に対して時刻Ti(τm<Ti<τm+1)を代入して、当該時刻における教示者の姿勢を表す座標情報を得る、いわゆる3次スプライン補間法を用いて定めてもよい。さらに、回転角の情報を用いる場合も、同様に補間を行うこととしてもよい。
[体格補正]
また、本実施の形態の比較部45では、教示者と利用者との体格差を考慮して、次のような構成を備えてもよい。すなわち本実施の形態の一例に係る比較部45は、図7に例示するようなものであってもよい。図7に例示する比較部45は、体格差パラメータ設定部50と、姿勢情報生成部51と、教示者姿勢情報生成部55と、姿勢情報比較部52′とを含んで構成される。
また、本実施の形態の比較部45では、教示者と利用者との体格差を考慮して、次のような構成を備えてもよい。すなわち本実施の形態の一例に係る比較部45は、図7に例示するようなものであってもよい。図7に例示する比較部45は、体格差パラメータ設定部50と、姿勢情報生成部51と、教示者姿勢情報生成部55と、姿勢情報比較部52′とを含んで構成される。
体格差パラメータ設定部50は、利用者動作取得部42が取得する利用者の体の各部位の位置から、少なくとも一対の部位間の距離RUを演算する。この部位間の距離は、具体的にキネクトを用いる場合、右腰関節の位置から右膝関節の位置までの距離、あるいは左腰関節の位置から左膝関節の位置までの距離などとしておく。
体格差パラメータ設定部50は、また、教示情報取得部41が取得した教示情報に含まれる、教示者の初期の姿勢の情報から、上記利用者の一対の部位に対応する部位間の距離RIを演算する。そして例えばこれらの距離の比RU/RIを、体格差パラメータΠとする。
この例では、姿勢情報生成部51は、予め定めたタイミングごと(時刻Tiごと)に、当該時刻Ti(i=1,2,…)における情報として、各時刻での利用者の各部位の位置を取得する。そして姿勢情報生成部51は、それぞれ対応する部位Jk(k=1,2,…)の直前の時刻Ti-1での位置との差Δxjk_Ti,Δyjk_Ti,Δzjk_Ti(k=1,2,…)を演算する。
また教示者姿勢情報生成部55は、取得している教示情報に基づいて、予め定めたタイミングごと(時刻Tiごと)の教示者の各部位Jk(k=1,2…)の位置を表す座標情報IvJk_iを取得する。ここで教示情報が時刻Tiごととなっていない場合は、時刻Tiごとの教示者の各部位Jkの座標情報を既に述べた教示情報の補間により求めてもよい。
またこの教示者姿勢情報生成部55は、教示情報に教示者の姿勢情報として、予め定められた対象部位、基準部位、末端部位の組ごとの回転角を演算することで、時刻Tiでの当該部位の回転角の情報を得ておき、対象部位、基準部位、末端部位の組を特定する情報(各部位の部位特定情報の組)に関連付けて記憶しておく。この部位の回転角の演算方法は既に述べた利用者の姿勢に対する方法と同じ方法を採用できるので、ここでの繰り返しての説明を省略する。
姿勢情報比較部52′は、当該姿勢情報生成部51により得た、予め定めたタイミング(時刻Ti)ごとの利用者の姿勢を表す情報と、教示者姿勢情報生成部55により得た、対応するタイミングでの教示者の姿勢の情報とを比較する。ここで姿勢情報比較部52′は、各時刻Tiにおける教示者の姿勢の情報を、体格差パラメータΠを用いて補正してから比較する。
すなわち姿勢情報比較部52′は、先に生成した時刻Tiにおける教示者の姿勢を表す情報のうちから、いずれかの部位(例えば腰関節中心)を起点として、当該起点とした部位を注目部位として、次の処理を行う。
まず姿勢情報比較部52′は、注目部位を対象部位とした回転角の情報が演算されて記憶されているか否かを調べる。ここで回転角の情報が演算されていなければ、姿勢情報比較部52′は、当該注目部位を端点に含む各ボーンについて、注目部位と隣接部位(ボーンで連結された部位)間の距離に体格差パラメータΠを乗じて各ボーンの補正後の長さを求め、注目部位の位置から各ボーンの方向へ補正後の長さだけ移動した位置の座標情報を、補正後の対応する隣接部位の位置として、当該隣接部位を特定する部位特定情報に関連付けて記憶する。
また、注目部位を対象部位とした回転角の情報が演算されて記憶されている場合は、姿勢情報比較部52′は、当該注目部位を対象部位とした回転角の値(教示情報に基づいて演算により得られる)を用い、対象部位に隣接する末端部位(注目部位が首部であれば、例えば頭部と、左右の肩中心)の位置(複数あればそれぞれ)の座標情報を、対象部位のローカル座標系での座標情報として演算する。具体的に姿勢情報比較部52′は、末端部位の方向(C軸方向)が対象部位のローカル座標系により表現できるので、この方向に、末端部位までの本来の距離に体格差パラメータΠを乗じて得た距離だけ移動した点の座標情報を、補正後の末端部位の座標情報とする。ここで演算される末端部位の座標情報は、対象部位のローカル座標系における値として求められるが、この対象部位のローカル座標系は、起点とした部位から順次座標変換を行っているので、ワールド座標系に対する回転角が演算でき、従って姿勢情報比較部52′は、補正後の末端部位の座標情報をワールド座標系での座標情報に変換することができる。
姿勢情報比較部52′は、この演算により得られた末端部位を、次の注目部位として、当該注目部位を対象部位とした回転角の値を用い、対象部位に隣接する末端部位の位置(複数あればそれぞれ)の座標情報を、対象部位のローカル座標系での座標情報として演算する処理を繰り返して行う。姿勢情報比較部52′は、このように起点となる部位の位置情報やローカル座標系から順次、隣接する部位の位置座標やローカル座標系の回転角を決定していく。すなわちキネマティクスを考慮して、各時刻Ti(i=1,2,…)における、体格差補正後の各部位の位置座標を演算する。
そして姿勢情報比較部52′は、利用者の姿勢を表す情報のうちから、部位ごとの座標情報を読み出し、当該読み出した座標情報と、先に得た体格差補正後の教示者の各部位の座標情報とを比較する。
そして姿勢情報比較部52′は、当該比較の結果を表す比較結果情報を記録部46に出力する。具体的に姿勢情報比較部52は、上述のように演算した、時刻Tiでいずれかの部位における教示情報との差が予め定められたしきい値を超える場合に、当該時刻Tiと、当該部位とを表す情報とに対して、動作が不完全であったことを表す情報を関連付けて、比較結果情報として記録部46に出力する。
また姿勢情報比較部52′は、当該部位を表す情報と、動作が不完全であったことを表す情報を利用者画像表示部44に出力してもよい。この場合利用者画像表示部44は、当該部位に対応する部分に動作が不完全であることを表す表示を行ってもよい。この表示は、例えば当該部位に対応する座標近傍に、赤色の円を描画するなどの方法で行うこととしてもよい。
本実施の形態のこの例においては、教示情報提示部43の再生処理においても、三次元モデルの人体の姿勢を体格差パラメータを用いて補正して、再生を行ってもよい。すなわちこの場合、教示情報提示部43は、姿勢情報比較部52′と同じ処理により、キネマティクスを考慮して、各時刻Ti(i=1,2,…)における、体格差補正後の、教示者の各部位の位置座標を演算する。そして教示情報提示部43は、変数jを「1」に初期化し、時刻Tjにおける仮想の三次元空間内に人体を模した三次元モデルを生成する。
教示情報提示部43は、この三次元モデルの各関節の位置を、体格差補正後の時刻Tjにおける教示者の各部位の位置座標に設定して、三次元モデルの人体の姿勢を時刻Tjにおける教示者の姿勢に一致させつつ、その体格を利用者のものに合わせる。そして教示情報提示部43は、当該三次元モデルの画像を表示部24に出力してモニタ等に表示させる。
また教示情報提示部43は、所定のタイミングごとにjを「1」ずつインクリメントしながら、三次元モデルの姿勢を更新してはその画像を表示部24に出力してモニタ等に表示させていく。ここでjをインクリメントするタイミングは、時刻Tjにて表示を更新した後、時刻Tj+1−Tjの実時間に相当する時間だけあとのタイミングとしてもよいし、実時間に対して利用者が設定したパラメータを乗じた時間だけ後のタイミングとしてもよい。後者のようにすると、やや早めに教示情報を再生したり、あるいは教示情報の再生速度をやや遅めにしたりすることができる。この例においても教示情報提示部43は、時刻Tjに対応する教示情報がなくなると(最後まで再生されると)、再生が終了した旨の情報を利用者動作取得部42に対して出力する。
なお、教示情報の補間を行う場合は、補間により、比較を行う各時点での教示者の姿勢の情報を得てから、この体格差の補正を行ってもよいし、教示情報に含まれる、各時点での教示者の姿勢の情報に対して体格差の補正を行ってから、体格差補正後の教示者の情報を用いて、比較を行う各時点での教示者の姿勢の情報を補間により得ても構わない。
[足先の向き]
また本実施の形態の利用目的によっては、教示者と利用者とのそれぞれの足首から足先を結ぶ線上にある点の位置を用いたい要望がある。しかしながらキネクトのあるバージョンなど、画像から関節の位置を取得する技術においては、利用者の両足首(ANKLE)の位置は検出されるが、足首から足先への方向は検出されない場合がある。
また本実施の形態の利用目的によっては、教示者と利用者とのそれぞれの足首から足先を結ぶ線上にある点の位置を用いたい要望がある。しかしながらキネクトのあるバージョンなど、画像から関節の位置を取得する技術においては、利用者の両足首(ANKLE)の位置は検出されるが、足首から足先への方向は検出されない場合がある。
そこでこうした場合にも利用者の足首から足先を結ぶ線上にある点を検出するべく、制御部21は次の処理を実行してもよい。この例において制御部21は、利用者の足首の位置から鉛直下方(Y軸方向)に予め定めた距離だけ移動した点を通り、XZ面に平行な面を床面の向きと推定する。具体的に制御部21は、床面の向きを推定する手段として動作し、撮像装置10から得た画像から利用者の足首の関節の位置を検出する。この制御部21は、複数U回に亘って得られている、利用者の足首の位置から鉛直下方(Y軸方向)に予め定めた距離だけ移動した点のY座標値を元データとし、この元データのうちu個(U>u)のデータを任意に取り出してサンプル候補とし、その平均値と、サンプル候補としたデータとの誤差の累計(平均との差の二乗和などでよい)を演算する処理を、取り出すu個のデータを互いに異ならせた複数のサンプル候補について行う。
そして制御部21は、複数のサンプル候補のうち、上記誤差の累計が最も小さいサンプル候補の平均値(Y座標値の平均値)を、床面のY座標値とする。つまり、当該Y座標値を通って、XZ面に平行な面を床面の位置と推定する。
また制御部21は、例えば図8に例示したように、左足先の方向については左股関節Hと左足首Aとを結ぶ線Lを仮想的に設定し、この線Lを回転軸とする左膝関節Kの回転角θ(XZ面内でX軸からの角度として表せばよい)を求める。そして左足首Aからみてこの回転角θと同じ方向が左足先Fの方向であると推定する。制御部21は、右足先の方向についても同様に、右股関節と右足首とを結ぶ線を仮想的に設定し、この線を回転軸とする右膝関節の回転角(XZ面内でX軸からの角度として表せばよい)を求める。そして右足首からみてこの回転角と同じ方向が右足先の方向であると推定する。そして左足首Aからみて、この推定された足先の方向に、所定の距離Lfootだけ離れた点を求め、この点を左足先の点と推定する。なお、この距離Lfootは、平均的な足首から足先までの長さとしてもよいし、利用者ごとに定めておいてもよい。制御部21は、右足についても同様の処理を行い、左右の足先の点の位置を推定する。
この場合制御部21は、教示情報にも、同様の方法で推定した部位(足首から足先の方向への線上にある部位)の位置の座標情報を含めておく。そして制御部21は、当該推定により得られた利用者の体の部位の位置の座標情報についても、教示情報に含まれる、対応する部位の位置の座標情報(同様に推定された座標情報)と比較する。
この例では、制御部21は時刻Tiにおける、上記推定した利用者の足先の位置の座標情報と、教示情報に含まれる、時刻Tiにおける教示者の足先の位置の座標情報とを比較して、その差が予め定めたしきい値を超える場合に、その旨の情報を出力し、記録する。
[教示情報の生成]
また、本実施の形態の一例では、教示情報の元となる教示者の姿勢もまた、利用者の姿勢を取得する方法と同じ方法によって取得することとしてもよい。
また、本実施の形態の一例では、教示情報の元となる教示者の姿勢もまた、利用者の姿勢を取得する方法と同じ方法によって取得することとしてもよい。
すなわち本実施の形態の一例では、制御部21が、教示情報の生成指示を受け入れて教示情報の生成処理を開始する。この処理では、制御部21は、予め定めた時間(リーディングタイム)だけ待機してから、撮像装置10から入力される画像の情報を受け入れる。教示者はこのリーディングタイムの間に、撮像装置10から撮像される位置に立って初期の姿勢をとる。
そして制御部21はリーディングタイムの経過後、例えばその直後に、撮像装置10から受け入れた画像から、教示者の体の各部位の位置(三次元座標上の位置)の情報を取得し、それぞれの各部位を特定する情報に関連付けて、対応する部位の位置の情報を初期の姿勢の情報として記録する。
その後制御部21は、予め定められたタイミングごと(例えば時刻Ti(i=1,2…)ごと)に繰返して教示者の体の各部位の位置の座標情報を取得し、それぞれの各部位を特定する情報に関連付けて、対応する部位に関して取得した座標情報を、部位毎情報(e)として記録する。以下、制御部21は、教示者から教示情報の記録終了の指示を受けるまで、この繰り返しの処理を行う。
制御部21は、記録した初期位置の情報と、部位毎情報(e)をそれぞれに含む情報要素(E)とを含む教示情報を生成し、教示者に対して運動を識別する情報の入力を求める。教示者が、操作部23を操作するなどして、運動を識別する情報(例えば運動の名称)を入力すると、制御部21は、当該運動を識別する情報と、生成した教示情報とを関連付けて、記憶部22に格納する。またこの教示情報は、サーバ装置30に転送されてデータベースに蓄積されてもよい。
さらに、先に説明した例では、教示情報には教示者の各部位の座標情報(ワールド座標系における座標情報)を含めておき、必要であれば利用者の姿勢情報と教示者の姿勢の情報とを比較する際に各部位におけるローカル座標情報間の回転角の情報を演算することとしていたが、本実施の形態のある例では、ここでの教示情報の生成の処理において、先に述べた各部位におけるローカル座標情報間の回転角の情報を演算しておき、教示情報に含めておいても構わない。
この場合は、利用者の姿勢情報と教示者の姿勢の情報とを比較する際に必要があれば、教示情報に含められた、教示者の各部位におけるローカル座標情報間の回転角の情報を参照して、利用者の姿勢情報との比較(や、体格の補正処理等)を行うことになる。
[動作例]
本実施の形態の動作情報処理装置1は、以上の構成を備え、次のように動作する。動作情報処理装置1の利用者は、操作部23を操作して、データベースに格納されている教示情報をブラウズする。利用者は、運動ごとの教示情報のうち、どの運動を行うかの指定を行う。
本実施の形態の動作情報処理装置1は、以上の構成を備え、次のように動作する。動作情報処理装置1の利用者は、操作部23を操作して、データベースに格納されている教示情報をブラウズする。利用者は、運動ごとの教示情報のうち、どの運動を行うかの指定を行う。
すると動作情報処理装置1が、利用者の指定された運動の種類に対応してデータベースに記録されている教示情報を読み出して取得し、図9に例示する処理を開始する。動作情報処理装置1は、撮像装置10を起動して、その起動時に利用者の体の各部位を認識して初期化処理を開始する(S1)。
この初期化処理では、動作情報処理装置1は、図10に例示するように、先に取得した教示情報のうちから、教示者の初期の姿勢の情報を読み出す。そして動作情報処理装置1は、撮像装置10が撮像した画像を用い、利用者の各部位の位置の座標情報を繰り返し取得しながら、取得した利用者の各部位の位置の座標情報と、教示者の初期の姿勢で、それぞれ対応する部位に係る座標情報との差を演算し、それぞれの差がいずれも予め定めたしきい値より小さくなる(教示者の初期の姿勢に利用者の姿勢が一致する)まで待機する(S21)。
利用者の各部位の位置の座標情報が、当該読み出した教示者の初期の姿勢に一致するようになると、取得する利用者の体の各部位の位置の座標情報から、少なくとも一対の部位間の距離RUを演算する(S22)。この部位間の距離は、例えば右腰関節の位置から右膝関節の位置までの距離でよい。また複数対の部位間の距離を用いる場合は、各距離の平均(算術平均等でよい)を、この部位間の距離RUとする。
動作情報処理装置1はまた、先に取得した教示情報に含まれる、教示者の初期の姿勢の情報から、上記利用者の一対の部位に対応する部位間(ここでは右腰関節の位置から右膝関節の位置まで)の距離RIを演算する。ここでも複数対ある場合は、教示情報において対応する複数対の部位間の距離の平均を演算(RUを求めた際の演算と同じ演算)して、距離RIとする。動作情報処理装置1は、これらの距離の比RU/RIを、体格差パラメータΠとする(S23)。
動作情報処理装置1は教示情報に含まれる、各時刻での各部位の角度を演算し、さらに体格差パラメータΠを利用し、キネマティクスを考慮して、教示情報から、各時刻Ti(i=1,2,…)における、体格差補正後の教示者の各部位の位置座標を演算する(S24)。
そして動作情報処理装置1は初期化処理を終了して、図9の処理S2に移行する。動作情報処理装置1は、処理S2において教示情報の再生処理を開始する。具体的に動作情報処理装置1は、再生時刻を表す変数jを「1」に初期化する(S2)。
そして動作情報処理装置1は、時刻Tjにおける教示者の(体格差補正後の)各部位の位置の座標情報を生成する(S3)。具体的にここでは、教示情報には各時刻Tjでの教示者の姿勢を表す情報は教示情報には含まれず、時点τm(m=1,2…、τm-1<τm)ごとの教示者の姿勢の情報が教示情報に含まれているものとする。ここでτmは、Tiのいずれかに等しい。ここでは例えばiが奇数である時点Tiごとの教示者の姿勢を表す情報(例えば座標情報v2m-1)が教示情報に含まれているとする。つまり、τm=T2m-1となる。
動作情報処理装置1は、iが偶数である時点Tiの教示者の姿勢を表す情報を生成するため、時点T2mの、ある部位の位置の座標情報v2mを、その前後の時点であって、教示者の姿勢を表す情報が得られている時点τm,τm+1のそれぞれにおける教示者の姿勢を表す情報v2m-1と、v2m+1とを通る3次多項式の係数を求める、いわゆる3次スプライン補完法を用いて定めてもよい。ついで動作情報処理装置1は、当該係数を備えた3次多項式に対して時刻Ti(τm<Ti<τm+1)を代入して、当該時刻における教示者の姿勢を表す座標情報を得る。このような内挿処理を、教示情報に含まれない時点Tiごとに行って動作情報処理装置1は、比較を行うすべての時点Tiでの教示者の各部部位Jk(k=1,2…)の位置を表す座標情報IvJk_i(体格差補正後のもの)を取得する。
動作情報処理装置1は、ここで生成した教示者の各部位の位置の座標情報(体格差補正後のもの)を用いて、時刻Tjにおける仮想の三次元空間内に人体を模した三次元モデルを生成して表示出力する(S4)。具体的に動作情報処理装置1は、人体を模した三次元モデルの対応する各部位の位置を、処理S3で取得した、時刻Tjの教示者の各部位の位置に設定して、三次元モデルの人体の姿勢を時刻Tjにおける教示者の姿勢に一致させ、当該三次元モデルの画像を表示部24に出力してモニタ等に表示させる。利用者は、このモニタの表示を参照して、教示情報に合わせた姿勢となるよう、体を動かす。
また動作情報処理装置1は、撮像装置10から入力される画像を用いて、利用者の各部位(ここでは各関節)の位置の情報を取得する(S5)。また動作情報処理装置1は、撮像装置10から入力された画像の情報を表示部24に出力してモニタ等に表示させる。このとき動作情報処理装置1は、処理S5にて取得した、利用者の各部位の位置を表す図形の表示を、利用者の画像に重ね合わせて行う(S6)。これにより図4に例示したような画像がモニタ等に表示されることとなる。
動作情報処理装置1は、先に生成した教示情報(または取得した教示情報)に含まれる、時刻Tjにおける教示者の各部位の座標(体格差補正後のもの)と、処理S5で得た、時刻Tjでの利用者の各部位の座標とを比較し(S7)、その結果を表す比較結果情報を記憶部22に記録する。
具体的に動作情報処理装置1は、時刻Tjでの利用者の各部位Jk(k=1,2…)の座標値vJk_jと、教示者の対応する部位Jk(k=1,2…)の座標値IvJk_jとの差(座標値の各成分の差の二乗和)を演算する。そして動作情報処理装置1は、時刻Tiでのいずれかの関節Jk(k=1,2…)におけるこの差が予め定められたしきい値を超える場合に、当該時刻Tjと、当該部位Jkとを表す情報とに対して、動作が不完全であったことを表す情報を関連付けて、比較結果情報として記憶部22に記録する。
動作情報処理装置1は、教示情報として時刻Tj+1における情報があるか否かを調べ(S8)、時刻Tj+1における教示情報がなければ(Noならば)、処理を終了する。また処理S8において時刻Tj+1におけるあれば(Yesならば)、動作情報処理装置1は、所定の時間だけ待機してからjを「1」だけインクリメントする(S9)。ここで待機の時間は、時刻Tj+1−Tjの時間から、処理S3から処理S8までの処理を行うのにかかった時間を差引いた時間とする。この時間が0以下であれば、動作情報処理装置1は、直ちにjを「1」だけインクリメントすることとしてもよい。動作情報処理装置1はそして処理S3に戻って処理を続ける。
[変形例]
なお、ここでは体の部位の位置として、関節の位置を用いているが、本実施の形態はこれに限られない。例えばここまでの説明では教示情報は、各部位を特定する情報と、当該部位の座標情報、あるいはその差分(直前の時刻での対応する部位の位置との差)とを関連付けたものとした。しかしながら、予め決められた部位の順で、各部位の座標情報や差分の情報を配列しておくこととすれば、制御部21は各部位の位置の情報や差分の情報を抽出できるので、この場合は各部位を特定する情報との関連付けは必ずしも必要でない。
なお、ここでは体の部位の位置として、関節の位置を用いているが、本実施の形態はこれに限られない。例えばここまでの説明では教示情報は、各部位を特定する情報と、当該部位の座標情報、あるいはその差分(直前の時刻での対応する部位の位置との差)とを関連付けたものとした。しかしながら、予め決められた部位の順で、各部位の座標情報や差分の情報を配列しておくこととすれば、制御部21は各部位の位置の情報や差分の情報を抽出できるので、この場合は各部位を特定する情報との関連付けは必ずしも必要でない。
本発明によると、教示情報と異なる動きとなった利用者の運動(異なる動きとなった時点と、関節等の部位を特定する情報と)が記録され、利用可能となるので、利用者が正しく運動を行っているか否かの把握を容易にでき、運動指導等の用途にも用いることが可能となる。
さらに、利用者の運動に係る情報(各時点での関節位置の情報や、教示情報と異なる動きとなった時点や部位を特定する情報等)を病院等に送信して利用する場合であっても、利用者の姿を撮影した画像(実際には動作情報処理装置1を配置した利用者宅の室内の画像等)まで病院等に送られることがなく、利用者のプライバシーにも配慮しつつ、運動指導等の用途に役立てることが可能となる。
また、図4に例示した教示情報に基づく人体を模した仮想的な三次元モデルや、利用者の姿勢を表す、人体を模した仮想的な三次元モデルの表示は、仮想的なカメラの位置を定め、当該仮想的なカメラから見たときの三次元モデルのレンダリング像を表示するものであるが、例えば、いつもその三次元モデルの前面から見た像となるように、仮想的なカメラの位置を設定してもよい。
具体的には、座標情報を取得可能な人体の各部のうち、正立している状態(撮像装置10に対して対向し、まっすぐに立っている状態)で横断面内にあり、人体の正中線に対し対称な位置にある二点を用いる。この二点は例えば左右の股関節の位置を表す点(LHIP,RHIP)でよい。そして動作情報処理装置1は、これら二点の中点Cを演算し、また、これら二点を結ぶ線分を法線とし、演算した中点Cを含む面をA面(矢状面と推定される面)とする。さらにA面に垂直に交わり、上記二点を結ぶ線分を含む面をB面(前額面と推定される面)とする。
ここで、利用者など撮像装置10で撮像される人物が正立しているときには、A面はワールド座標系のYZ面に平行となり、B面はXY面に平行となる。動作情報処理装置1は、仮想的なカメラの位置として、A面内にあり(X座標をA面内にある中点CのX座標に一致させ)、Y軸方向の位置を予め定めた高さhに設定し、Z軸方向の位置を、中点Cから予め定めた距離Lだけ撮像装置10の方向に移動した点に設定する。またこの仮想的なカメラの視線方向を、人体の方向に設定する。ここで高さhや距離Lの少なくとも一方は、人物の各部の座標情報に基づいて定めてもよい。例えば、首の高さ(首のワールド座標でのY座標の値)を高さhとしてもよい。
これにより、仮想的なカメラを人物に対してまっすぐに向き合う位置に設定でき、仮想的な三次元モデルや、利用者の姿勢を表す、人体を模した仮想的な三次元モデルを、正面から見た状態で表示できる。
また、図4に例示したところでは教示情報に基づく仮想的な三次元モデルの画像(I)と、利用者の映像(U)とを並べて表示することとしていたが、本実施の形態はこれに限られず、教示情報に基づく仮想的な三次元モデルの画像(I)と、利用者の映像(U)とを重ね合わせて表示してもよい。
この場合は、動作情報処理装置1は、例えば利用者の各部の座標情報、及び教示情報に含まれる各部の座標情報のうち、左右の股関節の位置を表す点(LHIP,RHIP)の座標情報と、左右の足首の位置を表す点(LANK,RANK)とをそれぞれ読み出し、それぞれの中点CHIP及びCANKを演算する(以下では利用者についてのこれらの中点をCHIP,CANKと書き、教示情報から求められるこれら中点を、C′HIP,C′ANKと書く)。
動作情報処理装置1は、また、利用者の各部の座標情報から、利用者が立っている床面のY座標値(Hfloorとする)を既に説明した方法(足先の方向の推定処理で用いた方法)により推定して求める。また教示情報に基づいて教示者が立っていた床面のY座標値(H′floorとする)を、同様の方法で求める。
動作情報処理装置1は、そして、C′ANKとCANKとのX軸方向の座標の差C′ANK_x−CANK_xをPoffsetxとして演算し、床面のY座標値H′floorとHfloorとの差H′floor−HfloorをPoffsetyとして演算し、C′HIPとCHIPとのZ軸方向の座標の差C′HIP_z−CHIP_zをPoffsetzとして演算する。
動作情報処理装置1は、これらXYZ各軸方向のオフセット値を用いて、教示情報の各部の座標情報を各軸方向に平行移動するなどして、教示情報により表される仮想的な三次元モデルと、利用者についての仮想的な三次元モデルとを相対的に平行移動し、互いに重ね合わせて表示する。
また動作情報処理装置1は、さらに、第2の仮想的なカメラとして、B面内にあり(Z座標をB面内にある中点CのZ座標に一致させ)、Y軸方向の位置を予め定めた高さhside(上記の高さhと同じでも構わないし、異なっていてもよい)に設定し、X軸方向の位置を、中点Cから予め定めた距離LsideだけX軸方向のいずれかの方向に移動した点に設定する。またこの第2の仮想的なカメラの視線方向を、人体の方向に設定する。ここで高さhsideや距離Lsideの少なくとも一方は、人物の各部の座標情報に基づいて定めてもよい。例えば、首の高さ(首のワールド座標でのY座標の値)を高さhsideとしてもよい。
そして動作情報処理装置1は、教示情報に基づく人体を模した仮想的な三次元モデルや、利用者の姿勢を表す人体を模した仮想的な三次元モデルを、この第2の仮想的なカメラの位置から見たときの像としてレンダリングし、当該レンダリングで得られたレンダリング像を、さらに表示してもよい。このレンダリング像は、教示情報または利用者の各部の情報に基づく三次元モデルを横から見た像となる。
この場合も、この教示情報により表される仮想的な三次元モデルと、利用者についての仮想的な三次元モデルとを相対的に平行移動し、互いに重ね合わせて表示するようにしてもよい。
これらの処理によれば、図11に例示するように、教示情報に基づく仮想的な人体の三次元モデルの画像(I)と、利用者の映像(U)とが並べて表示されるとともに、利用者の各部の情報から得られた三次元モデルと教示情報に基づく仮想的な三次元モデルとの正面からのレンダリング結果(T)と、側面からのレンダリング結果(S)とがさらに併せて表示されることとなる。また、これら正面からのレンダリング結果(T)と、側面からのレンダリング結果(S)では、利用者の各部の情報から得られた三次元モデルと教示情報に基づく仮想的な三次元モデルとが重ね合わせて表示されていてもよい。
1 動作情報処理装置、10 撮像装置、20 本体部、21 制御部、22 記憶部、23 操作部、24 表示部、25 通信部、30 サーバ装置、41 教示情報取得部、42 利用者動作取得部、43 教示情報提示部、44 利用者画像提示部、45 比較部、46 記憶部、50 体格差パラメータ設定部、51 姿勢情報生成部、52,52′ 姿勢情報比較部。
Claims (4)
- 運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続された動作情報処理装置であって、
前記データベースから、前記教示情報を取得する教示情報取得手段と、
運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得する利用者動作取得手段と、
前記利用者動作取得手段が取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成し、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報と比較する比較手段と、
前記比較の結果を記録する記録手段と、
を含む動作情報処理装置。 - 請求項1記載の動作情報処理装置であって、
前記利用者動作取得手段において認識される部位情報から利用者の体の各部位の位置間の距離の情報を得て、当該距離の情報と、前記データベースに記録された前記教示情報に含まれる教示者の姿勢の情報とに基づき、前記教示者と利用者との体格差に関する情報を生成する生成手段をさらに含み、
前記比較手段は、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報を前記生成手段において生成した体格差に関する情報に基づいて補正し、当該補正した姿勢の情報と、前記利用者動作取得手段が取得した部位情報に基づいて得られる、予め定めたタイミングごとの利用者の姿勢を表す情報とを比較する動作情報処理装置。 - 請求項1または2記載の動作情報処理装置であって、
利用者の立つ床面の位置を推定する手段と、
前記推定された床面の位置と、利用者の体の各部位の位置とに基づいて、利用者の足首から足先への方向を推定する手段と、をさらに含み、
前記データベースに含まれる教示情報は、教示者の足首と足先とを結ぶ線上にある点の位置の情報が抽出可能な情報であり、
前記利用者動作取得手段は、部位情報として、利用者の前記推定された利用者の足首から足先への方向を用いて、利用者の足首と足先とを結ぶ線上にある点の位置の情報を含む情報を取得し、
前記比較手段は、前記教示情報に含まれる姿勢情報から抽出した教示者の前記点の位置の情報と、前記利用者の前記点の位置の情報とを用いて、前記姿勢の情報の比較を行う動作情報処理装置。 - 運動に伴う教示者の姿勢の時系列変化を表す教示情報を、運動ごとに記録したデータベースにアクセス可能に接続されたコンピュータを、
前記データベースから、前記教示情報を取得する教示情報取得手段と、
運動に伴う利用者の体の各部位の位置に関する部位情報を、予め定めたタイミングごとに逐次的に取得する利用者動作取得手段と、
前記利用者動作取得手段が取得した部位情報に基づいて、予め定めたタイミングごとの利用者の姿勢を表す情報を生成し、前記教示情報取得手段が取得した教示情報に含まれる、姿勢の情報と比較する比較手段と、
前記比較の結果を記録する記録手段と、
として機能させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014064882A JP2015186531A (ja) | 2014-03-26 | 2014-03-26 | 動作情報処理装置、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014064882A JP2015186531A (ja) | 2014-03-26 | 2014-03-26 | 動作情報処理装置、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015186531A true JP2015186531A (ja) | 2015-10-29 |
Family
ID=54429187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014064882A Pending JP2015186531A (ja) | 2014-03-26 | 2014-03-26 | 動作情報処理装置、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015186531A (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018085574A (ja) * | 2016-11-21 | 2018-05-31 | カシオ計算機株式会社 | 画像処理装置、解析システム、画像処理方法及びプログラム |
CN109842669A (zh) * | 2017-11-24 | 2019-06-04 | 丰田自动车株式会社 | 医疗数据通信装置、服务器、医疗数据通信方法和程序 |
CN110047580A (zh) * | 2017-11-24 | 2019-07-23 | 丰田自动车株式会社 | 医疗信息系统、医疗设备、方法和非暂态计算机可读介质 |
JP2019166238A (ja) * | 2018-03-26 | 2019-10-03 | 株式会社エヌ・ティ・ティ・データ | 動作模倣支援システム及び動作模倣支援装置 |
CN111050863A (zh) * | 2017-09-01 | 2020-04-21 | 富士通株式会社 | 练习辅助程序、练习辅助方法以及练习辅助系统 |
CN111382194A (zh) * | 2020-03-09 | 2020-07-07 | 北京如影智能科技有限公司 | 一种获取机械臂操控数据的方法及装置 |
JP2020205608A (ja) * | 2020-08-28 | 2020-12-24 | カシオ計算機株式会社 | 画像処理装置、解析システム、画像処理方法及びプログラム |
JP2021068059A (ja) * | 2019-10-18 | 2021-04-30 | アイシン精機株式会社 | 爪先位置推定装置および指先位置推定装置 |
WO2022075116A1 (ja) * | 2020-10-06 | 2022-04-14 | 国立研究開発法人産業技術総合研究所 | 情報表示装置及び情報表示方法 |
WO2023242981A1 (ja) * | 2022-06-15 | 2023-12-21 | マクセル株式会社 | ヘッドマウントディスプレイ、ヘッドマウントディスプレイシステム、および、ヘッドマウントディスプレイの表示方法 |
WO2024116253A1 (ja) * | 2022-11-28 | 2024-06-06 | 富士通株式会社 | 情報処理方法、情報処理プログラムおよび情報処理装置 |
WO2024116252A1 (ja) * | 2022-11-28 | 2024-06-06 | 富士通株式会社 | 補正方法、補正プログラムおよび情報処理装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134767A (ja) * | 1999-11-01 | 2001-05-18 | Atr Media Integration & Communications Res Lab | 3次元連続動作の検定装置 |
JP2009119112A (ja) * | 2007-11-16 | 2009-06-04 | Xing Inc | 動画表示システム、動画表示方法、およびコンピュータプログラム |
US20100306712A1 (en) * | 2009-05-29 | 2010-12-02 | Microsoft Corporation | Gesture Coach |
JP2012120579A (ja) * | 2010-12-06 | 2012-06-28 | Seiko Epson Corp | 運動解析装置 |
-
2014
- 2014-03-26 JP JP2014064882A patent/JP2015186531A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001134767A (ja) * | 1999-11-01 | 2001-05-18 | Atr Media Integration & Communications Res Lab | 3次元連続動作の検定装置 |
JP2009119112A (ja) * | 2007-11-16 | 2009-06-04 | Xing Inc | 動画表示システム、動画表示方法、およびコンピュータプログラム |
US20100306712A1 (en) * | 2009-05-29 | 2010-12-02 | Microsoft Corporation | Gesture Coach |
JP2012120579A (ja) * | 2010-12-06 | 2012-06-28 | Seiko Epson Corp | 運動解析装置 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018085574A (ja) * | 2016-11-21 | 2018-05-31 | カシオ計算機株式会社 | 画像処理装置、解析システム、画像処理方法及びプログラム |
CN111050863A (zh) * | 2017-09-01 | 2020-04-21 | 富士通株式会社 | 练习辅助程序、练习辅助方法以及练习辅助系统 |
CN109842669B (zh) * | 2017-11-24 | 2021-11-09 | 丰田自动车株式会社 | 医疗数据通信装置、服务器、医疗数据通信方法和介质 |
CN109842669A (zh) * | 2017-11-24 | 2019-06-04 | 丰田自动车株式会社 | 医疗数据通信装置、服务器、医疗数据通信方法和程序 |
JP2019096134A (ja) * | 2017-11-24 | 2019-06-20 | トヨタ自動車株式会社 | 医療データ通信装置、サーバ、医療データ通信方法および医療データ通信プログラム |
CN110047580A (zh) * | 2017-11-24 | 2019-07-23 | 丰田自动车株式会社 | 医疗信息系统、医疗设备、方法和非暂态计算机可读介质 |
CN110047580B (zh) * | 2017-11-24 | 2023-05-09 | 丰田自动车株式会社 | 医疗信息系统、医疗设备、方法和非暂态计算机可读介质 |
US11507689B2 (en) | 2017-11-24 | 2022-11-22 | Toyota Jidosha Kabushiki Kaisha | Medical data communication apparatus, server, medical data communication method and medical data communication program |
JP7009955B2 (ja) | 2017-11-24 | 2022-01-26 | トヨタ自動車株式会社 | 医療データ通信装置、サーバ、医療データ通信方法および医療データ通信プログラム |
JP2019166238A (ja) * | 2018-03-26 | 2019-10-03 | 株式会社エヌ・ティ・ティ・データ | 動作模倣支援システム及び動作模倣支援装置 |
JP2021068059A (ja) * | 2019-10-18 | 2021-04-30 | アイシン精機株式会社 | 爪先位置推定装置および指先位置推定装置 |
JP7375456B2 (ja) | 2019-10-18 | 2023-11-08 | 株式会社アイシン | 爪先位置推定装置および指先位置推定装置 |
CN111382194A (zh) * | 2020-03-09 | 2020-07-07 | 北京如影智能科技有限公司 | 一种获取机械臂操控数据的方法及装置 |
JP2020205608A (ja) * | 2020-08-28 | 2020-12-24 | カシオ計算機株式会社 | 画像処理装置、解析システム、画像処理方法及びプログラム |
JP7188422B2 (ja) | 2020-08-28 | 2022-12-13 | カシオ計算機株式会社 | 画像処理装置、解析システム、画像処理方法及びプログラム |
WO2022075116A1 (ja) * | 2020-10-06 | 2022-04-14 | 国立研究開発法人産業技術総合研究所 | 情報表示装置及び情報表示方法 |
WO2023242981A1 (ja) * | 2022-06-15 | 2023-12-21 | マクセル株式会社 | ヘッドマウントディスプレイ、ヘッドマウントディスプレイシステム、および、ヘッドマウントディスプレイの表示方法 |
WO2024116253A1 (ja) * | 2022-11-28 | 2024-06-06 | 富士通株式会社 | 情報処理方法、情報処理プログラムおよび情報処理装置 |
WO2024116252A1 (ja) * | 2022-11-28 | 2024-06-06 | 富士通株式会社 | 補正方法、補正プログラムおよび情報処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015186531A (ja) | 動作情報処理装置、及びプログラム | |
US11468612B2 (en) | Controlling display of a model based on captured images and determined information | |
Fern'ndez-Baena et al. | Biomechanical validation of upper-body and lower-body joint movements of kinect motion capture data for rehabilitation treatments | |
WO2020054442A1 (ja) | 関節位置の取得方法及び装置、動作の取得方法及び装置 | |
JP6143469B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2023086791A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2018163692A (ja) | アルベドモデルにより拡張現実コンテンツをレンダリングするシステムおよび方法 | |
Kurillo et al. | Real-time 3D avatars for tele-rehabilitation in virtual reality | |
CN110544301A (zh) | 一种三维人体动作重建系统、方法和动作训练系统 | |
US20200097732A1 (en) | Markerless Human Movement Tracking in Virtual Simulation | |
CN107016717A (zh) | 用于患者的透视视图的系统和方法 | |
KR101710000B1 (ko) | 모션 추적 기반 3차원 인터페이스 장치 및 그 방법 | |
JP2005256232A (ja) | 3dデータ表示方法、装置、およびプログラム | |
CN109144252A (zh) | 对象确定方法、装置、设备和存储介质 | |
CN111539300A (zh) | 一种基于ik算法的人体运动捕捉方法、装置、介质及设备 | |
Rallis et al. | An embodied learning game using kinect and labanotation for analysis and visualization of dance kinesiology | |
Baek et al. | Dance experience system using multiple kinects | |
CN106390454A (zh) | 一种现实场景虚拟游戏系统 | |
JP2024016153A (ja) | プログラム、装置、及び方法 | |
Yun et al. | Animation fidelity in self-avatars: impact on user performance and sense of agency | |
Schönauer et al. | Wide area motion tracking using consumer hardware | |
JP2001236505A (ja) | 座標推定方法、座標推定装置および座標推定システム | |
CN112973110A (zh) | 云游戏控制方法、装置、网络电视及计算机可读存储介质 | |
Chessa et al. | Insert your own body in the oculus rift to improve proprioception | |
CN115714000A (zh) | 一种康复训练评估方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180402 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20180828 |