(57)【要約】【課題】  現実空間画像上に仮想空間画像を重畳させる場合に、現実空間画像中の被写体領域を除いた他の領域に対してのみ仮想空間画像を重畳させる処理を、より簡便に行うための技術を提供すること。【解決手段】  撮像装置３０３の撮像位置姿勢情報に最も近い撮像位置姿勢情報に対応する色情報を取得する。そしてこの取得した色情報を用いて、撮像画像中の手の領域を特定する。そして、この特定した領域上には仮想空間画像が重畳されないように、撮像画像上に仮想空間画像を重畳させる。【選択図】  図１
2009015648.tif 000002
【特許請求の範囲】
【請求項１】
被写体の撮像を撮像位置姿勢を異ならせて複数回を行うことで得られる複数枚の画像のそれぞれについて、画像内における前記被写体の領域内の色情報と、当該画像の撮像位置姿勢情報と、をセットにして記憶保持する記憶保持手段と、
前記被写体を含む現実空間を撮像する撮像装置の撮像位置姿勢情報を取得する第１の取得手段と、
前記撮像装置が撮像した撮像画像を取得する第２の取得手段と、
前記第１の取得手段が取得した撮像位置姿勢情報に最も近い撮像位置姿勢情報を含むセットを前記記憶保持手段から取得する第３の取得手段と、
前記第３の取得手段が取得したセット中の色情報を用いて、前記第２の取得手段が取得した撮像画像中の前記被写体の領域を特定する特定手段と、
前記第１の取得手段が取得した撮像位置姿勢情報に基づいて仮想空間画像を生成する生成手段と、
前記特定手段が特定した領域上には前記仮想空間画像が重畳されないように、前記第２の取得手段が取得した撮像画像上に、前記仮想空間画像を重畳させる重畳手段と、
前記重畳手段により得られる合成画像を出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記第３の取得手段は、前記記憶保持手段が記憶保持しているセット群のそれぞれのセット中の位置姿勢情報のうちの位置情報のうち、前記第１の取得手段が取得した撮像位置姿勢情報のうちの位置情報との差が最も小さい位置情報を含むセットを特定し、取得することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第３の取得手段は、前記記憶保持手段が記憶保持しているセット群のそれぞれのセット中の位置姿勢情報のうちの姿勢情報のうち、前記第１の取得手段が取得した撮像位置姿勢情報のうちの姿勢情報との差が最も小さい姿勢情報を含むセットを特定し、取得することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
被写体の撮像を撮像位置姿勢を異ならせて複数回を行うことで得られる複数枚の画像のそれぞれについて、画像内における前記被写体の領域内の色情報と、当該画像の撮像位置姿勢情報と、をセットにしてメモリに記憶保持している画像処理装置が行う画像処理方法であって、
前記被写体を含む現実空間を撮像する撮像装置の撮像位置姿勢情報を取得する第１の取得工程と、
前記撮像装置が撮像した撮像画像を取得する第２の取得工程と、
前記第１の取得工程で取得した撮像位置姿勢情報に最も近い撮像位置姿勢情報を含むセットを前記メモリから取得する第３の取得工程と、
前記第３の取得工程で取得したセット中の色情報を用いて、前記第２の取得工程で取得した撮像画像中の前記被写体の領域を特定する特定工程と、
前記第１の取得工程で取得した撮像位置姿勢情報に基づいて仮想空間画像を生成する生成工程と、
前記特定工程で特定した領域上には前記仮想空間画像が重畳されないように、前記第２の取得工程で取得した撮像画像上に、前記仮想空間画像を重畳させる重畳工程と、
前記重畳工程で得られる合成画像を出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項５】
コンピュータに請求項４に記載の画像処理方法を実行させるためのプログラム。
【請求項６】
請求項５に記載のプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感を提供するための技術に関するものである。
【背景技術】
【０００２】
近年、現実世界と仮想世界とを違和感なく自然に結合する複合現実感（ＭＲ：Mixed Reality）の技術を応用した装置（複合現実感装置）が盛んに提案されている。これらの複合現実感装置は、次のようにして複合現実感を、本装置の使用者に提示している。即ち、カメラなどの撮像装置によって撮影した現実世界の画像に対し、コンピュータグラフィックス（ＣＧ：Computer Graphics）で描画した仮想世界の画像を合成する。そして係る合成による合成画像を、ヘッドマウントディスプレイ（ＨＭＤ：Head-Mounted Display）等の表示装置に表示する。
【０００３】
これらの複合現実感装置は、複合現実感を高めるために、本装置の使用者の視点位置・姿勢をリアルタイムで取得し、現実世界の画像の変化に追従させて仮想世界の画像を生成し、使用者に対してＨＭＤのような表示装置にリアルタイムに表示する必要がある。複合現実感装置では、センサ装置によって計測した使用者の視点位置・姿勢を仮想世界での仮想の視点位置・姿勢として設定し、この設定に基づいて仮想世界の画像をＣＧにより描画し、現実世界の画像と合成する。
【０００４】
また、ＨＭＤは、複合現実感の提示のため、複合現実感装置の使用者の視野には、ＨＭＤによる表示があり、且つ係る表示内にはＣＧを描画する領域が含まれている。
【０００５】
これらの技術により、複合現実感装置の使用者は、あたかも現実世界の中に仮想の物体が存在しているかのような画像を観察することができる。しかし、現実世界の画像と仮想世界の画像とを合成する際には、仮想世界の画像により自分の手が隠されてしまうこともあり、複合現実感のリアリティを損なわせることになる。
【０００６】
このような複合現実感のリアリティを少ない処理負荷で向上させる方法が、特許文献１に開示されている。係る特許文献１に開示されている技術では、現実空間の画像のうち、使用者の手に対しては仮想世界の画像を重畳せず、よりリアリティの高い複合現実感を体験させている（ハンドオーバーレイ機能）。
【０００７】
しかし、従来の技術では、特定の色情報などの単一のパラメータを用いて使用者の手の画像を判定していたため、使用者の視点位置、姿勢の変化や、使用者の位置する空間内の照明条件の変化に対しては、十分な効果が得られないことが多かった。具体的には、使用者の手以外の画像に手の色に近い画像がある場合、その画像の部分には仮想世界の画像を重畳しないので、使用者の手以外の実写画像中の物体が不自然に見えてしまうという問題が頻発していた。また逆に、使用者の手は、その位置姿勢によっては照明などの変化により別の色となり、使用者の手を認識できないため、使用者の手に仮想世界の画像が重畳されてしまうことから、使用者の手が見えなくなるといった問題が頻発していた。
【０００８】
現実世界の照明条件をシミュレートし、仮想世界のＣＧの照明条件をこのシミュレート結果に近似させる技術もある。しかし、シミュレートの結果が算出されるまでの処理時間は非常に大きく、リアルタイムに複合現実感を体験させることを目的とする複合現実感提示装置での利用は困難である。将来的に、ハードウェアの能力が向上した場合であっても、複合現実感提示装置自体の処理負荷を圧迫するため、実用的ではない。
【特許文献１】特開２００３−２９６７５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記のように、従来技術には、例えば、現実世界の画像における被写体領域を除いた領域にのみＣＧを重畳した合成画像を生成する場合に、以下のような問題がある。
【００１０】
先ず、撮像装置の位置、姿勢によらず、単一のパラメータ情報を用いると、照明条件が変化するような撮像装置の位置、姿勢においては、現実世界の画像から適切に被写体領域を抽出することは困難となる。その結果、被写体領域がＣＧに隠されたり、被写体領域以外の領域にＣＧが重畳されない、という問題が生じる。これにより、的確な合成画像を出力することは困難となる。
【００１１】
また、実用性のある、複数のパラメータ情報を生成すること自体が難しい。更に、生成したパラメータ情報を適切に使い分けて、被写体領域を的確に除いてＣＧ画像を重畳した合成画像を表示することは困難であった。
【００１２】
また、照明条件をシミュレートするような処理は処理負荷が高く、複合現実感提示装置の使用者にリアルタイムにＣＧ画像を適切に重畳した合成画像を提供することは困難であった。
【００１３】
本発明は以上の問題に鑑みてなされたものであり、現実空間画像上に仮想空間画像を重畳させる場合に、現実空間画像中の被写体領域を除いた他の領域に対してのみ仮想空間画像を重畳させる処理を、より簡便に行うための技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１５】
即ち、被写体の撮像を撮像位置姿勢を異ならせて複数回を行うことで得られる複数枚の画像のそれぞれについて、画像内における前記被写体の領域内の色情報と、当該画像の撮像位置姿勢情報と、をセットにして記憶保持する記憶保持手段と、
前記被写体を含む現実空間を撮像する撮像装置の撮像位置姿勢情報を取得する第１の取得手段と、
前記撮像装置が撮像した撮像画像を取得する第２の取得手段と、
前記第１の取得手段が取得した撮像位置姿勢情報に最も近い撮像位置姿勢情報を含むセットを前記記憶保持手段から取得する第３の取得手段と、
前記第３の取得手段が取得したセット中の色情報を用いて、前記第２の取得手段が取得した撮像画像中の前記被写体の領域を特定する特定手段と、
前記第１の取得手段が取得した撮像位置姿勢情報に基づいて仮想空間画像を生成する生成手段と、
前記特定手段が特定した領域上には前記仮想空間画像が重畳されないように、前記第２の取得手段が取得した撮像画像上に、前記仮想空間画像を重畳させる重畳手段と、
前記重畳手段により得られる合成画像を出力する出力手段と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１７】
即ち、被写体の撮像を撮像位置姿勢を異ならせて複数回を行うことで得られる複数枚の画像のそれぞれについて、画像内における前記被写体の領域内の色情報と、当該画像の撮像位置姿勢情報と、をセットにしてメモリに記憶保持している画像処理装置が行う画像処理方法であって、
前記被写体を含む現実空間を撮像する撮像装置の撮像位置姿勢情報を取得する第１の取得工程と、
前記撮像装置が撮像した撮像画像を取得する第２の取得工程と、
前記第１の取得工程で取得した撮像位置姿勢情報に最も近い撮像位置姿勢情報を含むセットを前記メモリから取得する第３の取得工程と、
前記第３の取得工程で取得したセット中の色情報を用いて、前記第２の取得工程で取得した撮像画像中の前記被写体の領域を特定する特定工程と、
前記第１の取得工程で取得した撮像位置姿勢情報に基づいて仮想空間画像を生成する生成工程と、
前記特定工程で特定した領域上には前記仮想空間画像が重畳されないように、前記第２の取得工程で取得した撮像画像上に、前記仮想空間画像を重畳させる重畳工程と、
前記重畳工程で得られる合成画像を出力する出力工程と
を備えることを特徴とする。
【発明の効果】
【００１８】
本発明の構成によれば、現実空間画像上に仮想空間画像を重畳させる場合に、現実空間画像中の被写体領域を除いた他の領域に対してのみ仮想空間画像を重畳させる処理を、より簡便に行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
【００２０】
［第１の実施形態］
図１は、ユーザに複合現実感を提供するための、本実施形態に係るシステムのハードウェア構成を示すブロック図である。図１に示す如く、本実施形態に係るシステムは、コンピュータ１００、表示部２００、操作入力部４００、ＨＭＤ３００、センサ６００、センサ制御部５００、により構成されている。
【００２１】
先ず、コンピュータ１００について説明する。
【００２２】
ＣＰＵ１０１は、ＲＡＭ１０２に格納されているプログラムやデータを用いて、コンピュータ１００全体の制御を行うと共に、コンピュータ１００が行うものとして後述する各処理を実行、若しくは制御する。
【００２３】
ＲＡＭ１０２は、ディスク装置１０５からロードされたプログラムやデータ、入力装置１０６や画像取込装置１０７を介して受信したデータ、を一時的に記憶する為のエリアを有する。更に、ＲＡＭ１０２は、ＣＰＵ１０１が各処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ１０２は、各種のエリアを適宜提供することができる。
【００２４】
画像生成装置１０３は、仮想空間画像を生成するための一連の処理や、係る仮想空間画像を現実空間画像上に重畳する為の一連の処理、そして、生成した重畳後の画像（合成画像）をＨＭＤ３００や表示部２００に対して出力する為の処理、を行う。画像生成装置１０３は、例えば、グラフィックスカードにより構成されている。
【００２５】
ディスク装置１０５は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。ディスク装置１０５には、ＯＳ（オペレーティングシステム）や、コンピュータ１００が行うものとして後述する各処理をＣＰＵ１０１に実行、若しくは制御させるためのプログラムやデータが保存されている。係るデータには、仮想空間を構成する各仮想物体のデータも含まれている。
【００２６】
入力装置１０６は、後述する操作入力部４００、センサ制御部５００を本コンピュータ１００に接続するためのものである。操作入力部４００やセンサ制御部５００から送出されたデータは、係る入力装置１０６を介してディスク装置１０５やＲＡＭ１０２に格納される。
【００２７】
画像取込装置１０７は、後述するＨＭＤ３００が有する撮像装置３０３から送出された現実空間画像（撮像画像）を受け、これをＲＡＭ１０２やディスク装置１０５に送出する。画像取込装置１０７は、例えば、ビデオキャプチャカードにより構成されている。
【００２８】
１０４は、上述の各部を繋ぐバスである。
【００２９】
次に、操作入力部４００について説明する。
【００３０】
操作入力部４００は、キーボードやマウスなどにより構成されており、コンピュータ１００の操作者が操作することで、各種の指示をコンピュータ１００に対して入力することができる。操作入力部４００を用いて入力された各種の指示は、データとして入力装置１０６に入力され、入力装置１０６はこのデータをＣＰＵ１０１に通知する。
【００３１】
次に、表示部２００について説明する。
【００３２】
表示部２００は、ＣＲＴや液晶画面などにより構成されており、コンピュータ１００の操作者に対して様々な情報を表示する。
【００３３】
次に、ＨＭＤ３００について説明する。
【００３４】
ＨＭＤ３００は、表示部３０１、計測対象３０２、撮像装置３０３、により構成されている。ＨＭＤ３００は、複合現実感を体験するユーザの頭部に装着される、所謂、頭部装着型表示装置の一例である。なお、本実施形態では、１台のＨＭＤ３００がコンピュータ１００に接続されているが、複数台のＨＭＤ３００がコンピュータ１００に接続されている場合には、後述する各処理を、それぞれのＨＭＤ３００について行えばよい。
【００３５】
表示部３０１は、コンピュータ１００から送出された画像（画像生成装置１０３が生成した合成画像）を表示する為のものであり、ＨＭＤ３００を頭部に装着したユーザの眼前に位置するようにＨＭＤ３００に取り付けられている。従って、頭部にＨＭＤ３００を装着したユーザの眼前には、係る合成画像が表示されることになる。
【００３６】
計測対象３０２は、その位置姿勢を、センサ６００、センサ制御部５００を用いて計測するためにＨＭＤ３００に対して取り付けられたものである。計測対象３０２について詳しくは後述する。
【００３７】
撮像装置３０３は、現実空間の動画像若しくは静止画像を撮像可能なカメラであり、撮像した各フレームの画像（現実空間画像）若しくは静止画像（現実空間画像）は、コンピュータ１００が有する画像取込装置１０７に送出される。
【００３８】
次に、センサ６００、センサ制御部５００について説明する。
【００３９】
計測対象３０２、センサ６００、センサ制御部５００はどのようなセンサシステムであっても良いが、その目的とするところは、ＨＭＤ３００の位置姿勢を取得することにある。従って、係る目的を達成することができるのであれば、如何なるセンサシステムを用いても良いし、センサシステム以外の方法で係る目的を達成しても良い。本実施形態では、係るセンサシステムとして、磁気センサシステムを用いる。磁気センサシステムとしては、Polhmus社の磁気センサFastrakを用いることができる。
【００４０】
この場合、センサ６００は、磁界の発信源であり、計測対象３０２は、係る磁界中における自身の位置姿勢に応じた磁気の変化を検知する。係る検知結果はセンサ制御部５００に送出される。センサ制御部５００は、係る検知結果に基づいて、センサ座標系における計測対象３０２の位置姿勢情報を求める。センサ座標系とは、センサ６００の位置を原点とし、係る原点で互いに直交する３軸をそれぞれ、ｘ軸、ｙ軸、ｚ軸、とする座標系のことである。そしてセンサ制御部５００は、求めた位置姿勢情報を、コンピュータ１００が有する入力装置１０６に対して送出する。
【００４１】
また、磁気センサシステム以外のセンサシステムとしては、光学式のものを用いることもできる。この場合、Northern Digital社の光学式センサOPTOTRAK 3020の計測対象３０２は発光装置によって構成され、センサ制御部５００による制御に従って発光する。センサ６００は受光装置によって構成され、計測対象３０２により発せられた光を観測する。センサ制御部５００は、係る観測結果に基づいて、計測対象３０２の位置姿勢情報を求める。
【００４２】
また、別の光学式のセンサシステムの例として、3rdTech社の光学式センサHiBallの場合、計測対象３０２は受光装置によって構成され、センサ６００は発光装置によって構成される。センサ６００は、センサ制御部５００による制御に従って発光する。計測対象３０２は、センサ６００により発せられた光を観測する。センサ制御部５００は、係る観測結果に基づいて、計測対象３０２の位置姿勢情報を求める。
【００４３】
以上説明した様々なセンサシステムの何れを用いても、計測対象３０２の位置姿勢情報を求めることができる。何れのセンサシステムについても、位置姿勢情報を求めるための仕組みについては周知であるので、これについての説明は省略する。
【００４４】
なお、最終的には計測対象３０２の位置姿勢情報ではなく、撮像装置３０３の位置姿勢情報を求めるので、計測対象３０２と撮像装置３０３との位置姿勢関係（バイアス）は予め求めておく必要がある。係るバイアスのデータはディスク装置１０５に予め登録しておく。そして、計測対象３０２の位置姿勢情報を求めると、この位置姿勢情報にバイアスを加えることで、撮像装置３０３の位置姿勢情報を求めることができる。
【００４５】
一方で、センサシステムを用いることなく、以下説明するように、画像処理を用いて撮像装置３０３の位置姿勢情報を求める方法もある。
【００４６】
現実空間中にその配置位置が既知のマーカを配置する。そして、係るマーカを含む現実空間画像を撮像装置３０３が撮像した場合に、係る現実空間画像からマーカを抽出し、その抽出座標と、既知の配置位置とから、撮像装置３０３の位置姿勢情報を求める。なお、配置位置が既知のマーカの代わりに、現実空間中における自然特徴を用いても良い。
【００４７】
また、撮像装置３０３にマーカを装着し、このマーカを、現実空間中に配置した撮像装置でもって撮像する。そして、撮像した画像からマーカを抽出し、抽出した座標に基づいて、撮像装置３０３の位置姿勢情報を求めても良い。
【００４８】
また、ＨＭＤ３００を頭部に装着するユーザを撮像装置３０３によって撮像し、撮像した画像からユーザの自然特徴を抽出し、その抽出座標に基づいて撮像装置３０３の位置姿勢情報を求めるようにしても良い。
【００４９】
このように、画像処理を用いても、撮像装置３０３の位置姿勢情報を求めることができる。もちろん、上記センサシステムと上記画像処理とを適宜組み合わせて用いるようにしても良い。
【００５０】
本実施形態では、図１に示した構成を有するシステムを用いて現実空間画像上に仮想空間画像を重畳させる場合に、現実空間画像中に被写体として写っている手の領域については仮想空間画像を重畳させないようにする。即ち、上記ハンドオーバーレイ機能を実施する。その際、現実空間画像から手の領域を抽出する必要があるが、本実施形態では、この現実空間画像を撮像したときの撮像装置３０３の位置姿勢情報に基づいて決まる色情報を用いて、手の領域を抽出する。これは、同じ手でもそれを撮像するときの撮像装置３０３の位置や姿勢によっては、見える色が異なることに起因する。これにより、従来のように、単一のパラメータ情報を用いた場合よりも、適切な合成画像を生成することができる。特にハンドオーバーレイ機能を用いる場合には、より的確に合成画像を表示し、効果の高いハンドオーバーレイ機能を提供することができる。
【００５１】
先ず、実際にユーザに複合現実感を提供する前に、様々な位置姿勢から手を撮像した場合に、その色情報をディスク装置１０５に登録する処理を行う必要がある。図２は、様々な位置姿勢から手を撮像する様子を示す図である。
【００５２】
図２に示す如く、現実空間中には蛍光灯や自然光などの光源２００１が存在する。図２には光源として光源２００１のみしか示していないが実際には複数存在することが多い。従って、手を撮像する撮像位置姿勢を変えると、観察される手の色が変わってしまう可能性が高い。そこで、本実施形態では、図２に示す如く、ＨＭＤ３００を頭部に装着したユーザ２０００は様々な位置姿勢に移動し、自身の手を撮像装置３０３により撮像する。もちろん、それぞれの位置姿勢で撮像した画像における手の色は若干ながら色が異なることが多い。そして、それぞれの画像から抽出した手の領域の色情報と、それぞれの画像の撮像位置姿勢情報とをセットにしてディスク装置１０５に登録する。
【００５３】
図３は、様々な位置姿勢から撮像装置３０３によって手を撮像することで複数枚の画像を得た場合に、それぞれの画像から手の色情報と、撮像位置姿勢情報とをセットにしてディスク装置１０５に登録する処理のフローチャートである。なお、図３に示したフローチャートに従った処理をＣＰＵ１０１に実行させる、若しくは制御させるためのプログラムやデータは、ディスク装置１０５に保存されている。係るプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされる。そしてＣＰＵ１０１がこのロードされたプログラムやデータを用いて処理を実行、若しくは制御することで、図３に示したフローチャートに従った処理が実現される。
【００５４】
先ず、ステップＳ３０１では、コンピュータ１００全体の初期化処理を行う。係る初期化処理では、以下説明する各処理で用いる様々なプログラムやデータをディスク装置１０５からＲＡＭ１０２にロードする。もちろん、コンピュータ１００以外の機器についても初期化を行う。
【００５５】
次に、頭部にＨＭＤ３００を装着したユーザが操作入力部４００を用いて撮像指示を入力し、画像取込装置１０７が係る撮像指示を検知すると、ステップＳ３０２では、画像取込装置１０７は、次のような処理を行う。即ち、撮像装置３０３から送出された１フレーム分の現実空間画像をＲＡＭ１０２に転送（取得）する。
【００５６】
また、入力装置１０６は、係る撮像指示を検知すると、ステップＳ３０３では、入力装置１０６は、センサ制御部５００から送出された位置姿勢情報をＲＡＭ１０２に転送（取得）する。そしてＲＡＭ１０２への位置姿勢情報の取得後、取得した位置姿勢情報に上記バイアスを加えることで、撮像装置３０３の位置姿勢情報を求めることができる。
【００５７】
ここで、上記撮像指示は、操作入力部４００を用いて入力することに限定するものではなく、様々な入力方法が考えられる。例えば、ユーザが所定のハンドジェスチャを行った場合に、係るハンドジェスチャを検知すれば、自動的に撮像指示を入力できるようにしても良い。
【００５８】
次に、ステップＳ３０４では、ステップＳ３０２でＲＡＭ１０２に転送した現実空間画像中に写っている手の領域を抽出する。そして、抽出した手の領域を構成している各画素の値を、例えば、ＣｒＣｂ平面での分布として記述した上で、色空間の各軸の座標範囲を指定する色情報として求める。なお、手の領域を抽出する方法については様々な方法が考えられる。例えば、現実空間画像中における手の輪郭をエッジ抽出処理等を用いて求めても良いし、現実空間画像を表示部２００に表示し、コンピュータ１００の操作者が操作入力部４００を用いて手の領域を指示しても良い。また、手に仮想空間画像を重ねて表示し、手の実写画像以外の領域に的確に仮想空間画像が重畳されるように色情報を選択してもよい。選択の例としては、例えば、特開２００５−１０７９６７号公報に開示されているような方法がある。
【００５９】
次にステップＳ３０５では、ステップＳ３０３で取得した、撮像装置３０３の位置姿勢情報と、ステップＳ３０４で取得した色情報と、をセットにしてディスク装置１０５に登録する（記憶保持させる）。
【００６０】
次に、ステップＳ３０６では、操作入力部４００を用いて本処理の終了指示が入力されたか、何らかの終了条件が満たされたかをチェックする。係るチェックの結果、操作入力部４００を用いて本処理の終了指示が入力された、若しくは何らかの終了条件が満たされた場合には本処理を終了する。一方、操作入力部４００を用いて本処理の終了指示は入力されていないし、何らかの終了条件も満たされていない場合には、処理をステップＳ３０２に戻し、次のセット登録処理を行う。
【００６１】
これにより、手の撮像を撮像位置姿勢を異ならせて複数回を行うことで得られる複数枚の画像のそれぞれについて、画像内における手の領域内の色情報と、この画像の撮像位置姿勢情報と、をセットにしてディスク装置１０５に登録することができる。
【００６２】
次に、図３のフローチャートに従った処理の後に行う、ＨＭＤ３００を頭部に装着したユーザに、現実空間画像上に仮想空間画像を重畳させた合成画像を、ＨＭＤ３００が有する表示部３０１を介して提供するための処理について説明する。
【００６３】
図４は、現実空間画像中の手の領域については仮想空間画像を重畳させないように、現実空間画像上に仮想空間画像を重畳させた合成画像を、ＨＭＤ３００が有する表示部３０１に送出するための処理のフローチャートである。なお、図４に示したフローチャートに従った処理をＣＰＵ１０１に実行させる、若しくは制御させるためのプログラムやデータは、ディスク装置１０５に保存されている。係るプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされる。そしてＣＰＵ１０１がこのロードされたプログラムやデータを用いて処理を実行、若しくは制御することで、図４に示したフローチャートに従った処理が実現される。
【００６４】
ステップＳ４０１では、コンピュータ１００全体の初期化処理を行う。係る初期化処理では、以下説明する各処理で用いる様々なプログラムやデータをディスク装置１０５からＲＡＭ１０２にロードする。もちろん、コンピュータ１００以外の機器についても初期化を行う。
【００６５】
次に、ステップＳ４０２では、画像取込装置１０７は、撮像装置３０３から送出された１フレーム分の現実空間画像をＲＡＭ１０２に転送（第２の取得）する。そしてＣＰＵ１０１はこの転送された現実空間画像に対して、必要に応じて適切な補正処理を行った後、この現実空間画像を、画像生成装置１０３が有するグラフィックスメモリ上のフレームバッファに転送する。なお、撮像装置３０３から送出された現実空間画像は、ＲＡＭ１０２を介さず、直接上記フレームバッファに転送するようにしても良い。
【００６６】
次にステップＳ４０３では、入力装置１０６は、センサ制御部５００から送出された位置姿勢情報をＲＡＭ１０２に転送（第１の取得）する。そしてＲＡＭ１０２への位置姿勢情報の取得後、取得した位置姿勢情報に上記バイアスを加えることで、撮像装置３０３の位置姿勢情報を求める。上述の通り、撮像装置３０３の位置姿勢情報を取得するための処理には様々な種類があるため、バイアスを加える必要のないものもある。
【００６７】
つぎに、ステップＳ４０４では、図３に示したフローチャートに従ってディスク装置１０５に登録したものとして説明したセット群が、実際にディスク装置１０５内に登録されているか否かをチェックする。
【００６８】
即ち、図３に示したフローチャートに従った処理を、図４に示したフローチャートに従った処理を行う前に行うことで、上記セット群をディスク装置１０５内に登録しておくことが好ましい。しかし、本実施形態では、係るセット群がディスク装置１０５内に登録されていない場合でも対処するようにしている。
【００６９】
ステップＳ４０４におけるチェックの結果、登録されている場合には、処理をステップＳ４０９に進め、登録されていない場合には処理をステップＳ４０５に進める。
【００７０】
ステップＳ４０５では、デフォルトの色情報としてディスク装置１０５内に登録されている色情報を選択する。
【００７１】
一方、ステップＳ４０９では、上記セット群のうち、ステップＳ４０３で取得した撮像装置３０３の位置姿勢情報に最も近い位置姿勢情報を含むセットを特定（第３の取得）する。ここで、係る特定処理について説明する。厳密には、ステップＳ４０３で取得した撮像装置３０３の位置姿勢情報と全く同じ位置姿勢情報を含むセットを特定できることが好ましいが、実際にはほぼ不可能である。従って、例えば、位置情報だけに着目し、上記セット群のそれぞれのセット中の位置姿勢情報のうちの位置情報のうち、ステップＳ４０３で取得した撮像装置３０３の位置姿勢情報のうちの位置情報との差が最も小さい位置情報を含むセットを特定しても良い。または、姿勢情報だけに着目し、上記セット群のそれぞれのセット中の位置姿勢情報のうちの姿勢情報のうち、ステップＳ４０３で取得した撮像装置３０３の位置姿勢情報のうちの姿勢情報との差が最も小さい姿勢情報を含むセットを特定しても良い。もちろん、位置情報、姿勢情報の両方に着目しても良い。
【００７２】
そして、特定したセット中の色情報を選択する。
【００７３】
ここで、ステップＳ４０９における処理として別の形態を説明する。上記セット群を作成する場合に、ＨＭＤ３００を頭部に装着するユーザの移動可能な空間を、単位体積毎に分割し、分割空間毎に色情報を収集するようにしておけば、ステップＳ４０９における処理は次のようにして行うことができる。即ち、ステップＳ４０３で取得した位置情報がどの分割空間に属しているのかを特定できれば、特定した分割空間で収集した色情報を選択するだけでよい。
【００７４】
また、上記セット群を作成する場合に、ＨＭＤ３００を頭部に装着するユーザが撮像装置３０３の姿勢を３０度毎に変えて手を撮像し、色情報を収集するようにしておけば、ステップＳ４０９における処理は次のようにして行うことができる。例えば、ステップＳ４０３で取得した姿勢情報が１０度であった場合には、姿勢０度で収集した色情報を選択し、ステップＳ４０３で取得した姿勢情報が４０度であった場合には、姿勢３０度で収集した色情報を選択すれば良い。
【００７５】
そして次に、ステップＳ４０６では、画像生成装置１０３は、ステップＳ４０５，若しくはステップＳ４０９で選択した色情報を用いて、ステップＳ４０２で取得した現実空間画像中（撮像画像中）における手の領域を検出する。係る検出処理は、例えば、特開２００３−２９６７５９号公報に開示されているものであり、周知の技術である。
【００７６】
そして次にステップＳ４０７では、画像生成装置１０３は先ず、ステップＳ４０３で取得した撮像装置３０３の位置姿勢情報が示す位置姿勢を有する視点を仮想空間中に設定し、係る視点から見える仮想空間画像を生成する。所定の位置姿勢を有する視点から見た仮想空間画像を生成する処理については周知であるので、これについての説明は省略する。
【００７７】
そして、この生成した仮想空間画像を、ステップＳ４０２で取得した現実空間画像上（撮像画像上）に重畳させるのであるが、この重畳の際には、ステップＳ４０６で検出した現実空間画像内の領域上には仮想空間画像を重畳させないようにする。仮想空間画像を現実空間画像上に重畳させる処理は、換言すれば、ステップＳ４０２でフレームバッファに転送された現実空間画像上に仮想空間画像を描画することである。これにより、フレームバッファ上には、合成画像が生成されることになる。
【００７８】
そして、更に、ステップＳ４０７では、係る合成画像を、ＨＭＤ３００が有する表示部３０１に送出する。
【００７９】
以上説明した処理により、撮像装置３０３の位置姿勢に応じて見える手の色を考慮して、現実空間画像中における手の領域を検出することができるので、より正確に手の領域を検出することができる。従って、現実空間画像上に仮想空間画像を重畳させる際に、手の領域については仮想空間画像を重畳させない処理を、より正確に行うことができる。
【００８０】
次に、ステップＳ４０８では、操作入力部４００を用いて本処理の終了指示が入力されたか、何らかの終了条件が満たされたかをチェックする。係るチェックの結果、操作入力部４００を用いて本処理の終了指示が入力された、若しくは何らかの終了条件が満たされた場合には本処理を終了する。一方、操作入力部４００を用いて本処理の終了指示は入力されていないし、何らかの終了条件も満たされていない場合には、処理をステップＳ４０２に戻し、次のフレームについて処理を行う。
【００８１】
以上の説明により、本実施形態によれば、手を観察する撮像装置の位置姿勢が変わることで手に対する照明条件が変化する場合であっても、正確に手の領域を検出することができる。また、従来のように、手に対する照明条件をシミュレートするような、コンピュータに対する負荷の高い処理を行うことなく、正確に手の領域を検出することができる。
【００８２】
［第２の実施形態］
第１の実施形態では、上記セット群をディスク装置１０５内に登録する場合には、ＨＭＤ３００を頭部に装着したユーザが空間内を移動して行っていた。しかし、係る作業は一人のユーザが行うことに限定するものではなく、複数のユーザが、別のユーザが撮影した画像を用いたり、所謂客観カメラが撮影した画像を用いても良い。
【００８３】
また、第１の実施形態では、図３に示したフローチャートに従った処理の後に、図４に示したフローチャートに従った処理を行っていたが、図４に示したフローチャートに従った処理と並行して図３に示したフローチャートに従った処理を行うようにしても良い。
【００８４】
もちろん、本実施形態で説明した、第１の実施形態の変形例を実施する場合には、第１の実施形態で説明した内容を適宜変更すればよい。
【００８５】
更に、第１の実施形態では、ディスク装置１０５内に登録されているセット群のうち１つを選択する場合には、撮像位置姿勢情報を用いていた。しかし、同じ撮像位置姿勢を示す撮像位置姿勢情報が複数ディスク装置１０５内に登録されている場合には、運用時の現実空間画像の色分布に基づいて、１つのセットを選択するようにしても良い。
【００８６】
なお、第１，２の実施形態では、被写体の一例として手を用いているが、他のものを被写体として用いても、第１，２の実施形態における説明は本質的には変わらない。
【００８７】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００８８】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９０】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９１】
【図１】ユーザに複合現実感を提供するための、本発明の第１の実施形態に係るシステムのハードウェア構成を示すブロック図である。
【図２】様々な位置姿勢から手を撮像する様子を示す図である。
【図３】様々な位置姿勢から撮像装置３０３によって手を撮像することで複数枚の画像を得た場合に、それぞれの画像から手の色情報と、撮像位置姿勢情報とをセットにしてディスク装置１０５に登録する処理のフローチャートである。
【図４】現実空間画像中の手の領域については仮想空間画像を重畳させないように、現実空間画像上に仮想空間画像を重畳させた合成画像を、ＨＭＤ３００が有する表示部３０１に送出するための処理のフローチャートである。
【図１】
2009015648.tif 000003
【図２】
2009015648.tif 000004
【図３】
2009015648.tif 000005
【図４】
2009015648.tif 000006