(57)【要約】【課題】  現実空間の画像上に仮想物体の画像を重畳する場合に、仮想物体について、現実空間の画像中の所定の領域と重なる部分をマスキングするか否かを切り替え可能にする為の技術を提供すること。【解決手段】  それぞれの仮想物体の画像毎にマスキング箇所のマスキングを行うか否かを設定し、マスキングを行わないと設定した仮想物体の第１の画像を生成し（Ｓ３０５）、マスキングを行うと設定した仮想物体の画像中のマスキング箇所をマスキングした第２の画像を生成し、第１，２の画像を重畳させた第３の画像を生成し、現実空間の画像上に第３の画像を重畳させた画像を生成する（Ｓ３０９）。【選択図】  図３
2005346468.tif 000002
【特許請求の範囲】
【請求項１】
現実空間の画像を取得する現実画像取得工程と
視点位置姿勢を取得する視点位置姿勢取得工程と、
仮想物体情報を用いて、前記視点位置姿勢に応じた仮想空間の画像を生成する仮想画像生成工程と、
特定のオブジェクト領域を検出する検出工程と、
前記検出したオブジェクト領域に応じて、前記仮想空間の画像に対するマスキング処理を行うマスキング処理工程と、
前記現実空間の画像と前記マスキング処理された仮想空間の画像とを合成する合成工程と、
前記仮想物体情報に含まれるマスキング処理制御情報に応じて、マスキング処理を制御する制御工程と
を備えることを特徴とする画像処理方法。
【請求項２】
前記マスキング処理制御情報は、各仮想物体ごとにモデル情報とともに管理されており、
前記マスキング処理の制御は、仮想物体ごとに行われることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記マスキング処理制御情報は、動的に変更可能であることを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記視点位置と前記仮想物体の位置との間の距離に応じて、前記マスキング処理制御情報を設定することを特徴とする請求項３に記載の画像処理方法。
【請求項５】
前記マスキング処理情報は、ユーザの指示に応じて設定可能であることを特徴とする請求項１又は２に記載の画像処理方法。
【請求項６】
前記検出工程では、前記現実画像から前記特定のオブジェクト領域を検出することを特徴とする請求項１乃至５の何れか１項に記載の画像処理方法。
【請求項７】
現実空間の画像上に仮想物体の画像を重畳する画像処理方法であって、
それぞれの仮想物体の画像毎に、マスキング箇所のマスキングを行うか否かを設定する設定工程と、
前記設定工程でマスキングを行わないと設定した仮想物体の画像を生成する第１の生成工程と、
マスキング領域を設定するマスキング領域設定工程と、
前記マスキング領域に応じて、前記設定工程でマスキングを行うと設定した仮想物体の画像中の前記マスキング箇所をマスキングした画像を生成する第２の生成工程と
を備えることを特徴とする画像処理方法。
【請求項８】
前記設定工程では、仮想物体の画像を強調表示する時間内だけ、当該仮想物体について、前記マスキング箇所のマスキングは行わないと設定することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
コンピュータに請求項１乃至８の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを格納することを特徴とする、コンピュータ読みとり可能な記憶媒体。
【請求項１１】
現実空間の画像を取得する現実画像取得手段と
視点位置姿勢を取得する視点位置姿勢取得手段と、
仮想物体情報を用いて、前記視点位置姿勢に応じた仮想空間の画像を生成する仮想画像生成手段と、
特定のオブジェクト領域を検出する検出手段と、
前記検出したオブジェクト領域に応じて、前記仮想空間の画像に対するマスキング処理を行うマスキング処理手段と、
前記現実空間の画像と前記マスキング処理された仮想空間の画像とを合成する合成手段と、
前記仮想物体情報に含まれるマスキング処理制御情報に応じて、マスキング処理を制御する制御手段と
を備えることを特徴とする画像処理装置。
【請求項１２】
現実空間の画像上に仮想物体の画像を重畳する画像処理装置であって、
それぞれの仮想物体の画像毎に、マスキング箇所のマスキングを行うか否かを設定する設定手段と、
前記設定手段によりマスキングを行わないと設定した仮想物体の画像を生成する第１の生成手段と、
マスキング領域を設定するマスキング領域設定手段と、
前記マスキング領域に応じて、前記設定手段によりマスキングを行うと設定した仮想物体の画像中の前記マスキング箇所をマスキングした画像を生成する第２の生成手段と
を備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間の画像上に仮想物体の画像を重畳する為の技術に関するものである。
【背景技術】
【０００２】
従来より、現実世界の映像と、三次元モデリングされたＣＧ（コンピュータグラフィックス）による映像とを重畳して表示し、あたかも現実の世界中にＣＧで描かれた物体（仮想物体）が存在しているかのように見せることができるような複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）提示装置が存在する。
【０００３】
これは、現実の映像を撮影するための現実映像撮影手段（たとえばビデオカメラ）と、現実の映像を撮影している位置から見たようにＣＧ映像を作り出すＣＧ映像生成手段と、両者を合成して表示することのできる映像表示手段（たとえばＨＭＤ（ヘッドマウントディスプレイ）またはモニタ）からなる装置である。
【０００４】
ここでは、現実映像撮影手段の視線の位置姿勢が変わった場合であってもＣＧと現実映像との位置関係を正しく表示するために、現実映像撮影手段（ビデオカメラ）の視線位置・視線方向を検出するための、視線位置姿勢検出手段（たとえば位置姿勢センサ）を備えている。
【０００５】
ＣＧ映像生成手段は、三次元モデリングされたＣＧを、現実空間と同じスケールの仮想空間に置き、視線位置姿勢検出手段によって検出された視線位置、視線方向から観察されたものとしてＣＧをレンダリングするものである。このようにして生成されたＣＧ映像と現実の映像とを重畳すると、結果として、現実映像撮影手段がどの視線位置・視線方向から観察した場合でも、現実空間の中に正しくＣＧで生成された映像が置かれているような映像を表示ことができる。ＣＧの種類や配置の変更、アニメーションなどは、一般的なＣＧと同様に、自由に行える。ＣＧの位置を指定するためにもうひとつ位置姿勢センサを備えて位置姿勢センサの値どおりの場所にＣＧを描画することも可能である。そのような構成で位置姿勢センサを手に持ち、センサの位置姿勢でＣＧを観察することが従来より行われている。
【０００６】
現実空間の映像を撮影する現実映像撮影手段は、たとえばビデオカメラであり、カメラの視線方向にある映像を撮影し、メモリ中にキャプチャする手段である。
【０００７】
現実空間の映像とＣＧとを合成して表示する映像表示装置としては、たとえばＨＭＤ（ヘッドマウントディスプレイ）が用いられる。通常のモニタでなくＨＭＤを用いて、さらに上記ビデオカメラをＨＭＤの視線方向に装着することで、観察者が向いている方向の映像をＨＭＤに映し出すことができ、かつ、その方向を向いたときのＣＧの描画も行えるため、観察者の没入感を高めることができる。
【０００８】
なお、映像表示装置は、ビデオカメラを備えずにＨＭＤ前面の様子をそのままシースルーで観察できるような、光学シースルー式と呼ばれるＨＭＤであってもよい。この場合は先に説明した現実映像撮影手段はビデオ撮影によるものではなく光学的にＨＭＤ前面を表示装置にそのまま映し出すものとなる。このようなタイプのＨＭＤでは、観察者の前面の風景はデジタル処理なしでそのままシースルーで観察でき、さらにその画面にＣＧを重畳して表示することができる。
【０００９】
複合現実感提示装置における映像表示手段とは、上記のような映像表示装置に、現実映像とＣＧ画像を重畳した画像を表示するものである。
【００１０】
位置姿勢検出手段としては磁気方式による位置姿勢センサなどが用いられ、これを上記ビデオカメラ（またはビデオカメラが取り付けられているＨＭＤ）に取り付ることによって、ビデオカメラの視線の位置姿勢の値を検出する。磁気方式の位置姿勢センサとは、磁気発生装置（発信機）と磁気センサ（受信機）との間の相対位置・姿勢を検出するものであり、米国ポヒマス（Ｐｏｌｈｅｍｕｓ）社の製品ＦＡＳＴＲＡＫなどがあげられる。これは特定の領域内で、センサの３次元位置（Ｘ，Ｙ，Ｚ）と姿勢（Ｒｏｌｌ，Ｐｉｔｃｈ，Ｙａｗ）をリアルタイムに検出する装置である。
【００１１】
上記の構成により、観察者はＨＭＤを通じて、現実映像とＣＧ映像が重畳された世界を観察することができるようになる。観察者が周囲を見回すと、ＨＭＤに備え付けられた現実映像撮影装置（ビデオカメラ）が現実の映像を撮影し、ＨＭＤに備え付けられた視線位置姿勢検出手段（位置姿勢センサ）がビデオカメラの位置視線方向を検出し、これに応じてＣＧ映像生成手段がその視線位置・姿勢から見たＣＧ映像を生成（レンダリング）し、これを現実映像に重畳して表示する。
【００１２】
従来の一般的な複合現実感提示方法は、現実映像の画像の上にＣＧ画像を重畳するだけであり、現実に存在する物体とＣＧ物体の奥行き関係は考慮されていない。そのため、観察者がＣＧ物体の手前に手をかざしても、自分の手は見えずに、手の奥にあるＣＧが観察されてしまうといった問題がある。図２はその状態を説明する図である。
【００１３】
図２（ａ）は、ＨＭＤ２０１を装着した観察者２００がＣＧオブジェクト２０２に対して手２０３を差し伸べている状態例を示す図である。
【００１４】
同図に示した状態で観察者２００に対してＨＭＤ２０１が提示する画像は、図２（ｂ）に示すようなＭＲ画像２０４となる。図２（ｂ）では説明上、本来見えるべき指先の部分２０５を破線で示してある。ＣＧオブジェクト２０２と手２０３の奥行き関係からすれば、指先部分２０５はＣＧオブジェクト２０２の手前に描画されるべきであるが、上記従来技術では、ＣＧオブジェクト２０２の画像は現実映像の上に重畳されるだけであるため、指先部分の画像よりも手前に表示されてしまう。
【００１５】
この問題を解決するために、現実物体とＣＧ物体の重なる領域を検出し、検出した領域におけるＣＧをマスキングして現実物体が見えるように表示することも従来から行われている（例えば特許文献１を参照）。
【００１６】
この技術では、現実オブジェクト検出手段とＣＧマスキング手段を備えている。現実オブジェクト検出手段としては、例えば、図２（ｂ）に示したような手とＣＧオブジェクトの間の重なり合いを正しく表示するためには、現実映像中の手の表示エリアが検出できれば良いので、現実映像の各画素について色が肌色に近いかどうかを判定し、手が撮影されているエリアを検出すればよい。図２（ｃ）は、現実映像から検出された手の領域をマスクするための画像を示す図である。
【００１７】
ＣＧマスキング手段としては、現実オブジェクト検出手段によって手が撮影されているとされた画像領域をＣＧのステンシルバッファにセットするか、デプスバッファ（Ｚバッファ）の最小値にセットすることなどによって、該当部分にＣＧが描画されないようにすることができる。その結果、図２（ｄ）に示す如く、マスク済ＭＲ画像２０７のような画像を得ることができる。
【００１８】
ここで例にあげた方法では、現実映像に肌色が写っている場所はその奥行きにかかわらずＣＧが描画されなくなるという欠点があるが、ＣＧオブジェクトの位置が常に手よりも奥にあると仮定できる状況においては十分に有効であり、手法も簡便であるため、従来から用いられている。しかし、ＣＧオブジェクトとの現実物体の重なりを常に正しく表現する必要がある場合は、現実オブジェクト検出手段としては上記例のような色などによる検出方法では不十分であり、観察者視点から見た現実物体の奥行き情報を正しく検出する必要がある。
【００１９】
また、現実オブジェクト検出手段として現実空間の奥行き情報を検出する装置を用いる複合現実感提示装置も、従来より用いられている（例えば特許文献２を参照）。この場合のＣＧマスキング手段としては、装置によって得られた値をＣＧのＺバッファにセットするものとなる。
【特許文献１】特開２００３-２９６７５９号公報
【特許文献２】特開平１１−３３１８７４号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
従来のシステムでは、ＣＧマスキング処理を行う場合、複合現実感（ＭＲ）空間内のすべてのＣＧに対して処理を行っていた。しかしながら、システムによっては、必ずしもすべてのＣＧに対してハンドマスキングを行うことが好適ではなかった。
【００２１】
たとえば、観察者に対して、複合現実空間中に表示しているあるＣＧに対して注意を向けるようにしたいが為に、ＣＧを一時的に点滅させたり強調色にするようななんらかの視覚効果を与え、強調表示する場合がある。そのときにＣＧオブジェクトが現実オブジェクトに隠れていると観察者に注意を促すことができないという問題があった。
【００２２】
また、複合現実空間中に、情報表示パネルのような常に見えていているべきＧＵＩをＣＧで表示する場合も、現実オブジェクトとの位置関係にかかわらず常に隠蔽なく表示したいのであるが、ＧＵＩが現実オブジェクトに隠されてしまうと表示が消されてしまう問題があった。
【００２３】
よって、上記従来技術ではすべてのＣＧに対して現実オブジェクトとの隠蔽関係によってマスキングを行ってしまうため、このように、表示する個々のＣＧの種類や表示の意図に応じて、各ＣＧ毎に柔軟にマスキング処理の有り無しを切り替えて表示をすることができないという問題があった。
【００２４】
本発明は以上の問題に鑑みてなされたものであり、現実空間の画像上に仮想物体の画像を重畳する場合に、仮想物体について、現実空間の画像中の所定の領域と重なる部分をマスキングするか否かを切り替え可能にする為の技術を提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【００２６】
すなわち、現実空間の画像を取得する現実画像取得工程と
視点位置姿勢を取得する視点位置姿勢取得工程と、
仮想物体情報を用いて、前記視点位置姿勢に応じた仮想空間の画像を生成する仮想画像生成工程と、
特定のオブジェクト領域を検出する検出工程と、
前記検出したオブジェクト領域に応じて、前記仮想空間の画像に対するマスキング処理を行うマスキング処理工程と、
前記現実空間の画像と前記マスキング処理された仮想空間の画像とを合成する合成工程と、
前記仮想物体情報に含まれるマスキング処理制御情報に応じて、マスキング処理を制御する制御工程と
を備えることを特徴とする。
【００２７】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【００２８】
すなわち、現実空間の画像上に仮想物体の画像を重畳する画像処理方法であって、
それぞれの仮想物体の画像毎に、マスキング箇所のマスキングを行うか否かを設定する設定工程と、
前記設定工程でマスキングを行わないと設定した仮想物体の画像を生成する第１の生成工程と、
マスキング領域を設定するマスキング領域設定工程と、
前記マスキング領域に応じて、前記設定工程でマスキングを行うと設定した仮想物体の画像中の前記マスキング箇所をマスキングした画像を生成する第２の生成工程と
を備えることを特徴とする。
【００２９】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【００３０】
すなわち、現実空間の画像を取得する現実画像取得手段と
視点位置姿勢を取得する視点位置姿勢取得手段と、
仮想物体情報を用いて、前記視点位置姿勢に応じた仮想空間の画像を生成する仮想画像生成手段と、
特定のオブジェクト領域を検出する検出手段と、
前記検出したオブジェクト領域に応じて、前記仮想空間の画像に対するマスキング処理を行うマスキング処理手段と、
前記現実空間の画像と前記マスキング処理された仮想空間の画像とを合成する合成手段と、
前記仮想物体情報に含まれるマスキング処理制御情報に応じて、マスキング処理を制御する制御手段と
を備えることを特徴とする。
【００３１】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【００３２】
すなわち、現実空間の画像上に仮想物体の画像を重畳する画像処理装置であって、
それぞれの仮想物体の画像毎に、マスキング箇所のマスキングを行うか否かを設定する設定手段と、
前記設定手段によりマスキングを行わないと設定した仮想物体の画像を生成する第１の生成手段と、
マスキング領域を設定するマスキング領域設定手段と、
前記マスキング領域に応じて、前記設定手段によりマスキングを行うと設定した仮想物体の画像中の前記マスキング箇所をマスキングした画像を生成する第２の生成手段と
を備えることを特徴とする。
【発明の効果】
【００３３】
本発明の構成により、現実空間の画像上に仮想物体の画像を重畳する場合に、仮想物体について、現実空間の画像中の所定の領域と重なる部分をマスキングするか否かを切り替え可能にする為の技術を提供することができる。
【００３４】
また、これにより、仮想物体毎にマスキングを行うか否かの設定を個別に行うことができるので、ＭＲ空間の状況に応じて柔軟にＭＲ画像を生成することができる。
【発明を実施するための最良の形態】
【００３５】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００３６】
［第１の実施形態］
以下説明する本実施形態に係る複合現実感提示システムは、現実空間と仮想空間とを融合した周知の複合現実空間（以下、ＭＲ空間）を観察者に提示するためのものである。なお、本実施形態に係るシステムにおいても、現実空間と仮想空間とを融合した画像を観察者に提示する場合には、基本的には現実空間の画像、仮想空間の画像の順に描画し、且つ上記従来例のように、仮想物体において現実物体と重なる領域はマスキングするのであるが、本実施形態では、このマスキングを行うか否かが仮想物体毎に設定できる点が従来例とは異なる。以下、本実施形態に係る複合現実感提示システムについて説明する。
【００３７】
図１は、本実施形態に係る複合現実感提示システムの基本構成を示す図である。
【００３８】
本システムは大まかには、コンピュータ１００、ＨＭＤ（ヘッドマウントディスプレイ）１０４，ビデオカメラ１０５、位置姿勢センサ１０８、１０９、センサコントローラ１０３により構成されている。以下、これら各部について説明する。
【００３９】
先ずＨＭＤ１０４について説明する。
【００４０】
ＨＭＤ１０４は周知の通り、ＭＲ空間を体感する観察者の頭部に装着するためのものであり、ＨＭＤ１０４に備わっている不図示の表示部が観察者の眼前に位置するように装着される。
【００４１】
ＨＭＤ１０４には、観察者がＨＭＤ１０４を頭部に装着した場合に、観察者の視線方向の映像を撮像可能なようにビデオカメラ１０５が固着されている。よってビデオカメラ１０５は、ＨＭＤ１０４の位置姿勢に応じて見える現実空間の映像を撮像することができる。
【００４２】
またＨＭＤ１０４には位置姿勢センサ１０８が固着されている。位置姿勢センサ１０８は磁気センサや超音波センサなどにより構成されており、自身の位置姿勢を計測し、その計測結果を信号としてセンサコントローラ１０３に出力する。本実施形態では、位置姿勢センサ１０８は世界座標系（現実空間中の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする空間）における自身の位置姿勢を計測するものとして説明する。位置姿勢センサ１０８により計測された結果は信号としてセンサコントローラ１０３に出力され、センサコントローラ１０３は、受信した信号の強度に応じた数値をコンピュータ１００に出力する。
【００４３】
位置姿勢センサ１０９は、ＭＲ空間を体感する観察者が手に持ってＭＲ空間における仮想物体の位置姿勢を変更するためのものであり、センサとしては位置姿勢センサ１０８と同様のものである。すなわち、位置姿勢センサ１０９自身の世界座標系における位置姿勢を計測し、その計測結果を信号としてセンサコントローラ１０３に出力する。センサコントローラ１０３は同様に、受信した信号の強度に応じて、その計測結果を数値データとしてコンピュータ１００に出力する。
【００４４】
次に、コンピュータ１００について説明する。
【００４５】
コンピュータ１００は一般にはＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）などにより構成されている。また、専用のハードウェアにより構成されても良い。コンピュータ１００はＣＰＵ１０１、メモリ１０６，１０７、操作部１５０、表示部１６０により構成されており、これら各部はバス１０２により互いに接続されている。
【００４６】
ＣＰＵ１０１はメモリ１０６に格納されている各種のプログラムや、メモリ１０７に格納されている各種のデータを用いて後述する各処理を実行するとともに、コンピュータ１００全体の制御を行う。また、後述するセンサコントローラ１０３とのデータ通信をも制御する。
【００４７】
メモリ１０６には、ＣＰＵ１０１に後述する各種の処理を行わせるための各種のプログラム（現実映像撮影部１１０、ＣＧ映像生成部１１１、位置姿勢検出部１１２、現実オブジェクト検出部１１３、ＣＧマスキング部１１４、マスキング対象ＣＧ指定部１１５、映像表示部１１６）が格納されている。これら各種のプログラムについては後述する。また不図示ではあるが、メモリ１０６には、ＣＰＵ１０１がコンピュータ１００全体の制御を行うために必要な各種のプログラムが格納されている。
【００４８】
メモリ１０７には、ＣＰＵ１０１が後述の各処理を実行する際に必要とする各種のワークエリアや、ＣＰＵ１０１が後述の各処理を実行する際に用いる各種のデータを格納しているエリアなどを備える。また不図示ではあるが、メモリ１０７には、ＣＰＵ１０１がコンピュータ１００全体の制御を行うために必要な各種のデータが格納されている。
【００４９】
なお、本実施形態ではメモリ１０６とメモリ１０７とは別個のメモリとしているが、これに限定するものではなく、これらのメモリを同一メモリ上に設けるようにしても良い。
【００５０】
操作部１５０はキーボードやマウスなどにより構成されており、各種の指示をＣＰＵ１０１に対して入力することができる。
【００５１】
表示部１６０は、ＣＲＴや液晶画面などにより構成されており、各種の情報を画像や文字などでもって表示することができる。
【００５２】
なお、コンピュータ１００の構成はこれに限定するものではなく、メモリ１０６，１０７に記憶されている各種のプログラムやデータを保存するためのハードディスクドライブ装置や、コンピュータ１００で処理した結果を、ネットワークを介して外部に出力するためのネットワークＩ／Ｆ部などを更に備えるようにしても良い。
【００５３】
図３は、ＣＰＵ１０１がメモリ１０６に格納されている各プログラムを実行することでなされる、ＭＲ画像を生成して観察者に提示する処理のフローチャートである。
【００５４】
ビデオカメラ１０５は、ＨＭＤ１０４の位置姿勢に応じて見える現実空間の動画像を撮像しており、コンピュータ１００にはこの動画像を構成する各フレームの画像（現実空間画像）が順次入力される。従ってステップＳ３０１では、現実映像撮像部１１０のプログラムを実行することで、ビデオカメラ１０５からコンピュータ１００に入力された現実空間画像をキャプチャして現実画像メモリ１２０に格納する処理を行う。
【００５５】
次に、ビデオカメラ１０５の世界座標系における位置姿勢を得る目的のためステップＳ３０２では、位置姿勢検出部１１２のプログラムを実行し、先ず、位置姿勢センサ１０８により計測され、センサコントローラ１０３により数値データに変換した結果を視線位置姿勢メモリ１２１に格納する処理を行う。そして、ビデオカメラ１０５と位置姿勢センサ１０８との位置姿勢関係を用いて周知の変換処理により、位置姿勢センサ１０８により得られた結果から、ビデオカメラ１０５の世界座標系における位置姿勢を得る。なお、ビデオカメラ１０５と位置姿勢センサ１０８との位置姿勢関係は予め測定されており、データとしてメモリ１０７中の所定のエリアに格納されているものとする。
【００５６】
以上の処理によりビデオカメラ１０５の世界座標系における位置姿勢が得られたので、得た結果のデータを視線位置姿勢メモリ１２１に格納する。
【００５７】
次にステップＳ３０３では、位置姿勢センサ１０９により計測され、センサコントローラ１０３により数値データに変換した結果をＣＧ位置姿勢メモリ１２２に格納する。ＣＧ位置姿勢メモリ１２２に格納されたのは上述の通り、位置姿勢センサ１０９自身の世界座標系における位置姿勢を示すデータである。
【００５８】
次にステップＳ３０４では、マスキング対象ＣＧ指定部１１５のプログラムを実行し、仮想空間を構成する仮想物体をレンダリングするためのデータであるＣＧモデルデータ１２３を参照し、マスキング対象ではない仮想物体のデータを選択する。このＣＧモデルデータ１２３は各仮想物体毎に設けられたものである。
【００５９】
ここで、ステップＳ３０４における処理の詳細について説明する。
【００６０】
図４は、１つの仮想物体に対するＣＧモデルデータの構成例を示す図である。本実施形態で描画する仮想物体（ＣＧオブジェクト）のデータには、従来と同様に、仮想物体の位置姿勢（位置（ｘ、ｙ、ｚ）と姿勢（ｒｏｌｌ，ｐｉｔｃｈ，ｙａｗ））を示す位置姿勢情報４０２、仮想物体の色や形状などの視覚的な情報であるモデル情報４０３に加えて、この仮想物体がマスキングの対象となっているか否かを示すためのマスキング対象フラグ４０１が、このＣＧモデルデータに含まれている。
【００６１】
このマスキング対象フラグ４０１はＯＮ／ＯＦＦを示す１ビットでもって表現されうるものであり、例えばマスキング対象フラグ４０１の値が「１」（ＯＮ）の場合には「マスキングの対象である」ことを示し、「０」（ＯＦＦ）の場合には、「マスキングの対象ではない」ことを示す。
【００６２】
例えば、仮想物体を強調表示する際、強調表示を行う時間だけその仮想物体のマスキング対象フラグをＯＦＦにすれば、その仮想物体に対してはマスキング処理を行わないので、現実空間の画像、仮想空間の画像の順に描画したものをＨＭＤ１０４の表示部に提示する場合には、この仮想物体と現実物体との位置関係に関わらず、常にこの仮想物体が現実物体に隠蔽されることなく表示されるので、この仮想物体を観察者の注意を引くように表示することができる。このように、動的にマスキング対象フラグ４０１の値を変更するような場合、マスキング対象ＣＧ指定部１１５のプログラムを実行し、現在が強調表示を行う時間であるか否かを判断し、強調表示を行う時間であると判断した場合には、表示しようとする仮想物体のＣＧモデルデータにおけるマスキング対象フラグ４０１をＯＦＦにする。
【００６３】
また、常に観察者に提示する必要がある操作パネル（ＧＵＩとしての仮想物体）に対して常にマスキング対象フラグをｏｆｆに維持することが考えられる。このように、予めマスキング対象外の仮想物体が決まっている場合、このような仮想物体のＣＧモデルデータにおけるマスキング対象フラグ４０１を、コンピュータ１００のオペレータにより操作部１５０を用いて予め設定しておく。その場合も、実際のフラグ値設定処理は、マスキング対象ＣＧ指定部１１５のプログラムを実行する事によりなされる。
【００６４】
また、位置姿勢センサ１０９の位置に仮想物体を配置する場合、観察者が位置姿勢センサ１０９を手に持って観察しようとすると、自分の手によって仮想物体が隠れてしまう場合も考えられる。位置関係としては仮想物体が手に隠れるのが正しくとも、仮想物体の全体を観察したいという場合がある。このような場合に、位置姿勢センサ１０９の位置に表示する仮想物体のマスキング対象フラグをＯＦＦにすることも考えられる。このように、予め位置姿勢センサ１０９の位置に配置する仮想物体の全体を観察したいという場合、この仮想物体のＣＧモデルデータにおけるマスキング対象フラグ４０１を、コンピュータ１００のオペレータにより操作部１５０を用いて予め設定しておく。その場合も、実際のフラグ値設定処理は、マスキング対象ＣＧ指定部１１５のプログラムを実行する事によりなされる。
【００６５】
さらに、ビデオカメラ１０５の近傍に仮想物体を表示しようとする際、ビデオカメラ１０５と仮想物体との間に現実物体が入り込む可能性がなくなるので、そのような仮想物体に対してはマスキング対象フラグをＯＦＦにすることが考えられる。その場合、マスキング対象ＣＧ指定部１１５のプログラムを実行し、表示しようとする仮想物体の世界座標系における位置（位置姿勢情報４０２により取得可）とビデオカメラ１０５の世界座標系における位置（ステップＳ３０２で取得可）とを用いて互いの間隔を計算し、計算した間隔が所定値以下になった場合には、表示しようとする仮想物体のＣＧモデルデータにおけるマスキング対象フラグ４０１をＯＦＦにする。
【００６６】
このように、様々な状況においてマスキングを行わない仮想物体のマスキング対象フラグ４０１のＯＮ／ＯＦＦを、マスキング対象ＣＧ指定部１１５のプログラムを実行することにより切り替え、設定することができる。
【００６７】
従って、ステップＳ３０４では、各仮想物体のＣＧモデルデータ内のマスキング対象フラグ４０１の値を参照し、このマスキング対象フラグ４０１がＯＦＦであるＣＧモデルデータのみを描画対象とし、ステップＳ３０５でＣＧ映像生成部１１１のプログラムを実行することにより、ＣＧモデルデータにおけるモデル情報４０３に従って、描画対象となった仮想物体の画像を画像メモリ１２４上に生成（レンダリング）する。なお、このレンダリングの際には、ステップＳ３０２で視線位置姿勢メモリ１２１に格納されたデータ、及びＣＧモデルデータにおける位置姿勢情報４０２を用いて、ビデオカメラ１０５から見える仮想物体の画像を生成する。
【００６８】
なお、位置姿勢が動的に変化する仮想物体（例えば位置姿勢センサ１０９の位置に配置される仮想物体）をレンダリングする場合、上記レンダリング処理の前にこの仮想物体の位置姿勢情報４０２を適宜更新する。そして更新後の位置姿勢情報４０２と、ステップＳ３０２で視線位置姿勢メモリ１２１に格納されたデータとを用いて、ビデオカメラ１０５から見える仮想物体の画像を生成する。
【００６９】
なお、所定の視点位置姿勢から見える仮想物体画像のレンダリング技術については周知の技術であるので、ここでの説明は省略する。
【００７０】
次にステップＳ３０６では、現実オブジェクト検出部１１３のプログラムを実行することで、現実画像メモリ１２０に格納されている画像中で、特定のオブジェクトが占めている領域を検出する処理を行う。例えば現実空間画像における手が占める領域を検出する場合、この画像において肌色（予め「手」の色であろうと思われる肌色）を示す画素値を有する画素群を検出することによりなされる。検出した画素群による画像（現実空間画像において手の領域中の画像）をマスキング画像メモリ１２５に格納する。
【００７１】
つぎに、ステップＳ３０７で、ＣＧマスキング部１１４のプログラムを実行することにより、ステップＳ３０６で検出された画像領域をマスキングする。具体的には、従来からなされているように、ステップＳ３０６で検出された画像領域に対して、ステンシルバッファやＺバッファを用いることによって、以降の処理で、この領域に仮想物体の画像が描画されないようにする。
【００７２】
なお、ステップＳ３０６における現実オブジェクト検出部１１３のプログラムを実行することによりなされる処理、ステップＳ３０７のＣＧマスキング部１１４のプログラムを実行することによりなされる処理の内容はこれに限定するものではなく、同様の目的を達成するためのものであれば、他の処理も適用可能である。
【００７３】
例えば、ビデオカメラ１０５として現実空間の奥行き情報を検出できるようなデプスカメラを適用した場合に、現実オブジェクト検出部１１３のプログラムを実行することにより、この奥行き情報をマスキング画像メモリ１２５に記録し、ＣＧマスキング部１１４のプログラムを実行することにより、デプスカメラから得られた奥行き情報をＺバッファにセットすることなどが考えられる。
【００７４】
つぎに、ステップＳ３０８で、マスキング対象フラグ４０１がＯＮである仮想物体のＣＧモデルデータを描画対象として読み出し、ステップＳ３０９で、ＣＧ映像生成部１１１のプログラムを実行することにより、ステップＳ３０８で読み出したＣＧモデルデータにおけるモデル情報４０３に従って、描画対象となった仮想物体の画像を画像メモリ１２４上に上書き生成生成（上書きレンダリング）する。このレンダリング処理は基本的には、ステップＳ３０５と同様の処理であるが、以下の点で異なる。
【００７５】
すなわち、レンダリングする画像において、ステップＳ３０７でマスキング箇所となった画像領域（現実空間画像と重畳した場合に、ステップＳ３０６で検出した画像領域と重なる領域）は何も描画しない。
【００７６】
そしてステップＳ３１０で、映像表示部１１６のプログラムを実行することにより、先ず、現実画像メモリ１２０に記録された画像（現実空間画像）上に、ステップＳ３０９でＣＧ画像メモリ１２４上にレンダリングした画像（マスキング対象フラグ４０１がＯＮの仮想物体の画像とマスキング対象フラグ４０１がＯＦＦの仮想物体の画像とが合成されている画像）を重畳させる。これにより、現実空間画像においてマスキングしていない部分にはマスキング対象フラグ４０１がＯＮ、ＯＦＦ何れの仮想物体もその画像が描画され、マスキングしている部分にはマスキング対象フラグ４０１がＯＮの仮想物体の画像は描画されないが、マスキング対象フラグ４０１がＯＦＦの画像は描画されうる。
【００７７】
これにより、各仮想物体毎に、マスキングするか否かを個別に設定することができ、また、その設定に応じたＭＲ画像を生成することができる。生成したＭＲ画像は、表示部１６０、ＨＭＤ１０４の表示部に出力し、それぞれにおいて表示させる。
【００７８】
そして以上の処理をビデオカメラ１０５から入力される各フレームについて行うことで、観察者にビデオカメラ１０５から見えるＭＲ空間の画像を提示することができる。
【００７９】
以上の説明により、本実施形態では、仮想物体毎にマスキングを行うか否かの設定を個別に行うことができるので、ＭＲ空間の状況に応じて柔軟にＭＲ画像を生成することができる。
【００８０】
［第２の実施形態］
第１の実施形態では、位置姿勢センサ１０８（１０９）は自身の世界座標系における位置姿勢を計測するものとして説明したが、これに限定するものではなく、例えば位置姿勢センサ１０８（１０９）が所定の座標系における位置姿勢を計測する場合、コンピュータ１００側でこの所定の座標系と世界座標系との位置姿勢関係を示すデータを保持しておけば、このデータを用いて位置姿勢センサ１０８（１０９）で計測した結果を周知の計算方法により世界座標系における位置姿勢に変換することができるので、位置姿勢センサ１０８（１０９）が何れの座標系における位置姿勢を計測してもコンピュータ１００側では位置姿勢センサ１０８（１０９）の世界座標系を得ることができる。従って必ずしも位置姿勢センサ１０８（１０９）は世界座標系における位置姿勢を計測するものと限定することはない。
【００８１】
［第３の実施形態］
上記実施形態では、マスキング対象フラグ４０１のＯＮ／ＯＦＦはオペレータ、もしくはＣＰＵ１０１が自動的に切り替えていたが、観察者の意志に応じて切り替えるようにしても良い。
【００８２】
例えば観察者は位置姿勢センサ１０９を手に持っているので、観察者が他の物体（現実物体、仮想物体）に隠蔽されることなく観察したい仮想物体の近くに位置姿勢センサ１０９を近づけることで、この仮想物体のマスキング対象フラグ４０１をＯＦＦにするようにしてもよい。この場合、ＣＰＵ１０１は、センサコントローラ１０３から得られる「位置姿勢センサ１０９の世界座標系における位置」と、各仮想物体のＣＧモデルデータ中の位置姿勢情報４０２から得られる「仮想物体の世界座標系における位置」とを参照し、位置姿勢センサ１０９との距離が所定値以下の位置に仮想物体が存在した場合には、この仮想物体のマスキング対象フラグ４０１をＯＦＦにする。これにより、マスキングを行うことなく、且つ何にも隠蔽されることなくこの仮想物体を観察することができる。
【００８３】
また、この仮想物体と位置姿勢センサ１０９との距離が所定値以上になった場合には、この仮想物体のマスキング対象フラグ４０１をＯＮにする。
【００８４】
これにより、観察者が他の物体（現実物体、仮想物体）に隠蔽されることなく観察したい仮想物体を任意に選択することができる。なお、この選択方法についてはこれに限定するものではなく、如何なるユーザインターフェース、如何なる方法を用いても同様の目的が達成されるのであれば、特に限定するものではない。
【００８５】
また、逆に、マスキング対象フラグ４０１をＯＮにしたい仮想物体を選択するようにしても良い。その場合の処理は上述の通り、位置姿勢センサ１０９をその仮想物体に近づけるようにしても良いし、上述の通り、その他の方法でも良い。
【００８６】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００８７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８９】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９０】
【図１】本発明の第１の実施形態に係る複合現実感提示システムの基本構成を示す図である。
【図２】（ａ）は、ＨＭＤ２０１を装着した観察者２００がＣＧオブジェクト２０２に対して手２０３を差し伸べている状態例を示す図、（ｂ）は（ａ）に示した状態で観察者２００に対してＨＭＤ２０１が提示するＭＲ画像２０４を示す図、（ｃ）は現実映像から検出された手の領域をマスクするための画像を示す図、（ｄ）はマスク済ＭＲ画像２０７を示す図である。
【図３】ＣＰＵ１０１がメモリ１０６に格納されている各プログラムを実行することでなされる、ＭＲ画像を生成して観察者に提示する処理のフローチャートである。
【図４】１つの仮想物体に対するＣＧモデルデータの構成例を示す図である。
【図１】
2005346468.tif 000003
【図２】
2005346468.tif 000004
【図３】
2005346468.tif 000005
【図４】
2005346468.tif 000006