(57)【要約】【課題】  複合現実感を体感中であっても、仮想物体を容易に選択、操作可能とする。【解決手段】  仮想物体を操作するためのハンドラを、仮想物体として表示する。そして、観察者が手で行なったハンドラへの操作を検出し、対応する仮想物体への操作として表示に反映する。観察者の視体積中に示す仮想物体の大きさに応じてハンドラを表示する仮想物体を動的に変更することで、所望の仮想物体を容易に選択することができる。【選択図】  図１
2008040832.tif 000002
【特許請求の範囲】
【請求項１】
観察者の視点位置姿勢に応じて描画した仮想物体を、現実空間もしくは現実空間の撮像画像と重畳表示することにより、前記観察者に複合現実感を体験させる複合現実感提示システムの制御方法であって、
前記観察者の視点位置姿勢を計測する計測工程と、
前記計測工程で得られた視点位置姿勢に基づく視体積中に含まれる仮想物体を検出する仮想物体検出工程と、
前記視体積中に含まれる仮想物体のうち、予め定められた表示条件に当てはまる仮想物体の操作用仮想物体を、描画すべき仮想物体に追加する追加工程とを有することを特徴とする複合現実感提示システムの制御方法。
【請求項２】
前記表示条件が、前記視体積に占める前記仮想物体の大きさに関する範囲として定められることを特徴とする請求項１記載の複合現実感提示システムの制御方法。
【請求項３】
前記追加工程は、前記予め定められた表示条件に当てはまらなくなった仮想物体に対応する前記操作用仮想物体を前記描画すべき仮想物体から削除することを特徴とする請求項１又は請求項２記載の複合現実感提示システムの制御方法。
【請求項４】
前記追加工程は、前記操作用仮想物体の位置を、対応する仮想物体と重ならず、かつ前記観察者が手で操作できる位置に設定することを特徴とする請求項１乃至請求項３のいずれか１項に記載の複合現実感提示システムの制御方法。
【請求項５】
前記操作用仮想物体に対して前記観察者が行なった操作を検出する操作検出工程と、
前記操作検出工程で検出された操作が、前記操作用仮想物体に対応する仮想物体の描画結果に反映されるように、当該仮想物体の描画属性を変更する変更工程とをさらに有することを特徴とする請求項１乃至請求項４のいずれか１項に記載の複合現実感提示システムの制御方法。
【請求項６】
前記操作検出工程が、前記観察者の視点位置近傍から撮影された画像中に含まれる前記観察者の手の領域に基づいて前記操作を検出することを特徴とする請求項５記載の複合現実感提示システムの制御方法。
【請求項７】
前記表示条件が、前記仮想物体と主観視点間の距離、主観視点の移動速度、又は、主観視点と仮想物体間の相対速度により定められることを特徴とする請求項１に記載の複合現実感提示システムの制御方法。
【請求項８】
観察者の視点位置姿勢に応じて描画した仮想物体を、現実空間もしくは現実空間の撮像画像と重畳表示することにより、前記観察者に複合現実感を体験させる複合現実感提示システムであって、
前記観察者の視点位置姿勢を計測する計測手段と、
前記計測手段で得られた視点位置姿勢に基づく視体積中に含まれる仮想物体を検出する仮想物体検出手段と、
前記視体積中に含まれる仮想物体のうち、予め定められた表示条件に当てはまる仮想物体の操作用仮想物体を、描画すべき仮想物体に追加する追加手段とを有することを特徴とする複合現実感提示システム。
【請求項９】
コンピュータに、請求項１乃至請求項７のいずれか１項に記載の複合現実感提示システムの制御方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感提示システム及びその制御方法に関し、特に、複合現実空間の観察者が観察中の仮想物体を操作可能な複合現実感提示システム及びその制御方法に関する。
【背景技術】
【０００２】
近年、現実空間と仮想空間とを違和感なく合成表示することにより、観察者に複合現実感（ＭＲ：Mixed Reality）を体感させる複合現実感提示システムが盛んに提案されている。これら複合現実感提示システムは、ビデオカメラなどの撮像装置によって撮影した現実空間の画像に、コンピュータグラフィックス（ＣＧ）で描画した画像（仮想空間画像）を位置合わせして合成した合成画像を生成する。合成画像を観察者の視点位置に応じて生成し、観察者の眼前に提示することで、観察者に現実空間と仮想空間とが合成された複合現実空間を体感させる。合成画像の提示には、ヘッドマウントディスプレイ（ＨＭＤ）を代表とする表示装置が用いられる。
【０００３】
このようなシステムにおいて、観察者に違和感なく複合現実感を体感させるには、観察者の視点位置及び姿勢を逐次取得し、その変化に合わせた合成画像を直ちに生成、表示することが重要である。そのため、位置姿勢センサによって計測した観察者の視点位置及び姿勢に基づいて仮想空間中の仮想の視点位置姿勢を設定し、この設定に基づいて仮想物体の画像をＣＧで描画して、現実空間の画像と位置合わせして合成画像を生成する。
【０００４】
複合現実感提示システムにおいて、観察者は、現実空間にあたかも仮想物体が存在しているかのような合成画像を観察することができる。しかし、一般には、視認中の仮想物体の移動や姿勢の変更、仮想物体そのものの変更といった操作を観察者が行なうことはできない。
【０００５】
特許文献１には、３次元情報会話システムにおいて、ペン状の３次元方向位置指定対象１１を用いて画面内の３次元カーソルを操作し、画面内の３次元物体を選択したり、移動したりする構成が開示されている。特許文献１では、画面内の３次元カーソルと、ユーザが操作するペン状の３次元方向位置指定対象１１との位置関係が把握しにくく、操作対象の物体を選択しにくいという従来技術の問題点を、３次元カーソルに延長図形を付加することで軽減している。
【０００６】
【特許文献１】特許第２５５８９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１記載の技術を、ＨＭＤを装着した観察者に複合現実感を体感させるシステムに適用しようとした場合、３次元方向位置指定対象１１のようなコントローラを別途導入しなければならない。また、ＨＭＤを装着している観察者は、特許文献１における操作者と異なり、コントローラを直接視認することができない。そのため、コントローラの位置姿勢と、合成画像中の３次元カーソルの位置姿勢との対応を把握することが非常に困難である。つまり、レーザーポインタ状の入力デバイスの場合、操作の自由度が高すぎるため、所望の仮想物体の選択や、選択した後の仮想物体の移動、再配置するのが難しい。また、複合現実感の体感中にコントローラを操作することは、複合現実感のリアリティを損なうものであり、好ましくない。
【０００８】
本発明はこのような従来技術の問題点に鑑みなされたものであり、複合現実感を体感中であっても、仮想物体を容易に選択、操作可能な複合現実感提示システム及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の目的は、観察者の視点位置姿勢に応じて描画した仮想物体を、現実空間もしくは現実空間の撮像画像と重畳表示することにより、観察者に複合現実感を体験させる複合現実感提示システムの制御方法であって、観察者の視点位置姿勢を計測する計測工程と、計測工程で得られた視点位置姿勢に基づく視体積中に含まれる仮想物体を検出する仮想物体検出工程と、視体積中に含まれる仮想物体のうち、予め定められた表示条件に当てはまる仮想物体の操作用仮想物体を、描画すべき仮想物体に追加する追加工程とを有することを特徴とする複合現実感提示システムの制御方法によって達成される。
【００１０】
また、上述の目的は、観察者の視点位置姿勢に応じて描画した仮想物体を、現実空間もしくは現実空間の撮像画像と重畳表示することにより、観察者に複合現実感を体験させる複合現実感提示システムであって、観察者の視点位置姿勢を計測する計測手段と、計測手段で得られた視点位置姿勢に基づく視体積中に含まれる仮想物体を検出する仮想物体検出手段と、視体積中に含まれる仮想物体のうち、予め定められた表示条件に当てはまる仮想物体の操作用仮想物体を、描画すべき仮想物体に追加する追加手段とを有することを特徴とする複合現実感提示システムによっても達成される。
【発明の効果】
【００１１】
このような構成により、本発明によれば、複合現実感を体感中であっても、仮想物体を容易に選択、操作可能な複合現実感提示システム及びその制御方法を実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の好適な実施形態を詳細に説明する。
図１は、本発明の第１の実施形態に係る複合現実感提示システムの構成例を示すブロック図である。
図１において、演算処理部１００には、ＣＰＵ１０１、ＲＡＭ１０２、画像生成部１０３、システムバス１０４、記憶部１０５、入力部１０６、画像取込部１０７により構成される。演算処理部１００は例えばビデオキャプチャ機能を有する市販の汎用コンピュータにより実現することができる。
【００１３】
ＣＰＵ１０１は、不図示のＲＯＭ、ＲＡＭ１０２及び記憶部１０５の１つ以上に格納されたプログラムに基づき、システム全体の処理を制御する。ＣＰＵ１０１はシステムバス１０４により接続され、ＲＡＭ１０２、画像生成部１０３、記憶部１０５、入力部１０６、画像取込部１０７と相互に通信可能である。ＲＡＭ１０２は、システムバス１０４を介して供給される、プログラムコードやプログラムの制御情報、ＣＧデータや計測位置データなどを一時的に保持する。
【００１４】
画像生成部１０３は、グラフィックスボードなどによって実現され、一般にグラフィックスメモリ（図示せず）を有する。ＣＰＵ１０１で実行されるプログラムによって生成された画像情報は、システムバス１０４を介して画像生成部１０３の有するグラフィックスメモリに書き込まれる。画像生成部１０３は、グラフィックスメモリに書き込まれた画像情報を、表示部２００の構成に応じた画像信号に変換して表示部２００に送出する。グラフィックスメモリは必ずしも画像生成部１０３が有する必要はなく、ＲＡＭ１０２の一部領域をグラフィックスメモリとして利用しても良い。
【００１５】
システムバス１０４は、演算処理部１００を構成する各部を相互通信可能に接続する。
記憶部１０５は、ハードディスクドライブ等の補助記憶装置によって実現される。記憶部１０５は、例えば以下のデータを保持する。
・ＣＰＵ１０１が実行するプログラムコードやプログラムの制御情報、
・仮想空間のＣＧオブジェクトデータ（仮想物体データ）、
・ＨＭＤ３００の位置及び姿勢に関するデータ、
・ハンドラ表示の種類や設定値のデータ、
・システムを制御するパラメータ等。
【００１６】
入力部１０６は、各種の外部機器に対するインターフェースとして機能する。例えば、演算処理部１００に接続された外部機器からの信号をデータとして入力し、システムバス１０４を介して、ＲＡＭ１０２にデータを書き込む。また、操作入力部４００を通じて入力されるユーザーの指示などを受け付ける。
【００１７】
画像取込部１０７は、ビデオキャプチャボードなどのように、例えば、動画像信号を入力し、システムバス１０４を介して、ＲＡＭ１０２またはグラフィックスメモリに画像データを書き込む。なお、ＨＭＤ３００が、撮像装置３０３を持たない光学シースルータイプの場合、画像取込部１０７は不要である。
【００１８】
表示部２００は、例えば、ブラウン管、液晶ディスプレイなどの表示装置であり、本実施形態の複合現実感提示システムのオペレータに対し、システムの動作状況や、ＨＭＤ３００の位置情報、各種設定や操作用のＵＩなどを表示する。従って、表示部２００は通常、ＨＭＤ３００が有する表示部３０１よりも大型の表示装置である。
【００１９】
ＨＭＤ３００は、本実施形態の複合現実感提示システムにより、複合現実感を体験するユーザ（観察者）が装着する表示装置である。ＨＭＤ３００は、表示部３０１、計測対象３０２及び撮像装置３０３により構成される。本実施形態では、説明及び理解を容易にするため、システムで用いられるＨＭＤ３００が一台である構成について説明する。しかし、本実施形態の複合現実感提示システムは、複数のＨＭＤ３００を有していても良い。
【００２０】
また、本実施形態では、ＨＭＤ３００がビデオシースルー型であるものとして説明するが、光学式シースルー型のＨＭＤであってもよい。これらは、現実空間を観察者に提示させる方法が異なる。ビデオシースルー型は撮像装置３０３で撮影した撮像画像を用いて観察者に現実空間を提示する。光学シースルー型ＨＭＤの場合は、ハーフミラー状のディスプレイを透して観察者に視認させる。従って、光学シースルー型ＨＭＤの場合、少なくとも観察者に現実空間を提示する目的においては、撮像装置３０３は不要である。
【００２１】
表示部３０１は、例えば、ＬＣＤ等の軽量な表示装置によって実現される。ＨＭＤ３００がステレオタイプの場合、表示部３０１は右眼用表示装置と左眼用表示装置を有する。表示部３０１は、画像生成部１０３から送出される合成画像を観察者の眼前に表示する。
【００２２】
撮像装置３０３は、例えばビデオカメラであり、ＨＭＤ３００を装着している観察者の視点から観察される現実空間の画像を撮像する。撮像した画像は、画像信号として逐次画像取込部１０７に送られる。なお、ＨＭＤ３００にステレオ映像を提示する場合、撮像装置３０３もステレオカメラにより実現される。
計測対象３０２は、センサ６００がＨＭＤ３００の位置及び姿勢を検出するために必要な計測対象であり、ＨＭＤ３００上に設けられる。
【００２３】
操作入力部４００は、例えば、キーボード、マウスなど、コンピュータで用いられる一般的な入力機器である。主に本システムのオペレータが、本システムに対して各種設定や操作等の、主に仮想物体の操作以外の指示を入力するために用いる。
【００２４】
センサ６００は、観察者が装着するＨＭＤ３００に設けられた計測対象３０２の位置及び姿勢を、ＨＭＤ３００の位置及び姿勢として計測する。センサ制御部５００はセンサ６００を制御し、計測対象３０２、および、センサ６００により観測データを取得する。センサ制御部５００は、観測データをもとに、計測対象３０２の位置、姿勢情報を算出し、計測値として１０６入力装置に送信する。
【００２５】
本実施形態において、ＨＭＤ３００の位置姿勢を測定するための構成に特に制限はなく、実際に用いるセンサの方式や構成に応じてセンサ６００や計測対象３０２などを配置することが可能である。以下に、具体的に利用可能なセンサと、その適用方法について例示する。
【００２６】
光学式センサの例として、Northern Digital社の光学式センサＯＰＴＯＴＲＡＫ３０２０（商品名）を用いる場合、計測対象３０２は発光装置によって構成され、センサ制御部５００の制御により発光する。センサ６００は、受光装置によって構成され、計測対象３０２が発した光を観測する。センサ制御部５００は、センサ６００の配置データと観測データに基づいて計測対象３０２の位置、姿勢を算出する。
【００２７】
また、別の光学式センサの例として、３ｒｄＴｅｃｈ社の光学式センサＨｉＢａｌｌ（商品名）を用いる場合、計測対象３０２は受光装置によって構成され、センサ６００は、発光装置によって構成される。センサ６００は、センサ制御部５００の制御によって発光する。計測対象３０２はセンサ６００の発する光を観測する。センサ制御部５００は、計測対象３０２の観測データとセンサ６００の配置データをもとに、計測対象３０２の位置、姿勢を算出する。
【００２８】
次に、磁気式センサの例として、Ｐｏｌｈｍｕｓ社の磁気センサＦａｓｔｒａｋ（商品名）を用いる場合、計測対象３０２はレシーバで構成され、センサ６００のトランスミッタが発生する磁界を観測し、観測データを生成する。センサ６００は、トランスミッタによって構成され、センサ制御部５００の制御によって磁界を発生する。センサ制御部５００は計測対象３０２の観測データをもとに、計測対象３０２の位置、姿勢を算出する。
【００２９】
このようなセンサを用いる以外に、ＨＭＤ３００を撮影した画像を用いてＨＭＤ３００の位置姿勢を測定することも可能である。例えば、ＨＭＤ３００にマーカを設け、位置姿勢が既知の撮像装置が撮影した画像中のマーカ位置を用いて、ＨＭＤ３００の位置姿勢を算出することができる。この場合、計測対象３０２をマーカ、センサ６００を撮像装置、センサ制御部５００を、撮像装置の位置情報と撮像した画像とからＨＭＤ３００の位置姿勢を算出する画像処理部とする構成として考えられる。
【００３０】
さらに、特にマーカを装着せず、位置姿勢が既知の撮像装置で観察者を撮影した画像の特徴を用いて、ＨＭＤ３００の位置、姿勢を算出してもよい。この場合、計測対象３０２は観察者となる。
【００３１】
さらに、ＨＭＤ３００が有する撮像装置３０３が撮影する現実空間中に、３次元位置が既知である複数のマーカを設置し、撮像装置３０３によって撮像された画像中に含まれるマーカの位置からＨＭＤ３００の位置姿勢を算出することもできる。また、マーカの代りに現実空間を撮影した画像の特徴（例えば固定された物体の画像など）を用いても、同様にＨＭＤ３００の位置姿勢を算出することができる。
上述した位置姿勢の測定方法は、適宜組み合わせて利用することも可能である事は言うまでもない。
【００３２】
次に、このような構成を有する本実施形態の複合現実感提示システムにおいて、ＨＭＤ３００を装着し、複合現実感を体感中（以下ＭＲ体験中と記載する）の観察者が、仮想物体の操作をどのようにして行なうことが可能であるのかについて説明する。
【００３３】
図２は、仮想物体の一例としてのＣＧで描かれた車２０３を、平行移動させるための操作用仮想物体（以下、ハンドラと言う）２０１を表示した合成画像の例を示す。図２では便宜上、現実空間の画像は示していないが、実際には撮像装置３０３で撮影した、現実空間の画像に合成されている。
【００３４】
なお、図２において、リンク２０２は、合成画像によって表される複合現実空間に存在する複数の仮想物体のうち、ハンドラ２０１の操作対象である仮想物体を示すための表示である。本実施形態において、リンク２０２はハンドラと操作対象とを接続する直線である。しかし、リンク２０２はハンドラ２０１と操作対象となる仮想物体との対応を観察者に明示することが可能であれば、どのような形状であってもよい。
【００３５】
例えば、操作対象となる仮想物体と操作対象とならない仮想物体とが混在し、煩雑になる場合、リンク２０２は、操作対象となる仮想物体のバウンディングボックス表示や強調表示であってよい。もちろん、直線状のリンク２０２と、バウンディンングボックス表示等を組み合わせても良い。また、図２において、ハンドラ２０１は３次元直交座標軸を模した形状を有する。ハンドラ２０１の形状には特に制限はないが、観察者が操作しやすい形状であることが好ましい。
【００３６】
図４は、本発明の複合現実感提示システムにおける、仮想物体の操作に関する処理を説明するフローチャートである。
Ｓ４０１では、ＣＰＵ１０１が、システムの初期化処理を行う。具体的には、例えば、ＣＰＵ１０１がＣＧオブジェクト（仮想物体）データ、ハンドラのＣＧデータ、プログラムなど、必要なデータを記憶部１０５からＲＡＭ１０２に読み出す処理が初期化処理に含まれる。
【００３７】
Ｓ４０２において、画像取込部１０７は、撮像装置３０３によって撮像された現実空間の画像（現実空間画像）を取り込み、ＲＡＭ１０２に書き込む。そして、ＣＰＵ１０１は、ＲＡＭ１０２から現実空間画像を読み出し、必要に応じて補正処理を行い、画像生成部１０３が備えるグラフィックスメモリのフレーム・バッファに書き込む。なお、ＲＡＭ１０２を介さずに、画像取込部１０７が取り込んだ画像を画像生成部１０３のフレーム・バッファに直接書き込むようにしてもよい。なお、撮像装置３０３を持たない光学シースルー型のＨＭＤを用いる場合には、Ｓ４０２の処理は不要である。
【００３８】
Ｓ４０３において、入力部１０６は、センサ制御部５００の出力する計測値（計測対象３０２の位置、姿勢）を取得し、ＣＰＵ１０１へ与える。ＣＰＵ１０１は、計測対象３０２と観察者の視点位置との相対的な位置関係や、センサ制御部５００からの計測値に基づいて、観察者の視点位置姿勢を算出し、ＲＡＭ１０２に書き込む。
【００３９】
Ｓ４０４において、ＣＰＵ１０１は、仮想物体の操作用ハンドラを表示するか否かを判定する。このステップは、常にハンドラを表示する場合には省略してもよい。本実施形態では、観察者からの指示に応じてハンドラを表示するものとし、このステップでは指示入力の有無に基づいてハンドラ表示の要否を判定する。
【００４０】
上述したように、複合現実感のリアリティを損なわないという観点からすれば、指示用の入力装置を観察者に操作させることは望ましくない。そのため、本実施形態では、観察者のジェスチャー、より具体的には現実空間画像中に含まれる観察者の手のジェスチャーを指示入力として検出する。
【００４１】
ＣＰＵ１０１は、現実空間画像から観察者の手の画像領域を特定し、形状やその変化などにより観察者のハンドゼスチャーを認識する。手の画像領域の検出方法に特に制限はない。例えば、特開２００３−２９６７５９号公報に開示されるような、色情報を用いる方法を適用することができる。
【００４２】
このように、本実施形態では、観察者が特別な入力装置を用いずに、ハンドラの表示の有無を指示できる。そのため、複合現実感のリアリティを損なうことがない。また、観察者が必要な時にのみ、仮想物体を操作するためのハンドラを利用することができる。
【００４３】
ハンドラ表示の指示は、観察者のみならず、システムのオペレータが、操作入力部４００を介して与えることも可能である。例えば、観察者がジェスチャーによる指示入力をおこなうのが難しい場合や、不慣れな場合などに、オペレータがハンドラの表示及び消去を指示することが考えられる。
【００４４】
Ｓ４０４において、ハンドラの表示指示がないと判断される場合には、Ｓ４０７に進む。Ｓ４０７では、ＣＰＵ１０１が算出した観察者の視点位置姿勢と、初期化処理でＲＡＭ１０２に読み出されているＣＧオブジェクトデータとを用い、画像生成部１０３が、観察者の視点位置姿勢から観察される仮想空間の画像を描画する。そして、画像生成部１０３は、仮想空間の画像をＲＡＭ１０２から読み出した現実空間の画像と重畳合成し、合成画像を生成する。合成画像は画像生成部１０３により表示部２００及びＨＭＤ３００の表示部３０１へ供給され、各表示部で表示される。
【００４５】
なお、上述したように、ＨＭＤ３００においてステレオ立体視を実現する場合、現実空間画像は左右一対のステレオ画像として撮像装置３０３から取り込まれる。そして、視点位置姿勢の算出は右眼、左眼について行い、仮想空間画像の生成、合成画像の生成もそれぞれ右眼用画像、左眼用画像について行なう。ＨＭＤ３００の表示部３０１が有する右眼用表示デバイスに右眼用画像を、左眼用表示デバイスに左眼用画像を表示させることで、観察者に立体視させることができる。オペレータ用の表示部２００においては、例えば右眼用画像と左眼用画像を別ウインドウで表示したり、一方を切り替えて表示することが可能である。以下、説明及び理解を簡潔にするため、特に右眼用画像に関する処理、左眼用画像に関する処理を分けて説明しないが、ステレオ画像を取り扱うシステムに対しても同様の処理が適用可能である点は強調しておく。
【００４６】
Ｓ４０８において、ＣＰＵ１０１は、例えば操作入力部４００を通じてオペレータから終了指示が入力されなければ、Ｓ４０２に戻って処理を継続する。終了指示が入力された場合、ＣＰＵ１０１は処理を終了する。
【００４７】
Ｓ４０４において、ＣＰＵ１０１は、ハンドラの表示指示が入力されたと判断されると、Ｓ４０５に進み、観察者の視体積(view volume)に占める仮想物体の大きさに関する情報を算出する。
【００４８】
視体積は通常、観察者の視点位置を頂点とし、頂角を視野角とし、視線方向を高さ方向とする四角錐で表される。そして、視体積内の仮想物体のみを描画する。四角錐の高さ、すなわち、視点位置からどの距離までに存在する仮想物体を描画するかについては、予め定めておく。仮想物体のうち視体積に含まれる部分の体積と、視体積とから、視体積に占める仮想物体の大きさに関する情報として、仮想物体の占める割合を求めることができる。仮想物体と視点との距離、即ち観察者との距離が小さくなると、仮想物体は大きく描画されることになるため、視体積に占める仮想物体の割合は大きくなる。
【００４９】
Ｓ４０５において、視体積中に仮想物体が占める割合の算出には、仮想物体のオブジェクトデータを用いて算出する体積に代えて、近似的な体積を用いても良い。例えば、仮想物体のバウンディングボックス、仮想物体が内接する球、仮想物体を構成するボクセル数などを用いることができる。
【００５０】
また、視体積中の仮想物体の占める割合のほかに、クリッピング平面に占める仮想物体の投影画像の面積や仮想物体の画像の画素数を用いてもよい。より具体的には、画像生成部１０３が生成する合成画像に含まれる、仮想物体画像の面積や画素数の割合を用いることができる。さらに、仮想物体のポリゴン数、仮想物体と観察者視点の距離、観察者視点と仮想物体の移動速度、仮想物体の色空間内の範囲などを用いることもできる。
【００５１】
Ｓ４０６において、ＣＰＵ１０１は、Ｓ４０５で算出された値が、あらかじめ設定された判定条件に当てはまるか否かを判定する。
上述のように、様々な観点から仮想物体の大きさについての情報をＳ４０５で算出可能である。そのため、Ｓ４０６における判定条件も、Ｓ４０５において算出する値の種類に応じて異なる数値範囲に設定される。
【００５２】
Ｓ４０６において用いられる判定条件は、通常は、記憶部１０５に保存され、システムの起動時、または必要なタイミングでＲＡＭ１０２に格納される。また、本実施形態では、ハンドラを表示するかどうかの判定条件を、システム全体に共通した設定値として説明するが、判定条件を観察者ごとに切り替えてもよい。また、複数の判定条件を同じユーザーが切り替えて用いても良い。また、ハンドラ表示を行なうかどうかの判定条件を、観察者が目的とする仮想物体の操作に適切な距離や操作目的を考慮して設定することにより、観察者に適切な操作用ハンドラを表示することが可能となる。
【００５３】
図３は、本実施形態の複合現実感提示システムにおいて利用可能なハンドラ表示の要否判定条件を保存するテーブルの一例を示す図である。
図３に示すように、仮想空間に配置された仮想物体毎に、判定条件としての数値範囲（最小値及び最大値）が規定されている。また、数値範囲に含まれる場合のハンドラ表示動作（表示又は消去）、適用するハンドラの種類及び、ハンドラでどのような操作を許すかについて規定される。
【００５４】
Ｓ４０６において、観察者が仮想物体から離れた位置いるなどして、視体積に占める仮想物体の大きさが図３に示した判定条件に適合しない場合、ＣＰＵ１０１は処理をＳ４０７へ進める。そして、ハンドラを表示することなく仮想物体のＣＧのみを描画する。
【００５５】
一方、観察者が仮想物体に近づくにつれ、観察者の視体積に占める仮想物体の大きさが増加する。例えば、仮想物体１が視体積に占める大きさが５０（単位はＳ４０５で算出する値の種類に応じて異なる）に達すると、ＣＰＵ１０１は、処理をＳ４０９へ進め、仮想物体１を操作するためのハンドラＡを、描画すべきＣＧオブジェクトとして追加する。
【００５６】
本実施形態においては、仮想物体１が自動車全体であり、仮想物体２以降は仮想物体１の一部であるものとする。この場合、最初に図３の判定条件を満たすようになるのは最も大きな仮想物体１である。従って、仮想物体１についてのハンドラを表示し始める時点では、他の仮想物体についてのハンドラは追加されない。
【００５７】
Ｓ４１０で、ＣＰＵ１０１は、ユーザーがハンドラに対して操作を行なったか否かを判定し、操作されていない場合は、処理をＳ４０７に進める。Ｓ４０７で、画像生成部１０３は、Ｓ４０９で追加されたハンドラ及び、ハンドラと仮想物体のリンクを、仮想物体に加えてＣＧにより描画した仮想空間画像を生成した後、合成画像を生成する。この時、画像生成部１０３は、観察者の視点位置姿勢に基づき、ハンドラを、観察者の視体積の内部で、操作対象の仮想物体とは重ならず、かつ、観察者の手の届く範囲に存在する仮想物体として表示する。
【００５８】
図５は、仮想物体１に対するハンドラＡが表示された状態を示す図である。図２で説明したように、ハンドラＡ ２０１1は、直交３次元座標系の座標軸を模した形状を有する。また、ハンドラＡ ２０１1と、操作対象の仮想物体１ ２０３との関連を示すリンク２０２1が合わせて表示される。
【００５９】
また、操作対象となる仮想物体の種類や、観察者との距離などに応じ、可能な操作が異なるハンドラを表示することができる。具体的には、次のようなハンドラを例示できる。・仮想物体をＹｕｐの座標系におけるｘｚ平面内で、かつ平行移動のみ可能なハンドラ
・他の仮想物体に接した移動のみ操作可能なハンドラ（例えば、車のサイドミラーの位置変更を、ボディに接した移動のみ許すハンドラ）
・仮想物体の座標系のうち、特定の軸を中心とした回転のみが可能なハンドラ
このように、操作の自由度が高すぎず、ユーザーが行なうであろう規則的な操作を容易にするハンドラを表示することで、仮想物体の操作性を向上させることができる。
【００６０】
本実施形態において、ハンドラ２０１と仮想物体１ ２０３との対応を示す表示として用いられるリンク２０２は、直線のＣＧオブジェクトとして図示している。しかし、上述のように、仮想物体とハンドラとの対応を示すことが可能であれば、どのような形態であってもよい。
【００６１】
また、操作対象となる１つの仮想物体に対し、複数のハンドラの中から所望の操作に適したハンドラをユーザが選択可能に構成することも可能である。例えば表示中のハンドラに対して予め定めた操作が行なわれたことが検出された場合、表示するハンドラの種類を順次切り替えるように構成すればよい。
【００６２】
なお、判定条件を満たしたハンドラは、条件を満たしている限りは、観察者が移動しても、表示が継続される。また、観察者が、別の方向を向いて、仮想物体が視体積外に移動したことにより対応するハンドラが表示されなくなっても、仮想物体が再度視野に入ると、ハンドラが手の届く位置に表示される。このように、あたかもハンドラが体験者についてまわるかのように表示される。
【００６３】
さらに、観察者の移動により、視体積に占める仮想物体の大きさが判定条件の最大値を上回ったり最小値を下回ったりすると、Ｓ４０６の判定に基づいてハンドラは表示されなくなる。例えば、図３の例では、仮想物体１の大きさが１００を超えると、仮想物体１を操作するためのハンドラは表示されなくなる。
【００６４】
Ｓ４０６〜Ｓ４１１の処理は視体積中に少なくとも一部が含まれる全ての仮想物体について行なわれる。従って、観察者の移動に応じてハンドラが表示される仮想物体が変化する。図６は、観察者が仮想物体１に近づいたことにより、仮想物体１用のハンドラ２０１1が消去され、仮想物体２（タイヤ）用のハンドラ２０１2及び仮想物体３（ドアミラー）用のハンドラ２０１3が表示されている状態を示す。
【００６５】
また、図７に、仮想物体１〜３用のハンドラは消去され、仮想物体４（ボルト）用のハンドラ２０１4とそのリンク２０２4のみが表示されている状態を示す。図７では、仮想物体４が複数（６個）存在するため、各々に対してハンドラ２０１4及びリンク２０２4が表示される。
【００６６】
以上のような手順で、観察者が仮想物体を操作するハンドラを観察者に表示し、観察者の仮想物体の操作を容易に行わせることができる。以下、観察者による仮想物体の操作と、それに応じた本システムの処理について説明する。
【００６７】
Ｓ４０９において、図８のように仮想物体２（タイヤ８０２）用のハンドラ２０１2が表示されているものとする。
本実施形態において、観察者がハンドラを操作する場合、まず、操作したいハンドラの近傍に自分の手の画像が表示されるように手８０３を移動させる。そして、ハンドラを掴むような手の形を作り、その状態で手を平行移動させたり、手首をひねったりして、ハンドラを平行移動又は回転移動させる。
【００６８】
上述したように、ＣＰＵ１０１は、現実空間画像から観察者の手の画像領域を特定し、手の画像領域の形状や位置の変化などに基づいて、観察者の手の形や動きを認識することができる。
【００６９】
例えば、Ｓ４１０において、ＣＰＵ１０１が、ハンドラ２０１2を操作する形を有する手の画像領域が、矢印の方向（図面右方向）へ移動したことを検出したとする。これにより、ＣＰＵ１０１は、ハンドラが操作されたと認識し、Ｓ４１１へ処理を進める。
【００７０】
Ｓ４１１において、ＣＰＵ１０１は、ハンドラに対しておこなされた操作（種類及び操作量）に応じ、操作対象である仮想物体とハンドラのＣＧオブジェクトの位置を変更する。これにより、Ｓ４０７において、画像生成部１０３が生成する合成画像において、仮想物体の操作が反映される。
【００７１】
例えば、Ｓ４０２〜Ｓ４１１の処理を、合成画像の生成レート（例えば３０フレーム／秒）に合わせて実行することで、観察者の操作が合成画像にほぼリアルタイムに反映されることになる。
【００７２】
図９は、仮想物体２を回転操作するためのハンドラが表示されている状態の例を示す。平行移動操作用のハンドラ２０１2（図８）と、回転操作用のハンドラ２０１’2は、形状が異なる。このように、操作の種類に応じてハンドラを視覚的に異ならせることで、観察者がハンドラの形状等から、ハンドラの用途を直感的に把握することが可能となる。
【００７３】
手首をひねるジェスチャーにより、ハンドラ２０１’2を操作することで、操作対象である仮想物体２に対し、手首をひねる方向と量に応じた操作量が適用される。
【００７４】
なお、観察者の手の位置や動きを検出可能な任意の方法を用いてハンドラの操作を検出、認識することが可能である。例えば、磁気センサを具備したハンドグローブなどの機器を操作入力部４００に具備し、ハンドラの位置、姿勢と、観察者の手の位置、姿勢からハンドラの操作量を測定することもできる。
【００７５】
以上説明したように、本実施形態によれば、仮想物体を操作するための仮想的な操作手段であるハンドラを操作可能に表示することで、観察者が複合現実感を体感しながら、仮想物体を操作することが可能となる。
【００７６】
さらに、体験者が複数の仮想物体群の中の１つの仮想物体の選択、規則的な操作を容易行なうことが可能となる。また、仮想空間中に含まれる多数の仮想物体のうち、観察者の視体積中に占める大きさが予め定めた範囲に含まれる仮想物体に対してハンドラを表示する。これにより、ハンドラの表示が煩雑にならず、観察者は容易に所望の仮想物体に対応するハンドラを把握できる。また、仮想物体と観察者との距離に応じてハンドラが表示される仮想物体が変化するため、観察者は所望の仮想物体の操作に適した距離に移動するだけで、所望の仮想物体に対応するハンドラを識別できる。
【００７７】
また、観察者の手を用いてハンドラを操作することが可能であるため、仮想物体の操作を行なうための操作手段を別途必要としない。そのため、複合現実感のリアリティを損なわずに仮想物体の操作を行なうことが可能となる。
【００７８】
（他の実施形態）
上述の実施形態では、観察者が一人である場合について説明したが、上述したように本実施形態の複合現実感提示システムでは、複数の観察者に対応することが可能である。複数の観察者が存在する場合、ハンドラの表示条件や種類などを共通としても良いし、観察者毎に異ならせてもよい。
【００７９】
上述の実施形態は、システム或は装置のコンピュータ（或いはＣＰＵ、ＭＰＵ等）によりソフトウェア的に実現することも可能である。
従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
【００８０】
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。
【００８１】
上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線／無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、ＭＯ、ＣＤ、ＤＶＤ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【００８２】
有線／無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムファイル）をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。
【００８３】
そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。
つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
【００８４】
上述の実施形態は、システム或は装置のコンピュータ（或いはＣＰＵ、ＭＰＵ等）によりソフトウェア的に実現することも可能である。
従って、上述の実施形態をコンピュータで実現するために、該コンピュータに供給されるコンピュータプログラム自体も本発明を実現するものである。つまり、上述の実施形態の機能を実現するためのコンピュータプログラム自体も本発明の一つである。
【００８５】
なお、上述の実施形態を実現するためのコンピュータプログラムは、コンピュータで読み取り可能であれば、どのような形態であってもよい。例えば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等で構成することができるが、これらに限るものではない。
【００８６】
上述の実施形態を実現するためのコンピュータプログラムは、記憶媒体又は有線／無線通信によりコンピュータに供給される。プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記憶媒体、ＭＯ、ＣＤ、ＤＶＤ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【００８７】
有線／無線通信を用いたコンピュータプログラムの供給方法としては、コンピュータネットワーク上のサーバを利用する方法がある。この場合、本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムファイル）をサーバに記憶しておく。プログラムファイルとしては、実行形式のものであっても、ソースコードであっても良い。
【００８８】
そして、このサーバにアクセスしたクライアントコンピュータに、プログラムファイルをダウンロードすることによって供給する。この場合、プログラムファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに分散して配置することも可能である。
つまり、上述の実施形態を実現するためのプログラムファイルをクライアントコンピュータに提供するサーバ装置も本発明の一つである。
【００８９】
また、上述の実施形態を実現するためのコンピュータプログラムを暗号化して格納した記憶媒体を配布し、所定の条件を満たしたユーザに、暗号化を解く鍵情報を供給し、ユーザの有するコンピュータへのインストールを許可してもよい。鍵情報は、例えばインターネットを介してホームページからダウンロードさせることによって供給することができる。
【００９０】
また、上述の実施形態を実現するためのコンピュータプログラムは、すでにコンピュータ上で稼働するＯＳの機能を利用するものであってもよい。
【００９１】
さらに、上述の実施形態を実現するためのコンピュータプログラムは、その一部をコンピュータに装着される拡張ボード等のファームウェアで構成してもよいし、拡張ボード等が備えるＣＰＵで実行するようにしてもよい。
【図面の簡単な説明】
【００９２】
【図１】本発明の実施形態に係る複合現実感提示システムの構成例を示すブロック図である。
【図２】本発明の実施形態に係る複合現実感提示システムにおいて、仮想物体の一例としてのＣＧで描かれた車２０３を、平行移動させるための操作用仮想物体２０１を表示した合成画像の例を示す図である。
【図３】本発明の実施形態に係る複合現実感提示システムにおいて利用可能なハンドラ表示の要否判定条件を保存するテーブルの一例を示す図である。
【図４】本発明の複合現実感提示システムにおける、仮想物体の操作に関する処理を説明するフローチャートである。
【図５】本発明の実施形態に係る複合現実感提示システムにおけるハンドラの表示例を示す図である。
【図６】本発明の実施形態に係る複合現実感提示システムにおけるハンドラの表示例を示す図である。
【図７】本発明の実施形態に係る複合現実感提示システムにおけるハンドラの表示例を示す図である。
【図８】本発明の実施形態に係る複合現実感提示システムにおけるハンドラの表示例を示す図である。
【図９】本発明の実施形態に係る複合現実感提示システムにおけるハンドラの表示例を示す図である。
【図１】
2008040832.tif 000003
【図２】
2008040832.tif 000004
【図３】
2008040832.tif 000005
【図４】
2008040832.tif 000006
【図５】
2008040832.tif 000007
【図６】
2008040832.tif 000008
【図７】
2008040832.tif 000009
【図８】
2008040832.tif 000010
【図９】
2008040832.tif 000011