(57)【要約】【課題】複合現実感を提示する仕組みにおいて、複合現実感を提示する仕組みにおいて、三次元モデルを表示可能な二次元マーカの位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更すること。【解決手段】撮像装置により現実空間を撮像することにより生成される画像である現実空間画像に、三次元モデルが配置された仮想空間を撮像した画像である仮想空間画像を重畳した複合現実画像をユーザに対して提示するための情報処理装置が、現実空間画像に含まれる二次元マーカに対応するオブジェクトを表示する。そして、操作デバイス７０１や入力デバイス２１０を用いて当該オブジェクトが移動された場合には、二次元マーカに関わらず、当該オブジェクトの位置及び姿勢を変更する。【選択図】図１０
2018190439.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置により現実空間を撮像することにより生成される画像である現実空間画像に、三次元モデルが配置された仮想空間を撮像した画像である仮想空間画像を重畳した複合現実画像を、ユーザに対して提示するための情報処理装置であって、
前記複合現実画像を提示するユーザの位置及び姿勢と、現実空間に配置される二次元マーカに対応する三次元モデルとを記憶する記憶手段と、
前記現実空間画像を取得する現実空間画像取得手段と、
前記現実空間画像取得手段で取得した現実空間画像に含まれる前記二次元マーカの位置及び姿勢を、当該現実空間画像に含まれる二次元マーカに基づいて特定する位置姿勢特定手段と、
前記位置姿勢特定手段で特定した位置及び姿勢に基づいて、前記記憶手段に記憶された当該二次元マーカに対応する三次元モデルを前記仮想空間に配置する三次元モデル配置手段と、
前記仮想空間に配置された三次元モデルのうち、ユーザから指定された三次元モデルの位置及び姿勢を変更する位置姿勢変更手段と
を備え、
前記位置姿勢変更手段は、前記三次元モデル配置手段により配置された三次元モデルであって、前記二次元マーカに対応する三次元モデルが指定された場合、前記三次元モデル配置手段で配置された位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、
前記位置姿勢変更手段で位置及び姿勢を変更された三次元モデルが、前記二次元マーカに対応する三次元モデルである場合に、当該二次元マーカと当該三次元モデルとの対応関係を削除する対応関係削除手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、
前記位置姿勢変更手段で位置及び姿勢を変更された三次元モデルの位置と、前記位置姿勢特定手段で特定された二次元マーカの位置とを用いて、当該三次元モデルと当該二次元マーカとが現実空間または仮想空間において重畳する位置であるか否かを判定する判定手段と、
前記判定手段で前記三次元モデルと前記二次元マーカとが重畳する位置であると判定した場合に、当該三次元モデルと当該二次元マーカとを対応付ける対応付け手段とを更に備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記位置姿勢変更手段は、前記仮想空間に配置された三次元モデルのうち、ユーザによって操作されるデバイスの位置及び姿勢によって指定される三次元モデルの位置及び姿勢を変更することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記位置姿勢変更手段で位置及び姿勢を変更された三次元モデルを含む仮想空間を、前記記憶手段に記憶されたユーザの位置及び姿勢に基づいて撮像することにより、前記仮想空間画像を生成する仮想空間画像生成手段と、
前記現実空間画像取得手段で取得した現実空間画像に、前記仮想空間画像生成手段で生成された仮想空間画像を重畳し、前記複合現実画像を生成する複合現実画像生成手段とを備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
複合現実画像を提示するユーザの位置及び姿勢と現実空間に配置される二次元マーカに対応する三次元モデルとを記憶する記憶手段を備え、撮像装置により現実空間を撮像することにより生成される画像である現実空間画像に、三次元モデルが配置された仮想空間を撮像した画像である仮想空間画像を重畳した複合現実画像を、ユーザに対して提示するための情報処理装置の制御方法であって、
前記情報処理装置の現実空間画像取得手段が、前記現実空間画像を取得する現実空間画像取得ステップと、
前記情報処理装置の位置姿勢特定手段が、前記現実空間画像取得ステップで取得した現実空間画像に含まれる前記二次元マーカの位置及び姿勢を、当該現実空間画像に含まれる二次元マーカに基づいて特定する位置姿勢特定ステップと、
前記情報処理装置の三次元モデル配置手段が、前記位置姿勢特定ステップで特定した位置及び姿勢に基づいて、前記記憶手段に記憶された当該二次元マーカに対応する三次元モデルを前記仮想空間に配置する三次元モデル配置ステップと、
前記情報処理装置の位置姿勢変更手段が、前記仮想空間に配置された三次元モデルのうち、ユーザから指定された三次元モデルの位置及び姿勢を変更する位置姿勢変更ステップと
を備え、
前記位置姿勢変更ステップは、前記三次元モデル配置ステップにより配置された三次元モデルであって、前記二次元マーカに対応する三次元モデルが指定された場合、前記三次元モデル配置ステップで配置された位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更することを特徴とする情報処理装置の制御方法。
【請求項７】
複合現実画像を提示するユーザの位置及び姿勢と現実空間に配置される二次元マーカに対応する三次元モデルとを記憶する記憶手段を備え、撮像装置により現実空間を撮像することにより生成される画像である現実空間画像に、三次元モデルが配置された仮想空間を撮像した画像である仮想空間画像を重畳した複合現実画像を、ユーザに対して提示するための情報処理装置の制御方法を実行可能なプログラムであって、
前記情報処理装置を、
前記現実空間画像を取得する現実空間画像取得手段と、
前記現実空間画像取得手段で取得した現実空間画像に含まれる前記二次元マーカの位置及び姿勢を、当該現実空間画像に含まれる二次元マーカに基づいて特定する位置姿勢特定手段と、
前記位置姿勢特定手段で特定した位置及び姿勢に基づいて、前記記憶手段に記憶された当該二次元マーカに対応する三次元モデルを前記仮想空間に配置する三次元モデル配置手段と、
前記仮想空間に配置された三次元モデルのうち、ユーザから指定された三次元モデルの位置及び姿勢を変更する位置姿勢変更手段
として機能させ、
前記位置姿勢変更手段は、前記三次元モデル配置手段により配置された三次元モデルであって、前記二次元マーカに対応する三次元モデルが指定された場合、前記三次元モデル配置手段で配置された位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）技術に関し、特に３次元モデルを表示可能な二次元マーカの位置及び姿勢に関わらず、当該３次元モデルの位置及び姿勢を変更することの可能な情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、ヘッドマウントディスプレイ（ＨＭＤ）やスマートフォンで撮像した現実の世界（以下、現実空間）の画像に、コンピュータで生成された仮想の世界（以下、仮想空間）の画像を重畳させて、ＨＭＤやスマートフォンの画面に表示する技術が存在する。例えば、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ、以下、ＭＲ）技術や拡張現実感（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）技術などがある。
【０００３】
このＭＲ技術では、複合現実感を高めるために、ユーザの視点位置・姿勢をリアルタイムで取得し、現実空間を撮像した画像の変化に追従させて仮想空間の画像を生成し、ＨＭＤを通じてユーザに対してリアルタイムに表示する必要がある。そのため、ＭＲ技術では、センサ等によって計測したユーザの視点位置・姿勢を仮想空間での仮想の視点位置・姿勢として設定し、この設定に基づいて仮想空間の画像を三次元モデルにより描画し、現実空間の画像と合成している。この技術により、ユーザはあたかも現実空間の中に仮想の物体が存在しているかのような画像を観察することができる。
【０００４】
またＭＲ技術においては、複合現実感の体験者が仮想空間に任意の三次元モデルを出現させるために、二次元マーカを用いる。二次元マーカには所定の三次元モデルが対応づいており、ＨＭＤを通じてこの二次元マーカを情報処理装置が検知すると、当該二次元マーカの位置及び姿勢に応じて、当該三次元モデルを当該二次元マーカの近傍に表示することができる。
【０００５】
このような仕組みが下記の特許文献１に記載されている。下記の特許文献１には、マーカを２つの撮像素子で検知することで、マーカの検出精度を向上させる仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１１６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の仕組みにおいては、表示する三次元モデルの位置及び姿勢は二次元マーカの位置及び姿勢に応じて変化する。例えば、二次元マーカの上に三次元モデルを表示している場合に、二次元マーカを移動させると、それに追従して三次元モデルも移動する。
【０００８】
つまり、三次元モデルの位置及び姿勢を動かすためには、ユーザが現実空間で二次元マーカを動かす必要があった。しかしながら、三次元モデルを所定の位置及び姿勢で固定したい場合には、当該位置及び姿勢となるよう、対応する二次元マーカを固定しておかなければならず、手間であった。
【０００９】
そこで本発明は、複合現実感を提示する仕組みにおいて、複合現実感を提示する仕組みにおいて、三次元モデルを表示可能な二次元マーカの位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更することの可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために本発明の情報処理装置は、撮像装置により現実空間を撮像することにより生成される画像である現実空間画像に、三次元モデルが配置された仮想空間を撮像した画像である仮想空間画像を重畳した複合現実画像を、ユーザに対して提示するための情報処理装置であって、前記複合現実画像を提示するユーザの位置及び姿勢と、現実空間に配置される二次元マーカに対応する三次元モデルとを記憶する記憶手段と、前記現実空間画像を取得する現実空間画像取得手段と、前記現実空間画像取得手段で取得した現実空間画像に含まれる前記二次元マーカの位置及び姿勢を、当該現実空間画像に含まれる二次元マーカに基づいて特定する位置姿勢特定手段と、前記位置姿勢特定手段で特定した位置及び姿勢に基づいて、前記記憶手段に記憶された当該二次元マーカに対応する三次元モデルを前記仮想空間に配置する三次元モデル配置手段と、前記仮想空間に配置された三次元モデルのうち、ユーザから指定された三次元モデルの位置及び姿勢を変更する位置姿勢変更手段とを備え、前記位置姿勢変更手段は、前記三次元モデル配置手段により配置された三次元モデルであって、前記二次元マーカに対応する三次元モデルが指定された場合、前記三次元モデル配置手段で配置された位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更することを特徴とする情報処理装置。
【発明の効果】
【００１１】
本発明によれば、複合現実感を提示する仕組みにおいて、三次元モデルを表示可能な二次元マーカの位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更することの可能な効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態におけるＭＲシステムのシステム構成の一例を示す図である。
【図２】情報処理装置１０１のハードウェア構成の一例を示す図である。
【図３】情報処理装置１０１の機能構成の一例を示す図である。
【図４】本発明の実施形態における一連の処理の流れを示すフローチャートである。
【図５】二次元マーカ情報テーブル５００のテーブル構成の一例を示す図である。
【図６】二次元マーカに対応するオブジェクト６０２を当該二次元マーカに重畳して表示する場合の一例を示す図である。
【図７】本発明の実施形態における操作デバイス７０１の外観の一例を示す図である。
【図８】オブジェクト制御処理の処理の流れを示すフローチャートである。
【図９】操作デバイス７０１で現実物体６０１またはオブジェクト６０２を挟み込む様子を示す図である。
【図１０】操作デバイス７０１でオブジェクト６０２を挟み込んだまま、操作デバイス７０１を移動した場合を示す図である。
【図１１】操作デバイス７０１で挟み込んだオブジェクト６０２を二次元マーカが付された現実物体に重ね合わせた場合を示す図である。
【図１２】光学式マーカ１２０１を備える入力デバイス２１０の外観の一例を示す図である。
【図１３】第２の実施形態における、オブジェクト制御処理の処理の流れを示すフローチャートである。
【図１４】光学式マーカ１２０１を備える入力デバイス２１０にカーソルオブジェクトを重畳させた場合を示す図である。
【図１５】入力デバイス２１０でオブジェクト６０２を選択したまま、入力デバイス２１０を移動した場合を示す図である。
【図１６】入力デバイス２１０で選択したオブジェクト６０２を二次元マーカが付された現実物体に重ね合わせた場合を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、本発明の実施形態の一例について説明する。
【００１４】
図１は、本発明の実施形態におけるＭＲシステムのシステム構成を示す図である。ＭＲシステムは、複合現実感（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ、以下、ＭＲ）をユーザに提供するシステムである。ＭＲシステムは、情報処理装置１０１と、ＨＭＤ１０２と、光学式センサ１０４とを含む。情報処理装置１０１にＨＭＤ１０２と光学式センサ１０４とが接続されており、情報処理装置１０１はこれらと相互にデータ通信可能に有線または無線で接続されている。尚、図１のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。
【００１５】
情報処理装置１０１は、パーソナルコンピュータのような汎用的な装置である。情報処理装置１０１は、ＨＭＤ１０２で撮像された現実空間の画像（以下、現実空間画像）と、情報処理装置１０１で生成された仮想空間の画像（以下、仮想空間画像）とを重畳した画像（以下、複合現実画像）を生成し、ＨＭＤ１０２に送信する。ＭＲの技術に関しては従来技術を用いるため、詳細な説明は省略する。
【００１６】
ＨＭＤ１０２は、いわゆるヘッドマウントディスプレイである。ＨＭＤ１０２は、ユーザの頭部に装着するディスプレイ装置であり、右目用と左目用のビデオカメラと、右目用と左目用のディスプレイを備えている。ＨＭＤ１０２は、ＨＭＤ１０２のビデオカメラで撮像された現実空間画像を情報処理装置１０１に送信する。そして、情報処理装置１０１から送信されてきた複合現実画像を受信し、ディスプレイに表示する。更に、右目用と左目用のビデオカメラとディスプレイを設けているので、視差によって立体感を得ることができる。尚、ＨＭＤ１０２で撮像する現実空間画像、及び表示する複合現実画像は、動画形式が望ましいが、所定の間隔で撮像された画像であってもよい。
【００１７】
光学式センサ１０４は、現実空間を撮像し、光学式マーカ１０３の位置及び姿勢を特定する撮像装置である。本実施形態では、光学式センサ１０４はＨＭＤ１０２が備える光学式マーカ１０３を検出し、ＨＭＤ１０２の位置や姿勢を検出する。光学式マーカ１０３は、入射してきた光を入射してきた方向に対して反射する反射マーカを用いる。また、どのような状況下でも光学式マーカ１０３を検出できるように、光学式センサ１０４を複数設置することが望ましい。尚、本実施形態では光学式センサ１０４とＨＭＤ１０２が備える光学式マーカ１０３を用いてＨＭＤ１０２の位置・姿勢を取得するが、ＨＭＤ１０２の位置及び姿勢が検出できればどのような形態でも構わない。例えば、磁気センサを用いてもよいし、ＨＭＤ１０２で撮像された映像を解析して位置及び姿勢を特定してもよい。
【００１８】
図２は、情報処理装置１０１のハードウェア構成を示す図である。尚、図２の情報処理装置１０１のハードウェアの構成は一例であり、用途や目的に応じて様々な構成例がある。
【００１９】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２０】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムや、各種装置の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＲＯＭ２０２、外部メモリ２１１、ＲＡＭ２０３は記憶手段として動作する。
【００２１】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２２】
また、入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２１０）からの入力を制御する。
【００２３】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０２が備える右目・左目ディスプレイ２２２やディスプレイ２１２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。
【００２４】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００２５】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。
【００２６】
汎用バス２０９は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００２７】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００２８】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２９】
図３は、情報処理装置１０１の機能構成を示す図である。尚、図３の情報処理装置１０１の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００３０】
情報処理装置１０１は機能部として、通信制御部３０１、位置・姿勢取得部３０２、現実空間画像取得部３０３、二次元マーカ検出部３０４、仮想空間管理部３０５、接触検知部３０６、対応付け管理部３０７、仮想空間画像取得部３０８、複合現実画像生成部３０９、表示制御部３１０を備えている。
【００３１】
通信制御部３０１は、情報処理装置１０１と通信可能なＨＭＤ１０２と光学式センサ１０４との各種情報の送受信を行う機能部である。通信制御部３０１は、前述したビデオコントローラ２０６、通信Ｉ／Ｆコントローラ２０８、汎用バス２０９等を通じてこれらの装置と情報の送受信を行う。
【００３２】
位置・姿勢取得部３０２は、光学式マーカ１０３を備える装置の現実空間における位置及び姿勢を示す情報を光学式センサ１０４から取得する機能部である。本実施形態では、ＨＭＤ１０２が光学式マーカ１０３を備えているため、位置・姿勢取得部３０２はＨＭＤ１０２の位置及び姿勢（ＨＭＤ１０２を装着しているユーザの位置及び姿勢。以下同じ。）を示す情報を取得する。また、位置・姿勢取得部３０２は、現実空間画像取得部３０３で右目・左目ビデオカメラ２２１から取得した右目用の現実空間画像と左目用の現実空間画像とを用いて、三角測量等の方法により、現実空間の物体の位置及び姿勢を特定することもできる。
【００３３】
現実空間画像取得部３０３は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１から現実空間画像を取得する機能部である。
【００３４】
二次元マーカ検出部３０４は、現実空間画像取得部３０３で取得した現実空間画像から、二次元マーカを検出する機能部である。現実空間画像から二次元マーカの特徴量を抽出し、更に当該二次元マーカの大きさや傾きを検出する。そして、検出した大きさや傾き、更にはＨＭＤ１０２の位置及び姿勢を用いて、現実空間における二次元マーカの位置及び姿勢を特定する。
【００３５】
仮想空間管理部３０５は、情報処理装置１０１において仮想空間を生成し、当該仮想空間に三次元モデルから成るオブジェクトを配置する機能部である。仮想空間管理部３０５で使用する各オブジェクトは、情報処理装置１０１の外部メモリ２１１等に記憶されており、これらを適宜読み出して仮想空間を生成する。
【００３６】
接触検知部３０６は、仮想空間に配置されたオブジェクト同士の接触や現実空間の物体とオブジェクトとの接触を検知する機能部である。仮想空間に配置されたオブジェクト同士の接触は、当該オブジェクトの位置及び姿勢に応じてオブジェクト同士が接触しているか否かを検知する。また、現実物体とオブジェクトとの接触を検知する場合には、当該現実物体の位置及び姿勢と、当該オブジェクトの位置及び姿勢とを用いて、接触しているか否かを検知する。
【００３７】
対応付け管理部３０７は、二次元マーカとオブジェクトとの対応付けを管理する機能部である。二次元マーカと当該二次元マーカがＨＭＤ１０２で撮像されたときに表示されるオブジェクトとは、後述する二次元マーカ情報テーブル５００（図５参照）で対応づいている。この対応関係を削除したり、または対応付けたりすることができる。
【００３８】
仮想空間画像取得部３０８は、情報処理装置１０１で生成する仮想空間の画像を取得する機能部である。仮想空間画像取得部３０８が仮想空間の画像を取得する場合には、位置・姿勢取得部３０２で取得したＨＭＤ１０２の位置及び姿勢に基づいて仮想空間上の視点を決定し、当該視点から見た場合の仮想空間画像を生成し、これを取得する。
【００３９】
複合現実画像生成部３０９は、現実空間画像取得部３０３で取得した現実空間画像に仮想空間画像取得部３０８で取得した仮想空間画像を重畳することにより、複合現実画像を生成する機能部である。
【００４０】
表示制御部３１０は、情報処理装置１０１に接続されたＨＭＤ１０２の右目・左目ディスプレイ２２２や情報処理装置１０１に接続されたディスプレイ２１２における各種情報の表示制御を行う機能部である。
【００４１】
次に、本発明の実施形態における情報処理装置１０１によって行われる一連の処理について、図４に示すフローチャートを用いて説明する。
【００４２】
まずステップＳ４０１では、情報処理装置１０１のＣＰＵ２０１は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１から現実空間画像を取得し、ＲＡＭ２０３に記憶する（現実空間画像取得手段）。更にステップＳ４０２では、情報処理装置１０１のＣＰＵ２０１は、ＨＭＤ１０２の位置及び姿勢を取得し、同じくＲＡＭ２０３に記憶する。前述した通り、ＨＭＤ１０２が備える光学式マーカ１０３を光学式センサ１０４が検知することで特定した位置及び姿勢を、当該光学式センサ１０４から取得する。
【００４３】
ステップＳ４０３では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０１で取得した現実空間画像をＲＡＭ２０３から読み出し、当該現実空間画像から二次元マーカを抽出する。二次元マーカの抽出方法は従来技術であるが、例えば現実空間画像に対してパターン認識等で二次元マーカが備える特徴的な図形等を抽出すればよい。
【００４４】
ステップＳ４０４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０３で抽出した二次元マーカに対応するオブジェクトが存在するか否かを判定する。二次元マーカごとに特徴点が存在する。この特徴点に応じて二次元マーカそれぞれを識別し、識別した二次元マーカに対応するオブジェクトの有無を判定する。より具体的には、二次元マーカの特徴点が、二次元マーカ情報テーブル５００（図５参照）の二次元マーカ特徴点５０２に格納されている。よって、ステップＳ４０３で抽出した二次元マーカの特徴点と、二次元マーカ特徴点５０２とを比較し、一致するレコード（以下、二次元マーカ情報）を特定する。そして、特定した二次元マーカ情報にオブジェクトＩＤ５０３が格納されているか否かを判定すればよい。オブジェクトＩＤ５０３が格納されていれば、ステップＳ４０３で抽出した二次元マーカに対応するオブジェクトが存在するということになる。
【００４５】
二次元マーカ情報テーブル５００（図５参照）は、情報処理装置１０１の外部メモリ２１１等に記憶されているテーブルである。二次元マーカ情報テーブル５００は、二次元マーカＩＤ５０１、二次元マーカ特徴点５０２、オブジェクトＩＤ５０３、オブジェクト保存場所５０４から構成される。二次元マーカＩＤ５０１は、二次元マーカごとに割り振られる一意な識別情報である。二次元マーカ特徴点５０２は、当該二次元マーカが示す図形等の特徴点を示す情報である。オブジェクトＩＤ５０３は、当該二次元マーカに対応するオブジェクトを識別するための情報である。オブジェクト保存場所５０４は、当該二次元マーカに対応するオブジェクトが保存されているファイルパスを示す。二次元マーカ情報テーブル５００に格納されている情報は一例であり、これ以外の情報が格納されてもよい。
【００４６】
ステップＳ４０４に説明を戻す。ステップＳ４０３で抽出した二次元マーカに対応するオブジェクトが存在すると判定した場合には、ステップＳ４０５に処理を進める。ステップＳ４０３で抽出した二次元マーカに対応するオブジェクトが存在しないと判定した場合には、ステップＳ４０８に処理を進める。
【００４７】
ステップＳ４０５では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０３で抽出した二次元マーカに対応するオブジェクトを外部メモリ２１１等から取得する。二次元マーカに対応するオブジェクトは、当該二次元マーカに対応する二次元マーカ情報のオブジェクト保存場所５０４が示す場所に格納されている。
【００４８】
ステップＳ４０６では、情報処理装置１０１のＣＰＵ２０１は、二次元マーカの位置及び姿勢を特定する（位置姿勢特定手段）。二次元マーカの位置及び姿勢は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１で撮像した右目用の現実空間画像と左目用の現実空間画像と、更にステップＳ４０２で取得したＨＭＤ１０２の位置及び姿勢とを用いて、三角測量等の手法によって算出する。二次元マーカの位置及び姿勢の特定方法は従来技術であるので、詳細な説明は省略する。
【００４９】
ステップＳ４０７では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０５で取得したオブジェクトを仮想空間に配置する（三次元モデル配置手段）。ステップＳ４０６で二次元マーカの位置及び姿勢を特定しているので、この位置及び姿勢を用いて仮想空間上のどの位置にオブジェクトを配置するのかを決定する。そして、決定した位置及び姿勢に当該オブジェクトを配置する。
【００５０】
例えば、図６は二次元マーカが検出された場合に、当該二次元マーカに対応するオブジェクトが配置される一例を示している。現実空間に配置される物体である現実物体６０１に二次元マーカを付しておき、これをＨＭＤ１０２の右目・左目ビデオカメラ２２１で撮像すると、当該二次元マーカに対応するオブジェクト６０２を取得し、当該二次元マーカの位置及び姿勢に応じてオブジェクト６０２を重畳する。その結果、重畳例６０３に示すような形態となる。
【００５１】
このように、二次元マーカに対応するオブジェクトは、現実空間に存在する二次元マーカの位置及び姿勢に応じて、仮想空間上のどの位置及び姿勢で配置されるのかが決定される。そのため、二次元マーカを移動すれば、それに伴って対応するオブジェクトも移動することになる。
【００５２】
ステップＳ４０８では、情報処理装置１０１のＣＰＵ２０１は、仮想空間に配置されたオブジェクトの動作を図７に示す操作デバイスによって制御するための処理を実行する。オブジェクト制御処理の詳細は、後述する図８に示す。
【００５３】
図７の操作デバイス７０１は、現実物体に接触しているか否かを検知可能なデバイスである。操作デバイス７０１は、現実物体またはオブジェクトを挟み込むことが可能であり、挟み込んだ際に操作デバイス７０１の内側に備えられた接触センサ７０２が反応することで、情報処理装置１０１に操作デバイス７０１が現実物体と接触しているか否かを示す信号を送信する。操作デバイス７０１は情報処理装置１０１の汎用バス２０９等に接続することで利用する。尚、接触センサ７０２は、物体に触れているか否かが通知できればどのようなセンサでもよい。
【００５４】
ステップＳ４０９では、情報処理装置１０１のＣＰＵ２０１は、仮想空間を撮像することにより仮想空間画像を取得し、ＲＡＭ２０３等に記憶する（仮想空間画像生成手段）。より具体的には、まずステップＳ４０２で取得したＨＭＤ１０２の位置及び姿勢をＲＡＭ２０３等から読み出し、当該位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する。そして、特定した仮想空間上の位置及び姿勢で仮想空間上に仮想のカメラ（視点）を設置し、当該カメラにより仮想空間を撮像する。これにより仮想空間画像を生成する。尚、ＨＭＤ１０２の右目・左目ディスプレイ２２２のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の２枚を取得する。
【００５５】
ステップＳ４１０では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０１で取得した現実空間画像とステップＳ４０９で取得した仮想空間画像とをＲＡＭ２０３等から読み出す。そして、当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する（複合現実画像生成手段）。生成した複合現実画像はＲＡＭ２０３等に記憶する。尚、前述した通り、現実空間画像と仮想空間画像とは右目用と左目用の２枚ずつがＲＡＭ２０３等に記憶されているので、右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳する。
【００５６】
ステップＳ４１１では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４１０で生成した複合現実画像をＲＡＭ２０３等から読み出し、ビデオコントローラ２０６を通じてＨＭＤ１０２の右目・左目ディスプレイ２２２に表示する。ＲＡＭ２０３等に記憶された複合現実画像は、右目用と左目用の２枚が存在する。そのため、右目用の複合現実画像を右目・左目ディスプレイ２２２の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ２２２の左目のディスプレイに表示するよう制御する。
【００５７】
ステップＳ４１２では、情報処理装置１０１のＣＰＵ２０１は、ＨＭＤ１０２を装着しているユーザに複合現実感を提示する処理（前述したステップＳ４０１乃至ステップＳ４１１）の終了指示があったか否かを判定する。例えば、前述したステップＳ４０１乃至ステップＳ４１１の処理を実行する情報処理装置１０１のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップＳ４０１に処理を戻し、終了指示があるまでステップＳ４０１乃至ステップＳ４１１を繰り返す。
【００５８】
次に、オブジェクト制御処理について、図８に示すフローチャートを用いて説明する。
【００５９】
ステップＳ８０１では、情報処理装置１０１のＣＰＵ２０１は、操作デバイス７０１からの信号を取得する。そして、ステップＳ８０２では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０１で受信した信号に応じて、操作デバイス７０１が現実物体と接触しているか否かを判定する。本実施形態では特に、操作デバイス７０１に備える接触センサ７０２の両方から接触している旨を示す信号が送られてきていれば、現実物体と接触していると判定する。これは、操作デバイス７０１が現実物体やオブジェクトを挟み込む仕様であり、片方だけが接触していても挟み込んだと言えないからである。操作デバイス７０１が現実物体と接触していると判定した場合には、オブジェクト制御処理を終了する。操作デバイス７０１が現実物体と接触していないと判定した場合には、ステップＳ８０３に処理を進める。
【００６０】
ステップＳ８０３では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ４０１で取得した現実空間画像をＲＡＭ２０３から取得し、操作デバイス７０１といずれかのオブジェクトとが接触しているか否かを解析する。いずれかのオブジェクトとは、仮想空間に配置されているオブジェクトを示す。右目・左目ビデオカメラ２２１から取得した右目用の現実空間画像と左目用の現実空間画像とＨＭＤ１０２の位置及び姿勢とを用いて三角測量等の手法により操作デバイス７０１の位置及び姿勢を特定し、対象のオブジェクトの位置及び姿勢と比較することで操作デバイス７０１と接触しているか否かを解析する。特に操作デバイス７０１の接触センサ７０２の近傍を黄緑や赤といった識別が容易な色で着色しておけば、より精度よく解析することができる。
【００６１】
ステップＳ８０４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０３で解析した結果、操作デバイス７０１といずれかのオブジェクトとが接触しているか否かを判定する。操作デバイス７０１といずれかのオブジェクトとが接触していると判定した場合には、ステップＳ８０５に処理を進める。操作デバイス７０１といずれのオブジェクトにも接触していないと判定した場合には、オブジェクト制御処理を終了する。
【００６２】
ステップＳ８０５では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０４で接触していると判定したオブジェクトが二次元マーカに対応するオブジェクトであるか否かを判定する。接触していると判定したオブジェクトのオブジェクトＩＤがオブジェクトＩＤ５０３に含まれるか否かに応じて判定すればよい。二次元マーカに対応するオブジェクトであると判定した場合には、ステップＳ８０６に処理を進める。二次元マーカに対応するオブジェクトでないと判定した場合には、ステップＳ８０８に処理を進める。
【００６３】
ステップＳ８０６では、情報処理装置１０１のＣＰＵ２０１は、接触したオブジェクトに対応する二次元マーカの二次元マーカ情報を特定する。接触したオブジェクトのオブジェクトＩＤを持つ二次元マーカ情報を二次元マーカ情報テーブル５００から検索して、特定すればよい。
【００６４】
ステップＳ８０７では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０６で特定した二次元マーカ情報に含まれるオブジェクトＩＤ５０３とオブジェクト保存場所５０４とに格納されている情報を削除する（対応関係削除手段）。
【００６５】
ステップＳ８０７の処理について図９と図１０を用いて説明する。図９は、操作デバイス７０１を用いてオブジェクト６０２を挟み込んでいる様子を示す図である。現実物体６０１に付された二次元マーカに対応するオブジェクト６０２が表示されており、操作デバイス７０１が現実物体６０１には接触しないで、オブジェクト６０２だけに接触させている状態である。二次元マーカに対応するオブジェクト６０２は、通常現実物体６０１よりも多少大きめに作成されている。よって、現実物体６０１には接触せずにオブジェクト６０２だけを接触することができる。
【００６６】
このオブジェクト６０２を挟み込んだまま（指定したまま）、操作デバイス７０１を移動させた図が図１０である。従来であれば、二次元マーカに対応するオブジェクトは二次元マーカを移動させることで追従して移動させることができたが、本実施形態では操作デバイス７０１と接触しているオブジェクトは二次元マーカに対応するオブジェクトであっても移動させることができる。この処理を実行するために、ステップＳ８０７で説明した通り、二次元マーカとそれに対応するオブジェクトとの対応付けを解除（削除）しなければならない。そこで、当該二次元マーカの二次元マーカ情報が含むオブジェクトＩＤ５０３とオブジェクト保存場所５０４をそれぞれ「ＮＵＬＬ」とし、何も対応付いていない状態にする。つまり、図１０の下部にある二次元マーカ情報が示すような状態にする。こうすれば、前述したステップＳ４０５で二次元マーカに対応するオブジェクトが取得されなくなる。
【００６７】
図８の説明に戻る。ステップＳ８０８では、情報処理装置１０１のＣＰＵ２０１は、操作デバイス７０１の位置及び姿勢を特定する。ステップＳ８０３で特定されているので、これを用いればよい。
【００６８】
ステップＳ８０９では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０８で特定した操作デバイス７０１の位置及び姿勢を用いて、接触したオブジェクトを配置する位置及び姿勢を決定し、当該位置及び姿勢で当該オブジェクトを仮想空間に配置する（仮想空間上の位置及び姿勢を変更する）（位置姿勢変更手段）。こうすることにより、二次元マーカの位置及び姿勢に応じて配置されていたオブジェクトは二次元マーカの位置及び姿勢には関わらない位置及び姿勢を持つことになる。
【００６９】
ステップＳ８１０では、情報処理装置１０１のＣＰＵ２０１は、操作デバイス７０１によって指定されたオブジェクトが、現実空間にある二次元マーカと重畳する位置であるか否かを判定する（判定手段）。ステップＳ８０９で設定されたオブジェクトの位置と、現実空間画像から特定される二次元マーカの位置とを用いて、オブジェクトが二次元マーカと重畳する位置にあるか否かを判定する。二次元マーカの位置を特定する方法は、前述した通りであるので説明は省略する。操作デバイス７０１によって指定されたオブジェクトが、現実空間にある二次元マーカと重畳する位置であると判定した場合、ステップＳ８１１に処理を進める。操作デバイス７０１によって指定されたオブジェクトが、現実空間にある二次元マーカと重畳する位置でないと判定した場合、オブジェクト制御処理を終了する。
【００７０】
ステップＳ８１１では、情報処理装置１０１のＣＰＵ２０１は、操作デバイス７０１によって指定させているオブジェクトが重畳する二次元マーカの二次元マーカ情報を特定する。二次元マーカから二次元マーカ情報を特定する方法は、ステップＳ４０４で説明した通りである。
【００７１】
ステップＳ８１２では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ８０６で特定した二次元マーカ情報のオブジェクトＩＤ５０３とオブジェクト保存場所５０４に、操作デバイス７０１によって指定されているオブジェクトのオブジェクトＩＤとオブジェクトの保存場所とを格納する（対応付け手段）。そして、当該オブジェクトの位置及び姿勢を削除する。こうすることで、再度二次元マーカにオブジェクトを対応づけることができる。すなわち、図１１に示すように、操作デバイス７０１によって指定しているオブジェクト６０２を二次元マーカが付された現実物体６０１に重畳させると、当該オブジェクト６０２と二次元マーカとが対応づく。つまり、図１１にも示すようにオブジェクトＩＤ５０３とオブジェクト保存場所５０４に当該オブジェクト６０２のオブジェクトＩＤとオブジェクト６０２の保存場所を格納することで、対応付けを行う。尚、本実施形態の説明では、同じオブジェクトを再度対応付けしているが、まったく別のオブジェクトであってもよい。
【００７２】
以上のように、操作デバイス７０１を用いることで、二次元マーカに対応するオブジェクトの対応付けを解除したり、二次元マーカにオブジェクトを対応付けたりすることが可能となる。
【００７３】
次に別の実施形態として、マウス等の入力デバイス２１０を用いる第２の実施形態について説明をする。
【００７４】
第２の実施形態では図１２に示すような入力デバイスを用いる。この入力デバイス２１０には、ＨＭＤ１０２と同様に光学式センサ１２０１が備えられている。つまり、この光学式センサ１２０１によって現実空間における入力デバイス２１０の位置及び姿勢が特定できる。前述した実施形態の場合、現実空間画像を解析することによって操作デバイス７０１の位置及び姿勢を特定していたが、光学式センサ１２０１を用いることにより、より精度高く位置及び姿勢を特定することができるようになる。尚、第２の実施形態ではマウスを用いた例として説明をするが、情報処理装置１０１に信号を通知可能なボタンを備えるデバイスであれば、なんでもよい。以下、この入力デバイス２１０を用いた第２の実施形態について説明する。
【００７５】
第２の実施形態のシステム構成、ハードウェア構成、機能構成は前述した実施形態と同様であるので説明は省略する。また、前述した実施形態の図４に示すフローチャートも同様であるので説明は省略する。
【００７６】
次に、第２の実施形態におけるオブジェクト制御処理について、図１３を用いて説明する。
【００７７】
ステップＳ１３０１では、情報処理装置１０１のＣＰＵ２０１は、マウス等の入力デバイス２１０の位置及び姿勢を取得する。前述した通り、入力デバイス２１０には光学式マーカが備えられているので、ステップＳ４０２と同様に位置及び姿勢を特定する。
【００７８】
ステップＳ１３０２では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１３０１で取得した位置及び姿勢を用いて、入力デバイス２１０に重畳させるような形態で他のオブジェクトとの接触判定用のオブジェクト（以下、カーソルオブジェクト）を配置する。図１４に示すように、入力デバイス２１０に重畳するようカーソルオブジェクト１４０１を配置する。入力デバイス２１０を移動させれば、当該カーソルオブジェクト１４０１も追従してくる。
【００７９】
ステップＳ１３０３では、情報処理装置１０１のＣＰＵ２０１は、マウス等の入力デバイス２１０でクリックされることにより発生する信号を取得する。そして、ステップＳ１３０４では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１３０３で取得した信号により、マウス等の入力デバイス２１０によりクリック操作がなされたか否かを判定する。クリック操作がなされたと判定した場合には、ステップＳ１３０５に処理を進める。クリック操作がなされなかったと判定した場合には、オブジェクト制御処理を終了する。
【００８０】
ステップＳ１３０５では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１３０２で配置したカーソルオブジェクトが仮想空間上に配置された他のオブジェクトと接触しているか否かを判定する。カーソルオブジェクトの位置及び姿勢と、対象のオブジェクトの位置及び姿勢とを比較することで、接触しているか否かを判定すればよい。ステップＳ１３０２で配置したカーソルオブジェクトが仮想空間上に配置された他のオブジェクトと接触していると判定した場合、ステップＳ１３０７に処理を進める。ステップＳ１３０２で配置したカーソルオブジェクトが仮想空間上に配置された他のオブジェクトと接触していないと判定した場合に、ステップＳ１３０９に処理を進める。
【００８１】
ステップＳ１３０７では、情報処理装置１０１のＣＰＵ２０１は、接触したオブジェクトに対応する二次元マーカの二次元マーカ情報を特定する。接触したオブジェクトのオブジェクトＩＤを持つ二次元マーカ情報を二次元マーカ情報テーブル５００から検索して、特定すればよい。
【００８２】
ステップＳ１３０８では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１３０７で特定した二次元マーカ情報に含まれるオブジェクトＩＤ５０３とオブジェクト保存場所５０４とに格納されている情報を削除する。
【００８３】
ステップＳ１３０８の処理について図１５を用いて説明する。オブジェクト６０２にカーソルオブジェクトを接触させてクリックし、入力デバイス２１０を移動した図が図１５である。前述した実施形態と同様に第２の実施形態でも入力デバイス２１０のカーソルオブジェクトと接触しているオブジェクトは二次元マーカに対応するオブジェクトであっても移動させることができる。この処理を実行するために、ステップＳ１３０８で説明した通り、二次元マーカとそれに対応するオブジェクトとの対応付けを解除（削除）しなければならない。そこで、当該二次元マーカの二次元マーカ情報が含むオブジェクトＩＤ５０３とオブジェクト保存場所５０４をそれぞれ「ＮＵＬＬ」とし、何も対応付いていない状態にする。つまり、図１５の下部にある二次元マーカ情報が示すような状態にする。こうすれば、前述したステップＳ４０５で二次元マーカに対応するオブジェクトが取得されなくなる。
【００８４】
ステップＳ１３０９では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１３０１で特定した入力デバイス２１０の位置及び姿勢を用いて、接触したオブジェクトを配置する位置及び姿勢を決定し、当該位置及び姿勢で当該オブジェクトを仮想空間に配置する（仮想空間上を移動させる）。こうすることにより、二次元マーカの位置及び姿勢に応じて配置されていたオブジェクトは二次元マーカの位置及び姿勢には関わらない位置及び姿勢を持つことになる。
【００８５】
ステップＳ１３１０では、情報処理装置１０１のＣＰＵ２０１は、入力デバイス２１０によって指定されたオブジェクトが、現実空間にある二次元マーカと重畳する位置であるか否かを判定する。ステップＳ１３０９で設定されたオブジェクトの位置と、現実空間画像から特定される二次元マーカの位置とを用いて、オブジェクトが二次元マーカと重畳する位置にあるか否かを判定する。二次元マーカの位置を特定する方法は、前述した通りであるので説明は省略する。入力デバイス２１０によって指定されたオブジェクトが、現実空間にある二次元マーカと重畳する位置であると判定した場合、ステップＳ１３１１に処理を進める。入力デバイス２１０によって指定されたオブジェクトが、現実空間にある二次元マーカと重畳する位置でないと判定した場合、オブジェクト制御処理を終了する。
【００８６】
ステップＳ１３１１では、情報処理装置１０１のＣＰＵ２０１は、入力デバイス２１０によって指定させているオブジェクトが重畳する二次元マーカの二次元マーカ情報を特定する。二次元マーカから二次元マーカ情報を特定する方法は、ステップＳ４０４で説明した通りである。
【００８７】
ステップＳ１３１２では、情報処理装置１０１のＣＰＵ２０１は、ステップＳ１３０７で特定した二次元マーカ情報のオブジェクトＩＤ５０３とオブジェクト保存場所５０４に、操作デバイス７０１によって指定されているオブジェクトのオブジェクトＩＤとオブジェクトの保存場所とを格納する。そして、当該オブジェクトの位置及び姿勢を削除する。こうすることで、再度二次元マーカにオブジェクトを対応づけることができる。すなわち、図１６に示すように、入力デバイス２１０によって指定しているオブジェクト６０２を二次元マーカが付された現実物体６０１に重畳させると、当該オブジェクト６０２と二次元マーカとが対応づく。つまり、図１６にも示すようにオブジェクトＩＤ５０３とオブジェクト保存場所５０４に当該オブジェクト６０２のオブジェクトＩＤとオブジェクト６０２の保存場所を格納することで、対応付けを行う。尚、本実施形態の説明では、同じオブジェクトを再度対応付けしているが、まったく別のオブジェクトであってもよい。
【００８８】
以上のように、入力デバイス２１０を用いることで、二次元マーカに対応するオブジェクトの対応付けを解除したり、二次元マーカにオブジェクトを対応付けたりすることが可能となる。
【００８９】
以上説明したように、本実施形態によれば、複合現実感を提示する仕組みにおいて、三次元モデルを表示可能な二次元マーカの位置及び姿勢に関わらず、当該三次元モデルの位置及び姿勢を変更することの可能な効果を奏する。
【００９０】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００９１】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００９２】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９４】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００９５】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９６】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１００】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１０１】
１０１  情報処理装置
１０２  ＨＭＤ
１０３  光学式マーカ
１０４  光学式センサ
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆコントローラ
２０９  汎用バス
２１０  入力デバイス
２１１  外部メモリ
２１２  ディスプレイ
２２１  右目・左目ビデオカメラ
２２２  右目・左目ディスプレイ
【図１】
2018190439.tif 000003
【図２】
2018190439.tif 000004
【図３】
2018190439.tif 000005
【図４】
2018190439.tif 000006
【図５】
2018190439.tif 000007
【図６】
2018190439.tif 000008
【図７】
2018190439.tif 000009
【図８】
2018190439.tif 000010
【図９】
2018190439.tif 000011
【図１０】
2018190439.tif 000012
【図１１】
2018190439.tif 000013
【図１２】
2018190439.tif 000014
【図１３】
2018190439.tif 000015
【図１４】
2018190439.tif 000016
【図１５】
2018190439.tif 000017
【図１６】
2018190439.tif 000018
【手続補正書】
【提出日】平成30年8月9日(2018.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想物体に対応する現実物体の位置に基づいて、当該仮想物体の３次元空間上の位置を決定する情報処理装置であって、
現実物体に対応付けられていない仮想物体と現実物体とが所定の位置関係となっている場合に、当該仮想物体と当該現実物体とを対応付ける対応付け手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記所定の位置関係とは、前記現実物体と前記仮想物体が重なっている位置関係であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記対応付け手段は、対応する現実物体を持たない仮想物体が移動されることにより、当該仮想物体と現実物体が前記所定の位置関係となった場合に、当該仮想物体と当該現実物体とを対応付けることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記対応付け手段は、対応する現実物体を持たない仮想物体が、対応する現実物体となり得る現実物体と前記所定の位置関係となっている場合に、当該現実物体と仮想物体を対応付けることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
対応する現実物体の位置に基づいて仮想物体の３次元空間上の位置を決定する情報処理装置であって、
仮想物体と、当該仮想物体と対応する第１の現実物体との位置関係が変更されることにより、当該仮想物体と、前記第１の現実物体とは別の第２の現実物体の位置関係が所定の位置関係となった場合に、当該仮想物体と前記第２の現実物体とを対応付ける対応付け手段と、
を備えることを特徴とする情報処理装置。
【請求項６】
前記対応付け手段は、前記仮想物体と前記第１の現実物体の位置関係が、前記仮想物体の移動に応じて変化し、前記仮想物体と前記第２の現実物体の位置関係が所定の位置関係となった場合に、前記仮想物体と前記第２の現実物体とを対応付けることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
ユーザが保持する表示装置と通信可能であって、
前記仮想物体を含む仮想空間に基づいて、前記表示装置に表示すべき角度の仮想空間画像を生成する仮想空間画像生成手段と、
前記仮想空間画像生成手段により生成された仮想空間画像を、前記表示装置に表示するべく出力する出力手段と、
を備えることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記現実物体は、二次元マーカを含むことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
仮想物体に対応する現実物体の位置に基づいて、当該仮想物体の３次元空間上の位置を決定する情報処理装置の制御方法であって、
現実物体に対応付けられていない仮想物体と現実物体とが所定の位置関係となっている場合に、当該仮想物体と当該現実物体とを対応付ける対応付け工程と、
を含む制御方法。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載された情報処理装置として機能
させるためのプログラム。