(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】システム、情報処理方法および情報処理プログラム
(51)【国際特許分類】
G06F 3/01 20060101AFI20240702BHJP
G06F 3/0484 20220101ALI20240702BHJP
【FI】
G06F3/01 560
G06F3/0484
(21)【出願番号】P 2021067660
(22)【出願日】2021-04-13
【審査請求日】2023-04-10
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】110000637
【氏名又は名称】弁理士法人樹之下知的財産事務所
(72)【発明者】
【氏名】宮田 直之
(72)【発明者】
【氏名】柳澤 英樹
(72)【発明者】
【氏名】石田 麻美子
(72)【発明者】
【氏名】岩木 英明
【審査官】佐藤 光起
(56)【参考文献】
【文献】特開2007-296248(JP,A)
【文献】米国特許出願公開第2016/0187990(US,A1)
【文献】特表2012-521039(JP,A)
【文献】特表2015-527627(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/0484
(57)【特許請求の範囲】
【請求項1】
センサ装置と、ユーザー操作を受け付けるコントローラと、前記ユーザー操作に基づいて処理を行う情報処理装置とを含むシステムであって、
前記センサ装置は、
所定のタイミングで全画素を同期的にスキャンすることによって第1画像信号を生成する第1画像センサと、
画素ごとに入射する光の強度変化を検出したときに非同期的に第2画像信号を生成するイベント駆動型のビジョンセンサを含む第2画像センサと、
前記第1画像信号と前記第2画像信号とに基づいて、ユーザーの状態と、当該ユーザーが保持する前記コントローラについて、前記ユーザーが前記コントローラのどの部分を把持しているか、および、前記コントローラが前記ユーザーに保持されている姿勢の少なくとも一方を含む前記コントローラの姿勢とを推定する推定部と、
前記ユーザーの状態を示す情報と前記コントローラの姿勢を示す情報とを出力する情報出力部とを備え、
前記情報処理装置は、
前記ユーザーの状態を示す情報と前記コントローラの姿勢を示す情報との少なくとも一方に基づいて、前記コントローラへのフィードバック制御の制御値を算出する制御値算出部を備え、
前記コントローラは、前記制御値に基づいて力覚を提示する力覚提示装置、前記制御値に基づいて振動する振動装置、または前記制御値に基づいて音声を出力する音声出力装置の少なくとも1つを有する、システム。
【請求項2】
前記ユーザーの状態は、前記ユーザーの姿勢、前記ユーザーの腕の形状、または前記ユーザーの手指の形状の少なくとも1つを含む、請求項1に記載のシステム。
【請求項3】
前記推定部は、複数の関節を有する人物の画像と、前記複数の関節の位置を示す座標情報との関係性を学習することによって構築された学習済みモデルに基づいて、前記第1画像信号に基づく第1画像に含まれる前記ユーザーの少なくとも1つの関節の座標情報を算出し、前記座標情報に基づいて前記ユーザーの状態を推定する、請求項1または請求項2に記載のシステム。
【請求項4】
前記情報処理装置は、前記第1画像信号と前記第2画像信号との少なくとも一方に基づいて、被写界に含まれる1以上のユーザーを認識する第1認識部をさらに備え、
前記推定部は、前記第1認識部により認識した前記ユーザーごとに、前記ユーザーの状態と、当該ユーザーが保持する前記コントローラの姿勢とを推定する、請求項1から請求項3のいずれか1項に記載のシステム。
【請求項5】
前記システムは複数の前記コントローラを含み、
前記情報処理装置は、前記第1認識部により認識した前記ユーザーごとに、当該ユーザーが保持する前記コントローラを認識する第2認識部をさらに備え、
前記情報出力部は、前記第1認識部により認識した前記ユーザーと、前記第2認識部により認識した前記コントローラとの組み合わせを示す情報を出力する、請求項4に記載のシステム。
【請求項6】
コントローラへのフィードバック制御の制御値を出力する情報処理方法であって、
所定のタイミングで全画素を同期的にスキャンする第1画像センサにより生成された第1画像信号と、画素ごとに入射する光の強度変化を検出したときに非同期的に第2画像信号を生成するイベント駆動型のビジョンセンサを含む第2画像センサにより生成された前記第2画像信号に基づいて、
ユーザーの状態と、当該ユーザーが保持する前記コントローラについて、前記ユーザーが前記コントローラのどの部分を把持しているか、および、前記コントローラが前記ユーザーに保持されている姿勢の少なくとも一方を含む前記コントローラの姿勢とを推定する推定ステップと、
前記ユーザーの状態を示す情報と前記コントローラの姿勢を示す情報とを出力する情報出力ステップと
を含む情報処理方法。
【請求項7】
所定のタイミングで全画素を同期的にスキャンする第1画像センサにより生成された第1画像信号と、画素ごとに入射する光の強度変化を検出したときに非同期的に第2画像信号を生成するイベント駆動型のビジョンセンサを含む第2画像センサにより生成された前記第2画像信号とに基づいて、
ユーザーの状態と、当該ユーザーが保持するコントローラについて、前記ユーザーが前記コントローラのどの部分を把持しているか、および、前記コントローラが前記ユーザーに保持されている姿勢の少なくとも一方を含む前記コントローラの姿勢とを推定する機能と、
前記ユーザーの状態を示す情報と前記コントローラの姿勢を示す情報とを出力する機能と
をコンピュータに実現させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
入射する光の強度変化を検出したピクセルが時間非同期的に信号を生成する、イベント駆動型のビジョンセンサが知られている。イベント駆動型のビジョンセンサは、所定の周期ごとに全ピクセルをスキャンするフレーム型ビジョンセンサ、具体的にはCCDやCMOSなどのイメージセンサに比べて、低電力で高速に動作可能である点で有利である。 このようなイベント駆動型のビジョンセンサに関する技術は、例えば特許文献1および特許文献2に記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特表2014-535098号公報
【文献】特開2018-85725号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、イベント駆動型のビジョンセンサについては、上記のような利点は知られているものの、他の装置と組み合わせた利用方法については、まだ十分に提案されているとは言いがたい。
【0005】
そこで、本発明は、所定のタイミングで全画素を同期的にスキャンするセンサにより生成した画像信号と、イベント駆動型のビジョンセンサにより生成した画像信号とに基づいて、ユーザーの状態と、当該ユーザーが保持するコントローラの姿勢とを推定し、推定結果に基づいて、コントローラへのフィードバック制御の制御値を算出することによって、レイテンシを抑えつつ、コントローラへの好適なフィードバック制御を実現することができるシステム、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明のある観点によれば、センサ装置と、ユーザー操作を受け付けるコントローラと、ユーザー操作に基づいて処理を行う情報処理装置とを含むシステムであって、センサ装置は、所定のタイミングで全画素を同期的にスキャンすることによって第1画像信号を生成する第1画像センサと、画素ごとに入射する光の強度変化を検出したときに非同期的に第2画像信号を生成するイベント駆動型のビジョンセンサを含む第2画像センサと、第1画像信号と第2画像信号とに基づいて、ユーザーの状態と、当該ユーザーが保持するコントローラの姿勢とを推定する推定部と、ユーザーの状態を示す情報とコントローラの姿勢を示す情報とを出力する情報出力部とを備え、情報処理装置は、ユーザーの状態を示す情報とコントローラの姿勢を示す情報との少なくとも一方に基づいて、コントローラへのフィードバック制御の制御値を算出する制御値算出部を備え、コントローラは、制御値に基づいて力覚を提示する力覚提示装置、制御値に基づいて振動する振動装置、または制御値に基づいて音声を出力する音声出力装置の少なくとも1つを有する、システムが提供される。
本発明の別の観点によれば、コントローラへのフィードバック制御の制御値を出力する情報処理方法であって、所定のタイミングで全画素を同期的にスキャンする第1画像センサにより生成された第1画像信号と、画素ごとに入射する光の強度変化を検出したときに非同期的に第2画像信号を生成するイベント駆動型のビジョンセンサを含む第2画像センサにより生成された第2画像信号に基づいて、ユーザーの状態と、当該ユーザーが保持するコントローラの姿勢とを推定する推定ステップと、ユーザーの状態を示す情報とコントローラの姿勢を示す情報とを出力する情報出力ステップとを含む情報処理方法が提供される。
本発明のさらに別の観点によれば、所定のタイミングで全画素を同期的にスキャンする第1画像センサにより生成された第1画像信号と、画素ごとに入射する光の強度変化を検出したときに非同期的に第2画像信号を生成するイベント駆動型のビジョンセンサを含む第2画像センサにより生成された第2画像信号とに基づいて、ユーザーの状態と、当該ユーザーが保持するコントローラの姿勢とを推定する機能と、ユーザーの状態を示す情報とコントローラの姿勢を示す情報とを出力する機能とをコンピュータに実現させる情報処理プログラムが提供される。
【発明の効果】
【0007】
上記の構成によれば、所定のタイミングで全画素を同期的にスキャンするセンサにより生成した画像信号と、イベント駆動型のビジョンセンサにより生成した画像信号とに基づいて、ユーザーの状態と、当該ユーザーが保持するコントローラの姿勢とを推定し、推定結果に基づいて、コントローラへのフィードバック制御の制御値を算出する。したがって、レイテンシを抑えつつ、コントローラへの好適なフィードバック制御を実現することができる。
【図面の簡単な説明】
【0008】
【
図1】本発明の一実施形態に係るシステムの全体を示す模式図である。
【
図2】本発明の一実施形態に係るシステムの概略的な構成を示すブロック図である。
【
図3】本発明の一実施形態に係るシステムにおける推定部の概略的な構成を示すブロック図である。
【
図4】本発明の一実施形態における推定の例について説明するための図である。
【
図5】本発明の一実施形態に係る処理方法の例を示すフローチャートである。
【
図6】本発明の一実施形態におけるフィードバック制御について説明する図である。
【
図7】本発明の一実施形態におけるフィードバック制御について説明する別の図である。
【
図8】本発明の別の実施形態に係るシステムの概略的な構成を示すブロック図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0010】
図1は、本実施形態に係るシステム1の全体を示す模式図である。
本実施形態に係るシステム1は、
図1に示すように、カメラユニット10と、情報処理装置20と、1以上のコントローラ30と、表示装置40とを含むゲームシステムである。情報処理装置20は、カメラユニット10、コントローラ30、および表示装置40のぞれぞれと有線または無線のネットワークにより接続される。
システム1では、カメラユニット10およびコントローラ30から送信される情報に応じて情報処理装置20がゲームを進行し、表示装置40が、情報処理装置20の実行時画面、例えばゲーム画面を表示する。
【0011】
本実施形態において、カメラユニット10は、ゲームのプレイヤーであるユーザーの状態と、当該ユーザーが保持するコントローラ30の姿勢とを推定し、推定結果を情報処理装置20に送信する。ここで、ユーザーの状態とは、ユーザーの姿勢、ユーザーの腕の形状、またはユーザーの手指の形状の少なくとも1つを含む。
カメラユニット10は、ユーザーの状態とコントローラ30の姿勢とを推定して出力することにより、コントローラ30と同様にユーザー操作を受け付けるための操作装置として機能する。このようなカメラユニット10は、ユーザーの状態とコントローラ30の姿勢とを推定するために、被写界にユーザーが収まる位置、例えばユーザーから1メートル程度の距離に配置される。
図1の例では、カメラユニット10は、表示装置40の近傍に配置される。カメラユニット10の最適な配置位置は、目的に応じて異なる。例えば、プレイ対象のゲームの内容に応じて、ユーザーの体全体、上半身、手元等、把握する対象が被写界に収まる位置にカメラユニット10を配置することが望まれる。
なお、カメラユニット10の配置に際しては、例えば、情報処理装置20によって表示装置40にチュートリアルなどを表示することにより、ユーザーがカメラユニット10を適切な位置に配置するよう案内するとよい。
【0012】
以下、システム1の各構成について説明する。
図2は、本発明の一実施形態に係るシステムの概略的な構成を示すブロック図である。
カメラユニット10は、RGBカメラ11と、EDS(Event Driven Sensor)12と、IMU(Inertial Measurement Unit)13と、推定部14と、情報出力部15とを含む。
RGBカメラ11は、第1画像センサであるイメージセンサ111と、イメージセンサ111に接続される処理回路112とを含む。イメージセンサ111は、例えば所定の周期で、またはユーザー操作に応じた所定のタイミングで全ピクセルを同期的にスキャンすることによってRGB画像信号113を生成する。処理回路112は、例えばRGB画像信号113を保存および伝送に適した形式に変換する。また、処理回路112は、RGB画像信号113にタイムスタンプを与える。
【0013】
EDS12は、センサアレイを構成する第2画像センサであるセンサ121と、センサ121に接続される処理回路122とを含む。センサ121は、受光素子を含み、画素ごとに入射する光の強度変化、より具体的には予め定めた所定の値を超える輝度変化を検出したときにイベント信号123を生成するイベント駆動型のビジョンセンサである。処理回路122を経て出力されるイベント信号123は、センサ121の識別情報(例えばピクセルの位置)と、輝度変化の極性(上昇または低下)と、タイムスタンプとを含む。また、輝度変化を検出した際に、EDS12は、RGB画像信号113の生成頻度(RGBカメラ11のフレームレート)より大幅に高い頻度でイベント信号123を生成することができる。また、EDS12は、RGB画像信号113の生成頻度(RGBカメラ11のフレームレート)より大幅に高い頻度でイベント信号123を生成することができる。
なお、本明細書では、当該信号に基づいて画像を構築可能な信号を画像信号という。したがって、RGB画像信号113およびイベント信号123は、画像信号の一例を示す。
【0014】
本実施形態において、RGB画像信号113およびイベント信号123に与えられるタイムスタンプは同期している。具体的には、例えば、EDS12でタイムスタンプを生成するために用いられる時刻情報をRGBカメラ11に提供することによって、RGB画像信号113およびイベント信号123に与えられるタイムスタンプを同期させることができる。あるいは、タイムスタンプを生成するための時刻情報がRGBカメラ11とEDS12とでそれぞれ独立している場合、特定のイベント(例えば、画像全体にわたる被写体の変化)が発生した時刻を基準にしてタイムスタンプのオフセット量を算出することによって、事後的にRGB画像信号113およびイベント信号123に与えられるタイムスタンプを同期させることができる。
【0015】
また、本実施形態では、事前に実行されるRGBカメラ11とEDS12とのキャリブレーション手順によって、EDS12のセンサ121がRGB画像信号113の1または複数のピクセルに対応付けられ、イベント信号123はRGB画像信号113の1または複数のピクセルにおける光の強度変化に応じて生成される。より具体的には、例えば、RGBカメラ11とEDS12とで共通の校正パターンを撮像し、RGBカメラ11およびEDS12のぞれぞれの内部パラメータおよび外部パラメータからカメラとセンサとの間の対応パラメータを算出することによって、RGB画像信号113の1または複数のピクセルにセンサ121を対応付けることができる。
【0016】
IMU13は、カメラユニット10自体の姿勢を検出するセンサである。IMU13は、所定の周期で、または、所定のタイミングでカメラユニット10の三次元の姿勢データを取得し、推定部14に出力する。
【0017】
推定部14は、EDS12において生成されたイベント信号123と、RGBカメラ11において生成されたRGB画像信号113とに基づいて、ユーザーの状態と、当該ユーザーが保持するコントローラ30の姿勢とを推定する。
図3は、推定部14の概略的な構成を示すブロック図である。推定部14は、第1認識部141と、座標算出部142と、学習済みモデル143と、状態推定部144と、第2認識部145と、姿勢推定部146とを含む。
推定部14の第1認識部141は、RGB画像信号113とイベント信号123との少なくとも一方に基づいて、カメラユニット10の被写界に含まれる1以上のユーザーを認識する。第1認識部141は、例えば、イベント信号123において同じ極性のイベントが発生していることが示される連続した画素領域に存在するオブジェクトを検出し、RGB画像信号113の対応する部分に基づいて被写体認識を行うことによりユーザーを認識する。カメラユニット10の被写界に複数のユーザーが含まれる場合、第1認識部141は、それぞれのユーザーを識別する。
【0018】
推定部14の座標算出部142は、第1認識部141により認識したユーザーごとに、学習済みモデル143に基づいて、RGB画像信号113からユーザーが有する複数の関節の位置を示す座標情報を算出する。学習済みモデル143は、例えば、複数の関節を有する人物の画像を入力データとし、人物の複数の関節の位置を示す座標情報を正解データとした教師あり学習を実行することによって予め構築することができる。なお、機械学習の具体的な手法については、公知の各種の技術を利用可能であるため詳細な説明は省略する。また、推定部14に関係性学習部を備え、RGB画像信号113が入力される度に、入力されたRGB画像信号113に基づく画像と関節の位置を示す座標情報との関係性を学習して学習済みモデル143を更新する構成としてもよい。そして、推定部14の状態推定部144は、第1認識部141により認識したユーザーごとに、座標算出部142により算出した座標情報に基づいて、ユーザーの状態を推定する。
【0019】
推定部14の第2認識部145は、RGB画像信号113とイベント信号123との少なくとも一方に基づいて、第1認識部141により認識したユーザーごとに、当該ユーザーが保持するコントローラ30を認識する。第2認識部145は、例えば、座標算出部142により算出したユーザーが有する複数の関節の位置を示す座標情報に基づき、RGB画像信号113のうち、ユーザーの手の近傍に対応する部分について被写体認識を行うことによりコントローラ30を認識する。第1認識部141により複数のユーザーが認識された場合、第2認識部145は、それぞれのユーザーについてコントローラ30を識別する。なお、コントローラ30の識別、つまり、何れのユーザーが何れのコントローラ30を保持しているかの判別はどのように行ってもよい。例えば、複数のコントローラ30のそれぞれに識別のためのマークなどを添付し、RGB画像信号113に基づいて判別してもよいし、複数のコントローラ30のそれぞれから所定の識別信号を出力する構成とし、カメラユニット10または情報処理装置20により受信した識別信号に基づいて判別してもよい。また、ユーザーがコントローラ30を保持していない場合、第2認識部145は、「ユーザーがコントローラ30を保持していない」ことを認識する。
【0020】
推定部14の姿勢推定部146は、第2認識部145により認識したコントローラ30ごとに、コントローラ30の姿勢を推定する。姿勢推定部146は、例えば、RGB画像信号113のうち、第2認識部145により行った被写体認識の結果に基づいてコントローラ30の形状を推定し、推定した形状に基づいてコントローラ30の姿勢を推定する。なお、コントローラ30がコントローラ30自体の姿勢を検出するセンサを有する場合、そのセンサの出力を加味してコントローラ30の姿勢を行ってもよい。第2認識部145により複数のコントローラ30が認識された場合、姿勢推定部146は、それぞれのコントローラ30について姿勢を推定する。なお、姿勢推定部146は、上述した座標算出部142と同様に、学習済みモデルを用いた機械学習の手法を利用してコントローラ30の姿勢を推定してもよい。
【0021】
図4は、推定部14によるユーザーの状態の推定、およびコントローラ30の姿勢の推定の例について説明するための図である。
図4では、左右にグリップ部分を有するコントローラ30を例示する。
推定部14により推定されるユーザーの状態は、上述したように、ユーザーの姿勢、ユーザーの腕の形状、またはユーザーの手指の形状の少なくとも1つを含む。ユーザーの姿勢は、例えば、ユーザーが椅子などに着席している状態、ユーザーが立っている状態、さらに、ユーザーがカメラユニット10に対して正面を向いている状態、側方を向いている状態等を含む。また、ユーザーの腕の形状は、例えば、ユーザーが腕を上げている状態やユーザーが腕を動かして所定のポーズをとっている状態等を含む。また、ユーザーの手指の形状は、例えば、ユーザーが手指を動かして2本の指を立てるピースサイン等の所定のポーズをとっている状態やユーザーがコントローラ30を握っている状態等を含む。また、コントローラ30の姿勢は、ユーザーがコントローラ30のどの部分を把持し、どのような姿勢でコントローラ30を保持しているかを示す。
【0022】
図4Aは、ユーザーが弓矢を構えるポーズをとり、コントローラ30の中央部分を片手で把持している状態を例示する。
図4Aの例は、ユーザーの状態とコントローラ30の姿勢に基づき、仮想の弓V1および矢V2を操作するゲームの例を示す。
図4Bは、ユーザーがコントローラ30のグリップ部分を両手で把持して回転させる状態を例示する。
図Bの例は、ユーザーの状態とコントローラ30の姿勢に基づき、オートバイ等のハンドルを操作するゲームの例を示す。
図4Cは、ユーザーがバットを構えるポーズをとり、コントローラ30の片側のグリップ部分を片手で把持している状態を例示する。
図4Cの例は、ユーザーの状態とコントローラ30の姿勢に基づき、仮想のバットV3を操作するゲームの例を示す。
図4Dは、ユーザーがコントローラ30を把持せずに手裏剣を投げるポーズをとっている状態を例示する。
図4Dの例は、コントローラ30を使用せずに、ユーザーの状態に基づき、仮想の手裏剣V4を操作するゲームの例を示す。
【0023】
ここまで説明した推定部14による推定処理は一例であり、RGB画像信号113およびイベント信号123をどのタイミングでどのように利用するかはこの例に限定されない。例えば、推定部14は、イベント信号123に基づいて、被写界に含まれるユーザーの一部または全体の移動量を算出し、算出結果を推定処理に利用してもよい。また、ブロックマッチング法、勾配法などの公知の手法を用いて推定処理を行ってもよい。
また、例えば、推定部14による推定処理に、IMU13により検出したカメラユニット10の三次元の姿勢データを利用してもよい。
【0024】
情報出力部15は、推定部14により推定したユーザーの状態を示す情報と、コントローラ30の姿勢を示す情報とを情報処理装置20に出力する。なお、ユーザーの状態を示す情報は、座標算出部142によって算出された座標情報でもよいし、状態推定部144によって推定されたユーザーの状態を示す情報であってもよい。
また、第1認識部141により複数のユーザーが認識された場合、情報出力部15は、ユーザーと、当該ユーザーが保持するコントローラとの組み合わせを示す情報を情報処理装置20に出力する。このような情報を出力する際には、ユーザーの状態を示す情報とコントローラ30の姿勢を示す情報との組み合わせを示すテーブルなどの情報を出力してもよいし、ユーザーの状態を示す情報に、当該ユーザーが保持するコントローラ30の識別情報を関連付けてもよいし、コントローラ30の姿勢を示す情報に、当該コントローラ30を保持するユーザーの状態を示す情報を関連付けてもよい。
さらに、ユーザーの状態およびコントローラ30の姿勢と、ユーザー操作との関係を予めテーブルなどに定めておくことにより、情報出力部15は、ユーザー操作を示す情報を情報処理装置20に出力してもよい。
【0025】
ここまで説明したように、カメラユニット10は、ユーザーの状態およびコントローラ30の姿勢を推定することにより、コントローラ30と同様にユーザー操作を受け付けるための操作装置として機能する。つまり、推定部14により推定されるユーザーの状態およびコントローラ30の姿勢に基づいて、ユーザー操作を識別することができる。また、カメラユニット10は、RGB画像信号113およびイベント信号123の生成からユーザーの状態の推定およびコントローラ30の姿勢の推定までを単体で完結し、情報処理装置20に対してRGB画像信号113およびイベント信号123は出力せずに、推定結果を出力することができる。なお、カメラユニット10は、独立した電源を有することが好ましい。
【0026】
再び
図2を参照して、情報処理装置20は、例えば通信インターフェース、プロセッサ、およびメモリを有するコンピュータによって実装され、通信部21および制御部22を含む。制御部22は、プロセッサがメモリに格納された、または通信インターフェースを介して受信されたプログラムに従って動作することによって実現される制御値算出部221および画像生成部222の各機能を含む。以下、各部の機能についてさらに説明する。
【0027】
通信部21は、カメラユニット10の情報出力部15から出力された情報を受信する。また、通信部21は、コントローラ30と相互に通信可能であるとともに、表示装置40に表示させる画像を出力する。
制御部22の制御値算出部221は、カメラユニット10の情報出力部15から受信した情報とコントローラ30から受信した情報との少なくとも一方に基づいて、コントローラ30および表示装置40を含む外部装置へのフィードバック制御の制御値を算出する。上述したように、カメラユニット10およびコントローラ30は、ユーザー操作を受け付けるための操作装置として機能する。そこで、制御値算出部221は、カメラユニット10とコントローラ30との少なくとも一方を介して行われたユーザー操作に応じて、コントローラ30および表示装置40を含む外部装置へのフィードバック制御の制御値を算出する。算出された制御値は、通信部21を介してコントローラ30および表示装置40に出力される。
制御部22の画像生成部222は、制御値算出部221により算出した制御値に応じて、表示装置40に表示する表示画像を生成する。生成された表示画像は、通信部21を介して表示装置40に出力される。
なお、制御値の算出、および表示画像の生成の詳細については、後述するコントローラ30および表示装置40の構成の説明と関連して説明を行う。
【0028】
コントローラ30は、
図2に示すように、通信部31、操作部32、力覚提示部33、振動部34、および音声出力部35を含む。ユーザーはコントローラ30を操作することによりゲームに関する各種操作を行うことができる。
通信部31は、情報処理装置20の通信部21から出力された制御値を受信して、力覚提示部33、振動部34、および音声出力部35の各部に出力する。また、通信部31は、操作部32により受け付けたユーザー操作に関する情報を、情報処理装置20に出力する。
操作部32は、ボタンおよびパッドなどの複数の操作子を備え、操作子に対するユーザーの操作入力を受け付ける。
力覚提示部33は、操作部32の少なくとも一部の操作子に設けられ、情報処理装置20から供給される制御値にしたがい、ユーザー操作に抗する、あるいは連動する力をユーザーに提示する。具体的に、力覚提示部33は、回転するロータを含むモータやアクチュエータ等で構成できる。力覚提示部33を構成する力覚提示装置については広く知られたものを採用できるので、ここでの詳しい説明を省略する。
【0029】
振動部34は、情報処理装置20から供給される制御値にしたがい、振動を発生するものであり、例えばモータにより構成できる。振動部34は、ユーザー操作が行われた場合に振動を発生することにより、ユーザー操作が正しく行われ、情報処理装置20に認識されたことをユーザーに通知することが可能である。
音声出力部35は、情報処理装置20から供給される制御値にしたがい、音声を出力するものであり、例えばスピーカにより構成できる。音声出力部35は、ユーザー操作が行われた場合に音声を出力することにより、ユーザー操作が正しく行われ、情報処理装置20に認識されたことをユーザーに通知することが可能である。
なお、上述した力覚提示部33による力覚の提示と連動して、振動部34による振動と、音声出力部35による音声出力との少なくとも一方が行われることにより、ユーザーへのフィードバック制御の多様性を高めることが可能である。
【0030】
情報処理装置20の制御値算出部221は、上述したように、コントローラ30へのフィードバック制御の制御値を算出するが、より具体的には、コントローラ30の力覚提示部33、振動部34、および音声出力部35へのフィードバック制御の制御値を算出する。力覚提示部33に関して、制御値算出部221は、ユーザー操作に応じたフィードバック制御としてどのような力覚を提示させるかを示す制御値を算出する。振動部34に関して、制御値算出部221は、ユーザー操作に応じたフィードバック制御としてどのような振動を発生させるかを提示するかを示す制御値を算出する。音声出力部35に関して、制御値算出部221は、ユーザー操作に応じたフィードバック制御としてどのような音声を出力させるかを示す制御値を算出する。制御値算出部221による制御値の算出は、予め定められた計算式やテーブル等にしたがって行うことができる。
なお、第1認識部141により複数のユーザーが認識され、情報出力部15によりユーザーと、当該ユーザーが保持するコントローラとの組み合わせを示す情報とが出力された場合、制御値算出部221は、ユーザーと、当該ユーザーが保持するコントローラとの組み合わせごとに制御値を算出する。
【0031】
例えば、上述した
図4Aの例で示したように、仮想の弓V1により矢V2を放つユーザー操作が行われた場合、制御値算出部221は、ユーザーの状態とコントローラ30の姿勢に基づき、力覚提示部33および振動部34に関して、実際に弓矢を放った際の反動に相当する力覚の提示および振動の発生を示す制御値を算出する。また、制御値算出部221は、実際に弓矢を放った際の音声に相当する音声の出力を示す制御値を算出する。
図4Bの例で示したように、オートバイ等のハンドルを操作するユーザー操作が行われた場合、制御値算出部221は、ユーザーの状態とコントローラ30の姿勢に基づき、力覚提示部33および振動部34に関して、ハンドルの操作への反動に相当する力覚の提示および振動の発生を示す制御値を算出する。また、制御値算出部221は、ハンドルの操作に相当する音声の出力を示す制御値を算出する。
図4Cの例で示したように、仮想のバットV3を操作するユーザー操作が行われた場合、制御値算出部221は、ユーザーの状態とコントローラ30の姿勢に基づき、力覚提示部33および振動部34に関して、実際にバットを操作した際の反動に相当する力覚の提示および振動の発生を示す制御値を算出する。また、制御値算出部221は、実際にバットを操作した際に発生する音声に相当する音声の出力を示す制御値を算出する。
なお、
図4Dの例で示したように、コントローラ30を使用せずにユーザー操作が行われた場合には、制御値算出部221は、コントローラ30へのフィードバック制御の制御値を算出しない。
【0032】
なお、ここまで説明したコントローラ30には公知の様々な構成を適用することが可能である。例えば、両手のそれぞれに把持可能な一対のコントローラにより構成されてもよいし、キーボートのような文字入力が可能なコントローラにより構成されてもよいし、スマートフォンなどのアプリケーションにより構成されてもよい。
また、コントローラ30に、接触センサを備え、接触センサへのユーザーの接触状態を示す情報を、通信部31を介して情報処理装置20に供給してもよい。このような情報は、制御値算出部221による制御値の算出に利用することができる。
また、コントローラ30に、音声入力部を備え、音声認識技術を適用してもよい。例えば、コントローラ30にマイクなどの音声入力部と音声認識部とを備え、ユーザーが発声するコマンドや、ユーザーの呼びかけなどを示す情報を、通信部31を介して情報処理装置20に供給してもよい。
【0033】
表示装置40は、
図2に示すように、受信部41、および表示部42を含む。
受信部41は、情報処理装置20の画像生成部222が生成した表示画像を示す情報を、通信部21を介して受信する。
表示部42は、例えばLCD(Liquid Crystal Display)や有機ELなどのモニタを備え、受信部41により受信した情報に基づき、表示画像を表示することにより、ユーザーに提示することが可能である。
【0034】
なお、上述した表示装置40には公知の様々な構成を適用することが可能である。例えば、
図1に示した専用の表示装置により構成されてもよいし、ユーザーの頭部に装着されるHMDなどの表示装置により構成されてもよい。例えば、HMDの表示部は、例えばLCD(Liquid Crystal Display)、有機ELなどの表示素子と、レンズなどの光学装置とを備え、表示素子は、透過型の表示素子であってもよいし、非透過型の表示素子であってもよい。さらに、AR(Augmented Reality)グラス、MR(Mixed Reality)グラスなどの装着型デバイスをHMDとして使用してもよい。また、上述した表示装置40は、コンピュータの表示装置により構成されてもよいし、スマートフォンなどの端末装置の表示装置により構成されてもよい。また、表示部42の表面に接触を検知するタッチパネルを備えてもよい。
【0035】
情報処理装置20の制御値算出部221は、上述したように、表示装置40に表示する表示画像へのフィードバック制御の制御値を算出するが、より具体的には、制御値算出部221は、ユーザー操作に応じたフィードバック制御として表示画像をどのように変化させるかを示す制御値を算出する。制御値算出部221による制御値の算出は、予め定められた計算式やテーブル等にしたがって行うことができる。
【0036】
情報処理装置20の画像生成部222は、上述したように、制御値算出部221により算出した制御値に応じて表示装置40に表示する表示画像を生成する。より具体的には、画像生成部222は、表示画像を変化させるための制御値にしたがって、新たに表示装置40に表示する表示画像を生成する。なお、表示画像の生成には、カメラユニット10により推定したユーザーの状態およびコントローラ30の姿勢が反映される。そのため、例えば、ユーザーが静止し、コントローラ30の姿勢が変化しない場合には、生成される表示画像の変化が小さいか変化がなく、ユーザー操作が行われた場合には、生成される表示画像はユーザー操作に応じて変化した画像となる。また、カメラユニット10の被写界に複数のユーザーが含まれる場合には、生成される表示画像はユーザーの人数に応じて変化した画像となる。
【0037】
図5は、本発明の一実施形態に係るカメラユニット10の処理の例を示すフローチャートである。図示された例では、RGBカメラ11のイメージセンサ111がRGB画像信号113を生成する(ステップS101)とともに、EDS12のセンサ121がイベント信号123を生成する(ステップS102)。
そして、第1認識部141がユーザーを認識し(ステップS103)、座標算出部142および状態推定部144がユーザーの状態を推定する(ステップS104)。次に、第2認識部145がコントローラ30の状態を推定し(ステップS105)、姿勢推定部146がコントローラ30の姿勢を推定する(ステップS106)。
そして、情報出力部15がユーザーの状態を示す情報、コントローラ30の姿勢を示す情報、及びユーザーと、当該ユーザーが保持するコントローラとの組み合わせを示す情報を出力する(ステップS107)。
推定部14は、ステップS103からステップS107を繰り返す(ステップS101からS102の処理も繰り返されるが、必ずしもステップS103以降の処理と同じ周期でなくてもよい)ことにより、情報の出力を継続する。
【0038】
このような処理により、カメラユニット10は、常に最新のユーザーの状態を示す情報、コントローラ30の姿勢を示す情報、及びユーザーと、当該ユーザーが保持するコントローラ30との組み合わせを示す情報を出力する。
情報処理装置20は、これらの情報に基づいてコントローラ30へのフィードバック制御の制御値を算出することにより、ユーザーの状態およびコントローラ30の姿勢の変化に応じた好適なフィードバック制御を実現することができる。
例えば、
図6に例示するように、ユーザーの人数が変化する場合を考える。
図6Aに示すように、カメラユニット10の被写界内に一人のユーザーU1が存在する状態では、カメラユニット10は、ユーザーU1の状態を示す情報と、ユーザーU1が保持するコントローラ30
U1の姿勢を示す情報とを出力し、情報処理装置20は、コントローラ30
U1へのフィードバック制御の制御値を算出する。その後、
図6Bに示すように、カメラユニット10の被写界内にもう一人のユーザーU2が入ってきた場合、カメラユニット10は、ユーザーU1およびユーザーU2の状態を示す情報と、ユーザーU1が保持するコントローラ30
U1およびユーザーU2が保持するコントローラ30
U2の姿勢を示す情報と、ユーザーと当該ユーザーが保持するコントローラ30との組み合わせを示す情報とを出力し、情報処理装置20は、コントローラ30
U1へのフィードバック制御の制御値と、コントローラ30
U2へのフィードバック制御の制御値とをそれぞれ算出する。
つまり、ユーザーの人数が動的に変化しても、ユーザーの状態を示す情報、コントローラ30の姿勢を示す情報、およびユーザーと当該ユーザーが保持するコントローラ30との組み合わせを示す情報が更新されるため、常に最新の状態に合わせたフィードバック制御を実現することができる。
【0039】
また、例えば、
図7に例示するように、ユーザーの人数が変化し、コントローラ30を保持するユーザーが変化する場合を考える。
図7Aに示すように、カメラユニット10の被写界内に一人のユーザーU1が存在する状態では、カメラユニット10は、ユーザーU1の状態を示す情報と、ユーザーU1が保持するコントローラ30
U1の姿勢を示す情報とを出力し、情報処理装置20は、コントローラ30
U1へのフィードバック制御の制御値を算出する。その後、
図7Bに示すように、カメラユニット10の被写界内にもう一人のユーザーU2が入ってきて、ユーザーU1が保持していたコントローラ30
U1をユーザーU2が保持した場合、カメラユニット10は、ユーザーU1およびユーザーU2の状態を示す情報と、ユーザーU2が保持するコントローラ30
U1の姿勢を示す情報と、ユーザーと当該ユーザーが保持するコントローラ30との組み合わせを示す情報とを出力し、情報処理装置20は、コントローラ30
U1へのフィードバック制御の制御値を算出する。
つまり、あるコントローラ30を保持するユーザーが動的に変化しても、ユーザーの状態を示す情報、コントローラ30の姿勢を示す情報、およびユーザーと当該ユーザーが保持するコントローラ30との組み合わせを示す情報が更新されるため、常に最新の状況に合わせたフィードバック制御を実現することができる。
なお、図示は省略するが、ユーザーの人数が変化せず、コントローラ30を保持するユーザーが変化する場合についても同様である。何れの場合においても、ユーザーの人数が変化しても、コントローラ30を保持するユーザーが変化しても、特別な設定処理等を行うことなく、状況に合わせたフィードバック制御を実現することができる。
【0040】
以上で説明したような本発明の一実施形態では、カメラユニット10は、イメージセンサ111およびセンサ121によりそれぞれ生成したRGB画像信号113およびイベント信号123に基づいて、ユーザーの状態と、当該ユーザーが保持するコントローラ30の姿勢とを推定して推定結果を出力し、情報処理装置20は、ユーザーの状態を示す情報とコントローラ30の姿勢を示す情報との少なくとも一方に基づいて、コントローラ30へのフィードバック制御の制御値を算出する。
したがって、カメラユニット10を介したユーザー操作が行われた場合に、ユーザーの状態を示す情報とコントローラ30の姿勢を示す情報に基づいてコントローラ30へのフィードバック制御の制御値を算出することにより、レイテンシを抑えつつ、コントローラへの好適なフィードバック制御を実現する。
【0041】
また、RGB画像信号113およびイベント信号123の生成からユーザーの状態およびコントローラ30の姿勢の推定までをカメラユニット10で行い、RGB画像信号113およびイベント信号123は出力せずに、推定結果を示す情報を出力することにより、通信負荷や通信遅延の問題を低減することができる。さらに、RGB画像信号113およびイベント信号123を出力する必要がないため、プライバシー保護の点でも有用である。
また、本発明の一実施形態のカメラユニット10は、ユーザーの状態およびコントローラ30の姿勢を推定してユーザー操作を受け付けることができるため、従来のポインティングデバイス方式の操作装置のようにカーソル位置を維持するためにユーザーの肉体疲労を引き起こすこともない。また、カメラユニット10は、従来の姿勢検出方式の操作装置のように認識対象となるマーカーやアタッチメントをユーザーに装着させる必要もない。
【0042】
また、本発明の一実施形態では、EDS12およびRGBカメラ11の両方を備え、イベント信号123とRGB画像信号113とに基づいて、ユーザーの状態およびコントローラ30の姿勢を推定する。そのため、RGB画像信号113およびイベント信号123のそれぞれの特性を活かした好適な処理を実現することができる。
【0043】
また、本発明の一実施形態では、推定部14により推定されるユーザーの状態は、ユーザーの姿勢、ユーザーの腕の形状、またはユーザーの手指の形状の少なくとも1つを含む。したがって、特徴的なユーザーの状態を推定し、ユーザー操作の意図や内容を的確に把握することができる。
【0044】
また、本発明の一実施形態では、推定部14は、複数の関節を有する人物の画像と、複数の関節の位置を示す座標情報との関係性を学習することによって構築された学習済みモデルに基づいて、RGB画像信号113に基づく画像に含まれるユーザーの少なくとも1つの関節の座標情報を算出し、座標情報に基づいてユーザーの状態を推定する。したがって、ユーザーの状態を的確かつ高速に推定することができる。
【0045】
また、本発明の一実施形態では、RGB画像信号113とイベント信号123との少なくとも一方に基づいて、被写界に含まれる1以上のユーザーを認識する第1認識部141を備え、推定部14は、第1認識部141により認識したユーザーごとに、ユーザーの状態と、当該ユーザーが保持するコントローラ30の姿勢とを推定する。したがって、カメラユニット10の被写界に含まれる複数のユーザーごとにユーザー操作を把握することができる。
【0046】
また、本発明の一実施形態では、第1認識部141により認識したユーザーごとに、当該ユーザーが保持するコントローラ30を認識する第2認識部145を備え、情報出力部15は、第1認識部141により認識したユーザーと、第2認識部145により認識したコントローラ30との組み合わせを示す情報を出力する。したがって、複数のユーザーにより複数のコントローラ30が使用されている状態であっても、ユーザーとコントローラ30との組み合わせをふまえたユーザー操作を把握し、フィードバック制御に反映させることができる。
【0047】
図8は、本発明の別の実施形態に係るシステムの概略的な構成を示すブロック図である。なお、
図8は、
図2の情報処理装置20に代えて、サーバ50および端末装置60を備えたシステム2の構成を示すブロック図であり、
図8においては、
図2と実質的に同一の機能構成を有する構成要素については、同一の符号を付する。
【0048】
図8の例においては、サーバ50は、カメラユニット10および端末装置60とインターネット通信網や、無線によって通信可能に接続されたサーバ(例えば、クラウドサーバ)である。サーバ50は、
図2で説明した情報処理装置20と同様の構成を有し、カメラユニット10により出力された情報に基づく各種処理を行う。また、端末装置60は、通信部61を備え、通信部61は、サーバ50から出力された情報を受信する。また、通信部61は、
図2で説明した情報処理装置20の通信部21と同様に、コントローラ30と相互に通信可能であるとともに、表示装置40に表示させる画像を出力する。
このような構成により、RGB画像信号113およびイベント信号123の生成から人物の状態の推定までをカメラユニット10で行い、サーバ50には推定した情報を出力することにより、クラウドサーバなどのサーバを用いたゲームシステムにおいても同様の効果を得ることができる。
【0049】
また、上記の各例において、RGBカメラ11およびEDS12の数は同数であってもよいし、異なる数であってもよい。また、RGBカメラ11およびEDS12の数は、それぞれ1つであってもよいし、複数であってもよい。例えば、複数のRGBカメラ11を備える場合には、RGB画像信号113を生成する被写界のレンジを拡大したり、複数のRGB画像信号113から人物の状態を三次元で推定したりすることができる。また、例えば、複数のEDS12を備える場合には、イベント信号123を生成する被写界のレンジを拡大したり、複数のイベント信号123に基づいて、人物の三次元の移動量を算出したりすることができる。
【0050】
また、上記の各例で説明されたカメラユニット10は、単一の装置内で実装されてもよいし、複数の装置に分散して実装されてもよい。例えば、各センサの少なくとも一部を独立に備え、その他の構成をカメラユニット10本体として実装してもよい。
【0051】
以上、添付図面を参照しながら本発明のいくつかの実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0052】
1・2…システム、10…カメラユニット、11…RGBカメラ、12…EDS、13…IMU、14…推定部14…情報出力部、20…情報処理装置、21・31・61…通信部、22…制御部、32…操作部、33…力覚提示部、34…振動部、35…音声出力部、40…表示装置、41…受信部、42…表示部、50…サーバ、60…端末装置、111…イメージセンサ、112・122…処理回路、113…RGB画像信号、121…センサ、123…イベント信号、141…第1認識部、142…座標算出部、143…学習済みモデル、144…状態推定部、145…第2認識部、146…姿勢推定部、221…制御値算出部、222…画像生成部。