(57)【要約】  二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、長方形の基本パターン部を有し、  前記基本パターン部は、セル位置を特定するための複数個の位置検出パターンと、  前記二次元コードのサイズを示すバージョン情報と、を含み、前記バージョン情報を用いて、前記複数個の位置検出パターン間の距離を固定した状態で前記二次元コードのサイズを可変に設計することが可能になされていること特徴とする二次元コード。
2015174191.tif 000002
【特許請求の範囲】
【請求項１】
二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、
長方形の基本パターン部を有し、
前記基本パターン部は、
セル位置を特定するための複数個の位置検出パターンと、
前記二次元コードのサイズを示すバージョン情報と、を含み、
前記バージョン情報を用いて、前記複数個の位置検出パターン間の距離を固定した状態で前記二次元コードのサイズを可変に設計することが可能になされている二次元コード。
【請求項２】
前記複数個の位置検出パターンは互いに外形が異なる請求項１に記載の二次元コード。
【請求項３】
前記基本パターン部の外側に形成される周辺部を備える請求項１または２記載の二次元コード。
【請求項４】
前記複数個の位置検出パターンの内の２個の位置検出パターンの組み合わせについて、前記２個の位置検出パターンの中心を結ぶ直線が長方形の当該二次元コードの外部との境界に交差する２点間の距離は、前記２個の位置検出パターンの中心間の距離の２倍より大きい請求項３に記載の二次元コード。
【請求項５】
セル位置を特定するための複数の位置検出パターンを含む第１の二次元コードと、セル位置を特定するための複数の位置検出パターンを含む第２の二次元コードを、複数一括して撮影した画像を解析するシステムであって、
前記第１の二次元コードに含まれる位置検出パターンと、前記第２の二次元コードに含まれる位置検出パターンとによる、誤った位置検出パターンの組み合わせを除外する除外手段を含む二次元コードの解析システム。
【請求項６】
前記除外手段は、２つの前記位置検出パターン間の距離が所定の距離とならない場合には、前記２つの位置検出パターンの組み合わせを、一の二次元コードに含まれる位置検出パターンの組み合わせではない誤った位置検出パターンの組み合わせとして除外する請求項５に記載の二次元コードの解析システム。
【請求項７】
前記除外手段は、前記位置検出パターン同士の外形に基づいて組み合わせを除外する手段である請求項５または６に記載の二次元コードの解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元コード、二次元コードの解析システムに関する。
【背景技術】
【０００２】
二次元コードは、一次元コードと比較して、狭い面積に多くの情報を持つことができ、物品管理や、携帯電話を用いたウェブ誘導など、様々な用途で広く活用されている。二次元コードには、保持するデータ量によりコードの大きさを可変にできるものが知られている。このような二次元コードを解析する際には、事前にコードの大きさ、向きなどが不明なことが多く、二次元コードの撮影画像からこれら情報を判別することとなる。【０００３】
二次元コードは、撮影された画像の位置関係を検出するため、所定形状の位置検出パターンを有する。位置検出パターンは、二次元コード内で、単独で他の部分と容易に区別可能な形状を有する。解析時は、撮影した二次元コードの画像において、位置検出パターンを検出し、位置検出パターンの位置関係に基づいて変換を行う。位置検出パターンの検出は、解析の基礎となる処理であり、認識精度や、解析時間への影響が大きい。よって、二次元コードにとって、位置検出パターンの形状は、重要な要素である。【０００４】
従来の二次元コードとしては、主に特許文献１や特許文献２記載されたコードが知られている。【０００５】
また、二次元コードに求められるニーズとして、一度に複数のコードを同時に認識することがある。一度に複数のコードを同時に認識させることについて、例えば、棚に二次元コードを貼った同じ向きのダンボールがあり、これらダンボールの棚卸をする場合、ダンボールの近くに行きコードを一つ一つ認識させるよりも、遠くから一括して認識ができると、作業能率が向上する。このような一括認識は、例えばＲＦＩＤなどを利用して行うことが知られているが、ＲＦＩＤはメディア側にアンテナ等が必要で、メディアが高コストになる。これに対して、二次元コードは、紙に印字するだけで使えるため、低コストである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２５４０３７号公報
【特許文献２】米国特許第５５９１９５６号
【非特許文献】
【０００７】
【非特許文献１】ＪＩＳ  Ｘ  ０５１０：２００４
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献２の位置検出パターンを１個のみ有する二次元コード（アズテックコード）では、汚れや画像ブレのために、１個の位置検出パターンが識別できなければ、二次元コードの解析不良ということになってしまう。複数のコードを一括で認識させる場合、全てのコードが認識できなかった場合には、全てのコードを認識できるまで再撮影することが多く、認識精度が低いと、再撮影の回数が増え、複数のコードを一括で読み取るメリットが損なわれる。よって、二次元コードの複数認識には、単体の二次元コードを読み取る以上のコード読み取りの信頼性が望まれるため、位置検出パターンを１個のみ有する二次元コードはそもそも複数認識に適していなかった。【０００９】
この対策として、位置検出パターンをもう一つ持たせることにより、冗長化させるという方法があるが、この場合、後述する複数の位置検出パターンを有するコードと同じ問題が生じる。【００１０】
特許文献１の複数の位置検出パターンを有する二次元コードは、１つの位置検出パターンが汚れてしまっても、他の位置検出パターンで補完できる可能性があることから、認識の信頼性を高めやすい。【００１１】
ここで、特許文献１の二次元コードを複数一括で認識しようとすると、１画像内に複数の位置検出パターンが写り込むため、同形状の位置検出パターンの組み合わせが多数存在することとなる。この場合、同じ二次元コードに含まれる位置検出パターンの組み合わせを探しだす必要がある。複数の位置検出パターンを含む二次元コードを、複数一括で認識することを難しくしている技術的課題として大きく２点ある。【００１２】
１点目は、位置検出パターン間の距離に関する課題である。特許文献１のコードは、二次元コードのサイズをデータ量に応じて変化させる場合、位置検出パターンは常に頂点にあるため、位置検出パターン同士の距離はコードのサイズにより可変にすることとなる。このことは、特許文献１を参照している、文献３にも記載されている。一般的に、二次元コードはデータ量に応じて、コードのサイズを変化させることが求められる。よって、同じ二次元コードの位置検出パターンの組み合わせを探し出す際に、位置検出パターン間の距離が長い組み合わせ、短い組み合わせをすべて検出しなくてはならず、１画像に写りこんだ二次元コードの個数が多い場合、その計算量が膨大となる。【００１３】
２点目は、位置検出パターンの外形（輪郭）に関する課題である。複数の同じ外形の位置検出パターンが、近距離かつ、同じ向きに、存在する場合、同じ二次元コードに存在する位置検出パターンの組み合わせを探し出すことは困難であり、多数の位置検出パターンの組み合わせから、正しいコードの内容が得られるかどうか調べることが求められる。【００１４】
以上の通り、複数のコードの認識には複数の位置検出パターンを有する二次元コードを用いることにより、二次元コードの読み取りの信頼性が高まり、複数コードを一括で認識することによる効率化の効果が高まるが、デメリットとして解析が困難、解析可能であるとしても解析時間が長くなる、という問題があった。【００１５】
本発明は、複数の位置検出パターンを含む二次元コードにおいて、１画像内に多数の二次元コードが存在する場合にも、位置検出パターンの組み合わせが同じ二次元コードのものか容易に判別可能なことで、一括で認識する二次元コードの数が増えても解析処理への影響が少ない、二次元コード、及び二次元コードの解析システムの実現を目的とする。【００１６】
なお、二次元コードとしてセルの色から情報を読み取るカラーコードが提案されており、その場合、複数の位置検出パターンを、同じ形状であるが、異なる色にし、位置検出パターンを特定することが考えられる。しかし、大多数のコード発行プリンターはモノクロプリンターであり、プリンターやインキの状態、照明を含む外部環境に影響を受けやすいことから、精度に懸念が有る。ここでは、モノクロの二次元コードを例として説明を行う。
【課題を解決するための手段】
【００１７】
請求項１の発明では、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、長方形の基本パターン部を有し、上記基本パターン部は、セル位置を特定するための複数個の位置検出パターンと、上記二次元コードのサイズを示すバージョン情報と、を含み、上記バージョン情報を用いて、上記複数個の位置検出パターン間の距離を固定した状態で上記二次元コードのサイズを可変に設計することが可能になされている二次元コードである。
請求項２の発明では、上記複数個の位置検出パターンは互いに外形が異なる請求項１に記載の二次元コードである。
請求項３の発明では、上記基本パターン部の外側に形成される周辺部を備える請求項１または２記載の二次元コードである。
請求項４の発明では、上記複数個の位置検出パターンの内の２個の位置検出パターンの組み合わせについて、上記２個の位置検出パターンの中心を結ぶ直線が長方形の当該二次元コードの外部との境界に交差する２点間の距離は、上記２個の位置検出パターンの中心間の距離の２倍より大きい請求項３に記載の二次元コードである。
請求項５の発明では、セル位置を特定するための複数の位置検出パターンを含む第１の二次元コードと、セル位置を特定するための複数の位置検出パターンを含む第２の二次元コードを、複数一括して撮影した画像を解析するシステムであって、上記第１の二次元コードに含まれる位置検出パターンと、上記第２の二次元コードに含まれる位置検出パターンによる、誤った位置検出パターンの組み合わせを除外する除外手段を含む二次元コードの解析システムにである。
請求項６の発明では、上記除外手段は、２つの上記位置検出パターン間の距離が所定の距離とならない場合には、上記２つの位置検出パターンの組み合わせを、一の二次元コードに含まれる位置検出パターンの組み合わせではない誤った位置検出パターンの組み合わせとして除外する請求項５に記載の二次元コードの解析システムである。
請求項７の発明では、上記除外手段は、上記位置検出パターン同士の外形に基づいて組み合わせを除外する手段である請求項５または６に記載の二次元コードの解析システムである。
【発明の効果】
【００１８】
本発明の二次元コードは、位置検出パターンを複数有し、データ量に応じてコードのサイズを可変に設計可能であり、１画像中に複数の二次元コードが存在するように撮影した場合でも、位置検出パターンの組み合わせが、同じ二次元コードに含まれる位置検出パターンか容易に判別がつくため、解析処理を少なくできる。
【図面の簡単な説明】
【００１９】
【図１】図１は、特許文献１に記載された正方形の４つのコーナーのうち３つのコーナーに３個の同じ形状の位置検出パターンを配置した二次元コードを、隣接して４個配置した状態で１画像に入るように撮影した場合の画像を示す図である。
【図２】図２は、本発明の第１実施形態の二次元コードを、図１と同様に複数並べたものである。
【図３Ａ】図３Ａは、本発明の第２実施形態における位置検出パターンの外形が全て異なる二次元コードを、図１と同様に４つ並べた図である。
【図３Ｂ】図３Ｂは、図３Ａの二次元コードＡにおける外形が全て異なる位置検出パターンを示す図である。
【図４】図４は、第１実施形態の二次元コードの構成を示す図である。
【図５Ａ】図５Ａは、位置検出パターンの候補削減の効果の大きい構成において、異なる二次元コードの位置検出パターンであると区別するための条件について説明する図（その１）である。
【図５Ｂ】図５Ｂは、位置検出パターンの候補削減の効果の大きい構成において、異なる二次元コードの位置検出パターンであると区別するための条件について説明する図（その２）である。
【図６】図６は、図５Ｂの条件を縦長の長方形の二次元コードについて示す図である。
【図７Ａ】図７Ａは、基本パターン部の中心と二次元コードの中心がずれた（相対移動した）例を示す図（その１）である。
【図７Ｂ】図７Ｂは、基本パターン部の中心と二次元コードの中心がずれた（相対移動した）例を示す図（その２）である。
【図８】図８は、方向が特定できる、２個の位置検出パターンを用いた二次元コードを示す図である。
【図９】図９は、第２実施形態の二次元コードの構成を示す図である。
【図１０Ａ】図１０Ａは、第２実施形態の二次元コードに記録されるデータ構成例を示す。
【図１０Ｂ】図１０Ｂは、第２実施形態の二次元コードに記録される実データの構成例を示す。
【図１１Ａ】図１１Ａは、二次元コードの周辺部のバージョンに応じた変化を説明する図（その１）である。
【図１１Ｂ】図１１Ｂは、二次元コードの周辺部のバージョンに応じた変化を説明する図（その２）である。
【図１２Ａ】図１２Ａは、第２実施形態の二次元コードの基本パターン部の全体構成を示す。
【図１２Ｂ】図１２Ｂは、第２実施形態の二次元コードの基本パターン部の構成を示す図であり、ブロックおよび分離パターンを示す。
【図１３】図１３は、横方向について、基本パターン部の位置を基本パターン部移動情報でどのように表すか説明する図である。
【図１４】図１４は、バージョン１９×１９の二次元コードにおいて、基本パターン部を移動させた例を示す。
【図１５】図１５は、バージョン４×４の二次元コードの例を示す図である。
【図１６】図１６は、バージョン５×５の二次元コードの例を示す図である。
【図１７】図１７は、二次元コードを作成して提供する作成システムのハードウェア構成を示す図である。
【図１８】図１８は、ユーザーが、ユーザーハードウェアを介してシステムハードウェアにアクセスし、所望の二次元コードを作成するエンコード処理の手順を示すフローチャートである。
【図１９】図１９は、実施形態の二次元コードを読み取り、二次元コードを解析する二次元コード解析装置のハードウェア構成を示す図である。
【図２０】図２０は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。
【図２１】図２１は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
図１は、特許文献１に記載された正方形の４つのコーナーのうち３つのコーナーに３個の同じ形状の位置検出パターンを配置した二次元コードを、隣接して４個配置した状態で１画像に入るように撮影した場合の画像を示す図である。説明用に４個の二次元コードは簡略図としてある。
【００２１】
図１に示すように、二次元コードＡ、Ｂ、Ｃ，Ｄが同じ向きに近接して配置されている。二次元コードＡは、３個の位置検出パターンＡ１、Ａ２、Ａ３を有し、他の二次元コードＢ、Ｃ、Ｄも同様に３個の位置検出パターンを有する。二次元コードＡだけが、二次元コードのセル数（バージョン）が異なり、位置検出パターン間の距離が異なる。３個の位置検出パターン（Ａ１、Ａ２、Ａ３）の位置関係は、二次元コードＡの仕様による所定の位置関係を有し、他の３個の二次元コードＢ、Ｃ、Ｄの位置検出パターンは同じ仕様による位置関係を有する。
【００２２】
読み取り時には、位置検出パターンの組み合わせとして、図１において、Ｂ３−Ｄ１と、Ｃ２−Ｄ１と、Ｄ１−Ｄ２と、の距離が全て等しいとした場合、（Ａ１、Ａ２、Ａ３）、（Ｂ１、Ｂ２、Ｂ３）、（Ｃ１、Ｃ２、Ｃ３）、（Ｄ１、Ｄ２、Ｄ３）の４つの組み合わせの他に、例えば、（Ｄ１、Ｂ３、Ｄ２）や、（Ａ２、Ｃ２、Ｄ２）の組み合わせも候補として検出されることとなる。
【００２３】
二次元コードの解析を行う場合には、二次元コードの形状に基づいて３個の位置検出パターンを特定し、さらに３個の位置検出パターンからセル座標を算出する。そして、二次元コードの３個の位置検出パターン以外の部分のセルの値（明または暗）から記録されたデータを読み取る。
【００２４】
図１の画像例では、１２個の同じ形状の位置検出パターンが存在し、位置検出パターンの組み合わせとして３個選択するが、３個の組み合わせの中には（Ａ１、Ｄ１、Ｄ３）のように明らかに誤りである組み合わせもある。また、（Ｃ２、Ａ２、Ｄ２）のように、位置検出パターン同士の関係としては正しいものの、一の二次元コードに含まれない組み合わせが多数ある。しかし、文献３の二次元コードは、位置検出パターン間の距離が型番（バージョン）により異なるため、位置検出パターン間の距離だけでは除外することができない。この場合、３個の位置検出パターンから算出したセルの座標に基づいて、さらに詳しくコード内の情報から、二次元コードがあるか判断する必要があり、その分解析処理が増えることとなる。そのため、複数の位置検出パターンの位置関係だけで除外できない組み合わせが多いと、その分解析時間が長くなるという問題を生じる。
【００２５】
図２は、本発明の第１実施形態の二次元コードを、図１と同様に複数並べたものである。本発明の第１の特徴は、コードに記録する情報量を増やすため、バージョンを変えたとしても、位置検出パターン間の距離が変わらない点にある。すなわち、従来のコードでは、図１のように型番によって位置検出パターン間の距離が異なるため、図１の例えば、（Ａ２、Ｂ２、Ｃ２）の誤検出の組み合わせを距離の情報から除外することができなかった。本発明のコードは、図２に示したとおり、コードに記録する情報が増加した場合に大きくなるのは、後述する基本パターン部２の周囲に配置された、増加した情報を記録する周辺部５であり、位置検出パターンが含まれる基本パターン部の寸法及び形状は常に固定である。そのため、位置検出パターン同士の距離を比較するだけの簡単な計算で、位置検出パターンの組み合わせの候補からより多くの組み合わせを除外することができる。
【００２６】
前述した通り、位置検出パターンの組み合わせを、簡単な計算で、より多くの組み合わせを除外できるため、複数のコードを認識する解析時間の短縮において本発明の二次元コードは優位性がある。
【００２７】
図３Ａは、本発明の第２実施形態における位置検出パターンの外形が全て異なるる二次元コードを、図１と同様に４つ並べたものである。図３Ｂは、図３Ａの二次元コードＡにおける外形が全て異なる位置検出パターンを示す図である。図３Ａの位置検出パターンＡ１が図３ＢのＡ１に対応し、図３Ａの位置検出パターンＡ２が図３ＢのＡ２に対応し、図３Ａの位置検出パターンＡ３が図３ＢのＡ３に対応し、図３Ａの位置検出パターンＡ４が図３ＢのＡ４に対応する。二次元コードＢ、Ｃ、Ｄも同様の位置検出パターンを有する。本発明の第２の特徴は、１個の二次元コードに含まれる複数の位置検出パターンの外形を、互いに異なったものとすることで、位置検出パターンの誤った組み合わせ候補を除外する点にある。すなわち、従来のコードでは、図１の、例えば、（Ａ２、Ｂ２、Ｃ２、Ｄ２）の誤った組み合わせを除外することができなかった。しかし、第２実施形態では、図３でこれに相当する（Ａ２、Ｂ２、Ｃ２、Ｄ２）の組み合わせにおいて、位置検出パターンが全て同じ外形となるため、位置検出パターンの組み合わせから除外することが可能である。これは、第２実施形態が、異なる外形を持つ４個の位置検出パターンではなく、異なる外形を持つ３個の位置検出パターンであっても、同様にこの位置検出パターンの外形に基づいて、誤った組み合わせを除外できる。
【００２８】
この場合の組み合わせを削減する効果を、数値で示す。
図１のように、二次元コードが４個あり、それぞれのコードに位置検出パターンが３個あった場合、撮影画像に計１２個の位置検出パターンが存在することになる。計１２個の位置検出パターンのうち３個の組み合わせすべてについて同一の二次元コードのものであるかチェックするとする。この場合、組み合わせは１２Ｃ３＝２２０通りとなる。もし、１個の二次元コードに４個の同じ位置検出パターンがある場合には、撮影画像内の位置検出パターンの個数は１６個になり、その組み合わせは、１６Ｃ４＝１８２０通りとなる。
【００２９】
これに対して、位置検出パターンの外形が全て異なる場合、３個の位置検出パターンでは、４Ｃ１×４Ｃ１×４Ｃ１＝６４通りとなり、４個の位置検出パターンでは、４Ｃ１×４Ｃ１×４Ｃ１×４Ｃ１＝２５６通りとなり、組み合わせの数が大幅に減ることがわかる。
【００３０】
なお、説明のため、第１実施形態と第２実施形態の特徴を分けて説明するが、両方の特徴を備えたコードも当然可能であり、両方の特徴の効果により、複数のコードを認識する処理に更に適したコードとなる。
【００３１】
図４は、第１実施形態の二次元コードの１例の構成を示す図である。
図４の二次元コード１は、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した正方形の二次元コードであり、一定形状の正方形の基本パターン部２と、基本パターン部２の周囲に設けられた周辺部５と、を有する。基本パターン部２は、セル位置を特定するための３個の位置検出パターン３Ａ−３Ｃを有する。ここで、一定形状とは、寸法及び形状が固定されている意味である。二次元コード１の位置検出パターン３Ａ−３Ｃを除いた部分はセル化されており、セルの明と暗で情報（データ）を記録する。基本パターン部２の位置検出パターン３Ａ−３Ｃを除いた部分がデータ領域４である。データ領域４は、スペックデータと、必要に応じて実データと、を含む。スペックデータは、基本パターン部２の外側に形成される周辺部５の大きさを決定するバージョン情報などの、周辺部５のデータ配置に関する情報を含む。周辺部５は実データを含み、データ領域４の実データと周辺部５の実データが、二次元コードの情報を表す。ここでは、形状が正方形の二次元コードを例として説明するが、二次元コードの形状は長方形でもよく、長方形には正方形も含まれるものとする。
【００３２】
位置検出パターン３Ａ−３Ｃは、特許文献１に記載された位置検出パターンと同様に、中心に位置する正方形の暗部分と、正方形の暗部分の周囲に設けられた正方形の枠状の暗部分と、を有し、間は明部分である。図４において、位置検出パターン３Ａに対して、位置検出パターン３Ｂは横方向に、位置検出パターン３Ｃは縦方向に、隣接している。
位置検出パターンの候補を除外する効果の大きい構成について説明する。図示のように、位置検出パターン３Ａと３Ｂの中心間の距離はｄ１であり、位置検出パターン３Ａと二次元コード１の左側の境界までの距離はｄ２／２であり、位置検出パターン３Ｂと二次元コード１の右側の境界までの距離はｄ２／２である。したがって、二次元コード１の横方向の幅は、ｄ１＋ｄ２である。実施形態の二次元コード１では、ｄ１＜ｄ２であるように設定される。言い換えれば、位置検出パターン３Ａと３Ｂの中心を結ぶ直線が長方形（正方形）の二次元コード１の外部との境界に交差する２点間の距離は、位置検出パターン３Ａと３Ｂの中心間の距離の２倍より大きい。
【００３３】
なお図示していないが、位置検出パターン３Ａと３Ｃの中心間の距離はＤ１であり、位置検出パターン３Ａと二次元コード１の上側の境界までの距離はＤ２／２であり、位置検出パターン３Ｃと二次元コード１の下側の境界までの距離はＤ２／２である。（ここではＤ＝ｄ）したがって、二次元コード１の横方向の幅は、Ｄ１＋Ｄ２であり、実施形態の二次元コード１では、Ｄ１＜Ｄ２であるように設定され、上記の条件が成立する。
二次元コードの位置検出パターンの中心間の距離がｄ１よりも長くなる場合、異なる二次元コードの位置検出パターンと判断できていたが、全ての二次元コードについてｄ１＜ｄ２が成り立つ場合、他の二次元コードとの位置検出パターンの中心距離がｄ１となる場合が存在しなくなるため、位置検出パターンの組み合わせの除外がさらに容易になる。
【００３４】
次に、画像中で図４の二次元コードが近接して存在する場合に、異なる二次元コードの位置検出パターンであると区別するための条件について説明する。
図５Ａ及び図５Ｂは、位置検出パターンの候補削減の効果の大きい構成における条件を説明する図である。
【００３５】
図５Ａに示すように、１つの二次元コードの２個の位置検出パターン３Ｐおよび３Ｑがあり、その中心間の距離はｄであるとする。図示のように、位置検出パターン３Ｐおよび３Ｑを中心とする半径ｄ／２の半円とその間を結ぶ長方形からなる長円の範囲に、他の二次元コードが存在しないとする。言い換えれば、この二次元コードの外部との境界（周辺部の外部との境界）は、この長円の範囲外にあるとする。ここでは、他の二次元コードも同様の条件を有するとする。この場合、位置検出パターン３Ｐおよび３Ｑからの中心間の距離がｄより短い他の二次元コードの位置検出パターンは存在しない。言い換えれば、二次元コードの境界を、複数の位置検出パターンのすべての組み合わせについて図５Ａの範囲の外側になるように設定すれば、位置検出パターン間の距離により、同一の二次元パターンに属する位置検出パターンであるか否かが判定できる。実際には、判定の誤差も考慮して、ある程度余裕をもって二次元コードの境界を設定することが必要である。
【００３６】
正方形の二次元コードについての上記の条件は、図５Ｂに示すように、４個の位置検出パターン３Ａ−３Ｃの中心が長方形の頂点をなり、二次元コード１の外形（外部との境界）も相似の正方形であるとする。この場合、横方向の位置検出パターン３Ａと３Ｂの中心間距離をｄ１とすると、二次元コード１の横幅はｄ１＋ｄ２で、ｄ１＜ｄ２である。縦方向についても同様の条件がある。２方向でこの条件を満たせば、斜め方向の位置検出パターン３Ｓと３Ｔについての同様の条件も満たす。
【００３７】
これまでの説明は、正方形の二次元コードについて行ったが、本発明は長方形の二次元コードでもよい。言い換えれば、本発明での長方形は正方形を含む。
図６は、図５Ｂの条件を縦長の長方形の二次元コードについて示す図である。横方向については、図５Ｂと同じである。縦方向については、位置検出パターン３Ａと３Ｃの中心間距離をＤ１とすると、二次元コード１の縦幅はＤ１＋Ｄ２で、Ｄ１＜Ｄ２であれば、他の二次元コードの位置検出パターンと中心間の距離で区別できる。なお、図６の場合も、斜め方向について同様の条件が成り立つ。このように、バージョンが変わっても位置検出パターン間距離を一定とした上で、さらに上述のようなコード設計とすることで、さらに複数のコードの認識に適したコードとなる。
【００３８】
これまでの説明は、二次元コードの外形と基本パターン部が相似形で、複数個の位置検出パターンが基本パターン部のコーナーに位置する場合を説明したが、本発明は、これに限定されない。例えば、複数個の位置検出パターンが基本パターン部のコーナーに位置する必要はなく、前述の条件が成り立つならば、基本パターン部の内側の周辺部との境界から離れた位置に配置してもよい。
【００３９】
また、基本パターン部の中心と二次元コードの中心が一致する必要はない。
図７Ａ及び図７Ｂは、基本パターン部の中心と二次元コードの中心がずれた（相対移動した）例を示す図である。
図７Ａに示すように、正方形の基本パターン部２は、正方形の二次元コード１に対して、左上の頂点が一致するように配置される。この場合も、横方向および縦方向の位置検出パターン間距離をｄ１とすると、二次元コード１の横幅および縦幅はｄ１＋ｄ２で、ｄ１＜ｄ２であるとの条件が満たされる。この条件が満たされるならば、他の二次元コードを、方向を変えずに隣接して配置した場合であれば、隣接した他の二次元コードの位置検出パターンとの中心間距離はｄ２以上であり、他の二次元コードの位置検出パターンと中心間の距離で区別できる。
【００４０】
ただし、図７Ｂに示すように、４個の二次元コード１Ａ−１Ｄをそれぞれ９０度ずつ異なるように回転して、基本パターン部２Ａ−２Ｄが近接するように配置すると、図で１説明したような状態になり、他の二次元コードの位置検出パターンとの間で、中心間の距離で区別できなくなる。
【００４１】
そのため、基本パターン部の中心と二次元コードの中心がずれた二次元コードにする場合には、隣接して配置する他の二次元コードは同一方向とするように制限してコードを配置することが望ましい。なお、図７Ａに示すように、基本パターン部と二次元コードの頂点が一致するようにずらすのではなく、基本パターン部の外側のすべての方向で周辺部が存在するようにずらす。そしてすべての方向で周辺部の幅を十分に大きくして、位置検出パターンと二次元コードの境界までの距離が、２つの位置検出パターン間の中心距離の１／２より広くする。このような構成によれば、図７Ｂのように他の二次元コードを回転して隣接させても、他の二次元コードの位置検出パターンと中心間の距離で区別できる。
【００４２】
以上説明した例では、３個の位置検出パターンは、同じ形状であったが、個数は４個以上でも良く、互いに異なる形状の位置検出パターンを設けてもよい。
図８は、方向が特定できる、２個の位置検出パターンを用いた二次元コードを示す図である。
【００４３】
図８の二次元コード１は、２個の異なる形状の位置検出パターン３Ｒおよび３Ｓを有し、３Ｒおよび３Ｓは方向が特定できる形状であることが、図４の二次元コードと異なり、他は同じである。図８の二次元コード１は、一定形状の長方形の基本パターン部２と、基本パターン部２の周囲に設けられた周辺部５と、を有する。基本パターン部２は、セル位置を特定するための２個の形状の異なる位置検出パターン３Ｒおよび３Ｓを有する。基本パターン部２の位置検出パターン３Ｒおよび３Ｓを除いた部分がデータ領域４である。データ領域４は、スペックデータと、必要により実データと、を含む。スペックデータは、基本パターン２の外側に形成される周辺部５の大きさを決定するバージョン情報などの、周辺部５のデータ配置に関する情報を含む。周辺部５は実データを含み、データ領域４の実データと周辺部５の実データが、二次元コードの情報を表す。
【００４４】
図８でも、位置検出パターン３Ｒおよび３Ｓの中心間距離をｄ１とし、位置検出パターン３Ｒおよび３Ｓの中心を結ぶ直線が二次元コード１の外部との境界と交差する部分の距離、すなわち二次元コード１の横幅をｄ１＋ｄ２とすると、ｄ１＜ｄ２の条件を満たすことにより、位置検出パターンの組み合わせの候補を選択する場合の候補数を減少させて処理量を低減できる。さらに、図８の位置検出パターン３Ｒおよび３Ｓは、方向が特定できる形状を有し、形状も異なるため、１つの二次元コードの２個の位置検出パターンを特定するのがさらに容易になる。
【００４５】
なお、位置検出パターン３Ｒおよび３Ｓの中心から、二次元コードの上側または下側の境界までの距離をｄ３とする。ｄ３がｄ２以上であれば、上下に隣接して他の二次元コードが配置される場合にも、距離を比較することにより、位置検出パターンの組の候補を選択する場合の候補数を減少させることができる。
【００４６】
図８では、方向が特定できる位置検出パターンを使用したが、さらに複数個の位置検出パターンの少なくとも一部を異なる形状として、基本パターン部のコーナーの位置も特定できるようにすることが考えられる。このように、第１実施形態の二次元コードは、コードのサイズを変化させても、位置検出パターン間距離が変わらないため、位置検出パターン同士の距離に基づいて誤検出を除外することが可能である。誤った位置検出パターンの組み合わせは、一の二次元コードに含まれる位置検出パターンの組み合わせではないとして除外される。また、さらに、位置検出パターン間距離と、周辺部のサイズを上述したように設計することで、位置検出パターン同士の距離に基づいて誤検出を除外する効果はさらに増す。
次に説明する第２実施形態は、コーナーごとに異なる位置検出パターンを設けた二次元コードである。
【００４７】
図９は、第２実施形態の二次元コードの１例の構成を示す図である。
第２実施形態の二次元コード１０は、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した二次元コードであり、一定形状の基本パターン部１１を有する。基本パターン部１１は、セル位置を特定するための位置検出パターン１２Ａ−１２Ｄと、スペックデータと実データからなる結合データ含む。また、基本パターン部に入られなかった実データは、周辺部２０に記録する。結合データを表すデータ構造は、スペックデータと実データの区切りが明確である構造とする。
【００４８】
図９において、基本パターン部１１内の位置検出パターン１２Ａ−１２Ｄを除く領域、すなわち、参照番号１３で示す領域は結合データのデータ領域である。領域１３には、スペックデータと実データからなる結合データが記録される。領域１３には、さらに位置補正パターンおよび後述する分離パターンが必要により設けられる。また、領域１３には、結合データの誤り訂正を行う基本パターン部訂正データも記録される。スペックデータは、領域１３内の所定の位置に記録される。
【００４９】
スペックデータのデータ量は、周辺部のサイズを決定するバージョン情報や、二次元コード１０における基本パターン部１１の位置情報、周辺部の誤り訂正のレベル情報、空白に関する情報などのデータ量に応じて増減する。しかし、スペックデータのデータ量の変化量は、データ領域１３に記録できる範囲内である。領域１３の内、スペックデータを記録した残りの部分に実データが記録される。したがって、基本パターン部１１内に記録可能な実データのデータ量は、スペックデータのデータ量に応じて増減する。したがって、基本パターン部１１内に記録される実データのデータ量は、スペックデータのデータ量に応じて変化し、データ領域１３がスペックデータで一杯になる場合には、データ領域１３は実データを含まない場合もあり得る。
【００５０】
周辺部２０は、基本パターン部１１の周辺部分であり、ここにも実データを記録するセルが存在する。スペックデータの増加や、実データの増加により、実データが基本パターン部に記録しきらない場合は、その実データを周辺部２０に記録する。
【００５１】
図９に示した位置検出パターンは、正方形の枠内に正方形を有する形状の第１位置検出パターン１２Ａと、第１位置検出パターン１２Ａより小さな正方形の枠形状の第２位置検出パターン１２Ｄと、長方形の第３位置検出パターン１２Ｂおよび第４位置検出パターン１２Ｃと、を有する。４個の位置検出パターン１２Ａ−１２Ｄは、基本パターン部１１の四隅（４つのコーナー）に配置されている。この場合、第１位置検出パターン１２Ａと第２位置検出パターン１２Ｄは、対角上に配置され、第３位置検出パターン１２Ｂと第４位置検出パターン１２Ｃは、対角上に配置され、第３位置検出パターン１２Ｂおよび第４位置検出パターン１２Ｃの長辺は、第１位置検出パターン１２Ａの辺と同じ長さであり、第３位置検出パターン１２Ｂおよび第４位置検出パターン１２Ｃの短辺は、第２位置検出パターン１２Ｄの辺と同じ長さであり、第３位置検出パターン１２Ｂおよび第４位置検出パターン１２Ｃの短辺の一方は、第１位置検出パターン１２Ａの辺の延長上に配置され、第３位置検出パターン１２Ｂおよび第４位置検出パターン１２Ｃの長辺の一方は、第２位置検出パターン１２Ｄの辺の延長上に配置されることが望ましい。図９に示した位置検出パターン１２Ａ−１２Ｄは、それぞれ単独で容易に識別することができ、一部の位置検出パターンが汚れ等で識別できない場合でも、識別できた残りの位置検出パターンの組から、二次元コードにおけるセルの座標位置を容易に求めることができる。
【００５２】
位置検出パターン１２Ａと１２Ｃおよび１２Ｂと１２Ｄの横方向の中心間距離をｄ１とすると、二次元コードの横方向および縦方向の幅は、ｄ１＋ｄ２であり、ｄ１＜ｄ２である。これにより、位置検出パターンの組の候補を選択する場合の候補数を減少させて処理量を低減できる。さらに、図９の位置検出パターン１２Ａ−１２Ｄは、すべて形状が異なるため、複数のコードを認識する時に１つの二次元コードの４個の位置検出パターンを特定し、二次元コード内のセル位置の算出が容易になる。
【００５３】
図１０Ａは、第２実施形態の二次元コードに記録されるデータ構成例を示す。図１０Ｂは、第２実施形態の二次元コードに記録される実データの構成例を示す。
【００５４】
図１０Ａに示すように、スペックデータはすべて基本パターン部１１内に記憶され、実データは基本パターン部１１内の残余部分に記録され、基本パターン部に納まりきらない場合には、基本パターン部の周囲に形成される周辺部に記録される。スペックデータのデータ量は増減するため、基本パターン部１１内のスペックデータと実データの境界は、スペックデータのデータ量に応じて変化する。また、基本パターン部１１内のデータ領域１３をブロックに分割する場合、スペックデータと実データの境界がブロック内に存在する場合が起こり得る。
【００５５】
スペックデータは、周辺部におけるデータの配置に関する情報を表すデータである。スペックデータは、周辺部のサイズを決定する縦・横のバージョン情報、周辺部の誤り訂正データの量が可変であれば周辺部誤り訂正レベル情報、周辺部実データを配置しないブロックを決定する空白情報（データとして機能しないブロックの情報）、および基本パターン部移動情報等を有する。
【００５６】
スペックデータは、二次元コードの仕様を表すデータだが、基本パターン部１１が常に一定形状である場合、実質的に周辺部２０のスペックを定義するものとみなすことができる。
【００５７】
スペックデータは、発行する二次元コード１０によりデータ量が増減し、周辺部に記録するデータ量およびデータ配置に影響する情報を有する。一方で、スペックデータは、データ量が変化するが、基本パターン部１１におけるスペックデータ内の情報はあらかじめ定められたで順に配置して記録される。基本パターン部１１のデータ領域１３の残余部分に実データが記録される。
【００５８】
特許文献１等に記載があるＱＲコード（登録商標）では、撮影画像から、位置検出パターンの画素数と、位置検出パターン同士の距離の画素数と、を計測し、そこからスペックデータであるバージョン情報を算出することも可能である。これを、ＱＲコード（登録商標）の規格（ＪＩＳ  Ｘ  ０５１０：２００４）によれば、参照復号アルゴリズムにおいて、仮のシンボル型番の求め方として、記載されている。このバージョン情報は、撮影画像の二次元コードの形状から算出しており、コードを斜め上から撮影した場合や、インキが滲んだ場合などでは、誤差が発生する。二次元コードには過酷な環境下での撮影や、劣悪な印字での認識も求められるため、この誤差を生じさせないために、バージョン情報などのスペック情報を、読み取りに必要な冗長性とともに、二次元コードにデータとして持つことが望ましい。
【００５９】
図１０Ｂに示すように、実データは、メッセージおよびメッセージを修飾するヘッダー（メッセージ種類（メッセージのエンコード）・メッセージサイズ）を合わせたセグメントを、メッセージ数だけ並べる。メッセージは、ユーザーが二次元コードに格納するデータのことであり、複数のメッセージを格納でき、メッセージごとにセグメントを付与する。また、特殊なセグメントとして、メッセージを含まない、終端フラグだけが入ったセグメントを用意し、実データの容量が余った場合に終端フラグのセグメントを配置し、その後に埋め草を配置する。したがって、終端フラグは、メッセージの有無を示し、最後のセグメントの終端フラグはtrueであり、それ以外のセグメントの終端フラグはfalseである。
【００６０】
図１０Ａに示す、スペックデータと、実データは、１ブロック当たりのデータ容量に従い、ブロック単位に分割される。同様に誤り訂正データも、ブロック単位に分割する。
【００６１】
データには誤り訂正データが付される。誤り訂正データにリードソロモン符号を使った場合、誤り訂正はワード単位で行われるため、１ワードを１ブロックとすることが望ましい。１ワードが複数のブロックにまたがる場合、１つのブロックに汚れが発生した場合でも、そのブロックが関係する全てのワードが誤り訂正の対象となり、訂正の効率が悪くなる。訂正原因となる汚れや、スポットライトによる色とびは、１箇所に集中することが多いが、１ワードを１ブロックにすることにより同時に訂正対象となるデータを１箇所にまとめる効果があり、効率的な訂正を可能にし、コードを認識させる可能性を高める。
【００６２】
ここで、スペックデータについてさらに説明する。スペックデータのデータ量は、周辺部の大きさを決定するバージョン情報により増減させることができる。すなわち、周辺部が小さい、もしくは存在しない場合には基本パターン部内のスペックデータの量を少なくし、周辺部が大きい場合には基本パターン部内のスペックデータの量を多くすることで、コードの情報量にあわせてスペックデータのデータ量を増減させることが可能である。従来例のようなスペックデータのデータ量を固定した場合、コードのサイズが小さい場合に、コードの面積当たりのスペックデータのデータ量が占める割合が大きくなるという課題もあったが、本実施形態ではこの問題を解決可能である。
【００６３】
上記のように、スペックデータは、バージョン情報を含み、バージョン情報に基づいて二次元コードの大きさ（サイズ）が決定される。例えば、バージョン情報として、コードの横のサイズを表す横バージョン情報と、コードの縦のサイズを表す縦バージョン情報という２種類のデータがあれば、コードは任意のサイズの長方形となる。二次元コードは、バージョン情報を用いて、複数個の位置検出パターン間の距離を固定した状態で二次元コードのサイズを可変に設計することが可能になされている。
【００６４】
図１１Ａ及び。図１１Ｂは、二次元コードの周辺部のバージョンに応じた変化を説明する図である。
第２実施形態の最小のサイズである二次元コード１０は、図１１Ａに示した基本パターン部１１のみを有する最小サイズのコードであり、基本パターン部１１のみを有する最小サイズの正方形の二次元コードを、バージョン横１×縦１と呼ぶ。
【００６５】
第２実施形態の二次元コード１０は、周辺部２０のサイズを縦方向および横方向にそれぞれ伸張できる。横バージョンが２、縦バージョンが３の場合、バージョン横２×縦３と表記する。二次元コード１０は、基本パターン部と同じ形状のバージョン横１×縦１を基準とし、バージョン数とともに二次元コード全体のサイズが増加する。バージョンが１上がるごとに、サイズが１単位大きくなる。この例ではバージョンは１から２６まで選択可能であるが、これに限定されるものではない。
【００６６】
図１１Ｂに示すように、横バージョンの増加では、バージョン数の増加にしたがって、周辺部２０の横方向のサイズが、左側（Ｙ２）、右側（Ｙ３）、左側（Ｙ４）、右側（Ｙ５）…という具合に交互に１単位ずつ増加する。言い換えれば、１つ増加するバージョン数が偶数の場合、左側に１単位追加する。同じく１つ増加するバージョン数が奇数の場合、右側に１単位追加する。したがって、横バージョンが奇数の場合には、周辺部２０の左右の幅は等しく、偶数の場合には、周辺部２０の左側が右側より１単位広い。
【００６７】
図１１Ｂに示すように、縦バージョンの増加では、バージョン数の増加にしたがって、周辺部２０の縦方向のサイズが、上側（Ｔ１）、下側（Ｔ２）、上側（Ｔ３）、下側（Ｔ４）…という具合に交互に１単位ずつ増加する。言い換えれば、１つ増加するバージョン数が偶数の場合、上側に１単位追加する。同じく１つ増加するバージョン数が奇数の場合、下側に１単位追加する。したがって、縦バージョンが奇数の場合には、周辺部２０の上下の幅は等しく、偶数の場合には、周辺部２０の上側が下側より１単位広い。
この基本パターン部の位置は、基本パターン部の移動における、基準となる所定の位置とする。
【００６８】
バージョンの変化による、二次元コードのサイズの変化に関して、１単位ずつ交互に増やす以外にも、２単位以上を交互に増やす場合や、上下、左右にそれぞれ均等に１単位ずつ増加させる場合や、増加を上と左のみ、下や左のみなど一方向に増加させる場合があり得る。また、バージョンが小さい場合には、上下又は左右交互に１単位ずつ変化させることがる。バージョンが大きい場合には、上下又は左右均等に１単位ずつのように、バージョンにより変化をつける場合など、様々な方法が考えられる。
【００６９】
図１２Ａは、第２実施形態の二次元コードの基本パターン部の全体構成を示す。図１２Ｂは、第２実施形態の二次元コードの基本パターン部の構成を示す図であり、ブロックおよび分離パターンを示す。
【００７０】
第２実施形態の二次元コード１０は、図１２Ｂに示すように、この例では、１ブロックは横３×縦３セルを含み、分離スペース１６は１セルの幅を有する。基本パターン部１１は、破線で囲った横７×縦７ブロック（横２７×縦２７セル）のサイズで、４つのコーナーに位置検出パターン１２Ａ−１２Ｄが配置される。基本パターン部１１の位置検出パターン１２Ａ−１２Ｄ以外の領域が、基本パターン部１１のデータ領域１３である。領域１３のうち、基本パターン部１１の上側の横７×縦３ブロックの位置検出パターン１２Ｂおよび１２Ｄ以外の領域１４のブロックＡ１−Ａ１１が、結合データを記録するブロックであり、基本パターン部１１の下側の横７×縦４ブロックの位置検出パターン１２Ａおよび１２Ｃ以外の領域のブロックＢ１−Ｂ１２が、基本パターン部１１の領域１３に記録される、結合データの誤り訂正を行う基本パターン部誤り訂正データ（ワード）を記録する領域である。
ブロックは横３×縦３セルとするが、これが長方形でも、可変でも構わない。
また、セルの形状を正方形としているが、これに限られるものではない。
【００７１】
さらに、図１２Ａの二次元コード１０では、各ブロックは分離パターン１６で分離されているため、４個の位置検出パターン１２Ａ−１２Ｄは、いずれもブロックより大きな面積を有する。これにより、位置検出パターンと同じパターンが、二次元コード中に出現することはなくなり、位置検出パターンの識別が容易になる。さらに、各ブロック１５は分離スペース１６により分離されているため、特に撮影画像にぼけ・ぶれがある場合の、各ブロック１５におけるセルの明暗の判定精度が向上する。
【００７２】
図１２Ａの二次元コード１０の領域１３において、ブロック１８は位置補正パターンである。位置補正パターン１８は、ブロック１８の９個のセルがすべて暗であるが、位置補正パターン１８の形状はこれに限定されるものではなく、位置補正パターンとして識別できるものであればよい。
【００７３】
位置補正パターン１８は、基本パターン部の中心ブロックを（ＣＸ，ＣＹ）とした時に、（ＣＸ＋７Ｎ，ＣＹ＋７Ｍ）（Ｎ，Ｍは整数、ただし、コードをはみ出ない)のブロックに設けることが望ましい。二次元コード１０の領域を外れた部分には、位置補正ブロックを配置しない。また、位置補正パターン１８は、空白ブロックに重なる場合、位置検出パターンと重なる場合も配置しない。図１２Ａでは、Ｎ＝Ｍ＝０である位置補正パターン１８を１ブロックのみに設けている。
【００７４】
位置補正パターンを含むと冗長性が高まり、認識精度向上が期待できる。位置検出パターン１２Ａ−１２Ｄの１つが汚れにより見つけられなかった場合、認識出来た位置検出パターン３個から位置補正パターン１８の位置を推測し、これを見つける。この位置検出パターン３個と位置補正パターン１個より、４個の点の組をパラメータとする二次元空間の射影変換より、二次元コード１０の各セルの計算精度が高まる。このように、図１２Ａの二次元コード１０は、位置補正パターン１８を設けることにより、二次元コード１０におけるセル位置検出の精度が一層高まる。
【００７５】
位置検出パターンの配置には他にも各種の組合せが考えられる。位置検出パターンと位置補正パターンの合計が５個で、位置検出パターンが３個以下の組合せについては、いずれも、４個の位置検出パターンと１個の位置補正パターンの組合せより、汚れなどへの耐性が弱くなるが、認識は可能である。
【００７６】
位置検出パターンと、位置補正パターンは、セルの座標を特定するために使われるが、役割が異なる。位置検出パターンは、解析時に、位置検出パターンは独立して識別でき、コードの内外で同じ形状があらわれないことが望ましい。誤った位置検出パターンを検出した場合、二次元コードであるか否かを判別する必要があり、解析に時間がかかってしまう。また、識別に時間がかかる、複雑な形状や、コードの他の部分と分離困難な形状でないことが望ましい。
【００７７】
一方で、位置補正パターンの検出は、位置検出パターンにより二次元コードの位置を特定した後に行われる。位置補正パターンの場所もおおよそわかっている状態で、ある一定範囲を探索することで、位置補正パターンを見つける。位置補正パターンにより、セルの座標の計算の精度を高め、二次元コードが曲がり、セルが非均一になった場合にも認識できる可能性を高めることが可能となる。
【００７８】
位置補正パターン１８は、実データブロック、誤り訂正符号ブロック、絵柄が埋め込まれている場合には絵柄埋込情報ブロックなどのブロックの座標補正に用いる目的のパターンである。二次元コード１０における概ねの座標は、位置検出パターン１２Ａ−１２Ｄから取得できるが、紙のよれ、曲がり、レンズの歪み、位置検出パターン取得時のズレによりデータ領域の座標に誤差がでるので、これを補正する目的で設ける。位置補正パターン１８は、位置検出パターン１２Ａ−１２Ｄにより画像内のコードの座標関係が大まかに判明していることを前提とするため、位置検出パターン１２Ａ−１２Ｄと異なり単体で他のノイズと区別する必要がないため、複雑な形状にしなくてもよい。一方で、位置補正パターン１８は細かな座標補正がしやすい形状が望ましい。
【００７９】
基本パターン部１１は、二次元コード１０の領域に対して中心付近に位置することに限定されず、中心からずれた位置に配置することも可能である。
図１３は、横方向について、基本パターン部１１の位置を基本パターン部移動情報でどのように表すか説明する図である。
図１３に示すように、バージョン１の時には基本パターン部１１のみであり、バージョンが増加するにしたがって左側、右側にブロック列が追加される。基本パターン部１１が移動可能な位置は、バージョン数に制限される。例えば、バージョン数が２であれば、基本パターン部１１が移動可能な位置は、移動しないか、左側に１ブロック列移動するかである。バージョン数が３であれば、基本パターン部１１が移動可能な位置は、移動しないか、左側に１ブロック列移動するか、右側に１ブロック列移動するか、である。言い換えれば、バージョン数が１増加するのに対応して基本パターン部１１が移動可能な位置が１つ増加するということである。したがって、基本パターン部移動量情報を表すのに必要なデータ量は、バージョン数に応じて変化する。
【００８０】
図１３において、横方向のバージョン数が６の場合に、−３から２の数字は、基本パターン部１１のブロック単位での基本パターン部移動量情報を示す。横方向のバージョン数が、０は移動しない場合を、マイナスの値は左側への基本パターン部移動量情報を、プラスの値は右側への基本パターン部移動量情報を示す。
【００８１】
基本パターン部移動情報は、移動の有無を示す、基本パターン部移動フラグと、基本パターン部の所定位置からの移動量を表す、基本パターン部移動量情報からなる。ここでの所定位置は、図１１Ｂの基本パターン部の位置を示す。基本パターン部移動フラグは、１（移動有り）と０（移動無し）の状態を持つ１ビットのデータであり、１の時にだけ基本パターン部移動量情報があり、無しの場合には基本パターン部移動量情報を省略できる。これにより基本パターン部を移動させない場合の情報を減らすことができ、移動させる場合にのみ基本パターン部移動量情報をスペックデータとして記録する。基本パターン部移動量情報は、基本パターン部が移動しない場合の基本パターン部の位置を基準とした、移動量を表す。
【００８２】
基本パターン部が移動する場合、基本パターン部移動情報としては、基本パターン部移動フラグが１となり、基本パターン部移動量情報として、横の移動量を表す情報と、縦の移動量を表す情報をスペックデータに記録する。
基本パターン部が所定位置から移動しない場合、基本パターン部移動フラグを０とし、基本パターン部移動量情報は省略できる。
【００８３】
図１４は、バージョン横１９×縦１９の二次元コード１０において、基本パターン部１１を移動させた例を示す図である。
図１４において、参照番号１１は、移動していない基本パターン部１１を示し、この場合の基本パターン部位置は、横が０で、縦が０である。参照番号１１Ａで示す基本パターン部１１の基本パターン部位置は、横が−８で、縦が−８である。参照番号１１Ｂで示す基本パターン部１１の基本パターン部位置は、横が９で、縦が−９である。参照番号１１Ｃで示す基本パターン部１１の基本パターン部位置は、横が−５で、縦が４である。参照番号１１Ｄで示す基本パターン部１１の基本パターン部位置は、横が０で、縦が９である。参照番号１１Ｅで示す基本パターン部１１の基本パターン部位置は、横が９で、縦が９である。
【００８４】
ここでは基本パターン部移動の単位をブロックで表したが、セル単位でも構わない。
また、移動の単位を１ではなく、２より大きい値にしてもよい。この場合、図１４のバージョン横１９×縦１９の二次元コード１０では、横１９通り、縦１９通りの組み合わせであったが、移動の単位を２ブロックずつにすることで、横９通り、縦９通りの組み合わせとなり、これによりスペックデータの情報量を下げることができる。
【００８５】
また、基本パターン部移動情報として、二次元コードの中心からの移動量を示す基本パターン部移動量情報を含めたが、基本パターン部移動量情報の代わりに二次元コード内の基本パターン部の位置を表す基本パターン部位置情報を用いてもよい。
基本パターン部位置情報は、コード左上のブロック座標（０、０）に基本パターン部１１の左上のコーナーがある場合を基準とした場合の、基本パターン部１１のブロック座標とするここができる。例えば、図１６では、基本パターン部１１の左上のコーナーがブロック座標（２、１）にあるため、基本パターン部位置情報として、横に２ブロック、縦に１ブロック、を表すデータが、スペックデータに記録される。
【００８６】
また、基本パターン部位置情報の他の表現方法として、基本パターン部の移動のパターンをあらかじめ定義しておく方法もある。例えば、基本パターン部の移動パターンとして “左上”、“右上”、“左下”、“右下”の４通りあらかじめ定義しておき、基本パターン部位置情報として２ビットを持たせ、それぞれ０−３の値を移動のパターンに割り振っておく。図１４の二次元コード１０では、基本パターン部位置情報が示す値が、“左上”の場合は、横が−９で、縦が−９となり、“右下”の場合は、横が９で、縦が９となる。
【００８７】
この方法の利点として、基本パターン部移動量情報を常に２ビットに抑えることができ、スペックデータを小さくできる。
さらに、上記移動パターンに“真ん中”を追加した５通りとし、加えて基本パターン部移動フラグをなくすことで、基本パターン部移動情報が常に３ビットで示されることになり、少ない情報量で基本パターン部の移動が実現できる。
【００８８】
また、空白領域をコード内に設ける場合、この領域に関する情報を、空白領域がある場合には、空白領域があることを示す空白埋込フラグと、空白領域に関する情報を示す空白位置情報を、スペックデータに含ませる。また、空白領域がない場合には、空白領域がないことを示す空白埋込フラグのみをスペックデータに含ませて、空白領域に関する情報を省くことで、スペックデータの情報量を減らすことが可能である。さらに、空白領域がある場合の空白領域に関する情報も、バージョン情報にあわせ、ビット数を増減することで、スペックデータの情報量の効率を向上できる。
【００８９】
スペックデータには、周辺部誤り訂正レベル情報を持たせることができる。周辺部実データの誤り訂正量を、周辺部誤り訂正レベルとして、周辺部誤り訂正レベル情報に記録できるようにする。例えば、周辺部誤り訂正レベルは、１０％、２０％、３０％、４０％の４通りから選択させるようにする。これにより、撮影条件の悪い環境で用いるコードを認識させる場合には誤り訂正レベルを上げ、そうでない場合は下げるということが可能になる。この場合、スペックデータにおける周辺部誤り訂正レベル情報として、２ビットを確保するようにする。
周辺部誤り訂正レベルは、周辺部実データのデータ量に影響し、周辺部誤り訂正レベルが低ければデータ量が多くなり、周辺部誤り訂正レベルが大きければデータ量が少なくなる。
【００９０】
周辺部誤り訂正レベル情報は、周辺部が存在しない場合（バージョンが横１×縦１）は不要であり、スペックデータから省くことができ、その分実データの量を増やすことができる。バージョン情報と、空白情報と、位置補正パターンと、により、周辺部でのデータを持つブロックの数が決定する。これにより、周辺部の記録できるデータの量が決まる。この周辺部のデータ量と、周辺部誤り訂正レベル情報より、周辺部実データと、周辺部誤り訂正データの、データ量が決まる。
【００９１】
スペック情報を表すビットデータであるスペックデータの、第２実施形態での一例を示す。まず、横のバージョン情報が入る。横のバージョン情報は１から２６までの値となり、２から９ビットで表される。次に、同様の方法で縦のバージョン情報が入る。次に、周辺部誤り訂正レベル情報が入る。周辺部誤り訂正レベル情報は２ビットで表され、４種類の周辺部誤り訂正レベルを取り得る。周辺部誤り訂正レベル情報に関しては後述する。次に、空白領域の有無を表す空白埋込フラグと、基本パターン部の所定位置からの移動の有無を表す基本パターン部移動フラグが入る。空白埋込フラグおよび基本パターン部移動フラグは、１ビットで表され、１（有り）か０（無し）である。次に、空白埋込フラグが１の時には、空白の位置を表す空白位置情報が基本パターン部移動フラグの後ろに追加される。次に、基本パターン部移動フラグが１の時は、基本パターン部移動量情報が、空白埋込フラグが１の時には空白位置情報の後に追加され、空白埋込フラグが０の時には基本パターン部移動フラグの後に追加される。これらの情報の後に、基本パターン部に格納可能な領域が残っている場合、実データが続いて格納される。
【００９２】
このスペック情報の種類や、順番、データ量、フラグの扱いに関して、上記に限られるものではないが、エンコードと、デコードにおいて、スペックデータを同じ解釈にする必要がある。
【００９３】
周辺部のデータの配置は、第２実施形態の１例では、例えば、周辺部実データを、左上から右方向へ順番にブロックごとに記録し、１行記録し終わったら、１ブロック下の左から右方向へ順番に記録する。周辺部実データの後に、周辺部誤り訂正データを記録する。その場合に、基本パターン部、空白領域、位置補正パターンにはデータを記録しない。
上記は一例であり、周辺部のデータの配置の方法は、あらかじめ決められていればよい。
【００９４】
以下、第２実施形態の二次元コード１０において、位置検出パターンの組み合わせの候補の削減で効果的なバージョンの二次元コードの実施例を説明する。
図１５は、バージョン横４×縦４の二次元コードの例を示す図である。横方向のｄ１は１８セルであり、ｄ２は、左側が１１．５セル、右側が９．５セルなので、合計２１セルとなり、ｄ１＜ｄ２が成り立つ。縦方向も同様にＤ１＜Ｄ２が成り立ち、つまり、第２実施形態の二次元コードのバージョンが横・縦共に４以上である場合は、常に条件が成り立ち、大きな効果が得られる。これは基本パターン部が移動した場合にも変わらない。
図１６は、バージョン５×５の二次元コードの例を示す図である。図１５と同様に、常にｄ１＜ｄ２と、Ｄ１＜Ｄ２が成り立つ。
【００９５】
次に、実施形態の二次元コードを作成する処理（エンコード処理）について説明する。
図１７は、二次元コードを作成して提供する作成システムのハードウェア構成を示す図であり、クライアント・サーバ構成の例を示す。
【００９６】
作成システムは、仕様を決めて二次元コードの作成を依頼するユーザーが操作するユーザーハードウェアと、依頼された二次元コードを作成して提供するシステムハードウェアと、を有する。
【００９７】
ユーザーハードウェアは、コンピュータ等のユーザー処理装置７１と、磁気ディスク等の記憶装置７２と、を有する。
システムハードウェアは、コンピュータ等のシステム処理装置７５と、磁気ディスク等の記憶装置７６と、を有する。
【００９８】
ユーザー処理装置７１とシステム処理装置７５は、通信回線等で接続され、通信可能に構成されている。
ここでは、印刷は、ユーザー側で行うが、システム側や他の印刷所で行うようにしてもよい。二次元コードを印刷する媒体はどのようなものでもよく、例えば、紙、樹脂板、筐体表面などである。ここで、媒体として、埋め込む絵柄があらかじめ印刷されているものでもよく、印刷されている埋込絵柄が二次元コードの絵柄領域に入るようにセッティングした上で二次元コードを印刷する。
【００９９】
印刷装置は、これらの媒体に二次元コードを印刷可能なものであればよく、例えば簡易プリンター、精密プリンター、印刷装置等であり、モノクロ印刷だけでなく、カラー印刷可能なものでもよい。また、作成した二次元コードは、印刷せずに、通信回線を介してユーザーに二次元コードのデータとして送信されてもよい。ユーザーは、必要に応じて第三者のディスプレイ等に、作成した二次元コードを表示するようにデータを送信する。
【０１００】
なお、図１７はクライアント・サーバ構成の作成システムの例を示すが、作成システムはこれに限定されず、例えば。クライアントＰＣ上のエンコードソフトウェアで発行し、ＵＳＢ接続したプリンターから発行する構成や、ハンディータイプの端末・プリンターから発行する構成など、各種の変形例があり得る。また、二次元コードを作成する処理は、コンピュータ実行可能なプログラムとして、コンピュータが読み取り可能な非一時的な記憶媒体に記録されていてもよい。
【０１０１】
図１８は、ユーザーが、ユーザーハードウェアを介してシステムハードウェアにアクセスし、所望の二次元コードを作成するエンコード処理の手順を示すフローチャートである。
【０１０２】
ステップＳ１０では、ユーザーがエンコードのメイン処理を開始する。
ステップＳ１１では、ユーザーが二次元コードに記録するメッセージを入力する。
ステップＳ１２では、ユーザーが、二次元コードのバージョン情報と、周辺部誤り訂正レベルと、空白情報と、基本パターン部移動情報と、を入力する。これに応じて、ユーザー処理装置７１は、システム処理装置７５に、入力されたメッセージと、バージョン情報と、周辺部誤り訂正レベルと、空白情報と、基本パターン部移動情報と、を通知する。
【０１０３】
ステップＳ１３では、システム側で、送信された情報に基づいて基本パターン部と周辺部の配置を決定する。
ステップＳ１４では、送信された情報に基づいてスペックデータのデータ量を決定する。
【０１０４】
ステップＳ１５では、システム側で、送信された情報に基づいて空白領域のブロックの配置と数を決定する。
ステップＳ１６では、位置補正パターンのブロックの配置とブロック数を決定する。
ステップＳ１７では、周辺部誤り訂正レベルから、周辺部誤り訂正データのブロック数を決定する。
【０１０５】
ステップＳ１８では、二次元コードに記録可能な実データのサイズを決定する。
ステップＳ１９では、二次元コード内でメッセージを表現するのに必要な実データのサイズを計算する。
【０１０６】
ステップＳ２０では、Ｓ１８で求められた二次元コードのデータサイズに、Ｓ１９の実データが入るか、データサイズが不足して入らないかを判定し、データサイズが不足であれば、ユーザー処理装置７１にデータサイズが不足することを送信し、データサイズが足りていればステップＳ２２に進む。
【０１０７】
ステップＳ２１では、ユーザー処理装置７１がユーザーに、入力された二次元コードの形状では入力されたメッセージを表現するのにデータサイズが不足であるというエラー発生を通知して、終了する。
ステップＳ２２では、スペックデータを作成する。
【０１０８】
ステップＳ２３では、実データを作成する。
ステップＳ２４では、スペックデータと実データを結合する。
ステップＳ２５では、基本パターン部に記録可能なスペックデータと実データ、基本パターン部に配置する。
Ｓ２６では、基本パターン部に記録されたデータから、基本パターン部誤り訂正データを計算し、配置する。
【０１０９】
ステップＳ２７では、基本パターン部に入りきらなかった実データを周辺部実データとして周辺部に配置する。
ステップＳ２８では、周辺部実データから、周辺部誤り訂正データを計算し、配置する。
ステップＳ２９では、二次元コードの情報を、画像としてユーザー処理装置７１に出力する。
ステップＳ３０で、エンコードのメイン処理が終了する。
【０１１０】
図１９は、実施形態の二次元コードを読み取り、二次元コードを解析する二次元コード解析装置のハードウェア構成を示す図である。
【０１１１】
二次元コード解析装置は、読み取り部８０と、コンピュータ（二次元コード解析処理部）８４と、ディスプレイ８５と、通信インターフェース８６と、を有する。読み取り部８０は、レンズ８１と、イメージセンサ８２と、アナログ・デジタル変換器（ＡＤ）８３と、を有し、撮影した二次元コードのデジタル画像データをコンピュータ８４に出力する。図１９の二次元コード解析装置は、広く使用されており、近年は携帯端末も二次元コード解析装置と同様の機能を実現している。また、二次元コードを解析する処理は、コンピュータ実行可能なプログラムとして、コンピュータが読み取り可能な非一時的な記憶媒体に記録されていてもよい。
【０１１２】
図２０および図２１は、ユーザーが撮影した二次元コードを解析するデコード処理の手順を示すフローチャートである。このデコード処理は、１画面に複数の第２実施形態の二次元コードが写し込まれている場合を想定している。デコード処理は、解析メイン処理と、情報取り出し処理からなる。まず、解析メイン処理を説明する。
【０１１３】
ステップＳ１０１では、解析のメイン処理を開始する。
ステップＳ１０２では、二次元コードの撮影画像を入力する。
【０１１４】
ステップＳ１０３では、入力された撮影画像の二値画像を作成する。二値化の方法は、入力された撮影画像がＲＧＢ画像などのカラー画像であれば、一旦グレースケール画像に変換し、画像内の最大輝度値と最小輝度値の平均を閾値とし、閾値以上であれば明、未満であれば暗とする。カラー画像からグレースケール変換するには、各画素のＲＧＢの値を用いて、輝度(brightness)＝０．２９９Ｒ＋０．５８７Ｇ＋０．１１４Ｂの変換式にしたがって変換する。カラー画像へのグレースケール画像への変換方法、さらに二値化画像への変換方法は、様々な方法が提案されており、上記変換方法に限られない。
【０１１５】
ステップＳ１０４では、位置検出パターン候補を検出する。具体的には、二値化画像を走査する際に、走査方向の横方向、および縦方向に、暗明暗、もしくは暗明暗明暗が、一定の比率であらわれるパターンを検出する。
ステップＳ１０５では、４種の位置検出パターンの組み合わせを作成し、検討していない４種の位置検出パターンの組み合わせが残っているか判定し、残っていればステップＳ１０６に進み、残っていなければステップＳ１１０に進む。
ステップＳ１０６では、２点の位置検出パターンの間の距離が、適切でない値となるような組み合わせが１組でもある場合には、正しい組み合わせではないと判定できる。このように、位置検出パターン同士の距離に基づいて誤検出を除外する。
【０１１６】
ステップＳ１０７では、組み合わせた位置検出パターンについて、同一の二次元コードの位置検出パターンであるとして情報の取り出しを行う。この処理については、図２１を参照して後述する。
【０１１７】
ステップＳ１０８では、情報取り出しに成功したかの結果に応じて、成功した場合にはステップＳ１０９に進み、失敗した場合には失敗した位置検出パターンの組み合わせを除外する処理を行った後、ステップＳ１０５に戻る。
【０１１８】
ステップＳ１０９では、情報の取り出しに成功した位置検出パターンの組み合わせをリストアップする。
ステップＳ１１０では、データの取り出しに成功した二次元パターンに使われた４個の位置検出パターン候補を除外し、ステップＳ１０５に戻る。なお、データの取り出しに成功した二次元パターンの範囲に、使用していない位置検出パターン候補がある場合には、それも候補から除外する。
【０１１９】
ステップＳ１０５からＳ１１０を繰り返すことにより、写し込まれた二次元コードの位置検出パターン候補の４個の組み合わせについて同一の二次元コードのものであるかの判定が終了する。
【０１２０】
ステップＳ１１１では、検討されていない３個の位置検出パターン候補の組み合わせが残っているか判定し、残っていなければステップＳ１２０に進み、残っていればステップＳ１１２に進む。
【０１２１】
ステップＳ１１２では、３個の位置検出パターン候補から位置補正パターンの位置を推定する。
【０１２２】
ステップＳ１１３では、位置補正パターンがあるか判定し、有ればステップＳ１１５に進み、無ければステップＳ１１４に進む。
ステップＳ１１４では、３個の３個の位置検出パターン候補から１個の位置検出パターン候補を補完し、ステップＳ１１５に進む。
ステップＳ１１５では、２点の位置検出パターンの間の距離が、適切でない値となるような組み合わせが１組でもある場合には、正しい組み合わせではないと判定できる。位置補正パターンなどで補完した場合にも、欠けていることが想定される位置検出パターンの座標を推定し、距離を検証する。
【０１２３】
ステップＳ１１６では、組み合わせた位置検出パターンについて、同一の二次元コードの位置検出パターンであるとして情報の取り出しを行う。この処理については、図２１を参照して後述する。
【０１２４】
ステップＳ１１７では、情報取り出しに成功したかの結果に応じて、成功した場合にはステップＳ１１８に進み、失敗した場合には失敗した位置検出パターンの組み合わせを除外する処理を行った後、ステップＳ１１１に戻る。
【０１２５】
ステップＳ１１８では、情報の取り出しに成功した位置検出パターンの組み合わせをリストアップする。
ステップＳ１１９では、データの取り出しに成功した二次元パターンに使われた３個の位置検出パターン候補を除外し、ステップＳ１１１に戻る。なお、データの取り出しに成功した二次元パターンの範囲に、使用していない位置検出パターン候補がある場合には、それも候補から除外する。
【０１２６】
ステップＳ１１１からＳ１１９を繰り返すことにより、写し込まれた二次元コードの位置検出パターン候補の３個の組み合わせについて同一の二次元コードのものであるかの判定が終了する。
【０１２７】
ステップＳ１２０では、リストアップされた位置検出パターンのメッセージを出力し、ステップＳ１２１に進む。
ステップＳ１２１では、解析メイン処理を終了する。
【０１２８】
次に図２１を参照してステップＳ１０７およびＳ１１６の情報取り出し処理を説明する。
ステップＳ２００で、情報取り出し処理を開始する。
ステップＳ２０１で、位置検出パターンから、基本パターン部に属するブロック内のセルの座標を計算する。
【０１２９】
ステップＳ２０２で、結合データと、基本パターン部誤り訂正データを取り出す。
ステップＳ２０３で、基本パターン部誤り訂正データによる誤り検出処理を行い、誤りがある場合にはステップＳ２０４に進み、誤りが無ければステップＳ２０７に進む。
【０１３０】
ステップＳ２０４では、ブロック内のセルデータから誤り訂正可能であるか判定し、誤り訂正が不可能であればステップＳ２０５に進み、誤り訂正が可能であればステップＳ２０６に進む。
ステップＳ２０５では、二次元コードからの情報の取出しに失敗ことを通知し、終了する。
【０１３１】
ステップＳ２０６では、結合データの誤り訂正処理を行う。
ステップＳ２０７では、結合データから、スペックデータを取り出し、二次元コードのバージョン、周辺部誤り訂正レベル、空白情報、基本パターン部移動情報を特定する。
【０１３２】
ステップＳ２０８では、スペックデータを元に、基本パターン部の周辺部の位置補正パターンを計算する。
ステップＳ２０９では、スペックデータを元に、周辺部の位置補正パターンと、空白領域と、を除く周辺部実データと、周辺部誤り訂正データのブロックを特定する。
ステップＳ２１０では、周辺部実データと、周辺部誤り訂正データのブロック数の合計を計算し、これと周辺部誤り訂正レベルから、それぞれのブロック数を計算する。
【０１３３】
ステップＳ２１１では、周辺部に属するブロック内のセルの座標を求める。
ステップＳ２１２では、周辺部実データと周辺部誤り訂正データを取り出す。
【０１３４】
ステップＳ２１３では、周辺部誤り訂正データにより誤りを検出し、誤りがあればステップＳ２１４に進み、誤りが無ければステップＳ２１７に進む。
ステップＳ２１４では、誤り訂正可能であるか判定し、誤り訂正が不可能であればステップＳ２１５に進み、誤り訂正が可能であればステップＳ２１６に進む。
【０１３５】
ステップＳ２１５では、二次元コードからの情報の取出しに失敗ことを通知し、終了する。
ステップＳ２１６では、データの誤り訂正処理を行う。
ステップＳ２１７では、基本パターン部のデータからスペックデータを除いた実データと、周辺部の実データを連結する。
【０１３６】
ステップＳ２１８では、実データを解析する。
ステップＳ２１９では、メッセージを取り出す。
ステップＳ２２０では、二次元コードからの情報の取出しに成功したので、メッセージを表示して終了する。
【０１３７】
以上説明した第１、第２実施形態の二次元コードによれば、二次元コードのサイズが異なっても、基本パターン部のセル位置を計算するための複数個の位置検出パターンの位置関係は固定であるため、複数のコードを認識する際に、二次元コードのサイズが異なると位置関係が異なる従来の二次元コードに比べて特定するのが容易である。また、コードに含まれる位置検出パターンが互いに異なる形状であるため、複数のコードを認識する際に、誤検出の位置検出パターンの組み合わせを除外することが可能となる。
【０１３８】
特に、複数のコードを隣接して並ぶように１画像内に撮影して解析する場合、同一の二次元コード内の位置検出パターン同士の距離は固定であり、周辺部が存在するため、他の二次元コードの位置検出パターンとの距離が長くなる。そのため、異なる距離の組み合わせを容易に除外できるので、正しい組み合わせであるか判定する処理における組み合わせ数を減らすことができる。これは、二次元コードの形状が正方形であれば、効果が大きいが、長方形の二次元コードであっても、組み合わせを減らす効果が得られる。
【０１３９】
以上、本発明の実施形態を説明したが、記載した実施形態は発明を説明するためのもので、当業者には、特許請求の範囲において各種の変形例があり得ることが容易に理解可能である。
【符号の説明】
【０１４０】
１    二次元コード
２    基本パターン部
３Ａ    第１位置検出パターン
３Ｂ    第２位置検出パターン
３Ｃ    第３位置検出パターン
４    データ領域
５    周辺部
１０    二次元コード
１１    基本パターン部
１２Ａ    第１位置検出パターン
１２Ｂ    第３位置検出パターン
１２Ｃ    第４位置検出パターン
１２Ｄ    第２位置検出パターン
１３    領域
１５    ブロック
１６    分離パターン
１７    セル
１８    位置補正パターン
【図１】
2015174191.tif 000003
【図２】
2015174191.tif 000004
【図３Ａ】
2015174191.tif 000005
【図３Ｂ】
2015174191.tif 000006
【図４】
2015174191.tif 000007
【図５Ａ】
2015174191.tif 000008
【図５Ｂ】
2015174191.tif 000009
【図６】
2015174191.tif 000010
【図７Ａ】
2015174191.tif 000011
【図７Ｂ】
2015174191.tif 000012
【図８】
2015174191.tif 000013
【図９】
2015174191.tif 000014
【図１０Ａ】
2015174191.tif 000015
【図１０Ｂ】
2015174191.tif 000016
【図１１Ａ】
2015174191.tif 000017
【図１１Ｂ】
2015174191.tif 000018
【図１２Ａ】
2015174191.tif 000019
【図１２Ｂ】
2015174191.tif 000020
【図１３】
2015174191.tif 000021
【図１４】
2015174191.tif 000022
【図１５】
2015174191.tif 000023
【図１６】
2015174191.tif 000024
【図１７】
2015174191.tif 000025
【図１８】
2015174191.tif 000026
【図１９】
2015174191.tif 000027
【図２０】
2015174191.tif 000028
【図２１】
2015174191.tif 000029
【手続補正書】
【提出日】平成28年8月29日(2016.8.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１３９
【補正方法】変更
【補正の内容】
【０１３９】
以上、本発明の実施形態を説明したが、記載した実施形態は発明を説明するためのもので、当業者には、特許請求の範囲において各種の変形例があり得ることが容易に理解可能である。
（１）
二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、
長方形の基本パターン部を有し、
前記基本パターン部は、
セル位置を特定するための複数個の位置検出パターンと、
前記二次元コードのサイズを示すバージョン情報と、を含み、
前記バージョン情報を用いて、前記複数個の位置検出パターン間の距離を固定した状態で前記二次元コードのサイズを可変に設計することが可能になされている二次元コード。
（２）
前記複数個の位置検出パターンは互いに外形が異なる請求項１に記載の二次元コード。
（３）
前記基本パターン部の外側に形成される周辺部を備える請求項１または２記載の二次元コード。
（４）
前記複数個の位置検出パターンの内の２個の位置検出パターンの組み合わせについて、前記２個の位置検出パターンの中心を結ぶ直線が長方形の当該二次元コードの外部との境界に交差する２点間の距離は、前記２個の位置検出パターンの中心間の距離の２倍より大きい請求項３に記載の二次元コード。
（５）
セル位置を特定するための複数の位置検出パターンを含む第１の二次元コードと、セル位置を特定するための複数の位置検出パターンを含む第２の二次元コードを、複数一括して撮影した画像を解析するシステムであって、
前記第１の二次元コードに含まれる位置検出パターンと、前記第２の二次元コードに含まれる位置検出パターンとによる、誤った位置検出パターンの組み合わせを除外する除外手段を含む二次元コードの解析システム。
（６）
前記除外手段は、２つの前記位置検出パターン間の距離が所定の距離とならない場合には、前記２つの位置検出パターンの組み合わせを、一の二次元コードに含まれる位置検出パターンの組み合わせではない誤った位置検出パターンの組み合わせとして除外する請求項５に記載の二次元コードの解析システム。
（７）
前記除外手段は、前記位置検出パターン同士の外形に基づいて組み合わせを除外する手段である請求項５または６に記載の二次元コードの解析システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、
長方形の基本パターン部を有し、
前記基本パターン部は、
セル位置を特定するための複数個の位置検出パターンと、
前記二次元コードのサイズを示すバージョン情報と、を含み、
前記バージョン情報を用いて、前記複数個の位置検出パターン間の距離を固定した状態で前記二次元コードのサイズを可変に設計することが可能になされている二次元コード。
【請求項２】
前記複数個の位置検出パターンは互いに外形が異なる請求項１に記載の二次元コード。
【請求項３】
前記基本パターン部の外側に形成される周辺部を備える請求項１または２記載の二次元コード。
【請求項４】
前記複数個の位置検出パターンの内の２個の位置検出パターンの組み合わせについて、前記２個の位置検出パターンの中心を結ぶ直線が長方形の当該二次元コードの外部との境界に交差する２点間の距離は、前記２個の位置検出パターンの中心間の距離の２倍より大きい請求項３に記載の二次元コード。
【請求項５】
セル位置を特定するための複数の位置検出パターンを含む第１の二次元コードと、セル位置を特定するための複数の位置検出パターンを含む第２の二次元コードを、複数一括して撮影した画像を解析するシステムであって、
前記第１の二次元コードに含まれる位置検出パターンと、前記第２の二次元コードに含まれる位置検出パターンとによる、誤った位置検出パターンの組み合わせを除外する除外手段を含み、
前記除外手段は、前記位置検出パターン同士の外形に基づいて組み合わせを除外する手段である二次元コードの解析システム。
【請求項６】
前記除外手段は、２つの前記位置検出パターン間の距離が所定の距離とならない場合には、前記２つの位置検出パターンの組み合わせを、一の二次元コードに含まれる位置検出パターンの組み合わせではない誤った位置検出パターンの組み合わせとして除外する請求項５に記載の二次元コードの解析システム。
【請求項７】
セル位置を特定するための複数の位置検出パターンを含み、前記複数の位置検出パターン間の距離が予め定められた同じ所定の関係を有する、第１の二次元コード及び第２の二次元コードを、複数一括して撮影した画像を解析するシステムであって、
前記第１の二次元コードに含まれる位置検出パターンと、前記第２の二次元コードに含まれる位置検出パターンとによる、誤った位置検出パターンの組み合わせを除外する除外手段を含み、
前記除外手段は、２つの前記位置検出パターン間の距離が、前記所定の関係に基づいた距離と一致しない場合に、前記２つの位置検出パターンの組み合わせを、一の二次元コードに含まれる位置検出パターンの組み合わせではない誤った位置検出パターンの組み合わせとして除外する二次元コードの解析システム。
【請求項８】
前記第１の二次元コード及び前記第２の二次元コードは、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、
長方形の基本パターン部を有し、
前記基本パターン部は、
セル位置を特定するための前記複数個の位置検出パターンと、
前記二次元コードのサイズを示すバージョン情報と、を含み、
前記バージョン情報を用いて、前記複数個の位置検出パターン間の距離を固定した状態で前記二次元コードのサイズを可変に設計することが可能になされている二次元コードである請求項７記載の二次元コードの解析システム。
【請求項９】
前記第１の二次元コード及び前記第２の二次元コードは、前記基本パターン部の外側に形成される周辺部を備える請求項８記載の二次元コードの解析システム。
【請求項１０】
前記第１の二次元コード及び前記第２の二次元コードは、前記複数個の位置検出パターンの内の２個の位置検出パターンの組み合わせについて、前記２個の位置検出パターンの中心を結ぶ直線が長方形の当該二次元コードの外部との境界に交差する２点間の距離は、前記２個の位置検出パターンの中心間の距離の２倍より大きい請求項９記載の二次元コードの解析システム。
【手続補正書】
【提出日】平成28年11月28日(2016.11.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、
長方形の基本パターン部を有し、
前記基本パターン部は、
セル位置を特定するための複数個の位置検出パターンと、
前記二次元コードのサイズを示すバージョン情報と、を含み、
前記バージョン情報を用いて、前記複数個の位置検出パターン間の距離を固定した状態で前記二次元コードのサイズを可変に設計することが可能になされている二次元コード。
【請求項２】
前記複数個の位置検出パターンは互いに外形が異なる請求項１に記載の二次元コード。
【請求項３】
前記基本パターン部の外側に形成される周辺部を備える請求項１または２記載の二次元コード。
【請求項４】
前記複数個の位置検出パターンの内の２個の位置検出パターンの組み合わせについて、前記２個の位置検出パターンの中心を結ぶ直線が長方形の当該二次元コードの外部との境界に交差する２点間の距離は、前記２個の位置検出パターンの中心間の距離の２倍より大きい請求項３に記載の二次元コード。
【請求項５】
セル位置を特定するための複数の互いに外形が異なる位置検出パターンを含む第１の二次元コードと、セル位置を特定するための前記複数の互いに外形が異なる位置検出パターンを含む第２の二次元コードを、複数一括して撮影した画像を解析するシステムであって、
前記第１の二次元コードに含まれる位置検出パターンと、前記第２の二次元コードに含まれる位置検出パターンとによる、誤った位置検出パターンの組み合わせを除外する除外手段を含み、
前記除外手段は、前記位置検出パターン同士の外形に基づいて組み合わせを除外する手段である二次元コードの解析システム。
【請求項６】
前記除外手段は、２つの前記位置検出パターン間の距離が所定の距離とならない場合には、前記２つの位置検出パターンの組み合わせを、一の二次元コードに含まれる位置検出パターンの組み合わせではない誤った位置検出パターンの組み合わせとして除外する請求項５に記載の二次元コードの解析システム。
【請求項７】
セル位置を特定するための複数個の位置検出パターンを含み、前記複数個の位置検出パターン間の距離が予め定められた同じ所定の関係を有する、第１の二次元コード及び第２の二次元コードを、複数一括して撮影した画像を解析するシステムであって、
前記第１の二次元コードに含まれる位置検出パターンと、前記第２の二次元コードに含まれる位置検出パターンとによる、誤った位置検出パターンの組み合わせを除外する除外手段を含み、
前記除外手段は、２つの前記位置検出パターン間の距離が、前記所定の関係に基づいた距離と一致しない場合に、前記２つの位置検出パターンの組み合わせを、一の二次元コードに含まれる位置検出パターンの組み合わせではない誤った位置検出パターンの組み合わせとして除外する二次元コードの解析システム。
【請求項８】
前記第１の二次元コード及び前記第２の二次元コードは、二進コードで表されるデータをセル化して、二次元のマトリックス状にパターンとして配置した長方形の二次元コードであって、
長方形の基本パターン部を有し、
前記基本パターン部は、
セル位置を特定するための前記複数個の位置検出パターンと、
前記二次元コードのサイズを示すバージョン情報と、を含み、
前記バージョン情報を用いて、前記複数個の位置検出パターン間の距離を固定した状態で前記二次元コードのサイズを可変に設計することが可能になされている二次元コードである請求項７記載の二次元コードの解析システム。
【請求項９】
前記第１の二次元コード及び前記第２の二次元コードは、前記基本パターン部の外側に形成される周辺部を備える請求項８記載の二次元コードの解析システム。
【請求項１０】
前記第１の二次元コード及び前記第２の二次元コードは、前記複数個の位置検出パターンの内の２個の位置検出パターンの組み合わせについて、前記２個の位置検出パターンの中心を結ぶ直線が長方形の当該二次元コードの外部との境界に交差する２点間の距離は、前記２個の位置検出パターンの中心間の距離の２倍より大きい請求項９記載の二次元コードの解析システム。
【国際調査報告】
2015174191.tif 000030
2015174191.tif 000031
2015174191.tif 000032
2015174191.tif 000033