JP5145833B2 - 2次元コード読み取り装置、2次元コード読み取り方法、2次元コード読み取りプログラム及び記録媒体 - Google Patents
2次元コード読み取り装置、2次元コード読み取り方法、2次元コード読み取りプログラム及び記録媒体 Download PDFInfo
- Publication number
- JP5145833B2 JP5145833B2 JP2007236688A JP2007236688A JP5145833B2 JP 5145833 B2 JP5145833 B2 JP 5145833B2 JP 2007236688 A JP2007236688 A JP 2007236688A JP 2007236688 A JP2007236688 A JP 2007236688A JP 5145833 B2 JP5145833 B2 JP 5145833B2
- Authority
- JP
- Japan
- Prior art keywords
- pattern
- dimensional code
- black
- condition
- white
- 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 - Fee Related
Links
Images
Description
複数の白および黒の四角形のセルの一部を固有パターンとして有する2次元コードの領域を含む多値画像を、次式
Cb=x/16
ただし、Cb:乗算係数
x:整数、1≦x≦15
に基づいて二値化して、二値画像を出力する画像二値化手段と、
前記二値画像から前記2次元コードの領域を検出する2次元コード検出手段と、
前記2次元コードの領域から固有パターンを検出する固有パターン検出手段と、
前記2次元コードをデコードするデコード手段と、を有し、
前記固有パターン検出手段は、前記固有パターンを構成する黒若しくは白のパターンのうち、一方のパターンを構成するセルが、予め定めたパターンを構成するセルと全て一致していることを条件とする第1の条件と、他方のパターンの一致度が予め定めた一致度を満たすことを条件とする第2の条件と、を判定する判定手段を備え、
前記二値化手段は、
黒のパターンの一致度が前記第1の条件を満たし、白のパターンの一致度が前記第2の条件を満たさない場合は、白のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、また、
白のパターンの一致度が前記第1の条件を満たし、黒のパターンの一致度が前記第2の条件を満たさない場合は、黒のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、
前記再度二値化した二値画像から前記固有パターンを検出し、前記デコード手段で前記2次元コードをデコードすることを特徴とする2次元コード読み取り装置を提供する。
複数の白および黒の四角形のセルの一部を固有パターンとして有する2次元コードの領域を含む多値画像を、次式
Cb=x/16
ただし、Cb:乗算係数
x:整数、1≦x≦15
に基づいて二値化して、二値画像を出力する画像二値化ステップと、
前記二値画像から前記2次元コードの領域を検出する2次元コード検出ステップと、
前記2次元コードの領域から固有パターンを検出する固有パターン検出ステップと、
前記2次元コードをデコードするデコードステップと、を有し、
前記固有パターン検出ステップは、前記固有パターンを構成する黒若しくは白のパターンのうち、一方のパターンを構成するセルが、予め定めたパターンを構成するセルと全て一致していることを条件とする第1の条件と、他方のパターンの一致度が予め定めた一致度を満たすことを条件とする第2の条件と、を判定する判定ステップを備え、
前記二値化ステップは、
黒のパターンの一致度が前記第1の条件を満たし、白のパターンの一致度が前記第2の条件を満たさない場合は、白のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、また、
白のパターンの一致度が前記第1の条件を満たし、黒のパターンの一致度が前記第2の条件を満たさない場合は、黒のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、
前記再度二値化した二値画像から前記固有パターンを検出し、前記デコードステップで前記2次元コードをデコードすることを特徴とする2次元コード読み取り方法を提供する。
また、第4の態様として、上記第3の態様におけるプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体を提供する。
2次元コードの原型となる矩形コードを図1に示す。斜め方向からの読み取りによるコード画像劣化を防ぐために、コードの高さを低く抑えコードのセル配置数を12x7の横長とする。セルとは、白黒の矩形の最小単位で、一つのセルが1ビットを表す。白が0、黒が1に対応する。この12x7セルにデータ7バイト(56ビット)、誤り訂正データ2バイト(16ビット)、コードの識別パターン12ビットを埋め込む。そして12x7のセルを取り囲むようにセルと同じ大きさの黒枠で囲む。
クワイエットゾーンは2次元コードの黒枠を囲む外接矩形の外側に設けられる余白領域であり、確実に読み取るために必要な領域である。クワイエットゾーンは最大セル長以上でかつ1mm以上であることが望ましい。
コードの識別パターン(「固有パターン」とも称す)はセル配列の最上行に配置された12個のセルの並びで判定する。セルの並びは左から「白白黒黒白白黒黒白白黒黒」であり、印刷品質や読み取り品質が低くてもコードであることを判定できるように白と黒が二つずつ並んだパターンを採用している(図3、図4参照)。
コードの大きさはセルの大きさを決定することで決まる。一般的な応用におけるクワイエットゾーンを含めないコードの最小の大きさは、コードを読み取る解像度を300dpiとし、読み取った画像において各セル一辺が4画素を含むとして、上底下底ともに5mm、高さは3mmとなる。
2次元コードに使用する誤り訂正方式はリードソロモン方式である。データ7バイトに対して、2バイトの誤り訂正用データを付加する。誤り訂正できるバイト数は1である。
上記のようにデータを7バイト、誤り訂正用データを2バイトとして、計9バイトのデータに加え、12ビットのコード識別パターンをコードに配置する。斜め前方からコードを読む構成となっているため、コードの高さを低く抑えてコードのセル配置数を12x7の横長とする。各セルへのデータの配置位置を図3に示す。図3は各セルへのデータのバイト単位の配置を示している。データの各バイトを(s1〜s7)、誤り訂正符号の各バイトを(r1〜r2)とする。また、最上行の白2セル、黒2セルの並びはコードを識別するための識別パターン(固有パターンとも称す)である。図4は各データのビット単位での配置を示す。数字の0がMSB、7がLSBを表す。
[エンコード手順の概要]
入力データを2次元コードに変換する際に要求される手順の概要は以下の通りである。
手順1・・・入力データのマスキング
入力データを7バイトのバイナリ形式に変換し、各バイトと0x96(16進表記)とで排他的OR演算を行う。
手順2・・・誤り訂正符号の生成
マスキングを行ったデータに誤り訂正符号を付加する。
手順3・・・矩形コードの生成
誤り訂正符号が付加された入力データを矩形コードに配置する。
手順4・・・矩形コードの台形化
矩形コードを台形に変形させる。
データ形式が整数値文字列の場合は7バイトの整数型データに変換する。データ形式が文字やバイナリの場合はそのまま使用する。データ形式の変換後、エンコードすべきデータの各バイトに対して0x96(16進表記)の値で排他的OR演算を行う。
次にリードソロモン符号を使用して誤り訂正符号の生成を行う。排他的OR演算を行った7バイトデータ(s1〜s7)の各バイト値を係数とした多項式S(x) = s1x8+ s2x7 + s3x6 + s4x5 + s5x4 + s6x3 + s7x2を生成し、生成多項式G(x) = (x−α)(x−α2)で除算する。実際に使用する生成多項式はG(x) = x2 + 6x + 8である。除算して得られた剰余多項式R(x) = r1x + r2の係数(r1、 r2)が誤り訂正符号となる。ここで、αはGF(28)上の原始要素2の根であり、演算はすべてGF(28)上で行われる。誤り訂正能力は1バイトである。
図3に示したとおり、s1〜s7、r1、r2の各ビットをコードにマッピングする。図4は各データのビット単位での配置を示し、数字の0がMSB、7がLSBを表す。各データのビット1を黒セルに、ビット0を白セルに割り当てる。
矩形コードの台形化の計算に必要な光学系パラメータを図6及び図7に示す。図示する符号の意は以下の通りである。
O:空間座標原点、S:撮像素子の結像中心、SC:光学中心、CO:紙面(z=0)、A:撮像される画端、B:コードの下端、C:撮像される中心、L:撮像される画端(直線)、T:z=0上の台形コード、R:台形コードTのもとになるz=0上での矩形コード、SO:撮像素子と紙面との距離、∠CSO:撮像時のあおり角度
頂点候補検出部5は、2次元コードの各頂点候補を検出する。次の黒枠判定部6で黒枠(=コード枠)として認識されて始めて頂点候補が2次元コードの頂点であると判定されるため、頂点「候補」と称す。
黒枠判定部6は、検出した頂点候補同士を結ぶ2次元コードの黒枠が存在するか否かを判定する。隣接した2頂点を結ぶ直線の外側にほとんど白画素の領域、内側にほとんど黒画素の領域が存在するときに、黒枠であると判定する。黒枠検出では、図14のように、頂点候補A、B、C、Dから頂点候補検出部5において追跡した終端画素どうしを結ぶ4直線(黒枠判定ライン)を通過する画素のうち黒画素の割合が全ての直線において直線毎に9割以上存在すればそれを仮の黒枠であると判定する。
射影変換係数算出部7は、射影変換係数算出部7では、黒枠検出で検出されたコード枠の各頂点の座標と、コードが矩形であるとしたときのコード枠の各頂点の仮想的な規定座標とから、各セルの規定中心座標と読み取った2次元コード画像の各セルの中心座標とをマッピングする係数(射影変換係数)を求める。規定座標とは、各セルが1の長さを持つ正方形として2次元コードが作成され、結果的にコードは長方形の形になるときの座標のことをいう。規定中心座標とは、前記のような規定座標系で、各セルの中心座標のことをいう。射影変換の詳細は後述する。
セル位置取得部8は、求めた射影変換係数を用いて、各セルの規定中心座標から読み取った2次元コードの各セルの座標を演算し、読み取るべきセルの位置を取得する。
コード判定部9は、固有パターン検出手段としての機能を有する。コード判定部9は、取得したセル位置より2次元コード固有のパターン(コードの識別パターン)を検出し、目的の2次元コードであるか否かを判定するとともに2次元コード固有パターンの検出結果が所定の条件を満たす場合にその結果を二値化パラメータ設定部4に出力する。
ビット列取得部10は、目的の2次元コードと判定された2次元コードの各セルの白黒情報を読み取りビット列を取得する。従ってビット列取得には、2次元コード画像、読み取った2次元コード画像のセル位置が必要である。読み取った2次元コード画像の各セルの位置を画像データのサンプリング中心座標とし、その座標を中心とする3x3画素の黒画素数が白画素数を上回れば(黒画素が多い)‘1’、そうでなければ(白画素が多い)‘0’としてデータを読み出し、データを配列する。
誤り訂正部11は、ビット列から誤り訂正を行い、誤り訂正が出来なかった場合に所定の演算を行ってその結果を二値化パラメータ設定部4に出力する。読み出された72ビットのデータは誤り訂正部11に入力され、リードソロモン方式の誤り訂正の判定が行われる。誤りがないか、あるいは誤り訂正が可能ならば、56ビット(7バイト)のデータをデータ復元部12へ出力する。誤り訂正が不可能であった場合、白黒の画素数比および72ビットのデータとから黒の拡張率を算出する。黒の拡張率が1より大きい場合、画像二値化後の画像内の白画素を増大させるための信号を二値化パラメータ設定部4に出力する。黒の拡張率が1より小さい場合は、画像二値化後の画像内の黒画素を増大させるための信号を二値化パラメータ設定部4に出力する。黒の拡張率の詳細については後述する。
データ復元部12は、誤り訂正をした後で元のデータを復元する。具体的には、誤り訂正部11で得られた7バイトのデータの各バイトに0x96(16進表記)で排他的論理和を演算して元のデータを復元する。
黒の拡張率は、デコードする2次元コードの黒領域がどれだけ拡張されているかを示す尺度である。入力画像がグレースケール画像であるため、二値化処理を実行し、画像を二値化する。2次元コード領域においてコードを各セルが正方形になるように矩形に変換したとき、理想の白黒比の状態から白黒の割合がどれだけ変化しているかを規定する。
exp=(b/2 − w/4)/2 = (2b − w)/8
Bexp = exp/(2b+w)*8 + 1 = 4b/(2b+w)
これは理想のセル長を基準として白に隣接した黒のセルのはみ出し割合を示したものである。黒の拡張がなければBexpの値は1となる。
Psk:上記式により算出される。
Ar〜Dr:コードの生成時に記憶される。
Prk:コード生成時に記憶される。
2 二値化部
3 デコード部
4 二値化パラメータ設定部
5 頂点候補検出部
6 黒枠判定部
7 射影変換係数算出部
8 セル位置取得部
9 コード判定部
10 ビット列取得部
11 誤り訂正部
12 データ復元部
13 黒の拡張率算出部
Claims (8)
- 複数の白および黒の四角形のセルの一部を固有パターンとして有する2次元コードの領域を含む多値画像を、次式
Cb=x/16
ただし、Cb:乗算係数
x:整数、1≦x≦15
に基づいて二値化して、二値画像を出力する画像二値化手段と、
前記二値画像から前記2次元コードの領域を検出する2次元コード検出手段と、
前記2次元コードの領域から固有パターンを検出する固有パターン検出手段と、
前記2次元コードをデコードするデコード手段と、を有し、
前記固有パターン検出手段は、前記固有パターンを構成する黒若しくは白のパターンのうち、一方のパターンを構成するセルが、予め定めたパターンを構成するセルと全て一致していることを条件とする第1の条件と、他方のパターンの一致度が予め定めた一致度を満たすことを条件とする第2の条件と、を判定する判定手段を備え、
前記二値化手段は、
黒のパターンの一致度が前記第1の条件を満たし、白のパターンの一致度が前記第2の条件を満たさない場合は、白のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、また、
白のパターンの一致度が前記第1の条件を満たし、黒のパターンの一致度が前記第2の条件を満たさない場合は、黒のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、
前記再度二値化した二値画像から前記固有パターンを検出し、前記デコード手段で前記2次元コードをデコードすることを特徴とする2次元コード読み取り装置。 - 前記二値化手段が前記多値画像を再度二値化するときには、前記式のxの値を、
黒のパターンの一致度が前記第1の条件を満たし、白のパターンの一致度が前記第2の条件を満たさない場合は、増やし、
白のパターンの一致度が前記第1の条件を満たし、黒のパターンの一致度が前記第2の条件を満たさない場合は、減らす
処理を行うことを特徴とする、請求項1記載の2次元コード読み取り装置。 - 前記多値画像は、データ情報と誤り訂正情報とを有し、
前記デコード手段は、前記誤り訂正情報を利用した誤り訂正に失敗した場合に、
理想の白黒比の状態から二値化を試みた画像の白黒比への変化率を計算し、
前記二値化手段が前記多値画像を再度二値化するときには、前記式のxの値を、
前記変化率が黒の割合が多くなっていることを示す場合は、減らし、
前記変化率が白の割合が多くなっていることを示す場合は、増やす
処理を行うことを特徴とする、請求項1又は2記載の2次元コード読み取り装置。 - 複数の白および黒の四角形のセルの一部を固有パターンとして有する2次元コードの領域を含む多値画像を、次式
Cb=x/16
ただし、Cb:乗算係数
x:整数、1≦x≦15
に基づいて二値化して、二値画像を出力する画像二値化ステップと、
前記二値画像から前記2次元コードの領域を検出する2次元コード検出ステップと、
前記2次元コードの領域から固有パターンを検出する固有パターン検出ステップと、
前記2次元コードをデコードするデコードステップと、を有し、
前記固有パターン検出ステップは、前記固有パターンを構成する黒若しくは白のパターンのうち、一方のパターンを構成するセルが、予め定めたパターンを構成するセルと全て一致していることを条件とする第1の条件と、他方のパターンの一致度が予め定めた一致度を満たすことを条件とする第2の条件と、を判定する判定ステップを備え、
前記二値化ステップは、
黒のパターンの一致度が前記第1の条件を満たし、白のパターンの一致度が前記第2の条件を満たさない場合は、白のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、また、
白のパターンの一致度が前記第1の条件を満たし、黒のパターンの一致度が前記第2の条件を満たさない場合は、黒のパターンの一致度が前記第2の条件を満たすように前記多値画像を再度二値化し、
前記再度二値化した二値画像から前記固有パターンを検出し、前記デコードステップで前記2次元コードをデコードすることを特徴とする2次元コード読み取り方法。 - 前記二値化ステップが前記多値画像を再度二値化するときには、前記式のxの値を、
黒のパターンの一致度が前記第1の条件を満たし、白のパターンの一致度が前記第2の条件を満たさない場合は、増やし、
白のパターンの一致度が前記第1の条件を満たし、黒のパターンの一致度が前記第2の条件を満たさない場合は、減らす
処理を行うことを特徴とする、請求項4記載の2次元コード読み取り方法。 - 前記多値画像は、データ情報と誤り訂正情報とを有し、
前記デコードステップは、前記誤り訂正情報を利用した誤り訂正に失敗した場合に、
理想の白黒比の状態から二値化を試みた画像の白黒比への変化率を計算し、
前記二値化ステップが前記多値画像を再度二値化するときには、前記式のxの値を、
前記変化率が黒の割合が多くなっていることを示す場合は、減らし、
前記変化率が白の割合が多くなっていることを示す場合は、増やす
処理を行うことを特徴とする、請求項4又は5記載の2次元コード読み取り方法。 - 請求項4から6のいずれか1項に記載の2次元コード読み取り方法をコンピュータに実行させることを特徴とする2次元コード読み取りプログラム。
- 請求項7記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007236688A JP5145833B2 (ja) | 2007-09-12 | 2007-09-12 | 2次元コード読み取り装置、2次元コード読み取り方法、2次元コード読み取りプログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007236688A JP5145833B2 (ja) | 2007-09-12 | 2007-09-12 | 2次元コード読み取り装置、2次元コード読み取り方法、2次元コード読み取りプログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009070061A JP2009070061A (ja) | 2009-04-02 |
JP5145833B2 true JP5145833B2 (ja) | 2013-02-20 |
Family
ID=40606258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007236688A Expired - Fee Related JP5145833B2 (ja) | 2007-09-12 | 2007-09-12 | 2次元コード読み取り装置、2次元コード読み取り方法、2次元コード読み取りプログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5145833B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5623223B2 (ja) * | 2010-09-29 | 2014-11-12 | トッパン・フォームズ株式会社 | バーコード表示ラベル |
JP6188052B2 (ja) * | 2013-02-26 | 2017-08-30 | Kddi株式会社 | 情報システム及びサーバー |
CN106464825B (zh) | 2014-07-01 | 2020-11-10 | 索尼公司 | 图像处理设备和方法 |
US11514256B2 (en) | 2018-10-01 | 2022-11-29 | Hitachi Industrial Equipment Systems Co., Ltd. | Printing inspection device |
CN110969612B (zh) * | 2019-12-04 | 2023-03-21 | 常州大学 | 二维码印刷缺陷检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2576370B2 (ja) * | 1993-07-07 | 1997-01-29 | 日本電気株式会社 | Idマーク読み取り装置 |
JP3803411B2 (ja) * | 1995-12-25 | 2006-08-02 | オリンパス株式会社 | 情報再生システム及び情報記録媒体 |
JP2004102348A (ja) * | 2002-09-04 | 2004-04-02 | Showa Information Systems Co Ltd | 二次元コードの認識方法 |
-
2007
- 2007-09-12 JP JP2007236688A patent/JP5145833B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009070061A (ja) | 2009-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7751585B2 (en) | System and method for encoding high density geometric symbol set | |
US7478746B2 (en) | Two-dimensional color barcode and method of generating and decoding the same | |
US8594453B2 (en) | Method of robust alignment and payload recovery for data-bearing images | |
JP4000316B2 (ja) | 埋め込み型図形符号化を用いたハーフトーン化による図形コードの生成 | |
WO2018095149A1 (zh) | 嵌入有视觉图像的二维码的生成***和方法以及读取*** | |
US8186594B2 (en) | Image processing method and apparatus thereof | |
US20110052094A1 (en) | Skew Correction for Scanned Japanese/English Document Images | |
JP2004530227A (ja) | グラフィカルバーコードの基準目印パターン | |
JP2004140764A (ja) | 画像処理装置及び画像処理方法 | |
JP2005218084A (ja) | ペーパーストレージ用3dドットコード | |
JP5145833B2 (ja) | 2次元コード読み取り装置、2次元コード読み取り方法、2次元コード読み取りプログラム及び記録媒体 | |
US7911653B2 (en) | Device using low visibility encoded image to manage copy history | |
JP4140519B2 (ja) | 画像処理装置、プログラムおよび記録媒体 | |
JP4192909B2 (ja) | 改ざん検出装置、改ざん検出方法 | |
US10027843B2 (en) | Embedding data in halftone images | |
JP4874706B2 (ja) | Qrコード読取装置 | |
EP2529331A1 (en) | Parallel test payload | |
JP5056063B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP4397866B2 (ja) | 2次元パターン読み取り装置、2次元パターン読み取り方法 | |
JP4179177B2 (ja) | 画像処理装置および画像処理方法 | |
JP5434273B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP2007213358A (ja) | 二次元コード検出システムおよび二次元コード検出プログラム | |
JP2005196659A (ja) | 画像処理装置、プログラムおよび記録媒体 | |
JP2010049587A (ja) | 差分抽出装置及び差分抽出プログラム | |
JP2005210622A (ja) | 画像処理装置および画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100414 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120529 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120723 |
|
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: 20121030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121112 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151207 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |