(57)【特許請求の範囲】
【請求項１】
入力された電子文書データに情報を埋め込む情報処理装置であって、
前記電子文書データから文書画像を生成する画像生成手段と、
前記生成された文書画像中の各文字画像のレイアウト情報を検出する検出手段と、
前記文書画像の行を選択する選択手段と、
前記選択された行に対応する文字で構成される行が前記電子文書データに存在するかどうかを、前記レイアウト情報を用いて判定する判定手段と、
前記判定手段で、前記選択された行に対応する文字で構成される行が前記電子文書データに存在すると判定された場合に、前記検出されたレイアウト情報に基づいて、前記選択された行の各文字画像の配置を正規化するための正規化情報を算出する算出手段と、
前記算出された正規化情報に基づいて、前記電子文書データを変更し、変更された電子文書データに情報を埋め込む埋め込み手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記画像生成手段は、前記検出手段が前記レイアウト情報を検出可能である解像度で前記文書画像を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記レイアウト情報は、前記各文字画像の位置及びサイズに関する情報を含んでおり、
前記算出手段は、前記レイアウト情報に基づいて、前記各文字画像の間隔を算出することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記各文字画像は各文字画像の外接矩形であり、
前記検出手段は、前記レイアウト情報に基づいて、前記各文字画像の外接矩形の間隔を算出することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記算出手段は、前記検出手段によって算出された文字間隔に基づいて、注目する外接矩形である注目矩形と、該注目矩形に隣接する外接矩形と、の間における文字間隔の平均値を算出し、前記各文字間隔が該平均値を得るために必要な正規化情報を算出することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記埋め込み手段は、前記電子文書データを変更する際に、前記外接矩形の位置又はサイズの少なくとも一方に対応する情報を変更することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
更に、文書画像上で算出された正規化情報に対応するように、前記電子文書データを変更する手段を備えることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記埋め込み手段は、前記電子文書データにおける各文字の文字間隔を予め定められた情報に基づいて調整することにより、情報を埋め込むことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
入力された電子文書データに情報を埋め込む情報処理方法であって、
画像生成手段が、前記電子文書データから文書画像を生成する画像生成工程と、
検出手段が、前記生成された文書画像中の各文字画像のレイアウト情報を検出する検出工程と、
選択手段が、前記文書画像の行を選択する選択工程と、
判定手段が、前記選択された行に対応する文字で構成される行が前記電子文書データに存在するかどうかを、前記レイアウト情報を用いて判定する判定工程と、
前記判定工程において、前記選択された行に対応する文字で構成される行が前記電子文書データに存在すると判定された場合に、算出手段が、前記検出されたレイアウト情報に基づいて、前記選択された行の各文字画像の配置を正規化するための正規化情報を算出する算出工程と、
埋め込み手段が、前記算出された正規化情報に基づいて、前記電子文書データを変更し、変更された電子文書データに情報を埋め込む埋め込み工程と、
を有することを特徴とする情報処理方法。
【請求項１０】
コンピュータが読込み実行することで、前記コンピュータに請求項１乃至８のいずれか１項に記載の情報処理装置として機能させることを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書へ情報を埋め込む技術に関する。
【背景技術】
【０００２】
文書に情報を埋め込み、埋め込んだ情報（一般に、透かし情報と呼ばれる。）を抽出する技術は、文書のセキュリティを向上させるために有用である。
【０００３】
例えば、文字画像の配置位置を調整することで文書画像に透かし情報を埋め込み、その文書画像を印刷文書として出力する。その出力された印刷文書をスキャナ等で取り込むことで文書画像として、その文書画像から透かし情報を抽出するものである（特許文献１）。この技術では、複写によって文字画像の配置位置が変化しにくいため、複写耐性を持つ。
【０００４】
一方、ページ記述によって記述されたテキストを含む電子文書データの配置情報を変更して透かし情報を埋め込んだ後、その電子文書データから透かし情報を抽出するものである（特許文献２）。ここで、ページ記述された電子文書データはプリンタに対して出力を指示するための言語である。文字や図形等を各プリンタに応じた最適な文字質や画質で印刷することができ、一般的なレーザープリンタで利用されている。特許文献１の技術では文書画像に対して透かし情報の埋め込みを行うため、最適な文字質や画質で印刷できない。従って、ページ記述された電子文書データに対しての埋め込みが必要と考えられる。
【特許文献１】特開２００５−２５３００４号公報
【特許文献２】特開２０００−９９５０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術は、文書画像上で透かし情報を埋め込むものであり、電子文書データとして出力するには文書画像から電子文書データへの変換が必要である。この変換を行う際、ブロックセレクションや光学文字認識（以下、ＯＣＲ）等を行うが、ＯＣＲによる誤差又はアウトラインフォントの描画処理時に文字質を向上させるヒンティング処理の影響等で文字間隔が変化してしまうことがある。そのため、文書画像上で透かし情報を埋め込み、埋め込み後に電子データを変換したものから、埋め込まれていた透かし情報が正しく抽出できない場合があった。また、上記の変換の処理量が多い。
【０００６】
一方、特許文献２の技術は、電子文書データ上で透かし情報を埋め込むものであるため、それを印刷文書として出力した場合に、文書画像上で電子文書データに埋め込まれた透かし情報と同一の透かし情報を抽出することができない場合が多い。
【０００７】
従って、本発明の目的は、電子文書データに対して、構成画像の配置を操作する透かし情報の埋め込み及び、その印刷文書から埋め込まれた透かし情報を抽出可能である情報の埋め込み技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係る情報処理装置は、入力された電子文書データに情報を埋め込む情報処理装置であって、前記電子文書データから文書画像を生成する画像生成手段と、前記生成された文書画像中の各文字画像のレイアウト情報を検出する検出手段と、前記文書画像の行を選択する選択手段と、前記選択された行に対応する文字で構成される行が前記電子文書データに存在するかどうかを、前記レイアウト情報を用いて判定する判定手段と、前記判定手段で、前記選択された行に対応する文字で構成される行が前記電子文書データに存在すると判定された場合に、前記検出されたレイアウト情報に基づいて、前記選択された行の各文字画像の配置を正規化するための正規化情報を算出する算出手段と、前記算出された正規化情報に基づいて、前記電子文書データを変更し、変更された電子文書データに情報を埋め込む埋め込み手段と、を備える。
【０００９】
また、本発明に係る情報処理方法は、入力された電子文書データに情報を埋め込む情報処理方法であって、前記電子文書データから文書画像を生成する画像生成工程と、前記生成された文書画像中の各構成画像のレイアウト情報を検出する検出工程と、前記検出されたレイアウト情報に基づいて、各構成画像の正規化するための正規化情報を算出する算出工程と、前記算出された正規化情報に基づいて、前記電子文書データを変更し、変更された電子文書データに情報を埋め込む埋め込み工程と、を有する。
【発明の効果】
【００１０】
本発明によれば、電子文書データに対して、構成画像の配置を操作する透かし情報の埋め込み、その印刷文書から、埋め込まれた透かし情報を抽出可能である情報の埋め込み技術を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面に従って、本発明に係る実施形態を詳細に説明する。
【００１２】
＜第１の実施形態＞
図１は、本発明の第１の実施形態及び第２の実施形態に係る透かし情報埋め込み装置１００の概念的な構成図である。
【００１３】
透かし情報埋め込み装置（情報処理装置）１００は、入力された電子文書データＡから文書画像を生成し、文書画像に基づいて、電子文書データＡを変更し、電子文書データＡに透かし情報Ｂを埋め込む装置である。なお、文書画像は文字を含んだ画像データ（例えば、ビットマップ形式データ）とし、電子文書データはそれ以外のテキストデータとする。また、透かし情報埋め込み装置１００は、ページ記述された電子文書データ（以下、ページ記述データ）Ａを入力する電子文書データ入力部１０１を有する。また、電子文書データ入力部１０１によって入力されたページ記述データＡから文書画像を生成する文書画像生成部１０２を有する。また、文書画像生成部１０２によって生成された文書画像中の各文字画像の外接矩形に関するレイアウト情報を検出する文書解析部１０３を有する。文書画像生成部１０２は、文書解析部１０３がレイアウト情報を検出可能である解像度で文書画像を生成する。また、文書解析部１０３で検出されたレイアウト情報に基づいて、注目する外接矩形（以下、注目矩形と言う。）と、この注目矩形に隣接する外接矩形との間における間隔を正規化するための正規化情報を算出する正規化情報算出部１０４を有する。
【００１４】
さらに、電子文書データ入力部１０１で入力された電子文書データを変更部１０５で正規化情報に基づいて変更する。さらに、透かし情報Ｂを入力する透かし情報入力部１０６と、透かし情報入力部１０６から入力された透かし情報Ｂに基づいて、電子文書データ上の正規化された間隔を調整することにより、透かし情報Ｂを埋め込む埋め込み部１０７を有する。さらに、透かし情報Ｂが埋め込まれた埋め込み文書印刷物Ｃとして出力する出力部１０８を有する。
【００１５】
図２は、第１の実施形態及び第２の実施形態に係る透かし情報埋め込み装置１００の動作手順を示すフローチャートであり、図３は、文字間隔の組の例を示す図である。
【００１６】
まず、ステップＳ２０１において、ページ記述データＡが電子文書データ入力部１０１に入力される。ページ記述データＡは、プリンタに描画を指示したり、モニタに表示させたりするためのデータである。例えば、ＰＳ（Ｐｏｓｔ  Ｓｃｒｉｐｔ）、ＸＰＳ（ＸＭＬ  Ｐａｐｅｒ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）、及びＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）が挙げられる。なお、ここでは、ページ記述データの例を示すが、ページ記述データ以外の電子文書データ、例えば、テキストファイルにも適用可能である。
【００１７】
ステップＳ２０２において、文書画像生成部１０２でページ記述データＡから文書画像を生成する。なお、文書画像の解像度は正規化情報を誤りなく算出可能であるならば、生成時の規定の解像度よりも低くして良い。これによって、処理の高速化や画像を記憶する領域の削減が図れる。例えば、生成時の解像度ｃｒｅａｔｅ＿ｄｐｉは次のように設定できる。まず、いくつかのページ記述データから文書画像を生成し、以下で説明する文字間隔の最小値ｓｐａｃｅ＿ｍｉｎを求めておく。そして、規定の解像度ｏｒｄｅｒ＿ｄｐｉをｓｐａｃｅ＿ｍｉｎを割った値以上で設定できる一番低い解像度を生成時の解像度ｃｒｅａｔｅ＿ｄｐｉとする。つまり、ｏｒｄｅｒ＿ｄｐｉが６００、ｓｐａｃｅ＿ｍｉｎが４とすると、ｃｒｅａｔｅ＿ｄｐｉは６００／４＝１５０ｄｐｉとなる。この方法では、最小の文字間隔が縮小によって消滅し把握できなくなることはない。従って、正規化情報を誤りなく算出できる。
【００１８】
ステップＳ２０３において、生成された文書画像から外接矩形（文字領域）が検出される。外接矩形は、図３で示すように、文字に外接する矩形である。また、外接矩形は、本来、文字認識を行う領域を示すものであるが、透かし情報技術においては、埋め込み操作の対象となる文字領域を示すものである。
【００１９】
外接矩形を検出する際には、まず、文書画像の各画素値を垂直座標軸に対して射影し、空白部分（黒色である文字のない部分）を探索して行を判別して行分割を行う。その後、行単位で文書画像を水平座標軸に対して射影し、空白部分を探索して文字単位に分割する。これにより、各文字を外接矩形で切り出すことが可能となり、外接矩形を検出することができる。
【００２０】
このようにして、外接矩形が検出された場合には、ステップＳ２０４において、外接矩形から文書画像の文字間隔が算出される。なお、文字間隔は、例えば、図３のＰ又はＳで示すように、注目矩形と、注目矩形に隣接する外接矩形と、の間の間隔のことである。その後、ステップＳ２０４で算出された文字間隔に基づいて、ステップＳ２０５において、文字間隔を正規化するための正規化情報を算出する。なお、ステップＳ２０５の詳細については後述する。
【００２１】
ステップＳ２０６において、ステップ２０５で算出された正規化情報に基づいて、ページ記述データを変更する。なお、ステップＳ２０６の詳細については後述する。次に、ステップＳ２０７において、埋め込むべき透かし情報Ｂが透かし情報入力部１０６から入力され、変更されたページ記述データ上の文字間隔を調整することによって、透かし情報Ｂが埋め込まれる。なお、ステップＳ２０７の詳細については後述する。
【００２２】
最後に、ステップＳ２０８において、透かし情報Ｂが埋め込まれた埋め込み文書印刷物Ｃが出力される。
【００２３】
［正規化情報算出部１０４（ステップＳ２０５）］
図４は、第１の実施形態に係る正規化情報算出部１０４の動作手順を示すフローチャートである。正規化情報算出部１０４での処理は、注目矩形と、注目矩形の前に隣接する外接矩形（以下、前矩形と言う。）及び注目矩形の後ろに隣接する外接矩形（以下、後矩形と言う。）と、の間の文字間隔を調整する。なお、図３で示すように、注目矩形と前矩形との間の文字間隔をＰ、注目矩形と後矩形との間の文字間隔をＳとする。
【００２４】
まず、ステップＳ２０５ａにおいて、注目矩形に隣接する前後の文字間隔の組Ｐ、Ｓを選択する。Ｐ、Ｓは、例えば、ある行の外接矩形の数が３０である場合（但し、文字数が３０であるとは限らない。）には、その行の両端の外接矩形は除外し、偶数番目の外接矩形に着目する。
【００２５】
電子文書データ入力部１０１から入力されたページ記述データＡにおいて、前述の文字間隔Ｐ、Ｓに対応し、ページ記述データ上の文字間隔を操作できる値である次の文字までの距離をＡ０、Ｂ０とする。なお、Ａ０、Ｂ０は、例えば、図６で示すように、ページ記述データ６０１内で数値化されて表現される。また、文字とＡ０、Ｂ０との対応関係を図１４に示す。図１４のように、例えば、Ａ０は「デ」の描画開始位置から「ジ」の描画開始位置までの距離を示しており、その距離は４４ｐｉｘｅｌである。なお、ページ記述データの種類によっては次の文字までの距離ではなく、ページ記述データ上の文字間隔そのものであったりするが、文字間隔を操作できる値であれば、本発明が適用できるのはいうまでもない。
【００２６】
次に、ステップＳ２０５ｂにおいて、ＰとＳとの値が等しいか否かが判断される。ステップＳ２０５ｂで、ＰとＳとの値が等しいと判断された場合には、ステップＳ２０５ｃに進み、ＰとＳとの値が等しくないと判断された場合には、ステップＳ２０５ｄに進む。
【００２７】
ステップＳ２０５ｃにおいて、ページ記述データ上の値であるＡ０、Ｂ０のそれぞれに対応する正規化情報であるＸ、Ｙの値を０とする。
【００２８】
ステップＳ２０５ｄにおいて、文字間隔Ｐ及びＳの値の平均値Ｚ＝（Ｐ＋Ｓ）／２を算出する。なお、ページ記述データＡの文字間隔において、小数点以下を使用しない場合には、Ｚは小数点以下の切り捨て、切り上げ等の処理が行われる。
【００２９】
ステップＳ２０５ｅにおいて、Ｐ及びＳの値とＺを用いて、Ｘ及びＹをそれぞれＸ＝Ｚ−Ｐ、Ｙ＝Ｚ−Ｓとして算出する。
最後に、ステップＳ２０５ｆにおいて、注目矩形が文書画像の最終の外接矩形であるか否かを判断する。注目矩形が最終の外接矩形であると判断された場合には、ステップＳ２０５を終了し、注目矩形が最終の外接矩形ではないと判断された場合には、ステップＳ２０５ａに戻る。
【００３０】
［変更部１０５（ステップＳ２０６）］
図５は、第１の実施形態に係る変更部１０５の動作手順を示すフローチャートである。変更部１０５は、上述の算出した正規化情報に基づいて、次の文字までの距離を変更する。その結果としてページ記述データ上の文字間隔が正規化される。
【００３１】
まず、ステップＳ２０６ａにおいて、隣接する前後の文字間隔の組Ｐ、Ｓに対応した文字情報である次の文字までの距離Ａ０、Ｂ０を選択する。
【００３２】
次に、ステップＳ２０６ｂにおいて、変更後の次の文字までの距離Ａ１、Ｂ１をＡ１＝Ａ０＋α×Ｘ、Ｂ１＝Ｂ０＋α×Ｙとして算出し、データ内容を変更する。ここで、αは文書画像をページ記述データに対応させる係数である、予め設定した値でもよいし、新たに入力した値でもよい。
【００３３】
最後に、ステップＳ２０６ｃにおいて、Ｐ、Ｓに対応した文字情報が最後であるか否かを判断する。ステップＳ２０６ｃで、文字情報が最後であると判断された場合には、ステップＳ２０６が終了し、文字情報が最後でないと判断された場合には、ステップＳ２０６ａに戻る。
【００３４】
以上より、文字間隔が正規化されるため、ページ記述データから文字間隔の情報を得られなくとも埋め込みが可能になる。
【００３５】
［埋め込み部１０７（ステップＳ２０７）］
図１５は、第１の実施形態に係る埋め込み部１０７の動作手順を示すフローチャートである。埋め込み部１０７は、ページ記述データ上の隣接する前後の文字間隔の大小関係を次の文字までの距離を用いて操作し、ページ記述データＡに透かし情報Ｂを挿入する。
【００３６】
まず、ステップＳ２０７ａにおいて、次の文字までの距離Ａ１、Ｂ１を選択する。ステップＳ２０７ｂにおいて、透かし情報入力部１０６より入力された透かし情報Ｂのビット列の中から埋め込むべき透かしビットを選択する。本実施形態では、透かし情報Ｂは、０又は１のビット列として構成される。
【００３７】
次に、ステップＳ２０７ｃにおいて、ステップＳ２０７ｂで選択され、埋め込まれた透かしビットが１であるか否かを判断する。ステップＳ２０７ｃで、埋め込まれた透かしビットが１であると判断された場合には、ステップＳ２０７ｄにおいて、Ｂ１に対応した文字間隔よりもＡ１に対応した文字間隔の方が大きくなるように、透かし情報の埋め込みを行う。すなわち、埋め込み後の次の文字までの距離Ａ２、Ｂ２をＡ２＝Ａ１＋γ、Ｂ２＝Ｂ２−γとして算出し、透かし情報の埋め込みを行う。ここで、γは任意の正の値である。
【００３８】
一方、ステップＳ２０７ｃで、埋め込まれた透かしビットが１ではない、すなわち、埋め込まれた透かしビットが０であると判断された場合には、ステップＳ２０７ｅに進む。ここでは、Ｂ１に対応した文字間隔よりもＡ１に対応した文字間隔の方が小さくなるように、透かし情報の埋め込みを行う。すわなち、埋め込み後の次の文字までの距離Ａ２、Ｂ２をＡ２＝Ａ１−γ、Ｂ２＝Ｂ２＋γとして算出し、透かし情報の埋め込みを行う。なお、ステップＳ２０７ｄ及びステップＳ２０７ｅにおいて、次の文字までの距離の増減を任意の正の値であるγで操作した。この結果、文書画像中における注目矩形を移動する操作と同様の効果が得られる。
【００３９】
これにより、ページ記述データ上の隣接する前後の文字間隔の大小関係を調整することによって、文字間隔の１組毎に１ビットの透かし情報（０又は１）が挿入される。例えば、１行に文字が３０ある場合には、１４ビット（＝３０／２−１）の透かし情報Ｂを埋め込むことができる。
【００４０】
なお、本実施形態では、偶数番目の文字の位置を調整することでページ記述データに透かし情報Ｂを埋め込んだが、隣接する文字で位置を調整しなければよいため、奇数番目の文字の位置を調整することでページ記述データに透かし情報Ｂを埋め込んでもよい。
【００４１】
また、本実施形態では、文字の１つ置きに透かし情報Ｂを埋め込んだ。すなわち、埋め込み対象の文字の間に埋め込み対象外の文字を１つ設けた。これは、連続する文字に順番に透かし情報Ｂを埋め込んだ場合には、１つの文字間隔が隣接する文字同士で共有する状態となり、また、制御できるのが常に一つの次の文字までの距離となるためである。このため、徐々に誤差が累積されてしまい、レイアウト（配置情報）に大きく影響してしまうことによるものである。ただし、本発明は、文字間隔を用いて情報を埋め込む手法であれば、説明した手順に限定されるものではない。
【００４２】
最後に、ステップＳ２０７ｆにおいて、ページ記述データ上の文字情報が最後であるか否かを判断する。ステップＳ２０７ｆで、ページ記述データ上の文字情報が最後であると判断された場合には、ステップＳ２０７が終了し、ページ記述データ上の文字情報が最後でないと判断された場合には、ステップＳ２０７ａに戻る。
【００４３】
図６は、本実施形態におけるページ記述データの変化例を示す図である。まず、電子文書データ入力部１０１に入力された電子文書データが入力される。ここで、入力される電子文書データの一例が、ページ記述データ６０１である。また、ページ記述データ６０１中で、前述の文字間隔Ｐ及びＳを操作できる値である次の文字までの距離を示す部分が次の文字までの距離データ６０１ａ、６０１ｂで示す部分である。ここでは、次の文字までの距離データ６０１ａ、６０１ｂの内で任意に選定した次の文字までの距離Ａ０、Ｂ０に着目して説明する。
【００４４】
次に、変更部１０５において、文書画像中の文字間隔を正規化するための正規化情報に基づいて、電子文書データが変更される。ここで、変更された電子文書データの一例が、ページ記述データ６０２である。また、ページ記述データ６０２中で、次の文字までの距離データ６０１ａ、６０１ｂに対応する部分が次の文字までの距離データ６０２ａ、６０２ｂである。また、次の文字までの距離Ａ０、Ｂ０に対応する部分が次の文字までの距離Ａ１、Ｂ１であり、次の文字までの距離は、Ａ０からＡ１、及びＢ０からＢ１に変更されたことがわかる。
【００４５】
次に、埋め込み部１０７において、変更部１０５において変更された電子文書データに透かし情報Ｂが埋め込まれる。ここで、透かし情報埋め込み後の電子文書データの一例が、ページ記述データ６０３である。また、ページ記述データ６０２中で、次の文字までの距離データ６０２ａ、６０２ｂに対応する部分が６０３ａ、６０３ｂである。また、次の文字までの距離Ａ１、Ｂ１に対応する部分が次の文字までの距離Ａ２、Ｂ２であり、次の文字までの距離は、Ａ１からＡ２、及びＢ１からＢ２に変更されたことがわかる。
【００４６】
図７は、第１の実施形態に係る透かし情報抽出装置（情報処理装置）７００の構成図である。画像入力部７０１には、埋め込み文書印刷物Ｃが入力される。検出部７０２は、画像入力部７０１に入力された文書画像から文字の位置関係を解析する。透かし情報抽出部７０３は、文字の位置関係（文字間隔の大小関係）に埋め込まれた透かし情報Ｄを抽出して出力する。
【００４７】
図８は、透かし情報抽出部７０３の動作手順を示すフローチャートである。まず、ステップＳ８０１において、透かし情報が埋め込まれた文書画像を入力する。スキャナ等の画像入力部７０１から埋め込み文書印刷物Ｃの文書画像が読込まれる。
【００４８】
ステップＳ８０２において、検出部７０２で文書画像から外接矩形を検出する。次に、ステップＳ８０３において、検出部７０２で文字間隔を外接矩形から算出する。なお、算出手順は、透かし情報を埋め込む処理と同様に行うことができる。最後に、ステップＳ８０４において、透かし情報抽出部７０３で透かし情報を抽出する。この抽出処理は、注目矩形に隣接する前後の文字間隔の組Ｐ１、Ｓ１の大小関係によって、１組毎に１ビット（０又は１）の情報が抽出される。
【００４９】
本実施形態によれば、文書画像の文字間隔の情報を電子文書データに反映させた後で、電子文書データ上で透かし情報を埋め込む。したがって、電子文書データに対して文字間隔を操作することで透かし情報を埋め込み、その印刷文書から透かし情報を抽出できる。また、文書画像上で埋め込み、ブロックセレクションやＯＣＲ等の処理を行ない、処理後の文書画像を電子文書データに変換するよりも文字間隔の誤差が発生しにくく、処理量が少ない。
【００５０】
なお、本実施形態では、正規化情報を用いて電子文書データを変更した後に、透かし情報の埋め込みを行なった。しかしながら、文書画像の文字間隔の関係から正規化せずに透かし情報の埋め込みを直接行なっても良い。
【００５１】
なお、本実施形態では、正規化情報算出から透かし情報の埋め込みまでの各処理を文書全体で行った。しかしながら、文書の行毎に前述の各処理を行っても良い。これによって、処理結果を記憶する領域の削減が図れる。
【００５２】
なお、本実施形態では、文字間隔を調整することによって透かし情報を埋め込む手法を説明したが、本発明は、行間隔を調整することによって透かし情報を埋め込む手法にも適用することができる。その場合は、本実施形態において、文字の外接矩形を処理対象である構成画像としたが、一行分の文字が含まれる外接矩形を、処理対象である構成画像とすればよい。
【００５３】
また、本発明は、文字間隔や行間隔を調整するだけでなく、図形と文字との間の間隔や、図形と図形との間の間隔を調整する場合にも適用することができる。また、本発明は、間隔を調整して情報を埋め込むだけでなく、図形や文字のサイズを変化させたり、これらの位置を調整することによって、透かし情報を埋め込む方式にも適用することができる。
【００５４】
［第１の実施形態の変形例］
上述の第１の実施形態では、正規化情報算出部１０４において、文書画像から順々に文字間隔の組ＰとＳを選択して正規化情報を算出した。しかしながら、図１７に示すようにページ記述データ（１７０１）が認識する文字領域（１７０１ａ、１７０１ｂ）と文書画像（１７０２）が認識する文字領域（１７０２ａ、１７０２ｂ）とが異なる場合がある。この原因としては、例えば、１７０２ｃのようにブロックセレクションの結果、図の一部が文字として誤って認識する場合等が挙げられる。このような場合、ページ記述データに存在しない文字間隔を用いて正規化してしまう。その結果、透かし情報を埋め込むことができない。
【００５５】
そこで、ページ記述データにおいて文字コードが存在する行の座標と一致する座標を持つ行のみに対して、正規化情報を算出する。従って、ページ記述データの各行に透かし情報を埋め込むことができる確率が高くなる。
【００５６】
図１６は、第１の実施形態の変形例に係る正規化情報算出部１０４の動作手順を示すフローチャートである。なお、ステップＳ２０６ｊからステップＳ２０６ｍの各処理はそれぞれステップＳ２０５ｂからステップＳ２０５ｅまでの各処理と同様であるため、説明を省略する。
【００５７】
まず、ステップＳ２０６ｇにおいて、文書画像の行を選択する。例えば文書画像の右上に近い行から順々に選択する。
【００５８】
ステップＳ２０６ｈにおいて、Ｓ２０６ｇで選択した行の始めの座標と一致する座標を持つ行がページ記述データに存在するか否かを判定する。文書画像における行の始めの座標は例えば、図１７の１７０２ｄのような行の最初の文字の座標（水平座標＝「７４１」、垂直座標＝「５５８５」等）である。一方、ページ記述データにおける行の始めの座標は例えば、図１７の１７０１ｄのように文字コードが存在する行の最初の数字（水平座標＝「７２９」、垂直座標＝「５５８４」等）で示される。ここで、座標の単位は文書画像及びページ記述データともにｐｉｘｅｌである。なお、文字コードは存在しない図１７の１７０１ｃのような絵に相当する部分の座標は除外する。これによって、文字部分のみに透かし情報の埋め込みが可能になる。ただし、ページ記述データの種類によっては文字部分のみに座標が割り当てられている場合も考えられる。その場合は、ページ記述データの全ての座標を判定対象とすればよい。
【００５９】
座標が一致するか否かの判定において、ページ記述データの座標と文書画像の座標には文書画像の生成方法によって、多少の誤差が生じると考えられる。従って、誤差を考慮して、例えば、座標差が２０以下なら同じ行と判定する。誤差を考慮して図１７では、文書画像１７０２の水平座標＝「７４１」、垂直座標＝「５５８５」とページ記述データ１７０１の水平座標＝「７２９」、垂直座標＝「５５８４」が一致すると判定できるため、行が存在することが分かる。
【００６０】
また、ページ記述データの各行の座標データは、例えばステップＳ２０１のページ記述データ読み込み時に全て取得しメモリ等に予め保持される。ただし、ステップＳ２０６ｈの処理で逐次座標データを探索してもよい。
【００６１】
ステップＳ２０６ｈにおいて、行が存在する場合は、ステップＳ２０６ｉにおいて、行の始めから順々に文字間隔の組ＰとＳを選択し、ステップＳ２０６ｊからステップＳ２０６ｍまでの各処理を場合に応じて行なう。そして、ステップＳ２０６ｎにおいて、行の終わりか否かを判定し、行の終わりまで処理を行ない、ステップＳ２０６ｏに進む。ステップＳ２０６ｏにおいて文書の終わりか否かを判定する。文書の終わりではないなら、ステップＳ２０６ｇに進み、文書の終わりなら、ステップＳ２０６を終了する。一方、Ｓ２０６ｈにおいて、行が存在しない場合は、ステップＳ２０６ｏに進む。
【００６２】
＜第２の実施形態＞
上述の第１の実施形態では、変更部１０５において、ページ記述データ中の文字がどんな文字であっても、文字間隔を無条件に文書画像からの正規化情報によって変更した。そのため、ページ記述データ中に句読点が混在する場合には、句読点前後の文字間隔も変更されるため、文書として不自然になる場合がある。
【００６３】
図９は、句読点前後における文字間隔の組の例を示す図である。本実施形態では、第１の実施形態と異なり、句読点の直後の文字間隔を含む文字間隔の組を変更せず、かつ、この文字間隔の組には透かし情報を埋め込まない。
【００６４】
例えば、注目矩形９０４の直後の文字間隔Ｓを含む文字間隔Ｐ、Ｓの組とそれに対応する次の文字までの距離Ａ０、Ｂ０の組は、９０１、９０２が該当する。これらの文字間隔の組には、透かし情報を埋め込まないこととなる。また、透かし情報を抽出する際には、埋め込み対象としない外接矩形の前後の文字間隔の組は除外して行う。
【００６５】
第２の実施形態に係る透かし情報埋め込み装置は、上述した第１の実施形態と同様の構成であるが、変更部１０５（ステップＳ２０６）及び埋め込み部１０７（ステップＳ２０７）での処理は、下記の点で異なる。
【００６６】
［変更部１０５（ステップＳ２０６）］
図１０は、第２の実施形態に係る変更部１０５の動作手順を示すフローチャートである。まず、ステップＳ２０６ｄにおいて、隣接する前後の文字間隔の組Ｐ、Ｓに対応した文字情報である次の文字までの距離Ａ０、Ｂ０を選択する。
【００６７】
次に、ステップＳ２０６ｅにおいて、ページ記述データＡの句読点位置情報に基づいて、Ａ０又はＢ０が句読点の直後の文字間隔に対応する次の文字までの距離であるか否かが判断される。なお、句読点位置情報は、例えば、文字コードで示される。ステップＳ２０６ｅにおいて、Ａ０又はＢ０が句読点の直後の文字間隔に対応する次の文字までの距離であると判断されない場合には、ステップＳ２０６ｆに進む。そして、ステップＳ２０６ｅにおいて、Ａ０又はＢ０が句読点の直後の文字間隔に対応する次の文字までの距離であると判断された場合には、ステップＳ２０６ｇに進む。
【００６８】
ステップＳ２０６ｆにおいて、変更後の次の文字までの距離Ａ１、Ｂ１をＡ１＝Ａ０＋α×Ｘ、Ｂ１＝Ｂ０＋α×Ｙとして算出し、データ内容を変更する。
【００６９】
一方、ステップＳ２０６ｇにおいて、Ａ１＝Ａ０、Ｂ１＝Ｂ０とする。すなわち、データ内容は変更されない。
【００７０】
最後に、ステップＳ２０６ｈにおいて、Ｐ、Ｓに対応した文字情報が最後であるか否かを判断する。ステップＳ２０６ｈで、文字情報が最後であると判断された場合には、ステップＳ２０６が終了し、文字情報が最後でないと判断された場合には、ステップＳ２０６ｄに戻る。
【００７１】
［埋め込み部１０７（ステップＳ２０７）］
図１１は、第２の実施形態に係る埋め込み部１０７の動作手順を示すフローチャートである。まず、ステップＳ２０７ｇにおいて、次の文字までの距離Ａ１、Ｂ１を選択する。
【００７２】
ステップＳ２０７ｈにおいて、ページ記述データＡの句読点位置情報に基づいて、Ａ１又はＢ１が句読点の直後の文字間隔に対応する次の文字までの距離であるか否かが判断される。ステップＳ２０７ｈにおいて、Ａ１又はＢ１が句読点の直後の文字間隔に対応する次の文字までの距離であると判断されない場合には、ステップＳ２０７ｉに進む。そして、ステップＳ２０７ｈにおいて、Ａ１又はＢ１が句読点の直後の文字間隔に対応する次の文字までの距離であると判断された場合には、ステップＳ２０６ｍに進む。
【００７３】
ステップＳ２０７ｉにおいて、埋め込むべき透かしビットを選択する。次に、ステップＳ２０７ｊにおいて、埋め込んだ透かしビットが１であるか否かを判断する。ステップＳ２０７ｊで埋め込んだ透かしビットが１であると判断された場合には、ステップＳ２０７ｋに進み、埋め込んだ透かしビットが１ではないと判断された場合には、ステップＳ２０７ｌに進む。
【００７４】
ステップＳ２０７ｋにおいて、Ｂ１に対応した文字間隔よりもＡ１に対応した文字間隔の方が大きくなるように、埋め込み後の次の文字までの距離Ａ２、Ｂ２をＡ２＝Ａ１＋γ、Ｂ２＝Ｂ２−γとして算出し、透かし情報の埋め込みを行う。一方、ステップＳ２０７ｌにおいて、Ｂ１に対応した文字間隔よりもＡ１に対応した文字間隔の方が小さくなるように、埋め込み後の次の文字までの距離Ａ２、Ｂ２をＡ２＝Ａ１−γ、Ｂ２＝Ｂ２＋γとして算出し、透かし情報の埋め込みを行う。
【００７５】
一方、ステップＳ２０７ｍにおいて、Ａ２＝Ａ１、Ｂ２＝Ｂ１とする。すなわち、透かし情報の埋め込みは行なわれない。
【００７６】
最後に、ステップＳ２０７ｎにおいて、ページ記述データ上の文字情報が最後であるか否かを判断する。ステップＳ２０７ｎで、ページ記述データ上の文字情報が最後であると判断された場合には、ステップＳ２０７が終了し、ページ記述データ上の文字情報が最後でないと判断された場合には、ステップＳ２０７ｇに戻る。
【００７７】
図１２は、第２の実施形態に係る透かし情報抽出部７０３の動作手順を示すフローチャートである。透かし情報抽出装置７００は、第１実施形態と同様であるが、抽出処理において、句読点に関する処理を追加する。
【００７８】
まず、ステップＳ１２０１において、透かし情報が埋め込まれた文書画像を読込む。スキャナ等の画像入力部７０１から入力される。
【００７９】
ステップＳ１２０２において、文書画像から外接矩形を検出する。ステップＳ１２０３において、外接矩形のサイズ等に基づいて、句読点を検出する。ステップＳ１２０２及びステップＳ１２０３の処理は、検出部７０２で行われる。
【００８０】
ステップＳ１２０４において、前述した句読点の直後の文字間隔を含む文字間隔の組を除いた文字間隔を検出部７０２で算出する。算出方法は、埋め込み部１０７の処理と同様である。
【００８１】
ステップＳ１２０５において、透かし情報抽出部７０３で透かし情報を抽出する。この抽出処理は、隣接する前後の文字間隔の組Ｐ１、Ｓ１の大小関係によって、１組毎に１ビット（０又は１）の情報が抽出される。
【００８２】
なお、上述の第１、第２の実施形態では、隣接する前後の文字間隔の大小関係を調整することで透かし情報を埋め込んだ。しかし、各文字間隔を閾値と比較することにより透かし情報を挿入するか否かを判定する場合には、各々の対応する文書画像内の文字間隔の情報のみを付加するだけで本発明を適用することができる。
【００８３】
＜第３の実施形態＞
本実施形態では、第１の実施形態に係る種々の処理をコンピュータに実行させる。図１３は、第３の実施形態に係るコンピュータの基本的な構成図である。例えば、コンピュータにおいて、全ての機能を実行する場合には、各機能構成をコンピュータプログラムで表現し、コンピュータに読込ませることによって、コンピュータで第１の実施形態の全ての機能を実現することができる。
【００８４】
ＣＰＵ１３０１は、ＲＡＭ１３０２やＲＯＭ１３０３に格納されているコンピュータプログラムやデータを用いて、コンピュータ全体を制御する。また、ＣＰＵ１３０１は、上記の第１実施形態及び第２実施形態で説明した各処理を行う。
【００８５】
ＲＡＭ１３０２は、外部記憶装置１３０８から読込まれたコンピュータプログラムやデータ、他のコンピュータシステム１３１４からＩ／Ｆ（インターフェース）１３１５を介して、ダウンロードしたプログラムやデータを一時的に記憶する記憶領域を備える。また、ＲＡＭ１３０２は、ＣＰＵ１３０１が各種の処理を行うために必要な処理領域を備える。
【００８６】
ＲＯＭ１３０３は、コンピュータの機能プログラムや設定データ等を記憶する。ディスプレイ制御装置１３０４は、画像や文字等をディスプレイ１３０５に表示させるための制御処理を行う。ディスプレイ１３０５は、ＣＲＴや液晶画面等の表示装置であり、画像や文字等を表示する。
【００８７】
操作入力デバイス１３０６は、キーボードやマウス等、ＣＰＵ１３０１に各種の指示を入力することのできるデバイスにより構成される。Ｉ／Ｏ１３０７は、操作入力デバイス１３０６を介して入力された各種の指示等をＣＰＵ１３０１に通知する。
【００８８】
外部記憶装置１３０８は、ハードディスク等の大容量情報記憶装置として機能し、ＯＳ（オペレーティングシステム）や上記各実施形態に係る処理をＣＰＵ１３０１に実行させるためのコンピュータプログラム、入出力原稿画像等を記憶する。外部記憶装置１３０８への情報の書き込みや外部記憶装置１３０８からの情報の読み出しは、Ｉ／Ｏ１３０９を介して行われる。
【００８９】
プリンタ１３１０は、文書や画像を出力する。出力データは、Ｉ／Ｏ１３１３を介してＲＡＭ１３０２、もしくは外部記憶装置１３０８から送信される。なお、プリンタとしては、例えば、インクジェットプリンタ、レーザビームプリンタ、熱転写型プリンタ、ドットインパクトプリンタ等が挙げられる。
【００９０】
スキャナ１３１２は、文書や画像を読み取る。入力データは、Ｉ／Ｏ１３１３を介してＲＡＭ１３０２、もしくは外部記憶装置１３０８に送信される。
【００９１】
バス１３１６は、ＣＰＵ１３０１、ＲＯＭ１３０３、ＲＡＭ１３０２、Ｉ／Ｏ１３１１、Ｉ／Ｏ１３０９、ディスプレイ制御装置１３０４、Ｉ／Ｆ１３１５、Ｉ／Ｏ１３０７、Ｉ／Ｏ１３１３をつないでネットワークを形成する。
【００９２】
なお、本実施形態では、コンピュータが、スキャナやプリンタでの処理を除く処理を行っているが、スキャナやプリンタが、内部に設けられた専用のハードウェア回路を用いて、コンピュータで行う処理を代わりに行ってもよい。
【００９３】
なお、上記第１乃至第３実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならない。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形態で実施することができる。
【００９４】
＜その他の実施形態＞
なお、本実施形態は、複数の機器（例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、複合機、ファクシミリ装置等）に適用してもよい。
【００９５】
また、前述の実施形態では、これらの機能を実現するソフトウェアのプログラムコードを記録したコンピュータ可読記録媒体（又は記憶媒体）をシステム又は装置に供給する。この場合に、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読込み実行することによっても達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本実施形態を構成することになる。
【００９６】
また、本発明はこれだけでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００９７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づいて、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９８】
本実施形態を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートや機能構成に対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９９】
【図１】第１の実施形態及び第２の実施形態に係る透かし情報埋め込み装置１００の機能構成図である。
【図２】第１の実施形態及び第２の実施形態に係る透かし情報埋め込み装置１００の動作手順を示すフローチャートである。
【図３】文字間隔の組の例を示す図である。
【図４】第１の実施形態に係る正規化情報算出部１０４の動作手順を示すフローチャートである。
【図５】第１の実施形態に係る変更部１０５の動作手順を示すフローチャートである。
【図６】第１の実施形態におけるページ記述データの変化例を示す図である。
【図７】第１の実施形態及び第２の実施形態に係る透かし情報抽出装置７００の機能構成図である。
【図８】第１の実施形態に係る透かし情報抽出部７０４の動作手順を示すフローチャートである。
【図９】句読点前後における文字間隔の組の例を示す図である。
【図１０】第２の実施形態に係る変更部１０５の動作手順を示すフローチャートである。
【図１１】第２の実施形態に係る埋め込み部１０７の動作手順を示すフローチャートである。
【図１２】第２の実施形態に係る透かし情報抽出部７０４の動作手順を示すフローチャートである。
【図１３】第３の実施形態に係るコンピュータの基本的な構成図である。
【図１４】第１の実施形態におけるページ記述データの文字と次の文字までの距離の関係を示す図である。
【図１５】第１の実施形態に係る埋め込み部１０７の動作手順を示すフローチャートである。
【図１６】第１の実施形態の変形例に係る正規化情報算出部１０４の動作手順を示すフローチャートである。
【図１７】ページ記述データと文書画像における各行の座標を示す図である。
【図１】
0005173690.tif 000002
【図２】
0005173690.tif 000003
【図３】
0005173690.tif 000004
【図４】
0005173690.tif 000005
【図５】
0005173690.tif 000006
【図６】
0005173690.tif 000007
【図７】
0005173690.tif 000008
【図８】
0005173690.tif 000009
【図９】
0005173690.tif 000010
【図１０】
0005173690.tif 000011
【図１１】
0005173690.tif 000012
【図１２】
0005173690.tif 000013
【図１３】
0005173690.tif 000014
【図１４】
0005173690.tif 000015
【図１５】
0005173690.tif 000016
【図１６】
0005173690.tif 000017
【図１７】
0005173690.tif 000018