(57)【要約】【課題】読取の誤認識を低減させること。【解決手段】所定の情報を表示する読取可能に形成されたコードであり、少なくとも二つの領域を含み、各領域には少なくとも一つのセルを含むが、前記情報の内容によって色彩または濃淡が異にエンコーディングされて表示される、少なくとも一つのデータセルで形成されたデータ領域と、前記データセルに表示された色彩または濃淡が前記情報の内容に対応して適合に表現されているかどうかを判別するために提供される、少なくとも一つのパリティで形成されたパリティ領域とを含み、前記パリティ領域を複数有するカラーコードシステム。【選択図】なし【特許請求の範囲】
【請求項１】
所定の情報を表示する読取可能に形成されたコードであり、少なくとも二つの領域を含み、各領域には少なくとも一つのセルを含むが、前記情報の内容によって色彩または濃淡が異にエンコーディングされて表示される、少なくとも一つのデータセルで形成されたデータ領域と、前記データセルに表示された色彩または濃淡が前記情報の内容に対応して適合に表現されているかどうかを判別するために提供される、少なくとも一つのパリティで形成されたパリティ領域とを含み、前記パリティ領域を複数有するカラーコードシステム。
【請求項２】
行パリティを最下段の行に配置する請求項１記載のカラーコードシステム。
【請求項３】
パリティを斜線状に配置する請求項１記載のカラーコードシステム。
【請求項４】
列パリティを第１列及び最後列以外に配置する請求項３又は４記載のカラーコードシステム。
【請求項５】
左右対称又は上下対称にパリティセルを配置した請求項１記載のカラーコードシステム。
【請求項６】
回転した場合でも位置がわかるようなポジションセルを設けた請求項１ないし５のいずれか１項記載のカラーコードシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラーコードシステムに係る。
【背景技術】
【０００２】
市場において流通する商品あるいは図書館における図書には商品や図書の種類及び値段などの商品情報その他の情報を示すために多様な太さの線で構成されたバーコードが印刷されている。このようなバーコードは太線、細線及び二重線等で構成されており、商品情報がエンコーディングされた数字データを示している。
【０００３】
それに対して、簡単な構成を有するカラー図形を商品等の表面に印刷して商品の情報をコード化し、前記バーコードよりもより多くの情報量を含ませることができるカラーコードが提案されている（特許文献１）。
【０００４】
カラーコードシステムは、色とその並びの情報を利用してカメラでカラーコード画像を取得し、画像認識装置を利用して認識を行い、情報を取り出すことできる。モノクロの一次元、二次元バーコードに比べてカラーコードシステムは情報量を利用色数に比例する数倍に増やすことができる。
【０００５】
また、カラーコードシステムはＲＦＩＤのような電子デバイスを利用することにより、紙媒体に印刷した表示装置に表示することができ、コスト面で数百場合安価である。
【０００６】
しかし、特許文献２に記載されている通り、特許文献１記載のカラーコードには、「プリントごとに印刷特性に差があるために一つのカラー図形を相異なるプリンタで印刷すればプリンタの特性上、カラーが相異ってプリントされる。即ち、あるデータがカラー図形でエンコーディングされ、そのカラー図形が相異なる会社のプリンタで印刷されれば、各プリンタの特性によってカラー図形の色調に差が発生する。従って、米国特許第５,８６９,８２８号によれば、このような印刷環境の差によって同じカラー図形でもプリントされたカラー図形をデコーディングする時、元来の情報を正しく復元できないエラーが発生する。」という問題がある。
【０００７】
特許文献２では、上記カラーコードの問題を解決するために、次なる技術を提案している。「機械で判読できるコードは、少なくとも二つの領域を含み、各領域には少なくとも一つのセルを含むが、情報の内容によって色彩または濃淡が異にエンコーディングされて表示される、少なくとも一つのデータセルで形成されたデータ領域と、前記データセルに表示された色彩または濃淡が前記情報の内容に対応して適合に表現されているかどうかを判別するために提供される、少なくとも一つのパリティセルで形成されたパリティ領域を含む。これにより、カメラ入力装置の差あるいは照明条件のような環境の差によるカラーの誤認識を容易に検出しこれを校正できる効果がある。従って本発明のコードイメージを用いてより効率的なデコーディング方法とデコーディング装置」
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許公報５８６９８２８号公報
【特許文献２】特開２００１−３１９２００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、カラーコードについてパリティ技術を用いたとしても実際に実施してみるとエラー発生の発生が多数発生する。
【００１０】
本発明は、色誤認認識の検出、訂正を従来より正確に行い、エラーの発生頻度を従来よりも減少させることができる
【課題を解決するための手段】
【００１１】
請求項１に係る発明は、所定の情報を表示する読取可能に形成されたコードであり、少なくとも二つの領域を含み、各領域には少なくとも一つのセルを含むが、前記情報の内容によって色彩または濃淡が異にエンコーディングされて表示される、少なくとも一つのデータセルで形成されたデータ領域と、前記データセルに表示された色彩または濃淡が前記情報の内容に対応して
適合に表現されているかどうかを判別するために提供される、少なくとも一つのパリティで形成されたパリティ領域とを含み、前記パリティ領域を複数有するカラーコードシステムである。
【００１２】
カラーコードの場合における読取時の誤認識の発生は、カラーコードを相異なるプリタで印刷したことに起因するだけではない。
【００１３】
誤認識の発生は、カラーコードのプリンタ印刷に左右されるが、それよりも、読取時における光環境に左右される。例えば、自然光環境下と蛍光灯環境下とでは光環境は異なる。特にカラーコードへの入射光がどのようなものかが重要であり、2つ以上の認識違いが発生することが多い。そのため、前記パリティ技術を用いても実際には誤認識が多発していたものと考えられる。本発明ではパリティ領域を複数有するため誤認識が著しく減少する。
【００１４】
請求項２に係る発明は、行パリティを最下段の行に配置する請求項１記載のカラーコードシステムである。
【００１５】
請求項３に係る発明は、パリティを斜線状に配置する請求項１記載のカラーコードシステムである。
【００１６】
請求項４に係る発明は、列パリティを第１列及び最後列以外に配置する請求項３又は４記載のカラーコードシステムである。
【００１７】
請求項５に係る発明は、左右対称又は上下対称にパリティセルを配置した請求項１記載のカラーコードシステムである。
【００１８】
対称配置であるミラーパリティにおいては、パリティの作成が容易である。
【００１９】
請求項６に係る発明は、回転した場合でも位置がわかるようなポジションセルを設けた請求項１ないし５のいずれか１項記載のカラーコードシステムである。
【発明の効果】
【００２０】
光環境の如何にもかかわらず読取の誤認識を従来より減少させることができる。
【実施例】
【００２１】
以下に本発明の実施の形態を説明する。
【００２２】
なお、以下の例では、色ブロックを次のように定める。
（１）色ブロックの定義
00 green
01 black
10 red
11 blue
（２）色マトリックスの定義と範囲
code block 3x3 1x9 18bit
0 -- 262143 (2^18-1)
code block 4x4 2x8 32bit
0 -- 4294967295 (2^32-1)
code block 2x9 3x6 36bit
0 -- 68719476735 (2^36-1)
code block 4x5 2x10 40bit
0 -- 1099511627776 (2^40-1)
もちろん実際の作成に際しては自由に定義してよい。
カラーコードの場合、「postion cell」（回転した場合などにおいても位置がわかるようにするためのセル）は行パリティの奇数に11と合わせて色ブロックにしているが、列パリティでもどっちでもよい。
また、奇偶性パリティの場合、同時に2位以上誤りがあるとわからなくなる。
バイナリの順次は２位ごと自由に並べるが、こちらでわかりやすくするため、本来のやり方で前頭から順次に取る。
実際にパリティも含めて並び替え方は自由で、プログラム上のアルゴリズムはそれに対応させればよい。
【００２３】
奇性パリティ計算は１の数をカウントして結果が奇数であれば１として、偶数であれば０とする。
【００２４】
偶数パリティ計算は奇性の反対になる。つまり、奇性のNOTになるわけであり、逆にカウントしても同じである。１の数をカウントして結果が偶数であれば１として、そうでなければ０にする。
事例のなかでは、パリティの１位の結果は、その行あるいは列のコードブロックだけの１位の奇偶性パリティ計算による。同じくパリティの２位の結果は、その行あるいは列のコードブロックだけの２位の奇偶性パリティ計算による。
（実施例１）
１．パリティのバックアップと強化の対応
【００２５】
【表１】
2015032212.tif 000002
C0−C6は列番号であり、そのうち、C2は奇性行パリティ、C4は偶性行パリティとする。R0−R5は行番号であり、そのうち、R2は偶性列パリティ、R5は奇性列パリティとする。[C2,R2] はC2の奇性行パリティポジションであり、 [C4,R5]はC4の偶性行パリティポジションである。[C4,R2] はR2の偶性列パリティポジションであり、[C2,R5] はR5の奇性列パリティポジションである。
表２に示すコードブロックは５×４であり、十進数１の場合、以下の通りになる。
【００２６】
【表２】
2015032212.tif 000003
表２に示すパリティ計算方法は次の通りである。
【００２７】
C2は行パリティの奇性計算になる。
[C2,R0]の場合、
R0のコードブロック（５つの白）の１位は全部０であるので、
[C2,R0]
１位＝０
R0のコードブロック（５つの白）の２位は全部０であるので、
[C2,R0]
２位＝０
よって、[C2,R0] ＝00になる。
【００２８】
プログラム上のXorは2位同時に排他的論理和にすると同じ計算になる。
[C2,R0]
= [C0,R0]  Xor [C1,R0] Xor [C3,R0] Xor [C5,R0] Xor [C6,R0]
[C2,R4]の場合、
R4のコードブロック（５つの白）の１位は全部０であるので、
[C2,R4]
１位＝０
R4のコードブロック（５つの白）の２位はC6に一つの1であるので、
[C2,R0]
２位＝１
よって、[C2,R4] ＝01になる。
[C2,R2]（緑） は縦でC2パリティブロック（4つの青）の奇性計算結果である。
C4はC2の逆である。が、縦でのポジション位置をR5に置いているだけである。
R5とR2は以上と同じ計算になるわけである。が、縦（列）のコードブロック（４つの白）を計算しています。
【００２９】
紫はピンクとか赤とかの横計算である。
【００３０】
パリティブロックの正確性を保つのは誤り検出の一番重要なところであるため、C2とC4を相互バックアップすることで行パリティの正確性を保つ。[C2,R2]ポジションは、C2列の計算で01になり、[C4,R5] ポジションは、C4列の計算で10になる。同様に[C4,R2]ポジションは、R2の計算で01になり、[C2,R5] ポジションはR5の計算で01になる。以下同様である。
【００３１】
C2またはC4のパリティ任意の一つに誤りが生じると、誤りが検出できる。例えば、ブロック[C2,R1]に誤りが生じ、01になる場合、[C2,R1]ポジションによって誤りが検出できるにもかかわらず、[C4,R1]によっても誤りが検出できる。同時に分散している3つのブロックに誤りが生じる確率が非常に低い。R2、R5の場合も同様の原理である。
よって、コードブロッグの任意の位置に誤りが生じた場合、行列パリティによって検出できる。例えば、[C5,R4]が00から11になる場合、[C2,R4]は本来10であるはずだが、C2とC4が正しい場合、[C5,R4]の誤りを確認できるにもかかわらず、[C5,R5]または[C5,R2]の参加によって訂正も可能である。
[C2,R4]または[C4,R4]パリティによって[C5,R3]は00であることを逆計算でき、[C5,R5]または[C5,R2]の参加によって正確性を確認できる。
【００３２】
行列パリティの相互バックアップによってパリティブロックが強化されるにもかかわらず、二位以上の誤り検出が可能であり、奇偶性パリティの同時二位以上の誤り検出不能のことを避けられる。
【００３３】
例えば、[C1,R1] == 01 , [C5,R1] == 01 , [C1,R4] == 01 として誤りが生じた場合、この場合、[C1,R1] ,
[C5,R1]は同時二位に誤りがあり、C2またはC4によって誤り検出ができません。しかし、R2またはR5によって誤り検出できる。 [C1,R1] , [C1,R4]も同じことになり、C2またはC4によって誤り検出できる。C2、C4、R2、R5の同時誤りの確率は非常に低い。
【００３４】
（実施例２）
本例では、コードブロックは５×４であり、十進数539756313807(バイナリ  0111 1101 1010 1011 1111 1011 1011 1100 1100 1111)の場合、以下の通りになる。
【００３５】
【表３】
2015032212.tif 000004
列対角線分散は、光の反射などによる列パリティの誤りの確率を下げる方法、具体的には、どのように反射の影響があるかによって決定する。
（実施例３）
本例は、ミラリング（バックアップの拡張）の例を示す。
【００３６】
【表４】
2015032212.tif 000005
本例では、十進数1847463547(バイナリ  011011 100001 11100000 111001 111011)の場合、以下の通りになる。
【００３７】
C0−C4を（パリティを含め）C9−C6順にミラリングする。行パリティと列パリティを対角線配置し、中心の肩方を行パリティ（[C2,R2]）にし、一方を列パリティ（[C7,R2]）にする。
【００３８】
【表５】
2015032212.tif 000006
表５では、パリティ計算上は１と同じ原理である。
【００３９】
C0ーC4までの計算になる。C5ーC9は結果の位置ミラリングだけの話であるが、[C7,R2]だけ違う。
【００４０】
青のブロックは行パリティであるので、R0からR4までの行コードブロック（白）だけ計算に参加する。
【００４１】
この場合、[C2,R2]だけ4つのコードブロック（白）が参加している。
【００４２】
オレンジは縦の列になるコードブロック（白）だけ計算に参加する。ただ、ここで[C2,R2]はC2の列パリティになるわけであるが、重なるため、計算結果をミラリング[C7,R2]に置く。
この例では、行列パリティ分散すると同時にミラリングすることでコードブロッグとパリティをバックアップすることができる。実施例１の表２のように誤りの検出を最大限にすることにもかかわらず、同じ位置のコードブロックを照らあわせることで訂正できる。
C2とC4は論理的に同じものである。両方とも奇性とか偶性とかどちらでもよい。
【００４３】
同じもののバックアップと捉えた場合、正確性を二倍にしていることと同じである。同時に両方とも間違える確率が半分に落ちる。
【００４４】
実際の反射による色の誤認が正確にはどのように分布しているか不明であるが、パリティを分散することで正確性を保つ考えとミラリングによるバックアップできる。
【００４５】
パリティからはじめ、検証してゆき、パリティに誤りがある場合（何処かに誤りがあった場合）、ミラリングを参照して訂正する。もちろんミラリングにも誤りがある可能性はあるが、パリティ上両方に誤りがある確率は低い。ただ、更にコードブロックの参加によって、訂正できる。
【００４６】
大事なことは、パリティの正確性を保つことであり、パリティの正確性を保証できれば修正可能と考えてよいし、横縦パリティの上、コードブロックもバックアップをとっているので、コードブロックからも修正できる。両方同じあるいは肩方のパリティが正確な場合、そのコードブロックは正しいと考えられる。