(57)【特許請求の範囲】
【請求項１】
画像における二次元のカラーバーコードをデコードする方法であって、ここで、当該バーコードは、二次元配列を形成する複数のデータセルと、既知の色を有する複数の基準セルと、を含む既知のレイアウトを有し、各データセルおよび各境界の基準セルは、複数の原色のうち一つを有し、
前記原色からなる前記基準セルの少なくともいくつかにおける画素の色強度値を平均することによって、各原色に関する基準の色強度値を算出するステップ（ａ）と、
前記基準セルの少なくともいくつかの前記色強度値を用いて、当該基準セルの当該色強度値によって形成される各入力色ベクトルを、前記基準セルが前記原色の各々である確率の値によって形成される確率ベクトルに変換する色変換行列を算出するステップ（ｂ）と、ここで、前記確率の値は、前記基準セルの前記原色については１であり、他の原色については０であり、
前記画像における前記バーコードの各画素に対して、当該画素の色強度値に前記色変換行列を適用して、前記複数の原色に関する画素−色確率を算出するステップ（ｃ）と、ここで、各々の前記画素−色確率は、前記画素が対応する前記原色である確率を示し、
前記画像の前記画素の少なくともいくつかの前記画素−色確率および前記色強度値と、前記原色の各々に関する前記基準の色強度値とを用いて、各々の前記データセルの色の決定をするステップ（ｄ）と、
前記データセルの前記色をデジタルデータに変換するステップ（ｅ）と、
を含む方法。
【請求項２】
前記ステップ（ｄ）の前に、
前記基準セルの少なくともいくつかを用いて、前記原色の各々に関するチャンネルオフセットを算出するステップをさらに含み、ここで、当該チャンネルオフセットは、前記原色の前記基準セルの設計位置と、実際の位置との間の平均の位置ずれであり、
前記ステップ（ｄ）においては、前記決定は、前記原色の各々に関する前記チャンネルオフセットをさらに用いる請求項１に記載の方法。
【請求項３】
各データセルに関して、前記ステップ（ｄ）は、
前記複数の原色に対応する複数の予測セル位置を算出するステップ（ｄ１）と、ここで、各々の前記予測セル位置は、前記対応する原色に関する前記チャンネルオフセットを前記データセルの設計位置に加えることによって算出され、
前記複数の原色に関する複数のセル−色確率を算出するステップ（ｄ２）と、ここで、各々の前記セル−色確率は、前記データセルが前記対応する原色である確率を示し、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、前記対応する原色に関する前記画素−色確率を平均することによって算出され、
前記複数のセル−色確率のうち最も高い値と二番目に高い値との間の確率の差が閾値より大きい場合、前記最も高いセル−色確率の値を有する前記原色を、前記データセルの色であると決定するステップ（ｄ３）と、
前記確率の差が前記閾値より大きくない場合、各原色に対して、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、画素の色強度値を平均することによって、対応する観察されたセルの色強度値を算出し、前記観察されたセルの色強度値と、前記原色に関する、対応する前記基準の色強度値との間の色差の値を算出し、最も小さい色差の値を有する前記原色を、前記データセルの色であると決定するステップ（ｄ４）と、
を含む請求項２に記載の方法。
【請求項４】
前記ステップ（ｄ４）において、前記色差の値は、前記観察されたセルの色強度値と、前記対応する基準の色強度値とを、基準の色空間に変換し、その後、前記基準の色空間における色差の値を算出することによって算出される請求項３に記載の方法。
【請求項５】
前記ステップ（ｂ）は、
Ｎ×４の入力行列を構成するステップと、ここで、Ｎは、前記算出において用いられる前記基準セルの数であり、前記入力行列の各行は、前記基準セルに対応し、前記基準セルの前記色強度値と、１の値とによって形成されるベクトルであり、
Ｎ×４の出力行列を構成するステップと、ここで、前記出力行列の各行は、前記入力行列の対応する前記行の同じ前記基準セルに対応し、前記基準セルに関する前記確率ベクトルであり、
前記出力行列が、前記入力行列と前記色変換行列との積になるように、前記色変換行列を計算するステップと、
を含む請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記原色は、シアン（Ｃ）、マゼンタ（Ｍ）、白（Ｗ）および黒（Ｋ）である請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記原色は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）および黒（Ｋ）である請求項１〜５のいずれか一項に記載の方法。
【請求項８】
前記色強度値は、赤（Ｒ）、緑（Ｇ）および青（Ｂ）の値である請求項１〜７のいずれか一項に記載の方法。
【請求項９】
データ処理装置を制御するためのコンピュータープログラムであって、ここで、当該コンピュータープログラムは、画像における二次元のカラーバーコードをデコードする処理をデータ処理装置に実行させるように構成され、当該バーコードは、二次元配列を形成する複数のデータセルと、既知の色を有する複数の基準セルと、を含む既知のレイアウトを有し、各データセルおよび各境界の基準セルは、複数の原色のうち一つを有し、当該デコードする処理は、
前記原色からなる前記基準セルの少なくともいくつかにおける画素の色強度値を平均することによって、各原色に関する基準の色強度値を算出するステップ（ａ）と、
前記基準セルの少なくともいくつかの前記色強度値を用いて、当該基準セルの当該色強度値によって形成される各入力色ベクトルを、前記基準セルが前記原色の各々である確率の値によって形成される確率ベクトルに変換する色変換行列を算出するステップ（ｂ）と、ここで、前記確率の値は、前記基準セルの前記原色については１であり、他の原色については０であり、
前記画像における前記バーコードの各画素に対して、当該画素の色強度値に前記色変換行列を適用して、前記複数の原色に関する画素−色確率を算出するステップ（ｃ）と、ここで、各々の前記画素−色確率は、前記画素が対応する前記原色である確率を示し、
前記画像の前記画素の少なくともいくつかの前記画素−色確率および前記色強度値と、前記原色の各々に関する前記基準の色強度値とを用いて、各々の前記データセルの色の決定をするステップ（ｄ）と、
前記データセルの前記色をデジタルデータに変換するステップ（ｅ）と、
を含むコンピュータープログラム。
【請求項１０】
前記ステップ（ｄ）の前に、前記処理は、
前記基準セルの少なくともいくつかを用いて、前記原色の各々に関するチャンネルオフセットを算出するステップをさらに含み、ここで、当該チャンネルオフセットは、前記原色の前記基準セルの設計位置と、実際の位置との間の平均の位置ずれであり、
前記ステップ（ｄ）においては、前記決定は、前記原色の各々に関する前記チャンネルオフセットをさらに用いる請求項９に記載のコンピュータープログラム。
【請求項１１】
各データセルに関して、前記ステップ（ｄ）は、
前記複数の原色に対応する複数の予測セル位置を算出するステップ（ｄ１）と、ここで、各々の前記予測セル位置は、前記対応する原色に関する前記チャンネルオフセットを前記データセルの設計位置に加えることによって算出され、
前記複数の原色に関する複数のセル−色確率を算出するステップ（ｄ２）と、ここで、各々の前記セル−色確率は、前記データセルが前記対応する原色である確率を示し、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、前記対応する原色に関する前記画素−色確率を平均することによって算出され、
前記複数のセル−色確率のうち最も高い値と二番目に高い値との間の確率の差が閾値より大きい場合、前記最も高いセル−色確率の値を有する前記原色を、前記データセルの色であると決定するステップ（ｄ３）と、
前記確率の差が前記閾値より大きくない場合、各原色に対して、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、画素の色強度値を平均することによって、対応する観察されたセルの色強度値を算出し、前記観察されたセルの色強度値と、前記原色に関する、対応する前記基準の色強度値との間の色差の値を算出し、最も小さい色差の値を有する前記原色を、前記データセルの色であると決定するステップ（ｄ４）と、
を含む請求項１０に記載のコンピュータープログラム。
【請求項１２】
前記ステップ（ｄ４）において、前記色差の値は、前記観察されたセルの色強度値と、前記対応する基準の色強度値とを、基準の色空間に変換し、その後、前記基準の色空間における色差の値を算出することによって算出される請求項１１に記載のコンピュータープログラム。
【請求項１３】
前記ステップ（ｂ）は、
Ｎ×４の入力行列を構成するステップと、ここで、Ｎは、前記算出において用いられる前記基準セルの数であり、前記入力行列の各行は、前記基準セルに対応し、前記基準セルの前記色強度値と、１の値とによって形成されるベクトルであり、
Ｎ×４の出力行列を構成するステップと、ここで、前記出力行列の各行は、前記入力行列の対応する前記行の同じ前記基準セルに対応し、前記基準セルに関する前記確率ベクトルであり、
前記出力行列が、前記入力行列と前記色変換行列との積になるように、前記色変換行列を計算するステップと、
を含む請求項９〜１２のいずれか一項に記載のコンピュータープログラム。
【請求項１４】
画像における二次元のカラーバーコードをデコードするデータ処理装置であって、ここで、当該バーコードは、二次元配列を形成する複数のデータセルと、既知の色を有する複数の基準セルと、を含む既知のレイアウトを有し、各データセルおよび各境界の基準セルは、複数の原色のうち一つを有し、
前記原色からなる前記基準セルの少なくともいくつかにおける画素の色強度値を平均することによって、各原色に関する基準の色強度値を算出する基準色強度値算出部と、
前記基準セルの少なくともいくつかの前記色強度値を用いて、当該基準セルの当該色強度値によって形成される各入力色ベクトルを、前記基準セルが前記原色の各々である確率の値によって形成される確率ベクトルに変換する色変換行列を算出する色変換行列算出部と、ここで、前記確率の値は、前記基準セルの前記原色については１であり、他の原色については０であり、
前記画像における前記バーコードの各画素に対して、当該画素の色強度値に前記色変換行列を適用して、前記複数の原色に関する画素−色確率を算出する適用部と、ここで、各々の前記画素−色確率は、前記画素が対応する前記原色である確率を示し、
前記画像の前記画素の少なくともいくつかの前記画素−色確率および前記色強度値と、前記原色の各々に関する前記基準の色強度値とを用いて、各々の前記データセルの色の決定をする決定部と、
前記データセルの前記色をデジタルデータに変換する変換部と、
を有するデータ処理装置。
【請求項１５】
前記基準セルの少なくともいくつかを用いて、前記原色の各々に関するチャンネルオフセットを算出するチャンネルオフセット算出部をさらに有し、ここで、当該チャンネルオフセットは、前記原色の前記基準セルの設計位置と、実際の位置との間の平均の位置ずれであり、
前記決定部における前記決定は、前記原色の各々に関する前記チャンネルオフセットをさらに用いる請求項１４に記載のデータ処理装置。
【請求項１６】
各データセルに関して、前記決定部は、
前記複数の原色に対応する複数の予測セル位置を算出し、ここで、各々の前記予測セル位置は、前記対応する原色に関する前記チャンネルオフセットを前記データセルの設計位置に加えることによって算出され、
前記複数の原色に関する複数のセル−色確率を算出し、ここで、各々の前記セル−色確率は、前記データセルが前記対応する原色である確率を示し、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、前記対応する原色に関する前記画素−色確率を平均することによって算出され、
前記複数のセル−色確率のうち最も高い値と二番目に高い値との間の確率の差が閾値より大きい場合、前記最も高いセル−色確率の値を有する前記原色を、前記データセルの色であると決定し、
前記確率の差が前記閾値より大きくない場合、各原色に対して、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、画素の色強度値を平均することによって、対応する観察されたセルの色強度値を算出し、前記観察されたセルの色強度値と、前記原色に関する、対応する前記基準の色強度値との間の色差の値を算出し、最も小さい色差の値を有する前記原色を、前記データセルの色であると決定するように構成される請求項１５に記載のデータ処理装置。
【請求項１７】
前記決定部において、前記色差の値は、前記観察されたセルの色強度値と、前記対応する基準の色強度値とを、基準の色空間に変換し、その後、前記基準の色空間における色差の値を算出することによって算出される請求項１６に記載のデータ処理装置。
【請求項１８】
前記色変換行列算出部は、
Ｎ×４の入力行列を構成し、ここで、Ｎは、前記算出において用いられる前記基準セルの数であり、前記入力行列の各行は、前記基準セルに対応し、前記基準セルの前記色強度値と、１の値とによって形成されるベクトルであり、
Ｎ×４の出力行列を構成し、ここで、前記出力行列の各行は、前記入力行列の対応する前記行の同じ前記基準セルに対応し、前記基準セルに関する前記確率ベクトルであり、
前記出力行列が、前記入力行列と前記色変換行列との積になるように、前記色変換行列を計算するように構成される請求項１４〜１７のいずれか一項に記載のデータ処理装置。
【請求項１９】
請求項９〜１３のいずれか一項に記載のコンピュータープログラムを格納したコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二次元（２Ｄ）カラーバーコードに関し、特に、高容量２Ｄカラーバーコードの設計およびデコードに関する。
【背景技術】
【０００２】
バーコードは、光学的に機械読み取り可能なデータの表現である。２Ｄカラーバーコードは、二次元状、たとえば、水平および垂直の両方向に配置される小さい四角または矩形のセルからなり、各セルに対して一つの色が用いられる。異なる色は、異なるデータ値を表す。バーコードのデータ容量と、セル数と、色の数との関係は、以下のように表現できる。
【０００３】
データ容量＝（セル数）×ｌｏｇ２（色表現の数）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
小さいセルサイズとより多くの色表現とを用いるバーコードの設計は、対象の領域において比較的高いデータ容量を実現できる。しかし、様々な要因がセルの小型化を制限する。
【０００５】
デジタルプリンターのチャンネルオフセットは、ハードウエアの欠陥によって生じる不可避の影響である。チャンネルとは、プリンターによって使用される異なる原色（たとえば、シアン、マゼンタ、イエローおよび黒、またはＣＭＹＫ）のことを言い、チャンネルオフセットとは、同じ位置の値を有する画素が異なる原色を使用して印刷される場合、印刷される画素の実際の位置が正確に同一にはならないことを言う。オフセット量は、全体的（すなわち、ページ全体にわたって同じオフセット）、および／または、局所的（すなわち、ページの異なる領域でオフセット量が異なる）になりうる。バーコードセルが小さい場合、チャンネルオフセットの影響は、結果に顕著に作用し、セルの位置をずらしたり、隣接するセルの間隔を変化させたりする。
【０００６】
また、セルの色濃度も、セル領域のサイズに依存する。狭い領域の色濃度は、広い領域のものと比較すると相対的に低いため、小さいセルを有するバーコートに関する色の判断において、困難を生じうる。
【０００７】
さらに、異なるプリンターおよびスキャナーの動作状態は、変化しやすい。異なるプリンターは異なる出力を有し、異なるスキャナーも同様である。動作状態は、時間に伴っても変化し、異なる時間における一つのプリンターまたは一つのスキャナーからの出力も変化しうる。たとえば、２Ｄカラーバーコードが、用紙上に印刷され、あるいは、携帯機器の画面などの表示画面上に表示され、カメラまたは（フラットベッド型のスキャナーとは対照的な）カメラベースのバーコードリーダーによって読み取られる場合、透視投影および不均一な照明は、バーコードをデコードすることに対する課題を示しうる。
【０００８】
本発明の実施形態は、２Ｄカラーバーコードのレイアウトの設計と、上述した様々な要因の影響を低減するようにバーコードをデコードできるアルゴリズムとを提供する。
【０００９】
本発明の目的は、高容量２Ｄカラーバーコードの設計と、プリンターおよびスキャナー／カメラの物理的な制限の下で十分に機能する、バーコードをデコードする方法とを提供することである。
【課題を解決するための手段】
【００１０】
本発明の追加の特徴および利点は、以下の記載において説明され、その一部は当該記載から明らかであり、または、本発明の実施によって理解される。本発明の目的および他の利点は、明細書、特許請求の範囲および添付する図面で詳細に示された構成によって実現され、達成される。
【００１１】
これらの目的および／または他の目的を達成するために、具体化され、広く記載されるように、本発明は、画像における二次元カラーバーコードをデコードする方法を提供し、ここで、当該バーコードは、二次元配列を形成する複数のデータセルと、既知の色を有する複数の基準セルと、を含む既知のレイアウトを有し、各データセルおよび各境界の基準セルは、複数の原色のうち一つを有し、当該デコードする方法は、前記原色からなる前記基準セルの少なくともいくつかにおける画素の色強度値を平均することによって、各原色に関する基準の色強度値を算出するステップ（ａ）と、前記基準セルの少なくともいくつかの前記色強度値を用いて、当該基準セルの当該色強度値によって形成される各入力色ベクトルを、前記基準セルが前記原色の各々である確率の値によって形成される確率ベクトルに変換する色変換行列を算出するステップ（ｂ）と、ここで、前記確率の値は、前記基準セルの前記原色については１であり、他の原色については０であり、前記画像における前記バーコードの各画素に対して、当該画素の色強度値に前記色変換行列を適用して、前記複数の原色に関する画素−色確率を算出するステップ（ｃ）と、ここで、各々の前記画素−色確率は、前記画素が対応する前記原色である確率を示し、前記画像の前記画素の少なくともいくつかの前記画素−色確率および前記色強度値と、前記原色の各々に関する前記基準の色強度値とを用いて、各々の前記データセルの色の決定をするステップ（ｄ）と、前記データセルの前記色をデジタルデータに変換するステップ（ｅ）と、を含む。
【００１２】
前記方法は、前記ステップ（ｄ）の前に、前記基準セルの少なくともいくつかを用いて、前記原色の各々に関するチャンネルオフセットを算出するステップをさらに含んでもよく、ここで、当該チャンネルオフセットは、前記原色の前記基準セルの設計位置と、実際の位置との間の平均の位置ずれであり、前記ステップ（ｄ）においては、前記決定は、前記原色の各々に関する前記チャンネルオフセットをさらに用いる。
【００１３】
上記の方法では、各データセルに関して、前記ステップ（ｄ）は、前記複数の原色に対応する複数の予測セル位置を算出するステップ（ｄ１）と、ここで、各々の前記予測セル位置は、前記対応する原色に関する前記チャンネルオフセットを前記データセルの設計位置に加えることによって算出され、前記複数の原色に関する複数のセル−色確率を算出するステップ（ｄ２）と、ここで、各々の前記セル−色確率は、前記データセルが前記対応する原色である確率を示し、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、前記対応する原色に関する前記画素−色確率を平均することによって算出され、前記複数のセル−色確率のうち最も高い値と二番目に高い値との間の確率の差が閾値より大きい場合、前記最も高いセル−色確率の値を有する前記原色を、前記データセルの色であると決定するステップ（ｄ３）と、前記確率の差が前記閾値より大きくない場合、各原色に対して、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、画素の色強度値を平均することによって、対応する観察されたセルの色強度値を算出し、前記観察されたセルの色強度値と、前記原色に関する、対応する前記基準の色強度値との間の色差の値を算出し、最も小さい色差の値を有する前記原色を、前記データセルの色であると決定するステップ（ｄ４）と、を含んでもよい。
【００１４】
前記原色は、シアン（Ｃ）、マゼンタ（Ｍ）、白（Ｗ）および黒（Ｋ）であってもよく、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）および黒（Ｋ）であってもよい。前記色強度値は、赤（Ｒ）、緑（Ｇ）および青（Ｂ）の値であってもよい。
【００１５】
他の態様では、本発明は、データ処理装置を制御するための、コンピュータープログラム、および、コンピュータープログラムを内部に格納したコンピューター読み取り可能な記録媒体（たとえば、メモリーまたは記憶装置）を提供し、当該コンピュータープログラムは、上記の方法をデータ処理装置に実行させるように構成される。
【００１６】
他の態様では、本発明は、画像における二次元のカラーバーコードをデコードするデータ処理装置を提供し、ここで、当該バーコードは、二次元配列を形成する複数のデータセルと、既知の色を有する複数の基準セルと、を含む既知のレイアウトを有し、各データセルおよび各境界の基準セルは、複数の原色のうち一つを有し、当該装置は、前記原色からなる前記基準セルの少なくともいくつかにおける画素の色強度値を平均することによって、各原色に関する基準の色強度値を算出する基準色強度値算出部と、前記基準セルの少なくともいくつかの前記色強度値を用いて、当該基準セルの当該色強度値によって形成される各入力色ベクトルを、前記基準セルが前記原色の各々である確率の値によって形成される確率ベクトルに変換する色変換行列を算出する色変換行列算出部と、ここで、前記確率の値は、前記基準セルの前記原色については１であり、他の原色については０であり、前記画像における前記バーコードの各画素に対して、当該画素の色強度値に前記色変換行列を適用して、前記複数の原色に関する画素−色確率を算出する適用部と、ここで、各々の前記画素−色確率は、前記画素が対応する前記原色である確率を示し、前記画像の前記画素の少なくともいくつかの前記画素−色確率および前記色強度値と、前記原色の各々に関する前記基準の色強度値とを用いて、各々の前記データセルの色の決定をする決定部と、前記データセルの前記色をデジタルデータに変換する変換部と、を有する。
【００１７】
前記データ処理装置は、前記基準セルの少なくともいくつかを用いて、前記原色の各々に関するチャンネルオフセットを算出するチャンネルオフセット算出部をさらに有してもよく、ここで、当該チャンネルオフセットは、前記原色の前記基準セルの設計位置と、実際の位置との間の平均の位置ずれであり、前記決定部における前記決定は、前記原色の各々に関する前記チャンネルオフセットをさらに用いる。
【００１８】
上記のデータ処理装置では、各データセルに関して、前記決定部は、前記複数の原色に対応する複数の予測セル位置を算出し、ここで、各々の前記予測セル位置は、前記対応する原色に関する前記チャンネルオフセットを前記データセルの設計位置に加えることによって算出され、前記複数の原色に関する複数のセル−色確率を算出し、ここで、各々の前記セル−色確率は、前記データセルが前記対応する原色である確率を示し、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、前記対応する原色に関する前記画素−色確率を平均することによって算出され、前記複数のセル−色確率のうち最も高い値と二番目に高い値との間の確率の差が閾値より大きい場合、前記最も高いセル−色確率の値を有する前記原色を、前記データセルの色であると決定し、前記確率の差が前記閾値より大きくない場合、各原色に対して、前記対応する原色に関する前記予測セル位置のセルサイズ領域に位置する画素にわたって、画素の色強度値を平均することによって、対応する観察されたセルの色強度値を算出し、前記観察されたセルの色強度値と、前記原色に関する、対応する前記基準の色強度値との間の色差の値を算出し、最も小さい色差の値を有する前記原色を、前記データセルの色であると決定するように構成されてもよい。
【００１９】
前記決定部において、前記色差の値は、前記観察されたセルの色強度値と、前記対応する基準の色強度値とを、基準の色空間に変換し、その後、前記基準の色空間における色差の値を算出することによって算出されてもよい。
【００２０】
上記のデータ処理装置では、前記色変換行列算出部は、Ｎ×４の入力行列を構成し、ここで、Ｎは、前記算出において用いられる前記基準セルの数であり、前記入力行列の各行は、前記基準セルに対応し、前記基準セルの前記色強度値と、１の値とによって形成されるベクトルであり、Ｎ×４の出力行列を構成し、ここで、前記出力行列の各行は、前記入力行列の対応する前記行の同じ前記基準セルに対応し、前記基準セルに関する前記確率ベクトルであり、前記出力行列が、前記入力行列と前記色変換行列との積になるように、前記色変換行列を計算するように構成されてもよい。
【００２１】
上記の一般的な説明および以下の詳細な説明は、具体的で例示的であり、特許請求の範囲に記載された本発明のさらなる説明を提供することを意図すると理解される。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係るカラーバーコードのレイアウトを示す図である。
【図２Ａ】本発明の実施形態に係る２Ｄカラーバーコードをデコードする方法を概略的に示す図である。
【図２Ｂ】本発明の実施形態に係る２Ｄカラーバーコードをデコードする方法を概略的に示す図である。
【図３】本発明の実施形態が実行されうるデータ処理装置を概略的に示す図である。
【発明を実施するための形態】
【００２３】
本発明の一態様は、媒体上に印刷され、または、携帯機器の画面上に表示される２Ｄカラーバーコードのレイアウト設計である。本発明の他の態様は、２Ｄカラーバーコードをデコードする方法である。２Ｄカラーバーコードの設計は、バーコードの処理およびデコードを容易にするという特徴を含む。
【００２４】
図１は、本発明の実施形態に係るカラーバーコードの一例のレイアウトを示す。カラーバーコードは、二次元配列を形成する複数のデータセル１１を含み、各セルは、複数の色のうち一つを有する。好ましい実施形態では、複数の色は、シアン（Ｃ）、マゼンタ（Ｍ）、白（Ｗ）（すなわち、印刷されない）、および黒（Ｋ）であり、各セルは、２ビットの情報を表現できる。ＣＭＹＫは、典型的なプリンターで使用される原色であり、それらの各々は、一つの着色インクまたはトナーによって印刷され、カラーチャンネルと呼ばれる。図１のカラーバーコードのレイアウトでは、原色のイエロー（Ｙ）が、白（Ｗ）すなわち印刷されないセルで置き換えられている。この場合は、色のＣＭＷＫが、原色およびカラーチャンネルと呼ばれる。したがって、バーコードの各セルは、一つのインクを用いて印刷されるか、印刷されないかであり、各セルの色は均一になる。各セルは、所定のサイズを有し、所定の間隔で離れている。好ましくは、セルは、四角形であり、グリッド上の垂直方向および水平方向に配列される列および行を形成し、行の距離と列の距離とは等しい。一つの特定の実施形態では、セルサイズは、３×３画素であり、セルの間隔（白いスペースの幅）は、水平および垂直の両方向において２画素である。この例では、グリッドは正方格子である。あるいは、グリッドは長方形格子であってもよい。
【００２５】
バーコードは、当該バーコードの４つの角において、当該バーコードの境界に沿って、および、当該バーコードの内部において位置する複数のロケーター１２を有する。図示された例では、１６個のロケーター１２が与えられ、４×４の配列を形成し、４つのロケーターが角に位置し、８つが境界に沿って位置し、４つがバーコードの内部に位置する。後で確認するように、ロケーター１２は、バーコード全体における位置の基準を与えることができ、画像の処理およびデコードを補助する。ロケーターは、好ましくは黒であり、データセルより十分に大きく、画像においてそれらを比較的特定しやすくする。図示された実施形態では、各ロケーターは、塗りつぶした黒い正方形を、白いスペースで囲んで、さらに黒の境界で囲んで形成され、当該正方形は１３×１３画素（すなわち、データセルの３列および３行と同じ幅）であり、当該白いスペースは７画素幅であり（すなわち、データセルの列または行が、データセル領域において削除されると作られる白いスペースに等しい）、黒の境界は３画素幅（すなわち、データセルと同じ幅）である。したがって、各ロケーター１２は、３３×３３画素のサイズであり、データセル配列における７×７のデータセルに等しいスペースを占める。
【００２６】
また、バーコードは、ロケーターの間に、バーコードの４つの境界に沿って位置する、複数の境界基準セル１３も有する。境界基準セル１３は、所定の色の順序（たとえば、図示された例において、Ｃ、Ｍ、Ｋを繰り返す順序）で配置される、シアン、マゼンタおよび黒の基準セルを含む。言い換えれば、各境界基準セルの色は既知である。基準セルは、デコード処理で有用な、チャンネルオフセットの（全体的および局所的な）情報と、色の情報とを提供できる。一実施形態では、境界基準セル１３がデータセル１１と同じサイズを有することにより、これらの基準セルの色密度は、データセルのものと同様になる。
【００２７】
境界基準セル１３は、基準セルが重複する可能性を避けるために、内側のデータセル配列におけるセルの分離よりも大きい間隔で、ロケーター１２およびデータセル１１から互いに離れている。図示した例では、二つの隣接する基準セルの間隔（白いスペース）、および、基準セルと隣接するデータセルとの間隔（白いスペース）は、７画素である（すなわち、データセルの列または行が、データセル領域において削除されると作られる白いスペースに等しい）。ロケーター１２および隣接する基準セル１３は、この間隔で、または、より大きい間隔で離れている。
【００２８】
角にある４つのロケーターのうち一つが他から区別されうるように、バーコードに非対称性が設計されてもよく、このことは、デコード処理において有用である。これは、任意の適切な方法で達成されてもよい。たとえば、一つの角のロケーターが、他とは異なる形状を有してもよい。また、非対称性は、境界に沿った基準セルの、異なる色の順序または非対称の色の順序を用いることによって、バーコードに設計されてもよい。同様に、バーコードのデータ長およびＥＣＣなどをエンコードする検証セルなど、他の追加の特徴がバーコードに設計されてもよい。
【００２９】
一つの特定の例では、バーコード用のグリッドは、１２４列および１２４行を有する。白いスペースを除いた、ロケーターおよび基準セル、約１３５００のデータセルが、各バーコードに情報を格納するために用いられる。複数のバーコードが、たとえばそれらの間に２０画素の白いスペースを用いて、同じページ上に互いに隣接して配置されうる。６００ｄｐｉの印刷解像度に対して、バーコードは、約１．０５×１．０５平方インチのスペースを要する。したがって、レターサイズのページ上には、７×１０までのバーコードが配置されてもよい。
【００３０】
図示された実施形態では、１６個のロケーターが、角において、境界に沿って、および、バーコードの内部において位置する。他のバーコードの設計では、バーコードのサイズによって、異なる数および分布のロケーターが用いられてもよい。いくつかの例では、バーコードの角に位置する４つのロケーターで十分であってもよい。
【００３１】
図２Ａおよび図２Ｂを参照して、上記の設計を有するバーコードを処理するための、バーコード画像の処理方法を以下に記載する。まず、カラーバーコード画像をキャプチャーする（ステップＳ１１）。バーコードは、用紙上に印刷され、または、携帯機器の画面などの表示画面上に表示される。バーコード画像は、カメラ、カメラベースのバーコードリーダー、スキャナーなどを使用してキャプチャーされてもよい。
【００３２】
次に、バーコード画像におけるロケーター１２を特定する（ステップＳ１２）。ロケーターを特定するために、任意の適切な技術が用いられてもよい。一例では、カラーバーコード画像は、グレースケール画像に変換されてから二値化され、ロケーターは、二値画像から特定される。
【００３３】
射影ひずみと、不均一な画素強度とに対する補正を、元のカラーバーコード画像に対して任意に実行する（ステップＳ１３）。射影ひずみに対する補正は、バーコード画像がカメラまたはカメラベースのバーコードリーダーを使用してキャプチャーされた場合や、バーコードを含む印刷用紙または携帯画面が、カメラまたはバーコードリーダーに対して斜めに保持されていた場合には特に、射影ひずみによって画像におけるバーコードの形状が元の形状（たとえば正方形）とは異なる可能性があるため、望ましい。射影補正を実行するために、任意の適切なアルゴリズムが用いられてもよい。一実装では、この処理は、ステップＳ１２において特定されたロケーターを用いて、４つのロケーターをそれぞれ含む複数のより小さい領域にバーコード画像を分割することによって実行される。射影補正は、それぞれのより小さい領域に対して、それらを歪んでいない形状（たとえば正方形）に変形するために適用され、その後、より小さい領域は、再度バーコードに組み合わせられる。この補正されたバーコード画像は、元のバーコードのレイアウトに近い形状を有する。
【００３４】
不均一な画素強度に対する補正は、バーコード画像の画素強度が、バーコードにわたって不均一になる画素強度を生じうる照明条件によってしばしば影響されうるため、カメラまたは（スキャナーにかわる）カメラベースのバーコードリーダーを用いてキャプチャーされたバーコード画像に対しては、重要となりうる。照明補正を行うために、任意の適切なアルゴリズムが用いられてもよい。一実装では、この処理は、ステップＳ１２において特定されたロケーターを用いて、まず、ロケーター１２の観測された画素の平均強度を推定し、その後、それらを用いて二次元の照明補正マップを算出することによって実行される。ロケーター１２の位置における補正関数は、ロケーターの測定強度が理想的な黒の画素値に変換されるようなものであり、ロケーター以外の位置における補正関数は、それから二次元補間によって算出される。
【００３５】
これらの補正の後、補正されたカラーバーコード画像に対してデコード処理を適用し、データセルの色のデータを抽出する（ステップＳ１４〜Ｓ２０）。
【００３６】
まず、バーコードのグリッド点の位置を、ロケーターを用いて算出する（ステップＳ１４）。上述したように、全ての基準セルおよびデータセルの設計された位置（設計位置）は、グリッド上に位置する（たとえば、セルの中心画素がグリッド点上にある）。
【００３７】
基準セル１３を用いて、各原色チャンネル（たとえばＣ、Ｍ、Ｗ、Ｋ）に関するチャンネルオフセットを算出する（ステップＳ１５）。上述したように、チャンネルオフセットとは、プリンターのハードウェア要因によって生じる、異なる原色を用いて印刷された画素の位置ずれのことであり、チャンネルオフセットは、それらの色によって異なる量だけ（グリッド点上の）バーコードセルの設計位置からずれた、バーコードセルの実際の印刷位置をもたらす。同じ色のセルは、ほぼ同じ量だけずれる傾向がある。このようなオフセットは、バーコードセルのサイズと比較して、一般的に小さい。基準セル１３は既知の色を有するため、それらの実際の印刷位置が、各カラーチャンネルに関するオフセットを推定するために、測定され、それらの設計位置と比較されうる。好ましい実施形態では、同じ色の全ての基準セルの位置ずれが平均され、そのカラーチャンネルに関するチャンネルオフセットが算出される。このようなチャンネルオフセットは、バーコード全体に関する包括的な値である。シアンおよびマゼンタの色に関するチャンネルオフセットは、このように算出される。黒のロケーターセル１２は、セルの設計位置を算出するための位置基準として用いられるため、黒のチャンネルは、当然にゼロオフセットを有することに留意すべきである。
【００３８】
ステップＳ１５においてチャンネルオフセットを算出する際、基準セル１３の実際の位置は、任意の適切な方法を用いて取得されてもよい。たとえば、一つの方法としては、基準セルの各列および各行を、その境界に平行な軸に射影し、射影プロファイルにおけるピークおよび谷を特定することが挙げられる。射影された水平方向の境界は、基準セルの水平方向のずれを与え、射影された垂直方向の境界は、基準セルの垂直方向のずれを与える。
【００３９】
各基準セル１３の色強度（ＲＧＢ値）を算出する（ステップＳ１６）。各基準セルに対して、カラーチャンネルに関するずれ位置に位置するセルサイズ領域（たとえば、３×３のサイズの画素）における画素の平均のＲ値、Ｇ値およびＢ値が、その基準セルのＲ値、Ｇ値およびＢ値として算出される。ここで、画像を印刷するためにプリンターによって使用される原色は、ＣＭＹＫであり、画像をスキャンするためにスキャナー／カメラによって使用される原色は、ＲＧＢであることに留意すべきである。
【００４０】
ステップＳ１６では、図１における基準シンボル１３Ａによって示されるような、隣接するＣ、ＭまたはＫの基準セルの間にあるセルサイズの白いスペースは、白い基準セルとみなされ、それらの色強度（ＲＧＢ値）も同様に算出される。
【００４１】
それぞれのカラーチャンネルの全ての基準セルの色強度（ＲＧＢ）値を平均することによって、カラーチャンネルＣ、Ｍ、ＷおよびＫの各々に関する基準色を算出する（ステップＳ１７）。
【００４２】
個々の基準セルの色強度を用いて、４×４の色変換行列を算出する（ステップＳ１８）。より具体的には、色変換行列は、以下の式から算出される。
【００４３】
【数１】
0006335214.tif 000002
【００４４】
ここで、左辺の第１行列は入力行列であり、「［４×４］」を示す左辺の第２行列は色変換行列であり、右辺の行列は出力行列である。
【００４５】
入力行列は、以下の通り、個々の基準セルの色強度からなるＮ×４の行列であり、Ｎは、この計算において用いられる基準セルの総数である。入力行列の各行は、基準セルのＲ、Ｇ、Ｂ（色強度）値と、最後の列における１の値とによって形成されるベクトルである。上記の式では、「Ｃ１」、「Ｃ２」…は、第１、第２、…のシアンの基準セルを示し、「Ｍ１」、「Ｍ２」…は、第１、第２、…のマゼンタの基準セルを示し、「Ｗ１」、「Ｗ２」…は、第１、第２、…の白の基準セルを示し、「Ｋ１」、「Ｋ２」…は、第１、第２、…の黒の基準セルを示す。
【００４６】
出力行列は、入力行列と同じサイズ（すなわちＮ×４）を有し、各行は、入力行列の対応する行の同じ基準セルに対応する。出力行列の各行は、対応する基準セルの色のラベルベクトル（確率ベクトルとも呼ばれる）であり、たとえば、シアンについては［１，０，０，０］、マゼンタについては［０，１，０，０］、白については［０，０，１，０］、および、黒については［０，０，０，１］である。
【００４７】
入力行列と出力行列との間の色変換行列を計算するために、擬似逆方法が上記の式に適用される。
【００４８】
上記の式から、色変換行列は、基準セルの色値（色強度値）によって形成される各々の入力色ベクトルを、基準セルが原色の各々である確率の値によって形成される確率ベクトルに変換する行列であり、確率の値は、基準セルの原色については１であり、他の原色については０であることがわかる。
【００４９】
そして、バーコード画像の各画素のＲＧＢ値に色変換行列を適用して、シアン、マゼンタ、白および黒である画素の確率を算出する（ステップＳ１９）。より具体的には、画素のＲ、Ｇ、Ｂ値と１の値とによって形成されるベクトル［Ｒ，Ｇ，Ｂ，１］が、４×４の変換行列によって乗算され、Ｃ、Ｍ、ＷおよびＫの色である画素の４つの確率をそれぞれ示す、確率ベクトル［ＰＣ，ＰＭ，ＰＷ，ＰＫ］が算出される。これらの確率を、画素−色確率と呼ぶ。
【００５０】
これらの画素−色確率を用いて、各データセルの色を決定する（ステップＳ２０）。各データセルに適用されるこの決定ステップを、図２Ｂを参照して詳細に説明する。
【００５１】
まず、各カラーチャンネルに関するデータセルの予測されうる位置を算出する（ステップＳ３１）。上述したチャンネルオフセットによって、データセルは、セルの色に依存する３つの予測されうる位置である、色がシアンである場合の第１のずれ位置、色がマゼンタである場合の第２のずれ位置、色が白または黒である場合のずれなしの位置（たとえばグリッド点の位置）に、実際に位置しうる。第１および第２のずれ位置は、ステップＳ１５において取得されたチャンネルオフセットから算出される。言い換えれば、セルは、特定の色である場合、そのカラーチャンネルに対応する予測位置に位置するはずである。
【００５２】
二つの基準が、セルの色の決定に用いられる。第１の基準は、特定の色（Ｃ、Ｍ、ＷまたはＫ）のセルが、そのカラーチャンネルに関して予測された（ずれあり、または、ずれなしの）実際の位置に存在する確率に関する。したがって、４つの確率（セル−色確率と呼ぶ）、すなわち、セルがシアンの第１のずれ位置にある確率と、セルがマゼンタの第２のずれ位置にある確率と、セルが白のずれなしの位置にある確率と、セルが黒のずれなしの位置にある確率とを、４つのカラーチャンネル（Ｃ、Ｍ、ＷおよびＫ）に関して計算する（ステップＳ３２）。各セル−色確率は、そのカラーチャンネルに対応する予測位置に位置するセルサイズ領域（たとえば３×３画素）における複数の画素の、特定の色に関する画素−色確率（すなわち、ＰＣ、ＰＭ、ＰＷまたはＰＫ）の平均である。たとえば、（シアンに関する）第１のずれ位置において、その位置のセルサイズ領域における画素について、シアンに関する画素−色確率ＰＣが平均され、シアンに関するセル−色確率（すなわち、シアンのデータセルが実際にそのずれ位置に位置する確率）が算出される。Ｍ、ＷおよびＫのセル−色確率も、同様に算出される。
【００５３】
そして、Ｃ、Ｍ、ＷおよびＫに関する４つのセル−色確率のうち、最も高い確率と二番目に高い確率との間の差が閾値より大きい場合（ステップＳ３３において「Ｙｅｓ」）、最も高いセル−色確率を有する色が、そのデータセルの色であると決定される（ステップＳ３４）。
【００５４】
他方で、最も高いセル−色確率と二番目に高いセル−色確率との間の差が十分に大きくない場合（ステップＳ３３において「Ｎｏ」）、４つのカラーチャンネルに対して、観察されたセルの色（観察セル色）と基準色との間の色の差に基づく第２の基準が用いられ、データセルの色が決定される（ステップＳ３５〜Ｓ３７）。具体的には、各カラーチャンネルに対応する予測位置において、その位置のセルサイズ領域における画素のＲ、Ｇ、Ｂ（色強度）値を平均することによって、観察セル色を算出する（ステップＳ３５）。各カラーチャンネルに対して、そのチャンネルの予測位置における観察セル色と、そのカラーチャンネルに関する基準色との間の色差を算出する（ステップＳ３６）。各カラーチャンネルに関する基準色は、ステップＳ１７で算出された値（すなわち、そのカラーチャンネルの全ての基準セルの平均Ｒ、Ｇ、Ｂ（色強度）値）である。したがって、Ｃ、Ｍ、ＷおよびＫのカラーチャンネルに関する４つの色差が、ステップＳ３６において計算される。４つの色差が互いに比較され、最も小さい色差を有するカラーチャンネルが、データセルの色であると決定される（ステップＳ３７）。
【００５５】
ステップＳ３６において、これらの二つの色の間の色差は、二組のＲＧＢ値から算出されるスカラー値である。任意の適切な色差の定義が用いられてもよい。たとえば、ＲＧＢ値は、最初にＣＩＥ  Ｌ＊ａ＊ｂ＊またはＣＩＥ  Ｌ＊ｕ＊ｖ＊などの別の色空間に変換されてもよく、色差は、ＣＩＥＤＥ９４（２：１：１）などの既知の式を用いて算出されてもよい。
【００５６】
上述した方法では、（印刷されない）白は、イエローの代わりに原色の一つとして用いられる。本方法は、イエローが原色として用いられた場合でも適用できる。
【００５７】
ステップＳ３４またはＳ３６からセルの色が決定されると、当該セルの色を、デジタルデータに変換する（図２ＡのステップＳ２１）。バーコードは、全てのデータセルに格納されたデジタルデータを抽出することによって、デコードされる。
【００５８】
本明細書に記載するカラーバーコード画像の処理方法は、図３に示すようなコンピューター１２０などのデータ処理システムにおいて実行されうる。コンピューター１２０は、処理装置１２１と、記憶装置（たとえばハードディスクドライブ）１２２と、内部メモリー（たとえばＲＡＭ）１２３とを含む。記憶装置１２２は、本方法を実行するために、ＲＡＭ１２３に読み出され、処理装置１２１によって実行されるソフトウェアプログラムを記憶する。一の態様では、本発明は、データ処理システムによって実行される方法である。他の態様では、本発明は、本方法を実行する目的でデータ処理装置を制御するための、コンピュータープログラム、および、コンピュータープログラムを内部に格納したコンピューター読み取り可能な記録媒体である。他の態様では、本発明は、データ処理装置である。データ処理装置は、コンピュータープログラムを読み込んで実行することによって、基準色強度値算出部、色変換行列算出部、適用部、決定部、変換部およびチャンネルオフセット算出部として機能するように構成される。他の態様では、本発明は、データ処理システムにおいて具現化される。
【００５９】
当業者には明らかなように、本発明の思想または範囲から逸脱することなく、本発明のカラーバーコード画像の処理方法および関連する装置において、種々の改良および変更を行うことができる。したがって、本発明は、添付する特許請求の範囲およびその均等物の範囲に入る改良および変更を包含することを意図する。
【図１】
0006335214.tif 000003
【図２Ａ】
0006335214.tif 000004
【図２Ｂ】
0006335214.tif 000005
【図３】
0006335214.tif 000006