(57)【特許請求の範囲】
【請求項１】
テンプレート帳票内の表属性の領域に関する特徴情報を記憶する記憶手段と、
入力された入力帳票の画像データを属性毎の領域に分割する領域分割手段と、
前記領域分割手段で属性毎に分割された各領域の特徴情報を抽出する領域情報抽出手段と、
前記記憶手段に記憶されている前記テンプレート帳票内の表属性の領域に関する特徴情報と、前記領域情報抽出手段で抽出した前記入力帳票内の各領域の特徴情報とを比較することにより、前記入力帳票と前記テンプレート帳票との類似度を算出する類似度算出手段と、
前記算出された類似度に基づいて前記入力帳票に類似するテンプレート帳票の情報を出力する出力手段と、を有する帳票分類装置であって、
前記類似度算出手段で前記特徴情報が比較される入力帳票内の領域の属性は、表属性ならびに前記表属性と異なる属性の両方であることを特徴とする帳票分類装置。
【請求項２】
前記類似度算出手段で比較される特徴情報は、領域の位置と大きさとに関する情報であることを特徴とする請求項１に記載の帳票分類装置。
【請求項３】
前記類似度算出手段で比較される前記入力帳票内の領域の特徴情報は、前記入力帳票内の表属性の領域の特徴情報と枠属性の領域の特徴情報と図属性の領域の特徴情報であることを特徴とする請求項１または２のいずれかに記載の帳票分類装置。
【請求項４】
前記類似度算出手段は、前記入力帳票内の各領域の特徴情報が前記テンプレート帳票内の表属性の領域に関する特徴情報に一致すると判断するたびにスコアを加算していき、当該スコアと前記テンプレート帳票内の表属性の領域の個数とに基づいて前記類似度を算出することを特徴とする請求項１乃至３のいずれか１項に記載の帳票分類装置。
【請求項５】
前記類似度算出手段は、前記スコアを加算する際、前記入力帳票内の領域の属性に応じた重みをつけることを特徴とする請求項４に記載の帳票分類装置。
【請求項６】
前記記憶手段は、前記テンプレート帳票内の表属性と異なる属性を有する領域の特徴情報を更に記憶し、
前記類似度算出手段で比較されるテンプレート帳票内の領域の属性は、前記表属性ならびに前記表属性と異なる属性の両方であることを特徴とする請求項１に記載の帳票分類装置。
【請求項７】
前記類似度算出手段による類似度の算出に先立ち、前記入力帳票に基づいて、前記記憶手段に記憶されているテンプレート帳票の中から比較候補となるテンプレート帳票を絞り込む絞り込み手段を、更に有することを特徴とする請求項１乃至６のいずれか１項に記載の帳票分類装置。
【請求項８】
前記絞り込み手段での絞り込みに用いる比較基準値を設定する設定手段を、更に有することを特徴とする請求項７に記載の帳票分類装置。
【請求項９】
前記絞り込み手段は、前記入力帳票内の表属性の領域の個数と、最大面積を有する表属性の領域が含むセルの個数とに基づいて、前記記憶手段に記憶されているテンプレート帳票の中から比較候補となるテンプレート帳票を絞り込むことを特徴とする請求項７に記載の帳票分類装置。
【請求項１０】
前記絞り込み手段による絞り込みの処理を、多段階に分けて行うことを特徴とする請求項７に記載の帳票分類装置。
【請求項１１】
前記多段階の絞り込みに用いる条件は、段階が進むにつれて緩くなる条件であることを特徴とする請求項１０に記載の帳票分類装置。
【請求項１２】
前記類似度算出手段は、前記絞り込み手段により絞り込まれたテンプレート帳票と前記入力帳票との類似度を算出し、
当該算出された類似度が所定値以上となるテンプレート帳票が無い場合に、前記絞り込み手段は次の段階の絞り込み条件を用いて前記テンプレート帳票を絞り込むことを特徴とする請求項１０または１１のいずれかに記載の帳票分類装置。
【請求項１３】
前記絞り込み手段は、表の数、最大面積の表のセル数、抽出領域の数のうち、少なくとも１つを絞り込みの条件として用いることを特徴とする請求項７に記載の帳票分類装置。
【請求項１４】
前記絞り込み手段は、前記入力帳票の文字認識結果のコードデータを用いて絞り込みを行うことを特徴とする請求項７に記載の帳票分類装置。
【請求項１５】
領域分割手段が、入力された入力帳票の画像データを属性毎の領域に分割する領域分割ステップと、
領域情報抽出手段が、前記属性毎に分割された各領域の特徴情報を抽出する領域情報抽出ステップと、
類似度算出手段が、記憶手段に記憶されているテンプレート帳票内の表属性の領域に関する特徴情報と、前記領域情報抽出ステップで抽出した前記入力帳票内の各領域の特徴情報とを比較することにより、前記入力帳票と前記テンプレート帳票との類似度を算出する類似度算出ステップと、
出力手段が、前記算出された類似度に基づいて前記入力帳票に類似するテンプレート帳票の情報を出力する出力ステップと、を有する帳票分類方法であって、
前記類似度算出ステップで前記特徴情報が比較される入力帳票内の領域の属性は、表属性ならびに前記表属性と異なる属性の両方であることを特徴とする帳票分類方法。
【請求項１６】
コンピュータを、
入力された入力帳票の画像データを属性毎の領域に分割する領域分割手段、
前記領域分割手段で属性毎に分割された各領域の特徴情報を抽出する領域情報抽出手段、
記憶手段に記憶されているテンプレート帳票内の表属性の領域に関する特徴情報と、前記領域情報抽出手段で抽出した前記入力帳票内の各領域の特徴情報とを比較することにより、前記入力帳票と前記テンプレート帳票との類似度を算出する類似度算出手段、
として機能させるためのプログラムを記憶した、コンピュータ読取可能な記憶媒体であって、
前記類似度算出手段で前記特徴情報が比較される入力帳票内の領域の属性は、表属性ならびに前記表属性と異なる属性の両方であることを特徴とするコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、帳票分類方法及び装置に関し、例えば、読み取った帳票画像の解析結果に応じて、その帳票に類似する帳票、或いは分類を出力する帳票分類方法及び装置に関する。
【０００２】
また、本発明は、入力した帳票画像を解析し、その帳票画像を、類似する帳票の適切な分類に自動的に格納する帳票分類方法及び装置に関する。
【０００３】
また、本発明は、表画像を含む帳票の分類を適切かつ自動的に行う帳票分類方法及び装置に関する。
【０００４】
更に、本発明は、入力した画像に類似する画像を検索する処理において、候補を絞り込む処理に関する。
【０００５】
【従来の技術】
入力された帳票画像を認識し、その認識結果に応じて、その帳票画像に類似するフォーム毎に自動的に分類する従来の帳票検索装置においては、一般に、検索すべき未知帳票のフォームと、予め記憶している比較基準となる複数種類の登録された帳票との自動的な類似判断の比較要素として、それら帳票のテーブル個数を用いる方法がある。
【０００６】
【発明が解決しようとする課題】
上述した従来技術によれば、未知帳票を読み取る際の諸条件、例えば帳票の原稿の状態やスキャナ等の入力装置の状態に結果が左右されやすいという欠点がある。
【０００７】
【課題を解決するための手段】
上記の従来技術の課題を解決するために、本発明に係る帳票分類装置は、テンプレート帳票内の表属性の領域に関する特徴情報を記憶する記憶手段と、入力された入力帳票の画像データを属性毎の領域に分割する領域分割手段と、領域分割手段で属性毎に分割された各領域の特徴情報を抽出する領域情報抽出手段と、記憶手段に記憶されているテンプレート帳票内の表属性の領域に関する特徴情報と、領域情報抽出手段で抽出した入力帳票内の各領域の特徴情報とを比較することにより、入力帳票とテンプレート帳票との類似度を算出する類似度算出手段と、算出された類似度に基づいて入力帳票に類似するテンプレート帳票の情報を出力する出力手段とを有する帳票分類装置であって、類似度算出手段で特徴情報が比較される入力帳票内の領域の属性は、表属性ならびに前記表属性と異なる属性の両方であることを特徴とする。
【０００８】
また、上記の従来技術の課題を解決するために、本発明に係る帳票分類方法は、領域分割手段が、入力された入力帳票の画像データを属性毎の領域に分割する領域分割ステップと、領域情報抽出手段が、属性毎に分割された各領域の特徴情報を抽出する領域情報抽出ステップと、類似度算出手段が、記憶手段に記憶されているテンプレート帳票内の表属性の領域に関する特徴情報と、領域情報抽出ステップで抽出した入力帳票内の各領域の特徴情報とを比較することにより、入力帳票とテンプレート帳票との類似度を算出する類似度算出ステップと、出力手段が、算出された類似度に基づいて入力帳票に類似するテンプレート帳票の情報を出力する出力ステップとを有する帳票分類方法であって、類似度算出ステップで特徴情報が比較される入力帳票内の領域の属性は、表属性ならびに表属性と異なる属性の両方であることを特徴とする。
【０００９】
【発明の実施の形態】
以下、本発明を、図面を参照して詳細に説明する。
【００１０】
図１は、本発明の一実施形態を実現する帳票検索装置の概略構成を示すブロック図である。
【００１１】
同図において、スキャナ、カメラ等の画像入力ユニット２によって読み取られた画像は、当該ユニット内で一般的な２値化処理が施された後、デジタル画像データとしてプロセッサ４に送られる。本実施形態において、登録する帳票及び類似している帳票を検索するための未知帳票の画像は、この入力ユニット２より入力される。
【００１２】
プロセッサ４は、入力された画像データに対して、一般的な画像特徴量の抽出処理として、例えば黒ドットのヒストグラム抽出法等の手法により、当該画像を、表、テキスト、画像等の、ある属性を有するひとかたまりの領域であるブロックを抽出する。
【００１３】
更に、プロセッサ（ＣＰＵ）４は、例えば、抽出したブロックが表ブロック、即ち「表」という属性を有するブロックであれば、一般的な罫線追跡処理等を施すことによって対象とする表の詳細構造や、検出した表の個数の値を更に求める。また、テキストブロックであれば、一般的な文字認識処理を施すことによって、その領域内の画像データを文字コードに変換する。このようにして取得した形状特徴やテキストデータ等の各ブロックの情報は、ＲＡＭ等のメモリ１０及び／またはハードディスク等の記憶装置８に保存される。
【００１４】
また、プロセッサ４は、本実施形態に係る帳票検索装置による所望の入力帳票の検索及び／または分類処理に先立って、その処理結果の候補となり得る複数の帳票として、オペレータによって予め入力（登録）されたテンプレート帳票（以下、本実施形態では登録帳票と称する）から、領域データの抽出や各種データを含む帳票データを所定の分類分けがなされた状態で記憶装置８等に保存する。
【００１５】
そして、プロセッサ４は、画像入力ユニット２やキーボード６等を操作してオペレータによって入力された所望の入力帳票の登録情報、検索や選択等の命令を受け取ると、記憶装置８等に予め記憶している登録帳票の形状の特徴や緩め検索規則等を利用して、後述する検索処理を行い、その検索結果を、ディスプレイ、プリンタ等の出力装置１２に出力する。
【００１６】
尚、本実施形態において以下に説明するフローチャートに示す処理を含む各処理は、記憶装置８に記憶された制御プログラムに従って、プロセッサ４の制御のもと実行される。記憶装置８に記憶される制御プログラムは、処理が開始される前に予め記憶されたものであっても良いし、或いは通信ネットワークを介して接続された他の端末に記憶されたものや、フロッピーディスクやＣＤ−ＲＯＭ等の装置に着脱可能な記憶媒体に格納されているものを用いても良い。
【００１７】
上述したハードウエアの構成は、帳票処理装置として専用に構成しても良いが、画像入力ユニット２を接続可能な一般的なコンピュータに後述する検索処理を行わせることによって構成しても良い。
【００１８】
このような帳票検索装置は、例えば図２に示すシステムにおいて実現される。
図２は、本実施形態において採用可能なコンピュータシステムの構成例を示す図であり、同図において、２１はコンピュータ装置であり、帳票検索のための処理を実行する。２２はスキャナ装置であり、紙の帳票を光学的に読み取り電子化し、画像データをコンピュータ装置２１に送る。
【００１９】
図３は、本発明の一実施形態を実現可能な帳票検索装置の機能ブロック図である。
【００２０】
同図において、１０１は、スキャナやカメラ等の画像入力装置を用いて、紙等の媒体に記入或いは印刷されている検索及び／または分類対象である所望の帳票（以下、入力帳票と称する）を、電気的な画像データとして入力する入力部である。
【００２１】
１０２は、入力帳票の画像データを、文字（テキスト）、図、表、枠、線などの領域に分割する領域分割部である。図１９は、入力帳票が領域分割部１０２によって領域分割された場合の構成を例示する図であり、この場合、当該入力帳票（画像データ）１９０４は、不完全表である領域１９００、表である領域１９０１、その表を構成するセルである領域１９０３、並びにテキストである領域１９０５等の各領域に分割されている。本実施形態において、不完全表とは、入力帳票に含まれる複数のセルからなる部分画像の領域であって、その部分画像が含むセルの個数が所定値より少ない場合を表し、その所定値よりセルの個数が多い場合には表（完全表）と称する（詳細は図１７を参照して後述する）。
【００２２】
次に、１０３は、入力帳票に関して領域分割部１０２により抽出された各領域に関して、後で必要となる情報を抽出する領域データ抽出部である。１０４は、予め分類され、メモリ（記憶装置８）に記憶されている登録帳票から抽出された領域データや各種データを含む帳票データを保存する帳票データ記憶部である。
【００２３】
また、１０５は、登録帳票と入力帳票との類似度を計算する類似度算出部である。そして１０６は、類似度算出部１０５の計算結果に基づき検索結果を出力する出力部である。
【００２４】
次に、上述したハードウエア構成及び機能ブロックからなる帳票分類装置において実行される処理について説明する。本実施形態の帳票分類装置では、所望の帳票を登録帳票として登録する帳票登録処理と、その処理によって予め登録された登録帳票のデータを利用して、所望の入力帳票を検索する帳票検索処理とが実行される。
【００２５】
＜帳票登録処理＞
図４は、本実施形態における帳票分類装置にて行われる帳票登録処理を示すフローチャートである。
【００２６】
ステップＳ２０１において、記憶装置８に登録帳票として登録すべき所望の帳票を、画像入力ユニット２で入力して電子化した画像データを得て、ステップＳ２０２においてその画像の領域分割処理を行う。
【００２７】
ステップＳ２０３において、ステップＳ２０２の領域分割処理によって得られた画像の文字、図、表、枠、線等の領域のうち、図、表、及び枠の領域について、その位置、大きさ等、個々の領域についてのデータである領域データと、その帳票に含まれる表の領域の個数とを含むこの登録帳票の帳票データとを登録する。
【００２８】
ステップＳ２０４において、登録すべき他の帳票がある場合、ステップＳ２０１に戻ってその帳票の画像入力からステップＳ２０４までの処理を繰り返す。一方、登録すべき他の帳票が無い場合は登録処理を終了する。ステップＳ２０４における判断は、メッセージを出力してユーザに選択させても良いし、或いは画像入力ユニット２で処理待ちになっている原稿があるか否かの判定により自動的に行っても良い。
【００２９】
図４のフローチャートにおけるステップＳ２０２の領域分割処理の詳細を、図５のフローチャートを用いて説明する。
【００３０】
ステップＳ３０１において、ステップＳ２０１で入力した画像からすべての黒領域を抽出する。
【００３１】
ここで、黒領域とは、ひとかたまりの黒画素の集合を囲む領域のことである。図２４に示すように、ある一つの黒画素“ａ”の垂直、水平及び斜め方向に隣接する周囲８画素“ｂ”のいずれかが黒画素であった場合に、それらの画素は“連結している”と判断し、基本の画素（注目画素）に対して連結していると判断された新しい画素に対して連結判断を繰り返すことにより得られる一つの黒画素の集合を、ひとかたまりの黒画素の集合と判断し、その黒画素の集合を囲む四角形を黒領域と呼ぶ。図６（ａ）にひとかたまりの黒画素の集合６０２と、黒領域６０３の例を示す。
【００３２】
ステップＳ３０２では、ステップＳ３０１において求めた黒領域の中から文字判定用閾値以下の大きさの黒領域を識別し、その黒領域の属性は文字であると判定する（ステップＳ３１０）。
【００３３】
ここで、文字判定用閾値は、処理している画像から検出される複数の黒領域の大きさを統計的に解析して得られる予想最大文字高さ及び幅、或いはその最大文字高さ及び幅に例えば１．１等の所定の値を掛けて予想最大文字高さ及び幅にいくらかの余分を持たせた値である。このように画像を分析して文字判定用域を求める方法によって画像毎に閾値を定める方法の他、複数の入力画像に共通の固定文字判定用閾値をメモリに保持しておき、この値を用いても良い。
【００３４】
ステップＳ３０３では、黒領域の縦長さと横長さの比率が予め定めてメモリに保持しておいた線判定用縦横比率の閾値以上の黒領域を判別し、その黒領域の属性は線であると判定する（ステップＳ３１１）。
【００３５】
ステップＳ３０４では、黒領域の輪郭の形状が細い斜めの線状になっている黒領域を識別し、その黒領域の属性も線であると判定する（ステップＳ３１１）。
【００３６】
ステップＳ３０５では、黒領域の輪郭の形状が四角形であるか否かを識別し、その黒領域の属性を判定すべく、ステップＳ３０６に進む。本ステップにおける四角形であることの識別方法は、黒領域の輪郭が四つの辺から成り、その対向している２組の辺同士が同じ長さであるという条件を満たすと判定した場合に、四角形であると識別する。辺であること及び辺の長さが同じであることの判定においては、予め定めてメモリに保存しておいた範囲で辺の傾きや曲線性、或いは辺の長さの差を許容する判定を行う。
【００３７】
ステップＳ３０５において黒領域の輪郭が四角形でないと判定された場合は、その黒領域の属性は図であると判定する（ステップＳ３１２）。図７（ａ）は、輪郭形状が四角形の黒領域を例示しており、図７（ｂ）は、輪郭形状が四角形ではない黒領域（図）を例示する図である。
【００３８】
ステップＳ３０６では、ステップＳ３０５で輪郭が四角形であると判定された黒領域の内部の白領域を抽出する。
【００３９】
ここで、白領域とは、ひとかたまりの白画素の集合を囲む領域のことである。図２４に示すように、ある一つの白領域“ａ”の垂直、水平及び斜め方向に隣接する周囲８画素（ｂ）のいずれかが白画素であった場合に、それらの画素は“連結している”と判断し、基本の画素に対して連結していると判断された新しい画素に対して連結判断を繰り返すことにより得られる一つの白画素の集合を、ひとかたまりの白画素の集合と判断し、その白画素の集合を囲む四角形を白領域と呼ぶ。図６（ｂ）にひとかたまりの白画素の集合６０４と、白領域６０５の例を示す。
【００４０】
ステップＳ３０７では、一つの黒領域から抽出される白領域の数を判定し、その数が３個以下であり、かつ白領域の面積の合計が黒領域の面積の所定の割合以上である場合に、その黒領域の属性は枠であると判定する（ステップＳ３１３）。
【００４１】
ここで、面積の比較に用いる所定値は、予め定めてメモリに保持した枠判定用閾値を用い、例えば９５パーセント等であって、この比較により、白領域が黒領域を埋めているか否かを判定するものである。図８（ａ）に属性が枠と判定される黒領域の例を示す。
【００４２】
ステップＳ３０８では、一つの黒領域から抽出された白領域が縦或いは横方向に規則正しく整列されているか否かを判定し、肯定判定の場合にはその黒領域の属性は表であると判断する（ステップＳ３１４）。一方、否判定の場合はステップＳ３１２に進む。図８（ｂ）に白領域が規則正しく配列されており、表であると判断された黒領域の例を示し、図８（ｃ）に白領域の数は４以上であるものの、規則正しく配列しておらず、図であると判断された黒領域の例を示す。
【００４３】
ステップＳ３１０からＳ３１４においては、黒領域及び白領域の位置と、黒領域に対して判定された属性を対応付けてメモリに記憶する。
【００４４】
＜帳票検索処理＞
次に、帳票検索処理について図９のフローチャートを用いて説明する。
【００４５】
図９は、本実施形態における帳票分類装置にて行われる帳票検索処理を示すフローチャートであり、この帳票検索処理は、ステップＳ４０１で入力した帳票と似た特徴を持つ帳票を、上述した帳票登録処理により登録された複数の登録帳票の中から識別する処理である。
【００４６】
ステップＳ４０１では、入力部１０１により検索対象となる入力帳票の画像データを入力する。
【００４７】
ステップＳ４０２では、領域分割部１０２により、ステップＳ４０１で入力した画像に対して領域分割処理を行う。この領域分割処理は、前述した図５のフローチャートと同様の処理であり、画像データを解析して黒領域の抽出と、黒領域の属性、文字、図、表、枠、線等の判定を行い、結果をメモリに格納するものである。
【００４８】
ステップＳ４０３では、領域データ抽出部１０３により、領域分割処理によって得た各領域から、属性が表、図及び枠である領域を選択し、選択した各領域の位置、大きさ及び各属性の領域個数を入力帳票の領域データとしてメモリに格納する。
【００４９】
ステップＳ４０４では、類似度算出部１０５により、上述した帳票登録処理において登録した複数の帳票のデータに含まれる表領域データと、ステップＳ４０３で選択され、格納された領域のデータとを比較し、ステップＳ４０１で入力した帳票と登録された複数の帳票との間の類似度を求める。その類似度の求め方は、図１０のフローチャートを参照して後述する。
【００５０】
ステップＳ４０５では、出力部１０６により、ステップＳ４０４において求めた各帳票との類似度を比較して類似度の最も高い登録帳票を識別する。出力部１０６は、識別された最も類似度の高い登録帳票か、或いは、その登録帳票が属する分類を選択して出力する。更に入力帳票をその分類に関連付けてメモリに格納するか、或いはその類似度の最も高い登録帳票を表示或いは印刷してオペレータに知らしめても良い。識別された登録帳票をオペレータに知らしめる場合は、類似度の最も高い登録帳票に限らず、上位複数の登録帳票を出力し、その中からオペレータが所望の登録帳票を選択するようにもできる。この場合の登録帳票の選択方法は、予め個数を定めておいても良いし、類似度に対する閾値を予め定めておき、閾値以上の類似度が算出された登録帳票を選択しても良い。
【００５１】
ステップＳ４０４における類似度を求める処理の詳細を、図１０のフローチャートを用いて説明する。このフローチャートにおいて、スコア“ｓ”を用いて類似度を算出する。
【００５２】
ステップＳ５０１では、スコア“ｓ”を“０”にリセットする。
【００５３】
ステップＳ５０２では、登録帳票の表領域についてのカウンタ“ｎ”を“１”にセットする。このカウンタ“ｎ”は、一つの登録帳票に複数の表領域があった場合に、その各々の表領域についてステップＳ５０３からＳ５２３までのステップからなる類似度を求める処理を行うべく、処理対象として注目している表領域（注目表領域）を一つずつシフトするためのカウンタである。
【００５４】
ステップＳ５０３では、入力帳票の表領域についてのカウンタ“ｔ”を“１”にセットする。このカウンタ“ｔ”は、一つの入力帳票に複数の表領域があった場合に、各々の表領域についてステップＳ５０４からＳ５０６までのステップからなる登録帳票の表領域との一致の判断を行うべく、注目表領域を一つずつシフトするためのカウンタである。
【００５５】
ステップＳ５０４では、入力帳票のｔ番目の表領域が既にＳ５０５の判断ステップを完了しているか判断する。この判断は、そのｔ番目の表領域データにおける“対応済み”を示すフラグが“１”になっているか否かにより実現できる。ステップＳ５０４において“対応済み”を示すフラグが“１”であると判断した場合には、ステップＳ５０５をスキップしてステップＳ５０８に進む。
【００５６】
ステップＳ５０５では、登録帳票の領域データのｎ番目の表領域と、入力帳票の領域データのｔ番目の表領域の位置と大きさとの各々を比較し、その比較の結果に基づいて各領域が一致するか否かを判断する。本ステップにおける判断においては、各領域データの位置データ及び大きさデータが完全一致する場合のみならず、各帳票を読み取るときに生じた画像入力ずれを考慮して、幅を持たせて一致の判断を行う。ステップＳ５０５において一致すると判断した場合、ステップＳ５０６に進み、ｔ番目の表領域データにおける“対応済み”を示すフラグを“１”にセットすると共に対応する表領域番号“ｎ”を格納する。ステップＳ５０７においてスコア“ｓ”に１を加算してステップＳ５２４に進み、登録帳票の領域データにおける次の表領域へと比較処理を進める。
【００５７】
ステップＳ５０８では、入力帳票の表領域についてのカウンタ“ｔ”に１を加算し、次の表領域を入力帳票の領域データから選択する処理を行う。ステップＳ５０９においてカウンタ“ｔ”の値と、ステップＳ４０３においてメモリに格納した入力帳票の表領域個数とを比較し、“ｔ”が表領域個数を越えている場合は、その入力帳票における全ての表領域を登録帳票における“ｎ”番目の表領域と比較し終えたと判断し、ステップＳ５１０に進む。これは、登録帳票における“ｎ”番目の表領域に対して入力帳票におけるある属性を有する領域の比較が終了し、入力帳票における次の属性を有する領域との比較に移行するという意味である。“ｔ”が表領域個数を越えていな場合は、ステップＳ５０４に戻り、新しい“ｔ”番目の表領域と登録帳票における“ｎ”番目の表領域との比較処理を開始する。
【００５８】
ステップＳ５１０では、入力帳票の枠領域についてのカウンタ“ｆ”を“１”にセットする。このカウンタ“ｆ”は、一つの入力帳票に複数の枠領域があった場合に、各々の枠領域についてステップＳ５１１からＳ５１３までのステップからなる登録帳票の表領域との一致の判断を行うべく、注目枠領域を一つずつシフトするためのカウンタである。
【００５９】
ステップＳ５１１では、入力帳票のｆ番目の枠領域が既にＳ５１２の判断ステップを完了しているか判断する。この判断は、そのｆ番目の枠領域データにおける“対応済み”を示すフラグが“１”になっているか否かにより実現出来る。ステップＳ５１１において“対応済み”を示すフラグが“１”であると判断した場合には、ステップＳ５１２をスキップしてステップＳ５１５に進む。
【００６０】
ステップＳ５１２では、登録帳票の領域データのｎ番目の表領域と、入力帳票の領域データのｆ番目の枠領域の位置と大きさとの各々を比較し、その比較の結果に基づいて各領域が一致するか否かを判断する。本ステップにおける判断においては、各領域データの位置データ及び大きさデータが完全に一致する場合のみならず、各帳票を読み取るときに生じた画像入力ずれを考慮して、幅を持たせて一致の判断を行う。ステップＳ５１２において一致すると判断した場合、ステップＳ５１３に進み、ｆ番目の枠領域データにおける“対応済み”を示すフラグを“１”にセットすると共に対応する表領域番号“ｎ”を格納する。
【００６１】
ステップＳ５１４において、スコア“ｓ”に１を加算してステップＳ５２４に進み、登録帳票の領域データにおける次の表領域へと比較処理を進める。
【００６２】
ステップＳ５１５では、入力帳票の枠領域についてのカウンタ“ｆ”に１を加算し、次の枠領域を入力帳票の領域出たから選択する処理を行う。ステップＳ５１６においてカウンタ“ｆ”の値と、ステップＳ４０３においてメモリに格納した入力帳票の枠領域個数とを比較し、“ｆ”が枠領域個数を越えている場合は、その入力帳票における全ての枠領域を登録帳票における“ｎ”番目の表領域と比較し終えたと判断し、ステップＳ５１８に進む。“ｆ”が枠領域個数を越えていない場合は、ステップＳ５１１に戻り、新しい“ｆ”番目の枠領域と登録帳票における“ｎ”番目の表領域との比較処理を開始する。
【００６３】
ステップＳ５１７では、入力帳票の図領域についてのカウンタ“ｐ”を“１”にセットする。このカウンタ“ｐ”は、一つの入力帳票に複数の図領域があった場合に、各々の図領域についてステップＳ５１８からＳ５２０までのステップからなる登録帳票の表領域との一致の判断を行うべく、注目図領域を一つずつシフトするためのカウンタである。
【００６４】
ステップＳ５１８では、入力帳票のｐ番目の図領域が既にＳ５１９の判断ステップを完了しているか判断する。この判断は、そのｐ番目の図領域データにおける“対応済み”を示すフラグが“１”になっているか否かにより実現できる。ステップＳ５１８において“対応済み”を示すフラグが“１”であると判断した場合には、ステップＳ５１９をスキップしてステップＳ５２２に進む。
【００６５】
ステップＳ５１９では、登録帳票の領域データのｎ番目の表領域と、入力帳票の領域データのｐ番目の図領域の位置と大きさとの各々を比較し、その比較の結果に基づいて各領域が一致するか否かを判断する。本ステップにおける判断においては、各領域データの位置データ及び大きさデータが完全一致する場合のみならず、各帳票を読み取るときに生じた画像入力ずれを考慮して、幅を持たせて一致の判断を行う。ステップＳ５１９において一致すると判断した場合、ステップＳ５２０に進み、ｐ番目の図領域データにおける“対応済み”を示すフラグを“１”にセットすると共に対応する表領域番号“ｎ”を格納する。ステップＳ５２１においてスコア“ｓ”に１を加算してステップＳ５２４に進み、登録帳票の領域データにおける対の表領域へと比較処理を進める。
【００６６】
ステップＳ５２２では、入力帳票の図領域についてのカウンタ“ｐ”に１を加算し、次の図領域を入力帳票の領域データから選択する処理を行う。ステップＳ５２３においてカウンタ“ｐ”の値と、ステップＳ４０３においてメモリに格納した入力帳票の図領域個数とを比較し、“ｐ”が図領域個数を越えている場合は、その入力帳票における全ての図領域を登録帳票における“ｎ”番目の表領域と比較し終えたと判断し、ステップＳ５２４に進む。“ｐ”が図領域個数を越えていない場合は、ステップＳ５１８に戻り、新しい“ｐ”番目の図領域と登録帳票における“ｎ番目の表領域との比較処理を開始する。
【００６７】
ステップＳ５２４では、“ｎ”にＪを加算し、入力帳票の各領域と比較する、登録帳票における対象表領域を次の新しい領域に進める。
【００６８】
ステップＳ５２５では、カウンタ“ｎ”の値と、登録帳票の表領域個数とを比較し、“ｎ”が登録帳票の表領域個数を越えている場合は、その登録帳票における全ての表領域が入力帳票と比較されたと比較し終えたと判断し、ステップＳ５２５に進む。ステップＳ５２５では、スコア“ｓ”の値を登録帳票の表領域個数で割り、その値をステップＳ４０１で入力した帳票と登録帳票との類似度として登録帳票識別情報と共にメモリに格納する。
【００６９】
本実施形態において、図１０に示すフローチャートの処理は、メモリに格納されている登録帳票の各々に対して行われるが、更に、ステップＳ４０３とＳ４０４との間に、類似度を算出する登録帳票をメモリに登録されている登録帳票から選択する処理を行うことにより、図１０のフローチャートに示した類似度を算出する処理を実行する回数を減らすことも可能である。このような処理は、絞り込み処理と呼び、図１１乃至図１４を参照して詳細に後述する。
【００７０】
また、図１０のフローチャートに示す処理は、登録帳票と入力帳票との類似度を求めるときに、同じ属性を有する領域同士の比較のみならず、異なる属性を有する領域をも比較することにより、入力した帳票画像を分析して結果、領域の属性が間違って判断された場合にも、類似帳票の検索処理にもれる危険を少なくすることを可能にする。即ち、この処理は図、表及び枠の間での領域にする。即ち、この処理は図、表及び枠の間での領域属性判定の不正確さを類似度の算出の段階において吸収するものであり、より高い精度の帳票類似判定を可能とするものである。
【００７１】
ステップＳ５０７、Ｓ５１４及びＳ５２１において、等しくスコア“ｓ”に１を加算したが、異なる値を用いることも可能である。例えば、登録帳票の表領域と入力帳票の表領域が一致した場合には１を加算し、登録帳票の表領域と入力帳票の枠或いは図領域が一致した場合には０．５を加算することも可能である。このようなスコア計算時の重みは、両帳票における属性の種類と対応付けて予めメモリに保存しておくか、或いは同じ属性の場合と異なる属性の場合の各々の重みとしてメモリに保存しておくことにより、上述のスコア加算ステップにおいてそのデータを用いることにより実現することができる。
【００７２】
本実施形態において、図１０のフローチャートにおいては、登録帳票の領域データにおける表領域のみをカウンタ“ｎ”の制御のもと選択し、入力帳票の各領域と比較する処理を示したが、他の属性を有する領域も選択して入力帳票の各領域と比較することも可能である。
【００７３】
登録帳票と比較する入力帳票における領域の属性は、図１０のフローチャートに示した属性に限るものではなく、その他の属性のものと比較しても良いし、また、より少ない属性に限定して良い。この比較対象として選択する領域の属性は、ステップＳ４０４より前に定めておけば良く、例えばオペレータが直接指定しても良いし、モードによって切り替えても良い。
【００７４】
次に、Ｓ４０４の類似度を算出する処理を実行する登録帳票をメモリに登録されている登録帳票から選択する絞り込み処理の一例について説明する。
【００７５】
＜絞り込み処理＞
図１１のフローチャートは、図９のフローチャートの処理に絞り込み処理を実行するための比較基準入力ステップＳ１１０１と絞り込みステップＳ１１０３を追加したものである。
【００７６】
ステップＳ１１０１で入力する比較基準は、比較対象の絞り込みを行う際の基準値である。ここでは、後述する入力帳票から選択された比較対象表領域が含むセル個数と、登録帳票から選択された比較対象表領域が含むセル個数との差をどの程度まで許容するかを示すパーセント値を設定する。この処理は、登録帳票から選択された比較対象領域が含むセル個数に対するこの設定されたパーセント値が特定する個数以上の差があると判断した場合に、その登録帳票は類似度を算出する処理の対象から外すことにより、絞り込み処理を行うものである。比較基準は一般的には３０％程度が良く、その値をデフォルト値として格納しておき、使用することもできるが、オペレータが直接入力したり、或いは認識精度を特定するモード等に応じて変化させても良い。
【００７７】
ステップＳ４０１からステップＳ４０３は図９のフローチャートにおいて説明した処理と同様である。
【００７８】
ステップＳ１１０３は、ステップＳ１１０１で設定された比較基準値に基づき類似度算出を実行する登録帳票の絞り込みを行うステップである。本ステップの処理は、図１２のフローチャートを用いて後に詳細に説明する。
【００７９】
ステップＳ４０４及びステップＳ４０５も図９のフローチャートにおいて説明した処理と同様であるが、ステップＳ４０４で類似度算出処理を行う登録帳票はステップＳ１１０３の処理により選択した登録帳票のみである点で、図９のフローチャートにおける処理とは異なる。
【００８０】
図１２は、ステップＳ１１０３における処理を詳細に示すフローチャートである。
【００８１】
ステップＳ１２０１において、Ｓ４０３で格納した入力帳票の帳票データから表領域の個数と、最大面積を有する表領域が含むセルの個数のデータを読み取る。
【００８２】
ステップＳ１２０２において、登録帳票用カウンタ“ｊ”を１に設定する。このカウンタにより、メモリに格納されている全登録帳票に対してステップＳ１２０４からＳ１２１０に示す処理を実行し、類似度算出処理を実行する価値のある登録帳票であるか否かの判断を行う制御を可能とする。
【００８３】
ステップＳ１２０４において、“ｊ”番目の登録帳票のテーブル個数及びその登録帳票における最大面積を有する表領域が含むセルの個数をメモリから読み取り、ワークメモリに格納する。
【００８４】
ステップＳ１２０６において、ステップＳ１２０１で読み取った入力帳票の表領域の個数とステップＳ１２０４で格納した“ｊ”番目の登録帳票の表領域の個数とを比較し、同じか否かを判断する。この判断で同じであると判断された場合はステップＳ１２０８へ進み、異なると判断された場合はステップＳ１２１２へ進む。
【００８５】
ステップＳ１２０８において、ステップＳ１２０１で読み取った入力帳票の最大面積を有する表領域のセルの個数と、ステップＳ１２０４で格納した“ｊ”番目の登録帳票の最大面積を有する表領域のセルの個数とを比較する。比較されたセル個数差が、ステップＳ１１０１で設定された基準値以内であればステップＳ１２１０へ進み、基準値を越えた場合はステップＳ１２１２へ進む。
【００８６】
ステップＳ１２１０において、“ｊ”番目の登録帳票をステップＳ４０４の類似度算出処理において対象帳票として選択すべく、メモリの“ｊ”番目登録帳票のデータにおける詳細マッチングの対象であることを示す“絞り込み”フラグを“ＯＮ”にセットする。このステップＳ１２１０においてフラグが“ＯＮ”にセットされた登録帳票のみが詳細に類似度算出処理を行う対象となり、それ以外の登録帳票は処理対象とならないという絞り込み処理が実現する。
【００８７】
ステップＳ１２１２において、カウンタ“ｊ”に１を加算し、ステップＳ１２０４からステップＳ１２１０の処理を実行する対象の登録帳票を次の新しい登録帳票にシフトする。
【００８８】
ステップＳ１２１４において、カウンタ“ｊ”がメモリに登録されている登録帳票の数より大きいか否かを判断し、大きいと判断される場合は登録されている全登録帳票について比較対象となり得るか否かの判断が完了したと判断して本処理を終了し、カウンタ“ｊ”が登録帳票数を越えていないと判断された場合はＳ１２０４に進み、新しい“ｊ”番目の登録帳票についての処理を開始する。
【００８９】
上述した図１２のフローチャートの処理においては、最大面積を有する表領域が含むセルの個数を絞り込み処理の判断基準として用いたが、他の表領域、例えば２番目に面積が大きい表領域が含むセルの個数を用いても良い。また、表領域の個数ではなく、他の属性の領域の個数や、複数の属性の領域の個数の合計を用いても良い。
【００９０】
次に、類似度の算出を行う登録帳票を絞りこむ処理を、多段階に行う例について図１３のフローチャートを用いて説明する。
【００９１】
ステップＳ１３００において、ユーザに検索モードとして高速検索モード或いは通常検索モードを入力させる。
【００９２】
ステップＳ４０１からステップＳ４０３は、図９のフローチャートに示した処理と同様である。
【００９３】
ステップＳ１３０６において、類似度の算出を行う対象の登録帳票を多段階に絞り込み、ステップＳ４０４とステップＳ４０５において詳細マッチングを行う。
【００９４】
図１４のフローチャートは、図１３のステップＳ１３０６における処理を詳細に示す。絞り込みとは、前述したように類似度を算出する登録帳票を限定するための処理を意味し、詳細マッチングとは、その絞り込み処理により選択された登録帳票について入力帳票との類似度を算出し、複数の選択された登録帳票から得られた類似度を比較する処理を意味する。
【００９５】
ステップＳ１４００において、モードを判定する。ステップＳ１３００においてユーザにより入力され、メモリに保持されたモード情報を読み出して判定する。高速検索モードと判定された場合はステップＳ１４１５へ進み、通常検索モードと判定された場合はステップＳ１４０１へ進む。
【００９６】
まず、高速検索モードが選択された場合のステップＳ１４１５からの処理について説明する。ステップＳ１４１５において、第１の絞り込み条件（図１５）を満たす登録帳票をメモリから選択し、ステップＳ１４１６において、ステップＳ１４１５で選択した登録帳票についてステップＳ４０１で入力した入力帳票との類似度を求める。また、ステップＳ１４１５で複数の登録帳票が選択された場合は、ステップＳ１４１６における類似度の算出も選択された登録帳票の数だけ繰り返す。類似度の算出は、表や枠等の所定の属性を有する領域の数、その位置、大きさや、最大面積を有する表領域が含むセルの数等を比較し、各比較条件について類似すると判断する毎にスコアを加算する方法等により可能である。
【００９７】
以下、図１４のフローチャートに含まれる類似度の計算は、ステップＳ１４１６における処理と同様である。
【００９８】
ステップＳ１４１８において、ステップＳ１４１６で類似度を求めた登録帳票の中に、第１の所定値以上の類似度が得られた登録帳票が存在するか否かを判断する。この第１の所定値とは、図１４のフローチャートの処理が開始する以前に定められ、メモリに格納されている値であって、ユーザにより設定されるか、或いは認識精度等のモードによって所定の値を選択するようにしても良い。他のステップで用いる第２から第４の所定値においても同様である。
【００９９】
ステップＳ１４１８において、第１の所定値を越える類似度を有する登録帳票が存在すると判断された場合は、それ以上の絞り込み処理を行わずにステップＳ１４２８へ進む。ステップＳ１４１８においてＮｏと判定された場合は、ステップＳ１４１９に進み、次の段階の絞り込み処理を開始する。
【０１００】
ステップＳ１４１９において、第２の絞り込み条件（図１５）を満たす登録帳票をメモリから選択し、ステップＳ１４２０において、ステップＳ１４１９で選択した登録帳票についてステップＳ４０１で入力した入力帳票との類似度を求める。また、ステップＳ１４１９で複数の登録帳票が選択された場合は、ステップＳ１４２０における類似度の算出も選択された登録帳票の数だけ繰り返す。
【０１０１】
ステップＳ１４２２において、ステップＳ１４２０で類似度を求めた登録帳票の中に、第２の所定値以上の類似度が得られた登録帳票が存在するか否かを判断する。
【０１０２】
ステップＳ１４２２において、第２の所定値を越える類似度を有する登録帳票が存在すると判断された場合は、それ以上の絞り込み処理を行わずにステップＳ１４２８へ進む。ステップＳ１４２２においてＮｏと判定された場合は、ステップＳ１４２３に進み、次の段階の絞り込み処理を開始する。
【０１０３】
尚、上述したステップＳ１４１５の絞り込み処理において、表領域の個数が同じであると判断された登録帳票のデータにおける表領域の個数が同じであることを示すフラグを“ＯＮ”にセットしておくことにより、ステップＳ１４１９における絞り込み処理において、そのフラグが“ＯＮ”になっている登録帳票についてのみ「最大面積を有する表領域が含むセルの個数の差が所定値以下」という条件の判定を行うことにより、第２の絞り込み処理における判断対象帳票の数が減少し、高速化することができる。
【０１０４】
また、上述したステップＳ１４１５において、当該絞り込み処理により選択された登録帳票のデータにおける類似度判定済みを示すフラグを“ＯＮ”にセットしておくことにより、ステップＳ１４１９における絞り込み処理において、そのフラグが“ＯＮ”になっている登録帳票は絞り込み判定処理からはずすことができ、第２の絞り込み処理における判断対象帳票の数が減少し、高速化することができる。
【０１０５】
また、上述したステップＳ１４１９において選択された登録帳票のデータにおいても、類似度判定済みを示すフラグを“ＯＮ”にセットし、ステップＳ１４２３における第３の絞り込み処理においてこのフラグの情報を、ステップＳ１４１９と同様に用いることにより、第３の絞り込み判定処理も高速化することができる。
【０１０６】
ステップＳ１４２３において、第３の絞り込み条件（図１５）を満たす登録帳票をメモリから選択し、ステップＳ１４２４において、ステップＳ１４２３で選択した登録帳票についてステップＳ４０１で入力した入力帳票との類似度を求める。この第３の絞り込み条件は、領域の数が同じ登録帳票を選択するものであるが、ここで領域とは表、枠、図、線等全ての属性、或いは予め定めてある属性の全ての領域を指す。ステップＳ１４２３で複数の登録帳票が選択された場合は、ステップＳ１４２４における類似度の算出も選択された登録帳票の数だけ繰り返す。
【０１０７】
Ｓ１４２６において、ステップＳ１４２４で類似度を求めた登録帳票の中に、第３の所定値以上の類似度が得られた登録帳票が存在するか否かを判断する。ステップＳ１４２６において、第３の所定値を越える類似度を有する登録帳票が存在すると判断された場合は、ステップＳ１４２８へ進む。ステップＳ１４２６においてＮｏと判定された場合は、ステップＳ１４３０に進み、類似帳票無しという情報を出力する。
【０１０８】
ステップＳ１４２８において、ステップＳ１４１８、ステップＳ１４２２或いはステップＳ１４２６で選択された登録帳票の類似度を、類似度の高い順にソートし、ステップＳ１４３２において、ソートした結果に基づいて、類似度の高い順に登録帳票リストを出力する。ここで出力する登録帳票リストは、ステップＳ１４１８、ステップＳ１４２２或いはステップＳ１４２６で選択された全ての登録帳票であっても良いし、最も高い類似度を有する登録帳票のみや、予め定めた個数の上位登録帳票のみであっても良い。
【０１０９】
図１５に示したように、図１４のフローチャートに示す多段階絞り込み処理に用いる絞り込み条件は、第１、第２、第３と絞り込みが進むにつれて条件を緩くしている。このように絞り込み条件を設定することにより、最初に少数の類似度が高いことが予想される帳票候補が選択され、もしそれが存在しない場合帳票候補をおおく選択するような制御が実現できる。従って、類似度の計算及び比較のための処理の負荷が必要最小限となり、帳票検索の高速化に大いに貢献することになる。
【０１１０】
次に、通常検索モードが選択された場合のステップＳ１４０１からの処理について説明する。
【０１１１】
ステップＳ１４０１において、第１の絞り込み条件（図１５）を満たす登録帳票をメモリから選択し、ステップＳ１４０２において、ステップＳ１４０１で選択した登録帳票についてステップＳ４０１で入力した入力帳票との類似度を求める。ステップＳ１４０１で複数の登録帳票が選択された場合は、ステップＳ１４０２における類似度の算出も選択された登録帳票の数だけ繰り返す。そして、選択された登録帳票をメモリ内で識別するための識別情報と、その登録帳票について求めた類似度を対応付けてメモリに格納する。
【０１１２】
絞り込み条件を満たす登録帳票の選択は、ステップＳ１４１５における処理と同様であり、且つ類似度の求め方はステップＳ１４１６と同様である。
【０１１３】
以下、ステップＳ１４０３からステップＳ１４０６においても同様の方法を用いる。
【０１１４】
ステップＳ１４０３において、第２の絞り込み条件（図１５）を満たす登録帳票をメモリから選択し、ステップＳ１４０４において、ステップＳ１４０３で選択した登録帳票についてステップＳ４０３で入力した入力帳票との類似度を求める。ステップＳ１４０３で複数の登録帳票が選択された場合は、ステップＳ１４０４における類似度の算出も選択された登録帳票の数だけ繰り返す。そして、選択された登録帳票をメモリ内で識別するための識別情報と、その登録帳票について求めた類似度を対応付けてメモリに格納する。
【０１１５】
尚、ステップＳ１４０１で選択された登録帳票については、メモリ内のその登録帳票のデータにおける「候補帳票として選択済み」を示すフラグを“１”にセットしておき、ステップＳ１４０３においてそのフラグが“１”になっているものについては選択対象からはずすことにより、ステップＳ１４０３における選択処理及びステップＳ１４０６における類似度算出処理を減らすことができる。また、ステップＳ１４０３において新たに候補帳票として選択された登録帳票についても、そのフラグを“１”にセットし、ステップＳ１４０５の処理においてもフラグの示す情報を用いることにより、ステップＳ１４０５及びステップＳ１４０６においても同様の効果を得ることができる。
【０１１６】
ステップＳ１４０５において、第３の絞り込み条件（図１５）を満たす登録帳票をメモリから選択し、ステップＳ１４０６において、ステップＳ１４０５で選択した登録帳票についてステップＳ４０１で入力した入力帳票との類似度を求める。ステップＳ１４０５で複数の登録帳票が選択された場合は、ステップＳ１４０６における類似度の算出も選択された登録帳票の数だけ繰り返す。そして、選択された登録帳票をメモリ内で識別するための識別情報と、その登録帳票について求めた類似度を対応付けてメモリに格納する。
【０１１７】
ステップＳ１４０８において、ステップＳ１４０２、ステップＳ１４０４及びステップＳ１４０６で選択され、メモリに保存された登録帳票の類似度を類似度の高い順にソートし、その結果に基づいて、ステップＳ１４１０において第４の所定値以上の類似度を持つ登録帳票があるか否かを判断する。存在しないと判断された場合は、ステップＳ１４１４に進み、類似帳票無しであるという情報を出力する。ステップＳ１４１０において第４の所定値以上の類似度を有する登録帳票が存在すると判断した場合は、ステップＳ１４１２へ進み、その登録帳票を選択し、ステップＳ１４３２に進む。
【０１１８】
ステップＳ１４１４、ステップＳ１４３０及びステップＳ１４３２における出力は、表示手段或いは印字手段等の出力手段により当該情報を出力すればオペレータに報知することが可能であるし、或いは他のプログラムにコマンドとして送ることにより、類似帳票無しという情報を用いて次なる処理を開始することも可能である。
【０１１９】
尚、多段階絞り込み処理に用いる絞り込み条件は、図１４及び図１５に示したように３段階ではなく、任意の段階で行うことが可能である。また、そこで用いる条件も、絞り込みの条件が順次緩くなる条件を用いれば、他の条件であっても良い。
【０１２０】
図１４のフローチャートにおいて、通常検索モードと高速検索モードで同じ絞り込み方法及び類似度算出方法を用いる例について説明したが、両モードで異なる条件を用い、或いは通常検索モードにおいては精度を優先させるような類似度算出方法を用いることも可能である。また、類似度の算出には、領域データを用いるのではなく、他の識別関数によるマッチング手法を用いても良い。
【０１２１】
次に、帳票登録時に、その登録用に読み取った帳票画像から得られる特徴に基づいて、各帳票画像に適した比較基準を定め、登録する処理について説明する。この比較の基準は、未知帳票の画像を入力し、分類する際の比較処理において用いる条件であって、各登録帳票画像の画質、タイプによって定める適切な条件である。
【０１２２】
図１６のフローチャートは、帳票を登録するときの処理を示すものであり、この処理において登録する帳票画像に適した比較基準を求め、保存する。
【０１２３】
図１６のフローチャートにおいてステップＳ２０１、ステップＳ２０２及びステップＳ２０４で行う処理は、図４のフローチャートにおける同じステップ番号を付したステップにおける処理と同様である。
【０１２４】
ステップＳ２０２の後に、ステップＳ２０２の領域分割処理で得られた登録帳票画像の特徴を用いて比較基準を設定する。この比較基準を設定する処理の詳細は、図１８のフローチャートに示し、後述する。ここで設定する比較基準は、例えば、テーブルを構成するセルの中心の距離、セルの個数、並びにテーブル個数等のテーブルの特徴の一つであり、ステップＳ２０１で入力した帳票画像毎に求める。
【０１２５】
ステップＳ１６０３において、ステップＳ２０２の領域分割処理によって得られた画像の文字、図、表、枠、線等の領域のうち、表の領域についての、その位置、大きさ、及び個数と、ステップＳ１６０１で求めた比較基準を、この登録帳票のデータとしてメモリ１０を介して記憶装置８に登録する。
【０１２６】
次に、ステップＳ１６０１における比較基準を求める処理を図１７のフローチャートに示し、以下に説明する。
【０１２７】
入力された未知帳票画像に類似している帳票画像を、予め記憶している複数の登録帳票画像の中から検索するときに、表の個数が所定数“ＴＢ”より少なく、且つ一つの表を構成するセルの個数が所定数“ＳＥＬ”より少ない表を含む帳票画像と他の帳票との類似判断処理は、不正確になる可能性が高い。このような特徴を有する帳票の類似判断が不正確になる原因は、帳票を読み取る際の諸条件、例えば、読み取るべき帳票の紙の状態、或いはスキャナ等の装置の状態等に起因している。
【０１２８】
そして、不正確な類似判断処理は、絞り込み処理における正しい類似相手が選択されないという不適切な状況を生じる。図１６の処理においては、そのような特徴を有する帳票画像については、類似するか否かの判断の基準を緩くするための比較基準を用いるべく、帳票登録時にその帳票の特徴に適した比較基準を求める処理を含んでいる。この処理において、不正確な類似処理がなされる可能性のある帳票画像の特徴を他の帳票の特徴と比較する際に使用する比較基準を、帳票が含む表の個数が完全に類似しない帳票をも候補として選択する比較基準を設定している。
【０１２９】
ステップＳ１７０１において、ステップＳ２０２で領域分割して得た結果に基づいて入力された帳票画像が含む表の個数が所定値“ＴＢ”以上か否かを判断し、当該所定値よりテーブル個数が少ないと判断された場合はステップＳ１７０３に進み、テーブル個数が当該所定値以上と判断された場合にはステップＳ１７０９に進む。このステップＳ１７０１の判断に用いる所定値“ＴＢ”は、メインメモリ１０に予め記憶されている値か、或いはこの処理の前にユーザに設定され、メインメモリ１０に格納された値である。例えば、所定値“ＴＢ”に、一つの帳票画像に含まれる平均的な表の個数（例えば多数の帳票画像を用いた実験によって求めた個数）を設定する。そのような設定値“ＴＢ”を用いることにより、平均的個数以下の表紙か含まない帳票をステップＳ１７０１で検出することが可能となる。ある実施権において、平均的な表の個数は３個であったので、この値を所定値“ＴＢ”として用いることが可能である。
【０１３０】
ステップＳ１７０３において、ステップＳ２０２で領域分割して得た結果に基づいて、入力された帳票画像に含まれる表（複数のセルからなる部分画像）の中に、表が含むセルの個数が所定値“ＳＥＬ”以下の表、即ち“不完全表”として分類される表があるか否かを判別する。本ステップの判断において、不完全表が有ると判別された場合にはステップＳ１７０５に進み、不完全表が無いと判別された場合にはステップＳ１７０９に進む。例えば、所定値“ＳＥＬ”に、“２”程度の値を設定する。そのような所定値“ＳＥＬ”を用いることにより、行方向、或いは列方向のセルが１つ以下である表を“不完全表”としてステップＳ１７０３で検出することが可能となる。
【０１３１】
また、ステップＳ１７０１において、表の個数が“０”と判定された場合は、ステップＳ１７０３において“Ｙｅｓ”判定としてステップＳ１７０５に進む。
【０１３２】
ステップＳ１７０５において、ステップＳ１７０３で検出された帳票画像が含む不完全表の個数を計数する。
【０１３３】
ステップＳ１７０７において、後述する類似帳票画像の検索処理において用いる第一の比較基準として、「入力帳票が含む表の個数と、登録されている帳票が含む表の個数とが完全に一致しなくても、所定の条件を満足すれば、その登録帳票を当該未知帳票の類似候補として選択する」という条件を設定する。この条件もステップＳ１６０３において格納される。
【０１３４】
ここで、ステップＳ１７０７で設定する第１の比較基準は、後述するステップＳ１７０９で設定する条件より緩い条件である。更に、ステップＳ１７０７で設定される条件に含まれる「所定の条件」として、「未知帳票が含む表の個数と登録されている帳票が含む表の個数との差が、ステップＳ１７０５で求めた不完全表の個数以下の場合には、その登録帳票を当該未知帳票の類似候補として選択する」という条件を設定する。従って、この場合はステップＳ１６０３においてステップＳ１７０５で計数した不完全表の個数も特徴量として記憶装置８に格納する。
【０１３５】
ステップＳ１７０９において、後述する類似帳票画像の検索処理において用いる第２の比較基準として、「入力帳票が含む表の個数と、登録されている帳票が含む表の個数とが一致したときに、その登録されている帳票を当該未知帳票の類似候補として選択する」という条件を設定する。このステップＳ１７０９で設定された条件は、ステップＳ１６０３において格納される。
【０１３６】
尚、ステップＳ１７０７及びステップＳ１７０９で設定する条件は、予めメインメモリ１０に格納されているものとし、ステップＳ１６０３では、条件そのものを格納する替わりに、どの条件を設定するかという条件識別情報を法表の特徴量と共に格納しても良い。
【０１３７】
このように、複数種類の帳票画像を予め登録するときに、図１７のフローチャートに示した如く比較基準を設定することにより、登録する帳票画像に含まれる表の状態（表の個数及び表に含まれるセルの個数）に応じて、適切な比較基準が設定できるため、帳票認識を正確且つ効率良く行うことができる。
【０１３８】
上述したステップＳ１７０１においては、表の個数を一つの所定値“ＴＢ”と比較したが、複数の所定値と比較しても良い。複数の所定値“ＴＢ１”、“ＴＢ２”等と、それら複数の所定値を比較する順番をメインメモリ１０に格納しておき、順番に従って各所定値を読み出し、比較処理を行うことができる。更に、一律の順番で複数の所定値を用いるのではなく、連続的に変化する所定値“ＴＢ”の変化の特性を表わすルックアップテーブル等を予めメモリ１０に記憶しておき、そのルックアップテーブルに従って所定値“ＴＢ”を変化させながら比較処理を行っても良い。この場合、所定値“ＴＢ”に対応する比較基準がＳ１７０９で設定される。
【０１３９】
また、上述したステップＳ１７０３において、表が含むセルの個数を所定値“ＳＥＬ”と比較した結果によって、不完全表であるか否かを判定したが、判定基準として、例えば各表の面積、表内のセルの分布或いはセル属性等の構造情報を用いても良い。更に、それらの条件を複数レベルで用いたり、複数の条件を組み合わせて複数段階に表の不完全さを判定しても良い。
【０１４０】
次に、図１６のフローチャートに示した登録処理によって記憶装置８に登録した登録帳票の特徴情報の中から、未知帳票（入力帳票）と類似する帳票を検索する処理について、図１８のフローチャートを用いて説明する。
【０１４１】
図１８においてステップＳ４０１からステップＳ４０３及びステップＳ４０３で行われる処理は、図９のフローチャートにおける同じステップ番号を付したステップで行われる処理と同様である。
【０１４２】
ステップＳ１８０２において、図１６のステップＳ１６１４で記憶装置８に格納した比較基準に基づいて、ステップＳ４０３で格納した帳票の表の個数と、図１６のフローチャートに示した登録処理によって記憶装置８に予め登録されている帳票画像の表の個数とを比較することにより、処理対象となっているステップＳ４０１で入力した帳票に類似する可能性が高い帳票をメモリ１０に格納されている帳票データから絞り込む。
【０１４３】
ステップＳ１８０４において、ステップＳ１８０２で絞り込んで選択された帳票の、記憶装置８に格納されている帳票情報の中から、詳細マッチング用の特徴量として、テーブル構造データ及びセルの文字コード等を抽出する。
【０１４４】
尚、ステップＳ４０１で入力した未知帳票の画像に類似する帳票画像を選択した後に、例えば、登録処理により記憶装置８に格納されているテーブル構造データ等を参照して、文字認識処理を行うべきと指定されている領域についてはステップＳ４０１で入力した帳票画像のその領域内の画像情報に対して文字認識処理を実行しても良い。この領域の判定のために、登録されている帳票とステップＳ４０１で入力した帳票の２つの画像を重ね合わせ、必要に応じて両画像のずれを補正すると良い。
【０１４５】
次に、帳票の絞り込み処理において入力画像を文字認識して得たコードデータをも用いる例について説明する。コードデータを用いるために、ステップＳ４０２において、抽出されたテキストブロックに含まれる文字画像を文字認識し、その文字認識結果とテキストブロックのデータを図２０に示すような帳票構造データとして記憶する。
【０１４６】
図１１におけるステップＳ１１０３、図１３におけるステップＳ１３０６及び図１８におけるステップＳ１８０２において、帳票構造データに格納されたデータに基づいてコードデータを用いた絞り込み処理を行う。この処理は、帳票の表データを用いて絞り込まれた候補帳票について、更に絞り込むためのものである。
【０１４７】
図２１のフローチャートは、コードデータを用いた帳票の類似度計算処理を示す。
【０１４８】
ステップＳ２１０１において、この処理以前の表データを用いた絞り込み処理において求めた登録帳票のレイアウト類似度をパラメータＳｉｍＬとして格納し、文字列類似度Ｓｉｍ及びＳｉｍＢに０を設定する。ここでＳｉｍＢは、処理中の文字ブロックの類似度を表すパラメータである。
【０１４９】
ステップＳ２１０３において、入力帳票の帳票構造データとして格納されているテキストブロック構造データに基づいて、登録重宝上のその位置に存在するテキストブロックを得る。
【０１５０】
ステップＳ２１０５において、各帳票のテキストブロック構造データに含まれる文字の類似度の平均値を基準値Ｓｔｈと比較する。基準値Ｓｔｈは活字文字と手書き文字とを識別するのに適切な値であって、予め実験により求められた値である。ステップＳ２１０５の比較処理は、コードデータを用いた絞り込み処理に用いるテキストブロックを、活字文字からなるテキストブロックに選択することを可能とするものである。
【０１５１】
ステップＳ２１０５の比較処理においてＹｅｓ判定の場合は、ステップＳ２１０７に進み、Ｎｏの判定の場合はステップＳ２１０９に進む。
【０１５２】
ステップＳ２１０７において、ステップＳ２１０５で選択したテキストブロックに含まれる文字コードデータを用いた文字類似度を計算する。
【０１５３】
ここで、文字類似度は、入力帳票のテキストブロック構造データに格納されている文字コードデータと登録帳票のテキストブロック構造データに格納されている文字コードデータとを順次比較し、二つの文字が同じ文字であると判断された場合は所定値を文字類似度ＳｉｍＢに加算し、二つの文字が異なると判断された場合は所定値を文字類似度ＳｉｍＢから減算することにより求められる。文字類似度Ｓｉｍは、類似度を算出するのに用いた全文字における一致文字の数の割合であって、パーセンテージで表した数値である。加算及び減算もパーセンテージで行う。また、加算及び減算する値は文字のサイズで重み付けをした値でも良い。
【０１５４】
ステップＳ２１０９において、ステップＳ２１０３からステップＳ２１０７の処理がなされていないテキストブロックがあるか判断し、Ｙｅｓ判定の場合はステップＳ２１０３に戻り、Ｎｏ判定の場合はステップＳ２１１１に進む。ステップＳ２１０９で他のテキストブロックがあると判断され、ステップＳ２１０３からＳ２１０７の処理が繰り返された場合、ステップＳ２１０７においては新しいテキストブロックから得た文字類似度ＳｉｍＢを文字類似度Ｓｉｍに加算する。
【０１５５】
ステップＳ２１１１において、文字類似度Ｓｉｍを上限値と比較する。文字類似度Ｓｉｍが上限値より大きい場合は、文字類似度Ｓｉｍを上限値に置き換える。文字類似度Ｓｉｍが上限値以下の場合は、その値を保持する。上限値は文字類似度Ｓｉｍを所定の範囲内に制限するための値であり、文字類似度の帳票類似度における影響度を所定の範囲内に制限して補助的に用いることを可能とするものである。上限値はステップＳ２１１１の処理以前に予め記憶されている値である。
【０１５６】
ステップＳ２１１３、において文字類似度Ｓｉｍをレイアウト類似度ＳｉｍＬに加算し、帳票の類似度を求める。
【０１５７】
文字類似度の計算におけるペナルティとして、ステップＳ２１０５で選択されなかったテキストブロックを用いることも可能である。そのために、ステップＳ２１０５の後でそのテキストブロックに含まれる文字の数とペナルティ係数とに基づいてペナルティ値（マイナス値）を計算し、そのペナルティ値を文字類似度ＳｉｍＢに加算、即ち文字類似度Ｓｉｍを低くする。
【０１５８】
活字文字と手書き文字の両方を含むテキストブロックから文字類似度の計算のために活字文字を選択することにより、文字類似度の計算はより正確になる。そのために、ステップＳ２１０７における各文字の一致を判断する以前にその文字が活字文字か否かを判断する。その判断方法はステップＳ２１０５における処理と同様であり、文字認識信頼度の判断に基づく。
【０１５９】
帳票から一つも表が抽出されない場合においても、文字類似度により帳票の類似評価が可能となる。
【０１６０】
帳票が、図２２（ａ）に示されるような「切り取り線」で切られた一方の原稿である可能性がある。その場合、図２２（ｂ）に示されるように入力画像は「切り取り線」という文字の一部分やはさみの絵の一部を含む。これらの部分画像を文字として認識処理或いは文字類似度計算された場合、その結果は不正確となる。認識処理及び文字類似度計算の精度を向上させるために、ステップＳ４０２において図２３のフローチャートに示す処理を実行する。この処理は、帳票構造データに含まれるデータに基づいて行われる。
【０１６１】
即ち、ステップＳ２３０１において、抽出された全ブロックの上端及び左端の最も原点に近い値を求め、その値を仮の原点Ｘ１及びＹ１として設定する。
【０１６２】
ステップＳ２３０３において、帳票データで取り得る最大の値をＸ及びＹに設定する。
【０１６３】
ステップＳ２３０７において、帳票構造データからブロックを選択する。この判断で未判断のブロックが帳票構造データに残っていない場合は、ステップＳ２３２９に進む。ステップＳ２３２９では、ＸとＹの値を原点としてセットする。
【０１６４】
ステップＳ２３０７において、ステップＳ２３０５で選択されたブロックがノイズブロックであるか否かを判断する。本ステップにおけるノイズブロックであるか否かの判断は、そのブロックサイズに基づいて行う。ノイズブロックでないと判断された場合はステップＳ２３０９に進み、ノイズブロックであると判断された場合はステップＳ２３０５に戻って別のブロックを選択する。
【０１６５】
ステップＳ２３０９において、ブロックがテキストブロックであるか否かを判断する。テキストブロックであると判断された場合はステップＳ２３１１に進み、そのブロックの左端ＸｂがＸ１と同じであるか判断し、同じであると判断された場合は、ステップＳ２３１３に進んでブロックの幅Ｗｂが予め定めてある幅基準値Ｗｔｈ以上であるか否かを判断する。
【０１６６】
ステップＳ２３１３では、ブロックの左端ＸｂをＸ１とすることにより、そのブロックが帳票から抽出されたブロックの中で最も左に位置する、即ち切り取り線である可能性があるか否かを判断することが可能となる。そしてその可能性があるブロックの幅を、ブロック幅の基準値Ｗｔｈと比較することにより、そのブロックが切り取り線を構成するドットであるか否かを判断する。
【０１６７】
ステップＳ２３０９及びステップＳ２３１１でＮｏ判定された場合はステップＳ２３１５に進む。ステップＳ２３１３でブロックの幅ＷｂがＷｔｈ以上であると判断された場合もステップＳ２３１５に進む。
【０１６８】
ステップＳ２３１５では、ブロック左端ＸｂがＸより小さい、即ちＸより左に位置するか否かを判断し、Ｙｅｓ判定の場合はステップＳ２３１７に進んでブロック左端Ｘｂの値をＸに設定する。ステップＳ２３１５でＮｏ判定の場合はステップＳ２３１９に進む。
【０１６９】
ステップＳ２３１９では、ブロック属性がテキストであるか判断し、Ｙｅｓ判定の場合はステップＳ２３２１に進む。ステップＳ２３２１では、ブロック上端ＹｂとＹ１とが同じであるか判断し、同じであると判断される場合はステップＳ２３２に進み、ブロック高さＨｂが予め定めてある高さ基準値Ｈｔｈ以上であるか否かを判断する。ブロックの上端ＹｂをＹ１と比較することにより、そのブロックが帳票から抽出されたブロックの中で最も上に位置する。即ち切り取り線である可能性があるか否かを判断することが可能となる。そしてその可能性があるブロックの高さを、ブロック高さの基準値Ｈｔｈと比較することにより、そのブロックが切り取り線を構成するドットであるか否かを判断する。
【０１７０】
ステップＳ２３１９及びステップＳ２３２１でＮｏ判定された場合は、ステップＳ２３２５に進む。ステップＳ２３２３でブロックの高さＨｂがＨｔｈ以上であると判断された場合もステップＳ２３２５に進む。
【０１７１】
ステップＳ２３２５では、ブロック上端ＹｂがＹより小さい、即ちＹより上に位置しているか否かを判断し、Ｙｅｓ判定の場合はステップＳ２３２７に進み、Ｙｂの値をＹに設定する。
【０１７２】
これらの処理により、原点判断に不適切な切り取り線のブロックを除外して原点を判断することができ、従って文字認識及び文字類似度の算出に不適切なブロックが処理対象とならず、精度が向上する。尚、原点判断に適切なブロックが一つもない場合は、Ｘ及びＹを０に設定する。
【０１７３】
尚、本発明は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１７４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または前部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１７５】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実施の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１７６】
【発明の効果】
本発明によれば、入力帳票に類似するテンプレート帳票（登録帳票）の識別、或いは分類の識別が精度良く且つ効率的に行える。
【図面の簡単な説明】
【図１】本発明の一実施形態を実現する帳票検索装置の概略構成を示すブロック図である。
【図２】本実施形態において採用可能なコンピュータシステムの構成例を示す図である。
【図３】本発明の一実施形態を実現可能な帳票検索装置の機能ブロック図である。
【図４】本実施形態における帳票分類装置にて行われる帳票登録処理を示すフローチャートである。
【図５】図４のフローチャートにおけるステップＳ２０２の領域分割処理の詳細を示すフローチャートである。
【図６】白領域及び黒領域の集合を例示する図である。
【図７】輪郭形状が四角形の黒領域と、輪郭形状が四角形ではない黒領域（図）とを例示する図である。
【図８】枠、表および図領域とそれぞれの内部白領域の集合の例を示す図である。
【図９】本実施形態における帳票分類装置にて行われる帳票検索処理を示すフローチャートである。
【図１０】ステップＳ４０４における類似度を求める処理の詳細を示すフローチャートである。
【図１１】図９のフローチャートの処理に、絞り込み処理を実行するための比較基準入力ステップＳ１１０１と絞り込みステップＳ１１０３を追加したフローチャートである。
【図１２】ステップＳ１１０３における処理を詳細に示すフローチャートである。
【図１３】類似度の算出を行う登録帳票を絞りこむ処理を、多段階に行う場合の手順を示すフローチャートである。
【図１４】図１３のステップＳ１３０６における処理を詳細に示すフローチャートである。
【図１５】多段階絞り込み処理に用いる絞り込み条件を説明する図である。
【図１６】本実施形態において帳票を登録するときの処理を示すフローチャートである。
【図１７】図１６のステップＳ１６０１における比較基準を求める処理の詳細を示すフローチャートである。
【図１８】図１６のフローチャートに示した登録処理によって記憶装置８に登録した帳票の特徴情報の中から、未知帳票と類似する帳票を検索する処理を示すフローチャートである。
【図１９】検索及び分類対象である所望の入力帳票が領域分割部１０２によって領域分割された場合の構成を例示する図である。
【図２０】帳票のデータ構造を説明する図である。
【図２１】コードデータを用いた帳票の類似度計算処理を示すフローチャートである。
【図２２】文字の一部が欠落している場合の処理を説明する図である。
【図２３】本実施形態において認識処理及び文字類似度計算の精度を向上させるために、図１８のステップＳ４０２において行われる処理のフローチャートである。
【図２４】白領域及び黒領域の定義を説明する図である。
【図１】
0004454789.tif 000002
【図２】
0004454789.tif 000003
【図３】
0004454789.tif 000004
【図４】
0004454789.tif 000005
【図５】
0004454789.tif 000006
【図６】
0004454789.tif 000007
【図７】
0004454789.tif 000008
【図８】
0004454789.tif 000009
【図９】
0004454789.tif 000010
【図１０】
0004454789.tif 000011
【図１１】
0004454789.tif 000012
【図１２】
0004454789.tif 000013
【図１３】
0004454789.tif 000014
【図１４】
0004454789.tif 000015
【図１５】
0004454789.tif 000016
【図１６】
0004454789.tif 000017
【図１７】
0004454789.tif 000018
【図１８】
0004454789.tif 000019
【図１９】
0004454789.tif 000020
【図２０】
0004454789.tif 000021
【図２１】
0004454789.tif 000022
【図２２】
0004454789.tif 000023
【図２３】
0004454789.tif 000024
【図２４】
0004454789.tif 000025