(57)【要約】【課題】  現実空間の画像の取得時刻に略同じ時刻に取得された位置姿勢に基づく仮想空間の画像を生成すべく、現実空間の画像の取得時刻と、位置姿勢の取得時刻とのずれを簡便に求めるための技術を提供すること。【解決手段】  時刻ｔに対応する撮像画像上に、時刻（ｔ−ｄ）に対応する位置姿勢を有する視点から見える仮想空間の画像を重畳させた画像を、ｔ＝ｔ１，ｔ２，，，Ｔのそれぞれについて生成し、生成した画像群を表示する（Ｓ６０２〜Ｓ６０６）。【選択図】  図６
2006285789.tif 000002
【特許請求の範囲】
【請求項１】
現実空間の動画像を撮像する撮像装置から、各フレームの撮像画像を取得する画像取得工程と、
前記画像取得工程で取得した撮像画像を、当該撮像画像の取得時刻とセットにして格納する第１の格納制御工程と、
前記撮像装置の位置姿勢を計測するセンサから、前記撮像装置の位置姿勢を順次取得する位置姿勢取得工程と、
前記位置姿勢取得工程で取得した位置姿勢を、当該位置姿勢の取得時刻とセットにして格納する第２の格納制御工程と、
ずれ量を示すデータｄを取得するずれ量取得工程と、
時刻ｔに対応する撮像画像上に、時刻（ｔ−ｄ）に対応する位置姿勢を有する視点から見える仮想空間の画像を重畳させた画像を、ｔ＝ｔ１，ｔ２，，，Ｔのそれぞれについて生成する生成工程と、
前記生成工程で生成した画像群を表示する表示工程と
を備えることを特徴とする画像処理方法。
【請求項２】
更に、
前記表示工程で表示している仮想空間の画像を前記生成工程で生成する為に用いた前記データｄを記録する記録工程を備えることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記時刻ｔ（＝ｔ１，ｔ２，，，Ｔ）が、前記第１の格納制御工程で格納した取得時刻の何れかであり、且つ前記時刻（ｔ−ｄ）が、前記第２の格納制御工程で格納した取得時刻の何れかである場合には、
前記生成工程では、前記時刻ｔとセットにして格納された撮像画像上に、時刻（ｔ−ｄ）とセットにして格納された位置姿勢を有する視点から見える仮想空間の画像を重畳させた画像を、ｔ＝ｔ１，ｔ２，，，Ｔのそれぞれについて生成することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項４】
前記時刻ｔ（＝ｔ１，ｔ２，，，Ｔ）が、前記第１の格納制御工程で格納した取得時刻の何れかであり、且つ前記時刻（ｔ−ｄ）が前記第２の格納制御工程で格納した取得時刻ｔａ，ｔｂに対してｔａ＜（ｔ−ｄ）＜ｔｂであった場合には、
前記生成工程は、
前記時刻ｔａとセットにして格納された位置姿勢と、前記時刻ｔｂとセットにして格納された位置姿勢とを用いて前記時刻（ｔ−ｄ）における位置姿勢を補間生成する補間生成工程を備え、
前記時刻ｔとセットにして格納された撮像画像上に、前記補間生成工程で補間生成された位置姿勢を有する視点から見える仮想空間の画像を重畳させた画像を、ｔ＝ｔ１，ｔ２，，，Ｔのそれぞれについて生成することを特徴とする請求項１又は２に記載の画像処理方法。
【請求項５】
前記表示工程では、前記生成工程で生成した画像群を一覧表示することを特徴とする請求項１乃至４の何れか１項に記載の画像処理方法。
【請求項６】
前記表示工程では、前記生成工程で生成したそれぞれの画像を動画像として表示することを特徴とする請求項１乃至４の何れか１項に記載の画像処理方法。
【請求項７】
現実空間の動画像を撮像する撮像装置から、各フレームの撮像画像を取得する画像取得手段と、
前記画像取得手段によって取得した撮像画像を、当該撮像画像の取得時刻とセットにして格納する第１の格納制御手段と、
前記撮像装置の位置姿勢を計測するセンサから、前記撮像装置の位置姿勢を順次取得する位置姿勢取得手段と、
前記位置姿勢取得手段によって取得した位置姿勢を、当該位置姿勢の取得時刻とセットにして格納する第２の格納制御手段と、
ずれ量を示すデータｄを取得するずれ量取得手段と、
時刻ｔに対応する撮像画像上に、時刻（ｔ−ｄ）に対応する位置姿勢を有する視点から見える仮想空間の画像を重畳させた画像を、ｔ＝ｔ１，ｔ２，，，Ｔのそれぞれについて生成する生成手段と、
前記生成手段が生成した画像群を表示する表示手段と
を備えることを特徴とする画像処理装置。
【請求項８】
コンピュータに請求項１乃至６の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間上に仮想空間の画像を重畳させて提示するための技術に関するものである。
【背景技術】
【０００２】
複合現実感システムでは、操作者の視点位置と視線方向および空間中にある物体の位置を計測する必要がある。位置姿勢の計測システムとしては、米国Polhemus社製FASTRAK（登録商標）に代表されるような位置姿勢計測装置を使うのが一般的な手法の一つである。またジャイロ等で姿勢のみを計測し、位置情報および、姿勢のドリフト誤差を画像から計測する方法も取られている。
【特許文献１】特開２００２−２７１８１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし従来の複合現実感システムにおいて現実空間の映像を取得した時刻と、上記位置姿勢計測装置によって計測した位置姿勢を取得した時刻を一致させることは一般には難しい。
【０００４】
特に、現実空間の映像を一度コンピュータに取り込んで描画し、その後仮想空間の映像を重畳する方式では、現実空間の映像を取り込んでから仮想空間の映像を重畳する間にタイムラグがあるため、仮想空間の映像は現実空間映像の取得時刻よりも遅い時刻に取得したものを用いることになり、結果として、現実空間映像と仮想空間映像とは不一致なものとなる。その結果、これらを合成した映像を見る観察者に違和感を与えることになる。
【０００５】
そのような場合、少し古い計測値を用いて仮想空間映像を生成することで、現実空間映像と仮想空間映像との不整合を解消するといったことも考えられるが、どれだけ前の計測値を用いて良いのかを容易に決定することはできなかった。
【０００６】
本発明は以上の問題に鑑みて成されたものであり、現実空間の画像の取得時刻に略同じ時刻に取得された位置姿勢に基づく仮想空間の画像を生成すべく、現実空間の画像の取得時刻と、位置姿勢の取得時刻とのずれを簡便に求めるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【０００８】
即ち、現実空間の動画像を撮像する撮像装置から、各フレームの撮像画像を取得する画像取得工程と、
前記画像取得工程で取得した撮像画像を、当該撮像画像の取得時刻とセットにして格納する第１の格納制御工程と、
前記撮像装置の位置姿勢を計測するセンサから、前記撮像装置の位置姿勢を順次取得する位置姿勢取得工程と、
前記位置姿勢取得工程で取得した位置姿勢を、当該位置姿勢の取得時刻とセットにして格納する第２の格納制御工程と、
ずれ量を示すデータｄを取得するずれ量取得工程と、
時刻ｔに対応する撮像画像上に、時刻（ｔ−ｄ）に対応する位置姿勢を有する視点から見える仮想空間の画像を重畳させた画像を、ｔ＝ｔ１，ｔ２，，，Ｔのそれぞれについて生成する生成工程と、
前記生成工程で生成した画像群を表示する表示工程と
を備えることを特徴とする。
【０００９】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１０】
即ち、現実空間の動画像を撮像する撮像装置から、各フレームの撮像画像を取得する画像取得手段と、
前記画像取得手段によって取得した撮像画像を、当該撮像画像の取得時刻とセットにして格納する第１の格納制御手段と、
前記撮像装置の位置姿勢を計測するセンサから、前記撮像装置の位置姿勢を順次取得する位置姿勢取得手段と、
前記位置姿勢取得手段によって取得した位置姿勢を、当該位置姿勢の取得時刻とセットにして格納する第２の格納制御手段と、
ずれ量を示すデータｄを取得するずれ量取得手段と、
時刻ｔに対応する撮像画像上に、時刻（ｔ−ｄ）に対応する位置姿勢を有する視点から見える仮想空間の画像を重畳させた画像を、ｔ＝ｔ１，ｔ２，，，Ｔのそれぞれについて生成する生成手段と、
前記生成手段が生成した画像群を表示する表示手段と
を備えることを特徴とする。
【発明の効果】
【００１１】
本発明の構成によれば、現実空間の画像の取得時刻に略同じ時刻に取得された位置姿勢に基づく仮想空間の画像を生成すべく、現実空間の画像の取得時刻と、位置姿勢の取得時刻とのずれを簡便に求めることができる。
【発明を実施するための最良の形態】
【００１２】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１３】
［第１の実施形態］
図１は、現実空間に仮想空間を重畳させた複合現実空間を観察者（ユーザ）に提供する処理を実行する、本実施形態に係るシステムの外観を示す図である。
【００１４】
同図において１２０はトランスミッタで、磁場を発生させる。本実施形態では位置姿勢計測のためのシステムとしては、米国Polhemus社製FASTRAK（登録商標）に代表されるような位置姿勢計測装置を用いるのであるが、以下の説明の本質はこれに限定するものではなく、ジャイロ等で姿勢のみを計測し、位置情報および、姿勢のドリフト誤差を画像から計測する技術を用いても良いことは以下の説明から明らかとなるであろう。
【００１５】
１００は観察者の頭部に装着し、現実空間と仮想空間とを合成した画像を観察者の眼前に提供する為の頭部装着型表示装置（以下、ＨＭＤ：Head Mounted Displayと呼称する）で、カメラ１０２Ｒ、１０２Ｌ、表示装置１０１Ｒ、１０１Ｌ、磁気レシーバ１０５により構成されている。
【００１６】
カメラ１０２Ｒ、１０２ＬはそれぞれＨＭＤ１００を頭部に装着した観察者の右目、左目の位置から見える現実空間を連続して撮像するものであり、撮像した各フレームの画像は後段のコンピュータ１０３に出力される。なお、以下では右目用カメラ１０２Ｒ、左目用カメラ１０２Ｌのそれぞれを区別しない限り、まとめて「カメラ１０２」と呼称する場合がある。
【００１７】
表示装置１０１Ｒ、１０１Ｌはそれぞれ、観察者がＨＭＤ１００を頭部に装着したときに右目、左目の眼前に位置するようにＨＭＤ１００に装着されたものであり、後段のコンピュータ１０３から出力された画像信号に基づいた画像を表示する。従って観察者の右目、左目の眼前にはコンピュータ１０３が生成した画像が提供されることになる。なお、以下では右目用表示装置１０１Ｒ、左目用表示装置１０１Ｌのそれぞれを区別しない限り、まとめて「表示装置１０１」と呼称する場合がある。
【００１８】
磁気レシーバ１０５は、上記トランスミッタ１２０が発する磁場の変化を検知し、検知した結果の信号を後段の位置姿勢計測装置１０４に出力するものである。検知した結果の信号は、トランスミッタ１２０の位置を原点とし、この原点の位置で互いに直交する３軸をｘ、ｙ、ｚ軸とする座標系（以下、センサ座標系と呼称する）において、磁気レシーバ１０５の位置姿勢に応じて検知される磁場の変化を示す信号である。
【００１９】
位置姿勢計測装置１０４は、この信号に基づいて、センサ座標系における磁気レシーバ１０５の位置姿勢を求め、求めた位置姿勢を示すデータは後段のコンピュータ１０３に出力される。
【００２０】
１０７は、磁気レシーバ１０５による計測値を補正するために配置されたマーカであるが、補正処理を行わない場合にはこのマーカは必要ない。
【００２１】
１１１は仮想物体であり、現実物体１１０に重畳させるべく配置されるものである。これにより、現実物体１１０の色や表面の柄などを変えて観察者に提示することができる。このような機能は、形のみを再現したモックアップに仮想空間映像として、さまざまなデザインを適用し、デザインを検証する用途などで用いられる。
【００２２】
現実物体１１０には磁気レシーバ１０５と同様の磁気レシーバ１０６が取り付けられており、磁気レシーバ１０６は上記トランスミッタ１２０が発する磁場の変化を検知し、検知した結果の信号を後段の位置姿勢計測装置１０４に出力するものである。検知した結果の信号は、センサ座標系において、磁気レシーバ１０６の位置姿勢に応じて検知される磁場の変化を示す信号である。
【００２３】
位置姿勢計測装置１０４は、この信号に基づいて、センサ座標系における磁気レシーバ１０６の位置姿勢を求め、求めた位置姿勢を示すデータは後段のコンピュータ１０３に出力される。
【００２４】
１０３はコンピュータで、ＨＭＤ１００の表示装置１０１Ｒ、１０１Ｌに出力すべき画像信号を生成したり、位置姿勢計測装置１０４からのデータを受け、これを管理したり等の処理を行う。このコンピュータは一般的には例えばＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等により構成される。図１０は、コンピュータ１０３のハードウェア構成を示す図である。
【００２５】
１１０１はＣＰＵで、ＲＡＭ１１０２やＲＯＭ１１０３に格納されているプログラムやデータを用いてコンピュータ１０３全体の制御を行うと共に、Ｉ／Ｆ１１０７に接続される外部装置とのデータ通信の制御を行う。また、コンピュータ１０３が行うべき処理として後述する各処理を行う。また、ＣＰＵ１１０１内部には不図示のタイマが設けられており、現在時刻を計時することができる。
【００２６】
１１０２はＲＡＭで、外部記憶装置１１０５からロードされたプログラムやデータを一時的に記憶するためのエリア、Ｉ／Ｆ１１０７を介して受信した各種のデータを一時的に記憶するためのエリア、ＣＰＵ１１０１が各種の処理を実行する際に必要なワークエリア等、各種のエリアを適宜提供することができる。
【００２７】
１１０３はＲＯＭで、ブートプログラムやコンピュータ１０３の設定データなどを格納する。
【００２８】
１１０４は操作部で、キーボードやマウス、ジョイスティックなどにより構成されており、各種の指示をＣＰＵ１１０１に対して入力することができる。
【００２９】
１１０５は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにＯＳ（オペレーティングシステム）やＣＰＵ１１０１に後述する各処理を実行させるためのプログラムやデータ等が保存されており、これらの一部、もしくは全部は、ＣＰＵ１１０１の制御により、ＲＡＭ１１０２にロードされる。また、後述の説明で、既知のデータ（情報）として説明するもの（もしくは以下説明する処理で必要となるべきデータ）もまたこの外部記憶装置１１０５に保存されており、必要に応じてＣＰＵ１１０１の制御により、ＲＡＭ１１０２にロードされる。
【００３０】
１１０６は表示部で、ＣＲＴや液晶画面等により構成されており、ＣＰＵ１１０１による処理結果を画像や文字等でもって表示することができる。
【００３１】
１１０７はＩ／Ｆで、ここに上記位置姿勢計測装置１０４、ＨＭＤ１００等が接続されており、このＩ／Ｆ１１０７を介して、コンピュータ１０３は位置姿勢計測装置１０４、ＨＭＤ１００等とのデータ通信を行うことができる。
【００３２】
１１０８は上述の各部を繋ぐバスである。
【００３３】
以上の構成を備えるコンピュータ１０３は、カメラ１０２Ｒ、１０２Ｌそれぞれから得られる現実空間の画像を取り込むとと共に、磁気レシーバ１０５、１０６から得られる位置姿勢に基づいてカメラ１０２Ｒ、１０２Ｌから見える仮想物体１１１の画像を生成する。そして、生成した画像を、先に取り込んだ現実空間の画像上に重畳させ、重畳させた画像を表示装置１０１Ｒ、１０１Ｌに出力する。これにより、ＨＭＤ１００を頭部に装着した観察者の右目、左目の眼前には、それぞれの目の位置姿勢に対応した複合現実空間画像が表示されることになる。
【００３４】
図２は、このような複合現実空間の画像を生成し、ＨＭＤ１００に出力するための一連の処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１１０１に実行させるためのプログラムやデータは外部記憶装置１１０５に保存されており、これをＲＡＭ１１０２にロードし、ＣＰＵ１１０１の処理対象とすることで、コンピュータ１０３は以下説明する各処理を実行することになる。
【００３５】
先ず、カメラ１０２Ｒ、１０２Ｌより撮像された現実空間の画像（実写画像）はＩ／Ｆ１１０７を介してコンピュータ１０３に入力されるので、これを順次ＲＡＭ１１０２に格納する（ステップＳ２０１）。
【００３６】
また、磁気レシーバ１０５が計測した「自身のセンサ座標系における位置姿勢」、磁気レシーバ１０６が計測した「自身のセンサ座標系における位置姿勢」がＩ／Ｆ１１０７を介してＲＡＭ１１０２に入力されるので、これらを一時的にＲＡＭ１１０２に記録させる（ステップＳ２０２）。
【００３７】
次に、ステップＳ２０１でＲＡＭ１１０２に取得した現実空間の画像からマーカ１０７を画像認識し、画像中のマーカ１０７の位置から、ステップＳ２０２で得た「磁気レシーバ１０５の位置姿勢」を補正する（ステップＳ２０３）。
【００３８】
本ステップによる処理は、位置姿勢すべての情報を正確に出力できるセンサを用いた場合には不要であるが、一般に多く用いられている磁気センサでは周囲の環境による誤差を補正するため、よく行われる処理である。またセンサが姿勢のみしか計測できない場合、また姿勢にも長時間の計測により姿勢ずれが生じる場合などは、位置の計測を画像によって行ったり、姿勢ずれを画像で補正するといった事が行われる。また、この補正方法についてはこの方法に限定するものではなく、様々な方法が提案されている。
【００３９】
そして、ステップＳ２０１でＲＡＭ１１０２上に取得した現実空間の画像をＲＡＭ１１０２内の所定のエリア内に描画する（ステップＳ２０４）。次に、ステップＳ２０２でＲＡＭ１１０２に取得した「磁気レシーバ１０５のセンサ座標系における位置姿勢を示すデータ」を、予め測定した「磁気レシーバ１０５とカメラ１０２Ｒ、１０２Ｌとの位置姿勢関係」を示すデータ（バイアスデータ）でもって変換し、「センサ座標系におけるカメラ１０２Ｒ、１０２Ｌの位置姿勢」を示すデータを得る。そしてこのデータを用いて、カメラ１０２Ｒ、１０２Ｌの位置姿勢に応じて見える仮想空間の画像を描画するのであるが、描画はステップＳ２０４で描画した現実空間の画像上に描画する（ステップＳ２０５）。
【００４０】
これにより、ＲＡＭ１１０２内の所定のエリアには、それぞれのカメラ１０２Ｒ、１０２Ｌから見える複合現実空間の画像が生成されていることになる。
【００４１】
なお、仮想空間の画像を生成する際には、現実物体１１０に取り付けられた磁気レシーバ１０６が計測した位置姿勢でもって仮想物体１１１を仮想空間内に配置する処理を行うので、観察者がこの仮想物体１１１の配置位置を見ると、この位置に仮想物体１１１が見えることになる。
【００４２】
そしてＲＡＭ１１０２内の所定のエリアに生成された複合現実空間の画像（合成画像）をＩ／Ｆ１１０７を介してＨＭＤ１００の表示装置１０１や、コンピュータ１０３の表示部１１０６に出力する（ステップＳ２０７）。
【００４３】
以上の処理が１フレーム分の複合現実空間の画像を表示装置１０１や表示部１１０６に表示するための処理であるので、以上の処理を複数回繰り返すことで複数フレーム分の複合現実空間の画像を表示装置１０１や表示部１１０６に表示することができる。
【００４４】
そして、以上の処理の終了指示が、例えば操作部１１０４を操作して入力されたことをＣＰＵ１１０１が検知した場合には本処理を終了する。
【００４５】
なお、本実施形態では、センサとして磁気センサを用いたが、超音波センサなど、他のタイプのものを用いるようにしても良い。
【００４６】
ここで、以上の処理において、実際にはステップＳ２０１における処理、即ち、現実空間の画像の取得には、ステップＳ２０２における処理（センサによる計測値の取得処理）よりも時間がかかるために、ステップＳ２０１でＲＡＭ１１０２上に現実空間の画像を取り込んだ時刻と、ステップＳ２０２で磁気レシーバ１０５の位置姿勢を取り込んだ時刻とには差（タイムラグ）が生じてしまう。
【００４７】
即ち、同時刻に現実空間の撮像、位置姿勢の計測を行っても、現実空間の画像の取得は、位置姿勢の取得に遅れることになる。そして現実空間の画像の取得が完了する頃には、次の（もしくはそれ以降の）位置姿勢が取得されていることになる。よって、観察者が自身の頭部を動かしている最中に、同時に位置姿勢の計測、現実空間の撮像を行っても、ステップＳ２０１で取り込んだ映像が示す現実空間の視点の位置姿勢と、ステップＳ２０２で取得した磁気レシーバ１０５の位置姿勢に基づく視点の位置姿勢とが一致しなくなるので、ステップＳ２０２で取得した位置姿勢に基づいて仮想空間の画像を生成しても、現実空間の画像とは異なる位置姿勢の視点で生成されたものとなるので、結果としてそれぞれの画像を合成しても現実物体１１０と仮想物体１１１とは互いにずれて描画されることになる。
【００４８】
図３は、このタイムラグが生ずるが故に発生する、現実物体１１０と仮想物体１１１とのずれを説明する図である。なお、各画像３０１から３０８は同時に表示されるものではなく、この順に表示されるものである。またそれぞれの画像は、ＨＭＤ１００に備わっている表示装置１０１やコンピュータ１０３に備わっている表示部１１０６に表示されるものである。
【００４９】
仮想物体１１１は現実物体１１０の位置に重畳させるべく、現実物体１１０と同じ位置姿勢でもって配置する。よって、理想的には表示装置１０１の表示画面には仮想物体１１１は常に現実物体１１０に重なって表示されることになる。
【００５０】
先ず画像３０１では、観察者の頭部は動いていないので、現実物体１１０と仮想物体１１１とが略同じ位置姿勢でもって表示されている。ここで、観察者が自身の頭部を動かすと、当然、表示装置１０１の表示画面内の仮想物体１１１、現実物体１１０の位置が変わる。ここで頭部を左側に回すと、仮想物体１１１、現実物体１１０は共に表示画面内で右側に動くのであるが、上記タイムラグが生ずるが故に、画像３０２に示す如く、現実物体１１０は、仮想物体１１１を描画するために用いた視点の位置姿勢よりも前に取得された位置姿勢の視点から見たものとなっており、その結果、それらの表示にずれが生じている。これは、頭部の移動に追従して仮想空間の画像は生成されるものの、頭部の移動後に取得されるべき現実空間の画像の取得がまだ終わっていないので（即ち上記タイムラグがあるが故に）、前のフレームの画像のままであることに起因する。
【００５１】
そしてその後も観察者が自身の頭部を左側に見渡し続けると、画像３０３，３０４に示す如く、現実物体１１０は仮想物体１１１の移動に遅れて表示される。
【００５２】
ここで、観察者の頭部を左側に回している途中でいきなり右側に回すと、画像３０５に示す如く、仮想物体１１１は表示画面内では同図矢印３５０で示す方向に移動するのであるが、先の理由により、現実物体１１０は遅れて移動するので、矢印３５１で示す方向に移動する。よって、現実物体１１０、仮想物体１１１のそれぞれが位置して見えるのはこのようなことが原因となっている。
【００５３】
そしてその後も観察者が自身の頭部を右側に回し続けると、画像３０６，３０７に示す如く、現実物体１１０は仮想物体１１１の移動に遅れて表示される。
【００５４】
そして、観察者が自身の頭部の回転を止めると、画像３０８に示す如く、画像３０１と同様に、仮想物体１１１、現実物体１１０は一致して表示される。
【００５５】
よって、本実施形態では、このタイムラグを求め、現実空間上に重畳させる仮想空間の画像を生成する際には、この現実空間の画像の取得時刻よりも求めたタイムラグ分だけ前に取得した位置姿勢に基づいて仮想空間の画像を生成する。これにより、それぞれの画像で視点の位置姿勢は略一致するので、それぞれの画像を合成しても、現実物体１１０と仮想物体１１１とが互いにずれて描画されることはない。
【００５６】
以下では、このタイムラグを求める処理について説明する。
【００５７】
先ず、観察者は自身の頭部にＨＭＤ１００を装着し、自身の頭部を適当に動かす。簡単には、左右に振る。観察者がこのような動作を行っている際、コンピュータ１０３は以下説明する各処理を実行する。
【００５８】
図４は、観察者が上記動作を行っている間にコンピュータ１０３によって行われる処理、即ち、ＨＭＤ１００に備わっているカメラ１０２によって撮像された現実空間の画像を取得し、取得した画像を取得時刻と共に外部記憶装置１１０５に保存する処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１１０１に実行させるためのプログラムやデータは外部記憶装置１１０５からＲＡＭ１１０２上にロードされており、ＣＰＵ１１０１がこれを用いて処理を実行することで、コンピュータ１０３は以下説明する各処理を実行することになる。
【００５９】
図５は、観察者が上記動作を行っている間にコンピュータ１０３によって行われる処理、即ち、ＨＭＤ１００に備わっている磁気レシーバ１０５によって計測されたＨＭＤ１００の位置姿勢、磁気レシーバ１０６によって計測された現実物体１１０の位置姿勢を取得し、取得した位置姿勢を取得時刻と共に外部記憶装置１１０５に保存する処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１１０１に実行させるためのプログラムやデータは外部記憶装置１１０５からＲＡＭ１１０２上にロードされており、ＣＰＵ１１０１がこれを用いて処理を実行することで、コンピュータ１０３は以下説明する各処理を実行することになる。
【００６０】
なお、図４，５のそれぞれに示したフローチャートに従った処理は遅れなく実行されることが望ましいため、リアルタイムＯＳ上で独立したタスク、マルチスレッドＯＳ上においては別スレッドで実行される事が望ましい。
【００６１】
先ず、図４に示したフローチャートに従った処理について説明する。
【００６２】
ＨＭＤ１００に備わっているカメラ１０２は上述の通り、現実空間の動画像を撮像する。よって、撮像した各フレームの画像はＩ／Ｆ１１０７を介して本コンピュータ１０３に入力されるので、ＣＰＵ１１０１はこれをＲＡＭ１１０２上に取得する（ステップＳ４０１）。一般に高フレームレートの動画像の取得では、さらに別のスレッドもしくはタスクで独立して画像の取り込みが行われている例が多く、本実施形態でもステップＳ４０１では基本ソフトのAPIからの取り込み処理終了の呼び出しを受けて、既にバッファに一次保存されているデータを、コンピュータ１０３内に取り込む事を想定している。
【００６３】
次に、上述の通り、ＣＰＵ１１０１は現在時刻を内部タイマによって計時しているので、ステップＳ４０１で画像を取得した時刻（Ｉ／Ｆ１１０７を介して入力された画像のデータをＲＡＭ１１０２上に記録完了した時刻）を計時し（ステップＳ４０２）、計時した時刻をデータとして、ステップＳ４０１で取得した画像のデータと共にセットにして外部記憶装置１１０５に保存する（ステップＳ４０３）。
【００６４】
なお、基本ソフトの仕組みによっては、上記ステップＳ４０１で説明した画像の取得の前に、基本ソフト内での取り込み処理の終了を検知した時点で時刻を計測する事が望ましい場合もある。
【００６５】
そして、次に本コンピュータ１０３に入力される現実空間の画像のデータ、この画像のデータの取得時刻を記録するための記録領域を外部記憶装置１１０５内に確保すると共に、この記録領域にデータを記録するよう、記録位置を更新する（ステップＳ４０４）。なお、予め記録領域を一括して確保している場合には、逐一記録領域の確保処理は必要ない。
【００６６】
以上の処理を処理の終了指示が入力されるまで行う。なお、図４のフローチャートに従った処理の終了判断に関しては、後述する観察者の遅れ時間を判断する処理を始める時に止めて、PCの負荷を減らす事もできるし、処理量に余裕がある場合は、記録領域をリング状に確保し、常に過去一定時間内のデータを保持し続けるようにする事も可能である。
【００６７】
次に、図５に示したフローチャートに従った処理について説明する。
【００６８】
上述の通り、磁気レシーバ１０５は自身の位置姿勢に応じた信号を位置姿勢計測装置１０４に出力し、位置姿勢計測装置１０４はこの信号に基づいたデータをコンピュータ１０３に入力する。また、上述のとおり、磁気レシーバ１０６は自身の位置姿勢に応じた信号を位置姿勢計測装置１０４に出力し、位置姿勢計測装置１０４はこの信号に基づいたデータをコンピュータ１０３に入力する。よって、ＣＰＵ１１０１は磁気レシーバ１０５の位置姿勢を示すデータ（センサ値）、磁気レシーバ１０６の位置姿勢を示すデータ（センサ値）をＲＡＭ１１０２上に取得する（ステップＳ５０１）。
【００６９】
実際にはセンサはシリアル通信等の何らかの通信手段で本コンピュータ１０３に接続されており、アクティブにセンサ値の取得を行うよりも、つねに通信路を監視しており、センサからの出力があった瞬間を検知できるのが、誤差や余分な遅れを伴わない望ましい。
【００７０】
また、ＣＰＵ１１０１は位置姿勢のデータの取得時刻を計測し（ステップＳ５０２）、計測した時刻のデータを、ステップＳ５０１で取得した位置姿勢のデータと共にセットにして外部記憶装置１１０５に保存する（ステップＳ５０３）。
【００７１】
そして、次に本コンピュータ１０３に入力される位置姿勢のデータ、この位置姿勢のデータの取得時刻を記録するための記録領域を外部記憶装置１１０５内に確保すると共に、この記録領域にデータを記録するよう、記録位置を更新する（ステップＳ５０４）。なお、予め記録領域を一括して確保している場合には、逐一記録領域の確保処理は必要ない。
【００７２】
以上の処理を処理の終了指示が入力されるまで行う。図５の処理の終了判断に関しては、図４の終了処理の判断と同様である。
【００７３】
次に、上記タイムラグを求める処理について、同処理のフローチャートを示す図６を用いて説明する。なお、同図のフローチャートに従った処理をＣＰＵ１１０１に実行させるためのプログラムやデータは外部記憶装置１１０５からＲＡＭ１１０２にロードされており、これを用いてＣＰＵ１１０１が処理を行うことで、コンピュータ１０３は以下説明する処理を実行することになる。
【００７４】
なお、同図のフローチャートに従った処理は、図４，５に示したフローチャートに従った処理の完了後に行われるものである。即ち図６に示したフローチャートに従った処理は、図４のフローチャートに従った処理によって外部記憶装置１１０５に保存された「現実空間の画像とこの画像の取得時刻とのセット群」、図５のフローチャートに従った処理によって外部記憶装置１１０５に保存された「位置姿勢と取得時刻とのセット群」を用いて実行されるものである。
【００７５】
先ず、観察者は自身の頭部にＨＭＤ１００を装着し、自身の頭部を適当に動かす。簡単には、左右に振る。観察者がこのような動作を行っている際、コンピュータ１０３は以下説明する各処理を実行する。
【００７６】
本コンピュータ１０３の操作者は操作部１１０４を用いて、以下の処理で用いる「ずれ量を示す変数ｄ」の値を入力するので、ＣＰＵ１１００はこれをＲＡＭ１１０２に一時的に格納する（ステップＳ６０１）。
【００７７】
次に、時刻ｔにおける現実空間の画像をＲＡＭ１１０２上に描画する（ステップＳ６０２）。この時刻ｔの設定については、本実施形態ではコンピュータ１０３の操作者が操作部１１０４を用いて指示したものとする。なお、この時刻ｔは図４（もしくは図５）のフローチャートに従った処理でもって外部記憶装置１１０５に保存された「取得時刻」が取りうる範囲内のものとする。
【００７８】
ここで、時刻ｔが、図４（もしくは図５）のフローチャートに従った処理でもって外部記憶装置１１０５に保存された「取得時刻」の何れかであった場合には、取得時刻ｔとセットにして外部記憶装置１１０５に保存されている現実空間の画像をＲＡＭ１１０２に読み出すことでステップＳ６０２における処理は成される。
【００７９】
また、時刻ｔが、図４（もしくは図５）のフローチャートに従った処理でもって外部記憶装置１１０５に保存された「取得時刻」の何れでもないが、この「取得時刻」のうち時刻ｔに最も近い時刻がｔａであった場合、取得時刻ｔａとセットにして外部記憶装置１１０５に保存されている現実空間の画像をＲＡＭ１１０２に読み出すことでステップＳ６０２における処理は成される。
【００８０】
また、時刻ｔが、図４（もしくは図５）のフローチャートに従った処理でもって外部記憶装置１１０５に保存された「取得時刻」の何れでもないが、この「取得時刻」のうち、時刻ｔに隣接している時刻がｔａ１、ｔｂであった場合（ｔａ＜ｔ＜ｔｂ）、ＣＰＵ１１０１は、取得時刻ｔａとセットにして外部記憶装置１１０５に保存されている現実空間の画像と取得時刻ｔｂとセットにして外部記憶装置１１０５に保存されている現実空間の画像とを用いて、時刻ｔにおける現実空間の画像を補間生成することで、ステップＳ６０２における処理は成される。画像の補間生成処理については周知のものであるので、これに関する説明は省略する。
【００８１】
以上のように、指定された時刻ｔにおける現実空間の画像がＲＡＭ１１０２に読み出される。
【００８２】
次に、時刻（ｔ−ｄ）における位置姿勢を用いて、この位置姿勢を有する視点から見える仮想空間の画像を生成する（ステップＳ６０３）。即ち、磁気レシーバ１０６から時刻（ｔ−ｄ）に取得した位置姿勢に仮想物体１１１を配置し、その後、磁気レシーバ１０５から時刻（ｔ−ｄ）に取得した位置姿勢に上記バイアスデータを加えることで得られる位置姿勢の視点から見える仮想空間の画像を生成する。所定の位置姿勢から見える仮想空間の画像の生成処理については周知のものであるので、これに関する説明は省略する。
【００８３】
ここで、時刻（ｔ−ｄ）が、図４（もしくは図５）のフローチャートに従った処理でもって外部記憶装置１１０５に保存された「取得時刻」の何れかであった場合には、取得時刻（ｔ−ｄ）とセットにして外部記憶装置１１０５に保存されている現実物体１１０の位置姿勢に仮想物体１１１を配置し、その後、時刻（ｔ−ｄ）とセットにして外部記憶装置１１０５に保存されている「磁気レシーバ１０５から得た位置姿勢」に上記バイアスデータを加えることで得られる位置姿勢の視点から見える仮想空間の画像を生成することで、ステップＳ６０３における処理は成される。
【００８４】
また、時刻（ｔ−ｄ）が、図４（もしくは図５）のフローチャートに従った処理でもって外部記憶装置１１０５に保存された「取得時刻」の何れでもないが、この「取得時刻」のうち時刻（ｔ−ｄ）に最も近い時刻がｔａであった場合、取得時刻ｔａとセットにして外部記憶装置１１０５に保存されている現実物体１１０の位置姿勢に仮想物体１１１を配置し、その後、時刻ｔａとセットにして外部記憶装置１１０５に保存されている「磁気レシーバ１０５から得た位置姿勢」に上記バイアスデータを加えることで得られる位置姿勢の視点から見える仮想空間の画像を生成することで、ステップＳ６０３における処理は成される。
【００８５】
また、時刻（ｔ−ｄ）が、図４（もしくは図５）のフローチャートに従った処理でもって外部記憶装置１１０５に保存された「取得時刻」の何れでもないが、この「取得時刻」のうち、時刻（ｔ−ｄ）に隣接している時刻がｔａ、ｔｂであった場合（ｔａ＜ｔ−ｄ＜ｔｂ）、ＣＰＵ１１０１は先ず、取得時刻ｔａとセットにして外部記憶装置１１０５に保存されている「磁気レシーバ１０５から得た位置姿勢」と取得時刻ｔｂとセットにして外部記憶装置１１０５に保存されている「磁気レシーバ１０５から得た位置姿勢」とを用いて、時刻（ｔ−ｄ）における「磁気レシーバ１０５から得た位置姿勢」を補間生成する。位置姿勢の補間生成処理については後述する。
【００８６】
そして取得時刻ｔａ（もしくはｔｂ）とセットにして外部記憶装置１１０５に保存されている現実物体１１０の位置姿勢に仮想物体１１１を配置し、その後、補間生成された位置姿勢に上記バイアスデータを加えることで得られる位置姿勢の視点から見える仮想空間の画像を生成することで、ステップＳ６０３における処理は成される。なお、この場合、現実物体１１０の位置姿勢は時刻に関係なく一定であるので、この位置姿勢に関する補間生成処理は必要はないが、一定でない場合には同様にして補間生成する必要がある。
【００８７】
以上のように、時刻（ｔ−ｄ）における位置姿勢から見える仮想空間の画像がＲＡＭ１１０２上に描画される。
【００８８】
以上の処理において、位置情報を補間するには、典型的に位置情報として計測される、ｘ、ｙ、ｚの座標値のそれぞれを計測時刻をパラメータとして線形補間すればよい。姿勢情報に関してはアジマス、エレベーション、ロールで表されるオイラー角表現がよく使われるが、オイラー角表現では一般に補間ができない事が知られている。補間を行うには、姿勢情報をクォータニオンに変換し、クォータニオンのそれぞれの要素を補間する事で姿勢の補間が可能である。
【００８９】
またクォータニオンを四次元のベクトルとして扱い、そのベクトルを四次元の超球面上で球面線形補間することで、より正確な補間を行う事ができる。さらに線形補間ではなく、三次補間、スプライン補間を適用して、位置および、姿勢を補間すると、より正確な補間が行える。
【００９０】
そして次に、ステップＳ６０３で生成した仮想空間の画像を先にステップＳ６０２でＲＡＭ１１０２上に描画した現実空間の画像上に重畳して描画する（ステップＳ６０４）。これにより、１フレーム分の複合現実空間の画像（カメラ１０２Ｒから見える複合現実空間の画像、カメラ１０２Ｌから見える複合現実空間の画像）が生成できたことになる。
【００９１】
また、ステップＳ６０４では、生成した複合現実空間の画像を表示装置１０１、表示部１１０６に出力する。
【００９２】
そして次に、時刻ｔを更新するのであるが、例えば、時刻ｔを次の取得時刻となるべく更新する。（ステップＳ６０５）。その場合、磁気レシーバ１０５、１０６による位置姿勢の取得時刻間隔をΔｔとすると、（ｔ＋Δｔ）を新たなｔとして更新する。
【００９３】
そして、次に、予め決められた枚数の複合現実空間の画像が生成できたのかをチェックし（ステップＳ６０６）、できていない場合には処理をステップＳ６０２に戻し、以降の処理を繰り返す。
【００９４】
よって、所定枚数の複合現実空間の画像が生成された場合、それらは、時刻ｔ（ｔ＝ｔ１，ｔ２，，，Ｔ）における現実空間の画像上に、時刻（ｔ−ｄ）における位置姿勢に基づく視点から見える仮想空間の画像を重畳させた画像群が表示装置１０１、表示部１１０６に表示されていることになる。
【００９５】
図７は、上記ずれ量を入力するためのユーザインターフェースを備え、生成された複数枚（同図では４枚）の複合現実空間を一覧表示する為の領域を有するＧＵＩの表示例を示す図である。
【００９６】
図７（ａ）では、ステップＳ６０１で以下説明するユーザインターフェースを用いてずれ量としてｄ＝１０ｍｓを入力した場合に生成される複合現実空間の画像群を表示したＧＵＩの表示例を示している。７０１はＧＵＩのウィンドウを示しており、ウィンドウ７０１内には、生成順に左から右に複合現実空間の画像が表示されている。なお、この複合現実空間画像は、カメラ１０２Ｒから見えるものであっても良いし、カメラ１０２Ｌから見えるものであっても良い。
【００９７】
７１１は、ずれ量を入力するためのスライダバーで、例えば右側に移動させるほどずれ量を大きく設定し、左側に移動させるほどずれ量を小さく設定する、というような操作を行うことができる。
【００９８】
７１２は、数値としてずれ量を入力するためのテキストボックスで、ここに数値を入力することで、入力した数値をずれ量として設定することができる。
【００９９】
よって、上記ステップＳ６０１では、このようなスライダバー７１１，若しくはテキストボックス７１２というユーザインターフェースを用いて入力された値をずれ量として設定する処理を行う。なお、本コンピュータ１０３の操作者がずれ量を入力する為のユーザインターフェースについてはこれに限定するものではなく、様々なものが考えられる。
【０１００】
しかし、ずれ量ｄ＝１０ｍｓでは、図７（ａ）に示す如く、ずれ量が足りないために現実物体１１０と仮想物体１１１とは一致していない。
【０１０１】
図７（ｂ）では、ステップＳ６０１で上記ユーザインターフェースを用いてずれ量としてｄ＝１５ｍｓを入力した場合に生成される複合現実空間の画像群を表示したＧＵＩの表示例を示している。しかし、ずれ量ｄ＝１５ｍｓでは、図７（ｂ）に示す如く、ずれ量が足りないために現実物体１１０と仮想物体１１１とは一致していない。
【０１０２】
図７（ｃ）では、ステップＳ６０１で上記ユーザインターフェースを用いてずれ量としてｄ＝２０ｍｓを入力した場合に生成される複合現実空間の画像群を表示したＧＵＩの表示例を示している。この場合、図７（ｃ）に示す如く、現実物体１１０と仮想物体１１１とは略一致しており、ずれ量ｄ＝２０ｍｓは適当な値といえる。これは即ち、上記タイムラグが２０ｍｓであることを意味している。
【０１０３】
よって、本コンピュータ１０３の操作者は、このようなＧＵＩに表示される複合現実空間画像を見ながら現実物体１１０と仮想物体１１１とが一致するように、ずれ量を調節して入力する。これにより、仮想物体１１１と現実物体１１０とが一致するようなずれ量を視覚的に判断して調節し、入力することができる。
【０１０４】
図６に戻って、次に、操作者が仮想物体１１１と現実物体１１０とが一致したと判断した場合には操作部１１０４を操作して、現在設定しているずれ量を外部記憶装置１１０５に記録する旨の指示を入力する。ＣＰＵ１１００はこの指示を検知しない限りは処理をステップＳ６０７を介してステップＳ６０１に戻し、新たにずれ量の入力を促すのであるが、この指示を検知した場合には処理をステップＳ６０７を介してステップＳ６０８に進め、現在設定されているずれ量ｄを「遅れ時間ｘ」として外部記憶装置１１０５に保存する処理を行う（ステップＳ６０８）。
【０１０５】
以上の処理によって、上記タイムラグを取得することができる。
【０１０６】
次に、取得したタイムラグを用いて、ＨＭＤ１００の位置姿勢が変化しても、複合現実空間の画像上で現実物体１１０と仮想物体１１１とが一致するような複合現実空間の画像を生成する処理について、同処理のフローチャートを示す図８を用いて説明する。なお、同図において、図２と同じ処理ステップについては同じステップ番号を付けており、その説明は省略する。
【０１０７】
なお、同図のフローチャートに従った処理をＣＰＵ１１０１に実行させるためのプログラムやデータは外部記憶装置１１０５からＲＡＭ１１０２にロードされており、これを用いてＣＰＵ１１０１が処理を行うことで、コンピュータ１０３は以下説明する処理を実行することになる。
【０１０８】
ステップＳ８０１では、磁気レシーバ１０５が計測した「自身のセンサ座標系における位置姿勢」、磁気レシーバ１０６が計測した「自身のセンサ座標系における位置姿勢」がＩ／Ｆ１１０７を介してＲＡＭ１１０２に入力されるのであるが、これを少なくとも上記処理で求めたタイムラグｘぶんだけ前のものまでをＲＡＭ１１０２上に記録しておき、現在時刻よりもｘだけ前のものをステップＳ２０５で用いるものとして取得する。
【０１０９】
これにより、ステップＳ２０５では現在時刻ｔよりもタイムラグｘの分だけ前の位置姿勢を用いて仮想空間の画像を生成することができ、上記タイムラグに起因して生ずる、複合現実空間の画像上における現実物体１１０と仮想物体１１１とのずれを軽減することができる。
【０１１０】
なお本実施形態では、ステップＳ６０２における処理を行うための時刻ｔの設定はコンピュータ１０３の操作者が操作部１１０４を用いて入力していたが、これに限定するものではなく、コンピュータ１０３側で決定するようにしても良い。
【０１１１】
例えば、図５に示したフローチャートに従った処理で得られた位置姿勢のデータ群を用いて、平均的な位置姿勢を求め、求めた位置姿勢となる時刻を「時刻ｔ」として設定するようにしても良い。
【０１１２】
また、本実施形態では現実物体１１０に磁気レシーバ１０６を装着していたが、現実物体１１０の位置姿勢を固定する場合には磁気レシーバ１０６を装着せずに、そのセンサ座標系における位置姿勢を予め計測しておいて、これをデータとして外部記憶装置１１０５に保存しておき、これを用いるようにしても良い。
【０１１３】
以上の説明により、本実施形態によって、同じずれ時間で１つまたは複数の複合現実感画像をユーザに対して提示して、ユーザにズレ時間を入力させ、入力したズレ時間に対して複合現実感映像の確認ができるようにした事により、容易に画像とセンサ値の時間ずれの計測を行うことができるという効果がある。
【０１１４】
［第２の実施形態］
第１の実施形態では、図７に示すように、生成した複数の複合現実空間画像を一覧表示していたが、本実施形態では、生成したそれぞれの複合現実空間画像を動画像として表示する。例えば、図７に示したＧＵＩでは、各フレーム（各時刻ｔ）の複合現実空間の画像を並べて表示しているが、本実施形態では、それぞれの画像を同じ位置に順次表示することにより、各フレームの複合現実空間の画像を動画像として表示する。
【０１１５】
そのためには、図６のフローチャートにおいて、ステップＳ６０５では前回複合現実空間の画像を表示した領域に今回生成した複合現実空間の画像を表示する。
【０１１６】
このように、より多くの複合現実空間の画像から総合的に測定者が、ズレ時間の検証を行う事ができる。
【０１１７】
また、静止画の方が評価が行いやすい場合も考えられるため、静止画のモードと動画のモードとを切り替える機能も有効である。
【０１１８】
以上の説明により、本実施形態によって、入力するズレ時間に応じて、複数の複合現実空間の画像を静止画、または動画で提示し、またはそれらを切り替える事によってより容易に、ズレ時間を決定する事ができる。
【０１１９】
［第３の実施形態］
本実施形態では、コンピュータ１０３は複合現実空間の画像を生成して、表示装置１０１や表示部１１０６に出力する処理を行うのであるが、操作者が上記ずれ量を求める処理を行う為のモード（ずれ量計測モード）を設定すると、更に、上記実施形態で説明した図４，５，６のフローチャートに従った処理を実行する。
【０１２０】
図９は、本実施形態に係るコンピュータ１０３が行う処理のフローチャートである。先ず、図２のフローチャートにおいてステップＳ２０１〜ステップＳ２０６の処理を行うことで、複合現実空間の画像を生成して表示装置１０１や表示部１１０６に出力する処理を行う（ステップＳ１１０１）。
【０１２１】
次に、本コンピュータ１０３の操作者から、操作部１１０４を用いて、上記ずれ量計測モードが設定されたか否かを判断する（ステップＳ１１０２）。その結果、ずれ量計測モードが設定されていない場合には処理をステップＳ１１０５に進め、次に、本処理を終了するのか否かを判断する（ステップＳ１１０５）。
【０１２２】
本処理の終了は、例えば、本コンピュータ１０３の操作者が操作部１１０４を用いてその旨の指示を入力するようにしても良いし、予め決まった条件が満たされたことをＣＰＵ１１００が検知した場合に、ＣＰＵ１１００による制御により本処理を終了するようにしても良い。
【０１２３】
いずれにせよ、本処理を終了しない場合には処理をステップＳ１１０１に戻し、以降の処理を行う。
【０１２４】
一方、ステップＳ１１０２における判断処理で、ずれ量計測モードが設定された場合には、処理をステップＳ１１０３に進め、図４，５，６のフローチャートに従った処理を行う（ステップＳ１１０３）。そして、ステップＳ１１０３で外部記憶装置１１０５に記録したずれ量をステップＳ１１０１で使用すべく設定し（ステップＳ１１０６）、処理をステップＳ１１０１に戻す。
【０１２５】
以上の説明により、本実施形態によって、時間ずれが何らかの外的要因で変化した場合の修正を簡易に、素早く行う事ができる。
【０１２６】
［その他の実施形態］
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１２７】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２８】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２９】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１３０】
【図１】現実空間に仮想空間を重畳させた複合現実空間を観察者（ユーザ）に提供する処理を実行する、本発明の第１の実施形態に係るシステムの外観を示す図である。
【図２】複合現実空間の画像を生成し、ＨＭＤ１００に出力するための一連の処理のフローチャートである。
【図３】タイムラグが生ずるが故に発生する、現実物体１１０と仮想物体１１１とのずれを説明する図である。
【図４】ＨＭＤ１００に備わっているカメラ１０２によって撮像された現実空間の画像を取得し、取得した画像を取得時刻と共に外部記憶装置１１０５に保存する処理のフローチャートである。
【図５】ＨＭＤ１００に備わっている磁気レシーバ１０５によって計測されたＨＭＤ１００の位置姿勢、磁気レシーバ１０６によって計測された現実物体１１０の位置姿勢を取得し、取得した位置姿勢を取得時刻と共に外部記憶装置１１０５に保存する処理のフローチャートである。
【図６】タイムラグを求める処理のフローチャートである。
【図７】ずれ量を入力するためのユーザインターフェースを備え、生成された複数枚（同図では４枚）の複合現実空間を一覧表示する為の領域を有するＧＵＩの表示例を示す図である。
【図８】取得したタイムラグを用いて、ＨＭＤ１００の位置姿勢が変化しても、複合現実空間の画像上で現実物体１１０と仮想物体１１１とが一致するような複合現実空間の画像を生成する処理のフローチャートである。
【図９】本発明の第３の実施形態に係るコンピュータ１０３が行う処理のフローチャートである。
【図１０】コンピュータ１０３のハードウェア構成を示す図である。
【図１】
2006285789.tif 000003
【図２】
2006285789.tif 000004
【図３】
2006285789.tif 000005
【図４】
2006285789.tif 000006
【図５】
2006285789.tif 000007
【図６】
2006285789.tif 000008
【図７】
2006285789.tif 000009
【図８】
2006285789.tif 000010
【図９】
2006285789.tif 000011
【図１０】
2006285789.tif 000012