以下、本発明の実施の形態について、図面を参照して説明する。
図1Aは、本発明の実施の形態の文書作成支援システム101の構成を示すブロック図である。
文書作成支援システム101は、文書の作成を支援するシステムであり、文書作成端末102、文書特徴量抽出装置103、透かしデータ作成装置106、地紋透かし埋込装置107、及び改ざん検出対象DB(Data Base)装置108を備える。文書作成端末102、文書特徴量抽出装置103、透かしデータ作成装置106、地紋透かし埋込装置107、及び改ざん検出対象DB装置108は、それぞれネットワーク110によって接続され、ネットワーク110を介して情報を送受信する。
文書作成端末102は、文書作成支援システム101を制御する端末であり、例えば、図2を用いて後記するような一般的な計算機によって実現することができる。
文書特徴量抽出装置103は文書特徴量を抽出する装置であり、例えば、図2を用いて後記するような一般的な計算機によって実現することができる。ここで文書特徴量とは、後記する文書特徴量抽出プログラム群のプログラムを用いて文書から作成される数値もしくはデータである。文書特徴量は、ある文書の文書特徴量と、その文書に改ざん等の変更を加えた文書、の文書特徴量とが、多くの場合異なるという性質を持つ。
文書特徴量抽出装置103は、文書特徴量抽出メインプログラム104、文書特徴量抽出プログラム群126(タイプ1文書特徴量抽出プログラム、タイプ2文書特徴量抽出プログラム、タイプ3文書特徴量抽出プログラム、・・・の総称)、文書特徴量比較プログラム群127(タイプ1文書特徴量比較プログラム、タイプ2文書特徴量比較プログラム、タイプ3文書特徴量比較プログラム、・・・の総称)、文書画像変換プログラム群128(タイプ1文書画像変換プログラム、タイプ2文書画像変換プログラム、タイプ3文書画像変換プログラム、・・・の総称)、文書特徴量タイプテーブル129、及び文書画像変換タイプテーブル130を含み、各プログラム(アルゴリズム)を実行することによって、文書特徴量抽出装置103の機能を実現することができる。
文書特徴量抽出メインプログラム104は、文書特徴量抽出装置103の機能を実現するためのメインプログラムである。なお、プログラムの詳細については、後記する。
文書特徴量抽出プログラム群126とは、入力された文書から文書特徴量を抽出するために実行されるプログラムであり、タイプ1文書特徴量抽出プログラムは重心利用タイプであり、タイプ2文書特徴量抽出プログラムは細線化重心利用タイプであり、タイプ3文書特徴量抽出プログラムは面積利用タイプであり、タイプ4文書特徴量抽出プログラムはラン数利用タイプである。
重心利用タイプのタイプ1文書特徴量抽出プログラムは、入力された文書から、画像の重心を用いて文書特徴量を抽出する。また、細線化重心利用タイプのタイプ2文書特徴量抽出プログラムは、入力された文書から、画像を細線化し、細線化された画像の重心を用いて文書特徴量を抽出する。また、面積利用タイプのタイプ3文書特徴量抽出プログラムは、入力された文書から、画像内の黒画素あるいは白画素の数を用いて文書特徴量を抽出する。また、ラン数利用タイプのタイプ4文書特徴量抽出プログラムは、入力された文書から、画像内のラン数を計算し、求められたラン数を用いて文書特徴量を抽出する。なお、これらプログラムの詳細については、後記する。
文書特徴量比較プログラム群127とは、文書特徴量タイプに対応する文書特徴量を比較し、差を計算するプログラムである。例えば、タイプ1文書特徴量比較プログラムは重心利用タイプであり、タイプ2文書特徴量比較プログラムは細線化重心利用タイプであり、タイプ3文書特徴量比較プログラムは面積利用タイプであり、タイプ4文書特徴量比較プログラムはラン数利用タイプである。なお、これらプログラムの詳細については、後記する。
文書画像変換プログラム群128とは、指定された文書画像に対し、文書画像変換タイプに対応する文書画像変換を施すプログラムである。例えば、タイプ1文書画像変換プログラムはぼかしタイプであり、タイプ2文書画像変換プログラムは輝度変化タイプであり、タイプ3文書画像変換プログラムは切り取りタイプであり、タイプ4文書画像変換プログラムは圧縮タイプである。なお、これらプログラムの詳細については、後記する。
文書特徴量タイプテーブル129は、文書特徴量のタイプと、各タイプの文書特徴量抽出プログラムとを対応付けて管理する。なお、文書特徴量タイプテーブル129は、図6を用いて後記する。
文書画像変換タイプテーブル130は、文書画像変換のタイプと、各タイプの文書画像変換プログラムとを対応付けて管理する。なお、文書画像変換タイプテーブル130は、図7を用いて後記する。
透かしデータ作成装置106は、透かしデータを作成する装置である。なお詳細については後記する。
地紋透かし埋込装置107は、後記する地紋透かしの技術を用いて、文書に情報(例えば、透かしデータ)を埋め込む(記録する)装置である。なお詳細については後記する。
改ざん検出対象DB装置108は、改ざん検出対象DB109を格納する。改ざん検出対象DB109は、改ざんを検出する対象となる領域が規定されるデータベースである。改ざん検出対象DB109に格納されるデータについては、図5Aを用いて後記する。
なお、文書作成端末102、文書特徴量抽出装置103、透かしデータ作成装置106、地紋透かし埋込装置107、及び改ざん検出対象DB装置108は、それぞれ別装置として記載したが、任意の複数の装置が一つのハードウェアに実装されてもよい。
図2は、本発明の実施の形態の文書特徴量抽出装置103のハードウェアの構成を示すブロック図である。
文書特徴量抽出装置103は、CPU201、メモリ202、インターフェース203、ネットワークインターフェース204、キーボード205、画面206、スキャナ207、プリンタ208、ハードディスク209、及び時計210を備える。
CPU(プロセッサ)201は、中央処理装置(Central Processing Unit)であり、メモリ202に格納されているプログラム、又はハードディスク209からメモリ202に読み出されたプログラムを実行する。なお、プログラムは、必要に応じて、計算機が利用可能であり、着脱可能な記憶媒体によって導入されてもよい。この場合、前記記憶媒体を読み取るための装置をインターフェース203に接続する。なお、このような前記記憶媒体及びそれを読み取るための装置としては、光ディスクを用いるものが一般に知られており、これを用いることができる。また、プログラムは、必要に応じて、ネットワークインターフェース204によって、通信媒体(通信回線又は通信回線上の搬送波)を介して、計算機に導入されてもよい。メモリ202は、CPU201に実行されるプログラム及びデータを一時的に格納する。インターフェース203は、文書特徴量抽出装置103内の各構成を接続するインターフェースである。ネットワークインターフェース204は、ネットワーク110を介して外部と通信するインターフェースである。キーボード205は、文書作成支援システム101への指示及びデータを入力するために、管理者が操作する入力装置である。画面206は、処理結果等を表示する装置である。スキャナ207は、印刷物等を光学的に読み取り、読み取った結果を画像として文書作成支援システム101内に入力する装置である。プリンタ208は、文書作成支援システム101の処理結果等を印刷媒体(例えば、紙面)に印刷する装置である。ハードディスク209は、プログラム及びデータを格納する装置であり、例えば、不揮発性メモリ等によって構成することができる。この場合、ハードディスク209に格納されたプログラム及びデータは、電源がOFFとなった後にONになった場合でも、保持される。時計210は、CPU201が現在の時刻を検出する装置である。
なお、ハードディスク209には、予めオペレーティングシステムが導入されていても良い。このようにすることで、ファイル名を用いてプログラムを指定することなどができるようになる。ここで、オペレーティングシステムとは、計算機の基本ソフトウェアのことであり、一般に広く知られたオペレーティングシステムを用いることができる。
また、ネットワークインターフェース204、キーボード205、画面206、スキャナ207、プリンタ208、ハードディスク209、及び時計210は、それぞれ必要に応じて省略されてもよい。
また、文書作成端末102、透かしデータ作成装置106、地紋透かし埋込装置107、及び改ざん検出対象DB装置108も、図2に示すハードウェアの構成と同じ構成を備える。
次に、文書作成支援システムで実行される文書作成処理を、図3を用いて説明する。
図3は、本発明の実施の形態の文書作成処理のフローチャートである。図3に示される文書作成フローは、文書作成支援システム101に備わる各装置のメモリ202に格納されているプログラムをCPU201が実行することによって実行される。
まず、文書作成端末102は、文書作成者から、文書データ、及び改ざん検出対象領域レコード番号の入力を受け付ける(301)。文書データは、例えば、一般のワープロソフト及びテキストエディタ等、計算機上で動作可能なソフトウェアで作成されるデータである。また、改ざん検出対象領域レコード番号は、改ざん検出対象DB109に格納されているデータ(レコード)を識別する番号であり、改ざんを検出する対象となる領域が決定される。なお、文書作成端末102は、文書作成者に改ざん検出領域レコード番号の上限を、画面206などを用いて通知しても良い。この場合、文書作成端末102は、予め後記する改ざん検出対象DB装置108にアクセスして、改ざん検出対象DB109のエントリがいくつあるか把握しておく。なお、一般のデータベース装置において、エントリがいくつあるかを調査することはごく一般の操作であり、方法が広く知られている。本実施の形態ではこのような方法を用いることができる。
次に、文書作成端末は、ステップ301で受け付けた文書データ、及び改ざん検出対象領域レコード番号を文書特徴量抽出装置103に送信する(302)。
次に、文書特徴量抽出装置103は、ステップ302で受け付けた改ざん検出対象領域レコード番号に従って、ステップ302で受け付けた文書データから文書特徴量を抽出し、文書作成端末102に送信する(305)。なお、この処理は、具体的には文書特徴量抽出メインプログラム104を、文書特徴量抽出装置103のCPU201が実行することによって行われる。ステップ305の具体的な処理は、図4を用いて後記する。
次に、文書作成端末102は、ステップ305で送信された文書特徴量を透かしデータ作成装置106に送信する(306)。
次に、透かしデータ作成装置106は、ステップ306で送信された文書特徴量から透かしデータを作成し、作成された透かしデータを文書作成端末102に送信する(307)。透かしデータには、文書特徴量がそのまま用いられてもよい。また、一般的な暗号アルゴリズムにしたがって、暗号化された文書特徴量が用いられてもよい。また、一般的な電子署名アルゴリズムにしたがって、電子署名が付与された文書特徴量が用いられてもよい。また、タイムスタンプが付与された文書特徴量が用いられてもよい。
次に、文書作成端末102は、文書データ及びステップ307で作成された透かしデータを地紋透かし埋込装置107に送信する(308)。
次に、地紋透かし埋込装置107は、ステップ308で送信された透かしデータを文書データに埋め込むことによって、透かし入り文書データを作成し、作成された透かし入り文書データを文書作成端末102に送信する(309)。具体的には、まず、地紋透かし埋込装置107は、文書データを画像化する。文書データの画像化には、市販のワープロソフトから特定の仮想プリンタに印刷し、印刷された文書データがPDF(Portable Document Format)データに変換される公知技術、及び、PDFデータから画像データに変換する公知技術を用いることができる。
次に、画像化された文書データに透かしデータを埋め込む。画像化された文書データに透かしデータを埋め込む方法は、例えば、特開2006−279640号公報に開示されている技術を用いることができる。特開2006−279640号公報に開示された情報埋め込み装置201に、埋め込み情報として透かしデータを入力し、画像化された文書データを文書画像として入力する。そして、特開2006−279640号公報の図2に示す情報埋め込み装置201の情報点群決定処理部225は、文書画像212に埋め込み情報211を埋め込んでいるため、埋め込み情報211が埋め込まれた文書画像212をハードディスク等に出力することによって、透かし入り文書データである画像が作成される。
次に、ステップ310では、文書作成端末102は、ステップ309で作成された透かし入り文書データを表示し、文書作成者の要求に応じて、透かし入り文書データを印刷又は送信する。本実施の形態では、透かし入り文書データは画像であるため、従来技術を用いて画像を表示することが可能であり、文書作成者の要求に応じて印刷又は送信することが可能である。
なお、ステップ301では、文書作成端末102は、文書データを直接受け付けているが、文書データを識別する識別子を受け付けてもよい。この場合、受け付けた識別子に基づいて、文書データが読み出される。読み出される文書データは、例えば、文書作成端末102に備わるハードディスク209及び文書作成端末102に接続されるハードディスク209等に格納されてもよい。ここで、文書データを識別する識別子の例としては、例えばファイル名などが挙げられる。
また、ステップ305では、文書特徴量抽出装置103は、抽出された文書特徴量を文書作成端末102に送信しているが、抽出された文書特徴量を透かしデータ作成装置106に送信してもよい。この場合、処理はステップ306を省略し、ステップ307に進む。
また、ステップ307では、透かしデータ作成装置106は、作成された透かしデータを文書作成端末102に送信しているが、作成された透かしデータを地紋透かし埋込装置107に送信してもよい。この場合、処理はステップ308を省略し、ステップ309に進む。
図4Aおよび図4Bは文書特徴量抽出メインプログラムの処理フローを示す図である。これは、本発明の実施の形態の文書特徴量抽出処理のフローチャートであり、図3のステップ305で実行される処理の説明を示す。なお、説明の便宜上、図4Aおよび図4Bをまとめて「図4」と称する場合がある。
まず、文書特徴量抽出装置103は、文書作成端末102から文書データ、及び改ざん検出対象領域レコード番号を受信する(2101)。
次に、文書特徴量抽出装置103は、改ざん検出対象DB装置108に改ざん検出対象領域レコード番号を送信し、改ざん検出対象DB109から改ざん検出対象領域レコード600を取得する(2102)。
ここで、改ざん検出対象DB109に格納されるレコード(改ざん検出対象領域レコード600)の例を図5Aに示す。改ざん検出対象領域レコード600には、文書データから文書特徴量を抽出する領域が規定されている。図5Aに示す例は、改ざん検出対象DB109に格納されている改ざん検出対象領域レコード番号3の内容が示されている。他のレコード番号には異なる内容のレコードが格納されており、改ざんを検出する対象の領域(改ざん検出対象領域)を適宜変更することが可能である。図5Aに示す改ざん検出対象領域レコード600は、改ざん検出対象領域ID(Identification)701、始点702、及び終点703を含む。なお、改ざん検出対象領域レコード600の1行分のデータを一つのエントリとする。改ざん検出対象領域ID701は、改ざん検出対象領域を識別する識別子である。始点702は、領域の始点を指定する座標である。終点703は、領域の終点を指定する座標である。なお、座標は文書に対して付与されており、左上を(0、0)とし、x軸方向が右、y軸方向が下の座標であり、単位は例えば画素、cmや、非SI単位ではあるがインチなどを用いることができる。
図5Bに示す例は、図5Aに示す改ざん検出対象領域レコード600によって特定される改ざん検出対象領域であり、領域704、領域705、領域706、及び領域707を含む。図5Bに示す領域704は、改ざん検出対象領域ID701が「1」である領域に対応する。すなわち、領域704は、始点702が(2、3)であり、終点703が(8、6)である領域を示す。以下、同様に、図5Bに示す領域705は、改ざん検出対象領域ID701が「2」である領域に対応し、図5Bに示す領域706は、改ざん検出対象領域ID701が「3」である領域に対応し、図5Bに示す領域707は、改ざん検出対象領域ID701が「10」である領域に対応する。
このように、ステップ2102では、改ざん検出対象DB109から、指定されたレコードを取得することによって、改ざん検出対象領域が決定される。
なお、図5Bでは領域704と領域705と領域706が重複した領域を持った例を示している。このようにすることで、より文書の改ざんを成功しにくくすることができる。これは、例えばある改ざん検出対象領域に対し、攻撃者が改ざんを試みる場合、例えば改ざん対象の領域が1つの改ざん検出対象領域のみに含まれていたとすると、攻撃者はその改ざん検出対象領域の文書特徴量だけを保存するように改ざんすれば、改ざんが発覚する恐れが小さくなる。しかし、攻撃者が改ざんしようとする領域が複数の改ざん検出対象領域に含まれている場合、攻撃者は複数の改ざん検出対象領域の文書特徴量を保存するように改ざんを行う必要があり、より難しくなるからである。
次に、文書特徴量抽出装置103は、未処理の改ざん検出対象領域があるか否かを判定し、その領域がある場合(2103でYes)、改ざん検出対象領域レコード内の各エントリについて、ステップ2104からステップ2118までの処理を繰り返し、その領域がない場合(2103でNo)、ステップ2119に進む(2103)。
未処理の改ざん検出対象領域がある場合、文書特徴量抽出装置103は、改ざん検出対象領域レコードから未処理改ざん検出対象領域の一つのエントリを処理対象として選択し、改ざん検出対象領域ID、始点、終点を取得する(2104)。
次に、文書特徴量抽出装置103は、文書データから、始点と終点が規定する矩形領域の画像を作成し、処理対象画像として保存する(2105)。なお、処理対象画像を生成する処理は、前記したように、文書データから画像を取得する公知技術を用いることができる。例えば、予め文書データ全体の画像を生成し、生成された画像から、改ざん検出対象領域に対応する矩形領域の画像を切り出すことによって、処理対象画像を生成することができる。
次に、文書特徴量変化DBを初期化する(2106)。なお、文書特徴量変化DBの詳細については、図8を用いて後記する。この文書特徴量変化DBは、例えば、文書特徴量抽出装置103のメモリ202に記憶されている。
次に、文書特徴量抽出装置103は、文書特徴量タイプテーブル129内の各文書特徴量について、以下ステップ2108からステップ2117までの処理を行う(2107)。その文書特徴量の文書特徴量タイプがあれば(2107で「要素あり」)、ステップ2108に進む。各文書特徴量に対する処理が一通り済めば(2107で「繰り返し後」)、処理する文書特徴量タイプがないということでステップ2118へ進む。
次に、文書特徴量抽出装置103は、文書特徴量タイプを用いて文書特徴量タイプテーブルから文書特徴量抽出プログラムと文書特徴量比較プログラムを取得する(2108)。
ここで、文書特徴量タイプについて、図6を用いて説明する。図6は、本発明の実施の形態の文書特徴量タイプテーブル129の説明図である。文書特徴量タイプテーブル129は、例えば図6に示すようなテーブルであり、文書特徴量タイプフィールド401、説明フィールド402、文書特徴量抽出プログラムフィールド名403、文書特徴量比較プログラム名フィールド404を含んでいる。文書特徴量タイプフィールド401に示されている文書特徴量タイプは、文書特徴量を抽出するタイプを識別する識別子であり、例えば、図6に示すように番号を用いることができる。説明フィールド402は、文書特徴量タイプの内容であり、例えば、重心利用タイプ、細線化重心利用タイプ、面積利用タイプ、及びラン数利用タイプである。なお、図6に示されている以外の文書特徴量タイプがあってもよい。文書特徴量抽出プログラム名フィールド403は、文書特徴量タイプに対応する文書特徴量抽出プログラム名を示している。文書特徴量比較プログラム名フィールド404は、文書特徴量タイプに対応する文書特徴量比較プログラム名を示している。よって、文書特徴量タイプテーブル129を参照することにより、文書特徴量タイプから文書特徴量抽出プログラム名と文書特徴量比較プログラム名を参照できる。なお、説明フィールド402は省略することもできる。なお、プログラム名を参照するときは、そのプログラムを格納されているディレクトリを特定し、CPU201は特定されたディレクトリに格納されたプログラムを実行する。
次に、文書特徴量抽出装置103は、文書特徴量抽出プログラム名を用いて文書特徴量抽出プログラムを起動し、処理対象画像の文書特徴量を処理対象画像文書特徴量として抽出する(2109)。なお、文書特徴量抽出プログラムの動作の詳細については、後記する。
次に、文書特徴量抽出装置103は、文書特徴量変化評価点に0を代入する(2110)。ここで、文書特徴量変化評価点とは、文書特徴量抽出装置103のメモリ202上に置かれる変数である。
次に、文書特徴量抽出装置103は、文書画像変換タイプテーブル130内の各文書画像変換タイプについて、以下ステップ2112からステップ2116までの処理を行う(2111)。その文書画像変換タイプがあれば(2111で「要素あり」)、ステップ2112に進む。各文書画像変換タイプに対する処理が一通り済めば(2111で「繰り返し後」)、処理する文書画像変換タイプがないということでステップ2117へ進む。
ここで、文書画像変換タイプテーブル130とは、例えば図7に示すようなテーブルであり、文書画像変換タイプフィールド2301、説明フィールド2302、文書画像変換プログラム名フィールド2303、文書画像変換評価関数フィールド2304を含んでいる。なお、説明フィールド2302は省略することもできる。文書画像変換タイプテーブル130を参照することにより、文書画像変換タイプから文書画像変換プログラム名や文書画像変換評価関数を参照できる。
次に、文書特徴量抽出装置103は、文書画像変換タイプを用いて文書画像変換タイプテーブル130から文書画像変換プログラム名と文書画像変換評価関数を取得する(2112)。
次に、文書特徴量抽出装置103は、文書画像変換プログラム名を用いて文書画像変換プログラムを起動し、処理対象画像の変換画像を制作する(2113)。
なお、文書画像変換プログラムの動作の詳細については、後記する。
次に、文書特徴量抽出装置103は、文書特徴量抽出プログラムを起動し、変換画像の文書特徴量を抽出する(2114)。
次に、文書特徴量抽出装置103は、文書特徴量比較プログラムを起動し、処理対象画像文書特徴量と、変化画像文書特徴量との差である文書特徴量差を計算する(2115)。
なお、文書特徴量比較プログラムの動作の詳細については、後記する。
次に、文書特徴量抽出装置103は、文書特徴量差を文書画像変換評価関数(単に、「評価関数」と称する場合がある。)に代入し(あてはめて)、得られた(算出した)数値を文書特徴量変化評価点に足しこみ、ステップ2111に戻る(2116)。
なお、文書画像変換評価関数は、例えば図7の2304に示すような関数である。例えば、文書画像変換タイプ1のぼかし処理の場合、通常、改ざんとは考えられない処理である。むしろ、印刷時のインクのにじみや、あるいはスキャン時のぼけの結果として、画像がぼけることの方が多いと考えられ、この文書画像変換はそのようなぼけを模式的に行う想定のものである。よって、この文書画像変換に対しては、文書特徴量は変化しないほうが好ましい。よって、例えば100exp(−x×x)のように、x(文書特徴量差)が0に近いほうが、値が大きくなるような関数が適している。
また、輝度変化についても、印刷時とスキャン時の光学系の違い等によるものであって、通常、改ざんとは考えられない。よって、例えば100exp(−x×x)のように、x(文書特徴量差)が0に近いほうが、値が大きくなるような関数が適している。
一方、文書画像変換タイプ3の切り取り処理の場合、改ざんと考えた方が良い処理である。よって、この文書画像変換に対しては、文書特徴量は変化したほうが好ましい。よって、例えば−100<x<100のとき|x|、そうでないときは100、のように、x(文書特徴量差)が0に近いと値が小さくなり、xが大きくなると値も大きくなるような関数が適している。
最終的に選択する文書特徴量を適切なものとするには、文書画像変換タイプテーブル130には、改ざんとは考えられない(改ざんに相当する変換には及ばない程度の変換の)処理を実行する文書画像変換プログラムと、改ざんと考えた方が良い(改ざんに相当する変換と同程度の変換の)処理を実行する文書画像変換プログラムとが含まれていることが好ましい。
各文書画像変換タイプに対する処理が終わると(2111で「繰り返し後」)、文書特徴量抽出装置103は、処理対象画像文書特徴量と文書特徴量変化評価点を文書特徴量変化DBに登録し、一つの文書特徴量に関する処理を終わり、ステップ2107に戻る(2117)。
ここで、図8を用いて文書特徴量変化DBを説明する。図8は、本発明の実施の形態の文書特徴量変化DBの例の説明図である。
この図において、符号2201は文書特徴量タイプフィールド、符号2202は文書特徴量フィールド、符号2203は文書特徴量変化評価点フィールドであり、符号2204〜符号2207はエントリである。図8では、文書特徴量タイプ1、2、3、4について、処理対象画像文書特徴量と文書特徴量変化評価点(単に、「評価点」と称する場合がある。)が登録された場面を例示している。エントリ2204はタイプ1の文書特徴量を用いてステップ2108からステップ2117までの処理を行った結果の一例を示すエントリである。エントリ2205、エントリ2206、エントリ2207はそれぞれタイプ2、タイプ3、タイプ4の文書特徴量を用いてステップ2108からステップ2117までの処理を行った結果の一例を示すエントリである。
なお、文書特徴量変化評価点フィールド2203に登録された評価点は、文書特徴量差を評価関数に入力して得られる値であり、さらに言えば、各文書画像変換タイプに対応する評価関数に入力して得られた値の合計値である。この合計値は、指定した改ざん検出対象領域における文書特徴量の性能を示した値といえる。
そして、各文書特徴量に対する処理が終わると(2107で「繰り返し後」)、文書特徴量抽出装置103は、文書特徴量変化DBに登録されている処理対象画像文書特徴量のうち、文書特徴量変化評価点が最大のものを選択し、改ざん検出対象領域ID、文書特徴量タイプ、処理対象画像文書特徴量を文書特徴量リストに登録する(2118)。図8の例では、タイプ4の文書特徴量変化評価点が860と一番高くなっており、文書特徴量タイプ4を選択することになり、改ざん検出対象領域IDとともに文書特徴量タイプ4の文書特徴量を文書特徴量リストに登録することになる。
なお、ここで、文書特徴量変化評価点が最大のものを選択することに代えて、文書特徴量変化評価点が予め定められた閾値を超えた文書特徴量の中から、乱数で一つの文書特徴量を定めても良い。このようにすることで、適用されている文書特徴量が攻撃者に分かりにくくなるという効果が得られ、より改ざんされにくい文書を作ることが可能となる。なお、このとき、予め定められた閾値を超えた文書特徴量がなかった場合、文書特徴量変化評価点が最大のものを選択する。
文書特徴量リストは、改ざん検出対象領域IDごとに、選択された文書特徴量タイプと処理対象画像文書特徴量が記録されたリストである。その一例を図9に示す。文書特徴量リストには、改ざん検出対象領域IDフィールド2901、文書特徴量タイプフィールド2902、処理対象画像文書特徴量フィールド2903があり、図9の例では、2904から2907まで4つのエントリが存在する。エントリ2904は、改ざん検出対象領域ID1に関するエントリであり、文書特徴量タイプとして3、すなわちタイプ3文書特徴量である面積利用タイプの文書特徴量が選ばれており、その処理対象画像文書特徴量が記録されている。
最後に、文書特徴量抽出装置103は、文書特徴量リストから文書特徴量を生成する(2119)。文書特徴量生成処理は、図10のように行われる。まず、改ざん検出対象領域レコード番号を計算機内部表現で表現する。図10の例ではその番号が3なので((a)参照)、0003となる((b)参照))。次に、処理対象画像文書特徴量の数を計算機内部表現で表現する。図10の例ではその数が4なので((a)参照))、0004である((b)参照))。次に文書特徴量リストを計算機内部表現で表現する((b)参照))。図10の例では文書特徴量リストとして図9に示すものを使っている((a)参照))。
まず、エントリ2904では、改ざん検出対象領域IDが1なので、0001となる。次に処理対象画像文書特徴量のバイト数が6なので、06となる。次に処理対象画像文書特徴量000300・・・が来る。これを文書特徴量リストの全てのエントリについて繰り返し、最後にエンドマークとしてFFFFを置いておく。文書特徴量は、図10に示すように、上記をつなげたものである((c)参照))。
以上、図4に関する説明を終わる。次に、文書特徴量抽出プログラム群126について説明する。
図11は、本発明の実施の形態の、タイプ1文書特徴量(重心利用タイプ)抽出プログラムの処理のフローチャートであり、図4のステップ2109や、ステップ2114で実行される処理(文書特徴量抽出プログラムによる処理)の説明を示す。文書特徴量抽出処理では、入力として処理対象画像を受け取り、出力として文書特徴量を出力する。
まず、タイプ1文書特徴量抽出プログラムは、処理対象画像の重心を計算する(604)。重心の計算方法について、図12を用いて説明する。図12は、本発明の実施の形態の重心の計算例を示す説明図である。ここで、画素801は文書中の黒画素であり、座標が(1、9)である。また、画素802は文書中の黒画素であり、座標が(2、1)である。また、画素803は文書中の黒画素であり、座標が(6、8)である。また、画素804は、文書中の黒画素であり、座標が(7、2)である。ここで、文書中の黒画素とは、文書中の文字及び絵を構成する画素である。図12に示す例では、文書中の文字及び絵を構成する画素として、黒画素と表現しているが、赤い画素のように色が付いた画素であってもよい。
図12に示すように、黒画素が四つ存在する場合、重心のx座標は、計算対象となる黒画素のx座標の総和を、計算対象となる黒画素の数で除算した結果である。図12に示す例では、重心のx座標は4である。また、重心のy座標は、計算対象となる黒画素のy座標の総和を、計算対象となる黒画素の数で除算した結果である。図12に示す例では、重心のy座標は5である。よって、重心の座標は(4、5)である。図12に示す例では、重心の座標が整数であるが、重心の座標が小数であってもよい。この場合、計算機で表現可能な浮動小数点数表現を用いて、計算結果の数を近似して表現する。
なお、ステップ604では、処理対象画像中の全ての黒画素に基づいて重心を計算しているが、文書中の黒画素のうち、黒画素以外の画素と接している画素のみを計算対象として重心を計算してもよい。これによって、にじみの影響をより少なくすることができる。
次に、タイプ1文書特徴量抽出プログラムは、計算された重心から文書特徴量を生成する(605)。文書特徴量の生成は、図13に示すように行われる。まず、重心利用タイプは、計算機内部の表現(16進数)で表すと、0001となる((b)参照)。また、計算された重心(図13の例では(4、5)((a)参照))を計算機内部の表現(16進数)で表すと、40800000と40A00000となる((b)参照)。これらを繋げた00014080000040A00000が文書特徴量となる((c)参照)。
なお、本例では重心を16進数8桁(32ビット)で表現しているが、他のビット長で表現しても良い。また、たとえば、固定小数点表現や、有理数表現(分子と分母の二つの整数で表現)などの他の表現形式で表現しても良い。これらの表現ごとに、重心利用タイプの表現を変更することで、使い分けることも可能である。
なお、重心を文書特徴量として用いると、ぼけやにじみの影響を受けにくいという利点がある。図14A及び図14Bは、本発明の実施の形態のタイプ1文書特徴量(重心利用タイプ)の例を示す説明図であり、文字「4」の重心を示す。図14Aに示す例では、計算機内での文字を模式的に表現しており、重心901は、文字「4」の重心である。図14Bに示す例では、印刷された文書がスキャンされた後の文字を模式的に表現しており、文字「4」がにじんでいることを示す。しかし、重心902で表現される文字「4」の重心は、図14Aの重心901と比較して、大きく変化していないことを示す。これは、文書特徴量に重心を用いることによって実現することができる。
最後にタイプ1文書特徴量抽出プログラムは、文書特徴量を返す(606)。これは、例えば文書特徴量抽出装置103のハードディスク209に、あらかじめ決められた(タイプ1文書特徴量抽出プログラム内にハードコーディングされた)ファイル名にて結果をセーブしても良いし、文書特徴量抽出メインプログラム104から指定されたファイル名にて結果をセーブしても良いし、文書特徴量抽出メインプログラム104から指定されたメモリ領域に書き込んでも良い。なお、文書特徴量抽出メインプログラム104からファイル名を指定する場合、文書特徴量抽出メインプログラム104はタイプ1文書特徴量抽出プログラムを起動する際に、ファイル名を指定しても良い。また、文書特徴量抽出メインプログラム104からメモリ領域を指定する場合、文書特徴量抽出メインプログラム104はタイプ1文書特徴量抽出プログラムを起動する際に、メモリ領域を指定しても良い。
図15は、本発明の実施の形態の、タイプ2文書特徴量(細線化重心利用タイプ)抽出プログラムの処理のフローチャートであり、図4のステップ2109や、ステップ2114で実行される処理(文書特徴量抽出プログラムによる処理)の説明を示す。文書特徴量抽出処理では、入力として処理対象画像を受け取り、出力として文書特徴量を出力する。
タイプ2文書特徴量抽出プログラムの処理は、タイプ1文書特徴量抽出プログラムの処理(図11参照)と比較すると、ステップ2501において、処理対象画像を細線化する点と、ステップ2503における文書特徴量生成において、重心利用タイプを表す0001の代わりに、細線化重心利用タイプを表す0002を用いる点が異なる。他の処理はタイプ1文書特徴量抽出プログラムの処理と同様であり、またステップ2503の変更は重心利用タイプを表す0001の代わりに、細線化重心利用タイプを表す0002を用いるだけであるので、これらについては説明を省略する。また、ステップ2501の処理では、タイプ2文書特徴量抽出プログラムは、画像の細線化を行うが、画像の細線化処理は、例えば、C.J.Hilditchによる“Linear skelton from square cupboards,”Machine Intelligence, 4, B, Edinbourgh Univ. Press, 1967, pp. 403-420.に開示されているHilditchの方式を用いて実現することができる。
図16は、本発明の実施の形態の、タイプ3文書特徴量(面積利用タイプ)抽出プログラムの処理のフローチャートであり、図4のステップ2109や、ステップ2114で実行される処理(文書特徴量抽出プログラムによる処理)の説明を示す。文書特徴量抽出処理では、入力として処理対象画像を受け取り、出力として文書特徴量を出力する。
タイプ3文書特徴量抽出プログラムの処理では、まず、処理対象画像中の黒画素の面積を計算する(2601)。黒画素の面積計算に当たっては、処理対象画像中の各画素の輝度を計算し、輝度50%と比較して暗い画素の数を数えれば良い。ここで、各画素の輝度は、白黒のグレー画像であれば、各画素の値を、取りうる最大の値で除することによって計算できる。例えば8ビットグレー画像であれば、最低輝度が値0、最高輝度が値255で表されるため、画素の値を255で割ることによって、輝度を計算できる。なお、最低輝度が値255、最高輝度が値0で表されている場合は、値を255で割った後、100%から減算すれば良い。また、24ビットRGBカラー画像であれば、各画素のRGBの値から、輝度Yは、下式のようにして計算できる。
なお、上記では輝度50%と比較して黒画素を決定し、その数を数えていたが、処理対象画像中の輝度を反転した数値の総和をとっても良い。こうすることによって、文書印刷時と文書検証時で、輝度50%付近の画素が白から黒、あるいは黒から白に反転するということがなくなり、輝度50%付近の画素の安定性が増すという効果が得られる。また、この場合、さらに文書印刷時に最大輝度と最小輝度とを用いて輝度の値を正規化しておいても良い。このようにしておき、文書検証時にもスキャン画像の最大輝度と最小輝度を用いて輝度の値を正規化することによって、文書印刷時と文書検証時とで、改ざんされていない場合の特徴量変化をより小さくすることができ、安定した文書検証が可能となる。
次に、面積から文書特徴量を生成する(2602)。面積からの文書特徴量の生成は、図17の例のように行われる。面積利用タイプの計算機内部表現は0003(16進数)と表される。これと、面積を計算機内部表現で表現した値と連続させたものが文書特徴量となる。例えば図17の場合、面積が345であり((a)参照)、この計算機内部表現が43AC8000なので((b)参照)、文書特徴量は000343AC8000である((c)参照)。
なお、図17の例では面積の計算機内部表現として、32ビットの浮動小数点表現を用いたが、重心利用タイプ文書特徴量の説明のところで触れたように、他の計算機内部表現を用いても良い。
また、タイプ4文書特徴量(ラン数利用タイプ)抽出処理は、大田らによる「漢字パターン列の特徴パラメータによる検索」電子情報通信学会論文誌Vol.J64−D、No.11、pp.997−1004、に開示されている方式で実行できる。
以上、文書特徴量抽出プログラム群126についての説明を終わる。次に、文書画像変換プログラム群128について説明する。
図18は、本発明の実施の形態の、タイプ1文書画像変換プログラムの処理フローである。タイプ1文書画像変換は、画像をぼかす処理である。これは、平滑化処理(3101)によって実現できる。具体的には、元画像の座標(i、j)における画素値をf(i、j)、変換画像の座標(i、j)における画素値をg(i、j)とすると、下の式に示すような式で実行できる。
ただし、f(-1、0)など存在しない座標の画素値は0としてよいし、f(0、0)など、存在する近くの座標の画素値としても良い。
また、重み付け行列Wは、例えば以下のような行列を用いることができる。
また、24ビットRGBカラー画像のように、画像を構成するプレーンが複数枚ある場合、プレーンごとに上式を実行する。
次に、平滑化された処理後の画像を返す(3102)。
図19は、本発明の実施の形態の、タイプ2文書画像変換プログラムの処理フローである。これは、輝度を変換する処理である(3201)。これは、「東京大学出版会 新編 画像解析ハンドブック」p.572−577で述べられているような、ガンマの値を変更することで実行される。
次に、輝度が変換された処理後の画像を返す(3202)。
図20は、本発明の実施の形態の、タイプ3文書画像変換プログラムの処理のフローチャートであり、図4のステップ2113で実行される処理(文書画像変換プログラムによる処理)の説明を示す。文書画像変換処理では、入力として処理対象画像を受け取り、出力として変換画像を出力する。
タイプ3文書画像変換処理では、文書画像を一部切り取り、別の部分と交換する。まず、対象領域1を決定する(3101)。ここでは、例えば乱数で対象領域の開始部分や大きさを決定する。他には、例えば対象領域のx座標y座標それぞれ4/10の位置から、6/10の位置までを対象領域とするなど、定数を用いることもできる。このとき定数は、ハードディスクにteisu.txtなど決まったファイル名で書き込んでおくこともでき、このようにすると後から定数を変更することも可能である。
次に、対象領域2を決定する(3102)。対象領域2は、対象領域1と大きさは同一である必要がある。開始位置は、例えば乱数で決めても良いし、対象領域1同様、定数で決めても良い。
次に、対象領域1と対象領域2の画像を交換する(3103)。具体的には、対象領域1に含まれる画素の値と対象領域2に含まれる画素の値とを交換する。これは、対象領域1と同じ大きさの画像xと画像yを新たに作成し、対象領域1に含まれる画素の値を画像xにコピーし、対象領域2に含まれる画素の値を画像yにコピーし、画像xの画素の値を対象領域2に含まれる画素にコピーし、画像yの画素の値を対象領域1に含まれる画素にコピーすれば良い。
最後に、処理後の画像を返す(3104)。返し方は、予め決められたファイル名でハードディスクにセーブしても良いし、予め決められたメモリに書き込んでも良い。
また、タイプ4文書画像変換プログラムの処理は圧縮処理であり、JPEG圧縮など一般に広く知られている圧縮法で実行できる。
なお、上記文書画像変換プログラムは、入力パラメータを持たすことができる。例えばタイプ1文書画像変換プログラムに関しては、重み付け行列の個々のパラメータであり、タイプ2文書画像変換プログラムに関しては、ガンマの変換割合であり、タイプ3文書画像変換プログラムに関しては、入れ替える画像の大きさであり、タイプ4文書画像変換プログラムに関しては、圧縮の度合いである。これら入力パラメータを、文書画像変換評価関数2304の入力としても良い。このようにすると、例えばタイプ3文書画像変換プログラムに関して、ガンマの変換割合が小さいときや大きいときで評価を変更することができるようになる。
以上、文書画像変換プログラム群128について説明した。次に、文書特徴量比較プログラム群127について説明する。
図21は、本発明の実施の形態の、タイプ1文書特徴量(重心利用タイプ)比較プログラムの処理のフローチャートであり、図4のステップ2115で実行される処理(文書特徴量比較プログラムによる処理)の説明を示す。文書特徴量比較処理では、入力として二つの文書特徴量を受け取り、出力としてその差を出力する。
まず、文書特徴量Aに含まれる重心と、文書特徴量Bに含まれる重心との距離(重心距離)を算出する(1701)。ここで、算出される距離は、例えば、ユークリッド距離であり、文書特徴量Aに含まれる重心を(x0、y0)、文書特徴量Bに含まれる重心を(x1、y1)とする場合、距離d=sqrt((x1−x0)×(x1−x0)+(y1−y0)×(y1−y0))によって距離が算出される。ここで、sqrt(x)は、xの二乗根である。また、距離dは、d=|x1−x0|+|y1−y0|によって算出されてもよい。ここで、|x|はxの絶対値である。
次に、ステップ1701で算出された距離を定数N1で除算し、定数N2を乗算することによって算出された距離を標準化する(1702)。N1及びN2は、文書特徴量Aに含まれる重心と、文書特徴量Bに含まれる重心との差を、所定の値(例えば、100)に標準化するために設定される定数であり、例えば、N1=2及びN2=100に設定することができる。
次に、標準化した距離を結果として返す(1703)。
タイプ2文書特徴量(細線化重心利用タイプ)比較プログラムの処理は、タイプ1文書特徴量(重心利用タイプ)比較プログラムの処理と同一のものを用いることができるので、説明は省略する。
図22は、タイプ3文書特徴量(面積利用タイプ)比較プログラムの処理のフローチャートであり、図4のステップ2115で実行される処理(文書特徴量比較プログラムによる処理)の説明を示す。文書特徴量比較処理では、入力として二つの文書特徴量を受け取り、出力としてその差を出力する。
まず、文書特徴量Aに含まれる面積と、文書特徴量Bに含まれる面積の差である面積差を算出する(2801)。ここで、算出される面積差dは、例えば、d=|x1−x0|によって算出されてもよい。ここで、|x|はxの絶対値である。
次に、ステップ2801で算出された面積差を定数N3で除算し、定数N4を乗算することによって算出された面積差を標準化する(2802)。N3及びN4は、文書特徴量Aに含まれる面積と、文書特徴量Bに含まれる面積との差を、所定の値(例えば、100)に標準化するために設定される定数であり、例えば、N3=5及びN4=100に設定することができる。
次に、標準化した面積差を結果として返す(2803)。
以上、本実施の形態の文書作成支援システム101について説明した。本実施の形態の文書作成支援システム101を用いることによって、文書作成端末102の操作者(文書作成者)は、文書特徴量が地紋透かしによって埋め込まれた文書を取得することができる。しかし、取得した文書が流通する間に改ざんされる危険が存在する。そこで、次に、文書が流通する間に改ざんが行われたかどうかを検証する文書検証システム111について説明する。
図1Bは、本発明の実施の形態の文書検証システム111の構成を示すブロック図である。
文書検証システム111は、文書の改ざんを検証するシステムであり、文書検証端末112、地紋透かし読取装置113、文書画像修正装置114、改ざん検出装置115、及び改ざん検出対象DB装置108を備える。文書検証端末112、地紋透かし読取装置113、文書画像修正装置114、改ざん検出装置115、及び改ざん検出対象DB装置108は、それぞれネットワーク118によって接続され、ネットワーク118を介して情報を送受信する。
文書検証端末112は、文書検証システム111を制御する端末であり、例えば、図2に示すような一般的な計算機によって実現することができる。
地紋透かし読取装置113は、印刷された文書の地紋透かしを読み取り、埋め込まれている情報を読み取る装置である。
文書画像修正装置114は、地紋透かし読取装置113が読み取った情報と、印刷された文書をスキャンした画像(文書画像)とを用いて、文書画像を修正する装置である。
改ざん検出装置115は、文書の改ざんを検出する装置であり、例えば、図2に示すような一般的な計算機によって実現することができる。改ざん検出装置115は、改ざん検出プログラム116、文書特徴量抽出プログラム群126(タイプ1文書特徴量抽出プログラム、タイプ2文書特徴量抽出プログラム、・・・の総称)、文書特徴量比較プログラム群127(タイプ1文書特徴量比較プログラム、タイプ2文書特徴量比較プログラム、・・・の総称)、及び文書特徴量タイプテーブル129を含み、各プログラムを実行することによって、改ざん検出装置115の機能を実現することができる。
改ざん検出プログラム116は、改ざん検出装置115を制御する。文書特徴量抽出プログラム群126、文書特徴量比較プログラム群127、及び文書特徴量タイプテーブル129は、文書特徴量抽出装置103内のプログラム群、テーブルと同じであるため、説明を省略する。
なお、改ざん検出装置115の構成が文書検証端末112に実装され、文書検証端末112が改ざん検出装置115の機能を実現してもよい。
改ざん検出対象DB装置108及び改ざん検出対象DB109は、図1Aに示す改ざん検出対象DB装置108及び改ざん検出対象DB109と同じ構成であるため、説明を省略する。
なお、文書検証端末112、地紋透かし読取装置113、文書画像修正装置114、文書特徴量抽出装置103、改ざん検出装置115、及び改ざん検出対象DB装置108は、図2に示すハードウェアの構成と同じ構成を備える。
また、文書検証端末112、地紋透かし読取装置113、文書画像修正装置114、文書特徴量抽出装置103、改ざん検出装置115、及び改ざん検出対象DB装置108は、それぞれ別装置として記載したが一つのハードウェアに実装されてもよい。
図23は、本発明の実施の形態の文書検証処理のフローチャートである。図23に示される文書検証処理は、文書検証システム111に備わる各装置のメモリ202に格納されているプログラムをCPU201が実行することによって実行される。
まず、文書検証端末112は、文書検証者から、改ざんを検証する文書(検証対象文書)を受け付ける。そして、受け付けた検証対象文書をスキャンして検証対象文書画像を生成する(1101)。なお、検証対象文書のスキャンには、文書検証端末112に備わるスキャナ207が用いられる。
次に、文書検証端末112は、文書検証者から、閾値の設定及び改ざん検出の指示を受け付ける(1102)。ここで、設定される閾値は、後記する改ざんの有無を判定する処理に用いられる値であり、例えば、「100」等の値が設定される。改ざん検出の指示は、例えば、文書検証端末112のキーボード205から入力される。
次に、文書検証端末112は、ステップ1101で生成された検証対象文書画像を地紋透かし読取装置113に送信する(1103)。
次に、地紋透かし読取装置113は、ステップ1103で送信された検証対象文書画像から透かしデータ及び領域規定情報1100(図24A参照)を抽出し、抽出された透かしデータ及び領域規定情報1100を文書検証端末112に送信する(1104)。具体的には、地紋透かし読取装置113は、特開2006−279640号公報に開示されている情報読み取り装置601を用いることによって、本実施の形態の透かしデータ及び領域規定情報1100を抽出することができる。特開2006−279640号公報の図6には、情報読み取り装置601の処理が開示されており、印刷文書画像データ621が印刷文書入力処理部611の出力として記載されている。
本実施の形態の検証対象文書画像は、特開2006−279640号公報に開示されている印刷文書画像データ621と同じである。すなわち、特開2006−279640号公報の情報読み取り装置601のメモリ又はハードディスクに、本実施の形態の検証対象文書画像が格納される。特開2006−279640号公報の情報読み取り装置601は、格納された本実施の形態の検証対象文書画像を印刷文書画像データ621として扱うことができる。また、本実施の形態の透かしデータは、特開2006−279640号公報の情報読み取り装置601から出力される読み取り情報623と同じである。また、本実施の形態の領域規定情報1100は、特開2006−279640号公報の領域規定情報構成処理部904から出力される領域規定情報713と同じである。本実施の形態の透かしデータ及び領域規定情報1100がメモリ又はハードディスクに格納されるようにプログラムが追加された、特開2006−279640号公報の情報読み取り装置601が用いられる。なお、特開2006−279640号公報に開示されている領域規定情報713は、情報埋め込み装置201によって領域規定点群領域311に配置された情報に基づいて抽出される。領域規定点群領域311には、横方向(X軸方向)に規則正しく並んだ複数の微小点(所定の間隔の画素に配置された微小点)と、縦方向(Y軸方向)に規則正しく並んだ複数の微小点(所定の間隔の画素に配置された微小点)とが領域規定点321として配置される。配置された領域規定点321の情報は、メモリ又はハードディスク等に保持される。保持されている領域規定点321の情報と、印刷文書画像データ621から読み取られる領域規定点群領域311内の微小点の情報とを対応付けることによって、領域規定情報713が抽出される。
領域規定情報1100について、図24Aを用いて説明する。図24Aは、本発明の実施の形態の領域規定情報1100の例を示した説明図である。領域規定情報1100は、領域座標1201及び検証対象文書画像座標1202を含む。
領域座標1201は、検証対象文書の所定の領域に予め配置された複数の点の座標であり、予め配置された複数の点の相対的な座標が用いられる。また、領域座標1201は、予め複数の点が配置される画素の座標が用いられてもよい。
検証対象文書画像座標1202は、検証対象文書画像の所定の領域から読み取られた点の座標であり、実際にスキャンされた検証対象文書画像から抽出される。なお、領域規定情報1100の1行分のデータを一つのエントリとする。
図24Bは、領域座標1201の各座標を模式的に表現した説明図である。図24Cは、検証対象文書画像座標1202の各座標を模式的に表現した説明図である。すなわち、理想的には図24Bのように印刷された文書が、流通後に文書のしわ等の影響を受けて、図24Cのように検証対象文書画像がスキャンされたことを示す。
ステップ1105では、文書検証端末112は、検証対象文書画像及びステップ1104で抽出された領域規定情報1100を文書画像修正装置114に送信する。
次に、文書画像修正装置114は、ステップ1105で送信された領域規定情報1100を用いて検証対象文書画像を修正し、修正された検証対象文書画像を修正画像として文書検証端末112に送信する(1106)。ステップ1106では、図24Cに示すようにスキャンされた検証対象文書画像を、図24Bに示すように修正し、修正された検証対象文書画像を修正画像として送信する。なお、ステップ1106の処理は、図25を用いて後記する。
次に、文書検証端末112は、ステップ1104で抽出された透かしデータから埋め込み文書特徴量を抽出する(1107)。ここでは、透かしデータが、暗号化されている場合には、透かしデータを復号化することによって埋め込み文書特徴量を取得する。また、透かしデータに電子署名が付与されている場合には、電子署名を検証することによって埋め込み文書特徴量を取得する。また、透かしデータにタイムスタンプが付与されている場合には、タイムスタンプを検証することによって埋め込み文書特徴量を取得する。
次に、文書検証端末112は、ステップ1104で抽出された透かしデータと修正画像を改ざん検出装置に送信する(1108)。なお、透かしデータはステップ309で埋め込まれたデータであり、問題なく読み取れていれば、文書に埋め込まれていた文書特徴量である。以降、この文書特徴量を「埋め込み文書特徴量」と呼ぶ。
次に、改ざん検出装置は、改ざんを検出し、改ざん検出結果データを文書検証端末112に送信する(1109)。なお、この処理の詳細は図27を用いて後記する。
次に、文書検証端末112は、改ざん検出結果データから判定される判定結果を画面206に表示する(1112)。なお、ステップ1112の処理は、図29を用いて後記する。
なお、ステップ1101では、文書検証端末112は、検証対象文書を直接受け付けているが、検証対象文書を識別する識別子を受け付けてもよい。この場合、受け付けた識別子に基づいて、検証対象文書が読み出される。読み出される検証対象文書は、例えば、文書検証端末112に備わるハードディスク209及び文書検証端末112に接続される装置のハードディスク209等に格納される。
また、ステップ1104では、地紋透かし読取装置113は、抽出された透かしデータ及び領域規定情報1100を文書検証端末112に送信しているが、抽出された透かしデータ及び領域規定情報1100と、検証対象文書画像とを文書画像修正装置114に送信しても良い。この場合、処理はステップ1105を省略し、ステップ1106に進む。
図25は、本発明の実施の形態の文書画像修正装置114による処理のフローチャートであり、図23のステップ1106で実行される処理の説明を示す。
まず、文書画像修正装置114は、領域規定情報1100中の領域座標1201のx座標の最大値xm及びy座標の最大値ymとを求める(1301)。例えば、図24Aに示す領域規定情報1100の場合、x座標の最大値xmは「2」であり、y座標の最大値ymは「2」である。
次に、文書画像修正装置114は、予め設定された値gx及び値gyを用いて、横(xm×gx+1)画素及び縦(ym×gy+1)画素の修正中画像を作成する(1302)。ここで、値gx及び値gyは、例えば、gx=60及びgy=60に設定することができる。また、値gx及び値gyは、領域規定情報1100に基づいて設定されてもよい。図24Aに示す検証対象文書画像座標1202の場合、特開2006−279640号公報に開示されている情報埋め込み装置201によって配置された領域規定点321の所定の画素の間隔に基づいて設定することができる。このように、修正中画像を作成する処理は、計算機内のメモリ202に所定の大きさの領域を確保し、修正中画像の大きさ等の情報を格納する処理である。
次に、文書画像修正装置114は、ステップ1302で作成された修正中画像の各画素のうち、処理が終了していない画素があるか否かを判定する(1303)。修正中画像の少なくとも一つの画素について処理が終了していないと判定された場合(1303でYes)、修正中画素内で処理が終了していない画素(処理対象画素)を取り出し、処理はステップ1304に進む。一方、修正中画像の全ての画素について処理が終了したと判定された場合(1303でNo)、処理はステップ1305に進む。
次に、文書画像修正装置114は、領域規定情報1100に基づいて、ステップ1303で取り出された処理対象画素の内部補間処理を行い、検証対象文書画像内の対応する画素を修正中画像内の処理対象画素にコピーする(1304)。内部補間処理について、図26A及び図26Bを用いて説明する。
図26A及び図26Bは、本発明の実施の形態の内部補間処理の例を示す説明図である。
図26Aに示す処理対象画素1401は、修正中画像内で処理の対象となる画素であり、図26Bに示す対応画素1402は、検証対象文書画像内で処理対象画素1401に対応する画素である。処理対象画素1401と対応画素1402との対応は以下のように特定する。
まず、処理対象画素1401の周りの領域座標1201を求める。図26Aに示す例では、処理対象画素1401の周囲に模式的に示した四つの領域座標1201の点が対応する。次に、処理対象画素1401が、領域座標1201をどのように内分しているかを調べる。図26Aに示す例では、処理対象画素1401は、領域座標1201をX軸方向に1:1−s、Y軸方向にt:1−tに内分している。
次に、領域規定情報1100を用いて、領域座標1201に対応する検証対象文書画像座標1202を求める。例えば、図26Bに示す例では、検証対象文書画像が少しゆがんでいるとする。次に、求めた四つの検証対象文書画像座標1202によってつくられる4辺を、領域座標1201の内分比と同じ比で内分する。そして、四つの内分点のうち、隣り合わない辺に属する二つの内分点を直線で結び、二つの直線の交点の画素を検証対象文書画像の対応画素1402とする。そして、対応画素1402の色及び濃度と同等になるよう、対応画素1402を処理対象画素1401に複製する。
次に、ステップ1305では、文書画像修正装置114は、ステップ1304で内部補間処理が行われた修正中画像を修正画像として文書検証端末112に送信する。
図27は、本発明の実施の形態の改ざん検出処理のフローチャートであり、図23のステップ1109で実行される処理の説明を示す。
まず、改ざん検出装置115は、埋め込み特徴量から、改ざん検証対象領域レコード番号と、文書特徴量リストを読み取る(1501)。なお、この処理は、埋め込み特徴量は図10(c)のようにして作られているため、最初の2バイトから改ざん検証対象領域レコード番号を読み取り、次の2バイトから処理対象画像文書特徴量の数を読み取り、次に読み取った処理対象画像文書特徴量の数分、文書特徴量リストのエントリを読み取っていけばよい。文書特徴量リストのエントリは、最初の2バイトが改ざん検出対象領域IDを示し、次の1バイトが文書特徴量の長さを示し、次から読み取った文書特徴量の長さ分、文書特徴量が続いていることを利用してデータを読み取る。さらに、文書特徴量が、例えば図13(c)のように、最初の2バイトが文書特徴量タイプを示していることを利用して、文書特徴量タイプを読み取れる。この結果、図9に示すような文書特徴量リストを読み取ることができる。
次に、改ざん検出装置115は、改ざん検出対象領域レコード番号を用いて、改ざん検出対象領域DB109から改ざん検出対象領域レコードを取得する(1502)。なお、改ざん検出対象領域レコードは、例えば図5Aに示したようなもの(600)である。
次に、改ざん検出装置115は、文書特徴量リスト内に処理が終了していないエントリがあるか否か判定する。そのようなエントリがある場合(1503でYes)、文書特徴量リストに含まれる一つ一つのエントリについて、以下ステップ1504から1510の処理を行い、そのようなエントリがない場合(1503でNo)、処理が終了したということでステップ1511に進む(1503)。
次に、改ざん検出装置115は、改ざん検出対象領域レコードから、文書特徴量リストに含まれる改ざん検出対象領域IDを用いて、始点、終点を取得する(1504)。始点、終点は、図5A、図5Bを使って既に説明したとおりである。
次に、改ざん検出装置115は、修正画像から始点、終点が規定する矩形領域の画像を作成し、検証対象画像として保存する(1505)。この処理は部分的な画像のコピーであって、既に説明したとおりである。
次に、改ざん検出装置115は、文書特徴量タイプテーブル129から、文書特徴量リストに含まれる文書特徴量タイプを用いて、文書特徴量抽出プログラムと文書特徴量比較プログラムを取得する(1506)。この処理は、ステップ2108と同様である。
次に、改ざん検出装置115は、文書特徴量抽出プログラムを用いて、検証対象画像の文書特徴量を検証対象画像文書特徴量として抽出する(1507)。この処理は、ステップ2109と同様である。
次に、改ざん検出装置115は、文書特徴量比較プログラムを用いて、検証対象画像文書特徴量と、埋め込み特徴量の差を計算し、文書特徴量差を取得する(1508)。この処理は、ステップ2115と同様である。
次に、改ざん検出装置115は、取得した文書特徴量差(差)が閾値より大きいか否か判定する(1509)。閾値より大きければ(1509でYes)、ステップ1510に進む。そうでなければ(1509でNo)、文書特徴量リストに含まれる現在のエントリに関する処理を終了し、ステップ1503に戻る。
文書特徴量差が閾値より大きければ(1509でYes)、改ざん検出対象領域IDと文書特徴量差を、改ざん検出結果データに追記する(1510)。ここで、改ざん検出結果データの例を図28に示す。
図28は、本発明の実施の形態の改ざん検出結果データ1700の例を示す説明図である。
改ざん検出結果データ1700は、改ざん検出対象領域ID1801及び文書特徴量差1802を含む。改ざん検出対象領域ID1801は、改ざんが検出されたと判定された改ざん検出対象領域の識別子であり、図5Aに示す改ざん検出対象領域ID701に対応する。文書特徴量差1802は、埋め込み文書特徴量と修正画像文書特徴量との差の大きさである。なお、改ざん検出結果データ1700の1行分のデータを一つのエントリとする。
図28に示す例では、三つの改ざん検出対象領域で改ざんが検出されており、改ざん検出対象領域ID1801が「2」、「3」、及び「10」の埋め込み文書特徴量と修正画像文書特徴量との差は、それぞれ「120」、「125」、及び「110」である。
次に、ステップ1511では、改ざん検出装置115は、ステップ1510で格納された改ざん検出結果データ1700を文書検証端末112に送信する。
図29は、本発明の実施の形態の改ざん検出結果表示処理のフローチャートであり、図23のステップ1112で実行される処理の説明を示す。
まず、文書検証端末112は、改ざん検出結果データ1700に格納されている改ざん検出対象領域ID1801及び改ざん検出対象領域レコード番号に基づいて、改ざん検出対象DB装置108にアクセスし、改ざん検出対象領域ID1801に対応するエントリを取得する(1901)。
次に、文書検証端末112は、ステップ1901で取得したエントリのうち、処理が終了していないエントリがあるか否かを判定する(1902)。少なくとも一つのエントリについて処理が終了していない場合(1902でYes)、処理が終了していないエントリ(改ざん検出対象領域)を取り出し、処理はステップ1903に進む。一方、ステップ1901で取得した全てのエントリについて処理が終了したと判定された場合(1902でNo)、処理は終了する。
次に、文書検証端末112は、ステップ1902で取り出された改ざん検出対象領域の始点及び終点を、改ざん検出対象領域レコード(ステップ1502で取得したもの)から取得する(1903)。
次に、文書検証端末112は、ステップ1903で取得した改ざん検出対象領域の始点及び終点に基づいて、検証対象文書の修正画像の改ざん検出対象領域(該当領域)を強調して表示する(1904)。そして、処理はステップ1902に戻り、次のエントリを処理する。
改ざん検出対象領域を強調して表示する例を、図30に示す改ざん検出結果画面を用いて説明する。
改ざん検出結果画面は、表示部2001及び警告表示部2004を含む。表示部2001は、修正画像を表示する部分であり、検出領域2002及び検出領域2003を含む。検出領域2002及び検出領域2003は、改ざんが検出された改ざん検出対象領域である。警告表示部2004は、改ざんが検出されたことを警告する表示部分である。
図30に示す例では、納税証明書に記載されている金額の改ざんが検出されたことを示している。また、警告表示部2004には、「改ざんが検出されました」という警告を表示している。
本実施の形態では、文書検証システム111を用いることによって、文書検証端末112の操作者(管理者)は、文書が流通している間に改ざんが行われたか否かを検証することが可能である。
また、本発明の文書検証システムは、文書から抽出する文書特徴量を適宜プログラムとして選択可能であるため、システムの動作中に動的にシステムを変更することができる。
なお、本実施の形態は、本発明を実施するための最良のものであるが、その実施形式はこれに限定するものではない。したがって、本発明の要旨を変更しない範囲において、その実施形式を種々変形することが可能である。
例えば、本実施の形態では、改ざん検出対象領域の形状は矩形とし、矩形領域の始点および終点を定めた(図5A参照)。しかし、その形状は矩形でなくても良く、文書に記載された文字または画像に応じて変形させても良い。変形させたときには、改ざん検出対象領域レコード600において、その形状を特定することが可能なフィールドを設定するようにする。例えば、中心点の座標値を登録するフィールドと、半径の値を登録するフィールドを設定し、円形状の改ざん検出対象領域を設定しても良い。
また、本実施の形態では、改ざん検出対象領域は入力装置から指定するようにした。しかし、文書の内容に合わせて改ざん検出対象領域を自動的に設定するようなプログラムを文書特徴量抽出装置に導入しても良い。例えば、改ざんを検出したい改ざんの精度を高めたい箇所に対しては改ざん検出領域を重複して指定するように処理させても良い。図30に示したように、金額が記載されている箇所は改ざんされる可能性が高い。それゆえ、改ざんされやすい箇所はある程度予想できる。文書特徴量抽出装置に文字認識機能を備えたプログラムを導入し、金額のような重要部分を認識して特定し、特定した重要部分に対しては改ざん検出領域を重複して設定するように処理させる。
その他、ハードウェア、ソフトウェア、各フローチャート等の具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。