説明

コンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置

【課題】いかなる環境下であっても、読取率を高く維持することが可能な、コンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置を提供する。
【解決手段】データ領域は、情報を色彩及び/又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成される。訂正領域は、データセルに色彩及び/又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び/又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成される。訂正領域は、データセル及び訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置に関する。特に色彩及び/又は濃淡を違えて表示してあるセルの配置により情報をエンコードしたコード、及びエンコードされたコードをデコードする情報処理装置に関する。
【背景技術】
【0002】
商品等に関する情報を短時間で正確に取得するために、様々なコードをカメラ、スキャナ等で読み取って認識する方法が多々開発されている。例えば一次元コードであるバーコードは、線の太さの相違、間隔の相違等を検出することにより商品等に関する情報をデコードすることができる。また、二次元コードとして代表的なQRコードは、3つの角部に配置されている比較的大きな四角形のファインダーパターンを抽出し、QRコードの回転角度、形状を認識することによりデコードすることができる。
【0003】
しかし、いずれのコードも白黒画像であることから、コードに付着した汚れ、コードを画像として取得する時のピント調整の不備等により誤ってデコードされるおそれがあった。そこで、例えば特許文献1では、色彩及び/又は濃淡を違えて表示することにより情報をエンコードするカラーコード(登録商標)が開示されている。
【0004】
特許文献1に開示してあるカラーコード(登録商標)は、カラーの二次元図形として必要な情報をエンコードしており、カラースキャナ等で画像情報を取得してデコードすることにより情報を取得する。色彩及び/又は濃淡を違えて表示することにより情報をエンコードしているので、カラーコード(登録商標)に汚れが付着している場合であっても正しいデコード値を容易に推定することができる。また、画像取得時にピントずれ等が生じて画像が鮮明でない場合であっても、カラーコード(登録商標)を確実にデコードすることが可能となる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3336311号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示してあるカラーコード(登録商標)は、パリティ情報を有していることからデコードした情報の正否を判断することはできる。しかし、読取時に発生したエラーを修復することが可能なエラー訂正情報を有していないので、一部の情報が欠損した場合、エラー訂正を行うことができない。したがって、一部に判別不能になる程度の汚れが付着した場合、又は一部が欠損した場合にはデコード不能となり、ユーザにとって必ずしも使い勝手の良いコードではなかった。また、製造ライン等に用いた場合には、エラー訂正を行うために作業を止める必要が生じ、歩留まりの発生を招くおそれもあった。
【0007】
本発明は上記事情に鑑みてなされたものであり、いかなる環境下であっても、読取率を高く維持することが可能な、コンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために第1発明に係るコンピュータで判読することが可能なコードは、少なくともデータ領域、及び訂正領域を含み、該データ領域は、前記情報を色彩及び/又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成され、前記訂正領域は、前記データセルに色彩及び/又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び/又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成されることを特徴とする。
【0009】
第1発明では、少なくともデータ領域、及び訂正領域を含み、該データ領域は、情報を色彩及び/又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成され、訂正領域は、データセルに色彩及び/又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び/又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成される。パリティ情報ではなくエラー訂正情報を訂正セルとして配置することができるので、色彩及び/又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【0010】
また、第2発明に係るコンピュータで判読することが可能なコードは、第1発明において、前記訂正領域は、前記データセル及び前記訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあることを特徴とする。
【0011】
第2発明では、訂正領域は、データセル及び訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあるので、コードの一部に汚れが付着した場合、一部が欠損した場合等であっても確実に読み取った情報を修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【0012】
また、第3発明に係るコンピュータで判読することが可能なコードは、第1又は第2発明において、前記情報及び前記エラー訂正情報はp進数(pは5以上の素数)にて表示されていることを特徴とする。
【0013】
第3発明では、情報及びエラー訂正情報はp進数(pは5以上の素数)にて表示されているので、確実にエラー訂正情報を2桁確保することができ、エラー訂正情報を離して配置することにより、色彩及び/又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【0014】
また、第4発明に係るコンピュータで判読することが可能なコードは、第3発明において、前記情報は(p−3)桁のp進数に分割され、前記エラー訂正情報は分割された情報のそれぞれに2桁のp進数を付加してあることを特徴とする。
【0015】
第4発明では、情報は(p−3)桁のp進数に分割され、エラー訂正情報は分割された情報のそれぞれに2桁のp進数を付加してあるので、色彩及び/又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【0016】
また、第5発明に係るコンピュータで判読することが可能なコードは、第3又は第4発明において、前記情報及び前記エラー訂正情報は5進数にて表示してあることを特徴とする。
【0017】
第5発明では、情報及びエラー訂正情報は5進数にて表示してあるので、確実にエラー訂正情報を2桁確保し、残りの桁で分割された情報をそれぞれ表示することができるので、色彩及び/又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【0018】
また、第6発明に係るコンピュータで判読することが可能なコードは、第5発明において、分割された前記情報にハッシュコードを付加して、2桁の5進数に変換し、変換した2桁の5進数に対してリードソロモン符号によるエラー訂正情報を2桁付加して4桁の5進数として一又は複数組の5進データを生成し、生成した一又は複数組の4桁の5進データを、5進数それぞれに割り当てた色彩及び/又は濃淡を違えた4つの色データに変換し、変換した一又は複数組の4つの色データを、配置した互いの距離の合計が最大化するよう前記データセル及び前記訂正セルを配置することが可能な領域に配置してあることを特徴とする。
【0019】
第6発明では、分割された情報にハッシュコードを付加して、2桁の5進数に変換し、変換した2桁の5進数に対してリードソロモン符号によるエラー訂正情報を2桁付加して4桁の5進数として一又は複数組の5進データを生成する。生成した一又は複数組の4桁の5進データを、5進数それぞれに割り当てた色彩及び/又は濃淡を違えた4つの色データに変換し、変換した一又は複数組の4つの色データを、配置した互いの距離の合計が最大化するようデータセル及び訂正セルを配置することが可能な領域に配置する。これにより、変換した一又は複数組の色データを、配置した互いの距離の合計が最大化するようデータセル及び訂正セルを配置することが可能な領域に配置するので、コードの一部に汚れが付着したり、一部が欠損したりすることにより、色彩及び/又は濃淡を違えて表示された情報を誤って読み取った場合であっても、エラー訂正情報を取得し損ねる確率を最小限にとどめることができ、確実にエラー訂正情報を取得することにより、誤って読み取った情報を確実に修復することが可能となる。
【0020】
次に、上記目的を達成するために第7発明に係る情報処理装置は、第6発明のコンピュータで判読することが可能なコードを読み取る情報処理装置であって、前記コードを撮像した画像データを取得する画像データ取得手段と、取得した画像データからコードが撮像されている領域を切り出す領域切り出し手段と、切り出した領域内のデータセル及び訂正セルの位置を判別する位置判別手段と、前記データセル及び前記訂正セルごとの色データを取得し、5進数に変換する変換手段と、変換した5進数に基づいて4桁の5進数として一又は複数組の5進データを再生する再生手段と、リードソロモン符号によるエラー訂正を実行して、分割された前記情報を示す2桁の5進数をそれぞれ修復するエラー訂正手段と、ハッシュ値を算出して、エラー訂正を実行して修復した後の2桁の5進数の正否をそれぞれ判定する判定手段とを備えることを特徴とする。
【0021】
第7発明では、コードを撮像した画像データを取得し、取得した画像データからコードが撮像されている領域を切り出す。切り出した領域内のデータセル及び訂正セルの位置を判別し、データセル及び訂正セルごとの色データを取得し、5進数に変換して、変換した5進数に基づいて4桁の5進数として一又は複数組の5進データを再生する。リードソロモン符号によるエラー訂正を実行して、分割された情報を示す2桁の5進数をそれぞれ修復し、ハッシュ値を算出して、エラー訂正を実行して修復した後の2桁の5進数の正否をそれぞれ判定する。これにより、ハッシュ値を用いてエラー訂正を実行して修復した後の2桁の5進数がそれぞれ正しく読み取られているか否かを判定することができるので、色データ取得時の演算エラー等を確実に排除することができ読み取り精度を向上させることが可能となる。
【発明の効果】
【0022】
本発明によれば、パリティ情報ではなくエラー訂正情報を訂正セルとして配置することができるので、色彩及び/又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【図面の簡単な説明】
【0023】
【図1】本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図2】本発明の実施の形態に係る情報処理装置の主制御部の本コードのエンコード処理の流れを示すフローチャートである。
【図3】エンコードした本コードの例示図である。
【図4】本発明の実施の形態に係る情報処理装置の距離算出方法の説明図である。
【図5】本発明の実施の形態に係る情報処理装置の一構成例を示す機能ブロック図である。
【図6】本発明の実施の形態に係る情報処理装置の主制御部の本コードのデコード処理の流れを示すフローチャートである。
【図7】本発明の実施の形態に係る4桁の5進数の例示図である。
【図8】RGB座標系と色との関係を示す模式図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施の形態に係るコンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置について、図面を参照しながら説明する。なお、参照する図面を通じて、同一又は同様の構成又は機能を有する要素については、同一又は同様の符号を付して、詳細な説明を省略する。
【0025】
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。本実施の形態に係る情報処理装置1は、認識対象物、例えば品質検査時の検査対象物に貼付されたコードを撮像する撮像装置2、液晶パネル等の表示装置3、入力装置4と、データ通信することが可能に接続されている。
【0026】
本実施の形態に係る情報処理装置1は、少なくともCPU(中央演算装置)、LSI等で構成された主制御部11、メモリ12、記憶装置13、ビデオインタフェース14、入出力インタフェース15、可搬型ディスクドライブ16、通信インタフェース17及び上述したハードウェアを接続する内部バス18で構成されている。主制御部11は、内部バス18を介して情報処理装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶されているコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
【0027】
記憶装置13は、内蔵される固定型記憶装置(ハードディスク、フラッシュメモリ)、ROM等で構成されている。記憶装置13に記憶されているコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM、フラッシュメモリ等の可搬型記録媒体90から、可搬型ディスクドライブ16によりダウンロードされ、実行時には記憶装置13からメモリ12へ展開して実行される。もちろん、通信インタフェース17を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0028】
記憶装置13には、撮像装置2にて撮像した画像の画像データも記憶する。撮像装置2は、CCD撮像素子を備えたCCDカメラ等であり、少なくとも一のコードを含む画像を撮像して取得する。情報処理装置1は、入出力インタフェース15を介して撮像装置2で撮像した画像データを取得し、コードの読み取り処理だけでなく、さまざまな画像処理を実行する。
【0029】
通信インタフェース17は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置13は、情報処理装置1に内蔵される構成に限定されるものではなく、通信インタフェース17を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【0030】
ビデオインタフェース14は、内部バス18に接続されており、表示装置3に接続されることにより、所望の画像を表示する。入出力インタフェース15は、内部バス18に接続されており、入力装置4を介してデータの入力を受け付ける。なお、入力装置4は、表示装置3と一体になっていても良いし、別個に構成されていても良い。
【0031】
図2は、本発明の実施の形態に係る情報処理装置1の主制御部11の本コードのエンコード処理の流れを示すフローチャートである。なお、以下「本コード」とは、本願発明に係る色情報を含むコードを意味する。主制御部11は、エンコード対象となる情報を取得し(ステップS201)、取得した情報に基づいてハッシュコードを生成する(ステップS202)。情報の取得は、キーボード等の入力装置4からの直接入力であっても良いし、通信インタフェース17を介して受信しても良い。ハッシュコードは、周知のハッシュ関数に基づいて生成すれば良い。
【0032】
主制御部11は、生成したハッシュコードをエンコード対象となる情報に付加して5進数に変換する(ステップS203)。この時点でハッシュコードを付加するのは、デコード時に正しくデコードされたか否かを判定することができるようにするためである。
【0033】
主制御部11は、5進数に変換した情報を2桁ずつN(Nは自然数)個に分割し(ステップS204)、n(nは自然数)の初期値を‘1’に設定する(ステップS205)。主制御部11は、n番目の2桁の5進数にリードソロモン符号によるエラー訂正コード(エラー訂正情報)2桁を付加して4桁の5進数として5進データを生成する(ステップS206)。
【0034】
主制御部11は、nがNに到達したか否かを判断し(ステップS207)、主制御部11が、nがNに到達していないと判断した場合(ステップS207:NO)、主制御部11は、nを‘1’インクリメントして(ステップS208)、処理をステップS206へ戻して上述した処理を繰り返す。主制御部11が、nがNに到達したと判断した場合(ステップS207:YES)、主制御部11は、5進数の桁ごとに対応する色データをそれぞれ割り当てる(ステップS209)。
【0035】
主制御部11は、割り当てた色データを、それぞれ個別のセルとして、所定のルール(以下、配置ルール)に基づいて、データセル及びエラー訂正セルを配置することが可能な領域に配置する(ステップS210)。図3は、エンコードした本コードの例示図である。
【0036】
図3の例では、セルを配置する領域が縦横6セル×6セルである場合を示しており、D1、D2がエンコード対象となる情報を2桁ずつ分割したそれぞれの情報を示すデータセルを、E1、E2が情報に付加されたエラー訂正情報を2桁ずつ分割したエラー訂正セルを、それぞれ表している。図3に示すように、セルを配置する領域が縦横6セル×6セルである場合、データセル同士、あるいはエラー訂正セル同士を互いにできるだけ離し、しかも縦横又は45度(135度)の方向に並ばないように配置する。配置ルールは、特にこれに限定されるものではなく、例えば2桁のデータセルと2桁のエラー訂正セルとで一組と考えた場合に、4つのセルのうち2つのセル間の距離の合計を組ごとに算出し、最小二乗法によりすべての組の距離の合計の総和が最大化するように、複数組のデータセル及びエラー訂正セルを同一のセルを配置する領域に互いにセルが重複しないように配置する。
【0037】
図4は、本発明の実施の形態に係る情報処理装置1の距離算出方法の説明図である。図4では、○印がデータセルを、×印がエラー訂正セルを、それぞれ示している。図4(a)は、4桁の5進数で構成される複数組の5進データについて、データセル、エラー訂正セルが、一組ごとに配置ルールに基づいて配置された本コードを示している。
【0038】
2つのセル間の距離の合計とは、一組ごとに2つのセル間の直線距離を算出して合算することを意味しており、すべての組で合算した距離を合計した値を最大化するように、すべての組のデータセル及びエラー訂正セルが配置される位置を、セルが配置される領域内で互いに重複しないように特定する。すなわち、図4(b)に示すように、2つのデータセル、2つのエラー訂正セルの4つのセルから2つを選択し、選択した2つのセル間の距離L1、L2、L3、L4、L5、L6を算出して合算する。そして、組ごとに合算した距離の総和が最大化するように、データセル及びエラー訂正セルがセルを配置する領域に互いに重複することなく配置される位置を特定する。
【0039】
このようにすることで、局所的なデータ欠損が生じた場合であっても、2桁以上の欠損を回避することにより情報の修復を可能とすることができる。もちろん、セルを配置する領域が縦横6セル×6セルである必然性は無く、通常はもっと広範囲に多くの情報が分散している。また、エラー訂正セルはセルを配置する領域全体に均等な割合になるよう点在して配置してあるので、局所的な汚れや欠損が生じた場合であっても情報を修復することができる可能性が高い。また、セルの配置ルールを特定しておくことにより、データセル及びエラー訂正セルの配置が一義的に定まる。したがって、本実施の形態に係る情報処理装置1は、セルの配置ルールのみを記憶装置13に記憶しておけば良い。
【0040】
図5は、本発明の実施の形態に係る情報処理装置1の一構成例を示す機能ブロック図である。図5において、本実施の形態に係る情報処理装置1は、撮像装置2、表示装置3、及び入力装置4と、データ通信することが可能に接続されている。なお、本実施の形態では、二次元の本コードを含む画像から二次元の本コードをデコードする場合について説明する。
【0041】
画像データ取得手段501は、少なくとも一の二次元の本コードを含む画像を、撮像装置2で撮像することにより画像データとして取得する。画像を取得する方法は、撮像装置2により撮像して取得する方法に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置13に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース17を介して読み出すことで取得しても良い。取得した画像は表示装置3に表示しても良いし、しなくても良い。
【0042】
画像データ修正手段502は、取得した画像に含まれる本コードの画像に基づいて、取得した画像の位置及び回転角度を修正した画像データを生成する。すなわち、取得した画像を画面に表示した場合に、本コードが画面中央、しかも表示画面の縦横と本コードの縦横とがそれぞれ平行になるように画像の位置及び回転角度を修正した画像データを生成する。
【0043】
領域切り出し手段503は、修正した画像データから、本コードが撮像されている領域を切り出す。領域の切り出し方法は、周知の方法であれば特に限定されるものではない。例えば、本実施の形態では二次元の本コードを用いるので、本コードが存在する領域では複数の色のコードが存在するのに対して、存在しない領域では背景を示す単一色のコードが連続して存在する。したがって、両者のコードの違いにより、本コードが撮像されている領域とそうではない領域との境界を推定することが可能となる。
【0044】
位置判別手段504は、切り出した領域内のセル(データセル及びエラー訂正セル)の位置を判別する。位置判別手段504では、記憶装置13に記憶してあるセルの配置ルールに基づいて、切り出された領域内のデータセル及びエラー訂正セルの位置を特定することにより、どのセルがデータセルで、どのセルがエラー訂正セルであるのかを判別する。
【0045】
変換手段505は、判別した位置に配置してあるセル(データセル及びエラー訂正セル)ごとの色データを取得し、5進数に変換する。再生手段506は、取得した色データを変換した5進数に基づいて、4桁の5進数として5進データを再生する。すなわち、データセルについては各データセルの色データを取得して変換した5進数に基づく2桁の5進数とし、エラー訂正セルについては各エラー訂正セルの色データを取得して変換した5進数に基づく2桁の5進数とし、これらを合わせた合計4桁の5進数として5進データを再生する。
【0046】
例えば図3では、セルを配置する領域に4つのセルが、すなわち1組の4桁の5進数が点在して配置されている。エラー訂正セルを1つでも読み取ることができれば、読み取ることができなかったデータセルを修復することができる。従来のカラーコード(登録商標)を含む二次元コードにも、エラー訂正セルは存在するが、エラー訂正セルを一定の領域に連続して配置しているので、エラー訂正セルを配置してある一定の領域を欠損した場合等には、データセルから誤って読み取ったデータを修復する手段がない。
【0047】
これに対して、本実施の形態では、図3に示すようにエラー訂正セルを記憶してあるセルの配置ルールに基づいてデータセルとともに均等な割合で点在させて配置しているので、本コードの一部に汚れが付着した場合、一部が欠損した場合等であっても、いずれか一方のエラー訂正セルを正常にデコードすることができ、誤って読み取った情報を確実に修復することが可能となる。
【0048】
図5に戻って、エラー訂正手段507は、エラー訂正セルを再生した2桁の5進数をエラー訂正情報として、リードソロモン符号によるエラー訂正を実行して、データセルを再生した2桁の5進数を修復する。データセルを正しくデコードしていた場合には、デコード結果は変化しない。
【0049】
判定手段508は、ハッシュ値を算出して、エラー訂正を実行した後の2桁の5進数の正否を判定する。つまり、エンコードする前のハッシュ値と、デコードした後のハッシュ値とが合致しているか否かを判定することにより、通信途上の欠損等により情報自体に誤りが生じていないことを確認することができる。
【0050】
出力手段509は、判定手段508がエンコードする前のハッシュ値と、デコードした後のハッシュ値とが合致していると判定した場合にはデコードした情報をそのまま出力し、合致していないと判定した場合には、デコードされた情報の読み取りにエラーが生じている旨を示す情報を出力する。
【0051】
図6は、本発明の実施の形態に係る情報処理装置1の主制御部11の本コードのデコード処理の流れを示すフローチャートである。主制御部11は、少なくとも一の二次元の本コードを含む画像を、撮像装置2で撮像することにより画像データとして取得する(ステップS601)。画像を取得する方法は、撮像装置2により撮像して取得する方法に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置13に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース17を介して読み出すことで取得しても良い。取得した画像は表示装置3に表示しても良いし、しなくても良い。
【0052】
主制御部11は、取得した画像に含まれる本コードに基づいて、取得した画像の位置及び回転角度を修正した画像データを生成する(ステップS602)。すなわち、取得した画像を画面に表示した場合に、本コードが画面中央、しかも表示画面の縦横と本コードの縦横とがそれぞれ平行になるように画像の位置及び回転角度を修正した画像データを生成する。
【0053】
主制御部11は、修正した画像データから、本コードが撮像されている領域を切り出す(ステップS603)。領域の切り出し方法は、周知の方法であれば特に限定されるものではない。例えば、本実施の形態では二次元の本コードを用いるので、本コードが存在する領域では複数の色のコードが点在して均等な割合で存在するのに対して、存在しない領域では背景を示す単一色のコードが連続して存在する。したがって、両者のコードの並びの違いにより、本コードが撮像されている領域とそうではない領域との境界を推定することが可能となる。
【0054】
もちろん、従来の二次元コードと同様、本コードの四隅のセルに特徴データを付与し、特徴データを検出することにより本コードが撮像されている領域を切り出しても良い。この場合、四隅のセルのうち3つのセルに特徴データを付与しても良いし、本コードの対角線上の端点となる2つのセルに特徴データを付与しても良い。
【0055】
主制御部11は、切り出した領域内のセル(データセル及びエラー訂正セル)の位置を判別する(ステップS604)。具体的には、記憶装置13に記憶してあるセルの配置ルールに基づいて、切り出された領域内のデータセル及びエラー訂正セルの位置を特定することにより、どのセルがデータセルで、どのセルがエラー訂正セルであるのかを判別する。
【0056】
なお、すべての組で2つのセル間の直線距離を算出して合算した距離を合計した値を最大化するセルの配置の組み合わせは、一義的に定まる場合もあれば複数定まる場合もある。そこで、通常は事前にデータセル及びエラー訂正セルの配置ルールを定めておき、本コードのエンコード時には事前に定めた配置ルールに基づいてデータセル及びエラー訂正セルを配置する。したがって、本コードのデコード時には、配置ルールがわかっているので、データセル及びエラー訂正セルの位置は自明であり、誤りなくデコードすることが可能となる。
【0057】
主制御部11は、判別した位置に配置してあるセル(データセル及びエラー訂正セル)ごとの色データを取得し、5進数に変換する(ステップS605)。具体的には、5進数の0、1、2、3、4のそれぞれに、例えば黒、赤、緑、青、白の5色を対応させておき、取得したセルごとの色データに応じてそれぞれ5進数の値に変換する。
【0058】
主制御部11は、取得した色データを変換した5進数の値を並べることで、4桁の5進数としてそれぞれ分割されたN個の5進データを再生する(ステップS606)。具体的には、エンコード時のセルの配置ルールを記憶装置13から読み出し、点在して配置されている複数のセルを組み合わせて、それぞれ4桁の5進数として5進データを再生する。すなわち、データセルについては各データセルの色データを取得して変換した5進数の値に基づく2桁の5進数とし、エラー訂正セルについては各エラー訂正セルの色データを取得して変換した5進数の値に基づく2桁の5進数とし、これらを合わせて4桁の5進数として分割されたN個の5進データを再生する。
【0059】
主制御部11は、m(mは自然数)を‘1’に設定し(ステップS607)、m番目の4桁の5進数について、エラー訂正セルを再生した2桁の5進数をエラー訂正情報として、リードソロモン符号によるエラー訂正を実行して、データセルを再生した2桁の5進数、すなわち情報を示す2桁の5進数を修復する(ステップS608)。
【0060】
ここで、リードソロモン符号によるエラー訂正方法を5進数の場合を例に挙げて説明する。なお、以下の演算における加減乗除は、すべて‘5’の剰余系で行われる。まず5進数の場合の生成多項式を定める。生成多項式は、素数によってそれぞれ変動する。5進数の場合は、(式1)のように求められる。なお、生成多項式も‘5’の剰余系で表示され、因数分解されている第一式を展開した第二式において、xの一次項の係数は‘−6’が‘4’に、xの0次項の係数は‘8’が‘3’となる第三式が求められる。第三式右端の(5)は係数が‘5’の剰余系として5進数表記されている旨を示している。
【0061】
【数1】

【0062】
次に、データセルの値をa、b(a、bは5進数の値)とし、生成多項式で除算した剰余R(x)を(式2)に示すように算出する。なお、剰余R(x)を一次式として算出するため、データセルの値a、bを用いた一次式I(x)に、生成多項式との次数を合わせるためにx2 を乗算している。以下、剰余演算は関数modで表しており、(A mod B)はAをBで除算した場合の剰余を示している。
【0063】
【数2】

【0064】
次に、データセルの値a、bに対するエラー訂正情報として、エラー訂正セルの値c、d(c、dは5進数の値)を算出する。エラー訂正セルの値c、dを用いて、エンコード時の真値W(x)は、(式3)で表すことができる。(式3)に示す一次項、0次項の係数が、それぞれエラー訂正セルの値c、dである。もちろん三次項、二次項の係数は、それぞれデータセルの値a、bであることは言うまでもない。
【0065】
【数3】

【0066】
そして、本コードをデコードした結果として、データセルの値a’、b’、エラー訂正セルの値c’、d’が算出される。デコードした結果を示す多項式をY(x)とすると、(式4)のように表すことができる。デコード時にエラーが発生していなければ、(式3)のW(x)と一致する。
【0067】
【数4】

【0068】
5進数の生成多項式である(式1)が0(ゼロ)となるxの値は、x=2、4となる。x=2、4である場合、デコード時にエラーが発生していないと仮定すると、エンコード時の真値W(x)も0(ゼロ)となる。すなわちW(2)=W(4)=0となる。
【0069】
デコードした結果を示す多項式Y(x)にx=2、4を代入すると、(式5)、(式6)を得る。(式5)、(式6)においても、それぞれ第二式は係数を5進数表記している。各式右端の(5)は係数が‘5’の剰余系として5進数表記されている旨を示している。
【0070】
【数5】

【0071】
一方、エンコード時の真値W(x)を用いてデコードした結果を示す多項式Y(x)は、(式7)のように表すことができる。(式7)において、右辺第2項の‘e’は、デコードした値と真の値との間のオフセット値を示しており、‘i’は、デコード時にエラーが発生した係数の次数を表している。
【0072】
【数6】

【0073】
具体的には、(式6)及び(式5)を(式7)に代入して整理すると、(式8)を得る。
【0074】
【数7】

【0075】
W(2)、W(4)はそれぞれ0(ゼロ)であるので、(式8)から‘e’及び‘i’が一義的に定まる。例えば‘e’=1、‘i’=2である場合、エラーが発生した係数の次数が‘2’であるので、2次項、すなわちデータセルの値のx2 の係数であるbが‘1’大きくなっていることがわかる。したがって、例えばデコード時にbの値が‘3’である場合には、正しいbの値が‘2’であることがわかる。
【0076】
図7は、本発明の実施の形態に係る4桁の5進数を示す例示図である。まず図7(a)に示すように、エンコード対象となる情報を2桁の5進数‘43’に変換する。次に図7(b)に示すように、2桁のエラー訂正コード‘01’を付加することで、4桁の5進数‘4301’を得る。本コードは、この‘4301’をそれぞれ色データに変換することにより求めている。
【0077】
そして、図7(c)に示すように、デコードされた4桁の5進数が‘4101’であった場合、2桁のエラー訂正コード‘01’は正しくデコードされているので、図7(d)に示すように正しい4桁の5進数‘4301’へと修復することが可能となる。
【0078】
図6に戻って、主制御部11は、mがNに到達したか否かを判断し(ステップS609)、主制御部11が、mがNに到達していないと判断した場合(ステップS609:NO)、主制御部11は、mを‘1’インクリメントして(ステップS610)、処理をステップS608へ戻して上述した処理を繰り返す。主制御部11が、mがNに到達したと判断した場合(ステップS609:YES)、主制御部11は、デコードされた情報に基づいてハッシュ値を算出する(ステップS611)。
【0079】
主制御部11は、算出したハッシュ値が、エンコードする前の情報に基づいて算出したハッシュ値と一致しているか否かを判断する(ステップS612)。主制御部11が、一致していると判断した場合(ステップS612:YES)、主制御部11は、デコードされた情報が正しいと判断して、デコードした情報として2桁の5進数を出力する(ステップS613)。主制御部11が、一致していないと判断した場合(ステップS612:NO)、主制御部11は、デコードされた情報が誤りであると判断して、エラーである旨を示す情報を出力する(ステップS614)。
【0080】
以上のように本実施の形態によれば、パリティ情報ではなく、エラー訂正情報を訂正セルとして配置することができるので、色彩及び/又は濃淡を違えて表示された情報を誤って読み取った場合であっても確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。また、訂正領域として訂正セルを、データセル及び訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあるので、本コードの一部に汚れが付着した場合、一部が欠損した場合等であっても確実に情報を修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【0081】
なお、上述した本実施の形態では、情報を5進数で表した場合について説明している。情報を5進数で表した場合、情報の桁数は、冗長化させたリードソロモン符号を2桁、ハッシュ値算出用のハッシュ情報を1桁、確保できれば良い。情報をp進数で表した場合も同様であるが、リードソロモン符号によるエラー訂正を実行するためには、情報が2桁以上である必要がある。したがって、p進数表示する場合には、pは5以上の素数であることが必要となる。
【0082】
情報の桁数をr、エラー訂正情報の桁数をs(s=2)とすると、素数pは(式9)で算出することができる。
【0083】
p = r+s+1 ・・・(式9)
【0084】
このようにすることで、本実施の形態のように5進数表示する場合(p=5)には、リードソロモン符号によるエラー訂正の実行対象となる情報の桁数は‘2’となる。同様に、7進数表示する場合(p=7)には、情報の桁数は‘4’となり、11進数表示する場合(p=11)には、情報の桁数は‘8’となる。
【0085】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば色と5進数との対応関係をRGB座標系に基づいて定めても良い。
【0086】
図8は、RGB座標系と色との関係を示す模式図である。RGB座標系では、R軸、G軸、B軸それぞれ0〜255と仮定している。図8の例では、(R、G、B)=(255、0、0)の場合が赤色を、(R、G、B)=(0、255、0)の場合が緑色を、(R、G、B)=(0、0、255)の場合が青色を、それぞれ示している。そして、(R、G、B)=(0、0、0)の場合が黒色(BL)を、(R、G、B)=(255、255、255)の場合が白色(W)を、それぞれ示している。5進数の0〜4の値に各色を対応付けることで、色と5進数との対応関係を容易に定めることができる。
【0087】
もちろん、CYM座標系に基づいて定めても良い。この場合、(R、G、B)=(0、255、255)の場合がシアン(CYAN)を、(R、G、B)=(255、255、0)の場合がイエロー(YELLOW)を、(R、G、B)=(255、0、255)の場合がマゼンタ(MAGENTA)を、それぞれ示す。したがって、5進数の0〜4の値に対応付けるRGB座標値を変更するだけで、CYM座標系に変換することなく色と5進数との対応関係を容易に定めることができる。
【符号の説明】
【0088】
1 情報処理装置
2 撮像装置
3 表示装置
4 入力装置
11 主制御部
12 メモリ
13 記憶装置
14 ビデオインタフェース
15 入出力インタフェース
16 可搬型ディスクドライブ
17 通信インタフェース
18 内部バス
90 可搬型記録媒体
100 コンピュータプログラム

【特許請求の範囲】
【請求項1】
情報を表示する、コンピュータで判読することが可能なコードであって、
少なくともデータ領域、及び訂正領域を含み、
該データ領域は、
前記情報を色彩及び/又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成され、
前記訂正領域は、
前記データセルに色彩及び/又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び/又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成されることを特徴とするコンピュータで判読することが可能なコード。
【請求項2】
前記訂正領域は、前記データセル及び前記訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあることを特徴とする請求項1に記載のコンピュータで判読することが可能なコード。
【請求項3】
前記情報及び前記エラー訂正情報はp進数(pは5以上の素数)にて表示されていることを特徴とする請求項1又は2に記載のコンピュータで判読することが可能なコード。
【請求項4】
前記情報は(p−3)桁のp進数に分割され、前記エラー訂正情報は分割された情報のそれぞれに2桁のp進数を付加してあることを特徴とする請求項3記載のコンピュータで判読することが可能なコード。
【請求項5】
前記情報及び前記エラー訂正情報は5進数にて表示してあることを特徴とする請求項3又は4記載のコンピュータで判読することが可能なコード。
【請求項6】
分割された前記情報にハッシュコードを付加して、2桁の5進数に変換し、
変換した2桁の5進数に対してリードソロモン符号によるエラー訂正情報を2桁付加して4桁の5進数として一又は複数組の5進データを生成し、
生成した一又は複数組の4桁の5進データを、5進数それぞれに割り当てた色彩及び/又は濃淡を違えた4つの色データに変換し、
変換した一又は複数組の4つの色データを、配置した互いの距離の合計が最大化するよう前記データセル及び前記訂正セルを配置することが可能な領域に配置してあることを特徴とする請求項5記載のコンピュータで判読することが可能なコード。
【請求項7】
請求項6に記載のコンピュータで判読することが可能なコードを読み取る情報処理装置であって、
前記コードを撮像した画像データを取得する画像データ取得手段と、
取得した画像データからコードが撮像されている領域を切り出す領域切り出し手段と、
切り出した領域内のデータセル及び訂正セルの位置を判別する位置判別手段と、
前記データセル及び前記訂正セルごとの色データを取得し、5進数に変換する変換手段と、
変換した5進数に基づいて4桁の5進数として一又は複数組の5進データを再生する再生手段と、
リードソロモン符号によるエラー訂正を実行して、分割された前記情報を示す2桁の5進数をそれぞれ修復するエラー訂正手段と、
ハッシュ値を算出して、エラー訂正を実行して修復した後の2桁の5進数の正否をそれぞれ判定する判定手段と
を備えることを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−37565(P2013−37565A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【出願番号】特願2011−173797(P2011−173797)
【出願日】平成23年8月9日(2011.8.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(507374930)株式会社エフ・シー・エス (1)
【Fターム(参考)】