(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-20
(45)【発行日】2022-12-28
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06F 3/01 20060101AFI20221221BHJP
G06F 3/041 20060101ALI20221221BHJP
A63F 13/24 20140101ALI20221221BHJP
【FI】
G06F3/01 514
G06F3/041 640
A63F13/24
(21)【出願番号】P 2021529586
(86)(22)【出願日】2019-07-01
(86)【国際出願番号】 JP2019026183
(87)【国際公開番号】W WO2021001911
(87)【国際公開日】2021-01-07
【審査請求日】2021-07-06
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】有松 和之
(72)【発明者】
【氏名】森 英樹
【審査官】木村 慎太郎
(56)【参考文献】
【文献】米国特許出願公開第2017/0031503(US,A1)
【文献】特開平10-113343(JP,A)
【文献】特表平11-513157(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/041
A63F 13/24
(57)【特許請求の範囲】
【請求項1】
ユーザが手で操作する機器であって、当該機器の表面に、ユーザの手の表面との空間的位置関係に係る情報を出力する複数のセンサが配列された機器に接続され、
前記機器が備える前記センサの各々からの出力を受け入れる手段と、
前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記センサの各々の配置された位置に対応する位置に、各センサの出力が表す値に基づいて定めた画素値で描画した画像要素を配した画像を生成する手段と、
当該生成した画像を入力し、前記機器を操作するユーザの手の各関節の位置に係る情報を推定して、当該機器とともに移動する点を原点とした三次元空間の座標情報として出力する
推定手段と、
を有
し、
前記推定手段は、前記入力した画像と同じ、前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記機器を操作するユーザの手の各関節に最も近い前記機器の表面上の点、及びその点から当該関節までの距離を推定する機械学習結果を利用し、機械学習結果を利用した当該推定の結果を用いて、当該機器とともに移動する点を原点とした三次元空間の座標情報に変換して出力する情報処理装置。
【請求項2】
ユーザが手で操作する機器であって、当該機器の表面に、ユーザの手の表面との空間的位置関係に係る情報を出力する複数のセンサが配列された機器に接続され、
前記機器が備える前記センサの各々からの出力を受け入れる手段と、
前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記センサの各々の配置された位置に対応する位置に、各センサの出力が表す値に基づいて定めた画素値で描画した画像要素を配した画像を生成する画像生成手段と、
当該生成した画像を入力し、前記機器を操作するユーザの手の各関節の位置に係る情報を推定して、当該機器とともに移動する点を原点とした三次元空間の座標情報として出力する推定手段と、
を有し、
前記推定手段は、
複数の手のポーズをとったときに前記画像生成手段により生成される画像と、当該手のポーズでの各関節の位置の情報との関係を機械学習した機械学習結果を用い、前記入力された画像を当該機械学習結果に入力し、前記機器を操作するユーザの手の各関節の位置に係る情報を推定し、当該機器とともに移動する点を原点とした三次元空間の座標情報として出力する情報処理装置。
【請求項3】
請求項1
または2に記載の情報処理装置であって、
前記機器に配されたセンサは静電容量センサであり、前記受け入れたセンサの出力は、静電容量センサの検出結果である情報処理装置。
【請求項4】
ユーザが手で操作する機器であって、当該機器の表面に、ユーザの手の表面との空間的位置関係に係る情報を出力する複数のセンサが配列された機器に接続された情報処理装置を、
前記機器が備える前記センサの各々からの出力を受け入れ、
前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記センサの各々の配置された位置に対応する位置に、各センサの出力が表す値に基づいて定めた画素値で描画した画像要素を配した画像を生成し、
当該生成した画像を入力し、前記機器を操作するユーザの手の各関節の位置に係る情報を推定して、当該機器とともに移動する点を原点とした三次元空間の座標情報として出力するよう制御し、
関節の位置に係る情報を推定する際には、前記入力した画像と同じ、前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記機器を操作するユーザの手の各関節に最も近い前記機器の表面上の点、及びその点から当該関節までの距離を推定する機械学習結果を利用し、機械学習結果を利用した当該推定の結果を用いて、当該機器とともに移動する点を原点とした三次元空間の座標情報に変換して出力する情報処理装置の制御方法。
【請求項5】
ユーザが手で操作する機器であって、当該機器の表面に、ユーザの手の表面との空間的位置関係に係る情報を出力する複数のセンサが配列された機器に接続されたコンピュータを、
前記機器が備える前記センサの各々からの出力を受け入れる手段と、
前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記センサの各々の配置された位置に対応する位置に、各センサの出力が表す値に基づいて定めた画素値で描画した画像要素を配した画像を生成する手段と、
当該生成した画像を入力し、前記機器を操作するユーザの手の各関節の位置に係る情報を推定して、当該機器とともに移動する点を原点とした三次元空間の座標情報として出力
する
推定手段と、
として機能させ、
前記推定手段として機能させる際には、コンピュータに、前記入力した画像と同じ、前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記機器を操作するユーザの手の各関節に最も近い前記機器の表面上の点、及びその点から当該関節までの距離を推定する機械学習結果を利用し、機械学習結果を利用した当該推定の結果を用いて、当該機器とともに移動する点を原点とした三次元空間の座標情報に変換して出力させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、ユーザの実際の手や指の動きを検出して、仮想空間内のオブジェクトの動きに反映させる技術が開発されている。
【0003】
このような処理のために、従来から手を検出するデバイスとして、カメラ等でユーザの手を撮像し、当該撮像した画像と手の形状との関係を機械学習した装置を利用して手の形状を認識し、ユーザの指が曲げられているか伸ばされているかを検出するものがある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、ユーザが手で把持して操作するゲームコントローラ等において、当該ゲームコントローラの表面上に配されたセンサでそれぞれユーザの手との空間的位置関係を表す情報を得る技術がある。この技術では、ゲームコントローラの筐体の表面形状に沿ってセンサが配されており、また得られた情報が、各センサからの空間的位置関係を表すものとなっている。このため、空間上の一点から撮像した画像の情報とは情報の性質が大きく異なり、上記従来の手の形状を認識するための技術を適用しても十分な精度が得られず、手の形状の推定を行うことが困難であるのが実情である。
【0005】
本発明は上記実情に鑑みて為されたもので、ユーザが手で操作する機器上に配されたセンサでの検出結果に基づいた手の形状の推定を行うことのできる情報処理装置、情報処理方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決するための本発明の一態様は、ユーザが手で操作する機器であって、当該機器の表面に、ユーザの手の表面との空間的位置関係に係る情報を出力する複数のセンサが配列された機器に接続される情報処理装置であって、前記機器が備える前記センサの各々からの出力を受け入れる手段と、前記機器の表面のうち、少なくともセンサが配されている部分を平面展開した写像空間上で、前記センサの各々の配置された位置に対応する位置に、各センサの出力が表す値に基づいて定めた画素値で描画した画像要素を配した画像を生成する手段と、当該生成した画像を入力し、前記機器を操作するユーザの手の各関節の位置に係る情報を推定して、当該機器とともに移動する点を原点とした三次元空間の座標情報として出力する手段と、を有することとしたものである。
【発明の効果】
【0007】
本発明によると、ユーザが手で操作する機器上に配されたセンサでの検出結果に基づいた手の形状の推定を行うことができる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施の形態に係る情報処理装置を含む情報処理システムの構成例を表すブロック図である。
【
図2】本発明の実施の形態に係る情報処理装置に接続されるコントローラ装置の例を表す概略斜視図である。
【
図3】本発明の実施の形態に係る情報処理装置に接続されるコントローラ装置の例を表すもう一つの概略斜視図である。
【
図4】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【
図5】本発明の実施の形態に係る情報処理装置が生成する展開図画像の例を表す説明図である。
【
図6】本発明の実施の形態に係る情報処理装置が生成する展開図画像の別の例を表す説明図である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システム1は、情報処理装置10と、ユーザが手で操作する機器の一例としてのコントローラ装置30とを含んで構成される。
【0010】
ここで情報処理装置10は、コントローラ装置30と表示装置40とに接続される。この情報処理装置10は、コントローラ装置30が出力する情報を処理する装置であって、例えば家庭用ゲーム機、携帯型ゲーム機、パーソナルコンピューター、スマートフォン、タブレット等であってよい。また、この情報処理装置10は、コントローラ装置30と一体に構成されてもよい。
図1に示されるように、情報処理装置10は、制御部11と、記憶部12と、インタフェース部13と、を含んで構成される。
【0011】
制御部11は、CPU等のプロセッサを少なくとも一つ含み、記憶部12に記憶されているプログラムを実行して各種の情報処理を実行する。なお、本実施形態において制御部11が実行する処理の具体例については、後述する。記憶部12は、RAM等のメモリデバイスを少なくとも一つ含み、制御部11が実行するプログラム、及び当該プログラムによって処理されるデータを格納する。
【0012】
インタフェース部13は、コントローラ装置30、及び表示装置40との間のデータ通信のためのインタフェースである。情報処理装置10は、インタフェース部13を介して有線又は無線のいずれかでコントローラ装置30、及び表示装置40のそれぞれと接続される。具体的にインタフェース部13は、情報処理装置10が供給する映像データを表示装置40に送信する。またこのインタフェース部13は、コントローラ装置30から受信した情報を制御部11に出力する。
【0013】
本実施の形態の一例に係るコントローラ装置30は、
図2,
図3に例示するように、ユーザーの手に装着され、ユーザの操作を受け入れて、当該操作に係る情報を出力するデバイスである。
図2,
図3は、コントローラ装置30の外観の一例を示す概略斜視図である。
図2はコントローラ装置30をユーザが把持したときにユーザの親指が位置する側(便宜的に表側と呼ぶ)から見た概略斜視図であり、
図3はコントローラ装置30をユーザが把持したときにユーザの人差し指から小指までが位置する側(裏側)から見た概略斜視図である。なお、各図に示したコントローラ装置30の各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【0014】
この図の例では、コントローラ装置30は本体部31と固定具32とを備えており、ユーザーは自身の手の平をこの固定具32に通すことによってコントローラ装置30を自身の手に装着する。なお、固定具32はユーザーの手の大きさに合わせて長さを調整可能なベルト等によって構成されてよい。
【0015】
コントローラ装置30の本体部31の筐体表面には、この表面形状に沿って、ユーザーの手(及び指)との位置関係を検出する、複数のセンサ33が配置されている。
図2,
図3の例では、本体部31の筐体表面にマトリクス状に複数のセンサ33が配された状態を示している。またこのコントローラ装置30には、例えば人差指等で操作可能なスイッチやボタン34を備えてもよい。この場合、センサ33はスイッチやボタン34の表面にも配されてよい。
【0016】
ここでセンサ33は、例えば赤外線センサや静電容量センサなど、検出範囲内に存在する物体の空間的な位置を検出可能なセンサでよい。本実施の形態では、このセンサ33の検出結果を用いて、情報処理装置10が、検出対象となるユーザーの手の各関節の位置を特定する。
【0017】
また本実施形態においてセンサ33の検出対象となる手や指は、ユーザーがコントローラ装置30を装着した手の各指であることとする。なお、ここではユーザーはいずれか一方の手にコントローラ装置30を装着することとしているが、ユーザーは左右両方の手にそれぞれ別々のコントローラ装置30を装着してもよい。
【0018】
本実施の形態のコントローラ装置30は、これらセンサ33の検出の結果を表す情報を、情報処理装置10に対して所定のタイミングごとに(例えば1/60秒ごとなど定期的に)出力する。
【0019】
次に本実施の形態の情報処理装置10の制御部11の動作について説明する。本実施の形態の制御部11は、
図4に例示するように、受入部21と、入力画像生成部22と、推定処理部23と、出力部24とを含んで構成されている。
【0020】
ここで受入部21は、コントローラ装置30からセンサ33の検出結果を表す情報を受け入れる。入力画像生成部22は、コントローラ装置30の筐体表面のうち、少なくともセンサ33が配されている部分を平面展開した写像空間(以下、展開図空間と呼ぶ)上で、センサ33の各々の配置された位置に対応する位置に、各センサ33の検出結果が表す値に基づいて定めた画素値で描画した画像要素を配した画像を生成する。
【0021】
本実施の形態の例では、この入力画像生成部22は、コントローラ装置30の筐体表面を、
図5,
図6に例示するように、平面に展開した状態の画像を生成する。このような展開した状態の画像は、例えば
図5に例示するように、コントローラ装置30の表面の表側を射影した部分Xと、裏側を射影した部分Yとをそれぞれ一つの平面に配して生成されてもよい。
【0022】
また別の例では入力画像生成部22は、
図6に例示するように、コントローラ装置30の筐体表面に仮想的なシーム(切り込み)を入れて展開図を生成してもよい。このような展開図の生成は、テクスチャを仮想的な立体物に貼り付ける際に用いる、UV空間を生成する種々の広く知られた処理(円柱マッピングや球面マッピング等の処理、仮想的なシームを形成する処理等)を採用できるため、ここでの詳しい説明は省略する。
【0023】
入力画像生成部22は、得られたコントローラ装置30の筐体表面の展開図上で、筐体表面に配されているセンサ33の各々に対応する位置を特定する。そして入力画像生成部22は、当該特定した、各センサ33に対応する位置に、対応するセンサ33の検出結果の値(受入部21が受け入れた情報)に基づいて定めた画素値で描画した画像要素を配して入力画像を生成する。
【0024】
ここで画像要素は例えば展開図上でのセンサ33の形状の図形の画像であってもよいし、予め定めた大きさの矩形等の図形の画像であってもよい。またその画素値は、例えば輝度など一次元の値であり、指または手が近接しているほど輝度が高くなるように定められてもよい。この例では、入力画像生成部22が生成する画像は二次元のグレースケールの画像データとなる。
【0025】
推定処理部23は、入力画像生成部22が生成した入力画像を入力とし、この入力画像を用いてコントローラ装置30を操作するユーザの手の各関節の位置に係る情報を推定する処理を行う。
【0026】
具体的にこの推定処理部23は、入力画像と、ユーザの手の各関節の位置に係る情報に関連する情報との関係を機械学習したニューラルネットワークを用いて、この推定を行ってもよい。このようなニューラルネットワークは、例えば多層のニューラルネットワークを用いればよく、その構成は特に限定されない。このニューラルネットワークは例えばCNN(畳み込みネットワーク)であってもよい。
【0027】
またこのニューラルネットワークは例えば次のように機械学習される。機械学習を行わせるユーザは、学習用データを収集するため、例えば自らの手において位置を推測するポイントにマーカーを貼り付け、カメラ等で撮影したマーカーの位置等から三次元的な位置を計測する装置で計測しつつ、コントローラ装置30を装着した状態で種々の手のポーズをとって、各ポーズをとった各時点での上記計測結果と、各センサ33の検出結果を表す情報とを得る。
【0028】
ここで位置を計測するポイントは、例えば
(1)人差指から小指までの遠位指節間関節(DIP;4箇所)、
(2)人差指から小指までの近位指節間関節(PIP;4箇所)、
(3)親指の指節間関節(IP;1箇所)、
(4)親指から小指までの中手指節関節(MP;5箇所)、
(5)手根中手関節(CM;5箇所)、
(6)手関節(橈骨手根関節;1箇所)
の合計20箇所、
あるいは、
(1)親指から小指までの末端指骨先端(指の先端;5箇所)
(2)人差指から小指までの遠位指節間関節(DIP;4箇所)、
(3)人差指から小指までの近位指節間関節(PIP;4箇所)、
(4)親指の指節間関節(IP;1箇所)、
(5)親指から小指までの中手指節関節(MP;5箇所)、
(6)親指の手根中手関節(CM;1箇所)
の合計20箇所などとすればよい。これらの箇所(医学上の関節に相当しない箇所を含んでもよい、位置推測のポイント)を、以下、説明のため「関節」と称する。
【0029】
なお、ここで得られる計測結果は、ワールド座標系(X,Y,Z)で表される値となるので、最終的に求めたい座標系での値に変換しておく。本実施の形態の一例では、最終的に求めたい座標系は、コントローラ装置30とともに移動する予め定めた一点(例えばコントローラ装置30の外接矩形の中心など機器上の所定の点)を原点として、この原点からコントローラ装置30の長手方向をz軸、このz軸を法線とする面をxy平面として、コントローラ装置30の外接矩形において、表側の平面から裏側の平面に向かう、表側の平面の法線方向をy軸、これに直交するxy平面内の軸をx軸としたものとする(
図2を参照)。
【0030】
計測したワールド座標系からこのxyz座標系(以下、ローカル座標と呼ぶ)への変換の処理については、広く知られた方法を採用できるので、ここでの詳しい説明は省略する。またこの目的のため、ユーザはコントローラ装置30の姿勢を表す情報(原点の位置、x軸、y軸、z軸の方向を表す情報)を、ユーザの手の上記各ポイントの座標の情報とともに取得してもよい。
【0031】
情報処理装置10の推定処理部23が利用するニューラルネットワークを機械学習するコンピュータ(情報処理装置10自身であってもよい)は、このようにして得られた、複数の手のポーズのそれぞれをとったときの、ローカル座標でのユーザの手の各関節の位置を表す情報と、各センサ33の検出結果との組を得る。
【0032】
そしてこのコンピュータは、得られた各組を順次選択しながら次の処理を行う。すなわち、機械学習処理を行うコンピュータは、情報処理装置10の入力画像生成部22と同じ処理により、選択した組に含まれる、各センサ33の検出結果が表す情報に基づいて入力画像を生成する。コンピュータは、生成した入力画像をニューラルネットワークの入力したとき、当該ニューラルネットワークが出力する情報(ここでは例えばローカル座標でのユーザの手の各関節の位置を表す情報と同じ次元(ここでは20×3次元=60次元)の情報とする)と、選択した組に含まれる、ローカル座標でのユーザの手の各関節の位置を表す情報との差を求め、この差に基づいてニューラルネットワークの各層間の重みを制御する。この制御は、いわゆるバックプロパゲーションの処理として知られたものであるので、説明は省略する。
【0033】
コンピュータは、この処理によってニューラルネットワークの各層間の重みを逐次的に更新し、ニューラルネットワークが、上記の入力画像に基づいてユーザの手の各関節の位置の推定結果を出力するようニューラルネットワークを機械学習する。
【0034】
なお、ここではニューラルネットワークが入力画像に基づいて、ローカル座標でのユーザの手の各関節の位置を表す情報を直接推定することとなるよう機械学習する例について説明したが、本実施の形態ではこの限りではなく、例えばニューラルネットワークが、入力画像と同じ空間(コントローラ装置30の筐体表面を展開した二次元空間、つまりここでの展開図空間)内で、上記各関節の位置と3次元空間内での距離が最も近い、コントローラ装置30の筐体表面上の点(最近接点)と、当該最近接点から当該関節までの距離とを推定するように機械学習を行ってもよい。この場合、ニューラルネットワークの出力は、ユーザの手の関節ごとの情報であって、上記展開図の空間の各点が、対応する関節の最近接点となる確率を表すヒートマップ画像と、この展開図の空間の面(つまりコントローラ装置30の表面)から当該関節までの距離とを含む情報となる。
【0035】
このように機械学習されたニューラルネットワークを用いる、本実施の形態の推定処理部23は、コントローラ装置30から受入部21が受け入れた情報に基づいて、入力画像生成部22が生成した入力画像を、機械学習されたニューラルネットワークに入力する。そして推定処理部23は、ニューラルネットワークの出力を得る。
【0036】
ここでニューラルネットワークが、入力画像に基づいて、ローカル座標でのユーザの手の各関節の位置を表す情報を直接推定するものである場合は、推定処理部23は、当該出力をそのまま出力部24に出力する。
【0037】
またニューラルネットワークが、入力画像に基づいて、ユーザの手の関節ごとに、当該関節に最も近い、展開図空間(入力画像と同じ空間)上の最近接点とコントローラ装置30の表面からの距離とを表す情報を推定するものである場合は、推定処理部23は、これらの情報から座標変換により、ローカル座標でのユーザの手の各関節の位置を表す情報を求める。
【0038】
具体的に、この例では推定処理部23は、関節ごとに得られたヒートマップ画像を用いて、統計的処理等により関節ごとの最近接点の推定結果を求める。例えば推定処理部23は、当該ヒートマップ画像が表すコントローラ装置30の筐体表面を展開した二次元空間上の各点が最近接点となる確率を重みづけ平均(各点ごとに確率に座標値を乗じた値を得て総和し、点の数で除したもの)して最近接点の推定値を求める。あるいは推定処理部23は、このヒートマップ画像が表す各点のうち、最近接点である確率が最大となっている点を最近接点の推定結果としてもよい。
【0039】
次に推定処理部23は、関節ごとに推定された最近接点の、コントローラ装置30のローカル座標の値を求め、当該求めた座標の値で表されるコントローラ装置30の筐体表面上の位置での筐体表面に対する法線の方向を表すベクトルの値を求める。このベクトルの値は近似的に次のように求めてもよい。すなわち推定処理部23は、ローカル座標の原点を通りz軸に平行な方向に中心軸を有する円柱を仮想的に設定し、法線を求めようとする最近接点に対応するローカル座標の点Qから最も近い中心軸上の点Pとを結んだ線分と、この円柱との交点であって、上記点Qに近い側の交点Rを求め、この交点Rでの円柱の法線のベクトル(点Pを始点とし、点Rを終点とするベクトル)を、求めるベクトルV(Q)としてもよい。
【0040】
また、このコントローラ装置30の筐体表面の形状が例えばメッシュモデル等の三次元グラフィックモデルで表されている場合は、推定処理部23は、上記法線を求めようとする最近接点に対応するローカル座標の点Qでの当該グラフィックモデルの法線のベクトルを、求めるベクトルV(Q)としてもよい。
【0041】
推定処理部23は、各関節i=1,2,…20について、当該関節の最近接点に対応するローカル座標の点Qi(i=1,2…20)から上記求めたベクトルV(Qi)に平行な単位ベクトルviに、ニューラルネットワークが出力する、対応する関節iまでの距離riを乗じて加算し、関節iのローカル座標系上での位置を表す座標情報Xiを得る:
Xi=Qi+ri・vi
ここで、X,Q,vはいずれも座標値を表す三次元の量である。
【0042】
出力部24は、推定処理部23が求めた、コントローラ装置30を操作するユーザの手の各関節の、上記ローカル座標系での座標情報を、アプリケーションプログラムの処理等に供する。
【0043】
例えば、情報処理装置10は、実行しているゲームアプリケーションプログラムの処理において、ローカル座標系でのユーザの手の各関節の座標情報を、この出力部24から受け入れて、当該情報に基づいて、キャラクタの動作を制御する等の処理を行う。なお、情報処理装置10がコントローラ装置30と一体的に構成されている場合は、当該情報処理装置10がゲームアプリケーションプログラム等を実行する代わりに、ゲームアプリケーションプログラム等を実行している他の情報処理装置に対し、情報処理装置10がローカル座標系でのユーザの手の各関節の座標情報を送出し、上記他の情報処理装置が、コントローラ装置30と一体の情報処理装置10から受信した、ローカル座標系でのユーザの手の各関節の座標情報を用いたキャラクタの動作の制御等、種々のアプリケーションの処理を行ってもよい。
【0044】
[動作]
本発明の実施の形態の情報処理システム1は以上の構成を基本的に備えており、次のように動作する。
【0045】
ユーザがコントローラ装置30を手に装着した状態で、手を開いたり握ったりといった動作を行うと、コントローラ装置30の筐体表面に配された複数のセンサ33がそれぞれの検出範囲内にあるユーザの手の表面の空間的な位置を検出する。そしてコントローラ装置30は、各センサ33の検出結果を出力する。
【0046】
情報処理装置10は、予め、機械学習されたニューラルネットワークを構成するための情報(ニューラルネットワークのモデルを特定する情報と、当該特定されたモデルにおける各層間の重みを表す情報とを含む)を保持しているものとする。ここで、このニューラルネットワークは、入力画像と同じ展開図空間(コントローラ装置30の筐体表面を展開した二次元空間)内で、予め定められた手の関節のそれぞれの最も近い点(最近接点)を表すヒートマップ画像と、当該最近接点から各関節までの距離とを推定するように機械学習を行ってあるものとする。なお、手の関節は既に述べた20箇所のものとする。
【0047】
情報処理装置10は、コントローラ装置30からセンサ33の検出結果を受け入れ、コントローラ装置30の筐体表面を平面展開した写像空間上で、センサ33の各々の配置された位置に対応する位置に、各センサ33の検出結果の値に基づいて定めた画素値で描画した画像要素を配した入力画像を生成する。
【0048】
そして情報処理装置10は、この生成した入力画像を、機械学習済みのニューラルネットワークに入力し、ユーザの手の関節ごとに、展開図空間(入力画像と同じ空間)上の各点がその最近接点となる確率を表したヒートマップ画像と、当該関節のコントローラ装置30の表面からの距離とを表す情報とを含む推定結果を得る。
【0049】
情報処理装置10は、関節i(i=1,2,…20)ごとに、得られたヒートマップ画像を用い、ヒートマップ画像が表す、コントローラ装置30の筐体表面を展開した二次元空間上の各点が最近接点となる確率を重みづけ平均(各点ごとに確率に座標値を乗じた値を得て総和し、点の数で除したもの)して最近接点Niを推定する。
【0050】
そして情報処理装置10は、関節i(i=1,2,…20)ごとに推定した最近接点Niの座標(展開図の座標系となっている)を、コントローラ装置30のローカル座標の値に変換する。具体的に情報処理装置10は、最近接点Niに対応する、コントローラ装置30の筐体表面上の点Qiでの筐体表面に対する法線の方向を表すベクトル(法線ベクトルV(Qi))を求める。ここでは予めコントローラ装置30の筐体表面の形状を表す、三次元グラフィックモデルの情報が保持されているものとし、この三次元グラフィックモデルの情報に基づいて、上記対応する、コントローラ装置30の筐体表面上の点Qiでの法線ベクトルV(Qi)を求めるものとする。
【0051】
情報処理装置10は、各関節i=1,2,…20について、当該関節の最近接点に対応するローカル座標の点Qi(i=1,2…20)から上記求めたベクトルV(Qi)に平行な単位ベクトルviに、ニューラルネットワークが出力する、対応する関節iまでの距離riを乗じて加算し、関節iのローカル座標系上での位置を表す座標情報Xiを、
Xi=Qi+ri・vi
として得る。
【0052】
そして情報処理装置10は、ここで求めたユーザの手の各関節の、ローカル座標系での座標情報Xi(i=1,2,…20)を用いて、ゲームアプリケーションにおけるキャラクタの動作を制御する処理等、アプリケーションプログラムの処理を実行する。
【0053】
このように本実施の形態では、ユーザが手で操作する機器上に配されたセンサでの検出結果に基づいた手の形状の推定を行うことができる。
【符号の説明】
【0054】
1 情報処理システム、10 情報処理装置、11 制御部、12 記憶部、13 インタフェース部、21 受入部、22 入力画像生成部、23 推定処理部、24 出力部、30 コントローラ装置、31 本体部、32 固定具、33 センサ、34 ボタン、40 表示装置。