JP2023178798A - 情報処理装置、コントローラ表示方法およびコンピュータプログラム - Google Patents

情報処理装置、コントローラ表示方法およびコンピュータプログラム Download PDF

Info

Publication number
JP2023178798A
JP2023178798A JP2022091709A JP2022091709A JP2023178798A JP 2023178798 A JP2023178798 A JP 2023178798A JP 2022091709 A JP2022091709 A JP 2022091709A JP 2022091709 A JP2022091709 A JP 2022091709A JP 2023178798 A JP2023178798 A JP 2023178798A
Authority
JP
Japan
Prior art keywords
controller
input device
user
image
photographed image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022091709A
Other languages
English (en)
Inventor
雅則 野村
Masanori Nomura
ゆりか 村瀬
Yurika Murase
京 鈴木
Kyo Suzuki
祥次 渡邊
Shoji Watanabe
静華 小原
Shizuka OHARA
翔威 米富
Shoi Yonettomi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2022091709A priority Critical patent/JP2023178798A/ja
Priority to PCT/JP2023/019468 priority patent/WO2023238678A1/ja
Publication of JP2023178798A publication Critical patent/JP2023178798A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

【課題】ヘッドマウントディスプレイを装着したユーザがコントローラを正しく把持できるよう支援する技術を提供する。【解決手段】撮影画像取得部212は、ヘッドマウントディスプレイ(HMD100)を装着したユーザの正面方向を撮影した撮影画像を取得する。推定処理部230は、ユーザが湾曲部に手を差し入れて把持部を把持すべきコントローラ(入力デバイス16)が映る撮影画像に基づいて、入力デバイス16の位置を推定する。表示制御部276は、ユーザの正面方向を撮影した撮影画像をHMD100に表示させる。表示制御部276は、入力デバイス16の位置の推定結果に基づいて、撮影画像に映る入力デバイス16の近傍に、入力デバイス16を正しく把持できるよう支援するオブジェクトをさらに表示させる。【選択図】図8

Description

本発明は、情報処理装置、コントローラ表示方法およびコンピュータプログラムに関する。
ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(Virtual Reality:VR)を実現する電子コンテンツ(以下「VRコンテンツ」とも呼ぶ。)が知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。
また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、VRコンテンツとして表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。また、ヘッドマウントディスプレイに内蔵されたカメラで撮影した周囲の実世界の映像に3次元コンテンツを重ねて表示するビデオシースルーも実現されている。
ヘッドマウントディスプレイを使用するユーザは、コントローラを手に持たずにヘッドマウントディスプレイを装着し、ヘッドマウントディスプレイ装着後にコントローラを手に持とうとすることがある。この場合、ユーザは、ヘッドマウントディスプレイのカメラで撮影された周囲の映像を見ることができるが、ユーザがコントローラの形状に慣れるまではコントローラをどう持てばよいか分からないことがある。
本発明の1つの目的は、ヘッドマウントディスプレイを装着したユーザがコントローラを正しく把持できるよう支援する技術を提供することにある。
上記課題を解決するために、本発明のある態様の情報処理装置は、ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得する撮影画像取得部と、ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、コントローラの位置を推定する推定部と、ユーザの正面方向を撮影した撮影画像をヘッドマウントディスプレイに表示させる表示制御部とを備える。表示制御部は、コントローラの位置の推定結果に基づいて、撮影画像に映るコントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる。
本発明の別の態様は、コントローラ表示方法である。この方法は、ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得するステップと、ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、コントローラの位置を推定するステップと、ユーザの正面方向を撮影した撮影画像をヘッドマウントディスプレイに表示させるステップとをコンピュータが実行する。表示させるステップは、コントローラの位置の推定結果に基づいて、撮影画像に映るコントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる。
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
実施例における情報処理システムの構成例を示す図である。 HMDの外観形状の例を示す図である。 HMDの機能ブロックを示す図である。 図4(a)は左手用の入力デバイスの形状を示す図であり、図4(b)は右手用の入力デバイスの形状を示す図である。 右手用の入力デバイスの形状を示す図である。 入力デバイスを撮影した画像の一部の例を示す図である。 入力デバイスの機能ブロックを示すブロック図である。 情報処理装置の機能ブロックを示すブロック図である。 位置姿勢推定処理を示すフローチャートである。 推定処理部の内部構成を示す図である。 カメラAR映像におけるガイド表示の遷移例を示す図である。 カメラAR映像の例を示す図である。 カメラAR映像の例を示す図である。 カメラAR映像の例を示す図である。 カメラAR映像の例を示す図である。
ヘッドマウントディスプレイにVRコンテンツを表示する情報処理システムの初期設定フローでは、その序盤に、情報処理装置(ゲーム機等)とコントローラ(実施例では「入力デバイス」とも呼ぶ。)をペアリングする。ヘッドマウントディスプレイは、VRヘッドセットとも言え、以下「HMD」とも呼ぶ。ペアリングの時点で、コントローラは、電源オンの状態、言い換えれば、バッテリー等の電源から電力が供給される状態になる。ペアリング後、ユーザは、コントローラを手に持たずにHMDを頭部に装着し、また、各種調整を行う。そして初期設定フローの終盤に、ユーザは、コントローラを手に持って、HMDを装着したユーザが移動可能なプレイエリアの編集に関する操作を行う。
プレイエリアの編集のためにコントローラを手に持とうとするとき、ユーザは、HMDのカメラで撮影された周囲の実世界の映像を見ることができる。しかし、慣れていないユーザにとって、HMDのカメラで撮影された映像を頼りにコントローラを見つけ、また、コントローラの姿勢を正しく判断してコントローラを正しく把持することは容易でない。
そこで、実施例の情報処理システムでは、HMDのカメラで撮影された映像に、コントローラを正しく把持できるよう支援する情報を付加してユーザに提示する。具体的には、コントローラを正しく把持できるよう支援する情報として、撮影画像に映るコントローラの把持部の近傍に、把持すべき箇所であることを示唆するオブジェクトを付加する。実施例では、コントローラは、把持部に加えてユーザが手を差し入れるための湾曲部を備え、コントローラを正しく把持できるよう支援する情報として、撮影画像に映るコントローラの湾曲部の近傍に、手を差し入れるべき箇所であることを示唆するオブジェクトを付加する。これにより、HMDを装着したユーザがコントローラを正しく把持できるよう支援する。
図1は、実施例における情報処理システム1の構成例を示す。情報処理システム1は、情報処理装置10と、記録装置11と、HMD100と、ユーザが持って手指で操作する入力デバイス16と、画像および音声を出力する出力装置15とを備える。出力装置15はテレビであってよい。情報処理装置10は、アクセスポイント(AP)17を介して、インターネットなどの外部のネットワーク2に接続される。AP17は無線アクセスポイントおよびルータの機能を有し、情報処理装置10はAP17とケーブルで接続してもよく、既知の無線通信プロトコルで接続してもよい。
記録装置11は、システムソフトウェアや、ゲームソフトウェアなどのアプリケーションを記録する。情報処理装置10は、コンテンツサーバからネットワーク2経由で、ゲームソフトウェアなどの様々なアプリケーションを記録装置11にダウンロードしてよい。情報処理装置10は、様々なアプリケーションを実行して、出力対象のアプリケーションの画像データおよび音声データ(VRコンテンツのデータとも言える)をHMD100に供給する。情報処理装置10とHMD100とは既知の無線通信プロトコルで接続されてもよく、またケーブルで接続されてもよい。
HMD100は、ユーザが頭部に装着することによりその眼前に位置する表示パネルに画像を表示する表示装置である。HMD100は、左目用表示パネルに左目用の画像を、右目用表示パネルに右目用の画像を、それぞれ別個に表示する。これらの画像は左右の視点から見た視差画像を構成し、立体視を実現する。ユーザは光学レンズを通して表示パネルを見るため、情報処理装置10は、レンズによる光学歪みを補正した視差画像データをHMD100に供給する。
HMD100を装着したユーザにとって出力装置15は必要ないが、出力装置15を用意することで、別のユーザが出力装置15の表示画像を見ることができる。情報処理装置10は、HMD100を装着したユーザが見ている画像と同じ画像を出力装置15に表示させてもよいが、別の画像を表示させてもよい。例えば、HMD100を装着したユーザと、別のユーザとが一緒にゲームをプレイするような場合、出力装置15からは、当該別のユーザのキャラクタ視点からのゲーム画像が表示されてもよい。
情報処理装置10と入力デバイス16とは既知の無線通信プロトコルで接続されてよく、またケーブルで接続されてもよい。入力デバイス16は操作ボタンなどの複数の操作部材を備え、ユーザは入力デバイス16を把持しながら、手指で操作部材を操作する。情報処理装置10がゲームを実行する際、入力デバイス16は、ゲームコントローラとして利用される。例えば、入力デバイス16は、ゲームの進行に関するユーザの操作が操作部材に入力され、その操作情報を情報処理装置10に伝達して、ユーザの操作をゲームに反映させる。変形例として、入力デバイス16は、HMD100と通信し、HMD100の動作を制御するコントローラであってもよい。
入力デバイス16は、3軸の加速度センサおよび3軸の角速度センサを含む慣性計測装置(IMU:Inertial Measurement Unit)を備える。入力デバイス16は、IMUにより計測されたセンサデータを所定の周期(たとえば800Hz)で情報処理装置10に送信する。
実施例のゲームは、入力デバイス16の操作部材の操作情報だけでなく、入力デバイス16の位置、速度、姿勢などを操作情報として取り扱って、仮想3次元空間内におけるプレイヤキャラクタの動きに反映する。たとえば操作部材の操作情報は、プレイヤキャラクタを移動させるための情報として利用され、入力デバイス16の位置、速度、姿勢などの操作情報は、プレイヤキャラクタの腕を動かすための情報として利用されてよい。ゲーム内の戦闘シーンにおいて、入力デバイス16の動きが、武器をもつプレイヤキャラクタの動きに反映されることで、ユーザの直観的な操作が実現され、ゲームへの没入感が高められる。
入力デバイス16の位置および姿勢をトラッキングするために、入力デバイス16には、撮像装置14によって撮影可能な複数のマーカ(光出射部)が設けられる。情報処理装置10は、入力デバイス16を撮影した画像を解析して、実空間における入力デバイス16の位置および姿勢を推定する機能(以下、「第1推定機能」とも呼ぶ)を備える。
HMD100には、複数の撮像装置14が搭載される。複数の撮像装置14は、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含むように、HMD100の前面の異なる位置に異なる姿勢で取り付けられる。撮像装置14は、入力デバイス16の複数のマーカの像を取得できるイメージセンサを備える。たとえばマーカが可視光を出射する場合、撮像装置14はCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなど、一般的なデジタルビデオカメラで利用されている可視光センサを有する。マーカが非可視光を出射する場合、撮像装置14は非可視光センサを有する。
複数の撮像装置14は同期したタイミングで、ユーザの前方を所定の周期(たとえば120フレーム/秒)で撮影し、実空間を撮影した画像(以下「撮影画像」とも呼ぶ。)のデータを情報処理装置10に送信する。実施例の撮影画像は、HMD100を装着したユーザの正面方向(ユーザの顔が向いた方向)の実空間を撮影した画像である。
情報処理装置10は第1推定機能を実施して、撮影画像に含まれる入力デバイス16の複数のマーカ像の位置を特定する。なお1つの入力デバイス16が同じタイミングで複数の撮像装置14に撮影されることもあるが、撮像装置14の取付位置および取付姿勢は既知であるため、情報処理装置10は複数の撮影画像を合成して、マーカ像の位置を特定してよい。
入力デバイス16の3次元形状と、その表面に配置された複数のマーカの位置座標は既知であり、情報処理装置10は、撮影画像内の複数のマーカ像の位置座標にもとづいて、入力デバイス16の実空間における位置および姿勢を推定する。入力デバイス16の位置は、基準位置を原点とした3次元空間におけるワールド座標における座標値として推定されてもよく、基準位置はゲーム開始前に設定した位置座標(緯度、経度、高度(標高))であってよい。また、入力デバイス16の姿勢は、予め定められた基準姿勢に対する3軸のそれぞれにおける傾きや角度で表現されてもよい。
実施例の情報処理装置10は、入力デバイス16から送信されるセンサデータを解析して、実空間における入力デバイス16の位置および姿勢を推定する機能(以下、「第2推定機能」とも呼ぶ)を備える。情報処理装置10は、第1推定機能による推定結果と、第2推定機能による推定結果を用いて、入力デバイス16の位置および姿勢を導出する。実施例の情報処理装置10は、カルマンフィルタを用いた状態推定技術を利用して、第1推定機能による推定結果と第2推定機能による推定結果とを統合することで、現在時刻における入力デバイス16の状態を高精度に推定する。
図2は、HMD100の外観形状の例を示す。HMD100は、出力機構部102および装着機構部104から構成される。装着機構部104は、ユーザが被ることにより頭部を一周してHMD100を頭部に固定する装着バンド106を含む。装着バンド106はユーザの頭囲に合わせて長さの調節が可能な素材または構造をもつ。
出力機構部102は、HMD100をユーザが装着した状態において左右の目を覆う形状の筐体108を含み、内部には装着時に目に正対する表示パネルを備える。表示パネルは液晶パネルや有機ELパネルなどであってよい。筐体108内部にはさらに、表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する左右一対の光学レンズが備えられる。HMD100はさらに、ユーザの耳に対応する位置にスピーカーやイヤホンを備えてよく、外付けのヘッドホンが接続されるように構成されてもよい。
筐体108の前方側外面には、複数の撮像装置14として、撮像装置14a、14b、14c、14dが備えられる。ユーザの顔正面方向を基準として、撮像装置14aは、カメラ光軸が右斜め上を向くように前方側外面の右上隅に取り付けられ、撮像装置14bは、カメラ光軸が左斜め上を向くように前方側外面の左上隅に取り付けられ、撮像装置14cは、カメラ光軸が右斜め下を向くように前方側外面の右下隅に取り付けられ、撮像装置14dは、カメラ光軸が左斜め下を向くように前方側外面の左下隅に取り付けられる。このように複数の撮像装置14が設置されることで、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含む。このユーザの視野は、3次元仮想空間におけるユーザの視野であってよい。
HMD100は、IMU(慣性計測装置)が検出したセンサデータおよび撮像装置14が撮影した画像データを情報処理装置10に送信し、また情報処理装置10で生成されたゲーム画像データおよびゲーム音声データを受信する。
図3は、HMD100の機能ブロックを示す。制御部120は、画像データ、音声データ、センサデータなどの各種データや、命令を処理して出力するメインプロセッサである。制御部120は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)を備えてもよい。記憶部122は、制御部120が処理するデータや命令などを一時的に記憶する。IMU124は、HMD100の動きに関するセンサデータを取得する。IMU124は、少なくとも3軸の加速度センサおよび3軸の角速度センサを含んでよい。IMU124は、所定の周期(たとえば800Hz)で各軸成分の値(センサデータ)を検出する。
通信制御部128は、ネットワークアダプタまたはアンテナを介して、有線または無線通信により、制御部120から出力されるデータを外部の情報処理装置10に送信する。また通信制御部128は、情報処理装置10からデータを受信し、制御部120に出力する。
制御部120は、ゲーム画像データやゲーム音声データを情報処理装置10から受け取ると、表示パネル130に供給して表示させ、また音声出力部132に供給して音声出力させる。表示パネル130は、左目用表示パネル130aと右目用表示パネル130bから構成され、各表示パネルに一対の視差画像が表示される。また制御部120は、IMU124からのセンサデータ、マイク126からの音声データ、撮像装置14からの撮影画像データを、通信制御部128から情報処理装置10に送信させる。
図4(a)は、左手用の入力デバイス16aの形状を示す。左手用の入力デバイス16aは、ケース体20と、ユーザが操作する複数の操作部材22a、22b、22c、22d(以下、特に区別しない場合は「操作部材22」と呼ぶ)と、ケース体20の外部に光を出射する複数のマーカ30とを備える。マーカ30は断面円形の出射部を有してよい。操作部材22は、傾動操作するアナログスティック、押下式ボタンなどを含んでよい。ケース体20は、把持部21と、ケース体頭部とケース体底部とを連結する湾曲部23を有し、ユーザは湾曲部23に左手を入れて、把持部21を把持する。ユーザは把持部21を把持した状態で、左手の親指を用いて、操作部材22a、22b、22c、22dを操作する。
図4(b)は、右手用の入力デバイス16bの形状を示す。右手用の入力デバイス16bは、ケース体20と、ユーザが操作する複数の操作部材22e、22f、22g、22h(以下、特に区別しない場合は「操作部材22」と呼ぶ)と、ケース体20の外部に光を出射する複数のマーカ30とを備える。操作部材22は、傾動操作するアナログスティック、押下式ボタンなどを含んでよい。ケース体20は、把持部21と、ケース体頭部とケース体底部とを連結する湾曲部23を有し、ユーザは湾曲部23に右手を入れて、把持部21を把持する。ユーザは把持部21を把持した状態で、右手の親指を用いて、操作部材22e、22f、22g、22hを操作する。
図5は、右手用の入力デバイス16bの形状を示す。入力デバイス16bは、図4(b)で示した操作部材22e、22f、22g、22hに加えて、操作部材22i、22jを有する。ユーザは把持部21を把持した状態で、右手の人差し指を用いて操作部材22iを操作し、中指を用いて操作部材22jを操作する。以下、入力デバイス16aと入力デバイス16bとを特に区別しない場合、「入力デバイス16」と呼ぶ。実施例の入力デバイス16は、ユーザが湾曲部23に手を差し入れて把持部21を把持すべきコントローラである。
入力デバイス16に設けられた操作部材22は、押さなくても、触れるだけで指を認識するタッチセンス機能を搭載してよい。右手用の入力デバイス16bに関して言えば、操作部材22f、22g、22jが、静電容量式タッチセンサを備えてよい。なおタッチセンサは他の操作部材22に搭載されてもよいが、入力デバイス16をテーブルなどの載置面に置いた際に、タッチセンサが載置面に接触することのない操作部材22に搭載されることが好ましい。
マーカ30は、ケース体20の外部に光を出射する光出射部であり、ケース体20の表面において、LED(Light Emitting Diode)素子などの光源からの光を外部に拡散出射する樹脂部を含む。マーカ30は撮像装置14により撮影されて、入力デバイス16のトラッキング処理に利用される。
情報処理装置10は、撮像装置14による撮影画像を、入力デバイス16のトラッキング処理と、HMD100のSLAM(Simultaneous Localization and Mapping)処理に利用する。実施例では撮像装置14が120フレーム/秒で撮影する画像のうち、60フレーム/秒で撮影されるグレースケール画像が、入力デバイス16のトラッキング処理に利用され、60フレーム/秒で撮影される別のフルカラー画像が、HMD100の自己位置推定および環境地図作成を同時実行する処理に利用されてよい。
図6は、入力デバイス16を撮影した画像の一部の例を示す。この画像は、右手で把持された入力デバイス16bを撮影した画像であり、光を出射する複数のマーカ30の像が含まれる。HMD100において、通信制御部128は、撮像装置14が撮影した画像データをリアルタイムで情報処理装置10に送信する。
図7は、入力デバイス16の機能ブロックを示すブロック図である。制御部50は、操作部材22に入力された操作情報を受け付ける。また制御部50は、IMU(慣性計測装置)32により検出されたセンサデータとタッチセンサ24により検出されたセンサデータを受け付ける。上記の通りタッチセンサ24は、複数の操作部材22のうちの少なくとも一部に取り付けられ、ユーザの指が操作部材22に接触している状態を検知する。
IMU32は、入力デバイス16の動きに関するセンサデータを取得し、少なくとも3軸の加速度データを検出する加速度センサ34と、3軸の角速度データを検出する角速度センサ36を含む。加速度センサ34および角速度センサ36は、所定の周期(たとえば800Hz)で各軸成分の値(センサデータ)を検出する。制御部50は、受け付けた操作情報およびセンサデータを通信制御部54に供給し、通信制御部54は、ネットワークアダプタまたはアンテナを介して有線または無線通信により、操作情報およびセンサデータを情報処理装置10に送信する。
入力デバイス16は、複数のマーカ30を点灯するための複数の光源58を備える。光源58は、所定の色で発光するLED素子であってよい。通信制御部54が情報処理装置10から発光指示を取得すると、制御部50は発光指示にもとづいて光源58を発光させ、マーカ30を点灯させる。なお図7に示す例では、1つのマーカ30に対して1つの光源58が設けられているが、1つの光源58が複数のマーカ30を点灯させてもよい。
図8は、情報処理装置10の機能ブロックを示すブロック図である。情報処理装置10は、処理部200および通信部202を備える。処理部200は、取得部210、アプリケーション実行部220、画像信号処理部222、マーカ情報保持部224、状態保持部226、推定処理部230、画像信号処理部268、SLAM処理部270、画像生成部272、画像出力部274を備える。取得部210は、撮影画像取得部212、センサデータ取得部214、操作情報取得部216を備える。推定処理部230は、第1推定処理部240、第2推定処理部250、第3推定処理部260、静止判定部262を備える。
通信部202は、所定の通信プロトコルにしたがって外部装置と通信する。外部装置は、HMD100、出力装置15、入力デバイス16、不図示のサーバや他の情報処理装置を含む。例えば、通信部202は、入力デバイス16から送信される操作部材22の操作情報およびセンサデータを受信し、取得部210に供給する。また通信部202は、HMD100から送信される撮影画像データおよびセンサデータを受信し、取得部210に供給する。
情報処理装置10はコンピュータを備え、コンピュータがプログラムを実行することによって、図8に示す様々な機能が実現される。コンピュータは、プログラムをロードするメモリ、ロードされたプログラムを実行する1つ以上のプロセッサ(CPUやGPU等)、補助記憶装置、その他のLSIなどをハードウェアとして備える。プロセッサは、半導体集積回路やLSIを含む複数の電子回路により構成され、複数の電子回路は、1つのチップ上に搭載されてよく、または複数のチップ上に搭載されてもよい。図8に示す機能ブロックは、ハードウェアとソフトウェアとの連携によって実現され、したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
(SLAM機能)
撮影画像取得部212は、HMD100のSLAM処理用のフルカラー画像を取得し、画像信号処理部268に供給する。画像信号処理部268は、画像データにノイズ低減や光学補正(シェーディング補正)などの画像信号処理を施し、画像信号処理した画像データをSLAM処理部270に供給する。
センサデータ取得部214は、HMD100から送信されるセンサデータを取得し、SLAM処理部270に供給する。SLAM処理部270は、撮影画像取得部212から供給される画像データと、センサデータ取得部214から供給されるセンサデータにもとづいて、HMD100の自己位置推定および環境地図作成を同時実行する。
(撮影画像を用いる第1推定機能)
撮影画像取得部212は、入力デバイス16のトラッキング処理用のグレースケール画像を取得し、画像信号処理部222に供給する。画像信号処理部222は、画像データにノイズ低減や光学補正(シェーディング補正)などの画像信号処理を施し、画像信号処理した画像データを第1推定処理部240に供給する。
第1推定処理部240は、マーカ像座標特定部242、位置姿勢導出部244、ノイズ導出部248を備え、入力デバイス16を撮影した画像にもとづいて入力デバイス16の位置および姿勢を推定する第1推定機能を実現する。第1推定処理部240は、撮影画像から入力デバイス16の複数のマーカ30を撮影したマーカ像を抽出し、抽出した複数のマーカ像の配置から、入力デバイス16の位置および姿勢を推定する。第1推定処理部240は、推定した入力デバイス16の位置および姿勢を、そのノイズ(誤差)の分散とともに、第3推定処理部260に出力する。
(センサデータを用いる第2推定機能)
センサデータ取得部214は、入力デバイス16から送信されるセンサデータを取得し、第2推定処理部250に供給する。第2推定処理部250は、入力デバイス16の加速度および角速度を示すセンサデータにもとづいて、入力デバイス16の位置および姿勢を推定する第2推定機能を実現する。実施例において、第2推定機能はカルマンフィルタにおける状態予測ステップを実施する機能であり、第2推定処理部250は、前回の時刻における状態ベクトル(位置、速度、姿勢)に、供給されたセンサデータを積分演算することで得られる状態ベクトルの変化量を加算することで、今回の時刻における状態ベクトルを推定する。第2推定処理部250は、推定した状態ベクトルを、そのノイズの分散とともに、第3推定処理部260に出力する。なお積分演算により得られる変化量は、時間経過とともにノイズが蓄積するため、第2推定処理部250により推定される状態ベクトル(位置、速度、姿勢)は、実際の状態ベクトル(位置、速度、姿勢)から離れていく傾向がある。
(推定結果の統合機能)
第3推定処理部260は、第1推定処理部240が推定した入力デバイス16の位置および姿勢と、第2推定処理部250が推定した入力デバイス16の状態ベクトル(位置、速度、姿勢)から、入力デバイス16の位置および姿勢を高精度に導出する。第3推定処理部260は、UKF(無香料カルマンフィルタ)のフィルタリングステップ(補正ステップ)を実施してよい。第3推定処理部260は、第2推定処理部250が推定した状態ベクトルを「事前推定値」として取得し、第1推定処理部240が推定した位置および姿勢を「観測値」として取得して、カルマンゲインを算出し、カルマンゲインを用いて「事前推定値」を補正した「事後推定値」を求める。「事後推定値」は、入力デバイス16の位置および姿勢を高精度に表現し、アプリケーション実行部220に提供されるとともに、状態保持部226に記録されて、第2推定処理部250における次の時刻の状態ベクトルの推定に利用される。
撮像装置14やIMU32など複数のセンサを用いた解析結果を統合して精度を高める手法はセンサフュージョンとして知られている。センサフュージョンにおいては、各センサによりデータが取得された時刻を共通の時間軸で表現する必要がある。情報処理システム1においては、撮像装置14の撮像周期とIMU32のサンプリング周期が異なり、また非同期であるため、画像の撮影時刻と、加速度および角速度の検出時刻とを正確に管理することで、第3推定処理部260は、入力デバイス16の位置および姿勢を高精度に推定することが可能となる。
図9は、第1推定処理部240による位置姿勢推定処理を示すフローチャートである。撮影画像取得部212は、入力デバイス16を撮影した画像データを取得して(S10)、画像信号処理部222に供給する。画像信号処理部222は、画像データにノイズ低減や光学補正などの画像信号処理を施し(S12)、画像信号処理した画像データをマーカ像座標特定部242に供給する。
マーカ像座標特定部242は、撮影画像に含まれる複数のマーカ像の代表座標を特定する(S14)。グレースケール画像の各画素の輝度が8ビットで表現されて、0~255の輝度値をとる場合、マーカ像は、図6に示すように高輝度をもつ像として撮影される。マーカ像座標特定部242は、撮影画像から、所定値以上の輝度値(たとえば128輝度値)をもつ画素が連続する領域を特定し、その連続画素領域の重心座標を算出して、マーカ像の代表座標を特定してよい。
なお撮影画像には、マーカ像だけでなく、電灯などの照明機器の像も含まれている。そこでマーカ像座標特定部242は、いくつかの所定の基準に照らし合わせて、所定値以上の輝度値をもつ連続画素領域がマーカ像に対応するか調査する。たとえば連続画素領域が大きすぎる場合や、長尺形状である場合には、当該連続画素領域はマーカ像に対応しないことが確実であるため、マーカ像座標特定部242は、そのような連続画素領域がマーカ像ではないことを判断してよい。マーカ像座標特定部242は、所定の基準を満たす連続画素領域の重心座標を算出して、マーカ像の代表座標(マーカ像座標)として特定し、特定した代表座標をメモリ(図示せず)に記憶する。
マーカ情報保持部224は、基準位置および基準姿勢にある入力デバイス16の3次元モデルにおける各マーカの3次元座標を保持している。3次元の形状および大きさが既知である物体の撮影画像から、それを撮影した撮像装置の位置および姿勢を推定する手法として、PNP(Perspective n-Point)問題を解く方法が知られている。
実施例において位置姿勢導出部244は、N(Nは3以上の整数)個のマーカ像座標をメモリ(図示せず)から読み出し、読み出したN個のマーカ像座標と、入力デバイス16の3次元モデルにおけるN個のマーカの3次元座標から、入力デバイス16の位置および姿勢を推定する。位置姿勢導出部244は、以下の(式1)を用いて撮像装置14の位置および姿勢を推定し、その推定結果をもとに入力デバイス16の3次元空間の位置および姿勢を導出する。
Figure 2023178798000002
ここで(u,v)は撮影画像におけるマーカ像座標であり、(X,Y,Z)は、入力デバイス16の3次元モデルが基準位置および基準姿勢にあるときのマーカ30の3次元空間での位置座標である。なお3次元モデルは、入力デバイス16と完全に同一の形状および大きさをもち、マーカを同一位置に配置したモデルであり、マーカ情報保持部224は、基準位置および基準姿勢にある3次元モデルにおける各マーカの3次元座標を保持している。位置姿勢導出部244は、マーカ情報保持部224から各マーカの3次元座標を読み出して、(X,Y,Z)を取得する。
(f、f)は撮像装置14の焦点距離、(c、c)は画像主点であり、いずれも撮像装置14の内部パラメータである。r11~r33、t~tを要素とする行列は、回転・並進行列である。(式1)において(u,v)、(f、f)、(c、c)、(X,Y,Z)は既知であり、位置姿勢導出部244は、N個のマーカ30について方程式を解くことにより、それらに共通の回転・並進行列を求める。実施例では、入力デバイス16の位置姿勢を推定する処理をP3P問題を解くことで実施する。
具体的に位置姿勢導出部244は、マーカ像座標特定部242により特定された複数のマーカ像座標の中から、任意の3個のマーカ像座標を抽出する。位置姿勢導出部244は、マーカ情報保持部224から3次元モデルにおけるマーカの3次元座標を読み出し、(式1)を用いてP3P問題を解く。位置姿勢導出部244は、抽出された3個のマーカ像座標に共通する回転・並進行列を特定すると、抽出した3個のマーカ像座標以外の入力デバイス16のマーカ像座標を用いて再投影誤差を算出する。
位置姿勢導出部244は、3個のマーカ像座標の組合せを所定数抽出する。位置姿勢導出部244は、抽出された3個のマーカ像座標のそれぞれの組合せに対して回転・並進行列を特定し、それぞれの再投影誤差を算出する。それから位置姿勢導出部244は、所定数の再投影誤差の中から最小の再投影誤差となる回転・並進行列を特定して、入力デバイス16の位置および姿勢を導出する(S16)。
ノイズ導出部248は、推定した位置および姿勢のそれぞれのノイズ(誤差)の分散を導出する(S18)。ノイズの分散値は、推定した位置および姿勢の信頼度に対応し、信頼度が高ければ分散値は小さく、信頼度が低ければ分散値は大きくなる。ノイズ導出部248は、撮像装置14と入力デバイス16の間の距離や、画角内におけるマーカ像の位置にもとづいて、ノイズの分散を導出してよい。たとえば撮像装置14と入力デバイス16とが遠く離れていたり、または極端に近い場合や、マーカ像が撮影画像の端に位置するような場合は、正確なマーカ像の重心座標を導出することが難しくなるため、ノイズ分散は大きく導出される傾向がある。
なおトラッキング処理中(第1推定機能の実施中)に推定する位置および姿勢の信頼度が高いことは確実であるため、ノイズ導出部248は、推定位置および推定姿勢のそれぞれのノイズの分散を、小さい固定値に設定してもよい。たとえばノイズ導出部248は、トラッキング処理中の位置ノイズの分散を固定値である「0.5mm」に設定して、第3推定処理部260に供給してもよい。トラッキング処理中、第1推定処理部240は、推定した位置および姿勢の情報とともに、位置ノイズおよび姿勢ノイズの分散を第3推定処理部260に出力してよいが、位置ノイズおよび姿勢ノイズの分散が固定値である場合には、トラッキング処理の開始時にノイズの分散を第3推定処理部260に一回出力して、第3推定処理部260がノイズの分散を記憶して使用してもよい。
第1推定処理部240による位置姿勢推定処理は、入力デバイス16のトラッキング用画像の撮像周期(60フレーム/秒)で実施される(S20のN)。アプリケーション実行部220がアプリケーション(ゲーム等)の実行を終了すると、第1推定処理部240による位置姿勢推定処理は終了する(S20のY)。
図10は、推定処理部230の内部構成を示す。時刻kにおいて、第1推定処理部240は、推定した位置および姿勢を「観測値n」、位置ノイズおよび姿勢ノイズの分散を「観測ノイズR」として、第3推定処理部260に出力する。
・ 観測値n : 時刻kの観測ベクトル
・ 観測ノイズR : 時刻kの観測値の誤差共分散行列
第2推定処理部250は、1時刻前(時刻k-1)の「状態ベクトルmk-1|k-1」および「推定誤差Pk-1|k-1」を状態保持部226から読み出し、「状態ベクトルmk-1|k-1」および「推定誤差Pk-1|k-1」を予測部に入力する。実施例の状態変数mは、入力デバイス16の位置、速度、姿勢を含むが、さらに加速度バイアス、角速度バイアスを含んでもよい。
・ 状態ベクトルmk-1|k-1 : 時刻k-1までの情報で推定した時刻k-1の状態ベクトル
・ 推定誤差Pk-1|k-1 : 時刻k-1までの情報で推定した時刻k-1の状態の推定誤差共分散行列
また第2推定処理部250は、センサデータ取得部214から、入力デバイス16の加速度aと角速度ωを取得し、加速度aと角速度ωを「プロセス入力l」として、予測部に入力する。
・ 加速度a : 時刻kの加速度
・ 角速度ω : 時刻kの角速度
・ プロセス入力l : 時刻kのプロセス入力ベクトル
第2推定処理部250は、加速度aと角速度ωと、固定のノイズパラメータ(軸ずれ、スケールずれ、値ずれ、バイアスずれを含む)から、加速度ノイズの分散および角速度ノイズの分散を計算し、「プロセスノイズQ」として、予測部に入力する。
・ プロセスノイズQ : 時刻kのプロセス入力の誤差共分散行列
予測部は、加速度aおよび角速度ωをそれぞれ積分演算して、「状態ベクトルmk-1|k-1」からの変化量(つまり、位置変化量、速度変化量、姿勢変化量)を算出し、「状態ベクトルmk-1|k-1」に加算する演算を行う。予測部は、加速度aを積分して速度変化量を算出し、速度変化量を用いて推定される速度を積分して位置変化量を算出し、角速度ωを積分して姿勢変化量を算出する。予測部は、「状態ベクトルmk|k-1」および「推定誤差Pk|k-1」を、第3推定処理部260に出力する。
・ 状態ベクトルmk|k-1 : 時刻k-1までの情報で推定した時刻kの状態ベクトル
・ 推定誤差Pk|k-1 : 時刻k-1までの情報で推定した時刻kの状態の推定誤差共分散行列
第3推定処理部260は、第1推定処理部240から「観測値n」および「観測ノイズR」を取得し、第2推定処理部250から「状態ベクトルmk|k-1」および「推定誤差Pk|k-1」を取得して、「状態ベクトルmk|k-1」を補正するためのカルマンゲインを算出する。第3推定処理部260は、カルマンゲインを用いて「状態ベクトルmk|k-1」を補正し、「状態ベクトルmk|k」および「推定誤差Pk|k」を出力する。
・ 状態ベクトルmk|k : 時刻kまでの情報で推定した時刻kの状態ベクトル
・ 推定誤差Pk|k : 時刻kまでの情報で推定した時刻kの状態の推定誤差共分散行列
「状態ベクトルmk|k」は、高精度に推定された位置、速度、姿勢を示し、アプリケーション実行部220に提供されて、アプリケーションの操作に利用されてよい。「状態ベクトルmk|k」および「推定誤差Pk|k」は状態保持部226に一時的に保持されて、第2推定処理部250における時刻k+1の推定処理の際に読み出される。
推定処理部230において、第1推定処理部240による推定処理は60Hzの周期で実施される一方で、第2推定処理部250による推定処理は800Hzの周期で実施される。そのため第1推定処理部240が観測値を出力してから、次の観測値を出力するまでの間に、第2推定処理部250は状態ベクトルを順次更新し、この間、状態ベクトルは補正されない。実施例の推定処理部230は、観測時刻kの直前の時刻k-1の状態を基準に補正ステップを行っており、つまり観測値を、過去の状態を修正するために利用している。
以上のように、入力デバイス16のトラッキング処理が実施されている間は、推定処理部230が、入力デバイス16の位置および姿勢を高精度に推定する。しかしながら入力デバイス16のマーカ30が撮像装置14により撮影されなくなると、第1推定処理部240は、図9に示す位置姿勢推定処理を実行できない。
実施例では、推定処理部230は、入力デバイス16のマーカ30が撮影画像に映っていない(撮像装置14により撮影されない)場合でも、HMD100のセンサデータおよび入力デバイス16のセンサデータにもとづいて、入力デバイス16の位置を推定し、言い換えれば、入力デバイス16のトラッキングを継続する。例えば、推定処理部230は、入力デバイス16が撮像装置14の画角を外れた後、HMD100のセンサデータにもとづいてHMD100が右方向に動いたと判断した場合、HMD100が右方向へ動いた分だけ、入力デバイス16の推定位置をそれまでより左方向に移動させてもよい。推定処理部230は、入力デバイス16のマーカ30が撮影画像に映っていない状況で、所定のトラッキング終了条件(例えば、所定時間の経過やHMD100の大きな移動等)が満たされた場合、入力デバイス16の位置推定処理を終了する。
図8に戻り、静止判定部262は、センサデータ取得部214により取得された、入力デバイス16の加速度を示すセンサデータにもとづいて、入力デバイス16が静止しているか否かを判定する。静止判定部262は、入力デバイス16の加速度の時系列データから加速度の傾きを算出し、算出した傾きにもとづいて、入力デバイス16が静止しているか否かを判定する。
実施例の静止判定部262は、現在時刻tから過去時刻(t-99)までの100個の加速度値に最小二乗法を適用して回帰直線を求め、その傾きを特定する。なお傾きを算出するときのサンプル数は100個以外であってもよい。静止判定部262は、センサデータのサンプリング周期で傾きを算出し、常時、入力デバイス16が静止しているか否かを判定してよい。
静止判定部262は、算出した傾きの絶対値が所定の閾値Sth以上であると、入力デバイス16が動いていることを判定し、算出した傾きの絶対値が閾値Sth未満であると、入力デバイス16が静止していることを判定する。なお判定結果が頻繁に入れ替わることを防止するために、静止判定部264は、算出する傾きの絶対値が所定回数(N3回)連続して閾値Sth未満となったときに、入力デバイス16が静止していることを判定してよく、静止を判定した後は、算出する傾きの絶対値が所定回数(N4回)連続して閾値Sth以上となったときに、入力デバイス16が動いていることを判定してもよい。N3とN4は同じ回数であってよいが、異なる回数であってもよい。
変形例として、静止判定部262は、撮影画像取得部212により取得された、入力デバイス16が映る撮影画像にもとづいて、入力デバイス16が静止しているか否かを判定してもよい。別の変形例として、静止判定部262は、第1推定処理部240、第2推定処理部250、第3推定処理部260のいずれかにより推定された、入力デバイス16の位置の時系列での変化にもとづいて、入力デバイス16が静止しているか否かを判定してもよい。
撮影画像取得部212は、HMD100から送信された撮影画像データをアプリケーション実行部220および画像生成部272にさらに提供する。センサデータ取得部214は、HMD100から送信されたセンサデータをアプリケーション実行部220および画像生成部272にさらに提供する。また、センサデータ取得部214は、入力デバイス16から送信されたセンサデータをアプリケーション実行部220および画像生成部272にさらに提供する。
操作情報取得部216は、入力デバイス16から送信された、入力デバイス16に入力されたユーザの操作を示す操作情報を取得する。操作情報取得部216は、取得した操作情報をアプリケーション実行部220に提供する。
アプリケーション実行部220は、操作情報取得部216から入力された操作情報や、センサデータ取得部214から入力されたセンサデータ、推定処理部230(例えば第3推定処理部260)により推定された入力デバイス16の位置姿勢情報等にもとづいて、各種アプリケーションを実行する。例えば、アプリケーション実行部220は、VRゲームに関する各種処理が実装されたコンピュータプログラムを実行して、VRゲームを進行させてもよい。実施例では、アプリケーション実行部220は、HMD100の初期設定アプリケーションを実行する。
画像生成部272と画像出力部274は、表示部における電子コンテンツの表示を制御する表示制御部276として機能する。表示部は、少なくとも、HMD100の表示パネル130を含むが、出力装置15のディスプレイをさらに含んでもよい。実施例では、表示制御部276は、HMD100の初期設定アプリケーションの実行時に、後述のカメラAR映像をHMD100の表示パネル130に表示させる。
具体的には、画像生成部272は、撮影画像取得部212から入力された撮影画像データや、アプリケーション実行部220によるアプリケーションの実行結果等に基づいて、HMD100に表示させる表示用の画像データ(例えばVRコンテンツの画像データ)を生成する。画像出力部274は、画像生成部272により生成された表示用の画像データをHMD100へ送信して、その表示パネル130に表示させる。
実施例では、画像生成部272は、アプリケーション実行部220によるHMD100の初期設定アプリケーションの実行結果にもとづいて、HMD100の初期設定アプリケーションの画像を生成する。HMD100の初期設定アプリケーションの画像は、HMD100の撮像装置14により撮影された撮影画像であり、HMD100を装着したユーザの正面方向の実空間を撮影した撮影画像を含む。具体的には、HMD100の初期設定アプリケーションの画像は、HMD100を装着したユーザの正面方向の実空間が映る映像にもとづく拡張現実(Augmented Reality:AR)映像(以下「カメラAR映像」とも呼ぶ。)を含む。画像出力部274は、画像生成部272により生成されたカメラAR映像をHMD100の表示パネル130に表示させる。
カメラAR映像は、入力デバイス16を正しく把持できるよう支援する仮想的なオブジェクトの画像(以下「ガイドオブジェクト」とも呼ぶ。)を含み得る。ガイドオブジェクトは、後述の概略位置ガイドや挿入位置ガイドを含む。画像生成部272は、入力デバイス16aの状態と入力デバイス16bの状態(位置や姿勢等)をそれぞれ個別に管理し、カメラAR映像において入力デバイス16aに付加するガイドオブジェクトと入力デバイス16bに付加するガイドオブジェクトをそれぞれ個別に判断する。
図11は、カメラAR映像におけるガイド表示の遷移例を示す。推定処理部230が入力デバイス16の位置(例えば、ワールド座標系における座標値)をトラッキングできていない場合、画像生成部272は、入力デバイス16に対するガイド表示を第1態様に設定する。第1態様では、入力デバイス16の映像に付加したガイドオブジェクトの表示を抑制し、言い換えれば、ガイドオブジェクトを非表示とする。
推定処理部230が入力デバイス16の位置をトラッキングできている場合、画像生成部272は、撮像装置14による撮影画像に入力デバイス16が映っているか否か、すなわち、入力デバイス16がユーザの視野内にあるか否かを判定する。また、画像生成部272は、入力デバイス16の推定位置にもとづいて、HMD100と入力デバイス16との距離を導出し、その距離が予め定められた閾値以下であるか否かをさらに判定する。実施例におけるこの閾値は1.3メートルであるが、開発者の知見や情報処理システム1を用いた実験等をもとに適切な閾値が決定されてよい。
入力デバイス16の位置をトラッキングできている場合に、撮像装置14による撮影画像に入力デバイス16が映っておらず、または、HMD100と入力デバイス16との距離が上記閾値を超過すれば、画像生成部272は、入力デバイス16に対するガイド表示を第2態様に設定する。第2態様では、入力デバイス16の映像に付加するガイドオブジェクトとして概略位置ガイドが配置される。
入力デバイス16の位置をトラッキングできている場合に、撮像装置14による撮影画像に入力デバイス16が映っており、かつ、HMD100と入力デバイス16との距離が上記閾値以下であれば、画像生成部272は、入力デバイス16に対するガイド表示を第3態様に設定する。第3態様では、入力デバイス16の映像に付加するガイドオブジェクトとして概略位置ガイド、挿入位置ガイドおよび挿入方向ガイドが配置される。
図12は、カメラAR映像60の例を示す。同図は、第2態様でのガイド表示を含むカメラAR映像60を示している。実施例におけるHMD100の初期設定において、ユーザは、HMD100を自身の頭部に装着後、入力デバイス16を把持することが求められる。ここでは、入力デバイス16aの位置と入力デバイス16bの位置の両方をトラッキングできているが、撮像装置14による撮影画像に入力デバイス16aと入力デバイス16bの両方が映っていないこととする。画像生成部272は、入力デバイス16aと入力デバイス16bのそれぞれに対する第2態様でのガイド表示を含むカメラAR映像60を生成する。
図12のカメラAR映像60では、撮像装置14による撮影画像の上に、概略位置ガイド70aと概略位置ガイド70bとが重ねて表示される。概略位置ガイド70aは、入力デバイス16aの大まかな位置を矢印の向きで示唆するガイドオブジェクトである。概略位置ガイド70bは、入力デバイス16bの大まかな位置を矢印の向きで示唆するガイドオブジェクトである。画像生成部272は、概略位置ガイド70aの矢印が、推定処理部230により推定された入力デバイス16aの位置を向くように設定し、概略位置ガイド70bの矢印が、推定処理部230により推定された入力デバイス16bの位置を向くように設定する。
図13も、カメラAR映像60の例を示す。同図は、第3態様でのガイド表示を含むカメラAR映像60を示している。第2態様でのガイド表示中に、撮像装置14による撮影画像に入力デバイス16(ここでは入力デバイス16aと入力デバイス16bの両方)が映り、かつ、HMD100と入力デバイス16(ここでは入力デバイス16aと入力デバイス16bの両方)との距離が1.3メートル以下になったとする。この場合、画像生成部272は、入力デバイス16aと入力デバイス16bのそれぞれに対する第3態様でのガイド表示を含むカメラAR映像60を生成する。図13のカメラAR映像60では、撮像装置14による撮影画像の上に、概略位置ガイド70a、概略位置ガイド70b、挿入位置ガイド72、挿入方向ガイド74が重ねて表示される。
挿入位置ガイド72は、第1オブジェクトとして、ユーザがコントローラを正しく把持できるよう支援するオブジェクトであり、具体的には、入力デバイス16においてユーザが手を差し入れるべき箇所(すなわち湾曲部23の位置)を示唆する環状のガイドオブジェクトである。画像生成部272は、推定処理部230により推定されたHMD100の位置および姿勢にもとづいて、撮影画像に映るHMD100の湾曲部23を特定する。画像生成部272は、湾曲部23の近傍に挿入位置ガイド72を配置し、具体的には、湾曲部23の周囲を取り巻くように挿入位置ガイド72を配置する。
変形例として、挿入位置ガイド72は、入力デバイス16においてユーザが把持すべき箇所(すなわち把持部21の位置)を示唆するオブジェクトであってもよい。画像生成部272は、推定処理部230により推定されたHMD100の位置および姿勢にもとづいて、撮影画像に映るHMD100の把持部21を特定してもよい。画像生成部272は、把持部21の近傍に挿入位置ガイド72を配置してもよく、具体的には、把持部21の周囲を取り巻くように挿入位置ガイド72を配置してもよい。
なお、図13のカメラAR映像64では、入力デバイス16aの湾曲部23が撮影画像に映っているため、入力デバイス16aの湾曲部23の近傍に挿入位置ガイド72が配置されている。一方、入力デバイス16bの湾曲部23は撮影画像に映っていないため、入力デバイス16bに対して挿入位置ガイド72が配置されていない。
挿入方向ガイド74は、第2オブジェクトとして、入力デバイス16においてユーザが手を差し入れるべき方向に移動する環状のガイドオブジェクトである。挿入方向ガイド74は、カメラAR映像上でのその動きによって入力デバイス16においてユーザが手を差し入れるべき方向を示唆する。挿入方向ガイド74は、挿入位置ガイド72より細い線であってもよい。画像生成部272は、推定処理部230により推定された入力デバイス16の位置および姿勢にもとづいて、撮影画像に映る入力デバイス16の湾曲部23と手を差し入れるべき方向(例えば湾曲部23から把持部21への方向)を特定する。
実施例では、画像生成部272は、挿入方向ガイド74が入力デバイス16の周囲を湾曲部23から把持部21の方向に移動するアニメーションをカメラAR映像64に設定する。このアニメーションは、複数の挿入方向ガイド74が、湾曲部23から把持部21の方向に順次移動するものであってもよい。画像生成部272は、挿入方向ガイド74が移動して把持部21に近づくほど、その挿入方向ガイド74の透過度を高めてもよい。
入力デバイス16aのガイド表示を第3態様に設定中に、撮像装置14による撮影画像に入力デバイス16が映らなくなり、または、HMD100と入力デバイス16aとの距離が1.3メートルを超過した場合であって、推定処理部230による入力デバイス16aのトラッキングが継続している場合(推定処理部230により入力デバイス16aの位置の推定値が出力されている場合)、画像生成部272は、入力デバイス16aのガイド表示を第3態様から第2態様に切り替える。また、推定処理部230による入力デバイス16aのトラッキングが終了すると、画像生成部272は、入力デバイス16aのガイド表示を第2態様から第1態様に切り替える。入力デバイス16bのガイド表示の切り替えも同様である。
図11に戻り、第3態様でのガイド表示中に、入力デバイス16の非静止状態が第1時間(実施例では1秒)以上継続した場合であり、言い換えれば、第1時間(実施例では1秒)以上継続して静止判定部262が入力デバイス16を非静止状態と判定した場合、画像生成部272は、第4態様でのガイド表示に切り替えたカメラAR映像を生成する。第3態様でのガイド表示から第4態様でのガイド表示の切り替えは、典型的には、ユーザが入力デバイス16を手に持った場合に生じる。
図14も、カメラAR映像60の例を示す。同図のカメラAR映像60では、静止状態の入力デバイス16aに対して第3態様のガイド表示が設定されている。一方、ユーザが手に持って非静止状態になった入力デバイス16bには第4態様のガイド表示が設定されている。
第4態様のガイド表示では、概略位置ガイド70bと挿入位置ガイド72は表示されるが、挿入方向ガイド74は非表示となる。画像生成部272は、入力デバイス16bのガイド表示が第3態様から第4態様に移行した場合、それまで入力デバイス16bに付加した挿入方向ガイド74のアニメーションを終了させる。ユーザが入力デバイス16を手に持つと、ユーザと入力デバイス16との距離はかなり近くなり、この状態で挿入方向ガイド74(アニメーション)を表示させると、それを見たユーザに違和感を抱かせやすいからである。
図11に戻り、第4態様でのガイド表示中に、入力デバイス16のいずれかの操作部材22に対するユーザの指の接触が検出された場合、画像生成部272は、第5態様でのガイド表示に切り替えたカメラAR映像を生成する。第5態様でのガイド表示では、全てのガイドオブジェクトを消去し、言い換えれば、非表示とする。
図15も、カメラAR映像60の例を示す。同図のカメラAR映像60では、ユーザが手に持って非静止状態になった入力デバイス16aに対して、第4態様のガイド表示が設定され、概略位置ガイド70aと挿入位置ガイド72が付加されている。一方、ユーザが操作部材22に指でタッチした入力デバイス16bのガイド表示は、第4態様から第5態様に移行し、概略位置ガイド70bと挿入位置ガイド72が非表示になっている。HMD100の初期設定アプリケーションは、入力デバイス16aと入力デバイス16bの両方にユーザの指が触れた場合、入力デバイス16aと入力デバイス16bを使用する次の設定処理(例えばプレイエリアの編集処理等)へ進んでもよい。
入力デバイス16aのガイド表示を第5態様に設定中に、ユーザの指が操作部材22から離れると、画像生成部272は、入力デバイス16aのガイド表示を第5態様から第4態様に切り替える。また、入力デバイス16aのガイド表示を第4態様に設定中に、入力デバイス16aの静止状態が第1時間より長い第2時間(実施例では10秒)以上継続した場合であり、言い換えれば、第2時間(実施例では10秒)以上継続して静止判定部262が入力デバイス16aを非静止状態と判定した場合、画像生成部272は、入力デバイス16aのガイド表示を第4態様から第3態様に切り替える。入力デバイス16bのガイド表示も同じである。
すなわち、画像生成部272は、入力デバイス16の非静止状態が比較的短時間継続すれば挿入方向ガイド74を非表示とする一方、入力デバイス16の静止状態が比較的長時間継続することを条件として挿入方向ガイド74の表示を再開させる。これにより、ユーザが入力デバイス16を手に持っている間、言い換えれば、ユーザと入力デバイス16との距離がかなり近いときに、意図せず入力デバイス16が静止した場合にも挿入方向ガイド74が表示されにくくなり、ユーザに違和感を抱かせにくくなる。
実施例の情報処理システム1では、HMD100を装着したユーザの正面方向を撮影した画像に、挿入位置ガイド72や挿入方向ガイド74を付加したAR画像をユーザに提示する。これにより、HMD100を装着したユーザが、入力デバイス16に対して正しく手を差し込み、入力デバイス16を正しく把持できるよう支援できる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施例の情報処理装置10の推定処理部230は、入力デバイス16を撮影した画像(言い換えれば、入力デバイス16が映る撮影画像)と、入力デバイス16から送信されたセンサデータの両方にもとづいて、入力デバイス16の位置と姿勢を推定した。変形例として、推定処理部230は、第1推定処理部240のように、入力デバイス16を撮影した画像を用いるが、入力デバイス16から送信されたセンサデータを用いずに、入力デバイス16の位置と姿勢を推定してもよい。別の変形例として、推定処理部230は、第2推定処理部250のように、入力デバイス16から送信されたセンサデータを用いるが、入力デバイス16を撮影した画像を用いずに、入力デバイス16の位置と姿勢を推定してもよい。
実施例に記載の情報処理装置10の機能は、HMD100に実装されてもよい。言い換えれば、HMD100は、実施例に記載の情報処理装置10の機能を含んでもよく、さらに言い換えれば、実施例の情報処理装置10は、HMD100であってもよい。また、実施例では、撮像装置14がHMD100に取り付けられたが、撮像装置14は、HMD100以外の別の位置に取り付けられてもよい。
上述した実施例および変形例の任意の組み合わせもまた本開示の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
上記実施例および変形例に記載の技術思想は、以下の各項目に記載の態様のように表現することができる。
[項目1]
ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得する撮影画像取得部と、
前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する推定部と、
前記ユーザの正面方向を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる表示制御部と、
を備え、
前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる、
情報処理装置。
この情報処理装置によると、ヘッドマウントディスプレイを装着したユーザが、コントローラを正しく把持できるよう支援できる。
[項目2]
前記コントローラは、前記ユーザが手を差し入れるための湾曲部をさらに備え、
前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの湾曲部の近傍に、手を差し入れるべき箇所であることを示唆する前記第1オブジェクトを表示させる、
項目1に記載の情報処理装置。
この態様によると、ヘッドマウントディスプレイを装着したユーザが、コントローラの湾曲部に正しく手を差し入れられるよう支援でき、コントローラを正しく把持できるよう支援できる。
[項目3]
前記表示制御部は、前記撮影画像に映る前記コントローラの近傍に、手を差し入れるべき方向に移動する第2オブジェクトをさらに表示させる、
項目1または2に記載の情報処理装置。
この態様によると、ヘッドマウントディスプレイを装着したユーザが、コントローラの湾曲部から正しい方向に手を差し入れられるよう支援できる。
[項目4]
前記表示制御部は、前記コントローラの非静止状態が第1時間以上継続した場合、前記第2オブジェクトを非表示とする、
項目3に記載の情報処理装置。
この態様によると、ユーザがコントローラを手に持った場合に第2オブジェクトの表示が継続することで、ユーザに違和感を抱かせてしまうことや、ユーザからコントローラの装着具合を確認することが困難になることを防止できる。
[項目5]
前記表示制御部は、前記コントローラの非静止状態が前記第1時間以上継続して前記第2オブジェクトを非表示とした後、前記コントローラの静止状態が前記第1時間より長い第2時間以上継続した場合、前記第2オブジェクトの表示を再開させる、
項目4に記載の情報処理装置。
この態様によると、第2オブジェクト表示再開の条件としてのコントローラの静止状態継続時間を相対的に長くすることにより、コントローラを手に持っているにもかかわらず第2オブジェクトの表示が再開されてしまうことを防止しやすくなる。
[項目6]
前記表示制御部は、前記撮影画像に前記コントローラが映り、かつ、前記ヘッドマウントディスプレイと前記コントローラとの距離が所定の閾値以下である場合に、前記第1オブジェクトを表示させる、
項目1から5のいずれかに記載の情報処理装置。
この態様によると、コントローラがユーザから離れた位置にあるときには第1オブジェクトの表示を抑制することで、第1オブジェクトがコントローラとユーザとの間にある別の物を指しているかのようにユーザに誤解させてしまうことを防止しやすくなる。
[項目7]
ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得するステップと、
前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定するステップと、
前記ユーザの正面方向を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させるステップと、
をコンピュータが実行し、
前記表示させるステップは、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる、
コントローラ表示方法。
このコントローラ表示方法によると、ヘッドマウントディスプレイを装着したユーザが、コントローラを正しく把持できるよう支援できる。
[項目8]
ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得する機能と、
前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する機能と、
前記ユーザの正面方向を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる機能と、
をコンピュータに実現させ、
前記表示させる機能は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる、
コンピュータプログラム。
このコンピュータプログラムによると、ヘッドマウントディスプレイを装着したユーザが、コントローラを正しく把持できるよう支援できる。
1 情報処理システム、 10 情報処理装置、 14 撮像装置、 16 入力デバイス、 21 把持部、 23 湾曲部、 100 HMD、 212 撮影画像取得部、 230 推定処理部、 272 画像生成部、 274 画像出力部、 276 表示制御部。

Claims (8)

  1. ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得する撮影画像取得部と、
    前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する推定部と、
    前記ユーザの正面方向を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる表示制御部と、
    を備え、
    前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる、
    情報処理装置。
  2. 前記コントローラは、前記ユーザが手を差し入れるための湾曲部をさらに備え、
    前記表示制御部は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの湾曲部の近傍に、手を差し入れるべき箇所であることを示唆する前記第1オブジェクトを表示させる、
    請求項1に記載の情報処理装置。
  3. 前記表示制御部は、前記撮影画像に映る前記コントローラの近傍に、手を差し入れるべき方向に移動する第2オブジェクトをさらに表示させる、
    請求項1に記載の情報処理装置。
  4. 前記表示制御部は、前記コントローラの非静止状態が第1時間以上継続した場合、前記第2オブジェクトを非表示とする、
    請求項3に記載の情報処理装置。
  5. 前記表示制御部は、前記コントローラの非静止状態が前記第1時間以上継続して前記第2オブジェクトを非表示とした後、前記コントローラの静止状態が前記第1時間より長い第2時間以上継続した場合、前記第2オブジェクトの表示を再開させる、
    請求項4に記載の情報処理装置。
  6. 前記表示制御部は、前記撮影画像に前記コントローラが映り、かつ、前記ヘッドマウントディスプレイと前記コントローラとの距離が所定の閾値以下である場合に、前記第1オブジェクトを表示させる、
    請求項1に記載の情報処理装置。
  7. ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得するステップと、
    前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定するステップと、
    前記ユーザの正面方向を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させるステップと、
    をコンピュータが実行し、
    前記表示させるステップは、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる、
    コントローラ表示方法。
  8. ヘッドマウントディスプレイを装着したユーザの正面方向を撮影した撮影画像を取得する機能と、
    前記ユーザが把持すべき把持部を備えるコントローラが映る撮影画像に基づいて、前記コントローラの位置を推定する機能と、
    前記ユーザの正面方向を撮影した撮影画像を前記ヘッドマウントディスプレイに表示させる機能と、
    をコンピュータに実現させ、
    前記表示させる機能は、前記コントローラの位置の推定結果に基づいて、前記撮影画像に映る前記コントローラの把持部の近傍に、把持すべき箇所であることを示唆する第1オブジェクトをさらに表示させる、
    コンピュータプログラム。
JP2022091709A 2022-06-06 2022-06-06 情報処理装置、コントローラ表示方法およびコンピュータプログラム Pending JP2023178798A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022091709A JP2023178798A (ja) 2022-06-06 2022-06-06 情報処理装置、コントローラ表示方法およびコンピュータプログラム
PCT/JP2023/019468 WO2023238678A1 (ja) 2022-06-06 2023-05-25 情報処理装置、コントローラ表示方法およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022091709A JP2023178798A (ja) 2022-06-06 2022-06-06 情報処理装置、コントローラ表示方法およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2023178798A true JP2023178798A (ja) 2023-12-18

Family

ID=89118168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022091709A Pending JP2023178798A (ja) 2022-06-06 2022-06-06 情報処理装置、コントローラ表示方法およびコンピュータプログラム

Country Status (2)

Country Link
JP (1) JP2023178798A (ja)
WO (1) WO2023238678A1 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6355978B2 (ja) * 2014-06-09 2018-07-11 株式会社バンダイナムコエンターテインメント プログラムおよび画像生成装置
JP2016158795A (ja) * 2015-02-27 2016-09-05 株式会社ソニー・インタラクティブエンタテインメント 表示制御プログラム、表示制御装置、及び表示制御方法

Also Published As

Publication number Publication date
WO2023238678A1 (ja) 2023-12-14

Similar Documents

Publication Publication Date Title
JP7283506B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
CN109146965B (zh) 信息处理装置、计算机可读介质和头戴式显示装置
CN110047104B (zh) 对象检测和跟踪方法、头戴式显示装置和存储介质
CN103180893B (zh) 用于提供三维用户界面的方法和系统
CN110647237A (zh) 在人工现实环境中基于手势的内容共享
JP2020531965A (ja) 支援型の拡張現実
JP2017090979A (ja) 情報処理装置、情報処理システム、および情報処理方法
US11663737B2 (en) Information processing apparatus and representative coordinate derivation method
JP2000350860A (ja) 複合現実感装置及び複合現実空間画像の生成方法
US20240198211A1 (en) Device including plurality of markers
CN110895433B (zh) 用于增强现实中用户交互的方法和装置
US20230047470A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium
US20200342621A1 (en) Information processing apparatus and device information derivation method
JP2018056924A (ja) 画像表示装置、及びこれを用いた仮想現実インタフェースデバイス
WO2023238678A1 (ja) 情報処理装置、コントローラ表示方法およびコンピュータプログラム
JP7288792B2 (ja) 情報処理装置およびデバイス情報導出方法
WO2023157338A1 (ja) 情報処理装置およびデバイス位置推定方法
WO2023157499A1 (ja) 情報処理装置およびデバイス位置推定方法
WO2023157498A1 (ja) 情報処理装置、デバイス速度推定方法およびデバイス位置推定方法
US11983306B2 (en) Peripheral tracking system and method
JP7394046B2 (ja) システム、撮像装置、情報処理装置、情報処理方法および情報処理プログラム
US20230062045A1 (en) Display control device, display control method, and recording medium
JP2024019472A (ja) 複数のマーカを備えたデバイス
JP2024032409A (ja) 情報処理装置およびhmd
CN114967943A (zh) 基于3d手势识别确定6dof位姿的方法及设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220706