(57)【要約】【課題】  現実空間の画像と仮想空間の画像とをずれなく合成するための技術を提供すること。【解決手段】  位置姿勢計算部８０６は撮像画像の撮像視点の位置姿勢情報を求め、識別コードとセットにしてコンピュータ１３０に送信する。識別コード生成部８０５は撮像画像と撮像画像の撮像視点の位置姿勢情報に共通の識別コードを発行し、撮像画像と識別コードとをセットにして実写画像格納部８０４に格納する。実写画像選択部８０３は、コンピュータ１３０から送信された仮想空間画像中の識別コードとセットになって実写画像格納部８０４に格納されている撮像画像を取得する。合成部８０２は、実写画像選択部８０３が選択した撮像画像とコンピュータ１３０から受信した仮想空間画像とを合成した合成画像をＨＭＤ１１０に出力する。【選択図】  図８
2008146109.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得手段と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得手段と、
前記撮像画像取得手段が取得した撮像画像と、前記位置姿勢情報取得手段が取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ手段と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する格納手段と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得する仮想空間画像取得手段と、
前記仮想空間画像取得手段が取得した仮想空間画像に対応付けられた識別コードに基づき、前記格納手段に格納されている撮像画像から、該仮想空間画像に対応する撮影画像を選択する選択手段と、
前記仮想空間画像取得手段が取得した仮想空間画像と、前記選択手段が選択した撮像画像とを合成する合成手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記位置姿勢情報取得手段は、前記撮像画像におけるマーカの画像座標と、当該マーカの現実空間中における配置情報とを用いて、前記位置姿勢情報を求めることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記位置姿勢情報取得手段は、前記撮像装置の位置姿勢を計測するセンサから位置姿勢情報を取得することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記識別コードは、複数ビットで構成されたカウンタ情報であることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記識別コードは、タイマにより計時されている時刻情報であることを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記仮想空間画像取得手段が取得した仮想空間画像には、該仮想空間画像に対応付けられた識別コードに応じた情報が埋めこめられており、
前記選択手段は、前記仮想空間画像取得手段が取得した仮想空間画像から前記識別コードを検出することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得手段と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得手段と、
前記撮像画像取得手段が取得した撮像画像と、前記位置姿勢情報取得手段が取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ手段と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する撮像画像格納手段と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得し、格納する仮想空間画像格納手段と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得するために生じた遅れ時間を計測する計測手段と、
前記計測された遅れ時間に基づき、前記撮像画像格納手段から撮像画像を選択する撮像画像選択手段と、
前記選択された撮像画像に対応づけられた識別コードに基づき、前記仮想空間画像格納手段から仮想空間画像を選択する仮想空間画像選択手段と、
前記選択された撮像画像と前記選択された仮想空間画像とを合成する合成手段と
を有することを特徴とする画像処理装置。
【請求項８】
更に、
遅れ時間の平均値を算出する算出手段を有し、
前記撮像画像選択手段は、前記算出された平均値に基づき前記撮像画像格納手段から撮像画像を選択することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
請求項１乃至８のいずれか1項に記載の画像処理装置をコンピュータを用いて実現するためのプログラム。
【請求項１０】
撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得工程と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得工程と、
前記撮像画像取得工程で取得した撮像画像と、前記位置姿勢情報取得工程で取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ工程と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する格納工程と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得する仮想空間画像取得工程と、
前記仮想空間画像取得工程で取得した仮想空間画像に対応付けられた識別コードに基づき、前記格納工程で格納されている撮像画像から、該仮想空間画像に対応する撮影画像を選択する選択工程と、
前記仮想空間画像取得工程で取得した仮想空間画像と、前記選択工程で選択した撮像画像とを合成する合成工程と
を有することを特徴とする画像処理方法。
【請求項１１】
撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得工程と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得工程と、
前記撮像画像取得工程で取得した撮像画像と、前記位置姿勢情報取得工程で取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ工程と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する撮像画像格納工程と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得し、格納する仮想空間画像格納工程と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得するために生じた遅れ時間を計測する計測工程と、
前記計測された遅れ時間に基づき、前記撮像画像格納工程で格納した撮像画像群から１つを選択する撮像画像選択工程と、
前記選択された撮像画像に対応づけられた識別コードに基づき、前記仮想空間画像格納工程で格納した仮想空間画像群から１つを選択する仮想空間画像選択工程と、
前記選択された撮像画像と前記選択された仮想空間画像とを合成する合成工程と
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間の撮像画像と、仮想空間の画像とを合成するための技術に関するものである。
【背景技術】
【０００２】
複合現実感技術とは、現実空間の画像と仮想空間の画像（ＣＧ）とを合成したものをユーザに提示することにより、現実空間中にあたかも仮想物体が存在しているかのような感覚をユーザに与えるためのものである。
【０００３】
複合現実感技術における典型的なアプリケーションとしては次のようなものがある。ユーザはビデオシースルー型のＨＭＤ（ヘッドマウントディスプレイ）を自身の頭部に装着する。ＨＭＤにはカメラと、ユーザの視点の位置姿勢を計測するためのセンサとが取り付けられている。そして、ＨＭＤが有するディスプレイには、カメラが撮像した現実空間の画像に、センサの計測値に基づいて作成されたＣＧ等が合成された合成画像が表示される。ＨＭＤを装着しているユーザはこの表示画像を見ることで、現実空間中にあたかも仮想物体が存在しているかのような感覚を覚える。
【０００４】
このようなアプリケーションの一例として、現実物体である机の上に配置されたマーカの上に仮想物体であるティーポットを配置するシステムについて、図１を用いて説明する。図１は、複合現実感技術に適用されるシステム、及びその環境について示す図である。
【０００５】
１３０はコンピュータであり、本体、モニタ、キーボードから成る。
【０００６】
１２０は現実物体である机である。１２１は、机の上に配置されているマーカである。１００はユーザであり、ユーザ１００の頭部にはＨＭＤ１１０が装着されている。
【０００７】
図２は、ＨＭＤ１１０の構成を示す図である。ＨＭＤ１１０は、右目カメラ２１０、左目カメラ２１１、右目ＬＣＤ（液晶画面）２３０、左目ＬＣＤ２３１を有する。右目ＬＣＤ２３０には右目カメラ２１０により撮像された現実空間の画像が表示され、左目ＬＣＤ２３１には左目カメラ２１１により撮像された現実空間の画像が表示される。
【０００８】
図１に戻って、ＨＭＤ１１０には不図示のセンサが取り付けられており、ユーザ１００の視点の位置姿勢を計測し、コンピュータ１３０に送出する。コンピュータ側では、視点から見える仮想物体（ティーポット）の仮想画像を生成し、右目ＬＣＤ２３０、左目ＬＣＤ２３１に送出する。これにより、右目ＬＣＤ２３０には、右目カメラ２１０により撮像された現実空間の画像上に仮想画像が重畳表示される。そして、左目ＬＣＤ２３１には、左目カメラ２１１により撮像された現実空間の画像上に仮想画像が重畳表示される。
【０００９】
これによりユーザ１００は、眼前の風景に仮想物体が存在するかのように見える。
【００１０】
図３は、現実空間の画像と仮想物体の画像とを重畳する様子を説明する図である。３００は右目カメラ２１０（左目カメラ２１１）により撮像された現実空間の画像であり、係る画像中には机１２０、マーカ１２１が含まれている。３１０はコンピュータ１３０側で作成した仮想物体の画像である。ここでは、仮想物体であるティーポット３９９の仮想画像である。３２０は、画像３００と画像３１０とを合成することによって得られる画像である。
【００１１】
ここで、それぞれの画像３００，３１０を合成する際、マーカ１２１の上にティーポット３９９の仮想物体を位置させる必要がある。そのためには、左目カメラ２１１の位置姿勢（現実には左目カメラ２１１と机１２０との相対位置姿勢）、右目カメラ２１０の位置姿勢（現実には右目カメラ２１０と机１２０との相対位置姿勢）とを何らかの方法で取得する必要がある。
【００１２】
例えば、左目カメラ２１１の位置姿勢を取得する方法の１つとして、机１２０の上に設置したマーカ１２１を用いるものがある。これは左目カメラ２１１が撮像した画像中のマーカ１２１の座標位置から、三角測量の原理で左目カメラ２１１の位置姿勢を求めるものである。このような複合現実感技術の実現は、非特許文献１に開示されている。
【００１３】
また、このような複合現実感技術をより簡便に実現するために、図４に示すような構成を有するシステムが用いられている。図４は、複合現実感技術をより簡便に実現するためのシステムの機能構成を示すブロック図である。
【００１４】
同図のシステムでは、コンピュータ１３０にアダプタ４００を接続し、このアダプタ４００にＨＭＤ１１０を接続する。アダプタ４００は、画像合成部４１０と撮像位置姿勢計算部４２０とを有する。
【００１５】
画像合成部４１０はコンピュータ１３０から送出された仮想空間の画像（ＣＧ画像）とＨＭＤ１１０から送出された現実空間の画像（実写画像）とを合成する。そして、合成結果をＣＧ・実写合成画像としてＨＭＤ１１０の右目ＬＣＤ２３０、左目ＬＣＤ２３１に送出する。
【００１６】
撮像位置姿勢計算部４２０は、ＨＭＤ１１０に取り付けられたセンサからの計測値に基づいて、ユーザの視点位置姿勢（撮像位置姿勢）を求め、求めた視点位置姿勢をコンピュータ１３０に送出する。
【００１７】
このように、合成画像の生成、及び視点位置姿勢の計算といった、複合現実感技術の為の処理の一部をアダプタ４００に分担させることで、コンピュータ１３０の構成の自由度を上げることができる。さらに、視点位置姿勢計算の負荷分散を計ることができる。これにより、システム全体としてのパフォーマンスを向上させることができる。
【００１８】
しかしながら、画像合成部４１０をコンピュータ１３０から独立させた場合、ＣＧ画像と実写画像との位置ずれが問題となることがある。
【００１９】
例えば、図５に示すように、ユーザ１００が自身の頭部を矢印に示す方向に振ったとする。一般に、１フレームのＣＧ画像の描画を完了させるまでに要する時間は、右目カメラ２１０や左目カメラ２１１が１フレームの画像を取得するために要する時間よりも長い。例えば、図６に示す如く、ｔ＝０に対応する実写画像に合成するためのＣＧ画像をｔ＝０で作成し初めても、描画が完了する頃にはｔ＝２となっている。よって、ｔ＝２に対応する実写画像とこのＣＧ画像とを合成することになる。このため、６０１に示す如く、机の像６５０とティーポットの像６６０とはずれた位置に合成されていまい、机の上にティーポットの仮想物体を配置することができない。
【００２０】
この問題は、実写画像を一定時間分遅らせて出力するバッファを使うことで緩和することができる。特許文献１には、実写画像を一定時間分遅らせて出力するバッファを使う際の問題について開示されている。
【００２１】
実写画像を一定時間分遅らせて出力するバッファを上記アダプタ４００に組み込んだシステムを図７に示す。図７は、図４に示したアダプタ４００にバッファ（実写画像バッファ）７５０を組み込んだシステムの機能構成を示すブロック図である。
【００２２】
バッファ７５０は、右目カメラ２１０、左目カメラ２１１から受けたフレームをバッファリングし、所望のフレーム数分前のものを順次画像合成部４１０に送出する。これにより、実写画像をＣＧ画像の描画に要する時間分遅らせることができ、図６に示したようなＣＧ画像と実写画像とのずれを緩和することができる。
【非特許文献１】Kato, H., Billinghurst, M. (1999) Marker Tracking and HMD Calibration for a video-based Augmented Reality Conferencing System. In Proceedings of the 2nd International Workshop on Augmented Reality (IWAR 99). October, San Francisco, USA
【特許文献１】特開平０７−２１２６５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら図７に示したシステムを用いただけでは、図６で示したようなＣＧ画像と実写画像とのずれを緩和することはできるものの、なくすことはできなかった。その原因は、コンピュータ１３０側で１フレーム分のＣＧ画像を生成、描画するために要する時間は各フレームで一定ではないからである。
【００２４】
例えば図６では、ｔ＝０に対応する実写画像に合成するためのＣＧ画像をｔ＝０で作成し初めると、描画が完了する頃にはｔ＝２となっている。この状況に合わせて図７に示したシステムを用いると、バッファ７５０は、２フレーム前のものを画像合成部４１０に出力すれば、上記ずれは解消される。
【００２５】
しかし、コンピュータ１３０側で１フレーム分のＣＧ画像を生成、描画するために要する時間は、例えば、ティーポットの仮想物体が左目ＬＣＤ２３１、右目ＬＣＤ２３０のそれぞれに写っているか否かで大きく異なる。
【００２６】
図７の構成では、実写画像を遅らせて出力する際の遅れ分は、各フレームで固定である。従って、コンピュータ１３０側で１フレーム分のＣＧ画像を生成、描画するために要する時間が各フレームで同じであれば、上記ずれの問題は生じない。しかし、コンピュータ１３０側で１フレーム分のＣＧ画像を生成、描画するために要する時間が各フレームで異なる場合には、上記ずれの問題が生じてしまう。
【００２７】
CG画像と実写画像とのずれをなくすためには、時刻ｔの実写画像と、時刻ｔの画像から計算した撮像位置姿勢情報を用いて作成したCG画像とを合成しなければならない。しかし一定時間(一定枚数)の実写画像をバッファする構成では、これを達成することはできない。
【００２８】
また、従来の方法では、コンピュータ１３０側で１フレーム分のＣＧ画像を生成、描画するために要する時間が予めわかっていなければ、どの程度の量の実写画像をバッファする必要があるかを決定することができない。しかし、コンピュータ１３０側で１フレーム分のＣＧ画像を生成、描画するために要する時間は、カメラの位置姿勢や、仮想物体等のコンテンツの内容に依存するため、１フレーム毎に変化し、予め決定する事は難しい。
【００２９】
このような問題を解決するためには、対応するCG画像が取得できるまで、実写画像をバッファするという方法もあるが、その場合には合成出力する画像の撮影時間からの遅れが、フレーム毎に変化してしまう。そして、本来一定間隔で更新されるべき実写画像の更新に、時間的にゆらぎが生じてしまうという課題がある。
【００３０】
本発明は以上の問題に鑑みてなされたものであり、現実空間の画像と仮想空間の画像とをずれなく合成するための技術を提供することを目的とする。
【課題を解決するための手段】
【００３１】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００３２】
即ち、撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得手段と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得手段と、
前記撮像画像取得手段が取得した撮像画像と、前記位置姿勢情報取得手段が取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ手段と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する格納手段と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得する仮想空間画像取得手段と、
前記仮想空間画像取得手段が取得した仮想空間画像に対応付けられた識別コードに基づき、前記格納手段に格納されている撮像画像から、該仮想空間画像に対応する撮影画像を選択する選択手段と、
前記仮想空間画像取得手段が取得した仮想空間画像と、前記選択手段が選択した撮像画像とを合成する合成手段と
を有することを特徴とする。
【００３３】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００３４】
即ち、撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得手段と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得手段と、
前記撮像画像取得手段が取得した撮像画像と、前記位置姿勢情報取得手段が取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ手段と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する撮像画像格納手段と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得し、格納する仮想空間画像格納手段と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得するために生じた遅れ時間を計測する計測手段と、
前記計測された遅れ時間に基づき、前記撮像画像格納手段から撮像画像を選択する撮像画像選択手段と、
前記選択された撮像画像に対応づけられた識別コードに基づき、前記仮想空間画像格納手段から仮想空間画像を選択する仮想空間画像選択手段と、
前記選択された撮像画像と前記選択された仮想空間画像とを合成する合成手段と
を有することを特徴とする。
【００３５】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００３６】
即ち、撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得工程と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得工程と、
前記撮像画像取得工程で取得した撮像画像と、前記位置姿勢情報取得工程で取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ工程と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する格納工程と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得する仮想空間画像取得工程と、
前記仮想空間画像取得工程で取得した仮想空間画像に対応付けられた識別コードに基づき、前記格納工程で格納されている撮像画像から、該仮想空間画像に対応する撮影画像を選択する選択工程と、
前記仮想空間画像取得工程で取得した仮想空間画像と、前記選択工程で選択した撮像画像とを合成する合成工程と
を有することを特徴とする。
【００３７】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００３８】
即ち、撮像装置によって撮影された各フレームの撮像画像を取得する撮像画像取得工程と、
前記撮像装置の位置姿勢情報を取得する位置姿勢情報取得工程と、
前記撮像画像取得工程で取得した撮像画像と、前記位置姿勢情報取得工程で取得した該撮像画像に対応する位置姿勢情報とに識別コードを対応付ける識別コード対応づけ工程と、
前記撮像画像と該撮像画像に対応付けられた識別コードとを格納する撮像画像格納工程と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得し、格納する仮想空間画像格納工程と、
前記識別コードが対応づけられた位置姿勢情報に基づき生成された仮想空間画像を取得するために生じた遅れ時間を計測する計測工程と、
前記計測された遅れ時間に基づき、前記撮像画像格納工程で格納した撮像画像群から１つを選択する撮像画像選択工程と、
前記選択された撮像画像に対応づけられた識別コードに基づき、前記仮想空間画像格納工程で格納した仮想空間画像群から１つを選択する仮想空間画像選択工程と、
前記選択された撮像画像と前記選択された仮想空間画像とを合成する合成工程と
を有することを特徴とする。
【発明の効果】
【００３９】
本発明の構成によれば、現実空間の画像と仮想空間の画像とをずれなく合成することができる。
【発明を実施するための最良の形態】
【００４０】
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【００４１】
［第１の実施形態］
図８は、現実空間の画像（実写画像）と、仮想空間の画像（ＣＧ画像）とを合成した合成画像を、ＨＭＤ１１０に提供するためのシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、コンピュータ１３０、アダプタ８００、ＨＭＤ１１０により構成されている。
【００４２】
図９は、図８に例示したシステムの使用例を示す図である。同図に示す如く、本実施形態に係るシステムでは、机１２０の上にはマーカ１２１が配されている。また、ユーザ１００の頭部にはＨＭＤ１１０が装着されている。ＨＭＤ１１０には上述のアダプタ８００が接続されており、更にこのアダプタ８００にはコンピュータ１３０が接続されている。従って、コンピュータ１３０はアダプタ８００を介してＨＭＤ１１０に接続されていることになる。
【００４３】
以下では、ＨＭＤ１１０には、マーカ１２１の上にティーポットの仮想物体を配置した複合現実空間の画像（実写画像とＣＧ画像とを合成した画像）を提示するものとして説明する。しかし、以下の説明は、仮想物体が如何なるものであっても実質的には同じである。
【００４４】
先ず、コンピュータ１３０について説明する。コンピュータ１３０は一般のＰＣ（パーソナルコンピュータ）に代表されるものである。本実施形態では、アダプタ８００から受けた位置姿勢情報が示す位置姿勢を有する視点から見える仮想空間の画像をＣＧ画像として生成し、アダプタ８００に出力する。更にコンピュータ１３０は、アダプタ８００からこの位置姿勢情報と共に受けた後述の識別コードを、この位置姿勢情報に基づいて生成したＣＧ画像と共にアダプタ８００に返信する。
【００４５】
ＨＭＤ１１０について説明する。ＨＭＤ１１０は、図２に例示するような構成を有するビデオシースルー型のものである。ＨＭＤ１１０が有する右目ＬＣＤ２３０、左目ＬＣＤ２３１にはそれぞれ、アダプタ８００から出力される右目用、左目用の合成画像が表示される。また、右目カメラ２１０、左目カメラ２１１により撮像された現実空間の動画像はフレーム毎に順次実写画像（撮像画像）としてアダプタ８００に入力される。なお、ＨＭＤ１１０による画像表示、画像撮像は右目、左目のそれぞれについて同じであるので、説明を共通にする。
【００４６】
アダプタ８００について説明する。アダプタ８００は、識別コード検出部８０１、合成部８０２、実写画像選択部８０３、実写画像格納部８０４、識別コード生成部８０５、位置姿勢計算部８０６により構成されている。以下、これら各部の動作について説明する。
【００４７】
ＨＭＤ１１０が有するカメラ（右目カメラ２１０、左目カメラ２１１）からは、撮像された実写画像が逐次識別コード生成部８０５，位置姿勢計算部８０６に入力される。
【００４８】
識別コード生成部８０５は、カメラから実写画像を受ける毎に識別コードを発行する。発行する識別コードは、カメラから実写画像を受ける毎に更新されるカウンタ値でも良いし、カメラから実写画像を受けた時のタイマによる現在時刻でも良い。本実施形態では、カメラから実写画像を受ける毎に更新される８ビットのカウンタ値とする。
【００４９】
そして識別コード生成部８０５は、発行した識別コードと、この識別コードの発行対象であるフレームの実写画像とをセットにして実写画像格納部８０４に格納する。即ち、第ｆフレーム目の実写画像（実写画像ｆ）がカメラから識別コード生成部８０５に入力されると、識別コード生成部８０５は実写画像ｆに対して識別コードを発行し、発行した識別コードと実写画像ｆとをセットにして実写画像格納部８０４に格納する。識別コード生成部８０５は係る処理を、カメラから実写画像を受け取る毎に行う。
【００５０】
なお、実写画像格納部８０４におけるメモリの残量がない、若しくはある一定量以下の残量しかない場合には、情報の格納順において古い順に格納情報を消去しても良い。
【００５１】
一方、位置姿勢計算部８０６は、カメラから受けた実写画像に基づいて、マーカ１２１とカメラとの相対的な位置姿勢（この実写画像の撮像視点の位置姿勢情報）を求める。図１１は、マーカ１２１として適用可能な一例を示す図である。マーカ１２１のサイズ（縦横の長さ）や、現実空間中における配置位置は予め測定されており、その測定値は、位置姿勢計算部８０６が保持している。そして位置姿勢計算部８０６は、実写画像中のマーカ１２１の四隅の画像座標と、マーカ１２１の現実空間中における配置位置とを用いて、三角測量と同じ手法に基づいて、マーカ１２１とカメラとの相対的な位置姿勢を求める。
【００５２】
このように、現実空間中に配したマーカ１２１と、このマーカ１２１を撮像するカメラと、の相対的な位置姿勢を求めるための技術については周知の技術（例えば、非特許文献１に開示されている）であるので係る技術についての説明は省略する。
【００５３】
そして位置姿勢計算部８０６は、以上の処理により求めた位置姿勢情報を、この位置姿勢情報を求めるために用いた実写画像に対して識別コード生成部８０５が発行した識別コードとセットにしてコンピュータ１３０に出力する。即ち、実写画像ｆがカメラから位置姿勢計算部８０６に入力されると、位置姿勢計算部８０６は実写画像ｆから上記位置姿勢情報を求める。そしてこの求めた位置姿勢情報を、識別コード生成部８０５が実写画像ｆに対して発行した識別コードとセットにして、コンピュータ１３０に出力する。位置姿勢計算部８０６は係る処理を、カメラから実写画像を受け取る毎に行う。
【００５４】
一方、コンピュータ１３０は、位置姿勢計算部８０６から受けた位置姿勢情報を用いて、この位置姿勢情報が示す位置姿勢を有する視点から見た仮想空間の画像を生成する。本実施形態では背景色を青とする仮想空間中にティーポットの仮想物体が配置された仮想空間を、位置姿勢計算部８０６から受けた位置姿勢情報が示す位置姿勢を有する視点から見た画像をＣＧ画像として生成する。背景色を青としたのは、このＣＧ画像を実写画像と合成する際に、青の部分を抜くクロマキー合成を行うためである。
【００５５】
また、本実施形態では説明を簡単にするために、机１２０の上面の中心位置とマーカ１２１の中心位置とは一致しており、この一致している点が世界座標系における原点とする。世界座標系とは、現実空間中の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。また、位置姿勢計算部８０６が求める位置姿勢情報が示す位置姿勢も、この世界座標系におけるものであるとする。しかし、位置姿勢情報が世界座標系とは異なる座標系におけるものである場合には、互いの座標系間の位置姿勢関係を予め測定しておくことで、世界座標系におけるものに変換することができる。係る技術については周知であるので、これ以上の説明は省略する。
【００５６】
また、コンピュータ１３０は、ＯｐｅｎＧＬ等の３次元ＣＧの描画ＡＰＩを用いてＣＧ画像を生成するのであるが、その際には、カメラのカメラパラメータ（焦点距離や絞りなど）と位置姿勢情報に基づいてモデルビュー行列を作成する。そして、作成したモデルビュー行列を用いて世界座標系の原点にティーポットの仮想物体を配置する。これにより、机１２０の上面の中心位置に、ティーポットの仮想物体を配置することができる（ただしティーポットの仮想物体のローカル座標系における原点はティーポットの仮想物体の底部であるとする）。
【００５７】
なお、ＣＧ画像の生成技術については周知のものであるので、これ以上の説明は省略する。
【００５８】
そしてコンピュータ１３０側では、ＣＧ画像を生成するために用いた位置姿勢情報と共に位置姿勢計算部８０６から送信された識別コードと、このＣＧ画像とをセットにしてアダプタ８００に返信する。本実施形態では、識別コードを埋め込んだＣＧ画像をアダプタ８００に返信する。図１２は、識別コードが埋め込まれたＣＧ画像の一例を示す図である。上述の通り、本実施形態では識別コードは８ビットのカウンタ値であるので、各ビット値に対応する色（例えばビット値が１であれば黒、０であれば白）の矩形を直線的に並べたものをＣＧ画像に埋め込んでいる。
【００５９】
なお、コンピュータ１３０から識別コードとＣＧ画像とをセットにしてアダプタ８００に返信することができるのであれば、如何なる方法を用いて識別コードとＣＧ画像とをアダプタ８００に返信しても良い。例えば、DVI接続等のディジタル接続でもってアダプタ８００とコンピュータ１３０とを接続した場合、両者の間で画素値が食い違うことはないため、識別コードをＣＧ画像の左上隅の画素の赤の値として送ってもよい。また、電子透かし技術を用いて識別コードを埋め込んだＣＧ画像をアダプタ８００に返信するようにしても良い。
【００６０】
また、識別コードをＣＧ画像中に埋め込む代わりに、ＴＶ信号のClosed Caption信号のように、ＣＧ画像を伝送する画像伝送信号の水平、垂直同期期間に識別コードを埋め込んでも良い。Closed Caption信号のエンコード、デコードの技術は周知であるので、これについての説明は省略する。
【００６１】
コンピュータ１３０から出力されたＣＧ画像は、識別コード検出部８０１と合成部８０２とに入力される。
【００６２】
識別コード検出部８０１は、コンピュータ１３０から受けたＣＧ画像に埋め込まれている識別コードを検出し、検出した識別コードを実写画像選択部８０３に出力する。例えば、図１２に示したようなＣＧ画像がコンピュータ１３０から入力された場合、ＣＧ画像の左上隅の８個の矩形領域の各色を検出し、検出したそれぞれの色に対応するビット値を復元することで、識別コードを検出することができる。
【００６３】
なお、識別コードがＣＧ画像とは別途コンピュータ１３０から送信された場合には、この検出処理は行わず、送信された識別コードそのものを実写画像選択部８０３に出力する。また、ＣＧ画像に埋め込まれた識別コードを検出する処理は、埋め込み方法に応じたものとなる。
【００６４】
実写画像選択部８０３は、識別コード検出部８０１から受けた識別コードとセットになって実写画像格納部８０４に格納されている実写画像を読み出し、合成部８０２に出力する。合成部８０２は、コンピュータ１３０から受けたＣＧ画像と、実写画像選択部８０３から受けた実写画像とを合成した合成画像を生成する。係る画像合成には上述の通り、クロマキー合成を用いる。即ち、ＣＧ画像において青の画素については、実写画像において同じ位置の画素で置き換える。これによりＣＧ画像における青の領域に実写画像において位置的に対応する領域をはめ込むことができ、ＣＧ画像と実写画像とを合成することができる。なお、ＣＧ画像と実写画像との合成技術については様々な技術が開示されており、何れの技術を用いて合成しても良い。
【００６５】
そして、合成部８０２は生成した合成画像を、ＨＭＤ１１０が有するＬＣＤに対して出力する。これによりＬＣＤには、コンピュータ１３０が生成したＣＧ画像と、このＣＧ画像と同じ識別コードに対応する実写画像と、を合成した合成画像が表示されることになり、仮想物体が所望の位置からずれて実写画像上に表示されることはない。
【００６６】
図１０は、机１２０の上にティーポットの仮想物体１０００が配置されているかのように描画されてる合成画像の表示例を示す図である。
【００６７】
図１５は、アダプタ８００が行う処理のフローチャートである。
【００６８】
先ずステップＳ１５０１では、ＨＭＤ１１０が有するカメラ（右目カメラ２１０、左目カメラ２１１）から出力された実写画像を、識別コード生成部８０５，位置姿勢計算部８０６が取得する。
【００６９】
ステップＳ１５０２では、識別コード生成部８０５は、ステップＳ１５０１で取得した実写画像に対して識別コードを発行する。
【００７０】
ステップＳ１５０３では、識別コード生成部８０５は、ステップＳ１５０２で発行した識別コードと、ステップＳ１５０１で取得した実写画像とをセットにして実写画像格納部８０４に格納する。
【００７１】
ステップＳ１５０４では、位置姿勢計算部８０６は、ステップＳ１５０１で取得した実写画像に基づいて、この実写画像の撮像視点の位置姿勢情報を求める。
【００７２】
ステップＳ１５０５では、位置姿勢計算部８０６は、ステップＳ１５０４で求めた位置姿勢情報を、ステップＳ１５０２で発行された識別コードとセットにしてコンピュータ１３０に送信する。
【００７３】
ステップＳ１５０６では、識別コード検出部８０１、合成部８０２は、ステップＳ１５０５で送信した識別コードと、ステップＳ１５０５で送信した位置姿勢情報に基づいてコンピュータ１３０が生成したＣＧ画像とをセットにして受信する。
【００７４】
ステップＳ１５０７では先ず、識別コード検出部８０１は、コンピュータ１３０から受けたＣＧ画像に埋め込まれている識別コードを検出し、検出した識別コードを実写画像選択部８０３に出力する。そして、実写画像選択部８０３は、識別コード検出部８０１から受けた識別コードとセットになって実写画像格納部８０４に格納されている実写画像を読み出し、合成部８０２に出力する。
【００７５】
ステップＳ１５０８では、合成部８０２は、コンピュータ１３０から受けたＣＧ画像と、実写画像選択部８０３から受けた実写画像とを合成した合成画像を生成する。
【００７６】
ステップＳ１５０９では、合成部８０２は、この生成した合成画像を、ＨＭＤ１１０が有するＬＣＤに対して出力する。
【００７７】
なお、画像の入力に通常のビデオカメラ、出力に通常のモニタテレビを用いて構成した装置を、ＨＭＤ１１０の代わりに使用しても良い。このような応用の場合、モニタテレビに映った風景の中に仮想物体が存在するかのように見える。
【００７８】
また、そのビデオカメラが固定されていた場合にも、マーカが移動するような場合には本実施形態は有効である。このような応用例として、カードにマーカを配置し、カード上に仮想物体を描画するゲームなどが考えられる。
【００７９】
また、現実空間を撮像した動画像はコンピュータ１３０等の装置側に予め登録しておいたものを用いても良い。
【００８０】
以上の説明により、本実施形態によれば、ＣＧ画像と合成すべき実写画像として、このＣＧ画像を生成するために用いる位置姿勢情報と同じ識別コードを有する実写画像を用いるので、ＣＧ画像と実写画像とを合成しても、画像内における位置ずれが生じない。係る位置ずれの防止は、ＣＧ画像の生成時間が変動しても可能である。
【００８１】
［第２の実施形態］
第１の実施形態では、実写画像の撮像視点の位置姿勢の取得方法として、実写画像中に写っているマーカを用いた。本実施形態では自身の位置姿勢を計測するセンサをＨＭＤ１１０に取り付け、実写画像の撮像視点の位置姿勢は、このセンサによる計測値に基づいて求める。以下ではこのセンサとして磁気センサを用いる。しかし、光学式センサ等、他のタイプのセンサを用いても良い。
【００８２】
図１３は、本実施形態に係るシステムの機能構成を示すブロック図である。図１３に示したシステムが図８に示したシステムと異なる点としては、ＨＭＤ１１０のカメラ位置（撮像視点）近傍にはセンサ移動局１３０１が装着されており、センサ移動局１３０１にはセンサ本体１３０３が接続されている。更に、センサ本体１３０３にはセンサ固定局１３０２が接続されており、センサ本体１３０３は識別コード生成部８０５に接続されている。また、アダプタ８００の代わりに、アダプタ８００から位置姿勢計算部８０６を削除したアダプタ１３００が用いられている。
【００８３】
以下では、図１３に示したシステムの動作において、図８に示したシステムと異なる動作についてのみ説明する。
【００８４】
センサ固定局１３０２は、センサ本体１３０３による制御に従って、磁界を周囲に発生させる。センサ移動局１３０１は、この磁界における自身の位置姿勢に応じた磁界の変化を検知し、その検知結果を計測値としてセンサ本体１３０３に送出する。センサ本体１３０３は、この計測値に基づいて、センサ移動局１３０１のセンサ座標系における位置姿勢を求め、求めた位置姿勢を示す位置姿勢情報を識別コード生成部８０５に送出する。ここで、センサ座標系とは、センサ固定局１３０２の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系のことである。
【００８５】
なお、センサ本体１３０３、センサ固定局１３０２、センサ移動局１３０１を用いて、センサ移動局１３０１のセンサ座標系における位置姿勢を求める為の技術については周知であるので、係る技術についての説明は省略する。
【００８６】
識別コード生成部８０５は、センサ本体１３０３から位置姿勢情報を受けると、これを世界座標系における位置姿勢を示す位置姿勢情報に変換する処理を行う。これは、センサ座標系と世界座標系との位置姿勢関係を予め計測しておき、センサ座標系における位置姿勢情報をこの位置姿勢関係で変換すれば、世界座標系における位置姿勢情報が得られる。係る技術についても周知ものであるので、これについての説明は省略する。なお、世界座標系とセンサ座標系とが一致している場合には、係る変換処理は不要となる。
【００８７】
そして識別コード生成部８０５は次の処理を行う。センサ本体１３０３から位置姿勢情報を受けたタイミングに最も近いタイミングでＨＭＤ１１０から受けた実写画像に対して発行した識別コードとこの位置姿勢情報から生成した世界座標系における位置姿勢情報をセットにしてコンピュータ１３０に送信する。
【００８８】
そして以降は図８に示したシステムと同様の動作を行う。
【００８９】
図１４は、図１３に例示したシステムの使用例を示す図である。同図に示す如く、本実施形態に係るシステムでは、机１２０の上にはマーカ１２１は配されていない。また、ユーザ１００の頭部にはＨＭＤ１１０が装着されている。ＨＭＤ１１０にはセンサ移動局１３０１が装着されており、センサ移動局１３０１にはセンサ本体１３０３が接続されている。また、センサ本体１３０３にはセンサ固定局１３０２が接続されている。そしてセンサ本体１３０３は、アダプタ８００に接続されている。
【００９０】
［第３の実施形態］
図１６は、現実空間の画像（実写画像）と、仮想空間の画像（ＣＧ画像）とを合成した合成画像を、ＨＭＤ１１０に提供するためのシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、コンピュータ１３０、アダプタ８０００、ＨＭＤ１１０により構成されている。
【００９１】
以下では、ＨＭＤ１１０には、机１２０の上にティーポットの仮想物体を配置した複合現実空間の画像（実写画像とＣＧ画像とを合成した画像）を提示するものとして説明する。しかし、以下の説明は、仮想物体が如何なるものであっても実質的には同じである。
【００９２】
ＨＭＤ１１０は、表示装置１１３１と、カメラ１１１１とで構成されている。表示装置１１３１は、右目ＬＣＤ２３０と左目ＬＣＤ２３１とで構成されている。カメラ１１１１は、上記右目カメラ２１０と左目カメラ２１１とで構成されている。
【００９３】
コンピュータ１３０は第１，２の実施形態で用いたものと同じである。
【００９４】
次にアダプタ８０００について説明する。アダプタ８０００は、識別コード付加部８００１、撮像位置姿勢計算部８００２、実写画像蓄積部８００３、遅れ計測部８００６、ＣＧ画像蓄積部８００５、識別コード検出部８０１１、実写画像選択部８００８、平均的遅れ計算部８００７を有する。更にアダプタ８０００は、ＣＧ画像選択部８００９、合成部８０１０を有する。以下、これら各部の動作について説明する。
【００９５】
ＨＭＤ１１０が有するカメラ（右目カメラ２１０、左目カメラ２１１）からは、撮像された実写画像が逐次識別コード付加部８００１に入力される。
【００９６】
識別コード付加部８００１は、カメラから実写画像を受ける毎に識別コードを発行する。上記実施形態のように、発行する識別コードは、カメラから実写画像を受ける毎に更新されるカウンタ値でも良いし、カメラから実写画像を受けた時のタイマによる現在時刻でも良い。本実施形態では、カメラから実写画像を受ける毎に更新される８ビットのカウンタ値とする。
【００９７】
そして識別コード付加部８００１は識別コードを、この識別コードの発行対象である実写画像とセットにして（付加して）撮像位置姿勢計算部８００２および実写画像蓄積部８００３に出力する。実写画像蓄積部８００３は、識別コード付加部８００１から受けたセット（識別コードが添付された実写画像）を格納する。遅れ計測部８００６は常に計時処理を行っており、実写画像蓄積部８００３に１つのセットが格納されたタイミングを検知すると、この検知したタイミングを、第１の格納タイミングとして記録する。
【００９８】
一方、撮像位置姿勢計算部８００２は、識別コード付加部８００１から受けたセット中の実写画像の撮像視点の位置姿勢情報を求める。係る処理は、上記位置姿勢計算部８０６が行う上記処理と同じである。そして撮像位置姿勢計算部８００２は、識別コード付加部８００１から受けたセット中の実写画像について求めた撮像視点の位置姿勢情報と、このセット中の識別コードとをセットにしてコンピュータ１３０に出力する。
【００９９】
コンピュータ１３０は、撮像位置姿勢計算部８００２から受けたセット中の位置姿勢情報を用いて、この位置姿勢情報が示す位置姿勢を有する視点から見た仮想空間の画像を生成する。そしてコンピュータ１３０は、ＣＧ画像を生成するために用いた位置姿勢情報と共に撮像位置姿勢計算部８００２から送信された識別コードと、このＣＧ画像とをセットにしてアダプタ８０００に返信する。本実施形態でも第１の実施形態と同様に図１２に例示した如く、識別コードを埋め込んだＣＧ画像をアダプタ８０００に返信する。コンピュータ１３０から出力されたＣＧ画像は、識別コード検出部８０１１に入力される。
【０１００】
即ち、コンピュータ１３０の動作については、データの入出力先が異なる以外は、第１，２の実施形態と同じである。
【０１０１】
識別コード検出部８０１１は、上記識別コード検出部８０１と同様の処理を行う。即ち、コンピュータ１３０から受けたＣＧ画像に埋め込まれている識別コードを検出する。そして識別コード検出部８０１１は、コンピュータ１３０から受けたＣＧ画像、及びこのＣＧ画像から検出した識別コードをセットにしてＣＧ画像蓄積部８００５に格納する。
【０１０２】
ここで、遅れ計測部８００６は、ＣＧ画像蓄積部８００５にＣＧ画像と識別コードのセットが格納されると、この識別コードを参照し、同じ識別コードが実写画像蓄積部８００３に格納されているか否かをチェックする。そして格納されている場合には、この識別コードをＣＧ画像蓄積部８００５に格納したタイミングを第２の格納タイミングとして記録する。そして、第２の格納タイミングから第１の格納タイミングを差し引いた差分（時間差）を計算し、差分情報として平均的遅れ計算部８００７に送出する。遅れ計測部８００６はこのような処理を、ＣＧ画像蓄積部８００５にＣＧ画像と識別コードとのセットが格納される毎に行う。
【０１０３】
平均的遅れ計算部８００７は、遅れ計測部８００６から受けた差分情報と、従前に受けた差分情報との平均値を求める。そして求めた平均値を、遅延フレーム数として実写画像選択部８００８に出力する。係る平均値は厳密な平均ではなく、統計的に将来の遅れ（実写画像に対するＣＧ画像の描画の遅れ）を予測した計算を行うのであれば、如何なるものを平均値の代わりに用いても良い。
【０１０４】
なお、差分情報のバラつきが多い場合には、少し余裕を持たせて大きめの差分情報を出力する。これにより、後に説明するＣＧ画像選択部８００９において選択すべき最適なＣＧ画像が取得できずに１フレーム前のＣＧ画像を利用する、という処理を減らすことができる。
【０１０５】
また、平均的遅れ計算部８００７から出力される平均値は、フレーム毎に大きく変化させてはならない。即ち、フレーム間で大幅に平均値が変わるとスムーズな実写画像の更新ができなくなるからである。
【０１０６】
実写画像選択部８００８は、実写画像蓄積部８００３に格納されている最新のフレームの実写画像（最も最近実写画像蓄積部８００３に格納された実写画像）から、遅延フレーム数分だけ過去の実写画像を選択する。そして選択した実写画像を合成部８０１０に出力する。また、実写画像選択部８００８は、選択した実写画像とセットになって実写画像蓄積部８００３に格納されている識別コードをＣＧ画像選択部８００９に通知する。
【０１０７】
ＣＧ画像選択部８００９は、実写画像選択部８００８が選択した実写画像とセットになって実写画像蓄積部８００３に格納されている識別コードと同じ識別コードとセットになってＣＧ画像蓄積部８００５に格納されているＣＧ画像を選択する。そして選択したＣＧ画像を合成部８０１０に出力する。
【０１０８】
合成部８０１０は、実写画像選択部８００８から受けた実写画像と、ＣＧ画像選択部８００９から受けたＣＧ画像とを合成し、合成画像を生成する。係る合成処理は、上記合成部８０２が行った合成処理と同様にして行う。
【０１０９】
そして、合成部８０１０は生成した合成画像を、ＨＭＤ１１０が有する表示装置１１３１に対して出力する。これにより表示装置１１３１には、コンピュータ１３０が生成したＣＧ画像と、このＣＧ画像と同じ識別コードに対応する実写画像と、を合成した合成画像が表示されることになり、仮想物体が所望の位置からずれて実写画像上に表示されることはない。
【０１１０】
図１７は、アダプタ８０００が行う処理のフローチャートである。
【０１１１】
先ずステップＳ１７０１では、カメラ１１１１（右目カメラ２１０、左目カメラ２１１）から出力された実写画像を、識別コード付加部８００１が取得する。
【０１１２】
ステップＳ１７０２では、識別コード付加部８００１は、ステップＳ１７０１で取得した実写画像に対して識別コードを発行する。
【０１１３】
ステップＳ１７０３では、識別コード付加部８００１は、ステップＳ１７０２で発行した識別コードと、ステップＳ１７０１で取得した実写画像とをセットにして実写画像蓄積部８００３に格納する。
【０１１４】
ステップＳ１７０４では、遅れ計測部８００６は、実写画像蓄積部８００３に１つのセットが格納されたタイミングを検知すると、この検知したタイミングを、第１の格納タイミングとして記録する。
【０１１５】
ステップＳ１７０５では、撮像位置姿勢計算部８００２は、識別コード付加部８００１から受けたセット中の実写画像の撮像視点の位置姿勢情報を求める。
【０１１６】
ステップＳ１７０６では、撮像位置姿勢計算部８００２は、識別コード付加部８００１から受けたセット中の実写画像について求めた撮像視点の位置姿勢情報と、このセット中の識別コードとをセットにしてコンピュータ１３０に出力する。
【０１１７】
ステップＳ１７０７では、識別コード検出部８０１１は、ステップＳ１７０６で送信した識別コードと、ステップＳ１７０６で送信した位置姿勢情報に基づいてコンピュータ１３０が生成したＣＧ画像とをセットにして受信する。
【０１１８】
ステップＳ１７０８では、識別コード検出部８０１１は、コンピュータ１３０から受けたＣＧ画像に埋め込まれている識別コードを検出する。そして識別コード検出部８０１１は、コンピュータ１３０から受けたＣＧ画像、及びこのＣＧ画像から検出した識別コードをセットにしてＣＧ画像蓄積部８００５に格納する。
【０１１９】
ステップＳ１７０９では先ず、遅れ計測部８００６は、ＣＧ画像蓄積部８００５にＣＧ画像と識別コードのセットが格納されると、この識別コードを参照し、同じ識別コードが実写画像蓄積部８００３に格納されているか否かをチェックする。そして格納されている場合には、この識別コードをＣＧ画像蓄積部８００５に格納したタイミングを第２の格納タイミングとして記録する。
【０１２０】
次にステップＳ１７１０では、遅れ計測部８００６は、第２の格納タイミングから第１の格納タイミングを差し引いた差分（時間差）を計算し、差分情報として平均的遅れ計算部８００７に送出する。平均的遅れ計算部８００７は、遅れ計測部８００６から受けた差分情報と、従前に受けた差分情報との平均値を求める。そして求めた平均値を、遅延フレーム数として実写画像選択部８００８に出力する。
【０１２１】
ステップＳ１７１１では、実写画像選択部８００８は、実写画像蓄積部８００３に格納されている最新のフレームの実写画像（最も最近実写画像蓄積部８００３に格納された実写画像）から、遅延フレーム数分だけ過去の実写画像を選択する。そして選択した実写画像を合成部８０１０に出力する。また、実写画像選択部８００８は、選択した実写画像とセットになって実写画像蓄積部８００３に格納されている識別コードをＣＧ画像選択部８００９に通知する。
【０１２２】
ステップＳ１７１３では、ＣＧ画像選択部８００９は次のような処理を行う。即ち、実写画像選択部８００８が選択した実写画像とセットになって実写画像蓄積部８００３に格納されている識別コードと同じ識別コードとセットになってＣＧ画像蓄積部８００５に格納されているＣＧ画像を選択する。そして選択したＣＧ画像を合成部８０１０に出力する。
【０１２３】
ステップＳ１７１４では、合成部８０１０は、実写画像選択部８００８から受けた実写画像と、ＣＧ画像選択部８００９から受けたＣＧ画像とを合成し、合成画像を生成する。
【０１２４】
ステップＳ１７１５では、合成部８０１０は生成した合成画像を、ＨＭＤ１１０が有する表示装置１１３１に対して出力する。
【０１２５】
［第４の実施形態］
第３の実施形態では、実写画像の撮像視点の位置姿勢の取得方法として、実写画像中に写っているマーカを用いた。本実施形態では自身の位置姿勢を計測するセンサをＨＭＤ１１０に取り付け、実写画像の撮像視点の位置姿勢は、このセンサによる計測値に基づいて求める。以下ではこのセンサとして磁気センサを用いる。しかし、光学式センサ等、他のタイプのセンサを用いても良い。
【０１２６】
図１８は、本実施形態に係るシステムの機能構成を示すブロック図である。図１８に示したシステムが図１６に示したシステムと異なる点としては、ＨＭＤ１１０には三次元位置センサ５０００が装着されていると共に、撮像位置姿勢計算部８００２の代わりに、撮像位置姿勢計算部１８０１が用いられている点にある。
【０１２７】
以下では、図１８に示したシステムの動作において、図１６に示したシステムと異なる動作についてのみ説明する。
【０１２８】
三次元位置センサ５０００は、第２の実施形態で説明した、センサ固定局、センサ移動局、センサ本体で構成されるものであり、第２の実施形態と同様に、センサ移動局の位置姿勢情報（撮像視点の位置姿勢情報）を測定するものである。三次元位置センサ５０００による測定結果は、識別コード付加部８００１に出力される。
【０１２９】
識別コード付加部８００１は、三次元位置センサ５０００から測定結果、即ち、撮像視点の位置姿勢情報を受けると、これを世界座標系における位置姿勢を示す位置姿勢情報に変換する処理を行う。そして識別コード付加部８００１は次の処理を行う。三次元位置センサ５０００から位置姿勢情報を受けたタイミングに最も近いタイミングでＨＭＤ１１０から受けた実写画像に対して発行した識別コードとこの位置姿勢情報から生成した世界座標系における位置姿勢情報をセットにする。そしてこのセットを撮像位置姿勢計算部１８０１に出力する。
【０１３０】
撮像位置姿勢計算部１８０１は、このセットをそのままコンピュータ１３０に送信する。なお、より正確に撮像視点の位置姿勢情報を求めるためには、撮像位置姿勢計算部１８０１は、第１の実施形態のような実写画像を用いた撮像視点の位置姿勢情報を求める技術を併用しても良い。
【０１３１】
そして以降は図１６に示したシステムと同様の動作を行う。
【０１３２】
なお、以上説明した各実施形態は適宜組み合わせても良い。
【０１３３】
［第５の実施形態］
上記各実施形態では、図８，１３，１６，１８に示した各アダプタを構成する各部は何れもハードウェアでもって構成されているものとして説明した。しかし、その一部をソフトウェアでもって実装しても良い。
【０１３４】
図１９は、第１，３の実施形態に係るシステムに適用可能なシステムのハードウェアの構成例を示すブロック図である。なお、第２，４の実施形態に係るシステムの場合には、図１９に示したアダプタ１９０１に更にセンサ入力デバイスを１つ加え、このセンサ入力デバイスに上記三次元位置センサ５０００を接続すれば良い。
【０１３５】
１９０１は上記アダプタ８００，８０００に適用可能なアダプタである。
【０１３６】
１９０２はＣＰＵで、メモリ１９０３に格納されているプログラムやデータを用いてアダプタ１９０１全体の制御を行うと共に、アダプタ１９０１が適用可能なアダプタ８００、８０００が行う上述の各処理を実行する。例えば、上記各アダプタを構成する各部のうち、格納部以外の各部の機能を実行する。また、ＣＰＵ１９０２は計時機能も有する。
【０１３７】
もちろん上述の通り、アダプタ１９０１に更にセンサ入力デバイスを１つ加え、このセンサ入力デバイスに上記三次元位置センサ５０００を接続すれば、係るアダプタ１９０１は、アダプタ１３００，１８００に適用可能である。そしてこの場合、ＣＰＵ１９０２は、アダプタ１９０１が適用可能なアダプタ１３００，１８００が行う上述の各処理を実行する。
【０１３８】
メモリ１９０３は、ハードディスク１９０４からロードされたプログラムやデータを一時的に記憶するためのエリアを有する。更にメモリ１９０３は、ＣＧ画像入力デバイス１９０６を介してコンピュータ１３０から受信したデータ、実写画像入力デバイス１９０７を介してカメラ１１１１から受信したデータ等、外部から受信したデータを一時的に記憶するためのエリアも有する。
【０１３９】
ハードディスク１９０４は、上記各実施形態において格納部として機能した構成要素に対応するものである。
【０１４０】
通信デバイス１９０５は、アダプタ１９０１からコンピュータ１３０にデータを送信する為の送信制御を行うものであり、送信データはこの通信デバイス１９０５を介してコンピュータ１３０に送信される。
【０１４１】
ＣＧ画像入力デバイス１９０６は、コンピュータ１３０から送信されたデータの受信制御を行うものであり、受信データはこのＣＧ画像入力デバイス１９０６を介してアダプタ１９０１に入力される。
【０１４２】
実写画像入力デバイス１９０７は、カメラ１１１１から送信されたデータの受信制御を行うものであり、受信データはこの実写画像入力デバイス１９０７を介してアダプタ１９０１に入力される。
【０１４３】
表示デバイス１９０８は、上記各実施形態で説明した合成画像を表示装置１１３１に送信する送信制御を行うものであり、合成画像はこの表示デバイス１９０８を介してＨＭＤ１１０に送信される。
【０１４４】
入力デバイス１９０９はボタン群などにより構成されており、アダプタ１９０１の操作者が操作することで、各種の指示をＣＰＵ１９０２に対して入力することができる。
【０１４５】
１９１０は上述の各部を繋ぐバスである。
【０１４６】
なお、図１９には主要なものを示したのみであり、係る構成に適宜デバイスを付加してもよいし、係る構成による動作と同等以上の動作を行う構成であれば、如何なる構成を適用しても良い。
【０１４７】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１４８】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５０】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１５１】
【図１】複合現実感技術に適用されるシステム、及びその環境について示す図である。
【図２】ＨＭＤ１１０の構成を示す図である。
【図３】現実空間の画像と仮想物体の画像とを重畳する様子を説明する図である。
【図４】複合現実感技術をより簡便に実現するためのシステムの機能構成を示すブロック図である。
【図５】ユーザ１００が自身の頭部を矢印に示す方向に振った様子を説明する図である。
【図６】実写画像とＣＧ画像とのずれを説明する図である。
【図７】図４に示したアダプタ４００にバッファ（実写画像バッファ）７５０を組み込んだシステムの機能構成を示すブロック図である。
【図８】現実空間の画像（実写画像）と、仮想空間の画像（ＣＧ画像）とを合成した合成画像を、ＨＭＤ１１０に提供するためのシステムの機能構成を示すブロック図である。
【図９】図８に例示したシステムの使用例を示す図である。
【図１０】机１２０の上にティーポットの仮想物体１０００が配置されているかのように描画されてる合成画像の表示例を示す図である。
【図１１】マーカ１２１として適用可能な一例を示す図である。
【図１２】識別コードが埋め込まれたＣＧ画像の一例を示す図である。
【図１３】第２の実施形態に係るシステムの機能構成を示すブロック図である。
【図１４】図１３に例示したシステムの使用例を示す図である。
【図１５】アダプタ８００が行う処理のフローチャートである。
【図１６】現実空間の画像（実写画像）と、仮想空間の画像（ＣＧ画像）とを合成した合成画像を、ＨＭＤ１１０に提供するためのシステムの機能構成を示すブロック図である。
【図１７】アダプタ８０００が行う処理のフローチャートである。
【図１８】第４の実施形態に係るシステムの機能構成を示すブロック図である。
【図１９】第１，３の実施形態に係るシステムに適用可能なシステムのハードウェアの構成例を示すブロック図である。
【図１】
2008146109.tif 000003
【図２】
2008146109.tif 000004
【図３】
2008146109.tif 000005
【図４】
2008146109.tif 000006
【図５】
2008146109.tif 000007
【図６】
2008146109.tif 000008
【図７】
2008146109.tif 000009
【図８】
2008146109.tif 000010
【図９】
2008146109.tif 000011
【図１０】
2008146109.tif 000012
【図１１】
2008146109.tif 000013
【図１２】
2008146109.tif 000014
【図１３】
2008146109.tif 000015
【図１４】
2008146109.tif 000016
【図１５】
2008146109.tif 000017
【図１６】
2008146109.tif 000018
【図１７】
2008146109.tif 000019
【図１８】
2008146109.tif 000020
【図１９】
2008146109.tif 000021