(57)【要約】【課題】  マーカ情報の入力を容易にする技術を提供する。【解決手段】  本発明によれば、指標の頂点座標を入力させるインタフェースを表示装置に表示する表示工程と、前記インタフェースより入力された前記頂点座標に基づいて、ＣＧ画像の描画に用いられる指標情報を導出する導出工程とを備えることを特徴とする情報処理方法が提供される。【選択図】  図９
2006293484.tif 000002
【特許請求の範囲】
【請求項１】
指標の頂点座標を入力させるインタフェースを表示装置に表示する表示工程と、
前記インタフェースより入力された前記頂点座標に基づいて、ＣＧ画像の描画に用いられる指標情報を導出する導出工程とを備えることを特徴とする情報処理方法。
【請求項２】
前記導出工程は前記頂点座標に基づいて得られた複数の指標情報を平均化することにより前記頂点座標の測定誤差を補正することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記表示工程は、前記インタフェースに前記指標の模式図を表示させ、
前記インタフェースは、ユーザが入力する頂点座標が、前記模式図のどの頂点に対応するものであるかを該ユーザが把握可能にする表示を含むことを特徴とする請求項１又は２に記載の情報処理方法。
【請求項４】
指標が含まれる平面上の、３以上の点の座標と、該平面上に設定された座標系における、該指標の２以上の頂点座標と、を入力させるインタフェースを表示装置に表示する表示工程と、
前記インタフェースより入力された、前記３以上の点の座標と、前記２以上の頂点座標とからＣＧ画像の適切な描画に用いられる指標情報を導出する導出工程とを備えることを特徴とする情報処理方法。
【請求項５】
前記表示工程は、前記インタフェースに、前記３以上の点と、前記２以上の頂点との模式図を表示させ、
前記インタフェースは、ユーザが入力する座標が前記模式図のどの点又は頂点に対応するものであるかを該ユーザが把握可能にする表示を含むことを特徴とする請求項４に記載の情報処理方法。
【請求項６】
前記表示工程は、更に、前記インタフェースに、前記導出工程によって導出された前記指標情報を表示させることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理方法。
【請求項７】
前記指標情報は、前記指標の重心座標、回転軸ベクトル、回転角度、サイズの少なくともいずれかであることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理方法。
【請求項８】
位置情報と姿勢情報とを有する指標情報を設定する情報処理方法であって、
ユーザの指示に応じて、前記指標の複数の特徴点に関する位置情報を設定し、
前記設定された複数の特徴点に関する位置情報から、前記指標の位置情報と姿勢情報とを求め、
前記求められた位置情報と姿勢情報を、前記指標の指標情報として登録することを特徴とする情報処理方法。
【請求項９】
前記指標の形状は平面の矩形であり、
前記特徴点は、前記矩形の頂点であることを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
前記指標には基準点を示す情報があり、前記基準点に基づき位置が特定される特徴点を基準として、前記複数の特徴点が識別されることを特徴とする請求項に８記載の情報処理方法。
【請求項１１】
前記指標の形状および該指標の形状に対する前記特徴点の位置を視覚的にユーザに提示することを特徴とする請求項に８記載の情報処理方法。
【請求項１２】
前記指標の姿勢情報に関する情報を視覚的にユーザに提示することを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
位置情報と姿勢情報とを有する指標情報を設定する情報処理方法であって、
ユーザの指示に応じて指標が配置されている平面の平面情報を設定し、
ユーザの指示に応じて前記指標の特徴点の位置情報を設定し、
前記平面情報および前記特徴点の位置情報に基づき、前記指標の位置情報および姿勢情報を求め、
前記求められた位置情報と姿勢情報を、前記指標の指標情報として登録することを特徴とする情報処理方法。
【請求項１４】
請求項１乃至１３のいずれか１項に記載の情報処理方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項１５】
請求項１４に記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【請求項１６】
マーカの頂点座標を入力させるインタフェースとしての入力手段と、
前記入力手段より入力された前記頂点座標に基づいて、ＣＧ画像の描画に用いられるマーカ情報を導出する導出手段とを備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は立体座標空間におけるマーカの位置姿勢を入力する技術に関する。
【背景技術】
【０００２】
従来より、現実世界と仮想世界をリアルタイムで継ぎ目なく融合させることを目的とした、ＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ：複合現実感）、ＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：強化現実感、強調現実感、拡張現実感）等に関する技術が知られている。ＭＲ等を提供する画像処理システムにおいては、例えば、ビデオカメラ等の撮像装置によって撮影された現実空間の画像に仮想空間のＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）画像を重畳表示する処理を行っている。
【０００３】
このようなシステムにおいては、ＣＧ画像を適切な位置に描画するために現実空間と仮想空間との間の位置合わせを行うことが求められる。このため、現実空間に正多角形の形状を有する指標（以下、マーカと呼ぶ）を設置し、撮像装置によって撮影された画像に含まれるマーカの位置及び姿勢等から当該撮像装置の位置を測定するシステムが知られている。
【０００４】
撮影画像に含まれるマーカの位置及び姿勢等から撮像装置の位置を測定するシステムにおいては、予めマーカの位置及び姿勢等に関するマーカ情報をシステムに入力しておく必要がある。ここで、システムに予め入力しておく必要のあるマーカ情報は以下の通りである。
（ａ）  マーカの重心の世界座標位置  （ｐx，ｐy，ｐz）
（ｂ）  マーカの基準方向に対する回転角度  （θ）
（ｃ）  マーカの回転軸ベクトルＲ  （ｒx，ｒy，ｒz）
（ｄ）  マーカの一辺の長さ（サイズ）  （ｓｚ）
上記において、（ａ）がマーカの位置、（ｂ）、（ｃ）がマーカの姿勢を定めるパラメータである。尚、マーカ情報はこれに限られるものではなく、マーカの位置及び姿勢を記述するどのようなパラメータを用いてもよい。画像処理システムにおいてマーカ情報はＣＧ画像の適切な描画に用いられる。
【０００５】
図１は、正三角形の形状を有するマーカを例示的に示した図である。図１において１０１は正三角形の形状を有するマーカであり、その外縁部が所定の色（例えば、黒色）で塗りつぶされている。１０２は、マーカ１０１の中心（重心）を示す点であり、外観によって重心１０２の位置が分かるように所定の色（例えば、黒色）で着色されている。尚、図１に示したように、マーカの一辺の長さがサイズｓｚである。
【０００６】
マーカを用いた測定系においては、図２（ａ）に例示するように世界座標系２０１が定義されている。世界座標系２０１は所定の位置を原点として構成される３次元の座標系である。マーカの位置は、この世界座標系２０１における重心１０２の座標（ｐx，ｐy，ｐz）によって定まることになる。
【０００７】
また、マーカ１０１の姿勢は、ｘｙ平面に平行なマーカを回転軸ベクトルＲ２０３に沿って回転角度θで回転させたものとして記述される。
【０００８】
従来のシステムにおいて、利用者は測定系に設置したマーカのそれぞれについて、マーカの中心の世界座標、姿勢を示す回転軸と回転角、指標のサイズ等のマーカ情報を指定しなければならなかった。これは図１、２に例示したような三角形のマーカだけでなく、４角形のマーカ、５角形のマーカ等、ｎ（≧４）角形のマーカについても同様である。
【非特許文献１】D. Kotake, S. Uchiyama, and H. Yamamoto: "A marker calibration method utilizing a priori knowledge on marker arrangement," Proc. 3rd IEEE/ACM Int'l Symp. on Mixed and Augmented Reality (ISMAR 2004), pp.89-98, November 2004.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、マーカの、重心の世界座標位置、基準方向に対する回転角度、回転軸ベクトル等のマーカ情報を手作業により求めることは煩雑な手間を要し、使い勝手が悪かった。例えば、図３に例示したような、ｘｙ平面、ｙｚ平面、ｚｘ平面のいずれにも平行、又は、直交しない、斜めの平面３０１に張られたマーカ３０２のマーカ情報を手作業により求めるには煩雑な手間を要する。
【００１０】
本発明は上記問題に鑑みなされたものであり、マーカ情報の入力を容易にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明によれば、指標の頂点座標を入力させるインタフェースを表示装置に表示する表示工程と、前記インタフェースより入力された前記頂点座標に基づいて、ＣＧ画像の描画に用いられる指標情報を導出する導出工程とを備えることを特徴とする情報処理方法が提供される。
【発明の効果】
【００１２】
本発明によれば、マーカ情報の入力を容易にする技術を提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１４】
本実施形態においては、世界座標系に設置された正四角形のマーカ（指標）について、そのマーカ情報（マーカの位置及び姿勢等に関する情報）を入力することが容易な構成について説明する。画像処理システムにおいてマーカ情報はＣＧ画像の適切な描画に用いられる。
【００１５】
本実施形態の構成は、ユーザから指示入力された情報に基づいてマーカ情報を導出し、画像中から四角形のマーカを検出するシステムのためのマーカファイルを生成するマーカ情報導出ツール（以下、ツールと呼ぶ）として提供される。このツールは、例えば、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）、携帯情報端末（ＰＤＡ）等の、情報処理装置（計算機）上で動作するソフトウェアとして実現される。本実施形態では、四角形のマーカを用いた構成について述べるが、これは所定の多角形のマーカに容易に拡張可能である。また、本実施形態におけるツールは、等価な機能を持つハードウェアによって実現してもよい。
【００１６】
［情報処理装置の構成］
まず、本実施形態に対応する情報処理装置の概略について説明する。図１５は、本実施形態に対応する情報処理装置の機器構成を示すブロック図である。
【００１７】
図１５において、１６００はＣＰＵであり、後述するハードディスク装置（以下、ＨＤと呼ぶ）１６０５に格納されているアプリケーションプログラム、オペレーティングシステム（ＯＳ）や制御プログラム等を実行し、ＲＡＭ１６０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１８】
１６０１はＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。１６０２は各種データを一時記憶するためのＲＡＭであり、ＣＰＵ１６００の主メモリ、ワークエリア等として機能する。
【００１９】
１６０３は記録媒体へのアクセスを実現するための外部記憶ドライブであり、メディア（記録媒体）１６０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア１６０４は、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２０】
１６０５は外部記憶装置であり、本実施形態では大容量メモリとして機能するＨＤを用いている。ＨＤ１６０５には、アプリケーションプログラム、ＯＳ、制御プログラム、関連プログラム等が格納される。
【００２１】
１６０６は指示入力装置であり、キーボードやポインティングデバイス（マウス等）、タッチパネル等がこれに相当する。指示入力装置１６０６を用いて、ユーザは、情報処理装置に対して、当該装置を制御するコマンド等を入力指示する。
【００２２】
１６０７はディスプレイであり、指示入力装置１６０６から入力したコマンドや、それに対する情報処理装置の応答出力等を表示したりするものである。
【００２３】
１６０９はシステムバスであり、情報処理装置内のデータの流れを司るものである。１６０８はインターフェイス（以下、Ｉ／Ｆという）であり、このＩ／Ｆ１６０８を介して外部装置とのデータのやり取りを行う。
【００２４】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００２５】
本実施形態では、メディア１６０４から本実施形態に係るプログラム及び関連データを直接ＲＡＭ１６０２にロードして実行させる例を示すが、これ以外にも、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているＨＤ１６０５からＲＡＭ１６０２にロードするようにしてもよい。また、本実施形態に係るプログラムをＲＯＭ１６０１に記録しておき、これをメモリマップの一部をなすように構成し、直接ＣＰＵ１６００で実行することも可能である。
【００２６】
本実施形態における情報処理装置には、オペレーティングシステムとしてＷｉｎｄｏｗｓ（登録商標）がインストールされており、Ｗｉｎｄｏｗｓ（登録商標）が基本的な制御を実行する。尚、Ｗｉｎｄｏｗｓ（登録商標）以外のオペレーティングシステムがインストールされた情報処理装置を用いてもよい。
【００２７】
［マーカの構成］
本実施形態で使用する四角形のマーカ（以下、四角マーカと呼ぶ）を図４に例示する。図４のように、四角マーカは所定の色（例えば黒色）の縁４０１の正方形の中に所定の色（例えば黒色）の基準点４０２があるような構成をしている。
【００２８】
本実施形態におけるツールは、四角マーカの位置姿勢、即ち、四角マーカの世界座標系における重心（中心）座標と、ｘｙ平面に平行な四角マーカをどの軸に対してどのくらいに回転させた姿勢になっているか、四角マーカの一辺の長さ等の情報を求めることを目的とする。
【００２９】
図５（ａ）（ｂ）は世界座標系に設置された四角マーカを例示的に示した図である。図５（ａ）（ｂ）で示した四角マーカ５０１は、一辺の長さがｓｚであり、重心座標が（ｐx，ｐy，ｐz）である。また、図５（ｂ）のように、マーカの姿勢は、ｘｙ平面に平行なマーカを、回転軸ベクトルＲ＝（ｒx，ｒy，ｒz）５０２に対して回転角θだけ回転したものとして記述される。
【００３０】
四角マーカの位置姿勢を記述した、マーカファイルを図６に例示する。マーカファイルにおいては、１つのマーカは以下のような形式で記述される。
ＳｑｕａｒｅＭａｒｋｅｒ  ＜識別子＞  ｛
Ｐｏｓｉｔｉｏｎ（ｐx，ｐy，ｐz）
Ｏｒｉｅｎｔａｔｉｏｎ（ｒx，ｒy，ｒz）  θ
Ｓｉｚｅ  ｓｚ
｝
従って、例えば、図６の６０１は、識別子がｓｑ１のマーカについての記述であり、重心座標が（０，１００，２００）、回転軸ベクトルＲが（１，０，０）、回転軸ベクトルＲに対する回転角が９０°、一辺の長さが５０であることを示している。本実施形態におけるツールは、このようなマーカファイルを出力する。
【００３１】
このように、本実施形態では、マーカ情報として、位置情報および姿勢情報を設定する。
【００３２】
［マーカ情報導出処理］
次に、ツールが実行するマーカ情報導出処理について説明する。図１６は、マーカ情報導出処理の全体の流れを示したフローチャートである。
【００３３】
ツールは、ステップＳ３０１において、マーカ設定画面（四角指標設定画面）をディスプレイ１６０７に表示する。図７は、マーカ設定画面を例示的に示した図である。
【００３４】
図７において、７０１は四角指標、即ち、四角マーカのマーカ情報についての処理を実行するツールのユーザインタフェースであり、マーカファイルの呼び出しや、マーカ情報の入力等の指示入力を受け付ける。７０２は指標名、即ち、マーカ名の入力を受け付ける入力域である。７０３はマーカの位置、即ち、マーカの重心座標を入力する入力域である。７０４はマーカの回転軸ベクトルの入力域、７０５は回転角の入力域、７０６はマーカの大きさ（一辺の長さ）の入力域である。
【００３５】
７０７は、マーカの各頂点の座標を入力することによって、７０３乃至７０６のマーカ情報を導出する際に選択される、頂点指定ボタンである。７０８は、マーカが設置されている平面についての情報等を入力することによって、７０３乃至７０６のマーカ情報を導出する際に選択される、平面指定ボタン７０８である。
【００３６】
７０９はファイルボタンであり、編集対象となるマーカファイルの読み込みや書き出し、保存等を実行する際に選択される。マーカファイルの読み書き等の処理は、オペレーティングシステムの制御に基づいて実行する。７１０は編集ボタンであり、マーカファイルへのマーカの追加、削除等の編集処理を実行する際に選択される。
【００３７】
図７は、編集メニューからマーカ情報の追加、即ち、マーカ情報を編集対象のマーカファイルに追加する旨が指示された直後の画面を示している。図７のように、ツールはマーカ情報の追加が指示入力された場合は、指示されたマーカ情報を呼び出し、７０２乃至７０６に指示されたマーカのマーカ情報を設定して表示する。図７の例では、マーカ名の初期値は「ＮｅｗＭａｒｋｅｒ」であり、追加される四角マーカのマーカ情報について、ウィンドウの左側のツリービュー上に「ＮｅｗＭａｒｋｅｒ」という名前で作成している。
【００３８】
本実施形態におけるツールは、７０３乃至７０６の情報、即ち、マーカの重心の位置、回転軸ベクトル、回転角等のマーカ情報を直接入力することもできるが、これらの導出が煩雑であることに鑑み、マーカの各頂点の座標入力、又は、マーカが設置されている平面についての情報等の入力に基づいてマーカ情報を導出する処理を行う。
【００３９】
図７において頂点指定ボタン７０７が選択された場合、即ち、ステップＳ３０２において頂点指定による入力が選択された場合（ステップＳ３０２でＹＥＳ）は、ステップＳ３０４へ進む。ステップＳ３０４では後述する頂点指定による導出処理を実行し、処理を終了する。
【００４０】
図７において平面指定ボタン７０８が選択された場合、即ち、ステップＳ３０３において平面指定による入力が選択された場合（ステップＳ３０３でＹＥＳ）ステップＳ３０４へ進む。ステップＳ３０４では後述する平面指定による導出処理を実行し、処理を終了する。
【００４１】
［頂点指定による導出処理］
次に頂点指定による導出処理について説明する。この処理では、マーカの各頂点を入力として受け取り、マーカ情報を導出する。図１０は頂点指定による導出処理の流れを示すフローチャートである。
【００４２】
まず、ステップＳ１０１において、頂点指定入力画面をディスプレイ１６０７に表示制御する。図８は頂点指定入力画面の一例を示した図である。図８において、８０１は頂点指定入力画面の一例である。８０３は、マーカの各頂点の座標入力を受け付ける座標入力域である。８０２は、座標入力域８０３に入力されたマーカの各頂点の座標に基づいて、マーカの、各頂点の位置関係含む模式図を、各頂点の通し番号と共に表示する表示領域である。
【００４３】
本実施形態では、マーカ（指標）の特徴点として、平面の矩形形状を有する指標の頂点を使用している。
【００４４】
本実施形態におけるツールは、マーカ５０１の各頂点の座標が、時計回り、又は、反時計回りに入力されることを想定している。そこで、ツールは、表示領域に各頂点に番号を振ったマーカ５０１の模式図を表示する。ただし、模式図におけるマーカ５０１の頂点に付随する通し番号は、時計回り、又は、反時計回りに振られているものとする。ユーザは表示領域８０２に表示されたマーカの各頂点に付された通し番号の順に、各頂点の座標を座標入力域８０３に入力する。このように、ユーザは各頂点の通し番号と対応づけて各頂点の座標を入力することができ、作業が容易である。
【００４５】
本実施形態では、四角マーカの設定においては、基準点４０２の反対側の角から反時計回りに頂点を指定するようになっている。本実施形態によれば、基準点４０２の反対側から指定させることで、四角マーカの向きもマーカ情報として使用することが出来る。
【００４６】
このように、本実施形態では、基準点４０２に基づき位置が決定される特徴点（基準点４０２の反対側の角）から４つの特徴点の位置を識別（特定）している。
【００４７】
そして、マーカ５０１の模式図をユーザに視覚的に提示することにより、ユーザが特徴点の位置を簡単に認識できるようにしている。さらに、法線ベクトルを模式図上に付加しているので、マーカ５０１の向きをユーザに視覚的に提示している。
【００４８】
本実施形態によれば、ユーザが、特徴点の入力を間違えることを低減させることができる。
【００４９】
８０４はＯＫボタンであり、座標入力が終了したときにユーザにより選択される。８０５はキャンセルボタンであり、座標入力を取り消すときにユーザにより選択される。ＯＫボタン８０４が選択されると、ツールは入力された各頂点の座標が確定したものと判断し、ステップＳ１０２へ進む。Ｓ１０２以降の処理で、ツールは、入力された４つの頂点の情報から、マーカの重心の位置と、マーカの姿勢を示す回転軸ベクトル、回転角と、マーカのサイズを計算し、図７の各フィールドに値を代入する。
【００５０】
ステップＳ１０１においてユーザにより入力された４つの頂点の座標は、次の条件を満たしている必要がある。
（ａ）  ４つの頂点は同一平面上にある
（ｂ）  ４つの頂点は上記の平面上において正方形をなす
しかし実運用上は測定誤差があるので、ツールはこれらの条件に合うように調整して値を計算する。
【００５１】
ステップＳ１０２において、ツールは入力された４つの頂点の座標からマーカの重心座標Ｐmを求める。入力された４つの頂点の座標をＰi（０≦ｉ＜４）とすると、
Ｐm＝（Ｐ0＋Ｐ1＋Ｐ2＋Ｐ3）／４
でマーカの重心座標Ｐmを求めることができる。ここで、頂点座標Ｐiの加減乗除は、各座標成分の加減乗除を意味するものとする。以下、特に断らない限り同様とする。
【００５２】
次に、ステップＳ１０３において、４つの頂点を通る平面の法線ベクトルを求める。本実施形態におけるツールは、測定誤差を丸めるために、４つの頂点を結んだ４本のベクトルに直行するベクトルを求め、その平均をマーカの法線ベクトルとする。
【００５３】
４つの頂点の座標をＰi（０≦ｉ＜４）とし、それから作られるベクトルＶを次のように定義する。
【００５４】
Ｖi＝Ｐi+1−Ｐi    （０≦ｉ＜３の場合）
Ｖ3＝Ｐ0−Ｐ3
このとき、ＶiとＶi+1に直行するベクトルＮiは次式で与えられる。
【００５５】
Ｎｉ＝Ｖi+1×Ｖi（０≦ｉ＜３の場合、×は外積を示す）
Ｎ3＝Ｖ0×Ｖ3
図１１はＰi、Ｖi、Ｎiの位置関係を模式的に示した図である。本実施形態においては、Ｎ0〜Ｎ3の平均をとったものを、マーカの法線ベクトルＮmとする。即ち、
Ｎm＝（Ｎ0＋Ｎ1＋Ｎ2＋Ｎ3）／４
である。
【００５６】
本実施形態ではマーカの頂点座標を反時計回りに入力させていたため、以上に述べた計算で８０２で図示したように法線を定めることが出来た。もしマーカの頂点を時計回りに入力させる場合には、以上に述べた計算で求まるベクトルを反転したものを法線ベクトルとしなければならない。
【００５７】
次に、ステップＳ１０４において、回転軸ベクトル及び回転角を求める。基準となるマーカの姿勢は、ｘｙ平面に平行に直立し、右上に基準点４０２がある姿勢である。基準姿勢にあるマーカと、入力された座標の示すマーカの辺の対応を考えると、（ｓｚ，０，０)とＶ0が、（０，ｓｚ、０）と−Ｖ3が対応する。ただしＶ0と−Ｖ3が必ずしも直交しているとは限らない。そこでいちどＶ0と−Ｖ3の外積を求め、さらにその結果とＶ0との外積を求めてＶ0と直交する−Ｖ3’を求める。
【００５８】
（ｓｚ，０，０）、（０，ｓｚ，０）、Ｖ0、−Ｖ3’をそれぞれ単位行列に正規化すると、ｘ軸、ｙ軸の単位行列が、Ｖ0／｜Ｖ0｜、−Ｖ3’／｜−Ｖ3’｜に対応していることがわかる。ｘ軸、ｙ軸の単位行列を、Ｖ0／｜Ｖ0｜、−Ｖ3’／｜−Ｖ3’｜に変換する回転行列ＲMをもとめ、この回転行列ＲMから回転軸ベクトル、回転角を求めれば、基準姿勢からのマーカの姿勢を求めることができる。回転行列ＲMの求め方と、回転行列ＲMから回転軸ベクトル、回転角の求め方は既知のものとしてここでは説明しない。
【００５９】
次に、ステップＳ１０５において、マーカのサイズｓｚを求める。これは先に求めたＶiの長さの平均をとることで求めることができる。
【００６０】
ｓｚ＝（｜Ｖ0｜＋｜Ｖ1｜＋｜Ｖ2｜＋｜Ｖ3｜）／４
以上の処理の後、ツールは図７で例示したユーザインタフェース７０１の７０２乃至７０６に、ステップＳ１０２乃至Ｓ１０５で導出したマーカ情報を表示制御し、処理を終了する。
【００６１】
以上の処理により、ユーザは測定の行いやすいマーカの各頂点の座標を入力することで、マーカの重心座標Ｐm、マーカの姿勢を示すための回転軸ベクトルＲと回転角θ、マーカのサイズｓｚを求めることができる。また、ツールは、重心座標、法線ベクトル及びサイズを算出する際に適宜測定値を平均化する処理を行うため、測定値に誤差が含まれている場合においても、この誤差を補正し、信頼性の高い値を求めることができる。また、ツールはマーカの外縁に沿って順番に頂点の座標を入力させるため、頂点座標の入力を容易にしている。
【００６２】
尚、上記の手法は、マーカがどのような正多角形をしていても適用可能である。即ち、ステップＳ１０２では、マーカの各頂点の座標の平均を求めることで、重心座標を求めることができる。ステップＳ１０３では、互いに隣り合った辺のベクトルの、外積の平均値を求めることで、マーカの法線ベクトルを求めることができる。ステップＳ１０４では、上記と同様に基準方向ベクトルと法線ベクトルとから回転角及び回転軸ベクトルを求めることができる。ステップＳ１０５では各編の長さの平均を求めることでサイズを求めることができる。また、ツールは、重心座標、法線ベクトル及びサイズを算出する際に適宜測定値を平均化する処理を行うため、測定値に誤差が含まれている場合においても信頼性の高い値を求めることができる点も同様である。
【００６３】
［平面指定による導出処理］
次に、平面指定による導出処理について説明する。この処理では、マーカを含む平面上の３点の座標と、この平面上の座標系におけるマーカの座標を入力として受け取り、マーカ情報を導出する。図１２は平面指定による導出処理の流れを示すフローチャートである。
【００６４】
まず、ステップＳ２０１において、平面指定入力画面をディスプレイ１６０７に表示制御する。図９は平面指定入力画面の一例を示した図である。図９において、９０１は平面指定入力画面の一例である。
【００６５】
９０３は、マーカが含まれる平面上の３点（頂点１、２、３）の座標入力を受け付ける座標入力域である。９０２は、座標入力域９０３に入力された３点の座標に基づいて、各点の位置関係を通し番号と共に模式的に表示する表示領域である。３つの頂点（頂点１、２、３）は、それぞれ次の意味を持つ。
【００６６】
第１の頂点:  マーカが含まれる平面の原点
第２の頂点:  マーカが含まれる平面のｘ軸上の頂点
第３の頂点:  マーカが含まれる平面上の頂点
即ち、第１及び第２の頂点の座標からマーカが含まれる平面上の座標系における、原点及びｘ軸が定義され、さらに、第３の頂点からｙ軸が定義される。ここで、ｙ軸の正負の方向は、例えば、マーカが含まれる平面をｘ軸によって区分した場合に、第３の頂点が含まれる方向を正と定義するものとする。以下、説明の簡略化のため、マーカが含まれる平面をｘ軸によって区分した場合に、第３の頂点が含まれる方向をｙ軸の正と定義する。ユーザは表示領域９０２に表示された各頂点の通し番号に対応づけられた頂点座標を入力することができ、作業が容易である。
【００６７】
９０５は、座標入力域９０３に入力された値から定義される座標系における、マーカの２頂点の座標が入力される座標入力域である。入力される座標は、互いに隣り合った２点の座標が入力されるものとする。
【００６８】
９０４は、マーカの各頂点の位置関係を模式的に表示する表示領域である。ここで、座標入力の容易化のため、例えば、基準点４０２の位置に基づいて、座標を入力する頂点を指定するようにしてもよい。図９の例では、基準点から最も遠い頂点（頂点Ａ）と、頂点Ａに反時計回り方向に隣接する頂点（頂点Ｂ）が指定されている。
【００６９】
９０６はＯＫボタンであり、座標入力が終了したときにユーザにより選択される。９０７はキャンセルボタンであり、座標入力を取り消すときにユーザにより選択される。ＯＫボタン９０６が選択されると、ツールは入力された各頂点の座標が確定したものと判断し、ステップＳ２０２へ進む。Ｓ２０２以降の処理で、ツールは、入力された情報から、マーカの重心の位置と、マーカの姿勢を示す回転軸ベクトル、回転角と、マーカのサイズを計算し、図７の各フィールドに値を代入する。
【００７０】
ステップＳ２０２において、ツールは座標入力域９０３に入力された頂点１乃至３の座標からマーカが含まれる平面の法線ベクトルを求める。平面を指定する頂点１，２，３の位置をそれぞれＰ0、Ｐ1、Ｐ2とすると、平面の法線Ｎpは、
Ｎp＝（Ｐ1−Ｐ0）×（Ｐ2−Ｐ0）
で求めることができる。
【００７１】
次に、ステップＳ２０３において、頂点１、２、３から定まる平面基底上でのマーカの重心座標を求める。先に述べたように、座標入力域９０５には、反時計回り方向に隣接する頂点Ａ、Ｂの座標が入力されている。そこで、図１３のように、頂点Ｂの反時計回り方向に隣接する頂点Ｑの座標を求め、ＡＱの中点の座標を求めることによりマーカの重心Ｍfの座標を求める。Ｑの座標は、Ｂの座標に、ベクトルＡＢ（Ｂ−Ａと表す）を９０°回転したベクトルを加えて得られる座標になる。このため、Ｑ及びＭfの座標は次式で与えられる。
【００７２】
【数１】
2006293484.tif 000003
【００７３】
尚、マーカが正ｎ角形の場合は、Ｑの座標は、Ｂの座標に、ベクトルＡＢ（Ｂ−Ａと表す）を（３６０／ｎ）°回転したベクトルを加えて得られる座標になる。従って、正ｎ角形の場合は、数式１の９０°は（３６０／ｎ）°となる。また、例えば、Ｍfの座標は、ＡＢの垂直２等分線、及び、ＢＱの垂直２等分線の交点として求めてもよい。
【００７４】
次に、ステップＳ２０４において、ステップＳ２０３で求めた平面座標系におけるマーカの重心座標を世界座標系における座標に変換する処理を行う。このため、まず、平面座標系でのｘ軸、ｙ軸の方向ベクトルの、世界座標系における単位ベクトルＥx，Ｅyを求める。Ｅxは次式で与えられることは明らかである。
【００７５】
Ｅx＝Ｐ1−Ｐ0／｜Ｐ1−Ｐ0｜
また、マーカが含まれる平面をｘ軸によって区分した場合に、第３の頂点（Ｐ2）が含まれる方向をｙ軸の正と定義しているため、図１４のように、Ｅyは法線ベクトルＮpと直交する。
【００７６】
従って、ＥyはＮpとＥxの外積を単位ベクトル化した次式で与えられる。
【００７７】
Ｅy＝Ｎp×Ｅx／｜Ｎp×Ｅx｜
ツールは上記のようにしてＥx、Ｅyを求める。この場合、ステップＳ２０４において求められた、平面座標系におけるマーカの重心座標Ｍfを（ｍx，ｍy）とすると、世界座標中でのマーカの座標Ｐmは、
Ｐm＝ｍx・Ｅx＋ｍy・Ｅy＋Ｐ0
となる。マーカのサイズｓｚは図１３から明らかなように
ｓｚ＝｜ＡＢ｜
である。
【００７８】
次に、ステップＳ２０５において、マーカの回転軸ベクトルと回転角を求める。基準となるマーカの姿勢は、ｘｙ平面に平行に直立し、右上に基準点４０２がある姿勢である。基準姿勢にあるマーカと、入力された座標の示すマーカの辺の対応を考えると、（ｓｚ，０，０）と図１３中のベクトルＡＢが、（０，ｓｚ，０）とベクトルＢＱが対応する。
ベクトルＡＢ、ベクトルＢＱを世界座標系に直すためには、それぞれのｘ，ｙ成分をＥx、Ｅyに乗じればよい。そのようにして得られた世界座標系でのベクトルＡＢ、ＢＱをそれぞれＭx、Ｍyとする。
【００７９】
（ｓｚ，０，０）、（０，ｓｚ，０）、Ｍx、Ｍyをそれぞれ単位行列に正規化すると、ｘ軸、ｙ軸の単位行列が、Ｍx／｜Ｍx｜、Ｍy／｜Ｍy｜に対応していることがわかる。ｘ軸、ｙ軸の単位行列を、Ｍx／｜Ｍx｜、Ｍy／｜Ｍy｜に変換する回転行列ＲMをもとめ、この回転行列ＲMから回転軸ベクトル、回転角を求めれば、基準姿勢からのマーカの姿勢を得られる。回転行列ＲMの求め方と、回転行列ＲMから回転軸ベクトル、回転角の求め方は既知のものとしてここでは説明しない。
【００８０】
以上の処理により、マーカの重心座標Ｐm、マーカの姿勢を示すための回転軸ベクトルＲと回転角θ、マーカのサイズｓｚを求めることができる。
【００８１】
以上の処理の後、ツールは図７で例示したユーザインタフェース７０１の７０２乃至７０６に、ステップＳ２０２乃至Ｓ２０５で導出したマーカ情報を表示制御し、処理を終了する。
【００８２】
以上の処理により、ユーザは測定の行いやすい方向に平面座標系を設定し、その平面上の３点の座標と、平面座標系におけるマーカの頂点の座標を入力することによりマーカ情報を入力することができる。このため、ユーザは容易にマーカ情報を入力することができる。
【００８３】
尚、上記の手法は、マーカがどのような正多角形をしていても適用可能である。即ち、ステップＳ２０２、Ｓ２０３、Ｓ２０４、Ｓ２０５と同様の処理によって、回転軸ベクトル、回転角、重心座標、サイズを求めることができる。
【００８４】
［その他の実施形態］
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００８５】
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００８６】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
【００８７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００８８】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００８９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９０】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。  また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００９１】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９２】
【図１】正三角形の形状を有するマーカを例示的に示した図である。
【図２】世界座標系におけるマーカを例示的に示した図である。
【図３】斜めの平面に張られたマーカを例示的に示した図である。
【図４】正四角形の形状を有するマーカを例示的に示した図である。
【図５】世界座標系に設置された四角マーカを例示的に示した図である。
【図６】本実施形態で使用するマーカファイルを例示的に示した図である。
【図７】マーカ設定画面を例示的に示した図である。
【図８】頂点指定入力画面の一例を示した図である。
【図９】平面指定入力画面の一例を示した図である。
【図１０】頂点指定による導出処理の流れを示すフローチャートである。
【図１１】Ｐi、Ｖi、Ｎiの位置関係を模式的に示した図である。
【図１２】平面指定による導出処理の流れを示すフローチャートである。
【図１３】頂点Ａ、Ｂの座標から頂点Ｑ、Ｍfの座標を求める様子を模式的に示した図である。
【図１４】Ｅx、Ｅy、Ｎpの位置関係を模式的に示した図である。
【図１５】情報処理装置の機器構成を示すブロック図である。
【図１６】マーカ情報導出処理の全体の流れを示したフローチャートである。
【図１】
2006293484.tif 000004
【図２】
2006293484.tif 000005
【図３】
2006293484.tif 000006
【図４】
2006293484.tif 000007
【図５】
2006293484.tif 000008
【図６】
2006293484.tif 000009
【図７】
2006293484.tif 000010
【図８】
2006293484.tif 000011
【図９】
2006293484.tif 000012
【図１０】
2006293484.tif 000013
【図１１】
2006293484.tif 000014
【図１２】
2006293484.tif 000015
【図１３】
2006293484.tif 000016
【図１４】
2006293484.tif 000017
【図１５】
2006293484.tif 000018
【図１６】
2006293484.tif 000019