(57)【要約】【課題】  現実空間中に配置された指標が撮像された画像から、指標の識別を精度良く行う。【解決手段】  現実空間を撮像した撮像画像を取得する。そして、撮像画像から１つ以上の指標を検出し、検出した指標から、当指標を識別するための指標識別情報を認識する。さらに、指標識別情報の認識結果を検証するための検証情報であって、撮像画像に基づかない検証情報を取得するし、この検証情報に基づいて、認識結果を検証又は修正する。【選択図】図１
2007164631.tif 000002
【特許請求の範囲】
【請求項１】
現実空間を撮像した撮像画像を取得する画像取得工程と、
前記撮像画像から１つ以上の指標を検出する指標検出工程と、
前記検出した指標から、当該指標を識別するための指標識別情報を認識する認識工程と、
前記指標識別情報の認識結果を検証するための検証情報であって、前記撮像画像に基づかない検証情報を取得する検証情報取得工程と、
前記検証情報に基づいて、前記認識結果を検証又は修正する検証工程とを備えることを特徴とする指標識別方法。
【請求項２】
前記認識結果の信頼度を算出する信頼度算出工程をさらに有し、
前記検証工程は、前記信頼度算出工程で算出した前記信頼度に応じて、前記検証工程で行う処理を変更することを特徴とする請求項１に記載の指標識別方法。
【請求項３】
前記検証工程は、前記信頼度が前記認識結果を信頼するに足りないときにのみ前記認識結果の検証又は修正を行うことを特徴とする請求項２に記載の指標識別方法。
【請求項４】
前記信頼度算出工程は、前記信頼度を、前記検出された指標の複数の特徴点の、前記撮像画像における位置関係を用いて算出することを特徴とする請求項２又は請求項３に記載の指標識別方法。
【請求項５】
前記信頼度算出工程は、前記複数の特徴点の位置関係として、前記撮像画像における前記複数の特徴点間の距離を用いることを特徴とする請求項４に記載の指標識別方法。
【請求項６】
前記指標識別情報は、前記指標の予め定められた領域中に濃淡または色によって表現される情報であって、前記認識工程は、前記予め定められた領域の明度または色を検出することにより、前記識別情報を認識することを特徴とする請求項２乃至請求項５のいずれか１項に記載の指標識別方法。
【請求項７】
前記指標識別情報が、前記濃淡又は色により表現された、誤り訂正可能な符号によるコードであり、
前記認識工程は、前記認識した前記指標識別情報に誤りがあれば訂正を行うと共に、
前記信頼度算出工程は、前記認識工程で前記訂正が行われたか否かを前記信頼度に反映させることを特徴とする請求項２乃至請求項６のいずれか１項に記載の指標識別方法。
【請求項８】
前記信頼度算出工程は、前記信頼度を、前記検出された指標の、前記撮像画像中に占める画素数を用いて算出することを特徴とする請求項２乃至請求項７のいずれか１項に記載の指標識別方法。
【請求項９】
前記指標が設置または設定されている物体に対する、前記撮像装置の配置情報を取得する配置情報取得工程をさらに有し、
前記検証情報取得工程は、前記配置情報取得工程で取得した前記撮像装置の配置情報と、前記認識工程で認識された前記指標識別情報に対応する指標の、前記物体上における配置情報とに基づいて前記検証情報を取得することを特徴とする、請求項１乃至請求項８のいずれか１項記載の指標識別方法。
【請求項１０】
前記検証情報取得工程は、前記配置情報取得工程で取得した前記撮像装置の配置情報と、前記認識工程で認識された前記指標識別情報に対応する指標の、前記物体上における配置情報とに基づいて、前記撮像画像上における前記検出された指標の見え方に関する情報の推定値を前記検証情報として算出し、
前記検証工程は、前記検出された指標の前記撮像画像上における見え方に関する情報の検出値と、前記検証情報取得工程で算出した前記推定値との比較によって、前記認識工程における前記指標識別情報の認識結果の検証を行うことを特徴とする請求項９に記載の指標識別方法。
【請求項１１】
前記検証情報取得工程は、前記配置情報取得工程で取得した前記撮像装置の配置情報と、前記認識工程で認識された前記指標識別情報に対応する指標の、前記物体上における配置情報とに基づいて、前記撮像装置に対する前記指標の相対的な位置および／または姿勢の推定値を前記検証情報として算出し、
前記検証工程は、前記検証情報取得工程で取得した前記指標の位置および／または姿勢の推定値に基づいて、前記認識工程における前記指標識別情報の認証結果の検証を行うことを特徴とする請求項９に記載の指標識別方法。
【請求項１２】
現実空間を撮像した撮像装置を取得する画像取得工程と、
前記撮像画像から１つ以上の指標を検出する指標検出工程と、
前記検出した指標から、当該指標を識別するための第１の指標識別情報を認識する認識工程と、
前記検出した指標を識別するための第２の指標識別情報を、前記撮像画像からの認識以外の手段で取得する指標識別情報取得工程と、
前記認識工程で認識された第１の指標識別情報と、前記指標識別情報取得工程で取得した第２の指標識別情報とを比較して前記検出された指標の識別を行う指標識別工程とを備えることを特徴とする指標識別方法。
【請求項１３】
前記検出された指標が設置または設定されている物体に対する、前記撮像装置の配置情報を取得する配置情報取得工程をさらに有し、
前記指標識別情報取得工程は、前記配置情報取得工程で取得した前記撮像装置の配置情報と、前記検出された指標の前記物体上における配置情報とに基づいて、前記第二の指標識別情報を求めることを特徴とする請求項１２に記載の指標識別方法。
【請求項１４】
前記指標識別情報取得工程は、前記配置情報取得工程で取得した前記撮像装置の配置情報と、前記検出された指標の前記物体上における配置情報とに基づいて、前記撮像画像における前記検出された指標の見え方に関する情報の推定値を算出し、前記指標検出工程における、前記検出された指標の前記撮像画像における見え方に関する情報の検出値と比較することによって前記検出された指標の同定を行い、前記第二の指標識別情報を得ることを特徴とする請求項１３に記載の指標識別方法。
【請求項１５】
前記指標識別情報取得工程は、前記配置情報取得工程で取得した前記撮像装置の配置情報と、前記検出された指標の前記物体上における配置情報とに基づいて、前記撮像装置に対する前記検出された指標の相対的な位置および／または姿勢の推定値を算出し、該推定値を利用して前記第二の指標識別情報を得ることを特徴とする請求項１３に記載の指標識別方法。
【請求項１６】
前記指標の前記撮像画像における見え方に関する情報とは、前記撮像画像における前記検出された指標の位置、向き、大きさの１つ以上を含むことを特徴とする、請求項１０または請求項１４に記載の指標識別方法。
【請求項１７】
前記配置情報取得工程は、前記物体および／または前記撮像装置に装着された、位置および／または姿勢センサを利用して、前記撮像装置の配置情報を取得することを特徴とする請求項１０乃至請求項１６のいずれか１項に記載の指標識別方法。
【請求項１８】
前記配置情報取得工程は、過去に識別された指標の情報を用いて、前記撮像装置の配置情報を推定することを特徴とする請求項９乃至請求項１６のいずれか１項に記載の指標識別方法。
【請求項１９】
現実空間を撮像した撮像画像を取得する画像取得手段と、
前記撮像画像から１つ以上の指標を検出する指標検出手段と、
前記検出した指標から、当該指標を識別するための指標識別情報を認識する認識手段と、
前記指標識別情報の認識結果を検証するための検証情報であって、前記撮像画像に基づかない検証情報を取得する検証情報取得手段と、
前記検証情報に基づいて、前記認識結果を検証又は修正する検証手段とを備えることを特徴とする指標識別装置。
【請求項２０】
コンピュータに、請求項１乃至請求項１８のいずれか１項に記載の指標識別方法を実行させるためのコンピュータプログラム。
【請求項２１】
請求項２０記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間中に配置された指標を、現実空間を撮像した画像から検出、識別する技術に関する。
【背景技術】
【０００２】
例えば現実空間と仮想空間とを融合表示する複合現実感システムにおいて、現実空間を撮像する撮像部（以下、カメラとも言う）の位置姿勢計測が必要となる。従来、現実空間中に予め配置した指標（例えば特定の形状及び色を有する物体）を利用したカメラの位置姿勢計測技術として、非特許文献１乃至３や特許文献１等において開示されているような技術が知られている。
【０００３】
非特許文献１乃至３においては、現実空間中の既知の位置に予め正方形の指標を配置し、指標を含む現実空間をカメラで撮像した画像から、指標を検出する。そして、正方形指標の４頂点の画像中の座標と、既知の絶対座標とを基にして、カメラの位置姿勢を測定（推定）している。ただし、正方形は、その中心点（対角線の交点）を通り、面に垂直な軸を回転軸として９０度毎の回転対称形であることから、画像中の頂点座標からだけでは指標の向きを判別できない。そのため、指標の内部に、指標の向きを判別するためのさらなる特徴（例えば方向性のあるパターン）が設けられている。
【０００４】
さらに、指標を複数利用する場合、カメラで撮像した画像のみに基づいて複数の指標を同定する必要があるため、指標の内部にはさらに指標毎に異なる固有のパターンや符号などの図形情報が埋め込まれている。このような正方形指標は、画像上における特定色領域の重心点１点のみを特徴とするような画像指標に比べ、各マーカに識別用の情報（以後、識別情報と呼ぶ）があるため、多数配置しても誤識別しにくいという特性がある。しかし、識別情報の量と精度は撮像画像のみに依存しているため、量子化誤差、カメラノイズ、指標に落ちる影などで指標の識別情報の誤認識が起こり、結果として指標を誤識別する可能性があった。
【０００５】
この、識別情報の誤認識の可能性について、図３を用いて説明する。図３（ａ）は、指標３０１を正面から見た状態を示す図である。指標３０１は、正方形の外形を有する、平板状の形態を有している。そして、黒枠２０１ａの内部に識別情報として２次元バーコード部２０１ｂを配置した構成を有する。従って、指標３０１の画像から、２次元バーコード部２０１ｂを認識することにより識別情報を得ることができるという特徴を持つ。
【０００６】
この指標３０１が、図３（ｂ）のように、カメラの視軸と指標３０１の法線２０１ｃの方向とのなす角度が９０度に近い状態で撮像され、撮像画像から指標内部のバーコードの読み込みが行われたとする。この場合、２次元バーコード部２０１ｂは非常に歪んだ状態であるため、量子化誤差等の要因によりコードの認識に失敗する可能性がある。２次元バーコードの認識に失敗した場合は、指標が誤識別される。
【０００７】
また、図３（ｃ）のように、指標３０１の２次元バーコード部２０１ｂに影などの想定しない色情報３０２がノイズとして現れた場合にもコードの認識に失敗し、結果的に指標が誤識別される場合がある。
【０００８】
この誤識別によるカメラ位置姿勢計測結果への影響には２種類ある。一つは、従来定義されている指標として認識されないため、カメラの位置姿勢を求めるための情報としては使われず、計測精度が低下するという影響である。特に、指標が１つしか撮像されていない状況では、カメラの位置姿勢を求められない状況に陥る。
【０００９】
もう一つは、認識した識別情報が、別の場所に配置されている他の指標の識別情報と重複している場合である。この場合は、別の場所に配置されている指標だと誤認識（誤同定）されるため、カメラの位置姿勢を正しく求められない（誤った位置姿勢が得られる）状況に陥る。
【００１０】
非特許文献３および特許文献１では、このような誤識別を防ぐために、２次元バーコード内部に誤り判定用のコードを持ち、認識結果に誤りがある場合は指標として利用しないように対処している。
【００１１】
また、指標の識別情報の誤り検出だけではなく、ハミング符号のような誤り訂正符号を指標の２次元バーコードとして用いると、誤りを検出すると同時に１ビットであればコードの修正を行うこともできる。また、JIS X 0510 (1999)で規格化されているＱＲコードのように、誤り訂正機能をより強化したリードソロモン符号を用いて複数ビットの誤り訂正を画像情報のみから行うことも可能である。
【００１２】
【特許文献１】特開２０００−８２１０８号公報
【非特許文献１】加藤, Billinghurst, 浅野, 橘: マーカー追跡に基づく拡張現実感システムとそのキャリブレーション, 日本バーチャルリアリティ学会論文誌, vol.4, no.4, pp.607-616, Dec. 1999.
【非特許文献２】X. Zhang, S. Fronz, N. Navab: Visual marker detection and decoding in AR systems: A comparative study, Proc. of International Symposium on Mixed and Augmented Reality (ISMAR'02), pp.97-106, 2002.
【非特許文献３】暦本 純一, "２次元マトリックスコードを利用した拡張現実感システムの構成手法", インタラクティブシステムとソフトウェア IV, 近代科学社, 1996.
【非特許文献４】I. Skrypnyk, D. G. Lowe: Scene Modeling, Recognition and Tracking with Invariant Image Features, Proc. International Symposium on Mixed and Augmented Reality (ISMAR'04), pp. 110-119, 2004.
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ハミング符号のような、比較的簡単な誤り訂正機能を用いたコードを識別情報として持つ指標では、コード認識時に一定数以上の誤りがあると、誤りを検出・訂正できない場合がある。例えば、ハミング符号化された２次元コードを識別情報として持つ指標であれば、複数ビットの誤りが発生すると、誤りを正しく訂正することができない。この場合は、正しい識別情報が得られず、誤った識別情報で指標の同定が行われる。
【００１４】
また、ＱＲコードのような、誤り訂正機能を強化した符号化手法を採用した指標では、複数ビットの誤りが起こっても誤り訂正が可能である。しかし、ハミング符号のような比較的簡単な誤り訂正符号を用いた指標に比べて、
・誤り訂正の演算が複雑であるため、認識処理に時間がかかること、
・ビット数を多くしなければ高度な符号化ができないため、指標内に広い２次元バーコード領域を持つ必要があること、
などの課題がある。
【００１５】
これらの課題は、非特許文献３および特許文献１に記載されるような、指標の特徴点を用いて、指標を基準とする座標系上のカメラの位置姿勢を求める手法においては、
・カメラ位置姿勢算出処理の実時間性を損なう、
・カメラ位置姿勢を求める指標として要求される指標全体のサイズを小さくすることができない、
という制限をもたらす。
【００１６】
カメラ位置姿勢を求めるときに指標の最小サイズが小さいほど、配置の柔軟性が高いため多く配置できる。さらに、サイズの大きい指標に比べて複数の指標を同時に撮像しやすくなり、カメラ位置姿勢計測精度の向上が期待できる。これらの理由により、小さい指標を用いることが好ましく、ＱＲコードのような、指標内部のコード量を増やすことで誤り訂正機能を強化する符号を識別情報として持つ指標は、カメラ位置姿勢を求めるための指標としては適していない。
【００１７】
本発明は、このような従来技術の課題に鑑みてなされたものであり、撮像画像から検出された指標を精度良く識別可能な指標識別方法及び指標識別装置を提供することを主な目的とする。
【課題を解決するための手段】
【００１８】
上述の目的は、現実空間を撮像した撮像画像を取得する画像取得工程と、撮像画像から１つ以上の指標を検出する指標検出工程と、検出した指標から、当指標を識別するための指標識別情報を認識する認識工程と、指標識別情報の認識結果を検証するための検証情報であって、撮像画像に基づかない検証情報を取得する検証情報取得工程と、検証情報に基づいて、認識結果を検証又は修正する検証工程とを備えることを特徴とする指標識別方法によって達成される。
【００１９】
また、上述の目的は、現実空間を撮像した撮像画像を取得する画像取得手段と、撮像画像から１つ以上の指標を検出する指標検出手段と、検出した指標から、当指標を識別するための指標識別情報を認識する認識手段と、指標識別情報の認識結果を検証するための検証情報であって、撮像画像に基づかない検証情報を取得する検証情報取得手段と、検証情報に基づいて、認識結果を検証又は修正する検証手段とを備えることを特徴とする指標識別装置によっても達成される。
【発明の効果】
【００２０】
このような構成により、本発明によれば、従来では誤識別が発生する状況においても正しく指標を識別することができる可能性が向上し、精度良い指標の識別が可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
＜第１の実施形態＞
図１は、本実施形態に係る指標識別装置の構成例を示すブロック図である。
まず、本実施形態の指標識別装置が識別する指標は、現実空間にあらかじめ配置された、識別情報を持つ指標である。ここでは、好適な指標の例として、図２及び図３に示すような、正方形の外形を有し、配置される場所（背景）とは異なる色の枠２０１ａと、枠２０１ａ内部の２次元バーコード部２０１ｂを備える指標３０１を用いるものとする。２次元バーコード部２０１ｂは、図２に示すように、４×４の１６領域（ビット割り当て領域）で構成される。
【００２２】
図４は、このような指標を、撮像する現実空間中の床と壁に、それぞれ、指標３０１Ａ（識別コード0）、３０１Ｂ（識別コード10）として配置した状態を示している。
なお、図２に示す２次元バーコード部２０１ｂのビット割り当て領域のうち、０番、３番、１２番、１５番は、指標の法線を軸とする回転（指標の向き）を識別するためのコードとして利用するものとする。そして、これらビットは、常に白、白、背景との区別色、白、の順番で色が設定されているものとする（この４ビットを、以下、方向性付与形状とも呼ぶ）。他のビット割り当て領域はハミング符号化され、残り１２ビットのうち４ビットをチェックビットとして使用する。すなわち、指標の識別コードとして使用できるビット数は、チェックビット（４ビット）と指標の向きを示すビット（４ビット）を除く８ビットとなり、２５６種の識別コードが生成できる。
【００２３】
カメラ１０１は、現実空間を撮像できるカメラであり、例えばCCDやCMOSセンサを撮像素子として有するビデオカメラである。
指標検出部１０２は、カメラ１０１の撮像画像をキャプチャし、色や形状など、予め定められた指標に関する情報に基づき、指標と思われる領域（以下、検出指標とも言う）を画像から検出する。
【００２４】
識別コード認識部１０３は、検出指標内部の４×４の２次元バーコード部（以降コード部と呼ぶ）２０１ｂを認識する。まず、コード部２０１ｂの方向性付与形状を検出して指標の画像面における方向を算出し、さらに、コード部２０１ｂの残りの領域から、ハミング符号でコード化された識別コードを認識する。
【００２５】
まず、指標検出部１０２で検出された検出指標から、識別情報ビットとチェックビットを認識する。次に、識別情報ビットと、各頂点の座標等の検出情報を求め、さらに、チェックビットを用いて、識別情報ビットの誤り検出処理と、必要なら１ビット訂正処理を行う。さらに、検出された夫々の指標は、指標候補リストに登録される。
【００２６】
信頼度算出部１０４は、検出された指標毎に以下の信頼度を求める。まず、識別コード認識部１０３から指標の検出情報を入力し、１ビットの誤りが検出され、訂正された場合は信頼度を０．５に、訂正されなかった場合は信頼度を１に設定する。また、「画像上における指標の外形を表す四角形が内包する画素数Ｓｅ」と「撮像画像全体の画素数Ｓｐ」の商Ｓｅ／Ｓｐの値を信頼度に積算した結果を信頼度としてもよい。また、「画像上における指標の外形を表す四角形の４辺のうち最短となる辺の画素数Ｌｅ」と「撮像画像の短辺の画素数Ｌｐ」の商Ｌｅ／Ｌｐの計算結果を、さらに積算した結果を信頼度としてもよい。
【００２７】
すなわち、
（１）誤り訂正の有無に応じて決定される信頼度（０．５又は１）
（２）（１）の値に、Ｓｅ／Ｓｐを乗じた値
（３）（２）の値に、Ｌｅ／Ｌｐを乗じた値
のいずれかを信頼度として使用することができる。
【００２８】
なお、信頼度はこれら３種（誤り訂正の有無に応じた信頼度、Ｓｅ／Ｓｐ、Ｌｅ／Ｌｐ）の他の組み合わせであってもよいし、他の値であっても良い。すなわち、撮像画像から指標の識別情報が正しく検出できる度合いを表すことが可能な任意の値を信頼度として利用できる。
【００２９】
カメラ姿勢センサ１０７は、カメラ１０１に固定された姿勢計測センサであり、本実施形態においては、例えば米国InterSense社のInertiaCube2などのジャイロセンサを用いる。
カメラ姿勢計測部１０８は、カメラ姿勢センサ１０７の計測値を受け、指標姿勢計算部１０９に出力する。
【００３０】
指標姿勢計算部１０９は、指標情報保持部１０５内に保存されている指標の姿勢のうち、識別コード認識部１０３から与えられる、検出された指標の識別コードに対応する指標（指標Ａとする）の姿勢Rwmを取得する。そして、カメラ姿勢計測部１０８の計測値Rwcを用い、カメラの視点位置を原点とし、撮像面をｘｙ座標、視軸をｚ軸負へのベクトルとおいた３次元座標系（カメラ座標系と呼ぶ）における、指標Ａの姿勢Rcmを求める。なお、本実施形態においては、指標情報保持部１０５に記録されている指標の配置姿勢Rwm及びカメラ姿勢計測部１０８から得られる姿勢Rwcは３×３の行列で表現されているものとする。カメラ座標系における指標の姿勢Rcmは以下の式（１）により求める。
Rcm = Rwc-1・Rwm      （１）
ここで、Rwc-1はRwcの逆行列である。
【００３１】
指標姿勢推定部１１０は、指標検出部１０２と識別コード認識部１０３で得られた指標の頂点の画像座標と方向とを用いて、カメラ座標系における指標の姿勢Rcm'を求める。この具体的な方法の例については後述する。
【００３２】
本実施形態における指標識別部１０６は、信頼度算出部１０４の信頼度を基にして、指標姿勢計算部１０９で得た指標の姿勢Rcmと指標姿勢推定部１１０で得た指標の姿勢Rcm'とを比較した結果により、指標の識別を行う。
【００３３】
指標情報保持部１０５には、現実空間に配置されている指標の各々について、指標の同定及び方向の認識を行うために必要な情報をあらかじめ記憶しておく。具体的には、配置位置（例えば中心点の３次元座標）、頂点の３次元座標、正方形１辺の大きさ、識別コード番号、配置姿勢Rwm。また、指標の方向を特定するための情報（例えば方向性付与形状に最も近い正方形頂点の座標や頂点IDなど）、方向性付与形状に関する情報（形状や色に関する情報など）などである。なお、指標の位置や座標、姿勢は、基準とする３次元座標系（基準座標系と呼ぶ）における値が記憶される。
【００３４】
また、指標の同定が行われた後の、夫々の指標の頂点の３次元座標と、画像中の２次元座標との対応リストを保持し、必要に応じて外部に出力する。なお、ここで挙げた登録項目は単なる例示であり、使用する指標や指標の識別方法に応じて、これ以外の情報を登録することもあれば、より少ない項目で済む場合もある。
【００３５】
指標識別部１０６は、信頼度算出部１０４で算出される信頼度に基づいて、識別コード認識部１０３が認識した検出指標の識別コードをそのまま用いるか、指標情報保持部１０５の情報を利用して識別コードを検証するか、のどちらかを選択する。検証を選択した場合には検証処理を実行し、検証の結果、誤った識別コードを有すると判定した検出指標を、誤識別指標として削除する。
【００３６】
図６Ａは、本実施形態における指標識別装置の処理の詳細を示すフローチャートである。
ステップＳ６０１では、カメラ姿勢センサ１０７で得た計測値をカメラ姿勢計測部１０８に入力し、さらに、カメラ姿勢計測部１０８がカメラ１０１の基準座標系における姿勢Rwcを指標姿勢計算部１０９へ入力する。なお、ステップＳ６０１で得られたカメラ姿勢Rwcは、最終的なカメラ位置姿勢を推定するための情報に用いるなど、指標の識別処理以外の用途で使用してもよい。
【００３７】
ステップＳ６０２では、カメラ１０１により現実空間を撮像する。
ステップＳ６０３では、指標検出部１０２が、得られた撮像画像から指標を検出するための一工程として、外周正方形を検出し、頂点と中心点の座標を算出する。これは、どのような方法を用いても構わないが、例えば以下のような方法がある。
【００３８】
まず、指標の明度を背景と異なるものとしておき、明度による二値化を行った後にラベリング処理にて連続領域を求める。図４のカメラ１０１と指標３０１Ａ、３０１Ｂの配置で撮像された画像を二値化した結果を示す模式図を図５に示す。その連続領域のラベル外周を折れ線近似することにより外周の四角形を検出する。このようにして得られた四角形の頂点の画像座標を求め、さらに対角線の交点を求めることにより中心点の画像座標を求める。
例えば、図５に示す二値化画像に対しては、指標３０１Ａの指標外形ＡＢＣＤと指標３０１Ｂの指標外形ＥＦＧＨの四角形頂点と中心点ＯA、ＯBが検出される。
【００３９】
ステップＳ６０４では、識別コード認識部１０３が、まず、ステップＳ６０３で得た指標の候補となる検出指標の夫々について、四角形領域の中心点と４頂点を取得し、各指標の内部のコード部２０１を読み出す。さらに、識別コード認識部１０３が、ステップＳ６０４で読み出した指標のコード部のうち、頂点に最も近い４つのビット割り当て領域を参照する。そして、３つが白で１つが黒である場合、黒の位置をビット割り当て領域の１２番とみなし、そのビット領域に最も近い頂点を図２に示す指標の左下の頂点とみなす。
【００４０】
また、頂点に近い４つのビット割り当て領域を参照し、白３個、黒１個とならない場合は指標以外のものが検出されたと判断して、当該検出指標を指標候補リストには登録しない。さらに、当該検出指標の方向が決定されたため、頂点に近い４つの領域を除く残りの１２ビットからチェックビット４ビットと識別コード８ビットを決定する。さらに識別コード認識部１０３が、チェックビットを用いて、識別コードの検査を行う。このとき、ビット誤りがない場合は指標候補リストに登録する。また、１ビットの誤りが検出された場合は、識別コード認識部１０３が、ハミング符号の性質に基づき、該当するビットの訂正を行って識別コードを決定してから指標候補リストに登録する。この処理をすべての検出指標に対して行い、指標候補リストを出力する。
【００４１】
ステップＳ６０５では、指標姿勢計算部１０９が、指標候補リスト中の夫々の検出指標に対して、ステップＳ６０４で求めた識別コードに基づいて、式（１）を用いてRcmを算出し、指標候補リスト中の各要素（検出指標）に対応付けて算出値を保持させる。
【００４２】
ステップＳ６０６では、信頼度算出部１０４が、指標候補リスト中の夫々の検出指標に対して、識別コード認識部１０３で得られた識別コードの誤り検出結果を入力する。そして、１ビットの誤りが検出された場合は信頼度を０．５に、誤りが検出されなかった場合は信頼度を１に設定する。
【００４３】
さらに、
・誤り検出結果から得た信頼度
指標検出部１０２から画像入力して求めた
・「画像上における指標の外形を表す四角形が内包する画素数Ｓｅ」と「撮像画像全体の画素数Ｓｐ」の商Ｓｅ／Ｓｐの値
・「指標の４辺のうち最短となる辺の長さＬｅ」と「撮像画像の短辺の画素数Ｌｐ」の商Ｌｅ／Ｌｐの値
３つの値の積として最終的な信頼度（上述の信頼度（３））を算出し、得られた信頼度の値を指標候補リスト中の各要素に対応付けて保持する。
【００４４】
ステップＳ６０７では、指標姿勢推定部１１０が、
・指標検出部１０２で得た、指標候補リスト中の夫々の検出指標の画像上における頂点の２次元座標値
・ステップＳ６０４で得た指標の頂点の対応情報
から、検出指標のカメラ座標系における姿勢の行列Rcm'を求め、指標候補リスト中の各要素に値を対応付けて保持させる。
【００４５】
撮像された平面上の４点の２次元座標値から、カメラ座標系における姿勢を求める方法は、どのような方法を用いても構わないが、例えば、本実施形態では非特許文献１の方法を用いる。すなわち、まず、画像上の４頂点ＡＢＣＤから、ＡＢを通る直線と、ＤＣを通る直線、すなわち向かい合う平行２辺の直線の方程式を求める。そして、これらの２つの直線とカメラの透視投影変換行列（予め求めておく）とを用いて、２つの直線を含む２平面の式（カメラ座標系）を得る。この２平面の法線ベクトルＮAB、ＮDCの外積（ＮAB×ＮDC）が、平行２辺ＡＢ，ＤＣのカメラ座標系における方向ベクトルU1とする。
【００４６】
もう一組の向かい合う平行２辺ＢＣとＤＡにおいても同様の処理を行い、２平面の法線ベクトルの外積（ＮBC×ＮDA）を、平行２辺ＤＢ，ＤＡのカメラ座標系における方向ベクトルU2とする。
【００４７】
これにより指標の隣り合う２辺の方向ベクトルU1,U2が求められるので、この２つの方向ベクトルの外積方向をV3とする。このV3を垂直軸とし、U1,U2を含む平面内で、なす角度が直角になり、かつ、U1からV1,U2からV2への夫々の変更角度が等しくなるようなベクトルV1,V2を決定する。このとき、[V1tV2tV3t]がカメラ座標系における指標の姿勢Rcm'となる。
【００４８】
ステップＳ６０８では、指標識別部１０６が、指標候補リスト中の夫々の検出指標に対して、ステップＳ６０５で得たRcmと、ステップＳ６０６で得た当該検出指標の信頼度と、ステップＳ６０７で得たRcm'とを用いて識別コードの検証を行う。これは、指標の識別又は同定に相当する。ここで、不適合と判断された検出指標は、指標候補リストから削除する。
【００４９】
ステップＳ６０９では、以上の処理の結果得られた指標候補リスト中の夫々の検出指標の情報を、指標情報保持部１０５の対応リストに記録する。また、必要に応じてI／F（不図示）を介して外部に出力する。ここで、指標検出の情報は、識別コード、ステップＳ６０４で得た指標の各頂点２次元画像座標値、指標情報保持部１０５内の各頂点の３次元座標値である。
【００５０】
次に、指標識別部１０６における識別処理であるステップＳ６０８の詳細について、図６Ｂに示すフローチャートを用いて説明する。
本実施形態に係る指標識別部１０６では、画像情報に基づいて同定された指標が本当にその指標であるかどうか（識別コードの読出し誤りが生じていないかどうか）を、カメラと指標との間の相対的な姿勢の関係に基づいて検証する。さらに、本来同定されるべき指標（図４の場合であれば指標３０１Ｂ）が、指標の識別に用いるカメラ姿勢センサ１０７の出力誤差により同定されなくなることを防ぐために、信頼度に応じて処理の分岐を行う。
【００５１】
InertiaCube2等の姿勢センサは、時間の経過に伴って蓄積されるドリフト誤差を有しているため、出力される姿勢計測値は、真の姿勢とは異なった、誤差を有する姿勢となる場合がある。そのため、信頼度に係わらず、姿勢センサの測定値に基づく姿勢のチェックを行った場合には、姿勢センサの誤差の影響により本来同定されるべき検出指標が同定されなくなる虞がある。
【００５２】
この点に関し、本実施形態に係る指標識別方法では、信頼度が高い指標については指標の姿勢を比較せず、撮像画像から検出、識別したコード（識別コード）を信頼することで、姿勢センサの誤差の影響を受けることなく正しく指標を識別することができる。この、信頼度に基づいて識別情報の検証の実施の有無を決定することで、指標の識別を正しく行う工程が、以下に述べるステップにより実施される。
【００５３】
ステップＳ６１０では、指標識別部１０６が、注目する検出指標の信頼度を参照し、指標の信頼度に応じて当該検出指標に行う処理を決定する。指標の信頼度が予め定めた閾値よりも低い場合は、識別コードが誤っている可能性が高いと判断してステップＳ６１１に処理を移す。指標の信頼度が閾値より高い場合は、識別コードが十分に信頼できるものであると判断して処理を終了する。
【００５４】
ステップＳ６１１では、指標識別部１０６が、ステップＳ６０７で得たカメラ座標系における指標の姿勢Rcm'とステップＳ６０５で得た指標の姿勢Rcmの類似性を調べる。ここで類似性が高い場合は、ステップＳ６０４で認識した指標の識別コードが正しいと判断し、処理を終了する。
【００５５】
一方、類似性が低い場合は、ステップＳ６１２において、ステップＳ６０４で認識した指標の識別コードが間違っていると判断し、注目検出指標を指標候補リストから削除する。
以上の処理を、指標候補リスト中の夫々の検出指標に対して実行する。
【００５６】
なお、ステップＳ６１１で行う姿勢の類似の判定方法に特に制限はない。例えば、RcmからRcm'への変換を行う回転行列を求めて、さらに回転軸と回転角に変換し、その回転角の大きさの差が閾値以下であれば類似度が高いと判定することができる。また、RcmとRcm'の夫々をクオータニオン表現に変換し、４次元球面上における点間の球面上での距離が閾値以下であれば類似性が高いと判定してもよい。或いは、RcmとRcm'の夫々を特異値分解して得られた夫々の特異値ベクトルの距離が閾値以下であれば類似性が高いと判定しても良いし、Rcm・Rcm'-1が単位行列に近いかどうかを評価してもよい。
【００５７】
本実施形態では、ステップＳ６０７、ステップＳ６０５で、各々でカメラ座標系における指標の姿勢Rcm、Rcm'を求め、ステップＳ６１１で両者を比較した。しかし、指標情報保持部１０５内で定義された指標の姿勢と、検出した姿勢を比較できる方法であれば、カメラ座標系における指標の姿勢を用いなくてもよい。
【００５８】
例えば、指標を基準とする指標座標系（例えば、図３（ａ）の頂点Ｊを原点とし、ベクトルＪＫをＸ軸、法線方向をＹ軸、ベクトルＪＭをＺ軸とする直交座標系）を定義する。そして、指標座標系におけるカメラの姿勢RmcをステップＳ６０５、ステップＳ６０７で求め、両者を比較してもよい。この場合、ステップＳ６０５ではRcm-1の計算によって目的の姿勢Rmcを求める。ここで、Rcm-1はカメラ座標系におけるマーカ姿勢Rcmの逆行列を示している。また、ステップＳ６０７では、Rcm'の逆行列Rcm'-1を求める。
【００５９】
また、基準座標系におけるカメラ姿勢Rwcを比較の基準としてもよい。この場合は、ステップＳ６０５で、センサ計測値により求めたカメラ姿勢を用いる。また、ステップＳ６０７では、Rwc'=Rwm・Rcm'-1として算出する。ここでRwmは、指標情報保持部１０５に記録されている指標の姿勢である。
【００６０】
なお、ステップＳ６１１と同様な処理を信頼度の高い検出指標に対しても実行して、姿勢が一致しない場合は、カメラ姿勢センサ１０７に誤差があると判断し、利用者に警告を出すような構成としてもよい。
【００６１】
以上のように、本実施形態によれば、２次元画像処理以外の手段として、指標情報保持部１０５内の指標の姿勢情報と、カメラ姿勢センサ１０７から得られるカメラ１０１の姿勢情報とを用い、指標の識別情報を検証する。従って、撮像画像から得られる情報のみに依存して識別した場合に起こりうる誤識別を回避することができる。また、撮像画像から得られた情報の信頼度を、撮像画像中で検出された指標特徴点の長さと、画像上における検出指標内部の画素数と、ハミング符号によって符号化されたコード部のチェックビットとを複合的に用いて算出する。これにより、信頼度の、判断材料としての信頼性を高めている。さらに、信頼度に応じて識別コードの検証処理の実施を判断することで、識別に利用するカメラ姿勢計測値に誤差が生じていたとしても、正しく検出されている指標が誤識別として削除されてしまうことを回避できるようになる。
【００６２】
＜第２の実施形態]＞
第１の実施形態においては、ハミング符号で符号化された識別コードをコード部に持つ指標を用いて、識別情報の検証又は修正を行っていた。しかし、識別コードは、ハミング符号で符号化されることが必須ではなく、他の方法で符号化されていても良い。要するに、複数の指標を識別するための情報を有する指標であれば特に制限無く適用可能である。
【００６３】
例えば、コード部をグレイコードで符号化された１次元バーコードにより構成した指標を用いてもよい。本実施形態では、このグレイコードで符号化された指標と、あらかじめ空間中に配置した指標の識別情報を記録したデータを用いることで、指標の誤識別を防ぐ方法について述べる。
【００６４】
図７は、本実施形態に係る指標識別装置の構成例を示すブロック図であり、第１の実施形態と類似の構成には同じ参照数字を付してある。
本実施形態においては、識別コードを画像情報から識別可能な指標を用いることを特徴とするが、上述のように、好適な指標の例として、図１０に示すような、グレイコードを識別コードとして持つ正方形形状の指標を用いる。
【００６５】
具体的には、図１０（ｂ）に示すような、
・背景と明度の大きく異なる色の正方形形状８０１（指標外形と呼ぶ）の領域内部に、コード部を構成する、４ビットのグレイコードを配置するための４つのビット割り当て領域０〜３（８０３）を持ち、
・指標の空間中における方向を示す正方形８０２（方向性付与形状と呼ぶ）が、指標外形の一頂点近傍に、かつ指標外形とは別個に認識できるように配置された、
指標を利用する。
【００６６】
この指標は、指標外形８０１の正方形の頂点と、内部の４ビットの識別コードと、上下左右の方向を一意に定める方向性付与形状８０２とから構成される。なお、本実施形態において、方向性付与形状８０２は、指標外形８０１の正方形の一辺の１／６の長さを一辺の長さとする正方形とする。指標外形８０１と方向性付与形状８０２との位置関係を指標の配置位置と共に指標情報保持部１０５に登録しておくことによって、画像上における指標の座標情報から指標の識別コードの読み出しを可能にする。さらに、検出した指標の識別コードを用いることで、現実空間に複数個配置した指標の中から、撮像画像中の検出指標を同定（識別）することを可能とする。
【００６７】
なお、空間中には、０〜１５の１６種の識別コードのうち、夫々の差分が２以上となる識別コードを選択して配置する必要がある。例えば、０番の識別コードを配置するのならば、１番と２番を使用せず、３番以降を選択し、０、３、６、９、１２、１５のように各識別コード間に２つ以上の差を設ける必要がある。この制限により、空間中に配置できる指標は最大６種類となる。
【００６８】
また、本実施形態における指標の内部に配置されるグレイコードとは、図１０（ｃ）のグレイコード表に示すようなコードパターンを持つ識別のためのコードである。このグレイコードは、隣接するコード間のハミング距離が１になるため、識別コード認識時に空間的に隣接するコードを画像上で読み間違えても正しいコードと間違えたコードの差分が１になる可能性が高いという特徴を持つ。すなわち、コードを修正する場合に、正しい識別コードとして隣接するコードを選択することで修正ができる可能性が高い。コード修正処理の詳細については後述する。
【００６９】
図１０（ｃ）のコード表は、各列（０〜３）が各コードのビットパターン（０（黒）／１（白））を示しており、各行（０〜１５）が１６種類のコードを表している。列０〜３は、図１０（ｂ）のビット割り当て領域０〜３に対応しており、図１０（ａ）のグレイコードマーカの例のコードは白、黒、白、黒（画素値１，０，１，０）であるため識別コード「６」を示している。
【００７０】
カメラ１０１は第１の実施形態と同等の機能を果たすカメラである。
指標検出部１０２は、第１の実施形態と同等の機能を持ち、撮像画像から指標の候補領域を抽出する。
本実施形態における識別コード認識部１０３は、検出指標周辺にある方向性付与形状を検出して指標の方向性を算出し、さらに、指標の内部にあるグレイコードでコード化された識別コードを認識する。詳細な認識処理手順については後述する。
【００７１】
信頼度算出部１０４は、識別コードの認識結果の信頼度を算出する。この信頼度により、識別コードを修正する処理を行うかどうかを決定する。本実施形態においては、撮像画像上で検出指標の４辺のうち一番短い辺の長さＬｅと、撮像画像の短辺の画素数Ｌｐ（解像度640画素×480画素の撮像画像であれば480）との比を計算することで信頼度を決定する。信頼度の算出処理の詳細は後述する。
指標情報保持部１０５は、第１の実施形態と同等の機能を持ち、指標の配置情報等を必要に応じて情報を入出力する。
【００７２】
指標識別部１０６は、信頼度算出部１０４で算出される信頼度に基づいて、検出指標の識別コードをそのまま用いるか、指標情報保持部１０５の情報を利用して識別コードを修正して用いるか、のどちらかを選択する。修正を選択した場合には修正処理を実行し修正後の識別コードを得る。最後に決定された識別コードによって、検出指標を同定する。本実施形態においては、信頼度算出部１０４で算出される信頼度が所定の閾値よりも低い場合は、指標情報保持部１０５から入力された識別コード番号と、検出指標で得られた識別コード番号を比較して、差分が最小となる識別コードを選択する。信頼度に基づく処理の選択、指標の同定処理の詳細については後述する。
なお、識別コード認識部１０３、信頼度算出部１０４、指標識別部１０６を合わせて識別モジュール７０７と呼ぶ。
【００７３】
図８は、本実施形態の指標識別装置を適用して指標識別する現実空間の様子を模式的に示す図である。図８において、２つの指標８０１Ａ、８０１Ｂは図のように現実空間の床と壁にそれぞれ配置されており、その指標の大きさや配置（基準とする座標系における位置姿勢）などの情報を指標情報保持部１０５に記録しておく。カメラ１０１は自由に移動可能であり、図８では、カメラ１０１が指標８０１Ｂに対して正対する位置に近い場所にあり、指標８０１Ａの法線９０１Ａとカメラ１０１の視軸１０１Ａが９０度に近い角度をなしていることを示している。
【００７４】
次に、上記構成を備える指標識別装置が行う処理について、図１１、図１２に示したフローチャートを参照して説明する。
ステップＳ１１０１では、カメラ１０１により現実空間を撮像する。
【００７５】
ステップＳ１１０２では、第１の実施形態におけるステップＳ６０３と同様に、指標検出部１０２が、得られた撮像画像から指標を検出するための一工程として、二値化画像を生成して外周正方形を検出し、頂点と中心点の座標を算出する。
【００７６】
例えば、図９に示す二値化画像に対しては、指標８０１Ａの指標外形ＡＢＣＤ、指標８０１Ａの方向性付与形状８０２Ａ、指標８０１Ｂの指標外形ＥＦＧＨ、指標８０１Ｂの方向性付与形状８０２Ｂ、の四角形の頂点と中心点が検出される。
【００７７】
ステップＳ１１０３では、指標検出部１０２が、指標検出の次の工程として、ステップＳ１１０２で得られた四角形の各頂点の周辺に、方向性付与形状が存在するかどうかを確認し、指標の方向を決定して、指標候補として指標候補リストに登録する。例えば、各四角形の中心点の距離、同一直線上にある２辺の長さ比率、四角形内の画素数比率などにより、指標外形と方向性付与形状とを対応づけてもよい。
【００７８】
このようにして、指標外形と方向性付与形状とが対応づけられた「正方形指標の頂点の画像座標値」、「正方形指標の中心点の画像座標値」、「方向性付与形状との距離が最短の頂点位置の情報」を１組として指標候補リストに登録する。例えば、図９の二値画像にからは、「指標８０１Ａの頂点ＡＢＣＤの画像座標値、指標８０１Ａの中心点の画像座標値、頂点Ｄ」及び、「指標８０１Ｂの頂点ＥＦＧＨの画像座標値、指標８０１Ｂの中心点の画像座標値、頂点Ｅ」が指標候補リストに登録される。
【００７９】
ステップＳ１１０４では、ステップＳ１１０３で得られた指標候補リスト内の夫々の指標候補が、検出された順番に識別モジュール７０７に個別に出力される。
ステップＳ１１０５では、識別モジュール７０７において、撮像画像から検出された指標候補に対して指標のコードパターン認識及び識別処理が行われる。コードパターンの認識、識別処理の詳細については後述する。
【００８０】
ステップＳ１１０６では、指標候補リスト内に識別処理未完了の指標候補がある場合は、処理がステップＳ１１０４に移される。指標候補すべての識別処理が完了した場合は処理をステップＳ１１０７に移す。
ステップＳ１１０７では、指標情報保持部１０５に記録した識別情報を指標識別部１０６から出力して処理を終了する。
【００８１】
図１２は、本実施形態における識別モジュール７０７が行う認識・識別処理（図１１のフローチャートのステップＳ１１０５）の詳細を示すフローチャートである。
ステップＳ１２０１において、識別コード認識部１０３により、指標検出部１０２から入力された検出指標のコード部から、識別コードを読み出す（認識する）。
【００８２】
図１３は、識別コード認識部１０３のコード認識の処理を説明する模式図である。まず、当該指標候補の４頂点のうち、方向性付与形状８０２に一番近い頂点をＳとし、他の頂点を時計回りにＴＵＶと割り当てる。さらに、ＳＶ及びＴＵの中点を求め、Ｐ、Ｑとする。そして、直線ＰＱを３：９に分割する点１３０１における画素値（０又は１）を読み出し、図１０（ｂ）のビット割り当て領域０のビット値とする。同様に、直線ＰＱを５：７に分割する点１３０２、７：５に分割する点１３０３、９：３に分割する点１３０４における画素値を、それぞれ図１０（ｂ）のビット割り当て領域の１番、２番、３番の値とする。このようにして割り当てたビット列を、図１０（ｃ）のグレイコード表に当てはめることで識別コードを認識する。
【００８３】
ステップＳ１２０３において、指標識別部１０６が、指標情報保持部１０５内に保存されている複数の識別コードの中に、ステップＳ１２０１で得た識別コードと同一のものがあるかを判定する。同一の識別コードがある場合は、ステップＳ１２０１で得た識別コードの誤認識はないと判断する。そして、当該指標の画像上における頂点座標を、指標情報保持部１０５内の識別コードが一致する指標頂点の３次元座標値に対応づけて指標情報保持部１０５の対応リストに記録する。また、指標情報保持部１０５内に保存されている識別コードの中にステップＳ１２０１で得た識別コードと一致するものがない場合は、ステップＳ１２０４に処理を移す。
【００８４】
ステップＳ１２０４において、信頼度算出部１０４が、画像上における正方形指標（なお、画像中には正方形ではなく四角形として写る）の４辺の画像上での長さを検出する。さらに、１つの指標において最短の辺の長さを求めて、最短の辺の長さＬｅ（画素数）と撮像画像の短辺の画素数Ｌｐ（解像度640×480画素の撮像画像であれば480）の商Ｌｅ／Ｌｐを得て、これを当該指標候補の信頼度とする。
【００８５】
さらに、信頼度が閾値以上であるかどうかを判定し、閾値以上の場合は、識別コードが十分に信頼できるものであると判断する。そして、当該指標の画像上における頂点座標を、指標情報保持部１０５内の識別コードが一致する指標頂点の３次元座標値に対応づけて指標情報保持部１０５の対応リストに記録する。また、信頼度が閾値を越えない場合は、識別コードの認識を間違えている可能性が高いと判断して、ステップＳ１２０５に処理を移す。
【００８６】
ステップＳ１２０５において、指標識別部１０６が、ステップＳ１２０１で得た識別コードと指標情報保持部１０５内に保存されている複数の識別コードの夫々との差を求め、差の絶対値（差分と呼ぶ）が１のコードがあるかどうかを判別する。コードの差分を調査する理由は、量子化誤差等によりコードが誤認識されても、上述のように、グレイコードであれば正しい識別コードとの差が１である可能性が高いという特徴を活かした修正を行うためである。つまり、ステップＳ１２０１で得た識別コードとの差分が１の（隣接する）識別コードが指標情報保持部１０５内にあれば、それが正しい識別コードである可能性が高い。
【００８７】
そのため、差分が１の隣接する識別コードが指標情報保持部１０５に存在する場合は、ステップＳ１２０６で、注目指標候補の識別コードを、ステップＳ１２０５で隣接すると判定された、指標情報保持部１０５内に保存されている識別コードの値に修正する。さらに、注目指標候補の画像上における頂点座標を、指標情報保持部１０５内の識別コードが一致する指標頂点の３次元座標値に対応づけて指標情報保持部１０５の対応リストに記録する。また、ステップＳ１２０５で、差分が１の識別コードが存在しない場合には、識別コードの検証及び修正ができないと判断し、ステップＳ１２０７に処理を移す。
ステップＳ１２０７おいて、指標識別部１０６が、指標候補リストから注目指標候補を削除し、処理を終了する。
【００８８】
このステップＳ１２０１乃至ステップＳ１２０７までの処理を、図９の二値画像を用いてさらに具体的に説明する。識別モジュール７０７には、指標候補リストに格納されている指標８０１Ａ及び指標８０１Ｂの投影像の検出情報が個別に入力される。
【００８９】
指標８０１Ｂの場合は、ステップＳ１２０１により、図１３で示す１３０１、１３０２、１３０３、１３０４における画素値として１１１１が読み出され、識別コード「０」の指標として正しく識別されているものとする。次に、ステップＳ１２０３において、ステップＳ１２０１で得た識別コード「０」に対応する指標が、指標情報保持部１０５内にあることを確認する。そして、識別コード「０」の検出指標の情報と、指標情報保持部１０５内の識別コード「０」の指標情報とが対応リストに登録される。すなわち、図９の画像中で検出されている指標候補である指標８０１Ｂの投影像が、識別コード「０」を有する指標８０１Ｂの投影像であるということが同定される。
【００９０】
指標８０１Ａの場合も指標８０１Ｂと同様に、ステップＳ１２０１によりコードの読み出しが行なわれる。しかし、指標８０１Ａは、指標の法線とカメラの視軸が90度に近い状態にある。そのため、発明が解決しようとする課題で述べたように、本来、図１３で示す１３０１〜１３０４における画素値として１０１０（識別コード「６」）が認識されるべきところ、量子化誤差により１０００（識別コード「５」）と誤認識される。
【００９１】
従来は、この時点で識別コード「５」の指標として識別される。しかし、指標情報保持部１０５には識別コード「５」の指標情報がないため同定されない。従って、指標８０１Ａはカメラ位置姿勢を求めるための指標として取り扱われない。そのため、結果的にカメラ位置姿勢が求められない場合や、位置姿勢の推定精度が低くなる場合があった。
【００９２】
これに対し、本実施形態における指標識別部１０６では、ステップＳ１２０３以降の処理により、さらに信頼度算出部１０４に問い合わせて識別コードの認識の信頼性を確認し、さらに識別コードの修正を試みる。
【００９３】
ステップＳ１２０３では、指標識別部１０６が、画像から検出された識別コード「５」について、指標情報保持部１０５内に格納されているかどうかを判定する。指標情報保持部１０５内には、図８で示すように、あらかじめ空間に配置された指標８０１Ａ（識別コード「６」）及び指標８０１Ｂ（識別コード「０」）の情報が格納されている。そして、ステップＳ１２０１で得た識別コード「５」がないため、ステップＳ１２０４に処理を移す。
【００９４】
ステップＳ１２０４では、信頼度算出部１０４が、図９で示す指標８０１Ａの４辺ＡＢ、ＢＣ、ＣＤ、ＤＡの長さ（画素数）を検出する。そして、最短の長さである辺ＤＡの長さ（４０画素とする）を、撮像画像の短辺の画素数（４８０画素とする）で割った商０．０８を信頼度として保存する。次に、信頼度に応じて処理を決める。予め設定されている閾値が例えば０．１であるとすると、信頼度が閾値以下であると判定され、ステップＳ１２０５に処理を移す。閾値の具体的な値は、指標の種類などに応じて予め求めておくことができる。
【００９５】
ステップＳ１２０５では、指標識別部１０６が、指標情報保持部１０５内に、ステップＳ１２０１で得た識別コード「５」との差分が１の識別コードを持つ指標の存在の有無を判定する。ここでは、指標識別部１０６が、指標情報保持部１０５に識別コード「６」の指標情報が存在することを検出したものとすると、ステップＳ１２０６において、ステップＳ１２０１で得た識別コード「５」を識別コード「６」に修正する。さらに、修正後の識別コード「６」を用いて指標を対応づける。
【００９６】
ここで、識別コード「５」を有する指標Ｎが、指標８０１Ａ、８０１Ｂ以外に新たに配置されていて、識別コードの誤認識が生じ得ない程に撮像画像内で確実に撮像されている状況を考える。このとき、指標Ｎの識別コードが正しく「５」として認識されたとすると、ステップＳ１２０３において、指標情報処理部１０５が保持する指標の識別コードとの照合を行った結果、対応する指標がないと判定される。
【００９７】
もし、ステップＳ１２０４の信頼度による処理の振り分けがなく、全ての指標候補に修正処理（ステップＳ１２０５、ステップＳ１２０６）を実施してしまう処理であれば、識別コード「５」は正しく認識されているにもかかわらず「６」に修正されてしまう。つまり、誤識別が発生する。これに対し、本実施形態に係る指標識別処理では、信頼度が高い場合には修正を行わないという判断がなされるため、確実に撮像されている指標Ｎに対しては識別コードの修正処理を行わない。
【００９８】
なお、この処理で、指標Ｎの識別コード「５」が、指標情報処理部１０５の保持する指標８０１Ｂの識別コード「６」に隣接することを検知して、「指標Ｎの信頼度が低くなった場合に、誤識別が起こる可能性がある」ことを警告として出力してもよい。
つまり、信頼度が高い場合、でも、Ｓ１２０５の処理を行ない、差分が１以内の指標が存在した場合には、Ｓ１２０６で修正を行う代わりに、上述の警告を行うようにしても良い。
【００９９】
以上のように、本実施形態によれば、２次元画像処理以外の手段として、グレイコードの特性及び指標情報保持部１０５内の指標の情報を用い、誤認識された識別情報を修正することで誤識別を回避することができる。また、検出指標の最も短い辺の長さＬｅを用いて信頼度を算出し、信頼度が高いと判断された指標候補に対しては、識別情報をそのまま用いて指標を識別する。また、信頼度が低いと判断された指標候補に対しては、指標情報保持部１０５内の指標の情報とグレイコードの特性とを用いて指標の識別コードの修正を行って識別する。このように、信頼度に応じて、２次元画像処理以外の手段で識別コードの修正処理の実施を判断することにより、指標をより正しく識別することができる。
【０１００】
＜変形例１＞
上述の実施形態においては、カメラの姿勢をジャイロセンサで計測して、指標の識別情報を検証するための情報の一部として用いた。しかし、本発明においてジャイロセンサを用いることは必須でなく、誤識別を防ぐ任意の２次元画像処理以外の手段を適用可能である。
【０１０１】
例えば、ジャイロセンサの代りに磁気センサ等の６自由度センサをカメラに取り付けても良い。この場合、６自由度センサのカメラ計測値を用い、指標の空間中での配置情報を基にして指標をＣＧ等により撮像画像上に投影し、投影像と、実写像との位置や向きやサイズなど、見え方を比較することで指標の識別情報を検証してもよい。
【０１０２】
このように、２次元画像処理のみでは誤識別が発生してしまう場合において、２次元画像処理以外の手段で識別情報を検証することにより、誤識別を改善することができる。また、撮像画像から指標を検出したときの信頼性が高い指標は、指標の識別情報を検証せずにそのまま用いることで、磁気センサの誤差によって生じる誤識別をも改善できる。
【０１０３】
図１４は、本変形例に係る指標識別装置の構成例を示すブロック図である。図１４において、図１のブロック図と同様の構成には同じ参照数字を付した。
カメラ位置姿勢センサ１４０１は、カメラに取り付けられた６自由度センサであり、本変形例においてはPolhemus社製のFASTRAKを使用する。
【０１０４】
カメラ位置姿勢計測部１４０２は、カメラ位置姿勢センサ１４０１から得たカメラ位置姿勢を指標座標投影計算部１４０３に出力する。
指標座標投影計算部１４０３は、カメラ１０１の位置姿勢値と、指標情報保持部１０５に記録されている指標の３次元座標情報とから、カメラ１０１が撮像していると思われる指標の、カメラ１０１の画像面上での投影位置を計算する。以下、画像面（撮像面とも言う）上に投影した指標を投影指標という。
【０１０５】
本変形例における指標識別部１０６は、信頼度算出部１０４で得た信頼度に基づいて、画像から検出された指標の中心点の画像座標と指標の画像上での方向と、指標座標投影部１４０３で得た、投影指標の中心点と画像上での方向とを比較して指標の識別を行う。
その他のブロックについては、第１の実施形態と同等の機能を持つため、説明を省略する。
【０１０６】
図１５Ａは、本変形例における処理の詳細を示すフローチャートである。図６Ａに指名した第１の実施形態と同じ処理ステップに関しては同じ番号で示している。
ステップＳ１５０１では、カメラ位置姿勢センサ１４０１からカメラ位置姿勢計測部１４０２にカメラ位置姿勢が入力される。
【０１０７】
ステップＳ１５０２では、カメラ位置姿勢計測部１４０２が、カメラの位置姿勢計測結果からビューイング変換を４×４の変換行列の形で計算する。ビューイング変換とは、現実世界に固定され設定された座標系を基準座標系としたときの、カメラ座標系と基準座標系との間の座標変換のことであり、より具体的には世界座標系の座標値からカメラ座標系の座標値への変換である。すなわち、このビューイング変換を求めておくことによって、基準座標系上にある座標値からカメラ座標系の座標値への変換を容易に計算することが可能となる。
【０１０８】
ステップＳ６０２では、第１の実施形態と同様に、カメラ１０１により現実空間を撮像する。
ステップＳ６０３では、第１の実施形態と同様に、指標検出部１０２が、得られた撮像画像から指標を検出するための一工程として、外周正方形を検出し、頂点と中心点の座標を算出する。
【０１０９】
ステップＳ６０４では、第１の実施形態と同様に、識別コード認識部１０３が、指標内部の識別コードを認識し、さらに指標の方向を決定し、指標候補リストを作成して出力する。
ステップＳ６０６では、信頼度算出部１０４が、第１の実施形態と同様に、指標候補リスト中の夫々の検出指標に対して当該検出指標の信頼度を算出する。
【０１１０】
ステップＳ１５０３では、指標座標投影計算部１４０３が、指標候補リスト中の夫々の検出指標に対して、以下の処理を行う。まず、ステップＳ６０４で得られた識別コードを基に、指標情報保持部１０５に記録されている基準座標系における当該検出指標の中心点と頂点の位置（座標）を、ステップＳ１５０２で得られたビューイング変換を利用してカメラ座標系へと変換する。さらに、カメラ１０１の透視投影変換計算を行うことによって、それぞれの撮像面上での推定位置（投影座標）を計算する。ここで、当然個々の頂点はそれぞれ別々に区別して記録されているため、その個々の頂点を撮像面に投影して得られる投影座標においても、各々がどの頂点を投影したものであるのかも明らかである。なお、カメラ１０１の透視投影変換は、カメラ１０１のレンズ焦点距離や主点（投影中心）位置によって一意に定まるものであり、本変形例を実施する前に予め求められているものとする。
【０１１１】
ステップＳ１５０４では、指標識別部１０６が、指標候補リスト中の夫々検出指標に対して、ステップＳ６０６で得た当該検出指標の信頼度と、ステップＳ１５０３で得た指標の中心点と頂点の投影座標とを用いて識別コードの検証を行う。そして、不適合と判断された検出指標を指標候補リストから削除する。
【０１１２】
ステップＳ６０９では、以上の処理の結果得られた指標候補リスト中の夫々の検出指標の情報が、指標情報保持部１０５の対応リストに記録され、必要に応じてI／F（不図示）を介して外部に出力される。ここで、検出指標の情報は、識別コード、ステップＳ６０４で得た指標の各頂点２次元画像座標値、指標情報保持部１０５内の各頂点の３次元座標値である。
【０１１３】
次に、指標識別部１０６がステップＳ１５０４で行う識別処理の詳細について、図１５Ｂを用いて説明する。以下の処理は、指標候補リスト中の夫々の検出指標に対して実行される。図１５Ｂにおいても、図６Ｂで説明した第１の実施形態と同じ処理ステップには同じ参照数字を付した。
【０１１４】
ステップＳ６１０では、第１の実施形態と同様に、指標の信頼度に応じて当該検出指標の処理を決定する。指標の信頼度が閾値以下の場合は、識別コードを誤認識している可能性が高いと判断してステップＳ１５０５に処理を移す。指標の信頼度が閾値より高い場合は、認識した識別コードが十分に信頼できると判断して処理を終了する。
【０１１５】
ステップＳ１５０５では、指標識別部１０６が、類似性の判断を行う。まず、ステップＳ６０３で得た検出指標の中心点の座標と、ステップＳ１５０３で得た投影指標の中心点の位置を比較する。画像上における指標位置の比較は、例えば、２点間の画像上における距離を画像座標における位置の類似性として算出してもよい。さらに、当該検出指標の画像上における方向と、投影指標の画像上における方向を比較する。画像上における各指標の方向を比較する方法としては、例えば以下のようなものがある。
（１）ステップＳ１５０３で得た指標の中心点の投影座標から、図２に示す指標３０１内のコード部２０１のビット割り当て領域の１２番に近い頂点座標を投影したときの投影座標へのベクトル
（２）ステップＳ６０４で検出した指標の中心点からコード部２０１のビット割り当て領域の１２番（方向性付与形状の４ビット領域のうち色が背景との区別色になっているビット）に近い頂点へのベクトル
の内積を、方向の類似性として算出する。
【０１１６】
このようにして求めた位置の類似性と方向の類似性の夫々が、予め定められた閾値以下の場合はステップＳ６１２に処理を移し、類似性が高い場合は処理を終了する。
ステップＳ６１２では、ステップＳ６０４で認識した指標の識別コードが間違っていると判断し、指標候補リストから注目検出指標を削除する。
【０１１７】
なお、ステップＳ１５０５と同様な処理を信頼度の高い検出指標に対しても実行して、指標の位置と向きの類似性が低い場合は、位置姿勢センサに誤差があると判断し、利用者に警告を出すような構成としてもよい。
【０１１８】
また、本変形例は、画像上における指標の位置と方向の類似性を用いて指標の識別情報を検証することに限定されるものではなく、画像上における指標の見え方を特徴として検証する方法であれば適用可能である。例えば、指標の画像座標系におけるサイズ（四角形の面積など）の推定値（頂点の投影座標から算出）と、検出値（頂点の検出座標から算出）との間の類似性などに基づいて検証することができる。また、指標の位置と方向とを同時に用いる必要はなく、指標の位置、方向、画像座標系におけるサイズなど、指標の見え方の少なくとも１つに基づいて検証する方法を用いることができる。
【０１１９】
＜変形例２＞
変形例１においては、６自由度センサを用いてカメラの位置姿勢を計測し、指標情報保持部１０５内の配置情報を用いて指標を撮像画像上に投影し、撮像画像上における指標の見え方を用いて指標の識別情報を検証した。しかし、カメラ位置姿勢に対して、指標がどのように配置されているか、という情報を用いて検証するような構成としてもよい。
【０１２０】
本変形例では、現在のカメラ位置姿勢に対する指標の相対的な配置情報を用いる例として、カメラの視野内に指標があるか否か、及び、指標の法線方向と視軸方向のなす角度が一定値以内か否か、の２つの情報を用いて指標情報を検証する。
【０１２１】
本変形例は、変形例１を基にして以下の変更を加えればよい。すなわち、指標座標投影計算部１４０３が実施する処理ステップＳ１５０３において、指標の透視投影変換を省く。また、指標識別部１０６の処理の一部であるステップＳ１５０５において、カメラ座標系における指標の位置姿勢を基に識別コードを検証するような処理、例えば以下のような処理を実施する。
【０１２２】
先ず、指標座標投影計算部１４０３で得た指標の３次元位置が、カメラの想定する視野内にあるか否かを判定する。これは、例えば、カメラ１０１の透視投影変換の情報を用いて、指標の中心点と各頂点の３次元座標値全てが、透視投影変換の情報（カメラ１０１のレンズ焦点距離や主点位置）から決定されるビューボリューム内に含まれているかどうかを判定すればよい。
【０１２３】
次に、指標がカメラから見える向きを向いているか否かを判定する。これは、例えば、指標の法線方向とカメラの視軸方向とのなす角度が所定範囲内にあるか否かによって判定することができる。指標の法線方向とカメラの視軸方向とのなす角度については、例えば、各方向ベクトルの内積によって求めればよい。
【０１２４】
また、指標の法線方向は、あらかじめ指標情報保持部１０５に保持していてもよいし、図３に示す各頂点ＪＫＭＬに対応する各頂点の３次元座標値から求めたベクトルＪＫとベクトルＫＬの外積値を用いても良い。
【０１２５】
なお、指標位置がカメラの視野内に含まれるか否かという検証と、指標の法線方向と視軸方向のなす角度が一定値以内であるか否かという検証の双方を実行することは必ずしも必須ではなく、夫々の処理のうちの何れか一方を実行する構成であってもよい。また、カメラと指標の配置関係に基づく他の基準（例えば、カメラから指標までの距離が閾値以内にあるか否かといった基準）によって判定を行っても良い。さらに、変形例１における画像上での見え方に関する情報による検証を併用することも可能である。
【０１２６】
＜変形例３＞
変形例１では、識別コード認識部１０３で得た識別コードが正しいか否かの検証を、当該識別コードに対応する指標の配置情報を用いて推定した画像上の位置に投影した指標の見え方と、実際に撮像画像から検出されている指標の見え方との比較により行っている。同様な検証方法を実現する他の構成として、以下の方法がある。まず、指標情報保持部１０５内に登録されている全ての指標の配置情報を用い、夫々の投影指標の見え方を推定する。そして、撮像画像から検出された指標と、画像上における見え方が類似している投影指標の識別コード（第二の識別コード）を得て、画像から認識した識別コード（第一の識別コード）と統合することで、最終的に採用する識別コードを決定してもよい。
【０１２７】
本変形例は、変形例１を基にして以下の変更を加えることにより実現できる。まず、ステップＳ１５０３において、指標情報保持部１０５内に登録されている全ての指標の配置情報を用いて、夫々の指標の画像上における見え方（投影指標）を推定する。さらに、ステップＳ１５０５の処理において、全投影指標に対して検出指標との類似性を判定し、最も類似性が高い指標の識別コードを検出指標に対応する識別コード（第二の識別コード）だと判断する。さらに、その結果として得られた第二の識別コードと、撮像画像から認識した識別コード（第一の識別コード）とを比較し、両者の識別コードが一致するか否かによって以降の処理を決定する。すなわち、一致した場合は識別コードが正しいと判定して終了し、一致しない場合には識別コードが誤っていると判定してステップＳ６１２へ進むようにする。なお、ステップＳ１５０５において、全ての投影指標の類似性が閾値以上にならない場合は、ステップＳ６１２において指標候補リストから注目検出指標を削除する。
【０１２８】
なお、６自由度位置姿勢センサの計測の信頼度等を他の手段によって得ることもできる。その場合、他の手段で得た信頼度に基づいて第二の識別コードの信頼度を求め、ステップＳ１５０５において、第二の識別コードの信頼度が高い場合には第一の識別コードとの比較を行わずに第二の識別コードを採用するような構成とすることができる。
【０１２９】
＜変形例４＞
変形例２においては、識別コード認識部１０３で得た識別コードが正しいか否かの検証を、当該識別コードに対応する指標の配置情報を用いて推定したカメラと指標との相対的な位置や姿勢の関係に基づいて行っている。同様な検証方法を実現する他の構成として、以下の方法がある。まず、指標情報保持部１０５内に登録されている全ての指標の配置情報を用いて夫々の指標のカメラに対する相対的な位置や姿勢を推定する。そして、一定の条件を満たす指標の識別コード（第二の識別コード）を得て、撮像画像から認識した識別コード（第一の識別コード）と統合することで、最終的に採用する識別コードを決定してもよい。
【０１３０】
本変形例は、変形例２を基にして以下の変更を加えることにより実現できる。まず、ステップＳ１５０３において、指標情報保持部１０５内に登録されている全ての指標の配置情報を用いて、夫々の指標のカメラとの間の相対的な位置と姿勢を推定する。さらに、ステップＳ１５０５の処理において、全指標に対して、夫々の指標の中心点と各頂点の３次元座標値が、現在のカメラが想定する視野内に含まれるか否かを検証する。さらに、指標の法線方向とカメラの視軸方向とのなす角度が閾値内であるかという検証を実施する。そして、これらの２つの検証を満たす指標が１つだった場合は、その指標の識別コードを対応する識別コード（第二の識別コード）だと判断し、以下、変形例３と同様な処理を実行する。なお、ステップＳ１５０５において、２つの検証を通る指標が１つもない場合は、ステップＳ６１２において指標候補リストから注目検出指標を削除する。
【０１３１】
また、２つの検証を満たす指標が複数あった場合は、同定せずに指標候補リストから注目検出指標を削除してもよいし、２つの検証を満たす指標を変形例３のように画像面に投影し、投影指標の画像上での見え方の情報を用いて同定してもよい。
【０１３２】
＜変形例５＞
第１及び第２の実施形態では、信頼度に応じて２次元画像処理以外の手段で指標の識別情報を検証又は修正することを判定していたが、信頼度に依存せず常に検証又は修正を実施するような構成としてもよい。
例えば、姿勢センサの精度が良く、姿勢センサの誤差を原因とする指標の誤識別が起こらない場合は、信頼度に応じて指標の識別処理を区別しなくてもよい。
【０１３３】
本変形例では、第１の実施形態において、信頼度に関係なく２次元画像処理以外の手段を用いて指標の識別情報を検証する指標識別装置について説明する。
本変形例は、第１の実施形態を基にして以下の変更を加えることで実現できる。すなわち、第１の実施形態における構成から、信頼度算出部１０４を除き、指標識別部１０６では、信頼度によらず、常に検出指標の検証を行う。さらに、処理ステップでは、第１の実施形態のステップＳ６０６及びステップＳ６１０を除き、常にステップＳ６１１乃至ステップＳ６１２の処理を実行すればよい。
【０１３４】
＜変形例６＞
変形例１では、６自由度センサを用いて指標の識別情報を検証していた。しかし、本発明において識別情報の検証に姿勢センサや６自由度センサは必須でなく、指標の識別情報を正しく得るための情報であれば位置や姿勢以外の情報を適用可能である。例えば、直前の撮像画像（以降、前フレームの画像と呼ぶ）を用いて算出されたカメラ１０１の位置姿勢を用いて現在の撮像画像に写る指標を識別してもよい。
【０１３５】
本変形例は、変形例１を基にして以下の変更を加えることにより実現できる。すなわち、変形例１の指標識別装置の構成からカメラ位置姿勢センサ１４０１を除き、カメラ位置姿勢計測部１４０２に、前フレームの撮像画像から得た同定後の指標のデータ（対応リスト）を入手し、これに基づいてカメラ１０１の位置姿勢を入力すればよい。
【０１３６】
指標の対応リストからカメラの位置姿勢を求める方法としては、例えば、非特許文献３等のカメラ位置姿勢同定方法を用いることができる。非特許文献３のカメラ位置姿勢同定方法とは、すなわち、外形が正方形であることを利用して、その制約条件下で各頂点をカメラの画像座標系に投影したときの誤差を最小化するようなカメラの位置姿勢成分を推定する方法である。このようにして得たカメラ位置姿勢を基に、変形例１と同様に指標の配置情報を撮像画像に投影し、検出された指標の情報と比較を行うことができる。
【０１３７】
＜変形例７＞
変形例６では、前フレームで得たカメラ位置姿勢を用いて、指標の識別情報を検証していた。しかし、例えば、複数の指標のうち、撮像画像内で既に識別できた一部の指標を基にカメラ１０１の位置姿勢を推定し、推定されたカメラ位置姿勢を用いて指標を識別してもよい。例えば、信頼度の高い指標候補の情報を、カメラ位置姿勢計測部１４０２に入力し、カメラ位置姿勢を得た後に、信頼度の低い指標の識別を行ってもよい。
【０１３８】
＜変形例８＞
第１及び第２の実施形態においては、正方形の外形を有し、内部にコード領域を持つ指標を用いていたが、特定の外形をもつ指標を用いる必要はなく、特許文献１に記載されるような、外形を持たない指標（マーカ）を用いてもよい。
本変形例におけるマーカ１２０は、特許文献１に掲載されている指標を用いる。すなわち、長方形のバーと４点の特徴点と特徴点内部の２次元バーコード部から構成される。
【０１３９】
この場合、第１の実施形態における指標検出部１０２及び識別コード認識部１０３の代わりに、特許文献１に記載されるような、２次元コードデータの検出処理を用いればよい。すなわち、撮像画像の２値化を行い、黒色画素連結領域を決定する。さらに、認識処理の基準となる長方形のロゴマークセル部を検出し、所定の探索範囲内のコーナーセルを検出して、検出した各４点を第１の実施形態の指標外形３０１の頂点として登録する。その他の処理は、第１の実施形態と同様の処理を行えばよいため説明を省略する。
【０１４０】
＜変形例９＞
第１及び第２の実施形態においては、正方形の外形を有し、内部にバーコード領域を持つ指標を用いていたが、非特許文献１に記載されるような、内部に識別用の固有のパターンを持つ指標を用いても良い。
【０１４１】
このような指標を用いる場合には、第１の実施形態における識別コード認識部１０３の代わりに、非特許文献１に記載されるようなテンプレートマッチングの検出処理を用いればよい。すなわち、撮像画像に写る指標外形の４頂点内にあるパターンを画像として取得する。さらに、ホモグラフィ変換によりパターンを正方形形状に正規化し、指標情報保持部１０５内にあらかじめ登録されている、パターンのテンプレート画像を探索することにより識別情報を認識する。
【０１４２】
つまり、指標情報保持部１０５には、第１の実施形態における指標の情報の他に、空間中に配置した各指標の内部に印刷されたパターンのテンプレート画像を登録しておく。その他の処理は、第１の実施形態と同様でよいため説明を省略する。
【０１４３】
＜変形例１０＞
第１及び第２の実施形態においては、人為的に作成した指標を用いていたが、自然特徴を指標として用いてもよい。例えば、非特許文献４に開示されているＳＩＦＴ(Scale Invariant Feature Transformation)特徴量のように、シーンの自然特徴の撮像画像から、その自然特徴に固有な識別子を一意に取得可能な特徴量を指標として用いることができる。このような特徴量について同定を行う場合、変形例２や変形例４で示した検証方法を適用することができる。例えば、自然特徴の３次元位置と、カメラの大まかな位置姿勢からその自然特徴が視野に含まれているかどうかに基づいて、画像情報のみから得た識別子の検証を行うことが可能である。
【０１４４】
＜他の実施形態＞
なお、上述の実施形態及び変形例においては、理解を容易にするため、カメラ及び３次元姿勢センサ又は３次元位置姿勢センサを含む指標識別装置について説明したが、これらは指標識別装置に必須ではない。すなわち、カメラを位置姿勢計測又は３次元姿勢計測し、また、撮像は他の装置で行い、他の装置から計測結果と撮像画像を取得する構成であってもよい。また、リアルタイムに処理を行う場合だけでなく、記録された３次元位置計測結果と、撮像画像とを用いて識別処理を行うことももちろん可能である。
【０１４５】
また、上述の実施形態及び変形例においては、カメラに６自由度位置姿勢センサが装着されており、指標は環境中の既知の位置に固定されている場合について説明した。しかし、指標は必ずしも環境中に固定されている必要は無く、移動可能な物体に取り付けられていても良い。この場合、指標を取り付けた物体にも６自由度位置姿勢センサを装着し、物体に対するカメラの相対的な位置姿勢を計測すれば、固定された指標と同様に取り扱うことができる。また、カメラが環境中の既知の位置に固定されていて、指標を有する物体のみが移動するような状況であっても同様であり、カメラと物体の大まかな相対位置姿勢が計測できる状況であれば、同様な効果を有する検証を行うことができることはいうまでもない。
【０１４６】
なお、前述した実施形態の機能を実現するコンピュータプログラムを、コンピュータを含むシステム或いは装置のコンピュータが実行することによって同等の機能が達成される場合も本発明に含む。コンピュータを含むシステム又はコンピュータへのプログラムの供給は、記録媒体から直接行っても、有線／無線通信を用いて行っても良い。
【０１４７】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【０１４８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１４９】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体がある。また、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどもある。
【０１５０】
有線／無線通信を用いたプログラムの供給方法としては、以下のような方法がある。コンピュータネットワーク上のサーバに、クライアントコンピュータ上で本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムデータファイル）を記憶する。そして、接続のあったクライアントコンピュータにプログラムデータファイルをダウンロードする方法である。この場合、プログラムデータファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに配置することも可能である。プログラムデータファイルとしては、本発明を形成するコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイル等でよい。
【０１５１】
つまり、本発明の機能処理をコンピュータで実現するためのプログラムデータファイルを複数のユーザに対してダウンロードさせるサーバ装置も本発明に含む。
【０１５２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満たしたユーザに対して暗号化を解く鍵情報を、例えばインターネットを介してダウンロードさせることによって供給することもできる。この場合、その鍵情報を使用することにより、暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されるだけでなく、他のプログラムを利用することによって実施形態の機能を実現してもよい。例えば、プログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行うことで、前述した実施形態の機能が実現され得る。
【０１５４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードや、コンピュータに接続された機能拡張ユニットで実行されることで前述した実施形態の機能が実現されてもよい。具体的には、機能拡張ボードや機能拡張ユニットが備えるメモリやＣＰＵによってプログラムが実行され、実際の処理の一部または全部を担っても良い。
【図面の簡単な説明】
【０１５５】
【図１】第１の実施形態に係る指標識別装置の構成例を示すブロック図である。
【図２】、
【図３】第１の実施形態に係る指標識別装置が識別する指標の例を示す図である。
【図４】指標を、撮像する現実空間中の床と壁に配置し、それを指標識別装置のカメラで撮像している状態を模式的に示す図である。
【図５】図４のカメラ１０１で撮像された画像を二値化した結果を示す模式図である。
【図６Ａ】第１の実施形態に係る指標識別装置の処理を説明するフローチャートである。
【図６Ｂ】図６ＡのステップＳ６０８の処理を説明するフローチャートである。
【図７】第２の実施形態に係る指標識別装置の構成例を示すブロック図である。
【図８】第２の実施形態に係る指標識別装置を適用して指標識別する現実空間の様子を模式的に示す図である。
【図９】図８のカメラ１０１で撮像された画像を二値化した結果を示す模式図である。
【図１０】第２の実施形態で用いる指標を説明する図である。
【図１１】第２の実施形態に係る指標識別装置の処理を説明するフローチャートである。
【図１２】第２の実施形態における識別モジュール７０７が行う認識・識別処理の詳細を示すフローチャートである。
【図１３】第２の実施形態における識別コード認識処理を説明する模式図である。
【図１４】変形例１に係る指標識別装置の構成例を示すブロック図である。
【図１５Ａ】変形例１に係る指標識別装置の処理を説明するフローチャートである。
【図１５Ｂ】図１５ＡにおけるステップＳ１５０４の処理を説明するフローチャートである。
【図１】
2007164631.tif 000003
【図２】
2007164631.tif 000004
【図３】
2007164631.tif 000005
【図４】
2007164631.tif 000006
【図５】
2007164631.tif 000007
【図６Ａ】
2007164631.tif 000008
【図６Ｂ】
2007164631.tif 000009
【図７】
2007164631.tif 000010
【図８】
2007164631.tif 000011
【図９】
2007164631.tif 000012
【図１０】
2007164631.tif 000013
【図１１】
2007164631.tif 000014
【図１２】
2007164631.tif 000015
【図１３】
2007164631.tif 000016
【図１４】
2007164631.tif 000017
【図１５Ａ】
2007164631.tif 000018
【図１５Ｂ】
2007164631.tif 000019