(57)【要約】【課題】マーカにコード情報が重畳されている場合でも、マーカと識別して高精度に認識できるコード情報を生成すること。【解決手段】コード情報生成装置は、マーカの特徴を示すＭ個のＮ（Ｎ＞Ｍ＞２）次元の特徴信号を取得する特徴取得手段と、特徴取得手段により取得された特徴信号を用いて、行列Ｗ（Ｎ＊Ｍ）をＩＣＡにより学習させる学習手段と、学習手段により学習された行列ＷのＮ＊（Ｎ−Ｍ）の成分を作成し、該行列ＷをＮ＊Ｎの疑似直交行列とし、該行列Ｗを直交拡散符号ＰＮ−Ｃｏｄｅを用いて分解するために、行列Ｗｂを設定し、該行列Ｗｂを式（Ｗ＝Ｗｂ＊ＰＮｃｏｄｅ）で表し、該式の両辺に直交拡散符号の転置行列を乗算することで、行列Ｗｂを算出し、該算出した行列Ｗｂの転置行列の逆行列に直交拡散符号の各ＰＮ符号を夫々乗算することで、コード情報を算出するコード情報算出手段と、を備える。【選択図】図３
2016130895.tif 000002
【特許請求の範囲】
【請求項１】
マーカに重畳するコード情報を生成するコード情報生成装置であって、
前記マーカの特徴を示すＭ個のＮ（Ｎ＞Ｍ＞２）次元の特徴信号を取得する特徴取得手段と、
前記特徴取得手段により取得された特徴信号を用いて、行列Ｗ（Ｎ＊Ｍ）をＩＣＡ（Independent Component Analysis）により学習させる学習手段と、
前記学習手段により学習された行列ＷのＮ＊（Ｎ−Ｍ）の成分を作成し、該行列ＷをＮ＊Ｎの疑似直交行列とし、該行列Ｗを直交拡散符号ＰＮ−Ｃｏｄｅを用いて分解するために、行列Ｗｂを設定し、該行列Ｗｂを式（Ｗ＝Ｗｂ＊ＰＮｃｏｄｅ）で表し、該式の両辺に前記直交拡散符号の転置行列を乗算することで、前記行列Ｗｂを算出し、該算出した行列Ｗｂの転置行列の逆行列に前記直交拡散符号の各ＰＮ符号を夫々乗算することで、前記コード情報を算出するコード情報算出手段と、
を備えることを特徴とするコード情報生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マーカに重畳するコード情報を生成するコード情報生成装置に関するものである。
【背景技術】
【０００２】
ＱＲコード（登録商標）などの二次元コードを読み取る二次元コード読取装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９５１４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、二次元コードなどのマーカはコード情報を含んでいる。また、マーカ画像の各画素でコード情報の１ビットの値を表現している。このため、例えば、ピントボケなどのノイズにより、マーカ画像の画素が欠損するとマーカ及びコード情報の認識精度が低下する虞がある。
【０００５】
本発明は、このような問題点を解決するためになされたものであり、マーカにコード情報が重畳されている場合でも、マーカと識別して高精度に認識できるコード情報を生成するコード情報生成装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための本発明の一態様は、
マーカに重畳するコード情報を生成するコード情報生成装置であって、
前記マーカの特徴を示すＭ個のＮ（Ｎ＞Ｍ＞２）次元の特徴信号を取得する特徴取得手段と、
前記特徴取得手段により取得された特徴信号を用いて、行列Ｗ（Ｎ＊Ｍ）をＩＣＡ（Independent Component Analysis）により学習させる学習手段と、
前記学習手段により学習された行列ＷのＮ＊（Ｎ−Ｍ）の成分を作成し、該行列ＷをＮ＊Ｎの疑似直交行列とし、該行列Ｗを直交拡散符号ＰＮ−Ｃｏｄｅを用いて分解するために、行列Ｗｂを設定し、該行列Ｗｂを式（Ｗ＝Ｗｂ＊ＰＮｃｏｄｅ）で表し、該式の両辺に前記直交拡散符号の転置行列を乗算することで、前記行列Ｗｂを算出し、該算出した行列Ｗｂの転置行列の逆行列に前記直交拡散符号の各ＰＮ符号を夫々乗算することで、前記コード情報を算出するコード情報算出手段と、
を備えることを特徴とするコード情報生成装置である。
【発明の効果】
【０００７】
本発明によれば、マーカにコード情報が重畳されている場合でも、マーカと識別して高精度に認識できるコード情報を生成するコード情報生成装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係るコード情報生成装置の概略的システム構成を示すブロック図である。
【図２】本発明の一実施形態に係るコード情報生成装置の概略的な処理フローを説明するための図である。
【図３】行列Ｗを直交拡散符号を用いて分解する方法を説明するための図である。
【図４】直交拡散符号の一例を示す図である。
【図５】本発明の実施形態に係るコード情報を認識する実験結果を示す図である。
【図６】（ａ）本発明の実施形態に係るコード情報を認識する実験結果を示す図である。（ｂ）本発明の実施形態に係るコード情報を認識する実験結果を示す図である。（ｃ）本発明の実施形態に係るコード情報を認識する実験結果を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施の形態について説明する。
例えば、マーカはそのロボットが操作を行うアイテムに付けられる。ロボットは、マーカの位置を認識することで、そのアイテムの位置、姿勢、距離などを認識することができる。さらに、マーカにコード情報が重畳されている場合、ロボットはマーカの位置及びサイズの認識だけでなく、コード情報も同時に認識できる。
【００１０】
本実施形態に係るコード情報生成装置は、マーカ（形状パターンなど）にコード情報が重畳されている場合でも、そのマーカと識別して高精度に認識できるコード情報を生成する。
【００１１】
図１は、本発明の一実施形態に係るコード情報生成装置の概略的システム構成を示すブロック図である。本実施形態に係るコード情報生成装置１は、特徴信号を取得する特徴信号取得部２と、行列Ｗの学習を行う学習部３と、コード情報を算出するコード情報算出部４と、を備えている。
【００１２】
コード情報生成装置１は、例えば、演算処理等と行うＣＰＵ（Central Processing Unit）、ＣＰＵによって実行される演算プログラム、制御プログラム等が記憶されたＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）からなるメモリ、外部と信号の入出力を行うインターフェイス部（Ｉ／Ｆ）、などからなるマイクロコンピュータを中心にして、ハードウェア構成されている。ＣＰＵ、メモリ、及びインターフェイス部は、データバスなどを介して相互に接続されている。
【００１３】
特徴信号取得部２は、特徴取得手段の一具体例である。特徴信号取得部２は、マーカの形状パターンを示す、種となるＭ個のＮ次元の特徴信号を取得する（図２（ａ１））。但し、Ｎ＞Ｍ＞２とする。特徴信号取得部２は、取得した特徴信号を学習部３に出力する。
【００１４】
学習部３は、学習手段の一具体例である。学習部３は、特徴信号取得部２から出力されたＭ個のＮ次元の特徴信号を用いて、行列Ｗ（Ｎ＊Ｍ）をＩＣＡ（Independent Component Analysis、独立成分分析）により学習させる（図２（ａ２））。
【００１５】
このＩＣＡは、入力データから独立した成分のみを自動的に抽出するものである。例えば、ＩＣＡに設定する確率密度関数を優ガウス分布とすることで、出力データのうちの１つの値が高く、その他の値が低くなるように、行列Ｗの学習を行うことができる。上記ＩＣＡにより学習された行列Ｗは、特徴信号の成分があると、対応する出力が高くなる（図２（ａ３））。したがって、マーカの形状パターンを示す特徴信号を用いて行列Ｗの学習を行うことで、このマーカの形状パターンの成分があると、対応する出力が高くなる。学習部３は上記学習した行列Ｗをコード情報算出部４に出力する。
【００１６】
コード情報算出部４は、コード情報算出手段の一具体例である。コード情報算出部４は、学習部３から出力された行列ＷのＮ＊（Ｎ−Ｍ）の成分を作成し、該行列ＷをＮ＊Ｎの疑似直交行列とする（図２（ａ４））。
【００１７】
このように、上記種とする特徴信号を用いてＩＣＡによる行列Ｗ（Ｎ＊Ｍ）の学習を行い、その分離性能（Ｍ（Ｎ＊Ｍ）行列）を維持する。さらに、行列Ｗ（Ｎ＊Ｍ）にＮ＊（Ｎ−Ｍ）成分を含ませることで、例えば、種の特徴信号群（図２（ａ１））に対して独立なコード群（図２（ａ５））を付加できる。これにより、種の特徴信号を変えれば、同一のＮ次元でも様々なコード情報が作成でき、表現できる情報量を増加させることができる。さらに、コード情報のビット数を増加させることなく、その情報量を簡易に増加させることができる。
【００１８】
例えば、特徴信号の組合せ種類をｑ種類とすると、ｑＣｍ＊（Ｎ−Ｍ）のコード表現が可能となる。より具体的には、４個の特徴信号群に対して、１２個のコード群（１２ｂｉｔ＝０〜４０９５）が作成できた場合を想定する。特徴信号の組合せ種類をｑ＝１０にすると、ｑＣｍ＝１０Ｃ４＝（１０＊９＊８＊７）／（４＊３＊２＊１）＝２１０のコード表現が可能となる。さらに、１２個のコード群により４０９６のコード表現が可能となる。したがって、ｑ＝１０の場合は、８６０１６０のコード表現が可能となる。
【００１９】
同様に、特徴信号の組合せ種類をｑ＝１００にすると、ｑＣｍ＝１００Ｃ４＝（１００＊９９＊９８＊９７）／（４＊３＊２＊１）＝３９２１２２５のコード表現が可能となる。さらに、１２個のコード群により４０９６のコード表現が可能となる。したがって、ｑ＝１００の場合は、１６０６１３３７６００のコード表現が可能となる。以上のように、例えば、２バイト以上の情報量を増加させることができる。
【００２０】
コード情報算出部４は、上記疑似直交行列Ｗを直交拡散符号ＰＮ（PseudoNoise）Ｃｏｄｅを用いて分解して、コード情報を算出する（図２（ａ５））。次に、行列Ｗを直交拡散符号ＰＮ−Ｃｏｄｅを用いて分解する方法について、図３を用いて詳細に説明する。例えば、行列Ｗは、Ｎ（＝１２８）次元の画像を特徴軸Ｍ（＝１０）次元に写像するものとする。行列Ｗを直交拡散符号ＰＮ−Ｃｏｄｅを用いて分解するために、行列Ｗｂを設定し、この行列Ｗｂを下記（１）式を用いて表す（図３（ｂ１））。
Ｗ＝Ｗｂ＊ＰＮｃｏｄｅ    （１）式
【００２１】
ここで、Ｍ系列（最大長シフトレジスタ系列、Maximum-length shift-register sequence）の直交拡散符号ＰＮ−Ｃｏｄｅは、１）位相差０では自己相関が大きく位相差０以外では自己相関が十分に小さい、２）割り当てた符号間の相互相関が全ての位相差において十分に小さい、および、３）周期は２ｎ−１である、という特性を有している（図４）。したがって、上記特性を有するＭ系列の直交拡散符号ＰＮ−Ｃｏｄｅを用いて、行列Ｗの分解を行い、分解した行列Ｗを用いて、コード情報を算出する。これにより、コード情報の各ビットの自己相関を高くでき、ノイズ耐性を向上させることができる。すなわち、マーカ画像全体の特徴パターンでコード情報の各ビットの値を夫々表現できるため、マーカと識別して高精度に認識できるコード情報を生成できる。
【００２２】
下記（２）式に示すように、上記（１）式の両辺にＰＮｃｏｄｅの転置行列ＰＮｃｏｄｅ′を乗算する（図３（ｂ２））。
Ｗ＊ＰＮｃｏｄｅ′＝Ｗｂ＊ＰＮｃｏｄｅ＊ＰＮｃｏｄｅ′    （２）式
【００２３】
上記（２）式において、ＰＮｃｏｄｅ＊ＰＮｃｏｄｅ′は単位行列Ｉとなるため、上記（２）式は下記（３）式で表すことができる。
Ｗ＊ＰＮｃｏｄｅ′＝Ｗｂ＊Ｉ    （３）式
【００２４】
上記（３）式より、ＷｂをＷを用いて表現することができる。なお、ＷのＮ＊（Ｎ−Ｍ）をＡとすると、ＰＮｃｏｄｅ＊Ｗ′＊Ｉの値がＤＣ成分となるような未知数Ａを算出する。Ｉは、十分な数（例えば、１２８＊１００００）のノイズとし、Ａは最小２乗解とする。
【００２５】
コード情報算出部４は、上記（３）式を用いて、行列Ｗｂを算出する。
ここで、下記（４）式が成立する。なお、Ｗは直交ベクトルであり、Ｘは入力画像であり、Ｓは相関値である。
Ｓ＝Ｗ′＊Ｘ（Ｘ＝Ｗ＊Ｓ）  （４）式
【００２６】
上記（４）式を行列分解するために、下記（５）式のように変形できる（図３（ｂ３））。なお、行列Ｗｂ′は行列Ｗｂの転置行列である。
Ｓ＝ＰＮＣｏｄｅ′＊Ｗｂ′＊Ｘ    （５）式
【００２７】
コード情報算出部４は、上記算出した行列Ｗｂと、直交拡散符号ＰＮｃｏｄｅのＰＮ符号と、に基づいて、下記（６）式を用いて、コード情報を算出する（図３（ｂ３））。なお、下記（６）式において、コードＩ＠は、コード情報の＠番目のビットに対応した値であり、ＰＮ＠は、＠番目のＰＮ符号（ＰＮｃｏｄｅの縦ベクトル（Ｎ＊１））であり、Ｉｎｖ（Ｗｂ′）は、行列Ｗｂ′の逆行列である。
コードＩ＠＝Ｉｎｖ（Ｗｂ′）＊ＰＮ＠    （６）式
【００２８】
以上、本実施形態に係るコード情報生成装置１は、マーカの特徴を示すＭ個のＮ（Ｎ＞Ｍ＞２）次元の特徴信号を用いて、行列Ｗ（Ｎ＊Ｍ）をＩＣＡにより学習させ、学習された行列ＷのＮ＊（Ｎ−Ｍ）の成分を作成し、該行列ＷをＮ＊Ｎの疑似直交行列する。そして、コード情報生成装置１は、該行列Ｗを直交拡散符号ＰＮ−Ｃｏｄｅを用いて分解するために、行列Ｗｂを設定し、該行列Ｗｂを式（Ｗ＝Ｗｂ＊ＰＮｃｏｄｅ）で表し、該式の両辺に前記直交拡散符号の転置行列を乗算することで、行列Ｗｂを算出する。さらに、コード情報生成装置１は、該算出した行列の転置行列Ｗｂ′の逆行列に直交拡散符号の各ＰＮ符号を夫々乗算することで、コード情報を算出する。これにより、マーカにコード情報が重畳されている場合でも、そのマーカと識別して高精度に認識できる。さらに、行列ＷのＮ＊（Ｎ−Ｍ）の成分を作成し、該行列ＷをＮ＊Ｎの疑似直交行列とすることで、コード情報の情報量を簡易に増加させることができる。
【００２９】
コード情報生成装置１により生成されたコード情報をマーカに重畳する。例えば、コード情報は、マーカの各領域に対して配色を行うための色頻度情報とする。この色頻度情報は、例えば、予め設定された複数の所定色をマーカの各領域に対して夫々配色するための、該所定色の割合を示す情報である。なお、上記コード情報をマーカに重畳する方法は一例であり、これに限定されない。
【００３０】
次に、本実施形態に係るコード情報生成装置により生成されたコード情報をマーカに重畳し、そのコード情報を認識する実験を行った実験結果を説明する。
【００３１】
まず、認識したマーカ画像をＭ種類（この場合、０〜９の数字の１０種類）、Ｋ枚用意する（図５）。ＩＣＡにより学習を行う行列Ｗは、Ｎ＊Ｍ（この場合、１２８＊１０）とする。識別器は、用意したマーカ画像を用いてＩＣＡによる検出行列Ｗの学習を行う。これにより、識別器は、「０」〜「９」の１０個の独立成分を識別できる。
【００３２】
次に、識別器に上記学習した「０」のマーカ画像を認識させると、図６（ａ）に示す如く、識別器は「０」を出力し、マーカ画像を「０」として認識していることが分かる。また、識別器に、図６（ｂ）左図に示す如く、１１番目のＰＮ符号（コード情報の１１番目のビット）を表現した画像を認識させる。図６（ｂ）右図に示す如く、識別器が１１番目を出力させ、コード情報の１１番目のビットを認識していることが分かる。
【００３３】
さらに、識別器に、図６（ｃ）左図に示す如く、「０」のマーカ画像に、６１番目のＰＮ符号（コード情報の６１番目のビット）を表現した画像、及び、１０１番目のＰＮ符号（コード情報の１０１番目のビット）を表現した画像を重畳させた画像を認識させる。図６（ｃ）右図に示す如く、識別器が０、６１番目及び１０１番目を出力させ、「０」のマーカ画像、コード情報の６１番目のビット、及び、コード情報の１０１番目のビットを認識していることが分かる。以上の実験結果が示すように、本実施形態に係るコード情報生成装置により生成されたコード情報をマーカに重畳させて、マーカだけなくコード情報も高精度に認識できることが分かる。
【００３４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
本発明は、例えば、上記特徴信号取得部２、学習部３、及びコード情報算出部４が実行する処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することも可能である。
【００３５】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。
【００３６】
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００３７】
１  コード情報生成装置、２  特徴信号取得部、３  学習部、４  コード情報算出部
【図１】
2016130895.tif 000003
【図２】
2016130895.tif 000004
【図３】
2016130895.tif 000005
【図４】
2016130895.tif 000006
【図５】
2016130895.tif 000007
【図６】
2016130895.tif 000008