(57)【要約】      （修正有）【課題】ロバスト・インデックス・コード画像が劣化して得られた劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号できるロバスト・インデックス・コードを提供する。【解決手段】劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号できるロバスト・インデックス・コードであり、符号化処理ではインデックスに基づいて得られた各Ｎ（Ｎ≧２）ビットのビット列に対し、それぞれＮ個の色情報によるカラー化を行うことでロバスト・インデックス・コード画像を生成し、ロバスト復号化処理では、全ての劣化有りのデータ領域に対応する色情報から二元化アルゴリズムに基づいてインデックス候補群を生成し、複数の第一画像属性値と複数の第二画像属性値を比較することでインデックス候補群を検証することで得られた仮正解インデックスとされたインデックス候補の数に応じて正解インデックスを選定する。【選択図】図２
2016177743.tif 000002
【特許請求の範囲】
【請求項１】
オリジナル画像を一意的に識別でき、且つ、十進数であるインデックスに対し、符号化処理を行うことで生成されたロバスト・インデックス・コード画像を前記オリジナル画像に埋め込むことで得られたロバスト・インデックス・コード付き画像がネットワークを介する際に行われる画像処理によって劣化して得られた劣化後のロバスト・インデックス・コード付き画像に含まれている劣化後のロバスト・インデックス・コード画像から、前記インデックスをロバスト復号化処理によってロバストに復号できるロバスト・インデックス・コードであって、
前記オリジナル画像、前記オリジナル画像の画像関連情報、前記ロバスト・インデックス・コード付き画像、及び、前記オリジナル画像又は前記ロバスト・インデックス・コード付き画像に基づいて生成された前記オリジナル画像の複数の画像属性値は、前記インデックスに紐付けられてデータベースに格納されており、
前記符号化処理では、前記インデックスを変換して得られた二進数のビット列から得られた各N（Ｎ≧２）ビットのビット列に対し、N個の色情報によるカラー化を行うことで、前記インデックスを符号化することによって、前記ロバスト・インデックス・コード画像を生成し、
前記ロバスト復号化処理は、インデックス候補群生成処理と、インデックス候補群検証処理と、正解インデックス選定処理とで構成されており、
前記インデックス候補群生成処理では、前記劣化後のロバスト・インデックス・コード画像における全ての劣化有りのデータ領域に対応する色情報から二元化アルゴリズムに基づいて複数のインデックス候補で構成されるインデックス候補群を生成し、
前記インデックス候補群検証処理では、前記劣化後のロバスト・インデックス・コード付き画像に基づいて生成された複数の第一画像属性値と、前記インデックス候補に紐付けられている複数の第二画像属性値をそれぞれ比較することで前記インデックス候補群を検証することにより、仮正解インデックスとされたインデックス候補を得るようにし、
前記正解インデックス選定処理では、前記インデックス候補群検証処理によって得られた前記仮正解インデックスとされたインデックス候補の数に応じて、正解インデックスを選定するようにすることを特徴とするロバスト・インデックス・コード。
【請求項２】
前記仮正解インデックスとされたインデックス候補の数をＺで表すと、
前記正解インデックス選定処理では、Ｚが１の場合に、前記仮正解インデックスとされたインデックス候補を前記正解インデックスとすると共に、Ｚは１より大きく、且つ、所定の数値より小さい場合に、仮正解インデックスとされたＺ個のインデックス候補にそれぞれ紐付けられているＺ枚のオリジナル画像を前記データベースから読み出して利用者に提示するようにし、前記利用者に選択された１枚のオリジナル画像に紐付けられているインデックス候補を前記正解インデックスとする請求項１に記載のロバスト・インデックス・コード。
【請求項３】
前記ロバスト復号化処理により得られた前記正解インデックスに対し、再符号化処理を行うことで、前記正解インデックスのロバスト・インデックス・コード画像を生成し、生成した前記正解インデックスのロバスト・インデックス・コード画像を前記オリジナル画像に埋め込むことで、ロバスト・インデックス・コード付き画像を生成する請求項１又は２に記載のロバスト・インデックス・コード。
【請求項４】
前記ロバスト復号化処理により得られた前記正解インデックスに対し、再符号化処理を行うことで、前記正解インデックスのロバスト・インデックス・コード画像を生成し、生成した前記正解インデックスのロバスト・インデックス・コード画像を前記劣化後のロバスト・インデックス・コード付き画像に再び埋め込むことで、ロバスト・インデックス・コード付き画像を生成する請求項１又は２に記載のロバスト・インデックス・コード。
【請求項５】
前記N個の色情報はＲ値、Ｇ値、及びＢ値である請求項１乃至４の何れかに記載のロバスト・インデックス・コード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一次元コード、二次元コード、色の配列で情報を表現するカラーコードなどの識別コードに属し、色の配列で情報を表現するロバスト・インデックス・コードに関する。
【背景技術】
【０００２】
近年では、情報を表現する識別コード（以下、「識別コード」を「コードマーク」とも言う。）として、一次元コード（例えば、バーコード）や二次元コード（例えば、ＱＲコード（登録商標））だけでなく、赤、青、緑など色の配列で情報を表現するカラーコードも色々な分野で広く利用されている。
【０００３】
色の配列で情報を表現するカラーコードとして、例えば、マイクロソフト（登録商標）社が独自に開発した大容量カラー・バーコードＨＣＣＢ（High  Capacity  Color  Barcode）がある（非特許文献１参照）。また、カラーコードの読み取り精度を向上させる方法として、例えば、特許文献１に開示された２次元カラーコードが挙げられる。
【０００４】
特許文献１に開示された２次元カラーコードでは、ガイドコード部とデータ記録コード部の２つの領域に分け、ガイドコード部より色成分の分析を行い、その情報をデータ記録コード部の位置の判定、復号に使用することにより、より高精度な読み取りを可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１８６６１３号公報
【非特許文献】
【０００６】
【非特許文献１】“High  Capacity  Color  Barcode”,  From  Wikipedia,  the  free  encyclopedia,インターネット〈URL:http://en.wikipedia.org/wiki/High_Capacity_Color_Barcode〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１に開示されたカラー・バーコードＨＣＣＢ（２次元カラーコード画像）は、インターネット上の様々なネットサービスを経る際に、２次元カラーコード画像の圧縮や伸長が行われることにより、圧縮や伸長が行われた後の２次元カラーコード画像に画像劣化が起こり、カラーコードを正しく読み取れない恐れがある。
【０００８】
一方、特許文献１では、カラーコードの読み取り精度を向上させる方法が開示されているが、ガイドコード部の画像面積が必要であり、コード領域が大きくなってしまうという問題が生じる。
【０００９】
本発明は、上述のような事情よりなされたものであり、本発明の目的は、インデックスを符号化して得られるカラーコードであるロバスト・インデックス・コードの画像が、通信ネットワーク上（例えば、インターネット上）の様々なネットサービスを経る際に行われる画像圧縮や伸長等によって劣化した場合でも、その劣化したロバスト・インデックス・コード画像から、インデックスをロバストに復号できると共に、コード領域（ロバスト・インデックス・コード領域）の面積を大きくせず、読み取り精度を高めるようにしたロバスト・インデックス・コードを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、オリジナル画像を一意的に識別でき、且つ、十進数であるインデックスに対し、符号化処理を行うことで生成されたロバスト・インデックス・コード画像を前記オリジナル画像に埋め込むことで得られたロバスト・インデックス・コード付き画像がネットワークを介する際に行われる画像処理によって劣化して得られた劣化後のロバスト・インデックス・コード付き画像に含まれている劣化後のロバスト・インデックス・コード画像から、前記インデックスをロバスト復号化処理によってロバストに復号できるロバスト・インデックス・コードに関し、本発明の上記目的は、前記オリジナル画像、前記オリジナル画像の画像関連情報、前記ロバスト・インデックス・コード付き画像、及び、前記オリジナル画像又は前記ロバスト・インデックス・コード付き画像に基づいて生成された前記オリジナル画像の複数の画像属性値は、前記インデックスに紐付けられてデータベースに格納されており、前記符号化処理では、前記インデックスを変換して得られた二進数のビット列から得られた各N（Ｎ≧２）ビットのビット列に対し、N個の色情報によるカラー化を行うことで、前記インデックスを符号化することによって、前記ロバスト・インデックス・コード画像を生成し、前記ロバスト復号化処理は、インデックス候補群生成処理と、インデックス候補群検証処理と、正解インデックス選定処理とで構成されており、前記インデックス候補群生成処理では、前記劣化後のロバスト・インデックス・コード画像における全ての劣化有りのデータ領域に対応する色情報から二元化アルゴリズムに基づいて複数のインデックス候補で構成されるインデックス候補群を生成し、前記インデックス候補群検証処理では、前記劣化後のロバスト・インデックス・コード付き画像に基づいて生成された複数の第一画像属性値と、前記インデックス候補に紐付けられている複数の第二画像属性値をそれぞれ比較することで前記インデックス候補群を検証することにより、仮正解インデックスとされたインデックス候補を得るようにし、前記正解インデックス選定処理では、前記インデックス候補群検証処理によって得られた前記仮正解インデックスとされたインデックス候補の数に応じて、正解インデックスを選定するようにすることによって効果的に達成される。
【００１１】
また、本発明の上記目的は、前記仮正解インデックスとされたインデックス候補の数をＺで表すと、前記正解インデックス選定処理では、Ｚが１の場合に、前記仮正解インデックスとされたインデックス候補を前記正解インデックスとすると共に、Ｚは１より大きく、且つ、所定の数値より小さい場合に、仮正解インデックスとされたＺ個のインデックス候補にそれぞれ紐付けられているＺ枚のオリジナル画像を前記データベースから読み出して利用者に提示するようにし、前記利用者に選択された１枚のオリジナル画像に紐付けられているインデックス候補を前記正解インデックスとすることにより、或いは、前記ロバスト復号化処理により得られた前記正解インデックスに対し、再符号化処理を行うことで、前記正解インデックスのロバスト・インデックス・コード画像を生成し、生成した前記正解インデックスのロバスト・インデックス・コード画像を前記オリジナル画像に埋め込むことで、ロバスト・インデックス・コード付き画像を生成することにより、或いは、前記ロバスト復号化処理により得られた前記正解インデックスに対し、再符号化処理を行うことで、前記正解インデックスのロバスト・インデックス・コード画像を生成し、生成した前記正解インデックスのロバスト・インデックス・コード画像を前記劣化後のロバスト・インデックス・コード付き画像に再び埋め込むことで、ロバスト・インデックス・コード付き画像を生成することにより、或いは、前記N個の色情報はＲ値、Ｇ値、及びＢ値であることにより、より効果的に達成される。
【発明の効果】
【００１２】
本発明に係るロバスト・インデックス・コードによれば、インデックスを符号化して得られるカラーコードであるロバスト・インデックス・コードの画像（ロバスト・インデックス・コード画像）が画像処理技術による画像圧縮や伸長等によって劣化した場合であっても、その劣化したロバスト・インデックス・コード画像から、インデックスをロバストに復号（即ち、正しく復号）することができる。
【００１３】
つまり、本発明のロバスト・インデックス・コードによれば、オンラインでの画像処理（例えば、オンラインでの画像圧縮や伸長等）が原因で劣化したロバスト・インデックス・コード画像からでも、インデックスが正しく復号される確率は１００％となるので、通信ネットワーク上でも本発明のロバスト・インデックス・コードを安心して使用できると共に、本発明のロバスト・インデックス・コードを利用する各種アプリケーションの開発やシステムの設計が可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係るロバスト・インデックス・コードの画像（ロバスト・インデックス・コード画像）及び、ロバスト・インデックス・コード画像を埋め込んだ画像（ロバスト・インデックス・コード付き画像）を示す図である。
【図２】本発明に係るロバスト・インデックス・コードに関する処理を示すフローチャートである。
【図３】本発明におけるロバスト・インデックス・コード画像の生成を説明するための図である。
【図４】本発明におけるロバスト・インデックス・コード画像の生成を説明するための図である。
【図５】本発明におけるロバスト・インデックス・コード領域を説明するための図である。
【図６】本発明における画像属性値の生成を説明するための図である。
【図７】本発明において、ロバスト・インデックス・コード付き画像に基づいて生成された画像属性値をインデックスに紐付けてデータベースに保存することを説明するための図である。
【図８】ロバスト・インデックス・コード付き画像と劣化後のロバスト・インデックス・コード付き画像の画像例である。
【図９】ロバスト・インデックス・コード画像と劣化後のロバスト・インデックス・コード画像の画像例である。
【図１０】ロバスト・インデックス・コード画像からインデックスを復号することを説明するための図である。
【図１１】劣化後のロバスト・インデックス・コード画像からインデックスを復号することを説明するための図である。
【図１２】劣化後のロバスト・インデックス・コード画像からインデックスを復号する際に、本発明の独自な二元化アルゴリズムに基づいて生成された、二進数のビット列候補群を説明するための図である。
【図１３】図１２に示された二進数のビット列候補群と、当該二進数のビット列候補群を構成する各二進数のビット列候補を十進数化にすることで得られた各インデックス候補で構成されるインデックス候補群を示す図である。
【図１４】劣化後のロバスト・インデックス・コード付画像に基づいて生成された複数の第一画像属性値の一例を示す図である。
【図１５】データベースに格納されている複数のインデックスと、これらのインデックスに紐付けられている画像属性値を模式的に示す図である。
【図１６】本発明に係るロバスト・インデックス・コードの利用方法を説明するための模式図である。
【図１７】本発明の独自な二元化アルゴリズムに基づいて生成された二進数のビット列候補群から得られたインデックス候補群を検証するためのインデックス候補群検証処理の流れを示すフローチャートである。
【図１８】再符号化処理を説明するための模式図である。
【図１９】正解インデックス選定処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
本発明に係るロバスト・インデックス・コード（Robust  Index  Code）は、色の配列で情報（インデックス）を表現するカラーコードである。
【００１６】
即ち、本発明は、インデックスを符号化して得られるカラーコードであるロバスト・インデックス・コードの画像（以下、単に、「ロバスト・インデックス・コード画像」とも言う。）が画像圧縮技術（例えば、ＪＰＥＧ圧縮）による画像圧縮等によって劣化した場合（劣化の例として、例えば、色の干渉・浸透、境界消滅である。）でも、その劣化したロバスト・インデックス・コード画像（以下、単に、「劣化後のロバスト・インデックス・コード画像」とも言う。）から、インデックスをロバスト復号（正しく復号）できるようにしたロバスト・インデックス・コードに関する。
【００１７】
以下では、インデックスを「ロバスト・インデックス・コードにおける符号化の対象」又は、「符号化の対象」とも言う。
【００１８】
本発明では、ロバスト・インデックス・コード画像を、ロバスト・インデックス・コード画像の埋め込み先となる画像に埋め込むようにしている。
【００１９】
本発明で言う「画像」とは、デジタル画像を意味する。また、本発明では、「画像」のファイル形式として、既存のデジタル画像のファイル形式（例えば、JPEG、Bit  Map、PNG、GIF、TIFF、WebP、JPEG  XR、JPEG-2000、DNG、HD  Photo等）を使用する。なお、以下では、本発明で言う「画像」を単に、「オリジナル画像」とも言う。
【００２０】
本発明では、１つの画像には当該画像に関連する画像関連情報が存在しており、また、当該画像及び当該画像関連情報は後述する当該画像に基づいて生成される画像属性値と一緒にデータベースに格納されている。当該画像関連情報の具体例として、例えば、当該画像に関連するテキスト、ＵＲＬ、関連画像情報、位置情報、ゲームやＶＲ(Virtual  Reality)コンテンツなどのアプリなどである。
【００２１】
本発明で言う「画像属性値」とは、「画像」の様々な特徴を表す属性値であり、例えば、画像の比率（縦横比）、画像のサイズ、画像の色分布情報、ＲＬＥ(Run  Length  Encoding)圧縮アルゴリズム、ＲＧＢヒストグラム、Brightness差、ＦＲＥＡＫ（Fast  Retina  Keypoint）、ＢＲＩＳＫ（Binary  Robust  Invariant  Scalable  Keypoints）、ＳＵＲＦ(Speeded  Up  Robust  Features)、ＯＲＢ（Oriented  FAST  and  Rotated  BRIEF）、ＰＳＮＲ(Peak  signal-to-noise  ratio)、ビットマップ、Average  Hash、PHashなどにより得られる画像全体又は部分領域の画像の特性を表す情報である。
【００２２】
本発明では、１つの画像は当該画像を一意的に識別できる１つのインデックスに対応していると共に、当該画像に基づいて生成される複数の画像属性値を有しており、また、当該画像に対応するインデックスを符号化して得られるロバスト・インデックス・コード画像を、当該画像に埋め込むようにしている。
【００２３】
ここで、本発明で言う「インデックス」とは、インデックスを符号化して得られるロバスト・インデックス・コード画像の埋め込み先となる画像の画像関連情報及び画像属性値を格納（保存）しているデータベースにアクセスするためのキーである。
【００２４】
本発明では、ロバスト・インデックス・コード画像を埋め込んだ画像を「ロバスト・インデックス・コード付き画像」と言う。ロバスト・インデックス・コード付き画像はネットワークを介して様々なサービスを経由すると、画像が劣化する。この画像劣化は、画像処理技術による画像処理（例えば、ＪＰＥＧ圧縮）によって生じるが（例えば、ロバスト・インデックス・コード付き画像がネットワーク上で参照・拡散されることにより、画像の圧縮・伸長処理が複数回行われることで画像劣化した場合であっても）、その劣化したロバスト・インデックス・コード付き画像（以下、単に、「劣化後のロバスト・インデックス・コード付き画像」とも言う。）に含まれている劣化後のロバスト・インデックス・コード画像から、インデックスをロバストに復号（即ち、正しく復号）することができる。
【００２５】
図１（Ａ）に本発明のロバスト・インデックス・コード画像の一例を示しており、また、図１（Ｂ）に本発明のロバスト・インデックス・コード付き画像の一例を示す。
【００２６】
以下、図２のフローチャートを参照しながら、本発明におけるインデックスの符号化（エンコーディング）、及びロバスト・インデックス・コード付き画像の生成について説明する。
【００２７】
図２に示されたように、まず、本発明では、ある画像に対し、当該画像のインデックスの生成をサーバに要請する（ステップＳ１）。なお、本発明では、サーバは画像、画像関連情報及び画像属性値を格納するためのデータベースを備えるようになっている。
【００２８】
次に、当該画像の画像関連情報をステップＳ１でサーバから与えられたインデックスに、紐付けてデータベースに保存（格納）する（ステップＳ２）。次に、当該画像に基づいて所定の画像属性値生成方法を用いて、当該画像の画像属性値を生成する（ステップＳ３）。ステップＳ３において生成された画像属性値を、ステップＳ１でサーバから与えられたインデックスに、紐付けてデータベースに保存（格納）する（ステップＳ４）。
【００２９】
そして、ステップＳ１でサーバから与えられたインデックスの符号化を所定の符号化方法で行うことによって、ロバスト・インデックス・コード画像を生成する（ステップＳ５）。ステップＳ５において生成されたロバスト・インデックス・コード画像を当該画像に埋め込むことによって、ロバスト・インデックス・コード付き画像を生成する（ステップＳ６）。
【００３０】
なお、本発明では、インデックスを生成するために、ステップＳ１に示された方法ではなく、当該画像を一意的に識別できるインデックスをそのまま当該画像に与えるようにしてもいい。また、インデックスとは、例えば、１、２、３、…等の連続番号でも良い。
【００３１】
また、上記ステップＳ３では、当該画像に基づいて所定の画像属性値生成方法を用いて、当該画像の画像属性値を生成するようになっているが、本発明では、上記ステップＳ３による処理を行わずに、上記ステップＳ６による処理によってロバスト・インデックス・コード付き画像が生成された後に、このロバスト・インデックス・コード付き画像に基づいて、所定の画像属性値生成方法を用いて、当該画像の画像属性値を生成するようにしても良い。
【００３２】
＜符号化処理＞
ここで、図３及び図４を参照しながら、本発明におけるインデックスの符号化（エンコーディング）及びロバスト・インデックス・コード画像の生成について、具体例を用いて説明する。
【００３３】
ここで、上記ステップＳ５にて行われる＜符号化処理＞（即ち、本発明における所定の符号化方法によるインデックスのエンコーディング）について、具体例を用いて説明する。
【００３４】
まず、上記ステップＳ１でサーバから与えられたインデックス（十進数）を二進数のビット列に変換する。例えば、インデックスが１００１（十進数）である場合に、その十進数（１００１）を二進数のビット列に変換すると、二進数のビット列“００００００００１１１１１０１００１”が得られる。
【００３５】
次に、得られた二進数のビット列を３ビットずつに分けることによって、複数の３ビットのビット列が得られ、得られたそれぞれの３ビットのビット列に対し、色情報によるカラー化を行う。なお、以下では、色情報として、Ｒ（Ｒｅｄ）値、Ｇ（Ｇｒｅｅｎ）値、及びＢ（Ｂｌｕｅ）値を使用する。
【００３６】
例えば、二進数のビット列“００００００００１１１１１０１００１”を３ビットずつに分けることによって、図３に示されたような６つの３ビットのビット列が得られる。図３に示されたように、各３ビットのビット列において、１番目のビットに対し、Ｒ値によるカラー化が行われ、２番目のビットに対し、Ｇ値によるカラー化が行われ、３番目のビットに対し、Ｂ値によるカラー化が行われる。
【００３７】
即ち、図３において、
１番目のビットの値は“０”の時に、１番目のビットに対応するＲ値を“０”にする。
１番目のビットの値は“１”の時に、１番目のビットに対応するＲ値を“２５５”にする。
２番目のビットの値は“０”の時に、２番目のビットに対応するＧ値を“０”にする。
２番目のビットの値は“１”の時に、２番目のビットに対応するＧ値を“２５５”にする。
３番目のビットの値は“０”の時に、３番目のビットに対応するＢ値を“０”にする。
３番目のビットの値は“１”の時に、３番目のビットに対応するＢ値を“２５５”にする。
【００３８】
このように、本発明では、各３ビットのビット列に対し、Ｒ値、Ｇ値、及びＢ値によるカラー化を行う際に、図３に示されたようなＲ値、Ｇ値、及びＢ値を得ることができる。
【００３９】
上述したように、本発明では、図４に示されたように、インデックス（十進数）を変換して得られた二進数のビット列から得られた各３ビットのビット列に対し、それぞれＲ値、Ｇ値、及びＢ値によるカラー化を行うことで、インデックスを符号化（エンコーディング）することによって、複数のカラーマークを有するロバスト・インデックス・コード画像を生成する。
【００４０】
ちなみに、図４の（６）、（５）、（４）、（３）、（２）、（１）は、二進数のビット列“００００００００１１１１１０１００１”から得られた６つの３ビットのビット列“０００”“０００”“００１”“１１１”“１０１”“００１”にそれぞれ対応している。
【００４１】
図４において、
３ビットのビット列（１）が対応するＲ値、Ｇ値、及びＢ値で得られたカラーマークはカラーマーク１である。
３ビットのビット列（２）が対応するＲ値、Ｇ値、及びＢ値で得られたカラーマークはカラーマーク２である。
３ビットのビット列（３）が対応するＲ値、Ｇ値、及びＢ値で得られたカラーマークはカラーマーク３である。
３ビットのビット列（４）が対応するＲ値、Ｇ値、及びＢ値で得られたカラーマークはカラーマーク４である。
３ビットのビット列（５）が対応するＲ値、Ｇ値、及びＢ値で得られたカラーマークはカラーマーク５である。
３ビットのビット列（６）が対応するＲ値、Ｇ値、及びＢ値で得られたカラーマークはカラーマーク６である。
【００４２】
上記の具体例の説明では、インデックスを変換して得られた二進数のビット列を複数の３ビットのビット列に分けるようにし、各３ビットのビット列に対し、二進数3ビットをＲ値、Ｇ値、及びＢ値にそれぞれ割り当て、8色のカラー化を行っているが、本発明の符号化処理では、インデックスを変換して得られた二進数のビット列を複数の２ビットのビット列に分けるようにし、各２ビットのビット列に対し、二進数2ビットをB値及びY（Ｙｅｌｌｏｗ）値に割り当て、4色のカラー化とすることもできる。さらに、本発明の符号化処理では、インデックスを変換して得られた二進数のビット列を複数のＮ（Ｎ≧２）ビットのビット列に分けるようにし、各Ｎビットのビット列に対し、二進数NビットをN個の色情報に割り当て、２のN乗個（２Ｎ）の色のカラー化を行うこともできる。
【００４３】
本発明では、ロバスト・インデックス・コード画像を画像に埋め込むことによって、ロバスト・インデックス・コード付き画像を生成する。本発明で言う「ロバスト・インデックス・コード領域」とは、ロバスト・インデックス・コード付き画像の中で、ロバスト・インデックス・コード画像が占有している領域である。
【００４４】
ここで、図５を参照しながら、ロバスト・インデックス・コード領域について説明する。
【００４５】
本発明では、ロバスト・インデックス・コード付き画像に含まれているロバスト・インデックス・コード画像から、インデックスをロバストに復号（即ち、正しく復号）するために、ロバスト・インデックス・コード付き画像におけるロバスト・インデックス・コード領域を正確に認識する必要がある。
【００４６】
このため、本発明では、図５に示されたように、ロバスト・インデックス・コード領域３００について、ロバスト・インデックス・コード領域の背景（以下、単に「背景」とも言う。）３０２を明るい単色（例えば、灰色：Ｒ値：２３８、Ｇ値：２３８、Ｂ値：２３８）で構成すると共に、背景３０２とのコントラスト差をなるべく広げるため、外壁３０１を暗い単色（例えば、暗い単色：Ｒ値：９６、Ｇ値：９６、Ｂ値：９６）で構成するようにしている。
【００４７】
また、ロバスト・インデックス・コード付き画像を画像処理（例えば、ＪＰＥＧ圧縮）で処理する際に、外部の色（即ち、ロバスト・インデックス・コード領域を除いたロバスト・インデックス・コード付き画像の色）がロバスト・インデックス・コード領域に浸透しないように、十分の幅（ａピクセル、例えば、ａ＝４の場合、４ピクセルである。）を有する外壁３０１を設定する。
【００４８】
図５に示されたように、ロバスト・インデックス・コード領域３００を、横をｎ分割、縦をｍ分割し、その分割された領域にエンコーディングされたカラーマークを埋め込む。それぞれ分割された領域（データ領域）の中心は、四角の「ロバスト・インデックス・コード領域」の横辺の１／ｎ、縦辺の１／ｍを起点に直線で繋いだ交点に位置させる。したがって、「ロバスト・インデックス・コード領域」を抽出し、四角の「ロバスト・インデックス・コード領域」の各辺の長さを計算する。そして事前に定義されたｎ、ｍによって分割し、それぞれのポイントを直線で繋ぐと、各データ領域の中心を取ることができる。
この「ロバスト・インデックス・コード」の構成例は、１つの（ｎ、ｍ）の組合ではなく、複数の（ｎ、ｍ）の組合からも成り立つことができる。例えば、辺の１／７、１／８、１／９位置を取って直線を繋いで交点の位置にデータ領域を位置させてもよい。
【００４９】
また、図５に示されたように、全てのデータ領域間にはａピクセルのスペースを配置する。この背景の単色のスペースを配置することで、ロバスト性は上がる。画像の劣化により隣に位置されたデータ領域に色が浸透する場合があり、データ領域間に単色のスベースを配置することにより、浸透の影響を防ぐことができる。
【００５０】
＜画像属性値生成処理＞
以下、図６を参照しながら、本発明における画像属性値の生成について説明する。
【００５１】
ここで、上記ステップＳ３にて行われる＜画像属性値生成処理＞（即ち、画像又はロバスト・インデックス・コード付き画像に基づいて画像属性値を生成する処理）について、具体例を用いて説明する。なお、以下、画像属性値を単に「属性値」とも言う。
【００５２】
上述したように、本発明では、１つの画像に対し、当該画像に基づいて生成される複数の画像属性値が存在する。下記の具体例では、図６に示されたロバスト・インデックス・コード付き画像に基づいて、２つの画像属性値（画像属性値Ａと画像属性値Ｂ）が生成される。ここで、画像属性値Ａは画像の比率（縦横比）であり、また、画像属性値Ｂは画像の色分布情報である。
【００５３】
図６に示されたロバスト・インデックス・コード付き画像について、画像の縦方向のピクセル数は１０２４ピクセルであり、また、画像の横方向のピクセル数は１２８０ピクセルであるため、１０２４／１２８０となるので、画像属性値Ａ（画像の縦横比）は０．８である。
【００５４】
また、画像属性値Ｂ（画像の色分布情報）を生成するために、図６に示されたように、まず、ロバスト・インデックス・コード付き画像を複数のエリアに分ける。ロバスト・インデックス・コード付き画像を分けることで得られた各エリア（図６の例では、エリアＡ、エリアＢ、エリアＣ、エリアＤ、エリアＥ、エリアＦ、エリアＧ、エリアＨ、エリアＩ）に対し、それぞれのＲＧＢの分布率を画像属性値Ｂとして算出する。
【００５５】
具体的に、あるエリアの画像属性値Ｂを生成するために、まず、当該エリアの全てのピクセルのＲ値、Ｇ値、Ｂ値を抽出し、次に、抽出したＲ値、Ｇ値、Ｂ値が所定の基準値を超えるピクセルの数を計算する。なお、以下の例では、例えば、１２８を所定の基準値とする。
【００５６】
例えば、エリアＤの画像属性値Ｂを生成するために、エリアＤの総ピクセル数は、１４６０９０（＝（１０２４／３）×（１２８０／３））ピクセルである。
【００５７】
また、エリアＤでは、Ｒ値が所定の基準値（１２８）を超えるピクセルの数は４６０００であり、Ｇ値が所定の基準値（１２８）を超えるピクセルの数は４５００であり、Ｂ値が所定の基準値（１２８）を超えるピクセルの数は１５００である場合に、エリアＤに赤系のピクセルが多いということが分かる。
【００５８】
上記の結果を下記のようにパーセンテージで表すことにより、エリアＤの画像属性値Ｂを生成（算出）する。
エリアＤの画像属性値Ｂ（Ｒ値）＝４６０００÷１４６０９０＝０．３１４８＝約３１％
エリアＤの画像属性値Ｂ（Ｇ値）＝４５００÷１４６０９０＝０．０３８＝約３％
エリアＤの画像属性値Ｂ（Ｂ値）＝１５００÷１４６０９０＝０．０１２９＝約１％
即ち、あるエリアについて、
当該エリアの画像属性値Ｂ（Ｒ値）＝当該エリアにおけるＲ値が所定の基準値を超えるピクセルの数÷当該エリアの総ピクセル数
当該エリアの画像属性値Ｂ（Ｇ値）＝当該エリアにおけるＧ値が所定の基準値を超えるピクセルの数÷当該エリアの総ピクセル数
当該エリアの画像属性値Ｂ（Ｂ値）＝当該エリアにおけるＢ値が所定の基準値を超えるピクセルの数÷当該エリアの総ピクセル数
上記では、具体例に基づき、エリアＤの画像属性値Ｂの算出方法（生成方法）について説明したが、エリアＤを除いた他のエリア（即ち、エリアＡ、エリアＢ、エリアＣ、エリアＥ、エリアＦ、エリアＧ、エリアＨ、エリアＩ）の画像属性値Ｂも上記と同様な方法で算出することができる。
【００５９】
上記のように生成された画像属性値Ａ及び各エリアの画像属性値Ｂを、図７に示されたように、ステップＳ１でサーバから与えられたインデックスに、紐付けてデータベースに保存（格納）する。
【００６０】
＜画像劣化例＞
図８（Ａ）にロバスト・インデックス・コード付き画像の一例を示しており、また、図８（Ｂ）に劣化後のロバスト・インデックス・コード付き画像の一例（即ち、図８（Ａ）のロバスト・インデックス・コード付き画像がＪＰＥＧ圧縮によって劣化した場合の画像）を示している。
【００６１】
また、図９（Ａ）にロバスト・インデックス・コード画像の一例（即ち、図８（Ａ）のロバスト・インデックス・コード付き画像から切り取ったロバスト・インデックス・コード領域）を示しており、そして、図９（Ｂ）に劣化後のロバスト・インデックス・コード画像の一例（即ち、図８（Ｂ）の劣化後のロバスト・インデックス・コード付き画像から切り取った劣化後のロバスト・インデックス・コード領域）を示している。
【００６２】
図９（Ａ）に示すロバスト・インデックス・コード領域と図９（Ｂ）に示す劣化後のロバスト・インデックス・コード領域を比較すれば、ＪＰＥＧ圧縮による劣化後のロバスト・インデックス・コード領域において、例えば、図９（Ｂ）の矢印Ａ、矢印Ｂ及び矢印Ｃで示されたように、データ領域（カラーマーク）と背景の境界が全体的にぼけたり、データ領域の色と違う色がデータ領域に浸透したりすることが分かる。つまり、ＪＰＥＧ圧縮による劣化後のロバスト・インデックス・コード領域において、境界消滅や色の干渉・浸透といった劣化現象が発生する。
【００６３】
＜ロバスト・インデックス・コード画像からインデックスを復号する復号化処理＞
ここで、図１０を参照しながら、ロバスト・インデックス・コード画像からインデックスを復号する＜復号化処理＞について説明する。
【００６４】
以下、説明を簡単にする便宜上、ロバスト・インデックス・コード画像（ロバスト・インデックス・コード領域）における６つのデータ領域（図１０の（６a）、（５a）、（４a）、（３a）、（２a）、（１a））から二進数のビット列を復号する処理（以下、この処理を単に「二進数のビット列復号処理」とも言う。）について説明する。
【００６５】
ロバスト・インデックス・コード画像に存在する全てのデータ領域に対して、「二進数のビット列復号処理」を行うことで得られた二進数のビット列を十進数化にすることで、インデックスを復号することができる（即ち、二進数のビット列から得られた十進数は復号されたインデックスになる。）。
【００６６】
図１０に示されたように、データ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）にＪＰＥＧ圧縮による劣化がないため、劣化無しのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）から、インデックスを符号化する際に各３ビットのビット列に対し、Ｒ値、Ｇ値、及びＢ値によるカラー化を行うとしてことで得られたＲ値、Ｇ値、及びＢ値と同様なＲ値、Ｇ値、及びＢ値（図１０に示されたデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）に対応するＲ値、Ｇ値、及びＢ値）を、画像処理によって算出することができる。
【００６７】
換言すれば、劣化無しのデータ領域から画像処理によって、インデックスを符号化する際に、色情報（Ｒ値、Ｇ値、及びＢ値）によるカラー化を行うことで得られた色情報（Ｒ値、Ｇ値、及びＢ値）と同様な色情報（Ｒ値、Ｇ値、及びＢ値）を得ることができる。
【００６８】
よって、算出されたデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）に対応するＲ値、Ｇ値、及びＢ値から、二進数のビット列復号処理によって、図１０に示されたように、二進数のビット列を正しく復号することができる。
【００６９】
即ち、二進数のビット列復号処理では、図１０に示されたように、
劣化無しのデータ領域（１a）から画像処理により得られたＲ値は“０”、Ｇ値は“２５５”、Ｂ値は“２５５”であるため、Ｒ値に対応する１番目のビットの値を“０”、Ｇ値に対応する２番目のビットの値を“１”、Ｂ値に対応する３番目のビットの値を“１”にする。
【００７０】
劣化無しのデータ領域（２a）から画像処理により得られたＲ値は“２５５”、Ｇ値は“２５５”、Ｂ値は“２５５”であるため、Ｒ値に対応する１番目のビットの値を“１”、Ｇ値に対応する２番目のビットの値を“１”、Ｂ値に対応する３番目のビットの値を“１”にする。
【００７１】
劣化無しのデータ領域（３a）から画像処理により得られたＲ値は“０”、Ｇ値は“０”、Ｂ値は“２５５”であるため、Ｒ値に対応する１番目のビットの値を“０”、Ｇ値に対応する２番目のビットの値を“０”、Ｂ値に対応する３番目のビットの値を“１”にする。
【００７２】
劣化無しのデータ領域（４a）から画像処理により得られたＲ値は“２５５”、Ｇ値は“０”、Ｂ値は“０”であるため、Ｒ値に対応する１番目のビットの値を“１”、Ｇ値に対応する２番目のビットの値を“０”、Ｂ値に対応する３番目のビットの値を“０”にする。
【００７３】
劣化無しのデータ領域（５a）から画像処理により得られたＲ値は“０”、Ｇ値は“０”、Ｂ値は“０”であるため、Ｒ値に対応する１番目のビットの値を“０”、Ｇ値に対応する２番目のビットの値を“０”、Ｂ値に対応する３番目のビットの値を“０”にする。
【００７４】
劣化無しのデータ領域（６a）から画像処理により得られたＲ値は“０”、Ｇ値は“２５５”、Ｂ値は“２５５”であるため、Ｒ値に対応する１番目のビットの値を“０”、Ｇ値に対応する２番目のビットの値を“１”、Ｂ値に対応する３番目のビットの値を“１”にする。
【００７５】
＜劣化後のロバスト・インデックス・コード画像からインデックスを復号する際の問題点＞
一方、劣化後のロバスト・インデックス・コード画像からインデックスを復号する際に、図１１に示されたように、データ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）にＪＰＥＧ圧縮による劣化があるため、劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）から画像処理によって、インデックスを符号化する際に各３ビットのビット列に対し、Ｒ値、Ｇ値、及びＢ値によるカラー化を行うことで得られたＲ値、Ｇ値、及びＢ値とは異なるＲ値、Ｇ値、及びＢ値（図１１に示された劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）に対応するＲ値、Ｇ値、及びＢ値）を算出することになる。
【００７６】
換言すれば、劣化有りのデータ領域から画像処理によって、インデックスを符号化する際に色情報（Ｒ値、Ｇ値、及びＢ値）によるカラー化を行うことで得られた色情報（Ｒ値、Ｇ値、及びＢ値）とは異なる色情報（Ｒ値、Ｇ値、及びＢ値）を得ることになる。
【００７７】
よって、図１１に示されたように、算出された劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）に対応するＲ値、Ｇ値、及びＢ値から、正しい二進数のビット列とは異なる二進数のビット列を復号することになる。
【００７８】
換言すれば、図１１に示されたような算出された劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）に対応するＲ値、Ｇ値、及びＢ値は、インデックスを符号化する際に、各３ビットのビット列に対し、Ｒ値、Ｇ値、及びＢ値によるカラー化を行うことで得られたＲ値、Ｇ値、及びＢ値と異なるため、正しい二進数のビット列とは異なる二進数のビット列が復号される。
【００７９】
以下、劣化後のロバスト・インデックス・コード画像からインデックスを復号する際に、発生する「符号化時のＲ値、Ｇ値、Ｂ値と復号時のＲ値、Ｇ値、Ｂ値が異なる」という現象を、単に「符号化時の色情報と復号時の色情報が異なる現象」とも言う。
【００８０】
ちなみに、図１１では、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値から、所定の基準値に基づいて二進数のビット列を復号するようにしており、また、所定の基準値として、例えば、１２８を使用する。即ち、劣化有りのデータ領域に対応するＲ値が所定の基準値以上（１２８以上）の場合に、Ｒ値から復号されるビットのビット値を“１”にする。劣化有りのデータ領域に対応するＲ値が所定の基準値未満（１２８未満）の場合に、Ｒ値から復号されるビットのビット値を“０”にする。同様に、劣化有りのデータ領域に対応するＧ値が所定の基準値以上（１２８以上）の場合に、Ｇ値から復号されるビットのビット値を“１”にする。劣化有りのデータ領域に対応するＧ値が所定の基準値未満（１２８未満）の場合に、Ｇ値から復号されるビットのビット値を“０”にする。また、劣化有りのデータ領域に対応するＢ値が所定の基準値以上（１２８以上）の場合に、Ｂ値から復号されるビットのビット値を“１”にする。劣化有りのデータ領域に対応するＢ値が所定の基準値未満（１２８未満）の場合に、Ｂ値から復号されるビットのビット値を“０”にする。
【００８１】
＜劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号するロバスト復号化処理におけるインデックス候補群の生成＞
本発明では、劣化後のロバスト・インデックス・コード画像からインデックスを復号する際に、発生する「符号化時の色情報と復号時の色情報が異なる現象」に起因する「正しい二進数のビット列とは異なる二進数のビット列が復号される」という問題点（図１１参照）を解決するために、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値から、本発明の独自な二元化アルゴリズムに基づいて二進数のビット列候補群を設定し（図１２参照）、設定した二進数のビット列候補群を構成する各二進数のビット列候補を十進数化にすることで得られた各インデックス候補で構成されるインデックス候補群（図１３参照）を絞っていく（検証する）ことで仮正解インデックスとされたインデックス候補を求め、また、仮正解インデックスとされたインデックス候補に対し、正解インデックス選定処理を行うことで、正解インデックスを得ることにより、劣化後のロバスト・インデックス・コード画像の埋め込み先となる画像の全ての画像属性値を満たすインデックス候補を正しいインデックス（正解インデックス）として選び出す（得る）ことができる。
【００８２】
本発明では、このように正解インデックスとして選び出したインデックス候補を、正しく復号されたインデックスとすることによって、劣化後のロバスト・インデックス・コード画像から、インデックスをロバストに復号（正しく復号）できるようにした。
【００８３】
以下、劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号するロバスト復号化処理において、インデックス候補群を生成するインデックス候補群生成処理について説明する。
【００８４】
本発明のインデックス候補群生成処理では、劣化後のロバスト・インデックス・コード画像から、独自な二元化アルゴリズムに基づいて、インデックス候補群を生成するようにしている。
【００８５】
具体的に、図１１に示されたような、ある基準（例えば、図１１の所定の基準値１２８）によって、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値から、二進数のビット列におけるあるビットを正しく復号できない場合、即ち、ある基準（例えば、図１１の所定の基準値１２８）によって、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値から、二進数のビット列におけるあるビットのビット値を“１”又は“０”にする判定ができない場合に、本発明の独自な二元化アルゴリズムに基づいたロバスト復号化処理を用いれば、正しく復号できる。
【００８６】
以下、図１２に示された劣化後のロバスト・インデックス・コード画像を例として、本発明の独自な二元化アルゴリズムに基づいて、インデックス候補群を生成するインデックス候補群生成処理について説明する。
【００８７】
まず、図１２の劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）から画像処理によって、それぞれ対応するＲ値、Ｇ値、及びＢ値を算出する。図１２に示されたように、劣化有りのデータ領域から画像処理によって算出されたＲ値、Ｇ値、及びＢ値は、インデックスを符号化する際に各３ビットのビット列に対し、Ｒ値、Ｇ値、及びＢ値によるカラー化を行うことで得られたＲ値、Ｇ値、及びＢ値と異なっている。
【００８８】
次に、算出された、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値から、所定の基準範囲（第一基準値〜第二基準値、ただし、第一基準値＜第二基準値）に基づいて二進数のビット列を復号するようにしており、ここで、例えば、第一基準値を１００、第二基準値を２００とする場合に、所定の基準範囲は１００〜２００となる。
【００８９】
本発明のロバスト復号化処理では、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値が所定の基準範囲内の場合（例えば、１００〜２００の間にある場合に）に、本発明の独自な二元化アルゴリズムに基づいて、対応するビットのビット値を“０”と“１”の２通りにする。例えば、図１２の劣化有りのデータ領域（２a）に対応するＲ値（１１８）に対応するビットのビット値を“０”と“１”の２通りにしており、また、図１２の劣化有りのデータ領域（３a）に対応するＧ値（１７５）に対応するビットのビット値も“０”と“１”の２通りにしている。
【００９０】
一方、本発明のロバスト復号化処理では、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値が第一基準値未満の場合に、対応するビットのビット値を“０”にする。また、劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値が第二基準値より大きい場合に、対応するビットのビット値を“１”にする。
【００９１】
このように、図１２に示されたように、劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）に対応するＲ値、Ｇ値、及びＢ値から、本発明の独自な二元化アルゴリズムに基づいて、４つの二進数のビット列で構成する二進数のビット列候補群が生成（設定）される。
【００９２】
図１２に示された二進数のビット列候補群と、当該二進数のビット列候補群を構成する各二進数のビット列候補を十進数化にすることで得られた各インデックス候補で構成されるインデックス候補群を図１３に示している。
【００９３】
図１３に示されたように、
二進数のビット列候補Ａから得られたインデックス候補は１００５７１であり、
二進数のビット列候補Ｂから得られたインデックス候補は１００６０３であり、
二進数のビット列候補Ｃから得られたインデックス候補は１００４４３であり、
二進数のビット列候補Ｄから得られたインデックス候補は１００４７５である。
【００９４】
以上では、図１２に示された劣化後のロバスト・インデックス・コード画像における劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）に対応するＲ値、Ｇ値、及びＢ値から、本発明の独自な二元化アルゴリズムに基づいて、４つの二進数のビット列候補で構成する二進数のビット列候補群を生成し、生成した二進数のビット列候補群から、４つのインデックス候補で構成するインデックス候補群を求めるインデックス候補群生成処理について説明した。
【００９５】
以上のように求められた４つのインデックス候補で構成するインデックス候補群は、図１２に示された劣化後のロバスト・インデックス・コード画像における劣化有りのデータ領域（６a）、（５a）、（４a）、（３a）、（２a）、（１a）から得られたインデックス候補群である。
【００９６】
本発明では、上記インデックス候補群生成処理を用いて、劣化後のロバスト・インデックス・コード画像における全ての劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値から、本発明の独自な二元化アルゴリズムに基づいて二進数のビット列候補群を生成し、生成した二進数のビット列候補群から、劣化後のロバスト・インデックス・コード画像における全ての劣化有りのデータ領域に対応するインデックス候補群を求めることができる。
【００９７】
以上では、劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号するロバスト復号化処理において、インデックス候補群生成処理によるインデックス候補群の生成について説明した。
【００９８】
なお、以下、説明を簡単にする便宜上、「劣化後のロバスト・インデックス・コード画像における全ての劣化有りのデータ領域に対応するインデックス候補群」を単に「インデックス候補群」とも言う。
【００９９】
＜劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号するロバスト復号化処理におけるインデックス候補群の検証＞
本発明では、劣化後のロバスト・インデックス・コード付き画像の複数の画像属性値を用いて、インデックス候補群に対し、インデックス候補群検証処理を行うことで、インデックス候補群を絞っていく（検証する）。
【０１００】
図１７はインデックス候補群を検証するためのインデックス候補群検証処理の流れを示すフローチャートである。ここで、図１７を参照しながら、劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号するロバスト復号化処理において、インデックス候補群検証処理によるインデックス候補群の検証について説明する。
【０１０１】
図１７に示されたように、インデックス候補群検証処理では、まず、劣化後のロバスト・インデックス・コード付き画像に基づいて、当該劣化後のロバスト・インデックス・コード付き画像の複数の画像属性値（以下、単に「複数の第一画像属性値」とも言う。）を生成する（ステップＳ１１）。
【０１０２】
なお、ステップＳ１１において、劣化後のロバスト・インデックス・コード付き画像から複数の第一画像属性値を生成する際に、上述したステップＳ３にて行われる＜画像属性値生成処理＞と同様な処理手順で、複数の第一画像属性値を生成するようにしている。また、ステップＳ１１で生成された複数の第一画像属性値の一例を図１４に示している。
【０１０３】
次に、インデックス候補群に含まれている全てのインデックス候補をチェックしたか否かが判定される（ステップＳ１２）。ステップＳ１２では、全てのインデックス候補をチェックしたと判定された場合に、後述する正解インデックス選定処理へ進む。
【０１０４】
一方、ステップＳ１２では、全てのインデックス候補をチェックしていなかったと判定された場合に、まだチェックされていないインデックス候補の一つを選択する（ステップＳ１３）。次に、ステップＳ１３で選択されたインデックス候補を用いてデータベースにアクセスする（ステップＳ１４）。データベースに選択されたインデックス候補が存在しているか否かが判定される（ステップＳ１５）。ステップＳ１５では、データベースに選択されたインデックス候補が存在していないと判定された場合に、選択されたインデックス候補をインデックス候補群から削除し（ステップＳ１６）、ステップＳ１２に戻る。
【０１０５】
一方、ステップＳ１５では、データベースに選択されたインデックス候補が存在していると判定された場合に、当該インデックス候補に紐付けられている複数の画像属性値（以下、単に「複数の第二画像属性値」とも言う。）をデータベースから読み出す（ステップＳ１７）。ステップＳ１１で生成された複数の第一画像属性値と、ステップＳ１７で読み出した複数の第二画像属性値をそれぞれ比較し、得られたそれぞれの属性値差が全て各所定の範囲内にあるか否かが判定される（ステップＳ１８）。
【０１０６】
ステップＳ１８では、得られたそれぞれの属性値差が全て各所定の範囲内にあると判定された場合に、選択されたインデックス候補を仮正解インデックスとし（ステップＳ１９）、ステップＳ１２に戻るようにし、それ以外と判定された場合（即ち、「得られたそれぞれの属性値差が全て各所定の範囲内にある」以外と判定された場合）に、選択されたインデックス候補をインデックス候補群から削除し（ステップＳ１６）、ステップＳ１２に戻る。
【０１０７】
以上のように、本発明では、劣化後のロバスト・インデックス・コード付き画像に基づいて生成された複数の第一画像属性値を用いて、インデックス候補群に対し、インデックス候補群検証処理を行うことで、インデックス候補群を検証することにより、仮正解インデックスを得ることができる。
【０１０８】
ここで、図１３、図１４及び図１５を用いて、インデックス候補群検証処理の具体例を説明する。インデックス候補群検証処理の具体例では、インデックス候補群として、図１３に示された４つのインデックス候補、即ち、インデックス候補１００５７１、１００６０３、１００４４３、及び１００４７５で構成されたインデックス候補群を用いる。また、複数の第一画像属性値は、図１４に示された７つの第一画像属性値（即ち、属性値Ａ：０.８、エリアＡの属性値Ｂ（Ｒ値）：１０％、エリアＡの属性値Ｂ（Ｇ値）：８.２％、エリアＡの属性値Ｂ（Ｂ値）：１１.４％、エリアＢの属性値Ｂ（Ｒ値）：３０.８％、エリアＢの属性値Ｂ（Ｇ値）：１３％、エリアＢの属性値Ｂ（Ｂ値）：０.８％）を用いる。
【０１０９】
そして、例えば、インデックス候補群検証処理でアクセスするデータバースを図１５に示されたデータベースを用いる。
【０１１０】
また、例えば、属性値Ａの属性値差に係る所定の範囲を±０.２とする。属性値Ａ以外の６つの第一画像属性値（即ち、エリアＡの属性値Ｂ（Ｒ値）、エリアＡの属性値Ｂ（Ｇ値）、エリアＡの属性値Ｂ（Ｂ値）、エリアＢの属性値Ｂ（Ｒ値）、エリアＢの属性値Ｂ（Ｇ値）、エリアＢの属性値Ｂ（Ｂ値））に係る所定の範囲を全て±０.８％とする。
【０１１１】
このような前提でインデックス候補群検証処理を行うと、インデックス候補１００４４３は図１５に示されたデータベースに存在していないと判定されるので、インデックス候補群からインデックス候補１００４４３が削除される。また、インデックス候補１００５７１、１００６０３及び１００４７５は、図１５に示されたデータベースに存在していると判定されるので、インデックス１００５７１、１００６０３及び１００４７５にそれぞれ紐付けられている複数の画像属性値（複数の第二画像属性値）をデータベースから読み出す。
【０１１２】
図１５を参照すれば分かるように、データベースから読み出した画像属性値は次のようになっている。
【０１１３】
即ち、インデックス１００５７１に紐付けられている７つの第二画像属性値は、属性値Ａ：０.８、エリアＡの属性値Ｂ（Ｒ値）：５.０％、エリアＡの属性値Ｂ（Ｇ値）：１０.０％、エリアＡの属性値Ｂ（Ｂ値）：１.５％、エリアＢの属性値Ｂ（Ｒ値）：３.５％、エリアＢの属性値Ｂ（Ｇ値）：３１.０％、エリアＢの属性値Ｂ（Ｂ値）：１０.０％となっている。
【０１１４】
インデックス１００６０３に紐付けられている７つの第二画像属性値は、属性値Ａ：０.７、エリアＡの属性値Ｂ（Ｒ値）：１.０％、エリアＡの属性値Ｂ（Ｇ値）：１０.０％、エリアＡの属性値Ｂ（Ｂ値）：５.０％、エリアＢの属性値Ｂ（Ｒ値）：３０.５％、エリアＢの属性値Ｂ（Ｇ値）：３０.５％、エリアＢの属性値Ｂ（Ｂ値）：３.０％となっている。
【０１１５】
インデックス１００４７５に紐付けられている７つの第二画像属性値は、属性値Ａ：０.８、エリアＡの属性値Ｂ（Ｒ値）：１０.０％、エリアＡの属性値Ｂ（Ｇ値）：８.０％、エリアＡの属性値Ｂ（Ｂ値）：１１.５％、エリアＢの属性値Ｂ（Ｒ値）：３１.０％、エリアＢの属性値Ｂ（Ｇ値）：３.０％、エリアＢの属性値Ｂ（Ｂ値）：１.０％となっている。
【０１１６】
以上のような７つの第一画像属性値と、７つの第二画像属性値をそれぞれ比較し、得られたそれぞれの属性値差が全て各所定の範囲内（即ち、±０.２、±０.８％、±０.８％、±０.８％、±０.８％、±０.８％、±０.８％）にあるか否かが判定された結果（ちなみに、図１５では、丸印をつけた属性値は、属性値差が所定の範囲内にあると判定される属性値である。）、インデックス候補１００５７１及び１００６０３は削除され、インデックス候補１００４７５のみが削除されずに、仮正解インデックスとして残る。
【０１１７】
本発明では、インデックス候補群検証処理によって得られた仮正解インデックスとされたインデックス候補が一つしかない場合に、後述する正解インデックス選定処理により、当該インデックス候補を正解インデックスとする。
【０１１８】
＜劣化後のロバスト・インデックス・コード画像からインデックスをロバストに復号するロバスト復号化処理における正解インデックスの選定＞
以上のように、本発明では、インデックス候補群に対し、インデックス候補群検証処理を行うことで、インデックス候補群を検証することにより、仮正解インデックスとされたインデックス候補を得ることができる。
【０１１９】
ここで、劣化後のロバスト・インデックス・コード画像の劣化が激しい場合、即ち、劣化後のロバスト・インデックス・コード領域における劣化が激しい場合に（例えば、図９（Ｂ）の矢印Ａ、矢印Ｂ及び矢印Ｃで示された劣化現象（境界消滅や色の干渉・浸透）が激しい場合に）、当該劣化後のロバスト・インデックス・コード画像からインデックス候補群を生成し、生成したインデックス候補群に対し、上述したインデックス候補群検証処理を行うことで得られた仮正解インデックスとされたインデックス候補は複数になる場合がある。
【０１２０】
そのため、本発明では、インデックス候補群検証処理を行うことにより得られた仮正解インデックスとされた複数のインデックス候補から正解インデックスを選定するために、正解インデックス選定処理を行うようにしている。
【０１２１】
図１９は正解インデックス選定処理の流れを示すフローチャートである。ここで、図１９を参照しながら、インデックス候補群検証処理によって得られた仮正解インデックスとされた複数のインデックス候補から正解インデックスを選定する正解インデックス選定処理について説明する。
【０１２２】
正解インデックス選定処理では、インデックス候補群検証処理によって得られた仮正解インデックスとされたインデックス候補の数Ｚに応じて、異なる方法で正解インデックスを選定するようにしている。
【０１２３】
図１９に示されたように、まず、仮正解インデックスとされたインデックス候補の数Ｚは、Ｚ＝１であるか、１＜Ｚ＜ｋであるか、又は、Ｚ＞ｋであるかが判定される（ステップＳ２１）。
【０１２４】
仮正解インデックスとされたインデックス候補の数Ｚが１の場合（即ち、Ｚ＝１）に、この唯一のインデックス候補を正解インデックスとする（ステップＳ２２）。
【０１２５】
また、仮正解インデックスとされたインデックス候補の数Ｚは１より大きく、且つ、所定の数値ｋ（例えば、ｋ＝３）より小さい場合（即ち、１＜Ｚ＜ｋ）に、仮正解インデックスとされたＺ個のインデックス候補にそれぞれ紐付けられているＺ枚の画像（オリジナル画像）をデータベースから読み出して利用者に提示するようにし（ステップＳ２３）、利用者は提示されたＺ枚の画像から１枚の画像を選択し（以下、「利用者が選択した１枚の画像」を単に「利用者の選択情報」とも言う）、利用者の選択情報に応じて得られたインデックス候補（即ち、利用者が選択した１枚の画像に紐付けられているインデックス候補）を正解インデックスとする（ステップＳ２４）。
【０１２６】
さらに、仮正解インデックスとされたインデックス候補の数Ｚは所定の数値ｋ（例えば、ｋ＝３）より大きい場合（即ち、Ｚ＞ｋ）に、正解インデックス無しとする（ステップＳ２５）。
【０１２７】
このように、本発明では、仮正解インデックスとされたインデックス候補に対し、正解インデックス選定処理を行うことで、正解インデックスを得ることができる。
【０１２８】
＜本発明に係るロバスト・インデックス・コードの利用方法＞
本発明に係るロバスト・インデックス・コードの利用方法を図１６に示す。図１６に示されたように、オリジナル画像が情報処理装置（例えば、パソコン、携帯端末装置、携帯情報端末等）に入力されると、オリジナル画像等を格納するデータベースにアクセスするためのインデックスはサーバから情報処理装置に与えられる。
【０１２９】
情報処理装置では、与えられたインデックスに対し、符号化処理を行うことにより、ロバスト・インデックス・コード画像を生成し、また、生成したロバスト・インデックス・コード画像をオリジナル画像に埋め込むことにより、ロバスト・インデックス・コード付き画像を生成し、更に、オリジナル画像又はロバスト・インデックス・コード付き画像に基づいてオリジナル画像の画像属性値を生成する。
【０１３０】
オリジナル画像及び当該オリジナル画像の画像関連情報と共に、情報処理装置で生成されたロバスト・インデックス・コード付き画像及び画像属性値は、インデックスに紐付けられてデータベースに格納される。
【０１３１】
そして、データベースに格納されているロバスト・インデックス・コード付き画像は、ネットワークを介して様々なサービス経由で、利用者端末（例えば、パソコン、携帯端末装置、携帯情報端末等）を通して利用者に提供される。ロバスト・インデックス・コード付き画像はこのような様々なネットサービスを経る際に行われる画像圧縮や伸長等によって劣化するので、利用者が利用者端末を通して得たのは、劣化後のロバスト・インデックス・コード付き画像である。
【０１３２】
そこで、利用者端末では、劣化後のロバスト・インデックス・コード付き画像におけるロバスト・インデックス・コード領域（即ち、劣化後のロバスト・インデックス・コード画像）に対し、本発明のロバスト復号化処理を行うことにより正解インデックスを求めることで、インデックスをロバストに復号できるようにした。
【０１３３】
具体的に、発明のロバスト復号化処理では、まず、劣化後のロバスト・インデックス・コード画像における全ての劣化有りのデータ領域に対応するＲ値、Ｇ値、及びＢ値から、独自な二元化アルゴリズムに基づいてインデックス候補群を生成し、次に、生成したインデックス候補群に対し、インデックス候補群検証処理を行うことで、仮正解インデックスとされたインデックス候補を求め、最後に、求めた仮正解インデックスとされたインデックス候補に対し、正解インデックス選定処理を行うことで、正解インデックスを求めるようにしている。
【０１３４】
このように求めた正解インデックス（即ち、ロバストに復号されたインデックス）に紐付けられているオリジナル画像及び当該オリジナル画像の画像関連情報をデータベースから読み出して利用者に提示する。
【０１３５】
＜再符号化処理＞
図１８は再符号化処理を説明するための模式図である。図１８に示されたように、本発明では、データベースに格納されているロバスト・インデックス・コード付き画像は、ネットワークを介して様々なサービス経由で、利用者端末を通して利用者に提供される。ロバスト・インデックス・コード付き画像はこのような様々なネットサービスを経る際に行われる画像圧縮や伸長等によって劣化するので、利用者が利用者端末を通して得たのは、劣化後のロバスト・インデックス・コード付き画像である。
【０１３６】
そして、利用者端末では、劣化後のロバスト・インデックス・コード付き画像におけるロバスト・インデックス・コード領域（即ち、劣化後のロバスト・インデックス・コード画像）に対し、本発明のロバスト復号化処理を行うことにより正解インデックスを求めることで、インデックスをロバストに復号できるようにした。
【０１３７】
本発明では、ロバスト復号化処理により得られた正解インデックスに対し、再符号化処理を行うことで、当該正解インデックスのロバスト・インデックス・コード画像を生成し、さらに、生成したロバスト・インデックス・コード画像をオリジナル画像に埋め込むことによって、ロバスト・インデックス・コード付き画像を生成するようにしている。
【０１３８】
このように、正解インデックスに対し、再符号化処理を行うことで、劣化無しのロバスト・インデックス・コード領域を有するロバスト・インデックス・コード付き画像を生成することができ、換言すれば、劣化無しのロバスト・インデックス・コード画像を埋め込んだロバスト・インデックス・コード付き画像を生成することができる。ロバスト・インデックス・コード付き画像を更新して利用者に提示する。
なお、本発明の再符号化処理は上述した＜符号化処理＞と同じ処理であるが、再符号化処理の対象はロバスト復号化処理により得られた正解インデックスであるのに対し、上述した＜符号化処理＞の処理対象は、オリジナル画像に対し、サーバから与えられたインデックスである。
【０１３９】
また、本発明では、上述した各処理（例えば、符号化処理、画像属性値生成処理、ロバスト復号化処理、インデックス候補群生成処理、インデックス候補群検証処理、正解インデックス選定処理、再符号化処理）は、情報処理装置又は利用者端末（例えば、パソコン、携帯端末装置、携帯情報端末等）によって実行される。
【０１４０】
以上では、色情報によるカラー化を行う際に、Ｒ値、Ｇ値、及びＢ値を色情報として使用したが、本発明で使用する色情報は、Ｒ値、Ｇ値、及びＢ値に限定されるものではなく、他の表色系（例えば、マンセル表色系、Ｌａｂ（ＣＩＥＬＡＢ）表色系、Ｌｕｖ（ＣＩＥＬＵＶ）表色系やＣＭＹ表色系などの表色系）による色情報を使用するようにしても良い。
【０１４１】
また、上述した符号化処理において、インデックスを変換して得られた二進数のビット列からカラー化を行っているが、本発明の符号化処理では、インデックスを変換して三進数で表現し、Ｒ値、Ｇ値およびＢ値にそれぞれ３値、例えば、（０,１２７，２５５）を割り当てることも可能である。この場合、ロバスト復号化処理においては、２つの値を求めている二元化アルゴリズムの代わりに３つの値を求める三元化アルゴリズムを用いることとなる。
【０１４２】
また、上述した二元化アルゴリズムでは、Ｒ値、Ｇ値、及びＢ値から、所定の基準範囲（第一基準値〜第二基準値）に基づいて二進数のビット列を復号するようにしているが、Ｒ値、Ｇ値、及びＢ値以外にもＲ値、Ｇ値、及びＢ値の間の偏差値、周辺データ領域の色情報との偏差値などとを合わせて用いることも可能である。
【０１４３】
また、上述したインデックス候補群生成処理では、劣化後のロバスト・インデックス・コード画像における劣化有りのデータ領域の中心部から画像処理によって、色情報（Ｒ値、Ｇ値、及びＢ値）を算出するようにしても良く、また、劣化有りのデータ領域の平均値、中央値、周辺の平均値などを色情報（Ｒ値、Ｇ値、及びＢ値）とすることもできる。
【０１４４】
また、再符号化処理では、ロバスト復号化処理により得られた正解インデックスに基づいて生成したロバスト・インデックス・コード画像をオリジナル画像だけではなく、劣化後のロバスト・インデックス・コード付き画像の劣化後ロバスト・インデックス・コード画像の元位置に再び埋め込むことによって、ロバスト・インデックス・コード付き画像を更新することも可能である。
【０１４５】
なお、以上、本発明の実施形態について説明したが、本発明は、上述した実施形態のみに限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形が可能である。
【符号の説明】
【０１４６】
３００    ロバスト・インデックス・コード領域
３０１    外壁
３０２    ロバスト・インデックス・コード領域の背景
３０３    データ領域
【図２】
2016177743.tif 000003
【図３】
2016177743.tif 000004
【図７】
2016177743.tif 000005
【図１６】
2016177743.tif 000006
【図１７】
2016177743.tif 000007
【図１８】
2016177743.tif 000008
【図１９】
2016177743.tif 000009
【図１】
2016177743.tif 000010
【図４】
2016177743.tif 000011
【図５】
2016177743.tif 000012
【図６】
2016177743.tif 000013
【図８】
2016177743.tif 000014
【図９】
2016177743.tif 000015
【図１０】
2016177743.tif 000016
【図１１】
2016177743.tif 000017
【図１２】
2016177743.tif 000018
【図１３】
2016177743.tif 000019
【図１４】
2016177743.tif 000020
【図１５】
2016177743.tif 000021