(57)【特許請求の範囲】
【請求項１】
複数の指標が配された現実空間を撮像する撮像装置が複数接続された画像処理装置であって、
撮像画像中の指標を認識し、当該撮像画像を撮像した撮像装置を基準とした座標系における当該認識した指標の配置位置を示す配置情報を求める処理を、それぞれの撮像装置毎に行う計算手段と、
前記複数の指標の各々を互いに区別する当該指標毎に固有の識別情報と、当該指標の配置情報とを含む指標情報を管理する管理手段と、
前記複数接続された撮像装置のうちの注目撮像装置による撮像画像中の注目指標の認識を失敗した、若しくは誤認識した場合には、当該注目撮像装置以外の他撮像装置が撮像した撮像画像に対する前記計算手段による結果に基づいて、前記注目撮像装置について前記管理手段が管理する前記注目指標の識別情報を変更する変更手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記計算手段は、
前記他撮像装置から取得した他撮像画像中における指標を認識し、当該他撮像装置を基準とする座標系における、前記認識した指標の配置情報を求め、
前記変更手段は、
前記注目撮像装置から取得した撮像画像における指標の認識を前記計算手段が失敗した場合には、前記注目撮像装置と前記他撮像装置との相対的な位置姿勢関係を示す位置姿勢関係情報と、前記他撮像装置について前記計算手段が求めた前記指標の配置情報と、を用いて、前記指標の前記撮像装置を基準とする座標系における配置情報を求める手段を有する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記計算手段は、
注目撮像装置から取得した撮像画像中における指標の、当該注目撮像装置を基準とする自座標系における配置情報と、前記注目撮像装置以外の他撮像装置から取得した撮像画像中における指標の、当該他撮像装置を基準とする他座標系における配置情報を前記自座標系における配置情報に変換した結果と、の差分を計算し、
前記管理手段は、
異なる識別情報を有する指標同士の前記差分が閾値よりも小さい場合には、当該異なる識別情報同士を統一する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
更に、
撮像装置の位置姿勢情報を当該撮像装置について求めた配置情報を用いて求める処理を、それぞれの撮像装置について行う手段を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記計算手段は、前記撮像画像中の指標の領域を前記撮像装置のそれぞれが撮像した撮像画像について合計し、正規化した結果を用いて、当該指標の認識を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記計算手段は、前記撮像画像中の指標の領域に対して、ローパスフィルタを用いた広帯域補間を行うことで高密度化し、更に、高密度化データに加重和を加えて折り返し歪みを打ち消すことで、当該領域内の高周波成分を復元した結果を用いて、当該指標の認識を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
複数の指標が配された現実空間を撮像する撮像装置が複数接続された画像処理装置が行う画像処理方法であって、
前記画像処理装置の計算手段が、撮像画像中の指標を認識し、当該撮像画像を撮像した撮像装置を基準とした座標系における当該認識した指標の配置位置を示す配置情報を求める処理を、それぞれの撮像装置毎に行う計算工程と、
前記画像処理装置の管理手段が、前記複数の指標の各々を互いに区別する当該指標毎に固有の識別情報と、当該指標の配置情報とを含む指標情報を管理する管理工程と、
前記画像処理装置の変更手段が、前記複数接続された撮像装置のうち注目撮像装置による撮像画像中の注目指標の認識を失敗した、若しくは誤認識した場合には、当該注目撮像装置以外の他撮像装置が撮像した撮像画像に対する前記計算工程による結果に基づいて、前記管理工程が管理する前記注目指標の識別情報を変更する変更工程と
を備えることを特徴とする画像処理方法。
【請求項８】
コンピュータに請求項７に記載の画像処理方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置が撮像した画像を用いて、この撮像装置の位置姿勢情報を求める為の技術に関するものである。
【背景技術】
【０００２】
３次元空間中に基準として設けた座標系（基準座標系）における既知の位置に配置したマーカを撮像装置によって撮像し、撮像したマーカの画像における投影像の特徴点座標値を用いて、基準座標系における撮像装置の位置姿勢情報を実時間で求める方法がある。
【０００３】
例えば、非特許文献１に開示されているような方法がこれに該当する。非特許文献１に開示された方法では、２次元バーコード部を含む白黒矩形マトリックスと、黒枠と、から構成される２次元マトリックスコード（マーカ）を用いる。そして、撮像装置が係るマーカを撮像することで得られる画像において、黒枠の４つの特徴点の画像座標値と２次元バーコード部のＩＤを認識し、更にこのマーカと撮像装置との相対位置姿勢を求めることで、基準座標系における撮像装置の位置姿勢を推定する。
【０００４】
また、非特許文献２に開示されているように、撮像画像のみから位置姿勢を求めるのではなく、姿勢センサ付きの撮像装置を用いて、内部に２次元コードを含む円形マーカを２個以上撮像することにより、撮像装置の位置姿勢を求める方法もある。係る方法は、ハイブリッドな撮像装置位置姿勢推定方法である。
【０００５】
さらに、特許文献１に開示されているように、外形を持たない点と図形の集合をマーカとし、そのマーカを撮像した画像から図形と特徴点の組み合わせて４つの特徴点とマーカのＩＤを認識する。更に、マーカと撮像装置との相対位置姿勢を求めることで基準座標系における撮像装置の位置姿勢を求める。
【０００６】
また、撮像装置自身を実空間中の既知の位置に固定し、実空間を動く計測対象物に固定されたマーカを撮像装置で捉え、撮像装置の座標系における計測対象物上の位置姿勢を実時間で求める方法も一般的に行われている。
【０００７】
これらの従来技術では、「撮像装置とマーカとの相対位置姿勢」を求めることで、撮像装置自身の位置姿勢、又は、計測対象物の位置姿勢を求め、各位置姿勢に応じたＣＧを実時間で撮像画像上に重畳することが目的であった。
【０００８】
そして更に、これらの従来技術は、１つの撮像装置で撮像したマーカの画像情報から、撮像装置自身の位置姿勢を求めることを目的としたものであった。
【非特許文献１】Jun Rekimoto, "Matrix: A Realtime Object Identification and Registration Method for Augmented Reality", Proc. of Asia Pacific Computer Human Interaction (APCHI '98), 1998.
【非特許文献２】E. Foxlin, Leonid Naimark, “VIS-Tracker: A Wearable Vision-Inertial Self Tracker”,IEEE Conference on Virtual Reality, pp. 199-206, LA,CA.(2003)
【特許文献１】特開2000-082108号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前述したマーカは、撮像装置とマーカとの相対位置姿勢を求めるための「特徴点」と、マーカ認識の補助や、複数のマーカを識別するための「２次元バーコード部（識別領域）」と、から構成されている。
【００１０】
１つの撮像装置でマーカを認識する処理において、撮像装置とマーカとの相対角度が大きい場合や、撮像装置とマーカとの距離が大きい場合、「特徴点」の認識が可能であっても、画像に映るマーカの識別領域が小さく、マーカを認識できない場合がある。マーカを認識できない場合は、「撮像装置とマーカとの相対位置姿勢」を求めることができず、撮像装置の基準座標系における位置姿勢も求めることができない。この状態を「識別領域の認識失敗」と呼ぶ。
【００１１】
＜マーカが認識できない要因＞
マーカ認識処理において、識別領域の認識失敗が起こる大きな要因として、マーカを識別するための指標識別領域の解像度不足が挙げられる。例えば、撮像装置とマーカとの相対姿勢が深いと、識別領域の解像度が低くなる。一方、撮像装置とマーカとの相対姿勢が浅いと、識別領域の解像度は高くなる。従って、撮像装置とマーカとの相対姿勢が深い程、マーカ認識処理におけるマーカ認識率は低くなる可能性が高い。これは、識別領域の解像度が低いと、撮像時の色滲みやノイズによるビット値の誤認識や、隣接するビット値を間違えて読み込むことなどが大きな要因となっている。
【００１２】
また前述したように、撮像装置とマーカとの相対姿勢のみではなく、撮像装置とマーカとの距離が大きい場合や、マーカ自身のサイズが小さい等の理由でも同様に、撮像画像中におけるマーカの投影画像が小さくなり、解像度不足となりうる。そしてこれにより、マーカ認識の失敗が起こり得る。
【００１３】
さらに、マーカの識別領域に他の物体による影が落ちている状態で係るマーカを撮像した場合、撮像画像中におけるマーカの投影画像を構成するビット値が本来のビット値と異なる可能性がある。このような場合、識別領域を構成するビット値を読み間違える可能性があり、ビット値を読み間違えると、マーカ認識を失敗する可能性が高くなる。
【００１４】
ここで、マーカの認識の失敗には２通りある。一方は、識別領域を認識できずにマーカとして登録できない、という失敗である。他方は、識別領域を誤って認識し、間違ったＩＤのマーカとして認識する、という失敗である。ここで前者の失敗を「マーカの検出失敗」、後者の失敗を「マーカの誤認識」と呼称する。
【００１５】
＜複数の撮像装置でマーカのIDを認識する場合の課題＞
相対位置姿勢が既知の互いに固定された２つの撮像装置を用いて、領域を分割してＩＤを表現するマーカを撮像する状況を想定する。そして、一方の撮像装置が撮像した画像中におけるマーカの認識は成功し、他方の撮像装置が撮像した画像中におけるマーカの認識は、「識別領域の認識失敗」により失敗したとする。
【００１６】
従来、マーカ認識処理は、各撮像装置で得た画像に対して独立に行なわれていた。従って、一方の撮像装置による撮像画像において「特徴点」の認識が可能であっても、マーカが認識できた撮像装置の画像のみの基準座標系における位置姿勢が求められ、マーカが認識できなかった撮像装置の位置姿勢を求めることはできなかった。
【００１７】
本発明は以上の問題に鑑みてなされたものであり、複数の撮像装置を用いてマーカを撮像し、撮像したマーカを用いてそれぞれの撮像装置の位置姿勢情報を求める際に、マーカの認識率を向上させるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１９】
即ち、複数の指標が配された現実空間を撮像する撮像装置が複数接続された画像処理装置であって、
撮像画像中の指標を認識し、当該撮像画像を撮像した撮像装置を基準とした座標系における当該認識した指標の配置位置を求める処理を、それぞれの撮像装置毎に行う計算手段と、
指標に固有の識別情報と、当該指標の配置情報とを含む指標情報を管理する管理手段と、
注目撮像装置による撮像画像中の注目指標の認識を失敗した、若しくは誤認識した場合には、当該注目撮像装置以外の撮像装置が撮像した撮像画像に対する前記計算手段による結果に基づいて、前記管理手段による前記注目指標に対する管理内容を変更する変更手段と
を備えることを特徴とする。
【００２０】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００２１】
即ち、複数の指標が配された現実空間を撮像する撮像装置が複数接続された画像処理装置が行う画像処理方法であって、
撮像画像中の指標を認識し、当該撮像画像を撮像した撮像装置を基準とした座標系における当該認識した指標の配置位置を求める処理を、それぞれの撮像装置毎に行う計算工程と、
指標に固有の識別情報と、当該指標の配置情報とを含む指標情報を管理する管理工程と、
注目撮像装置による撮像画像中の注目指標の認識を失敗した、若しくは誤認識した場合には、当該注目撮像装置以外の撮像装置が撮像した撮像画像に対する前記計算工程による結果に基づいて、前記管理工程による前記注目指標に対する管理内容を変更する変更工程と
を備えることを特徴とする。
【発明の効果】
【００２２】
本発明の構成によれば、複数の撮像装置を用いてマーカを撮像し、撮像したマーカを用いてそれぞれの撮像装置の位置姿勢情報を求める際に、マーカの認識率を向上させることができる。
【発明を実施するための最良の形態】
【００２３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００２４】
［第１の実施形態］
本実施形態では、上記「マーカの検出失敗」に対処する。また、以下では、「指標」の一例として「マーカ」を用いるが、「マーカ」以外のものを「指標」として用いても良い。
【００２５】
図１は、本実施形態に係るシステムの機能構成を示すブロック図である。図１に示す如く、本実施形態に係るシステムは、互いの相対的な位置姿勢関係が既知の（図１の場合、互いの相対的な位置姿勢関係は固定されている）撮像装置１１０Ｒ、１１０Ｌと、画像処理装置１００とで構成されている。
【００２６】
先ず、撮像装置１１０Ｒ、１１０Ｌについて説明する。撮像装置１１０Ｒ、１１０Ｌはそれぞれ、観察者の右眼、左眼に対して提供する現実空間の画像（撮像画像）を撮像するためのものであり、撮像した画像はそれぞれ画像処理装置１００に入力される。現実空間中には１以上のマーカ１２０が配されている。以下の説明では説明を簡単にするために、現実空間中には１つのマーカ１２０が配されており、それぞれの撮像装置１１０Ｒ、１１０Ｌは係るマーカ１２０を撮像しているものとして説明する。
【００２７】
図２は、撮像装置１１０Ｒ、１１０Ｌ、マーカ１２０のそれぞれに対して設定されている座標系を説明する図である。
【００２８】
撮像装置１１０Ｒに対しては、撮像装置１１０Ｒを基準とする座標系２１０Ｒが設定されている。係る座標系２１０Ｒは、例えば、撮像装置１１０Ｒの焦点位置を原点とし、係る原点で互いに直交する３軸をそれぞれ、Ｘｒ軸、Ｙｒ軸、Ｚｒ軸とする座標系である。
【００２９】
同様に、撮像装置１１０Ｌに対しては、撮像装置１１０Ｌを基準とする座標系２１０Ｌが設定されている。係る座標系２１０Ｌは、例えば、撮像装置１１０Ｌの焦点位置を原点とし、係る原点で互いに直交する３軸をそれぞれ、Ｘｌ軸、Ｙｌ軸、Ｚｌ軸とする座標系である。
【００３０】
また、マーカ１２０に対しても同様に、マーカ１２０を基準とする座標系２２０が設定されている。係る座標系２２０は、例えば、マーカ１２０の中心位置を原点とし、係る原点で互いに直交する３軸をそれぞれ、Ｘｍ軸、Ｙｍ軸、Ｚｍ軸とする座標系である。
【００３１】
２３０は、世界座標系を示している。世界座標系２３０とは周知の通り、現実空間中の１点を原点とし、係る原点で互いに直交する３軸をそれぞれ、Ｘｗ軸、Ｙｗ軸、Ｚｗ軸とする座標系である。
【００３２】
また、上述の通り、撮像装置１１０Ｒ、１１０Ｌのそれぞれの間の相対的な位置姿勢関係は固定されている。図２では、撮像装置１１０Ｌが、撮像装置１１０Ｒの座標系２１０Ｒにおいて、Ｘｒ軸の正の方向に６０ｍｍの位置で固定されているものとする。なお、撮像装置１１０Ｒ、１１０Ｌとの間の相対的な位置姿勢関係については特に限定するものではなく、位置姿勢関係が既知であれば良い。
【００３３】
次に、マーカ１２０についてより詳細に説明する。
【００３４】
マーカ１２０は、撮像装置１１０Ｒ、１１０Ｌに撮像されることを目的として現実空間中に配置される平面状の白黒２次元マトリックスコードである。図３は、マーカ１２０の一例を示す図である。
【００３５】
本実施形態では、図３に示す如く、黒地に白の正方形外形３１０を配置し、更に係る正方形外形３１０の内部には、４×４の２次元マトリックスコードを配置している。この４×４の２次元マトリックスコードの４隅には、左上ビット３２０Ａ、右上ビット３２０Ｂ、左下ビット３２０Ｃ、右下ビット３２０Ｄが、マーカ１２０の法線方向の回転を決定する為に記されており、それぞれ黒、黒、黒、白の順で塗りつぶされている。
【００３６】
また、この４×４の２次元マトリックスコードにおける４隅を除く１２ビット分の領域には、マーカ固有の情報（ＩＤ）が記されたＩＤコード領域が形成されている。黒く塗りつぶされている領域が１、白く塗りつぶされている領域が０を示している。図３には、ビットの配置を示すために便宜的に各ビット領域にビットの配置を示す数値を示している。この図３の例は、ＩＤ「１」のマーカを示している。なお、本来のマーカ１２０には、この数値と、各ビット領域の区切りを示す点線は記されていない。
【００３７】
なお、本実施形態に適用可能なマーカ１２０は、図３に示したような、白の正方形外形内に方向とＩＤを示すビット領域を持つマーカに限定されるものではない。即ち、非特許文献１、非特許文献２に開示されているような、内部に２次元コードを備えるマーカであれば良い。
【００３８】
このように、本実施形態では、上述したようなマーカ１２０が配されている現実空間を、撮像装置１１０Ｒ、１１０Ｌによって撮像する。そしてそれぞれの撮像装置１１０Ｒ、１１０Ｌは画像処理装置１００に接続されている。
【００３９】
次に、画像処理装置１００について説明する。画像処理装置１００は、画像入力部１３０、記憶部１４０、指標外形検出部１５０、指標識別部１６０、指標協調認識部１７０、により構成されている。
【００４０】
画像入力部１３０は、撮像装置１１０Ｒ、１１０Ｌのそれぞれから送出された撮像画像をアナログ信号として受け、これをディジタルデータに変換した後、記憶部１４０に送出する。
【００４１】
図４は、撮像装置１１０Ｒ、１１０Ｌのそれぞれによる撮像画像の一例を示す図である。４１０Ｌは、撮像装置１１０Ｌによる撮像画像であり、４１０Ｒは、撮像装置１１０Ｒによる撮像画像である。また、１２０Ｌは、撮像画像４１０Ｌにおけるマーカ１２０を示しており、１２０Ｒは、撮像画像４１０Ｒにおけるマーカ１２０を示している。４３０Ａ〜４３０Ｄは、撮像画像上におけるマーカ１２０の正方形外形３１０の四隅を示している。４３０Ａ〜４３０Ｄについて詳しくは後述する。
【００４２】
図１に戻って、記憶部１４０は、画像入力部１３０から送出された画像データを記憶すると共に、後述する様々なデータを記憶する。
【００４３】
・  現実空間中に配されているそれぞれのマーカのＩＤのリスト
・  現実空間中におけるそれぞれのマーカの（世界座標系における）配置位置姿勢と、このマーカのＩＤ
・  指標外形検出部１５０から出力されるマーカの頂点座標値Icと、このマーカのＩＤ
・  撮像装置１１０Ｒ、１１０Ｌのそれぞれの投影変換行列Mp
・  撮像装置１１０Ｒ、１１０Ｌのそれぞれによる撮像画像から、後述する画像処理において生成される２値画像
・  マーカの４頂点の世界座標系における位置Vc
・  マーカのＩＤ識別処理時に利用する正方形に射影した処理画像Ｔ（正規化画像）
なお、マーカに関する情報については、マーカのＩＤと関連付けて格納される。
【００４４】
また、上述したデータだけでなく、後述の説明において既知の情報として説明するものや、後述する処理において当業者であれば周知のものとして扱う情報についても、記憶部１４０に記憶されている。そして記憶部１４０に記憶されている情報は、適宜読み出して利用することができる。
【００４５】
指標外形検出部１５０は、撮像画像を記憶部１４０から読み出し、読み出した撮像画像中のマーカ１２０を認識するための前処理として、マーカ１２０の外形を示す正方形外形３１０の境界線を検出する。境界線の検出には、例えば非特許文献１に開示されている境界線検出方法を用いる。すなわち、撮像画像を２値化し、２値画像を生成する。そして生成した２値画像における正方形外形３１０の境界線に対して直線当てはめを行い、四角形になる領域をマーカ候補領域とする。ここで直線当てはめにより求めた４辺の交差する４頂点（３２０Ａ〜３２０Ｄ）の、撮像画像上における座標位置Icを記憶部１４０に格納する。また、指標外形検出部１５０は、上記外形検出処理において生成した上記２値画像も記憶部１４０に格納する。指標外形検出部１５０は、このような処理を、撮像装置１１０Ｒ、１１０Ｌのそれぞれによる撮像画像について行う。
【００４６】
指標識別部１６０は、記憶部１４０から、撮像画像と、指標外形検出部１５０が求めた座標位置Icと、を読み出す。そして読み出したこれらを用いて、係る撮像画像中におけるマーカ１２０を認識（識別）する。そしてマーカ１２０の認識が成功した場合には、撮像装置１１０Ｌを基準とする座標系２１０Ｌにおける、マーカ１２０の位置姿勢Ｍcmを求める。
【００４７】
ここで、マーカの識別には、例えば、非特許文献１に開示されている方法を用いる。すなわち、４×４のコード領域を正方形に射影する変換行列を求め、各セル領域内における黒と白のピクセルの比率によりセルのビットを判定する。ここで、指標識別部１６０は、ビット判定のために射影変換によって正方形に射影した正規化画像Ｔを、記憶部１４０に格納する。このビット判定には、マーカの方向を決定する方向決定ビットとしての各ビット３２０Ａ〜３２０Ｄの判定も含む。さらに各ビット３２０Ａ〜３２０Ｄで定められた方向でＩＤコード領域のビットを判定し、係るマーカのＩＤを決定する。
【００４８】
そして指標識別部１６０は、マーカの識別が完了すると、非特許文献１に開示されている方法等を用いることで、撮像装置１１０Ｌを基準とする座標系２１０Ｌにおける、マーカ１２０の位置姿勢Ｍcmを求める。
【００４９】
そして、撮像装置１１０Ｒの世界座標系２３０における位置姿勢を算出する場合は先ず、識別したマーカのＩＤに対応する、このマーカの世界座標系２３０における配置位置姿勢Ｍwmを、記憶部１４０から読み出す。そして、読み出した配置位置姿勢Ｍwmと、求めた位置姿勢Ｍcmと、を用いて、撮像装置１１０Ｒの世界座標系２３０における位置姿勢Ｍwcを推定する。
【００５０】
ここで、Ｍwm、Ｍcm、Ｍwcは、位置姿勢を示す４×４の行列を表し、これらの関係を以下の（式１）に示す。
【００５１】
Ｍwc ＝ Mwm・Mcm-1    （式１）
また、マーカの認識に成功した場合、座標系２２０における４頂点４２０Ａ〜４２０Ｄの３次元位置Vmを、座標系２１０Ｌにおけるマーカ１２０の位置姿勢を示すMcmに掛ける。これにより、座標系２１０Ｌにおけるマーカの４頂点４２０Ａ〜４２０Ｄの３次元位置Vcを得ることができるので、これを記憶部１４０に格納する。Vcの算出方法を以下の（式２）に示す。
【００５２】
Vc ＝ Mcm・Vm    （式２）
指標協調認識部１７０は、一方の撮像装置が撮像した撮像画像については指標識別部１６０はマーカの認識は成功したものの、他方の撮像装置が撮像した撮像画像については指標識別部１６０はマーカの認識は失敗した場合に対処する為の動作を行う。以下、係る動作について説明する。
【００５３】
即ち、認識に成功したマーカの４頂点の３次元座標値Vcを、マーカの認識に失敗した撮像画像上の２次元座標値Ipに変換する。マーカが認識できなかった撮像装置以外の撮像装置において、複数個のマーカが認識されている場合は、すべてのマーカ頂点Vcnを画像平面上の2次元座標値Ipnに変換する。『マーカが認識できなかった撮像装置以外の撮像装置において、複数個のマーカが認識されている場合』とは例えば、次のような場合である。即ち、１つの撮像装置で複数個認識されている場合、複数の撮像装置で１つのマーカを重複して認識している場合、前者と後者が同時に起こっている場合、である。
【００５４】
本実施形態では、撮像装置１１０Ｒ（他撮像装置）による撮像画像（他撮像画像）からのマーカ１２０（他指標）の認識が失敗した場合には、次のような処理を行う。先ず、撮像装置１１０Ｌ（注目撮像装置）を基準とする座標系２１０Ｌ（自座標系）におけるマーカ１２０の４頂点の座標値Vcを記憶部１４０から取得する。そして、座標値Vcを、撮像装置１１０Ｒを基準とする座標系２１０Ｒ（他座標系）におけるマーカ１２０の位置姿勢Vc’に変換する。ここで、撮像装置１１０Ｒと撮像装置１１０Ｌとの相対的な位置姿勢関係を示す位置姿勢関係情報を、座標系２１０Ｒにおける座標系２１０Ｌの位置姿勢MRLとおくと、Vc’は以下の（式３）により求められる。
【００５５】
Vc’＝MRL・Vc    （式３）
そして、以下の（式４）によって、このVc’を、撮像装置１１０Ｒによる撮像画像上に投影変換し、２次元座標値Ic’を求める。
【００５６】
Ic’＝ ＭP’・Vc’    （色４）
この投影変換に用いる変換行列ＭP’は、撮像装置に固有の行列であり、あらかじめ撮像装置ごとに求め、記憶部１４０に格納しておく。
【００５７】
そして、このようにして求められた２次元座標値のうち、１つのマーカの４頂点の組の座標値Ic'と、４頂点の２次元座標値Icと、で最も画像上の距離が近い点をセットにする。そしてセット中の２点間の距離を求め、更に、セット毎に求めた距離の平均値を求める。そして、求めた平均値が閾値よりも小さい場合、座標値Ic'は、２次元座標値Icを４隅とするマーカと同じマーカの４隅の座標値を示していると判断し、このマーカのＩＤとセットにして座標値Ic'を記憶部１４０に登録する。
【００５８】
そして指標協調認識部１７０は、撮像装置１１０Ｒによる撮像画像上における座標値Ic'を用いて、指標識別部１６０が行うものとして上述した各処理に基づいて、撮像装置１１０Ｒによる撮像画像上におけるマーカ１２０を認識する。そして認識したマーカ１２０を用いて、指標識別部１６０が行うものとして上述した各処理を実行することで、撮像装置１１０Ｒとマーカ１２０との相対位置姿勢を推定する。
【００５９】
なお、本実施形態は、マーカの識別に失敗した撮像装置の座標系に、マーカの識別が成功した頂点情報を投影する方法に限定されるものではない。即ち、認識に失敗したマーカと、別の撮像装置において認識に成功したマーカの情報とを対応づける方法であれば良い。
【００６０】
例えば、非特許文献１に開示されている方法を用いても良い。係る方法では先ず、マーカ（マーカ候補）の頂点の２次元座標値とマーカ頂点が平面上の正方形の頂点であることを利用して2次元射影変換行列（Homography）を求める。そして、2次元射影変換行列から公知の算出方法によりマーカ候補の４頂点の３次元位置を求める。そして上記（式２）を用いてVcと比較することでマーカ候補と認識済みのマーカとを対応づける。
【００６１】
また、認識に成功した撮像画像のマーカの各頂点からエピポール線を辿り、認識に失敗した画像側の対応するマーカ候補の頂点の組を探索することで対応付けを行う方法でもよい。
【００６２】
図５は、撮像装置１１０Ｒ、１１０Ｌのそれぞれから取得した撮像画像中のマーカを認識する処理のフローチャートである。なお、図５のフローチャートに従った処理は、認識したマーカを用いて、撮像装置１１０Ｒ、１１０Ｌの位置姿勢情報を求めるための処理の一部として動作する。
【００６３】
先ずステップＳ５１０では、画像入力部１３０が、撮像装置１１０Ｒ、１１０Ｌから送出された撮像画像をディジタルデータとして記憶部１４０に送出する。更に、指標外形検出部１５０は、撮像画像を記憶部１４０から読み出し、読み出した撮像画像中のマーカ１２０の外形を示す正方形外形３１０の境界線を検出する。そして指標外形検出部１５０は、検出した外形の内部領域の４隅の（撮像画像上における）座標位置Icを記憶部１４０に格納する。
【００６４】
次に、ステップＳ５２０では、指標識別部１６０は、記憶部１４０から全ての撮像画像を読み出し、係る撮像画像中におけるマーカ１２０を認識したか否かを判断する。係る判断の結果、未だ全ての撮像画像についてマーカ１２０を認識していない場合には処理をステップＳ５３０に進める。
【００６５】
ステップＳ５３０では、指標識別部１６０は、記憶部１４０から、撮像画像と、指標外形検出部１５０が求めた座標位置Icと、を読み出す。そして読み出したこれらを用いて、係る撮像画像中におけるマーカ１２０を認識（識別）する。
【００６６】
一方、全ての撮像画像についてマーカ１２０を認識している場合には処理をステップＳ５４０に進める。
【００６７】
ステップＳ５４０では、指標協調認識部１７０は、マーカ１２０の認識が失敗している撮像画像が存在するか否かを判断する。係る判断の結果、認識を失敗している撮像画像が無ければそのまま本処理を終了させる。一方、認識を失敗している撮像画像があれば、処理をステップＳ５５０に進める。
【００６８】
ステップＳ５５０では、指標協調認識部１７０は、認識を失敗している撮像画像について、認識が成功しているマーカについての上記各情報を用いて、認識を失敗している撮像画像について再度、マーカの認識処理を行う（協調認識処理）。
【００６９】
図６は、ステップＳ５５０における処理の詳細を示すフローチャートである。
【００７０】
ある撮像装置（撮像装置１１０Ｒ、１１０Ｌの何れか）による撮像画像についてマーカ１２０の認識が失敗しており、且つ他の撮像装置による撮像画像についてマーカ１２０の認識が失敗している場合には、本処理は終了する。
【００７１】
一方、ある撮像装置（撮像装置１１０Ｒ、１１０Ｌの何れか）による撮像画像についてマーカ１２０の認識が失敗しており、且つ他の撮像装置による撮像画像についてマーカ１２０の認識が成功している場合、ステップＳ６１０を介してステップＳ６２０に進む。
【００７２】
ステップＳ６２０では、指標協調認識部１７０は、認識に成功したマーカの４頂点の３次元座標値Vcを、マーカの認識に失敗した撮像画像上の２次元座標値Ic'に変換する。そして、このようにして求められた２次元座標値のうち、１つのマーカの４頂点の組の座標値Ic'と、４頂点の２次元座標値Icと、で最も画像上の距離が近い点をセットにする。そしてセット中の２点間の距離を求め、更に、セット毎に求めた距離の平均値を求める。
【００７３】
次に、そして、求めた平均値が閾値よりも小さい場合には、処理はステップＳ６３０を介してステップＳ６４０に進める。一方、求めた平均値が閾値以上であれば、本処理は終了する。
【００７４】
ステップＳ６４０では、指標協調認識部１７０は、座標値Ic'は、２次元座標値Icを４隅とするマーカと同じマーカの４隅の座標値を示していると判断し、このマーカのＩＤとセットにして座標値Ic'を記憶部１４０に登録する。
【００７５】
次にステップＳ６５０では、指標協調認識部１７０は、座標値Ic'を用いて、指標識別部１６０が行うものとして上述した各処理に基づいて、認識を失敗した撮像画像上におけるマーカ１２０を認識する。そして認識したマーカ１２０を用いて、指標識別部１６０が行うものとして上述した各処理を実行することで、認識を失敗した撮像画像を撮像した撮像装置とマーカ１２０との相対位置姿勢を推定する。そして推定した位置姿勢を、マーカ１２０のＩＤと共に、記憶部１４０に格納する。
【００７６】
以上の説明により、本実施形態によれば、複数の撮像装置のうちの一部が「マーカの検出失敗」の状態であっても、相対位置姿勢が既知の他の撮像装置とマーカ情報を共有することにより、マーカの認識を行うことが可能となる。
【００７７】
なお、本実施形態では、撮像装置の数は２としているが、これ以上の数の撮像装置を用いても良く、その場合には、それぞれの撮像装置毎に同様の処理を行えばよい。
【００７８】
［第２の実施形態］
第１の実施形態では、「マーカの検出失敗」に対処するための方法を述べたが、本実施形態では、「マーカの誤認識」に対処する。
【００７９】
なお、以下説明する点以外については第１の実施形態と同じである。
【００８０】
図７は、撮像装置１１０Ｒ、１１０Ｌのそれぞれから取得した撮像画像中のマーカを認識する処理のフローチャートである。なお、図７のフローチャートに従った処理は、認識したマーカを用いて、撮像装置１１０Ｒ、１１０Ｌの位置姿勢情報を求めるための処理の一部として動作する。
【００８１】
ステップＳ７２０では、指標協調認識部１７０は、認識を失敗している撮像画像について、認識が成功しているマーカについての上記各情報を用いて、認識を失敗している撮像画像について再度、マーカの認識処理を行う（協調認識処理）。
【００８２】
図８は、ステップＳ７２０における処理の詳細を示すフローチャートである。
【００８３】
ステップＳ８１０では、認識したそれぞれのマーカについて、このマーカを撮像した撮像装置以外の撮像装置を基準とする座標系における座標位置を求める。図１の場合、撮像装置１１０Ｒにより撮像されたマーカについて、撮像装置１１０Ｌを基準とする座標系２１０Ｌにおける座標位置を求める。更に、撮像装置１１０Ｌにより撮像されたマーカについて、撮像装置１１０Ｒを基準とする座標系２１０Ｒにおける座標位置を求める。
【００８４】
次にステップＳ８２０では先ず、自撮像装置を基準とする座標系におけるマーカの座標位置Ｘと、他撮像装置を基準とする座標系におけるマーカの座標位置を自撮像装置を基準とする座標系における座標位置に変換した結果Ｙとで対応付けを行う。即ち、４頂点の組の座標位置Ｘと、４頂点の座標位置Ｙと、で最も距離が近い点をセットにする。そしてセット中の２点間の距離を求め、更に、セット毎に求めた距離の平均値を求める。そして、求めた平均値が閾値よりも小さい場合、処理をステップＳ８３０に進める。一方、求めた平均値が閾値以上である場合には、本処理を終了させる。
【００８５】
ステップＳ８３０では、座標位置ＸにおけるマーカのＩＤと、座標位置ＹにおけるマーカのＩＤとを記憶部１４０から取得し、取得したそれらを比較することで、それぞれが同じＩＤであるのかを判断する。係る判断の結果、同じＩＤであると判断した場合には本処理を終了する。一方、同じＩＤではないと判断した場合には、処理をステップＳ８４０に進める。
【００８６】
ステップＳ８４０では、ＩＤが同一になっていない原因をマーカの誤同定だと判断し、信頼性の最も高いＩＤを選択して統一する。ここでＩＤの信頼性を求める方法として、例えば、次のような方法を用いる。即ち、撮像装置に映り込むマーカの識別領域の画素数（数値が大きい方が良い）、撮像装置とマーカの相対姿勢の深さ（数値が小さい方が良い）、撮像装置とマーカの距離（数値が小さい方が良い）のうち何れか１つ、又は２つ以上の組み合わせを用いる。本実施形態では、各マーカのうち、前述した３つの順位が総合的に高いマーカのＩＤを信頼性が高いものと見なす。
【００８７】
次に、ステップＳ８５０では、ステップＳ８４０で求めた信頼性の高いＩＤとＩＤが異なるマーカを誤認識されたマーカであると見なし、記憶部１４０内の誤認識されたＩＤを、信頼性の高いＩＤに置き換える。
【００８８】
即ち、上記処理は、異なる識別情報を有する指標同士の差分が閾値よりも小さい場合には、異なる識別情報を統一する処理である。
【００８９】
以上の説明により、本実施形態によれば、複数の撮像装置のうちの一部が「マーカの誤検出」を起こしても、同一のマーカを相対位置姿勢が既知の他の撮像装置とマーカ情報を共有することにより、正しいマーカの認識が可能になる。
【００９０】
また、マーカの誤認識を防ぐことで、世界座標系における撮像装置の位置姿勢を求める場合や、世界座標系における計測対象物の位置姿勢を求める場合に正確な推定が行えるようになる。
【００９１】
［第３の実施形態］
上記実施形態では、それぞれの撮像画像からマーカを検出し、マーカ頂点の変換により同一マーカを同定する方法を用いてマーカの認識の失敗に対処する方法を示した。しかし、各撮像装置で捉えた同一のマーカ候補領域（ビット３２０Ａ〜３２０Ｄで囲む矩形領域）をそれぞれ２次元射影変換（Homography）により正方形に射影し、射影した複数の画像を平均した画像からマーカのＩＤを認識してもよい。この方法を用いることで、ＩＤの認識時に撮像時に入るノイズをなますことができ、ノイズによるマーカの検出失敗やマーカの誤認識を防ぐことができる。
【００９２】
なお、以下説明する点以外については第１の実施形態と同じである。
【００９３】
図９は、ステップＳ７２０における処理の詳細を示すフローチャートである。
【００９４】
第１の実施形態で説明した平均値が閾値よりも小さい場合には、処理はステップＳ６３０を介してステップＳ９２０に進める。一方、求めた平均値が閾値以上であれば、処理はステップＳ６３０を介してステップＳ６５０に進める。
【００９５】
ステップＳ９２０では、正規化画像Ｔをそれぞれ取得し、複数の正規化画像Ｔに対して平均化を行う。即ち、各正規化画像Ｔで同じ画素位置における画素の画素値を合計し、その合計値を正規化画像Ｔの数で割った結果を、この画素位置における画素値とする。このようにして、生成される画像を平均正規化画像と呼称する。
【００９６】
画像の平均化を行ったあとに再度ステップＳ５３０内のＩＤ認識処理を行うことで、ノイズの影響によりマーカの検出失敗により認識できなかったＩＤを認識したり、誤認識したＩＤを修正することができる。
【００９７】
［第４の実施形態］
第３の実施形態では、正規化画像Ｔの平均正規化画像を用いることでノイズによる誤認識を防ぐ方法を説明したが、正規化画像Ｔの画像情報から高解像度化画像を生成し、解像度不足によるマーカの誤認識やマーカの検出失敗に対処してもよい。
【００９８】
なお、以下説明する点以外については第１の実施形態と同じである。
【００９９】
本実施形態は、ステップＳ９２０における処理を以下のように変更したものとなる。
【０１００】
ステップＳ９２０では、正規化画像Ｔの画像情報から高解像度化画像を生成する。係る生成方法は、例えば、「青木  伸：” 複数のデジタル画像データによる超解像処理”, Ricoh Technical Report No.24, NOVEMBER, 1998．」に開示の手法を用いる。すなわち、画像データを信号として見なし、画像データの折り返し成分も含めた信号をローパスフィルタにより広帯域補間を行い高密度化し、更に、高密度化データに加重和を加えて折り返し歪みを打ち消し、同時に原信号の高周波成分を復元する方法を用いる。
【０１０１】
この高解像度化画像を用いることで、マーカ候補領域の解像度不足による誤認識を防ぐことができる。
【０１０２】
なお、本実施形態は高解像度化の手法に限定されるものではなく、正規化画像Ｔの画像情報を改善する手法であれば良い。
【０１０３】
［第１〜第４の実施形態の変形例］
上記各実施形態では、正方形の外形の内部にIDコード領域を持つマーカを用いていたが、外形をもつマーカを用いることに限定されるものではなく、例えば、特許文献１に開示されているような、外形を持たないマーカを用いても良い。即ち、長方形のバーと４点の特徴点と特徴点内部の２次元バーコード部から構成されるマーカ（第２のマーカ）を用いても良い。
【０１０４】
第２のマーカを用いる場合、画像処理装置１００を構成する指標外形検出部１５０を、特許文献１に開示されている２次元コードデータの検出を行うユニットに変更する。即ち、撮像画像の２値化を行い、黒色画素連結領域を決定する。さらに、認識処理の基準となる長方形のロゴマークセル部を検出し、所定の探索範囲内のコーナーセルを検出し、検出した各４点をビット３２０Ａ〜３２０Ｄとして登録する。
【０１０５】
そして指標識別部１６０では、求めたコーナーセルとしてのビット３２０Ａ〜３２０Ｄを用いて、特許文献１に開示の方法で指標のコードを読み出し、識別する。
【０１０６】
その他の処理は、第１の実施形態と同じである。
【０１０７】
［第５の実施形態］
第２の実施形態では、ステップＳ８４０の処理において、撮像装置とマーカの相対位置姿勢の要因から信頼性を算出した。しかし、この相対位置姿勢の要因ではなく、あらかじめ記憶部１４０に格納されている実空間上に配置されたマーカのＩＤリストを取得して誤認識ＩＤを排除する方法を用いてもよい。なお、本実施形態では、ＩＤリスト内にないＩＤを誤認識されたＩＤとして除外する方法をマーカのＩＤの統一方法として用いているが、第２の実施形態の相対位置姿勢の要因による統一方法と組み合わせてもよい。すなわち、ステップＳ８４０の信頼性の評価を決める処理において、ＩＤリストにないＩＤが合った場合は、信頼性の評価をせず、ＩＤ候補から削除する方法である。
本実施形態のマーカ認識処理装置における装置の構成は、第一の実施形態の構成と同一であるため説明は省略する。
本実施形態のマーカ認識処理装置における処理の手順は、第２の実施形態のステップＳ８４０の処理中で、ＩＤの信頼性を求める処理がＩＤリスト内のＩＤと比較する処理に変わる部分のみが異なる。ＩＤリストとの比較により、誤認識ＩＤを削除し、最終的にＩＤが１つに特定できた場合はそのＩＤを信頼性の高いＩＤとして登録する。また、誤認識ＩＤを削除しても複数のＩＤ候補が存在する場合は、ＩＤの統一をせず処理を終了する。
【０１０８】
［第６の実施形態］
図１に示した画像処理装置１００を構成する各部は、ハードウェアとして構成しても良いが、記憶部１４０を除く他の各部をソフトウェアで構成しても良い。この場合、画像処理装置１００には、係るソフトウェアを実行する実行部と、係るソフトウェアを格納する格納部とが必須な構成用件となる。
【０１０９】
図１０は、画像処理装置１００に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【０１１０】
ＣＰＵ１００１は、ＲＡＭ１００２やＲＯＭ１００３に格納されているプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、本コンピュータを適用する画像処理装置１００が行うものとして上述した各処理を実行する。
【０１１１】
ＲＡＭ１００２は、外部記憶装置１００６からロードされたプログラムやデータ、Ｉ／Ｆ（インターフェース）１００７を介して外部から受信したデータ等を一時的に記憶するためのエリアを有する。更に、ＲＡＭ１００２は、ＣＰＵ１００１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ１００２は各種のエリアを適宜提供することができる。なお、ＲＡＭ１００２は、図１の記憶部１４０として機能しても良い。
【０１１２】
ＲＯＭ１００３は、本コンピュータの設定データや、ブートプログラムなどを格納する。
【０１１３】
操作部１００４は、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ１００１に対して入力することができる。
【０１１４】
表示部１００５は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１００１による処理結果を画像や文字等でもって表示する。
【０１１５】
外部記憶装置１００６は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置１００６には、ＯＳ（オペレーティングシステム）や、図１に示した指標外形検出部１５０、指標識別部１６０、指標協調認識部１７０の機能をＣＰＵ１００１に実行させるためのプログラムが保存されている。
【０１１６】
また、外部記憶装置１００６には、記憶部１４０に記憶されているものとして説明した上記各種の情報も保存されている。即ち、外部記憶装置１００６は、記憶部１４０としても機能する。
【０１１７】
外部記憶装置１００６に保存されているプログラムやデータは、ＣＰＵ１００１による制御に従って、適宜ＲＡＭ１００２にロードされる。そして、ＣＰＵ１００１が、ＲＡＭ１００２にロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは、画像処理装置１００が行うものとして上述した各処理を実行することになる。
【０１１８】
Ｉ／Ｆ１００７は、図１に示した画像入力部１３０として機能し、上記撮像装置１１０Ｒ、１１０Ｌから送出された撮像画像は、このＩ／Ｆ１００７を介して外部記憶装置１００６やＲＡＭ１００２に入力される。
【０１１９】
１００８は、上述の各部を繋ぐバスである。
【０１２０】
なお、上記各実施形態における構成は、その目的とするところが如何なるものであっても、複数の指標が配された現実空間を撮像する撮像装置が複数接続された画像処理装置であることが前提となる。そして係る画像処理装置の主要な構成は、次のようなものとなる。即ち、撮像画像中の指標を認識し、この撮像画像を撮像した撮像装置を基準とした座標系における、認識した指標の配置位置を求める処理を、それぞれの撮像装置毎に行う計算部を有する。更に、指標に固有の識別情報と、この指標の配置情報とを含む指標情報を管理する管理部を有する。更に、注目撮像装置による撮像画像中の注目指標の認識を失敗した、若しくは誤認識した場合には、注目撮像装置以外の撮像装置が撮像した撮像画像に対する計算部による結果に基づいて、管理部による注目指標に対する管理内容を変更する変更部を有する。
【０１２１】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１２２】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２３】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２４】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１２５】
【図１】本発明の第１の実施形態に係るシステムの機能構成を示すブロック図である。
【図２】撮像装置１１０Ｒ、１１０Ｌ、マーカ１２０のそれぞれに対して設定されている座標系を説明する図である。
【図３】マーカ１２０の一例を示す図である。
【図４】撮像装置１１０Ｒ、１１０Ｌのそれぞれによる撮像画像の一例を示す図である。
【図５】撮像装置１１０Ｒ、１１０Ｌのそれぞれから取得した撮像画像中のマーカを認識する処理のフローチャートである。
【図６】ステップＳ５５０における処理の詳細を示すフローチャートである。
【図７】撮像装置１１０Ｒ、１１０Ｌのそれぞれから取得した撮像画像中のマーカを認識する処理のフローチャートである。
【図８】ステップＳ７２０における処理の詳細を示すフローチャートである。
【図９】ステップＳ７２０における処理の詳細を示すフローチャートである。
【図１０】画像処理装置１００に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【図１】
0004876056.tif 000002
【図２】
0004876056.tif 000003
【図３】
0004876056.tif 000004
【図４】
0004876056.tif 000005
【図５】
0004876056.tif 000006
【図６】
0004876056.tif 000007
【図７】
0004876056.tif 000008
【図８】
0004876056.tif 000009
【図９】
0004876056.tif 000010
【図１０】
0004876056.tif 000011