(57)【特許請求の範囲】
【請求項１】
現実空間を撮像する撮像装置を視点として空間に仮想物体を重ねた複合現実画像を生成し、表示部に表示する情報処理装置であって、
前記撮像装置のアップベクトル又は視線ベクトルと、前記空間の世界座標系を構成する軸の各軸ベクトルとが成す角度に基づいて、前記軸のうち、前記仮想物体の移動を拘束する移動軸を設定する設定手段と、
前記設定手段で設定した軸に応じて定められる方向に、前記仮想物体を仮想的に移動させる移動手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記設定手段は、前記空間の世界座標系の各軸ベクトルのうち、前記撮像装置のアップベクトルと成す角度が最も小さい軸ベクトルを特定し、その軸を移動軸に設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定手段は、前記空間の世界座標系の各軸ベクトルのうち、前記撮像装置の視線ベクトルと成す角度が最も小さい軸ベクトルを特定し、その軸を移動軸に設定することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記表示部は頭部装着ディスプレイであることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記撮像装置は前記頭部装着ディスプレイに搭載されていることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記移動手段は、前記仮想物体を所定の面まで移動させることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記移動手段は、前記仮想物体の点、線、又は面が前記所定の面上の値となるように移動させることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
現実空間を撮像する撮像装置を視点として空間に仮想物体を重ねた複合現実画像を生成し、表示部に表示する情報処理方法であって、
前記撮像装置のアップベクトル又は視線ベクトルと、前記空間の世界座標系を構成する軸の各軸ベクトルとが成す角度に基づいて、前記軸のうち、前記仮想物体の移動を拘束する移動軸を設定するステップと、
前記設定した軸に応じて定められる方向に、前記仮想物体を仮想的に移動させるステップとを有することを特徴とする情報処理方法。
【請求項９】
現実空間を撮像する撮像装置を視点として空間に仮想物体を重ねた複合現実画像を生成し、表示部に表示するためのプログラムであって、
前記撮像装置のアップベクトル又は視線ベクトルと、前記空間の世界座標系を構成する軸の各軸ベクトルとが成す角度に基づいて、前記軸のうち、前記仮想物体の移動を拘束する移動軸を設定する設定手段と、
前記設定手段で設定した軸に応じて定められる方向に、前記仮想物体を仮想的に移動させる移動手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間を撮像する撮像装置を視点として空間に仮想物体を重ねた複合現実画像を生成し、表示部に表示する情報処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、現実空間に３Ｄモデリングソフトによって作成された３Ｄモデル等の仮想物体をリアルタイムに重ねて表示する複合現実感（ＭＲ：Mixed Reality）に関する研究が盛んである。ＭＲ技術を利用することで、操作者は現実空間内にあたかも仮想物体が存在するかのような体験ができる。例えばカメラで撮像した現実空間の映像上に３Ｄモデルを重ねて表示することで、モックアップや実際の製品がなくても、操作者はデザインの確認や完成品の大きさを確認することができる。また、ＭＲ技術を利用することで、製品組み立ての手順説明やシミュレーションを行うといった、様々な分野への活用が期待されている。
【０００３】
また、仮想現実感（ＶＲ：Virtual Reality）の分野では、仮想空間において仮想物体を任意の位置に移動させることが一般的に行われている。例えば仮想物体を移動させるために、仮想空間内に３次元の格子を生成し、仮想空間における仮想物体の位置と大きさを計算する。そして、仮想物体から最も近い距離にある格子点を求め、格子点に移動するための３次元座標系の成分を決定し、仮想物体を移動するという方法が取られてきた（例えば特許文献１を参照）。また、仮想空間において仮想視点を設定する場合があり、この仮想視点を移動させることも行われている。
【０００４】
また、既存のＣＧソフトをＣＧの描画部として利用し、ＶＲシステムやＭＲシステムと連携した環境を構築する技術が提案されている（例えば特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−３１６８５８号公報
【特許文献２】特許第４８４７２０３号公報
【特許文献３】特許第４７３９００４号公報
【非特許文献】
【０００６】
【非特許文献１】A. Criminisi, I. Reid and A. Zisserman: “Single view metrology”, Int. J. of Computer Vision, 40, 2, pp.123-148 (2000).
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＶＲやＭＲにより空間に仮想物体を重ねた仮想現実画像又は複合現実画像を生成する場合に、仮想物体を例えば空間内の地面の位置に合わせることが行われる。現実空間のアップベクトルと仮想物体に対するアップベクトルとが異なる場合には、仮想物体を移動させる方向を事前に設定しないと、操作者の意図する方向に仮想物体を移動させられないことになる。仮想視点を移動させるときも同様に、仮想視点を移動させる方向を事前に設定しないと、操作者の意図する方向に仮想視点を移動させられないことになる。
【０００８】
本発明は上記の点に鑑みてなされたものであり、操作者が意図する方向に仮想物体や仮想視点を移動させられるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、現実空間を撮像する撮像装置を視点として空間に仮想物体を重ねた複合現実画像を生成し、表示部に表示する情報処理装置であって、前記撮像装置のアップベクトル又は視線ベクトルと、前記空間の世界座標系を構成する軸の各軸ベクトルとが成す角度に基づいて、前記軸のうち、前記仮想物体の移動を拘束する移動軸を設定する設定手段と、前記設定手段で設定した軸に応じて定められる方向に、前記仮想物体を仮想的に移動させる移動手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、操作者が意図する方向に仮想物体を移動させることができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係るＭＲシステムの機能構成を示す図である。
【図２】第１の実施形態に係るＭＲシステムの概略構成を示す図である。
【図３】第１の実施形態におけるワークステーションによる処理手順を示すフローチャートである。
【図４】カメラのアップベクトルと世界座標系の各軸ベクトルとの関係を説明するための図である。
【図５】カメラのアップベクトルと世界座標系の各軸ベクトルとが成す角度を示す図である。
【図６】第１の実施形態における移動軸の判定処理の詳細を示すフローチャートである。
【図７】第１の実施形態における仮想物体の移動の概要を示す図である。
【図８】第２、第３の実施形態における仮想物体の移動の概要を示す図である。
【図９】第４の実施形態における仮想物体の移動の概要を示す図である。
【図１０】第５の実施形態における移動軸の判定処理の詳細を示すフローチャートである。
【図１１】カメラの視線ベクトルと世界座標系の各軸ベクトルとの関係を説明するための図である。
【図１２】カメラの視線ベクトルと世界座標系の各軸ベクトルとが成す角度を示す図である。
【図１３】第６の実施形態における移動軸の判定処理の詳細を示すフローチャートである。
【図１４】第６の実施形態における移動軸の判定処理の他の例の詳細を示すフローチャートである。
【図１５】カメラの第三のベクトルと世界座標系の各軸ベクトルとの関係を説明するための図である。
【図１６】カメラの第三のベクトルと世界座標系の各軸ベクトルとが成す角度を示す図である。
【図１７】第７の実施形態における移動軸の判定処理の詳細を示すフローチャートである。
【図１８】第７の実施形態における移動軸の判定処理の他の例の詳細を示すフローチャートである。
【図１９】第８の実施形態に係るＶＲシステムの機能構成を示す図である。
【図２０】カメラの視点と世界座標系の各軸ベクトルとの関係を説明するための図である。
【図２１】第９の実施形態におけるワークステーションによる処理手順を示すフローチャートである。
【図２２】ＭＲシステム及びＶＲシステムの変形例の概略構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
［第１の実施形態］
図１に、第１の実施形態に係るＭＲシステムの機能構成を示す。また、図２に、第１の実施形態に係るＭＲシステムの概略構成を示す。ＭＲシステムは、本発明を適用した情報処理装置として機能するワークステーション１００と、ワークステーション１００との通信機能を有する頭部装着ディスプレイ１５０（ＨＭＤ：Head Mount Display）とを備える。
ＨＭＤ１５０には、撮像装置であるカメラ１５１及び表示部１５２が搭載されている。本実施形態では、図２に示すように、ＨＭＤ１５０内にカメラ１５１及び表示部１５２がそれぞれ２基搭載されており、ステレオでの撮像及び表示が可能である。操作者はＨＭＤ１５０を頭部に装着することで、表示部１５２に映るステレオの複合現実画像を見ることができる。複合現実画像とは、カメラ１５１で撮像する現実空間に仮想物体を重ねた画像であり、表示部１５２には、カメラ１５１を視点とする複合現実画像が表示される。
【００１３】
図１に示すように、ワークステーション１００において、撮像画像取得部１０１は、カメラ１５１で撮像する撮像画像を取得して、データ記憶部１０２に保存する。
【００１４】
位置姿勢算出部１０３は、データ記憶部１０２に保存されている撮像画像に対して画像処理を行い、画像中の特徴点を用いて現実空間でのカメラ１５１の位置姿勢を算出し、データ記憶部１０２に保存する。本実施形態では、算出されるカメラ１５１の位置姿勢は、ユーザがＨＭＤ１５０を装着した場合にユーザの頭部の中心から頭頂部の方向に向かうアップベクトルを含んだパラメータである。カメラの位置姿勢を算出する処理については周知の技術であるので、その説明を省略する。現実空間での位置姿勢とは、世界座標系（現実空間の任意の１点を原点として、原点で直交する３軸（Ｘ軸、Ｙ軸、Ｚ軸）を持つ座標系）における位置姿勢である。図２に示すように、カメラ１５１で現実空間の指標２００を認識させ、指標２００上の１点を原点として、世界座標系におけるカメラ１５１の位置姿勢を算出することができる。現実空間での位置姿勢を算出する方法は、画像中の特徴点を用いる方法に限定されるものではなく、位置姿勢センサ（光学式センサ、磁気式センサ、超音波式センサ）を用いる方法でもよい。位置姿勢センサは計測対象に直接又は間接的に装着されており、位置姿勢センサの出力値は計測対象の位置姿勢を算出できるものである。
【００１５】
仮想空間生成部１０５は、仮想空間情報を生成する。仮想空間情報とは、仮想物体のデータを含む。仮想空間情報取得部１０４は、仮想空間生成部１０５で生成した仮想空間情報を取得し、仮想物体の位置姿勢を算出して、データ記憶部１０２に保存する。
【００１６】
イベント入力部１０６で仮想物体を移動するイベントが発生すると、位置姿勢算出部１０３は、カメラ１５１の位置姿勢、詳しくはカメラ座標系のアップベクトル（カメラの頭頂部の向き）と、世界座標系の各軸ベクトルとの関係に基づいて、仮想物体を移動させる。なお、イベントの入力方法は、ワークステーション１００のＧＵＩによる操作の他、キーボード、マウス、コントローラを使用してもよい。仮想物体を移動させる方向は、カメラ１５１のアップベクトルと世界座標系の各軸ベクトルとの関係を求める以外にも、画像認識により画像内の構造物の直線を検出し、直線の消失点から重力方向を検出することにより決定（例えば非特許文献１を参照）してもよい。
【００１７】
複合現実画像生成部１０７は、データ記憶部１０２に保存されている撮像画像及び仮想空間情報を用いて、視点から見える複合現実画像を生成する。
複合現実画像出力部１０８は、複合現実画像生成部１０７で生成した複合現実画像を表示部１５２に出力する。これにより、表示部１５２には、視点となるカメラ１５１の位置姿勢に応じた複合現実画像が表示されることになる。
【００１８】
図３に、第１の実施形態におけるワークステーション１００による処理手順を示す。図３のフローチャートの処理は、複合現実画像を１画像描画するごとに繰り返し行われる。
ステップＳ３０１で、撮像画像取得部１０１は、カメラ１５１で撮像する撮像画像を取得して、データ記憶部１０２に保存する。
ステップＳ３０２で、位置姿勢算出部１０３は、データ記憶部１０２に保存されている撮像画像に対して画像処理を行い、画像中の特徴点を用いて現実空間でのカメラ１５１の位置姿勢を算出し、データ記憶部１０２に保存する。
ステップＳ３０３で、仮想空間情報取得部１０４は、仮想空間生成部１０５で生成した仮想空間情報を取得し、データ記憶部１０２に保存する。
ステップＳ３０４で、仮想空間情報取得部１０４は、仮想物体の位置姿勢を算出し、データ記憶部１０２に保存する。
ステップＳ３０５で、仮想物体を移動するイベントが発生していれば、ステップＳ３０６に進み、イベントが発生していなければ、ステップＳ３０８に進む。
【００１９】
ステップＳ３０６で、仮想物体を移動させるための、すなわち仮想物体の移動を拘束する移動軸を判定する。位置姿勢算出部１０３は、図４に示すように、カメラ１５１のアップベクトル４０４と、世界座標系のＸ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３とが成す角度を算出する。なお、図４では、説明の簡略化のため、１台のカメラ１５１だけを図示する。図５（ａ）はアップベクトル４０４とＸ軸ベクトル４０１とが成す角度、図５（ｂ）はアップベクトル４０４とＹ軸ベクトル４０２とが成す角度、図５（ｃ）はアップベクトル４０４とＺ軸ベクトル４０３とが成す角度を示す。カメラ１５１のアップベクトル４０４と世界座標系の各軸ベクトル４０１〜４０３とが成す角度を算出した後、成す角度の値が最も小さい軸ベクトルを判定する。本実施形態では、成す角度を求めるためにｃｏｓθを用いる。図５（ａ）を例にＸ軸ベクトル４０１をＡ、アップベクトル４０４をＢとすると、ｃｏｓθ＝Ａ・Ｂ（Ａ・ＢはＸ軸ベクトル４０１とアップベクトル４０４との内積を表わす）で求めることができる。ｃｏｓθの値が１に最も近い軸ベクトルが、成す角度の最も小さい軸ベクトルであると判定して、その軸を移動軸とする。
【００２０】
図６に、ステップＳ３０６の移動軸の判定処理の詳細を示す。
ステップＳ６０１で、世界座標系の各軸ベクトル（Ｘ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３）の値を取得する。
ステップＳ６０２で、カメラ１５１のアップベクトル４０４の値を取得する。
ステップＳ６０３〜Ｓ６０５で、カメラ１５１のアップベクトル４０４と、Ｘ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３とが成す角度を算出する。
ステップＳ６０６で、ステップＳ６０３〜Ｓ６０５において算出した成す角度を比較し、値が最も小さい軸ベクトルを判定して、その軸を移動軸とする。判定した軸ベクトルの情報はデータ記憶部１０２に保存する。
【００２１】
図３に説明を戻して、ステップＳ３０７で、位置姿勢算出部１０３は、仮想物体の移動を行う。図７を参照して、仮想物体の移動の例を説明する。まず現実空間における所定の平面の座標値を取得し、ステップＳ３０６において判定した軸ベクトルと平行に仮想物体を所定の平面上に移動させる。所定の平面とは、例えば天井、地面、床、壁、箱、机等の現実物体の平面としてもよいし、現実空間内に仮想の平面があると仮定してもよい。現実空間における所定の平面は、ユーザにより予め設定しておけばよい。現実空間における平面の座標値を算出する処理については周知の技術（例えば特許文献３を参照）であるので、その説明を省略する。
例えばステップＳ３０６において移動軸がＺ軸（カメラ１５１のアップベクトル４０４と成す角度の値が最も小さい軸ベクトルがＺ軸ベクトル４０３）と判定したとする。この場合、所定の平面がＸＹ平面であるとして、図７（ａ）の状態にある仮想物体４０５を世界座標系のＺ軸と平行にＸＹ平面上に移動し、図７（ｂ）の状態にする。具体的には、まず現実空間における平面（ＸＹ平面）の座標値（ＸＹ平面のＺ軸の値）を算出する。そして、仮想物体４０５の位置及び大きさを計算し、図７（ａ）に示すように、仮想物体４０５のＺ軸における値が最小の点４０６の値を求める。点４０６の値を（ｘ，ｙ，ｚ）とした場合、図７（ｂ）に示すように、ＸＹ平面上に点４０６を移動させるには、値を（ｘ，ｙ，０）としてＸＹ平面上の値に一致させる。移動軸がＸ軸、Ｙ軸の場合は、それぞれの軸と平行に仮想物体４０５を所定の平面上に移動させる。移動後の仮想物体４０５の位置姿勢を求めて、データ記憶部１０２に保存する。
【００２２】
ステップＳ３０８で、複合現実画像生成部１０７は、データ記憶部１０２に保存されている仮想物体の位置姿勢を用いて、複合現実画像を生成する。
ステップＳ３０９で、複合現実画像出力部１０８は、ステップＳ３０８において生成した複合現実画像を表示部１５２に出力する。
【００２３】
以上のように、例えばユーザが正面を向いているときには、カメラ１５１のアップベクトルは垂直に近くなっている。この状況でユーザが仮想物体を移動させると（例えばコントローラで下カーソルを押す）、ユーザとしては自分の見ている画像に対して下方向（つまり、垂直方向）に仮想物体を移動させることができる。また、例えばユーザが下を向いているときには、カメラ１５１のアップベクトルは水平に近くなっている。この状況でユーザが仮想物体を移動させると、ユーザとしては自分の見ている画像に対して下方向（つまり、水平方向）に仮想物体を移動させることができる。
【００２４】
［第２の実施形態］
次に、第２の実施形態を説明する。なお、ＭＲシステムの構成及び基本動作は第１の実施形態と同様であり、以下では、第１の実施形態との相違点を中心に説明し、第１の実施形態との共通点についてはその説明を省略する。
第１の実施形態では、ステップＳ３０７において、図７に示すように、仮想物体４０５を移動させる方法として、仮想物体４０５のＺ軸における値が最小の点４０６の値を求めて、点４０６をＸＹ平面上の値となるように移動させた。
それに対して、第２の実施形態では、図８（ａ）に示すように、仮想物体４０５のＺ軸における値が最大の点４０７を求めて、点４０７がＸＹ平面上の値となるように移動させるようにした。
【００２５】
［第３の実施形態］
次に、第３の実施形態を説明する。なお、ＭＲシステムの構成及び基本動作は第１の実施形態と同様であり、以下では、第１の実施形態との相違点を中心に説明し、第１の実施形態との共通点についてはその説明を省略する。
第１、第２の実施形態では、ステップＳ３０７において、図７、図８（ａ）に示すように、仮想物体４０５を移動させる方法として、仮想物体４０５のＺ軸における値が最小の点４０６又は最大の点４０７の値を求めて、点４０６又は点４０７がＸＹ平面上の値となるように移動させた。
それに対して、第３の実施形態では、図８（ｂ）に示すように、仮想物体４０５のＺ軸における値が最小又は最大となる以外の点４０８の値を求めて、点４０８がＸＹ平面上の値となるように移動させるようにした。
【００２６】
［第４の実施形態］
次に、第４の実施形態を説明する。なお、ＭＲシステムの構成及び基本動作は第１の実施形態と同様であり、以下では、第１の実施形態との相違点を中心に説明し、第１の実施形態との共通点についてはその説明を省略する。
第１〜第３の実施形態では、ステップＳ３０７において、図７、図８に示すように、仮想物体４０５を移動させる方法として、仮想物体４０５のＺ軸における点４０６、４０７又は４０８の値を求めて、点４０６、４０７又は４０８がＸＹ平面上の値となるように移動させた。
それに対して、第４の実施形態では、図９（ａ）に示すように、仮想物体９０１の面（例えば平面９０２）を選択して、図９（ｂ）に示すように、選択した平面９０２がＸＹ平面上の値となるように移動させるようにした。また、面以外にも、仮想物体の線（例えば直線）を選択して、選択した線が所定の平面上の値となるように移動させてもよい。
【００２７】
［第５の実施形態］
次に、第５の実施形態を説明する。なお、ＭＲシステムの構成及び基本動作は第１の実施形態と同様であり、以下では、第１の実施形態との相違点を中心に説明し、第１の実施形態との共通点についてはその説明を省略する。
第５の実施形態では、第１の実施形態と比べて、移動軸の判定処理を変更している。
図１０に、ステップＳ３０６の移動軸の判定処理の詳細を示す。なお、図６と同じ処理については同じ符号を付し、その説明を省略する。
第１乃至第４の実施形態では、ステップＳ３０５において仮想物体を移動させると判定した場合、ステップＳ３０６に進み、図６の処理で、成す角度の計算を毎回実行する。
それに対して、第５の実施形態では、ステップＳ３０５において仮想物体を移動させると判定した場合、ステップＳ３０６に進み、図１０の処理で、まずステップＳ１００１で、仮想物体の移動軸が決定済かどうかを判定する。その結果、移動軸が決定済みの場合は本処理を抜け、移動軸が未決定の場合だけステップＳ６０１〜Ｓ６０６の処理を実行し、移動軸を判定する。
【００２８】
［第６の実施形態］
次に、第６の実施形態を説明する。なお、ＭＲシステムの構成及び基本動作は第１の実施形態と同様であり、以下では、第１の実施形態との相違点を中心に説明し、第１の実施形態との共通点についてはその説明を省略する。
第１乃至第５の実施形態では、カメラ１５１のアップベクトルと、世界座標系の各軸ベクトルとの関係に基づいて、仮想物体を移動させる。
それに対して、第６の実施形態では、カメラ１５１の視線ベクトルと、世界座標系の各軸ベクトルとの関係に基づいて、仮想物体を移動させるようにした。
【００２９】
図３のステップＳ３０６で、仮想物体を移動させるための移動軸を判定する。位置姿勢算出部１０３は、図１１に示すように、カメラ１５１の視線ベクトル１１０１と、世界座標系のＸ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３とが成す角度を算出する。なお、図１１では、説明の簡略化のため、１台のカメラ１５１だけを図示する。図１２（ａ）は視線ベクトル１１０１とＸ軸ベクトル４０１とが成す角度、図１２（ｂ）は視線ベクトル１１０１とＹ軸ベクトル４０２とが成す角度、図１２（ｃ）は視線ベクトル１１０１とＺ軸ベクトル４０３とが成す角度を示す。カメラ１５１の視線ベクトル１１０１と世界座標系の各軸ベクトル４０１〜４０３とが成す角度を算出した後、成す角度の値が最も小さい軸ベクトルを判定する。第１の実施形態と同様、ｃｏｓθの値が１に最も近い軸ベクトルが、成す角度の最も小さい軸ベクトルであると判定して、その軸を移動軸とする。
【００３０】
図１３に、ステップＳ３０６の移動軸の判定処理の詳細を示す。
ステップＳ６０１で、世界座標系の各軸ベクトル（Ｘ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３）の値を取得する。
ステップＳ１３０１で、カメラ１５１の視線ベクトル１１０１の値を取得する。
ステップＳ１３０２〜Ｓ１３０４で、カメラ１５１の視線ベクトル１１０１と、Ｘ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３とが成す角度を算出する。
ステップＳ６０６で、ステップＳ１３０２〜Ｓ１３０４において算出した成す角度を比較し、値が最も小さい軸ベクトルを判定して、その軸を移動軸とする。判定した軸ベクトルの情報はデータ記憶部１０２に保存する。
【００３１】
なお、この場合も、図１４に示すように、第５の実施形態で説明したのと同様、まずステップＳ１００１で、仮想物体の移動軸が決定済かどうかを判定するようにしてもよい。
【００３２】
［第７の実施形態］
次に、第７の実施形態を説明する。なお、ＭＲシステムの構成及び基本動作は第１の実施形態と同様であり、以下では、第１の実施形態との相違点を中心に説明し、第１の実施形態との共通点についてはその説明を省略する。
第１乃至第５の実施形態では、カメラ１５１のアップベクトルと、世界座標系の各軸ベクトルとの関係に基づいて、仮想物体を移動させる。また、第６の実施形態では、カメラ１５１の視線ベクトルと、世界座標系の各軸ベクトルとの関係に基づいて、仮想物体を移動させる。
それに対して、第７の実施形態では、カメラ１５１のアップベクトル及び視線ベクトルと直交する第三のベクトルと、世界座標系の各軸ベクトルとの関係に基づいて、仮想物体を移動させるようにした。
【００３３】
図３のステップＳ３０６で、仮想物体を移動させるための移動軸を判定する。位置姿勢算出部１０３は、図１５に示すように、カメラ１５１のアップベクトル４０４及び視線ベクトル１１０１と直交する第三のベクトル１５０１と、世界座標系のＸ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３とが成す角度を算出する。なお、図１５では、説明の簡略化のため、１台のカメラ１５１だけを図示する。図１６（ａ）は第三のベクトル１５０１とＸ軸ベクトル４０１とが成す角度、図１６（ｂ）は第三のベクトル１５０１とＹ軸ベクトル４０２とが成す角度、図１６（ｃ）は第三のベクトル１５０１とＺ軸ベクトル４０３とが成す角度を示す。カメラ１５１の第三のベクトル１５０１と世界座標系の各軸ベクトル４０１〜４０３とが成す角度を算出した後、成す角度の値が最も小さい軸ベクトルを判定する。第１の実施形態と同様、ｃｏｓθの値が１に最も近い軸ベクトルが、成す角度の最も小さい軸ベクトルであると判定して、その軸を移動軸とする。
【００３４】
図１７に、ステップＳ３０６の移動軸の判定処理の詳細を示す。
ステップＳ６０１で、世界座標系の各軸ベクトル（Ｘ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３）の値を取得する。
ステップＳ１７０１で、カメラ１５１の第三のベクトル１５０１の値を取得する。
ステップＳ１７０２〜Ｓ１７０４で、カメラ１５１の第三のベクトル１５０１と、Ｘ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３とが成す角度を算出する。
ステップＳ６０６で、ステップＳ１７０２〜Ｓ１７０４において算出した成す角度を比較し、値が最も小さい軸ベクトルを判定して、その軸を移動軸とする。判定した軸ベクトルの情報はデータ記憶部１０２に保存する。
【００３５】
なお、この場合も、図１８に示すように、第５の実施形態で説明したのと同様、まずステップＳ１００１で、仮想物体の移動軸が決定済かどうかを判定するようにしてもよい。
【００３６】
［第８の実施形態］
第１〜第７の実施形態では、複合現実画像を生成し、表示部１５２に表示するＭＲシステムを例に説明したが、本発明は、仮想現実画像を生成し、表示部１５２に表示するＶＲシステムに適用可能である。
図１９に、実施形態に係るＶＲシステムの機能構成を示す。なお、図１と同様の構成には同一の符号を付し、その説明を省略する。
仮想空間生成部１０５は、カメラ１５１を視点とする仮想空間を構築する。すなわち、仮想空間の世界座標は、現実空間の世界座標に合うように設定される。また、仮想空間情報を生成する。仮想空間情報とは、仮想物体のデータを含む。
仮想現実画像生成部１９０１は、データ記憶部１０２に保存されている仮想空間及び仮想空間における仮想物体の位置姿勢を用いて、視点から見える仮想現実画像を生成する。
仮想現実画像出力部１９０２は、仮想現実画像生成部１９０１で生成した仮想現実画像を表示部１５２に出力する。これにより、表示部１５２には、視点となるカメラ１５１の位置姿勢に応じた仮想現実画像が表示されることになる。
なお、第８の実施形態におけるワークステーション１００による処理手順は、図３に示すものと同様であり、複合現実画像でなく仮想現実画像を生成、表示する点が相違する。
【００３７】
［第９の実施形態］
第９の実施形態では、ＶＲシステムにおいて仮想視点を移動させる例を説明する。
ＶＲシステムの機能構成は、第８の実施形態で説明した図１９と同様である。本実施形態に係るＶＲシステムでは、イベント入力部１０６で視点を移動するイベントが発生すると、位置姿勢算出部１０３は、カメラ１５１の位置姿勢、詳しくはカメラ座標系のアップベクトル（カメラの頭頂部の向き）と、世界座標系の各軸ベクトルとの関係に基づいて、仮想視点を移動させる。ここで、仮想視点とは、図２０に示すように、視点となるカメラ１５１を仮想的に移動させた仮想カメラ２２５での視点である。なお、イベントの入力方法は、第１の実施形態で述べたのと同様である。
なお、本実施形態では、カメラ１５１のアップベクトルを例にするが、視線ベクトルや第三のベクトルを世界座標系の各軸ベクトルと比較する形態でもよいことはいうまでもない。
【００３８】
図２１に、第９の実施形態におけるワークステーション１００による処理手順を示す。第９の実施形態におけるワークステーション１００による処理手順は、複合現実画像でなく仮想現実画像を生成、表示する点、及び仮想物体でなく仮想視点を移動させる（移動軸が視点の移動を拘束する）点で図３のフローチャートと相違する。以下では、図３のフローチャートとの相違点を中心に説明し、図３のフローチャートと同様の処理には同一の符号を付して、その説明を省略する。図２１のフローチャートの処理は、仮想現実画像を１画像描画するごとに繰り返し行われる。
【００３９】
ステップＳ２１０１で、仮想視点を移動するイベントが発生していれば、ステップＳ２１０２に進み、イベントが発生していなければ、ステップＳ３０８に進む。
【００４０】
ステップＳ２１０２で、各実施形態で説明したように、仮想視点を移動させるための移動軸を判定する。例えば位置姿勢算出部１０３は、カメラ１５１のアップベクトルと、世界座標系のＸ軸ベクトル４０１、Ｙ軸ベクトル４０２、Ｚ軸ベクトル４０３とが成す角度を算出し、成す角度の値が最も小さい軸ベクトルを判定する。その結果、例えば移動軸がＺ軸と判定したとする。
【００４１】
ステップ２１０３で、位置姿勢算出部１０３は、仮想視点の移動を行う。図２２を参照して、仮想視点の移動の例を説明する。ステップ２１０２において判定した軸ベクトルと平行に、すなわち移動軸がＺ軸であれば、図２０中の方向２２４にゲームコントローラを用いて仮想視点を移動させる。ゲームコントローラによる視点操作は既知であるためその説明を割愛する。移動後の仮想視点、すなわち仮想カメラ２２５の位置姿勢を求めて、データ記憶部１０２に保存する。
なお、各実施形態では、移動軸を判定した後、その移動軸と平行に仮想物体や仮想視点を移動させる例を説明したが、移動軸の判定と同様の手法で軸を判定した後、その軸に応じて定められる方向に仮想物体や仮想視点を移動させるようにしてもよい。例えば判定した軸と垂直に移動させると定められていてもよい。本実施形態の例でいえば、ステップ２１０２において判定した軸と垂直に、すなわち軸がＺ軸であれば、図２０中の方向２２２や方向２２３に仮想視点を移動させるようにしてもよい。
【００４２】
以上のように、例えばユーザが正面を向いているときには、カメラ１５１のアップベクトルは垂直に近くなっている。この状況でユーザが仮想視点を移動させると（例えばコントローラで下カーソルを押す）、ユーザとしては自分の見ている画像に対して垂直方向又は水平方向に仮想視点を移動させることができる。
また、本実施形態では自動的に仮想視点の移動方向を決定しているが、ユーザ操作により設定した移動軸に基づく方向や他のシステムが決定した方向を利用してもよい。このとき、他のシステムが決定した方向を基準として、仮想視点を平行又は垂直に移動させる。
【００４３】
以上述べた第１〜第９の実施形態では、ＨＭＤ１５０を例に説明したが、本発明は、ＨＭＤを用いない場合でも適用可能である。
例えば図２２に示すように、本発明を適用した情報処理装置として機能するワークステーション１００と、撮像装置であるカメラ１５１と、表示部１５２となる表示装置とにより構成するようにしてもよい。
また、ステレオでの撮像及び表示を行うことに限定されるものではなく、少なくとも１つ以上のカメラ及び表示部があればよい。また、ＨＭＤを用いる場合でも、ＨＭＤにカメラが搭載されておらず、カメラが別に設置されていてもよい。また、例えば現実空間を透過する機構を備える光学式タイプでもよい。また、ＨＭＤではなく、手持ち型表示装置のＨＨＤ（Hand Held Display）を用いてもよい。
【００４４】
以上、本発明を実施形態と共に説明したが、上記実施形態は本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４５】
１００:ワークステーション、１５０：頭部装着ディスプレイ、１５１：カメラ、１５２：表示部
【図１】
0006800599.tif 000002
【図２】
0006800599.tif 000003
【図３】
0006800599.tif 000004
【図４】
0006800599.tif 000005
【図５】
0006800599.tif 000006
【図６】
0006800599.tif 000007
【図７】
0006800599.tif 000008
【図８】
0006800599.tif 000009
【図９】
0006800599.tif 000010
【図１０】
0006800599.tif 000011
【図１１】
0006800599.tif 000012
【図１２】
0006800599.tif 000013
【図１３】
0006800599.tif 000014
【図１４】
0006800599.tif 000015
【図１５】
0006800599.tif 000016
【図１６】
0006800599.tif 000017
【図１７】
0006800599.tif 000018
【図１８】
0006800599.tif 000019
【図１９】
0006800599.tif 000020
【図２０】
0006800599.tif 000021
【図２１】
0006800599.tif 000022
【図２２】
0006800599.tif 000023