(57)【要約】【課題】  複合現実空間を体験する体験者とは別のオペレータが自在に仮想空間を編集することのできるような技術を提供すること。【解決手段】  観察者視点から見える現実空間の画像と、観察者視点から見える仮想空間の画像とを合成した合成画像をユーザ用モニタ１０４に対して出力する傍ら、仮想空間を編集する為の仮想物体を仮想空間中に配置し（Ｓ４０６）、この仮想物体が操作された場合には、その操作内容に応じて仮想空間を更新し（Ｓ４１１）、この仮想物体が配置された仮想空間を、オペレータ用視点から見た場合に見える画像を生成し（Ｓ４０８）、生成された仮想空間の画像をオペレータ用モニタ１１２に対して出力する（Ｓ４０９）。【選択図】  図４
2006309459.tif 000002
【特許請求の範囲】
【請求項１】
第１の視点から見える現実空間の画像と、当該第１の視点から見える仮想空間の画像とを合成した合成画像を第１の表示装置に対して出力する画像処理方法であって、
前記仮想空間を編集する為の仮想物体を前記仮想空間中に配置する配置工程と、
前記仮想物体が操作された場合には、その操作内容に応じて前記仮想空間を更新する更新工程と、
前記仮想物体が配置された仮想空間を、前記第１の視点とは異なる第２の視点から見た場合に見える画像を生成する生成工程と、
前記生成工程で生成された仮想空間の画像を前記第１の表示装置とは異なる第２の表示装置に対して出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項２】
前記仮想物体は、前記第１の視点から見える画像上には表示されないことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
更に、前記第２の視点の位置姿勢を指示する指示工程を備えることを特徴とする請求項１に記載の画像処理方法。
【請求項４】
前記仮想物体は、前記第１の視点から見える画像上に見える仮想物体の位置姿勢を操作するためのものであることを特徴とする請求項１に記載の画像処理方法。
【請求項５】
前記仮想物体は、前記仮想空間中に設定される光源を表す仮想物体、及び当該光源の位置姿勢を操作するためのものであることを特徴とする請求項１に記載の画像処理方法。
【請求項６】
前記仮想物体は、前記第１の視点から見える視野の錐体を示すものであることを特徴とする請求項１に記載の画像処理方法。
【請求項７】
前記仮想物体は、前記第１の視点の位置姿勢が計測可能な範囲を示すものであることを特徴とする請求項１に記載の画像処理方法。
【請求項８】
第１の視点から見える現実空間の画像と、当該第１の視点から見える仮想空間の画像とを合成した合成画像を第１の表示装置に対して出力する画像処理装置であって、
前記仮想空間を編集する為の仮想物体を前記仮想空間中に配置する配置手段と、
前記仮想物体が操作された場合には、その操作内容に応じて前記仮想空間を更新する更新手段と、
前記仮想物体が配置された仮想空間を、前記第１の視点とは異なる第２の視点から見た場合に見える画像を生成する生成手段と、
前記生成手段で生成された仮想空間の画像を前記第１の表示装置とは異なる第２の表示装置に対して出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項９】
コンピュータに請求項１乃至７の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間と合成する仮想空間を編集する為の技術に関するものである。
【背景技術】
【０００２】
仮想現実（Virtual Reality）の技術は、従来のシミュレーション装置による現実環境の模倣に留まらず、仮想の新たな環境を自由に構築することができるというメリットを持っている。そして、近年では、カメラを内蔵したHMD（ヘッドマウントディスプレイ）を体験者の頭部に装着し、カメラにより撮像された現実の風景とコンピュータ映像とを合成させる装置を用いて、実写風景を背景として、その上にコンピュータグラフィックス（以下、ＣＧと記述）を重畳してＨＭＤに提示する技術が開発されている。即ち、体験者に対して、あたかもその場に仮想の物体が存在するかのような体験を行わせる複合現実感の技術が登場し、その環境の中で人間は現実空間と仮想空間とが融合した空間を体験するという、新たな体験を行うことが可能になってきている。
【０００３】
上記の複合現実感の技術を応用した例として、体験者の目の前に存在する現実のチェスボードには、相手の駒が仮想物体としてＣＧで描かれ体験者に提示され、仮想空間構築者（以下、オペレータと略記する）には、現実のチェスボードを仮想空間に再現したものが提示されるというシステムが、2004年に開催されたISMAR(IEEE and ACM International Symposium on Mixed and Augmented Reality)において展示されていた。このシステムにより、オペレータは体験者の目の前にある現実空間の駒の状態をディスプレイで把握しながら仮想空間の編集を行うことができる。
【０００４】
また、従来から行われている一般的な複合現実空間の構築方法としては、オペレータが予めグラフィックスワークステーション（以下、GWSと略記する）上で仮想空間を構築しておき、最終的なＣＧオブジェクトの配置調整およびＣＧオブジェクトの質感調整等は、実際にHMDを通した体験者の視点で確認する方法が一般的であった。さらに、複合現実空間の観察時には物体に照射された光の反射を計算し、体験者に到達した結果のみを提示するため、仮想空間の構築の際に設定（色や輝度）および配置する光源は可視化せずに、仮想空間を構築していた。
【非特許文献１】Ｃ．Ｄ．Ｃｏｒｒｅａ，Ａ．Ａｇｕｄｅｌｏ，Ａ．Ｍ．Ｋｒｅｂｓ，Ｉ．Ｍａｒｓｉｃ，Ｊ．Ｈｏｕ，Ａ．Ｍｏｒｄｅ，ａｎｄ  Ｓ．Ｋ．Ｇａｎａｐａｔｈｙ，Ｔｈｅ  Ｐａｒａｌｌｅｌ  Ｗｏｒｌｄｓ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｃｏｌｌａｂｏｒａｔｉｏｎ  ａｍｏｎｇ  Ｖｉｒｔｕａｌ  ａｎｄ  Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ  Ｕｓｅｒｓ，Ｄｅｍｏ  ａｔ  ｔｈｅ  ＩＥＥＥ  ａｎｄ  ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｍｉｘｅｄ  ａｎｄ  Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ  （ＩＳＭＡＲ’０４）  Ａｒｌｉｎｇｔｏｎ，ＶＡ，Ｎｏｖｅｍｂｅｒ  ２−５，２００４．
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、従来の確認方法では、最終的に提示される複合現実空間の視点位置・姿勢は体験者の視点位置に限定されてしまっていた。つまり、体験者の視点を計測しているセンサの計測領域内でしか複合現実空間を観察することができない。そのため、必然的にオペレータが環境を確認できる視点位置・姿勢が限定されてしまうため、任意の視点で観察することができなかった。
【０００６】
また、上述の複合現実空間の構築方法において、体験者に提示を行うことが必要のない光源情報を如何にしてオペレータのみに提示して、現実空間に即した形で仮想空間に光源を配置するのかといったことや、オペレータが現実空間を把握して仮想環境を構築することができるかが課題になっていた。
【０００７】
本発明は以上の問題に鑑みてなされたものであり、複合現実空間を体験する体験者とは別のオペレータが自在に仮想空間を編集することのできるような技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【０００９】
即ち、第１の視点から見える現実空間の画像と、当該第１の視点から見える仮想空間の画像とを合成した合成画像を第１の表示装置に対して出力する画像処理方法であって、
前記仮想空間を編集する為の仮想物体を前記仮想空間中に配置する配置工程と、
前記仮想物体が操作された場合には、その操作内容に応じて前記仮想空間を更新する更新工程と、
前記仮想物体が配置された仮想空間を、前記第１の視点とは異なる第２の視点から見た場合に見える画像を生成する生成工程と、
前記生成工程で生成された仮想空間の画像を前記第１の表示装置とは異なる第２の表示装置に対して出力する出力工程と
を備えることを特徴とする。
【００１０】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１１】
即ち、第１の視点から見える現実空間の画像と、当該第１の視点から見える仮想空間の画像とを合成した合成画像を第１の表示装置に対して出力する画像処理装置であって、
前記仮想空間を編集する為の仮想物体を前記仮想空間中に配置する配置手段と、
前記仮想物体が操作された場合には、その操作内容に応じて前記仮想空間を更新する更新手段と、
前記仮想物体が配置された仮想空間を、前記第１の視点とは異なる第２の視点から見た場合に見える画像を生成する生成手段と、
前記生成手段で生成された仮想空間の画像を前記第１の表示装置とは異なる第２の表示装置に対して出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【００１２】
本発明の構成により、複合現実空間を体験する体験者とは別のオペレータが自在に仮想空間を編集することができる。
【発明を実施するための最良の形態】
【００１３】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１４】
［第１の実施形態］
本実施形態では、仮想空間と現実空間を合成した複合現実空間の画像を観察している観察者とは別個のオペレータが、この仮想空間を編集する為のシステムについて説明する。
【００１５】
図１は、本実施形態に係るシステムのハードウェア構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、コンピュータ１００、ユーザ用モニタ１０４、位置姿勢計測装置１０５により構成されている。
【００１６】
先ず、ユーザ用モニタ１０４について説明する。ユーザ用モニタ１０４は、複合現実空間を観察する観察者（ユーザ）が、自身の頭部に装着するもので、所謂ＨＭＤである。従ってユーザ用モニタ１０４は、常に観察者の眼前に画像を提供するものであり、その画像は後段のコンピュータ１００が生成する。また、このユーザ用モニタ１０４には、現実空間の動画像を撮像するカメラが備わっており、撮像した各フレームの画像は、後段のコンピュータ１００に出力される。
【００１７】
次に、位置姿勢計測装置１０５について説明する。位置姿勢計測装置１０５は、観察者の視点の位置姿勢を計測するためのものである。観察者の視点の位置姿勢を計測するための技術については様々なものが考えられ、本実施形態でもこの技術については何れの方法を用いても良いので、特に限定するものではないが、以下にその一例について説明する。  例えば、上記カメラは、観察者が自身の頭部にユーザ用モニタ１０４を装着した場合に、できるだけ観察者の目（視点）の位置に近いところに取り付ける。また、このカメラに近い位置に磁気センサを取り付ける。この磁気センサは磁気の発信源の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系（センサ座標系）における自身の位置姿勢を計測する。この磁気センサは計測した自身の位置姿勢を示す信号をセンサの制御器に入力するので、センサの制御器は、入力された信号が示す位置姿勢に、視点と磁気センサとの位置姿勢関係を示すバイアスを加算することで、センサ座標系における視点の位置姿勢を求める。なお、周知の技術を用いれば、この視点の位置姿勢を世界座標系（現実空間中の所定の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系）におけるものとすることもできるが、これについては以下の説明の趣旨ではないので、ここでの説明は省略する。
【００１８】
なお、位置姿勢計測装置１０５が求めた視点の位置姿勢を示すデータは後段のコンピュータ１００に出力される。
【００１９】
次に、コンピュータ１００について説明する。コンピュータ１００には、例えば一般のＰＣ（パーソナルコンピュータ）やＧＷＳ（グラフィックスワークステーション）等が適用可能である。
【００２０】
実写画像ＤＢ（データベース）１０２は、ユーザ用モニタ１０４に備わっているカメラから順次送出される各フレームの画像（現実空間画像）を順次記憶するためのものである。なお、実写画像ＤＢ１０２は後段の外部記憶装置１０６内に設けるようにしても良い。
【００２１】
ＣＧデータＤＢ１０３は、仮想空間を構成する各仮想物体を描画するために必要なデータ（仮想空間データ）を記憶するためのものである。仮想空間データには、例えば仮想物体がポリゴンで構成されている場合には、仮想物体の配置位置姿勢データ、各ポリゴンの法線ベクトルデータ、ポリゴンを構成する各頂点の位置データ、ポリゴンの質感、色データ、また、この仮想物体にテクスチャマッピングを施す場合には、テクスチャ画像データが含まれている。また、仮想空間データには、仮想空間中に設定される光源の位置姿勢データ等、仮想空間環境を示すデータも含まれている。
【００２２】
また、この仮想空間データには、仮想空間中で動的に変化する仮想物体がある場合には、その変化則を規定するデータが含まれていたり、音を発生させる場合には音のデータも含まれている。なお、仮想空間データに含まれうるものについてはこれ以外にも様々なものが考えられ、これに限定するものではない。
【００２３】
なお、ＣＧデータＤＢ１０３は後段の外部記憶装置１０６内に設けるようにしても良い。また、それぞれのＤＢ（実写画像ＤＢ１０２、ＣＧデータＤＢ１０３）はＩ／Ｆを介してバス１２０に接続されている。
【００２４】
オペレータ用モニタ１１２は、コンピュータ１００を操作するオペレータに対して画像や文字などを表示するものであり、ＣＲＴや液晶画面などにより構成されている。なお、オペレータ用モニタ１１２は、Ｉ／Ｆを介してバス１２０に接続される。
【００２５】
外部記憶装置１０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置であり、ここにはＯＳ（オペレーティングシステム）や、コンピュータ１００が行う後述の各処理をＣＰＵ１０８に実行させるためのプログラムやデータなどが保存されている。これらのプログラムやデータは、ＣＰＵ１０８による制御に従って適宜ＲＡＭ１０９にロードされ、ＣＰＵ１０８による処理対象となる。なお、外部記憶装置１０６は、Ｉ／Ｆを介してバス１２０に接続される。
【００２６】
ＲＯＭ１０７には、コンピュータ１００の設定データや、ブートプログラムなどが格納されている。
【００２７】
ＣＰＵ１０８は、ＲＡＭ１０９やＲＯＭ１０７に格納されているプログラムやデータを用いてコンピュータ１００全体の制御処理を行うと共に、コンピュータ１００が行う後述の各処理を実行する。
【００２８】
ＲＡＭ１０９は、上記各ＤＢ１０２，１０３や外部記憶装置１０６からロードされたデータを一時的に記憶するためのエリア、位置姿勢計測装置１０５から入力された視点の位置姿勢を示すデータを一時的に記憶するためのエリア、ＣＰＵ１０８が各処理を実行する際に用いるワークエリア等、各種のエリアを適宜提供することができる。
【００２９】
マウス１１０，キーボード１１１は、オペレータが操作することにより、各種の指示をＣＰＵ１０８に対して入力することができる。なお、マウス１１０、キーボード１１１は、Ｉ／Ｆを介してバス１２０に接続される。
【００３０】
以上の構成を有するコンピュータ１００の動作について簡単に説明する。ユーザ用モニタ１０４に備わっているカメラは現実空間の動画像を撮像し、撮像した各フレームの画像は、Ｉ／Ｆを介して本コンピュータ１００内に入力され、実写画像ＤＢ１０２内に順次格納される。一方、位置姿勢計測装置１０５からは、観察者の視点の位置姿勢を示すデータがＩ／Ｆを介して順次本コンピュータ１００内に入力され、ＲＡＭ１０９、若しくは外部記憶装置１０６内に格納される。
【００３１】
ＣＰＵ１０８は、実写画像ＤＢ１０２に格納された順に現実空間画像をＲＡＭ１０９内の所定のエリアにロードする。次に、位置姿勢計測装置１０５から得た視点の位置姿勢を示すデータ、及びＣＧデータＤＢ１０３内に格納されている仮想空間データを用いて、この視点から見える仮想空間の画像を生成する。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成するための技術については周知のものであるので、ここでの説明は省略する。
【００３２】
そしてＣＰＵ１０８は、生成した仮想空間画像をＲＡＭ１０９内の上記所定のエリア上に描画する。これにより、上記所定のエリア上には、現実空間画像上に仮想空間画像が重畳された画像、即ち、複合現実空間画像が生成されるので、ＣＰＵ１０８は生成した複合現実空間画像をＩ／Ｆを介してユーザ用モニタ１０４に出力する。
【００３３】
これにより、ユーザ用モニタ１０４に備わっている表示画面上には、観察者の視点の位置姿勢に応じて見える複合現実空間画像が表示されることになるので、観察者は眼前にそれを見ることができる。
【００３４】
なお、観察者の視点の位置姿勢が変化しないような場合には、予め既知の位置姿勢を有する視点から見える現実空間の画像を実写画像ＤＢ１０２に登録しておき、これを用いて複合現実空間画像を生成するようにしても良い。
【００３５】
一方、コンピュータ１００は、観察者の視点とは別に、オペレータが指定した視点から見える仮想空間の画像を生成して、オペレータ用モニタ１１２に出力する。これは、オペレータが、このオペレータ用モニタ１１２に表示されている仮想空間の画像を見、この仮想空間を編集する目的で表示する。
【００３６】
以下に、このオペレータによる仮想空間の編集について説明する。オペレータは仮想空間を編集する場合には、ＧＵＩ（グラフィカルユーザインターフェース）を用いて行う。図２は、仮想空間を編集するために用いられるＧＵＩの表示例を示す図である。同図のＧＵＩはオペレータ用モニタ１１２の表示画面上に表示されるものである。
【００３７】
同図のＧＵＩには、上記仮想空間を編集するための仮想物体を配置した仮想空間を、オペレータがキーボード１１１やマウス１１０でもって指定した位置姿勢を有する視点（以下、オペレータ用視点と呼称する場合がある）から見た場合に見える仮想空間が表示されている。
【００３８】
同図において、２００はマウスカーソルであり、マウス１１０でもって画面上の位置を移動させることができる。２０４は背景物として仮想空間中に配置する仮想物体である。仮想物体２０４の配置位置を変更する場合には、仮想物体２０４周辺に配置されているマニピューレータ２０４ａ〜２０４ｃを操作する。マニピューレータ２０４ａ〜２０４ｃは、仮想物体２０４の位置を原点とし、この原点で互いに直交する３軸のそれぞれの上に配置されるものである。
【００３９】
マウスカーソル２００をマニピューレータ２０４ａ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０４ａが位置する軸上で仮想物体２０４を移動させることができる。また、マウスカーソル２００をマニピューレータ２０４ｂ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０４ｂが位置する軸上で仮想物体２０４を移動させることができる。また、マウスカーソル２００をマニピューレータ２０４ｃ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０４ｃが位置する軸上で仮想物体２０４を移動させることができる。
【００４０】
また、仮想物体２０４の姿勢を変更する場合には、表示されている点線部分２０４ｘ〜２０４ｚを操作する。点線部分２０４ｘ〜２０４ｚはそれぞれ、仮想物体２０４を包含する楕円体において、マニピューレータ２０４ｃが位置する軸周りを示す点線、マニピューレータ２０４ａが位置する軸周りを示す点線、マニピューレータ２０４ｂが位置する軸周りを示す点線である。
【００４１】
マウスカーソル２００を点線部分２０４ｘ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０４ｃが位置する軸周りに仮想物体２０４を回転させることができる。マウスカーソル２００を点線部分２０４ｙ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０４ａが位置する軸周りに仮想物体２０４を回転させることができる。マウスカーソル２００を点線部分２０４ｚ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０４ｂが位置する軸周りに仮想物体２０４を回転させることができる。
【００４２】
このようにして、仮想物体２０４の位置や姿勢は変更することができる。なお、変更するための操作方法については特に限定するものではない。
【００４３】
２０５は仮想空間中に設定する光源を示す仮想物体であり、この仮想物体２０５の配置位置が光源の位置となり、配置姿勢が光源の姿勢となる。ここで、一般に光源には平行光源、点光源、スポットライト等、複数の種類が存在するので、オペレータは、キーボード１１１やマウス１１０を用いて、仮想空間中に配置したい種類の光源を示す仮想物体を指定する。よって、２０５は、オペレータが指定した種類の光源を示す仮想物体となる。また、オペレータは、光源の種類だけでなく、光源の色や光源の強さ等を設定することもでき、光源の仮想物体は設定したこれらを表現したものであることが好ましい、
仮想物体２０５の配置位置を変更する場合には、仮想物体２０５周辺に配置されているマニピューレータ２０５ａ〜２０５ｃを操作する。マニピューレータ２０５ａ〜２０５ｃは、仮想物体２０５の位置を原点とし、この原点で互いに直交する３軸のそれぞれの上に配置されるものである。
【００４４】
マウスカーソル２００をマニピューレータ２０５ａ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０５ａが位置する軸上で仮想物体２０５を移動させることができる。また、マウスカーソル２００をマニピューレータ２０５ｂ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０５ｂが位置する軸上で仮想物体２０５を移動させることができる。また、マウスカーソル２００をマニピューレータ２０５ｃ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０５ｃが位置する軸上で仮想物体２０５を移動させることができる。
【００４５】
また、仮想物体２０５の姿勢を変更する場合には、表示されている点線部分２０５ｘ〜２０５ｚを操作する。点線部分２０５ｘ〜２０５ｚはそれぞれ、仮想物体２０５を包含する楕円体において、マニピューレータ２０５ｃが位置する軸周りを示す点線、マニピューレータ２０５ａが位置する軸周りを示す点線、マニピューレータ２０５ｂが位置する軸周りを示す点線である。
【００４６】
マウスカーソル２００を点線部分２０５ｘ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０５ｃが位置する軸周りに仮想物体２０５を回転させることができる。マウスカーソル２００を点線部分２０５ｙ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０５ａが位置する軸周りに仮想物体２０５を回転させることができる。マウスカーソル２００を点線部分２０５ｚ上に移動させ、そこでドラッグした状態でマウスカーソル２００を移動させると、マニピューレータ２０５ｂが位置する軸周りに仮想物体２０５を回転させることができる。
【００４７】
このようにして、光源の仮想物体２０５の位置や姿勢は変更することができる。なお、変更するための操作方法については特に限定するものではない。
【００４８】
２０７は、観察者の視野錐体を示す仮想物体で、観察者の視点の位置姿勢でもって配置されるものである。また、この仮想物体が示す「視野」は、予めＨＭＤの仕様情報から算出した視野に基づいている。
【００４９】
これにより、オペレータは、現在観察者がどの位置でどの方向を向いているのかを把握することができるので、例えば、観察者が観察している場所に仮想物体２０４を配置する等、観察者に観察させたいものを、観察者が観察している場所に移動させることが容易となる。
【００５０】
２０９は、観察者の視点の位置が計測可能な範囲を示す仮想物体で、例えば、上述の磁気センサを用いて観察者の視点の位置姿勢を計測する場合には、仮想物体２０９は磁気レシーバの計測可能範囲を示す。この計測可能範囲は、予めセンサの仕様情報から算出した「センサの計測範囲」に基づくものである。これにより、オペレータは、観察者が現在視点計測範囲内に位置しているのかをこのＧＵＩ上で確認することができ、観察者が計測範囲外に出そうになった場合には、その旨を観察者に伝え、オペレータは観察者に観察位置を直感的に指示することが可能になる。
【００５１】
ここで、仮想空間を編集すると、編集した仮想空間のデータ、即ち上記仮想空間データは更新されることになる。また、ユーザ用モニタ１０４に出力する複合現実空間画像を生成したり、オペレータ用モニタ１１２に出力する仮想空間画像を生成したりする場合には同じ仮想空間データを用いるので、結果としてユーザ用モニタ１０４には、編集された仮想空間の画像を現実空間の画像上に重畳させた画像が表示されることになる。
【００５２】
従って、オペレータは仮想空間を編集する為には、編集する部分が現実空間とどのような位置関係にあるかなど、常に仮想空間と現実空間との関係を把握しておく必要がある。そこで、現実空間を模した仮想空間（疑似現実空間）のデータを予めＣＧデータＤＢ１０３に登録しておき、このデータを用いて、疑似現実空間のち、現在ＧＵＩ上に表示されている仮想空間に相当する部分の空間の画像を生成する。このときの視点は、オペレータ用視点を用いる。そして生成したこの画像をテクスチャとして１枚ポリゴンにマッピングしたものをダミーモデル２０３として仮想空間中に配置する。
【００５３】
オペレータは、実際に観察者が観察対象となる仮想物体をどのように見ているのかを即座に知るために、任意の視点位置姿勢から瞬時に観察者の視点位置姿勢に移ることが可能である。オペレータは、位置姿勢計測センサより取得された観察者の視点位置姿勢をオペレータの視点位置姿勢にコピーすることで、観察者の視点位置姿勢に移動する。その際、観察者の視野を示す仮想物体および計測範囲を示す仮想物体は非表示とする。
【００５４】
なお、図２に示したＧＵＩにおいて、仮想物体２０４の位置や姿勢を変更するために配置したマニピューレータ２０４ａ〜２０４ｃ、及び点線２０４ｘ〜２０４ｚ、光源の位置や姿勢を視覚的に示すために配置した仮想物体２０５、光源の位置や姿勢を変更するために配置したマニピューレータ２０５ａ〜２０５ｃ、及び点線２０５ｘ〜２０５ｚ、ダミーモデル２０３、仮想物体２０７，２０９は全て、オペレータが仮想空間を編集するために仮想空間中に配置したものであり、観察者にとっては不要なものである。従って、これらの仮想物体（以下、表示オプションと呼称する場合がある）は、観察者に対して提示する画像中には表示されないようにする。これについての詳細は後述する。
【００５５】
図３は、本実施形態に係るシステムの機能構成を示すブロック図である。なお、同図において、図１と同じ部分については同じ番号を付けており、その説明は省略する。画像生成部３００は、仮想物体管理部３０１、３次元ＣＧ画像生成部３０２、実写＋ＣＧ画像融合部３０３により構成されている。
【００５６】
仮想物体管理部３０１にはＣＧデータＤＢ１０３から仮想空間データが入力されると共に、キーボード１１１やマウス１１０から、仮想空間を編集するための操作指示が入力される。
【００５７】
３次元ＣＧ画像生成部３０２には、仮想物体管理部３０１から仮想空間データが入力されると共に、オペレータ用視点の位置姿勢を示すデータが入力されるので、これらのデータに基づいてオペレータ用視点から見える仮想空間を生成し、オペレータ用モニタ１１２に出力する。なお、オペレータ用視点から見える仮想空間の画像を生成する際には、上記表示オプションを仮想空間中に配置するのであるが、視野錐体を示す仮想物体２０７は、観察者の視点の位置姿勢でもって仮想空間中に配置することから、位置姿勢計測装置１０５から入力される「観察者の視点の位置姿勢を示すデータ」も用いる。
【００５８】
また、３次元ＣＧ画像生成部３０２には位置姿勢計測装置１０５から観察者の視点の位置姿勢を示すデータが入力されると共に、仮想物体管理部３０１から仮想空間データが入力されるので、これらのデータに基づいて観察者の視点から見える仮想空間を生成し、実写＋ＣＧ画像融合部３０３に出力する。
【００５９】
実写＋ＣＧ画像融合部３０３には、実写画像ＤＢ１０２から、現実空間画像が入力されると共に、３次元ＣＧ画像生成部３０２からは、観察者の視点から見える仮想空間画像が入力されるので、現実空間画像上に仮想空間画像を重畳させた画像を生成し、これをユーザ用モニタ１０４に出力する。
【００６０】
図４は、コンピュータ１００が行う処理、即ち、複合現実空間画像を生成する処理を行う傍らで、仮想空間を編集する処理を行うという制御処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１０８に実行させるためのプログラムやデータは外部記憶装置１０６内に保存されており、これはＣＰＵ１０８による制御に従って適宜ＲＡＭ１０９にロードされ、ＣＰＵ１０８がこれを用いて処理を行うことで、コンピュータ１００は以下説明する各処理を実行することになる。
【００６１】
先ず、位置姿勢計測装置１０５からは、観察者の視点の位置姿勢を示すデータがＩ／Ｆを介して本コンピュータ１００内に入力されるので、ＣＰＵ１０８はこれをＲＡＭ１０９内に取得する（ステップＳ４０１）。
【００６２】
ここで、以下説明するステップＳ４０２〜ステップＳ４０５の処理（複合現実空間画像提示処理）と、ステップＳ４０６〜ステップＳ４１１の処理（仮想空間編集処理）とは並行して行われるもので、例えば、それぞれはマルチタスク処理でもって並行して行われるものである。
【００６３】
先ず、ステップＳ４０２〜ステップＳ４０５の処理（複合現実空間画像提示処理）について説明する。
【００６４】
ユーザ用モニタ１０４からは各フレームの現実空間画像が実写画像ＤＢ１０２に順次入力されるので、ＣＰＵ１０８は、実写画像ＤＢ１０２に格納された順に現実空間画像をＲＡＭ１０９内の所定のエリアに読み出す（ステップＳ４０２）。次に、ステップＳ４０１で取得した視点の位置姿勢データ、及びＣＧデータＤＢ１０３に保存されている仮想空間データを用いて、観察者の視点から見える仮想空間画像を生成する（ステップＳ４０３）。尚、この仮想空間画像は、上記表示オプション以外の仮想物体（例えば、図２では仮想物体２０４に相当する）のみを配置した仮想空間を観察者の視点から見た場合に見える画像を生成することによって得られるものである。
【００６５】
そして、生成した仮想空間画像をＲＡＭ１０９内で現実空間画像をロードした上記所定のエリア上に描画する（ステップＳ４０４）。これにより、現実空間画像上に仮想空間画像が重畳されるので、結果として上記所定のエリア上には複合現実空間画像が生成されることになる。そして、ＣＰＵ１０８はこの複合現実空間画像をＩ／Ｆを介してユーザ用モニタ１０４に対して出力する（ステップＳ４０５）。これにより、ユーザ用モニタ１０４を頭部に装着している観察者の眼前には、自身の視点の位置姿勢に応じて見える複合現実空間の画像が表示されることになり、この観察者は、複合現実空間を体験することができる。
【００６６】
次に、ステップＳ４０６〜ステップＳ４１１の処理（仮想空間編集処理）について説明する。
【００６７】
先ず、上記表示オプションを仮想空間中に配置する（ステップＳ４０６）。次に、キーボード１１１やマウス１１０でもって指示されたオペレータ用視点のデータを取得する（ステップＳ４０７）。次に、表示オプションを配置した仮想空間中に、更に表示オプション以外の仮想物体（観察者用の仮想空間画像を生成する際に仮想空間中に配した仮想物体で、例えば、図２では仮想物体２０４に相当する）を配置した仮想空間を、オペレータ用視点から見た場合に見える仮想空間画像を生成する（ステップＳ４０８）。
【００６８】
図５は、仮想空間中に配置する全ての仮想物体のうち、観察者用の仮想空間画像、オペレータ用の仮想空間画像のそれぞれの生成時に、仮想空間中に配置するものを示すテーブルの構成例を示す図である。同図では、仮想空間中に配置する全ての仮想物体としては、目的のＣＧオブジェクト、仮想光源、ダミーモデル、センサ、視野錐体である。そのうち、観察者用に仮想空間画像を生成する際には（ステップＳ４０３では）、目的ＣＧオブジェクトのみを配置し、それ以外の仮想物体については配置しない。一方、オペレータ用に仮想空間画像を生成する際には、目的ＣＧオブジェクトは必ず配置し、仮想光源、ダミーモデル、センサ、視野錐体に関しては、オペレータがキーボード１１１やマウス１１０を操作することで、配置／非配置を切り替えることができる。ここで「表示」は配置する旨を示すフラグ値で、「非表示」は配置しない旨を示すフラグ値で、「表示／非表示」は配置／非配置をオペレータが選択可能な旨を示すフラグ値である。よって、「表示／非表示」のフラグ値は、オペレータが適宜キーボード１１１やマウス１１０を用いて「表示」、「非表示」の何れかに切り替えるようにする。
【００６９】
また、オペレータが観察者の視点追従を行っている場合は、オペレータのセンサ、視野錐体のフラグ値は自動的に「非表示」に設定される。
【００７０】
このように、各仮想物体について、観察者とオペレータの両方に対して表示するのか、観察者に対しては表示せずにオペレータのみに表示するのか、表示／非表示が切り替え可能であるのかの何れかを示すフラグ値を設定しておく。
【００７１】
従って、上記ステップＳ４０３では、同図のテーブルを参照して、各仮想物体のうち、観察者に対して「表示」のフラグ値を有するもののみを仮想空間中に配置し、これを観察者の視点から見た場合に見える画像を生成する。
【００７２】
また、ステップＳ４０６では、同図のテーブルを参照して、各仮想物体のうち、オペレータに対して「表示」のフラグ値を有するもの（「表示／非表示」のフラグ値を有するもののうち「表示」に切り替えられている仮想物体も含む）のみを仮想空間中に配置する。
【００７３】
図４に戻って、次にＣＰＵ１０８は、ステップＳ４０８で生成した仮想空間画像を、Ｉ／Ｆを介してオペレータ用モニタ１１２に出力する（ステップＳ４０９）。これにより、オペレータ用モニタ１１２には、オペレータ用視点から見える仮想空間であって、この仮想空間を編集する為の仮想物体が配置された仮想空間の画像が表示されることになるので、オペレータはこの画面を見ながら、キーボード１１１やマウス１１０を用いて、この仮想空間を編集することができる。また、編集するために配置した表示オプションは、観察者には見えないので、観察者にとって邪魔なものをこの観察者に見せることなく、仮想空間を編集することができる。
【００７４】
よって、キーボード１１１やマウス１１０でもって仮想空間を編集する操作（例えば何れかのマニピュレータが操作されたなど）が入力されたことをＣＰＵ１０８が検知した場合には処理をステップＳ４１０を介してステップＳ４１１に進め、操作内容に応じて仮想空間データを更新し（ステップＳ４１１）、その後処理をステップＳ４０８に進める。
【００７５】
ステップＳ４０８では、更新した仮想空間データを用いて仮想空間画像を生成する。また、本ステップと並行して実行されているステップＳ４０３でもこの更新された仮想空間データを用いて仮想空間画像を生成する。これにより、観察者、オペレータの何れに提示する仮想空間画像にも更新結果が反映されていることになる。
【００７６】
一方、仮想空間を編集する旨の指示をＣＰＵ１０８が検知しなかった場合、また、上記ステップＳ４０５における処理の後には、処理をステップＳ４１２に進め、本処理を終了する場合、例えば本処理を終了する旨の指示がキーボード１１１やマウス１１０から入力されたことをＣＰＵ１０８が検知した場合には本処理を終了するが、検知していない場合には処理をステップＳ４０１に戻し、以降の処理を繰り返す。
【００７７】
以上の説明により、本実施形態によれば、オペレータには必要とされる仮想物体をオペレータのみに表示し、複合現実空間を体験している観察者には必要とされない情報は区別して提示することで、オペレータは直感的に仮想空間、ひいては複合現実空間の編集を行うことができる。
【００７８】
［第２の実施形態］
観察者が複数人存在する場合、即ち、観察者の人数分ユーザ用モニタ１０４、位置姿勢計測装置１０５のセットがコンピュータ１００に接続されている場合には、それぞれの観察者についてステップＳ４０２からステップＳ４０５の処理を行う。
【００７９】
［その他の実施形態］
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００８０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１の実施形態に係るシステムのハードウェア構成を示すブロック図である。
【図２】仮想空間を編集するために用いられるＧＵＩの表示例を示す図である。
【図３】本発明の第１の実施形態に係るシステムの機能構成を示すブロック図である。
【図４】コンピュータ１００が行う処理、即ち、複合現実空間画像を生成する処理を行う傍らで、仮想空間を編集する処理を行うという制御処理のフローチャートである。
【図５】仮想空間中に配置する全ての仮想物体のうち、観察者用の仮想空間画像、オペレータ用の仮想空間画像のそれぞれの生成時に、仮想空間中に配置するものを示すテーブルの構成例を示す図である。
【図１】
2006309459.tif 000003
【図２】
2006309459.tif 000004
【図３】
2006309459.tif 000005
【図４】
2006309459.tif 000006
【図５】
2006309459.tif 000007