(57)【要約】【課題】フォーマットが未知の画像から、効率よく高速に文字認識処理による情報の抽出を行う情報処理装置を提供する。【解決手段】情報処理装置２００は、画像を領域解析することにより領域を抽出し、特定のキーワードと当該キーワードに対応するバリューとを抽出するためのルールを取得し、ルールを用いてキーワードを含む領域および当該キーワードに対応するバリューを含む領域を特定する順番を、当該ルールに含まれる前記キーワードと当該キーワードに対応するバリューとが取り得る値に応じて決定し、決定された順番に従い、キーワードを含む領域または当該キーワードに対応するバリューを含む領域を抽出された領域の中から特定し、特定された領域に対して文字認識処理を行う。その後、決定された順番に従い、先に特定した領域に基づいて、対応するもう一方の領域を特定する。【選択図】図６
2018128996.tif 000002
【特許請求の範囲】
【請求項１】
画像に対して領域解析処理を実行することにより領域を抽出する抽出手段と、
特定のキーワードと当該キーワードに対応するバリューとを抽出するためのルールを取得する取得手段と、
前記ルールを用いて前記キーワードを含む領域および当該キーワードに対応するバリューを含む領域を特定する順番を、当該ルールに含まれる前記キーワードと当該キーワードに対応するバリューとが取り得る値に応じて決定する決定手段と、
前記決定された順番に従い、前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域を前記抽出された領域の中から特定する特定手段と、
前記特定された領域に対して文字認識処理を行う文字認識手段と、を備え、
前記特定手段は、前記決定された順番に従い、先に特定した領域に基づいて、対応するもう一方の領域を特定する、
ことを特徴とする情報処理装置。
【請求項２】
前記ルールが、前記キーワードに対応するバリューが固定長の文字列であることを含む場合、前記決定手段は、前記抽出された領域の中から、前記キーワードを含む領域を特定するよりも先に当該キーワードに対応するバリューを含む領域を特定することを決定する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ルールが、前記キーワードに対応するバリューが特定の字種であることを含む場合、前記決定手段は、前記抽出された領域の中から、前記キーワードを含む領域を特定するよりも先に当該キーワードに対応するバリューを含む領域を特定することを決定する、
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記ルールが、前記キーワードに対応するバリューが特定の字種であることを含む場合、前記文字認識手段は、当該特定の字種に限定した文字認識処理を行う、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記特定手段は、前記キーワードと当該キーワードに対応するバリューとが取り得る値に応じて、前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域のサイズを推定し、前記抽出された領域の中から当該サイズを有する領域を、前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域として決定する、
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記決定手段は、前記ルールが複数ある場合、ルールを用いる順番を、各ルールに含まれる前記キーワードと当該キーワードに対応するバリューとが取り得る値に応じて決定する、
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記特定手段は、前記ルールが複数ある場合、１つのルールを用いて前記キーワードを含む領域および当該キーワードに対応するバリューを含む領域を前記抽出された領域の中から特定する際に、既に他のルールを用いて前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域であると特定された領域は、前記抽出された領域の中から除外する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記ルールは、前記キーワードを含む領域と当該キーワードに対応するバリューを含む領域との配置に関する情報を含み、
前記特定手段は、前記決定された順番に従い、前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域のうち先に特定した領域と、前記配置に関する情報とを用いて、前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域のうち後で特定する領域を特定する、
ことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
コンピュータを請求項１乃至８のいずれか１項に記載の情報処理装置として機能させることを特徴とするプログラム。
【請求項１０】
画像に対して領域解析処理を実行することにより領域を抽出する工程と、
特定のキーワードと当該キーワードに対応するバリューとを抽出するためのルールを取得する工程と、
前記ルールを用いて前記キーワードを含む領域および当該キーワードに対応するバリューを含む領域を特定する順番を、前記キーワードと当該キーワードに対応するバリューとが取り得る値に応じて決定する工程と、
前記決定された順番に従い、前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域を前記抽出された領域の中から特定する工程と、
前記特定された領域に対して文字認識処理を行う工程と、を有し、
前記特定する工程では、前記決定された順番に従い、先に特定された領域が前記キーワードを含む領域の場合、当該キーワードに対応するバリューを含む領域を、前記キーワードを含む領域に基づきさらに特定し、
前記先に特定された領域が前記キーワードに対応するバリューを含む領域の場合、前記キーワードを含む領域を、前記キーワードに対応するバリューを含む領域に基づきさらに特定する、
ことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
スキャンされた帳票画像に対して、画像中に含まれる名前や合計金額などの情報が記載されている領域を特定し、特定した領域に対して文字認識処理を実行することで情報を抽出するシステムがある。当該システムは、名前や合計金額などの抽出したい情報が記載されている領域の位置が固定の帳票を処理する場合、画像における座標をもとに文字認識処理を実行する領域を決定する。しかし、名前や合計金額などの抽出したい情報が記載されている領域の位置が固定でない非定型の帳票（フォーマットが未知の帳票）を処理する場合、上述の方法では情報を抽出することができない。
【０００３】
特許文献１は、帳票の表領域において、最上段、最下段、最左列に位置する文字列のみを項目名領域検出処理の対象とする帳票認識装置を開示している。また、特許文献２は、英数字を中心とする特定文字のみを認識する特定文字認識処理と、該特定文字認識処理の結果、再認識を要すると判別した再認識対象に対して、全ての文字を認識する全文字認識処理とを実行する文字認識装置を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９３３０５号公報
【特許文献２】特開２０１０−２１７９９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、罫線で囲まれた表領域を項目名領域検出処理の対象としており、表以外の領域や、文字列を含む枠の縦または横方向の整列性がない領域には適用できない。特許文献２では、特定文字認識処理は、画像全体に対して行われ、さらに特定文字認識処理の結果、再認識を要すると判別された対象に対しては、二度の文字認識処理を実行する必要があるため、処理に時間がかかってしまう。
【０００６】
本発明は、どの位置にどのような情報が記載されているかのフォーマットが未知の画像から、効率よく高速に文字認識処理による情報の抽出を行う情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一実施形態の情報処理装置は、画像に対して領域解析処理を実行することにより領域を抽出する抽出手段と、特定のキーワードと当該キーワードに対応するバリューとを抽出するためのルールを取得する取得手段と、前記ルールを用いて前記キーワードを含む領域および当該キーワードに対応するバリューを含む領域を特定する順番を、当該ルールに含まれる前記キーワードと当該キーワードに対応するバリューとが取り得る値に応じて決定する決定手段と、前記決定された順番に従い、前記キーワードを含む領域または当該キーワードに対応するバリューを含む領域を前記抽出された領域の中から特定する特定手段と、前記特定された領域に対して文字認識処理を行う文字認識手段と、を備え、前記特定手段は、前記決定された順番に従い、先に特定した領域に基づいて、対応するもう一方の領域を特定する。
【発明の効果】
【０００８】
本発明の情報処理装置によれば、フォーマットが未知の画像から効率よく高速に文字認識処理による情報の抽出を可能とする。
【図面の簡単な説明】
【０００９】
【図１】複写機の構成を示す図である。
【図２】情報処理装置の構成を示す図である。
【図３】スキャン画像の一例を示す図である。
【図４】キーワードとバリューの条件を入力する画面の一例を示す図である。
【図５】ルールテーブルのデータ構造を示す図である。
【図６】スキャン画像から情報を抽出する処理を示すフローチャートである。
【図７】領域解析処理を行った結果の一例を示す図である。
【図８】領域情報テーブルデータ構造を示す図である。
【図９】情報を抽出する領域を推定する順番を決定する処理を示す図である。
【図１０】図９の処理が終了した時点でのルールテーブルを示す図である。
【図１１】文字認識処理の結果を保存した状態の領域情報テーブルを示す図である。
【図１２】文字認識処理の結果を保存した状態の領域情報テーブルを示す図である。
【図１３】スキャン画像の一例を示す図である。
【図１４】キーワードとバリューの条件を入力する画面の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面などを参照して説明する。
【００１１】
（第１実施形態）
図１は、本実施形態における複写機１００の構成を示す図である。
複写機１００は、スキャナ１０１、送受信部１０２、およびプリンタ１０３を有する。
【００１２】
図２は、本実施形態における情報処理装置２００の構成を示す図である。
情報処理装置２００は、送受信部２０１、保存部２０２、制御部２０３、表示部２０４、受付部２０５、ルール登録部２０６、および情報抽出部２０７を有する。また、情報処理装置２００は、不図示のＣＰＵとＲＯＭとＲＡＭとを内部に有する。ＣＰＵは、ＲＯＭから情報処理装置２００のプログラムをロードし、一次保存領域としてＲＡＭを利用して情報処理装置２００のプログラムを実行する。以上の動作により、図２に示す各部の処理が実行される。
【００１３】
なお、受付部２０５は、キーボードとマウスとを含む形態が一般的であるが、この形態に限られない。また、受付部２０５と表示部２０４は一体であってもよい。その場合、受付部２０５と表示部２０４をまとめてタッチパネルと呼ぶ。また、表示部２０４は、プロジェクタにより画像を投影する形態であってもよく、受付部２０５は、当該投影された画像に対する指先の位置をカメラで認識する形態であってもよい。
【００１４】
図３は、スキャナで文書をスキャンして得られるスキャン画像の一例である。
本実施形態では、非定型帳票のスキャン画像を一例として説明するが、これに限られものではなく、帳票以外のどのような文書のスキャン画像であっても本発明は適用可能である。また、スキャン画像ではなく、例えばカメラで撮影した画像に対しても本発明は適用可能である。
【００１５】
非定型帳票とは、帳票中に含まれる情報が記載されている位置が固定でない帳票のことである。言い換えると、非定型帳票とは、どの位置にどのような情報が記載されているかのフォーマットが未知の帳票のことである。例えば、図３に示す帳票３０１と帳票３０２とでは、名前を示す情報、すなわち「帳票太郎」という文字列が記載されている位置が異なる。
【００１６】
非定型帳票に対して、例えば、名前を示す情報を抽出する場合、「名前」や「氏名」といったキーワードとなる文字列を含む領域を特定する。そして、当該文字列に対して所定方向の位置にある領域に名前を示す情報が記載されているとして、当該所定方向の位置にある領域に対して文字認識処理を実行することが考えられる。しかし、この場合、帳票全体に対して文字認識処理を実行し、その結果を用いて名前を示す情報が記載されている領域を特定するため、処理に時間がかかってしまう。
【００１７】
これに対して、本実施形態では、キーワードとバリューの条件に基づいて、キーワードまたはバリューを含む領域のうち特定しやすい方の領域を決定してから当該領域に対して文字認識処理を行い、情報を抽出する。キーワードとバリューの条件は、ユーザが受付部２０５を介して入力し、ルール登録部２０６に保存される。詳細は、図４を用いて説明する。
【００１８】
本実施形態では、抽出したい情報の項目名、すなわち目印となる文字列をキーワードと呼び、当該抽出したい情報をバリューと呼ぶ。例えば、図３に示す帳票３０１や帳票３０２において、名前を示す情報（バリュー）である「帳票太郎」に対して、「名前」や「氏名」が、当該バリューの項目名であって目印となる文字列（キーワード）である。また、帳票において、キーワードが記載されている領域をキーワード領域、バリューが記載されている領域をバリュー領域と呼ぶ。
【００１９】
図４は、ユーザがキーワードとバリューの条件を入力する際に使用するユーザインタフェースの一例を示す図である。
図４に示すユーザインタフェースは、ルール登録部２０６が表示部２０４を介して表示する。ユーザは、図４に示すユーザインタフェースに、抽出する情報のキーワードとなる文字列と、抽出する情報すなわちバリューの条件を入力する。
【００２０】
キーワードには、帳票における表記揺れを考慮して複数の単語を登録できる。例えば、図４に示す例では、キーワードが取り得る値として、「氏名」、「名前」、および「患者名」が登録されている。すなわち、抽出したい情報は、「氏名」、「名前」、および「患者名」のいずれかに対応する情報（バリュー）である。バリューの条件には、キーワードに対応するバリューが記載されている位置、およびバリューが取り得る値を登録する。
【００２１】
例えば、図４に示す例では、バリューは、キーワードの「右」に「３０」ピクセルに配置されていることが設定されている。さらに、図４に示す例では、バリューの条件として、字種が日本語であり、文字列長が不定であることが設定されている。字種とは、漢字、カナ、数字、アルファベット、記号、などの文字種のことである。なお、図４に示した、情報抽出のためのキーワードとバリューの条件は一例であり、これに限られるものではない。ルール登録部２０６は、ユーザが入力したキーワードとバリューの条件をルールテーブルとして保存部２０２に保存する。
【００２２】
図５は、ルール登録部２０６がルールテーブルとして保存部２０２に保存したデータの模式図である。
本実施形態では、帳票から情報を抽出する際の条件をルールと呼び、ルールを複数組定義したデータをルールテーブルと呼ぶ。ルール１は、図４に示したユーザインタフェースに入力されたキーワードとバリューの条件を保存したルールである。
【００２３】
ルール２は、キーワードが「伝票番号」、「番号」、「帳票番号」、「Ｎｕｍｂｅｒ」または「Ｆｉｌｅ  ｉｄ」のいずれかであり、キーワードに対して右に１５ピクセルの位置に存在する領域をバリューが記載されている領域とすることを設定したルールである。また、ルール２では、バリューが０〜９の数字、「￥」、「円」、または「．」の文字から構成され、文字列長が１０文字以下であることが設定されている。
【００２４】
次に、本実施形態で行う処理を説明する。複写機１００のスキャナ１０１が文書をスキャンすると、スキャン画像が生成される。生成されたスキャン画像を送受信部１０２が情報処理装置２００に送信する。すると、情報処理装置２００の送受信部２０１がこれを受信し、保存部２０２にそのスキャン画像を保存する。
【００２５】
図６は、スキャン画像に対して情報処理装置２００が情報を抽出する処理を示すフローチャートである。
ステップＳ６０１で、情報処理装置２００が有する情報抽出部２０７は、保存部２０２に保存されたスキャン画像を取得する。ステップＳ６０２で、情報抽出部２０７は、取得したスキャン画像に対して領域解析処理を行う。領域解析処理では、スキャン画像を解析することにより、文字列や、画像、グラフィックなどの属性毎の領域を判定する。本実施形態では、各領域は矩形の領域として判定されるものとする。
【００２６】
図７は、図３に示した帳票３０１に対して領域解析処理を行った結果を可視化した図である。
矩形領域の属性は、文字列、画像、グラフィック等である。本実施形態では、領域解析処理の結果、属性が文字列であると特定された領域を利用して情報の抽出を行う。領域解析処理は、既知の手法を用いればよい。情報抽出部２０７は、領域解析処理を行った結果を領域情報テーブルとして保存部２０２に保存する。
【００２７】
図８は、情報抽出部２０７が領域情報テーブルとして保存部２０２に保存したデータの模式図である。
領域情報テーブルは、スキャン画像上の矩形領域を一意に識別するＩＤと、矩形領域のスキャン画像における座標情報である左上座標、幅、および高さと、当該矩形領域に対して文字認識処理を実行した結果とを保存する。座標の値は、スキャン画像の左上を原点とし、横方向をＸ軸、縦方向をＹ軸とした場合のピクセル値である。
【００２８】
図７に示した領域解析処理の結果抽出された領域のＩＤと図８に示した矩形領域のＩＤとは対応している。ステップＳ６０２の時点では、まだ文字認識処理が実行されていないため、領域情報テーブルの文字認識結果は空である。後述するステップＳ６０７で文字認識処理が実行されると、その結果が領域情報テーブルの文字認識結果の該当する領域の欄に書き込まれる。
【００２９】
図６の説明に戻る。ステップＳ６０３で、情報抽出部２０７は、ルール登録部２０６が保存部２０２に保存したルールテーブルを取得する。ステップＳ６０４で、情報抽出部２０７は、情報を抽出する領域を推定する順番を決定する。言い換えると、情報抽出部２０７は、ルールテーブルに含まれるルールのうち、どのルールをどの順番で用いて抽出したい情報が記載されている領域を推定するかを判定する。
【００３０】
具体的には、ルールテーブルに含まれるルールのうち、どのルールを用いて領域を推定するか、および１つのルールにおいて、キーワードかバリューのどちらの条件を先に用いて領域を推定するかを判定する。
【００３１】
例えば、キーワードが記載されている領域よりも表記揺れが少なく文字列長が固定のバリューが記載されている領域の方が領域を推定しやすいため、精度よく高速に情報を抽出できる。このように、１つのルールにおいて、キーワードとバリューの取り得る値に基づいて、キーワードかバリューのどちらの条件を先に用いるかの順番を決定する。
【００３２】
また、例えば、字種が限定できる領域から文字認識処理を実行することで、精度よく高速に情報を抽出できる。このように、ルールテーブルに複数のルールが含まれる場合、キーワードとバリューの取り得る値に基づいて、どのルールから用いるかの順番を決定する。ステップＳ６０４の処理の詳細は、図９を用いて説明する。
【００３３】
図９は、ステップＳ６０４の処理の詳細を説明するためのフローチャートである。
ステップＳ９０１で、情報抽出部２０７は、ステップＳ６０３で取得したルールテーブルからルールを１つ選択する。ステップＳ９０２で、情報抽出部２０７は、選択したルールにおいてバリューの文字列長が固定であると設定されているかを判定する。バリューの文字列長が固定であると設定されている場合、処理はステップＳ９０４に進む。
【００３４】
ステップＳ９０４で、情報抽出部２０７は、ルールテーブルに含まれるルールのうち選択したルールを用いる優先順位を「高」に設定する。また、情報抽出部２０７は、当該選択したルールにおいて、バリューの条件を用いてバリューが記載されている領域を推定すると設定する。一方、ステップＳ９０２において、バリューの文字列長が固定であると設定されていない場合、処理はステップＳ９０３に進む。
【００３５】
ステップＳ９０３で、情報抽出部２０７は、選択したルールにおいてバリューの字種が限定されているかを判定する。すなわち、情報抽出部２０７は、選択したルールにおいてバリューの文字列が特定の字種のみで構成されているかを判定する。なお、ステップＳ９０１の後で、ステップＳ９０２を実行せずにステップＳ９０３に進んでもよい。同様に、ステップＳ９０２の後で、ステップＳ９０３を実行せずにステップＳ９０６に進んでもよい。
【００３６】
すなわち、領域を推定する順番を決定する際に、本実施形態では領域の推定しやすさをバリューの文字列が固定長か、およびバリューの字種が限定されているかにより判定しているが、これに限られるものではない。領域の推定しやすさは、キーワードまたはバリューの取り得る値に基づき判定され、どのような判定基準を用いてもよい。
【００３７】
バリューの字種が限定されている場合、処理はステップＳ９０５に進む。ステップＳ９０５で、情報抽出部２０７は、ルールテーブルに含まれるルールのうち選択したルールを用いる優先順位を「中」に設定し、当該選択したルールにおいて、バリューの条件を用いてバリューが記載されている領域を推定すると設定する。
【００３８】
一方、ステップＳ９０３において、バリューの字種が限定されていない場合、処理はステップＳ９０６に進む。ステップＳ９０６で、情報抽出部２０７は、ルールテーブルに含まれるルールのうち選択したルールを用いる優先順位を「低」に設定し、当該選択したルールにおいて、キーワードの条件を用いてキーワードが記載されている領域を推定すると設定する。なお、本実施形態では、ルールテーブルにおいて、領域の推定に用いるルールの優先度を高い順に「高」、「中」、「低」の３つに設定しているが、これに限られるものではない。
【００３９】
ステップＳ９０７で、情報抽出部２０７は、ステップＳ６０３で取得したルールテーブルに含まれるすべてのルールに対してステップＳ９０１〜Ｓ９０６の処理を実行したかを判定する。すべてのルールに対して処理を実行した場合、図９の処理すなわちステップＳ６０４の処理を終了し、処理はステップＳ６０５に進む。一方、すべてのルールに対して処理を実行していない場合、処理はステップＳ９０１に戻る。
【００４０】
図１０は、ステップＳ６０４の処理が終了した時点のルールテーブルを示す図である。
図５に示したルールテーブルに対して、「ルール内推定順」および「テーブル内推定順」の情報が追加されている。「テーブル内推定順」が、ルールテーブルに含まれるルールのうち、どのルールを用いて抽出したい情報が記載されている領域を推定するかを表す情報である。
【００４１】
また、「ルール内推定順」が、ルールテーブルに含まれる１つのルールにおいて、キーワードかバリューのどちらの条件を用いて抽出したい情報が記載されている領域を推定するかを表す情報である。「テーブル内推定順」が同位のルールが複数ある場合は、推定する領域に記載されている文字数が少ない方のルールを優先する。推定する領域に記載されている文字数とは、１つのルールにおいて、「ルール内推定順」列の値がキーワードの場合は、「キーワード」列に含まれる各キーワードの最大文字数を指す。
【００４２】
また、「ルール内推定順」列の値がバリューの場合は、「バリュー文字列長」列の値から最大文字数を決定する。例えば、「バリュー文字列長」列の値が「１０桁以下」の場合、最大文字数は１０桁である。また、例えば、「バリュー文字列長」列の値が不定の場合、最大文字数は不定であり、どのような値もとり得るため、推定する領域に記載されている文字数は大きくなり得る。このため、当該ルールの優先順位は下がる。
【００４３】
なお、「テーブル内推定順」が同位のルールが複数ある場合のルールの優先順位は、上述した、推定する領域に記載されている文字数に応じて決める方法に限られるものではない。例えば、推定する領域に記載されている文字の字種が限定されている方のルールを優先してもよい。また、例えば、１つのルールに登録されたキーワードの個数が少ない方のルールを優先してもよい。これは、キーワードの個数が少ない方が文字認識処理の結果と一致するかを判断する際に、より高速に判断することができるためである。
【００４４】
図６の説明に戻る。ステップＳ６０５で、情報抽出部２０７は、ステップＳ６０４で決定した、ルールテーブルに含まれるルールを用いる優先順位に従って、当該ルールにより推定される領域のサイズを推定する。すなわち、ステップＳ６０５以降の処理は、ルールを用いる優先順位が高いルールから順に、ルールテーブルに含まれるすべてのルールに対して繰り返し実行される。
【００４５】
領域のサイズを推定するには、あらかじめ定められた文字のサイズの最大値および最小値と、文字間のマージンの最大値および最小値とを用いる。例えば、文字のサイズの最大値が２５ピクセルであり、最小値が１６ピクセルであって、マージンの最大値が１５ピクセルであり、最小値が０ピクセルであるとあらかじめ定めておく。このとき、推定する領域の文字数が７であった場合、当該領域のサイズの最小値は、高さが１６ピクセルであり、幅が１１２ピクセルであると推定される。
【００４６】
詳細には、７文字を横に並べた場合に、高さは１文字分の最小値である１６ピクセルであり、幅は７文字分の最小値にマージンの最小値を６個分足した値である１６×７＋０×６＝１１２である。同様に、当該領域のサイズの最大値は、高さが２５ピクセルであり、幅が２５×７＋１５×６＝２６５ピクセルであると推定される。
【００４７】
なお、本実施形態では、文字が横方向に並んでいるものとして領域のサイズを推定するが、文字が縦に並んでいる場合についても別途領域のサイズを推定してもよい。また、例えば、ルールテーブルにおいて、バリューの文字列長を全角と半角の文字ごとに保存し、領域のサイズを推定する際に全角と半角とを区別してサイズを推定してもよい。この場合、全角と半角の文字それぞれに対してサイズの最大値および最小値をあらかじめ設定しておけばよい。
【００４８】
ステップＳ６０６で、情報抽出部２０７は、推定した領域のサイズを満たす領域をステップＳ６０２の領域解析処理の結果の中から特定する。具体的には、領域情報テーブル（図８）に保存されている矩形領域の幅および高さが、ステップＳ６０５で推定した領域のサイズの範囲に含まれる矩形領域を特定する。
【００４９】
例えば、図１０のルールテーブルのルール３を用いて領域を推定する場合、推定される領域のサイズの最大値は、高さ２５ピクセルであり、幅が２６５ピクセルである。また、推定される領域のサイズの最小値は、高さが１８ピクセルであり、幅が１１２ピクセルである。このとき、領域情報テーブルに保存されている矩形領域のうち、ＩＤ２、ＩＤ３、およびＩＤ１３の矩形領域が最大値および最小値の範囲に含まれる領域として特定される。
【００５０】
ステップＳ６０７で、情報抽出部２０７は、ステップＳ６０６で特定した領域に対して文字認識処理を実行する。このとき、先に定義したルールに基づいて字種を限定した文字認識処理を実行する。例えば、図１０のルールテーブルのルール３を用いて領域を推定する場合、字種を０〜９の数字、「−」（ハイフン）、またはアルファベットの「Ａ」、「Ｂ」、または「Ｃ」に限定した文字認識処理が実行されるため、文字認識処理の出力結果も限定される。
【００５１】
図１１は、ステップＳ６０７で文字認識処理が実行された結果を保存した状態の領域情報テーブルを示す図である。
詳細には、図１１は、ステップＳ６０７でＩＤ２の矩形領域に対して文字認識処理が実行された後の領域情報テーブルを示している。図８に示した領域情報テーブルに対して、ＩＤ２の矩形領域の「文字認識結果」列に値が追加されている。すなわち、ＩＤ２の領域に対して文字認識処理を実行した結果、「１２３４−Ｃ５６」が抽出されたことを示している。
【００５２】
図６の説明に戻る。ステップＳ６０８で、情報抽出部２０７は、ステップＳ６０７で情報を抽出した領域の対になる領域を特定し、当該対になる領域に対して文字認識処理を実行する。対になる領域とは、ステップＳ６０７で情報を抽出した領域がバリューを記載した領域であれば、キーワードを記載した領域のことである。また、ステップＳ６０７で情報を抽出した領域がキーワードを記載した領域であれば、バリューを記載した領域のことである。
【００５３】
例えば、図１０のルールテーブルのルール３を用いて領域を推定する場合、ルール内推定順が「バリュー」であることから、ステップＳ６０７で情報を抽出した領域はバリューが記載された領域である。ここで、ルール３には、キーワードが記載された領域から見て右に２０ピクセルの位置にバリューが記載された領域が存在すると設定されている。
【００５４】
そこで、ステップＳ６０８で特定される「対になる領域」は、ステップＳ６０７で情報を抽出したバリューが記載された領域から見て左に２０ピクセルに存在する領域である。図７および図８から、当該対になる領域は、ＩＤ１の矩形領域であると特定されるため、情報抽出部２０７は、ＩＤ１の矩形領域に対して文字認識処理を実行する。
【００５５】
図１２は、ステップＳ６０８で文字認識処理が実行された結果を保存した状態の領域情報テーブルを示す図である。
詳細には、図１２は、ステップＳ６０８でＩＤ１の矩形領域に対して文字認識処理が実行された後の領域情報テーブルを示している。図１１に示した領域情報テーブルに対して、ＩＤ１の矩形領域の「文字認識結果」列に値が追加されている。すなわち、ＩＤ２の領域の対となる領域がＩＤ１の領域であり、当該ＩＤ１の領域に対して文字認識処理を実行した結果、「伝票番号」が抽出されたことを示している。
【００５６】
図６の説明に戻る。ステップＳ６０９で、情報抽出部２０７は、文字認識処理の結果が、ルールテーブルの該当するルールのキーワードと一致するかを判断する。例えば、図１０のルールテーブルのルール３を用いて領域を推定する場合、キーワードは、「伝票番号」、「番号」、「帳票番号」、「Ｎｕｍｂｅｒ」、または「Ｆｉｌｅ  ｉｄ」である。情報抽出部２０７は、ステップＳ６０８の文字認識処理の結果がこれらキーワードのいずれかと一致するかを判断する。
【００５７】
なお、ステップＳ６０４において、先にキーワードが記載されている領域を推定すると決定された場合、ステップＳ６０８の対になる領域の文字認識処理は実行せずにステップＳ６０９に進んでもよい。そして、ステップＳ６０９において、キーワードが一致すると判断した場合にのみステップＳ６０８を実行すればよい。すなわち、ステップＳ６０６で特定した領域が、キーワードが記載された領域でなかった場合、対になる領域はバリューが記載された領域ではないため、ステップＳ６０８の文字認識処理は不必要であり、省略できる。
【００５８】
また、情報抽出部２０７が文字認識処理の結果として複数の候補を出力する場合は、出力された複数の候補すべてに対して、キーワードとの一致を判断してもよい。また、文字認識処理では、画像上のノイズ等に影響されて余分な文字を出力する場合や、文字を誤認識する場合がある。
【００５９】
そこで、文字認識処理の結果とルールテーブルの該当するルールのキーワードとの一致を判断する際に、文字認識処理の結果の文字列にキーワードの文字列の５割が含まれていた場合に一致すると判断する等、一致するか否かの条件を緩めてもよい。
【００６０】
ステップＳ６０９において、情報抽出部２０７が文字認識処理の結果が、ルールテーブルの該当するルールのキーワードと一致すると判断した場合、領域情報テーブルおよび当該領域情報テーブルに保存された文字認識処理の結果を保存部２０２に保存する。一方、ステップＳ６０９において、情報抽出部２０７が文字認識処理の結果が、ルールテーブルの該当するルールのキーワードと一致しないと判断した場合、処理はステップＳ６０６に戻る。
【００６１】
そして、情報抽出部２０７は、ステップＳ６０５で推定した領域のサイズを満たす領域を、既にステップＳ６０６〜Ｓ６０９の処理の対象となった領域を除外し、ステップＳ６０２の領域解析処理の結果の中から特定する。
【００６２】
以上のように、本実施形態によれば、情報を抽出するためのキーワードとバリューの条件のうち、情報が記載されている領域であると推定しやすい領域から順に文字認識処理を実行する。これにより、非定型の情報を含む画像から、画像全体に対して文字認識処理を実行してキーワードが記載された領域を特定し、後にバリューの情報を抽出するよりも効率よく高速に情報を抽出することが可能となる。
【００６３】
なお、本実施形態では、情報が記載されている領域であると推定しやすい領域は、情報を抽出するためのキーワードとバリューの条件（ルール）において、字種および文字列長の条件に応じて決定した。しかし、情報が記載されている領域であると推定しやすいか否かの判断基準はこれに限られるものではなく、例えば、バリューを正規表現で表記できるか等を判断基準としてもよい。
【００６４】
図１３は、スキャナで文書をスキャンして得られるスキャン画像のその他の一例である。
図１に示したスキャナ画像は、日本語で記述された文書をスキャンした場合ついて説明したが、図１３のように、本発明は、英語で記述された文書の画像であってもよい。文書画像１３０１および文書画像１３０２は、それぞれ英語で記述された同一の項目の情報を含む。
【００６５】
例えば、伝票番号を示す情報（バリュー）が、文書画像１３０１では「ＩＮＶＯＩＣＥ＃」というキーワードの右横にある領域に記載されている。一方、文書画像１３０２では「ＮＵＭＢＥＲ＃」というキーワードの右横にある領域に伝票番号を示す情報が記載されている。また、「ＩＮＶＯＩＣＥ＃」および「ＮＵＭＢＥＲ＃」が記載されている位置は、それぞれの文書において異なる。
【００６６】
このような非定型の文書に対しても、上述したようにキーワードとバリューの条件に基づき、バリューが記載されている領域を特定し、当該特定された領域に対して文字認識処理を行うことで抽出できる。キーワードやバリューの条件は、図４に示したユーザインタフェースを用いて設定すればよい。また、図１４に示すような他のユーザインタフェースを用いることも可能である。
【００６７】
図１４は、ユーザがキーワードとバリューの条件を入力する際に使用するユーザインタフェースのその他の一例である。
図４に示したユーザインタフェースと同様に、ルール登録部２０６が表示部２０４を介して図１４のユーザインタフェースを表示する。
【００６８】
ユーザは、当該ユーザインタフェースに、抽出する情報のキーワードとなる文字列と、抽出する情報すなわちバリューの条件を入力する。図１４では、伝票番号を抽出する場合のキーワードとバリューの条件が入力された例を示している。伝票番号を示すキーワードには複数の表現があり、一例として「ＩＮＶＯＩＣＥ＃」、「ＮＵＭＢＥＲ＃」、「Ｎｏ．」、および「ＮＯ．」が設定されていることがわかる。
【００６９】
また、伝票番号の値、すなわちバリューの文字列長は固定（９文字）であり、字種は０〜９の数字、Ａ〜Ｆのアルファベットに限定されていることがわかる。したがって、この例では、伝票番号を抽出する場合、キーワードからではなくバリューが記載されている領域を推定することで、高速に情報を抽出することができる。
【００７０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７１】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【符号の説明】
【００７２】
１００    複写機
２００    情報処理装置
２０３    制御部
２０６    ルール登録部
２０７    情報抽出部
【図１】
2018128996.tif 000003
【図２】
2018128996.tif 000004
【図３】
2018128996.tif 000005
【図４】
2018128996.tif 000006
【図５】
2018128996.tif 000007
【図６】
2018128996.tif 000008
【図７】
2018128996.tif 000009
【図８】
2018128996.tif 000010
【図９】
2018128996.tif 000011
【図１０】
2018128996.tif 000012
【図１１】
2018128996.tif 000013
【図１２】
2018128996.tif 000014
【図１３】
2018128996.tif 000015
【図１４】
2018128996.tif 000016