(57)【要約】【課題】姿勢の推定方法に依存することなく、高精度な動作データを得ることを目的とする。【解決手段】１単位の動作を示す基準データに基づいて、基準データと同一種類の１単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、複数の前記調整データを合成し、合成データを得る合成手段とを有することを特徴とする。【選択図】図２
2016081121.tif 000002
【特許請求の範囲】
【請求項１】
１単位の動作を示す基準データに基づいて、前記基準データと同一種類の１単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、
前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、
複数の前記調整データを合成し、合成データを得る合成手段と
を有することを特徴とする情報処理装置。
【請求項２】
複数の前記単位データのうち１つの前記単位データを基準データとして選択する選択手段をさらに有し、
前記パラメータ算出手段は、前記選択手段により選択された前記基準データに基づいて、前記調整パラメータを算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
ユーザから、前記基準データとする前記単位データの選択指示を受け付ける受付手段をさらに有し、
前記選択手段は、前記選択指示に係る前記単位データを、前記基準データとして選択することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記選択手段は、各単位データの特徴量に基づいて、前記基準データとする前記単位データを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
複数の単位データそれぞれを基準データの候補とし、前記基準データの候補以外の前記単位データと、前記基準データの候補との間の差分を算出する差分算出手段をさらに有し、
前記選択手段は、前記差分に基づいて、前記基準データとする前記単位データを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記基準データのテンプレートを記憶する記憶手段をさらに有し、
前記選択手段は、前記テンプレートに基づいて、前記基準データとする前記単位データを選択することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記基準データを記憶する記憶手段をさらに有し、
前記パラメータ算出手段は、前記記憶手段に記憶されている前記基準データに基づいて、前記調整パラメータを算出することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記基準データの候補を複数記憶する記憶手段と、
前記記憶手段に記憶される前記基準データの候補のうち１つの基準データの候補を前記基準データとして選択する選択手段と
をさらに有し、
前記パラメータ算出手段は、前記選択手段により選択された前記基準データに基づいて、前記調整パラメータを算出することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記選択手段は、前記複数の基準データの候補それぞれを利用して、調整パラメータの候補を算出し、前記調整パラメータの候補と前記基準データの候補との差分に基づいて、複数の前記基準データの候補のうち１つの基準データの候補を前記基準データとして選択することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記パラメータ算出手段は、複数の単位データそれぞれと前記基準データとの差分に基づいて、前記調整パラメータを算出することを特徴とする請求項１乃至９何れか１項に記載の情報処理装置。
【請求項１１】
前記単位データは、複数のパーツの動作を含み、
前記パラメータ算出手段は、パーツ単位の前記調整パラメータを算出することを特徴とする請求項１乃至１０何れか１項に記載の情報処理装置。
【請求項１２】
前記パラメータ算出手段は、前記単位データの時間軸方向のずれを調整する調整データを算出することを特徴とする請求項１乃至１１何れか１項に記載の情報処理装置。
【請求項１３】
前記パラメータ算出手段は、開始フレーム、終了フレーム及びキーフレームのうち少なくとも１つに基づいて、調整データを算出することを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記パラメータ算出手段は、キーフレームを境界とする区間の調整パラメータを生成し、
前記調整手段は、区間内の単位データを調整して、調整データを得ることを特徴とする請求項１乃至１３何れか１項に記載の情報処理装置。
【請求項１５】
同一動作の繰り返しを示す１つの連続データから、複数の前記単位データを抽出する抽出手段をさらに有することを特徴とする請求項１乃至１４何れか１項に記載の情報処理装置。
【請求項１６】
１つの単位データを含む、複数の動作データそれぞれから前記単位データを抽出する抽出手段をさらに有することを特徴とする請求項１乃至１４何れか１項に記載の情報処理装置。
【請求項１７】
情報処理装置が実行する情報処理方法であって、
１単位の動作を示す基準データに基づいて、前記基準データと同一種類の１単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出ステップと、
前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整ステップと、
複数の前記調整データを合成し、合成データを得る合成ステップと
を含むことを特徴とする情報処理方法。
【請求項１８】
コンピュータを、
１単位の動作を示す基準データに基づいて、前記基準データと同一種類の１単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、
前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、
複数の前記調整データを合成し、合成データを得る合成手段と
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、人物の姿勢を計測する方法が知られており、特許文献１には、距離センサで取得した距離画像から人物姿勢を推定する方法が開示されている。距離画像を用いる人物姿勢の推定は、人物にマーカーを設置する必要が無く、セットアップが容易であるという利点がある。そのため、広く一般ユーザが利用可能であり、ゲームやユーザインターフェースに利用されている。一方、他の人物姿勢の計測方法としては、光学的モーションキャプチャーや、磁気式モーションキャプチャーがある。これらの方法は、高い精度で人物姿勢を計測することができるが、マーカーやセンサを人物に装着する必要があり、準備に手間がかかるという問題がある。このため、利用される分野はＣＧ作成のためのモーションキャプチャー等、専門的な用途に限られている。
【０００３】
距離画像を用いた人物の姿勢推定は、ゲームやユーザインターフェース以外の分野での活用も期待されている。例えば、リハビリテーション分野やスポーツ分野での、人物姿勢計測への利用が期待されている。リハビリテーション分野での利用方法としては、計測した対象人物の姿勢が正しい姿勢となっているかを判定して被験者にフィードバックすることや、経過観察のために姿勢・動作を記録する等の利用形態が考えられる。また、スポーツ分野では、姿勢推定結果をフォームチェックに利用することが考えられる。フォームチェックでは、姿勢推定結果を可視化表示する、人物の各部位の軌跡を確認する、力の加わり方を解析する、等の利用形態が考えられる。
【０００４】
ゲームやユーザインターフェースに比べて、これらの応用先での姿勢推定は高い性能が要求される。ゲームやユーザインターフェースでは、大まかな姿勢が分かれば十分に利用可能であったが、リハビリテーションやスポーツ分野では、人物姿勢の詳細な解析を行うことを目的としているため、微少な姿勢変化や速い動きの計測も必要となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１１／０２１０９１５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、距離画像を用いた姿勢推定方法は、光学的モーションキャプチャーや磁気式モーションキャプチャーと比較すると姿勢計測性能が劣るという課題がある。具体的には、人物の関節位置を誤った位置に推定してしまうことと、比較的サンプリングレートが低いという課題がある。サンプリングレートの課題については、光学的モーションキャプチャーが１００〜２００Ｈｚ、又はそれ以上の時間分解能を持つのに対して、距離画像方式では１５〜３０Ｈｚ程度である。従って、リハビリテーションやスポーツフォーム解析等で必要となる微少な動きや早い動きの計測が困難となる場合がある。より具体的には、サンプリング間隔で発生する姿勢変化が計測できないことが課題となる。
【０００７】
また、サンプリングレートが不足している問題は、関節位置を誤って推定した結果（外れ値）を除外する上でも不利となる。例えば、あるフレームである関節位置を誤推定し、時系列上で外れ値となったとする。この場合、その外れ値が前後フレームの推定関節位置から大きく外れていると、簡単に外れ値であることが分かる。しかし、フレーム間隔が大きい（サンプリングレートが低い）と、外れ値と判断することが困難になる。従って、関節位置推定精度の向上の観点からも、サンプリングレートが向上することが望ましい。
【０００８】
本発明はこのような問題点に鑑みなされたもので、姿勢の推定方法に依存することなく、高精度な動作データを得ることを目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明は、情報処理装置であって、１単位の動作を示す基準データに基づいて、前記基準データと同一種類の１単位の動作を示す複数の単位データそれぞれを調整する調整パラメータを算出するパラメータ算出手段と、前記調整パラメータに基づいて、複数の単位データそれぞれを調整し、複数の調整データを得る調整手段と、複数の前記調整データを合成し、合成データを得る合成手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、姿勢の推定方法に依存することなく、高精度な動作データを得ることができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理装置のハードウェア構成を示す図である。
【図２】情報処理装置のソフトウェア構成を示す図である。
【図３】動作データ生成処理を示すフローチャートである。
【図４】姿勢推定処理を説明するための図である。
【図５】単位データ抽出処理の説明図である。
【図６】単位データの補正処理を説明するための図である。
【図７】調整パラメータを説明するための図である。
【図８】調整データ生成処理における詳細な処理を示すフローチャートである。
【図９】全体の調整パラメータ算出処理を説明するための図である。
【図１０】単位データ選択処理を示すフローチャートである。
【図１１】動作データの一例を示す図である。
【図１２】単位データ間における姿勢の時間軸方向のずれを示す図である。
【図１３】単位データ及び基準データのｘ座標位置の時間変化を示す図である。
【図１４】単位データ及び基準データのｘ座標位置の時間変化を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面に基づいて説明する。
【００１３】
（第１の実施形態）
第１の実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、ある動作が１単位として繰り返される繰り返し動作を示す距離画像に基づいて、対象物の姿勢を推定する。ここでは、情報処理装置が、繰り返し動作としての人物の歩行動作における姿勢を推定する場合を例に説明する。なお、対象物は、人物に限定されるものではない。また、推定される姿勢は、繰り返し動作に係る姿勢であればよく、その種類は、実施形態に限定されるものではない。
【００１４】
図１は、第１の実施形態に係る情報処理装置１００のハードウェア構成を示す図である。情報処理装置１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ１０４と、表示部１０５と、入力部１０６と、センサ部１０７とを有している。ＣＰＵ１０１は、ＲＯＭ１０２に記憶された制御プログラムを読み出して各種処理を実行する。ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ１０４は、データや各種プログラム等各種情報を記憶する。なお、情報処理装置１００の機能や処理は、ＣＰＵ１０１がＲＯＭ１０２又はＨＤＤ１０４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【００１５】
表示部１０５は、各種情報を表示する。入力部１０６は、ユーザ操作を受け付ける。センサ部１０７は、対象物までの距離を測定する測距センサである。本実施形態に係るセンサ部１０７は、対象物としての人物を含む環境の距離画像を得る。センサ部１０７は、照射した光の到達時間を基に距離を計算する方式や、パターン光を投影して、パターンの変形から距離を計算する方法等により、距離画像を得る。センサ部１０７は、これらの手法によって距離画像を撮影するカメラ装置である。
【００１６】
図２は、情報処理装置１００のソフトウェア構成を示す図である。情報処理装置１００は、姿勢推定部２００と、動作データ受付部２０１と、単位データ抽出部２０２と、指示受付部２０３と、基準データ選択部２０４と、パラメータ算出部２０５と、調整部２０６と、合成部２０７とを有している。姿勢推定部２００は、センサ部１０７により得られた距離画像の入力を受け付ける。本実施形態に係る姿勢推定部２００は、繰り返し動作としての歩行動作に係る距離画像の入力を受け付ける。そして、姿勢推定部２００は、距離画像の各フレームから人物姿勢を推定する。人物姿勢の推定には、例えば特許文献１に示されるような従来の方法を用いればよい。なお、本実施形態においては、姿勢推定部２００は、人物の各関節位置の座標の情報を人物姿勢として得る。
【００１７】
動作データ受付部２０１は、人物の動作データとして、姿勢推定部２００により得られた人物姿勢推定結果の時系列データの入力を受け付ける。ここで、人物推定結果の時系列データは、歩行動作を示すデータであり、同一動作の繰り返しを示す連続データの一例である。単位データ抽出部２０２は、動作データ受付部２０１が受け付けた動作データから、繰り返し動作の基本動作、すなわち１単位の動作に対応する動作データを抽出する。以下、１単位の動作に対応する動作データ、すなわち１単位の動作を示す動作データを単位データと称する。本実施形態に係る単位データ抽出部２０２は、歩行の１単位の動作データを単位データとして抽出する。指示受付部２０３は、入力部１０６に対しユーザにより入力された各種指示を受け付ける。
【００１８】
基準データ選択部２０４は、単位データ抽出部２０２により抽出された単位データのうち１つの単位データを基準データとして選択する。ここで、基準データとは、複数の単位データを調整する際の基準となる単位データである。すなわち、基準データは、単位データと同一種類の１単位の動作を示すデータである。パラメータ算出部２０５は、基準データに基づいて、単位データの調整に利用する調整パラメータを算出する。調整部２０６は、調整パラメータに基づいて、単位パラメータの調整を行う。以下、調整部２０６による調整後の単位データを、調整データと称する。合成部２０７は、繰り返し動作に対応する複数の調整データを合成し、合成データを得る。
【００１９】
図３は、情報処理装置１００による動作データ生成処理を示すフローチャートである。Ｓ３００において、姿勢推定部２００は、距離画像の入力を受け付け、距離画像の各フレームに基づいて、各フレームの人物の姿勢を推定する。姿勢推定部２００は、姿勢推定結果と、推定対象の距離画像を受け付けた時刻とを対応付けて、動作データとして動作データ受付部２０１に出力する。図４は、姿勢推定処理（Ｓ３００）を説明するための図である。図４には、３次元座標系４００における姿勢推定結果４１０を示している。図４に示すように、本実施形態においては、姿勢推定結果４１０は、人体の関節の３次元座標値を持つ。図４には、関節として、右膝関節４１１及び左膝関節４１２を示すが、推定すべき関節の種類及び数は、特に限定されるものではない。さらに、姿勢推定部２００は、頭部４１３のように、人体の部位の位置も、関節位置として推定するものとする。
【００２０】
また、３次元座標系４００の原点は特に限定されるものではない。３次元座標系４００は、例えば、人物が存在する環境中のある位置を原点とした座標系でもよいし、センサ部１０７のカメラ装置を原点としたカメラ座標系でもよい。
【００２１】
図３に戻り、Ｓ３０１において、動作データ受付部２０１は、姿勢推定部２００から動作データを受け付ける。Ｓ３０２において、動作データ受付部２０１は、所定時間分の動作データを受け付けたか否かを確認する。ここで、所定時間は例えばＨＤＤ１０４等に予め設定されているものとする。動作データ受付部２０１は、所定時間分の動作データを取得すると（Ｓ３０２でＹｅｓ）、処理をＳ３０３へ進める。Ｓ３０３において、単位データ抽出部２０２は、動作データから、単位データを抽出する（抽出処理）。
【００２２】
図５は、単位データ抽出処理（Ｓ３０３）の説明図である。本実施形態においては、歩行動作は、センサ部１０７の計測範囲内において、センサ部１０７に向かってくる、センサ部１０７を横切る、足踏みをする、トレッドミル上で歩行する等により行われる。また、Ｓ３０２において評価される所定時間には、複数回の歩行周期が含まれるような時間が設定されているものとする。これにより、動作データ受付部２０１には、複数回の歩行周期の人物姿勢推定結果、すなわち複数単位の歩行の人物推定結果が、動作データとして入力される。図５に示す動作データ５００は、３周期分（３単位分）の歩行に対して得られたものである。ここで、動作データ５００は、動作の繰り返しを示す連続データの一例である。この場合、単位データ抽出部２０２は、動作データ５００から、３つの単位データ５１０ａ，５１０ｂ，５１０ｃを抽出する。単位データ抽出部２０２は、単位データの開始フレームと終了フレームを検出することにより、各単位データを抽出する。
【００２３】
本実施形態においては、単位データ抽出部２０２は、右足が接地したタイミングのフレームを開始フレーム及び終了フレームとして検出する。すなわち、右足が接地したタイミングのフレームは、開始フレーム及び終了フレームを兼ねる。図５に示す例においては、フレーム５２０，５２１，５２２が、右足が接地したタイミングのフレームである。この場合、フレーム５２０〜５２１が、単位データ、すなわち第１データ５１０ａとして抽出される。また、フレーム５２１〜５２２が、単位データ、すなわち第２データ５１０ｂとして抽出され、フレーム５２２〜５２３が、単位データ、すなわち第３データ５１０ｃとして抽出される。
【００２４】
なお、開始フレーム及び終了フレームは、右足が接地したタイミングのフレームに限定されるものではない。他の例としては、単位データ抽出部２０２は、他のセンサ情報を利用して開始フレーム及び終了フレームを特定してもよい。例えば、床面に接地した不図示の圧力センサが右脚の正確な接地タイミングを検出し、単位データ抽出部２０２は、その時間の最近傍フレームを開始フレーム及び終了フレームとしてもよい。また、単位データ抽出部２０２は、全身の姿勢が所定の姿勢と判定されたタイミングを開始フレーム及び終了フレームとしてもよい。また、繰り返し行われるスクワット動作においては、単位データ抽出部２０２は、直立した時点の姿勢開始フレーム及び終了フレームとして検出してもよい。また、単位データ抽出部２０２は、フォーム解析等では、動作が始まるタイミング、例えば、全身が動き出すフレームを開始フレームとしてもよい。
【００２５】
単位データ抽出部２０２はさらに、単位データの補正を行う。図６は、単位データを補正する処理を説明するための図である。図６（Ａ），図６（Ｂ），図６（Ｃ）には、それぞれ、単位データ５１０ａ，５１０ｂ，５１０ｃにおける、右膝関節のｘ座標位置の時間
経過のグラフを示している。グラフの横軸は時間、縦軸はｘ座標を示す。図６（Ａ）にお
いては、単位データ５１０ａに含まれる各フレームにおける関節位置のｘ座標をバツ印で
示している。同様に、図６（Ｂ）、図６（Ｃ）では、それぞれ関節位置のｘ座標を黒四角
印、白三角印で示している。各グラフは、右膝関節のｘ軸（垂直上向き）の位置変化で、
歩行に応じて膝位置が変化する様子を示している。
【００２６】
各単位データは、人物姿勢に含まれる各関節の３次元座標ｘ，ｙ，ｚと、各フレームの
時刻ｔの情報を含んでいる。総フレーム数Ｎの関節番号ｊの単位データＤjは、（式１）のように表される。
【数１】
2016081121.tif 000003
【００２７】
各単位データは、異なる時間から切り出されたデータであるため、各単位データの開始フレーム時刻ｔ1がそれぞれ異なる。従って、単位データ抽出部２０２は、すべての単位データでｔ1＝０となるように、ｔ1〜ｔNを時間合わせしておくこととする。具体的には、単位データ抽出部２０２は、各単位データのｔ1〜ｔNから、ｔ1を減算したものを単位データの時間情報とする。また、歩行動作のように移動を伴う動作では、１歩行周期で移動する移動量だけ進行方向の座標値がずれる。単位データ抽出部２０２は、このずれも単位データを作成した時点で補正してもよい。
【００２８】
単位データ抽出部２０２は、例えば、ある１つの単位データの腰位置を基準にして、他の単位データの位置を補正する。具体的には、単位データ抽出部２０２は、ある１つの単位データの開始フレームｔ1の腰関節座標（ｘhip1、ｙhip1、ｚhip1）と、他の動作データの開始フレームｔ1の腰間関節座標が一致するように、単位データ間のオフセットベクトルを求める。そして、単位データ抽出部２０２は、オフセットベクトルを用いて、各単位データを補正しておく。
【００２９】
なお、本実施形態においては、このように、時間軸方向及び位置の関節位置の大まかな補正は単位データ抽出部２０２が行うこととするが、他の例としては、この補正は、パラメータ算出部２０５が行うこととしてもよい。単位データは、以上の処理により作成される。単位データは、各関節の３次元座標、各フレームの時刻を含み、複数の単位データ間の時間軸と位置が簡易に調整された情報である。
【００３０】
さらに、動作データについて補足する。本実施形態に係る情報処理装置１００が処理対象とする動作データのフレーム間隔は各フレーム間で異なるものとしている。例えば、図６（Ａ）に示すフレーム間隔ｗ1，ｗ2は、連続するフレームの間の時間であるが、フレーム間隔ｗ1，ｗ2は、異なっている。これは、距離画像の取得や、各フレームの距離画像から姿勢を推定する処理の処理時間が、それぞれのフレームで異なることが原因となる。例えば、姿勢推定処理は、人物領域のサイズ（画素数）によって、処理速度が変化する。本実施形態に係る情報処理装置１００は、このようにフレーム間隔が異なる単位データを統合することにより、時間軸上での超解像を行う。
【００３１】
他の例としては、情報処理装置１００は、フレーム間隔が一定の動作データを処理対象としてもよい。例えば、センサ部１０７が同じフレーム間隔で計測を行い、姿勢推定部２００が動作データを生成したとする。また、フレーム間隔（サンプリング間隔）は同じであっても、動作を計測するタイミングが異なるとする。このような状況では、実際の動作の開始タイミングと開始フレームには、単位データ毎にずれが生じる。このような動作データを処理対象とする場合には、情報処理装置１００は、以下のような処理を行うものとする。
【００３２】
すなわち、情報処理装置１００は、動作の開始タイミングを外部センサから取得する等の方法により計測し、その時刻から開始フレームのずれ時間Δｔを開始フレームの時刻ｔ0とする。この結果、各単位データは、それぞれ異なる開始フレーム時刻ｔ0を持つようになる。全てのサンプリング間隔が一定であることを想定しているのでこれらの動作データを合成すると、このずれの時間だけシフトしたデータを合成することになり、相互にサンプリング間隔を補間するようになって、サンプリングレートが向上する。
【００３３】
図３に戻り、Ｓ３０３の処理の後、Ｓ３０４において、基準データ選択部２０４は、指示受付部２０３が受け付けた選択指示を受け付ける（指示受付処理）。そして、基準データ選択部２０４は、選択指示に従って、Ｓ３０３において、動作データから抽出された複数の単位データのうちの１つの単位データを、基準データとして選択する（選択処理）。具体的には、情報処理装置１００は、単位データをユーザに確認させるために、表示部１０５にデータを表示する。そして、ユーザは、単位データを確認し、入力部１０６を用いて、複数の単位データの中から、計測対象の動作を良く表している単位データを選択する。これに対応して、指示受付部２０３は、選択された単位データを示す選択指示を受け付ける。この場合、表示部１０５は、図６に示すグラフのように単位データにおける関節位置の軌跡を表示してもよく、また他の例としては、図４に示すように、人物の姿勢全体の時系列データをアニメーションで表示してもよい。
【００３４】
次に、Ｓ３０５において、パラメータ算出部２０５は、Ｓ３０３において抽出された複数の単位データ（基準データを除く）の中から１つの単位データを処理対象として選択する。次に、Ｓ３０６において、パラメータ算出部２０５は、基準データに基づいて、単位データを調整するための調整パラメータを算出する（パラメータ算出処理）。さらに、調整部２０６は、調整パラメータに基づいて、単位データを調整し、調整データを得る（調整処理）。
【００３５】
図７は、調整パラメータを説明するための図である。図７に示す７０１は基準データ、７０２は基準データ以外の単位データを３次元座標系４００中に表示した図である。基準データ７０１と単位データ７０２はほぼ同じ動作を示しているが、矢印Ｃの方向への全体的な位置ずれや、矢印Ｄの方向への部分的な（関節の）位置ずれが生じている。調整パラメータは、このような微少なずれを修正するためのパラメータであり、パラメータ算出部２０５は、単位データを基準データに一致させるようにバイアスやスケーリングを行う調整パラメータを算出する。
【００３６】
図８は、調整データ生成処理における詳細な処理を示すフローチャートである。Ｓ８００において、パラメータ算出部２０５は、基準データに対する単位データの全体の調整パラメータとして、基準データに対する各単位データの誤差が最少となるような調整パラメータを算出する。図９は、全体の調整パラメータ算出処理（Ｓ８００）を説明するための図である。図９（Ａ）〜（Ｄ）の各グラフは、単位データにおける右膝関節のｘ軸（垂直上向き）の位置変化、すなわち歩行動作に応じて膝位置が変化する様子を示している。
【００３７】
図９（Ａ）のグラフは、第１データ５１０ａの各フレームのｘ座標（バツ印のプロット）と、第３データ５１０ｃの各フレームのｘ座標（白三角印のプロット）と示している。以下の説明で、第１データ５１０ａが基準データとして選択され、単位データ５１０ｃが処理対象として選択されている場合を例に、全体の調整パラメータ算出処理について説明する。図９（Ａ）のグラフに示されるように、第３データ５１０ｃのｘ軸方向の位置変化は、基準データ５１０ａに類似しているものの、全体的に−ｘ方向にバイアスがかかったデータ系列となっている。
【００３８】
図９（Ｃ）には、図９（Ａ）の単位データ５１０ａ，５１０ｃをそのまま合成した場合に得られる合成データを丸印のプロットで示している。丸印のプロットは、単位データ５１０ａ，５１０ｃを同じデータ系列にまとめたものである。この合成データは、２つの単位データを合成したものであるため、時間的な解像度は向上している。しかし、元の単位データにバイアスが生じている状態で合成しているため、合成データが示す動作の挙動は、元の単位データ５１０ａ，５１０ｃ等が示す挙動や真の動作の挙動とは異なるものとなっている。さらに、図９（Ｃ）に示す破線９１１は、合成データの移動平均を示している。この移動平均は、元の単位データ５１０ａ，５１０ｃのいずれからも乖離した挙動を示すデータとなっており、合成データが誤った動作を示していることがわかる。つまり、単位データ間にずれが生じた状態のデータを合成しても、人物の動作試行毎の微妙な動作不一致により、望ましい結果を得ることができない。
【００３９】
これに対し、本実施形態においては、パラメータ算出部２０５は、図９（Ａ）の基準データ５１０ａと単位データ５１０ｃの位置に関するバイアス成分を調整する、全体の調整パラメータ９０１を算出する。具体的には、パラメータ算出部２０５は、基準データ５１０ａと単位データ５１０ｃの誤差が最小となるような、全体の調整パラメータ９０１を算出する。以下、説明の簡略化のため、ｘ軸方向の調整パラメータの算出についてのみ説明するが、各関節は、３次元座標で表されるため、パラメータ算出部２０５は、ｙ、ｚのバイアスを調整する、全体の調整パラメータもそれぞれ算出する。
【００４０】
以下、パラメータ算出部２０５の処理の詳細について説明する。人物の全関節数をｊ、関節番号をｊ（１＜ｊ＜Ｊ）、単位データに含まれるフレーム数をＮ、単位データのｎ番目のフレームをｎ（１＜ｎ＜Ｎ）とすると、基準データは、（式２）の関数で表される。
【数２】
2016081121.tif 000004
この関数は、基準データの時刻ｔにおける関節ｊのｘ座標値を出力する。（式２）の関数は、例えば、基準データから区分線形関数で作成される。図９（Ａ）には、基準データ５１０ａの区分線形関数を破線で図示している。なお、基準データのデータ区間外のｔが入力された場合には、外挿したｘ座標値を出力するか、以下の誤差計算を行わない時間領域と設定することで対応する。
【００４１】
調整パラメータを算出する対象となる単位データの関節ｊの時間ｔjとｘ座標値ｘjは、Ｎ個のフレームがある。したがって、単位データは、（式３）のように表される。
【数３】
2016081121.tif 000005
【００４２】
また、ある関節ｊにおける基準データと単位データの誤差εjは、（式４）のように表される。
【数４】
2016081121.tif 000006
ここで、ａとｂは、位置に関する、全体の調整パラメータである。（式４）は、ある１つの関節についての誤差であり、動作全体の（全身の）誤差εは、（式５）のように表される。
【数５】
2016081121.tif 000007
この誤差を最小化する調整パラメータａ、ｂを求めることで、ある単位データを基準データに整合させる全体の調整パラメータが算出される。パラメータ算出部２０５は、例えば最小二乗法により全体の調整パラメータａ、ｂを算出する。
【００４３】
図８に戻り、Ｓ８００の処理の後、Ｓ８０１において、調整部２０６は、全体の調整パラメータａ、ｂで、単位データを調整する。これにより、ある関節ｊについて（式６）に示す調整データが得られる。
【数６】
2016081121.tif 000008
【００４４】
図９（Ｂ）には、第３データ５１０ｃを、全体の調整パラメータにより調整することにより得られた調整データの各フレームのｘ座標（白三角印のプロット）と、基準データ５１０ａの各フレームのｘ座標（バツ印のプロット）とを重畳表示している。調整データは、後述のＳ３０８において、基準データと合成される。図９（Ｄ）は、調整データと基準データの合成データの各フレームのｘ座標（白丸印のプロット）を示す図である。また、図９（Ｄ）の破線は、合成データの移動平均を示している。合成データは、元の単位データに比べ、サンプリングレート（時間解像度）が向上しており、速い動きや、微少な動きも計測できる可能性が向上している。ここでは、説明のため２つの単位データの合成のみを図示しているが、さらに多くの単位データを合成することで、サンプリングレートを向上させることができる。また、図９（Ｃ）と比べると、図９（Ｄ）から、調整パラメータにより単位データを調整した上で単位データを合成することにより、動作の挙動をとらえた好ましい結果が得られることがわかる。
【００４５】
Ｓ８００及びＳ８０１においては、情報処理装置１００は、単位データ全体の調整パラメータａ、ｂを算出し、調整データを生成した。これは、例えば、図７に示す矢印Ｃの方向への全体的な位置ずれを調整するためのパラメータである。しかしながら、このような全体的な位置ずれが調整された場合においても、図７に示す矢印Ｄの方向への左腕パーツの位置ずれのように、部分的な位置ずれが十分に修正されていない場合がある。本実施形態に係る情報処理装置１００は、以下の処理により、このような部分的な位置ずれの修正を行う。人物が複数回同じ動作をすると、全身の位置ずれのみならず、各パーツ固有のずれが生じる。従って、さらに人物のパーツごとに調整パラメータを算出して、動作データを調整することが好適である。
【００４６】
図８に戻り、Ｓ８０１の処理の後、Ｓ８０２において、パラメータ算出部２０５は、姿勢推定に利用された複数のパーツの中から１つのパーツを処理対象として選択する。次に、Ｓ８０３において、パラメータ算出部２０５は、処理対象のパーツの部分の調整パラメータを算出する。次に、Ｓ８０４において、調整部２０６は、パーツ（部分）の調整パラメータに基づいて、パーツの調整データをさらに調整し、調整データを生成する。
【００４７】
パラメータ算出部２０５は、全体の調整パラメータによる調整後のデータ（調整データ）、すなわち（式６）に基づいて、パーツ（部分）の調整パラメータを算出する。パーツの単位は、例えば、腕、脚等の複数の関節からなる人物部位又は単独の関節とする。パラメータ算出部２０５は、（式７）に示す誤差を最小化するパーツ調整パラメータａpq、ｂpqを算出することにより、左腕パーツに関する調整パラメータを算出する。なお、左腕に関係する関節の番号をｐ（左手首）、ｑ（左肘）とする。
【数７】
2016081121.tif 000009
そして、Ｓ８０３において、パラメータ算出部２０５は、算出したパーツ調整パラメータａpq、ｂpqと（式６）の動作パラメータの左手首、左肘から、新しい調整データを算出する。
【００４８】
以上のように、パーツ単位で調整パラメータを算出し、動作データを調整することで、各動作データが、基準動作データと整合するようになる。他の例としては、情報処理装置１００は、さらに細かい調整レベルとして、各関節の各フレーム単位（ｔjn、ｘjn）、すなわち、データの１点ごとに基準データと整合させるためのｘjnに加えるバイアスを算出してもよい。ただし、データ点ごとに基準動作との誤差最小化となる調整パラメータを算出すると、基準データにオーバーフィッティングして、単に基準データのフレーム間を線形補間する調整データが作成されてしまう。そのため、オーバーフィッティングが発生しないように、動作データの前後のフレームから大きく変化しないような拘束条件をつける、所定以上のバイアスが加わらないような制限を与える、等の工夫が必要である。
【００４９】
次に、Ｓ８０５において、調整部２０６は、姿勢推定に利用されたすべてのパーツの調整データの生成が完了したか否かを確認する。調整部２０６は、すべてのパーツの調整データの生成が完了した場合には（Ｓ８０５でＹｅｓ）、調整データ生成処理（Ｓ３０６）を完了し、処理をＳ３０７（図３）へ進める。調整部２０６は、未処理のパーツが存在する場合には（Ｓ８０５でＮｏ）、処理をＳ８０２へ進める。この場合、Ｓ８０２において、パラメータ算出部２０５は、未処理のパーツを選択する。
【００５０】
そして、Ｓ３０７において、調整部２０６は、すべての単位データの調整データの生成が完了したか否かを確認する。調整部２０６は、すべての単位データの調整データの生成が完了した場合には（Ｓ３０７でＹｅｓ）、処理をＳ３０８へ進める。調整部２０６は、未処理の単位データが存在する場合には（Ｓ３０７でＮｏ）、処理をＳ３０５へ進める。この場合、Ｓ３０５において、パラメータ算出部２０５は、未処理の単位データを選択する。
【００５１】
Ｓ３０８において、合成部２０７は、調整データを合成し、合成データを生成する（合成処理）。そして、合成部２０７は、合成データを例えば表示部１０５等に出力する。合成部２０７は、図８（Ｄ）のプロットのように、複数の動作データを合成し、時間解像度が向上したデータ系列として、合成データを表示してもよいし、図８（Ｄ）の破線のように、移動平均として合成データを表示してもよい。このように、合成データの出力形式は実施形態に限定されるものではない。
【００５２】
サンプリングレートが向上した合成データでは、姿勢推定の誤推定によって生じる外れ値も検知しやすくなる。従って、合成部２０７は、合成動作データに対して外れ値を検出し、これを除去してから、合成データを出力してもよい。外れ値の除去方法は、既存の時系列データにおける外れ値除去方法を用いればよく、詳細な説明は省略するが、人物の動きのデータである前提を利用する等の方法を導入することが好ましい。例えば、合成部２０７は、人物の動きとしてあり得ない速度を示す関節位置を削除する等すればよい。また、合成部２０７は、関節間距離が人物の各関節間距離としてふさわしくないようなデータを削除する等してもよい。
【００５３】
以上のように、本実施形態に係る情報処理装置１００は、反復動作を示す動作データにおいて、１単位の動作データ（単位データ）を抽出し、各関節の位置を調整した上で、合成することにより動作データを得る。これにより、サンプリングレートを向上させることができる。その結果、単独の動作データ（単位データ）では確認できなかった動作の挙動をとらえた動作データを出力することができる。したがって、外れ値の除去も精度よく行うことができる。
【００５４】
さらに、情報処理装置１００の効果を説明すべく、まず、１回のみの計測で動作データを取得した場合の問題点を説明する。本実施形態のセンサ部１０７及び姿勢推定部２００の処理は、サンプリングレートが計測対象動作に対して不十分であることを想定した処理である。センサ部１０７及び姿勢推定部２００の処理はまた、各フレームの姿勢推定結果には誤りが含まれていること、さらに試行ごとの人物の動作自体に揺らぎが含まれていることも想定した処理である。このような想定においては、１回の動作計測において対象の動作を正確に計測できない場合がある。具体的には、姿勢変化の挙動が正確に計測できない、得られた関節位置の信頼性を評価できない、という問題が発生する。
【００５５】
例えば、図６（ｂ）の第２データ５１０ｂ及び図６（ｃ）の第３データ５１０ｃにおいては、時間ｔα付近に−ｘ方向の変位が観測されている（例えばプロットＡ，Ｂ）。しかし、単位データ５１０ａのサンプリングレートが不足しているため、ｔα付近の姿勢推定結果が得られておらず、正しく動作の挙動が得られていない。一方、第３データ５１０ｃのプロットＢは、偶然、姿勢推定の誤推定により出現した挙動の可能性がある。しかしながら、位置の変化に対して前後のフレームとの時間間隔が広いため、あり得る位置変化なのか、外れ値として除去すべきなのかは、１回のみの計測結果から判断するのは困難である。本実施形態に係る情報処理装置１００は、これらの問題を解決するために、複数の単位データを合成して合成データを作成し、仮想的にサンプリングレートを向上させた動作データを作成する。
【００５６】
しかし、単に複数の単位データを重ね合わせただけでは、以下のような問題が発生する。まず、複数の単位データは、同じ人物の同じ内容の動作（例えば歩行の１周期）を計測しているが、それぞれ異なる時刻に計測された異なる試行である。人間が複数回同様の動作を行ったとして、試行毎に一致する動作を行うことは困難である。従って、姿勢推定処理の精度以前に、計測対象である元々の動作・姿勢が微妙に異なるという問題がある。この結果は、試行毎の動作データに、全身のグローバルな位置ずれや、腕や脚等ローカルな部位の位置ずれとして現れる。ただし、本実施形態においては、前述したように、全身の大きな位置ずれについては、動作データを作成する時点で大まかな補正が行われている。また、動作の姿勢位置が、試行毎に異なるのと同様に、動作のタイミングも試行毎に異なる。試行毎の時間的なずれは、動作全体の時間の長短や、腕や脚等部分的な動作の動作タイミングのずれとして現れる。
【００５７】
これに対し、情報処理装置１００のパラメータ算出部２０５は、複数の単位データについて、人物が動作を複数回行うことにより発生する動作間の差の影響をできる限り取り除くために、各単位データの調整パラメータを算出する。そして、調整部２０６が、調整パラメータを用いて各単位データを調整する。これにより、情報処理装置１００は、各種の変動要因を考慮した上で、複数回の動作データを統合して、平均的・代表的な動作データを作成することができるようになる。すなわち、情報処理装置１００は、複数の動作を合成することで、単体の単位データよりも、時間軸方向に超解像化され、姿勢推定ノイズの除去も行いやすい動作データを得ることができる。
【００５８】
リハビリテーションでは、同じ動作を繰り返して計測する状況がある。例えば、歩行動作はリハビリテーションにおいて重要な動作の一つであるが、歩行動作は反復的な動作である。また、スクワット等定型動作を複数回実施して、姿勢を評価するような場合もある。一方、スポーツのフォーム解析においても、繰り返し同じフォームの動作を行い、フォームチェックを行うというような状況は、ごく自然な状況といえる。
【００５９】
これらの状況では、ある同じ動作を示す動作データを複数回取得することが容易である。また、複数回の動作実行後に姿勢計測結果を出力し、解析や詳細な可視化を行うような使い方も想定できることから、必ずしもリアルタイムに姿勢計測結果を出力しなくてもよいような状況にある。このようなケースにおいて、本実施形態に係る情報処理装置１００は、同様の動作を計測した複数の動作データを合成することで、その動作の代表的な動作データを作成することができる。すなわち、情報処理装置１００は、仮想的にサンプリングレートが向上した動作データを取得することができる。したがって、情報処理装置１００は、１回の動作データ取得では正しく動作データが得られないような対象動作についても、精度のよい動作データを取得できるようになる。
【００６０】
次に、第１の実施形態に係る情報処理装置１００の変更例について説明する。初めに基準データ選択に係る変更例について説明する。情報処理装置１００による基準データを選択する処理は、実施形態に限定されるものではない。基準データ選択に係る変更例として、第１〜第５の変更例を示す。第１の変更例としては、基準データ選択部２０４は、例えば、単純にランダムに１つの単位データを基準データとして選択してもよい。
【００６１】
また、第２の変更例としては、基準データ選択部２０４は、単位データの特徴量に基づいて、信頼性が高いと推定される単位データを基準データとして自動的に選択してもよい。姿勢推定処理では、誤推定が発生する可能性がある。そこで、基準データ選択部２０４は、できるだけ誤推定を含まない単位データを自動的に選択するのが好ましい。具体的には、基準データ選択部２０４は、各単位データに対してデータの信頼性を評価する。基準データ選択部２０４は、例えば人物の姿勢としてあり得ない姿勢となっているフレームを含んでいる場合に、信頼性が低いと判断する。あり得ない姿勢としては、各関節間の距離が人物の関節間として正しいか、を評価する等の方法がある。
【００６２】
また、基準データ選択部２０４は、関節位置の移動軌跡が人物のあり得る動きの速度を上回るような挙動を示している場合は信頼性が低いと判断する。また、同様の趣旨であるが、基準データ選択部２０４は、高周波ノイズが多い移動軌跡を含む場合は信頼性が低いとしてもよい。基準データ選択部２０４は、このような信頼性評価を各単位データに対して実施して、最も信頼性が高い単位データを基準データとして選択する。
【００６３】
また、第３の変更例としては、基準データ選択部２０４は、すべての単位データを順次、基準データの候補として設定し、基準データ候補を用いて得られた調整データと基準データ候補の間の差分を算出する（差分算出処理）。そして、基準データ選択部２０４は、最小となる基準データ候補を基準データとして選択してもよい。図１０は、本例に係る基準データ選択部２０４による単位データ選択処理を示すフローチャートである。Ｓ１０００において、基準データ選択部２０４は、複数（Ｍ個）の単位データの中から１つの単位データを基準データ候補として設定する。次に、Ｓ１００１において、２０４は、Ｍ個の単位データのうち、基準データ候補として設定された単位データ以外の複数の単位データの中から１つの単位データを処理対象として選択する。
【００６４】
次に、Ｓ１００２において、パラメータ算出部２０５は、基準データ候補と単位データの誤差が小さくなるように、単位データを調整する調整パラメータを算出し、調整部２０６は、調整パラメータにより調整データを得る。次に、Ｓ１００３において、基準データ選択部２０４は、調整データと基準データ候補の間の差分を算出する。次に、Ｓ１００４において、基準データ選択部２０４は、Ｓ１００１〜Ｓ１００３の処理をＭ−１回繰り返したか否かを確認する。すなわち、基準データ選択部２０４は、基準データ候補以外の単位データすべてを処理対象として、差分を算出したか否かを確認する。
【００６５】
基準データ選択部２０４は、Ｍ−１回の繰り返しが完了した場合には（Ｓ１００４でＹｅｓ）、処理をＳ１００５へ進める。基準データ選択部２０４は、Ｍ−１回の繰り返しが完了していない場合には（Ｓ１００４でＮｏ）、処理をＳ１００１へ進める。この場合、Ｓ１００１において、基準データ選択部２０４は、未処理の単位データを１つ選択する。Ｓ１００５において、基準データ選択部２０４は、各単位データに対して得られた複数の差分の総和を差分データとして基準データ候補に対応付けてＲＡＭ１０３等の記憶部に蓄積する。次に、Ｓ１００６において、基準データ選択部２０４は、Ｓ１００１からＳ１００５の処理をＭ回繰り返したか否かを確認する。すなわち、基準データ選択部２０４は、すべての単位データを基準データ候補として設定したか否かを確認する。
【００６６】
基準データ選択部２０４は、Ｍ回の繰り返しが完了した場合には（Ｓ１００６でＹｅｓ）、処理をＳ１００７へ進める。基準データ選択部２０４は、Ｍ回の繰り返しが完了していない場合には（Ｓ１００６でＮｏ）、処理をＳ１０００へ進める。この場合、Ｓ１０００において、基準データ選択部２０４は、未処理の単位データを基準データ候補として設定する。Ｓ１００７において、基準データ選択部２０４は、Ｍ個の単位データそれぞれを基準データ候補としたときの差分データを参照し、差分の総和が最小となる基準データ候補（単位データ）を基準データとして選択する。
【００６７】
また、第４の変更例としては、基準データ選択部２０４は、第３の変更例の処理において、すべての単位データを基準データ候補とするのにかえて、一部の単位データを基準データ候補として、Ｓ１０００〜Ｓ１００６のループ処理を繰り返してもよい。この場合、基準データ選択部２０４は、Ｍ個の全動作データからＭL個（ＭL＜Ｍ）単位データを選択する。そして、基準データ選択部２０４は、Ｓ１００６におけるループ回数ＭをＭLとする。また、基準データ選択部２０４は、第３の変更例において説明したように、各単位データの信頼性を評価して、信頼性上位ＭL個の単位データを選択してもよい。また、基準データ選択部２０４は、第１の変更例において説明したように、ランダムにＭL個の単位データを選択してもよい。ループ処理の対象の単位データをＭL個に限定することで、処理の高速化が実現できる。
【００６８】
また、第５の変更例としては、基準データ選択部２０４は、ランダムな順序で単位データを基準データ候補に順次設定し、差分が閾値以下となった時点で、このときの基準データ候補（単位データ）を基準データとして選択してもよい。このようにループ処理を途中で打ち切ることにより、処理の高速化を図ることができる。
【００６９】
次に、調整パラメータ算出に係る変更例について説明する。情報処理装置１００による調整パラメータを算出する処理は、実施形態に限定されるものではない。調整パラメータ算出に係る変更例として、第６〜第８の変更例を示す。
【００７０】
第６の変更例としては、パラメータ算出部２０５は、誤差最小化による調整パラメータａ、ｂの算出に際し、単位データの各データ点（ｔjn、ｘjn）の、基準データからのばらつき（各データ点の信頼性、基準データとの類似性）を考慮してもよい。具体的には、パラメータ算出部２０５は、各データ点に重みを付けた重み付き推定を実施する。例えば、パラメータ算出部２０５は、ある単位データの各データ点について、基準データとの差分を算出し、その差分の分布から、各データ点のｐ値を算出する。パラメータ算出部２０５は、このｐ値に基づいて、各データ点の信頼度を設定し、重み付き最小二乗で調整パラメータａ、ｂを算出する。例えば、あるデータ点（ｔjn、ｘjn）の誤差が、他の誤差と比べて著しく大きい場合には、ｐ値は小さな値を示す。このとき、パラメータ算出部２０５は、ｐ値の値を元に、このデータ点の誤差が数５等の全体誤差に与える影響を小さくする。これにより、基準データから大きく外れた単位データのデータ点に引きずられることなく、適切な調整パラメータａ、ｂを算出することができる。
【００７１】
また、第７の変更例としては、パラメータ算出部２０５は、あるデータ点の時間ｔjnを取得し、他の単位データのｔjn近傍のｘjnを収集することにより、ある時間ｔjn付近の関節位置の分布を得てもよい。そして、パラメータ算出部２０５は、現在、対象としているデータ点のｘjnの重みを、この分布とｘjnから算出する。具体的には、パラメータ算出部２０５は、ｘjnが分布の中心付近に存在すれば、信頼できるデータ点であるとして、重みを大きくする。一方、パラメータ算出部２０５は、分布から外れると信用できない点として重みを小さくする。このように、パラメータ算出部２０５は、各データ点について、重みを設定した上で、重み付き最小二乗により調整パラメータを算出してもよい。また、さらに、あるデータ点に関する他の動作データを含めた関節位置の分布を算出する場合、パラメータ算出部２０５は、分布が広い（ばらつきが大きい）データ点の重みを小さくして調整パラメータ算出するようにしてもよい。
【００７２】
また、第８の変更例としては、第１の実施形態においては、３次元空間の各軸それぞれについてバイアスとスケールの調整パラメータを算出したが、調整パラメータの種類は、実施形態に限定されるものではない。例えば、パラメータ算出部２０５は、３次元空間中での回転成分も調整するような調整パラメータを算出してもよい。パラメータ算出部２０５は、例えば以下の処理により、回転成分も含む調整パラメータの算出を行う。すなわち、（式８）に示される基準動作データの関節ｊについて、時刻ｔの３次元座標（ｘ、ｙ、ｚ）を出力する関数に対し、調整パラメータを算出するために最小化する関節ｊの誤差は、（式９）のように表される。
【数８】
2016081121.tif 000010
【数９】
2016081121.tif 000011
ここで、Ａ、Ｂ及びＸはそれぞれ（式１０）、（式１１）及び（式１２）で表される。
【数１０】
2016081121.tif 000012
【数１１】
2016081121.tif 000013
【数１２】
2016081121.tif 000014
パラメータ算出部２０５は、（式１０）及び（式１１）のａ〜ｉ、Ｔｘ、Ｔｙ、Ｔｚを調整パラメータとして算出する。
【００７３】
また、第９の変更例としては、情報処理装置１００による調整データ合成処理は、実施形態に限定されるものではない。合成部２０７は、例えば、調整データを重み付けした上で、合成を行うこととしてもよい。合成部２０７は、例えば、第２の変更例において説明した信頼性評価を行い、各調整データの元の単位データの信頼性に基づいて、各調整データに重みを付ける。重みは、外れ値除去に利用したり、移動平均（重み付き移動平均とする）等によるデータの統合に利用したりすることができる。重みの設定方法としては、合成部２０７は、基準データとした単位データに重みを付けてもよい。
【００７４】
特に、基準データの設定方法として、実施形態において説明したような、ユーザにより選択された単位データとする方法や、第３の変更例において説明したような、すべての単位データを基準データ候補として評価する方法を用いたとする。この場合には、基準データの動作は、比較的信頼できるものと考えることができる。このような場合には、特に本例のように、重み付けを行うことが好適である。また、合成部２０７は、これらの信頼性が低い等の理由により、合成する対象にふさわしくないと判断できる単位データは、合成する対象から除外してもよい。
【００７５】
また、合成部２０７は、調整パラメータにより調整する調整量が、閾値以上となる場合には、その単位データの信頼性は低いとし、重みを小さくしてもよい。調整量が大きいということは、基準データに対して、その単位データが大きく異なる動作を示しており、基準データと整合させるために、大きな調整量が必要であったと考えられる。従って、調整量を元に重み付けを行うことで、基準データと大きく異なる単位データの重みを小さくした合成を行うことができる。
【００７６】
また、合成の対象から除外する単位データは、単位データ全体であってもよく、また他の例としては、単位データの一部であってもよい。部分的な除外方法としては、例えば、ある腕や脚等のパーツ単位が考えられる。また他の例としては、合成部２０７は、第４の実施形態において説明するようなキーフレームを境界とする部分のデータ毎に、合成データへの採択と除外を判断してもよい。
【００７７】
また、合成部２０７は、算出した調整パラメータの分布を元に、各単位データの重みを設定してもうよい。この場合、同様の動作を示す単位データの調整パラメータは、ある程度同じような傾向を持つと仮定する。従って、算出した調整パラメータａ、ｂは、概ね同じような値が得られることが期待できるとする。この場合、他の単位データの調整パラメータから、著しく離れた調整パラメータが得られた単位データは信頼性が低いと考えられる。これに対応し、合成部２０７は、全動作データの調整パラメータａ、ｂから、パラメータの分布を算出し、その分布から大きく外れるような単位データの重みを小さくするものとしてもよい。
【００７８】
第１０の変更例としては、本実施形態に係る情報処理装置１００は、センサ部１０７と姿勢推定部２００を含み、情報処理装置１００の中で各フレームの距離画像から姿勢推定を実施したが、これに限定されるものではない。例えば、予め、他の装置等において姿勢推定処理が実行され、情報処理装置１００は、姿勢推定結果を適当なストレージデバイスに格納していてもよい。この場合、情報処理装置１００は、格納されている姿勢推定結果を動作データとして受け付けて、処理を行えばよい。
【００７９】
第１１の変更例としては、情報処理装置１００は、人物推定結果として人物の関節位置を特定したが、これに限定されるものではない。情報処理装置１００は、人物推定結果として例えば人物の関節の角度を特定してもよい。この場合、情報処理装置１００は、単位データの関節角度と基準データの関節角度の時間変化が近づくように調整パラメータを算出すればよい。
【００８０】
（第２の実施形態）
第１の実施形態においては、連続動作に対応する動作データを受け付ける情報処理装置について説明したが、情報処理装置１００は、複数の位データを受け付ければよい。すなわち情報処理装置１００が受け付けるべきデータは、連続動作に対応する動作データに限定されるものではない。第２の実施形態においては、ゴルフスイングを複数回撮影し、これにより得られた複数の動作データを受け付ける情報処理装置１００について説明する。すなわち、第２の実施形態に係る情報処理装置１００は、それぞれが単位データを１つ含む、複数の動作データを受け付ける。以下、第２の実施形態に係る情報処理装置１００について、第１の実施形態に係る情報処理装置１００と異なる点について説明する。
【００８１】
図１１は、第２の実施形態に係る動作データ受付部２０１が取得する動作データの一例を示す図である。図１１には、ゴルフスイングの姿勢に対応する２つの動作データ１１００ａ，１１００ｂを示している。各動作データ１１００ａ，１１００ｂは、共に、ゴルフスィングの１単位を含む動作データであり、各動作データ１１００ａ，１１００ｂは、別のタイミングにおいて記録された距離画像から得られた動作データである。各動作データ１１００ａ，１１００ｂは、例えば、ユーザがゴルフスイングを行う毎に、センサ部１０７により得られた距離画像から得ることができる。ゴルフスイングは、歩行と異なりユーザが意識することなく連続して行う動作ではない。すなわち、ゴルフスイングにおいては、その単位データを複数得るためには、ユーザが意識してゴルフスイングを複数回行う必要がある。しかし、フォームチェック等ユーザが繰り返しゴルフスイングを行う状況において、複数の動作データを得ることとすれば、ユーザは動作データ生成のためだけに、ある動作を複数回行うといった必要はない。
【００８２】
本実施形態に係る単位データ抽出部２０２は、動作データ受付部２０１が受け付けた複数の動作データそれぞれから単位データを抽出する。例えば、図１１に示す例においては、２つの動作データ１１００ａ，１１００ｂそれぞれから、単位データ１１１０ａ，１１１０ｂを抽出する。単位データ抽出部２０２は、動作データの開始フレーム及び終了フレームを検出し、これらのフレームに基づいて、単位データを抽出する。図１１の例においては、フレーム１１３０が開始フレーム、１１３１が終了フレームである。この結果、開始フレーム１１３０〜終了フレーム１１３１の間のデータが単位データ１１１０ａとして抽出される。
【００８３】
なお、単位データ抽出部２０２は、動作データの中から、人物が動き始めたフレームを検知して（あるいは、さらに、所定のアドレス姿勢であるかを認識して）、開始フレームを特定する。単位データ抽出部２０２はまた、人物の動作が停止したフレームを検知して（あるいは、さらに、所定のフィニッシュ姿勢であるかを認識して）、終了フレームを特定する。なお、第２の実施形態に係る情報処理装置１００のこれ以外の構成及び処理は、第１の実施形態に係る情報処理装置１００の構成及び処理と同様である。
【００８４】
第２の実施形態に係る情報処理装置１００の第１の変更例としては、情報処理装置１００は、単位データ１１１０ａ，１１１０ｂを含む長いシーケンスデータから、単位データを抽出してもよい。この場合、ユーザは複数回のスイングを行い、情報処理装置１００は、継続的に、センサ部１０７による撮影及び姿勢推定部２００による姿勢推定を行う。ここで、興味のある動作期間はスイングの間の動作であるため、フィニッシュ姿勢から、再びスイングを行うためにアドレス姿勢に以降する期間の動作は不要なデータである。上記のように、開始フレームと終了フレームを適切に選択することができれば、長いシーケンスのデータからも興味のある動作期間を動作データとして取得できる。
【００８５】
連続して複数回のスイング動作を計測する場合には、ユーザのスイング開始タイミングをコントロールすれば、開始フレームの決定が簡単になる。例えば、情報処理装置１００は、音等でユーザにスイング開始を促してもよい。アドレス姿勢を取ったユーザが、情報処理装置１００が発する音に合わせてスイングを開始すれば、情報処理装置１００は、音を発生させたタイミングの（あるいは、その少し後の）フレームを開始フレームとして選択することができる。さらに、情報処理装置１００は、音を発生させたタイミング前後で、動き始めのフレームを探索するようにしてもよい。さらにまた、情報処理装置１００は、終了タイミングを知らせる音を出力し、ユーザには開始タイミングの音と終了タイミングの音の間の時間に、スイング動作をさせるようにしてもよい。これにより、終了フレームの検知も容易になる。また、他の例としては、開始フレーム及び終了フレームは、ユーザが選択することとしてもよい。
【００８６】
以上のように、情報処理装置１００が受け付ける動作データは複数の単位データを含むものであればよく、そのためのデータ構成は、実施形態に限定されるものではない。このように、情報処理装置１００は、様々なデータ取得方法を用いて、サンプリングレートの高い合成データを得ることができる。
【００８７】
（第３の実施形態）
第３の実施形態に係る情報処理装置１００は、基準データとして利用するテンプレート動作データを予めＨＤＤ１０４等の記憶部に記憶している。すなわち、情報処理装置１００の記憶部は、予め基準データを記憶している。ここで、テンプレート動作データは、処理対象となる動作の模範的な動作を示す単位データであり、計測ノイズ（姿勢の誤推定等）がないか、非常に少ないデータであって、且つ高サンプリングレートのデータである。このようなテンプレート動作データは、予め、光学的モーションキャプチャー等を利用して作成される。テンプレート動作データは、情報処理装置１００の出荷前に準備されるため、姿勢計測対象の人物（エンドユーザ）と異なる人物の動作データとなる。
【００８８】
以下、第３の実施形態に係る情報処理装置１００について、第１の実施形態に係る情報処理装置１００と異なる点について説明する。第３の実施形態においては、基準データ選択部２０４は、記憶部に記憶されているテンプレート動作データを読み出し、基準データとして設定する。そして、パラメータ算出部２０５は、記憶部から読み出された基準データに基づいて、単位データの調整パラメータを算出する。なお、第３の実施形態に係る情報処理装置１００のこれ以外の構成及び動作は、他の実施形態に係る情報処理装置１００の構成及び動作と同様である。
【００８９】
第３の実施形態に係る情報処理装置１００は、テンプレート動作データを用いるので、基準データに、ノイズや低サンプリングレートに起因する欠損がなくなる。従って、各動作データの調整が安定するというメリットがある。
【００９０】
第３の実施形態に係る情報処理装置１００の第１の変更例としては、情報処理装置１００は、テンプレート動作データを複数記憶してもよい。テンプレート動作データは、計測対象の人物の動作と異なるため、身長、体格等の違いにより、姿勢情報のサイズが異なることや、その人物固有の動きと一致しない部分がある。このため、単位データの調整データを算出するのに、テンプレート動作データが適さない場合がある。これに対し、本変更例においては、情報処理装置１００は、身長、体格や、微少な動作パターンが異なる複数のテンプレート動作データを予め記憶部に記憶しておいてもよい。そして、情報処理装置１００は、各テンプレート動作データを用いて調整データを生成し、調整データと、テンプレート動作データとの差分が最小となるテンプレート動作データを選択する。なお、この処理は、図１０を参照しつつ説明した処理と同様である。ただし、Ｍ個の単位データを複数のテンプレート動作データに変更したものとなる。
【００９１】
第２の変更例としては、基準データ選択部２０４は、記憶部に記憶されている１つのテンプレート動作データとの類似度が最大となる単位データを、基準データとして選択してもよい。テンプレート動作に最も近い単位データは、概ね、その動作を正しく示していることが期待できる。さらに、その計測対象人物の単位データを基準データとすることから、その個人特有の動作を示す単位データを基準データとして選択することができる。この方法は、第１の実施形態に係る第２の変更例に係る処理と同じ趣旨の処理であり、複数の単位データから、最も信頼性のある単位データを選択する方法の一つの形態となる。
【００９２】
（第４の実施形態）
第１の実施形態に係る情報処理装置１００は、関節位置を調整する調整パラメータを用いて、調整データを生成したが、第４の実施形態に係る情報処理装置１００は、時間軸方向のずれを調整する調整パラメータを用いて、調整データを生成する。ここで、第１の実施形態において説明した、関節位置の調整パラメータを姿勢調整パラメータ、本実施形態に係る情報処理装置１００が利用する、時間軸方向の調整パラメータを時間調整パラメータと称することとする。以下、第４の実施形態に係る情報処理装置１００について、第１の実施形態に係る情報処理装置１００と異なる点について説明する。
【００９３】
まず、時間方向の調整パラメータの意義について説明する。複数の単位データは、人物が動作を複数回行うことにより得られたデータである。このため、単位データ間で差が生じる。その理由の一つは毎回の動作で同じ位置の姿勢をとることができないことであり、これについては、第１の実施形態において説明した。一方で、仮に、同じ姿勢で複数回の動作を行うことができたとしても、その動きの速度が異なれば、時間軸方向においては、異なる姿勢となる。このため、このような動作の速度が異なる単位データをそのまま合成しても、好ましい結果を得ることはできない。
【００９４】
図１２は、単位データ１２００の時間ｔγにおける姿勢と単位データ１２０１の時間ｔβにおける姿勢を示している。ここで、単位データ１２００，１２０１は、姿勢は同じであるが、時間軸方向のずれが生じているデータであるとする。単位データ１２００，１２０１は、同一動作の過程のある姿勢である。すなわち、動作開始から異なる時間において、同じ姿勢が出現している。これは、全体的な動作が単位データ１２０１の方が、ｔγ−ｔβだけ早い（この姿勢が出現するタイミングが早い）ということを示している。第４の実施形態に係る情報処理装置１００は、このような単位データ間の時間ずれ（図１２の矢印Ｅの方向のずれ）を算出し、基準データに整合するように単位データを調整する。
【００９５】
図１３（Ａ）は、単位データ及び基準データのｘ座標位置の時間変化のグラフを示す図である。図１３（Ａ）においては、単位データを黒四角印のプロット、基準データをバツ印のプロットで示している。また、図１３（Ａ）に示す破線は、基準データの区分線形関数である。図１３（Ａ）に示す例においては、単位データは、基準データに比べて、全体的に矢印の長さの時間分早い動作になっている。本実施形態に係るパラメータ算出部２０５は、この矢印のバイアスを算出する。また、パラメータ算出部２０５は、合わせて時間方向のスケーリングパラメータを算出してもよい。
【００９６】
時間に関する調整パラメータ算出は、例えば、以下のように実施することができる。まず、第１の実施形態において説明したように、情報処理装置１００は、各単位データの開始フレームを一致させておく。また、後述するように、情報処理装置１００は、終了フレームや、キーフレームも単位データ間で予め一致させておいてもよい。このような初期値を与えられた状態では、時間方向のずれは比較的小さいことが期待できる。従って、最適解が初期値近傍に存在すると仮定し、本実施形態においては、パラメータ算出部２０５は、調整パラメータを局所探索法で算出する。例えば、ある関節ｊのｘ軸における時間調整パラメータａt、ｂtは、（式２）及び（式３）の定義を利用すると、以下の誤差εjを最小化するａt、ｂtにより得られる。
【数１３】
2016081121.tif 000015
パラメータ算出部２０５は、ａt＝１、ｂt＝０を初期値として、近傍で最適解を探索することで、時間調整パラメータａt、ｂtを算出する。
【００９７】
（式１３）は、ある関節ｊについての誤差を示す式で、パラメータ算出部２０５は、全身の時間調整パラメータを算出する際には、（式５）と同様に、全関節の総和誤差を最小化するようなパラメータを求めればよい。ただし、対象とする動作によっては、時間方向の調整を行うことが不適切な関節が存在する。例えば、ゴルフスイングでの足首は、動作全体を通じてほぼ動かない。このような関節において、時間方向に動作データを移動させても誤差に変化がなく、誤差を最小化するパラメータが求められない。従って、パラメータ算出部２０５は、時間調整パラメータの算出においては、変化の大きい（動きの大きい）関節を対象として、誤差最小化を計算してもよい。
【００９８】
以上のような時間軸についての調整パラメータで単位データを調整した結果の例を図１３（Ｂ）に示す。図１３（Ｂ）では、黒四角印のプロットで示す調整データが、図１３（Ａ）の単位データに比べて、基準データ（バツ印のプロット）と一致していることが分かる。以上では、ｘ軸の動作データを用いて時間調整パラメータを算出する処理について説明したが、パラメータ算出部２０５は、ｘ、ｙ、ｚの３次元空間で時間調整パラメータを算出するものとする。なお、第４の実施形態にかかる情報処理装置１００のこれ以外の構成及び処理は、第１の実施形態に係る情報処理装置１００の構成及び処理と同様である。
【００９９】
第４の実施形態に係る情報処理装置１００は、単位データの時間軸方向の調整を行うので、動作のタイミング、速度が異なる複数の単位データから、好ましい合成データを生成することができる。
【０１００】
第４の実施形態に係る情報処理装置１００の第１の変更例としては、情報処理装置１００は、さらにキーフレームの時間合わせを行ってもよい。ここで、キーフレームは、対象としている動作に特徴的な姿勢や、関節位置座標が極値をとるようなタイミングのフレームである。図１１のゴルフスイングの単位データ１１１０ａを例に、キーフレームについて説明する。ここでは、トップオブスイング１１２０とインパクト１１２１のタイミングをキーフレームとしている。パラメータ算出部２０５は、全体姿勢や、手首位置の時間変化の極値等に基づいて、各単位データから、キーフレームを検出することができる。また、他の例としては、パラメータ算出部２０５は、外部センサ等により取得できるタイミングに最も近いフレームをキーフレームとして検出してもよい。
そして、パラメータ算出部２０５は、各単位データのキーフレームの時間位置が一致するように２つのキーフレームを境界位置とする区間内のフレームを調整するような調整パラメータを算出してもよい。なお、前述したように、パラメータ算出部２０５は、初期値の精度向上のため、キーフレームの時間をすべての単位データで一致させる修正を、誤差最小化による調整パラメータ算出の前に行っておくことが好ましい。
【０１０１】
第２の変更例としては、パラメータ算出部２０５は、時間調整パラメータを、２つのキーフレームを境界位置とする区間単位で算出してもよい。図１４に示すグラフには、図１１の単位データ１１０ａの手首ｘ軸（垂直上向き）の時間変化（菱形のプロット）と、基準データ（実線）と、を示している。図１４において、区間ｔ11は、図１３に示すアドレス（開始フレーム）１１３０とトップオブスイング１１２０の間の期間である。区間ｔ12は、トップオブスイング１１２０とインパクト１１２１の間のダウンスイング期間である。区間ｔ13は、インパクト１１２１と終了フレーム１１３１の間のフォロースルー期間である。また、図１４に示す基準データは、テンプレート動作から取得した基準データとする。
【０１０２】
図１４に示すグラフにおいては、区間ｔ11と区間ｔ12においては、単位データは、基準データと概ね一致している。一方で、区間ｔ13においては、単位データは、基準データから乖離している。すなわち、単位データ１１１０ａに示されるゴルフスイングは、インパクトのタイミングまでは基準データと良く一致した動作であったが、フォロースルー期間（区間ｔ13）では若干遅いフォロースルー動作となったことを示している。このような場合、パラメータ算出部２０５は、フォロースルー期間（区間ｔ13）の調整パラメータを算出する。そして、調整部２０６は、区間ｔ13に対して算出された調整パラメータに基づいて、区間ｔ13内のフレームから調整データを得る。
【０１０３】
また、他の例としては、パラメータ算出部２０５は、（式１３）のように単位データの全時間の時間調整パラメータを算出した後に、基準データと単位データのずれが大きいキーフレーム間を調整してもよい。また、パラメータ算出部２０５は、パーツ単位での姿勢調整パラメータと組み合わせて、あるパーツのあるキーフレーム間において、姿勢調整パラメータと時間調整パラメータを算出してもよい。
【０１０４】
第３の変更例としては、パラメータ算出部２０５は、姿勢調整パラメータ及び時間調整パラメータを共に算出することとしてもよく、また他の例としては何れか一方の調整パラメータを算出することとしてもよい。パラメータ算出部２０５は、姿勢調整パラメータ及び時間調整パラメータを算出する場合は、まず一方の調整パラメータを算出する。そして、調整部２０６は、算出された調整パラメータに基づいて、調整データを得る。その後、パラメータ算出部２０５は、もう一方の調整パラメータを調整パラメータを算出する。そして、調整部２０６は、算出された調整パラメータに基づいて、調整データを得る。さらに、パラメータ算出部２０５は、２つパラメータ調整で、基準データと単位データの誤差が最小化するように、誤差が変化しなくなるまで、姿勢調整パラメータと時間調整パラメータの算出を繰り返してもよい。
【０１０５】
（第５の実施形態）
第１〜第４の実施形態に係る情報処理装置１００は、１つのセンサ部１０７により得られた距離画像から、合成データを生成したが、第５の実施形態に係る情報処理装置１００は、複数のセンサ部により得られた距離画像から合成データを生成する。以下、第５の実施形態に係る情報処理装置１００について、第１の実施形態に係る情報処理装置１００と異なる点について説明する。第５の実施形態に係る情報処理装置１００は、複数のセンサ部を有している。各センサ部は、人物の周囲の異なる位置に設置され、異なる位置から、異なる方向に人物を撮影し、距離画像を取得する。なお、各センサ部は、非同期で、それぞれ異なるサンプリングタイミングで同じ動作の距離画像を撮影する。
【０１０６】
姿勢推定部２００は、各センサ部により得られた距離画像から総合的に人物姿勢を推定し、動作データを生成する。ここで、動作データに含まれる姿勢（関節位置座標）が同一の座標系で表されるようにする。例えば、撮影空間中に原点があるような共通の座標系で姿勢を表現してもよいし、ある代表センサ部のカメラ座標系に、他のセンサ部から得た姿勢を座標変換してもよい。そして、動作データ受付部２０１は、複数の距離画像に基づいて生成された動作データを受け付ける。なお、第５の実施形態に係る情報処理装置１００のこれ以外の構成及び処理は、他の実施形態に係る情報処理装置１００の構成及び処理と同様である。
【０１０７】
以上のように、本実施形態に係る情報処理装置１００は、複数のセンサ部により異なる方向から撮影された距離画像を利用するので、１つのセンサ部の距離画像から推定できないような位置や姿勢を推定することができる。さらに、非同期の距離画像が合成されることにより、サンプリング間のデータが補間されるので、合成データのサンプリングレートを向上させることができる。
【０１０８】
すなわち、一つのセンサ部で人物の姿勢を推定すると、人物自身によって隠された部位の姿勢推定精度は低くなる。例えば、センサ部のカメラに対して横向きに立つ人物の、カメラから遠い位置にある腕は胴体によって遮蔽されてしまう。この結果、その腕は距離画像に写らず、姿勢推定処理で正確な位置・姿勢が判断できない。これに対し、同様の動作を複数回実行するため、動作の度にカメラに対する人物向きを変えて、複数の動作データを作成することもできる。これにより、各撮影方向で信頼できる部分の姿勢に重みを付けて動作データを合成することにより、または、隠れている部分の姿勢推定結果を削除して動作データを合成することにより、精度の高い動作データを取得することができるようになる。しかし、動作の度に、人物の向きを変更することが困難な場合もある。これに対し、本実施形態に係る情報処理装置１００は、複数のセンサ部が異なる方向から撮影した距離画像から合成データを得るので、より高精度な合成データを得ることができる。
【０１０９】
また、第５の実施形態に係る情報処理装置１００の変更例としては、情報処理装置１００は、複数センサによる動作データ取得を、異なる時刻の同様の人物動作に対して実施して、複数の動作データを作成してもよい。
【０１１０】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１１１】
以上、上述した各実施形態によれば、姿勢の推定方法に依存することなく、高精度な動作データを得ることができる。
【０１１２】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１１３】
１００  情報処理装置
２０２  単位データ抽出部
２０４  基準データ選択部
２０５  パラメータ算出部
２０６  調整部
２０７  合成部
【図１】
2016081121.tif 000016
【図２】
2016081121.tif 000017
【図３】
2016081121.tif 000018
【図４】
2016081121.tif 000019
【図５】
2016081121.tif 000020
【図６】
2016081121.tif 000021
【図７】
2016081121.tif 000022
【図８】
2016081121.tif 000023
【図９】
2016081121.tif 000024
【図１０】
2016081121.tif 000025
【図１１】
2016081121.tif 000026
【図１２】
2016081121.tif 000027
【図１３】
2016081121.tif 000028
【図１４】
2016081121.tif 000029