(57)【要約】【課題】いかなる環境下であっても、読取率を高く維持することが可能な、コンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置を提供する。【解決手段】データ領域は、情報を色彩及び／又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成される。訂正領域は、データセルに色彩及び／又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び／又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成される。訂正領域は、データセル及び訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置する。【選択図】図３
2013037565.tif 000002
【特許請求の範囲】
【請求項１】
情報を表示する、コンピュータで判読することが可能なコードであって、
少なくともデータ領域、及び訂正領域を含み、
該データ領域は、
前記情報を色彩及び／又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成され、
前記訂正領域は、
前記データセルに色彩及び／又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び／又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成されることを特徴とするコンピュータで判読することが可能なコード。
【請求項２】
前記訂正領域は、前記データセル及び前記訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあることを特徴とする請求項１に記載のコンピュータで判読することが可能なコード。
【請求項３】
前記情報及び前記エラー訂正情報はｐ進数（ｐは５以上の素数）にて表示されていることを特徴とする請求項１又は２に記載のコンピュータで判読することが可能なコード。
【請求項４】
前記情報は（ｐ−３）桁のｐ進数に分割され、前記エラー訂正情報は分割された情報のそれぞれに２桁のｐ進数を付加してあることを特徴とする請求項３記載のコンピュータで判読することが可能なコード。
【請求項５】
前記情報及び前記エラー訂正情報は５進数にて表示してあることを特徴とする請求項３又は４記載のコンピュータで判読することが可能なコード。
【請求項６】
分割された前記情報にハッシュコードを付加して、２桁の５進数に変換し、
変換した２桁の５進数に対してリードソロモン符号によるエラー訂正情報を２桁付加して４桁の５進数として一又は複数組の５進データを生成し、
生成した一又は複数組の４桁の５進データを、５進数それぞれに割り当てた色彩及び／又は濃淡を違えた４つの色データに変換し、
変換した一又は複数組の４つの色データを、配置した互いの距離の合計が最大化するよう前記データセル及び前記訂正セルを配置することが可能な領域に配置してあることを特徴とする請求項５記載のコンピュータで判読することが可能なコード。
【請求項７】
請求項６に記載のコンピュータで判読することが可能なコードを読み取る情報処理装置であって、
前記コードを撮像した画像データを取得する画像データ取得手段と、
取得した画像データからコードが撮像されている領域を切り出す領域切り出し手段と、
切り出した領域内のデータセル及び訂正セルの位置を判別する位置判別手段と、
前記データセル及び前記訂正セルごとの色データを取得し、５進数に変換する変換手段と、
変換した５進数に基づいて４桁の５進数として一又は複数組の５進データを再生する再生手段と、
リードソロモン符号によるエラー訂正を実行して、分割された前記情報を示す２桁の５進数をそれぞれ修復するエラー訂正手段と、
ハッシュ値を算出して、エラー訂正を実行して修復した後の２桁の５進数の正否をそれぞれ判定する判定手段と
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置に関する。特に色彩及び／又は濃淡を違えて表示してあるセルの配置により情報をエンコードしたコード、及びエンコードされたコードをデコードする情報処理装置に関する。
【背景技術】
【０００２】
商品等に関する情報を短時間で正確に取得するために、様々なコードをカメラ、スキャナ等で読み取って認識する方法が多々開発されている。例えば一次元コードであるバーコードは、線の太さの相違、間隔の相違等を検出することにより商品等に関する情報をデコードすることができる。また、二次元コードとして代表的なＱＲコードは、３つの角部に配置されている比較的大きな四角形のファインダーパターンを抽出し、ＱＲコードの回転角度、形状を認識することによりデコードすることができる。
【０００３】
しかし、いずれのコードも白黒画像であることから、コードに付着した汚れ、コードを画像として取得する時のピント調整の不備等により誤ってデコードされるおそれがあった。そこで、例えば特許文献１では、色彩及び／又は濃淡を違えて表示することにより情報をエンコードするカラーコード（登録商標）が開示されている。
【０００４】
特許文献１に開示してあるカラーコード（登録商標）は、カラーの二次元図形として必要な情報をエンコードしており、カラースキャナ等で画像情報を取得してデコードすることにより情報を取得する。色彩及び／又は濃淡を違えて表示することにより情報をエンコードしているので、カラーコード（登録商標）に汚れが付着している場合であっても正しいデコード値を容易に推定することができる。また、画像取得時にピントずれ等が生じて画像が鮮明でない場合であっても、カラーコード（登録商標）を確実にデコードすることが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３３３６３１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示してあるカラーコード（登録商標）は、パリティ情報を有していることからデコードした情報の正否を判断することはできる。しかし、読取時に発生したエラーを修復することが可能なエラー訂正情報を有していないので、一部の情報が欠損した場合、エラー訂正を行うことができない。したがって、一部に判別不能になる程度の汚れが付着した場合、又は一部が欠損した場合にはデコード不能となり、ユーザにとって必ずしも使い勝手の良いコードではなかった。また、製造ライン等に用いた場合には、エラー訂正を行うために作業を止める必要が生じ、歩留まりの発生を招くおそれもあった。
【０００７】
本発明は上記事情に鑑みてなされたものであり、いかなる環境下であっても、読取率を高く維持することが可能な、コンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために第１発明に係るコンピュータで判読することが可能なコードは、少なくともデータ領域、及び訂正領域を含み、該データ領域は、前記情報を色彩及び／又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成され、前記訂正領域は、前記データセルに色彩及び／又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び／又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成されることを特徴とする。
【０００９】
第１発明では、少なくともデータ領域、及び訂正領域を含み、該データ領域は、情報を色彩及び／又は濃淡を違えてエンコードして表示する、少なくとも一のデータセルとして形成され、訂正領域は、データセルに色彩及び／又は濃淡を違えて表示された情報を読み取る場合に、誤って読み取った情報を正しい情報に修復するためのエラー訂正情報を、色彩及び／又は濃淡を違えて表示する、少なくとも一の訂正セルとして形成される。パリティ情報ではなくエラー訂正情報を訂正セルとして配置することができるので、色彩及び／又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【００１０】
また、第２発明に係るコンピュータで判読することが可能なコードは、第１発明において、前記訂正領域は、前記データセル及び前記訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあることを特徴とする。
【００１１】
第２発明では、訂正領域は、データセル及び訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあるので、コードの一部に汚れが付着した場合、一部が欠損した場合等であっても確実に読み取った情報を修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【００１２】
また、第３発明に係るコンピュータで判読することが可能なコードは、第１又は第２発明において、前記情報及び前記エラー訂正情報はｐ進数（ｐは５以上の素数）にて表示されていることを特徴とする。
【００１３】
第３発明では、情報及びエラー訂正情報はｐ進数（ｐは５以上の素数）にて表示されているので、確実にエラー訂正情報を２桁確保することができ、エラー訂正情報を離して配置することにより、色彩及び／又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【００１４】
また、第４発明に係るコンピュータで判読することが可能なコードは、第３発明において、前記情報は（ｐ−３）桁のｐ進数に分割され、前記エラー訂正情報は分割された情報のそれぞれに２桁のｐ進数を付加してあることを特徴とする。
【００１５】
第４発明では、情報は（ｐ−３）桁のｐ進数に分割され、エラー訂正情報は分割された情報のそれぞれに２桁のｐ進数を付加してあるので、色彩及び／又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【００１６】
また、第５発明に係るコンピュータで判読することが可能なコードは、第３又は第４発明において、前記情報及び前記エラー訂正情報は５進数にて表示してあることを特徴とする。
【００１７】
第５発明では、情報及びエラー訂正情報は５進数にて表示してあるので、確実にエラー訂正情報を２桁確保し、残りの桁で分割された情報をそれぞれ表示することができるので、色彩及び／又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【００１８】
また、第６発明に係るコンピュータで判読することが可能なコードは、第５発明において、分割された前記情報にハッシュコードを付加して、２桁の５進数に変換し、変換した２桁の５進数に対してリードソロモン符号によるエラー訂正情報を２桁付加して４桁の５進数として一又は複数組の５進データを生成し、生成した一又は複数組の４桁の５進データを、５進数それぞれに割り当てた色彩及び／又は濃淡を違えた４つの色データに変換し、変換した一又は複数組の４つの色データを、配置した互いの距離の合計が最大化するよう前記データセル及び前記訂正セルを配置することが可能な領域に配置してあることを特徴とする。
【００１９】
第６発明では、分割された情報にハッシュコードを付加して、２桁の５進数に変換し、変換した２桁の５進数に対してリードソロモン符号によるエラー訂正情報を２桁付加して４桁の５進数として一又は複数組の５進データを生成する。生成した一又は複数組の４桁の５進データを、５進数それぞれに割り当てた色彩及び／又は濃淡を違えた４つの色データに変換し、変換した一又は複数組の４つの色データを、配置した互いの距離の合計が最大化するようデータセル及び訂正セルを配置することが可能な領域に配置する。これにより、変換した一又は複数組の色データを、配置した互いの距離の合計が最大化するようデータセル及び訂正セルを配置することが可能な領域に配置するので、コードの一部に汚れが付着したり、一部が欠損したりすることにより、色彩及び／又は濃淡を違えて表示された情報を誤って読み取った場合であっても、エラー訂正情報を取得し損ねる確率を最小限にとどめることができ、確実にエラー訂正情報を取得することにより、誤って読み取った情報を確実に修復することが可能となる。
【００２０】
次に、上記目的を達成するために第７発明に係る情報処理装置は、第６発明のコンピュータで判読することが可能なコードを読み取る情報処理装置であって、前記コードを撮像した画像データを取得する画像データ取得手段と、取得した画像データからコードが撮像されている領域を切り出す領域切り出し手段と、切り出した領域内のデータセル及び訂正セルの位置を判別する位置判別手段と、前記データセル及び前記訂正セルごとの色データを取得し、５進数に変換する変換手段と、変換した５進数に基づいて４桁の５進数として一又は複数組の５進データを再生する再生手段と、リードソロモン符号によるエラー訂正を実行して、分割された前記情報を示す２桁の５進数をそれぞれ修復するエラー訂正手段と、ハッシュ値を算出して、エラー訂正を実行して修復した後の２桁の５進数の正否をそれぞれ判定する判定手段とを備えることを特徴とする。
【００２１】
第７発明では、コードを撮像した画像データを取得し、取得した画像データからコードが撮像されている領域を切り出す。切り出した領域内のデータセル及び訂正セルの位置を判別し、データセル及び訂正セルごとの色データを取得し、５進数に変換して、変換した５進数に基づいて４桁の５進数として一又は複数組の５進データを再生する。リードソロモン符号によるエラー訂正を実行して、分割された情報を示す２桁の５進数をそれぞれ修復し、ハッシュ値を算出して、エラー訂正を実行して修復した後の２桁の５進数の正否をそれぞれ判定する。これにより、ハッシュ値を用いてエラー訂正を実行して修復した後の２桁の５進数がそれぞれ正しく読み取られているか否かを判定することができるので、色データ取得時の演算エラー等を確実に排除することができ読み取り精度を向上させることが可能となる。
【発明の効果】
【００２２】
本発明によれば、パリティ情報ではなくエラー訂正情報を訂正セルとして配置することができるので、色彩及び／又は濃淡を違えて表示された情報を誤って読み取った場合であっても、確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の主制御部の本コードのエンコード処理の流れを示すフローチャートである。
【図３】エンコードした本コードの例示図である。
【図４】本発明の実施の形態に係る情報処理装置の距離算出方法の説明図である。
【図５】本発明の実施の形態に係る情報処理装置の一構成例を示す機能ブロック図である。
【図６】本発明の実施の形態に係る情報処理装置の主制御部の本コードのデコード処理の流れを示すフローチャートである。
【図７】本発明の実施の形態に係る４桁の５進数の例示図である。
【図８】ＲＧＢ座標系と色との関係を示す模式図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態に係るコンピュータで判読することが可能なコード及び該コードを読み取る情報処理装置について、図面を参照しながら説明する。なお、参照する図面を通じて、同一又は同様の構成又は機能を有する要素については、同一又は同様の符号を付して、詳細な説明を省略する。
【００２５】
図１は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。本実施の形態に係る情報処理装置１は、認識対象物、例えば品質検査時の検査対象物に貼付されたコードを撮像する撮像装置２、液晶パネル等の表示装置３、入力装置４と、データ通信することが可能に接続されている。
【００２６】
本実施の形態に係る情報処理装置１は、少なくともＣＰＵ（中央演算装置）、ＬＳＩ等で構成された主制御部１１、メモリ１２、記憶装置１３、ビデオインタフェース１４、入出力インタフェース１５、可搬型ディスクドライブ１６、通信インタフェース１７及び上述したハードウェアを接続する内部バス１８で構成されている。主制御部１１は、内部バス１８を介して情報処理装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置１３に記憶されているコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ１２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００２７】
記憶装置１３は、内蔵される固定型記憶装置（ハードディスク、フラッシュメモリ）、ＲＯＭ等で構成されている。記憶装置１３に記憶されているコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ等の可搬型記録媒体９０から、可搬型ディスクドライブ１６によりダウンロードされ、実行時には記憶装置１３からメモリ１２へ展開して実行される。もちろん、通信インタフェース１７を介して外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００２８】
記憶装置１３には、撮像装置２にて撮像した画像の画像データも記憶する。撮像装置２は、ＣＣＤ撮像素子を備えたＣＣＤカメラ等であり、少なくとも一のコードを含む画像を撮像して取得する。情報処理装置１は、入出力インタフェース１５を介して撮像装置２で撮像した画像データを取得し、コードの読み取り処理だけでなく、さまざまな画像処理を実行する。
【００２９】
通信インタフェース１７は内部バス１８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置１３は、情報処理装置１に内蔵される構成に限定されるものではなく、通信インタフェース１７を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記録媒体であっても良い。
【００３０】
ビデオインタフェース１４は、内部バス１８に接続されており、表示装置３に接続されることにより、所望の画像を表示する。入出力インタフェース１５は、内部バス１８に接続されており、入力装置４を介してデータの入力を受け付ける。なお、入力装置４は、表示装置３と一体になっていても良いし、別個に構成されていても良い。
【００３１】
図２は、本発明の実施の形態に係る情報処理装置１の主制御部１１の本コードのエンコード処理の流れを示すフローチャートである。なお、以下「本コード」とは、本願発明に係る色情報を含むコードを意味する。主制御部１１は、エンコード対象となる情報を取得し（ステップＳ２０１）、取得した情報に基づいてハッシュコードを生成する（ステップＳ２０２）。情報の取得は、キーボード等の入力装置４からの直接入力であっても良いし、通信インタフェース１７を介して受信しても良い。ハッシュコードは、周知のハッシュ関数に基づいて生成すれば良い。
【００３２】
主制御部１１は、生成したハッシュコードをエンコード対象となる情報に付加して５進数に変換する（ステップＳ２０３）。この時点でハッシュコードを付加するのは、デコード時に正しくデコードされたか否かを判定することができるようにするためである。
【００３３】
主制御部１１は、５進数に変換した情報を２桁ずつＮ（Ｎは自然数）個に分割し（ステップＳ２０４）、ｎ（ｎは自然数）の初期値を‘１’に設定する（ステップＳ２０５）。主制御部１１は、ｎ番目の２桁の５進数にリードソロモン符号によるエラー訂正コード（エラー訂正情報）２桁を付加して４桁の５進数として５進データを生成する（ステップＳ２０６）。
【００３４】
主制御部１１は、ｎがＮに到達したか否かを判断し（ステップＳ２０７）、主制御部１１が、ｎがＮに到達していないと判断した場合（ステップＳ２０７：ＮＯ）、主制御部１１は、ｎを‘１’インクリメントして（ステップＳ２０８）、処理をステップＳ２０６へ戻して上述した処理を繰り返す。主制御部１１が、ｎがＮに到達したと判断した場合（ステップＳ２０７：ＹＥＳ）、主制御部１１は、５進数の桁ごとに対応する色データをそれぞれ割り当てる（ステップＳ２０９）。
【００３５】
主制御部１１は、割り当てた色データを、それぞれ個別のセルとして、所定のルール（以下、配置ルール）に基づいて、データセル及びエラー訂正セルを配置することが可能な領域に配置する（ステップＳ２１０）。図３は、エンコードした本コードの例示図である。
【００３６】
図３の例では、セルを配置する領域が縦横６セル×６セルである場合を示しており、Ｄ１、Ｄ２がエンコード対象となる情報を２桁ずつ分割したそれぞれの情報を示すデータセルを、Ｅ１、Ｅ２が情報に付加されたエラー訂正情報を２桁ずつ分割したエラー訂正セルを、それぞれ表している。図３に示すように、セルを配置する領域が縦横６セル×６セルである場合、データセル同士、あるいはエラー訂正セル同士を互いにできるだけ離し、しかも縦横又は４５度（１３５度）の方向に並ばないように配置する。配置ルールは、特にこれに限定されるものではなく、例えば２桁のデータセルと２桁のエラー訂正セルとで一組と考えた場合に、４つのセルのうち２つのセル間の距離の合計を組ごとに算出し、最小二乗法によりすべての組の距離の合計の総和が最大化するように、複数組のデータセル及びエラー訂正セルを同一のセルを配置する領域に互いにセルが重複しないように配置する。
【００３７】
図４は、本発明の実施の形態に係る情報処理装置１の距離算出方法の説明図である。図４では、○印がデータセルを、×印がエラー訂正セルを、それぞれ示している。図４（ａ）は、４桁の５進数で構成される複数組の５進データについて、データセル、エラー訂正セルが、一組ごとに配置ルールに基づいて配置された本コードを示している。
【００３８】
２つのセル間の距離の合計とは、一組ごとに２つのセル間の直線距離を算出して合算することを意味しており、すべての組で合算した距離を合計した値を最大化するように、すべての組のデータセル及びエラー訂正セルが配置される位置を、セルが配置される領域内で互いに重複しないように特定する。すなわち、図４（ｂ）に示すように、２つのデータセル、２つのエラー訂正セルの４つのセルから２つを選択し、選択した２つのセル間の距離Ｌ１、Ｌ２、Ｌ３、Ｌ４、Ｌ５、Ｌ６を算出して合算する。そして、組ごとに合算した距離の総和が最大化するように、データセル及びエラー訂正セルがセルを配置する領域に互いに重複することなく配置される位置を特定する。
【００３９】
このようにすることで、局所的なデータ欠損が生じた場合であっても、２桁以上の欠損を回避することにより情報の修復を可能とすることができる。もちろん、セルを配置する領域が縦横６セル×６セルである必然性は無く、通常はもっと広範囲に多くの情報が分散している。また、エラー訂正セルはセルを配置する領域全体に均等な割合になるよう点在して配置してあるので、局所的な汚れや欠損が生じた場合であっても情報を修復することができる可能性が高い。また、セルの配置ルールを特定しておくことにより、データセル及びエラー訂正セルの配置が一義的に定まる。したがって、本実施の形態に係る情報処理装置１は、セルの配置ルールのみを記憶装置１３に記憶しておけば良い。
【００４０】
図５は、本発明の実施の形態に係る情報処理装置１の一構成例を示す機能ブロック図である。図５において、本実施の形態に係る情報処理装置１は、撮像装置２、表示装置３、及び入力装置４と、データ通信することが可能に接続されている。なお、本実施の形態では、二次元の本コードを含む画像から二次元の本コードをデコードする場合について説明する。
【００４１】
画像データ取得手段５０１は、少なくとも一の二次元の本コードを含む画像を、撮像装置２で撮像することにより画像データとして取得する。画像を取得する方法は、撮像装置２により撮像して取得する方法に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置１３に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース１７を介して読み出すことで取得しても良い。取得した画像は表示装置３に表示しても良いし、しなくても良い。
【００４２】
画像データ修正手段５０２は、取得した画像に含まれる本コードの画像に基づいて、取得した画像の位置及び回転角度を修正した画像データを生成する。すなわち、取得した画像を画面に表示した場合に、本コードが画面中央、しかも表示画面の縦横と本コードの縦横とがそれぞれ平行になるように画像の位置及び回転角度を修正した画像データを生成する。
【００４３】
領域切り出し手段５０３は、修正した画像データから、本コードが撮像されている領域を切り出す。領域の切り出し方法は、周知の方法であれば特に限定されるものではない。例えば、本実施の形態では二次元の本コードを用いるので、本コードが存在する領域では複数の色のコードが存在するのに対して、存在しない領域では背景を示す単一色のコードが連続して存在する。したがって、両者のコードの違いにより、本コードが撮像されている領域とそうではない領域との境界を推定することが可能となる。
【００４４】
位置判別手段５０４は、切り出した領域内のセル（データセル及びエラー訂正セル）の位置を判別する。位置判別手段５０４では、記憶装置１３に記憶してあるセルの配置ルールに基づいて、切り出された領域内のデータセル及びエラー訂正セルの位置を特定することにより、どのセルがデータセルで、どのセルがエラー訂正セルであるのかを判別する。
【００４５】
変換手段５０５は、判別した位置に配置してあるセル（データセル及びエラー訂正セル）ごとの色データを取得し、５進数に変換する。再生手段５０６は、取得した色データを変換した５進数に基づいて、４桁の５進数として５進データを再生する。すなわち、データセルについては各データセルの色データを取得して変換した５進数に基づく２桁の５進数とし、エラー訂正セルについては各エラー訂正セルの色データを取得して変換した５進数に基づく２桁の５進数とし、これらを合わせた合計４桁の５進数として５進データを再生する。
【００４６】
例えば図３では、セルを配置する領域に４つのセルが、すなわち１組の４桁の５進数が点在して配置されている。エラー訂正セルを１つでも読み取ることができれば、読み取ることができなかったデータセルを修復することができる。従来のカラーコード（登録商標）を含む二次元コードにも、エラー訂正セルは存在するが、エラー訂正セルを一定の領域に連続して配置しているので、エラー訂正セルを配置してある一定の領域を欠損した場合等には、データセルから誤って読み取ったデータを修復する手段がない。
【００４７】
これに対して、本実施の形態では、図３に示すようにエラー訂正セルを記憶してあるセルの配置ルールに基づいてデータセルとともに均等な割合で点在させて配置しているので、本コードの一部に汚れが付着した場合、一部が欠損した場合等であっても、いずれか一方のエラー訂正セルを正常にデコードすることができ、誤って読み取った情報を確実に修復することが可能となる。
【００４８】
図５に戻って、エラー訂正手段５０７は、エラー訂正セルを再生した２桁の５進数をエラー訂正情報として、リードソロモン符号によるエラー訂正を実行して、データセルを再生した２桁の５進数を修復する。データセルを正しくデコードしていた場合には、デコード結果は変化しない。
【００４９】
判定手段５０８は、ハッシュ値を算出して、エラー訂正を実行した後の２桁の５進数の正否を判定する。つまり、エンコードする前のハッシュ値と、デコードした後のハッシュ値とが合致しているか否かを判定することにより、通信途上の欠損等により情報自体に誤りが生じていないことを確認することができる。
【００５０】
出力手段５０９は、判定手段５０８がエンコードする前のハッシュ値と、デコードした後のハッシュ値とが合致していると判定した場合にはデコードした情報をそのまま出力し、合致していないと判定した場合には、デコードされた情報の読み取りにエラーが生じている旨を示す情報を出力する。
【００５１】
図６は、本発明の実施の形態に係る情報処理装置１の主制御部１１の本コードのデコード処理の流れを示すフローチャートである。主制御部１１は、少なくとも一の二次元の本コードを含む画像を、撮像装置２で撮像することにより画像データとして取得する（ステップＳ６０１）。画像を取得する方法は、撮像装置２により撮像して取得する方法に限定されるものではなく、過去に撮像された画像を画像データとして記憶装置１３に記憶しておき、所望の画像データを読み出すことで取得しても良い。また、外部のコンピュータに記憶してある画像データを通信インタフェース１７を介して読み出すことで取得しても良い。取得した画像は表示装置３に表示しても良いし、しなくても良い。
【００５２】
主制御部１１は、取得した画像に含まれる本コードに基づいて、取得した画像の位置及び回転角度を修正した画像データを生成する（ステップＳ６０２）。すなわち、取得した画像を画面に表示した場合に、本コードが画面中央、しかも表示画面の縦横と本コードの縦横とがそれぞれ平行になるように画像の位置及び回転角度を修正した画像データを生成する。
【００５３】
主制御部１１は、修正した画像データから、本コードが撮像されている領域を切り出す（ステップＳ６０３）。領域の切り出し方法は、周知の方法であれば特に限定されるものではない。例えば、本実施の形態では二次元の本コードを用いるので、本コードが存在する領域では複数の色のコードが点在して均等な割合で存在するのに対して、存在しない領域では背景を示す単一色のコードが連続して存在する。したがって、両者のコードの並びの違いにより、本コードが撮像されている領域とそうではない領域との境界を推定することが可能となる。
【００５４】
もちろん、従来の二次元コードと同様、本コードの四隅のセルに特徴データを付与し、特徴データを検出することにより本コードが撮像されている領域を切り出しても良い。この場合、四隅のセルのうち３つのセルに特徴データを付与しても良いし、本コードの対角線上の端点となる２つのセルに特徴データを付与しても良い。
【００５５】
主制御部１１は、切り出した領域内のセル（データセル及びエラー訂正セル）の位置を判別する（ステップＳ６０４）。具体的には、記憶装置１３に記憶してあるセルの配置ルールに基づいて、切り出された領域内のデータセル及びエラー訂正セルの位置を特定することにより、どのセルがデータセルで、どのセルがエラー訂正セルであるのかを判別する。
【００５６】
なお、すべての組で２つのセル間の直線距離を算出して合算した距離を合計した値を最大化するセルの配置の組み合わせは、一義的に定まる場合もあれば複数定まる場合もある。そこで、通常は事前にデータセル及びエラー訂正セルの配置ルールを定めておき、本コードのエンコード時には事前に定めた配置ルールに基づいてデータセル及びエラー訂正セルを配置する。したがって、本コードのデコード時には、配置ルールがわかっているので、データセル及びエラー訂正セルの位置は自明であり、誤りなくデコードすることが可能となる。
【００５７】
主制御部１１は、判別した位置に配置してあるセル（データセル及びエラー訂正セル）ごとの色データを取得し、５進数に変換する（ステップＳ６０５）。具体的には、５進数の０、１、２、３、４のそれぞれに、例えば黒、赤、緑、青、白の５色を対応させておき、取得したセルごとの色データに応じてそれぞれ５進数の値に変換する。
【００５８】
主制御部１１は、取得した色データを変換した５進数の値を並べることで、４桁の５進数としてそれぞれ分割されたＮ個の５進データを再生する（ステップＳ６０６）。具体的には、エンコード時のセルの配置ルールを記憶装置１３から読み出し、点在して配置されている複数のセルを組み合わせて、それぞれ４桁の５進数として５進データを再生する。すなわち、データセルについては各データセルの色データを取得して変換した５進数の値に基づく２桁の５進数とし、エラー訂正セルについては各エラー訂正セルの色データを取得して変換した５進数の値に基づく２桁の５進数とし、これらを合わせて４桁の５進数として分割されたＮ個の５進データを再生する。
【００５９】
主制御部１１は、ｍ（ｍは自然数）を‘１’に設定し（ステップＳ６０７）、ｍ番目の４桁の５進数について、エラー訂正セルを再生した２桁の５進数をエラー訂正情報として、リードソロモン符号によるエラー訂正を実行して、データセルを再生した２桁の５進数、すなわち情報を示す２桁の５進数を修復する（ステップＳ６０８）。
【００６０】
ここで、リードソロモン符号によるエラー訂正方法を５進数の場合を例に挙げて説明する。なお、以下の演算における加減乗除は、すべて‘５’の剰余系で行われる。まず５進数の場合の生成多項式を定める。生成多項式は、素数によってそれぞれ変動する。５進数の場合は、（式１）のように求められる。なお、生成多項式も‘５’の剰余系で表示され、因数分解されている第一式を展開した第二式において、ｘの一次項の係数は‘−６’が‘４’に、ｘの０次項の係数は‘８’が‘３’となる第三式が求められる。第三式右端の（５）は係数が‘５’の剰余系として５進数表記されている旨を示している。
【００６１】
【数１】
2013037565.tif 000003
【００６２】
次に、データセルの値をａ、ｂ（ａ、ｂは５進数の値）とし、生成多項式で除算した剰余Ｒ（ｘ）を（式２）に示すように算出する。なお、剰余Ｒ（ｘ）を一次式として算出するため、データセルの値ａ、ｂを用いた一次式Ｉ（ｘ）に、生成多項式との次数を合わせるためにｘ2 を乗算している。以下、剰余演算は関数ｍｏｄで表しており、（Ａ  ｍｏｄ  Ｂ）はＡをＢで除算した場合の剰余を示している。
【００６３】
【数２】
2013037565.tif 000004
【００６４】
次に、データセルの値ａ、ｂに対するエラー訂正情報として、エラー訂正セルの値ｃ、ｄ（ｃ、ｄは５進数の値）を算出する。エラー訂正セルの値ｃ、ｄを用いて、エンコード時の真値Ｗ（ｘ）は、（式３）で表すことができる。（式３）に示す一次項、０次項の係数が、それぞれエラー訂正セルの値ｃ、ｄである。もちろん三次項、二次項の係数は、それぞれデータセルの値ａ、ｂであることは言うまでもない。
【００６５】
【数３】
2013037565.tif 000005
【００６６】
そして、本コードをデコードした結果として、データセルの値ａ’、ｂ’、エラー訂正セルの値ｃ’、ｄ’が算出される。デコードした結果を示す多項式をＹ（ｘ）とすると、（式４）のように表すことができる。デコード時にエラーが発生していなければ、（式３）のＷ（ｘ）と一致する。
【００６７】
【数４】
2013037565.tif 000006
【００６８】
５進数の生成多項式である（式１）が０（ゼロ）となるｘの値は、ｘ＝２、４となる。ｘ＝２、４である場合、デコード時にエラーが発生していないと仮定すると、エンコード時の真値Ｗ（ｘ）も０（ゼロ）となる。すなわちＷ（２）＝Ｗ（４）＝０となる。
【００６９】
デコードした結果を示す多項式Ｙ（ｘ）にｘ＝２、４を代入すると、（式５）、（式６）を得る。（式５）、（式６）においても、それぞれ第二式は係数を５進数表記している。各式右端の（５）は係数が‘５’の剰余系として５進数表記されている旨を示している。
【００７０】
【数５】
2013037565.tif 000007
【００７１】
一方、エンコード時の真値Ｗ（ｘ）を用いてデコードした結果を示す多項式Ｙ（ｘ）は、（式７）のように表すことができる。（式７）において、右辺第２項の‘ｅ’は、デコードした値と真の値との間のオフセット値を示しており、‘ｉ’は、デコード時にエラーが発生した係数の次数を表している。
【００７２】
【数６】
2013037565.tif 000008
【００７３】
具体的には、（式６）及び（式５）を（式７）に代入して整理すると、（式８）を得る。
【００７４】
【数７】
2013037565.tif 000009
【００７５】
Ｗ（２）、Ｗ（４）はそれぞれ０（ゼロ）であるので、（式８）から‘ｅ’及び‘ｉ’が一義的に定まる。例えば‘ｅ’＝１、‘ｉ’＝２である場合、エラーが発生した係数の次数が‘２’であるので、２次項、すなわちデータセルの値のｘ2 の係数であるｂが‘１’大きくなっていることがわかる。したがって、例えばデコード時にｂの値が‘３’である場合には、正しいｂの値が‘２’であることがわかる。
【００７６】
図７は、本発明の実施の形態に係る４桁の５進数を示す例示図である。まず図７（ａ）に示すように、エンコード対象となる情報を２桁の５進数‘４３’に変換する。次に図７（ｂ）に示すように、２桁のエラー訂正コード‘０１’を付加することで、４桁の５進数‘４３０１’を得る。本コードは、この‘４３０１’をそれぞれ色データに変換することにより求めている。
【００７７】
そして、図７（ｃ）に示すように、デコードされた４桁の５進数が‘４１０１’であった場合、２桁のエラー訂正コード‘０１’は正しくデコードされているので、図７（ｄ）に示すように正しい４桁の５進数‘４３０１’へと修復することが可能となる。
【００７８】
図６に戻って、主制御部１１は、ｍがＮに到達したか否かを判断し（ステップＳ６０９）、主制御部１１が、ｍがＮに到達していないと判断した場合（ステップＳ６０９：ＮＯ）、主制御部１１は、ｍを‘１’インクリメントして（ステップＳ６１０）、処理をステップＳ６０８へ戻して上述した処理を繰り返す。主制御部１１が、ｍがＮに到達したと判断した場合（ステップＳ６０９：ＹＥＳ）、主制御部１１は、デコードされた情報に基づいてハッシュ値を算出する（ステップＳ６１１）。
【００７９】
主制御部１１は、算出したハッシュ値が、エンコードする前の情報に基づいて算出したハッシュ値と一致しているか否かを判断する（ステップＳ６１２）。主制御部１１が、一致していると判断した場合（ステップＳ６１２：ＹＥＳ）、主制御部１１は、デコードされた情報が正しいと判断して、デコードした情報として２桁の５進数を出力する（ステップＳ６１３）。主制御部１１が、一致していないと判断した場合（ステップＳ６１２：ＮＯ）、主制御部１１は、デコードされた情報が誤りであると判断して、エラーである旨を示す情報を出力する（ステップＳ６１４）。
【００８０】
以上のように本実施の形態によれば、パリティ情報ではなく、エラー訂正情報を訂正セルとして配置することができるので、色彩及び／又は濃淡を違えて表示された情報を誤って読み取った場合であっても確実に正しい情報へと修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。また、訂正領域として訂正セルを、データセル及び訂正セルを配置することが可能な領域全体に均等な割合で点在させて配置してあるので、本コードの一部に汚れが付着した場合、一部が欠損した場合等であっても確実に情報を修復することができ、再読み取り作業等の発生を未然に回避することが可能となる。
【００８１】
なお、上述した本実施の形態では、情報を５進数で表した場合について説明している。情報を５進数で表した場合、情報の桁数は、冗長化させたリードソロモン符号を２桁、ハッシュ値算出用のハッシュ情報を１桁、確保できれば良い。情報をｐ進数で表した場合も同様であるが、リードソロモン符号によるエラー訂正を実行するためには、情報が２桁以上である必要がある。したがって、ｐ進数表示する場合には、ｐは５以上の素数であることが必要となる。
【００８２】
情報の桁数をｒ、エラー訂正情報の桁数をｓ（ｓ＝２）とすると、素数ｐは（式９）で算出することができる。
【００８３】
ｐ  ＝  ｒ＋ｓ＋１  ・・・（式９）
【００８４】
このようにすることで、本実施の形態のように５進数表示する場合（ｐ＝５）には、リードソロモン符号によるエラー訂正の実行対象となる情報の桁数は‘２’となる。同様に、７進数表示する場合（ｐ＝７）には、情報の桁数は‘４’となり、１１進数表示する場合（ｐ＝１１）には、情報の桁数は‘８’となる。
【００８５】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば色と５進数との対応関係をＲＧＢ座標系に基づいて定めても良い。
【００８６】
図８は、ＲＧＢ座標系と色との関係を示す模式図である。ＲＧＢ座標系では、Ｒ軸、Ｇ軸、Ｂ軸それぞれ０〜２５５と仮定している。図８の例では、（Ｒ、Ｇ、Ｂ）＝（２５５、０、０）の場合が赤色を、（Ｒ、Ｇ、Ｂ）＝（０、２５５、０）の場合が緑色を、（Ｒ、Ｇ、Ｂ）＝（０、０、２５５）の場合が青色を、それぞれ示している。そして、（Ｒ、Ｇ、Ｂ）＝（０、０、０）の場合が黒色（ＢＬ）を、（Ｒ、Ｇ、Ｂ）＝（２５５、２５５、２５５）の場合が白色（Ｗ）を、それぞれ示している。５進数の０〜４の値に各色を対応付けることで、色と５進数との対応関係を容易に定めることができる。
【００８７】
もちろん、ＣＹＭ座標系に基づいて定めても良い。この場合、（Ｒ、Ｇ、Ｂ）＝（０、２５５、２５５）の場合がシアン（ＣＹＡＮ）を、（Ｒ、Ｇ、Ｂ）＝（２５５、２５５、０）の場合がイエロー（ＹＥＬＬＯＷ）を、（Ｒ、Ｇ、Ｂ）＝（２５５、０、２５５）の場合がマゼンタ（ＭＡＧＥＮＴＡ）を、それぞれ示す。したがって、５進数の０〜４の値に対応付けるＲＧＢ座標値を変更するだけで、ＣＹＭ座標系に変換することなく色と５進数との対応関係を容易に定めることができる。
【符号の説明】
【００８８】
１  情報処理装置
２  撮像装置
３  表示装置
４  入力装置
１１  主制御部
１２  メモリ
１３  記憶装置
１４  ビデオインタフェース
１５  入出力インタフェース
１６  可搬型ディスクドライブ
１７  通信インタフェース
１８  内部バス
９０  可搬型記録媒体
１００  コンピュータプログラム
【図１】
2013037565.tif 000010
【図２】
2013037565.tif 000011
【図３】
2013037565.tif 000012
【図４】
2013037565.tif 000013
【図５】
2013037565.tif 000014
【図６】
2013037565.tif 000015
【図７】
2013037565.tif 000016
【図８】
2013037565.tif 000017