(57)【要約】      （修正有）【課題】仮想空間画像や現実空間画像の生成タイミングと、これらの画像の合成画像を表示するタイミングとのずれを極力軽減させるための技術を提供する。【解決手段】撮像装置１０１０の位置姿勢情報の計算に要した時間、仮想空間画像の生成に要した時間、現実空間画像の生成に要した時間、仮想空間画像と現実空間画像との合成画像を生成するための全ての処理に要した時間を、取得する。そして、取得したこれらの時間に基づいて、位置姿勢導出部１１２０、画像入力部１１１０、仮想空間画像生成部１１９０、画像合成部１２００の動作順序を決定する。そして、決定した動作順序で位置姿勢導出部１１２０、画像入力部１１１０、仮想空間画像生成部１１９０、画像合成部１２００を動作させる。【選択図】図１
2009048237.tif 000002
【特許請求の範囲】
【請求項１】
頭部装着型表示装置が有する撮像装置の位置姿勢情報を計算する第１の手段と、
前記位置姿勢情報に基づいて仮想空間画像を生成する第２の手段と、
前記撮像装置による撮像結果に基づいて現実空間画像を生成する第３の手段と、
前記仮想空間画像と前記現実空間画像との合成画像を、前記頭部装着型表示装置に対して出力する出力手段と
を備える画像処理装置であって、
前記位置姿勢情報の計算に要した時間を示す時間情報と、前記仮想空間画像の生成に要した時間を示す時間情報と、前記現実空間画像の生成に要した時間を示す時間情報と、前記合成画像を生成するための処理に要した時間を示す時間情報と、を取得し、取得したこれらの時間情報に基づいて、前記第１乃至３の手段の動作順序を決定する決定手段と、
前記決定手段が決定した動作順序で前記第１乃至３の手段を動作させる手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記仮想空間画像の生成に要した時間ｔｖが閾値以上で、且つ前記合成画像を生成するための全ての処理に要した時間に占める前記時間ｔｖの割合が閾値以上である場合には、前記第１乃至３の手段の前記動作順序を、前記第１の手段、前記第２の手段、前記第３の手段、と決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、前記現実空間画像の生成に要した時間ｔｒが閾値以上で、且つ前記合成画像を生成するための全ての処理に要した時間に占める前記時間ｔｒの割合が閾値以上である場合には、前記第１乃至３の手段の前記動作順序を、前記第３の手段、前記第１の手段、前記第２の手段、と決定することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記決定手段は、前記計算に要した時間ｔｐが閾値以上である場合には、前記第１乃至３の手段の前記動作順序を、前記第１の手段、前記第３の手段、前記第２の手段、と決定することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
光学シースルー方式、ビデオシースルー方式の双方の方式を持つ頭部装着型表示装置が前記画像処理装置に接続されている場合、前記決定手段は、頭部装着型表示装置の方式と、前記第１乃至３の手段の動作順序と、を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
光学シースルー方式、ビデオシースルー方式の双方の方式を持つ頭部装着型表示装置が前記画像処理装置に接続されている場合、前記決定手段は、前記現実空間画像の生成に要した時間ｔｒが閾値以上で、且つ前記合成画像を生成するための全ての処理に要した時間に占める前記時間ｔｒの割合が閾値以上である場合には、頭部装着型表示装置を光学シースルー方式に切り替え、前記第３の手段を非動作とし、前記第１の手段、第２の手段の前記動作順序を、前記第１の手段、前記第２の手段、と決定することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
クロマキー合成機能付き頭部装着型表示装置が前記画像処理装置に接続されている場合、前記決定手段は、クロマキー合成機能の動作と、前記第１乃至３の手段の動作順序と、を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
クロマキー合成機能付き頭部装着型表示装置が前記画像処理装置に接続されている場合、前記出力手段は、前記現実空間画像の生成に要した時間ｔｒが閾値以上で、且つ前記合成画像を生成するための全ての処理に要した時間に占める前記時間ｔｒの割合が閾値以上である場合には、前記出力手段は、前記第２の手段が生成した仮想空間画像と、前記第３の手段が生成した現実空間画像と、を前記クロマキー合成機能付き頭部装着型表示装置に対して出力することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
頭部装着型表示装置が有する撮像装置の位置姿勢情報を計算する第１の手段と、
前記位置姿勢情報に基づいて仮想空間画像を生成する第２の手段と、
前記撮像装置による撮像結果に基づいて現実空間画像を生成する第３の手段と、
前記仮想空間画像と前記現実空間画像との合成画像を、前記頭部装着型表示装置に対して出力する出力手段と
を備える画像処理装置が行う画像処理方法であって、
前記位置姿勢情報の計算に要した時間を示す時間情報と、前記仮想空間画像の生成に要した時間を示す時間情報と、前記現実空間画像の生成に要した時間を示す時間情報と、前記合成画像を生成するための処理に要した時間を示す時間情報と、を取得し、取得したこれらの時間情報に基づいて、前記第１乃至３の手段の動作順序を決定する決定工程と、
前記決定工程で決定した動作順序で前記第１乃至３の手段を動作させる工程と
を備えることを特徴とする画像処理方法。
【請求項１０】
コンピュータに請求項９に記載の画像処理方法を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感を提供するための技術に関するものである。
【背景技術】
【０００２】
近年、現実空間と仮想空間との繋ぎ目のない結合を目的とした、複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）に関する研究が盛んに行われている。複合現実感の提示を行う画像表示装置は、例えば次のような構成を有する装置である。即ち、ビデオカメラ等の撮像装置が撮像した現実空間の画像上に、撮像装置の位置及び姿勢に応じて生成した仮想空間の画像（例えばコンピュータグラフィックスにより描画された仮想物体や文字情報等）を重畳描画した画像を表示する装置である。このような装置には、例えば、ＨＭＤ（ヘッドマウントディスプレイ）を用いることができる。
【０００３】
また、係る画像表示装置は、観察者の頭部に装着された光学シースルー型ディスプレイに、観察者の視点の位置及び姿勢に応じて生成した仮想空間の画像を表示する光学シースルー方式によっても実現される。
【０００４】
このような画像表示装置の応用としては、患者の体表面に体内の様子を重畳表示する手術支援や、現実空間に浮遊する仮想の敵と戦う複合現実感ゲーム等がある。この他にも、例えば、市街地を撮像することで得られる現実空間の画像中に含まれる著名な建造物等の名称や案内を仮想空間画像として重畳表示するナビゲーションがある。また、この他にも、例えば、ビルの建設予定地を撮像することで得られる画像中に建設予定のビルのコンピュータグラフィックス映像を重畳表示する景観シミュレーションがある。
【０００５】
複合現実空間内を観察する為には、次のような処理を行う必要がある。即ち、ユーザの視点位置、視線方向等をリアルタイムで計測し、その視点位置、視線方向から現実空間内を観察した映像をビデオカメラ等で取得する。そしてこの取得した映像に対して、ユーザの視点位置、視線方向等から観測した仮想物体（ＣＧ物体）を重畳表示する。
【０００６】
ここで、ユーザの視点位置、視線方向をリアルタイムに計測する為には、磁気方式による位置姿勢センサ等が用いられ、これを撮像装置に取り付けることによって、撮像装置の位置姿勢を検出する。磁気方式の位置姿勢センサとは、磁気発生装置(発信機)と磁気センサ(受信機)との間の相対位置・姿勢を検出するものであり、米国Ｐｏｌｈｅｍｕｓ社の製品ＦＡＳＴＲＡＫ等があげられる。これは特定の領域内で、センサの３次元位置と姿勢をリアルタイムに検出する装置である。この計測した６自由度の計測値を、仮想空間内での仮想カメラの位置および姿勢（カメラ座標系）と結びつけることにより、複合現実空間内を観察することができる。
【０００７】
ところで、視覚刺激を観察しているだけで体験者が動揺病のような症状になってしまうことが知られている。この症状は、映像酔いやＶＲ酔いと呼ばれ、メカニズムは現在明らかにはなっていないものの、視覚的な動きの入力と、平衡感覚系からの動きの入力の不一致が映像酔いの主要な要因とされている。近年、映像酔いのメカニズムを解明する研究（非特許文献１）や、表示する映像として手ぶれ補正加工を行った映像を使用することで映像酔いを防止する研究（非特許文献２）が行われている。
【非特許文献１】木竜．映像酔いで見られた映像の動きベクトルと生体機能との関係．映像情報メディア学会技術報告、Ｖｏｌ．３０、Ｎｏ．５８、２００６．
【非特許文献２】森田．映像が生体に与える影響を防止する技術．映像情報メディア学会技術報告、Ｖｏｌ．３０、Ｎｏ．５８、２００６．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述の映像酔いは、ＨＭＤを装着して複合現実感を体験している時にも発症する症状である。その一因は、複合現実感体験者の身体の動きと複合現実空間画像が表示されるタイミングとの間のズレによって、前庭系と視覚系の時間的矛盾が発生するためと言われている。このタイミングのズレは、例えばビデオシースルー方式の場合、現実空間画像のキャプチャとレンダリング、カメラ座標系の位置及び姿勢の導出、仮想空間画像のレンダリングといった各処理が複合現実空間画像を生成するために必要であることが原因である。
【０００９】
このタイミングのズレをできる限り少なくする為に、これまでにカメラ座標系の位置及び姿勢を導出する為の処理の高速化、仮想空間画像のレンダリングの高速化、を目的とする手法が種々提案されている。しかし、複合現実空間画像を生成する為に必要となる現実空間画像と仮想空間画像との合成方法に関する提案はこれまでになされていない。
【００１０】
本発明は以上の問題に鑑みて成されたものであり、仮想空間画像や現実空間画像の生成タイミングと、これらの画像の合成画像を表示するタイミングとのずれを極力軽減させるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１２】
即ち、頭部装着型表示装置が有する撮像装置の位置姿勢情報を計算する第１の手段と、
前記位置姿勢情報に基づいて仮想空間画像を生成する第２の手段と、
前記撮像装置による撮像結果に基づいて現実空間画像を生成する第３の手段と、
前記仮想空間画像と前記現実空間画像との合成画像を、前記頭部装着型表示装置に対して出力する出力手段と
を備える画像処理装置であって、
前記位置姿勢情報の計算に要した時間を示す時間情報と、前記仮想空間画像の生成に要した時間を示す時間情報と、前記現実空間画像の生成に要した時間を示す時間情報と、前記合成画像を生成するための処理に要した時間を示す時間情報と、を取得し、取得したこれらの時間情報に基づいて、前記第１乃至３の手段の動作順序を決定する決定手段と、
前記決定手段が決定した動作順序で前記第１乃至３の手段を動作させる手段と
を備えることを特徴とする。
【００１３】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１４】
即ち、頭部装着型表示装置が有する撮像装置の位置姿勢情報を計算する第１の手段と、
前記位置姿勢情報に基づいて仮想空間画像を生成する第２の手段と、
前記撮像装置による撮像結果に基づいて現実空間画像を生成する第３の手段と、
前記仮想空間画像と前記現実空間画像との合成画像を、前記頭部装着型表示装置に対して出力する出力手段と
を備える画像処理装置が行う画像処理方法であって、
前記位置姿勢情報の計算に要した時間を示す時間情報と、前記仮想空間画像の生成に要した時間を示す時間情報と、前記現実空間画像の生成に要した時間を示す時間情報と、前記合成画像を生成するための処理に要した時間を示す時間情報と、を取得し、取得したこれらの時間情報に基づいて、前記第１乃至３の手段の動作順序を決定する決定工程と、
前記決定工程で決定した動作順序で前記第１乃至３の手段を動作させる工程と
を備えることを特徴とする。
【発明の効果】
【００１５】
本発明の構成によれば、仮想空間画像や現実空間画像の生成タイミングと、これらの画像の合成画像を表示するタイミングとのずれを極力軽減させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
【００１７】
［第１の実施形態］
図１は、本実施形態に係るシステムの機能構成例を示すブロック図である。図１に示す如く、本実施形態に係るシステムは、画像処理装置１１００と、頭部装着型表示装置の一例としてのＨＭＤ１０００と、で構成されており、画像処理装置１１００とＨＭＤ１０００とは互いにデータ通信が可能なように接続されている。従って、画像処理装置１１００とＨＭＤ１０００との間の接続は、有線、無線の何れであっても構わない。
【００１８】
先ず、ＨＭＤ１０００について説明する。
【００１９】
１０１０はビデオカメラなどの撮像装置であり、現実空間の動画像を撮像するものである。そして撮像装置１０１０は、撮像した動画像を構成する各フレームの画像（現実空間画像）を順次、画像処理装置１１００に対して送出する。撮像装置１０１０はそれぞれ右目用と左目用とが設けられており、それぞれ、ＨＭＤ１０００を頭部に装着した観察者の右目から見える現実空間の動画像、左目から見える現実空間の動画像を撮像する。
【００２０】
１０２０は液晶画面などで構成されている表示装置で、画像処理装置１１００から送出された画像（合成画像、複合現実空間画像）を表示する。表示装置１０２０はそれぞれ右目用と左目用とが設けられており、それぞれは、ＨＭＤ１０００を頭部に装着した観察者の右目、左目の眼前に位置するように、ＨＭＤ１０００に取り付けられている。
【００２１】
次に、画像処理装置１１００について説明する。
【００２２】
画像入力部１１１０は、撮像装置１０１０から送出された右目用の現実空間画像、左目用の現実空間画像を取得する。そして取得したそれぞれの現実空間画像をデータ記憶部１１７０に格納する。
【００２３】
位置姿勢導出部１１２０（第１の手段）は、画像入力部１１１０がデータ記憶部１１７０に格納した現実空間画像を用いて、撮像装置１０１０の位置姿勢情報を計算する。ここで、位置姿勢導出部１１２０の動作についてより詳細に説明する。
【００２４】
撮像装置１０１０が撮像可能な現実空間中には、図１に示す如く、指標Ｑ１〜Ｑ４（以下、基準指標と呼称する）が配されている。各基準指標の世界座標系における配置位置は既知であるものとする。ここで、世界座標系とは、現実空間中の１点を原点として定義し、係る原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。各基準指標の配置位置は、データとしてデータ記憶部１１７０に格納されている。
【００２５】
各基準指標は、ＨＭＤ１０００が動き得る範囲内で常に撮像装置１０１０によって３個以上撮像されているように配されていることが好ましい。図１では、Ｑ１、Ｑ３、Ｑ４が撮像装置１０１０の視野に含まれている状況を示している。なお、現実空間中に配する基準指標の数は、図１に示す如く４に限定するものではなく、３以上であればよい。
【００２６】
また、基準指標は、例えば、それぞれが異なる色を有する円形状のマーカによって構成してもよいし、それぞれが異なるテクスチャ特徴を有する自然特徴等の特徴点によって構成してもよい。また、ある程度の面積を有する四角形の単色領域によって形成されるような、四角形指標を用いることも可能である。即ち、撮像装置１０１０によって撮像された画像上における基準指標の投影像の画像座標が検出可能であって、かついずれの基準指標であるかが何らかの方法で識別可能であれば、基準指標は何れの形態であってもよい。
【００２７】
従って、位置姿勢導出部１１２０は、データ記憶部１１７０に格納されている現実空間画像を取得し、この取得した現実空間画像中における基準指標の画像座標を検出する。そして、この検出した画像座標と、この基準指標の世界座標系における配置位置（データ記憶部１１７０から取得）と、を用いて、撮像装置１０１０の位置姿勢情報を計算する。係る計算処理は、右目用の撮像装置１０１０、左目用の撮像装置１０１０のそれぞれについて行うものとする。なお、画像中の基準指標の画像座標と、この基準指標の世界座標系における配置位置とを用いて、この画像を撮像した撮像装置の位置姿勢情報を計算する技術については、下記の文献に記されているように公知であるため、これについての詳細な説明は省略する。
【００２８】
●  Ｒ．Ｍ．Ｈａｒａｌｉｃｋ， Ｃ．Ｌｅｅ， Ｋ．Ｏｔｔｅｎｂｅｒｇ，ａｎｄ Ｍ．Ｎｏｌｌｅ： Ｒｅｖｉｅｗ ａｎｄ ａｎａｌｙｓｉｓ ｏｆ ｓｏｌｕｔｉｏｎｓ ｏｆ ｔｈｅ ｔｈｒｅｅ ｐｏｉｎｔ ｐｅｒｓｐｅｃｔｉｖｅ ｐｏｓｅ ｅｓｔｉｍａｔｉｏｎ ｐｒｏｂｌｅｍ， Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｊｏｕｒｎａｌ ｏｆ Ｃｏｍｐｕｔｅｒ Ｖｉｓｉｏｎ， ｖｏｌ．１３， ｎｏ．３， ｐｐ．３３１―３５６， １９９４．
●  Ｄ．Ｇ．Ｌｏｗｅ： Ｆｉｔｔｉｎｇ ｐａｒａｍｅｔｅｒｉｚｅｄ ｔｈｒｅｅ―ｄｉｍｅｎｓｉｏｎａｌ ｍｏｄｅｌｓ ｔｏ ｉｍａｇｅｓ， ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ ＰＡＭＩ， ｖｏｌ．１３， ｎｏ．５， ｐｐ．４４１―５５０, １９９１.
なお、撮像装置１０１０の位置姿勢情報を求めるための方法はこれに限定するものではなく、様々な方法が考えられる。例えば、位置姿勢センサを用いる方法が考えられる。位置姿勢センサには、例えば、米国Ｐｏｌｈｅｍｕｓ社の製品ＦＡＳＴＲＡＫがある。位置姿勢センサを用いて撮像装置１０１０の位置姿勢情報を計算する方法について簡単に説明する。磁気トランスミッタを現実空間中の所定の位置に配置した後、磁気トランスミッタを動作させると、この磁気トランスミッタは周囲に磁界を発生させる。一方、撮像装置１０１０には、磁気レシーバを取り付け、磁気レシーバは、磁界中における自身の位置姿勢に応じた磁界の変化を検知する。検知した結果は、磁気トランスミッタの動作制御を行うセンサ制御装置に送出される。センサ制御装置は、係る検知結果に基づいて、センサ座標系における磁気レシーバの位置姿勢情報を計算する。ここで、センサ座標系とは、磁気トランスミッタの位置を原点として定義し、係る原点で互いに直交する３軸をそれぞれ、ｘ軸、ｙ軸、ｚ軸とする座標系である。そして求めたセンサ座標系における磁気レシーバの位置姿勢情報を画像処理装置１１００に送出する。なお、センサ座標系における位置姿勢情報を世界座標系やその他の座標系における位置姿勢情報に変換する処理は適宜行えばよい。
【００２９】
本実施形態では、撮像装置１０１０の位置姿勢情報が得られるのであれば、如何なる構成を用いても良い。そして結果として、位置姿勢導出部１１２０は、求めた位置姿勢情報をデータ記憶部１１７０に格納する。
【００３０】
時間遅れ計測部１１３０は、位置姿勢導出部１１２０が位置姿勢情報の計算に要した時間（位置姿勢導出時間遅れ）を計測する。そして計測した時間を示す時間情報をデータ記憶部１１７０に格納する。なお、係る計測は、位置姿勢情報が計算される毎に行われる。
【００３１】
仮想空間画像生成部１１９０（第２の手段）は、データ記憶部１１７０に格納されている仮想空間のデータに基づいて、仮想空間を構築する。仮想空間のデータには、仮想空間を構成する各仮想物体に係るデータや、仮想空間中を照射する光源に係るデータが含まれる。そして仮想空間画像生成部１１９０は、データ記憶部１１７０に格納されている位置姿勢情報が示す位置姿勢を有する視点を仮想空間中に設定する。そして、係る視点から見える仮想空間の画像（仮想空間画像）を生成する。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成するための技術については周知の技術であるので、これについての詳細な説明は省略する。
【００３２】
処理速度計測部１１４０は、仮想空間画像生成部１１９０が仮想空間画像の生成に要した時間（仮想空間画像描画処理時間）を計測する。そして計測した時間を示す時間情報をデータ記憶部１１７０に格納する。なお、係る計測は、仮想空間画像が生成される毎に行われる。
【００３３】
画像合成部１２００は先ず、自身が管理するメモリ上に、データ記憶部１１７０に格納されている現実空間画像を描画する（第３の手段）。そして描画したこの現実空間画像上に、仮想空間画像生成部１１９０が生成した仮想空間画像を重畳描画することで、係るメモリ上に現実空間画像と仮想空間画像との合成画像を生成する。そしてこの生成した合成画像をＨＭＤ１０００の表示装置１０２０に対して出力する。
【００３４】
処理速度計測部１１５０は、画像合成部１２００が現実空間画像を描画する為に要した時間（現実空間画像描画処理時間）を計測する。そして計測した時間を示す時間情報をデータ記憶部１１７０に格納する。
【００３５】
時間遅れ計測部１１６０は、画像合成部１２００が第ｎ（ｎ≧１）フレーム目における合成画像を出力してから、第（ｎ＋１）フレーム目における合成画像を出力するまでの間の時間を計測する。即ち、１フレーム分の合成画像を生成するための全ての処理に要した時間を計測する。そして、計測した時間を示す時間情報をデータ記憶部１１７０に格納する。なお、係る計測は、画像合成部１２００が合成画像を出力する毎に行われる。
【００３６】
画像合成方法指定部１１８０は、データ記憶部１１７０に格納された上記各時間情報を参照し、位置姿勢導出部１１２０、画像入力部１１１０、仮想空間画像生成部１１９０、画像合成部１２００、の動作順序を決定する。そして決定した順序で各部が動作するように、各部の動作を制御する。
【００３７】
データ記憶部１１７０は上述の通り、様々な情報を格納するためのものであり、ＲＡＭやハードディスクドライブ装置などにより構成されている。なお、データ記憶部１１７０には、上記説明においてデータ記憶部１１７０に格納するものとして説明した情報の他に、本実施形態において既知の情報として説明するものについても格納されているものとする。
【００３８】
図３は、画像処理装置１１００が、現実空間画像と仮想空間画像との合成画像を生成し、ＨＭＤ１０００に対して出力するために行う処理のフローチャートである。
【００３９】
先ず、ステップＳ３０１０では、画像合成方法指定部１１８０により、初期値としての動作順序を設定する。係る動作順序は、例えば、画像処理装置１１００のユーザが入力指示した動作順序であっても良いし、予め定められたものであっても良い。
【００４０】
次に、ステップＳ３０２０では、画像処理装置１１００を構成する各部が動作することで、現実空間画像と仮想空間画像との合成画像を生成する。なお、係る生成の過程で動作する位置姿勢導出部１１２０、画像入力部１１１０、仮想空間画像生成部１１９０、画像合成部１２００、の動作順序については、ステップＳ３０１０で設定した動作順序とする。
【００４１】
図４Ａ〜図４Ｅは、ステップＳ３０２０における処理を行うための、様々な動作順序に対応するフローチャートである。以下の説明上、図４Ａのフローチャートに従った処理を実行するための動作順序を「動作順序Ａ」、図４Ｂのフローチャートに従った処理を実行するための動作順序を「動作順序Ｂ」と呼称する。また、図４Ｃのフローチャートに従った処理を実行するための動作順序を「動作順序Ｃ」、図４Ｄのフローチャートに従った処理を実行するための動作順序を「動作順序Ｄ」と呼称する。また、図４Ｅのフローチャートに従った処理を実行するための動作順序を「動作順序Ｅ」と呼称する。また、以下の説明では、ステップＳ３０１０では、動作順序Ａが設定されたものとして説明する。しかし、他の動作順序が初期値として設定されても、以下の説明は実質的には同じである。
【００４２】
従って、ステップＳ３０２０では、図４Ａのフローチャートに従った処理を実行することになる。図４Ａのフローチャートに従った処理は、現実空間画像のキャプチャのすぐ後に位置姿勢情報を導出するため、現実空間画像と仮想空間画像との整合性を高くすることができる。
【００４３】
先ず、ステップＳ４０１０では、画像入力部１１１０は、撮像装置１０１０から送出された現実空間画像（撮像結果）を取得（キャプチャ）する。なお、時間遅れ計測部１１６０は、画像合成部１２００から１フレーム前の合成画像が出力されたタイミングから計時を開始している。
【００４４】
次に、ステップＳ４０１１では、位置姿勢導出部１１２０は、ステップＳ４０１０で取得した現実空間画像と、データ記憶部１１７０に格納されている各基準指標の配置位置とを用いて、撮像装置１０１０の位置姿勢情報を求める。このとき、時間遅れ計測部１１３０は、位置姿勢導出部１１２０が位置姿勢情報を求める為に要した時間を計時する。
【００４５】
次に、ステップＳ４０１２では、画像合成部１２００は、自身が管理するメモリ上に、ステップＳ４０１０で取得した現実空間画像を描画する。このとき、処理速度計測部１１５０は、画像合成部１２００が現実空間画像を描画する為に要した時間を計測する。
【００４６】
次に、ステップＳ４０１３では、仮想空間画像生成部１１９０は、ステップＳ４０１１で計算した位置姿勢情報が示す位置姿勢から見える仮想空間の画像を生成する。このとき、処理速度計測部１１４０は、仮想空間画像生成部１１９０が仮想空間画像の生成に要した時間を計測する。そして次に、画像合成部１２００は、ステップＳ４０１２で上記メモリ上に描画した現実空間画像上に、仮想空間画像生成部１１９０が生成した仮想空間画像を重畳描画することで、係るメモリ上に現実空間画像と仮想空間画像との合成画像を生成する。そしてこの生成した合成画像をＨＭＤ１０００の表示装置１０２０に対して出力する。そして、時間遅れ計測部１１６０は、１フレーム前の合成画像が出力されたタイミングから、画像合成部１２００から現フレームにおける合成画像が出力されたタイミングまでの間の時間を計測する。
【００４７】
そして処理をステップＳ３０３０に戻す。
【００４８】
ステップＳ３０３０では、ステップＳ４０１０からステップＳ４０１３で計時した各時間を示す時間情報をデータ記憶部１１７０に格納する。
【００４９】
次に、本処理の終了指示が入力された、若しくは本処理を終了する条件が満たされた場合には本処理を終了する。一方、本処理の終了指示は入力されてもいないし、本処理を終了する条件も満たされていない場合には処理をステップＳ３０４０を介してステップＳ３０５０に進める。
【００５０】
ステップＳ３０５０では、画像合成方法指定部１１８０は、ステップＳ３０３０でデータ記憶部１１７０に収集した各時間情報を参照する。そして参照したこれらの各時間情報に基づいて、次のフレームの合成画像を生成するための、位置姿勢導出部１１２０、画像入力部１１１０、仮想空間画像生成部１１９０、画像合成部１２００、の動作順序（第１乃至３の手段の動作順序）を決定し、設定する。
【００５１】
動作順序を決定する方法については様々な方法が挙げられるが、以下ではその一例について説明する。
【００５２】
例えば、処理速度計測部１１４０が計測した時間ｔｖが閾値以上で、且つ時間遅れ計測部１１６０が計測した時間に占める時間ｔｖの割合が閾値以上であるとする。この場合、画像合成方法指定部１１８０は、次のフレームの合成画像を生成する処理（ステップＳ３０２０における処理）として、図４Ｃのフローチャートに従った処理を実行するように決定する。即ち、図４Ｃのフローチャートに従った処理を実行するための動作順序である「動作順序Ｃ」を設定する。
【００５３】
そして処理をステップＳ３０２０に戻し、次のフレームの合成画像を生成する処理を実行する。ここで、次のフレームの合成画像を生成する場合に行うステップＳ３０２０における処理、即ち、図４Ｃのフローチャートに従った処理について説明する。
【００５４】
ステップＳ４０３０では位置姿勢導出部１１２０は１フレーム前の現実空間画像としてデータ記憶部１１７０に格納されている現実空間画像とデータ記憶部１１７０に格納されている各基準指標の配置位置とを用いて、撮像装置１０１０の位置姿勢情報を求める。このとき、時間遅れ計測部１１３０は、位置姿勢導出部１１２０が位置姿勢情報を求める為に要した時間を計時する。更に、時間遅れ計測部１１６０は、画像合成部１２００から１フレーム前の合成画像が出力されたタイミングから計時を開始している。
【００５５】
次に、ステップＳ４０３１では、仮想空間画像生成部１１９０は、ステップＳ４０３０で計算した位置姿勢情報が示す位置姿勢から見える仮想空間の画像を生成する。このとき、処理速度計測部１１４０は、仮想空間画像生成部１１９０が仮想空間画像の生成に要した時間を計測する。
【００５６】
次に、ステップＳ４０３２では、画像入力部１１１０は、撮像装置１０１０から送出された現実空間画像を取得（キャプチャ）する。
【００５７】
次に、ステップＳ４０３３では、画像合成部１２００は先ず、自身が管理するメモリ上に、ステップＳ４０３２で取得した現実空間画像を描画する。このとき、処理速度計測部１１５０は、画像合成部１２００が現実空間画像を描画する為に要した時間を計測する。次に、画像合成部１２００は、メモリ上に描画した現実空間画像上に、ステップＳ４０３１で仮想空間画像生成部１１９０が生成した仮想空間画像を重畳描画することで、係るメモリ上に現実空間画像と仮想空間画像との合成画像を生成する。そしてこの生成した合成画像をＨＭＤ１０００の表示装置１０２０に対して出力する。そして、時間遅れ計測部１１６０は、１フレーム前の合成画像が出力されたタイミングから、画像合成部１２００から合成画像が出力されたタイミングまでの間の時間を計測する。
【００５８】
そして処理をステップＳ３０３０に戻す。
【００５９】
動作順序Ｃを用いることで、合成画像を表示するタイミングの直前にキャプチャと描画処理を行うため、現実空間画像の時間遅れの軽減が期待できる。
【００６０】
なお、上記閾値は、予め設定されたものであっても良いし、画像処理装置１１００のユーザが指示入力したものであっても良い。これは、以降に登場する閾値についても同様である。
【００６１】
また、ステップＳ３０５０における動作順序を決定する処理として、例えば、処理速度計測部１１５０が計測した時間ｔｒが閾値以上で、且つ時間遅れ計測部１１６０が計測した時間に占める時間ｔｒの割合が閾値以上であるとする。この場合、画像合成方法指定部１１８０は、次のフレームの合成画像を生成する処理（ステップＳ３０２０における処理）として、図４Ｂのフローチャートに従った処理を実行するように決定する。即ち、図４Ｂのフローチャートに従った処理を実行するための動作順序である「動作順序Ｂ」を設定する。
【００６２】
先ず、ステップＳ４０２０では、画像入力部１１１０は、撮像装置１０１０から送出された現実空間画像を取得（キャプチャ）する。なお、時間遅れ計測部１１６０は、画像合成部１２００から１フレーム前の合成画像が出力されたタイミングから計時を開始している。
【００６３】
次に、ステップＳ４０２１では、画像合成部１２００は、自身が管理するメモリ上に、ステップＳ４０２０で取得した現実空間画像を描画する。このとき、処理速度計測部１１５０は、画像合成部１２００が現実空間画像を描画する為に要した時間を計測する。
【００６４】
次に、ステップＳ４０２２では、位置姿勢導出部１１２０は、ステップＳ４０２０で取得した現実空間画像と、データ記憶部１１７０に格納されている各基準指標の配置位置とを用いて、撮像装置１０１０の位置姿勢情報を求める。このとき、時間遅れ計測部１１３０は、位置姿勢導出部１１２０が位置姿勢情報を求める為に要した時間を計時する。
【００６５】
次に、ステップＳ４０２３では、仮想空間画像生成部１１９０は、ステップＳ４０２２で計算した位置姿勢情報が示す位置姿勢から見える仮想空間の画像を生成する。このとき、処理速度計測部１１４０は、仮想空間画像生成部１１９０が仮想空間画像の生成に要した時間を計測する。そして次に、画像合成部１２００は、ステップＳ４０２１で上記メモリ上に描画した現実空間画像上に、仮想空間画像生成部１１９０が生成した仮想空間画像を重畳描画することで、係るメモリ上に現実空間画像と仮想空間画像との合成画像を生成する。そしてこの生成した合成画像をＨＭＤ１０００の表示装置１０２０に対して出力する。そして、時間遅れ計測部１１６０は、１フレーム前の合成画像が出力されたタイミングから、画像合成部１２００から合成画像が出力されたタイミングまでの間の時間を計測する。
【００６６】
そして処理をステップＳ３０３０に戻す。
【００６７】
また、ステップＳ３０５０における動作順序を決定する処理として、例えば、時間遅れ計測部１１３０が計測した時間ｔｐが閾値以上であるとする。この場合、画像合成方法指定部１１８０は、次のフレームの合成画像を生成する処理（ステップＳ３０２０における処理）として、図４Ａのフローチャートに従った処理を実行するように決定する。即ち、図４Ａのフローチャートに従った処理を実行するための動作順序である「動作順序Ａ」を設定する。図４Ａのフローチャートに従った処理については後述の通りであるので、ここでの説明は省略する。
【００６８】
［第２の実施形態］
第１の実施形態では、様々な時間情報を用いて、１つの動作順序を決定する処理を画像処理装置１１００側で行うようにしていたが、係る決定を画像処理装置１１００のユーザに行わせるようにしても良い。
【００６９】
この場合、それぞれの時間情報を画像処理装置１１００が有する表示画面上に表示させ、ユーザに対して提示する。そして、ユーザは、係る表示画面を見て動作順序を判断し、判断した結果を、指示入力する。
【００７０】
［第３の実施形態］
第１、第２の実施形態は、画像処理装置１１００にビデオシースルー方式のＨＭＤが接続されている場合について説明を行った。本実施形態に係る画像処理装置は、光学シースルー方式・ビデオシースルー方式の双方の方式を持つＨＭＤが接続されている場合になっている。以下、本実施形態に係る画像処理装置について説明する。
【００７１】
図５は、本実施形態に係るシステムの機能構成例を示すブロック図である。図１と同じ部分については同じ番号をつけており、その説明を省略する。図５に示す如く、本実施形態に係るシステムは、画像処理装置１１００と、頭部装着型表示装置の一例としてのＨＭＤ５０００と、で構成されており、画像処理装置１１００とＨＭＤ５０００とは互いにデータ通信が可能なように接続されている。従って、画像処理装置１１００とＨＭＤ５０００との間の接続は、有線、無線の何れであっても構わない。
【００７２】
ＨＭＤ５０００について説明する。
【００７３】
５０１０は液晶シャッターである。液晶シャッター５０１０を開閉することで、装着者に対する直接の現実世界の提示／非提示を切り替えることができる。つまり、光学シースルー方式を使用する時には、液晶シャッター５０１０を開けた状態で装着者に直接現実世界が見えるように設定し、ビデオシースルー方式を使用する時には、液晶シャッターを閉じることで装着者に直接現実世界が見えないように設定する。
【００７４】
画像処理装置１１００に光学シースルー方式・ビデオシースルー方式双方の方式を持つＨＭＤが接続されている場合の動作順序を決定する方法について、以下ではその一例について説明する。
【００７５】
ステップＳ３０５０における動作順序を決定する処理として、例えば、処理速度計測部１１５０が計測した時間ｔｒが閾値以上で、且つ時間遅れ計測部１１６０が計測した時間に占める時間ｔｒの割合が閾値以上であるとする。この場合、画像合成方法指定部１１８０は、次のフレームの合成画像を生成する処理（ステップＳ３０２０における処理）として、図４Ｄのフローチャートに従った処理を実行するように決定する。即ち、図４Ｄのフローチャートに従った処理を実行するための動作順序である「動作順序Ｄ」を設定する。
【００７６】
先ず、ステップＳ４０４０では、画像合成部１２００は、光学シースルー方式への切り替え指示、をＨＭＤ５０００に対して送出する。即ち、以降の処理では、現実空間画像の生成動作を非動作とする。
【００７７】
次に、ステップＳ４０４１では、位置姿勢導出部１１２０は、現実空間画像と、データ記憶部１１７０に格納されている各基準指標の配置位置とを用いて、視点の位置姿勢情報を求める。このとき、時間遅れ計測部１１３０は、位置姿勢導出部１１２０が位置姿勢情報を求める為に要した時間を計時する。
【００７８】
次に、ステップＳ４０４２では、仮想空間画像生成部１１９０は、ステップＳ４０４１で求めた位置姿勢情報が示す位置姿勢から見える仮想空間の画像を生成する。そしてこの生成した仮想空間画像を、ＨＭＤ５０００に対して出力する。このとき、処理速度計測部１１４０は、仮想空間画像生成部１１９０が仮想空間画像の生成に要した時間を計測する。
【００７９】
そして処理をステップＳ３０３０に戻す。
【００８０】
なお、本実施形態では、画像処理装置に接続する光学シースルー・ビデオシースルー双方の方式を持つＨＭＤを液晶シャッターを持つＨＭＤとして説明を行った。しかし、ＨＭＤは光学シースルー・ビデオシースルー双方の方式を実現するＨＭＤであれば良い。
【００８１】
また、光学シースルー方式への切り替えを行う「動作順序Ｄ」に設定できるか否かは、装着者が仮想空間に表示するコンテンツ乃至画像処理装置を使用する環境状況によって予め設定しておいてよい。
【００８２】
［第４の実施形態］
ＨＭＤ１０００側にクロマキー合成機能が備わっている場合の動作順序を決定する方法について、以下ではその一例について説明する。即ち、本実施形態では、ＨＭＤ１０００は、クロマキー合成機能付き頭部装着型表示装置の一例として説明する。
【００８３】
ステップＳ３０５０における動作順序を決定する処理として、例えば、処理速度計測部１１５０が計測した時間ｔｒが閾値以上で、且つ時間遅れ計測部１１６０が計測した時間に占める時間ｔｒの割合が閾値以上であるとする。この場合、画像合成方法指定部１１８０は、次のフレームの合成画像を生成する処理（ステップＳ３０２０における処理）として、図４Ｅのフローチャートに従った処理を実行するように決定する。即ち、図４Ｅのフローチャートに従った処理を実行するための動作順序である「動作順序Ｅ」を設定する。
【００８４】
先ず、ステップＳ４０５０では、画像入力部１１１０は、撮像装置１０１０から送出された現実空間画像を取得（キャプチャ）する。
【００８５】
次に、ステップＳ４０５１では、位置姿勢導出部１１２０は、ステップＳ４０５０で取得した現実空間画像と、データ記憶部１１７０に格納されている各基準指標の配置位置とを用いて、撮像装置１０１０の位置姿勢情報を求める。このとき、時間遅れ計測部１１３０は、位置姿勢導出部１１２０が位置姿勢情報を求める為に要した時間を計時する。
【００８６】
次に、ステップＳ４０５２では、仮想空間画像生成部１１９０は、ステップＳ４０５１で求めた位置姿勢情報が示す位置姿勢から見える仮想空間の画像を生成する。このとき、処理速度計測部１１４０は、仮想空間画像生成部１１９０が仮想空間画像の生成に要した時間を計測する。
【００８７】
次に、ステップＳ４０５３では、画像合成部１２００は、ステップＳ４０５０で取得した現実空間画像と、ステップＳ４０５２で生成した仮想空間画像と、クロマキー合成指示と、をＨＭＤ１０００に対して送出する。
【００８８】
係るクロマキー合成指示により、ＨＭＤ１０００は、現実空間画像と仮想空間画像とのクロマキー合成処理を行い、合成画像を生成する。クロマキー合成については周知の技術であるので、これについての説明は省略する。
【００８９】
そして処理をステップＳ３０３０に戻す。
【００９０】
また、クロマキー合成機能の実施の切り替えを行う「動作順序Ｅ」に設定できるか否かは、装着者が仮想空間に表示するコンテンツ乃至画像処理装置を使用する環境状況によって予め設定しておいてよい。
【００９１】
［第５の実施形態］
図１に示した、画像処理装置１１００を構成する各部は全て、上記実施形態ではハードウェアで構成されているとして説明した。しかし、その一部をソフトウェアで構成しても良い。その場合、残りの部分をハードウェアとして実装しているコンピュータに、このソフトウェアを実行させることで、このコンピュータは、上記実施形態で説明した画像処理装置１１００の動作を行うことになる。
【００９２】
図２は、画像処理装置１１００に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【００９３】
ＣＰＵ２００１は、ＲＡＭ２００２やＲＯＭ２００３に格納されているプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、上記各実施形態で画像処理装置１１００が行うものとして説明した上述の各処理を実行する。
【００９４】
ＲＡＭ２００２は、外部記憶装置２００７や記憶媒体ドライブ２００８からロードされたプログラムやデータを一時的に記憶するためのアリアを有する。更にＲＡＭ２００２は、Ｉ／Ｆ（インターフェース）２００９を介して外部（図１の場合、撮像装置１０１０）から受信したデータ（図１の場合、現実空間画像）を一時的に記憶するためのエリアを有する。更に、ＲＡＭ２００２は、ＣＰＵ２００１が各処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ２００２は、各種エリアを適宜提供することができる。例えば、ＲＡＭ２００２は、図１に示したデータ記憶部１１７０としても機能する。
【００９５】
ＲＯＭ２００３には、コンピュータの設定データやブートプログラムなどが格納されている。
【００９６】
キーボード２００４、マウス２００５は、操作入力装置の一例としてのものであり、コンピュータのユーザが操作することで、各種の指示をＣＰＵ２００１に対して入力することができる。
【００９７】
表示部２００６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２００１による処理結果を画像や文字などで表示することができる。例えば、表示部２００６には、撮像装置１０１０の位置姿勢計測のために表示すべきメッセージなどを表示することができる。
【００９８】
外部記憶装置２００７は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置２００７には、ＯＳ（オペレーティングシステム）や、画像処理装置１１００が行うものとして説明した上述の各処理をＣＰＵ２００１に実行させるためのプログラムやデータが格納されている。係るプログラムには、時間遅れ計測部１１３０、１１６０、位置姿勢導出部１１２０、画像合成方法指定部１１８０、処理速度計測部１１４０，１１５０、仮想空間画像生成部１１９０、画像合成部１２００のそれぞれに対応するプログラムが含まれている。また、係るデータには、仮想空間のデータや、上述の説明において、既知の情報として説明したものが含まれている。外部記憶装置２００７に保存されているプログラムやデータは、ＣＰＵ２００１による制御に従って適宜ＲＡＭ２００２にロードされる。ＣＰＵ２００１はこのロードされたプログラムやデータを用いて処理を実行することで、画像処理装置１１００が行うものとして上述した各処理を実行することになる。なお、外部記憶装置２００７は、図１に示したデータ記憶部１１７０として用いても良い。
【００９９】
記憶媒体ドライブ２００８は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出したり、係る記憶媒体にプログラムやデータを書き込んだりする。なお、外部記憶装置２００７に保存されているものとして説明したプログラムやデータの一部若しくは全部をこの記憶媒体に記録しておいても良い。記憶媒体ドライブ２００８が記憶媒体から読み出したプログラムやデータは、外部記憶装置２００７やＲＡＭ２００２に対して出力される。
【０１００】
Ｉ／Ｆ２００９は、撮像装置１０１０を接続するためのアナログビデオポートあるいはＩＥＥＥ１３９４等のデジタル入出力ポート、また、合成画像をＨＭＤ１０００の表示装置１０２０に対して出力するためのイーサネット(登録商標）ポートなどによって構成される。Ｉ／Ｆ２００９を介して受信したデータは、ＲＡＭ２００２や外部記憶装置２００７に入力される。なお、図１に示した画像入力部１１１０の機能の一部は、Ｉ／Ｆ２００９によって実現される。また、位置姿勢情報の取得にセンサシステムを用いる場合、このＩ／Ｆ２００９には、センサシステムを接続することになる。
【０１０１】
２０１０は、上述の各部を繋ぐバスである。
【０１０２】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１０３】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０５】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の第１の実施形態に係るシステムの機能構成例を示すブロック図である。
【図２】画像処理装置１１００に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【図３】画像処理装置１１００が、現実空間画像と仮想空間画像との合成画像を生成し、ＨＭＤ１０００に対して出力するために行う処理のフローチャートである。
【図４Ａ】ステップＳ３０２０における処理を行うためのフローチャートである。
【図４Ｂ】ステップＳ３０２０における処理を行うためのフローチャートである。
【図４Ｃ】ステップＳ３０２０における処理を行うためのフローチャートである。
【図４Ｄ】ステップＳ３０２０における処理を行うためのフローチャートである。
【図４Ｅ】ステップＳ３０２０における処理を行うためのフローチャートである。
【図５】本発明の第４の実施形態に係るシステムの機能構成例を示すブロック図である。
【図１】
2009048237.tif 000003
【図２】
2009048237.tif 000004
【図３】
2009048237.tif 000005
【図４Ａ】
2009048237.tif 000006
【図４Ｂ】
2009048237.tif 000007
【図４Ｃ】
2009048237.tif 000008
【図４Ｄ】
2009048237.tif 000009
【図４Ｅ】
2009048237.tif 000010
【図５】
2009048237.tif 000011