(57)【要約】【課題】  電子透かし情報のみを用いて画像の回転角を検出する透かし情報検出装置を提供する。【解決手段】  透かし情報検出装置３００は，入力部３１０，記憶部３２０ａ，フィルタ処理部３２０ｂ，信号パターン特定部３２０ｃおよび回転角検出部３２０ｄの機能を有している。記憶部３２０ａは，入力部３１０により入力された画像に埋め込まれた信号パターンの種類を予め記憶し，フィルタ処理部３２０ｂは，複数種類のフィルタを用いて画像をフィルタ処理し，信号パターン特定部３２０ｃは，その結果に基づいて画像に埋め込まれた信号パターンの種類を特定する。回転角検出部３２０ｄは，記憶部３２０ａに記憶されている種類の信号パターンと特定された種類の信号パターンとによりそれぞれ表される角度情報の関係から画像の回転角θを求める。これにより，精度よく画像の回転角を検出することができる。【選択図】    図１
2006253839.tif 000002
【特許請求の範囲】
【請求項１】
所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出装置であって：
前記透かし入り文書画像を入力する入力部と；
前記入力された透かし入り文書画像に埋め込まれている信号パターンの種類を予め記憶する記憶部と；
前記埋め込まれた種類の信号パターンを特定することができるフィルタを含んだ複数種類のフィルタであって，前記埋め込まれた信号パターンの種類より多い数のフィルタを用いて，前記入力された透かし入り文書画像をそれぞれフィルタ処理するフィルタ処理部と；
前記各フィルタ処理の結果に基づいて前記透かし入り文書画像に埋め込まれた信号パターンの種類を特定する信号パターン特定部と；
前記記憶されている種類の信号パターンにより表される角度に関する情報と前記特定された種類の信号パターンにより表される角度に関する情報との関係から前記透かし入り文書画像の回転角を求める回転角検出部と；を備える透かし情報検出装置。
【請求項２】
所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出装置であって：
前記透かし入り文書画像を入力する入力部と；
前記複数種類の信号パターンに対応する複数種類のフィルタを用いて，前記入力された透かし入り文書画像をそれぞれフィルタ処理するフィルタ処理部と；
前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記特殊な系列パターンに対して相関を演算することにより相関値の絶対値を相関絶対値としてそれぞれ求める相関演算処理部と；
前記求められた複数の相関絶対値に基づいて前記透かし入り文書画像の回転角を求める回転角検出部と；を備える透かし情報検出装置。
【請求項３】
前記複数種類の信号パターンは，
前記複数のドットを所定の位置に配列することにより形成されるドットの波の伝播方向とドットの波の波長または周波数のいずれかとによって前記所定の異なる角度をそれぞれ示す請求項１または２のいずれかに記載された透かし情報検出装置。
【請求項４】
前記特殊な系列パターンは，
１次元の特殊な系列を２次元に拡張した符号から構成されている請求項２または３のいずれかに記載された透かし情報検出装置。
【請求項５】
前記１次元の特殊な系列は，１次元のＰＮ符号である請求項４に記載された透かし情報検出装置。
【請求項６】
前記特殊な系列パターンは，
最長符号に基づく符号から構成されている請求項２〜５のいずれか一項に記載された透かし情報検出装置。
【請求項７】
前記特殊な系列パターンは，
この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列パターンを逆順に並べ替えた系列パターンとの相関絶対値よりも大きい請求項２〜６のいずれか一項に記載された透かし情報検出装置。
【請求項８】
前記特殊な系列パターンは，固定長である請求項２〜７のいずれか一項に記載された透かし情報検出装置。
【請求項９】
前記特殊な系列パターンは，
この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列を所定ビット数だけシフトさせた系列パターンとの相関絶対値よりも大きい請求項２〜８のいずれか一項に記載された透かし情報検出装置。
【請求項１０】
前記回転角検出部は，
前記求められた複数の相関絶対値の最大値に基づいて，前記透かし入り画像の回転角を求める請求項２〜９のいずれか一項に記載された透かし情報検出装置。
【請求項１１】
前記入力部は，
前記特殊な系列パターンを複数含んだ透かし入り文書画像を入力し，
前記回転角検出部は，
前記求められた複数の相関絶対値に基づいて，前記入力された透かし入り文書画像に含まれる２以上の特殊な系列パターンの位置を特定し，特定された２以上の特殊な系列パターンの位置関係から前記透かし入り文書画像の回転角を求める請求項２〜１０のいずれか一項に記載された透かし情報検出装置。
【請求項１２】
前記相関演算処理部は，
前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記特殊な系列パターンを正順方向に配列させた系列パターンに対する相関を演算するとともに前記特殊な系列パターンを逆順方向に配列させた系列パターンに対する相関を演算することにより，相関絶対値をそれぞれ求め，
前記回転角検出部は，
前記求められた複数の相関絶対値の大小を比較することにより前記透かし入り文書画像の回転角を求める請求項２〜１１のいずれか一項に記載された透かし情報検出装置。
【請求項１３】
前記相関演算処理部は，
前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記特殊な系列パターンを水平方向に走査することにより前記特殊な系列パターンに対する相関を演算するとともに，前記特殊な系列パターンを垂直方向に走査することにより前記特殊な系列パターンに対する相関を演算することによって，相関絶対値をそれぞれ求め，
前記回転角検出部は，
前記求められた複数の相関絶対値の大小を比較することにより前記透かし入り文書画像の回転方向を求める請求項２〜１１のいずれか一項に記載された透かし情報検出装置。
【請求項１４】
前記相関演算処理部は，
前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記特殊な系列パターンを正順方向に配列させた系列パターンおよび前記特殊な系列パターンを逆順方向に配列させた系列パターンを水平方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算するとともに，前記各系列パターンを垂直方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算することによって，相関絶対値をそれぞれ求め，
前記回転角検出部は，
前記求められた複数の相関絶対値の大小を比較することにより前記透かし入り文書画像の回転方向を求める請求項２〜１１のいずれか一項に記載された透かし情報検出装置。
【請求項１５】
前記特殊な系列パターンは，
擬似乱数生成器により生成された１または２以上の１次元のビットパターンからなる請求項２，３，６，７，８，９，１０，１１，１２，１３または１４のいずれか一項に記載された透かし情報検出装置。
【請求項１６】
前記特殊な系列パターンは，
擬似乱数生成器により生成された１または２以上の１次元のビットパターンを水平方向または垂直方向のいずれかに配列させたビットパターンを組み合わせることにより生成される複数の２次元ビットパターンであって，前記複数の２次元ビットパターンに含まれる任意の第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第２の２次元ビットパターンと，水平方向に配列された１次元ビットパターンおよび垂直方向に配列された１次元ビットパターンの順序が逆転したビットパターンからなる第３の２次元ビットパターンと，垂直方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第４の２次元ビットパターンと，を含み，
前記記憶部は，
前記第１の２次元ビットパターン，前記第２の２次元ビットパターン，前記第３の２次元ビットパターンおよび前記第４の２次元ビットパターンにそれぞれ対応する固有の回転角を各ビットパターンに関連付けて記憶し，
前記相関演算処理部は，
前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記前記第１の２次元ビットパターン，前記第２の２次元ビットパターン，前記第３の２次元ビットパターンおよび前記第４の２次元ビットパターンのそれぞれの系列パターンを水平方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算するとともに，前記各系列パターンを垂直方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算することによって，相関絶対値をそれぞれ求め，
前記回転角検出部は，
前記水平方向の走査により求められた複数の相関絶対値の大小を比較するとともに，前記垂直方向の走査により求められた複数の相関絶対値の大小を比較し，比較した結果によって前記第１の２次元ビットパターン，前記第２の２次元ビットパターン，前記第３の２次元ビットパターンおよび前記第４の２次元ビットパターンのうちから２次元ビットパターンを一つ特定し，特定された２次元ビットパターンに関連付けて前記記憶部に記憶されている固有の回転角から前記透かし入り文書画像の回転方向を求める請求項２〜１１のいずれか一項に記載された透かし情報検出装置。
【請求項１７】
前記相関演算処理部は，
前記特殊な系列パターンを正順方向に配列させた系列パターンおよび前記特殊な系列パターンを逆順方向に配列させた系列パターンを前記透かし入り文書画像の水平方向または垂直方向のいずれか一方に走査することにより前記特殊な系列パターンに対する相関をそれぞれ演算することにより，正順方向の相関絶対値および逆順方向の相関絶対値をそれぞれ求め，求められた正順方向の相関絶対値および逆順方向の相関絶対値を比較することにより大きい方の相関絶対値を１次元相関絶対値とし，前記１次相関絶対値を演算するために用いられた系列パターンを前記透かし入り文書画像の水平方向または垂直方向のいずれか他方に走査することにより前記系列パターンに対する相関を演算することによって相関絶対値を求め，求められた相関絶対値と前記１次元相関絶対値とから２次元相関絶対値を算出し，
前記回転角検出部は，
前記２次元相関絶対値と前記１次元相関絶対値の平均値との大小を比較することにより前記透かし入り文書画像の回転方向を求める請求項２〜１１のいずれか一項に記載された透かし情報検出装置。
【請求項１８】
前記信号パターン特定部は，
前記フィルタ処理の結果出力された各フィルタ出力値に基づいて前記透かし入り文書画像に埋め込まれた信号パターンの種類を特定する請求項１に記載された透かし情報検出装置。
【請求項１９】
前記複数種類のフィルタは，
前記透かし入り文書画像の回転角がそれぞれ異なる固有値となるときに，フィルタ出力値が最大となるフィルタである請求項１〜１８のいずれか一項に記載された透かし情報検出装置。
【請求項２０】
前記複数種類のフィルタは，ガボールフィルタである請求項１〜１９のいずれか一項に記載された透かし情報検出装置。
【請求項２１】
前記相関演算処理部は，
前記フィルタ処理の結果出力された各フィルタ出力値に対応して変動する重みにより前記特殊な系列パターンに対する相関の演算に重み付けを行う請求項２〜２０のいずれか一項に記載された透かし情報検出装置。
【請求項２２】
前記相関演算処理部は，
前記重み付けの代わりに前記フィルタ処理の結果に基づき定められる固定値を用いて前記特殊な系列パターンに対する相関を演算する請求項２〜２０のいずれか一項に記載された透かし情報検出装置。
【請求項２３】
請求項１〜２２のいずれか一項に記載された透かし情報検出装置であって，さらに，
前記回転角検出部により検出された透かし入り画像の回転角に応じた重みにより前記フィルタ処理の結果出力された複数のフィルタ出力値に重み付けを行うことにより複数のフィルタ出力値を合成する合成部を備えた透かし情報検出装置。
【請求項２４】
前記合成部は，
前記フィルタ処理に用いた複数種類のフィルタのうち，少なくともいずれかのフィルタに対するフィルタ出力値を新たに生成する請求項２３に記載された透かし情報検出装置。
【請求項２５】
前記合成部は，
前記フィルタ処理に用いた複数種類のフィルタのうち，前記複数種類の信号パターンの少なくともいずれかに応じたフィルタによるフィルタ出力値を新たに生成する請求項２３または２４のいずれかに記載された透かし情報検出装置。
【請求項２６】
前記合成部は，
透かし入り文書画像が回転されていない場合に前記複数種類の信号パターンに応じたフィルタによるフィルタ処理の結果出力されるフィルタ出力値にほぼ等しいフィルタ出力値をそれぞれ生成する請求項２３〜２５のいずれか一項に記載された透かし情報検出装置。
【請求項２７】
前記合成部は，
前記複数のフィルタ出力値のうち，前記入力された透かし入り文書画像の任意の範囲に位置する複数点のフィルタ出力値を合成することにより，前記任意の範囲内に位置する一点のフィルタ出力値を生成する請求項２３〜２６のいずれか一項に記載された透かし情報検出装置。
【請求項２８】
画像に埋め込まれた透かし情報を透かし情報検出装置に検出させるために文書画像に透かし画像を埋め込む透かし情報埋め込み装置であって：
文書画像を作成する文書画像作成部と；
所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを生成する系列パターン生成部と；
前記生成された特殊な系列パターンを用いて前記透かし情報検出装置に入力された透かし入り文書画像の回転角を前記透かし情報検出装置に検出させるために，前記生成された特殊な系列パターンを含んだ透かし画像を作成する透かし画像作成部と；
前記作成された文書画像と前記作成された透かし画像とを重ね合わせて透かし入り文書画像を生成する透かし入り文書画像合成部と；を備える透かし情報埋め込み装置。
【請求項２９】
前記特殊な系列パターンは，固定長である請求項２８に記載された透かし情報埋め込み装置。
【請求項３０】
前記特殊な系列パターンは，
この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列パターンを所定ビット数だけシフトさせた系列パターンとの相関絶対値よりも大きい請求項２８または２９のいずれかに記載された透かし情報埋め込み装置。
【請求項３１】
前記特殊な系列パターンは，
この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列パターンを逆順に並べ替えた系列パターンとの相関を示す相関絶対値よりも大きい請求項２８〜３０のいずれか一項に記載された透かし情報埋め込み装置。
【請求項３２】
前記特殊な系列パターンは，
１次元の特殊な系列を２次元に拡張した符号から構成されている請求項２８〜３１のいずれか一項に記載された透かし情報埋め込み装置。
【請求項３３】
請求項２８〜３２のいずれか一項に記載された透かし情報埋め込み装置であって，さらに，
前記作成された透かし入り文書画像を印刷する出力部を備える透かし情報埋め込み装置。
【請求項３４】
所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出方法であって：
前記透かし入り文書画像を入力し，
前記入力した透かし入り文書画像に埋め込まれている信号パターンの種類を予め記憶部に記憶し，
前記埋め込まれた種類の信号パターンを特定することができるフィルタを含んだ複数種類のフィルタであって，前記埋め込まれた信号パターンの種類より多い数のフィルタを用いて，前記入力された透かし入り文書画像をそれぞれフィルタ処理し，
前記各フィルタ処理の結果に基づいて前記透かし入り文書画像に埋め込まれた信号パターンの種類を特定し，
前記記憶部に記憶されている種類の信号パターンにより表される角度に関する情報と前記特定された種類の信号パターンにより表される角度に関する情報との関係から前記透かし入り文書画像の回転角を求める透かし情報検出方法。
【請求項３５】
所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出方法であって：
前記透かし入り文書画像を入力し，
前記複数種類の信号パターンに対応する複数種類のフィルタを用いて，前記入力された透かし入り文書画像をそれぞれフィルタ処理し，
前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記特殊な系列パターンに対して相関を演算することにより相関値の絶対値を相関絶対値としてそれぞれ求め，
前記求められた複数の相関絶対値に基づいて前記透かし入り文書画像の回転角を求める透かし情報検出方法。
【請求項３６】
前記透かし情報検出方法であって，
前記相関を演算するとき，前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記特殊な系列パターンを正順方向に配列させた系列パターンおよび前記特殊な系列パターンを逆順方向に配列させた系列パターンを水平方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算するとともに，前記各系列パターンを垂直方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算することによって，相関絶対値をそれぞれ求め，
前記求められた複数の相関絶対値の大小を比較することにより前記透かし入り文書画像の回転方向を求める請求項３５に記載された透かし情報検出方法。
【請求項３７】
前記透かし情報検出方法であって，
前記特殊な系列パターンは，
擬似乱数生成器により生成された１または２以上の１次元のビットパターンを水平方向または垂直方向のいずれかに配列させることにより生成される複数の２次元ビットパターンであって，前記複数の２次元ビットパターンに含まれる任意の第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第２の２次元ビットパターンと，水平方向に配列された１次元ビットパターンおよび垂直方向に配列された１次元ビットパターンの順序が逆転したビットパターンからなる第３の２次元ビットパターンと，垂直方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第４の２次元ビットパターンと，を含み，
前記第１の２次元ビットパターン，前記第２の２次元ビットパターン，前記第３の２次元ビットパターンおよび前記第４の２次元ビットパターンにそれぞれ対応する固有の回転角を各ビットパターンに関連付けて前記記憶部に記憶し，
前記相関を演算するとき，前記入力された透かし入り文書画像の所定の範囲に対する前記各フィルタ処理の結果に基づいて，前記前記第１の２次元ビットパターン，前記第２の２次元ビットパターン，前記第３の２次元ビットパターンおよび前記第４の２次元ビットパターンのそれぞれの系列パターンを水平方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算するとともに，前記各系列パターンを垂直方向にそれぞれ走査することにより前記各系列パターンに対する相関をそれぞれ演算することによって，相関絶対値をそれぞれ求め，
前記水平方向の走査により求められた複数の相関絶対値の大小を比較するとともに，前記垂直方向の走査により求められた複数の相関絶対値の大小を比較し，比較した結果によって前記第１の２次元ビットパターン，前記第２の２次元ビットパターン，前記第３の２次元ビットパターンおよび前記第４の２次元ビットパターンのうちから２次元ビットパターンを一つ特定し，特定された２次元ビットパターンに関連付けて前記記憶部に記憶されている固有の回転角から前記透かし入り文書画像の回転方向を求める請求項３５または３６のいずれかに記載された透かし情報検出方法。
【請求項３８】
前記透かし情報検出方法であって，
前記相関を演算するとき，前記特殊な系列パターンを正順方向に配列させた系列パターンおよび前記特殊な系列パターンを逆順方向に配列させた系列パターンを前記透かし入り文書画像の水平方向または垂直方向のいずれか一方に走査することにより前記特殊な系列パターンに対する相関をそれぞれ演算することにより，正順方向の相関絶対値および逆順方向の相関絶対値をそれぞれ求め，求められた正順方向の相関絶対値および逆順方向の相関絶対値を比較することにより大きい方の相関絶対値を１次元相関絶対値とし，前記１次相関絶対値を演算するために用いられた系列パターンを前記透かし入り文書画像の水平方向または垂直方向のいずれか他方に走査することにより前記系列パターンに対する相関を演算することによって相関絶対値を求め，求められた相関絶対値と前記１次元相関絶対値とから２次元相関絶対値を算出し，
前記２次元相関絶対値と前記１次元相関絶対値の平均値との大小を比較することにより前記透かし入り文書画像の回転方向を求める請求項３５または３６のいずれかに記載された透かし情報検出方法。
【請求項３９】
前記透かし情報検出方法は，さらに，
前記回転角検出部により検出された透かし入り画像の回転角に対応する重みによって前記フィルタ処理の結果出力された複数のフィルタ出力値に重み付けを行うことにより複数のフィルタ出力値を合成する請求項３５〜３８のいずれか一項に記載された透かし情報検出方法。
【請求項４０】
画像に埋め込まれた透かし情報を検出させるために文書画像に透かし画像を埋め込む透かし情報埋め込み方法であって：
文書画像を作成し，
所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを生成し，
前記生成された特殊な系列パターンを用いて透かし情報検出装置に入力された透かし入り文書画像の回転角を前記透かし情報検出装置に検出させるために，前記生成された特殊な系列パターンを含んだ透かし画像を作成し，
前記作成された文書画像と前記作成された透かし画像とを重ね合わせて透かし入り文書画像を生成する透かし情報埋め込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，電子透かし情報を埋め込んだ画像を入力する際に生じる画像の回転方向のズレ（回転角）を検出する透かし情報検出装置およびこの透かし情報検出装置に画像の回転角を検出させることができる電子透かし情報を画像に埋め込む透かし情報埋め込み装置に関する。
【背景技術】
【０００２】
カメラやスキャナを用いて電子透かし情報を埋め込んだ画像を取り込む場合，画像が意図しない方向に回転して取り込まれていることが多い。このため，電子透かしを埋め込んだ画像を読み取る際に，撮影した印刷物上の文字や罫線等の傾きを検出することにより，この意図しない画像の回転を補正する電子透かし検出装置が従来から提案されている（たとえば，特許文献１を参照。）。
【０００３】
【特許文献１】特開２００４−１５３９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで，従来の透かし情報検出装置では，論理的には０度から１８０度までの回転角を検出することができる。しかし，回転角を検出する際，その処理負荷は非常に大きい。これを考慮して，従来の透かし情報検出装置では，実用上，±３度程度までの範囲を対象としてその範囲の回転角のみを検出していた。このため，この範囲よりも大きく傾いた画像を検出することができなかった。この結果，ユーザは，画像が傾いてスキャンされないように用紙を所定の位置に注意深く置く必要があった。
【０００５】
また，従来の透かし情報検出装置では，前述したように，撮影した印刷物上の文字や罫線等の傾きを検出することにより，意図しない画像の回転を補正していた。このため，たとえば，ＣＡＤ画像のように，水平方向および垂直方向以外の傾きをもった罫線が多い画像や，文字や罫線が極端に少ない画像などの場合，画像の傾きを精度よく検出することができなかった。この結果，検出された回転角に大きな誤差が発生する場合があった。
【０００６】
そこで，本発明は，このような問題に鑑みてなされたもので，その目的とするところは，電子透かしの地紋にある情報のみを用いて画像の回転角を検出する透かし情報検出装置および透かし情報検出装置に画像の回転角を検出させることができる電子透かし情報を画像に埋め込む透かし情報埋め込み装置およびこれらの方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために，本発明のある観点によれば，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出装置であって，上記透かし入り文書画像を入力する入力部と，上記透かし入り文書画像に埋め込まれている信号パターンの種類を予め記憶する記憶部と，上記埋め込まれた種類の信号パターンを特定することができるフィルタを含んだ複数種類のフィルタであって，上記埋め込まれた信号パターンの種類より多い数のフィルタを用いて，上記入力された透かし入り文書画像をそれぞれフィルタ処理するフィルタ処理部と，上記各フィルタ処理の結果に基づいて上記透かし入り文書画像に埋め込まれた信号パターンの種類を特定する信号パターン特定部と，上記記憶されている種類の信号パターンにより表される角度に関する情報と上記特定された種類の信号パターンにより表される角度に関する情報との関係から上記透かし入り文書画像の回転角を求める回転角検出部と，を備える透かし情報検出装置が提供される。
【０００８】
これによれば，フィルタ処理に使用されるフィルタの数により特定される，ある一定の角度単位毎に，ある所定範囲の画像の回転角（すなわち，数度以上９０度以下の入力画像の回転角）を全方向（３６０度）に渡って検出することができる。また，画像上の文字や罫線を用いることなく，地紋の信号パターンのみを用いて画像の数度〜数十度程度の回転角を検出することができる。なお，フィルタ処理に使用されるフィルタの数により特定される，ある一定の角度単位とは，たとえば，フィルタの数が１０であれば，１８度（＝１８０度／１０）となる。
【０００９】
上記課題を解決するために，本発明の他の観点によれば，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出装置であって，上記透かし入り文書画像を入力する入力部と，上記複数種類の信号パターンに対応する複数種類のフィルタを用いて，上記入力された透かし入り文書画像をそれぞれフィルタ処理するフィルタ処理部と，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンに対して相関を演算することにより相関値の絶対値を相関絶対値としてそれぞれ求める相関演算処理部と，上記求められた複数の相関絶対値に基づいて上記透かし入り文書画像の回転角を求める回転角検出部と，を備える透かし情報検出装置が提供される。
【００１０】
これによれば，フィルタ出力値に基づいて同期コードに対する相関値の絶対値を使用して回転角が検出される。このため，フィルタ出力値をそのまま使用して回転角を検出する場合に比べノイズ（入力画像上のよごれやしわなど）に強い。この結果，より精度よく入力画像の回転角を検出することができる。また，画像上の文字や罫線を用いることなく，同期コードのみを利用することにより，画像の数度〜数十度程度の回転を補正することができる。
【００１１】
上記複数種類の信号パターンは，上記複数のドットを所定の位置に配列することにより形成されるドットの波の伝播方向とドットの波の波長または周波数のいずれかとによって上記所定の異なる角度をそれぞれ示すようにしてもよい。
【００１２】
また，上記特殊な系列パターンは，１次元の特殊な系列を２次元に拡張した符号から構成されていてもよい。
【００１３】
また，上記１次元の特殊な系列は，１次元のＰＮ符号であってもよい。
【００１４】
また，上記特殊な系列パターンは，最長符号に基づく符号から構成されていてもよい。
【００１５】
上記特殊な系列パターンは，この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列パターンを逆順に並べ替えた系列パターンとの相関絶対値よりも大きいパターンを用いることができる。
【００１６】
また，上記特殊な系列パターンは，固定長であってもよい。
【００１７】
また，上記特殊な系列パターンは，この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列を所定ビット数だけシフトさせた系列パターンとの相関絶対値よりも大きいパターンから構成されていてもよい。
【００１８】
また，上記回転角検出部は，上記求められた複数の相関絶対値の最大値に基づいて，上記透かし入り画像の回転角を求めることができる。
【００１９】
また，上記入力部は，上記特殊な系列パターンを複数含んだ透かし入り文書画像を入力し，上記回転角検出部は，上記求められた複数の相関絶対値に基づいて，上記入力された透かし入り文書画像に含まれる２以上の特殊な系列パターンの位置を特定してもよい。これにより，特定された２以上の特殊な系列パターンの位置関係から，上記透かし入り文書の数度〜数十度程度の画像のずれ（回転角）を求めることができる。
【００２０】
また，上記相関演算処理部は，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンを正順方向に配列させた系列パターンに対する相関を演算するとともに上記特殊な系列パターンを逆順方向に配列させた系列パターンに対する相関を演算してもよい。
【００２１】
これにより，上記特殊な系列パターンを正順方向および逆順方向に配列させた系列パターンに対する相関絶対値がそれぞれ求められる。このようにして求められた複数の相関絶対値の大小を比較することにより，上記透かし入り文書画像の回転方向を求めることができる。
【００２２】
また，上記相関演算処理部は，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンを水平方向に走査することにより上記特殊な系列パターンに対する相関を演算してもよい。また，上記相関演算処理部は，上記特殊な系列パターンを垂直方向に走査することにより上記特殊な系列パターンに対する相関を演算してもよい。
【００２３】
これにより，上記特殊な系列パターンを水平方向および垂直方向に走査することにより，上記特殊な系列パターン相関絶対値がそれぞれ求められる。このようにして求められた複数の相関絶対値の大小を比較することにより，上記透かし入り文書画像の回転方向を求めることができる。
【００２４】
また，上記相関演算処理部は，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンを正順方向に配列させた系列パターンおよび上記特殊な系列パターンを逆順方向に配列させた系列パターンを水平方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算してもよい。また，上記相関演算処理部は，上記各系列パターンを垂直方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算してもよい。
【００２５】
これにより，正順方向および逆順方向の特殊な系列パターンに対して水平方向および垂直方向にそれぞれ走査をすることによって，上記各系列パターンに対する相関絶対値がそれぞれ求められる。このようにして求められた複数の相関絶対値の大小を比較することにより，上記透かし入り文書画像の回転方向（透かし入り文書画像の９０度単位の回転角）をより精度良く求めることができる。
【００２６】
また，上記特殊な系列パターンは，擬似乱数生成器により生成された１または２以上の１次元のビットパターンからなるパターンであってもよい。このとき，相関演算処理部は，擬似乱数生成器により生成された単数または複数の1次元のビットパターンに対して，水平方向，垂直方向それぞれの方向に相関演算し，１次元のビットパターンを逆方向に反転させたパターンに対して，水平方向，垂直方向それぞれについて相関演算し，その結果得られた相関値の絶対値の大小関係から画像の回転角を検出するようにしてもよい。
【００２７】
また，上記特殊な系列パターンは，擬似乱数生成器により生成された単数または複数の1次元のビットパターンを，水平・垂直方向に組み合わせた複数の2次元パターンであってもよい。このとき，複数の2次元パターンは，水平方向・垂直方向の両方もしくは一方の1次元ビットパターンの順序が逆転した関係にある2次元パターンを含み，相関演算処理部は，複数の２次元パターンはそれぞれ水平方向・垂直方向の順序によって対応する回転角度を持ち，それら複数の２次元パターンのうち前記パターン(紙面から読み取ったパターンのこと)と最も相関値の絶対値が大きい2次元パターンを決定することにより，回転角度を検出するようにしてもよい。
【００２８】
すなわち，上記特殊な系列パターンは，擬似乱数生成器により生成された１または２以上の１次元のビットパターンを水平方向または垂直方向のいずれかに配列させたビットパターンを組み合わせることにより生成される複数の２次元ビットパターンであって，上記複数の２次元ビットパターンに含まれる任意の第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第２の２次元ビットパターンと，水平方向に配列された１次元ビットパターンおよび垂直方向に配列された１次元ビットパターンの順序が逆転したビットパターンからなる第３の２次元ビットパターンと，垂直方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第４の２次元ビットパターンと，を含んでいてもよい。
【００２９】
このとき，上記記憶部は，上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンにそれぞれ対応する固有の回転角を各ビットパターンに関連付けて記憶し，上記相関演算処理部は，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンのそれぞれの系列パターンを水平方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算するとともに，上記各系列パターンを垂直方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算してもよい。
【００３０】
これにより，４つの各パターンに対して水平方向および垂直方向にそれぞれ走査をすることによって，上記各系列パターンに対する相関絶対値がそれぞれ求められる。このようにして，水平方向の走査により求められた複数の相関絶対値の大小が比較される。また，上記垂直方向の走査により求められた複数の相関絶対値の大小が比較される。
【００３１】
そして，これらの比較結果によって上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンのうちから２次元ビットパターンが一つ特定される。この結果，特定された２次元ビットパターンに関連付けて上記記憶部に記憶されている固有の回転角を上記透かし入り文書画像の回転方向として求めることができる。
【００３２】
また，上記相関演算処理部は，上記特殊な系列パターンを正順方向に配列させた系列パターンおよび上記特殊な系列パターンを逆順方向に配列させた系列パターンを上記透かし入り文書画像の水平方向または垂直方向のいずれか一方に走査することにより上記特殊な系列パターンに対する相関をそれぞれ演算することにより，正順方向の相関絶対値および逆順方向の相関絶対値をそれぞれ求めてもよい。
【００３３】
上記相関演算処理部は，このようにして求められた正順方向の相関絶対値の平均値および逆順方向の相関絶対値の平均値を比較し，比較の結果，大きい方の相関絶対値を１次元相関絶対値とする。さらに，上記相関演算処理部は，上記１次相関絶対値を演算するために用いられた系列パターンを上記透かし入り文書画像の水平方向または垂直方向のいずれか他方に走査することにより上記系列パターンに対する相関を演算することによって相関絶対値を求め，求められた相関絶対値と上記１次元相関絶対値とから２次元相関絶対値を算出するようにしてもよい。
【００３４】
このようにして算出された上記２次元相関絶対値と上記１次元相関絶対値の平均値との大小を比較することにより，処理の負荷を軽減しながら，上記透かし入り文書画像の回転方向（９０度単位の回転角）を求めることができる。
【００３５】
また，上記信号パターン特定部は，上記フィルタ処理の結果出力された各フィルタ出力値に基づいて上記透かし入り文書画像に埋め込まれた信号パターンの種類を特定するようにしてもよい。すなわち，各フィルタ出力値が高い値をとるとき，上記透かし入り文書画像に埋め込まれたいずれかの種類の信号パターンに強く反応していると判断することができる。このように判断された信号パターンに含まれる角度に関する情報から上記透かし入り文書画像の回転角を求めることができる。
【００３６】
上記複数種類のフィルタは，上記透かし入り文書画像の回転角がそれぞれ異なる固有値となるときに，フィルタ出力値が最大となるフィルタを用いてもよい。これにより，最大のフィルタ出力値を出力したフィルタから透かし入り文書画像の回転角を特定することができる。
【００３７】
なお，上記複数種類のフィルタは，ガボールフィルタであってもよい。
【００３８】
また，上記相関演算処理部は，上記フィルタ処理の結果出力された各フィルタ出力値に対応して変動する重みにより上記特殊な系列パターンに対する相関の演算に重み付けを行いながら，上記特殊な系列パターンに対する相関絶対値を求めてもよい。これによれば，各フィルタ出力値に対応して相関演算に重み付けを行うことにより，相関絶対値をより正確に演算することができる。この結果，求められた相関絶対値に基づいて上記透かし入り文書画像の回転角を精度よく求めることができる。
【００３９】
また，上記相関演算処理部は，上記重み付けの代わりに上記フィルタ処理の結果に基づき定められる固定値を用いて上記特殊な系列パターンに対する相関を演算してもよい。これによれば，相関演算処理の負荷が軽減される。この結果，処理全体の高速化を図ることができるため，より高速に上記透かし入り文書画像の回転角を求めることができる。
【００４０】
上記透かし情報検出装置は，さらに，上記回転角検出部により検出された透かし入り画像の回転角に対応する重みにより上記フィルタ処理の結果出力された複数のフィルタ出力値に重み付けを行うことにより複数のフィルタ出力値を合成する合成部を備えていてもよい。
【００４１】
この場合，上記合成部は，上記フィルタ処理に用いた複数種類のフィルタのうち，少なくともいずれかのフィルタに対するフィルタ出力値を新たに生成するようにしてもよい。
【００４２】
また，上記合成部は，上記フィルタ処理に用いた複数種類のフィルタのうち，上記複数種類の信号パターンの少なくともいずれかに応じたフィルタによるフィルタ出力値を新たに生成するようにしてもよい。
【００４３】
また，上記合成部は，透かし入り文書画像が回転されていない場合に上記複数種類の信号パターンに応じたフィルタによるフィルタ処理の結果出力されるフィルタ出力値にほぼ等しいフィルタ出力値をそれぞれ生成するようにしてもよい。
【００４４】
また，上記合成部は，上記複数のフィルタ出力値のうち，上記入力された透かし入り文書画像の任意の範囲に位置する複数点のフィルタ出力値を合成することにより，上記任意の範囲内に位置する一点のフィルタ出力値を生成するようにしてもよい。
【００４５】
これによれば，フィルタ出力を合成する過程で，注目する位置の近傍のフィルタ出力を用いて，最終的なフィルタ出力が推定される。これにより，スキャン画像の汚れ（画像自体の劣化）や文字などの画素に対して読みとれなかった部分のフィルタ出力値を補償することができる。これにより，透かし入り文書画像自体の劣化や文字などの画素による劣化に基づいて生じるフィルタ出力値に含まれる誤差を少なくすることができる。この結果，透かし情報を精度よく抽出することができる。
【００４６】
また，これによれば，画像を回転補正する必要がないので，回転補正のための回転検出時のフィルタ処理量を低減することができる。これにより，処理全体の高速化を図ることができる。
【００４７】
上記課題を解決するために，本発明の他の観点によれば，画像に埋め込まれた透かし情報を透かし情報検出装置に検出させるために文書画像に透かし画像を埋め込む透かし情報埋め込み装置であって，文書画像を作成する文書画像作成部と，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを生成する系列パターン生成部と，上記生成された特殊な系列パターンを用いて上記透かし情報検出装置に入力された透かし入り文書画像の回転角を上記透かし情報検出装置に検出させるために，上記生成された特殊な系列パターンを含んだ透かし画像を作成する透かし画像作成部と，上記作成された文書画像と上記作成された透かし画像とを重ね合わせて透かし入り文書画像を生成する透かし入り文書画像合成部と，を備える透かし情報埋め込み装置が提供される。
【００４８】
これによれば，透かし情報検出装置に，画像上の文字や罫線を用いることなく，精度よく入力画像の回転角を検出させるための透かし入り文書画像を生成することができる。
【００４９】
このとき，上記特殊な系列パターンは，固定長であってもよい。
【００５０】
また，上記特殊な系列パターンは，この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列パターンを所定ビット数だけシフトさせた系列パターンとの相関絶対値よりも大きいパターンを用いることができる。
【００５１】
また，上記特殊な系列パターンは，この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列パターンを逆順に並べ替えた系列パターンとの相関を示す相関絶対値よりも大きいパターンを用いることができる。
【００５２】
また，上記特殊な系列パターンは，１次元の特殊な系列を２次元に拡張した符号から構成されていてもよい。
【００５３】
また，上記透かし情報埋め込み装置は，さらに，上記作成された透かし入り文書画像を印刷する出力部を備えていてもよい。これによれば，透かし入り文書画像を紙などに印刷して出力することができる。
【００５４】
上記課題を解決するために，本発明の他の観点によれば，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出方法であって，上記透かし入り文書画像を入力し，上記入力した透かし入り文書画像に埋め込まれている信号パターンの種類を予め記憶部に記憶し，上記埋め込まれた種類の信号パターンを特定することができるフィルタを含んだ複数種類のフィルタであって，上記埋め込まれた信号パターンの種類より多い数のフィルタを用いて，上記入力された透かし入り文書画像をそれぞれフィルタ処理し，上記各フィルタ処理の結果に基づいて上記透かし入り文書画像に埋め込まれた信号パターンの種類を特定し，上記記憶部に記憶されている種類の信号パターンにより表される角度に関する情報と上記特定された種類の信号パターンにより表される角度に関する情報との関係から上記透かし入り文書画像の回転角を求める透かし情報検出方法が提供される。
【００５５】
これによれば，フィルタ処理に使用されるフィルタの数により特定される，ある一定の角度単位毎に，数度以上９０度以下の入力画像の回転角を全方向に渡って検出することができる。また，画像上の文字や罫線を用いることなく，地紋の信号パターンのみを用いて回転角を検出することができる。
【００５６】
また，上記課題を解決するために，本発明の他の観点によれば，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出方法であって，上記透かし入り文書画像を入力し，上記複数種類の信号パターンに対応する複数種類のフィルタを用いて，上記入力された透かし入り文書画像をそれぞれフィルタ処理し，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンに対して相関を演算することにより相関値の絶対値を相関絶対値としてそれぞれ求め，上記求められた複数の相関絶対値に基づいて上記透かし入り文書画像の回転角を求める透かし情報検出方法が提供される。
【００５７】
これによれば，同期コードとの相関値を使用して回転角が検出される。これにより，フィルタ出力値を使用して回転角を検出する場合に比べノイズに強いため，より精度よく入力画像の回転角を検出することができる。
【００５８】
また，上記透かし情報検出方法では，上記相関を演算するとき，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンを正順方向に配列させた系列パターンおよび上記特殊な系列パターンを逆順方向に配列させた系列パターンを水平方向にそれぞれ走査することにより上記各系列パターンに対する相関がそれぞれ演算されるとともに，上記各系列パターンを垂直方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算されてもよい。
【００５９】
これにより，求められた複数の相関絶対値の大小を比較することにより上記透かし入り文書画像の回転方向を求めることができる。
【００６０】
また，上記透かし情報検出方法に用いる上記特殊な系列パターンは，擬似乱数生成器により生成された１または２以上の１次元のビットパターンを水平方向または垂直方向のいずれかに配列させることにより生成される複数の２次元ビットパターンであって，上記複数の２次元ビットパターンに含まれる任意の第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第２の２次元ビットパターンと，水平方向に配列された１次元ビットパターンおよび垂直方向に配列された１次元ビットパターンの順序が逆転したビットパターンからなる第３の２次元ビットパターンと，垂直方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第４の２次元ビットパターンと，を含んでいてもよい。
【００６１】
これらの上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンにそれぞれ対応する固有の回転角は各ビットパターンに関連付けて上記記憶部に記憶されていてもよい。
【００６２】
この４つの２次元ビットパターンを用いて上記相関を演算するとき，上記透かし情報検出方法では，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンのそれぞれの系列パターンを水平方向にそれぞれ走査することにより上記各系列パターンに対する相関がそれぞれ演算されるとともに，上記各系列パターンを垂直方向にそれぞれ走査することにより上記各系列パターンに対する相関がそれぞれ演算されることによって，相関絶対値がそれぞれ求められてもよい。
【００６３】
上記透かし情報検出方法では，このようにして，上記水平方向の走査により求められた複数の相関絶対値の大小が比較されるとともに，上記垂直方向の走査により求められた複数の相関絶対値の大小が比較され，比較された結果によって上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンのうちから２次元ビットパターンが一つ特定される。このようにして特定された２次元ビットパターンに関連付けて上記記憶部に記憶されている固有の回転角から上記透かし入り文書画像の回転方向を求めることができる。
【００６４】
上記透かし情報検出方法では，上記相関を演算するとき，上記特殊な系列パターンを正順方向に配列させた系列パターンおよび上記特殊な系列パターンを逆順方向に配列させた系列パターンを上記透かし入り文書画像の水平方向または垂直方向のいずれか一方に走査することにより上記特殊な系列パターンに対する相関をそれぞれ演算することにより，正順方向の相関絶対値および逆順方向の相関絶対値をそれぞれ求め，求められた正順方向の相関絶対値の平均値および逆順方向の相関絶対値の平均値を比較することにより大きい方の相関絶対値を１次元相関絶対値とし，上記１次相関絶対値を演算するために用いられた系列パターンを上記透かし入り文書画像の水平方向または垂直方向のいずれか他方に走査することにより上記系列パターンに対する相関を演算することによって相関絶対値を求め，求められた相関絶対値と上記１次元相関絶対値とから２次元相関絶対値を算出してもよい。
【００６５】
このようにして算出された上記２次元相関絶対値と上記１次元相関絶対値の平均値との大小を比較することにより上記透かし入り文書画像の回転方向を求めることができる。
【００６６】
上記透かし情報検出方法では，さらに，上記回転角検出部により検出された透かし入り画像の回転角に対応する重みによって上記フィルタ処理の結果出力された複数のフィルタ出力値に重み付けを行うことにより複数のフィルタ出力値を合成するようにしてもよい。
【００６７】
これによれば，フィルタ出力を合成する過程で，スキャン画像の汚れや文字などの画素に対して読みとれなかった部分のフィルタ出力値を補償することができる。これにより，透かし入り文書画像自体の劣化や文字などの画素による劣化に基づいて生じるフィルタ出力値に含まれる誤差を少なくすることができる。この結果，透かし情報を精度よく抽出することができる。
【００６８】
また，上記課題を解決するために，本発明の他の観点によれば，画像に埋め込まれた透かし情報を検出させるために文書画像に透かし画像を埋め込む透かし情報埋め込み方法であって，文書画像を作成し，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを生成し，上記生成された特殊な系列パターンを用いて透かし情報検出装置に入力された透かし入り文書画像の回転角を上記透かし情報検出装置に検出させるために，上記生成された特殊な系列パターンを含んだ透かし画像を作成し，上記作成された文書画像と上記作成された透かし画像とを重ね合わせて透かし入り文書画像を生成する透かし情報埋め込み方法が提供される。
【００６９】
これによれば，透かし情報検出装置が，画像上の文字や罫線を用いることなく電子透かしの地紋にある情報のみを用いて入力画像の回転角を検出することができるような透かし入り文書画像を生成することができる。
【発明の効果】
【００７０】
以上説明したように，本発明によれば，電子透かしの地紋にある情報のみを用いて画像の回転角を検出する透かし情報検出装置および透かし情報検出装置に画像の回転角を検出させることができる電子透かし情報を画像に埋め込む透かし情報埋め込み装置およびこれらの方法を提供することができる。
【発明を実施するための最良の形態】
【００７１】
以下に，本発明の透かし情報処理装置にかかる好適な実施の形態について，（Ａ）数度以上９０度以下の入力画像（透かし入り文書画像）の回転角を検出する場合，（Ｂ）数度程度の入力画像の回転角を検出する場合，（Ｃ）９０度単位の入力画像の回転角（入力画像の回転方向）を検出する場合，（Ｄ）検出された回転角を利用して各フィルタ出力を合成する場合，に分けて順に説明する。なお，本明細書および図面において，実質的に同一の構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００７２】
＜Ａ．数度以上９０度以下の入力画像の回転角を検出する場合＞
（第１実施形態）
最初に，本発明の第１実施形態にかかる透かし情報処理装置について説明する。本実施形態にかかる透かし情報処理装置は，数度以上９０度以下の入力画像の回転角を検出する。
【００７３】
（透かし情報処理装置の構成および機能）
本実施の形態の透かし情報処理装置の構成および機能について，図１を参照しながら説明する。透かし情報処理装置１０は，文書画像に透かし情報を埋め込む透かし情報埋め込み装置１００と透かし情報が埋め込まれた印刷文書２２０から透かし情報を検出する透かし情報検出装置３００とから構成される。
【００７４】
まず，透かし情報埋め込み装置１００の構成及び機能について説明する。透かし情報埋め込み装置１００は文書データ２００と透かし情報２１０とを元に透かし入り文書画像を作成し，印刷文書２２０として紙に印刷する装置である。透かし情報埋め込み装置１００は，文書画像作成部１１０と，透かし画像作成部１２０，透かし入り文書画像合成部１３０，出力部１４０および系列パターン生成部１５０により示された機能ブロックを有している。
【００７５】
文書データ２００は，印刷文書２２０として紙に印刷されたとき，視覚的に認識できるデータである。透かし情報２１０は，印刷文書２２０に文字以外の形式で埋め込まれていて，通常状態にて視覚的に認識できないデータ（たとえば，文字列，画像データ，音声データ等）である。
【００７６】
文書画像作成部１１０は，文書データ２００に基づいて，印刷されたときに視覚的に認識できる文書画像を作成する。この文書画像は白黒の二値画像であり，画像上で白い画素（値が１の画素）は背景であり，黒い画素（ドット，値が０の画素）は文字領域（インクが塗布される領域）である。
【００７７】
透かし画像作成部１２０は，透かし情報２１０をディジタル化して数値に変換する。その結果が，図２の上部に情報のビット列として示されている。つぎに，透かし画像作成部１２０は，変換した数値（ビット列のそれぞれのビット）にあらかじめ取り決められたドットパターンから構成される信号パターンを割り当てることにより透かし画像を作成する。図２の中央に示した複数種類の信号パターンには，所定の異なる角度に関する情報が含まれている。
【００７８】
作成された透かし画像は，図２の下部（信号パターンによりドットパターン化された後の情報）に示したように，複数種類の信号パターン（信号パターンｓ１〜ｓ４）の少なくともいずれかがある規則に従って配置されたものである。
【００７９】
透かし入り文書画像合成部１３０は，このようにして作成された文書画像と透かし画像とを重ね合わせることにより（文書画像に透かし画像を埋め込むことにより）透かし入り文書画像を作成する。
【００８０】
出力部１４０は，透かし入り文書画像を紙に印刷して，印刷文書２２０として出力する。この印刷文書２２０は，文書データ２００に透かし情報２１０を埋め込んで印刷されたものであり，物理的に保管・管理される。
【００８１】
系列パターン生成部１５０は，上記複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを生成する。系列パターン生成部１５０については，後述する第２実施形態にて詳細に説明する。
【００８２】
このようにして，透かし情報埋め込み装置１００は，透かし入り文書画像を作成し，出力するようになっている。なお，出力部１４０は，透かし情報埋め込み装置１００の内部の機能であってもよく，プリンタなど外部の印刷装置により構成されていてもよい。
【００８３】
つぎに，透かし情報検出装置３００の構成及び機能について説明する。透かし情報検出装置３００は，印刷文書２２０を画像として読み込み，読み込んだ画像に埋め込まれている透かし情報２１０を復元する装置である。透かし情報検出装置３００は，入力部３１０と透かし検出部３２０とにより示された機能ブロックを有している。
【００８４】
入力部３１０は，印刷文書２２０を多値階調の入力画像として入力する。透かし検出部３２０は，入力画像に対してフィルタ処理を行うことにより，印刷文書２２０に埋め込まれた信号パターンを検出し，検出された信号パターンに含まれる情報に基づいて埋め込まれた透かし情報２１０を復元する。
【００８５】
この透かし検出部３２０は，図３に示したように，記憶部３２０ａ，フィルタ処理部３２０ｂ，信号パターン特定部３２０ｃおよび回転角検出部３２０ｄにより示された機能ブロックを有している。
【００８６】
記憶部３２０ａは，透かし入り文書画像に埋め込まれている信号パターンの種類を予め記憶する。フィルタ処理部３２０ｂは，複数種類のフィルタを用いて，透かし入り文書画像をそれぞれフィルタ処理する。信号パターン特定部３２０ｃは，各フィルタ処理の結果に基づいて，透かし入り文書画像に埋め込まれた信号パターンの種類を特定する。回転角検出部３２０ｄは，記憶部３２０ａに記憶された種類の信号パターンにより表される角度に関する情報と信号パターン特定部３２０ｃによって特定された種類の信号パターンにより表される角度に関する情報との関係から透かし入り文書画像の回転角を求める。
【００８７】
このようにして，透かし情報検出装置３００は，透かし入り文書画像（入力画像）の回転角を検出するようになっている。なお，入力部３１０は，透かし情報検出装置３００の内部の機能であってもよく，カメラなどの撮像装置やスキャナなどの入力装置により構成されていてもよい。
【００８８】
また，透かし情報埋め込み装置１００および透かし情報検出装置３００は，図示しないＣＰＵ，ＲＯＭ，ＲＡＭおよびインターフェースを主たる構成としたコンピュータを備えていて，ＲＯＭは，透かし情報埋め込み装置１００および透かし情報検出装置３００の各機能を実行するためのプログラムをそれぞれ記憶している。ＲＡＭは，信号パターンの種類を記憶する記憶部３２０ａに相当し，フィルタ出力値等のデータも一時的に記憶する。ＣＰＵは，ＲＡＭに記憶されたデータを用いて，ＲＯＭに記憶された各プログラムを実行することにより上述した機能ブロックにて実行される各機能を達成するようになっている。
【００８９】
つぎに，透かし情報埋め込み装置１００および透かし情報検出装置３００の動作について説明する。
（透かし情報埋め込み装置１００の動作）
まず，透かし情報埋め込み装置１００の動作について，透かし画像作成部１２０の処理の流れを示した図４を参照しながら説明する。
【００９０】
透かし情報埋め込み装置１００のＣＰＵ（透かし画像作成部１２０）は，ステップＳ１０１にて，透かし情報２１０をＮ次元符号に変換する。Ｎは任意であるが，本実施形態では，説明を容易にするためＮ＝２（２次元符号）とする。２次元符号に変換された透かし情報２１０のビット列の一例を図２の上部に示す。
【００９１】
次いで，ＣＰＵは，ステップＳ１０２にて，透かし信号を２次元符号化された透かし情報２１０の各ドットに対してそれぞれ割り当てる。ここで，透し信号とは，信号パターン（図２を参照）であり，ドット（黒画素）の配列によって任意の波長（または周波数）と伝播方向を持つ波を表現したものである。
【００９２】
以下，幅と高さがＳｗ，Ｓｈの矩形を１つの信号パターンとすると，図５は，ドット間の距離が水平軸に対してａｒｃｔａｎ（３）（ａｒｃｔａｎはｔａｎの逆関数）の方向に密であり，波の伝搬方向はａｒｃｔａｎ（−１／３）である。
【００９３】
図６は，図５の画素値の変化をａｒｃｔａｎ（−１／３）の方向から見た断面図である。図６において，ドットが配列されている部分が波の最小値の腹（振幅が最大となる点）となり，ドットが配列されていない部分は波の最大値の腹となっている。
【００９４】
また，ドットが密に配列されている領域はそれぞれ１信号パターンの中に２つ存在するため，この例では１信号パターンあたりの周波数は２となる。波の伝播方向はドットが密に配列されている方向に垂直となるため，図５の信号パターンの波は水平方向に対してａｒｃｔａｎ（−１／３）となる。なお，ａｒｃｔａｎ（ａ）の方向とａｃｒｔａｎ（ｂ）の方向が垂直のとき，ａ×ｂ＝−１である。
【００９５】
このように，信号パターンは，複数のドットを配列することにより形成されるドットの波の方向（波の伝播方向）と波長（または周波数成分）とによって所定の角度を示す。これにより，透かし情報検出装置３００は，入力画像に含まれる信号パターンが示す所定の角度に基づいて入力画像の回転角を検出する。
【００９６】
前述したように，信号パターンの一例としては，図２の中央枠内に示した，４種類の信号パターンが挙げられる。（ａ）には，「１１」の情報を記録するための信号パターンｓ１が示されている。信号パターンｓ１が示す角度θは，７１．６度である。また，（ｂ）には，「１０」の情報を記録するための信号パターンｓ２が示されている。信号パターンｓ２が示す角度θは，１０８．４度である。さらに，（ｃ）および（ｄ）には，「０１」および「００」の情報を記録するための信号パターンｓ３および信号パターンｓ４が示されている。信号パターンｓ３および信号パターンｓ４が示す各角度θは，１６１．６度および１８．４度である。このように，信号パターンは，約７２度，約１０８度，約１６２度，約１８度といった角度の方向で，ある一定の周波数成分を持つドットパターンである。なお，上記角度については，ＣＰＵの処理では，ＣＰＵの処理負担を考慮して，７２度，１０８度，１６２度，１８度の各角度が角度情報として使用される。
【００９７】
再び，図４に戻ると，つぎに，ＣＰＵは，ステップＳ１０３において，割り当てられた透かし情報２１０のビット列に対応して，ステップＳ１０２にて割り当てられた信号パターンを透かし画像上に配置する。配置後の透かし情報を図２の下部に示す。これにより，透かし情報２１０に基づいて，信号パターンによりドットパターン化された透かし画像が生成される。
【００９８】
一方，ＣＰＵ（文書画像作成部１１０）は，文書データ２００に基づいて文書画像を作成する。ついで，ＣＰＵ（透かし入り文書画像合成部１３０）は，このようにして作成された透かし画像と文書画像とを重ね合わせることにより透かし入り文書画像を作成する。その後，ＣＰＵ（出力部１４０）は，透かし入り文書画像を紙に印刷して，印刷文書２２０として出力する。
【００９９】
（透かし情報検出装置３００の動作）
つぎに，透かし情報検出装置３００の動作について，図７を参照しながら説明する。
【０１００】
まず，透かし情報検出装置３００のＣＰＵ（入力部３１０）は，ステップＳ３０１にて，印刷文書をＲＡＭ等のメモリに入力する。入力された文書画像（以下，透かし入り文書画像または入力画像とも称する。）は，多値画像であり，以下では２５６階調のグレイ画像として説明する。また，入力画像の解像度（入力部３１０にて読み込むときの解像度）は，上記透かし情報埋め込み装置１００にて作成された印刷文書と異なっていてもよいが，ここでは透かし情報埋め込み装置１００にて作成された画像と同じ解像度であるとして説明する。
【０１０１】
次いで，ＣＰＵ（透かし検出部３２０）は，ステップＳ３０２にて，入力画像の大きさと信号パターンの大きさとから，信号パターンがいくつ埋め込まれているかを計算する。
【０１０２】
つぎに，ＣＰＵ（透かし検出部３２０）は，ステップＳ３０３にて，ステップＳ３０２で計算した信号パターン数をもとに，入力画像に埋め込まれた信号パターンの位置（座標）を特定し，入力画像を複数のブロックに分割する。次いで，ＣＰＵ（透かし検出部３２０）は，ステップＳ３０４にて，信号パターン位置ごとに信号の検出を行い，ステップＳ３０５にて，信号パターンの行列を復元する。これにより，印刷文書２２０に埋め込まれた透かし情報が検出される。
【０１０３】
以下では，ステップＳ３０４にて，信号パターンを検出するために，信号パターンの波の周波数と方向，および影響範囲を同時に定義できる二次元ウェーブレットフィルタの一つであるガボールフィルタについて説明する。なお，二次元ウェーブレットフィルタは，ガボールフィルタと同様な性質を持つフィルタであれば，必ずしもガボールフィルタである必要はない。
【０１０４】
以下の式（１）にガボールフィルタＧ（ｘ，ｙ），ｘ＝０〜ｇｗ−１，ｙ＝０〜ｇｈ−１を示す。ｇｗ，ｇｈはフィルタのサイズであり，ここでは透かし情報埋め込み装置１００で埋め込んだ信号パターンと同じ大きさである。
【０１０５】
【数１】
2006253839.tif 000003
【０１０６】
本実施形態の信号検出では，透かし画像に埋め込んだ４種類の信号パターン（信号パターンｓ１，ｓ２，ｓ３，ｓ４）と周波数，波の伝搬方向および大きさがそれぞれ等しい４つのガボールフィルタを含んだ１０のガボールフィルタが用いられる。具体的には，検出時に使用するガボールフィルタは，埋め込み時に使用する信号パターンｓ１〜ｓ４にそれぞれ強く反応するガボールフィルタａ１〜ａ４（図８を参照）を含んだ１０種類のフィルタ０〜９（図９（ａ）を参照）が使用される。１０種類のフィルタ０〜９によってそれぞれ示される角度を以下に示す。
【０１０７】
フィルタ０：約０度      （１８度×０）
フィルタ１：約１８度    （１８度×１）
フィルタ２：約３６度    （１８度×２）
フィルタ３：約５４度    （１８度×３）
フィルタ４：約７２度    （１８度×４）
フィルタ５：約９０度    （１８度×５）
フィルタ６：約１０８度  （１８度×６）
フィルタ７：約１２６度  （１８度×７）
フィルタ８：約１４４度  （１８度×８）
フィルタ９：約１６２度  （１８度×９）
【０１０８】
このように，各フィルタが示す回転角は，フィルタ０を０度として，順に１８度づつ大きくなる。なお，図８の埋め込み側のフィルタａ１〜ａ４に対応する検出側のフィルタは，それぞれ，フィルタ４，フィルタ６，フィルタ９，フィルタ１である。たとえば，画像が傾いていない場合，図２の信号パターンｓ１はフィルタ４，信号パターンｓ２はフィルタ６，信号パターンｓ３はフィルタ９，信号パターンｓ４はフィルタ１に強く反応するようになっている。
【０１０９】
記憶部３２０ａには，埋め込み時に使用する信号パターンｓ１〜ｓ４が記憶されている。よって，これらの信号パターンの種類に対応するフィルタが強く反応するとき（すなわち，図９（ｂ）の太い矢印にて示すように，フィルタ４，フィルタ６，フィルタ９およびフィルタ１のフィルタ出力値が最大となるとき），フィルタ４，フィルタ６，フィルタ９およびフィルタ１に対応する信号パターンと記憶部３２０ａに記憶されている信号パターンとが一致するため，ＣＰＵは，透かし入り文書画像の回転角を「０度」と算出する。
【０１１０】
一方，フィルタ３，フィルタ５，フィルタ８およびフィルタ０が強く反応するとき，記憶部３２０ａに記憶されている種類の信号パターンにより表される角度に関する情報と特定された種類の信号パターン（フィルタ３，フィルタ５，フィルタ８およびフィルタ０に対応する信号パターン）により表される角度に関する図９（ｃ）の情報との関係から，ＣＰＵは，透かし入り文書画像の回転角を「１８度」と算出する。
【０１１１】
なお，検出時に使用するフィルタ数は，埋め込み時に使用するフィルタ数より一つ以上多ければいくつであってもよい。ただし，検出時に使用するフィルタ数が多ければ検出精度は向上するが，処理の負荷が大きくなり，検出時に使用するフィルタ数が少なければ検出精度は低下するが，処理の負荷も小さくなる。このことから，本実施形態では，検出時に使用するフィルタ数は，上述したように埋め込み時に使用するフィルタ数の２．５倍としている。この数値は，検出時のＣＰＵの処理負担を過度に増大させることなく，３６０度すべての回転角を１８度づつ検出できるため好ましい。
【０１１２】
つぎに，図７のステップＳ３０４の信号検出処理の詳細を説明する。前述したように，図１０に示したように，ＣＰＵは，ステップＳ３０４にて，フィルタ演算処理（ステップＳ３０４ａ），回転角検出処理（ステップＳ３０４ｂ），フィルタ出力回転処理（ステップＳ３０４ｃ）の順に処理を実行する。
【０１１３】
まず，フィルタ演算処理（ステップＳ３０４ａ）の詳細を説明する。入力画像は，図７のステップＳ３０３にて複数のブロックに分割されている。そこで，ＣＰＵ（フィルタ処理部３２０ｂ）は，図１１に示したように，各フィルタＡ（Ａ＝０，１，２，・・・，９）を入力画像の水平方向および垂直方向にずらしながら，各ブロックのコンボリューション（畳み込み演算）をそれぞれ計算する。この結果から，ＣＰＵ（フィルタ処理部３２０ｂ）は，それぞれのブロック内で最大のフィルタ出力値を求める。
【０１１４】
各ブロックでのフィルタ出力値は，ガボールフィルタの場合，実数フィルタと虚数フィルタ（虚数フィルタは実数フィルタと半波長分位相がずれたフィルタ）が存在するため，それらの２乗平均値をフィルタ出力値とする。
【０１１５】
たとえば，フィルタａの実数フィルタと画像間のコンボリューションがＲａ，虚数フィルタとのコンボリューションがＩａであったとすると，出力値Ｆ（ａ）は以下の式（２）で計算する。
Ｆ（ａ）＝（Ｒａ２＋Ｉａ２）１／２・・・（２）
【０１１６】
このようにして求められた１０種類のフィルタ出力値に基づいて，ＣＰＵ（信号パターン特定部３２０ｃ）は，ステップＳ３０４ｂの回転角検出処理にて，入力画像Ｕ（ｘ，ｙ）の特定位置に埋め込まれている信号パターンの種類を判定する。次いで，ＣＰＵ（回転角検出部３２０ｄ）は，その判定結果に基づいて画像の回転角を求める。このステップＳ３０４ｂの回転角検出処理を以下に具体的に説明する。
【０１１７】
フィルタ０〜９の各フィルタに対応するフィルタ出力値の平均値をＦａｖｅ（０〜９）とし，１８度単位での回転角の推定を行う重みをｗθとすると，重みｗは，つぎの式（３）で示される。
2006253839.tif 000004
【０１１８】
たとえば，画像のずれのないとき（回転角＝０，ｉ＝０）の重みは，ｗ０＝Ｆａｖｅ（４）＋Ｆａｖｅ（６）＋Ｆａｖｅ（９）＋Ｆａｖｅ（１）となる。このようにして，重みｗ０の値から回転角が求められる。この回転角を用いて，ＣＰＵは，ステップＳ３０４ｃにて，フィルタ出力値を補正することにより画像の傾きをなくす。
【０１１９】
以上，信号検出処理（ステップＳ３０４）の詳細について説明した。再び，図７の流れ図に戻り，ステップＳ３０５について説明する。ＣＰＵ（透かし検出部３２０）は，ステップＳ３０５にて，信号パターンのビット情報を連結することによってデータ符号を再構成することにより，元の情報を復元する。図１２は，情報復元の一例を示す説明図である。情報復元のステップは以下の通りである。
【０１２０】
（１）ＣＰＵは，入力画像（図１２（ａ））の各ブロックにて最大出力値となった各フィルタに基づいて（信号パターンの）ビット情報（「００」，「０１」，「１０」または「１１」）を抽出する（図１２（ｂ））。各ブロックに対して検出されたフィルタとフィルタから抽出されるビット情報との関係を次に示す。
【０１２１】
情報「１１」を検出するフィルタ：Ｆ((4+i)mod10,x,y)
情報「１０」を検出するフィルタ：Ｆ((6+i)mod10,x,y)
情報「０１」を検出するフィルタ：Ｆ((9+i)mod10,x,y)
情報「００」を検出するフィルタ：Ｆ((1+i)mod10,x,y) 
【０１２２】
ここで，たとえば，画像の回転方向のずれがない場合はｉ＝０となり，画像の回転方向に１８度のずれがある場合はｉ＝１となる。
【０１２３】
（２）つぎに，ＣＰＵは，（１）にて検出されたビット情報を連結してデータ符号を復元する（図１２（ｃ））。
（３）さらに，ＣＰＵは，データ符号を復号して埋め込まれた情報を取り出す（図１２（ｄ））。
【０１２４】
以上，埋め込み側フィルタより一つ以上多いフィルタを検出側フィルタに使用して，入力画像の回転方向のずれ（回転角）を検出する透かし情報処理装置１０について説明した。
【０１２５】
これによれば，検出側のフィルタの数により特定される，ある一定の角度単位毎に，ある所定範囲の画像の回転角（すなわち，数度以上９０度以下の入力画像の回転角）を全方向（３６０度）に渡って検出することができる。また，画像上の文字や罫線を用いることなく，地紋の信号パターンのみを用いて回転角を検出することができる。
【０１２６】
ただし，式（３）にｉ＝０，ｉ＝５，ｉ＝１０，ｉ＝１５をそれぞれ代入すると，ｗ０＝ｗ９０＝ｗ１８０＝ｗ２７０となることから理解できるように，ｗ０〜ｗ９０の各値とｗ９０〜ｗ１８０の各値とｗ１８０〜ｗ２７０の各値とｗ２７０〜ｗ０の各値とは同じ値を持つ。この結果，たとえば，回転角が５度の場合，回転角が９５度の場合，回転角が１８５度の場合および回転角が２７５度の場合の区別がつかない。この結果，９０度より大きく３６０度より小さい回転方向のずれを検出することができない。
【０１２７】
また，本実施形態では，フィルタの設定単位が１８度なので，１８度より小さい回転角を検出することができない。そこで，より精度よく画像の回転角を検出するために，（Ｂ）数度程度の入力画像の回転角を検出する方法，および，（Ｃ）９０度単位の入力画像の回転角（９０度以上の回転角）を検出する方法が必要となる。（Ｂ）および（Ｃ）の各方法については第３実施形態以降で説明する。
【０１２８】
（第２実施形態）
次に，第２実施形態について説明する。本実施形態にかかる透かし情報処理装置１０では，フィルタ出力値から得られる情報中に含まれる特殊な系列（ＰＮ符号，ＰＮ：Ｐｓｅｕｄｏ−ｒａｍｄｏｍ  Ｎｕｍｂｅｒ）を抽出し，この特殊な系列の相関値から回転角を求める点において，重みｗ０の値（フィルタの種類）から回転角を求める第１実施形態にかかる透かし情報処理装置１０と相異する。よって，この相異点を中心に第２実施形態にかかる透かし情報処理装置１０について説明する。
【０１２９】
（透かし情報埋め込み装置１００の構成）
まず，本実施形態の透かし情報埋め込み装置１００の構成について説明する。前述したように，本実施形態の透かし情報埋め込み装置１００は，第１実施形態の透かし情報埋め込み装置１００の機能に図１に示した系列パターン生成部１５０が追加された機能ブロックを有している。系列パターン生成部１５０は，２次元ＰＮ符号（以下，同期コードとも称呼する。）を生成するようになっている。２次元ＰＮ符号は，図１４に示したように，１次元ＰＮ符号系列を２次元に拡張したものであり，特殊な系列パターンの一例である。
【０１３０】
（透かし情報検出装置３００の構成）
つぎに，本実施形態の透かし情報検出装置３００の構成について説明する。図１３に示したように，本実施形態の透かし情報検出装置３００は，第１実施形態の透かし情報検出装置３００に相関演算処理部３２０ｅが追加された機能ブロックを有している。相関演算処理部３２０ｅは，フィルタ出力値から得られる情報中に含まれる特殊な系列の相関絶対値を求めるようになっている。
【０１３１】
（透かし情報埋め込み装置１００の動作）
まず，本実施形態の透かし情報埋め込み装置１００の動作について説明する。ＣＰＵ（系列パターン生成部１５０）は，１次元ＰＮ符号系列を拡張した２次元ＰＮ符号を生成する。
【０１３２】
１次元ＰＮ符号系列には，符号を前後逆順に並べた符号との相関が十分低い符号系列が用いられる。たとえば，１次元ＰＮ符号が「１１１１０１０１１００１０００」からなる１５ビットの情報である場合，この１次元ＰＮ符号を前後逆順に並べた１次元ＰＮ符号は，「０００１００１１０１０１１１１」からなる１５ビットの情報となる。
【０１３３】
このように，たとえば，「１１１１０１０１１００１０００」のビットパターンに対して，そのままのパターン「１１１１０１０１１００１０００」を正順方向のビットパターンという。また，「１１１１０１０１１００１０００」のビットパターンの順序を逆転させたパターン「０００１００１１０１０１１１１」を逆順方向のビットパターンという。すなわち，逆順方向のビットパターンは，正順方向のビットパターンを逆方向から配列させたパターンである。
【０１３４】
以下の式（４）用いて正順と正順および正順と逆順のそれぞれの組み合わせについて相関をとる。
2006253839.tif 000005
【０１３５】
その結果，正順と正順との相関値Ｒは「１」となる。また，正順と逆順との相関値Ｒは「０．３３３３・・・」となる。このように，同じ順序の相関絶対値は，異なる順序の相関絶対値よりも高い符号となる。
【０１３６】
つぎに，ＣＰＵ（透かし画像作成部１２０）は，この２次元に拡張したＰＮ符号からなる同期コードに，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを当てはめることにより透かし画像（図１５の同期コードのドットパターン）を作成する。図１５に示したように，同期コード自体は，信号パターン（ドットパターン）の集合で構成され，画像に通常埋め込むディジタル情報と同じ方法で，信号パターンに変換され，一つ以上埋め込まれる。
【０１３７】
ついで，ＣＰＵ（透かし入り文書画像合成部１３０）は，生成された透かし画像を文書画像に埋め込むことにより，透かし入り文書画像を作成する。
【０１３８】
たとえば，ＣＰＵが，画像の一部に同期コードを埋め込む場合，たとえば，１つの信号パターンが１ビットの情報を表すときは，情報「０」を示す信号パターンと情報「１」を示す信号パターンとを両方，組み合わせて埋め込んでもよいし，情報「０」を示す信号パターンまたは情報「１」を示す信号パターンのいずれかのみを埋め込んでもよい。
【０１３９】
また，１信号で複数ビットを表す場合（たとえば，信号パターンが２ｎ個ある場合，１個の信号パターンでｎビットの情報を表現できる）は，複数ビット中の１ビットを同期コードに割り当て，その他のビットを情報埋め込みに使用することができる。たとえば，ｎ＝２の場合，図２に示したように，１個の信号パターンで２ビットの情報を表現できる。そこで，各信号パターンのＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側（下位側）のビットを同期コードに割り当ててもよい。また，各信号パターンのＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側（上位側）のビットを同期コードに割り当ててもよい。各信号パターンのＬＳＢ側（下位側）のビットを同期コードに割り当てた場合，信号パターンｓ１および信号パターンｓ３は，情報「１」を示し，信号パターンｓ２および信号パターンｓ４は，情報「０」を示す。
【０１４０】
このとき，同期コードは，全ビット反転した場合でも相関の絶対値は変わらず，全ビットを反転しない場合の情報を「０」，全ビットを反転した場合の情報を「１」とすることができる。または，全ビットを反転しない場合の情報を「１」，全ビットを反転した場合の情報を「０」とすることもできる。
【０１４１】
したがって，同期コードは，１ビットの情報埋め込みに使用することができる。すなわち，本実施形態の場合，この１ビットは２次元ＰＮ符号全体に拡散して埋め込まれたことになるが，本実施形態の目的である回転検出や同期検出のみに同期コードを用いる場合には，同期コードは拡散して埋め込まれていても，拡散せずに埋め込まれていてもよい。
【０１４２】
このようにして，同期コードを含むすべての情報は，それぞれ対応する図２の信号パターンを用いて画像上に描画される。これらの信号パターンは，前述したように，信号パターンｓ１が約７２度，信号パターンｓ２が約１０８度，信号パターンｓ３が約１６２度，信号パターンｓ４が約１８度という角度の方向で，ある周波数成分を持つパターンが使用される。
【０１４３】
（透かし情報検出装置３００の動作）
つぎに，本実施形態の透かし情報検出装置３００の動作について説明する。ＣＰＵは，図７の画像入力処理(ステップＳ３０１)〜信号検出座標特定処理（ステップＳ３０３）を実行した後，信号検出処理（ステップＳ３０４）を実行する。この信号検出処理にて，ＣＰＵ（フィルタ処理部３２０ｂ）は，まず，図１０のステップＳ３０４ａのフィルタ演算処理を行う。
【０１４４】
フィルタ処理について，各点のフィルタ出力値Ｆ（Ｍ，ｘ，ｙ）の詳細を示した図１６を参照しながら説明する。各点のフィルタ出力値Ｆ（Ｍ，ｘ，ｙ）は，次のように算出される。まず，ＣＰＵ（フィルタ処理部３２０ｂ）は，入力画像の一部である画像Ｒに対してガボールフィルタＢを走査しながら，畳み込み演算を行う。その結果は，フィルタ出力値Ｆ（Ｂ，ｘ，ｙ）として示されている。
【０１４５】
フィルタ出力値Ｆ（Ｂ，ｘ，ｙ）が図１６の上部に示した画像Ｒの点線内の中央位置にて最大値（黒になるほど，フィルタ出力値が高いことを示す）になるのは，ガボールフィルタＢが，画像Ｒの点線内の特徴部分に強く反応するためである。
【０１４６】
同様に，ＣＰＵ（フィルタ処理部３２０ｂ）は，画像Ｒに対してガボールフィルタＡを走査しながら，畳み込み演算を行う。その結果は，フィルタ出力値Ｆ（Ａ，ｘ，ｙ）として示されている。フィルタ出力値Ｆ（Ａ，ｘ，ｙ）が図１６の上部に示した画像Ｒの実線内の中央位置にて最大値になるのは，ガボールフィルタＡが，画像Ｒの実線内の特徴部分に強く反応するためである。
【０１４７】
この結果，各点の最大値を出力したフィルタを図１６の左下に示す。フィルタＢに強く反応している部分は白，フィルタＡに強く反応している部分は黒で示されている。また，フィルタの種類によらない各点のフィルタ出力値を図１６の右下に示す。このようにして，各フィルタによりフィルタ処理を行った結果，各フィルタに対応したフィルタ出力値が得られる。
【０１４８】
つぎに，ＣＰＵ（相関演算処理部３２０ｅ）は，ステップＳ３０４ｂの回転角検出処理にて，フィルタ処理結果（フィルタ出力値）に対応した２次元相関演算を行う。たとえば，フィルタ結果を各回転角に対応した角度だけ回転させた後，水平方向および／または垂直方向にて同期コードとの２次元相関を演算してもよい。
【０１４９】
ただし，相関演算時は，各回転角に合わせて情報「０」と情報「１」を示すフィルタを以下のように切り替える。
情報「１１」を検出するフィルタ：Ｆ((4+i)mod10,x,y)
情報「１０」を検出するフィルタ：Ｆ((6+i)mod10,x,y)
情報「０１」を検出するフィルタ：Ｆ((9+i)mod10,x,y)
情報「００」を検出するフィルタ：Ｆ((1+i)mod10,x,y)
【０１５０】
たとえば，ＬＳＢ側に同期コードを埋め込んだ場合は，同期コードの情報「０」または同期コードの情報「１」は，次のようになる。
情報「１」を検出するフィルタ：Ｆ((4+i)mod10,x,y)，または，Ｆ((9+i)mod10,x,y)
情報「０」を検出するフィルタ：Ｆ((6+i)mod10,x,y)，または，Ｆ((1+i)mod10,x,y)
【０１５１】
つぎに，このようにして得られたフィルタ出力値に基づいて特殊な系列（同期コード）を抽出し，この特殊な系列の相関絶対値を求める２次元相関演算方法について詳細に説明する。
【０１５２】
ＣＰＵ（相関演算処理部３２０ｅ）は，２次元相関演算処理において，フィルタ出力値（式（１）の出力値）から，埋め込み時に使用したＰＮ符号を抽出し，このＰＮ符号の相関絶対値を演算する。
【０１５３】
このとき，フィルタ出力値が一つの信号パターンにつき多ビットで得られる場合（たとえば，図２に示したように，一つの信号パターンが２ビットの情報を持つ場合）は，埋め込みに使用したビットプレーン（ＬＳＢ側のビットまたはＭＳＢ側のビット）を相関演算に使用する。
【０１５４】
たとえば，フィルタＡ，フィルタＢの２種類のフィルタを用いた場合，２次元相関演算に用いる入力値は，次のようになる。たとえば，フィルタ出力値Ｆ（Ａ，ｘ，ｙ）がフィルタ出力値Ｆ（Ｂ，ｘ，ｙ）以上の場合，２次元相関演算に用いる入力値は，式（１）を用いて求められたＦ（Ａ，ｘ，ｙ）となる。一方，フィルタ出力値Ｆ（Ａ，ｘ，ｙ）がフィルタ出力値Ｆ（Ｂ，ｘ，ｙ）より小さい場合，２次元相関演算に用いる入力値は，−Ｆ（Ｂ，ｘ，ｙ）となる。
【０１５５】
フィルタが４種類の場合，各フィルタの種類によって「１１」，「１０」，「０１」および「００」の４種類のディジタル値を表現できるが，最も大きいフィルタ出力値に相当するディジタル値のなかで同期コードを使用するのに使用したビットプレーンが「１」の場合はＦ（Ｍ，ｘ，ｙ），「０」の場合は−Ｆ（Ｍ，ｘ，ｙ）としてもよい。ただし，Ｆ（Ｍ，ｘ，ｙ）は，もっとも出力値の大きかったフィルタＭの出力値を指す。
【０１５６】
具体的には，２ビットの情報を示す信号パターンについて，フィルタＡに対応する信号パターンｓ１が示す情報を「１１」，フィルタＢに対応する信号パターンｓ２が示す情報を「１０」，フィルタＣに対応する信号パターンｓ３が示す情報を「０１」，フィルタＤに対応する信号パターンｓ４が示す情報を「００」とする。このとき，各４つの信号パターンのＭＳＢ側のビットに同期コードを埋め込んだ場合（埋め込みに使用したビットプレーンがＭＳＢ側のビットである場合），ビットプレーンがフィルタＡ，Ｂにより示される「１」のとき，もっとも出力値の大きかったフィルタＭの出力値Ｆ（Ｍ，ｘ，ｙ）を２次元相関演算に用いる。一方，ビットプレーンがフィルタＣ，Ｄにより示される「０」のとき，もっとも出力値の大きかったフィルタＭの出力値Ｆ（Ｍ，ｘ，ｙ）に−符号を付加した−Ｆ（Ｍ，ｘ，ｙ）を２次元相関演算に用いる。
【０１５７】
ここで，図１７に示したように，フィルタ結果内に存在する信号の間隔がｐの場合，相関演算は，フィルタ結果内のｐだけ離れている点の集合単位で行われる。たとえば，Ｎビットの同期コードとの相関を演算する場合，使用するフィルタ出力値は，｛Ｆ（Ｍｘ，ｙ，ｘ，ｙ），Ｆ（Ｍｘ＋ｐ，ｙ，ｘ＋ｐ，ｙ），Ｆ（Ｍｘ＋２ｐ，ｙ，ｘ＋２ｐ，ｙ），・・・，Ｆ（Ｍｘ＋Ｎｐ，ｙ，ｘ＋Ｎｐ，ｙ）｝となる。
【０１５８】
たとえば，図１８に示したように，１つの信号を１５画素×１５画素で生成し，同じ解像度で印刷・スキャンした場合，１つの信号は，入力画像上で１５画素×１５画素となる。これをこのまま間引き無しで１画素づつ，水平方向にずらしながらフィルタ処理を行うとフィルタ処理結果内の信号間隔ｐは「１５」となる。この間隔ｐで相関演算を行うことにより，水平方向の相関値（１次元相関値）が求められる。水平方向の相関絶対値は，水平方向の相関値の絶対値として求められる。
【０１５９】
つぎに，図１９に示したように，１５画素×１５画素で生成された１つの信号を，このまま間引き無しで１画素づつ，垂直方向にずらしながらフィルタ処理を行うとフィルタ処理結果内の信号間隔ｐは「１５」となる。この間隔ｐで水平方向の相関演算結果を垂直方向に相関演算することにより，２次元の相関値が求められる。２次元相関絶対値は，２次元相関値の絶対値として求められる。
【０１６０】
このようにして，フィルタ出力値のピークを探す同期処理を行わずに相関演算処理を行うことができ，また，ピーク探索の同期ミスによる同期コードの欠落を防ぐことができる。
【０１６１】
以上の２次元相関演算を式にまとめると，位置（ｘ，ｙ）での相関値Ｒ（ｘ，ｙ）は，以下の式（５）にて算出される。
2006253839.tif 000006
【０１６２】
ただし，
2006253839.tif 000007
ｐ：フィルタ結果内の信号間隔
Ｍｘ＋ｐｉ，ｙ＋ｐｊ：位置（ｘ＋ｐｉ，ｙ＋ｐｊ）で最もフィルタ出力値の高かったフィルタ
Ｆ（Ｍｘ＋ｐｉ，ｙ＋ｐｊ，ｘ＋ｐｉ，ｙ＋ｐｊ）：位置（ｘ＋ｐｉ，ｙ＋ｐｊ）で最もフィルタ出力値の高かったフィルタの出力値
2006253839.tif 000008
【０１６３】
相関値Ｒ（ｘ，ｙ）は，水平方向の相関演算と垂直方向の相関演算とを組み合わせた２次元相関演算であり，以下に示すような水平方向の相関演算と垂直方向の相関演算とに分けることができる。
【０１６４】
すなわち，水平方向の相関演算は，次式で表される。
2006253839.tif 000009
【０１６５】
また，垂直方向の相関演算は，次式で表される。
2006253839.tif 000010
【０１６６】
または，処理単純化のため，次の式（６）を用いることもできる。
2006253839.tif 000011
【０１６７】
この式（６）のように単純化した場合の２次元相関演算に用いる入力値は，フィルタＡ，フィルタＢの２種類のフィルタを用いた場合，たとえばフィルタ出力値Ｆ（Ａ，ｘ，ｙ）が，フィルタ出力値Ｆ（Ｂ，ｘ，ｙ）以上の場合，「１」（＝ｓｇｎ（１））の値をとり，フィルタ出力値Ｆ（Ａ，ｘ，ｙ）が，フィルタ出力値Ｆ（Ｂ，ｘ，ｙ）より小さい場合，「−１」（＝ｓｇｎ（０））の値をとる。
【０１６８】
このようにして求められた入力値を用いた２次元相関演算は，フィルタ出力結果を１〜数ドットづつずらすことにより行われる。ＣＰＵ（相関演算処理部３２０ｅ）は，図１０のステップＳ３０４ｂにて，各１次元の相関演算を式（５）を用いて逐次計算することにより以上に説明した２次元相関演算を行ってもよいし，式（６）を用いて一度に計算することにより以上に説明した２次元相関演算を行ってもよい。
【０１６９】
Ｎビットの最長符号を２次元に拡張したＮ×Ｎサイズの同期コードの場合，位相（すなわち，画像の回転角）が完全に一致する場合，相関絶対値｜Ｒ（ｘ，ｙ）｜は，「１」の値をとり，水平方向および垂直方向にて共にまったく一致しない場合，相関絶対値｜Ｒ（ｘ，ｙ）｜は，１／Ｎ２の値をとる。換言すると，ＣＰＵ（フィルタ処理部３２０ｂ）によって得られたフィルタ出力値のうち，実際に同期コードと一致した部分のみ，相関絶対値は高くなり，一致しない部分の相関絶対値は低くなる。
【０１７０】
たとえば，前述したように，図１８および図１９には，フィルタ処理の結果に対して，１ビットづつ同期コードのＰＮ符号を水平方向および垂直方向にそれぞれ走査していき，この同期コードのＰＮ符号に対する相関値を演算した結果，同期コードのＰＮ符号と一致した位置では，相関値は「１」となり，最も相関が高くなる。そして，同期コードのＰＮ符号との不一致が多くなるにつれて相関値は低くなる。この相関絶対値と画像の回転角との関係を利用して，相関絶対値から固有の回転角が求められる。
【０１７１】
そこで，まず，ＣＰＵ（相関演算処理部３２０ｅ）は，上述した２次元相関演算により各回転角に対応した同期コードの相関絶対値｜Ｒ（ｘ，ｙ）｜を算出する。その後，ＣＰＵ（回転角検出部３２０ｄ）は，入力画像の所定範囲に対するフィルタ処理結果に基づいて算出された相関絶対値｜Ｒ（ｘ，ｙ）｜の最大値に対応する固有の回転角を画像の回転角として検出する。
【０１７２】
ここで，複数の同期コードが画像に一つ埋め込まれている場合，入力画像の所定の範囲は，入力画像全体の範囲でもよい。一方，図２０に示したように，複数の同期コードが画像に埋め込まれている場合，入力画像の所定の範囲は，隣り合う同期コードの距離から算出される所定の範囲（たとえば，同期コードを中心として水平方向の一辺がＢｗ，垂直方向の一辺がＢｈで示される矩形範囲）とすることができる。
【０１７３】
つぎに，ＣＰＵは，図１０のステップＳ３０４ｃにて，検出された画像の回転角に基づき，フィルタ出力値を補正することにより画像の傾きをなくす。
【０１７４】
最後に，ＣＰＵは，情報抽出（復元）の段階にて（図７のステップＳ３０５），次のようにフィルタに対応する情報を抽出する。
情報「１１」を検出するフィルタ：Ｆ((4+i)mod10,x,y)
情報「１０」を検出するフィルタ：Ｆ((6+i)mod10,x,y)
情報「０１」を検出するフィルタ：Ｆ((9+i)mod10,x,y)
情報「００」を検出するフィルタ：Ｆ((1+i)mod10,x,y)
【０１７５】
以上，本実施形態によれば，画像上の文字や罫線を用いることなく，同期コードのみを利用することにより，数度以上９０以下の画像の回転角が検出される。これにより，検出された回転角から画像の回転を補正することができる。特に，同期コードとの相関値を使用して回転角を検出するため，第１実施形態のようにフィルタ出力値を使用して回転角を検出する場合と比較してノイズに強い。この結果，より精度良く回転角を検出することができる。
【０１７６】
＜Ｂ．数度程度の入力画像の回転角を検出する場合＞
（第３実施形態）
次に，第３実施形態について説明する。本実施形態にかかる透かし情報処理装置１０では，画像に埋め込まれた複数の同期コードに基づいて入力画像の数度程度の回転角が検出される点において，画像に埋め込まれた一つ以上の同期コードに基づいて数度以上９０度以下の回転角が検出される第２実施形態にかかる透かし情報処理装置１０と機能上相異する。以下では，この相違点を中心に説明する。
【０１７７】
（透かし情報埋め込み装置１００の動作）
本実施形態では，透かし情報埋め込み装置１００のＣＰＵ（透かし入り文書画像合成部１３０）は，図２０および図２１に示したように，同期コードを画像（出力画像）に複数配置する。同期コードを配置する位置は，等間隔であってもよいし，非等間隔であってもよい。ただし，検出側（透かし情報検出装置３００）が，入力する画像に埋め込まれた複数の同期コードの各位置を把握できる必要がある。なお，図２０および図２１では，同期コードは，等間隔に配置されている。同期コードが埋め込まれていない位置には，その他の情報が埋め込まれていてもよい。
【０１７８】
ＣＰＵは，図２１の中央の枠内に示したように，１つの信号パターンが１ビットの情報を表す場合は，情報「０」を示す信号パターンと情報「１」を示す信号パターンとを組み合わせることにより同期コードを生成し，生成された同期コードを画像に埋め込んでもよい。
【０１７９】
また，１信号パターンで複数ビットの情報を表す場合，複数ビット中の１ビットが同期コードに割り当てられ，その他のビットが情報の埋め込みに使用される。たとえば，信号パターンが２ｎ個ある場合，１個の信号パターンは，ｎビットの情報を表現することができる。一例としては，図２の枠内に示した信号パターンの場合，４個の信号パターンによって，２ビットの情報を表現することができる。
【０１８０】
（透かし情報検出装置３００の動作）
上述したように，透かし情報検出装置３００のＣＰＵ（相関演算処理部３２０ｅ）は，式（５）または式（６）に示した２次元相関演算を用いて同期コードの相関絶対値｜Ｒ（ｘ，ｙ）｜を求める。この同期コードの相関演算による同期位置の検出は，画像の数度程度の回転にはさほど影響を受けずに実行することが可能だが，その理由を以下に述べる。
【０１８１】
傾いた画像をフィルタ処理すると，フィルタ処理結果の並びは，画像の傾きと同様に傾く。図２２に回転角θが約３度傾いた画像をフィルタ処理した結果の一例を示す。フィルタ処理の結果，各信号パターンに対するフィルタ出力ピーク値が均等に並んでいるとすると，長さＮの水平方向ＰＮ符号は，図２２に簡略化して示したように，フィルタ結果上では幅ｐＮ，高さｐの矩形が傾いた状態となる。
【０１８２】
このような状態の入力画像に対して，ＣＰＵ（相関演算処理部３２０ｅ）が，画像が傾いていない場合と同様に水平方向に相関を演算しても，ＣＰＵ（相関演算処理部３２０ｅ）は，多少の傾きでは誤った信号を抽出しない。ただし，ＣＰＵ（相関演算処理部３２０ｅ）は，その画像の傾きを知らないために，場所によってはフィルタ出力結果に対して上下異なる信号の出力値を参照してしまうことも起こり得る。
【０１８３】
たとえば，図２２の中心の信号について中心が完全に一致し，かつ，画像の傾きがθ，同期コードの長さがＮ（Ｎ信号），信号の間隔がｐとすると，両端での読み取り位置の信号中心からのズレｄは，次の式（７）で表すことができる。
2006253839.tif 000012
【０１８４】
たとえば，フィルタ出力値が十分に大きい範囲を，フィルタの中心から，αｐ／２の範囲（各信号中の円内）だと仮定する。ただし，α＞０，また，多くの場合α≦１．０である。このとき，
2006253839.tif 000013
の条件が成り立つ範囲では，フィルタ出力が十分強く，情報の確度が高いために，同期コードの情報を読み取ることができる。この結果，ＣＰＵ（相関演算処理部３２０ｅ）は，回転によるズレの影響を受けることなく，同期コードの相関絶対値｜Ｒ（ｘ，ｙ）｜を求めることができる。
【０１８５】
前述したように，同期コードは２次元である。このため，図２３に示したように，同期コードの中心から最も離れた位置にある信号は４隅の信号となり，中心の信号より若干遠くに位置する。この場合，４隅の信号の読み取り位置と実際の信号の中心とのズレは，次の式（８）で表すことができる。
2006253839.tif 000014
【０１８６】
上述したように，フィルタ出力値が十分大きい範囲を，フィルタの中心から，αｐ／２の範囲（各信号の円内）とすると，
2006253839.tif 000015
の条件が成り立つ範囲では，フィルタ出力が十分強く，情報の確度が高いために，同期コードの情報を読み取ることができる。
【０１８７】
この結果，ＣＰＵ（相関演算処理部３２０ｅ）は，回転によるズレの影響を受けることなく，同期コードの相関絶対値｜Ｒ（ｘ，ｙ）｜を求めることができる。
【０１８８】
上記（８）式を逆算すると，以下の式（９）が算出される。よって，画像の回転角θが式（９）を満たす範囲では，同期コードの情報抽出に画像の回転がほとんど影響を及ぼさない。
2006253839.tif 000016
【０１８９】
上記式（９）のαに「０．８」，Ｎに「１５」（同期コードが１５画素×１５画素（１５信号×１５信号）であることを示す）を代入すると，回転角θの最大値は約２．３度となる。すなわち，約２．３度の画像傾きは１５×１５信号サイズの同期コード抽出にほとんど影響を及ぼさないことが分かる。なお，αの値は，印刷環境やスキャン環境によって左右されるパラメータであり，実用上，印刷環境やスキャン環境を想定し実用上十分なフィルタ出力値が得られる値でなければならない。
【０１９０】
たとえば，回転角θ＝３．２度の場合，同期コード１５信号×１５信号（１５画素×１５画素）のうち，中心の１１信号×１１信号は，ほとんど誤りなく検出される。また，回転角θ＝４度の場合，同期コード１５信号×１５信号のうち，中心の９信号×９信号は，ほとんど誤りなく検出される。これは，同期コードに１５ビットの最長符号等を用いた場合，回転角を検出するために十分な長さといえる。以上の理由から，以下の説明において，ＣＰＵ（相関演算処理部３２０ｅ）は，画像の回転を意識せずに２次元相関演算を行う。
【０１９１】
ここで，２次元相関演算の同期コードとしては，同期コードとの自己相関絶対値が，同期コードとそれ以外の系列との相関絶対値よりも大きくなるコード（符号列）が使用される。自己相関絶対値は，通常，最大値となる。しかし，印刷された同期コードが，微小に回転してスキャンされると，スキャンされた同期コードの一部（たとえば，周辺部）が，本来の同期コードと異なるため，本来の同期コードのまま完全に読み取ることができず，一部誤った同期コードとして検出（すなわち，自己相関絶対値は最大値より小さい値として検出）されてしまう。
【０１９２】
本実施形態では，こうした一部誤った同期コードとの相関演算により求められる自己相関絶対値であっても，同期コードとそれ以外の系列（元々まったく異なっているコードや位相がずれたコード）との相関演算により求められる相関絶対値よりも大きくなる系列パターンを使用する。これにより，同期コードをさらに精度よく検出することができる。
【０１９３】
したがって，画像が大きく回転した場合にも同期コードを精度よく検出するためには，同期コードの自己相関絶対値が，同期コードとそれ以外の系列との相関絶対値よりも「十分に」大きいコードを使用することが好ましい。
【０１９４】
なお，同期コードの自己相関絶対値には，同期コード自身をそのまま自己相関して求められる値，同期コードを反転したコードと同期コード自身とを相関して求められる値，および，同期コードを反転したコード同士をそのまま自己相関して求められる値が含まれる。
【０１９５】
このような性質を持つ同期コードを用いて，ＣＰＵは，図７のステップＳ３０１〜ステップＳ３０３の処理後，画像の回転を意識せずに，ステップＳ３０４の信号検出処理を実行する。具体的には，ＣＰＵ（フィルタ処理部３２０ｂ）は，図２４のステップＳ３０４ａにて，前述したフィルタ演算処理を実行する。つぎに，ＣＰＵ（相関演算処理部３２０ｅ）は，ステップＳ３０４ｄにて２次元相関演算処理を実行する。
【０１９６】
たとえば，図２０に示したように複数の同期コードが均等に画像に埋め込まれている場合，フィルタ演算処理の結果は図２５の左側のようになり，２次元相関演算の結果は図２５の右側のようになる。２次元相関演算の結果のうち，黒い部分は相関絶対値の高い部分を示し，グレーの部分は低い部分を示している。このことから，相関値が高い位置に，同期コードが埋め込まれていることがわかる。これを利用して，ＣＰＵ（回転角検出部３２０ｄ）は，この２次元相関演算の結果から同期コードの位置を検出する。
【０１９７】
図２５に示したように，検出された複数の同期コードの位置は，画像が傾いている角度と同じ角度だけ傾いている。そこで，ＣＰＵ（回転角検出部３２０ｄ）は，ステップＳ３０４ｂの回転角検出処理にて，２次元相関演算処理の結果から，複数の同期コードの位置を検出する。そして，ＣＰＵ（回転角検出部３２０ｄ）は，複数の同期コードの位置から画像の傾き角度（回転角θ）を求める。
【０１９８】
ここで，２次元相関演算処理の結果から，同期コードの位置を検出する処理について詳細に説明する。ＣＰＵ（回転角検出部３２０ｄ）は，２次元相関演算結果の中から最も相関絶対値の大きい同期コード位置を検索初期値とし，図２６に示したように，左右Ｂｗ，上下Ｂｈだけ離れた部分に対して，それぞれ，所定の探索範囲内での相関絶対値の最大値を求め，そこを隣接する同期コードの位置とする。
【０１９９】
たとえば，図２６に示したように，基準となる同期コードの位置を（ｘ１，ｙ１）とすると，その位置から右方向に隣接する同期コードを検索する場合，ＣＰＵは，右方向にＢｗだけ離れた部分を中心として，所定の探索範囲だけ探索する。このとき，所定の探索範囲は，図２６の探索ウィンドウに示したように，ｘ方向にｗ，ｙ方向にｈとなる。すなわち，ｘ方向の探索範囲は，ｘ１＋Ｂｗ−（ｗ／２）＜ｘ＜ｘ１＋Ｂｗ＋（ｗ／２）となる。また，ｙ方向の探索範囲は，ｙ１−（ｈ／２）＜ｙ＜ｙ１＋（ｈ／２）となる。
【０２００】
また，基準となる同期コードの位置から上方向に隣接する同期コードを検索する場合，ＣＰＵは，上方向にＢｈだけ離れた部分を中心として，上記所定の探索範囲だけ探索する。すなわち，ｘ方向の探索範囲は，ｘ１−（ｗ／２）＜ｘ＜ｘ１＋（ｗ／２）となる。ｙ方向の探索範囲は，ｙ１＋Ｂｈ−（ｈ／２）＜ｙ＜ｙ１＋Ｂｈ＋（ｈ／２）となる。
【０２０１】
このようにして，所定の探索範囲で最大となる絶対相関値の位置に基づいて右方向に隣接した同期コードおよび上方向に隣接した同期コードが求められる。そして，以上の探索を繰り返すことにより全体の同期コードの位置が求められる。
【０２０２】
以上のようにして，すべての同期コードの位置を決定した後，ＣＰＵは，この同期コードの位置に基づいて画像の回転方向と回転角とを計算する。たとえば，埋め込まれた同期コードのうち，左右に隣接するいずれか２個の同期コードの位置を，図２７に示した座標（ｘ１，ｙ１）および座標（ｘ２，ｙ２）と検出した場合，ＣＰＵは，画像の回転角θを次の式（１０）を用いて求める。
2006253839.tif 000017
【０２０３】
この結果，画像の回転角θが，予め定められた範囲を超えない場合，ＣＰＵ（回転角検出部３２０ｄ）は，図２４のステップＳ３０４ｅにて「Ｙｅｓ」と判定して，信号処理を終了する。一方，画像の回転角θが，予め定められた範囲を超える場合，ＣＰＵ（回転角検出部３２０ｄ）は，ステップＳ３０４ｅにて「Ｎｏ」と判定して，ステップＳ３０４ｆに進んで，求められた回転角θを用いて画像をずれた方向と反対方向に回転することにより，画像の回転方向のずれを補正する。
【０２０４】
その後，ＣＰＵは，再びステップＳ３０４ａに戻り，ステップＳ３０４ｅにて「Ｙｅｓ」と判定されるまで，補正後の画像を用いて，ステップＳ３０４ａ，ステップＳ３０４ｄ，ステップＳ３０４ｂ，ステップＳ３０４ｅおよびステップＳ３０４ｆの処理を繰り返す。
【０２０５】
なお，ステップＳ３０４ｅにて用いられる予め定められた範囲の一例としては，±０．１度が挙げられる。すなわち，画像の回転角θが±０．１度の範囲内である場合は，ＣＰＵは，画像回転処理を行わずに処理を終了し，画像の回転角θが±０．１度を超える場合のみ画像回転処理を行うようにしてもよい。
【０２０６】
本実施形態によれば，画像上の文字や罫線を用いることなく，電子透かしの地紋の信号パターンのみを用いて画像の数度程度の回転を補正することができる。これにより，ＣＡＤや斜め罫線の多い画像や，文字や罫線の極端に少ない画像など，様々なタイプの電子文書に対しても，これらの文書に埋め込まれた電子透かしの情報を確実に検出することができる。
【０２０７】
＜Ｃ．９０度以上の入力画像の回転方向を検出する場合＞
前述したように，（Ａ）数度以上９０度以下の入力画像の回転角を検出する場合，（Ｂ）数度程度の入力画像の回転角を検出する場合では，電子透かしの埋め込まれている画像が９０度や１８０度，２７０度等に回転しているとき（すなわち，画像が９０度より大きく傾いているとき），回転角を検出することができなった。
【０２０８】
そこで，以下の実施形態では，画像に埋め込まれた，同期コードを含む透かし情報に対して，４つの２次元ビットパターンとの相関をそれぞれ演算することにより，入力された画像が９０度より大きく傾いているときの画像の回転方向を検出可能な透かし情報処理装置１０について説明する。
【０２０９】
（第４実施形態）
まず，第４実施形態について説明する。本実施形態にかかる透かし情報処理装置１０では，ＰＮ符号について正順と逆順との相関絶対値をそれぞれ求めることにより，その相関絶対値の大小関係から９０度単位の画像の回転方向が検出される。以下にその検出方法を説明する。
【０２１０】
（透かし情報埋め込み装置１００の動作）
本実施形態では，図１３に示したように，同期コードには，１次元のＰＮ符号系列を２次元に拡張した２次元ＰＮ符号を用いる。
【０２１１】
ＣＰＵ（透かし入り文書画像合成部１３０）は，この２次元に拡張したＰＮ符号からなる同期コードを画像に埋め込む。同期コード自体は信号パターンの集合で構成され，画像に通常埋め込むディジタル情報と同じ方法で，信号パターンに変換され埋め込まれる。
【０２１２】
本実施形態では，埋め込まれる同期コードの数は，図２８に示したように，複数であっても単数であってもよい。なお，同期コードを信号位置の同期に使用する場合，同期コードの数を増やすほど同期しやすくなり（画像を補正しやすくなり），画像の変形（たとえば，画像が印刷された紙の汚れやしわ等）に対する耐性が高くなる。
【０２１３】
また，埋め込み時は，たとえば１つの信号パターンが１ビットの情報を表す場合は，図２８に示したように，そのまま「０」の情報を示す信号パターンと情報１を示す信号パターンの組み合わせで埋め込んでもよい。また，１信号で複数ビットを表す場合（たとえば，信号パターンが２ｎ個ある場合，１個の信号パターンでｎビットの情報を表現できる）は，図２に示したように，複数ビット中の１ビットを同期コードに割り当て，その他のビットを情報埋め込みに使用してもよい。
【０２１４】
前述したように，この１次元のＰＮ符号には，符号を前後逆順に並べた符号との相関が十分低い符号系列が用いられる。すなわち，ＰＮ符号のビットパターンが正順方向に配列されたパターンか，あるいは，逆順方向に配列されたパターンかわからないＰＮ符号に対して，正順方向に配列されたビットパターンおよび逆順方向に配列されたビットパターンとでそれぞれ相関を演算する。これにより，正順方向の相関絶対値および逆順方向の相関絶対値がそれぞれ求められる。相関演算では，図２９に示したように，相関の高い方向の相関絶対値が大きくなる。よって，相関絶対値の大小関係を比較することにより，より大きい相関絶対値が求められた方向に配列されたビットパターンをＰＮ符号として特定することができる。
【０２１５】
また，同期コードは，全ビット反転した場合でも相関の絶対値は変わらず，全ビット反転する場合，または，全ビットしない場合で「０」または「１」の情報を表現する。
【０２１６】
（透かし情報検出装置３００の動作）
本実施形態にかかる透かし情報検出装置３００の動作について説明する。図３０に，本実施形態においてＣＰＵ（透かし検出部３２０）が実行する信号検出処理ルーチンを示したフローチャートを示す。
【０２１７】
ステップＳ３０４ａのフィルタ演算処理後，ＣＰＵ（相関演算処理部３２０ｅ）は，ステップ３０４ｄの２次元相関演算処理にて，フィルタ出力値シーケンスに対して，埋め込み時に使用したＰＮ符号の正順および逆順のＰＮ符号との相関値を計算する。なお，フィルタ出力値が１信号パターンにつき多ビットで得られる場合は，埋め込みに使用したビットプレーンを相関演算に使用する。
【０２１８】
相関演算処理の入力値は，フィルタＡ，フィルタＢの２種類のフィルタを用いた場合，次のようになる。たとえばフィルタ出力値Ｆ（Ａ，ｘ，ｙ）がフィルタ出力値Ｆ（Ｂ，ｘ，ｙ）以上である場合，相関演算処理の入力値は，Ｆ（Ａ，ｘ，ｙ）となる。また，フィルタ出力値Ｆ（Ａ，ｘ，ｙ）がフィルタ出力値Ｆ（Ｂ，ｘ，ｙ）より小さい場合，入力値は，−Ｆ（Ｂ，ｘ，ｙ）となる。
【０２１９】
フィルタ結果内に存在する信号の間隔がｐ（図１７を参照）である場合，相関演算は，フィルタ結果内のｐだけ離れている点の集合単位で行う。たとえば，Ｎビットの同期コードとの相関演算をとる場合，使用するフィルタ出力値は，｛Ｆ（Ｍｘ，ｙ，ｘ，ｙ），Ｆ（Ｍｘ＋ｐ，ｙ，ｘ＋ｐ，ｙ），Ｆ（Ｍｘ＋２ｐ，ｙ，ｘ＋２ｐ，ｙ），・・・，Ｆ（Ｍｘ＋Ｎｐ，ｙ，ｘ＋Ｎｐ，ｙ）｝となる。たとえば，１つの信号を１８画素で生成し，同じ解像度で印刷・スキャンした場合，１つのシンボルは入力画像上で１８画素となる。
【０２２０】
これをこのまま間引き無しで１画素づつ，ずらしながらフィルタ処理を行うとフィルタ処理結果内の信号間隔ｐ＝１８となる。相関演算をこの間隔ｐで行うことにより，フィルタ出力値のピークを探す同期処理を行わずに相関演算処理を行うことができ，また，ピーク探索の同期ミスによる同期コードの欠落を防ぐことができる。
【０２２１】
以上の２次元相関演算を式にまとめると，位置（ｘ，ｙ）での相関値Ｒ（ｘ，ｙ）は，式（１１）のとおりとなる。
2006253839.tif 000018
【０２２２】
ただし，
2006253839.tif 000019
ｐ：フィルタ結果内の信号間隔
Ｍｘ＋ｐｉ，ｙ＋ｐｊ：位置（ｘ＋ｐｉ，ｙ＋ｐｊ）で最もフィルタ出力値の高かったフィルタ
Ｆ（Ｍｘ＋ｐｉ，ｙ＋ｐｊ，ｘ＋ｐｉ，ｙ＋ｐｊ）：位置（ｘ＋ｐｉ，ｙ＋ｐｊ）で最もフィルタ出力値の高かったフィルタの出力値
2006253839.tif 000020
【０２２３】
前述したように，相関値の演算は，フィルタ出力結果を１〜数ドットづつずらしながら相関演算を行う（図１８および図１９参照）。２次元の相関演算方法は，この演算を構成する各１次元の相関演算を式（４）を用いて逐次計算してもよいし，式（１１）を用いて一度に計算してもよい。
【０２２４】
２次元相関演算は，水平方向および垂直方向のそれぞれで正順方向および逆順方向の合計４パターン，すなわち，（水平方向，垂直方向）＝（正順，正順），（正順，逆順），（逆順，正順），（逆順，逆順）の４パターンで相関演算が行われる。
【０２２５】
Ｎビットの最長符号を２次元に拡張したＮ×Ｎサイズの同期コードの場合，位相が完全に一致する場合は相関絶対値｜Ｒ（ｘ，ｙ）｜＝１をとり，水平／垂直共にまったく一致しない場合は相関絶対値｜Ｒ（ｘ，ｙ）｜＝１／Ｎ２をとる。このため，透かし検出部３２０によって得られたフィルタ出力値のうち，実際に同期コードと一致した順序の部分のみ相関絶対値が高くなる。すなわち，図２９に示したように，同じ順序（正順と正順，逆順と逆順）は，相関絶対値が高くなる。また，符号を反転したものは反転しないものと同じ結果となる。すなわち，正順と反転した正順，および，逆順と反転した逆順は，相関絶対値が高くなり，逆順と反転した正順，および，正順と反転した逆順は，相関絶対値が低くなる。
【０２２６】
たとえば，フィルタ出力値シーケンスが逆順方向に向いている場合，逆順のＰＮ符号が同期コードと一致した場合の相関絶対値が最も高くなる。実際の相関絶対値はノイズによって上下するが，同期コードと一致した部分が，他の部分よりも相関絶対値が高くなる場合が多い。
【０２２７】
このようにして，２次元相関演算処理により相関絶対値が得られた後，ＣＰＵ（回転角検出部３２０ｄ）は，図３０のステップＳ３０４ｂに進んで，回転角検出処理を実行する。具体的には，ＣＰＵは，同期コードに使われているＰＮ符号の正順と逆順の相関関係の大小により，画像の回転角による系列の方向と正順／逆順の相関の大小との関係に基づいて回転角の検出を行う。
【０２２８】
図３１には，回転した同期コードと回転方向との関係が示されている。「０度」に回転した（つまり回転していない）同期コードを第１の２次元ビットパターンとすると，第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターン（すなわち，逆順のビットパターン）からなる第２の２次元ビットパターンは，「９０度」に回転した同期コードを示す。また，第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンおよび垂直方向に配列された１次元ビットパターンの順序が逆転したビットパターンからなる第３の２次元ビットパターンは，「１８０度」に回転した同期コードを示す。また，第１の２次元ビットパターンに対して，垂直方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第４の２次元ビットパターンは，「２７０度」に回転した同期コードを示す。
【０２２９】
記憶部３２０ａには，第１の２次元ビットパターン，第２の２次元ビットパターン，第３の２次元ビットパターンおよび第４の２次元ビットパターンにそれぞれ対応する固有の回転角（０度，９０度，１８０度，２７０度）を各ビットパターンに関連付けて記憶しておく。
【０２３０】
回転方向の検出処理では，相関絶対値が大きい値を持つ方が，水平方向，垂直方向ともに正順である場合，同期コードは第１の２次元ビットパターンであると判断される。これにより，第１の２次元ビットパターンに関連付けて記憶部３２０ａに記憶された固有の回転角から，入力画像の回転角は０度であると検出される。
【０２３１】
なお，水平方向，垂直方向ともに正順である場合とは，画像の回転に伴って回転した同期コード（この場合は回転角は０度なので同期コードは回転していない）に対して正順方向に配列されたＰＮ符号Ａを水平方向に走査したときに得られる相関絶対値（の最大値）が，この同期コードに対して，逆順方向に配列されたＰＮ符号Ａを水平方向に走査したときに得られる相関絶対値（の最大値）より大きく，かつ，同期コードに対して正順方向に配列されたＰＮ符号Ａを垂直方向に走査したときに得られる相関絶対値（の最大値）が，この同期コードに対して，逆順方向に配列されたＰＮ符号Ａを垂直方向に走査したときに得られる相関絶対値（の最大値）より大きい場合をいう。
【０２３２】
同様にして，水平方向が逆順，垂直方向が正順（＝正順の反転）である場合，同期コードは第２の２次元ビットパターンであると判断され，回転角は９０度（すなわち，画像の回転方向は時計回りに９０度）であると判断される。ここで，水平方向が逆順，垂直方向が正順である場合とは，回転した同期コードとＰＮ符号Ａの逆順との水平方向の相関絶対値が，同期コードとＰＮ符号Ａの正順との水平方向の相関絶対値より大きく，かつ，同期コードとＰＮ符号Ａの正順（＝ＰＮ符号Ａの正順の反転）との垂直方向の相関絶対値が，同期コードとＰＮ符号Ａの逆順との垂直方向の相関絶対値よりも大きい場合をいう。
【０２３３】
また，水平方向，垂直方向ともに逆順（＝逆順の反転）である場合，同期コードは第３の２次元ビットパターンであると判断され，回転角は１８０度（すなわち，画像の回転方向は時計回りに１８０度）であると判断される。ここで，水平方向，垂直方向ともに逆順である場合とは，回転した同期コードとＰＮ符号Ａの逆順（＝ＰＮ符号Ａの逆順の反転）との水平方向の相関絶対値が，同期コードとＰＮ符号Ａの正順との水平方向の相関絶対値より大きく，かつ，同期コードとＰＮ符号Ａの逆順（＝ＰＮ符号Ａの逆順の反転）との垂直方向の相関絶対値が，同期コードとＰＮ符号Ａの正順との垂直方向の相関絶対値よりも大きい場合をいう。
【０２３４】
さらに，水平方向が正順（＝正順の反転），垂直方向が逆順である場合，同期コードは第４の２次元ビットパターンであると判断され，回転角は２７０度（すなわち，画像の回転方向は時計回りに２７０度）であると判断される。ここで，水平方向が正順，垂直方向が逆順である場合とは，回転した同期コードとＰＮ符号Ａの正順（＝ＰＮ符号Ａの正順の反転）との水平方向の相関絶対値が，同期コードとＰＮ符号Ａの逆順との水平方向の相関絶対値より大きく，かつ，同期コードとＰＮ符号Ａの逆順（＝ＰＮ符号Ａの逆順の反転）との垂直方向の相関絶対値が，同期コードとＰＮ符号Ａの正順との垂直方向の相関絶対値よりも大きい場合をいう。
【０２３５】
相関絶対値のピークの箇所は，同期コードが埋め込まれた位置に該当するため，情報の同期に相関絶対値のピーク位置を使用してもよい。たとえば，同期コードを図２０のように配置した場合，相関絶対値によって同期コードの位置が分かるので，同期コードの相関絶対値がピークとなる同期コード位置を中心として，その周囲Ｂｗ×Ｂｈの情報の抽出を行えば，画像がずれていても情報を精度よく取得することができる。
【０２３６】
このようにして，図３０のステップＳ３０４ｂの回転角検出処理により回転方向（９０度単位の回転角）が得られた後，ＣＰＵ（回転角検出部３２０ｄ）は，ステップＳ３０４ｃに進んで，得られた回転角を用いてフィルタ出力回転処理を実行することにより，正しい順序の（ずれのない）画像を得る。
【０２３７】
本実施形態によれば，この１次元のＰＮ符号系列を２次元に拡張した２次元ＰＮ符号を用いることにより，水平方向および垂直方向のそれぞれにて正順か逆順かが検出される。これにより，正順または逆順の組み合わせにより９０度単位の画像の回転方向を検出することができる。この結果，透かし情報に基づいて９０度単位の画像の回転を補正することができる。また，フィルタ出力値を相関演算に使用することにより，フィルタ出力値の低い（信号のない）部分での同期コードの誤検出を防ぐことができる。
【０２３８】
（第５実施形態）
次に，第５実施形態について説明する。本実施形態の透かし検出部３２０では，正順方向または逆順方向のいずれか一方の相関演算処理において，水平方向および垂直方向の両方の演算が実行され，正順方向または逆順方向のいずれか他方の相関演算処理において，水平方向もしくは垂直方向のどちらか片側の演算のみが実行される点において，正順方向および逆順方向の相関演算処理において，水平方向および垂直方向の両方の相関演算が実行される第４実施形態の透かし検出部３２０と動作上相異する。以下では，この相違点を中心に説明する。
【０２３９】
（透かし検出部３２０の動作）
本実施形態にかかる透かし検出部３２０の動作について説明する。本実施形態では，フィルタ処理によって得られたフィルタ出力値シーケンスに対して，埋め込み時に使用したＰＮ符号の正順と逆順のＰＮ符号との相関値を計算する。
【０２４０】
本実施形態では，透かし検出部３２０により実行される信号検出処理（図７のステップＳ３０４）において，図３０のステップＳ３０４ａのフィルタ演算処理が実行された後，ＣＰＵ（相関演算処理部３２０ｅ）は，水平方向および垂直方向の両方において正順方向の相関演算処理を実行する。しかし，ＣＰＵ（相関演算処理部３２０ｅ）は，逆順方向からの相関演算処理については，水平方向のみ実施する。
【０２４１】
相関値の演算は，フィルタ出力結果を１ドットづつずらしながら行われる。図１８および図１９に示したように，２次元の相関演算方法は，この演算を構成する各１次元の相関演算を式（４）を用いて逐次計算してもよいし，式（１１）を用いて一度に計算してもよい。
【０２４２】
本実施形態では，水平方向のみ正順方向および逆順方向の相関演算が行われる。すなわち，相関演算は，水平方向のみ正順および逆順の合計で２パターンの２次元相関演算を行う。具体的には，水平方向および垂直方向が（正順，正順），（逆順，正順）の２パターンを用いる。
【０２４３】
このようにして，２次元相関演算処理により相関絶対値が得られた後，ＣＰＵ（回転角検出部３２０ｄ）は，図３０のステップＳ３０４ｂにて回転角検出処理を実行する。回転角検出処理では，図３２に示したように，同期コードに使われているＰＮ符号の水平方向の正順と逆順の相関関係の大小と，２次元相関演算結果の相関値の正負により，画像の９０単位の回転角が検出される。
【０２４４】
すなわち，ＣＰＵは，回転角検出処理にて，水平方向の走査により求められた正順方向及び逆順方向の相関絶対値の大小を比較するとともに，２次元相関絶対値と水平方向の相関絶対値の平均値とを比較する。
【０２４５】
つぎに，ＣＰＵは，比較した結果によって，第１の２次元ビットパターン，第２の２次元ビットパターン，第３の２次元ビットパターンおよび第４の２次元ビットパターンのうちから２次元ビットパターンを一つ特定する。ついで，ＣＰＵは，特定された２次元ビットパターンに関連付けて記憶部３２０ａに記憶されている固有の回転角から入力画像の回転角を求める。
【０２４６】
たとえば，ＣＰＵは，水平方向が正順であれば，図３２に示したように，回転角が０度または２７０度であると検出し，逆順であれば９０度または１８０度であると検出する。また，水平方向の相関絶対値を同期コードの高さ分平均した値が，２次元相関演算の相関絶対値に近い値の場合，０度または９０度と検出し，２次元相関演算の相関絶対値が，水平方向の相関絶対値を同期コードの高さ分平均した値よりかなり小さい値の場合（半分以下など），１８０度または２７０度と検出する。ＣＰＵは，これら両方の条件を使用することにより，９０度単位での画像の回転角を検出する。
【０２４７】
なお，水平方向の相関絶対値（すなわち，１次元相関絶対値：正順方向の相関絶対値と逆順方向の相関絶対値との大きい方の相関絶対値を１次元相関絶対値とする）を同期コードの高さ分平均した値が，２次元相関演算の相関絶対値に近い値か否かは，水平方向の相関絶対値を同期コードの高さ分平均した値と２次元相関演算の相関絶対値との差が，数％（たとえば，５％程度）以内であれば，これらの値は近い値と判断するようにしてもよい。また，２次元相関演算の相関絶対値と水平方向の相関絶対値を同期コードの高さ分平均した値との差が半分以下であれば，２次元相関演算の相関絶対値が水平方向の相関絶対値を同期コードの高さ分平均した値よりかなり小さい値であると判断するようにしてもよい。
【０２４８】
本実施形態によれば，平均値は，系列の方向に依存せず，常に平均値を出力する。２次元相関絶対値は，系列が一致した場合は平均を出力するが，不一致のときには出力を弱める（すなわち，その値が小さくなる）。この２次元相関絶対値の出力の弱まり具合を，平均値と比較して検出することにより，系列パターンの一致度（向きの一致）が判定される。
【０２４９】
これにより，処理コストが高い相関演算を，垂直方向で1方向に減らすことができる。この結果，相関演算処理にかかる負荷を，さらに軽減することができる。これにより，様々な角度の画像に対して透かし情報を抽出する従来の処理よりも著しく高速に回転角を検出することができる。この結果，処理全体の効率化を図ることができる。また，演算コストを半減することができる。
【０２５０】
なお，本実施形態にかかる相関演算処理部３２０ｅは，正順方向に配列されたＰＮ符号に対しては，水平方向の相関絶対値および垂直方向の相関絶対値をそれぞれ求め，逆順方向に配列されたＰＮ符号に対しては，水平方向の相関絶対値のみを求めた。
【０２５１】
しかし，本実施形態はこれに限られず，正順方向または逆順方向のいずれかにおいて，水平方向および垂直方向の両方の相関絶対値が求められ，正順方向または逆順方向のいずれか他方において，水平方向もしくは垂直方向のどちらか片側の相関絶対値が求められればよい。すなわち，上記相関演算では，水平方向および垂直方向が（正順，正順），（逆順，正順）のパターンに限られず，（正順，逆順），（逆順，逆順）の２パターンが用いられてもよいし，（正順，正順），（正順，逆順）の２パターンが用いられてもよいし，（逆順，正順），（逆順，逆順）の２パターンが用いられてもよい。
【０２５２】
（第６実施形態）
次に，第６実施形態について説明する。本実施形態にかかる透かし情報処理装置１０では，相関演算処理部３２０ｅにより実行される相関演算処理をさらに単純化した点において，第５実施形態と異なる。以下では，この相違点を中心に説明する。
【０２５３】
（透かし情報検出装置３００の動作）
本実施形態にかかる透かし情報検出装置３００の動作について説明する。本実施形態では，フィルタ出力値シーケンスに対して，埋め込み時に使用したＰＮ符号の正順と逆順のＰＮ符号との相関値を計算する。
【０２５４】
本実施形態では，ＣＰＵ（相関演算処理部３２０ｅ）は，図３０に示したステップＳ３０４ｄの２次元相関演算処理にて，フィルタ演算処理（式（２））によって得られたフィルタ出力値シーケンスに対して，埋め込み時に使用したＰＮ符号の正順と逆順のＰＮ符号との相関値を計算する。フィルタ出力値が１信号パターンにつき多ビットで得られる場合は，埋め込みに使用したビットプレーンを相関演算に使用する。
【０２５５】
本実施形態では，相関演算処理への入力は，フィルタＡ，フィルタＢの２種類のフィルタを用いた場合，次のようになる。たとえば，フィルタ出力値Ｆ（Ａ，ｘ，ｙ）がＦ（Ｂ，ｘ，ｙ）以上の場合，「１」，Ｆ（Ａ，ｘ，ｙ）がＦ（Ｂ，ｘ，ｙ）より小さい場合，「−１」を入力とすることができる。
【０２５６】
以上の２次元相関演算を式にまとめると，位置（ｘ，ｙ）での相関値Ｒ（ｘ，ｙ）は，式（１２）のとおりとなる。
2006253839.tif 000021
【０２５７】
ただし，
2006253839.tif 000022
ｐ：フィルタ結果内の信号間隔
Ｍｘ＋ｐｉ，ｙ＋ｐｊ：位置（ｘ＋ｐｉ，ｙ＋ｐｊ）で最もフィルタ出力値の高かったフィルタ
2006253839.tif 000023
【０２５８】
このようにして，２次元相関演算処理により相関絶対値が得られた後，ＣＰＵ（回転角検出部３２０ｄ）は，図３０のステップ３０４ｂに進んで，前述したように，回転角検出処理を実行し，さらに，ステップ３０４ｃに進んで，得られた回転角θにより入力画像を回転方向の逆方向に回転して，正しい順序の（ずれのない）画像を得る。
【０２５９】
本実施形態によれば，この重み付けの代わりにフィルタ処理の結果に基づき定められる固定値（すなわち，「１」または「−１」）を用いて相関が演算される（式（１２）参照）。これにより，フィルタ処理の結果出力された各フィルタ出力値に対応して変動する重みにより相関の演算に重み付けをする（式（１１）参照）第５実施形態に比べ相関演算処理がさらに単純になる。この結果，処理全体にかかる負荷を，さらに少なくすることができる。
【０２６０】
＜Ｄ．検出された回転角を利用して画像を補正＞
（第７実施形態）
以上に説明したように，従来，透かし情報は次のような（１）〜（７）に示す方法で画像から抽出されていた。
（１）透かし情報が埋め込まれた印刷文書２２０をスキャンし，スキャン画像（入力画像）を得る。ただし，既に読み込まれた画像から透かし情報を検出する場合は不要である。
（２）スキャン画像全体に透かしの各信号パターンに反応するフィルタリング処理をそれぞれ行う。（図１６）
（３）透かし信号パターンの間隔で強く反応したフィルタのピーク値を探索する。探索は，隣接する信号パターン位置から埋め込み時に使用した信号パターンの間隔ｐ分離れた箇所を中心に行う。この探索をフィルタ処理結果全体に対して行う。
（４）各フィルタから出力されるピーク値の大小を比較することで信号パターンを特定し，信号パターンに関連づけられている情報（たとえば，「０」または「１」のビット値）を抽出する。
（５）得られた情報から，情報の埋め込まれている有効範囲を特定する。
（６）埋め込み側と同様のフォーマットで情報を結合し，全体の埋め込み情報を取得する。
（７）埋め込み情報全体から多数決演算を行うことで誤った情報を訂正し，正しい情報を取得する。
【０２６１】
このような過程において，スキャン画像に傾きがある場合，従来の装置は，スキャン画像中の文字列や罫線などの情報を用いて画像の傾きを補正した後，透かし情報を検出していた。
【０２６２】
しかし，以上に説明した各実施形態では，地紋のみから画像の傾きが検出される。これにより，各実施形態を組み合わせることによって，スキャン画像中の任意の位置における透かしの地紋パターンから３６０度任意方向の回転角の検出が可能である。
【０２６３】
しかしながら，各実施形態の回転角の検出では，検出に使用するフィルタに対応した方向によりフィルタの精度が決定されるため（たとえば，１０のフィルタにてフィルタ処理する場合，１８度毎の回転角が検出可能），フィルタを適用した角度の中間に信号パターンの角度がある場合，画像の回転角を精度よく検出できなかった。たとえば，第１実施形態では１８度間隔のフィルタを用いて画像の回転角を検出するので，画像の回転角が９度であると，信号パターンの特徴部分が必ずしもフィルタ出力値のピーク値として出力されないため，画像の回転角を精度よく検出できなかった。
【０２６４】
よって，この回転角に基づいて画像を回転補正すると，検出精度がよくないために，補正したにもかかわらず画像に傾きが残る。このため，補正された画像を用いて上記（２）〜（７）の処理をした後，再度，画像の回転角を検出し，検出された回転角に基づいて，再度，画像の回転を補正する場合がある。
【０２６５】
しかしながら，フィルタ処理は透かし情報検出装置３００により実行される情報検出処理の中で最も処理量が多く，ＣＰＵの処理負担が増大するため，できるだけ少ない回数にフィルタ処理を制限する必要がある。
【０２６６】
また，上記いずれの回転角の補正技術も，スキャン画像上に存在する文字などの画素が，全体の５％以下であることを想定しており，スキャン画像上に大量の文字画素があり，大量の信号パターンが文字画素に重なることより欠損してしまう場合には，透かし情報を正しく抽出することができない。
【０２６７】
そこで，本実施形態では，画像の回転のずれを検出する際のＣＰＵの処理負担を低減するとともに，透かし情報上に文字などの画素が大量に存在するために，埋め込まれた透かし信号パターンの多くが画素と重なって欠損してしまう状況においても，透かし信号パターンを正しく検出することにより，埋め込まれた情報を正しく抽出する方法について説明する。
【０２６８】
本実施形態では，透かし情報検出装置３００の透かし検出部３２０の動作のみが第２実施形態と異なる。そこで，透かし検出部３２０の動作のみ説明する。
【０２６９】
透かし検出部３２０は，図３３に示したように，上記第２実施形態の透かし検出部３２０に合成部３２０ｆが追加された機能ブロックを有している。合成部３２０ｆは，回転角検出部３２０ｄにより検出された透かし入り画像の回転角に応じた重みによって，フィルタ処理の結果出力された複数のフィルタ出力値に重み付けを行うことにより複数のフィルタ出力値を合成するようになっている。
【０２７０】
本実施形態にて透かし検出部３２０が用いるフィルタは，図９（ａ）に示したように，第２実施形態と同じ１０種類のフィルタである。
【０２７１】
フィルタＮの角度を（１８×Ｎ）度とし，スキャン画像中の座標（Ｘ，Ｙ）のフィルタ出力値をＦ（Ｎ，Ｘ，Ｙ）とすると，フィルタ出力値Ｆは，前述した式（２）で表すことができる。ただし，式（１）において，ｔａｎ−１（ｕ／ｖ）＝Ｎπ／１０（ｒａｄ）とする。
【０２７２】
ＣＰＵ（フィルタ処理部３２０ｂ）が，上記式（２）を用いてフィルタリングした結果，図９（ｂ）および図９（ｃ）に示したように，強く反応するフィルタ（太い矢印の部分）は，画像の回転角によって変化する。すなわち，前述したように，スキャン画像の回転角をθ（ｒａｄ）とすると，フィルタに強く反応する部分もθだけ傾く。このようにして埋め込まれた信号パターンも回転角θだけ傾いたスキャン画像を１０種類のフィルタによりフィルタ処理した結果を図３４に示す。
【０２７３】
つぎに，このようにして求められた複数のフィルタ処理結果に基づいて，それぞれのフィルタ処理結果に含まれる画像の傾きをそれぞれ取り除きながら，これらのフィルタのフィルタ出力値を合成する方法について，図３５を参照しながら説明する。
【０２７４】
画像の傾きを取り除いて合成した後のフィルタ処理結果（図３５の右側）の左上原点（０，０）に対して，実際のフィルタ処理結果（図３５の左側）の写像の原点を（ｏｘ，ｏｙ）とする。フィルタ出力の回転角θを逆方向に回転させ，合成後のフィルタ出力の回転角が「０」になるようにフィルタ出力値を補正するとき，合成後のフィルタ出力の座標（ｘ，ｙ）は，実際のフィルタ処理結果上では，以下の式（１３）を用いて座標（Ｘ，Ｙ）に写像される。
2006253839.tif 000024
【０２７５】
ＣＰＵ（合成部３２０ｆ）は，この写像前と写像後との位置関係を用いて，図３６の左側の１０種類のフィルタ出力値を図３６の右側の４パターン（信号パターンｓ１〜ｓ４）分のフィルタ出力値へ合成する。その合成方法について，以下に説明する。
【０２７６】
傾きがない画像上に各フィルタを走査させた場合，フィルタの位置が，図２の信号パターンｓ１〜ｓ４のいずれかの信号パターンと完全に一致したとき，そのフィルタ出力値が最も高くなり，その位置からすれるにしたがって低下する。
【０２７７】
ところが，スキャン画像が劣化したり，文字などの画素が重なることにより信号パターンが欠損すると，劣化している部分のフィルタ出力は低下するために，フィルタ出力が雑音（印刷文書２２０の汚れやしわ）よりも低い値となる場合がある（信号パターンが雑音に埋もれる）。
【０２７８】
しかし，信号パターン全体のフィルタ出力が低下するわけではなく，信号パターンの近傍でのフィルタ出力の多くは雑音よりも高い値を示す。たとえば，信号パターンのサイズをＢｗ×Ｂｈとすると，フィルタを画像上を走査する際，フィルタ処理では，水平方向間隔Ｂｗ，垂直方向間隔Ｂｈ毎にそれぞれ隣接する各信号パターンに対するピーク値が出力され，その間はピーク値が出力された位置からの距離に応じて減衰した値が出力される。このフィルタ出力は，異なる信号パターン間の中間付近ではほぼ雑音以下となる。換言すれば，どちらかの信号パターンが，他方の信号パターンよりも十分に近い場合，そのフィルタの出力値は雑音よりも高い値を示す。
【０２７９】
そこで，本実施形態では注目部分近傍の複数のフィルタ出力から，注目部分のフィルタ出力を合成し，信号パターンの劣化や欠損を補償する。たとえば，合成後のフィルタ出力をＦｅ（Ｍ，ｘ，ｙ）（ただし，Ｍ∈｛０，１，２，３｝）としたとき，フィルタ出力値Ｆｅ（ｘ，ｙ）を生成するために参照するフィルタ出力値の範囲（Ｘ±ｓｘ，Ｙ±ｓｙ）を図３６に示す。ＣＰＵ（合成部３２０ｆ）は，この範囲（Ｘ±ｓｘ，Ｙ±ｓｙ）にある１０種類のフィルタ出力値を用いて以下の式（１４）によりフィルタ出力値の合成を行う。
【０２８０】
2006253839.tif 000025
【０２８１】
ここで，たとえば，各回転角の重みＷｒ，距離の重みＷｄは，以下の式（１５）および式（１６）にて定義される。
2006253839.tif 000026
2006253839.tif 000027
【０２８２】
ただし，
2006253839.tif 000028
【０２８３】
これにより，縦横それぞれ±ｓｘ，±ｓｙの範囲にある１０種類のフィルタ出力結果から，距離に応じた重みＷｄと，回転角に応じた重みＷｒにより４つのフィルタ出力結果が合成される。ＣＰＵ（合成部３２０ｆ）は，これを，合成フィルタ出力上のすべての位置（Ｍ，ｘ，ｙ）に対して演算することにより，合成フィルタ出力上のすべての位置におけるフィルタ出力値を求める。フィルタ出力画像全体を使用してフィルタ出力を合成する場合の座標系の取り方の一例を図３７に示す。
【０２８４】
ＣＰＵは，以上のようにして得られた，合成後の４つのフィルタ出力値に対して，ピーク位置を探索し，上述した透かし情報抽出処理にて説明した方法により透かし情報を抽出する。
【０２８５】
本実施形態によれば，フィルタ出力を合成する過程で，注目位置の近傍のフィルタ出力を用いて，最終的なフィルタ出力が推定される。このようにして求められた４つのフィルタ出力結果は，それぞれの信号パターンｓ１，ｓ２，ｓ３，ｓ４に対して最もよく反応するフィルタ出力に相当する。
【０２８６】
これにより，スキャン画像の汚れ（画像自体の劣化）や文字などの画素に対して読みとれなかった部分のフィルタ出力値を補償することができる。これにより，画像自体の劣化や文字などの画素によって劣化したフィルタ出力が情報抽出に及ぼす影響を低減することができる。この結果，透かし情報を精度よく抽出することができる。
【０２８７】
また，本実施形態によれば，画像を回転補正する必要がないので，回転補正のための回転検出時のフィルタ処理量を低減することができる。これにより，処理全体の高速化を図ることができる。
【０２８８】
本実施形態では，このようにして，４種類のフィルタ出力を合成した。しかし，合成後のフィルタ数は，４未満でもよいし４より多くてもよく，１以上のいずれの整数であってもよい。また，合成後のフィルタ数は，検出したい信号パターン数によって決定してもよい。また，画像の回転角の検出に用いるフィルタ処理数は，１０種類である必要はなく，合成後のフィルタ数より多ければよい。
【０２８９】
また，式（１４）は，回転角，距離に応じた重みを適用する一例であり，注目部分のフィルタ出力を得るために複数のフィルタ出力値を合成することができれば，どのような形式でもよい。
【０２９０】
以上，各実施形態の透かし情報処理装置１０によれば，透かし入りの文書が傾いている場合，その傾きを精度よく検出することができる。また，その検出にかかる処理量を低減することができる。さらに，透かし上に文字などの画素が大量に存在し，透かしパターンの多くが欠損してしまう場合でも，透かしを正しく検出し，埋め込まれた情報を正しく抽出することができる。
【０２９１】
上記実施形態において，各部の動作はお互いに関連しており，互いの関連を考慮しながら，一連の動作として置き換えることができる。そして，このように置き換えることにより，方法の発明の実施形態とすることができる。
【０２９２】
また，上記各部の動作を，各部の処理と置き換えることにより，プログラムの実施の形態とすることができる。また，プログラムを，プログラムを記録したコンピュータ読み取り可能な記録媒体に記憶させることで，プログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【０２９３】
したがって，上記透かし情報検出方法の実施形態は，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出プログラムであって，上記透かし入り文書画像を入力する処理と，上記入力した透かし入り文書画像に埋め込まれている信号パターンの種類を予め記憶部に記憶する処理と，上記埋め込まれた種類の信号パターンを特定することができるフィルタを含んだ複数種類のフィルタであって，上記埋め込まれた信号パターンの種類より多い数のフィルタを用いて，上記入力された透かし入り文書画像をそれぞれフィルタ処理する処理と，上記各フィルタ処理の結果に基づいて上記透かし入り文書画像に埋め込まれた信号パターンの種類を特定する処理と，上記記憶部に記憶されている種類の信号パターンにより表される角度に関する情報と上記特定された種類の信号パターンにより表される角度に関する情報との関係から上記透かし入り文書画像の回転角を求める処理と，をコンピュータに実行させる透かし情報検出プログラム，および，この透かし情報検出プログラムを記憶したコンピュータ読み取り可能な記録媒体の実施形態とすることができる。
【０２９４】
また，上記透かし情報検出方法の実施形態は，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを含む透かし画像を埋め込んだ透かし入り文書画像から透かし情報を検出する透かし情報検出プログラムであって，上記透かし入り文書画像を入力する処理と，上記複数種類の信号パターンに対応する複数種類のフィルタを用いて，上記入力された透かし入り文書画像をそれぞれフィルタ処理する処理と，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンに対して相関を演算することにより相関値の絶対値を相関絶対値としてそれぞれ求める処理と，上記求められた複数の相関絶対値に基づいて上記透かし入り文書画像の回転角を求める処理と，をコンピュータに実行させる透かし情報検出プログラム，および，この透かし情報検出プログラムを記憶したコンピュータ読み取り可能な記録媒体の実施形態とすることができる。
【０２９５】
また，上記透かし情報検出プログラムおよびこの透かし情報検出プログラムを記憶したコンピュータ読み取り可能な記録媒体は，上記相関演算処理において，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記特殊な系列パターンを正順方向に配列させた系列パターンおよび上記特殊な系列パターンを逆順方向に配列させた系列パターンを水平方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算するとともに，上記各系列パターンを垂直方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算することによって，相関絶対値をそれぞれ求める処理と，上記求められた複数の相関絶対値の大小を比較することにより上記透かし入り文書画像の回転方向を求める処理と，を含んで構成されていてもよい。
【０２９６】
また，上記透かし情報検出プログラムおよびこの透かし情報検出プログラムを記憶したコンピュータ読み取り可能な記録媒体に用いられる上記特殊な系列パターンは，擬似乱数生成器により生成された１または２以上の１次元のビットパターンを水平方向または垂直方向のいずれかに配列させることにより生成される複数の２次元ビットパターンであって，上記複数の２次元ビットパターンに含まれる任意の第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第２の２次元ビットパターンと，水平方向に配列された１次元ビットパターンおよび垂直方向に配列された１次元ビットパターンの順序が逆転したビットパターンからなる第３の２次元ビットパターンと，垂直方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第４の２次元ビットパターンと，を含み，上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンにそれぞれ対応する固有の回転角を各ビットパターンに関連付けて上記記憶部に記憶する処理と，上記相関演算処理において，上記入力された透かし入り文書画像の所定の範囲に対する上記各フィルタ処理の結果に基づいて，上記上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンのそれぞれの系列パターンを水平方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算するとともに，上記各系列パターンを垂直方向にそれぞれ走査することにより上記各系列パターンに対する相関をそれぞれ演算することによって，相関絶対値をそれぞれ求める処理と，上記水平方向の走査により求められた複数の相関絶対値の大小を比較するとともに，上記垂直方向の走査により求められた複数の相関絶対値の大小を比較し，比較した結果によって上記第１の２次元ビットパターン，上記第２の２次元ビットパターン，上記第３の２次元ビットパターンおよび上記第４の２次元ビットパターンのうちから２次元ビットパターンを一つ特定する処理と，特定された２次元ビットパターンに関連付けて上記記憶部に記憶されている固有の回転角から上記透かし入り文書画像の回転方向を求める処理と，を含んで構成されていてもよい。
【０２９７】
また，上記透かし情報検出プログラムおよびこの透かし情報検出プログラムを記憶したコンピュータ読み取り可能な記録媒体は，上記相関演算処理において，上記特殊な系列パターンを正順方向に配列させた系列パターンおよび上記特殊な系列パターンを逆順方向に配列させた系列パターンを上記透かし入り文書画像の水平方向または垂直方向のいずれか一方に走査することにより上記特殊な系列パターンに対する相関をそれぞれ演算することにより，正順方向の相関絶対値および逆順方向の相関絶対値をそれぞれ求め，求められた正順方向の相関絶対値の平均値および逆順方向の相関絶対値の平均値を比較することにより大きい方の相関絶対値を１次元相関絶対値とし，上記１次相関絶対値を演算するために用いられた系列パターンを上記透かし入り文書画像の水平方向または垂直方向のいずれか他方に走査することにより上記系列パターンに対する相関を演算することによって相関絶対値を求め，求められた相関絶対値と上記１次元相関絶対値とから２次元相関絶対値を算出する処理と，上記２次元相関絶対値と上記１次元相関絶対値の平均値との大小を比較することにより上記透かし入り文書画像の回転方向を求める処理と，を含んで構成されていてもよい。
【０２９８】
また，上記透かし情報検出プログラムおよびこの透かし情報検出プログラムを記憶したコンピュータ読み取り可能な記録媒体は，さらに，上記回転角検出部により検出された透かし入り画像の回転角に対応する重みによって上記フィルタ処理の結果出力された複数のフィルタ出力値に重み付けを行うことにより複数のフィルタ出力値を合成する処理を含んで構成されていてもよい。
【０２９９】
また，上記透かし情報埋め込み方法の実施形態は，画像に埋め込まれた透かし情報を検出させるために文書画像に透かし画像を埋め込む透かし情報埋め込みプログラムであって，文書画像を作成する処理と，所定の異なる角度に関する情報を含んだ複数種類の信号パターンの少なくともいずれかにより形成される特殊な系列パターンを生成する処理と，上記生成された特殊な系列パターンを用いて透かし情報検出装置に入力された透かし入り文書画像の回転角を上記透かし情報検出装置に検出させるために，上記生成された特殊な系列パターンを含んだ透かし画像を作成する処理と，上記作成された文書画像と上記作成された透かし画像とを重ね合わせて透かし入り文書画像を生成する処理と，をコンピュータに実行させる透かし情報埋め込みプログラム，および，この透かし情報埋め込みプログラムを記憶したコンピュータ読み取り可能な記録媒体の実施形態とすることができる。
【０３００】
なお，このプログラムの実施形態およびプログラムを記録したコンピュータ読み取り可能な記録媒体の実施形態における各処理は，コンピュータがプログラムを実行することにより達成される。
【０３０１】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明はかかる例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された範疇内において，各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【０３０２】
たとえば，この１次元のＰＮ符号または１次元のＰＮ符号系列を２次元に拡張した２次元ＰＮ符号は，特殊な系列の一例であり，特殊な系列は，正順の符号および正順を逆の順番に並べた逆順の符号（符号を前後逆順に並べた符号）との相関が十分低い符号系列であればよい。
【０３０３】
たとえば，特殊な系列パターンは，この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列パターンを逆順に並べ替えた系列パターンとの相関絶対値よりも大きい系列であってもよい。また，この特殊な系列パターンは，固定長であることが好ましい。
【０３０４】
また，この特殊な系列パターンの自己相関値の絶対値が，この特殊な系列パターンとこの特殊な系列を所定ビット数だけシフトさせた系列パターンとの相関絶対値よりも大きい系列であってもよい。また，特殊な系列パターンは，擬似乱数生成器により生成された１または２以上の１次元のビットパターンから構成されていてもよい。
【０３０５】
また，特殊な系列パターンは，擬似乱数生成器により生成された１または２以上の１次元のビットパターンを水平方向または垂直方向のいずれかに配列させたビットパターンを組み合わせることにより生成される複数の２次元ビットパターンであってもよい。
【０３０６】
この場合，複数の２次元ビットパターンは，複数の２次元ビットパターンに含まれる任意の第１の２次元ビットパターンに対して，水平方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第２の２次元ビットパターンと，水平方向に配列された１次元ビットパターンおよび垂直方向に配列された１次元ビットパターンの順序が逆転したビットパターンからなる第３の２次元ビットパターンと，垂直方向に配列された１次元ビットパターンの配列の順序が逆転したビットパターンからなる第４の２次元ビットパターンと，を含んでいてもよい。
【０３０７】
また，特殊な系列の水平方向の系列と垂直方向の系列は，異なる系列を使用してもよい。また，特殊な系列の水平方向の系列と垂直方向の系列は，異なる長さの系列を使用してもよい。また，特殊な系列は，ランダムな乱数を２次元に配列させたものでもよい。さらに，特殊な系列は，一次元の特殊な系列を２次元に拡張した符号またはランダムな２次元の符号のいずれかから構成されていてもよい。
【０３０８】
また，ＰＮ符号には，最長符号（Ｍシーケンス），Ｇｏｌｄ符号など，任意の符号列を用いることができる。なお，最長符号とは，シフトレジスタの出力の排他的論理和を帰還させることで発生できる符号系列の中で最長の長さをもつものをいう。ｎ段のシフトレジスタを用いた場合，ｍ系列の（最長）符号長は２ｎ−１となる。Ｇｏｌｄ符号とは，合成符号系列（最長符号）の一例である。合成符号系列の中でもっとも簡単につくることができ，同期のとれた２種類のＭ系列（Ｍシーケンス）の排他的論理和をとることで合成される。
【０３０９】
なお，各実施形態では，白い紙面に黒のインク（単色）で印刷することを前提として説明したが，本発明はこれに限定されず，カラー（多色）で印刷されていても本発明に適用できる。
【産業上の利用可能性】
【０３１０】
本発明は，電子透かしの地紋にある情報のみを用いて，回転角を精度よく検出する透かし情報処理装置および透かし情報検出装置に画像の回転角を検出させることができる電子透かし情報を画像に埋め込む透かし情報埋め込み装置に適用可能である。
【図面の簡単な説明】
【０３１１】
【図１】本発明の第１実施形態の透かし情報処理装置の全体構成図である。
【図２】同実施形態において信号パターンにより情報をビットパターン化する方法を説明する図である。
【図３】同実施形態における透かし検出部の機能を示した機能ブロック図である。
【図４】同実施形態において透かし画像作成部が実行するルーチンを示したフローチャートである。
【図５】同実施形態における信号パターンの一部を示した図である。
【図６】同実施形態における信号パターンのドットパターンにより示される波の伝播方向を基準とした波の波形を示した図である。
【図７】同実施形態において透かし情報検出装置が実行するルーチンを示したフローチャートである。
【図８】同実施形態において透かし情報埋め込み時に使用する信号パターンの角度の一例を示した図である。
【図９】同実施形態において透かし情報検出時に使用する信号パターンの角度の一例を示した図である。
【図１０】同実施形態において信号検出処理の詳細を示した図である。
【図１１】同実施形態においてフィルタ出力値の算出方法を説明する図である。
【図１２】同実施形態において情報を復元し，取り出す方法を説明する図である。
【図１３】本発明の第２実施形態において２次元ＰＮ符号化を説明する図である。
【図１４】同実施形態において透かし検出部の機能を示した機能ブロック図である。
【図１５】同実施形態において同期コードを埋め込んだ画像の例を示した図である。
【図１６】同実施形態において画像のフィルタ処理結果の詳細を示した図である。
【図１７】同実施形態において数度傾いた画像のフィルタ処理結果を示した図である。
【図１８】同実施形態において２次元相関演算方法のうち，水平方向の相関演算を示した図である。
【図１９】同実施形態において２次元相関演算方法のうち，垂直方向の相関演算を示した図である。
【図２０】同実施形態において同期コードの配置例を示した図である。
【図２１】本発明の第３実施形態において同期コードを埋め込んだ画像の例を示した図である。
【図２２】同実施形態において数度傾いた画像をフィルタ処理した結果を示した図である。
【図２３】同実施形態において中心から最も遠い信号で生じるずれを示した図である。
【図２４】同実施形態において信号検出処理の詳細を示した図である。
【図２５】同実施形態においてフィルタ演算処理および２次元相関演算の結果を示した図である。
【図２６】同実施形態において同期コードとの相関のピーク位置の特定方法を説明する図である。
【図２７】同実施形態において隣接する同期コードの位置関係を示した図である。
【図２８】本発明の第４実施形態において同期コードを埋め込んだ画像の例を示した図である。
【図２９】同実施形態において正順と逆順との相関値の関係を示した図である。
【図３０】同実施形態において信号検出処理の詳細を示した図である。
【図３１】同実施形態において画像の回転角における系列の方向と水平方向および垂直方向の相関絶対値の大小を示した図である。
【図３２】本発明の第５実施形態において画像の回転角における系列の方向と水平方向または垂直方向の相関絶対値の大小を示した図である。
【図３３】本発明の第７実施形態における透かし検出部の機能を示した機能ブロック図である。
【図３４】同実施形態において画像の回転角とフィルタ処理の結果を示した図である。
【図３５】同実施形態においてフィルタ出力値の合成結果を示した図である。
【図３６】同実施形態においてある範囲のフィルタ出力値を生成するために参照するフィルタ出力値の範囲を示した図である。
【図３７】フィルタ出力画像全体を使用してフィルタ出力を合成する場合の座標系の取り方の一例を示した図である。
【符号の説明】
【０３１２】
１０        透かし情報処理装置
１００      透かし情報埋め込み装置
１１０      文書画像作成部
１２０      透かし画像作成部
１３０      透かし入り文書画像合成部
１４０      出力部
１５０      系列パターン生成部
３００      透かし情報検出装置
３１０      入力部
３２０      透かし検出部
３２０ａ    記憶部
３２０ｂ    フィルタ処理部
３２０ｃ    信号パターン特定部
３２０ｄ    回転角検出部
３２０ｅ    相関演算処理部
３２０ｆ    合成部
【図１】
2006253839.tif 000029
【図２】
2006253839.tif 000030
【図３】
2006253839.tif 000031
【図４】
2006253839.tif 000032
【図５】
2006253839.tif 000033
【図６】
2006253839.tif 000034
【図７】
2006253839.tif 000035
【図８】
2006253839.tif 000036
【図９】
2006253839.tif 000037
【図１０】
2006253839.tif 000038
【図１１】
2006253839.tif 000039
【図１２】
2006253839.tif 000040
【図１３】
2006253839.tif 000041
【図１４】
2006253839.tif 000042
【図１５】
2006253839.tif 000043
【図１６】
2006253839.tif 000044
【図１７】
2006253839.tif 000045
【図１８】
2006253839.tif 000046
【図１９】
2006253839.tif 000047
【図２０】
2006253839.tif 000048
【図２１】
2006253839.tif 000049
【図２２】
2006253839.tif 000050
【図２３】
2006253839.tif 000051
【図２４】
2006253839.tif 000052
【図２５】
2006253839.tif 000053
【図２６】
2006253839.tif 000054
【図２７】
2006253839.tif 000055
【図２８】
2006253839.tif 000056
【図２９】
2006253839.tif 000057
【図３０】
2006253839.tif 000058
【図３１】
2006253839.tif 000059
【図３２】
2006253839.tif 000060
【図３３】
2006253839.tif 000061
【図３４】
2006253839.tif 000062
【図３５】
2006253839.tif 000063
【図３６】
2006253839.tif 000064
【図３７】
2006253839.tif 000065