(57)【要約】【課題】複雑な処理を行うことなく、論理的かつ一元的に明暗の識別を確実に行うことができる二次元コードの認識方法を提供する。【解決手段】目的とする二次元コード１を印刷する際に、当該印刷領域内の所定位置に、暗コードセル１０ｂと明コードセル１０ｗとの組み合わせで構成され、その配列が既知である判定コード２を印刷する。目的とする二次元コード１を判定コード２とともに光学的読み取り装置で読み取り、読み取られた判定コードの暗コードセルの光学特性値と明コードセルの光学特性値とに基づいて、暗コードセルと明コードセルとの明暗境界値を求める。この求められた明暗境界値を基準にして、読み取られた目的とする二次元コードの暗コードセルと明コードセルとを認識する。【選択図】　図１
2004102348.tif 000002
【特許請求の範囲】
【請求項１】
明暗の２進コードで表されるデータをセル化して二次元マトリックス状にパターンとして配置された二次元コードを光学的読み取り装置を用いて認識する二次元コードの認識方法であって、
目的とする二次元コードを印刷する際に、当該印刷領域内の所定位置に、暗コードセルと明コードセルとの組み合わせで構成され、その配列が既知である判定コードを印刷するステップと、
前記目的とする二次元コードを前記判定コードとともに光学的読み取り装置で読み取るステップと、
前記読み取られた目的とする二次元コードと判定コードから判定コードを抽出するステップと、
前記抽出された判定コードの暗コードセルの光学特性値と明コードセルの光学特性値とに基づいて、暗コードセルと明コードセルとの明暗境界値を求めるステップと、
前記求められた明暗境界値を基準にして前記読み取られた目的とする二次元コードの暗コードセルと明コードセルとを認識するステップとを有する二次元コードの認識方法。
【請求項２】
前記判定コードは、中央に明コードセルが配置され、この明コードセルの周囲が暗コードセルで囲まれた３列×３行の二次元コードである請求項１記載の二次元コードの認識方法。
【請求項３】
前記判定コードは、中央及び四隅に明コードセルが配置され、その他の位置に暗コードセルが配置された３列×３行の二次元コードである請求項１記載の二次元コードの認識方法。
【請求項４】
前記判定コードは、すべての外周に暗コードセルが配置され、中央の一部に明コードセルが配置された請求項１記載の二次元コードの認識方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ等に情報を入力するための光学的読み取りが可能な二次元コードの認識方法に関し、特に２進コードで表されるデータをセル化して二次元マトリックス状にパターンとして配置した二次元コードの認識方法に関する。
【０００２】
【従来の技術】
この種の二次元コード１をトナー方式またはインクジェット方式などのプリンタで印刷する場合、図５に示されるように、一つのコードセル１０が、たとえば４列×４行のドット１００で構成される。そして、４列×４行すべてのドット１００を黒色に印刷することで、暗（黒）のコードセル１０ｂが印刷され、４列×４行すべてのドット１００を白色に印刷する（すなわち、インクを吐出しない。）ことで明（白）のコードセル１０ｗが印刷される。このようにして、明暗（白黒）の２進コードで表される所望のデータを二次元マトリックス状に用紙に印刷することができる。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の二次元コード１の黒色のコードセル１０ｂを印刷する場合においては、印刷方式や用紙の影響によって、一つのドット１００の周辺にインクが飛散したり、インクが用紙に滲んだりして黒色のコードセル１０ｂが膨張する傾向にあった。このため、二次元コードにおいて、図６に示すように黒色のコードセル１０ｂに囲まれた白のコードセル１０ｗは、黒のコードセル１０ｂの膨張によって面積が狭まり、これを光学的読み取り装置で読み込むと黒色に近い灰色として誤認識されることがあった。
【０００４】
一方、黒色のコードセルにおいても用紙やプリンタの状況によっては濃淡差が生じるので、場合によっては灰色に近い黒色に印刷されることもあり、極端な場合には、白色のコードセル１０ｗと黒色のコードセル１０ｂとを区別できないといった問題があった。
【０００５】
こうした問題を解決するため、たとえば特許第２８６７９０４号では、二次元画像の検出装置からの走査線信号の状態に応じて２値化のしきい値を調節したり、前回以前の二次元画像における２値化状態に応じて今回のしきい値を調節することが提案されている。
【０００６】
しかしながら、前者の方法は、たとえば全体が黒っぽい場合は白の方向へ任意の量だけしきい値を下げ、全体が白っぽい場合は黒の方向へ任意の量だけしきい値を上げ、認識することができたしきい値のみを、求めるしきい値とする、いわゆる試行錯誤方式又は比較方式であるため、しきい値を調節するのに時間がかかるといった問題があった。
【０００７】
また、後者の方法は、過去の２値化状態をフィードバックする経験的比較方式であることから、認識確率が安定するまでの立ち上がりに時間がかかるという問題があった。また、印刷状況が変化するとフィードバックしたしきい値が適切でなくなるといった問題もあった。
【０００８】
【課題を解決するための手段】
本発明は、複雑な処理を行うことなく、論理的かつ一元的に明暗の識別を確実に行うことができる二次元コードの認識方法を提供することを目的とする。
【０００９】
本発明によれば、明暗の２進コードで表されるデータをセル化して二次元マトリックス状にパターンとして配置された二次元コードを光学的読み取り装置を用いて認識する二次元コードの認識方法であって、目的とする二次元コードを印刷する際に、当該印刷領域内の所定位置に、暗コードセルと明コードセルとの組み合わせで構成され、その配列が既知である判定コードを印刷するステップと、前記目的とする二次元コードを前記判定コードとともに光学的読み取り装置で読み取るステップと、前記読み取られた目的とする二次元コードと判定コードから判定コードを抽出するステップと、前記抽出された判定コードの暗コードセルの光学特性値と明コードセルの光学特性値とに基づいて、暗コードセルと明コードセルとの明暗境界値を求めるステップと、前記求められた明暗境界値を基準にして前記読み取られた目的とする二次元コードの暗コードセルと明コードセルとを認識するステップとを有する二次元コードの認識方法が提供される。
【００１０】
本発明の二次元コードの認識方法では、まず目的とする二次元コードを印刷する際に、当該印刷領域内の所定位置に、暗コードセルと明コードセルとの組み合わせで構成され、その配列が既知である判定コードを印刷しておく。
【００１１】
そして、目的とする二次元コードを判定コードとともに光学的読み取り装置で読み取り、この読み取られた二次元画像データのうちの判定コードの暗コードセルの光学特性値と明コードセルの光学特性値とを検出し、これらの値に基づいて、暗コードセルと明コードセルとの明暗境界値を求める。この明暗境界値は、暗コードセルの光学特性値と明コードセルの光学特性値とによって一義的に定まるように論理化しておくことが望ましい。
【００１２】
判定コードの読み取りデータにより明暗境界値が求められたら、これを基準にして、先に読み取られたデータの中の目的とする二次元コードの暗コードセルと明コードセルとを認識する。
【００１３】
本発明では、同じ二次元コード内に、暗コードセルと明コードセルとの配列が既知である判定コードを印刷しておくので、インクの飛散や滲みといった印刷状況は、当該判定コードも目的とする二次元コードも等しくなる。そして、同時に読み取られた二次元画像データを用い、配列が既知である判定コードを用いて実際の暗コードセルの光学特性値と明コードセルの光学特性値を検出し、たとえばその中間値といった明暗境界値を一義的に決定する。こうして決定された明暗境界値は、今読み取られた二次元画像データに対しては最も実際の値に近い値となるので、これを用いて目的とする二次元コードの明暗認識を行う。
【００１４】
このように、本発明では、認識しようとする目的の二次元コードと同じ印刷条件で判定コードを印刷しているので、一元的な認識方法となり、その結果、インクの飛散や滲みによって暗コードセルや明コードセルの光学特性値が変動しても、それに適した明暗境界値（しきい値）を簡単に設定することができ、認識精度が著しく向上する。
【００１５】
また、本発明では、検出された暗コードセルの光学特性値と明コードセルの光学特性値から論理的に明暗境界値を決定するので、試行錯誤することなく即座に適切なしきい値を求めることができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
【００１７】
図１は本発明に係る二次元コードと判定コードの一例を示す図である。二次元コード１は、４列×４行の二次元マトリックスのドットで構成されたコードセル１０を、１４列×８行の二次元マトリックス状にパターンとして配置したデータである。この１４列×８行のうちの左上の３列×３行の位置を後述する判定コード２の印刷領域として割り当てる。ただし、判定コード２の種類によっては３列×３行の割り当て領域に限定されず、任意のｍ列×ｎ行を割り当てることができる。
【００１８】
同図に示す例では、１行目には、左から、暗コードセル１０ｂ、暗コードセル１０ｂ、暗コードセル１０ｂ、暗コードセル１０ｂ、明コードセル１０ｗ、暗コードセル１０ｂ、明コードセル１０ｗ、明コードセル１０ｗ、暗コードセル１０ｂ、明コードセル１０ｗ、暗コードセル１０ｂ、暗コードセル１０ｂ、明コードセル１０ｗ、暗コードセル１０ｂという１４個の２進データが配列され（このうち１乃至３列の３つの暗コードセル１０ｂは判定コード２のもの）、また２行目には、左から、暗コードセル１０ｂ、明コードセル１０ｗ、暗コードセル１０ｂ、明コードセル１０ｗ、明コードセル１０ｗ、明コードセル１０ｗ、明コードセル１０ｗ、暗コードセル１０ｂ、明コードセル１０ｗ、明コードセル１０ｗ、明コードセル１０ｗ、暗コードセル１０ｂ、暗コードセル１０ｂ、暗コードセル１０ｂという１４個の２進データが配列されている（このうち１乃至３列の２つの暗コードセル１０ｂと１つの明コードセル１０ｗとは判定コード２のもの）。このようなマトリックス方式の二次元コード１は、バーコード方式とは異なり狭小な面積で多くの情報をもつことができる。
【００１９】
本例のコードセル１０の一例を図２に示す。同図に示すコードセル１０は、４列×４行の二次元マトリックスのドットパターンで構成され、一つのドットがプリンタのたとえば一つの画素に対応する。同図（Ａ）に示すコードセルが暗コードセル１０ｂであり、同図（Ｂ）に示すコードセルが明コードセル１０ｗである。
【００２０】
同図（Ａ）に示す暗コードセル１０ｂは、４列×４行の１６個のドットすべてが暗ドット１００ｂで構成されている。具体的には、印刷時に暗ドット１００ｂの部分をインクＯＮとすることで印刷される。
【００２１】
これに対して、同図（Ｂ）に示す明コードセル１０ｗは、すべてのドット１００が明ドット１００ｗで構成されたものであり、具体的には印刷時にインクの吐出をＯＦＦすることで印刷される。
【００２２】
図３（Ａ）乃至（Ｃ）は、本発明に係る判定コード２の例を示す図であるが、本発明の判定コードはこれら３形態にのみ限定はされな久、それぞれの判定コードを複数組み合わせたものなども用いることができる。
【００２３】
同図（Ａ）に示す判定コード２は、３列×３行の９個のコードセル１０から構成され、中心に位置するセルのみが明コードセル１０ｗとされ、この明コードセル１０を取り囲む８つのコードセルがすべて暗コードセル１０ｂとされたものである。この判定コード２では、中心に位置する明コードセル１０ｗが、周囲に配列された暗コードセル１０ｂのインクの飛散や滲みの影響を受けて、最も黒色に近い灰色に認識される可能性がある。したがって、この判定コード２を用いることで、最も黒色に近い明コードセル１０ｗの光学特性値を検出することができ、その光学特性値と、周囲の暗コードセル１０ｂから検出された光学特性値との、たとえば中間値を明暗境界値（しきい値）とすることで、明コードセル１０ｗを暗コードセル１０ｂと誤認識したり、逆に暗コードセル１０ｂを明コードセル１０ｗと誤認識したりすることが防止できる。
【００２４】
これに対して、同図（Ｂ）に示す判定コード２は、３列×３行の９個のコードセル１０から構成され、中心に位置するコードセル及び四隅に位置するコードセルが明コードセル１０ｗとされ、それ以外のコードセルが暗コードセル１０ｂとされたものである。
【００２５】
また、同図（Ｃ）に示す判定コード２は、６列×３行の１８個のコードセル１０から構成され、外周に位置するコードセルが暗コードセル１０ｂとされ、中央に位置する４個のコードセルのうち３個が明コードセル１０ｗとされたものである。
【００２６】
特に同図（Ａ）や（Ｃ）に例示された判定コード２は、最外周のコードセルをすべて暗コード１０ｂで構成しているので、目的とする二次元コードとともに印刷されても当該二次元コードの影響を受けることがない。また、周りをすべて暗コードセル１０ｂで囲まれた明コードセル１０ｗが最も反射光強度が小さくなるのが一般的であることから、同図（Ａ）や（Ｃ）に示される判定コード２を用いることがより好ましい。特に、暗コードセル１０ｂに囲まれた明コードセル１０ｗを判定コード２として採用する場合、同図（Ａ）に示すように一つよりも同図（Ｃ）に示すように複数存在した方が読み取り精度を向上させることができるので好ましい。この場合、平均値又は小さい方の値を利用する。
【００２７】
こうした判定コード２は、図１に示す二次元コード１の中の、予め決められた位置に目的とする二次元コードと同時に印刷される。
【００２８】
次に、図４を参照しながら本実施形態の処理手順について説明する。
【００２９】
まず同図のルーチンに入る前、すなわち目的とする２値化データをセル化した二次元コードを印刷する際に、その二次元コードの所定位置に上述した判定コード２も同時に印刷する。図１に示す例では、二次元コード１の左上の３列×３行の位置に判定コード２を印刷する。このように、読み取り対象となる二次元コード１の中に判定コード２を同時に印刷することで、そのプリンターのそのときの印刷条件で、インクの飛散、滲み、かすれなどの印刷条件の変動があってもその変動は判定コード２にも反映されることになる。
【００３０】
次に、同図に示すステップ１にて、光学的読み取り装置を用いて二次元コード１を読み取る。この場合、本例のように二次元コード１の中に判定コード２を埋め込んでおけば、二次元コード１と同時に自動的に判定コード２も読み取られることになる。このように、光学的読み取り装置により二次元コード１と判定コード２とを同時に読み取ることで、光学的読み取り装置の読み取り条件の変動も極力抑えることができる。
【００３１】
読み取られた二次元コード１と判定コード２の二次元画像データは、ステップ２でメモリなどに一時的に記憶されるが、次のステップ３にて、この二次元画像データから判定コード２のみを抽出する。この処理は、判定コード２の印刷位置が既知であることから、二次元画像データからその位置にある情報を抽出することにより行われる。そして、抽出された判定コード２の二次元画像データから暗コードセル１０ｂと明コードセル１０ｗの光学特性値を検出する。なお、光学特性値は光学的読み取り装置の反射光に応じたディジタルデータで得ることができる。これをたとえば０〜２５５の値で表す。
【００３２】
次のステップ４では、図３（Ａ）に示す例の判定コード２では、中心に位置する明コードセル１０ｗの反射光強度をそのまま明コードセル１０ｗの光学特性値とする一方で、その周囲に配置された８個の暗コードセル１０ｂの反射光強度のうち最も白色に近い値（または平均値）を暗コードセル１０ｂの光学特性値とする。そして、これら明コードセル１０ｗの光学特性値と暗コードセル１０ｂの光学特性値の中央値（平均値）を演算し、それをしきい値たる明暗境界値とする。判定コード２の二次元画像データから得られた明コードセル１０ｗの反射光強度が１８０、暗コードセル１０ｂの反射光強度が５０であるとすると、明暗境界値は１１５となる。なお、明暗境界値の求め方は中央値（平均値）に限定されることはなく、論理的なものであればよい。たとえば、明コードセル１０ｗまたは暗コードセル１０ｂの光学特性値に所定値だけ減算又は加算して明暗境界値とするなど、種々の方向が考えられる。このように、明コードセル１０ｗおよび暗コードセル１０ｂの光学特性値から一義的かつ即座に求め得る論理式とすることで、以降のステップへ迅速に移行することができる。
【００３３】
なお、判定コード２であるとする二次元画像データが、たとえばすべてのコードセルが暗コードセルであると認識されたり、あるいは明コードセルであるべき位置以外にも明コードセルがあったと認識された場合は、判定コード２がないデータとしてエラー処理する。
【００３４】
ステップ４にて明暗境界値を求めたら、メモリに一時的に記憶している判定コード２以外の二次元画像データを読み出し、その明暗境界値をしきい値にして明暗の判定を行う（ステップ５）。
【００３５】
上述したように、本例では同じ印刷条件で印刷された判定コード２を用いて明コードセル１０ｗと暗コードセル１０ｂの光学特性値を検出し、これに基づいて明暗境界値を設定しているので、実際の印刷条件に最も適合したしきい値となる。その結果、印刷条件が変動しても明コードセル１０ｗと暗コードセル１０ｂを誤認識することが防止され、認識精度が著しく向上する。
【００３６】
ステップ５にて二次元コード１の二次元画像データの明暗判定が終了したら、次の二次元コードの判定に移行する（ステップ６）。ここで、ステップ４にて求められた明暗境界値は、ステップ１で読み込まれた二次元コード１のみに使用するものであり、ステップ６にて別の二次元コード１を別の機会に読み取ったときは、そのときの判定コード２の光学特性値が用いられる。つまり、本例では、明暗境界値を一元的に決定するので、試行錯誤方式やフィードバック方式のように立ち上がりの認識精度が低下することもない。
【００３７】
なお、以上説明した実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記の実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。
【００３８】
【発明の効果】
以上述べたように本発明によれば、暗コードセルを明コードセルと誤認識したり、明コードセルを暗コードセルと誤認識したりすることがなくなり、複雑な処理を行わなくとも読み取り精度を高めることができる。
【図面の簡単な説明】
【図１】本発明に係る二次元コードと判定コードの一例を示す図である。
【図２】本発明に係る二次元コードに係る一つのコードセル（４列×４行）の一例を示す図である。
【図３】本発明に係る判定コードの例を示す図である。
【図４】本発明の処理手順を示すフローチャートある。
【図５】従来の二次元コードを示す図である。
【図６】従来の二次元コードの問題点を説明するための明コードセルを示す図である。
【符号の説明】
１…二次元コード
１０…コードセル
１０ｂ…暗コードセル
１０ｗ…明コードセル
１００…ドット
１００ｂ…暗ドット
１００ｗ…明ドット
２…判定コード
【図１】
2004102348.tif 000003
【図２】
2004102348.tif 000004
【図３】
2004102348.tif 000005
【図４】
2004102348.tif 000006
【図５】
2004102348.tif 000007
【図６】
2004102348.tif 000008