図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として出力される。図8に示すように、左手首向きデータ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)。ここで例えば、S101に示す処理で取得された姿勢データに基づいて、頭部ノード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の高さが推定されるようにしてもよい。
図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の向きの推定、の順に実行されるようにしてもよい。
以下、まずは、(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の位置に基づいて逐次推定されるものであってもよい。
ここで、本実施形態に係るエンタテインメント装置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に記憶されている、身長サイズデータの値、腕長さデータの値、又は、左右身体サイズデータの値のいずれかで割った値が用いられてもよい。
なお、本発明は上述の実施形態に限定されるものではない。
例えば、特徴抽出部68及び推定部72が機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェア、あるいは、回路などのハードウェアによって実装されてもよい。
また例えばトラッカー12aは、ヘッドマウントディスプレイ(HMD)であってもよい。この場合に、ユーザに含まれる複数の部位の位置又は向きに応じたゲーム処理等の各種の処理の結果に応じた映像が例えばHMDの表示部に表示されるようにしてもよい。
また例えば、図9に示す機能の一部又は全部がトラッカー12によって実装されてもよい。
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。