JP6874207B2 - 推定装置、推定方法及びプログラム - Google Patents

推定装置、推定方法及びプログラム Download PDF

Info

Publication number
JP6874207B2
JP6874207B2 JP2020503200A JP2020503200A JP6874207B2 JP 6874207 B2 JP6874207 B2 JP 6874207B2 JP 2020503200 A JP2020503200 A JP 2020503200A JP 2020503200 A JP2020503200 A JP 2020503200A JP 6874207 B2 JP6874207 B2 JP 6874207B2
Authority
JP
Japan
Prior art keywords
series data
time
orientation
tracker
data indicating
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
Application number
JP2020503200A
Other languages
English (en)
Other versions
JPWO2019167214A1 (ja
Inventor
良徳 大橋
良徳 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JPWO2019167214A1 publication Critical patent/JPWO2019167214A1/ja
Application granted granted Critical
Publication of JP6874207B2 publication Critical patent/JP6874207B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • A63F13/655Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition by importing photos, e.g. of the player
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/215Input arrangements for video game devices characterised by their sensors, purposes or types comprising means for detecting acoustic signals, e.g. using a microphone
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1012Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals involving biosensors worn by the player, e.g. for measuring heart beat, limb activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Cardiology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Description

本発明は、推定装置、推定方法及びプログラムに関する。
ユーザが装着する複数のトラッカーの位置や向きを示すデータに基づいて、逆運動学(IK)によって、当該ユーザの体に含まれる、トラッカーが装着されていない部位を含む複数の部位の位置や向きを推定するボディトラッキングの技術が知られている。
現状では、ボディトラッキングが的確に行われるようにするためには、ユーザは胸部又は腰部にトラッカーを装着する必要がある。しかし胸部や腰部へのトラッカーの装着はユーザにとって煩わしい。
またボディトラッキングにおいて、手のトラッカーの位置や向きを示すデータがあっても手首の向きを示すデータがないと肘の位置が的確に推定できないことがある。例えば、手を振る動作などといった手だけを動かす動作を行った際に、実際には肘が大きく動いていないにも関わらず肘の位置が大きく動く推定結果が得られてしまうことがある。しかし手首へのトラッカーの装着もユーザにとっては煩わしい。
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、ユーザが多くのトラッカーを装着することなく的確なボディトラッキングを行える推定装置、推定方法及びプログラムを提供することにある。
上記課題を解決するために、本発明に係る推定装置は、それぞれ体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得する時系列データ取得部と、前記複数の時系列データを変換部に入力する入力部と、前記時系列データを前記変換部に入力した際の出力である前記部位よりも前記体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得する出力取得部と、を含む。
本発明の一態様では、前記複数の時系列データは、互いに異なる前記部位についての時系列データである。
この態様では、前記入力部は、前記体に含まれる頭部の向きを示す第1時系列データと、前記体に含まれる左手の角速度を示す第2時系列データと、前記体に含まれる右手の角速度を示す第3時系列データと、を前記変換部に入力し、前記出力取得部は、前記体に含まれる胸部若しくは腰部の向き、又は、前記体に含まれる胸部若しくは腰部の角速度の推定結果を取得してもよい。
また、本発明の一態様では、前記複数の時系列データには、前記部位の向きを示す時系列データ、当該部位の角速度を示す時系列データ、当該部位の位置を示す時系列データ、又は、当該部位の速度を示す時系列データのうちの複数が含まれる。
この態様では、前記入力部は、前記体に含まれる手の向きを示す第1時系列データと、当該手の角速度を示す第2時系列データと、当該手の位置又は速度を示す第3時系列データと、を前記変換部に入力し、前記出力取得部は、前記体に含まれる前記手の側の手首の向き又は角速度の推定結果を取得してもよい。
また、本発明の一態様では、前記変換部は、学習済の機械学習モデルである。
また、本発明に係る推定方法は、それぞれ体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得するステップと、前記複数の時系列データを変換部に入力するステップと、前記時系列データを前記変換部に入力した際の出力である前記部位よりも前記体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得するステップと、を含む。
また、本発明に係るプログラムは、それぞれ体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得する手順、前記複数の時系列データを変換部に入力する手順、前記時系列データを前記変換部に入力した際の出力である前記部位よりも前記体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得する手順、をコンピュータに実行させる。
本発明の一実施形態に係るエンタテインメントシステムの一例を示す構成図である。 本発明の一実施形態に係るエンタテインメント装置の一例を示す構成図である。 スケルトンモデルの一例を示す図である。 胸部ノードの向きの推定に用いられる機械学習モデルの一例を示す図である。 左手首ノード又は右手首ノードの向きの推定に用いられる機械学習モデルの一例を示す図である。 本発明の一実施形態に係るエンタテインメント装置で実装される機能の一例を示す機能ブロック図である。 本発明の一実施形態に係るエンタテインメント装置で行われる処理の流れの一例を示すフロー図である。
図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についての位置及び向きを推定することができない。
また左手ノード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の向きの推定について説明する。なお以下に示す方法により、腰部ノード42gの向きの推定も同様に可能である。
図4は、胸部ノード42fの向きの推定に用いられる機械学習モデルの一例を示す図である。図4に示すように、胸部ノード42fの向きの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、トラッカー12による位置及び向きの特定に応じて、入力層44には、頭部の向きの時系列を示す時系列データD1、左手の角速度の時系列を示す時系列データD2、及び、右手の角速度の時系列を示す時系列データD3が入力される。
本実施形態では例えば、直近200回の特定におけるトラッカー12aの向きの時系列を示すデータが時系列データD1(D1(t−199)〜D1(t))として入力層44に入力される。
ここでは例えば、最新の特定タイミングにおけるトラッカー12aの向きを示すデータがデータD1(t)として表現されている。また、直前の特定タイミングにおけるトラッカー12aの向きを示すデータがデータD1(t−1)として表現されている。また、199回前の特定タイミングにおけるトラッカー12aの向きを示すデータがデータD1(t−199)として表現されている。
また本実施形態では図4に示すように、時系列データD1(D1(t−199)〜D1(t))には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
また本実施形態では、前回の特定における向きを示すデータの値と今回の特定における向きを示すデータの値との差分が、角速度を示す値として用いられる。そして本実施形態では、直近201回の特定におけるトラッカー12bの向きを示すデータに基づく、トラッカー12bの角速度の時系列を示すデータが、時系列データD2(D2(t−199)〜D2(t))として入力層44に入力される。
ここでは例えば最新の特定タイミングにおけるトラッカー12bの向きと直前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD2(t)として表現されている。また直前の特定タイミングにおけるトラッカー12bの向きと2回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD2(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの向きと200回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD2(t−199)として表現されている。
また本実施形態では図4に示すように、時系列データD2(D2(t−199)〜D2(t))には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。ここで当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
また本実施形態では、直近201回の特定におけるトラッカー12cの向きを示すデータに基づく、トラッカー12cの角速度の時系列を示すデータが、時系列データD3(D3(t−199)〜D3(t))として入力層44に入力される。
ここでは例えば最新の特定タイミングにおけるトラッカー12cの向きと直前の特定タイミングにおけるトラッカー12cの向きとの差分に相当する角速度を示すデータがデータD3(t)として表現されている。また直前の特定タイミングにおけるトラッカー12cの向きと2回前の特定タイミングにおけるトラッカー12cの向きとの差分に相当する角速度を示すデータがデータD3(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12cの向きと200回前の特定タイミングにおけるトラッカー12cの向きとの差分に相当する角速度を示すデータがデータD3(t−199)として表現されている。
また本実施形態では図4に示すように、時系列データD3(D3(t−199)〜D3(t))には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。上述のように当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
以上で説明したように、本実施形態では、入力層44に、1800(200×3×3)の要素を含むデータが入力されることとなる。
そして入力層44に入力された上記のデータは、中間ブロック46に入力される。中間ブロック46は、本実施形態では例えば、LSTM(Long short-term memory)が実装されたRNN(Recurrent Neural Network)(LSTMブロック)である。
そして中間ブロック46の出力が、第1中間層48に入力される。そして第1中間層48からの出力が第2中間層50に入力される。第1中間層48及び第2中間層50は、例えば正規化線形関数(ReLU)を活性化関数とする全結合層である。
そして第2中間層50からの出力が出力層52に入力される。出力層52は、例えば線形関数を活性化関数とする層である。そして出力層52からは、最新の特定タイミングにおける胸部の向きに相当するデータD4(t)が出力54として出力される。図4に示すように、時系列データD4(t)には、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
本実施形態では、予め、図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた胸部の向きを示すデータによる学習が実行されていることとする。そのため本実施形態では図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)が、胸部ノード42fの向きの推定結果に相当することとなる。
ここで予め図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた腰部の向きを示すデータによる学習が実行されていてもよい。この場合は、図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)は、腰部ノード42gの向きの推定結果に相当することとなる。
また予め図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた胸部の角速度を示すデータによる学習が実行されていてもよい。この場合は、図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)は、胸部ノード42fの角速度の推定結果に相当することとなる。
また予め図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた腰部の角速度を示すデータによる学習が実行されていてもよい。この場合は、図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)は、腰部ノード42gの角速度の推定結果に相当することとなる。
以上のようにして本実施形態では、時系列データD1〜D3に基づく胸部ノード42f若しくは腰部ノード42gの向き、又は、胸部ノード42f若しくは腰部ノード42gの角速度の推定が実行される。
以下、左手首ノード42jの向きの推定について説明する。なお以下に示す方法により、右手首ノード42mの向きの推定も同様に可能である。
図5は、左手首ノード42jの向きの推定に用いられる機械学習モデルの一例を示す図である。図5に示すように、左手首ノード42jの向きの推定に用いられる機械学習モデルには、図4に示す機械学習モデルと同様、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
本実施形態では例えば、トラッカー12による位置及び向きの特定に応じて、入力層44には、左手の向きの時系列を示すデータD5、左手の角速度の時系列を示すデータD6、及び、左手の速度の時系列を示すデータD7が入力される。
本実施形態では例えば、直近200回の特定におけるトラッカー12bの向きの時系列を示すデータが時系列データD5(D5(t−199)〜D5(t))として入力層44に入力される。
ここでは例えば、最新の特定タイミングにおけるトラッカー12bの向きを示すデータがデータD5(t)として表現されている。直前の特定タイミングにおけるトラッカー12bの向きを示すデータがデータD5(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの向きを示すデータがデータD5(t−199)として表現されている。
また本実施形態では図5に示すように、時系列データD5(D5(t−199)〜D5(t))には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。上述のように当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
また本実施形態では、前回の特定における向きを示すデータの値と今回の特定における向きを示すデータの値との差分が、角速度を示す値として用いられる。そして本実施形態では、直近201回の特定におけるトラッカー12bの向きを示すデータに基づく、トラッカー12bの角速度の時系列を示すデータが、時系列データD6(D6(t−199)〜D6(t))として入力層44に入力される。
ここでは例えば最新の特定タイミングにおけるトラッカー12bの向きと直前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD6(t)として表現されている。また直前の特定タイミングにおけるトラッカー12bの向きと2回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD6(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの向きと200回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD6(t−199)として表現されている。
また本実施形態では図5に示すように、時系列データD6(D6(t−199)〜D6(t))には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。上述のように当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
また本実施形態では、直近201回の特定におけるトラッカー12bの位置を示すデータに基づく、トラッカー12bの速度の時系列を示すデータが、時系列データD7(D7(t−199)〜D7(t))として入力層44に入力される。
ここでは例えば最新の特定タイミングにおけるトラッカー12bの位置と直前の特定タイミングにおけるトラッカー12bの位置との差分に相当する速度を示すデータがデータD7(t)として表現されている。また直前の特定タイミングにおけるトラッカー12bの位置と2回前の特定タイミングにおけるトラッカー12bの位置との差分に相当する速度を示すデータがデータD7(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの位置と200回前の特定タイミングにおけるトラッカー12cの位置との差分に相当する速度を示すデータがデータD7(t−199)として表現されている。
また本実施形態では図5に示すように、時系列データD7(D7(t−199)〜D7(t))には、それぞれ、3軸方向の速度にそれぞれ対応するΔx、Δy、Δzといった、3個の要素が含まれている。当該3軸方向の速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の位置に対するx座標値の差分、y座標値の差分、z座標値の差分に相当する。
以上で説明したように、本実施形態では、入力層44に、1800(200×3×3)の要素を含むデータが入力されることとなる。
そして図4での説明と同様にして、入力層44に入力された上記のデータに基づいて、最終的には、出力層52から、最新の特定タイミングにおける左手首の向きに相当するデータD8(t)が出力54として出力される。図5に示すように、時系列データD8(t)には、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
そして本実施形態ではデータD8(t)が左手首ノード42jの向きの推定結果として用いられる。
本実施形態では、予め、図5に示す機械学習モデルが、左手の向き、左手の角速度、及び、左手の速度の組合せに対応付けられた左手首の向きを示すデータによる学習が実行されていることとする。そのため本実施形態では図5に示す学習済の機械学習モデルに、時系列データD5、時系列データD6、及び、時系列データD7を入力した際の出力であるデータD8(t)が、左手首ノード42jの向きの推定結果に相当することとなる。なお時系列データD7として、左手の速度の時系列を示すデータの代わりに左手の位置の時系列を示すデータが用いられてもよい。
ここで予め図5に示す機械学習モデルが、左手の向き、左手の角速度、及び、左手の位置又は速度の組合せに対応付けられた左手首の角速度を示すデータによる学習が実行されていてもよい。この場合は、図5に示す学習済の機械学習モデルに、時系列データD5、時系列データD6、及び、時系列データD7を入力した際の出力であるデータD8(t)は、左手首ノード42jの角速度の推定結果に相当することとなる。
また本実施形態では、図5に示す機械学習モデルと同様の機械学習モデルについて、右手の向き、右手の角速度、及び、右手の速度の組合せに対応付けられた右手首の向きを示すデータによる学習が実行される。そして当該学習済の機械学習モデルに、右手の向きの時系列を示すデータ、右手の角速度の時系列を示すデータ、及び、右手の速度の時系列を示すデータを入力した際に出力は、右手首ノード42mの向きの推定結果に相当することとなる。なお右手の速度の時系列を示すデータの代わりに右手の位置の時系列を示すデータが用いられてもよい。
ここで例えば図5に示す機械学習モデルと同様の機械学習モデルについて、右手の向き、右手の角加速度、及び、右手の位置又は速度の組合せに対応付けられた右手首の角速度を示すデータによる学習が実行されていてもよい。そして当該学習済の機械学習モデルに、右手の向きの時系列を示すデータ、右手の角速度の時系列を示すデータ、及び、右手の速度の時系列を示すデータを入力した際に出力は、右手首ノード42mの角速度の推定結果に相当することとなる。
以上のようにして本実施形態では、左手首ノード42j、及び、右手首ノード42mの向き又は角速度の推定が実行される。
そして本実施形態では例えば、逆運動学によって、以上で説明した推定結果に基づく、他のノード42の位置及び向きの推定が実行される。
本実施形態では、ユーザが胸部又は腰部にトラッカー12を装着することなく、スケルトンモデル40に含まれる各ノード42の位置及び向きが推定される。また本実施形態では、5個という限られた数のトラッカー12の位置や向きを示すデータから、左手首ノード42jの向き及び右手首ノード42mの向きが推定される。そして当該推定の結果に基づいて、逆運動学によって、左肘ノード42i及び右肘ノード42lの位置を的確に推定できる。以上のようにして本実施形態によれば、ユーザは多くのトラッカー12を装着することなく的確なボディトラッキングを行えることとなる。具体的には例えば、ユーザは胸部や腰部や手首にトラッカー12を装着することなく的確なボディトラッキングを行えることとなる。
以下、本実施形態に係るエンタテインメント装置14の機能、及び、エンタテインメント装置14で実行される処理についてさらに説明する。
図6は、本実施形態に係るエンタテインメント装置14で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るエンタテインメント装置14で、図6に示す機能のすべてが実装される必要はなく、また、図6に示す機能以外の機能が実装されていても構わない。
図6に示すように、エンタテインメント装置14には、機能的には例えば、変換部60、姿勢データ取得部62、姿勢データ記憶部64、時系列データ生成部66、時系列データ入力部68、出力取得部70、ボディトラッキング実行部72が含まれる。また変換部60には、第1変換部60a、第2変換部60b、及び、第3変換部60c、が含まれる。また時系列データ生成部66には、第1時系列データ生成部66a、第2時系列データ生成部66b、及び、第3時系列データ生成部66c、が含まれる。また時系列データ入力部68には、第1時系列データ入力部68a、第2時系列データ入力部68b、及び、第3時系列データ入力部68c、が含まれる。また出力取得部70には、第1出力取得部70a、第2出力取得部70b、及び、第3出力取得部70c、が含まれる。
変換部60は、プロセッサ30及び記憶部32を主として実装される。姿勢データ取得部62は、プロセッサ30及び入出力部36を主として実装される。姿勢データ記憶部64は、記憶部32を主として実装される。時系列データ生成部66、時系列データ入力部68、出力取得部70、ボディトラッキング実行部72は、プロセッサ30を主として実装される。本実施形態に係るエンタテインメント装置14は、ユーザの体に含まれる部位の向きを推定する体の部位の向き推定装置としての役割を担うこととなる。
以上の機能は、コンピュータであるエンタテインメント装置14にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ30で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してエンタテインメント装置14に供給されてもよい。
第1変換部60aは、本実施形態では例えば、図4に例示する、胸部ノード42fの向きの推定に用いられる学習済の機械学習モデルに相当する。なお第1変換部60aが機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェアや回路などのハードウェアによって実装されていてもよい。
第2変換部60bは、本実施形態では例えば、図5に例示する、左手首ノード42jの向きの推定に用いられる学習済の機械学習モデルに相当する。なお第2変換部60bが機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェアや回路などのハードウェアによって実装されていてもよい。
第3変換部60cは、本実施形態では例えば、図5に例示する機械学習モデルと同様の、右手首ノード42mの向きの推定に用いられる学習済の機械学習モデルに相当する。なお第3変換部60cが機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェアや回路などのハードウェアによって実装されていてもよい。
姿勢データ取得部62は、本実施形態では例えば、所定のサンプリングレートで特定されるトラッカー12a〜12eの位置及び向きを示す姿勢データを取得する。ここで例えば、所定のサンプリングレートでトラッカー12が、当該トラッカー12の位置及び向きを示す姿勢データを生成してもよい。そして生成に応じてトラッカー12が、当該トラッカー12が生成した姿勢データを、中継装置16経由でエンタテインメント装置14に送信してもよい。また例えば、カメラマイクユニット20が、所定のサンプリングレートでトラッカー12a〜12eの位置及び向きを示す姿勢データを生成してもよい。そして生成に応じてカメラマイクユニット20が、当該カメラマイクユニット20が生成した姿勢データを、エンタテインメント装置14に送信してもよい。
姿勢データ記憶部64は、本実施形態では例えば、姿勢データ取得部62が取得する姿勢データを記憶する。
第1時系列データ生成部66aは、本実施形態では例えば、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第1変換部60aに入力される時系列データを生成する。ここでは例えば、頭部の向きの時系列を示す時系列データD1、左手の角速度の時系列を示す時系列データD2、及び、右手の角速度の時系列を示す時系列データD3といった、3つの時系列データが生成される。このように第1時系列データ生成部66aが生成する複数の時系列データは、体に含まれる互いに異なる部位(ここでは例えば頭部、左手、及び、右手)についての時系列データであってもよい。
なお第1時系列データ生成部66aは、生成した時系列データを保持してもよい。そして例えば、最新の特定タイミングにおける姿勢データに基づいて時系列データD1(t)が生成されるようにしてもよい。そして、保持されている時系列データD1(t−198)〜D1(t)を時系列データD1(t−199)〜D1(t−1)として含み、生成された時系列データD1(t)をさらに含む時系列データD1が生成されるようにしてもよい。なお時系列データD2、D3についても同様に、保持されている時系列データと最新の特定タイミングにおける姿勢データとに基づいて生成されるようにしてもよい。
第2時系列データ生成部66bは、本実施形態では例えば、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第2変換部60bに入力される時系列データを生成する。ここでは例えば上述の、左手の向きの時系列を示す時系列データD5、左手の角速度の時系列を示す時系列データD6、及び、左手の速度の時系列を示す時系列データD7といった、3つの時系列データが生成される。このように第2時系列データ生成部66bが生成する複数の時系列データに、体に含まれる部位(ここでは例えば左手)の向きを示す時系列データと当該部位(ここでは例えば左手)の角速度を示す時系列データとが含まれていてもよい。なお時系列データD5〜D7についても上述のように、保持されている時系列データと最新の特定タイミングにおける姿勢データとに基づいて生成されるようにしてもよい。
第3時系列データ生成部66cは、本実施形態では例えば、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第3変換部60cに入力される時系列データを生成する。右手の向きについての時系列データ、右手の角速度についての時系列データ、及び、右手の速度についての時系列データが生成される。このように第3時系列データ生成部66cが生成する複数の時系列データに、体に含まれる部位(ここでは例えば右手)の向きを示す時系列データと当該部位(ここでは例えば右手)の角速度を示す時系列データとが含まれていてもよい。なおこれらの時系列データについても上述のように、保持されている時系列データと最新の特定タイミングにおける姿勢データとに基づいて生成されるようにしてもよい。
時系列データ入力部68は、本実施形態では例えば、それぞれ体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得する。そして時系列データ入力部68は、本実施形態では例えば、当該複数の時系列データを学習済の変換部60に入力する。なお時系列データは、上述のような向き、角速度(向きの差分)、速度(位置の差分)を示すデータには限定されない。例えば時系列データが、位置を示すデータ、加速度(速度の差分)を示すデータ、角加速度(角速度の差分)を示すデータであっても構わない。また時系列データは、例えば、ある部位の別の部位に対する相対的な位置、姿勢、又は、動きを示すデータであってもよい。より具体的には例えば、時系列データが、手の向きと腕の向きとの差分(手の向きを基準とする腕の相対的な向き)を示すデータであってもよい。
ここで第1時系列データ入力部68aは、本実施形態では例えば、第1時系列データ生成部66aが生成する時系列データを取得する。そして第1時系列データ入力部68aは、本実施形態では例えば、当該時系列データを第1変換部60aに入力する。また第2時系列データ入力部68bは、本実施形態では例えば、第2時系列データ生成部66bが生成する時系列データを取得する。そして第2時系列データ入力部68bは、本実施形態では例えば、当該時系列データを第2変換部60bに入力する。また第3時系列データ入力部68cは、本実施形態では例えば、第3時系列データ生成部66cが生成する時系列データを取得する。そして第3時系列データ入力部68cは、本実施形態では例えば、当該時系列データを第3変換部60cに入力する。
出力取得部70は、本実施形態では例えば、時系列データを変換部60に入力した際の出力である、時系列データが位置、姿勢、又は、動きを示す体の部位よりも当該体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得する。
ここで第1出力取得部70aは、本実施形態では例えば、第1時系列データ生成部66aが生成する時系列データを第1変換部60aに入力した際の出力を取得する。
例えば上述のように第1時系列データ生成部66aが生成する時系列データは、頭部の向き、左手の角速度、及び、右手の角速度を示すデータである。そしてスケルトンモデル40において、頭部ノード42aと胸部ノード42fとは1個のリンクを介して接続されている。またスケルトンモデル40において、左手ノード42bと胸部ノード42fとは4個のリンクを介して接続されている。またスケルトンモデル40において、右手ノード42cと胸部ノード42fとは4個のリンクを介して接続されている。そして胸部ノード42fは、頭部ノード42a、左手ノード42b、右手ノード42cのいずれに対しても体の中心に近いノード42である。そして本実施形態では例えば、第1時系列データ生成部66aが生成する時系列データが位置、姿勢、又は、動きを示す体の部位よりも当該体の中心に近い部位である胸部に相当する胸部ノード42fの位置、姿勢、又は、動きの推定結果が取得されることとなる。なおここで向きの推定値(ピッチ角、ヨー角、ロール角の組合せ)や角速度の推定値などといった位置、姿勢、又は、動きの推定値が取得されてもよい。また位置、姿勢、又は、動きの推定値の算出の基礎となるスコア値が取得されてもよい。
また第2出力取得部70bは、本実施形態では例えば、第2時系列データ生成部66bが生成する時系列データを第2変換部60bに入力した際の出力を取得する。
例えば上述のように第2時系列データ生成部66bが生成する時系列データは、左手の向きを示すデータ、左手の角速度を示すデータ、左手の位置を示すデータ、又は、左手の速度を示すデータのうちの複数である。そしてスケルトンモデル40において、左手ノード42bと左手首ノード42jとは1個のリンクを介して接続されている。そして左手首ノード42jは、左手ノード42bに対して体の中心に近いノード42である。そして本実施形態では例えば、第2時系列データ生成部66bが生成する時系列データが位置、姿勢、又は、動きを示す体の部位よりも当該体の中心に近い部位である左手の側の手首に相当する左手首ノード42jの位置、姿勢、又は、動きの推定結果が取得されることとなる。なおここで向きの推定値(ピッチ角、ヨー角、ロール角の組合せ)や角速度の推定値などといった位置、姿勢、又は、動きの推定値が取得されてもよい。また位置、姿勢、又は、動きの推定値の算出の基礎となるスコア値が取得されてもよい。
また第3出力取得部70cは、本実施形態では例えば、第3時系列データ生成部66cが生成する時系列データを第3変換部60cに入力した際の出力を取得する。そしてこの場合、第3時系列データ生成部66cが生成する時系列データが位置、姿勢、又は、動きを示す体の部位である右手よりも当該体の中心に近い部位である右手の側の手首に相当する右手首ノード42mの位置、姿勢、又は、動きの推定結果が取得されることとなる。なおここで向きの推定値(ピッチ角、ヨー角、ロール角の組合せ)や角速度の推定値などといった位置、姿勢、又は、動きの推定値が取得されてもよい。また位置、姿勢、又は、動きの推定値の算出の基礎となるスコア値が取得されてもよい。
なお変換部60が出力して出力取得部70が取得するデータは、上述のような向き又は角速度(向きの差分)を示すデータには限定されない。例えば変換部60が、速度(位置の差分)を示すデータ、位置を示すデータ、加速度(速度の差分)を示すデータ、角加速度(角速度の差分)を示すデータを出力してもよい。また変換部60は、ある部位の別の部位に対する相対的な位置、姿勢、又は、動きを示すデータを出力してもよい。であってもよい。より具体的には例えば、変換部60が、手の向きと腕の向きとの差分(手の向きを基準とする腕の相対的な向き)を示すデータを出力してもよい。
ボディトラッキング実行部72は、本実施形態では例えば、出力取得部70が取得する向きの推定結果、及び、姿勢データ取得部62が取得する姿勢データに基づいて、ボディトラッキングの処理を実行する。ここでは例えば、スケルトンモデル40に含まれる複数のノード42のそれぞれについての位置及び向きが推定される。なおボディトラッキング実行部72は、姿勢データ記憶部64に記憶されている姿勢データに基づいてボディトラッキングの処理を実行してもよい。
ここで例えば、トラッカー12aの位置及び向きを示す姿勢データに基づいて、頭部ノード42aの位置及び向きが決定されてもよい。また例えば、トラッカー12bの位置及び向きを示す姿勢データに基づいて、左手ノード42bの位置及び向きが決定されてもよい。また例えば、トラッカー12cの位置及び向きを示す姿勢データに基づいて、右手ノード42cの位置及び向きが決定されてもよい。また例えば、トラッカー12dの位置及び向きを示す姿勢データに基づいて、左足ノード42dの位置及び向きが決定されてもよい。また例えば、トラッカー12eの位置及び向きを示す姿勢データに基づいて、右足ノード42eの位置及び向きが決定されてもよい。
またボディトラッキング実行部72は、上述のように、決定又は推定されたノード42の位置又は向きに基づいて、逆運動学によって、推定されていないノード42の位置及び推定されていないノード42の向きを推定してもよい。
体に含まれる部位に相当するノード42の向きは、当該ノード42と1又は複数のリンクで接続されている、当該部位よりも体の中心から離れた他のノード42の回転の時間的な動きのパターンを用いれば的確に推定できると考えられる。そこで本実施形態ではこのことに着目して上述のように、それぞれ体の部位の向き又は角速度を示す複数の時系列データを変換部60に入力した際の出力に基づいて、当該部位よりも体の中心に近い当該体の別の部位の向きが推定されるようにした。
ここで、本実施形態に係るエンタテインメント装置14で行われる処理の流れの一例を、図7に例示するフロー図を参照しながら説明する。本処理例では、以下のS101〜S112に示す処理が所定のサンプリングレートで繰り返し実行される。
まず、姿勢データ取得部62が、トラッカー12によって生成される最新の特定タイミングにおける当該トラッカー12の位置及び向きを示す姿勢データを取得して、姿勢データ記憶部64に記憶させる(S101)。ここでは例えば、姿勢データ取得部62は、トラッカー12a〜12eのそれぞれについての、当該トラッカー12の位置及び向きを示す姿勢データを取得する。
そして第1時系列データ生成部66aが、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第1変換部60aに入力される時系列データを生成する(S102)。
そして第2時系列データ生成部66bが、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第2変換部60bに入力される時系列データを生成する(S103)。
そして第3時系列データ生成部66cが、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第3変換部60cに入力される時系列データを生成する(S104)。
そして第1時系列データ入力部68aが、S102に示す処理で生成された時系列データを取得して、当該時系列データを第1変換部60aに入力する(S105)。
そして第2時系列データ入力部68bが、S103に示す処理で生成された時系列データを取得して、当該時系列データを第2変換部60bに入力する(S106)。
そして第3時系列データ入力部68cが、S104に示す処理で生成された時系列データを取得して、当該時系列データを第3変換部60cに入力する(S107)。
そして第1出力取得部70aが、S105に示す処理での入力に応じた、第1変換部60aからの出力である、胸部ノード42fの向きの推定結果を取得する(S108)。
そして第2出力取得部70bが、S106に示す処理での入力に応じた、第2変換部60bからの出力である、左手首ノード42jの向きの推定結果を取得する(S109)。
そして第3出力取得部70cが、S107に示す処理での入力に応じた、第3変換部60cからの出力である、右手首ノード42mの向きの推定結果を取得する(S110)。
そしてボディトラッキング実行部72が、本サイクルにおける頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、及び、右足ノード42eのそれぞれについて、位置及び向きを決定する(S111)。ここで例えば、S101に示す処理で取得された姿勢データに基づいて、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、及び、右足ノード42eのそれぞれについての位置及び向きが決定されてもよい。
そしてボディトラッキング実行部72が、逆運動学によって、スケルトンモデル40に含まれるノード42の位置及び向きのうちの、S108〜S111に示す処理で決定又は推定結果の取得が行われていない残りを、逆運動学によって推定する(S112)。
以上のようにして1サイクルにおけるスケルトンモデル40に含まれるすべてのノード42についての位置及び向きの推定が実行される。そしてS101に示す処理に戻る。
以上で説明した処理例に示す処理において、各ステップの実行順序は上述のものに限定されない。例えばS102〜S104に示す処理の実行順序、S105〜S107に示す処理の実行順序、S108〜S110に示す処理の実行順序は上述のものに限定されない。
またS102に示す処理に続いて、S105、S108に示す処理が順次実行されてもよい。同様にS103に示す処理に続いて、S106、S109に示す処理が順次実行されてもよい。同様にS104に示す処理に続いて、S107、S110に示す処理が順次実行されてもよい。
また上述の各ステップが並列処理で実行されてもよい。例えば、S102、S105、及び、S108に示す処理、S103、S106、及び、S109に示す処理、S104、S107、及び、S110に示す処理が、並列処理で実行されてもよい。
なお上述のように、第1変換部60aが胸部ノード42fではなく腰部ノード42gの向きの推定に用いられる機械学習モデルであってもよい。この場合、第1出力取得部70aが、腰部ノード42gの向きの推定結果を取得してもよい。
なお、本発明は上述の実施形態に限定されるものではない。
例えばトラッカー12aは、ヘッドマウントディスプレイ(HMD)であってもよい。この場合に、ユーザに含まれる複数の部位の位置又は向きに応じたゲーム処理等の各種の処理の結果に応じた映像が例えばHMDの表示部に表示されるようにしてもよい。
また例えば、図6に示す機能の一部又は全部がトラッカー12によって実装されてもよい。
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。

Claims (8)

  1. それぞれトラッカーが装着されている複数の体の部位について、当該トラッカーの位置及び向きを示す姿勢データに基づいて特定される当該体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得する時系列データ取得部と、
    前記複数の時系列データを学習済の機械学習モデルである変換部に入力する入力部と、
    前記時系列データを前記変換部に入力した際の出力である前記部位よりも前記体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得する出力取得部と
    前記推定結果と、前記トラッカーの位置及び向きを示す姿勢データと、に基づいて、前記別の部位と、当該トラッカーが装着されている体の部位と、の間の部位の位置及び向きを、逆運動学によって推定するボディトラッキングの処理を実行するボディトラッキング実行部と、
    を含むことを特徴とする推定装置。
  2. 前記複数の時系列データは、互いに異なる前記部位についての時系列データである、
    ことを特徴とする請求項1に記載の推定装置。
  3. 前記入力部は、前記体に含まれる頭部の向きを示す第1時系列データと、前記体に含まれる左手の角速度を示す第2時系列データと、前記体に含まれる右手の角速度を示す第3時系列データと、を前記変換部に入力し、
    前記出力取得部は、前記体に含まれる胸部若しくは腰部の向き、又は、前記体に含まれる胸部若しくは腰部の角速度の推定結果を取得する、
    ことを特徴とする請求項2に記載の推定装置。
  4. 前記複数の時系列データには、前記部位の向きを示す時系列データ、当該部位の角速度を示す時系列データ、当該部位の位置を示す時系列データ、又は、当該部位の速度を示す時系列データのうちの複数が含まれる、
    ことを特徴とする請求項1に記載の推定装置。
  5. 前記入力部は、前記体に含まれる手の向きを示す第1時系列データと、当該手の角速度を示す第2時系列データと、当該手の位置又は速度を示す第3時系列データと、を前記変換部に入力し、
    前記出力取得部は、前記体に含まれる前記手の側の手首の向き又は角速度の推定結果を取得する、
    ことを特徴とする請求項4に記載の推定装置。
  6. 前記複数の時系列データには、前記部位の速度についての時系列データ、又は、前記部
    位の角速度についての時系列データが含まれる、
    ことを特徴とする請求項1から5のいずれか一項に記載の推定装置。
  7. それぞれトラッカーが装着されている複数の体の部位について、当該トラッカーの位置及び向きを示す姿勢データに基づいて特定される当該体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得するステップと、
    前記複数の時系列データを学習済の機械学習モデルである変換部に入力するステップと、
    前記時系列データを前記変換部に入力した際の出力である前記部位よりも前記体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得するステップと
    前記推定結果と、前記トラッカーの位置及び向きを示す姿勢データと、に基づいて、前記別の部位と、当該トラッカーが装着されている体の部位と、の間の部位の位置及び向きを、逆運動学によって推定するボディトラッキングの処理を実行するステップと、
    を含むことを特徴とする推定方法。
  8. それぞれトラッカーが装着されている複数の体の部位について、当該トラッカーの位置及び向きを示す姿勢データに基づいて特定される当該体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得する手順、
    前記複数の時系列データを学習済の機械学習モデルである変換部に入力する手順、
    前記時系列データを前記変換部に入力した際の出力である前記部位よりも前記体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得する手順
    前記推定結果と、前記トラッカーの位置及び向きを示す姿勢データと、に基づいて、前記別の部位と、当該トラッカーが装着されている体の部位と、の間の部位の位置及び向きを、逆運動学によって推定するボディトラッキングの処理を実行する手順、
    をコンピュータに実行させることを特徴とするプログラム。
JP2020503200A 2018-03-01 2018-03-01 推定装置、推定方法及びプログラム Active JP6874207B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/007716 WO2019167214A1 (ja) 2018-03-01 2018-03-01 推定装置、推定方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2019167214A1 JPWO2019167214A1 (ja) 2020-12-03
JP6874207B2 true JP6874207B2 (ja) 2021-05-19

Family

ID=67806028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020503200A Active JP6874207B2 (ja) 2018-03-01 2018-03-01 推定装置、推定方法及びプログラム

Country Status (3)

Country Link
US (1) US11660526B2 (ja)
JP (1) JP6874207B2 (ja)
WO (1) WO2019167214A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7370777B2 (ja) * 2019-09-13 2023-10-30 株式会社東芝 学習システム、分析システム、学習方法、分析方法、プログラム、及び記憶媒体

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109475A (en) * 1988-09-19 1992-04-28 Hitachi, Ltd. Method and a system for selection of time series data
JPH0973440A (ja) * 1995-09-06 1997-03-18 Fujitsu Ltd コラム構造の再帰型ニューラルネットワークによる時系列トレンド推定システムおよび方法
JP3337938B2 (ja) * 1996-04-25 2002-10-28 松下電器産業株式会社 3次元骨格構造の動き送受信装置、および動き送受信方法
JP4053627B2 (ja) * 1996-04-25 2008-02-27 松下電器産業株式会社 通信型コンピュータグラフィックスアニメーション方法
JP2000132305A (ja) 1998-10-23 2000-05-12 Olympus Optical Co Ltd 操作入力装置
JP3668663B2 (ja) * 2000-02-21 2005-07-06 日本電信電話株式会社 仮想空間における動作入力方法および装置およびその動作入力プログラムを記録した記録媒体
NL1030440C2 (nl) * 2005-11-16 2007-05-21 Univ Twente Bewegingsvolgsysteem.
KR101483713B1 (ko) * 2008-06-30 2015-01-16 삼성전자 주식회사 모션 캡쳐 장치 및 모션 캡쳐 방법
US8253746B2 (en) * 2009-05-01 2012-08-28 Microsoft Corporation Determine intended motions
EP2758140A1 (en) 2011-09-20 2014-07-30 Brian Francis Mooney Apparatus and method for analysing a golf swing
US10415975B2 (en) * 2014-01-09 2019-09-17 Xsens Holding B.V. Motion tracking with reduced on-body sensors set
JP2017520336A (ja) * 2014-03-17 2017-07-27 コア スポーツ テクノロジー グループCore Sports Technology Group 人体および物体運動への生体力学フィードバックを送達するための方法およびシステム
US10126427B2 (en) * 2014-08-20 2018-11-13 Polar Electro Oy Estimating local motion of physical exercise
US20160078287A1 (en) * 2014-08-29 2016-03-17 Konica Minola Laboratory U.S.A., Inc. Method and system of temporal segmentation for gesture analysis

Also Published As

Publication number Publication date
WO2019167214A1 (ja) 2019-09-06
US20210038974A1 (en) 2021-02-11
JPWO2019167214A1 (ja) 2020-12-03
US11660526B2 (en) 2023-05-30

Similar Documents

Publication Publication Date Title
WO2019203189A1 (ja) プログラム、情報処理装置、及び情報処理方法
US11083950B2 (en) Information processing apparatus and information processing method
JP7038847B2 (ja) スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム
WO2020110659A1 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2020049692A2 (ja) 推定装置、学習装置、推定方法、学習方法及びプログラム
JP7102618B2 (ja) スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム
US11009963B2 (en) Sign language inputs to a vehicle user interface
JP6874207B2 (ja) 推定装置、推定方法及びプログラム
TWI738543B (zh) 方向預測方法、虛擬實境頭戴式裝置以及非暫態電腦可讀取媒體
US11589778B2 (en) Body size estimation apparatus, body size estimation method, and program
JP6975347B2 (ja) トラッカーのキャリブレーション装置、トラッカーのキャリブレーション方法及びプログラム
JP7005788B2 (ja) スケルトンモデル更新装置、スケルトンモデル更新方法及びプログラム
JP7334337B2 (ja) モーション決定装置、学習装置、モーション決定方法、学習方法及びプログラム
US20240175893A1 (en) Information processing apparatus, information processing method, and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200317

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210324

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: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210421

R150 Certificate of patent or registration of utility model

Ref document number: 6874207

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150