IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー株式会社の特許一覧

特許7396438プログラム、情報処理装置、及び情報処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】プログラム、情報処理装置、及び情報処理方法
(51)【国際特許分類】
   G01B 21/00 20060101AFI20231205BHJP
   A61B 5/11 20060101ALI20231205BHJP
   G06F 3/01 20060101ALI20231205BHJP
【FI】
G01B21/00 A
A61B5/11 230
G06F3/01 510
【請求項の数】 17
(21)【出願番号】P 2022179946
(22)【出願日】2022-11-10
(62)【分割の表示】P 2020514372の分割
【原出願日】2019-04-15
(65)【公開番号】P2023016825
(43)【公開日】2023-02-02
【審査請求日】2022-12-08
(31)【優先権主張番号】P 2018079335
(32)【優先日】2018-04-17
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】福本 康隆
(72)【発明者】
【氏名】望月 敬太
【審査官】眞岩 久恵
(56)【参考文献】
【文献】特開2006-177749(JP,A)
【文献】特表2017-511906(JP,A)
【文献】Y. Kato 外3名,Wearable Gait Logging System Attached on Ankles to Estimate Foot Steps and Trajectories,Proceedings of the 2017 IEEE/SICE International Symposium on System Integration, Taipei, Taiwan, December 11-14, 2017,2017年,pp.294-299
【文献】加藤 佳大 外3名,人体下肢振動を利用した歩行者の自己位置推定の補正,Proceedings of the 2016 JSME Conference on Robotics and Mechatronics, Yokohama, Japan, June 8-11, 2016,No.16-2 1A2-12a1
(58)【調査した分野】(Int.Cl.,DB名)
G01B 21/00-21/32
A61B 5/11
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
ユーザの足首又はふくらはぎの位置に装着されたセンサ装置により検出されたセンサデータに基づいて、前記ユーザの足先の速度情報及び当該足先の位置情報を推定する推定部と、
前記推定部により推定された前記足先の速度情報の推定結果に基づいて、前記足先の位置情報を補正する補正部と、
として、コンピュータを機能させるプログラム。
【請求項2】
前記推定部は、前記センサ装置の装着位置から見た前記足先の位置情報を推定する、
請求項1に記載のプログラム。
【請求項3】
前記推定部は、前記センサデータに対して慣性航法に基づく処理を行うことにより得られる、グローバル座標系における前記センサ装置の加速度情報及び前記センサ装置の姿勢情報を用いて、前記足先の速度情報及び前記センサ装置の装着位置から見た前記足先の位置情報を推定する、請求項1に記載のプログラム。
【請求項4】
前記補正部は、前記推定部により得られる、前記センサ装置の加速度情報及び前記センサ装置の姿勢情報と、前記足先の速度情報及び前記足先の位置情報とを融合するフュージョン処理を実行する、請求項2に記載のプログラム。
【請求項5】
前記補正部は、前記フュージョン処理の結果に基づいて補正した前記センサ装置の位置情報及び前記足先の位置情報を取得する、請求項4に記載のプログラム。
【請求項6】
前記補正部は、カルマンフィルタを用いて融合する、請求項4に記載のプログラム。
【請求項7】
前記センサ装置は、前記ユーザの両足首又は両ふくらはぎに装着され、
前記推定部は、前記両足首又は前記両ふくらはぎにおける前記センサ装置により検出されたセンサデータに基づいて、前記ユーザの両足先の速度情報、前記ユーザの両足首から見た当該両足先の位置情報及び当該両足首の相対距離情報を推定する、
請求項1に記載のプログラム。
【請求項8】
前記補正部は、前記推定部より推定された前記両足先の速度情報、前記両足先の位置情報及び前記両足首の相対位置情報を融合するフュージョン処理を実行する、
請求項7に記載のプログラム。
【請求項9】
前記推定部は、機械学習を用いて推定する、請求項1に記載のプログラム。
【請求項10】
前記補正部は、前記推定部により推定された前記足先の速度情報を2値のラベルを持つ推定結果として出力する、請求項1に記載のプログラム。
【請求項11】
前記補正部は、前記推定部により推定された前記足先の速度情報を3値以上のラベルを持つ推定結果として出力する、請求項1に記載のプログラム。
【請求項12】
前記両足首の相対位置情報は、前記両足首の間の相対距離を測定する距離センサを用いて取得される、請求項8に記載のプログラム。
【請求項13】
前記補正部により得られた補正された前記足先の速度情報又は前記足先の位置情報は、アバタが動作するアニメーションに適用される、請求項1に記載のプログラム。
【請求項14】
前記補正部により得られた補正された前記足先の速度情報又は前記足先の位置情報を用いて、アニメーション内のアバタの足先によって前記ユーザの足先の動作を再現させる、請求項1に記載のプログラム。
【請求項15】
前記ユーザの他の部位に装着された他のセンサ装置により検出されたセンサデータに基づいて、前記センサ装置及び前記他のセンサ装置の位置情報を回帰により推定する回帰推定部と、
前記回帰推定部によって推定された前記センサ装置及び前記他のセンサ装置の位置情報の信頼度を評価する評価部と、
として、前記コンピュータをさらに機能させ、
前記補正部は、前記信頼度の評価結果に基づいて、前記足先の位置情報を補正する、
請求項1に記載のプログラム。
【請求項16】
ユーザの足首又はふくらはぎの位置に装着されたセンサ装置により検出されたセンサデータに基づいて、前記ユーザの足先の速度情報及び当該足先の位置情報を推定する推定部と、
前記推定部により推定された前記足先の速度情報の推定結果に基づいて、前記足先の位置情報を補正する補正部と、
を備える、情報処理装置。
【請求項17】
プロセッサが、
ユーザの足首又はふくらはぎの位置に装着されたセンサ装置により検出されたセンサデータに基づいて、前記ユーザの足先の速度情報及び当該足先の位置情報を推定することと、
推定された前記足先の速度情報の推定結果に基づいて、前記足先の位置情報を補正することと、
を含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【0002】
近年、身体の動き情報を取得するためのモーションキャプチャ技術が盛んに開発されている。取得された身体の動き情報は、例えばスポーツにおいてフォーム改善に用いられたり、VR(Virtual Reality)やAR(Augmented Reality)等のアプリケーションに用いられたりしている。
【0003】
身体の動き情報を取得するため、例えば慣性航法(INS:Inertial Navigation System)を用いて、身体に装着されたモーションセンサにより取得されたセンサデータからモーションセンサの位置を計算することが行われている(例えば下記特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2017/217050号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、慣性航法ではセンサデータに含まれる加速度を複数回積分することで位置の計算を行うため、得られる位置の誤差が時間に応じて大きくなってしまう恐れがあった。そのため、モーションセンサが装着された部位の位置の情報をより高精度に得るための技術が望まれていた。
【課題を解決するための手段】
【0006】
本開示によれば、身体の2箇所以上の部位に装着された2以上のモーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第1の出力と、前記センサデータに対して第2の処理を施して得られた第2の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正を行う補正機能を、コンピュータに実現させるためのプログラムが提供される。
【0007】
また、本開示によれば、身体の2箇所以上の部位に装着された2以上のモーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第1の出力と、前記センサデータに対して第2の処理を施して得られた第2の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正を行う補正部を備える、情報処理装置が提供される。
【0008】
また、本開示によれば、身体の2箇所以上の部位に装着された2以上のモーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第1の出力と、前記センサデータに対して第2の処理を施して得られた第2の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正をプロセッサが行うこと、を含む情報処理方法が提供される。
【発明の効果】
【0009】
以上説明したように本開示によれば、モーションセンサが装着された部位の位置の情報をより高精度に得ることが可能である。
【0010】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【0011】
図1】本開示の第1の実施形態の概要を説明するためのイメージ図である。
図2】順運動学計算を用いた既存のモーションキャプチャ技術について説明するための説明図である。
図3】順運動学計算について説明するための説明図である。
図4】逆運動学計算を用いたアプローチについて説明するための説明図である。
図5】逆運動学計算について説明するための説明図である。
図6】同実施形態にかかる第1のステップを説明するための説明図である。
図7】同実施形態にかかる第2のステップを説明するための説明図である。
図8】慣性航法に基づく位置推定処理の概略を示す模式図である。
図9】慣性航法に基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。
図10】運動モデルに基づく位置推定処理の概略を示す模式図である。
図11】運動モデルに基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。
図12】同実施形態にかかる位置推定処理の概略を示す模式図である。
図13】同実施形態にかかる位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。
図14】同実施形態にかかるシステムの装置構成の一例を示す図である。
図15】同実施形態にかかるシステムの機能構成の一例を示す図である。
図16】装着部位の組み合わせと運動モデルの例を示す説明図である。
図17】信頼度特定部550による信頼度の特定の一例を示す図である。
図18】同実施形態にかかるシステムの動作例を示すフローチャート図である。
図19】第1の変形例にかかるシステムの機能構成例を示す図である。
図20】第2の変形例にかかるシステムの機能構成例を示す図である。
図21】第3の変形例にかかるシステムの機能構成例を示す図である。
図22】非トラッキング型運動モデルの概要を説明するための説明図である。
図23】トラッキング型運動モデルの概要を説明するための説明図である。
図24】第4の変形例にかかるシステムの機能構成例を示す図である。
図25】第5の変形例にかかるシステムの装置構成例を示す図である。
図26】本開示の第2の実施形態に係る第1のZUPT手法を説明するための説明図(その1)である。
図27】同実施形態に係る第1のZUPT手法を説明するための説明図(その2)である。
図28】同実施形態に係る第2のZUPT手法を説明するための説明図(その1)である。
図29】同実施形態に係る第2のZUPT手法を説明するための説明図(その2)である。
図30】同実施形態に係るシステムの機能構成の一例を示す図である。
図31】同実施形態に係るシステムの動作例を示すフローチャート図である。
図32】同実施形態に係る足先速度の推定を説明するための説明図である。
図33】同実施形態に係る足先位置の推定を説明するための説明図である。
図34】同実施形態の変形例1に係るZUPT手法を説明するための説明図である。
図35】同実施形態の変形例1に係る相対位置の推定を説明するための説明図である。
図36】同実施形態の変形例1に係るシステムの動作例を示すフローチャート図である。
図37】同実施形態の変形例2に係るセンサ装置10の装置構成の一例を示す図である。
図38】同実施形態の変形例2に係るZUPT手法を説明するための説明図である。
図39】ハードウェア構成例を示す説明図である。
【発明を実施するための形態】
【0012】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0013】
また、本明細書及び図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
【0014】
なお、説明は以下の順序で行うものとする。
<<1.第1の実施形態の概要>>
<<2.本技術の原理>>
<<3.構成例>>
<<4.動作例>>
<<5.変形例>>
<<6.第2の実施形態の概要>>
<<7.ハードウェア構成例>>
<<8.むすび>>
【0015】
<<1.第1の実施形態の概要>>
人間や動物等の身体の動きの情報を可視化するため、例えば身体の構造を示すスケルトン構造により表現されるスケルトン情報が用いられる。スケルトン構造は、部位の情報と、部位間を結ぶ線分であるボーンを含む。なお、スケルトン構造における部位は、例えば身体の末端部位や関節部位等に対応する。また、スケルトン構造におけるボーンは例えば人間の骨に相当し得るが、ボーンの位置や数は必ずしも実際の人間の骨格と整合していなくてもよい。
【0016】
スケルトン情報における部位の位置は、例えば対応する身体の各部位にマーカを装着したり、モーションセンサを装着したりすることにより取得することができる。例えば、身体の各部位にマーカを装着して、外部のカメラ等を用いてマーカの位置を取得する技術や、身体の部位にモーションセンサを装着し、モーションセンサにより取得されたセンサデータに基づいてモーションセンサの位置情報を取得する技術が存在する。
【0017】
身体に装着されたマーカを用いる技術と比べると、身体に装着したモーションセンサを用いた技術では、外部のカメラ、光源、及びマーカが不要であり、持ち運び可能でセットアップが容易であるという利点がある。また、身体に装着したモーションセンサを用いた技術は、カメラの撮像範囲による制限を受けないため、広い屋外空間や、死角の発生し易い複雑な形状の空間、狭小空間等でも利用可能であるという利点がある。
【0018】
しかし、身体に装着したモーションセンサを用いた技術において全身のスケルトンを推定するためには、各関節にモーションセンサを装着する必要があり、ユーザへの負荷が大きい場合があった。また、多数のモーションセンサをユーザの各部位に適切に装着するための専用スーツも開発されているが、専用スーツは製造コストが高い場合があった。
【0019】
そこで、本発明者らは、上記事情を一着眼点にして本開示の第1の実施形態を創作するに至った。本開示の第1の実施形態によるシステムでは、装着されるモーションセンサの数を削減しつつ、装着されるモーションセンサより多くの部位の位置情報を取得することが可能である。なお、本明細書においてモーションセンサとは、身体の動きをセンシングするデバイスであり、慣性センサ(加速度センサ、角速度センサ)、地磁気センサ、気圧センサ、イメージセンサ等を含み得る。以下では、モーションセンサとして、少なくとも慣性センサが身体に装着される例について主に説明を行う。
【0020】
本実施形態の概要について、図1を参照して説明する。図1は、本実施形態の概要を説明するためのイメージ図である。図1に示す例では、ユーザU1の身体の6箇所の部位に、6つのセンサ装置10A~10Fが装着されている。センサ装置10A~10Fは、例えば加速度(Acceleration)を取得する加速度センサや角速度(Angular velocity)を取得するジャイロセンサ(角速度センサ)等の慣性センサ(IMU:Inertial Measurement Unit)を含む。センサ装置10A~10Fは、身体の基準となる関節部位(例えば腰や頭部)、あるいは身体の末端近傍(手首、足首、頭部等)に装着されることが望ましい。図1に示す例では、ユーザU1の腰にセンサ装置10Aが、手首にセンサ装置10B、10Eが、足首にセンサ装置10C、10Dが、頭部にセンサ装置10Fが装着されている。なお、以下の説明において、センサ装置10A~10Fを特に区別する必要がない場合には、まとめて単にセンサ装置10と呼ぶ場合がある。また、以下では、センサ装置10が装着された身体の部位を装着部位とも称する場合がある。また、センサ装置10の数や装着位置(装着部位の位置)は図1に示す例に限定されるものではない。
【0021】
本実施形態によるシステムは、センサ装置10により取得されたセンサデータに基づいて、各装着部位の位置(Position)及び姿勢(Orientation)の情報を取得する。図1には、センサ装置10A~10Fが装着された装着部位P101~P106に関する情報(以下、装着部位情報とも称する)として、位置情報及び姿勢情報を含む装着部位情報PD100が示されている。
【0022】
また、本実施形態によるシステムは、センサ装置10A~10Fが装着された装着部位P101~P106の位置情報及び姿勢情報に基づいて、スケルトン構造における各部位の位置情報及び姿勢情報を含むスケルトン情報を推定する。ここで、本実施形態では、スケルトン構造における部位のうち、センサ装置10が装着された装着部位だけでなく、センサ装置10が装着されていない部位(以下、非装着部位とも称する)の位置情報及び姿勢情報を推定する。
【0023】
図1の例では、スケルトン構造における各部位の位置情報及び姿勢情報を含むスケルトン情報SD100が示されている。スケルトン情報SD100には、装着部位P101に対応する装着部位SP101や装着部位P102に対応する装着部位SP102の情報だけでなく、非装着部位SP107の情報が含まれる。
【0024】
なお、スケルトン情報には、部位の情報に加え、ボーンの情報(位置情報、姿勢情報等)も含まれ得る。例えば図1に示す例において、スケルトン情報SD100には、ボーンSB101の情報が含まれ得る。例えば、スケルトン構造における部位の位置情報及び姿勢情報に基づいて、部位間のボーンの情報を特定することが可能である。
【0025】
上述したように本実施形態によれば、モーションセンサが装着された装着部位の情報に基づいて、モーションセンサが装着されていない非装着部位の情報を推定することで、情報を取得したい部位の数を維持しつつ、装着されるモーションセンサの数を削減することが可能である。以下、上述した効果を実現するための本実施形態にかかる技術の原理について説明する。
【0026】
<<2.本技術の原理>>
<2-1.本実施形態のアプローチ>
既存のモーションキャプチャ技術として、順運動学(FK:Forward Kinematics)計算によりスケルトン情報を取得する技術が存在する。順運動学計算とは、各関節部位の姿勢に基づいて、末端部位の位置を計算する手法である。
【0027】
図2は、順運動学計算を用いた既存のモーションキャプチャ技術について説明するための説明図である。図2には、スケルトン構造で表現されたスケルトン情報SD90が示されている。
【0028】
図2に示すスケルトン情報SD90において、慣性センサを含むセンサ装置が装着された装着部位には丸印が付されており、すなわち部位SP91~SP96は装着部位である。ここで、センサ装置に角速度センサが含まれる場合、AHRS(Attitude and Heading Reference System)等の姿勢計測技術を用いることで、装着部位の姿勢情報(角度情報)を特定することが可能である。
【0029】
例えば、身体の腰に対応する部位SP91を基準(原点)とした身体座標系を設定した場合、部位SP91~SP95の姿勢情報に基づいて順運動学計算を行うことで、身体座標系における部位SP92~SP96の位置情報を特定することができる。なお、身体座標系において基準とされる部位を以下ではルート部位と称する場合がある。
【0030】
ここで、順運動学計算について図3を参照して説明を行う。図3は、順運動学計算について説明するための説明図である。説明を簡単にするため、図3には、腕を2自由度の単純なリンク機構とみなした場合の例が示されている。
【0031】
図3に示す例では、部位SP81がルート部位であり、部位SP81を基準(原点)としたxy座標系(平面座標系)が示されている。順運動学計算において、上述したように各部位の姿勢情報が既知であり、図3に示す例では部位SP81の姿勢に基づくボーンSB81とx軸のなす角の角度θ、及び部位SP82の姿勢に基づくボーンSB81とボーンSB82のなす角の角度θが既知である。また、順運動学計算において、部位間の距離、すなわちボーンの長さも既知であり、図3に示す例では、ボーンSB81の長さl、及びボーンSB82の長さlが既知である。
【0032】
順運動学計算によれば、上記のような既知の情報を用いて、部位SP83の位置(x,y)を計算することができる。具体的には、部位SP83の位置(x,y)は以下の数式(1)、(2)のように表現される。
【0033】
【数1】
【0034】
図3に示したのは平面的かつ単純な機構の例であるが、三次元的かつより複雑な機構の場合であっても、同様に順運動学計算を行うことが可能である。すなわち、基準となるルート部位から末端部位までの間の関節部位の姿勢情報と部位間の距離の情報を用いて、末端部位の位置情報を特定することが可能である。また、末端部位に限らず、スケルトン構造においてルート部位から末端部位までの間に位置する関節部位の位置情報(例えば図3に示す例では部位SP82の位置情報)についても順運動学計算により特定される。
【0035】
以上、順運動学計算を用いた既存のモーションキャプチャ技術の一例について説明した。しかし、図2図3を参照して説明したように順運動学計算を用いて各部位の位置情報を特定するためには、各関節部位の姿勢情報が必要であり、順運動学計算を用いることは身体に装着されるモーションセンサの数が多くなる要因となっていた。
【0036】
そこで、本実施形態においては、上述した順運動学計算ではなく、逆運動学(IK:Inverse Kinematics)計算を用いてスケルトン情報を取得する。逆運動学計算とは、末端部位の位置に基づいて、各関節部位の姿勢を計算する手法である。
【0037】
図4は、逆運動学計算を用いたアプローチについて説明するための説明図である。図4には、図2と同様にスケルトン構造で表現されたスケルトン情報SD90が示されている。
【0038】
図4に示すスケルトン情報SD90において、慣性センサを含むセンサ装置が装着された装着部位には丸印が付されており、すなわち部位SP91と部位SP96は装着部位である。一方、図4に示すスケルトン情報SD90において、慣性センサを含むセンサ装置が装着されていない部位にはバツ印が付されており、すなわち部位SP91と部位SP96の間の部位SP92~SP95は非装着部位である。
【0039】
ここで、身体の腰に対応する部位SP91を基準(原点)とした身体座標系が設定され、身体座標系における部位SP96の位置情報が得られているものとする。かかる場合、末端部位である部位SP96の位置情報に基づいて逆運動学計算を行うことで、身体座標系における部位SP92~SP95の姿勢情報、及び位置情報を特定することができる。
【0040】
ここで、逆運動学計算について図5を参照して説明を行う。図5は、逆運動学計算について説明するための説明図である。説明を簡単にするため、図5には、腕を2自由度の単純なリンク機構とみなした場合の例が示されている。
【0041】
図5に示す例では、部位SP81がルート部位であり、部位SP81を基準(原点)としたxy座標系(平面座標系)が示されている。ここで、図5の左上に示すように、部位SP81を一方の端点とするボーンSB81の長さl、及び部位SP83を一方の端点とするボーンSB82の長さlが既知であるものとする。
【0042】
逆運動学計算では、上記のような既知の情報を用いて、ボーンSB81とx軸のなす角、及びボーンSB81とボーンSB82のなす角の角度を計算する。ただし、逆運動学計算では、解が複数存在し得る。図5の例では、図5の右上に示すように、ボーンSB81とx軸のなす角が角度θ11、ボーンSB81とボーンSB82のなす角が角度θ21である解と、図5の右下に示すように、ボーンSB81とx軸のなす角が角度θ12、ボーンSB81とボーンSB82のなす角が角度θ22である解が得られる。なお、図5に示したのは平面的かつ単純な機構の例であり、例えば三次元的な機構の場合や、より多くの関節部位が存在する場合には、より多数の解が存在し得る。
【0043】
以上、逆運動学計算を用いたアプローチについて説明した。続いて、本実施形態にかかる処理の概略について説明する。本実施形態では、上述したように逆運動学計算を用いてスケルトン情報(関節部位の位置及び姿勢)を取得するため、以下に説明する図6図7にそれぞれ示すように大きく分けて2つのステップで処理が行われ得る。
【0044】
図6は、本実施形態にかかる第1のステップを説明するための説明図である。図1を参照して説明したように、本実施形態において、身体の2以上の部位に装着された2以上の慣性センサから、加速度、及び角速度の情報が取得され得る。また、慣性センサから取得された加速度、及び角速度の情報から、グローバル座標系の加速度(3次元)と姿勢(4次元)の情報を得ることが可能である。なお、グローバル座標系とは、例えば複数のセンサやデバイス等において共通して用いられる座標系であり、実空間に対応する座標系であってもよい。図6に示す装着部位情報PD10には、慣性センサにより取得された装着部位P11~P16の加速度と姿勢の情報が含まれるため、合計6×7=42次元の情報が含まれる。
【0045】
第1のステップでは装着部位情報PD10に基づいて装着部位の位置推定が行われることで(S100)、装着部位P11~P16の位置(3次元)を示す位置情報を含む装着部位情報PD12が得られる。なお、装着部位情報PD12が装着部位P11をルート部位とした身体座標系で表現される場合、装着部位P11の位置情報は不要であるため、装着部位情報PD12には、合計5×3=15次元の位置情報が含まれる。また、装着部位情報PD12は、装着部位情報PD10に含まれていたグローバル座標系における各部位の姿勢情報を含んでもよい。かかる場合、装着部位情報PD12には、合計6×4=24次元の姿勢情報が含まれる。
【0046】
図7は、本実施形態にかかる第2のステップを説明するための説明図である。図7に示す装着部位情報PD12は、図6に示した装着部位情報PD12と同様であるためここでの説明は省略する。
【0047】
第2のステップでは装着部位情報PD12に基づいて非装着部位の位置推定(補間)が行われることで(S200)、装着部位の位置情報に加え、慣性センサが装着されていない非装着部位の位置情報を含むスケルトン情報SD10が得られる。図7に示す例では、例えば部位SP11、SP12が装着部位であり、部位SP20が非装着部位である。
【0048】
ここで、第2のステップである非装着部位の位置推定は、上述したように逆運動学計算により行われ得るが、非装着部位の位置推定を高精度に行うためには、その入力となる装着部位情報PD12が第1のステップにより高精度に得られていることが望ましい。第1のステップである装着部位の位置推定は、例えば慣性航法により実現可能ではあるが、慣性航法により装着部位の位置推定が行われた場合、推定される位置の誤差が時間に応じて大きくなってしまう恐れがある。そこで、本実施形態においては、慣性航法により推定される装着部位の位置情報を補正して、より高精度に装着部位の位置情報を取得する。以下、本実施形態にかかる装着部位の位置情報の補正について説明する。
【0049】
<2-2.装着部位の位置情報の補正>
まず、慣性航法に基づく位置推定処理について説明する。慣性航法は、角速度及び加速度を複数回積分(Integration)することでセンサ位置を計算する技術であり、例えば船舶又は航空機等に採用されている。図8は、慣性航法に基づく位置推定処理の概略を示す模式図である。
【0050】
慣性航法では、まずセンサ装置に含まれるジャイロセンサにより取得されたローカル座標系における角速度(センサデータの一例)を積分する(S111)ことで、グローバル座標系におけるセンサ装置の姿勢が計算される。次いで、慣性航法においては、グローバル座標系におけるセンサ装置の姿勢に基づいて、センサ装置に含まれる加速度センサにより取得されたローカル座標系(センサ装置毎に設定された座標系)におけるセンサ装置の加速度(センサデータの一例)をグローバル座標系におけるセンサ装置の加速度へ座標系変換する(S112)。そして、座標系変換されたグローバル座標系におけるセンサ装置の加速度を積分する(S113)ことで、グローバル座標系におけるセンサ装置の速度が計算される。次に、グローバル座標系におけるセンサ装置の速度を積分する(S114)ことで、センサ装置の移動距離が計算される。ここで、グローバル座標系における移動距離を細分点ごとに合成していくことにより、初期位置を起点とした相対的な位置情報が得られる。初期位置が既知であれば、上記の情報によりセンサ装置の絶対的な位置情報(即ち、グローバル座標系における三次元座標)を計算することができる。上記のようにして、慣性航法に基づく位置推定処理により、センサ装置の姿勢情報と位置情報が出力される。
【0051】
図8に示した慣性航法に基づく位置推定処理は、比較的処理負荷が小さく高速に実行され得る。
【0052】
ここで、慣性航法では、姿勢情報を得るために角速度に対して施される積分はステップS111の1回のみであり、また、AHRS等の周知技術を組み合わせることで、姿勢情報を高精度に取得することが可能であった。一方、位置情報を得るためにはステップS113とステップS114の2回の積分が加速度に対して施されるため、加速度センサにより取得される加速度に誤差が含まれる場合には、出力される位置情報に誤差が蓄積され得る。
【0053】
図9は、慣性航法に基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。図9に示すように、慣性航法により位置情報を推定し始めてから短い時間の間であれば、位置誤差は小さく、位置情報を高精度に推定可能である。しかし、慣性航法により推定される位置情報に含まれる誤差は図9に示すように時間に応じて大きくなり得るため、長時間継続して実行された場合に、非常に大きな誤差が位置情報に含まれてしまう恐れがある。
【0054】
そこで、本実施形態においては、運動モデル(Dynamics Model)に基づいて、回帰による装着部位の位置推定を行う。図10は、運動モデルに基づく位置推定処理の概略を示す模式図である。
【0055】
図10に示すステップS121~S122の処理は、図8を参照して説明したステップS111~S112の処理と同様であるためここでの説明は省略する。図10に示すように運動モデルに基づく位置推定処理においては、加速度の積分を行うことなく、センサ装置の位置情報を回帰により推定する(S123)。ステップS123の回帰推定処理では、グローバル座標系におけるセンサ装置の姿勢と加速度を、事前に用意された運動モデルに当てはめる回帰により、位置情報が推定される。ここで、運動モデルは、例えば事前に運動制約情報(例えば過去に取得されたポーズや一連の動きにおける各部位の位置と姿勢のサンプルを複数含む情報)を学習することで生成することが可能である。なお、ステップS123の回帰推定処理には、多様な回帰分析手法を用いることが可能であり、例えばDNN(Deep Neural Network)やRandom Forest等の手法が単独で、あるいは組み合わせて用いられてもよい。
【0056】
ここで、図10に示される処理では、加速度が積分されないため、図8図9を参照して説明した慣性航法の場合のように位置誤差が時間に応じて大きくなり難い。図11は、運動モデルに基づく位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。図10に示すように、運動モデルに基づく位置推定処理においても位置誤差は発生しているが、時間に応じて大きくならないため、長時間継続して実行された場合であっても、大きな誤差が発生し難い。
【0057】
したがって、図10に示した運動モデルに基づく位置推定処理により、より高精度に位置情報を推定可能であると考えられる。ただし、運動モデルに基づく位置推定処理では、回帰による統計的な推定が行われるため、入力の変化が連続的な場合であっても出力(推定結果)の変化が非連続的になりやすい。その結果、例えば最終的に得られるスケルトン情報を可視化した際に違和感を与えやすくなる恐れがある。また、図10に示した運動モデルに基づく位置推定処理は、図8に示した慣性航法に基づく位置推定処理と比較すると処理負荷が大きく、慣性航法に基づく位置推定処理よりも高速な実行は困難である。
【0058】
上述したように、慣性航法に基づく位置推定処理と運動モデルに基づく位置推定処理には、各々の特長がある。そこで、本実施形態においては、慣性航法に基づく位置推定処理と運動モデルに基づく位置推定処理の両方を組み合わせて、推定される位置情報を補正することで、より高精度に位置情報を推定する。なお、以下では、慣性航法に基づく位置推定処理を第1の処理、運動モデルに基づく位置推定処理を第2の処理と称する場合がある。
【0059】
図12は、本実施形態にかかる位置推定処理の概略を示す模式図である。なお、図12に示したのは概略であり、本実施形態にかかる位置推定処理は図12に示されていない処理も含んでもよい。
【0060】
図12に示すように、本実施形態にかかる位置推定処理は、慣性航法に基づく第1の処理(S111~S114)と運動モデルに基づく第2の処理(S121~S123)に加え、補正処理(S130)をも含む。ステップS130の補正処理では、第1の処理の出力(以下、第1の出力とも称する)、及び第2の処理の出力(以下、第2の出力とも称する)を参照して、補正が行われる。なお、第1の出力は装着部位の姿勢情報と位置情報を含み、第2の出力は位置情報を含む。そして、ステップS130においては、第1の出力に含まれる位置情報を第1の出力に含まれる姿勢情報と第2の出力に含まれる位置情報に基づいて補正する。なお、ステップS130において、第1の出力に含まれる姿勢情報については位置情報の補正に用いられると共に、そのまま出力されてもよい。また、ステップS130の補正処理は、例えばカルマンフィルタにより実現され得る。
【0061】
また、上述したように、第1の処理は、第2の処理よりも高速に実行され得る。したがって、補正処理(S130)は、第2の出力が得られたタイミングで実行され、第2の出力が得られず第1の出力のみが得られた場合には、第1の出力が本実施形態にかかる位置推定処理の出力としてそのまま出力されてもよい。
【0062】
図13は、本実施形態にかかる位置推定処理において発生し得る位置誤差の時間変化イメージを示す模式図である。図13に示す例では、時刻t11において第2の出力が得られ、第2の出力に基づく補正が行われるものとする。図13に示すように、本実施形態にかかる位置推定処理では、処理の開始から、時刻t11までの間は時間に応じて位置誤差が大きくなるが、時刻t11において第2の出力に基づく補正が行われた結果、位置誤差が抑制される。
【0063】
このように、本実施形態にかかる位置推定処理によれば、補正が行われる度に位置誤差が抑制されるため、誤差が時間に応じて大きくなりにくく、長時間継続して実行された場合であっても、大きな誤差が発生し難い。また、本実施形態にかかる位置推定処理では、第2の出力が得られない場合には第1の出力がそのまま出力されるため、運動モデルに基づく第2の処理のみにより位置推定を行う場合と比べて、高頻度に位置情報を推定することが可能となる。
【0064】
<<3.構成例>>
以上、本実施形態にかかる技術の原理について説明した。続いて、本実施形態の構成例について説明する。以下では、本実施形態の装置構成例、及び機能構成例を順次に説明する。
【0065】
<3-1.装置構成例>
図14は、本実施形態にかかるシステムの装置構成の一例を示す図である。図14に示すように、本実施形態にかかるシステムは、センサ装置10A~10F、ハブ装置20、情報処理装置30、及び出力装置40を含む。
【0066】
センサ装置10は少なくともモーションセンサを備え、身体の部位に装着される装置である。センサ装置10A~10Fが装着される部位については、図1を参照して説明したため、個々での説明は省略する。センサ装置10は、例えば図14に示すように、ジャイロセンサ12、加速度センサ14、制御部16、及び通信部18を備える。なお、センサ装置10が備えるモーションセンサは、慣性センサ(ジャイロセンサ12、及び加速度センサ14)に限定されない。例えば、センサ装置10は、慣性センサに代えて、または慣性センサに加えて、地磁気センサ、気圧センサ、イメージセンサ等のモーションセンサを備えてもよい。また、図14では、センサ装置10Aの構成のみが示されているが、センサ装置10A~10Fの構成は同一であってもよい。
【0067】
ジャイロセンサ12は、センサデータとして角速度を取得する慣性センサである。ジャイロセンサ12により取得される角速度は、ローカル座標系におけるセンサ装置10の角速度であり得る。
【0068】
また、加速度センサ14は、センサデータとして加速度を取得する慣性センサである。加速度センサ14により取得される加速度は、センサ装置10ごとに設定されたローカル座標系におけるセンサ装置10の加速度であり得る。
【0069】
制御部16は、センサ装置10の動作を制御する。例えば、制御部16は、通信部18による通信を制御し、ジャイロセンサ12及び加速度センサ14により取得されたセンサデータ(角速度、及び加速度)をハブ装置20へ送信させてもよい。あるいは、制御部16は、ジャイロセンサ12及び加速度センサ14により取得されたセンサデータに対して処理を施してもよく、当該処理により得られた処理結果をハブ装置20へ送信させてもよい。
【0070】
通信部18は有線または無線により他の装置との間でデータの送受信を行うための通信モジュールである。通信部18は、例えば有線LAN(Local Area Network)、無線LAN、Wi-Fi(Wireless Fidelity、登録商標)、赤外線通信、Bluetooth(登録商標)、近距離/非接触通信等の方式で、外部機器と直接またはネットワークアクセスポイントを介して無線通信する。
【0071】
ハブ装置20は、複数のセンサ装置10から情報を受信して集約する情報処理装置である。なお、センサ装置10とハブ装置20との間は、有線接続されていてもよいし、無線接続されていてもよい。ハブ装置20は、例えば図14に示すように通信部22と制御部24とを備える。
【0072】
通信部22は有線または無線により他の装置との間でデータの送受信を行うための通信モジュールである。通信部22は、例えば有線LAN、無線LAN、Wi-Fi、赤外線通信、Bluetooth、近距離/非接触通信等の方式で、外部機器と直接またはネットワークアクセスポイントを介して無線通信する。
【0073】
制御部24は、ハブ装置20の動作を制御する。例えば、制御部24は、通信部22による通信を制御し、センサ装置10から受信した情報を、そのまま情報処理装置30へ送信させてもよい。あるいは、制御部24は、センサ装置10から受信した情報に対して処理を施してもよく、当該処理により得られた処理結果を情報処理装置30へ送信させてもよい。
【0074】
情報処理装置30は、ハブ装置20から情報を受信して処理する情報処理装置である。なお、ハブ装置20と情報処理装置30との間は、有線接続されていてもよいし、無線接続されていてもよい。情報処理装置30は、例えば図14に示すように通信部32と制御部34とを備える。
【0075】
通信部32は有線または無線により他の装置との間でデータの送受信を行うための通信モジュールである。通信部32は、例えば有線LAN、無線LAN、Wi-Fi、赤外線通信、Bluetooth、近距離/非接触通信等の方式で、外部機器と直接またはネットワークアクセスポイントを介して無線通信する。
【0076】
制御部34は、情報処理装置30の動作を制御する。例えば、制御部34は、通信部32が受信した情報に対する処理を行う。また、制御部34は、通信部32を制御して、当該処理の結果を情報処理装置30に接続された出力装置40に送信させることで、出力装置40の表示を制御し得る。例えば、制御部34は、処理の結果得られたスケルトン情報に基づいて、可視化されたスケルトン情報や、スケルトン情報を反映させた3Dモデル等を出力装置40に表示させてもよい。
【0077】
出力装置40は、少なくとも表示機能を有する装置であり、情報処理装置30の制御部34の制御に従って表示を行う。出力装置40は、例えば設置型のディスプレイであってもよいし、ユーザに装着されるHMD(Head Mounted Display)であってもよい。また、出力装置40と情報処理装置30とは、一体の装置であってもよい。
【0078】
<3-2.機能構成例>
以上、本実施形態にかかるシステムの装置構成例を説明した。続いて、本実施形態にかかるシステムの機能構成例について説明する。図15は、本実施形態にかかるシステムの機能構成の一例を示す図である。なお、図15には、主に本実施形態の特徴を示す機能構成のみを示しており、本実施形態にかかるシステムは図15に示されない機能構成を含んでもよい。
【0079】
図15を参照すると、本実施形態にかかるシステムは、グローバル運動加速度姿勢計算部510、積分計算部520、選択部530、装着位置回帰推定部540、信頼度特定部550、接地検出部560、補正部570、及び補間部580としての機能を有する。
【0080】
なお、以下に説明する図15の各機能構成は、図14に示したいずれかの装置により実現されてもよい。例えば、センサ装置10の制御部16またはハブ装置20の制御部24がグローバル運動加速度姿勢計算部510としての機能を有し、情報処理装置30の制御部34がそれ以外の積分計算部520~補間部580としての機能を有してもよい。ただし、いずれの装置がいずれの機能を有するかはかかる例に限定されるものではない。
【0081】
グローバル運動加速度姿勢計算部510は、図14に示したセンサ装置10A~10Fにより取得されたセンサデータ(角速度と加速度)に基づいて処理を行う機能を有する。なお、グローバル運動加速度姿勢計算部510は、センサ装置10A~10Fの各々により取得されたセンサデータを独立に処理してもよい。
【0082】
例えば、グローバル運動加速度姿勢計算部510は、センサデータに含まれるローカル座標系におけるセンサ装置10の角速度を積分してグローバル座標系におけるセンサ装置10の姿勢を計算する処理(図12のステップS111、S121に相当)を行う。グローバル運動加速度姿勢計算部510はAHRSによりセンサ装置10の姿勢を計算してもよい。なお、センサ装置10が地磁気センサを含む場合、グローバル運動加速度姿勢計算部510は、AHRSによるセンサ装置10の姿勢計算に、地磁気センサにより取得されるセンサデータを用いてもよい。
【0083】
また、グローバル運動加速度姿勢計算部510は、計算されたグローバル座標系におけるセンサ装置10の姿勢を、グローバル座標系における当該センサ装置10が装着された装着部位の姿勢へ変換する処理を行う。グローバル運動加速度姿勢計算部510は、事前のキャリブレーション結果を用いてセンサ装置10の姿勢を装着部位の姿勢へ変換してもよい。
【0084】
また、グローバル運動加速度姿勢計算部510は、グローバル座標系における装着部位の姿勢に基づいて、センサデータに含まれるにローカル座標系における加速度をグローバル座標系における加速度へ変換する処理(図12のステップS112、S122に相当)を行う。
【0085】
また、グローバル運動加速度姿勢計算部510は、上述のように得られたグローバル座標系における加速度から重力成分を除去する処理を行う。例えば、グローバル運動加速度姿勢計算部510は、グローバル座標系における装着部位の姿勢に基づいてグローバル座標系における加速度から重力成分を除去してもよい。
【0086】
グローバル運動加速度姿勢計算部510は、上述の処理により得られたグローバル座標系における装着部位の姿勢情報と、重力成分が除去されたグローバル座標系における加速度を、積分計算部520、選択部530、及び装着位置回帰推定部540へ出力する。
【0087】
積分計算部520は、グローバル運動加速度姿勢計算部510から入力された重力成分が除去されたグローバル座標系における加速度を2回積分する処理(図12のステップS113、S114に相当)により、グローバル座標系における装着部位の位置情報を計算する。積分計算部520は、計算されたグローバル座標系における装着部位の位置情報、及びグローバル運動加速度姿勢計算部510から入力されたグローバル座標系における装着部位の姿勢情報を補正部570へ出力する。
【0088】
なお、上述したグローバル運動加速度姿勢計算部510、及び積分計算部520により、上述した慣性航法に基づく第1の処理が行われ得る。そして、積分計算部520から出力される位置情報、及び姿勢情報が第1の出力に相当する。
【0089】
選択部530は、装着位置回帰推定部540が装着部位の位置情報を回帰により推定するための運動モデルの選択を行う。例えば、運動モデルは、センサ装置10が装着される部位のパターンに応じて複数用意されて不図示の記憶部に記憶されていてもよく、選択部530は、かかる複数の運動モデルの中から、装着位置回帰推定部540により用いられる運動モデルを選択する。
【0090】
運動モデルは、例えば装着部位の組み合わせごとに予め用意されてよい。そして、選択部530は、グローバル運動加速度姿勢計算部510から入力される情報に基づいて、装着部位の組み合わせを特定して、適切な運動モデルを選択してよい。かかる構成により、例えばユーザがシステムの動作途中で一部のセンサ装置10を着脱したり、一部のセンサ装置10のバッテリ(不図示)の電力供給が失われたとしても、選択部530が動的に適切な運動モデルを選択することができる。なお、図15では、グローバル運動加速度姿勢計算部510から入力される情報に基づいて装着部位の組み合わせが特定される例を示したが、選択部530はセンサデータそのものを入力として、あるいは他の情報を用いて装着部位の組み合わせを特定してもよい。
【0091】
図16は、装着部位の組み合わせと運動モデルの例を示す説明図である。図16に示されるスケルトン情報SD101~SD105の各々において、センサ装置10が装着された装着部位には丸印が付されている。また、運動モデルごとに異なるルート部位が設定されて得る。
【0092】
例えば、全身モデルに対応するスケルトン情報SD101において、腰に相当する装着部位SP101がルート部位であり、6箇所の装着部位SP101~SP106にセンサ装置10が装着される。上肢モデルに対応するスケルトン情報SD102において、頭部に相当する装着部位SP106がルート部位であり、3箇所の装着部位SP102、SP105、SP106にセンサ装置10が装着される。また、頭-腕モデルに対応するスケルトン情報D103において、頭部に相当する装着部位SP106がルート部位であり、2箇所の装着部位SP102、SP106にセンサ装置10が装着される。また、腰-腕モデルに対応するスケルトン情報D104において、腰に相当する装着部位SP101がルート部位であり、2箇所の装着部位SP101、SP105にセンサ装置10が装着される。また、下肢モデルに対応するスケルトン情報D105において、腰に相当する装着部位SP101がルート部位であり、3箇所の装着部位SP101、SP103、SP104にセンサ装置10が装着される。
【0093】
なお、後述する装着位置回帰推定部540だけでなく、後述する補正部570や補間部580も、装着部位の組み合わせに応じて処理を行うため、装着部位の組み合わせに応じて(つまり運度モデルに応じて)、推定される非装着部位の組み合わせも異なり得る。本実施形態にかかるシステムにより位置情報、及び姿勢情報を推定可能な部位は、装着部位、及び所定のスケルトン構造において複数の装着部位の間に位置する非装着部位であり得る。図16のスケルトン情報SD101~SD105には、本実施形態において装着部位の組み合わせに応じた、位置情報、及び姿勢情報を推定可能な部位(装着部位と非装着部位を含む)がハッチングにより示されている。
【0094】
なお、図16に示したのは一例であって本実施形態において用いられ得る運動モデルにおける装着部位の組み合わせは図16に示した例に限定されるものではない。
【0095】
装着位置回帰推定部540は、選択部530により選択された運動モデルを用いて、グローバル座標系における装着部位の姿勢情報と、重力成分が除去されたグローバル座標系における加速度とに基づいて、装着部位の位置情報を回帰により推定する回帰推定処理(図12のステップS123に相当)を行う。なお、本実施形態にかかる装着位置回帰推定部540は、装着部位の位置情報を、運動モデルごとに設定されたルート部位を基準とした身体座標系において推定する。装着位置回帰推定部540は、推定された身体座標系における装着部位の位置情報を信頼度特定部550と補正部570へ出力する。
【0096】
なお、上述したグローバル運動加速度姿勢計算部510、及び装着位置回帰推定部540により、上述した運動モデルに基づく第2の処理が行われ得る。そして、装着位置回帰推定部540から出力される位置情報が第2の出力に相当する。
【0097】
信頼度特定部550は、装着位置回帰推定部540により推定された装着部位の位置情報(第2の出力に含まれる位置情報とも称する)の信頼度を特定する信頼度特定機能を有する。信頼度特定部550により特定される信頼度は、後述する補正部570による補正において用いられ得る。例えば、後述する補正部570は、第2の出力に含まれる位置情報の信頼度が高い場合には第1の出力に含まれる位置情報よりも第2の出力に含まれる位置情報をより重視(信頼)して補正を行い、当該信頼度が低い場合には第2の出力に含まれる位置情報よりも第1の出力に含まれる位置情報をより重視して補正を行う。
【0098】
例えば、信頼度特定部550は、第2の出力に含まれる位置情報の尤度分布がより小さい場合により高い信頼度を設定してもよい。図17は、信頼度特定部550による信頼度の特定の一例を示す図である。図17には、装着位置回帰推定部540により推定された位置と、その尤度分布R10が示されている。例えば、尤度分布R10の上限L1と下限L2との差がより小さい場合により高い信頼度が特定される。図17に示す例では、時刻t21~時刻t22の区間と時刻t23~時刻t24の区間において高い信頼度が特定され、すなわち第2の出力に含まれる位置情報がより重視される。また、図17に示す例では、時刻t22~時刻t23の区間において低い信頼度が特定され、すなわち第1の出力に含まれる位置情報がより重視される。
【0099】
信頼度特定部550は、特定した信頼度を補正部570へ出力する。
【0100】
接地検出部560は、センサ装置10A~10Fにより取得されたセンサデータ(角速度と加速度)に基づいて、身体の足元の接地検出処理を行う。かかる構成により、後述する補正部570が、装着位置回帰推定部540により推定された身体座標系における位置情報をグローバル座標系に変換することが可能である。
【0101】
接地検出部560は、例えば所謂ゼロ速度更新(ZUPT:Zero Velocity Update)における接地検出を行ってもよい。なお、ZUPTは速度がゼロの状態を接地状態として検出して位置を補正する手法であり、このZUPTが用いられる場合、後述する補正部570による位置情報の補正機能もZUPTにより実現され得る。また、接地検出部560による接地検出の方法はかかる例に限定されず、他の手法により身体の足元の接地検出が行われてもよい。
【0102】
補正部570は、積分計算部520から入力される第1の出力と、装着位置回帰推定部540から入力される第2の出力とを参照して、第1の出力に含まれる装着部位の位置情報の補正を行う。なお、以下では、補正部570の機能を補正機能と称する場合がある。かかる補正機能により、図12図13を参照して説明したように誤差が時間に応じて大きくなりにくく、より高精度に装着部位の位置情報を推定することが可能である。
【0103】
上述したように、補正部570は、信頼度特定部550により特定された信頼度に基づいて、装着部位の位置情報を補正してもよい。かかる構成により、より高精度に装着部位の位置情報を推定することが可能である。
【0104】
また、補正部570は、接地検出部560による接地検出結果に基づいて、装着位置回帰推定部540により推定された身体座標系における装着部位の位置情報(第2の出力)をグローバル座標系における装着部位の位置情報へ変換する。かかる構成により、座標系をグローバル座標系に統一して補正を行うことが可能となる。
【0105】
なお、補正部570の補正機能は、カルマンフィルタにより実現されてもよい。さらに、上述した積分計算部520による積分機能と補正部570による補正機能を合わせてカルマンフィルタにより実現することが可能である。例えば、各装着部位の速度と位置を内部状態として有するカルマンフィルタを想定することができる。かかるカルマンフィルタは、グローバル運動加速度姿勢計算部510から出力されるグローバル座標系における装着部位の加速度を積分することにより装着部位の速度と位置を予測する。そして、かかるカルマンフィルタは、第2の出力に含まれる位置情報をグローバル座標系に変換して得られる位置を観測として内部状態を更新することにより、位置情報の補正を行うことが可能である。
【0106】
補間部580は、補正部570の補正機能により補正された装着部位の位置情報に基づいて、非装着部位の位置情報を推定してスケルトン情報を生成する。補間部580は、図16を参照して説明したように、所定のスケルトン構造において、複数の装着部位の間に位置する非装着部位の位置情報を推定してもよい。なお、以下では、補間部580の機能を補間機能と称する場合がある。かかる補間機能は、例えば図4図5を参照して説明した逆運動学計算により実現され得る。
【0107】
図4図5を参照して説明したように、逆運動学計算では、一般に複数の解が存在し、例えば関節部位の数によっては非常に多数の解が存在する場合がある。したがって、より高精度なスケルトン情報を得るためには、存在する多数の解のうち、より適切な解を特定可能な仕組みが求められる。そこで、本実施形態にかかる補間部580は、非装着部位の位置情報を予め用意された逆運動学モデルに当てはめる回帰により推定する。
【0108】
ここで、逆運動学モデルは、例えば事前に運動制約情報(例えば過去に取得されたポーズや一連の動きにおける各部位の位置と姿勢のサンプルを複数含む情報)を学習することで生成することが可能である。なお、補間部580の補間機能には、多様な回帰分析手法を用いることが可能であり、例えばDNNやRandom Forest等の手法が単独で、あるいは組み合わせて用いられてもよい。
【0109】
なお、上記では補間部580が各部位の位置情報を推定する説明したが、本実施形態はかかる例に限定されない。各部位の位置情報、または姿勢情報のいずれか一方が得られれば、スケルトン構造に従って他方を特定することが可能である。したがって、補間部580は、非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を推定すればよい。
【0110】
<<4.動作例>>
以上、本実施形態の装置構成例、及び機能構成例について説明した。続いて、本実施形態の動作例について説明する。図18は、本実施形態にかかるシステムの動作例を示すフローチャート図である。なお、図18には、主に本実施形態の特徴を示す処理のみを示しており、本実施形態にかかるシステムは図18に示されない処理を実行してもよい。
【0111】
図18に示すように、まずグローバル運動加速度姿勢計算部510が、ジャイロセンサ12により取得された角速度に基づいて、グローバル座標系におけるセンサ装置10の姿勢をAHRSにより計算する(S502)。なお、ステップS502は、図12のステップS111、S121に相当する。
【0112】
続いて、グローバル運動加速度姿勢計算部510は、ステップS502で得られたグローバル座標系におけるセンサ装置10の姿勢を、グローバル座標系における当該センサ装置10が装着された装着部位の姿勢へ変換する(S504)。
【0113】
続いて、グローバル運動加速度姿勢計算部510は、ステップS504で得られたグローバル座標系における装着部位の姿勢に基づいて、加速度センサ14により取得されたローカル座標系における加速度をグローバル座標系における加速度へ変換する(S506)。なお、ステップS506は、図12のステップS112、S122に相当する。
【0114】
続いて、グローバル運動加速度姿勢計算部510は、ステップS504で得られたグローバル座標系における装着部位の姿勢に基づいて、ステップS506で得られたグローバル座標系における加速度から重力成分を除去する(S508)。
【0115】
続いて、積分計算部520が、ステップS508で得られた重力成分が除去されたグローバル座標系における加速度を2回積分することにより、グローバル座標系における装着部位の位置情報を計算する(S510)。なお、ステップS510は、図12のステップS113、S114に相当する。
【0116】
続いて、ステップS510の補正を行うか否かが判定される(S512)。上述したように、運動モデルに基づく位置推定処理は、慣性航法に基づく位置推定処理よりも処理負荷が大きい。したがって、運動モデルに基づく位置推定処理(S514)の実行頻度は慣性航法に基づく位置推定処理(S502~S510)の実行頻度よりも少ない。そこで、ステップS512において、図18に示した処理が所定の回数行われるごとに1回補正を行うと判定されてもよい。ただし、本実施形態はかかる例に限定されず、例えば、センサデータに基づいて装着部位が静止していないと判定可能な場合には補正を行うと判定し、静止していると判定可能な場合には補正を行わないと判定してもよい。
【0117】
補正を行うと判定された場合(S512においてYES)、装着位置回帰推定部540は、運動モデルを用いた回帰推定により、身体座標系における装着部位の位置情報を推定する(S514)。なお、ステップS514は、図12のステップS123に相当する。
【0118】
続いて、補正部570は、接地検出部560による接地検出結果に基づいて、ステップS514で推定された身体座標系における装着部位の位置情報をグローバル座標系における装着部位の位置情報へ変換する(S516)。
【0119】
そして、補正部570は、ステップS516で得られたグローバル座標系における装着部位の位置情報に基づいて、ステップS510で得られたグローバル座標系における装着部位の位置情報を補正する(S518)。
【0120】
続いて、補間部580は、グローバル座標系における装着部位の位置情報に基づいて、非装着部位の位置情報を逆運動学モデルに当てはめる回帰により推定(補間)する(S520)。なお、ステップS520において非装着部位の位置情報の回帰推定に用いられる装着部位の位置情報は、ステップS512における判定結果に応じて異なり得る。ステップS512において補正を行うと判定された場合、ステップS518で補正された装着部位の位置情報がステップS520における回帰推定に用いられる。一方、ステップS512において補正を行わないと判定された場合、ステップS510で得られたグローバル座標系における装着部位の位置情報がステップS520における回帰推定に用いられる。
【0121】
以上、本実施形態に係るシステムの動作について説明した。なお、図18に示した処理は、ジャイロセンサ12及び加速度センサ14によりセンサデータが取得される度に、あるいは所定の頻度で、繰り返し実行されてもよい。
【0122】
<<5.変形例>>
以上、本開示の一実施形態を説明した。以下では、本実施形態の幾つかの変形例を説明する。なお、以下に説明する各変形例は、単独で本実施形態に適用されてもよいし、組み合わせで本実施形態に適用されてもよい。また、各変形例は、本実施形態で説明した構成に代えて適用されてもよいし、本実施形態で説明した構成に対して追加的に適用されてもよい。
【0123】
<5-1.第1の変形例>
上記実施形態では、装着位置回帰推定部540が、グローバル運動加速度姿勢計算部510により計算されたグローバル座標系における装着部位の姿勢情報と、重力成分が除去されたグローバル座標系における加速度とに基づいて回帰推定処理を行う例を説明した。しかし、本技術はかかる例に限定されない。例えば、ジャイロセンサ12及び加速度センサ14により取得された角速度や加速度がかかる回帰推定処理への入力として用いられてもよい。かかる例について、第1の変形例として説明を行う。
【0124】
図19は、第1の変形例にかかるシステムの機能構成例を示す図である。図19に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図19を参照すると、本変形例にかかるシステムは、装着位置回帰推定部540に代えて装着位置回帰推定部541を含む点において図15に示したシステムと相違する。
【0125】
本変形例にかかる装着位置回帰推定部541は、グローバル運動加速度姿勢計算部510により計算された情報に加え、または代えて、ジャイロセンサ12及び加速度センサ14により取得された角速度や加速度を入力として用いて、回帰推定処理を行う。かかる回帰推定に用いられる運動モデルは、当該回帰推定に用いられる情報と同種の情報(角速度や加速度)を含んだ運動制約情報を学習することにより事前に用意され得る。
【0126】
以上、第1の変形例について説明した。本変形例によれば、より多くの情報を用いることで、より高精度に装着部位の位置情報を推定することが可能となり得る。なお、上記では角速度や加速度が装着位置回帰推定部541による回帰推定処理への入力として用いられる例を説明したが、さらに他の情報が入力として用いられてもよい。例えば、センサ装置10が、ジャイロセンサ12と加速度センサ14に加えて、地磁気センサや気圧センサを備える場合、地磁気や気圧の情報が、かかる回帰推定処理への入力として用いられてもよい。
【0127】
<5-2.第2の変形例>
続いて、第2の変形例として、補正部が信頼度の特定を行う例を説明する。図20は、本変形例にかかるシステムの機能構成例を示す図である。図20に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図20を参照すると、本変形例にかかるシステムは、信頼度特定部550と補正部570に代えて補正部572を含む点において図15に示したシステムと相違する。
【0128】
補正部572は、図15を参照して説明した補正部570の機能に加え、積分計算部520、及び装着位置回帰推定部540のそれぞれから入力される装着部位の位置情報の少なくともいずれか一方の信頼度を特定する機能を有する。かかる機能は、例えばカルマンフィルタにより実現されてもよいし、予め定められたルールに基づいて行うように実現されてもよいし、あるいは学習により事前に用意されたモデルを用いた回帰推定により実現されてもよい。
【0129】
<5-3.第3の変形例>
続いて、第3の変形例として、非装着部位の位置推定(補間)処理の後に補正処理を行う例を説明する。図21は、本変形例にかかるシステムの機能構成例を示す図である。図21に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図21を参照すると、本変形例にかかるシステムは、信頼度特定部550、補正部570、及び補間部580に代えて補正部573、及び補間部583を含む点において図15に示したシステムと相違する。
【0130】
本変形例にかかる補間部583は、グローバル運動加速度姿勢計算部510により計算されたグローバル座標系における装着部位の姿勢情報と装着位置回帰推定部540により推定された装着部位の位置情報に基づいて、非装着部位の位置情報、及び姿勢情報のうち少なくとも一方を回帰により推定する。なお、補間部583による回帰推定は、入力される情報が異なる点を除いて、補間部580による非装着部位の回帰推定と同様であってよい。補間部583により推定された非装着部位の位置情報あるいは姿勢情報は、補正部573へ出力される。
【0131】
なお、本変形例にかかる第2の処理は、上述した補間部583が非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を推定する補間処理を含む。そして、本変形例にかかる第2の出力(第2の処理の出力)は、補間部583により推定された非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を含む。さらに、本変形例にかかる第2の出力は、グローバル運動加速度姿勢計算部510あるいは装着位置回帰推定部540により得られた装着部位の位置情報あるいは姿勢情報を含んでもよい。つまり、本変形例にかかる第2の出力は推定対象となる全ての部位の位置情報、及び姿勢情報のうち少なくともいずれか一方を含む。
【0132】
本変形例にかかる補正部573は、積分計算部520から入力される第1の出力(装着部位の姿勢情報と位置情報)に基づいて、補間部583から入力される第2の出力に含まれる非装着部位の位置情報及び姿勢情報のうち少なくともいずれか一方を補正する。本変形例では、装着部位の速度及び位置と、非装着部位の位置または姿勢の関係が非線形であるため、本変形例にかかる補正部573の補正機能は、例えば、拡張カルマンフィルタにより実現され得る。以下では拡張カルマンフィルタにより、非装着部位の姿勢情報を補正する補正機能が実現される例について説明する。
【0133】
かかる拡張カルマンフィルタは内部状態として、全装着部位の速度と位置、及び推定対象となる全ての部位(装着部位と非装着部位を含む)の姿勢を有する。かかる拡張カルマンフィルタは、グローバル運動加速度姿勢計算部510から出力されるグローバル座標系における装着部位の加速度を積分することにより装着部位の速度と位置を予測する。そして、かかる拡張カルマンフィルタは、第2の出力に含まれる推定対象となる全ての部位の姿勢情報を観測として内部状態を更新することにより、姿勢情報の補正を行うことが可能である。なお、拡張カルマンフィルタが内部的に持つ誤差の共分散行列の予測には、逆運動学計算で用いられる装着部位の速度と非装着部位の姿勢の関係を記述するヤコビアンが用いられてもよい。
【0134】
なお、図21では、装着位置回帰推定部540と補間部583を別個の機能構成として示したが、装着位置回帰推定部540と補間部583の機能を統合してもよい。かかる場合、グローバル運動加速度姿勢計算部510から入力される情報に基づく回帰により直接的に推定対象の全ての部位の位置情報及び姿勢情報が推定されてもよい。かかる場合、回帰推定のために事前に用意するモデルの数が少なく済むという効果がある。
【0135】
<5-4.第4の変形例>
上記実施形態では、装着位置回帰推定部540が、非トラッキング型運動モデルを用いた回帰推定を行う例を説明したが、トラッキング型運動モデルが用いられてもよい。以下、図22図23を参照して、非トラッキング型運動モデルとトラッキング型運動モデルの概要について説明する。
【0136】
図22は、非トラッキング型運動モデルの概要を説明するための説明図である。図22に示すように、非トラッキング型運動モデルを用いた回帰推定では、加速度と姿勢の情報が入力されて、位置情報が出力され得る。
【0137】
図23は、トラッキング型運動モデルの概要を説明するための説明図である。図23に示すように、トラッキング型運動モデルを用いた回帰推定においても、加速度と姿勢の情報が入力されて、位置情報が出力され得る。ただし、トラッキング型運動モデルを用いた回帰推定では、加速度と姿勢の情報に加え、遅延器Dにより1サンプル分遅延させられた位置情報(すなわち前回の回帰推定処理の出力)が、次の回帰推定処理へ入力される。トラッキング型運動モデルには、追従性が向上し得るという利点がある。
【0138】
このようなトラッキング型運動モデルを用いた回帰により装着部位の位置情報を推定する例について、第4の実施形態として説明する。図24は、本変形例にかかるシステムの機能構成例を示す図である。図24に示す構成のうち、図15に示した構成と実質的に同一の構成については、同一の符号を付してあるため、ここでの説明は省略し、図15に示したシステムと相違する点について以下では説明を行う。図24を参照すると、本変形例にかかるシステムは、装着位置回帰推定部540、及び補正部570に代えて装着位置回帰推定部544及び補正部574を含む点において図24に示したシステムと相違する。
【0139】
装着位置回帰推定部544は、グローバル運動加速度姿勢計算部510により計算された情報に加え、過去の回帰推定処理により推定された装着部位の位置情報を用いて補正部574により補正された装着部位の位置情報を入力として用いて、回帰推定処理を行う。かかる回帰推定に用いられる運動モデルは、上述したトラッキング型運動モデルであり、例えば1サンプル分遅延させられた位置情報を含む運動制約情報を学習することにより事前に用意され得る。
【0140】
上述した第4の変形例によれば、様々な動きへの追従性が向上し、より高精度に装着部位の位置情報を推定することが可能となり得る。
【0141】
<5-5.第5の変形例>
上記実施形態では、図14を参照して装置構成例を説明したが、本技術はかかる例に限定されない。以下では第5の変形例として、ハブ装置20を備えないシステムの装置構成例を説明する。図25は、本変形例にかかるシステムの装置構成例を示す図である。
【0142】
図25に示すように、本変形例にかかるシステムは、センサ装置10A~10F、情報処理装置30、及び出力装置40を含む。図25に示すように、本変形例において、センサ装置10は、ハブ装置20を介することなく、直接的に情報処理装置30と接続される。なお、センサ装置10と情報処理装置30との間は、有線接続されていてもよいし、無線接続されていてもよい。かかる接続の関係を除いて、図25に示す各装置の構成は、図14に示した同一の符号が付された各装置の構成と同様であってよい。
【0143】
<5-6.第6の変形例>
上記実施形態では、運動モデル、及び逆運動学モデルを用いて回帰推定を行う例を説明した。この回帰推定の推定結果は、運動モデル、及び逆運動学モデルを生成するための学習に用いられる運動制約情報に応じて大きく異なり得る。例えば特徴的な姿勢や動作をセンシングして得られた運動制約情報が、学習に用いられた場合、推定結果は実際の身体の動きよりも、学習に用いられた動きに近い特徴を有し易くなる。
【0144】
特徴的な姿勢や動作の例としては、ゾンビのようなキャラクタ独特の姿勢や、格闘シーンに典型的なダイナミックな動作、シューティングゲーム等のゲーム中に頻出する姿勢、ダンスのジャンルごとに特徴的な振り付け動作、あるいはスポーツごとの個別ルールに応じた動作等が挙げられるが、かかる例に限定されるものではない。
【0145】
上記のような運動制約情報をアプリケーションに応じて適宜用意して、運動モデル、及び逆運動学モデルを生成するための学習に用いることで、アプリケーションに応じたスケルトン情報を推定することが可能となる。そのため、例えばスケルトン情報に基づいてアニメーションを作成する場合においては、上述した一連の処理により推定されたスケルトン情報に対して後処理を要することなく、特徴的なアニメーションを生成することも可能となる。
【0146】
<<6.第2の実施形態の概要>>
上述の本開示の実施形態においては、先に説明したように、装着位置回帰推定部540等により推定された身体座標系における位置情報をグローバル座標系に変換するために、接地検出部560により、身体の足元の接地検出処理を行う。例えば、当該接地検出部560は、ZUPTを利用して、言い換えると、速度がゼロ(所定の速度)の状態を接地状態として検出して位置を補正する手法を利用することができる。
【0147】
<6-1.第1のZUPT手法>
まずは、第1のZUPT手法について、図26及び図27を参照して説明する。図26及び図27は、本実施形態に係る第1のZUPT手法を説明するための説明図である。
【0148】
第1のZUPT手法においては、図26に示されるように、足先(具体的には、つま先や足の甲)に装着した、加速度センサやジャイロセンサ等の慣性センサを含むセンサ装置10によって取得されたセンサデータを利用する。
【0149】
詳細には、第1のZUPT手法においては、図27に示すように、上記センサ装置10からセンサデータを取得し、センサデータに含まれるセンサ装置10のローカル座標系における加速度、及び、センサ装置10のローカル座標系における角速度を取得する。そして、第1のZUPT手法においては、取得した加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、グローバル座標系における加速度、速度及び位置を取得する(S600)。
【0150】
次に、本手法においては、上記センサデータを用いて、足先の速度がゼロとなる状態を検出する(S601)。この際、本手法においては、上記センサデータに含まれる加速度の分散、角速度のノルム等を閾値と比較したり、機械学習で加速度や角速度から速度がゼロとなる状態を検出したりしてもよく、特に限定されるものではない。
【0151】
そして、本手法においては、足先の速度がゼロであると検出された際は、S600において慣性航法に基づく処理により取得されたグローバル座標系における足先の速度はゼロであるとして、S600において慣性航法に基づく処理により取得されたグローバル座標系における足先の位置を補正する(S602)。上記補正は、カルマンフィルタ等を用いることができる。例えば、かかるカルマンフィルタによれば、グローバル座標系における足先の加速度を積分することによりグローバル座標系における足先の位置を予測することができる。さらに、当該カルマンフィルタは、足先の速度が速度ゼロとした観測値を用いて内部状態を更新することにより、グローバル座標系における足先の位置の補正を行うことが可能である。
【0152】
<6-2.第2のZUPT手法>
次に、第2のZUPT手法について、図28及び図29を参照して説明する。図28及び図29は、本実施形態に係る第2のZUPT手法を説明するための説明図である。
【0153】
ところで、モーションキャプチャにおいては、上記センサ装置10は、図26に示されるような足先に装着されるとは限らず、例えば、図28に示すように、足首やふくらはぎ等に装着されることがある。人間の動作の特性として、足先が接地した際には、確実にある一定時間の間において足先の速度がゼロになるのに対し、足首等については、その速度がゼロになり難い。特に、モーションキャプチャにおいて走る動作を行った場合等では上述の傾向が顕著に現れることがある。従って、ある一定時間の間に速度がゼロになり難いことから、足首等に装着したセンサ装置10のセンサデータを用いてZUPTを行った場合、精度よくグローバル座標系における位置を補正することが難しい場合がある。
【0154】
また、本発明者らの検討によれば、センサ装置10を足首に装着し、足先にはセンサ装置10を装着しない構成におけるモーションキャプチャで得られた身体の動きを、身体の構造を示すスケルトン構造によって再現した場合、人物の腰から足首までの部位は、高精度に再現することができる。しかしながら、足先等の部位は、膝等の部位に比べて人体拘束力が弱いことから、高精度にその動作を再現することが難しい。特に、アバターが動作するアニメーション等にモーションキャプチャで得られた身体の動きを適用した場合、当該アニメーション内においてアバターの足先がふらふらしてしまい、アバターの重力感が失われてしまうことがある。
【0155】
そこで、上述のような状況を鑑みて、本発明者らは、足首等に装着したセンサ装置10のセンサデータを用いて、足先の速度がゼロとなる状態を推定することを独自に着想し、以下に説明する本実施形態に係る第2のZUPT手法を創作するに至った。当該第2のZUPT手法によれば、足先の速度を間接的に推定することにより、走る動作をモーションキャプチャした際であっても、安定して足先の速度がゼロとなる状態を検出することができることから、よりロバストな足先の位置の補正が可能となる。さらに、当該第2のZUPT手法によれば、上述のようなアバターの足先を、推定した足先の速度や足先の位置を用いて制御することができることから、アニメーション内においてアバターの足先が接地する動作を再現した場合、安定感のある足先の挙動を再現することができる。
【0156】
詳細には、第2のZUPT手法においては、図29に示すように、足首やふくらはぎ等に装着されたセンサ装置10からセンサデータを取得し、センサデータに含まれるセンサ装置10のローカル座標系における加速度、及び、センサ装置10のローカル座標系における角速度を取得する。そして、第2のZUPT手法においては、取得した加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、センサ装置10のグローバル座標系における加速度及び姿勢を取得する(S610)。
【0157】
次に、本手法においては、センサデータ(センサ装置10のローカル座標系における加速度及び角速度)と、慣性航法によるグローバル座標系におけるセンサ装置10の加速度及び姿勢とを用いて、足先の速度を推定する(S611)。そして、本手法においては、センサデータ(センサ装置10のローカル座標系における加速度及び角速度)と、慣性航法によるグローバル座標系におけるセンサ装置10の加速度及び姿勢とを用いて、足首から見た足先の位置を推定する(S612)。さらに、本手法においては、上述のステップにおいて取得されたグローバル座標系における加速度及び姿勢、足先の速度の推定結果、及び、足先の位置の推定結果を融合するフュージョン処理を実行する(S613)。その結果、本手法においては、補正されたグローバル座標系における足首及び足先の位置を取得することができる。なお、各ステップにおける処理の詳細については、後述する。
【0158】
<6-3.機能構成例>
以上、本実施形態に係る第1及び第2のZUPT手法の概要について説明した。次に、一例として、本実施形態の第2のZUPT手法に係るシステム機能構成について、図30を参照して説明する。図30は、本実施形態に係るシステムの機能構成の一例を示す図である。なお、図30は、主に本実施形態の特徴を示す機能構成のみを示しており、本実施形態に係るシステムは図15に示される機能構成を含んでもよい。
【0159】
図30を参照すると、本実施形態にかかるシステムは、グローバル運動加速度姿勢計算部510、積分計算部520、選択部530、装着位置回帰推定部540、信頼度特定部550、接地検出部560、補正部570、補間部580及び推定部561としての機能を有する。なお、図30に示されるグローバル運動加速度姿勢計算部510、積分計算部520、選択部530、装着位置回帰推定部540、信頼度特定部550、接地検出部560、補正部570及び補間部580は、図15を参照して説明した第1の実施形態にかかるシステムの機能構成と同様であるため、ここでは説明を省略し、第1の実施形態とは異なる推定部561のみを説明する。また、以下に説明する図30の各機能構成は、図14に示したいずれかの装置により実現されてもよく、特に限定されるものではない。
【0160】
推定部561は、センサデータ(センサ装置10のローカル座標系における加速度及び角速度)、及び、積分計算部520からのグローバル座標系におけるセンサ装置10の加速度及び姿勢を用いて、足先の速度、及び、足首から見た足先の位置を推定し、推定結果を補正部570に出力する。
【0161】
<6-4.動作例>
以上、本実施形態に係る機能構成例について説明した。続いて、本実施形態の第2のZUPT手法の動作例について、図31を参照して説明する。図31は、本実施形態にかかるシステムの動作例を示すフローチャート図である。なお、図31には、主に本実施形態の特徴を示す処理のみを示しており、本実施形態にかかるシステムは図31に示されない処理を実行してもよい。
【0162】
図31に示すように、グローバル運動加速度姿勢計算部510及び推定部561は、足首やふくらはぎ等に装着されたセンサ装置10からセンサデータ(センサ装置10のローカル座標系における加速度及び角速度)を取得する(S700)。そして、グローバル運動加速度姿勢計算部510及び積分計算部520は、ステップS700で取得した加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、センサ装置10のグローバル座標系における加速度及び姿勢を計算する(S702)。
【0163】
続いて、推定部561は、ステップS700で取得したセンサデータ(センサ装置10のローカル座標系における加速度及び角速度)と、ステップS702で計算した慣性航法によるグローバル座標系におけるセンサ装置10の加速度及び姿勢とを用いて、足先の速度を推定する(S704)。さらに、推定部561は、ステップS700で取得したセンサデータ(センサ装置10のローカル座標系における加速度及び角速度)と、ステップS702で計算した慣性航法によるグローバル座標系におけるセンサ装置10の加速度及び姿勢とを用いて、足首から見た足先の位置を推定する(S706)。
【0164】
次に、補正部570は、ステップS704で推定された足先の速度に対して、ZUPT処理による補正を実行し、ステップS706で推定された足先の位置を融合するフュージョン処理を実行する(S708)。
【0165】
さらに、図31に示す各ステップS704、S706、S708の詳細について、図32及び図33を参照して説明する。なお、図32は、本実施形態に係る足先速度の推定を説明するための説明図であり、図33は、本実施形態に係る足先位置の推定を説明するための説明図である。
【0166】
(足先の速度推定)
推定部516は、上述のステップS704において足先の速度を推定する。詳細には、まずは、上記推定部516には、図32に示されるように、足首に装着されたセンサ装置10で取得されたセンサデータに含まれるローカル座標系におけるセンサ装置10の加速度及び角速度が入力される。さらに、推定部516には、上記センサデータに含まれるローカル座標系におけるセンサ装置10の加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより得られた、グローバル座標系におけるセンサ装置10の加速度及び姿勢が入力される。なお、足先の速度の推定においては、上記センサデータ(ローカル座標系における加速度及び角速度)、上記グローバル座標系における加速度、及び、上記グローバル座標系における姿勢のうちの、いずれか1つ、又は、2つが推定部516に入力されてもよい。また、足先の速度の推定においては、推定部516には、他の部位に装着されたセンサ装置10のセンサデータや、当該センサデータを慣性航法に基づく処理を行うことによって得られたグローバル座標系における加速度及び姿勢が入力されてもよく、特に限定されるものではない。
【0167】
そして、推定部516は、上述の入力に基づいて、予め記述されたルールに従って、足先の速度を推定する。本実施形態においては、推定部516は、機械学習によるクラス分類及び回帰を用いて足先の速度を推定してもよい。この際、推定部516は、推定結果として、足先の速度がゼロであるか否かの2値のラベルを出力することができる。また、本実施形態においては、このような2値のラベルを推定結果として出力することに限定されるものではない。本実施形態においては、例えば、足先の速度が「0m/s以上 0.01m/s未満」、「0.01m/s以上 0.10m/s未満」、「0.10m/s以上」等の3値以上のラベルを出力してもよい。さらに、本実施形態においては、このようなラベルではなく、足先の速度自体を推定して出力してもよい。
【0168】
(足先の位置推定)
推定部516は、上述のステップS706において足首から見た足先の位置を推定する。詳細には、上記推定部516には、図33に示されるように、足首に装着されたセンサ装置10で取得されたセンサデータに含まれるローカル座標系における加速度及び角速度が入力される。また、推定部516には、上記センサデータに含まれるローカル座標系におけるセンサ装置10の加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより得られた、グローバル座標系におけるセンサ装置10の加速度及び姿勢が入力される。なお、足先の位置の推定においては、上記センサデータ(ローカル座標系における加速度及び角速度)、上記グローバル座標系における加速度、及び、上記グローバル座標系における姿勢のうちの、いずれか1つ、又は、2つが推定部516に入力されてもよい。また、足先の位置の推定においては、推定部516には、他の部位に装着されたセンサ装置10のセンサデータや、当該センサデータを慣性航法に基づく処理を行うことによって得られたグローバル座標系における加速度及び姿勢が入力されてもよく、特に限定されるものではない。さらに、推定部516には、図33に示すように、身長や足の各部位の長さ(例えば、ひざ上長さ、ひざ下長さ)等の身体パラメータを入力してもよい。
【0169】
そして、推定部516は、上述の入力に基づいて、予め記述されたルールに従って、足先の位置を推定する。本実施形態においては、推定部516は、機械学習によるクラス分類および回帰を用いて足先の速度を推定してもよい。
【0170】
(フュージョン処理)
補正部570は、上述のステップS708において、グローバル座標系における加速度及び姿勢、推定された足先の速度、及び、推定された足先の位置を融合するフュージョン処理を実行する。補正部570は、例えば、信頼性の高いデータほど高い重みづけをして複数のデータを融合するようなカルマンフィルタ等を用いてフュージョン処理を行うことができる。例えば、かかるカルマンフィルタによれば、ステップS704において推定された足先の速度が足先の速度がゼロであるか否かの2値のラベルであった場合には、速度ゼロのラベルに対して観測値の補正を行うことはできる。また、例えば、カルマンフィルタによれば、推定された足先の速度が3つ以上の複数値のラベルであった場合には、速度ゼロに近いラベルから遠いラベルに対して順次速度ゼロのベクトルの信頼度を下げるように信頼度を与えることにより、好適にフュージョン処理を行うことができる。
【0171】
以上のように、本実施形態に係る第2のZUPT手法によれば、足先の速度を間接的に推定することができることから、走る動作をモーションキャプチャした際であっても、安定して足先の速度がゼロとなる状態を検出することができることから、よりロバストな足先の位置の補正が可能となる。さらに、当該第2のZUPT手法によれば、上述のようなアバターの足先を、推定した足先の速度や足先の位置を用いて制御することができることから、アニメーション内においてアバターの足先が接地する動作を再現した場合、安定感のある足先の挙動を再現することができる。
【0172】
<6-5.変形例1>
上述した実施形態においては、片足の足首に装着されたセンサ装置10のセンサデータを使用していたが、本実施形態においてはそれに限定されるものではなく、両足の足首に装着されたセンサ装置10のセンサデータを使用してもよい。このようにすることで、より高精度にZUPTを行うことが可能となる。そこで、本実施形態の変形例1として、図34から図36を参照して、両足の足首に装着されたセンサ装置10のセンサデータを使用する変形例を説明する。図34は、変形例1に係るZUPT手法を説明するための説明図であり、図35は、変形例1に係る相対位置の推定を説明するための説明図であり、さらに、図36は、変形例1に係るシステムの動作例を示すフローチャート図である。
【0173】
詳細には、本変形例1においては、図34に示すように、右足首に装着されたセンサ装置10、左足首に装着されたセンサ装置10、その他の部位に装着されたセンサ装置10からセンサデータを取得する。さらに、本変形例1においては、右足首のローカル座標系における加速度及び角速度と、左足首のローカル座標系における加速度及び角速度と、その他の部位のローカル座標系における加速度及び角速度とを取得する。そして、本変形例1においては、取得した右足首の加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、右足首のグローバル座標系における加速度及び姿勢を取得する(S800)。
【0174】
さらに、上述と同様に、本変形例1においては、取得した左足首の加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、左足首のグローバル座標系における加速度及び姿勢を取得する(S802)。さらに、本変形例1においては、取得したその他の部位の加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、その他の部位のグローバル座標系における加速度及び姿勢を取得する(S804)。
【0175】
次に、本変形例においては、慣性航法によるグローバル座標系における右足首、左足首及びその他の部位の加速度及び姿勢を用いて、両足先の速度をそれぞれ推定する(S806)。そして、本変形例においては、慣性航法によるグローバル座標系における右足首、左足首及びその他の部位の加速度及び姿勢を用いて、両足先の位置をそれぞれ推定する(S808)。さらに、本変形例においては、慣性航法によるグローバル座標系における右足首、左足首及びその他の部位の加速度及び姿勢を用いて、両足首の相対位置(図35に示されるR20)を推定する(S810)。
【0176】
本変形例においては、新たに両足首の相対位置を推定することから、より制約の強いグローバル座標系における足首及び足先の位置を取得することが可能となる。当該推定においては、上述の実施形態における推定と同様に、機械学習を用いることができる。さらに、両足首の速度、両足首の位置、両足首の相対位置の推定においては、慣性航法によるグローバル座標系における右足首、左足首及びその他の部位の加速度及び姿勢だけでなく、上記センサデータに含まれる右足首、左足首及びその他の部位のローカル座標系における加速度及び角速度も用いてもよく、身長や足の各部位の長さ等の身体パラメータを用いてもよく、特に限定されるものではない。
【0177】
さらに、本変形例においては、両足先の速度の推定結果、両足先の位置の推定結果、及び、両足首の相対位置を融合するフュージョン処理を実行する(S812)。なお、本変形例におけるフュージョン処理も、上述と同様に、両足首及び両足先の速度及び位置の状態を推定するカルマンフィルタ等を用いることにより処理を行うことができる。その結果、本変形例においては、補正されたグローバル座標系における足首及び足先の位置を取得することができる。
【0178】
上述の変形例1の動作をまとめると、図36に示すように、グローバル運動加速度姿勢計算部510及び推定部561は、両足首等に装着されたセンサ装置10からセンサデータ(両足首及びその他の部位のローカル座標系における加速度及び角速度)を取得する(S820)。そして、グローバル運動加速度姿勢計算部510及び積分計算部520は、ステップS820で取得した加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、両足首及びその他の部位のグローバル座標系における加速度及び姿勢を計算する(S822)。
【0179】
続いて、推定部561は、ステップS822で計算した慣性航法によるグローバル座標系における両足首及びその他の部位の加速度及び姿勢を用いて、両足先の速度を推定する(S824)。さらに、推定部561は、ステップS822で計算した慣性航法によるグローバル座標系における両足首及びその他の部位を用いて、両足首から見た両足足先の位置をそれぞれ推定する(S826)。
【0180】
次に、推定部561は、慣性航法によるグローバル座標系における両足首及びその他の部位の加速度及び姿勢を用いて、両足首の相対位置(図35に示されるR20)を推定する(S828)。さらに、補正部570は、ステップS824で推定された両足先の速度に対して、ZUPT処理による補正を実行し、ステップS826で推定された両足先の位置、及び、ステップS828で推定された両足首の相対位置を融合するフュージョン処理を実行する(S830)。
【0181】
上述した本変形例においては、両足の足首に装着されたセンサ装置10のセンサデータ等を利用して、新たに両足首の相対位置を推定することから、より制約の強いグローバル座標系における足首及び足先の位置を取得することが可能となる。その結果、本変形例においては、より高精度にZUPTを行うことが可能となる。
【0182】
<6-6.変形例2>
上述した変形例1においては、両足首の相対位置を推定していたが、さらに、相対位置を測定する距離センサのセンサデータを用いてもよい。このようにすることで、より高精度にZUPTを行うことが可能となる。そこで、本実施形態の変形例2として、図37及び図38を参照して、相対位置を測定する距離センサのセンサデータを使用する変形例を説明する。図37は、変形例2に係るセンサ装置10の装置構成の一例を示す図であり、図38は、変形例2に係るZUPT手法を説明するための説明図である。
【0183】
図37に示すように、本変形例2にかかるシステムは、センサ装置10Gを含むことができる。当該センサ装置10Gは、例えば図14に示すセンサ装置10と同様に、ジャイロセンサ12、加速度センサ14、制御部16、及び通信部18を有する。さらに、当該センサ装置10Gは、両足首の間の相対距離を測定することができる距離センサ50をさらに含むことができる。当該距離センサ50は、例えば、超音波の反射により距離を測定することができる超音波センサ等であることができる。
【0184】
詳細には、本変形例2においては、図34に示すように、右足首に装着されたセンサ装置10、左足首に装着されたセンサ装置10、その他の部位に装着されたセンサ装置10からセンサデータを取得する。さらに、本変形例2においては、距離センサ50から両足首の相対距離についてのセンサデータを取得する。そして、本変形例2においては、取得した両足首の加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、両足首のグローバル座標系における加速度及び姿勢を取得する(S900、S902)。さらに、本変形例2においては、取得したその他の部位の加速度及び角速度に対して上述した慣性航法に基づく処理を行うことにより、その他の部位のグローバル座標系における加速度及び姿勢を取得する(S904)。
【0185】
次に、本変形例においては、慣性航法によるグローバル座標系における右足首、左足首及びその他の部位の加速度及び姿勢、さらにはセンサデータに含まれる両足首の相対距離を用いて、両足先の速度及び位置、さらには両足首の相対位置をそれぞれ推定する(S906、S908、S910)。
【0186】
さらに、本変形例においては、両足先の速度の推定結果、両足先の位置の推定結果、及び、両足首の相対位置、さらには、センサデータに含まれる両足首の相対距離を融合するフュージョン処理を実行する(S912)。
【0187】
以上、上述した変形例2においては、新たに相対位置を測定する距離センサのセンサデータを用いることにより、より高精度にZUPTを行うことが可能となる。
【0188】
<<7.ハードウェア構成例>>
以上、本開示の実施形態を説明した。最後に、図39を参照して、本開示の実施形態にかかる情報処理装置のハードウェア構成について説明する。図39は、本開示の実施形態にかかる情報処理装置のハードウェア構成の一例を示すブロック図である。なお、図39に示す情報処理装置900は、例えば、図14に示したセンサ装置10、ハブ装置20、及び情報処理装置30を実現し得る。本開示の実施形態にかかるセンサ装置10、ハブ装置20、及び情報処理装置30による情報処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
【0189】
図39に示すように、情報処理装置900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903及びホストバス904aを備える。また、情報処理装置900は、ブリッジ904、外部バス904b、インタフェース905、入力装置906、出力装置907、ストレージ装置908、ドライブ909、接続ポート911、通信装置913、及びセンサ915を備える。情報処理装置900は、CPU901に代えて、又はこれとともに、DSP若しくはASIC等の処理回路を有してもよい。
【0190】
CPU901は、演算処理装置および制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。CPU901は、例えば、制御部16、制御部24、制御部34を形成し得る。
【0191】
CPU901、ROM902及びRAM903は、CPUバスなどを含むホストバス904aにより相互に接続されている。ホストバス904aは、ブリッジ904を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス904bに接続されている。なお、必ずしもホストバス904a、ブリッジ904および外部バス904bを分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
【0192】
入力装置906は、例えば、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、ユーザによって情報が入力される装置によって実現される。また、入力装置906は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話やPDA等の外部接続機器であってもよい。さらに、入力装置906は、例えば、上記の入力手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などを含んでいてもよい。情報処理装置900のユーザは、この入力装置906を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
【0193】
出力装置907は、取得した情報をユーザに対して視覚的又は聴覚的に通知することが可能な装置で形成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置及びランプ等の表示装置や、スピーカ及びヘッドホン等の音声出力装置や、プリンタ装置等がある。出力装置907は、例えば、情報処理装置900が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置900が行った各種処理により得られた結果を、テキスト、イメージ、表、グラフ等、様々な形式で視覚的に表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して聴覚的に出力する。
【0194】
ストレージ装置908は、情報処理装置900の記憶部の一例として形成されたデータ格納用の装置である。ストレージ装置908は、例えば、HDD等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス又は光磁気記憶デバイス等により実現される。ストレージ装置908は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。このストレージ装置908は、CPU901が実行するプログラムや各種データ及び外部から取得した各種のデータ等を格納する。
【0195】
ドライブ909は、記憶媒体用リーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ909は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体に記録されている情報を読み出して、RAM903に出力する。また、ドライブ909は、リムーバブル記憶媒体に情報を書き込むこともできる。
【0196】
接続ポート911は、外部機器と接続されるインタフェースであって、例えばUSB(Universal Serial Bus)などによりデータ伝送可能な外部機器との接続口である。
【0197】
通信装置913は、例えば、ネットワーク920に接続するための通信デバイス等で形成された通信インタフェースである。通信装置913は、例えば、有線若しくは無線LAN(Local Area Network)、LTE(Long Term Evolution)、Bluetooth(登録商標)又はWUSB(Wireless USB)用の通信カード等である。また、通信装置913は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ又は各種通信用のモデム等であってもよい。この通信装置913は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。通信装置913は、例えば、通信部18、通信部22、通信部32を形成し得る。
【0198】
センサ915は、例えば、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサ、測距センサ、力センサ等の各種のセンサである。センサ915は、情報処理装置900の姿勢、移動速度等、情報処理装置900自身の状態に関する情報や、情報処理装置900の周辺の明るさや騒音等、情報処理装置900の周辺環境に関する情報を取得する。また、センサ915は、GPS信号を受信して装置の緯度、経度及び高度を測定するGPSセンサを含んでもよい。センサ915は、例えば、ジャイロセンサ12、加速度センサ14を形成し得る。
【0199】
なお、ネットワーク920は、ネットワーク920に接続されている装置から送信される情報の有線、または無線の伝送路である。例えば、ネットワーク920は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク920は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。
【0200】
以上、本開示の実施形態にかかる情報処理装置900の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本開示の実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【0201】
なお、上述のような本開示の実施形態にかかる情報処理装置900の各機能を実現するためのコンピュータプログラムを作製し、PC等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
【0202】
<<8.むすび>>
以上説明したように、本開示の実施形態によれば、モーションセンサが装着された身体の部位の位置情報をより高精度に得ることが可能である。さらに、本開示の実施形態によれば、モーションセンサが装着されていない部位の位置情報、及び姿勢情報をも得ることが可能であるため、より少ないモーションセンサを用いて、スケルトン情報を得ることが可能である。
【0203】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0204】
例えば、上記実施形態では、モーションセンサとして、慣性センサが身体に装着される例を主に説明したが、本技術はかかる例に限定されない。モーションセンサは、身体の動きをセンシングするセンサであればよく、上述したように地磁気センサ、気圧センサ、イメージセンサ等であってもよい。
【0205】
また、上記実施形態における各ステップは、必ずしもフローチャート図として記載された順序に沿って時系列に処理される必要はない。例えば、上記実施形態の処理における各ステップは、フローチャート図として記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
【0206】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示にかかる技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【0207】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
身体の2箇所以上の部位に装着された2以上のモーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第1の出力と、前記センサデータに対して第2の処理を施して得られた第2の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正を行う補正機能を、コンピュータに実現させるためのプログラム。
(2)
前記センサデータは加速度を含み、
前記第1の処理は、前記加速度の積分を含み、
前記第1の出力は前記積分により得られる、前記装着部位の位置情報を含む、前記(1)に記載のプログラム。
(3)
前記センサデータは加速度を含み、
前記第2の処理は、前記装着部位の位置情報を回帰により推定する回帰推定処理を含み、
前記回帰推定処理は、前記加速度に基づいて行われる、前記(1)または(2)に記載のプログラム。
(4)
前記センサデータは角速度をさらに含み、
前記回帰推定処理は、前記角速度にさらに基づいて行われる、前記(3)に記載のプログラム。
(5)
前記回帰推定処理の入力として、前記角速度に基づいて座標系変換された前記加速度が用いられる、前記(4)に記載のプログラム。
(6)
前記回帰推定処理の入力として、前記角速度に基づいて得られる前記装着部位の姿勢情報が用いられる、前記(4)または(5)に記載のプログラム。
(7)
前記回帰推定処理の入力として、前記モーションセンサにより取得された前記加速度または前記角速度が用いられる、前記(4)~(6)のいずれか一項に記載のプログラム。
(8)
前記回帰推定処理は、過去に前記回帰推定処理により推定された前記装着部位の位置情報に基づいて行われる、前記(3)~(7)のいずれか一項に記載のプログラム。
(9)
前記補正機能により補正された前記装着部位の位置情報に基づいて、前記モーションセンサが装着されていない非装着部位の位置情報、または姿勢情報を推定する補間機能を、前記コンピュータにさらに実現させるための、前記(1)~(8)のいずれか一項に記載のプログラム。
(10)
前記補間機能は、所定のスケルトン構造において、複数の前記装着部位の間に位置する前記非装着部位の位置情報、または姿勢情報を推定する、前記(9)に記載のプログラム。
(11)
前記補間機能は、前記非装着部位の位置情報または姿勢情報を回帰により推定する、前記(9)または(10)に記載のプログラム。
(12)
前記第1の出力または前記第2の出力に含まれる前記装着部位の位置情報の信頼度を示す信頼度を特定する信頼度特定機能を前記コンピュータにさらに実現させるための、前記(9)~(11)のいずれか一項に記載のプログラム。
(13)
前記補正機能は、前記信頼度特定機能により特定された前記信頼度に基づいて、前記装着部位の位置情報を補正する、前記(12)に記載のプログラム。
(14)
前記第2の処理は、前記回帰推定処理により推定された前記装着部位の位置情報に基づいて、前記モーションセンサが装着されていない非装着部位の位置情報または姿勢情報を推定する補間処理をさらに含む、前記(3)~(8)のいずれか一項に記載のプログラム。
(15)
前記補正機能は、前記第1の出力に基づいて、前記第2の出力に含まれる前記非装着部位の位置情報または姿勢情報をさらに補正する、前記(14)に記載のプログラム。
(16)
前記補正機能は、カルマンフィルタにより実現される、前記(9)~(15)のいずれか一項に記載のプログラム。
(17)
前記補正機能は、接地状態を検出し、検出結果に基づいて前記装着部位の位置情報を補正する、前記(1)に記載のプログラム。
(18)
前記補正機能は、前記センサデータに含まれる加速度及び角速度を用いて、足先の速度及び位置を推定し、推定結果に基づいて、当該足先が所定の速度を持つ状態である前記接地状態を検出する、前記(17)に記載のプログラム。
(19)
身体の2箇所以上の部位に装着された2以上のモーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第1の出力と、前記センサデータに対して第2の処理を施して得られた第2の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正を行う補正部を備える、情報処理装置。
(20)
身体の2箇所以上の部位に装着された2以上のモーションセンサにより取得されたセンサデータに対して第1の処理を施して得られた第1の出力と、前記センサデータに対して第2の処理を施して得られた第2の出力とを参照して、前記モーションセンサが装着された装着部位の位置情報の補正をプロセッサが行うこと、を含む情報処理方法。
【符号の説明】
【0208】
10、10A、10B、10C、10D、10E、10F、10G センサ装置
12 ジャイロセンサ
14 加速度センサ
16 制御部
18、32 通信部
20 ハブ装置
22 通信部
24、34 制御部
30 情報処理装置
40、907 出力装置
50 距離センサ
510 グローバル運動加速度姿勢計算部
520 積分計算部
530 選択部
540、541、544 装着位置回帰推定部
550 信頼度特定部
560 接地検出部
561 推定部
570、572、573、574 補正部
580、583 補間部
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ブリッジ
904a ホストバス
904b 外部バス
905 インタフェース
906 入力装置
908 ストレージ装置
909 ドライブ
911 接続ポート
913 通信装置
915 センサ
920 ネットワーク
D 遅延器
D103、D104、D105、SD10、SD90、SD100、SD101、SD102、SD103、SD104、SD105 スケルトン情報
L1 上限
L2 下限
P11、P12、P13、P14、P15、P16、P101、P102、P103、P104、P105、P106、SP101、SP102、SP103、SP105、SP106、SP107 装着部位
PD10、PD12、PD100 装着部位情報
R10 尤度分布
R20 相対位置
S100、S111、S112、S113、S114、S121、S122、S123、S130、S200、S502、S504、S506、S508、S510、S512、S514、S516、S518、S520、S600、S601、S602、S610、S611、S612、S613、S700、S702、S704、S706、S708、S710、S800、S802、S804、S806、S808、S810、S812、S900、S902、S904、S906、S908、S910、S912 ステップ
S53、S54、S55、S56、S57、S58、S59 位置推定処理
SB101、SB81、SB82 ボーン
SP11,SP12、SP20、SP81、SP82、SP83、SP91、SP92、SP93、SP94、SP95、SP96 部位
U1 ユーザ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39