(57)【特許請求の範囲】
【請求項１】
仮想空間中に設定された視点の位置姿勢の変化量を受けて該仮想空間の画像を生成するソフトウェア、を実行する情報処理装置が行う情報処理方法であって、
第１の計算手段が、特徴点が配された仮想空間を前記視点から見た仮想空間画像を前記ソフトウェアを実行することで生成し、該生成した仮想空間画像中の特徴点を用いて前記視点の位置姿勢を求める第１の計算工程と、
取得手段が、前記仮想空間内の指定された位置姿勢を取得する取得工程と、
第２の計算手段が、前記取得工程で取得した位置姿勢と、前記第１の計算工程で求めた位置姿勢と、の変化量を求める第２の計算工程と、
入力手段が、前記第２の計算工程で求めた変化量を、前記視点の位置姿勢の変化量として前記ソフトウェアに入力する入力工程と、
出力手段が、前記ソフトウェアが前記第２の計算工程で求めた変化量に基づいて前記視点の位置姿勢を更新し、該更新した位置姿勢を有する視点に基づいて生成した仮想空間画像、を出力する出力工程と
を備えることを特徴とする情報処理方法。
【請求項２】
前記取得工程では、ユーザにより位置姿勢を操作可能な操作具の位置姿勢を検出し、該検出した位置姿勢を、前記指定された位置姿勢として取得することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記取得工程では、ユーザにより位置姿勢を操作可能な操作具の位置姿勢を検出し、該検出した位置姿勢を前記仮想空間における位置姿勢に変換した結果を、前記指定された位置姿勢として取得することを特徴とする請求項１に記載の情報処理方法。
【請求項４】
更に、画像取得手段が、前記視点から見える現実空間の画像を取得する画像取得工程を備え、
前記出力工程では、前記ソフトウェアが生成した仮想空間画像を前記画像取得工程で取得した現実空間の画像と合成して出力することを特徴とする請求項１又は２に記載の情報処理方法。
【請求項５】
仮想空間中に設定された視点の位置姿勢の変化量を受けて該仮想空間の画像を生成するソフトウェア、を実行する情報処理装置であって、
特徴点が配された仮想空間を前記視点から見た仮想空間画像を前記ソフトウェアを実行することで生成し、該生成した仮想空間画像中の特徴点を用いて前記視点の位置姿勢を求める第１の計算手段と、
前記仮想空間内の指定された位置姿勢を取得する取得手段と、
前記取得手段で取得した位置姿勢と、前記第１の計算手段が求めた位置姿勢と、の変化量を求める第２の計算手段と、
前記第２の計算手段で求めた変化量を、前記視点の位置姿勢の変化量として前記ソフトウェアに入力する入力手段と、
前記ソフトウェアが前記第２の計算手段が求めた変化量に基づいて前記視点の位置姿勢を更新し、該更新した位置姿勢を有する視点に基づいて生成した仮想空間画像を、出力する出力手段と
を備えることを特徴とする情報処理装置。
【請求項６】
仮想空間中に設定された視点の位置姿勢の変化量を受けて該仮想空間の画像を生成するソフトウェア、を実行するコンピュータを、
特徴点が配された仮想空間を前記視点から見た仮想空間画像を前記ソフトウェアを実行することで生成し、該生成した仮想空間画像中の特徴点を用いて前記視点の位置姿勢を求める第１の計算手段、
前記仮想空間内の指定された位置姿勢を取得する取得手段、
前記取得手段で取得した位置姿勢と、前記第１の計算手段が求めた位置姿勢と、の変化量を求める第２の計算手段、
前記第２の計算手段が求めた変化量を、前記視点の位置姿勢の変化量として前記ソフトウェアに入力する入力手段、
前記ソフトウェアが前記第２の計算手段が求めた変化量に基づいて前記視点の位置姿勢を更新し、該更新した位置姿勢を有する視点に基づいて生成した仮想空間画像を、出力する出力手段
として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックス技術に関するものである。
【背景技術】
【０００２】
CG（コンピュータグラフィックス）は、仮想の世界をコンピュータによって画面上に描画する為の技術である。また、CGソフトは、コンピュータによってCGを作り出すソフトである。CGソフトはさまざまな分野に用いられ、例えば、建築設計や製品設計、映画などの映像製作に用いられている。
【０００３】
CGは、仮想のカメラによって仮想世界を撮影する事で得られる映像であると言える。ユーザが自由な視点から仮想世界を見られるよう、CGソフトには通常、この仮想のカメラの視点をマウスやキーボードなどの入力装置によって動かすための機構が備わっている。
【０００４】
CGソフトにおいて、視点の操作は、現在の視点の位置姿勢からの変化値を入力していくことによってなされる。仮想世界において、視点が持つ自由度は、位置の３自由度と、向きの３自由度を合わせて６自由度である。すなわち、ＸＹＺ直交座標系においては、Ｘ、Ｙ、Ｚ軸上の位置、Ｘ、Ｙ、Ｚ軸回りの回転の６自由度である。このそれぞれの値について、視点の現在の６自由度からの変化値を入力していくことで、視点の連続的な移動が実現される。
【０００５】
CGソフトでは、この６自由度の変化値を入力するために、キーボードやマウスが用いられている。ここで、マウスは縦方向および横方向の２自由度の入力しかできないため、多くのCGソフトでは、キーボードとマウスの組み合わせなどによって６自由度の入力ができるようになっている。たとえば、キーボードでXキーを押しながらマウスを操作した場合には、X軸回りの回転が変化する、などといったものである。また、一方で、６自由度の入力ができる６自由度マウスを用いて６自由度の変化値を入力することも行われている。
【０００６】
また、近年、VR（バーチャルリアリティ）システムと呼ばれる技術が多くの分野で利用されている。VRシステムとは、コンピュータの作り出すCGをHMD（ヘッドマウントディスプレイ）を装着したユーザに提示することで、仮想の空間をあたかも現実であるかのように感じさせる技術である。VRシステムでは、ユーザの頭部の動きに合わせてユーザに提示されるCGが変化するため、ユーザはあたかも自分の周囲にCGが存在しているかのように感じることができる。
【０００７】
また、近年、現実空間の映像にCGを重ねてHMDを装着したユーザに提示することで、VRシステムでは見ることができなかった現実世界をユーザに提示する技術の開発もなされており、それらはMR（Mixed Reality, 複合現実感）システムと呼ばれている（特許文献１参照）。
【特許文献１】特登録３３６３８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
VRシステムやMRシステムでは、HMDの位置および姿勢の情報を磁気センサなどの６自由度センサで取得し、その位置姿勢情報をCGを描画する仮想のカメラの視点の位置姿勢に置き換えることで、ユーザの視点から見た仮想世界の映像を描き出している。
【０００９】
VRシステムやMRシステムではCGを用いるため、CGソフトを描画部として利用したシステムを構築することも可能である。
【００１０】
CGソフトをCGの描画部として利用したVRシステムを構築するためには、あらかじめ、CGソフトに６自由度センサからの位置姿勢情報を受け取れるような機構を備えさせる必要がある。また、多様な６自由度センサに対応するためには、CGソフトに一つ一つのセンサに対応した位置姿勢情報の受け入れ機構を備えさせねばならない。
【００１１】
通常、CGソフトには視点の操作方法として、変化値を受け入れる機構しか備えられていないため、CGソフトをCGの描画部として利用したVRシステムを構築するためには、CGソフトのコンピュータプログラムに対して改変を加えなければならない。そのため、CGソフトをCGの描画部として利用したVRシステムを構築することができることは、非常にまれである。
【００１２】
また、CGソフトをCGの描画部として利用したMRシステムを構築するためには、CGソフトに６自由度センサからの位置姿勢情報を受け取れるような機構を備えさせる必要があるのに加えて、さらに、現実世界の映像を取り込み、CGとの合成を行う機構を備えさせる必要がある。現在のところ、こうした機構を備えたCGソフトは存在していない。
【００１３】
以上のことから、現在、CGソフトをCGの描画部として利用したVRシステムやMRシステムを構築することは困難であり、VRシステムやMRシステムを構築するためには、VRシステムやMRシステムごとにCGの描画部を一から作ることが一般的である。しかしながら、このようにVRシステムやMRシステムごとに描画部をいちいち作り直していては、さまざまなCGソフトの機能をVRシステムやMRシステムに生かすことができない。
【００１４】
本発明は以上の問題に鑑みてなされたものであり、既存のCGソフトをCGの描画部として利用したVRシステムやMRシステムを構築できるようにし、多様なCGソフトの機能を生かしたままVR体験やMR体験を可能にするための技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００１６】
即ち、仮想空間中に設定された視点の位置姿勢の変化量を受けて該仮想空間の画像を生成するソフトウェア、を実行する情報処理装置が行う情報処理方法であって、
第１の計算手段が、特徴点が配された仮想空間を前記視点から見た仮想空間画像を前記ソフトウェアを実行することで生成し、該生成した仮想空間画像中の特徴点を用いて前記視点の位置姿勢を求める第１の計算工程と、
取得手段が、前記仮想空間内の指定された位置姿勢を取得する取得工程と、
第２の計算手段が、前記取得工程で取得した位置姿勢と、前記第１の計算工程で求めた位置姿勢と、の変化量を求める第２の計算工程と、
入力手段が、前記第２の計算工程で求めた変化量を、前記視点の位置姿勢の変化量として前記ソフトウェアに入力する入力工程と、
出力手段が、前記ソフトウェアが前記第２の計算工程で求めた変化量に基づいて前記視点の位置姿勢を更新し、該更新した位置姿勢を有する視点に基づいて生成した仮想空間画像、を出力する出力工程と
を備えることを特徴とする。
【発明の効果】
【００２３】
本発明の構成によれば、既存のCGソフトをCGの描画部として利用したVRシステムやMRシステムを構築できるようにし、多様なCGソフトの機能を生かしたままVR体験やMR体験を可能にすることができる。
【発明を実施するための最良の形態】
【００２４】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２５】
［第１の実施形態］
本実施形態では、従来のＣＧソフトウェアをＶＲシステムに適用した場合における技術について説明する。より詳しくは視点の位置姿勢を変化させる為に、その変化量しか受け付けない従来のＣＧソフトウェアを用いてＶＲシステムを実現する。
【００２６】
図１は、本実施形態に係るＶＲシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るＶＲシステムは、ＣＧ描画部１０１、表示部１０２、視点計算部１０３、変換部１０５、測定部１０４により構成されている。以下、各部について説明する。
【００２７】
ＣＧ描画部１０１は、仮想空間中に設定された視点に基づいてこの仮想空間の画像（仮想空間画像）を生成する機能を有するＣＧソフトウェアとその実行部により構成されており、このＣＧソフトウェアは、この視点の位置姿勢を変化させるためにその変化量を受け付ける。このようなＣＧソフトウェアには、例えば、市販されている製品設計用CADソフトや映像制作用CGソフトが適用可能である。従って、ＣＧ描画部１０１は、本システムと切り離して、単独のアプリケーションとして用いることができ、その場合、ユーザは図示しないキーボードやマウスによって、視点を任意に操作して、仮想世界を所望の視点から眺めることができる。なお、ＣＧ描画部１０１により生成された仮想空間画像は、表示部１０２に送出される。
【００２８】
表示部１０２はＣＲＴや液晶画面などにより構成されており、ＣＧ描画部１０１によって生成された仮想空間画像を表示する。
【００２９】
視点計算部１０３は、ＣＧ描画部１０１が生成した仮想空間画像を受け、この仮想空間画像を生成するために仮想空間中に設定された視点の位置姿勢を、この仮想空間画像から求める処理を行う。一般にＣＧソフトウェアが仮想空間画像を生成するために仮想空間中に設定した視点の位置姿勢は、このソフトウェアから取得することはできない。そこで本実施形態では、ＣＧソフトウェアを実行することで生成された仮想空間画像から、視点の位置姿勢を求めることにする。視点計算部１０３が求めた視点の位置姿勢は位置姿勢情報として変換部１０５に送出される。
【００３０】
測定部１０４は、ユーザがその位置姿勢を操作可能な操作具の位置姿勢を測定する為のものである。例えば、測定部１０４には、図８に示すような磁気センサシステムを適用することができる。図８は、測定部１０４に適用可能な磁気センサシステムの概略構成を示す図である。
【００３１】
図８において８０２は磁場の発信源で、周囲に磁場を発生させる。８０３は上記操作具として用いるレシーバで、発信源８０２から発せられる磁場における自身の位置姿勢に応じた磁気を検知し、検知した結果を示す信号（検知信号）をコントロールボックス８０１に送出する。コントロールボックス８０１は、発信源８０２、レシーバ８０３の動作制御を行うと共に、レシーバ８０３から検知信号を受けると、これに基づいて、発信源８０２の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系（センサ座標系）８０４におけるレシーバ８０３の位置姿勢を求める処理を行う。
【００３２】
以上の構成により求めた位置姿勢は位置姿勢情報として変換部１０５に送出する。なお、測定部１０４によって操作具の位置姿勢を測定する為の構成については様々なものがあり、特に限定するものではない。
【００３３】
図１に戻って、変換部１０５は、測定部１０４から受けた位置姿勢情報と視点計算部１０３から受けた位置姿勢情報とを用いて、上記視点の位置姿勢の変化量を求め、求めた変化量を視点情報としてＣＧ描画部１０１に送出する。
【００３４】
ＣＧ描画部１０１は、この変化量を受けると、周知の如く、現在の視点の位置姿勢にこの変化量を加えて視点の位置姿勢を更新し、更新した位置姿勢を有する視点から見える仮想空間画像を生成する。そして生成した仮想空間画像を表示部１０２に送出する。
【００３５】
図９は、本実施形態に係るシステムのハードウェア構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、コンピュータ９００と上記コントロールボックス８０１、発信源８０２、そして操作具としてのレシーバ８０３により構成されている。コントロールボックス８０１、発信源８０２、そして操作具としてのレシーバ８０３については上述の通りであるので、以下ではコンピュータ９００について説明する。
【００３６】
９０１はＣＰＵで、ＲＡＭ９０２やＲＯＭ９０３に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、本コンピュータが行う後述の各処理を実行する。
【００３７】
９０２はＲＡＭで、外部記憶装置９０６からロードされたプログラムやデータ、Ｉ／Ｆ９０７を介してコントロールボックス８０１から入力される位置姿勢情報などを一時的に記憶するためのエリアや、ＣＰＵ９０１が各処理を実行する為に用いるワークエリアなどを有する。即ち、ＲＡＭ９０２は、各種のエリアを適宜提供することができる。
【００３８】
９０３はＲＯＭで、本コンピュータの設定データやブートプログラムなどを格納する。
【００３９】
９０４は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ９０１に対して入力することができる。
【００４０】
９０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ９０１による処理結果を画像や文字などでもって表示することができる。
【００４１】
９０６は外部記憶装置で、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、ここにはＯＳ（オペレーティングシステム）や、本コンピュータが行う後述の各処理をＣＰＵ９０１に実行させるためのプログラム（例えば、上記ＣＧ描画部１０１を構成するＣＧソフトウェア、視点計算部１０３、変換部１０５を実現するプログラム）やデータ（例えば、仮想空間を構成する各仮想物体を描画するためのデータ）が保存されている。これらのプログラムやデータは、ＣＰＵ９０１による制御に従って適宜ＲＡＭ９０２にロードされ、ＣＰＵ９０１による処理対象となる。
【００４２】
９０７はＩ／Ｆで、コントロールボックス８０１を本コンピュータに接続するためのインターフェースとして機能するものである。なお、その他の機器をこのＩ／Ｆ９０７に接続しても良い。
【００４３】
９０８は上述の各部を繋ぐバスである。
【００４４】
次に、従来のＣＧソフトウェアをＣＧの描画部として利用する場合に、上記構成を有するシステムを用いてＶＲシステムを実現する処理について、同処理のフローチャートを示す図２を用いて以下説明する。なお、同図のフローチャートに従った処理をＣＰＵ９０１に実行させる為のプログラムやデータは外部記憶装置９０６に保存されている。そして、このプログラムやデータはＣＰＵ９０１による制御に従ってＲＡＭ９０２にロードされる。そしてＣＰＵ９０１がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。
【００４５】
先ず、ステップＳ２０１では、仮想空間中に設定される視点の位置姿勢を求めるために用いる仮想物体（視点位置姿勢計算用モデル）のデータを外部記憶装置９０６からＲＡＭ９０２にロードし、ロードされたデータを用いて視点位置姿勢計算用モデルを生成し、仮想空間中に配置する。
【００４６】
図５は、仮想空間中における視点位置姿勢計算用モデルを示す図である。同図において５０１は仮想空間中に予め設定されている座標系（仮想空間座標系）である。仮想空間座標系は、仮想空間中の所定の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。
【００４７】
また同図において５０２は視点位置姿勢計算用モデルで、この座標系内で所定の位置（既知の位置）に配置されるものである。本実施形態では、この視点位置姿勢計算用モデルには、矩形の板状のもので且つ、面上には予め定められた模様がテクスチャとして張り付けられているものを用いる。しかし、視点位置姿勢計算用モデルに適用可能なモデルはこれに限定するものではない。また、配置する視点位置姿勢計算用モデルの数は２以上であっても良い。
【００４８】
図２に戻って、ステップＳ２０２では先ず、予め配置するものとして設定された仮想物体、若しくは、操作者が操作部９０４を用いて配置指示した仮想物体を仮想空間中に配置する。
【００４９】
図６は、図５に示した仮想空間に更に、仮想物体を配置した場合の仮想空間を示す図である。なお、同図において図５に示したものと同じものについては同じ番号を付けている。図６において、６０１は、予め配置するものとして設定された仮想物体、若しくは、操作者が操作部９０４を用いて配置指示した仮想物体である。６０２は、この仮想空間の画像を生成するために配置された視点（仮想カメラ）を示す。
【００５０】
そしてステップＳ２０２では更に、このような仮想空間を設定された視点（図６では視点６０２）から見た場合に見える画像を仮想空間画像として生成する。図７は、図６に示す仮想空間を視点６０２から見た場合に見える仮想空間画像を示す図である。同図に示す如く、仮想空間画像７０１内には、視点６０２から見える仮想物体６０１、視点位置姿勢計算用モデル５０２が描画されている。
【００５１】
以上説明したステップＳ２０１，Ｓ２０２における処理は、視点位置姿勢計算用モデル、配置仮想物体のデータを用いて一般のＣＧソフトウェアを実行すればなされる処理である。
【００５２】
次に、ステップＳ２０３では、ステップＳ２０２で生成した仮想空間画像を用いて、この仮想空間画像を生成するために用いた視点の位置姿勢を求める。一般に、３次元位置が既知である特徴点を複数配置した空間の画像を撮像し、撮像した画像内における特徴点の位置を用いれば、画像を撮影したカメラの位置姿勢を求めることができる。
【００５３】
従って、１つの視点位置姿勢計算用モデルを１つの特徴点と見なして複数仮想空間中に配置するか、視点位置姿勢計算用モデルの面上に複数の特徴点を設け、この視点位置姿勢計算用モデルが配置された仮想空間の画像を生成すれば、この画像から、この画像を生成するために用いた視点の位置姿勢を求めることができる。なお、画像からこの画像の視点の位置姿勢を求めるための技術については様々なものがあり、何れかに限定するものではない。
【００５４】
何れにせよ、本実施形態では、ステップＳ２０２で生成した画像中における特徴点を用いて、この画像の視点の位置姿勢を求める。ここでこの視点の位置姿勢は上述の通り、仮想空間におけるものである。
【００５５】
次にステップＳ２０４では、レシーバ８０２の位置姿勢を示す信号（位置姿勢情報）がコントロールボックス８０１からＩ／Ｆ９０７を介して本コンピュータに入力されるので、これをデータとしてＲＡＭ９０２に取得する。この取得したデータが示す位置姿勢は上述の通り、センサ座標系におけるものである。
【００５６】
次にステップＳ２０５では先ず、上記ステップＳ２０３で求めた視点の位置姿勢と、上記ステップＳ２０４で取得したレシーバ８０２の位置姿勢とが同じ空間におけるものとするために、何れか一方、若しくは両方を変換する処理を行う。例えば、視点の位置姿勢とレシーバ８０２の位置姿勢とを仮想空間における位置姿勢で取り扱うためには、レシーバ８０２の位置姿勢を仮想空間におけるものとするために、レシーバ８０２の位置姿勢を変換する必要がある。この場合、予め、仮想空間座標系とセンサ座標系との位置姿勢関係をバイアスとして求めておき、このバイアスをステップＳ２０４で取得したレシーバ８０２の位置姿勢に加えることで、仮想空間座標系におけるレシーバ８０２の位置姿勢を求めることができる。
【００５７】
また、視点の位置姿勢とレシーバ８０２の位置姿勢とを世界座標系（現実空間中の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系）における位置姿勢で取り扱うためには、予め世界座標系とセンサ座標系との位置姿勢関係をバイアス１、世界座標系と仮想空間座標系との位置姿勢関係をバイアス２として求めておく。そして、バイアス１をステップＳ２０４で取得したレシーバ８０２の位置姿勢に加えることで、世界座標系におけるレシーバ８０２の位置姿勢を求めることができる。また、バイアス２をステップＳ２０３で求めた視点の位置姿勢に加えることで、世界座標系における視点の位置姿勢を求めることができる。
【００５８】
このようにして、上記ステップＳ２０３で求めた視点の位置姿勢と、上記ステップＳ２０４で取得したレシーバ８０２の位置姿勢とを同じ空間におけるものとする処理を行う。従って、この目的が達成されるのであれば、如何なる処理を行っても良い。
【００５９】
そしてステップＳ２０５では更に、レシーバ８０２の位置姿勢（ステップＳ２０４で取得したもの、若しくは同ステップで変換したもの）を示すベクトルから、視点の位置姿勢（ステップＳ２０３で求めたもの、若しくは同ステップで変換したもの）を示すベクトルを引いたものを変化量（差分ベクトル）として求める。
【００６０】
次に、ステップＳ２０６では、この変化量を視点の位置姿勢の変化量としてＣＧソフトウェアに入力する。これにより、ＣＧソフトウェアは従来通り、入力された変化量を用いて視点の位置姿勢を更新し、更新した位置姿勢を有する視点から見える仮想空間の画像を生成することになる。
【００６１】
そしてステップＳ２０７では、ステップＳ２０６で変化量をＣＧソフトウェアに入力することで、ＣＧソフトウェアが生成した仮想空間画像を表示部９０５に出力する。これにより、表示部９０５の表示画面上には、レシーバ８０２の動きに連動してその位置姿勢が変化する視点から見える仮想空間画像が表示されることになる。なお、上記表示部９０５を、ＨＭＤが有する表示装置として用いると、上記システムはＶＲシステムを構成することになる。
【００６２】
次にステップＳ２０８では、操作部９０４を介して本処理の終了指示が入力されたか、若しくは本処理を終了する条件が満たされたかを判断する。この判断の結果、本処理を終了しない場合には処理をステップＳ２０２に戻し、以降の処理を行う。
【００６３】
なお、本実施形態では、視点の位置姿勢を指示するための器具としてレシーバ８０２を用いたが、キーボードやマウスを用いて直接位置姿勢を指示しても良いし、何れの器具を用いても良い。
【００６４】
また、本実施形態では、画像処理についてはソフトウェアでもって実装しているが、専用のハードウェアをコンピュータ９００に搭載し、このハードウェアでもって画像処理を行うようにしても良い。
【００６５】
また、上記ＣＧソフトウェアの代わりに、変化量の代わりに位置姿勢そのものを入力することで視点の位置姿勢を変化させるＣＧソフトウェアを用いても良い。なお、このＣＧソフトウェアが仮想空間画像を生成するために仮想空間中に設定した視点の位置姿勢は、このソフトウェアから取得することはできない。
【００６６】
その場合、仮想空間画像から取得した視点の位置姿勢（若しくは変換した位置姿勢）と、レシーバ８０２の位置姿勢（若しくは変換した位置姿勢）との差分を、仮想空間画像から取得した視点の位置姿勢に加えることで視点の新たな位置姿勢を求め、これをＣＧソフトウェアに入力すればよい。
【００６７】
［第２の実施形態］
第１の実施形態に係るシステムはＶＲシステムであったが、このシステムに現実空間の画像を撮像し、撮像した画像を仮想空間と合成して提示するための構成を加えることで、ＭＲシステムを構成することができる。
【００６８】
図３は、本実施形態に係るＭＲシステムの機能構成を示すブロック図である。なお、同図において図１に示したものと同じものについては同じ番号を付けており、その説明は省略する。図３に示した構成は、図１に示した構成に、撮影部３０１、合成部３０２、画角調整部３０３を加えたものである。
【００６９】
ここで、本実施形態に係る視点計算部１０３は、視点の位置姿勢に加え、視点の焦点距離やレンズ歪み係数等のカメラパラメータをも求める。そして求めたカメラパラメータを内部パラメータとして画角調整部３０３に送出する。
【００７０】
また、本実施形態に係る測定部１０４は、撮影部３０１の視点の位置姿勢を、撮影部３０１が撮像した画像により求める。撮影部３０１は、現実空間の動画像を撮像するものであり、撮像した各フレームの画像（現実空間画像）は画角調整部３０３と測定部１０４とに送出される。測定部１０４は、受けた現実空間画像から、撮影部３０１の視点の位置姿勢を求める処理を行う。なお、位置姿勢が既知の特徴点が複数存在する現実空間の画像を用いてこの現実空間を撮像した視点の位置姿勢を求めるための処理については周知の技術であるので、これに関する説明は省略する。また、撮影部３０１の視点の位置姿勢を求めるための処理については様々なものが考えられ、特に限定するものではない。
【００７１】
また、測定部１０４は視点の位置姿勢に加え、撮影部３０１のカメラパラメータをも求める。そして求めたカメラパラメータを内部パラメータとして画角調整部３０３に送出する。
【００７２】
画角調整部３０３は、視点計算部１０３から送出された内部パラメータと、測定部１０４から送出された内部パラメータとを受け、仮想空間画像の視点の画角と、撮影部３０１による現実空間画像の画角とが一致するように、撮影部３０１から受けた現実空間画像、若しくはＣＧ描画部１０１が生成した仮想空間画像を調整する処理を行う。
【００７３】
そして画角調整部３０３からは現実空間画像と仮想空間画像とが合成部３０２に入力されるので、合成部３０２は、現実空間画像と仮想空間画像とを合成した周知の複合現実空間画像を生成し、表示部１０２に送出する。
【００７４】
図１０は、本実施形態に係るシステムのハードウェア構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、コンピュータ９００とカメラ１０００とで構成されている。コンピュータ９００については第１の実施形態で説明したので、以下ではカメラ１０００について説明する。カメラ１０００は上記撮影部３０１に相当するものであり、現実空間の動画像を撮像し、撮像した各フレームの画像はＩ／Ｆ９０７を介してコンピュータ９００内のＲＡＭ９０２や外部記憶装置９０６に送出される。
【００７５】
次に、従来のＣＧソフトウェアをＣＧの描画部として利用する場合に、上記構成を有するシステムを用いてＭＲシステムを実現する処理について、同処理のフローチャートを示す図４を用いて以下説明する。なお、同図のフローチャートに従った処理をＣＰＵ９０１に実行させる為のプログラムやデータは外部記憶装置９０６に保存されている。そして、このプログラムやデータはＣＰＵ９０１による制御に従ってＲＡＭ９０２にロードされる。そしてＣＰＵ９０１がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。
【００７６】
同図に示すステップＳ２０１からステップＳ２０６については以下説明する点以外については第１の実施形態と同様にして行う。
【００７７】
ステップＳ２０３では、視点の位置姿勢に加え、視点の焦点距離やレンズ歪み係数等のカメラパラメータを内部パラメータとして求める。このように、位置姿勢と内部パラメータとを同時に求める方法としては、バンドル調整法などが知られている。
【００７８】
ステップＳ２０４では、カメラ１０００から得られる現実空間画像から、カメラ１０００の視点の位置姿勢を求めると共に、カメラ１０００のカメラパラメータをも求める。
【００７９】
ステップＳ４０３では、ステップＳ２０３で求めた内部パラメータを用いて仮想空間画像の視点の画角を得ると共に、ステップＳ２０４で求めた内部パラメータを用いてカメラ１０００の視点の画角を得る。そしてそれぞれの画角が異なる場合には、画角の大きい方の画像をクリッピングし、現実空間画像と仮想空間画像とで画角を一致させる。
【００８０】
なお、本実施形態では、画像のクリッピングによって画像間の画角を一致させているが、画角を一致させる方法はこれに限るものではない。たとえば、カメラ１０００のレンズのズーム値を変更して撮影映像の画角を調整してもよいし、ＣＧソフトウェアが視点に関する設定の画面を備えている場合には、その設定画面から視点の画角を調整してもよい。この場合、画角調整はコンピュータプログラム等によって自動的に行われてもよいし、コンピュータプログラム等の補助を受けながら、ユーザが手動で行ってもよい。
【００８１】
ステップＳ４０４では、以上のようにして得られる現実空間画像と仮想空間画像とを合成して、複合現実空間画像を生成する。ここで、画像の合成方法には様々な方法を用いることができるが、その一例としてクロマキー合成というものがある。
【００８２】
このクロマキー合成について図７に示した仮想空間画像を例に取り説明する。仮想空間画像７０１において仮想物体６０１，５０２以外の表示領域には、その描画時において予め特有の色が配されている。そして現実空間画像とこの仮想空間画像７０１とを合成する場合、この特有の色が配された表示領域のみについて現実空間画像を合成する。これにより、背景を現実空間画像、前景を仮想空間画像とした合成画像を得ることができる。
【００８３】
また、その他の合成手法として、デプスキー合成法がある。この合成手法を用いるためには、カメラ１０００に撮影対象までの奥行きを取得できるデプスカメラを用いる必要がある。このようなデプスカメラの例として、イスラエル３DV社のZcamなどがある。また更に、生成する仮想空間画像を構成する各画素に奥行き情報を含める必要がある。
【００８４】
デプスキー合成を行う場合には、合成するそれぞれの画像の対応する画素同士で、画素に付加されている奥行き値を互いに比較し、奥行き値の小さい画素を表示対象とする。これにより、クロマキー合成を行った場合と同様に、背景を現実空間画像、前景を仮想空間画像とした合成画像を得ることができる。
【００８５】
また、ステップＳ４０４では、現実空間画像と仮想空間画像の何れか若しくはその両方を加工することで、両者の画質を調整してもよい。例えば、現実空間画像の明るさに合わせて仮想空間画像の明るさを調整して合成すると、合成映像の違和感を減らすことができる。
【００８６】
また、現実空間画像と仮想空間画像について、それぞれ撮影タイミング、描画タイミングを考慮して合成することで、両者の時間ずれを調整してもよい。例えば、カメラ１０００から取得した現実空間画像を数フレーム分外部記憶装置９０６内に保持しておき、仮想空間画像が生成できた時点で、この仮想空間画像を生成するために用いた視点の位置姿勢を取得したタイミングに最も近いタイミングでカメラ１０００から取得し、保持している現実空間画像を、この仮想空間画像との合成対象として選択する。
【００８７】
そしてステップＳ４０５では、この合成画像を表示部９０５に送出する。これにより、表示部９０５の表示画面上には、この合成画像が表示されることになる。なお、表示部９０５を、ＨＭＤが有する表示装置として用いると、上記システムはＭＲシステムを構成することになる。
【００８８】
また、本実施形態では、画像処理についてはソフトウェアでもって実装しているが、専用のハードウェアをコンピュータ９００に搭載し、このハードウェアでもって画像処理を行うようにしても良い。
【００８９】
なお、第１，２の実施形態に係る技術は、ＣＧを用いる様々な分野で用いることができる。例えば、製品のデザイン評価等といったインダストリアルデザイン、ゲームやアミューズメント設備等のエンタテインメント装置、建築や医療等のシミュレーション装置、メンテナンス作業のアシスタント等の業務用アプリケーション、天気予報等の放送関連アプリケーション等に用いることが可能である。
【００９０】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００９１】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９３】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９４】
【図１】本発明の第１の実施形態に係るＶＲシステムの機能構成を示すブロック図である。
【図２】従来のＣＧソフトウェアをＣＧの描画部として利用する場合に、上記構成を有するシステムを用いてＶＲシステムを実現する処理のフローチャートである。
【図３】本発明の第２の実施形態に係るＭＲシステムの機能構成を示すブロック図である。
【図４】従来のＣＧソフトウェアをＣＧの描画部として利用する場合に、上記構成を有するシステムを用いてＭＲシステムを実現する処理のフローチャートである。
【図５】仮想空間中における視点位置姿勢計算用モデルを示す図である。
【図６】図５に示した仮想空間に更に、仮想物体を配置した場合の仮想空間を示す図である。
【図７】図６に示す仮想空間を視点６０２から見た場合に見える仮想空間画像を示す図である。
【図８】測定部１０４に適用可能な磁気センサシステムの概略構成を示す図である。
【図９】本発明の第１の実施形態に係るシステムのハードウェア構成を示すブロック図である。
【図１０】本発明の第２の実施形態に係るシステムのハードウェア構成を示すブロック図である。
【図１】
0004847203.tif 000002
【図２】
0004847203.tif 000003
【図３】
0004847203.tif 000004
【図４】
0004847203.tif 000005
【図５】
0004847203.tif 000006
【図６】
0004847203.tif 000007
【図７】
0004847203.tif 000008
【図８】
0004847203.tif 000009
【図９】
0004847203.tif 000010
【図１０】
0004847203.tif 000011