(57)【要約】【課題】体験状況に応じて適切に表示可能なメニューを生成することを目的とする。【解決手段】三次元ポインタがオブジェクトを指している場合、オブジェクトに関わる操作メニューを生成し、三次元ポインタがオブジェクトを指し示していない場合、アプリケーション操作に関わる操作メニューを生成する第１の生成手段と、第１の生成手段により生成された操作メニューと仮想空間に係るデータとに基づいて仮想空間画像を生成する第２の生成手段と、第２の生成手段により生成された仮想空間画像と現実空間画像とを重畳し、複合現実画像を生成する第３の生成手段と、第３の生成手段により生成された複合現実画像を出力する出力手段と、を有する。【選択図】図１
2019032713.tif 000002
【特許請求の範囲】
【請求項１】
三次元ポインタがオブジェクトを指している場合、前記オブジェクトに関わる操作メニューを生成し、前記三次元ポインタが前記オブジェクトを指し示していない場合、アプリケーション操作に関わる操作メニューを生成する第１の生成手段と、
前記第１の生成手段により生成された操作メニューと仮想空間に係るデータとに基づいて仮想空間画像を生成する第２の生成手段と、
前記第２の生成手段により生成された前記仮想空間画像と現実空間画像とを重畳し、複合現実画像を生成する第３の生成手段と、
前記第３の生成手段により生成された前記複合現実画像を出力する出力手段と、
を有する情報処理装置。
【請求項２】
三次元ポインタがオブジェクトを指している場合、前記オブジェクトに関わる操作メニューを生成し、前記三次元ポインタが前記オブジェクトを指し示していない場合、アプリケーション操作に関わる操作メニューを生成する第１の生成手段と、
前記第１の生成手段により生成された操作メニューと仮想空間に係るデータとに基づいて仮想空間画像を生成する第２の生成手段と、
前記第２の生成手段により生成された前記仮想空間画像を出力する出力手段と、
を有する情報処理装置。
【請求項３】
ユーザの位置姿勢を取得する取得手段を更に有し、
前記第２の生成手段は、前記第１の生成手段により生成された操作メニューと前記取得手段により取得された前記位置姿勢と前記仮想空間に係るデータとに基づいて前記仮想空間画像を生成する請求項１又は２記載の情報処理装置。
【請求項４】
前記第１の生成手段は、前記三次元ポインタがオブジェクトを指している場合であって、前記オブジェクトの種類が現実モデルである場合、現実モデルに対して操作を行う操作メニューを生成し、前記三次元ポインタがオブジェクトを指している場合であって、前記オブジェクトの種類が仮想物体である場合、仮想物体用の操作メニューを生成する請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
モードを選択する選択手段を更に有し、
前記第１の生成手段は、前記三次元ポインタがオブジェクトを指している場合であって、前記オブジェクトの種類が現実モデルである場合、前記現実モデルに対して前記選択手段によって選択されたモードに応じた操作を行う操作メニューを生成する請求項４記載の情報処理装置。
【請求項６】
前記モードが操作編集モードの場合、前記第１の生成手段は、前記現実モデルに対して操作を行う操作メニューを生成する請求項５記載の情報処理装置。
【請求項７】
前記モードが追加編集モードの場合、前記第１の生成手段は、前記現実モデルに対して追加操作を行う操作メニューを生成する請求項５記載の情報処理装置。
【請求項８】
前記第１の生成手段は、前記三次元ポインタがオブジェクトを指している場合、前記オブジェクトの属性に応じて生成するオブジェクトに関わる操作メニューを変更する請求項１乃至４何れか１項記載の情報処理装置。
【請求項９】
前記出力手段は、前記複合現実画像を頭部装着型表示装置に出力する請求項１記載の情報処理装置。
【請求項１０】
前記出力手段は、前記複合現実画像をビデオシースルー型の表示装置に出力する請求項１記載の情報処理装置。
【請求項１１】
前記出力手段は、前記仮想空間画像を頭部装着型表示装置に出力する請求項２記載の情報処理装置。
【請求項１２】
前記出力手段は、前記仮想空間画像を光学シースルー型の表示装置に出力する請求項２記載の情報処理装置。
【請求項１３】
情報処理装置が実行する情報処理方法であって、
三次元ポインタがオブジェクトを指している場合、前記オブジェクトに関わる操作メニューを生成し、前記三次元ポインタが前記オブジェクトを指し示していない場合、アプリケーション操作に関わる操作メニューを生成する第１の生成工程と、
前記第１の生成工程により生成された操作メニューと仮想空間に係るデータとに基づいて仮想空間画像を生成する第２の生成工程と、
前記第２の生成工程により生成された前記仮想空間画像と現実空間画像とを重畳し、複合現実画像を生成する第３の生成工程と、
前記第３の生成工程により生成された前記複合現実画像を出力する出力工程と、
を含む情報処理方法。
【請求項１４】
情報処理装置が実行する情報処理方法であって、
三次元ポインタがオブジェクトを指している場合、前記オブジェクトに関わる操作メニューを生成し、前記三次元ポインタが前記オブジェクトを指し示していない場合、アプリケーション操作に関わる操作メニューを生成する第１の生成工程と、
前記第１の生成工程により生成された操作メニューと仮想空間に係るデータとに基づいて仮想空間画像を生成する第２の生成工程と、
前記第２の生成工程により生成された前記仮想空間画像を出力する出力工程と、
を含む情報処理方法。
【請求項１５】
コンピュータを、請求項１乃至１２何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、現実空間と仮想空間とのつなぎ目のない結合を目的とした、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ：ＭＲ）システムの研究が盛んに行われている。これらのシステムの提示を行う画像表示装置は、例えば頭部装着型ディスプレイ（Ｈｅａｄ  Ｍｏｕｎｔ  Ｄｉｓｐｌａｙ：ＨＭＤ）を用いることができる。ＭＲシステムの研究が盛んになるにつれ、仮想物体の移動や複製、表示非表示の制御等、ＭＲにおいて求められる操作は多種多様となっている。操作を行うためのメニューをＨＭＤに表示する方法として適切なものが求められる。
特許文献１の方法では、視線により選択されたオブジェクトを基点としてメニューを表示し、更に、選択したメニューが次階層のメニューを持つ場合、次階層が前階層を覆わないように表示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−５８９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の方法では、オブジェクトに対して行う操作が増えるほど、メニュー階層が深くなり、視認性が低下する課題があった。更に、仮想物体に依らない操作にはそれに適した形式のメニュー表示が必要であり、仮想物体に対してと、仮想物体以外に対してと、の操作メニューを適切に切り替える必要がある課題があった。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、三次元ポインタがオブジェクトを指している場合、前記オブジェクトに関わる操作メニューを生成し、前記三次元ポインタが前記オブジェクトを指し示していない場合、アプリケーション操作に関わる操作メニューを生成する第１の生成手段と、前記第１の生成手段により生成された操作メニューと仮想空間に係るデータとに基づいて仮想空間画像を生成する第２の生成手段と、前記第２の生成手段により生成された前記仮想空間画像と現実空間画像とを重畳し、複合現実画像を生成する第３の生成手段と、前記第３の生成手段により生成された前記複合現実画像を出力する出力手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、体験状況に応じて適切に表示可能なメニューを生成することができる。
【図面の簡単な説明】
【０００７】
【図１】実施形態１の情報処理システムを構成する各装置の機能構成を示す図である。
【図２】情報処理装置のハードウェア構成の一例を示す図である。
【図３】実施形態１の情報処理の一例を示すフローチャートである。
【図４】オブジェクトメニューとアプリケーションメニューとの表示位置を示す図である。
【図５】実施形態２の情報処理システムを構成する各装置の機能構成を示す図である。
【図６】実施形態２の情報処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、情報処理システムを構成する各装置の機能構成の一例を示す図である。情報システムは、情報処理装置１０００と、ＨＭＤ１２００と、画像表示装置１３００と、操作入力装置１４００と、を含む。ＨＭＤ１２００は、頭部装着型表示装置の一例である。
情報処理装置１０００は、撮像画像取得部１０１０、位置姿勢計測部１０２０、視錐台算出部１０３０、仮想データ保持部１０４０、三次元ポインタ位置姿勢取得部１０５０、オブジェクト選択判定部１０６０、モード選択部１０７０を機能構成として含む。更に、情報処理装置１０００は、メニュー形式保持部１０８０、メニュー操作受取部１０９０、メニュー形式決定部１１００、メニュー生成部１１１０、メニュー実行部１１２０、仮想空間生成部１１３０、複合現実画像生成部１１４０を機能構成として含む。
ＨＭＤ１２００は、画像撮像部１２１０、画像表示部１２２０、画角保持部１２３０を機能構成として含む。ここで、情報処理装置１０００とＨＭＤ１２００とはデータ通信が可能なように接続されている。情報処理装置１０００とＨＭＤ１２００との間の接続は、有線、無線の何れであってもよい。
【００１０】
先ず、情報処理装置１０００について説明する。
図２は、情報処理装置１０００のハードウェア構成の一例を示す図である。ＣＰＵ２０１０は、バス２０００を介して接続する各デバイスを統括的に制御する。ＣＰＵ２０１０は、読み出し専用メモリ（ＲＯＭ）２０２０に記憶されたプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）のプログラム、本実施形態に係る各処理プログラム、デバイスドライバのプログラム等はＲＯＭ２０２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）２０３０に一時記憶され、ＣＰＵ２０１０によって適宜実行される。また、入力Ｉ／Ｆ２０４０は、外部の装置（表示装置や操作装置等）から情報処理装置１０００で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ２０５０は、外部の装置（表示装置）へ表示装置が処理可能な形式で出力信号として出力する。
ＣＰＵ２０１０がＲＯＭ２０２０に記憶されたプログラムに基づき処理を実行することによって、図１や後述する図５の情報処理装置１０００の機能構成、及び後述する図３及び図６のフローチャートの処理が実現される。
ＨＭＤ１２００も少なくともＣＰＵやＲＯＭ等のメモリを有し、ＨＭＤ１２００のＣＰＵがＨＭＤ１２００のメモリに記憶されているプログラムに基づき処理を実行することによって、図１や後述する図５のＨＭＤ１２００の機能構成等が実現される。
【００１１】
撮像画像取得部１０１０は、画像撮像部１２１０により撮像された現実空間の画像（現実空間画像）を取得し、位置姿勢計測部１０２０、複合現実画像生成部１１４０に入力する。
位置姿勢計測部１０２０は、撮像画像取得部１０１０により取得された現実空間画像を用いて画像処理を行い、画像中の点や線等の特徴的な情報（特徴情報）を抽出することで位置姿勢を計測する。位置姿勢計測部１０２０は、位置姿勢情報を視錐台算出部１０３０及び複合現実画像生成部１１４０に入力する。本実施形態では、画像処理による位置姿勢計測を説明するが、位置姿勢計測部１０２０は、赤外光を用いて位置姿勢を計測してもよいし、超音波を用いて位置姿勢を計測してもよいし、磁気センサを用いて位置姿勢を計測してもよい。更に位置姿勢計測部１０２０は、奥行きセンサを用いて位置姿勢を計測してもよいし、機械的に位置姿勢を計測してもよい。
視錐台算出部１０３０は、画角保持部１２３０により得られたＨＭＤの画角情報と位置姿勢計測部１０２０により得られたＨＭＤ位置とに基づき、左目右目各々の視錐台を算出する。視錐台を算出するための技術については既知の事実であるので、これについての詳細な説明は省略する。視錐台算出部１０３０は、算出結果をアプリケーションメニュー位置姿勢算出部１１１５に入力する。
仮想データ保持部１０４０は、仮想空間を構成する仮想物体に係るデータ（形状情報や位置姿勢情報）や仮想空間中に照射する光源に係るデータ等、仮想空間のデータを保持し、オブジェクト選択判定部１０６０及び仮想空間生成部１１３０に入力する。
【００１２】
三次元ポインタ位置姿勢取得部１０５０は、仮想物体を選択するための三次元ポインタの位置姿勢を取得し、オブジェクト選択判定部１０６０に入力する。三次元ポインタはユーザが仮想物体を選択するために使用するツールである。本実施形態において、ユーザが任意に動かすことのできるレーザー形状の仮想物体とするが、これに限定されない。即ち、注視点を三次元ポインタとして使用する方法であってもよいし、仮想空間で位置姿勢取得可能な、例えば、手のようなユーザの身体の一部を三次元ポインタとして使用してもよい。
オブジェクト選択判定部１０６０は、仮想データ保持部１０４０で保持されている仮想空間データのうち仮想物体の形状情報及び位置姿勢情報を取得する。更に、オブジェクト選択判定部１０６０は、三次元ポインタ位置姿勢取得部１０５０により取得された三次元ポインタの位置姿勢から三次元ポインタが仮想物体と交差しているか否かを判定する。交差している場合、オブジェクト選択判定部１０６０は、仮想物体を選択していると見做し、選択している仮想物体情報をメニュー形式決定部１１００に入力する。更に、オブジェクト選択判定部１０６０は、仮想物体と三次元ポインタとの交点情報をオブジェクトメニュー位置姿勢算出部１１１３に入力する。
モード選択部１０７０は、複数のモードからモードを選択する。本実施形態では仮想物体を操作する操作編集モードとユーザが寸法線や断面等の追加を行う追加編集モードとの場合を説明するが、これに限定されない。即ち、仮想物体の干渉判定を行う干渉判定モードや複合現実空間の体験記録をとる記録モードであってもよい。モード選択部１０７０は、選択したモード情報をオブジェクトメニュー項目設定部１１１４に入力する。
【００１３】
メニュー形式保持部１０８０は、仮想物体選択時に表示される仮想物体に関わる操作メニュー(オブジェクトメニュー)と仮想物体に依らないアプリケーション操作に関わるメニュー(アプリケーションメニュー)との二つのメニュー形式を保持する。メニュー形式保持部１０８０は、メニュー形式をメニュー形式決定部１１００に入力する。本実施形態では、ユーザの視界の固定位置に表示されるアプリケーションメニューと、選択した仮想物体の位置に表示されるオブジェクトメニューと、の二つのメニュー形式を説明する。アプリケーションメニューとは、例えば、モード選択や編集操作を元に戻す操作、干渉判定の開始停止制御等を含むメニューを指す。また、オブジェクトメニューとは、選択した仮想物体に対して行う、例えば、仮想物体の移動や表示非表示の制御を含むメニューを指す。本実施形態では、アプリケーションメニューの表示位置を視界の固定位置に表示させる場合を説明するが、これに限定されない。即ち、アプリケーションメニューの表示位置を仮想空間中に固定するメニューとしてもよいし、ユーザにより表示位置を指定させるメニューとしてもよい。更に、アプリケーションメニューの表示位置を視界に固定させるか仮想空間中に固定するかを切り替えることの出来るメニューであってもよい。
メニュー操作受取部１０９０は、操作入力装置１４００から入力されたイベントを受け取り、メニュー形式決定部１１００、メニュー実行部１１２０にメニュー操作を促す。
メニュー形式決定部１１００は、メニュー操作受取部１０９０からメニュー表示操作を受け取ったタイミングでオブジェクト選択判定部１０６０の判定に応じて、メニュー形式保持部１０８０に保持されているメニュー形式のうち適切なメニュー形式を採用する。メニュー形式決定部１１００は、採用したメニュー形式をメニュー生成部１１１０に入力する。本実施形態では、三次元ポインタが仮想物体を選択しているか否かによってメニュー形式を決定する例を説明するが、これに限定されない。即ち、メニュー形式決定部１１００は、操作入力装置１４００から入力されたイベントの違いによってメニュー形式を決定してもよい。
【００１４】
メニュー生成部１１１０は、オブジェクトメニュー生成部１１１１とアプリケーションメニュー生成部１１１２とで構成されている。メニュー生成部１１１０は、メニュー形式決定部１１００により決定されたメニュー形式に基づき、オブジェクトメニューを生成するか、アプリケーションメニューを生成するかを決定する。メニュー生成部１１１０は、生成したメニューを仮想空間生成部１１３０に入力する。
オブジェクトメニュー生成部１１１１は、オブジェクトメニュー位置姿勢算出部１１１３とオブジェクトメニュー項目設定部１１１４とで構成されている。オブジェクトメニュー生成部１１１１は、オブジェクトメニュー位置姿勢算出部１１１３により算出された位置に、オブジェクトメニュー項目設定部１１１４で設定されたメニュー項目を表示するようメニューを生成する。オブジェクトメニュー生成部１１１１は、生成したメニューをメニュー生成部１１１０に入力する。
オブジェクトメニュー位置姿勢算出部１１１３は、オブジェクト選択判定部１０６０により取得した三次元ポインタと選択された仮想物体との交点とに基づいてメニューの位置姿勢を算出する。
オブジェクトメニュー項目設定部１１１４は、モード選択部１０７０により選択されたモードに基づき、仮想物体の操作を行うためのメニュー項目を設定する。
アプリケーションメニュー生成部１１１２は、アプリケーションメニュー位置姿勢算出部１１１５とアプリケーションメニュー項目設定部１１１６とで構成されている。アプリケーションメニュー生成部１１１２は、アプリケーションメニュー位置姿勢算出部１１１５により算出された位置に、アプリケーションメニュー項目設定部１１１６で設定されたメニュー項目を表示するよう生成する。アプリケーションメニュー生成部１１１２は、生成したメニューをメニュー生成部１１１０に入力する。
アプリケーションメニュー位置姿勢算出部１１１５は、視錐台算出部１０３０により算出された視錐台情報に基づき、メニューの位置姿勢を算出する。
アプリケーションメニュー項目設定部１１１６は、仮想物体に依らないアプリケーションに関わる操作を行うためのメニュー項目を設定する。
【００１５】
メニュー実行部１１２０は、メニュー操作受取部１０９０により受け取ったメニュー実行イベントと選択されたメニュー項目とに基づき、機能を実行する。
仮想空間生成部１１３０は、仮想データ保持部１０４０で保持された仮想データとメニュー生成部１１１０で生成されたメニューとを基に仮想空間を生成し、複合現実画像生成部１１４０に入力する。
複合現実画像生成部１１４０は、仮想空間生成部１１３０で生成された仮想空間と位置姿勢計測部１０２０の計測結果とに基づいて仮想空間画像を生成する。更に、複合現実画像生成部１１４０は、仮想空間画像を撮像画像取得部１０１０で取得された現実空間画像に重畳し、複合現実空間の画像（複合現実画像）を生成する。なお、所定の位置から見える仮想空間を生成するための技術については既知の事実であるので、これについての詳細な説明は省略する。その後に、複合現実画像生成部１１４０は、生成した複合現実画像をＨＭＤ１２００の画像表示部１２２０に対して出力する。また、複合現実画像生成部１１４０は、画像表示装置１３００に同時に表示してもよい。ＨＭＤに限ったことではなく表示できる装置であればよく、タブレット・スマートフォン等の表示端末であってもよい。
【００１６】
次に、ＨＭＤ１２００について説明する。
ＨＭＤ１２００は、液晶画面等で構成される表示装置で、夫々右目用と左目用とが設けられており、夫々はＨＭＤ１２００を頭部に装着したユーザの右目、左目の眼前に位置するように、ＨＭＤに取り付けられている。また、左右の画面には夫々視差のついた画像がステレオ表示される。
画像撮像部１２１０は、ＨＭＤ１２００に映る現実空間を撮像し、撮像画像を現実空間画像として情報処理装置１０００に入力する。
画像表示部１２２０は、情報処理装置１０００で生成された複合現実画像を表示する。
画角保持部１２３０は、ＨＭＤの表示画角情報を保持している。表示画角情報を視錐台算出部１０３０に入力する。
本実施形態においてＨＭＤ１２００は、撮像装置により撮像された画像に基づいて生成された複合現実画像を表示装置に表示するビデオシースルー型のＨＭＤであることとして説明する。しかしながら、ＨＭＤ１２００は、現実空間を透過して観察することが可能な表示媒体に仮想空間画像を重畳して表示する光学シースルー型のＨＭＤを用いてもよい。
【００１７】
操作入力装置１４００は、情報処理装置に対して、ユーザの操作を入力することができる装置である。操作入力装置１４００は、メニューの表示、操作、実行を行う場合に利用される。操作入力装置１４００は、このような目的が達成されるのであれば、いかなる入力装置であってもよく、例えばマウスであってもよいし、キーボードやコントローラ等のボタン型装置であってもよい。また、操作入力装置１４００は、ユーザのジェスチャを認識することによって入力する装置であってもよいし、ユーザの声を認識することによって入力する装置であってもよい。
【００１８】
図３は、情報処理装置１０００が、複合現実空間画像を生成し、ＨＭＤ１２００又は画像表示装置１３００に対して出力する情報処理の一例を示すフローチャートである。
Ｓ３０００において、位置姿勢計測部１０２０は、画像撮像部１２１０から現実空間画像を取得し、画像から位置姿勢を計測する。そして、位置姿勢計測部１０２０は、Ｓ３１００に処理を移す。
Ｓ３１００において、メニュー操作受取部１０９０は、操作入力装置１４００からの入力情報を参照し、メニューを表示する操作が入力されているかどうか調べる。メニュー操作受取部１０９０は、メニューを表示する操作が入力されている場合は、Ｓ３２００に処理を移し、メニューを表示する操作が入力されていない場合は、Ｓ３５００に処理を移す。
Ｓ３２００において、三次元ポインタ位置姿勢取得部１０５０は、三次元ポインタの位置を取得する。そして、三次元ポインタ位置姿勢取得部１０５０は、Ｓ３３００に処理を移す。
【００１９】
Ｓ３３００において、オブジェクト選択判定部１０６０は、仮想データ保持部１０４０の仮想物体の位置姿勢情報及び形状情報とＳ３２００において取得した三次元ポインタの位置姿勢情報とから仮想物体が選択されているか否かを判定する。仮想物体はオブジェクトの一例である。オブジェクト選択判定部１０６０は、選択されているか否かを三次元ポインタと仮想物体との干渉の有無により判定する。干渉判定をするための技術については既知の事実であるので、これについての詳細な説明は省略する。何れかの仮想物体と三次元ポインタとが干渉している場合、オブジェクト選択判定部１０６０は、仮想物体と三次元ポインタとの交点情報を保存する。更にメニュー形式決定部１１００は、表示するメニュー形式をオブジェクトメニューとし、Ｓ３３１０に処理を移す。仮想物体の何れにおいても三次元ポインタが干渉していない場合、メニュー形式決定部１１００は、表示するメニュー形式をアプリケーションメニューとし、Ｓ３３２０に処理を移す。
Ｓ３３１０において、オブジェクトメニュー項目設定部１１１４は、モード選択部１０７０において選択されているモードに応じて、仮想物体の操作に関わるメニュー項目を設定する。仮想物体の操作に関わるメニューは、仮想物体用のメニューの一例である。モードが操作編集モードの場合、オブジェクトメニュー項目設定部１１１４は、選択した仮想物体に対して直接操作を行うためのメニュー項目を設定する。例えば、オブジェクトメニュー項目設定部１１１４は、仮想物体の移動、表示非表示、削除、複製等を行うメニュー項目を設定する。モードが追加編集モードの場合、オブジェクトメニュー項目設定部１１１４は、選択した仮想物体に対して追加操作を行うためのメニュー項目を設定する。例えば、オブジェクトメニュー項目設定部１１１４は、寸法線の追加、断面の追加、メモの追加等を行うメニュー項目を設定する。本実施形態では、上記メニュー項目を用いて説明を行うが、これに限定されない。そして、オブジェクトメニュー項目設定部１１１４は、Ｓ３３１１に処理を移す。
Ｓ３３２０において、アプリケーションメニュー項目設定部１１１６は、モード選択メニューを含むアプリケーションメニュー項目を設定する。そして、アプリケーションメニュー項目設定部１１１６は、Ｓ３３２１に処理を移す。
【００２０】
Ｓ３３１１及びＳ３３２１の処理は、図４を用いながら説明を行う。
図４は、オブジェクトメニューとアプリケーションメニューとの表示位置について示した図である。図４（Ａ）は、メニュー表示前におけるユーザ４０００が仮想空間を体験している様子を示した図である。ユーザ４０００は三次元ポインタ４０１０を把持し、仮想物体４０２０により構成された仮想空間を体験する。図４（Ｂ）は、ユーザ４０００がオブジェクトメニュー４１００を表示した様子を示した図である。図４（Ｃ）は、ユーザ４０００がアプリケーションメニュー４２００を表示した様子を示した図である。図４（Ｄ）は、視錐台から見たアプリケーションメニュー４２００の配置を示した図である。
Ｓ３３１１において、オブジェクトメニュー位置姿勢算出部１１１３は、オブジェクト選択判定部１０６０において得られた、三次元ポインタ４０１０と仮想物体４０２０との交点情報を取得する。オブジェクトメニュー位置姿勢算出部１１１３は、交点を基準とした位置に、三次元ポインタ４０１０で選択しやすいよう縦一列のオブジェクトメニュー４１００を、位置姿勢計測部１０２０において計測された視線方向に垂直になるよう位置姿勢を算出する。本実施形態では、縦一列に表示するメニューを用いて説明するが、これに限定されない。即ち、オブジェクトメニュー位置姿勢算出部１１１３は、横一列に表示してもよいし、円形に表示してもよいし、格子状に表示してもよい。そして、オブジェクトメニュー位置姿勢算出部１１１３は、Ｓ３４００に処理を移す。
【００２１】
Ｓ３３２１において、アプリケーションメニュー位置姿勢算出部１１１５は、視錐台算出部１０３０において得られた左目の視錐台４２１０と右目の視錐台４２２０との情報から重複領域４２３０を算出する。アプリケーションメニュー位置姿勢算出部１１１５は、重複領域の視線方向にｘの奥行位置に、視線方向に対して垂直になるようなメニュー表示面４２４０を算出する。アプリケーションメニュー位置姿勢算出部１１１５は、メニュー表示面４２４０において横方向は中心位置に、縦方向は視界をふさがない中心位置より下方、かつ、ＨＭＤのレンズ歪みの影響を受けない特定位置に表示されるよう、位置姿勢を算出する。そして、アプリケーションメニュー位置姿勢算出部１１１５は、Ｓ３４００に処理を移す。本実施形態では、メニューの奥行位置を一定とするが、これに限定されない。即ち、アプリケーションメニュー位置姿勢算出部１１１５は、メニューを視認しやすいよう、仮想物体位置より常に視線に対して手前方向にメニューが表示されるようにメニュー表示面４２４０を動的に算出する。このことにより、メニューと仮想物体とが重なり合わないようにしてもよい。また、アプリケーションメニュー位置姿勢算出部１１１５は、ユーザによって奥行方向を任意に変更できてもよいし、メニューと仮想物体とが重なり合っているとき、メニューより視線に対して手前方向に存在する仮想物体をレンダリングしなくてもよい。更に、アプリケーションメニュー位置姿勢算出部１１１５は、メニューより視線に対して手前方向に存在する仮想物体は半透明表示してもよいし、ワイヤー表示してもよい。また、本実施形態ではメニュー表示面４２４０に対してのメニュー位置をシステムで固定したが、これに限定されない。即ち、アプリケーションメニュー位置姿勢算出部１１１５は、仮想物体の位置に基づき、メニューによって仮想物体が隠される領域が最小になるような位置に表示されてもよいし、ユーザが任意で変更できてもよい。更に、情報処理装置１０００は、これらの表示方法を保持し、切り替えるアプリケーションメニュー表示切替部をもってもよい。
本実施形態は、Ｓ３３１１及びＳ３３２１において、ユーザの視線方向に垂直にメニューを表示するための位置姿勢算出方法を説明したが、これに限定されない。即ち、ユーザに視認しやすい向きで表示されればよく、視線方向に垂直以外の特定の向きであってもよいし、ユーザが任意で設定できてもよい。
【００２２】
Ｓ３４００において、メニュー生成部１１１０は、メニュー形式決定部１１００で決定されたメニュー形式に基づき、オブジェクトメニュー又はアプリケーションメニューを生成する。即ち、メニュー形式がオブジェクトメニューであった場合は、メニュー生成部１１１０は、オブジェクトメニュー位置姿勢算出部１１１３で算出された位置に、オブジェクトメニュー項目設定部１１１４で設定されたメニュー項目を設定し、オブジェクトメニューを生成する。一方、メニュー形式がアプリケーションメニューであった場合は、メニュー生成部１１１０は、アプリケーションメニュー位置姿勢算出部１１１５で算出された位置に、アプリケーションメニュー項目設定部１１１６で設定されたメニュー項目を設定し、アプリケーションメニューを生成する。そして、メニュー生成部１１１０は、Ｓ３５００に処理を移す。Ｓ３３１０、Ｓ３３１１、Ｓ３４００は、第１の生成の処理の一例である。また、Ｓ３３２０、Ｓ３３２１、Ｓ３４００も、第１の生成の処理の一例である。
Ｓ３５００において、仮想空間生成部１１３０は、仮想データ保持部１０４０で保持されている仮想空間に係るデータと、メニュー生成部１１１０において生成したメニューと、を用いて仮想空間を生成する。そして、仮想空間生成部１１３０は、Ｓ３６００に処理を移す。
Ｓ３６００において、複合現実画像生成部１１４０は、仮想空間生成部１１３０で生成された仮想空間と位置姿勢計測部１０２０の位置姿勢とに基づいて、仮想空間画像を生成する。更に、複合現実画像生成部１１４０は、仮想空間画像を撮像画像取得部１０１０で取得された現実空間画像に重畳し、複合現実画像を生成する。複合現実画像生成部１１４０は、生成した複合現実画像を、ＨＭＤの画像表示部又は画像表示装置に対して出力する。そして、複合現実画像生成部１１４０は、Ｓ３７００に処理を移す。Ｓ３５００とＳ３６００の一部は、第２の生成の処理の一例である。また、Ｓ３６００の一部は、第３の生成の処理の一例である。
Ｓ３７００において、ＣＰＵ２０１０は、ユーザによって本処理の終了指示が入力された、若しくは本処理を終了する条件が満たされた場合、本処理を終了する。一方、ＣＰＵ２０１０は、本処理の終了指示が入力されておらず、本処理を終了する条件も満たされていない場合は、処理をＳ３０００に戻す。
【００２３】
本実施形態によれば、仮想物体の操作を行うか、仮想物体に依らないアプリケーションに関わる操作を行うかを識別し、識別結果によって異なるメニュー形式でメニューを表示する。更に、選択されたモードによってメニュー項目を変更することにより、体験状況に応じて適切にメニューを表示することができる。
【００２４】
（変形例１）
上記実施形態では、撮像画像に仮想画像を合成した画像を表示させるＭＲシステムに適用した例を説明した。しかしながらこれに限定されない。例えば、本実施形態は仮想画像のみを表示させるＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）システムに適用することができる。その場合には、上記実施形態においては、複合現実画像生成部１１４０は、撮像画像取得部１０１０で取得された現実空間画像に仮想画像を重畳することなく、仮想空間画像そのままを表示装置に表示させるように機能すればよい。そしてそのようなＶＲシステムにおいて、センサを用いて位置姿勢を計測する場合には、撮像画像取得部１０１０はなくてもよい。
【００２５】
＜実施形態２＞
実施形態１では、仮想物体に依らないアプリケーションに対する操作と仮想物体に対する操作とをメニューの表示形式を切り替えることにより実現したが、本実施形態では、現実空間を三次元再構成したモデル（現実モデル）に対する操作を加えた場合を示す。以下では、仮想空間を構成する仮想物体と現実モデルとを総称してオブジェクトと呼ぶ。
図５は、実施形態２の情報処理システムを構成する各装置の機能構成の一例を示す図である。図１と同じ構成要素には同じ参照番号を付けており、その説明は省略する。
現実モデル生成部５０１０は、撮像画像取得部１０１０で取られた現実空間画像を基に現実モデルを生成する。現実モデルの生成方法にはSurreal Vision社のKinectFusionが考えられる。KinectFusionはKinectを使ったリアルタイム三次元再構成であり、先ずデプスカメラを使った点群の作成を行う。次に、ICP(Iterative Closest Point)によるカメラ位置姿勢推定、三次元オブジェクト生成、レンダリングの流れで三次元再構成を行う。本実施形態ではKinectFusionを用いて説明するが、これに限定されない。現実モデル生成部５０１０は、生成した現実モデルデータをデータ保持部５０２０に入力する。
データ保持部５０２０は、仮想空間を構成する仮想物体に係るデータ（形状情報や位置姿勢情報）や仮想空間中に照射する光源に係るデータ等、仮想空間のデータと現実モデル生成部により生成された現実モデルデータとを保持する。データ保持部５０２０は、仮想空間データと現実モデルデータとを仮想空間生成部１１３０、オブジェクト選択判定部１０６０に入力する。
オブジェクト識別部５０３０は、オブジェクト選択判定部１０６０によって選択されたと見なされたオブジェクトが仮想物体であるか現実モデルであるかを識別する。オブジェクト識別部５０３０は、識別結果をメニュー形式決定部５０４０に入力する。オブジェクト識別部５０３０は、オブジェクト選択判定部１０６０でオブジェクトが選択されていないと判定された場合は、識別することなく、選択されていない旨をメニュー形式決定部５０４０に入力する。
【００２６】
メニュー形式決定部５０４０は、メニュー操作受取部１０９０からメニュー表示操作を受け取ったタイミングでオブジェクト識別部５０３０の入力に応じて、メニュー形式保持部１０８０に保持されているメニュー形式のうち適切なメニュー形式に切り替える。メニュー形式決定部５０４０は、切り替えたメニュー形式をメニュー生成部１１１０に入力する。
オブジェクトメニュー生成部５０５０は、オブジェクトメニュー位置姿勢算出部１１１３とオブジェクトメニュー項目設定部５０５１とで構成されている。オブジェクトメニュー生成部５０５０は、オブジェクトメニュー位置姿勢算出部１１１３で算出された位置に、オブジェクトメニュー項目設定部５０５１で設定されたメニュー項目を表示するよう生成する。また、オブジェクトメニュー生成部５０５０は、メニュー形式決定部５０４０で決定されたメニュー形式に基づき選択されたオブジェクトが仮想物体であるか現実モデルであるかを認識できるよう異なる配色を用いてメニューを生成する。オブジェクトメニュー生成部５０５０は、生成した結果をメニュー生成部１１１０に入力する。本実施形態では、選択されたオブジェクトが仮想物体であるか現実モデルであるかをユーザが認識するためにメニューの配色を変えた場合を説明するが、これに限定されない。オブジェクトメニュー生成部５０５０は、メニューの形状を変えてもよいし、メニュー中に表示するメニュー名を変えてもよい。
オブジェクトメニュー項目設定部５０５１は、モード選択部１０７０により選択されたモードを取得する。更に、オブジェクトメニュー項目設定部５０５１は、オブジェクト識別部の識別結果によりオブジェクトが選択されているか否かを取得する。オブジェクトメニュー項目設定部５０５１は、選択モード及びオブジェクト識別結果及び選択されているオブジェクトが仮想物体であるか現実モデルであるかに基づき、メニュー項目を設定する。
【００２７】
図６は、情報処理装置１０００が、複合現実空間画像を生成し、ＨＭＤ１２００又は画像表示装置１３００に対して出力するために行う処理のフローチャートである。図３と同じ構成要素には同じ参照番号を付けており、その説明は省略する。
Ｓ６１００において、オブジェクト識別部５０３０は、オブジェクト選択判定部１０６０により選択されたオブジェクトの種類が現実モデルであるか仮想物体であるかを識別する。オブジェクト識別部５０３０は、選択しているオブジェクトが現実モデルの場合は、Ｓ６１１０に処理を移し、仮想物体が選択されていた場合は、Ｓ３３１０に処理を移す。
Ｓ６１１０において、オブジェクトメニュー項目設定部５０５１は、モード選択部１０７０により選択されているモードに応じて現実モデル操作に関わる操作メニュー項目を設定する。現実モデル操作に関わる操作メニューは、現実モデルに対して操作を行う操作メニューの一例である。オブジェクトメニュー項目設定部５０５１は、モードが操作編集モードの場合、選択した現実モデルに対して操作を行うためのメニュー項目を設定する。オブジェクトメニュー項目設定部５０５１が設定するメニュー項目は、選択した現実モデルに対して重ね合わせる仮想物体を選択する操作のメニュー項目であってもよいし、干渉判定対象にする操作や同様の形状の仮想物体を複製する操作のメニュー項目であってもよい。また、オブジェクトメニュー項目設定部５０５１が設定するメニュー項目は、色の変更やテクスチャの貼付等マテリアルを変更する操作のメニュー項目であってもよい。オブジェクトメニュー項目設定部５０５１は、モードが追加編集モードの場合、選択した現実モデルに対して追加操作を行うメニューを設定する。オブジェクトメニュー項目設定部５０５１は、寸法線の追加、メモの追加等を行うメニュー項目を設定する。そして、オブジェクトメニュー項目設定部５０５１は、Ｓ６１１１に処理を移す。
Ｓ６１１１において、オブジェクトメニュー生成部５０５０は、選択されたオブジェクトが現実モデルであることを示すメニュー配色を設定する。そして、オブジェクトメニュー生成部５０５０は、Ｓ３３１１に処理を移す。
Ｓ６１２０において、オブジェクトメニュー生成部５０５０は、選択されたオブジェクトが仮想物体であることを示すメニュー配色を設定する。そして、オブジェクトメニュー生成部５０５０は、Ｓ３３１１に処理を移す。
【００２８】
本実施形態によれば、実施形態１に加え、オブジェクトが仮想物体であるか現実モデルかによって異なるメニュー項目を設定することで階層を浅くすることができる。更に、メニューから選択したオブジェクトを識別可能にすることで視認性が向上し、体験状況に応じて適切にメニューを表示することができる。
【００２９】
（変形例１）
上記実施形態では、撮像画像に仮想空間画像を合成した画像を表示させるＭＲシステムに適用した例を説明した。しかしながらこれに限定されない。例えば、本実施形態は現実モデルのみをレンダリングした画像を表示させるシステムに適用することができる。その場合には、上記実施形態において、仮想空間生成部１１３０は、現実モデルのみにより構成された仮想空間を生成すればよい。
（変形例２）
上記実施形態では、選択したオブジェクトが仮想物体であるか現実モデルであるかを識別することにより、設定するメニュー項目を変更する例を説明した。しかしながらこれに限定されない。例えば、仮想物体に属性を不図示のオブジェクト属性保持部に持たせ、その属性を不図示のオブジェクト属性判定部に識別することにより、設定するメニュー項目を変更してもよい。
【００３０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３１】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
図１や図５の情報処理装置１０００の機能構成の一部又は全てはハードウェア構成として情報処理装置１０００に実装してもよい。
上述した各実施形態によれば、体験状況に応じて適切に表示可能なメニューを生成することができる。
【符号の説明】
【００３２】
１０００  情報処理装置
２０１０  ＣＰＵ
【図１】
2019032713.tif 000003
【図２】
2019032713.tif 000004
【図３】
2019032713.tif 000005
【図４】
2019032713.tif 000006
【図５】
2019032713.tif 000007
【図６】
2019032713.tif 000008