(57)【要約】【課題】ユーザが特定部分を指定しなくとも、同一種類の文書画像を認識するための類似度の算出が可能な画像処理装置を提供することである。【解決手段】複数の文書画像を登録文書画像群として登録する登録手段と、検索対象の文書画像をクエリ文書画像として取得する取得手段と、前記登録文書画像群に含まれる登録文書画像と前記クエリ文書画像間の類似度を算出する算出手段と、を備え、前記算出手段は、前記登録文書画像と前記クエリ文書画像とを位置合わせする複数の位置合わせ基準のうちのそれぞれで位置合わせした場合の、前記登録文書画像と前記クエリ文書画像間の基準毎類似度を算出する手段と、前記基準毎類似度に基づき、前記登録文書画像と前記クエリ文書画像間の最終類似度を算出する手段と、を有する、ことを特徴とする。【選択図】図８
2020123089.tif 000002
【特許請求の範囲】
【請求項１】
複数の文書画像を登録文書画像群として登録する登録手段と、
検索対象の文書画像をクエリ文書画像として取得する取得手段と、
前記登録文書画像群に含まれる登録文書画像と前記クエリ文書画像間の類似度を算出する算出手段と、
を備え、
前記算出手段は、
前記登録文書画像と前記クエリ文書画像とを位置合わせする複数の位置合わせ基準のうちのそれぞれで位置合わせした場合の、前記登録文書画像と前記クエリ文書画像間の基準毎類似度を算出する手段と、
前記基準毎類似度に基づき、前記登録文書画像と前記クエリ文書画像間の最終類似度を算出する手段と、
を有する、
ことを特徴とする画像処理装置。
【請求項２】
前記算出手段で算出した前記類似度に基づき、前記登録文書画像群から所定の条件を満たす登録文書画像を選択する選択手段をさらに備える、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記選択手段で選択した前記登録文書画像に基づき、ユーザが入力する情報のレコメンドを行う手段をさらに備える、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記登録手段は、前記クエリ文書画像を、前記登録文書画像として登録する、
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記複数の位置合わせ基準は上部基準および下部基準を含む、
ことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記クエリ文書画像内の領域を分割して複数のオブジェクトブロックにする手段をさらに備え、
前記登録手段は、前記登録文書画像の前記複数のオブジェクトブロックをさらに登録し、
前記算出手段は、前記登録文書画像および前記クエリ文書画像の前記複数のオブジェクトブロックに基づき、前記登録文書画像と前記クエリ文書画像間の類似度を算出する、
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
複数の文書画像を登録文書画像群として登録する工程と、
検索対象の文書画像をクエリ文書画像として取得する工程と、
前記登録文書画像群に含まれる登録文書画像と前記クエリ文書画像間の類似度を算出する工程と、
を備え、
前記類似度を算出する工程は、
前記登録文書画像と前記クエリ文書画像とを位置合わせする複数の位置合わせ基準のうちのそれぞれで位置合わせした場合の、前記登録文書画像と前記クエリ文書画像間の基準毎類似度を算出する工程と、
前記基準毎類似度に基づき、前記登録文書画像と前記クエリ文書画像間の最終類似度を算出する工程と、
を有する、
ことを特徴とする画像処理装置の制御方法。
【請求項８】
コンピュータを請求項１乃至６のいずれか１項に記載の画像処理装置が備える各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法およびプログラムに関する。
【背景技術】
【０００２】
帳票等の紙文書を画像読み取り装置でスキャンしてデジタル化する業務フローが存在する。その際には、一般的に、デジタル化した文書画像に、文書の種類・内容に応じたファイル名やメタ情報をつけて、所定のフォルダに格納することが行われる。ここで、ファイル名づけ、メタ情報づけ、送付先の振り分けフォルダの指定を人手で行うことは、デジタル化する紙文書の枚数が多くなると大きな負荷となる。
特に、ＵＩ（ユーザインターフェース）の制約により、ソフトウェアキーボードでファイル名やメタ情報を入力する必要がある場合には負荷はより大きくなる。また、送付先を指定することも、新たなフォルダを作成することが必要な場合などには、負荷が大きくなる。
【０００３】
これを解決する手法として、特許文献１の手法がある。この手法では、まず、あらかじめ、文書の種類と、ファイル名づけルールやメタ情報づけルールや送付先ルールなどを関連づけして登録しておく。ファイル名づけルールは、特定の場所の光学文字認識処理（ＯＣＲ処理）結果をファイル名にすることなどが考えられる。
次に、同じ種類の文書がスキャンされた場合には、文書の種類を認識し、関連付けられたファイル名づけルールやメタ情報づけルールや送付先ルールを利用して、自動的にファイル名やメタ情報や送付先をユーザにレコメンドする。このようにすれば、ユーザの作業負荷を大きく軽減することが可能となる。
【０００４】
これを実現するためには、スキャンされた文書が、過去に登録されていたどの文書と類似しているかを認識する必要がある。そのために、文書画像間で類似度を算出する必要があり、そのために種々の方法が提案されている。同一の文書画像を認識するためであれば、文書画像全体の類似度を算出すればよいが、同一「種類」の文書を認識するためには、同一種類の文書が持つ特徴に注目して類似度を算出する必要がある。ここで、同一「種類」の文書とは、文字列の内容が異なるが、主要な構造が一致している文書である。主要な構造が一致していればよいので、全体的な構造が一致していなくてもよい。
【０００５】
このような同一「種類」の文書は、デジタル的には同一のフォーマットから生成されている場合が多く、ユーザが同一の送信設定ルールを適用する可能性も高い。そのため、スキャンされた文書と、同一「種類」の過去の文書画像を見つけることが重要になる。例えば、特許文献２では、新しくスキャンされた文書画像の特定部分（同一種類の文書が共通して持つ部分）に一致する、登録されている文書画像を見つける手法が提案されている。すなわちその特定部分に対して類似度計算の重みをつけて、新しくスキャンされた文書画像と、各登録フォーマット間の類似度を計算することが提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１５３４８号公報
【特許文献２】特開２００４−３４８７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
先行技術においては、特定部分は、ユーザが文書画像ごとに指定する必要があるため、多数の文書をスキャンする際にはユーザに大きな負荷を強いることとなる。また、重視すべき部分は文書種類ごとに異なるため、あらかじめ固定的な領域を特定領域とすることにより、ユーザ負荷を軽減することも難しい。
【０００８】
つまり、ユーザが特定部分を指定することなく、同一種類の文書を認識するための文書間の類似度を高い精度で算出し、精度の高いレコメンドを行うことにより、ユーザ負荷を軽減させることが大きな課題となる。
【０００９】
本発明は、ユーザが特定部分を指定しなくとも、同一種類の文書画像を認識するための類似度の算出が可能な画像処理装置の提供を目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態の画像処理装置は、複数の文書画像を登録文書画像群として登録する登録手段と、検索対象の文書画像をクエリ文書画像として取得する取得手段と、前記登録文書画像群に含まれる登録文書画像と前記クエリ文書画像間の類似度を算出する算出手段と、を備え、前記算出手段は、前記登録文書画像と前記クエリ文書画像とを位置合わせする複数の位置合わせ基準のうちのそれぞれで位置合わせした場合の、前記登録文書画像と前記クエリ文書画像間の基準毎類似度を算出する手段と、前記基準毎類似度に基づき、前記登録文書画像と前記クエリ文書画像間の最終類似度を算出する手段と、を有する。
【発明の効果】
【００１１】
本発明によれば、ユーザが特定部分を指定しなくとも、同一種類の文書画像を認識するための類似度の算出が可能な画像処理装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１に係る画像処理装置の構成を示すブロック図である。
【図２】実施例１の画像処理装置１００における全体フローを示す図である。
【図３】本発明におけるブロックセレクション処理の例である。
【図４】本発明における文書画像およびＵＩ例である。
【図５】本発明におけるＵＩ例である。
【図６】本発明における文書画像とテキストブロックの関係を示す図である。
【図７】本発明におけるデータ構造例である。
【図８】本発明における文書マッチングフローを示す図である。
【図９】本発明における文書画像と類似度の関係を示す図である。
【図１０】本発明におけるシフト量算出処理フローを示す図である。
【図１１】本発明における対応ブロックの算出方法を示す図である。
【図１２】本発明におけるシフト量算出のためのヒストグラムの例である。
【図１３】本発明における類似度算出フローを示す図である。
【図１４】本発明における個別の類似度Ｓの算出フローを示す図である。
【図１５】本発明におけるオーバーラップ率算出方法を説明する図である。
【図１６】本発明における第１の複数回の類似度算出を説明する図である。
【図１７】本発明における第２の複数回の類似度算出を説明する図である。
【図１８】本発明における類似度Ｓの補正を説明する図である。
【図１９】本発明における位置合わせ基準について説明する図である。
【図２０】本発明における対応点ペアの重みづけについて説明する図である。
【図２１】本発明におけるＹ座標に応じた重みづけについて説明する図である。
【図２２】本発明における最終的な類似度算出フローを示す図である。
【図２３】本発明における２種類の基準での類似度を示す図である。
【図２４】本発明における最終的な類似度算出のためのパラメータを説明する図である。
【図２５】本発明における対応ブロック算出フローを示す図である。
【図２６】本発明における対応ブロック算出例について説明する第１の図である。
【図２７】本発明における対応ブロック算出例について説明する第２の図である。
【図２８】本発明の実施例２に係る画像処理装置における全体フローを示す図である。
【図２９】実施例２におけるデータ構造例である。
【図３０】実施例２における文書マッチングフローを示す図である。
【図３１】本発明におけるＵＩ例である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、本発明は、ある実施例の各構成のそれぞれを他の実施例に適用するものを含む。
【００１４】
本発明において、同一種類の文書として扱いたいものとしては、上部と下部の構造が同一で、中央部の構造が異なるような文書が含まれる。例えば、同一の発行元が発行したレシートや請求書である。通常、レシートや請求書には、上部に日付などの情報が記載され、中央部に購入したアイテムに関する情報が記載され、下部に合計金額に関する情報等が記載される。上部と下部は共通した構造であることが多いが、中央部の購入したアイテムに関する情報は、購入したアイテムの種類や数により、構造が変化し、それに伴い、長さが伸縮する場合がある。このような文書については、購入したアイテムの種類や数の違いにより、中央部分だけが異なるだけであるので、画像処理装置としては同一種類の文書として扱いたい。しかしながら、中央部分の長さが伸縮することにより、下部領域の位置が変化するため、従来、ユーザが特定部分を指定せずに特定部分を判別することは困難である。
【００１５】
本発明の画像処理装置によれば、例えば、ユーザが直接的に特定部分を指定しなくとも、同一種類の文書画像を認識するための特定部分を含み、同一種類の文書画像でも差異がある部分を含まない形で文書間の類似度の算出が可能となる。この際、特定部分が文書の上部と下部に分離しており、中央部分の長さが伸長するような場合であっても、対応することが可能である。これにより、類似度の算出精度が高まり、付随してユーザへのレコメンド精度が高まり、ユーザによる特定領域の指定も必要がないため、ユーザ負荷を大きく軽減することが可能となる。
【００１６】
（実施例１）
図１は、本発明の実施例１に係る画像処理装置の構成を示すブロック図である。本実施例の画像処理装置１００は、ユーザが各種文書をスキャンした文書画像の管理における補助を提供する文書画像スキャンアシストシステムとして動作する。画像処理装置１００は、例えば、印刷、コピー、スキャン、Ｆａｘ送信等の複数の機能を実行可能な、いわゆる複合機である。画像処理装置１００は、複合機以外の既知の如何なる情報処理装置であってもよい。
【００１７】
画像処理装置１００は、ユーザインターフェース部１０４、ＣＰＵ１０５、ＲＡＭ１０６、記憶部１０７、画像読取部１０８、画像出力部１０９およびディスプレイ１１０を備える。ユーザインターフェース部１０４、ＣＰＵ１０５、ＲＡＭ１０６、記憶部１０７、画像読取部１０８、画像出力部１０９およびディスプレイ１１０は、装置制御部１０２を介して相互に通信可能に接続されている。また、画像処理装置１００は、画像データを処理するＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）から構成される画像処理部１０３をさらに備える。また、画像処理装置１００は、ネットワーク１０１を介して、外部の情報処理装置（不図示）と接続されている。
【００１８】
ユーザインターフェース部１０４は、例えばキーボード、マウス、その他入出力装置によって構成され、ユーザによる各種の設定値または指定値の入力を受け付ける。ディスプレイ１１０およびユーザインターフェース部１０４が、例えばタッチパネルのような表示デバイスと入力デバイスとを兼ねた装置であってもよい。
【００１９】
ＣＰＵ１０５は、記憶部１０７内の初期プログラムを実行することで、メインプログラムを記憶部１０７から読み出し、ＲＡＭ１０６に格納する。ＲＡＭ１０６は、プログラム格納用や、ワーク用のメインメモリとして使用される。そして、ＣＰＵ１０５は、ＲＡＭ１０６内のメインプログラムを実行することで、装置制御部１０２を制御する。装置制御部１０２は、コントローラ基板から構成され、装置制御部１０２上に、ＣＰＵ１０５、ＲＡＭ１０６，記憶部１０７、画像処理部１０３およびネットワーク１０１の各デバイスが実装されている。ＲＡＭ１０６には、後述の各処理の結果（算出結果等）が随時格納される。
【００２０】
画像読取部１０８は、スキャナーデバイスであり、紙文書等を読取る（スキャンする）ことにより画像データ形式の文書画像を取得することができる。装置制御部１０２は、画像読取部１０８によって取得した文書画像を、記憶部１０７に記憶する。そして、装置制御部１０２は、スキャンアシスト処理を実行する際に、記憶部１０７に記憶された文書画像を読み出して、ＲＡＭ１０６に格納する。ここで、スキャンアシスト処理は、スキャンした文書画像を送信することに必要な情報をユーザにレコメンドする処理である。レコメンドする情報は、ファイル名やメタ情報や送付先等の情報である。送付先については、格納先のフォルダが存在しなければ、新規作成も含めてレコメンドしても良い。
【００２１】
そして、装置制御部１０２は、ＲＡＭ１０６内の文書画像を解析し、スキャンアシストのための情報を生成する。この文書画像を解析する解析処理は、３つの処理からなる。１つ目は、文書画像内の文字列ブロックを抽出するブロックセレクション処理（ＢＳ処理）である。２つ目は、文字列画像から文字列情報を抽出する光学文字認識処理（ＯＣＲ処理）である。３つ目は、登録されている文書画像と新たにスキャンされた文書画像との間の類似度を求めるマッチング処理である。スキャンアシストのための情報は、ユーザにレコメンドするファイル名やメタ情報や送付先に関連する情報等からなる。スキャンアシスト処理は、例えば、スキャンした文書画像のファイル名をユーザが入力する際の補助や、スキャンした文書画像を送信する場合の送信先をユーザが入力する際の補助を行う処理を含む。この入力する際の補助としては、例えば、文書に記載されている文字をファイル名として用いることをユーザに提案、推奨する（レコメンドする）処理を含む。これらの処理の詳細については後述する。
【００２２】
次に、装置制御部１０２は、生成されたスキャンアシストのための情報を用いて、スキャンアシストのためのＵＩ画面を生成し、ディスプレイ１１０上に表示する処理を実行する。そして、装置制御部１０２は、ユーザインターフェース部１０４によって受け付けたユーザからの指示に基づき、ＯＣＲ処理等の編集処理、スキャンアシスト処理、送信処理を行う。そして、装置制御部１０２は、ユーザからのフィードバックを含めたスキャンアシスト処理結果についての情報を記憶部１０７に記憶する。
【００２３】
また、装置制御部１０２は、記憶部１０７に記憶された文書画像を画像出力部１０９に提供し、画像出力部１０９は、提供された文書画像を種々の形式で出力する処理を実行する。画像出力部１０９は、例えばプリンタデバイスである。画像出力部１０９は、例えば、文書画像に係る画像データを、記憶媒体に出力する処理を実行することができる。また、画像出力部１０９は、印刷機能を備え、紙媒体等の出力媒体に文書画像を出力する処理を実行してもよい。
【００２４】
以上説明した画像処理装置１００の構成は一例である。画像処理装置１００は、例えば、画像読取部１０８および画像出力部１０９のうち、画像出力部１０９を有しない構成であってもよい。また、画像処理装置１００がネットワーク１０１を介して接続された外部処理装置（不図示）と通信を相互に行うことにより、画像処理装置１００の一部機能を、外部処理装置で実行するようにしても構わない。外部処理装置は、サーバー等のコンピュータ装置によって実装してもよいし、インターネット上のクラウドサーバーによって実装してもよい。画像処理装置１００は、その他必要に応じて、その他の構成を備えるものであってもよい。
【００２５】
次に、本実施例の画像処理装置１００の処理について、図２を用いて説明する。図２は、画像処理装置１００におけるスキャンアシスト処理を示すフローチャートである。図２のフローチャートは、新しくスキャンされた文書画像に対するスキャンアシスト処理の全体を示す。
【００２６】
図２のフローチャートは、ユーザがユーザインターフェース部１０４に対して入力した、文書画像のスキャン指示を受け付けることにより起動する。図２のフローチャートによる処理は、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、このプログラムコードを実行するＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【００２７】
図２のステップＳ２０１において、装置制御部１０２は、画像読取部１０８で例えば紙文書をスキャンし、文書画像に変換する。そして、装置制御部１０２は、画像処理部１０３で色変換処理・階調補正等の文書画像用の補正処理を行い、記憶部１０７に保存する。この文書画像を以後、クエリ文書画像と呼称する。このステップＳ２０１の処理は、検索対象の文書画像をクエリ文書画像として取得する取得手段として機能する。
【００２８】
次に、ステップＳ２０２において、装置制御部１０２は、記憶部１０７に保存されているクエリ文書画像をＲＡＭ１０６から読み出し、ＲＡＭ１０６に格納し、クエリ文書画像に対して回転補正処理を行う。回転補正処理は、回転角度を算出し、算出された回転角度を用いて、画像を回転させることにより行う。回転角度の算出は、文書画像内の文字列や線がデジタル的には水平方向に並んでいることを利用する。例えば、様々な方向への射影ヒストグラムを取り、ヒストグラムのピークとボトムが短い周期で大きく振動するヒストグラムに対応する角度を選択することにより、回転角度の算出が可能である。これは、正しい方向への射影であれば、同一ラインの文字列や、同一方向の罫線等の水平の線が、ヒストグラム上の同一のビンに投票され、行間にあたる部分には何も投票されないため、大きな振幅が文字間の周期で生じるためである。
【００２９】
次に、ステップＳ２０３において、クエリ文書画像に対して、ブロックセレクション処理（ＢＳ処理）を実行する。ブロックセレクション処理とは、画像内の領域を分割してオブジェクトブロックにし、それぞれのブロックの属性を判定する処理である。具体例を、図３を用いて説明する。図３（Ａ）はステップＳ２０１で読み取った（スキャンした）文書画像の一例である。図３（Ｂ）は、当該文書画像をオブジェクトブロックに分割したものである。図３（Ｂ）は、該ブロック各々について、文字(TEXT)／図画(PICTURE)／写真(PHOTO)／線(LINE)／表(TABLE)等の属性を判定し、異なる属性を持つ領域に分割した様子を示している。このステップＳ２０３の処理は、クエリ文書画像内の領域を分割して複数のオブジェクトブロックにする手段として機能する。
【００３０】
ここで、ブロックセレクション処理の方法について、詳細については特許文献２に記載されているが、以下に説明する。先ず、文書画像を白黒に二値化し、輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出する。面積が所定の面積よりも大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡を行い、白画素の塊を抽出し、さらに一定面積以上の白画素の塊の内部から再帰的に黒画素の塊を抽出する。
【００３１】
このようにして得られた黒画素の塊を、大きさおよび形状で分類し、異なる属性を持つ領域へ分類していく。たとえば、縦横比が１に近く、大きさが一定の範囲のものを文字相当の画素塊とする。さらに近接する文字が整列良くグループ化されうる部分を文字領域（ＴＥＸＴ）とする。扁平な画素塊を線領域（ＬＩＮＥ）とする。一定大きさ以上でかつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域（ＴＡＢＬＥ）とする。不定形の画素塊が散在している領域を写真領域（ＰＨＯＴＯ）とする。そして、それ以外の任意形状の画素塊を図画領域（ＰＩＣＴＵＲＥ）とする。ブロックセレクション処理で得られた各ブロックに対する属性情報は、以降に説明するＯＣＲ処理、類似度計算等の為の情報として用いられる。ここで、文字領域と判定されたブロックをＢＳテキストブロックと呼称する。
【００３２】
次に、ステップＳ２０４において、装置制御部１０２は、クエリ文書画像と登録文書画像群との間でマッチング処理を行う。ここで、マッチング処理とは、クエリ文書画像とすべての登録文書画像間で類似度を算出し、最大の類似度を持つ登録画像を得る処理である。登録文書画像群は、後述するステップＳ２１３で登録された過去に処理された文書画像の集まりである。装置制御部１０２は、この登録文書画像群を記憶部１０７から読み出し、ＲＡＭ１０６に格納する。ここで、登録文書画像群は、文書画像そのものではなく、各文書画像のブロックセレクション処理結果等のマッチング処理に利用可能な特徴量であってもよい。マッチング処理の結果として、該当する登録文書画像の類似度、登録文書画像自体に関する情報、クエリ文書画像と登録文書画像との対応情報を得る。クエリ文書画像と登録文書画像との対応情報は、登録文書画像で、ファイル名づけ、メタ情報づけ等のスキャンアシストに活用されたＢＳテキストブロックが、クエリ文書画像のどのＢＳテキストブロックに対応するかの情報である。このステップＳ２０４の処理は、登録文書画像群に含まれる登録文書画像とクエリ文書画像間の類似度（例えばレイアウトの類似度）を算出する算出手段として機能する。
【００３３】
ここで、マッチング処理の概要について、図６を用いて説明を行う。図６（Ａ）はクエリ文書画像であり、図６（Ｂ）および図６（Ｃ）は登録文書画像である。図６（Ａ）と図６（Ｂ）はテキストの配置が類似しており、図６（Ａ）と図６（Ｃ）はテキストの配置が類似していない。そのため、適切な手法を利用して、図６（Ａ）と図６（Ｂ）の類似度と、図６（Ａ）と図６（Ｃ）の類似度を算出すると、前者の方の類似度の方が高くなる。そのため、この場合には、マッチング処理の結果として、図６（Ｂ）が選択される。
【００３４】
ここで、ＢＳテキストブロックを用いた類似度算出処理の概念についても説明をしておく。図６（Ｄ）は、図６（Ａ）のＢＳテキストブロックを図示したものである。ＢＳテキストブロックは破線で囲んで示しており、ＩＤ０００〜ＩＤ００４は各テキストブロックのＩＤである。図６（Ａ）および図６（Ｄ）を参照すると、図６（Ａ）の文字列がＢＳテキストブロックになっていることが分かる。同様に、図６（Ｅ）は、図６（Ｂ）のＢＳテキストブロックを図示したものであり、図６（Ｆ）は、図６（Ｃ）のＢＳテキストブロックを図示したものである。
【００３５】
ＢＳテキストブロックを用いた類似度算出処理は、ＢＳテキストブロックの形状・配置がどれだけ類似しているかに着目して、類似度を算出する処理である。図６（Ｄ）と図６（Ｅ）とは類似しているＢＳテキストブロックが多い。具体的には、図６（Ｄ）のＩＤ０００と図６（Ｅ）のＩＤ００４とが類似している。図６（Ｄ）のＩＤ００１と図６（Ｅ）のＩＤ００３とが類似している。図６（Ｄ）のＩＤ００２と図６（Ｅ）のＩＤ０００とが類似している。図６（Ｄ）のＩＤ００３と図６（Ｅ）のＩＤ００１とが類似している。
【００３６】
さらに、図６（Ｄ）と図６（Ｅ）とは、図６（Ｄ）のＩＤ００４と図６（Ｅ）のＩＤ００５とが同一の位置になるように位置合わせして考えると、図６（Ｄ）のＩＤ００４と図６（Ｅ）のＩＤ００５とが類似している。図６（Ｄ）のＩＤ００３と図６（Ｅ）のＩＤ００２とが類似している。図６（Ｄ）のＩＤ００２と図６（Ｅ）のＩＤ００１とが類似している。
【００３７】
図６（Ｄ）と図６（Ｆ）とは、若干オーバーラップしているＢＳテキストブロックは存在するが、類似度が高いＢＳテキストブロックは存在しない。そのため、図６（Ｄ）と図６（Ｅ）の類似度、および図６（Ｄ）と図６（Ｆ）の類似度を算出し、比較すると、前者すなわち図６（Ｄ）と図６（Ｅ）の類似度が、後者すなわち図６（Ｄ）と図６（Ｆ）の類似度よりも高い。図６（Ｄ）と図６（Ｅ）の類似度において、２つの基準の位置合わせにより算出された類似度の統合方法等、ＢＳテキストブロックを用いた類似度算出処理の詳細な手法については後述する。なお、クエリ文書画像と登録文書画像との位置合わせを、単に、位置合わせという場合がある。位置合わせの基準とは、位置合わせの際にどこを基準に揃えるかを示すものである。例えば、上部基準とは、クエリ文書画像の上部と登録文書画像の上部とを揃えることである。また例えば、下部基準とは、クエリ文書画像の下部と登録文書画像の下部とを揃えることである。また例えば、左部基準とは、クエリ文書画像の左部と登録文書画像の左部とを揃えることである。また例えば、右部基準とは、クエリ文書画像の右部と登録文書画像の右部とを揃えることである。
【００３８】
次に、クエリ文書画像と登録文書画像の対応情報についても説明を行う。登録文書画像を示す図である図６（Ｅ）において、文字列「請求書」に対応するＢＳテキストブロックであるＩＤ００４が、スキャンアシストに活用されたＢＳテキストブロックであるとする。また、文字列「ＩＤ９６３１」に対応するＢＳテキストブロックであるＩＤ００３も、スキャンアシストに活用されたＢＳテキストブロックであるとする。この際、図６（Ｅ）のＩＤ００４には、クエリ文書画像の文字列「請求書」に対応する図６（Ｄ）のＩＤ０００が対応しており、この両ブロックが対応していることがクエリ文書画像と登録文書画像の対応情報の１つとなる。また、図６（Ｅ）のＩＤ００３には、クエリ文書画像の文字列「ＩＤ９４００」に対応する図６（Ｄ）のＩＤ００１が対応しており、この両ブロックが対応していることもクエリ文書画像と登録文書画像の対応情報の１つとなる。
【００３９】
さらに、登録文書画像を示す図である図６（Ｅ）において、文字列「合計：２１０００円」に対応するＢＳテキストブロックであるＩＤ００５が、スキャンアシストに活用されたＢＳテキストブロックであるとする。この際、図６（Ｅ）のＩＤ００５には、クエリ文書画像の文字列「合計：９０００円」に対応する図６（Ｄ）のＩＤ００４が対応しており、この両ブロックが対応していることがクエリ文書画像と登録文書画像の対応情報の１つとなる。しかしながら、図６（Ｅ）のＩＤ００４と図６（Ｄ）のＩＤ０００の相対的な位置関係と、図６（Ｅ）のＩＤ００５と図６（Ｄ）のＩＤ００４の相対的な位置関係は異なるため、単純な方法で、両者の対応関係を同時に算出することが出来ない。この算出方法についても、後述する。
【００４０】
続いて、ステップＳ２０５において、装置制御部１０２は、ステップＳ２０４においてマッチングした文書画像があったか否かを判断する。ステップＳ２０４で得られた類似度が所定の閾値を上回っている場合に、その類似度を持つ登録文書画像がマッチングした文書画像であり、マッチングした文書画像があると判断される。ステップＳ２０４で得られた類似度がその所定の閾値以下である場合に、クエリ文書画像にマッチする登録文書画像はないと判断される。マッチングした登録文書画像があると判断された場合には、ステップＳ２０６に進み、マッチングした文書画像がないと判断された場合にはステップＳ２１０に進む。このステップＳ２０５の処理は、ステップＳ２０４で算出された類似度に基づき、登録文書画像群から所定の条件を満たす登録文書画像を選択する選択手段として機能する。ステップＳ２０５でマッチングした登録文書画像ありとされた際の登録文書画像が、ステップＳ２０５の処理で選択された登録文書画像に相当する。
【００４１】
ステップＳ２０５からステップＳ２０６に進んだ場合について説明する。この場合、ステップＳ２０６において、装置制御部１０２は、ステップＳ２０４で得たクエリ文書画像と登録文書画像の対応情報に基づき、登録文書画像と対応するクエリ文書画像のＢＳテキストブロックに対してだけ、ＯＣＲ処理を行う。こうすることにより、ＯＣＲ処理をすべてのＢＳテキストブロックに対して行うよりも、高速に処理を行うことが可能となる。これにより、ユーザへの応答時間が高速になり、ユーザビリティの向上につながる。また、限られた箇所だけに処理を行うため、計算リソースの節約にもなる。
【００４２】
続いて、ステップＳ２０７において、装置制御部１０２は、スキャンアシスト情報を生成し、クエリ文書画像とともにディスプレイ１１０に表示する。そして、ユーザによる操作をユーザインターフェース部１０４で受け付ける。スキャンアシスト情報として、例えば、マッチングした登録文書画像が送付された際の送付先（マッチングした登録文書画像に紐づけられている送付先）をクエリ文書画像の送付先としてレコメンドする。
例えば、登録文書画像の送付先が、登録文書画像の特定のＢＳテキストブロックのＯＣＲ結果に基づき作成された送付先（例えばディレクトリ）であった場合について説明する。この場合には、スキャンアシスト情報として、クエリ文書画像の対応するＢＳテキストブロックのＯＣＲ結果から送付先（例えばディレクトリ）を作成して、その場所に送付したり、レコメンドしたりすることができる。
また、例えば、マッチングした登録文書画像が登録された際のファイル名づけやメタ情報づけに利用されたＢＳテキストブロック（登録文書画像に紐づけられた情報）を用いることができる。この利用されたＢＳテキストブロックに対応する、クエリ文書画像のＢＳテキストブロックのＯＣＲ結果をスキャンアシスト情報とし、クエリ文書画像のファイル名やメタ情報をレコメンドする。
このステップＳ２０７の処理は、ステップＳ２０５の処理で選択した登録文書画像に基づき、ユーザが入力する情報のレコメンドを行う手段として機能する。
【００４３】
ここで、スキャンアシスト情報を表示するＵＩ例について、ファイル名づけのためのスキャンアシスト情報を例に、図４を用いて説明する。図４（Ａ）は、クエリ文書画像の一例である。この図４（Ａ）のクエリ文書画像が読み取られた際のＵＩの例が図４（Ｂ）である。
【００４４】
図４（Ｂ）において、ＵＩはディスプレイ１１０にて表示され、ユーザによる操作はユーザインターフェース部１０４を用いて行われる。図４（Ｂ）に示すように、ＵＩは、ＢＳテキストブロックを他の領域と同じ背景色で表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と異なる背景色で表示してもよい。ＵＩは、ＢＳテキストブロックの背景色をグレーにして表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と識別可能に表示することが望ましい。図４（Ｂ）では、「請求書」、「ＩＤ９６３１」、「商品Ｃ:6000円」、「商品Ｄ:7000円」、「商品Ｅ:8000円」、および「合計２１０００円」がＢＳテキストブロックである。この例においては、「請求書」と書かれているＢＳテキストブロック４０１が、マッチングした登録文書情報に基づいてＯＣＲ処理が施された部分である。また、「ＩＤ９６３１」と書かれているＢＳテキストブロック４０２も、マッチングした登録文書情報に基づいてＯＣＲ処理が施された部分である。また、「合計２１０００円」と書かれているＢＳテキストブロック４０３、マッチングした登録文書情報に基づいてＯＣＲ処理が施された部分である。
【００４５】
例えば図４（Ｂ）に示すように、図中には丸付数字を用いているが、ここでは、便宜上、図中の丸付数字を表すために、数字を括弧で囲んで示す。すなわち、例えば図中の丸付数字の１は、ここでは（１）と表記する。
【００４６】
ＢＳテキストブロック４０１の左上の数字「（１）」は、マッチングした登録文書画像において対応するＢＳテキストブロックが、ファイル名の1番目の文字列として利用されていたことを意味している。ＢＳテキストブロック４０２の左上の数字「（２）」は、同様に、マッチングした登録文書画像において対応するＢＳテキストブロックが、ファイル名の２番目の文字列として利用されていたことを意味している。さらに、同様に、ＢＳテキストブロック４０３の左上の数字「（３）」は、マッチングした登録文書画像において対応するＢＳテキストブロックが、ファイル名の３番目の文字列として利用されていたことを意味している。よって、ここでは、この３つの部分のＯＣＲ結果である「請求書」と「ＩＤ９６３１」と「合計２１０００円」が「_」で連結され、「請求書_ＩＤ９６３１_合計２１０００円」としてテキストボックス４０４においてファイル名がレコメンドされている。ユーザがファイル名づけボタン４０５を押下すると、この文書画像のファイル名として、テキストボックス４０４に含まれる文字列が利用される。ユーザがレコメンド結果を利用しない場合には、テキストボックス４０４を押下するとファイル名を編集することが可能となる。その際の編集方法については、後述する。
【００４７】
ここで、スキャンアシスト情報を表示するＵＩの別の例について、タイトル名づけのためのスキャンアシスト情報を例に、図３１を用いて説明する。図３１において、ＵＩはディスプレイ１１０にて表示され、ユーザによる操作はユーザインターフェース部１０４を用いて行われる。図３１に示すように、ＵＩは、ＢＳテキストブロックを他の領域と同じ背景色で表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と異なる背景色で表示してもよい。ＵＩは、ＢＳテキストブロックの背景色をグレーにして表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と識別可能に表示することが望ましい。図３１では、「請求書」、「ＩＤ９６３１」、「商品Ｃ:6000円」、「商品Ｄ:7000円」、「商品Ｅ:8000円」、および「合計２１０００円」がＢＳテキストブロックである。この例においては、「請求書」と書かれているＢＳテキストブロック３００１、「商品Ｃ：６０００円」と書かれているＢＳテキストブロック３００２が、マッチングした登録文書情報に基づいてＯＣＲ処理が施された部分となる。
【００４８】
ＢＳテキストブロック３００２の左上の数字「（１）」は、マッチングした登録文書画像でタイトル名として利用されていたＢＳテキストブロックに対応する、第一候補のクエリ文書画像のＢＳテキストブロックであることを意味する。ＢＳテキストブロック３００２の左上の英字「Ａ」は、マッチングした登録文書画像でタイトル名として利用されていたＢＳテキストブロックに対応する、第二候補のクエリ文書画像のＢＳテキストブロックであることを意味する。本実施例においては、後述するが、上部基準のマッチングによる対応候補と、下部基準のマッチングによる対応候補の２種類の候補が計算される。両方の候補の信頼度（後述する類似度Ｔｍｐの値）が類似している場合には、間違った側の候補がレコメンドに利用される可能性がある。このように信頼度が類似している場合には、ＵＩ上で、第２候補の値を簡単にユーザが選択可能なようにしておく。図３１においては、テキストボックス３００３には、第一候補の値が表示されているが、その下に、「Ａを利用」が表示されているボタン３００４が存在する。ユーザが望むタイトルが「請求書」であった場合には、ボタン３００４を押下することにより、簡単にタイトル名を「ファイル名」に変更することが可能となる。なお、信頼度が類似していない場合には、信頼度が低い側に切り替えるボタンは表示しなくてもよい。
【００４９】
次に、ステップＳ２０８において、装置制御部１０２は、ステップＳ２０７におけるレコメンド結果がそのまま利用されたかどうかを判断する。図４（Ｂ）の例においては、レコメンドされたファイル名が編集されずにファイル名付けボタン４０５が押された場合は、レコメンド結果がそのまま利用されたこととなり、ステップＳ２０９に進む。テキストボックス４０４が押下された場合には編集モードとなり、レコメンド結果がそのまま利用されなかったことになるため、ステップＳ２１１に進む。
【００５０】
本分岐フローの最後の処理であるステップＳ２０９において、装置制御部１０２は、ステップＳ２０８で決定されたレコメンド情報に基づき、クエリ文書画像の送信設定を行う。送信設定は、ファイル名、メタ情報、送付先情報等の設定である。そして、次に、ネットワーク１０１を介して、送信設定に従い、送付用ファイルを作成し、送信設定の送付先に文書画像を送信する。
【００５１】
続いて、ステップＳ２０５からステップＳ２１０に進んだ際の処理について説明を行う。ステップＳ２１０において、装置制御部１０２は、クエリ文書画像とともにＢＳテキストブロックに関する情報を、ディスプレイ１１０に表示する。ここで、ＢＳテキストブロックに関する情報を表示するＵＩ例について、図５を用いて説明する。図４（Ａ）のクエリ文書画像が読み取られた際のＵＩの例が、図５（Ａ）である。図５（Ａ）において、ＵＩはディスプレイ１１０にて表示され、ユーザによる操作はユーザインターフェース部１０４を用いて行われる。図５（Ａ）に示すように、ＵＩは、ＢＳテキストブロックを他の領域と同じ背景色で表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と異なる背景色で表示してもよい。ＵＩは、ＢＳテキストブロックの背景色をグレーにして表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と識別可能に表示することが望ましい。図５（Ａ）では、「請求書」、「ＩＤ９６３１」、「商品Ｃ:6000円」、「商品Ｄ:7000円」、「商品Ｅ:8000円」、および「合計２１０００円」がＢＳテキストブロックである。例えば、ＢＳテキストブロック５０１は請求書のＩＤを示すブロックである。ここでは、ＯＣＲ処理を掛けずに、ＢＳテキストブロックだけを表示しているため、ＢＳテキストブロックに紐づいたＯＣＲ情報を保持していない。これは、ＢＳテキストブロックごとにＯＣＲ処理を掛けてからＵＩを表示しようとすると、ＯＣＲ処理のための時間が掛かかり、図５（Ａ）の画面をＵＩに表示することが遅れるためである。そのため、ユーザへのＵＩ表示を少しでも早くするために、ＯＣＲ処理を掛けずに図５（Ａ）のＵＩを表示している。次ステップにおいて、他の領域と識別可能に表示されているＢＳテキストブロックのいずれかをユーザが選択することにより、この選択されたＢＳテキストブロックにＯＣＲ処理を掛け、送信設定に利用することが可能となる。
【００５２】
次に、ステップＳ２１０もしくはＳ２０８からステップＳ２１１に進んだ場合の処理について説明する。ステップＳ２１１において、装置制御部１０２は、ディスプレイ１１０に送信設定の設定画面を表示し、ユーザによる送信設定の入力をユーザインターフェース部１０４で受け付ける。これはスキャンアシスト情報がない場合や、スキャンアシスト情報が適切でなかった場合には、ユーザが手動で送信設定を決定する必要があるためである。設定する送信設定は、ファイル名、ファイルに付加するメタ情報、クエリ文書画像の送付先等である。ユーザが送信設定を設定するために、ＢＳテキストブロックを選択した際には、装置制御部１０２は、そのＢＳテキストブロックに対応する領域だけにＯＣＲ処理を行って、ユーザが利用できるようにする。このように部分的な領域だけＯＣＲ処理を行うのはユーザ操作を少しでも早くできるようにするためである。このため、ユーザ操作がアイドルになっている際に（例えばユーザ操作が行われていない際に）、このＯＣＲ処理をあらかじめバックグラウンドで行っても構わない。
【００５３】
ここで、ファイル名を手動で設定するＵＩ例について、図５（Ａ）（Ｂ）（Ｃ）を用いて説明する。図５（Ａ）は、ステップＳ２１０や、ステップＳ２０７の図４（Ｂ）でテキストボックス４０４を押下して編集モードに切り替わった際に表示されるＵＩである。
【００５４】
図５（Ａ）において、ＢＳテキストブロック５０１を押下した際に表示される画面が図５（Ｂ）である。図５（Ｂ）では、ＢＳテキストブロック５０１が選択されたことを示す数字「（１）」を、ＢＳテキストブロック５０１の左上に表示している。「（１）」は１番目に選択された文字列ブロックであることを意味する。また、装置制御部１０２は、ＢＳテキストブロック５０１に対応する画像領域をＯＣＲ処理することにより、「ＩＤ９６３１」という文字列を得る。そうして得た文字列をテキストボックス５０２に表示している。
【００５５】
続いて、ユーザがＢＳテキストブロック５０３を押下すると、図５（Ｃ）の画面が表示される。図５（Ｃ）では、ＢＳテキストブロック５０３が選択されたことを示す数字「（２）」を、ＢＳテキストブロック５０３の左上に表示している。「（２）」は２番目に選択された文字列ブロックであることを意味する。また、装置制御部１０２は、ＢＳテキストブロック５０３に対応するクエリ文書画像領域をＯＣＲ処理することにより、「合計２１０００円」という文字列を得る。そして、テキストボックス５０２に既に表示されている文字列「ＩＤ９６３１」に続いて、連結用の「_」および、ＯＣＲ処理で得た文字列「合計２１０００円」をテキストボックス５０２に表示している。ファイル名付けボタン５０４が押下されて、送信設定が終了した場合にはステップＳ２１２に進む。
【００５６】
続いて、ステップＳ２１２において、装置制御部１０２は、ステップＳ２１１で決定された送信設定に基づき、クエリ文書画像の送信設定を行う。送信設定は、ファイル名、メタ情報、送付先情報等の設定である。そして、次に、ネットワーク１０１を介して、送信設定に従い、送付用ファイルを作成し、送信設定の送付先に文書画像を送信する。
【００５７】
最後に、ステップＳ２１３において、装置制御部１０２は、次回以降のクエリ画像のスキャンアシスト処理のための処理を行う。すわなち、レコメンド結果のフィードバック処理およびクエリ文書画像の登録文書画像としての登録処理を行う。このステップＳ２１３の処理は、複数の文書画像を登録文書画像群として登録する登録手段として機能する。
【００５８】
まず、レコメンド結果のフィードバック処理について説明を行う。ステップＳ２０８を経由して、ステップＳ２１３に進んだ場合には、レコメンドした内容に問題があった（ステップＳ２０７でレコメンドした内容が修正された）ことになる。その原因としては主に４つの可能性がある。可能性の１つ目は、ステップＳ２０４でマッチングした登録文書画像が間違っていた可能性である。可能性の２つ目は、マッチングした登録文書画像は合っていたが、登録文書画像に紐づいている送信設定からレコメンドした内容が間違っていた可能性である。可能性の３つ目は、マッチングした登録文書画像は合っていたが、送信設定の設定ルールが変更され、登録文書画像に紐づいている送信設定と、クエリ文書画像に適用したい送信設定が変わってしまった可能性である。可能性の４つ目は、レコメンドした内容は合っていたが、ユーザの誤操作により、本ステップに進んだ可能性である。
【００５９】
可能性の１つ目が原因であった場合は、今回のクエリ文書画像およびそれに紐づいた送信設定を、新しい登録文書画像およびそれに紐づいた送信設定として登録すればよい。このようにすれば、次回から類似した文書画像（次回のクエリ文書画像）に対して正しくマッチングすることができる。
可能性の２つ目が原因であった場合は、登録文書画像の送信設定と、クエリ文書画像の送信設定の両方を生成することが可能な高次の送信設定を推定し、マッチングした登録文書画像の新しい送信設定として紐づけて保存すればよい。そうすれば、次回から正しい送信設定がレコメンドされる。
可能性の３つ目が原因であった場合は、マッチングした登録文書画像を消去し、クエリ文書画像およびそれに紐づいた送信設定を、新しい登録文書画像およびそれに紐づいた送信設定として登録すればよい。そうすれば、次回から正しい送信設定がレコメンドされる。
可能性の４つ目が原因であった場合には、何もしなければ、次回以降も正しい送信設定がレコメンドされる。
【００６０】
レコメンドに問題があった原因について、ユーザからのフィードバックを、ユーザインターフェース部１０４を通じて装置制御部１０２が取得できる場合には、上述した内容の対応を行えばよい。
ユーザからのフィードバックが得られない場合には、可能性の４つ目についてはレコメンド内容と同じ内容が入力されることを利用して、装置制御部１０２が原因を特定することが可能である。
ユーザからのフィードバックが得られない場合には、可能性の４つ目以外の３つの可能性については、明確に原因を切り分けられない。対策としては２つある。
１つ目の対策は、登録文書画像ごとに類似度ウエイトを紐づけ、レコメンドした内容に問題があった際にマッチングした登録文書画像について類似度ウエイトにペナルティを反映させて設定することである。このようにすることで、次回以降のクエリ文書画像とのマッチングの際に、マッチングする可能性を低下させることができる。
２つ目の対策は、クエリ文書画像およびそれに紐づいた送信設定を、新しい登録文書画像およびそれに紐づいた送信設定として登録することである。
類似度ウエイトは、登録文書画像ごとに紐づくものであり、クエリ文書画像と登録文書画像の類似度Ｒで、対応する類似度ウエイト（その登録文書画像に紐づけられた類似度ウエイト）がＰであった場合には、最終的な類似度はＲ×Ｐとなる。類似度ウエイトＰは０から１の値である。
類似度ウエイトへのペナルティの反映は、例えば、その登録文書画像が間違ってレコメンドされた回数や割合により、間違ったマッチングの回数が増加すると、類似度ウエイトの値が小さくなるように決定すればよい。こうすれば、ユーザからのフィードバックが得られる場合に比べて登録文書画像の数は増加するが、それぞれの場合に対応することが可能である。
可能性の１つ目が原因であった場合は、今回のクエリ文書画像が登録文書画像として新たに登録されるため、次回からは類似した登録文書画像に対して正しくマッチングする。レコメンドに誤って利用された登録文書画像については、それ以後は間違ってレコメンドされないのであれば、類似度ウエイトは１に近い値となるため、マッチングする可能性が若干低下するだけである。
可能性の２つ目が原因であった場合は、共通のルールを生成することは難しいが、レコメンドが間違っていたクエリ文書画像のすべてを新たな登録文書画像として登録していくことにより、正しいレコメンドがされる可能性が高まる。
可能性の３つ目が原因であった場合は、新しいルールに対応したクエリ文書画像が新たな登録文書画像として登録される。このようにすることで、古いルールに対応した登録文書画像がマッチングする可能性が低下するため、新しいルールに対応した登録委文書画像にマッチングする可能性が高まる。古いルールの登録文書画像は、間違ってレコメンドされるたびに、類似度ウエイトＰが小さい値となり、マッチングする可能性が低下するため、だんだんとレコメンドされなくなる。類似度ウエイトＰが一定以下に低下した登録文書画像を消去したり、マッチング対象から外すようにしたりしてもよい。
【００６１】
レコメンド処理のフィードバックの結果として、クエリ文書画像の新しい登録文書画像としての登録が必要な場合および、ステップＳ２１０を経由してステップＳ２１３に進んだ場合には、クエリ文書画像を新しい登録文書画像として登録する。登録は、装置制御部１０２が、登録情報を記憶部１０７に保存することにより行う。登録情報は、マッチングに必要な情報およびスキャンアシスト処理のために必要な情報である。マッチングに必要な情報は、本実施例においては、クエリ文書画像のステップＳ２０３で算出し、後述するステップＳ８０２で前処理が施されたＢＳ処理結果の情報である。ＢＳ処理結果の情報は、クエリ文書画像の構造に関する情報が含まれており、マッチングに有用な情報であるためである。なお、クエリ文書画像の画像情報そのものや局所特徴量等の別種の公知の特徴量を保存しておき、文書画像のマッチングに利用しても良い。スキャンアシスト処理のために必要な情報は、最終的な送信設定（ファイル名、メタ情報、送付先等）の情報および、その送信設定を設定するためにステップＳ２１１で利用されたＢＳテキストブロックや固定文字列に関する情報である。
【００６２】
以上が、本発明の全体フローの説明となる。
ここで、本発明の全体フローを実現するために、装置制御部１０２がＲＡＭ１０６や記憶部１０７に保持するデータ構造の一例について、図７を用いて説明する。
【００６３】
図７（Ａ）は、クエリ文書画像のＢＳテキストブロック情報（ステップＳ２０３の処理結果）を保持するデータ構造である。１列目は、このデータ構造が持つ変数の情報であり、２列目は、各変数の型についての情報である。ここで、型の列の「short」は整数型を意味し、「[ ]」は配列型を意味し、「float」は浮動小数点数型を意味し、「enum」は列挙型を意味し、「string」は文字列を意味する。これは、図７の図面全体で共通である。
図７（Ａ）においては、クエリ文書画像について、「画像幅」、「画像高さ」、および「ＢＳテキストブロック数」の情報に加えて、「ＢＳテキストブロックリスト」として「ＢＳテキストブロック」のデータ構造を配列で持つ。「ＢＳテキストブロック」のデータ構造は、図７（Ｂ）に示すデータ構造である。図７（Ｂ）に示すように、「ＢＳテキストブロック」は、「ブロックＩＤ」、「ブロック幅」、「ブロック高さ」、「ブロック左上頂点座標のＸ座標」および「ブロック左上頂点座標のＹ座標」を保持する。
【００６４】
登録文書画像のデータ構造は、図７（Ｃ）に示される。これは、ステップＳ２１３で生成が行われる。具体的には、登録文書画像のデータ構造は、「登録文書ＩＤ」，「画像幅」、「画像高さ」、「ＢＳテキストブロック数」、「ＢＳテキストブロックリスト」、および「選択テキストブロック情報リスト」からなる。「ＢＳテキストブロックリスト」は、「ＢＳテキストブロック」の配列である。「選択テキストブロック情報リスト」は、「選択テキストブロック情報」の配列である。
ここで、「ＢＳテキストブロック」のデータ構造は、図７（Ｂ）に示すデータ構造である。図７（Ａ）および図７（Ｃ）の「ＢＳテキストブロックリスト」の情報を利用して、クエリ文書画像と登録文書画像間でのマッチング処理が行われる。「選択テキストブロック情報」は、紐づけられた登録文書画像において、ユーザが選択して、スキャンアシスト情報の生成に利用したブロックに関しての情報である。「選択テキストブロック情報」のデータ構造は、図７（Ｄ）に示すデータ構造である。図７（Ｄ）に示すように、「選択テキストブロック情報」は、「選択テキストブロック情報ＩＤ」と、登録文書画像でユーザに利用されたＢＳテキストブロックの「ＢＳテキストブロックＩＤ」を保持する。
【００６５】
クエリ文書画像と登録文書画像との間で、ステップＳ２０４におけるマッチング処理が行われた結果を保持するデータ構造は、図７（Ｅ）に示すデータ構造である。具体的には、図７（Ｅ）に示すデータ構造は、マッチングした登録文書画像を一意に決定するための「マッチングした登録文書ＩＤ」、「類似度」、および「対応テキストブロック情報リスト」として「対応テキストブロック情報」の配列を保持する。「対応テキストブロック情報」は、マッチングした登録文書画像でスキャンアシスト情報の生成に利用されていたＢＳテキストブロックに対応するクエリ文書画像のＢＳテキストブロックの情報を保持するためのデータ構造である。「対応テキストブロック情報」のデータ構造は、図７（Ｆ）に示すデータ構造である。図７（Ｆ）に示すように、「対応テキストブロック情報」は、「選択テキストブロック情報ＩＤ」、および「クエリ文書画像のブロックＩＤ」を保持する。「選択テキストブロック情報ＩＤ」は、登録文書画像の選択テキストブロック情報を一意に決定するためのＩＤである。「クエリ文書画像のブロックＩＤ」は、クエリ文書画像のテキストブロックを一意に決定するためのＩＤである。
【００６６】
ステップＳ２０７において、スキャンアシスト情報に基づくレコメンドを行うための情報を保持するデータ構造の例は、図７（Ｇ）のデータ構造である。この例においては、ファイル名をレコメンドするためのスキャンアシスト情報を示している。具体的には、図７（Ｇ）のデータ構造は、「スキャンアシスト情報ＩＤ」、対応する登録文書画像を一意に決めるための「対応登録文書ＩＤ」、および「ファイル名要素リスト」として「ファイル名要素」の配列を保持する。「ファイル名要素」の配列のｎ番目の要素は、文書名のｎ番目の要素である。ファイル名において、要素間は、区切り記号である「_」を挟んで連結される。区切り記号としては「_」以外を用いてもよい。「ファイル名要素」のデータ構造の例は、図７（Ｈ）に示すデータ構造である。
図７（Ｈ）に示すように、「ファイル名要素」は、「ファイル名要素ＩＤ」、「要素種類」、「対応する選択テキストブロック情報ＩＤ」、「メタデータ種類」、および「固定文字列」を保持する。図７（Ｈ）の「対応する選択テキストブロック情報ＩＤ」は、図７（Ｄ）の「選択テキストブロック情報」を一意に決めるためのＩＤである。
「要素種類」の列挙型は、「テキストブロック」、「メタデータ」、および「固定文字列」からなる。「対応する選択テキストブロック情報ＩＤ」は、「要素種類」が「テキストブロック」であったときに有効である。有効であった場合には、「対応する選択テキストブロック情報ＩＤ」を用いて、図７（Ｅ）の「マッチング結果」の「対応テキストブロック情報リスト」から、「対応テキストブロック情報」を一意に決定する。さらに、「対応テキストブロック情報」のクエリ文書画像の「ブロックＩＤ」から、クエリ文書画像の「ＢＳテキストブロック」が一意に決まるので、その「ＢＳテキストブロック」のＯＣＲ処理結果をファイル名に利用する。「メタデータ種類」は、「要素種類」が「メタデータ」であるときに有効である。「メタデータ種類」の列挙型は、「日付」、「ログイン名」、および「部署名」等からなり、対応する「メタデータ」のインスタンスをファイル名に利用する。「固定文字列」は、「要素種類」が「固定文字列」であるときに有効である。「固定列文字」は具体的な文字列であり、そのままファイル名に利用する。
【００６７】
次にステップＳ２０４の文書マッチングの詳細について述べる前に、本実施例において、文書マッチングでマッチングさせたい文書、すなわち、同一種類の文書とみなしたい文書についての説明を行う。文書マッチングにおいては、クエリ文書画像と各登録文書画像の間で類似度を算出し、最も高い類似度かつ、その類似度が所定の閾値を超えた登録文書がマッチングした文書となる。そのため、同一種類の文書とみなしたい文書とは、どのような文書間で類似度が高くしたいかという問題と等価である。本実施例では、スキャンアシスト情報の生成のためのマッチングであるため、文書画像間でスキャンアシスト情報の生成に利用される可能性が高い領域が類似している場合には同一種類の文書とみなし、高い類似度とすることを考える。
【００６８】
具体的な文書画像の例を図９（Ａ）、図９（Ｂ）および図９（Ｃ）に示す。ここでは、文書が帳票である場合を示し、文書を帳票と称する場合がある。図９（Ａ）と図９（Ｂ）は、領域９０１と領域９０４が互いに類似しているが、図９（Ｃ）の領域９０７とは類似していない。なお、ここでの類似度は、文書画像同士の構造の類似度を意味しており、文字列自体の内容の類似度は考えていない。これは、全く同じ文字列の文書がスキャンされた際にレコメンドするだけでは適用範囲が極めて限られることと、文書画像同士の構造が類似している場合は、文字列が異なっていても、同一の送信設定が適用される可能性が高いことからである。領域９０１、９０４、９０７のような帳票上部（文書上部）の領域は、帳票（文書）のヘッダ部であり、会社名や文書タイトル等のスキャンアシスト情報を生成するために有用な情報が記載されている場合が多い。そのため、この帳票上部の領域の類似度が高い場合には、同一種類の文書画像とみなしたい。すなわち、図９（Ａ）と図９（Ｂ）とは画像全体としての最終的な類似度が高くなり、同一種類の文書画像とみなされることが望ましい。逆に、この帳票上部の領域の類似度が低い場合には、別種類の文書画像とみなしたい。すなわち、図９（Ａ）または図９（Ｂ）と、図９（Ｃ）とは、画像全体としての最終的な類似度が低くなり、別種類の文書画像とみなされることが望ましい。
【００６９】
さらに、図９（Ａ）と図９（Ｂ）は、領域９０２と領域９０５が互いに類似しているが、図９（Ｃ）の領域９０９とは類似していない。領域９０２、９０５、９０９のような帳票下部（文書下部）の領域は、帳票（文書）のフッタ部であり、合計金額や発行元の会社名等のスキャンアシスト情報を生成するために有用な情報が記載されている場合が多い。そのため、この帳票下部の領域の類似度が高い場合には、同一種類の文書画像とみなしたい。すなわち、図９（Ａ）と図９（Ｂ）とは画像全体としての最終的な類似度が高くなり、同一種類の文書画像とみなされることが望ましい。逆に、この帳票下部の領域の類似度が低い場合には、別種類の文書画像とみなしたい。すなわち、図９（Ａ）または図９（Ｂ）と、図９（Ｃ）とは、画像全体としての最終的な類似度が低くなり、別種類の文書画像とみなされることが望ましい。
【００７０】
ここで、帳票同士で、帳票上部も、帳票下部も類似している場合は、最終的な類似度が高くなるのは問題ない。帳票上部だけ類似している場合や、帳票下部だけ類似している場合については、最終的な類似度を高くすべきか、ユーザのユースケースに応じて変換する。そのため、そのような場合に、最終的な類似度を調整する仕組みが必要である。その詳細な方法については後述する。
【００７１】
図９（Ａ）と図９（Ｃ）は領域９０３と領域９０８が互いに類似しているが、図９（Ｂ）の領域９０６は類似していない。領域９０３、９０６、および９０８のような帳票の中央部の領域は、品名等が記載されている領域であり、品名の数等によって、伸び縮みが生じる領域である。この帳票中央部の領域にスキャンアシスト情報の生成に有用な情報がある可能性は、帳票上部や帳票下部の領域に比べて低い。また、図９（Ａ）および図９（Ｂ）のように、帳票のヘッダ部やフッタ部の類似度が高くても、品名の種類の違い等より、この中央部の領域の類似度が高くならない場合もある。つまり、類似度を算出する際には、この中央部の領域の類似度は重視しないようにしたい。そのため、図９（Ａ）（Ｂ）（Ｃ）間での、この中央部の領域での部分的な類似度は、最終的な類似度への影響度が低いことが望ましい。
【００７２】
つまり、スキャンアシスト情報の生成を考えると、文書画像間の類似度の計算において、重視する部分と重視しない部分とがあることになる。また、文書画像によって、この重視するべき部分は変化する。これは、例えば、帳票の中央部の長さが帳票によって変化し、帳票のフッタ部の位置が帳票によって変化するからである。
【００７３】
続いて、ステップＳ２０４の文書マッチングの詳細について、図８を用いて説明する。図８に示すフローチャートによる処理は、図２と同様に、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、このプログラムコードを実行するＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【００７４】
まず、ステップＳ８０１において、装置制御部１０２は、ＲＡＭ１０６に保持されているクエリ画像のＢＳ処理結果情報を取得する。
【００７５】
続いて、ステップＳ８０２において、装置制御部１０２は、クエリ画像のＢＳ処理結果情報に前処理を加える。具体的には、ＢＳテキストブロックを抽出し、ノイズブロックの除去を行う。ＢＳテキストブロックを抽出するのは、文字列位置は文書画像の構造を良く表現し、さらに全体フローの中で、ＯＣＲ処理やファイルアシスト情報と密接に結びついているためである。なお、ここではＢＳテキストブロックに絞ったが、写真領域や表領域等の他のＢＳ処理結果情報を利用することを制限するものではない。ノイズブロックの除去は、文字列として意味をなしていないような短い文字列は、ノイズを拾っている可能性が高いために行う。ここでのクエリ文書画像のＢＳテキストブロックのデータ構造の一例は、図７（Ａ）である。
【００７６】
続いて、ステップＳ８０３において、装置制御部１０２は、記憶部１０７に保持されている登録文書画像群の中で類似度算出処理が未処理の帳票があれば、その帳票を記憶部１０７から読み出してＲＡＭ１０６に格納し、ステップＳ８０４に進む。なお、登録文書画像群の中のすべての帳票をあらかじめ記憶部１０７から読み出してＲＡＭ１０６に格納しておいても良い。ここで、記憶部１０７から読み出す情報は、各登録文書画像自体ではなく、各登録文書画像のＢＳテキストブロックの情報で良い。ここでのＢＳテキストブロックのデータ構造の一例は、図７（Ｃ）のデータ構造である。また、登録文書画像に紐づいたスキャンアシストに関連した情報も、記憶部１０７から読み出してＲＡＭ１０６に格納しておく。ここでのスキャンアシスト情報のデータ構造の一例は、図７（Ｇ）のデータ構造である。ステップＳ８０３において、未処理の登録帳票がない場合には、ステップＳ８０９に進む。
【００７７】
次に、ステップＳ８０４において、装置制御部１０２は、クエリ文書画像とステップＳ８０３で読みだされた登録文書画像間でのシフト量の算出処理を上部基準で行う。この詳細処理については後述する。
【００７８】
続いて、ステップＳ８０５において、装置制御部１０２は、クエリ文書画像と、ステップＳ８０３で記憶部１０７から読み出してＲＡＭ１０６に格納した登録文書画像との間で、位置合わせ基準が上部基準の場合の類似度を算出する。この処理の詳細については後述する。
このステップＳ８０５の処理は、登録文書画像とクエリ文書画像とを位置合わせする複数の位置合わせ基準のうちのそれぞれで位置合わせした場合の、登録文書画像とクエリ文書画像間の基準毎類似度を算出する手段として機能する。
【００７９】
次に、ステップＳ８０６において、装置制御部１０２は、クエリ文書画像とステップＳ８０３で読みだされた登録文書画像間でのシフト量の算出処理を上部基準で行う。この詳細処理については後述する。
【００８０】
続いて、ステップＳ８０７において、装置制御部１０２は、クエリ文書画像と、ステップＳ８０３で記憶部１０７から読み出してＲＡＭ１０６に格納した登録文書画像との間で、位置合わせ基準が下部基準の場合の類似度を算出する。この処理の詳細については後述する。
このステップＳ８０７の処理は、登録文書画像とクエリ文書画像とを位置合わせする複数の位置合わせ基準のうちのそれぞれで位置合わせした場合の、登録文書画像とクエリ文書画像間の基準毎類似度を算出する手段として機能する。
【００８１】
そして、ステップＳ８０８において、装置制御部１０２は、ステップＳ８０５とステップＳ８０７の結果を統合して、最終的な類似度を算出する。この処理の詳細については後述する。
このステップＳ８０８の処理は、基準毎類似度に基づき、登録文書画像とクエリ文書画像間の最終類似度を算出する手段として機能する。
【００８２】
すべての登録文書画像について、クエリ文書画像との類似度算出処理が終了したら、ステップＳ８０９に進む。ステップＳ８０９において、装置制御部１０２は、登録文書画像群から類似度が最大となる登録文書画像を抽出する。
【００８３】
最後に、ステップＳ８１０において、装置制御部１０２は、ステップＳ８０５とステップＳ８０７の結果を利用して、登録文書画像の選択テキストブロックに対応するクエリ文書画像のＢＳテキストブロックを算出する。これは、スキャンアシスト情報の生成に利用するためである。この処理の詳細については後述する。ここで取得された情報は、ステップＳ２０６のＯＣＲ処理やステップＳ２０７のスキャンアシスト情報の生成で利用される。装置制御部１０２は、マッチングした登録文書画像の情報および対応するクエリ文書画像のＢＳテキストブロックの情報をＲＡＭ１０６に保持しておく。保持する際のデータ構造の一例は、前述した図７で示したデータ構造である。
以上がステップＳ２０４の詳細フローとなる。
【００８４】
続いて、ステップＳ８０４およびステップＳ８０６のシフト量算出処理の詳細フローについて、図１０を用いて説明を行う。ステップＳ８０４とステップＳ８０６とで差異がある部分については、シフト量算出の基準となる座標系であり、その部分についても説明していく。なお、ここで説明するシフト量算出方法の手法は一例であり、本発明は他の手法を用いても構わない。
【００８５】
まずステップＳ１００１において、装置制御部１０２は、クエリ文書画像のＢＳテキストブロックの情報をＲＡＭ１０６から取得する。
【００８６】
続いて、ステップＳ１００２において、装置制御部１０２は、ステップＳ８０３で未処理とされた登録文書画像のＢＳテキストブロックの情報をＲＡＭ１０６から取得する。
【００８７】
そして、ステップＳ１００３において、装置制御部１０２は、クエリ文書画像と登録文書画像のＢＳテキストブロック群同士の間で対応ブロックを算出する。まず、対応ブロックを算出するために、座標系を揃える。ステップＳ８０４においては上部基準で座標系を揃え、ステップＳ８０６においては下部基準で座標系を揃える。
【００８８】
座標系を揃えることについて、図１９を用いて説明を行う。図１９（Ａ）は、上部基準で座標系を揃えた例である。図１９（Ａ）において、クエリ文書画像と登録文書画像は、画像上端部が同一のＹ座標となるように、座標系が揃えられている。
【００８９】
画像上端部で揃える方法では、図１９（Ｂ）のような場合において、問題が生じる可能性がある。図１９（Ｂ）において、登録文書画像の画像上部の余白領域が、クエリ文書画像の画像上部の余白領域よりも広い。このような場合に、画像上端部基準で座標系を揃えたのが、図１９（Ｂ）であり、同一種類のオブジェクトの位置が揃っていないことが分かる。
このような場合であっても、後段のシフト量算出処理により、問題なく位置合わせが出来る場合も多いと考えられるが、ＢＳテキストブロック基準で座標系を揃えるようにしてもよい。それを示したのが図１９（Ｃ）であり、最上部のＢＳテキストブロック同士が揃うように座標系を揃えている。こうすることにより、余白に影響されずに、座標系を揃えることが可能となる。
【００９０】
ただし、この方法を単純に適用すると、ゴミスジ（画像読取部１０８の原稿読取り位置にゴミ、埃、傷、汚れ等が存在することに起因する、スジ状の画像不良）などが誤って、ＢＳテキストブロックと判定された場合には、問題が生じる可能性がある。これを示したのが、図１９（Ｄ）である。登録文書画像の「ＩＤ９６３１」という文字列の上にゴミスジ１９０１が存在する。このゴミスジ１９０１が、ＢＳテキストブロックとして誤認識されると、ＢＳテキストブロック基準かつ上部基準で座標系を揃えると、図１９（Ｄ）のような形で座標系が揃えられる。このようなことを防ぐためには、ゴミスジなどは、小サイズのＢＳテキストブロックである可能性が高いので、一定サイズ以下のＢＳテキストブロックを除外して、最上部のＢＳテキストブロック同士が揃うようにするという対策が考えられる。また、一定サイズ以下のＢＳテキストブロックを除去するのではなくてもよい。例えば、クエリ文書画像と登録文書画像の最上部のＢＳテキストブロック同士の面積の比率が一定範囲を外れる場合に、面積が小さいブロックを除外して、再度、最上部のＢＳテキストブロック同士を揃えるようにしても良い。
【００９１】
続いて、下部基準で座標系を揃える例について説明を行う。図１９（Ｅ）は、クエリ文書画像と登録文書画像を、画像下端部が同一のＹ座標となるように、座標系を揃えている。これは、図１９（Ａ）を下部基準にしたものである。図１９（Ｆ）は、最下部のＢＳテキストブロック同士が揃うように、座標系を揃えている。これは、図１９（Ｃ）を下部基準にしたものである。この手法は、図１９（Ｄ）で説明したのと同様な問題が生じる可能性があるので、同様の対策を行えばよい。
【００９２】
続いて、対応ブロックの算出方法について、図１１を用いて説明する。ここで、クエリ文書画像のＢＳテキストブロックをクエリＢＳテキストブロックともいう。また、登録文書画像のＢＳテキストブロックを登録ＢＳテキストブロックともいう。図１１は、あるクエリＢＳテキストブロックと、ある登録ＢＳテキストブロックとを同一の座標系に描画した中で、その一部を切り出して表示を行ったものである。座標系は、前述したように、ステップＳ８０４においては上部基準であり、ステップＳ８０６においては下部基準である。図１１（Ａ）の実線で描かれた１１０１は、ある１つのクエリ文書画像のＢＳテキストブロックである。図１１（Ａ）の破線で描かれた１１０２、１１０３、１１０４は、クエリＢＳテキストブロック１１０１の周囲にある登録文書画像のＢＳテキストブロックである。図１１（Ａ）の一点鎖線で描かれた１１０５は、クエリＢＳテキストブロック１１０１の左上頂点を中心とし一定距離を半径とする円である。
【００９３】
まず、対応ブロック算出のために、円１１０５内に左上頂点がある登録文書画像のＢＳテキストブロックを探す（探索処理）。図１１（Ａ）の例では、この探索処理で登録ＢＳテキストブロック１１０２およびＢＳテキストブロック１１０３が探索される。
【００９４】
次に、クエリＢＳテキストブロックと、探索処理で見つかった登録ＢＳテキストブロック群（図１１（Ａ）の例では、登録ＢＳテキストブロック１１０２および登録ＢＳテキストブロック１１０３）との間でオーバーラップ率を計算する。オーバーラップ率の算出方法について、図１１（Ｂ）を用いて説明をする。まず、クエリＢＳテキストブロック１１０６と登録ＢＳテキストブロック１０１７の左上頂点を合わせる。次に、クエリＢＳテキストブロック１１０６と登録ＢＳテキストブロック１０１７の共通部分１１０８の面積を算出する。そして、共通部分の面積／（クエリＢＳテキストブロック１１０６の面積と登録ＢＳテキストブロック１０１７の面積のうち大きい方の面積）をオーバーラップ率とし、オーバーラップ率を算出する。
【００９５】
クエリＢＳテキストブロックのそれぞれについて、探索処理で見つかった登録ＢＳテキストブロックのそれぞれに対して算出したオーバーラップ率のうち最も高いオーバーラップ率を、そのクエリＢＳテキストブロックの最大オーバーラップ率とする。このようにして、クエリＢＳテキストブロックごとに最大オーバーラップ率を算出する。そして、最大オーバーラップ率×α（αは所定の係数）以上かつ所定の閾値を超えるオーバーラップ率である、クエリＢＳテキストブロックと登録ＢＳテキストブロックのペアを対応点ペア群とする。この処理をクエリ文書画像のすべてのＢＳテキストブロックについて行い、対応点ペア群を算出する。
【００９６】
続いて、ステップＳ１００４において、装置制御部１０２は、ステップＳ１００３で算出した対応点ペア群のうち、ステップＳ１００５およびステップＳ１００６の処理が未処理の対応点ペアがあるかを判断する。未処理の対応点ペアがあった場合には、ステップＳ１００５に進み、すべての対応点ペアの処理が終わった場合には、ステップＳ１００７に進む。
【００９７】
ステップＳ１００５に進んだ場合、装置制御部１０２は、ステップＳ１００４で選択された未処理の対応点ペアの重みを計算する。重みは、例えば、その対応点ペアのクエリＢＳテキストブロックが、他の登録ＢＳテキストブロックと対応点ペアになっていなければ高くする。同様に、その対応点ペアの登録ＢＳテキストブロックが、他のクエリＢＳテキストブロックと対応点ペアになっていなければ高くする。この重複対応に基づく重みの割り当ては、図２０に一例を示すテーブルを利用して行う。この図２０のテーブルは、横軸に、対象対応点ペアのクエリＢＳテキストブロックが他の登録BSテキストブロックとペアになっている個数をとっている。また、図２０のテーブルは、縦軸に、対象対応点ペアの登録ＢＳテキストブロックが他のクエリＢＳテキストブロックとペアになっている個数をとっている。そして、他の登録ＢＳテキストブロックや他のクエリＢＳブロックとの対応がないほど、高い重みとなっている。
【００９８】
また、計算式に基づいて、重みを決定してもよい。対象対応点ペアのクエリＢＳテキストブロックが他の登録ＢＳテキストブロックと対応点ペアになっている個数をＮとし、対象対応点ペアの登録ＢＳテキストブロックが他のクエリＢＳテキストブロックと対応点ペアになっている個数をＭとする。この場合は、例えば、重複対応に基づく重み=(1/(N+1)+1/(M+1))/2として重みを計算すれば、他の登録ＢＳテキストブロックやクエリＢＳブロックの対応がないほど、高い重みとすることが可能となる。
【００９９】
また、クエリＢＳテキストブロックの左上頂点のＹ座標（文書画像の上下方向）に応じて重みを変えるようにしてもよい。例えば、上部基準でシフト量を算出する場合には、クエリ文書画像の上部になるほど重みを増加させ、下部領域は重みを０として利用しない。逆に、下部基準でシフト量を算出する場合には、クエリ文書画像の下部になるほど重みを増加させ、上部領域は重みを０として利用しない。これは、文書画像の中央部は伸縮する可能性があり、上部基準における下部領域、下部基準における上部領域は、位置合わせに有用な情報ではない可能性があるためである。このＹ座標に応じた重みの例を、図２１に示す。
【０１００】
図２１は、上部基準でシフト量を算出する際の重みの一例を示す図である。図２１の横軸は、画像高さを１に正規化した際のＹ座標位置であり、縦軸はＹ座標に応じた重みである。ここでは、横軸の値が０の位置が画像上端部で、横軸の値が１の位置が画像下端部である。この図２１においては、画像の最上部で最も重みが大きくなり、画像中央まで重みが減少していき、画像下半分は重みが０になっている。このような重みを利用することにより、有用な領域の対応ペアを重視することが可能となる。下部基準でシフト量を算出する際には、図２１の左右が反転した重みを利用すればよい。
【０１０１】
なお、重複対応に基づく重みと、Ｙ座標に応じた重みの両方を利用する場合には、両者の重みを乗算もしくは加算して利用する。
【０１０２】
続いて、ステップＳ１００６において、装置制御部１０２は、シフト量算出のために、Ｘ方向のシフト量ヒストグラムおよびＹ方向のシフト量ヒストグラムへの投票を行う。この投票は、まず対応点ペアの左上頂点のＸ方向の差分量（シフト量）と、Ｙ方向の差分量（シフト量）を算出する。そして、算出した位置に、ステップＳ１００５で求めた重みで投票する。ヒストグラムのビンの範囲は所定の範囲とする。
【０１０３】
ステップＳ１００５およびステップＳ１００６の処理を、すべての対応点ペアに対して実行することにより、Ｘ方向およびＹ方向のシフト量のヒストグラムが生成される。生成されたヒストグラムに対して、ノイズの影響を軽減するため、スムージングを掛けてもよい。
【０１０４】
すべての対応点ペアの投票が終了し、ヒストグラムが生成された後に、ステップＳ１００７に進む。ステップＳ１００７において、装置制御部１０２は、ＸおよびＹ方向のヒストグラムを分析し、それぞれの方向についてクエリ文書画像と登録部文書画像間のシフト量候補群を算出する。シフト量算出方法について、図１２を用いて説明を行う。
【０１０５】
図１２（Ａ）はシフト量のヒストグラムの例であり、グラフの横軸はシフト量であり、縦軸は相関値（ヒスグラムの度数）である。この場合は、データ点１２０１が大きなピークとして１つだけあるので、これをデータ点１２０１に対応するシフト量を１つだけシフト量候補とする。
【０１０６】
図１２（Ｂ）はシフト量のヒストグラムの例であり、図１２（Ａ）とは別の例である。図１２（Ｂ）の横軸および縦軸は、図１２（Ａ）の横軸および縦軸と同じである。この図１２（Ｂ）の例においては、最大のピーク点であるデータ点１２０２以外にも、局所的なピーク点が複数ある。例えば、データ点１２０３、データ点１２０４、およびデータ点１２０５も局所的なピーク点である。この場合には、所定の条件を満たすピーク点についてもシフト量候補として選択する。条件は、例えば、局所的なピーク点が最大ピーク点の一定の割合を超えるかどうか、局所的なピーク点が所定の閾値を超えるかどうか、局所的なピーク点が２番目に相関値が大きいピーク点であるかどうか等である。例えば、図１２（Ｂ）の例では、データ点１２０３、１２０４、１２０５に対応するシフト量も、シフト量候補とする。このような処理をＸ方向とＹ方向のそれぞれに適用することにより、Ｘ方向およびＹ方向のシフト量候補を算出する。
【０１０７】
最後に、ステップＳ１００８において、装置制御部１０２は、Ｘ方向およびＹ方向シフト量候補群を組み合わせ、シフト量候補群とする。例えば、Ｘ方向のシフト量候補群として、xShift1,xShift2の２種類があり、Ｙ方向のシフト量候補群として、yShift1,yShift2,yShift3の３種類があるとする。この際、単純に組み合わせると２種類×３種類＝６種類のシフト量候補となる。シフト量候補が増えると、シフト量候補ごとに類似度計算が必要になるため、パフォーマンスに影響を与える。そこで、Ｘ方向の最大ピーク点と対応するシフト量がxShift1であり、Ｙ方向の最大ピーク点と対応するシフト量がyShift1であった場合に、それぞれのxShift1もしくはyShift1が絡む対応ペアだけをシフト量候補とする。この場合には、（xShift1,yShift1）（xShift1,yShift2）（xShift1,yShift3）（xShift2,yShift1）の４種類のシフト量候補群となる。これは、Ｘ方向とＹ方向の両方の最大ピーク点が同時に間違っている可能性が低いことを前提としている。なお、これ以外の方法でシフト量候補を絞るようにしてもよい。
以上のフローにより、クエリ文書画像と登録文書画像間のシフト量候補群が算出されたことになる。
【０１０８】
なお、Ｘ方向のシフト量は、ステップＳ８０４およびステップＳ８０６で同一となることが想定される。このため、Ｘ方向のシフト量ヒストグラムへの投票はステップＳ８０４とステップＳ８０６で同一のヒストグラムへ行い、その結果を共有して利用するようにしても良い。ステップＳ８０４とステップＳ８０５の実行順序に依存関係はないため、このような処理を行うことが可能である。
【０１０９】
続いて、ステップＳ８０５およびステップＳ８０７の類似度算出処理の詳細フローについて、図１３を用いて説明する。ここで、ステップＳ８０５とステップＳ８０７で差異がある部分について、簡単に説明をする。ステップＳ８０５はステップＳ８０４で算出したシフト量を利用し、上部基準で類似度を算出する。一方、ステップＳ８０７はステップＳ８０６で算出したシフト量を利用し、下部基準で類似度を算出する。詳細については、後述する。
【０１１０】
まず、ステップ１３０１において、装置制御部１０２は、ステップＳ１００８で算出されたシフト量候補群をＲＡＭ１０６より取得する。ここで、ステップＳ８０５の場合は、ステップＳ８０４内のステップＳ１００８である。一方、ステップＳ８０７の場合は、ステップＳ８０６内のステップＳ１００８である。
【０１１１】
続いて、ステップＳ１３０２において、装置制御部１０２は、ステップＳ１３０３およびステップＳ１３０４の処理が未処理のシフト量候補があった場合には、そのシフト量候補を選択し、ステップＳ１３０３に進む。すべてのシフト量候補についての処理が終了した場合には、ステップＳ１３０５に進む。
【０１１２】
ステップＳ１３０２からステップＳ１３０３に進んだ場合には、ステップＳ１３０３において、装置制御部１０２は、ステップＳ１３０２で選択されたシフト量候補を用いて、クエリ文書画像を補正する。具体的には、クエリＢＳテキストブロック群の座標位置をシフト量候補に基づいた一律の平行移動処理を行うことにより、位置合わせを行う。
【０１１３】
次に、ステップＳ１３０４において、位置合わせ後のクエリ文書画像と、登録文書画像の間で、個別の類似度Ｓを算出する。個別の類似度Ｓの算出方法は後述する。
【０１１４】
ステップＳ１３０２の判定の結果、すべてのシフト量候補についての処理が終了した場合について説明する。この場合には、ステップＳ１３０５において、装置制御部１０２は、シフト量候補ごとに算出した類似度Ｓのうち最大の類似度Ｓを、本フローにおけるクエリ文書画像と登録文書画像間での類似度とする。そして、その類似度の情報を、対応するシフト量の情報や補正後のクエリＢＳテキストブロックの情報や登録文書画像の情報と紐づけてＲＡＭ１０６に保持する。また、最大の類似度Ｓが算出された際の、類似度Tmpの分布情報についても、ＲＡＭ１０６に保持する。類似度Tmpの分布情報については、類似度Ｓ算出処理の詳細において後述する。
【０１１５】
以上のフローにより、位置合わせを行った上でのクエリ文書画像と登録文書画像間の類似度が算出できたことになる。続いて、ステップＳ１３０４の個別の類似度Ｓ算出処理の詳細について、図１４を用いて説明する。
【０１１６】
まず、ステップＳ１４０１において、装置制御部１０２は、初期化処理を行う。この初期化処理は、類似度Ｓを０で初期化し、位置補正済みのクエリＢＳテキストブロック群と、登録ＢＳテキストブロック群を取得する。
【０１１７】
続いて、ステップＳ１４０２において、装置制御部１０２は、ステップ１４０３以降の処理が未処理のクエリＢＳテキストブロックがあるかの判断を行う。未処理のクエリＢＳテキストブロックが存在した場合には、ステップＳ１４０３に進む。すべてのクエリＢＳテキストブロックの処理が終了した場合にはステップＳ１４１０に進む。
【０１１８】
ステップＳ１４０２からステップＳ１４０３に進んだ場合には、ステップＳ１４０３において、装置制御部１０２は、未処理のクエリＢＳテキストブロックのうちの１つを選択する。このステップＳ１４０３では、ステップＳ８０５の上部基準の場合には、未処理のクエリＢＳテキストブロックのうち左上頂点が最も上部（Ｙ軸のマイナス方向）にあるクエリＢＳテキストブロックを選択する。また、このステップＳ１４０３では、ステップＳ８０７の下部基準の場合には、未処理のクエリＢＳテキストブロックのうち左上頂点がもっとも下部（Ｙ軸のプラス方向）にあるクエリＢＳテキストブロックを選択する。
【０１１９】
続いて、ステップＳ１４０４において、装置制御部１０２は、ステップＳ１４０３で選択されたクエリＢＳテキストブロックに対応する登録ＢＳテキストブロックを探索する。対応する登録ＢＳテキストブロックとは、クエリＢＳテキストブロックと登録ＢＳテキストブロックを同一の座標系に重畳した際に、そのクエリＢＳテキストブロックと重なりが生じる登録ＢＳテキストブロックのことである。また、対応するブロックは複数あってもよく、この場合、対応する登録ＢＳテキストブロック群が探索される。
【０１２０】
次に、ステップＳ１４０５において、装置制御部１０２は、処理対象のクエリＢＳテキストブロックと、対応する登録ＢＳテキストブロック群との間でオーバーラップする面積を計算する。ここでの、オーバーラップ面積の計算は位置合わせ済みのため、ステップＳ１００３のような左上頂点を合わせるようなことはせず、そのまま計算を行う。計算例について、図１５を用いて説明を行う。図１５（Ａ）はクエリＢＳテキストブロック１５０１と登録ＢＳテキストブロック１５０２が重なりあっており、オーバーラップ面積は領域１５０３の面積となる。図１５（Ｂ）はクエリＢＳテキストブロック１５０４と登録ＢＳテキストブロック１５０５および登録ＢＳテキストブロック１５０６が重なりあっており、オーバーラップ面積は領域１５０７と領域１５０８の面積を足し合わせたものとなる。
【０１２１】
そして、ステップＳ１４０６において、装置制御部１０２は、類似度計算開始条件を満たしているかの判断を行う。類似度計算開始条件を満たしていなかった場合には、ステップＳ１４０２に戻り、未処理のクエリＢＳテキストブロックの処理を継続する。類似度計算開始条件を満たしていた場合には、ステップＳ１４０７に進む。ここでの類似度計算開始条件は、信頼できる類似度が計算可能かどうかを判断するための条件である。ブロック数が少ない場合や、処理済みのクエリＢＳテキストブロックの存在範囲が狭い場合には、類似度の信頼度が低い。そこで、
・所定のクエリＢＳテキストブロック数が処理されたこと、
・文書画像上部（ステップＳ８０５）または文書画像下部（ステップＳ８０７）から所定の距離離れたクエリＢＳテキストブロックまで処理されたこと、
・最も上部（ステップＳ８０５）または最も下部（ステップＳ８０７）のＢＳテキストブロックから所定の距離離れたクエリＢＳテキストブロックまで処理されたこと、
といった条件を類似度計算開始条件とする。
上述した条件は複数組み合わせてもよいし、複数組み合わせた条件を複数利用しても良い。また、処理されたクエリＢＳテキストブロックの総面積等の別の指標を、類似度計算開始条件として利用しても良い。
【０１２２】
ステップＳ１４０７において、装置制御部１０２は、類似度Ｔｍｐを計算する。類似度Ｔｍｐの計算方法は、種々の公知の手法が考えられるが、本実施例では下記の数１で求める。
【０１２３】
【数１】
2020123089.tif 000003
【０１２４】
ここで、
・Overlapは、処理済みのクエリＢＳテキストブロックの総オーバーラップ面積である。
・TotalAreaは、QueryArea と RegistAreaの最大値である。
・QueryAreaは、処理済みのクエリＢＳテキストブロックの総面積である。
・RegistAreaは、ステップＳ８０５においては、上端座標が、処理済みのクエリＢＳテキストブロックの最下端座標よりも上部にある、登録ＢＳテキストブロックの総面積である。また、RegistAreaは、ステップＳ８０７においては、下端座標が、処理済みのクエリＢＳテキストブロックの最上端座標よりも下部にある登録ＢＳテキストブロックの総面積である。
【０１２５】
数１により、クエリＢＳテキストブロックと登録ＢＳテキストブロックの配置形状が、どれだけ類似しているかを求めることが出来る。クエリＢＳテキストブロックの面積または登録ＢＳテキストブロックの面積が広い場合には、関係がない文書画像同士でも重なる可能性が高くなる。これは、Overlapが大きくなるためである。そこで、数１では、Overlap をQueryArea と RegistAreaの最大値で割っている。
【０１２６】
続いて、ステップＳ１４０８において、装置制御部１０２は、ステップＳ１４０７で求めた類似度Ｔｍｐが類似度Ｓよりも大きいかを判断する。類似度Ｔｍｐが類似度Ｓよりも大きい場合には、ステップＳ１４０９に進む。類似度Ｔｍｐが類似度Ｓ以下である場合には、ステップＳ１４０２に戻る。また、類似度Ｔｍｐの値の履歴については、ステップＳ１４１０やステップＳ８０８やステップＳ８１０で利用するために、ＲＡＭ１０６に保持しておく。この際、類似度Ｔｍｐは、ステップＳ１４０３で選択されているクエリＢＳテキストブロックの左上座標のＹ座標とセットで保持しておく。すなわち、類似度Ｔｍｐは、ステップＳ１４０３で選択されているクエリＢＳテキストブロックの左上座標のＹ座標に対応付けてＲＡＭ１０６に保持しておく。
【０１２７】
そして、ステップ１４０８からステップ１４０９に進んだ場合、装置制御部１０２は、類似度Ｔｍｐを新しい類似度Ｓとする。そして、Ｓ１４０２に進む。
【０１２８】
ステップＳ１４０２の判定において、すべてのクエリＢＳテキストブロックの処理が終わった場合には、ステップＳ１４１０に進む。ここで、ステップＳ１４１０の説明の前に、繰り返し、類似度を計算することの効果について、図１６を用いて、説明を行う。図１６は、上部基準の類似度計算の例であるが、下部基準の類似度計算にも、基準の違いだけで、同様に適用することが可能である。
【０１２９】
図１６は、繰り返し類似度（ステップＳ１４０７の類似度Ｔｍｐ）を算出する際に、どのように類似度が変化していくかを図示したものである。１６０１は登録文書画像であり、１６０２はクエリ文書画像である。領域１６０３における領域（１）〜（６）のそれぞれは、登録文書画像１６０１において、６種類の類似度を計算する範囲を有する領域である。なお、図示のため、多数の類似度計算結果のうち、代表して６種類の類似度結果だけを記載している。領域（１）〜（６）のどの領域も、文書画像の上部の領域を含むようになっており、上部の固定的な構造を持つ領域が文書画像に応じて変化したとしても対応可能となっている。領域１６０４の領域（１）〜（６）のそれぞれは、クエリ文書画像１６０２において、領域１６０３の領域（１）〜（６）のそれぞれに対応する類似度を計算する範囲を有する領域である。計算結果１６０５は、領域１６０３および領域１６０４の領域（１）〜（６）のそれぞれの領域に対応する類似度の計算結果である。
【０１３０】
登録文書画像１６０１とクエリ文書画像１６０２は、上端部から領域（４）の部分まで類似しており、領域（１）〜（４）の範囲の類似度が高くなっている。つまり、固定的な構造を持つ領域に対応した類似度算出を実現していることになる。ただ、領域（１）〜（４）の範囲においても、登録文書画像とクエリ文書画像間で、ＢＳテキストブロックとクエリＢＳテキストブロックの有無、長さ、大きさの違いにより、類似度が異なっている。これは、ブロックセレクション処理の間違いやばらつき、文字列の長さの違いから生じる。計算結果１６０５に示すように、図１６においては、領域（４）の類似度は、０．７５であって最大の類似度であり、最終的な類似度Ｓはこの０．７５になる。このように、特定の領域を含むように複数の類似度を算出することにより、固定的な構造を持つ領域の類似度の算出が可能になり、さらに固定的な領域の中における類似度のばらつきにも対応が可能となる。
【０１３１】
固定的な構造を持つ領域の類似度の算出が可能になる例について、図１７を用いて説明する。図１７（Ａ）の１７０１は登録文書画像であり、１７０２はクエリ文書画像である。登録文書画像１７０１とクエリ文書画像１７０２は全体的な構造は類似しているが、品名が掛かれている部分が大きく異なっている。そのため、類似度算出の領域の違いにより大きく類似度が異なる。その例を示したものが、図１７（Ｂ）である。領域１７０３の領域（１）および領域（２）は、登録文書画像１７０１において類似度を計算する範囲を有する領域である。領域１７０４の領域（１）および領域（２）は、クエリ文書画像１７０２において、領域１７０３の領域（１）および領域（２）に対応する類似度を計算する範囲を有する領域である。計算結果１７０５は、領域１７０３および領域１７０４の領域（１）および領域（２）の各領域に対応する類似度の計算結果である。
【０１３２】
計算結果１７０５に示すように、領域１７０３および領域１７０４の領域（１）の類似度は０．７５であり、領域（２）の類似度は０．１８である。このように、領域（１）の類似度と領域（２）の類似度は、大きく異なる。領域（１）と領域（２）の範囲の差分は大きくはないが、クエリ文書画像にしかないＢＳテキストブロックが多数あるため、類似度が大きく異なっている。このように類似度計算の領域が少し異なるだけでも、類似度が大きく異なる場合があるため、すべての文書画像で固定的な範囲で類似度を計算することの難しさと、特定の領域を含むように複数の類似度を計算することの効果が分かる。図１７においては、下部領域も固定的な構造を持つため、下部領域基準であっても、効果的に類似度を算出することが可能である。
【０１３３】
最後に、ステップＳ１４１０において、装置制御部１０２は、類似度Ｔｍｐの分布による類似度Ｓの補正処理を行う。類似度Ｓは複数回計算をした類似度Ｔｍｐの最大値であるため、類似度Ｔｍｐの分布形状が表現できているわけではない。例えば、同一の類似度であっても、類似度Ｓの近辺だけ類似度Ｔｍｐが高い場合と、より広い範囲で類似度Ｔｍｐが高い場合とでは、類似度Ｓを補正し、後者の類似度Ｓを補正した方が望ましい場合がある。その例について図１８を用いて説明する。
【０１３４】
図１８のクエリ文書画像１８０１と登録文書画像１８０２は、全体的には同一の構造を持ち、品名を記載している部分だけが異なっている。図１８のクエリ文書画像１８０１と登録文書画像１８０３は、上部の構造だけが同一の構造であり、下部の構造は異なる。そして、クエリ文書画像１８０１と登録文書画像１８０２の間の類似度Ｓは０．８であり、クエリ文書画像１８０１と登録文書画像１８０３の間の類似度Ｓも同一の０．８であったとする。このような場合には、全体的に類似している前者の類似度Ｓが後者の類似度Ｓよりも高くなることが望ましい。この際、クエリ文書画像１８０１と登録文書画像１８０２の間で類似度０．７を超える類似度Ｔｍｐの範囲は領域１８０４であり、全体に対し領域１８０４が占める割合が０．２５であったとする。そして、クエリ文書画像１８０１と登録文書画像１８０３の間で類似度０．７を超える類似度Ｔｍｐの範囲は領域１８０５であり、全体に対し領域１８０５が占める割合が０．１５であったとする。このような場合に、例えば、数２で、類似度Ｓを補正する。
【０１３５】
【数２】
2020123089.tif 000004
【０１３６】
ここで、ＭＩＮ（Ａ,Ｂ）はＡとＢのうち小さい値を出力する関数であり、ＭＡＸ（Ａ,Ｂ）はＡとＢの大きい値を出力する関数である。所定のゲインは、補正の強さを定義する値であり、例えば、０．０５〜０．５程度の値である。所定のゲインは、図１８の例においては０．１である。所定の正規化係数は、全体に対して類似度Ｓが一定の閾値を超える範囲が占める割合がこの値を超えた場合に、類似度Ｓが補正されることになる値であり、例えば、０．０５〜０．２程度の値である。所定の正規化係数は、図１８の例においては０．１である。
【０１３７】
実際に、図１８の例における補正後の類似度Ｓは、数３および数４に示す値になる。
【数３】
2020123089.tif 000005
【０１３８】
【数４】
2020123089.tif 000006
【０１３９】
数２の補正式により、所定の正規化係数よりも、全体に対して類似度Ｓが一定の閾値を超える範囲が占める割合が大きければ、補正後の類似度Ｓが大きくなる。逆に小さければ、補正後の類似度Ｓが小さくなる。また、全体に対して類似度Ｓが一定の閾値を超える範囲が占める割合が大きいほど、補正後の類似度Ｓが大きくなる。図１８の例において、補正後の類似度Ｓは、クエリ文書画像１８０１と登録文書画像１８０２の間の類似度Ｓが０．９２であり、クエリ文書画像１８０１と登録文書画像１８０３の類似度Ｓである０．８４よりも高くなる。類似度Ｓの補正方法は上記に限定するものではなく、類似度Ｔｍｐの上位半分の平均等により、クエリ文書画像と登録文書画像の類似している領域の幅を推定することにより、補正するようにしてもよい。
以上のフローにより、個別の類似度Ｓが算出できたことになる。
【０１４０】
続いて、ステップＳ８０８の最終類似度算出処理の詳細について、図２２を用いて説明する。まず、ステップＳ２２０１において、装置制御部１０２は、ＲＡＭ１０６から類似度関連情報の取得を行う。類似度関連情報は、ステップＳ８０５で算出された上部基準の類似度とその類似度が計算された際の類似度Ｔｍｐの分布情報、ステップＳ８０７で算出された下部基準の類似度とその類似度が計算された際の類似度Ｔｍｐの分布情報である。最終的な類似度自体は、類似度Ｔｍｐの分布情報により計算されるため、ステップＳ８０５およびステップＳ８０７で計算された類似度は直接的には利用されない。ただし、計算量を減らすため、これらの類似度が所定の値以下のときには、最終的な類似度を０として、本フローを終了することなどに利用することが可能である。また、本フローの方法を利用せず、単純にステップＳ８０５およびステップＳ８０７で計算された類似度の平均等を最終的な類似度としてもよい。
【０１４１】
次に、ステップＳ２２０２において、装置制御部１０２は、ステップＳ８０５およびステップＳ８０７の類似度Ｔｍｐの分布情報の合成処理を行う。類似度Ｔｍｐの分布情報は、類似度と、その類似度が計算された際に選択されていたクエリＢＳテキストブロックの左上座標のＹ座標である。この情報は離散的な情報であるため、補間処理をして、連続的な情報とする。補間処理は、線形補間等の公知の処理を利用すればよい。この処理は、ステップＳ８０５およびステップＳ８０７の類似度Ｔｍｐの分布情報の両方に対して適用する。
【０１４２】
ステップＳ２２０２の処理の具体例を、図２３に示す。図２３（Ａ）は、ステップＳ８０５で算出される上部基準の類似度Ｔｍｐの分布を連続的な情報としたものである。図２３（Ａ）におけるクエリ文書画像と、登録文書画像から計算される類似度Ｔｍｐの分布が、図２３（Ａ）の類似度Ｔｍｐ分布である。図２３（Ａ）の類似度Ｔｍｐ分布のグラフにおいて、横軸は類似度であり、縦軸はクエリ帳票のＹ座標である。このＹ座標は、前述した、その類似度が計算された際に選択されていたクエリＢＳテキストブロックの左上座標のＹ座標である。図２３（Ｂ）は、ステップＳ８０７で算出される下部基準の類似度Ｔｍｐの分布を連続的な情報としたものである。図２３（Ｂ）におけるクエリ文書画像と、登録文書画像から計算される類似度Ｔｍｐの分布が、図２３（Ｂ）の類似度Ｔｍｐ分布である。図２３（Ｂ）の類似度Ｔｍｐ分布のグラフにおける、横軸および縦軸は、図２３（Ａ）の横軸および縦軸と同様である。
【０１４３】
ステップＳ２２０２において、装置制御部１０２は、続いて、連続的な情報となったステップＳ８０５およびステップＳ８０７の類似度Ｔｍｐの分布を合成する。合成処理は、ステップＳ８０５およびステップＳ８０７の類似度Ｔｍｐの分布の類似度が大きい方の値を合成後の値とすることにより行う。その具体的な例を図２４（Ａ）および図２４（Ｂ）を用いて説明する。図２４（Ａ）は、ステップＳ８０５およびステップＳ８０７の類似度Ｔｍｐの分布を重ね合わせて表示したものである。ここで、実線で示す分布２４０１はステップＳ８０５の上部基準の類似度Ｔｍｐの分布であり、一点鎖線で示す分布２４０２はステップＳ８０７の下部基準の類似度Ｔｍｐの分布である。この２つの分布について、類似度が大きい方の値を合成後の値とすることにより生成される分布が、図２４（Ｂ）の分布２４０３である。
【０１４４】
次に、ステップＳ２２０３において、装置制御部１０２は、合成後の類似度Ｔｍｐの分布から、最終類似度算出用パラメータを算出する。ここで算出するパラメータは、４種類ある。最初の２種類のパラメータは、合成後の類似度Ｔｍｐの分布のうち、ステップＳ８０５の類似度Ｔｍｐに由来する部分の最大値α、および所定の閾値Ｔｈを超える部分の領域の幅Ａである。なお、閾値Ｔｈを超える領域が複数あった場合には、それぞれの領域の幅を足し合わせる。残りの２種類のパラメータは、合成後の類似度Ｔｍｐの分布のうち、ステップＳ８０７の類似度Ｔｍｐに由来する部分の最大値β、および所定の閾値Ｔｈを超える部分の領域の幅Ｂである。これらの算出するパラメータをグラフ上に図示した例が、図２４（Ｃ）である。図２４（Ｃ）には、閾値Ｔｈ，ステップＳ８０５由来の最大値αおよび領域幅Ａ、ステップＳ８０７由来の最大値βおよび領域幅Ｂが図示されている。ここで、領域幅ＡおよびＢは、クエリ文書画像の画像高さが１となるように正規化されているとする。
【０１４５】
最後に、ステップＳ２２０４において、装置制御部１０２は、最終的な類似度を算出する。算出方法としては、種々の方法が考えられる。例えば、前述した図１４に記載の方法を用いればよい。ここで、類似度Ｓは、最大値αと最大値βのうちの大きい方の値とし、「類似度Ｓが一定の閾値を超える範囲」は領域幅Ａと領域幅Ｂを足したものとすればよい。他にも、数５を用いても良い。
【０１４６】
【数５】
2020123089.tif 000007
【０１４７】
ここで、f(x)は、xの幅に基づいて、類似度の補正係数を求める関数である。この関数としては、任意の補正関数の利用が可能である。装置制御部１０２は、算出した最終的な類似度を、対応する登録文書画像と紐づけてＲＡＭ１０６に保持しておく。
以上のフローにより最終的な類似度が算出できたことになる。
【０１４８】
続いて、ステップＳ８１０における、抽出された登録文書画像の選択テキストブロック群に対応するクエリ文書画像ブロック群を算出する処理の詳細について、図２５を用いて説明する。
【０１４９】
まず、ステップＳ２５０１において、装置制御部１０２は、ステップＳ８０９で抽出された最大類似度となる登録文書画像に関連した情報を、ＲＡＭ１０６から取得する。取得する情報は、クエリ文書画像のＢＳテキストブロック情報、登録文書画像のＢＳテキストブロック情報、類似度Ｔｍｐの分布情報、登録文書画像に紐づいたファイルアシスト情報の生成に利用された選択テキストブロック情報である。ここで、登録文書画像のＢＳテキストブロック情報は、ステップＳ８０５において上部基準で位置合わせをされた際のＢＳテキストブロック情報と、ステップＳ８０７において下部基準で位置合わせをされた際のＢＳテキストブロック情報の２種類からなる。類似度Ｔｍｐの分布情報は、ステップＳ８０８内のステップＳ２２０１で補間され、連続的な情報となった、上部基準の類似度Ｔｍｐの分布情報と下部基準の類似度Ｔｍｐの分布情報の２種類からなる。
【０１５０】
次に、ステップＳ２５０２において、装置制御部１０２は、上部基準で、登録文書画像の選択テキストブロック群に対応するクエリ文書画像のＢＳテキストブロック群の取得処理を行う。この取得処理は、選択テキストブロック情報と紐づいた登録文書画像のＢＳテキストブロック（選択テキストブロック）ごとに処理を行う。ここでの、ＢＳテキストブロックは、ステップＳ８０５において上部基準で位置合わせをされたものである。各選択テキストブロックとクエリ文書画像のＢＳテキストブロックに対して、前述したステップＳ１４０４と同様な処理をすることにより、対応ブロックを算出することが可能である。ただ、１点ステップＳ１４０４との違いがある。ステップＳ１４０４は、クエリ文書画像のＢＳテキストブロックに対応する登録文書画像のＢＳテキストブロックを検出する。それに対して、ここでは、登録文書画像のＢＳテキストブロックに対応するクエリ文書画像のＢＳテキストブロックを検出する。複数の対応するクエリＢＳテキストブロックが検出された場合には、ステップＳ１４０５の方法で、オーバーラップ面積を計算し、最大のオーバーラップ面積となるクエリテキストブロックを対応ブロックとすればよい。こうして、選択テキストブロック群に含まれるすべての選択テキストブロックについて、対応するクエリ文書画像のＢＳテキストブロックを取得する。
【０１５１】
続いて、ステップＳ２５０３において、装置制御部１０２は、下部基準で、登録文書画像の選択テキストブロック群に対応するクエリ文書画像のＢＳテキストブロック群の取得処理を行う。ここでの処理は、利用する登録文書画像のＢＳテキストブロックがステップＳ８０７において下部基準で位置合わせをされたものであることを除き、ステップＳ２５０２と同一である。
【０１５２】
ここで、ここまでの処理が行われた状態の例について、図２６を用いて説明を行う。図２６には、クエリ文書画像、上部基準で位置合わせされた登録文書画像、下部基準で位置合わせされた登録文書画像が図示されている。ＵＩは、ＢＳテキストブロックを他の領域と同じ背景色で表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と異なる背景色で表示してもよい。ＵＩは、ＢＳテキストブロックの背景色をグレーにして表示してもよい。ＵＩは、ＢＳテキストブロックの背景を網点背景にして表示してもよい。ＵＩは、ＢＳテキストブロックを他の領域と識別可能に表示することが望ましい。
【０１５３】
図２６の例において、ファイルアシスト情報の生成に利用された選択テキストブロックは２つある。１つ目の選択テキストブロックは、登録文書における「請求書」という文字列に対応する登録ＢＳテキストブロック２６０１および登録ＢＳテキストブロック２６０５である。２つ目の選択テキストブロックは、登録文書における合計金額に関する文字列に対応する登録ＢＳテキストブロック２６０３および登録ＢＳテキストブロック２６０７である。そして、登録ＢＳテキストブロック２６０１とクエリＢＳテキストブロック２６０２が対応し、登録ＢＳテキストブロック２６０３とクエリＢＳテキストブロック２６０４が対応する。また、登録ＢＳテキストブロック２６０５とクエリＢＳテキストブロック２６０６が対応し、登録ＢＳテキストブロック２６０７とクエリＢＳテキストブロック２６０８が対応する。登録ＢＳテキストブロック２６０１および登録ＢＳテキストブロック２６０５は、同一のブロックであるが、異なるクエリＢＳテキストブロックと対応している。また、登録ＢＳテキストブロック２６０３およびＢＳテキストブロック２６０７も同一のブロックであるが、異なるクエリＢＳテキストブロックと対応している。このような状況で、対応するクエリＢＳテキストブロックを一意にするための方法が、次ステップ以降の処理となる。
【０１５４】
まず、ステップＳ２５０４において、装置制御部１０２は、ステップＳ２５０５以降の処理が未処理の選択テキストブロックがあるかを判断する。ここで、未処理であるかを判定する処理とは、選択テキストブロックに対応する、上部基準および下部基準で取得されたクエリＢＳテキストブロックのうちの１つを選択する処理を意味する。ステップＳ２５０４において、未処理の選択テキストブロックが存在した場合には、その選択テキストブロックを抽出し、ステップＳ２５０５に進む。ステップＳ２５０４において、未処理の選択テキストブロックが存在しなかった場合には、ステップＳ２５１０に進む。また、選択テキストブロックに対応するクエリＢＳテキストブロックが０個もしくは１個だった場合には、選択する必要がないため、ステップＳ２５０４において、その選択テキストブロックを処理済みの選択テキストブロックと見なす。この状態は、上部基準および下部基準の片方もしくは両方の基準において、選択テキストブロックと所定の閾値以上オーバーラップするクエリＢＳテキストブロックが存在しなかった場合に生じる。
【０１５５】
ステップＳ２５０４からステップＳ２５０５に進んだ場合について説明する。ステップＳ２５０５において、装置制御部１０２は、抽出された選択テキストブロックについて、上部基準で対応するクエリ文書画像ブロックの上端座標に対応する類似度Ｔｍｐの分布の値を取得する。そして、その類似度を類似度Ｍとする。
【０１５６】
続いて、ステップＳ２５０６において、装置制御部１０２は、抽出された選択テキストブロックについて、下部基準で対応するクエリ文書画像ブロックの上端座標に対応する類似度Ｔｍｐの分布の値を取得する。そして、その類似度を類似度Ｎとする。
【０１５７】
そして、ステップＳ２５０７において、装置制御部１０２は、類似度Ｍと類似度Ｎの値を比較する。Ｍ＞＝Ｎ（ＭがＮ以上）であった場合には、ステップＳ２５０８に進み、それ以外の場合にはステップ２５０９に進む。これは、類似度の高い方の基準の方が、正しいクエリＢＳテキストブロックと対応している可能性が高いからである。
【０１５８】
ステップＳ２５０７からステップＳ２５０８に進んだ場合には、ステップＳ２５０８において、装置制御部１０２は、抽出された選択テキストブロックに対応するクエリ文書画像ブロックを、上部基準で選択されたクエリＢＳテキストブロックとする。
【０１５９】
ステップＳ２５０７からステップＳ２５０９に進んだ場合には、ステップＳ２５０９において、装置制御部１０２は、抽出された選択テキストブロックに対応するクエリ文書画像ブロックを、下部基準で選択されたクエリＢＳテキストブロックとする。
【０１６０】
ステップＳ２５０４からステップＳ２５１０に進んだ場合には、すべての選択テキストブロックに対応するクエリＢＳテキストブロックが１つ以下に決まったことを意味する。そこで、ステップＳ２５１０において、装置制御部１０２は、登録文書画像の選択テキストブロック群に対応するクエリ文書画像ブロック群についての情報をＲＡＭ１０６に保持する。
以上のフローにより、ステップＳ８１０で抽出された登録文書画像の選択テキストブロック群に対応するクエリ文書画像ブロック群が算出できたことになる。
【０１６１】
ここで、ステップＳ２５０４からステップＳ２５１０のフローの例について、図２６と図２７を用いて説明をする。ステップＳ２５０３までの処理で、図２６のような形で、選択テキストブロックとクエリＢＳテキストブロックが対応しているとする。
【０１６２】
まず、ステップＳ２５０４で、装置制御部１０２により、登録ＢＳテキストブロック２６０１および登録ＢＳテキストブロック２６０５に対応している選択テキストブロックが抽出されたとする。続いて、ステップＳ２５０５において、装置制御部１０２は、登録ＢＳテキストブロック２６０１に対応したクエリＢＳテキストブロック２６０２の上端座標を取得する。そして、上部基準の類似度Ｔｍｐの分布における対応点が図２７（Ａ）の点２７０１であったとする。その場合、この点２７０１の類似度が類似度Ｍとなる。そして、ステップＳ２５０６において、登録ＢＳテキストブロック２６０５に対応したクエリＢＳテキストブロック２６０６の上端座標を取得する。そして、下部基準の類似度Ｔｍｐの分布における対応点が図２７（Ａ）の点２７０２であったとする。その場合、この点２７０２の類似度が類似度Ｎとなる。そして、ステップＳ２５０７においては、Ｍ＞＝Ｎ（ＭがＮ以上）となるので、ステップＳ２５０８に進み、クエリＢＳテキストブロック２６０２が抽出された選択テキストブロックに対応するクエリＢＳテキストブロックとなる。そして、ステップＳ２５０４に戻る。
【０１６３】
２回目のステップＳ２５０４では、登録ＢＳテキストブロック２６０３および登録ＢＳテキストブロック２６０７に対応している選択テキストブロックが抽出される。続いて、ステップＳ２５０５において、登録ＢＳテキストブロック２６０３に対応したクエリＢＳテキストブロック２６０４の上端座標を取得する。そして、上部基準の類似度Ｔｍｐの分布における対応点が図２７（Ｂ）の点２７０３であったとする。その場合、この点２７０３の類似度が類似度Ｍとなる。そして、ステップＳ２５０６において、登録ＢＳテキストブロック２６０７に対応したクエリＢＳテキストブロック２６０８の上端座標を取得する。そして、下部基準の類似度Ｔｍｐの分布における対応点が図２７（Ｂ）の点２７０４であったとする。その場合、この点２７０４の類似度が類似度Ｎとなる。そして、ステップＳ２５０７においては、Ｍ＜Ｎ（ＭがＮ未満）となるので、ステップＳ２５０９に進み、クエリＢＳテキストブロック２６０８が抽出された選択テキストブロックに対応するクエリＢＳテキストブロックとなる。そして、また、ステップＳ２５０４に戻る。
【０１６４】
今回のステップＳ２５０４では、すべての選択テキストブロックの処理が済んでいるので、ステップＳ２５１０に進み、結果をＲＡＭ１０６に保存して終了する。保存された結果を図示したのが、図２７（Ｃ）である。クエリＢＳテキストブロック２６０２とクエリＢＳテキストブロック２６０８が、選択テキストブロックに対応したブロックとして、結果が保存される。
以上のような形で、本フローを用いることにより、文書画像の伸縮があっても、登録文書画像の選択テキストブロック群に対応したクエリＢＳテキストブロック群が適切に選択されることが分かる。
【０１６５】
以上が画像処理装置１００における実施例１のフローになる。以上説明したとおり、本実施例における一連のフローにより、特定の領域を含むように複数の類似度を算出することにより、固定的な構造を持つ領域の類似度の算出が可能になり、さらに固定的な領域の中における類似度のばらつきにも対応が可能となる。つまり、ユーザが指定しなくとも、同一種類の文書画像を認識するための特定部分を含み、同一種類の文書画像でも差異がある部分を含まない形で文書間の類似度の算出が可能となる。この際、本実施例によれば、特定部分が上部と下部に分離しており、中央部分の長さが伸長するような場合であっても、対応することが可能である。これにより、類似度の算出精度が高まり、付随してユーザへのレコメンド精度（適切なレコメンドである度合い）が高まり、ユーザによる特定の領域の指定も必要がないため、ユーザ負荷を大きく軽減することが可能となる。
【０１６６】
なお、本実施例において、類似度計算にＢＳテキストブロックを利用しているが、他の類似度計算手法を利用しても構わない。例えば、画像の見た目自体を比較するために、低解像度にした文書画像同士の画素値自体を利用して類似度を計算しても構わない。この際には、文書画像同士の輝度値の差の絶対値の和や相関係数を類似度として利用することができる。もしくは、文書に含まれる文章の内容の類似度を見るために、ＯＣＲ処理の結果の文字列を利用して類似度を計算しても構わない。この際には、文字列同士の距離を計算する尺度であるレーベンシュタイン距離等を利用して、類似度尺度を求めれば良い。
【０１６７】
（実施例２）
以下、本発明の実施例２について、前述の実施例１と異なる部分について説明する。本実施例では、マッチング処理（シフト量算出処理および類似度算出処理）を高速に行うための方法について説明を行う。
【０１６８】
実施例２における実施例１との差分は、実施例１の図２および図８のフローチャートである。このため、ここでは、図２のフローチャートの代わりに図２８のフローチャートを参照し、図８のフローチャートの代わりに図３０のフローチャートを参照し、実施例２について説明する。
【０１６９】
まず、本実施例のフローについて、図２８を用いて説明する。図２８において、図２と同じ処理については図２と同じステップ番号を付して、詳しい説明を省略する。図２８は、画像処理装置１００におけるスキャンアシスト処理を示すフローチャートである。図２８のフローチャートは、新しくスキャンされた文書画像に対するスキャンアシスト処理の全体を示す。
【０１７０】
図２８のフローチャートは、ユーザがユーザインターフェース部１０４に対して入力した、文書画像のスキャン指示を受け付けることにより起動する。図２８のフローチャートによる処理は、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、このプログラムコードを実行するＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【０１７１】
ここで、図２と図２８のフローチャートの違いは、図２のステップＳ２１３に代えて、図２８のステップＳ２８０１が設けられている点のみであるので、ここでは、ステップＳ２８０１の処理についてのみ説明を行う。
【０１７２】
ステップＳ２８０１において、装置制御部１０２は、次回以降のクエリ画像のスキャンアシスト処理のための処理を行う。すわなち、レコメンド結果のフィードバック処理およびクエリ文書画像の登録文書画像としての登録処理を行う。レコメンド結果のフィードバック処理については、実施例１のステップＳ２１３と同様なので、説明を省略する。
【０１７３】
レコメンド処理のフィードバックの結果として、クエリ文書画像の新しい登録文書画像としての登録が必要な場合および、ステップＳ２１０を経由してステップＳ２８０１に進んだ場合には、クエリ文書画像を新しい登録文書画像として登録する。登録は、装置制御部１０２が、登録情報を記憶部１０７に保存することにより行う。登録情報は、マッチングに必要な情報およびスキャンアシスト処理のために必要な情報である。ここで保存する登録情報は基本的に実施例１と同一である。
【０１７４】
実施例１と実施例２とで差異がある部分は、保存するＢＳテキストブロックの情報についてである。実施例１では、マッチング処理（シフト量算出処理および類似度算出処理）を２セット行っていた。２セットとは、上部基準および下部基準の２セットである。この２セットの処理は常に必要なわけではない。例えば、スキャンアシスト情報の生成にステップＳ２１１で利用されたＢＳテキストブロックが文書画像の下部だけに存在する場合には、上部基準での処理は必要がない可能性が高い。スキャンアシスト情報の生成に利用されるＢＳテキストブロックが存在する領域は、固定的なフォーマットの領域である可能性が高い。そのような場合には、下部基準だけでの類似度算出でも、同種類のクエリ文書と登録文書が問題なくマッチングする。また、下部だけにスキャンアシスト情報の生成に利用されるＢＳテキストブロックが存在するのであれば、中央部部分の伸縮にも影響されない。このような文書画像に対しては、上部基準の処理は必要がない可能性が高い。
【０１７５】
そこで、あらかじめ、文書画像を登録する際に、その登録文書に対するマッチング処理が行われる際の、上部基準での処理の必要性、下部基準での処理の必要性について登録しておく。例えば、文書画像の上位Ｗ％にすべてのスキャンアシスト情報の生成に利用されるＢＳテキストブロックが存在する場合は上位基準での処理だけを行うと登録する。逆に、文書画像の下位Ｗ％にすべてのスキャンアシスト情報の生成に利用されるＢＳテキストブロックが存在する場合は下位基準での処理だけを行うと登録する。それ以外の場合には、両方の処理を行うと登録する。ここで、Ｗ％は、例えば、１５％〜４０％の範囲である。このようにすれば、クエリ文書画像と、登録文書画像群とのマッチング処理を行う際に、一部の登録文書画像に対しては、２セットのマッチング処理を行わなくてよくなるため、高速にマッチングを行うことが可能となる。
【０１７６】
また、保存するＢＳテキストブロック情報については、あらかじめ、上部処理用と下部処理用にソートして保存しておく。上部処理用には、文書画像の最上部のＢＳテキストブロックから文書画像の下部方向に順番に並んでいるＢＳテキストブロック情報を保存しておく。下部処理用には、文書画像の最下部のＢＳテキストブロックから文書画像の上部方向に順番に並んでいるＢＳテキストブロック情報を保存しておく。このようにすることで、図１０のステップＳ１００３の処理や、図１４のステップＳ１４０４の処理を実行する際に、探索範囲を限定することが可能になる。このことにより、すべての範囲の探索が必要なくなるため、処理速度向上が見込めるためである。
【０１７７】
具体的な登録文書画像のデータ構造の例を、図２９（Ａ）に示す。具体的なクエリ文書画像のデータ構造の例を、図２９（Ｂ）に示す。
図２９（Ａ）のデータ構造と、実施例１の登録文書画像のデータ構造例である図７（Ｃ）のデータ構造との違いとしては、まず、図２９（Ａ）には、上部基準処理フラグと下部基準処理フラグがあることである。これらの型として示している、BooleanはTrueとFalseの値のどちらかの値を取る型である。上部基準での処理が必要な場合には、上部基準処理フラグをTrueとしておき、処理の必要がない場合にはFalseとしておく。下部基準での処理が必要な場合には、下部基準処理フラグをTrueとしておき、処理の必要がない場合にはFalseとしておく。他の違いとしては、図２９（Ａ）には、上部基準ＢＳテキストブロックリストと、下部基準ＢＳテキストブロックリストの２種類があることである。前述したように、本実施例では、処理高速化のために、２種類の方法でソートしたＢＳテキストブロックリストをあらかじめ保持しておく。
図７（Ａ）は、実施例１のクエリ文書画像のデータ構造例である。図２９（Ｂ）のデータ構造と、図７（Ａ）のデータ構造との違いとしては、図７（Ａ）のＢＳテキストブロックリストの代わりに、図２９（Ｂ）には、上部基準ＢＳテキストブロックリストと下部基準ＢＳテキストブロックリストがあることである。
【０１７８】
また、実施例２では、ステップＳ２０４の文書マッチングの詳細フローの一部に実施例１との差異がある。そこでここでは、実施例１の文書マッチングの詳細である図８に代えて、実施例２の文書マッチングの詳細である図３０を用いて説明する。図２８と同様に、図３０のフローチャートによる処理は、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、このプログラムコードを実行するＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【０１７９】
まず、図３０のステップＳ８０１における処理は、図８のステップＳ８０１の処理と同様である。
【０１８０】
続いて、ステップＳ３００１において、装置制御部１０２は、クエリ画像のＢＳ処理結果情報に前処理を加える。基本的な処理は、図８のステップＳ８０２の処理と同様である。ステップＳ３００１において、ステップＳ８０２の処理との差異は、前述した本実施例の登録文書側のデータ構造と合わせて、ＢＳテキストブロック情報について、あらかじめ、上部処理用と下部処理用にソートしておくことである。このように、クエリ文書画像も登録文書画像もソートしておくことにより、前述したように、図１０のステップＳ１００３の処理や、図１４のステップＳ１４０４の処理を実行する際に、探索範囲を限定することが可能になる。このことにより、すべての範囲の探索が必要なくなるため、処理速度向上が見込める。
【０１８１】
次に、図３０のステップＳ８０３における処理は、図８のステップＳ８０３の処理と同様である。
【０１８２】
続いて、ステップＳ３００２において、装置制御部１０２は、処理対象の登録文書画像について、上部基準のマッチング処理の対象であるかを登録文書画像に紐づいた情報から判定する。判定の結果、上部基準のマッチング処理の対象であると判定された場合には、ステップＳ８０４に進む。判定されなかった場合には、ステップＳ３００３に進む。
【０１８３】
ステップＳ３００２からステップＳ３００３に進んだ場合、ステップＳ３００３において、装置制御部１０２は、上部基準のマッチング処理を行っていないので、このことにより後段の処理で問題が生じないように、初期値を設定しておく。ここでの初期値は、全く相関がなかったことと同等の値とする。例えば、類似度を０にし、類似度Ｔｍｐの分布をすべて０にする。このステップＳ３００３では、マッチング処理を一切行っていないので、高速な処理が可能であり、マッチング処理全体の速度向上につながる。
【０１８４】
次に、図３０のステップＳ８０４およびステップＳ８０５における処理は、図８のステップＳ８０４およびステップＳ８０５における処理と同様である。
【０１８５】
続いて、ステップＳ３００４において、装置制御部１０２は、処理対象の登録文書画像について、下部基準のマッチング処理の対象であるかを登録文書画像に紐づいた情報から判定する。判定の結果、下部基準のマッチング処理の対象であると判定された場合には、ステップＳ８０６に進む。判定されなかった場合には、ステップＳ３００５に進む。
【０１８６】
ステップＳ３００４からステップＳ３００５に進んだ場合、ステップＳ３００５において、装置制御部１０２は、下部基準のマッチング処理を行っていないので、このことにより後段の処理で問題が生じないように、初期値を設定しておく。ここでの初期値は、全く相関がなかったことと同等の値とする。例えば、類似度を０にし、類似度Ｔｍｐの分布をすべて０にする。このステップＳ３００５では、マッチング処理を一切行っていないので、高速な処理が可能であり、マッチング処理全体の速度向上につながる。
【０１８７】
これ以降の、図３０のステップＳ８０６〜ステップＳ８１０における処理は、図８のステップＳ８０６〜ステップＳ８１０における処理と同様である。
【０１８８】
以上が画像処理装置１００における実施例２のフローになる。以上説明したとおり、本実施例における一連のフローにより、実施例１の効果に加えて、マッチング処理速度の向上を図ることが可能となる。これにより、ユーザへレコメンドを実施するまでの時間を短縮可能となり、ユーザの利便性の向上を図ることが可能となる。
【０１８９】
なお、上述の実施例では、上部基準および下部基準の２つの基準における、登録文書画像とクエリ文書画像との類似度を算出したが、本発明はこれに限られるものではない。例えば、本発明は、画像の左端を基準にした左部基準、および画像の右端を基準にした右部基準の２つの基準における、登録文書画像とクエリ文書画像との類似度を算出してもよい。この方法は、登録文書画像やクエリ文書画像が左右に伸縮するような場合に特に有効である。また本発明は、上部基準、下部基準、左部基準、右部基準、および画像中の所定位置を基準にした所定位置基準のうちのいずれか２つ以上の組み合わせそれぞれの位置合わせ基準における、登録文書画像とクエリ文書画像との類似度を算出してもよい。
【０１９０】
（付記１−１）
なお、本発明は、
あらかじめ複数の文書画像を登録文書画像群として登録しておく登録手段（Ｓ２１３）と、
検索対象の文書画像をクエリ文書画像として取得する取得手段（Ｓ２０１）と、
登録文書画像群とクエリ文書画像間のレイアウトの類似度を算出する算出手段（Ｓ２０４）と、
算出された類似度をもとに、登録文書画像群から所定の条件を満たす1枚以上の登録文書画像を選択する選択手段（Ｓ２０５）と、
を備えた画像処理装置（１００）において、
登録文書画像とクエリ文書画像間のレイアウトの類似度を算出する手段（Ｓ２０４）は、２つ以上の位置合わせ基準に基づき、２種類以上の類似度群を計算し（Ｓ８０５，Ｓ８０７）、
２種類以上の類似度群を合成して、１つの類似度群を構成し、最終的な類似度を１つ算出する（Ｓ８０８）、
ことを特徴とする画像処理装置、とすることができる。
【０１９１】
（付記１−２）
また、本発明は、
付記１−１の画像処理装置（１００）において、
登録文書のテキストブロック群のうち、所定のブロック群をあらかじめ選択ブロック群として保持しておく保持手段（Ｓ２０３）と、
登録文書の選択ブロック群に対応するブロック群をクエリ文書のテキストブロック群から選択するブロック群選択手段（Ｓ８１０）と、
をさらに備え、
ブロック群選択手段（Ｓ８１０）は、
２つ以上の位置合わせ基準に基づき、登録文書の選択ブロックに対応する２セット以上のクエリ文書のテキストブロックを取得し（Ｓ２５０５、Ｓ２５０６）、
２つ以上の位置合わせ基準に基づき計算された類似度の情報に基づき、テキストブロックの１つを選択する（Ｓ２５０７）、
ことを特徴とする画像処理装置、とすることができる。
【０１９２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１９３】
１００  画像処理装置
１０１  ネットワーク
１０２  装置制御部
１０３  画像処理部
１０４  ユーザインターフェース部
１０５  ＣＰＵ
１０６  ＲＡＭ
１０７  記憶部
１０８  画像読取部
１０９  画像出力部
１１０  ディスプレイ
【図１】
2020123089.tif 000008
【図２】
2020123089.tif 000009
【図３】
2020123089.tif 000010
【図４】
2020123089.tif 000011
【図５】
2020123089.tif 000012
【図６】
2020123089.tif 000013
【図７】
2020123089.tif 000014
【図８】
2020123089.tif 000015
【図９】
2020123089.tif 000016
【図１０】
2020123089.tif 000017
【図１１】
2020123089.tif 000018
【図１２】
2020123089.tif 000019
【図１３】
2020123089.tif 000020
【図１４】
2020123089.tif 000021
【図１５】
2020123089.tif 000022
【図１６】
2020123089.tif 000023
【図１７】
2020123089.tif 000024
【図１８】
2020123089.tif 000025
【図１９】
2020123089.tif 000026
【図２０】
2020123089.tif 000027
【図２１】
2020123089.tif 000028
【図２２】
2020123089.tif 000029
【図２３】
2020123089.tif 000030
【図２４】
2020123089.tif 000031
【図２５】
2020123089.tif 000032
【図２６】
2020123089.tif 000033
【図２７】
2020123089.tif 000034
【図２８】
2020123089.tif 000035
【図２９】
2020123089.tif 000036
【図３０】
2020123089.tif 000037
【図３１】
2020123089.tif 000038