以下、本発明の好適な実施の形態(以下、「実施形態」と言う。)について、図面を用いて詳細に説明する。
[第1の実施形態(実施形態1)]
<情報処理装置のハードウェア構成について>
まず、本実施形態に係る情報処理装置のハードウェア構成について説明する。図1は、本発明の実施形態1に係る情報処理装置100のハードウェア構成の一例を示す図である。
図1に示すように、本実施形態に係る情報処理装置100は、制御部11、主記憶部12、補助記憶部13、ネットワークI/F14、外部記憶装置I/F15、外部装置I/F16、出力装置I/F17、及び入力装置I/F18とから構成されている。
制御部(CPU:Central Processing Unit)11は、以下に説明する主記憶部12、補助記憶部13、及びネットワークI/F14など、本実施形態に係る情報処理装置100が有する各装置の制御を行う。また、制御部11は、主記憶部12に記憶されたプログラムを実行する装置で、入力装置や記憶装置からデータを受け取り、データを演算・加工した上で、出力装置や記憶装置に出力する(例えば、キーボードで入力した文字をディスプレイに表示するなど)。
主記憶部(ROM:Read Only Memory、RAM:Random Access Memory)12は、制御部11が実行するプログラムや関連するデータを記憶(一時的に保持する場合も含む)する装置である。ROMには、制御部11が実行するプログラムや関連するデータが記憶されており、記憶されたプログラムや関連するデータは、制御部11により、必要に応じてRAM上へ展開(ロード)され、展開(ロード)されたプログラムや関連するデータは、制御部11により、演算・加工される。
補助記憶部(HD:Hard Disk)13は、基本ソフトウェアであるOS(Operating System)やアプリケーションソフトウェアなどを関連するデータとともに記憶する装置である。また、補助記憶部13には、本実施形態に係る情報処理装置100が管理する各種情報(例えば、利用者情報や機器設定情報など。)が格納され、データベース(DB:database)やファイルシステム(FS:File System)などにより管理される。
ネットワークI/F14は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器と本実施形態に係る情報処理装置100とのインタフェースである。
外部記憶装置I/F15は、USB(Universal Serial Bus)などのデータ伝送路を介して接続された外部記憶装置(例えば、記憶メディアドライブなど。)と本実施形態に係る情報処理装置100とのインタフェースである。
外部装置I/F16は、USBなどのデータ伝送路を介して接続された外部装置(例えば、スキャナやデジタルカメラなど。)と本実施形態に係る情報処理装置100とのインタフェースである。
本実施形態に係る情報処理装置100は、これらのインタフェースを介して、外部と各種データのやり取り(送受信や読み込み/書き込み)を行っている。
出力装置I/F17は、専用ケーブルなどのデータ伝送路を介して接続された出力装置(例えば、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)など。)と本実施形態に係る情報処理装置100とのインタフェースである。
入力装置I/F18は、USBなどのデータ伝送路を介して接続された入力装置(例えば、キーボードやマウスなど。)と本実施形態に係る情報処理装置100とのインタフェースである。
<情報埋め込みの主な機能構成とその動作について>
では、情報処理装置100が有する情報埋め込み機能について説明する。図2は、本発明の実施形態1に係る情報埋め込みの主な機能構成の一例を示すブロック図である。
図2に示すように、本実施形態に係る情報処理装置100は、画像入力手段として機能する画像入力部21、画像分割手段として機能する画像分割部22、情報入力手段として機能する情報入力部23、情報分割手段として機能する情報分割部24、情報割り当て手段として機能する情報割り当て部25、情報埋め込み手段として機能する情報埋め込み部26、画像出力手段として機能する画像出力部27、及び記憶手段として機能する記憶部28とから構成される。
画像入力部21は、処理対象の画像P1を入力する。画像入力部21は、例えば制御部11と、ネットワークI/F14、外部記憶装置I/F15、又は外部装置I/F16などにより実現される。
画像分割部22は、画像入力部21により入力された画像P1を、格子状に分割することにより複数の分割画像を取得する。画像分割部22は、例えば制御部11により実現される。なお、上記格子には、三角格子や四角格子など、様々な形状の格子が含まれる。
図3は、本発明の実施形態1に係る分割画像に対して部分情報を割り当てた状態の一例を示す図である。このように、画像分割部22は、入力された画像P1を格子状に分割することにより、64(8x8)個の矩形の画像領域(以下、「分割画像」と言う。)を取得する。
このとき、画像分割部22は、取得した各分割画像に対し、ユニークな識別情報(以下、「領域ID」と言う。)を関連付けて、記憶部28に記憶する。上記識別情報は、任意の方法によって定義することができる。例えば、画像P1における分割画像の位置を基に、各分割画像の識別番号を定義する方法であってもよい。この場合、画像P1の最も左上に位置する分割画像を起点(=座標(0,0))とし、起点となる分割画像との位置関係を基に、他の分割画像に対応する識別番号を定義することができる。さらに、画像分割部22は、取得した分割画像の個数も、記憶部28に記憶する。なお、以降の説明では、上記識別情報を領域IDと称す。
また、画像分割部22は、埋込情報Iを分割して得る部分情報と同数、又はそれより多い分割画像を取得する。例えば、図3の例では、埋込情報Iから取得した部分情報が8個であることから、入力された画像P1を8個以上の分割画像へ分割する。
情報入力部23は、処理対象の画像P1に埋め込む埋込情報Iを入力する。情報入力部23は、例えば制御部11と、ネットワークI/F14、外部記憶装置I/F15、又は外部装置I/F16などにより実現される。
情報分割部24は、情報入力部23により入力された埋込情報Iを分割し、複数の部分情報を取得する。情報分割部24は、例えば制御部11により実現される。
このとき、情報分割部24は、取得した各部分情報に対し、ユニークな識別情報(以下、「情報ID」と言う。)を関連付けて、記憶部28に記憶する。さらに、取得した部分情報の個数(以下、「分割数N」と言う。)も、記憶部28に記憶する。
図3には、情報分割部24が、8bitの埋込情報Iを1bitの部分情報8個に分割した例が示されている。
情報割り当て部25は、画像分割部22により取得した分割画像に、情報分割部24により取得した部分情報を割り当てる(埋め込む部分情報を分割画像に対応付ける)。情報割り当て部25は、例えば制御部11により実現される。
ここで、情報割り当て部25が行う処理の詳細について、画像分割部22が画像P1を四角格子状に分割した場合を例に説明する。
まず、情報割り当て部25は、記憶部28に記憶された部分情報の分割数Nを取得する。そして、分割数Nと、以下の[条件1]を満たす整数a及びbを算出する。
[条件1] 整数a又はbの少なくとも一方は、分割数Nと「互いに素」である。
続いて、情報割り当て部25は、分割数N及び整数aとbを基に、以下の(式1)及び(式2)を用いて、部分情報を埋め込む分割画像を決定する。
a*i=b(mod)N ・・・(式1)
a=b*j(mod)N ・・・(式2)
なお、上記「mod」は、剰余を表す演算子であり、例えば、「Z = X mod Y」の場合には、XをYで割った余りの値がZとなる。
情報割り当て部25は、(式1)及び(式2)により求まる整数iとjを、画像P1における各分割画像の位置を示す座標値(i,j)として、領域ID(i,j)に関連付けられた分割画像を、部分情報の埋め込み対象とする。
情報割り当て部25は、このようにして決定された分割画像に、埋め込む部分情報を割り当てる。
その中で、情報割り当て部25は、所定の方向に位置する分割画像の集合に対し、全ての部分情報を割り当てる。上記「所定の方向に位置する分割画像の集合」は、整数i又はjのいずれか一方を任意の固定値とし、他方を変化させたときの領域ID(i,j)と関連付けられた分割画像の集合を言う。
図3に示すように、画像P1を四角格子状に分割した場合であって、整数jを固定した場合に、所定の方向に位置する分割画像の集合は、同一列に存在する分割画像の集合となる。より具体的には、分割数N及び整数aとbの場合、(式2)から、以下の条件が求まる。
[条件2] j=(a + Nx)/b(xは任意の整数)
[条件3] jは√Nに最も近い整数
例えば、分割数N=8及び整数a=7とb=5の場合は、[条件2]及び[条件3]を満たす整数jが3となり、領域ID(i,3)に位置する分割画像の集合となる。なお、整数iを固定した場合は、所定の方向に位置する分割画像の集合は、同一行に存在する分割画像の集合となる。
ここでは、上記条件に従って整数jを求めたため、整数iに関しては、任意の整数値とする。
また、情報割り当て部25は、以下の(式3)を用いて、分割画像に埋め込む部分情報を決定する。
x = (a * i + b * j + m)mod N ・・・(式3)
情報割り当て部25は、領域ID(i,j)が関連付けられた分割画像と、情報ID(x)が関連付けられた部分情報とを対応付ける。これにより、分割画像の集合に対する情報割り当てを行う。
例えば、分割数N=8、整数a=7、b=5、j=3、及び任意の整数mを基に、(式3)を用いて、領域ID(i,3)が関連付けられた分割画像に対応付ける、情報ID(x)が関連付けられた部分情報を決定する。なお、本実施形態では、任意の整数mを0とする。
まず、i=1の場合、(式3)によりx=6となる。よって、領域ID(1,3)が関連付けられた分割画像には、情報ID(6)が関連付けられた部分情報を対応付ける。また、i=2の場合、(式3)によりx=5となる。よって、領域ID(2,3)が関連付けられた分割画像には、情報ID(5)が関連付けられた部分情報を対応付ける。
図3の本実施形態の例には、このようにして対応付けられた分割画像と部分情報との例が示されている。図3に示すように、従来では、所定の方向に位置する分割画像の集合に決まった情報ID(x)が割り当てられていた。
このように、従来の割り当て方法では、例えば、情報IDが6番目から8番目までの部分情報を割り当てようとしていた分割画像が、濃淡の特徴から情報を埋め込むことができない白色領域であった場合、情報IDが1番目から5番目までの部分情報を分割画像に埋め込むことができても、6番目から8番目までの部分情報を分割画像に埋め込むことができない。その結果、部分情報の出現率が極端に少なくなり、情報IDが6番目から8番目までの部分情報の抽出精度が低下してしまう。
しかし、本実施形態では、図3の本実施形態に示されるように、互いに異なる方向に位置する分割画像の集合それぞれに対して、全ての部分情報が割り当てられている。より具体的には、画像P1の格子を構成する行(i)又は列(j)に位置する分割画像の集合に対して、全ての部分情報が割り当てられている。
また、分割画像の集合に対して各部分情報を複数回にわたって割り当てる一方で、埋込情報Iの全ての部分情報が、連続した分割画像に割り当てられている。
これにより、所定の方向に位置する分割画像の集合に対して、全ての部分情報が均等に出現するように割り当てることができる。その結果、情報を埋め込むことができる分割画像が限られている画像P1であっても、部分情報の出現率が極端に少なくなることがないため、情報埋込画像P2から精度良く埋込情報Iを抽出することができる。
なお、上記任意の整数mは、「鍵情報」としての役割や「アルゴリズム推定困難性の向上」の役割をする。なぜなら、mの値を判別しなければ、正しく情報を抽出することができず、また、mの値が分からないと情報埋め込みアルゴリズムの解読が困難になるからである。
異なる情報を同じ画像に埋め込んだ場合に、整数a、b、m、及び分割数Nが全て固定であると、それらの画像の差分を取ることで情報埋め込みアルゴリズムのヒントを与えてしまうことになる(アルゴリズムが知られると偽造・改竄が可能となる)。例えば、1bitだけ違う情報が埋め込まれた2つの画像があり、その差分を取ると1bitの違いがどこに現れるかが分かり、アルゴリズム解読のヒントとなる。
そこで情報を埋め込むときにランダムにmを変えることで、1bitの違いでも画像の差分は大きくなり、かつ、その差分画像は毎回変化するためアルゴリズムの解読を困難にする。この場合、正規の情報抽出を行う者にもmの値が分からなくなってしまう。しかし別途同期用のコードを埋め込んでおく(例えば埋め込み情報の先頭3bitは'101'とし、これが他の部分に現れないように符号化する)ことで、mが分からなくても情報を抽出することができる。
従って、任意の整数mは、上記役割を有することになる。
以上のように、情報割り当て部25は、各分割画像に全ての部分情報を割り当てる。また、情報割り当て部25は、このようにして各分割画像と割り当てた部分情報とを対応付ける情報(領域IDと情報IDとを対応付けた情報など)を、記憶部28に記憶する。
情報埋め込み部26は、情報割り当て部25により記憶部28に記憶された分割画像と部分情報との対応付けに従って、割り当てられた部分情報を分割画像に埋め込む。情報割り当て部25は、例えば制御部11により実現される。
情報埋め込み部26では、例えば、埋込情報Iが除去されにくく、かつ画質の劣化を抑えることができる画像領域に情報を埋め込むことができる利点を生かし、画像P1のデータを周波数成分に変換し、特定の周波数成分に情報を埋め込む方法によって行う。このとき、周波数変換には、例えば、DCT(Discrete Cosine Transform:離散コサイン変換)、FFT(Fast Fourier Transform:高速フーリエ変換)、ウェーブレット変換のような様々な方法を採用することができる。
本実施形態では、埋め込み方法としてDCTを用いて部分情報のビット'0'又はビット'1'を分割画像に埋め込む例を示し、その他の方法については、ここでの説明は省略する。
情報埋め込み部26は、まず、分割画像における画素の輝度値の分散を測定し、測定結果(分散値)が特定の閾値を下回る場合、その分割画像には、割り当てられた部分情報を埋め込まない。また、情報埋め込み部26は、測定結果(分散値)が特定の閾値以上の場合、分割画像に対してDCTを行う(周波数変換を行う)。
より具体的には、例えば、部分情報のビット'0'を埋め込む場合には特定係数を+dに、部分情報のビット'1'を埋め込む場合には特定係数を-dに変更し、変更後に逆DCT(逆離散コサイン変換)を行い(逆変換を行い)、分割画像に戻す。
情報埋め込み部26は、このような処理を、画像P1を分割して生成された全ての分割画像に対して行う。
画像出力部27は、情報埋め込み部26により情報が埋め込まれた情報埋込画像P2を出力する。画像出力部27は、例えば制御部11と、ネットワークI/F14、外部記憶装置I/F15、又は外部装置I/F16などにより実現される。
記憶部28は、上記各機能部の処理結果など、前述した一連の処理に用いる各種情報や画像データを記憶する。記憶部28は、例えば主記憶部12や補助記憶部13などにより実現される。
続いて、本実施形態に係る情報埋め込み処理の手順について説明する。図4は、本発明の実施形態1に係る情報埋め込みの基本処理手順の一例を示すフローチャートである。
本実施形態に係る情報処理装置100は、例えば、補助記憶部13に格納された情報埋め込み処理を行うプログラムを主記憶部12であるRAM上に展開(ロード)し、制御部11で実行する。このとき、以下の処理手順が実行される。
本実施形態に係る情報処理装置100は、まず、画像入力部21により情報を埋め込む画像P1を入力(取得)し(S101)、画像分割部22により、入力された画像P1を複数の画像領域に分割することにより分割画像を取得する(S102)。
次に、情報埋め込み機能は、情報入力部23により埋込情報Iを入力(取得)し(S103)、情報分割部24により、入力された埋込情報Iを複数の部分情報に分割する(S104)。
情報処理装置100は、情報割り当て部25により、前述した各条件に従い、かつ各式を用いて、所定の方向に位置する分割画像の集合に、埋込情報Iの全ての部分情報を割り当て(S105)、情報埋め込み部26により、割り当てられた部分情報を、対応付けられた分割画像に埋め込む(S106)。
最後に、情報処理装置100は、画像出力部27により、情報埋込画像P2を出力する(S107)。
以上のように、本実施形態に係る情報処理装置100は、上記に説明した情報埋め込み機能により、情報を埋め込むことができる画像領域が限られている画像データに対しても、埋込情報Iの全ての部分情報が均等に出現するように繰り返し情報を埋め込むことができる。
<埋め込み情報抽出の主な機能構成及びその動作について>
ここからは、本実施形態に係る情報処理装置100において、情報埋込画像P2から埋込情報Iを抽出する機能(埋め込み情報抽出機能)の構成とその動作について説明する。
図5は、本発明の実施形態1に係る埋め込み情報抽出の主な機能構成の一例を示すブロック図である。
図5に示すように、本実施形態に係る情報処理装置100は、画像入力手段として機能する画像入力部41、画像分割手段として機能する画像分割部42、情報抽出手段として機能する情報抽出部43、情報構成手段として機能する全体情報構成部44、抽出情報決定手段として機能する抽出情報決定部45、及び記憶手段として機能する記憶部46とから構成される。
画像入力部41は、情報埋込画像P2を入力する。画像入力部21は、例えば制御部11と、ネットワークI/F14、外部記憶装置I/F15、又は外部装置I/F16などにより実現される。
画像分割部42は、画像入力部41により入力された情報埋込画像P2を、格子状に分割することにより複数の分割画像を取得する。画像分割部22は、例えば制御部11により実現される。画像分割部42は、情報埋め込み機能で入力された画像P1を分割した際の分割数や格子状の分割形状などに従って情報埋込画像P2を分割する。
このとき、画像分割部42は、取得した各分割画像に対して領域IDを関連付けて、記憶部46に記憶する。さらに、取得した分割画像の個数も、記憶部46に記憶する。
情報抽出部43は、画像分割部42により分割して生成された分割画像から、情報埋め込み機能により埋め込まれた埋込情報Iの部分情報を抽出する。
情報抽出部43での埋め込み情報抽出方法は、例えば、情報埋め込み機能が情報を埋め込む際にDCTを行い、部分情報を分割画像に埋め込んでいる場合、同じDCTによって抽出を行う。ここでは、埋め込み情報抽出方法として、DCTを行い、部分情報のビット'0'又はビット'1'が埋め込まれた分割画像から情報を抽出する例を示す。
情報抽出部43は、まず、分割画像に対してDCTを行う(周波数変換を行う)。例えば、特定のDCT係数が+dに十分近い場合には、ビット'0'の部分情報を抽出し、特定のDCT係数が−dに十分近い場合には、ビット'1'の部分情報を抽出する。
情報抽出部43は、このような処理を、情報埋込画像P2を分割して生成された全ての分割画像に対して行う。
全体情報構成部44及び抽出情報決定部45は、情報抽出部43により抽出された部分情報を基に、情報埋込画像P2に埋め込まれた埋込情報Iを生成する。
全体情報構成部44は、まず、情報埋め込み機能で、分割画像に部分情報を割り当てる際に用いた(式3)と、分割画像の領域ID(i,j)とを基に、情報抽出部43により抽出された部分情報の情報ID(x)を算出する。このとき用いられる(式3)では、情報埋め込み機能と同じ、整数a、b、m、及び分割数Nそれぞれの値が代入されている。全体情報構成部44は、このような(式3)を用いて、画像分割部42により記憶部46に記憶された分割画像の数だけ、部分情報の情報ID(x)を算出する。
次に、全体情報構成部44は、情報抽出部43により抽出された部分情報を、算出した情報ID毎に分類し、最終的な部分情報を決定するための候補である情報群を構成する。つまり、情報埋込画像P2には、繰り返し情報が埋め込まれているため、同じ情報IDにおいて部分情報の候補となる情報が複数存在することから、全体情報構成部44は、情報ID毎に分類された候補情報の中から最終的な部分情報を決定する。
図6は、本発明の実施形態1に係る抽出した部分情報を決定する方法の一例を示す図である。例えば、埋込情報IがN個に分割されている場合、領域ID(i,j)関連付けられる分割画像から抽出された部分情報を、(式3)から算出した情報ID(x)の部分情報とする。続いて、図6の「抽出された部分情報」に示すように、抽出された部分情報を、識別番号(#0〜#N−1)である情報ID毎に分類し、情報埋込画像P2から抽出した全体の情報を構成する。すなわち、情報ID毎に抽出した情報群を生成する。
このとき、全体情報構成部44は、全体の情報(抽出した情報群)を、例えばリスト構造により記憶部46に記憶する。
抽出情報決定部45は、全体情報構成部44により記憶部46に記憶され構成された情報群に対して、情報の内容毎(例えば、抽出された情報量が1bitの場合、ビット'0'やビット'1'など。)に算出した信頼度を基に最終的な部分情報を決定し、その結果を基に最終的な抽出情報、すなわち、情報埋込画像P2に埋め込まれた埋込情報Iを決定する。
抽出情報決定部45は、情報抽出部43において、例えば、特定のDCT係数と±dの距離や同じ情報IDで抽出された部分情報の尤度(部分情報が出現する確率)などを算出し、その算出結果を部分情報の信頼度とする。また、抽出情報決定部45では、例えば、尤度を信頼度とした場合、算出された信頼度を基に、最尤推定法によって情報ID毎の部分情報を決定し、最終的な抽出情報を決定する。
まず、抽出情報決定部45は、全体情報構成部44により記憶部46に記憶され構成された情報群から、部分情報の情報IDを基に、同じ情報IDで抽出された部分情報の尤度(部分情報が出現する確率)を部分情報の信頼度として算出する。
例えば、図6の「抽出された部分情報」に示す部分情報の識別番号#0(情報ID(0))には、1回目に抽出された情報がビット'0'である尤度が(0.8)、2回目に抽出された情報がビット'0'である尤度(0.7)、また、3回目に抽出された情報がビット'1'である尤度が(0.6)、4回目に抽出された情報がビット'1'である尤度(0.7)である尤度の算出結果の例が示されている。このことから、1回目に抽出された情報がビット'1'である尤度は(1−0.8)、2回目に抽出された情報がビット'1'である尤度(1−0.7)、3回目に抽出された情報がビット'0'である尤度(1−0.6)、4回目に抽出された情報がビット'0'である尤度(1−0.7)となる。
続いて、抽出情報決定部45は、抽出された情報の内容毎の尤度それぞれにおいて抽出回数分乗算し、互いの乗算結果の大小を比較する。その結果、最も乗算結果が大きかった情報を最終的な部分情報とする(最尤推定法)。
例えば、図6の「抽出された部分情報」に示す部分情報の識別番号#0(情報ID(0))の場合では、ビット'0'である尤度の乗算結果が0.0672(=0.8*0.7*(1-0.6)*(1-0.7))となる。また、ビット'1'である尤度の乗算結果が0.0252(=(1-0.8)*(1-0.7)*0.6*0.7)となる。よって、ビット'0'とビット'1'との乗算結果の大小を比較(0.0672>0.0252)すると、ビット'0'の方がビット'1'に比べて乗算結果が大きいことから、識別番号#0(情報ID(0))の部分情報をビット'0'に決定する。
最後に、抽出情報決定部45は、抽出した情報の信頼度を基に情報ID毎の最終的な部分情報を決定することによって、図6の「抽出情報を生成」に示すように、最終的な抽出情報、すなわち、情報埋込画像P2に埋め込まれた埋込情報Iを生成する。
続いて、本実施形態に係る埋め込み情報抽出処理の手順について説明する。図7は、本発明の実施形態1に係る埋め込み情報抽出の基本処理手順の一例を示すフローチャートである。
本実施形態に係る情報処理装置100は、例えば、補助記憶部13に格納された埋め込み情報抽出処理を行うプログラムを主記憶部12であるRAM上に展開(ロード)し、制御部11で実行する。このとき、以下の処理手順が実行される。
本実施形態に係る情報処理装置100は、まず、画像入力部41により情報Iが埋め込まれた情報埋込画像P2を入力(取得)し(S201)、画像分割部42により、入力された情報埋込画像P2を複数の画像領域に分割することにより分割画像を取得する(S202)。
次に、情報処理装置100は、情報抽出部43により、分割画像に対してDCTを行い、情報埋め込み機能により埋め込まれた埋込情報Iの部分情報を抽出する(S203)。
情報処理装置100は、全体情報構成部44により、情報埋め込み機能で、分割画像に部分情報を割り当てる際に用いた(式3)と、分割画像の領域ID(i,j)とを基に、抽出された部分情報の識別番号である情報ID(x)を算出する。続いて、繰り返し抽出される部分情報を、算出した情報ID毎に分類し、最終的な部分情報を決定するための候補である情報群を構成する(S204)。
最後に、情報処理装置100は、抽出情報決定部45により、全体情報構成部44により構成された情報群の信頼度である尤度を算出し、算出した信頼度を基に、最尤推定法によって情報ID毎の部分情報を決定し、最終的な抽出情報を決定する(S205)。
このように、本実施形態に係る情報処理装置100は、上記に説明した埋め込み情報抽出機能により、抽出した情報の信頼度に基づいて、情報ID毎に最終的な部分情報を決定することで、情報が繰り返し埋め込まれた情報埋込画像P2から精度良く埋め込んだ埋込情報Iを抽出することができる。
これまでは、本実施形態の一例として、四角格子状の分割画像に対する埋め込み情報の割り当て方法について説明した。
ここからは、複数ページの画像に対する埋め込み情報の割り当て方法や四角格子以外の分割形状における埋め込み情報の割り当て方法について説明する。
<複数ページの画像に対する埋め込み情報の割り当て方法>
図8は、本発明の実施形態1の変形例に係る複数ページの分割画像に対して部分情報を割り当てた状態の一例を示す図である。
本変形例では、本実施形態に係る情報埋め込み機能において、部分情報の割り当てを、複数ページにわたって行う。その際に、情報埋め込み機能では、情報割り当て部25により、(式3)に替えて以下の(式4)を用いて、ページ毎の画像P1における領域IDに位置する分割画像に割り当てる部分情報の情報IDを算出し、記憶部26により分割画像と部分情報との対応付けを記憶する。
x =(a*i+b*j+c*k+m)mod N ・・・(式4)
この中で示す「k」はページ数であり、所定の整数cは、本実施形態に係る情報埋め込み機能において説明した(条件1)「埋込情報Iの分割数Nと所定の整数cは互いに素である。」を満たす整数値である。
図8には、各ページの分割画像に対して情報割り当て部25により情報割り当て状態の一例が示されている。
例えば、図8では、画像入力部21により画像P1が入力されたときのページカウント値k、埋込情報Iの分割数N=17、(条件1)及び(条件2)を満たす整数a=5、b=3、c=2、及び任意の整数m=0を基に、(式4)を用いて、kページ目の画像P1における領域ID(i,j)に位置する分割画像に割り当てる部分情報の情報ID(x)を算出する。
情報割り当て部25は、kページ目の領域ID(i,j)が関連付けられた分割画像と、情報ID(x)が関連付けられた部分情報とを対応付ける。これにより、分割画像の集合に対する情報割り当てを行う。
例えば、1ページ目の領域ID(1,1)の分割画像には、情報ID(8)に関連付けられた部分情報が割り当てられ、2ページ目の領域ID(1,1)の分割画像には、情報ID(10)に関連付けられた部分情報が割り当てられる。
このようにして、情報割り当て部25は、17ページ目までの同じ領域ID(i,j)に対して、埋込情報Iの全ての部分情報が出現するように割り当てる。
また、ページ毎に同じ領域ID(i,j)にあたる分割画像それぞれにおいて、各分割画像に割り当てられた部分情報の並び(各ページの同じ位置にあたる分割画像に出現する部分情報の順番)が異なる。
このように、本変形例に係る情報割り当て部25は、(式4)を用いて、複数ページにわたり分割画像に部分情報を割り当てることで、ページ毎で同じ位置(同一領域ID(i,j))の分割画像に、埋込情報Iの全ての部分情報を平均的に割り当てる。
よって、本変形例に係る情報割り当て部25では、埋込情報Iの全ての部分情報を、複数ページにわたって均等に割り当てることができ、各部分情報の抽出精度を向上することができる。このような部分情報の割り当て方法は、例えば、プレゼンテーション資料など同一位置に同じ文字や図形が存在する文書画像において、均等に情報を埋め込むことができる。また、複数ページにわたり情報を埋め込むため、埋め込む情報量を増加させることができ、埋込情報Iの抽出精度の向上に繋がる。
<四角格子以外の分割形状における埋め込み情報の割り当て方法>
図9は、本発明の実施形態1の変形例に係る三角形の分割画像に対して部分情報を割り当てた状態の一例を示す図である。
図9には、画像分割部22により、画像P1が三角格子状に分割された場合の一例が示されている。まず、図中の三角形の中の(i,j)は、分割画像の領域IDを示しており、その下に書かれた数字は、割り当てる部分情報の情報IDを示している。
図9では、埋込情報Iの分割数N=5、(条件1)及び(条件2)を満たす整数a=3、b=4、及び任意の整数m=0を基に、(式3)を用いて算出された部分情報の情報ID(x)が、対応する領域ID(i,j)に位置する三角格子状の分割画像に割り当てられている。
図10は、本発明の実施形態1の変形例に係る極座標上の分割画像に対して部分情報を割り当てた状態の一例を示す図である。
図10には、画像分割部22により、画像P1が極座標に従って分割された場合の一例が示されている。
図10では、埋込情報Iの分割数N=4、(条件1)及び(条件2)を満たす整数a=1、b=3、及び任意の整数m=0を基に、(式3)を用いて算出された部分情報の情報ID(x)が、対応する領域ID(i,j)に位置する極座標上の分割画像に割り当てられている。
本変形例に示すように、画像P1の分割方法は任意であり、分割方法と分割画像の識別番号である領域ID(i,j)の割り当てにより、領域ID(i,j)の座標軸方向に全ての部分情報を出現させることができる。すなわち、埋め込み対象の画像P1の埋め込み可能な領域の出現パターンに適するように領域分割・座標(i,j)の割り当てを行えばよい。
また、上記例の領域ID(i,j)は、連続的に変化しているが、明確な座標を設けず、不連続に変化してもよい。また、全ての分割画像が同じ形状である必要もない。さらに、領域分割する空間が、画像P1の画素空間でなく、周波数空間であってもよい。
<情報埋め込み・埋め込み情報抽出機能を有する情報処理システムについて>
本実施形態に係る情報埋め込み・埋め込み情報抽出機能を有する情報処理装置100が接続された情報処理システムについて説明する。
図11は、本発明の実施形態1に係るシステム構成の一例を示す図である。図11に示す情報処理システムは、本実施形態に係る情報埋め込み・埋め込み情報抽出機能を有する端末(情報処理装置)PC1と、情報を埋め込む画像P1や情報埋込画像P2などを読み取るスキャナ(画像読み取り装置)SCNが接続された端末PC2と、埋込情報Iを入力する端末PCnと、情報埋込画像P2を出力するプリンタ(画像形成装置)PRNとから構成されている。また、それぞれの装置が、有線及び無線回線により構築されたLAN(Local Area Network)やWAN(Wide Area Network)などのネットワーク(データ通信網)90に接続されている。
このように、埋込情報Iの入力機能、情報を埋め込む画像P1及び情報埋込画像P2の入力機能を、1台の情報処理装置100が有していなくても、本実施形態に係る情報埋め込み・埋め込み情報抽出機能を実現することができる。
さらに、上記例では、本実施形態に係る情報埋め込み・埋め込み情報抽出機能を1台の情報処理装置100が有している例を挙げたが、情報埋め込み機能と埋め込み情報抽出機能とを別々の情報処理装置100が有している構成であってもよい。
<まとめ>
以上のように、本発明の第1の実施形態によれば、本実施形態に係る情報処理装置100は、分割された画像P1の所定の方向に位置する分割画像に、埋込情報Iの全ての部分情報を割り当てることができる。
よって、一般の文書画像のような情報を埋め込むことができる画像領域が限られている画像P1に対しても、埋込情報Iの全ての部分情報が均等に出現するように情報を埋め込むことができる。
また、本発明の第1の実施形態によれば、本実施形態に係る情報処理装置100は、抽出した情報の信頼度に基づいて、部分情報の識別番号である情報ID毎に最終的な部分情報を決定し、情報埋込画像P2に埋め込まれた埋込情報Iを生成することができる。
よって、情報埋込画像P2から精度良く埋込情報Iを抽出することができる。
[第2の実施形態(実施形態2)]
本実施形態に係る情報処理装置は、情報が埋め込まれた画像の回転を考慮して、90度単位で画像回転した場合に対応した情報埋め込み機能及び埋め込み情報抽出機能を実現する。
以下に、本実施形態に係る情報処理装置についての説明を行うが、第1の実施形態と本実施形態との違いは、情報が埋め込まれた画像の回転(90度単位)に対応して、情報を埋め込むことができる画像領域が限られている画像に対しても繰り返し情報を埋め込み、情報が繰り返し埋め込まれた画像から精度良く埋め込んだ情報を抽出することができる点である。よって、本実施形態において、第1の実施形態と同一の事項については、同一図面及び同一符号を用いて、その説明は省略する。
<90度単位の画像回転に対応した情報埋め込みの主な機能を構成する手段について>
本実施形態に係る情報処理装置100は、第1の実施形態と同一構成の情報埋め込み機能を有しており、第1の実施形態と異なる点は、90度単位の画像回転に対応した部分情報割り当てを行う情報割り当て部25である。
では、本実施形態に係る情報割り当て部25について説明する。
図12は、本発明の実施形態2に係る部分情報を割り当てた画像が90度単位で回転した状態の一例(その1)を示す図である。
本実施形態に係る情報割り当て部25は、画像P1における領域ID(i,j)に位置する分割画像に対して、(式3)を用いて算出した情報ID(x)の部分情報を割り当てる点について、第1の実施形態と同様である。しかし、90度単位の画像回転に対応するため、第1の実施形態に示した(式3)の「所定の整数a、b」の決定方法(整数a、bが満たす条件)が異なっている。
情報割り当て部25における「所定の整数a、b」は、以下の条件を満たす整数である。
[条件1] 整数a又はbの少なくとも一方は、分割数Nと「互いに素」である。
[条件2] 以下の(式5)が成り立つこと。
0=(a2 + b2)(mod)N ・・・(式5)
情報割り当て部25では、(条件1)及び(条件2)を満たす整数a、b、整数m、及び分割数Nそれぞれの値が代入された(式3)と、分割画像の領域ID(i,j)とを基に、分割画像に割り当てる部分情報の情報ID(x)を算出する。
図12には、分割画像に対して情報割り当て部25による情報割り当て状態の一例が示されている。
例えば、図12では、埋込情報Iの分割数N=17、(条件1)及び(条件2)を満たす整数a=5、b=3、及び任意の整数m=0を基に、(式3)を用いて、画像P1における領域ID(i,j)に位置する分割画像に割り当てる部分情報の情報ID(x)を算出する。
情報割り当て部25は、領域ID(i,j)が関連付けられた分割画像と、情報ID(x)が関連付けられた部分情報とを対応付ける。これにより、分割画像の集合に対する情報割り当てを行う。
また、情報割り当て部25は、図12の情報割り当て状態「回転角度0度」に示すように、上記各条件を満たす(式3)を用いて算出した情報IDの部分情報を、対応する領域IDの分割画像に割り当てることにより、情報埋込画像P2が90度単位で回転しても、二次元空間座標において、部分情報が埋め込まれた分割画像の相対的な位置が変化しないように、分割画像に部分情報を割り当てることができる。
例えば、「回転角度0度」の例を見ると、領域ID(3,5)、(4,4)、(5,3)に位置する3つの分割画像には、埋込情報Iにおける情報ID(13)、(15)、(0)の部分情報が割り当てられる。それに対して、「回転角度90度(反時計回り)」の例を見ると、領域ID(3,3)、(4,4)、(5,5)に位置する3つの分割画像に、「回転角度0度」ときと同じ情報IDの部分情報が割り当てられている。
これによって、本実施形態に係る情報処理装置100は、上記に説明した情報割り当て部25により、分割された画像P1における所定の方向に位置する分割画像の集合に対して、埋込情報Iの全ての部分情報を割り当て、さらに、情報埋込画像P2が90度単位で回転した場合においても、埋込情報Iの全ての部分情報を精度良く抽出することができるように、分割画像に部分情報を割り当てることができる。
<90度単位の画像回転に対応した埋め込み情報抽出の主な機能を構成する手段について>
本実施形態に係る埋め込み情報処理装置100は、第1の実施形態と同一構成の情報埋め込み機能を有しており、第1の実施形態と異なる点は、90度単位の画像回転に対応した埋込情報Iの生成を行う全体情報構成部44及び抽出情報決定部45である。
では、本実施形態に係る全体情報構成部44及び抽出情報決定部45について説明する。
図13は、本発明の実施形態2に係る90度単位での画像回転に対応して抽出した部分情報を決定する方法の一例(その1)を示す図である。
本実施形態に係る全体情報構成部44及び抽出情報決定部45は、抽出された部分情報を基に、情報埋込画像P2に埋め込まれた埋込情報Iを生成する点について、第1の実施形態と同様である。しかし、90度単位の画像回転に対応するため、第1の実施形態に示した(式3)を用いて抽出された部分情報の情報ID(x)を算出する方法が異なっている。
まず、全体情報構成部44は、0度、90度、180度、及び270度の各回転を想定し、回転後の情報埋込画像P2から抽出される部分情報の情報ID(x)を、以下に示す計算式により算出する。
0度回転の場合 :x =(a*i+b*j+m)mod N ・・・(式6−1)
90度回転の場合 :x =(b*i−a*j+m)mod N ・・・(式6−2)
180度回転の場合 :x =(−a*i−b*j+m)mod N ・・・(式6−3)
270度回転の場合 :x =(−b*i+a*j+m)mod N ・・・(式6−4)
全体情報構成部44では、まず、上記に挙げる(式6−1)〜(式6−4)と、分割画像の領域ID(i,j)とを基に、情報埋込画像P2が0度回転、90度回転、180度回転、及び270度回転の場合に抽出される部分情報の情報ID(x)それぞれの値を算出する。次に、全体情報構成部44は、繰り返し抽出される部分情報を、算出した情報ID毎に分類し、最終的な部分情報を決定するための候補である情報群を、想定した4つの回転パターン毎に構成する。
その結果、抽出情報決定部45が、抽出した情報の信頼度を基に、情報ID毎の最終的な部分情報を決定し、図13の「候補となる抽出情報」に示すように、4つの回転パターンに対応する最終的な抽出情報を生成する。すなわち、0度回転を想定した第1の抽出情報、90度回転を想定した第2の抽出情報、180度回転を想定した第3の抽出情報、及び270度回転を想定した第4の抽出情報の4つの情報系列を生成する。
このように、本実施形態では、90度単位での4つの回転パターンを想定しているため、複数の抽出情報が生成される。
そこで、本実施形態に係る抽出情報決定部45では、生成された4つの情報系列のうち、最も信頼度が高い情報系列を最終的な抽出情報とする。そのため、本実施形態では、例えば、情報埋め込み部26において、埋め込む部分情報に特定の信号を付加し(部分情報の下位1bitに決められた情報'0'又は'1'を付加)、その部分情報を抽出した際の特定信号の再現率を情報系列毎の信頼度とし、最終的な抽出情報とする。
図13の「候補となる抽出情報」に示す4つの情報系列(第1〜第4の抽出情報)の場合では、第1の抽出情報における特定信号の再現率が(0.287)、第2の抽出情報における特定信号の再現率が(0.211)、第3の抽出情報における特定信号の再現率が(0.252)、第4の抽出情報における特定信号の再現率が(0.672)となっている。
よって、4つの情報系列における特定信号の再現率の大小を比較(0.672>0.287>0.252>0.211)すると、第4の抽出情報における特定信号の再現率が最も高いことから、図13の「最終的な抽出情報の生成」に示すように、最終的な抽出情報を第4の抽出情報に決定する。
このように、本実施形態に係る情報処理装置100は、上記に説明した全体情報構成部44及び抽出情報決定部45により、90単位で回転した情報埋込画像P2から4つの回転パターンを想定した情報を抽出し、抽出した4つの情報系列の信頼度に基づいて最終的な抽出情報を決定することで、情報埋込画像P2が90度単位で回転した場合においても、精度良く埋め込んだ埋込情報Iを抽出することができる。
<90度単位の画像回転に対応した埋め込み情報を抽出する処理手順について>
図13で説明した本実施形態に係る全体情報構成部44及び抽出情報決定部45の具体的な処理手順について説明する。
図14は、本発明の実施形態2に係る90度単位での画像回転に対応して最終的な部分情報を決定するため情報群を構成する処理手順の一例を示すフローチャートである。図14に示す処理手順は、図7に示したS204にあたる。
本実施形態に係る情報処理装置100は、分割された情報埋込画像P2の領域ID(i,j)に位置する分割画像を選択する(S301)。
次に、情報処理装置100は、情報埋め込み機能と同じ、整数a、b、m、及び埋込情報Iの分割数Nそれぞれの値が代入された(式6−1)を用いて、分割画像の領域ID(i,j)を基に、分割画像から抽出された、0度回転を想定した部分情報の情報ID(x)を算出する(S302)。
次に、情報処理装置100は、(式6−2)を用いて、分割画像の領域ID(i,j)を基に、分割画像から抽出された、90度回転を想定した部分情報の情報ID(x)を算出する(S303)。
次に、情報処理装置100は、(式6−3)を用いて、分割画像の領域ID(i,j)を基に、分割画像から抽出された、180度回転を想定した部分情報の情報ID(x)を算出する(S304)。
次に、情報処理装置100は、(式6−4)を用いて、分割画像の領域ID(i,j)を基に、分割画像から抽出された、270度回転を想定した部分情報の情報ID(x)を算出する(S305)。
情報処理装置100は、抽出された情報を情報ID毎に分類し、最終的な部分情報を決定するための候補である情報群を、4つの回転パターン毎に構成する。このとき、情報ID毎に重複した、最終的な部分情報を決定するための候補である情報は、例えばリスト構造などにより記憶部46に記憶される。
情報処理装置100は、情報埋込画像P2を分割して生成された全ての分割画像を選択したか否かを判定する(S306)。
情報処理装置100は、全ての分割画像を選択した場合(S306がYESの場合)、情報埋込画像P2に対して、埋め込まれた部分情報の抽出が終了したとみなし処理を終える。
また、情報処理装置100は、全ての分割画像を選択していない場合(S306がNOの場合)、全ての分割画像を選択するまで、選択していない分割画像に対してS302〜S305の処理を行う。
図15は、本発明の実施形態2に係る90度単位での画像回転に対応して、生成された複数の抽出情報のうち、最終的な抽出情報を決定する処理手順の一例(その1)を示すフローチャートである。図15に示す処理手順は、図7に示したS205にあたる。
本実施形態に係る情報処理装置100は、4つの回転パターン毎に構成された最終的な部分情報を決定するための候補である情報群(情報系列)を選択する(S401)。
次に、情報処理装置100は、選択された情報系列における部分情報の情報ID(x)を選択する(S402)。
次に、情報処理装置100は、選択された情報ID(x)の最終的な部分情報を決定するための候補である複数の情報において、情報の内容毎(例えば、抽出された情報量が1bitの場合、ビット'0'やビット'1'など。)の尤度それぞれを抽出回数分乗算する(S403)。
情報処理装置100は、異なる情報の内容の乗算結果の大小を比較し、乗算結果が大きい方の情報の内容を、最終的な部分情報として決定する(S404)。
情報処理装置100は、情報埋込画像P2に埋め込まれた埋込情報Iの全ての部分情報の情報ID(x)を選択したか否かを判定する(S405)。
情報処理装置100は、全ての部分情報の情報ID(x)を選択していない場合(S405がNOの場合)、全ての部分情報の情報ID(x)を選択するまで、選択していない情報ID(x)の部分情報に対してS403及びS404の処理を行う。
また、情報処理装置100は、全ての部分情報の情報ID(x)を選択した場合(S405がYESの場合)、情報ID毎に最終的な部分情報が決定し、4つの情報系列のうち、1つの抽出情報を生成したとみなし、生成した抽出情報における特定信号の再現率を算出する(S406)。
次に、情報処理装置100は、4つの情報系列全てを選択したか否かを判定する(S407)。
情報処理装置100は、4つの情報系列全てを選択していない場合(S407がNOの場合)、4つの情報系列全てを選択するまで、選択していない情報系列に対してS402〜S406の処理を行う。
また、情報処理装置100は、4つの情報系列全てを選択した場合(S407がYESの場合)、4つの抽出情報における特定信号の再現率を情報系列毎に比較し、その結果、最も再現率が高い抽出情報を最終的な抽出情報とする(S408)。
<90度単位の画像回転に対応した情報埋め込みの主な機能を構成する手段についての変形例>
ここからは、本実施形態に係る情報埋め込み機能の変形例について説明する。
図16は、本発明の実施形態2の変形例に係る部分情報を割り当てた画像が90度単位で回転した状態の一例(その2)を示す図である。
情報埋め込み機能において、本変形例と本実施形態が異なる点は、情報割り当て部25における、90度単位の画像回転に対応するための(式1)の「所定の整数a、b」の決定方法(整数a、bが満たす条件)である。
本変形例に係る情報割り当て部25における「所定の整数a、b」は、以下の条件を満たす整数である。
[条件1] 整数a又はbの少なくとも一方は、分割数Nと「互いに素」である。
[条件2'] 埋込情報Iの分割数Nと所定の整数aの二乗と所定の整数bの二乗との和(a2 + b2)は、「互いに素」である。
情報割り当て部25では、(条件1)及び(条件2')を満たす整数a、b、整数m、及び分割数Nそれぞれの値が代入された(式3)と、分割画像の領域ID(i,j)とを基に、分割画像に割り当てる部分情報の情報ID(x)を算出する。
図16には、分割画像に対して情報割り当て部25による情報割り当て状態の一例が示されている。
例えば、図16では、埋込情報Iの分割数N=13、(条件1)及び(条件2')を満たす整数a=5、b=3、及び任意の整数m=0を基に、(式3)を用いて、画像P1における領域ID(i,j)に位置する分割画像に割り当てる部分情報の情報ID(x)を算出する。
情報割り当て部25は、領域ID(i,j)が関連付けられた分割画像と、情報ID(x)が関連付けられた部分情報とを対応付ける。これにより、分割画像の集合に対する情報割り当てを行う。
また、情報割り当て部25は、図16の情報割り当て状態「回転角度0度」に示すように、上記各条件を満たす(式1)を用いて算出した情報IDの部分情報を、対応する領域IDの分割画像に割り当てることにより、情報埋込画像P2が90度単位で回転した場合、二次元空間座標において、回転前の同じ情報IDの部分情報の配置を同じ配置に、埋込情報Iの全ての部分情報が出現するように、分割画像に部分情報を割り当てることができる。
例えば、「回転角度0度」の例を見ると、領域ID(0,0)、(2,1)、(4,2)、(6,3)、(8,4)に位置する5つの分割画像には、埋込情報Iにおける情報ID(0)の部分情報が割り当てられる。それに対して、「回転角度90度(反時計回り)」の例を見ると、領域ID(0,0)、(2,1)、(4,2)、(6,3)、(8,4)に位置する5つの分割画像に、情報ID(11)、(10)、(9)、(8)、(7)の部分情報が割り当てられている。
これによって、本変形例に係る情報埋め込み機能は、上記に説明した情報割り当て部25により、分割された画像P1における所定の方向に位置する分割画像の集合に対して、埋込情報Iの全ての部分情報を割り当て、さらに、情報埋込画像P2が90度単位で回転した場合においても、回転前の同じ情報IDの部分情報の配置と同じ配置に、埋込情報Iの全ての部分情報が出現するように、分割画像に部分情報を割り当てることでき、埋込情報Iの全ての部分情報を精度良く抽出することができるように、分割画像に部分情報を割り当てることができる。
<90度単位の画像回転に対応した埋め込み情報抽出の主な機能を構成する手段についての変形例>
次に、本実施形態に係る埋め込み情報抽出機能の変形例について説明する。
図17は、本発明の実施形態2の変形例に係る90度単位での画像回転に対応して抽出した部分情報を決定する方法の一例(その2)を示す図である。
埋め込み情報抽出機能において、本変形例と本実施形態が異なる点は、第1〜第4の抽出情報である各情報系列から、最終的な抽出情報を決定する方法である。そのため、本変形例における第1〜第4の抽出情報を生成するまでの処理手順については、本実施形態と同じである。
図17に示した90度単位での回転後の部分情報の配置からも分かるように、90度及び270度回転した情報埋込画像P2において、埋込情報Iにビット'0'又はビット'1'が同じ程度存在する場合、部分情報の割り当て順が異なるものの、回転前の同じ情報IDに関連付けられた部分情報の配置を辿って行くと、埋込情報Iの全ての部分情報が出現する。
そのため、情報ID毎にまとめられた、最終的な部分情報を決定するための情報の信頼度(例えば、ビット又'0'又はビット'1'の尤度など。)が極めて低くなる。その結果、90度及び270度を想定した抽出情報の信頼度、すなわち、第2及び第4の抽出情報の信頼度(各部分情報の尤度の積など。)も低くなる。
本変形例に係る抽出情報決定部45では、上記の点を利用して、図17に示すように、まず、各90度単位の回転を想定した4つの情報系列である第1〜第4の抽出情報のうち、各抽出情報の信頼度(A)を基に、第1及び第3の抽出情報(グループ1)であるか、又は第2及び第4の抽出情報(グループ2)であるかを判断し、2つの抽出情報に絞り込む。つまり、抽出情報決定部45は、第1〜第4の抽出情報の信頼度のうち、グループ1とグループ2の信頼度(A)の大小を比較し、信頼度(A)が大きいグループに絞り込む。
次に、抽出情報決定部45では、本実施形態で説明した、抽出情報の信頼度(B)を特定信号の再現率とし、最も信頼度が高い抽出情報を最終的な抽出情報をする方法を、絞り込んだ2つの抽出情報に対して行い抽出情報を決定する。
図17の「候補となる抽出情報」に示す4つの情報系列(第1〜第4の抽出情報)の場合では、第1及び第3の抽出情報における信頼度(A1,A3)が0.0119、第2及び第4の抽出情報における信頼度(A2,A4)が0.0457となっている。
よって、4つの情報系列における信頼度(A)の大小を比較(0.0119<0.0457)すると、第2及び第4の抽出情報における信頼度(A2,A4)が大きいことから、まず、第2及び第4の抽出情報に絞られる。
次に、第2の抽出情報における特定信号の再現率(B2)が0.432、第4の抽出情報における特定信号の再現率(B4)が0.677となっている。
よって、第2の抽出情報における特定信号の再現率(B2)と第4の抽出情報における特定信号の再現率(B4)の大小を比較(0.432<0.677)すると、第4の抽出情報における特定信号の再現率(B4)が大きいことから、図17の「最終的な抽出情報の生成」に示すように、最終的な抽出情報を第4の抽出情報に決定する。
このように、本変形例に係る情報処理装置100は、上記に説明した抽出情報決定部45により、90単位で回転した情報埋込画像P2から4つの回転パターンを想定した情報を抽出し、抽出した4つの情報系列の信頼度に基づいて最終的な抽出情報を決定することで、情報埋込画像P2が90度単位で回転した場合においても、精度良く埋込情報Iを抽出することができる。
また、本変形例に挙げる方法を行うためには、埋込情報Iにビット'0'又はビット'1'とが均等に出現するように符号化を調整する必要がある。しかし、本変形例では、情報系列の絞り込みに部分情報の配置の特性を利用しているため、90度単位の回転角の判定の他の手法への依存性を低く機能を実現することができる。
<90度単位の画像回転に対応した埋め込み情報を抽出する処理手順についての変形例>
本変形例に係る抽出情報決定部45の具体的な処理手順について説明する。また、本変形例に係る全体情報構成部44の処理手順(図7に示したS204にあたる処理手順)については、図15に示す処理手順と同じであるため説明を省略する。
図18は、本発明の実施形態2の変形例に係る90度単位での画像回転に対応して、生成された複数の抽出情報のうち、最終的な抽出情報を決定する処理手順の一例(その2)を示すフローチャートである。図18に示す処理手順は、図7に示したS205にあたる。
本変形例に係る情報処理装置100は、4つの回転パターン毎に構成された最終的な部分情報を決定するための候補である情報群(情報系列)を選択する(S501)。
次に、情報処理装置100は、選択された情報系列における部分情報の情報ID(x)を選択する(S502)。
次に、情報処理装置100は、選択された情報ID(x)の最終的な部分情報を決定するための候補である複数の情報において、情報の内容毎(例えば、抽出された情報量が1bitの場合、ビット'0'やビット'1'など。)の尤度それぞれを抽出回数分乗算する(S503)。
情報処理装置100は、異なる情報の内容に対応する乗算結果の大小を比較し、乗算結果が大きい方の情報の内容を、最終的な部分情報として決定する(S504)。
情報処理装置100は、情報埋込画像P2に埋め込まれた埋込情報Iの全ての部分情報の情報ID(x)を選択したか否かを判定する(S505)。
情報処理装置100は、全ての部分情報の情報ID(x)を選択していない場合(S805がNOの場合)、全ての部分情報の情報ID(x)を選択するまで、選択していない情報ID(x)の部分情報に対してS503及びS504の処理を行う。
また、情報処理装置100は、全ての部分情報の情報ID(x)を選択した場合(S505がYESの場合)、情報ID毎に最終的な部分情報が決定し、4つの情報系列のうち、1つの抽出情報を生成したとみなし、生成した抽出情報における信頼度(A)を算出する(S506)。ここで算出する信頼度(A)は、例えば、各部分情報におけるビット'0'又はビット'1'の尤度の積などである。
次に、情報処理装置100は、4つの情報系列全てを選択したか否かを判定する(S507)。
情報処理装置100は、4つの情報系列全てを選択していない場合(S507がNOの場合)、4つの情報系列全てを選択するまで、選択していない情報系列に対してS502〜S506の処理を行う。
また、情報処理装置100は、4つの情報系列全てを選択した場合(S507がYESの場合)、4つの抽出情報における信頼度(A)を情報系列毎に比較し、その結果、信頼度が高い2つの抽出情報を選択する(S508)。
次に、情報処理装置100は、選択した2つの抽出情報に対して、各抽出情報における特定信号の再現率(B)を算出する(S509)。
情報処理装置100は、算出した2つの抽出情報における特定信号の再現率を情報系列毎に比較し、その結果、最も再現率が高い抽出情報を最終的な抽出情報とする(S510)。
<まとめ>
以上のように、本発明の第2の実施形態によれば、本実施形態に係る情報処理装置100は、第1の実施形態と同様の効果を奏することができる。
また、本発明の第2の実施形態によれば、本実施形態に係る情報処理装置100は、90単位で回転した情報埋込画像P2から4つの回転パターンを想定した情報を抽出し、抽出した4つの情報系列の信頼度に基づいて最終的な抽出情報を決定することで、情報埋込画像P2が90度単位で回転した場合においても、精度良く埋め込んだ埋込情報Iを抽出することができる。
ところで、上記各実施形態に係る情報埋め込み機能及び埋め込み情報抽出機能は、前述した各処理手順を、情報処理装置100が備える動作環境(プラットフォーム)にあったプログラミング言語でコード化したプログラムを制御部11で実行することで実現することができる。よって、本発明の各実施形態に係る情報埋め込み機能及び埋め込み情報抽出機能を実現するプログラムは、コンピュータが読み取り可能な記録媒体に格納することができる。
各実施形態に基づき本発明の説明を行った情報埋め込み・埋め込み情報抽出機能は、静止画像に限らず、動画や音声、テキストなどのマルチメディアコンテンツに対して適用することができる。
例えば、動画に情報を埋め込む場合には、縦・横・時間の三次元の空間で分割し、三次元の識別子を付す。特定の整数ベクトルθとの内積に整数mを加算し、埋込情報Iの分割数Nで割った剰余番目の部分情報を割り当てる。このとき、埋込情報Iの分割数Nとθの各要素が互いに素であれば、その識別子の座標軸に沿った方向に全ての部分情報が出現する。
また、音声に情報を埋め込む場合には、時間と周波数の二次元空間上で分割し、二次元の識別子を作成し、埋込情報Iを割り当てる方法が考えられる。
また、テキスト文書に情報を埋め込む場合には、章−節−項−文−単語と言ったツリー構造に対して階層数次元の識別子を付し、埋込情報Iを割り当てる方法が考えられる。
動画、音声、テキストなどが混在するマルチメディアコンテンツにおいても、各コンテンツ種の違いを表す識別子を一次元加え、コンテンツ種の違うコンテンツ内でユニークな識別子を構成して、各実施形態に係る情報埋め込み・埋め込み情報抽出機能を適用することができる。
最後に、各実施形態に基づき本発明の説明を行ってきたが、上記各実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。