[go: up one dir, main page]

JP3887947B2 - Two-dimensional code reading method and recording medium - Google Patents

Two-dimensional code reading method and recording medium Download PDF

Info

Publication number
JP3887947B2
JP3887947B2 JP12892998A JP12892998A JP3887947B2 JP 3887947 B2 JP3887947 B2 JP 3887947B2 JP 12892998 A JP12892998 A JP 12892998A JP 12892998 A JP12892998 A JP 12892998A JP 3887947 B2 JP3887947 B2 JP 3887947B2
Authority
JP
Japan
Prior art keywords
information
dimensional code
code
cell
positioning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP12892998A
Other languages
Japanese (ja)
Other versions
JPH11328302A (en
Inventor
忠夫 大島
良輔 城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP12892998A priority Critical patent/JP3887947B2/en
Priority to US09/310,174 priority patent/US6267296B1/en
Publication of JPH11328302A publication Critical patent/JPH11328302A/en
Application granted granted Critical
Publication of JP3887947B2 publication Critical patent/JP3887947B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、2次元コードの読取方法に関する。
【0002】
【従来の技術】
従来、提案されている2次元コードとしては、例えば特開平7−254037号公報記載のものがある。この2次元コードは、図15(b)に一例を示すごとく情報が2次元的な広がりを持ち、図15(a)に示すバーコードに比べて格段に大量の情報を記録できるが、構造は複雑なものとなっている。
【0003】
すなわち、図16に示すごとく、2次元コード500の存在位置の確定を容易にするために、例えば、特定寸法比率の正方形を組み合わせた位置決め用シンボル510a,510b,510cを3個持っている。また、3個の位置決め用シンボル510a,510b,510c相互の間には白と黒とが交互に組み合わせられた各データセル位置の指標となる基準パターンであるタイミングセル520a,520bがある。
【0004】
2次元コード500の内部は、n×nの正方形の升目(以下、これをセルという)に区切られており、位置決め用シンボル510a,510b,510cは、例えば、一辺の長さが7セルに相当する黒い正方形512、一辺の長さが5セルに相当する白い正方形514、一辺の長さが3セルに相当する黒い正方形516を同心状に重ね合わせた時にできる図形である。
【0005】
この位置決め用シンボル510a,510b,510cの中心付近を直線的に横切ると、黒、白、黒、白、黒のパターンが1:1:3:1:1の比率で検出されるので、この性質を利用して、前記比率で黒と白が交互に検出された場合、そのパターンを位置決め用シンボル510a,510b,510cの有力な候補と判断し、2次元コード500の存在位置を確定するために優先的に検査する。
【0006】
そして、2次元コード500の形状は、3個の位置決め用シンボル510a,510b,510cで一義的に決まる平行四辺形の範囲であると推定できる。なお、データは、位置決め用シンボルや基準パターンなどを除外した領域530のセル(すなわち、データセル)で表され、各データセルを白あるいは黒に色分けすることにより、各データセルを1ビットのデータに対応させている。ただし、図16ではデータセルの白黒のパターンは判り易くするために省略されている。
【0007】
各データセルの位置は、3個の位置決め用シンボル510a,510b,510cの中心と2つのタイミングセル520a,520bを、それぞれ縦方向と横方向の座標の指標として、簡単な計算により求めることができる。
このように位置が決定した、各データセルの中心付近が黒であるか白であるかを判定して、黒を例えば1,白を例えば0に対応させることにより、2値データとして認識でき、解読することができる。
【0008】
なお、図16ではデータセル330の白黒のパターンは省略しているが、そのデータセル330におけるセルサイズは位置決め用シンボル310a,310b,310cのセルサイズと同じである。
【0009】
【発明が解決しようとする課題】
このような2次元コードにおける1セルのサイズは、その用途に応じて適宜変更することが要求される。例えば2次元コードを印刷したラベルが物品に付されている場合、その物品が高速移動している状態でラベルから2次元コードの読取を行う必要があれば、セルサイズをある程度大きくしなくてはならないが、その物品が停止あるいは低速移動している状態でラベルから2次元コードの読取を行うのであれば、セルサイズを相対的に小さくしても構わないからである。
【0010】
例えば、物品の仕分け段階などには、大量の物品を処理する関係から、高速移動させながら2次元コードを読み取ることが好ましい。一方、仕分けされた物品について作業者が手作業で何らかの処理をする場合には、例えば手持ちの読取装置で2次元コードを読み取ることとなるが、この場合には、読取可能なより小さなセルサイズで2次元コードを構成した方が、2次元コード自体を小さくできるため、好ましい。
【0011】
しかしながら、これを実現するためには、例えば高速移動時読取用には相対的に大きなセルサイズの2次元コードを印刷したラベル、手持ちの読取装置用には相対的に小さなセルサイズの2次元コードを印刷したラベル、というように2種類のラベルを用意し、それぞれ物品に付さなくてはならない。そのため、ラベル作成やラベル添付の作業増大につながってしまう。
【0012】
もちろん、1つのラベル内に、高速移動時に読み取る対象のデータと手持ちの読取装置にて読み取る対象のデータとを含めた2次元コードを構成することもできる。但し、この場合のセルサイズは、高速移動時読取用のセルサイズにしなくてはならないため、手持ちの読取装置にて読み取る対象のデータについては、本来はそのような大きなセルサイズにしなくてもよいにもかかわらず、必要以上に大きなセルサイズにて構成してしまうこととなる。つまり、2次元コード自体が大きくなってしまう。読取処理では、予め決められた一定の範囲のみの読み取りであるため、2次元コードが大きくなると、その大きな2次元コードに対処するため読取装置のハードやソフトの構成もそれに対応したものにする必要がある。
【0013】
このような観点から、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることのできる2次元コードを発明したため、本発明は、その2次元コードを読み取る方法を提供することを目的とする。
【0014】
【課題を解決するための手段及び発明の効果】
請求項1記載の2次元コードの読取方法は、次のような2次元コードを読み取ることを前提としている。つまり、セルの分布パターンにより情報を表現する2次元コード内の所定位置に配置され、2次元コードの位置を特定する位置決め用シンボルと、各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、その位置決め用シンボルを構成するセルと同じセルサイズのセルを用いて表現された第1の情報と、その位置決め用シンボルを構成するセルより小さなセルサイズのセルを用いて表現された第2の情報とが、それぞれ2次元コード内の所定位置に配置されている2次元コードである。この2次元コードによれば、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることができる。
【0015】
そして、本発明の2次元コードの読取方法は、まず、2次元コードの走査等により2次元コードの画像を得るとともに、画像中での位置決め用シンボルの位置を検出する2次元コード位置決め処理を行う。次に、2次元コード内の第1の情報あるいは第2の情報の少なくともいずれか一方のデータセルの位置を、位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出するセル位置決め処理を行う。次に、位置が検出されたデータセルに基づいて、第1の情報あるいは第2の情報の内の少なくともいずれか一方のコード情報を読み取るデコード処理を行う。
【0016】
このように、2次元コード内に含まれている複数のコード情報について、それらを区別していずれか一方を読み取ったり、あるいは両方を読み取ったりすることができる。したがって、例えば、この2次元コードを印刷したラベルの付された物品が高速移動する状態で読み取る場合には、位置決め用シンボルを構成するセルと同じセルサイズのセルを用いて表現された第1の情報のみを読み取り、物品が低速移動あるいは停止した状態で読み取る場合には、位置決め用シンボルを構成するセルよりも小さなセルサイズのセルを用いて表現された第2の情報のみを読み取る、といったこともできる。
【0017】
なお、読取対象の2次元コード中の第2の情報が、さらに複数種類の情報が、それぞれ異なるセルサイズのセルを用いて表現されているものである場合には、次のような2次元コード読取方法を採用してもよい。
すなわち、請求項3に示すように、セル位置決め処理において、2次元コード内の第1の情報あるいは第2の情報を構成する複数のセルサイズの各情報の少なくともいずれか一つのデータセルの位置を、位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出する。そして、デコード処理としては、位置が検出されたデータセルに基づいて、第1の情報及び第2の情報を構成する複数のセルサイズの各情報の内の少なくともいずれか一つのコード情報を読み取るのである。
【0018】
例えば、第1の情報のセルサイズよりも小さなセルサイズを用いて表現された情報Aと、その情報Aのセルサイズよりも小さなセルサイズを用いて表現された情報Bとで第2の情報を構成した場合、第1の情報は高速移動時に読み取り、第2の情報の内の情報Aは中速移動時に読み取り、情報Bは低速あるいは停止時に読み取る、といった用途別に選択読み取りが可能となる。もちろん、情報Bのセルサイズよりもさらに小さなセルサイズを用いて表現された情報C、情報Cのセルサイズよりもさらに小さなセルサイズを用いて表現された情報D……というように、3種類以上の情報で第2の情報を構成した場合でも同様である。つまり、3種類以上の情報について、任意のものだけ読み取ることができる。
【0019】
なお、第2の情報に対応するセルサイズは、位置決め用シンボルに対応するセルサイズを基準とした比率で設定されていてもよい。例えば、1/2,1/3,1/4……というように1/n(nは自然数)で設定することが考えられる。もちろん、n/m(m,nは自然数、但しm>n)というような比率でもよい。また、分数倍でなく小数倍であっても構わない。位置決め用シンボルは最初にその位置や形状が決定されるので、セル位置決め処理において、この位置決め用シンボルの形状を基準として、比率で第1の情報及び第2の情報のセルサイズを迅速・容易に特定できる。
【0020】
なお、位置決め用シンボルは、複数の異なる方向または複数の異なる位置において走査した場合に特定の周波数成分比が得られるパターンであれば、走査により迅速に位置決め用シンボルが検出できるので、2次元コード位置決め処理を迅速に行うことがき、結果的に2次元コードの読取処理が迅速に行える。
【0021】
また、読取対象の2次元コード中の第1の情報が、位置決め用シンボルに対応するコード種類を用いたコードにて表現され、第2の情報は、第1の情報と異なるコード種類を用いたコードにて表現されたものである場合には、次のような2次元コード読取方法を採用してもよい。
【0022】
すなわち、請求項4に示すように、デコード処理において、デコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取るのである。例えば、同じマトリックス式の2次元コードであっても「QRコード」、「CPコード」、「カルラコード」あるいは「ベリコード」(これらは何れも登録商標)など複数のコード種類が存在し、それぞれを解読するためのアルゴリズムは当然異なる。したがって、第1の情報、第2の情報それぞれに使用されているコード種類に応じた解読アルゴリズムを用いれば、各コード情報を読み取れる。
【0023】
なお、第2の情報が、異なるセルサイズのセルを用いた複数種類の情報で構成され、その第2の情報を構成する各情報は、第1の情報と異なるコード種類を用いたコードと異なるコード種類を用いたコードにて表現されていると共に、それら各情報同士においてもさらに、それぞれ異なるコード種類を用いたコードにて表現された2次元コードである場合にも同様に適用できる。すなわち、デコード処理において、第1の情報、第2の情報を構成する各情報の内のデコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取るのである。
【0024】
また、読取対象の2次元コードが、更に、位置決め用シンボルに対する所定位置に配置されて、2次元コード中の各情報の各々についての存在領域及びセルサイズを特定可能なフォーマットコードを備えている場合には、次のような2次元コード読取方法を採用してもよい。
【0025】
すなわち、請求項6に示すように、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置に基づいてフォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行う。そして、セル位置決め処理としては、取得された2次元コードのフォーマットに基づいてデータセルの位置を検出するのである。つまり、フォーマットコードは、2次元コード中の各情報の各々についての存在領域及びセルサイズを特定可能であるため、第1の情報を構成するデータセルの位置、第2の情報を構成するデータセルの位置を個別に検出することができる。そのため、第1に情報のみデコードしたり、第2の情報のみデコードしたり、もちろん、両方ともデコードすることができる。
【0026】
なお、このフォーマットコードは、例えば、2次元コードの情報を表しているデータセルと同じ様式のセルの分布パターンで表すことが考えられる。このように表せば、容易にフォーマットコードを検出することができる。
ところで、このような2次元コードのフォーマットについては、同一のフォーマットの2次元コードしか読取対象としない場合には、必ずしも必要ではない。つまり、その特定のフォーマットの2次元コードを読み取るための専用の解読アルゴリズムのみを準備すれば足りるからである。しかし、複数のフォーマットで表現される2次元コードが読取対象である場合には、読取対象の2次元コードのフォーマット自体をその時点で2次元コードから直接取得することが好ましい。したがって、本読取方法においては、2次元コードの読み取り時に、2次元コード中からフォーマットコードを読み取り、解読対象の2次元コード中における第1の情報及び第2の情報の存在領域及びセルサイズを把握し、それに基づいて解読する。
【0027】
また、第1の情報に使用されているコード種類と第2の情報に使用されているコード種類が異なり、フォーマットコードが、前記各情報の各々についての存在領域及びセルサイズに加えて、使用コード種類も特定可能にされている2次元コードを読取対象とする場合には、次のような2次元コード読取方法を採用してもよい。
【0028】
すなわち、請求項7に示すように、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置に基づいてフォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、セル位置決め処理として、取得された2次元コードのフォーマットに基づいて、データセルの位置を検出する。そして、デコード処理としては、取得された2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取るのである。
【0029】
なお、フォーマットコードとしては、第1及び第2の情報の存在領域やセルサイズ、あるいは使用コード種類を直接示していてもよいし、あるいは間接的に示すものであってもよい。つまり、存在領域、セルサイズ、使用コード種類などの違いによって例えばデータ種別分類をし、その分類を示す情報のみをフォーマットコードとし、分類情報と存在領域、使用コード種類、セルサイズなどとの対応関係自体は本読取方法を実現する読取装置側が保持する。
【0030】
また、2次元コードが、2次元コード内にて位置決め用シンボルとは異なる位置に配置され、位置決め用シンボルの位置と自身のパターンとに基づいて位置検出される補助シンボルを備えているものである場合には、請求項8に示すような読取方法を採用してもよい。すなわち、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置と補助シンボルのパターンとに基づいて、画像中での補助シンボルの位置を検出する補助シンボル位置決め処理を行う。そして、セル位置決め処理においては、補助シンボルにも基づいてデータセルの位置を検出するのである。
【0031】
このように、セル位置決め処理において、位置決め用シンボルのみでなく、補助シンボルも加えて、データセル近傍の位置決め用シンボルまたは補助シンボルの位置を用いているので、2次元コードが歪んでいても、位置決め用シンボルのみを基準としてデータセルを位置決めする場合に比較して、データセルが正確に位置決めされる。例えば、セル位置決め処理においては、各位置決め用シンボルおよび各補助シンボルの形状に基づいて、位置決め用シンボルまたは補助シンボルの周辺のデータセルの位置を検出することとすれば、2次元コードの歪みは、位置決め用シンボルおよび補助シンボルの形状に反映されているので、データセルの位置決めにも、2次元コードの歪みが反映され、正確にデータセルの位置決めができる。
【0032】
また、補助シンボルは、位置決め用シンボルのごとく、最初に2次元コードを位置決めするための基準としては用いられないので、2次元コード位置決め処理自体は、その処理量が徒に増加することなく迅速に行うことができる。なお、補助シンボルが、位置決め用シンボルよりも小さく形成されていれば、データセルの領域がそれだけ大きく確保できるので好ましい。補助シンボルは、2次元コードの位置決めを行う位置決め用シンボルほど大きなパターンを用いなくても、既に位置決め用シンボルにより2次元コードの位置は確定されているので、位置決め用シンボルよりも小さくても正確に位置が決定できる。
【0033】
さらに、位置決め用シンボルは、複数の異なる方向または複数の異なる位置において走査した場合に特定の周波数成分比が得られるパターンであれば好ましいことは上述したが、同様に、補助シンボルも、複数の異なる方向または複数の異なる位置において走査した場合に特定の周波数成分比が得られるパターンであっても良く、位置決め用シンボルの検出の後、補助シンボル検出処理が迅速に行えるので、2次元コードの迅速な読み取りのために好ましい。
【0034】
ところで、これまでの説明では、情報を表現するために用いるセルサイズが異なることを前提としていたが、第1の情報及び第2の情報の両者ともセルの分布パターンにより情報を表現する2次元コードであった。これに対して、セルの分布パターンにより情報を表現する2次元コード内の所定位置に配置され、2次元コードの位置を特定する位置決め用シンボルを備え、その位置決め用シンボルに対応するコード種類を用いた2次元コードにて表現された第1の情報と、バーコードにて表現された第2の情報とが、それぞれ2次元コード内の所定位置に配置された2次元コードを読対象とする場合には、次のような2次元コード読取方法を採用してもよい。
【0035】
すなわち、請求項9に示すように、まず、2次元コードの画像を得るとともに、画像中での位置決め用シンボルの位置を検出する2次元コード位置決め処理を行う。次に、2次元コード内の前記第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を、位置決め用シンボルの位置に基づいて検出するセル等位置決め処理を行う。次に、位置が検出されたデータセルに基づく第1の情報のコード情報の読取あるいは位置が検出されたバーに基づく第2の情報のコード情報の読取の少なくともいずれか一方のデコード処理を行う。
【0036】
このようにすれば、セルを2次元状に配置した「2次元コード」からなる第1の情報と、バーを1次元状に配置した「バーコード」からなる第2の情報とが混在していても、やはり第1の情報のみ読み取ったり、第2の情報のみ読み取ったり、あるいは両方とも読み取ったりすることが自由に行える。なお、当然であるが、第1に情報と第2の情報とでは解読アルゴリズムが異なる。
【0037】
そして、この場合も、同一のフォーマットの2次元コードしか読取対象としない場合には、その特定のフォーマットの2次元コードを読み取るための専用の解読アルゴリズムのみを準備すれば足りるが、複数のフォーマットで表現される2次元コードが読取対象である場合には、やはり、読取対象の2次元コードのフォーマット自体をその時点で2次元コードから直接取得することが好ましい。したがって請求項10に示すように、2次元コードが、更に、位置決め用シンボルに対する所定位置に配置されて、2次元コード中の各情報の各々についての存在領域及び使用コード種類を特定可能なフォーマットコードを備えている場合には、次のような読取方法を採用すればよい・
すなわち、2次元コード位置決め処理を行った後、検出された位置決め用シンボルの位置に基づいてフォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行う。そして、前記セル等位置決め処理としては、取得された2次元コードのフォーマットに基づいて、第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を検出する。また、デコード処理としては、取得された2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取る。
【0038】
なお、このような2次元コードの読取方法を実行する機能は、例えば、デジタル回路やコンピュータシステム側で起動するプログラムとして備えられる。プログラムで実現する場合、例えば、フレキシブルディスク、光磁気ディスク、CD−ROM、ハードディスク等の機械読み取り可能な記録媒体に記憶し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ROMやバックアップRAMを機械読み取り可能な記録媒体として前記プログラムを記憶しておき、このROMあるいはバックアップRAMをコンピュータシステムに組み込んで用いても良い。
【0039】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り、種々の形態を採り得ることは言うまでもない。
【0040】
図1のブロック図に、上述した発明が適用された2次元コード読取装置2の概略構成を示す。
2次元コード読取装置2は、CCD4、2値化回路6、画像メモリ8、クロック信号出力回路14、アドレス発生回路16、変化点検出回路18、比検出回路20、アドレス記憶メモリ22および制御回路28から構成されている。
【0041】
制御回路28は、CPU、ROM、RAM、I/O等を備えたコンピュータシステムとして構成され、ROMに記憶されているプログラムに従って、後述する2次元コード読み取り処理等を実行し、2次元コード読取装置2の各構成を制御している。
【0042】
ここで、2次元コード読取装置2にて検出される2次元コードの一例の概略図を図2に示す。この2次元コード52は、白色の台紙53の上に印刷されており、3個の位置決め用シンボル54A,54B,54C、データ領域56、1個の補助シンボル60、タイミングセル20a,20b及びフォーマットコード70などから構成されている。
【0043】
本実施例では、データ領域56が第1データ領域Aa及び第2データ領域Abに分割されており、両データ領域Aa,Abで用いられているデータセルのセルサイズとが異なっている。具体的には、第1データ領域Aaで用いられているデータセルのセルサイズは、第2データ領域Abに用いられているデータセルのセルサイズの縦横それぞれ2倍したいわゆる「4倍角セル」とされている。なお、図2では、第1データ領域Aa及び第2データ領域Abそれぞれにおいて、2セル×4セルの計8個で構成されるセルグループ単位で区切って示している。これは、1セルを1ビットと考えた場合に、1セルグループで1バイトを示すことができるため、このような単位で設定することにより読み取った後のデータ処理に都合がよいからである。
【0044】
したがって、実際には、第1データ領域Aaの1セルグループを示した図2(b)中の1つの正方形の升目が、第1データ領域Aaで用いられているデータセルのセルサイズを示している。同様に、第2データ領域Abの1セルグループを示した図2(c)中の1つの正方形の升目が、第2データ領域Abで用いられているデータセルのセルサイズを示している。そして、第1データ領域Aaのデータセルで表現されるものが「第1の情報」であり、第2データ領域Abデータセルで表現されるものが「第2の情報」である。
【0045】
また、2次元コード52全体のサイズは、第1データ領域Aaで用いられているデータセルを基準として、29セル×29セルの正方形状とされている。もちろん、第2データ領域Abで用いられているデータセルを基準とすれば58セル×58セルと表されるが、本実施例では、特に必要がない限り、第1データ領域Aaで用いられているデータセルを基準として説明することとする。
【0046】
データ領域56中の各セルは、光学的に異なった2種類のセルから選ばれており、図および説明上では白(明)・黒(暗)で区別して表す。なお、図2では便宜上、データ領域56のデータセルの白黒のパターンは省略している。もちろん、第1データ領域Aa及び第2データ領域Abそれぞれにおいて、各データ領域Aa,Abで用いられているデータセルの単位(図2(b),(c)参照)で明暗が区別して表されている。
【0047】
3つの位置決め用シンボル54A,54B,54Cは、2次元コード52の4つの頂点の内、3つに配置されており、第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。なお、技術思想的には、位置決め用シンボル54A,54B,54Cを構成するセルと同じセルサイズのデータセルを第1データ領域Aaで用いたと考える方が適切である。したがって、第2データ領域Abでは、位置決め用シンボル54A,54B,54Cを構成するセルの4分の1のセルサイズのデータセルを用いたこととなる。
【0048】
この位置決め用シンボル54A,54B,54Cのセルの明暗配置は、図3(A)に示すごとく、1セル幅の黒部からなる枠状正方形55a内の中心部分に、1セル幅の白部からなる縮小した枠状正方形55bが形成され、その内側の中心部分に黒部からなる3セル×3セルの大きさの正方形55cが形成されているパターンである。
【0049】
なお、図2からも判るように、第1データ領域Aaは位置決め用シンボル54A,54B,54C間に配置され、一方、第2データ領域Abは、それ以外の部分(図2(a)では右下部分)に配置されることとなる。
また、補助シンボル60は、図2に示すごとく、第2データ領域Abの内部に配置されているが、やはり第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。この補助シンボル60のセルの明暗配置は、図3(C)に示すごとく、1セル幅の黒部からなる枠状正方形61a内の中心部分に、1セル幅の白部からなる縮小した枠状正方形61bが形成され、その内側の中心部分に1セルの黒部からなる正方形61cが形成されているパターンである。
【0050】
一方、タイミングセル20a,20bは、位置決め用シンボル54A,54B,54C間に配置されており、第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。このタイミングセル20a,20bは、白と黒とが交互に組み合わせられた各データセル位置の指標となる基準パターンとして用いられる。
【0051】
また、フォーマットコード70は、位置決め用シンボル54Aの近傍に配置されており、第1データ領域Aaで用いられているのと同じセルサイズのデータセルにて構成されている。このフォーマットコード70は、第1及び第2の情報の各々についての存在領域、使用しているコード種類、セルサイズの内の少なくとも1つを特定可能な内容となっている。
【0052】
なお、この場合のフォーマットコード70は、第1及び第2の情報の各々についての存在領域、使用コード種類、セルサイズを直接示していてもよいし、あるいは間接的に示すものであってもよい。つまり、存在領域、使用コード種類、セルサイズなどの違いによって例えばデータ種別分類をし、その分類を示す情報(例えば数字など)のみをフォーマットコードとして有するものであってもよい。この場合には、2次元コード読取装置2の例えば制御回路28内のRAM等に、分類情報と、存在領域、使用コード種類、セルサイズなどとの対応関係を例えばテーブル化して格納しておけば対処できる。
【0053】
制御回路28は、以下に述べるごとくの読み取り制御を行う。
まず制御回路28の指示により、CCD4にて2次元コード52が通過する場所の2次元画像を検出する。CCD4は、2次元画像を検出すると、図4(a)に示すごとくの多段階のレベルからなる信号にて2次元画像データを出力する。この2次元画像データを、2値化回路6が制御回路28から指示された閾値にて2値化して、図4(b)に示すごとくの1(ハイ)/0(ロー)の2つのレベルからなる信号に変換する。
【0054】
一方、CCD4から出力される同期パルスに応じて、クロック信号出力回路14がCCD4から出力される2次元画像データのパルスより十分に細かいクロックパルスを出力する。アドレス発生回路16はこのクロックパルスをカウントして、画像メモリ8に対するアドレスを発生させる。2値化された2次元画像データは、このアドレス毎に8ビット単位で書き込まれる。
【0055】
一方、2値化回路6からの信号における「1」から「0」への変化あるいは「0」から「1」への変化時に、変化点検出回路18は、比検出回路20にパルス信号を出力する。比検出回路20は、変化点検出回路18からのパルス信号入力から次のパルス信号入力までに、クロック信号出力回路14から出力されたクロックパルスをカウントすることにより、2次元画像中の明(1)の連続する長さおよび暗(0)の連続する長さを求める。この長さの比から、2次元コード52の位置決め用シンボル54A,54B,54Cに該当するパターンを検出する。
【0056】
図3(A)に示したごとく、位置決め用シンボル54A,54B,54Cのほぼ中心を代表的な角度で横切るCCD4の走査線(a),(b),(c)での明暗パターンは、図3(B)に示すごとく、すべて同じ明暗成分比を持つ構造になっている。すなわち、位置決め用シンボル54A,54B,54Cの中心を横切るそれぞれの走査線(a),(b),(c)の明暗成分比は暗:明:暗:明:暗=1:1:3:1:1となっている。勿論、走査線(a),(b),(c)の中間の角度の走査線においても比率は1:1:3:1:1である。また、図3(A)の図形が、CCD4側から見て斜めの面に配置されていたとしても、前記走査線(a),(b),(c)の明暗成分比は暗:明:暗:明:暗=1:1:3:1:1を維持する。なお、図3(B)は、2値化回路6からの2値化された信号に該当する。
このことにより、比検出回路20は、この「1:1:3:1:1」なる明暗成分比を検出し、検出した場合は、そのタイミングにアドレス発生回路16にて発生されている画像メモリ8のアドレスをアドレス記憶メモリ22に記憶する。
【0057】
したがって、CCD4が1フレーム分の2次元画像データを検出すると、画像メモリ8には、2値化された2次元画像データが記憶され、アドレス記憶メモリ22には、検出された分の位置決め用シンボル54A,54B,54Cのアドレスが記憶されている。
【0058】
なお、最初の2次元画像の1フレーム分の画像が得られると、制御回路28は、画像メモリ8およびアドレス記憶メモリ22のデータに基づいて後述する2次元コード読み取り処理を行い、この処理が終了すれば、制御回路28は、続けて、CCD4に次の1フレームの2次元画像の検出を指示する。したがって、CCD4からは、再度、2次元画像が2値化回路6に出力され、上述したごとくの処理が繰り返される。
【0059】
次に、1フレーム分の2次元コード52の画像とその位置決め用シンボル54A,54B,54Cのアドレスが、画像メモリ8とアドレス記憶メモリ22とにそれぞれ記憶された後に、制御回路28は、2次元コード読み取り処理を実行する。この2次元コード読み取り処理を図5,6のフローチャートに示す。
【0060】
処理が開始されると、まず、位置決め用シンボル54A,54B,54Cの検出処理が行われる(S100)。
この処理では、画像メモリ8およびアドレス記憶メモリ22に対してアクセスし、その記憶内容から位置決め用シンボル54A,54B,54Cが適切な位置に、3つ存在しているか否かの判断と位置決め用シンボル54A,54B,54Cの画像上での正確な形状と中心位置とを決定する。
【0061】
この処理は、まずアドレス記憶メモリ22に多数検出された位置決め用シンボル54A,54B,54Cのアドレスが、位置的に3つのグループに分けられるかを、そのアドレス値と画像メモリ8の画像とを参照しつつ判断する。更に、各位置決め用シンボル54A,54B,54Cの形状と中心位置とを、画像メモリ8の画像の1(白)/0(黒)のパターンから決定し、その3つが図2に示したごとく3つの頂点に存在する配置状態になっているかを判断する。
【0062】
次に、ステップS100にて適切な3つの位置決め用シンボル54A,54B,54Cが検出されたか否かが判定され(S120)、検出されていなければ(S110で「NO」)、次の画像の検出をCCD4に指示して(図6のS280)、処理を終了する。
【0063】
適切な3つの位置決め用シンボル54A,54B,54Cが検出されると(S110で「YES」)、次に新しい2次元コード52か否かが判定される(S120)。この処理は、前回以前に検出された2次元コード52がいまだCCD4により検出され続けている場合に、別の2次元コードとして解読するのを防止するためである。例えば、前回または所定回数前の本処理にて、適切な3つの位置決め用シンボル54A,54B,54Cが検出され、更にそのコード内容も既に適切に読み取られていた場合には、同一の2次元コード52を検出しているものとして(S120で「NO」)、次の画像の検出をCCD4に指示して(S280)、処理を終了する。
【0064】
新しい2次元コード52であると判定すると(S120で「YES」)、次に位置決め用シンボル54A,54B,54Cの形状に応じて、各位置決め用シンボル54A,54B,54Cを構成する各セルの形状と中心位置が計算される(S130)。
【0065】
すなわち、まず、位置決め用シンボル54A,54B,54Cについては、図2,図3(A)に示すように、黒の枠状正方形55aの幅が1セル分、白の枠状正方形55bの幅が1セル分、および黒の正方形55cの幅が3セル分の形状であることから、画像メモリ8内の各位置決め用シンボル54A,54B,54C全体の高さと幅とから、その高さと幅とをそれぞれ7で割ることにより、各位置決め用シンボル54A,54B,54Cの位置におけるセルの高さと幅の値、すなわちセルの形状を各3つ得る。
【0066】
次に、このようにして求められた各位置決め用シンボル54A,54B,54Cにおけるセルの高さと幅に基づいて、各位置決め用シンボル54A,54B,54Cにおける各セル位置を決定する。
次に、位置決め用シンボル54Aに基づいてフォーマットコード70の検出処理を行う(S140)。このフォーマットコード70は、位置決め用シンボル54Aの最外周の枠状正方形55a(図3(A)参照)を構成する4辺の内、位置決め用シンボル54Bに対向する辺に対して、1セル分だけ離れて平行に配置されている。したがって、この関係に基づけばフォーマットコード70の位置が判り、コード検出することができる。
【0067】
次に、第1の情報をデコードするかどうかを判断し(S150)、デコードするのであれば(S150で「YES」)、第1の情報のコードをデコードする(S160)。
ここで、S160における第1の情報のコードのデコード処理の詳細について、図7のフローチャートを参照して説明する。
【0068】
本処理ルーチンが開始すると、まず、図5のS140にて検出したフォーマットコード70に基づき、2次元コード52中の第1データ領域Aaの存在位置とその中に含まれているデータセルのセルサイズを特定する(S161)。この場合のフォーマットコード70は、各データ領域の存在位置(存在領域)及びそのデータ領域中に含まれているデータセルのセルサイズなどの違いによってデータ種別分類された場合の、その分類を示す情報(例えば数字など)がコード化されたものである。つまり、この場合には、2次元コード読取装置2の例えば制御回路28中のRAM内に、分類情報と、存在領域・セルサイズとの対応関係がテーブル化されて格納されている。したがって、このS161においては、その対応関係テーブルを参照して、存在領域及びセルサイズを特定する。
【0069】
次に、S161にて特定された存在領域及びセルサイズと図5のS130にて検出された位置決め用シンボル54A,54B,54Cの形状及び中心位置に基づいて、第1で領域Aa内の各データセルの中心位置を決定する(S162)。
そして、各データセルの中心位置の画素から2値を読み取り、各セルの種類を決定しコード内容を得る(S163)。すなわちデコード処理を行う。このS163のデコードの際には、必要に応じてフォーマットコード70から得たフォーマット情報に基づいた処理を実行する。例えば、第1データ領域Aaにおいて2セル×4セルで区切って示されたセルグループの配置パターンは必ずしも整列している訳ではなく、例えば、位置決め用シンボル54A,54B間のセルグループは縦長のものと横長のものが混在しており、位置決め用シンボル54A,54C間のセルグループは縦長のものだけである。したがって、このようなセルグループの配置パターンなどを特定するためのフォーマット情報をフォーマットコード70から得て、それに基づいてデコードすればよい。
【0070】
こうして、第1の情報のコードが表している情報が得られ、本処理ルーチンを終了してメインルーチンに復帰し、図6のS170へ移行する。
S170では、このコード内容が正常なものか否かが判定される。例えば、白と黒とのセル数が予め決められている特定の数になっているか否か、あるいは表されているデータを所定の計算方法で計算した結果が2次元コード52内の所定範囲に表示されているチェック用データと一致しているか否か等により、正常にコードが読み取られているか否かが判定される。
【0071】
正常なコードであれば(S170で「YES」)、その第1の情報を出力するかどうかを判断し(S180)、出力するのであれば(S180で「YES」)、そのコード内容をホストコンピュータ等の他の装置へ出力したり、そのコード内容を特定のメモリに記憶したり、そのコード内容に対応した処理を実行したり、あるいはそのコード内容に対応した指示を出力したりする処理(以下、コード内容出力等処理」と称す)が行われる(S260)。その後、次の画像の検出をCCD4に指示して(S280)、処理を終了する。
【0072】
一方、第1の情報をデコードした結果、正常なコードでなければ(S170で「NO」)、S190へ移行する。なお、上述のS150にて否定判断、つまり第1の情報をデコードしないと判断された場合もこのS190へ移行する。S190では、第2の情報をデコードするかどうか判断し、第2の情報をデコードしない場合には(S190で「NO」)、次の画像の検出をCCD4に指示して(S280)、処理を終了する。
【0073】
これに対して、第2の情報をデコードする場合には(S190で「YES」)、S200へ移行して、第2の情報のコードをデコードする。なお、S180にて否定判断、つまり第1の情報を出力しないと判断された場合もこのS200へ移行し、第2の情報のコードをデコードする。
【0074】
ここで、S200における第2の情報のコードのデコード処理の詳細について、図8のフローチャートを参照して説明する。
本処理ルーチンが開始すると、まず、図5のS140にて検出したフォーマットコード70に基づき、2次元コード52中の第2データ領域Abの存在位置とその中に含まれているデータセルのセルサイズを特定する(S201)。この内容については、上述した図7のS161の場合と同様であるので繰り返さない。
【0075】
次に、位置決め用シンボル54A,54B,54Cに対して所定の位置に配置されている補助シンボル60の中心位置を、前述のごとく(図5のS130)得られている位置決め用シンボル54A,54B,54Cを構成しているセルの形状と中心位置とに基づいて計算で求め、更に計算位置周辺にて画像を精査して正確に形状と位置とを決定する(S202)。
【0076】
なお、図3(D)に示すごとく、補助シンボル60の中心を横切るそれぞれの直線(a),(b),(c)の明暗成分比は暗:明:暗:明:暗=1:1:1:1:1となる性質は本質的に図3(A),(B)に示した位置決め用シンボル54A,54B,54Cと同じである。
【0077】
そして、このように正確な形状と正確な中心位置とが決定された補助シンボル60に対して、補助シンボル60を構成する各セルの形状と中心位置とを決定する(S203)。
次に、S201にて特定された存在領域及びセルサイズ、図5のS130にて検出された位置決め用シンボル54A,54B,54Cの形状及び中心位置、さらに補助シンボル60のデータに基づいて、第2データ領域Ab内の各データセルの中心位置を決定する(S204)。
【0078】
そして、各データセルの中心位置の画素から2値を読み取り、各セルの種類を決定しコード内容を得る(S205)。こうして、第2の情報のコードが表している情報が得られ、本処理ルーチンを終了してメインルーチンに復帰し、図6のS210へ移行する。
【0079】
S210では、このコード内容が正常なものか否かが判定される。これは上述したS170での判定と同様である。
正常なコードであれば(S210で「YES」)、デコードされた第1の情報のデータがあるかどうかを判断し(S220)、第1の情報のデータがあれば(S220で「YES」)、さらに第2の情報のみデコード出力するかかどうかを判断する(S230)。そして、第2の情報のみデコード出力するのでない場合には(S230で「NO」)、デコードされた第1及び第2の情報についてコード内容出力等処理が行われる(S240)。一方、S220で否定判断、つまり第1の情報のデコードがない場合、あるいはS230で否定判断、つまり第2の情報のみデータ出力する場合には、S270へ移行して、デコードされた第2の情報のみについてコード内容出力等処理が行われる。
【0080】
また、S210にて否定判断、つまりデコードした第2の情報のコード内容が正常でなければ、第1の情報のデータがあるかどうかを判断する(S250)。第1の情報のデータがあれば(S250で「YES」)、デコードされた第1の情報のみについてコード内容出力等処理が行われ(S260)、一方、第1の情報のデータがなければ(S250で「NO」)、コード内容出力等処理は行わずにS280へ移行する。
【0081】
このように、本実施例の2次元コード読取装置2においては、2次元コード52のデータ領域56を構成する第1データ領域Aaに含まれている「第1の情報」及び第2データ領域Ab内に含まれている「第2の情報」について、それらを区別していずれか一方を読み取ったり、あるいは両方を読み取ったりすることができる。したがって、例えば、この2次元コード52を印刷したラベルの付された物品が高速移動する状態で読み取る場合には、位置決め用シンボル54A,54B,54Cを構成するセルと同じセルサイズのセルを用いて表現された第1データ領域Aaの第1の情報のみを読み取り、物品が低速移動あるいは停止した状態で読み取る場合には、その4分の1のセルサイズのセルを用いて表現された第2データ領域Abの第2の情報のみを読み取る、といったこともできる。
【0082】
このような2次元コード読取装置2を実現することで、読取対象となる2次元コード52については、用途に合わせて適切なセルサイズにてコードを形成できる上、それら複数の用途に応じたコードを混在させることができる。そのため、従来のように、高速移動時読取用には相対的に大きなセルサイズの2次元コードを印刷したラベル、手持ちの読取装置用には相対的に小さなセルサイズの2次元コードを印刷したラベル、というように2種類のラベルを用意してそれぞれ物品に付す必要がなく、1つのラベルで済む。そして、高速移動時に読み取る対象のデータと手持ちの読取装置にて読み取る対象のデータとを同一コード内に混在させても、従来のように必要以上に2次元コードが大きくなってしまうことを防止できる。なぜなら、高速移動時読取用のデータを示す場合のセルサイズについては、その高速移動時に読み取りができる最小限の大きさにすればよく、一方、手持ちの読取装置にて読み取るデータを示す場合のセルサイズについては、停止した状態で読み取ることができる最小限の大きさにすることができるからである。つまり、セルサイズの大きな方に合わせる必要がなく、用途に合わせて極力小さなセルサイズにてコードを形成できるので、2次元コード52自体を極力小さくできる。
【0083】
また、第2データ領域Ab内のコードのデコードに際しては、補助シンボル60も用いている。これによって、2次元コード52の画像が歪んでいても、データセルの位置決めが、位置決め用シンボル54A,54B,54Cのみ用いた場合よりも正確に行われる。したがって、そのデータセルが表している情報も正確に読み取ることができる。また、補助シンボル60は、位置決め用シンボル54A,54B,54Cのごとく、最初に2次元コード52を位置決めするための基準としては用いられないので、2次元コード52の位置決め自体も処理量が徒に増加することなく迅速に行うことができる。
【0084】
なお、読取対象の2次元コード52としては、図2(a)に示すように、第1データ領域Aaに用いるデータセルを基準とした場合に29セル×29セルのサイズを持つ2次元コード52として説明したが、全体のセルサイズが異なるバージョンの2次元コード52について対象としても実現できる。例えば図9(a)に示す2次元コードは、21セル×21セル(第2データ領域Abに用いるデータセルを基準とした場合には42セル×42セル)であり、図9(b)に示す2次元コードは、25セル×25セル(第2データ領域Abに用いるデータセルを基準とした場合には50セル×50セル)である。このいずれの場合であっても、第1データ領域Aaが位置決め用シンボル54A,54B,54C間に配置され、第2データ領域Abは、それ以外の部分(図9では右下部分)に配置されている点は同じである。したがって、「第1の情報」を表現するための第1データ領域Aaのデータセルの総数及び「第2の情報」を表現するための第2データ領域Abのデータセルの総数は、図2(a)に示す場合、図9(b)に示す場合、図9(a)に示す場合の順番に少なくなっている。
【0085】
また、図9(b)に示す場合には補助シンボル60は付加されているが、図9(a)に示す場合には補助シンボル60は付加されていない。この程度のサイズであれば、歪みの影響による読取誤差が少ないので特に補助シンボル60を付加しなくても正確に読み取りができる。もちろん、図9(b)に示す場合や図2(a)に示す場合に補助シンボル60がなくてもよい。なお、図9においては図2(a)に示した場合よりも全体のサイズが小さいものを示したが、逆に大きなサイズのものも実現できる。そして、このように全体サイズが異なる場合には、第1データ領域Aaにおいて2セル×4セルで区切って示されたセルグループの配置も多少異なっている。したがって、これらの違いについて区別するため、どのバージョンであるかを示すバージョン情報80が、位置決め用シンボル54A,54B間の第1データ領域Aaのデータセルに隣接して配置されている。したがって、図6のS160にて実行する第1の情報のコードのデコード処理においては、まずこのバージョン情報80を解読し、第1データ領域Aa内におけるセルグループの配置パターンを知った上で、デコードを行えばよい。
【0086】
本実施例において、CCD4、2値化回路6、クロック信号出力回路14、タイミングにアドレス発生回路16、変化点検出回路18および比検出回路20が行う処理と制御回路28が行うステップS100,S121とが2次元コード位置決め処理に該当し、ステップS140がフォーマット取得処理に該当する。また、ステップS202が補助シンボル位置決め処理に該当し、図7の場合であればステップS162、図8の場合であればステップS203,S204がセル位置決め処理に該当する。また、図7の場合であればステップS163、図8の場合であればステップS205がデコード処理に該当する。
【0087】
[別実施例]
上記実施例での読取対象の2次元コード52は、図2に示すように、第1データ領域Aaは位置決め用シンボル54A,54B,54C間に配置され、一方、第2データ領域Abは、それ以外の部分に配置されていた。つまり、データ領域56を分割し、それぞれが2次元的に連続する領域として設定されていた。これに対して、例えば図10に示すように、データ領域156内の全体にわたって第1データ領域Aaを散点的に配置し、それ以外の領域を第2データ領域Abとして設定した2次元コード152を読取対象とすることもできる。例えば図5のS160にて示した第1の情報のコードのデコード処理に際しては、散点的に配置されている第1のデータ領域Aaに対応するデータセルの中心位置における2値(0か1)を判断すればよいため、このような散点的な配置であっても同様のデータ処理が可能である。
【0088】
また、図2の場合と同様に領域を区切って設定する場合であっても、必ずしも第1データ領域Aaが位置決め用シンボル54A,54B,54C間に配置される必要はない。例えば、位置決め用シンボル54Aと位置決め用シンボル54Bの間にだけ第1データ領域Aaを設定してもよいし、あるいは、第2データ領域Abを位置決め用シンボル54A,54B,54C間に配置してもよい。
【0089】
また、これまでの説明では、「第2の情報」は位置決め用シンボル54A,54B,54Cのセルサイズの4分の1のセルサイズのデータセルを用いて表現されているとした。つまり、「第2の情報」を示すためのデータセルのサイズは全て等しいことを前提としたが、この「第2の情報」がさらに複数種類の情報の集まりであってそれぞれ異なるセルサイズのセルを用いて表現されていてもよい。例えば、図11に示すように「第2の情報」が4種類の情報が構成されるようにして、全部で5種類のセルサイズが存在するような2次元コード252を読取対象としてもよい。
【0090】
図11の例では、2次元コード252の4つの頂点に位置決め用シンボル254A,254B,254C,254Dを配置し、位置決め用シンボル254A,254B間の第1のデータ領域Aaには、上述例と同じく位置決め用シンボル254A,254B,254C,254Dと同じセルサイズ、つまり(1/1)のデータセルを配置する。また、位置決め用シンボル254A,254C間の第2のデータ領域Abには、位置決め用シンボル254A,254B,254C,254Dの(1/2)のセルサイズのデータセルを配置し、位置決め用シンボル254C,254D間の第3のデータ領域Acには、位置決め用シンボル254A,254B,254C,254Dの(1/3)のセルサイズのデータセルを配置する。そして、位置決め用シンボル254B,254D間の第4のデータ領域Adには、位置決め用シンボル254A,254B,254C,254Dの(1/4)のセルサイズのデータセルを配置し、それ以外の第5のデータ領域Ae(2次元コード252の中央部分の所定領域)には、位置決め用シンボル254A,254B,254C,254Dの(1/5)のセルサイズのデータセルを配置するのである。
【0091】
なお、この図11の場合には、位置決め用シンボル254A,254B,254C,254Dに対応するセルサイズを基準として1/2,1/3,1/4……というように1/n(nは自然数)で設定したが、もちろん、n/m(m,nは自然数、但しm>n)というような比率でもよい。但し、nを自然数として(1/2n )という比率で設定すれば、読み取ったデータをコンピュータシステムにて処理する上では好ましい。なお、分数倍でなく小数倍であっても構わない。
【0092】
そして、このような2次元コード252を読み取る場合であっても、基本的な処理内容は図5〜8で示したものと同様である。図5〜8の場合には、データ領域が2種類しかない2次元コード52を前提としたが、図11に示す2次元コード252であれば5種類あるので、それぞれについてデコードするかどうかを判断し、デコードする場合には、同じようにそのデータ領域に対応するセルサイズを考慮して、データ領域内の各データセルの中心位置を決定し、その中心位置に画素から2値を読み取ってセルの種類を決定してコード内容を得ればよい。
【0093】
このように、種々の領域設定やデータ配置が考えられるので、上述したフォーマットコード70(図2参照)にこれらを特定できる情報を設定しておけば、図5のS140にてフォーマットコード70を読み取り、そのフォーマットコード70に基づいてデコード処理を実行することで、種々のバリエーションにも対応できる。但し、このフォーマットコード70はある限定された状況では必ずしも必要ではない。つまり、同一のフォーマットの2次元コードしか用いない場合には、不要である。その特定のフォーマットの2次元コードを読み取るための専用のプログラムを準備すればよいからである。しかし、複数のフォーマットで表現される2次元コードを読み取る場合には、読取対象の2次元コードのフォーマット自体をその時点で2次元コードから直接取得できることが好ましい。したがって、図2に示すように、2次元コード52中にフォーマットコード70を含めておくことが好ましい。
【0094】
なお、上述したバージョン情報80は、ある意味ではフォーマットコード70の一部として捉えても良い。つまり、第1データ領域Aa及び第2データ領域Abの大きさの違いによって、上述した例では第1データ領域Aa中のデータセルのセルグループ配置パターンが異なっていた。したがって、この点だけを区別するのに用いるバージョン情報ではあるが、大きな意味ではフォーマットに関わる情報である。
【0095】
ところで、これまでの説明では、第1の情報と第2の情報は同じコード種類のものを用いることを前提とした2次元コードを読み取る場合について説明した。つまり、図2の場合であればいわゆる「QRコード」というコード種類の2次元コードである。しかし、必ずしも同じコード種類のものを使用しなくてはならないのではない。例えば図12に示すように、第1データ領域AaにおいてはQRコードにて「第1の情報」を表現し、第2データ領域Abにおいては、例えば同じマトリックス式の2次元コードであっても「CPコード」、「カルラコード」あるいは「ベリコード」(これらは何れも登録商標)などの、QRコードと異なるコード種類を用いたコードにて「第2の情報」を表現するようにしてもよい。また、図11に示すように5つの領域Aa〜Aeを持つ場合であれば、それぞれに異なる5つのコード種類のものを配置することも可能である。
【0096】
この場合には、例えばフォーマットコード70を参照すれば、どのデータ領域にどのコード種類のコード情報が含まれているのかが判るようにしておく。一方2次元コード読取装置2は、読取対象の2次元コードに含まれているコード種類に対応する解読アルゴリズムによるデコード処理のプログラムを備えておく。そして、各データ領域のコードをデコードする際、該当する解読アルゴリズムを用いてデコード処理を実行すればよい。
【0097】
ところで、これまでの説明においては、表現するために用いるセルサイズが異なることを前提とし、第1の情報及び第2の情報の両者ともセルの分布パターンにより情報を表現する2次元コードであった。これに対して、例えば図13に示すように、第1データ領域Aaにおいては、QRコードにて「第1の情報」を表現し、第2データ領域Abにおいては、例えばバーコードにて「第2の情報」を表現するようにしてもよい。なお、図13においては、位置決め用シンボル54A〜54B間を第2データ領域Abとして、その領域にバーコードを配置している。この場合には、例えば位置決め用シンボル54A〜54Bの中心同士を結ぶ直線の内で第2データ領域Abに含まれる部分における明暗判断をすることにより、バーコードをデコードできる。もちろん、これ以外に手法であってもよい。
【0098】
このようにすれば、例えばバーコードで示した第2の情報は店舗(店頭)管理用として用い、QRコードで示した第1の情報はバックヤード管理用として用いることが考えられる。また、第1の情報と第2の情報において用いるコード体系が異なる場合には、上述したフォーマットコード70においてそれが区別できるような情報を入れ込んでおけばよい。
【0099】
[その他]
前記各実施例で読取対象として説明した2次元コード52,152,252,352,452においては、例えば図2に示すように、位置決め用シンボル54A〜54Cを二重の正方形で、中心を横切る周波数成分比が黒:白:黒:白:黒=1:1:3:1:1の図形で表し、補助シンボル60は位置決め用シンボル54A〜54Cよりもサイズの小さい類似の図形で表していたが、図14(a)のように円形でもよく、図14(b)のように六角形でもよく、また他の正多角形でも良い。即ち、同心状に相似形の図形が重なり合う形に形成したものであればよく、図5のS100にて行う位置決め用シンボル検出処理の内容はなんら変わらない。さらに、中心を横切る周波数成分比があらゆる角度で同じならば、図14(c)に示すごとく、図形を何重にしても良い。この場合には、対応する周波数成分比を検出する処理が、図5のS100にて行う位置決め用シンボル検出処理となるだけである。
【0100】
さらに、前記各実施例では、例えば図2に示すように、読取対象の2次元コード52の外形を正方形で示したが、長方形でも良い。また、例えば図1に示すように、位置決め用シンボル54A〜54Cは、2次元コード52の4つの頂点の内、3つに配置されていたが、2次元コード52内での配置は任意である。また1つの2次元コード52に4つ以上の位置決め用シンボルを設けても良い。
【0101】
また位置決め用シンボルは2つでも良い。この場合に対角の2頂点に位置決め用シンボルを配置すれば2次元コード52の配置は決定する。また、対角以外の2頂点に、あるいは頂点以外に位置決め用シンボルを配置した場合にも、補助シンボル60のパターンを検出することで、データ領域56の配置を検出することができる。このように補助シンボル60のパターンの検出を利用すれば、位置決め用シンボルは1つでも良く、例えば、2次元コード52の中心に位置決め用シンボルが1つ存在し、その周囲に補助シンボルが配置されているようにしても良く、2次元コード52内の何れの位置に位置決め用シンボルを配置してもデータセルの位置を求めることができる。
【0102】
また、前記実施例では、位置決め用シンボル54A〜54Cは比検出回路20によりハード的に検出し、補助シンボル60についてはソフト的に検出していたが、補助シンボル60についても比検出回路を設けてハード的に検出しても良く、処理が一層迅速となる。もちろん、位置決め用シンボル54A〜54C及び補助シンボル60の両方ともソフト的に検出することも可能である。
【図面の簡単な説明】
【図1】 実施例における2次元コード読取装置の概略構成を表すブロック図である。
【図2】 実施例における2次元コードの概略構成説明図である。
【図3】 実施例における位置決め用シンボルおよび補助シンボルを走査した場合の明暗検出の説明図である。
【図4】 実施例におけるCCDと2値化回路との出力信号の説明図である。
【図5】 実施例における2次元コード読み取り処理の前半を示すフローチャートである。
【図6】 実施例における2次元コード読み取り処理の後半を示すフローチャートである。
【図7】 実施例における2次元コード読み取り処理内で実行される第1の情報のコードのデコード処理ルーチンを示すフローチャートである。
【図8】 実施例における2次元コード読み取り処理内で実行される第2の情報のコードのデコード処理ルーチンを示すフローチャートである。
【図9】 実施例における別バージョンの2次元コードの概略構成説明図である。
【図10】 別実施例における2次元コードの概略構成説明図である。
【図11】 別実施例における2次元コードの概略構成説明図である。
【図12】 別実施例における2次元コードの概略構成説明図である。
【図13】 別実施例における2次元コードの概略構成説明図である。
【図14】 位置決め用シンボルの他の形状の例を示す説明図である。
【図15】 従来のバーコードおよび2次元コードの説明図である。
【図16】 従来の2次元コードの概略構成説明図である。
【符号の説明】
2…2次元コード読取装置 4…CCD
6…2値化回路 8…画像メモリ
14…クロック信号出力回路 16…アドレス発生回路
18…変化点検出回路 20…比検出回路
20a,20b,120a,120b,220a,220b,320a,320b,420a,420b,520a,520b…タイミングセル
22…アドレス記憶メモリ 28…制御回路
52,152,252,352,452,500…2次元コード
54A,54B,54C,154A,154B,154C,254A,254B,254C,254D,354A,354B,354C,454A,454B,454C,510a,510b,510c…位置決め用シンボル
56,156,256,356,456,530…データ領域
60…補助シンボル
70…フォーマットコード 80…バージョン情報
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for reading a two-dimensional code.
[0002]
[Prior art]
Conventionally proposed two-dimensional codes include those described in JP-A-7-254037, for example. In this two-dimensional code, as shown in FIG. 15B, the information has a two-dimensional spread, and a much larger amount of information can be recorded as compared with the barcode shown in FIG. It is complicated.
[0003]
That is, as shown in FIG. 16, in order to facilitate the determination of the location of the two-dimensional code 500, for example, three positioning symbols 510a, 510b, and 510c combined with squares having a specific dimension ratio are used. Wait Yes. Between the three positioning symbols 510a, 510b, and 510c, there are timing cells 520a and 520b, which are reference patterns serving as indices of data cell positions in which white and black are alternately combined.
[0004]
The interior of the two-dimensional code 500 is divided into n × n square cells (hereinafter referred to as cells), and the positioning symbols 510a, 510b, and 510c have, for example, a length of one side corresponding to 7 cells. The black square 512, the white square 514 whose side is equivalent to 5 cells, and the black square 516 whose side is equivalent to 3 cells are concentrically superimposed.
[0005]
When the vicinity of the center of the positioning symbols 510a, 510b and 510c is linearly crossed, black, white, black, white and black patterns are detected at a ratio of 1: 1: 3: 1: 1. When black and white are detected alternately at the above ratio, the pattern is determined to be a strong candidate for the positioning symbols 510a, 510b, 510c, and the existence position of the two-dimensional code 500 is determined. Priority inspection.
[0006]
The shape of the two-dimensional code 500 can be estimated to be a parallelogram range uniquely determined by the three positioning symbols 510a, 510b, and 510c. The data is represented by cells (namely, data cells) in the region 530 excluding the positioning symbols and reference patterns, and each data cell is color-coded into white or black, whereby each data cell is 1-bit data. It corresponds to. However, in FIG. 16, the black and white pattern of the data cell is omitted for easy understanding.
[0007]
The position of each data cell can be obtained by simple calculation using the centers of the three positioning symbols 510a, 510b, and 510c and the two timing cells 520a and 520b as indices of the vertical and horizontal coordinates, respectively. .
By determining whether the position near the center of each data cell is black or white and determining the position in this way, black can be recognized as binary data by, for example, 1 and white corresponding to, for example, 0, Can be deciphered.
[0008]
In FIG. 16, the black and white pattern of the data cell 330 is omitted, but the cell size in the data cell 330 is the same as the cell size of the positioning symbols 310a, 310b, 310c.
[0009]
[Problems to be solved by the invention]
The size of one cell in such a two-dimensional code is required to be changed as appropriate according to the application. For example, if a label printed with a two-dimensional code is attached to an article, the cell size must be increased to some extent if it is necessary to read the two-dimensional code from the label while the article is moving at high speed. However, the cell size may be relatively small if the two-dimensional code is read from the label while the article is stopped or moving at a low speed.
[0010]
For example, it is preferable to read a two-dimensional code while moving at a high speed in order to sort a large number of articles at the article sorting stage. On the other hand, when the worker manually performs some processing on the sorted articles, for example, the two-dimensional code is read by a hand-held reader, but in this case, the cell size is smaller than that which can be read. The two-dimensional code is preferable because the two-dimensional code itself can be reduced.
[0011]
However, in order to realize this, for example, a label printed with a two-dimensional code having a relatively large cell size for reading during high-speed movement, and a two-dimensional code having a relatively small cell size for a hand-held reader. Two types of labels, such as a label printed with, must be prepared and each must be attached to an article. This leads to an increase in label creation and label attachment work.
[0012]
Of course, a two-dimensional code including data to be read during high-speed movement and data to be read by a hand-held reader can be formed in one label. However, since the cell size in this case has to be a cell size for reading during high-speed movement, the data to be read by a hand-held reading device need not be such a large cell size. Nevertheless, the cell size is larger than necessary. That is, the two-dimensional code itself becomes large. In the reading process, since only a predetermined range is read, if the two-dimensional code becomes large, the hardware and software configuration of the reading device must be adapted to cope with the large two-dimensional code. There is.
[0013]
From such a point of view, the present invention invents a two-dimensional code that can form a code with an appropriate cell size according to the application and can mix the codes according to the plurality of applications. An object is to provide a method of reading a code.
[0014]
[Means for Solving the Problems and Effects of the Invention]
The two-dimensional code reading method according to claim 1 is premised on reading the following two-dimensional code. That is, a positioning symbol that is arranged at a predetermined position in a two-dimensional code that expresses information by a cell distribution pattern and specifies the position of the two-dimensional code A timing cell that is a reference pattern serving as an index of each data cell position; First information expressed using a cell having the same cell size as a cell constituting the positioning symbol, and a first information expressed using a cell having a smaller cell size than the cell constituting the positioning symbol. Each of the two pieces of information is a two-dimensional code arranged at a predetermined position in the two-dimensional code. According to this two-dimensional code, a code can be formed with an appropriate cell size according to the application, and codes corresponding to the plurality of applications can be mixed.
[0015]
In the two-dimensional code reading method according to the present invention, first, a two-dimensional code image is obtained by scanning the two-dimensional code, and a two-dimensional code positioning process for detecting the position of the positioning symbol in the image is performed. . Next, cell positioning processing is performed to detect the position of at least one of the first information and second information in the two-dimensional code based on the position of the positioning symbol and the cell size of each information. . Next, based on the data cell from which the position has been detected, a decoding process for reading at least one of the first information and the second information is performed.
[0016]
In this way, with respect to a plurality of pieces of code information included in the two-dimensional code, one of them can be distinguished and either one can be read or both can be read. Therefore, for example, when an article with a label printed with this two-dimensional code is read at a high speed, the first cell expressed using a cell having the same cell size as the cell constituting the positioning symbol is used. When reading only information and reading the article while moving or stopped at low speed, only the second information expressed using a cell having a smaller cell size than the cells constituting the positioning symbol may be read. it can.
[0017]
When the second information in the two-dimensional code to be read is a plurality of types of information expressed using cells having different cell sizes, the following two-dimensional code is used. A reading method may be adopted.
That is, as shown in claim 3, in the cell positioning process, the position of at least one data cell of each information of a plurality of cell sizes constituting the first information or the second information in the two-dimensional code is determined. The detection is performed based on the position of the positioning symbol and the cell size of each information. In the decoding process, based on the data cell in which the position is detected, at least one of the pieces of information of the plurality of cell sizes constituting the first information and the second information is read. is there.
[0018]
For example, the second information is represented by information A expressed using a cell size smaller than the cell size of the first information and information B expressed using a cell size smaller than the cell size of the information A. When configured, the first information can be read at high speed, the information A of the second information can be read at a medium speed, and the information B can be read at a low speed or when stopped. Of course, there are three or more types, such as information C expressed using a cell size smaller than the cell size of information B, information D expressed using a cell size smaller than the cell size of information C, and so on. The same applies to the case where the second information is composed of the information. That is, only arbitrary information can be read out of three or more types of information.
[0019]
The cell size corresponding to the second information may be set at a ratio based on the cell size corresponding to the positioning symbol. For example, it is conceivable to set 1 / n (n is a natural number) such as 1/2, 1/3, 1/4,. Of course, a ratio such as n / m (m and n are natural numbers, where m> n) may be used. Further, it may be a fractional multiple instead of a fractional multiple. Since the position and shape of the positioning symbol are first determined, the cell size of the first information and the second information can be quickly and easily determined by the ratio in the cell positioning process based on the shape of the positioning symbol. Can be identified.
[0020]
If the positioning symbol is a pattern that obtains a specific frequency component ratio when scanned in a plurality of different directions or a plurality of different positions, the positioning symbol can be detected quickly by scanning, so that the two-dimensional code positioning is performed. As a result, the two-dimensional code can be read quickly.
[0021]
Further, the first information in the two-dimensional code to be read is expressed by a code using a code type corresponding to the positioning symbol, and the second information uses a code type different from the first information. If it is expressed in a code, the following two-dimensional code reading method may be adopted.
[0022]
That is, as shown in claim 4, in the decoding process, the code information is read using a decoding algorithm corresponding to the code type used for the information to be decoded. For example, even if the same matrix type two-dimensional code is used, “QR code”, “CP code”, “Carla code” or “Veri code” (These are registered trademarks) There are multiple code types, and the algorithms for decoding each are naturally different. Accordingly, each code information can be read by using a decoding algorithm corresponding to the code type used for each of the first information and the second information.
[0023]
The second information is composed of a plurality of types of information using cells having different cell sizes, and each information constituting the second information is different from a code using a code type different from the first information. The present invention can be similarly applied to a case where a two-dimensional code is expressed by a code using a code type, and each information is expressed by a code using a different code type. That is, in the decoding process, the code information is read using a decoding algorithm corresponding to the code type used for the information to be decoded among the information constituting the first information and the second information.
[0024]
Further, when the two-dimensional code to be read is further arranged at a predetermined position with respect to the positioning symbol and has a format code that can specify the existence area and the cell size for each piece of information in the two-dimensional code The following two-dimensional code reading method may be employed.
[0025]
That is, as shown in claim 6, after performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format of the two-dimensional code represented by the format code is acquired. Perform format acquisition processing. In the cell positioning process, the position of the data cell is detected based on the acquired two-dimensional code format. That is, since the format code can specify the existence area and the cell size for each piece of information in the two-dimensional code, the position of the data cell constituting the first information and the data cell constituting the second information Can be detected individually. Therefore, first, only information can be decoded, only second information can be decoded, and of course both can be decoded.
[0026]
Note that this format code may be represented by, for example, a cell distribution pattern in the same manner as a data cell representing information of a two-dimensional code. If expressed in this way, the format code can be easily detected.
By the way, such a two-dimensional code format is not necessarily required when only a two-dimensional code having the same format is to be read. That is, it is sufficient to prepare only a dedicated decoding algorithm for reading the two-dimensional code of the specific format. However, when a two-dimensional code expressed in a plurality of formats is to be read, it is preferable to directly acquire the format of the two-dimensional code to be read from the two-dimensional code at that time. Therefore, in this reading method, when reading the two-dimensional code, the format code is read from the two-dimensional code, and the first information and the second information existing area and the cell size are grasped in the two-dimensional code to be decoded. And decipher based on it.
[0027]
Further, the code type used for the first information is different from the code type used for the second information, and the format code is used code in addition to the existence area and the cell size for each of the information. When a two-dimensional code whose type can be specified is to be read, the following two-dimensional code reading method may be employed.
[0028]
That is, as shown in claim 7, after performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format of the two-dimensional code represented by the format code is acquired. A format acquisition process is performed, and as a cell positioning process, the position of the data cell is detected based on the acquired two-dimensional code format. In the decoding process, a decoding algorithm corresponding to the code type is specified based on the acquired two-dimensional code format, and the code information is read using the specified decoding algorithm.
[0029]
The format code may directly indicate the existence area, cell size, or used code type of the first and second information, or may indicate indirectly. In other words, for example, data type classification is performed according to differences in the existence area, cell size, use code type, etc., and only the information indicating the classification is used as a format code, and the correspondence between the classification information and the existence area, use code type, cell size The reader itself that realizes the reading method itself holds it.
[0030]
Further, the two-dimensional code is arranged at a position different from the positioning symbol in the two-dimensional code, and includes an auxiliary symbol whose position is detected based on the position of the positioning symbol and its own pattern. In such a case, a reading method as shown in claim 8 may be adopted. That is, after performing the two-dimensional code positioning process, the auxiliary symbol positioning process for detecting the position of the auxiliary symbol in the image is performed based on the detected position of the positioning symbol and the pattern of the auxiliary symbol. In the cell positioning process, the position of the data cell is detected based on the auxiliary symbol.
[0031]
As described above, in the cell positioning process, not only the positioning symbols but also the auxiliary symbols are used, and the positioning symbols or the positions of the auxiliary symbols in the vicinity of the data cell are used. Therefore, even if the two-dimensional code is distorted, the positioning is performed. As compared with the case where the data cell is positioned based only on the reference symbol, the data cell is positioned accurately. For example, in the cell positioning process, if the position of a positioning cell or a data cell around the auxiliary symbol is detected based on the shape of each positioning symbol and each auxiliary symbol, the distortion of the two-dimensional code is Since it is reflected in the shapes of the positioning symbol and the auxiliary symbol, the distortion of the two-dimensional code is reflected in the positioning of the data cell, and the positioning of the data cell can be performed accurately.
[0032]
In addition, since the auxiliary symbol is not used as a reference for positioning the two-dimensional code first like the positioning symbol, the two-dimensional code positioning process itself can be performed quickly without increasing the processing amount. It can be carried out. Note that it is preferable that the auxiliary symbol be formed smaller than the positioning symbol because the area of the data cell can be secured as much as that. Even if the auxiliary symbol does not use a pattern as large as the positioning symbol for positioning the two-dimensional code, the position of the two-dimensional code is already determined by the positioning symbol. The position can be determined.
[0033]
Furthermore, although it has been described above that the positioning symbol is a pattern that can obtain a specific frequency component ratio when scanned in a plurality of different directions or in a plurality of different positions, the auxiliary symbol is also a plurality of different symbols. It may be a pattern in which a specific frequency component ratio is obtained when scanning in a direction or a plurality of different positions, and after detecting a positioning symbol, an auxiliary symbol detection process can be performed quickly, so that a two-dimensional code can be quickly Preferred for reading.
[0034]
By the way, in the description so far, it was assumed that the cell size used for expressing the information is different, but both the first information and the second information are two-dimensional codes that express the information by the cell distribution pattern. Met. On the other hand, a positioning symbol for specifying the position of the two-dimensional code is provided at a predetermined position in the two-dimensional code that expresses information by the cell distribution pattern, and the code type corresponding to the positioning symbol is used When the first information expressed by the two-dimensional code and the second information expressed by the barcode are each read as a two-dimensional code arranged at a predetermined position in the two-dimensional code The following two-dimensional code reading method may be employed.
[0035]
That is, as shown in claim 9, first, an image of a two-dimensional code is obtained, and a two-dimensional code positioning process for detecting the position of the positioning symbol in the image is performed. Next, the position of at least one of the data cell for expressing the first information and the bar for expressing the second information in the two-dimensional code is detected based on the position of the positioning symbol. Performs cell positioning processing. Next, at least one of the decoding process of the code information of the first information based on the data cell where the position is detected or the reading of the code information of the second information based on the bar where the position is detected is performed.
[0036]
In this way, the first information consisting of “two-dimensional code” in which cells are arranged two-dimensionally and the second information consisting of “barcode” in which bars are arranged one-dimensionally are mixed. However, it is possible to freely read only the first information, only the second information, or both. Of course, firstly, the decryption algorithm differs between the information and the second information.
[0037]
In this case as well, when only the two-dimensional code of the same format is to be read, it is sufficient to prepare only a dedicated decoding algorithm for reading the two-dimensional code of the specific format. When the two-dimensional code to be expressed is a reading target, it is preferable that the format of the two-dimensional code to be read is directly acquired from the two-dimensional code at that time. Therefore, as shown in claim 10, the two-dimensional code is further arranged at a predetermined position with respect to the positioning symbol, and the format code that can specify the existence area and the used code type for each piece of information in the two-dimensional code. If it is equipped with, the following reading method should be adopted
That is, after the two-dimensional code positioning process is performed, a format code is detected based on the detected position of the positioning symbol, and a format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed. As the cell positioning process, at least one of a data cell for expressing the first information and a bar for expressing the second information based on the acquired two-dimensional code format. Detect position. In the decoding process, a decoding algorithm corresponding to the code type is specified based on the acquired two-dimensional code format, and code information is read using the specified decoding algorithm.
[0038]
Note that the function of executing such a two-dimensional code reading method is provided as a program activated on the digital circuit or computer system side, for example. When it is realized by a program, for example, flexible It can be stored in a machine-readable recording medium such as a disk, a magneto-optical disk, a CD-ROM, or a hard disk, and can be used by being loaded into a computer system and started up as necessary. In addition, the ROM or backup RAM may be stored as a machine-readable recording medium, and the program may be stored, and the ROM or backup RAM may be incorporated into a computer system.
[0039]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments to which the present invention is applied will be described below with reference to the drawings. Needless to say, the embodiments of the present invention are not limited to the following examples, and can take various forms as long as they belong to the technical scope of the present invention.
[0040]
The block diagram of FIG. 1 shows a schematic configuration of a two-dimensional code reader 2 to which the above-described invention is applied.
The two-dimensional code reader 2 includes a CCD 4, a binarization circuit 6, an image memory 8, a clock signal output circuit 14, an address generation circuit 16, a change point detection circuit 18, a ratio detection circuit 20, an address storage memory 22, and a control circuit 28. It is composed of
[0041]
The control circuit 28 is configured as a computer system including a CPU, a ROM, a RAM, an I / O, and the like, and executes a two-dimensional code reading process, which will be described later, according to a program stored in the ROM. 2 is controlled.
[0042]
Here, a schematic diagram of an example of a two-dimensional code detected by the two-dimensional code reader 2 is shown in FIG. The two-dimensional code 52 is printed on a white mount 53, and includes three positioning symbols 54A, 54B and 54C, a data area 56, one auxiliary symbol 60, timing cells 20a and 20b, and a format code. 70 or the like.
[0043]
In this embodiment, the data area 56 is divided into a first data area Aa and a second data area Ab, and the cell sizes of the data cells used in both the data areas Aa and Ab are different. Specifically, the cell size of the data cell used in the first data area Aa is a so-called “quadrature cell” that is twice as long as the cell size of the data cell used in the second data area Ab. Has been. In FIG. 2, each of the first data area Aa and the second data area Ab is divided into cell groups each composed of a total of 8 cells of 2 cells × 4 cells. This is because when one cell is considered to be 1 bit, one byte can be indicated by one cell group, and setting in such a unit is convenient for data processing after reading.
[0044]
Accordingly, in practice, one square cell in FIG. 2B showing one cell group of the first data area Aa indicates the cell size of the data cell used in the first data area Aa. Yes. Similarly, one square cell in FIG. 2C showing one cell group of the second data area Ab indicates the cell size of the data cell used in the second data area Ab. And what is expressed by the data cell of the first data area Aa is “first information”, and the second data area Ab. of What is expressed by a data cell is “second information”.
[0045]
The size of the entire two-dimensional code 52 is a square shape of 29 cells × 29 cells with reference to the data cells used in the first data area Aa. Of course, if the data cell used in the second data area Ab is used as a reference, it is expressed as 58 cells × 58 cells, but in this embodiment, it is used in the first data area Aa unless otherwise required. A description will be given with reference to a data cell.
[0046]
Each cell in the data area 56 is selected from two types of optically different cells, and are distinguished from each other by white (bright) and black (dark) in the drawings and description. In FIG. 2, the black and white pattern of the data cell in the data area 56 is omitted for convenience. Of course, in each of the first data area Aa and the second data area Ab, light and dark are distinguished by the unit of the data cell used in each data area Aa, Ab (see FIGS. 2B and 2C). ing.
[0047]
Three positioning symbols 54A, 54B, and 54C are arranged at three of the four vertices of the two-dimensional code 52, and the data cells have the same cell size as that used in the first data area Aa. Configured. From a technical point of view, it is appropriate to consider that data cells having the same cell size as the cells constituting the positioning symbols 54A, 54B, 54C are used in the first data area Aa. Therefore, in the second data area Ab, data cells having a cell size that is a quarter of the cells constituting the positioning symbols 54A, 54B, and 54C are used.
[0048]
As shown in FIG. 3 (A), the light and dark arrangement of the cells of the positioning symbols 54A, 54B, and 54C is composed of a white portion having a width of 1 cell at a central portion in a frame-shaped square 55a composed of a black portion having a width of 1 cell. This is a pattern in which a reduced frame-like square 55b is formed, and a square 55c having a size of 3 cells × 3 cells consisting of a black portion is formed in the central portion inside.
[0049]
As can be seen from FIG. 2, the first data area Aa is arranged between the positioning symbols 54A, 54B, 54C, while the second data area Ab is the other part (right in FIG. 2A). (Lower part).
Further, as shown in FIG. 2, the auxiliary symbol 60 is arranged in the second data area Ab, but is composed of data cells having the same cell size as that used in the first data area Aa. ing. As shown in FIG. 3 (C), the light and dark arrangement of the cells of the auxiliary symbol 60 is a reduced frame-shaped square made up of a white portion with a width of 1 cell at the center of the frame-like square 61a made up of a black portion with a width of 1 cell. 61b is formed, and a square 61c composed of a black portion of one cell is formed in the central portion inside thereof.
[0050]
On the other hand, the timing cells 20a and 20b are arranged between the positioning symbols 54A, 54B and 54C, and are composed of data cells having the same cell size as that used in the first data area Aa. The timing cells 20a and 20b are used as a reference pattern serving as an index of each data cell position in which white and black are alternately combined.
[0051]
The format code 70 is arranged in the vicinity of the positioning symbol 54A, and is composed of data cells having the same cell size as that used in the first data area Aa. The format code 70 has contents that can specify at least one of the existence area, the code type used, and the cell size for each of the first and second information.
[0052]
In this case, the format code 70 may directly indicate the existence area, the used code type, and the cell size for each of the first and second information, or may indicate indirectly. . That is, for example, the data type classification may be performed according to the difference in the existence area, the use code type, the cell size, and the like, and only the information (for example, numbers) indicating the classification may be included as the format code. In this case, for example, the correspondence between the classification information and the existing area, the used code type, the cell size, etc. is stored in a table, for example, in the RAM or the like in the control circuit 28 of the two-dimensional code reader 2. I can deal with it.
[0053]
The control circuit 28 performs reading control as described below.
First, in accordance with an instruction from the control circuit 28, a two-dimensional image of a place where the two-dimensional code 52 passes is detected by the CCD 4. When the CCD 4 detects a two-dimensional image, the CCD 4 outputs two-dimensional image data with a signal composed of multiple levels as shown in FIG. The two-dimensional image data is binarized by the binarization circuit 6 at the threshold value designated by the control circuit 28, and two levels of 1 (high) / 0 (low) as shown in FIG. Convert to a signal consisting of
[0054]
On the other hand, the clock signal output circuit 14 outputs a clock pulse sufficiently finer than the pulse of the two-dimensional image data output from the CCD 4 according to the synchronization pulse output from the CCD 4. The address generation circuit 16 counts the clock pulses and generates an address for the image memory 8. The binarized two-dimensional image data is written in units of 8 bits for each address.
[0055]
On the other hand, the change point detection circuit 18 outputs a pulse signal to the ratio detection circuit 20 when the signal from the binarization circuit 6 changes from “1” to “0” or from “0” to “1”. To do. The ratio detection circuit 20 counts the clock pulses output from the clock signal output circuit 14 from the input of the pulse signal from the change point detection circuit 18 to the input of the next pulse signal, thereby bright (1) in the two-dimensional image. ) And the continuous length of dark (0). A pattern corresponding to the positioning symbols 54A, 54B, 54C of the two-dimensional code 52 is detected from this length ratio.
[0056]
As shown in FIG. 3A, the light and dark patterns on the scanning lines (a), (b), and (c) of the CCD 4 crossing substantially the centers of the positioning symbols 54A, 54B, and 54C at typical angles are shown in FIG. As shown in FIG. 3B, all have the same light / dark component ratio. That is, the light / dark component ratio of each scanning line (a), (b), (c) crossing the center of the positioning symbols 54A, 54B, 54C is dark: bright: dark: light: dark = 1: 1: 3: 1: 1. Of course, the ratio is 1: 1: 3: 1: 1 even in the scanning line having an intermediate angle between the scanning lines (a), (b), and (c). 3A is arranged on an oblique surface when viewed from the CCD 4 side, the light / dark component ratio of the scanning lines (a), (b), and (c) is dark: bright: Dark: light: dark = 1: 1: 3: 1: 1. FIG. 3B corresponds to the binarized signal from the binarization circuit 6.
As a result, the ratio detection circuit 20 detects the light / dark component ratio of “1: 1: 3: 1: 1”, and if detected, the image memory generated by the address generation circuit 16 at that timing. 8 addresses are stored in the address storage memory 22.
[0057]
Therefore, when the CCD 4 detects two-dimensional image data for one frame, the image memory 8 stores the binarized two-dimensional image data, and the address storage memory 22 stores the detected positioning symbols. The addresses 54A, 54B and 54C are stored.
[0058]
When an image for one frame of the first two-dimensional image is obtained, the control circuit 28 performs a two-dimensional code reading process, which will be described later, based on the data in the image memory 8 and the address storage memory 22, and this process is completed. Then, the control circuit 28 instructs the CCD 4 to detect the next one-frame two-dimensional image. Therefore, the two-dimensional image is output from the CCD 4 to the binarization circuit 6 again, and the processing as described above is repeated.
[0059]
Next, the image of the two-dimensional code 52 for one frame and the addresses of the positioning symbols 54A, 54B, 54C are stored in the image memory 8 and the address storage memory 22, respectively. Execute code reading process. This two-dimensional code reading process is shown in the flowcharts of FIGS.
[0060]
When the processing is started, first, detection processing of the positioning symbols 54A, 54B, 54C is performed (S100).
In this process, the image memory 8 and the address storage memory 22 are accessed, and from the stored contents, it is determined whether or not three positioning symbols 54A, 54B, 54C are present at appropriate positions, and the positioning symbols. An accurate shape and center position on the images of 54A, 54B, and 54C are determined.
[0061]
In this processing, first, whether the addresses of the positioning symbols 54A, 54B, 54C detected in the address memory 22 are divided into three groups in position is referred to the address value and the image in the image memory 8. While judging. Further, the shape and center position of each positioning symbol 54A, 54B, 54C are determined from the 1 (white) / 0 (black) pattern of the image in the image memory 8, and three of them are 3 as shown in FIG. It is determined whether or not the arrangement state exists at one vertex.
[0062]
Next, in step S100, it is determined whether or not three appropriate positioning symbols 54A, 54B, 54C have been detected (S120). If not detected (“NO” in S110), the next image is detected. Is instructed to the CCD 4 (S280 in FIG. 6), and the process ends.
[0063]
When appropriate three positioning symbols 54A, 54B, and 54C are detected (“YES” in S110), it is next determined whether or not the new two-dimensional code 52 is used (S120). This process is to prevent the two-dimensional code 52 detected before the previous time from being decoded as another two-dimensional code when it is still being detected by the CCD 4. For example, if the appropriate three positioning symbols 54A, 54B, 54C have been detected in the previous processing or the previous processing a predetermined number of times, and the code contents have already been properly read, the same two-dimensional code 52 is detected (“NO” in S120), the CCD 4 is instructed to detect the next image (S280), and the process ends.
[0064]
If it is determined that the code is the new two-dimensional code 52 (“YES” in S120), the shape of each cell constituting each of the positioning symbols 54A, 54B, 54C is then determined according to the shape of the positioning symbols 54A, 54B, 54C. The center position is calculated (S130).
[0065]
That is, for the positioning symbols 54A, 54B, and 54C, as shown in FIGS. 2 and 3A, the width of the black frame-shaped square 55a is one cell, and the width of the white frame-shaped square 55b is one cell. Since the width of one cell and the black square 55c is three cells, the height and width of the positioning symbols 54A, 54B and 54C in the image memory 8 are determined from the height and width. By dividing by 7 respectively, three cell height and width values at the positions of the positioning symbols 54A, 54B, 54C, that is, three cell shapes are obtained.
[0066]
Next, based on the cell heights and widths of the positioning symbols 54A, 54B, and 54C determined in this way, the cell positions of the positioning symbols 54A, 54B, and 54C are determined.
Next, the format code 70 is detected based on the positioning symbol 54A (S140). This format code 70 corresponds to one cell with respect to the side facing the positioning symbol 54B out of the four sides constituting the outermost frame square 55a (see FIG. 3A) of the positioning symbol 54A. They are spaced apart in parallel. Therefore, based on this relationship, the position of the format code 70 can be known and the code can be detected.
[0067]
Next, it is determined whether or not the first information is to be decoded (S150), and if it is to be decoded (“YES” in S150), the code of the first information is decoded (S160).
Details of the decoding process of the first information code in S160 will be described with reference to the flowchart of FIG.
[0068]
When this processing routine starts, first, based on the format code 70 detected in S140 of FIG. 5, the location of the first data area Aa in the two-dimensional code 52 and the cell size of the data cell contained therein Is specified (S161). The format code 70 in this case is information indicating the classification when the data type is classified according to the difference in the location (existing area) of each data area and the cell size of the data cell included in the data area. (For example, a number) is encoded. That is, in this case, the correspondence relationship between the classification information and the existing area / cell size is stored in a table in, for example, the RAM in the control circuit 28 of the two-dimensional code reader 2. Therefore, in S161, the existence area and the cell size are specified with reference to the correspondence table.
[0069]
Next, based on the existence area and cell size specified in S161 and the shapes and center positions of the positioning symbols 54A, 54B, and 54C detected in S130 of FIG. The center position of the cell is determined (S162).
Then, binary values are read from the pixel at the center position of each data cell, the type of each cell is determined, and the code contents are obtained (S163). That is, a decoding process is performed. At the time of decoding in S163, processing based on the format information obtained from the format code 70 is executed as necessary. For example, in the first data area Aa, the arrangement pattern of the cell groups indicated by being divided into 2 cells × 4 cells is not necessarily aligned. For example, the cell group between the positioning symbols 54A and 54B is vertically long. Are horizontally long, and the cell group between the positioning symbols 54A and 54C is only vertically long. Therefore, format information for specifying such a cell group arrangement pattern or the like is obtained from the format code 70 and decoded based on the format information.
[0070]
In this way, the information represented by the code of the first information is obtained, this processing routine is terminated, the process returns to the main routine, and the process proceeds to S170 in FIG.
In S170, it is determined whether or not the code content is normal. For example, whether or not the number of white and black cells is a predetermined number, or the result of calculating the data represented by a predetermined calculation method is within a predetermined range in the two-dimensional code 52 Whether or not the code is normally read is determined based on whether or not it matches the displayed check data.
[0071]
If it is a normal code (“YES” in S170), it is determined whether or not the first information is output (S180). If it is output (“YES” in S180), the code contents are stored in the host computer. Processing to output to other devices such as, store the code content in a specific memory, execute processing corresponding to the code content, or output an instruction corresponding to the code content (hereinafter referred to as the code content) The process is called “code content output process” (S260). Thereafter, the CCD 4 is instructed to detect the next image (S280), and the process ends.
[0072]
On the other hand, as a result of decoding the first information, if the code is not normal (“NO” in S170), the process proceeds to S190. Note that if the determination in S150 is negative, that is, if it is determined not to decode the first information, the process also proceeds to S190. In S190, it is determined whether or not the second information is to be decoded. If the second information is not decoded (“NO” in S190), the CCD 4 is instructed to detect the next image (S280), and the process is performed. finish.
[0073]
On the other hand, when the second information is decoded (“YES” in S190), the process proceeds to S200, and the code of the second information is decoded. Note that if it is determined negative in S180, that is, if it is determined not to output the first information, the process proceeds to S200, and the code of the second information is decoded.
[0074]
Details of the decoding process of the second information code in S200 will be described with reference to the flowchart of FIG.
When this processing routine starts, first, based on the format code 70 detected in S140 of FIG. 5, the location of the second data area Ab in the two-dimensional code 52 and the cell size of the data cell contained therein Is identified (S201). Since this content is the same as that of S161 in FIG. 7 described above, it will not be repeated.
[0075]
Next, as described above (S130 of FIG. 5), the positioning symbols 54A, 54B, and 54B are obtained as described above (S130 in FIG. 5) by using the center positions of the auxiliary symbols 60 arranged at predetermined positions with respect to the positioning symbols 54A, 54B, and 54C. It is obtained by calculation based on the shape and center position of the cells constituting 54C, and further, the shape and position are accurately determined by examining the image around the calculation position (S202).
[0076]
As shown in FIG. 3D, the light / dark component ratio of each straight line (a), (b), (c) crossing the center of the auxiliary symbol 60 is dark: bright: dark: bright: dark = 1: 1. The property of 1: 1: 1: 1 is essentially the same as the positioning symbols 54A, 54B, and 54C shown in FIGS.
[0077]
Then, the shape and center position of each cell constituting the auxiliary symbol 60 are determined for the auxiliary symbol 60 for which the accurate shape and the accurate center position are determined in this way (S203).
Next, based on the existence area and cell size specified in S201, the shapes and center positions of the positioning symbols 54A, 54B, and 54C detected in S130 of FIG. The center position of each data cell in the data area Ab is determined (S204).
[0078]
Then, binary values are read from the pixel at the center position of each data cell, the type of each cell is determined, and the code contents are obtained (S205). In this way, information represented by the code of the second information is obtained, this processing routine is terminated, the process returns to the main routine, and the process proceeds to S210 in FIG.
[0079]
In S210, it is determined whether or not the code content is normal. This is the same as the determination in S170 described above.
If it is a normal code (“YES” in S210), it is determined whether there is decoded first information data (S220), and if there is first information data (“YES” in S220). Further, it is determined whether only the second information is decoded and output (S230). If only the second information is not decoded and output (“NO” in S230), processing such as code content output is performed on the decoded first and second information (S240). On the other hand, when a negative determination is made in S220, that is, when the first information is not decoded, or when a negative determination is made in S230, that is, when only the second information is output, the process proceeds to S270 and the decoded second information Only the code content output process is performed.
[0080]
If the negative determination is made in S210, that is, if the decoded code content of the second information is not normal, it is determined whether there is data of the first information (S250). If there is data of the first information (“YES” in S250), processing such as code content output is performed only for the decoded first information (S260), while there is no data of the first information (S260). If “NO” in S250), the process proceeds to S280 without performing the code content output process or the like.
[0081]
Thus, in the two-dimensional code reader 2 of the present embodiment, the “first information” and the second data area Ab included in the first data area Aa constituting the data area 56 of the two-dimensional code 52. One of the “second information” included therein can be distinguished and read, or both can be read. Therefore, for example, when an article with a label printed with the two-dimensional code 52 is read at a high speed, a cell having the same cell size as the cells constituting the positioning symbols 54A, 54B, and 54C is used. When only the first information in the expressed first data area Aa is read and the article is read in a state where the article is moving at low speed or stopped, the second data expressed using a cell having a quarter cell size. It is also possible to read only the second information in the area Ab.
[0082]
By realizing such a two-dimensional code reading device 2, the two-dimensional code 52 to be read can be formed with an appropriate cell size according to the application, and the codes corresponding to the plurality of applications can be formed. Can be mixed. Therefore, as in the prior art, a label printed with a two-dimensional code having a relatively large cell size for reading during high-speed movement, and a label printed with a two-dimensional code having a relatively small cell size for a hand-held reader Thus, it is not necessary to prepare two types of labels and attach them to the articles, and only one label is sufficient. And even if the data to be read at the time of high-speed movement and the data to be read by a hand-held reader are mixed in the same code, it is possible to prevent the two-dimensional code from becoming larger than necessary as in the prior art. . This is because the cell size when reading data for high-speed movement should be the minimum size that can be read during high-speed movement, while the cell size for reading data with a hand-held reading device. This is because the size can be set to a minimum size that can be read in a stopped state. That is, it is not necessary to match the larger cell size, and the code can be formed with a cell size as small as possible according to the application, so that the two-dimensional code 52 itself can be made as small as possible.
[0083]
The auxiliary symbol 60 is also used for decoding the code in the second data area Ab. As a result, even if the image of the two-dimensional code 52 is distorted, the data cell is positioned more accurately than when only the positioning symbols 54A, 54B, and 54C are used. Therefore, the information represented by the data cell can be read accurately. Further, the auxiliary symbol 60 is not used as a reference for positioning the two-dimensional code 52 first, like the positioning symbols 54A, 54B, and 54C. It can be done quickly without increasing.
[0084]
As the two-dimensional code 52 to be read, as shown in FIG. 2A, the two-dimensional code 52 having a size of 29 cells × 29 cells when the data cell used for the first data area Aa is used as a reference. As described above, the two-dimensional code 52 having a different overall cell size can be realized as a target. For example, the two-dimensional code shown in FIG. 9A is 21 cells × 21 cells (42 cells × 42 cells when the data cell used for the second data area Ab is used as a reference). The two-dimensional code shown is 25 cells × 25 cells (50 cells × 50 cells when the data cell used for the second data area Ab is used as a reference). In either case, the first data area Aa is arranged between the positioning symbols 54A, 54B, 54C, and the second data area Ab is arranged in the other part (lower right part in FIG. 9). Is the same. Therefore, the total number of data cells in the first data area Aa for expressing “first information” and the total number of data cells in the second data area Ab for expressing “second information” are shown in FIG. In the case shown in a), the case shown in FIG. 9B decreases in the order shown in FIG. 9A.
[0085]
In the case shown in FIG. 9B, the auxiliary symbol 60 is added, but in the case shown in FIG. 9A, the auxiliary symbol 60 is not added. With this size, reading error due to the influence of distortion is small, so that reading can be performed accurately even without adding the auxiliary symbol 60. Of course, the auxiliary symbol 60 may not be provided in the case shown in FIG. 9B or the case shown in FIG. Although FIG. 9 shows a case where the overall size is smaller than the case shown in FIG. 2A, a large size can also be realized. When the overall sizes are different as described above, the arrangement of the cell groups shown by being divided into 2 cells × 4 cells in the first data area Aa is also slightly different. Therefore, in order to distinguish between these differences, version information 80 indicating which version is present is arranged adjacent to the data cell in the first data area Aa between the positioning symbols 54A and 54B. Therefore, in the decoding process of the first information code executed in S160 of FIG. 6, the version information 80 is first decoded, and the decoding is performed after knowing the arrangement pattern of the cell group in the first data area Aa. Can be done.
[0086]
In this embodiment, the CCD 4, the binarization circuit 6, the clock signal output circuit 14, the processing performed by the address generation circuit 16, the change point detection circuit 18 and the ratio detection circuit 20 at the timing, and steps S100 and S121 performed by the control circuit 28, Corresponds to the two-dimensional code positioning process, and step S140 corresponds to the format acquisition process. Step S202 corresponds to the auxiliary symbol positioning process. In the case of FIG. 7, step S162 corresponds to the cell positioning process. In the case of FIG. 8, steps S203 and S204 correspond to the cell positioning process. In the case of FIG. 7, step S163 corresponds to the decoding process, and in the case of FIG. 8, step S205 corresponds to the decoding process.
[0087]
[Another embodiment]
In the two-dimensional code 52 to be read in the above embodiment, as shown in FIG. 2, the first data area Aa is arranged between the positioning symbols 54A, 54B, 54C, while the second data area Ab is It was arranged in the part other than. That is, the data area 56 is divided and each area is set as a two-dimensionally continuous area. On the other hand, for example, as shown in FIG. 10, the two-dimensional code 152 in which the first data area Aa is arranged in a scattered manner throughout the data area 156 and the other areas are set as the second data area Ab. Can be read. For example, in the decoding process of the first information code shown in S160 of FIG. 5, a binary value (0 or 1) at the center position of the data cell corresponding to the first data area Aa arranged in a scattered manner. Therefore, the same data processing is possible even with such a scattered arrangement.
[0088]
Further, even in the case where the areas are divided and set as in the case of FIG. 2, the first data area Aa is not necessarily arranged between the positioning symbols 54A, 54B, and 54C. For example, the first data area Aa may be set only between the positioning symbol 54A and the positioning symbol 54B, or the second data area Ab may be disposed between the positioning symbols 54A, 54B, and 54C. Good.
[0089]
In the description so far, the “second information” is expressed using data cells having a cell size that is a quarter of the cell size of the positioning symbols 54A, 54B, and 54C. That is, it is assumed that the sizes of the data cells for indicating the “second information” are all equal, but this “second information” is a collection of a plurality of types of information and cells having different cell sizes. It may be expressed using. For example, as shown in FIG. 11, four types of information may be configured in the “second information”, and a two-dimensional code 252 that has a total of five types of cell sizes may be read.
[0090]
In the example of FIG. 11, positioning symbols 254A, 254B, 254C, and 254D are arranged at four vertices of the two-dimensional code 252, and the first data area Aa between the positioning symbols 254A and 254B is the same as the above example. Data cells having the same cell size as positioning symbols 254A, 254B, 254C, and 254D, that is, (1/1) are arranged. Further, in the second data area Ab between the positioning symbols 254A and 254C, data cells having a cell size (1/2) of the positioning symbols 254A, 254B, 254C, and 254D are arranged, and the positioning symbols 254C, 254C, In the third data area Ac between 254D, data cells having a cell size (1/3) of the positioning symbols 254A, 254B, 254C, and 254D are arranged. In the fourth data area Ad between the positioning symbols 254B and 254D, data cells having a cell size (1/4) of the positioning symbols 254A, 254B, 254C, and 254D are arranged, and the other fifth data areas Ad are arranged. In the data area Ae (a predetermined area at the center of the two-dimensional code 252), data cells having a cell size (1/5) of the positioning symbols 254A, 254B, 254C, and 254D are arranged.
[0091]
In the case of FIG. 11, 1 / n (where n is 1 / n, such as 1/2, 1/3, 1/4,..., With reference to cell sizes corresponding to the positioning symbols 254A, 254B, 254C, 254D. Natural number) is set, but of course, a ratio such as n / m (m and n are natural numbers, where m> n) may be used. However, n is a natural number (1/2 n ) Is preferable for processing the read data in the computer system. Note that it may be a fractional multiple instead of a fractional multiple.
[0092]
Even when such a two-dimensional code 252 is read, the basic processing contents are the same as those shown in FIGS. In the case of FIGS. 5 to 8, the two-dimensional code 52 having only two types of data areas is premised. However, since there are five types of the two-dimensional code 252 shown in FIG. 11, it is determined whether or not to decode each of them. When decoding, the cell position corresponding to the data area is similarly taken into consideration, the center position of each data cell in the data area is determined, and the binary value is read from the pixel at the center position to read the cell. The code content can be obtained by determining the type of.
[0093]
As described above, various area settings and data arrangements can be considered. If information that can identify these is set in the above-described format code 70 (see FIG. 2), the format code 70 is read in S140 of FIG. By executing the decoding process based on the format code 70, various variations can be dealt with. However, this format code 70 is not necessarily required in certain limited situations. That is, it is not necessary when only two-dimensional codes having the same format are used. This is because it is sufficient to prepare a dedicated program for reading the two-dimensional code of the specific format. However, when reading a two-dimensional code expressed in a plurality of formats, it is preferable that the format itself of the two-dimensional code to be read can be directly acquired from the two-dimensional code at that time. Therefore, it is preferable to include a format code 70 in the two-dimensional code 52 as shown in FIG.
[0094]
The version information 80 described above may be considered as a part of the format code 70 in a certain sense. That is, the cell group arrangement pattern of the data cells in the first data area Aa is different in the above-described example due to the difference in size between the first data area Aa and the second data area Ab. Therefore, although it is version information used to distinguish only this point, it is information related to the format in a large sense.
[0095]
By the way, in the above description, the case where the two-dimensional code is read on the premise that the first information and the second information are of the same code type has been described. That is, in the case of FIG. 2, the code type is a two-dimensional code of a so-called “QR code”. However, you must use the same code type. For example, as shown in FIG. 12, in the first data area Aa, “first information” is expressed by a QR code, and in the second data area Ab, for example, even if the same matrix type two-dimensional code is used, “ CP code, Carla code or Veri code (These are registered trademarks) The “second information” may be expressed by a code using a code type different from the QR code. In addition, as shown in FIG. 11, if there are five areas Aa to Ae, it is possible to arrange five different code types.
[0096]
In this case, for example, by referring to the format code 70, it is possible to know which code type contains code information in which data area. On the other hand, the two-dimensional code reader 2 is provided with a program for decoding processing by a decoding algorithm corresponding to the code type included in the two-dimensional code to be read. And when decoding the code | cord | chord of each data area, a decoding process should just be performed using a corresponding decoding algorithm.
[0097]
By the way, in the explanation so far, on the premise that the cell size used for the expression is different, both the first information and the second information are two-dimensional codes that express information by a cell distribution pattern. . On the other hand, for example, as shown in FIG. 13, in the first data area Aa, “first information” is expressed by a QR code, and in the second data area Ab, for example, “first information” is expressed by a barcode. 2 information "may be expressed. In FIG. 13, a bar code is arranged in the second data area Ab between the positioning symbols 54A and 54B. In this case, for example, the bar code can be decoded by making a light / dark judgment at a portion included in the second data area Ab within a straight line connecting the centers of the positioning symbols 54A to 54B. Of course, other methods may be used.
[0098]
In this case, for example, it is conceivable that the second information indicated by the barcode is used for store (storefront) management, and the first information indicated by the QR code is used for backyard management. In addition, when the code systems used in the first information and the second information are different, information that can be distinguished in the format code 70 described above may be inserted.
[0099]
[Others]
In the two-dimensional codes 52, 152, 252, 352, and 452 described as the reading target in each of the embodiments, for example, as shown in FIG. 2, the positioning symbols 54A to 54C are double squares, and the frequencies crossing the center. The component ratio is represented by a graphic of black: white: black: white: black = 1: 1: 3: 1: 1, and the auxiliary symbol 60 is represented by a similar graphic smaller in size than the positioning symbols 54A to 54C. As shown in FIG. 14A, it may be circular, as shown in FIG. 14B, hexagonal, or other regular polygon. That is, it is only necessary that the similar figures are concentrically overlapped, and the contents of the positioning symbol detection process performed in S100 of FIG. 5 are not changed. Furthermore, as long as the frequency component ratio across the center is the same at all angles, as shown in FIG. In this case, the processing for detecting the corresponding frequency component ratio is only the positioning symbol detection processing performed in S100 of FIG.
[0100]
Further, in each of the above embodiments, for example, as shown in FIG. 2, the outer shape of the two-dimensional code 52 to be read is shown as a square, but may be a rectangle. For example, as shown in FIG. 1, the positioning symbols 54 </ b> A to 54 </ b> C are arranged at three of the four vertices of the two-dimensional code 52, but the arrangement within the two-dimensional code 52 is arbitrary. . One two-dimensional code 52 may be provided with four or more positioning symbols.
[0101]
There may be two positioning symbols. In this case, if the positioning symbols are arranged at the two vertices on the diagonal, the arrangement of the two-dimensional code 52 is determined. Even when positioning symbols are arranged at two vertices other than the diagonal or other than the vertices, the arrangement of the data area 56 can be detected by detecting the pattern of the auxiliary symbol 60. If the detection of the pattern of the auxiliary symbol 60 is used in this way, the number of positioning symbols may be one. For example, one positioning symbol exists at the center of the two-dimensional code 52, and auxiliary symbols are arranged around it. The position of the data cell can be obtained even if the positioning symbol is arranged at any position in the two-dimensional code 52.
[0102]
In the above embodiment, the positioning symbols 54A to 54C are detected by the ratio detection circuit 20 in hardware and the auxiliary symbol 60 is detected in software. However, the auxiliary symbol 60 is also provided with a ratio detection circuit. It may be detected by hardware, and the processing becomes quicker. Of course, both the positioning symbols 54 </ b> A to 54 </ b> C and the auxiliary symbol 60 can be detected by software.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a schematic configuration of a two-dimensional code reader according to an embodiment.
FIG. 2 is a schematic configuration explanatory diagram of a two-dimensional code in the embodiment.
FIG. 3 is an explanatory diagram of light and dark detection when a positioning symbol and auxiliary symbols are scanned in an embodiment.
FIG. 4 is an explanatory diagram of output signals from a CCD and a binarization circuit in the embodiment.
FIG. 5 is a flowchart illustrating the first half of a two-dimensional code reading process in the embodiment.
FIG. 6 is a flowchart showing the second half of the two-dimensional code reading process in the embodiment.
FIG. 7 is a flowchart showing a first information code decoding process routine executed in the two-dimensional code reading process in the embodiment;
FIG. 8 is a flowchart illustrating a second information code decoding processing routine executed in the two-dimensional code reading processing in the embodiment;
FIG. 9 is an explanatory diagram of a schematic configuration of another version of a two-dimensional code in an embodiment.
FIG. 10 is an explanatory diagram of a schematic configuration of a two-dimensional code in another embodiment.
FIG. 11 is an explanatory diagram of a schematic configuration of a two-dimensional code in another embodiment.
FIG. 12 is a schematic configuration explanatory diagram of a two-dimensional code in another embodiment.
FIG. 13 is an explanatory diagram of a schematic configuration of a two-dimensional code in another embodiment.
FIG. 14 is an explanatory diagram illustrating an example of another shape of a positioning symbol.
FIG. 15 is an explanatory diagram of a conventional barcode and a two-dimensional code.
FIG. 16 is a schematic configuration explanatory diagram of a conventional two-dimensional code.
[Explanation of symbols]
2 ... Two-dimensional code reader 4 ... CCD
6 ... binarization circuit 8 ... image memory
14 ... Clock signal output circuit 16 ... Address generation circuit
18 ... change point detection circuit 20 ... ratio detection circuit
20a, 20b, 120a, 120b, 220a, 220b, 320a, 320b, 420a, 420b, 520a, 520b ... timing cells
22 ... Address storage memory 28 ... Control circuit
52,152,252,352,452,500 ... two-dimensional code
54A, 54B, 54C, 154A, 154B, 154C, 254A, 254B, 254C, 254D, 354A, 354B, 354C, 454A, 454B, 454C, 510a, 510b, 510c ... positioning symbols
56, 156, 256, 356, 456, 530 ... data area
60 ... auxiliary symbol
70 ... Format code 80 ... Version information

Claims (11)

セルの分布パターンにより情報を表現する2次元コード内の所定位置に配置され、2次元コードの位置を特定する位置決め用シンボルと、各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、その位置決め用シンボルを構成するセルと同じセルサイズのセルを用いて表現された第1の情報と、その位置決め用シンボルを構成するセルより小さなセルサイズのセルを用いて表現された第2の情報とが、それぞれ2次元コード内の所定位置に配置されている2次元コードの読取方法であって、
前記2次元コードの画像を得るとともに、前記画像中での前記位置決め用シンボルの位置を検出する2次元コード位置決め処理を行い、
次に、前記2次元コード内の前記第1の情報あるいは第2の情報の少なくともいずれか一方の前記データセルの位置を、前記位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出するセル位置決め処理を行い、
次に、前記位置が検出されたデータセルに基づいて、前記第1の情報あるいは第2の情報の内の少なくともいずれか一方のコード情報を読み取るデコード処理を行うことを特徴とする2次元コードの読取方法。
A positioning symbol for specifying the position of the two-dimensional code, which is arranged at a predetermined position in the two-dimensional code expressing information by a cell distribution pattern , and a timing cell which is a reference pattern serving as an index of each data cell position , A first information expressed using a cell having the same cell size as a cell constituting the positioning symbol, and a second information expressed using a cell having a smaller cell size than the cell constituting the positioning symbol. Are two-dimensional code reading methods arranged at predetermined positions in the two-dimensional code, respectively.
Obtaining an image of the two-dimensional code and performing a two-dimensional code positioning process for detecting a position of the positioning symbol in the image;
Next, a cell that detects the position of the data cell of at least one of the first information and the second information in the two-dimensional code based on the position of the positioning symbol and the cell size of each information Perform positioning processing,
Next, based on the data cell in which the position is detected, a decoding process for reading at least one of the first information and the second information is performed. Reading method.
請求項1記載の2次元コードの読取方法において、
前記デコード処理は、前記第1の情報あるいは第2の情報のいずれか一方のみのコード情報を選択して読み取ること、
を特徴とする2次元コードの読取方法。
The method for reading a two-dimensional code according to claim 1,
The decoding process selects and reads code information of only one of the first information and the second information,
A method for reading a two-dimensional code characterized by the above.
請求項1記載の2次元コードの読取方法において、
前記第2の情報は、さらに複数種類の情報が、それぞれ異なるセルサイズのセルを用いて表現されており、
前記セル位置決め処理は、前記2次元コード内の前記第1の情報あるいは第2の情報を構成する複数のセルサイズの各情報の少なくともいずれか一つの前記データセルの位置を、前記位置決め用シンボルの位置及び各情報のセルサイズに基づいて検出し、
前記デコード処理は、前記位置が検出されたデータセルに基づいて、前記第1の情報及び第2の情報を構成する複数のセルサイズの各情報の内の少なくともいずれか一つのコード情報を読み取ること、
を特徴とする2次元コードの読取方法。
The method for reading a two-dimensional code according to claim 1,
In the second information, a plurality of types of information are expressed using cells having different cell sizes,
In the cell positioning process, the position of at least one of the data cells of the plurality of cell sizes constituting the first information or the second information in the two-dimensional code is set in the positioning symbol. Detect based on location and cell size of each information,
The decoding process reads at least one code information of each information of a plurality of cell sizes constituting the first information and the second information based on the data cell in which the position is detected. ,
A method for reading a two-dimensional code characterized by the above.
請求項1〜3のいずれか記載の2次元コードの読取方法において、
読取対象の2次元コード中の前記第1の情報は、前記位置決め用シンボルに対応するコード種類を用いたコードにて表現され、前記第2の情報は、前記第1の情報と異なるコード種類を用いたコードにて表現されたものであり、
前記デコード処理は、デコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。
In the reading method of the two-dimensional code in any one of Claims 1-3,
The first information in the two-dimensional code to be read is expressed by a code using a code type corresponding to the positioning symbol, and the second information has a code type different from the first information. It is expressed in the code used,
The decoding process reads the code information using a decoding algorithm corresponding to the code type used for the information to be decoded,
A method for reading a two-dimensional code characterized by the above.
請求項4記載の2次元コードの読取方法において、
読取対象の2次元コード中の前記第2の情報は、異なるセルサイズのセルを用いた複数種類の情報で構成され、当該第2の情報を構成する各情報は、前記第1の情報と異なるコード種類を用いたコードと異なるコード種類を用いたコードにて表現されていると共に、当該各情報同士においてもさらに、それぞれ異なるコード種類を用いたコードにて表現されたものであり、
前記デコード処理は、デコード対象の情報に用いられているコード種類に対応する解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。
The method for reading a two-dimensional code according to claim 4,
The second information in the two-dimensional code to be read is composed of a plurality of types of information using cells having different cell sizes, and each piece of information constituting the second information is different from the first information. It is expressed by a code using a code type different from the code using a code type, and is expressed by a code using a code type different from each other,
The decoding process reads the code information using a decoding algorithm corresponding to the code type used for the information to be decoded,
A method for reading a two-dimensional code characterized by the above.
請求項1〜5いずれか記載の2次元コードの読取方法において、
前記2次元コードは、更に、前記位置決め用シンボルに対する所定位置に配置されて、2次元コード中の前記各情報の各々についての存在領域及びセルサイズを特定可能なフォーマットコードを備えており、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置に基づいて前記フォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、
前記セル位置決め処理は、取得された前記2次元コードのフォーマットに基づいて、前記データセルの位置を検出すること、
を特徴とする2次元コードの読取方法。
In the reading method of the two-dimensional code in any one of Claims 1-5,
The two-dimensional code is further provided with a format code that is arranged at a predetermined position with respect to the positioning symbol and that can specify an existing area and a cell size for each of the information in the two-dimensional code,
After performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed.
The cell positioning process detects the position of the data cell based on the acquired format of the two-dimensional code;
A method for reading a two-dimensional code characterized by the above.
請求項4又は5記載の2次元コードの読取方法において、
前記2次元コードは、更に、前記位置決め用シンボルに対する所定位置に配置されて、2次元コード中の前記各情報の各々についての存在領域、セルサイズ及び使用コード種類を特定可能なフォーマットコードを備えており、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置に基づいて前記フォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、
前記セル位置決め処理は、取得された前記2次元コードのフォーマットに基づいて、前記データセルの位置を検出し、
前記デコード処理は、取得された前記2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。
The two-dimensional code reading method according to claim 4 or 5,
The two-dimensional code is further provided with a format code that is arranged at a predetermined position with respect to the positioning symbol and that can specify an existing area, a cell size, and a use code type for each of the pieces of information in the two-dimensional code. And
After performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed.
The cell positioning process detects the position of the data cell based on the acquired two-dimensional code format,
The decoding process specifies a decoding algorithm corresponding to a code type based on the acquired two-dimensional code format, and reads code information using the specified decoding algorithm;
A method for reading a two-dimensional code characterized by the above.
請求項1〜7のいずれか記載の2次元コードの読取方法において、
前記2次元コードが、2次元コード内にて前記位置決め用シンボルとは異なる位置に配置され、前記位置決め用シンボルの位置と自身のパターンとに基づいて位置検出される補助シンボルを備えているものであり、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置と前記補助シンボルのパターンとに基づいて、前記画像中での前記補助シンボルの位置を検出する補助シンボル位置決め処理を行い、
前記セル位置決め処理は、前記補助シンボルにも基づいて前記データセルの位置を検出すること、
を特徴とする2次元コードの読取方法。
In the reading method of the two-dimensional code in any one of Claims 1-7,
The two-dimensional code includes an auxiliary symbol that is arranged at a position different from the positioning symbol in the two-dimensional code and is detected based on the position of the positioning symbol and its own pattern. Yes,
After performing the two-dimensional code positioning process, an auxiliary symbol positioning process for detecting the position of the auxiliary symbol in the image is performed based on the detected position of the positioning symbol and the pattern of the auxiliary symbol. ,
The cell positioning process detects the position of the data cell based on the auxiliary symbol;
A method for reading a two-dimensional code characterized by the above.
セルの分布パターンにより情報を表現する2次元コード内の所定位置に配置され、2次元コードの位置を特定する位置決め用シンボルと、各データセル位置の指標となる基準パターンであるタイミングセルと、を備え、その位置決め用シンボルに対応するコード種類を用いた2次元コードの読取方法にて表現された第1の情報と、バーコードにて表現された第2の情報とが、それぞれ2次元コード内の所定位置に配置されている2次元コードの読取方法であって、
前記2次元コードの画像を得るとともに、前記画像中での前記位置決め用シンボルの位置を検出する2次元コード位置決め処理を行い、
次に、前記2次元コード内の前記第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を、前記位置決め用シンボルの位置に基づいて検出するセル等位置決め処理を行い、
次に、前記位置が検出されたデータセルに基づく前記第1の情報のコード情報の読取あるいは前記位置が検出されたバーに基づく第2の情報のコード情報の読取の少なくともいずれか一方のデコード処理を行うことを特徴とする2次元コードの読取方法。
A positioning symbol for specifying the position of the two-dimensional code, which is arranged at a predetermined position in the two-dimensional code expressing information by a cell distribution pattern , and a timing cell which is a reference pattern serving as an index of each data cell position , And the first information expressed by the two-dimensional code reading method using the code type corresponding to the positioning symbol and the second information expressed by the bar code are respectively in the two-dimensional code. A method for reading a two-dimensional code arranged at a predetermined position of
Obtaining an image of the two-dimensional code and performing a two-dimensional code positioning process for detecting a position of the positioning symbol in the image;
Next, the position of at least one of the data cell for expressing the first information or the bar for expressing the second information in the two-dimensional code is based on the position of the positioning symbol. Perform positioning processing for the cells to be detected,
Next, decoding processing of at least one of reading of the code information of the first information based on the data cell where the position is detected or reading of the code information of the second information based on the bar where the position is detected A method for reading a two-dimensional code, comprising:
請求項9記載の2次元コードの読取方法において、
前記2次元コードは、更に、前記位置決め用シンボルに対する所定位置に配置されて、2次元コード中の前記各情報の各々についての存在領域及び使用コード種類を特定可能なフォーマットコードを備えており、
前記2次元コード位置決め処理を行った後、検出された前記位置決め用シンボルの位置に基づいて前記フォーマットコードを検出し、そのフォーマットコードが表す2次元コードのフォーマットを取得するフォーマット取得処理を行い、
前記セル等位置決め処理は、取得された前記2次元コードのフォーマットに基づいて、前記第1の情報を表現するためのデータセルあるいは第2の情報を表現するためのバーの少なくともいずれか一方の位置を検出し、
前記デコード処理は、取得された前記2次元コードのフォーマットに基づいてコード種類に対応する解読アルゴリズムを特定し、その特定した解読アルゴリズムを用いてコード情報を読み取ること、
を特徴とする2次元コードの読取方法。
The method for reading a two-dimensional code according to claim 9,
The two-dimensional code is further provided with a format code that is arranged at a predetermined position with respect to the positioning symbol and that can specify a presence area and a use code type for each of the pieces of information in the two-dimensional code,
After performing the two-dimensional code positioning process, the format code is detected based on the detected position of the positioning symbol, and the format acquisition process for acquiring the format of the two-dimensional code represented by the format code is performed.
The positioning process for the cells and the like is based on the acquired two-dimensional code format, and at least one position of a data cell for expressing the first information or a bar for expressing the second information Detect
The decoding process specifies a decoding algorithm corresponding to a code type based on the acquired two-dimensional code format, and reads code information using the specified decoding algorithm;
A method for reading a two-dimensional code characterized by the above.
請求項1〜10のいずれか記載の2次元コードの読取方法が、コンピュータシステムにて実行するプログラムとして記録されたことを特徴とする記録媒体。11. A recording medium in which the two-dimensional code reading method according to claim 1 is recorded as a program executed by a computer system.
JP12892998A 1998-05-12 1998-05-12 Two-dimensional code reading method and recording medium Expired - Lifetime JP3887947B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP12892998A JP3887947B2 (en) 1998-05-12 1998-05-12 Two-dimensional code reading method and recording medium
US09/310,174 US6267296B1 (en) 1998-05-12 1999-05-12 Two-dimensional code and method of optically reading the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12892998A JP3887947B2 (en) 1998-05-12 1998-05-12 Two-dimensional code reading method and recording medium

Publications (2)

Publication Number Publication Date
JPH11328302A JPH11328302A (en) 1999-11-30
JP3887947B2 true JP3887947B2 (en) 2007-02-28

Family

ID=14996895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12892998A Expired - Lifetime JP3887947B2 (en) 1998-05-12 1998-05-12 Two-dimensional code reading method and recording medium

Country Status (1)

Country Link
JP (1) JP3887947B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4689935B2 (en) * 2000-06-30 2011-06-01 シルバーブルック リサーチ ピーティワイ リミテッド How to package data
KR100653886B1 (en) 2004-11-05 2006-12-05 주식회사 칼라짚미디어 Mixed code and mixed code encoding method and apparatus
KR100775788B1 (en) 2005-07-15 2007-11-13 경희대학교 산학협력단 Method of Coding for Improving Quality of Video by Flexible Macro Block Ordering based on Cyclic Fine Granularity Scalability
JP5251854B2 (en) * 2009-12-11 2013-07-31 株式会社デンソーウェーブ Optical information reader
JP5762190B2 (en) * 2011-07-15 2015-08-12 株式会社ウェルキャット Bar code symbol, reading method thereof and reading apparatus
CN104778491B (en) * 2014-10-13 2017-11-07 刘整 For the image code of information processing and generation with parsing its apparatus and method
WO2017073780A1 (en) * 2015-10-30 2017-05-04 株式会社 東芝 Apparatus for reading information code and method of generating information code
JP6486813B2 (en) * 2015-10-30 2019-03-20 東芝インフラシステムズ株式会社 Code reader
JP6502882B2 (en) * 2016-03-14 2019-04-17 東芝インフラシステムズ株式会社 INFORMATION CODE READER, INFORMATION CODE GENERATION METHOD, AND INFORMATION CODE DISPLAY MEDIUM
CN113420580B (en) * 2021-07-14 2024-07-09 北京紫光青藤微系统有限公司 Method and device for positioning auxiliary locator of two-dimensional code, two-dimensional code scanning equipment and storage medium

Also Published As

Publication number Publication date
JPH11328302A (en) 1999-11-30

Similar Documents

Publication Publication Date Title
US6267296B1 (en) Two-dimensional code and method of optically reading the same
JP4122629B2 (en) 2D code generation method
JP2938338B2 (en) 2D code
JP2835274B2 (en) Image recognition device
EP1456811B1 (en) Reconstruction of virtual raster
US7942340B2 (en) Two-dimensional code, and method and apparatus for detecting two-dimensional code
KR970006647B1 (en) Polygonal Information Encoding Labels, Methods and Systems
Atcheson et al. Caltag: High precision fiducial markers for camera calibration.
JP3887947B2 (en) Two-dimensional code reading method and recording medium
US8376240B2 (en) Method and system for creating and using barcodes
CN112858318B (en) Method for distinguishing screen foreign matter defect from dust, electronic equipment and storage medium
US20020063893A1 (en) Image processing method and apparatus
CN101978380A (en) Two-dimensional symbol and method for reading same
JP3716527B2 (en) 2D code reading method
JPH0519694A (en) Readable symbol of multiple resolution machine
JP3726395B2 (en) Two-dimensional code and two-dimensional code reading method
JP3873450B2 (en) 2D code
JP2004536392A5 (en)
JP4348702B2 (en) Plane four-finger image determination apparatus, plane four-finger image determination method, and plane four-finger image determination program
KR20040057175A (en) The bar code reader and high-speed extraction system of bar code locating, the control method of this system
JPS60116078A (en) Character recognition device
JPH11312215A (en) Two-dimensional code decoder and storage medium thereof
JP2016099760A (en) Information providing system and printed matter
CN118037884B (en) Binary positioning code generation method, system and equipment containing trademark information
US20240281625A1 (en) Magnetic bead-based detection method, storage medium, and detection device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061120

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091208

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101208

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101208

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111208

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111208

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121208

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121208

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121208

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131208

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term