(57)【要約】【課題】マーカのコード情報を高精度に認識すること。【解決手段】マーカ認識装置は、複数の領域に画成されたマーカに重畳するためのＮビット（Ｎは２以上の自然数）のコード情報を取得するコード取得手段と、コード取得手段により取得されたコード情報の各ビットの値に対してＭ系列の行列を夫々乗算する乗算手段と、乗算手段により乗算された乗算結果を加算して、マーカの各領域に対して配色を行うための色情報を算出する色情報算出手段と、色情報算出手段により算出された色情報に基づいて、マーカの各領域に対して配色を行う配色手段と、を備える。【選択図】図１
2016110216.tif 000002
【特許請求の範囲】
【請求項１】
複数の領域に画成されたマーカに重畳するためのＮビット（Ｎは２以上の自然数）のコード情報を取得するコード取得手段と、
前記コード取得手段により取得されたコード情報の各ビットの値に対してＭ系列の行列を夫々乗算する乗算手段と、
前記乗算手段により乗算された乗算結果を加算して、前記マーカの各領域に対して配色を行うための色情報を算出する色情報算出手段と、
前記色情報算出手段により算出された色情報に基づいて、前記マーカの各領域に対して配色を行う配色手段と、を備える、ことを特徴とするマーカ生成装置。
【請求項２】
請求項１記載のマーカ生成装置であって、
前記色情報は、予め設定された複数の所定色を前記マーカの各領域に対して夫々配色するための該所定色の割合を示す情報である、ことを特徴とするマーカ生成装置。
【請求項３】
請求項２記載のマーカ生成装置であって、
前記配色手段は、前記色情報算手段により算出された色情報を前記マーカの各領域に対して夫々割り当て、該割り当てた情報を、該各領域に前記所定色を配色する際の該所定色の面積比率として、前記配色を行う、ことを特徴とするマーカ生成装置。
【請求項４】
請求項１乃至３のうちいずれか１項記載のマーカ生成装置であって、
前記マーカは同心円形状であり、前記各領域は、該同心円形状の境界線で画成されている、ことを特徴とするマーカ生成装置。
【請求項５】
請求項１乃至４のうちいずれか１項記載のマーカ生成装置であって、
ノイズを含むマーカ画像を用いて、ＩＣＡ（Independent Component Analysis）による前記Ｍ系列の行列の学習を行う学習手段を更に備え、
前記乗算手段は、前記コード取得手段により取得されたコード情報の各ビットの値に対して、前記学習手段により学習されたＭ系列の行列を夫々乗算する、ことを特徴とするマーカ生成装置。
【請求項６】
請求項１乃至５記載のうちのいずれか１項記載のマーカ生成装置により生成されたマーカのコード情報を認識する、ことを特徴とするマーカ認識装置。
【請求項７】
請求項６記載のマーカ認識装置であって、
前記マーカの画像を取得する画像取得手段と、
前記画像取得手段により取得されたマーカの画像の各領域を認識する認識手段と、
前記認識手段により認識された各領域に基づいて、前記色情報を算出する色情報算出手段と、
前記色情報算出手段により算出された色情報に対して、前記Ｍ系列の行列の転置行列を乗算して前記コード情報を算出するコード情報算出手段と、
を備える、ことを特徴とするマーカ認識装置。
【請求項８】
請求項７記載のマーカ認識装置であって、
ノイズを含むマーカ画像を用いて、ＩＣＡ（Independent Component Analysis）による前記転置行列の学習を行う学習手段を更に備え、
前記コード情報算出手段は、前記色情報算出手段により算出された色情報に対して、前記学習手段により学習された転置行列を乗算して前記コード情報を算出する、ことを特徴とするマーカ認識装置。
【請求項９】
複数の領域に画成されたマーカに重畳するためのＮビット（Ｎは２以上の自然数）のコード情報を取得するステップと、
前記取得されたコード情報の各ビットの値に対してＭ系列の行列を夫々乗算するステップと、
前記乗算された乗算結果を加算して、前記マーカの各領域に対して配色を行うための色情報を算出するステップと、
前記算出された色情報に基づいて、前記マーカの各領域に対して配色を行うステップと、を含む、ことを特徴とするマーカ生成方法。
【請求項１０】
請求項９記載のマーカ生成方法により生成されたマーカのコード情報を認識する、ことを特徴とするマーカ認識方法。
【請求項１１】
請求項１０記載のマーカ認識方法であって、
前記マーカの画像を取得するステップと、
前記取得されたマーカの画像の各領域を認識するステップと、
前記認識された各領域に基づいて、前記色情報を算出するステップと、
前記算出された色情報に対して、前記Ｍ系列の行列の転置行列を乗算して前記コード情報を算出するステップと、
を含む、ことを特徴とするマーカ認識方法。
【請求項１２】
複数の領域に画成されたマーカに重畳するためのＮビット（Ｎは２以上の自然数）のコード情報を取得する処理と、
前記取得されたコード情報の各ビットの値に対してＭ系列の行列を夫々乗算する処理と、
前記乗算された乗算結果を加算して、前記マーカの各領域に対して配色を行うための色情報を算出する処理と、
前記算出された色情報に基づいて、前記マーカの各領域に対して配色を行う処理と、をコンピュータに実行させる、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アイテムなどに付けられたマーカを生成又は認識するマーカ生成装置、マーカ認識装置、マーカ生成方法、マーカ認識方法、お及びプログラムに関するものである。
【背景技術】
【０００２】
ＱＲコード（登録商標）などの二次元コードを読み取る二次元コード読取装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９５１４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、二次元コードなどのマーカはコード情報を含んでいる。また、マーカ画像の各画素でコード情報の１ビットの値を表現している。このため、例えば、ピントボケなどのノイズにより、マーカ画像の画素が欠損するとマーカのコード情報の認識精度が低下する虞がある。
【０００５】
本発明は、このような問題点を解決するためになされたものであり、マーカのコード情報を高精度に認識できるマーカ生成装置、マーカ認識装置、マーカ生成方法、マーカ認識方法、及びプログラムを提供することを主たる目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための本発明の一態様は、複数の領域に画成されたマーカに重畳するためのＮビット（Ｎは２以上の自然数）のコード情報を取得するコード取得手段と、前記コード取得手段により取得されたコード情報の各ビットの値に対してＭ系列の行列を夫々乗算する乗算手段と、前記乗算手段により乗算された乗算結果を加算して、前記マーカの各領域に対して配色を行うための色情報を算出する色情報算出手段と、前記色情報算出手段により算出された色情報に基づいて、前記マーカの各領域に対して配色を行う配色手段と、を備える、ことを特徴とするマーカ生成装置である。
この一態様において、前記色情報は、予め設定された複数の所定色を前記マーカの各領域に対して夫々配色するための該所定色の割合を示す情報であってもよい。
この一態様において、前記配色手段は、前記色情報算手段により算出された色情報を前記マーカの各領域に対して夫々割り当て、該割り当てた情報を、該各領域に前記所定色を配色する際の該所定色の面積比率として、前記配色を行ってもよい。
この一態様において、前記マーカは同心円形状であり、前記各領域は、該同心円形状の境界線で画成されていてもよい。
この一態様において、ノイズを含むマーカ画像を用いて、ＩＣＡ（Independent Component Analysis）による前記Ｍ系列の行列の学習を行う学習手段を更に備え、前記乗算手段は、前記コード取得手段により取得されたコード情報の各ビットの値に対して、前記学習手段により学習されたＭ系列の行列を夫々乗算してもよい。
上記目的を達成するための本発明の一態様は、上記マーカ生成装置により生成されたマーカのコード情報を認識する、ことを特徴とするマーカ認識装置であってもよい。
この一態様において、前記マーカの画像を取得する画像取得手段と、前記画像取得手段により取得されたマーカの画像の各領域を認識する認識手段と、前記認識手段により認識された各領域に基づいて、前記色情報を算出する色情報算出手段と、前記色情報算出手段により算出された色情報に対して、前記Ｍ系列の行列の転置行列を乗算して前記コード情報を算出するコード情報算出手段と、を備えていてもよい。
この一態様において、ノイズを含むマーカ画像を用いて、ＩＣＡ（Independent Component Analysis）による前記転置行列の学習を行う学習手段を更に備え、前記コード情報算出手段は、前記色情報算出手段により算出された色情報に対して、前記学習手段により学習された転置行列を乗算して前記コード情報を算出してもよい。
上記目的を達成するための本発明の一態様は、複数の領域に画成されたマーカに重畳するためのＮビット（Ｎは２以上の自然数）のコード情報を取得するステップと、前記取得されたコード情報の各ビットの値に対してＭ系列の行列を夫々乗算するステップと、前記乗算された乗算結果を加算して、前記マーカの各領域に対して配色を行うための色情報を算出するステップと、前記算出された色情報に基づいて、前記マーカの各領域に対して配色を行うステップと、を含む、ことを特徴とするマーカ生成方法であってもよい。
上記目的を達成するための本発明の一態様は、上記マーカ生成方法により生成されたマーカのコード情報を認識する、ことを特徴とするマーカ認識方法であってもよい。
この一態様において、前記マーカの画像を取得するステップと、前記取得されたマーカの画像の各領域を認識するステップと、前記認識された各領域に基づいて、前記色情報を算出するステップと、前記算出された色情報に対して、前記Ｍ系列の行列の転置行列を乗算して前記コード情報を算出するステップと、を含んでいてもよい。
上記目的を達成するための本発明の一態様は、複数の領域に画成されたマーカに重畳するためのＮビット（Ｎは２以上の自然数）のコード情報を取得する処理と、前記取得されたコード情報の各ビットの値に対してＭ系列の行列を夫々乗算する処理と、前記乗算された乗算結果を加算して、前記マーカの各領域に対して配色を行うための色情報を算出する処理と、前記算出された色情報に基づいて、前記マーカの各領域に対して配色を行う処理と、をコンピュータに実行させる、ことを特徴とするプログラムであってもよい。
【発明の効果】
【０００７】
本発明によれば、マーカのコード情報を高精度に認識できるマーカ生成装置、マーカ認識装置、マーカ生成方法、マーカ認識方法、お及びプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】マーカ画像全体の特徴パターンで各ビットの値を夫々表現した図である。
【図２】１ビットの値を複数のＮ次元の波形で夫々表現した図である。
【図３】本発明の実施形態１に係るマーカ生成装置の概略的システム構成を示すブロック図である。
【図４】同心円形状を有しているマーカの一例を示す図である。
【図５】各領域における（Ｒ）、（Ｂ）、（Ｒ／Ｂ）、（Ｎ）、及び（Ｉ）の色頻度比を表す色ヒストグラムの一例を示す図である。
【図６】本発明の実施形態１に係るマーカ生成方法を示すフローチャートである。
【図７】本発明の実施形態１に係るマーカ認識装置の概略的なシステム構成を示すブロック図である。
【図８】本発明の実施形態１に係るマーカ認識方法を示すフローチャートである。
【図９】コード情報の各ビットに対応する色頻度情報の値とそのマーカ画像を示す図である。
【図１０】マーカ認識装置により認識を行ったコード情報の結果を示す図である。
【図１１Ａ】偶数ビットの値を１にした場合の出力結果を示す図である。
【図１１Ｂ】偶数ビットの値を１にした場合の出力結果を示す図である。
【図１１Ｃ】偶数ビットの値を１にした場合の出力結果を示す図である。
【図１２】本発明の実施形態２に係るマーカ認識装置の概略的なシステム構成を示すブロック図である。
【図１３】ＩＣＡ学習後の検出行列を説明するための図である。
【図１４】ＩＣＡによる検出行列Ｗの学習方法を説明するための図である。
【図１５】ピントボケ画像群による学習結果を示す図である。
【図１６】入力画像パターンを用いて計９００通りの試験データで評価した結果を示す図である。
【発明を実施するための形態】
【０００９】
実施形態１
以下、図面を参照して本発明の実施の形態について説明する。
例えば、マーカはそのロボットが操作を行うアイテムに付けられる。ロボットは、マーカの位置を認識することで、そのアイテムの位置、姿勢、距離などを認識することができる。さらに、マーカがコード情報を含んでいる場合、ロボットはマーカの位置及びサイズの認識だけでなく、コード情報も同時に認識できる。本発明の実施形態１に係るマーカ生成装置は、上記のようなマーカに含まれるコード情報を生成するものである。
【００１０】
ところで、従来は、例えば、マーカ画像の各画素でコード情報の１ビットの値を表現している。このため、ピントボケなどのノイズにより、マーカ画像の画素が欠損するとコード情報の精度が低下するという問題が生じていた。
【００１１】
これに対し、本実施形態１に係るマーカ生成装置は、マーカ画像全体の特徴パターンでコード情報の各ビットの値を夫々表現している。このため、マーカ画像に画素の欠損等が生じた場合でも、その影響を抑えることができる。したがって、マーカのコード情報をより高精度に認識できる。
【００１２】
例えば、図１に示す如く、１ビットの値（０１）を表現したマーカ画像（ａ）に、１ビットの値（１０）を表現したマーカ画像（ｂ）を重畳し、２ビットの値（１１）を表現したマーカ画像（ｃ）を生成する。この場合、仮にマーカ画像（ａ）に画素の欠損が生じている場合でも、他の情報で復元を行い、この欠損の影響を受けないマーカ画像を生成できる。
【００１３】
より具体的には、図２に示すように、１ビットの値を複数のＮ次元（例えば、１６次元）の波形（（あ）および（い））で夫々表現する。それら波形を重畳することで、マーカを表現するための情報（例えば、図２（う）に示すようなマーカの色ヒストグラム（色構成比））を生成する。そして、生成した情報に基づいて、マーカに対して配色を行う。
【００１４】
図３は、本実施形態１に係るマーカ生成装置の概略的システム構成を示すブロック図である。本実施形態１に係るマーカ生成装置１０は、Ｎビット（Ｎは２以上の自然数）のコード情報を取得するコード取得部１１と、コード情報の各ビットの値に対してＭ系列の行列（以下、Ｍ系列行列）を夫々乗算する自己相関部１２と、マーカの各領域に対して配色を行うための色頻度情報を算出する色情報算出部１３と、マーカの各領域に対して配色を行う配色部１４と、を備えている。
【００１５】
マーカ生成装置１０及び後述のマーカ認識装置２０は、例えば、演算処理等と行うＣＰＵ（Central Processing Unit）、ＣＰＵによって実行される演算プログラム、制御プログラム等が記憶されたＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）からなるメモリ、外部と信号の入出力を行うインターフェイス部（Ｉ／Ｆ）、などからなるマイクロコンピュータを中心にして、ハードウェア構成されている。ＣＰＵ、メモリ、及びインターフェイス部は、データバスなどを介して相互に接続されている。
【００１６】
コード取得部１１は、コード取得手段の一具体例である。コード取得部１１は、複数の領域に画成されたマーカに重畳するためのＮビットのコード情報（例えば、０及び１からなる情報）を取得する。コード取得部１１は、取得したコード情報を自己相関部１２に出力する。
【００１７】
自己相関部１２は、乗算手段の一具体例である。自己相関部１２は、コード取得部１１により取得されたコード情報の各ビットの値に対してＭ系列行列を夫々乗算する。自己相関部１２は、例えば、下記（１）を用いて、コード取得部１１から出力されるコード情報の各ビットの値に対してＭ系列の行列を夫々乗算する。
Ｘ＝ＷＳ （１）
【００１８】
なお、上記式において、Ｓはコード取得部１１から出力されるコード情報であり、例えば、０又は１である。Ｗは、Ｍ系列（最大長シフトレジスタ系列、Maximum-length shift-register sequence）の生成行列である。この生成行列Ｗは、例えば、拡散符号のＭ系列によって構成されている。このＭ系列は、自己相関が高く、相互相関が低い性質を有している。このため、コード情報の各ビットの値に対してＭ系列行列を夫々乗算することで、コード情報の各ビットの値に対する自己相関を高くしノイズ耐性を向上させることができる。すなわち、マーカ画像全体の特徴パターンでコード情報の各ビットの値を夫々表現している。
【００１９】
ここで、符号間距離を最大化するため、直交Ｍ系列Ｐで生成行列Ｗを表現する。Ｍ系列は４次の原始多項式（ａ４＋ａ＋１）を使用し、２４−１個の｛１、 −１｝の符号列が得られる。Ｐ＊ｉとＰｉ＊のｉ＝１６の値を｛−１｝とすることで直交Ｍ系列を得る。なお、生成行列Ｗは、自己相関が高く、相互相関が低い性質を有する任意のＭ系列によって構成できる。自己相関部１２は、上記乗算した乗算結果を色情報算出部１３に出力する。
【００２０】
色情報算出部１３は、色情報算出手段の一具体例である。色情報算出部１３は、自己相関部１２により乗算された乗算結果を加算して、マーカの各領域に対して配色を行うための色頻度情報（色情報の一例）を算出する。この色頻度情報は、例えば、予め設定された複数の所定色をマーカの各領域に対して夫々配色するための、該所定色の割合を示す情報である。
【００２１】
色情報算出部１３は、例えば、下記（２）式を用いて、１６次元の各ビットの色頻度情報Ｘｉを加算して、最終的なマーカの色頻度情報Ｘを算出する。
【数１】
2016110216.tif 000003
【００２２】
色情報算出部１３は、算出した色頻度情報Ｘを配色部１４に出力する。
配色部１４は、配色手段の一具体例である。配色部１４は、色情報算出部１３により算出された色頻度情報Ｘに基づいて、マーカの各領域に対して配色を行う。
【００２３】
ここで、例えば、ロボットなどは、複雑な動作を行い異なる方向から及び距離でアイテムのマーカを見るため、そのマーカの見え方も大きく異なる。したがって、マーカの配置（向きやスケールの違いによる見え方）に依存しないコード情報が必要となる。
【００２４】
これに対し、本実施形態１に係るマーカは、例えば、層状（リング状）の円形状（以下同心円形状）を有している。同心円形状の各領域は、その同心円形状の境界線で画成されている。配色部１４は、色情報算出部１３により算出された色頻度情報Ｘに従って、同心円形状の各領域（各層）内の色の成分比（配色）を決める。
【００２５】
なお、円形状は、回転や傾きなどに対しロバストである。このため、マーカを円形状とし、コード情報を表す色頻度情報に従って円形状の各領域に配色を行う。これにより、マーカの配置（向きやスケールの違いによる見え方）に依存しないコード情報が実現できる。
【００２６】
例えば、図４（１）に示す正面から見た同心円形状（半径：１、面積π＊１＊１）を、横に傾けると図４（２）に示すような同心円形状（長軸ａ、短軸ｂ、面積π＊ａ＊ｂ）となる。さらに、この同心円形状を４５度回転させると図４（３）に示す同心円形状（長軸ａ、短軸ｂ、面積：π＊ａ＊ｂ）となる。このように、円形状が傾いた場合の正射影は、楕円形状となり、その面積比は一定倍（図４（２）及び（３）に示す場合はａｂ倍）となる。このため、マーカの同心円形状を傾け或いは拡縮等したとしても、各領域面積も同様に一定倍となり、その色の成分比は保たれる。
【００２７】
したがって、本実施形態１に係るマーカは同心円形状を有し、コード情報を各領域における色成分比で表現する。これにより、マーカの配置に依存しないコード情報をマーカに対し、エンコードできる。例えば、環境光やマーカの分光特性に影響され難いコード情報を表現できる。とりわけ、波長領域で遠い関係にある「赤」と「青」との成分比でコード情報を表現した場合、ピントボケの影響をより小さく抑えることができる。
【００２８】
同心円形状には、例えば、外側から中心に向かって４つの領域１〜４が夫々形成されているが（図４（１））、これに限定されない。同心円形状に形成される領域の数は任意でよい。さらに、同
心円形状は、縦線で画成されていてもよい。各領域１〜４の境界線（縦線も含む）は、例えば、緑（Ｇ）成分で形成されている。
【００２９】
例えば、各領域１〜３には、所定色として、（Ｒ）赤成分（Ｒ成分が閾値Ｒｈ以上、かつＢ成分が閾値Ｂｈ未満）、（Ｂ）青成分（Ｒ成分が閾値Ｒｈ未満、かつＢ成分が閾値Ｂｈ以上）、（Ｒ／Ｂ）赤成分及び青成分の両方有り（Ｒ成分が閾値Ｒｈ以上、かつＢ成分が閾値Ｂｈ以上）、（Ｎ）赤成分及び青成分の両方無し（Ｒ成分が閾値ＲＬ未満、かつＢ成分が閾値ＢＬ未満）、（Ｉ）不定（上記以外）、の５つの状態が設定されている。領域４には、上記（Ｒ）、（Ｂ）、（Ｒ／Ｂ）、及び（Ｎ）の４つの状態が設定されている。なお、（Ｉ）不定は、各領域間での出力比の整合性を図るために設定されている。上記閾値は、例えば、Ｒｈ＝１２０、Ｂｈ＝１１７、ＲＬ＝ＢＬ＝５０に設定されている。
【００３０】
配色部１４は、色情報算出部１３から出力される色頻度情報Ｘを同心円形状の各領域に対して夫々割り当てる。そして、配色部１４は、割り当てた情報を、各領域に所定色を配色する際の所定色の面積比率として、配色を行う。例えば、配色部１４は、色情報算出部１３から出力される１６次元データの色頻度情報Ｘを同心円形状の各領域１〜４に割り当てる。１６次元の色頻度情報Ｘは、各領域１〜４において、（Ｒ）、（Ｂ）、（Ｒ／Ｂ）、（Ｎ）、及び（Ｉ）を配分する際のその配分比を表している。
【００３１】
配色部１４は、例えば、１〜４次元データを領域１、５〜８次元データを領域２、９〜１２次元データを領域３、１３〜１６次元データを領域４、に夫々割り当てる。なお、色頻度情報の各領域の割り当て方法はこれに限定されない。
【００３２】
ここで、領域３に対して配色を行う方法について説明する。（９次元データ）：（１０次元データ）：（１１次元データ）：（１２次元データ）：（１３次元データ）＝ａ：ｂ：ｃ：ｄ：ｅとする。領域３の総画素数をＰ３とする。この場合、領域３に配分する（Ｒ）の画素数は、Ｐ３＊ａ／（ａ＋ｂ＋ｃ＋ｄ＋ｅ）となり、（Ｂ）の画素数は、Ｐ３＊ｂ／（ａ＋ｂ＋ｃ＋ｄ＋ｅ）となり、（Ｒ／Ｂ）の画素数は、Ｐ３＊ｃ／（ａ＋ｂ＋ｃ＋ｄ＋ｅ）となり、（Ｎ）の画素数は、Ｐ３＊ｄ／（ａ＋ｂ＋ｃ＋ｄ＋ｅ）となり、（Ｉ）の画素数は、Ｐ３＊ｅ／（ａ＋ｂ＋ｃ＋ｄ＋ｅ）となる。
【００３３】
領域４については、（１３次元データ）：（１４次元データ）：（１５次元データ）：（１６次元データ）＝ｆ：ｇ：ｈ：ｉとする。領域４の総画素数をＰ４とする。この場合、領域４に配分する（Ｒ）の画素数は、Ｐ４＊ｆ／（ｆ＋ｇ＋ｈ＋ｉ）となり、（Ｂ）の画素数は、Ｐ４＊ｇ／（ｆ＋ｇ＋ｈ＋ｉ）となり、（Ｒ／Ｂ）の画素数は、Ｐ４＊ｈ／（ｆ＋ｇ＋ｈ＋ｉ）となり、（Ｎ）の画素数は、Ｐ４＊ｉ／（ｆ＋ｇ＋ｈ＋ｉ）となる。
【００３４】
なお、上記のように、（１３次元データ）のみが、領域３及び４の両方に対して用いられている。同様にして、５次元データは領域１及び２の両方に対して、９次元データは、領域２及び３の両方に対して用いられる。これにより、各領域１〜４間の画素数の相違を吸収でき、各領域１〜４内の配分比を１６次元データ全体で見たときでも、整合性を取ることができる。図５は、１６次元の色頻度情報Ｘに基づいて、各領域１〜４で、（Ｒ）、（Ｂ）、（Ｒ／Ｂ）、（Ｎ）、及び（Ｉ）を配分する際の、その色頻度比（画素数比）を表す色ヒストグラムである。例えば、図５に示す如く、５次元データは領域１及び２の両方に用いられている。そして、領域１の（Ｉ）の色頻度比が領域２の（Ｒ）の色頻度比と同一となるように設定されている。
【００３５】
配色部１４は、最後に上記各領域１〜４に対して設定された（Ｒ）、（Ｂ）、（Ｒ／Ｂ）、（Ｎ）、及び（Ｉ）の画素数に従って、マーカを生成する。
【００３６】
図６は、本実施形態１に係るマーカ生成方法を示すフローチャートである。マーカ生成装置１０のコード取得部１１は、Ｎビットのコード情報を取得し、取得したコード情報を自己相関部１２に出力する（ステップＳ１０１）。自己相関部１２は、上記（１）を用いて、コード取得部１１から出力されるコード情報の各ビットの値に対してＭ系列行列を夫々乗算し、乗算した乗算結果を色情報算出部１３に出力する（ステップＳ１０２）。
【００３７】
色情報算出部１３は、上記（２）式を用いて、自己相関部１２から出力される乗算結果（色頻度情報Ｘｉ）を加算して、最終的なマーカの色頻度情報Ｘを算出し、算出した色頻度情報Ｘを配色部１４に出力する（ステップＳ１０３）。配色部１４は、色情報算出部１３により算出された色頻度情報に基づいて、マーカの円形状の各領域に対して配色を行う（ステップＳ１０４）。
【００３８】
以上、本実施形態１において、Ｎビットのコード情報を取得し、そのコード情報の各ビットの値に対してＭ系列行列を夫々乗算し、その乗算結果（色頻度情報）を加算して、マーカの色頻度情報Ｘを算出し、算出した色頻度情報に基づいて、マーカの円形状の各領域に対して配色を行う。これにより、マーカ画像全領域を用いてコード情報の各１ビットを表現することで、ピントボケなどのノイズによるコード情報の精度低下を抑えることができる。したがって、マーカのコード情報を高精度に認識できる。
【００３９】
図７は、本実施形態１に係るマーカ認識装置の概略的なシステム構成を示すブロック図である。本実施形態１に係るマーカ認識装置２０は、上述したマーカ生成装置１０により生成されたマーカのコード情報を認識するものである。
【００４０】
本実施形態１に係るマーカ認識装置２０は、マーカの画像（マーカ画像）を取得する画像取得部２１と、マーカの画像の各領域を認識する領域認識部２２と、色頻度情報を算出する色情報算出部２３と、マーカのコード情報を算出するコード情報算出部２４と、を備えている。
【００４１】
画像取得部２１は、画像取得手段の一具体例である。画像取得部２１は、カメラ２１１を用いてマーカを撮影し、そのマーカ画像を取得する。画像取得部２１は、取得したマーカ画像を領域認識部２２に出力する。
【００４２】
領域認識部２２は、認識手段の一具体例である。領域認識部２２は、画像取得部２１から出力されるマーカ画像の各領域を認識する。領域認識部２２は、画像取得部２１にから出力されるマーカ画像に基づいて、例えば、同心円形状の各領域１〜４の境界線を検出し、各領域１〜４を認識する。領域認識部２２は、認識した各領域の認識結果を色情報算出部２３に出力する。
【００４３】
色情報算出部２３は、色情報算出手段の一具体例である。色情報算出部２３は、領域認識部２２から出力された各領域の認識結果に基づいて、色頻度情報（色情報）Ｘを算出する。
【００４４】
例えば、色情報算出部２３は、各領域１〜４における、（Ｒ）、（Ｂ）、（Ｒ／Ｂ）、（Ｎ）、及び（Ｉ）の成分比（画素数比など）を示す１６次元データＸ１〜１６を算出する。次に、色情報算出部２３は、各領域１〜４間の成分比の調整を行ったＸ′１〜Ｘ′１６（色頻度情報）を算出する。ここで、各領域１〜４は面積が異なる。このため、例えば、色情報算出部２３は、その調整値Ｂ２１（領域１及び２間の調整）、Ｂ３２（領域２及び３間の調整）、Ｂ４３（領域３及び４間の調整）を夫々算出する。そして、色情報算出部２３は、これら調整値Ｂ２１、Ｂ３２、及びＢ４３に基づいて、Ｘ′１〜Ｘ′１６を算出する。例えば、１３次元目のデータは領域３では（Ｉ）、領域４では（Ｒ）の色に対応している。調整値Ｂ４３は、式Ｂ４３＝（Ｐ３−（Ｘ９＋Ｘ１０＋Ｘ１１＋Ｘ１２））／Ｘ１３、により算出できる。一方、該当する１３次元目のデータに値が０の場合、色がないため、上記紐づけが出来ない。この場合、調整値Ｂ４３は、色頻度情報の数と面積の比を用いて式Ｂ４３＝Ｐ３／（Ｘ１３＋Ｘ１４＋Ｘ１５＋Ｘ１６）により算出する。調整値Ｂ２１及びＢ３２についても、上記調整値Ｂ４３と同様に算出できる。
【００４５】
色情報算出部２３は、１６次元データＸ１〜１６と、上記算出した調整値Ｂ２１、Ｂ３２及びＢ４３と、に基づいて、下記式より１６次元のＸ′１〜Ｘ′１６（色頻度情報Ｘ）を夫々算出する。
【００４６】
Ｘ′１６＝Ｘ１６、Ｘ′１５＝Ｘ１５、Ｘ′１４＝Ｘ１４、Ｘ′１３＝Ｘ１３、Ｘ′１２＝Ｘ１２＊（１／Ｂ４３）、Ｘ′１１＝Ｘ１１＊（１／Ｂ４３）、Ｘ′１０＝Ｘ１０＊（１／Ｂ４３）、Ｘ′９＝Ｘ９＊（１／Ｂ４３）、Ｘ′８＝Ｘ８＊（１／（Ｂ４３＊Ｂ３２））、Ｘ′７＝Ｘ７＊（１／（Ｂ４３＊Ｂ３２））、Ｘ′６＝Ｘ６＊（１／（Ｂ４３＊Ｂ３２））、Ｘ′５＝Ｘ５＊（１／（Ｂ４３＊Ｂ３２））、Ｘ′４＝Ｘ４＊（１／（Ｂ４３＊Ｂ３２＊Ｂ２１））、Ｘ′３＝Ｘ３＊（１／（Ｂ４３＊Ｂ３２＊Ｂ２１））、Ｘ′２＝Ｘ２＊（１／（Ｂ４３＊Ｂ３２＊Ｂ２１））、Ｘ′１＝Ｘ１＊（１／（Ｂ４３＊Ｂ３２＊Ｂ２１））
色情報算出部２３は、上記算出した色頻度情報Ｘをコード情報算出部２４に出力する。
【００４７】
コード情報算出部２４は、コード情報算出手段の一具体例である。コード情報算出部２４は、色情報算出部２３から出力される色頻度情報Ｘに対して、Ｍ系列行列の転置行列（検出行列）ＷＴを乗算することでマーカのコード情報Ｓを算出する。例えば、コード情報算出部２４は、色情報算出部２３から出力される色頻度情報Ｘに基づいて、下記（３）式を用いて、マーカのコード情報Ｓを算出する。
Ｓ＝ＷＴＸ （３）
【００４８】
ここで、Ｓｉ（Ｓのｉ次元目の値）が閾値以上であれば，ｉ番目のビットを１、それ以外はｉ番目のビットを０とする。これにより、ｎ（例えば、１６）ビットのコード情報を表現できる。
【００４９】
図８は、本実施形態１に係るマーカ認識方法を示すフローチャートである。マーカ認識装置２０の画像取得部２１は、カメラ２１１を用いてマーカを撮影し、マーカ画像を取得し、領域認識部２２に出力する（ステップＳ２０１）。領域認識部２２は、画像取得部２１から出力されるマーカ画像の各領域を認識し、その認識結果を色情報算出部２３に出力する（ステップＳ２０２）。
【００５０】
色情報算出部２３は、領域認識部２２から出力された各領域の認識結果に基づいて、色頻度情報Ｘを算出し、コード情報算出部２４に出力する（ステップＳ２０３）。コード情報算出部２４は、色情報算出部２３から出力される色頻度情報Ｘに基づいて、上記（３）式を用いて、マーカのコード情報Ｓを算出する（ステップＳ２０４）。
【００５１】
次に、上記マーカ認識装置が上記マーカ生成装置により生成したマーカのコード情報を認識できるかを評価した。図９は、コード情報の各ビットに対応する色頻度情報Ｘｉの値とそのマーカ画像を示す図である。なお、色頻度情報ＸｉはＭ系列そのものである（図  ９上段）。
【００５２】
図１０は、マーカ画像を読み込み、色頻度情報から中間コードを落とし、マーカ認識装置により認識を行ったコード情報の結果を示す図である。図１０に示すように、いずれのデータも該当するビットが正しく立っている（１となっている）ことが分かる。
【００５３】
図１１Ａは、偶数ビットの２、４、６、８、１０、１２、１４ビット目の値を１にした場合の結果を示す図である。なお、図１１Ａ乃至Ｃにおいて、左図が色頻度情報Ｘ、右図が相関値出力結果Ｓ（＝ＷＴＸ）である。図１１Ａの右図が示すように、上記偶数ビット目でビットが正しく立っており、コード情報の表現が出来ていることが確認できる。すなわち、１ビットをマーカ画像全体で表現し、マーカにコード情報の埋め込みが出来ていることが確認できる。
【００５４】
次に、ノイズに対する耐性を確認する実験を行った。図１１（Ｂ）及び（Ｃ）は、白色誤差（White Noise）をマーカ画像に加えた際の認識結果を示す図である。本実験において、誤差は、一様乱数を発生させている。図１１（Ｂ）においてはＲＧＢ値でその誤差を±１０．２４、図１１（Ｃ）においては、ＲＧＢ値でその誤差を±２５．６変化させている。その結果、図１１（Ｂ）の場合、上記偶数ビット目でビットが正しく立っており、マーカ認識装置２０は、コード情報を正確に認識することができることが確認できた。
【００５５】
実施形態２
本発明の実施形態２に係るマーカ認識装置３０は、上記構成に加えて、ノイズを含むマーカ画像を用いて、ＩＣＡ（Independent Component Analysis、独立成分分析）によるＭ系列行列の転置行列ＷＴ（以下、検出行列Ｗ）の学習を行う学習部２５を更に備える（図１２）。学習部２５は、学習手段の一具体例である。学習部２５は、例えば、マーカ画像を回転あるいはガウス関数（σ）を重畳することで、ノイズを含む（ピントぼけの）マーカ画像を複数生成する。
【００５６】
マーカまでの距離や配置によってマーカ画像のピントボケが発生することがある。これに対し、本実施形態２に係るマーカ認識装置３０は、ピントボケのマーカ画像による検出行列Ｗの学習をＩＣＡによって実行する。これにより、その検出行列Ｗによる検出精度を向上させることができる。
【００５７】
このＩＣＡは、入力データから独立した成分のみを自動的に抽出するものである。例えば、ＩＣＡに設定する確率密度関数を優ガウス分布とすることで、出力データのうちの１つの値が高く、その他の値が低くなるように、検出行列Ｗの学習を行うことができる。
【００５８】
本実施形態２において、マーカ画像全体の特徴パターンで各ビットの値を表現する。そして、そのマーカ画像全体の特徴パターンをＩＣＡで学習させる。したがって、ノイズを含む入力データに対しても該当する符号のみが値を出力するような検出行列Ｗ（写像）を生成できる。例えば、図１３に示す如く、検出行列Ｗは、入力データの成分の数が一定以上の場合、その入力データがノイズ（画素欠損等）を含んでいても、対応するビット（（い）及び（う））の値が高く出力され、対応しないビット（あ）の値は低く出力される。このように、学習部２５は、ノイズ画像に対してロバストな検出行列Ｗを生成する。
【００５９】
なお、他の学習器（ＳＶＭやニューラルネットワーク）を用いて、線形あるいは非線形の検出行列（写像）を生成することは可能である。しかし、その検出行列は、各ビットを重畳した状態（各ビットに対応した特徴が混ざった状態）で分離を行うものではない。一方で、本実施形態２によれば、マーカ画像全体の特徴パターンで各ビットの値を表現している。このため、ＩＣＡによる検出行列の学習が可能となる。一方、本実施形態２では、検出行列にＩＣＡを用いていることによって、各ビットに対応した特徴パターンの成分の有無の検出が可能になる。これは、各ビットに対応した特徴パターンの成分は独立成分として学習されるためである。したがって、各ビットを重畳した状態においても、その各々のビットに対応した特徴パターンの成分の有無の検出が可能となる。
【００６０】
次に、ＩＣＡによる検出行列Ｗの学習方法について、図１４を用いて具体的に説明する。学習部２５は、例えば、画像取得部２１により取得されたマーカ画像をロール方向、ピッチ方向、及びヨー方向（なお、ヨー方向に回転させなくてもよい）に回転させて（１）、マーカのピントボケ画像群を作成する（３）。あるいは、学習部２５は、画像取得部２１により取得されたマーカ画像にガウス関数を夫々重畳して（２）、マーカのピントボケ画像群を作成する（３）。なお、学習部２５は、マーカ画像を回転させ（１）、さらに、ガウス関数を夫々重畳して（２）、マーカのピントボケ画像群を作成してもよい（３）。また、学習部２５は、ダウンサンプリングを実施して、解像度ボケ画像群を作成してもよい。そして、学習部２５は、重み行列Ｂの初期値をＰとしてピントボケ画像群（あるいは外像度ボケ画像群）を用いて、ＩＣＡによる下記の検出行列Ｗの学習を行う（４）。
【００６１】
学習部２５は、Ｓの確率密度関数を優ガウス分布と仮定し、自然勾配法によって相互情報量を最小化するようにＩＣＡを実行する。
ＩＣＡの更新式は、下記（４）〜（６）式で与えられる。但し、εは０．１とし，Ｉは単位行列である。
【数２】
2016110216.tif 000004
【００６２】
コード情報算出部２４は、下記（７）式を用いて、色情報算出部２３から出力された色頻度情報Ｘに対して、学習部２５により学習された検出行列ＢＴを乗算してコード情報Ｓを算出する。なお、色情報算出部２３は、下記（８）式を用いて色頻度情報Ｘを算出する。
【数３】
2016110216.tif 000005
なお、本実施形態２に係るマーカ認識装置３０において、上記実施形態１に係るマーカ認識装置２０と同一部分には同一符号を付して、詳細な説明は省略する。
【００６３】
次に、上述したＩＣＡを用いたボケ学習の効果検証するために、ピントボケに対するロ
バスト性を評価する実験を行った。マーカのピントボケ画像群（回転とボケ）を用いることで各ビットの中間コードパターン（色頻度情報Ｘ）を学習させる。各ビットについては、以下のマーカ画像９００個を学習データとして作成した。全１６ビット分で計１４４００通りのマーカ画像を用いて学習を行った。本実験では、学習の反復回数を１００００回とした。図１５は、そのピントボケ画像群による学習結果を示す図である。図１５において、上段が学習後の行列Ｂであり、下段が各ビットに対応したコードの認識結果（コード情報算出部２４の出力）である。
【００６４】
図１５上段に示すように、学習後の行列Ｂは、図９上段で示したＭ系列行列の形は残しつつも、その学習により変形していることが分かる。図１５下段に示すように、学習後の行列Ｂを用いて、各ビットを正しく認識できることが確認できる。
【００６５】
次に、下記の入力画像パターンを用いてさらに、ボケ学習の効果を確認する。
［ＩＣＡへの入力画像パターン］
・Ｒｏｌｌ:０〜２０度を５度刻み、５パターン
・Ｐｉｔｃｈ:０〜２０度を５度刻み、５パターン
・Ｙａｗ:０〜３６０度を３０度刻み、１２パターン
・Ｇａｕｓｓｉａｎ:０、 １．０、 ２．０の３パターン
【００６６】
ここで、偶数ビットの２、４、６、８、１０、１２、１４ビット目を同時に立てた場合のマーカで効果確認を行う。図１６は、上記入力画像パターンを用いて計９００通りの試験データで評価した結果を示す図である。図１６上段左が｛ピントボケなし、ＩＣＡ学習なし｝の場合、図１６上段右が｛ピントボケなし、ＩＣＡ学習あり｝の場合、のコード情報算出部からの出力結果を示している。図１６上段左右が示すように、いずれの場合も、正しく認識できていることが分かる。
【００６７】
一方、図１６下段左が｛ピントボケあり、ＩＣＡ学習なし｝の場合、図１６下段右が｛ピントボケあり、ＩＣＡ学習あり｝の場合、のコード情報算出部の出力結果を示している。図１６下段左の場合、８ビット目、及び９ビット目で認識が失敗している。しかし、図１６下段右の場合、８ビット目、及び９ビット目で認識に成功していることが分かる（図中破線）。９００通りの試験データで、ＩＣＡ学習なしで６３０回正答できたものが、ＩＣＡ学習によって、７４８回に正答数を増加させることができた（成功率１３％増加）。以上の実験結果により、ノイズを含むマーカ画像を用いて、ＩＣＡによる検出行列の学習を行うことで、マーカのコード情報の認識精度が向上していることが分かる。
【００６８】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上記実施形態において、マーカ認識装置３０が学習部２５を備え、ＩＣＡによる検出行列の学習を行っているが、これに限定されない。マーカ生成装置１０が学習部を更に備え、ＩＣＡによる生成行列の学習を行ってもよい。あるいは、マーカ生成装置１０は、マーカ認識装置３０における学習後の検出行列の転置行列を算出し、この転置行列を生成行列としてもよい。
【００６９】
上記実施形態において、色情報算出部１３は、自己相関部１２により乗算された乗算結果を加算して、マーカの各領域に対して配色を行うための色頻度情報（所定色の割合）を算出しているがこれに限定されない。色情報算出部１３は、自己相関部１２により乗算された乗算結果を加算して、マーカの各領域に対して配色を行うための赤成分や青成分などの所定色の輝度情報（各成分の多さ）を算出してもよい。配色部１４は、色情報算出部１３により算出された輝度情報に基づいて、マーカの各領域に対して配色を行う。
さらに、色情報算出部１３は、自己相関部１２により乗算された乗算結果を加算して、マーカの各領域に対して配色を行うための白黒の２値情報を算出してもよい。配色部１４は、色情報算出部１３により算出された２値情報に基づいて、マーカの各領域に対して、例えば、ＱＲコード（登録商標）のような配色を行ってもよい。
【００７０】
上記実施形態において、マーカは、円形状を有しているが、これに限定されない。マーカは、四角形などの多角形を有していても良く、線対象形あるいは点対称形を有していてもよい。
【００７１】
本発明は、例えば、図６及び８に示す処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。
【００７２】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００７３】
１０  マーカ生成装置、１１  コード取得部、１２  自己相関部、１３  色情報算出部、１４  配色部、２０  マーカ認識装置、２１  画像取得部、２２  領域認識部、２３  色情報算出部、２４  コード情報算出部、２５  学習部
【図１】
2016110216.tif 000006
【図２】
2016110216.tif 000007
【図３】
2016110216.tif 000008
【図４】
2016110216.tif 000009
【図５】
2016110216.tif 000010
【図６】
2016110216.tif 000011
【図７】
2016110216.tif 000012
【図８】
2016110216.tif 000013
【図９】
2016110216.tif 000014
【図１０】
2016110216.tif 000015
【図１１Ａ】
2016110216.tif 000016
【図１１Ｂ】
2016110216.tif 000017
【図１１Ｃ】
2016110216.tif 000018
【図１２】
2016110216.tif 000019
【図１３】
2016110216.tif 000020
【図１４】
2016110216.tif 000021
【図１５】
2016110216.tif 000022
【図１６】
2016110216.tif 000023