(57)【要約】【課題】スキャン画像に係る文書と同一種類の文書を、高精度かつ簡単に検索できるようにする。【解決手段】入力文書画像とマッチングする文書画像を、予め登録された文書画像群の中から決定する画像処理装置において、前記入力文書画像と前記文書画像群を構成する各文書画像との間のフォーマットの類似度を算出する手段であって、算出対象となる画像範囲を変えながら、類似度の算出を繰り返し行なって、前記文書画像群を構成する各文書画像それぞれについての最終的な類似度を算出する類似度算出手段と、前記文書画像群を構成する各文書画像のうち、類似度が最大の文書画像を、前記マッチングする文書画像として決定する決定手段と、を備えたことを特徴とする。【選択図】図１４
2019057173.tif 000002
【特許請求の範囲】
【請求項１】
入力文書画像とマッチングする文書画像を、予め登録された文書画像群の中から決定する画像処理装置において、
前記入力文書画像と前記文書画像群を構成する各文書画像との間のフォーマットの類似度を算出する類似度算出手段であって、算出対象となる画像範囲を変えながら、類似度の算出を繰り返し行なって、前記文書画像群を構成する各文書画像それぞれについての最終的な類似度を算出する、類似度算出手段と、
前記文書画像群を構成する各文書画像のうち、前記最終的な類似度が最大の文書画像を、前記マッチングする文書画像として決定する決定手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
前記類似度算出手段は、文書画像内の特定の画像領域を含むように前記画像範囲を変えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特定の画像領域は、前記フォーマットにおける固定的な構造の領域であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記類似度算出手段は、前記繰り返しの算出によって得た複数の類似度のうち最大の類似度を、前記各文書画像のそれぞれについての最終的な類似度とする、ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記類似度算出手段は、前記繰り返しの算出によって得た複数の類似度のうち最大の類似度を、当該複数の類似度の分布に応じて補正して、前記最終的な類似度とすることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記入力文書画像に対して領域分割処理を行って、テキスト属性のブロックを抽出する抽出手段をさらに備え、
前記類似度算出手段は、前記画像範囲に含まれる、抽出されたテキスト属性のブロックの形状及び配置に着目して前記類似度の算出を行うことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記入力文書画像におけるテキスト属性のブロックと、前記文書画像群を構成する各文書画像におけるテキスト属性のブロックとの対応関係を示すペアブロックの情報を取得し、取得したペアブロックの情報に基づいて、前記入力文書画像と前記文書画像群を構成する各文書画像との間のシフト量を推定するシフト量推定手段をさらに備え、
前記類似度算出手段は、
推定されたシフト量に応じて、前記入力文書画像に含まれるテキスト属性のブロックの位置合わせを行い、
前記位置合わせ後のテキスト属性のブロックの形状及び配置に基づいて、前記類似度の算出を行う
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記シフト量推定手段は、前記ペアブロックのそれぞれに重みを設定し、当該重みを用いて、各ペアブロックにおけるシフト量のヒストグラムを生成し、当該ヒストグラムに基づいて、前記入力文書画像と前記文書画像群を構成する各文書画像との間の最終的なシフト量を推定する、ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記重みの設定は、前記各ペアブロックにおける重複状態又は前記各ペアブロックの位置に基づいて行なうことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記各ペアブロックの重複状態に基づく重みの設定では、前記ペアブロックにおいて、ペアの相手方のテキスト属性のブロックが他のテキスト属性のブロックとペアになっている個数が少ないほど、高い重み値を設定することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記各ペアブロックの位置に基づく重みの設定では、前記特定の画像領域に含まれるペアブロックに対して、前記特定の画像領域に含まれないペアブロックよりも高い重み値を設定することを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
前記各ペアブロックの位置は、文書画像における上下方向の座標によって特定され、当該座標に応じて異なる重み値が設定されることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記入力文書画像を、前記文書画像群を構成する各文書画像として登録する登録手段をさらに備えたことを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理装置。
【請求項１４】
前記文書画像群を構成する各文書画像は、文書画像内のテキストブロックの位置情報を含む画像データとして予め登録されており、
前記類似度算出手段は、各文書画像について、前記予め登録されているテキストブロックの位置情報を用いて、最終的な類似度を算出することを特徴とする請求項１乃至１３の何れか１項に記載の画像処理装置。
【請求項１５】
入力文書画像とマッチングする文書画像を、予め登録された文書画像群の中から決定する画像処理装置における方法において、
前記入力文書画像と前記文書画像群を構成する各文書画像との間のフォーマットの類似度を算出するステップであって、算出対象となる画像範囲を変えながら、類似度の算出を繰り返し行なって、前記文書画像群を構成する各文書画像それぞれについての最終的な類似度を算出する、類似度算出ステップと、
前記文書画像群を構成する各文書画像のうち、類似度が最大の文書画像を、前記マッチングする文書画像として決定する決定ステップと、
を含むことを特徴とする方法。
【請求項１６】
コンピュータを、請求項１乃至１３のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書画像の検索技術に関する。
【背景技術】
【０００２】
従来、見積書や注文書といった帳票等の紙文書を画像読み取り装置でスキャンしてデジタル化し、画像データにて文書管理等を行う業務フローが存在する。帳票等の文書をスキャンして得られた画像（スキャン画像）のデータは、一般的に、当該帳票等の種類・内容に応じたファイル名やメタ情報をつけて、所定のフォルダに格納される。ここで、ファイル名やメタ情報の作成、格納先（送信先）となるフォルダの指定や新規フォルダの作成を手動で行うことはユーザにとって手間である。特に、ＭＦＰ等において、タッチパネル上に表示されたソフトウェアキーボードでこれらの入力作業をする場合には、その負荷はより大きくなる。このような問題に対しては、ユーザの入力操作の負荷を軽減するための、スキャンアシストと呼ばれる技術が存在する。このスキャンアシストを開示するものとしては例えば特許文献１がある。特許文献１では、まず、予め文書の種類と、ファイル名設定・メタ情報設定・格納先設定といった各種設定のためのルールを関連づけして登録しておく。そして、対象の文書をスキャンすると、そのスキャン画像からその文書の種類を特定し、予め様々な種類の文書と関連付けて登録しておいた設定ルールを利用して作成した文字列情報を、ファイル名やメタ情報や格納先の候補としてユーザに推奨するようにしている。
【０００３】
上記特許文献１の手法においては、帳票等のスキャン画像が、予め登録された複数種類の文書画像（登録画像）の中のどれと類似しているのかを特定する必要がある。この点、例えばスキャン画像と登録画像との間で類似度を求め、得られた類似度に基づき特定する方法がある。この場合において、両者が「同一」の文書画像かどうかを判定するのであれば、画像全体の類似度を求めて比較すればよい。しかしながら、「同一種類」の文書画像かどうかを判定するためには、その元になっている文書が持つ特徴に注目して類似度を求める必要がある。ここで、「同一種類」とは、文書内の文字列の内容は異なるが、文書の主要な構造が一致していることを意味する。主要な構造とは、例えば文書の上部に記載された文書タイトルや項目等の基本的なレイアウトを指し、これらが一致していれば細部が一致していなくても、同一種類の文書と見做すことができる。この点、例えば特許文献２には、文書の一部に差異があり得ることを考慮したオリジナルの電子文書の検索技術、具体的には、スキャン画像内の分割された領域毎に登録画像との類似度を求め、得られた類似度に重み付けを行なって検索する手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１５３４８号公報
【特許文献２】特開２００４−３４８７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
同一種類と見做せる文書は、同一のフォーマットから作成されている場合が殆どである。よって、同一種類の文書について、そのスキャン画像のファイル名等を生成する際には、ユーザは共通のルールを適用する可能性が高い。しかしながら、同一種類の文書かどうかを判定する場合において、文書のどこを重視すべきかは文書の種類毎に異なるのが通常であり、また元になったフォーマットは同じでも各要素の具体的な配置が異なることも珍しくない。こうなると、上述の特許文献２の技術では十分に対応し切れない。また、類似度判定の対象箇所を、文書内の一部領域に予め固定しておくことも困難であるし、ユーザに逐一指定させるようにした場合には、多くの帳票等を処理する際に非常に手間が掛かってしまい、ユーザの負荷が大きい。
【０００６】
そこで、本発明は、スキャン画像に係る文書と同一種類の文書を、高精度かつ簡単に検索できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、入力文書画像とマッチングする文書画像を、予め登録された文書画像群の中から決定する画像処理装置において、前記入力文書画像と前記文書画像群を構成する各文書画像との間のフォーマットの類似度を算出する類似度算出手段であって、算出対象となる画像範囲を変えながら、類似度の算出を繰り返し行なって、前記文書画像群を構成する各文書画像それぞれについての最終的な類似度を算出する、類似度算出手段と、前記文書画像群を構成する各文書画像のうち、前記最終的な類似度が最大の文書画像を、前記マッチングする文書画像として決定する決定手段と、を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、スキャン画像に係る文書と同一種類の文書を、高精度かつ簡単に検索することができる。
【図面の簡単な説明】
【０００９】
【図１】ＭＦＰのハードウェア構成図
【図２】スキャンアシスト処理の流れを示すフローチャート
【図３】領域分割処理の結果の一例を示す図
【図４】マッチング処理の概要を説明する図
【図５】スキャンアシスト情報を提示するＵＩ画面の一例を示す図
【図６】類似する文書画像の考え方を説明する図
【図７】マッチング処理の流れを示すフローチャート
【図８】シフト量推定処理の流れを示すフローチャート
【図９】ペアブロックの決定方法を説明する図
【図１０】ペアブロックの重複状態に応じて重みを設定する際のテーブルの一例を示す図
【図１１】ペアブロックの位置に応じて重みを設定する際のテーブルの一例を示す図
【図１２】シフト量ヒストグラムの一例を示す図
【図１３】類似度推定処理の流れを示すフローチャート
【図１４】実施例１に係る、個別類似度を求める処理の流れを示すフローチャート
【図１５】オーバラップ面積の説明図
【図１６】暫定類似度の算出範囲が順次変化する様子を示す図
【図１７】暫定類似度の算出範囲が変化することの影響を説明する図
【図１８】類似度の補正を説明する図
【図１９】実施例２に係る、個別類似度を求める処理の流れを示すフローチャート
【図２０】登録画像に紐づけて登録される所定領域の具体例を示す図
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。
【実施例１】
【００１１】
図１は、本実施例に係る画像処理装置としての、ＭＦＰ１００のハードウェア構成図である。ＭＦＰ１００は、制御部１１０、操作部１２０、プリンタ部１２１、スキャナ部１２２、モデム１２３で構成される。制御部１１０は、以下の各部１１１〜１１９で構成され、ＭＦＰ１００全体の動作を制御する。ＣＰＵ１１１は、ＲＯＭ１１２に記憶された制御プログラムを読み出して、スキャンアシストを含む各種機能を実行・制御する。ＲＡＭ１１３は、ＣＰＵ１１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。なお、本実施例では1つのＣＰＵ１１１が1つのメモリ（ＲＡＭ１１３またはＨＤＤ１１４）を用いて後述のフローチャートに示す各処理を実行するものとするが、これに限定されない。例えば、複数のＣＰＵや複数のＲＡＭまたはＨＤＤを協働させて各処理を実行してもよい。ＨＤＤ１１４は、画像データや各種プログラムを記憶する大容量記憶部である。操作部Ｉ／Ｆ１１５は、操作部１２０と制御部１１０とを接続するインタフェースである。操作部１２０には、タッチパネルやキーボードなどが備えられており、ユーザによる操作／入力／指示を受け付ける。プリンタＩ／Ｆ１１６は、プリンタ部１２１と制御部１１０とを接続するインタフェースである。印刷用の画像データはプリンタＩ／Ｆ１１６を介して制御部１１０からプリンタ部１２１へ転送され、紙等の記録媒体上に印刷される。スキャナＩ／Ｆ１１７は、スキャナ部１２２と制御部１１０とを接続するインタフェースである。スキャナ部１２２は、不図示の原稿台やＡＤＦ（Auto Document Feeder）にセットされた帳票等の文書をスキャンして文書画像を生成し、スキャナＩ／Ｆ１１７を介して制御部１１０に入力する。ＭＦＰ１００は、スキャナ部１２２で生成された文書画像のデータをプリンタ部１２１から印刷出力（コピー）する他、ファイル送信またはメール送信することができる。モデムＩ／Ｆ１１８は、モデム１２３と制御部１１０とを接続するインタフェースである。モデム１２３は、ＰＳＴＮ上のファクシミリ装置との間で文書画像のデータをファクシミリ通信する。ネットワークＩ／Ｆ１１９は、制御部１１０（ＭＦＰ１００）をＬＡＮに接続するインタフェースである。ＭＦＰ１００は、ネットワークＩ／Ｆ１１９を用いてＬＡＮ上のファイルサーバ１３０に文書画像のデータを送信したり、各種情報を受信したりする。以上説明した画像処理装置としてのＭＦＰ１００のハードウェア構成は一例であり、必要に応じてその他の構成を備えるものであってもよいし、一部の構成を有していなくてもよい。
【００１２】
（スキャンアシスト機能）
ＭＦＰ１００が有するスキャンアシスト機能について説明する。制御部１１０は、スキャナ部１２２で読み取った文書画像のデータをＲＡＭ１１３に展開して解析を行って、スキャンアシストとしてユーザに推奨する情報、すなわち、文書画像のファイル名やフォルダパスの候補となる文字列情報を生成する。文書画像の解析は、３つの処理からなる。1つ目は、文書画像内において、一続きの文字列と推認される塊（テキストブロック）を抽出するテキストブロック抽出処理である。2つ目は、抽出されたテキストブロックから文字列情報を抽出する光学文字認識処理（以下、ＯＣＲ処理）である。３つ目は、登録されている文書画像と新たにスキャンされた文書画像との間の類似度を求めるマッチング処理である。
【００１３】
制御部１１０は、スキャンアシストのためのＵＩ画面を生成し、操作部１２０のタッチパネル１１０上に表示する。そして、制御部１１０は、ＵＩ画面を介して入力されたユーザ指示に基づき、上述の解析処理を行ったり、解析結果に基づく文書画像データの送信処理などを行う。
【００１４】
次に、続いて、ＭＦＰ１００におけるスキャンアシスト機能の動作制御について説明する。図２は、スキャンアシスト処理における制御の流れを示すフローチャートである。この一連の処理は、制御部１１０において、ＣＰＵ１１１がＨＤＤ１１４に記憶された制御プログラムを実行することにより実現される。以下、詳しく説明する。
【００１５】
操作部１２０を介して文書をスキャンするユーザ指示が受け付けられると、ステップ２０１では、スキャナ部１２２が文書のスキャンを実行し、文書画像を生成する。こうして生成された文書画像は入力文書画像として、後述のマッチング処理において、データベースに登録された文書画像群と比較される。以降、本ステップで生成される検索対象の入力文書画像を「クエリ画像」と呼び、データベースに登録された文書画像を「登録画像」と呼ぶこととする。
【００１６】
続くステップ２０２では、生成されたクエリ画像に対して上述のテキストブロック抽出処理（領域分割処理）が実行される。具体的には、まず、画像信号の二値化やスキャン時にずれた画像の傾きの修正、画像が正立する方向への回転などの前処理を行なって、テキストブロック抽出処理を行いやすい状態に補正する。そして、補正されたクエリ画像に対してエッジ抽出などを行って、クエリ画像をオブジェクト単位のブロックに分割し、その中からテキスト属性のブロックを特定する。より詳細には、以下のようにしてテキスト属性のブロックが特定される。
【００１７】
まず、白黒に二値化されたクエリ画像に対し輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出する。そして、面積が所定の面積よりも大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡を行い、白画素の塊を抽出し、さらに一定面積以上の白画素の塊の内部から再帰的に黒画素の塊を抽出する。こうして得られた黒画素の塊を、大きさ及び形状で分類し、異なる属性を持つ領域へ分類していく。例えば、縦横比が１に近く、大きさが一定の範囲のものを文字相当の画素塊とする。さらに近接する文字が整列良くグループ化され得る部分を文字領域（Text）とする。扁平な画素塊を線領域（LINE）とする。一定大きさ以上でかつ矩形の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域（TABLE）とする。不定形の画素塊が散在している領域を写真領域（PHOTO）とする。そして、それ以外の任意形状の画素塊を図画領域（PICTURE）とする。こうしてオブジェクトの属性毎に領域分割されたものの中から、文字属性を持つと判定されたブロックがテキストブロックとして特定される。図３は、領域分割処理の結果の一例を示す図である。図３（ａ）はクエリ画像を示し、同（ｂ）は当該クエリ画像をオブジェクト単位のブロックに分割した結果を示している。上述した、文字、図画、写真、線、表の5種類のブロックに分割されている。本ステップで得られた各テキストブロックの情報（属性と各ブロックの位置を示す情報）は、後述のＯＣＲ処理や類似度計算等で用いられる。なお、本ステップでテキストブロックだけを抽出するのは、文字列の位置は文書画像の構造を良く表現し、スキャンアシスト情報と密接に関連するためである。したがって、写真領域や表領域等の他の属性を持つと判定されたブロックの情報を後続の処理で利用することを排除するものではない。
【００１８】
次に、ステップ２０３では、登録画像データベースとしてのＨＤＤ１１４（以下、登録画像ＤＢ）に保持された複数の登録画像の中からクエリ画像に最も類似する登録画像を決定するマッチング処理が実行される。登録画像ＤＢには、後述するステップ２１０における追加・更新処理で登録された、過去に処理された文書画像が登録されている。ここで、マッチング処理の概要について、図４を参照して説明する。図４（ａ）はクエリ画像を示し、図４（ｂ）はおよび図４（ｃ）はそれぞれ異なる登録画像（登録画像_1と登録画像_2）を示している。いま、クエリ画像は、登録画像_1とは文字列の内容及び配置が一致する部分が多いが、登録画像_2とは文字列の内容も配置も一致する部分が少ない。つまり、クエリ画像と登録画像_1との間の類似度と、クエリ画像と登録画像_2との間の類似度では、前者の方が高くなる。そのため、図４の例では、図４（ｂ）の登録画像_2がクエリ画像とマッチングする（類似度が高い）登録画像として選択される。
【００１９】
ここで、テキストブロックを用いた類似度推定の概要も説明しておく。図４（ｄ）は、図４（ａ）のクエリ画像から抽出されたテキストブロックを点線の矩形で示している。点線の矩形が各テキストブロックを表し、矩形内の三桁の数字は各テキストブロックを一意に識別する番号である。同様に、図４（ｅ）は図４（ｂ）の登録画像_1から抽出されたテキストブロックを、図４（ｆ）は図４（ｃ）の登録画像_2から抽出されたテキストブロックを、同じく点線の矩形で示している。テキストブロックを用いた類似度推定は、テキストブロックの形状や配置がどれだけ類似しているかに着目して行う。いま、クエリ画像におけるテキストブロックの形状・配置と登録画像_1におけるテキストブロックの形状・配置とを比べると相互に一致するものが多い。すなわち、クエリ画像の000、001、002、003は、登録画像_1における004、003、000、001とその形状や配置が同じである。これに対し、登録画像_2の場合には、若干オーバラップしているテキストブロックが存在するものの、形状や配置が一致するテキストブロックは存在しない。このように、テキストブロックの形状や配置に着目して類似度が求められる。テキストブロックを用いた類似度推定処理の詳細については後述する。マッチング処理の結果には、登録画像を識別するＩＤ情報、クエリ画像とテキストブロックの形状や配置の一致率が高かった登録画像における類似度、当該登録画像における設定ルール、クエリ画像との対応情報などが含まれる。前述のとおり設定ルールとは、文書画像内のどこ（例えばｘ座標とｙ座標で特定）にある文字列を、何（例えばファイル名やフォルダパス）に利用するかを特定する情報である。クエリ画像との対応情報とは、登録画像においてファイル名作成等に実際に使用されたテキストブロックが、クエリ画像のどのテキストブロックに対応するかを示す情報である。上述の図４の例で説明する。いま、登録画像_1において、文字列「請求書」に対応するテキストブロック（004）と、文字列「ID9631」に対応するテキストブロック（003）が、ファイル名作成に利用されたテキストブロックであるとする。この場合、004のテキストブロックにはクエリ画像における文字列「請求書」のテキストブロック（000）が対応している。このように対応関係にある2つのブロック同士を結び付ける情報が対応情報の1つとなる。同様に、003のテキストブロックには、クエリ画像における文字列「ID9400」のテキストブロック（001）が対応するので、この両ブロックを結び付ける情報も対応情報の1つとなる。図２のフローの説明に戻る。
【００２０】
ステップ２０４では、マッチング処理に成功したかどうかが判定される。具体的には、マッチング処理で得られた最高の類似度が所定の閾値を上回っているかどうかを判定する閾値処理を行い、最高の類似度が所定の閾値より大きい場合にマッチング処理に成功したと判断する。判定の結果、マッチング処理に成功していた（最高の類似度が所定の閾値より大きい）場合にはステップ２０５に進む。一方、マッチング処理に失敗していた（最高の類似度が所定の閾値以下）場合にはステップ２０７に進む。
【００２１】
ステップ２０５では、ステップ２０３で得られたマッチング処理結果に基づきスキャンアシスト情報が生成され、ＵＩ画面上に表示される。詳細には、まず、マッチング処理結果に含まれるクエリ画像との対応情報を用いて、マッチングした登録画像で実際に利用された文字列のテキストブロックに対応する、クエリ画像内の特定のテキストブロックのみを対象にＯＣＲ処理を行う。そして、マッチング処理結果に含まれる設定ルールに従い、ＯＣＲ処理によって得られた結果（文字列情報）をスキャンアシスト情報として、クエリ画像と共にタッチパネルに表示する。例えば、マッチングした登録画像ではＯＣＲ処理結果をファイル名作成に用いていた場合は、クエリ画像に対するＯＣＲ処理で得た文字列情報を用いて作成したファイル名を、当該クエリ画像についてのスキャンアシスト情報として表示する。また、マッチングした登録画像ではＯＣＲ処理結果をフォルダパス作成に用いていた場合は、クエリ画像に対するＯＣＲ処理で得た文字列情報を用いて作成したファルダパスを、当該クエリ画像についてのスキャンアシスト情報として表示する。対応情報に基づく特定のテキストブロックだけをＯＣＲ処理の対象とすることにより、クエリ画像内のすべてのテキストブロックに対してＯＣＲ処理を行うよりも高速に処理できるので、ユーザへの応答時間が早くなり、ユーザビリティの向上に繋がる。また、限られた箇所だけを対象とするため、計算リソースの節約にもなる。
【００２２】
ここで、スキャンアシスト情報を表示するＵＩ画面の具体例を示す。図５は、ファイル名の候補となる文字列情報をスキャンアシスト情報としてユーザに提示したＵＩ画面の一例である。ＵＩ画面５００では、クエリ画像５０１内の各テキストブロックがグレーで強調表示されている。文字列部分でありながら強調表示されていない部分があるが、これはテキストブロックとしては認識されなかったことを表わしている。いま、テキストボックス５０２には、マッチングした登録画像に基づいてテキストブロック５０１及び５０２をＯＣＲ処理した結果を用いた文字列「注文書_株式会社東京商会」がファイル名候補として表示されている。すなわち、マッチング処理結果に含まれるクエリ画像との対応情報に基づく2つのテキストブロックのＯＣＲ処理結果、「注文書」と「株式会社東京商会」が、区切り文字としてのアンダースコア（アンダーバー）「_」で連結され、ファイル名候補として推奨されている。この状態でユーザがＯＫボタン５０５を押下すると、クエリ画像５０１のファイル名として、テキストボックス５０２に表示されている一群の文字列の内容が決定される。ユーザが推奨されたファイル名候補を採用しない場合には、テキストボックス５０２を押下することで任意の文字列に編集することが可能となる。
【００２３】
ステップ２０６では、ステップ２０５で提示されたスキャンアシスト情報がそのまま採用されたかどうかが判定される。図５の例では、ＵＩ画面５００においてスキャンアシスト情報が編集されずにそのままＯＫボタン５０５が押下されていた場合（そのまま採用された場合）は、ステップ２０８に進む。一方、テキストブックス５０２が押下されていた場合にはステップ２０７に進み、編集モードに移行する。
【００２４】
ステップ２０７では、ユーザによって、ファイル名等の直接設定（ステップ２０４でＮｏの場合）あるいはスキャンアシスト情報の編集（ステップ２０６でＮｏの場合）がなされる。具体的には、ＵＩ画面５００においてユーザが指定したテキストブロックに対してＯＣＲ処理を行い、そのＯＣＲ結果を用いてファイル名等を作成する。
【００２５】
ステップ２０８では、未提示のスキャンアシスト情報があるかどうかが判定される。未提示のスキャンアシスト情報があれば、ステップ２０５に戻って次のスキャンアシスト情報が提示される。例えば、マッチングした登録画像において、ファイル名だけでなくフォルダパスにもＯＣＲ処理結果が利用されていた場合には、ファイル名候補の提示に続いて、フォルダパス候補が提示されることになる。一方、未提示のスキャンアシスト情報がなければ、ステップ２０９に進む。
【００２６】
ステップ２０９では、次回以降のスキャンアシスト処理のためのフィードバック処理を行うかどうかが判定される。ステップ２０５で生成したスキャンアシスト情報がそのまま採用されていれば（ステップ２０６でＹｅｓ）フィードバック処理は不要と判断し、本処理を終える。一方、ステップ２０７でユーザがファイル名等を直接設定したり、生成したスキャンアシスト情報を採用せずに編集していた場合は、フィードバック処理が必要と判断し、ステップ２１０に進む。
【００２７】
ステップ２１０では、フィードバック処理が実行される。例えば、マッチングした登録画像が間違っていた場合には、今回処理したクエリ画像とそのファイル名等の作成で用いたＯＣＲ処理結果とを紐づけて、新しい登録画像として登録する。また、マッチングした登録画像は合っていたが設定ルールを変更した場合には、変更後の内容を新たな設定ルールとして、マッチングした登録画像の内容を更新する。このようにして登録画像を追加・更新することで、次回以降のスキャンアシスト機能実行時におけるユーザに提示するスキャンアシスト情報の精度を高めることができる。
【００２８】
以上が、スキャンアシスト処理における制御の内容である。
【００２９】
（マッチング処理）
次に、本実施例の特徴であるマッチング処理について詳しく説明する。マッチング処理の詳細について述べる前に、本処理でマッチングさせたい登録画像、すなわち、クエリ画像の文書と同一種類であると見做したい文書について説明する。本マッチング処理は、スキャンアシスト情報の生成を目的とするものである。そのため、文書画像間でスキャンアシスト情報の生成に利用される可能性が高い領域が類似している場合には同一種類の文書と見做し、高い類似度とすることを基本的な考え方としている。具体的な文書画像を例に説明する。図６の（ａ）〜（ｃ）は、それぞれ異なる文書をスキャンして得られた文書画像を示している。いま、図６（ａ）の文書画像６００と図６（ｂ）の文書画像６１０との間では、その上部三分の一の領域６０１において互いに類似している。一方、図６（ａ）の文書画像６００及び図６（ｂ）の文書画像６１０と、図６（ｃ）の文書画像６２０との間では、この上部三分の一の領域６０１において互いに類似していない。ここでいう類似とは、文書画像同士で構造が一致することを意味しており、そこに記載された文字列内容（例えば、会社名等）が不一致でも構わない。これは、文字列内容の一致までを要求するとスキャンアシスト機能の適用範囲が極めて限られること、並びに、文書画像同士の構造が一致していれば文書内に記載された文字列が異なっていても同じ設定ルールが適用される可能性が高いと考えられるからである。図６（ａ）〜（ｃ）において、上部三分の一の領域６０１は、会社名や文書タイトル等のスキャンアシスト情報を生成するために有用な情報が記載されている。このようなスキャンアシスト情報の生成に有用な情報が記載されている部分は、類似度の算出における重みを高くしたい。一方、図６（ａ）の文書画像６００と図６（ｃ）の文書画像６２０との間では、その下部三分の二の領域６０２において互いに類似しているが、この部分には品名や金額といった情報が記載されているだけで品数等によって伸び縮みが生じる。実際、上部三分の一の領域６０１において類似する文書画像６００と文書画像６１０との間では、下部三分の二の領域６０２における類似度は高くない。つまり、図６の例では、下部三分の二の領域６０２に記載されている情報はスキャンアシスト情報の生成に有用ではないので、類似度の算出における重みを軽くしたい。以上をまとめると、図６の例では、文書画像６００と文書画像６１０との間では画像全体としての類似度が高くなるように、文書画像６００／６１０と文書画像６２０との間では画像全体としての類似度が低くなるように、類似度が算出されることが望ましい。つまり、文書の上部における類似度が高い場合に同一種類の文書画像と見做すことで、マッチング処理の精度を高めることができる。このように、スキャンアシスト情報の生成を前提とした場合、文書の中に重視する部分と重視しない部分があることを踏まえた類似度推定を行うことが必要となる。また、見積書等のフォーマットには様々なものがあり得るため、文書の種類によって重視するべき部分は変化（上部重視或いは下部重視など）することになる。以上が、マッチング処理における類似度推定の基本的な考え方である。以上を踏まえ、本実施例に係るマッチング処理の詳細について、図７に示すフローチャートを参照しつつ説明する。
【００３０】
まず、ステップ７０１では、ステップ２０２で実行されたクエリ画像に対するテキストブロック抽出処理の結果が、ＲＡＭ１１３から取得される。続くステップ７０２では、抽出されたテキストブロックに対して前処理が施される。具体的には、文字列として意味をなさない短い文字列のテキストブロックを取り除く処理（ノイズブロックの除去）や、垂直方向に沿って上から下へテキストブロックを並べ替えるソート処理が実行される。
【００３１】
前処理が終わると、ステップ７０３において、登録画像ＤＢに保持されている登録画像群の中から注目する１つの登録画像（注目登録画像）の情報が選択され読み出される。この情報には、注目登録画像におけるテキストブロックの情報や、注目登録画像に紐づいたスキャンアシストに関連した情報（ＯＣＲ処理結果を何に利用するかを示す情報）が含まれる。登録画像そのものの情報は必ずしも含んでいなくてもよい。
そして、ステップ７０４では、クエリ画像と注目登録画像との間でのシフト量の推定処理が実行される。さらに、ステップ７０５では、クエリ画像と注目登録画像との間での類似度の推定処理が実行される。これらシフト量推定処理及び類似度推定処理の詳細については後述する。
【００３２】
ステップ７０６では、登録画像ＤＢに保持されている登録画像群の中に未処理の登録画像があるかどうかが判定される。未処理の登録画像があれば、ステップ７０３に戻って次の注目登録画像を選択して処理を続行する。一方、全ての登録画像について、クエリ画像との類似度推定処理が終了していれば、ステップ７０７に進む。
【００３３】
ステップ７０７では、類似度推定がなされたすべての登録画像の中から、最大の類似度を持つ登録画像が、クエリ画像にマッチングする可能性が高い候補画像（以下、マッチング候補画像）として決定される。続くステップ７０８では、決定されたマッチング候補画像についての前述の設定ルールが、登録画像ＤＢから取得される。
【００３４】
最後に、ステップ７０９において、マッチング候補画像においてファイル名等の作成に利用されたテキストブロック群に対応する、クエリ画像におけるテキストブロック群を示す情報（以下、ブロック対応情報）が生成される。このブロック対応情報の生成は、マッチング候補画像のテキストブロック毎に、クエリ画像のテキストブロックに対して、後述のシフト量推定処理におけるペアブロックの決定（ステップ８０２）と同様の処理を行うことで得ることができる。ただし、後述のステップ８０２では、クエリ画像のテキストブロックに対応する登録画像のテキストブロックを見つけるのに対して、本ステップでは、登録画像のテキストブロックに対応するクエリ画像のテキストブロックを見つける点が異なっている。生成されたブロック対応情報は、マッチング候補画像の設定ルールと併せて、ＲＡＭ１１３に保持される。
【００３５】
以上が、マッチング処理の内容である。
【００３６】
（シフト量推定処理）
続いて、上述のステップ７０４におけるシフト量推定処理の詳細について説明する。図８は、シフト量推定処理の流れを示すフローチャートである。なお、ここで紹介するシフト量推定の手法は一例であり、他の手法を用いても構わない。以下、図８のフローに沿って説明する。
【００３７】
まず、ステップ８０１では、クエリ画像におけるテキストブロックとステップ７０３で選択された注目登録画像におけるテキストブロックの情報がＲＡＭ１１３から取得される。続くステップ８０２では、クエリ画像におけるテキストブロックと注目登録画像におけるテキストブロックとの間で対応関係にあるペアブロックが決定される。ここで、ペアブロックの決定方法について図９を用いて説明する。図９は、クエリ画像におけるテキストブロックと登録画像におけるテキストブロックとを同じ座標系に描画したときの一部分を切り出した図である。図９において、実線の矩形９０１はクエリ画像のテキストブロックを示し、破線の矩形９０２、９０３、９０４は、クエリ画像のテキストブロック９０１の周囲にある登録画像のテキストブロック群を示している。また、図９において、一点鎖線の円９０５は、クエリ画像のテキストブロック９０１の左上頂点を中心に一定距離を半径とした範囲を示している。まず、ペアブロックの決定のために、その左上頂点が円９０５の中にある、登録画像のテキストブロックを探す。図９の例では、テキストブロック９０２と９０３が該当することになる。次に、クエリ画像のテキストブロック９０１と、円９０５の中に左上頂点がある登録画像のテキストブロック９０２及び９０３との間で、オーバラップ率をそれぞれ求める。オーバラップ率は、クエリ画像のテキストブロックと登録画像のテキストブロックとの左上頂点同士を合わせて、両テキストブロックの共通部分の面積をまず算出する。そして、共通部分の面積／（両テキストブロックのうち大きい方の面積）によって得られる値をオーバラップ率とする。こうしてクエリ画像のテキストブロックと登録画像の各テキストブロックとのオーバラップ率を求め、オーバラップ率が一定条件以上の組合せをペアブロックとする。この際の一定条件は、例えば、最大オーバラップ率に係数αを乗算した値以上、かつ、所定の閾値以上のオーバラップ率を持つものとすればよい。この場合において、係数αは最大オーバラップ率と近いオーバラップ率を持つ組合せを拾うためのもので、例えば0.5〜0.8といった1.0未満の値とする。また、所定の閾値はペアブロック足り得るための最低ラインを規定するもので、例えば0.3〜0.7といった1.0未満の値とする。こうした処理をすべてのクエリ画像のテキストブロックについて行い、ペアブロック群を得る。
【００３８】
ステップ８０３では、ステップ８０２で決定したペアブロック群の中から注目する１のペアブロックを選択する。そして、ステップ８０４では、注目ペアブロックについての重みが設定される。重みの設定は、注目ペアブロックにおける重複状態や位置（上下方向の座標）に基づいて行なう。まず、重複状態に基づく重み設定について説明する。この場合、注目ペアブロックにおけるクエリ画像のテキストブロックが、他の登録画像のテキストブロックとペアになっていない場合は、重みが大きくなるように設定する。同様に、注目ペアブロックにおける登録画像のテキストブロックが、他のクエリ画像のテキストブロックとペアになっていない場合は、重みが大きくなるように設定する。具体的には、例えば図１０に示すようなテーブル（以下、重みテーブル）を用意しておき、これを利用して設定する。図１０に示す重みテーブルでは、注目ペアブロックにおいてクエリ画像のテキストブロックが他の登録画像のテキストブロックとペアになっている個数を、横軸にとっている。また、縦軸には、注目ペアブロックにおいて、登録画像のテキストブロックが他のクエリ画像のテキストブロックとペアになっている個数をとっている。そして、ペアの相手方のテキストブロックが、他のテキストブロックとペアになっている個数が少ないほど、高い重み値が割り当てられている。なお、ここでは重みテーブルを利用する設定手法を説明したが、計算式を用いて重みを決定してもよい。計算式を用いる場合は、求める重みをWとしたとき、以下の式（１）によって上記重みテーブルと同様の重みを求めることができる。  
W＝(1/(N+1)+1/(M+1))/2      ・・・式（１）
上記式（１）において、Nは注目ペアブロックにおいてクエリ画像のテキストブロックが他の登録画像のテキストブロックとペアになっている個数を示す。また、Mは注目ペアブロックにおいて登録画像のテキストブロックが他のクエリ画像のテキストブロックとペアになっている個数を示す。
【００３９】
次に、ペアブロックの位置（上下方向の座標）に基づく重み設定について説明する。この場合、注目ペアブロックにおけるクエリ画像のテキストブロックの左上頂点のY座標（文書画像の上下方向）に応じて異なる重みが設定されるようにする。例えば、前述の図６の具体例のように、文書上部にスキャンアシスト情報に有用な情報が記載されるフォーマットを用いた文書の場合には、Y座標が文書のより上部の位置を示すほど重みが大きくなるように設定する。図１１は、ペアブロックの位置（Y座標）に応じて重みを決定する際に用いるＬＵＴ（ルックアップテーブル）の一例を示す。このＬＵＴのように、所定位置以下の重み値を“0”としてもよい。このようにペアブロックの位置に基づき重みを設定する理由は、スキャンアシスト情報の生成に利用される情報が含まれる可能性が高い文書内の位置は、位置合わせにも有用といえるためである。なお、ペアブロックの重複状態に基づく重みの設定と、ペアブロックの位置（Ｙ座標）に基づく重みの設定の両方を利用する場合には、双方の手法で得られた重みの値を乗算するなどして、最終的な重みを決定すればよい。
【００４０】
ステップ８０５では、後述のステップ８０７におけるシフト量候補決定処理で用いる、シフト量ヒストグラムが生成される。具体的には、まず、注目ペアブロックにおける左上頂点のX方向の差分量（シフト量）とY方向の差分量（シフト量）を求める。そして、得られたシフト量に、ステップ８０４で設定した重みを用いて、シフト量ヒストグラムに投票する。このときのヒストグラムのビンの範囲は任意である。
【００４１】
ステップ８０６では、すべてのペアブロックが処理されたかどうかが判定される。未処理のペアブロックがあれば、ステップ８０３に戻って次の注目ペアブロックを選択し処理を続行する。一方、すべてのペアブロックが処理されていれば、ステップ８０７に進む。ステップ８０７への移行が決定した段階で、X方向およびY方向のシフト量ヒストグラムが完成していることになる。図１２の（ａ）及び（ｂ）に、シフト量ヒストグラムの一例を示す。横軸はシフト量であり、縦軸は相関値（ヒスグラムの度数）である。図１２（ａ）はデータ点１２０１が大きなピークとして1つだけあるタイプのシフト量ヒストグラムであり、同（ｂ）は最大のピーク点であるデータ点１２０２以外にも局所的なピーク点１２０３〜１２０５が存在するタイプのシフト量ヒストグラムである。なお、ノイズの影響が懸念される場合は、生成したシフト量ヒストグラムに対してスムージングを掛けてもよい。
【００４２】
ステップ８０７では、生成されたシフト量ヒストグラムを分析し、X方向及びY方向のそれぞれについて、クエリ画像と注目登録画像との間のシフト量候補が決定される。例えば、上述の図１２（ａ）のシフト量ヒストグラムであれば、データ点１２０１が大きなピークとして1つだけあるので、当該データ点１２０１に対応するシフト量が、シフト量候補として決定される。また、上述の図１２（ｂ）のシフト量ヒストグラムであれば、所定の条件を満たすピーク点がすべてシフト量候補として決定される。この際の所定の条件は、例えば、最大ピーク点の一定の割合（例えば、70％）を超えていること、所定の閾値（例えば、相関値：15）を超えていること、上位から数えて例えば5番目以内のピーク点であること、等である。条件に応じて、例えば図１２（ｂ）におけるデータ点１２０３、１２０４、１２０５に対応するシフト量も、シフト量候補として決定され得る。そして、このような処理をX方向とY方向のそれぞれについて行うことにより、クエリ画像と注目登録画像との間のX方向及びY方向それぞれについてのシフト量候補（X_ShiftとY_shift）が決定される。
【００４３】
最後に、ステップ８０８において、X方向及びY方向それぞれについて決定されたシフト量候補を組み合わせ、クエリ画像と注目登録画像との間の総合的なシフト量候補（S_Shift）が決定される。例えば、X方向のシフト量候補として、X_Shift1とX_Shift2の2つあり、Y方向のシフト量候補として、Y_Shift1、Y_Shift2及びY_Shift3の3つがあるとする。この場合、単純に組み合わせると2×3で、以下の6つの総合シフト量候補S_Shift1〜S_Shift6が得られることになる。  
S_Shift1＝（X_Shift1,Y_Shift1）
S_Shift2＝（X_Shift1,Y_Shift2）
S_Shift3＝（X_Shift1,Y_Shift3）
S_Shift4＝（X_Shift2,Y_Shift1）
S_Shift5＝（X_Shift2,Y_Shift2）
S_Shift6＝（X_Shift2,Y_Shift3）
ただし、次に説明する類似度推定処理ではS_shift毎の演算処理が必要になるため、S_shiftの数が多いと処理負荷が高くなってしまう。そこで、X方向の最大ピーク点のシフト量とY方向の最大ピーク点のシフト量とが絡むペアだけをS_shiftとするようにしてもよい。これは、X方向とY方向の両方の最大ピーク点が同時に間違っている可能性が低いことを前提としている。いま、X方向の最大ピーク点のシフト量がX_Shift1、Y方向の最大ピーク点のシフト量がY_Shift1であったとする。この場合、S_Shift1〜S_Shift4までの4つで済むことになり、処理負荷を軽減できる。なお、他の方法で総合シフト量候補の数を絞り込むようにしてもよい。こうして決定された総合シフト量候補S_shiftの情報は、ＲＡＭ１１３に格納される。
【００４４】
以上が、シフト量推定処理の内容である。
【００４５】
（類似度推定処理）
続いて、前述のステップ７０５における類似度推定処理の詳細について説明する。図１３は、類似度推定処理の流れを示すフローチャートである。なお、ここで紹介する類似度推定の手法は一例であり、他の手法を用いても構わない。以下、図１３のフローに沿って説明する。
【００４６】
まず、ステップ１３０１では、上述のシフト量推定処理で得られたすべての総合シフト量候補S_shiftの情報がＲＡＭ１１３から取得される。続いて、ステップ１３０２において、取得したすべての総合シフト量候補S_shiftの中から、注目する１つの総合シフト量候補S_shiftI（I＜総合シフト量候補の総数）が選択される。
【００４７】
ステップ１３０３では、注目する総合シフト量候補S_shiftIを用いて、クエリ画像に対し位置合わせを行う。具体的には、クエリ画像に含まれる各テキストブロックの座標位置を、S_shiftIに基づき、X方向及びY方向に一律に平行移動させる処理が実行される。続くステップ１３０４では、位置合わせ後のクエリ画像と注目登録画像との間の類似度を算出する処理（以下、個別類似度算出処理）が実行される。この個別類似度算出処理の詳細については後述する。
【００４８】
ステップ１３０５では、すべての総合シフト量候補S_shiftについて個別類似度の算出が終了したかどうかが判定される。未処理の総合シフト量候補S_shiftがあれば、ステップ１３０２に戻って次の注目する総合シフト量候補S_shiftIを選択し処理を続行する。一方、すべての総合シフト量候補S_shiftについて個別類似度の算出が終了していれば、ステップ１３０６に進む。
【００４９】
ステップ１３０６では、総合シフト量候補S_shift毎に算出した個別類似度のうち最大のものが、クエリ画像と注目登録画像との間での最終的な類似度に決定される。また、最大の個別類似度が算出されたときの総合シフト量候補S_shiftは、最終的な類似度に対応する最終的な総合シフト量となる。こうして決定された、最終的な類似度の情報は、対応する総合シフト量の情報、位置合わせ後のクエリ画像におけるテキストブロックの位置情報、注目登録画像の情報と紐づけてＲＡＭ１１３に格納される。
【００５０】
以上のような処理により、クエリ画像とその文書構造が最も近いと推定される登録画像との類似度が得られる。
【００５１】
（個別類似度算出処理）
続いて、上述のステップ１３０４における、位置合わせ後のクエリ画像と注目登録画像との間の個別類似度を求める処理について、図１４のフローを参照して詳しく説明する。
【００５２】
まず、ステップ１４０１では、位置合わせ後のクエリ画像におけるテキストブロックと、注目登録画像におけるテキストブロックの情報が取得される。続くステップ１４０２では、求める類似度を表す変数S、及びその算出過程における暫定的な類似度を表す変数Tmpの値が初期化（初期値として“0”が設定）される。
【００５３】
ステップ１４０３では、位置合わせ後のクエリ画像に含まれるテキストブロックの中から注目するテキストブロックが選択される。本実施例では、上部領域に固定的な構造を持つ文書を想定しているので、左上頂点が最も上部（Ｙ軸のマイナス方向）にあるテキストブロックが選択される。なお、前述のステップ７０２にてソート処理されているため、取得したテキストブロックを上から順番に選択していけばよい。
【００５４】
ステップ１４０４では、位置合わせ後のクエリ画像の注目テキストブロックに対応する、注目登録画像におけるテキストブロックの検索が実行される。ここで、対応するテキストブロックとは、位置合わせ後のクエリ画像の注目テキストブロックと注目登録画像のテキストブロック群とを同じ座標系に描画した際に、クエリ画像の注目テキストブロックと重なりが生じる注目登録画像におけるテキストブロックを指す。この場合において、対応するテキストブロックは1つとは限らず、複数見つかる場合もある。なお、各登録画像におけるテキストブロックもソート処理されているため、検索範囲は限定された範囲で良い。
【００５５】
ステップ１４０５では、検索によって見つかった注目登録画像のテキストブロックが、位置合わせ後のクエリ画像の注目テキストブロックとオーバラップしている面積が求められる。このオーバラップ面積を求める際には、位置合わせ後のクエリ画像ではテキストブロックの位置合わせが済んでいるため、前述のステップ８０２のように左上頂点を合わせるといった処理は不要である。図１５は、オーバラップ面積の説明図である。図１５（ａ）の例では、実線の矩形で示す位置合わせ後のクエリ画像のテキストブロック１５０１と、破線の矩形で示す登録画像のテキストブロック１５０２とが重なっており、オーバラップ面積は斜線領域１５０３の面積となる。また、図１５（ｂ）の例では、実線の矩形で示す位置合わせ後のクエリ画像のテキストブロック１５０４と、破線で示す登録画像の2つのテキストブロック１５０５及び１５０６とが重なっており、オーバラップ面積は2つの斜線領域１５０７及び１５０８の合計値となる。
【００５６】
ステップ１４０６では、暫定類似度Tmpを算出するための準備処理が実行される。具体的には、以下の3つの処理が実行される。  
１）ステップ１４０５で求めたオーバラップ面積を、前回までのルーチンで求めたオーバラップ面積の累積値に加算し、総オーバラップ面積OverlapAreaを求める処理
２）クエリ画像の処理済みのテキストブロックの総面積TotalArea_Qを求める処理
３）クエリ画像の処理済みのテキストブロックのうち最も下に存在するテキストブロックよりも上に存在する登録画像のテキストブロックの総面積TotalArea_Rを求める処理
上記３）の処理において、クエリ画像のテキストブロックの位置はその最下端の座標を用い、登録画像のテキストブロックの位置はその左上座標を用いる。
【００５７】
ステップ１４０７では、暫定類似度Tmpの算出開始条件が満たされているかどうかが判定される。算出開始条件は、信頼できる暫定類似度Tmpが算出可能かどうかを判断するための条件である。テキストブロックの数が少ない場合や、処理済みのクエリ画像のテキストブロックの存在する範囲が狭い場合には、得られる暫定類似度Tmpの信頼度は低いと考えられる。そこで、算出開始条件は、例えば以下のような内容とする。
・クエリ画像において、所定数（例えば、1〜3個）のテキストブロックが処理されたか
・クエリ画像において、ページの上端から所定の距離（例えば、ページ高さの10％）離れたテキストブロックまで処理されたか
・クエリ画像において、最上部のテキストブロックから所定の距離（例えば、ページ高さの10％）離れたテキストブロックまで処理されたか
・クエリ画像の処理済みのテキストブロックの総面積が所定の閾値を超えたか
上述した算出開始条件は、それぞれ単独で用いてもよいし、複数を組み合わせてもよい。また、複数を組み合わせた条件を、複数利用してもよい。判定の結果、算出開始条件を満たしていなかった場合にはステップ１４１１に進む。一方、算出開始条件を満たしていた場合には、ステップ１４０８に進む。
【００５８】
ステップ１４０８では、暫定類似度Tmpが算出される。暫定類似度Tmpは、クエリ画像におけるテキストブロック群の配置・形状と、注目登録画像におけるテキストブロック群の配置・形状とが、どれだけ類似しているかを定量的に表す、以下の式（２）を用いて求めることができる。
【００５９】
暫定類似度Tmp＝ OverlapArea／TotalArea_L      ・・・式（２）
上記式（２）において、TotalArea_Lは、TotalArea_QとTotalArea_Rのうち値の大きい方を指す。なお、クエリ画像または登録画像のテキストブロックの面積が広い場合には、構造が一致しない文書画像同士でも重なる可能性が高くなり、OverlapAreaが大きくなる。そのため、TotalArea_QとTotalArea_Rのうち大きい方の値でOverlapAreaの値を割っている。暫定類似度Tmpは、例えば、以下の式（２）’や式（２）”によっても求めることができる。  
暫定類似度Tmp＝OverlapArea×2／（TotalArea_Q＋TotalArea_R）
・・・式（２）’
暫定類似度Tmp＝（OverlapArea／TotalArea_Q）×（OverlapArea／TotalArea_R）
・・・式（２）”
【００６０】
ステップ１４０９では、ステップ１４０８で求めた暫定類似度Tmpと現在の類似度Sとの比較処理が行われる。暫定類似度Tmpの値の方が大きい場合には、ステップ１４１０に進む。一方、暫定類似度Tmpの値の方が小さい（或いは等しい）場合には、ステップ１４１１に進む。なお、ステップ１４０８で求めた暫定類似度Tmpの履歴については、後述の補正処理（ステップ１４１２）で利用するために、ＲＡＭ１１３に保持される。そして、ステップ１４１０では、類似度Sの値が更新される。具体的には、類似度Sの値が、現在の暫定類似度Tmpの値で上書きされる。
【００６１】
ステップ１４１１では、位置合わせ後のクエリ画像のすべてのテキストブロックが処理されたかどうかが判定される。未処理のテキストブロックがあれば、ステップ１４０３に戻って次の注目するテキストブロックを選択し処理を続行する。一方、すべてのテキストブロックが処理されていれば、ステップ１４１２に進む。
【００６２】
ステップ１４１２では、類似度Sの補正処理が実行される。この補正処理の説明の前に、ここまでの処理において繰り返し暫定類似度Tmpを算出することの意味について説明しておく。図１６は、暫定類似度Tmpの算出対象となる画像範囲（算出範囲）が順次変化する様子を示している。図１６において、（ａ）は登録画像、（ｂ）はクエリ画像を示しており、長さの異なる6種類の両矢印１６０１〜１６０６は暫定類似度Tmpの算出範囲をそれぞれ示している。どの算出範囲も、文書画像の上部の領域を含んでおり、重要なヘッダ情報等の位置が文書内容に応じて多少変化したとしても対応可能となっている。算出範囲１６０１〜１６０６毎の暫定類似度Tmpの値は例えば以下のようになる。  
算出範囲１６０１のTmp値：0.60
算出範囲１６０２のTmp値：0.64
算出範囲１６０３のTmp値：0.65
算出範囲１６０４のTmp値：0.75
算出範囲１６０５のTmp値：0.5
算出範囲１６０６のTmp値：0.4
【００６３】
テキストブロックの抽出ミスやばらつき、抽出されたテキストブロックの長さや大きさの違い等により誤差が含まれ得るものの、算出範囲１６０４の部分までの暫定類似度Tmpの値が相対的に高くなっている。つまり、文書フォーマットの固定的な構造（図１６の例では、文書タイトルや会社名といった重要な情報が存在する上部領域を重視）に対応した類似度の算出が出来ていることになる。この例では、算出範囲１６０４の暫定類似度Tmpの値が0.75で最大値となっているので、これが最終的な類似度Sとなる。このように、文書内の特定の画像領域（以下、特定領域）を必ず含むようにしながら算出範囲を変えることにより、文書フォーマットの固定的な構造に対応した類似度の算出が可能となる。図１７に別の具体例を示す。図１７において、（ａ）は登録画像、（ｂ）はクエリ画像である。両画像は全体的な構造は一致しているが、品名が書かれている部分が大きく異なっている。そのため、算出範囲が少し変わるだけで、以下のように算出結果が大きく違ってくる。  
算出範囲１７０１のTmp値：0.75
算出範囲１７０２のTmp値：0.18
【００６４】
図１７から明らかなように、算出範囲１７０１と算出範囲１７０２との差は大きくはない。しかしながら、図１７（ｂ）のクエリ画像にしか存在しないテキストブロックが多数あるため、暫定類似度Tmpの値が低くなっている。このように算出範囲が少し異なるだけでも算出結果が大きく異なり得るため、あらゆる文書画像において固定的な範囲を対象として類似度を求める場合は、正確さを担保できないことが分かる。なお、図１７の例では、下部領域１７０３においても固定的な構造を持つため、算出範囲に必ず含ませる文書内の特定領域を、上部ではなく下部の領域としてもよい。また、上部領域を含むようにした算出結果と、下部領域を含むようにした算出結果とを統合するようにしてもよい。統合の際には、後述する補正処理により、上部と下部の構造が合計でどれだけ一致しているかを考慮して最終的な類似度を得ることが可能である。例えば、上部だけクエリ画像に一致した固定的な構造を持つ登録画像Ａと、上部と下部の双方でクエリ画像に一致した固定的な構造を持つ文書画像Ｂがあったとする。そして、登録画像Ａと登録画像Ｂの上部の構造が類似していた場合に、登録画像Ｂの方の類似度を文書画像Ａよりも高くするといった具合である。
【００６５】
最後に、ステップ１４１２において、繰り返しの算出で得られた暫定類似度Tmpの分布に基づき、類似度Sの補正処理が実行される。類似度Sは、暫定類似度Tmpの算出を複数回行って得られた中での最大値であり、暫定類似度Tmpの分布状況までは反映できていない。例えば、Tmp値が同じであっても、それがS値の近辺だけTmp値が高い場合もあれば、S値を含むより広い範囲でTmp値が高い場合もある。そして、後者の場合は、S値をTmp値の分布状況に応じて補正することが望ましい。図１８にその具体例を示す。図１８において、（ａ）はクエリ画像であり、（ｂ）と（ｃ）は、（ａ）のクエリ画像との類似度Sがいずれも0.8の登録画像である。図１８（ｂ）の登録画像は、同（ａ）のクエリ画像と全体的には同一の構造を持ち、品名を記載している部分だけが異なっている。一方、図１８（ｃ）の登録画像は、同（ａ）のクエリ画像と上部の構造だけが同一であり、下部の構造は異なっている。このような場合には、全体的に類似している図１８（ｂ）の類似度Sが図１８（ｃ）の類似度Sよりも高くなることが望ましい。ここで、図１８（ｂ）の登録画像においては、両矢印１８０１で示す範囲（ページ全体に占める割合：25％）で、暫定類似度Tmpが0.7を超えていたとする。また、図１８（ｃ）の登録画像においては両矢印１８０２で示す範囲（ページ全体に占める割合：15％）で、暫定類似度Tmpが0.7を超えていたとする。この場合、例えば、以下の式（３）を用いて類似度Sを補正する。  
補正後の類似度S＝MIN（1, 類似度S×所定のゲイン×MAX（暫定類似度Tmpが一定の閾値以上となる範囲の割合／所定の正規化係数−1, 0）＋類似度S）
上記式（３）において、MIN(A,B)はAとBのうち小さい方の値を出力する関数であり、MAX(A,B)はAとBのうち大きい方の値を出力する関数である。所定のゲインは、補正の強さを定義する値であり、例えば0.05〜0.5程度の値である。所定の正規化係数は、暫定類似度Tmpが一定の閾値以上となる範囲の割合がどの程度になれば類似度Sを補正するかを決める値であり、例えば、0.05〜0.2程度の値である。図１８の例において、一定の閾値を0.7、所定のゲイン及び正規化係数を共に0.1とすると、補正後の類似度Sはそれぞれ以下のようになる。  
・図１８（ｂ）の登録画像の場合
補正後の類似度S＝MIN（0.8×0.1×MAX（0.25／0.1−1, 0）＋0.8 ＝0.92
・図１８（ｃ）の登録画像の場合
補正後の類似度S＝MIN（0.8×0.1×MAX（0.15／0.1−1, 0）＋0.8 ＝0.84
このように、暫定類似度Tmpが一定の閾値以上となる範囲の割合が所定の正規化係数よりも大きければ、補正後の類似度Sの値は大きくなる。逆に小さければ、補正後の類似度Sの値は小さくなる。また、暫定類似度Tmpが一定の閾値以上となる範囲の割合が大きいほど、補正後の類似度Sの値が大きくなる。図１８の例でも、暫定類似度Tmpの値が0.7以上の範囲の割合が25％である図１８（ｂ）の登録画像の方が、暫定類似度Tmpの値が0.7以上の範囲の割合が15％である図１８（ｃ）の登録画像よりも、補正後の類似度Sの値が大きくなっている。なお、補正方法は上記式（３）を用いる方法に限定されない。例えば暫定類似度Tmpの上位半分の平均等により、クエリ画像と登録画像との間で類似している領域の幅を推定し、当該推定された幅が広いほど類似度Sの値が大きくなるように補正してもよい。
【００６６】
以上が、個別類似度算出処理の内容である。これにより、位置合わせ後のクエリ画像と注目登録画像との間の類似度が得られる。
【００６７】
なお、本実施例の個別類似度算出処理においては、テキストブロックを利用しているが、これに限定されない。例えば、解像度変換を行って低解像度にした文書画像同士の画素値を利用、具体的には、輝度値の差の絶対値の和や相関係数を利用して、文書画像の見た目自体を比較した類似度を求めてもよい。もしくは、OCR処理で得られた文字列情報を利用、具体的には、得られた文字列同士の距離を計算する尺度であるレーベンシュタイン距離等を利用して、文書に記載された内容自体を比較した類似度を求めてもよい。
【００６８】
また、本実施例のマッチング処理では、登録画像として文書画像そのものを用いたがこれに限定されない。例えば、各文書画像のテキストブロック抽出処理結果など、マッチング処理に利用可能な特徴量であればよい。
【００６９】
以上のとおり本実施例によれば、同一種類の文書画像かどうかを識別するにあたって重要な特定領域（固定的な構造部分）を含みつつ、識別に際して重要でない領域（同一種類の文書画像でも差異がある部分）を含まない形で、文書画像間の類似度算出が可能となる。これにより、スキャン画像に係る文書と同一種類の文書を高精度で検索することができ、ひいてはユーザに提示されるスキャンアシスト情報の精度も高めることができる。また、ユーザは特定領域を逐一指定する必要がないため、ユーザの負荷も軽減できる。
【実施例２】
【００７０】
次に、暫定類似度Tmpの算出範囲を柔軟に変更できるようにした態様を、実施例２として説明する。なお、個別類似度算出処理以外の内容は実施例１と同じである。以下では、前述の図１４のフローに対応する図１９のフローを参照しつつ、本実施例における個別類似度算出処理について説明する。
【００７１】
ステップ１９０１及びステップ１９０２は、図１４のフローにおけるステップ１４０１及びステップ１４０２にそれぞれ対応する。すなわち、位置合わせ後のクエリ画像と注目登録画像のテキストブロックの情報が取得されると（ステップ１９０１）、類似度を表す変数Sと暫定類似度を表す変数Tmpの値が初期化される（ステップ１９０２）。
【００７２】
ステップ１９０３では、暫定類似度Tmpの算出範囲に常に含まれる特定領域の情報が取得される。特定領域の情報としては、例えば以下のようなものが挙げられる。  
・アプリケーション等によって予め定められている、文書画像の上部領域や下部領域等の位置情報
・操作部１２０のＵＩ（ユーザインタフェース）を介してユーザが指定した内容（例えばクエリ画像側を基準として上部重視、下部重視など）に従って設定した領域の位置情報
・登録画像に紐づけて登録されている領域であって、スキャンアシスト情報の生成に利用されたテキストブロックを包含する所定の領域の位置情報。
【００７３】
ここで、登録画像に紐づけて登録される所定領域の具体例を、図２０を用いて説明する。図２０（ａ）〜（ｄ）では、共通の登録画像に対して、様々な形状の領域が特定領域として紐づけられている。まず、図２０（ａ）は、破線で示すテキストブロック２００１、２００２及び２００３が、スキャンアシスト情報の生成に利用された場合の特定領域の一例である。図２０（ａ）において、一点鎖線で示す特定領域２００４は、Y座標（上下方向）がテキストブロック２００１の上辺とテキストブロック２００３の下辺、X座標（横方向）が文書画像の左端と右端である。文書画像の中で、固定的な構造と非固定的な構造との切り替え箇所は上下方向にあることが多く、横方向で切り替わることは少ないため、特定領域の横方向はこのように文書画像の左端と右端とすることが考えられる。ただし、X座標（横方向）を、テキストブロック２００１〜２００３の最左端と最右端とした、二点鎖線で示す特定領域２００５のようにしても構わない。図２０（ｂ）は、破線で示すテキストブロック２００１、２００２及び２００６が、スキャンアシスト情報の生成に利用された場合の特定領域の一例である。図２０（ｂ）において、一点鎖線で示す特定領域２００７は、Y座標（上下方向）がテキストブロック２００１の上辺とテキストブロック２００６の下辺、X座標（横方向）が文書画像の左端と右端である。特定領域２００７の場合、テキストブロック２００２とテキストブロック２００６とが大きく離れており、スキャンアシスト情報の生成にとって重要でないテキストブロックも多く含んでしまう。そこで、ファイルアシスト情報の生成に利用されたテキストブロック同士が離れている場合には、テキストブロックをグルーピングし、二点鎖線で示す特定領域２００８と２００９のように2つに分けてもよい。この場合において、特定領域２００９のY座標は、テキストブロック２００６の上端と下端にマージンをつけている。これは、テキストブロック２００６単独で1つの領域となっているため、マージンをつけないと領域の高さが狭くなりすぎ、安定した特定領域とならないためである。以上のような特定領域の情報を動的に取得することにより、実施例１に比べて、様々な構造の文書画像に対応することが可能となる。
【００７４】
ステップ１９０４では、ステップ１９０３で取得された特定領域の情報に基づき、複数の類似度算出範囲が設定される。この場合の類似度算出範囲は、特定領域が含まれればよく、どんな形状でも構わない。例えば、特定領域２００４や２００７の場合であれば、当該領域を基準となる算出範囲とし、Y方向（上下方向）に一定の幅（例えば、ページの1％）で算出範囲を拡大していき、複数の算出範囲を設定する。また、特定領域２００５の場合であれば、当該領域を基準となる算出範囲とし、X方向（左右方向）、Y方向（上下方向）それぞれに一定の幅で算出範囲を拡大していき、複数の算出範囲を設定する。この際、X方向だけ拡大、Y方向だけ拡大、XとYの２方向同時の拡大、をそれぞれ組み合わせたものを設定する。また、特定領域２００８・２００９のように2つある場合は、双方の領域を基準となる算出範囲とした上で、それぞれの領域について一定の幅で算出範囲を拡大していき、複数の算出範囲を設定する。すなわち、特定領域２００８に基づくY方向への拡大、特定領域２００９に基づくY方向への拡大、双方の領域の同時拡大を考慮して、複数の算出範囲を設定する。
【００７５】
ステップ１９０５では、設定された複数の算出範囲の中から注目する算出範囲が1つ選択される。そして、ステップ１９０６では、選択された注目算出範囲に含まれる、位置合わせ後のクエリ画像のテキストブロックと注目登録画像のテキストブロックの情報が取得される。さらに、ステップ１９０７では、図１４のフローのステップ１４０３と同様、位置合わせ後のクエリ画像におけるテキストブロックの中から注目するテキストブロックが決定される。ステップ１９０８〜ステップ１９１０の各処理は、図１４のフローにおけるステップ１４０４〜ステップ１４０６にそれぞれ対応する。すなわち、位置合わせ後のクエリ画像の注目テキストブロックに対応する、注目登録画像のテキストブロックの検索（ステップ１９０８）、オーバラップ面積の算出（ステップ１９０９）、暫定類似度Tmpを算出するための準備処理（ステップ１９１０）が実行される。
【００７６】
ステップ１９１１では、位置合わせ後のクエリ画像のすべてのテキストブロックが処理されたかどうかが判定される。未処理のテキストブロックがあれば、ステップ１９０７に戻って次の注目するテキストブロックを決定し処理を続行する。一方、すべてのテキストブロックが処理されていれば、ステップ１９１２に進む。
【００７７】
ステップ１９１２〜ステップ１９１４の各処理は、図１４のフローにおけるステップ１４０８〜ステップ１４１０にそれぞれ対応する。すなわち、暫定類似度Tmpの算出（ステップ１９１２）、算出された暫定類似度Tmpと現在の類似度Sの比較処理（ステップ１９１３）、類似度Sの値の更新（ステップ１９１４）が実行される。なお、暫定類似度Tmpの算出において、QueryAreaの定義は、類似度算出範囲に含まれるクエリ画像のテキストブロックの総面積となる。同様に、RegistAreaの定義は、類似度算出範囲に含まれる登録画像のテキストブロックの総面積となる。
【００７８】
ステップ１９１４では、ステップ１９０４で設定されすべての算出範囲について暫定類似度Tmpの算出が完了したかどうかが判定される。未処理の算出範囲があれば、ステップ１９０５に戻って次の注目する算出範囲を決定し処理を続行する。一方、すべての算出範囲について暫定類似度Tmpの算出が完了していれば、ステップ１９１５に進む。
【００７９】
最後に、ステップ１９１５において、図１４のフローのステップ１４１２と同様、暫定類似度Tmpの分布に基づく類似度Sの補正処理が実行される。以上が、本実施例に係る、類似度算出処理の内容である。
【００８０】
本実施例によれば、実施例１の図１４のフローのステップ１４０３における基準位置（上部や下部）が柔軟に変更できるため、より多くの種類の文書画像に対処することが可能となる。また、本実施例の場合、ユーザが特定領域を指定することも可能であるので、特殊なフォーマットの帳票などにも適用可能である。また、登録画像においてスキャンアシスト情報の生成に実際に利用されたテキストブロックに基づき特定領域を決めることも可能であり、この場合は、登録画像毎に特定領域の切り替えがなされることになる。このとき切り替えに利用するテキストブロックはスキャンアシスト情報の生成に実際に利用されたものであるため、設定される算出範囲は類似度算出により適したものになることが予想される。そのため、類似度算出処理の精度を向上させることに繋がる。
【００８１】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８２】
また、本実施形態の機能を実現するためのプログラムコードを、1つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2019057173.tif 000003
【図２】
2019057173.tif 000004
【図３】
2019057173.tif 000005
【図４】
2019057173.tif 000006
【図５】
2019057173.tif 000007
【図６】
2019057173.tif 000008
【図７】
2019057173.tif 000009
【図８】
2019057173.tif 000010
【図９】
2019057173.tif 000011
【図１０】
2019057173.tif 000012
【図１１】
2019057173.tif 000013
【図１２】
2019057173.tif 000014
【図１３】
2019057173.tif 000015
【図１４】
2019057173.tif 000016
【図１５】
2019057173.tif 000017
【図１６】
2019057173.tif 000018
【図１７】
2019057173.tif 000019
【図１８】
2019057173.tif 000020
【図１９】
2019057173.tif 000021
【図２０】
2019057173.tif 000022