(57)【特許請求の範囲】
【請求項１】
測位用マーカが配置された実環境を撮影する撮像装置と、該撮像装置により撮影された画像の処理を行う演算装置とを備え、
前記測位用マーカは、形状およびサイズが同一の複数のエレメントが直列に配置されて成るマーカであって、前記複数のエレメントは、色相、彩度、若しくは明度によりｑ種に分類され、該複数のエレメントは、前記ｑを記号数とし、ｎを次数としたときに、長さｑnのデブルーイン系列を成し、
前記演算装置は、前記撮像装置により撮影された画像からエッジを抽出したエッジ抽出画像を生成し、該エッジ抽出画像から直線部分を検出し、さらに、前記検出された直線部分毎に回転行列の計算および符号の検出を行って計算された並進ベクトルを用いて画像座標系と撮像装置座標系の位置合わせを行う、
ことを特徴とする、撮像装置の位置・姿勢推定システム。
ここで、上記ｑ及びｎは何れも２以上の自然数である。
【請求項２】
前記エレメントの形状は正方形若しくは長方形である、請求項１に記載の撮像装置の位置・姿勢推定システム。
【請求項３】
前記デブルーイン系列と並列に、該デブルーイン系列と同一長さのマーカが配置されている、請求項１又は２に記載の撮像装置の位置・姿勢推定システム。
【請求項４】
前記デブルーイン系列と同一長さのマーカは、複数のエレメントが第２のデブルーイン系列を成すように配置されたマーカである、請求項３に記載の撮像装置の位置・姿勢推定システム。
【請求項５】
前記撮像装置はＲＧＢ−Ｄカメラであり、
前記測位用マーカは前記複数のエレメントをＸ軸方向に帯状に配列したものであり、
前記演算装置は、前記複数のエレメントの配列方向の直線検出に基づいて、Ｘ軸方向の直線部分を検出し、該直線部分毎に前記回転行列の計算及び符号の検出を行う、
請求項１乃至４の何れか１項に記載の撮像装置の位置・姿勢推定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラ等の撮像装置の位置・姿勢を推定するための技術に関し、特に、撮像装置で得られた２次元画像から物体の３次元形状を復元する際に好適なマーカに関する。
【背景技術】
【０００２】
近年、スマートフォン等の高い演算能力を備えたモバイルデバイスが急速に普及してきている。これらの情報端末の殆どは撮像装置としてのカメラを備えており、単に音声情報や文字情報による通信機能のみならず、画像情報による通信機能を備えている。このようなモバイルデバイスの普及にともない、対象物体を端末のカメラで撮影すると当該対象物体に関する解説が画像に重畳して表示されるといったような拡張現実感（Augmented Reality: AR）と呼ばれる技術や撮影された画像から被写体の３次元形状を復元する技術が身近なものとなってきている。
【０００３】
このような技術では、２次元画像に映し出された環境の座標系と実環境の座標系の合わせ込みを行うが、その際、ユーザ（カメラ）の位置・姿勢を正確に把握することが必要となる。
【０００４】
このため、ＡＲ技術の分野では、実環境に位置、形状、色が既知のマーカを予め配置させておき、これをカメラで撮影し、その画像を解析することでカメラの位置・姿勢を推定する手法が提案されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「デブルーイン系列とBelief-Propagationを用いた高密度ラインパターン検出による高速動体の3次元計測手法」大田雄也、川崎俊央、佐川立昌、古川亮、川崎洋、八木康史、「画像の認識・理解シンポジウム（MIRU2009）」2009年7月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このようなマーカとしては一般に矩形のマーカが用いられるが、カメラがマーカから離れるにつれて画像中に映し出されるマーカ領域のサイズは小さくなり、その結果、カメラの位置・姿勢の推定の精度が落ちたり推定不能となるという問題がある。
【０００７】
このような不都合を解消するために、環境中に多数のマーカを配置させておくという提案もなされているが、この場合には、予め、これらの各マーカの位置・姿勢を既知としておくための測量が必要となり、手間がかかるという問題がある。
【０００８】
本発明は上述した問題に鑑みてなされたもので、その目的とするところは、単一のマーカでありながらも実環境の広い空間内においてカメラ等の撮像装置の位置・姿勢を精度よく推定することを可能とする測位用マーカ、および、これを用いた撮像装置の位置・姿勢推定システムを提供することにある。
【課題を解決するための手段】
【０００９】
上述の課題を解決するために、本発明に係る測位用マーカは、形状およびサイズが同一の複数のエレメントが直列に配置されて成るマーカであって、前記複数のエレメントは、色相、彩度、若しくは明度によりｑ種に分類され、該複数のエレメントは、前記ｑを記号数とし、ｎを次数としたときに、長さｑnのデブルーイン系列を成す、ことを特徴とする。ここで、ｑ及びｎは何れも２以上の自然数である。
【００１０】
本発明に係る撮像装置の位置・姿勢推定システムは、測位用マーカが配置された実環境を撮影する撮像装置と、該撮像装置により撮影された画像の処理を行う演算装置とを備え、前記測位用マーカは、形状およびサイズが同一の複数のエレメントが直列に配置されて成るマーカであって、前記複数のエレメントは、色相、彩度、若しくは明度によりｑ種に分類され、該複数のエレメントは、前記ｑを記号数とし、ｎを次数としたときに、長さｑnのデブルーイン系列を成し、前記演算装置は、前記撮像装置により撮影された画像からエッジを抽出したエッジ抽出画像を生成し、該エッジ抽出画像から直線部分を検出し、さらに、前記検出された直線部分毎に回転行列の計算および符号の検出を行って計算された並進ベクトルを用いて画像座標系と撮像装置座標系の位置合わせを行う、ことを特徴とする。ここで、上記ｑ及びｎは何れも２以上の自然数である。
【００１１】
本発明において、好ましくは、前記エレメントの形状は正方形若しくは長方形である。
【００１２】
また、好ましくは、前記デブルーイン系列と並列に、該デブルーイン系列と同一長さのマーカが配置されている。
【００１３】
さらに、好ましくは、前記デブルーイン系列と同一長さのマーカは、複数のエレメントが第２のデブルーイン系列を成すように配置されたマーカである。
【００１４】
本発明に係る好ましい態様の撮像装置の位置・姿勢推定システムでは、前記撮像装置はＲＧＢ−Ｄカメラであり、前記測位用マーカは前記複数のエレメントをＸ軸方向に帯状に配列したものであり、前記演算装置は、前記複数のエレメントの配列方向の直線検出に基づいて、Ｘ軸方向の直線部分を検出し、該直線部分毎に前記回転行列の計算及び符号の検出が行われる。
【発明の効果】
【００１５】
本発明の測位用マーカは、複数のエレメントがデブルーイン系列を成すように直列に配置されて成る。デブルーイン系列は、コードの一部を観察すれば、コード中の位置が一意に特定される。つまり、複数のエレメントがデブルーイン系列を成す測位用マーカの一部が画像中に撮影されていれば、当該マーカの一部のコード中の位置が特定でき、これを基に画像座標系と撮像装置座標系の位置合わせを行って撮像装置の位置・姿勢を推定することができる。このため、本発明の測位用マーカを用いることにより、単一のマーカでありながらも実環境の広い空間内においてカメラ等の撮像装置の位置・姿勢を精度よく推定することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る測位用マーカのパターンを例示した図である。
【図２】湾曲しない材質の板等の表面にデブルーイン系列パターンが貼り付け若しくは印刷等された測位用マーカを示す図である。
【図３】デブルーイン系列パターンを有する測位用マーカが映った画像の各ピクセルを特定するための２次元座標系（ｕ，ｖ）とカメラ座標系（Ｘ、Ｙ，Ｚ）との関係を例示により説明するための図である。
【図４】パターンを構成するエレメントの長さ及び幅の定義付けを説明するための図である。
【図５】ＲＧＢ−Ｄカメラを用いて得られた画像を処理して回転行列と並進ベクトルを計算するフローを説明するフローチャートである。
【図６】本発明に係る測位用マーカの一部が映った画像の例である。
【図７】グレースケール画像が有する、［ｘ（ｕ，ｖ）］、［ｙ（ｕ，ｖ）］、および［ｚ（ｕ，ｖ）］の座標情報（距離の情報）グレースケールで表示した画像である。
【図８】グレースケール画像から抽出されたエッジを示す図である。
【図９】エッジ抽出画像から抽出された直線（線分）を示す図である。
【図１０】ピクセル毎に得られる単位法線ベクトルφ、単位直線ベクトルα、およびこれらに直交するベクトルβを説明するための図である。
【図１１】単位直線ベクトルαに沿った周辺ピクセルの再サンプリングに用いられる２本の直線を説明するための図である。
【図１２】＋Ｗｓ／２、−Ｗｓ／２および＋Ｗｓの３本の直線、および、検出されたコードの頂点（○印）を例示する図である。
【図１３】位相θを説明するための図である。
【図１４】位相θを求めるために再サンプリングを行った結果を示す図で、横軸には端点からベクトルαに沿ったＸ軸方向の長さをＷｃで割った余りをとり、縦軸には勾配強度を示したグラフである。
【図１５】符号検出のための再サンプリング結果を示す図で、横軸には端点からベクトルαに沿ったＸ軸方向の長さをとり、縦軸には輝度値を示したグラフである。
【図１６】ＲＧＢカメラを用いて得られた画像を処理して回転行列と並進ベクトルを計算するフローを説明するフローチャートである。
【図１７】画像に映し出された測位用マーカから、コード列方向の直線（縦線）と横線を検出し、その交点を求めた図である。
【発明を実施するための形態】
【００１７】
以下に、図面を参照して本発明の測位用マーカ、および、これを用いた撮像装置の位置・姿勢推定手法について説明する。
【００１８】
［測位用マーカに用いるデブルーイン系列パターン］
図１（ａ）〜（ｅ）は、本発明に係る測位用マーカのパターンを例示した図である。図１（ａ）に示したものは、３２のエレメントが一列に配置されて成り（３２ビット）、各エレメントは同一サイズの同一形状（矩形）とされ、黒若しくは白の何れかの色彩を有している。これらのエレメントの配列は、黒を０、白を１とすると、記号数ｑ＝２の有限集合Ｘ＝10010000011011111010011100010101のコード列を形成しており、当該コード列は次数ｎ＝５のデブルーイン系列（２5＝３２）である。ここで、長さｎ、記号数ｑのデブルーイン系列は、長さｑnの数列であり、長さｎの部分数列を観測すれば、数列中の位置が一意に特定可能である。
【００１９】
なお、この例ではエレメントを、色相を含まない彩度＝０の黒若しくは白の２種に分類しているが、これに限定されるものではなく、色相、彩度、若しくは明度により３種以上に分類するようにしてもよい。この場合には、上記記号数ｑは３以上の整数となる。また、上記次数ｎも５である必要はなく、撮影する実環境の広さに応じて、適宜、２以上の自然数とされる。
【００２０】
また、このようなデブルーイン系列を構成するエレメントは、菱形等でもよいが、画像座標系と撮像装置座標系の位置合わせを行うための演算処理をより簡易なものとする観点からは、正方形若しくは長方形であることが好ましい。
【００２１】
さらに、本発明に係る測位用マーカのパターンは、図１(ａ)に例示したような、エレメントを一列に配置した態様に限定されるものではなく、当該デブルーイン系列と並列に、他のデブルーイン系列を配置するようにしてもよい。この場合には、両者のデブルーイン系列のコードの長さは同一とする。
【００２２】
図１（ｂ）は、その一例を示す図で、下段のデブルーイン系列は記号数ｑ1＝２の有限集合Ｘ1＝10010000011011111010011100010101のコード列を形成しており、上段のデブルーイン系列は、同じく記号数ｑ2＝２ではあるが、下段のデブルーイン系列の白黒を反転させた有限集合Ｘ2＝01101111100100000101100011101010のコード列を形成している。つまり、下段と上段のデブルーイン系列は、長さは同じではあるが異なるコード列とされる。
【００２３】
図１（ｃ）は、他の例を示す図で、下段のデブルーイン系列は記号数ｑ1＝２の有限集合Ｘ1＝10010000011011111010011100010101のコード列を形成しており、中段のデブルーイン系列は記号数ｑ2＝２の有限集合Ｘ2＝01101111100100000101100011101010のコード列を形成しており、さらに、上段のパターンは、記号数ｑ3＝２の有限集合Ｘ3＝01010101010101010101010101010101のコード列を形成している。つまり、下段および中段のデブルーイン系列および上段のパターンは何れも、長さは同じではあるが異なるコード列とされる。
【００２４】
図１（ｄ）は、図１(ａ)に例示した測位用マーカのパターンと並列に、これと同じ長さの黒バンドパターンを配置した態様を説明する図で、このような単色のバンドパターンはデブルーイン系列を成すものではないが、後述する記号数ｑ＝１の有限集合Ｘ＝00000000000000000000000000000000のコード列として取り扱うこともできる。
【００２５】
図１（ｅ）は、色相により情報（記号数ｑ）を増やした例で、下段は、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３色のエレメントを一列に配置した記号数ｑ＝３で次数ｎ＝３の２７ビットのデブルーイン系列を成すパターンであり、これと並列に、上記２７ビットのデブルーイン系列と同じ長さの黒バンドパターンを配置した態様を説明する図である。
【００２６】
図１（ｂ）〜（ｅ）に図示したように、図１（ａ）に示したような最も基本的な態様のデブルーイン系列マーカと並列に、該デブルーイン系列と同一長さのマーカを配置すると、後述の直線（線分）抽出作業が容易となり、画像座標系と撮像装置座標系の位置合わせ精度を高めることができる。
【００２７】
なお、撮像装置としてＲＧＢ-Ｄカメラを用いる場合には深度の情報（画像中の各ピクセルについての被写体とカメラとの距離の情報）が得られるが、ＲＧＢカメラで得られた画像からはかかる深度情報を得ることができないため、画像からは測位用マーカに垂直なベクトル（法線ベクトル）を決定することができない。このため、実環境をＲＧＢカメラで撮影する場合には、後述する画像処理において抽出される直線部分（線分）およびその交点の情報がなるべく多く取れるような、パターン、具体的には図１（ｃ）に示したようなパターンとすることが好ましい。
【００２８】
［測位用マーカ］
本発明では、上述のデブルーイン系列パターンを用いたマーカを用いて画像座標系と撮像装置座標系の位置合わせを行い、この測位用マーカが配置された実環境が映し出された画像から撮像装置の位置・姿勢を推定する。
【００２９】
図２に示したように、上記デブルーイン系列パターン（１０）は湾曲しない材質の板等（２０）の表面に貼り付け若しくは印刷等され、これを測位用マーカとする。なお、図中に示したＸＹＺは、カメラ座標系のＸ軸、Ｙ軸、およびＺ軸である。
【００３０】
図３（ａ）はこのような測位用マーカが映った画像の各ピクセルを特定するための２次元座標系（ｕ，ｖ）を、図３（ｂ）は当該画像座標系とカメラ座標系（Ｘ、Ｙ，Ｚ）との関係を例示により説明するための図である。
【００３１】
なお、後述する説明では、パターンを構成する各エレメントの長さ及び幅を、図４に例示したように定義付けする。第１のデブルーイン系列は長辺がＷｌで短辺がＷｃの矩形のエレメントを配列させたもので、第２のデブルーイン系列は長辺がＷｓで短辺がＷｃの略正方形のエレメントを配列させたものである。
【００３２】
この測位用パターンは図１（ｂ）に示したものと同じコード列を有しており、第１のデブルーイン系列と第２のデブルーイン系列では、白黒が反転されている。この白黒反転により、Ｘ軸の決定が容易となる。また、第１のデブルーイン系列と第２のデブルーイン系列で長辺の長さを異ならせているのは、Ｚ軸の決定を容易とするためである。Ｘ軸とＺ軸が決定されれば、両者の積を求めることでＹ軸が決定されることになる。
【００３３】
［画像処理：ＲＧＢ−Ｄカメラを用いる場合］
カメラの位置・姿勢を推定するためには、画像座標系と撮像装置座標系の位置合わせを行うための、回転行列と並進ベクトルを計算する必要がある。本発明に係る測位用マーカの最も特徴的な点は、エレメントの配列によりデブルーイン系列が構成されているため、マーカの一部を撮影するだけで、並進ベクトルのＸ軸を決めることができることにある。上述したように、デブルーイン系列を利用したマーカにはＸ軸やＺ軸を認識し易くするための種々の態様があり得るが、以下では白黒のパターンを用いた場合について説明する。
【００３４】
回転行列と並進ベクトルの計算は、測位用マーカが配置された実環境を撮影する撮像装置により撮影された画像の処理を行う演算装置により行われる。この演算装置により、撮影画像からエッジを抽出したエッジ抽出画像が生成され、該エッジ抽出画像から直線部分が検出され、さらに、検出された直線部分毎に回転行列の計算および符号の検出を行うことで計算された並進ベクトルを用いて画像座標系と撮像装置座標系の位置合わせが行われる。
【００３５】
図５は、ＲＧＢ−Ｄカメラを用いて得られた画像を処理して回転行列と並進ベクトルを計算するフローを説明するフローチャートである。
【００３６】
先ず、ＲＧＢ−Ｄカメラで撮影した画像を入力する（Ｓ１０１）。ＲＧＢ−Ｄカメラは深度センサを備えているため、これにより得られた画像からは、ＲＧＢの輝度情報に加えて、各ピクセルについて被写体の深度情報、すなわち距離の情報が取得できる。
【００３７】
画像座標系で（ｕ，ｖ）に位置するピクセルからは、ＲＧＢの輝度値［ｒ（ｕ，ｖ），ｇ（ｕ，ｖ），ｂ（ｕ，ｖ）］と、被写体がカメラ座標系で有する座標［ｘ（ｕ，ｖ），ｙ（ｕ，ｖ），ｚ（ｕ，ｖ）］が抽出し得る。測位用マーカのパターンが白黒コードからなる場合には、ＲＧＢ情報は必須ではないから元画像はグレースケールの画像でもよい。この場合、輝度情報は単一の輝度値［Ｉ（ｕ，ｖ）］のみとなる。
【００３８】
図６は、本発明に係る測位用マーカの一部が映った画像の例である。この画像には机と椅子の一部が映っており、測位用マーカは机上に置かれ、デブルーイン系列を成すエレメント列の一部が映っている。
【００３９】
この画像がＲＧＢ画像である場合、グレースケールの画像を抽出する（Ｓ１０２）。抽出されたグレースケール画像では、座標（ｕ，ｖ）に位置するピクセル毎に輝度値［Ｉ（ｕ，ｖ）］が対応図けられることになる。また、これらのピクセルは、カメラ座標系で有する座標［ｘ（ｕ，ｖ）］、［ｙ（ｕ，ｖ）］、および［ｚ（ｕ，ｖ）］の情報を有している。
【００４０】
図７（ａ）〜（ｃ）はそれぞれ、上記グレースケール画像が有する、［ｘ（ｕ，ｖ）］、［ｙ（ｕ，ｖ）］、および［ｚ（ｕ，ｖ）］の座標情報（距離の情報）グレースケールで表示した画像である。
【００４１】
次に、グレースケール画像からエッジを抽出する（Ｓ１０３）。画像内のピクセルは全て、色情報（ここでは輝度情報）を有しているから、その輝度が急激に変化する場所をエッジとして抽出し、画像中に映ったオブジェクトの輪郭を算出する。このエッジ抽出（エッジ検出）は、例えばソーベル法、ロバーツ法、ガウスのラプラシアン法、ゼロクロス法、キャニー法などで実行する。
【００４２】
ソーベル法では微分係数にソーベル近似値を使用してエッジが検出され、ロバーツ法では微分係数にロバーツ近似値を使用してエッジが検出され、ガウスのラプラシアン法ではラプラシアンフィルタ処理後にゼロクロッシングを探すことでエッジが検出され、ゼロクロス法では輝度情報Ｉをフィルタ処理してからゼロクロッシングを探すことでエッジが検出され、キャニー法では輝度情報Ｉの勾配の局所的最大値を探すことでエッジが検出される。
【００４３】
図８は、上記のようにして抽出された画像中のエッジを示す図である。図６に示した画像中に映っている測位用マーカの外周縁および白黒パターンの境界線がエッジとして検出されている。このエッジ抽出画像から直線（線分）を抽出する（Ｓ１０４）。
【００４４】
図９は抽出された直線（線分）を示す図である。図中に示した○点および×点は線分の端点で、これら２つの端点を結ぶ直線が線分として検出されている。このような直線（線分）検出には、一般に、ハフ（Hough）変換が使われる。
【００４５】
Hough変換では、無限に存在する直線の中から画像の特徴点を最も多く通るものが線分として抽出されるが、本発明では、図８で抽出したエッジ（端点）の座標（ｕ，ｖ）を特徴点とし、２つの端点（ｕ1，ｖ1）、（ｕ2，ｖ2）を結ぶ直線が線分として検出されるが、線分の長さが閾値以下である場合には十分なコードが得られなかったりその後の処理を施しても十分な精度が得られないおそれがあるため、マーカではないと判断して線分としては抽出しない。
【００４６】
この後の処理は抽出された線分毎に行われる。
【００４７】
［回転行列の計算：法線ベクトルφの検出（Ｓ１０５）］
上記の処理で得られた線分から、距離Ｄh以内にあるピクセル（近傍ピクセル）の集合（Φ＝｛（ｕ，ｖ）｜ｄp2（ｕ，ｖ，ｕ1，ｖ1，ｕ2，ｖ2）＜Ｄh｝を抽出する。
【００４８】
ここで、Ｄhはマーカが写っている最低の幅を表す。また、ｄp2は線分からの距離を表す関数である。近傍ピクセルが画像の端にあるなどの理由で閾値以下の数しか集まらなかった場合にはマーカではないと判断する。
【００４９】
次に、ピクセルに対応した座標（［ｘ（ｕ，ｖ），ｙ（ｕ，ｖ），ｚ（ｕ，ｖ）］∈Φ）を平面に当てはめる。具体的には、関数ｚ＝ａ1＋ａ2ｘ＋ａ3ｙに対して線形回帰分析を行い、ａ＝［ａ1，ａ2，ａ3］を求める。但し、回帰分析の平均２乗誤差が閾値以上のときは線分の近傍が平面でないと考えられるため、処理対象である線分はマーカではないと判断する。
【００５０】
この処理に続き、平面の係数より、マーカのＹ軸を表す単位法線ベクトルφ＝［ａ2，ａ3，−１］T／｜［ａ2，ａ3，−１］｜を求める。
【００５１】
このような処理により、ピクセル毎に、図１０に示したような単位法線ベクトルφが得られる。
【００５２】
［回転行列の計算：直線ベクトルαの検出（Ｓ１０６）］
マーカ平面上にあり且つ端点を結ぶ単位ベクトルαを求める。端点に対応した座標を（ｘ1，ｙ1，ｚ1）、（ｘ2，ｙ2，ｚ2）とする。この直線ベクトルαは次式で計算できる。このベクトルαはマーカのＸ軸を表す。
【００５３】
α＝｛（ｘ1，ｙ1，ｚ1）−（ｘ2，ｙ2，ｚ2）｝／｜（ｘ1，ｙ1，ｚ1）−（ｘ2，ｙ2，ｚ2）｜
【００５４】
このような処理により、各ピクセル毎に、図１０に示したような単位直線ベクトルαが得られる。なお、この時点ではベクトルの方向（符号）がカメラ座標系のＸ軸の方向と反転している可能性がある。
【００５５】
［回転行列の計算：直交ベクトルβ＝φ×αの検出（Ｓ１０７）］
上記演算により得られた単位法線ベクトルφと単位直線ベクトルαに直交した単位ベクトルβ＝φ×αを求める。
【００５６】
この処理により、各ピクセル毎に、図１０に示したような単位直交ベクトルβが得られる。この直交ベクトルβはマーカのＺ軸を表すが、この時点ではベクトルの方向（符号）がカメラ座標系のＺ軸の方向と反転している可能性がある。
【００５７】
［符号の検出：回転の向きの検出（Ｓ１０８）］
上述した線分（ｘ1，ｙ1，ｚ1）、（ｘ2，ｙ2，ｚ2）のそれぞれにつき、コードのＺ軸方向の長さ（図４で示したＷｓ、Ｗｌ）を見分けることで回転の向きを検出する。この検出は、上述の単位直線ベクトルαに沿った周辺ピクセルを再度サンプリングし直すことで行われる。
【００５８】
具体的には、図１１にＬ１およびＬ２で示したような、マーカのＸ軸方向に±［Ｗｓ＋（Ｗｌ−Ｗｓ）／２］（＝±［Ｗｌ＋Ｗｓ］／２）だけずらした２本の直線で単位直線ベクトルαに沿った周辺ピクセルを再サンプリングする。なお、このときの再サンプリングの座標は、カメラ座標系で計算した後に画像中に再投映して決める。図１１に示した例では、再サンプリングは０．５ｍｍ間隔で行っている。
【００５９】
次に、ベクトルαおよびβの反転操作の要否判断を行い、反転操作が必要である場合にはベクトルの方向を反転させて新たにベクトルα若しくはβを定義し直す。
【００６０】
例えば、図１１に示した例では、直線Ｌ１は、長辺がＷｌのデブルーイン系列コード上にあるために当該直線上の輝度プロファイルは白黒にばらつく。一方、直線Ｌ２は、長辺がＷｓのデブルーイン系列コードから外れているために当該直線上の輝度プロファイルは白で一定である。このため、輝度値の標準偏差を調べることにより、コードのＺ軸方向の長さを見分けることができる。そこで、コードのＺ軸方向の長さが短い方から長い方になるように、必要に応じてベクトルβの方向を反転させ、ベクトル−βを新たにベクトルβとして定義し直す。同様の処理をベクトルαにも施し、当該ベクトルαの方向がＸ軸方向となるように、必要に応じて反転操作を行う。
【００６１】
ここで、２本の直線の輝度値の標準偏差が何れについても一定値以下である場合には、マーカではないと判定する。これは、マーカとは無関係な単純なエッジをマーカと誤認してしまうのを防ぐためである。
【００６２】
なお、このような判定の結果、本来はマーカの一部であるコードの部分列（例えば、11111や00000など）を使うことが難しくなってしまう。このような不都合は、認識に必要なビット数よりも冗長にビットを利用することで回避できる。
【００６３】
これらのベクトルαおよびβの反転操作に加え、端点の座標についても、マーカ原点に近いほうが（ｘ1，ｙ1，ｚ1）となるように、（ｘ1，ｙ1，ｚ1）と（ｘ2，ｙ2，ｚ2）の座標入れ替えを行っておく。
【００６４】
ここまでの処理により、マーカの回転行列Ｒ（＝［α，φ，β］）が確定する。
【００６５】
［符号の検出：位相の検出（Ｓ１０９）］
直線検出で検出された端点は必ずしもコードの頂点とは一致しない。そのずれの量を位相θ（ｍｍ）と呼ぶこととし、この位相θを検出する必要がある。
【００６６】
この位相の検出では、＋Ｗｓ／２、−Ｗｓ／２および＋Ｗｓの３本の直線を用い、図８に示したグレースケール画像から抽出されたエッジ（ライン）上の輝度の勾配強度を示す画像（勾配強度画像）を再サンプリングする。
【００６７】
図１２は、上述の＋Ｗｓ／２、−Ｗｓ／２および＋Ｗｓの３本の直線、および、検出されたコードの頂点（○印）を例示する図である。ここでは、この再サンプリングを、ベクトルαの方向に０．５ｍｍ間隔で行うこととする。なお、勾配強度画像の計算は一般的な方法で行うことができる。
【００６８】
図１３は、上記位相θを説明するための図で、図中に○印で示した点はコードの頂点であり、□印で示したものは画像処理で得られたエッジの端点である。位相θは、この図に示したように、コードの頂点（○印）とエッジの端点（□印）の距離（ずれ）で定義付けされる。
【００６９】
図１４は、上記の再サンプリングを行った結果を示す図で、横軸には端点からベクトルαに沿ったＸ軸方向の長さをＷｃ（１０ｍｍ）で割った余りをとり、縦軸には勾配強度を示したグラフである。このグラフは、サンプリング間隔（０．５ｍｍ）のビン（ｂｉｎ）となっており、各ビンで平均値を求め、平均値が最大となるビンを求める。このグラフのケースでは、図中に矢印で示したビン（横軸１ｍｍのビン）が平均値最大のビンである。従って、この例では、位相θは１ｍｍとされる。
【００７０】
［符号の検出：符号の検出（Ｓ１１０）］
上述の位相の検出と同様に、３本の直線を用いて再サンプリングを行う。但し、符号の検出では、輝度値に対して再サンプリングを行う。
【００７１】
図１５は、再サンプリング結果を示す図で、横軸には端点からベクトルαに沿ったＸ軸方向の長さ（ｍｍ）をとり、縦軸には輝度値を示したグラフである。なお、上述の＋Ｗｓ／２、−Ｗｓ／２および＋Ｗｓの３本の直線のうち、Ｚ軸が負（−Ｗｓ／２）に対応した直線についての輝度値Ｉは反転させ、（２５５−Ｉ）でプロットしている。
【００７２】
このグラフにつき、横軸のコード長Ｗｃ（＝１０ｍｍ）毎に平均値を求め、この値が閾値（１２８）よりも小さければ０とし、閾値以上であれば１として、ビット列を得る。この例では、ビット列Ｂd＝001110001010が得られる。
【００７３】
このビット列（001110001010）を、図１（ｂ）に示した下段のデブルーイン系列のオリジナルのコード列Ｂ0（＝10010000011011111010011100010101）と対比し、上記ビット列Ｂdの、オリジナルコード列Ｂ0中での位置を求める。
【００７４】
具体的には、ビット列Ｂd＝001110001010を、オリジナルコード列Ｂ0＝10010000011011111010011100010101に対して、１ビットずつずらしながらハミング距離を計算する。ビット列Ｂd＝001110001010は、オリジナルコード列Ｂ0中の10010000011011111010011100010101に対応している。ハミング距離が０となる移動量（ビット）をｒとすると、この例ではｒ＝１９となる。
【００７５】
［並進ベクトル（Ｔ）を計算（Ｓ１１１）］
上記回転行列の計算および符号検出の結果に基づき、並進ベクトル（Ｔ）を計算する。並進ベクトルＴはＴ＝（ｘ1，ｙ1，ｚ1）＋（ｒＷｃ＋θ）・αで与えられる。
【００７６】
［画像処理：ＲＧＢカメラを用いる場合］
ＲＧＢカメラを用いる場合には、深度の情報（画像中の各ピクセルについての被写体とカメラとの距離の情報）を得ることができないため、画像からは測位用マーカに垂直なベクトル（法線ベクトル）を決定することができない。このため、実環境をＲＧＢカメラで撮影する場合には、画像処理において抽出される直線部分（線分）およびその交点の情報がなるべく多く取れるような、図１（ｃ）に示したようなパターンを用いる。
【００７７】
図１６は、ＲＧＢカメラを用いて得られた画像を処理して回転行列と並進ベクトルを計算するフローを説明するフローチャートである。以下では、ＲＧＢ−Ｄカメラを用いた場合とは異なる点のみについて説明する。
【００７８】
［直線・交点の検出（Ｓ２０４、Ｓ２０５）］
図１７（ａ）に例示した画像に映し出された測位用マーカから、上述した直線（コード列方向の直線：縦線）の検出に加え、横線の検出も行い、縦線と横線の交点を求める（図１７（ｂ））。そして、直線上に乗っている交点の数が２個以上である直線をＸ軸方向の直線とし、それ以外の直線をＺ軸方向の直線とする。以降の処理は、これらの直線と交点の集合毎に個別に実行する。
【００７９】
［回転行列の計算（Ｓ２０６、Ｓ２０７）］
オリジナルのパターン列と比較してホモグラフィ行列を計算することで、回転行列が推定できる。この計算はＡＲの一般的手法であり、公知の方法で実行可能である。
【００８０】
［符号の検出（Ｓ２０８〜Ｓ２１０）］
マーカの最下段は白黒のビット列が並んでおり、これによりビットの幅を認識する。そして、このビット幅を用いて等間隔のビットを認識する。さらに、オリジナルの符号と比較することで、位置を計算する。
【００８１】
［並進ベクトル（Ｔ）を計算（Ｓ２１１）］
上記符号の検出で得られた位置を使って、並進ベクトルＴを計算する。
【００８２】
以上説明したように、本発明の測位用マーカは、複数のエレメントがデブルーイン系列を成すように直列に配置されて成る。デブルーイン系列は、コードの一部を観察すれば、コード中の位置が一意に特定される。つまり、複数のエレメントがデブルーイン系列を成す測位用マーカの一部が画像中に撮影されていれば、当該マーカの一部のコード中の位置が特定でき、これを基に画像座標系と撮像装置座標系の位置合わせを行って撮像装置の位置・姿勢を推定することができる。
【００８３】
このため、本発明の測位用マーカを用いることにより、単一のマーカでありながらも実環境の広い空間内においてカメラ等の撮像装置の位置・姿勢を精度よく推定することが可能となる。
【００８４】
本発明の測位用マーカは縦横比が比較的大きな矩形（細長い帯状の長方形）のものとして使用されることが多い。このような形状のマーカは、特に、撮像装置としてＲＧＢ−Ｄカメラを用いて撮影された画像の処理に好適である。
【００８５】
その理由は、第１に、上述した回転行列を求める処理において、ＲＧＢ−Ｄカメラで撮影された画像ではマーカ表面に設けられたピクセル（エレメント）の多くを使うことで、法線方向（Ｙ軸方向）を正確に計算できることにある。
【００８６】
第２に、符号方向（Ｘ軸方向）は長方形の長辺方向の直線検出に他ならないが、この方向も正確に検出することができる。なお、Ｚ軸方向はＸ軸およびＹ軸の方向から計算することができるから、ＸＹＺの３軸を正確に計算できることができる。
【００８７】
これらの事情は、計算精度が落ちやすい矩形の短辺方向の処理を不要とすることを意味するから、本発明の測位用マーカは、撮像装置としてＲＧＢ−Ｄカメラを用いて撮影された画像の処理に特に適しているといえる。
【００８８】
なお、上述の利点は、並進ベクトルを計算する処理においても同様に得られる。ＲＧＢ−Ｄカメラで撮影された画像からは、マーカ表面の多くのピクセルを使って、平面を正確に計算することが可能である。長辺方向の直線検出を正確に行うことができ、加えて、多くのエッジを使うことにより符号位置の検出も正確に行うことができる。このため、マーカまでの並進ベクトルを計算するに際して、計算精度が落ちやすい矩形の短辺方向の長さや符号のビット間距離を使うことが不要となり、並進ベクトルの計算精度が高まる。
【産業上の利用可能性】
【００８９】
本発明は、単一のマーカでありながらも実環境の広い空間内においてカメラ等の撮像装置の位置・姿勢を精度よく推定することを可能とする測位用マーカ、および、これを用いた撮像装置の位置・姿勢推定システムを提供する。
【符号の説明】
【００９０】
１０  デブルーイン系列パターン
２０  湾曲しない材質の板等
【図５】
0005547227.tif 000002
【図１６】
0005547227.tif 000003
【図１】
0005547227.tif 000004
【図２】
0005547227.tif 000005
【図３】
0005547227.tif 000006
【図４】
0005547227.tif 000007
【図６】
0005547227.tif 000008
【図７】
0005547227.tif 000009
【図８】
0005547227.tif 000010
【図９】
0005547227.tif 000011
【図１０】
0005547227.tif 000012
【図１１】
0005547227.tif 000013
【図１２】
0005547227.tif 000014
【図１３】
0005547227.tif 000015
【図１４】
0005547227.tif 000016
【図１５】
0005547227.tif 000017
【図１７】
0005547227.tif 000018