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

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

▶ 株式会社メガチップスの特許一覧

特開2024-143096姿勢推定システムおよび姿勢推定方法
<>
  • 特開-姿勢推定システムおよび姿勢推定方法 図1
  • 特開-姿勢推定システムおよび姿勢推定方法 図2
  • 特開-姿勢推定システムおよび姿勢推定方法 図3
  • 特開-姿勢推定システムおよび姿勢推定方法 図4
  • 特開-姿勢推定システムおよび姿勢推定方法 図5
  • 特開-姿勢推定システムおよび姿勢推定方法 図6
  • 特開-姿勢推定システムおよび姿勢推定方法 図7
  • 特開-姿勢推定システムおよび姿勢推定方法 図8
  • 特開-姿勢推定システムおよび姿勢推定方法 図9
  • 特開-姿勢推定システムおよび姿勢推定方法 図10
  • 特開-姿勢推定システムおよび姿勢推定方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143096
(43)【公開日】2024-10-11
(54)【発明の名称】姿勢推定システムおよび姿勢推定方法
(51)【国際特許分類】
   A61B 5/107 20060101AFI20241003BHJP
【FI】
A61B5/107 300
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023055594
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100108523
【弁理士】
【氏名又は名称】中川 雅博
(74)【代理人】
【識別番号】100125704
【弁理士】
【氏名又は名称】坂根 剛
(74)【代理人】
【識別番号】100187931
【弁理士】
【氏名又は名称】澤村 英幸
(72)【発明者】
【氏名】中井 駿介
【テーマコード(参考)】
4C038
【Fターム(参考)】
4C038VA04
4C038VB11
4C038VB12
4C038VB14
4C038VC20
(57)【要約】
【課題】少ないセンサの数で、ユーザの身体の向きも含めた姿勢の推定を行うことを課題とする。
【解決手段】ユーザの四肢のいずれかの部位に位置する測定部材1と、測定部材の姿勢を取得する姿勢取得部520とを備え、測定部材は、加速度センサ14およびジャイロセンサ15を含み、姿勢取得部520は、ユーザによる測定部材を目標物3に対向させる動作に基づき、測定部材の基準座標系を設定する基準座標決定部521と、ユーザによる測定部材の姿勢を変化させる動作に応じて加速度センサおよびジャイロセンサから出力される検出値Da,Drを取得することにより、測定部材の目標物に対する姿勢を推定する姿勢推定部522とを含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
ユーザの四肢のいずれかの部位に位置する測定部材と、
前記測定部材の姿勢を取得する姿勢取得部と、
を備え、
前記測定部材は、
加速度センサおよびジャイロセンサ、
を含み、
前記姿勢取得部は、
前記ユーザによる前記測定部材を目標物に対向させる動作に基づき、前記測定部材の基準座標系を設定する基準座標決定部と、
前記ユーザによる前記測定部材の姿勢を変化させる動作に応じて前記加速度センサおよび前記ジャイロセンサから出力される検出値を取得することにより、前記測定部材の前記目標物に対する姿勢を推定する姿勢推定部と、
を含む、姿勢推定システム。
【請求項2】
前記ユーザの四肢のいずれか複数の部位に測定部材が位置し、
前記姿勢推定部は、前記複数の測定部材の前記目標物に対する姿勢を推定する、請求項1に記載の姿勢推定システム。
【請求項3】
前記複数の測定部材は、前記ユーザの左右の手のそれぞれに位置する2個の測定部材を含む、請求項2に記載の姿勢推定システム。
【請求項4】
前記複数の測定部材は、前記ユーザの左右の手のそれぞれに位置する2個の測定部材および左右の足にそれぞれ位置する2個の測定部材を含む、請求項2に記載の姿勢推定システム。
【請求項5】
前記姿勢取得部は、
前記複数の測定部材のそれぞれの基準座標系を、前記複数の測定部材の中の選択された第1の測定部材の基準座標系に変換することで、前記姿勢推定部が推定した前記複数の測定部材の前記目標物に対する姿勢を前記第1の測定部材の基準座標系に変換する共通座標変換部、
を含む、請求項2に記載の姿勢推定システム。
【請求項6】
前記姿勢取得部は、
前記姿勢推定部により推定された前記測定部材の前記目標物に対する姿勢を入力し、前記測定部材の位置する前記部位以外の他の部位の姿勢を出力する他部位推定部、
を含む、請求項1に記載の姿勢推定システム。
【請求項7】
前記ユーザの四肢のいずれか複数の部位に測定部材が位置し、
前記他部位推定部は、前記姿勢推定部により推定された前記複数の測定部材の前記目標物に対する姿勢を入力し、前記複数の測定部材の位置する複数の部位以外の他の部位の姿勢を出力する、請求項6に記載の姿勢推定システム。
【請求項8】
前記他部位推定部は、学習用データを用いて訓練された機械学習モデルである、請求項6に記載の姿勢推定システム。
【請求項9】
前記姿勢取得部は、
前記他部位推定部の座標系に応じて、前記測定部材の基準座標系を、前記他部位推定部の座標系に変換する正規化部、
をさらに備える、請求項8に記載の姿勢推定システム。
【請求項10】
前記他部位推定部は、基準身長である基準ユーザによる学習用データを用いて訓練され、
前記姿勢取得部は、
前記ユーザの身長に応じて、前記加速度センサから出力された加速度の大きさを補正する加速度補正部、
をさらに備える請求項8に記載の姿勢推定システム。
【請求項11】
前記加速度補正部は、
前記ユーザの身長と前記基準身長との比に応じて前記加速度を補正する、請求項10に記載の姿勢推定システム。
【請求項12】
前記加速度補正部は、
前記ユーザによる規定の動作に要する時間と前記規定の動作に要する基準時間との比を第1の比とし、前記ユーザによる前記規定の動作中の加速度パワーの時間平均と前記規定の動作中の加速度パワーの基準時間平均との比を第2の比とするとき、前記第1の比と前記第2の比との比に基づいて前記加速度を補正する、請求項10に記載の姿勢推定システム。
【請求項13】
前記目標物はディスプレイを含み、
前記姿勢推定部により推定された前記測定部材の前記ディスプレイに対する姿勢に基づいて、前記ディスプレイに出力される画像が変化する、請求項1に記載の姿勢推定システム。
【請求項14】
前記測定部材は、ゲーム用のコントローラを含み、
前記ディスプレイには、前記コントローラの前記ディスプレイに対する姿勢に基づいて変化するゲーム用画像が表示される、請求項13に記載の姿勢推定システム。
【請求項15】
ユーザの四肢のいずれかの部位に位置する測定部材を前記ユーザが目標物に対向させる動作に基づいて、前記測定部材の基準座標系を設定する工程と、
前記ユーザによる前記測定部材の姿勢を変化させる動作に応じて前記測定部材が備える加速度センサおよびジャイロセンサから出力される検出値を取得することにより、前記測定部材の前記目標物に対する姿勢を推定する工程と、
を含む、姿勢推定方法。
【請求項16】
推定された前記測定部材の前記目標物に対する姿勢を入力し、前記測定部材の位置する前記部位以外の他の部位の姿勢を出力する工程、
を含む、請求項15に記載の姿勢推定方法。
【請求項17】
前記目標物はディスプレイを含み、
推定された前記測定部材の前記目標物に対する姿勢に基づいて、前記ディスプレイに出力される画像が変化する、請求項15に記載の姿勢推定方法。
【請求項18】
前記ユーザの身長に応じて、前記加速度センサから出力された加速度の大きさを補正する工程、
を含む、請求項15に記載の姿勢推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの姿勢を推定する技術に関する。
【背景技術】
【0002】
ユーザの身体に取り付けられた複数のセンサから、ユーザの姿勢を推定する技術がある。下記非特許文献1においては、ユーザの身体の6箇所に取り付けられた9軸センサ(3軸加速度センサ,3軸ジャイロセンサ,3軸地磁気センサ)から、ユーザのポーズを推定している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Deep Inertial Poser、ACM Trans. Graph.,Vol.37,No6,Article 185,2018年11月発行
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1においては、ユーザの腰に取り付けられたセンサによって、ユーザの身体の他の部位に取り付けられたセンサの値が正規化される。つまり、ユーザの身体の各部位の姿勢が、ユーザの腰が向く方向を正面方向として正規化される。
【0005】
このように、非特許文献1では、ユーザの身体の向きが分からないため、ユーザの腰が向く方向を正面方向として扱っている。推定されたユーザの姿勢を用いたゲームプログラムなどのアプリケーションにおいては、身体の向きも含めた推定が行われることがより好ましい。また、非特許文献1では、ユーザの身体の各部位の姿勢を推定するために、加速度センサ、ジャイロセンサおよび地磁気センサが必要である。
【0006】
本発明の目的は、少ないセンサの数で、ユーザの身体の向きも含めた姿勢の推定を行うことである。
【課題を解決するための手段】
【0007】
本発明の一局面に従う姿勢推定システムは、ユーザの四肢のいずれかの部位に位置する測定部材と、測定部材の姿勢を取得する姿勢取得部とを備え、測定部材は、加速度センサおよびジャイロセンサを含み、姿勢取得部は、ユーザによる測定部材を目標物に対向させる動作に基づき、測定部材の基準座標系を設定する基準座標決定部と、ユーザによる測定部材の姿勢を変化させる動作に応じて加速度センサおよびジャイロセンサから出力される検出値を取得することにより、測定部材の目標物に対する姿勢を推定する姿勢推定部とを含む。
【0008】
本発明の他の局面に従う姿勢推定方法は、ユーザの四肢のいずれかの部位に位置する測定部材をユーザが目標物に対向させる動作に基づいて、測定部材の基準座標系を設定する工程と、ユーザによる測定部材の姿勢を変化させる動作に応じて測定部材が備える加速度センサおよびジャイロセンサから出力される検出値を取得することにより、測定部材の目標物に対する姿勢を推定する工程とを含む。
【発明の効果】
【0009】
本発明によれば、少ないセンサの数で、ユーザの身体の向きも含めた姿勢の推定を行うことができる。
【図面の簡単な説明】
【0010】
図1】本実施の形態に係る姿勢推定システムを含むゲームシステムの全体図である。
図2】第1の実施の形態に係る姿勢推定システムを含むゲームシステムを示す機能ブロック図である。
図3】ゲーム本体の構成を示すブロック図である。
図4】コントローラが備える加速度センサおよびジャイロセンサの3軸座標系を示す図である。
図5】ユーザがコントローラを保持してキャリブレーション動作をしている状態を示す図である。
図6】キャリブレーション座標系および座標変換後のコントローラの基準座標系を示す図である。
図7】コントローラの基準座標系およびユーザ操作後のコントローラの現在座標系を示す図である。
図8】第1の実施の形態に係る姿勢推定方法を示すフローチャートである。
図9】第2の実施の形態に係る姿勢推定システムを含むゲームシステムを示す機能ブロック図である。
図10】ユーザの身長差による動作の違いを示す図である。
図11】第2の実施の形態に係る姿勢推定方法を示すフローチャートである。である。
【発明を実施するための形態】
【0011】
以下、添付の図面を参照しながら、本発明の実施の形態に係る姿勢推定システムおよび姿勢推定システムについて説明する。
【0012】
[1]ゲームシステムの全体構成
図1は、実施の形態に係る姿勢推定システムを利用するゲームシステム10を示す全体図である。本実施の形態においては、姿勢推定システムをゲームシステム10に利用する場合を一例として説明する。
【0013】
図1に示すように、ゲームシステム10は、コントローラ1、ゲーム本体2およびディスプレイ3を備えて構成される。コントローラ1は、ユーザが左手で保持するコントローラ1Lおよびユーザが右手で保持するコントローラ1Rを含んでいる。コントローラ1L,1Rは、無線通信によりゲーム本体2と通信可能である。コントローラ1L,1Rは、有線通信によりゲーム本体2と通信する構成であってもよい。ディスプレイ3は、例えば、家庭用のテレビモニタを利用可能である。ディスプレイ3は、音声/映像ケーブルによってゲーム本体2に接続される。ディスプレイ3は、無線通信により、ゲーム本体2から音声および映像を受信する構成とすることもできる。
【0014】
以下の説明において、左右のコントローラ1L,1Rについて共通の機能を説明するときは、適宜コントローラ1と表す。図1に示す姿勢推定システムを利用するゲームシステム10は、以下に示す第1の実施の形態および第2の実施の形態に共通の構成である。
【0015】
[2]第1の実施の形態
(1)ゲームシステムの機能構成
図2は、第1の実施の形態に係るゲームシステム10を示す機能ブロック図である。コントローラ1は、制御部11、通信部12、操作部13、加速度センサ14およびジャイロセンサ15を備える。コントローラ1L,1Rは、ユーザの左右の手によって保持され、コントローラ1L,1Rの操作に応じてゲームの進行が行われる。
【0016】
制御部11は、コントローラ1の全体制御を行う。通信部12は、ゲーム本体2との間で無線通信を行う。無線通信としては例えばBluetooth(登録商標)などのプロトコルが用いられる。操作部13は、ボタン、十字カーソルなどの各種の操作子から構成される。ユーザは、操作部13を操作することで、ゲームの各種設定、ゲームの開始・終了指示やゲームの進行に関わる各種の操作を行う。
【0017】
加速度センサ14は、コントローラ1の3軸方向の加速度を測定するセンサである。つまり、加速度センサ14は、XYZ軸の3軸方向の加速度を測定可能である。ジャイロセンサ15は、コントローラ1の3軸方向の回転速度を測定するセンサである。つまり、ジャイロセンサ15は、ヨー軸、ピッチ軸、ロール軸の3軸方向の回転角速度を測定可能である。本実施の形態において、コントローラ1の加速度センサ14およびジャイロセンサ15は、3軸が一致するようにして、コントローラ1に内蔵されている。この3軸をコントローラ1の装置座標系とする。加速度センサ14は、測定した加速度検出値Daを制御部11に与える。ジャイロセンサ15は、測定した回転速度検出値Drを制御部11に与える。
【0018】
ゲーム本体2は、制御部50、通信部21、操作部22および出力部23を備える。図3は、ゲーム本体2の構成を示すブロック図である。ゲーム本体2は、図3に示すように、CPU(Central Processing Unit)51、RAM(Random Access Memory)52、ROM(Read Only Memory)53および記憶装置54を備えて構成される。記憶装置54には、プログラムGPが格納される。CPU51は、RAM52を作業領域として利用し、プログラムGPを実行することでゲームを実行させる。実行されたゲームの画像は、出力部23を介してディスプレイ3に出力される。ROM53には、制御プログラムなどが格納される。CPU31,RAM52,ROM53および記憶装置54により、制御部50が構成される。
【0019】
再び図2を参照する。図2に示すように、制御部50は、ゲーム制御部510および姿勢取得部520を備える。制御部50は、CPU51が、RAM52を作業領域として利用し、プログラムGPを実行することで実現される機能部である。ゲーム制御部510は、コントローラ1を用いたユーザ操作に基づいてゲームを進行させる。姿勢取得部520は、ユーザが保持している左右のコントローラ1L,1Rに基づいて、ユーザの身体の各部位の姿勢を取得する。姿勢取得部520は、基準座標決定部521、姿勢推定部522、共通座標変換部523、正規化部524および他部位推定部525を備える。コントローラ1および姿勢取得部520によって本実施の形態に係る姿勢推定システムが構成される。
【0020】
基準座標決定部521は、ユーザによりコントローラ1のキャリブレーションが実行されたときに、コントローラ1の基準座標系を決定する。図4は、コントローラ1が備える加速度センサ14およびジャイロセンサ15に共通の座標系(装置座標系)を示す図である。左のコントローラ1Lは、XL軸、YL軸、ZL軸の座標系を持つ。右のコントローラ1Rは、XR軸、YR軸、ZR軸の座標系を持つ。コントローラ1の前面1Fは、主に、コントローラ1の操作部13が配置される面である。ただし、操作部13は、前面1F以外にも配置されてもよい。図4に示すように、左のコントローラ1Lについては、ZL軸はコントローラ1Lの前面1Fに対して前向に垂直に延びる。一方、右のコントローラ1Rについては、ZR軸はコントローラ1Lの前面1Fに対して後方に垂直に延びる。左のコントローラ1LのXL軸およびYL軸、および、右のコントローラ1RのXR軸およびYR軸は、前面1Fと並行な面内に延びる。
【0021】
図5は、ユーザがコントローラ1のキャリブレーションを実行している様子を示す図である。ユーザは、コントローラ1のキャリブレーションを行うために、図に示すように、左右のコントローラ1L,1Rを左右の手で保持し、左右のコントローラ1L,1Rの前面1Fをディスプレイ3に対向させる。また、ユーザは、左右のコントローラ1L,1Rが鉛直方向と並行となるように調整する。このように、本実施の形態においては、キャリブレーション動作として、ユーザに対していわゆるIポーズを要求する。これにより、左のコントローラ1LのZL軸の正の方向にディスプレイ3が位置する状態となり、右のコントローラ1RのZR軸の負の方向にディスプレイ3が位置する状態となる。つまり、ユーザは、左右のコントローラ1L,1Rの前面1Fがディスプレイ3の画面と並行となるように位置合わせをする。そして、ユーザは、位置合わせをした状態で、操作部13を操作し、キャリブレーションの実行指示を行う。基準座標決定部521は、キャリブレーションの実行指示を受けた時点で、左のコントローラ1Lの座標系(XL軸、YL軸、ZL軸)および右のコントローラ1Rの座標系(XR軸、YR軸、ZR軸)をキャリブレーション座標系として設定する。なお、キャリブレーション実行がユーザ操作により指示される以外に、システムにより自動で指示される形態であってもよい。例えば、X軸方向の加速度として-1G(重力加速度に釣り合う値)が検出され、かつ、Y軸およびZ軸方向の加速度が0の状態が一定時間継続したときに、キャリブレーションが実行されてもよい。
【0022】
仮に、ユーザが正確に、左右のコントローラ1L,1Rの前面1Fがディスプレイ3の画面と並行となるように、そして、XL軸およびXR軸が鉛直下方を向くように位置合わせをしたとする。このとき、ZL軸およびZR軸は、ディスプレイ3の画面に垂直となり、XL軸およびXR軸が鉛直下方を向き、YL軸およびYR軸はディスプレイ3の画面と並行且つ水平方向に延びる。そして、左右のコントローラ1L,1Rのキャリブレーション座標系は、YZ平面内(水平面内)において相互に180度回転させた関係にある。このような状態は理想的にキャリブレーションが行われるが、実際には、上記の状態からユーザの保持した状態によって、各軸は少しずつ理想の状態からずれるのが通常である。
【0023】
次に、基準座標決定部521は、図6に示すように、座標変換を行い、基準座標系の設定を行う。図6は、キャリブレーション座標系から基準座標系への座標変換を示す図である。基準座標決定部521は、左のコントローラ1Lについては、YL軸を中心として、ZL軸を反時計回りに略90度回転させ、ZL軸が鉛直上方を向くように変換する。また、基準座標決定部521は、右のコントローラ1Rについては、YR軸を中心として、ZR軸を反時計回りに略90度回転させ、ZR軸が鉛直上方を向くように変換する。理想的にキャリブレーションが行われている場合には、基準座標決定部521は、キャリブレーション座標系を90度回転させることになる。キャリブレーション動作が多少ずれている場合には、基準座標決定部521は、ZL軸およびZR軸が鉛直上方を向くまで、90度前後の回転角で回転させる。
【0024】
上述したように、ユーザによるキャリブレーションが理想的に行われた場合には、基準座標系においては、ZL軸およびZR軸は、鉛直上方を向く。XL軸およびXR軸は、ディスプレイ3の画面に垂直となり、YL軸およびYR軸はディスプレイ3の画面と並行かつ水平方向に延びる。そして、左右のコントローラ1L,1Rの基準座標系は、XY平面(水平面)において相互に180度回転させた関係にある。ユーザのキャリブレーションに多少のずれが生じている場合には、それに応じて、基準座標系も多少はずれた状態で設定される。
【0025】
姿勢推定部522は、加速度センサ14から得られる加速度検出値Da、および、ジャイロセンサ15から得られる回転速度検出値Drに基づいて、コントローラ1のディスプレイ3に対する姿勢を推定する。図7は、キャリブレーション時において基準座標系が設定された後、ユーザの操作によってコントローラ1L,1Rがそれぞれ個別に操作され、コントローラ1L,1Rの姿勢が変化した状態を示す。コントローラ1L,1Rの姿勢が変化した後の座標系を現在座標系とする。姿勢推定部522は、キャリブレーションがされた後(基準座標系が設定された後)、コントローラ1から出力される加速度検出値Daおよび回転速度検出値Drを積算することで、コントローラ1の現在の姿勢を推定する。言い換えると、姿勢推定部522は、コントローラ1L,1Rの現在座標系(姿勢変化によって基準座標系に回転が加わった座標系)が、キャリブレーション時の基準座標系に対してどれだけ変化しているかを推定する。
【0026】
理論上は、回転速度検出値Drに基づいて、基準座標系におけるコントローラ1の姿勢(傾き)を算出することができる。しかし、回転速度検出値Drのみに基づく姿勢の推定は誤差が大きくなる。そこで、姿勢推定部522は、回転速度検出値Drに加えて加速度検出値Daに基づいて姿勢を推定することにより、推定の精度を向上させている。
【0027】
共通座標変換部523は、左右のコントローラ1L,1Rの座標系を一致させる処理を実行する。上述したように、左右のコントローラ1L,1Rの基準座標系は、キャリブレーション時には、XY平面(水平面)において相互に180度回転させた関係にある。したがって、姿勢推定部522が推定したコントローラ1L,1Rのいずれかの姿勢を、基準座標系のXY平面内(XR軸・YR軸で張る平面内またはXL軸・YL軸で張る平面内)で180度回転させることで、両者の座標系を一致させることができる。本実施の形態においては、コントローラ1Rの姿勢を、基準座標系のXY平面内で回転させることで、コントローラ1L,1Rの姿勢が共通の座標系で表現される。
【0028】
ここで、姿勢推定部522における時間tにおけるコントローラ1Rの姿勢推定結果をQ(t)、コントローラ1Rの補正クォータニオンをPs、補正後の時間tにおけるコントローラ1Rの姿勢をQa(t)とすると、座標変換される右のコントローラ1Rの姿勢Qa(t)は、次の数式1で表される。
Qa(t)=Ps*Q(t) ・・・ (数式1)
【0029】
正規化部524は、共通座標変換部523において変換されたコントローラ1の姿勢を、他部位推定部525の座標系に応じて正規化する。本実施の形態においては、基準座標決定部521において決定された基準座標系は、共通座標変換部523による共通座標変換によって他部位推定部525の座標系に一致しているので、正規化は不要である。つまり、本実施の形態においては、キャリブレーションによってディスプレイ3の方向を取得し、他部位推定部525の座標系における正面方向(ディスプレイ方向)が既知となるため、ディスプレイ方向に対する姿勢が推定可能となる。他部位推定部525として、別の座標系で機械学習された学習エンジンが準備されたときには、その座標系に応じた正規化処理が行われる。
【0030】
ここで、座標変換後の時間tにおけるコントローラ1L,1Rの姿勢をQa(t)、コントローラ1の正規化クォータニオンをPn、正規化後の時間tにおけるコントローラ1L,1Rの姿勢をQb(t)とすると、正規化後の左右のコントローラ1L,1Rの姿勢Qb(t)は、次の数式2で表される。
Qb(t)=Pn*Qa(t) ・・・ (数式2)
【0031】
他部位推定部525は、コントローラ1L,1Rの姿勢に基づいて、ユーザの身体の他の部位の姿勢を推定する。本実施の形態においては、ユーザは、図5においても示したように、両手の手のひらで左右のコントローラ1L,1Rを保持する。したがって、姿勢推定部522により、左右の手のひらの姿勢は演算により推定される。他部位推定部525は、左右の手のひらの姿勢に基づいて、ユーザの身体の他の部位の姿勢を推定する。本実施の形態においては、他部位推定部525は、ユーザの上半身の8関節の姿勢を推定する。これにより、他部位推定部525は、ユーザの上半身の姿勢を取得可能である。
【0032】
本実施の形態においては、他部位推定部525は、機械学習モデルにより構成される。他部位推定部525としては、例えば、深層学習されたニューラルネットワークが利用される。機械学習モデルで構成される他部位推定部525は、左右の手のひらの姿勢を入力データとして、体幹2関節、左右腕部3関節(肩部、上腕、前腕)の姿勢を推定する。このために、他部位推定部525は、左右の手のひらの姿勢を入力データとして、体幹2関節、左右腕部3関節(肩部、上腕、前腕)を出力データとする学習用データによって機械学習される。
【0033】
(2)姿勢推定方法
以上説明した姿勢推定システムを利用するゲームシステム10における姿勢推定方法について、図8を参照しながら説明する。図8は、第1の実施の形態に係る姿勢推定方法を示すフローチャートである。図8のフローチャートは、CPU51がプログラムGPを実行することにより実現される処理である。つまり、CPU51がプログラムGPを実行することにより、制御部50により実行される処理である。
【0034】
図8の処理が開始される前に、ユーザは、ゲーム本体2の電源をONにする。これにより、プログラムGPが実行される。まず、ステップS11において、姿勢取得部520は、キャリブレーションの動作をユーザに要求する。例えば、ディスプレイ3上に、「左右の手にコントローラを保持し、Iポーズを取って下さい。」といったメッセージが表示される。そして、基準座標決定部521は、キャリブレーションの設定コマンドの待機状態となる。
【0035】
ユーザは、図5に示したように、左右のコントローラ1L,1Rの前面Fをディスプレイ3に対向させるとともに、左右のコントローラ1L,1Rが鉛直方向と並行となるように調整する。ユーザは、コントローラ1が正しい姿勢となったと判断した時点で、左右いずれかのコントローラ1の操作部13を操作して、キャリブレーションの設定コマンドを与える。キャリブレーションの設定コマンドは、コントローラ1の制御部11に与えられる。制御部11は、通信部12を介してゲーム本体2に設定コマンドを送信する。ゲーム本体2の通信部21は、設定コマンドを受信すると、設定コマンドを基準座標決定部521に与える。
【0036】
基準座標決定部521は、キャリブレーションの設定コマンドを入力すると、ステップS12において、コントローラ1L,1Rの基準座標系を設定する。基準座標決定部521は、図6を用いて説明したように、基準座標系を設定する。具体的には、基準座標決定部521は、まず、キャリブレーションの設定コマンドを入力した時点のコントローラ1L,1Rの座標系をキャリブレーション座標系に設定する。さらに、基準座標決定部521は、キャリブレーション座標系を基準座標系に座標変換する。
【0037】
以上の処理でキャリブレーションが完了する。制御部50は、例えば、ディスプレイ3に「コントローラのキャリブレーションが完了しました。ゲームを開始できます。」といったメッセージを表示する。ユーザは、操作部13を操作してゲームを開始する。ユーザがゲームを開始し、左右のコントローラ1L,1Rを操作すると、ユーザの動作に応じて加速度センサ14およびジャイロセンサ15が、それぞれ加速度検出値Daおよび回転速度検出値Drを出力する。出力されたそれら検出値は、無線通信により、コントローラ1L,1Rからゲーム本体2に送信される。
【0038】
ステップS13において、姿勢推定部522は、通信部21を介して、加速度検出値Daおよび回転速度検出値Drを取得する。続いて、ステップS14において、姿勢推定部522は、キャリブレーション設定時(基準座標系設定時)から取得した加速度検出値Daおよび回転速度検出値Drを積算することにより、現在のコントローラ1L,1Rの基準座標系に対する姿勢を推定する。つまり、姿勢推定部522は、現在のコントローラ1L,1Rのディスプレイ3の方向を正面方向とする姿勢を推定する。
【0039】
次に、ステップS15において、共通座標変換部523が、右のコントローラ1Rの姿勢を、基準座標系のXY面内で180度回転させることにより、左右のコントローラ1L,1Rの座標系を一致させる。続いて、ステップS16において、正規化部524は、必要な正規化処理を実行する。
【0040】
次に、ステップS17において、他部位推定部525が、推定されたコントローラ1L,1Rのディスプレイ3に対する姿勢を入力し、ユーザの他の部位の姿勢を出力する。つまり、他部位推定部525は、左右のコントローラ1L,1Rの推定された姿勢に基づいて、例えば、体幹2関節、左右腕部3関節(肩部、上腕、前腕)の姿勢を推定する。
【0041】
以上の処理により、姿勢取得部520がユーザの身体の各部位の姿勢を取得し、その情報をゲーム制御部510に与える。これにより、ゲーム制御部510がユーザの動作を反映させたゲーム用画像をディスプレイ3に表示させ、ゲームを進行させる。
【0042】
以上説明したように、本実施の形態に係る姿勢推定システムによれば、ユーザによるキャリブレーション動作に基づいて、姿勢推定システムは、コントローラ1のディスプレイに対する姿勢を推定する。つまり、姿勢推定システムは、ディスプレイ3の方向を正面方向として、ユーザの姿勢を推定する。これにより、方位(水平面内での方向)を含めてユーザの姿勢を推定することが可能である。例えば、腰に装着されたセンサが向く方向を正面方向として正規化している従来の方法であれば、ユーザの方位を含めた姿勢を推定することができなかった。本実施の形態によれば、方位を含めたユーザの姿勢を推定することができるので、有用性が高い。
【0043】
[3]第2の実施の形態
次に、本発明の第2の実施の形態に係るについて説明する。図9は、第2の実施の形態に係る姿勢推定システムを含むゲームシステム10を示す機能ブロック図である。第2の実施の形態の姿勢取得部520Aは、加速度補正部526を備えている点で、第1の実施の形態の姿勢取得部520とは異なる。第2の実施の形態におけるゲームシステム10の構成は、加速度補正部526を備える点を除いては、図2で示した第1の実施の形態の構成と同様である。第2の実施の形態では、ユーザの体型の違いを考慮し、より適切な姿勢推定を行うシステムおよび方法に関する。
【0044】
体型の異なる複数のユーザが同じ動作をした場合であっても、その動作に基づいて測定される加速度検出値Daおよび回転速度検出値Drは異なる。例えば、図10に示すよう、腕の長さがr(m)の子供Aと、腕の長さが2r(m)の大人Bとが、鉛直下方に向いている腕を水平方向まで持ち上げる同じ動作をする場合を想定する。このとき、子供Aの腕の移動軌跡(回転軌道の軌跡)はπr/2(m)であり、大人Bの腕の移動軌跡はπr(m)である。つまり、同じ時間をかけて同じ動作を行った場合でも、大人Bの腕の加速度は子供Aの腕の加速度の2倍である。
【0045】
したがって、例えば、大人の体型に基づいて学習された他部位推定部525を利用して子供の身体の各部位の姿勢を推定した場合、その推定精度は低下することになる。他部位推定部525が、様々な体型のユーザに対して体型に応じた推定を行うためには、ユーザごとの学習用データを準備する必要がある。しかし、様々な体型のユーザに応じた学習用データに基づいて他部位推定部525を構築することはコストを高くするとともに、効率的ではない。そこで、第2の実施の形態においては、基準身長のユーザ(基準ユーザ)に関する学習用データを用いて機械学習を行うことで、他部位推定部525を構築する。ユーザの姿勢を推論するときは、各ユーザの身長に応じて、加速度の大きさを補正する。
【0046】
加速度補正部526は、ユーザの身長に基づいて、コントローラ1から受信したコントローラ1の加速度検出値Daを補正する。制御部50は、ゲームの開始時にユーザに身長に入力を求め、入力されたユーザの身長データを、記憶装置54またはRAM52に格納する。加速度補正部526は、ユーザの身長に応じて、数式3を用いることにより、加速度検出値Daを補正する。
Ka(t)=β*K(t) ・・・ (数式3)
【0047】
数式3において、K(t)は、コントローラ1から取得した加速度の値(大きさ)である。つまり、K(t)は、加速度検出値Daである。Ka(t)は、補正後の加速度の値である。βは補正係数であり、数式4に示すように、基準身長をユーザの身長で除算した値である。
β=(基準身長)/(ユーザ身長) ・・・ (数式4)
【0048】
例えば、基準身長が170cmであり、ユーザの身長が100cmである場合、β=1.7である。この場合であれば、加速度補正部526は、加速度検出値Daを1.7倍に補正した上で、加速度の値を姿勢推定部522に与える。
【0049】
図11は、第2の実施の形態に係る姿勢推定方法を示すフローチャートである。ステップS21~S23は、図8を用いて説明したステップS11~S13と同様である。ステップS24において、加速度補正部526が、ユーザの身長に応じて、加速度センサ14から出力された加速度の大きさを補正する。加速度補正部526は、補正後の加速度の値を姿勢推定部522に与える。ステップS25において、姿勢推定部522は、補正後の加速度およびジャイロセンサ15から得られた回転速度検出値Drに基づいて、コントローラ1のディスプレイ3に対する姿勢を推定する。ステップS26~S28は、図8を用いて説明したステップS15~S17と同様である。
【0050】
第2の実施の形態によれば、ユーザの身長に基づいて加速度の値を補正することにより、基準身長に基づいて機械学習された他部位推定部525を利用することが可能である。基準身長のユーザのデータのみを用いて機械学習させればよいため、学習に必要なデータ量を大幅に削減することができる。また、学習に要する時間も大幅に削減することができる。
【0051】
[4]第2の実施の形態の変形例
次に、第2の実施の形態の変形例について説明する。上記の第2の実施の形態においては、事前にユーザに身長を入力してもらうことにより、補正係数βを求めた。この変形例では、推論開始前にユーザに規定の動作を要求し、規定の動作から得られたデータに基づいて補正係数を求める。
【0052】
規定の動作としては、例えば、図10で示す動作をユーザに要求する。ユーザは、コントローラ1L,1Rを両手に保持した状態で、鉛直下方に向いている腕を水平方向まで持ち上げる動作を行う。このとき、身長の異なる複数のユーザ間では、腕を持ち上げるスピードが同じ(加速度が同じ)であっても、動作終了までに要する時間や、姿勢の変化量が異なる。また、身長の異なる複数のユーザ間では、回転速度が同じであっても(つまり、動作終了までに要する時間や姿勢の変化量が同じであっても)、腕を持ち上げる加速度が異なる。そこで、加速度補正部526は、以下の数式5によって、加速度の補正係数βを求める。
β=(Pb/Pu)/(τb/τu) ・・・ (数式5)
【0053】
数式5において、τbは、規定の動作に要する時間の基準値(基準時間)である。基準時間は、基準身長のユーザにより測定された時間、あるいは、基準身長のユーザを想定して設定された時間である。τuは、ユーザが規定の動作に要した時間である。つまり、τbは、予め設定された値であり、τuは、規定の動作によって得られた値である。(τb/τu)を第1の比とする。Pbは、規定動作中に検出された加速度ベクトルから重力加速度成分を除いたベクトルの大きさ(以下、加速度パワーと呼ぶ)の時間平均の基準値(基準時間平均)である。基準時間平均は、基準身長のユーザにより測定された基準値、あるいは、基準身長のユーザを想定して設定された基準値である。Puは、ユーザの規定動作中の加速度パワーの時間平均である。つまり、Pbは、予め設定された値であり、Puは、規定の動作によって得られた値である。(Pb/Pu)を第2の比とする。これにより、補正係数βは、第1の比と第2の比の比で表される。このようにして算出された補正係数βを用いて、数式3により、補正後の加速度Ka(t)を求めることができる。
【0054】
ここでは、規定の動作として、ユーザが、コントローラ1L,1Rを両手に保持した状態で、鉛直下方に向いている腕を水平方向まで持ち上げる動作を用いたが、規定の動作は、これには限定されない。動作に要する時間および加速度パワー平均値が、ユーザの体型を反映できるような動作を規定の動作とすればよい。
【0055】
[5]請求項の各構成要素と実施の形態の各要素との対応
以下、請求項の各構成要素と実施の形態の各要素との対応の例について説明するが、本発明は下記の例に限定されない。上記の実施の形態では、コントローラ1L,1Rが本発明における測定部材の例であり、コントローラ1Lが本発明における第1の測定部材の例である。また、ディスプレイ3が本発明における目標物の例である。
【0056】
請求項の各構成要素として、請求項に記載されている構成または機能を有する種々の要素を用いることもできる。
【0057】
[6]変形例
上記実施の形態においては、姿勢推定システムをゲームプログラムの実行において利用する場合を例に説明した。他の例として、姿勢推定システムをユーザの姿勢を取得して動作する様々なアプリケーションシステムに利用可能である。
【0058】
上記実施の形態においては、姿勢推定システムは、キャリブレーション動作として、ユーザにIポーズを要求した。つまり、姿勢推定システムは、コントローラ1をディスプレイに対向させる動作としてIポーズをユーザに要求している。Iポーズは一例であり、ユーザが左右に手を延ばすポーズなどを含め、他のポーズであってもよい。
【0059】
上記の実施の形態においては、ゲーム本体2が、姿勢取得部520,520Aを備える場合を例に説明した。つまり、コントローラ1から取得された加速度検出値Daおよび回転速度検出値Drに基づいて、ゲーム本体2において、ユーザの身体の各部位の姿勢が取得される例を説明した。他の実施の形態として、コントローラ1が、姿勢取得部520,520Aを備える構成としてもよい。
【0060】
上記実施の形態においては、ユーザの左右の手でコントローラ1L、1Rを保持することにより、ユーザの身体の各部位の姿勢を取得した。つまり、ユーザの左右の手に加速度センサおよびジャイロセンサを備える測定部材が位置する場合を例に説明した。他の例として、ユーザの左右の手の2箇所および左右の足の2箇所、合計4箇所に加速度センサおよびジャイロセンサを備える測定部材が位置する構成とすることもできる。この場合、両手で保持する測定部材はコントローラ1であり、左右の足には、測定部材を装着させるようにすればよい。これにより、上半身に加えて、下半身の姿勢についても推定することが可能である。本実施の形態の姿勢推定システムにおいては、加速度センサおよびジャイロセンサを備える測定部材が位置する場所は、ユーザの四肢のいずれかの場所(つまり、体幹を除く場所)であれば、特に限定されない。本実施の形態においては、従来のように腰の取り付けたセンサによりユーザの身体の方向を正規化する必要がないので、ユーザの体幹にセンサを装着させる必要がない。
【0061】
上記の実施の形態においては、図6を用いて説明したキャリブレーション座標系および基準座標系の軸方向は一例であり、これら座標系の軸方向は特に限定されない。
【0062】
本実施の形態に係る姿勢推定システムは、コントローラ1のキャリブレーション座標系および基準座標系をディスプレイ3の方向(正面方向)に設定した。したがって、ユーザの身体の方向が変われば、同じ動作であっても別の動作として認識される。このため、他部位推定部525を構築するためには、ユーザの身体の向きに応じた学習用データが必要となる。そこで、予め定められた疑似的なディスプレイ3の方向(正面方向)に対するユーザの動作に基づいて学習用データを作成してもよい。例えば、ユーザの右方向が正面方向と疑似的に仮定した上で学習用データを作成する。これにより、ユーザの身体の向きに応じた学習用データを作成する時間とコストを抑制することができる。
【0063】
[7]本発明の態様
上記の実施の形態で説明した姿勢推定システムおよび姿勢推定方法は、以下の特徴により明確となる。
【0064】
(第1の態様)
第1の態様の姿勢推定システムは、ユーザの四肢のいずれかの部位に位置する測定部材と、測定部材の姿勢を取得する姿勢取得部とを備え、測定部材は、加速度センサおよびジャイロセンサを含み、姿勢取得部は、ユーザによる測定部材を目標物に対向させる動作に基づき、測定部材の基準座標系を設定する基準座標決定部と、ユーザによる測定部材の姿勢を変化させる動作に応じて加速度センサおよびジャイロセンサから出力される検出値を取得することにより、測定部材の目標物に対する姿勢を推定する姿勢推定部とを含む。
【0065】
少ないセンサの数で、ユーザの身体の向きも含めた姿勢の推定を行うことができる。
【0066】
(第2の態様)
第1の態様に記載の姿勢推定システムであって、ユーザの四肢のいずれか複数の部位に測定部材が位置し、姿勢推定部は、複数の測定部材の前記目標物に対する姿勢を推定してもよい。
【0067】
ユーザの四肢のいずれかに位置する複数の測定部材の目標物に対する姿勢の推定を行うことができる。
【0068】
(第3の態様)
第2の態様に記載の姿勢推定システムであって、複数の測定部材は、ユーザの左右の手のそれぞれに位置する2個の測定部材を含んでもよい。
【0069】
左右の手に位置する測定部材の目標物に対する姿勢を推定することができる。
【0070】
(第4の態様)
第2の態様に記載の姿勢推定システムであって、複数の測定部材は、ユーザの左右の手のそれぞれに位置する2個の測定部材および左右の足にそれぞれ位置する2個の測定部材を含んでもよい。
【0071】
左右の手および左右の足に位置する測定部材の目標物に対する姿勢を推定することができる。
【0072】
(第5の態様)
第2の態様に記載の姿勢推定システムであって、姿勢取得部は、複数の測定部材のそれぞれの基準座標系を、複数の測定部材の中の選択された第1の測定部材の基準座標系に変換することで、姿勢推定部が推定した複数の測定部材の目標物に対する姿勢を第1の測定部材の基準座標系に変換する共通座標変換部を含んでもよい。
【0073】
共通の座標系で複数の測定部材の姿勢を処理することが可能となる。
【0074】
(第6の態様)
第1の態様に記載の姿勢推定システムであって、姿勢取得部は、姿勢推定部により推定された測定部材の目標物に対する姿勢を入力し、測定部材の位置する部位以外の他の部位の姿勢を出力する他部位推定部を含んでもよい。
【0075】
測定部材の数を少なくしながら、ユーザの姿勢を推定することができる。
【0076】
(第7の態様)
第6の態様に記載の姿勢推定システムであって、ユーザの四肢のいずれか複数の部位に測定部材が位置し、他部位推定部は、姿勢推定部により推定された複数の測定部材の目標物に対する姿勢を入力し、複数の測定部材の位置する複数の部位以外の他の部位の姿勢を出力してもよい。
【0077】
測定部材の数を少なくしながら、ユーザの姿勢を推定することができる。
【0078】
(第8の態様)
第6の態様に記載の姿勢推定システムであって、他部位推定部は、学習用データを用いて訓練された機械学習モデルであってもよい。
【0079】
機械学習モデルを利用することで、測定部材の数を少なくしながら、ユーザの姿勢を推定することができる。
【0080】
(第9の態様)
第8の態様に記載の姿勢推定システムであって、姿勢取得部は、他部位推定部の座標系に応じて、測定部材の基準座標系を、他部位推定部の座標系に変換する正規化部をさらに備えてもよい。
【0081】
異なる座標系で学習された他部位推定部を利用可能である。
【0082】
(第10の態様)
第8の態様に記載の姿勢推定システムであって、他部位推定部は、基準身長である基準ユーザによる学習用データを用いて訓練され、姿勢取得部は、ユーザの身長に応じて、加速度センサから出力された加速度の大きさを補正する加速度補正部をさらに備えてもよい。
【0083】
ユーザの身長に応じた学習用データを準備する必要がなく、学習に要する時間とコストを低減させることができる。
【0084】
(第11の態様)
第10の態様に記載の姿勢推定システムであって、加速度補正部は、ユーザの身長と基準身長との比に応じて加速度を補正してもよい。
【0085】
ユーザの身長に応じた推定が姿勢の推定が可能となる。
【0086】
(第12の態様)
第10の態様に記載の姿勢推定システムであって、加速度補正部は、ユーザによる規定の動作に要する時間と規定の動作に要する基準時間との比を第1の比とし、ユーザによる規定の動作中の加速度パワーの時間平均と規定の動作中の加速度パワーの基準時間平均との比を第2の比とするとき、第1の比と第2の比との比に基づいて加速度を補正してもよい。
【0087】
ユーザの身長に応じた推定が姿勢の推定が可能となる。
【0088】
(第13の態様)
第1の態様に記載の姿勢推定システムであって、目標物はディスプレイを含み、姿勢推定部により推定された測定部材のディスプレイに対する姿勢に基づいて、ディスプレイに出力される画像が変化してもよい。
【0089】
ディスプレイに対するユーザの姿勢を推定することが可能である。
【0090】
(第14の態様)
第13の態様に記載の姿勢推定システムであって、測定部材は、ゲーム用のコントローラを含み、ディスプレイには、コントローラのディスプレイに対する姿勢に基づいて変化するゲーム用画像が表示されてもよい。
【0091】
ディスプレイに対するユーザの姿勢を利用したゲームを楽しむことができる。
【0092】
(第15の態様)
第15の態様に係る姿勢推定方法は、ユーザの四肢のいずれかの部位に位置する測定部材をユーザが目標物に対向させる動作に基づいて、測定部材の基準座標系を設定する工程と、ユーザによる測定部材の姿勢を変化させる動作に応じて測定部材が備える加速度センサおよびジャイロセンサから出力される検出値を取得することにより、測定部材の目標物に対する姿勢を推定する工程とを含む。
【0093】
少ないセンサの数で、ユーザの身体の向きも含めた姿勢の推定を行うことができる。
【0094】
(第16の態様)
第15の態様に記載の姿勢推定方法であって、推定された測定部材の目標物に対する姿勢を入力し、測定部材の位置する部位以外の他の部位の姿勢を出力する工程を含んでもよい。
【0095】
測定部材の数を少なくしながら、ユーザの姿勢を推定することができる。
【0096】
(第17の態様)
第15の態様に記載の姿勢推定方法であって、目標物はディスプレイを含み、推定された測定部材の目標物に対する姿勢に基づいて、ディスプレイに出力される画像が変化してもよい。
【0097】
ディスプレイに対するユーザの姿勢を推定することが可能である。
【0098】
(第18の態様)
第15の態様に記載の姿勢推定方法であって、ユーザの身長に応じて、加速度センサから出力された加速度の大きさを補正する工程を含んでもよい。
【0099】
ユーザの身長に応じた姿勢の推定が行われる。
【符号の説明】
【0100】
10…ゲームシステム、1(1L,1R)…コントローラ、14…加速度センサ、15…ジャイロセンサ、2…ゲーム本体、50…制御部、510…ゲーム制御部、520…姿勢取得部、521…基準座標決定部、522…姿勢推定部、523…共通座標変換部、524…正規化部、525…他部位推定部、3…ディスプレイ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11