JP2010130202A - 抽出装置及びその方法 - Google Patents

抽出装置及びその方法 Download PDF

Info

Publication number
JP2010130202A
JP2010130202A JP2008301215A JP2008301215A JP2010130202A JP 2010130202 A JP2010130202 A JP 2010130202A JP 2008301215 A JP2008301215 A JP 2008301215A JP 2008301215 A JP2008301215 A JP 2008301215A JP 2010130202 A JP2010130202 A JP 2010130202A
Authority
JP
Japan
Prior art keywords
character
bit
data
embedding
watermark information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008301215A
Other languages
English (en)
Inventor
Kenichi Okihara
健一 沖原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2008301215A priority Critical patent/JP2010130202A/ja
Publication of JP2010130202A publication Critical patent/JP2010130202A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 透かし情報を繰り返して埋め込まなくても、かつ、埋め込み時に比べて文字間隔の数が変化しても、正しい透かし情報を抽出できる確率を高くする技術を提供することを目的とする。
【解決手段】 文書情報取得部702で文書画像内の文字間隔を取得し、データ部抽出部703で前記文字間隔の大小関係を用いて、データ部を抽出する。判定部704でデータ部の文字間隔の数が埋め込み時と変化しているかを判定し、データ部の文字間隔の数が埋め込み時と変化していると判定した場合は、消失ビット特定部705でデータの消失ビットを特定し、生成部706で消失ビットと文字間隔とに基づいて、誤り訂正符号化されたデータを生成し、透かし情報抽出部707で誤り訂正符号化されたデータを復号し、透かし情報を抽出する。
【選択図】 図7

Description

本発明は、文書に埋め込まれた情報を抽出するための技術に関する。
近年の電子化において、文書に対するセキュリティ技術が求められている。なかでも電子文書において電子透かし情報(以下、透かし情報)を埋め込み、抽出する技術が注目されている。
例えば、電子文書の画像化した文書画像に対して、文字間隔を操作し透かし情報を埋め込む方法がある。具体的には、図1に示すようにまず文字間隔を既存の文書画像解析技術で各文字の外接矩形を切り出し、隣接する外接矩形間の空白長を取得する。次に、図1に示すように隣接する文字間隔PとSの大小関係を変化させることで0または1の透かし情報を埋め込む。ここで、Pは行の最初から文字間隔の数を数えた場合の奇数番目の文字間隔であり、Sは偶数番目の文字間隔である。以下でも同様に定義する。抽出時は、埋め込み時と同様に文字間隔を取得し、PとSの大小を比較することで透かし情報を得る(特許文献1)。
抽出時にノイズや歪みなどが生じた場合にも、文書画像から埋め込まれた透かし情報を抽出できる方法がある。具体的には、文書画像に、透かし情報を繰り返し埋め込んでおき、抽出時には、各透かし情報を抽出し、抽出された各透かし情報を用いて多数決を行い、最終的な抽出情報とする(特許文献2)。
特登録03728209 特開2004−247883
しかしながら、特許文献2は、抽出された複数の透かし情報を用いて多数決を行い、最終的な抽出情報を決定するため、十分精度良く透かし情報を得るには、透かし情報をなるべく多く繰り返して埋め込む必要があった。結果として、特許文献2は、文字間隔数が限られた文書に対しては、透かし情報として多くの情報量を埋め込むことはできなかった。
また、ノイズや複写時の文字の太りなどにより、文字の外接矩形を誤って取得してしまい、文字間隔の数が埋め込み時と異なる場合がある。ここで、図3に文字の外接矩形が誤って取得される場合の例を示す。301は句点の後のノイズが文字として認識された場合であり、302は「訂」が「言」と「丁」の各文字に認識された場合である。また、303は「ト」と「・」が一つの文字として認識された場合である。特許文献2は、文字間隔の数が埋め込み時と異なる場合のビット列は多数決の対象から除いていた。
本発明では、以上の問題を考慮し、透かし情報を繰り返して埋め込まなくても、かつ、埋め込み時に比べて文字間隔の数が変化しても、正しい透かし情報を抽出できる確率を高くする技術を提供する。
この問題を解決するため、例えば本発明の抽出装置は以下の構成を備える。すなわち、文書画像内の文字間隔を操作して埋め込まれている透かし情報を抽出する抽出装置であって、前記文書画像内の文字間隔を取得する文書情報取得手段と、前記文字間隔の大小関係を用いて、データ部を抽出するデータ部抽出手段と、前記データ部の文字間隔の数が埋め込み時と変化しているかを判定する判定手段と、前記判定手段においてデータ部の文字間隔の数が埋め込み時と変化していると判定した場合は、データの消失ビットを特定する消失ビット特定手段と、前記消失ビットと前記文字間隔とに基づいて、誤り訂正符号化されたデータを生成する生成手段と、前記誤り訂正符号化されたデータを復号し、透かし情報を抽出する透かし情報抽出手段とを有することを特徴とする。
本発明によれば、埋め込み時に比べて文字間隔の増加または減少が生じたとしても、誤り訂正符号による正しい復号が可能になり、結果として、正しい透かし情報を抽出できる確率が高くなる。
以下、図面を参照して、本発明に関わる実施形態を詳細に説明する。
(実施形態1)
本実施形態では、文書のオブジェクトとして文字を使用し、透かし情報の埋め込み及び抽出を行なう。
<<透かし情報埋め込み>>
図5は、実施形態1における透かし情報の埋め込み装置の構成図である。図5に示すように、文書入力部501は埋め込み対象である文書500を入力する。文書情報取得部502において、文書内の文字間隔を取得する。埋め込みデータ生成部505において、透かし情報入力部504より入力される透かし情報503と同期信号に基づいて埋め込みデータを生成する。埋め込みデータ埋め込み部506において、取得した文字間隔を操作して埋め込みデータを埋め込む。最後に、出力部507において、埋め込み済み文書508を出力する。以下、透かし情報の埋め込み方法の具体的な実現方法について述べる。記憶部509は、同期信号や間隔操作値Xが記憶されている。
図6は、実施形態1における透かし情報埋め込み装置の動作手順を説明するためのフローチャートである。
まず、ステップS601において、文書500が文書入力部501に入力される。文書のフォーマットとしては、テキストファイルやPS(Post Script(登録商標))などの電子文書ファイルでもよい。また、文書を画像化したBMP(Bitmap Image)やTIFF(Tagged Image File Format)などの文書画像ファイルでもよく、フォーマットは問わない。
ステップS602において、文書情報取得部502で、入力された文書から文書情報として文字間隔を取得する。文字間隔は、例えば電子文書ファイルであれば、各フォーマットの文字間隔データ箇所を解析し、取得する。また、文書画像であれば、文書画像解析技術で各文字の外接矩形を切り出し、隣接する外接矩形間の空白長を取得する。
ステップS603において、埋め込みデータ生成部505で、文書に埋め込むための埋め込みデータを生成する。透かし情報503は、透かし情報入力部504に入力される。埋め込みデータ生成部506において、入力された透かし情報に対して誤り訂正符号化を行い、同期信号記憶部509に記憶された同期信号と連結することで、埋め込みデータを生成する。具体例として、図2の201に示すような同期信号とデータ部(透かし情報を誤り訂正符号化したデータ)を繰り返すことにより、埋め込みデータが生成される。ここで、同期信号とデータ部は、埋め込み対象文書の文字間隔数が十分にある場合は、繰り返し埋め込むことで、さらに抽出精度を上げることが可能である。しかしながら、本発明においては、埋め込み対象文書における文字間隔数が、繰り返して埋め込めるほど存在しない場合は、繰り返して埋め込む必要はない。
このとき、同期信号は固定長であり、本実施形態ではMビット(Mは自然数)の擬似乱数系列を用いる。ただし、擬似乱数系列以外でもかまわない。また、データ部も固定長であり、本実施形態ではNビット(Nは自然数)の透かし情報が誤り訂正符号化されたデータで構成される。ここで、誤り訂正符号は、ブロック符号を使用する。ブロック符号は一定の長さの系列に符号化される符号である。これによって、抽出時のデータ誤りを訂正できる。また、データ部の長さを示す情報を埋め込みデータに加えることで、データ長自体を可変長にしてもよい。
ステップS604において、S602で取得した文字間隔を操作して、埋め込みデータ埋め込み部506で、埋め込みデータの埋め込みを行なう。埋め込み方法は、2つの文字間隔PとSの大小関係で埋め込む。図11を用いて、具体的に説明する。図11は、透かし情報の埋め込み例(透かし情報0を埋め込むために、P>Sにする場合)を示す。図11の1104、1105、1106は、それぞれ、文字の外接矩形を表わす(以下も同様である)。まず、埋め込み前の文字間隔を、1101におけるP、Sとする。そして、奇数番目の文字間隔と偶数番目の文字間隔の値を同じするために、文字間隔P1=S1=(P+S)÷2とする。ここでは、2番目の外接矩形を移動させる。1103では、間隔操作値Xを用いて、P’=P1+X、S’=S1−Xと変化させる。以降、埋め込み後の文字間隔をP’とS’と表わすことにする。ここでは、埋め込み前の文字間隔が奇数番目と偶数番目とで同じ場合でない例を示したが、埋め込み前の文字間隔が奇数番目と偶数番目とで同じような文書データを扱う場合は、1101から1102への処理を行わなくてもよいのは言うまでもない。
埋め込みデータのデータ部で用いられる文字間隔の数は各ビットに対して2つ使用されるため、2N個である。この文字間隔の数は、記憶部509に記憶しておき、抽出時に用いられる。データ部での埋め込みは、図2の202のように文字間隔情報が構成されている場合に、文字間隔PとSの大小関係を0と1で表現された透かし情報に従って、図2の203のように変化させる。例えば、透かし情報が1ならばP’>S’とし、0ならばP’<S’とする。また、同期信号での埋め込みは、PとSの大小関係を0と1で表現された同期信号に従って、データ部と同様に変化させる。
最後に、ステップS605において、出力部507を介して埋め込み済み文書508を出力する。例えば、プリンタなどで印刷出力する。また、電子媒体のまま、出力しても良い。
<<透かし情報抽出>>
図7は、実施形態1における透かし情報の抽出装置の構成図である。図7に示すように、文書入力部701は透かし情報を抽出する対象である埋め込み済み文書700を入力する。その際、埋め込み済み文書700は画像化され文書画像として以降扱われる。文書情報取得部702において、文書画像内の文字間隔を取得する。次に、データ部抽出部703において、取得した文字間隔の大小関係に基づいて、埋め込みデータを抽出する。そして、記憶部709に記憶された同期信号を用いて、埋め込みデータにおける同期信号の位置を特定することで、データ部の場所を抽出する。
判定部704において、データ部の文字間隔の数が埋め込み時と変化しているかを判定する。文字間隔の数が変化ない場合は、生成部706に進む。生成部706において、データ部の文字間隔を順に用いて、誤り訂正符号化されたデータを生成する。一方で、判定部704において、文字間隔の数が変化している場合は、消失ビット特定部705において、文字間隔を利用してデータの消失ビットを特定し、生成部706に進む。生成部706において、消失ビットに基づいて、誤り訂正符号化されたデータを生成する。最後に、透かし情報抽出部707において、誤り訂正符号化されたデータを復号し、透かし情報708を抽出する。記憶部709には、埋め込み時に用いた同期信号、文字間隔の数、間隔操作値Xが記憶されている。これらの情報は、埋め込み装置と抽出装置とで予め共有させておくのでよいし、抽出時に、抽出装置が埋め込み装置から取得するのでも構わない。記憶部709には、さらに、後述する信頼度を求める際に必要は閾値も記憶されている。
以下、透かし情報抽出方法の具体的な実現方法について述べる。
図8は、実施形態1における透かし情報抽出装置の動作手順を説明するためのフローチャートである。
まず、ステップS801において、文書入力部701は埋め込み済み文書700を入力する。このときに、文書の媒体が印刷物の場合はスキャナなどで入力され、電子文書ファイルの場合は画像ファイルに変換されるので、ステップS802以下は文書画像として扱われる。
ステップS802において、文書情報取得部702で、文書画像から文書情報として、例えば文書の左上から順に文字間隔を取得する。
ステップS803において、データ部抽出部703で、データ部の場所が抽出される。文書画像に埋め込まれていた埋め込みデータは図2に示すような同期信号とデータ部が交互に構成されている。データ部の場所を抽出するには、埋め込みデータの同期信号があると思われる場所において、順に文字間隔のペアを組み、2つの間隔の大小関係に基づいて、埋め込みデータを抽出する。次に、抽出した埋め込みデータと記憶部709に記憶された同期信号とを比較することで、抽出した埋め込みデータにおけるデータ部の場所が抽出できる。他の同期信号を特定する方法を用いてもかまわない。
ステップS804において、判定部704で、文字間隔の数が埋め込み時と同じであるか否かが判断される。埋め込み時にの文字間隔の数は、記憶部709に記憶されている。文字間隔の数が埋め込み時と同じである場合(YES)は、ステップS805に進む。
ステップS805において、生成部706で、誤り訂正符号化されたデータを生成する。まずデータ部の最初から文字間隔のペアを順に組む。次に、各文字間隔のペアを構成しているP’とS’を比較し、各位置での誤り訂正符号化されたデータを生成する。具体的には、例えばP’>S’ならば1を、P’<S’ならば0を誤り訂正符号化されたデータとして生成する。
一方、ステップS804において、文字間隔の数が同じではない場合(NO)は、ステップS806に進む。
ステップS806において、消失ビット特定部705で、文字間隔の数が一つ増減しているか否かが判断される。<<透かし情報埋め込み>>で説明したとおり、本実施形態のNビットで構成される埋め込みデータのデータ部で用いられる文字間隔の数は2N個である。抽出された文字間隔の数が2N個から変化しているかを判定する。文字間隔の数が一つ増減している場合(YES)は、ステップS807に進む。文字間隔の数が一つ増減していない場合(NO)、つまり文字間隔の数が2つ以上増減している場合は、ステップS808に進む。
ステップS807において、消失ビット特定部705で、埋め込み信頼度T1と閾値th1を比較して、消失ビットZを特定する。消失ビットZとは、埋め込み時よりも文字間隔の数が変化した影響でデータ値が不明となったビットである。この部分を誤り訂正符号化されたデータにおいて、元の値が「0」か「1」か不明であるため「消失」としておく。それによって、復号時に誤り訂正符号の訂正方法の一つである消失訂正が使用できる。誤り訂正符号は公知技術であるので、詳細は省略する。ステップS807の詳細については<消失ビット特定処理>の項で後述する。
また、ステップS808では、消失ビット特定部705で、透かし情報が抽出できないと判定する。
ステップS809において、生成部706で、消失ビットZに基づいた誤り訂正符号化されたデータを生成する。Zよりも前にある誤り訂正符号化されたデータの生成は文字間隔のペアを順に組むことで行なう。Zは消失とする。Zよりも後にある誤り訂正符号化されたデータの生成は文字間隔のペアをずらして組むことで行なう。ステップS809の詳細については<消失ビットがある場合の誤り訂正符号化されたデータ生成処理>の項で後述する。
ステップS810において、透かし情報抽出部707で、誤り訂正符号化されたデータを復号し、透かし情報708を得る。埋め込み時に用いた誤り訂正符号の復号方法によって復号する。このときに使用する方法は、信頼度を用いた軟判定復号でも硬判定復号でもかまわない。
最後に、ステップS811において、文書内全てから透かし情報708を抽出したか否かが判断される。全てから透かし情報708を抽出した場合(YES)は処理を終了し、抽出していない場合(NO)は、ステップS804に戻る。
<消失ビット特定処理>
図9は、実施形態1における消失ビットZを特定する例を説明するためのフローチャートである。
まず、ステップS807aにおいて、Z=1とする。
ステップS807bにおいて、文字間隔のペアP’とS’の値をセットする。具体的には、P’=charsp2Z−1、S=charsp2Zとする。ここで、charspは、Aの初期値を1とすると、データ部のA番目の文字間隔を表す。従って、S807bでは、データ部の最初から順に文字間隔のペアを取得していることになる。
ステップS807cにおいて、Zにおける埋め込み信頼度T1を算出する。T1の算出方法は以下のとおりである。
[埋め込み信頼度T1]
埋め込み信頼度T1は、以下の性質を利用して定める。外接矩形の増減がない場合は、透かし情報を埋め込みときに用いた間隔操作値Xと2つの文字間隔P’、S’に基づいた関係が維持される。ここで、間隔操作値Xは埋め込み時に用いられた値である。図11に透かし情報の埋め込み例(透かし情報0を埋め込むために、P>Sにする)を示す。
図11の1101は、透かし情報を埋め込む前のPとSの関係を示している。1102では、P1=S1=(P+S)÷2にするために、2番目の外接矩形を移動させている。つまり、P1とS1の間隔を同じにしている。1103では、間隔操作値Xを用いて、P’=P1+X、S’=S1−Xと変化させている。その結果、P’>S’となり、透かし情報0が埋め込まれた。
すなわち、透かし情報埋め込み時に
||P’−S’|−2X|=0・・・(1)
が成り立つことが分かる。
よって、透かし情報抽出時に外接矩形の増減がなければ、情報抽出の元となるP’とS’の対応関係が変化しないため、式(1)が成立していると考えられる。
また、矩形誤りやノイズがない場合に文字間隔P’およびS’が取りうる範囲に収まっているかを以下のように判断する。
Figure 2010130202
ここで、charsp_judgeは文字間隔判定結果であり、charsp_max_thは文字間隔最大閾値、charsp_min_thは文字間隔最小閾値である。文字間隔最大閾値及び文字間隔最小閾値は、文字間隔として取り得る最大値と最小値を設定すればよい。ある一例として、いくつかのサンプル文書中の文字間隔のヒストグラムを生成し、最大値と最小値をそれぞれ、文字間隔最大閾値、文字間隔最小閾値としてもよい。
図12にcharsp_min_thを−1、charsp_max_thを40とした場合で、charsp_judgeが0になる場合を示した。ここで、文字間隔の負に取る場合は、文字の外接矩形同士が重なっている場合である。文字間隔は後の文字の外接矩形を構成する一番左の座標から前の文字の外接矩形を構成する一番右の座標を引いたものである。従って、前の文字の外接矩形が後の文字の外接矩形に重なると負の値を取る。1201では、「検」と「索」の間の文字間隔Sが文字の外接矩形同士が重なっているため、−5になっている。その結果、charsp_min_thより小さいため、charsp_judgeが0となる。一方、1202では、ノイズと「電」の間の文字間隔P’が50になっており、charsp_max_thより大きいため、charsp_judgeが0となる。
以上の式(1)および(2)を考慮した埋め込み信頼度T1は、
Figure 2010130202
で示される。ここで、γは1よりも大きい任意の定数であり、例えば、1.1と設定する。
T1はまず、式(1)の効果で、文字間隔の増減なしなら1に近づき、文字間隔の増減ありなら0に近づく。また、式(2)の効果で、矩形誤りやノイズがない場合に文字間隔が取りうる範囲にあるなら1になり、取りうる範囲ではないなら、0になる。
そのため、透かし情報を埋め込んだときの文字間隔のP’とS’の対応関係が変化している部分を判定できる。従って、消失ビットZを特定できる。
ステップS807dにおいて、T1が閾値th1よりも大きいか否かが判断される。ここで、閾値th1は、0から1までの任意の値であり、例えば複写物からも情報を抽出するために、文書の複写による文字間隔の1画素ないしは2画素程度の変化を考慮して0.6と設定される。T1がth1よりも大きい場合(YES)はステップS807eに進む。また、T1がth1以下の場合(NO)はステップS807の処理を終了する。
ステップS807eにおいて、Zをインクリメントする。
最後に、ステップS807fにおいて、ZがN以下か否かが判断される。ZがN以下の場合(YES)は、全てのビットを見ていないとして、ステップS807bに戻る。また、ZがNより大きいの場合(NO)は、全てのビットを見たとして、ステップS807の処理を終了する。
<消失ビットがある場合の誤り訂正符号化されたデータ生成処理>
誤り訂正符号化されたデータの消失ビット以降の各ビットを消失または文字間隔のペアをずらして生成する。そのため、より正しい誤り訂正符号化されたデータを生成できる。従って、正しい透かし情報を抽出できる確率が高くなる。
図10は、実施形態1における消失ビットがある場合の誤り訂正符号化されたデータを生成する例を説明するためのフローチャートである。また、文字間隔が一つ増えた場合の消失ビット特定(ステップS807)、誤り訂正符号化されたデータ生成(ステップS809)、誤り訂正符号化されたデータの復号(ステップS810)の動作例を図13を用いて説明する。この例では、埋め込み時の文字間隔の数は、N=7として、2×7=14個であり、抽出時の文字間隔の数は、charsp15まである通り、15個である。一つの文字間隔値「25」が増えている。
まず、文字間隔が一つ増えた場合の誤り訂正符号化されたデータの生成を図10と図13を用いて説明する。
図13のStep1において、消失ビットZを特定する。データ部の0ビット目から順にT1が閾値th1(この例では0.6とする)より大きいかを比較している。その結果、3ビット目の時にth1より小さくなっている。従って、消失ビットZは3と特定される。
図13のStep2において、誤り訂正符号化されたデータを生成する。以下は、図10のフローチャートの説明をする。
ステップS809aにおいて、誤り訂正符号化されたデータでの計算する対象ビットYの値を1とする。
ステップS809bにおいて、Yと消失ビットZを比較し、その結果の応じて処理を切り替える。Y<Zの場合は、ステップS809cに進む。
ステップS809cにおいて、データ部のYビット目に該当する文字間隔PとSをそのまま大小比較し、Yビット目の誤り訂正符号化されたデータを取得する。具体的には、例えばP’>S’ならば1を、P’<S’ならば0を誤り訂正符号化されたデータとして生成する。
図13のStep2では、S809cはZ=3より小さい1ビット目および2ビット目の処理である。該当するビットは文字間隔のペアをずらさないで誤り訂正符号化されたデータを生成していることが分かる。
ステップS809bにおいて、Y=Zの場合は、ステップS809dに進む。
ステップS809dにおいて、Yビット目の誤り訂正符号化されたデータを消失ビットとする。
図13のStep2では、S809dはZ=3ビット目の処理である。3ビット目は消失ビットとしている。
ステップS809bにおいて、Y>Zの場合は、ステップS809eに進む。
一方、ステップS809eにおいて、文字間隔の数が埋め込み時と比べて、一つ減少しているか否かが判断される。抽出された文字間隔の数が埋め込み時のデータ部に存在した文字間隔の数である2N個から変化しているかを判定する。一つ減少している場合(YES)は、ステップS809fに進む。また、一つ減少していない場合、つまり、一つ増加している場合(NO)は、ステップS809gに進む。
ステップS809fにおいて、通常の文字間隔のペアPとSを一つ左にずらして作り、PとSを大小比較し、Yビット目の誤り訂正符号化されたデータを取得する。
逆に、ステップS809gにおいて、通常の文字間隔のペアPとSを一つ右にずらして作り、PとSを大小比較し、Yビット目の誤り訂正符号化されたデータを取得する。
図13のStep2では、S809eからS809gはZ=3より大きい4ビット目から7ビット目の処理である。ただし、図13は文字間隔の数が一つ増加しているので、S809fの処理は行なわず、S809gの処理を行なう。該当するビットは、文字間隔のペアをずらして誤り訂正符号化されたデータを生成していることが分かる。具体的には、4ビット目のペアは本来、P’=「14」とS’=「35」である。これを一つ順方向にずらすことで、P’=「35」とS’=「29」としている。そのため、文字間隔が一つ増えたことを考慮した誤り訂正符号化されたデータを生成することができる。
ステップS809iにおいて、Yをインクリメントする。
最後に、ステップS809jにおいて、YがN以下か否かが判断される。YがN以下の場合(YES)は、誤り訂正符号化されたデータの全てのビットを算出していないとして、ステップS809bに戻る。また、YがNより大きい場合(NO)は、全てのビットを算出したとして、ステップS809の処理を終了する。
また、図13のStep3は誤り訂正符号化されたデータを復号する。図13では、元の誤り訂正符号化されたデータ「0110001」は透かし情報「0110」に対して誤り訂正符号の一つであるBCH符号を用いて符号化している。具体的には、透かし情報「0110」に誤り訂正用の検査ビット「001」を加えた「0110001」を誤り訂正符号化されたデータとしている。Step3では、Step2で生成された誤り訂正符号化されたデータ「01※0001」を復号し、復号した情報として「0110」が得られ、正しい透かし情報を抽出できることが分かる。ここで、「※」は消失ビットを表現する(以下も同様である)。
次に、文字間隔が一つ減った場合の誤り訂正符号化されたデータの生成を図10と図14を用いて説明する。
図14は文字間隔が一つ減った場合の消失ビット特定(ステップS807)から誤り訂正符号化されたデータの復号(ステップS810)までの動作例である。この例では、埋め込み時の文字間隔の数は、図13と同様に14個であり、抽出時の文字間隔の数は、charsp13まである通り、13個である。一つの文字間隔値「9」が減った場合である。減った場所を「×」で示した。
図14のStep1において、図13のStep1と同様に消失ビットZを特定する。その結果、4ビット目の時にth1より小さくなっている。従って、消失ビットZは4と特定される。
図14のStep2において、誤り訂正符号化されたデータを生成する。Z=4以下の処理は、図10のステップS809cとステップS809dにあたり、図13と同様に処理する。
図10のステップS809eからステップS809gは図14のStep2においてZ=4より大きい5ビット目から7ビット目の処理である。ただし、図14は文字間隔の数が一つ減少しているので、S809fの処理を行ない、S809gの処理は行なわない。該当するビットは、文字間隔のペアを逆方向にずらして誤り訂正符号化されたデータを生成していることが分かる。具体的には、5ビット目のペアは本来、P’=「27」とS’=「9」である。これを一つ逆方向にずらすことで、P’=「21」とS’=「27」としている。そのため、文字間隔が一つ減ったことを考慮した誤り訂正符号化されたデータを生成することができる。
最後に図14のStep3において、誤り訂正符号化されたデータを復号する。図14の誤り訂正符号化されたデータは図13と同様に透かし情報「0110」を符号化したものである。Step2で生成された誤り訂正符号化されたデータ「011※001」を復号し、復号した情報として「0110」が得られ、正しい透かし情報を抽出できることが分かる。
本実施形態では、埋め込み時と比べて一つの文字間隔の増減があった場合にそのことを考慮した誤り訂正符号化されたデータを生成し、復号を行なった。具体的には、埋め込み信頼度と閾値を用いて、文字間隔の増減があった場所を特定した。さらに、特定した場所を消失ビットとし、それ以降の誤り訂正符号化されたデータを文字間隔のペアをずらして生成した。そのため、より正しい誤り訂正符号化されたデータを生成できる。従って、正しい透かし情報を抽出できる確率が高くなった。
なお、本実施形態では透かし情報埋め込み時の文字間隔操作方法の一例に基づいたT1の算出方法を用いた。本発明では様々な文字間隔操作方法に基づいたT1を適用できることは言うまでもない。
なお、本実施形態で述べている文字間隔の操作方法は一例であり、本発明は他の文字間隔を操作した方法でもかまわない。また、本発明は隣接する行間隔を2つ選択して、透かし情報を埋め込む場合を使用可能である。
さらに、複数の文字幅を用いて、透かし情報を埋め込む場合でも使用可能である。例えば、埋め込み信頼度を文字幅操作値に基づいて算出し、変化があるか否かで判定できる。
なお、本実施形態では、オブジェクトとして文字を用いた。しかしながら、本発明は外接矩形を認識できるもの、つまり文字に限らず写真領域、図形領域、文字の行、グラフ領域もしくはそれらが混在したもの全てに適用できる。
<変形例1>
実施形態1において、埋め込み信頼度T1と閾値th1を比較することで、消失ビットZを特定していた。
変形例1では、3文字間の幅に基づいた信頼度である同期信頼度T2と閾値th2を比較することで消失ビットZを特定する。ここで、閾値th2は、th1と同様に0から1までの任意の値である。
上記実施形態1と変形例1との違いは上記した通り、消失ビットZを特定するための信頼度と判定するための閾値が異なる。以下で同期信頼度T2を説明する。
[同期信頼度T2]
同期信頼度T2は、以下の性質を利用して定める。外接矩形の増減がない場合すなわち文字間隔の増減がない場合は、透かし情報の埋め込み時も抽出時も3文字間の文字幅はほぼ等しいという関係がある。図15に例を示す。
図15の四角形は文字の外接矩形を示す。まず、1501は埋め込み時の3文字間の関係を示している。P1_inおよびS1_inは、T2算出対象の位置における埋め込み時のPとSを示す。W1_in、W2_in、W3_inはP1_inとS1_inを構成する外接矩形の文字幅を示す。ここで、埋め込み時の3文字間の距離Embed_3Lは、
Embed_3L=W1_in+P1_in+W2_in+P2_in+W3_in・・・(4)
で示される。
また、1502は抽出時の3文字間の関係を示している。P1_outおよびS1_outは、T2算出対象の位置における抽出時のPとSを示す。W1_out、W2_out、W3_outはP1_outとS1_outを構成する外接矩形の文字幅を示す。1502では、1501に比べて、2文字目の文字幅W2が複写による文字の太りによって、変化している。なお、埋め込み時と比べて、値が変化した文字幅および文字間隔に関しては、記号を太字にした。ここで、抽出時の3文字間の距離Extract_3Lは、
Extract_3L=W1_out+P1_out+W2_out+P2_out+W3_out・・・(5)
で示される。
従って、埋め込み時と抽出時の関係より、
Embed_3L≒Extract_3L・・・(6)
が成り立つ。
また、Embed_3Lは平均埋め込み領域幅Embed_3L_aveと等しいと考えれば良い。すなわち、抽出時の文字幅の平均値W_out_aveと文字間隔の平均値charsp_out_aveを用いて、Embed_3L_aveは、
Embed_3L_ave=3×W_out_ave+2×charsp_out_ave・・・(7)
が成り立つ。
従って、同期信頼度T2は、
Figure 2010130202
で示される。ここで、αは1よりも大きい任意の定数であり、例えば、1.1と設定する。なお、W_out_aveおよびcharsp_out_aveは文書の1行の平均に基づいたものでも良いし、1ページ単位でも良い。
T2は文字間隔の増減なしなら1に近づき、文字間隔の増減ありなら0に近づく。つまり、文字間隔の増減の場所を判定できる。従って、消失ビットZを特定できる。
変形例1では、3文字間の幅に基づいた信頼度である同期信頼度T2と閾値th2を比較することで消失ビットZを特定する。変形例1は、間隔操作値Xが一定ではない場合や間隔操作値Xが既知ではない場合に有効だと考えられる。なお、変形例1では、T2を用いたが、他の同期信頼度を用いても良い。例えば、文字の高さを用いる信頼度などが考えられる。
<変形例2>
実施形態1および変形例1では、T1またはT2がth1またはth2より小さいビットが発生した時点でそのビットを消失ビットとして処理を終了した。従って、th1およびth2が適切に設定されていない場合は、消失ビットZではないビットが誤って消失ビットZと判定されてしまうことになる。
変形例2では、まずデータ部のあるビットAを除いた各信頼度の合計信頼度ALLを計算する。Aは1からNまでの整数である。また、各信頼度には埋め込み信頼度T1を用いる。ここで、ALLを構成するビットに消失ビットZが含まれている場合は、各信頼度の値が低下してしまう。一方で、消失ビットZが含まれていない場合は、各信頼度の値は低下しない。そのため、ALLからALLの中で一番大きい値を持つときのビットAが消失ビットZとなる。
変形例2は、閾値で判定し、信頼度算出処理を全てのビットで行なわない場合がある実施形態1および変形例1より確実に消失ビットを特定することができる。
ALLの計算方法はまずAより小さいビットは文字間隔のペアをずらさないで、ビットの信頼度を算出し、ALLに加算する。Aより大きいビットは、文字間隔が一つ増えた場合は、文字間隔のペアを一つ順方向にずらす。そして、ビットの信頼度を算出し、ALLに加算する。また、文字間隔が一つ減った場合は、文字間隔のペアを一つ逆方向にずらす。そして、ビットの信頼度を算出し、ALLに加算する。Aの初期値は1として、AがNまで計算する。
ただし、ALLの計算方法を工夫できる。ここで、図16を用いて、変形例2のALLとALLの例を説明する。まず、ALLとALLは上記のとおりに計算する。図16より、ALLは、0.21+0.21+1.00+1.00+1.00+1.00=4.42となっている。また、ALLは、1.00+0.21+1.00+1.00+1.00+1.00=5.21となっている。つまり、ALLはまずALLに1ビット目の文字間隔のペアをずらさない埋め込み信頼度(T1とする)を加算する。次に、2ビット目の文字間隔のペアをずらした埋め込み信頼度(T1_SHIFTとする)を減算したと分かる。以降、ALL=ALLA−1+T1A−1−T1_SHIFTと計算できる。
図16を用いて、変形例2の消失ビット特定の例を説明する。まず、ALLからALL、ALLと順にALLまで計算している。ここで、ALLの値が6.00となり合計信頼度ALLの中で一番大きい値を持つため、消失ビットZは3となることが分かる。
変形例2では、合計信頼度ALLを各ビットAにて計算することで、消失ビットZを特定した。変形例2は文字間隔の増減があった場所を実施形態1および実施形態2より確実に特定することができる。なお、変形例2では、合計信頼度ALLの各信頼度は埋め込み信頼度T1を用いたが、同期信頼度T2など他の信頼度を用いてもよい。
なお、変形例2よりも文字間隔の増減があった場所を特定する効果が減じられるが、ALLに対する閾値th3を用いて、th3より大きくなるALLを消失ビットZとしても良い。閾値th3は、th1およびth2と同様に0から1までの任意の値である。
これによって、処理量が減らすことができると考えられる。
(実施形態2)
実施形態1の変形例2では、一つの文字間隔が増減した場合の処理を記述した。しかしながら、2つの文字間隔が増減した場合の処理がない。そこで、本実施形態では2つの文字間隔が増減した場合も考慮した処理をする。
具体的には、消失ビットZを2つ用いる。まず、最初の消失ビットZ1を特定する。次に、ペアをずらして、もう一つの消失ビットZ2を特定する。これによって、別々の場所で文字間隔が増減しても特定し、消失ビットに基づいた誤り訂正符号化されたデータを生成する。
また、文字間隔の増減が連続した場合も文字幅や文字間隔のペアを2つずらすことで判断し、処理する。
実施形態2は、実施形態1における図8のステップS808の処理が異なる。S808が図23のステップS2301に置き換わる。ステップS808の処理が、図23のステップS2301に置き換わり、それ以外の処理については実施形態1と同様なので、説明を省略する。
図23は、実施形態2における消失ビットを特定から誤り訂正符号化されたデータを生成する手順までを示すフローチャートである。
まず、ステップS2302において、文字間隔の数が2つ増加したかを判断する。実施形態1と同様にデータ部の文字間隔の数と比較して判断する。
S2302で2つ増加したと判断した場合(YES)は、ステップS2303に進む。
S2303では2つ増加した場合の消失ビットZ1、Z2を特定し、ステップS2304でZ1、Z2に基づいた誤り訂正符号化されたデータを生成し、S2301の処理を終了する。詳しくは<文字間隔が2つ増加した場合の処理>で述べる。
S2302で2つ増加ではないと判断した場合(NO)は、ステップS2305に進む。
ステップS2305において、文字間隔の数が2つ減少したかを判断する。
S2305で2つ減少したと判断した場合(YES)は、ステップS2306に進む。
S2306では2つ減少した場合の消失ビットZ1、Z2を特定し、ステップS2304でZ1、Z2に基づいた誤り訂正符号化されたデータを生成し、S2301の処理を終了する。詳しくは<文字間隔が2つ減少した場合の処理>で述べる。
S2305で2つ減少ではないと判断した場合(NO)は、ステップS2307に進み、S808と同様に透かし情報が抽出できないと判定し、S2301の処理を終了する。
<文字間隔が2つ増加した場合の処理>
文字間隔が2つ増加した場合の処理は、図18、図19の処理例と図24の消失ビット特定フローに基づいて説明する。
図18は別々の場所に2つの文字間隔が増えた場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。この場合は、別々の場所で一つずつ文字間隔が増加するので、文字間隔のペアが右に2回ずれることになる。従って、まず文字間隔が増加する2箇所を消失ビットZ1、Z2とし特定する。そして、誤り訂正符号化されたデータ生成時にZ1、Z2に基づいて文字間隔のペアを右に2回ずらすことでデータ復号を可能とする。Z1、Z2の特定までは図24のフローチャートで説明する。
図24は、本実施形態における2つの文字間隔が増えた場合の消失ビットを特定する手順を示すフローチャートである。
ステップS2303aにおいて、Z1を実施形態1のZと同様に特定する。図18ではStep1の処理であり、Z1=3となる。ステップS2303bにおいて、Z1より後のペアを元から右に2つずらし、T1を算出する。そして、ステップS2303cにおいて、算出したT1が全てth1より大きいかを判断する。T1が全てth1より大きい場合(YES)はステップS2303dに進み、文字間隔が2つ連続増加したと判断され,ステップS2303の処理を終了する。T1が全てth1より大きくない場合(NO)はステップS2303eに進み、別々の場所で文字間隔が1つずつ増加したと判断される。
図18は、別々の場所で文字間隔が1つずつ増加した場合である。処理としては、Z1=3より後のペアである「14」と「35」のペアを右に2つずらして「29」と「20」のペアから順次T1を算出する。しかしながら、全てのペアのT1がth1より大きくないので、別々の場所で文字間隔が1つずつ増加したと判断される。
ステップS2303fでは、Z1より後のペアを元から右に1つずらし、Z2を特定し、ステップS2303の処理を終了する。図18では、Step2の処理であり、まずZ1=3より後のペアである「14」と「35」のペアを右に1つずらして「35」と「29」のペアから順次T1を算出する。次に、th1と比較することで、Z2=5となる。S2303の処理が終わった後は、ステップ2304に進み、誤り訂正符号化されたデータを生成する。図18ではStep3において、Z1=3とZ2=5に基づいて、1ビット目と2ビット目はそのままのペアでデータを生成する。3ビット目は消失させる。4ビット目はペアを右に1つずらしてデータを生成する。5ビット目は消失させる。最後に6ビット目と7ビット目は4ビット目以降でずらしたペアをさらに右に1つずらしてデータを生成する。これによって、各箇所の文字間隔増加による文字間隔のペアをズレが無くなる。
図18では、最後のStep4において、データが復号されたことが分かる。
図19は文字間隔が連続して2つ増えた場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。この場合は、途中で文字間隔のペアが右に2つずれることになる。従って、まず文字間隔が増加する消失ビットZ1を特定する。この場合、Z2は必要ない。そして、誤り訂正符号化されたデータ生成時にZ1に基づいて文字間隔のペアを右に2つずらすことでデータ復号を可能とする。Z1の特定までは図24で説明する。
ステップS2303aにおいて、Z1を特定する。図19ではStep1の処理であり、Z1=3となる。
ステップS2303bにおいて、ペアを右に2つずらしT1を算出する。そして、ステップS2303cにおいて、算出したT1が全てth1より大きいかを判断する。図19ではStep2の処理であり、全てth1より大きいことが分かる。
S2303cにおいて、T1が全てth1より大きい場合(YES)はステップS2303dに進み、文字間隔が2つ連続増加したと判断され,ステップS2303の処理を終了する。図19では上記の場合に該当するので文字間隔が2つ連続増加したと判断される。
S2303の処理が終わった後は、ステップ2304に進み、誤り訂正符号化されたデータを生成する。図19ではStep3において、Z1=3に基づいて、1ビット目から2ビット目はそのままのペアでデータを生成する。3ビット目は消失させる。4ビット目から7ビット目はペアを右に2つずらしてデータを生成する。
図19では、最後のStep4において、データが復号されたことが分かる。
<文字間隔が2つ減少した場合の処理>
文字間隔が2つ減少した場合の処理は、図20から図22までの処理例と図4の消失ビット特定フローに基づいて説明する。
図20は一つの場所で2つの文字間隔が連続して減り、1ビットの消失ビットが生じる場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。また、図21は一つの場所で2つの文字間隔が連続して減り、2ビットの消失ビットが生じる場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。これらの場合は、途中で連続して2つの文字間隔が無くなり、無くなった箇所を構成する文字の文字幅は実質3文字分であるから、他よりも広くなる。従って、まず文字間隔が減少する1箇所を文字幅の閾値th3を用いて、消失ビットZ1ないしZ2を特定するそして、誤り訂正符号化されたデータ生成時にZ1ないしZ2に基づいて文字間隔のペアをずらさないことでデータ復号を可能とする。
Z1、Z2の特定までは図4のフローチャートで説明する。
図4は、本実施形態における2つの文字間隔が減った場合の消失ビットを特定する手順を示すフローチャートである。
ステップS2306aにおいて、各文字の文字幅Wを算出する。例えば、図20のように、データ部の1文字目から78、60というように算出する。
ステップS2306bにおいて、算出した各Wは閾値th3より小さいかが判断される。ここで、閾値th3の値は例えば、文字幅の平均値の3倍したものから120と設定される。Wが全てth3より小さい場合(YES)はステップS2306cに進み、別々の場所で文字間隔が1つ減少したと判断される。ステップS2306d以降の処理は図22の例のときに説明する。Wが全てth3より小さくない場合(NO)はステップS2306fに進み、文字間隔が2つ連続減少したと判断される。そして、ステップS2306gにおいて、初めてth3以上の文字幅の場所i番目として、Z1=(i+1)/2としてZ1を算出する。図20では、Step1において7文字目でW=145がth3=120以上のため、
i=7としてZ1=(7+1)/2=4と算出されることが分かる。また図21では、Step1において6文字目でW=128がth3=120以上のため、
i=6としてZ1=(6+1)/2=3と算出されることが分かる。
ステップS2306bにおいて、iが奇数であるか否かが判断される。これによって、減少した文字間隔が元々ペアであったか否かが分かり、消失ビットが1ビットか2ビットかが分かる。S2306bにおいて、iが奇数である場合(YES)はステップS2306iに進み、1ビットの情報が消失したと判断され、ステップS2306の処理を終了する。iが偶数である場合(NO)はステップS2306jに進み、2ビットの情報が消失したと判断される。そして、ステップS2306kに進み、消失ビットZ2をZ1をインクリメントして求め、ステップS2306の処理を終了する。図20では、i=7なので、奇数であるため、1ビットの情報が消失したと判断される。また、図21では、、i=6なので、偶数であるため、2ビットの情報が消失したと判断される。そして、Z2=3+1=4が算出される。
S2306の処理が終わった後は、ステップ2304に進み、誤り訂正符号化されたデータを生成する。図20ではStep3において、Z1=4に基づいて、1ビット目から3ビット目まではそのままのペアでデータを生成する。4ビット目は消失させる。そして、5ビット目から7ビット目までもそのままのペアでデータを生成する。また図21ではStep3において、Z1=3とZ2=4に基づいて、1ビット目と2ビット目はそのままのペアでデータを生成する。3ビット目と4ビット目は消失させる。そして、5ビット目から7ビット目までもそのままのペアでデータを生成する。
図20と図21では、最後のStep4において、データが復号されたことが分かる。
図22は別々の場所で2つの文字間隔が減った場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。この場合は、別々の場所で一つずつ文字間隔が減少するので、文字間隔のペアが左に2回ずれることになる。従って、まず文字間隔が減少する2箇所を消失ビットZ1、Z2とし特定する。そして、誤り訂正符号化されたデータ生成時にZ1、Z2に基づいて文字間隔のペアを左に2回ずらすことでデータ復号を可能とする。Z1、Z2の特定までは図4で説明する。
ステップS2306aにおいて、Wを算出する。そして、ステップS2306bにおいて、算出した各Wは閾値th3より小さいかが判断される。図22では、Wが全てth3より小さい場合(YES)はステップS2306cに進み、別々の場所で文字間隔が1つ減少したと判断される。
ステップS2306dにおいて、Z1を特定しステップS2306の処理を終了する。図22では、Step1の処理に該当し、Z1=4となる。
ステップS2306eにおいて、Z1より後のペアを元から左に1つずらし、Z2を特定する。図22では、Step2の処理に該当し、まずZ1=4より後の5ビット目の「27」と「9」のペアを「21」と「27」と左に1つずらし、順にT1を算出する。そして、T1をth1と比較することで、Z2=6となる。
S2303の処理が終わった後は、ステップ2304に進み、誤り訂正符号化されたデータを生成する。図22ではStep3において、Z1=4とZ2=6に基づいて、1ビット目から3ビット目まではそのままのペアでデータを生成する。4ビット目は消失させる。5ビット目はペアを左に1つずらしてデータを生成する。6ビット目は消失させる。最後に7ビット目は5ビット目以降でずらしたペアをさらに左に1つずらしてデータを生成する。これによって、各箇所の文字間隔増加による文字間隔のペアをズレが無くなる。
図22では、最後のStep4において、データが復号されたことが分かる。
本実施形態では、2つの文字間隔の増減がある場合を文字幅を使用したり文字間隔のペアを2つずらすことなどで対応できる。
なお、本実施形態では、T1を用いたが、他の信頼度を用いても良い。また、実施形態3のようにより確実に消失ビットを求める方法を導入しても良い。
<その他の実施形態>
その他の実施形態として、実施形態1に係る夫々の処理をコンピュータにより行なわせる例がある。図17はコンピュータの基本構成を示す図である。例えばこのコンピュータにおいて、全ての機能を実行する場合、各機能構成をプログラムにより表現し、このコンピュータに読み込ませることで、このコンピュータで実施形態1の全ての機能を実現することが出来る。
同図において、1701はCPUで、RAM1702やROM1703に格納されているプログラムやデータを用いて、コンピュータ全体の制御を行うと共に、上記実施形態で説明した各処理を行なう。
1702はRAMで、外部記憶装置1708からロードされたプログラムやデータ、他のコンピュータシステム1714からI/F(インターフェース)1715を介してダウンロードしたプログラムやデータを一時的に記憶するエリアを備える。さらに、1702は、CPU1701が各種の処理を行なうために必要とするエリアも備える。
1703はROMで、コンピュータの機能プログラムや設定データなどを記憶する。1704はディスプレイ制御装置で、画像や文字等をディスプレイ1705に表示させるための制御処理を行なう。1705はディスプレイで、画像や文字などを表示する。なお、ディスプレイとしてはCRTや液晶画面などが適用可能である。
1706は操作入力デバイスで、キーボードやマウスなど、CPU1701に各種の指示を入力することのできるデバイスにより構成されている。1707は操作入力デバイス1706を介して入力された各種の指示等をCPU1701に通知するためのI/Oである。
1708はハードディスクなどの大容量情報記憶装置として機能する外部記憶装置で、OS(オペレーティングシステム)や上記各実施形態に係る処理をCPU1701に実行させるためのプログラム、入出力原稿画像などを記憶する。外部記憶装置1708への情報の書き込みや外部記憶装置1708からの情報の読み出しはI/O1709を介して行われる。
1710は文書や画像を出力する為のプリンタで、出力データはI/O1711を介してRAM1702、もしくは外部記憶装置1708から送られる。なお、文書や画像を出力する為のプリンタとしては、例えばインクジェットプリンタ、レーザビームプリンタ、熱転写型プリンタ、ドットインパクトプリンタなどが挙げられる。
1712は文書や画像を読み取るためのスキャナで、入力データはI/O1713を介してRAM1702、もしくは外部記憶装置1708に送られる。
1716は、CPU1701、ROM1703、RAM1702、I/O1711、I/O1709、ディスプレイ制御装置1704、I/F1715、I/O1707、I/O1713を繋ぐバスである。
なお本実施形態では、スキャンやプリンタを除く処理をコンピュータにより行っているが、スキャナやプリンタ内部の専用のハードウェア回路を用いて、コンピュータで行なう処理を代行しても良い。
なお、上記各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、スキャナ、webアプリケーション等)から構成されるシステムに適用しても良いし、また、1つの機器からなる装置に適用しても良い。
本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したコンピュータ可読のプログラムである。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
文字から算出される外接矩形と文字間隔の例である。 実施形態1における埋め込みデータの構成例である。 文字の外接矩形が誤って取得される場合の例である。 実施形態2における2つの文字間隔が減った場合の消失ビットを特定する手順を示すフローチャートである。 実施形態1における透かし情報埋め込み装置の構成図である。 実施形態1における透かし埋め込み手順を示すフローチャートである。 実施形態1における透かし情報抽出装置の構成図である。 実施形態1における透かし抽出手順を示すフローチャートである。 実施形態1における消失ビットを特定する手順を示すフローチャートである。 実施形態1における消失ビットがある場合の誤り訂正符号化されたデータを生成する手順を示すフローチャートである。 実施形態1における埋め込み時の文字間隔と間隔操作値の関係を示す図である。 実施形態1におけるcharsp_judgeが0を示す例である。 実施形態1における一つの文字間隔が増えた場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。 実施形態1における一つの文字間隔が減った場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。 実施形態1の変形例1における埋め込み時と抽出時の3文字間の関係を示す図である。 実施形態1の変形例2における一つの文字間隔が増えた場合の消失ビット特定する例である。 本発明における機能を実現するコンピュータの基本構成を示す図である。 実施形態2における別々の場所に2つの文字間隔が増えた場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。 実施形態2における一つの場所に2つの文字間隔が連続して増えた場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。 実施形態2における一つの場所で2つの文字間隔が連続して減り、1ビットの消失ビットが生じる場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。 実施形態2における一つの場所で2つの文字間隔が連続して減り、2ビットの消失ビットが生じる場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。 実施形態2における別々の場所で2つの文字間隔が減った場合の消失ビット特定から誤り訂正符号化されたデータを復号するまでの例である。 実施形態2における消失ビットを特定から誤り訂正符号化されたデータを生成する手順までを示すフローチャートである。 実施形態2における2つの文字間隔が増えた場合の消失ビットを特定する手順を示すフローチャートである。

Claims (8)

  1. 文書画像内の文字間隔を操作して埋め込まれている透かし情報を抽出する抽出装置であって、
    前記文書画像内の文字間隔を取得する文書情報取得手段と、
    前記文字間隔の大小関係を用いて、データ部を抽出するデータ部抽出手段と、
    前記データ部の文字間隔の数が埋め込み時と変化しているかを判定する判定手段と、
    前記判定手段においてデータ部の文字間隔の数が埋め込み時と変化していると判定した場合は、データの消失ビットを特定する消失ビット特定手段と、
    前記消失ビットと前記文字間隔とに基づいて、誤り訂正符号化されたデータを生成する生成手段と、
    前記誤り訂正符号化されたデータを復号し、透かし情報を抽出する透かし情報抽出手段とを有することを特徴とする抽出装置。
  2. 前記消失ビット特定手段は、信頼度を算出して予め定められた閾値と比較することで消失ビットを特定することを特徴とする請求項1に記載の抽出装置。
  3. 前記信頼度は、前記文字間隔と埋め込み時に用いた間隔操作値に基づいて算出されることを特徴とする請求項2に記載の抽出装置。
  4. 前記信頼度は、前記文字間隔と文字の幅に基づいて算出されることを特徴とする請求項2に記載の抽出装置。
  5. 前記生成手段は、データ部の各ビットが前記消失ビットに該当する場合は消失ビットとして生成され、前記消失ビットより後にある場合は順方向または逆方向にずらした文字間隔に基づいて生成されることを特徴とする請求項1から請求項4のいずれか1項に記載の抽出装置。
  6. 文書画像内の文字間隔を操作して埋め込まれている透かし情報を抽出する抽出方法であって、
    前記文書画像内の文字間隔を取得する文書情報取得工程と、
    前記文字間隔の大小関係を用いて、データ部を抽出するデータ部抽出工程と、
    前記データ部の文字間隔の数が埋め込み時と変化しているかを判定する判定工程と、
    前記判定工程においてデータ部の文字間隔の数が埋め込み時と変化していると判定した場合は、データの消失ビットを特定する消失ビット特定工程と、
    前記消失ビットと前記文字間隔とに基づいて、誤り訂正符号化されたデータを生成する生成工程と、
    前記誤り訂正符号化されたデータを復号し、透かし情報を抽出する透かし情報抽出工程とを有することを特徴とする抽出方法。
  7. コンピュータに、請求項1から請求項5のいずれか1項に記載の抽出装置の機能を実行させるためのプログラム。
  8. 請求項7に記載のプログラムを格納することを特徴とするコンピュータが読み取り可能な記録媒体。
JP2008301215A 2008-11-26 2008-11-26 抽出装置及びその方法 Pending JP2010130202A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008301215A JP2010130202A (ja) 2008-11-26 2008-11-26 抽出装置及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008301215A JP2010130202A (ja) 2008-11-26 2008-11-26 抽出装置及びその方法

Publications (1)

Publication Number Publication Date
JP2010130202A true JP2010130202A (ja) 2010-06-10

Family

ID=42330288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008301215A Pending JP2010130202A (ja) 2008-11-26 2008-11-26 抽出装置及びその方法

Country Status (1)

Country Link
JP (1) JP2010130202A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110428356A (zh) * 2019-07-22 2019-11-08 中孚安全技术有限公司 一种纸质打印件暗水印溯源方法、系统、终端及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110428356A (zh) * 2019-07-22 2019-11-08 中孚安全技术有限公司 一种纸质打印件暗水印溯源方法、系统、终端及存储介质
CN110428356B (zh) * 2019-07-22 2023-04-28 中孚安全技术有限公司 一种纸质打印件暗水印溯源方法、系统、终端及存储介质

Similar Documents

Publication Publication Date Title
US20100164984A1 (en) Method for Embedding Messages into Documents Using Distance Fields
JP4072448B2 (ja) 電子透かし抽出方法及び装置及びプログラム及び記憶媒体
JP4510092B2 (ja) 電子透かしの埋め込み及び検出
JP2006345017A (ja) 画像処理方法および画像処理装置および画像処理プログラムおよび記録媒体
KR100741627B1 (ko) 화상 처리 장치, 화상 처리 방법, 및 기억매체
JP2006295606A (ja) 画像処理装置及びその方法、プログラム並びに記憶媒体
EP3477578A1 (en) Watermark embedding and extracting method for protecting documents
JP4532331B2 (ja) 情報埋め込み装置、情報抽出装置、情報埋め込み方法、情報抽出方法、情報埋め込みプログラム、及び情報抽出プログラム
EP2088553A1 (en) Apparatus, system, and method for identifying embedded information
JP2010130202A (ja) 抽出装置及びその方法
JP2007088693A (ja) 画像処理システム,改ざん検証装置,改ざん検証方法およびコンピュータプログラム
JP2008085579A (ja) 情報埋め込み装置、情報読み取り装置、情報埋め込み方法、情報読み取り方法、およびコンピュータプログラム
CN1326383C (zh) 图像处理设备和方法
CN102090052A (zh) 检测嵌入信息的装置、方法和计算机程序产品
Varna et al. Data hiding in hard-copy text documents robust to print, scan and photocopy operations
KR100988309B1 (ko) 문서식별자의 삽입방법 및 그의 해독방법
JP6164018B2 (ja) 情報処理装置及び情報処理プログラム
JP4613807B2 (ja) 文書処理装置および文書処理方法
JP2004247883A (ja) 画像処理方法
Pamboukian et al. Reversible data hiding and reversible authentication watermarking for binary images
JP4552822B2 (ja) 画像処理装置、画像処理方法、および画像処理プログラム
JP4871793B2 (ja) 情報処理装置及びその方法
Monsignori et al. A high capacity technique for watermarking music sheets while printing
Schmucker Capacity improvement for a blind symbolic music score watermarking technique
JP2010034884A (ja) 文書処理装置および文書処理方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630