(57)【要約】【課題】  本発明に記載の画像処理装置は、取得した画像に対して表示に使用されない領域まで文字認識処理がなされてしまうことを防ぐことを目的とする。【解決手段】  本発明に記載の画像処理装置は、原稿を読み取ることで画像を取得する取得手段と、前記取得手段により取得された画像に対する文字認識処理を実行する文字認識手段と、前記文字認識手段による文字認識処理により得られたテキストデータを表示する表示手段と、を有する画像処理装置において、前記取得手段により取得された画像から、前記表示手段による表示に用いられる領域を、前記文字認識手段により文字認識処理される領域として選択する選択手段を有することを特徴とする。【選択図】  図２
2019149788.tif 000002
【特許請求の範囲】
【請求項１】
原稿を読み取ることで画像を取得する取得手段と、
前記取得手段により取得された画像に対する文字認識処理を実行する文字認識手段と、
前記文字認識手段による文字認識処理により得られたテキストデータを表示する表示手段と、を有する画像処理装置において、
前記取得手段により取得された画像から、前記表示手段による表示に用いられる領域を前記文字認識手段により文字認識処理される領域として選択する選択手段を有することを特徴とする画像処理装置。
【請求項２】
前記取得手段により取得された画像から、文字列ブロックを抽出する抽出手段をさらに有し、
前記選択手段は前記抽出手段により抽出された文字列ブロックから、前記表示手段による表示に用いられる文字列ブロックを前記領域として選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記選択手段は、前記表示に用いられる領域を自動で選択することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記表示手段は、前記文字認識手段による文字認識処理の結果を前記画像のファイル名として表示することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記選択手段により領域が選択されるときのルールを記憶する記憶手段をさらに有し、
前記選択手段は、前記記憶手段に記憶されたルールに基づいて、前記取得手段により取得された画像から領域を選択することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記記憶手段は、画像と前記選択手段により領域が選択されるときのルールの対応を複数記憶し、
前記選択手段は、前記記憶手段に記憶された複数の画像のうち、前記取得手段により取得された画像に最も類似する画像に対応づけられたルールに基づいて、領域を選択することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記選択手段は、前記取得手段により取得された画像からユーザにより指示された領域を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記表示手段は、前記選択手段により選択された領域に対する文字認識処理の結果を前記画像のファイル名として表示することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記選択手段は、前記画像から抽出される文字列ブロックのうち、少なくとも一つを選択しないことを特徴とする請求項２に記載の画像処理装置。
【請求項１０】
前記文字認識手段は、前記選択手段により選択された領域の文字認識処理が完了した後、前記選択手段により選択されていない領域の文字認識処理を開始することを特徴とする請求項１乃至９の何れか一項に記載の画像処理装置。
【請求項１１】
原稿を読み取り、画像を取得する取得手段を有し、前記取得手段により取得された画像を表示する画像処理装置において、
前記取得手段により取得された画像から、文字認識処理を行う領域を選択する選択手段と、
前記選択手段により選択された領域に対して文字認識処理を実行する文字認識手段と、
前記文字認識手段による文字認識処理の結果を表示する表示手段と、をさらに有し、
前記文字認識手段は、少なくとも、前記選択手段により選択された領域の文字認識処理が完了するまで、前記選択手段により選択されていない領域の文字認識処理を開始しないことを特徴とする画像処理装置。
【請求項１２】
前記表示手段は、前記選択手段により選択された領域の文字認識処理の結果を前記画像のファイル名として表示することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
原稿を読み取り画像を取得する取得工程と、
前記取得工程において取得された画像に対する文字認識処理を実行する文字認識処理工程と、
前記文字認識処理工程における文字認識処理で得られたテキストデータを表示する表示工程と、を有する画像処理装置の制御方法において、
前記取得工程において取得された画像から、前記表示工程において表示されるテキストデータを得るために用いられる領域を、前記文字認識処理工程において文字認識処理される領域として選択する選択工程と、を有することを特徴とする画像処理装置の制御方法。
【請求項１４】
原稿を読み取り画像を取得する取得工程と、
前記取得工程において取得された画像に対する文字認識処理を実行する文字認識処理工程と、
前記文字認識処理工程における文字認識処理により得られたテキストデータを表示する表示工程と、
前記取得工程において取得された画像から、前記表示工程において表示されるテキストデータを得るために用いられる領域であって、前記文字認識処理工程において文字認識処理される領域を選択する選択工程を有し、
前記文字認識処理工程は、少なくとも前記選択工程において選択された領域の文字認識処理が完了するまで、前記選択工程において選択されていない領域の文字認識処理を開始しないよう制御することを特徴とする画像処理装置の制御方法。
【請求項１５】
請求項１３、または、請求項１４に記載の画像処理装置の制御方法をコンピュータが実行するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置と画像処理装置の制御方法、および、プログラムに関する。
【背景技術】
【０００２】
帳票等の紙文書を画像処理装置でスキャンしてデジタルデータ化して管理することがある。文書をスキャンすることで得られた画像を保存する際には、一般的に、デジタル化した文書画像に、文書の種類・内容に応じたファイル名やメタ情報をつけて、所定のフォルダに格納する。
【０００３】
特許文献１に記載の画像処理装置において、ユーザは予めスキャンされる原稿のフォーマット、その原稿に含まれる文字列とその原稿をコピー、送信するときの設定を対応づけて登録しておく。画像処理装置は原稿をスキャンすることで得られた画像データの構造と当該画像データに含まれる文字列から、スキャンした原稿が予め登録された原稿であるか否かを判定する。スキャンした原稿が予め登録された原稿であった場合、画像処理装置は、予め原稿に対応づけて登録されたコピーや送信の設定を推奨設定として表示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１５３４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の画像処理装置は、スキャンして得られた原稿の画像に対してＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）処理を実行し、画像に含まれる文字列を用いて、原稿の種類を判定している。
【０００６】
原稿をスキャンすることで得られた画像データの一部の文字列のＯＣＲ処理の結果を用いて、ファイル名をつけたり、原稿に含まれる文字列と予め登録された文字列を比較する場合がある。上記のような処理を実行する場合、画像全体に対してＯＣＲ処理を実行すると、ファイル名やメタ情報として使用されない文字列に対してまでＯＣＲ処理を実行するため、ＯＣＲ処理の結果を表示するまでに時間がかかってしまう。
【０００７】
本発明に記載の画像処理装置は、取得した画像に対して表示に使用されない領域まで文字認識処理がなされてしまうことを防ぐことを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本出願に記載の画像処理装置は、原稿を読み取ることで画像を取得する取得手段と、前記取得手段により取得された画像に対する文字認識処理を実行する文字認識手段と、前記文字認識手段による文字認識処理により得られたテキストデータを表示する表示手段と、を有する画像処理装置において、前記取得手段により取得された画像から、前記表示手段による表示に用いられる領域を、前記文字認識手段により文字認識処理される領域として選択する選択手段を有することを特徴とする。
【発明の効果】
【０００９】
本発明に記載の画像処理装置は、取得した画像に対して表示に使用されない領域まで文字認識処理がなされてしまうことを防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態における、画像処理装置１００のハードウェア構成の一例を示すブロック図である。
【図２】本実施形態における画像処理装置１００の実行する処理を示すフローチャートである。
【図３】本実施形態において、原稿をスキャンすることで得られる画像データおよび、ブロックセレクション処理の結果の一例を示す模式図である。
【図４】本実施形態におけるクエリ文書画像の一例を示す模式図である。
【図５】本実施形態において、ディスプレイ１１０に表示される画面の一例を示す図である。
【図６】本実施形態において、ディスプレイ１１０に表示されるファイル名の編集画面の一例を示す図である。
【図７】本実施形態において、スキャンされる原稿を模式図である。
【図８】本実施形態において、類似度を算出するための処理を示すフローチャートである。
【図９】本実施形態において、クエリ文書画像のシフト量を算出するための処理を示すフローチャートである。
【図１０】本実施形態において、クエリ文書画像と登録文書画像のテキストブロックの対応を示す模式図である。
【図１１】本実施形態において、シフト量を算出するために用いられる情報を示す図である。
【図１２】本実施形態において、クエリ文書画像にマッチングする登録文書画像を選択する処理を示すフローチャートである。
【図１３】本実施形態における、登録文書画像、およびクエリ文書画像に含まれるテキストブロックの管理テーブルの一例を示す図である。
【図１４】本実施形態において、クエリ文書画像と登録文書画像の類似度を算出する処理のフローチャートである。
【図１５】本実施形態における、オーバーラップ率算出方法を説明する模式図である。
【図１６】第２の実施形態において、画像処理装置が実行する処理を示すフローチャートである。
【図１７】第２の実施形態において、ブロックセレクション処理を実行する領域を説明するための模式図である。
【発明を実施するための形態】
【００１１】
［実施形態１］
以下、本発明を実施するための形態について図面を参照して説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。
【００１２】
図１は、本実施形態におけるシステム構成の一例を示すブロック図である。図１に示される通り、本実施形態の文書画像のスキャンアシストシステムは、画像処理装置１００により実現される。
【００１３】
画像処理装置１００は、ユーザインターフェース１０４、ＣＰＵ１０５、ＲＡＭ１０６、記憶部１０７、画像読取部１０８、画像出力部１０９、ディスプレイ１１０を備える。そして、各部は装置制御部１０２を介して相互に通信可能に接続されている。さらに画像処理装置１００は、画像データを処理するＡＳＩＣから構成される画像処理部１０３を有する。画像処理装置１００は、ネットワーク１０１を介して、非図示の外部の情報処理装置と接続される。ユーザインターフェース１０４は、例えばキーボード、マウス、その他入出力装置によって構成され、各種の設定値または指定値を入力することができる。
【００１４】
ＣＰＵ１０５は、記憶部１０７に記憶された初期プログラムに従って、メインプログラムを記憶部１０７より読出し、ＲＡＭ１０６に記憶する。ＲＡＭ１０６はプログラム格納用や、ワーク用のメインメモリとして使用される。そして、メインプログラムに従って、ＣＰＵ１０５は装置制御部１０２を制御する。
【００１５】
画像読取部１０８は、スキャナデバイスであり、原稿を読取ることにより画像データを取得する。装置制御部１０２は、画像読取部１０８から画像データを取得すると、取得した画像データを記憶部１０７に記憶する。そして、装置制御部１０２は、スキャンアシスト処理を実行する際に、記憶部１０７に記憶された画像データをＲＡＭ１０６に読み出す。本実施形態において、スキャンアシスト処理は、スキャンした画像データに付随させる情報をユーザにレコメンドする処理である。本実施形態において、画像処理装置１００がユーザにレコメンドする情報は、原稿を読み取ることで得られた画像データのファイル名である。本実施形態では、画像データのファイル名を画像処理装置がレコメンドするとして説明するが、画像処理装置が、原稿を読み取ることで得られた画像データの送信先や格納先をレコメンドするとしてもよい。さらに、画像処理装置が、領収書等の原稿を読み取り、読み取った領収書の金額欄を表示するとしてもよい。
【００１６】
スキャンアシスト処理を実行するために装置制御部１０２は、ＲＡＭ１０６に記憶された画像データを解析し、スキャンアシスト処理に必要な情報を生成する。スキャンアシスト処理を実行するための解析処理は、以下の３つの処理からなる。１つ目は、画像データに含まれる文字列ブロックを抽出するブロックセレクション処理（ＢＳ処理）である。２つ目は、予め画像処理装置１００に登録されている画像データと新たに原稿をスキャンして得られた画像データとの間の類似度を求めるマッチング処理である。３つ目は、文字列ブロックに含まれる文字を認識する光学文字認識処理（ＯＣＲ処理）である。
【００１７】
装置制御部１０２は、生成した情報を用いてスキャンアシスト処理のためのＵＩ画面を生成し、ディスプレイ１１０に表示する処理を実行する。そして、装置制御部１０２は、ユーザインターフェース１０４を介したユーザからの指示に基づき、原稿をスキャンして読み取ることで得られた画像データのファイル名を設定する。そのご、画像処理装置１００は、画像データに設定されたファイル名を付与して記憶部１０７に記憶する。
【００１８】
画像出力部１０９は、装置制御部１０２による制御に従って、記憶部１０７に記憶された画像データを種々の形式で出力する。たとえば、画像出力部１０９はプリンタデバイスであり、画像出力部１０９は、装置制御部１０２の制御に基づいて画像を用紙に印刷する印刷処理を実行する。画像出力部１０９が画像データの送信機能を有し、装置制御部１０２の制御に基づいて、記憶部１０７に記憶された画像データを外部の装置に送信するとしてもよい。
【００１９】
以上に説明した画像処理装置１００は本実施形態の一例である。画像読取部１０８および画像出力部１０９のうち、画像出力部１０９を有さない構成の画像処理装置１００であってもよい。また、画像処理装置１００の一部機能を、ネットワークを介して接続された外部処理装置で実行するようにしても構わない。外部処理装置は、サーバ等のコンピュータ装置であってもよく、インターネット上のクラウドサーバーであってもよい。その他必要に応じて、その他の構成を備えるものであってもよい。
【００２０】
次に、本実施形態において、画像処理装置１００が実行するスキャンアシスト処理を図２に記載のフローチャートを用いて説明する。図２は、画像処理装置１００が原稿をスキャンして画像データを生成したときに実行される処理のフローチャートである。図２のフローは、画像処理装置１００がユーザインターフェース１０４を介して、ユーザから原稿のスキャン指示を受け付けることにより実行される。図２に示されるフローチャートで示された処理を実行するためのプログラムは記憶部１０７に記憶されている。記憶部１０７に記憶されたプログラムは、ＲＡＭ１０６に展開され、ＣＰＵ１０５によって実行される。
【００２１】
はじめに、ＣＰＵ１０５は、画像読取部１０８で原稿を読み取り画像データを生成する（Ｓ２０１）。Ｓ２０１において、ＣＰＵ１０５は画像処理部１０３を制御して生成した画像データに対する色変換処理・階調補正等の補正処理を実行する。ＣＰＵ１０５は、画像データに対して必要な処理を完了した後、当該画像データを記憶部１０７に記憶する。以降、本実施形態においてこの画像データを、クエリ文書画像と呼称する。図３（Ａ）は、画像読取部１０８が原稿を読み取ることで生成されたクエリ文書画像の一例である。
【００２２】
次に、ＣＰＵ１０５は、記憶部１０７に保存されているクエリ文書画像をＲＡＭ１０６に読み出し、回転補正処理を実行する（Ｓ２０２）。回転補正処理は、Ｓ２０１で生成されたクエリ文書画像が縦長の画像データであるか横長の画像データであるかを判定し、クエリ文書画像の天地を補正するための処理である。ＣＰＵ１０５は、クエリ文書画像内の文字列や線が水平に並ぶようクエリ文書画像を回転させ回転角を決定する。例えば、ＣＰＵ１０５は様々な方向への射影ヒストグラムを取り、ヒストグラムのピークとボトムが短い周期で大きく振動するヒストグラムに対応する角度を回転角として選択する。一般的には原稿中の文字は水平または垂直方向に並んでいるため、クエリ文書画像が水平になっている場合、射影ヒストグラムのピークとボトムが短い周期で繰り返される。
【００２３】
次に、ＣＰＵ１０５は、クエリ文書画像に対して、ブロックセレクション処理（ＢＳ処理）を実行する（Ｓ２０３）。ブロックセレクション処理とは、クエリ文書画像を複数の領域に分割し、それぞれのブロックの属性を判定する処理である。ブロックの属性とは、たとえば、文字（ＴＥＸＴ）／図画（ＰＩＣＴＵＲＥ）／写真（ＰＨＯＴＯ）／線（ＬＩＮＥ）／表（ＴＡＢＬＥ）等である。図３（Ｂ）は、図３（Ａ）で示したクエリ文書画像に対してブロックセレクション処理を実行した後のデータである。図３（Ｂ）において破線で囲まれた１つ１つの矩形がブロックであり、各ブロックに属性が付与されている。
【００２４】
ブロックセレクション処理の方法は公知の方法を用いることとする。たとえば、ＣＰＵ１０５がクエリ文書画像を白黒に二値化し、二値化された画像データに対してエッジを抽出する。そして、ＣＰＵ１０５は、連続した黒画素で囲まれる領域を抽出する。抽出された領域の面積が所定の面積よりも大きい場合、ＣＰＵ１０５は、さらに領域の内部の白画素が連続する領域を抽出する。抽出された白画素で囲まれる領域の面積が所定の面積よりも大きい場合、ＣＰＵ１０５は再度、上記領域内の黒画素が連続する領域を抽出する。ＣＰＵ１０５は、黒画素、または、白画素で囲まれる面積が所定の面積よりも小さくなるまで処理を繰り返す。
【００２５】
ＣＰＵ１０５は、上記の処理で得られた領域を、大きさおよび形状で分類し、属性を選択する。たとえば、ＣＰＵ１０５は領域の縦横比が１に近く、大きさが所定の範囲に含まれる領域を文字と判断する。そして、ＣＰＵ１０５は、文字と判断された領域であって、整列している領域をグループ化して文字列（ＴＥＸＴ）のブロックとする。たとえば、画像処理装置は、ある文字と判断された領域と、当該領域から水平方向に所定距離以内のところにある文字と判断された領域を１つの文字列のブロックとする。
【００２６】
本実施形態において、文字列のブロックはテキストブロックと呼称する。また、ＣＰＵ１０５は、扁平な画素塊を線（ＬＩＮＥ）のブロックとする。さらに、ＣＰＵ１０５は、一定大きさ以上でかつ矩形の白画素塊を整列よく内包する矩形を表（ＴＡＢＬＥ）のブロックとし、不定形の画素塊が散在している領域を写真（ＰＨＯＴＯ）のブロックとする。そして、上記のいずれにも当てはまらない画素塊を図画（ＰＩＣＴＵＲＥ）のブロックとする。ブロックセレクション処理で得られた各ブロックに対する属性情報は以降に説明するＯＣＲ処理、類似度計算等の為の情報として用いられる。
【００２７】
次に、ＣＰＵ１０５は、予め記憶部１０７に記憶されていた登録文書画像からクエリ文書画像に類似する画像を選択するマッチング処理を行う（Ｓ２０４）。ＣＰＵ１０５は、記憶部１０７に記憶された複数の登録文書画像とクエリ文書画像を比較し、それぞれの登録文書画像に対する類似度を算出する。そして、ＣＰＵ１０５は類似度が最大となった登録文書画像をマッチング候補の登録文書画像として選択する。
【００２８】
登録文書画像とは、予め画像処理装置１００の記憶部１０７に記憶された文書画像である。画像処理装置１００の記憶部１０７は、登録文書画像を複数記憶する。そして、画像処理装置１００は、記憶部１０７に記憶された登録文書画像から、クエリ文書画像との類似度が最も高い登録文書画像をマッチング候補として選択する。
【００２９】
登録文書画像には、各画像データに対するブロックセレクション処理の結果や当該画像データのファイル名付けルールなどスキャンアシスト処理に用いられる情報が付加されている。登録文書画像に付加されている情報は、とたえば、図１３（Ａ）に記載のようなテーブルで管理される。図１３（Ａ）に記載のテーブルは、登録文書画像に含まれるテキストブロックの情報を示すテーブルである。「ブロックＩＤ」は各テキストブロックを識別するための番号である。「座標（ｘ、ｙ）」は各テキストブロックの左上の点の座標である。「サイズ（ｘ、ｙ）」は各テキストブロックの横（ｘ方向）、縦（ｙ方向）の大きさである。「ファイル名付けルール」は、各テキストブロックがファイル名を付けるときに使われたか否か、また、何番目に使われたかを示す情報である。たとえば、図１３（Ａ）であれば、ブロックＩＤ００１のテキストブロックとブロックＩＤ００２のテキストブロックがファイル名を付けるときに使用されたブロックである。さらに、図１３（Ａ）はブロックＩＤ００１、ブロックＩＤ００２の順で文字列をつなげたファイル名が使用されたことを示している。座標、および、サイズはクエリ文書画像の左上頂点を原点とし、原点からクエリ文書画像に沿って右方向をｘ軸正の方向。原点からクエリ文書画像に沿って下方向をｙ軸正の方向とする。クエリ文書画像の右ほどｘの値が大きくなり、クエリ文書画像の下ほどｙの値が大きくなる。
【００３０】
ＣＰＵ１０５は、記憶部１０７から登録文書画像を読み出し、ＲＡＭ１０６に記憶する。そして、ＣＰＵ１０５はＲＡＭ１０６に記憶された登録文書画像とクエリ文書画像の類似度を算出する。類似度の算出は、公知の方法で行うこととする。本実施形態では、後述する処理により各登録文書画像とクエリ文書画像の類似度が算出される。本実施形態において、記憶部１０７に記憶される登録文書画像は、文書画像そのものでなく、各文書画像のブロックセレクション処理結果等であってもよい。また、ＣＰＵ１０５はマッチング処理を実行したのちに、クエリ文書画像と登録文書画像の対応情報や、登録文書画像のファイル名の命名ルールに関する情報を得る。クエリ文書画像と登録文書画像の対応情報とは、登録文書画像とクエリ文書画像のテキストブロックの対応を示す情報などである。
【００３１】
続いて、ＣＰＵ１０５は、Ｓ２０４において選択した登録文書画像とクエリ文書画像の類似度が所定の閾値以上であるか否かを判定する（Ｓ２０５）。Ｓ２０４で選択された登録文書画像に対する類似度が所定の閾値以上である場合、ＣＰＵ１０５はＳ２０４において選択されたマッチング候補の登録文書画像がクエリ文書画像にマッチングした画像であると判定する。一方で、Ｓ２０４で選択された登録文書画像に対する類似度が所定の閾値に満たない場合、ＣＰＵ１０５はクエリ文書画像にマッチングする登録文書画像はないと判定する。マッチングした登録文書画像があると判断された場合、ＣＰＵ１０５はＳ２０６以降の処理を実行し、マッチングした文書画像がないと判断された場合、ＣＰＵ１０５はＳ２０９以降の処理を実行する。
【００３２】
Ｓ２０６において、ＣＰＵ１０５はＳ２０４で選択した登録文書画像に付加された情報を参照し、登録文書画像に含まれるテキストブロックからファイル名を生成するときに用いられたテキストブロックを特定する。ＣＰＵ１０５は、たとえば、図１３（Ａ）の登録文書画像テーブルから、ファイル名付けに使用されたテキストブロックのブロックＩＤを特定する。
【００３３】
そして、ＣＰＵ１０５は特定されたテキストブロックに対応するテキストブロックをクエリ文書画像から選択する（Ｓ２０７）。Ｓ２０７は、Ｓ２０６で特定されたテキストブロックに対して、後述する方法で対応づけられたクエリ文書画像中のテキストブロックを選択する。Ｓ２０６、Ｓ２０７の処理を行うことで、画像処理装置１００は、クエリ文書画像からファイル名の表示に用いられる領域を自動で選択する。
【００３４】
ＣＰＵ１０５は、Ｓ２０７で選択されたテキストブロックに対してのみ文字認識処理を実行して、テキストデータを生成する（Ｓ２０８）。具体的には、ＣＰＵ１０５がクエリ文書画像からＳ２０７で選択したテキストブロック部分の画像を抽出し、その部分画像のみに対してＯＣＲ処理を行うことでテキストデータを生成する。ＯＣＲ処理は、部分空間法等を用いた公知の種々の手法が適用可能である。
【００３５】
続いて、ＣＰＵ１０５は、スキャンアシスト情報を生成し、クエリ文書画像とともにファイル名を設定するファイル名設定画面をディスプレイ１１０に表示する（Ｓ２０９）。そして、ＣＰＵ１０５はユーザインターフェース１０４を介してユーザの操作を受け付ける。本実施例に記載の画像処理装置は、ファイル名に使用する箇所のみをＯＣＲ処理して、ＯＣＲ処理の結果を表示する。これにより、画像処理装置は、すべてのテキストブロックに対してＯＣＲ処理を実行するよりも素早くＯＣＲ処理の結果を表示することができ、原稿をスキャンして得られた画像データのファイル名のレコメンドにかかる時間を短くすることができる。
【００３６】
ここで、Ｓ２０９において、ディスプレイ１１０に表示される画面の一例を図４、図５を用いて説明する。図４は、原稿を画像読取部１０８で読み取ることで得られたクエリ文書画像の一例である。そして、図５（Ａ）はクエリ文書画像とマッチングした登録文書画像が記憶部１０７に記憶されていた場合にディスプレイ１１０に表示される画面の一例である。
【００３７】
図５（Ａ）のように、クエリ文書画像から抽出されたテキストブロックは背景色のグレーにして表示されている。図５（Ａ）では、一部背景色がグレーとなっていない領域がある。これはＳ２０３に記載の処理においてテキストブロックとして認識されなかった領域である。
【００３８】
図５（Ａ）では、「注文書」と書かれているテキストブロック５０１および「株式会社西取手白山商会」と書かれているテキストブロック５０２に番号が添えられている。テキストブロック５０１および５０２は、クエリ文書画像に含まれるテキストブロックのうち、ファイル名の候補の生成に利用されたテキストブロックである。本実施形態においては、Ｓ２０８においてクエリ文書画像に含まれるテキストブロックのうち５０１，５０２のみに対してＯＣＲ処理が実行され、ＯＣＲ処理の結果がＳ２０９で表示される。クエリ文書画像のうち、ファイル名の生成に必要な箇所のみをＯＣＲ処理することで、表示するファイル名を設定するまでにかかる時間を短くすることができる。テキストブロック５０１の左上の数字［１］は、マッチングした登録文書画像において対応するテキストブロックが、ファイル名の１番目の文字列として選択されていたことを示している。テキストブロック５０２の左上の数字［２］は、同様に、マッチングした登録文書画像において対応するテキストブロックが、ファイル名の２番目の文字列として選択されていたことを示している。よって、図５（Ａ）では、この２つの部分のＯＣＲ結果である「注文書」と「株式会社西取手白山商会」が「＿」で連結され、「注文書＿株式会社西取手白山商会」がテキストボックス５０３にレコメンドされている。ユーザがファイル名づけボタン５０４をタップ操作すると、ＣＰＵ１０５はテキストボックス５０３に記載のファイル名を付加してクエリ文書画像を記憶部１０７に記憶する。ユーザがファイル名を編集する場合には、テキストボックス５０３をタップ操作する。レコメンドされたファイル名を編集する場合の操作についてはＳ２１３〜Ｓ２１５において後述する。
【００３９】
また、Ｓ２０５においてマッチングした登録文書画像がない場合、いずれのテキストブロックもＯＣＲ処理がなされていないため、ディスプレイ１１０には図５（Ｂ）に示す画面が表示される。図５（Ｂ）に示す画面がディスプレイ１１０に表示された場合、画像処理装置１００はユーザ操作に基づいて、当該クエリ文書画像にファイル名を付ける。
【００４０】
ユーザインターフェース１０４がユーザ操作を受け付けたことに従って、ＣＰＵ１０５はファイル名が決定されたか否かを判定する（Ｓ２１０）。ユーザがファイル名づけボタン５０４をタップ操作した場合、ＣＰＵ１０５はファイル名が決定されたと判定する。ユーザの操作がファイル名づけボタン５０４の押下と異なる操作である場合、ＣＰＵ１０５はＳ２１３以降の処理を実行する。
【００４１】
ファイル名づけボタン５０４が操作された場合、ＣＰＵ１０５はテキストボックス５０３に表示されているファイル名をクエリ文書画像に付加して画像データを記憶部１０７に記憶する（Ｓ２１１）。本実施形態では、画像データを記憶部１０７に記憶するとしたが、画像データを外部の装置に送信したり、画像処理装置１００に接続されたサーバ等に画像データを保存するとしてもよい。その場合、画像処理装置１００はファイル名に加えて、画像データの送信先や保存箇所をユーザに設定させる。
【００４２】
画像データを保存した後、ＣＰＵ１０５は、記憶部１０７に記憶された登録文書画像に付加された情報を更新する（Ｓ２１２）。Ｓ２１２において、ＣＰＵ１０５は保存された画像データに付加されたファイル名に使用されたテキストブロックが登録文書画像に含まれるいずれのテキストブロックに対応したテキストブロックであるかの情報を更新する。たとえば、ファイル名付けに使用されるテキストブロックがマッチングした登録文書画像と異なる場合、ＣＰＵ１０５は、マッチングした登録文書画像に対応づけられたファイル名付けに使用するテキストブロックの情報を更新する。また、テキストブロックに含まれる文字列以外の文字列がファイル名として使用された場合、ＣＰＵ１０５は付加された文字列の情報を登録文書画像と紐づけて記憶部１０７に記憶する。画像処理装置１００がレコメンドしたファイル名がそのままファイル名として使用された場合、ＣＰＵ１０５がＳ２１２に記載の処理を実行しなくてもよい。Ｓ２１２に記載の処理を終了した後、ＣＰＵ１０５は図２に記載の処理を終了する。
【００４３】
次に、Ｓ２１０において、ファイル名が決定されなかったときの処理を説明する。Ｓ２１０においてファイル名が決定されなかった場合とは、ユーザが「ファイル名付け」５０４以外の箇所をタップ操作した場合である。たとえば、Ｓ２０５においてマッチングした登録文書画像がなくテキストボックス５０３に文字列が表示されていない場合にユーザは「ファイル名付け」５０４以外の箇所を操作する。また、ユーザが画像処理装置１００のレコメンドしたファイル名と異なるファイル名を使用したい場合にもユーザは「ファイル名付け」５０４以外の箇所を操作する。
【００４４】
次に、ＣＰＵ１０５は、テキストブロックがタップ操作されたか否かを判定する（Ｓ２１３）。Ｓ２１３においてＣＰＵ１０５は、ディスプレイ１１０に表示された画面で背景色がグレーとなっているテキストブロックをユーザがタップ操作したか否かを判定する。ユーザがテキストブロックをタップ操作した場合、ＣＰＵ１０５はＳ２１４以降の処理を実行し、ユーザがテキストブロックをタップ操作していない場合、ＣＰＵ１０５はＳ２１６以降に記載の処理を実行する。
【００４５】
Ｓ２１４において、ＣＰＵ１０５は、タップ操作されたテキストブロックのＯＣＲ処理を行う。ユーザがタップ操作したテキストブロックが、既にＯＣＲ処理されたテキストブロックであり、テキストブロックとＯＣＲ結果が紐づけられている場合、ＣＰＵ１０５はＯＣＲ処理を実行しない。テキストブロックのＯＣＲ方法は、Ｓ２０６と同様である。Ｓ２１４においては、ユーザがタップ操作したテキストブロックに対してのみＯＣＲ処理する。このようにすることで、クエリ文書画像全体をＯＣＲ処理するよりも短時間で選択されたテキストブロックに含まれる文字列を認識することができる。
【００４６】
そして、ＣＰＵ１０５は、Ｓ２１４で実行されたＯＣＲ処理の結果を利用して、ディスプレイ１１０に表示されるファイル名設定画面を更新する（Ｓ２１５）。たとえば、図６（Ａ）は、クエリ文書画像に含まれるテキストブロックのうちテキストブロック６０１が選択され、テキストボックス７０１に「注文書」が表示された状態を示している。ここで、ユーザがテキストブロック７０２をタップ操作したとする。ＣＰＵ１０５は、Ｓ２１４においてテキストブロック７０２に含まれる文字列に対してＯＣＲ処理を実行する。そして、ＣＰＵ１０５は、Ｓ２１５においてテキストブロック７０２の左上に［２］を表示し、テキストボックス７０１の「注文書」のあとに「＿株式会社西取手白山商会」を表示する。ＣＰＵ１０５はＳ２１５に記載の処理を実行後、処理をＳ２１０に戻す。
【００４７】
Ｓ２１３においてテキストボックスが選択されていない場合、ＣＰＵ１０５は、テキストボックス７０１がタップ操作されたか否かを判定する（Ｓ２１６）。例えば、Ｓ２１６において、ＣＰＵ１０５は、ユーザがテキストボックス７０１をタップ操作したか否かを判定する。テキストボックス７０１がタップ操作された場合、ＣＰＵ１０５はＳ２１７以降の処理を実行し、テキストボックス７０１がタップ操作されていない場合、ＣＰＵ１０５は処理をＳ２１０に戻す。
【００４８】
Ｓ２１６においてテキストボックスがタップ操作されたと判定された場合、ＣＰＵ１０５は、テキストボックス７０１に表示された文字列を編集する編集領域７０４をディスプレイ１１０に表示する（Ｓ２１７）。Ｓ２１７において、ディスプレイ１１０に表示される画面を図６（Ｃ）に示す。編集領域７０４は現在テキストボックスに入力されている文字列を表示する。カーソル７０５は文字列の編集箇所を示すカーソルである。「ＯＫ」７０６はテキストボックスに入力される文字列の編集を完了するボタンである。ユーザは、画像処理装置１００に接続された不図示のキーボード、マウスを用いて文字列を編集する。編集領域７０４とともに、ソフトキーボードをディスプレイ１１０に表示するとしてもよい。ユーザが「ＯＫ」７０６を選択したことに従って、ＣＰＵ１０５は処理をＳ２１８に進める。図６（Ｄ）は、ユーザが図６（Ｃ）の状態から「株式会社」の文字列を削除した状態を示している。
【００４９】
ユーザが「ＯＫ」７０６をタップ操作したことに従って、ＣＰＵ１０５はディスプレイ１１０に表示されるファイル名設定画面を更新する（Ｓ２１８）。図６（Ｄ）において、ユーザが「ＯＫ」７０６をタップ操作した場合、ＣＰＵ１０５はディスプレイ１１０に表示される画面を図６（Ｅ）に示す。図６（Ｅ）に示された画面のテキストボックス７０１には、「注文書＿西取手白山商会」という文字列が表示されている。Ｓ２１０以降の処理は、前述した処理と同様であるため説明を省略する。
【００５０】
以上により、画像処理装置１００は図２に記載の処理を終了する。本実施形態では、Ｓ２０８において、Ｓ２０７で選択された箇所のＯＣＲ処理を行い、Ｓ２１４において、Ｓ２１３で選択されたテキストブロックのＯＣＲ処理を実行するとした。Ｓ２０８でＳ２０７において選択された箇所のＯＣＲ処理を実行し、ファイル名を表示した後、ＣＰＵ１０５が任意のタイミングでＯＣＲ処理を実行していないテキストブロックのＯＣＲ処理を実行するとしてもよい。このようにすることで、Ｓ２１３において、テキストブロックが選択された後に、ＯＣＲ処理を実行しなくとも当該テキストブロックに含まれる文字列を表示することができるようになる。
【００５１】
以上が、本実施形態に記載の画像処理装置がスキャンアシスト処理を実行するときの全体フローの説明である。
【００５２】
次に、図２のＳ２０４におけるマッチング処理について説明する。ここで説明する処理はクエリ文書画像に類似する登録文書画像を選択するための処理の一態様であり、公知の方法や他の方法によりクエリ文書画像と類似する登録文書画像を選択するとしてもよい。
【００５３】
本実施形態において、画像処理装置１００はクエリ文書画像を保存する際のファイル名づけに用いられるルールを特定するために、クエリ文書画像と類似する登録文書画像を記憶部１０７に記憶された複数の登録文書画像から選択する。
【００５４】
本実施形態において、類似度は、文書画像内のテキストボックスの位置や、大きさ等の文書画像の構造が類似していることを意味する値であり、文書画像に含まれる文字列が類似していることは必ずしも必要ではない。帳票のように同じフォーマットを繰り返し使用する場合、文字列の配置される位置等の文書画像の構造が大きく変化することはない。一方で、文書画像に含まれる文字列は文書毎に異なる場合がある。そのため、画像処理装置１００は、文書画像に含まれる文字列の内容が異なる場合であっても、テキストブロックの配置等の文書画像の構造が類似する登録文書画像をクエリ文書画像に類似する文書画像として選択する。
【００５５】
たとえば、クエリ文書画像が図７（Ａ）に示す画像であり、登録文書画像が図７（Ｂ）、（Ｃ）であったとする。領域９０１、９０３、９０５のような帳票上部の領域は、帳票のヘッダ部であり、文書のタイトルや文書の作成者に関する情報、当該文書の宛先など、当該文書を識別するための情報が記載されている。このような帳票上部のヘッダ部に記載されている情報は、ファイル名づけに使用される場合が多い。また、ヘッダ部が類似している帳票は同一のフォーマットを用いて作成された帳票である可能性が高く、同様のファイル名づけルールに則ってファイル名が付けられる可能性が高い。一方、領域９０２や領域９０４は当該文書画像の詳細な内容が記載されている箇所であり、たとえば、注文書であれば、注文する品物の名称や個数、金額等を記載する箇所である。この領域は、記載する内容によって、同じフォーマットを用いて作成された文書であってもテキストブロックの数や配置が変化する領域である。
【００５６】
そこで、本実施形態においては、図７（Ａ）に記載のクエリ文書画像と図７（Ｂ）に記載の登録文書画像は領域９０２、領域９０４の構造が類似していないが、領域９０１、９０３が類似しているため、類似度の高い画像として処理する。一方で、図７（Ａ）に記載のクエリ文書画像と図７（Ｃ）に記載の登録文書画像は領域９０２と領域９０６が互いに類似しているが、ヘッダ部が類似していない。この時、画像処理装置はファイル名付けルールに使用されるテキストブロックが多いと考えられるヘッダ部の類似しない図７（Ａ）と図７（Ｃ）を類似度の低い画像として処理する。
【００５７】
上記に記載したＳ２０４の文書マッチングの処理の詳細について、図８を用いて説明する。図２と同様に、図８に示されるフローチャートによる処理は、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、ＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【００５８】
まず、ＣＰＵ１０５は、ＲＡＭ１０６からクエリ文書画像のブロックセレクション処理の結果を取得する（Ｓ８０１）。ブロックセレクション処理の結果とは、各ブロックの位置、大きさ、属性情報である。各ブロックの位置とは、各ブロックの左上の点の座標であり、大きさとは、各ブロックの縦、横のピクセル数等の情報である。また、各ブロックの属性情報とは、各ブロックがテキストブロックなのか、テーブルブロックなのか等を示す情報である。
【００５９】
続いて、ＣＰＵ１０５は、Ｓ８０１で取得したクエリ文書画像のブロックセレクション処理の結果に対して前処理を実行する（Ｓ８０２）。前処理とは、たとえば、文書画像に含まれるブロックからテキストブロックのみを抽出する処理や、抽出したテキストブロックを文書画像の垂直方向の上から下へのソートする処理である。図１３（Ｂ）は、Ｓ８０２の前処理後のテキストブロックの情報を示すテーブルである。本テーブルはＲＡＭ１０６に記憶される。図１３（Ｂ）に記載のテーブルは、クエリ文書画像に含まれるテキストブロックを上から順に並べたテーブルである。「ブロックＩＤ」「座標（ｘ，ｙ）」「サイズ（ｘ，ｙ）」は図１３（Ａ）と同様である。本実施形態においては、テキストブロックの位置が文書画像の構造を良く表現しているため、また、テキストブロックがファイル名付けに使用される可能性が高いため、全ブロックのうち、テキストブロックのみを抽出する。なお、本実施形態では抽出するブロックをテキストブロックに絞ったが、写真領域や表領域等の他のＢＳ処理結果情報を類似度の算出時に使用することを制限するものではない。また、Ｓ８０２においてＣＰＵ１０５はノイズブロックの除去を行う。ノイズブロックとは、文字列として意味をなしていないと考えられる短い文字列である。これらのテキストブロックは、クエリ文書画像内のノイズをテキストブロックとして認識したブロックである可能性が高いため、ＣＰＵ１０５は上記のテキストブロックを削除する。そして、ＣＰＵ１０５は、ノイズ除去後に残ったテキストブロックを垂直方向へ上から下へソートする。テキストブロックのソートは以降の類似度の算出に用いるために実行する。
【００６０】
ＣＰＵ１０５は、記憶部１０７にクエリ文書画像との類似度を算出していない未処理の登録文書画像があるか否かを判定する（Ｓ８０３）。記憶部１０７に保持されている登録文書画像群の中で類似度算出処理が未処理の登録文書画像があれば、ＣＰＵ１０５は当該登録文書画像をＲＡＭ１０６に読み出し、Ｓ８０４に記載の処理へ進む。Ｓ８０３において、ＲＡＭ１０６に読み出される情報は、各登録文書画像自体ではなく、各登録文書画像のテキストブロックの情報、および、登録文書画像のファイル名付けに用いられてテキストブロックを示す情報である。なお、本実施形態では、登録文書画像を一つずつ読み出して、類似度を算出するとしたが、Ｓ８０１の前にすべての登録文書画像の情報をＲＡＭ１０６に読み出してもよい。Ｓ８０３において、クエリ文書画像との類似度の算出が完了していない登録文書画像がない場合、ＣＰＵ１０５はＳ８０６に後述する処理を実行する。
【００６１】
次に、ＣＰＵ１０５は、クエリ文書画像とＳ８０３で読みだされた登録文書画像間でのシフト量の算出を行う（Ｓ８０４）。シフト量とは、クエリ文書画像と登録文書画像を重ねたときに、両者のテキストブロックの重複する割合が最も大きくなる位置関係を示す値である。この処理の詳細については後述する。
【００６２】
続いて、ＣＰＵ１０５は、クエリ文書画像とＳ８０３で読みだされた登録文書画像の類似度を算出する（Ｓ８０５）。この処理の詳細については後述する。ＣＰＵ１０５はＳ８０５に記載の処理を完了した後、Ｓ８０３に記載の処理に処理を戻す。
【００６３】
全ての登録文書画像について、クエリ文書画像との類似度算出処理が終了したら、ＣＰＵ１０５は、登録文書画像群からクエリ文書画像との類似度が最大となる登録文書画像を選択する（Ｓ８０６）。以上が図２のＳ２０４の詳細フローである。
【００６４】
続いて、図８のＳ８０４においてＣＰＵ１０５が実行するシフト量算出処理の詳細について、図９、図１０を用いて説明する。なお、図９、図１０を用いて説明するシフト量算出方法は、一態様であり、他の手法を用いても構わない。
【００６５】
まず、ＣＰＵ１０５は、クエリ文書画像のテキストブロックの情報をＲＡＭ１０６から取得する（Ｓ１００１）。テキストブロックの情報とは、たとえば、テキストブロックの左上の点の座標や、ブロックの大きさを示す情報であり、図１３（Ｂ）に示される情報である。続いて、ＣＰＵ１０５は、Ｓ８０３で記憶部１０７から取得された登録文書画像のテキストブロックの情報をＲＡＭ１０６から取得する（Ｓ１００２）。Ｓ１００２において取得される情報とは、たとえば、図１３（Ａ）に記載の情報である。
【００６６】
そして、ＣＰＵ１０５は、登録文書画像に含まれるテキストブロックのうち、クエリ文書画像に含まれる各テキストブロックに対応するテキストブロックを選択する（Ｓ１００３）。対応するテキストブロックの算出方法について図１０を用いて説明する。図１０は、クエリ文書画像と登録文書を重ね、その一部を切り出した模式図である。図１０（Ａ）の実線で描かれた１１０１は、クエリ文書画像に含まれるテキストブロックである。図１０（Ａ）の点線で描かれた１１０２、１１０３、１１０４は、登録文書画像に含まれるテキストブロックである。図１０（Ａ）の点線で描かれた１１０５は、テキストブロック１１０１の左上頂点を中心とする所定の半径の円である。即ち、テキストブロック１１０２、１１０３の左上の点の座標は、テキストブロック１１０１の左上の点からの距離が所定の距離より短く、テキストブロック１１０４の左上の点は、テキストブロック１１０１の左上の点から所定の距離よりも離れたところにある。
【００６７】
まず、ＣＰＵ１０５はクエリ文書画像からテキストブロックを一つ選択し、選択されたブロックの左上の点を中心とし、所定の半径の円の内側にブロックの左上の点がある登録文書画像内のテキストブロックを選択する。図１０（Ａ）では、テキストブロック１１０２および１１０３がテキストブロック１１０１から所定の距離より近くにある。次に、登録文書画像のテキストブロック１１０２、１１０３のそれぞれに対して、ＣＰＵ１０５はクエリ文書画像のテキストブロック１１０１とのオーバーラップ率を算出する。オーバーラップ率は、クエリ文書画像中のあるテキストブロックと登録文書画像中のあるテキストブロックがどの程度重複しているかを示す値である。
【００６８】
オーバーラップ率の算出方法について、図１０（Ｂ）を用いて説明をする。まず、ＣＰＵ１０５はクエリ文書画像のテキストブロック１１０６と登録文書画像のテキストブロック１１０７の左上頂点の位置を合わせる。次に、ＣＰＵ１０５は、クエリ文書画像のテキストブロック１１０６と登録文書画像のテキストブロック１１０７の共通部分１１０８の面積を算出する。そして、ＣＰＵ１０５は、クエリ文書画像のテキストブロック１１０２と登録文書画像のテキストブロック１１０２または１１０３のいずれか面積の大きい方に対する、共通部分１１０８の面積の割合をオーバーラップ率として算出する。ＣＰＵ１０５は、クエリ文書画像のテキストブロックに対応する登録文書画像のテキストブロックの全てのブロックに対してオーバーラップ率を算出する。たとえば、図１０（Ａ）で、ＣＰＵ１０５はテキストブロック１１０１とテキストブロック１１０２のオーバーラップ率と、テキストブロック１１０１とテキストブロック１１０３のオーバーラップ率を算出する。
【００６９】
続いて、ＣＰＵ１０５は、クエリ文書画像に含まれるテキストブロックの一つ一つに対して最大のオーバーラップ率を取得する。たとえば、図１０（Ａ）では、テキストブロック１１０１とテキストブロック１１０２のオーバーラップ率と、テキストブロック１１０１とテキストブロック１１０３のオーバーラップ率から最大のオーバーラップ率を選択する。そして、ＣＰＵ１０５は最大オーバーラップ率に１未満の所定の係数αを掛けた値を算出する。αは、クエリ文書画像中のあるテキストブロックに対応する登録文書画像中のテキストブロックを選択するための閾値の決定に用いられる係数である。ＣＰＵ１０５は、算出された値よりも大きなオーバーラップ率となる登録文書画像のテキストブロックを、クエリ文書画像のテキストブロックに対応するテキストブロックとして選択する。以降、上記の処理で求められたクエリ文書画像中のテキストブロックと登録文書画像中のテキストブロックの対応を対応点ペアと呼ぶ。たとえば、図１０（Ａ）において、テキストブロック１１０１とテキストブロック１１０２のオーバーラップ率と、テキストブロック１１０１とテキストブロック１１０３のオーバーラップ率がどちらも閾値を超えているとする。この時、対応点ペアはテキストブロック１１０１とテキストブロック１１０２、とテキストブロック１１０１とテキストブロック１１０３の２組となる。
【００７０】
本実施形態では、クエリ文書画像中のあるテキストブロックに対する最大オーバーラップ率に係数αを掛けた値を閾値として用いた。予め決められたオーバーラップ率を閾値とし、ＣＰＵ１０５がその閾値よりもオーバーラップ率の高いテキストブロックを点対応ペアとなるテキストブロックとして選択してもよい。
【００７１】
続いて、ＣＰＵ１０５は、Ｓ１００３で算出した対応点ペアのうち、Ｓ１００５、Ｓ１００６に記載の処理を実行していない未処理の対応点ペアがあるか否かを判断する（Ｓ１００４）。未処理の対応点ペアがある場合、ＣＰＵ１０５はＳ１００５に記載の処理を実行し、未処理の対応点ペアがない場合、ＣＰＵ１０５はＳ１００７に進む。ＣＰＵ１０５はＳ１００５、Ｓ１００６に記載の処理を実行し、クエリ文書画像のテキストボックスと登録文書画像のテキストボックスを重ねたときの位置がどの程度ずれているかの分布を算出する。
【００７２】
ＣＰＵ１０５はＳ１００３で算出された対応点ペアから一つの対応点ペアを選択し、相関値を算出する（Ｓ１００５）。まず、ＣＰＵ１０５は、選択した対応点ペアに含まれるクエリ文書画像のテキストブロックに対応づけられた、登録文書画像のテキストブロックの数に応じて相関値に重みを付ける。さらに、ＣＰＵ１０５は、対応点ペアに含まれる登録文書画像のテキストブロックに対応づけられた、クエリ文書画像のテキストブロックの数に応じて相関値に重みを付ける。対応するテキストブロックの数に基づく相関値の重みづけ係数は、たとえば図１１（Ａ）の図のようなテーブルで規定される。当該テーブルは予め記憶部１０７に記憶されている。当該テーブルの横軸は、処理中のクエリ文書画像のテキストブロックが登録文書画像内のいくつのテキストブロックと対応づけられているかを示している。また、テーブルの縦軸は、処理中の登録文書画像のテキストブロックがクエリ文書画像中のいくつのテキストブロックに対応づけられているかを示している。図１１（Ａ）では、クエリ文書画像中のテキストブロックと登録文書画像中のテキストブロックの対応が１対１に近づくほど相関値に対する重みづけが高くなるように設定されている。
【００７３】
本実施形態では、テーブルを用いて重みづけを行うが、計算式にもとづいて、相関値に対する重みづけを行ってもよい。たとえば、クエリ文書画像のテキストブロックに対応する登録文書画像中のテキストブロックの数をＮとし、登録文書画像のテキストブロックに対応するクエリ文書画像中のテキストブロックの数がＭとする。この場合に、例えば、ＣＰＵ１０５が（１／Ｎ＋１／Ｍ）／２で算出する値を相関値の重みとして用いてもよい。
【００７４】
また、Ｓ１００５において、処理の対象となるクエリ文書画像中のテキストブロックのＹ座標に応じて相関値に重みをつけてもよい。先に説明したように、同じフォーマットを使用した場合、クエリ文書画像と登録文書画像の上部の構造が類似する可能性が高い。そこで、画像処理装置はクエリ文書画像のうち、上の方にあるテキストブロックほど重みを重くし、下の方にあるブロックほど重みを軽くする。テキストブロックの位置に応じた重みの例を、図１１（Ｂ）に示す。図１１（Ｂ）の横軸は、画像高さを１に正規化した際のＹ座標位置である。図１１（Ｂ）では、正規化後のＹ座標の値が小さいほど、クエリ文書画像の上部であることを示し、Ｙ座標が１に近づくほどクエリ文書画像の下部であることを示す。縦軸はＹ座標に応じた重みである。この図においては、画像の最上部で最も重みが大きくなり、画像中央まで重みが減少していき、画像下半分は重みが０になっている。
【００７５】
なお、重みづけは上記の両方の方法を用いて行ってもよく、また、片方の方法のみを用いて行ってもよい。複数の方法で相関値に重みを付ける場合には、画像処理装置が複数の重みを乗算または加算して用いる。
【００７６】
続いて、ＣＰＵ１０５は、Ｘ方向とＹ方向のそれぞれについてシフト量の相関値を投票して、ヒストグラムを生成する（Ｓ１００６）。Ｓ１００６において、ＣＰＵ１０５は、対応点ペアとなっているテキストボックスの左上頂点のＸ方向の差分量（シフト量）と、Ｙ方向の差分量（シフト量）を算出する。そして、ＣＰＵ１０５は算出したシフト量に対応するビンに、Ｓ１００５で求めた重みを用いて算出された相関値の分だけ投票をする。ヒストグラムのビンの幅は予め決められた任意の幅でよい。
【００７７】
Ｓ１００５とＳ１００６をすべての対応点ペアに対して実行することにより、Ｘ方向およびＹ方向のシフト量のヒストグラムが生成される。以上の処理により、たとえば、図１１（Ｃ）のようなヒストグラムが生成される。生成されたヒストグラムに対して、ノイズの影響を軽減するため、スムージングを掛けてもよい。
【００７８】
すべての対応点ペアに対してＳ１００５、Ｓ１００６に記載の処理完了し、ヒストグラムが生成された後に、ＣＰＵ１０５はＳ１００７の処理を実行する。ＣＰＵ１０５は、ＸおよびＹ方向のヒストグラムを分析し、ＸとＹそれぞれの方向についてクエリ文書画像と登録部文書画像間のシフト量候補を算出する（Ｓ１００７）。
【００７９】
シフト量算出方法について、図１１（Ｃ）を用いて説明を行う。図１１（Ｃ）はＳ１００７で生成されるシフト量のヒストグラムの例である。グラフの横軸はシフト量を示しており、縦軸は相関値（ヒスグラムの度数）を示している。ＣＰＵ１０５は、ヒストグラムの相関値が所定の値よりも大きなシフト量をシフト量の候補として選択する。所定の閾値とは、固定の閾値であってもよく、また、ヒストグラムのなかで最も高い相関値に１以下の所定の係数をかけた値などであってもよい。図１１（Ｃ）では、ヒストグラムのピークが１点であり、候補となるシフト量は一つである。候補となるシフト量が複数あってもよい。このような処理をＸ方向とＹ方向のそれぞれに適用することにより、ＸおよびＹ方向のシフト量候補を算出する。
【００８０】
最後に、Ｓ１００８において、ＣＰＵ１０５は、ＸおよびＹ方向シフト量候補を組み合わせ、シフト量候補とする。例えば、Ｘ方向のシフト量候補として、ｘＳｈｉｆｔ１，ｘＳｈｉｆｔ２の２種類があり、Ｙ方向のシフト量候補として、ｙＳｈｉｆｔ１，ｙＳｈｉｆｔ２，ｙＳｈｉｆｔ３の３種類があるとする。この際、シフト量候補には２×３の６種類のシフト量候補が選択される。なお、これ以外の方法でシフト量候補を求めてもよい。
【００８１】
以上のフローにより、クエリ文書画像と登録文書画像間のシフト量候補が算出される。
【００８２】
続いて、図８のＳ８０５でＣＰＵ１０５が実行する類似度算出処理ついて、図１２を用いて説明をする。図２と同様に、図１２に示されるフローチャートによる処理は、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、ＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【００８３】
まず、ＣＰＵ１０５は、Ｓ１００８で算出されたシフト量候補をＲＡＭ１０６より取得する（Ｓ１３０１）。
【００８４】
続いて、ＣＰＵ１０５は、Ｓ１３０１でＲＡＭ１０６から読み出したシフト量候補のうち、類似度を算出していない未処理のシフト量候補があるか否かを判定する（Ｓ１３０２）。画像処理装置が全てのシフト量候補に対して、類似度の算出を行った場合、ＣＰＵ１０５はＳ１３０５に処理を進める。類似度を算出していないシフト量候補がある場合、ＣＰＵ１０５はＳ１３０３に処理を進める。
【００８５】
Ｓ１３０３において、ＣＰＵ１０５は、類似度を算出していないシフト量候補からシフト量候補を１組選択し、選択したシフト量の組にあわせてクエリ文書画像と登録文書画像の位置合わせを行う。具体的には、ＣＰＵ１０５がクエリ文書画像に含まれるテキストブロックの座標位置をシフト量候補にもとづいて一律、平行移動処理する。
【００８６】
次に、ＣＰＵ１０５は、位置合わせ後のクエリ文書画像と、登録文書画像を比較して類似度Ｓを算出する（Ｓ１３０４）。Ｓ１３０４においてＣＰＵ１０５が行う類似度Ｓの算出方法は図１４を用いて後述する。
【００８７】
すべてのシフト量候補について類似度が算出された後、ＣＰＵ１０５は、類似度を算出したシフト量候補の組のうち、最も類似度が高いシフト量の組を選択し、当該シフト量を用いた場合の類似度をＲＡＭ１０６に記憶する（Ｓ１３０５）。そして、ＣＰＵ１０５はＳ１３０５で選択されたシフト量でクエリ文書画像と登録文書画像を重ねた場合のテキストブロックの対応を示す情報を生成してＲＡＭ１０６に記憶する（Ｓ１３０６）。Ｓ１３０６において、生成されるクエリ文書画像に含まれるテキストブロックと登録文書画像に含まれるテキストブロックの対応を示す情報とは、図１３（Ｃ）に記載のテーブル等で示される情報である。図１３（Ｃ）に記載のテーブルは、クエリ文書画像に含まれるテキストブロックのＩＤと、登録文書画像中のテキストブロックのＩＤを対応づけて記憶する。ここで、クエリ文書画像のテキストブロックと対応づけられるテキストブロックとは、図１４のＳ１４０４で後述する処理により対応づけられたブロックのことである。
【００８８】
以上のフローにより、画像処理装置はクエリ文書画像と登録文書画像の位置合わせを行い、類似度を算出する。続いて、Ｓ１３０４における類似度Ｓ算出処理の詳細について、図１４を用いて説明する。図２と同様に、図１４に示されるフローチャートによる処理は、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、ＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【００８９】
まず、ＣＰＵ１０５は、クエリ文書画像と登録文書画像の類似度を算出するための初期化処理を行う（Ｓ１４０１）。初期化処理において、ＣＰＵ１０５は類似度Ｓを０に設定し、図１２のＳ１３０３で位置合わせをした後のクエリ文書画像に含まれるテキストブロックと登録文書画像に含まれるテキストブロックの情報をＲＡＭ１０６から取得する。Ｓ１４０１において取得される情報は、図１３（Ａ）、（Ｂ）、（Ｃ）で示されるテーブルに記憶された情報である。
【００９０】
続いて、ＣＰＵ１０５はＳ１４０３〜Ｓ１４０６で記載の処理を実行していない未処理のテキストブロックがクエリ文書画像にあるか否かを判定する（Ｓ１４０２）。未処理のテキストブロックが存在した場合、ＣＰＵ１０５は処理をＳ１４０３に進める。クエリ文書画像に含まれる全てのテキストブロックの処理が終了した場合、ＣＰＵ１０５は処理をＳ１４０７に進める。
【００９１】
処理が完了していないテキストブロックがある場合、ＣＰＵ１０５は、未処理のテキストブロックから処理するテキストブロックを一つ選択する（Ｓ１４０３）。本実施形態においては、クエリ文書画像に含まれる未処理のテキストブロックを上から順に処理する。
【００９２】
続いて、ＣＰＵ１０５は、Ｓ１４０３で選択されたテキストブロックに対応する登録文書画像中のテキストブロックを選択する（Ｓ１４０４）。Ｓ１３０３において、選択されたテキストブロックに対応する登録文書画像中のテキストブロックとは、Ｓ１３０３の位置合わせ後の画像データにおいて、重複するテキストブロックのことである。クエリ文書画像中の一つのテキストブロックに対して、対応する登録文書画像のテキストブロックは複数あってもよい。たとえば、図１５（Ａ）のように、クエリ文書画像中のテキストブロック１５０１に登録文書画像中のテキストブロック１５０２が重なる場合、テキストブロック１５０１とテキストブロック１５０２が対応づけられる。図１５（Ｂ）のように、クエリ文書画像中のテキストブロック１５０４に対して、登録文書画像中のテキストブロック１５０５と１５０６が重なるとする。このとき、テキストブロック１５０４に対して、テキストブロック１５０５とテキストブロック１５０６が対応づけられる。
【００９３】
次に、ＣＰＵ１０５は、Ｓ１４０３で選択されたクエリ文書画像のテキストブロックと、対応する登録文書画像のテキストブロックの重なる領域の面積（共通面積）を計算し、オーバーラップ率を算出する（Ｓ１４０５）。Ｓ１４０５においてオーバーラップ率は、ＣＰＵ１０５はクエリ文書画像中のテキストブロックと登録文書画像中のテキストブロックのうち面積の大きい方のテキストブロックに対する共通面積の割合である。Ｓ１４０５におけるオーバーラップ率の算出方法はＳ１００３と同様である。しかし、Ｓ１４０５においては、クエリ文書画像と登録文書画像の位置合わせが完了しているため、ＣＰＵ１０５はＳ１００３における、テキストブロックの左上頂点を合わせる処理を行わない。
【００９４】
計算例について、図１５を用いて説明を行う。図１５（Ａ）はクエリ文書画像のテキストブロック１５０１と登録文書画像のテキストブロック１５０２が重なりあっており、共通面積は領域１５０３の面積となる。そこで、図１５（Ａ）におけるオーバーラップ率はテキストブロック１５０１または、テキストブロック１５０２のうち面積が大きい方に対する領域１５０３の割合である。
【００９５】
図１５（Ｂ）はテキストブロック１５０４とテキストブロック１５０５および１５０６が重なりあっており、共通面積は領域１５０７と領域１５０８の面積を足し合わせたものである。したがって、図１５（Ｂ）におけるオーバーラップ率は、テキストブロック１５０４、１５０５、１５０６のうち、最も面積の大きいブロックに対する、領域１５０７と領域１５０８を足した面積の割合となる。
【００９６】
そして、ＣＰＵ１０５は、類似度計算を開始するための条件を満たしているか否かを判定する（Ｓ１４０６）。条件を満たしていなかった場合、ＣＰＵ１０５は処理をＳ１４０２に戻す。類似度計算を開始するための条件を満たしている場合、ＣＰＵ１０５はＳ１４０７に処理を進める。類似度計算を開始するための条件とは、たとえば、以下の１〜３のような条件である。１．オーバーラップ率が算出されたクリエ文書画像中のテキストブロックの数が所定数に達したか。２．クエリ文書画像上部から所定の距離離れた箇所にあるテキストブロックまでオーバーラップ率が算出されたか。３．一番上部のテキストブロックから所定の距離離れたテキストブロックまでオーバーラップ率が算出されたか。類似度の計算を開始するための条件は、上記３つの条件のいずれか一つでもよく、複数であってもよい。
【００９７】
オーバーラップ率の算出されたテキストブロックの数が少ない場合、類似度を算出しても、類似度の信頼性が十分でない可能性がある。そこで、オーバーラップ率を算出したテキストブロックが上記のような条件を満たす場合、類似度の算出を行うとする。もちろん、クエリ文書画像に含まれる全てのテキストブロックに対してオーバーラップ率を算出した後に、ＣＰＵ１０５が類似度の算出を行うとしてもよい。また、上記条件を満たさない場合であっても、クエリ文書画像中のすべてのテキストブロックのオーバーラップ率の算出が完了した場合、画像処理装置１００は類似度の算出を行う。
【００９８】
ＣＰＵ１０５は、類似度Ｓを算出する（Ｓ１４０７）。類似度Ｓの計算方法は、種々の公知の手法が考えられるが、本実施例では下記の式で求める。
類似度Ｓ＝Ｏｖｅｒｌａｐ／ＴｏｔａｌＡｒｅａ
Ｏｖｅｒｌａｐ＝オーバーラップ率の算出に用いられた共通面積の和
ＴｏｔａｌＡｒｅａ＝ＱｕｅｒｙＡｒｅａとＲｅｇｉｓｔＡｒｅａのいずれか大きい方
ＱｕｅｒｙＡｒｅａ＝オーバーラップ率の算出に用いられたクエリ文書画像中のテキストブロックの総面積
ＲｅｇｉｓｔＡｒｅａ＝オーバーラップ率の算出に用いられた登録文書画像中のテキストブロックの総面積
【００９９】
図１５の例において、テキストブロック１５０１と１５０４が同一のクエリ文書画像に含まれるテキストブロックであり、２つのテキストブロックともにオーバーラップ率の算出が完了しているとする。この時、Ｏｖｅｒｌａｐは領域１５０３、領域１５０７、領域１５０８の面積を足し合わせたものとなる。ＱｕｅｒｙＡｒｅａは、テキストブロック１５０１とテキストブロック１５０４の面積を足し合わせたものとなる。そして、ＲｅｇｉｓｔＡｒｅａは、登録文書画像のテキストブロック１５０２、登録文書画像のテキストブロック１５０５、登録文書画像のテキストブロック１５０６を足し合わせたものとなる。ＱｕｅｒｙＡｒｅａ＞ＲｅｇｉｓｔＡｒｅａであるため、ＴｏｔａｌＡｒｅａはＱｕｅｒｙＡｒｅａと同一となる。
【０１００】
以上のフローにより、ＣＰＵ１０５は類似度Ｓを算出する。なお、本実施例において、類似度計算にＢＳテキストブロックを利用しているが、他の類似度計算手法を利用しても構わない。
【０１０１】
以上が画像処理装置１００におけるスキャンアシスト処理を実行するための処理である。本実施形態では、画像処理装置が原稿をスキャンすることで得られた画像データからテキストブロックを抽出する。そして、画像処理装置が、抽出したテキストブロックのうち、スキャンアシスト処理に用いるテキストブロックを選択する。画像処理装置は、選択されたテキストブロックに対して文字認識処理を実行し、文字認識結果を表示部に表示する。上記のように、本実施形態に記載の画像処理装置は画像データ全体に対していではなく、選択された箇所にのみ、文字認識処理を実行し、その結果を表示部に表示する。このようにすることで、画像処理装置は表示に不要な領域の文字認識処理を行わずにすむ。結果、画像処理装置が文書画像全体に対して文字認識処理を実行してから、文字認識処理の結果を表示部に表示するよりも、短い時間で、スキャンアシストシステムに必要な箇所の文字認識処理の結果をユーザに見せることができる。
【０１０２】
［実施形態２］
実施形態１では、クエリ文書画像中のファイル名表示に必要なテキストブロックのＯＣＲ処理が完了したことに従って、ファイル名表示を実行することでファイル名が表示されるまでにかかる時間を短縮した。
【０１０３】
あるフォーマットの原稿をスキャナで読み取る場合、同じフォーマットの原稿を連続して読み取ることがある。このとき、各原稿を読み取ることで生成された画像のファイル名に使用されるテキストブロックは、一つ前の画像データでファイル名づけに使用された領域と同じ領域となる。そこで、実施形態２では、スキャンして得られた画像からテキストブロックを抽出する領域を一つ前のスキャンで得られた画像のファイル名付けに用いられた領域に限定することで、ファイル名の表示までにかかる時間を短くする。
【０１０４】
以下、本発明の実施形態２について、前述の実施形態１と異なる部分について説明する。実施形態１との差分は、図２のフローチャートであるため、図２のフローチャートの代わりに、図１６のフローチャートを参照して説明する。
【０１０５】
図１６は、画像処理装置１００における新しくスキャンされた文書画像に対する処理の全体を示すフローチャートである。図１６のフローは、ユーザがユーザインターフェース１０４で、ユーザから文書画像のスキャン指示を受け付けることにより起動する。図２に示されるフローチャートによる処理は、記憶部１０７に記憶されたプログラムコードがＲＡＭ１０６に展開され、ＣＰＵ１０５によって装置制御部１０２が制御されることにより実行される。
【０１０６】
図１６のＳ２０１およびＳ２０２は、図２と同一であるため、説明を省略する。
【０１０７】
続いて、ＣＰＵ１０５は、クエリ文書画像に対して、部分的にブロックセレクション処理を実行する（Ｓ１９０１）。ブロックセレクション処理は、図２のステップＳ２０３と同一であるが、ここでは、本実施形態ではクエリ文書画像全体に対してではなく、クエリ文書画像に部分的にブロックセレクション処理を実行する。
【０１０８】
ブロックセレクション処理を実行する領域を設定する方法について図１７を用いて説明を行う。はじめに、図１７（Ａ）のようなクエリ文書画像がスキャンされ、クエリ文書画像中のテキストブロック２００１、２００２、２００３がファイル名づけに使用されたとする。このとき、画像処理装置１００は、クエリ文書画像とファイル名に使用されたテキストブロックの情報をＲＡＭ１０６に記憶する。
【０１０９】
続いて、原稿を読み取り生成されたクエリ文書画像が図１７（Ｂ）であったとする。このとき、図１７（Ａ）のクエリ文書画像に含まれるテキストブロックのうち、ファイル名付けに使用されたテキストブロックと対応するテキストブロックが含まれる領域２００４がブロックセレクション処理の対象として選択される。
【０１１０】
また、別の例として、はじめに原稿をスキャンして得られたクエリ文書画像が図１７（Ｃ）であったとする。図１７（Ｃ）のクエリ文書画像に含まれるテキストブロック２００１、２００２、２００５がファイル名付けに使用されたとする。このとき、上記の３つのテキストブロックをすべて含むような領域をブロックセレクションの対象となる領域とすると、クエリ文書画像の全体が対象の領域とされてしまう。そこで、クエリ文書画像が図１７（Ｃ）に示す画像のような場合には、ブロックセレクションの対象となる領域を複数選択する。例えば、図１７（Ｃ）に記載のクエリ文書画像の次にスキャンされた原稿のクエリ文書画像が図１７（Ｄ）であったとする。このとき、画像処理装置１００は領域２００６と領域２００７をブロックセレクションの対象とする。ブロックセレクションの対象となる領域を一つにするか分割するかは、ファイル名付けに使用されたテキストブロックの位置等によって設定されるとする。たとえば、ファイル名付けに使用されたテキストブロック同士の距離が所定の距離よりも離れている場合、画像処理装置はブロックセレクションの対象となる領域を分割する。
【０１１１】
領域２００４、領域２００６、領域２００７は、スキャン時の位置づれに対応できるよう、ファイル名付けに使用されたテキストブロックを含む矩形領域に予め決められたマージンを付加した領域である。また、画像処理装置１００は、最低限の数のＢＳテキストブロックが含まれるように領域を設定する。
【０１１２】
上記のように、ブロックセレクション領域を限定することにより、ブロックセレクション処理に係る時間を短くすることができる。
【０１１３】
続いて、ＣＰＵ１０５は、部分的にブロックセレクション処理を実行したクエリ文書画像と一つ前にスキャンしてファイル名が付けられた文書画像のマッチング処理を実行し、類似度を算出する（Ｓ１９０２）。
【０１１４】
Ｓ１９０２におけるマッチング処理は、図２のＳ２０４で実行されるマッチング処理と同一である。ただし、Ｓ１９０２においては、１つ前の文書画像に対してのみマッチング処理を実行する。複数の文書画像とのマッチング処理を行わないようにすることで、マッチングする文書画像を選択するまでにかかる時間を短くすることができる。
【０１１５】
ＣＰＵ１０５は、Ｓ１９０２または、後述するＳ２０４で選択された文書画像との類似度が所定の閾値以上であるか否かを判定する（Ｓ２０５）。
【０１１６】
クエリ文書画像が選択された文書画像との類似度が所定の閾値以上の場合、ＣＰＵ１０５はＳ２０６以降の処理を実行する。Ｓ２０６以降の処理は実施形態１と同様であるため、説明を省略する。
【０１１７】
Ｓ２０５でクエリ文書画像と選択された文書画像の類似度が所定の閾値未満の場合、ＣＰＵ１０５は、クエリ文書画像にブロックセレクションされていない領域があるかを判定する（Ｓ１９０３）。ブロックセレクション処理が完了していない領域がある場合、ＣＰＵ１０５はＳ１９０４に処理を進める。ブロックセレクション処理が完了していない領域がない場合、クエリ文書画像全体に対するブロックセレクション処理が完了しているため、ＣＰＵ１０５はＳ２０９に処理を進める。Ｓ２０９以降の処理は実施形態１と同様であるため、説明を省略する。
【０１１８】
Ｓ１９０４において、ＣＰＵ１０５は、ブロックセレクション処理がなされていない領域に対するブロックセレクション処理を実行する。Ｓ１９０４を実行することで、クエリ文書画像全体にブロックセレクション処理が実行されたこととなる。その後、ＣＰＵ１０５は処理をＳ２０４に進める。Ｓ２０４に記載の処理は実施形態１と同様であるため、説明を省略する。
【０１１９】
なお、本実施形態では、ＣＰＵ１０５は、まず部分的にブロックセレクション処理を実行し、クエリ文書画像が一つ前の文書画像と異なる場合、残りの領域についてブロックセレクション処理を実行する。ＣＰＵ１０５がある条件式に基づいて、部分的にブロックセレクション処理を実行するか否かを判定するとしてもよい。
【０１２０】
たとえば、文書画像全体に対してブロックセレクション処理をして、類似する登録文書画像を選択するまでにかかる時間を予めＡと規定する。文書画像の一部に対してブロックセレクションをし、一つ前の文書画像と類似するか否かを判定する処理に係る時間をＢと規定する。そしてスキャンした原稿が、一つ前にスキャンした原稿と同じフォーマットである確率を変数Ｐであらわす。変数Ｐの初期値は予め決めた値であるとする。同じフォーマットの原稿が連続して読み込まれる度に、ＣＰＵ１０５は変数Ｐの値を大きくする。そして、ＣＰＵ１０５は図１６のＳ２０２に記載の処理を完了後、Ａ＞（Ａ＋Ｂ）＊（１−Ｐ）＋Ｂ＊Ｐが成り立つか否かを判定する。上記の関係が成り立つ場合、ＣＰＵ１０５はクエリ文書画像の一部分に対するブロックセレクション処理を実行し、上記の関係が成り立たない場合、ＣＰＵ１０５はクエリ文書画像全体にブロックセレクション処理を実行する。このようにすることで、同じフォーマットが連続して読み込まれる場合、変数Ｐの値が大きくなるため、ＣＰＵ１０５が部分的にブロックセレクション処理を実行する。一方、スキャンの度に異なるフォーマットの原稿が読み取られる場合、変数Ｐの値が小さくなり、ＣＰＵ１０５は部分的なブロックセレクション処理を行うことなく、文書画像全体のブロックセレクション処理を実行する。
【０１２１】
また、本実施形態のＳ２０６〜Ｓ２０７において、ＣＰＵ１０５はマッチングした文書画像からファイル名付けに使用されたテキストブロックを選択する。そして、ＣＰＵ１０５は選択されたテキストブロックに対応するクエリ文書画像中のテキストブロックのＯＣＲ処理を実行した。同じフォーマットの原稿を読み取る場合、対応するテキストブロックに含まれる文字列が同じになる可能性がある。そこで、対応するテキストブロックのＯＣＲ処理の結果が一致する確率が所定閾値以上となる場合、ＣＰＵ１０５はＯＣＲ処理で得られた文字列をテキスト化し、テキストブロックに対応づけて記憶する。そして、次に、同じフォーマットの原稿をスキャンした場合、ＣＰＵ１０５はテキスト化された文字列と対応づけられたテキストブロックに対してＯＣＲ処理を実行せず、テキスト化された文字列を表示する。このようにすることで、選択されたテキストブロックのＯＣＲ処理に係る時間を短くすることができる。
【０１２２】
以上説明したとおり、本実施形態における一連のフローにより、画像処理装置１００はクエリ文書画像の一部のみテキストブロック処理をし、一つ前のクエリ文書画像との類似度を計算する。このようにすることで、同じフォーマットの原稿を連続してスキャンする場合に、スキャンにより生成された画像データのファイル名をディスプレイに表示されるまでにかかる時間を短くすることができる。
【０１２３】
［その他の実施形態］
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。
【０１２４】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2019149788.tif 000003
【図２】
2019149788.tif 000004
【図３】
2019149788.tif 000005
【図４】
2019149788.tif 000006
【図５】
2019149788.tif 000007
【図６】
2019149788.tif 000008
【図７】
2019149788.tif 000009
【図８】
2019149788.tif 000010
【図９】
2019149788.tif 000011
【図１０】
2019149788.tif 000012
【図１１】
2019149788.tif 000013
【図１２】
2019149788.tif 000014
【図１３】
2019149788.tif 000015
【図１４】
2019149788.tif 000016
【図１５】
2019149788.tif 000017
【図１６】
2019149788.tif 000018
【図１７】
2019149788.tif 000019