(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6383753
(24)【登録日】2018年8月10日
(45)【発行日】2018年8月29日
(54)【発明の名称】高容量の2Dカラーバーコード設計、およびカメラベースのアプリケーションの処理方法
(51)【国際特許分類】
G06K 7/14 20060101AFI20180820BHJP
G06K 7/12 20060101ALI20180820BHJP
G06K 19/06 20060101ALI20180820BHJP
【FI】
G06K7/14 086
G06K7/12
G06K7/14 017
G06K7/14 043
G06K7/14 065
G06K19/06 037
G06K19/06 140
G06K19/06 131
【請求項の数】10
【外国語出願】
【全頁数】12
(21)【出願番号】特願2016-100784(P2016-100784)
(22)【出願日】2016年5月19日
(65)【公開番号】特開2017-10534(P2017-10534A)
(43)【公開日】2017年1月12日
【審査請求日】2017年5月10日
(31)【優先権主張番号】14/747342
(32)【優先日】2015年6月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】507031918
【氏名又は名称】コニカ ミノルタ ラボラトリー ユー.エス.エー.,インコーポレイテッド
(74)【代理人】
【識別番号】110000671
【氏名又は名称】八田国際特許業務法人
(72)【発明者】
【氏名】ガン ファン
【審査官】
梅沢 俊
(56)【参考文献】
【文献】
特開2013−191078(JP,A)
【文献】
特開2013−041343(JP,A)
【文献】
特開2005−227929(JP,A)
【文献】
米国特許出願公開第2013/0186957(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 7/14
G06K 7/12
G06K 19/06
(57)【特許請求の範囲】
【請求項1】
取り込まれたカラーバーコード画像内の2次元のカラーバーコードの処理方法であって、
前記バーコードは、複数のカラーデータセル、およびそれぞれが複数の黒画素で形成された複数のロケーターを含む既知のレイアウトを有し、前記ロケーターは前記バーコード全体にわたって異なる位置に配置されており、
前記カラーバーコード画像をグレースケールバーコード画像に変換するステップと、
複数の2値画像を生成するため、毎回複数の異なる2値化閾値のうちの1つを用い、複数回、前記グレースケールバーコード画像を2値化処理するステップと、
各2値画像内の前記ロケーターを識別し、該ロケーターの位置を判定するステップと、
前記ロケーターの結合リストを生成するため、前記複数の2値画像内で識別された前記ロケーターを結合するステップと、
を含み、
前記2値化処理するステップの前に、さらに、
グレースケール画像の最大および最小輝度を判定するステップと、
前記最大および最小輝度に基づいて、複数の前記2値化閾値を計算するステップと、
を含む処理方法。
【請求項2】
前記ロケーターは、同心の四角形であり、
各2値画像内の前記ロケーターを識別するステップは、所定の範囲内の水平方向の連続した黒および白画素のランレングス間の比率を識別するステップを含む、請求項1に記載の処理方法。
【請求項3】
各2値画像内の前記ロケーターを識別するステップは、さらに、
前記ロケーターが可能な位置としての複数の候補位置を識別するステップと、
前記複数の候補位置のそれぞれに対して、前記候補位置の周囲の輪郭を識別し、前記候補位置が前記バーコードのロケーターの位置であるか判定するため、前記輪郭を解析するステップと、を含む、請求項2に記載の処理方法。
【請求項4】
取り込まれたカラーバーコード画像内の2次元のカラーバーコードの処理をデータ処理装置に実行させるように、前記データ処理装置を制御するためのコンピュータープログラムであって、
前記バーコードは、複数のカラーデータセル、およびそれぞれが複数の黒画素で形成された複数のロケーターを含む既知のレイアウトを有し、前記ロケーターは前記バーコード全体にわたって異なる位置に配置されており、
前記処理は、
前記カラーバーコード画像をグレースケールバーコード画像に変換するステップと、
複数の2値画像を生成するため、毎回複数の異なる2値化閾値のうちの1つを用い、複数回、前記グレースケールバーコード画像を2値化処理するステップと、
各2値画像内の前記ロケーターを識別し、該ロケーターの位置を判定するステップと、
前記ロケーターの結合リストを生成するため、前記複数の2値画像内で識別された前記ロケーターを結合するステップと、
を含み、
前記2値化処理するステップの前に、さらに、
グレースケール画像の最大および最小輝度を判定するステップと、
前記最大および最小輝度に基づいて、複数の前記2値化閾値を計算するステップと、
を含むコンピュータープログラム。
【請求項5】
前記ロケーターは、同心の四角形であり、
各2値画像内の前記ロケーターを識別するステップは、
所定の範囲内の水平方向の連続した黒および白画素のランレングス間の比率を識別するステップを含む、請求項4に記載のコンピュータープログラム。
【請求項6】
各2値画像内の前記ロケーターを識別するステップは、さらに、
前記ロケーターが可能な位置としての複数の候補位置を識別するステップと、
前記複数の候補位置のそれぞれに対して、前記候補位置の周囲の輪郭を識別し、前記候補位置が前記バーコードのロケーターの位置であるか判定するため、前記輪郭を解析するステップと、
を含む、請求項5に記載のコンピュータープログラム。
【請求項7】
請求項4〜6のいずれか1項に記載のコンピュータープログラムを記録したコンピューター読み取り可能な記録媒体。
【請求項8】
取り込まれたカラーバーコード画像内の2次元のカラーバーコードを処理するデータ処理装置であって、
前記バーコードは、複数のカラーデータセル、およびそれぞれが複数の黒画素で形成された複数のロケーターを含む既知のレイアウトを有し、前記ロケーターは前記バーコード全体にわたって異なる位置に配置されており、
前記データ処理装置は、
前記カラーバーコード画像をグレースケールバーコード画像に変換する変換部と、
複数の2値画像を生成するため、毎回複数の異なる2値化閾値のうちの1つを用い、複数回、前記グレースケールバーコード画像を2値化処理する2値化処理部と、
各2値画像内の前記ロケーターを識別し、該ロケーターの位置を判定する識別部と、
前記ロケーターの結合リストを生成するため、前記複数の2値画像内で識別された前記ロケーターを結合する結合部と、
を備え、
前記2値化処理部は、グレースケール画像の最大および最小輝度を判定し、前記最大および最小輝度に基づいて、複数の前記2値化閾値を計算する、データ処理装置。
【請求項9】
前記ロケーターは、同心の四角形であり、
前記2値化処理部は、所定の範囲内の水平方向の連続した黒および白画素のランレングス間の比率を識別する、請求項8に記載のデータ処理装置。
【請求項10】
前記2値化処理部は、さらに、
前記ロケーターが可能な位置としての複数の候補位置を識別し、
前記複数の候補位置のそれぞれに対して、前記候補位置の周囲の輪郭を識別し、前記候補位置が前記バーコードのロケーターの位置であるか判定するため、前記輪郭を解析する、請求項9に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2次元(2D)カラーバーコードの設計およびデコードに関し、特に、カメラベースアプリケーションの2Dカラーバーコードの設計およびデコードに関する。
【背景技術】
【0002】
バーコードは、光学的に機械可読なデータの表現である。2Dカラーバーコードは、例えば水平および垂直の2方向で2次元的に配置された小さな正方形または長方形のセルで形成され、各セルは1つの色を使用する。異なる色は、異なるデータ値を表す。バーコードのデータ容量と、セル数および色数との関係は、
データ容量=(セル数)×log
2(色表示数) で表現できる。
【0003】
小サイズセルおよびより多くの色表示を使用するバーコード設計では、一定の領域内において比較的高い容量を実現できる。しかしながら、セルの小型化は、様々な要因により制限される。
【0004】
2Dカラーバーコードが用紙上に印刷されるか携帯機器の画面などの表示画面上に表示され、そして(平台型スキャナーと対立するものとしての)カメラベースのバーコードリーダーに読み取られた場合、透視投影および不均一な照明がバーコードのデコードへの課題を与える。
【発明の概要】
【発明が解決しようとする課題】
【0005】
したがって、本発明は従来技術の制限および不利益による1つ以上の課題を大幅に回避する、2Dカラーバーコードを処理する方法およびこれに関する装置を対象とする。
本発明の目的は、バーコード画像中のロケーターの位置を正確に識別する方法を提供することである。
【0006】
本発明の他の目的は、カメラベースのバーコードリーダーにより取り込まれたバーコード画像への透視投影および不均一照明への補正を提供することである。
【0007】
本発明の追加的な特徴および利点は、以下の明細書に記載され、その一部は明細書から明らかになるか、本発明の実施により知ることができるであろう。
本発明の目的および他の利点は、明細書の記載、特許請求の範囲、および添付の図面で詳しく示された構造により理解し、達成できる。
【課題を解決するための手段】
【0008】
これらの目的および/または他の目的を達成するため、具現化および広く記載されているように、本発明は、取り込まれたカラーバーコード画像中の2次元カラーバーコードの処理方法を提供する。前記バーコードは、複数のカラーデータセル、およびそれぞれが複数の黒画素で形成された複数のロケーターを含む既知のレイアウトを有し、前記ロケーターは前記バーコード全体にわたって異なる位置に配置されており、前記方法は、前記カラーバーコード画像をグレースケールバーコード画像に変換するステップと、複数の2値画像を生成するため、毎回複数の異なる2値化閾値のうちの1つを用い、複数回、前記グレースケールバーコード画像を2値化処理するステップと、各2値画像内の前記ロケーターを識別し、該ロケーターの位置を判定するステップと、前記ロケーターの結合リストを生成するため、前記複数の2値画像内で識別された前記ロケーターを結合するステップと、を含む。
【0009】
他の態様では、本発明は、コンピュータープログラム、およびデータ処理装置用のコンピュータープログラムを格納したコンピューターが読み取り可能な記録媒体(例えばメモリまたは記憶装置)を提供する。このコンピュータープログラムは、上述の方法をデータ処理装置に実行させるように構成される。
【0010】
上述の一般的な説明および以下の詳細な説明は、具体的で例示的であり、特許請求の範囲に記載された本発明のさらなる説明を提供することを意図すると理解される。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態に係るカラーバーコードのレイアウトを示す図である。
【
図2】本発明の実施形態に係るバーコード画像処理方法を概略的に示す図である。
【
図3】
図3Aは、バーコード画像の一例を示す図である。
図3Bから
図3Eは、
図3Aのバーコード画像から、異なる2値化閾値を用いて生成された複数の2値画像を示す図である。
【
図4】本発明の実施形態に係る2値画像内のロケーターを識別する方法を概略的に示す図である。
【
図5】本発明の実施形態を実装できるデータ処理装置を概略的に示す図である。
【発明を実施するための形態】
【0012】
本発明の一態様は、記録媒体上に印刷され、または携帯機器の画面に表示されるであろう2Dバーコードのレイアウト設計である。本発明の他の態様は、カメラを通じて取り込まれた画像からの2Dカラーバーコードのデコードに適したデコード処理およびアルゴリズムである。2Dバーコードの設計は、カメラで取り込まれたバーコード画像からの処理およびデコードを容易にする特徴を含んでいる。
【0013】
図1は、本発明の実施形態に係るカラーバーコードの一例のレイアウトを示す。カラーバーコードは、2次元配列を形成する複数のデータセル11を含み、各セルは複数の色のうちの一つを有する。好ましい実施形態では、複数の色はシアン(C)、マゼンタ(M)、白(W)(すなわち非印字)、および黒(K)である。各セルは2ビットの情報を表すことができる。CMYKは一般のプリンタで用いられる原色であり、それらの各々は1つのカラーインクで印刷され、カラーチャネルと呼ばれる。
図1のカラーバーコードのレイアウトでは、原色イエロー(Y)は白(W)、すなわち非印字セルに置き換えられている。したがって、バーコード内の各セルは、1つのインクで印刷されるか、印刷されない、また各セルの色は均一である。各セルは規定サイズを有し、これらは規定の距離で隔てられている。好ましくは、セルは四角形で、グリッド上の垂直および水平方向に整列された行と列を形成し、この行の間隔と列の間隔が等しい。一の具体例では、セルサイズは、3×3画素で、セル間の間隔(余白の幅)は水平および垂直の両方向で2画素である。この例では、グリッドは正方形グリッドになる。これに代えて、グリッドを長方形グリッドとしてもよい。
【0014】
バーコードは、バーコードの内側だけでなく、バーコードの4隅、およびバーコードの境界に沿って複数のロケーター12を有する。図示の例では、16個のロケーター12が設けられ、4×4配列を形成している。4個のロケーターは隅に、8個は境界に沿って、4個は内部に配置されている。後述するように、ロケーター12は、画像処理およびデコードを補助するため、バーコード全体内で基準位置を与えうる。ロケーターは、好ましくは黒でありデータセルよりも実質的に大きい、これによりそれらを画像中で比較的容易に識別させる。図示の具体例では、各ロケーターは、余白およびその次の黒の境界で囲まれる塗りつぶした正方形で構成される。正方形は13×13画素(すなわち、3列および3行のデータセルと同じ幅)である。余白は7画素幅(すなわち、データセル領域で列または行のデータセルを除去した余白と同じ)である。黒の境界は3画素幅(すなわち、データセルと同じ幅)である。したがって、各ロケーター12は、33×33画素のサイズでありデータセル配列中の7×7のデータセルと同等の面積を占める。
【0015】
バーコードは、バーコードの4本の境界に沿ってロケーター間に配置された複数の境界基準セル13も含む。境界基準セル13は、シアン、マゼンタおよび黒の基準セルを含み、これらは所定の色順、例えば図示の例のようにC、M、Kを繰り返す順で配列される。換言すれば、各境界基準セルは既知である。この基準セルは、デコード処理に有用な(全体的および局所的)チャネルオフセット情報および色情報を与える。一実施形態では、境界基準セル13は、データセル11と同一サイズを有することから、これらの基準セルの色濃度はデータセルと同様になる。
【0016】
境界基準セル13の潜在的重複を避けるために、境界基準セル13は、互いに、ロケーター12から、およびデータセル11から、データセル配列内側のセル間隔よりも大きな距離だけ離れている。図示の例では、2つの隣接する基準セル間、および基準セルとその隣のデータセル間の間隔(余白)は7画素である(すなわち、データセル領域で列または行のデータセルを除去した余白と同じ)。ロケーター12と、隣りの境界基準セル13は、この距離またはこれよりも大きな距離だけ離れている。
【0017】
バーコードは非対称に設計されてもよく、これにより4隅の4つのロケーターのうちの1つを他と区別でき、デコード処理に有用である。これはいかなる適切な手段により達成してもよい。例えば、1つのロケーターを他とは異なる形状にする。異なるまたは非対称の色順の境界沿い基準セルを用いることで、バーコードの設計に非対称が盛り込まれてもよい。バーコード等のデータ長およびECCをエンコードした検査セルのような追加の特徴がバーコードの設計に盛り込まれてもよい。
【0018】
ある特定の例では、バーコード用のグリッドは、124列、124行である。余白、ロケーター、および基準セルを除くと、各バーコードでは、約13500のデータセルを情報の蓄積に用いることができる。複数のバーコードを、その間の余白、例えば20画素とともに、同一のページ上に互いに隣接して配置することができる。プリント解像度600dpi用のバーコードは、約1.05×1.05平方インチを占める。したがって、7×10個までのバーコードをレターサイズのページ上に配置できる。
【0019】
上述した設計のバーコードを処理するためのバーコード画像処理方法を、
図2を参照して、以下に説明する。最初に、バーコード画像を取り込む(ステップS101)。上述のレイアウト設計を有するバーコードは、用紙上に印刷されるか携帯機器の画面などの表示画面に表示される。このステップでは、カラー画像のバーコード画像は、典型的には、カメラベースのバーコードリーダーまたはカメラの前に保持した印刷用紙または画面が、このカメラまたはバーコードリーダーを用いて取り込まれる。当然ながらバーコード画像は、スキャナーを用いて取り込んでもよい。
【0020】
取り込まれた画像はグレースケール画像に変換される(ステップS102)。
グレースケール画像の最大、最小輝度(画素値)を決定し、この最大、最小輝度値に基づいて、複数の2値化閾値を計算する(ステップS103)。ここで、撮像条件によって、取り込まれた画像中の余白すなわち白セル、および黒セルの画素値は、白と黒の理論値でない可能性がある。一の実施では、4つの2値化閾値が算出され、これらの値は最大輝度値と最小輝度値の間で一定の割合で分布する。その後、グレースケールのバーコード画像は、複数の2値化閾値を用いて複数回の2値化処理がなされ、複数のそれぞれの2値画像が生成される(ステップS104)。
【0021】
各2値画像は、バーコード内のロケーターを識別するため処理される(ステップS105)。既知の形状を有するロケーターを識別するために、任意の適切な技術を用いてもよい。この方法は、ロケーターの形状に依存する。例えば、
図1に示される例示的なバーコード設計ではロケーターは、同心の正方形(間に空白を設けて正方形の枠で囲んで塗りつぶした正方形)である。このバーコード設計で、水平走査線がロケーターの中心を通るとき、隣接する黒と白のセグメント長の比率(すなわち、黒と白画素のランレングス)は一定の範囲内に収まるはずである。したがって、これらの比率は、ロケーターの識別に用いれる。2値画像内のロケーターを識別する方法の一の例を、
図4を参照することで以下に詳細に説明する。本発明はこの特定の実施例に限定されることはなく、他の方法を用いてもよいことが理解される。また下記実施例では特定の値を与えるが、他の適切な値を用いてもよい。
【0022】
最初に、2値画像の全ての行の画素を数える。各行内では、黒画素(前景)および白画素(背景)の全てのランレングスが識別される(ステップS21)。先頭が黒の各連続する5つのランレングスR1からR5について、以下の比率を計算し、所定の範囲と比較する(ステップS22)。
0.5≦R2/R4≦2、2≦R3/R1≦20、および2≦R3/R5≦20
上記条件を満たせば、ランレングスR3内の黒画素に対応する位置のテンプレート画像Mの画素を黒に設定する(ステップS23)。画像Mは2値画像であり、2値のバーコード画像と同じサイズを有し、全画素は初期値として白に設定される。
【0023】
全ての行の2値のバーコード画像の処理をした後、バーコード画像のロケーターの取り得る候補位置を識別するため、連結成分分析を用いて、画像Mを分析する(ステップS24)。最初に、その中の全ての連結成分を見つけるために画像Mを分析する。2値画像の連結成分は、互いに連結する黒画素のグループである。各連結成分において、その高さと幅の比率が0.5〜2を外れる場合、これを廃棄する。画像M内の残りの連結成分については、それらの中心位置を、バーコード画像のロケーターに対応する可能性がある候補位置として識別する。
【0024】
そして、2値画像内において、ステップS24で識別した各候補位置に対して、それがバーコードロケーターであるか判定するために輪郭分析を適用する(ステップS25)。
最初に、画像M内で識別された中心位置に対応する各位置に対して、その位置周辺の輪郭を見つけるため2値画像を分析する。この位置がバーコードのロケーターに対応するのであれば、その周辺で3つの輪郭が見つかるはずである。したがって、与えられた位置で3つの輪郭が見つからなければ、その位置は廃棄する。与えられた位置の周辺で3つの輪郭が見つかれば、3つの輪郭L1、L2、およびL3の長さを取得し、これらが、0.3≦L1/L2≦0.7、および0.4≦L1/L3≦0.95のような所定の関係を満たしているかを判定する。上記条件を満たしていれば、この位置はバーコードのロケーターの位置と見なされる。そして、2値画像から、第1の輪郭L1に関連する連結成分の中心を、バーコードのロケーターの中心と判断する。
【0025】
ステップS105では識別したロケーターの位置(座標)のリストを作成する。好ましくは、各ロケーターの幾何学的な中心が、各ロケーターの位置を定義するのに使用される。ロケーターの結合リストを生成するため、全ての2値画像内で識別されたロケーターを結合する(ステップS106)。複数の2値化処理、すなわちステップS103からS106の目的は、画像内の全てのロケーター位置の識別を確実にすることである。様々な理由から、いくつかのロケーターは、いくつかの2値画像内で正しく識別できないおそれがある。例えば、照明および露出の条件に起因して、バーコード画像の明るさがバーコード全体にわたって均一でない。特定の2値化閾値にとってバーコード画像のある領域は明るすぎ、および/または、ある領域は暗すぎるため、このような領域内ではロケーターを正しく識別できない。複数の2値化処理を用いることで、各ロケーターが、いくつかの2値画像内で正しく識別されることが期待できる。したがって、ステップS106で生成したロケーターの結合リストは、バーコード内の全てのロケーターを含むことになる。いくつかのロケーターは、複数の2値画像内で識別され得る。ステップS106では、ステップS105で生成された複数のリスト内のロケーターの座標を、異なるリストのいくつかの項目が同じロケーターに対応するか判断するために比較する。
【0026】
図3Aから
図3Eに例を示す。
図3Aは、バーコード画像の一例を示している。
図3Bから
図3Eは、
図3A内のバーコード画像から、異なる2値化閾値を用いて生成した複数の2値画像を示している。この例では、バーコード画像(
図3A)の左下部は、右上部より暗い。いくつかのロケーターは他のロケーターよりも、より明確に視認でき、全てのロケーターは少なくとも1つの2値画像内で識別できる。
【0027】
ロケーターの結合リストは、ロケーターの数が所望の数(例えば16)と同じであるか確認するため検査する。確認されれば、リスト内のロケーターはバーコード内の位置に基づいてインデックスが付けられる(ステップS107)。例えば、ロケーターは、上端の行から下端の行に向けて、そして各行内では左列から右列に向けてインデックス付けられて、1から16までのインデックス値が割り当てられる。ここで、バーコードは、画像内でどのような向きを取ってもよく、ロケーターをインデックス付ける方法の選択は本質的に任意である。
【0028】
識別されたロケーターは、射影歪みの補正、照明効果の補正、バーコードデータ抽出のような、バーコード画像の後続の処理に使用できる。
【0029】
バーコード・リーダーまたはカメラを利用して、バーコード画像が取り込まれるので、バーコードが印刷または表示された印刷用紙または携帯画面は、そのバーコード・リーダーまたはカメラに対してある角度を持って保持される。その結果、画像中のバーコードは、多くの場合、正方形ではなく、射影歪みを含む。バーコード画像への射影歪みの補正は、ステップS108からS110で実行される。この処理は、ステップS107で識別されたロケーターを用いて、バーコードのオリジナルカラー画像上で実行される。
【0030】
最初に、各領域がその隅の4個のロケーターで区画化されるように、バーコードのカラー画像を複数のロケーター12を用いてより小さな領域に分割する(ステップS108)。例えば、
図1に示す4×4個のロケーターを備えたバーコードは、9個の領域に分割される。例えば、バーコード画像が取り込まれたときに印刷用紙が平面でない場合、それらの領域は異なる射影歪みを含むことになる。各領域に対して、その領域が、水平および垂直の辺を有する正方形のようなバーコードレイアウト設計で定義されたそのオリジナルの形状に変わるように変換(射影)を適用する(ステップS109)。このステップでは、領域を区画化する4個のロケーターの座標は変換、すなわちこの4個のロケーターがオリジナル形状(例えば正方形)の4つの隅への変換を計算するために用いられる。この計算された変換は、その後、全領域に適用される。その後、全ての変換された領域は空間的に結合されて、変換されたバーコード画像を生成する(ステップS110)。このバーコード画像は、正方形のようなオリジナルレイアウトの形状を有する。
【0031】
バーコード・リーダーまたはカメラを利用して、バーコード画像が取り込まれるので、バーコード全体にわたって画素輝度を不均一にする照明条件および他の条件が、画像の画素輝度に、影響を与えうる。したがって、ステップS111からS113では、ロケーター12を再び利用して、バーコード画像への画素輝度補正が適用される。この処理は、ステップS110で取得した変換済みカラーバーコード画像に適用される。
【0032】
最初に、各ロケーター12の黒画素の平均画素輝度を計算する(ステップS111)。バーコード画像の各画素位置用の照度補正関数を備える2D照度補正マップが、バーコードのロケーターの位置および平均画素輝度を用いて構成される(ステップS112)。より具体的には、各ロケーター(その中心位置で定義される)の画素位置への照度補正関数は、そのロケーターの平均画素輝度に、理想的な黒の画素値を割り当てる関数である。ロケーター以外の各画素位置では、照度補正関数は、近傍のロケーターの位置での照度補正関数に基づき、2次元の線形補間を用いて導き出される。
【0033】
好ましい実施形態では、各ロケーターの画素位置での照度補正関数は、そのロケーターの平均画素輝度を適用するときに、黒用の理想の画素値を与える乗数である。ここで理想の黒値はカラー画像の最大画素値である(例えば8ビットデータの255)。換言すると、乗数は、そのロケーターの平均画素輝度に対する理想の黒の画素値の比である。ロケーター以外の各画素位置では、照度補正関数は、その値が近傍のロケーターの位置(例えば4つの近傍のロケーター)の乗数値から2次元の線形補間により算出された乗数である。したがって、そのような2D照度補正マップは、バーコード画像と同じサイズを有する2Dマップであり、この2Dマップの画素値は上述の方法で計算された乗算値である。
【0034】
ここで、この例では白黒の定義において、理想の黒は最大画素値を有する。理想の白黒の画素値は定義の問題である。理想の黒が画素値ゼロを有するという異なる定義が用いた場合、各ロケーターの画素位置での照度補正関数は、そのロケーターの平均画素輝度にゼロを割り当てたものになる。そして、またロケーター以外の各画素位置での照度補正関数は2次元の線形補間を用いて導き出される。これは、黒の定義が最大画素輝度である例と数学的には同等である。
【0035】
照度補正マップが構成された後、それはカラーバーコード画像に適用される(ステップS113)。換言すれば、各画素位置用の照度補正関数は、その画素位置でのバーコード画像の画素値に対して適用される。上述の好ましい実施形態では、バーコード画像の各画素の画素値は、対応する2D照度補正マップの乗数によって、乗算される。この補正は、画素値の各カラーチャネルに対して個々に適用される。その結果、照度補正されたカラーバーコード画像が生成される。
【0036】
射影歪み補正(ステップS108からS110)、および照度補正(ステップS111からS113)の結果が補正済みバーコードである。
これらの補正の後、データセルのカラーデータを抽出し、この抽出されたデータをデコードするデコーディング処理が適用される(ステップS114)。
データセルのカラーデータを抽出するために、どのような適切なデコーディング方法を用いてもよい。一の例は、本願と同一所有者の2014年5月29日に出願された米国特許出願第14/290595号に記述されている。
【0037】
説明された実施形態では、16個のロケーターはバーコードの隅、境界沿い、および内側に配置されている。他のバーコード設計では、バーコードのサイズに応じて、異なる数および分布のロケーターを使用してもよい。いくつかの例では、隅に配置した4個のロケーターで足りる。
【0038】
上述のバーコード画像処理方法は、下記の特徴を有する。第1に、バーコード画像処理方法は、全てのロケーターを識別するために、グレースケール画像に対して複数の2値画像を生成する複数の2値化処理を用いる。第2に、バーコード画像処理方法はバーコード画像に照度補正を適用する。より具体的には、バーコード画像処理方法はバーコード全体にわたって配置している複数のロケーターを用いて、全バーコードに適用される照度補正マップを計算する。これらの特徴は、データセルがカラーセルで小さく、そして、多くの場合、カメラが取り込んだバーコード画像の画像品質は低いという事実によって動機付けられる。
【0039】
本明細書に示したカラーバーコード画像処理方法は、
図5に示すとおりコンピューター120のようなデータ処理装置で実施することができる。コンピューター120は、プロセッサー121、記憶装置(例えばハードディスクドライブ)122、および内部メモリー(例えばRAM)123を備える。記憶装置122は、RAM123に読み出され、プロセッサー121により実行される上記処理方法を行うソフトウェアプログを記憶する。
一の態様では、本発明はデータ処理装置により実行される方法である。他の態様では、本発明は、データ処理装置のコンピューターを制御して上記処理方法を実行するコンピュータープログラム、および内部にこれを記憶したコンピューター読み取り可能な記録媒体である。他の態様では、本発明はデータ処理装置で具現化される。
【0040】
当業者には明らかなように、本発明の思想または範囲から逸脱することなく、本発明のカラーバーコード画像処理方法およびこれに関連する装置に対して、種種の改良および変更を行うことができる。したがって、本発明は、添付の特許請求の範囲およびその均等物の範囲内の改良および変更をも包含することが意図される。