JP2016081121A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2016081121A
JP2016081121A JP2014209105A JP2014209105A JP2016081121A JP 2016081121 A JP2016081121 A JP 2016081121A JP 2014209105 A JP2014209105 A JP 2014209105A JP 2014209105 A JP2014209105 A JP 2014209105A JP 2016081121 A JP2016081121 A JP 2016081121A
Authority
JP
Japan
Prior art keywords
data
unit
adjustment
information processing
reference data
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
Application number
JP2014209105A
Other languages
English (en)
Inventor
敦史 野上
Atsushi Nogami
敦史 野上
優和 真継
Masakazu Matsugi
優和 真継
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014209105A priority Critical patent/JP2016081121A/ja
Publication of JP2016081121A publication Critical patent/JP2016081121A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】姿勢の推定方法に依存することなく、高精度な動作データを得ることを目的とする。
【解決手段】1単位の動作を示す基準データに基づいて、基準データと同一種類の1単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、複数の前記調整データを合成し、合成データを得る合成手段とを有することを特徴とする。
【選択図】図2

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
従来、人物の姿勢を計測する方法が知られており、特許文献1には、距離センサで取得した距離画像から人物姿勢を推定する方法が開示されている。距離画像を用いる人物姿勢の推定は、人物にマーカーを設置する必要が無く、セットアップが容易であるという利点がある。そのため、広く一般ユーザが利用可能であり、ゲームやユーザインターフェースに利用されている。一方、他の人物姿勢の計測方法としては、光学的モーションキャプチャーや、磁気式モーションキャプチャーがある。これらの方法は、高い精度で人物姿勢を計測することができるが、マーカーやセンサを人物に装着する必要があり、準備に手間がかかるという問題がある。このため、利用される分野はCG作成のためのモーションキャプチャー等、専門的な用途に限られている。
距離画像を用いた人物の姿勢推定は、ゲームやユーザインターフェース以外の分野での活用も期待されている。例えば、リハビリテーション分野やスポーツ分野での、人物姿勢計測への利用が期待されている。リハビリテーション分野での利用方法としては、計測した対象人物の姿勢が正しい姿勢となっているかを判定して被験者にフィードバックすることや、経過観察のために姿勢・動作を記録する等の利用形態が考えられる。また、スポーツ分野では、姿勢推定結果をフォームチェックに利用することが考えられる。フォームチェックでは、姿勢推定結果を可視化表示する、人物の各部位の軌跡を確認する、力の加わり方を解析する、等の利用形態が考えられる。
ゲームやユーザインターフェースに比べて、これらの応用先での姿勢推定は高い性能が要求される。ゲームやユーザインターフェースでは、大まかな姿勢が分かれば十分に利用可能であったが、リハビリテーションやスポーツ分野では、人物姿勢の詳細な解析を行うことを目的としているため、微少な姿勢変化や速い動きの計測も必要となる。
米国特許出願公開第2011/0210915号明細書
しかし、距離画像を用いた姿勢推定方法は、光学的モーションキャプチャーや磁気式モーションキャプチャーと比較すると姿勢計測性能が劣るという課題がある。具体的には、人物の関節位置を誤った位置に推定してしまうことと、比較的サンプリングレートが低いという課題がある。サンプリングレートの課題については、光学的モーションキャプチャーが100〜200Hz、又はそれ以上の時間分解能を持つのに対して、距離画像方式では15〜30Hz程度である。従って、リハビリテーションやスポーツフォーム解析等で必要となる微少な動きや早い動きの計測が困難となる場合がある。より具体的には、サンプリング間隔で発生する姿勢変化が計測できないことが課題となる。
また、サンプリングレートが不足している問題は、関節位置を誤って推定した結果(外れ値)を除外する上でも不利となる。例えば、あるフレームである関節位置を誤推定し、時系列上で外れ値となったとする。この場合、その外れ値が前後フレームの推定関節位置から大きく外れていると、簡単に外れ値であることが分かる。しかし、フレーム間隔が大きい(サンプリングレートが低い)と、外れ値と判断することが困難になる。従って、関節位置推定精度の向上の観点からも、サンプリングレートが向上することが望ましい。
本発明はこのような問題点に鑑みなされたもので、姿勢の推定方法に依存することなく、高精度な動作データを得ることを目的とする。
そこで、本発明は、情報処理装置であって、1単位の動作を示す基準データに基づいて、前記基準データと同一種類の1単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、複数の前記調整データを合成し、合成データを得る合成手段とを有することを特徴とする。
本発明によれば、姿勢の推定方法に依存することなく、高精度な動作データを得ることができる。
情報処理装置のハードウェア構成を示す図である。 情報処理装置のソフトウェア構成を示す図である。 動作データ生成処理を示すフローチャートである。 姿勢推定処理を説明するための図である。 単位データ抽出処理の説明図である。 単位データの補正処理を説明するための図である。 調整パラメータを説明するための図である。 調整データ生成処理における詳細な処理を示すフローチャートである。 全体の調整パラメータ算出処理を説明するための図である。 単位データ選択処理を示すフローチャートである。 動作データの一例を示す図である。 単位データ間における姿勢の時間軸方向のずれを示す図である。 単位データ及び基準データのx座標位置の時間変化を示す図である。 単位データ及び基準データのx座標位置の時間変化を示す図である。
以下、本発明の実施形態について図面に基づいて説明する。
(第1の実施形態)
第1の実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、ある動作が1単位として繰り返される繰り返し動作を示す距離画像に基づいて、対象物の姿勢を推定する。ここでは、情報処理装置が、繰り返し動作としての人物の歩行動作における姿勢を推定する場合を例に説明する。なお、対象物は、人物に限定されるものではない。また、推定される姿勢は、繰り返し動作に係る姿勢であればよく、その種類は、実施形態に限定されるものではない。
図1は、第1の実施形態に係る情報処理装置100のハードウェア構成を示す図である。情報処理装置100は、CPU101と、ROM102と、RAM103と、HDD104と、表示部105と、入力部106と、センサ部107とを有している。CPU101は、ROM102に記憶された制御プログラムを読み出して各種処理を実行する。RAM103は、CPU101の主メモリ、ワークエリア等の一時記憶領域として用いられる。HDD104は、データや各種プログラム等各種情報を記憶する。なお、情報処理装置100の機能や処理は、CPU101がROM102又はHDD104に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
表示部105は、各種情報を表示する。入力部106は、ユーザ操作を受け付ける。センサ部107は、対象物までの距離を測定する測距センサである。本実施形態に係るセンサ部107は、対象物としての人物を含む環境の距離画像を得る。センサ部107は、照射した光の到達時間を基に距離を計算する方式や、パターン光を投影して、パターンの変形から距離を計算する方法等により、距離画像を得る。センサ部107は、これらの手法によって距離画像を撮影するカメラ装置である。
図2は、情報処理装置100のソフトウェア構成を示す図である。情報処理装置100は、姿勢推定部200と、動作データ受付部201と、単位データ抽出部202と、指示受付部203と、基準データ選択部204と、パラメータ算出部205と、調整部206と、合成部207とを有している。姿勢推定部200は、センサ部107により得られた距離画像の入力を受け付ける。本実施形態に係る姿勢推定部200は、繰り返し動作としての歩行動作に係る距離画像の入力を受け付ける。そして、姿勢推定部200は、距離画像の各フレームから人物姿勢を推定する。人物姿勢の推定には、例えば特許文献1に示されるような従来の方法を用いればよい。なお、本実施形態においては、姿勢推定部200は、人物の各関節位置の座標の情報を人物姿勢として得る。
動作データ受付部201は、人物の動作データとして、姿勢推定部200により得られた人物姿勢推定結果の時系列データの入力を受け付ける。ここで、人物推定結果の時系列データは、歩行動作を示すデータであり、同一動作の繰り返しを示す連続データの一例である。単位データ抽出部202は、動作データ受付部201が受け付けた動作データから、繰り返し動作の基本動作、すなわち1単位の動作に対応する動作データを抽出する。以下、1単位の動作に対応する動作データ、すなわち1単位の動作を示す動作データを単位データと称する。本実施形態に係る単位データ抽出部202は、歩行の1単位の動作データを単位データとして抽出する。指示受付部203は、入力部106に対しユーザにより入力された各種指示を受け付ける。
基準データ選択部204は、単位データ抽出部202により抽出された単位データのうち1つの単位データを基準データとして選択する。ここで、基準データとは、複数の単位データを調整する際の基準となる単位データである。すなわち、基準データは、単位データと同一種類の1単位の動作を示すデータである。パラメータ算出部205は、基準データに基づいて、単位データの調整に利用する調整パラメータを算出する。調整部206は、調整パラメータに基づいて、単位パラメータの調整を行う。以下、調整部206による調整後の単位データを、調整データと称する。合成部207は、繰り返し動作に対応する複数の調整データを合成し、合成データを得る。
図3は、情報処理装置100による動作データ生成処理を示すフローチャートである。S300において、姿勢推定部200は、距離画像の入力を受け付け、距離画像の各フレームに基づいて、各フレームの人物の姿勢を推定する。姿勢推定部200は、姿勢推定結果と、推定対象の距離画像を受け付けた時刻とを対応付けて、動作データとして動作データ受付部201に出力する。図4は、姿勢推定処理(S300)を説明するための図である。図4には、3次元座標系400における姿勢推定結果410を示している。図4に示すように、本実施形態においては、姿勢推定結果410は、人体の関節の3次元座標値を持つ。図4には、関節として、右膝関節411及び左膝関節412を示すが、推定すべき関節の種類及び数は、特に限定されるものではない。さらに、姿勢推定部200は、頭部413のように、人体の部位の位置も、関節位置として推定するものとする。
また、3次元座標系400の原点は特に限定されるものではない。3次元座標系400は、例えば、人物が存在する環境中のある位置を原点とした座標系でもよいし、センサ部107のカメラ装置を原点としたカメラ座標系でもよい。
図3に戻り、S301において、動作データ受付部201は、姿勢推定部200から動作データを受け付ける。S302において、動作データ受付部201は、所定時間分の動作データを受け付けたか否かを確認する。ここで、所定時間は例えばHDD104等に予め設定されているものとする。動作データ受付部201は、所定時間分の動作データを取得すると(S302でYes)、処理をS303へ進める。S303において、単位データ抽出部202は、動作データから、単位データを抽出する(抽出処理)。
図5は、単位データ抽出処理(S303)の説明図である。本実施形態においては、歩行動作は、センサ部107の計測範囲内において、センサ部107に向かってくる、センサ部107を横切る、足踏みをする、トレッドミル上で歩行する等により行われる。また、S302において評価される所定時間には、複数回の歩行周期が含まれるような時間が設定されているものとする。これにより、動作データ受付部201には、複数回の歩行周期の人物姿勢推定結果、すなわち複数単位の歩行の人物推定結果が、動作データとして入力される。図5に示す動作データ500は、3周期分(3単位分)の歩行に対して得られたものである。ここで、動作データ500は、動作の繰り返しを示す連続データの一例である。この場合、単位データ抽出部202は、動作データ500から、3つの単位データ510a,510b,510cを抽出する。単位データ抽出部202は、単位データの開始フレームと終了フレームを検出することにより、各単位データを抽出する。
本実施形態においては、単位データ抽出部202は、右足が接地したタイミングのフレームを開始フレーム及び終了フレームとして検出する。すなわち、右足が接地したタイミングのフレームは、開始フレーム及び終了フレームを兼ねる。図5に示す例においては、フレーム520,521,522が、右足が接地したタイミングのフレームである。この場合、フレーム520〜521が、単位データ、すなわち第1データ510aとして抽出される。また、フレーム521〜522が、単位データ、すなわち第2データ510bとして抽出され、フレーム522〜523が、単位データ、すなわち第3データ510cとして抽出される。
なお、開始フレーム及び終了フレームは、右足が接地したタイミングのフレームに限定されるものではない。他の例としては、単位データ抽出部202は、他のセンサ情報を利用して開始フレーム及び終了フレームを特定してもよい。例えば、床面に接地した不図示の圧力センサが右脚の正確な接地タイミングを検出し、単位データ抽出部202は、その時間の最近傍フレームを開始フレーム及び終了フレームとしてもよい。また、単位データ抽出部202は、全身の姿勢が所定の姿勢と判定されたタイミングを開始フレーム及び終了フレームとしてもよい。また、繰り返し行われるスクワット動作においては、単位データ抽出部202は、直立した時点の姿勢開始フレーム及び終了フレームとして検出してもよい。また、単位データ抽出部202は、フォーム解析等では、動作が始まるタイミング、例えば、全身が動き出すフレームを開始フレームとしてもよい。
単位データ抽出部202はさらに、単位データの補正を行う。図6は、単位データを補正する処理を説明するための図である。図6(A),図6(B),図6(C)には、それぞれ、単位データ510a,510b,510cにおける、右膝関節のx座標位置の時間
経過のグラフを示している。グラフの横軸は時間、縦軸はx座標を示す。図6(A)にお
いては、単位データ510aに含まれる各フレームにおける関節位置のx座標をバツ印で
示している。同様に、図6(B)、図6(C)では、それぞれ関節位置のx座標を黒四角
印、白三角印で示している。各グラフは、右膝関節のx軸(垂直上向き)の位置変化で、
歩行に応じて膝位置が変化する様子を示している。
各単位データは、人物姿勢に含まれる各関節の3次元座標x,y,zと、各フレームの
時刻tの情報を含んでいる。総フレーム数Nの関節番号jの単位データDjは、(式1)のように表される。
Figure 2016081121
各単位データは、異なる時間から切り出されたデータであるため、各単位データの開始フレーム時刻t1がそれぞれ異なる。従って、単位データ抽出部202は、すべての単位データでt1=0となるように、t1〜tNを時間合わせしておくこととする。具体的には、単位データ抽出部202は、各単位データのt1〜tNから、t1を減算したものを単位データの時間情報とする。また、歩行動作のように移動を伴う動作では、1歩行周期で移動する移動量だけ進行方向の座標値がずれる。単位データ抽出部202は、このずれも単位データを作成した時点で補正してもよい。
単位データ抽出部202は、例えば、ある1つの単位データの腰位置を基準にして、他の単位データの位置を補正する。具体的には、単位データ抽出部202は、ある1つの単位データの開始フレームt1の腰関節座標(xhip 1、yhip 1、zhip 1)と、他の動作データの開始フレームt1の腰間関節座標が一致するように、単位データ間のオフセットベクトルを求める。そして、単位データ抽出部202は、オフセットベクトルを用いて、各単位データを補正しておく。
なお、本実施形態においては、このように、時間軸方向及び位置の関節位置の大まかな補正は単位データ抽出部202が行うこととするが、他の例としては、この補正は、パラメータ算出部205が行うこととしてもよい。単位データは、以上の処理により作成される。単位データは、各関節の3次元座標、各フレームの時刻を含み、複数の単位データ間の時間軸と位置が簡易に調整された情報である。
さらに、動作データについて補足する。本実施形態に係る情報処理装置100が処理対象とする動作データのフレーム間隔は各フレーム間で異なるものとしている。例えば、図6(A)に示すフレーム間隔w1,w2は、連続するフレームの間の時間であるが、フレーム間隔w1,w2は、異なっている。これは、距離画像の取得や、各フレームの距離画像から姿勢を推定する処理の処理時間が、それぞれのフレームで異なることが原因となる。例えば、姿勢推定処理は、人物領域のサイズ(画素数)によって、処理速度が変化する。本実施形態に係る情報処理装置100は、このようにフレーム間隔が異なる単位データを統合することにより、時間軸上での超解像を行う。
他の例としては、情報処理装置100は、フレーム間隔が一定の動作データを処理対象としてもよい。例えば、センサ部107が同じフレーム間隔で計測を行い、姿勢推定部200が動作データを生成したとする。また、フレーム間隔(サンプリング間隔)は同じであっても、動作を計測するタイミングが異なるとする。このような状況では、実際の動作の開始タイミングと開始フレームには、単位データ毎にずれが生じる。このような動作データを処理対象とする場合には、情報処理装置100は、以下のような処理を行うものとする。
すなわち、情報処理装置100は、動作の開始タイミングを外部センサから取得する等の方法により計測し、その時刻から開始フレームのずれ時間Δtを開始フレームの時刻t0とする。この結果、各単位データは、それぞれ異なる開始フレーム時刻t0を持つようになる。全てのサンプリング間隔が一定であることを想定しているのでこれらの動作データを合成すると、このずれの時間だけシフトしたデータを合成することになり、相互にサンプリング間隔を補間するようになって、サンプリングレートが向上する。
図3に戻り、S303の処理の後、S304において、基準データ選択部204は、指示受付部203が受け付けた選択指示を受け付ける(指示受付処理)。そして、基準データ選択部204は、選択指示に従って、S303において、動作データから抽出された複数の単位データのうちの1つの単位データを、基準データとして選択する(選択処理)。具体的には、情報処理装置100は、単位データをユーザに確認させるために、表示部105にデータを表示する。そして、ユーザは、単位データを確認し、入力部106を用いて、複数の単位データの中から、計測対象の動作を良く表している単位データを選択する。これに対応して、指示受付部203は、選択された単位データを示す選択指示を受け付ける。この場合、表示部105は、図6に示すグラフのように単位データにおける関節位置の軌跡を表示してもよく、また他の例としては、図4に示すように、人物の姿勢全体の時系列データをアニメーションで表示してもよい。
次に、S305において、パラメータ算出部205は、S303において抽出された複数の単位データ(基準データを除く)の中から1つの単位データを処理対象として選択する。次に、S306において、パラメータ算出部205は、基準データに基づいて、単位データを調整するための調整パラメータを算出する(パラメータ算出処理)。さらに、調整部206は、調整パラメータに基づいて、単位データを調整し、調整データを得る(調整処理)。
図7は、調整パラメータを説明するための図である。図7に示す701は基準データ、702は基準データ以外の単位データを3次元座標系400中に表示した図である。基準データ701と単位データ702はほぼ同じ動作を示しているが、矢印Cの方向への全体的な位置ずれや、矢印Dの方向への部分的な(関節の)位置ずれが生じている。調整パラメータは、このような微少なずれを修正するためのパラメータであり、パラメータ算出部205は、単位データを基準データに一致させるようにバイアスやスケーリングを行う調整パラメータを算出する。
図8は、調整データ生成処理における詳細な処理を示すフローチャートである。S800において、パラメータ算出部205は、基準データに対する単位データの全体の調整パラメータとして、基準データに対する各単位データの誤差が最少となるような調整パラメータを算出する。図9は、全体の調整パラメータ算出処理(S800)を説明するための図である。図9(A)〜(D)の各グラフは、単位データにおける右膝関節のx軸(垂直上向き)の位置変化、すなわち歩行動作に応じて膝位置が変化する様子を示している。
図9(A)のグラフは、第1データ510aの各フレームのx座標(バツ印のプロット)と、第3データ510cの各フレームのx座標(白三角印のプロット)と示している。以下の説明で、第1データ510aが基準データとして選択され、単位データ510cが処理対象として選択されている場合を例に、全体の調整パラメータ算出処理について説明する。図9(A)のグラフに示されるように、第3データ510cのx軸方向の位置変化は、基準データ510aに類似しているものの、全体的に−x方向にバイアスがかかったデータ系列となっている。
図9(C)には、図9(A)の単位データ510a,510cをそのまま合成した場合に得られる合成データを丸印のプロットで示している。丸印のプロットは、単位データ510a,510cを同じデータ系列にまとめたものである。この合成データは、2つの単位データを合成したものであるため、時間的な解像度は向上している。しかし、元の単位データにバイアスが生じている状態で合成しているため、合成データが示す動作の挙動は、元の単位データ510a,510c等が示す挙動や真の動作の挙動とは異なるものとなっている。さらに、図9(C)に示す破線911は、合成データの移動平均を示している。この移動平均は、元の単位データ510a,510cのいずれからも乖離した挙動を示すデータとなっており、合成データが誤った動作を示していることがわかる。つまり、単位データ間にずれが生じた状態のデータを合成しても、人物の動作試行毎の微妙な動作不一致により、望ましい結果を得ることができない。
これに対し、本実施形態においては、パラメータ算出部205は、図9(A)の基準データ510aと単位データ510cの位置に関するバイアス成分を調整する、全体の調整パラメータ901を算出する。具体的には、パラメータ算出部205は、基準データ510aと単位データ510cの誤差が最小となるような、全体の調整パラメータ901を算出する。以下、説明の簡略化のため、x軸方向の調整パラメータの算出についてのみ説明するが、各関節は、3次元座標で表されるため、パラメータ算出部205は、y、zのバイアスを調整する、全体の調整パラメータもそれぞれ算出する。
以下、パラメータ算出部205の処理の詳細について説明する。人物の全関節数をj、関節番号をj(1<j<J)、単位データに含まれるフレーム数をN、単位データのn番目のフレームをn(1<n<N)とすると、基準データは、(式2)の関数で表される。
Figure 2016081121
この関数は、基準データの時刻tにおける関節jのx座標値を出力する。(式2)の関数は、例えば、基準データから区分線形関数で作成される。図9(A)には、基準データ510aの区分線形関数を破線で図示している。なお、基準データのデータ区間外のtが入力された場合には、外挿したx座標値を出力するか、以下の誤差計算を行わない時間領域と設定することで対応する。
調整パラメータを算出する対象となる単位データの関節jの時間tjとx座標値xjは、N個のフレームがある。したがって、単位データは、(式3)のように表される。
Figure 2016081121
また、ある関節jにおける基準データと単位データの誤差εjは、(式4)のように表される。
Figure 2016081121
ここで、aとbは、位置に関する、全体の調整パラメータである。(式4)は、ある1つの関節についての誤差であり、動作全体の(全身の)誤差εは、(式5)のように表される。
Figure 2016081121
この誤差を最小化する調整パラメータa、bを求めることで、ある単位データを基準データに整合させる全体の調整パラメータが算出される。パラメータ算出部205は、例えば最小二乗法により全体の調整パラメータa、bを算出する。
図8に戻り、S800の処理の後、S801において、調整部206は、全体の調整パラメータa、bで、単位データを調整する。これにより、ある関節jについて(式6)に示す調整データが得られる。
Figure 2016081121
図9(B)には、第3データ510cを、全体の調整パラメータにより調整することにより得られた調整データの各フレームのx座標(白三角印のプロット)と、基準データ510aの各フレームのx座標(バツ印のプロット)とを重畳表示している。調整データは、後述のS308において、基準データと合成される。図9(D)は、調整データと基準データの合成データの各フレームのx座標(白丸印のプロット)を示す図である。また、図9(D)の破線は、合成データの移動平均を示している。合成データは、元の単位データに比べ、サンプリングレート(時間解像度)が向上しており、速い動きや、微少な動きも計測できる可能性が向上している。ここでは、説明のため2つの単位データの合成のみを図示しているが、さらに多くの単位データを合成することで、サンプリングレートを向上させることができる。また、図9(C)と比べると、図9(D)から、調整パラメータにより単位データを調整した上で単位データを合成することにより、動作の挙動をとらえた好ましい結果が得られることがわかる。
S800及びS801においては、情報処理装置100は、単位データ全体の調整パラメータa、bを算出し、調整データを生成した。これは、例えば、図7に示す矢印Cの方向への全体的な位置ずれを調整するためのパラメータである。しかしながら、このような全体的な位置ずれが調整された場合においても、図7に示す矢印Dの方向への左腕パーツの位置ずれのように、部分的な位置ずれが十分に修正されていない場合がある。本実施形態に係る情報処理装置100は、以下の処理により、このような部分的な位置ずれの修正を行う。人物が複数回同じ動作をすると、全身の位置ずれのみならず、各パーツ固有のずれが生じる。従って、さらに人物のパーツごとに調整パラメータを算出して、動作データを調整することが好適である。
図8に戻り、S801の処理の後、S802において、パラメータ算出部205は、姿勢推定に利用された複数のパーツの中から1つのパーツを処理対象として選択する。次に、S803において、パラメータ算出部205は、処理対象のパーツの部分の調整パラメータを算出する。次に、S804において、調整部206は、パーツ(部分)の調整パラメータに基づいて、パーツの調整データをさらに調整し、調整データを生成する。
パラメータ算出部205は、全体の調整パラメータによる調整後のデータ(調整データ)、すなわち(式6)に基づいて、パーツ(部分)の調整パラメータを算出する。パーツの単位は、例えば、腕、脚等の複数の関節からなる人物部位又は単独の関節とする。パラメータ算出部205は、(式7)に示す誤差を最小化するパーツ調整パラメータapq、bpqを算出することにより、左腕パーツに関する調整パラメータを算出する。なお、左腕に関係する関節の番号をp(左手首)、q(左肘)とする。
Figure 2016081121
そして、S803において、パラメータ算出部205は、算出したパーツ調整パラメータapq、bpqと(式6)の動作パラメータの左手首、左肘から、新しい調整データを算出する。
以上のように、パーツ単位で調整パラメータを算出し、動作データを調整することで、各動作データが、基準動作データと整合するようになる。他の例としては、情報処理装置100は、さらに細かい調整レベルとして、各関節の各フレーム単位(tj n、xj n)、すなわち、データの1点ごとに基準データと整合させるためのxj nに加えるバイアスを算出してもよい。ただし、データ点ごとに基準動作との誤差最小化となる調整パラメータを算出すると、基準データにオーバーフィッティングして、単に基準データのフレーム間を線形補間する調整データが作成されてしまう。そのため、オーバーフィッティングが発生しないように、動作データの前後のフレームから大きく変化しないような拘束条件をつける、所定以上のバイアスが加わらないような制限を与える、等の工夫が必要である。
次に、S805において、調整部206は、姿勢推定に利用されたすべてのパーツの調整データの生成が完了したか否かを確認する。調整部206は、すべてのパーツの調整データの生成が完了した場合には(S805でYes)、調整データ生成処理(S306)を完了し、処理をS307(図3)へ進める。調整部206は、未処理のパーツが存在する場合には(S805でNo)、処理をS802へ進める。この場合、S802において、パラメータ算出部205は、未処理のパーツを選択する。
そして、S307において、調整部206は、すべての単位データの調整データの生成が完了したか否かを確認する。調整部206は、すべての単位データの調整データの生成が完了した場合には(S307でYes)、処理をS308へ進める。調整部206は、未処理の単位データが存在する場合には(S307でNo)、処理をS305へ進める。この場合、S305において、パラメータ算出部205は、未処理の単位データを選択する。
S308において、合成部207は、調整データを合成し、合成データを生成する(合成処理)。そして、合成部207は、合成データを例えば表示部105等に出力する。合成部207は、図8(D)のプロットのように、複数の動作データを合成し、時間解像度が向上したデータ系列として、合成データを表示してもよいし、図8(D)の破線のように、移動平均として合成データを表示してもよい。このように、合成データの出力形式は実施形態に限定されるものではない。
サンプリングレートが向上した合成データでは、姿勢推定の誤推定によって生じる外れ値も検知しやすくなる。従って、合成部207は、合成動作データに対して外れ値を検出し、これを除去してから、合成データを出力してもよい。外れ値の除去方法は、既存の時系列データにおける外れ値除去方法を用いればよく、詳細な説明は省略するが、人物の動きのデータである前提を利用する等の方法を導入することが好ましい。例えば、合成部207は、人物の動きとしてあり得ない速度を示す関節位置を削除する等すればよい。また、合成部207は、関節間距離が人物の各関節間距離としてふさわしくないようなデータを削除する等してもよい。
以上のように、本実施形態に係る情報処理装置100は、反復動作を示す動作データにおいて、1単位の動作データ(単位データ)を抽出し、各関節の位置を調整した上で、合成することにより動作データを得る。これにより、サンプリングレートを向上させることができる。その結果、単独の動作データ(単位データ)では確認できなかった動作の挙動をとらえた動作データを出力することができる。したがって、外れ値の除去も精度よく行うことができる。
さらに、情報処理装置100の効果を説明すべく、まず、1回のみの計測で動作データを取得した場合の問題点を説明する。本実施形態のセンサ部107及び姿勢推定部200の処理は、サンプリングレートが計測対象動作に対して不十分であることを想定した処理である。センサ部107及び姿勢推定部200の処理はまた、各フレームの姿勢推定結果には誤りが含まれていること、さらに試行ごとの人物の動作自体に揺らぎが含まれていることも想定した処理である。このような想定においては、1回の動作計測において対象の動作を正確に計測できない場合がある。具体的には、姿勢変化の挙動が正確に計測できない、得られた関節位置の信頼性を評価できない、という問題が発生する。
例えば、図6(b)の第2データ510b及び図6(c)の第3データ510cにおいては、時間tα付近に−x方向の変位が観測されている(例えばプロットA,B)。しかし、単位データ510aのサンプリングレートが不足しているため、tα付近の姿勢推定結果が得られておらず、正しく動作の挙動が得られていない。一方、第3データ510cのプロットBは、偶然、姿勢推定の誤推定により出現した挙動の可能性がある。しかしながら、位置の変化に対して前後のフレームとの時間間隔が広いため、あり得る位置変化なのか、外れ値として除去すべきなのかは、1回のみの計測結果から判断するのは困難である。本実施形態に係る情報処理装置100は、これらの問題を解決するために、複数の単位データを合成して合成データを作成し、仮想的にサンプリングレートを向上させた動作データを作成する。
しかし、単に複数の単位データを重ね合わせただけでは、以下のような問題が発生する。まず、複数の単位データは、同じ人物の同じ内容の動作(例えば歩行の1周期)を計測しているが、それぞれ異なる時刻に計測された異なる試行である。人間が複数回同様の動作を行ったとして、試行毎に一致する動作を行うことは困難である。従って、姿勢推定処理の精度以前に、計測対象である元々の動作・姿勢が微妙に異なるという問題がある。この結果は、試行毎の動作データに、全身のグローバルな位置ずれや、腕や脚等ローカルな部位の位置ずれとして現れる。ただし、本実施形態においては、前述したように、全身の大きな位置ずれについては、動作データを作成する時点で大まかな補正が行われている。また、動作の姿勢位置が、試行毎に異なるのと同様に、動作のタイミングも試行毎に異なる。試行毎の時間的なずれは、動作全体の時間の長短や、腕や脚等部分的な動作の動作タイミングのずれとして現れる。
これに対し、情報処理装置100のパラメータ算出部205は、複数の単位データについて、人物が動作を複数回行うことにより発生する動作間の差の影響をできる限り取り除くために、各単位データの調整パラメータを算出する。そして、調整部206が、調整パラメータを用いて各単位データを調整する。これにより、情報処理装置100は、各種の変動要因を考慮した上で、複数回の動作データを統合して、平均的・代表的な動作データを作成することができるようになる。すなわち、情報処理装置100は、複数の動作を合成することで、単体の単位データよりも、時間軸方向に超解像化され、姿勢推定ノイズの除去も行いやすい動作データを得ることができる。
リハビリテーションでは、同じ動作を繰り返して計測する状況がある。例えば、歩行動作はリハビリテーションにおいて重要な動作の一つであるが、歩行動作は反復的な動作である。また、スクワット等定型動作を複数回実施して、姿勢を評価するような場合もある。一方、スポーツのフォーム解析においても、繰り返し同じフォームの動作を行い、フォームチェックを行うというような状況は、ごく自然な状況といえる。
これらの状況では、ある同じ動作を示す動作データを複数回取得することが容易である。また、複数回の動作実行後に姿勢計測結果を出力し、解析や詳細な可視化を行うような使い方も想定できることから、必ずしもリアルタイムに姿勢計測結果を出力しなくてもよいような状況にある。このようなケースにおいて、本実施形態に係る情報処理装置100は、同様の動作を計測した複数の動作データを合成することで、その動作の代表的な動作データを作成することができる。すなわち、情報処理装置100は、仮想的にサンプリングレートが向上した動作データを取得することができる。したがって、情報処理装置100は、1回の動作データ取得では正しく動作データが得られないような対象動作についても、精度のよい動作データを取得できるようになる。
次に、第1の実施形態に係る情報処理装置100の変更例について説明する。初めに基準データ選択に係る変更例について説明する。情報処理装置100による基準データを選択する処理は、実施形態に限定されるものではない。基準データ選択に係る変更例として、第1〜第5の変更例を示す。第1の変更例としては、基準データ選択部204は、例えば、単純にランダムに1つの単位データを基準データとして選択してもよい。
また、第2の変更例としては、基準データ選択部204は、単位データの特徴量に基づいて、信頼性が高いと推定される単位データを基準データとして自動的に選択してもよい。姿勢推定処理では、誤推定が発生する可能性がある。そこで、基準データ選択部204は、できるだけ誤推定を含まない単位データを自動的に選択するのが好ましい。具体的には、基準データ選択部204は、各単位データに対してデータの信頼性を評価する。基準データ選択部204は、例えば人物の姿勢としてあり得ない姿勢となっているフレームを含んでいる場合に、信頼性が低いと判断する。あり得ない姿勢としては、各関節間の距離が人物の関節間として正しいか、を評価する等の方法がある。
また、基準データ選択部204は、関節位置の移動軌跡が人物のあり得る動きの速度を上回るような挙動を示している場合は信頼性が低いと判断する。また、同様の趣旨であるが、基準データ選択部204は、高周波ノイズが多い移動軌跡を含む場合は信頼性が低いとしてもよい。基準データ選択部204は、このような信頼性評価を各単位データに対して実施して、最も信頼性が高い単位データを基準データとして選択する。
また、第3の変更例としては、基準データ選択部204は、すべての単位データを順次、基準データの候補として設定し、基準データ候補を用いて得られた調整データと基準データ候補の間の差分を算出する(差分算出処理)。そして、基準データ選択部204は、最小となる基準データ候補を基準データとして選択してもよい。図10は、本例に係る基準データ選択部204による単位データ選択処理を示すフローチャートである。S1000において、基準データ選択部204は、複数(M個)の単位データの中から1つの単位データを基準データ候補として設定する。次に、S1001において、204は、M個の単位データのうち、基準データ候補として設定された単位データ以外の複数の単位データの中から1つの単位データを処理対象として選択する。
次に、S1002において、パラメータ算出部205は、基準データ候補と単位データの誤差が小さくなるように、単位データを調整する調整パラメータを算出し、調整部206は、調整パラメータにより調整データを得る。次に、S1003において、基準データ選択部204は、調整データと基準データ候補の間の差分を算出する。次に、S1004において、基準データ選択部204は、S1001〜S1003の処理をM−1回繰り返したか否かを確認する。すなわち、基準データ選択部204は、基準データ候補以外の単位データすべてを処理対象として、差分を算出したか否かを確認する。
基準データ選択部204は、M−1回の繰り返しが完了した場合には(S1004でYes)、処理をS1005へ進める。基準データ選択部204は、M−1回の繰り返しが完了していない場合には(S1004でNo)、処理をS1001へ進める。この場合、S1001において、基準データ選択部204は、未処理の単位データを1つ選択する。S1005において、基準データ選択部204は、各単位データに対して得られた複数の差分の総和を差分データとして基準データ候補に対応付けてRAM103等の記憶部に蓄積する。次に、S1006において、基準データ選択部204は、S1001からS1005の処理をM回繰り返したか否かを確認する。すなわち、基準データ選択部204は、すべての単位データを基準データ候補として設定したか否かを確認する。
基準データ選択部204は、M回の繰り返しが完了した場合には(S1006でYes)、処理をS1007へ進める。基準データ選択部204は、M回の繰り返しが完了していない場合には(S1006でNo)、処理をS1000へ進める。この場合、S1000において、基準データ選択部204は、未処理の単位データを基準データ候補として設定する。S1007において、基準データ選択部204は、M個の単位データそれぞれを基準データ候補としたときの差分データを参照し、差分の総和が最小となる基準データ候補(単位データ)を基準データとして選択する。
また、第4の変更例としては、基準データ選択部204は、第3の変更例の処理において、すべての単位データを基準データ候補とするのにかえて、一部の単位データを基準データ候補として、S1000〜S1006のループ処理を繰り返してもよい。この場合、基準データ選択部204は、M個の全動作データからML個(ML<M)単位データを選択する。そして、基準データ選択部204は、S1006におけるループ回数MをMLとする。また、基準データ選択部204は、第3の変更例において説明したように、各単位データの信頼性を評価して、信頼性上位ML個の単位データを選択してもよい。また、基準データ選択部204は、第1の変更例において説明したように、ランダムにML個の単位データを選択してもよい。ループ処理の対象の単位データをML個に限定することで、処理の高速化が実現できる。
また、第5の変更例としては、基準データ選択部204は、ランダムな順序で単位データを基準データ候補に順次設定し、差分が閾値以下となった時点で、このときの基準データ候補(単位データ)を基準データとして選択してもよい。このようにループ処理を途中で打ち切ることにより、処理の高速化を図ることができる。
次に、調整パラメータ算出に係る変更例について説明する。情報処理装置100による調整パラメータを算出する処理は、実施形態に限定されるものではない。調整パラメータ算出に係る変更例として、第6〜第8の変更例を示す。
第6の変更例としては、パラメータ算出部205は、誤差最小化による調整パラメータa、bの算出に際し、単位データの各データ点(tj n、xj n)の、基準データからのばらつき(各データ点の信頼性、基準データとの類似性)を考慮してもよい。具体的には、パラメータ算出部205は、各データ点に重みを付けた重み付き推定を実施する。例えば、パラメータ算出部205は、ある単位データの各データ点について、基準データとの差分を算出し、その差分の分布から、各データ点のp値を算出する。パラメータ算出部205は、このp値に基づいて、各データ点の信頼度を設定し、重み付き最小二乗で調整パラメータa、bを算出する。例えば、あるデータ点(tj n、xj n)の誤差が、他の誤差と比べて著しく大きい場合には、p値は小さな値を示す。このとき、パラメータ算出部205は、p値の値を元に、このデータ点の誤差が数5等の全体誤差に与える影響を小さくする。これにより、基準データから大きく外れた単位データのデータ点に引きずられることなく、適切な調整パラメータa、bを算出することができる。
また、第7の変更例としては、パラメータ算出部205は、あるデータ点の時間tj nを取得し、他の単位データのtj n近傍のxj nを収集することにより、ある時間tj n付近の関節位置の分布を得てもよい。そして、パラメータ算出部205は、現在、対象としているデータ点のxj nの重みを、この分布とxj nから算出する。具体的には、パラメータ算出部205は、xj nが分布の中心付近に存在すれば、信頼できるデータ点であるとして、重みを大きくする。一方、パラメータ算出部205は、分布から外れると信用できない点として重みを小さくする。このように、パラメータ算出部205は、各データ点について、重みを設定した上で、重み付き最小二乗により調整パラメータを算出してもよい。また、さらに、あるデータ点に関する他の動作データを含めた関節位置の分布を算出する場合、パラメータ算出部205は、分布が広い(ばらつきが大きい)データ点の重みを小さくして調整パラメータ算出するようにしてもよい。
また、第8の変更例としては、第1の実施形態においては、3次元空間の各軸それぞれについてバイアスとスケールの調整パラメータを算出したが、調整パラメータの種類は、実施形態に限定されるものではない。例えば、パラメータ算出部205は、3次元空間中での回転成分も調整するような調整パラメータを算出してもよい。パラメータ算出部205は、例えば以下の処理により、回転成分も含む調整パラメータの算出を行う。すなわち、(式8)に示される基準動作データの関節jについて、時刻tの3次元座標(x、y、z)を出力する関数に対し、調整パラメータを算出するために最小化する関節jの誤差は、(式9)のように表される。
Figure 2016081121
Figure 2016081121
ここで、A、B及びXはそれぞれ(式10)、(式11)及び(式12)で表される。
Figure 2016081121
Figure 2016081121
Figure 2016081121
パラメータ算出部205は、(式10)及び(式11)のa〜i、Tx、Ty、Tzを調整パラメータとして算出する。
また、第9の変更例としては、情報処理装置100による調整データ合成処理は、実施形態に限定されるものではない。合成部207は、例えば、調整データを重み付けした上で、合成を行うこととしてもよい。合成部207は、例えば、第2の変更例において説明した信頼性評価を行い、各調整データの元の単位データの信頼性に基づいて、各調整データに重みを付ける。重みは、外れ値除去に利用したり、移動平均(重み付き移動平均とする)等によるデータの統合に利用したりすることができる。重みの設定方法としては、合成部207は、基準データとした単位データに重みを付けてもよい。
特に、基準データの設定方法として、実施形態において説明したような、ユーザにより選択された単位データとする方法や、第3の変更例において説明したような、すべての単位データを基準データ候補として評価する方法を用いたとする。この場合には、基準データの動作は、比較的信頼できるものと考えることができる。このような場合には、特に本例のように、重み付けを行うことが好適である。また、合成部207は、これらの信頼性が低い等の理由により、合成する対象にふさわしくないと判断できる単位データは、合成する対象から除外してもよい。
また、合成部207は、調整パラメータにより調整する調整量が、閾値以上となる場合には、その単位データの信頼性は低いとし、重みを小さくしてもよい。調整量が大きいということは、基準データに対して、その単位データが大きく異なる動作を示しており、基準データと整合させるために、大きな調整量が必要であったと考えられる。従って、調整量を元に重み付けを行うことで、基準データと大きく異なる単位データの重みを小さくした合成を行うことができる。
また、合成の対象から除外する単位データは、単位データ全体であってもよく、また他の例としては、単位データの一部であってもよい。部分的な除外方法としては、例えば、ある腕や脚等のパーツ単位が考えられる。また他の例としては、合成部207は、第4の実施形態において説明するようなキーフレームを境界とする部分のデータ毎に、合成データへの採択と除外を判断してもよい。
また、合成部207は、算出した調整パラメータの分布を元に、各単位データの重みを設定してもうよい。この場合、同様の動作を示す単位データの調整パラメータは、ある程度同じような傾向を持つと仮定する。従って、算出した調整パラメータa、bは、概ね同じような値が得られることが期待できるとする。この場合、他の単位データの調整パラメータから、著しく離れた調整パラメータが得られた単位データは信頼性が低いと考えられる。これに対応し、合成部207は、全動作データの調整パラメータa、bから、パラメータの分布を算出し、その分布から大きく外れるような単位データの重みを小さくするものとしてもよい。
第10の変更例としては、本実施形態に係る情報処理装置100は、センサ部107と姿勢推定部200を含み、情報処理装置100の中で各フレームの距離画像から姿勢推定を実施したが、これに限定されるものではない。例えば、予め、他の装置等において姿勢推定処理が実行され、情報処理装置100は、姿勢推定結果を適当なストレージデバイスに格納していてもよい。この場合、情報処理装置100は、格納されている姿勢推定結果を動作データとして受け付けて、処理を行えばよい。
第11の変更例としては、情報処理装置100は、人物推定結果として人物の関節位置を特定したが、これに限定されるものではない。情報処理装置100は、人物推定結果として例えば人物の関節の角度を特定してもよい。この場合、情報処理装置100は、単位データの関節角度と基準データの関節角度の時間変化が近づくように調整パラメータを算出すればよい。
(第2の実施形態)
第1の実施形態においては、連続動作に対応する動作データを受け付ける情報処理装置について説明したが、情報処理装置100は、複数の位データを受け付ければよい。すなわち情報処理装置100が受け付けるべきデータは、連続動作に対応する動作データに限定されるものではない。第2の実施形態においては、ゴルフスイングを複数回撮影し、これにより得られた複数の動作データを受け付ける情報処理装置100について説明する。すなわち、第2の実施形態に係る情報処理装置100は、それぞれが単位データを1つ含む、複数の動作データを受け付ける。以下、第2の実施形態に係る情報処理装置100について、第1の実施形態に係る情報処理装置100と異なる点について説明する。
図11は、第2の実施形態に係る動作データ受付部201が取得する動作データの一例を示す図である。図11には、ゴルフスイングの姿勢に対応する2つの動作データ1100a,1100bを示している。各動作データ1100a,1100bは、共に、ゴルフスィングの1単位を含む動作データであり、各動作データ1100a,1100bは、別のタイミングにおいて記録された距離画像から得られた動作データである。各動作データ1100a,1100bは、例えば、ユーザがゴルフスイングを行う毎に、センサ部107により得られた距離画像から得ることができる。ゴルフスイングは、歩行と異なりユーザが意識することなく連続して行う動作ではない。すなわち、ゴルフスイングにおいては、その単位データを複数得るためには、ユーザが意識してゴルフスイングを複数回行う必要がある。しかし、フォームチェック等ユーザが繰り返しゴルフスイングを行う状況において、複数の動作データを得ることとすれば、ユーザは動作データ生成のためだけに、ある動作を複数回行うといった必要はない。
本実施形態に係る単位データ抽出部202は、動作データ受付部201が受け付けた複数の動作データそれぞれから単位データを抽出する。例えば、図11に示す例においては、2つの動作データ1100a,1100bそれぞれから、単位データ1110a,1110bを抽出する。単位データ抽出部202は、動作データの開始フレーム及び終了フレームを検出し、これらのフレームに基づいて、単位データを抽出する。図11の例においては、フレーム1130が開始フレーム、1131が終了フレームである。この結果、開始フレーム1130〜終了フレーム1131の間のデータが単位データ1110aとして抽出される。
なお、単位データ抽出部202は、動作データの中から、人物が動き始めたフレームを検知して(あるいは、さらに、所定のアドレス姿勢であるかを認識して)、開始フレームを特定する。単位データ抽出部202はまた、人物の動作が停止したフレームを検知して(あるいは、さらに、所定のフィニッシュ姿勢であるかを認識して)、終了フレームを特定する。なお、第2の実施形態に係る情報処理装置100のこれ以外の構成及び処理は、第1の実施形態に係る情報処理装置100の構成及び処理と同様である。
第2の実施形態に係る情報処理装置100の第1の変更例としては、情報処理装置100は、単位データ1110a,1110bを含む長いシーケンスデータから、単位データを抽出してもよい。この場合、ユーザは複数回のスイングを行い、情報処理装置100は、継続的に、センサ部107による撮影及び姿勢推定部200による姿勢推定を行う。ここで、興味のある動作期間はスイングの間の動作であるため、フィニッシュ姿勢から、再びスイングを行うためにアドレス姿勢に以降する期間の動作は不要なデータである。上記のように、開始フレームと終了フレームを適切に選択することができれば、長いシーケンスのデータからも興味のある動作期間を動作データとして取得できる。
連続して複数回のスイング動作を計測する場合には、ユーザのスイング開始タイミングをコントロールすれば、開始フレームの決定が簡単になる。例えば、情報処理装置100は、音等でユーザにスイング開始を促してもよい。アドレス姿勢を取ったユーザが、情報処理装置100が発する音に合わせてスイングを開始すれば、情報処理装置100は、音を発生させたタイミングの(あるいは、その少し後の)フレームを開始フレームとして選択することができる。さらに、情報処理装置100は、音を発生させたタイミング前後で、動き始めのフレームを探索するようにしてもよい。さらにまた、情報処理装置100は、終了タイミングを知らせる音を出力し、ユーザには開始タイミングの音と終了タイミングの音の間の時間に、スイング動作をさせるようにしてもよい。これにより、終了フレームの検知も容易になる。また、他の例としては、開始フレーム及び終了フレームは、ユーザが選択することとしてもよい。
以上のように、情報処理装置100が受け付ける動作データは複数の単位データを含むものであればよく、そのためのデータ構成は、実施形態に限定されるものではない。このように、情報処理装置100は、様々なデータ取得方法を用いて、サンプリングレートの高い合成データを得ることができる。
(第3の実施形態)
第3の実施形態に係る情報処理装置100は、基準データとして利用するテンプレート動作データを予めHDD104等の記憶部に記憶している。すなわち、情報処理装置100の記憶部は、予め基準データを記憶している。ここで、テンプレート動作データは、処理対象となる動作の模範的な動作を示す単位データであり、計測ノイズ(姿勢の誤推定等)がないか、非常に少ないデータであって、且つ高サンプリングレートのデータである。このようなテンプレート動作データは、予め、光学的モーションキャプチャー等を利用して作成される。テンプレート動作データは、情報処理装置100の出荷前に準備されるため、姿勢計測対象の人物(エンドユーザ)と異なる人物の動作データとなる。
以下、第3の実施形態に係る情報処理装置100について、第1の実施形態に係る情報処理装置100と異なる点について説明する。第3の実施形態においては、基準データ選択部204は、記憶部に記憶されているテンプレート動作データを読み出し、基準データとして設定する。そして、パラメータ算出部205は、記憶部から読み出された基準データに基づいて、単位データの調整パラメータを算出する。なお、第3の実施形態に係る情報処理装置100のこれ以外の構成及び動作は、他の実施形態に係る情報処理装置100の構成及び動作と同様である。
第3の実施形態に係る情報処理装置100は、テンプレート動作データを用いるので、基準データに、ノイズや低サンプリングレートに起因する欠損がなくなる。従って、各動作データの調整が安定するというメリットがある。
第3の実施形態に係る情報処理装置100の第1の変更例としては、情報処理装置100は、テンプレート動作データを複数記憶してもよい。テンプレート動作データは、計測対象の人物の動作と異なるため、身長、体格等の違いにより、姿勢情報のサイズが異なることや、その人物固有の動きと一致しない部分がある。このため、単位データの調整データを算出するのに、テンプレート動作データが適さない場合がある。これに対し、本変更例においては、情報処理装置100は、身長、体格や、微少な動作パターンが異なる複数のテンプレート動作データを予め記憶部に記憶しておいてもよい。そして、情報処理装置100は、各テンプレート動作データを用いて調整データを生成し、調整データと、テンプレート動作データとの差分が最小となるテンプレート動作データを選択する。なお、この処理は、図10を参照しつつ説明した処理と同様である。ただし、M個の単位データを複数のテンプレート動作データに変更したものとなる。
第2の変更例としては、基準データ選択部204は、記憶部に記憶されている1つのテンプレート動作データとの類似度が最大となる単位データを、基準データとして選択してもよい。テンプレート動作に最も近い単位データは、概ね、その動作を正しく示していることが期待できる。さらに、その計測対象人物の単位データを基準データとすることから、その個人特有の動作を示す単位データを基準データとして選択することができる。この方法は、第1の実施形態に係る第2の変更例に係る処理と同じ趣旨の処理であり、複数の単位データから、最も信頼性のある単位データを選択する方法の一つの形態となる。
(第4の実施形態)
第1の実施形態に係る情報処理装置100は、関節位置を調整する調整パラメータを用いて、調整データを生成したが、第4の実施形態に係る情報処理装置100は、時間軸方向のずれを調整する調整パラメータを用いて、調整データを生成する。ここで、第1の実施形態において説明した、関節位置の調整パラメータを姿勢調整パラメータ、本実施形態に係る情報処理装置100が利用する、時間軸方向の調整パラメータを時間調整パラメータと称することとする。以下、第4の実施形態に係る情報処理装置100について、第1の実施形態に係る情報処理装置100と異なる点について説明する。
まず、時間方向の調整パラメータの意義について説明する。複数の単位データは、人物が動作を複数回行うことにより得られたデータである。このため、単位データ間で差が生じる。その理由の一つは毎回の動作で同じ位置の姿勢をとることができないことであり、これについては、第1の実施形態において説明した。一方で、仮に、同じ姿勢で複数回の動作を行うことができたとしても、その動きの速度が異なれば、時間軸方向においては、異なる姿勢となる。このため、このような動作の速度が異なる単位データをそのまま合成しても、好ましい結果を得ることはできない。
図12は、単位データ1200の時間tγにおける姿勢と単位データ1201の時間tβにおける姿勢を示している。ここで、単位データ1200,1201は、姿勢は同じであるが、時間軸方向のずれが生じているデータであるとする。単位データ1200,1201は、同一動作の過程のある姿勢である。すなわち、動作開始から異なる時間において、同じ姿勢が出現している。これは、全体的な動作が単位データ1201の方が、tγ−tβだけ早い(この姿勢が出現するタイミングが早い)ということを示している。第4の実施形態に係る情報処理装置100は、このような単位データ間の時間ずれ(図12の矢印Eの方向のずれ)を算出し、基準データに整合するように単位データを調整する。
図13(A)は、単位データ及び基準データのx座標位置の時間変化のグラフを示す図である。図13(A)においては、単位データを黒四角印のプロット、基準データをバツ印のプロットで示している。また、図13(A)に示す破線は、基準データの区分線形関数である。図13(A)に示す例においては、単位データは、基準データに比べて、全体的に矢印の長さの時間分早い動作になっている。本実施形態に係るパラメータ算出部205は、この矢印のバイアスを算出する。また、パラメータ算出部205は、合わせて時間方向のスケーリングパラメータを算出してもよい。
時間に関する調整パラメータ算出は、例えば、以下のように実施することができる。まず、第1の実施形態において説明したように、情報処理装置100は、各単位データの開始フレームを一致させておく。また、後述するように、情報処理装置100は、終了フレームや、キーフレームも単位データ間で予め一致させておいてもよい。このような初期値を与えられた状態では、時間方向のずれは比較的小さいことが期待できる。従って、最適解が初期値近傍に存在すると仮定し、本実施形態においては、パラメータ算出部205は、調整パラメータを局所探索法で算出する。例えば、ある関節jのx軸における時間調整パラメータat、btは、(式2)及び(式3)の定義を利用すると、以下の誤差εjを最小化するat、btにより得られる。
Figure 2016081121
パラメータ算出部205は、at=1、bt=0を初期値として、近傍で最適解を探索することで、時間調整パラメータat、btを算出する。
(式13)は、ある関節jについての誤差を示す式で、パラメータ算出部205は、全身の時間調整パラメータを算出する際には、(式5)と同様に、全関節の総和誤差を最小化するようなパラメータを求めればよい。ただし、対象とする動作によっては、時間方向の調整を行うことが不適切な関節が存在する。例えば、ゴルフスイングでの足首は、動作全体を通じてほぼ動かない。このような関節において、時間方向に動作データを移動させても誤差に変化がなく、誤差を最小化するパラメータが求められない。従って、パラメータ算出部205は、時間調整パラメータの算出においては、変化の大きい(動きの大きい)関節を対象として、誤差最小化を計算してもよい。
以上のような時間軸についての調整パラメータで単位データを調整した結果の例を図13(B)に示す。図13(B)では、黒四角印のプロットで示す調整データが、図13(A)の単位データに比べて、基準データ(バツ印のプロット)と一致していることが分かる。以上では、x軸の動作データを用いて時間調整パラメータを算出する処理について説明したが、パラメータ算出部205は、x、y、zの3次元空間で時間調整パラメータを算出するものとする。なお、第4の実施形態にかかる情報処理装置100のこれ以外の構成及び処理は、第1の実施形態に係る情報処理装置100の構成及び処理と同様である。
第4の実施形態に係る情報処理装置100は、単位データの時間軸方向の調整を行うので、動作のタイミング、速度が異なる複数の単位データから、好ましい合成データを生成することができる。
第4の実施形態に係る情報処理装置100の第1の変更例としては、情報処理装置100は、さらにキーフレームの時間合わせを行ってもよい。ここで、キーフレームは、対象としている動作に特徴的な姿勢や、関節位置座標が極値をとるようなタイミングのフレームである。図11のゴルフスイングの単位データ1110aを例に、キーフレームについて説明する。ここでは、トップオブスイング1120とインパクト1121のタイミングをキーフレームとしている。パラメータ算出部205は、全体姿勢や、手首位置の時間変化の極値等に基づいて、各単位データから、キーフレームを検出することができる。また、他の例としては、パラメータ算出部205は、外部センサ等により取得できるタイミングに最も近いフレームをキーフレームとして検出してもよい。
そして、パラメータ算出部205は、各単位データのキーフレームの時間位置が一致するように2つのキーフレームを境界位置とする区間内のフレームを調整するような調整パラメータを算出してもよい。なお、前述したように、パラメータ算出部205は、初期値の精度向上のため、キーフレームの時間をすべての単位データで一致させる修正を、誤差最小化による調整パラメータ算出の前に行っておくことが好ましい。
第2の変更例としては、パラメータ算出部205は、時間調整パラメータを、2つのキーフレームを境界位置とする区間単位で算出してもよい。図14に示すグラフには、図11の単位データ110aの手首x軸(垂直上向き)の時間変化(菱形のプロット)と、基準データ(実線)と、を示している。図14において、区間t11は、図13に示すアドレス(開始フレーム)1130とトップオブスイング1120の間の期間である。区間t12は、トップオブスイング1120とインパクト1121の間のダウンスイング期間である。区間t13は、インパクト1121と終了フレーム1131の間のフォロースルー期間である。また、図14に示す基準データは、テンプレート動作から取得した基準データとする。
図14に示すグラフにおいては、区間t11と区間t12においては、単位データは、基準データと概ね一致している。一方で、区間t13においては、単位データは、基準データから乖離している。すなわち、単位データ1110aに示されるゴルフスイングは、インパクトのタイミングまでは基準データと良く一致した動作であったが、フォロースルー期間(区間t13)では若干遅いフォロースルー動作となったことを示している。このような場合、パラメータ算出部205は、フォロースルー期間(区間t13)の調整パラメータを算出する。そして、調整部206は、区間t13に対して算出された調整パラメータに基づいて、区間t13内のフレームから調整データを得る。
また、他の例としては、パラメータ算出部205は、(式13)のように単位データの全時間の時間調整パラメータを算出した後に、基準データと単位データのずれが大きいキーフレーム間を調整してもよい。また、パラメータ算出部205は、パーツ単位での姿勢調整パラメータと組み合わせて、あるパーツのあるキーフレーム間において、姿勢調整パラメータと時間調整パラメータを算出してもよい。
第3の変更例としては、パラメータ算出部205は、姿勢調整パラメータ及び時間調整パラメータを共に算出することとしてもよく、また他の例としては何れか一方の調整パラメータを算出することとしてもよい。パラメータ算出部205は、姿勢調整パラメータ及び時間調整パラメータを算出する場合は、まず一方の調整パラメータを算出する。そして、調整部206は、算出された調整パラメータに基づいて、調整データを得る。その後、パラメータ算出部205は、もう一方の調整パラメータを調整パラメータを算出する。そして、調整部206は、算出された調整パラメータに基づいて、調整データを得る。さらに、パラメータ算出部205は、2つパラメータ調整で、基準データと単位データの誤差が最小化するように、誤差が変化しなくなるまで、姿勢調整パラメータと時間調整パラメータの算出を繰り返してもよい。
(第5の実施形態)
第1〜第4の実施形態に係る情報処理装置100は、1つのセンサ部107により得られた距離画像から、合成データを生成したが、第5の実施形態に係る情報処理装置100は、複数のセンサ部により得られた距離画像から合成データを生成する。以下、第5の実施形態に係る情報処理装置100について、第1の実施形態に係る情報処理装置100と異なる点について説明する。第5の実施形態に係る情報処理装置100は、複数のセンサ部を有している。各センサ部は、人物の周囲の異なる位置に設置され、異なる位置から、異なる方向に人物を撮影し、距離画像を取得する。なお、各センサ部は、非同期で、それぞれ異なるサンプリングタイミングで同じ動作の距離画像を撮影する。
姿勢推定部200は、各センサ部により得られた距離画像から総合的に人物姿勢を推定し、動作データを生成する。ここで、動作データに含まれる姿勢(関節位置座標)が同一の座標系で表されるようにする。例えば、撮影空間中に原点があるような共通の座標系で姿勢を表現してもよいし、ある代表センサ部のカメラ座標系に、他のセンサ部から得た姿勢を座標変換してもよい。そして、動作データ受付部201は、複数の距離画像に基づいて生成された動作データを受け付ける。なお、第5の実施形態に係る情報処理装置100のこれ以外の構成及び処理は、他の実施形態に係る情報処理装置100の構成及び処理と同様である。
以上のように、本実施形態に係る情報処理装置100は、複数のセンサ部により異なる方向から撮影された距離画像を利用するので、1つのセンサ部の距離画像から推定できないような位置や姿勢を推定することができる。さらに、非同期の距離画像が合成されることにより、サンプリング間のデータが補間されるので、合成データのサンプリングレートを向上させることができる。
すなわち、一つのセンサ部で人物の姿勢を推定すると、人物自身によって隠された部位の姿勢推定精度は低くなる。例えば、センサ部のカメラに対して横向きに立つ人物の、カメラから遠い位置にある腕は胴体によって遮蔽されてしまう。この結果、その腕は距離画像に写らず、姿勢推定処理で正確な位置・姿勢が判断できない。これに対し、同様の動作を複数回実行するため、動作の度にカメラに対する人物向きを変えて、複数の動作データを作成することもできる。これにより、各撮影方向で信頼できる部分の姿勢に重みを付けて動作データを合成することにより、または、隠れている部分の姿勢推定結果を削除して動作データを合成することにより、精度の高い動作データを取得することができるようになる。しかし、動作の度に、人物の向きを変更することが困難な場合もある。これに対し、本実施形態に係る情報処理装置100は、複数のセンサ部が異なる方向から撮影した距離画像から合成データを得るので、より高精度な合成データを得ることができる。
また、第5の実施形態に係る情報処理装置100の変更例としては、情報処理装置100は、複数センサによる動作データ取得を、異なる時刻の同様の人物動作に対して実施して、複数の動作データを作成してもよい。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、姿勢の推定方法に依存することなく、高精度な動作データを得ることができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 情報処理装置
202 単位データ抽出部
204 基準データ選択部
205 パラメータ算出部
206 調整部
207 合成部

Claims (18)

  1. 1単位の動作を示す基準データに基づいて、前記基準データと同一種類の1単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、
    前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、
    複数の前記調整データを合成し、合成データを得る合成手段と
    を有することを特徴とする情報処理装置。
  2. 複数の前記単位データのうち1つの前記単位データを基準データとして選択する選択手段をさらに有し、
    前記パラメータ算出手段は、前記選択手段により選択された前記基準データに基づいて、前記調整パラメータを算出することを特徴とする請求項1に記載の情報処理装置。
  3. ユーザから、前記基準データとする前記単位データの選択指示を受け付ける受付手段をさらに有し、
    前記選択手段は、前記選択指示に係る前記単位データを、前記基準データとして選択することを特徴とする請求項2に記載の情報処理装置。
  4. 前記選択手段は、各単位データの特徴量に基づいて、前記基準データとする前記単位データを選択することを特徴とする請求項2に記載の情報処理装置。
  5. 複数の単位データそれぞれを基準データの候補とし、前記基準データの候補以外の前記単位データと、前記基準データの候補との間の差分を算出する差分算出手段をさらに有し、
    前記選択手段は、前記差分に基づいて、前記基準データとする前記単位データを選択することを特徴とする請求項2に記載の情報処理装置。
  6. 前記基準データのテンプレートを記憶する記憶手段をさらに有し、
    前記選択手段は、前記テンプレートに基づいて、前記基準データとする前記単位データを選択することを特徴とする請求項2に記載の情報処理装置。
  7. 前記基準データを記憶する記憶手段をさらに有し、
    前記パラメータ算出手段は、前記記憶手段に記憶されている前記基準データに基づいて、前記調整パラメータを算出することを特徴とする請求項1に記載の情報処理装置。
  8. 前記基準データの候補を複数記憶する記憶手段と、
    前記記憶手段に記憶される前記基準データの候補のうち1つの基準データの候補を前記基準データとして選択する選択手段と
    をさらに有し、
    前記パラメータ算出手段は、前記選択手段により選択された前記基準データに基づいて、前記調整パラメータを算出することを特徴とする請求項1に記載の情報処理装置。
  9. 前記選択手段は、前記複数の基準データの候補それぞれを利用して、調整パラメータの候補を算出し、前記調整パラメータの候補と前記基準データの候補との差分に基づいて、複数の前記基準データの候補のうち1つの基準データの候補を前記基準データとして選択することを特徴とする請求項8に記載の情報処理装置。
  10. 前記パラメータ算出手段は、複数の単位データそれぞれと前記基準データとの差分に基づいて、前記調整パラメータを算出することを特徴とする請求項1乃至9何れか1項に記載の情報処理装置。
  11. 前記単位データは、複数のパーツの動作を含み、
    前記パラメータ算出手段は、パーツ単位の前記調整パラメータを算出することを特徴とする請求項1乃至10何れか1項に記載の情報処理装置。
  12. 前記パラメータ算出手段は、前記単位データの時間軸方向のずれを調整する調整データを算出することを特徴とする請求項1乃至11何れか1項に記載の情報処理装置。
  13. 前記パラメータ算出手段は、開始フレーム、終了フレーム及びキーフレームのうち少なくとも1つに基づいて、調整データを算出することを特徴とする請求項12に記載の情報処理装置。
  14. 前記パラメータ算出手段は、キーフレームを境界とする区間の調整パラメータを生成し、
    前記調整手段は、区間内の単位データを調整して、調整データを得ることを特徴とする請求項1乃至13何れか1項に記載の情報処理装置。
  15. 同一動作の繰り返しを示す1つの連続データから、複数の前記単位データを抽出する抽出手段をさらに有することを特徴とする請求項1乃至14何れか1項に記載の情報処理装置。
  16. 1つの単位データを含む、複数の動作データそれぞれから前記単位データを抽出する抽出手段をさらに有することを特徴とする請求項1乃至14何れか1項に記載の情報処理装置。
  17. 情報処理装置が実行する情報処理方法であって、
    1単位の動作を示す基準データに基づいて、前記基準データと同一種類の1単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出ステップと、
    前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整ステップと、
    複数の前記調整データを合成し、合成データを得る合成ステップと
    を含むことを特徴とする情報処理方法。
  18. コンピュータを、
    1単位の動作を示す基準データに基づいて、前記基準データと同一種類の1単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、
    前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、
    複数の前記調整データを合成し、合成データを得る合成手段と
    として機能させるためのプログラム。
JP2014209105A 2014-10-10 2014-10-10 情報処理装置、情報処理方法及びプログラム Pending JP2016081121A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014209105A JP2016081121A (ja) 2014-10-10 2014-10-10 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014209105A JP2016081121A (ja) 2014-10-10 2014-10-10 情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2016081121A true JP2016081121A (ja) 2016-05-16

Family

ID=55958716

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014209105A Pending JP2016081121A (ja) 2014-10-10 2014-10-10 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2016081121A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019069358A1 (ja) * 2017-10-03 2019-04-11 富士通株式会社 認識プログラム、認識方法および認識装置
WO2021066147A1 (ja) * 2019-10-04 2021-04-08 エヌ・ティ・ティ・コミュニケーションズ株式会社 算出装置、算出方法、算出プログラム
JP2021143976A (ja) * 2020-03-13 2021-09-24 幹夫 神保 3次元形状決定システム及び3次元形状決定装置
WO2023106201A1 (ja) * 2021-12-09 2023-06-15 Necソリューションイノベータ株式会社 プレイ分析装置、プレイ分析方法、及びコンピュータ読み取り可能な記録媒体

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019069358A1 (ja) * 2017-10-03 2019-04-11 富士通株式会社 認識プログラム、認識方法および認識装置
US11620857B2 (en) 2017-10-03 2023-04-04 Fujitsu Limited Method, device, and medium for determining three-dimensional position of skeleton using data acquired by multiple sensors
WO2021066147A1 (ja) * 2019-10-04 2021-04-08 エヌ・ティ・ティ・コミュニケーションズ株式会社 算出装置、算出方法、算出プログラム
JP2021060736A (ja) * 2019-10-04 2021-04-15 エヌ・ティ・ティ・コミュニケーションズ株式会社 算出装置、算出方法、算出プログラム
JP7409819B2 (ja) 2019-10-04 2024-01-09 エヌ・ティ・ティ・コミュニケーションズ株式会社 算出装置、算出方法、算出プログラム
JP2021143976A (ja) * 2020-03-13 2021-09-24 幹夫 神保 3次元形状決定システム及び3次元形状決定装置
WO2023106201A1 (ja) * 2021-12-09 2023-06-15 Necソリューションイノベータ株式会社 プレイ分析装置、プレイ分析方法、及びコンピュータ読み取り可能な記録媒体

Similar Documents

Publication Publication Date Title
US11372484B2 (en) Method and system for determining a correct reproduction of a movement
JP6116784B1 (ja) 3次元モデル生成システム、3次元モデル生成方法、及びプログラム
JP5635736B2 (ja) 情報処理装置および情報処理方法
KR20160096473A (ko) 동작 평가 시스템 및 방법
EP3417919B1 (en) Transformation matrix deriving device, position estimation apparatus, transformation matrix deriving method, and position estimation method
JP2021105887A (ja) 3dポーズ取得方法及び装置
KR101956275B1 (ko) 영상으로부터 신체 골격 및 신체 부위 정보 검출 방법 및 장치
JP2017119102A (ja) 運動解析装置、方法及びプログラム
JP2016081121A (ja) 情報処理装置、情報処理方法及びプログラム
US11222428B2 (en) Determining golf swing characteristics
US20130069939A1 (en) Character image processing apparatus and method for footskate cleanup in real time animation
US20230005161A1 (en) Information processing apparatus and determination result output method
KR101636171B1 (ko) 스켈레톤 트래킹 방법 및 이를 이용한 스켈레톤 트래킹 시스템
JP7318814B2 (ja) データ生成方法、データ生成プログラムおよび情報処理装置
JP6295804B2 (ja) 測定装置、測定方法及び測定プログラム
JP7482471B2 (ja) 学習モデルの生成方法
JP2022104634A (ja) ゴルフスイング解析システム、ゴルフスイング解析方法及びプログラム
US20230126755A1 (en) Information processing apparatus, information processing method, and imaging system
JP2009151516A (ja) 情報処理装置および情報処理装置用操作者指示点算出プログラム
JP6944144B2 (ja) スイング解析装置、方法及びプログラム
CN114681885B (zh) 高尔夫挥杆解析系统、高尔夫挥杆解析方法及信息存储媒体
CN114681886B (zh) 高尔夫挥杆解析系统、高尔夫挥杆解析方法及信息存储媒体
WO2024111430A1 (ja) 処理装置、処理システム、学習済みモデルの構築方法及びプログラム
JP2017213175A (ja) 移動運動解析装置及びシステム並びにプログラム
JP2024016484A (ja) トレーニング動作カウントプログラム、トレーニング動作カウント装置、およびトレーニング動作カウントシステム