(57)【要約】【課題】  複合現実感映像において、現実物体と仮想物体との奥行き関係を正しく、かつ簡便に表現する。【解決手段】  現実空間画像に合成する画像として、仮想物体４０２と、スタイラスモデル４０３とを描画する際、相互の位置関係に応じて背景透過率を変化させて用いて描画する。これにより、現実空間画像に仮想物体画像を合成した際、現実空間画像中に含まれるスタイラスの画像が、仮想物体との位置関係を反映して観察される。【選択図】  図７
2005293142.tif 000002
【特許請求の範囲】
【請求項１】
現実空間を撮影して得られる現実空間画像に、所定の位置姿勢を有する仮想物体の画像を位置合わせして合成することにより複合現実感映像を生成する画像処理方法であって、
前記仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢情報を検出する現実物体位置姿勢情報取得工程と、
前記現実物体を表すモデルと、前記現実物体の位置姿勢情報と、前記仮想物体の位置姿勢とから、前記仮想物体と前記モデルとの位置関係を検出する位置関係取得工程と、
前記仮想物体と前記モデルの画像を前記位置関係に応じた背景透過率を用いて描画する描画工程と、
前記現実空間画像上に、前記描画工程で生成した画像を合成し、前記複合現実感映像を生成する合成工程とを有することを特徴とする画像処理方法。
【請求項２】
前記描画工程において、前記モデルを透明物体として描画するとともに、前記仮想物体の前記モデルと重なる領域を描画する際の背景透過率を、前記モデルと重ならない領域よりも高く、かつ１００％未満となる値とすることを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記描画工程において、前記仮想物体の前記モデルと重ならない部分の背景透過率を０％とすることを特徴とする請求項２記載の画像処理方法。
【請求項４】
前記描画工程において、前記仮想物体の前記モデルと重なる部分の背景透過率を、前記モデルと前記仮想物体との重なり方に応じて複数に段階に変化させることを特徴とする請求項２又は請求項３記載の画像処理方法。
【請求項５】
前記描画工程が、
前記仮想物体を半透明物体として、前記モデルを透明物体として第１の画像を描画する工程と、
前記仮想物体を不透明物体として、前記モデルを透明物体として、かつ前記モデル全体が前記仮想物体よりも手前にあるものとして第２の画像を描画する工程とを有し、
前記合成工程が、
前記現実空間画像上に、前記第１の画像を合成した後、さらに前記第２の画像を合成して前記複合現実感映像を生成することを特徴とする請求項１記載の画像処理方法。
【請求項６】
さらに、前記モデルと前記仮想物体とが衝突するか否かを判定する衝突判定工程を有し、
前記描画工程が、
前記モデルと前記仮想物体とが衝突すると判定された場合、前記仮想物体のみを半透明物体として描画し、
前記モデルと前記仮想物体とが衝突しないと判定された場合、前記仮想物体を不透明物体として、前記モデルを透明物体として描画することを特徴とする請求項１記載の画像処理方法。
【請求項７】
さらに、前記モデルと前記仮想物体とが衝突するか否かを判定する衝突判定工程を有し、
前記描画工程が、
前記モデルと前記仮想物体とが衝突すると判定された場合、前記モデルを前記仮想物体との衝突面により分割し、少なくとも前記モデルが前記仮想物体の内部に存在する部分について、前記仮想物体よりも手前にある有色物体として、前記モデルの前記仮想物体よりも手前に存在する部分については透明物体として、前記仮想物体は非透明物体としてそれぞれ描画し、
前記モデルと前記仮想物体とが衝突しないと判定された場合、前記仮想物体を不透明物体として、前記モデルを透明物体として描画することを特徴とする請求項１記載の画像処理方法。
【請求項８】
現実空間を撮影して得られる現実空間画像に、所定の位置姿勢を有する仮想物体の画像を位置合わせして合成することにより複合現実感映像を生成する画像処理装置であって、
前記仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢情報を検出する現実物体位置姿勢情報取得手段と、
前記現実物体を表すモデルと、前記現実物体の位置姿勢情報と、前記仮想物体の位置姿勢とから、前記仮想物体と前記モデルとの位置関係を検出する位置関係取得手段と、
前記仮想物体と前記モデルの画像を前記位置関係に応じた背景透過率を用いて描画する描画手段と、
前記現実空間画像上に、前記描画手段で生成した画像を合成し、前記複合現実感映像を生成する合成手段とを有することを特徴とする画像処理装置。
【請求項９】
コンピュータに、請求項１乃至請求項７のいずれか１項に記載の画像処理方法を実施させるプログラム。
【請求項１０】
請求項９記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感を実現するための画像処理技術に関し、特に、現実物体と仮想物体との奥行き関係を正しく、かつ簡便に表現することが可能な画像処理技術に関する。
【背景技術】
【０００２】
現実空間と仮想空間とを違和感なく自然に合成する複合現実感（MR: Mixed Reality）の技術を応用したシステムが盛んに提案されている。代表的な複合現実感システムでは、カメラなどの撮像装置によって撮影した現実空間の映像に対し、コンピュータグラフィックス（CG: Computer Graphics）で描画した仮想空間の映像を位置合わせして合成して生成した複合現実感映像を、ユーザ（観察者／体験者）が装着するヘッドマウントディスプレイ（HMD: Head-Mounted Display）などの表示装置に表示することで、複合現実感をユーザに与える構成を有する。
【０００３】
また、バーチャル・リアリティ（VR: Virtual Reality）の分野においては、ユーザが現実物体であるスタイラス（ペンに似た形状をした指示棒）を用いて、仮想物体（仮想空間中の物体）を操作（選択・移動など）することを可能にする技術が広く知られている。この現実物体であるスタイラスにはセンサが備えられており、スタイラスの位置・姿勢を計測することができる。また、スタイラスにはボタンなどのスイッチ類が備えられており、ユーザは例えばボタンをON／OFFすることでスタイラスで指示している仮想物体に対して選択などの操作を行うことができる。
【０００４】
【特許文献１】特開２００３−２９６７５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常の複合現実感システムにおいては、複合現実感映像を生成する際、現実空間を表す現実映像の上に、仮想空間を表す仮想映像を重ねて合成するため、常に現実物体よりも仮想物体が手前にあるような映像となる。ユーザが単に複合現実感映像を観察するだけであれば特に問題はないが、ユーザが、現実物体であるスタイラスを手に持って動かして、仮想物体の操作を行うような、奥行きを考慮する必要がある場合には問題が生じる。
【０００６】
つまり、ユーザが手で操作するスタイラスは現実空間を撮像する撮像装置の視野内に現れることがあり、さらには、スタイラスはユーザの手の届く範囲内程度の奥行き位置に存在している。従って、ユーザの手が届く範囲外（ユーザから見てスタイラスよりも遠く）に仮想物体があり、その仮想物体にスタイラスを用いて何らかの操作を行う場合、本来はスタイラスが仮想物体よりも手前に、つまり仮想物体に隠されずに表示されるべきである。しかし、単に現実映像の上に仮想映像を合成した場合、現実映像に含まれるスタイラスが仮想物体に隠れた複合現実感映像が生成されてしまう。そして、このような、仮想物体と現実物体（スタイラス）の奥行き関係が逆になった複合現実感映像を観察するユーザは違和感をおぼえる。
【０００７】
このような問題に対処するため、スタイラスを含む現実空間の奥行き情報を測定し、現実空間と仮想空間との奥行き関係を正しく表現する方法が提案されている。しかし、現実空間の奥行き情報をリアルタイムに、かつ精度良く測定するためには、大掛かりな測量器や多眼ステレオカメラシステムなど、高価な装置を利用する必要がある。そのため、費用的に採用が難しい場合があり、改善が求められていた。
【０００８】
比較的廉価に実現できる奥行き情報取得方法として、ユーザが装着するＨＭＤに備えた２眼ステレオカメラによって撮影した現実映像を画像処理して現実空間の奥行き情報を得る方法がある。しかし、２眼ステレオカメラ映像から得られる奥行き情報は、精度も分解能も低い。よって、奥行き関係の正確な表現が重要なアプリケーションでは採用することが難しかった。
【０００９】
このような課題を解決するために、出願人は特許文献１において、仮想映像より手前に表示すべき現実物体（被写体）の色情報を予め登録し、この色情報を用いて現実映像から被写体領域を抽出し、被写体領域には仮想映像の描画を禁止することで、奥行き関係を正しく表現する技術を提案した。しかし、この方法では、被写体領域を検出するための色情報を手作業でシステムに登録する必要があった。そして、手作業による色情報の登録には知識と慣れが必要であり、誰でもが簡単にできる作業ではないという課題があった。
【００１０】
本発明は、このような従来技術の課題に鑑みなされたものであり、簡便な構成により現実物体と仮想物体との奥行き関係を正しく表現可能な画像処理方法及び装置を提供することをその主な目的とする。
【課題を解決するための手段】
【００１１】
上述の目的は、現実空間を撮影して得られる現実空間画像に、所定の位置姿勢を有する仮想物体の画像を位置合わせして合成することにより複合現実感映像を生成する画像処理方法であって、仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢情報を検出する現実物体位置姿勢情報取得工程と、現実物体を表すモデルと、現実物体の位置姿勢情報と、仮想物体の位置姿勢とから、仮想物体とモデルとの位置関係を検出する位置関係取得工程と、仮想物体とモデルの画像を位置関係に応じた背景透過率を用いて描画する描画工程と、現実空間画像上に、描画工程で生成した画像を合成し、複合現実感映像を生成する合成工程とを有することを特徴とする画像処理方法によって達成される。
【００１２】
また、上述の目的は、現実空間を撮影して得られる現実空間画像に、所定の位置姿勢を有する仮想物体の画像を位置合わせして合成することにより複合現実感映像を生成する画像処理装置であって、仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢情報を検出する現実物体位置姿勢情報取得手段と、現実物体を表すモデルと、現実物体の位置姿勢情報と、仮想物体の位置姿勢とから、仮想物体とモデルとの位置関係を検出する位置関係取得手段と、仮想物体とモデルの画像を位置関係に応じた背景透過率を用いて描画する描画手段と、現実空間画像上に、描画手段で生成した画像を合成し、複合現実感映像を生成する合成手段とを有することを特徴とする画像処理装置によっても達成される。
【００１３】
また、上述の目的は、コンピュータに本発明の画像処理方法を実施させるプログラムもしくはこのプログラムを格納したコンピュータ読み取り可能な記録媒体によっても達成される。
【発明の効果】
【００１４】
以上述べたように、本発明によれば、現実物体と仮想物体との奥行き関係を正しく、かつ簡便に表現することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、添付の図面を参照して本発明をその好適な実施形態に基づいて詳細に説明する。
●［第１の実施形態］
図１は本発明の第１の実施形態に係る画像処理装置を用いた複合現実感システムの構成例を示すブロック図である。
図１において、複合現実感システムは、本実施形態に係る画像処理装置としての演算処理部１００と、ユーザが頭部に装着する頭部装着部２００と、スタイラスやユーザ視点の位置姿勢を検出するためのセンサ部３００とから構成される。
【００１６】
演算処理部１００は、例えばコンピュータなどの計算機から構成され、ＣＰＵ１０１、ＲＡＭ１０２、画像出力装置１０３、システムバス１０４、ディスク装置１０５、入力装置１０６、画像入力装置１０７を備える。
【００１７】
ＣＰＵ１０１は、例えばディスク装置１０５に記憶される画像処理プログラムを実行し、演算処理部１００内の各部を制御することで、後述する画像処理を実現する。ＣＰＵ１０１はシステムバス１０４に接続され、ＲＡＭ１０２、画像出力装置１０３、ディスク装置１０５、入力装置１０６、画像入力装置１０７と相互に通信することが可能である。
【００１８】
ＲＡＭ１０２は、システムバス１０４を介して、画像処理プログラムのプログラムコードやプログラムの制御情報、画像入力装置１０７から入力した実写画像（現実映像）データのほか、ＣＧモデルや仮想物体の配置情報などの仮想空間データ、センサ計測値、センサ較正データ等の各種データを一時的に保持する。また、ＲＡＭ１０２は、図示しないビデオバッファを備え、画像データはビデオバッファに保持される。仮想空間データには、後述する仮想物体モデル４０２やスタイラスモデル４０３といったＣＧモデル（形状やテクスチャなどの情報）と、仮想物体モデル４０２やスタイラスモデル４０３が仮想空間内に配置される位置・姿勢情報、などが含まれる。仮想物体モデル４０２，スタイラスモデル４０３については、後述する。なお、本明細書においては、仮想物体モデルのことを仮想物体とも呼ぶ。
【００１９】
画像出力装置１０３は、グラフィックスカードなどの機器によって実現される。一般的に、画像出力装置１０３は図示しないグラフィックスメモリを保持している。ＣＰＵ１０１上で実行されるプログラムによって生成された画像情報は、システムバス１０４を介して、画像出力装置１０３が保持するグラフィックスメモリに書き込まれる。画像出力装置１０３は、グラフィックスメモリに書き込まれた画像情報を適切な画像信号に変換して表示装置２０１に送出する。グラフィックスメモリは必ずしも画像出力装置１０３が保持する必要はなく、ＲＡＭ１０２がグラフィックスメモリの機能を実現してもよい。
【００２０】
システムバス１０４は、演算処理部１００を構成する各部が相互に通信するための通信路である。
ディスク装置１０５は、ハードディスクドライブ等によって実現される。ディスク装置１０５は、画像処理プログラムのプログラムコードやプログラムの制御情報、仮想空間データ、センサ較正データなどを保持する。
【００２１】
入力装置１０６は、各種インタフェース機器によって実現され、演算処理部１００の外部に接続された機器からの信号をデータとして入力し、システムバス１０４を介して、ＲＡＭ１０２にデータを書き込む。また、入力装置１０６はキーボードやマウスなどの機器を備え、本装置のユーザからの操作入力を受け付ける。
【００２２】
画像入力装置１０７は、ビデオキャプチャカードなどの機器によって実現され、頭部装着部２００の撮像装置２０２から送出される実写画像を入力し、システムバス１０４を介して、ＲＡＭ１０２に画像データを書き込む。なお、表示装置２０１に光学シースルー型の表示装置を用いる場合には、画像入力装置１０７は具備しなくてもよい。
【００２３】
頭部装着部２００は、複合現実感を体験するユーザが頭部に装着するビデオシースルー型ＨＭＤなどによって実現される。頭部装着部２００は表示装置２０１、撮像装置２０２、センサ３０１から構成される。本実施形態では、表示装置２０１、撮像装置２０２及びセンサ３０１をユーザが頭部に装着する構成を有するが、同等の複合現実感をユーザが体験できれば、これらは必ずしもユーザ頭部に装着する必要はない。
【００２４】
表示装置２０１は、ビデオシースルー型ＨＭＤに備えられるディスプレイによって実現される。表示装置２０１は画像出力装置１０３から送出される画像信号を表示し、ユーザの眼前に複合現実感映像を提示するために用いられる。表示装置２０１は頭部装着部２００を構成する装置であるが、必ずしもユーザが装着する必要はない。ユーザが映像を確認することができる手段であれば、例えば表示装置２０１として据え置き型のディスプレイ装置を用いてもよいし、手持ち可能なディスプレイを用いてもよい。
【００２５】
撮像装置２０２は、ＣＣＤカメラなどの１つ以上の撮像装置によって実現される。撮像装置２０２はユーザの視点から見た現実空間の実写画像を撮像するために用いられる。そのため、撮像装置２０２はユーザの頭部の中でも視点位置に近い場所に装着することが望ましいが、ユーザの視点から見た画像を生成可能な実写画像を取得できる手段であれば、これに限定されない。また、ハーフミラーやプリズムなどを用いて撮像装置２０２の光軸と、表示装置２０１の中心軸を一致させてもよい。撮像装置２０２が撮像した実写画像は、（アナログ信号もしくは例えばＩＥＥＥ１３９４規格のデジタル信号などからなる）画像信号として画像入力装置１０７に送出される。なお、表示装置２０１に光学シースルー型の表示装置を用いる場合には、本装置のユーザは表示装置２０１を通して現実世界を直接観察することになるため、撮像装置２０２は具備しなくてもよい。
【００２６】
センサ部３００は、例えば磁気センサなどの６自由度の位置姿勢計測装置によって実現され、本装置を利用するユーザの視点（センサ３０１）およびスタイラス３０２の位置・姿勢を計測し、演算処理部１００の入力装置１０６に送出する。センサ部３００は、センサ３０１、スタイラス３０２、センサ制御装置３０３から構成される。
【００２７】
センサ３０１は、センサ制御装置３０３の制御により、本装置のユーザの視点位置・姿勢を計測し、センサ制御装置３０３に送出する。厳密にはセンサ３０１が存在（測定）する位置と、ユーザの視点位置とは一致しない。しかし、ユーザは頭部装着部２００を頭部に装着しているため、センサ３０１の位置とユーザの視点位置との位置ずれ量（オフセット量）は一定とみなせる。よって、あらかじめその位置ずれ量（オフセット量）を求め、センサ３０１の測定値をオフセット量で補正すればよい。本明細書においては、説明及び理解を容易にするため、位置ずれ量（オフセット量）の扱いについての説明を省略し、センサ３０１によって計測する位置姿勢と、ユーザの視点位置・姿勢とが同じものとして取り扱う。また、センサ３０１は、ユーザが頭部に装着する頭部装着部２００、センサ部３００双方の構成要素である。
【００２８】
スタイラス３０２は、ペンに似た形状をしたデバイスであり、ユーザが手に持って使用する。また、スタイラス３０２はセンサ３０１と同様のセンサを備え、スタイラス３０２の位置・姿勢を計測することができる。図２はスタイラス３０２の形状および構成の例を示す外観図である。スタイラス３０２は、センサ制御装置３０３の制御により、先端部３０５の位置・姿勢を計測し、センサ制御装置３０３に送出する。以後、本明細書では、スタイラスの先端部３０５の位置をスタイラス３０２の位置、スタイラスの軸（先端部３０５を通り、スタイラス３０２の長さ方向に平行な軸）が向いている方向をスタイラス３０２の姿勢と表記する。また、スタイラス３０２には押しボタンスイッチ３０４が１つ以上取り付けられている。押しボタンスイッチ３０４のオン／オフはセンサ制御装置３０３へ通知される。
【００２９】
センサ制御装置３０３は、センサ３０１、スタイラス３０２に制御命令を送出し、また、センサ３０１、スタイラス３０２から位置・姿勢計測値や、押しボタンスイッチ３０４の操作情報を取得する。センサ制御装置３０３は、取得したセンサ３０１、スタイラス３０２の位置・姿勢計測値を、センサ３０１、スタイラス３０２の位置姿勢情報として入力装置１０６に送出する。また、取得した押しボタンスイッチ３０４の操作情報を入力装置１０６に送出する。
【００３０】
以上のような構成を備えたシステムにおける処理の流れについて、図３に示すフローチャートを用いて説明する。なお、図３の処理を実現するためのプログラムコードは、ディスク装置１０５やＲＡＭ１０２などの記憶装置内に格納され、ＣＰＵ１０１により読み出され、実行される。
【００３１】
まず、ステップＳ１０００では、初期化処理を行う。初期化とは、システムを構成する各機器の電源を入れたり、プログラムを起動したりといった、本実施形態の処理手順を進めるにあたり最初に行なう処理である。
【００３２】
ステップＳ１０１０では、頭部装着部２００の構成要素である撮像装置２０２で撮像された現実空間の映像を、画像入力装置１０７を通して演算処理部１００に取り込む。そして、取り込んだ現実空間の映像データをビデオバッファなどのメモリに描画する。
【００３３】
ステップＳ１０２０では、頭部装着部２００の構成要素であるセンサ３０１とセンサ制御装置３０３とを利用して、ユーザの視点位置姿勢を計測する。また、スタイラス３０２とセンサ制御装置３０３とを利用して、スタイラス３０２の位置姿勢を計測する。次に、計測したユーザの視点位置姿勢情報、およびスタイラス３０２の位置姿勢情報を、入力装置１０６を通して演算処理部１００に取り込む。そして、取り込んだユーザの視点位置姿勢情報、およびスタイラス３０２の位置姿勢情報を、ディスク装置１０５もしくはＲＡＭ１０２に記憶する。
【００３４】
次に、仮想空間データに含まれる仮想物体モデル（仮想物体）４０２と、スタイラス３０２との位置関係に基づいて、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を分割する処理を行う。ここで、ＨＭＤ視界領域は、ビデオバッファによって構成される。しかし、スタイラス３０２は現実空間中に存在する現実の物体であるため、仮想空間中に存在する仮想モデル４０２との位置関係を求めることはできない。そこでステップＳ１０３０ではまず、スタイラス３０２の代わりに、スタイラス３０２の形状と同一（もしくは似せた形状）の仮想物体を表すスタイラスモデル４０３を用意する。そして、スタイラスモデル４０３を、ステップＳ１０２０で計測したスタイラス３０２の位置姿勢に合わせて仮想空間中に配置する。
【００３５】
なお、スタイラスモデル４０３を仮想空間に配置するには、現実空間の座標系と仮想空間の座標系を完全に一致させる必要があるが、それは例えば特開２００２−２２９７３０号公報、特開２００３−２６９９１３号公報などに記載される方法で実現することができる。こうすることで、スタイラスモデル４０３と、仮想モデル４０２とは同じ仮想空間内に配置されるので、それらの位置関係を求めることができる。そして、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を分割する。具体的には、スタイラスモデル４０３と仮想モデル４０２とをＨＭＤ視界領域に透視投影変換した像の位置関係によって、ＨＭＤ視界領域の分割処理を行う。分割する領域区分は以下のとおりである。
【００３６】
・領域Ａ：仮想モデル４０２のみ描画する領域。
・領域Ｂ：スタイラスモデル４０３のみ描画する領域、もしくはスタイラスモデル４０３と仮想モデル４０２とを描画するが、ユーザ視点位置から見てスタイラスモデル４０３の表面が一番手前にある領域。（すなわち所謂ＣＧ技術におけるＺ−バッファ値を考えた場合、最も小さいＺ−バッファ値がスタイラスモデル４０３の表面による値である領域。）
・領域Ｃ−１：スタイラスモデル４０３と仮想モデル４０２とを描画するが、ユーザ視点位置から見てスタイラスモデル４０３の表面の手前に仮想モデル４０２の表面が１枚だけある領域。（すなわち所謂ＣＧ技術におけるＺ−バッファ値を考えた場合、最も小さいＺ−バッファ値が仮想モデル４０２の表面による値であり、また２番目に小さいＺ−バッファ値がスタイラスモデル４０３の表面による値である領域。）
・領域Ｃ−２：スタイラスモデル４０３と仮想モデル４０２とを描画するが、ユーザ視点位置から見てスタイラスモデル４０３の表面の手前に仮想モデル４０２の表面が２枚ある領域。（すなわち所謂ＣＧ技術におけるＺ−バッファ値を考えた場合、最も小さいＺ−バッファ値および２番目に小さいＺ−バッファ値が仮想モデル４０２の表面による値であり、３番目に小さいＺ−バッファ値がスタイラスモデル４０３の表面による値である領域。）
・領域Ｃ−ｎ：スタイラスモデル４０３と仮想モデル４０２とを描画するが、ユーザ視点位置から見てスタイラスモデル４０３の表面の手前に仮想モデル４０２の表面がｎ枚ある領域。（すなわち所謂ＣＧ技術におけるＺ−バッファ値を考えた場合、最も小さいＺ−バッファ値からｎ番目に小さいＺ−バッファ値までが仮想モデル４０２の表面による値であり、（ｎ＋１）番目に小さいＺ−バッファ値がスタイラスモデル４０３の表面による値である領域。）
・領域Ｄ：上記Ａ〜Ｃ−ｎ以外の領域。
【００３７】
図７は、ステップＳ１０３０で行う領域分割を説明するための図であり、仮想モデル４０２と、スタイラスモデル４０３とが仮想空間中において交わっている状態が示されている。図７（ａ）は、仮想空間中に配置された仮想モデル４０２と、スタイラスモデル４０３とをユーザが観察している様子を、ユーザの上方から見た図である。なお、図７（ａ）ではユーザ視点位置を１つのみ示しているが、頭部装着部２００がステレオ型（立体表示型）のビデオシースルーＨＭＤである場合は、右眼左眼用それぞれのためにユーザ視点位置が２つあってもよい。この場合、それぞれの視点位置に応じて右眼左眼用それぞれの複合現実感映像（視差画像）が生成され、立体表示がなされる。
【００３８】
図７（ｂ）は、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を上記Ａ〜Ｄの領域区分に分割した図である。なお、図７（ｂ）は表示装置２０１に直接表示する画像を示しているのではなく、あくまでメモリ上に記憶管理されるビデオバッファにすぎない。同様に、図７（ｂ）で分割した領域（領域Ａ、領域Ｂ、領域Ｃ−１、領域Ｃ−２、領域Ｄ）を異なるパターンで記載しているのも、そのパターンで表示装置２０１に表示をするという意味ではなく、各領域範囲を区別して示すためであることは言うまでもない。
【００３９】
ステップＳ１０４０では、ステップＳ１０３０で分割した領域情報と、ステップＳ１０２０で計測した視点位置姿勢情報およびスタイラス位置姿勢情報と、ディスク装置１０５やＲＡＭ１０２に記憶している仮想モデル４０２の位置姿勢・色情報とを用いて、仮想モデル４０２およびスタイラスモデル４０３をビデオバッファなどのメモリに描画する。仮想モデル４０２およびスタイラスモデル４０３の描画は、図７（ｂ）の各領域情報をもとに、描画パラメータである透過率を領域毎に変化させるべく以下のように行う。（なお、図７（ｂ）は、表示装置２０１に表示する画像領域に対応した視界領域であるため、そのまま仮想モデル４０２およびスタイラスモデル４０３を描画するバッファに対応させることができる。）
【００４０】
・領域Ａ：仮想モデル４０２を背景透過率0％で描画する。背景は全く透過されない。
・領域Ｂ：背景（現実映像）を透過すべく、スタイラスモデル４０３のみを、かつ透明物体として描画する。（すなわち、カラーバッファの値を０として描画する。）これにより、領域Ｂについては背景（現実映像）がそのまま透過されることになる（背景透過率１００％となる）。
・領域Ｃ−１：仮想モデル４０２を背景透過率（１００−α）％で描画する。スタイラスモデル４０３は透明物体として描画する。背景が透過率（１００−α）％で透過する。
・領域Ｃ−２：仮想モデル４０２を背景透過率（１００−α×２）％で描画する。スタイラスモデル４０３は透明物体として描画する。背景が透過率（１００−α×２）％で透過する。
・領域Ｃ−ｎ：仮想モデル４０２を背景透過率（１００−α×ｎ）％で描画する。スタイラスモデル４０３は透明物体として描画する。背景が透過率（１００−α×ｎ）％で透過する。
・領域Ｄ：何も描画しない。（背景を透過すべく背景透過率を１００％とする。）
ここでαは、仮想モデルの透明度を示す既定の数値であり、仮想モデルはその色情報にαを乗算して描画される。（ただし０＜α×ｎ≦１００）
【００４１】
ステップＳ１０５０では、ステップＳ１０１０で描画した現実映像の上に、ステップＳ１０４０で描画した仮想モデル４０２およびスタイラスモデル４０３を重畳合成して、画像出力装置１０３を通して表示装置２０１に表示する。図８は、合成表示された映像を示す図である。図７（ｂ）の領域Ａに対応する領域は、仮想モデル４０２の背景透過率が０％であるので、背景である現実映像が透けて見えることはない。また、図７（ｂ）の領域Ｂに対応する領域は、スタイラスモデル４０３が透明物体として描画されているので、背景である現実映像が透けて見える。すなわち、現実映像に写っている現実物体であるスタイラス３０２が、仮想物体４０２に隠されずにそのまま見えることになる。また、図７（ｂ）の領域Ｃ−１に対応する領域（スタイラスの、仮想物体内部にある領域）は、仮想モデル４０２の背景透過率が（１００−α）％であるので、背景である現実映像が、ある程度透けて見える。例えば、α＝２０とすると、仮想モデル４０２の背景透過率は８０％になる。すなわち、現実映像に写っている現実物体であるスタイラス３０２が、仮想物体４０２に完全に隠されることなく、８０％の透過率で見えることになる。また、図７（ｂ）の領域Ｃ−２に対応する領域（スタイラスの、仮想物体の後ろにある領域）は、仮想モデル４０２の背景透過率が（１００−α×２）％であるので、背景である現実映像が、ある程度透けて見える。例えば、α＝２０とすると、仮想モデル４０２の背景透過率は６０％になる。すなわち、現実映像に写っている現実物体であるスタイラス３０２が、仮想物体４０２に完全に隠されることなく、６０％の透過率で見えることになる。以後、同様に、領域（Ｃ−ｎ）は仮想モデル４０２の背景透過率が（１００−α×ｎ）％となる。
【００４２】
このようにすることで、仮想モデル４０２と、動いている現実物体であるスタイラス３０２とがどのような奥行き関係で交わり重なっているかを、ユーザに対して正確に、かつ簡便に提示することができる。
【００４３】
ステップＳ１０６０では、ユーザが装置の終了処理を行なっていた場合、装置を終了させる。装置を終了させるとは、プログラムを終了させたり、装置を構成する各機器の電源を切ったりといった本実施形態の処理手順を終わらせるために最後に行なう処理である。ユーザが終了処理を行なっていない場合は、処理をステップＳ１０１０に戻す。
【００４４】
以上述べたように、第１の実施形態によれば、仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢を検出すると共に、この現実物体を表すモデルを用い、仮想空間で判定した仮想物体とモデルとの位置関係に応じて仮想空間画像を描画することにより、簡便な方法により、奥行き関係を精度良く表し、ユーザに違和感を与えない複合現実感映像を生成できる。
【００４５】
●［第２の実施形態］
次に、本発明の第２の実施形態に係る画像処理装置を用いた複合現実感システムについて説明する。第２の実施形態に係る複合現実感システムは、第１の実施形態において図１及び図２を用いて説明したシステム構成と同じであるため、ここでの説明は省略する。
【００４６】
図４は、本実施形態に係る複合現実感システムの全体的な動作を説明するフローチャートである。なお、以下に説明する処理を実現するためのプログラムコードは、本実施形態の装置内のディスク装置１０５やＲＡＭ１０２などの記憶装置内に格納され、ＣＰＵ１０１により読み出され、実行される。
【００４７】
ステップＳ２０００〜Ｓ２０２０は、図３におけるステップＳ１０００〜Ｓ１０２０と同じである。まず、ステップＳ２０００では、装置を初期化する処理を行う。初期化とは、装置を構成する各機器の電源を入れたり、プログラムを起動したりといった、本実施形態の処理手順を進めるにあたり最初に行なう処理である。
【００４８】
ステップＳ２０１０では、頭部装着部２００の構成要素である撮像装置２０２で撮像された現実空間の映像を、画像入力装置１０７を通して演算処理部１００に取り込む。そして、取り込んだ現実空間の映像データをビデオバッファなどのメモリに描画する。
【００４９】
ステップＳ２０２０では、頭部装着部２００の構成要素であるセンサ３０１とセンサ制御装置３０３とを利用して、ユーザの視点位置姿勢を計測する。また、スタイラス３０２とセンサ制御装置３０３とを利用して、スタイラス３０２の位置姿勢を計測する。次に、計測したユーザの視点位置姿勢情報、およびスタイラス３０２の位置姿勢情報を、入力装置１０６を通して演算処理部１００に取り込む。そして、取り込んだユーザの視点位置姿勢情報、およびスタイラス３０２の位置姿勢情報を、ディスク装置１０５もしくはＲＡＭ１０２に記憶する。
【００５０】
ステップＳ２０３０では、まずスタイラス３０２の形状と同一（もしくは似せた形状）の仮想のスタイラスモデル４０３を用意する。そして、スタイラスモデル４０３を、ステップＳ２０２０で計測したスタイラス３０２の位置姿勢に合わせて仮想空間中に配置する。なお、スタイラスモデル４０３を正しく仮想空間に配置するには、現実空間の座標系と仮想空間の座標系を完全に一致させる必要があるが、それは上述のように特開２００２−２２９７３０号公報、特開２００３−２６９９１３号公報などが示している方法で実現することができる。
【００５１】
次に、ステップＳ２０２０で計測した視点位置姿勢情報およびスタイラス位置姿勢情報と、ディスク装置１０５やＲＡＭ１０２に記憶している仮想モデル４０２の位置姿勢・色情報とを用いて、仮想モデル４０２（仮想物体）を（描画パラメータである透過率を変化させて）半透明物体として、またスタイラスモデル４０３を透明物体としてビデオバッファなどのメモリに描画する。仮想モデル４０２については、あらかじめディスク装置１０５やＲＡＭ１０２に用意された、色情報と半透明情報（所謂ＣＧ技術におけるα値）とを利用して、色情報にα値を乗算して描画する。また、スタイラスモデル４０３については、透明物体として（すなわちカラーバッファの値を０として）描画する。これにより、領域Ｂについては背景（現実映像）がそのまま透過されることになる。なお、仮想モデル４０２およびスタイラスモデル４０３以外の領域は、背景を透過すべく背景透過率を１００％としておく。
【００５２】
図９は、ステップＳ２０３０での処理を説明するための図であり、仮想モデル４０２と、スタイラスモデル４０３とが仮想空間中において交わっている様子が示されている。図９（ａ）は、仮想空間中に配置された仮想モデル４０２と、スタイラスモデル４０３とをユーザが観察している様子を、ユーザの上方から見た図である。なお、図７（ａ）ではユーザ視点位置を１つのみ示しているが、頭部装着部２００がステレオ型（立体表示型）のビデオシースルーＨＭＤである場合は、右眼左眼用それぞれのためにユーザ視点位置が２つあってもよい。この場合、それぞれの視点位置に応じて右眼左眼用それぞれの複合現実感映像（視差画像）が生成され、立体表示がなされる。
【００５３】
図９（ｂ）は、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を示す図である。（ＨＭＤ視界領域は、ビデオバッファによって構成される。）図９（ｂ）では、仮想モデル４０２は半透明物体として、またスタイラスモデル４０３は透明物体として描画されている。すなわち、仮想モデル４０２は、背景を半透過すべく本来の色よりも薄い色で描画されており、また仮想モデル４０２とスタイラスモデル４０３との交わりも正確に表現されている。なお、図９（ｂ）では、便宜上、スタイラスモデル４０３が描画される位置を点線で示しているが、実際にこの点線がビデオバッファに描画されることはない。なお、図９（ｂ）において、スタイラスモデル４０３と仮想モデル４０２とが重なる領域（スタイラスモデル４０３の先端部分）には、仮想モデル４０２が半透明描画される。
【００５４】
ステップＳ２０４０では、ステップＳ２０１０で描画した現実映像の上に、ステップＳ２０３０において描画した仮想モデル４０２およびスタイラスモデル４０３をビデオバッファなどのメモリ上で重畳合成する。（ただし、ステップＳ２０４０の時点では、この合成した映像を表示装置２０１に表示することはない。）こうすることで、仮想モデル４０２およびスタイラスモデル４０３は、色情報はそのままで、Ｚ−バッファ値の情報だけを失うことになり、背景映像と同じ扱いになる。（Ｚ−バッファ値とは、所謂ＣＧ技術において、視点位置からの奥行き情報を画素単位に定義するための値であり、ディスク装置１０５やＲＡＭ１０２で記憶管理されている。）
【００５５】
ステップＳ２０５０では、ステップＳ２０２０で計測した視点位置姿勢情報およびスタイラス位置姿勢情報を用いて、スタイラスモデル４０３を透明物体として（すなわちカラーバッファの値を０として）、ステップＳ２０４０で合成したビデオバッファとは別のビデオバッファなどのメモリに描画する。なお、ステップＳ２０５０においてスタイラスモデル４０３を描画する際には、スタイラスモデル４０３に対応する領域の背景透過率が１００％となり、背景が見えるように描画することが好ましい。
【００５６】
具体的には、Ｚ−バッファ値を小さく変化させて設定することが望ましい。具体的には、スタイラスモデル４０３が仮想モデル４０２と交わらない程度に、ユーザ視点位置から見て手前にあるようにスタイラスモデル４０３のＺ−バッファ値を変化させればよい。
【００５７】
従って、このようなＺ−バッファ値の調整は、例えば仮想モデル４０２とスタイラスモデル４０３の衝突判定を行い、仮想モデル４０２とスタイラスモデル４０３が仮想空間中において衝突せずに、かつスタイラスモデル４０３がユーザ視点位置から見て手前にあるように、スタイラスモデル４０３のＺ−バッファ値をリアルタイムに設定することにより実現できる。他の方法としては、あらかじめスタイラスモデル４０３のＺ−バッファ値を１００分の１にするなど、仮想モデル４０２とは交わらないと想定できる範囲内で、Ｚ−バッファの設定方法を事前に決定しておいてもよい。
【００５８】
ステップＳ２０６０では、ステップＳ２０２０で計測した視点位置姿勢情報と、ディスク装置１０５やＲＡＭ１０２に記憶している仮想モデル４０２の位置姿勢・色情報とを用いて、ステップＳ２０５０で使用したビデオバッファに仮想モデル４０２（仮想物体）を通常の不透明物体として描画する。一つ前のステップであるステップＳ２０５０では、スタイラスモデル４０３をＺ−バッファ値を小さくして描画したため、スタイラスモデル４０３がユーザ視点位置から見て手前に、仮想モデル４０２はユーザ視点位置から見て後ろに描画されることになる。図１０（ｂ）は、ステップＳ２０５０およびステップＳ２０６０で、スタイラスモデル４０３および仮想モデル４０２を描画した結果である。なお、図１０（ｂ）では、スタイラスモデル４０３を描画する位置を点線で描くことで分かりやすく示しているが、実際にこの点線がビデオバッファに描画されることはない。また、ステップＳ２０５０およびステップＳ２０６０では、仮想モデル４０２およびスタイラスモデル４０３以外の領域は、背景を透過すべく背景透過率を１００％としておく。
【００５９】
ステップＳ２０７０では、ステップＳ２０５０で小さく設定したスタイラスモデル４０３のＺ−バッファ値を、元の値に戻す。（リセットする。）
ステップＳ２０８０では、ステップＳ２０４０で合成したビデオバッファの上に、ステップＳ２０５０およびステップＳ２０６０で描画した仮想モデル４０２およびスタイラスモデル４０３を重畳合成して、画像出力装置１０３を通して表示装置２０１に表示する。
【００６０】
図１０は、ステップＳ２０８０で合成表示される映像を説明するための図である。図１０（ａ）は、ステップＳ２０４０で合成したビデオバッファ（すなわちステップＳ２０１０で描画した現実映像と、ステップＳ２０３０で描画した仮想モデル４０２およびスタイラスモデル４０３とを合成したもの）であり、半透明の仮想モデル４０２と、現実映像に写っている現実物体であるスタイラス３０２が交わっている様子を示している。図１０（ｂ）は、先述したとおりステップＳ２０５０およびステップＳ２０６０で描画した仮想モデル４０２およびスタイラスモデル４０３を示す図である。図１０（ａ）（ｂ）では、スタイラスモデル４０３を描画する位置を点線で描くことで分かりやすく示しているが、実際にこの点線がビデオバッファに描画されることはない。
【００６１】
そして図１０（ｃ）は、図１０（ａ）の上に図１０（ｂ）を重畳合成したものであり、最終的に表示装置２０１に表示する映像である。図１０（ｃ）を見ると分かるとおり、最終的に表示装置２０１に表示する映像では、スタイラス部分は図１０（ａ）の対応部分が現われ、それ以外の仮想モデル部分は図１０（ｂ）の対応部分が現われる。すなわち、最終的に表示装置２０１に表示する映像では、スタイラス３０２と仮想モデル４０２が重なっている様子が表示されることになる（スタイラスモデル４０３と仮想モデル４０２が重なっている部分については、半透明描画された仮想モデル４０２を透して現実画像が見え、スタイラスモデル４０３が仮想モデル４０２と重なっていない部分は直接現実画像（スタイラスの実写画像）が見える）。
【００６２】
このようにすることで、仮想モデル４０２と、ユーザが操作する現実物体であるスタイラス３０２とがどのような奥行き関係で交わり重なっているかを、ユーザに対して正確に、かつ簡便に提示することができる。
【００６３】
ステップＳ２０９０では、ユーザが装置の終了処理を行なっていた場合、装置を終了させる。装置を終了させるとは、プログラムを終了させたり、装置を構成する各機器の電源を切ったりといった本実施形態の処理手順を終わらせるために最後に行なう処理である。ユーザが終了処理を行なっていない場合は、処理をステップＳ２０１０に戻す。
【００６４】
以上述べたように、第２の実施形態によっても、仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢を検出すると共に、この現実物体を表すモデルを用い、仮想空間で判定した仮想物体とモデルとの位置関係に応じて仮想空間画像を描画することにより、簡便な方法により、奥行き関係を精度良く表し、ユーザに違和感を与えない複合現実感映像を生成できる。
【００６５】
●［第３実施形態］
次に、本発明の第３の実施形態に係る画像処理装置を用いた複合現実感システムについて説明する。第３の実施形態に係る複合現実感システムは、第１の実施形態において図１及び図２を用いて説明したシステム構成と同じであるため、ここでの説明は省略する。
【００６６】
図５は、本実施形態に係る複合現実感システムの全体的な動作を説明するフローチャートである。なお、以下に説明する処理を実現するためのプログラムコードは、本実施形態の装置内のディスク装置１０５やＲＡＭ１０２などの記憶装置内に格納され、ＣＰＵ１０１により読み出され、実行される。
【００６７】
図５のステップＳ３０００〜Ｓ３０２０は、図３におけるステップＳ１０００〜Ｓ１０２０と同じであるため、説明を省略する。
【００６８】
ステップＳ３０３０では、仮想モデル４０２（仮想物体）と、スタイラス３０２との位置関係に基づいて衝突判定の処理を行う。しかし、第１の実施形態において説明したように、スタイラス３０２は現実空間中に存在する現実の物体であるため、仮想空間中に存在する仮想モデル４０２との衝突判定を行うことはできない。そこで本実施形態においてもスタイラス３０２の代わりに、スタイラス３０２の形状と同一（もしくは似せた形状）の仮想物体を表すスタイラスモデル４０３を用意する。そして、スタイラスモデル４０３を、ステップＳ３０２０で計測したスタイラス３０２の位置姿勢に合わせて仮想空間中に配置する。
【００６９】
なお、スタイラスモデル４０３を仮想空間に配置するには、現実空間の座標系と仮想空間の座標系を完全に一致させる必要があるが、それは例えば特開２００２−２２９７３０号公報、特開２００３−２６９９１３号公報などに記載される方法で実現することができる。こうすることで、スタイラスモデル４０３と、仮想モデル４０２とは同じ仮想空間内に配置されるので、それらの衝突判定を行うことができる。ステップＳ３０３０で求めた衝突判定結果は、ディスク装置１０５もしくはＲＡＭ１０２に記憶する。なお、モデル同士の衝突判定処理はＣＧ技術においては公知の技術であり、本明細書においてその説明は行わない。
【００７０】
ステップＳ３０４０では、ステップＳ３０３０で求めた衝突判定結果と、ステップＳ３０２０で計測した視点位置姿勢情報およびスタイラス位置姿勢情報と、ディスク装置１０５やＲＡＭ１０２に記憶している仮想モデル４０２の位置姿勢・色情報とを用いて、仮想モデル４０２およびスタイラスモデル４０３をビデオバッファなどのメモリに描画する。
【００７１】
ステップＳ３０４０の処理は、ステップＳ３０３０で求めた衝突判定結果をもとに、図１１に従って行う。
すなわち、ステップＳ３０４１で、仮想モデル４０２とスタイラスモデル４０３との衝突があったと判定された場合は、処理をステップＳ３０４２に進ませる。ステップＳ３０４２では、図１１（ａ）に示すように、仮想モデル４０２を（描画パラメータである透過率を変化させて）半透明物体として描画し、スタイラスモデル４０３を描画しない。（図１１（ａ）は、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を示す図である。（ＨＭＤ視界領域は、ビデオバッファによって構成される。））
【００７２】
また、ステップＳ３０４１で、仮想モデル４０２とスタイラスモデル４０３との衝突がなかったと判定された場合は、処理をステップＳ３０４３に進ませる。ステップＳ３０４３では、図１１（ｂ）もしくは図１１（ｃ）に示すように、仮想モデル４０２を通常の不透明物体として描画し、スタイラスモデル４０３を透明物体として（すなわちカラーバッファの値を０として）描画する。なお、図１１（ｂ）は、ユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも手前にある場合を示しており、逆に、図１１（ｃ）は、ユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも後ろにある場合を示している。（図１１（ｂ）（ｃ）は、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を示す図である。（ＨＭＤ視界領域は、ビデオバッファによって構成される。））
【００７３】
なお、図１１では、スタイラスモデル４０３の位置を点線で描くことで分かりやすく示しているが、実際にこの点線がビデオバッファに描画されることはない。また、仮想モデル４０２およびスタイラスモデル４０３以外の領域は、背景を透過すべく背景透過率を１００％としておく。
【００７４】
ステップＳ３０５０では、ステップＳ３０１０で描画した現実映像の上に、ステップＳ３０４０で描画した仮想モデル４０２およびスタイラスモデル４０３を重畳合成して、画像出力装置１０３を通して表示装置２０１に表示する。図１２は、合成表示された映像を示す図である。図１２（ａ）は、図１１（ａ）に示したビデオバッファと、現実映像を合成した映像である。仮想モデル４０２とスタイラスモデル４０３が衝突しているとき、図１２（ａ）に示すように、仮想モデル４０２が半透明表示される。こうすることで、スタイラスの衝突部分が仮想物体を透かして見え、仮想モデル４０２とスタイラス３０２が交わっているような状況を示すことができる。
【００７５】
図１２（ｂ）は、図１１（ｂ）に示したビデオバッファと、現実映像を合成した映像である。仮想モデル４０２とスタイラスモデル４０３が衝突していなく、かつユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも手前にある場合には、図１２（ｂ）に示すように、ユーザ視点位置から見てスタイラス３０２が仮想モデル４０２よりも手前にあるように示すことができる。図１２（ｃ）は、図１１（ｃ）に示したビデオバッファと、現実映像を合成した映像である。仮想モデル４０２とスタイラスモデル４０３が衝突していなく、かつユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも後ろにある場合には、図１２（ｃ）に示すように、ユーザ視点位置から見てスタイラス３０２が仮想モデル４０２よりも後ろにあるように示すことができる。
【００７６】
また、ステップＳ３０４２の変形例として、仮想モデル４０２とスタイラスモデル４０３とが衝突している場合に、その位置関係を比較して、ユーザ視点位置から見たスタイラスモデル４０３が、仮想モデル４０２に対して奥に移動するに従って、仮想モデル４０２の透明度を高めるように半透明情報（所謂ＣＧ技術におけるα値）を制御してもよい。
【００７７】
このようにすることで、仮想モデル４０２と、動いている現実物体であるスタイラス３０２とがどのような奥行き関係で交わり重なっているかを、ユーザに対して正確に、かつ簡便に提示することができる。
【００７８】
ステップＳ３０６０では、ユーザが装置の終了処理を行なっていた場合、装置を終了させる。装置を終了させるとは、プログラムを終了させたり、装置を構成する各機器の電源を切ったりといった本実施形態の処理手順を終わらせるために最後に行なう処理である。ユーザが終了処理を行なっていない場合は、処理をステップＳ３０１０に戻す。
【００７９】
また、本実施形態のステップＳ３０３０において、スタイラスモデル４０３と仮想モデル４０２との衝突があったことを判定した瞬間に、衝突があったことを表現するための効果音を出してもよい。また、スタイラス３０２に振動素子を備え、ステップＳ３０３０において、スタイラスモデル４０３と仮想モデル４０２との衝突があったことを判定した瞬間に、スタイラス３０２を既定の時間だけ振動させて、衝突があったことをユーザに知らせてもよい。
【００８０】
また、本実施形態のステップＳ３０４２では、スタイラスモデル４０３が交わり重なっている状態を示すことができれば、仮想モデル４０２の全ての面のうち、一部分の面のみ半透明表示してもよい。
【００８１】
以上述べたように、第３の実施形態によっても、仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢を検出すると共に、この現実物体を表すモデルを用い、仮想空間で判定した仮想物体とモデルとの位置関係に応じて仮想空間画像を描画することにより、簡便な方法により、奥行き関係を精度良く表し、ユーザに違和感を与えない複合現実感映像を生成できる。
【００８２】
●［第４実施形態］
次に、本発明の第４の実施形態に係る画像処理装置を用いた複合現実感システムについて説明する。第４の実施形態に係る複合現実感システムは、第１の実施形態において図１及び図２を用いて説明したシステム構成と同じであるため、ここでの説明は省略する。
【００８３】
図６は、本実施形態に係る複合現実感システムの全体的な動作を説明するフローチャートである。なお、以下に説明する処理を実現するためのプログラムコードは、本実施形態の装置内のディスク装置１０５やＲＡＭ１０２などの記憶装置内に格納され、ＣＰＵ１０１により読み出され、実行される。
【００８４】
図６のステップＳ４０００〜Ｓ４０３０は、図５におけるステップＳ３０００〜Ｓ３０３０と同じであるため、説明を省略する。
【００８５】
ステップＳ４０４０では、まずステップＳ４０３０で求めた衝突判定結果に従って、スタイラスモデル４０３に対して分割もしくは非分割処理を施す。そして、ステップＳ４０２０で計測した視点位置姿勢情報およびスタイラス位置姿勢情報と、ディスク装置１０５やＲＡＭ１０２に記憶している仮想モデル４０２の位置姿勢・色情報と、ディスク装置１０５やＲＡＭ１０２に記憶しているスタイラスモデルパーツの色情報とを用いて、仮想モデル４０２およびスタイラスモデル４０３（分割した場合は各パーツ）をビデオバッファなどのメモリに描画する。
【００８６】
ステップＳ４０４０の処理は、ステップＳ４０３０で求めた衝突判定結果をもとに、図１３に従って行う。すなわち、ステップＳ４０４１で、仮想モデル４０２とスタイラスモデル４０３との衝突があったと判定された場合は、処理をステップＳ４０４２に進ませる。ステップＳ４０４２ではまず、図１３（ａ）に示すように、衝突面（交差面）を境界面として、スタイラスモデルをスタイラスモデルパーツ（Ｐ１〜Ｐ３）に分割する。ここでのパーツＰ１〜Ｐ３は、第１の実施形態における領域Ｂ、領域Ｃ−１及び領域Ｃ−２にそれぞれ対応する。
【００８７】
次に、仮想モデル４０２内にあるスタイラスモデルパーツ（Ｐ２）に色を付けて描画し、仮想モデル４０２外のスタイラスモデルパーツ（Ｐ１、Ｐ３）を透明物体として（すなわちカラーバッファの値を０として）描画する。Ｐ２は、奥行き情報を無視して、仮想物体よりも手前にあるものとして描画するとともに、その存在が目立つように描画パラメータを変化させて行う。例えば、あらかじめ定めた色で描画しても、半透明で描画しても、メッシュ模様の網模様で描画しても、ワイアフレームで描画しても、点滅させるように描画してもよい。また、仮想モデル４０２自体は、通常の不透明物体として描画する。（図１３（ａ）は、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を示す図である。（ＨＭＤ視界領域は、ビデオバッファによって構成される。））
【００８８】
また、ステップＳ４０４１で、仮想モデル４０２とスタイラスモデル４０３との衝突がなかったと判定された場合は、処理をステップＳ４０４３に進ませる。ステップＳ４０４３ではスタイラスモデル４０３を分割せずに、図１３（ｂ）もしくは図１３（ｃ）に示すように、仮想モデル４０２を通常の不透明物体として描画し、スタイラスモデル４０３を透明物体として（すなわちカラーバッファの値を０として）描画する。なお、図１３（ｂ）は、ユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも手前にある場合を示しており、逆に、図１３（ｃ）は、ユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも後ろにある場合を示している。（図１３（ｂ）（ｃ）は、表示装置２０１に表示する画像領域に対応した視界領域（ＨＭＤ視界領域）を示す図である。（ＨＭＤ視界領域は、ビデオバッファによって構成される。））
【００８９】
なお、図１３では、スタイラスモデル４０３（分割した場合はスタイラスモデルパーツＰ１〜３）の位置を点線で描くことで分かりやすく示しているが、実際にこの点線がビデオバッファに描画されることはない。また、仮想モデル４０２およびスタイラスモデル４０３（分割した場合はスタイラスモデルパーツＰ１〜３）以外の領域は、背景を透過すべく背景透過率を１００％としておく。
【００９０】
ステップＳ４０５０では、ステップＳ４０１０で描画した現実映像の上に、ステップＳ４０４０で描画した仮想モデル４０２およびスタイラスモデル４０３（分割した場合はスタイラスモデルパーツＰ１〜３）を重畳合成して、画像出力装置１０３を通して表示装置２０１に表示する。図１４は、合成表示された映像を示す図である。図１４（ａ）は、図１３（ａ）に示したビデオバッファと、現実映像を合成した映像である。仮想モデル４０２とスタイラスモデル４０３が衝突しているとき、図１４（ａ）に示すように、スタイラスモデル４０３と仮想モデル４０２が交わっている部分の色が変わる。こうすることで、仮想モデル４０２とスタイラス３０２が交わっているような状況を示すことができる。図１４（ａ）の変形例として、図１４（ａ'）が考えられる。図１４（ａ'）では、スタイラスモデルパーツＰ１〜３の輪郭線を、奥行き情報を無視して一番手前になるように再描画している。こうすることで、ユーザ視点位置から見て仮想モデル４０２の奥にあるスタイラスモデルパーツＰ１の位置を示すことができる。
【００９１】
図１４（ｂ）は、図１３（ｂ）に示したビデオバッファと、現実映像を合成した映像である。仮想モデル４０２とスタイラスモデル４０３が衝突していなく、かつユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも手前にある場合には、図１４（ｂ）に示すように、ユーザ視点位置から見てスタイラス３０２が仮想モデル４０２よりも手前にあるように示すことができる。図１４（ｃ）は、図１３（ｃ）に示したビデオバッファと、現実映像を合成した映像である。仮想モデル４０２とスタイラスモデル４０３が衝突していなく、かつユーザ視点位置から見てスタイラスモデル４０３が仮想モデル４０２よりも後ろにある場合には、図１４（ｃ）に示すように、ユーザ視点位置から見てスタイラス３０２が仮想モデル４０２よりも後ろにあるように示すことができる。
【００９２】
このようにすることで、仮想モデル４０２と、動いている現実物体であるスタイラス３０２とがどのような奥行き関係で交わり重なっているかを、ユーザに対して正確に、かつ簡便に提示することができる。
【００９３】
ステップＳ４０６０では、ユーザが装置の終了処理を行なっていた場合、装置を終了させる。装置を終了させるとは、プログラムを終了させたり、装置を構成する各機器の電源を切ったりといった本実施形態の処理手順を終わらせるために最後に行なう処理である。ユーザが終了処理を行なっていない場合は、処理をステップＳ４０１０に戻す。
【００９４】
本実施形態においても、第３の実施形態と同様、ステップＳ４０３０において、スタイラスモデル４０３と仮想モデル４０２との衝突があったことを判定した瞬間に、衝突があったことを表現するための効果音を出してもよい。また、スタイラス３０２に振動素子を備え、ステップＳ４０３０において、スタイラスモデル４０３と仮想モデル４０２との衝突があったことを判定した瞬間に、スタイラス３０２を既定の時間だけ振動させて、衝突があったことをユーザに知らせてもよい。
【００９５】
以上述べたように、第３の実施形態によっても、仮想物体に隠されずに表示すべき状態になりうる現実物体の位置姿勢を検出すると共に、この現実物体を表すモデルを用い、仮想空間で判定した仮想物体とモデルとの位置関係に応じて仮想空間画像を描画することにより、簡便な方法により、奥行き関係を精度良く表し、ユーザに違和感を与えない複合現実感映像を生成できる。
【００９６】
［その他の実施形態］
上述の実施形態では、位置・姿勢を計測する手段として磁気を使った装置を例に説明したが、発明の本質としてはこれに限定されるものではなく、光学的な位置姿勢計測装置や、機械的な位置姿勢計測装置や、測量機など他の手段で実現できることはいうまでもない。
【００９７】
また、第１の実施形態のステップＳ１０４０や第２の実施形態のステップＳ２０３０、第３の実施形態のステップＳ３０４２などにおいて半透明描画を行っているが、網模様のメッシュ表現で描画してもよいし、ワイアフレーム表現で描画してもよいことは言うまでもない。要は、仮想物体とユーザが手に持って操作するデバイス（スタイラス）との奥行き関係が視覚的に把握できる表示形態であれば、分割した領域毎に背景透過率以外の描画パラメータを変更することができる。
【００９８】
また、第１の実施形態において背景透過率を減らすαの値を固定にしたが、ｎの数に応じてαの値を変更したり、背景透過率を（１００−β）％とし、予めｎの数に応じてβの値を設定しておくことも可能である。
【００９９】
また、上述の実施形態においては、仮想物体に隠されずに表示すべき現実物体として、ユーザが手に持って操作するスタイラスを例にして説明したが、それ以外の現実物体であってもよく、またユーザが操作するデバイスで無くても良い。少なくとも位置姿勢を検出することが可能である任意の現実物体に対して上述の方法を適用可能であることは言うまでもない。
【０１００】
また、各図に示されている各構成について、同じ符号を有する構成は同じ機能を実現するものであることは言うまでもない。
【０１０１】
また、上述の実施形態においてはいずれも、センサや表示装置などを有する複合現実感システムに本発明を適用した場合について説明したが、ユーザの視点位置・姿勢及びスタイラスの位置姿勢が得られさえすれば、センサや表示装置自体を有する必要はない。すなわち、演算処理部１００のみの構成であってもよい。
【０１０２】
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１０３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１０５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態に係る画像処理装置を用いた複合現実感システムの構成例を示すブロック図である。
【図２】本発明の実施形態で用いるスタイラスの構成例を示す図である。
【図３】本発明の第１の実施形態における画像処理手順を説明するためのフローチャートである。
【図４】本発明の第２の実施形態における画像処理手順を説明するためのフローチャートである。
【図５】本発明の第３の実施形態における画像処理手順を説明するためのフローチャートである。
【図６】本発明の第４の実施形態における画像処理手順を説明するためのフローチャートである。
【図７】本発明の第１の実施形態における仮想モデルおよびスタイラスモデルの描画処理を説明するための図である。
【図８】本発明の第１の実施形態における合成表示画像を説明するための図である。
【図９】本発明の第２の実施形態における仮想モデルおよびスタイラスモデルの描画処理を説明するための図である。
【図１０】本発明の第２の実施形態における合成表示画像を説明するための図である。
【図１１】本発明の第３の実施形態における仮想モデルおよびスタイラスモデルの描画処理を説明するための図である。
【図１２】本発明の第３の実施形態における合成表示画像を説明するための図である。
【図１３】本発明の第４の実施形態における仮想モデルおよびスタイラスモデルの描画処理を説明するための図である。
【図１４】本発明の第４の実施形態における合成表示画像を説明するための図である。
【図１】
2005293142.tif 000003
【図２】
2005293142.tif 000004
【図３】
2005293142.tif 000005
【図４】
2005293142.tif 000006
【図５】
2005293142.tif 000007
【図６】
2005293142.tif 000008
【図７】
2005293142.tif 000009
【図８】
2005293142.tif 000010
【図９】
2005293142.tif 000011
【図１０】
2005293142.tif 000012
【図１１】
2005293142.tif 000013
【図１２】
2005293142.tif 000014
【図１３】
2005293142.tif 000015
【図１４】
2005293142.tif 000016