(58)【調査した分野】(Int.Cl.,DB名)
前記入力部は、前記体に含まれる頭部の向きを示す第1時系列データと、前記体に含まれる左手の角速度を示す第2時系列データと、前記体に含まれる右手の角速度を示す第3時系列データと、を前記変換部に入力し、
前記出力取得部は、前記体に含まれる胸部若しくは腰部の向き、又は、前記体に含まれる胸部若しくは腰部の角速度の推定結果を取得する、
ことを特徴とする請求項2に記載の推定装置。
前記複数の時系列データには、前記部位の向きを示す時系列データ、当該部位の角速度を示す時系列データ、当該部位の位置を示す時系列データ、又は、当該部位の速度を示す時系列データのうちの複数が含まれる、
ことを特徴とする請求項1に記載の推定装置。
前記入力部は、前記体に含まれる手の向きを示す第1時系列データと、当該手の角速度を示す第2時系列データと、当該手の位置又は速度を示す第3時系列データと、を前記変換部に入力し、
前記出力取得部は、前記体に含まれる前記手の側の手首の向き又は角速度の推定結果を取得する、
ことを特徴とする請求項4に記載の推定装置。
【発明を実施するための形態】
【0015】
図1は、本発明の一実施形態に係るエンタテインメントシステム10の構成の一例を示す図である。
図2は、本実施形態に係るエンタテインメント装置14の構成の一例を示す図である。
【0016】
図1に示すように、本実施形態に係るエンタテインメントシステム10は、複数のトラッカー12(
図1の例ではトラッカー12a〜12e)とエンタテインメント装置14と中継装置16とディスプレイ18とカメラマイクユニット20とを含んでいる。
【0017】
本実施形態に係るトラッカー12は、例えば、当該トラッカー12の位置や向きを追跡するためのデバイスである。ここでトラッカー12が、例えばカメラ、慣性センサ(IMU)、地磁気センサ(方位センサ)、加速度センサ、モーションセンサ、GPS(Global Positioning System)モジュールなどといった各種センサを備えていてもよい。そしてトラッカー12は、当該トラッカー12が備えるセンサによる計測結果であるセンシングデータに基づいて、当該トラッカー12の位置及び向きを特定してもよい。
【0018】
また例えば、後述するカメラマイクユニット20に含まれるカメラ20aが撮影する、トラッカー12の像が含まれる画像に基づいて、当該トラッカー12の位置及び向きが特定されてもよい。
【0019】
本実施形態ではトラッカー12a、トラッカー12b、トラッカー12c、トラッカー12d、トラッカー12eは、それぞれ、ユーザの頭部、左手、右手、左足、右足に装着される。ここで
図1に示すようにトラッカー12bやトラッカー12cはユーザによって手で把持されるものであってもよい。本実施形態ではトラッカー12a、トラッカー12b、トラッカー12c、トラッカー12d、トラッカー12eによって特定される位置及び向きは、それぞれ、ユーザの頭部、左手、右手、左足、右足の位置及び向きに相当する。このように本実施形態では複数のトラッカー12によって、ユーザの体に含まれる複数の部位の位置及び向きが特定されることとなる。
【0020】
本実施形態に係るエンタテインメント装置14は、例えばゲームコンソール、DVDプレイヤ、Blu−ray(登録商標)プレイヤなどといったコンピュータである。本実施形態に係るエンタテインメント装置14は、例えば記憶されている、あるいは、光ディスクに記録された、ゲームプログラムの実行やコンテンツの再生などによって映像や音声を生成する。そして本実施形態に係るエンタテインメント装置14は、生成される映像を表す映像信号や生成される音声を表す音声信号を、中継装置16を経由してディスプレイ18に出力する。
【0021】
本実施形態に係るエンタテインメント装置14には、例えば
図2に示すように、プロセッサ30、記憶部32、通信部34、入出力部36が含まれる。
【0022】
プロセッサ30は、例えばエンタテインメント装置14にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。本実施形態に係るプロセッサ30には、CPUから供給されるグラフィックスコマンドやデータに基づいてフレームバッファに画像を描画するGPU(Graphics Processing Unit)も含まれている。
【0023】
記憶部32は、例えばROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部32には、プロセッサ30によって実行されるプログラムなどが記憶される。また、本実施形態に係る記憶部32には、GPUにより画像が描画されるフレームバッファの領域が確保されている。
【0024】
通信部34は、例えば無線LANモジュールなどの通信インタフェースなどである。
【0025】
入出力部36は、HDMI(登録商標)(High-Definition Multimedia Interface)ポート、USBポートなどの入出力ポートである。
【0026】
本実施形態に係る中継装置16は、エンタテインメント装置14から出力される映像信号や音声信号を中継してディスプレイ18に出力するコンピュータである。
【0027】
本実施形態に係るディスプレイ18は、例えば液晶ディスプレイ等であり、エンタテインメント装置14から出力される映像信号が表す映像などを表示させる。
【0028】
本実施形態に係るカメラマイクユニット20は、例えば被写体を撮像した画像をエンタテインメント装置14に出力するカメラ20a及び周囲の音声を取得して当該音声を音声データに変換してエンタテインメント装置14に出力するマイク20bを含んでいる。また本実施形態に係るカメラ20aはステレオカメラである。
【0029】
トラッカー12と中継装置16とは、例えば、無線によるデータの送受信が互いに可能になっている。エンタテインメント装置14と中継装置16とは、例えば、HDMIケーブルやUSBケーブルなどを介して接続されており、データの送受信が互いに可能になっている。中継装置16とディスプレイ18とは、例えば、HDMIケーブルなどを介して接続されている。エンタテインメント装置14とカメラマイクユニット20とは、例えば、AUXケーブルなどを介して接続されている。
【0030】
本実施形態では例えば、エンタテインメント装置14によってゲームプログラムが実行されている際に、
図3に示すスケルトンモデル40における、ユーザの体に含まれる複数の部位の位置又は向きに応じたゲーム処理等の各種の処理が実行される。そして当該処理の結果に応じた映像が例えばディスプレイ18に表示される。
【0031】
図3に示すように、本実施形態に係るスケルトンモデル40には、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eが含まれている。頭部ノード42aは、トラッカー12aが装着されるユーザの頭部に相当する。左手ノード42bは、トラッカー12bが装着されるユーザの左手に相当する。右手ノード42cは、トラッカー12cが装着されるユーザの右手に相当する。左足ノード42dは、トラッカー12dが装着されるユーザの左足に相当する。右足ノード42eは、トラッカー12eが装着されるユーザの右足に相当する。
【0032】
またスケルトンモデル40には、上記のノード42の他に、胸部ノード42f、腰部ノード42g、左肩ノード42h、左肘ノード42i、左手首ノード42jが含まれている。またスケルトンモデル40には、さらに、右肩ノード42k、右肘ノード42l、右手首ノード42m、左膝ノード42n、左足首ノード42o、右膝ノード42p、右足首ノード42qが含まれている。
【0033】
ここで
図3に示すように、頭部ノード42aと胸部ノード42fとはリンクで接続されている。また胸部ノード42fと腰部ノード42gとはリンクで接続されている。
【0034】
また胸部ノード42fと左肩ノード42hとはリンクで接続されている。また左肩ノード42hと左肘ノード42iとはリンクで接続されている。また左肘ノード42iと左手首ノード42jとはリンクで接続されている。また左手首ノード42jと左手ノード42bとはリンクで接続されている。
【0035】
また胸部ノード42fと右肩ノード42kとはリンクで接続されている。また右肩ノード42kと右肘ノード42lとはリンクで接続されている。また右肘ノード42lと右手首ノード42mとはリンクで接続されている。また右手首ノード42mと右手ノード42cとはリンクで接続されている。
【0036】
また腰部ノード42gと左膝ノード42nとはリンクで接続されている。また左膝ノード42nと左足首ノード42oとはリンクで接続されている。また左足首ノード42oと左足ノード42dとはリンクで接続されている。
【0037】
また腰部ノード42gと右膝ノード42pとはリンクで接続されている。また右膝ノード42pと右足首ノード42qとはリンクで接続されている。また右足首ノード42qと右足ノード42eとはリンクで接続されている。
【0038】
これらのノード42は、それぞれユーザの体に含まれる部位に対応している。そして本実施形態では例えば、複数のトラッカー12について特定される位置及び向きに基づくボディトラッキングが行える。ここでは例えば、スケルトンモデル40に含まれる複数のノード42のそれぞれについての、初期状態における基準の位置に対する位置及び初期状態における基準の向きに対する向きの推定が実行される。
【0039】
ここで例えば、トラッカー12aについて特定される位置及び向きを示すデータに基づいて、頭部ノード42aの位置及び向きは決定できる。同様に、トラッカー12bについて特定される位置及び向きを示すデータに基づいて、左手ノード42bの位置及び向きは決定できる。また、トラッカー12cについて特定される位置及び向きを示すデータに基づいて、右手ノード42cの位置及び向きは決定できる。また、トラッカー12dについて特定される位置及び向きを示すデータに基づいて、左足ノード42dの位置及び向きは決定できる。また、トラッカー12eについて特定される位置及び向きを示すデータに基づいて、右足ノード42eの位置及び向きは決定できる。
【0040】
ここで、決定される頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eの位置及び向きを示すデータに基づいて、逆運動学(IK)によって、他のノード42の位置及び向きを推定することが考えられる。
【0041】
しかしこの場合、胸部ノード42f又は腰部ノード42gの向きの情報がないと、逆運動学によって、他のノード42についての位置及び向きを推定することができない。
【0042】
また左手ノード42bの位置及び向きを示すデータがあっても左手首ノード42jの向きの情報がないと、逆運動学によって、左肘ノード42iの位置及び向きを推定することが困難なことがある。例えば、手を振る動作などといった手だけを動かす動作を行った際に、実際には肘が大きく動いていないにも関わらず肘の位置が大きく動く推定結果が得られてしまうことがある。
【0043】
同様に、右手ノード42cの位置及び向きを示すデータがあっても右手首ノード42mの向きの情報がないと、逆運動学によって、右肘ノード42lの位置及び向きを推定することが困難なことがある。
【0044】
そこで本実施形態では以下のようにして、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eの位置及び向きを示すデータに基づいて、胸部ノード42f又は腰部ノード42gの向きを的確に推定できるようにした。また本実施形態では以下のようにして、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、右足ノード42eの位置及び向きを示すデータに基づいて、左手首ノード42j及び右手首ノード42mの向きを的確に推定できるようにした。
【0045】
なお本実施形態では例えば、所定のサンプリングレートでトラッカー12a〜12eのそれぞれについて、当該トラッカー12の位置及び向きの特定が行われることとする。そしてトラッカー12の位置及び向きの特定に応じて、当該トラッカー12の位置及び向きを示すデータが、エンタテインメント装置14に送信されることとする。そしてエンタテインメント装置14において、当該データに基づく上述の向きの推定が実行されることとする。
【0046】
以下、胸部ノード42fの向きの推定について説明する。なお以下に示す方法により、腰部ノード42gの向きの推定も同様に可能である。
【0047】
図4は、胸部ノード42fの向きの推定に用いられる機械学習モデルの一例を示す図である。
図4に示すように、胸部ノード42fの向きの推定に用いられる機械学習モデルには、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
【0048】
本実施形態では例えば、トラッカー12による位置及び向きの特定に応じて、入力層44には、頭部の向きの時系列を示す時系列データD1、左手の角速度の時系列を示す時系列データD2、及び、右手の角速度の時系列を示す時系列データD3が入力される。
【0049】
本実施形態では例えば、直近200回の特定におけるトラッカー12aの向きの時系列を示すデータが時系列データD1(D1(t−199)〜D1(t))として入力層44に入力される。
【0050】
ここでは例えば、最新の特定タイミングにおけるトラッカー12aの向きを示すデータがデータD1(t)として表現されている。また、直前の特定タイミングにおけるトラッカー12aの向きを示すデータがデータD1(t−1)として表現されている。また、199回前の特定タイミングにおけるトラッカー12aの向きを示すデータがデータD1(t−199)として表現されている。
【0051】
また本実施形態では
図4に示すように、時系列データD1(D1(t−199)〜D1(t))には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
【0052】
また本実施形態では、前回の特定における向きを示すデータの値と今回の特定における向きを示すデータの値との差分が、角速度を示す値として用いられる。そして本実施形態では、直近201回の特定におけるトラッカー12bの向きを示すデータに基づく、トラッカー12bの角速度の時系列を示すデータが、時系列データD2(D2(t−199)〜D2(t))として入力層44に入力される。
【0053】
ここでは例えば最新の特定タイミングにおけるトラッカー12bの向きと直前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD2(t)として表現されている。また直前の特定タイミングにおけるトラッカー12bの向きと2回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD2(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの向きと200回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD2(t−199)として表現されている。
【0054】
また本実施形態では
図4に示すように、時系列データD2(D2(t−199)〜D2(t))には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。ここで当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
【0055】
また本実施形態では、直近201回の特定におけるトラッカー12cの向きを示すデータに基づく、トラッカー12cの角速度の時系列を示すデータが、時系列データD3(D3(t−199)〜D3(t))として入力層44に入力される。
【0056】
ここでは例えば最新の特定タイミングにおけるトラッカー12cの向きと直前の特定タイミングにおけるトラッカー12cの向きとの差分に相当する角速度を示すデータがデータD3(t)として表現されている。また直前の特定タイミングにおけるトラッカー12cの向きと2回前の特定タイミングにおけるトラッカー12cの向きとの差分に相当する角速度を示すデータがデータD3(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12cの向きと200回前の特定タイミングにおけるトラッカー12cの向きとの差分に相当する角速度を示すデータがデータD3(t−199)として表現されている。
【0057】
また本実施形態では
図4に示すように、時系列データD3(D3(t−199)〜D3(t))には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。上述のように当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
【0058】
以上で説明したように、本実施形態では、入力層44に、1800(200×3×3)の要素を含むデータが入力されることとなる。
【0059】
そして入力層44に入力された上記のデータは、中間ブロック46に入力される。中間ブロック46は、本実施形態では例えば、LSTM(Long short-term memory)が実装されたRNN(Recurrent Neural Network)(LSTMブロック)である。
【0060】
そして中間ブロック46の出力が、第1中間層48に入力される。そして第1中間層48からの出力が第2中間層50に入力される。第1中間層48及び第2中間層50は、例えば正規化線形関数(ReLU)を活性化関数とする全結合層である。
【0061】
そして第2中間層50からの出力が出力層52に入力される。出力層52は、例えば線形関数を活性化関数とする層である。そして出力層52からは、最新の特定タイミングにおける胸部の向きに相当するデータD4(t)が出力54として出力される。
図4に示すように、時系列データD4(t)には、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
【0062】
本実施形態では、予め、
図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた胸部の向きを示すデータによる学習が実行されていることとする。そのため本実施形態では
図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)が、胸部ノード42fの向きの推定結果に相当することとなる。
【0063】
ここで予め
図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた腰部の向きを示すデータによる学習が実行されていてもよい。この場合は、
図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)は、腰部ノード42gの向きの推定結果に相当することとなる。
【0064】
また予め
図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた胸部の角速度を示すデータによる学習が実行されていてもよい。この場合は、
図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)は、胸部ノード42fの角速度の推定結果に相当することとなる。
【0065】
また予め
図4に示す機械学習モデルについて、頭部の向き、左手の角速度、及び、右手の角速度の組合せに対応付けられた腰部の角速度を示すデータによる学習が実行されていてもよい。この場合は、
図4に示す学習済の機械学習モデルに、時系列データD1、時系列データD2、及び、時系列データD3を入力した際の出力であるデータD4(t)は、腰部ノード42gの角速度の推定結果に相当することとなる。
【0066】
以上のようにして本実施形態では、時系列データD1〜D3に基づく胸部ノード42f若しくは腰部ノード42gの向き、又は、胸部ノード42f若しくは腰部ノード42gの角速度の推定が実行される。
【0067】
以下、左手首ノード42jの向きの推定について説明する。なお以下に示す方法により、右手首ノード42mの向きの推定も同様に可能である。
【0068】
図5は、左手首ノード42jの向きの推定に用いられる機械学習モデルの一例を示す図である。
図5に示すように、左手首ノード42jの向きの推定に用いられる機械学習モデルには、
図4に示す機械学習モデルと同様、入力層44と、中間ブロック46と、第1中間層48と、第2中間層50と、出力層52と、が含まれている。
【0069】
本実施形態では例えば、トラッカー12による位置及び向きの特定に応じて、入力層44には、左手の向きの時系列を示すデータD5、左手の角速度の時系列を示すデータD6、及び、左手の速度の時系列を示すデータD7が入力される。
【0070】
本実施形態では例えば、直近200回の特定におけるトラッカー12bの向きの時系列を示すデータが時系列データD5(D5(t−199)〜D5(t))として入力層44に入力される。
【0071】
ここでは例えば、最新の特定タイミングにおけるトラッカー12bの向きを示すデータがデータD5(t)として表現されている。直前の特定タイミングにおけるトラッカー12bの向きを示すデータがデータD5(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの向きを示すデータがデータD5(t−199)として表現されている。
【0072】
また本実施形態では
図5に示すように、時系列データD5(D5(t−199)〜D5(t))には、それぞれ、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。上述のように当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
【0073】
また本実施形態では、前回の特定における向きを示すデータの値と今回の特定における向きを示すデータの値との差分が、角速度を示す値として用いられる。そして本実施形態では、直近201回の特定におけるトラッカー12bの向きを示すデータに基づく、トラッカー12bの角速度の時系列を示すデータが、時系列データD6(D6(t−199)〜D6(t))として入力層44に入力される。
【0074】
ここでは例えば最新の特定タイミングにおけるトラッカー12bの向きと直前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD6(t)として表現されている。また直前の特定タイミングにおけるトラッカー12bの向きと2回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD6(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの向きと200回前の特定タイミングにおけるトラッカー12bの向きとの差分に相当する角速度を示すデータがデータD6(t−199)として表現されている。
【0075】
また本実施形態では
図5に示すように、時系列データD6(D6(t−199)〜D6(t))には、それぞれ、ピッチ角速度(ΔPitch)、ヨー角速度(ΔYaw)、ロール角速度(ΔRoll)といった、3個の要素が含まれている。上述のように当該ピッチ角速度、当該ヨー角速度、当該ロール角速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の向きに対するピッチ角の差分、ヨー角の差分、ロール角の差分に相当する。
【0076】
また本実施形態では、直近201回の特定におけるトラッカー12bの位置を示すデータに基づく、トラッカー12bの速度の時系列を示すデータが、時系列データD7(D7(t−199)〜D7(t))として入力層44に入力される。
【0077】
ここでは例えば最新の特定タイミングにおけるトラッカー12bの位置と直前の特定タイミングにおけるトラッカー12bの位置との差分に相当する速度を示すデータがデータD7(t)として表現されている。また直前の特定タイミングにおけるトラッカー12bの位置と2回前の特定タイミングにおけるトラッカー12bの位置との差分に相当する速度を示すデータがデータD7(t−1)として表現されている。そして199回前の特定タイミングにおけるトラッカー12bの位置と200回前の特定タイミングにおけるトラッカー12cの位置との差分に相当する速度を示すデータがデータD7(t−199)として表現されている。
【0078】
また本実施形態では
図5に示すように、時系列データD7(D7(t−199)〜D7(t))には、それぞれ、3軸方向の速度にそれぞれ対応するΔx、Δy、Δzといった、3個の要素が含まれている。当該3軸方向の速度は、それぞれ、連続する2つの特定タイミング間における上述の基準の位置に対するx座標値の差分、y座標値の差分、z座標値の差分に相当する。
【0079】
以上で説明したように、本実施形態では、入力層44に、1800(200×3×3)の要素を含むデータが入力されることとなる。
【0080】
そして
図4での説明と同様にして、入力層44に入力された上記のデータに基づいて、最終的には、出力層52から、最新の特定タイミングにおける左手首の向きに相当するデータD8(t)が出力54として出力される。
図5に示すように、時系列データD8(t)には、ピッチ角(Pitch)、ヨー角(Yaw)、ロール角(Roll)といった、3個の要素が含まれている。当該ピッチ角、当該ヨー角、当該ロール角のそれぞれは例えば、上述の基準の向きに対するピッチ角、ヨー角、ロール角に相当する。
【0081】
そして本実施形態ではデータD8(t)が左手首ノード42jの向きの推定結果として用いられる。
【0082】
本実施形態では、予め、
図5に示す機械学習モデルが、左手の向き、左手の角速度、及び、左手の速度の組合せに対応付けられた左手首の向きを示すデータによる学習が実行されていることとする。そのため本実施形態では
図5に示す学習済の機械学習モデルに、時系列データD5、時系列データD6、及び、時系列データD7を入力した際の出力であるデータD8(t)が、左手首ノード42jの向きの推定結果に相当することとなる。なお時系列データD7として、左手の速度の時系列を示すデータの代わりに左手の位置の時系列を示すデータが用いられてもよい。
【0083】
ここで予め
図5に示す機械学習モデルが、左手の向き、左手の角速度、及び、左手の位置又は速度の組合せに対応付けられた左手首の角速度を示すデータによる学習が実行されていてもよい。この場合は、
図5に示す学習済の機械学習モデルに、時系列データD5、時系列データD6、及び、時系列データD7を入力した際の出力であるデータD8(t)は、左手首ノード42jの角速度の推定結果に相当することとなる。
【0084】
また本実施形態では、
図5に示す機械学習モデルと同様の機械学習モデルについて、右手の向き、右手の角速度、及び、右手の速度の組合せに対応付けられた右手首の向きを示すデータによる学習が実行される。そして当該学習済の機械学習モデルに、右手の向きの時系列を示すデータ、右手の角速度の時系列を示すデータ、及び、右手の速度の時系列を示すデータを入力した際に出力は、右手首ノード42mの向きの推定結果に相当することとなる。なお右手の速度の時系列を示すデータの代わりに右手の位置の時系列を示すデータが用いられてもよい。
【0085】
ここで例えば
図5に示す機械学習モデルと同様の機械学習モデルについて、右手の向き、右手の角加速度、及び、右手の位置又は速度の組合せに対応付けられた右手首の角速度を示すデータによる学習が実行されていてもよい。そして当該学習済の機械学習モデルに、右手の向きの時系列を示すデータ、右手の角速度の時系列を示すデータ、及び、右手の速度の時系列を示すデータを入力した際に出力は、右手首ノード42mの角速度の推定結果に相当することとなる。
【0086】
以上のようにして本実施形態では、左手首ノード42j、及び、右手首ノード42mの向き又は角速度の推定が実行される。
【0087】
そして本実施形態では例えば、逆運動学によって、以上で説明した推定結果に基づく、他のノード42の位置及び向きの推定が実行される。
【0088】
本実施形態では、ユーザが胸部又は腰部にトラッカー12を装着することなく、スケルトンモデル40に含まれる各ノード42の位置及び向きが推定される。また本実施形態では、5個という限られた数のトラッカー12の位置や向きを示すデータから、左手首ノード42jの向き及び右手首ノード42mの向きが推定される。そして当該推定の結果に基づいて、逆運動学によって、左肘ノード42i及び右肘ノード42lの位置を的確に推定できる。以上のようにして本実施形態によれば、ユーザは多くのトラッカー12を装着することなく的確なボディトラッキングを行えることとなる。具体的には例えば、ユーザは胸部や腰部や手首にトラッカー12を装着することなく的確なボディトラッキングを行えることとなる。
【0089】
以下、本実施形態に係るエンタテインメント装置14の機能、及び、エンタテインメント装置14で実行される処理についてさらに説明する。
【0090】
図6は、本実施形態に係るエンタテインメント装置14で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るエンタテインメント装置14で、
図6に示す機能のすべてが実装される必要はなく、また、
図6に示す機能以外の機能が実装されていても構わない。
【0091】
図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、が含まれる。
【0092】
変換部60は、プロセッサ30及び記憶部32を主として実装される。姿勢データ取得部62は、プロセッサ30及び入出力部36を主として実装される。姿勢データ記憶部64は、記憶部32を主として実装される。時系列データ生成部66、時系列データ入力部68、出力取得部70、ボディトラッキング実行部72は、プロセッサ30を主として実装される。本実施形態に係るエンタテインメント装置14は、ユーザの体に含まれる部位の向きを推定する体の部位の向き推定装置としての役割を担うこととなる。
【0093】
以上の機能は、コンピュータであるエンタテインメント装置14にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ30で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してエンタテインメント装置14に供給されてもよい。
【0094】
第1変換部60aは、本実施形態では例えば、
図4に例示する、胸部ノード42fの向きの推定に用いられる学習済の機械学習モデルに相当する。なお第1変換部60aが機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェアや回路などのハードウェアによって実装されていてもよい。
【0095】
第2変換部60bは、本実施形態では例えば、
図5に例示する、左手首ノード42jの向きの推定に用いられる学習済の機械学習モデルに相当する。なお第2変換部60bが機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェアや回路などのハードウェアによって実装されていてもよい。
【0096】
第3変換部60cは、本実施形態では例えば、
図5に例示する機械学習モデルと同様の、右手首ノード42mの向きの推定に用いられる学習済の機械学習モデルに相当する。なお第3変換部60cが機械学習モデルによって実装されている必要はなく、例えば、一般的なソフトウェアや回路などのハードウェアによって実装されていてもよい。
【0097】
姿勢データ取得部62は、本実施形態では例えば、所定のサンプリングレートで特定されるトラッカー12a〜12eの位置及び向きを示す姿勢データを取得する。ここで例えば、所定のサンプリングレートでトラッカー12が、当該トラッカー12の位置及び向きを示す姿勢データを生成してもよい。そして生成に応じてトラッカー12が、当該トラッカー12が生成した姿勢データを、中継装置16経由でエンタテインメント装置14に送信してもよい。また例えば、カメラマイクユニット20が、所定のサンプリングレートでトラッカー12a〜12eの位置及び向きを示す姿勢データを生成してもよい。そして生成に応じてカメラマイクユニット20が、当該カメラマイクユニット20が生成した姿勢データを、エンタテインメント装置14に送信してもよい。
【0098】
姿勢データ記憶部64は、本実施形態では例えば、姿勢データ取得部62が取得する姿勢データを記憶する。
【0099】
第1時系列データ生成部66aは、本実施形態では例えば、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第1変換部60aに入力される時系列データを生成する。ここでは例えば、頭部の向きの時系列を示す時系列データD1、左手の角速度の時系列を示す時系列データD2、及び、右手の角速度の時系列を示す時系列データD3といった、3つの時系列データが生成される。このように第1時系列データ生成部66aが生成する複数の時系列データは、体に含まれる互いに異なる部位(ここでは例えば頭部、左手、及び、右手)についての時系列データであってもよい。
【0100】
なお第1時系列データ生成部66aは、生成した時系列データを保持してもよい。そして例えば、最新の特定タイミングにおける姿勢データに基づいて時系列データD1(t)が生成されるようにしてもよい。そして、保持されている時系列データD1(t−198)〜D1(t)を時系列データD1(t−199)〜D1(t−1)として含み、生成された時系列データD1(t)をさらに含む時系列データD1が生成されるようにしてもよい。なお時系列データD2、D3についても同様に、保持されている時系列データと最新の特定タイミングにおける姿勢データとに基づいて生成されるようにしてもよい。
【0101】
第2時系列データ生成部66bは、本実施形態では例えば、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第2変換部60bに入力される時系列データを生成する。ここでは例えば上述の、左手の向きの時系列を示す時系列データD5、左手の角速度の時系列を示す時系列データD6、及び、左手の速度の時系列を示す時系列データD7といった、3つの時系列データが生成される。このように第2時系列データ生成部66bが生成する複数の時系列データに、体に含まれる部位(ここでは例えば左手)の向きを示す時系列データと当該部位(ここでは例えば左手)の角速度を示す時系列データとが含まれていてもよい。なお時系列データD5〜D7についても上述のように、保持されている時系列データと最新の特定タイミングにおける姿勢データとに基づいて生成されるようにしてもよい。
【0102】
第3時系列データ生成部66cは、本実施形態では例えば、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第3変換部60cに入力される時系列データを生成する。右手の向きについての時系列データ、右手の角速度についての時系列データ、及び、右手の速度についての時系列データが生成される。このように第3時系列データ生成部66cが生成する複数の時系列データに、体に含まれる部位(ここでは例えば右手)の向きを示す時系列データと当該部位(ここでは例えば右手)の角速度を示す時系列データとが含まれていてもよい。なおこれらの時系列データについても上述のように、保持されている時系列データと最新の特定タイミングにおける姿勢データとに基づいて生成されるようにしてもよい。
【0103】
時系列データ入力部68は、本実施形態では例えば、それぞれ体の部位の位置、姿勢、又は、動きを示す複数の時系列データを取得する。そして時系列データ入力部68は、本実施形態では例えば、当該複数の時系列データを学習済の変換部60に入力する。なお時系列データは、上述のような向き、角速度(向きの差分)、速度(位置の差分)を示すデータには限定されない。例えば時系列データが、位置を示すデータ、加速度(速度の差分)を示すデータ、角加速度(角速度の差分)を示すデータであっても構わない。また時系列データは、例えば、ある部位の別の部位に対する相対的な位置、姿勢、又は、動きを示すデータであってもよい。より具体的には例えば、時系列データが、手の向きと腕の向きとの差分(手の向きを基準とする腕の相対的な向き)を示すデータであってもよい。
【0104】
ここで第1時系列データ入力部68aは、本実施形態では例えば、第1時系列データ生成部66aが生成する時系列データを取得する。そして第1時系列データ入力部68aは、本実施形態では例えば、当該時系列データを第1変換部60aに入力する。また第2時系列データ入力部68bは、本実施形態では例えば、第2時系列データ生成部66bが生成する時系列データを取得する。そして第2時系列データ入力部68bは、本実施形態では例えば、当該時系列データを第2変換部60bに入力する。また第3時系列データ入力部68cは、本実施形態では例えば、第3時系列データ生成部66cが生成する時系列データを取得する。そして第3時系列データ入力部68cは、本実施形態では例えば、当該時系列データを第3変換部60cに入力する。
【0105】
出力取得部70は、本実施形態では例えば、時系列データを変換部60に入力した際の出力である、時系列データが位置、姿勢、又は、動きを示す体の部位よりも当該体の中心に近い当該体の別の部位の位置、姿勢、又は、動きの推定結果を取得する。
【0106】
ここで第1出力取得部70aは、本実施形態では例えば、第1時系列データ生成部66aが生成する時系列データを第1変換部60aに入力した際の出力を取得する。
【0107】
例えば上述のように第1時系列データ生成部66aが生成する時系列データは、頭部の向き、左手の角速度、及び、右手の角速度を示すデータである。そしてスケルトンモデル40において、頭部ノード42aと胸部ノード42fとは1個のリンクを介して接続されている。またスケルトンモデル40において、左手ノード42bと胸部ノード42fとは4個のリンクを介して接続されている。またスケルトンモデル40において、右手ノード42cと胸部ノード42fとは4個のリンクを介して接続されている。そして胸部ノード42fは、頭部ノード42a、左手ノード42b、右手ノード42cのいずれに対しても体の中心に近いノード42である。そして本実施形態では例えば、第1時系列データ生成部66aが生成する時系列データが位置、姿勢、又は、動きを示す体の部位よりも当該体の中心に近い部位である胸部に相当する胸部ノード42fの位置、姿勢、又は、動きの推定結果が取得されることとなる。なおここで向きの推定値(ピッチ角、ヨー角、ロール角の組合せ)や角速度の推定値などといった位置、姿勢、又は、動きの推定値が取得されてもよい。また位置、姿勢、又は、動きの推定値の算出の基礎となるスコア値が取得されてもよい。
【0108】
また第2出力取得部70bは、本実施形態では例えば、第2時系列データ生成部66bが生成する時系列データを第2変換部60bに入力した際の出力を取得する。
【0109】
例えば上述のように第2時系列データ生成部66bが生成する時系列データは、左手の向きを示すデータ、左手の角速度を示すデータ、左手の位置を示すデータ、又は、左手の速度を示すデータのうちの複数である。そしてスケルトンモデル40において、左手ノード42bと左手首ノード42jとは1個のリンクを介して接続されている。そして左手首ノード42jは、左手ノード42bに対して体の中心に近いノード42である。そして本実施形態では例えば、第2時系列データ生成部66bが生成する時系列データが位置、姿勢、又は、動きを示す体の部位よりも当該体の中心に近い部位である左手の側の手首に相当する左手首ノード42jの位置、姿勢、又は、動きの推定結果が取得されることとなる。なおここで向きの推定値(ピッチ角、ヨー角、ロール角の組合せ)や角速度の推定値などといった位置、姿勢、又は、動きの推定値が取得されてもよい。また位置、姿勢、又は、動きの推定値の算出の基礎となるスコア値が取得されてもよい。
【0110】
また第3出力取得部70cは、本実施形態では例えば、第3時系列データ生成部66cが生成する時系列データを第3変換部60cに入力した際の出力を取得する。そしてこの場合、第3時系列データ生成部66cが生成する時系列データが位置、姿勢、又は、動きを示す体の部位である右手よりも当該体の中心に近い部位である右手の側の手首に相当する右手首ノード42mの位置、姿勢、又は、動きの推定結果が取得されることとなる。なおここで向きの推定値(ピッチ角、ヨー角、ロール角の組合せ)や角速度の推定値などといった位置、姿勢、又は、動きの推定値が取得されてもよい。また位置、姿勢、又は、動きの推定値の算出の基礎となるスコア値が取得されてもよい。
【0111】
なお変換部60が出力して出力取得部70が取得するデータは、上述のような向き又は角速度(向きの差分)を示すデータには限定されない。例えば変換部60が、速度(位置の差分)を示すデータ、位置を示すデータ、加速度(速度の差分)を示すデータ、角加速度(角速度の差分)を示すデータを出力してもよい。また変換部60は、ある部位の別の部位に対する相対的な位置、姿勢、又は、動きを示すデータを出力してもよい。であってもよい。より具体的には例えば、変換部60が、手の向きと腕の向きとの差分(手の向きを基準とする腕の相対的な向き)を示すデータを出力してもよい。
【0112】
ボディトラッキング実行部72は、本実施形態では例えば、出力取得部70が取得する向きの推定結果、及び、姿勢データ取得部62が取得する姿勢データに基づいて、ボディトラッキングの処理を実行する。ここでは例えば、スケルトンモデル40に含まれる複数のノード42のそれぞれについての位置及び向きが推定される。なおボディトラッキング実行部72は、姿勢データ記憶部64に記憶されている姿勢データに基づいてボディトラッキングの処理を実行してもよい。
【0113】
ここで例えば、トラッカー12aの位置及び向きを示す姿勢データに基づいて、頭部ノード42aの位置及び向きが決定されてもよい。また例えば、トラッカー12bの位置及び向きを示す姿勢データに基づいて、左手ノード42bの位置及び向きが決定されてもよい。また例えば、トラッカー12cの位置及び向きを示す姿勢データに基づいて、右手ノード42cの位置及び向きが決定されてもよい。また例えば、トラッカー12dの位置及び向きを示す姿勢データに基づいて、左足ノード42dの位置及び向きが決定されてもよい。また例えば、トラッカー12eの位置及び向きを示す姿勢データに基づいて、右足ノード42eの位置及び向きが決定されてもよい。
【0114】
またボディトラッキング実行部72は、上述のように、決定又は推定されたノード42の位置又は向きに基づいて、逆運動学によって、推定されていないノード42の位置及び推定されていないノード42の向きを推定してもよい。
【0115】
体に含まれる部位に相当するノード42の向きは、当該ノード42と1又は複数のリンクで接続されている、当該部位よりも体の中心から離れた他のノード42の回転の時間的な動きのパターンを用いれば的確に推定できると考えられる。そこで本実施形態ではこのことに着目して上述のように、それぞれ体の部位の向き又は角速度を示す複数の時系列データを変換部60に入力した際の出力に基づいて、当該部位よりも体の中心に近い当該体の別の部位の向きが推定されるようにした。
【0116】
ここで、本実施形態に係るエンタテインメント装置14で行われる処理の流れの一例を、
図7に例示するフロー図を参照しながら説明する。本処理例では、以下のS101〜S112に示す処理が所定のサンプリングレートで繰り返し実行される。
【0117】
まず、姿勢データ取得部62が、トラッカー12によって生成される最新の特定タイミングにおける当該トラッカー12の位置及び向きを示す姿勢データを取得して、姿勢データ記憶部64に記憶させる(S101)。ここでは例えば、姿勢データ取得部62は、トラッカー12a〜12eのそれぞれについての、当該トラッカー12の位置及び向きを示す姿勢データを取得する。
【0118】
そして第1時系列データ生成部66aが、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第1変換部60aに入力される時系列データを生成する(S102)。
【0119】
そして第2時系列データ生成部66bが、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第2変換部60bに入力される時系列データを生成する(S103)。
【0120】
そして第3時系列データ生成部66cが、姿勢データ記憶部64に記憶されている姿勢データに基づいて、第3変換部60cに入力される時系列データを生成する(S104)。
【0121】
そして第1時系列データ入力部68aが、S102に示す処理で生成された時系列データを取得して、当該時系列データを第1変換部60aに入力する(S105)。
【0122】
そして第2時系列データ入力部68bが、S103に示す処理で生成された時系列データを取得して、当該時系列データを第2変換部60bに入力する(S106)。
【0123】
そして第3時系列データ入力部68cが、S104に示す処理で生成された時系列データを取得して、当該時系列データを第3変換部60cに入力する(S107)。
【0124】
そして第1出力取得部70aが、S105に示す処理での入力に応じた、第1変換部60aからの出力である、胸部ノード42fの向きの推定結果を取得する(S108)。
【0125】
そして第2出力取得部70bが、S106に示す処理での入力に応じた、第2変換部60bからの出力である、左手首ノード42jの向きの推定結果を取得する(S109)。
【0126】
そして第3出力取得部70cが、S107に示す処理での入力に応じた、第3変換部60cからの出力である、右手首ノード42mの向きの推定結果を取得する(S110)。
【0127】
そしてボディトラッキング実行部72が、本サイクルにおける頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、及び、右足ノード42eのそれぞれについて、位置及び向きを決定する(S111)。ここで例えば、S101に示す処理で取得された姿勢データに基づいて、頭部ノード42a、左手ノード42b、右手ノード42c、左足ノード42d、及び、右足ノード42eのそれぞれについての位置及び向きが決定されてもよい。
【0128】
そしてボディトラッキング実行部72が、逆運動学によって、スケルトンモデル40に含まれるノード42の位置及び向きのうちの、S108〜S111に示す処理で決定又は推定結果の取得が行われていない残りを、逆運動学によって推定する(S112)。
【0129】
以上のようにして1サイクルにおけるスケルトンモデル40に含まれるすべてのノード42についての位置及び向きの推定が実行される。そしてS101に示す処理に戻る。
【0130】
以上で説明した処理例に示す処理において、各ステップの実行順序は上述のものに限定されない。例えばS102〜S104に示す処理の実行順序、S105〜S107に示す処理の実行順序、S108〜S110に示す処理の実行順序は上述のものに限定されない。
【0131】
またS102に示す処理に続いて、S105、S108に示す処理が順次実行されてもよい。同様にS103に示す処理に続いて、S106、S109に示す処理が順次実行されてもよい。同様にS104に示す処理に続いて、S107、S110に示す処理が順次実行されてもよい。
【0132】
また上述の各ステップが並列処理で実行されてもよい。例えば、S102、S105、及び、S108に示す処理、S103、S106、及び、S109に示す処理、S104、S107、及び、S110に示す処理が、並列処理で実行されてもよい。
【0133】
なお上述のように、第1変換部60aが胸部ノード42fではなく腰部ノード42gの向きの推定に用いられる機械学習モデルであってもよい。この場合、第1出力取得部70aが、腰部ノード42gの向きの推定結果を取得してもよい。
【0134】
なお、本発明は上述の実施形態に限定されるものではない。
【0135】
例えばトラッカー12aは、ヘッドマウントディスプレイ(HMD)であってもよい。この場合に、ユーザに含まれる複数の部位の位置又は向きに応じたゲーム処理等の各種の処理の結果に応じた映像が例えばHMDの表示部に表示されるようにしてもよい。
【0136】
また例えば、
図6に示す機能の一部又は全部がトラッカー12によって実装されてもよい。
【0137】
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。