(57)【特許請求の範囲】
【請求項１】
複数のマーカが配置された現実空間を撮影装置によって撮影することによって得られる撮影画像を取得する第１の取得工程と、
前記現実空間内の対象物の位置姿勢を取得する第２の取得工程と、
前記撮影画像に含まれている前記マーカの位置を検出する検出工程と、
前記マーカを用いて前記対象物の位置姿勢の第１の補正値を算出する第１の算出工程と、
前記撮影画像のフレームの前フレームの撮影画像から算出された前記対象物の位置姿勢の第２の補正値を取得する補正値取得工程と、
前記第２の補正値を用いて前記第１の補正値を補正することにより第３の補正値を算出する第２の算出工程と、
前記第３の補正値を用いて前記対象物の位置姿勢を補正する位置姿勢補正工程と、
前記位置姿勢補正工程によって位置姿勢が補正された前記対象物の該位置姿勢に応じた仮想画像を生成する第１の生成工程と、
前記仮想画像と前記撮影画像とを合成した複合空間画像を生成する第２の生成工程と
を有することを特徴とする情報処理方法。
【請求項２】
前記検出工程は、前記撮影画像からマーカを検出する領域を、該撮影画像の前フレームの撮影画像におけるマーカの検出結果を用いて特定することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記検出工程は、前記撮影画像の前フレームの撮影画像において検出されたマーカと同一のマーカを検出することを特徴とする請求項１に記載の情報処理方法。
【請求項４】
前記第２の取得工程は、前記対象物の位置姿勢を検出するセンサの検出結果を取得し、
前記位置姿勢補正工程は、前記第３の補正値を用いて前記検出結果を補正することにより、前記対象物の位置姿勢を補正することを特徴とする請求項１に記載の情報処理方法。
【請求項５】
複数のマーカが配置された現実空間を撮影装置によって撮影することによって得られる撮影画像を取得する第１の取得手段と、
前記現実空間内の対象物の位置姿勢を取得する第２の取得手段と、
前記撮影画像に含まれている前記マーカの位置を検出する検出手段と、
前記マーカを用いて前記対象物の位置姿勢の第１の補正値を算出する第１の算出手段と、
前記撮影画像のフレームの前フレームの撮影画像から算出された前記対象物の位置姿勢の第２の補正値を取得する補正値取得手段と、
前記第２の補正値を用いて前記第１の補正値を補正することにより第３の補正値を算出する第２の算出手段と、
前記第３の補正値を用いて前記対象物の位置姿勢を補正する位置姿勢補正手段と、
前記位置姿勢補正手段によって位置姿勢が補正された前記対象物の該位置姿勢に応じた仮想画像を生成する第１の生成手段と、
前記仮想画像と前記撮影画像とを合成した複合空間画像を生成する第２の生成手段と
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばコンピュータグラフィックスによる仮想画像を現実の空間に結合させた複合現実感を作業者に提示する技術に関する。
【０００２】
【従来の技術】
近年、現実空間と仮想空間の繋ぎ目のない(seemless)結合を目的とした複合現実感（以下、「ＭＲ」(Mixed Reality)と称す）に関する研究が盛んになっている。ＭＲは、従来、現実空間と切り離された状況でのみ体験可能であったバーチャルリアリティ（以下ＶＲと略す）の世界と現実空間との共存を目的とし、ＶＲを増強する技術として注目されている。
【０００３】
ＭＲの応用としては、患者の体内の様子を透視しているように医師に提示する医療補助の用途や、工場において製品の組み立て手順を実物に重ねて表示する作業補助の用途など、今までのＶＲとは質的に全く異なった新たな分野が期待されている。これらの応用に対して共通に要求されるのは、現実空間と仮想空間の間の“ずれ”をいかにして取り除くかという技術である。“ずれ”は、位置ずれ、時間ずれ、質的ずれに分類可能であり、この中でも最も基本的な要求といえる位置ずれの解消（即ち、位置合わせ）については、従来から多くの取り組みが行われてきた。
【０００４】
ビデオカメラで撮影された映像に仮想物体を重畳するビデオシースルー(Video-See-Through)方式のＭＲの場合、位置合せの問題は、そのビデオカメラの３次元位置を正確に求める問題に帰結される。半透過型のＨＭＤ(Head Mount Display)を用いる光学シースルー(Optic-See-Through)方式のＭＲの場合における位置合せの問題は、ユーザーの視点の３次元位置を求める問題といえ、それらの計測法としては、磁気センサや超音波センサ、ジャイロといった３次元位置方位センサ利用が一般的であるが、これらの精度は必ずしも十分とはいえず、その誤差が位置ずれの原因となる。
【０００５】
一方、ビデオシースルー方式の場合には、このようなセンサを用いずに画像情報を元に画像上での位置合わせを直接行う手法も考えられる。この手法では位置ずれを直接取り扱えるために、位置合わせが精度よく行える反面、実時間性や信頼性の欠如などの問題があった。近年になって、位置方位センサと画像情報の併用により、両者の欠点を互いに補って精度よい位置合わせを実現する試みが報告されている。
【０００６】
１つの試みとして、「Dynamic Registration Correction in Video-Based-Augmented Reality Systems」(Bajura MichaelとUlrich Neuman, IEEE Computer Graphics and Applications 15, 5, pp. 52-60, 1995)（以下、第１文献と呼ぶ）は、ビデオシースルー方式のＭＲにおいて、磁気センサの誤差によって生じる位置ずれを画像情報によって補正する手法を提案した。
【０００７】
また、「Superior Augmented Reality Registration by Integrating Landmark Tracking and Magnetic Tracking」(State Andrei等, Proc. of SIGGRAPH 96,pp. 429-438, 1996)（以下、第２文献と呼ぶ）は、さらにこの手法を発展させ、画像情報による位置推定の曖昧性をセンサ情報によって補う手法を提案した。上記第２文献は、位置方位センサposition-azimuth sensorのみを用いてビデオシースルー方式のＭＲ提示システムを構築した場合において、そのセンサの誤差が原因となって画像上に発生する位置ずれを解消するために、３次元位置が既知であるランドマークを現実空間に設定する。このランドマークは、その位置ずれを画像情報から検出するための手掛かりとなる。
【０００８】
位置方位センサの出力に誤差が含まれていないとすると、画像上で実際に観測されるランドマークの座標（ＱIとする）と、そのセンサ出力に基づいて得られるカメラ位置とランドマークの３次元位置とから導きだされるランドマークの観測予測座標（ＰIとする）とは、同一となるはずである。しかし、実際にはセンサ出力に基づいて得られたカメラ位置は正確ではないため、ランドマークの座標ＱIと観測予測座標ＰIは一致しない。このＰIとＱIのずれは、ランドマーク位置における仮想空間と現実空間の位置ずれを表しており、このために、画像からランドマーク位置を抽出することで、ずれの向きと大きさが算出できる。
【０００９】
このように、画像上での位置ずれを定量的に計測することにより、位置ずれを解消するようなカメラ位置の補正が可能となる。方位センサと画像を併用する最も単純な位置合わせ方式は、１点のランドマークを用いたセンサ誤差の補正と考えられ、画像上のランドマークの位置ずれに応じてカメラ位置を平行移動または回転させる手法が第１文献によって提案されている。
【００１０】
第１図に、１点のランドマークを用いた位置ずれ補正の基本的な考え方を示す。以下では、カメラの内部パラメータを既知として、歪みなどの影響を除外した理想的な撮像系によって画像撮影が行われているものと仮定する。カメラの視点位置をＣ、画像上でのランドマークの観測座標をＱI 、現実空間のランドマーク位置をＱIとすると、点ＱIは点Ｃと点ＱIを結ぶ直線ｌQ上に存在する。一方、位置方位センサによって与えられるカメラ位置からは、カメラ座標系におけるランドマーク位置ＰCと、その画像上での観測座標ＰIとが推測できる。以下では、点Ｃから点ＱI、点ＰIへの３次元ベクトルを、それぞれｖ1、ｖ2と表記する。この方法では、補正後のランドマークの観測予測座標符Ｐ'IがＱIに一致するように（すなわち、カメラ座標系における補正後のランドマーク予測位置Ｐ'Cが、直線ｌQ上に乗るように）、カメラと物体の相対的な位置情報を修正する事によって、位置ずれが補正される。
【００１１】
ランドマークの位置ずれを、カメラ位置の回転によって補正することを考える。これは、二つのベクトルｖ1、ｖ2の成す角θだけカメラが回転するように、カメラの位置情報に修正を加えることにより実現できる。実際の計算では、上記ベクトルｖ1、ｖ2を正規化したベクトルｖ1n、ｖ2nを用いて、その外積ｖ1n×ｖ2nを回転軸に、内積ｖ1n・ｖ2nを回転角として、点Ｃを中心にカメラを回転させる。
【００１２】
ランドマークの位置ずれを、カメラ位置の相対的な平行移動によって補正することを考える。これは、仮想世界中の物体位置をｖ＝ｎ（ｖ1−ｖ2）だけ平行移動させることで実現できる。ここでｎは、次式によって定義されるスケールファクタである。
【００１３】
【数１】
0003793158.tif 000002
【００１４】
ここで、｜ＡＢ｜は点Ａと点Ｂの間の距離を示す記号とする。また、カメラが−ｖだけ平行移動するようにカメラの位置情報に修正を加えることでも、同様の補正が可能となる。これは、この操作によって、相対的に仮想物体がｖだけ移動したことに等しくなるためである。以上の２つの手法は、ランドマーク上での位置ずれを２次元的に一致させる手法であり、３次元的に正しい位置にカメラ位置を補正することではない。しかし、センサ誤差が小さい場合には十分な効果が期待できるものであり、また、補正のための計算コストは非常に小さなものであり、実時間性に優れた手法である。
【００１５】
【発明が解決しようとする課題】
しかしながら、上記文献に示された手法では、唯一のマーカの撮像画像内での位置を捕捉することが必要であるから、そのマーカが常にカメラに撮影されていなくてはならないという制約があるため、ごく限られた範囲の空間しか見ることができなかった。
【００１６】
ましてや、複数の作業者が共通の複合現実空間を共有する場合には、１つのマーカのみでは上記制約は致命的である。
【００１７】
本発明は、このような事態に鑑みてなされたもので、補正値の急激な変化が緩和され、三次元仮想画像の急激な変化による不自然な移動を解消することができる情報処理方法及び情報処理装置を提供することを目的とする。
【００１８】
【課題を解決するための手段】
上記課題を解決するため、本発明に係る情報処理方法は、複数のマーカが配置された現実空間を撮影装置によって撮影することによって得られる撮影画像を取得する第１の取得工程と、前記現実空間内の対象物の位置姿勢を取得する第２の取得工程と、前記撮影画像に含まれている前記マーカの位置を検出する検出工程と、前記マーカを用いて前記対象物の位置姿勢の第１の補正値を算出する第１の算出工程と、前記撮影画像のフレームの前フレームの撮影画像から算出された前記対象物の位置姿勢の第２の補正値を取得する補正値取得工程と、前記第２の補正値を用いて前記第１の補正値を補正することにより第３の補正値を算出する第２の算出工程と、前記第３の補正値を用いて前記対象物の位置姿勢を補正する位置姿勢補正工程と、前記位置姿勢補正工程によって位置姿勢が補正された前記対象物の該位置姿勢に応じた仮想画像を生成する第１の生成工程と、前記仮想画像と前記撮影画像とを合成した複合空間画像を生成する第２の生成工程とを有することを特徴とする。
【００２３】
【発明の実施の形態】
以下、本発明の、複合現実感の提示手法及びＨＭＤを、エアーホッケーゲーム装置に適用した実施形態に係わるシステムを説明する。エアーホッケーゲームは相手の存在する対戦型のゲームであり、通常、下部から圧縮空気を供給してパックを浮かして、このパックを打ち合い、相手のゴールにパックを入れたら得点が入る。得点の多い方を勝者とするゲームである。本実施形態のＭＲを適用したエアホッケーゲームは、仮想のパックを仮想３次元画像として現実環境のテーブルの上に重畳表示してプレーヤーに提示して、その仮想パックをプレーヤに現実のマレットで仮想的に打ち合わせるものである。
【００２４】
このゲーム装置の特徴は、
▲１▼：共通のカメラで複数の作業者に共通の現実世界を撮影し、その共通の画像の中に複数の作業者によって操作される作業用アクチュエータ（本実施形態ではマレット）を特定することによって、１つの複合現実世界を現出させ、複数人で共有可能ならしめる。
▲２▼：広範な現実空間内で大きく移動する作業者の視点位置を精度良く検出するために、頭部の位置と姿勢とを検出する磁気センサの他に、カメラを作業者の頭部に装着し、このカメラが、ゲームプレー用テーブルの上に設けられた複数のマーカの中の少なくとも１つのマーカを撮像ならしめ、この撮像されたマーカの画像座標とそのマーカの既知の位置との差異から、上記磁気センサが検出した頭部の位置／姿勢（即ち、作業者の視点の位置及び姿勢）を補正するものである。
【００２５】
〈ゲーム装置の構成〉
第２図は、本実施形態のシステムのゲーム装置部分を側面から見た図である。複合現実感のエアーホッケーゲームは、テーブル１０００を挟んで、二人の対戦者２０００，３０００が手にマレット（２６０Ｌ，２６０Ｒ）をもって向かい合う。二人の対戦者２０００，３０００は頭部にヘッドマウントデイスプレイ（以下ＨＭＤと略す）２１０Ｌ，２１０Ｒを装着する。本実施形態のマレットは、その先端に赤外線発光器を有している。後述するように、本実施形態では、画像処理によりマレット位置を検出するが、マレットの形状や色に特徴があるのであれば、それらの特徴を用いたパターン認識によるマレット位置の検出も可能である。
【００２６】
実施形態のＨＭＤ２１０は、第４図に示すようにシースルー型である。両対戦者２０００，３０００は、ＨＭＤ２１０Ｌ，２１０Ｒを装着していても、テーブル１０００の表面を観察することができる。ＨＭＤ２１０には後述の画像処理システムから三次元仮想画像が入力される。従って、対戦者２０００，３０００は、ＨＭＤ２１０の光学系（第２図には不図示）を通した現実空間の映像に重ねて、ＨＭＤ２１０の表示画面に表示された三次元画像を見ることとなる。
【００２７】
第３図は、左側プレーヤ２０００が自身のＨＭＤ２１０Ｌからみた映像を示す。二人のプレーヤ２０００，３０００は仮想のパック１５００を打ち合う。パック１５００を打つのはプレーヤ２０００（プレーヤ３０００）が手に握っている現実のマレット２６０Ｌ（２６０Ｒ）を用いる。プレーヤ２０００は手にマレット２６０Ｌを握っている。相手プレーヤ３０００の直前にはゴール１２００Ｒが見える。後述の画像処理システム（第３図には不図示）は、ゴール１２００Ｒが相手方近傍に見えるように、三次元ＣＧを生成してＨＭＤ２１０Ｌに表示する。
【００２８】
対するプレーヤ３０００も、ＨＭＤ２１０Ｒを介してプレーヤ３０００の近傍にゴール１２００Ｌを見ることとなる。パック１５００も後述の画像処理システムにより生成されて、各々のＨＭＤに表示される。
【００２９】
〈磁気センサ付きＨＭＤ〉
第４図は、ＨＭＤ２１０の構成を示す。このＨＭＤ２１０は、例えば特開平７−３３３５５１号のＨＭＤの本体に、磁気センサ２２０を支柱２２１を介して取り付けたものである。図中、２１１はＬＣＤ表示パネルである。ＬＣＤ表示パネルからの光は、光学部材２１２に入射し、全反射面２１４にて反射して、凹面ミラー２１３の全反射面にて反射して、全反射面２１４を透過して観察者の目に届く。
【００３０】
磁気センサ２２０は、本実施形態では、Polhemus社の磁気センサFastrackを用いた。磁気センサは磁気ノイズに弱いので、プラスティック製の支柱２２１により、ノイズ発生源である表示パネル２１１及びカメラ２４０から離間した。尚、第４図に示したＨＭＤに磁気センサ及び（又は）カメラを取り付ける構成は、光学的シースルー方式の（透視型の）ＨＭＤに限られず、ビデオシースルー方式の（遮蔽型の）ＨＭＤであっても、磁気センサ及び（又は）カメラを、頭部位置及び姿勢を正確に検出する目的で、そのＨＭＤに装着することは可能である。
【００３１】
第２図において、夫々のＨＭＤ２１０はバンド（不図示）によってプレーヤの頭部に固定される。プレーヤの夫々の頭部には、第４図に示すように磁気センサ２２０が、第２図に示すようにＣＣＤカメラ２４０（２４０Ｌ，２４０Ｒ）が、それぞれ固定されている。カメラ２４０の視界はプレーヤの前方方向に設定されている。このような磁気センサ２２０とカメラ２４０とを備えたＨＭＤをエアホッケーゲームに用いる場合には、プレーヤはそれぞれテーブル１０００の上面を見ることとなるので、カメラ２４０もテーブル１０００の表面の画像を撮像する。磁気センサ２２０（２２０Ｌ，２２０Ｒ）は、交流磁界発生源２５０が発する交流磁界の変化をセンスする。
【００３２】
後述するように、カメラ２４０が撮影した画像は、磁気センサ２２０が検出した頭部の位置／姿勢を補正するために用いられる。プレーヤがテーブル１０００の表面を見るために斜め下方を向くと、ＨＭＤ２１０を通した視界には、テーブル１０００の表面と、前述の仮想のパック１５００、現実のマレット２６０（２６０Ｌ，２６０Ｒ）、仮想のゴール１２００（１２００Ｌ，１２００Ｒ）が見える。また、プレーヤが、頭部を、水平二次元平面内において水平移動させ、あるいはティルティング運動、ヨー運動、ローリング運動を行わせると、その変化は先ず磁気センサ２２０によって検出され、併せて、頭部の姿勢変化に伴ってＣＣＤカメラ２４０が撮像する画像の変化として観測される。即ち、磁気センサ２２０からの頭部位置を表す信号はカメラ２４０の画像を画像処理することによって補正される。
【００３３】
〈複数のマーカ〉
夫々のプレーヤに把持される夫々のマレット２６０はその先端に赤外線発光器を有しており、各マレットのテーブル１０００上の位置（二次元平面位置）は各マレットからの赤外線を検出するＣＣＤカメラ２３０によって知られる。即ち、カメラ２３０は各プレーヤの手の位置（マレットの位置）を検出するためにある。マレット位置を検出することにより、本ホッケーゲームの進行を判断することができる。
【００３４】
他方、ＣＣＤカメラ２４０はマーカ画像と呼ばれる画像を出力する。第５図はテーブル１０００上に配置されたマーカの一例を示す。第５図において、○印で示した５つのランドマーク即ちマーカ（１６００〜１６０４）はプレーヤ２０００の頭部位置を補助的に検出するために用いられるマーカを示し、□印で示した５つのランドマーク即ちマーカ（１６５０〜１６５４）はプレーヤ３０００の頭部位置を補助的に検出するために用いられるマーカを示す。マーカを第５図のように複数配置すると、頭部の位置、特に姿勢によって、どのマーカが見えるかが決まる。換言すれば、各々のプレーヤに装着されたＣＣＤカメラ２４０が写す画像中におけるマーカを特定し、画像内での位置を検出することにより、プレーヤの頭部姿勢を検出する磁気センサの出力信号の補正を行うことができる。
【００３５】
尚、第５図の○印と□印とは図示のために採用したものであり、その形状に特徴があるわけではなく、任意の形状であってもよい。二人のプレーヤ（２０００，３０００）に対してそれぞれ割り当てられたマーカ群（１６００〜１６０８）とマーカ群（１６５０〜１６５８）とは、それぞれ、異なる色に着色されている。本実施形態では、左側プレーヤ（＃１プレーヤ）のためのマーカは赤色に、右側プレーヤ（＃２プレーヤ）のためのマーカは緑色に着色されている。画像処理におけるマーカの区別を容易にするためである。尚、色でなく形状やテクスチャによってマーカを区別することも可能である。
【００３６】
本実施形態の大きな特徴は、マーカを複数配置した点にある。複数配置することによって、プレーヤがテーブル１０００上で本エアホッケーゲームの動作範囲内で行動する限りにおいて、少なくとも１つのマーカがＣＣＤカメラ２４０の視野内に入ることが保証される。第６図は、プレーヤが頭部を色々と移動した場合において、頭部の移動に伴って、マーカを検出する画像処理範囲が移動する様子が描かれてる。同図に示すように、１つの画像には少なくとも１つのマーカが入っている。換言すれば、マーカの数、マーカ間の間隔等は、テーブル１０００の大きさ、カメラ２４０の視野角、ゲームの性質に基づくプレーヤの移動範囲の大きさに応じて設定されるべきである。第５図の場合、プレーヤから遠方であればあるほど、広い範囲が視野に入るので、マーカ間の間隔を広くしなければならない。これは、近傍にあるマーカ間の画像中での間隔距離と、遠方にあるマーカ間の画像中での距離とを同じくすることにより、遠方の視野の画像中に取り込まれるマーカの数を低く抑えてマーカ検出精度の低下を防止するためである。このようにすることにより、画像中に取り込まれるマーカの密度が遠方マーカでも近隣のマーカでも実質的に等しくすることができ、同じフレーム内に不必要に複数のマーカが撮像されるのを防ぐことができる。
【００３７】
後述するように、本システムでは、カメラ２４０Ｌ（２４０Ｒ）が得た画像中に少なくとも１つのマーカが存在し、そのマーカを特定できれば十分である。従って、特定のマーカをプレーヤが頭を移動させる間（カメラ２４０を移動させる間）において追跡し続ける必要はない。
【００３８】
〈ＭＲ画像生成システム〉
第７図は、第２図に示したゲーム装置における三次元画像の生成提示システムの構成を示す。この画像生成提示システムは、左側プレーヤ２０００のＨＭＤ２１０Ｌ及び右側プレーヤ３０００のＨＭＤ２１０Ｒの夫々の表示装置に、三次元の仮想画像（第３図のパック１５００，ゴール１２００）を出力するものである。三次元仮想画像のための左右の視差画像の生成は、画像生成部５０５０Ｌ，５０５０Ｒに拠って行われる。本実施形態では、画像生成部５０５０の夫々に米国SiliconGraphics社製のコンピュータシステム「ONYX2」を用いた。
【００３９】
画像生成部５０５０は、ゲーム状態管理部５０３０が生成するパック位置情報等と、２つの補正処理部５０４０Ｌ，５０４０Ｒが生成する補正後の視点位置・頭部方向に関する情報とを入力する。ゲーム状態管理部５０３０および補正処理部５０４０Ｌ，５０４０Ｒの夫々はコンピュータシステムONYX2により構成された。
【００４０】
テーブル１０００の中央上空に固定されたＣＣＤカメラ２３０は、テーブル１０００の表面を全て視野に納める。カメラ２３０によって取得されたマレット情報はマレット位置計測部５０１０に入力される。この計測部５０１０は、同じく、SiliconGraphics社製「O2」コンピュータシステムにより構成された。計測部５０１０は、二名のプレーヤのマレット位置、即ち、手の位置を検出する。手の位置に関する情報はゲーム状態管理部５０３０に入力されて、ここで、ゲーム状態が管理される。即ち、ゲーム状態・ゲームの進行は基本的にはマレットの位置によって決定される。
【００４１】
SiliconGraphics社製コンピュータシステムO2により構成された位置姿勢検出部５０００は、２つの磁気センサ２２０Ｌ，２２０Ｒの夫々の出力（センサ２２０自体の位置及び姿勢）を入力して、各プレーヤに装着されたカメラ（２４０Ｌ，２４０Ｒ）での視点位置（Ｘ，Ｙ，Ｚ）及び姿勢（ｐ，ｒ，φ）を検出し、補正処理部５０４０Ｌ，５０４０Ｒに出力する。
【００４２】
一方、各プレーヤの頭部に固定されたＣＣＤカメラ２４０Ｌ，２４０Ｒはマーカ画像を取得し、このマーカ画像は、夫々、マーカ位置検出部５０６０Ｌ，５０６０Ｒにおいて処理され、夫々のカメラ２４０の視野に納まっている夫々のプレーヤについての追跡マーカの位置が検出される。追跡マーカ位置に関する情報は補正処理部５０４０（５０４０Ｌ，５０４０Ｒ）に入力される。
【００４３】
尚、マーカを追跡するマーカ位置検出部５０６０（５０６０Ｌ，５０６０Ｒ）はO2コンピュータシステムにより構成された。
【００４４】
〈マレット位置計測〉
第８図乃至第１０図は、マレット位置を計測する制御手順を示すフローチャートである。１つの共通カメラでマレットを追跡することにより、複数作業者による共通の複合現実感を提示することが可能となる。第８図乃至第１０図のフローチャートにより、本実施形態のマレット位置の計測について説明する。
【００４５】
エアホッケーゲームでは、プレーヤは自身のマレットを他のプレーヤの領域まで進めることはない。そのために、左側プレーヤ２０００（右側プレーヤ３０００）のマレット２６０Ｌ（２６０Ｒ）を探索する処理は、第１１図に示すように、左側フィールドの画像データＩL（画像データＩR）に処理を集中すればよい。固定位置にあるＣＣＤカメラ２３０が取得した画像を第１１図に示すように２つの領域に分割することは容易である。
【００４６】
従って、第８図のフローチャートにおいて、プレーヤ＃１（プレーヤ２０００）のマレット２６０Ｌの探索についてはステップＳ１００で、プレーヤ＃２（プレーヤ３０００）のマレット２６０Ｒの探索についてはステップＳ２００で、夫々の処理が行われる。そこで、便宜上、右側プレーヤのマレットの探索（ステップＳ２００）を例にして説明する。
【００４７】
先ず、ステップＳ２１０で、ＴＶカメラ２３０が撮像したテーブル１０００表面の多値画像を取得する。ステップＳ２１２では、その多値画像の右半分の画像データＩRについて、サブルーチン「ローカル領域での探索」を施す。「ローカル領域での探索」処理の詳細は第９図に示される。ステップＳ２１２で画像座標系でのマレット位置の座標（ｘ，ｙ）が見つかると、ステップＳ２１４からステップＳ２２０に進み、画像座標系でのマレット位置座標（ｘ，ｙ）を次式に従ってテーブル１０００の座標系（第１３図を参照）の座標位置（ｘ’，ｙ’）に変換する。
【００４８】
【数２】
0003793158.tif 000003
【００４９】
ここで、マトリクスＭTは画像座標系とテーブル座標系とをキャリブレーションするための３×３の変換行列で、既知である。ステップＳ２２０で得られた座標位置（ｘ’，ｙ’）（第３図では、（ｘ’，ｙ’）は「手の位置」としてしめされている）はゲーム状態管理部５０３０に送られる。ローカル領域でマレットがみつからなかったならば、ステップＳ２１６で「グローバル領域での探索」を行う。「グローバル領域での探索」でマレットが見つかったならば、ステップＳ２２０でその座標位置をテーブル座標系に変換する。尚、ローカル又はグローバル領域で探索された座標位置は、次のフレームでのローカル領域におけるマレットの探索に用いられる。
【００５０】
第９図はマレットをローカル領域で探索する処理（ステップＳ２１２の詳細）を示す。但し、この処理は便宜上右側フィールドにおける探索処理を示すが、左側フィールドにおけるマレットの探索処理についても実質的に同様である。ステップＳ２２２で、次式で定義される大きさ（２Ａ＋１）×（２Ｂ＋１）画素の矩形領域を抽出する。
【００５１】
【数３】
0003793158.tif 000004
ここで、上記式中の、Ｉ'x，Ｉ'yは前フレームで検出されたマレットの座標値であり、Ａ，Ｂは探索領域の大きさを決める定数であって、かかる探索領域は第１２図のようになる。
【００５２】
ステップＳ２３０は、ステップＳ２２２で定義された矩形領域中の全ての画素（ｘ，ｙ）について、特徴の評値値ＩS（ｘ，ｙ）が一定の条件を満足する画素を抽出する工程である。マレットを探索する目的では、特徴量とは、画素値（赤外光の強度値）の類似度が好適である。本実施形態では、マレットには赤外線発光器を用いているので、その赤外光の強度の特徴を有するものは、一応マレットと判断する。
【００５３】
即ち、ステップＳ２３２では、類似度ＩSが所定の閾値以上にマレットに近い画素を見つける。そのような画素を見つけると、カウンタＮに発生度数の累積値を記憶する。また、そのような画素のｘ座標値及びｙ座標値をレジスタSUMx及びSUMyに累積記憶する。即ち、
【００５４】
【数４】
0003793158.tif 000005
とする。ステップＳ２３０を終了した時点で、第１２図の領域中でマレットからの赤外光のパターンに類似している全ての画素の個数Ｎ、及び座標値の累積値SUMx，SUMyが得られる。Ｎ＝０であればステップＳ２３６で結果“Not Found”が出力される。Ｎ＞０であれば、マレットらしいものが見つかったのであり、ステップＳ２３８で、マレットの位置（Ｉx，Ｉy）を、
【００５５】
【数５】
0003793158.tif 000006
に従って演算する。そして、この演算されたマレット位置（Ｉx，Ｉy）をステップＳ２２０（第８図）でテーブル座標系に変換し、この変換値を「手の位置」を表す信号として管理部５０３０に渡す。第１０図は、ステップＳ２１６のグローバル領域探索の詳細手順を示す。第１０図のステップＳ２４０で、右側フィールドの画像ＩR中の、
【００５６】
【数６】
0003793158.tif 000007
を満足する画素の中で、特徴の評値値ＩSの最大値をレジスタMaxに記憶する。ここで、Ｃ，Ｄは探索の粗さを決める定数であり、WidthおよびHeightはその定義を第１５図に示す。即ち、ステップＳ２４２で、特徴量ＩSが閾値記憶レジスタMaxに記憶されている閾値を超えるか否かを判断する。そのような画素が見つかったならば、ステップＳ２４４で、その特徴量を新たな閾値とすべく、ステップＳ２４４で、
【００５７】
【数７】
0003793158.tif 000008
とする。ステップＳ２４６では、グローバル探索で見つかった最もマレットらしい画素（Ｉx，Ｉy ）の座標値をステップＳ２２０に渡す。
【００５８】
このようにして、マレットを画像中で見つけ、その座標値をテーブル座標系に変換したものをゲーム状態管理部５０３０に渡す。
【００５９】
〈ゲーム状態管理〉
第１３図は、本実施形態のエアホッケーゲームのゲームフィールドを示す。このフィールドは、テーブル１０００の上の２次元平面上に定義され、ｘ，ｙ軸を有する。また、左右の２つの仮想的ゴールライン１２００Ｌ，１２００Ｒと、第１３図の上下方向に設けられた仮想的壁１３００ａ，１３００ｂとを有する。仮想的ゴールライン１２００Ｌ，１２００Ｒと仮想的壁１３００ａ，１３００ｂとは、その座標値は既知であり、移動することはない。このフィールドの中で、マレット２６０Ｒ，２６０Ｌの移動に応じて、パック１５００の仮想画像が移動する。
【００６０】
パック１５００は、現在位置の座標情報Ｐpと速度情報ｖpとを有し、左マレット２６０Ｌは現在位置の座標情報ＰSLと速度情報ｖSLとを有し、右マレット２６０Ｒは現在位置の座標情報ＰSRと速度情報ｖSRとを有する。第１４図は、ゲーム状態管理部５０３０における処理手順を説明するフローチャートである。
【００６１】
ステップＳ１０において、パック１５００の初期位置Ｐp0及び初期速度ｖp0を設定する。尚、パックは速度ｖpで等速度運動を行う。また、パックは、壁又はマレットに当たると完全弾性衝突を行う、即ち、速度方向が反転するものとする。ゲーム状態管理部５０３０は、マレット位置計測部５０１０が計測した各マレットの位置情報ＰSから速度情報ｖSを得る。
【００６２】
ステップＳ１２は、ゲームでの勝敗が決定する（ステップＳ５０で一方が３点を先取する）迄の間は、Δｔ時間毎に実行される。すると、ステップＳ１２では、パックの位置は、
【００６３】
【数８】
0003793158.tif 000009
に更新される。初期位置及び初期速度設定後におけるパックの位置は、一般には、
【００６４】
【数９】
0003793158.tif 000010
で表される。ステップＳ１４では、更新されたパック位置Ｐpがプレーヤの＃１側（左プレーヤ）のフィールドにあるか否かを調べる。パック１５００が左プレーヤ側にある場合について説明する。
【００６５】
ステップＳ１６では、現在のパック位置が左プレーヤのマレット１１００Ｌと干渉する位置にあるか否かを調べる。パック１５００がマレット１１００Ｌと干渉する位置にあるとは、左プレーヤ２０００がマレット２６０Ｌをパックに衝突させるようなマレット操作を行ったことを意味するから、パック１５００の運動を反転させるために、ステップＳ１８で、パック１５００の速度ｖpのｘ方向速度成分ｖpxの符号を反転させて、ステップＳ２０に進む。
【００６６】
尚、単に速度ｖpのｘ方向速度成分ｖpxの符号を反転させる代わりに、
【００６７】
【数１０】
0003793158.tif 000011
として、パックの動作を、パックのｘ方向速度ｖpxにマレットのｘ方向の操作速度ｖSLxを重畳して、反対方向に進ませるようにしても良い。一方、現在のパック位置が左プレーヤのマレット１１００Ｌと干渉する位置にない場合（ステップＳ１６でＮＯ）には、そのままステップＳ２０に進む。
【００６８】
ステップＳ２０では、パックの位置Ｐpが仮想壁１３００ａ又は１３００ｂと衝突する位置にあるか否かを調べる。ステップＳ２０の判断がＹＥＳの場合には、ステップＳ２２でパックの速度のｙ成分を反転させる。次ぎにステップＳ２４で、現在のパック位置が左プレーヤのゴールライン内にあるか否かを調べる。ＹＥＳの場合には、ステップＳ２６で相手側のプレーヤ、即ち、右（＃２）プレーヤの得点を加算する。ステップＳ５０では、いずれかの得点が３点以上先取したかを調べる。３点以上であればゲームを終了する。
【００６９】
ステップＳ１４での判断で、パックの位置Ｐpが右プレーヤ側（＃２プレーヤ側）にある場合には、ステップＳ３０以下を実行する。ステップＳ３０〜ステップＳ４０は、ステップＳ１６〜ステップＳ２６と実質的に動作は同じである。かくして、ゲームの進行状態は管理される。ゲームの進行状態は、パックの位置、マレットの位置であり、前述したように、画像生成部５０５０（５０５０Ｌ，５０５０Ｒ）に入力される。
【００７０】
〈頭部位置の補正〉
第１６図は、補正処理部５０４０（５０４０Ｌ，５０４０Ｒ）における処理の制御手順の全体を示す。補正処理部５０４０における補正とは、磁気センサ２２０の出力は誤差を伴うものであり、そのような出力に基づいて計測部５０００が演算した視点位置データ及び頭部姿勢データを、ＣＣＤカメラ２４０から得られた画像中のマーカ位置に基づいて補正する処理をいう。即ち、この補正処理は、カメラ２４０が取得した画像中のマーカ位置から、カメラ２４０の位置（頭部の位置に密接に関連するものでもある）の補正値を求め、その補正値を用いて、視点のビューイング変換行列を変更する。変更されたビューイング変換行列は補正された視点の位置及び姿勢データを表すものであり、換言すれば、この補正されたビューイング変換行列は補正された視点位置での仮想画像を与える。
【００７１】
第２６図は、第１実施形態における観察者の視点位置／姿勢の補正の原理を説明する。ここで、実施形態における観察者の視点位置／姿勢の補正とは、補正されたビューイング変換行列を求めることと等値である。第２６図において、プレーヤのカメラ２４０がマーカ１６０３を画像３００に捉えているとする。マーカ１６０３の位置はこの画像３００内では画像座標系で例えば（ｘ0，ｙ0）と表される。一方、画像３００が捉えているマーカが１６０３であることが分かれば、そのマーカ１６０３の世界座標系での座標（Ｘ0，Ｙ0，Ｚ0）は既知である。（ｘ0，ｙ0）は画像座標値であり（Ｘ0，Ｙ0，Ｚ0）は世界座標であるから、これらの座標同士を比較することはできない。第１実施形態では、磁気センサ２２０の出力からカメラ２４０のビューイング変換行列ＭCを求め、世界座標系での座標（Ｘ0，Ｙ0，Ｚ0）をこのビューイング変換行列ＭCを用いて画像座標系の座標（ｘ'0，ｙ'0）に変換する。そして、（ｘ0，ｙ0）と（ｘ'0，ｙ'0）との誤差が磁気センサ２２の出力の誤差を表現するものであるから、これを補正する補正行列ΔＭCを求める。
【００７２】
尚、第２６図から明らかなように、画像３００内に捉えられたマーカがマーカ１６０３であることを特定する必要があるが、第１実施形態では、後述するように、全てのマーカの世界座標系での三次元位置を上記ビューイング変換行列ＭCにより画像座標系に変換して、変換後のカメラ座標値が上記（ｘ0，ｙ0）に最も近いマーカを画像３００内に捉えられたマーカと特定する。この処理は第１９図及び第２０図によって説明されるであろう。
【００７３】
第１６図に従って補正処理部５０４０の処理手順を詳細に説明する。即ち、ステップＳ４００では、磁気センサ２２０の出力に基づいて、カメラ２４０のビューイング変換行列（４×４）を計算する。ステップＳ４１０では、ステップＳ４００で求めたビューイング変換行列と、カメラ２４０の理想的透視変換行列（既知）と、各マーカの三次元位置（既知）とに基づいて、各マーカが観測されるべき位置座標（画像座標系での）を予測する。
【００７４】
一方、マーカ位置検出部５０６０（５０６０Ｌ，５０６０Ｒ）は、プレーヤの頭部に取り付けられたカメラ２４０（２４０Ｌ，２４０Ｒ）から得た画像中でマーカを追跡している。マーカ位置検出部５０６０は、検出したマーカ位置を、補正処理部５０４０（ステップＳ４２０において）に渡す。補正処理部５０４０（５０４０Ｌ，５０４０Ｒ）は、ステップＳ４２０において、渡されたマーカ位置情報に基づいて、現在観測しているマーカ、即ち補正の基準となるマーカを判別する。ステップＳ４３０では、ステップＳ４１０で演算されたマーカの予測座標値とマーカ位置検出部５０６０が検出したマーカの観測座標値との差異に基づいて、磁気センサ２２０が検出したカメラ２４０の位置姿勢を補正するための補正行列ΔＭｃを求める。カメラ２４０の位置姿勢の補正ができるのは、マーカ位置検出部５０６０が観測したマーカ（第２６図の例ではマーカ１６０３）の座標値と磁気センサが検出した頭部位置に基づくマーカ座標とは、センサ出力が正確であれば一致している筈であるから、ステップＳ４３０で演算する上記の差異は磁気センサ２２０の誤差を反映するからである。カメラの位置姿勢と視点の位置姿勢との相対関係は既知であり、その関係は三次元座標変換で表される。従って、このカメラの位置姿勢の補正行列ΔＭｃに基づいて、ステップＳ４４０で、ステップＳ４００で演算した視点のビューイング変換行列を補正し、この補正された変換行列を画像生成部５０５０（５０５０Ｌ，５０５０Ｒ）に渡す。
【００７５】
第１７図はマーカ位置検出部５０６０における、マーカの位置検出のための処理手順である。ステップＳ５００では、カメラ２４０が取得したカラー画像を取り込む。その後に、ステップＳ５０２では、「ローカル領域探索」を、ステップＳ５０６では「グローバル領域探索」を行って、画像座標系によって表されたマーカ位置（ｘ，ｙ）を検出する。ステップＳ５０２の「ローカル領域探索」、ステップＳ５０６の「グローバル領域探索」は、手順としては、マレット探索における「ローカル領域探索」（第９図）、「グローバル領域探索」（第１０図）に実質的に同じであるので、この「ローカル領域探索」（第９図）と「グローバル領域探索」（第１０図）とを援用することとし、図示を省略する。但し、援用された制御手順（ステップＳ２３２）における、マーカ探索のための特徴量ＩSとして、プレーヤ＃１（左）について、注目画素の画素値の、
【００７６】
【数１１】
0003793158.tif 000012
を用いる。プレーヤ＃１については、マーカ（１６００〜１６０４）には赤色を用いているので、この特徴量は赤らしさの程度を表す。また、プレーヤ＃２（右）については緑色のマーカ（１６５０〜１６５４）を用いているので、
【００７７】
【数１２】
0003793158.tif 000013
を用いる。また、グローバル探索における特徴量ＩS（ｘ，ｙ）についても上記２つの量を用いる。ステップＳ５０２及びステップＳ５０６で得られたマーカの座標値は、ステップＳ５１０で、歪みを補正するための行列Ｍ（例えば３×３の大きさを有する）を用いて歪みのない理想的な画像座標系に変換する。この時の変換式は、
【００７８】
【数１３】
0003793158.tif 000014
である。次ぎに、第１６図のステップＳ４１０の処理の詳細について第１８図を用いて説明する。前述したように、ステップＳ４００では世界座標系からカメラ座標系への変換行列ＭC（４×４のビューイング変換行列）が得られている。一方、カメラ座標系から画像座標系への変換行列ＰC（４×４）も既知の値として与えられている。また、注目するマーカの三次元座標位置（Ｘ，Ｙ，Ｚ）も既知として与えられている。
【００７９】
即ち、角度ｒをカメラ２４０の位置でのＺ軸方向の回転(roll)とし、角度ｐをカメラ２４０の位置でのＸ軸方向の回転(pitch)とし、角度φをカメラ２４０の位置でのＺ軸方向の回転(yaw)とし、カメラ２４０の位置を（Ｘ0，Ｙ0，Ｚ0）すると、カメラ２４０のビューイング変換行列（即ち、世界座標系からカメラ座標系への変換行列）Ｍcは、
【００８０】
【数１４】
0003793158.tif 000015
であり、ｄをカメラ２４０の焦点距離、ｗをカメラの撮像面の幅、ｈを同じく高さとすると、カメラ座標系から画像座標系への変換行列ＰCは、
【００８１】
【数１５】
0003793158.tif 000016
で表される。従って、第１８図のステップＳ５２０（即ち第１６図のステップＳ４１０）では、注目マーカの座標位置（Ｘ，Ｙ，Ｚ）を、次式に従って、画像面上での位置（ｘh，ｙh，ｚh）に変換する。
【００８２】
【数１６】
0003793158.tif 000017
【００８３】
ステップＳ５２２では、画像座標系におけるマーカの観測予測座標値ｘ、ｙとして、
【００８４】
【数１７】
0003793158.tif 000018
を得る。かくして、ステップＳ４１０により、各マーカｉの画像座標系での観測予測座標値（ｘi，ｙi）を得ることができる。次ぎに、ステップＳ４２０における「マーカ判別」の処理を説明する。第１９図は、テーブル１０００上において、一方のプレーヤのカメラ２４０が画像６００を取得した場合を示す。
【００８５】
テーブル１０００上に設けられているマーカを、例えばＭ1〜Ｍ7とし、△印で表す。このマーカの三次元位置Ｍiは既知である。画像６００内には、マーカＭ2，Ｍ3，Ｍ6，Ｍ7が含まれている。一方、各マーカＭiの観測予測位置はステップＳ５２０で求められたものであり、それをＰiとする。また、Ｑは、マーカ位置検出部５０６０が検出し、検出部５０６０から渡されたマーカ位置を示す。
【００８６】
ステップＳ４２０の「マーカの判別」は、マーカ位置検出部５０６０が検出したマーカ位置Ｑが、どのＰi（即ち、どのＭi）に対応するかを判断するものである。第１９図において、ベクトルｅiを、検出されたマーカ位置Ｑから各マーカの予測位置Ｐiに向かうベクトルの長さ、即ち、距離を表すものとする。ステップＳ４２０の詳細を第２０図に示す。即ち、第２０図の処理は、画像６０００内に入るマーカｉ（ｉ＝０〜ｎ）の距離ｅiのうち、最小値を示すマーカを探索し、そのマーカの識別子ｉを出力するものである。即ち、
【００８７】
【数１８】
0003793158.tif 000019
である。第１９図の例では、Ｐ2間での距離ｅ2が一番短いので、マーカＭ2を磁気センサ出力の補正に用いるデータとする。かくして、プレーヤがどのように移動しても、その活動範囲（フィールド）内では、カメラ２４０は少なくとも１つのマーカを画像中に捉えるので、従来のように、フィールドの大きさを狭く限定する必要が無くなる。
【００８８】
次に、ステップＳ４３０では、第１図において説明した処理と同じであって、式１８に基づいて得られた誤差距離ｅminに基づいて、カメラの位置方位の補正を表す変換行列ΔＭcを求める。一方、ステップＳ４３２では、磁気センサ出力に基づいて、プレーヤの視点位置でのビューイング変換行列ＭVを求める。また、Ｍvcをカメラ座標系から視点座標系への変換行列（既知である）とすると、ステップＳ４４０では、このＭvcを用いて、次式によって補正後の視点のビューイング変換行列Ｍv’を導出する。
【００８９】
【数１９】
0003793158.tif 000020
【００９０】
尚、第２６図から明らかであり、また後述の第２実施形態からも明らかになることであるが、第１実施形態（第１６図の処理）では、画像座標系に変換して、誤差距離ｅを求めたが、反対に世界座標系に変換して誤差距離ｅを求めても同じように補正後の視点のビューイング変換行列を得ることができる。
【００９１】
〈頭部位置の検出精度の向上〉…第２実施形態
上記第１実施形態では、ＨＭＤ２１０Ｌ（２１０Ｒ）には前方モニタ用の１つのカメラ２４０Ｌ（２４０Ｒ）が設けられていた。このカメラ２４０により取得されたテーブル１０００上のマーカの画像を、処理部５０６０が処理して、画像中のマーカを特定（ステップＳ４２０）して、プレーヤの頭部の姿勢、即ち、頭部に装着されたカメラの姿勢、換言すれば、この姿勢を有するカメラによるビューイング変換を表す行列を決定するというものであった。しかしながら、第１実施形態では画像座標系での誤差のみを利用しているため、カメラとマーカの位置関係に三次元的なずれが残ってしまう。
【００９２】
また、複合現実感を提示するための用途によっては、マーカが３次元空間の任意位置におかれる場合もあり、このような場合は第１実施形態での第１６図に示されたマーカの同定手法は信頼性が低くなる。次に提案する第２実施形態は、この三次元的なずれの問題を解消する。即ち、一人のプレーヤに２台のカメラを装着してマーカの検出を世界座標系で行うことで、上記の問題を解消する。また、第２実施形態は、マーカが平面上に配置されなくてはならないという拘束も緩和する。
【００９３】
具体的には、２つのカメラが左右に配置装着された２台のＨＭＤを二人のプレーヤに用いるものである。即ち、第２１図に示すように、プレーヤ２０００（３０００）のＨＭＤ２１０Ｌ（２１０Ｒ）には、２台のカメラ２４０ＬＲ，２４０ＬＬ（２４０ＲＲ，２４０ＲＬ）を装着し、このカメラ２４０ＬＲ，２４０ＬＬ（２４０ＲＲ，２４０ＲＬ）から得たステレオ画像から、カメラ２４０ＬＲ，２４０ＬＬ（２４０ＲＲ，２４０ＲＬ）の姿勢を補正するものである。
【００９４】
尚、第２実施形態のシステムは、マーカが３次元的に配置された場合にも対処できるものであるが、第１実施形態の処理手順との異同を明瞭にするために、第１実施形態と同じく、平面上に配置された複数のマーカを用いるエアホッケーゲームに適用する。第２２図は、第２実施形態に関わる画像処理システムの一部を示す。即ち、第２２図は、第１実施形態の画像処理システム（第７図）のうちの変更部分を示す。即ち、第７図と第２２図とを対比すると、第２実施形態の画像処理システムは、各プレーヤに２台のカメラが設けられている点のほかに、マーカ位置検出部５０６０Ｌ’（５０６０Ｒ’）と、補正処理部５０４０Ｌ’（５０４０Ｒ’）とを有する点で第１実施形態と異なるものの、第２実施形態のマーカ位置検出部５０６０Ｌ’（５０６０Ｒ’）と、補正処理部５０４０Ｌ’（５０４０Ｒ’）は第１実施形態のマーカ位置検出部５０６０Ｌ（５０６０Ｒ）と、補正処理部５０４０Ｌ（５０４０Ｒ）とソフトウエアの処理において異なっているに過ぎない。
【００９５】
第２３図は、第２実施形態の処理手順のうちの特に左側プレーヤ２０００のための制御手順を示し、特に、第１実施形態の第１６図の制御手順に対応する部分であって、マーカ位置検出部５０６０’と位置・姿勢検出部５０００と補正処理部５０４０Ｌ’との連係動作を説明する。第２３図に於いて、第１実施形態と同じところの位置・姿勢検出部５０００は、ステップＳ３９８で磁気センサ２２０Ｌの出力に基づいて、視点のビューイング変換行列を算出する。ステップＳ４００’では、磁気センサ２２０Ｌの出力に基づいて、カメラ２４０ＬＲのビューイング変換行列の逆行列を算出する。この変換行列は補正処理部５０４０’に送られる。
【００９６】
２台のカメラ２４０ＬＬ（２４０ＬＲ）からの画像はマーカ位置検出部５０６０Ｌ’に送られる。即ち、ステップＳ４０２では、検出部５０６０’が右側カメラ２４０ＬＲからの画像Ｒ中にマーカ画像ｍRを抽出する。抽出されたマーカの座標（即ち、観測座標）をＩmRで表す。ステップＳ４０４では、検出部５０６０’が右側カメラ２４０ＬＬからの画像Ｌ中に対応マーカ画像ｍLを抽出する。抽出されたマーカの座標をＩmLで表す。マーカ画像ｍRとマーカ画像ｍLとは本来同じマーカｍXのものであるから、ステップＳ４０６では、観測された１組のマーカ座標（ＩmR，ＩmL）から、三角測量の原理に基づいて、カメラ２４０ＬＲの座標系における抽出された観測マーカの三次元位置Ｃmを導出する。
【００９７】
尚、ステップＳ４０４では、一般的なステレオ視による手法を用いてマーカ画像ｍLの対応点探索を行うが、処理を高速に行うために、周知のエピポーラ拘束epipolar bindを用いて探索範囲を限定してもよい。第２３図のステップＳ４１０’，ステップＳ４２０’，ステップＳ４２２，ステップＳ４３０’は補正処理部５０４０Ｌ’における処理を示す。
【００９８】
まず、ステップＳ４１０’では、観測されたマーカのカメラ座標系における三次元位置Ｃmを、ステップＳ４００’において導出された透視変換行列を用いて、世界座標系の三次元位置Ｗmに変換する。ステップＳ４２０’では、全てのマーカｍiの世界座標系における３次元位置Ｗmi（既知）を所定のメモリから取り出して、個々のマーカｍiと観測マーカｍXとのユークリッド距離｜Ｗmi−Ｗm｜を最小とするようなＷmiを決定する。即ち、観測マーカｍX最も近い位置にある既知のマーカを同定する。
【００９９】
ＷmiとＷmとは本来的には同じ位置ではあるが、センサの誤差によって誤差ベクトルＤ（第１実施形態のｅに相当）が発生しているものである。そこで、ステップＳ４２０’では、観測された（追跡された）マーカの３次元座標（世界座標）に最も近い座標値Ｗmiを有するマーカを決定し、ステップＳ４３０’では、観測マーカと決定されたマーカとの距離差ベクトルＤを、
【０１００】
【数２０】
0003793158.tif 000021
により演算して、カメラ位置をこのベクトル量だけ移動させるための変換行列ΔＭcを求め、ステップＳ４４０’では、第１実施形態と同じ手法で視点のビューイング変換行列を補正する。
【０１０１】
かくして、本発明は、２台のカメラを装着したＨＭＤを用いることにより、観測マーカの位置検出を三次元的に行うことができ、このために、より正確な視点の位置姿勢が検出可能となり、ＭＲの仮想画像と実画像とのつなぎが滑らかとなる。
【０１０２】
〈変形例１〉
本発明は上述の第１実施形態や第２実施形態にのみ適用されるものではない。
【０１０３】
上記第１実施形態では、画像中にマーカを検出する処理は、第１７図に示すように、最初に見つかったものを追跡対象のマーカとしていた。そのために、例えば、第２４図に示すように、あるフレームでマーカＭ1を含む画像８００が得られた場合に、その後のフレームの画像領域８１０には、マーカが領域８１０の端部ではあるがその領域８１０内に含まれている場合には、マーカＭiを補正処理の基準用のマーカとして決定することに不都合はない。しかし、その後のフレームで、例えば画像８２０が得られ、その領域内にはマーカＭiが外れ、代わりにマーカＭ2を含む場合には、補正のための基準マーカはそのマーカＭ2に変更せざるを得ない。このようなマーカの変更は追跡に失敗した場合にも必要となり、位置ずれの補正には、新たに追跡されたマーカが利用される。
【０１０４】
このように補正に使用するマーカを切り替えることの問題点として、その切り替わりの際に、補正値の急激な変化が原因となって、仮想物体が不自然に移動してしまう場合がある。そこで、補正値の時間的整合性を保つために、前フレームまでの補正値を次の補正値の設定に反映させることを変形例として提案する。
【０１０５】
即ち、あるフレームでの補正値（世界座標系での平行移動を表す３次元ベクトル）をｖt、前フレームでの補正値をｖ't-1としたとき、次式で求められるｖ'tを新たな補正値とする。
【０１０６】
【数２１】
0003793158.tif 000022
ここでαは、過去の情報の影響の度合いを定義する０≦α＜１の定数である。上記式の意味するところは、前フレームでの補正値ｖ't-1に拠る寄与度をαとし、今回のフレームで得られた補正値ｖtを（１−α）の寄与度で用いるというものである。
【０１０７】
このようにすることにより、補正値の急激な変化が緩和され、三次元仮想画像の急激な変化（不自然な移動）が解消する。新たな補正値αを適当な値に設定することで、マーカの切り替わりによる不自然な物体の移動を防ぐことができる。
【０１０８】
〈変形例２〉
上記実施形態では、画像中にマーカを検出する処理は、第１７図に示すように、ローカル探索でマーカを発見できなかった場合、前回のフレームでのマーカの位置に関わらず、全画面中で最も類似度の高い点を追跡対象のマーカとしていた。ここで、マーカの探索を、前のフレームで見つかったマーカの位置を中心にして、マーカ探索を行う変形例を提案する。これは、プレーヤの移動に伴う画像フレームの移動があっても、マーカは前フレームに存在した位置から大きくずれていない位置に存在する可能性が高いからである。
【０１０９】
第２５図は、前回のフレームにおいて見つかったマーカを今回のフレームに探索する原理を説明する。このような探索経路で探索を行い、ある閾値以上の類似度を持つ点を見つけたら、この点を追跡対象のマーカとするのである。
【０１１０】
〈変形例３〉
上記実施形態は光学式ＨＭＤを用いたものであったが、本発明は光学式ＨＭＤの適用に限定されるものではなく、ビデオシースルー方式のＨＭＤにも適用可能である。
【０１１１】
〈変形例４〉
上記実施形態は、エアホッケーゲームに適用したものであったが、本発明はエアホッケーゲームに限られない。本発明は、複数人の作業（例えばマレット操作）を、１つのカメラ手段により撮像して捉えるので、その複数人の作業を１つの仮想空間に再現することが可能である。従って、本発明は、２人以上の作業者を前提とした協調作業（例えば、複数人による設計作業のＭＲプレゼンテーション、あるいは複数人の対戦型ゲーム）の実施例にも好適である。
【０１１２】
本発明の、複数のマーカに基づいた頭部姿勢位置を補正する処理は、複数人の協調作業にのみ好適であることはない。一人の作業者（あるいはプレーヤ）に複合現実感を提示するシステムにも適用可能である。
【０１１３】
〈他の変形例〉
第２実施形態では、２台のカメラを用いていたが、３台以上のカメラを用いてもよい。
【０１１４】
前述したように、マーカはプレーヤのカメラ２４０の少なくとも１つ捉えられれば十分である。マーカの数が多すぎると、画像に捕捉されるマーカの数が多くなり、第１６図のＳ４３０や第２３図のＳ４３０’の追跡マーカの同定処理で、マーカを誤って同定してしまう可能性が高くなる。従って、作業がカメラ２４０の移動をある程度規制できるものであれば、そのカメラに常に１つのマーカだけが捕捉されるように、マーカの数を少なくすることも可能である。
【０１１５】
また、前述の実施形態としての位置姿勢検出装置は、プレーヤの視点位置での補正されたビューイング変換行列を出力するものであったが、本発明はこれに限定されず、プレーヤの視点位置を補正された値（Ｘ，Ｙ，Ｚ，ｒ，ｐ，φ）の形式で出力する装置にも適用できる。また、マーカは、上述のシステムがマーカ若しくはマークとして認識できるものであれば、いかなる形状を有してもよく、また、マークではなく、ものであってもよい。
【０１１６】
【発明の効果】
以上説明したように、本発明によれば、補正値の急激な変化が緩和され、三次元仮想画像の急激な変化（不自然な移動）が解消する。また、新たな補正値αを適当な値に設定することで、マーカの切り替わりによる不自然な物体の移動を防ぐことができる。
【図面の簡単な説明】
【図１】従来技術において、および本発明の実施形態に適用されている、カメラ位置の補正の原理を説明する図。
【図２】本発明の実施形態に用いられているゲーム装置の構成を示す側面図。
【図３】第２図のゲーム装置で左側プレーヤの視界に見えるシーンを説明する図。
【図４】第２図のゲーム装置に用いられているＨＭＤの構成を説明する図。
【図５】第２図のゲーム装置のテーブルに設けられたマーカの配置を説明する図。
【図６】第５図のテーブル上で、プレーヤの移動につれて、プレーヤの頭部に装着されたカメラに捉えられる画像中に含まれるマーカの変遷を説明する図。
【図７】実施形態のゲーム装置のための、三次元画像生成装置の構成を説明する図。
【図８】実施形態のマレット位置計測部に因る処理手順を説明するフローチャート。
【図９】実施形態のマレット位置計測部に因る処理手順の一部サブルーチン（ローカル探索）を説明するフローチャート。
【図１０】実施形態のマレット位置計測部に因る処理手順の一部サブルーチン（グローバル探索）を説明するフローチャート。
【図１１】第８図のフローチャートの処理において用いられる処理対象領域の分割を説明する図。
【図１２】第８図のフローチャートの処理において用いられる対象領域の設定手法を示す図。
【図１３】本実施形態のゲームにおける仮想ゲームフィールドの構成を説明する図。
【図１４】実施形態のゲーム状態管理部におけるゲーム管理の制御手順を説明するフローチャート。
【図１５】マレット検出ための手法を説明する図。
【図１６】実施形態における補正処理部の処理手順を全体的に説明するフローチャート。
【図１７】第１６図のフローチャートの一部（マーカの追跡）を詳細に説明するフローチャート。
【図１８】第１６図のフローチャートの一部（マーカ位置の予測）を詳細に説明するフローチャート。
【図１９】補正のために使用される基準となるマーカの検出の原理を説明する図。
【図２０】基準となるマーカの検出の原理を説明するフローチャート。
【図２１】第２の実施形態に用いられるＨＭＤの構成を示す図。
【図２２】第２実施形態の画像処理システムの主要の構成を示すブロック図。
【図２３】第２実施形態の画像処理システムの制御の一部を示すフローチャート。
【図２４】実施形態の変形例に適用される基準マーカの変遷を説明する図。
【図２５】実施形態の変形例に適用されるマーカ探索の原理を説明する図。
【図２６】第１実施形態の補正処理の原理を説明する図。
【図１】
0003793158.tif 000023
【図２】
0003793158.tif 000024
【図３】
0003793158.tif 000025
【図４】
0003793158.tif 000026
【図５】
0003793158.tif 000027
【図６】
0003793158.tif 000028
【図７】
0003793158.tif 000029
【図８】
0003793158.tif 000030
【図９】
0003793158.tif 000031
【図１０】
0003793158.tif 000032
【図１１】
0003793158.tif 000033
【図１２】
0003793158.tif 000034
【図１３】
0003793158.tif 000035
【図１４】
0003793158.tif 000036
【図１５】
0003793158.tif 000037
【図１６】
0003793158.tif 000038
【図１７】
0003793158.tif 000039
【図１８】
0003793158.tif 000040
【図１９】
0003793158.tif 000041
【図２０】
0003793158.tif 000042
【図２１】
0003793158.tif 000043
【図２２】
0003793158.tif 000044
【図２３】
0003793158.tif 000045
【図２４】
0003793158.tif 000046
【図２５】
0003793158.tif 000047
【図２６】
0003793158.tif 000048