本発明の実施形態を図1〜図21を用いて説明する。なお、本発明は、以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
図1は、本発明の実施形態の帳票処理システムの構成図である。
帳票処理システムは、帳票処理用計算機100によって構成される。
帳票処理用計算機100は、画像入力部103、入力部105、出力部106、通信部107、制御部108、補助記憶部109、記憶部110、及び外部補助記憶部111を備える。これらは、内部バス112を介して互いに接続される。
画像入力部103には、スキャナ102によって読み取られた帳票画像が入力される。画像入力部103には、スキャナ102を介さずネットワーク等を介して帳票画像が電子データ104として入力されてもよい。
入力部105はユーザによる入力を受け付ける。例えば、入力部105はキーボード及びマウス等である。出力部106は帳票処理の結果を出力する。例えば、出力部106はディスプレイ及びプリンタ等である。通信部107は、外部ネットワーク113に接続されるインタフェースである。帳票処理の結果は、外部ネットワーク113に接続された外部サーバ114に出力されてもよい。
制御部108は帳票処理用計算機100の制御に関する各種処理を実行し、例えば、CPU等である。
補助記憶部109は、帳票処理用計算機100の内部に備わる記憶部110以外の記憶部であり、例えばHDDである。記憶部110は、制御部108が直接アクセスできる記憶部であり、例えばメモリである。外部補助記憶部111は、補助記憶部109の一種であり、帳票処理用計算機100の外部に備わる記憶部である。例えば、外部補助記憶部111は、CD−R、及びDVD−R等である。
帳票処理に関するプログラム(帳票処理プログラム)を含む各種プログラムは、補助記憶部109又は外部補助記憶部111に記憶され、制御部108が各種プログラムに実行する場合に記憶部110にロードされる。制御部108は、記憶部110にロードされたプログラムを実行する。
また、制御部108は、画像入力部103に入力された帳票画像を内部バス112を介して記憶部110、補助記憶部109、及び外部補助記憶部111等に記憶する。
なお、帳票処理用計算機100は、画像入力部103、制御部108、及び記憶部110を少なくとも備えていればよく、他の部は備えなくてもよい。
次に、帳票処理の概要について図2を用いて説明する。
図2は、本発明の実施形態の帳票処理のPAD図である。
制御部108が帳票処理プログラムを実行することによって、図2に示す帳票処理が実行される。
帳票処理とは、帳票処理用計算機100に入力された帳票画像から取得対象となる項目名と、当該項目名に対応するデータとを取得する処理である。
制御部108は、画像入力部103に帳票画像が入力されたことを検出する(201)。
次に、制御部108は、ステップ201の処理で入力が検出された帳票画像から枠を抽出する(202)。ステップ202の処理は、図4及び図5で詳細を説明する。なお、ステップ202の処理は、帳票処理用計算機100における枠抽出部として機能する。
次に、制御部108は、ステップ201の処理で入力が検出された帳票画像の種類が取得対象となる帳票の種類であるか否かを判定する(203)。ステップ203の処理の具体的な一例を示せば、制御部108は、取得対象となる帳票の種類を示すマークが入力された帳票画像に存在するか否かを判定する。
なお、図2では、ステップ203の処理がステップ202の処理の後に実行されることを示したが、ステップ203の処理は、ステップ202の処理の前、すなわち、ステップ201の処理とステップ202の処理との間に実行されてもよい。
ステップ203の処理で、入力された帳票画像が取得対象の帳票の種類であると判定された場合、制御部108は、ステップ202の処理で抽出された枠と、枠構造辞書600(図6A〜図6C参照)とを照合する枠構造照合処理を実行する(204)。枠構造処理は、ステップ202の処理で抽出された枠を、枠構造辞書600に登録された枠に対応付けた照合結果を算出する処理である。なお、ステップ204の処理は、帳票処理用計算機100における枠照合部として機能する。
ステップ202の処理で抽出された枠の数が枠構造辞書に登録された枠の数より少ない場合、照合結果が算出されない。なお、枠構造処理の詳細は図7及び図8で説明する。
次に、制御部108は、ステップ204の処理で照合結果が算出されたか否かを判定する(205)。
ステップ204の処理で照合結果が算出されたとステップ205の処理で判定された場合、制御部108は、照合結果において、枠構造辞書600に登録された枠に対応付けられた枠に存在する文字行を抽出する(206)。文字行とは、枠内に存在する文字の集合体である。なお、ステップ206の処理は、図10で詳細を説明する。ステップ206の処理は、帳票処理用計算機100における文字行抽出部として機能する。
次に、制御部108は、ステップ206の処理で抽出された文字行から文字らしい大きさの図形を文字パタン候補として切り出す(207)。ステップ207の処理では、例えば、漢字の偏を構成する図形と旁を構成する図形とを分離してもよいし、つぶれによる線同士の接触及びかすれによる線の分離を考慮して図形を切り出してもよい。ステップ207の処理における図形の切り出し方法は一意に定めず、複数の切り出し方法によって文字パタン候補を切り出す。なお、制御部108は、ステップ207の処理で切り出された文字パタン候補を候補文字ネットワーク形式(図16参照)で記憶部110に記憶する。
次に、制御部108は、記憶部110に記憶され、複数の文字が登録された図示しない文字データを参照し、ステップ207の処理で切り出された文字パタン候補と類似する文字と、文字パタン候補の各文字に対する類似度とを算出する文字識別処理を実行する(208)。文字識別処理は図19で詳細を説明する。
次に、制御部108は、ステップ208の処理で文字識別処理を実行した枠に対応付けられた枠構造辞書600に登録された枠の文字列情報と、ステップ208の処理で文字識別処理が実行された結果とを照合する特定項目文字列照合処理を実行する(209)。特定項目文字列照合処理では、制御部108は、ステップ208の処理で文字識別処理が実行された結果の識別候補から、当該文字識別処理が実行された枠に対応する枠構造辞書600に登録された枠の文字列情報を構成する文字と一致する識別候補を選択する。そして、制御部108は、抽出された文字行の選択した識別候補の類似度に基づいて、当該文字行を抽出した枠の枠スコアを算出する。そして、制御部108は、算出した枠スコアに基づいて照合結果の枠構造辞書600に対する類似度を示す照合結果スコアを算出し、算出した照合結果スコアが最大の照合結果を選択する。
なお、特定項目文字列照合処理は、図17で詳細を説明する。
照合結果スコアを算出するために実行されるステップ207〜209の処理は、帳票処理用計算機100におけるスコア算出部として機能する。
次に、制御部108は、ステップ209の処理で選択された照合結果の照合結果スコアが閾値以上であるか否かを判定する(210)。
ステップ209の処理で選択された照合結果の照合結果スコアが閾値以上であると、ステップ210の処理で判定された場合、制御部108は、当該照合結果のステップ209の処理で選択された文字から構成される文字列を出力し、帳票処理を終了する。
入力された帳票画像が取得対象の帳票の種類でないとステップ203の処理で判定された場合、ステップ204の処理で照合結果が算出されていないとステップ205の処理で判定された場合、ステップ209の処理で選択された照合結果の照合結果スコアが閾値より小さいとステップ210の処理で判定された場合、制御部108は、入力された帳票画像の全領域又は指定された領域から枠構造辞書600に登録された項目名と一致する文字列を抽出し、当該抽出した項目名に対応するデータを抽出する(213)。
そして、制御部108は、ステップ213の処理で抽出した項目名及びデータを出力し(213)、帳票処理を終了する。
本実施形態によれば、ステップ204の処理で抽出されたすべての照合結果に対して、枠構造辞書600に登録された文字列情報を用いて照合結果スコアを算出し、照合結果スコアが最大の照合結果を選択する。
これによって、罫線が少ない帳票から、取得対象の項目名及びデータを正確に取得できるようになる。
図3は、本発明の実施形態の処理対象となる帳票301の説明図である。
図3に示す帳票301の点線で囲まれた領域302に存在する表に、取得対象となる枠303が存在する。
取得対象となる枠303とは、図6に示す枠構造辞書で項目名600と当該項目名に対応するデータとが登録された枠である。
本実施形態では、項目名が「収納機関番号」、「お客様番号」、及び「確認番号」である枠、並びこれらの項目名に対応するデータの枠が取得対象となる枠である。
図4は、本発明の実施形態の各格子点における罫線の交差形状に応じて付加する符号(交点符号)の説明図である。
交点符号0は、罫線がないことを表す。交点符号1から4は、罫線の端点を表す。交点符号5と6は、罫線の一部分であることを表す。交点符号7から10は、2本の罫線がL字型に交差した交点を表す。交点符号11から14は、2本の罫線がT字型に交差した交点を表す。交点符号15は、2本の罫線が十字型に交差した交点を表す。
図5は、本発明の実施形態の入力帳票を格子点情報に変換した場合の説明図である。
直交する罫線の交点座標は、該当する格子点の座標値から獲得することができる。平行する2本の縦罫線間の距離は、罫線が存在する格子点の列間の距離から算出できる。
帳票上の枠は、枠の四隅に相当する格子点(格子点符号7〜15)の組合せにより表現することができる。このため、ステップ202の処理では、帳票画像が変換された格子点情報から格子点符号7〜15のいずれかによって囲まれる矩形を枠として抽出する。
なお,格子点情報を作成するための実線の抽出方式の例としては特開平11−232382号公報に,点線の抽出方式の例としては特開平09−319824号公報に開示されている。
次に、枠構造辞書について、図6A〜図6Cを用いて説明する。
図6Aは、本発明の実施形態の枠構造辞書600の説明図である。
枠構造辞書600には、取得対象となる枠に関するデータが登録される。
具体的には、枠構造辞書600は、項目ID601、項目602、属性603、文字列定義604、第1座標605、及び第2座標606を含む。
項目ID601には、取得対象となる各枠の一意な識別子が登録される。項目602には、取得対象となる枠の名称が登録される。属性603には、取得対象となる枠が項目であるかデータ枠であるかを特定するためのデータが登録される。
文字列定義604には、取得対象となる枠に存在する文字列に関する情報が登録される。第1座標605には、第1座標(図6B参照)に存在する枠の四隅の座標が登録される。第2座標606には、第2座標(図6C参照)に存在する枠の四隅の座標が登録される。第1座標605及び第2座標606に登録された座標を、取得対象となる枠の配置関係という。
換言すれば、第1座標605及び第2座標606は、それぞれ、取得対象の項目の枠構造を示す。本実施形態では、二つの枠構造が枠構造辞書600に登録されているが、枠構造辞書600に登録される枠構造の数はこれに限られない。
さらに、第1座標605及び第2座標606には、図6Aでは図示しないが、図6Bに示す格子点情報612及び図6Cに示す格子点情報622が登録される。
図6Bは、本発明の実施形態の第1座標605の説明図である。
第1座標605は、項目名の枠と当該項目名に対応するデータの枠とが左右方向に配列される場合の座標である。
図6Bの帳票611では、項目602に登録された「収納機関番号」、「お客様番号」、及び「確認番号」の項目名枠及びデータ枠が左から順に並んでいる。
このため、図6Aに示す「収納機関番号」の項目名の第1座標605には、「収納機関番号」の項目名枠の四隅に対応する図6Bの格子点情報612上の座標(0,0)、(0,1)、(1,1)、(1,0)が登録される。
また、図6Aに示す「収納機関番号」のデータの第1座標605には、「収納機関番号」のデータ枠の四隅に対応する図6Bの格子点情報612上の座標(1,0)、(1,1)、(2,1)、(2,0)が登録される。
また、図6Aに示す「お客様番号」の項目名の第1座標605には、「お客様番号」の項目名枠の四隅に対応する図6Bの格子点情報612上の座標(2,0)、(2,1)、(3,1)、(3,0)が登録される。
また、図6Aに示す「お客様番号」のデータの第1座標605には、「お客様番号」のデータ枠の四隅に対応する図6Bの格子点情報612上の座標(3,0)、(3,1)、(4,1)、(4,0)が登録される。
また、図6Aに示す「確認番号」の項目名の第1座標605には、「確認番号」の項目名枠の四隅に対応する図6Bの格子点情報612上の座標(4,0)、(4,1)、(5,1)、(5,0)が登録される。
また、図6Aに示す「確認番号」のデータの第1座標605には、「確認番号」のデータ枠の四隅に対応する図6Bの格子点情報612上の座標(5,0)、(5,1)、(6,1)、(6,0)が登録される。
図6Cは、本発明の実施形態の第2座標606の説明図である。
第2座標606は、項目名の枠と当該項目名に対応するデータの枠とが上下方向に配列される場合の座標である。
図6Cの帳票621では、項目602に登録された「収納機関番号」、「お客様番号」、及び「確認番号」の項目名枠が左から順に並び、項目名枠に対応するデータ枠が、項目名枠の下方に並ぶ。
このため、図6Aに示す「収納機関番号」の項目名の第2座標606には、「収納機関番号」の項目名枠の四隅に対応する図6Cの格子点情報622上の座標(0,0)、(0,1)、(1,1)、(1,0)が登録される。
また、図6Aに示す「収納機関番号」のデータの第2座標606には、「収納機関番号」のデータ枠の四隅に対応する図6Cの格子点情報622上の座標(0,1)、(0,2)、(1,2)、(1,1)が登録される。
また、図6Aに示す「お客様番号」の項目名の第2座標606には、「お客様番号」の項目名枠の四隅に対応する図6Cの格子点情報622上の座標(1,0)、(1,1)、(2,1)、(2,0)が登録される。
また、図6Aに示す「お客様番号」のデータの第2座標606には、「お客様番号」のデータ枠の四隅に対応する図6Cの格子点情報622上の座標(1,1)、(1,2)、(2,2)、(2,1)が登録される。
また、図6Aに示す「確認番号」の項目名の第2座標606には、「確認番号」の項目名枠の四隅に対応する図6Cの格子点情報622上の座標(2,0)、(2,1)、(3,1)、(3,0)が登録される。
また、図6Aに示す「確認番号」のデータの第2座標606には、「確認番号」のデータ枠の四隅に対応する図6Cの格子点情報622上の座標(2,1)、(2,2)、(3,2)、(3,1)が登録される。
以上によって、帳票処理用計算機100は、枠構造辞書600を参照することによって取得対象となる枠の配置関係を把握できる。
図7は、本発明の実施形態の枠構造照合処理のPAD図である。
枠構造照合処理は、図2に示すステップ204の処理で実行される。
まず、制御部108は、枠構造辞書600に登録された枠構造の数だけ、ステップ702の処理以降の処理を繰り返す(701)。例えば、図6Aに示す枠構造辞書600では、第1座標605及び第2座標606に対してステップ702以降の処理が繰り返し実行される。なお、ステップ701の処理では、ステップ702以降の処理で処理の対象となる一つの枠構造が選択される。
次に、制御部108は、ステップ701の処理で選択された枠構造に対応して、入力された帳票画像から取得対象となる領域を選択し、選択した取得対象となる領域を格子点情報に変換する(702)。取得対象となる領域とは、図3に示す点線で囲まれた領域302である。また、変換後の格子点情報は例えば図5に示す格子点情報である。
ステップ702の処理を具体的に説明する。
図6Aに示す枠構造辞書600では図示していないが、枠構造辞書600では、枠構造(第1座標605及び第2座標606)に対応して、ステッ702の処理で選択されるべき領域の帳票画像内における座標(選択座標)が登録されている。
制御部108は、ステップ701で選択した枠構造に対応する選択座標を参照し、当該選択座標によって指定される領域を取得対象となる領域として選択する。
次に、制御部108は、ステップ702の処理で変換した格子点情報の各行の格子点情報と、枠構造辞書600の処理対象となる枠構造の格子点情報とを対応付ける照合処理を実行する(703)。照合処理の詳細は、図8で詳細を説明する。
次に、制御部108は、ステップ703の処理で実行した照合処理の照合結果があるか否かを判定する(704)。
ステップ704の処理で、照合処理の照合結果があると判定された場合、照合結果を記憶部110に記憶し(705)、図2に示すステップ205の処理に処理を移行する。
一方、ステップ704の処理で、照合処理の照合結果がないと判定された場合、図2に示すステップ205の処理に処理を移行する。
図8は、本発明の実施形態の照合処理のPAD図である。
照合処理は、図7に示すステップ703の処理で実行される。
まず、制御部108は、枠構造辞書600の処理対象の枠構造の行数分、ステップ802及び803の処理を繰り返し実行する(801)。ステップ801の処理で、制御部108は、枠構造辞書600の処理対象の枠構造の行から、ステップ802及び803の処理の処理対象となる行を選択する。
そして、制御部108は、図7に示すステップ702の処理で変換された格子点情報の行数分、ステップ803の処理を繰り返し実行する(802)。ステップ802の処理で、制御部108は、ステップ702の処理で変換された格子点情報の行から、ステップ803の処理の処理対象となる行を選択する。
次に、制御部108は、ステップ801の処理で選択した枠構造辞書600の処理対象となる行、及び、ステップ802の処理で選択した格子点情報の処理対象となる行に対して、格子点DPマッチングを実行する(803)。
格子点DPマッチングは、ステップ802の処理で選択した格子点情報の処理対象となる行を構成する格子点(帳票格子点)のうち、ステップ801の処理で選択した枠構造辞書600の処理対象となる行を構成する格子点(辞書格子点)に対応する格子点を、音声認識等に利用されている動的計画法(Dynamic Programing)を用いて探索する処理である。この格子点DPマッチングの詳細は、特開2004−139484号公報に記載されている。また、動的計画法の原理については、T.コルメン、C.ライザーソン,R.リベスト共著、「アルゴリズムイントロダクション」第2巻、P5〜29、近代科学社、1995年出版をはじめ,さまざまな文献において解説されている。なお、格子点DPマッチングの詳細は図8の説明の直後に説明する。
次に、制御部108は、格子点DPマッチングの実行結果(枠構造照合結果)が存在するか否かを判定する(804)。
ステップ804の処理で、格子点DPマッチングの実行結果が存在すると判定された場合、制御部108は、当該格子点DPマッチングの実行結果のスコアが閾値以上であるか否かを判定する(805)。
ステップ805の処理で、格子点DPマッチングの実行結果のスコアが閾値以上であると判定された場合、制御部108は、当該格子点DPマッチングの実行結果を照合結果として返す(806)。
一方、格子点DPマッチングの実行結果が存在しないと判定された場合、又は、格子点DPマッチングの実行結果のスコアが閾値未満であると判定された場合、制御部108は、照合結果がないという結果を返す(807)。
格子点DPマッチングは、上述したように、帳票格子点から辞書格子点に対応する格子点を探索する処理である。ここで、帳票格子点が辞書格子点に対応するとは、帳票格子点と辞書格子点とが同じ格子点である場合、及び、辞書格子点を構成するすべての線分が帳票格子点に含まれる場合をいう。
辞書格子点のすべての線分が帳票格子点に含まれる場合とは、例えば、辞書格子点が図4に示す交点符号7であれば、帳票格子点が図4に示す交点符号11、13、及び15である場合をいう。
以下、格子点DPマッチングの処理手順について説明する。
制御部108は、帳票格子点のX座標が0の格子点を処理対象の格子点(処理対象帳票格子点)として選択し、辞書格子点のX座標が0の格子点を処理対象の格子点(処理対象辞書格子点)として選択する。
次に、制御部108は、処理対象帳票格子点が処理対象辞書格子点に対応するか否かを判定する。
処理対象帳票格子点が処理対象辞書格子点に対応すると判定された場合、制御部108は、以下の第1〜第4条件によって処理を分岐させる。
第1条件は、処理対象帳票格子点及び処理対象辞書格子点が最後の格子点でないという条件である。ここで、処理対象帳票格子点及び処理対象辞書格子点の最後の格子点とは、処理対象帳票格子点及び処理対象辞書格子点のX座標をインクリメントした座標に格子点が存在しない処理対象帳票格子点及び処理対象辞書格子点をいう。
第1条件が成立する場合、制御部108は、処理対象帳票格子点及び処理対象辞書格子点を次の格子点に移動させる。具体的には、制御部108は、処理対象帳票格子点となっている格子点のX座標をインクリメントした座標にある格子点を新たな処理対象帳票格子点として選択し、処理対象辞書格子点となっている格子点のX座標をインクリメントした座標にある格子点を新たな処理対象辞書格子点として選択する。
第2条件は、処理対象帳票格子点及び処理対象辞書格子点が最後の格子点であるという条件である。第2条件が成立した場合、帳票格子点と辞書格子点とが一対一で対応する関係である。
そして、現在処理対象となっているステップ702の処理で変換された格子点情報の行の次の行を構成する帳票格子点、及び、現在処理対象となっている枠構造辞書600の処理対象の枠構造の行の次の行を構成する辞書格子点でも、第2条件が成立すれば、2行の帳票格子点で区画される枠及び2行の辞書格子点で区画される枠が、一対一の関係で対応しており、図9(A)及び(B)のような対応関係となる。この場合、制御部108は、この対応関係を組み合わせ結果として保持する。
なお、本発明では、現在処理対象となっている行を構成する帳票格子点及び辞書格子点である条件が成立すれば、現在処理対象となっている行の次の行を構成する帳票格子点及び辞書格子点でも同じ条件が成立ものとする。現在処理対象となっている行を構成する帳票格子点及び辞書格子点で成立する条件と、現在処理対象となっている行の次の行を構成する帳票格子点及び辞書格子点で成立する条件とが異なる場合、制御部108は、これらの対応関係を組み合わせ結果として保持しない。
第3条件は、処理対象帳票格子点が最後の格子点でなく、処理対象辞書格子点が最後の格子点であるという条件である。第3条件が成立した場合、図13及び図14に示すように、帳票格子点の数が辞書格子点の数よりも多く、つまり、入力された帳票の枠が枠構造辞書600の枠構造に登録された枠の数よりも多く、帳票画像に含まれる文字等を罫線として誤って認識した可能性があるので、制御部108は、帳票格子点と辞書格子点との対応付けのすべての組み合わせを算出する強制対応処理を実行し、強制対応処理の実行結果を組み合わせ結果として保持する。強制対応処理の詳細は、図14A〜図14Cで詳細を説明する。
第4条件は、処理対象帳票格子点が最後の格子点であり、処理対象辞書格子点が最後の格子点でないという条件である。第4条件が成立した場合、帳票格子点の数が辞書格子点の数より少なく、帳票格子点によって構成される帳票画像の行が、辞書格子点によって構成される枠構造辞書600の枠構造の行と対応しないものである。このため、制御部108は、組み合わせ結果を保持しない。
処理対象帳票格子点が処理対象格子点に対応しないと判定された場合、制御部108は、以下の第5〜第7条件によって処理を分岐させる。
第5条件は、処理対象帳票格子点が最後の格子点でないという条件である。第5条件が成立する場合、制御部108は、処理対象帳票格子点を次の格子点に移動させる。
第6条件は、処理対象帳票格子点が最後の格子点であり、処理対象辞書格子点が最後の格子点であるという条件である。第6条件が成立した場合、制御部108は、第2条件が成立した場合と同様に、この対応関係を組み合わせ結果として保持する。
第7条件は、処理対象帳票格子点が最後の格子点であり、処理対象辞書格子点が最後の格子点でないという条件である。第7条件が成立した場合、第4条件と同様に、帳票格子点によって構成される帳票画像の行が、辞書格子点によって構成される枠構造辞書600の枠構造の行と対応しないものであるため、制御部108は、組み合わせ結果を保持しない。
以上のように、格子点DPマッチングでは、帳票格子点と辞書格子点とを対応付け、帳票画像の枠と枠構造辞書の枠構造の枠とを対応付ける処理が実行される。
図9は、本発明の実施形態の格子点DPマッチングの組み合わせ結果の例の説明図である。
図9(A)を説明する前に、ステップ801の処理で選択した処理対象となる行が格子点情報612の0行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の0行目である場合を例に、格子点DPマッチングについて説明する。
まず、制御部108は、格子点情報612のX座標が0の辞書格子点(図4に示す交点符号7の格子点)を処理対象辞書格子点として選択し、格子点情報501のX座標が0の帳票格子点(図4に示す交点符号7の格子点)を処理対象帳票格子点として選択する。そして、制御部108は、処理対象帳票格子点と処理対象辞書格子点とが同じであるので、処理対象帳票格子点は処理対象辞書格子点に対応する。この場合、処理対象帳票格子点及び処理対象辞書格子点は最後の格子点でないので、第1条件が成立する。そして、制御部108は、格子点情報612のX座標が1の辞書格子点(図4に示す交点符号13の格子点)を新たな処理対象辞書格子点として選択し、格子点情報502のX座標が1の帳票格子点(図4に示す交点符号5)を新たな処理対象帳票格子点として選択する。
次に、制御部108は、処理対象帳票格子点は処理対象辞書格子点に対応しないと判定する。これは、図4を参照するに、交点符号5の格子点(処理対象帳票格子点)は、交点符号13の格子点(処理対象辞書格子点)のすべての線分を含まないためである。また、処理対象帳票格子点は最後の格子点でないので、第5条件が成立する。このため、格子点情報502のX座標が2の帳票格子点(図4に示す交点符号5)を新たな処理対象帳票格子点として選択する。
このように、制御部108が格子点DPマッチングを実行していくことによって、X座標1の辞書格子点とX座標3の帳票格子点とが対応付けられ、X座標2の辞書格子点とX座標7の帳票格子点とが対応付けられ、X座標3の辞書格子点とX座標9の帳票格子点とが対応付けられ、X座標4の辞書格子点とX座標14の帳票格子点とが対応付けられる。
ここで、X座標4の辞書格子点とX座標14の帳票格子点とが対応すると判定された場合、処理対象帳票格子点が最後の格子点であり、処理対象辞書格子点が最後の格子点でないので、第4条件が成立し、帳票格子点によって構成される帳票画像の0行が、辞書格子点によって構成される枠構造辞書600の枠構造の0行と対応しないものと判定される。
なお、ステップ801の処理で選択した処理対象となる行が格子点情報612の1行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の1行目である場合も、上述した通りに判定される。
このため、枠構造辞書600の格子点情報612の0行目と1行目との間の枠、及び帳票画像の格子点情報501の0行目と1行目との間の枠は対応しない。
次に、図9(A)について説明する。
図9(A)では、ステップ801の処理で選択した処理対象となる行が格子点情報612の0行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の1行目である場合を例に、格子点DPマッチングについて説明する。
格子点DPマッチングが実行されると、X座標0の辞書格子点とX座標0の帳票格子点とが対応付けられ、X座標1の辞書格子点とX座標1の帳票格子点とが対応付けられ、X座標2の辞書格子点とX座標4の帳票格子点とが対応付けられ、X座標3の辞書格子点とX座標5の帳票格子点とが対応付けられ、X座標4の辞書格子点とX座標10の帳票格子点とが対応付けられ、X座標5の辞書格子点とX座標12の帳票格子点とが対応付けられ、X座標6の辞書格子点とX座標14の帳票格子点とが対応付けられる。
ここで、X座標6の辞書格子点とX座標14の帳票格子点とが対応すると判定された場合、処理対象帳票格子点及び処理対象辞書格子点が最後の格子点であるので、第2条件が成立する。したがって、制御部108は、帳票格子点と辞書格子点とが一対一で対応する関係であると判断する。
また、ステップ801の処理で選択した処理対象となる行が格子点情報612の1行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の2行目である場合も、上述した通りに判定される。
このため、図9(A)に示す領域901に示すように、枠構造辞書600の格子点情報612の0行目と1行目との間の枠、及び帳票画像の格子点情報501の1行目と2行目との間の枠はそれぞれ一対一の関係で対応付けられる。
次に、図9(B)について説明する。
図9(B)では、ステップ801の処理で選択した処理対象となる行が格子点情報612の0行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の2行目である場合を例に、格子点DPマッチングについて説明する。
格子点DPマッチングが実行されると、X座標0の辞書格子点とX座標0の帳票格子点とが対応付けられ、X座標1の辞書格子点とX座標2の帳票格子点とが対応付けられ、X座標2の辞書格子点とX座標6の帳票格子点とが対応付けられ、X座標3の辞書格子点とX座標8の帳票格子点とが対応付けられ、X座標4の辞書格子点とX座標11の帳票格子点とが対応付けられ、X座標5の辞書格子点とX座標13の帳票格子点とが対応付けられ、X座標6の辞書格子点とX座標14の帳票格子点とが対応付けられる。
ここで、X座標6の辞書格子点とX座標14の帳票格子点とが対応すると判定された場合、処理対象帳票格子点及び処理対象辞書格子点が最後の格子点であるので、第2条件が成立する。したがって、制御部108は、帳票格子点と辞書格子点とが一対一で対応する関係であると判断する。
また、ステップ801の処理で選択した処理対象となる行が格子点情報612の1行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の3行目である場合も、上述した通りに判定される。
このため、図9(B)に示す領域902に示すように、枠構造辞書600の格子点情報612の0行目と1行目との間の枠、及び帳票画像の格子点情報501の2行目と3行目との間の枠はそれぞれ一対一の関係で対応付けられる。
以上のように、図9(A)及び(B)では、第3条件が成立しない場合の格子点DPマッチングの例について説明した。
なお、図9(A)及び(B)に示す領域901及び902を、枠構造照合結果という。
次に、文字行抽出処理について図10を用いて説明する。
図10は、本発明の実施形態の文字行抽出処理のPAD図である。
文字行抽出処理は、ステップ206の処理で実行される。
まず、制御部108は、図7に示すステップ705の処理で記憶部110に記憶された照合結果の数だけステップ1002の処理以降の処理を実行する(1001)。ステップ1001の処理では、制御部108は、記憶部110に記憶された照合結果から、処理対象となる照合結果を一つ選択する。
次に、制御部108は、ステップ1001の処理で選択された照合結果に存在する枠の数だけ、ステップ1003の処理以降の処理を実行する(1002)。ステップ1002の処理では、制御部108は、ステップ1001の処理で選択された照合結果に存在する枠から、処理対象となる枠を一つ選択する。
次に、制御部108は、ステップ1005の処理で記憶される文字行情報(抽出済み文字行)を参照して、ステップ1002の処理で選択された枠が未だ文字行を抽出していない枠であるか否かを判定する(1003)。
ステップ1002の処理で選択された枠が未だ文字行を抽出していない枠であると、ステップ1003の処理で判定された場合、制御部108は、当該枠から文字行を抽出する(1004)。
そして、制御部108は、ステップ1004の処理で抽出した文字行と当該文字行を抽出した枠の座標とを対応付けた文字行情報を記憶部110に記憶する(1005)。
一方、ステップ1002の処理で選択された枠が既に文字行を抽出した枠である場合、制御部108は、ステップ1002の処理に処理を移行し、処理対象となる枠を新たに選択する。
文字行抽出処理の例について、図11を用いて説明する。図11は、本発明の実施形態の文字行抽出処理によって抽出された文字行の一例の説明図である。
図11に示す文字行1101〜1106は、図9(A)に示す領域901に対して文字行抽出処理が実行されて抽出された文字行を示し、図11に示す1111〜1116は、図9(B)に示す領域902に対して文字行抽出処理が実行されて抽出された文字行を示す。
まず、文字行1101〜1106について説明する。
図11に示す「収納機関」「番号」1101は、図9(A)に示す座標(0,1)、(0,2)、(1,2)、(1,1)の枠から抽出された文字行であり、「収納機関」「番号」1101は、座標(0,1)、(0,2)、(1,2)、(1,1)と対応付けて記憶される。
図11に示す「12345」1102は、図9(A)に示す座標(1,1)、(1,2)、(4,2)、(4,1)の枠から抽出された文字行であり、「12345」1102は、座標(1,1)、(1,2)、(4,2)、(4,1)と対応付けて記憶される。
図11に示す「お客様」「番号」1103は、図9(A)に示す座標(4,1)、(4,2)、(5,2)、(5,1)の枠から抽出された文字行であり、「お客様」「番号」1103は、座標(4,1)、(4,2)、(5,2)、(5,1)と対応付けて記憶される。
図11に示す「67890123456」1104は、図9(A)に示す座標(5,1)、(5,2)、(10,2)、(10,1)の枠から抽出された文字行であり、「67890123456」1104は、座標(5,1)、(5,2)、(10,2)、(10,1)と対応付けて記憶される。
図11に示す「確認」「番号」1105は、図9(A)に示す座標(10,1)、(10,2)、(12,2)、(12,1)の枠から抽出された文字行であり、「確認」「番号」1105は、座標(10,1)、(10,2)、(12,2)、(12,1)と対応付けて記憶される。
図11に示す「789012」1106は、図9(A)に示す座標(12,1)、(12,2)、(14,2)、(14,1)の枠から抽出された文字行であり、「789012」1106は、座標(12,1)、(12,2)、(14,2)、(14,1)と対応付けて記憶される。
次に、文字行1111〜1116について説明する。
図11に示す「会員番号」1111は、図9(B)に示す座標(0,2)、(0,3)、(2,3)、(2,2)の枠から抽出された文字行であり、「会員番号」1111は、座標(0,2)、(0,3)、(2,3)、(2,2)と対応付けて記憶される。
図11に示す「000−000−000」1112は、図9(B)に示す座標(2,2)、(2,3)、(6,3)、(6,2)の枠から抽出された文字行であり、「000−000−000」1112は、座標(2,2)、(2,3)、(6,3)、(6,2)と対応付けて記憶される。
図11に示す「請求番号」1113は、図9(B)に示す座標(6,2)、(6,3)、(8,3)、(8,2)の枠から抽出された文字行であり、「請求番号」1113は、座標(6,2)、(6,3)、(8,3)、(8,2)と対応付けて記憶される。
図11に示す「1234」1114は、図9(B)に示す座標(8,2)、(8,3)(11,3)、(11,2)の枠から抽出された文字行であり、「請求番号」1114は、座標(8,2)、(8,3)、(11,3)、(11,2)と対応付けて記憶される。
図11に示す「お支払い期日」1115は、図9(B)に示す座標(11,2)、(11,3)(13,3)、(13,2)の枠から抽出された文字行であり、「請求番号」1113は、座標(11,2)、(11,3)(13,3)、(13,2)と対応付けて記憶される。
図11に示す「5月20日」1116は、図9(B)に示す座標(13,2)、(13,3)(14,3)、(14,2)の枠から抽出された文字行であり、「5月20日」1116は、座標(13,2)、(13,3)(14,3)、(14,2)と対応付けて記憶される。
以上のように、文字行抽出処理によって抽出された文字行は、当該文字行が抽出された枠と対応付けて記憶される。これによって、既に文字行が抽出された枠に対して再度文字行を抽出しなくてもよく、処理コストを削減できる。
次に、図12〜図15を用いて、枠が誤って抽出された場合について説明する。
図12は、本発明の実施形態の取得対象となる領域302の説明図である。
制御部108は、矩形1201で囲まれた「1」のように、枠の上下の横罫線に接触している文字又は横罫線に接触しそうな文字(以下、このような文字を総称して接触文字という)を縦罫線として認識する場合がある。接触文字を含む取得対象となる領域が図7に示すステップ702の処理で格子点情報に変換されると、図13に示すような格子点情報1301となる。
図13は、本発明の実施形態の接触文字を含む入力帳票を格子点情報に変換した場合の説明図である。
図13に示す格子点情報1301の矩形1302で示すように、図12に示す矩形1201で囲まれた「1」が座標(9,1)で図4に示す交点符号「13」及び座標(9,2)で図4に示す交点符号「14」として変換されている。
したがって、格子点情報1301に基づいて抽出された図13に示す格子点情報1301の1行目及び2行目の枠の数は、7個となり、枠構造辞書600の第1座標605の枠構造に登録された枠の数(6個)より多くなる。したがって、図13に示す格子点情報1301の1行目及び2行目の枠と枠構造辞書600の第1座標605に登録された枠との対応付けは、図9(A)に示すように一通りでなく、複数通り考えられる。
格子点情報1301の枠と枠構造辞書600の第1座標605の枠構造605に登録された枠との対応付けについて図14A〜図14Cを用いて説明する。
図14A〜図14Cは、本発明の実施形態の格子点DPマッチングの組み合わせ結果の例の説明図である。
図14A(A)では、図8に示すステップ801の処理で選択した処理対象となる行が格子点情報612の0行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の1行目である場合を例に、格子点DPマッチングについて説明する。
格子点DPマッチングが実行されると、X座標0の辞書格子点とX座標0の帳票格子点とが対応付けられ、X座標1の辞書格子点とX座標1の帳票格子点とが対応付けられ、X座標2の辞書格子点とX座標4の帳票格子点とが対応付けられ、X座標3の辞書格子点とX座標5の帳票格子点とが対応付けられ、X座標4の辞書格子点とX座標9の帳票格子点とが対応付けられ、X座標5の辞書格子点とX座標11の帳票格子点とが対応付けられ、X座標6の辞書格子点とX座標13の帳票格子点とが対応付けられる。
ここで、X座標6の辞書格子点とX座標13の帳票格子点とが対応すると判定された場合、処理対象帳票格子点が最後の格子点でなく、処理対象辞書格子点が最後の格子点でないので、第3条件が成立する。したがって、制御部108は、強制対応処理を実行する。
強制対応処理は、上述したように、帳票格子点と辞書格子点との対応付けのすべての組み合わせを算出する処理であり、図14A(B)〜図14C(H)を用いて説明する。
まず、制御部108は、図14A(A)では、最も右に位置する帳票格子点であるX座標15の帳票格子点がいずれの辞書格子点にも対応付けられていないので、当該帳票格子点を最も右に位置する辞書格子点に対応付ける。すなわち、X座標6の辞書格子点とX座標15の帳票格子点とが対応付けられる。
この場合、新たに辞書格子点と対応付けたX座標15の帳票格子点よりも左に位置するX座標0、1、4、5、9、11、及び13のいずれか一つの帳票格子点と辞書格子点との対応付けを解除しなければならない。これによって、帳票画像から抽出された二つの枠を枠構造辞書600に登録された一つの枠に対応付ける。
図14A(B)は、1行目及び2行目のX座標15の帳票格子点と0行目及び1行目のX座標6の辞書格子点とを対応付け、1行目及び2行目のX座標13の帳票格子点と0行目及び1行目のX座標6の辞書格子点との対応付けを解除した組み合わせ結果である。
図14A(C)は、1行目及び2行目のX座標15の帳票格子点と0行目及び1行目のX座標6の辞書格子点とを対応付け、1行目及び2行目のX座標11の帳票格子点と0行目及び1行目のX座標5の辞書格子点との対応付けを解除した組み合わせ結果である。
図14B(D)は、1行目及び2行目のX座標15の帳票格子点と0行目及び1行目のX座標6の辞書格子点とを対応付け、1行目及び2行目のX座標9の帳票格子点と0行目及び1行目のX座標4の辞書格子点との対応付けを解除した組み合わせ結果である。
図14B(E)は、1行目及び2行目のX座標15の帳票格子点と0行目及び1行目のX座標6の辞書格子点とを対応付け、1行目及び2行目のX座標5の帳票格子点と0行目及び1行目のX座標3の辞書格子点との対応付けを解除した組み合わせ結果である。
図14B(F)は、1行目及び2行目のX座標15の帳票格子点とX座標6の辞書格子点とを対応付け、1行目及び2行目のX座標4の帳票格子点と0行目及び1行目のX座標2の辞書格子点との対応付けを解除した組み合わせ結果である。
図14C(G)は、1行目及び2行目のX座標15の帳票格子点と0行目及び1行目のX座標6の辞書格子点とを対応付け、1行目及び2行目のX座標1の帳票格子点と0行目及び1行目のX座標1の辞書格子点との対応付けを解除した組み合わせ結果である。
図14C(H)は、1行目及び2行目のX座標15の帳票格子点と0行目及び1行目のX座標6の辞書格子点とを対応付け、1行目及び2行目のX座標0の帳票格子点と0行目及び1行目のX座標0の辞書格子点との対応付けを解除した組み合わせ結果である。
図14C(I)は、図8に示すステップ801の処理で選択した処理対象となる行が格子点情報612の0行目であり、ステップ802の処理で選択した処理対象となる行が格子点情報501の2行目である場合の格子点DPマッチングの結果であり、図9(B)と同じであるので説明を省略する。
以上のように、格子点DPマッチングによって、図14A(A)〜図14C(I)に示す9通りの組み合わせ結果が算出される。なお、以下では、これらのすべての組み合わせ結果が照合結果となったことを前提に説明する。
また、図14B(D)に示す組み合わせ結果が、図12に示す接触文字「1」を罫線として抽出していない正しい組み合わせ結果である。
次に、図14A(A)〜図14C(I)に示す照合結果に対して文字行抽出処理が実行されることによって抽出された文字行について、図15を用いて説明する。
図15は、本発明の実施形態の文字行抽出処理によって抽出された文字行の一例の説明図である。
図10に示す文字行抽出処理のステップ1001の処理で、制御部108は、図14A(A)〜図14C(I)に示す照合結果から、処理対象の照合結果として図14A(A)に示す照合結果を選択する。
そして、制御部108は、図14A(A)に示す照合結果にステップ1002〜1004の処理を実行する。なお、図14A(A)に示す照合結果に対してステップ1002〜1004の処理が実行される前に抽出された文字行はないものとする。
図14A(A)に示す照合結果に対してステップ1002〜1004の処理が実行されることによって、文字行1501〜1506が抽出される。
具体的には、図15に示す「収納機関」「番号」1501は、図14A(A)に示す座標(0,1)、(0,2)、(1,2)、(1,1)の枠から抽出された文字行であり、「収納機関」「番号」1501は、座標(0,1)、(0,2)、(1,2)、(1,1)と対応付けて記憶される。
また、図15に示す「12345」1502は、図14A(A)に示す座標(1,1)、(1,2)、(4,2)、(4,1)の枠から抽出された文字行であり、「12345」1502は、座標(1,1)、(1,2)、(4,2)、(4,1)と対応付けて記憶される。
また、図15に示す「お客様」「番号」1503は、図14(A)に示す座標(4,1)、(4,2)、(5,2)、(5,1)の枠から抽出された文字行であり、「お客様」「番号」1503は、座標(4,1)、(4,2)、(5,2)、(5,1)と対応付けて記憶される。
また、図15に示す「00000」1504は、図14(A)に示す座標(5,1)、(5,2)、(9,2)、(9,1)の枠から抽出された文字行であり、「00000」1504は、座標(5,1)、(5,2)、(9,2)、(9,1)と対応付けて記憶される。
また、図15に示す「0」1505は、図14(A)に示す座標(9,1)、(9,2)、(11,2)、(11,1)の枠から抽出された文字行であり、「0」1505は、座標(9,1)、(9,2)、(11,2)、(11,1)と対応付けて記憶される。
また、図15に示す「確認」「番号」1506は、図14(A)に示す座標(11,1)、(11,2)、(13,2)、(13,1)の枠から抽出された文字行であり、「確認」「番号」1506は、座標(11,1)、(11,2)、(13,2)、(13,1)と対応付けて記憶される。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14A(B)に示す照合結果を選択する。
この場合、図14A(B)に示す照合結果の枠のうち、座標(11,1)、(11,2)、(15,2)、(15,1)の枠よりも左に位置する枠から文字行は、すでに抽出されているので、座標(11,1)、(11,2)、(15,2)、(15,1)の枠から文字行を抽出する。
図15に示す「確認番号」「789012」1507は、図14A(B)に示す座標(11,1)、(11,2)、(15,2)、(15,1)の枠から抽出された文字行であり、「確認番号」「789012」1507は、座標(11,1)、(11,2)、(15,2)、(15,1)と対応付けて記憶される。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14A(C)に示す照合結果を選択する。
この場合、図14A(C)に示す照合結果の枠のうち、座標(9,1)、(9,2)、(13,2)、(13,1)の枠よりも左に位置する枠から文字行は、すでに抽出されているので、座標(9,1)、(9,2)、(13,2)、(13,1)の枠及び座標(13,1)、(13,2)、(15,2)、(15,1)の枠から文字行を抽出する。
図15に示す「0」「確認番号」1508は、図14A(C)に示す座標(9,1)、(9,2)、(13,2)、(13,1)の枠から抽出された文字行であり、「0」「確認番号」1508は、座標(9,1)、(9,2)、(13,2)、(13,1)と対応付けて記憶される。
図15に示す「789012」1509は、図14A(C)に示す座標(13,1)、(13,2)、(15,2)、(15,1)の枠から抽出された文字行であり、「789012」1509は、座標(13,1)、(13,2)、(15,2)、(15,1)と対応付けて記憶される。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14B(D)に示す照合結果を選択する。
この場合、図14B(D)に示す照合結果の枠のうち、座標(5,1)、(5,2)、(11,2)、(11,1)以外の枠から文字行は、すでに抽出されているので、座標(5,1)、(5,2)、(11,2)、(11,1)の枠から文字行を抽出する。
図15に示す「0000010」1511は、図14B(D)に示す座標(5,1)、(5,2)、(11,2)、(11,1)の枠から抽出された文字行であり、「0000010」1511は、座標(5,1)、(5,2)、(11,2)、(11,1)と対応付けて記憶される。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14B(E)に示す照合結果を選択する。
この場合、図14B(E)に示す照合結果の枠のうち、座標(4,1)、(4,2)、(9,2)、(9,1)以外の枠から文字行は、すでに抽出されているので、座標(4,1)、(4,2)、(9,2)、(9,1)の枠から文字行を抽出する。
図15に示す「お客様番号」「00000」1510は、図14B(E)に示す座標(4,1)、(4,2)、(9,2)、(9,1)の枠から抽出された文字行であり、「お客様番号」「00000」1510は、座標(4,1)、(4,2)、(9,2)、(9,1)と対応付けて記憶される。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14B(F)に示す照合結果を選択する。
この場合、図14B(F)に示す照合結果の枠のうち、座標(1,1)、(1,2)、(5,2)、(5,1)以外の枠から文字行は、すでに抽出されているので、座標(1,1)、(1,2)、(5,2)、(5,1)の枠から文字行を抽出する。
図15に示す「12345」「お客様番号」1512は、図14B(F)に示す座標(1,1)、(1,2)、(5,2)、(5,1)の枠から抽出された文字行であり、「12345」「お客様番号」1512は、座標(1,1)、(1,2)、(5,2)、(5,1)と対応付けて記憶される。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14C(G)に示す照合結果を選択する。
この場合、図14C(G)に示す照合結果の枠のうち、座標(0,1)、(0,2)、(4,2)、(4,1)以外の枠から文字行は、すでに抽出されているので、座標(0,1)、(0,2)、(4,2)、(4,1)の枠から文字行を抽出する。
図15に示す「収納機関番号」「12345」1513は、図14C(G)に示す座標座標(0,1)、(0,2)、(4,2)、(4,1)の枠から抽出された文字行であり、「収納機関番号」「12345」1513は、座標(0,1)、(0,2)、(4,2)、(4,1)と対応付けて記憶される。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14C(H)に示す照合結果を選択する。
この場合、図14C(G)に示す照合結果のすべての枠の文字行はすでに抽出されているので、制御部108は文字行を抽出しない。
次に、制御部108は、ステップ1001の処理で、処理対象の照合結果として図14C(I)に示す照合結果を選択する。
図14C(I)に示す照合結果の枠から抽出される文字行は図15に示す文字行1521〜1526である。文字行1521〜1526については図11に示す文字行1111〜1116と同じであるので説明を省略する。
図16は、本発明の実施形態の候補文字ネットワークの説明図である。
図2に示すステップ207の処理では、抽出された文字行から文字パタン候補が切り出され、ステップ208の処理では、切り出された文字パタン候補に対して、文字パタン候補に類似する文字(識別候補)と文字パタン候補の各識別候補に対する類似度とを算出し、候補文字ネットワークを生成する文字識別処理が実行される。
文字パタン候補切出し及び文字識別処理は、特開2004−171316号公報に開示された手法を用いるが、他の手法を用いてもよい。
図16の(a)は、文字行抽出処理で抽出された文字行1601を示す。ここで、制御部108は、ステップ207の処理で、文字行1601から文字らしいパタンの候補を切出す。切り出された文字パタン候補は、図16の(b)に示すようにネットワークの形式で保存する。
次に、ステップ208の処理で、制御部108は、切り出された文字パタン候補に対して文字識別処理を実行する。文字識別処理では、識別誤りを考慮し、複数の識別候補及び文字パタン候補の各識別候補に対する類似度が算出され、文字識別処理の識別結果として、図16の(b)に示す候補文字ネットワークが生成される。文字パタン候補の切り出し位置をノード1602とし、切り出された文字パタン候補はアーク1603とする。
図16の(c)は、候補文字ネットワークのデータの詳細を示す。図16の(c)では、識別候補を1605に示し、文字パタン候補の各識別候補に対する類似度を1606に示す。
図17は、本発明の実施形態の特定項目文字列照合処理のPAD図である。
特定項目文字列照合処理は、文字識別処理の結果と、当該文字識別処理を実行した枠に対応付けられた枠構造辞書に登録された枠の文字列情報と、を照合する。
まず、制御部108は、図7に示すステップ705の処理で記憶部110に記憶された照合結果の数だけステップ1702の処理以降の処理を実行する(1701)。ステップ1701の処理では、制御部108は、記憶部110に記憶された照合結果から、処理対象となる照合結果を一つ選択する。
次に、制御部108は、ステップ1701の処理で選択された照合結果に存在する枠の数だけ、ステップ1703の処理以降の処理を実行する(1702)。ステップ1702の処理では、制御部108は、ステップ1701の処理で選択された照合結果に存在する枠から、処理対象となる枠を一つ選択する。
次に、制御部108は、処理対象の枠から抽出された文字行が複数行存在するか否かを判定する(1703)。ここで、文字行が複数行存在するとは、例えば、図11に示す文字行1101、1103、及び1105である。
ステップ1703の処理で、処理対象の枠から抽出された文字行が複数行存在すると判定された場合、制御部108は、複数行の文字行に対してステップ208の処理の文字識別処理で算出された候補文字ネットワークを連結し(1704)、ステップ1705の処理に進む。具体的には、制御部108は、Y座標で上から下の順番で複数行の文字行の候補文字ネットワークを連結する。ステップ1704の処理の詳細は図18で詳細を説明する。
ステップ1703の処理で、処理対象の枠から抽出された文字行が複数行存在しないと判定された場合、又は、ステップ1704の処理が実行された場合、制御部108は、処理対象の枠に対応する枠構造辞書600の枠の属性情報と、処理対象の枠の候補文字ネットワークとを照合することによって、処理対象の枠の属性情報に対する枠スコアを算出する(1705)。
ステップ1702の処理では、処理対象の照合結果のすべての枠にステップ1703〜1705の処理が実行された場合、つまり、処理対象の照合結果のすべての枠の枠スコアが算出された場合、制御部108は、枠スコアに基づいて当該処理対象の照合結果のスコアを算出する(1706)。照合結果のスコアは、例えば、枠スコアの平均値であってもよいし、枠スコアの和であってもよい。
ステップ1701の処理では、記憶部110に記憶されたすべての照合結果に対してステップ1706の処理でスコアが算出された場合、制御部108は、スコアが最大の照合結果を項目照合結果として返し(1707)、特定項目文字列照合処理を終了する。
図18は、本発明の実施形態の複数行の文字行の候補文字ネットワークを連結する処理の説明図である。
文字行1801は、「収納機関」の文字行1802と「番号」の文字行1804との2行の文字行によって構成される。
文字行1802に対して文字識別処理が実行されて、候補文字ネットワーク1803が生成されている。また、文字行1804に対して文字識別処理が実行されて、候補文字ネットワーク1805が生成されている。
ステップ1704の処理で、文字行1801の候補文字ネットワーク1803と候補文字ネットワーク1805とが連結され、連結候補文字ネットワーク1806が生成される。
図19は、本発明の実施形態の候補文字ネットワークと枠構造辞書の文字列情報とを照合する処理の説明図である。
図19に示す1901は、図18に示す連結候補文字ネットワーク1806の各識別候補を枠構造辞書600の属性情報と照合した結果のパスである。また、図19に示す1902は、連結候補文字ネットワーク1806のデータの詳細である。
図19に示す1903は、連結候補文字ネットワーク1806の切出候補の識別候補のうち、対応する枠構造辞書600の属性情報と一致する識別候補(識別結果)を示す。
連結候補文字ネットワーク1806の基になった文字行が、図9(A)に示す照合結果の座標(0,1)、(0、2)、(1,2)、(1,1)の枠から抽出されているとした場合、当該枠は、枠構造辞書600の第1座標605の座標(0,0)、(0,1)、(1,1)、(1,0)に対応する。このため、連結候補文字ネットワーク1806の切出候補の識別候補を、枠構造辞書600の文字列定義604に登録された「収納機関番号」と照合する。
図18に示す連結候補文字ネットワーク1806の同じノードの間に位置するアークが示す切出候補と照合される枠構造辞書600の文字列定義604の同じ文字である。例えば、図19に示す番号1、2、3の切出候補は、枠構造辞書600の文字列定義604の「収」と照合される。
図19に示す番号1の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「収」と一致する識別候補が存在するので、当該識別候補を識別結果とする。
図19に示す番号2及び番号3の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「収」と一致する識別候補が存在しない。
図19に示す番号4の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「納」と一致する識別候補が存在するので、当該識別候補を識別結果とする。
図19に示す番号5及び番号6の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「納」と一致する識別候補が存在しない。
図19に示す番号7の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「機」と一致する識別候補が存在するので、当該識別候補を識別結果とする。
図19に示す番号8の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「関」と一致する識別候補が存在するので、当該識別候補を識別結果とする。
図19に示す番号9及び番号10の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「関」と一致する識別候補が存在しない。
図19に示す番号11の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「番」と一致する識別候補が存在するので、当該識別候補を識別結果とする。
図19に示す番号12の切出候補の識別候補には、文字列定義604に登録された「収納機関番号」の「号」と一致する識別候補が存在するので、当該識別候補を識別結果とする。
なお、各切出候補の識別結果に対応する類似度に基づいて枠スコアが算出される。枠スコアは、各切出候補の識別結果に対応する類似度の平均であってもよいし、各切出候補の識別結果に対応する類似度の和であってもよい。
また、図18に示す連結候補字ネットワーク1806の同じノードの間に位置するアークが示すすべての切出候補に識別結果が存在しない場合がある。これは、帳票に記載された文字が小さく、スキャナが帳票を取り込む際の解像度が低い場合等に、文字がつぶれて取り込まれることに起因する。このように、枠構造辞書600の文字列定義604に登録された文字列の文字のうち、識別結果が存在しない文字を不読文字という。
本実施形態では、文字列定義604に登録された文字列に不読文字が存在しても、不読文字が所定数以下であれば、枠の文字行を不読とせずに、次の切出候補に対して照合処理を継続して実行する。所定数は、例えば、文字列定義604に登録された文字列の文字数の1/3とする。
これによって、帳票画像の枠の文字が認識でなくても、枠構造辞書600の当該枠に対応する文字列定義604によって当該文字を補完することができる。
さらに、本実施形態では、制御部108は、枠スコアが所定値以上であれば、当該枠スコアが算出された枠を、当該枠と照合した枠構造辞書600の文字列定義604として認識する。これによって、不読文字が存在しても、枠が枠構造辞書600のいずれの枠かを特定することができる。
図20は、本発明の実施形態の特定項目文字列照合結果の説明図である。
説明のために、図9(A)に示す枠構造照合結果901の帳票画像内における領域を照合領域2001として図示する。
枠構造照合結果901の各枠に対して特定項目文字列照合処理を実行した結果である特定項目文字列照合結果は、読取結果2002、枠スコア2003、枠構造照合結果のスコア2017を含む。読取結果2002、及び枠スコア2003は、枠構造照合結果901の各枠に対応する枠構造辞書600の項目602、属性603、及び文字列定義604と対応付けて、記憶部110に記憶される。
図20に示す2011は、項目602が「収納機関番号」で、属性603が「項目名」で、文字列定義604が「収納機関番号」である枠に対応する枠構造照合結果901の枠から抽出した文字行の読取結果2002が「機」が不読文字であることを示し、枠スコア2003が「206」であることを示す。
図20に示す2012は、項目602が「収納機関番号」で、属性603が「データ」で、文字列定義604が「特定桁数数字列」である枠に対応する枠構造照合結果901の枠から抽出した文字行の読取結果2002が「12345」で、枠スコア2003が「246」であることを示す。
図20に示す2013は、項目602が「お客様番号」で、属性603が「項目名」で、文字列定義604が「お客様番号」である枠に対応する枠構造照合結果901の枠から抽出した文字行の読取結果2002が「お客様番号」で、枠スコア2003が「235」であることを示す。
図20に示す2014は、項目602が「お客様番号」で、属性603が「データ」で、文字列定義604が「数字列」である枠に対応する枠構造照合結果901の枠から抽出した文字行の読取結果2002が「67890123456」で、枠スコア2003が「242」であることを示す。
図20に示す2015は、項目602が「確認番号」で、属性603が「項目名」で、文字列定義604が「確認番号」である枠に対応する枠構造照合結果901の枠から抽出した文字行が文字列定義604と照合できなかったことを示す。このため、読取結果2002が「?」で枠スコア2003が「0」である。
図20に示す2016は、項目602が「確認番号」で、属性603が「データ」で、文字列定義604が「特定桁数数字列」である枠に対応する枠構造照合結果901の枠から抽出した文字行の読取結果2002が「789012」で、枠スコア2003が「234」であることを示す。
枠構造照合結果901のスコア2017は各枠スコアの総和であり、「1163」である。なお、枠構造照合結果のスコア2017は各枠スコアの平均であってもよい。
図21は、本発明の実施形態の特定項目文字列照合の説明図である。なお、図21のうち図20の構成と同じ構成は、同じ符号を付与し、説明を省略する。
説明のために、図9(B)に示す枠構造照合結果902の帳票画像内における領域を照合領域2101として図示する。
枠構造照合結果902の特定項目文字列照合結果は、読取結果2002、枠スコア2003、枠構造照合結果のスコア2017を含む。
図21に示す2111は、項目602が「収納機関番号」で、属性603が「項目名」で、文字列定義604が「収納機関番号」である枠に対応する枠構造照合結果902の枠から抽出した文字行の読取結果2002が「収納機関」が不読文字であり、「番号」が照合されたことを示し、枠スコア2003が「54」であることを示す。
図21に示す2112は、項目602が「収納機関番号」で、属性603が「データ」で、文字列定義604が「特定桁数数字列」である枠に対応する枠構造照合結果902の枠から抽出した文字行の読取結果2002が「000−000−000」で、枠スコア2003が「233」であることを示す。
図21に示す2113は、項目602が「お客様番号」で、属性603が「項目名」で、文字列定義604が「お客様番号」である枠に対応する枠構造照合結果902の枠から抽出した文字行の読取結果2002が「お客様」が不読文字であり、「番号」が照合されたことを示し、枠スコア2003が「102」であることを示す。
図21に示す2114は、項目602が「お客様番号」で、属性603が「データ」で、文字列定義604が「数字列」である枠に対応する枠構造照合結果902の枠から抽出した文字行の読取結果2002が「1234」で、枠スコア2003が「242」であることを示す。
図21に示す2115は、項目602が「確認番号」で、属性603が「項目名」で、文字列定義604が「確認番号」である枠に対応する枠構造照合結果902の枠から抽出した文字行が文字列定義604と照合できなかったことを示す。このため、読取結果2002が「?」で枠スコア2003が「0」である。
図21に示す2116は、項目602が「確認番号」で、属性603が「データ」で、文字列定義604が「特定桁数数字列」である枠に対応する枠構造照合結果901の枠から抽出した文字行が文字列定義604と照合できなかったことを示す。このため、読取結果2002が「?」で枠スコア2003が「0」である。
枠構造照合結果902のスコア2017は各枠スコアの総和であり、「631」である。
図17に示すステップ1707の処理では、図20に示す枠構造照合結果901のスコア2017は、図21に示す枠構造照合結果902のスコア2017より大きいので、枠構造照合結果901の特定項目文字列照合結果を返す。
以上、本発明者によりなされた発明を実施形態に基づき具体的に説明したが、本発明は上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。