(57)【要約】【課題】  第１の座標変換情報、第２の座標変換情報の概略値を外部から入力することなく、より簡便かつ確実に校正情報を取得する為の技術を提供すること。【解決手段】  校正情報算出部５４０は、第２の座標変換情報の複数の候補と、センサ計測値と、世界座標系におけるビデオカメラ１００の位置及び姿勢とを用いて、第１の座標変換情報の候補を複数求める。そして、求めた複数の候補を統合して１つの第１の座標変換情報を求める。そして、第２の座標変換情報の候補と、第１の変換情報とを校正情報の初期値とし、校正情報を補正する為の繰り返し演算を行う。【選択図】  図２
2008224454.tif 000002
【特許請求の範囲】
【請求項１】
複数の指標が配された現実空間を撮像装置で撮像することによって得られる現実空間画像を取得する第１の取得手段と、
前記第１の取得手段が取得した現実空間画像中の各指標について、投影像の画像座標を取得する第２の取得手段と、
前記複数の指標の世界座標系における位置を記憶する第１の記憶手段と、
前記撮像装置における測点の位置及び姿勢を計測するためのセンサが計測した位置及び姿勢を取得する第３の取得手段と、
前記撮像装置を基準とする座標系と前記測点を基準とする座標系との間の変換を行うための第２の変換情報の候補を複数、取得する第４の取得手段と、
前記第２の取得手段が取得した各指標の画像座標と、前記第１の記憶手段が記憶する当該各指標の世界座標系における位置と、を用いて、世界座標系における前記撮像装置の位置及び姿勢を取得する第５の取得手段と、
前記第２の変換情報の複数の候補の中から１つを選択する選択手段と、
前記選択手段が選択した第２の変換情報と、前記第３の取得手段が取得した位置及び姿勢と、前記第５の取得手段が取得した位置及び姿勢と、を用いて、前記センサを基準とする座標系と世界座標系との間の変換を行うための第１の変換情報を求める第１の計算手段と、
前記選択手段が選択した第２の変換情報と、前記第１の計算手段が求めた前記第１の変換情報とを、前記センサから取得する位置及び姿勢を校正するための校正情報の初期値とし、当該校正情報を補正する為の繰り返し演算を行う第２の計算手段とを有し、
前記選択手段、前記第１の計算手段、前記第２の計算手段による処理を繰り返し行うことにより校正情報を求めることを特徴とする情報処理装置。
【請求項２】
前記第２の変換情報の候補は、予め記憶されているものであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第４の取得手段は、前記第２の変換情報の候補を乱数によって生成することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
更に、
前記校正情報を補正するための処理が成功したことを判定する手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
更に、
前記校正情報を補正するための処理において求められる残差が最も小さい校正情報を選択する手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
更に、
求めた校正情報のうち１つを選択し、前記センサが計測した位置及び姿勢を取得し、取得した位置及び姿勢を、選択した校正情報を用いて校正する手段と、
校正された位置及び姿勢を出力する手段と
を備えることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
更に、
求めた校正情報のうち１つを選択し、前記センサが計測した位置及び姿勢を取得し、取得した位置及び姿勢を、選択した校正情報を用いて校正し、校正した位置及び姿勢を有する視点から見える仮想空間画像を生成する生成手段と、
前記生成手段が生成した仮想空間画像を、前記第１の取得手段が取得した現実空間画像と合成することで合成画像を生成し、表示装置に対して出力する出力手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
撮像装置の位置及び姿勢を計測するためのセンサの校正情報を求めるための情報処理装置であって、
前記撮像装置の異なる位置及び姿勢の状態での前記センサの計測値を入力する入力手段と、
前記異なる位置及び姿勢の状態で前記撮像装置が撮像した画像に含まれる複数の特徴点の座標の実測値を取得する取得手段と、
前記入力手段で入力された複数の前記計測値と、前記取得手段で取得された複数の前記実測値と、予め記憶された前記複数の特徴点の世界座標に基づいて、前記校正情報を算出する算出手段とを有し、
前記校正情報は、前記センサに基づくセンサ座標系における位置姿勢を、世界座標系における位置及び姿勢に変換するための第１の変換情報と、前記センサによる測点の計測値の位置及び姿勢を前記撮像装置に基づく座標系における位置姿勢に変換する第２の変換情報を含み、
前記算出手段が、
前記異なる位置及び姿勢のうちの少なくとも一つの位置及び姿勢において、前記取得手段が取得した前記特徴点の座標の実測値と該特徴点の世界座標に基づいて、前記撮像装置の位置及び姿勢を算出する第１の算出手段と、
前記第２の変換情報の概略値を設定する第１の設定手段と、
前記第１の算出手段が算出した前記撮像装置の位置及び姿勢と、当該位置及び姿勢における前記センサの計測値に基づいて、前記第１の設定手段が設定した前記第２の変換情報の概略値に対応する前記第１の変換情報の概略値を算出する第２の算出手段と、
前記第１の設定手段が設定した前記第２の変換情報の概略値と、前記第２の算出手段が算出した前記第１の変換情報の概略値とを前記校正情報の初期値として、前記入力手段が入力した前記異なる位置及び姿勢における前記センサの計測値と、前記取得手段が取得した前記異なる位置及び姿勢における前記特徴点の座標の実測値とに基づいて、前記校正情報を補正する補正手段とを含むことを特徴とする情報処理装置。
【請求項９】
複数の指標が配された現実空間を撮像装置で撮像することによって得られる現実空間画像を取得する第１の取得工程と、
前記第１の取得工程で取得した現実空間画像中の各指標について、投影像の画像座標を取得する第２の取得工程と、
前記複数の指標の世界座標系における位置を記憶する第１の記憶工程と、
前記撮像装置における測点の位置及び姿勢を計測するためのセンサが計測した位置及び姿勢を取得する第３の取得工程と、
前記撮像装置を基準とする座標系と前記測点を基準とする座標系との間の変換を行うための第２の変換情報の候補を複数、取得する第４の取得工程と、
前記第２の取得工程で取得した各指標の画像座標と、前記第１の記憶工程で記憶する当該各指標の世界座標系における位置と、を用いて、世界座標系における前記撮像装置の位置及び姿勢を取得する第５の取得工程と、
前記第２の変換情報の複数の候補の中から１つを選択する選択工程と、
前記選択工程で選択した第２の変換情報と、前記第３の取得工程で取得した位置及び姿勢と、前記第５の取得工程で取得した位置及び姿勢と、を用いて、前記センサを基準とする座標系と世界座標系との間の変換を行うための第１の変換情報を求める第１の計算工程と、
前記選択工程で選択した第２の変換情報と、前記第１の計算工程で求めた前記第１の変換情報とを、前記センサから取得する位置及び姿勢を校正するための校正情報の初期値とし、当該校正情報を補正する為の繰り返し演算を行う第２の計算工程とを有し、
前記選択工程、前記第１の計算工程、前記第２の計算工程による処理を繰り返し行うことにより校正情報を求めることを特徴とする情報処理方法。
【請求項１０】
撮像装置の位置及び姿勢を計測するためのセンサの校正情報を求めるための情報処理方法であって、
前記撮像装置の異なる位置及び姿勢の状態での前記センサの計測値を入力する入力工程と、
前記異なる位置及び姿勢の状態で前記撮像装置が撮像した画像に含まれる複数の特徴点の座標の実測値を取得する取得工程と、
前記入力工程で入力された複数の前記計測値と、前記取得工程で取得された複数の前記実測値と、予め記憶された前記複数の特徴点の世界座標に基づいて、前記校正情報を算出する算出工程とを有し、
前記校正情報は、前記センサに基づくセンサ座標系における位置姿勢を、世界座標系における位置及び姿勢に変換するための第１の変換情報と、前記センサによる測点の計測値の位置及び姿勢を前記撮像装置に基づく座標系における位置姿勢に変換する第２の変換情報を含み、
前記算出工程が、
前記異なる位置及び姿勢のうちの少なくとも一つの位置及び姿勢において、前記取得工程で取得した前記特徴点の座標の実測値と該特徴点の世界座標に基づいて、前記撮像装置の位置及び姿勢を算出する第１の算出工程と、
前記第２の変換情報の概略値を設定する第１の設定工程と、
前記第１の算出工程で算出した前記撮像装置の位置及び姿勢と、当該位置及び姿勢における前記センサの計測値に基づいて、前記第１の設定工程で設定した前記第２の変換情報の概略値に対応する前記第１の変換情報の概略値を算出する第２の算出工程と、
前記第１の設定工程で設定した前記第２の変換情報の概略値と、前記第２の算出工程で算出した前記第１の変換情報の概略値とを前記校正情報の初期値として、前記入力工程で入力した前記異なる位置及び姿勢における前記センサの計測値と、前記取得工程で取得した前記異なる位置及び姿勢における前記特徴点の座標の実測値とに基づいて、前記校正情報を補正する補正工程とを含むことを特徴とする情報処理方法。
【請求項１１】
コンピュータに請求項９又は１０に記載の情報処理方法を実行させるためのコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元位置姿勢を計測するセンサによる計測結果の校正を行うための技術に関するものである。
【背景技術】
【０００２】
現実空間に対して文字やＣＧ映像を重畳して提示する複合現実感に関する研究が盛んに行われている。複合現実感の提示を行う画像表示装置は、ビデオカメラ等の撮像装置で撮影した画像に、この撮像装置の位置及び姿勢に応じて生成した画像を重畳描画し、これを表示する装置として実現できる。
【０００３】
このような画像表示装置を実現する為には、現実空間中に定義した世界座標系と、撮像装置に対して定義したカメラ座標系との間の相対的な位置及び姿勢を、リアルタイムに計測する必要がある。例として、室内やテーブル上といった現実環境中の所定位置に仮想物体を重畳表示する場合を考える。この場合、その環境中の適切な場所（例えば部屋の床面やテーブル面）に世界座標系を定義し、世界座標系における撮像装置の位置及び姿勢を計測すればよい。この計測を行う手段として、磁気式センサ、光学式センサ、超音波式センサなどの３次元位置姿勢センサが一般的に利用されている。
【０００４】
一般に３次元位置姿勢センサが出力する計測値は、センサが独自に定義する座標系（以下、センサ座標系）における測点（計測点）の位置及び姿勢であり、世界座標系における撮像装置の位置及び姿勢ではない。例えばPolhemus社の磁気式センサFASTRAKを例にとると、センサ出力として得られるのは、トランスミッタによって定義される座標系におけるレシーバの位置及び姿勢である。
【０００５】
したがって、センサ計測値をそのまま世界座標系における撮像装置の位置及び姿勢として用いることはできず、何らかの校正（変換）を行う必要がある。具体的には、センサ計測値に対して、以下の二つの座標変換を施す必要がある。
【０００６】
第１の座標変換は、センサ座標系における位置及び姿勢を世界座標系における位置及び姿勢に変換する座標変換である。第１の座標変換を行うために必要な情報（以下、第１の座標変換情報）は、世界座標系とセンサ座標系との位置及び姿勢の関係である。これは例えば、世界座標系におけるセンサ座標系の位置及び姿勢によって表現される。
【０００７】
一方、第２の座標変換は、測点の位置及び姿勢を撮像装置の位置及び姿勢に変換する座標変換である。第２の座標変換を行うために必要な情報（以下、第２の座標変換情報）は、撮像装置と測点との位置及び姿勢の関係である。これは例えば、撮像装置が定義する座標系（以下、カメラ座標系）における測点の位置及び姿勢によって表現される。なお、本明細書において、センサ計測値を世界座標系における撮像装置の位置及び姿勢に変換するために必要なこれらの情報を総称して、「校正情報」と呼ぶ。
【０００８】
撮像装置に装着した３次元位置姿勢センサの校正情報を簡便に計測する方法が、特許文献１に開示されている。この方法は以下の手順によって実現される。
【０００９】
（１）  世界座標系における３次元座標（以下、世界座標）が既知な指標をシーン中に配置または設定する。
【００１０】
（２）  異なる複数の視点位置において、３次元位置姿勢センサの計測値と撮像装置が撮影した画像を同時に取得する。
【００１１】
（３）  取得した夫々の画像から指標を検出し、検出した指標の画像座標の実測値（以下、観測座標）を取得する。
【００１２】
（４）  ３次元位置姿勢センサの校正情報である第１の座標変換情報、及び第２の座標変換情報の概略値を入力し、これを初期推定値とする。
【００１３】
（５）  検出された夫々の指標に関して、指標の３次元座標と、３次元位置姿勢センサによる計測値と、校正情報の現時点における推定値と、に基づいて、計算上求められる指標の画像座標（以下、投影座標）を算出し、観測座標との誤差を求める。
【００１４】
（６）  誤差の総和が小さくなるように、校正情報の推定値を補正する。
【００１５】
（７）  （６）の補正処理が収束するまで、（５）と（６）の処理を反復する。
【００１６】
この方法によれば、校正情報の大まかな値を与えさえすれば、特別な校正用器具を用いることなく、高精度な校正情報を簡便に得ることが可能であった。
【００１７】
また、特許文献１では、校正情報の概略値を手入力する作業を回避するための簡易的な方策が開示されている。そこではまず、校正情報の概略値として、幾つかのパターンを予め用意しておく。そして、これらの概略値を初期推定値として順次設定し、上記の（５）〜（７）の処理を行い、補正処理が収束した際の校正情報を選択することがなされている。
【特許文献１】特開2003-269913号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかし、特許文献１の方法では、求めたい校正情報である第１の座標変換情報、及び第２の座標変換情報の概略値を入力する必要があり、手間がかかるという課題があった。また、入力された概略値が実際の値からかけ離れていると補正計算が収束せず、校正情報を得られないという課題があった。
【００１９】
また、校正情報の概略値として幾つかのパターンを予め用意しておく方法では、用意した概略値の何れもが実際の値とかけ離れている場合に、補正計算が収束せず、校正情報を得られないという課題があった。特に、第１の座標変換情報である世界座標系とセンサ座標系との位置及び姿勢の関係は自由度が非常に大きく、全ての場合において収束可能な初期値を予め用意しておくことは実質上困難であった。
【００２０】
本発明は以上の問題に鑑みてなされたものであり、第１の座標変換情報、第２の座標変換情報の概略値を外部から入力することなく、より簡便かつ確実に校正情報を取得する為の技術を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００２２】
即ち、複数の指標が配された現実空間を撮像装置で撮像することによって得られる現実空間画像を取得する第１の取得手段と、
前記第１の取得手段が取得した現実空間画像中の各指標について、投影像の画像座標を取得する第２の取得手段と、
前記複数の指標の世界座標系における位置を記憶する第１の記憶手段と、
前記撮像装置における測点の位置及び姿勢を計測するためのセンサが計測した位置及び姿勢を取得する第３の取得手段と、
前記撮像装置を基準とする座標系と前記測点を基準とする座標系との間の変換を行うための第２の変換情報の候補を複数、取得する第４の取得手段と、
前記第２の取得手段が取得した各指標の画像座標と、前記第１の記憶手段が記憶する当該各指標の世界座標系における位置と、を用いて、世界座標系における前記撮像装置の位置及び姿勢を取得する第５の取得手段と、
前記第２の変換情報の複数の候補の中から１つを選択する選択手段と、
前記選択手段が選択した第２の変換情報と、前記第３の取得手段が取得した位置及び姿勢と、前記第５の取得手段が取得した位置及び姿勢と、を用いて、前記センサを基準とする座標系と世界座標系との間の変換を行うための第１の変換情報を求める第１の計算手段と、
前記選択手段が選択した第２の変換情報と、前記第１の計算手段が求めた前記第１の変換情報とを、前記センサから取得する位置及び姿勢を校正するための校正情報の初期値とし、当該校正情報を補正する為の繰り返し演算を行う第２の計算手段とを有し、
前記選択手段、前記第１の計算手段、前記第２の計算手段による処理を繰り返し行うことにより校正情報を求めることを特徴とする。
【００２３】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００２４】
即ち、撮像装置の位置及び姿勢を計測するためのセンサの校正情報を求めるための情報処理装置であって、
前記撮像装置の異なる位置及び姿勢の状態での前記センサの計測値を入力する入力手段と、
前記異なる位置及び姿勢の状態で前記撮像装置が撮像した画像に含まれる複数の特徴点の座標の実測値を取得する取得手段と、
前記入力手段で入力された複数の前記計測値と、前記取得手段で取得された複数の前記実測値と、予め記憶された前記複数の特徴点の世界座標に基づいて、前記校正情報を算出する算出手段とを有し、
前記校正情報は、前記センサに基づくセンサ座標系における位置姿勢を、世界座標系における位置及び姿勢に変換するための第１の変換情報と、前記センサによる測点の計測値の位置及び姿勢を前記撮像装置に基づく座標系における位置姿勢に変換する第２の変換情報を含み、
前記算出手段が、
前記異なる位置及び姿勢のうちの少なくとも一つの位置及び姿勢において、前記取得手段が取得した前記特徴点の座標の実測値と該特徴点の世界座標に基づいて、前記撮像装置の位置及び姿勢を算出する第１の算出手段と、
前記第２の変換情報の概略値を設定する第１の設定手段と、
前記第１の算出手段が算出した前記撮像装置の位置及び姿勢と、当該位置及び姿勢における前記センサの計測値に基づいて、前記第１の設定手段が設定した前記第２の変換情報の概略値に対応する前記第１の変換情報の概略値を算出する第２の算出手段と、
前記第１の設定手段が設定した前記第２の変換情報の概略値と、前記第２の算出手段が算出した前記第１の変換情報の概略値とを前記校正情報の初期値として、前記入力手段が入力した前記異なる位置及び姿勢における前記センサの計測値と、前記取得手段が取得した前記異なる位置及び姿勢における前記特徴点の座標の実測値とに基づいて、前記校正情報を補正する補正手段とを含むことを特徴とする。
【００２５】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００２６】
即ち、複数の指標が配された現実空間を撮像装置で撮像することによって得られる現実空間画像を取得する第１の取得工程と、
前記第１の取得工程で取得した現実空間画像中の各指標について、投影像の画像座標を取得する第２の取得工程と、
前記複数の指標の世界座標系における位置を記憶する第１の記憶工程と、
前記撮像装置における測点の位置及び姿勢を計測するためのセンサが計測した位置及び姿勢を取得する第３の取得工程と、
前記撮像装置を基準とする座標系と前記測点を基準とする座標系との間の変換を行うための第２の変換情報の候補を複数、取得する第４の取得工程と、
前記第２の取得工程で取得した各指標の画像座標と、前記第１の記憶工程で記憶する当該各指標の世界座標系における位置と、を用いて、世界座標系における前記撮像装置の位置及び姿勢を取得する第５の取得工程と、
前記第２の変換情報の複数の候補の中から１つを選択する選択工程と、
前記選択工程で選択した第２の変換情報と、前記第３の取得工程で取得した位置及び姿勢と、前記第５の取得工程で取得した位置及び姿勢と、を用いて、前記センサを基準とする座標系と世界座標系との間の変換を行うための第１の変換情報を求める第１の計算工程と、
前記選択工程で選択した第２の変換情報と、前記第１の計算工程で求めた前記第１の変換情報とを、前記センサから取得する位置及び姿勢を校正するための校正情報の初期値とし、当該校正情報を補正する為の繰り返し演算を行う第２の計算工程とを有し、
前記選択工程、前記第１の計算工程、前記第２の計算工程による処理を繰り返し行うことにより校正情報を求めることを特徴とする。
【００２７】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００２８】
即ち、撮像装置の位置及び姿勢を計測するためのセンサの校正情報を求めるための情報処理方法であって、
前記撮像装置の異なる位置及び姿勢の状態での前記センサの計測値を入力する入力工程と、
前記異なる位置及び姿勢の状態で前記撮像装置が撮像した画像に含まれる複数の特徴点の座標の実測値を取得する取得工程と、
前記入力工程で入力された複数の前記計測値と、前記取得工程で取得された複数の前記実測値と、予め記憶された前記複数の特徴点の世界座標に基づいて、前記校正情報を算出する算出工程とを有し、
前記校正情報は、前記センサに基づくセンサ座標系における位置姿勢を、世界座標系における位置及び姿勢に変換するための第１の変換情報と、前記センサによる測点の計測値の位置及び姿勢を前記撮像装置に基づく座標系における位置姿勢に変換する第２の変換情報を含み、
前記算出工程が、
前記異なる位置及び姿勢のうちの少なくとも一つの位置及び姿勢において、前記取得工程で取得した前記特徴点の座標の実測値と該特徴点の世界座標に基づいて、前記撮像装置の位置及び姿勢を算出する第１の算出工程と、
前記第２の変換情報の概略値を設定する第１の設定工程と、
前記第１の算出工程で算出した前記撮像装置の位置及び姿勢と、当該位置及び姿勢における前記センサの計測値に基づいて、前記第１の設定工程で設定した前記第２の変換情報の概略値に対応する前記第１の変換情報の概略値を算出する第２の算出工程と、
前記第１の設定工程で設定した前記第２の変換情報の概略値と、前記第２の算出工程で算出した前記第１の変換情報の概略値とを前記校正情報の初期値として、前記入力工程で入力した前記異なる位置及び姿勢における前記センサの計測値と、前記取得工程で取得した前記異なる位置及び姿勢における前記特徴点の座標の実測値とに基づいて、前記校正情報を補正する補正工程とを含むことを特徴とする。
【発明の効果】
【００２９】
本発明の構成によれば、第１の座標変換情報、第２の座標変換情報の概略値を外部から入力することなく、より簡便に３次元位置姿勢センサの校正情報を取得することができる。そのため、ユーザの手間を軽減させることができ、また、情報の入力ミスによる校正計算の失敗を回避することができる。
【発明を実施するための最良の形態】
【００３０】
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
【００３１】
［第１の実施形態］
本実施形態では、３次元位置姿勢センサの校正情報を生成する校正装置（情報処理装置）を、仮想空間画像と現実空間画像との合成画像をユーザに提供（表示）する画像表示装置に適用した場合について説明する。即ち、係る画像表示装置が仮想空間画像を生成する際に用いる視点の位置姿勢を得るために、係る校正装置を画像表示装置に組み込む。
【００３２】
図１は、本実施形態に係る画像表示装置の機能構成を示すブロック図である。図１に示すように、本実施形態に係る画像表示装置は、撮像装置としてのビデオカメラ１００、３次元位置姿勢センサ２００、処理部３００、表示部４００によって構成される。本実施形態に係る画像表示装置は、ビデオカメラ１００の位置及び姿勢に応じて仮想空間画像を生成し、生成した仮想空間画像をビデオカメラ１００により撮像された現実空間画像と合成し、合成後の画像を表示部４００に出力する。
【００３３】
先ず、３次元位置姿勢センサ２００について説明する。
【００３４】
３次元位置姿勢センサ２００は、センサ座標系における測点の位置及び姿勢を計測する装置であり、レシーバ２１０、トランスミッタ２２０，センサ制御部２３０により構成されている。本実施形態では、３次元位置姿勢センサ２００として、磁気式センサであるPolhemus社のFASTRAKを用いるが、光学式センサや超音波センサなど、他のタイプのセンサを用いても以下の説明は同様に適用することができる。
【００３５】
トランスミッタ２２０は、現実空間中の予め定められた位置に、予め定められた姿勢でもって固定して配置されるものであり、後述するセンサ制御部２３０による制御に従って、特定の磁場を発生する。センサ座標系は、トランスミッタ２２０の位置によって定義される。例えば、トランスミッタ２２０の現実空間中における位置を原点とし、係る原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。センサ座標系については周知のものであるので、これ以上の説明は省略する。
【００３６】
レシーバ２１０は測点としてビデオカメラ１００の上に固定されており、トランスミッタ２２０が発する磁場を測定する。係る測定結果は、レシーバ２１０の位置姿勢に応じて異なるものである。そしてレシーバ２１０は測定結果を信号としてセンサ制御部２３０に送出する。
【００３７】
センサ制御部２３０は、トランスミッタ２２０の動作を制御すると共に、レシーバ２１０から受けた信号が示す測定結果（測定された磁場）に基づいて、センサ座標系におけるレシーバ２１０の位置及び姿勢を求める。そして求めた位置及び姿勢を示す位置姿勢情報を、後段の処理部３００が有するセンサ計測値変換部３２０、校正部３１０に送出する。
【００３８】
次に、処理部３００について説明する。図１に示すように、処理部３００は、校正部３１０、センサ計測値変換部３２０、画像生成部３３０により構成されている。処理部３００には、ビデオカメラ１００、３次元位置姿勢センサ２００、表示部４００が接続されている。従って処理部３００には、ビデオカメラ１００が撮像した現実空間画像のデータと、３次元位置姿勢センサ２００が計測した位置姿勢情報（センサ計測値）が入力される。また、処理部３００からは、現実空間画像と仮想空間画像とを合成した合成画像のデータ若しくは信号が表示部４００に対して送出される。
【００３９】
校正部３１０は、３次元位置姿勢センサ２００からセンサ計測値を取得すると共に、ビデオカメラ１００から現実空間画像のデータを取得する。そして、取得したセンサ計測値、現実空間画像に基づいて、３次元位置姿勢センサ２００の校正情報を推定し、センサ計測値変換部３２０へと出力する。校正部３１０についての詳細は、図２を用いて後述する。
【００４０】
センサ計測値変換部３２０は、３次元位置姿勢センサ２００からセンサ計測値を取得すると、校正部３１０から受けた校正情報を用いて、このセンサ計測値を「世界座標系におけるビデオカメラ１００の位置及び姿勢」を示す位置姿勢情報に変換する。そして、変換した位置姿勢情報を、画像生成部３３０へと出力する。ここで、世界座標系とは上述の通りであるが、詳しくは、現実空間中の１点を原点とし、係る原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。
【００４１】
ここで、センサ計測値変換部３２０における処理の詳細について説明する。
【００４２】
本実施形態では、校正情報の一つである第１の座標変換情報を、世界座標系におけるセンサ座標系の位置及び姿勢MTWによって表記する。また、もう一方の校正情報である第２の座標変換情報を、ビデオカメラ１００のカメラ座標系における測点（本実施形態ではレシーバ２１０に相当）の位置及び姿勢MSCによって表記する。
【００４３】
ここで、カメラ座標系については上述の通りであるが、詳しくは、ビデオカメラ１００の焦点位置を原点とし、光軸の反対方向を−ｚ軸、係る原点でｚ軸と直交する二つの軸をそれぞれｘ軸、ｙ軸とする座標系である。
【００４４】
また、以下では、センサ計測値変換部３２０への入力データ（センサ計測値）である「センサ座標系におけるレシーバ２１０の位置及び姿勢」を、MSTと表記する。また、センサ計測値変換部３２０からの出力データである「世界座標系におけるビデオカメラ１００の位置及び姿勢」を、MCWと表記する。なお、本明細書では、座標系Ａにおける物体Ｂの位置姿勢を、座標系Ａから座標系Ｂ（物体Ｂを基準とするローカル座標系）へのビューイング変換行列MBA（４×４）で表現するものとする。
【００４５】
以下では、このようなビューイング行列や、他のタイプの行列、ベクトル等を用いた演算処理について説明するが、それぞれは全てデータとして取り扱われるものとして説明する。
【００４６】
ここで、MST、MSC、MTW、MCWの間には、次の関係式が成立する。
【００４７】
MCW＝MSC−１・MST・MTW      （式１）
センサ計測値変換部３２０は、３次元位置姿勢センサ２００から入力されるMSTと、校正情報として予め保持しているMSCとMTWとを用いて、（式１）に基づいてMCWを算出する。そして算出したMCWを画像生成部３３０へと出力する。
【００４８】
画像生成部３３０は、ビデオカメラ１００が撮像した現実空間画像を、このビデオカメラ１００からデータとして取得する。更に、画像生成部３３０は、センサ計測値変換部３２０が求めた「世界座標系におけるビデオカメラ１００の位置及び姿勢」を示す情報であるMCWを取得する。そして、予め自身が保持している仮想空間を構成する各仮想物体を描画するためのデータを用いて仮想空間を構成する。もちろん、係る仮想空間における座標系は、世界座標系と一致している。そして、係る仮想空間を、MCWが示す位置及び姿勢を有する視点から見た場合に見える画像を仮想空間画像として生成する。そして、生成した仮想空間画像を、ビデオカメラ１００から取得した現実空間画像上に重畳させた合成画像を生成し、生成した合成画像を、信号若しくはデータとして表示部４００に送出する。
【００４９】
仮想空間画像と現実空間画像とを合成することで、あたかも現実空間中に仮想物体が存在しているかのような合成画像を生成するための技術については様々なものが従来から提案されている。本実施形態では特定の合成技術に限定するものではなく、如何なる合成技術を用いても良い。もちろん、合成方法によっては図１に示した構成に新たにユニットを付加することも考えられ、構成の変更は適宜行えばよい。
【００５０】
表示部４００は、画像生成部３３０から受けた信号若しくはデータに基づいた画像を、自身が有する表示画面上に表示する。表示部４００は、現実空間中に固定されたモニタ（ＣＲＴや液晶画面等により構成されている表示装置）であっても良いし、ビデオカメラ１００と共にＨＭＤ（ヘッドマウントディスプレイ）内に設けられている表示装置であっても良い。
【００５１】
次に、図２を用いて校正部３１０の詳細について説明する。図２は本実施形態に係る校正部３１０の機能構成を示すブロック図である。図２に示すように、本実施形態に係る校正部３１０は、世界座標保持部５１０、画像処理部５２０、データ管理部５３０、校正情報算出部５４０、及び指示部５５０によって構成されている。
【００５２】
ここで、本実施形態の校正部３１０を用いて校正情報を求める為には、ビデオカメラ１００が撮像可能な範囲内の現実空間内には、世界座標が既知の４点以上の指標（特徴点）が配置されている必要がある。ここで、各指標は、係る指標を含む現実空間画像を取得した場合に、この現実空間画像上における指標の投影像の画像座標（観測座標）が検出可能であって、且ついずれの指標であるかが識別可能に構成されているものとする。
【００５３】
指標の夫々は、例えば、それぞれが異なる色を有する小領域からなるカラーマーカによって構成される。あるいは、それぞれが異なるテクスチャ特徴を有する自然特徴等の特徴点によって構成される。現実空間画像上における投影像の画像座標が検出可能であって、かついずれの指標であるかが何らかの方法で識別可能であるような指標であれば、指標は何れの形態であってもよい。また、指標は故意に（人為的に）設定されたものであってもよい。また、例えば机の角や壁の模様のような、現実空間中に元来存在する特徴を用いてもよい。また、ある程度の面積を有する単色の多角形領域によって形成される多角形マーカを用いてもよい。この場合、多角形の各頂点を指標として扱う。
【００５４】
世界座標保持部５１０は、各指標の世界座標情報を保持しており、データ管理部５３０からの要求に従ってこれを出力する。以下では、識別番号ｋの指標Qkの世界座標情報をxQkWと表記する。
【００５５】
画像処理部５２０は、ビデオカメラ１００が撮像した現実空間画像を取得すると、この現実空間画像中に撮影されている夫々の指標を検出してその観測座標を求める。そして、検出した指標の識別番号を特定することで、この指標がいずれの指標であるかを同定する。そして、夫々の検出指標に関して取得した情報（検出指標の識別番号ｋ、及び観測座標uQkj）を、データ管理部５３０へと出力する。
【００５６】
ここで、j（ｊ＝１，２，…）は、ビデオカメラ１００が異なる位置姿勢をとっている状況（異なる時刻と考えてもよい）におけるデータを区別して管理するために、ビデオカメラ１００の位置姿勢に与えられる識別子（通し番号）を表している。後述するデータ管理部５３０は、後述する指示部５５０から「データ取得」の指示を受け取る毎に１つインクリメントしたｊを発行し、ビデオカメラ１００の位置姿勢に依存する取得データの夫々にこれを割り当てる。
【００５７】
以下では説明を簡単にするために、次のようにする。即ち、ある位置姿勢にあるビデオカメラ１００が撮像した現実空間画像と、同位置姿勢のビデオカメラ１００に対する３次元位置姿勢センサ２００によるセンサ計測値とは、同時にそれぞれ画像処理部５２０、データ管理部５３０に入力されるものとして説明する。従って、識別子jの発行対象は、センサ計測値であると共に、現実空間画像であるとしても良い。
【００５８】
また、画像処理部５２０は、１つの現実空間画像から４点以上の指標についての識別番号、観測座標のセットを求めた場合には、先ず、求めたそれぞれの識別番号に対応する指標の世界座標情報を世界座標保持部５１０から取得する。そして、それぞれの指標の世界座標、観測座標のセットに基づいて、世界座標系におけるビデオカメラ１００の位置及び姿勢を示す情報としてMjCWを算出する。ここで、MjCWは、識別子jの発行対象である現実空間画像に基づいて得られたものであることを示している。
【００５９】
なお、各指標の観測座標と世界座標とのセットを用いてカメラの位置及び姿勢を求める方法は、写真測量やコンピュータビジョンの分野において広く知られているので、これについての詳細な説明は省略する。そして画像処理部５２０は、求めたMjCWを、データ管理部５３０へと出力する。
【００６０】
指標の検出は、使用する指標の種類に応じた方法で行われる。例えば、指標の夫々が異なる色を有するカラーマーカによって構成されている場合には、現実空間画像上から各々のマーカ色に対応する領域を検出する。そして、その重心位置を指標の検出座標（観測座標）とする。また、指標の夫々が異なるテクスチャ特徴を有する特徴点によって構成されている場合には、テンプレート画像によるテンプレートマッチングによって指標の位置（観測座標）を検出する。この場合、各々の指標のテンプレート画像は、既知の情報として予め保持しておく。また、四角形マーカを用いる場合は、現実空間画像に２値化処理及びラベリング処理を施し、４つの直線によって形成されているラベル領域をマーカ候補として検出する。さらに、各マーカ候補の矩形領域の中に特定のパターンがあるか否かを判定することによって誤検出を排除する。また、矩形領域中のパターンによって、四角形マーカの識別番号を取得する。最後に、矩形領域の４頂点の座標が、４点の指標の位置（観測座標）として出力される。
【００６１】
データ管理部５３０は、指示部５５０から「データ取得」の指示を受けると、指示を受けた後の最初のタイミングで３次元位置姿勢センサ２００から受けたセンサ計測値MjSTを保持する。また、係る指示を受けた後の最初のタイミングで画像処理部５２０から送出された（検出指標の識別番号ｋ、及び観測座標uQkj）のセットを受ける。更に、このセット中の識別番号ｋで特定される指標の世界座標情報xQkWを世界座標保持部５１０から取得する。そして、データ管理部５３０は、センサ計測値MjSTと、画像処理部５２０から受けた夫々の検出指標の観測座標uQkjと、世界座標保持部５１０から取得した（識別番号ｋの指標の）世界座標情報xQkWと、をセットにして、データリストに追加登録する。
【００６２】
また、データ管理部５３０は、「データ取得」の指示を受けた後の最初のタイミングで画像処理部５２０からMjCWを受け取った場合には、これを、同タイミングで３次元位置姿勢センサ２００から受け取ったセンサ計測値とをセットにして保持する。
【００６３】
データ管理部５３０自身が保持、管理しているデータについては、校正情報算出部５４０からの要求に従って適宜、校正情報算出部５４０に出力する。
【００６４】
校正情報算出部５４０は、指示部５５０から「校正情報算出」の指示を受けると、データ管理部５３０が保持するデータを取得し、取得したデータに基づいて校正情報を算出して出力する。校正情報算出部５４０は、ビデオカメラ１００のカメラ座標系におけるレシーバ２１０の位置及び姿勢MSC（すなわち、第２の座標変換情報）の概略値の候補として、複数の値MSCa（ａ＝１，２，…，Ａ）を内部に保持している。ここで、ａは第２の座標変換情報の概略値の各候補に対する識別子であり、Ａは、第２の座標変換情報の概略値の候補の総数を表している。校正情報算出部５４０の処理の詳細については、フローチャートを用いて後に詳しく説明する。
【００６５】
指示部５５０は、マウスやキーボードなど、処理部３００のユーザが操作することで、各種の指示を入力するためのものである。ユーザが指示部５５０を操作することでデータ取得コマンドを入力した場合には、上記「データ取得」の指示をデータ管理部５３０に送信する。また、ユーザが操作することで校正情報算出コマンドを入力した場合には、上記「校正情報算出」の指示を校正情報算出部５４０に送信する。指示部５５０へのコマンドの入力は、例えばキーボードを用いて、特定のコマンドを割り当てたキーを押すことによって行うことができる。また、コマンドの入力は、処理部３００に接続されている不図示のディスプレイ上に表示されたＧＵＩで行う等、いずれの方法で行ってもよい。
【００６６】
図４は、校正部３１０が行う処理のフローチャートである。
【００６７】
先ずステップＳ４０１０において、指示部５５０は、データ取得コマンドがユーザから入力されたか否かの判定を行う。係る判定の結果、データ取得コマンドが入力されていると判定した場合には、ステップＳ４０２０へと処理を移行させる。以下では、データ取得コマンドが入力されたタイミング直後のタイミングでデータ管理部５３０が発行した識別子をjとして説明する。
【００６８】
一方、指示部５５０による判定の結果、データ取得コマンドが入力されていないと判定した場合には、ステップＳ４０７０へと処理を移行させる。
【００６９】
ステップＳ４０２０において、データ管理部５３０は、データ取得コマンドが入力されたタイミング直後のタイミングで画像処理部５２０から送出された（検出指標の識別番号ｋ、及び観測座標uQkj）のセットを受ける。画像処理部５２０が、１つの現実空間画像から複数の指標を検出しており、夫々の検出指標について係るセットを求めている場合、各指標についてのセットを受けることになる。更に、データ管理部５３０は、取得した観測座標に対して識別子jを割り当てる。
【００７０】
ステップＳ４０３０において、データ管理部５３０は、画像処理部５２０から入力した識別番号ｋで特定される指標Qkの世界座標xQkWを、世界座標保持部５１０から取得する。
【００７１】
ステップＳ４０４０において、データ管理部５３０は、データ取得コマンドが入力されたタイミング直後のタイミングで３次元位置姿勢センサ２００から送出されたセンサ計測値MjSTを取得する。更に、データ管理部５３０は、取得したセンサ計測値MjSTに対して識別子jを割り当てる。
【００７２】
ステップＳ４０５０において、データ管理部５３０は、ｋ毎（指標Qk毎）に、ステップＳ４０２０で受けた観測座標uQkj、ステップＳ４０３０で受けた世界座標xQkW、ステップＳ４０５０で受けたセンサ計測値MSTjをセットにする。そして、ｋ毎のセットを、データ管理部５３０自身が保持、管理しているデータリストに登録する。より具体的には、指標Qkの観測座標をui=uQkj=[uix,uiy]Tとする。また、その世界座標をxiW=xQkW=[xiW,yiW,ziW,1]Tとする。また、その際のセンサ計測値をMiST=MjSTとして、[ui,xiW,MiST]の組を、ｉ番目のデータ要素Dｉとしてデータリストに登録する。ここでｉは現在データリストに登録されているデータ要素の総数に１を足した値を示す。
【００７３】
係るデータリストは、視点の位置姿勢が変わると新たに作成されるものであるので、ビデオカメラ１００を配置した位置姿勢毎に存在するものである。
【００７４】
ステップＳ４０６０において、データ管理部５３０は、画像処理部５２０から「世界座標系におけるビデオカメラ１００の位置及び姿勢MjCW」が入力された場合には、これを取得する。そして、センサ計測値MjSTとのセット[MjST, MjCW]をデータとして保持しておく。係るセットについても、視点の位置姿勢が変わると新たに作成されるものである。しかし、もちろん、常に作成されるものではなく、画像処理部５２０から「世界座標系におけるビデオカメラ１００の位置及び姿勢MjCW」が入力された場合にのみ作成されるものである。
【００７５】
以上の処理によって、以降の処理に必要なデータの取得が行われる。
【００７６】
ステップＳ４０７０において、データ管理部５３０は、現在までに蓄積したデータに校正情報を算出するに足るだけの情報が含まれているかどうかを判定する。データが条件を満たしていない場合には、再びステップＳ４０１０へと戻り、データ取得コマンドの入力を待つ。一方、データが校正情報を算出する条件を満たしている場合には、ステップＳ４０８０へと処理を移行させる。
【００７７】
以下の校正処理を行うためには、少なくとも異なる３点の指標に関するデータが、複数の視点から得られている必要がある。また、少なくとも一つの視点において、世界座標系におけるビデオカメラ１００の位置及び姿勢MjCWとセンサ計測値MjSTとの組が得られている必要がある。必要条件であるこれらの条件を判定基準としてもよいし、より多くのデータを要求するように条件を設定してもよい。
【００７８】
ステップＳ４０８０において、校正情報算出部５４０は、ユーザからの操作により、指示部５５０から校正情報算出コマンドが入力されているか否かの判定を行う。係る判定の結果、入力されている場合には、ステップＳ４０９０へと処理を移行する。一方、入力されていない場合には、再びステップＳ４０１０へと戻り、データ取得コマンドの入力を待つ。
【００７９】
ステップＳ４０９０において、校正情報算出部５４０は、データ管理部５３０が現在までに蓄積したデータを取得し、これに基づいて校正情報を算出する。ステップＳ４０９０における処理の詳細については、図５のフローチャートを用いて後に説明する。
【００８０】
ステップＳ４１００において、校正情報算出部５４０は、ステップＳ４０９０の処理によって得られた校正情報を、センサ計測値変換部３２０へと出力する。
【００８１】
図５は、ステップＳ４０９０において校正情報算出部５４０が行う処理を示すフローチャートである。
【００８２】
ステップＳ５０１０において、校正情報算出部５４０は、内部に保持している第２の座標変換情報の概略値の候補の中から、まだ選択されていない候補MSCaを選択候補情報として選択する。
【００８３】
第２の座標変換情報の概略値の候補としては、例えば、レシーバ２１０の位置姿勢を基準とするレシーバ座標系のＸ軸が正十二面体の各面の法線方向を向くような、１２通りの姿勢を用意することが有効である。ここで、レシーバ座標系とは、レシーバ２１０の位置を原点とし、係る原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系である。さらに、この１２通りの姿勢を基準として、夫々をＺ軸周りに数十度（例えば45度）ずつ回転させた姿勢を数通り（例えば8通り）用意しても良い。
【００８４】
即ち、第２の座標変換情報の概略値の候補の姿勢成分に関しては、測点の位置姿勢を基準とする座標系中の１軸を複数方向に向けた場合における、この座標系の姿勢に相当する。
【００８５】
一方、位置の概略値としては(0,0,0)を設定するのみで十分である。これは、第２の座標変換情報の平行移動成分が投影座標の算出に与える影響が少なく、多少の誤差があっても最適化演算が収束しやすいという性質に基づいている。また、この設定は、ビデオカメラ１００の位置と測点（レシーバ２１０）の位置とが極端に離れることはないという事実からも妥当といえる。なお、第２の座標変換情報の概略値の候補の組は、上記の構成に必ずしも限定されない。例えば、正十二面体の代わりに正六面体を用いてもよいし、位置の概略値として原点付近の他の値を与えてもよい。
【００８６】
ステップＳ５０２０において、校正情報算出部５４０は、ステップＳ５０１０で選択した第２の座標変換情報のMSCaに対応する、第１の座標変換情報のMTWaを算出する。この算出は以下のように行う。
【００８７】
まず、データ管理部５３０から入力した［センサ計測値−世界座標系におけるビデオカメラ１００の位置及び姿勢］のセット群から、１セット（一つの視点に関するデータ）[MjST, MjCW]を入力する。次に、ステップＳ５０１０で選択したMSCaを用いて、次式によってMSCaに対応するMTWa,jを算出する。
【００８８】
MTWa,j ＝ MjST−１・MSCa・MjCW    （式２）
（式２）の計算を[MjST, MjCW]のセット数分実行すると、MTWa,jが複数得られるので、これを統合して求めるべきMTWaを得る。
【００８９】
統合は、例えば、夫々のMTWa,jの回転成分及び平行移動成分の夫々について平均を求めることで行う。あるいは、MjCWの推定が最も高い信頼度で行われているセット[MjST, MjCW]によるMTWa,jを選択しても良い。この場合は、画像処理部５２０において、ビデオカメラ１００の位置及び姿勢についての推定の信頼度を求める必要がある。これは例えば、画像処理部５２０においてMjCWを算出する工程において用いた検出指標の画像上での分布状態から求めることができる。例えば、全ての検出指標uQkjを包含する凸包の面積を、MjCWの信頼度として用いることができる。
【００９０】
ステップＳ５０３０において、校正情報算出部５４０は、ステップＳ５０１０とステップＳ５０２０によって得たMSCa及びMTWaを校正情報の初期推定値として、校正情報の最適化処理（補正処理）を行う。そして、最適化後の校正情報MSC及びMTWを得る。
【００９１】
ステップＳ５０３０における最適化処理は、データリスト中の夫々のデータ要素Di（[ui,xiW,MiST]のセット）に関して、観測座標と投影座標との間の誤差の総和を最小化する形で行われる。その誤差評価関数は次式によって与えられる。
【００９２】
e = Σ｜ui − f(xiW,MiST,MSC,MTW)｜    （式３）
ここで、ｆは、ビデオカメラ１００の位置及び姿勢に応じた投影座標を求める観測方程式を表す。ｆはビューイング変換と透視変換とからなり、このうちのビューイング変換は、次式によって表される。
【００９３】
xiC ＝ MSC-1・MiST・MTW・xiW    （式４）
一方、透視変換はビデオカメラ１００の内部パラメータによって決定される変換であり、本実施形態では既知の固定値とする。（式３）の未知パラメータは校正情報のみであるので、ニュートン法等の公知の非線形最適化手法による繰り返し演算を適用することにより、誤差eを最小化する校正情報MSC及びMTWを得ることができる。（式３）を誤差評価関数とした最適化処理のより詳細な手順は、例えば、特許文献１に記載されている。ただし、誤差eを最小化する校正情報MSC及びMTWを得ることができるのは、初期推定値として与えるMSCa及びMTWaが適切な場合のみである。それ以外の場合には、最適化処理は収束せずに発散するか、あるいは、収束しても局所解に陥ってしまう。
【００９４】
ステップＳ５０４０において、校正情報算出部５４０は、ステップＳ５０３０の最適化処理が成功したか否かの判定を行う。具体的には、最適化の反復処理が収束し、指標の投影誤差（観測座標と投影座標の差）の残差が予め定めた閾値以下であれば、最適化処理が成功したものと判断する。最適化処理が失敗したと判断した場合には、処理をステップＳ５０１０へと移行し、第２の座標変換情報の初期推定値として他の候補を選択し、ステップＳ５０２０からステップＳ５０４０の処理を再度実行する。一方、最適化処理が成功したと判断した場合にはステップＳ５０５０へと処理を進める。
【００９５】
ステップＳ５０５０において、校正情報算出部５４０は、ステップＳ５０４０において成功と判断された最適化処理によって得られた校正情報（MSC及びMTW）を、校正処理の結果として保持する。
【００９６】
以上の処理では、自由度の小さな第２の座標変換情報の概略値候補MSCaを網羅的に保持しておいて、自由度の大きな第１の座標変換情報の初期推定値MTWaに関しては、選択したMSCaと矛盾しない値を計算によって取得している。その結果、いずれかの初期推定値においては最適化計算が収束することが期待できる。
【００９７】
以上の処理によって、ユーザが校正情報の概略値を入力する事なく、３次元位置姿勢センサ２００の校正を簡便かつ確実に行うことができる。
【００９８】
［第２の実施形態］
第１の実施形態では、図１に示した処理部３００を構成する各部は、専用のハードウェアでもって構成されているものとして説明した。しかし、図１に示した処理部３００を構成する各部をプログラム（コンピュータプログラム）でもって構成するようにしても良い。この場合、係るプログラムは、ＰＣ（パーソナルコンピュータ）などのコンピュータにインストールされ、このコンピュータが有するＣＰＵ等でもって実行されることになる。その結果、このコンピュータは、第１の実施形態で説明した、処理部３００が行う各処理を実行することになる。なお、図１に示した処理部３００を構成する全てでなく、一部をプログラムでもって実装するようにしても良い。
【００９９】
また、係る図１に示した処理部３００を構成する全てのユニットに対応するプログラムを１台のコンピュータにインストールさせても良いし、各部毎のプログラムを、対応するコンピュータにインストールさせても良い。
【０１００】
図３は、図１に示した処理部３００を構成する各部のうち１以上をプログラムでもって実装した場合に、係るソフトウェアを実行するコンピュータのハードウェア構成を示すブロック図である。
【０１０１】
ＣＰＵ１００１は、ＲＡＭ１００２やＲＯＭ１００３に格納されているプログラムやデータを用いて、本コンピュータ全体の制御を行うと共に、本コンピュータを適用した装置が行う各処理を実行する。例えば、図１に示した処理部３００を構成する各部をプログラムでもって実装した場合、ＣＰＵ１００１は係るプログラムを実行することで、処理部３００が行うものとして第１の実施形態で説明した各処理を実行することになる。
【０１０２】
ＲＡＭ１００２は、外部記憶装置１００７や記憶媒体ドライブ１００８からロードされたプログラムやデータを一時的に記憶するエリアを備える。また、ＣＰＵ１００１が各種の処理を行うために必要とするワークエリアを備える。このように、ＲＡＭ１００２は、各種のエリアを適宜提供することができる。
【０１０３】
ＲＯＭ１００３は、例えば、ブートプログラムや設定データなどが格納されている。
【０１０４】
キーボード１００４、マウス１００５は入力デバイスである。本コンピュータのユーザはこれらを用いて各種の指示をＣＰＵ１００１に入力することができる。指示部５５０へのコマンドの入力は、これらの入力デバイスを介して行うことができる。
【０１０５】
表示部１００６は、ＣＲＴや液晶ディスプレイなどにより構成されている。表示部１００６には、例えば校正作業の実行のために表示すべきメッセージ等を表示することができる。表示部１００６は、表示部４００としての機能も備えている。
【０１０６】
外部記憶装置１００７は、ハードディスクドライブなどの大容量情報記憶装置として機能する装置である。ここには、ＯＳ（オペレーティングシステム）や、図１に示した処理部３００を構成する各部の機能をＣＰＵ１００１に実行させるためのプログラムやデータが保存されている。また、第１の実施形態、及び後述する変形例にて既知であると説明する情報、説明上、一般に必要な情報として想定される情報についても、外部記憶装置１００７に保存されている。外部記憶装置１００７に保存されている各種の情報は、ＣＰＵ１００１による制御に従って適宜、ＲＡＭ１００２にロードされる。
【０１０７】
記憶媒体ドライブ１００８は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記憶されているプログラムやデータをＣＰＵ１００１からの指示に従って読み出して、ＲＡＭ１００２や外部記憶装置１００７に出力する。
【０１０８】
Ｉ／Ｆ１００９は、以下の複数種のポートによって構成されている。ビデオカメラ１００から送出される現実空間画像の信号の入力は、アナログビデオポートあるいはＩＥＥＥ１３９４等のデジタル入出力ポートによって実現される。また、３次元位置姿勢センサ２００から送出されるセンサ計測値の信号の入力は、ＵＳＢポートやＲＳ−２３２Ｃポートによって実現される。このように、Ｉ／Ｆ１００９を構成する各ポートに対して入力される信号は、このＩ／Ｆ１００９を介して、データとしてＲＡＭ１００２に取り込まれる。また、センサ計測値変換部３２０が算出したビデオカメラ１００の位置及び姿勢は、必要に応じて、イーサネット（登録商標）ポート等によって外部へ出力される。
【０１０９】
上述した各構成要素は、バス１０１０によって相互に接続される。
【０１１０】
［第３の実施形態］
第１の実施形態については下記のような幾つかの変形例が考えられる。
【０１１１】
＜変形例１＞
第１の実施形態では、ステップＳ５０４０において最適化処理が成功した場合に、その最適化処理によって得られた解を校正情報として選択していた。しかし、校正情報算出部５４０が保持する第２の座標変換情報の概略値の全ての候補についてステップＳ５０１０からステップＳ５０３０の処理を実行し、最も残差が最小となった最適化処理によって得られた解を校正情報として選択しても良い。
【０１１２】
＜変形例２＞
第１の実施形態では、校正情報算出部５４０が第２の座標変換情報の概略値の候補を複数保持しており、これを最適化処理の初期推定値として順次設定していた。しかし、第２の座標変換情報の概略値の候補を予め保持しておくことは必ずしも必須ではない。例えば、ステップＳ５０１０において、校正情報算出部５４０が第２の座標変換情報の概略値を自動生成するような構成であってもよい。例えば、第２の座標変換情報の概略値である測点の姿勢を乱数で発生させてもよい。この場合、２回目以降の処理においては、今までに生成した全ての姿勢候補に対して一定の角度以上離れていなくてはならないという条件を付加することで、初期推定値を網羅的に与えることができる。
【０１１３】
＜変形例３＞
第１の実施形態では、３次元位置姿勢センサ２００としてPolhemus社の磁気式センサFASTRAKを用いた画像表示装置の校正に上記校正装置及びその方法（情報処理方法）を適用した場合について説明した。しかし、第１の実施形態に係る校正装置、及びその方法によって校正可能な画像表示装置の３次元位置姿勢センサ２００はFASTRAKに限定されるものではない。その適用範囲は位置姿勢センサの方式や製品に依存するものではなく、他のいずれの位置姿勢センサであっても、その校正を行うことが可能である。
【０１１４】
＜変形例４＞
第１の実施形態では、指標の投影座標およびその識別番号の取得を、画像処理によって行っていた。しかしその必要は必ずしもなく、ユーザによる手入力によって指標の投影座標およびその識別番号を入力してもよい。この場合、画像処理部５２０は、例えば作業用ディスプレイ上に表示された現実空間画像上の指標位置をマウスクリックによって指定する等の作業によって、ユーザが容易に指標位置を入力できるような、何らかのＧＵＩを有した構成であることが望ましい。
【０１１５】
＜変形例５＞
第１の実施形態では、ユーザからの制御コマンドを入力するための指示部５５０を有していたが、この入力は必ずしも必要ではない。例えば画像処理部５２０が指標を検出するごとにデータリストへ追加を行い、データリストが条件を満たした時点で校正情報算出部５４０が校正情報の算出を行うような構成にしてもよい。
【０１１６】
＜変形例６＞
第１の実施形態では、校正部３１０は画像表示装置中の１つの構成要素であった。しかし、校正部３１０の機能を有するような校正装置を構成することも可能である。この場合、校正装置は、センサ計測値と現実空間画像とを入力し、算出した校正情報を出力する。また、３次元位置姿勢センサ２００と、校正部３１０と、センサ計測値変換部３２０と、を有する処理部とからなる位置姿勢計測装置を構成することも可能である。この場合、位置姿勢計測装置からは、世界座標系におけるビデオカメラ１００の位置及び姿勢が出力される。
【０１１７】
＜変形例７＞
第１の実施形態では、複合現実感を提示する画像表示装置の３次元位置姿勢センサ２００の校正を行うものであった。しかし、適用範囲はこれに限定されるものではなく、３次元位置姿勢センサによって撮像装置の位置姿勢を計測するような他の何れの用途に適用することも可能である。
【０１１８】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１１９】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１２２】
【図１】本発明の第１の実施形態に係る画像表示装置の機能構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る校正部３１０の機能構成を示すブロック図である。
【図３】図１に示した処理部３００を構成する各部のうち１以上をプログラムでもって実装した場合に、係るソフトウェアを実行するコンピュータのハードウェア構成を示すブロック図である。
【図４】校正部３１０が行う処理のフローチャートである。
【図５】ステップＳ４０９０において校正情報算出部５４０が行う処理を示すフローチャートである。
【図１】
2008224454.tif 000003
【図２】
2008224454.tif 000004
【図３】
2008224454.tif 000005
【図４】
2008224454.tif 000006
【図５】
2008224454.tif 000007