説明

二次元コード,二次元コードリーダおよびプログラム

【課題】レイアウトの自由度が従来よりも低くなることを防止しつつ、二次元コードとしての情報量を充分に確保する。
【解決手段】各ブロックBには、個々のセルに所定の情報が対応づけられており、そのブロックBで示すべき情報の対応づけられたセルにマークが付けられる。つまり、各ブロックBは、そのブロックB全体におけるマークが付けられたセルの位置によって情報を示している。そのため、二次元コード100と無関係な文字や画像が各ブロックBに重ねられても、マークの位置を特定領域S1,Sjに基づいて特定することで、そのブロックBで示される情報を特定できる。これにより、二次元コード100を配置するスペースに無関係な文字や画像を重ねることができるようになるため、二次元コード100のみを配置するためのスペースがなくてもよく、二次元コードを記録する記録媒体におけるレイアウトの自由度を高くすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セルが配列されてなる二次元コード,および,この二次元コードを読み取って認識する二次元コードリーダに関する。
【背景技術】
【0002】
近年、バーコードよりも情報容量の大きい二次元コードとして、情報を表したセルを二次元のマトリクス状に配置した二次元コードが普及してきている(特許文献1参照)。
【特許文献1】特許第2938338号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、上述した二次元コードでは、バーコードよりも情報量が多いとはいえ、より情報量を増やすことが容易とはいえない。
例えば、情報量を増やすために、二次元コードを構成するセルの数を増やすことが考えられるが、そのような対策では、二次元コードを配置するためのスペースがより多く必要となってしまう。その結果、このような二次元コードを記録する記録媒体におけるレイアウトの自由度が低くなってしまう。
【0004】
本発明は、このような課題を解決するためになされたものであり、その目的は、レイアウトの自由度が従来よりも低くなることを防止しつつ、二次元コードとしての情報量を充分に確保することである。
【課題を解決するための手段】
【0005】
上記課題を解決するため請求項1に記載の二次元コードは、それぞれm×nにセルが配列されてなる複数のブロックで構成された二次元コードである(m,nは1以上の正数とする)。この二次元コードにおいて、複数のブロックのうち、あらかじめ定められたブロックは、1以上のセルからなる領域が、当該二次元コードの位置を特定するための特定領域として割り当てられており、この特定領域のセルに付けられたマークによって、当該二次元コードの位置を特定するためのパターンを形成している。そして、ブロックそれぞれは、m×nに配列された各セルに所定の情報が対応づけられており、そのブロックで示すべき情報の対応づけられたセルにマークが付けられる。
【0006】
このように構成された二次元コードによれば、各ブロックそれぞれには、m×nに配列された個々のセルに所定の情報が対応づけられているため、そのブロックで示すべき情報の対応づけられたセルにマークが付けられる。つまり、ブロックそれぞれは、そのブロックを構成するセルそれぞれではなく、そのブロック全体におけるマークが付けられたセルの位置によって情報を示していることになる。
【0007】
そのため、この二次元コードにおいては、二次元コードと無関係な文字や画像が各ブロックに重ねられたとしても、セルに付けられるマークが判別できれば、そのブロック全体におけるマークの位置を、特定領域におけるパターンに基づいて特定できることになる。
【0008】
このように、本発明の二次元コードであれば、セルに付けられるマークが判別できることを条件として、二次元コードを配置するスペースに文字や画像を重ねることができるため、二次元コードのみを配置するためのスペースがなくてもよい。よって、二次元コードのみを配置するためのスペースが必要となる構成と比べて、二次元コードを記録する記録媒体におけるレイアウトの自由度を高くすることができる。
【0009】
また、この場合、二次元コードのみを配置するためのスペースが必要ないため、記録媒体に記録する他の文字や画像とは無関係に、その記録媒体における広い面積(例えば、全体)を二次元コード用のスペースとして利用することもできる。これにより、レイアウトの自由度が低くなることを防止しつつ、その記録媒体の面積に応じて、二次元コードとしての情報量を増やすことができる。
【0010】
さらに、この構成では、各ブロックのセルそれぞれと情報との対応関係が異なっていれば、その二次元コードで示される情報を全く異なる,または,無意味なものとすることができる。つまり、二次元コードにおいて、各ブロックのセルそれぞれと情報との対応関係が知られてしまわない限り、二次元コードで示される情報が第3者に知得されてしまうことを防止することができる。このような秘匿性を多くの二次元コードそれぞれにおいて確保するためには、各ブロックのセルそれぞれと情報との対応関係を増やすことが有効である。
【0011】
また、この構成における各セルについては、m×nに配列することができれば、どのような形状,大きさであってもよい。
また、上述した複数のブロックについては、どのような配置とされていてもよいが、例えば、一列に配置された構成とすることが考えられる。
【0012】
この場合、特定領域としては、例えば、先頭に配置されたブロックのうち、ブロックの配置方向(複数のブロックが配置された方向,以下同様)と交差する先頭の1ラインからなるセルを割り当てるようにするとよい。このように構成すれば、特定領域におけるパターンを特定して、そこから二次元コードを構成するブロックの数分だけ、最後尾側(列の後側,以下同様)へ向けて離れた位置までの領域を、二次元コードに対応する領域として特定することができる。
【0013】
また、特定領域としては、最後尾に配置されたブロックのうち、ブロックの配置方向と交差する最後尾の1ラインからなるセルを割り当てるようにしてもよい。このように構成すれば、特定領域におけるパターンを特定して、そこから二次元コードを構成するブロックの数分だけ、列の先頭側へ向けて離れた位置までの領域を、二次元コードに対応する領域として特定することができる。
【0014】
また、特定領域としては、先頭に配置されたブロックのうち、ブロックの配置方向と交差する先頭の1ラインからなるセル,および,最後尾に配置されたブロックのうち、ブロックの配置方向と交差する最後尾の1ラインからなるセルの両方を割り当てるようにしてもよい。
【0015】
このための構成としては、例えば、請求項2に記載の二次元コードのように構成することが考えられる。この二次元コードにおいて、複数のブロックのうち、先頭に配置されたブロックには、ブロックの配置方向と交差する先頭の1ラインからなるセルが、特定領域として割り当てられており、また、最後尾に配置されたブロックには、ブロックの配置方向と交差する最後尾の1ラインからなるセルが、特定領域として割り当てられている。
【0016】
このように構成すれば、特定領域におけるパターンをそれぞれ特定して、それら特定領域に挟まれた領域を、二次元コードに対応する領域として特定することができる。
また、上述した特定領域における「二次元コードの位置を特定するためのパターン」は、特定領域における1以上のセルにマークを付けることにより形成されるものであって、二次元コードの位置を特定することができるパターンであれば、マークを付ける具体的なセルについては特に限定されない。
【0017】
また、上述したセルに対して「マークを付ける」とは、例えば、セルを塗りつぶす,セルに特定の記号を記録する,特定の図形(例えば、丸や多角形など各種図形)を記録する,などといったことである。
【0018】
また、ブロックにおいて、特定領域のセルに付けられたマークと、特定領域以外のセルに付けられるマークとは、それぞれを容易に区別できるのであれば、同じ態様とすればよい。ただ、より容易に区別できるようにするためには、特定領域のセルには、特定領域用の態様によってマークが付けられるようにするとよい。ここで、特定領域用の態様とは、例えば、セルに特定の記号を記録する場合であれば、特定領域用の記号を用いるといったことである。
【0019】
また、特定領域用の態様としては、セルを塗りつぶす場合であれば、例えば、請求項3に記載のように、ブロックにおいて、特定領域のセルには、特定領域用の色によってマークが付けられるようにするとよい。
【0020】
このように構成すれば、特定領域用の色によってマークされているか否かによって、特定領域のセルに付けられたマークと、特定領域以外のセルに付けられたマークとを容易に区別することができる。
【0021】
また、上述した各ブロックは、m×nに配列された各セルに対して全て異なる情報が対応づけられた構成とすればよい。また、m×nに配列された各セルをいくつかのグループに分けて、それぞれにおいて対応するセルに同じ情報が対応づけられた構成としてもよい。
【0022】
この後者のためには、例えば、請求項4に記載の二次元コードのように構成するとよい。この二次元コードにおいて、ブロックは、それぞれ複数のグループに分けられ、この複数のグループそれぞれにおいて対応するセルに同じ情報が対応づけられている。そして、グループそれぞれは、このグループで示すべき情報の対応づけられたセルにマークが付けられる。
【0023】
このように構成すれば、それぞれのブロックに対して、グループの数に応じた複数の情報を持たせることができる。これにより、二次元コードにおける情報の密度を高めることができる。
【0024】
また、この構成において、ブロックそれぞれは、請求項5に記載のように、1以上のセルからなる領域が、マークの付けられたセルを有するグループの数を表すためのマーク領域として割り当てられている。そして、このマーク領域のセルに付けられたマークによって、マークの付けられたセルを有するグループの数を表すパターンを形成している。
【0025】
このように構成すれば、マーク領域に適切なグループの数を表すパターンをあらかじめ形成しておくことで、このパターンを、後に認識した情報が正しい情報であるか否かの判断基準として用いることができるようになる。
【0026】
具体的には、ブロックの各グループから特定された情報の数と、マーク領域に基づいて特定されたグループの数とが相違していれば、そのブロックにおいて特定された情報の数が間違っていることになる。これにより、ブロックの各グループのうち、セルにマークが付けられていないグループについて間違って情報を特定してしまった場合や、セルにマークが付けられているにも拘わらず情報を特定しなかった場合などのミスがあったことを判断できる。
【0027】
また、上述したマーク領域における「セルにマークが付けられたグループの数を表すパターン」は、マーク領域における1以上のセルにマークを付けることにより形成されるものであって、グループの数を特定することができるパターンであれば、マークを付ける具体的なセルについては特に限定されない。
【0028】
また、上述したようにブロックをグループ分けする構成において、ブロックにおけるグループそれぞれは、例えば、請求項6に記載のように、複数のセルにそのグループで示される情報が対応づけられている、ように構成するとよい。
【0029】
このように構成すれば、該当するグループで示される情報が複数のセルそれぞれに対応づけられているため、同一グループにおいて複数のセルに対してチェックが付けられることになる。
【0030】
この場合、マークの付けられた全てのセルに対応づけられた情報が一致すれば、その情報がグループで示される情報である確率が高いということになる。それに対し、全てのセルに対応づけられた情報が一致しなければ、いずれかのセルに対応づけられた情報が間違っており、本来マークを付けるべきセルではないセルにマークが付けられている,または,マークが付けられているセルの場所を間違えている可能性が高いということができる。
【0031】
これにより、ブロックの各グループにおいて、本来マークを付けるべきセルではないセルにマークが付けられている,または,マークが付けられているセルの場所を間違えているなどのミスがあったことを判断できる。
【0032】
また、上記課題を解決するため請求項7に記載の二次元コードは、m×nにセルが配列されてなる二次元コードである(m,nは1以上の正数とする)。そして、m×nに配列されたセルのうち、1以上のセルからなるセル群には、それぞれ異なる情報が対応づけられた色または色の組み合わせのうち、このセル群で示すべき情報の対応づけられた色または色の組み合わせによりマークが付けられる。
【0033】
このように構成された二次元コードによれば、セル群それぞれには、そのセル群で示すべき情報の対応づけられた色または色の組み合わせによりマークが付けられることになる。つまり、各セル群は、それぞれマークが付けられる色の数,または,色の組み合わせの種類に応じた情報量を持っていることになる。
【0034】
このことから、本二次元コードにおいては、マークが付けられうる色の数を増やすことにより、二次元コードを配置するためのスペースを増加させることなく、各セル群の情報量を増やすことができる。そのため、二次元コードとしての情報量を増やしても、二次元コードを記録する記録媒体におけるレイアウトの自由度が低くなってしまうことがない。
【0035】
さらに、この構成では、各セル群それぞれと情報との対応関係が異なっていれば、その二次元コードで示される情報を全く異なる,または,無意味なものとすることができる。つまり、二次元コードにおいて、各セル群それぞれと情報との対応関係が知られてしまわない限り、二次元コードで示される情報が第3者に知得されてしまうことを防止することができる。このような秘匿性を多くの二次元コードそれぞれにおいて確保するためには、各セル群それぞれと情報との対応関係を増やすことが有効である。
【0036】
また、この構成においては、二次元コードの位置を特定しやすくするために、例えば、請求項8に記載の二次元コードのように構成するとよい。この二次元コードでは、m×nに配列されたセルのうち、あらかじめ定められたセルは、当該二次元コードの位置を特定するための特定セルとして割り当てられており、この特定セルをマークした色によって、当該二次元コードの位置を特定するためのパターンを形成している。
【0037】
このように構成すれば、特定セルを基準にして二次元コードの位置を特定することができる。
また、上述した特定セルにおける「二次元コードの位置を特定するためのパターン」は、特定セルをマークした色により形成されるものであって、二次元コードの位置を特定することができる色であれば、その具体的な色については特に限定されない。
【0038】
また、請求項9に記載の二次元コードでは、一列に配列されたn個のセルのうち、先頭および最後尾のいずれか一方または両方のセルが、特定セルとして割り当てられている。
この構成において、特定セルが先頭のセルであれば、特定セルを特定して、そこから二次元コードを構成するセルの数分だけ、最後尾側(列の後側,以下同様)へ向けて離れた位置までの領域を、二次元コードに対応する領域として特定することができる。また、特定セルが最後尾のセルであれば、特定セルを特定して、そこから二次元コードを構成するセルクの数分だけ、列の先頭側へ向けて離れた位置までの領域を、二次元コードに対応する領域として特定することができる。そして、特定セルが先頭および最後尾のセルであれば、特定セルを特定して、それら特定セルに挟まれた領域を、二次元コードに対応する領域として特定することができる。
【0039】
また、上述したセルに対して「マークを付ける」とは、例えば、セルを塗りつぶす,セルに特定の記号を記録する,特定の図形(例えば、丸や多角形など各種図形)を記録する,などといったことである。
【0040】
なお、上述したように、セルで示すべき情報の対応づけられた色によりマークが付けられる二次元コードにおいては、その色を正確に特定しなければ、そのセルで示される情報を間違って特定してしまう恐れがある。
【0041】
このようなことを防止するためには、例えば、請求項10に記載の二次元コードのように構成することが考えられる。この二次元コードでは、m×nに配列されたセル付近における所定の位置に、それぞれ異なる情報が対応づけられた色全てを所定の順番で配置してなるリファレンス領域が1以上設けられている。
【0042】
このように構成すれば、個々のセルに付けられたマークの色が正確に判断できない場合であっても、1以上のセルからなるセル群で示される情報を、リファレンス領域における色と照らし合わせることで、正確に特定することができる。
【0043】
このリファレンス領域は、情報が対応づけられた全ての色を所定の順番で配置したものである。そのため、これと照らし合わせることで、各セルに付けられたマークの色が、それぞれリファレンス領域におけるどの位置に配置された色であるのかを特定することができる。
【0044】
そうすると、実際にセルから読み取った色をどの色として読み取ったかとは無関係に、リファレンス領域との対比でそのセルに付けられたマークの色を判断できるため、セルに付けられたマークの色を周辺環境などの影響で誤って読み取ったとしても、その色を正確に特定することができる。
【0045】
その後、こうして特定した色,または,それら色の組み合わせに対応づけられている情報を、例えば、その対応関係が登録されたデータベースなどから特定することで、1以上のセルからなるセル群で示される情報を特定することができる。
【0046】
なお、この構成におけるリファレンス領域は、セル付近における所定の位置に設けられたものであればよく、その具体的な位置は特に限定されない。また、このリファレンス領域は、1のリファレンス領域を二次元コードに対して設けた構成とすればよい。また、二次元コードに対して複数のリファレンス領域が設けられた構成としてもよい。また、二次元コードを構成する1以上のセルからなるセル群それぞれに対する複数のリファレンス領域が設けられた構成としてもよい。
【0047】
また、請求項11に記載の二次元コードリーダは、それぞれm×nにセルが配列されてなる複数のブロックで構成された二次元コードについて(m,nは1以上の正数とする)、該二次元コードを読み取って情報を認識する二次元コードリーダである。この二次元コードリーダは、二次元コードを示す画像を取得する画像取得手段と、この画像取得手段により取得された画像から、二次元コードで示される画像領域を特定する領域特定手段と、この領域特定手段により特定された画像領域から、二次元コードを構成するブロックそれぞれを特定するブロック特定手段と、このブロック特定手段により特定されたブロックそれぞれについて、そのブロックにおいてマークが付けられたセルを特定するセル特定手段と、このセル特定手段により特定されたセルに対応する情報それぞれを、セルと情報との対応関係が登録されたデータベースに基づいて特定し、こうして特定した情報それぞれからなる情報を、二次元コードで示される情報として認識する情報認識手段と、を備えている。また、二次元コードにおいて、あらかじめ定められたブロックは、1以上のセルからなる領域が、該二次元コードの位置を特定するための特定領域として割り当てられており、この特定領域のセルに付けられたマークによって、当該二次元コードの位置を特定するためのパターンを形成している。そして、領域特定手段は、画像取得手段により取得された画像から、二次元コードの位置を特定するためのパターンを抽出し、このパターンの形成された領域を、二次元コードを構成するあらかじめ定められたブロックにおける複数のセルからなる領域として、二次元コード全体で示される画像領域を特定する。
【0048】
このように構成された二次元コードリーダによれば、請求項1〜6のいずれかに記載の二次元コードを読み取って情報を認識するのに適している。
また、この構成において、二次元コードが請求項2に示すような構成となっている場合、領域特定手段は、画像取得手段により取得された画像から、二次元コードの位置を特定するためのパターンそれぞれを抽出し、該パターンの形成された領域で挟まれた領域を、二次元コードで示される画像領域として特定する、ように構成するとよい。
【0049】
このように構成した二次元コードリーダは、請求項2〜6のいずれかに記載の二次元コードを読み取って情報を認識するのに適している。
また、この構成または請求項10の構成において、二次元コードが請求項4に示すような構成となっている場合、セル特定手段は、ブロック特定手段により特定されたブロックそれぞれについて、このブロックのグループ毎にマークが付けられたセルをそれぞれ特定する、ように構成するとよい。
【0050】
このように構成した二次元コードリーダは、請求項4〜6に記載の二次元コードを読み取って情報を認識するのに適している。
また、この構成において、二次元コードが請求項5に示すような構成となっている場合、ブロック特定手段により特定されたブロックそれぞれから、マーク領域を抽出し、このマーク領域において形成されたパターンにより表されるグループの数が、セル特定手段により特定されたセルの数と一致するか否かを判定する第1エラー判定手段を備えた構成にするとよい。
【0051】
このように構成した二次元コードリーダは、請求項5または請求項6に記載の二次元コードを読み取って情報を認識するのに適している。
さらに、この構成であれば、ブロックの各グループから特定された情報の数と、マーク領域に基づいて特定されたグループの数とが相違していることをもって、そのブロックにおいて特定された情報の数が間違っていると判定することができる。これにより、ブロックの各グループのうち、セルにマークが付けられていないグループについて間違って情報を特定してしまったり、セルにマークが付けられているにも拘わらず情報を特定しなかったりといったミスがあったと判定することができる。
【0052】
さらに、この構成であれば、ブロックの各グループから特定された情報の数と、マーク領域に基づいて特定されたグループの数とが相違していることを、セルにマークが付けられていないグループについて間違って情報を特定した場合や、セルにマークが付けられているにも拘わらず情報を特定できなかった場合などのエラーがあったこととして判断することができる。
【0053】
また、二次元コードとして、各ブロックが複数のグループに分けられている二次元コードを読み取る二次元コードリーダにおいて、二次元コードが請求項6に示すような構成となっている場合、セル特定手段により特定された同一グループにおける複数のセルに対応する情報それぞれを、セルと情報との対応関係が登録されたデータベースに基づいて特定し、こうして特定された情報それぞれが一致するか否かを判定する第2エラー判定手段を備えた構成とするとよい。
【0054】
このように構成した二次元コードリーダは、請求項6に記載の二次元コードを読み取って情報を認識するのに適している。
さらに、この構成であれば、セル特定手段により特定された同一グループにおける複数のセルに対応する情報それぞれが相違していることを、本来マークが付けられるべきセルとは異なるセルにマークが付けられていたり、本来マークが付けられたセルとは異なるセルにマークが付けられていると誤認してしまったり、といったエラーがあったこととして判定することができる。
【0055】
また、請求項12に記載の二次元コードリーダは、m×nにセルが配列されてなる二次元コードにつき(m,nは1以上の正数とする)、該二次元コードを読み取って情報を認識する二次元コードリーダである。この二次元コードリーダは、二次元コードを示す画像を取得する画像取得手段と、この画像取得手段により取得された画像から、二次元コードで示される画像領域を特定する領域特定手段と、この領域特定手段により特定された画像領域から、二次元コードにおけるセルに付けられたマークそれぞれの色を特定するセル特定手段と、このセル特定手段により特定された1以上のセルの色または色の組み合わせに対応する情報それぞれを、1以上のセルからなるセル群の色または色の組み合わせと情報との対応関係が登録されたデータベースに基づいて特定し、こうして特定した情報それぞれからなる情報を、二次元コードで示される情報として認識する情報認識手段と、を備えている。
【0056】
このように構成された二次元コードリーダによれば、請求項7〜10のいずれかに記載の二次元コードを読み取って情報を認識するのに適している。
また、この構成において、二次元コードが請求項8に示すような構成となっている場合、領域特定手段は、画像取得手段により取得された画像から、二次元コードの位置を特定するためのパターンを抽出し、このパターンの形成された領域を、二次元コードを構成するあらかじめ定められたセルとして、二次元コード全体で示される画像領域を特定する、ように構成するとよい。
【0057】
このように構成した二次元コードリーダは、請求項8〜10に記載の二次元コードを読み取って情報を認識するのに適している。
また、この構成において、二次元コードが請求項9に示すような構成となっている場合、領域特定手段は、画像取得手段により取得された画像から、二次元コードの位置を特定するためのパターンそれぞれを抽出し、このパターンの形成された領域の割り当てられたセルを基準にして、複数のセルに相当する領域を、二次元コードで示される画像領域として特定する、ように構成するとよい。
【0058】
このように構成した二次元コードリーダは、請求項9または請求項10に記載の二次元コードを読み取って情報を認識するのに適している。
また、上述したように、m×nにセルが配列されてなる二次元コードを読み取って情報を認識する二次元コードリーダにおいて、二次元コードが請求項10に示すような構成となっている場合、請求項13の二次元コードリーダのように構成するとよい。
【0059】
この二次元コードリーダは、領域特定手段により特定された画像領域から、所定の位置に設けられたリファレンス領域を抽出するリファレンス抽出手段を備えている。また、セル特定手段は、二次元コードにおけるセルに付けられたマークそれぞれの色が、リファレンス抽出手段により抽出されたリファレンス領域におけるどの位置に配置された色であるかを特定する。そして、情報認識手段は、セル特定手段により特定された色,または,それら色の組み合わせに対応づけられている情報を、リファレンス領域における色または色の組み合わせと情報との対応関係が登録されたデータベースに基づいて特定する。
【0060】
このように構成した二次元コードリーダは、請求項10に記載の二次元コードを読み取って情報を認識するのに適している。
また、上述したように、それぞれm×nにセルが配列されてなる複数のブロックで構成された二次元コードを読み取って情報を認識する二次元コードリーダにおいて、領域特定手段により二次元コードで示される画像領域を特定する際には、例えば、請求項14に記載の二次元コードリーダのように構成するとよい。
【0061】
この二次元コードリーダにおいて、領域特定手段は、画像取得手段により取得された画像のうち、二次元コードのセルをマークするのに用いられる色成分を有する領域から、優先的にパターンの抽出を試みる、ように構成されている。
【0062】
このように構成すれば、画像取得手段により取得された画像から、二次元コードで示される画像領域を短時間で特定することができる。
なお、この構成において、二次元コードのセルをマークするのに用いられる色成分を有する領域以外の領域について、色成分を無意味化(例えば、無関係な色で塗りつぶすなど)した後で、領域特定手段が、パターンの抽出を試みることとしてもよい。こうすれば、無意味ではない色成分を有する領域を特定しやすくなるため、二次元コードで示される画像領域を特定するまでの時間を短縮することが期待できる。
【0063】
また、上述したように、それぞれm×nにセルが配列されてなる複数のブロックで構成された二次元コードを読み取って情報を認識する二次元コードリーダにおいて、領域特定手段により二次元コードで示される画像領域を特定する際には、例えば、次に記載の二次元コードリーダのように構成してもよい。
【0064】
この二次元コードリーダにおいて、領域特定手段は、画像取得手段により取得された画像を構成する複数の領域それぞれについてのパターンの抽出を、あらかじめ定められた順番で試みる、ように構成されている。
【0065】
この構成であれば、複数の領域それぞれについてのパターンの抽出を、例えば、二次元コードが配置されている確率が高いと推定される順(例えば、画像の縁に位置する領域から中心に位置する領域に向かう順)で試みるようにすると、より二次元コードで示される画像領域を特定するまでの時間を短縮することが期待できる。また、二次元コードを配置すべき画像の最適領域をユーザなどに周知しておくと共に、その領域からパターンの抽出を試みるようにすると、ユーザが最適領域に二次元コードを配置した画像を画像取得手段により取得させることを条件に、より一層二次元コードで示される画像領域を特定するまでの時間を短縮することができる。
【0066】
また、上述したように、それぞれm×nにセルが配列されてなる複数のブロックで構成された二次元コードを読み取って情報を認識する二次元コードリーダにおいて、領域特定手段により二次元コードで示される画像領域を特定する際には、以下に記載の二次元コードリーダのように構成してもよい。この二次元コードリーダにおいて、領域特定手段は、画像取得手段により取得された画像のうち、二次元コードのセルをマークするのに用いられる色成分を有する領域の配色が、二次元コードのセルをマークする場合に想定される配色と一致する場合に、パターンであるとして抽出を行う、ように構成されている。
【0067】
例えば、画像取得手段により取得された画像領域のうち、二次元コードではない領域が、二次元コードのセルをマークするのに用いられる色成分を有していたとしても、そのような領域は、二次元コードではないため、二次元コードのセルをマークする場合に想定される配色になっている可能性は低い。そのため、この構成のように配色に基づいて該当するパターンであるか否かを判定すれば、二次元コードではない領域を二次元コードの領域であるとして、不必要な領域の特定,および,情報の認識をしてしまうことを防止することができる。
【0068】
なお、上述した各二次元コードリーダにおける画像取得手段は、カメラなどの撮像手段により自身で画像を示すデータを取得できる手段とすることが考えられる。また、二次元コードリーダ外部から入力することで、画像を示すデータを取得する手段とすることも考えられる。
【0069】
また、請求項15に記載のプログラムは、請求項11に記載の二次元コードリーダが備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラムである。
【0070】
このようなプログラムにより制御されるコンピュータシステムは、請求項11に記載の二次元コードリーダの一部を構成することができる。
また、請求項16に記載のプログラムは、請求項12から14のいずれかに記載の二次元コードリーダが備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラムである。
【0071】
このようなプログラムにより制御されるコンピュータシステムは、請求項12から14のいずれかに記載の二次元コードリーダの一部を構成することができる。
なお、上述した各プログラムは、コンピュータシステムによる処理に適した命令の順番付けられた列からなるものであって、各種記録媒体や通信回線を介して二次元コードリーダやこれを利用するユーザに提供されるものである。
【発明を実施するための最良の形態】
【0072】
以下に本発明の実施形態を図面と共に説明する。
(1)第1実施形態
(1−1)全体構成
二次元コードリーダ1は、図1に示すように、二次元コードリーダ1全体を制御する制御部10,各種情報を表示する表示部20,ユーザからの操作を受け付ける操作部30,メディアを介して二次元コードリーダ1外部からデータを入力可能なメディアドライブ40,画像を示す画像データを取得可能なカメラ50などを備えている。
【0073】
なお、この二次元コードリーダ1は、例えば、携帯電話端末や携帯情報端末などに実装されるものとして構成してもよい。また、周知のパーソナルコンピュータなどに実装されるものとして構成してもよい。
(1−2)二次元コードについて
上述した二次元コードリーダ1は、以下に示す二次元コード100を読み取るためのものであるため、この二次元コード100について説明する。
【0074】
二次元コード100は、図2(a)に示すように、それぞれm×n(本実施形態においては、20×20)にセルが配列されてなる複数(図2の例では、3)のブロックで構成され、これらブロックが一列に配置された構成とされている。なお、図2(a)において、各ブロックは、そのブロックで示される情報列で表される文字上に重ねられている。
【0075】
この二次元コード100を構成する各ブロックB1〜Bj(本実施形態においてj=3,以下同様)では、各ブロックが配置された方向(図2における左右方向,以下同様)と交差するライン(図2における上下方向の列,以下同様)のうち、先頭(図2における左端,以下同様)および最後尾((図2における右端,以下同様)に位置するラインのセルを除いたn−2(図2の例では、20−2=18)ライン分のセルが、そのブロックで示すべき情報のための情報領域I1〜Ijとして確保されている。
【0076】
この情報領域I1〜Ijは、それぞれ2ライン分のセルからなるグループに分けられており、各グループのセルそれぞれに、そのグループで示すべき情報が対応づけられている。つまり、各グループは、それぞれ最大(n−2)/2(図2の例では、(20−2)/2=9)からなる情報を示していることになる。ここで、各グループのセルは、図2(b)に示すように、アルファベットのa〜tがこの順番で先頭側のラインに対応づけられており、アルファベットのu〜z,4種類の記号(−,_,・,/)および数字の0〜0がこの順番で最後尾側のラインに対応づけられている。つまり、グループそれぞれにおいて対応するセルには、同じ情報が対応づけられている。そして、各グループのセルのうち、グループそれぞれで示す情報の対応づけられたセルが塗りつぶされる。ここで、情報領域I1〜Ijのセルに付けられるマークは、情報領域I1〜Ij用の色であるが、これ以外には用いられていない色(二次元コード100以外の文字や画像などに用いられている色を含む)であれば、どのような色であってもよい。なお、以降、セルが塗りつぶされることを「セルにマークが付けられる」という。
【0077】
また、この二次元コード100を構成するブロックのうち、先頭に配置されたブロックB1,および,最後尾に配置されたブロックBjには、二次元コードの位置を特定するための特定領域S1,Sjが割り当てられている。まず、先頭のブロックB1においては、各ブロックの配置方向と交差する先頭の1ラインからなるセルが特定領域S1として割り当てられている。また、最後尾のブロックBjにおいては、各ブロックの配置方向と交差する最後尾の1ラインからなるセルが特定領域Sjとして割り当てられている。そして、本実施形態においては、これら特定領域S1,Sjのうち、上端および下端のセルにマークが付けられることにより、それぞれ二次元コード100の位置を特定するためのパターンが形成されている。ここで、特定領域S1,Sjのセルに付けられるマークは、特定領域S1,Sj用の色であり、これ以外には用いられていない色で付けられている。
【0078】
また、二次元コード100を構成する各ブロックB1〜Bjそれぞれのうち、各ブロックの配置方向と交差する先頭の1ラインからなるセルは、そのブロックにおいて示される情報の数を示すマーク領域M1〜Mjとして割り当てられている。本実施形態においては、図2(b)に示すように、これらマーク領域M1〜Mjのうち、上端および下端のセルを除いたセルに、該当するブロックにおいて示されうる情報の数0〜9が順に対応づけられている。そして、これらセルのうち、該当するブロックで実際に示される情報の数に対応するセルにマークが付けられる。
【0079】
また、二次元コード100を構成する各ブロックB1〜Bj−1それぞれのうち、各ブロックの配置方向と交差する最後尾の1ラインからなるセルは、そのブロックにおける最後尾のラインである旨を示す参照領域R1〜Rj−1として割り当てられている。本実施形態において、これら参照領域R1〜Rj−1のうち、2カ所のセルにマークが付けられることで、そのブロックにおける最後尾側の端部を示すパターンが形成されている。
【0080】
そして、二次元コード100を構成する各ブロックB1〜Bjのうち、最後尾に配置されたブロックBjには、各ブロックの配置方向と交差する最後尾の1ラインからなるセルが、二次元コード100において示される情報の総数を示す総数領域Tjとして割り当てられている。本実施形態においては、図2(b)に示すように、この総数領域Tjのうち、上端および下端のセルを除いたセルに、情報の総数における1の位を示す数字1〜9,10の位を示す数字1〜9の順で対応づけられている。
(1−3)二次元コードリーダによる認識処理
以下に、二次元コードリーダ1(の制御部10)により実行される認識処理の処理手順を図3に基づいて説明する。この認識処理は、認識処理を開始するための操作が操作部30に対して行われた際に開始される。
【0081】
まず、画像データが取得される(s120)。ここでは、カメラ50により撮像された画像を示す画像データ,または,メディアドライブ40を介してメディアから入力される画像データが、制御部10の内蔵メモリに読み込まれる。
【0082】
次に、s120にて取得された画像データについて、この画像データで示される画像の中に二次元コード100が存在するか否かがチェックされる(s130)。ここでは、二次元コード100の位置を特定するためのパターンが、s120にて取得された画像データで示される画像の中から検索される。そして、そのようなパターン,つまり特定領域S1,Sjが検出されたことをもって、二次元コード100が存在すると判定される。
【0083】
このs120による検索で、二次元コード100が存在しないと判定された場合(s130:NO)、その旨のユーザへの通知などを経て本認識処理が終了する。
一方、s120による検索で、二次元コード100が存在すると判定された場合(s130:YES)、画像データで示される画像から、その二次元コード100の領域が抽出される(s140)。ここでは、s120にて取得された画像データで示される画像から、上述した特定領域S1,Sjと共に、この特定領域S1,Sjで挟まれた領域が抽出される。そして、こうして抽出された領域を示す領域画像データが生成される。
【0084】
次に、s140にて抽出された領域が、二次元コード100におけるブロック毎の領域に分割される(s150)。ここでは、s140にて抽出された領域画像が、先頭のラインから最後尾に向けて順に走査され、ブロックにおける最後尾のライン(参照領域R1),その次のラインから次のブロックにおける最後尾のライン(参照領域Ri(i=2〜j−1),その次のラインから最後尾のライン(総数領域Tj)が検出された時点までの領域それぞれに分割される。そして、こうして分割された分割画像を示す分割画像データそれぞれが生成される。
【0085】
次に、s150にて分割されたブロック毎の領域のうち、未処理の領域が存在するか否かがチェックされる(s160)。ここでは、s150にて生成された分割画像データで示される分割画像の中に、以降の処理で情報の認識が行われていない未処理の分割画像が存在するか否かがチェックされる。
【0086】
このs160で未処理の領域が存在すると判定された場合(s160:YES)、そのような未処理の領域のうち、s150にて分割された順番が最も早い領域について、その領域で示される情報の認識が行われる(s170)。ここでは、該当する分割画像であるブロックの情報領域Iについて、各グループにおいてマークが付けられているセルの位置が特定された後、その位置に対応づけられている情報が特定される。本実施形態において、制御部10の内蔵メモリには、二次元コード100における各セルの位置と、そのセルで示される情報とが対応づけて登録されたデータベースが記憶されている。なお、このデータベースにおける登録内容は、図2(b)に示すとおりである。そのため、このs170では、このデータベースを参照して、マークの付けられているセルの位置に対応づけられた情報が特定される。そして、各グループにおいて特定された情報それぞれを、先頭のグループから最後尾のグループの順に並べてなる情報列が、該当するブロックBで示される情報として認識される。
【0087】
次に、s170により認識された情報のエラーチェックが行われる(s180)。ここでは、まず、該当する分割画像であるブロックBのマーク領域Mにおいてマークが付けられているセルの位置が特定された後、その位置に対応づけられている情報,つまり該当するブロックBで表される情報の数(0〜9のいずれか)が上記データベースに基づいて特定される。そして、この情報の数と、s170において認識された情報列を構成する情報の数とが一致すれば、正常に認識がなされたと判定される一方、両者が一致しなければ、認識エラーであると判定される。
【0088】
このs180で、認識エラーであると判定された場合(s180:YES)、本認識処理が終了する。
一方、s180で、正常に認識がなされたと判定された場合(s180:NO)、s160へ戻り、以降、s160からs180までが、s150にて分割された全てのブロックに対して行われるまで繰り返される。
【0089】
そして、s160にて未処理の領域が存在しないと判定された,つまりs160からs180までが全てのブロックに対して行われたら(s160:NO)、ここまでに認識された情報数のエラーチェックが行われる(s200)。ここでは、まず、直前に行われたs170にて情報を認識する対象となった領域,つまり最後尾のブロックBjから、総数領域Tjに相当する領域が抽出され、この領域においてマークが付けられているセルの位置が特定される。続いて、こうして特定された位置に対応する情報を、上記データベースに基づいて特定する。なお、ここでの特定は、上記データベースに基づいて行われるものであるが、情報の総数における1の位を示す数字のいずれにもマークが付けられていない場合には、1の位が「0」であると特定され、10の位を示す数字のいずれにもマークが付けられていない場合には、10の位が「0」であると特定される。そして、こうして特定された情報それぞれからなる情報列,つまりこの二次元コード100において示される情報の総数と、ここまでに行われたs170にて認識された情報の数とが一致するか否かがチェックされる。このチェックにより、両者が一致すると判定すれば、正常に認識がなされたと判定される一方、両者が一致しなければ、認識エラーであると判定される。
【0090】
このs200で、認識エラーであると判定された場合(s200:YES)、本認識処理が終了する。
一方、s200で、正常に認識がなされたと判定された場合(s200:NO)、ここまでに行われたs170にて認識された各情報を並べた情報列が、表示部20に表示された後(s190)、本認識処理が終了される。なお、このs190では、表示部20に情報列が表示された後、操作部30に対して所定の操作が行われると、この情報列がRAM16やメディアドライブ40にセットされたメディアに記録される。
(1−4)作用,効果
上述した二次元コード100において、各ブロックBそれぞれには、m×nに配列された個々のセルに所定の情報が対応づけられているため、そのブロックBで示すべき情報の対応づけられたセルにマークが付けられる。つまり、ブロックBそれぞれは、そのブロックBを構成するセルそれぞれではなく、そのブロックB全体におけるマークが付けられたセルの位置によって情報を示していることになる。
【0091】
そのため、この二次元コード100においては、二次元コード100と無関係な文字や画像が各ブロックに重ねられたとしても、セルに付けられるマークが判別できれば、そのブロックB全体におけるマークの位置を、特定領域S1,Sjにおけるパターンに基づいて特定できることになる。なお、特定領域S1,Sjおよび情報領域I1〜Ijのセルに付けられるマークは、それぞれ情報領域I1〜Ij用の色にて付けられている。そのため、この色を基に、二次元コード100を特定した後、特定領域S1,Sjを基に、各ブロックBにおいてマークの付けられたセルを特定することができる。
【0092】
このように、上述した二次元コード100であれば、二次元コードを配置するスペースに文字や画像を重ねることができるため、二次元コードのみを配置するためのスペースがなくてもよい。よって、二次元コードのみを配置するためのスペースが必要となる構成と比べて、二次元コードを記録する記録媒体におけるレイアウトの自由度を高くすることができる。
【0093】
また、二次元コードのみを配置するためのスペースが必要ないため、記録媒体に記録する他の文字や画像とは無関係に、その記録媒体における広い面積(例えば、全体)を二次元コード用のスペースとして利用することもできる。これにより、レイアウトの自由度が低くなることを防止しつつ、その記録媒体の面積に応じて、二次元コード100としての情報量を増やすことができる。
【0094】
さらに、この構成では、各ブロックBのセルそれぞれと情報との対応関係が異なっていれば、その二次元コード100で示される情報を全く異なる,または,無意味なものとすることができる。つまり、二次元コード100において、各ブロックBのセルそれぞれと情報との対応関係が知られてしまわない限り、二次元コード100で示される情報が第3者に知得されてしまうことを防止することができる。このような秘匿性を多くの二次元コード100それぞれにおいて確保するためには、各ブロックBのセルそれぞれと情報との対応関係を増やすことが有効である。
【0095】
また、上記実施形態では、二次元コード100の各ブロックが、それぞれにおいて対応するセルに同じ情報が対応づけられた複数のグループに分けられている。そのため、それぞれのブロックBに対して、グループの数に応じた複数の情報を持たせることができる。これにより、二次元コード100における情報の密度を高めることができる。
【0096】
また、二次元コード100のブロックBそれぞれは、マーク領域Mが割り当てられている。このマーク領域Mは、該当するブロックBにおいて示されうる情報の数が対応づけられており、実際に示される情報の数に対応するセルにマークが付けられる。そのため、マーク領域Mにおける該当セルに適切にマークを付けて形成されるパターンを、各ブロックBにおいて認識した情報が正しい情報であるか否かの判断基準として用いることができるようになる。具体的には、図3のs170,s180において、ブロックBの各グループから特定された情報の数と、マーク領域Mに基づいて特定されたグループの数とが相違していれば、そのブロックにおいて特定された情報の数が間違っていると判定している。これにより、ブロックBの各グループのうち、セルにマークが付けられていないグループについて間違って情報を特定してしまった場合や、セルにマークが付けられているにも拘わらず情報を認識できなかった場合などの認識エラーがあったか否かを判断することができる。
【0097】
また、二次元コード100における最後尾のブロックBには、総数領域Tjが割り当てられている。この総数領域Tjは、二次元コード100において示される情報の総数が対応づけられており、実際の情報の総数に対応するセルにマークが付けられる(0の場合を除く)。そのため、総数領域Tjにおける該当セルにマークを付けてなるパターンを、二次元コード100において認識した情報列が正しい数であるか否かの判断基準として用いることができる。具体的には、図3のs200において、総数領域Tjに基づいて特定された情報の総数と、認識された情報の数とが相違していれば、その二次元コード100において認識した情報の数が間違っていると判定している。これにより、二次元コード100のうち、セルにマークが付けられていないグループについて間違って情報を特定してしまった場合や、セルにマークが付けられているにも拘わらず情報を認識できなかった場合などの認識エラーがあったか否かを判断することができる。
(1−5)変形例
以上、本発明の第1実施形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
【0098】
例えば、上記実施形態においては、二次元コード100における各ブロックが一列に配置された構成となっている場合を例示した。しかし、各ブロックは、これ以外の配置とされた構成としてもよい。
【0099】
また、上記実施形態においては、二次元コード100におけるブロックそれぞれが、正方形からなるセルが配列された構成となっているものを例示した。しかし、ブロックそれぞれを構成するセルについては、m×nに配列することができれば、三角形,長方形など正方形以外の多角形からなるセルが配列された構成となっていてもよい。
【0100】
また、上記実施形態においては、特定領域S1,Sjが二次元コード100における先頭および最後尾のブロックB1,Bjに割り当てられた構成となっている場合を例示した。しかし、この特定領域Sについては、例えば、先頭のブロックB1にのみ割り当てられた構成としてもよい。この場合、図3のs130において、特定領域S1を特定したら、同図s140において、特定領域S1から二次元コード100を構成するブロックBの数分だけ最後尾側へ向けて離れた位置までの領域を、二次元コード100に対応する領域として特定するように構成するとよい。
【0101】
また、特定領域Sについては、最後尾のブロックBjのみに割り当てられた構成としてもよい。この場合、図3のs130において、特定領域Sjを特定し、同図s140において、特定領域Sjから二次元コード100を構成するブロックBの数分だけ先頭側へ向けて離れた位置までの領域を、二次元コード100に対応する領域として特定するように構成するとよい。
【0102】
また、上記実施形態においては、特定領域S1,Sjにおける上端および下端のセルにマークが付けられることにより、二次元コード100の位置を特定するためのパターンが形成された構成を例示した。しかし、この二次元コード100の位置を特定するためのパターンとしては、上述以外のセルにマークが付けられた構成としてもよい。特に、二次元コード100の位置を特定するためのパターンが、二次元コード100の中心に対して上下非対称または左右非対称となるように各セルにマークを付けることが望ましい。この場合、二次元コード100が上下反対または左右反対になってしまっている場合でも、そのパターンが正常になるように補正したうえで適切に二次元コード100の認識を行うことができる。
【0103】
また、上記実施形態においては、セルを塗りつぶすことをもって、そのセルにマークが付けられていることを示している構成を例示した。しかし、セルにマークを付けるための態様については、これに限られない。例えば、セルに特定の記号を記録する,特定の図形(例えば、丸や多角形など各種図形)を記録するなどといったことを、セルにマークが付けられていることとして扱うようにしてもよい。
【0104】
また、上記実施形態においては、特定領域S1,Sj,情報領域I1〜Ijのセルに付けられるマークが、そのセルを専用の色で塗りつぶすことにより、マークが付けられた状態となるように構成されたものを例示した。しかし、特定領域S1,Sj,情報領域I1〜Ijのセルに付けられるマークは、それぞれを異なる記号や図形にするなど容易に区別できる態様であれば、同じ色で付けることとしてもよい。
【0105】
また、上記実施形態においては、二次元コード100の各ブロックが、それぞれにおいて対応するセルに同じ情報が対応づけられた複数のグループに分けられている構成を例示した。しかし、ブロックのm×nに配列された各セルに対して全て異なる情報が対応づけられた構成,つまり各ブロックが単一の情報を示す構成としてもよい。
【0106】
また、上記実施形態では、図3のs180において、マーク領域Mのマークに基づいてエラーチェックを行うように構成されたものを例示した。しかし、エラーチェックは、これ以外の方法により実現するように構成してもよい。
【0107】
例えば、二次元コード200のブロックBにおいて、各グループのセルに対し、そのグループで示される情報だけでなく、エラーチェック用の情報をも併せて対応づけておき、これに基づいて、同図s180でエラーチェックを行うように構成してもよい。
【0108】
ここでいうエラーチェック用の情報としては、図4(b)に示すように、各グループを構成するセルそれぞれに、最後尾側のラインに沿って下から順にアルファベットのa〜t,先頭側のラインに沿って下から順にアルファベットのu〜z,4種類の記号(−,_,・,/),数字の0〜9をエラーチェック用の情報として対応づけることが考えられる。これにより、そのグループで示される情報が複数のセルに対応づけられた状態となる。なお、各グループのセルに対し、そのグループで示される情報のみが対応づけられた状態を図4(c)に示す(図2(b)と同一)。
【0109】
この場合、そのグループにて示すべき情報が対応づけられたセルだけでなく、その情報と同じエラーチェック用の情報が対応づけられたセルについてもマークを付けるようにする。ただし、そのグループで示すべき情報が最後尾側のラインに存在する場合には、エラーチェック用の情報が対応づけられたセルにマークを付ける際、同グループにおいて隣接するセル(図2における左隣のセル)についても、マークをつけることとする。ここで、図2と同じ情報に基づいて該当セルにマークを付けた状態を図4(a)に示す。
【0110】
このように構成すれば、上述したようなマーク領域Mに基づくエラーチェックだけでなく、エラーチェック用の情報に基づいてのエラーチェックを行うことができるようになる。
【0111】
具体的には、図3のs160で「YES」と判定された後、以下に示すような処理が行われるように構成するとよい。
すなわち、図5に示すように、まず、グループにおいてマークが付けられているセルの位置が特定される(s162)。ここでは、グループにおける先頭側のラインのうち、マークの付けられたセルが特定され、1つのセルのみが特定された場合には、そのセルの位置が、そのグループで示される情報として特定される。一方、2つのセルが特定された場合には、右隣(最後尾側)のセルにマークの付けられていないセルの位置が、そのグループで示されるエラーチェック用の情報として特定される。続いて、グループにおける最後尾側のラインのうち、マークの付けられたセルが特定され、そのセルが、左隣(先頭側)のセルにマークが付けられているセルであれば、このセルの位置が、そのグループで示される情報として特定される。一方、左隣のセルにマークが付けられていないセルであれば、このセルの位置が、そのグループで示されるエラーチェック用の情報として特定される。
【0112】
次に、s162にて特定された位置それぞれに対応する情報として、各グループで示される情報,および,エラーチェック用の情報が、そのデータベースから特定される(s164)。ここでは、制御部10の内蔵メモリに、二次元コード100における各セルの位置と、そのセルで示される情報およびエラーチェック用の情報とが対応づけて登録されたデータベースが記憶されているものとし、これに基づいて情報の特定が行われる。この場合のデータベースにおける登録内容は、図4(b),図4(c)に示すとおりである。
【0113】
そして、s164にて特定された情報それぞれが、一致するか否かがチェックされ(s166)、一致すれば(s166:YES)、s170へ移行する一方、一致しなければ(s166:NO)、本認識処理を終了する。
【0114】
このように構成すると、二次元コード100においては、同一グループにおいて複数のセルに対してチェックが付けられる。そのため、マークの付けられた2つのセルに対応づけられた情報が一致すれば、その情報がグループで示される情報である確率が高いということになる。それに対し、2つのセルに対応づけられた情報が一致しなければ、少なくともいずれかのセルに対応づけられた情報が間違っており、本来マークを付けるべきセルではないセルにマークが付けられている,または,マークが付けられているセルの場所を間違えて特定している可能性が高いということができる。
【0115】
これにより、ブロックの各グループにおいて、本来マークを付けるべきセルではないセルにマークが付けられている,または,マークが付けられているセルの場所を間違えているなどのミスがあったか否かをチェックすることができる。
【0116】
また、上述した二次元コード100の利用方法としては、上述したように、二次元コード100で示される情報を表示部20に表示する以外の利用方法を考えることもできる。例えば、二次元コード100にて、特定のウェブサイトにアクセスするためのアクセス先(アドレス)を示すようにし、そのアクセス先へネットワークを介してアクセスする、といった利用方法が考えられる。このためには、二次元コード100を構成するブロックBのグループを、アクセス先となる文字数分だけ設けた構成とすればよい。ただ、ウェブページへのアクセス先は、ウェブページ毎に異ならない文字列(例えば、wwwや、jp,comなどのトップレベルドメイン)などをその一部とする文字列である。そのため、これらの文字列を対応づけたセルをいずれかのブロックBに割り当てておくようにするとよい。このための具体的な例としては、例えば、先頭のブロックB1におけるマーク領域M1のうち、情報が対応づけられていないセルなどを割り当てるとよく、この場合、図3のs170において、先頭のブロックB1に対する処理を行う際に、この領域における情報も認識するように構成すればよい。
(2)第2実施形態
(2−1)全体構成
本実施形態における二次元コードリーダは、第1実施形態における二次元コードリーダ1と同様の構成である。
(2−2)二次元コードについて
本実施形態の二次元コードリーダは、以下に示す二次元コード200を読み取るためのものであるため、その二次元コード200について説明する。
【0117】
二次元コード200は、図6に示すように、黒色の背景領域210上にp×n(本実施形態においては、p=5,n=8,以下同様)でセルC11〜Cpnが配列された構成となっている。なお、セルCそれぞれは、一定の隙間が設けられた状態で配列されている。
【0118】
この二次元コード200を構成する2行目以降のセルC21〜Cpnは、行毎に、それぞれ1以上のセルCからなるセル群に分けられており、そのセル群で示すべき情報の対応づけられた色または色の組み合わせで塗りつぶされる。なお、以降、セルCが塗りつぶされることを「セルCにマークが付けられる」という。
【0119】
また、各行のセルCのうち、先頭(図6における左端,以下同様)に位置するセルC11〜Cp1は、二次元コード200の位置を特定するための特定セルとして割り当てられている。そして、この特定セルに付けられた色(本実施形態では、黒(k))と、背景領域210とにより、二次元コード200の位置を特定するためのパターンを形成している。
【0120】
また、1行目のセルC11〜C1nは、二次元コード200の各セルCに付けられるうるマークの色全てにより、順番にマークが付けられたリファレンス領域となっている。本実施形態においては、セルCに付けられうるマークの色として、各セルが、黒(k),シアン(c),マゼンタ(m),イエロー(y),赤(r),緑(g),青(b),白(w)の順番にマークを付けられた構成となっている。
(2−3)二次元コードリーダによる認識処理
以下に、二次元コードリーダ(の制御部)により実行される認識処理の処理手順を図7に基づいて説明する。この認識処理は、認識処理を開始するための操作が操作部30に対してなされた際に開始される。
【0121】
まず、図3のs120と同様、画像データが取得される(s220)。
次に、s220にて取得された画像データについて、この画像データで示される画像の中に二次元コードが存在するか否かがチェックされる(s230)。ここでは、まず、s220にて取得された画像データで示される画像から、二次元コード200のセルCをマークするために用いられる色成分を有する領域以外の領域について、無関係な色で塗りつぶすなど色成分が無意味化される。続いて、無意味化されていない色成分を有する領域を優先して、二次元コード200の位置を特定するためのパターンの検索が行われる。そして、そのようなパターン,つまり特定セルおよび背景領域210からなる領域が検出されたことをもって、二次元コード200が存在すると判定される。
【0122】
このs220による検索で、二次元コード200が存在しないと判定された場合(s230:NO)、本認識処理が終了する。
一方、s220による検索で、二次元コード200が存在すると判定された場合(s230:YES)、画像データで示される画像から、その二次元コード200の領域がそれぞれ抽出される(s240)。ここでは、s220にて取得された画像データで示される画像から、二次元コード200の位置を特定するためのパターンとなっている領域が、それぞれ二次元コード200の領域として抽出される。そして、このようにして抽出された領域画像からなる画像データそれぞれが生成される。
【0123】
次に、s240にて抽出された二次元コード200の領域のうち、未処理の領域が存在するか否かがチェックされる(s242)。ここでは、s240にて抽出された二次元コード200の領域の中に、以降の処理でセルCの分割および情報の認識が行われていない未処理の領域が存在するか否かがチェックされる。
【0124】
このs242で未処理の領域が存在すると判定された場合には(s242:YES)、そのような未処理の領域のうち、s240において抽出された順番が最も早い領域について、その領域からリファレンス領域の領域が抽出される(s250)。ここでは、s240で抽出された領域のうち、二次元コード200における1行目のセルC11〜C1nが抽出される。そして、s240で抽出された領域から、リファレンス領域,および,リファレンス領域の除去された領域からなる画像データそれぞれが生成される。
【0125】
次に、s240で抽出された領域のうち、リファレンス領域を除く領域について、その領域が、セルC毎の領域に分割される(s260)。ここでは、リファレンス領域の除去された領域について、各行に先頭から最後尾のセルに向けて順に走査され、背景領域210の色(黒)が検出されてから次に背景領域210の色(黒)が検出されるまでの領域それぞれに分割される。そして、こうして分割された分割画像を示す分割画像データそれぞれが生成される。
【0126】
次に、s260にて分割されたセルC毎の領域それぞれについて、その領域で示される情報の認識が行われる(s270)。ここでは、まず、分割画像であるセルCそれぞれに付けられているマークが、分割された順番で、s250にて抽出されたリファレンス領域におけるどの位置の色にて付けられているかがチェックされる。本実施形態において、制御部10の内部メモリには、リファレンス領域における各色またはその組み合わせに対し、それぞれ1以上の数字やアルファベットなどからなる文字列が対応づけて登録されたデータベースが記憶されている。そのため、こうして、セルCそれぞれに付けられているマークが、リファレンス領域におけるどの位置の色で付けられているかがチェックされた後、その位置の色またはその組み合わせに対応づけられた情報が、上記データベースに基づいて特定される。
【0127】
こうして、s270による認識が行われたら、s242へ戻り、以降、s242からs270までが、s240にて抽出された全ての二次元コード200に対して行われるまで繰り返される。
【0128】
そして、s242にて未処理の領域が存在しないと判定された,つまりs242からs270までが全ての二次元コード200に対して行われたら(s242:NO)、s270にて認識された各情報を並べた情報列が、表示部20に表示された後(s290)、本認識処理が終了される。なお、このs290では、表示部20に情報列が表示された後、操作部30に対して所定の操作が行われたら、この情報列がRAM16やメディアドライブ40にセットされたメディアに記録される。
(2−4)作用,効果
上述した実施形態において、二次元コード200における1以上のセルCからなるセル群それぞれには、そのセル群で示すべき情報の対応づけられた色または色の組み合わせによりマークが付けられることになる。つまり、各セル群は、それぞれマークが付けられる色の数,または,色の組み合わせの種類に応じた情報量を持っていることになる。
【0129】
このことから、二次元コード200においては、マークが付けられうる色の数を増やすことにより、二次元コード200を配置するためのスペースを増加させることなく、各セル群の情報量を増やすことができる。そのため、二次元コード200としての情報量を増やしても、二次元コード200を記録する記録媒体におけるレイアウトの自由度が低くなってしまうことがない。
【0130】
さらに、この構成では、各セル群それぞれと情報との対応関係が異なっていれば、その二次元コードで示される情報を全く異なる,または,無意味なものとすることができる。つまり、二次元コード200において、各セル群それぞれと情報との対応関係が知られてしまわない限り、二次元コード200で示される情報が第3者に知得されてしまうことを防止することができる。このような秘匿性を多くの二次元コード200それぞれにおいて確保するためには、各セル群それぞれと情報との対応関係を増やすことが有効である。
【0131】
また、二次元コード200では、各行の先頭に位置するセルCが特定セルとして割り当てられており、この特定セルに付けられた色により二次元コード200の位置を特定するためのパターンを形成している。そのため、この特定セルを基準にして二次元コード200の位置を特定することができる。具体的には、図7のs230で特定セルおよび背景領域210を基準として二次元コード200の位置を特定している。そして、同図s240において、この特定セルである先頭のセルCと背景領域210とで形成されるパターンの領域を、二次元コード200の領域として特定することができる。
【0132】
また、上記実施形態では、二次元コード200における1行目がリファレンス領域として割り当てられている。このリファレンス領域は、セルCに付けられうるマークの色を所定の順番で配置したものである。そのため、これと照らし合わせることで、各セルに付けられたマークの色が、それぞれリファレンス領域におけるどの位置に配置された色であるのかを特定することができる。
【0133】
つまり、この構成では、実際にセルCから読み取った色をどの色として読み取ったかとは無関係に、リファレンス領域との対比でそのセルCに付けられたマークの色が判断されることになる。そのため、セルCに付けられたマークの色を周辺環境などの影響で誤って読み取ったとしても、その色を正確に特定することができる。
【0134】
そして、図7のs270において、こうして特定した色またはその組み合わせに対応づけられている情報をデータベースから特定することで、1以上のセルCからなるセル群で示される情報を特定することができる。
【0135】
また、図7のs230において、画像の中に二次元コード200が存在するか否かをチェックする際には、二次元コード200のセルCをマークするのに用いられる色成分以外の領域が無意味化された後、無意味化されていない色成分を有する領域を優先してチェックが行われる。無意味化された領域は、二次元コード200のセルCをマークするのに用いられない色成分の領域であるため、このような領域に二次元コード200が存在することはない。そのため、上述のように、無意味化されていない色成分を有する領域を優先してチェックを行う構成であれば、画像の中における二次元コード200を短時間で特定することができる。
【0136】
さらに、色成分を無意味化することによって、無意味ではない色成分を有する領域を特定しやすくなるため、これによっても、二次元コード200を特定するまでの時間を短縮することが期待できる。
【0137】
また、上記実施形態では、画像の中から、二次元コード200の領域それぞれが抽出され(図7のs240)、これら領域それぞれについて情報の認識までの処理が繰り返し行われる(s242〜s270)。そのため、画像の中に複数の二次元コード200が配置されているような場合であっても、それぞれの二次元コード200で示される情報を一連の情報列として認識することができる。これにより、複数の二次元コード200それぞれからなる一連の情報列の認識を行わせるにあたって、ユーザは、二次元コード200が配置された画像を示す画像データを、1つの二次元コード200毎に別の画像データとして生成する必要がない。
【0138】
例えば、カメラ50にて画像データを取得する場合であれば、全ての二次元コード200が含まれる画像を撮影して画像データを取得するだけでよい。これによって、カメラ50の分解能と二次元コード200における各セルCの大きさとの関係で決まる距離だけ離れた場所からであっても、複数の二次元コード200からなる多くの情報を認識することができる。
(2−5)変形例
以上、本発明の第2実施形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
【0139】
例えば、上記実施形態においては、二次元コード200の各行の先頭セルCが特定セルとして割り当てられている構成を例示した。しかし、最後尾のセルCnを特定セルとして割り当てた構成としてもよい。
【0140】
また、上記実施形態においては、図7のs230,s240で、特定セルと背景領域210とに基づいて、二次元コード200の領域を特定するように構成されたものを例示した。しかし、特定セルのみで二次元コード200の領域を特定するように構成してもよい。例えば、先頭(または最後尾)のセルを特定セルとした場合であれば、特定セルである先頭(または最後尾)のセルCから最後尾(または先頭)のセルCまでの領域に相当する領域を、二次元コード200の領域として特定することができる。
【0141】
また、先頭のセルCおよび最後尾のセルC両方を特定セルとして割り当てた場合であれば、特定セルである先頭のセルCおよび最後尾のセルCで挟まれた領域を、二次元コード200の領域として特定することができる。
【0142】
また、上記実施形態においては、セルCを塗りつぶすことをもって、そのセルCにマークが付けられていることを示している構成を例示した。しかし、例えば、セルCに特定の記号を記録する,特定の図形(例えば、丸や多角形など各種図形)を記録する,などといったことを、セルCにマークが付けられていることとして扱うようにしてもよい。
【0143】
また、上記実施形態においては、二次元コード200における最上行のセルC11〜C1nがリファレンス領域として割り当てられている構成を例示した。しかし、このリファレンス領域は、m×nに配列されたセルC付近における所定の位置に設けられたものであれば、他の位置に設けられた構成としてもよい(m=p−1)。
【0144】
また、上記実施形態においては、画像の中に複数の二次元コード200が配置されているような場合に、それぞれの二次元コード200で示される情報を一連の情報列として認識する(図7のs290)構成となっているものを例示した。しかし、それぞれの二次元コード200で示される情報を別の情報として認識するように構成してもよい。
【0145】
また、上記実施形態において、画像の中に二次元コードが存在するか否かがチェックされる際に、画像を構成する複数の領域それぞれについてのパターンの抽出を、あらかじめ定められた順番で試みる、ように構成してもよい。この場合、複数の領域それぞれについてのパターンの抽出を、例えば、二次元コード200が配置されている確率が高いと推定される順(例えば、画像の縁に位置する領域から中心に位置する領域に向かう順)で試みるようにすると、より二次元コード200で示される画像領域を特定するまでの時間を短縮することが期待できる。また、二次元コード200を配置すべき画像の最適領域をユーザなどに周知しておくと共に、その領域からパターンの抽出を試みるようにすると、ユーザが最適領域に二次元コード200を配置した画像を二次元コードリーダ1に取得させることを条件に(図7のs220)、より一層二次元コード200で示される画像領域を特定するまでの時間を短縮することができる。
【0146】
また、上記実施形態においては、二次元コード200に対して1つのリファレンス領域が設けられた構成を例示した。しかし、このリファレンス領域は、1行または数行分のセルそれぞれに対して設けられた構成としてもよい。
【0147】
また、上記実施形態においては、二次元コード200について情報の認識を行うにあたり、常にリファレンス領域に基づいて情報の認識を行うように構成されたものを例示した(図7のs250〜s270)。しかし、リファレンス領域に基づいて情報の認識を行うのは、二次元コード200の各セルに付けられたマークの色を特定できない場合のみとしてもよい。このためには、例えば、以下に示すように構成するとよい。すなわち、図7のs242で「YES」と判定された場合に、リファレンス領域を除く各セルCの色を識別できたか否かをチェックする。ここで、色を識別できなかった場合にのみ、s250へ移行する。その一方、色を識別できた場合にs250を行うことなく、s260へ移行し、s270にて情報の認識を行うように構成するとよい。そして、この場合のs270では、まず、分割画像であるセルCそれぞれに付けられているマークが、分割された順番で、どの色にて付けられているかがチェックされる。ここでは、制御部10の内部メモリに、各色またはその組み合わせに対し、それぞれ1以上の数字やアルファベットなどからなる文字列が対応づけて登録されたデータベースも記憶されていることとする。そのため、こうして、セルCそれぞれに付けられているマークが、どの色で付けられているかがチェックされた後、その色またはその組み合わせに対応づけられた情報が、上記データベースに基づいて特定される。
【0148】
このように構成すれば、個々のセルに付けられたマークの色が正確に判断できない場合であっても、1以上のセルからなるセル群で示される情報を、リファレンス領域における色と照らし合わせることで、正確に特定することができる。
【0149】
このリファレンス領域は、情報が対応づけられた全ての色を所定の順番で配置したものである。そのため、これと照らし合わせることで、各セルに付けられたマークの色が、それぞれリファレンス領域におけるどの位置に配置された色であるのかを特定することができる。そうすると、実際にセルから読み取った色をどの色として読み取ったかとは無関係に、リファレンス領域との対比でそのセルに付けられたマークの色を判断できるため、セルに付けられたマークの色を周辺環境などの影響で誤って読み取ったとしても、その色を正確に特定することができる。
(3)本発明との対応関係
以上説明した実施形態において、図3のs120は本発明における画像取得手段であり、s130,s140は本発明における領域特定手段であり、s150は本発明におけるブロック特定手段であり、s170は本発明におけるセル特定手段および情報認識手段である。
【0150】
また、図7のs220は本発明における画像取得手段であり、s230,s240は本発明における領域特定手段であり、s270は本発明におけるセル特定手段および情報認識手段であり、s250は本発明におけるリファレンス抽出手段である。
【図面の簡単な説明】
【0151】
【図1】二次元コードリーダの構成を示すブロック図
【図2】第1実施形態における二次元コードを示す図
【図3】第1実施形態における認識処理を示すフローチャート
【図4】第1実施形態の変形例としての二次元コードを示す図
【図5】第2実施形態における認識処理を示すフローチャート
【図6】第2実施形態における二次元コードを示す図
【図7】第2実施形態の変形例としての認識処理を示すフローチャート
【符号の説明】
【0152】
1…二次元コードリーダ、10…制御部、20…表示部、30…操作部、40…メディアドライブ、50…カメラ、100…二次元コード、200…二次元コード、210…背景領域、B…ブロック、C…セル、I…情報領域、M…マーク領域、R…参照領域、S…特定領域、T…総数領域。

【特許請求の範囲】
【請求項1】
それぞれm×nにセルが配列されてなる複数のブロックで構成された二次元コードであって(m,nは1以上の正数とする)、
前記複数のブロックのうち、あらかじめ定められたブロックは、1以上のセルからなる領域が、当該二次元コードの位置を特定するための特定領域として割り当てられており、該特定領域のセルに付けられたマークによって、当該二次元コードの位置を特定するためのパターンを形成しており、
前記ブロックそれぞれは、m×nに配列された各セルに所定の情報が対応づけられており、該ブロックで示すべき情報の対応づけられたセルにマークが付けられる
ことを特徴とする二次元コード。
【請求項2】
前記複数のブロックが一列に配置された構成とされており、
前記複数のブロックのうち、先頭に配置されたブロックには、ブロックの配置方向と交差する先頭の1ラインからなるセルが、前記特定領域として割り当てられており、また、最後尾に配置されたブロックには、ブロックの配置方向と交差する最後尾の1ラインからなるセルが、前記特定領域として割り当てられている
ことを特徴とする請求項1に記載の二次元コード。
【請求項3】
前記ブロックにおいて、前記特定領域のセルには、該特定領域用の色によってマークが付けられている
ことを特徴とする請求項1または請求項2に記載の二次元コード。
【請求項4】
前記ブロックは、それぞれ複数のグループに分けられ、該複数のグループそれぞれにおいて対応するセルに同じ情報が対応づけられており、前記グループそれぞれは、該グループで示すべき情報の対応づけられたセルにマークが付けられる
ことを特徴とする請求項1から3のいずれかに記載の二次元コード。
【請求項5】
前記ブロックそれぞれには、1以上のセルからなる領域が、マークの付けられたセルを有するグループの数を表すためのマーク領域として割り当てられており、該マーク領域のセルに付けられたマークによって、マークの付けられたセルを有するグループの数を表すパターンを形成している
ことを特徴とする請求項4に記載の二次元コード。
【請求項6】
前記グループそれぞれは、複数のセルに該グループで示される情報が対応づけられている
ことを特徴とする請求項4または5に記載の二次元コード。
【請求項7】
m×nにセルが配列されてなる二次元コードであって(m,nは1以上の正数とする)、
前記m×nに配列されたセルのうち、1以上のセルからなるセル群には、それぞれ異なる情報が対応づけられた色または色の組み合わせのうち、該セル群で示すべき情報の対応づけられた色または色の組み合わせによりマークが付けられる
ことを特徴とする二次元コード。
【請求項8】
前記m×nに配列されたセルのうち、あらかじめ定められたセルは、当該二次元コードの位置を特定するための特定セルとして割り当てられており、該特定セルをマークした色によって、当該二次元コードの位置を特定するためのパターンを形成している
ことを特徴とする請求項7に記載の二次元コード。
【請求項9】
一列に配列されたn個のセルのうち、先頭および最後尾のいずれか一方または両方のセルが、前記特定セルとして割り当てられている
ことを特徴とする請求項8に記載の二次元コード。
【請求項10】
前記m×nに配列されたセル付近における所定の位置に、それぞれ異なる情報が対応づけられた色全てを所定の順番で配置してなるリファレンス領域が1以上設けられている
ことを特徴とする請求項7から9のいずれかに記載の二次元コード。
【請求項11】
それぞれm×nにセルが配列されてなる複数のブロックで構成された二次元コードについて(m,nは1以上の正数とする)、該二次元コードを読み取って情報を認識する二次元コードリーダであって、
前記二次元コードを示す画像を取得する画像取得手段と、
該画像取得手段により取得された画像から、前記二次元コードで示される画像領域を特定する領域特定手段と、
該領域特定手段により特定された画像領域から、前記二次元コードを構成するブロックそれぞれを特定するブロック特定手段と、
該ブロック特定手段により特定されたブロックそれぞれについて、該ブロックにおいてマークが付けられたセルを特定するセル特定手段と、
該セル特定手段により特定されたセルに対応する情報それぞれを、セルと情報との対応関係が登録されたデータベースに基づいて特定し、該特定した情報それぞれからなる情報を、前記二次元コードで示される情報として認識する情報認識手段と、を備え、
前記二次元コードにおいて、あらかじめ定められたブロックは、1以上のセルからなる領域が、該二次元コードの位置を特定するための特定領域として割り当てられており、該特定領域のセルに付けられたマークによって、当該二次元コードの位置を特定するためのパターンを形成しており、
前記領域特定手段は、前記画像取得手段により取得された画像から、前記二次元コードの位置を特定するためのパターンを抽出し、該パターンの形成された領域を、前記二次元コードを構成するあらかじめ定められたブロックにおける複数のセルからなる領域として、前記二次元コード全体で示される画像領域を特定する
ことを特徴とする二次元コードリーダ。
【請求項12】
m×nにセルが配列されてなる二次元コードにつき(m,nは1以上の正数とする)、該二次元コードを読み取って情報を認識する二次元コードリーダであって、
前記二次元コードを示す画像を取得する画像取得手段と、
該画像取得手段により取得された画像から、前記二次元コードで示される画像領域を特定する領域特定手段と、
該領域特定手段により特定された画像領域から、前記二次元コードにおけるセルに付けられたマークそれぞれの色を特定するセル特定手段と、
該セル特定手段により特定された1以上のセルの色または色の組み合わせに対応する情報それぞれを、1以上のセルからなるセル群の色または色の組み合わせと情報との対応関係が登録されたデータベースに基づいて特定し、該特定した情報それぞれからなる情報を、前記二次元コードで示される情報として認識する情報認識手段と、を備えている
ことを特徴とする二次元コードリーダ。
【請求項13】
前記二次元コードは、前記m×nに配列されたセル付近における所定の位置に、それぞれ異なる情報が対応づけられた色全てを所定の順番で配置してなるリファレンス領域が設けられており、
さらに、前記領域特定手段により特定された画像領域から、前記所定の位置に形成された前記リファレンス領域を抽出するリファレンス抽出手段を備えており、
前記セル特定手段は、前記二次元コードにおけるセルに付けられたマークそれぞれの色が、前記リファレンス抽出手段により抽出されたリファレンスにおけるどの位置に配置された色であるかを特定して、
前記情報認識手段は、前記セル特定手段により特定された色,または,それら色の組み合わせに対応づけられている情報を、前記リファレンス領域における色または色の組み合わせと情報との対応関係が登録されたデータベースに基づいて特定する
ことを特徴とする請求項12に記載の二次元コードリーダ。
【請求項14】
前記領域特定手段は、前記画像取得手段により取得された画像のうち、前記二次元コードのセルをマークするのに用いられる色成分を有する領域から、優先的にパターンの抽出を試みる
ことを特徴とする請求項12または13に記載の二次元コードリーダ。
【請求項15】
請求項11に記載の二次元コードリーダが備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。
【請求項16】
請求項12から14のいずれかに記載の二次元コードリーダが備える全ての手段として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。

【図1】
image rotate

【図3】
image rotate

【図5】
image rotate

【図7】
image rotate

【図2】
image rotate

【図4】
image rotate

【図6】
image rotate


【公開番号】特開2007−48070(P2007−48070A)
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願番号】特願2005−232232(P2005−232232)
【出願日】平成17年8月10日(2005.8.10)
【出願人】(504312966)
【出願人】(505302786)
【Fターム(参考)】