JP7334337B2 - モーション決定装置、学習装置、モーション決定方法、学習方法及びプログラム - Google Patents
モーション決定装置、学習装置、モーション決定方法、学習方法及びプログラム Download PDFInfo
- Publication number
- JP7334337B2 JP7334337B2 JP2022512917A JP2022512917A JP7334337B2 JP 7334337 B2 JP7334337 B2 JP 7334337B2 JP 2022512917 A JP2022512917 A JP 2022512917A JP 2022512917 A JP2022512917 A JP 2022512917A JP 7334337 B2 JP7334337 B2 JP 7334337B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- foot
- user
- head
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/251—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01P—MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
- G01P13/00—Indicating or recording presence, absence, or direction, of movement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- User Interface Of Digital Computer (AREA)
Description
本発明は、モーション決定装置、学習装置、モーション決定方法、学習方法及びプログラムに関する。
ユーザが装着する複数のトラッカーの位置や向きを示すデータに基づいて、逆運動学(IK)によって、当該ユーザの体に含まれる、トラッカーが装着されていない部位を含む複数の部位の位置や向きを推定するボディトラッキングの技術が知られている。このようなボディトラッキングの技術を用いることで、例えば、実空間におけるユーザの全身のモーションが表現されたコンピュータグラフィックスを表示させることなどが可能となる。
現状では、ユーザの全身のモーションが的確に表現されるようにするには、ユーザは足にトラッカーを装着して、足の動きをトラッカーによってトラッキングする必要がある。しかし足へのトラッカーの装着はユーザにとって煩わしい。
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、ユーザが足にトラッカーを装着することなくユーザの全身のモーションを的確に表現できるモーション決定装置、学習装置、モーション決定方法、学習方法及びプログラムを提供することにある。
上記課題を解決するために、本発明に係るモーション決定装置は、ユーザの上半身の部位に装着されたトラッカーから出力されるセンシングデータに基づいて、当該部位の速度の方向を特定する速度特定部と、特定される前記速度の方向に基づいて、前記ユーザの左足又は右足のうちの一方を動作足と特定し、他方を非動作足と特定する動作足特定部と、前記左足及び前記右足のそれぞれについて、当該足が前記動作足であるか前記非動作足であるかに基づいて、当該足のモーションを決定するモーション決定部と、を含む。
本発明の一態様では、前記モーション決定部は、前記非動作足の動きよりも前記動作足の動きの方が大きくなるよう前記左足及び前記右足のモーションを決定する。
また、本発明の一態様では、特定される前記速度の方向が前記ユーザの左足方向である場合に、前記ユーザの左足を動作足と特定し、特定される前記速度の方向が前記ユーザの右足方向である場合に、前記ユーザの右足を動作足と特定する。
また、本発明の一態様では、前記ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成部と、前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出部と、前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定部と、をさらに含み、前記特徴抽出部は、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、前記推定部は、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づいて、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定し、前記動作足及び前記非動作足のそれぞれは、互いに異なる係数に対応付けられており、前記モーション決定部は、前記左足及び前記右足のそれぞれについて、前記最新のタイミングにおいて前記推定部により推定された当該足の位置と、当該足に対応付けられている前記係数と、に基づいて、当該最新のタイミングにおける当該足の位置を決定する。
この態様では、前記モーション決定部は、前記最新のタイミングにおいて前記推定部により推定された前記足の位置と、当該最新のタイミングの直前のタイミングにおいて前記モーション決定部により決定された当該足の位置と、を補間した位置を、前記最新のタイミングにおける当該足の位置に決定してもよい。
さらに、前記モーション決定部は、前記最新のタイミングにおいて推定された前記動作足の位置と前記直前のタイミングにおいて決定された前記動作足の位置との間の距離に第1の係数を乗じた距離だけ、前記直前のタイミングにおいて決定された前記動作足の位置から離れた位置を、前記動作足の位置に決定し、前記モーション決定部は、前記最新のタイミングにおいて推定された前記非動作足の位置と前記直前のタイミングにおいて決定された前記非動作足の位置との間の距離に第2の係数を乗じた距離だけ、前記直前のタイミングにおいて決定された前記非動作足の位置から離れた位置を、前記非動作足の位置に決定し、前記第1の係数は前記第2の係数よりも大きくてもよい。
また、前記推定部は、前記最新のタイミングまでの前記時系列推移の特徴を示す前記特徴データに基づいて、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の水平面上における位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の水平面上における位置を推定し、前記推定部は、前記最新のタイミングの直前のタイミングにおける前記足の速度の大きさに基づいて、当該足の高さ方向における位置を推定してもよい。
また、特定される前記速度の大きさが所定の閾値を超えており、特定される前記速度の方向が前記ユーザの左足方向である場合に、前記ユーザの左足を前記動作足と特定し、特定される前記速度の大きさが前記閾値を超えており、特定される前記速度の方向が前記ユーザの右足方向である場合に、前記ユーザの右足を前記動作足と特定し、特定される前記速度の大きさが前記閾値以下であり、前記推定部により直前に推定された前記足の位置と、当該位置に基づいて前記モーション決定部により直前に決定された前記足の位置との間の距離が所定距離以下である場合は、前記動作足又は前記非動作足の一方を他方に変更するとともに、前記他方を前記一方に変更してもよい。
また、特定される前記速度の大きさに応じて、前記特徴抽出部に前記入力データが入力されるか否かを制御する入力制御部、をさらに含み、前記特徴抽出部に前記入力データが入力されないよう制御される際には、前記モーション決定部は、前記足の位置の決定に既に用いられた前記推定部による直前の推定結果に基づいて、前記最新のタイミングにおける当該足の位置を決定してもよい。
また、本発明の一態様では、前記モーション決定部は、鉛直方向に延伸する基準となる線から前記足の位置までの距離に基づいて、基準となる水平方向の軸を中心とする当該足の回転を決定する。
また、本発明に係る学習装置は、ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成部と、前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出部と、前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定部と、前記推定の結果に基づいて、前記特徴抽出部又は前記推定部のうちの少なくとも一方を学習する学習部と、を含み、前記特徴抽出部は、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、前記学習部は、前記推定部による、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づく、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置の推定の結果に基づいて、前記学習を実行する。
また、本発明に係るモーション決定方法は、ユーザの上半身の部位に装着されたトラッカーから出力されるセンシングデータに基づいて、当該部位の速度の方向を特定するステップと、特定される前記速度の方向に基づいて、前記ユーザの左足又は右足のうちの一方を動作足と特定し、他方を非動作足と特定するステップと、前記左足及び前記右足のそれぞれについて、当該足が前記動作足であるか前記非動作足であるかに基づいて、当該足のモーションを決定するステップと、を含む。
また、本発明に係る学習方法は、ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成ステップと、特徴抽出部が、前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出ステップと、推定部が、前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定ステップと、前記推定の結果に基づいて、前記特徴抽出部又は前記推定部のうちの少なくとも一方を学習する学習ステップと、を含み、前記特徴抽出ステップでは、前記特徴抽出部が、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、前記学習ステップでは、前記推定部による、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づく、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置の推定の結果に基づいて、前記学習を実行する。
また、本発明に係るプログラムは、ユーザの上半身の部位に装着されたトラッカーから出力されるセンシングデータに基づいて、当該部位の速度の方向を特定する手順、特定される前記速度の方向に基づいて、前記ユーザの左足又は右足のうちの一方を動作足と特定し、他方を非動作足と特定する手順、前記左足及び前記右足のそれぞれについて、当該足が前記動作足であるか前記非動作足であるかに基づいて、当該足のモーションを決定する手順、をコンピュータに実行させる。
また、本発明に係る別のプログラムは、ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成手順、特徴抽出部が、前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出手順、推定部が、前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定手順、前記推定の結果に基づいて、前記特徴抽出部又は前記推定部のうちの少なくとも一方を学習する学習手順、をコンピュータに実行させ、前記特徴抽出手順では、前記特徴抽出部が、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、前記学習手順では、前記推定部による、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づく、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置の推定の結果に基づいて、前記学習を実行する。
[システム構成]
図1は、本発明の一実施形態に係るエンタテインメントシステム10の構成の一例を示す図である。図2は、本実施形態に係るエンタテインメント装置14の構成の一例を示す図である。
図1は、本発明の一実施形態に係るエンタテインメントシステム10の構成の一例を示す図である。図2は、本実施形態に係るエンタテインメント装置14の構成の一例を示す図である。
図1に示すように、本実施形態に係るエンタテインメントシステム10は、複数のトラッカー12(図1の例ではトラッカー12a~12e)とエンタテインメント装置14と中継装置16とディスプレイ18とカメラマイクユニット20とを含んでいる。
本実施形態に係るトラッカー12は、例えば、当該トラッカー12の位置や向きを追跡するためのデバイスである。ここでトラッカー12が、例えばカメラ、慣性センサ(IMU)、地磁気センサ(方位センサ)、加速度センサ、モーションセンサ、GPS(Global Positioning System)モジュールなどといった各種センサを備えていてもよい。そしてトラッカー12は、当該トラッカー12が備えるセンサによる計測結果であるセンシングデータに基づいて、当該トラッカー12の位置及び向きを特定してもよい。
また例えば、後述するカメラマイクユニット20に含まれるカメラ20aが撮影する、トラッカー12の像が含まれる画像に基づいて、当該トラッカー12の位置及び向きが特定されてもよい。
本実施形態ではトラッカー12a、トラッカー12b、トラッカー12c、トラッカー12d、トラッカー12eは、それぞれ、ユーザの頭部、左手、右手、左足、右足に装着される。ここで図1に示すようにトラッカー12bやトラッカー12cはユーザによって手で把持されるものであってもよい。本実施形態ではトラッカー12a、トラッカー12b、トラッカー12c、トラッカー12d、トラッカー12eによって特定される位置及び向きは、それぞれ、ユーザの頭部、左手、右手、左足、右足の位置及び向きに相当する。このように本実施形態では複数のトラッカー12によって、ユーザの体に含まれる複数の部位の位置及び向きが特定されることとなる。
本実施形態に係るエンタテインメント装置14は、例えばゲームコンソール、DVDプレイヤ、Blu-ray(登録商標)プレイヤなどといったコンピュータである。本実施形態に係るエンタテインメント装置14は、例えば記憶されている、あるいは、光ディスクに記録された、ゲームプログラムの実行やコンテンツの再生などによって映像や音声を生成する。そして本実施形態に係るエンタテインメント装置14は、生成される映像を表す映像信号や生成される音声を表す音声信号を、中継装置16を経由してディスプレイ18に出力する。
本実施形態に係るエンタテインメント装置14には、例えば図2に示すように、プロセッサ30、記憶部32、通信部34、入出力部36が含まれる。
プロセッサ30は、例えばエンタテインメント装置14にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。本実施形態に係るプロセッサ30には、CPUから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するGPU(Graphics Processing Unit)も含まれている。
記憶部32は、例えばROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部32には、プロセッサ30によって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部32には、GPUにより画像が描画されるフレームバッファの領域が確保されている。
通信部34は、例えば無線LANモジュールなどの通信インタフェースなどである。
入出力部36は、HDMI(登録商標)(High-Definition Multimedia Interface)ポート、USBポートなどの入出力ポートである。
本実施形態に係る中継装置16は、エンタテインメント装置14から出力される映像信号や音声信号を中継してディスプレイ18に出力するコンピュータである。
本実施形態に係るディスプレイ18は、例えば液晶ディスプレイ等であり、エンタテインメント装置14から出力される映像信号が表す映像などを表示させる。
本実施形態に係るカメラマイクユニット20は、例えば被写体を撮像した画像をエンタテインメント装置14に出力するカメラ20a及び周囲の音声を取得して当該音声を音声データに変換してエンタテインメント装置14に出力するマイク20bを含んでいる。また本実施形態に係るカメラ20aはステレオカメラである。
トラッカー12と中継装置16とは、例えば、無線によるデータの送受信が互いに可能になっている。エンタテインメント装置14と中継装置16とは、例えば、HDMIケーブルやUSBケーブルなどを介して接続されており、データの送受信が互いに可能になっている。中継装置16とディスプレイ18とは、例えば、HDMIケーブルなどを介して接続されている。エンタテインメント装置14とカメラマイクユニット20とは、例えば、AUXケーブルなどを介して接続されている。
本実施形態では例えば、エンタテインメント装置14によってゲームプログラムが実行されている際に、図3に示すスケルトンモデル40における、ユーザの体に含まれる複数の部位の位置又は向きに応じたゲーム処理等の各種の処理が実行される。そして当該処理の結果に応じた映像が例えばディスプレイ18に表示される。
[胸部ノード又は腰部ノードの向きの推定の一例、並びに、左手首ノード及び右手首ノードの向きの推定の一例]
[胸部ノード又は腰部ノードの向きの推定の一例、並びに、左手首ノード及び右手首ノードの向きの推定の一例]
図3に示すように、本実施形態に係るスケルトンモデル40には、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eが含まれている。頭部ノード42aは、トラッカー12aが装着されるユーザの頭部に相当する。左手ノード42bは、トラッカー12bが装着されるユーザの左手に相当する。右手ノード42cは、トラッカー12cが装着されるユーザの右手に相当する。左足ノード42dは、トラッカー12dが装着されるユーザの左足に相当する。右足ノード42eは、トラッカー12eが装着されるユーザの右足に相当する。
またスケルトンモデル40には、上記のノード42の他に、胸部ノード42f、腰部ノード42g、左肩ノード42h、左肘ノード42i、左手首ノード42jが含まれている。またスケルトンモデル40には、さらに、右肩ノード42k、右肘ノード42l、右手首ノード42m、左膝ノード42n、左足首ノード42o、右膝ノード42p、右足首ノード42qが含まれている。
ここで図3に示すように、頭部ノード42aと胸部ノード42fとはリンクで接続されている。また胸部ノード42fと腰部ノード42gとはリンクで接続されている。
また胸部ノード42fと左肩ノード42hとはリンクで接続されている。また左肩ノード42hと左肘ノード42iとはリンクで接続されている。また左肘ノード42iと左手首ノード42jとはリンクで接続されている。また左手首ノード42jと左手ノード42bとはリンクで接続されている。
また胸部ノード42fと右肩ノード42kとはリンクで接続されている。また右肩ノード42kと右肘ノード42lとはリンクで接続されている。また右肘ノード42lと右手首ノード42mとはリンクで接続されている。また右手首ノード42mと右手ノード42cとはリンクで接続されている。
また腰部ノード42gと左膝ノード42nとはリンクで接続されている。また左膝ノード42nと左足首ノード42oとはリンクで接続されている。また左足首ノード42oと左足ノード42dとはリンクで接続されている。
また腰部ノード42gと右膝ノード42pとはリンクで接続されている。また右膝ノード42pと右足首ノード42qとはリンクで接続されている。また右足首ノード42qと右足ノード42eとはリンクで接続されている。
これらのノード42は、それぞれユーザの体に含まれる部位に対応している。そして本実施形態では例えば、複数のトラッカー12について特定される位置及び向きに基づくボディトラッキングが行える。ここでは例えば、スケルトンモデル40に含まれる複数のノード42のそれぞれについての、初期状態における基準の位置に対する位置及び初期状態における基準の向きに対する向きの推定が実行される。
ここで例えば、トラッカー12aについて特定される位置及び向きを示すデータに基づいて、頭部ノード42aの位置及び向きは決定できる。同様に、トラッカー12bについて特定される位置及び向きを示すデータに基づいて、左手ノード42bの位置及び向きは決定できる。また、トラッカー12cについて特定される位置及び向きを示すデータに基づいて、右手ノード42cの位置及び向きは決定できる。また、トラッカー12dについて特定される位置及び向きを示すデータに基づいて、左足ノード42dの位置及び向きは決定できる。また、トラッカー12eについて特定される位置及び向きを示すデータに基づいて、右足ノード42eの位置及び向きは決定できる。
ここで、決定される頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eの位置及び向きを示すデータに基づいて、逆運動学(IK)によって、他のノード42の位置及び向きを推定することが考えられる。
しかしこの場合、胸部ノード42f又は腰部ノード42gの向きの情報がないと、逆運動学によって、他のノード42についての位置及び向きを推定することができない。特に他のノード42の向きの推定が困難である。
また左手ノード42bの位置及び向きを示すデータがあっても左手首ノード42jの向きの情報がないと、逆運動学によって、左肘ノード42iの位置及び向きを推定することが困難なことがある。例えば、手を振る動作などといった手だけを動かす動作を行った際に、実際には肘が大きく動いていないにも関わらず肘の位置が大きく動く推定結果が得られてしまうことがある。
同様に、右手ノード42cの位置及び向きを示すデータがあっても右手首ノード42mの向きの情報がないと、逆運動学によって、右肘ノード42lの位置及び向きを推定することが困難なことがある。
そこで本実施形態では以下のようにして、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eの位置及び向きを示すデータに基づいて、胸部ノード42f又は腰部ノード42gの向きを的確に推定できるようにした。また本実施形態では以下のようにして、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eの位置及び向きを示すデータに基づいて、左手首ノード42j及び右手首ノード42mの向きを的確に推定できるようにした。
なお本実施形態では例えば、所定のサンプリングレートでトラッカー12a~12eのそれぞれについて、当該トラッカー12の位置及び向きの特定が行われることとする。そしてトラッカー12の位置及び向きの特定に応じて、当該トラッカー12の位置及び向きを示すデータが、エンタテインメント装置14に送信されることとする。そしてエンタテインメント装置14において、当該データに基づく上述の向きの推定が実行されることとする。
以下、胸部ノード42fの向きの推定に用いられる機械学習モデルの学習、及び、学習済の機械学習モデルを用いた胸部ノード42fの向きの推定について説明する。なお以下に示す方法により、腰部ノード42gの向きの推定に用いられる機械学習モデルの学習、及び、学習済の機械学習モデルを用いた腰部ノード42gの向きの推定も同様に可能である。
図4は、胸部ノード42fの向きの推定に用いられる機械学習モデルの学習の一例を示す図である。図4に示すように、胸部ノード42fの向きの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図4に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける体の部位についての位置、姿勢、又は動きを示す部位データを複数含む学習データが取得される。例えば、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、頭部の向き、左手の角速度、及び、右手の角速度を示す部位データを複数含む学習データが取得される。ここでは例えばt個の部位データを含む学習データが取得されることとする。
ここで例えば、頭部、左手、右手、胸部のそれぞれにトラッカー12を装着したユーザが様々な動きをした際の、これらのトラッカー12から出力される一連のt個のセンシングデータに基づいて、t個のセンシングデータにそれぞれ対応付けられる一連のt個の部位データが生成されてもよい。また、t番目のセンシングデータに基づいて、t番目のセンシングデータに対応付けられる胸部の向きを示す教師データが生成されてもよい。そして当該一連のt個の部位データと、当該教師データと、を含む学習データが生成されてもよい。
また例えば、胸部の向きが特定の向きである状態で、頭部、左手、右手のそれぞれにトラッカー12を装着したユーザが様々な動きをした際の、これらのトラッカー12から出力される一連のt個のセンシングデータに基づいて、t個のセンシングデータにそれぞれ対応付けられる一連のt個の部位データが生成されてもよい。そして、当該一連のt個の部位データと、上述の胸部の特定の向きを示す教師データと、を含む学習データが生成されてもよい。
また例えば、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像に基づいて、それぞれフレームに対応付けられる一連のt個の部位データ、及び、t番目のフレームに対応付けられる胸部の向きを示す教師データと、を含む学習データが生成されてもよい。また、このような動画像を見ているオペレータによる操作に基づいて、一連のt個の部位データ、及び、上述の教師データを含む学習データが生成されてもよい。
そして、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、頭部の向きを示す頭部向きデータD1、左手の角速度を示す左手角速度データD2、及び、右手の角速度を示す右手角速度データD3が含まれていることとする。
ここでは例えば、対応付けられるタイミングがs番目に古い、トラッカー12aの向きを示すデータが頭部向きデータD1(s)として表現されている。また、対応付けられるタイミングがs番目に古い、トラッカー12bの角速度を示すデータが左手角速度データD2(s)として表現されている。また、対応付けられるタイミングがs番目に古い、トラッカー12cの角速度を示すデータが右手角速度データD3(s)として表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図4に示すように、頭部向きデータD1(s)には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
また本実施形態では図4に示すように、左手角速度データD2(s)には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。ここで当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つのタイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
また本実施形態では図4に示すように、右手角速度データD3(s)には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。上述のように当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つのタイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
ここで例えば直前のタイミングにおける向きを示すデータの値と当該タイミングにおける向きを示すデータの値との差分が、角速度を示す値として用いられてもよい。
本実施形態では、入力層44に、9個(3×3)の要素を含む部位データが入力されることとなる。
そして入力層44に入力された部位データが直前の入力に応じた中間ブロック46の出力と結合された入力データが、中間ブロック46に入力される。中間ブロック46は、本実施形態では例えば、LSTM(Long short-term memory)が実装されたRNN(Recurrent Neural Network)(LSTMブロック)である。
ここで中間ブロック46の出力は、部位データが位置、姿勢、又は動きを示す体の部位についての位置、姿勢、又は動きの時系列推移の特徴を示すデータである。以下、中間ブロック46が出力するデータを特徴データと呼ぶこととする。例えばLSTMの状態変数が当該特徴データに相当する。
ここで例えば、中間ブロック46に、あるタイミングに対応付けられる部位データと、当該タイミングよりも前における上述の時系列推移の特徴を示す特徴データと、を含む入力データが入力されるとする。この場合、中間ブロック46は、当該タイミングまでの上述の時系列推移の特徴を示す特徴データを出力する。例えば中間ブロック46に、s番目の部位データと、(s-1)番目の部位データに対応するタイミングまでの上述の時系列推移の特徴を示す特徴データと、を含む入力データが入力されるとする。この場合、中間ブロック46は、s番目の部位データに対応するタイミングまでの上述の時系列推移の特徴を示す特徴データを出力する。以下、s番目の部位データに対応するタイミングまでの上述の時系列推移の特徴を示す特徴データをs番目の特徴データと呼ぶこととする。
そして最後の部位データ(t番目の部位データ)を含む入力データの入力に対する中間ブロック46の出力であるt番目の特徴データが、第1中間層48に入力される。そして第1中間層48からの出力が第2中間層50に入力される。第1中間層48及び第2中間層50は、例えば正規化線形関数(ReLU)を活性化関数とする全結合層である。
そして第2中間層50からの出力が出力層52に入力される。出力層52は、例えば線形関数を活性化関数とする層である。そして出力層52からは、最新のタイミング(t番目のタイミング)における胸部の向きの推定結果に相当する胸部向きデータD4(t)が出力54として出力される。図4に示すように、胸部向きデータD4(t)には、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
なお、上述の教師データにも、例えば、胸部向きデータD4(t)と同様に、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。
そして本実施形態では例えば、推定結果を示す胸部向きデータD4(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す胸部向きデータD4(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、胸部ノード42fの向きの推定が実行される。
図5は、学習済の機械学習モデルを用いた胸部ノード42fの向きの推定の一例を示す図である。
上述のように本実施形態では例えば、所定のサンプリングレートでトラッカー12a~12eのそれぞれについて、当該トラッカー12の位置及び向きの特定が行われることとする。そしてトラッカー12の位置及び向きの特定に応じて、当該トラッカー12の位置及び向きを示すデータが、エンタテインメント装置14に送信されることとする。
そしてこのようにして送信されるトラッカー12の位置及び向きを示すデータに基づいて、体の部位についての位置、姿勢、又は動きを示す部位データが生成されることとする。このようにして本実施形態では例えば、部位データが繰り返し生成されることとなる。
ここでは上述のように、部位データには、頭部の向きを示す頭部向きデータD1、左手の角速度を示す左手角速度データD2、及び、右手の角速度を示す右手角速度データD3が含まれていることとする。ここで例えば、直前の特定タイミングにおける向きを示すデータの値と当該特定タイミングにおける向きを示すデータの値との差分が、当該特定タイミングにおける角速度を示す値として用いられてもよい。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図5には、最新の部位データに含まれる頭部向きデータD1が頭部向きデータD1(u)として表現されている。また、最新の部位データに含まれる左手角速度データD2が左手角速度データD2(u)として表現されている。また、最新の部位データに含まれる右手角速度データD3が右手角速度データD3(u)として表現されている。
上述のように、頭部向きデータD1(u)には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。また、左手角速度データD2(u)には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。また、右手角速度データD3(u)には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。
そして入力層44に入力された9個(3×3)の要素を含む部位データが直前の入力に応じた中間ブロック46の出力である特徴データと結合された入力データが、中間ブロック46に入力される。
そして中間ブロック46の出力である特徴データが、第1中間層48に入力される。そして第1中間層48からの出力が第2中間層50に入力される。
そして第2中間層50からの出力が出力層52に入力される。そして出力層52からは、当該タイミングにおける胸部の向きの推定結果に相当する胸部向きデータD4(u)が出力54として出力される。
ここで予め頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた腰部の向きを示すデータによる学習が実行されていてもよい。この場合は、例えば、上述の学習データに含まれる教師データは、腰部の向きを示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、左手、右手、腰部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして腰部ノード42gの角速度の推定が行われてもよい。この場合は、図4及び図5に示すデータD4は、腰部ノード42gの向きの推定結果に相当することとなる。
また予め頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた胸部の角速度を示すデータによる学習が実行されていてもよい。この場合、例えば、上述の学習データに含まれる教師データは、胸部の向きを示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、左手、右手、胸部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。そして胸部ノード42fの角速度の推定が行われてもよい。この場合は、図4及び図5に示すデータD4は、胸部ノード42fの角速度の推定結果に相当することとなる。
また予め頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた腰部の角速度を示すデータによる学習が実行されていてもよい。この場合、例えば、上述の学習データに含まれる教師データは、腰部の向きを示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、左手、右手、腰部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。そして腰部ノード42gの角速度の推定が行われてもよい。この場合は、図4及び図5に示すデータD4は、腰部ノード42gの角速度の推定結果に相当することとなる。
以上のようにして本実施形態では、胸部ノード42f若しくは腰部ノード42gの向き、又は、胸部ノード42f若しくは腰部ノード42gの角速度の推定が実行される。
以下、左手首ノード42jの向きの推定について説明する。なお以下に示す方法により、右手首ノード42mの向きの推定も同様に可能である。
図6は、左手首ノード42jの向きの推定に用いられる機械学習モデルの学習の一例を示す図である。図6に示すように、左手首ノード42jの向きの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図6に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける体の部位についての位置、姿勢、又は動きを示す部位データを複数含む学習データが取得される。例えば、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、左手の向き、左手の角速度、及び、左手の速度を示す部位データを複数含む学習データが取得される。ここでは例えばt個の部位データを含む学習データが取得されることとする。
そして、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、左手の向きを示す左手向きデータD5、左手の角速度を示す左手角速度データD6、及び、左手の速度を示す左手速度データD7が含まれていることとする。
ここで例えば、左手、左手首のそれぞれにトラッカー12を装着したユーザが様々な動きをした際の、これらのトラッカー12から出力される一連のt個のセンシングデータに基づいて、t個のセンシングデータにそれぞれ対応付けられる一連のt個の部位データが生成されてもよい。また、t番目のセンシングデータに基づいて、t番目のセンシングデータに対応付けられる左手首の向きを示す教師データが生成されてもよい。そして当該一連のt個の部位データと、当該教師データと、を含む学習データが生成されてもよい。
また例えば、左手首の向きが特定の向きである状態で、左手にトラッカー12を装着したユーザが様々な動きをした際の、当該トラッカー12から出力される一連のt個のセンシングデータに基づいて、t個のセンシングデータにそれぞれ対応付けられる一連のt個の部位データが生成されてもよい。そして、当該一連のt個の部位データと、上述の左手首の特定の向きを示す教師データと、を含む学習データが生成されてもよい。
また例えば、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像に基づいて、それぞれフレームに対応付けられる一連のt個の部位データ、及び、t番目のフレームに対応付けられる左手首の向きを示す教師データと、を含む学習データが生成されてもよい。また、このような動画像を見ているオペレータによる操作に基づいて、一連のt個の部位データ、及び、上述の教師データを含む学習データが生成されてもよい。
ここでは例えば、対応付けられるタイミングがs番目に古い、トラッカー12bの向きを示すデータが左手向きデータD5(s)として表現されている。また、対応付けられるタイミングがs番目に古い、トラッカー12bの角速度を示すデータが左手角速度データD6(s)として表現されている。また、対応付けられるタイミングがs番目に古い、トラッカー12bの速度を示すデータが左手速度データD7(s)として表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図6に示すように、左手向きデータD5(s)には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
また本実施形態では図6に示すように、左手角速度データD6(s)には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。ここで当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つのタイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
ここで例えば直前のタイミングにおける向きを示すデータの値と当該タイミングにおける向きを示すデータの値との差分が、角速度を示す値として用いられてもよい。
また本実施形態では図6に示すように、左手速度データD7(s)には、それぞれ、3軸方向の速度にそれぞれ対応するΔx、Δy、Δzといった、3個の要素が含まれている。当該3軸方向の速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の位置に対するx座標値の差分、y座標値の差分、z座標値の差分に相当する。
ここで例えば直前のタイミングにおける位置を示すデータの値と当該タイミングにおける位置を示すデータの値との差分が、速度を示す値として用いられてもよい。
本実施形態では、入力層44に、9個(3×3)の要素を含む部位データが入力されることとなる。
そして入力層44に入力された部位データが直前の入力に応じた中間ブロック46の出力である特徴データと結合された入力データが、中間ブロック46に入力される。例えばs番目の部位データと(s-1)番目の特徴データとが結合された入力データが、中間ブロック46に入力される。
そして図4での説明と同様にして、最終的には、出力層52から、最新のタイミング(t番目のタイミング)における左手首の向きの推定結果に相当する左手首向きデータD8(t)が出力54として出力される。図6に示すように、左手首向きデータD8(t)には、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
なお、上述の教師データにも、例えば、左手首向きデータD8(t)と同様に、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。
そして本実施形態では例えば、推定結果を示す左手首向きデータD8(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す左手首向きデータD8(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、左手首ノード42jの向きの推定が実行される。
図7は、学習済の機械学習モデルを用いた左手首ノード42jの向きの推定の一例を示す図である。
上述のように本実施形態では例えば、部位データが繰り返し生成されることとなる。ここでは上述のように、部位データには、左手の向きを示す左手向きデータD5、左手の角速度を示す左手角速度データD6、及び、左手の速度を示す左手速度データD7が含まれていることとする。ここで例えば、直前の特定タイミングにおける向きを示すデータの値と当該特定タイミングにおける向きを示すデータの値との差分が、当該特定タイミングにおける角速度を示す値として用いられてもよい。また例えば、直前の特定タイミングにおける位置を示すデータの値と当該特定タイミングにおける位置を示すデータの値との差分が、当該特定タイミングにおける速度を示す値として用いられてもよい。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図7には、最新の部位データに含まれる左手向きデータD5が左手向きデータD5(u)として表現されている。また、最新の部位データに含まれる左手角速度データD6が左手角速度データD6(u)として表現されている。また、最新の部位データに含まれる左手速度データD7が左手速度データD7(u)として表現されている。
上述のように、左手向きデータD5(s)には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。また、左手角速度データD6(s)には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。また、左手速度データD7(s)には、それぞれ、3軸方向の速度にそれぞれ対応するΔx、Δy、Δzといった、3個の要素が含まれている。
そして入力層44に入力された9個(3×3)の要素を含む部位データが直前の入力に応じた中間ブロック46の出力である特徴データと結合された入力データが、中間ブロック46に入力される。
そして中間ブロック46の出力である特徴データが、第1中間層48に入力される。そして第1中間層48からの出力が第2中間層50に入力される。
そして第2中間層50からの出力が出力層52に入力される。そして出力層52からは、当該タイミングにおける左手首の向きの推定結果に相当する左手首向きデータD8(u)が出力54として出力される。
ここで予め左手の向き、左手の角速度、及び、左手の位置又は速度の組合せに対応付けられた左手首の角速度を示すデータによる学習が実行されていてもよい。この場合は、例えば、上述の学習データに含まれる教師データは、左手首の角速度を示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、左手、左手首のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして左手首ノード42jの角速度の推定が行われてもよい。この場合は、図6及び図7に示すデータD8は、左手首ノード42jの角速度の推定結果に相当することとなる。
また本実施形態では、図6及び図7に示す機械学習モデルと同様の機械学習モデルについて、右手の向き、右手の角速度、及び、右手の速度の組合せに対応付けられた右手首の向きを示すデータによる学習が実行される。この場合は、例えば、上述の学習データに含まれる教師データは、右手首の向きを示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの右手、右手首のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、学習済の機械学習モデルを用いた右手首ノード42mの向きの推定が行われる。この場合は、図6及び図7に示すデータD8は、右手首ノード42mの向きの推定結果に相当することとなる。
ここで予め右手の向き、右手の角速度、及び、右手の位置又は速度の組合せに対応付けられた右手首の角速度を示すデータによる学習が実行されていてもよい。この場合は、例えば、上述の学習データに含まれる教師データは、右手首の角速度を示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの右手、右手首のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして右手首ノード42mの角速度の推定が行われてもよい。この場合は、図6及び図7に示すデータD8は、右手首ノード42mの角速度の推定結果に相当することとなる。
以上のようにして本実施形態では、左手首ノード42j、及び、右手首ノード42mの向き又は角速度の推定が実行される。
そして本実施形態では例えば、逆運動学によって、以上で説明した推定結果に基づく、他のノード42の位置及び向きの推定が実行される。
本実施形態では、ユーザが胸部又は腰部にトラッカー12を装着することなく、スケルトンモデル40に含まれる各ノード42の位置及び向きが推定される。また本実施形態では、限られた数のトラッカー12の位置や向きを示すデータから、左手首ノード42jの向き及び右手首ノード42mの向きが推定される。そして当該推定の結果に基づいて、逆運動学によって、例えば左肘ノード42i及び右肘ノード42lの位置などといった他のノード42の位置を的確に推定できる。以上のようにして本実施形態によれば、ユーザは多くのトラッカー12を装着することなく的確なボディトラッキングを行えることとなる。具体的には例えば、ユーザは胸部や腰部や手首にトラッカー12を装着することなく的確なボディトラッキングを行えることとなる。
以下、本実施形態に係るエンタテインメント装置14の機能、及び、エンタテインメント装置14で実行される処理についてさらに説明する。
図8は、本実施形態に係るエンタテインメント装置14で実装される、機械学習モデルの学習を実行する学習装置としての機能の一例を示す機能ブロック図である。なお、本実施形態に係るエンタテインメント装置14で、図8に示す機能のすべてが実装される必要はなく、また、図8に示す機能以外の機能が実装されていても構わない。
図8に示すように、学習装置としてのエンタテインメント装置14には、機能的には例えば、学習データ記憶部60、学習データ取得部62、入力データ生成部64、入力部66、特徴抽出部68、特徴データ保持部70、推定部72、出力取得部74、学習部76が含まれる。
図9は、本実施形態に係るエンタテインメント装置14で実装される、学習済の機械学習モデルを用いた推定を実行する推定装置としての機能の一例を示す機能ブロック図である。なお、本実施形態に係るエンタテインメント装置14で、図9に示す機能のすべてが実装される必要はなく、また、図9に示す機能以外の機能が実装されていても構わない。
図9に示すように、推定装置としてのエンタテインメント装置14には、機能的には例えば、姿勢データ取得部80、姿勢データ記憶部82、部位データ生成部84、入力データ生成部64、入力部66、特徴抽出部68、特徴データ保持部70、推定部72、出力取得部74、ボディトラッキング実行部86が含まれる。
図9に示す部位データ生成部84には、第1部位データ生成部84a、第2部位データ生成部84b、及び、第3部位データ生成部84cが含まれる。また入力データ生成部64には、第1入力データ生成部64a、第2入力データ生成部64b、及び、第3入力データ生成部64cが含まれる。また入力部66には、第1入力部66a、第2入力部66b、及び、第3入力部66cが含まれる。特徴抽出部68には、第1特徴抽出部68a、第2特徴抽出部68b、及び、第3特徴抽出部68cが含まれる。また特徴データ保持部70には、第1特徴データ保持部70a、第2特徴データ保持部70b、及び、第3特徴データ保持部70cが含まれる。また推定部72には、第1推定部72a、第2推定部72b、及び、第3推定部72cが含まれる。また出力取得部74には、第1出力取得部74a、第2出力取得部74b、及び、第3出力取得部74cが含まれる。
学習データ記憶部60、特徴データ保持部70、姿勢データ記憶部82は、記憶部32を主として実装される。学習データ取得部62、入力データ生成部64、入力部66、出力取得部74、学習部76、部位データ生成部84、ボディトラッキング実行部86は、プロセッサ30を主として実装される。姿勢データ取得部80は、プロセッサ30及び入出力部36を主として実装される。特徴抽出部68、及び、推定部72は、プロセッサ30及び記憶部32を主として実装される。
以上の機能は、コンピュータであるエンタテインメント装置14にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ30で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してエンタテインメント装置14に供給されてもよい。
以下、機械学習モデルの学習に関するエンタテインメント装置14の機能について、図8を参照しながら説明する。
学習データ記憶部60は、本実施形態では例えば、複数の学習データを記憶する。ここで上述のように学習データには、例えば互いに異なるタイミングに対応付けられる、当該タイミングにおける体の部位についての位置、姿勢、又は動きを示す部位データが複数含まれる。また学習データに、最後のタイミングに対応付けられる部位データに対応付けられる教師データが含まれていてもよい。
学習データ取得部62は、本実施形態では例えば、学習データ記憶部60に記憶されている、複数の部位データが含まれる学習データを取得する。
入力データ生成部64は、本実施形態では例えば、特徴抽出部68に入力される入力データを生成する。ここで上述のように、入力データには、上述の部位データと、体の部位についての位置、姿勢、又は動きの時系列推移の特徴を示す特徴データとが含まれる。
入力部66は、本実施形態では例えば、入力データ生成部64が生成する入力データを特徴抽出部68に入力する。ここでは例えば、対応付けられるタイミングが古いものから順次、部位データと、直前に行われた入力に応じて特徴抽出部68が出力した特徴データと、を含む入力データが、特徴抽出部68に入力される。
特徴抽出部68は、本実施形態では例えば、入力データの入力に応じて、新たな特徴データを出力する。例えば図4~図7に示す中間ブロック46が、特徴抽出部68に相当する。上述のように、特徴抽出部68には、古いタイミングにおける部位データから順次、当該部位データと、特徴抽出部68が過去に出力した、当該タイミングよりも前における上述の時系列推移の特徴を示す特徴データと、を含む入力データが入力される。そして特徴抽出部68は、当該入力に応じて、当該タイミングまでの上述の時系列推移の特徴を示す特徴データを出力する。
特徴データ保持部70は、本実施形態では例えば、特徴抽出部68が出力する特徴データを保持する。ここで本実施形態では、特徴データ保持部70に保持される特徴データが、特徴抽出部68に次に入力される入力データに含まれる特徴データとして用いられることとなる。
推定部72は、本実施形態では例えば、特徴データに基づいて、当該特徴データが位置、姿勢、又は動きの時系列推移の特徴を示す部位よりも体の中心に近い当該体の別の部位の位置、姿勢、又は動きを推定する。ここでは例えば、推定部72には、最新のタイミングまでの上述の時系列推移の特徴を示す特徴データが入力される。そして推定部72は、当該特徴データの入力に応じて、当該部位データが位置、姿勢、又は動きを示す部位よりも体の中心に近い当該体の別の部位の位置、姿勢、又は動きの推定結果を出力する。例えば図4~図7に示す第1中間層48、第2中間層50、及び出力層52が、推定部72に相当する。
ここで向きの推定値(ピッチ角、ヨー角、ロール角の組合せ)や角速度の推定値などといった位置、姿勢、又は動きの推定値が推定結果として出力されてもよい。また位置、姿勢、又は動きの推定値の算出の基礎となるスコア値が推定結果として出力されてもよい。
出力取得部74は、本実施形態では例えば、推定部72が出力する推定結果を取得する。
学習部76は、本実施形態では例えば、出力取得部74が取得する推定結果に基づいて、特徴抽出部68又は推定部72のうちの少なくとも一方の学習を実行する。ここで例えば、特徴抽出部68については学習が実行されず、推定部72の学習だけが実行されてもよい。この場合は、特徴抽出部68のパラメータの値は更新されない。また例えば、推定部72については学習が実行されず、特徴抽出部68の学習だけが実行されてもよい。この場合は、推定部72のパラメータの値は更新されない。また、特徴抽出部68及び推定部72の両方の学習が実行されてもよい。
ここで例えば1個の学習データに含まれる複数の部位データに基づいて、1回の学習(例えばパラメータの値の更新)が実行されてもよい。そして複数の学習データのそれぞれについての学習が実行されることにより、複数回の学習が実行されてもよい。
本実施形態では例えば、頭部の向きを示す頭部向きデータD1、左手の角速度を示す左手角速度データD2、及び、右手の角速度を示す右手角速度データD3を含む部位データにより、胸部の向きを推定する機械学習モデルの学習が実行される。このようにして生成される学習済の機械学習モデルである特徴抽出部68が、図9に示す第1特徴抽出部68aとして用いられる。またこのようにして生成される学習済の機械学習モデルである推定部72が、図9に示す第1推定部72aとして用いられる。
また、左手の向きを示す左手向きデータD5、左手の角速度を示す左手角速度データD6、及び、左手の速度を示す左手速度データD7を含む部位データにより、左手首の向きを推定する機械学習モデルの学習が実行される。このようにして生成される学習済の機械学習モデルである特徴抽出部68が、図9に示す第2特徴抽出部68bとして用いられる。またこのようにして生成される学習済の機械学習モデルである推定部72が、図9に示す第2推定部72bとして用いられる。
また、右手の向きを示すデータ、右手の角速度を示すデータ、及び、右手の速度を示すデータを含む部位データにより、右手首の向きを推定する機械学習モデルの学習が実行される。このようにして生成される学習済の機械学習モデルである特徴抽出部68が、図9に示す第3特徴抽出部68cとして用いられる。またこのようにして生成される学習済の機械学習モデルである推定部72が、図9に示す第3推定部72cとして用いられる。
以下、体の部位の位置、姿勢、又は動きの推定に関するエンタテインメント装置14の機能について、図9を参照しながら説明する。
姿勢データ取得部80は、本実施形態では例えば、所定のサンプリングレートで特定されるトラッカー12a~12eの位置及び向きを示す姿勢データを取得する。ここで例えば、所定のサンプリングレートでトラッカー12が、当該トラッカー12の位置及び向きを示す姿勢データを生成してもよい。そして生成に応じてトラッカー12が、当該トラッカー12が生成した姿勢データを、中継装置16経由でエンタテインメント装置14に送信してもよい。また例えば、カメラマイクユニット20が、所定のサンプリングレートでトラッカー12a~12eの位置及び向きを示す姿勢データを生成してもよい。そして生成に応じてカメラマイクユニット20が、当該カメラマイクユニット20が生成した姿勢データを、エンタテインメント装置14に送信してもよい。
姿勢データ記憶部82は、本実施形態では例えば、姿勢データ取得部80が取得する姿勢データを記憶する。
第1部位データ生成部84aは、本実施形態では例えば、姿勢データ記憶部82に記憶されている姿勢データに基づいて、第1特徴抽出部68aに入力される入力データに含まれる部位データを生成する。ここでは例えば、頭部の向きを示す頭部向きデータD1、左手の角速度を示す左手角速度データD2、及び、右手の角速度を示す右手角速度データD3を含む部位データが生成される。このように第1部位データ生成部84aが生成する部位データは、体に含まれる互いに異なる複数の部位(ここでは例えば頭部、左手、及び、右手)についての位置、姿勢、又は動きを示すデータであってもよい。
第2部位データ生成部84bは、本実施形態では例えば、姿勢データ記憶部82に記憶されている姿勢データに基づいて、第2特徴抽出部68bに入力される入力データに含まれる部位データを生成する。ここでは例えば、左手の向きを示す左手向きデータD5、左手の角速度を示す左手角速度データD6、及び、左手の速度を示す左手速度データD7を含む部位データが生成される。このように第2部位データ生成部84bが生成する部位データに、体に含まれる部位(ここでは例えば左手)の向きを示すデータと当該部位(ここでは例えば左手)の角速度を示すデータとが含まれていてもよい。
第3部位データ生成部84cは、本実施形態では例えば、姿勢データ記憶部82に記憶されている姿勢データに基づいて、第3特徴抽出部68cに入力される入力データに含まれる部位データを生成する。ここでは例えば、右手の向きを示すデータ、右手の角速度を示すデータ、及び、右手の速度を示すデータを含む部位データが生成される。
入力データ生成部64は、本実施形態では例えば、上述のように特徴抽出部68に入力される入力データを生成する。ここで入力データ生成部64が、最新のタイミングにおける部位データと、特徴抽出部68が過去に出力した、当該タイミングよりも前における上述の時系列推移の特徴を示す特徴データと、を含む入力データを生成してもよい。ここで例えば、部位データと、直前に行われた入力に応じて特徴抽出部68が出力した特徴データと、を含む入力データが生成されてもよい。第1入力データ生成部64aは、例えば、第1特徴抽出部68aに入力される入力データを生成する。また、第2入力データ生成部64bは、例えば、第2特徴抽出部68bに入力される入力データを生成する。また、第3入力データ生成部64cは、例えば、第3特徴抽出部68cに入力される入力データを生成する。
入力部66は、本実施形態では例えば、上述のように、入力データ生成部64が生成する入力データを特徴抽出部68に入力する。ここで第1入力部66aは、例えば、第1入力データ生成部64aが生成する入力データを第1特徴抽出部68aに入力する。また、第2入力部66bは、例えば、第2入力データ生成部64bが生成する入力データを第2特徴抽出部68bに入力する。また、第3入力部66cは、例えば、第3入力データ生成部64cが生成する入力データを第3特徴抽出部68cに入力する。
そして特徴抽出部68には、最新のタイミングにおける部位データと、特徴抽出部68が過去に出力した、当該タイミングよりも前における上述の時系列推移の特徴を示す特徴データと、を含む入力データが入力される。そして特徴抽出部68は、当該入力に応じて、当該タイミングまでの上述の時系列推移の特徴を示す特徴データを出力する。例えば第1特徴抽出部68aは、第1入力部66aによる入力データの入力に応じた特徴データを出力する。また例えば、第2特徴抽出部68bは、第2入力部66bによる入力データの入力に応じた特徴データを出力する。また例えば、第3特徴抽出部68cは、第3入力部66cによる入力データの入力に応じた特徴データを出力する。
そして第1特徴データ保持部70aは、第1特徴抽出部68aが出力する特徴データを保持する。また、第2特徴データ保持部70bは、第2特徴抽出部68bが出力する特徴データを保持する。また、第3特徴データ保持部70cは、第3特徴抽出部68cが出力する特徴データを保持する。ここで本実施形態では、特徴データ保持部70に保持される特徴データが、次の推定における入力データに含まれる特徴データとして用いられることとなる。
推定部72は、本実施形態では例えば、最新のタイミングまでの時系列推移の特徴を示す特徴データに基づいて、当該タイミングにおける体の別の部位の位置、姿勢、又は動きを推定する。ここでは例えば、特徴データが位置、姿勢、又は動きの時系列推移の特徴を示す体の部位よりも体の中心に近い当該体の別の部位の位置、姿勢、又は動きが推定される。例えば、第1推定部72aは、第1特徴抽出部68aが出力する特徴データの入力に応じて、胸部の向きの推定結果を出力する。また例えば、第2推定部72bは、第2特徴抽出部68bが出力する特徴データの入力に応じて、左手首の向きの推定結果を出力する。また例えば、第3推定部72cは、第3特徴抽出部68cが出力する特徴データの入力に応じて、右手首の向きの推定結果を出力する。
出力取得部74は、本実施形態では例えば、推定部72が出力する推定結果を取得する。ここで例えば、第1出力取得部74aは、第1推定部72aが出力する推定結果を取得する。また例えば、第2出力取得部74bは、第2推定部72bが出力する推定結果を取得する。また例えば、第3出力取得部74cは、第3推定部72cが出力する推定結果を取得する。
スケルトンモデル40において、頭部ノード42aと胸部ノード42fとは1個のリンクを介して接続されている。またスケルトンモデル40において、左手ノード42bと胸部ノード42fとは4個のリンクを介して接続されている。またスケルトンモデル40において、右手ノード42cと胸部ノード42fとは4個のリンクを介して接続されている。そして胸部ノード42fは、頭部ノード42a、左手ノード42b、右手ノード42cのいずれに対しても体の中心に近いノード42である。そして第1出力取得部74aは例えば、第1部位データ生成部84aが生成する部位データが位置、姿勢、又は動きを示す体の部位よりも、当該体の中心に近い部位である胸部に相当する胸部ノード42fの位置、姿勢、又は動きの推定結果を取得する。
またスケルトンモデル40において、左手ノード42bと左手首ノード42jとは1個のリンクを介して接続されている。そして左手首ノード42jは、左手ノード42bに対して体の中心に近いノード42である。そして第2出力取得部74bは例えば、第2部位データ生成部84bが生成する部位データが位置、姿勢、又は動きを示す体の部位よりも、当該体の中心に近い部位である左手首に相当する左手首ノード42jの位置、姿勢、又は動きの推定結果を取得する。
また第3出力取得部74cは例えば、第3部位データ生成部84cが生成する部位データが位置、姿勢、又は動きを示す体の部位よりも、当該体の中心に近い部位である右手首に相当する右手首ノード42mの位置、姿勢、又は動きの推定結果を取得する。
なお推定部72が出力して出力取得部74が取得するデータは、上述のような向き又は角速度(向きの差分)を示すデータには限定されない。例えば推定部72が、速度(位置の差分)を示すデータ、位置を示すデータ、加速度(速度の差分)を示すデータ、角加速度(角速度の差分)を示すデータを出力してもよい。また推定部72は、ある部位の別の部位に対する相対的な位置、姿勢、又は動きを示すデータを出力してもよい。より具体的には例えば、推定部72が、手の向きと腕の向きとの差分(手の向きを基準とする腕の相対的な向き)を示すデータを出力してもよい。
ボディトラッキング実行部86は、本実施形態では例えば、出力取得部74が取得する向きの推定結果、及び、姿勢データ取得部80が取得する姿勢データに基づいて、ボディトラッキングの処理を実行する。ここでは例えば、スケルトンモデル40に含まれる複数のノード42のそれぞれについての位置及び向きが推定される。なおボディトラッキング実行部86は、姿勢データ記憶部82に記憶されている姿勢データに基づいてボディトラッキングの処理を実行してもよい。
ここで例えば、トラッカー12aの位置及び向きを示す姿勢データに基づいて、頭部ノード42aの位置及び向きが決定されてもよい。また例えば、トラッカー12bの位置及び向きを示す姿勢データに基づいて、左手ノード42bの位置及び向きが決定されてもよい。また例えば、トラッカー12cの位置及び向きを示す姿勢データに基づいて、右手ノード42cの位置及び向きが決定されてもよい。また例えば、トラッカー12dの位置及び向きを示す姿勢データに基づいて、左足ノード42dの位置及び向きが決定されてもよい。また例えば、トラッカー12eの位置及び向きを示す姿勢データに基づいて、右足ノード42eの位置及び向きが決定されてもよい。
またボディトラッキング実行部86は、上述のように、決定又は推定されたノード42の位置又は向きに基づいて、逆運動学によって、推定されていないノード42の位置及び推定されていないノード42の向きを推定してもよい。
体に含まれる部位に相当するノード42の向きは、当該ノード42と1又は複数のリンクで接続されている、当該部位よりも体の中心から離れた他のノード42の回転の時間的な動きのパターンを用いれば的確に推定できると考えられる。そこで本実施形態では、入力データに、体の部位についての最新のタイミングにおける位置、姿勢、又は動きを示す部位データと、当該タイミングよりも前における当該部位についての位置、姿勢、又は動きの時系列推移を示す特徴データと、が含まれるようにした。そして当該入力データに基づいて、当該部位よりも体の中心に近い当該体の別の部位の向きが推定されるようにした。
ここで、本実施形態に係るエンタテインメント装置14で行われる学習処理の流れの一例を、図10に例示するフロー図を参照しながら説明する。本処理例では、学習データ記憶部60に複数の学習データが記憶されていることとする。
まず、学習データ取得部62が、学習データ記憶部60に記憶されている学習データのうちから、S102~S110に示す処理が未実行であるものを1つ取得する(S101)。
そして、入力データ生成部64が、S101に示す処理で取得された学習データに含まれる、S103~S106に示す処理が未実行である部位データのうち、対応付けられるタイミングが最も古い部位データを特定する(S102)。
そして、入力データ生成部64が、特徴データ保持部70に保持されている、最後に特徴抽出部68から出力された特徴データを取得する(S103)。当該特徴データは、直前に行われた入力に応じて特徴抽出部68が出力した特徴データである。
そして、入力データ生成部64が、S102に示す処理で特定された部位データと、S103に示す処理で取得された特徴データと、を結合することにより、入力データを生成する(S104)。なお特徴データ保持部70に特徴データが記憶されていない際には、所定の初期値が設定された特徴データを含む入力データが生成される。
そして、入力部66が、S104に示す処理で生成された入力データを特徴抽出部68に入力する(S105)。
そして、特徴抽出部68が、S105に示す処理における入力に応じた特徴データを特徴データ保持部70に出力する(S106)。
そして、推定部72が、S101に示す処理で取得された学習データに含まれるすべての部位データについて、S103~S106に示す処理が実行されたか否かを確認する(S107)。
S101に示す処理で取得された学習データに含まれるすべての部位データについてS103~S106に示す処理が実行されていない場合は(S107:N)、S102に示す処理に戻る。
一方、S101に示す処理で取得された学習データに含まれるすべての部位データについてS103~S106に示す処理が実行されたとする(S107:Y)。この場合は、推定部72が、特徴データ保持部70に保持されている、最後に特徴抽出部68から出力された特徴データに応じた推定結果を生成して、出力する(S108)。ここで例えば入力部66が、最後に特徴抽出部68から出力された特徴データを推定部72に入力してもよい。そして推定部72が、当該入力に応じた推定結果を出力してもよい。
そして出力取得部74が、S108に示す処理で出力された推定結果を取得する(S109)。
そして学習部76が、S109に示す処理で取得された推定結果に基づいて、特徴抽出部68及び推定部72の学習を実行する(S110)。ここで例えば、特徴抽出部68及び推定部72に設定されているパラメータの値が更新されてもよい。
そして学習部76が、学習データ記憶部60に記憶されているすべての学習データについて、S102~S110に示す処理が実行されたか否かを確認する(S111)。
学習データ記憶部60に記憶されているすべての学習データについて、S102~S110に示す処理が実行されていない場合は(S111:N)、S101に示す処理に戻る。
学習データ記憶部60に記憶されているすべての学習データについて、S102~S110に示す処理が実行された場合は(S111:Y)、本処理例に示す処理は終了される。
本実施形態では、頭部向きデータD1、左手角速度データD2、及び、右手角速度データD3を含む部位データによる上述の処理が実行されることにより、学習済の機械学習モデルである第1特徴抽出部68a及び第1推定部72aが生成される。また、左手向きデータD5、左手角速度データD6、及び、左手速度データD7を含む部位データによる上述の処理が実行されることにより、学習済の機械学習モデルである第2特徴抽出部68b及び第2推定部72bが生成される。また、右手向きデータ、右手角速度データ、及び、右手速度データを含む部位データによる上述の処理が実行されることにより、学習済の機械学習モデルである第3特徴抽出部68c及び第3推定部72cが生成される。
次に、本実施形態に係るエンタテインメント装置14で行われるスケルトンモデル40に含まれるすべてのノード42についての位置及び向きの推定処理の流れの一例を、図11に例示するフロー図を参照しながら説明する。
まず、姿勢データ取得部80が、トラッカー12によって生成される最新の特定タイミングにおける当該トラッカー12の位置及び向きを示す姿勢データを取得して、姿勢データ記憶部82に記憶させる(S201)。ここでは例えば、姿勢データ取得部80は、トラッカー12a~12eのそれぞれについての、当該トラッカー12の位置及び向きを示す姿勢データを取得する。
そして部位データ生成部84が、姿勢データ記憶部82に記憶されている姿勢データに基づいて、部位データを生成する(S202)。S202に示す処理では例えば、第1部位データ生成部84aが、第1特徴抽出部68aに入力される入力データに含まれる部位データを生成する。また、第2部位データ生成部84bが、第2特徴抽出部68bに入力される入力データに含まれる部位データを生成する。また、第3部位データ生成部84cが、第3特徴抽出部68cに入力される入力データに含まれる部位データを生成する。
そして、入力データ生成部64が、特徴データ保持部70に保持されている、最後に特徴抽出部68から出力された特徴データを取得する(S203)。当該特徴データは、直前に行われた入力に応じて特徴抽出部68が出力した特徴データである。S203に示す処理では例えば、第1入力データ生成部64aが、第1特徴データ保持部70aに保持されている、最後に第1特徴抽出部68aから出力された特徴データを取得する。また、第2入力データ生成部64bが、第2特徴データ保持部70bに保持されている、最後に第2特徴抽出部68bから出力された特徴データを取得する。また、第3入力データ生成部64cが、第3特徴データ保持部70cに保持されている、最後に第3特徴抽出部68cから出力された特徴データを取得する。
そして、入力データ生成部64が、S202に示す処理で生成された部位データと、S203に示す処理で取得された特徴データと、を結合することにより、入力データを生成する(S204)。なお特徴データ保持部70に特徴データが記憶されていない際には、所定の初期値が設定された特徴データを含む入力データが生成される。S204に示す処理では例えば、第1入力データ生成部64aが、第1特徴抽出部68aに入力される入力データを生成する。また、第2入力データ生成部64bが、第2特徴抽出部68bに入力される入力データを生成する。また、第3入力データ生成部64cが、第3特徴抽出部68cに入力される入力データを生成する。
そして、入力部66が、S204に示す処理で生成された入力データを特徴抽出部68に入力する(S205)。S205に示す処理では例えば、第1入力部66aが、第1入力データ生成部64aが生成した入力データを第1特徴抽出部68aに入力する。また、第2入力部66bが、第2入力データ生成部64bが生成した入力データを第2特徴抽出部68bに入力する。また、第3入力部66cが、第3入力データ生成部64cが生成した入力データを第3特徴抽出部68cに入力する。
そして、特徴抽出部68が、S205に示す処理における入力に応じた特徴データを特徴データ保持部70に出力する(S206)。S206に示す処理では例えば、第1特徴抽出部68aが、第1部位データ生成部84aが生成した部位データに応じた特徴データを第1特徴データ保持部70aに出力する。また、第2特徴抽出部68bが、第2部位データ生成部84bが生成した部位データに応じた特徴データを第2特徴データ保持部70bに出力する。また、第3特徴抽出部68cが、第3部位データ生成部84cが生成した部位データに応じた特徴データを第3特徴データ保持部70cに出力する。
そして、推定部72が、S206に示す処理で特徴データ保持部70に出力された特徴データである、特徴データ保持部70に保持されている、最後に特徴抽出部68から出力された特徴データに応じた推定結果を生成して、出力する(S207)。ここで例えば入力部66が、最後に特徴抽出部68から出力された特徴データを推定部72に入力してもよい。そして推定部72が、当該入力に応じた推定結果を出力してもよい。S207に示す処理では例えば、第1推定部72aは、S206に示す処理で第1特徴データ保持部70aに出力された特徴データに応じた、胸部ノード42fの向きの推定結果を生成して、出力する。また、第2推定部72bは、S206に示す処理で第2特徴データ保持部70bに出力された特徴データに応じた、左手首ノード42jの向きの推定結果を生成して、出力する。また、第3推定部72cは、S206に示す処理で第3特徴データ保持部70cに出力された特徴データに応じた、右手首ノード42mの向きの推定結果を生成して、出力する。
そして出力取得部74が、S207に示す処理で出力された推定結果を取得する(S208)。S208に示す処理では例えば、第1出力取得部74aは、S207に示す処理で第1推定部72aから出力された胸部ノード42fの向きの推定結果を取得する。また、第2出力取得部74bは、S207に示す処理で第2推定部72bから出力された左手首ノード42jの向きの推定結果を取得する。また、第3出力取得部74cは、S207に示す処理で第3推定部72cから出力された右手首ノード42mの向きの推定結果を取得する。
そしてボディトラッキング実行部86が、本サイクルにおける頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、及び、右足ノード42eのそれぞれについて、位置及び向きを決定する(S209)。ここで例えば、S201に示す処理で取得された姿勢データに基づいて、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、及び、右足ノード42eのそれぞれについての位置及び向きが決定されてもよい。
そしてボディトラッキング実行部86が、逆運動学によって、スケルトンモデル40に含まれるノード42の位置及び向きのうちの、S208、及び、S209に示す処理で決定又は推定結果の取得が行われていない残りを、逆運動学によって推定する(S210)。
以上のようにして1サイクルにおけるスケルトンモデル40に含まれるすべてのノード42についての位置及び向きの推定が実行される。そしてS201に示す処理に戻る。
以上で説明した処理例に示す処理において、各ステップの実行順序は上述のものに限定されない。
なお上述のように、第1特徴抽出部68a及び第1推定部72aが胸部ノード42fではなく腰部ノード42gの向きの推定に用いられる機械学習モデルであってもよい。この場合、第1出力取得部74aが、腰部ノード42gの向きの推定結果を取得してもよい。
[胸部ノードの回転の推定の一例]
また、本実施形態において、機械学習モデルを用いて、上述したもの以外の推定が実行されるようにしてもよい。
また、本実施形態において、機械学習モデルを用いて、上述したもの以外の推定が実行されるようにしてもよい。
例えば、胸部の向きとして、基準の向き(例えば鉛直方向)に対する胸部の回転(Roll)のみの推定が行われるようにしてもよい。
図12は、胸部ノード42fの回転(Roll)の推定に用いられる機械学習モデルの学習の一例を示す図である。図12に示すように、胸部ノード42fの回転の推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図12に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、頭部の回転、右手の回転成分の角速度、左手の回転成分の角速度、右足の回転、左足の回転、右手の位置を基準とした頭部の位置、及び、左手の位置を基準とした頭部の位置を示すt個の部位データ、及び、教師データを含む学習データが取得される。
ここでは例えば、当該教師データは、例えば、胸部の回転を示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、右手、左手、右足、左足、胸部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、上述したように、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、頭部の回転を示す頭部回転データD9、右手の回転成分の角速度を示す右手回転角速度データD10、左手の回転成分の角速度を示す右手回転角速度データD11、右足の回転を示す右足回転データD12、左足の回転を示す左足回転データD13、右手の位置を基準とした頭部の位置を示す右手基準頭部位置データD14、左手の位置を基準とした頭部の位置を示す左手基準頭部位置データD15が含まれていることとする。
ここでは例えば、上述したものと同様に、対応付けられるタイミングがs番目に古い、データD9~D15がそれぞれD9(s)~D15(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図12に示すように、頭部回転データD9(s)、右足回転データD12(s)、左足回転データD13(s)には、1つの要素(ロール角(Roll))が含まれている。また、右手回転角速度データD10(s)、右手回転角速度データD11(s)には、1つの要素(ロール角速度(ΔRoll))が含まれている。当該ロール角速度は、連続する2つのタイミング間における上述の基準の向きに対するロール角の差分に相当する。なお、RollやΔRollの値は、-2π~2πの範囲をとるよう調整された実数であってもよい。
また本実施形態では図12に示すように、右手基準頭部位置データD14(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、右手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。また、左手基準頭部位置データD15(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、左手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
本実施形態では、入力層44に、以上の11個の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における胸部の回転の推定結果に相当する胸部回転データD16(t)が出力54として出力される。図12に示すように、胸部回転データD16(t)には、1個の要素(ロール角(Roll))が含まれている。当該ロール角は例えば、上述の基準の向きに対するロール角に相当する。
なお、上述の教師データにも、例えば、胸部回転データD16(t)と同様に、1個の要素(ロール角(Roll))が含まれている。
そして本実施形態では例えば、推定結果を示す胸部回転データD16(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す胸部回転データD16(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、胸部ノード42fの回転の推定が実行される。
図13は、学習済の機械学習モデルを用いた胸部ノード42fの回転の推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12の位置及び向きを示すデータに基づいて、部位データが生成されることとする。当該部位データには、頭部の回転を示す頭部回転データD9、右手の回転成分の角速度を示す右手回転角速度データD10、左手の回転成分の角速度を示す右手回転角速度データD11、右足の回転を示す右足回転データD12、左足の回転を示す左足回転データD13、右手の位置を基準とした頭部の位置を示す右手基準頭部位置データD14、左手の位置を基準とした頭部の位置を示す左手基準頭部位置データD15が含まれていることとする。ここで例えば、直前の特定タイミングにおける向きを示すデータの値と当該特定タイミングにおける向きを示すデータの値との差分が、当該特定タイミングにおける角速度を示す値として用いられてもよい。また、上述のように、本実施形態では例えば、部位データが繰り返し生成される。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図13には、最新の部位データに含まれるデータD9~D15がそれぞれD9(u)~D15(u)と表現されている。
上述のように、頭部回転データD9(u)、右足回転データD12(u)、左足回転データD13(u)には、1つの要素(ロール角(Roll))が含まれている。また、右手回転角速度データD10(u)、右手回転角速度データD11(u)には、1つの要素(ロール角速度(ΔRoll))が含まれている。当該ロール角速度は、連続する2つのタイミング間における上述の基準の向きに対するロール角の差分に相当する。なお、RollやΔRollの値は、-2π~2πの範囲をとるよう調整された実数であってもよい。
また本実施形態では図13に示すように、右手基準頭部位置データD14(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、右手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。また、左手基準頭部位置データD15(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、左手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける胸部の回転の推定結果に相当する胸部回転データD16(u)が出力54として出力される。
[手首の向きの推定の別の一例]
また本実施形態において例えば、上述した方法とは異なる方法で手首の向きの推定が行われるようにしてもよい。
また本実施形態において例えば、上述した方法とは異なる方法で手首の向きの推定が行われるようにしてもよい。
図14は、左手首ノード42jの向きの推定に用いられる機械学習モデルの学習の一例を示す図である。図14に示すように、左手首ノード42jの向きの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図14に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、胸部(胸部ノード42f)の回転によりオフセットされた(胸部の回転を基準とした)、左手の位置を基準とした胸部の位置、及び、左手の向きを示すt個の部位データ、及び、教師データを含む学習データが取得される。
ここでは例えば、当該教師データは、例えば、手首の向きを示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの左手、左手首、胸部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、上述したように、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした胸部の位置を示す左手基準胸部位置データD17、及び、胸部(胸部ノード42f)の回転によりオフセットされた、左手の向きを示す左手向きデータD18が含まれていることとする。
ここでは例えば、上述したものと同様に、対応付けられるタイミングがs番目に古い、データD17、D18がそれぞれD17(s)、D18(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図14に示すように、左手基準胸部位置データD17(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。また、左手向きデータD18(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部(胸部ノード42f)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
本実施形態では、入力層44に、以上の6個の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における左手首の向きの推定結果に相当する左手首向きデータD19(t)が出力54として出力される。図14に示すように、左手首向きデータD19(t)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、左手首の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
なお、上述の教師データにも、例えば、左手首向きデータD19(t)には、それぞれ、x、y、zといった3個の要素が含まれている。
そして本実施形態では例えば、推定結果を示す左手首向きデータD19(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す左手首向きデータD19(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、左手首ノード42jの向きの推定が実行される。
図15は、学習済の機械学習モデルを用いた左手首ノード42jの向きの推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12の位置及び向きを示すデータに基づいて、部位データが生成されることとする。当該部位データには、胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした胸部の位置を示す左手基準胸部位置データD17、及び、胸部(胸部ノード42f)の回転によりオフセットされた、左手の向きを示す左手向きデータD18が含まれていることとする。また、上述のように、本実施形態では例えば、部位データが繰り返し生成される。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図15には、最新の部位データに含まれるデータD17、D18がそれぞれD17(u)、D18(u)と表現されている。
上述のように、左手基準胸部位置データD17(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。また、左手向きデータD18(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部(胸部ノード42f)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける左手首の向きの推定結果に相当する左手首向きデータD19(u)が出力54として出力される。
同様にして、右手首の向きが推定されてもよい。
[頭部ノードの高さの推定の一例]
また本実施形態において例えば、ユーザが頭部にトラッカー12aを装着していなくてもよい。そして、機械学習モデルを用いて頭部ノード42aの高さが推定されるようにしてもよい。
また本実施形態において例えば、ユーザが頭部にトラッカー12aを装着していなくてもよい。そして、機械学習モデルを用いて頭部ノード42aの高さが推定されるようにしてもよい。
図16は、頭部ノード42aの高さの推定に用いられる機械学習モデルの学習の一例を示す図である。図16に示すように、頭部ノード42aの高さの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図16に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、右手の高さ、左手の高さ、右手の向きの高さ成分、及び、左手の向きの高さ成分を示すt個の部位データ、及び、教師データを含む学習データが取得される。
ここでは例えば、当該教師データは、例えば、頭部の高さを示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、右手、左手のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、上述したように、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、右手の高さを示す右手高さデータD20、左手の高さを示す左手高さデータD21、右手の向きの高さ成分を示す右手向き高さ成分データD22、及び、左手の向きの高さ成分を示す左手向き高さ成分データD23が含まれていることとする。
ここでは例えば、上述したものと同様に、対応付けられるタイミングがs番目に古い、データD20~D23がそれぞれD20(s)~D23(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図16に示すように、右手高さデータD20(s)、左手高さデータD21(s)、右手向き高さ成分データD22(s)、及び、左手向き高さ成分データD23(s)には、1個の要素(高さz)が含まれている。右手高さデータD20(s)、及び、左手高さデータD21(s)については、高さzは位置のz座標値を表している。右手向き高さ成分データD22(s)、及び、左手向き高さ成分データD23(s)については、高さzは、手の向きを表す単位ベクトルの高さ方向成分を表している。
本実施形態では、入力層44に、以上の4個の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における頭部の高さの推定結果に相当する頭部高さデータD24(t)が出力54として出力される。図16に示すように、頭部高さデータD24(t)には、1個の要素(高さz)が含まれている。
なお、上述の教師データにも、例えば、頭部高さデータD24(t)と同様に、1個の要素(高さz)が含まれている。
そして本実施形態では例えば、推定結果を示す頭部高さデータD24(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す頭部高さデータD24(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、頭部ノード42aの高さの推定が実行される。
図17は、学習済の機械学習モデルを用いた頭部ノード42aの高さの推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12の位置及び向きを示すデータに基づいて、部位データが生成されることとする。当該部位データには、右手の高さを示す右手高さデータD20、左手の高さを示す左手高さデータD21、右手の向きの高さ成分を示す右手向き高さ成分データD22、及び、左手の向きの高さ成分を示す左手向き高さ成分データD23が含まれていることとする。また、上述のように、本実施形態では例えば、部位データが繰り返し生成される。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図17には、最新の部位データに含まれるデータD20~D23がそれぞれD20(u)~D23(u)と表現されている。
上述のように、右手高さデータD20(u)、左手高さデータD21(u)、右手向き高さ成分データD22(u)、左手向き高さ成分データD23(u)には、1個の要素(高さz)が含まれている。右手高さデータD20(u)、及び、左手高さデータD21(u)については、高さzは位置のz座標値を表している。右手向き高さ成分データD22(u)、及び、左手向き高さ成分データD23(u)については、高さzは、手の向きを表す単位ベクトルの高さ方向成分を表している。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける頭部の高さの推定結果に相当する頭部高さデータD24(u)が出力54として出力される。
なお、頭部の水平面上における位置(xy座標値)については、例えば、他の手法による推定(例えば、スケルトンモデル40の重心の位置を用いた推定)が行われるようにしてもよい。
[逐次的推定の一例]
また、本実施形態において、ルートノードである腰部ノード42gに近いノードから順に逐次的に各部位の推定が行われるようにしてもよい。例えば、図18に示すように、(1)腰部ノード42gの回転の推定、(2)腰部ノード42gの位置を基準とした頭部ノード42aの位置の推定、(3)胸部ノード42fの位置を基準とした頭部ノード42aの位置の推定、(4)胸部ノード42fの回転の推定、(5)左手首ノード42j及び右手首ノード42mの向きの推定、の順に実行されるようにしてもよい。
また、本実施形態において、ルートノードである腰部ノード42gに近いノードから順に逐次的に各部位の推定が行われるようにしてもよい。例えば、図18に示すように、(1)腰部ノード42gの回転の推定、(2)腰部ノード42gの位置を基準とした頭部ノード42aの位置の推定、(3)胸部ノード42fの位置を基準とした頭部ノード42aの位置の推定、(4)胸部ノード42fの回転の推定、(5)左手首ノード42j及び右手首ノード42mの向きの推定、の順に実行されるようにしてもよい。
以下、まずは、(1)腰部ノード42gの回転の推定について説明する。
図19は、腰部ノード42gの回転(Roll)の推定に用いられる機械学習モデルの学習の一例を示す図である。図20は、学習済の機械学習モデルを用いた腰部ノード42gの回転の推定の一例を示す図である。
図19に示す機械学習モデルの学習は、図12を参照して説明した機械学習モデルの学習における教師データとして、胸部の回転を示すデータの代わりに腰部の回転を示すデータを用いることにより可能であるため、その説明を省略する。当該教師データは、例えば、様々な動きをするユーザの頭部、右手、左手、右足、左足、腰部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
なお、図19に示すデータD25(s)~D31(s)は、図12に示すデータD9(s)~D15(s)と同様のデータである。また、図19に示すデータD32(t)は、最新のタイミング(t番目のタイミング)における腰部の回転の推定結果に相当する腰部回転データである。
また、図20に示す機械学習モデルによる推定は、図13を参照して説明した、胸部ノード42fの回転(Roll)の推定と同様の入力を行うことにより可能であるため、その説明を省略する。
なお、図20に示すデータD25(u)~D31(u)は、図12に示すデータD9(u)~D15(u)と同様のデータである。また、図20に示すデータD32(u)は、出力層52から出力54として出力される、腰部の回転の推定結果に相当する腰部回転データである。
次に、(2)腰部ノード42gの位置を基準とした頭部ノード42aの位置の推定について説明する。なお、頭部ノード42aの位置は、例えば、トラッカー12aの位置に基づいて推定可能である。そのため、腰部ノード42gの位置を基準とした頭部ノード42aの位置が推定されれば、結果的に、腰部ノード42gの位置が推定可能である。
図21は、腰部ノード42gの位置を基準とした頭部ノード42aの位置の推定に用いられる機械学習モデルの学習の一例を示す図である。図21に示すように、腰部ノード42gの位置を基準とした頭部ノード42aの位置の推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図21に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、腰部ノード42gの回転によりオフセットされた、(腰部ノード42gの回転を基準とした)、右手の向き、左手の向き、右手の位置を基準とした頭部の位置、左手の位置を基準とした頭部の位置、右足の位置を基準とした頭部の位置、及び、左足の位置を基準とした頭部の位置を示すt個の部位データ、及び、教師データを含む学習データが取得される。
ここでは例えば、当該教師データは、例えば、腰部(腰部ノード42g)の回転によりオフセットされた、腰部の位置を基準とした頭部の位置を示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、右手、左手、右足、左足、腰部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、上述したように、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、腰部ノード42gの回転によりオフセットされた右手の向きを示す右手向きデータD33、腰部ノード42gの回転によりオフセットされた左手の向きを示す左手向きデータD34、腰部ノード42gの回転によりオフセットされた、右手の位置を基準とした頭部の位置を示す右手基準頭部位置データD35、腰部ノード42gの回転によりオフセットされた、左手の位置を基準とした頭部の位置を示す左手基準頭部位置データD36、腰部ノード42gの回転によりオフセットされた、右足の位置を基準とした頭部の位置を示す右足基準頭部位置データD37、腰部ノード42gの回転によりオフセットされた、及び、左足の位置を基準とした頭部の位置を示す左足基準頭部位置データD38が含まれていることとする。
ここでは例えば、上述したものと同様に、対応付けられるタイミングがs番目に古い、データD33~D38がそれぞれD33(s)~D38(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図21に示すように、右手向きデータD33(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、右手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。左手向きデータD34(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
また、右手基準頭部位置データD35(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、右手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。左手基準頭部位置データD36(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、左手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
また、右足基準頭部位置データD37(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、右足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。左足基準頭部位置データD38(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、左足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
本実施形態では、入力層44に、以上の18個の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における、腰部(腰部ノード42g)の回転によりオフセットされた、腰部の位置を基準とした頭部の位置の推定結果に相当する腰部基準頭部位置データD39(t)が出力54として出力される。図21に示すように、腰部基準頭部位置データD39(t)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、腰部の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
なお、上述の教師データにも、例えば、腰部基準頭部位置データD39(t)と同様に、腰部(腰部ノード42g)の回転によりオフセットされた、腰部の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する3個の要素が含まれている。
そして本実施形態では例えば、推定結果を示す腰部基準頭部位置データD39(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す腰部基準頭部位置データD39(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、腰部(腰部ノード42g)の回転によりオフセットされた、腰部の位置を基準とした頭部の位置の推定が実行される。
図22は、学習済の機械学習モデルを用いた、腰部ノード42gの位置を基準とした頭部ノード42aの位置の推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12の位置及び向きを示すデータに基づいて、部位データが生成されることとする。当該部位データには、腰部ノード42gの回転によりオフセットされた右手の向きを示す右手向きデータD33、腰部ノード42gの回転によりオフセットされた左手の向きを示す左手向きデータD34、腰部ノード42gの回転によりオフセットされた、右手の位置を基準とした頭部の位置を示す右手基準頭部位置データD35、腰部ノード42gの回転によりオフセットされた、左手の位置を基準とした頭部の位置を示す左手基準頭部位置データD36、腰部ノード42gの回転によりオフセットされた、右足の位置を基準とした頭部の位置を示す右足基準頭部位置データD37、及び、腰部ノード42gの回転によりオフセットされた、左足の位置を基準とした頭部の位置を示す左足基準頭部位置データD38が含まれていることとする。また、上述のように、本実施形態では例えば、部位データが繰り返し生成される。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図22には、最新の部位データに含まれるデータD33~D38がそれぞれD33(u)~D38(u)と表現されている。
上述のように、右手向きデータD33(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、右手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。左手向きデータD34(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
また、右手基準頭部位置データD35(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、右手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。左手基準頭部位置データD36(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、左手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
また、右足基準頭部位置データD37(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、右足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。左足基準頭部位置データD38(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、左足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける、腰部(腰部ノード42g)の回転によりオフセットされた、腰部の位置を基準とした頭部の位置の推定結果に相当する腰部基準頭部位置データD39(u)が出力54として出力される。
次に、(3)胸部ノード42fの位置を基準とした頭部ノード42aの位置の推定について説明する。なお、頭部ノード42aの位置は、例えば、トラッカー12aの位置に基づいて推定可能である。そのため、胸部ノード42fの位置を基準とした頭部ノード42aの位置が推定されれば、結果的に、胸部ノード42fの位置が推定可能である。
図23は、胸部ノード42fの位置を基準とした頭部ノード42aの位置の推定に用いられる機械学習モデルの学習の一例を示す図である。図24は、学習済の機械学習モデルを用いた胸部ノード42fの位置を基準とした頭部ノード42aの位置の推定の一例を示す図である。
図23に示す機械学習モデルの学習は、図21を参照して説明した機械学習モデルの学習における教師データとして、腰部(腰部ノード42g)の回転によりオフセットされた、腰部の位置を基準とした頭部の位置を示すデータの代わりに、腰部(腰部ノード42g)の回転によりオフセットされた、胸部の位置を基準とした頭部の位置を示すデータを用いることにより可能であるため、その説明を省略する。当該教師データは、例えば、様々な動きをするユーザの頭部、右手、左手、右足、左足、腰部、胸部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
なお、図23に示すデータD40(s)~D45(s)は、図21に示すデータD33(s)~D38(s)と同様のデータである。また、図23に示すデータD46(t)は、最新のタイミング(t番目のタイミング)における、腰部(腰部ノード42g)の回転によりオフセットされた、胸部の位置を基準とした頭部の位置の推定結果に相当する胸部基準頭部位置データである。
また、図24に示す機械学習モデルによる推定は、図22を参照して説明した、腰部ノード42gの位置を基準とした頭部ノード42aの推定と同様の入力を行うことにより可能であるため、その説明を省略する。
なお、図24に示すデータD40(u)~D45(u)は、図22に示すデータD33(u)~D38(u)と同様のデータである。データD40(u)~D45(u)は、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされたデータである。また、図24に示すデータD46(u)は、出力層52から出力54として出力される、腰部(腰部ノード42g)の回転によりオフセットされた、胸部の位置を基準とした頭部の位置の推定結果に相当する胸部基準頭部位置データである。
次に、(4)胸部ノード42fの回転の推定について説明する。
図25は、胸部ノード42fの回転の推定に用いられる機械学習モデルの学習の一例を示す図である。図25に示すように、胸部ノード42fの回転の推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図25に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、腰部ノード42gの回転によりオフセットされた(腰部ノード42gの回転を基準とした)、右手の向き、左手の向き、右手の位置を基準とした胸部の位置、及び、左手の位置を基準とした胸部の位置を示すt個の部位データ、及び、教師データを含む学習データが取得される。
ここでは例えば、当該教師データは、例えば、胸部の回転を示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、右手、左手、腰部、胸部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、上述したように、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、腰部ノード42gの回転によりオフセットされた右手の向きを示す右手向きデータD47、腰部ノード42gの回転によりオフセットされた左手の向きを示す左手向きデータD48、腰部ノード42gの回転によりオフセットされた、右手の位置を基準とした胸部の位置を示す右手基準胸部位置データD49、及び、腰部ノード42gの回転によりオフセットされた、左手の位置を基準とした胸部の位置を示す左手基準胸部位置データD50が含まれていることとする。
ここでは例えば、上述したものと同様に、対応付けられるタイミングがs番目に古い、データD47~D50がそれぞれD47(s)~D50(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図25に示すように、右手向きデータD47(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、右手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。左手向きデータD48(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
また、右手基準胸部位置データD49(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、右手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。また、左手基準胸部位置データD50(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部(腰部ノード42g)の回転によりオフセットされた、左手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。
本実施形態では、入力層44に、以上の12個の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における胸部の回転の推定結果に相当する胸部回転データD51(t)が出力54として出力される。図25に示すように、胸部回転データD51(t)には、1個の要素(ロール角(Roll))が含まれている。当該ロール角は例えば、上述の基準の向きに対するロール角に相当する。
なお、上述の教師データにも、例えば、胸部回転データD51(t)と同様に、1個の要素(ロール角(Roll))が含まれている。なお、Rollの値は、-2π~2πの範囲をとるよう調整された実数であってもよい。
そして本実施形態では例えば、推定結果を示す胸部回転データD51(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す胸部回転データD51(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、胸部の回転の推定が実行される。
図26は、学習済の機械学習モデルを用いた、胸部ノード42fの回転の推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12の位置及び向きを示すデータに基づいて、部位データが生成されることとする。当該部位データには、腰部ノード42gの回転によりオフセットされた右手の向きを示す右手向きデータD47、腰部ノード42gの回転によりオフセットされた左手の向きを示す左手向きデータD48、腰部ノード42gの回転によりオフセットされた、右手の位置を基準とした胸部の位置を示す右手基準胸部位置データD49、及び、腰部ノード42gの回転によりオフセットされた、左手の位置を基準とした胸部の位置を示す左手基準胸部位置データD50が含まれていることとする。また、上述のように、本実施形態では例えば、部位データが繰り返し生成される。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図26には、最新の部位データに含まれるデータD47~D50がそれぞれD47(u)~D50(u)と表現されている。
上述のように、右手向きデータD47(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、右手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。左手向きデータD48(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
また、右手基準胸部位置データD49(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、右手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。また、左手基準胸部位置データD50(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(1)の処理で推定された腰部(腰部ノード42g)の回転によりオフセットされた、左手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける、胸部の回転の推定結果に相当する胸部回転データD51(u)が出力54として出力される。
次に、(5)左手首ノード42j及び右手首ノード42mの向きの推定について説明する。
図27は、左手首ノード42jの向きの推定に用いられる機械学習モデルの学習の一例を示す図である。図27に示すように、左手首ノード42jの向きの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図27に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、胸部ノード42fの回転によりオフセットされた(胸部ノード42fの回転を基準とした)、左手の位置を基準とした胸部の位置、及び、左手の向きを示すt個の部位データ、及び、教師データを含む学習データが取得される。
ここでは例えば、当該教師データは、例えば、左手首の向きを示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの左手、左手首、胸部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、上述したように、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、胸部ノード42fの回転によりオフセットされた、左手の位置を基準とした胸部の位置を示す左手基準胸部位置データD52、及び、胸部ノード42fの回転によりオフセットされた左手の向きを示す左手向きデータD53が含まれていることとする。
ここでは例えば、上述したものと同様に、対応付けられるタイミングがs番目に古い、データD52、D53がそれぞれD52(s)、D53(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図27に示すように、左手基準胸部位置データD52(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。また、左手向きデータD53(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部(胸部ノード42f)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
本実施形態では、入力層44に、以上の6個の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における左手首の向きの推定結果に相当する左手首向きデータD54(t)が出力54として出力される。図27に示すように、左手首向きデータD54(t)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部(胸部ノード42f)の回転によりオフセットされた、左手首の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
なお、上述の教師データにも、例えば、左手首向きデータD54(t)と同様に、胸部(胸部ノード42f)の回転によりオフセットされた、左手首の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する3個の要素が含まれている。
そして本実施形態では例えば、推定結果を示す左手首向きデータD54(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す左手首向きデータD54(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、左手首の向きの推定が実行される。
図28は、学習済の機械学習モデルを用いた左手首の向きの推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12の位置及び向きを示すデータに基づいて、部位データが生成されることとする。当該部位データには、胸部ノード42fの回転によりオフセットされた左手の位置を基準とした胸部の位置を示す左手基準胸部位置データD52、及び、胸部ノード42fの回転によりオフセットされた左手の向きを示す左手向きデータD53が含まれていることとする。また、上述のように、本実施形態では例えば、部位データが繰り返し生成される。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図28には、最新の部位データに含まれるデータD52、D53がそれぞれD52(u)、D53(u)と表現されている。
上述のように、左手基準胸部位置データD52(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(4)の処理で推定された胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした胸部の位置のx座標値、y座標値、z座標値に相当する。また、左手向きデータD53(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、上記(4)の処理で推定された胸部(胸部ノード42f)の回転によりオフセットされた、左手の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける、左手首の向きの推定結果に相当する左手首向きデータD54(u)が出力54として出力される。
なお同様の方法により、右手首ノード42mの向きの推定も可能である。
[着座姿勢にあるか立ち姿勢にあるかの推定の一例]
また、本実施形態では、ユーザが着座姿勢にあるか立ち姿勢にあるかによって別々の学習済の機械学習モデルが用意されていてもよい。
また、本実施形態では、ユーザが着座姿勢にあるか立ち姿勢にあるかによって別々の学習済の機械学習モデルが用意されていてもよい。
ここで学習済の機械学習モデルを用いてユーザが着座姿勢にあるか立ち姿勢にあるかが推定されてもよい。そして当該推定の結果に基づいて選択される機械学習モデルを用いて上述した部位の位置や向きなどの推定が実行されるようにしてもよい。
図29は、ユーザが着座姿勢にあるか立ち姿勢にあるかの推定に用いられる機械学習モデルの学習の一例を示す図である。図29に示すように、ユーザが着座姿勢にあるか立ち姿勢にあるかの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図29に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、腰部(腰部ノード42g)の回転によりオフセットされた(腰部の向きを基準とした)、頭部の向き、右足の位置を基準とした頭の位置、左足の位置を基準とした頭の位置を示す部位データを複数含む学習データが取得される。
ここで例えば、例えば、頭部、右足、左足、腰部のそれぞれにトラッカー12を装着したユーザが着座姿勢で様々な動きをした際の、これらのトラッカー12から出力されるセンシングデータに基づいて、着座姿勢に対応する一連の部位データが生成されてもよい。また例えば、着座姿勢で様々な動きをするユーザを外部のカメラから撮影した動画像に基づいて、着座姿勢に対応する一連の部位データが生成されてもよい。また、このような動画像を見ているオペレータによる操作に基づいて、着座姿勢に対応する一連の部位データが生成されてもよい。
そして例えば、上述の着座姿勢に対応する一連の部位データと、値に1が設定された教師データと、を含む学習データが生成されてもよい。
また例えば、頭部、右足、左足、腰部のそれぞれにトラッカー12を装着したユーザが立ち姿勢で様々な動きをした際の、これらのトラッカー12から出力されるセンシングデータに基づいて、立ち姿勢に対応する一連の部位データが生成されてもよい。また例えば、立ち姿勢で様々な動きをするユーザを外部のカメラから撮影した、t個のフレームを含む動画像に基づいて、立ち姿勢に対応する一連の部位データが生成されてもよい。また、このような動画像を見ているオペレータによる操作に基づいて、立ち姿勢に対応する一連の部位データが生成されてもよい。
そして例えば、上述の立ち姿勢に対応する一連の部位データと、値に0が設定された教師データと、を含む学習データが生成されてもよい。
そして、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、腰部の回転によりオフセットされた、頭部の向きを示す頭部向きデータD55、腰部の回転によりオフセットされた、右足の位置を基準とした頭部の位置を示す右足基準頭部位置データD56、及び、腰部の回転によりオフセットされた、左足の位置を基準とした頭部の位置を示す左足基準頭部位置データD57が含まれていることとする。
ここでは例えば、対応付けられるタイミングがs番目に古い頭部向きデータがD55(s)と表現されている。また、対応付けられるタイミングがs番目に古い右足基準頭部位置データがD56(s)と表現されている。また、対応付けられるタイミングがs番目に古い左足基準頭部位置データがD57(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図29に示すように、頭部向きデータD55(s)には、それぞれ、x、y、zといった、3個の要素が含まれている。当該3個の要素は、それぞれ、腰部の回転によりオフセットされた、頭部の向きを表すベクトルのx座標値、y座標値、z座標値に相当する。ここで胸部の回転によりオフセットされた、頭部の向きを表すベクトルは、例えば、胸部の回転によりオフセットされた、頭部(頭部ノード42a)の向き(例えば頭部における視線方向)を表す単位ベクトルであってもよい。なお、スケルトンモデル40に、さらに、首に相当する首ノードが含まれる場合に、胸部の回転によりオフセットされた、頭部の向きを表すベクトルが、首(首ノード)の位置を基準とした頭部(頭部ノード42a)の位置を表すベクトルであってもよい。ここで、首ノードは、例えば、頭部ノード42aと胸部ノード42fの間にあり、頭部ノード42a及び胸部ノード42fとリンクを介して接続されたノードであってもよい。この場合、学習データに含まれる部位データは、頭部、右足、左足、腰部、首のそれぞれにトラッカー12を装着したユーザが様々な動きをした際の、これらのトラッカー12から出力されるセンシングデータに基づいて、生成されてもよい。
また、右足基準頭部位置データD56(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部の回転によりオフセットされた、右足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
また、左足基準頭部位置データD57(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部の回転によりオフセットされた、左足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
本実施形態では、入力層44に、9個(3×3)の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における、ユーザが着座姿勢にあるか立ち姿勢にあるかの推定結果に相当する着座確率データD58(t)が出力54として出力される。着座確率データは、例えば0以上1以下の実数で表現されるデータである。着座確率データの値が大きいほど、ユーザが着座姿勢にある可能性が高く、着座確率データの値が小さいほど、ユーザが着座姿勢にある可能性が低い。
そして本実施形態では例えば、推定結果を示す着座確率データD58(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す着座確率データD58(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、当該t個の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば着座姿勢に対応する互いに異なる複数の学習データ、及び、立ち姿勢に対応する互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、ユーザが着座姿勢にあるか立ち姿勢にあるかの推定が実行される。
図30は、学習済の機械学習モデルを用いた、ユーザが着座姿勢にあるか立ち姿勢にあるかの推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12の位置及び向きを示すデータに基づいて、部位データが生成されることとする。
上述のように、部位データには、腰部の回転によりオフセットされた、頭部の向きを示す頭部向きデータD55、腰部の回転によりオフセットされた、右足の位置を基準とした頭部の位置を示す右足基準頭部位置データD56、及び、腰部の回転によりオフセットされた、左足の位置を基準とした頭部の位置を示す左足基準頭部位置データD57が含まれていることとする。また、上述のように、本実施形態では例えば、部位データが繰り返し生成される。なお、頭部向きデータD55が、首(首ノード)の位置を基準とした頭部(頭部ノード42a)の位置を表すベクトルである場合は、首ノード及び頭部ノード42aの最新の位置に基づいて、頭部向きデータD55が生成されてもよい。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図30には、最新の部位データに含まれる頭部向きデータがD55(u)と表現されている。また、最新の部位データに含まれる右足基準頭部位置データがD56(u)と表現されている。また、最新の部位データに含まれる左足基準頭部位置データがD57(u)と表現されている。
上述のように、頭部向きデータD55(u)には、それぞれ、x、y、zといった、3個の要素が含まれている。当該3個の要素は、それぞれ、腰部の回転によりオフセットされた、頭部の向きを表すベクトルのx座標値、y座標値、z座標値に相当する。
また、右足基準頭部位置データD56(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部の回転によりオフセットされた、右足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
また、左足基準頭部位置データD57(u)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、腰部の回転によりオフセットされた、左足の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける、ユーザが着座姿勢にあるか立ち姿勢にあるかの推定結果に相当する着座確率データD58(u)が出力54として出力される。
ここで例えば、着座確率データD58(u)の値が0.5以上である場合に、ユーザが着座姿勢であると推定し、そうでない場合に、ユーザが立ち姿勢であると推定されてもよい。
そして、当該推定の結果に基づいて選択される学習済の機械学習モデルを用いて、上述した部位の位置や向きの推定が実行されるようにしてもよい。
なお、機械学習モデルを用いて、ユーザが着座姿勢であるか立ち姿勢であるかが推定される必要はない。例えば、作成された所与のロジックを用いてユーザが着座姿勢であるか立ち姿勢であるかが推定されてもよい。
また、右手基準頭部位置データD14の値、左手基準頭部位置データD15の値、左手基準胸部位置データD17の値、右手高さデータD20の値、左手高さデータD21の値、右手基準頭部位置データD30の値、左手基準頭部位置データD31の値、右手基準頭部位置データD35の値、左手基準頭部位置データD36の値、右足基準頭部位置データD37の値、左足基準頭部位置データD38の値、右手基準頭部位置データD42の値、左手基準頭部位置データD43の値、左足基準頭部位置データD44の値、右足基準頭部位置データD45の値、右手基準胸部位置データD49の値、左手基準胸部位置データD50の値、左手基準胸部位置データD52の値、右足基準頭部位置データD56の値、及び、左足基準頭部位置データD57の値として、身体サイズを基準とした相対値、すなわち、トラッカー12が備えるセンサによる計測結果に基づいて算出される値を身体サイズで割った値が用いられてもよい。
[身体サイズの推定の一例]
ここで身体サイズは、ユーザにより予め入力されたものであってもよいし、例えば、以下のようにして、上述の推定が行われる度に、トラッカー12の位置に基づいて逐次推定されるものであってもよい。
ここで身体サイズは、ユーザにより予め入力されたものであってもよいし、例えば、以下のようにして、上述の推定が行われる度に、トラッカー12の位置に基づいて逐次推定されるものであってもよい。
ここで、本実施形態に係るエンタテインメント装置14で行われる身体サイズ推定処理の流れの一例を、図31に例示するフロー図、及び、図32に示す模式図を参照しながら説明する。図32は、ユーザがゲームをプレイしている様子の一例を示す模式図である。本処理例では、以下のS301~S313に示す処理が所定のサンプリングレートで繰り返し実行される。本処理例に示す処理は、例えば、上述の各種の推定処理が実行される直前に実行されるようにしてもよい。また以下の説明では、ユーザの前後方向がX軸方向であり、左右方向がY軸方向であり、高さ方向がZ軸方向であることとする。
また、以下の説明では、図32に示すように、S201に示す処理で取得された姿勢データが示すトラッカー12a、トラッカー12b、トラッカー12c、トラッカー12d、トラッカー12eの位置をそれぞれT1、T2、T3、T4、T5と表現する。
また、以下の説明では、姿勢データ記憶部82に、ユーザの身体サイズを示す身体サイズデータが記憶されていることとする。ここで例えば身体サイズデータの初期値として所定値が設定されるようにしてもよい。あるいは、身体サイズデータの初期値としてユーザの年齢に応じた値が設定されるようにしてもよい。後述のように身体サイズデータが示す身体サイズは次第に大きくなるよう当該身体サイズデータは更新されていくので、身体サイズデータの初期値としては、ユーザの一般的な身体サイズを示す値よりも少し小さな値が設定されるようにすることが望ましい。
なお、姿勢データ記憶部82は、ユーザの身長を示す身長データを記憶してもよい。また、姿勢データ記憶部82は、ユーザの腕の長さを示す腕長さデータを記憶してもよい。また、姿勢データ記憶部82は、ユーザの左右方向の身体サイズを示す左右身体サイズデータを記憶してもよい。
まず、エンタテインメント装置14は、位置T1のz座標値h1に所定のオフセット値loを加えた値を頭頂部のz座標値htとして算出する(S301)。
そしてエンタテインメント装置14は、位置T4のz座標値と位置T5のz座標値との差が所定の閾値t1以下であるか否かを確認する(S302)。
位置T4のz座標値と位置T5のz座標値との差が閾値t1以下であることが確認された場合は(S302:Y)、エンタテインメント装置14は、位置T4のz座標値と位置T5のz座標値の平均値であるz座標値h4を算出する(S303)。
そしてエンタテインメント装置14は、S301に示す処理で算出された頭頂部のz座標値htとS303に示す処理で算出されたz座標値h4との差を、身長の推定値ltとして算出する(S304)。
そしてエンタテインメント装置14は、S304に示す処理で算出された身体サイズの推定値ltが、姿勢データ記憶部82に記憶されている身長データが示す身長の値よりも大きいか否かを確認する(S305)。
値ltが姿勢データ記憶部82に記憶されている身長データが示す身長の値よりも大きいことが確認されたとする(S305:Y)。この場合は、エンタテインメント装置14は、S304に示す処理で算出された身体サイズの推定値ltを示すよう姿勢データ記憶部82に記憶されている身長データを更新する(S306)。
そしてエンタテインメント装置14は、ユーザの肩の位置を推定する(S307)。ここでは例えば、位置T1を示す値に所定のオフセット値psroを加えることで右肩の位置psrを示す値が推定されるようにしてもよい。また例えば、位置T1を示す値に別の所定のオフセット値psloを加えることで左肩の位置pslを示す値が推定されるようにしてもよい。なお、S303に示す処理で位置T4のz座標値と位置T5のz座標値との差が閾値t1以下でないことが確認された場合も(S302:N)、S307に示す処理が実行される。この場合は、位置T4を示す値や位置T5を示す値がエラーに基づく異常値である可能性が高いため、S303~S306に示す処理がスキップされる。また、S305に示す処理で値ltが姿勢データ記憶部82に記憶されている身長データが示す身長の値よりも大きくないことが確認された場合も(S305:N)、S307に示す処理が実行される。
そしてエンタテインメント装置14は、S307に示す処理で推定された右肩の位置psrと左肩の位置pslとの間の長さを肩幅lsとして算出する(S308)。
そしてエンタテインメント装置14は、位置T2と位置pslとの間の長さと、位置T3と位置psrとの間の長さと、の差が所定の閾値t2以下であるか否かを確認する(S309)。
位置T2と位置pslとの間の長さla1と、位置T3と位置psrとの間の長さla2と、の差が所定の閾値t2以下であることが確認されたとする(S309:Y)。この場合は、エンタテインメント装置14が、位置T2と位置psrとの間の長さla1を示す値と位置T3と位置pslとの間の長さla2を示す値との平均値を腕の長さの推定値laとして算出する(S310)。
そしてエンタテインメント装置14が、S310に示す処理で算出された推定値laが、姿勢データ記憶部82に記憶されている腕長さデータが示す腕の長さの値よりも大きいか否かを確認する(S311)。
値laが姿勢データ記憶部82に記憶されている腕長さデータの値よりも大きいことが確認されたとする(S311:Y)。この場合は、エンタテインメント装置14は、S310に示す処理で算出された腕の長さの推定値laを示すよう姿勢データ記憶部82に記憶されている腕長さデータを更新する(S312)。
そしてエンタテインメント装置14が、腕長さデータの値の2倍と上述の肩幅lsの値との和を示すよう姿勢データ記憶部82に記憶されている左右身体サイズデータを更新する(S313)。そして、S301に示す処理に戻る。
例えば、上述の各種のデータの値として、トラッカー12が備えるセンサによる計測結果に基づいて算出される値を、姿勢データ記憶部82に記憶されている、身長サイズデータの値、腕長さデータの値、又は、左右身体サイズデータの値のいずれかで割った値が用いられてもよい。
[足の位置の決定の一例]
また本実施形態において、ユーザが、左足と右足のそれぞれにトラッカー12d及びトラッカー12eを装着しなくてもよい。そして、機械学習モデルを用いて、左足ノード42dの位置及び向き、並びに、右足ノード42eの位置及び向きが決定されるようにしてもよい。
また本実施形態において、ユーザが、左足と右足のそれぞれにトラッカー12d及びトラッカー12eを装着しなくてもよい。そして、機械学習モデルを用いて、左足ノード42dの位置及び向き、並びに、右足ノード42eの位置及び向きが決定されるようにしてもよい。
この場合、例えば、図11に示すS201に示す処理において、姿勢データ取得部80が、トラッカー12a~12cのそれぞれについての、当該トラッカー12の位置及び向きを示す姿勢データを取得する。
そして、これらの姿勢データに基づいて、最新のタイミングにおける左足ノード42dの位置及び向き、及び、右足ノード42eの位置及び向きが決定される。
そして、S202に示す処理で、取得された姿勢データ及び、決定された左足ノード42dの位置及び向き、及び、決定された右足ノード42eの位置及び向きに基づいて、部位データが生成される。
以後、このようにして生成される部位データに基づいて、S203~S209に示す処理が実行される。なお、S209に示す処理では、左足ノード42dと右足ノード42eの位置及び向きは決定されない。
そして、S210における逆運動学によるノード42の位置及び向きの推定では、左足ノード42dと右足ノード42eの位置及び向きとして、トラッカー12a~12cのそれぞれについての姿勢データに基づいて上述のようにして決定されたものが用いられる。
本実施形態において以上のようにすれば、ユーザは足にトラッカーを装着することなく全身のボディトラッキングを行えることとなる。そのため、全身のボディトラッキングを行う際に、ユーザは、煩わしい足へのトラッカーの装着を行う必要がなくなる。また、ユーザが足にトラッカーを装着することなくユーザの全身のモーションを的確に表現できることとなる。
以下、機械学習モデルを用いた、左足ノード42dの位置及び向き、並びに、右足ノード42eの位置及び向きの決定について、さらに説明する。
本実施形態では上述のように、所定のサンプリングレートでトラッカーの位置及び向きの特定が行われる。以下の説明では、所定のサンプリングレートでトラッカー12a~12cのそれぞれについて、当該トラッカー12の位置及び向きの特定が行われることとする。そして、トラッカー12a~12cの位置及び向きの特定に応じて、上述のS201~S210に示すような、1サイクルにおけるスケルトンモデル40に含まれるすべてのノード42についての位置及び向きの推定が実行される。
ここで本実施形態では、上述のS201の処理において、トラッカー12a~12cによって生成される最新の特定タイミングにおける当該トラッカー12の位置及び向きを示す姿勢データが姿勢データ記憶部82に記憶された後に、左足ノード42dと右足ノード42eについての位置及び向きの決定処理が実行される。
当該決定処理には、例えば、(1)動作足特定処理、(2)足姿勢決定処理、(3)仮水平方向位置推定処理、(4)仮高さ推定処理、及び、(5)足位置更新処理が含まれる。以下、それぞれの処理について説明する。
(1)動作足特定処理
人間は、通常、左足と右足とを同時に動作させることはない。このことを踏まえ、本実施形態では例えば、予め、左足、又は、右足のいずれか一方が動作足に設定され、他方が非動作足に設定される。ここでは例えば、初期状態では、左足が動作足に設定されることとする。
そして、本実施形態では例えば、ユーザの頭部に装着されたトラッカー12aの速度の方向及び大きさが特定される。ここでは例えば、直前のタイミングにおけるトラッカー12aの位置を示すデータの値と当該タイミングにおける位置を示すデータの値との差分を、直前のタイミングから当該タイミングまでの経過時間で割った値が、速度を示す値として用いられる。
そして、特定される速度の大きさが所定の閾値を超えているか否かが判定される。特定される速度の大きさが所定の閾値を超えている場合は、当該速度の方向がユーザの左足方向であるか右足方向であるかが特定される。
例えば、図33に示すように、胸部ノード42fの向きや頭部ノード42aの向きを基準として、矢印v1に示すように頭部の速度の方向が左足側の方向であれば、当該速度の方向が左足方向であると特定される。一方、矢印v2に示すように頭部の速度の方向が右足側の方向であれば、当該速度の方向が右足方向であると特定される。
そして、速度の方向が左足方向であると特定される場合は、左足が動作足に決定される。速度の方向が右足方向であると特定される場合は、右足が動作足に決定される。
一般的に、人間は動作させる足の方向に頭部が動く。このことを踏まえて上述のようにして動作足を特定することで、本実施形態では、動作足を的確に特定できることとなる。
一方、特定される速度の大きさが所定の閾値以下である場合は、直前のタイミング(例えば直前のサイクル)の(5)足位置更新処理において決定された動作足の位置と、(3)仮水平方向位置推定処理、及び、(4)仮高さ推定処理において推定された動作足の仮位置と、の間の距離が特定される。動作足の位置の決定や仮位置の推定については後述する。そして、特定された距離が所定距離(例えば、1センチメートル)以下である場合は、動作足又は非動作足の一方が他方に変更されるとともに、他方が一方に変更される。例えば、動作足が右足である場合は、右足が非動作足に変更され、左足が動作足に変更される。逆に、動作足が左足である場合は、左足が非動作足に変更され、右足が動作足に変更される。
一般的に、人間は例えば歩行している際には左右の足を交互に動かす。このとき、交互に動かす左右の足は加速と減速とを繰り返す。このことを踏まえて上述のようにして動作足を特定することで、本実施形態では、動作足を的確に特定できることとなる。
以上のようにして、トラッカー12aの速度に基づく動作足の特定が行われる。
(2)足姿勢決定処理
本実施形態では例えば、直前のタイミング(例えば直前のサイクル)において推定された胸部ノード42f又は腰部ノード42gの向きの鉛直方向(Z方向)を軸とした回転成分が、左足、及び、右足の向きの鉛直方向(Z方向)を軸とした回転成分として決定される。
そして、直前のタイミングにおいて決定された、胸部ノード42f又は腰部ノード42gを通る鉛直方向(Z方向)に延伸する線から左足の位置までの距離に基づいて、左足の向きの、胸部ノード42f又は腰部ノード42gの向きを正面とした際の左右水平方向(XY平面上の線)を軸とした回転成分が決定される。ここで例えば、当該距離が長いほど大きくなるよう当該回転成分の大きさが決定されてもよい。
また、同様にして、胸部ノード42f又は腰部ノード42gを通る鉛直方向(Z方向)に延伸する線から右足の位置までの距離に基づいて、右足の向きの、胸部ノード42f又は腰部ノード42gの向きを正面とした際の左右水平方向(XY平面上の線)を軸とした回転成分が決定される。ここで例えば、当該距離が長いほど大きくなるよう当該回転成分の大きさが決定されてもよい。
以上のようにして、左足、及び、右足の向きが決定される。
(3)仮水平方向位置推定処理
本実施形態では、機械学習モデルを用いて、左足及び右足の水平面上における仮の位置(xy座標値)(以下、仮水平方向位置と呼ぶ。)を推定する仮水平方向位置推定処理が実行される。
図34は、左足及び右足の仮水平方向位置の推定に用いられる機械学習モデルの学習の一例を示す図である。図34に示すように、左足及び右足の仮水平方向位置の推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、図34に示す機械学習モデルの学習において、それぞれ互いに異なるタイミングに対応付けられる、当該タイミングにおける、頭部の高さ、胸部ノード42fの回転によりオフセットされた頭部の向き、胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした頭部の位置、及び、胸部の回転によりオフセットされた、右手の位置を基準とした頭部の位置を示すt個の部位データ、及び、教師データを含む学習データが取得される。
ここでは例えば、当該教師データは、例えば、胸部の回転によりオフセットされた、頭部の位置を基準とした左足の仮水平方向位置、及び、胸部の回転によりオフセットされた、頭部の位置を基準とした右足の仮水平方向位置を示すデータであってもよい。そして当該教師データは、例えば、様々な動きをするユーザの頭部、左手、右手、左足、右足、胸部のそれぞれに装着されたトラッカー12から出力されるセンシングデータや、様々な動きをするユーザを外部のカメラから撮影したt個のフレームを含む動画像、などに基づいて、上述と同様にして生成されてもよい。
そして、上述したように、入力層44に、対応付けられるタイミングが古いものから順次、当該学習データに含まれる部位データが入力される。ここでは例えば、部位データには、頭部の高さを示す頭部高さデータD59、胸部の回転によりオフセットされた頭部の向きを示す頭部向きデータD60、胸部の回転によりオフセットされた、左手の位置を基準とした頭部の位置を示す左手基準頭部位置データD61、及び、胸部の回転によりオフセットされた、右手の位置を基準とした頭部の位置を示す右手基準頭部位置データD62が含まれていることとする。
ここでは例えば、上述したものと同様に、対応付けられるタイミングがs番目に古い、データD59~D62がそれぞれD59(s)~D62(s)と表現されている。ここで値sは、1以上t以下の整数である。
また本実施形態では図34に示すように、頭部高さデータD59(s)には、それぞれ、1つの要素zが含まれている。当該要素zは、頭部の位置のz座標値から基準位置のz座標値を引いた値に相当する。ここで、基準位置が、例えば、床の位置に相当する所定の位置であってもよい。また、基準位置が、左足の位置、右足の位置、又は、左足の位置と右足の位置との中点の位置、などであってもよい。
また本実施形態では図34に示すように、頭部向きデータD60(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部の回転によりオフセットされた、頭部の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
また本実施形態では図34に示すように、左手基準頭部位置データD61(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部の回転によりオフセットされた、左手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。また、右手基準頭部位置データD62(s)には、それぞれ、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部の回転によりオフセットされた、右手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
本実施形態では、入力層44に、以上の10個の要素を含む部位データが入力されることとなる。
そして上述したように、最終的には、出力層52からは、最新のタイミング(t番目のタイミング)における、頭部の位置を基準とした左足の仮水平方向位置の推定結果に相当する左足仮水平方向位置データD63(t)、及び、最新のタイミング(t番目のタイミング)における、頭部の位置を基準とした右足の仮水平方向位置の推定結果に相当する右足仮水平方向位置データD64(t)が出力54として出力される。図34に示すように、左足仮水平方向位置データD63(t)には、x、yといった2個の要素が含まれている。当該2個の要素は、それぞれ、胸部の回転によりオフセットされた、頭部の位置を基準とした左足の位置のx座標値、y座標値に相当する。図34に示すように、右足仮水平方向位置データD64(t)には、x、yといった2個の要素が含まれている。当該2個の要素は、それぞれ、胸部の回転によりオフセットされた、頭部の位置を基準とした右足の位置のx座標値、y座標値に相当する。
そして本実施形態では例えば、推定結果を示す左足仮水平方向位置データD63(t)、及び、右足仮水平方向位置データD64(t)に基づいて、中間ブロック46、第1中間層48、第2中間層50、出力層52の学習が実行される。ここで例えば、上述の一連の部位データを含む学習データに含まれる教師データと推定結果を示す左足仮水平方向位置データD63(t)、及び、右足仮水平方向位置データD64(t)との差が特定されてもよい。そして特定される差に基づいて、中間ブロック46、第1中間層48、第2中間層50、及び、出力層52のパラメータの値が更新される教師あり学習が実行されてもよい。
本実施形態では例えば、1番目の部位データからt番目の部位データまでのt個の部位データを含む学習データによる学習が行われる。ここで例えば、1番目の部位データからt番目の部位データまでのt個の部位データ、及び、t番目の部位データに対応付けられる上述の教師データ、を含む学習データによる学習が行われてもよい。そして例えば互いに異なる複数の学習データによる学習が行われた学習済の機械学習モデルを用いて、左足及び右足の仮水平方向位置の推定が実行される。
図35は、学習済の機械学習モデルを用いた左足及び右足の仮水平方向位置の推定の一例を示す図である。
ここでは例えば、送信されるトラッカー12a~12cの位置及び向きを示すデータに基づいて、部位データが生成されることとする。当該部位データには、頭部の高さを示す頭部高さデータD59、胸部の回転によりオフセットされた頭部の向きを示す頭部向きデータD60、胸部の回転によりオフセットされた、左手の位置を基準とした頭部の位置を示す左手基準頭部位置データD61、及び、胸部の回転によりオフセットされた、右手の位置を基準とした頭部の位置を示す右手基準頭部位置データD62が含まれていることとする。上述のように、本実施形態では例えば、部位データが繰り返し生成される。
そして本実施形態では例えば、入力層44に、最新の部位データ(最後に生成された部位データ)が入力される。図35には、最新の部位データに含まれるデータD59~D62がそれぞれD59(u)~D62(u)と表現されている。
上述のように、頭部高さデータD59(u)には、1つの要素zが含まれている。当該要素zは、頭部の位置のz座標値から基準位置のz座標値を引いた値に相当する。ここで、基準位置とは、上述のように、例えば、床の位置に相当する所定の位置であってもよい。また、基準位置が、後述のようにして最新のタイミングの直前のタイミングにおいて(5)足位置更新処理で決定された左足の位置、当該直前のタイミングにおいて(5)足位置更新処理で決定された右足の位置、又は、当該直前のタイミングにおいて(5)足位置更新処理で決定された左足の位置と(5)足位置更新処理で決定された右足の位置との中点の位置、などであってもよい。
また、頭部向きデータD60(u)には、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部の回転によりオフセットされた、頭部の向きを表す単位ベクトルのx座標値、y座標値、z座標値に相当する。
また、左手基準頭部位置データD61(u)には、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部の回転によりオフセットされた、左手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。また、右手基準頭部位置データD62(u)には、x、y、zといった3個の要素が含まれている。当該3個の要素は、それぞれ、胸部の回転によりオフセットされた、右手の位置を基準とした頭部の位置のx座標値、y座標値、z座標値に相当する。
そして上述したように、最終的には、出力層52からは、当該タイミングにおける、頭部の位置を基準とした左足の仮水平方向位置の推定結果に相当する左足仮水平方向位置データD63(u)、及び、当該タイミングにおける、頭部の位置を基準とした右足の仮水平方向位置の推定結果に相当する右足仮水平方向位置データD64(u)が出力54として出力される。
なお、左足仮水平方向位置データD63(u)と、トラッカー12aの位置と、に基づいて、グローバル座標系における左足の仮水平方向位置は特定可能である。また、右足仮水平方向位置データD64(u)と、トラッカー12aの位置と、に基づいて、グローバル座標系における右足の仮水平方向位置は特定可能である。
以上のようにして、左足、及び、右足の仮水平方向位置が推定される。
(4)仮高さ推定処理
本実施形態では例えば、左足及び右足のそれぞれについて、当該足の速度の大きさ及び方向が特定される。ここで例えば、直前の2サイクルにおいて(5)足位置更新処理で決定された足の位置に基づいて、当該足の速度の大きさ及び方向が特定されてもよい。そして、それぞれの足について、当該足の仮の高さ(z座標値)(以下、仮高さと呼ぶ。)が推定される。例えば、特定される左足の速度の大きさに基づいて、左足の仮高さが推定される。また、特定される右足の速度の大きさに基づいて、右足の仮高さが推定される。足の速度の大きさが大きいほど足は高く上がっている可能性が高い。このことを踏まえ、例えば、特定される足の速度の大きさが大きいほど高くなる(例えば床や地面から離れる)よう当該足の仮高さが推定されるようにしてもよい。
(5)足位置更新処理
本実施形態では例えば、推定された仮水平方向位置と、推定された仮高さと、に基づいて、足の仮の位置(以下、仮位置と呼ぶこととする。)が推定される。例えば、(3)仮水平方向位置推定処理で推定された左足の仮水平方向位置と、(4)仮高さ推定処理で推定された左足の仮高さに基づいて、左足の仮位置が推定される。また、(3)仮水平方向位置推定処理で推定された右足の仮水平方向位置と、(4)仮高さ推定処理で推定された右足の仮高さに基づいて、右足の仮位置が推定される。
本実施形態では、予め、動作足及び非動作足のそれぞれについて互いに異なる係数が対応付けられている。以下、動作足に対応付けられている係数を第1の係数m1と呼び、非動作足に対応付けられている係数を第2の係数m2と呼ぶこととする。また、第1の係数m1及び第2の係数m2は0以上1以下の実数であり、第1の係数m1の方が第2の係数m2より大きい。
そして、本実施形態では例えば、最新のタイミングにおいて推定された足の仮位置と、当該最新のタイミングの直前のタイミングにおいて足位置更新処理で決定された足の位置と、を補間した位置が、当該最新のタイミングにおける足の位置に決定される。
図36には、最新のタイミングにおける動作足の仮位置である位置P1と、当該最新のタイミングの直前のタイミングにおいて足位置更新処理で決定された動作足の位置である位置P2とが示されている。
ここで、動作足については、位置P1と位置P2を結んだ線分L1上の位置であって、位置P1と位置P2との間の距離d1に第1の係数m1を乗じた距離だけ、位置P2から離れた位置P3が、当該最新のタイミングにおける動作足の位置に決定される。
図37には、最新のタイミングにおける非動作足の仮位置である位置P4と、当該最新のタイミングの直前のタイミングにおいて足位置更新処理で決定された非動作足の位置である位置P5とが示されている。
ここで、非動作足については、位置P4と位置P5を結んだ線分L2上の位置であって、位置P4と位置P5との間の距離d2に第2の係数m2を乗じた距離だけ、位置P5から離れた位置P6が、当該最新のタイミングにおける非動作足の位置に決定される。
本実施形態では、以上のようにして決定される位置に、左足及び右足の位置が更新される。
なお、動作足特定処理の説明において示されている、動作足の位置は、上述の位置P3に相当し、動作足の仮位置は位置P1に相当する。すなわち、特定される速度が所定の閾値以下であって、直前のタイミングにおける位置P1と位置P3との間の距離が所定距離(例えば、1センチメートル)以下である場合は、動作足又は非動作足の一方が他方に変更されるとともに、他方が一方に変更される。
以上で説明した(1)~(5)に示す処理によって、左足及び右足についての位置及び向きが決定されることとなる。
上述したように、このようにして決定される左足の位置及び向きが、トラッカー12dの位置及び向きの代わりに用いられてもよい。例えば、このようにして決定される左足の位置及び向きが、左足ノード42dの位置及び向きとして用いられてもよい。また、このようにして決定される右足の位置及び向きが、トラッカー12eの位置及び向きの代わりに用いられてもよい。例えば、このようにして決定される左足の位置及び向きが、右足ノード42eの位置及び向きとして用いられてもよい。
また、本実施形態において、頭部の位置の変化の大きさ(例えば、動作足特定処理で特定される速度の大きさ)に応じて、入力層44に部位データが入力されるか否かが制御されるようにしてもよい。例えば、特定される速度の大きさが所定の大きさよりも小さい場合には、入力層44に部位データが入力されないようにしてもよい。そして、この場合は、足の位置の決定に既に用いられた直前の推定結果に基づいて、当該足の新たな位置が決定されてもよい。
例えば最新のタイミングにおける位置P3の決定において、直前のタイミングで用いられた位置P1が流用されてもよい。また例えば、最新のタイミングにおける位置P6の決定において、直前のタイミングで用いられた位置P4が流用されてもよい。
仮水平方向位置推定処理で用いられる機械学習モデルの学習処理は、例えば、図8に示す、学習データ記憶部60、学習データ取得部62、入力データ生成部64、入力部66、特徴抽出部68、特徴データ保持部70、推定部72、出力取得部74、及び、学習部76と同様の機能を含む学習装置によって実行される。
ここで例えば、学習データ記憶部60が、上述した、頭部の高さ、胸部ノード42fの回転によりオフセットされた頭部の向き、胸部(胸部ノード42f)の回転によりオフセットされた、左手の位置を基準とした頭部の位置、及び、胸部の回転によりオフセットされた、右手の位置を基準とした頭部の位置を示すt個の部位データ、及び、教師データを含む学習データを複数記憶してもよい。当該教師データは、例えば、胸部の回転によりオフセットされた、頭部の位置を基準とした左足の仮水平方向位置、及び、胸部の回転によりオフセットされた、頭部の位置を基準とした右足の仮水平方向位置を示すデータであってもよい。
そして、上述の学習データに基づいて、学習データ取得部62、入力データ生成部64、入力部66、特徴抽出部68、特徴データ保持部70、推定部72、出力取得部74、学習部76が、以上で説明した処理と同様の処理を実行することで、特徴抽出部68又は推定部72のうちの少なくとも一方の学習が実行されるようにしてもよい。
ここで例えば、入力データ生成部64は、ユーザの頭部の高さ、ユーザの頭部の向き、ユーザの右手の位置を基準としたユーザの頭部の位置、及び、ユーザの右手の位置を基準としたユーザの頭部の位置を示す部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する。
また、例えば、特徴抽出部68は、最新のタイミングにおける部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む入力データの入力に応じて、当該最新のタイミングまでの部位データの時系列推移の特徴を示す特徴データを出力する。
また、例えば、推定部72は、最新のタイミングまでの部位データの時系列推移の特徴を示す特徴データに基づく、当該最新のタイミングにおける、ユーザの頭部の位置を基準としたユーザの左足の位置、及び、ユーザの頭部の位置を基準としたユーザの右足の位置を推定する。
また、例えば、学習部76は、推定部72による、最新のタイミングまでの部位データの時系列推移の特徴を示す特徴データに基づいて、当該最新のタイミングにおける、ユーザの頭部の位置を基準としたユーザの右足の位置、及び、ユーザの頭部の位置を基準としたユーザの左足の位置の推定の結果に基づいて、特徴抽出部68又は推定部72のうちの少なくとも一方を学習する。
また、上述の(1)~(5)に示す処理は、例えば、図38に示されている追加機能群によって実行されるようにしてもよい。図38に示す追加機能群は、例えば、図9に示されている機能群を含むエンタテインメント装置14に追加される。なお、本実施形態に係るエンタテインメント装置14で、図38に示す機能のすべてが実装される必要はなく、また、図38に示す機能以外の機能が実装されていても構わない。
図38に示すように、上述の(1)~(5)に示す処理を実行する機能群には、例えば、速度特定部90、動作足特定部92、足位置部位データ生成部94、足位置入力データ生成部96、足位置入力部98、足位置特徴抽出部100、足位置特徴データ保持部102、足位置推定部104、入力制御部106、モーション決定部108、が含まれる。
速度特定部90、動作足特定部92、足位置部位データ生成部94、足位置入力データ生成部96、足位置入力部98、入力制御部106、モーション決定部108は、プロセッサ30を主として実装される。足位置特徴抽出部100、足位置推定部104は、プロセッサ30及び記憶部32を主として実装される。足位置特徴データ保持部102は、記憶部32を主として実装される。
速度特定部90は、本実施形態では例えば、ユーザの上半身の部位に装着されたトラッカー12から出力されるセンシングデータに基づいて、当該部位の速度の方向及び大きさを特定する。ここで例えば、姿勢データ取得部80により取得される、頭部に装着されたトラッカー12aの位置及び向きを示す姿勢データに基づいて、ユーザの頭部の速度の大きさ及び方向が特定されてもよい。
動作足特定部92は、本実施形態では例えば、速度特定部90によって特定される速度の方向に基づいて、ユーザの左足又は右足のうちの一方を動作足と特定し、他方を非動作足と特定する。
動作足特定部92は、例えば、動作足が左足であるか否かを示す動作足フラグを保持してもよい。そして、左足が動作足である場合には動作足フラグの値に1が設定され、右足が動作足である場合には動作足フラグの値に0が設定されてもよい。
ここで、動作足特定部92は、上述したように、特定される速度の方向がユーザの左足方向である場合に、ユーザの左足を動作足と特定してもよい。この場合は、動作足フラグの値は1に設定される。また、動作足特定部92は、上述したように、特定される速度の方向がユーザの右足方向である場合に、ユーザの右足を動作足と特定してもよい。この場合は、動作足フラグの値は0に設定される。
また、上述のように、特定される速度が所定の閾値を超えている場合であって、特定される速度の方向がユーザの左足方向である場合に、ユーザの左足が動作足と特定されてもよい。また、特定される速度が所定の閾値を超えている場合であって、特定される速度の方向がユーザの右足方向である場合に、ユーザの右足が動作足と特定されてもよい。
そして、特定される速度が当該所定の閾値以下であって、直前に推定された足の位置と、当該位置に基づいて直前に決定された足の位置との間の距離が所定距離以下である場合は、動作足又は非動作足の一方を他方に変更するとともに、他方を一方に変更してもよい。この場合、例えば、動作足フラグの値が1である場合は0に変更され、0である場合は1に変更される。
足位置部位データ生成部94は、本実施形態では例えば、ユーザの頭部の高さ、ユーザの頭部の向き、ユーザの左手の位置を基準としたユーザの頭部の位置、及び、ユーザの右手の位置を基準としたユーザの頭部の位置を示す部位データを生成する。例えば、姿勢データ取得部80により取得される姿勢データに基づいて、当該部位データは生成される。
足位置入力データ生成部96は、本実施形態では例えば、最新のタイミングにおける部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する。
足位置入力部98は、本実施形態では例えば、足位置入力データ生成部96が生成する入力データを足位置特徴抽出部100に入力する。
足位置特徴抽出部100は、本実施形態では例えば、最新のタイミングにおける部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む入力データの入力に応じて、当該最新のタイミングまでの部位データの時系列推移の特徴を示す特徴データを出力する。
足位置特徴データ保持部102は、本実施形態では例えば、足位置特徴抽出部100が出力する特徴データを保持する。本実施形態では、足位置特徴データ保持部102に保持される特徴データが、次の推定における入力データに含まれる特徴データとして用いられることとなる。
足位置推定部104は、本実施形態では例えば、ユーザの左足の仮位置、及び、ユーザの右足の仮位置を推定する。
ここで上述のように、足位置推定部104が、最新のタイミングまでの時系列推移の特徴を示す特徴データに基づいて、当該タイミングにおける、ユーザの頭部の位置を基準としたユーザの左足の仮水平方向位置、及び、ユーザの頭部の位置を基準としたユーザの右足の仮水平方向位置を推定してもよい。
また、足位置推定部104が、直前のタイミングにおける足の速度の大きさに基づいて当該足の仮高さを推定してもよい。ここで直前のタイミングにおける足の速度の大きさが大きいほど高くなるよう当該足の仮高さが推定されてもよい。
入力制御部106は、本実施形態では例えば、速度特定部90によって特定される速度の大きさに応じて、足位置特徴抽出部100に入力データが入力されるか否かを制御する。例えば、速度特定部90によって特定される速度の大きさが所定の大きさよりも小さい場合に、足位置特徴抽出部100に入力データが入力されないよう制御する。ここで、速度特定部90によって特定される速度の大きさが所定の大きさよりも小さい場合に、足位置入力データ生成部96による入力データの生成が行われないようにしてもよい。
モーション決定部108は、本実施形態では例えば、左足及び右足のそれぞれについて、当該足が動作足であるか非動作足であるかに基づいて、当該足のモーションを決定する。ここで、モーション決定部108は、非動作足の動きよりも動作足の動きの方が大きくなるよう左足及び右足のモーションを決定してもよい。
また、例えば、左足及び右足のそれぞれについて、最新のタイミングにおいて足位置推定部104により推定された当該足の仮位置と、当該足に対応付けられている係数と、に基づいて、当該最新のタイミングにおける当該足の位置が決定されることで、当該足の位置が更新されてもよい。なお、上述のように、動作足及び非動作足のそれぞれは、互いに異なる係数に対応付けられている。
また、上述のように、モーション決定部108は、最新のタイミングにおいて足位置推定部104により推定された足の仮位置と、当該最新のタイミングの直前のタイミングにおいてモーション決定部108により決定された当該足の位置と、を補間した位置を、最新のタイミングにおける当該足の位置に決定してもよい。
例えば、図36に示すように、最新のタイミングにおいて推定された動作足の仮位置である位置P1と直前のタイミングにおいて決定された動作足の位置である位置P2との間の距離d1に第1の係数m1を乗じた距離だけ、直前のタイミングにおいて決定された動作足の位置P2から離れた位置P3が、最新のタイミングにおける動作足の位置に決定されてもよい。
また、図37に示すように、最新のタイミングにおいて推定された非動作足の仮位置である位置P4と直前のタイミングにおいて決定された非動作足の位置である位置P5との間の距離d2に第2の係数m2を乗じた距離だけ、直前のタイミングにおいて決定された非動作足の位置P5から離れた位置P6が、最新のタイミングにおける非動作足の位置に決定されてもよい。
ここで上述のように、第1の係数m1は第2の係数m2よりも大きい。
ここで、入力制御部106によって、足位置特徴抽出部100に入力データが入力されないよう制御される際には、モーション決定部108は、足の位置の決定に既に用いられた足位置推定部104による直前の推定結果に基づいて、最新のタイミングにおける当該足の位置を決定してもよい。
例えば、直前のタイミングにおいて推定された動作足の位置P1と直前のタイミングにおいて決定された動作足の位置P2との間の距離d1に第1の係数m1を乗じた距離だけ、直前のタイミングにおいて決定された動作足の位置P2から離れた位置P3が、最新のタイミングにおける動作足の位置に決定されてもよい。
また、直前のタイミングにおいて推定された非動作足の位置P4と直前のタイミングにおいて決定された非動作足の位置P5との間の距離d2に第2の係数m2を乗じた距離だけ、直前のタイミングにおいて決定された動作足の位置P5から離れた位置P6が、最新のタイミングにおける非動作足の位置に決定されてもよい。
また、モーション決定部108は、本実施形態では例えば、ユーザの足の向きを決定する。このとき、モーション決定部108は、上述したように、鉛直方向に延伸する基準となる線から足の位置までの距離に基づいて、基準となる水平方向の軸を中心とする当該足の回転を決定してもよい。
上述した(1)動作足特定処理は、速度特定部90、及び、動作足特定部92によって実行される処理に相当する。
また、(2)足姿勢決定処理は、モーション決定部108によって実行される処理に相当する。
また、(3)仮水平方向位置推定処理は、足位置部位データ生成部94、足位置入力データ生成部96、足位置入力部98、足位置特徴抽出部100、足位置特徴データ保持部102、足位置推定部104、及び、入力制御部106によって実行される処理に相当する。
また、(4)仮高さ推定処理は、足位置推定部104によって実行される処理に相当する。
また、(5)足位置更新処理は、足位置推定部104、及び、モーション決定部108によって実行される処理に相当する。
ここで、本実施形態に係るエンタテインメント装置14で行われる左足及び右足の位置の更新処理の流れの一例を、図39に例示するフロー図を参照しながら説明する。
まず、速度特定部90が、本サイクルにおける姿勢データに基づいて、ユーザの頭部の速度の方向及び大きさを特定する(S401)。
そして、動作足特定部92が、S401に示す処理で特定された速度の方向及び大きさに基づいて、動作足及び非動作足を特定する(S402)。S402に示す処理でによって動作足が変更される場合は、動作足特定部92が保持する動作足フラグの値が変更される。
そして、モーション決定部108が、左足の向き、及び、右足の向きを決定する(S403)。
そして、入力制御部106が、そして、S401に示す処理で特定された速度の大きさに基づいて、足位置特徴抽出部100に入力データを入力するか否かを決定する(S404)。
S404に示す処理で入力データを入力することが決定された場合は(S405:Y)、足位置部位データ生成部94が、本サイクルにおける姿勢データに基づいて、部位データを生成する(S406)。
そして、足位置入力データ生成部96が、S406に示す処理で生成された部位データと、足位置特徴データ保持部102に保持されている特徴データと、に基づいて、入力データを生成する(S407)。
そして、足位置入力部98が、S407に示す処理で生成された入力データを足位置特徴抽出部100に入力する(S408)。
そして、足位置特徴抽出部100が、S408に示す処理における入力に応じた特徴データを足位置特徴データ保持部102に出力する(S409)。
そして、足位置推定部104が、S409に示す処理で足位置特徴データ保持部102に出力された特徴データである、足位置特徴データ保持部102に保持されている、最後に足位置特徴抽出部100から出力された特徴データに応じた推定結果を生成して、出力する(S410)。ここでは例えば、左足仮水平方向位置データD63、及び、右足仮水平方向位置データD64が出力される。
そして、足位置推定部104が、右足と左足のそれぞれについて、直前の2サイクルにおいて決定された足の位置に基づいて、当該足の速度の大きさを特定する(S411)。
そして、足位置推定部104が、S411に示す処理で特定された足の速度の大きさに基づいて、左足の仮高さ、及び、右足の仮高さを推定する(S412)。
そして、足位置推定部104が、S410に示す処理で出力された推定結果と、S412に示す処理で推定された左足の仮高さ及び右足の仮高さに基づいて、左足の仮位置、及び、右足の仮位置を推定する(S413)。
そして、モーション決定部108が、直前のサイクルにおいて決定された足の位置と、本サイクルのS412に示す処理で推定された当該足の仮位置と、に基づいて決定される位置に、当該足の位置を更新して(S414)、S401に示す処理に戻る。
S404に示す処理で入力データを入力しないことが決定された場合も(S405:N)、S414に示す処理が実行される。この場合は、直前のサイクルにおいて決定された足の位置と、直前のサイクルにおいて推定された当該足の仮位置と、に基づいて決定される位置に、当該足の位置が更新されることとなる。そして、S401に示す処理に戻る。
以上で説明した処理例に示す処理において、各ステップの実行順序は上述のものに限定されない。
また、S404に示す処理で入力データを入力しないことが決定された場合でも(S405:N)、S411~S413に示す処理が実行されるようにしてもよい。この場合、S413に示す処理において、直前のサイクルにおいて推定された足の仮推定方向位置と、当該サイクルにおいて推定された当該足の仮高さと、に基づいて、当該足の仮位置が推定されてもよい。
上述のように、本実施形態では例えば、トラッカー12a~12cによって生成される最新の特定タイミングにおける当該トラッカー12の位置及び向きを示す姿勢データの取得(S201)をトリガとして、S401~S414に示す処理が実行される。そして、S413に示す処理で更新された最新の足の位置に基づいて、S202に示す部位データの生成処理が実行され、その後、S203~S210に示す処理によるボディトラッキングが実行されるようにしてもよい。
なお、モーション決定部108は、以上で説明した方法以外の方法によって、動作足及び非動作足のモーションを決定してもよい。例えば、動作足に対応するモーションデータ、及び、非動作足に対応するモーションデータが予め記憶されていてもよい。そして、例えば、モーション決定部108は、動作足については、動作足に対応するモーションデータを再生し、非動作足については、非動作足に対応するモーションデータを再生するようにしてもよい。
また、以上の例では、頭部に装着されたトラッカー12aの速度に基づいて左足及び右足のモーションが決定されたが、上半身の別の部位に装着されたトラッカーの速度に基づいて左足及び右足のモーションが決定されてもよい。
本実施形態では、ユーザの上半身の部位の速度の方向に基づいて、ユーザの左足又は右足のうちの一方が動作足と特定され、他方が非動作足と特定される。そして、左足及び右足のそれぞれについて、当該足が動作足であるか非動作足であるかに基づいて、当該足のモーションが決定される。このようにして、本実施形態によれば、ユーザが足にトラッカーを装着することなくユーザの全身のモーションを的確に表現できることとなる。
[変形例]
なお、本発明は上述の実施形態に限定されるものではない。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、特徴抽出部68、推定部72、足位置特徴抽出部100、足位置推定部104が機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェア、あるいは、回路などのハードウェアによって実装されてもよい。
また例えばトラッカー12aは、ヘッドマウントディスプレイ(HMD)であってもよい。この場合に、ユーザに含まれる複数の部位の位置又は向きに応じたゲーム処理等の各種の処理の結果に応じた映像が例えばHMDの表示部に表示されるようにしてもよい。
また例えば、図9や図38に示す機能の一部又は全部がトラッカー12によって実装されてもよい。
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
Claims (15)
- ユーザの上半身の部位に装着されたトラッカーから出力されるセンシングデータに基づいて、当該部位の速度の方向を特定する速度特定部と、
特定される前記速度の方向に基づいて、前記ユーザの左足又は右足のうちの一方を動作足と特定し、他方を非動作足と特定する動作足特定部と、
前記左足及び前記右足のそれぞれについて、当該足が前記動作足であるか前記非動作足であるかに基づいて、当該足のモーションを決定するモーション決定部と、
を含むことを特徴とするモーション決定装置。 - 前記モーション決定部は、前記非動作足の動きよりも前記動作足の動きの方が大きくなるよう前記左足及び前記右足のモーションを決定する、
ことを特徴とする請求項1に記載のモーション決定装置。 - 特定される前記速度の方向が前記ユーザの左足方向である場合に、前記ユーザの左足を動作足と特定し、
特定される前記速度の方向が前記ユーザの右足方向である場合に、前記ユーザの右足を動作足と特定する、
ことを特徴とする請求項1又は2に記載のモーション決定装置。 - 前記ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成部と、
前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出部と、
前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定部と、をさらに含み、
前記特徴抽出部は、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、
前記推定部は、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づいて、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定し、
前記動作足及び前記非動作足のそれぞれは、互いに異なる係数に対応付けられており、
前記モーション決定部は、前記左足及び前記右足のそれぞれについて、前記最新のタイミングにおいて前記推定部により推定された当該足の位置と、当該足に対応付けられている前記係数と、に基づいて、当該最新のタイミングにおける当該足の位置を決定する、
ことを特徴とする請求項1又は2に記載のモーション決定装置。 - 前記モーション決定部は、前記最新のタイミングにおいて前記推定部により推定された前記足の位置と、当該最新のタイミングの直前のタイミングにおいて前記モーション決定部により決定された当該足の位置と、を補間した位置を、前記最新のタイミングにおける当該足の位置に決定する、
ことを特徴とする請求項4に記載のモーション決定装置。 - 前記モーション決定部は、前記最新のタイミングにおいて推定された前記動作足の位置と前記直前のタイミングにおいて決定された前記動作足の位置との間の距離に第1の係数を乗じた距離だけ、前記直前のタイミングにおいて決定された前記動作足の位置から離れた位置を、前記動作足の位置に決定し、
前記モーション決定部は、前記最新のタイミングにおいて推定された前記非動作足の位置と前記直前のタイミングにおいて決定された前記非動作足の位置との間の距離に第2の係数を乗じた距離だけ、前記直前のタイミングにおいて決定された前記非動作足の位置から離れた位置を、前記非動作足の位置に決定し、
前記第1の係数は前記第2の係数よりも大きい、
ことを特徴とする請求項5に記載のモーション決定装置。 - 前記推定部は、前記最新のタイミングまでの前記時系列推移の特徴を示す前記特徴データに基づいて、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の水平面上における位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の水平面上における位置を推定し、
前記推定部は、前記最新のタイミングの直前のタイミングにおける前記足の速度の大きさに基づいて、当該足の高さ方向における位置を推定する、
ことを特徴とする請求項4から6のいずれか一項に記載のモーション決定装置。 - 特定される前記速度の大きさが所定の閾値を超えており、特定される前記速度の方向が前記ユーザの左足方向である場合に、前記ユーザの左足を前記動作足と特定し、
特定される前記速度の大きさが前記閾値を超えており、特定される前記速度の方向が前記ユーザの右足方向である場合に、前記ユーザの右足を前記動作足と特定し、
特定される前記速度の大きさが前記閾値以下であり、前記推定部により直前に推定された前記足の位置と、当該位置に基づいて前記モーション決定部により直前に決定された前記足の位置との間の距離が所定距離以下である場合は、前記動作足又は前記非動作足の一方を他方に変更するとともに、前記他方を前記一方に変更する、
ことを特徴とする請求項4から7のいずれか一項に記載のモーション決定装置。 - 特定される前記速度の大きさに応じて、前記特徴抽出部に前記入力データが入力されるか否かを制御する入力制御部、をさらに含み、
前記特徴抽出部に前記入力データが入力されないよう制御される際には、前記モーション決定部は、前記足の位置の決定に既に用いられた前記推定部による直前の推定結果に基づいて、前記最新のタイミングにおける当該足の位置を決定する、
ことを特徴とする請求項4から8のいずれか一項に記載のモーション決定装置。 - 前記モーション決定部は、鉛直方向に延伸する基準となる線から前記足の位置までの距離に基づいて、基準となる水平方向の軸を中心とする当該足の回転を決定する、
ことを特徴とする請求項1から9のいずれか一項に記載のモーション決定装置。 - ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成部と、
前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出部と、
前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定部と、
前記推定の結果に基づいて、前記特徴抽出部又は前記推定部のうちの少なくとも一方を学習する学習部と、を含み、
前記特徴抽出部は、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、
前記学習部は、前記推定部による、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づく、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置の推定の結果に基づいて、前記学習を実行する、
ことを特徴とする学習装置。 - ユーザの上半身の部位に装着されたトラッカーから出力されるセンシングデータに基づいて、当該部位の速度の方向を特定するステップと、
特定される前記速度の方向に基づいて、前記ユーザの左足又は右足のうちの一方を動作足と特定し、他方を非動作足と特定するステップと、
前記左足及び前記右足のそれぞれについて、当該足が前記動作足であるか前記非動作足であるかに基づいて、当該足のモーションを決定するステップと、
を含むことを特徴とするモーション決定方法。 - ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成ステップと、
特徴抽出部が、前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出ステップと、
推定部が、前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定ステップと、
前記推定の結果に基づいて、前記特徴抽出部又は前記推定部のうちの少なくとも一方を学習する学習ステップと、を含み、
前記特徴抽出ステップでは、前記特徴抽出部が、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、
前記学習ステップでは、前記推定部による、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づく、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置の推定の結果に基づいて、前記学習を実行する、
ことを特徴とする学習方法。 - ユーザの上半身の部位に装着されたトラッカーから出力されるセンシングデータに基づいて、当該部位の速度の方向を特定する手順、
特定される前記速度の方向に基づいて、前記ユーザの左足又は右足のうちの一方を動作足と特定し、他方を非動作足と特定する手順、
前記左足及び前記右足のそれぞれについて、当該足が前記動作足であるか前記非動作足であるかに基づいて、当該足のモーションを決定する手順、
をコンピュータに実行させることを特徴とするプログラム。 - ユーザの頭部の高さ、前記ユーザの頭部の向き、前記ユーザの左手の位置を基準とした前記ユーザの頭部の位置、及び、前記ユーザの右手の位置を基準とした前記ユーザの頭部の位置を示す部位データと、前記部位データの時系列推移の特徴を示す特徴データと、を含む入力データを生成する入力データ生成手順、
特徴抽出部が、前記入力データの入力に応じて、新たな前記特徴データを出力する特徴抽出手順、
推定部が、前記特徴データに基づいて、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置を推定する推定手順、
前記推定の結果に基づいて、前記特徴抽出部又は前記推定部のうちの少なくとも一方を学習する学習手順、をコンピュータに実行させ、
前記特徴抽出手順では、前記特徴抽出部が、最新のタイミングにおける前記部位データと、当該部位データの時系列推移の特徴を示す特徴データと、を含む前記入力データの入力に応じて、当該最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データを出力し、
前記学習手順では、前記推定部による、前記最新のタイミングまでの前記部位データの前記時系列推移の特徴を示す前記特徴データに基づく、当該最新のタイミングにおける、前記ユーザの頭部の位置を基準とした前記ユーザの左足の位置、及び、前記ユーザの頭部の位置を基準とした前記ユーザの右足の位置の推定の結果に基づいて、前記学習を実行する、
ことを特徴とするプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/014609 WO2021199177A1 (ja) | 2020-03-30 | 2020-03-30 | モーション決定装置、学習装置、モーション決定方法、学習方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021199177A1 JPWO2021199177A1 (ja) | 2021-10-07 |
JP7334337B2 true JP7334337B2 (ja) | 2023-08-28 |
Family
ID=77928163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022512917A Active JP7334337B2 (ja) | 2020-03-30 | 2020-03-30 | モーション決定装置、学習装置、モーション決定方法、学習方法及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230112409A1 (ja) |
JP (1) | JP7334337B2 (ja) |
CN (1) | CN115087873A (ja) |
WO (1) | WO2021199177A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002259984A (ja) | 2001-03-01 | 2002-09-13 | Matsushita Electric Ind Co Ltd | 動作解析装置及び動作解析方法 |
US20040119716A1 (en) | 2002-12-20 | 2004-06-24 | Chang Joon Park | Apparatus and method for high-speed marker-free motion capture |
JP2007319347A (ja) | 2006-05-31 | 2007-12-13 | Anima Kk | 動作解析システム、動作解析装置及びプログラム |
JP2014211404A (ja) | 2013-04-22 | 2014-11-13 | 株式会社ノビテック | モーションキャプチャー方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019025134A (ja) * | 2017-08-01 | 2019-02-21 | 株式会社大武ルート工業 | 動作推定装置及び動作推定プログラム |
-
2020
- 2020-03-30 JP JP2022512917A patent/JP7334337B2/ja active Active
- 2020-03-30 CN CN202080095931.8A patent/CN115087873A/zh active Pending
- 2020-03-30 US US17/909,484 patent/US20230112409A1/en active Pending
- 2020-03-30 WO PCT/JP2020/014609 patent/WO2021199177A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002259984A (ja) | 2001-03-01 | 2002-09-13 | Matsushita Electric Ind Co Ltd | 動作解析装置及び動作解析方法 |
US20040119716A1 (en) | 2002-12-20 | 2004-06-24 | Chang Joon Park | Apparatus and method for high-speed marker-free motion capture |
JP2007319347A (ja) | 2006-05-31 | 2007-12-13 | Anima Kk | 動作解析システム、動作解析装置及びプログラム |
JP2014211404A (ja) | 2013-04-22 | 2014-11-13 | 株式会社ノビテック | モーションキャプチャー方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230112409A1 (en) | 2023-04-13 |
JPWO2021199177A1 (ja) | 2021-10-07 |
CN115087873A (zh) | 2022-09-20 |
WO2021199177A1 (ja) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7038847B2 (ja) | スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム | |
JP7171745B2 (ja) | 推定装置、学習装置、推定方法、学習方法及びプログラム | |
CN103608844A (zh) | 全自动动态关节连接的模型校准 | |
JP7102618B2 (ja) | スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム | |
CN110555869A (zh) | 提取增强现实系统中主要和次级运动的方法和系统 | |
JP2021152724A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP7068586B2 (ja) | 映像処理装置、映像処理方法、及び映像処理プログラム | |
WO2017170761A1 (ja) | 3次元動画データ生成装置、3次元動画データ生成プログラム、及びその方法 | |
CN114296539B (zh) | 方向预测方法、虚拟实境装置及非暂态计算机可读取媒体 | |
JP7334337B2 (ja) | モーション決定装置、学習装置、モーション決定方法、学習方法及びプログラム | |
JP6840890B2 (ja) | 身体サイズ推定装置、身体サイズ推定方法及びプログラム | |
JP6874207B2 (ja) | 推定装置、推定方法及びプログラム | |
JP7005788B2 (ja) | スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム | |
WO2024161613A1 (ja) | データ拡張方法、データ拡張プログラムおよび情報処理装置 | |
CN118071971A (zh) | 提供动作改善信息的方法、处理控制装置以及系统 | |
CN116631052A (zh) | 一种基于人体姿态估计的跌到检测方法及装置 | |
CN118072392A (zh) | 动捕信息确定方法、装置、终端设备及可读存储介质 | |
CN115639904A (zh) | 一种基于人体姿态识别的对象控制方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220905 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230801 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230816 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7334337 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |