(57)【要約】【課題】  現実空間画像と仮想空間画像との整合が取れている合成画像を、より簡便に生成する為の技術を提供すること。【解決手段】  画像処理パラメータを用いて、現実空間画像に対して画像処理を施す（Ｓ４０６）。画像処理パラメータから仮想カメラのカメラパラメータを求める（Ｓ４０７）。撮像装置の位置姿勢情報が示す位置姿勢に、カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する（Ｓ４０８）。画像処理が施された現実空間画像と、生成した仮想空間画像とを合成することで合成画像を生成し、出力する（Ｓ４０９）。【選択図】  図４
2008146497.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置から現実空間画像を取得する第１の取得手段と、
画像処理パラメータを用いて、前記第１の取得手段が取得した現実空間画像に対して画像処理を施す画像処理手段と、
前記撮像装置の位置姿勢情報を取得する第２の取得手段と、
前記画像処理パラメータから、仮想空間中に設定する仮想カメラのカメラパラメータを求める計算手段と、
前記第２の取得手段が取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成手段と、
前記画像処理手段により画像処理が施された現実空間画像と、前記生成手段が生成した仮想空間画像とを合成することで合成画像を生成する合成手段と、
前記合成手段により生成された合成画像を出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記画像処理パラメータは、前記第１の取得手段が取得する現実空間画像に対する回転量、スケーリング量、シフト量を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記計算手段は、前記画像処理パラメータに含まれている回転の量の分だけ、当該回転の方向とは逆の方向に前記仮想カメラの光軸を中心とする前記仮想カメラの回転を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記計算手段は、前記画像処理パラメータに含まれているシフト量の分だけ移動した前記撮像装置の主点位置を注視するように、前記仮想カメラの主点位置を変更することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記計算手段は、前記画像処理パラメータに含まれているスケーリングの量に応じて前記仮想カメラの焦点距離を変更することを特徴とする請求項２に記載の画像処理装置。
【請求項６】
撮像装置から現実空間画像を取得する第１の取得手段と、
前記撮像装置の位置姿勢情報を取得する第２の取得手段と、
仮想空間中に設定する仮想カメラのカメラパラメータに基づいて、前記現実空間画像に対する画像処理パラメータを求める計算手段と、
前記計算手段が計算した画像処理パラメータを用いて、前記第１の取得手段が取得した現実空間画像に対して画像処理を施す画像処理手段と、
前記第２の取得手段が取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成手段と、
前記画像処理手段により画像処理が施された現実空間画像と、前記生成手段が生成した仮想空間画像とを合成することで合成画像を生成する合成手段と、
前記合成手段により生成された合成画像を出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項７】
撮像装置から現実空間画像を取得する第１の取得工程と、
画像処理パラメータを用いて、前記第１の取得工程で取得した現実空間画像に対して画像処理を施す画像処理工程と、
前記撮像装置の位置姿勢情報を取得する第２の取得工程と、
前記画像処理パラメータから、仮想空間中に設定する仮想カメラのカメラパラメータを求める計算工程と、
前記第２の取得工程で取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成工程と、
前記画像処理工程で画像処理が施された現実空間画像と、前記生成工程で生成した仮想空間画像とを合成することで合成画像を生成する合成工程と、
前記合成工程で生成された合成画像を出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項８】
撮像装置から現実空間画像を取得する第１の取得工程と、
前記撮像装置の位置姿勢情報を取得する第２の取得工程と、
仮想空間中に設定する仮想カメラのカメラパラメータに基づいて、前記現実空間画像に対する画像処理パラメータを求める計算工程と、
前記計算工程で計算した画像処理パラメータを用いて、前記第１の取得工程で取得した現実空間画像に対して画像処理を施す画像処理工程と、
前記第２の取得工程で取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成工程と、
前記画像処理工程で画像処理が施された現実空間画像と、前記生成工程で生成した仮想空間画像とを合成することで合成画像を生成する合成工程と、
前記合成工程で生成された合成画像を出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項９】
コンピュータに読み込ませて実行させることで、当該コンピュータを請求項１乃至６の何れか１項に記載の画像処理装置として機能させる為のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間画像と仮想空間画像とを合成して提供するための技術に関するものである。
【背景技術】
【０００２】
複合現実感システムでは、操作者の視点位置と視線方向、及び空間中にある物体の位置を計測する必要がある。位置や姿勢の計測には、米国Polhemus社製FASTRAK（商標）に代表されるような位置姿勢計測装置を使うのが一般的な手法の一つである。また、ジャイロ等で姿勢のみを計測し、位置情報および、姿勢のドリフト誤差を画像から計測する方法も用いられている。
【０００３】
図１は、一般的な複合現実感システムの構成例を示す図である。図２は、図１に示したＰＣ（パーソナルコンピュータ）１０３が行う処理のフローチャートである。以下、図１，２を用いて、図１に示したシステムの動作について説明する。なお、以下の説明では、現実物体１１０を模した仮想物体１１１を、現実物体１１０に重畳する。これにより、現実物体１１０の色や表面の柄などを変えてユーザに見せることができる。このような機能は、形のみを再現したモックアップに想画像としてさまざまなデザインを適用し、デザインを検証する用途などで用いられる。
【０００４】
ＨＭＤ１０１にはビデオカメラ１０２が取り付けられており、ビデオカメラ１０２は、自身が向いている方向の現実空間の動画像を撮像する。従ってステップＳ２０１では、このビデオカメラ１０２から順次送出される各フレームの撮像画像（現実空間画像）のデータを受信する。なお、現実空間中にはマーカ１０７が配されており、ビデオカメラ１０２はこのマーカ１０７を含む現実空間を撮像するものとする。
【０００５】
一方、固定センサ１０６、センサ本体１０４、レシーバ１０５が、磁気センサシステムである場合、固定センサ１０６は、センサ本体１０４による制御に従って磁界を発生させる。レシーバ１０５は、自身の位置姿勢に応じた磁界の変化を計測し、その計測結果をセンサ本体１０４に送出する。センサ本体１０４は、この計測結果に基づいて、センサ座標系におけるレシーバ１０５の位置姿勢情報を求める。そして求めた位置姿勢情報をＰＣ１０３に送出する。従ってステップＳ２０２では、センサ本体１０４から送出された位置姿勢情報を受信する。なお、センサ座標系とは、固定センサ１０６の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。また、本ステップにおける処理は、センサシステムがどのような形態ものであっても同じである。
【０００６】
次にステップＳ２０３では、ステップＳ２０１で取得した撮像画像中におけるマーカ１０７を用いて、ステップＳ２０２で取得した位置姿勢情報を補正する。
【０００７】
本ステップは、センサ本体１０４から受けた位置姿勢情報が十分に正確なものである場合には省略しても良い。しかし、一般に多く用いられているセンサシステムでは周囲の環境により計測誤差が発生するので、ステップＳ２０３における処理は一般に行われるものである。また、センサシステムが姿勢のみしか計測できない場合、また姿勢にも長時間の計測により姿勢ずれが生じる場合などは、位置の計測を撮像画像を用いて行ったり、姿勢ずれを画像を用いて補正するといった事が行われる。
【０００８】
ステップＳ２０４では、ステップＳ２０１で取得した撮像画像のデータに基づいて、現実空間画像をメモリ上に描画する。
【０００９】
ステップＳ２０５では先ず、現実空間中における現実物体１１０の位置姿勢は予め測定されているので、係る位置姿勢に仮想物体１１１を配置する。そして、ステップＳ２０３で補正した位置姿勢情報が示す位置姿勢を有する視点から見える仮想空間の画像（仮想空間画像）を、メモリ上に描画する。その際、メモリに先に描画した現実空間画像上に重ねて描画する。これにより、メモリ上には、現実空間画像と仮想空間画像との合成画像が描画されていることになる。
【００１０】
そしてステップＳ２０６では、この合成画像のデータをＨＭＤ１０１が有する不図示の表示装置に対して出力する。
【００１１】
以上説明したステップＳ２０１からステップＳ２０６における処理が、１フレーム分の合成画像に対する処理であるので、係る処理を複数回行うことで、複数フレーム分の合成画像をＨＭＤ１０１に送出することになる。
【００１２】
従って、ステップＳ２０７において処理終了の指示を検知しない限りは、処理はステップＳ２０７を介してステップＳ２０１に戻り、次のフレームについて以降の処理を繰り返すことになる。
【００１３】
以上の処理により、ビデオカメラ１０２から見える現実空間画像と仮想空間画像とを合成した合成画像を、ＨＭＤ１０１が有する不図示の表示装置に対して提示することができる。しかし、ビデオカメラ１０２の視点の位置姿勢と、ＨＭＤ１０１を頭部に装着するユーザの視点の位置姿勢とを一致させることは困難であるので、仮想空間画像と現実空間画像との合成画像を観察するユーザは、この合成に違和感を覚えてしまうことがある。
【００１４】
また、ＨＭＤ１０１のわずかな製造誤差、体験する個人の眼間距離の違いなどによって、人が感じるスケール感や、立体感には違和感が生じてしまう。
【００１５】
そこで、現実空間画像および仮想空間画像をスケール、シフト、回転させる、もしくは合成後の画像をスケール、シフト、回転させるなどの処理が従来行われてきた。
【００１６】
図３は、現実空間画像と仮想空間画像との合成画像に対する違和感を軽減させることを考慮した、合成画像提示処理のフローチャートである。係る処理は、ＰＣ１０３が行う。
【００１７】
先ずステップＳ３０１では、現実空間画像のスケール量、回転量、シフト量、及び仮想空間中における視点（仮想カメラ）の画角量、光軸中心の回転量、主点位置、合成画像のスケール量、回転量、シフト量といった各調整値を取得する。
【００１８】
ステップＳ３０２〜ステップＳ３０５における処理はそれぞれ、ステップＳ２０１〜Ｓ２０４の各ステップにおける処理を同じである。
【００１９】
ステップＳ３０６では、ステップＳ３０５で描画した現実空間画像に対して、ステップＳ３０１で取得した「現実空間画像のスケール量、回転量、シフト量」に応じたスケール、回転、シフトを行う。
【００２０】
次に、ステップＳ３０７では、仮想カメラの画角、光軸中心の回転、主点位置の調整を、ステップＳ３０１で取得した「仮想カメラの画角量、光軸中心の回転量、主点位置」に基づいて行う。
【００２１】
ステップＳ３０８では、ステップＳ３０７で調整された仮想カメラから見える仮想空間の画像を、ステップＳ３０６で調整された現実空間画像上に描画する。
【００２２】
そしてステップＳ３０９では、ステップＳ３０８で生成した合成画像に対する調整を、ステップＳ３０１で取得した「合成画像のスケール量、回転量、シフト量」に基づいて行う。このような処理により、立体感、スケール感、回転ズレなどの画像調整が可能になる。なお、ステップＳ３０９における調整処理は、ステップＳ３０６やステップＳ３０７のように、それぞれの調整値の整合性を取る必要はなく、現実空間画像と仮想空間画像とが同時に調整される。
【００２３】
そしてステップＳ３１０では、このように調整された合成画像をＨＭＤ１０１が有する不図示の表示装置に対して出力する。そして、処理終了指示が入力されない限りは処理をステップＳ３１０を介してステップＳ３０１に戻し、以降の処理を繰り返す。
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、ステップＳ３０６で行う調整とステップＳ３０７で行う調整は、それぞれ一方を変更するともう一方を同時に変更しなければならないという問題があった。
【００２５】
また、現実空間画像に関しては、ステップＳ３０６とステップＳ３０９とで２度調整されるので、画質が劣化してしまうという問題があった。また仮想空間画像に関しても同様に、ステップＳ３０９における調整で画質の劣化が生じてしまうという問題があった。
【００２６】
さらに上記でも述べたように従来の方法では、現実空間画像と仮想空間画像のそれぞれに対して整合性を取るという利用者の操作が必要になるという課題があった。また合成画像に対して調整処理を行う場合には、現実空間画像、仮想空間画像に対して行われた調整処理の結果に対して再度調整処理を行うため、画質の劣化がさらに大きくなるという課題があった。またコンピュータで調整処理する事による負荷の増大やパフォーマンスの低下という課題があった。
【００２７】
本発明は以上の問題に鑑みてなされたものであり、現実空間画像と仮想空間画像との整合が取れている合成画像を、より簡便に生成する為の技術を提供することを目的とする。
【課題を解決するための手段】
【００２８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００２９】
即ち、撮像装置から現実空間画像を取得する第１の取得手段と、
画像処理パラメータを用いて、前記第１の取得手段が取得した現実空間画像に対して画像処理を施す画像処理手段と、
前記撮像装置の位置姿勢情報を取得する第２の取得手段と、
前記画像処理パラメータから、仮想空間中に設定する仮想カメラのカメラパラメータを求める計算手段と、
前記第２の取得手段が取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成手段と、
前記画像処理手段により画像処理が施された現実空間画像と、前記生成手段が生成した仮想空間画像とを合成することで合成画像を生成する合成手段と、
前記合成手段により生成された合成画像を出力する出力手段と
を備えることを特徴とする。
【００３０】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００３１】
即ち、撮像装置から現実空間画像を取得する第１の取得手段と、
前記撮像装置の位置姿勢情報を取得する第２の取得手段と、
仮想空間中に設定する仮想カメラのカメラパラメータに基づいて、前記現実空間画像に対する画像処理パラメータを求める計算手段と、
前記計算手段が計算した画像処理パラメータを用いて、前記第１の取得手段が取得した現実空間画像に対して画像処理を施す画像処理手段と、
前記第２の取得手段が取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成手段と、
前記画像処理手段により画像処理が施された現実空間画像と、前記生成手段が生成した仮想空間画像とを合成することで合成画像を生成する合成手段と、
前記合成手段により生成された合成画像を出力する出力手段と
を備えることを特徴とする。
【００３２】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００３３】
即ち、撮像装置から現実空間画像を取得する第１の取得工程と、
画像処理パラメータを用いて、前記第１の取得工程で取得した現実空間画像に対して画像処理を施す画像処理工程と、
前記撮像装置の位置姿勢情報を取得する第２の取得工程と、
前記画像処理パラメータから、仮想空間中に設定する仮想カメラのカメラパラメータを求める計算工程と、
前記第２の取得工程で取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成工程と、
前記画像処理工程で画像処理が施された現実空間画像と、前記生成工程で生成した仮想空間画像とを合成することで合成画像を生成する合成工程と、
前記合成工程で生成された合成画像を出力する出力工程と
を備えることを特徴とする。
【００３４】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００３５】
即ち、撮像装置から現実空間画像を取得する第１の取得工程と、
前記撮像装置の位置姿勢情報を取得する第２の取得工程と、
仮想空間中に設定する仮想カメラのカメラパラメータに基づいて、前記現実空間画像に対する画像処理パラメータを求める計算工程と、
前記計算工程で計算した画像処理パラメータを用いて、前記第１の取得工程で取得した現実空間画像に対して画像処理を施す画像処理工程と、
前記第２の取得工程で取得した位置姿勢情報が示す位置姿勢に、前記カメラパラメータに基づいた仮想カメラを設定し、設定した仮想カメラから見える仮想空間画像を生成する生成工程と、
前記画像処理工程で画像処理が施された現実空間画像と、前記生成工程で生成した仮想空間画像とを合成することで合成画像を生成する合成工程と、
前記合成工程で生成された合成画像を出力する出力工程と
を備えることを特徴とする。
【発明の効果】
【００３６】
本発明の構成によれば、現実空間画像と仮想空間画像との整合が取れている合成画像を、より簡便に生成することができる。
【発明を実施するための最良の形態】
【００３７】
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【００３８】
なお、各実施形態についての説明の前に、本発明の趣旨について説明する。
【００３９】
本実施形態を要約すると、以下のようになる。
【００４０】
・  入力された画像処理パラメータを用いて現実空間画像に対する画像処理を行う
・  上記画像処理用パラメータを、仮想空間画像を作成するための仮想空間画像作成用パラメータに変換する
・  変換された仮想空間画像作成用パラメータを用いて仮想空間画像を作成する
・  画像処理済みの現実空間画像と、作成された仮想空間画像とを合成する
画像処理パラメータとしては、画像の拡大・縮小量を示すスケーリング量、画像の回転量、画像がステレオ画像である場合にはステレオ画像間の眼間距離等である。
【００４１】
また逆に、仮想空間画像作成用パラメータが与えられた場合には、以下のような処理を行う。
【００４２】
・  入力された仮想空間画像作成用パラメータから、現実空間画像に対する画像処理パラメータを算出する
・  算出した画像処理パラメータを用いて現実空間画像に対する画像処理を行う
・  入力された仮想空間画像作成用パラメータを用いて仮想空間画像を作成する
・  画像処理済みの現実空間画像と、作成された仮想空間画像とを合成する
［第１の実施形態］
本実施形態では、予め前処理として、現実空間画像を取得した撮像装置のカメラパラメータが求められているものとする。ここでのカメラパラメータとは、撮像装置の主点位置、焦点距離のことである。主点位置とは、撮像装置が撮像した画像上において撮像装置が注視している位置のことである。焦点距離は物理的意味としては画角と同等である。撮像装置のカメラパラメータを求める方法は、例えば、「S. Uchiyama, K. Takemoto, K. Satoh, H. Yamamoto, and H. Tamura："MR Platform： A basic body on which mixed reality applications are built," Proc. IEEE／ACM Int'l Symp. on Mixed and Augmented Reality (ISMAR 2002), pp.246-253, 2002.」に開示がある。
【００４３】
また、本実施形態では、カメラパラメータの校正や、センサシステムの校正が完了しているものとする。
【００４４】
また、撮像装置から取得される現実空間画像と、この撮像装置の位置姿勢情報に基づいて生成される仮想空間画像と、の間では、画像内容の幾何的なずれは無いものとする。
【００４５】
図９は、本実施形態に係るシステムの構成例を示す図である。
【００４６】
９０１はＨＭＤ（ヘッドマウントディスプレイ）で、ユーザの頭部に装着するものである。ＨＭＤ９０１には、ユーザの両目に対応する撮像装置９０２と、不図示の表示装置と、レシーバ９０５とが取り付けられている。
【００４７】
撮像装置９０２は、現実物体９１０、マーカ９０７が配されている現実空間の動画像を撮像するものである。撮像した各フレームの画像（現実空間画像）は、ＰＣ９０３に入力される。なお、以下では、撮像装置９０２の撮像視点を、ユーザの視点として扱う。
【００４８】
レシーバ９０５は、センサ本体９０４により駆動制御される固定センサ９０６が発する磁界中における、自身の位置姿勢に応じた磁界の変化を計測する。係る計測の結果は、センサ本体９０４に入力される。センサ本体９０４は、レシーバ９０５から受けた計測結果に基づいて、センサ座標系におけるレシーバ９０５の位置姿勢情報を求める。そして求めた位置姿勢情報をＰＣ９０３に出力する。
【００４９】
ここでのセンサ座標系とは、固定センサ９０６の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系のことである。本実施形態では説明を簡単にするために、世界座標系とセンサ座標系とは一致しているものとして説明する。しかし、世界座標系とセンサ座標系とが異なっていても、互いの位置姿勢関係を予め測定しておけば、センサ座標系における位置姿勢情報を、この位置姿勢関係に基づいて、世界座標系における位置姿勢情報に変換することができる。ここで、世界座標系とは、現実空間中の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系のことである。
【００５０】
このように、センサシステムに磁気センサを適用する場合には、例えば、米国Polhemus社製FASTRAK（商標）に代表されるようなものを用いることが可能である。しかし、光学式センサや超音波センサなど、他のセンサシステムを用いても良い。また、ジャイロ等で姿勢のみを計測し、位置情報および、姿勢のドリフト誤差を撮像装置９０２からの現実空間画像から計測するようにしても良い。即ち、ＨＭＤ９０１上のある１点の位置姿勢を取得するための方法については特に限定するものではない。
【００５１】
本実施形態では、固定センサ９０６、センサ本体９０４、レシーバ９０５でもってセンサシステムを構成している。
【００５２】
図１０は、ＰＣ９０３に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【００５３】
１００１はＣＰＵで、ＲＡＭ１００２やＲＯＭ１００３に格納されているコンピュータプログラムやデータを用いて、ＰＣ９０３全体の制御を行うと共に、ＰＣ９０３が行う後述の各処理を実行する。
【００５４】
１００２はＲＡＭで、外部記憶装置１００６からロードされたコンピュータプログラムやデータを一時的に記憶するためのエリアを有する。またＲＡＭ１００２は、Ｉ／Ｆ（インターフェース）１００７を介してセンサ本体９０４から受信した位置姿勢情報、Ｉ／Ｆ１００８を介して撮像装置９０２から受信した現実空間画像のデータを一時的に記憶するためのエリアも有する。更にＲＡＭ１００２は、ＣＰＵ１００１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ１００２は各種のエリアを適宜提供することができる。
【００５５】
１００３はＲＯＭで、ブートプログラムやＰＣ９０３の設定データなどを格納する。
【００５６】
１００４は操作部で、キーボードやマウスなどにより構成されており、ＰＣ９０３のユーザが操作することで、各種の指示をＣＰＵ１００１に対して入力することができる。
【００５７】
１００５は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１００１による処理結果を画像や文字などでもって表示することができる。
【００５８】
１００６は外部記憶装置で、ハードディスドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１００６には、ＯＳ（オペレーティングシステム）や、ＰＣ９０３が行う後述の各処理をＣＰＵ１００１に実行させるためのコンピュータプログラムやデータが保存されている。また外部記憶装置１００６には、本実施形態において既知のものとして説明する情報についてもこの外部記憶装置１００６に保存されている。また、仮想空間を構成する各仮想物体を描画するためのデータもまた、外部記憶装置１００６に保存されている。
【００５９】
外部記憶装置１００６に保存されているコンピュータプログラムやデータは、ＣＰＵ１００１による制御に従って適宜ＲＡＭ１００２にロードされる。そしてＣＰＵ１００１はこのロードされたコンピュータプログラムやデータを用いて処理を実行する。
【００６０】
Ｉ／Ｆ１００７は、センサ本体９０４をＰＣ９０３に接続するためのインターフェースとして機能するものであり、センサ本体９０４から出力される位置姿勢情報は、このＩ／Ｆ１００７を介してＲＡＭ１００２や外部記憶装置１００６に入力される。
【００６１】
Ｉ／Ｆ１００８は、ＨＭＤ９０１が有する撮像装置９０２、不図示の表示装置をＰＣ９０３に接続するためのものである。撮像装置９０２が撮像した各フレームの撮像画像（現実空間画像）は、このＩ／Ｆ１００８を介して順次外部記憶装置１００６に入力される。また、ＰＣ９０３が生成した合成画像は、画像信号としてＩ／Ｆ１００８を介してＨＭＤ１０１が有する不図示の表示装置に出力される。
【００６２】
１００９は上述の各部を繋ぐバスである。
【００６３】
図４は、ＰＣ９０３が合成画像を生成し、生成した合成画像を画像信号としてＨＭＤ１０１が有する不図示の表示装置に出力する処理のフローチャートである。
【００６４】
なお、図４のフローチャートに従った処理をＣＰＵ１００１に実行させるためのコンピュータプログラムやデータは、外部記憶装置１００６に保存されている。そしてこのコンピュータプログラムやデータはＣＰＵ１００１による制御に従って適宜ＲＡＭ１００２にロードされる。従って、ＣＰＵ１００１はこのロードされたコンピュータプログラムやデータを用いて処理を実行することで、ＰＣ９０３は以下説明する各処理を実行する。
【００６５】
先ず、ステップＳ４０１では、現実空間画像に対する調整値（実写調整値）を、画像処理パラメータとして取得する。取得形態については特に限定するものではない。例えば、実写調整値を入力させるためのＧＵＩ（グラフィカルユーザインターフェース）を表示部１００５の表示画面に表示し、ユーザがこの表示画面を見て、操作部１００４を用いて実写調整値を入力するようにしても良い。入力された実写調整値のデータは、ＲＡＭ１００２に一時的に記憶される。また、実写調整値を予め作成しておき、データとして外部記憶装置１００６に保存しておいても良い。この場合、ステップＳ４０１でユーザからの指示を検知すると、この実写調整値のデータをＲＡＭ１００２にロードする。
【００６６】
ここで、実写調整値とは、現実空間画像に対する拡大／縮小量、現実空間画像の回転量、現実空間画像のシフト量、のそれぞれである。即ち、ステップＳ４０１では、この３つの要素についての実写調整値を取得する。
【００６７】
次にステップＳ４０２では、撮像装置９０２から１フレーム分の現実空間画像をＩ／Ｆ１００８を介して受信すると、これを外部記憶装置１００６に取得する。
【００６８】
次にステップＳ４０３では、固定センサ９０６、センサ本体９０４、レシーバ９０５により得られるレシーバ９０５の位置姿勢情報をＩ／Ｆ１００７を介して受信し、受信した位置姿勢情報を外部記憶装置１００６に保存する。
【００６９】
次にステップＳ４０４では、ステップＳ４０２で取得した現実空間画像中におけるマーカ９０７を用いて、ステップＳ４０３で取得した位置姿勢情報を補正する。
【００７０】
本ステップは、センサ本体９０４から受けた位置姿勢情報が十分に正確なものである場合には省略しても良い。しかし、一般に多く用いられているセンサシステムでは周囲の環境により計測誤差が発生するので、ステップＳ４０４における処理は一般に行われるものである。また、センサシステムが姿勢のみしか計測できない場合、また姿勢にも長時間の計測により姿勢ずれが生じる場合などは、位置の計測を撮像画像を用いて行ったり、姿勢ずれを画像を用いて補正するといった事が行われる。
【００７１】
次にステップＳ４０５では、ステップＳ４０２で取得した現実空間画像をＲＡＭ１００２上に描画する。
【００７２】
そして、ステップＳ４０６では、この描画した現実空間画像に対して、ステップＳ４０１で取得した各実写調整値に基づいた画像処理を施し、画像処理済みの現実空間画像を得る。ここで、実写調整値とは上述の通り、現実空間画像に対する拡大／縮小量、現実空間画像の回転量、現実空間画像のシフト量、のそれぞれであるので、ステップＳ４０５で描画した現実空間画像に対して、実写調整値に基づいた拡大／縮小、回転、シフトを行う。
【００７３】
ここで、現実空間画像に対して拡大／縮小、回転を行う場合には、この現実空間画像と合成する為の仮想空間画像を生成する際に用いる仮想カメラの位置に影響を与えないようにすることが必要である。従って、現実空間画像中における撮像装置９０２の注目点（上記主点位置）を中心に、現実空間画像の拡大／縮小、回転を行う。
【００７４】
なお、本実施形態では、１枚分の現実空間画像を描画した後に、この描画した現実空間画像に対して、拡大／縮小、回転、シフトなどの画像処理を施している。しかしＣＰＵ１００１等の処理能力によっては、係る画像処理を行いながら現実空間画像を描画しても良い。
【００７５】
次に、ステップＳ４０７では、仮想空間画像を生成するために仮想空間中に設定する仮想カメラについてのカメラパラメータを確定（計算）する。より詳しくは、現実空間画像に対する拡大／縮小を仮想カメラの焦点距離（もしくは画角）に対応付け、現実空間画像の回転を仮想カメラの光軸を中心とする仮想カメラの回転に対応付け、現実空間画像のシフトを仮想カメラの主点位置の移動に対応づける。そして、ステップＳ４０６で行った拡大／縮小、回転、シフトに応じて、それぞれに対応付けられた仮想カメラの画角、回転、主点位置についての変更処理を行うことでカメラパラメータを計算する。本ステップにおける処理の詳細については後述する。
【００７６】
ステップＳ４０８では先ず、現実空間中における現実物体９１０の位置姿勢は予め測定されているので、係る位置姿勢に仮想物体９１１を配置する。そして、ステップＳ４０４で補正した位置姿勢情報が示す位置姿勢に、ステップＳ４０７で求めたカメラパラメータに基づいた仮想カメラを設定する。そして、この設定した仮想カメラから見える仮想空間画像を、メモリ上に描画する。その際、メモリに先に描画した現実空間画像上に重ねて描画する。これにより、メモリ上には、現実空間画像と仮想空間画像との合成画像が描画されていることになる。
【００７７】
次にステップＳ４０９では、この合成画像を画像信号としてＩ／Ｆ１００８を介してＨＭＤ１０１が有する不図示の表示装置に対して出力する。
【００７８】
以上説明したステップＳ４０２〜ステップＳ４０９における処理が、１フレーム分の合成画像に対する処理であるので、係る処理を複数回行うことで、複数フレーム分の合成画像をＨＭＤ１０１に送出することになる。
【００７９】
次にステップＳ４１０では、本処理の終了指示が操作部１００４から入力されたか、若しくは本処理の終了条件が満たされたかをチェックする。係るチェックの結果、本処理の終了指示が操作部１００４から入力された、若しくは本処理の終了条件が満たされた場合には本処理を終了する。一方、本処理の終了指示が操作部１００４から入力されていないし、本処理の終了条件も満たされていない場合には処理をステップＳ４１０を介してステップＳ４０２に戻し、以降の処理を繰り返す。なお、実写調整値がフレーム毎に異なる場合には、ステップＳ４０２ではなくステップＳ４０１に戻し、フレーム毎の実写調整値を取得する。
【００８０】
次に、図６を用いて、現実空間画像に対するシフト処理と、このシフト処理を行うことによる仮想カメラの主点位置の移動との関係について説明する。図６は、ＨＭＤ１０１が有する不図示の表示装置を上から見た上面図である。
【００８１】
図６において上側が、現実空間画像についてシフト処理を行っていない状態を示している。６０２は現実空間画像である。６０１は撮像装置９０２の現実空間画像６０２上における主点位置である。係る主点位置６０１は上述の通り、予め校正処理でもって得られたものである。ここで、現実空間画像６０２に対して何も処理を行っていない場合には、図６の上部に示す如く、現実空間画像６０２上における主点位置と投影面６０３上における主点位置とは６０１で指し示す位置で一致している。
【００８２】
ここで、図６の下部に示す如く、現実空間画像６０２を投影面６０３に対して左側にシフトさせたとする。この場合、現実空間画像６０２上における主点位置は６０４で示す位置となり、元々の主点位置６０１とは異なる。従って、仮想カメラの主点位置も現実空間画像における主点位置６０４と一致させるべく、移動させる必要がある。そして、この主点位置の移動を元に、仮想カメラのカメラパラメータを確定する。主点位置の移動とは、例えばOpenGLであればフラスタム（角錐台）の頂点の平行移動として表現される。
【００８３】
次に、図７を用いて、現実空間画像に対する回転処理と、この回転処理を行うことによる仮想カメラの光軸を中心とする回転との関係について説明する。図７は、ＨＭＤ１０１が有する不図示の表示装置の表示面の表示例を示す図である。
【００８４】
７０１は、ステップＳ４０７による仮想カメラのカメラパラメータ確定前のカメラパラメータに基づいた仮想カメラから見える仮想空間画像で、７０３は仮想物体の画像である。７０２は、回転後の現実空間画像を示している。
【００８５】
この場合、仮想カメラの光軸を中心とした仮想カメラの回転を、現実空間画像の回転量と同じであって、回転方向は逆にして行う。即ち、仮想空間画像７０１を現実空間画像７０２と一致させるべく回転させる。
【００８６】
現実空間画像の回転量と同じだけ（回転方向は現実空間画像とは逆）、仮想カメラの光軸を中心に仮想カメラの姿勢を回転させることで、図７の下部に示す如く、仮想空間画像７０１が同じ角度だけ回転する。これにより、現実空間画像７０２と仮想空間画像７０１とを一致させることができる。
【００８７】
次に図８を用いて、現実空間画像に対する拡大／縮小処理と、この拡大／縮小処理を行うことによる仮想カメラの画角との関係について説明する。図８は、ＨＭＤ１０１が有する不図示の表示装置の表示面の表示例を示す図である。
【００８８】
８０１は、ステップＳ４０７による仮想カメラのカメラパラメータ確定前のカメラパラメータに基づいた仮想カメラから見える仮想空間画像で、８０２は、拡大／縮小処理後の現実空間画像を示している。
【００８９】
この場合、仮想カメラの画角を広げることで、仮想空間画像８０１のサイズを現実空間画像８０２のサイズに一致させる。画角を表すパラメータとしては、画像のドット数を基準とした焦点距離に置き換えて計算する事が可能である。
【００９０】
焦点距離がＸの仮想カメラが撮像した画像をＡ倍に拡大した場合、この撮像装置がこの拡大した画像を撮像画像として得る場合には、この仮想カメラの焦点距離Ｘを焦点距離Ｙ（Ｙ＝Ｘ／Ａ）に変更する必要がある。
【００９１】
図８の下部において８０３は変更前の画角で、８０４は変更後の画角を示す。画角８０３では仮想空間画像８０１の幅しか撮像できないのに対し、画角８０４では現実空間画像８０２の幅を撮像できる。
【００９２】
従って、現実空間画像をＡ倍した場合には、仮想カメラの現在の焦点距離ＸをＡで割った焦点距離Ｙ（＝Ｘ／Ａ）を、改めて仮想カメラの焦点距離として設定する。なお、この焦点距離と基準とした画像のドット数から三角関数を使い、画角を計算する事も可能である。
【００９３】
このように、現実空間画像に対して行ったシフト、拡大／縮小、回転の量に応じて仮想カメラのカメラパラメータを調節するので、この調節後のカメラパラメータに従った仮想カメラにより得られる仮想空間画像は、現実空間画像との整合性が取れたものとなる。
【００９４】
なお、予め正確なカメラパラメータが求まっている事は必須ではない。
【００９５】
以上の説明により、本実施形態によれば、現実空間画像に対する画像処理パラメータを決定することで、この現実空間画像との整合が取れた仮想空間画像を得ることができる。また、係る処理は、１回の回転処理、拡大／縮小処理、シフト処理（場合によっては行わない処理もある）と、カメラパラメータの確定処理という比較的簡便な処理でもって実現するので、パフォーマンスの劣化が生じない。
【００９６】
また上述のように現実空間画像に対する画像処理も一度のみで済むため、画質の劣化を極力抑えることができる。また、パフォーマンスも、合成後に二重に画像処理を行う従来と比べて、向上する。
【００９７】
なお、現実空間画像と仮想空間画像との間での正確な整合を実現するためには、アスペクト比や歪みパラメータも求め、現実空間画像に対する画像処理中で同時に処理する必要がある。従って、より整合性を高めるためにはステップＳ４０６において歪みやアスペックト比の補正を追加すると共に、ステップＳ４０７におけるカメラパラメータの確定にも反映させる必要がある。
【００９８】
［第２の実施形態］
本実施形態では、仮想カメラのカメラパラメータが入力された場合に、このカメラパラメータに基づいて画像処理パラメータを求め、求めた画像処理パラメータを用いて現実空間画像を調節する。これにより、仮想空間画像と現実空間画像とで整合性を取る。
【００９９】
以下では、第１の実施形態と異なる点のみについて説明する。
【０１００】
図５は、ＰＣ９０３が合成画像を生成し、生成した合成画像を画像信号としてＨＭＤ１０１が有する不図示の表示装置に出力する処理のフローチャートである。
【０１０１】
なお、図５のフローチャートに従った処理をＣＰＵ１００１に実行させるためのコンピュータプログラムやデータは、外部記憶装置１００６に保存されている。そしてこのコンピュータプログラムやデータはＣＰＵ１００１による制御に従って適宜ＲＡＭ１００２にロードされる。従って、ＣＰＵ１００１はこのロードされたコンピュータプログラムやデータを用いて処理を実行することで、ＰＣ９０３は以下説明する各処理を実行する。
【０１０２】
ステップＳ５０１では、仮想カメラのカメラパラメータを取得する。取得形態については特に限定するものではない。例えば、仮想カメラのカメラパラメータを入力させるためのＧＵＩを表示部１００５の表示画面に表示し、ユーザがこの表示画面を見て、操作部１００４を用いてカメラパラメータを入力するようにしても良い。入力された仮想カメラのカメラパラメータのデータは、ＲＡＭ１００２に一時的に記憶される。また、仮想カメラのカメラパラメータを予め作成しておき、データとして外部記憶装置１００６に保存しておいても良い。この場合、ステップＳ４０１でユーザからの指示を検知すると、この仮想カメラのカメラパラメータのデータをＲＡＭ１００２にロードする。
【０１０３】
ステップＳ５０２〜ステップＳ５０４の各ステップではそれぞれ、上記ステップＳ４０２〜ステップＳ４０４における処理と同じ処理を行う。
【０１０４】
ステップＳ５０５では、現実空間画像に対する画像処理パラメータを、ステップＳ５０１で入力された仮想カメラのカメラパラメータに基づいて求める。これは、第１の実施形態で説明した、画像処理パラメータから仮想カメラのカメラパラメータを求める処理の逆変換に相当する。
【０１０５】
続いてステップＳ５０６、Ｓ５０７ではそれぞれ、上記ステップＳ４０５，Ｓ４０６と同じ処理を行う。
【０１０６】
続いてステップＳ５０８では、仮想カメラのカメラパラメータを、ステップＳ５０１で取得したカメラパラメータに更新する。そしてステップＳ５０９以降は、上記ステップＳ４０８以降の処理を行う。
【０１０７】
このように、本実施形態によれば、仮想カメラのカメラパラメータを決定することで、この現実空間画像との整合が取れた仮想空間画像を得ることができる。また、係る処理は、１回の回転処理、拡大／縮小処理、シフト処理（場合によっては行わない処理もある）と、カメラパラメータの確定処理という比較的簡便な処理でもって実現するので、パフォーマンスの劣化が生じない。
【０１０８】
［第３の実施形態］
本実施形態では、撮像装置９０２としてステレオカメラを用いる。この場合、仮想カメラについてもステレオカメラに変更することが必要となるので、必然的に仮想カメラのカメラパラメータには、ステレオカメラに固有のパラメータが含まれることになる。ステレオカメラに固有のパラメータとは、例えば、ステレオ画像の眼間距離等がある。従って、これについても上記実施形態と同様に、１つのカメラパラメータの要素として、現実空間画像との整合性が取れるように設定する。
【０１０９】
また、左右別々に調整する事によって、立体視差の調整や、カメラの取り付け誤差の解消も可能である。
【０１１０】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１１１】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１３】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１１４】
【図１】一般的な複合現実感システムの構成例を示す図である。
【図２】図１に示したＰＣ（パーソナルコンピュータ）１０３が行う処理のフローチャートである。
【図３】現実空間画像と仮想空間画像との合成画像に対する違和感を軽減させることを考慮した、合成画像提示処理のフローチャートである。
【図４】ＰＣ９０３が合成画像を生成し、生成した合成画像を画像信号としてＨＭＤ１０１が有する不図示の表示装置に出力する処理のフローチャートである。
【図５】ＰＣ９０３が合成画像を生成し、生成した合成画像を画像信号としてＨＭＤ１０１が有する不図示の表示装置に出力する処理のフローチャートである。
【図６】ＨＭＤ１０１が有する不図示の表示装置を上から見た上面図である。
【図７】ＨＭＤ１０１が有する不図示の表示装置の表示面の表示例を示す図である。
【図８】ＨＭＤ１０１が有する不図示の表示装置の表示面の表示例を示す図である。
【図９】本発明の第１の実施形態に係るシステムの構成例を示す図である。
【図１０】ＰＣ９０３に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【図１】
2008146497.tif 000003
【図２】
2008146497.tif 000004
【図３】
2008146497.tif 000005
【図４】
2008146497.tif 000006
【図５】
2008146497.tif 000007
【図６】
2008146497.tif 000008
【図７】
2008146497.tif 000009
【図８】
2008146497.tif 000010
【図９】
2008146497.tif 000011
【図１０】
2008146497.tif 000012