[第1の実施形態]
図1は、第1の実施形態に係る帳票認識装置の機能的構成を示す図である。
図1に示すように、本実施形態の帳票認識装置1は、帳票画像受付部101と、候補抽出部102と、帳票ID特定部103と、認識結果出力部104と、を備える。また、帳票認識装置1は、大分類辞書記憶部110と、詳細識別辞書記憶部120と、を備える。
帳票画像受付部101は、認識対象である帳票の画像データの入力を受け付ける。帳票の画像データは、イメージスキャナ2等を用いて作成される。以下の説明では、帳票の画像データのことを「帳票画像」ともいう。
候補抽出部102は、入力された帳票画像と、大分類辞書記憶部110に記憶させた大分類辞書とに基づいて、認識対象である帳票の帳票種(帳票識別子)の候補を抽出する。また、候補抽出部102は、入力された帳票画像における線分(罫線)と、候補として抽出した帳票識別子が付与された帳票における線分との対応関係に基づいて、対応線分ペアを抽出する。大分類辞書には、帳票種毎に、帳票識別子と、線分のレイアウト情報に基づいて作成した線分ペア情報とを対応付けて登録してある。また、対応線分ペアは、帳票識別子が付与された帳票における線分と、その線分と対応付けられた回数が最も多い帳票画像における線分とのペアである。以下の説明では、入力された帳票画像のことを「入力画像」ともいう。また、以下の説明では、帳票識別子のことを帳票IDといい、帳票IDが付与された帳票における線分のことを「帳票IDの線分」ともいう。
候補抽出部102は、帳票ID抽出部102Aと、対応線分ペア抽出部102Bと、を含む。
帳票ID抽出部102Aは、入力画像に基づいて、認識対象である帳票における線分(罫線)のレイアウト情報を作成する。また、帳票ID抽出部102Aは、作成したレイアウト情報に基づいて選択した線分の組み合わせで構成される線分ペア(帳票内線分ペア)と、大分類辞書に登録された線分ペア(帳票内線分ペア)との対応付けを行う。更に、帳票ID抽出部102は、帳票内線分ペア同士の対応付けの結果に基づいて、認識対象である帳票の帳票IDの候補を抽出する。
対応線分ペア抽出部102Bは、帳票ID抽出部102Aで抽出した帳票IDの線分についてのレイアウト情報と、入力画像における線分のレイアウト情報とに基づいて、対応線分ペアを抽出する。対応線分ペアは、帳票IDの線分と、入力画像の線分とのペア(帳票間線分ペア)である。対応線分ペアにおいて帳票IDの線分とペアとなる入力画像の線分は、入力画像の全ての線分のうち、帳票ID抽出部102Aにおいて帳票内線分ペア同士の対応付けを行った際に、帳票IDの線分と対応付けられた回数が最も多い線分である。なお、対応線分ペア抽出部102Bが抽出する対応線分ペアの数は、帳票IDの線分と入力画像の線分とにより生成し得る帳票間線分ペアの総数よりも少ない数とする。特に、抽出する対応線分ペアの数は、帳票IDの線分の総数よりも少ない数とすることが好ましい。
帳票ID特定部103は、候補抽出部102が抽出した帳票IDの候補及び対応線分ペアと、詳細識別辞書記憶部120に記憶させた詳細識別辞書とに基づいて、詳細な識別処理を行い、認識対象である帳票の帳票IDを特定する。詳細識別辞書には、帳票種毎に、帳票IDと、線分のレイアウト情報とを対応付けて登録してある。なお、1つの帳票種に対し大分類辞書で付与している帳票IDと、詳細識別辞書で付与している帳票IDとは、同じ値(識別子)である。
帳票ID特定部103は、対応線分ペアにおける認識対象である帳票の線分と帳票IDの線分との重なり度合いに基づいて、認識対象の帳票の帳票IDを特定する。帳票ID特定部103は、対応線分ペアの線分同士を一致させたときの、帳票IDの線分のレイアウトと、入力画像の線分のレイアウトとを比較して、対応付けられた線分(一致した線分)の数を計数し、これを重なり度合いとする。また、帳票ID特定部103は、帳票IDの候補毎に、対応線分ペアにおける線分同士を一致させたときに対応付けられた線分の数の最大値を求める。その後、帳票ID特定部103は、帳票IDの候補のうちの、対応付けられた線分数の最大値が最も大きい候補を、入力画像(認識対象の帳票)の帳票種を表す帳票IDに特定する。
認識結果出力部104は、入力画像と、帳票ID特定部103が特定した帳票IDとを含む認識結果を、表示装置3等に出力する。
図2は、詳細識別辞書の例を示す図である。図3は、線分のレイアウト情報を説明する図である。
図2に示すように、詳細識別辞書121は、帳票IDと、線分情報とを含む。帳票IDは、帳票種を識別する値であり、帳票種毎に異なる値を付与している。図2では、帳票IDとして、1から始まる正の整数を用いている。線分情報は、帳票に印刷された線分(罫線)のレイアウトを表す情報であり、線分を識別する線分IDと、当該線分IDの配下に登録された線分の方向、位置、及び長さを含む。図2では、線分IDとして、1から始まる正の整数を用いている。線分の方向は、横線及び縦線のいずれで表す値である。線分の位置は、横線における左端の位置、或いは縦線における上端の位置を表す座標である。
例えば、図3に示した帳票4における罫線は、横線(x方向にのびる直線)と、縦線(y方向にのびる直線)との接点P1〜P8により10本の線分LS1〜LS10に分割される。10本の線分LS1〜LS10のうちの接点P1と接点P2とを結ぶ線分LS1の位置は、例えば、帳票4の左上角部を基準(原点(0,0))としたときの接点P1の位置で表す。また、線分LS1の長さは、例えば、接点P1から接点P2までの距離で表す。このため、詳細識別辞書121において帳票4の帳票IDと対応付けられる線分情報では、線分LS1に付与した線分IDの配下に、線分LS1が横線であることを表す値と、接点P1の位置と、長さ(接点P1から接点P2までの距離)とが登録される。また、帳票4の帳票IDと対応付けられる線分情報では、他の線分LS2〜LS10のそれぞれに付与された各線分IDの配下に、横線又は縦線であることを表す値と、各線分における一方の接点の位置と、長さ(接点間の距離)と、が登録される。
図4は、大分類辞書テーブルの例を示す図である。図5は、線分ペアに対する大分類辞書テーブルの座標の算出方法を説明する図である。
大分類辞書は、例えば、図4に示すように、複数のセルが二次元配置されたテーブル(大分類辞書テーブル111)で与えられる。大分類辞書テーブル111の各セルには、帳票IDが登録される。例えば、図4において、四隅のセル(U1,V1),(U1,Vq),(Up,V1),(Up,Vq)に記載した「1」は、これらのセルに1番の帳票IDが登録されていることを意味する。
大分類辞書テーブル111における各セルは、1つの帳票内における2本の線分の関係を表す座標(u,v)と対応付けられている。2本の線分の関係を表す座標(u,v)は、2本の線分の長さと、位置関係とに基づいて算出される。大分類辞書テーブル111における各セルと座標(u,v)との対応付けは、既知の帳票認識処理で用いる大分類辞書テーブルにおける対応付けと同様の方法で行えばよい。
例えば、図5に示した帳票4における第1の線分LS1と第2の線分LS2とは、いずれも横線である。この2本の横線の関係を表す座標(u,v)は、第1の線分LS1の長さL1と、第2の線分LS2の長さL2と、2本の線分LS1及びLS2の間隔dとに基づいて、例えば、下記式(1−1)及び式(1−2)により算出する。
u=500×log10(L2/L1) ・・・(1−1)
v=500×log10(d/L1) ・・・(1−2)
図4に示した大分類辞書テーブル111では、例えば、−500≦u≦500の範囲を19等分し、それぞれの範囲を横方向に並んだ19個のセルに割り当てている。同様に、図4に示した大分類辞書テーブル111では、例えば、−500≦v≦500の範囲を19等分し、それぞれの範囲を縦方向に並んだ19個のセルに割り当てている。そのため、1つの帳票内における2本の線分のペア(帳票内線分ペア)は、座標(u,v)により19×19のセルのいずれかと対応付けられる。なお、式(1−1)により算出したuの値が−500よりも小さい場合はu=−500とし、uの値が500よりも大きい場合はu=500とする。同様に、式(1−2)により算出したvの値が−500よりも小さい場合はv=−500とし、vの値が500よりも大きい場合はv=500とする。
大分類辞書テーブル111のセルのうち、帳票内線分ペアの線分同士の関係を表す座標(u,v)と対応付けられたセルには、当該線分ペアの線分を含む帳票の帳票IDが格納される。また、本実施形態で用いる大分類辞書テーブル111では、線分ペアの線分同士の関係を表す座標(u,v)と対応付けられたセルに格納された帳票IDの配下に、その線分ペアを表す情報が登録される。すなわち、大分類辞書テーブル111における、図5に示した2本の線分LS1,LS2から算出した座標(u,v)と対応付けられたセルには、帳票の帳票IDと、2本の線分LS1,LS2の線分ペアを表す情報とが対応付けられる。線分ペアを表す情報には、例えば、2本の線分LS1,LS2の線分IDを用いる。この場合、大分類辞書テーブル111には、例えば、図6に示したような情報が登録される。図6は、第1の実施形態に係る帳票認識処理で用いる大分類辞書テーブルの登録情報の例を示す図である。
図6の大分類辞書テーブル111では、セルの座標と、登録情報とが対応付けられている。セルの座標と対応付けられる登録情報は、帳票IDと、帳票IDの配下に登録された線分ペアの情報と、を含む。帳票IDの配下に登録された線分ペアの情報は、当該線分ペアの各線分の線分IDを含む。また、1つのセルには、1つの帳票IDにおける複数の線分ペアの情報を登録可能であるとともに、複数の帳票IDの線分ペアを登録可能である。例えば、座標(U1,Vq)のセルには、帳票IDが1である帳票における2組の線分ペアについての情報が帳票IDの配下に登録されている。また、例えば、座標(Un,Vm)のセルには、帳票IDが1である帳票における線分ペアについての情報が帳票IDの配下に登録されており、更に帳票IDが2である帳票における線分ペアについての情報が帳票IDの配下に登録されている。
このように、本実施形態に係る大分類辞書テーブル111の各セルには、帳票IDだけでなく、その帳票IDの線分ペアの情報が登録される。
なお、図4の大分類辞書テーブル111は、一例に過ぎず、セルの数や、座標(u,v)の範囲等は適宜変更可能である。また、座標(u,v)の算出方法は、式(1−1)及び式(1−2)に限らず、適宜変更可能である。
上記の大分類辞書テーブル111及び詳細識別辞書121は、例えば、帳票認識装置1とは別の情報処理装置で作成する。
図7は、大分類辞書を作成する情報処理装置の機能的構成を示す図である。
図7に示すように、大分類辞書を作成する情報処理装置5は、帳票画像受付部501と、帳票ID付与部502と、線分抽出部503と、登録部504と、記憶部510と、を備える。
帳票画像受付部501は、大分類辞書への登録対象である帳票の画像データ(帳票画像)の入力を受け付ける。帳票画像は、イメージスキャナ20等を用いて作成される。
帳票ID付与部502は、登録対象の帳票に帳票IDを付与する。帳票IDは、大分類辞書に登録された複数の帳票を識別する値(識別子)である。帳票IDには、例えば、1から始まる正の整数を用いる。
線分抽出部503は、入力された帳票画像に含まれる線分(罫線)を抽出し、抽出した線分に線分IDを付与する。線分抽出部503は、例えば、既知の線分抽出方法のいずれかに従って、帳票画像から線分を抽出する。また、線分IDは、帳票画像から抽出された複数の線分を識別する値(識別子)である。線分IDには、例えば、1から始まる正の整数を用いる。
登録部504は、帳票画像から抽出した線分に基づいて生成される複数の線分ペアについて、線分ペア毎に大分類辞書テーブル111における座標(u,v)を算出し、算出した座標のセルに帳票ID及び線分ペアを登録する。大分類辞書テーブル111は、記憶部510に記憶させておく。登録部504は、記憶部510に記憶させた大分類辞書テーブル111のセルに、帳票IDを登録するとともに、当該帳票IDの配下に線分ペアの各線分の線分IDを登録する。また、登録部504は、例えば、大分類辞書テーブル111に新規に登録した帳票の帳票画像や付与した帳票ID等を表示装置30に出力する。なお、登録部504は、帳票ID及び線分ペアの情報を大分類辞書テーブル111に登録する処理に加え、帳票ID及び抽出した複数の線分を含む詳細識別辞書121を作成して記憶部510に記憶させるものであってもよい。
情報処理装置5で作成した大分類辞書テーブル111は、例えば、インターネット等の通信ネットワークを介して、或いは光ディスク等の可搬型記録媒体を介して、帳票認識装置1の大分類辞書記憶部110に記憶させる。また、情報処理装置5で詳細識別辞書121も作成した場合、作成した詳細識別辞書121は、例えば、インターネット等の通信ネットワークを介して、或いは光ディスク等の可搬型記録媒体を介して、帳票認識装置1の詳細識別辞書記憶部120に記憶させる。
図8Aは、第1の実施形態に係る大分類辞書の作成処理を説明するフローチャート(その1)である。図8Bは、第1の実施形態に係る大分類辞書の作成処理を説明するフローチャート(その2)である。
大分類辞書テーブルを作成する情報処理装置5は、図8Aに示すように、まず、帳票画像及び付与する帳票IDを取得する(ステップS10)。ステップS10の処理は、帳票画像取得部501、及び帳票ID付与部502が行う。帳票画像取得部501は、例えば、イメージスキャナ20が作成して出力した帳票画像の入力を受け付け、帳票ID付与部502に送信する。帳票ID付与部502は、例えば、記憶部510に記憶させた帳票IDの付与情報を参照し、登録対象の帳票に付与する帳票IDを決定してその帳票IDを付与する。帳票IDが1から始まる正の整数である場合、帳票ID付与部502は、付与済みの帳票IDのうちの最大値に1を足した数を登録対象の帳票に付与する帳票IDに決定する。
なお、ステップS10で取得する帳票画像は、イメージスキャナ2を用いて作成した帳票の画像データでに限らず、例えば、情報処理装置5で動作するアプリケーション・ソフトウェアを用いて作成した原版の電子データ等でもよい。
次に、情報処理装置5は、帳票画像から罫線を表す線分を抽出する(ステップS11)。ステップS11の処理は、線分抽出部503が行う。線分抽出部503は、既知の罫線抽出方法のいずれかに従って、帳票画像に含まれる線分を抽出して位置及び長さを表す情報を算出する。抽出した線分には、線分毎に固有の線分IDを付与する。線分IDは、例えば、1から始まる正の整数とする。
次に、情報処理装置5は、抽出した線分をy座標の値の小さい順にソートする(ステップS12)。ステップS12以降の処理は、登録部504が行う。ステップS12において、y座標の値が同じ線分が複数存在する場合、登録部504は、それら線分を、例えば、線分IDが小さい順、或いはx座標が小さい順にソートする。
次に、登録部504は、線分ペアにおける一方の線分のソート順位を表す変数iをi=1に設定する(ステップS13)。次に、情報処理装置5は、線分ペアにおける他方の線分のソート順位を表す変数jをj=i+1に設定する(ステップS14)。
次に、登録部504は、ソート順位がi番の線分とj番の線分との線分ペアに対する大分類辞書テーブルの座標(u,v)を算出する(ステップS15)。ステップS15において、登録部504は、例えば、式(1−1)及び式(1−2)等を用いて、i番の線分とj番の線分との関係(特徴量)を表す座標(u,v)を算出する。
次に、登録部504は、大分類辞書テーブルにおける算出した座標のセルに帳票IDを登録するとともに、その帳票IDの配下に線分ペアの各線分の線分IDを登録する(ステップS16)。
次に、登録部504は、ソート順位がj+1番の線分があるか否かを判定する(ステップS17)。j+1番の線分がある場合(ステップS17;YES)、登録部504は、変数jをj+1に更新し(ステップS18)、ステップS15〜S17の処理を繰り返す。
一方、j+1番の線分がない場合(ステップS17;NO)、登録部504は、次に、i+2番の線分があるか否かを判定する(ステップS19)。i+2番の線分がある場合(ステップS19;YES)、登録部504は、変数iをi+1に更新し(ステップS11)、ステップS14〜S19の処理を繰り返す。そして、i+2番の線分がなくなると(ステップS19;NO)、登録部504(情報処理装置5)は、大分類辞書を作成する処理を終了する。
大分類辞書テーブル111に登録する帳票が複数種類ある場合、情報処理装置5のオペレータは、帳票種毎に、図8A及び図8Bに示す大分類辞書の作成処理を情報処理装置5に行わせる。
なお、図8A及び図8Bに示した大分類辞書の作成処理は、詳細識別辞書121の作成処理とともに行われてもよい。すなわち、図8Aに示した大分類辞書の作成処理におけるステップS11の後、ステップS11で抽出した各線分についての線分の方向、線分の位置、及び長さを表す情報を含むレイアウト情報を帳票IDと対応付けて記憶部501の詳細識別辞書に登録してもよい。抽出した線分のレイアウト情報を詳細識別辞書に登録する処理は、ステップS12以降の処理と並列に行ってもよいし、大分類辞書の作成処理が終了してから行ってもよい。また、大分類辞書の作成処理は、例えば、ステップS10及びステップS11の代わりに、既に詳細識別辞書に登録された帳票の線分のレイアウト情報を読み出して行ってもよい。
図9は、第1の実施形態に係る帳票認識処理を説明するフローチャートである。
図9に示すように、本実施形態の帳票認識装置1が行う帳票認識処理では、まず、認識対象である帳票の画像(帳票画像)の入力を受け付ける(ステップS1)。ステップS1は、帳票画像受付部101が行う。ステップS1の処理において、帳票画像受付部101は、例えば、イメージスキャナ2が作成して出力した帳票画像の入力を受け付ける。帳票画像受付部101は、入力された帳票画像(入力画像)を候補抽出部102に送信する。
なお、ステップS1において、帳票画像受付部101は、例えば、図示しない記憶部に記憶された帳票画像のなかからオペレータが指定した帳票画像を取得してもよい。
次に、候補抽出部102が、入力画像と、大分類辞書記憶部110に記憶させた大分類辞書テーブル111とに基づいて、認識対象である帳票の帳票IDの候補を抽出する候補抽出処理(ステップS2)を行う。ステップS2において候補抽出部102が行う処理は、次の3つの処理を含む。1つ目の処理は、入力画像から線分(罫線)のレイアウト情報を抽出する処理である。2つ目の処理は、入力画像内の線分ペアと、大分類辞書テーブル111に登録された帳票IDの線分ペアとに基づいて、認識対象である帳票の帳票IDの候補を抽出する処理である。3つ目の処理は、帳票IDの候補を抽出する処理の結果に基づいて、入力画像の線分と、候補として抽出した帳票IDの線分とのペア(対応線分ペア)を抽出する処理である。帳票IDの線分は、上記の通り、帳票IDが付与された帳票の線分のことである。候補抽出処理を終えると、候補抽出部102は、入力画像の線分のレイアウト情報と、候補として抽出した帳票IDと、抽出した対応線分ペアの情報とを帳票ID特定部103に送信する。
次に、帳票ID特定部103が、帳票IDの候補のなかから、入力画像(認識対象の帳票)の帳票IDを特定する詳細識別処理(ステップS3)を行う。ステップS3において、帳票ID特定部103は、対応線分ペアにおける認識対象の帳票の線分と、帳票IDの候補と対応付けられた線分との重なり度合いに基づいて、認識対象の帳票の帳票IDを特定する。より具体的には、帳票ID特定部103は、候補となった帳票ID毎に、入力画像の線分情報、詳細識別辞書121、及び対応線分ペアの情報に基づいて、入力画像の線分と帳票IDの線分との対応付けを行う。その後、帳票ID特定部103は、帳票IDの候補のうちの入力画像の線分と対応付けられた線分の数が最も多い帳票IDを、認識対象である帳票の帳票IDと特定し、特定した帳票IDを認識結果出力部104に送信する。
次に、認識結果出力部104が、入力された帳票画像の認識結果として、詳細識別処理において特定された帳票IDを、表示装置3等に出力する(ステップS4)。ステップS4において、認識結果出力部104は、例えば、認識結果(帳票ID)とともに入力された帳票画像を表示装置3等に出力し、帳票画像と帳票IDとを表示装置3に表示させてもよい。また、ステップS4において、認識結果出力部104は、例えば、詳細識別処理の結果に基づいて、入力された帳票画像に対するOptical character recognition(OCR)処理を行い、認識対象の帳票の帳票IDとともに、OCR処理の結果を出力してもよい。
図10Aは、第1の実施形態に係る候補抽出処理の内容を説明するフローチャート(その1)である。図10Bは、第1の実施形態に係る候補抽出処理の内容を説明するフローチャート(その2)である。図10Cは、第1の実施形態に係る候補抽出処理の内容を説明するフローチャート(その3)である。図10Dは、第1の実施形態に係る候補抽出処理の内容を説明するフローチャート(その4)である。図10Eは、第1の実施形態に係る候補抽出処理の内容を説明するフローチャート(その5)である。図10Fは、第1の実施形態に係る候補抽出処理の内容を説明するフローチャート(その6)である。
本実施形態の帳票認識処理における候補抽出処理は、上記のように、帳票認識装置1の候補抽出部102が行う。候補抽出部102は、帳票画像受付部101から認識対象の帳票画像(入力画像)を受け取ると、ステップS2の候補抽出処理として、図10A〜図10Fに示したような処理を行う。
候補抽出部102は、まず、図10Aに示すように、カウンタの値を初期化する(ステップS201)。ステップS201は、帳票ID抽出部102Aが行う。ステップS201において、帳票ID抽出部102Aは、例えば、下記のカウンタの値をそれぞれ0にする。
(1)大分類辞書に登録されている全帳票IDのそれぞれについての、帳票IDの線分と入力画像の線分との線分ペア(帳票間線分ペア)の対応付けの総数を計数するカウンタの値。
(2)帳票IDの配下に登録された線分ペア(帳票内線分ペア)における線分のそれぞれについての、入力画像の線分と対応付けられた回数を計数するカウンタの値。
次に、帳票ID抽出部102Aは、入力画像から線分を抽出し(ステップS202)、抽出した線分をy座標の値が小さい順にソートする(ステップS203)。ステップS202の処理は、例えば、既知である罫線抽出処理のいずれかに従って行う。入力画像から抽出された線分には、線分IDが付与されている。線分IDは、1つの入力画像内における複数の線分を識別する値であり、例えば、1から始まる正の整数を用いる。また、ステップS203の処理においてy座標の値が同じ線分が複数存在する場合、それらの線分の並び順は、所定の規則(例えば、x座標の値が小さい順にソートする等)に従って決定する。
次に、帳票ID抽出部102Aは、入力画像の線分ペアにおける一方の線分のソート順位を表す変数iをi=1に設定する(ステップS204)。次に、帳票ID抽出部102Aは、入力画像の線分ペアにおける他方の線分のソート順位を表す変数jをj=i+1に設定する(ステップS205)。
次に、帳票ID抽出部102Aは、図10Bに示すように、ソート順位がi番の線分とj番の線分との線分ペアに対する大分類辞書テーブルの座標を算出する(ステップS206)。ステップS206において、帳票ID抽出部102Aは、例えば、式(1−1)及び式(1−2)等により線分ペアについての座標(u,v)を算出する。
次に、帳票ID抽出部102Aは、大分類辞書テーブルにおけるステップS206で算出した座標のセルを参照し、そのセルに帳票IDが登録されているか否かを確認する(ステップS207)。帳票IDが登録されていない場合(ステップS207;NO)、帳票ID抽出部102Aは、次に、図10Cに示すように、j+1番の線分があるか否かを判定する(ステップS213)。
一方、参照したセルに帳票IDが登録されている場合(ステップS207;YES)、帳票ID抽出部102Aは、次に、セルに登録されている帳票IDの1つを選択して参照する(ステップS208)。セルに登録されている帳票IDが1つである場合、帳票ID抽出部102Aは、ステップS208において、その1つの帳票IDを選択して参照する。また、セルに登録されている帳票IDが複数である場合、帳票ID抽出部102Aは、ステップS208において、所定の選択規則に従って、ステップS209及びS210の処理を行っていない帳票IDの1つを選択して参照する。選択規則は、例えば、ステップS209及びS210の処理を行っていない帳票IDのうちの、帳票IDの値が最も小さい帳票IDを選択する、という規則にする。
次に、帳票ID抽出部102Aは、選択した帳票IDの配下に登録された線分ペアの1つを選択し、選択した線分ペアの各線分と、入力画像の線分ペアの各線分とを対応付ける(ステップS209)。選択した帳票IDの配下に登録された線分ペアが1つである場合、帳票ID抽出部102Aは、ステップS209において、その1つの線分ペアを選択する。また、参照した帳票IDの配下に登録された線分ペアが複数である場合、帳票ID抽出部102Aは、ステップS209において、所定の選択規則に従って、ステップS209の対応付けを行っていない線分ペアの1つを選択する。選択規則は、例えば、ステップS209の対応付けを行っていない線分ペアのうちの、登録順位が最も高い線分ペアを選択する、という規則にする。
次に、帳票ID抽出部102Aは、帳票IDの配下の線分ペアにおける各線分に対応付けられたカウンタの値、及び帳票IDに対応付けられたカウンタの値に1を加算する(ステップS210)。帳票IDの配下の線分ペアにおける各線分に対応付けられたカウンタの値は、上記(2)のカウンタの値、すなわち帳票IDの配下に登録された線分ペアにおける線分のそれぞれについての、入力画像の線分と対応付けられた回数を計数するカウンタの値である。また、帳票IDに対応付けられたカウンタの値は、上記(1)のカウンタの値、すなわち帳票IDの線分と入力画像の線分との線分ペア(帳票間線分ペア)の対応付けの総数を計数するカウンタの値である。
次に、帳票ID抽出部102Aは、ステップS208で参照した帳票IDの配下に登録されている線分ペアのなかに、入力画像の変数i,jで表される線分ペアとの対応付けを行っていない線分ペアがあるか否かを判定する(ステップS211)。対応付けを行っていない線分ペアがある場合(ステップS211;YES)、帳票ID抽出部102Aは、ステップS209以降の処理を繰り返す。そして、全ての線分ペアで対応付けを行った場合(ステップS211;NO)、帳票ID抽出部102Aは、次に、図10Cに示すように、セル内にステップS208で参照していない帳票IDがあるか否かを判定する(ステップS212)。セル内に参照していない帳票IDがある場合(ステップS212;YES)、帳票ID抽出部102Aは、ステップS208以降の処理を繰り返す。
そして、セル内の全ての帳票IDを参照してステップS209以降の処理を行った場合(ステップS212;NO)、帳票ID抽出部102Aは、次に、入力画像から抽出した線分にj+1番の線分があるか否かを判定する(ステップS213)。j+1番の線分がある場合(ステップS213;YES)、帳票ID抽出部102Aは、変数jをj+1に更新し(ステップS214)、ステップS206以降の処理を繰り返す。一方、j+1番の線分がない場合(ステップS213;NO)、帳票ID抽出部102Aは、次に、入力画像から抽出した線分にi+2番の線分があるか否かを判定する(ステップS215)。i+2番の線分がある場合(ステップS215;YES)、帳票ID抽出部102Aは、変数iをi+1に更新し(ステップS216)、ステップS205以降の処理を繰り返す。
そして、i+2番の線分がない場合(ステップS215;NO)、帳票ID抽出部102Aは、次に、図10Dに示すように、入力画像における最大線分番号j_maxを取得するとともに、帳票IDを指定する値を1とする(ステップS217)。なお、ステップS217において設定する、帳票IDを指定する値は、全帳票IDのうちの最も小さい帳票IDの値とする。本実施形態では帳票IDを1から始まる正の整数としているため、帳票ID抽出部102Aは、ステップS217において、帳票IDを指定する値を1としている。
次に、帳票ID抽出部102Aは、帳票IDの線分を表す変数i、i番の線分が入力画像における1個の線分と対応付けられた回数の最大値Ci_max、及び帳票IDの線分毎の最大値Ci_maxのうちの最大値C_maxを初期化する(ステップS218)。以下の説明では、i番の線分が入力画像における1個の線分と対応付けられた回数の最大値Ci_maxを第1の最大値といい、線分毎の最大値Ci_maxのうちの最大値C_maxを第2の最大値という。帳票IDにおける線分の線分IDが1から始まる正の整数である場合、帳票ID抽出部102Aは、ステップS218において、変数iをi=1とする。また、帳票ID抽出部102Aは、ステップS218において、第1の最大値Ci_max及び第2の最大値C_maxを、それぞれ、Ci_max=0及びC_max=0とする。
次に、帳票ID抽出部102Aは、入力画像の線分を表す変数jを初期化する(ステップS219)。入力画像における線分の線分IDが1から始まる正の整数である場合、帳票ID算出部102Aは、ステップS219において、変数jをj=1とする。
次に、帳票ID抽出部102Aは、現在指定されている帳票IDのi番の線分についてのカウンタのj番目の値Cを参照する(ステップS220)。ステップS220において、帳票ID抽出部102Aは、ステップS210でカウントした帳票IDのi番目の線分と対応付けられた入力画像の線分についてのカウンタ配列を参照する。すなわち、ステップS220において、帳票ID抽出部102Aが参照する値Cは、帳票IDのi番の線分が入力画像のj番の線分と対応付けられた回数である。
次に、帳票ID抽出部102Aは、参照した値Cが、i番の線分についての現時点における第1の最大値Ci_maxよりも大きいか否かを判定する(ステップS221)。C>Ci_maxである場合(ステップS221;YES)、帳票ID抽出部102Aは、次に、第1の最大値Ci_maxを値Cに更新するとともに、最多対応線分LNmaxをjに更新する(ステップS222)。ここで、最多対応線分LNmaxは、現時点における、入力画像の線分のうちの、帳票IDのi番の線分と対応付けられた回数が最も多い線分の線分IDである。
ステップS222の後、帳票ID抽出部102Aは、入力画像の線分を表す変数jが最大線分番号j_maxよりも小さいか否かを判定する(ステップS223)。また、値CがC≦Ci_maxである場合(ステップS221;NO)、帳票ID算出部102Aは、ステップS222を省略し、ステップS223の判定を行う。
j<j_maxである場合(ステップS223;YES)、帳票ID抽出部102Aは、変数jをj+1に更新し(ステップS224)、ステップS220以降の処理を行う。一方、j≧j_maxである場合(ステップS223;NO)、帳票ID抽出部102Aは、次に、図10Eに示すように、変数i、最多対応線分LNmax、及び第1の最大値Ci_maxを、帳票IDの配下に格納する(ステップS225)。
次に、帳票ID抽出部102Aは、第1の最大値Ci_maxが第2の最大値C_maxよりも大きいか否かを判定する(ステップS226)。Ci_max>C_maxである場合(ステップS226;YES)、帳票ID抽出部102Aは、次に、第2の最大値C_maxを第1の最大値Ci_maxに更新する(ステップS227)。
ステップS227の後、帳票ID抽出部102Aは、帳票IDの配下にi+1番の線分があるか否かを判定する(ステップS228)。また、Ci_max≦C_maxである場合(ステップS226;NO)、帳票ID抽出部102Aは、ステップS227を省略し、ステップS228の判定を行う。
帳票IDの配下にi+1番の線分がある場合(ステップS228;YES)、帳票ID抽出部102Aは、変数iをi+1に更新するとともに、第1の最大値C_imaxを初期化し(ステップS229)、ステップS219以降の処理を繰り返す。
i+1番の線分がない場合(ステップS228;NO)、帳票ID抽出部102Aは、次に、現在指定されている帳票IDと、第2の最大値C_maxとを保存する(ステップS230)。ステップS230において、帳票ID抽出部102Aは、例えば、図1には示していないバッファ等に帳票IDと第2の最大値C_maxの組とを保存する。
ステップS230の後、帳票ID抽出部102Aは、ステップS218以降の処理を行っていない帳票IDがあるか否かを判定する(ステップS231)。未処理の帳票IDがある場合(ステップS231;YES)、帳票ID抽出部102Aは、帳票IDを指定する値を更新し(ステップS232)、ステップS218以降の処理を繰り返す。
一方、全ての帳票IDに対してS218以降の処理を行った場合(ステップS231;YES)、帳票ID抽出部102Aは、次に、図10Fに示すステップS233の処理を行う。すなわち、帳票ID抽出部102Aは、次に、各帳票IDの第2の最大値C_max、最多対応線分LNmax、及び第1の最大値Ci_maxの組を読み出し、第2の最大値C_maxの大きい順に帳票IDをソートする。なお、第2の最大値C_maxが同じ値である帳票IDが複数存在する場合、帳票ID抽出部102Aは、所定のソート規則に従って、第2の最大値C_maxが同じ値である複数の帳票IDの並び順を決定する。ソート規則は、例えば、帳票IDを表す値が小さい帳票IDから順に並べる、とする。
次に、帳票ID抽出部102Aは、ソート後の帳票IDの並び順における上位N個の帳票IDを、認識対象の帳票の候補として抽出する(ステップS234)。ステップS234の後、帳票ID抽出部102Aは、抽出したN個の帳票IDについての帳票IDと、第2の最大値C_max、最多対応線分LNmax、及び第1の最大値Ci_maxの組とを候補抽出部102の対応線分ペア抽出部102Bに送信する。
帳票ID抽出部102AからN個の帳票IDについての情報を受け取ると、対応線分ペア抽出部102Bは、図10Fに示したステップS235〜S238の処理を行う。すなわち、対応線分ペア抽出部102Bは、まず、N個の帳票IDのうちの1つを選択し、その帳票IDの配下に格納された線分ペア(i,LNmax)を第1の最大値Ci_maxの大きい順にソートする(ステップS235)。なお、第1の最大値Ci_maxが同じ値である線分が複数存在する場合、対応線分ペア抽出部102Bは、所定のソート規則に従って、第1の最大値Ci_maxが同じ値である複数の線分の並び順を決定する。ソート規則は、例えば、線分IDを表す値が小さい線分から順に並べる(言い換えると、ソート前の並び順で上位となる線分から順に並べる)、とする。
次に、対応線分ペア抽出部102Bは、ソート後の線分ペア(i,LNmax)の並び順における上位M個の線分ペアを、対応線分ペアとして抽出する(ステップS236)。
次に、対応線分ペア抽出部102Bは、対応線分ペアを抽出していない帳票ID、すなわち上位M個の線分ペア(i,LNmax)を抽出していない帳票IDがあるか否かを判定する(ステップS237)。対応線分ペアを抽出していない帳票IDがある場合(ステップS237;YES)、対応線分ペア抽出部102Bは、ステップS235以降の処理を繰り返す。一方、全ての帳票IDから対応線分ペアを抽出した場合(ステップS237;NO)、対応線分ペア抽出部102Bは、抽出したN個の帳票IDについての、帳票IDと対応線分ペアについての情報を帳票ID特定部103に出力する(ステップS238)。ステップS238を終えると、候補抽出部102は、1つの入力画像(認識対象である帳票)についての候補抽出処理を終了する(リターン)。
図11は、認識対象の帳票と大分類辞書に登録された帳票との例を示す図である。図12は、帳票内線分ペア同士の対応付けの結果を示す図である。
図11の(a)には、認識対象の帳票4Aの例を示している。認識対象の帳票4Aには、7本の線分LS1〜LS7が印刷されている。認識対象の帳票4Aにおけるこれら線分LS1〜LS7は、認識対象の帳票4Aの画像に対し所定の罫線抽出処理を行うことにより抽出される。
図11の(b)には、大分類辞書に登録された第1の帳票4Bの例を示している。第1の帳票4Bには、7本の線分LSa〜LSgが印刷されている。第1の帳票4Bにおけるこれら線分LSa〜LSgは、第1の帳票4Bの画像に対し所定の罫線抽出処理を行うことにより抽出される。また、大分類辞書及び詳細識別辞書において、第1の帳票4Bには、第1の帳票IDが付与されている。
認識対象の帳票4Aと第1の帳票4Bとは、線分のレイアウトが類似している。認識対象の帳票4Aには、4本の線分LS1,LS3,LS4,及びLS6により形成される第1の矩形と、4本の線分LS2,LS4,LS5,及びLS7により形成される第2の矩形とが、横方向(x方向)で隣接している。同様に、第1の帳票4Bは、4本の線分LSa,LSc,LSd,及びLSfにより形成される第1の矩形と、4本の線分LSb,LSd,LSe,及びLSgにより形成される第2の矩形とが、横方向で隣接している。また、認識対象の帳票4A及び第1の帳票4Bは、いずれも、第1の矩形が縦長であり、第2の矩形が横長である。
図11の(c)には、大分類辞書に登録された第2の帳票4Cの例を示している。第2の帳票4Cには、7本の線分LSA〜LSGが印刷されている。第2の帳票4Cにおけるこれら線分LSA〜LSGは、第2の帳票4Cの画像に対し所定の罫線抽出処理を行うことにより抽出される。また、大分類辞書及び詳細識別辞書において、第2の帳票4Cには、第1の帳票IDとは別の第2の帳票IDが付与されている。
認識対象の帳票4Aと第2の帳票4Cとは、線分のレイアウトが類似している。認識対象の帳票4Aには、4本の線分LS1,LS3,LS4,及びLS6により形成される第1の矩形と、4本の線分LS2,LS4,LS5,及びLS7により形成される第2の矩形とが、横方向(x方向)で隣接している。同様に、第2の帳票4Cは、4本の線分LSA,LSC,LSD,及びLSFにより形成される第1の矩形と、4本の線分LSB,LSD,LSE,及びLSGにより形成される第2の矩形とが、横方向で隣接している。ただし、認識対象の帳票4Aでは第1の矩形が縦長であり第2の矩形が横長であるのに対し、第2の帳票4Cでは第1の矩形が横長であり第2の矩形が縦長である。
上記のように、大分類辞書テーブル111のセルには帳票IDが登録されており、帳票IDの配下には線分ペアが登録される。そのため、認識対象の帳票4Aの画像(入力画像)を取得して上記の候補抽出処理を行うと、帳票ID抽出部102Aは、入力画像の線分ペアと、大分類辞書テーブル111に登録された帳票IDの線分ペアとの対応付けを行う(ステップS209)。認識対象の帳票4Aと第1の帳票4Bとの線分ペアの対応付け、及び認識対象の帳票4Aと第2の帳票4Cとの線分ペアの対応付けを行うと、図12に示したテーブル131のような結果が得られる。
例えば、認識対象の帳票4Aにおける線分ペア(LS1,LS2)は、横方向に伸びる線分LS1と、線分LS1の右端から右方に伸びる線分LS2とのペアであり、線分LS1と線分LS2とのy方向の間隔dが0である。また、線分ペア(LS1,LS2)は、線分LS1の長さL1と線分LS2の長さL2とがL1<L2である。
第1の帳票4Bにおいて線分同士のy方向の間隔dが0である線分ペアには、(LSa,LSb)と(LSf,LSg)とがある。線分ペア(LSa,LSb)では線分LSaの長さLaと線分LSbの長さLbとの関係がLa<Lbであり、線分ペア(LSf,LSg)では線分LSfの長さLfと線分LSgの長さLgとの関係がLf<Lgである。しかも、図11の(a)及び(b)に示した例では、Lb/La及びLg/Lfが、いずれもL2/L1と略同一の値となる。そのため、式(1−1)及び式(1−2)により算出される線分ペア(LS1,LS2)についてのセルの座標は、配下に(LSa,LSb)と(LSf,LSg)とを含む第1の帳票4Bの帳票IDが登録されたセルの座標と略一致する。よって、第1の帳票4Bの線分ペアのうち、認識対象の帳票4Aの線分ペア(LS1,LS2)と対応付けられるのは、(LSa,LSb)及び(LSf,LSg)となる。
これに対し、第2の帳票4Cにおいて線分同士のy方向の間隔dが0である線分ペア(LSA,LSB)では、線分LSAの長さLAと線分LSBの長さLBとの関係がLA>LBである。同様に、第2の帳票4Cにおける線分ペア(LSF,LSG)では、線分LSFの長さLFと線分LSGの長さLGとの関係がLF>LGである。よって、第2の帳票4Cにおける線分ペアは、いずれも、認識対象の帳票4Aの線分ペア(LS1,LS2)とは対応付けられない。
また、例えば、認識対象の帳票4Aにおける線分ペア(LS1,LS3)は、横方向に伸びる線分LS1と、線分LS1の左端から下方に伸びる線分LS3とのペアである。また、線分ペア(LS1,LS3)は、線分LS1の長さL1と線分LS3の長さL3との関係がL1<L3である。
第1の帳票4Bにおいて、横方向に伸びる線分と、その線分の左端から下方に伸びる線分とのペアには、(LSa,LSc)と(LSb,LSd)とがある。線分ペア(LSa,LSc)は、線分LSaの長さLaと線分LScの長さLcとの関係がLa<Lcであり、かつLc/LaがL3/L1と略同一の値となる。一方、線分ペア(LSb,LSd)は、線分LSbの長さLbと線分LSdの長さLdとの関係がLb>Ldである。そのため、Ld/Lbは、L3/L1とは大きく異なる。よって、第1の帳票4Bの線分ペアのうち、認識対象の帳票4Aの線分ペア(LS1,LS3)と対応付けられるのは、線分ペア(LSa,LSc)のみとなる。
また、第2の帳票4Cの線分ペアのうち、認識対象の帳票4Aの線分(LS1,LS3)と対応付けられるのは、線分ペア(LSB,LSD)となる。
認識対象の帳票4Aと第1の帳票4Bとの線分ペアの対応付け、及び認識対象の帳票4Aと第2の帳票4Cとの線分ペアの対応付けを行った後、帳票ID抽出部102Aは、図10DのステップS217以降の処理を行う。
図13は、認識対象の帳票と第1の帳票IDを付与した帳票との対応付けから抽出される対応線分ペアを説明する図である。図14は、認識対象の帳票と第2の帳票IDを付与した帳票との対応付けから抽出される対応線分ペアを説明する図である。
本実施形態に係る候補抽出処理では、入力画像の線分ペアと対応する帳票IDの線分ペアの対応付けの後、帳票IDの線分ペアにおける各線分についての入力画像の線分と対応付けられた回数を計数する。例えば、図12のような対応付けの結果が得られた場合、第1の帳票ID(第1の帳票4B)の各線分LSa〜LSgについての、入力画像(認識対象の帳票4A)の線分LS1〜LS7と対応付けられた回数の計数結果は、図13の(a)に示すテーブル132Aのようになる。図12の対応付けの結果において、第1の帳票IDの線分LSaを含む線分ペアは、(LSa,LSb)、(LSa,LSc)、及び(LSa,LSd)の3個である。このうち線分ペア(LSa,LSb)は、入力画像の線分ペア(LS1,LS2)及び(LS6,LS7)と対応付けられている。また、線分ペア(LSa,LSc)は線分ペア(LS1,LS3)と対応付けられ、線分ペア(LSa,LSd)は線分ペア(LS1,LS4)と対応付けられている。すなわち、第1の帳票IDの線分LSaは、図13の(a)のテーブル132Aのように、入力画像の線分LS1と3回対応付けられ、線分LS6と1回対応付けられている。このように線分ペアの対応付けを行う際に、第1の帳票IDの各線分LSa〜LSgが入力画像のどの線分と何回対応付けられたかを計数することで、各線分LSa〜LSgについて図13の(a)に示したテーブル132Aのような結果が得られる。
また、上記の候補抽出処理では、図13の(a)に示した結果(テーブル132A)に基づいて、第1の帳票IDの線分LSa〜LSgと、その線分に対応付けられた回数が最多である入力画像の線分との線分ペア(帳票間線分ペア)を生成する。例えば、入力画像の線分LS1〜LS7のうち、第1の帳票IDの線分LSaと対応付けられた線分は、線分LS1及び線分LS6である。また、線分LS1が線分LSaと対応付けられた回数は3回であり、線分LS6が線分LSaと対応付けられた回数は1回である。そのため、第1の帳票IDの線分LSaについての帳票間線分ペアは、対応付けられた回数の多い線分LS1との線分ペア(LS1,LSa)となる。また、入力画像の線分のうち、第1の帳票IDの線分LSbに対応付けられた回数が最多であるのは線分LS2であるため、線分LSbについての帳票間線分ペアは(LS2,LSb)となる。同様に、線分LSc〜LSgについても、それぞれの線分に対応付けられた回数が最多となる入力画像の線分を求めて対応線分ペアを作成すると、図13の(b)に示すテーブル133Aのようになる。
更に、上記の候補抽出処理では、対応線分ペア抽出部102Bが、ステップS234において候補として抽出された帳票IDについての帳票間線分ペアのなかからM個の対応線分ペアを抽出する。対応線分ペアを抽出する際、対応線分ペア抽出部102Bは、ステップS235において、候補の帳票IDにおける帳票間線分ペアを、線分ペアにおける帳票画像の線分と対応付けられた回数の多い順にソートする。図13の(a)に示したように、第1の帳票IDの線分LSa〜LSgのうち、帳票間線分ペアにおける入力画像の線分と対応付けられた回数が最多なのは、線分LS4と6回対応付けられた線分LSdである。よって、帳票間線分ペアのソート順位の1位は(LS4,LSd)となる。また、第1の帳票IDの他の線分LSa,LSc〜LSgは、それぞれ、帳票間線分ペアにおける入力画像の線分と対応付けられた回数が3回である。したがって、帳票間線分ペアのソート順位の2位は、(LS1,LSa),(LS3,LSc),(LS4,LSd),(LS5,LSe),(LS6,LSf),(LS7,LSg)となる。このように、対応付けられた回数が同じ帳票間線分ペアが存在する場合、それら線分ペアは、例えば、第1の帳票IDにおける登録順位が上位の線分から順に並べる。そのため、第1の帳票IDにおける線分LSa〜LSgの登録順位がLSa,LSb,LSc,LSd,LSe,LSf,LSgの順である場合、帳票間線分ペアの並び順は、テーブル133Aのようになる。帳票間線分ペアをソートした後、対応線分ペア抽出部102Bは、上位M個の帳票間線分ペアを抽出して対応線分ペアとする。図13の(b)には、M=3の場合の対応線分ペアの抽出例を示している。抽出した対応線分ペアは、詳細識別処理(ステップS3)で利用する。
また、図12のような対応付けの結果が得られた場合、第2の帳票ID(第2の帳票4C)の各線分LSA〜LSGについての、入力画像(認識対象の帳票4A)の線分LS1〜LS7と対応付けられた回数の計数結果は、図14の(a)に示すテーブル132Bのような結果となる。図12の対応付けの結果において、第2の帳票IDの線分LSAを含む線分ペアは、(LSA,LSC)、及び(LSA,LSD)の2個である。この2個の線分ペアにおける線分LSAは、いずれも入力画像の線分LS2と対応付けられている。そのため、図14の(a)のテーブル132Bのように、線分LSAには、線分LS2が2回対応付けられたという結果が得られる。また、第2の帳票IDの他の線分LSB〜LSGに対して同様の処理を行うと、それぞれ、図14の(a)のテーブル132Bに示した結果が得られる。
また、図14の(a)に示した結果に基づいて、第2の帳票IDの線分LSA〜LSGと、その線分に対応付けられた回数が最多である入力画像の線分LS1〜LS7との帳票間線分ペアを生成すると、次の7個の帳票間線分ペアが生成される。すなわち、(LS2,LSA),(LS1,LSB),(LS4,SC),(LS5,LSD),(LS4,LSE),(LS7,LSF),及び(LS6,LSG)の7個の帳票間線分ペアが生成される。
更に、帳票間線分ペアのなかから対応線分ペアを抽出するため入力画像の線分と対応付けられた回数の多い順に帳票間線分ペアをソートすると、図14の(b)に示したテーブル133Bのような並び順になる。そのため、上位M(=3)個の帳票間線分ペアを抽出して対応線分ペアとする場合、(LS4,LSC),(LS5,LSD),及び(LS4,LSE)の3個の帳票間線分ペアが、第2の帳票IDについての対応線分ペアとなる。
このように、本実施形態に係る帳票認識処理では、大分類辞書テーブルに基づいて認識対象である帳票(入力画像)との類似度の高い帳票ID(帳票IDの候補)を抽出する際に、入力画像と、抽出した帳票IDとの詳細な識別に用いる対応線分ペアも抽出する。そして、本実施形態に係る帳票認識処理では、詳細な識別処理を行う際に用いる帳票間線分ペアを、抽出した対応線分ペアのみに限定する。
対応線分ペアとして抽出された帳票間線分ペアにおける入力画像の線分は、帳票間線分ペアにおける帳票IDの線分と対応付けられた回数の多い線分である。そのため、詳細な識別処理を行う際には、対応線分ペアにおける帳票画像の線分と帳票IDの線分とを一致させた場合(重ねた場合)に、両者の線分のパターンの一致度が高くなる可能性が高い。また、対応線分ペアの数は、帳票IDの線分の総数よりも少ない。したがって、対応線分ペアに基づいて詳細な識別処理をした場合、全ての帳票間線分ペアを用いて詳細な識別処理をする場合に比べて、処理負荷を軽減し、処理に要する時間を短縮することが可能となる。
図15Aは、第1の実施形態に係る詳細識別処理の内容を説明するフローチャート(その1)である。図15Bは、第1の実施形態に係る詳細識別処理の内容を説明するフローチャート(その2)である。
本実施形態の帳票認識処理における詳細識別処理は、上記のように、帳票認識装置1の帳票ID特定部103が行う。帳票ID特定部103は、候補抽出部102から入力画像、識別処理に用いる帳票ID、及び対応線分ペアについての情報を受け取ると、詳細識別処理(ステップS3)として、図15A及び図15Bに示したような処理を行う。なお、図15A及び図15Bに示した詳細識別処理は、既知の帳票認識処理における詳細な識別処理の一例である。
帳票ID特定部103は、まず、帳票IDの線分のうち入力画像の線分と対応付けられた線分の数の最大値Cmaxを初期化するとともに、対応付けに用いるテーブルを初期化する(ステップS301)。ステップS301において、帳票ID特定部103は、最大値Cmaxを0にする。また、対応付けに用いるテーブルは、例えば、セルを二次元配列させ、各セルに線分の位置及び長さの情報を割り当てたテーブルとする。
次に、帳票ID特定部103は、候補抽出部102から受け取った帳票IDの1つを選択する(ステップS302)。帳票IDが複数存在する場合、帳票ID特定部103は、ステップS302において、所定の選択規則に従って、複数の帳票IDのうちの1つの帳票IDを選択する。選択規則は、例えば、入力画像との詳細な対応付けを行っていない帳票IDのうち、帳票IDを表す番号が最も小さい帳票IDを選択する、という規則する。
次に、帳票ID特定部103は、選択した帳票IDと対応付けられた対応線分ペアの1つを選択する(ステップS303)。ステップS303において、帳票ID特定部103は、所定の選択規則に従って、複数の対応線分ペアのうちの1つの対応線分ペアを選択する。選択規則は、例えば、入力画像との詳細な対応付けに用いていない対応線分ペアのうち、線分IDを表す番号が最も小さい帳票IDを選択する、という規則する。
次に、選択した帳票IDの全ての線分を対応付けに用いるテーブルに登録する(ステップS304)。ステップS304において、帳票ID特定部103は、各線分の位置及び長さに基づいて、帳票IDの各線分をテーブルの該当するセルに登録する。
次に、帳票ID特定部103は、選択した対応線分ペアにおける入力画像の線分を基準として、入力画像の線分毎に対応付け用のテーブルを参照し、入力画像の線分と対応付いた帳票IDの線分の数C1を算出する(ステップS305)。ステップS305において、帳票ID特定部103は、例えば、テーブルにおける、入力画像の線分のうちの対応線分ペアの線分のセルを、当該対応線分ペアにおける帳票IDの線分のセルと一致させる。その後、帳票ID特定部103は、対応線分ペアのセルを基準とし、入力画像の線分毎に、線分の位置及び長さに基づいて対応するセルを算出し、算出したセルを参照して帳票IDの線分が登録されているか否かを確認する。そして、参照したセルに帳票IDの線分が登録されていた場合、帳票ID特定部103は、数C1をC1=C1+1に更新する。
次に、帳票ID特定部103は、算出した線分の数C1が、最大値Cmaxよりも大きいか否かを判定する(ステップS306)。C1>Cmaxである場合(ステップS306;YES)、帳票ID特定部103は、CmaxをC1に更新して線分対応付けの結果を保持するとともに、判別結果を表す値Fmaxを、選択された帳票IDを表す値に更新する(ステップS307)。
ステップS307の後、帳票ID特定部103は、選択した帳票IDに対応付けられた全ての対応線分ペアで対応付けを行ったか否かを判定する(ステップS308)。また、C1≦Cmaxである場合(ステップS306;NO)、帳票ID特定部103は、ステップS307を省略しステップS308の判定を行う。
対応付けを行っていない対応線分ペアがある場合(ステップS308;YES)、帳票ID特定部103は、ステップS303以降の処理を繰り返す。そして、全ての対応線分ペアで対応付けを行った場合(ステップS308;NO)、帳票ID特定部103は、次に、図15Bに示すように、候補抽出部102から受け取った帳票IDのなかに対応付けをしていない帳票IDがあるか否かを判定する(ステップS309)。対応付けを行っていない帳票IDがある場合(ステップS309;YES)、帳票ID特定部103は、対応付けに用いるテーブルを初期化し(ステップS310)、ステップS302以降の処理を繰り返す。そして、全ての帳票IDで対応付けを行った場合(ステップS309;NO)、帳票ID特定部103は、判別結果を表す値Fmaxを入力画像の帳票IDとして出力し(ステップS311)、詳細識別処理を終了する(リターン)。ステップS311で出力する値Fmaxは、最後に行ったステップS307の処理において、処理対象である帳票IDを表す値に更新されている。ステップS307の処理は、対応線分ペアに基づいて入力画像の線分と対応付けられた帳票IDの線分の数が、その時点での最大値Cmaxよりも大きい場合に行われる。すなわち、ステップS311で出力する値Fmaxは、候補抽出部102が抽出した複数の帳票IDのうちの、入力画像の線分と対応付けられた線分の数が最多の帳票IDを表す。
図16は、詳細識別処理における第1の帳票IDを付与した帳票と入力画像の帳票との対応付けを説明する図である。図17は、対応線分ペアに基づいて行った第1の帳票IDを付与した帳票の線分と入力画像の線分との対応付けの結果を示す図である。
図16の(a)には、認識対象である帳票4Aの例として、図11の(a)と同じ帳票を示している。また、図16の(b)には、候補抽出部102(帳票ID抽出部102A)が抽出した帳票IDの帳票の例として、図11の(b)と同じ、第1の帳票IDが付与された第1の帳票4Bを示している。
候補抽出部102は、まず、認識対象である帳票4Aの画像(入力画像)から、7個の線分LS1〜LS7を抽出する。次に、帳票抽出部102は、入力画像の線分ペア(帳票内線分ペア)と、大分類辞書テーブルに登録された各帳票IDの線分ペア(帳票内線分ペア)とに基づいて、第1の帳票ID(第1の帳票4B)を、認識対象である帳票4Aの帳票IDの候補の1つとして抽出する。
その後、候補抽出部102は、第1の帳票IDについての対応線分ペアとして、例えば、図16の(c)のテーブル134Aに示した(LS4,LSd),(LS1,LSa),及び(LS2,LSb)の3個の帳票間線分ペアを抽出する。そして、候補抽出処理の後に行われる詳細識別処理において、帳票ID特定部103は、対応線分ペア(LS4,LSd),(LS1,LSa),及び(LS2,LSb)に基づいて、入力画像と第1の帳票IDとの詳細な対応付けを行う。
入力画像と第1の帳票IDとの詳細な対応付けにおいては、まず、対応線分ペアの1つを選択し、当該線分ペアにおける第1の帳票IDの線分を基準として、第1の帳票IDの全ての線分を対応付け用のテーブルに登録する。例えば、対応線分ペア(LS4,LSd)を選択した場合、帳票ID特定部103は、第1の帳票IDの線分LSdを基準として、図17に示すように、第1の帳票IDの全ての線分LSa〜LSgを対応付け用のテーブル135の対応するセルに登録する。
次に、帳票ID特定部103は、選択した対応線分ペア(LS4,LSd)における入力画像の線分LS4を基準として、対応付け用のテーブル135における入力画像の各線分S1〜S7と対応するセルを参照する。このとき、帳票ID特定部103は、テーブル135における入力画像の線分LS4と対応するセルを、第1の帳票IDの線分LSdが登録されたセル136Aとして、入力画像の各線分LS1〜LS7と対応するセルを決定する。
図16の(a)及び(b)に示したように、入力画像(認識対象の帳票4A)の線分LS1〜LS7のレイアウトと、第1の帳票ID(第1の帳票4B)の線分LSa〜LSgのレイアウトとは、略同一である。そのため、テーブル135における入力画像の線分LS4と対応するセルを、第1の帳票IDの線分LSdを登録したセル136Aとした場合、テーブル135における入力画像の各線分LS1〜LS7と対応するセルは、図17に示したようになる。すなわち、入力画像の各線分LS1〜LS7と対応するセルは、それぞれ、第1の帳票IDの線分LSa〜LSgが登録されたセルとなる。
したがって、対応線分ペア(LS4,LSd)を基準として入力画像の線分と第1の帳票IDの線分との対応付けを行った場合、対応付けられた線分の数C1は「7」となる。また、対応線分ペア(LS1,LSa)を基準として入力画像の線分と第1の帳票IDの線分との対応付けを行った場合も、対応付けられた線分の数C1は「7」となる。更に、対応線分ペア(LS2,LSb)を基準として入力画像の線分と第1の帳票IDの線分との対応付けを行った場合も、対応付けられた線分C1の数は「7」となる。すなわち、対応線分ペアに基づいて入力画像の線分と第1の帳票IDの線分との対応付けを行った場合、対応付けられた線分の数の最大値Cmaxは、第1の帳票IDにおける線分の総数と同じ「7」となる。
図18は、詳細識別処理における第2の帳票IDを付与した帳票と入力画像の帳票との対応付けを説明する図である。図19は、対応線分ペアに基づいて行った第2の帳票IDを付与した帳票の線分と入力画像の線分との対応付けの結果を示す図である。
図18の(a)には、認識対象である帳票4Aの例として、図11の(a)と同じ帳票を示している。また、図18の(b)には、候補抽出部102(帳票ID抽出部102A)が抽出した帳票IDの帳票の例として、図11の(c)と同じ、第2の帳票IDが付与された第2の帳票4Cを示している。
例えば、帳票ID抽出部102Aが、入力画像の線分LS1〜LS7による線分ペアと、大分類辞書テーブルに登録された各帳票IDの線分ペアとに基づいて、第2の帳票ID(第2の帳票4C)を、認識対象である帳票4Aの候補として抽出したとする。この場合、候補抽出部102は、第2の帳票IDについての対応線分ペアとして、例えば、図18の(c)のテーブル134Bに示した(LS4,LSC),(LS5,LSD),及び(LS4,LSE)の3個の帳票間線分ペアを抽出する。そうすると、候補抽出処理の後に行われる詳細識別処理において、帳票ID特定部103は、対応線分ペア(LS4,LSC),(LS5,LSD),及び(LS4,LSE)に基づいて、入力画像と第2の帳票IDとの詳細な対応付けを行う。
入力画像と第2の帳票IDとの詳細な対応付けにおいては、まず、対応線分ペアの1つを選択し、当該線分ペアにおける第2の帳票IDの線分を基準として、第2の帳票IDの全ての線分を対応付け用のテーブル135に登録する。例えば、対応線分ペア(LS4,LSC)を選択した場合、帳票ID特定部103は、第2の帳票IDの線分LSCを基準として、図19に示すように、第2の帳票IDの全ての線分LSA〜LSGをテーブル135の対応するセルに登録する。
次に、帳票ID特定部103は、選択した対応線分ペア(LS4,LSC)における入力画像の線分LS4を基準として、対応付け用のテーブル135における入力画像の各線分LS1〜LS7と対応するセルを参照する。このとき、帳票ID特定部103は、テーブル135における入力画像の線分LS4と対応するセルを、第2の帳票IDの線分LSCが登録されたセル136Bとして、入力画像の各線分LS1〜LS7と対応するセルを決定する。
図18の(a)及び(b)に示したように、入力画像(認識対象の帳票4A)の線分LS1〜LS7のレイアウトと、第2の帳票ID(第2の帳票4B)の線分LSA〜LSGのレイアウトとでは、縦長の矩形と横長の矩形との位置関係が反対になっている。しかも、入力画像における線分LS4と、第2の帳票IDにおける線分LSCとでは、接している線分の数が異なる。
そのため、対応付け用のテーブル135における入力画像の線分LS4と対応するセルを、第2の帳票IDの線分LSCが登録されたセルとした場合、テーブル135における入力画像の各線分S1〜S7と対応するセルは、図19に示したようになる。すなわち、対応線分ペア(LS4,LSC)を基準として入力画像の線分と第2の帳票IDの線分との対応付けを行った場合、対応付けられた線分の数C1は「4」となる。また、対応線分ペア(LS5,LSD)を基準として入力画像の線分と第2の帳票IDの線分との対応付けを行った場合も、対応付けられた線分の数C1は「4」となる。更に、対応線分ペア(LS4,LSE)を基準として入力画像の線分と第2の帳票IDの線分との対応付けを行った場合も、対応付けられた線分C1の数は「4」となる。すなわち、対応線分ペアに基づいて入力画像(認識対象の帳票4A)の線分と第2の帳票ID(第2の帳票4C)の線分との対応付けを行った場合、対応付けられた線分の数の最大値Cmaxは「4」となる。
よって、候補抽出部102において抽出された帳票IDが第1の帳票ID及び第2の帳票IDの2つであった場合、帳票ID特定部103は、詳細識別処理の結果(値Fmax)として第1の帳票IDを出力する。このように、本実施形態に係る詳細識別処理では、対応線分ペアにおける認識対象の帳票の線分と帳票IDの線分との重なり度合いに基づき、重なり度合いが最も高い帳票IDの候補を認識対象の帳票の帳票IDに特定する。
また、図16の(b)に示した第1の帳票4Bとの類似度が高い別の帳票の帳票IDが大分類辞書に登録されている場合、その帳票IDも候補として抽出されることがある。しかしながら、第1の帳票IDが付与された帳票4Bと別の帳票IDが付与された帳票とでは、線分のレイアウトに差異がある。そのため、認識対象の帳票4Aと第1の帳票ID(第1の帳票4B)との線分のレイアウトが略同一である場合、入力画像と別の帳票IDとで対応づく線分の数の最大値Cmaxは「6」以下となる。よって、本実施形態に係る帳票認識処理では、3個以上の帳票IDが大分類辞書に登録されている場合でも、認識対象の帳票4Aを正しく認識することができる。
図20は、対応線分ペアとは別の線分ペアに基づいて行った第1の帳票IDを付与した帳票の線分と入力画像の線分との対応付けの結果を示す図である。
図16の(a)及び(b)に示した認識対象の帳票4Aの線分LS1〜LS7と、第1の帳票4Bの線分LSa〜LSgとの対応付けを行う場合、本実施形態に係る帳票認識処理では、上記のように、対応線分ペアのみに基づいて対応付けを行う。これに対し、特許文献1等に開示された帳票認識処理では、対応線分ペアに含まれない線分ペア(例えば、(LS3,LSd)等)を基準とした対応付けも行い、それら線分ペアの対応付けの結果も含めて認識対象の帳票4Aの帳票IDを特定する。
例えば、対応線分ペアに含まれない線分ペア(LS3,LSd)を基準として対応付けを行う場合、まず、図20に示すように、第1の帳票IDの線分LSdを基準として第1の帳票IDの各線分LSa〜LSgをテーブル135の対応するセルに登録する。その後、入力画像の線分LS3を基準として、テーブル135における入力画像の各線分LS1〜LS7と対応するセルを参照する。このとき、帳票ID特定部103は、テーブル135における入力画像の線分LS3と対応するセルを、第1の帳票IDの線分LSdを登録したセル136Aとして、入力画像の各線分LS1〜LS7と対応するセルを決定する。
図16の(a)及び(b)からわかるように、入力画像(認識対象の帳票4A)における線分LS1〜LS7のレイアウトと、第1の帳票ID(第1の帳票4B)における線分LSa〜LSgのレイアウトとは略同一である。しかしながら、入力画像の線分LS1〜LS7において第1の帳票IDの線分LSdと対応するのは、線分LS4である。すなわち、対応付け用のテーブル135における入力画像の線分LS3と対応するセルを第1の帳票IDの線分LSdが登録されたセル136Aとするのは誤りである。このように基準とするセルの対応付けを誤った場合、図20に示したように、入力画像の各線分LS1,LS2,LS4〜LS7と対応するセルには第1の帳票IDの線分が登録されていない。よって、線分ペア(LS3,LSd)を基準として入力画像の線分と第1の帳票IDの線分との対応付けを行った場合、対応付けられた線分の数C1は「1」となる。また、対応線分ペアに含まれない他の線分ペアを基準とした場合も、図13の(b)に示した線分ペア(LS3,LSc),(LS5,LSe),(LS6,LSf),及び(LS5,LSg)を除き、対応付けられた線分の数C1は「6」以下となる。すなわち、対応線分ペアに含まれない線分ペアも含めて入力画像の線分と第1の帳票IDの線分との対応付けを行った場合でも、対応付けられた線分の数C1の最大値Cmaxは「7」となる。したがって、本実施形態に係る帳票認識処理では、詳細識別処理において対応付けを行う帳票間線分ペアの数を少なくしても、入力画像に基づいて認識対象である帳票の帳票IDを正しく認識することが可能となる。よって、帳票認識装置1の処理負荷を軽減することが可能となる。
なお、本実施形態では、帳票認識装置1とは別の情報処理装置により作成した大分類辞書及び詳細識別辞書を、それぞれ、大分類辞書記憶部110及び詳細識別辞書記憶部120に記憶させている。しかしながら、大分類辞書及び詳細識別辞書は、帳票認識装置1を用いて作成してもよい。
図21は、第1の実施形態に係る帳票認識装置の機能的構成の変形例を示す図である。
本実施形態に係る帳票認識装置1は、図21に示すように、帳票画像受付部101と、候補抽出部102と、帳票ID特定部103と、認識結果出力部104とに加え、処理選択部105と、辞書作成部106と、を備える装置であってもよい。図21の帳票認識装置1における帳票画像受付部101、候補抽出部102、帳票ID特定部103、及び認識結果出力部104のそれぞれの機能は、上記の通りである。
図21の帳票認識装置1における処理選択部105は、例えば、帳票認識装置1の利用者(オペレータ)が図示しない入力装置を操作して入力した情報に基づいて、帳票を認識する処理と、辞書を作成する処理とのいずれを行うかを選択する。帳票を認識する処理と対応付けられた情報が入力された場合、処理選択部105は、候補抽出部102に図10A〜図10Fに示したような候補抽出処理を行わせる。一方、辞書を作成する処理と対応付けられた情報が入力された場合、処理選択部105は、辞書作成部106に、図8A及び図8Bに示したような大分類辞書テーブルの作成処理と、図示しない詳細識別辞書作成処理と、を行わせる。
このように、帳票認識装置1に辞書作成部106を設けることで、帳票認識装置1において大分類辞書テーブル111及び詳細識別辞書121を作成することが可能となり、辞書データを適宜更新することが可能となる。そのため、例えば、既存の帳票における線分のレイアウトの一部を変更した帳票についての辞書データを独自に作成して追加することが可能となる。
また、図1に示した帳票認識装置1における大分類辞書記憶部110及び詳細識別辞書記憶部120は、帳票認識装置1とは別の辞書サーバに設けられていてもよい。
図22は、帳票認識システムの構成例を示す図である。
図22に示したように、帳票認識システム6は、帳票認識装置1と、イメージスキャナ2と、表示装置3と、辞書サーバ7とを含む。辞書サーバ7は、大分類辞書記憶部710と、詳細識別辞書記憶部720とを備える。
帳票認識装置1は、帳票画像受付部101と、候補抽出部102と、帳票ID特定部103と、認識結果出力部103と、通信部107と、を備える。図22の帳票認識装置1における帳票画像受付部101、候補抽出部102、帳票ID特定部103、及び認識結果出力部104のそれぞれの機能は、上記の通りである。帳票認識装置1は、イメージスキャナ2で作成した帳票画像を取得した後、図10A〜図10Fに示したような候補抽出処理と、図15A及び図15Bに示したような詳細識別処理とを行い、詳細識別処理の結果を表示装置3に出力する。また、帳票認識装置1は、通信部107により、Local Area Network(LAN)或いはインターネット等の通信ネットワーク8と通信可能に接続されている。帳票認識装置1の通信部107は、通信ネットワーク8を介して辞書サーバ7にアクセスし、辞書サーバ7の大分類辞書記憶部710から大分類辞書テーブルを取得するとともに、詳細識別辞書記憶部720から詳細識別辞書を取得する。
このように、大分類辞書テーブル及び詳細識別辞書を辞書サーバ7で保持することにより、複数の帳票認識装置1で、大分類辞書テーブル及び詳細識別辞書を共有することが可能となる。そのため、例えば、新たな帳票についての線分情報を、効率よく辞書データに登録することが可能となる。また、各帳票認識装置1に大分類辞書記憶部110及び詳細辞書記憶部120を設けなくてもよいので、辞書データの増大による、帳票認識装置1の記憶部の容量の圧迫を抑制することが可能となる。
また、図8A及び図8Bのフローチャートは、本実施形態に係る大分類辞書の作成処理の一例に過ぎない。本実施形態に係る大分類辞書は、図8A及び図8Bに示した手順に限らず、図8A及び図8Bに示した処理ステップの一部を変更した手順で作成してもよいし、図8A及び図8Bとは異なる既知の手順により作成してもよい。
また、図10A〜図10Fのフローチャートは、本実施形態に係る候補抽出処理の一例に過ぎない。本実施形態に係る候補抽出処理は、図10A〜図10Fに示した手順に限らず、図10A〜図10Fに示した処理ステップの一部を変更した手順で行ってもよい。
更に、図15A及び図15Bのフローチャートは、本実施形態に係る詳細識別処理の一例に過ぎない。本実施形態に係る詳細識別処理は、図15A及び図15Bに示した手順に限らず、図15A及び図15Bに示した処理ステップの一部を変更した手順で作成してもよいし、図15A及び図15Bとは異なる既知の手順により作成してもよい。
また、入力画像の線分と帳票IDの候補の線分との帳票間線分ペアから対応線分ペアを抽出する際には、対応付けられた回数の多い線分ペアから順に所定数の線分ペアを抽出する代わりに、対応付けられた回数が所定回数以上である帳票間線分ペアを抽出してもよい。
[第2の実施形態]
図23は、第2の実施形態に係る帳票認識処理で用いる大分類辞書テーブルの登録情報の例を示す図である。
本実施形態の帳票認識処理では、図23に示すように、大分類辞書テーブル112のセルに登録する帳票IDの配下に、線分ペアの各線分の線分IDとともに、線分の角度、及び線分の色を登録する。線分の角度は、例えば、登録時に用いた帳票画像等のデータにおける水平方向を0度とし、当該水平方向から反時計回り方向の角度を正として算出する。すなわち、右肩上がりの線分の角度は正の値とし、右肩下がりの線分の角度は負の値とする。また、垂直方向に伸びる線分の角度は+90度とする。一方、線分の色は、例えば、登録時に用いた帳票画像等のデータにおいて1個の線分を表す複数の画素のRGB値の平均値とする。
図24Aは、第2の実施形態に係る大分類辞書の作成処理を説明するフローチャート(その1)である。図24Bは、第2の実施形態に係る大分類辞書の作成処理を説明するフローチャート(その2)である。なお、図24A及び図24Bにおいて、第1の実施形態に係る大分類辞書の作成処理(図8A及び図8B参照)における処理ステップと同じ処理ステップには、同じステップ番号(例えば、S10)を付している。
本実施形態に係る大分類辞書テーブル112は、例えば、帳票認識装置1とは別の情報処理装置5(図7参照)を用いて作成する。大分類辞書テーブル112を作成する処理を開始すると、情報処理装置5は、図24Aに示すように、まず、帳票画像及び付与する帳票IDとを取得する(ステップS10)。なお、帳票画像は、イメージスキャナで作成した帳票の画像データに限らず、情報処理装置5で動作するアプリケーション・ソフトウェアを用いて作成した原版の電子データ等でもよい。
次に、情報処理装置5は、帳票画像から罫線を表す線分を抽出し、抽出した各線分の角度及び色を算出する(ステップS25)。ステップS25において、情報処理装置5は、既知の罫線抽出方法のいずれかに従って、帳票画像に含まれる線分を抽出して位置及び長さを表す情報を算出する。抽出した線分には、線分毎に固有の線分IDを付与する。また、情報処理装置5は、帳票画像における水平方向を0度とし、水平方向から反時計回りの方向を正として、線分の延びる方向を表す角度を算出する。更に情報処理装置5は、線分の色として、例えば、1本の線分を表す複数の画素のそれぞれにおけるRGB値の平均値を算出する。
次に、情報処理装置5は、抽出した線分をy座標の値の小さい順にソートする(ステップS12)。ステップS12において、y座標の値が同じ線分が複数存在する場合、情報処理装置5は、それら線分を、例えば、線分IDが小さい順、或いはx座標が小さい順にソートする。
次に、情報処理装置5は、線分ペアにおける一方の線分のソート順位を表す変数iをi=1に設定する(ステップS13)。次に、情報処理装置5は、図24Bに示すように、線分ペアにおける他方の線分のソート順位を表す変数jをj=i+1に設定する(ステップS14)。
次に、情報処理装置5は、ソート順位がi番の線分とj番の線分との線分ペアに対する大分類辞書テーブル112における座標を算出する(ステップS15)。ステップS15において、情報処理装置5は、例えば、式(1−1)及び式(1−2)等を用いて、i番の線分とj番の線分との関係(特徴量)を表す座標(u,v)を算出する。
次に、情報処理装置5は、大分類辞書テーブルにおける算出した座標のセルに帳票IDを登録するとともに、その帳票IDの配下に線分ペアの各線分の線分ID、角度、及び色を登録する(ステップS26)。なお、該当するセルに既に同じ帳票IDが登録されている場合、情報処理装置5は、ステップS26おいて、登録済みの帳票IDの配下に線分ペアの各線分の線分ID、角度、及び色を追加登録する処理を行う。
次に、情報処理装置5は、入力画像の線分にソート順位がj+1番の線分があるか否かを判定する(ステップS17)。j+1番の線分がある場合(ステップS17;YES)、情報処理装置5は、変数jをj+1に更新し(ステップS18)、ステップS15以降の処理を繰り返す。
一方、j+1番の線分がない場合(ステップS17;NO)、情報処理装置5は、次に、入力画像の線分にソート順位がi+2番の線分があるか否かを判定する(ステップS19)。i+2番の線分がある場合(ステップS19;YES)、情報処理装置5は、変数iをi+1に更新し(ステップS20)、ステップS14以降の処理を繰り返す。i+2番の線分がない場合(ステップS19;NO)、情報処理装置5は、大分類辞書を作成する処理を終了する。
大分類辞書テーブル112に登録する帳票が複数種類ある場合、情報処理装置5のオペレータは、帳票種毎に、情報処理装置5に図24A及び図24Bに示した大分類辞書の作成処理を行わせる。
なお、図24A及び図24Bに示した大分類辞書の作成処理は、詳細識別辞書の作成処理とともに行われてもよい。すなわち、図24Aに示した大分類辞書の作成処理におけるステップS25の後、ステップS25で算出した線分の方向、線分の位置、及び長さを表す情報を含むレイアウト情報を作成し、当該レイアウト情報を帳票IDと対応付けて詳細識別辞書に登録してもよい。更に、詳細識別辞書に登録するレイアウト情報は、各線分の角度及び色を含むものでもよい。
本実施形態に係る帳票認識装置の機能的構成は、図1に示した帳票認識装置1と同様の構成である。本実施形態の帳票認識装置は、帳票認識処理として、図9に示したステップS1〜S4の処理を行う。なお、本実施形態の帳票認識処理における候補抽出処理(ステップS2)では、第1の実施形態に係る候補抽出処理におけるステップS201〜S216と対応する処理(図10A〜図10C参照)として、図25A〜図25Cに示す処理を行う。
図25Aは、第2の実施形態に係る候補抽出処理の一部を説明するフローチャート(その1)である。図25Bは、第2の実施形態に係る候補抽出処理の一部を説明するフローチャート(その2)である。図25Cは、第2の実施形態に係る候補抽出処理の一部を説明するフローチャート(その3)である。なお、図25A〜図25Cにおいて、第1の実施形態に係る候補抽出処理(図10A〜図10C参照)における処理ステップと同じ処理ステップには、同じステップ番号(例えば、S201)を付している。
本実施形態の帳票認識処理における候補抽出処理は、帳票認識装置1の候補抽出部102が行う。候補抽出部102は、帳票画像受付部101から認識対象の帳票の画像(入力画像)を受け取ると、まず、図25Aに示したような処理を行う。
候補抽出部102は、まず、カウンタの値を初期化する(ステップS201)。ステップS201は、帳票ID抽出部102Aが行う。ステップS201において、帳票ID抽出部102Aは、例えば、下記のカウンタの値をそれぞれ0にする。
(1)大分類辞書に登録されている全帳票IDのそれぞれについての、帳票IDの線分と入力画像の線分との線分ペア(帳票間線分ペア)の対応付けの総数を計数するカウンタの値。
(2)帳票IDの配下に登録された線分ペア(帳票内線分ペア)における線分のそれぞれについての、入力画像の線分と対応付けられた回数を計数するカウンタの値。
次に、帳票ID抽出部102Aは、入力画像から線分を抽出し、抽出した各線分の角度及び色を算出する(ステップS250)。ステップS250において、帳票ID抽出部102Aは、例えば、既知である罫線抽出処理のいずれかに従って入力画像から線分を抽出し、各線分に線分IDを付与する。線分IDには、例えば、1から始まる正の整数を用いる。また、帳票ID抽出部102Aは、抽出した線分毎に線分の角度θ、及び線分の色を算出し、線分IDと、角度θと、色とを対応付ける。
次に、帳票ID抽出部102Aは、入力画像から抽出した線分をy座標の値が小さい順にソートする(ステップS203)。ステップS203の処理において、y座標の値が同じ線分が複数存在する場合、それらの線分の並び順は、所定の規則(例えば、x座標の値が小さい順にソートする等)に従って決定する。
次に、帳票ID抽出部102Aは、入力画像の線分ペアにおける一方の線分のソート順位を表す変数iをi=1に設定する(ステップS204)。次に、帳票ID抽出部102Aは、線分ペアにおける他方の線分のソート順位を表す変数jをj=i+1に設定する(ステップS205)。
次に、帳票ID抽出部102Aは、入力画像におけるソート順位がi番の線分とj番の線分との線分ペアに対する大分類辞書テーブルの座標を算出する(ステップS206)。ステップS206において、帳票ID抽出部102Aは、例えば、式(1−1)及び式(1−2)等を用いて線分ペアについての座標(u,v)を算出する。
次に、帳票ID抽出部102Aは、大分類辞書テーブルにおける算出した座標のセルを参照し、そのセルに帳票IDが登録されているか否かを確認する(ステップS207)。帳票IDが登録されていない場合(ステップS207;NO)、帳票ID抽出部102Aは、次に、図25Cに示すように、j+1番の線分があるか否かを判定する(ステップS13)。
一方、参照したセルに帳票IDが登録されている場合(ステップS207;YES)、帳票ID抽出部102Aは、次に、図25Bに示すように、セルに登録されている帳票IDの1つを選択して参照する(ステップS208)。セルに登録されている帳票IDが1つである場合、帳票ID抽出部102Aは、その1つの帳票IDを選択する。また、セルに登録された帳票IDが複数である場合、帳票ID抽出部102Aは、所定の選択規則に従って、ステップS251以降の処理を行っていない帳票IDの1つを選択する。
次に、帳票ID抽出部102Aは、選択した帳票IDの配下に登録された線分ペアの1つを選択する(ステップS251)。帳票IDの配下に登録された線分ペアが1つである場合、帳票ID抽出部102Aは、その1つの線分ペアを選択する。また、帳票IDの配下に登録された線分ペアが複数である場合、帳票ID抽出部102Aは、所定の選択規則に従って、ステップS252以降の処理を行っていない線分ペアの1つを選択する。
次に、帳票ID抽出部102Aは、帳票IDの配下から選択した線分ペアと、入力画像の線分ペアとに基づいて、対応する線分同士の角度差及び色差を算出する(ステップS252)。例えば、帳票IDの配下から選択した線分ペアが(LSa,LSb)であり、入力画像の線分ペアが(LS1,LS2)である場合、帳票ID抽出部102Aは、線分LSaと線分LS1との角度差、及び線分LSbと線分LS2との角度差を算出する。また、帳票ID抽出部102Aは、線分LSaと線分LS1との色差、及び線分LSbと線分LS2との色差を算出する。
次に、帳票ID抽出部102Aは、算出した角度差が第1の閾値TH1よりも小さく、かつ算出した色差が第2の閾値TH2よりも小さいか否かを判定する(ステップS253)。ステップS253において、帳票ID抽出部102Aは、算出した2個の角度差の値がいずれも第1の閾値TH1よりも小さい場合に、角度差が第1の閾値TH1よりも小さいと判定する。同様に、ステップS253において、帳票ID抽出部102Aは、算出した2個の色差の値がいずれも第2の閾値TH2よりも小さい場合に、色差が第2の閾値TH2よりも小さいと判定する。
角度差が第1の閾値TH1よりも小さく、かつ色差が第2の閾値TH2よりも小さい場合(ステップS253;YES)、帳票ID抽出部102は、次に、帳票IDの線分ペアの線分と入力画像の線分ペアの線分との対応付けを行う(ステップS254)。例えば、帳票IDの配下から選択した線分ペアが(LSa,LSb)であり、入力画像の線分ペアが(LS1,LS2)である場合、帳票ID抽出部102Aは、線分LSaと線分LS1とを対応付けるとともに、線分LSbと線分LS2とを対応付ける。
次に、帳票ID抽出部102Aは、帳票IDの配下の線分ペアにおける各線分に対応付けられたカウンタの値、及び帳票IDに対応付けられたカウンタの値に1を加算する(ステップS210)。帳票IDの配下の線分ペアにおける各線分に対応付けられたカウンタの値は、上記(2)のカウンタの値、すなわち帳票IDの配下に登録された線分ペアにおける線分のそれぞれについての、入力画像の線分と対応付けられた回数を計数するカウンタの値である。また、帳票IDに対応付けられたカウンタの値は、上記(1)のカウンタの値、すなわち帳票IDの線分と入力画像の線分との線分ペア(帳票間線分ペア)の対応付けの総数を計数するカウンタの値である。
次に、帳票ID抽出部102Aは、ステップS208で参照した帳票IDの配下に登録されている線分ペアのなかに、入力画像の変数i,jで表される線分ペアとの対応付けを行っていない線分ペアがあるか否かを判定する(ステップS211)。また、ステップS253において角度差が第1の閾値TH以上、又は色差が第2の閾値TH2以上であった場合(ステップS253;NO)、帳票ID抽出部102は、ステップS254及びS210の処理を省略してステップS211の判定を行う。
対応付けを行っていない線分ペアがある場合(ステップS211;YES)、帳票ID抽出部102Aは、ステップS251以降の処理を繰り返す。そして、全ての線分ペアで対応付けを行った場合(ステップS211;NO)、帳票ID抽出部102Aは、次に、図25Cに示すように、セル内にステップS208で参照していない帳票IDがあるか否かを判定する(ステップS212)。セル内に参照していない帳票IDがある場合(ステップS212;YES)、帳票ID抽出部102Aは、ステップS208以降の処理を繰り返す。
そして、セル内の全ての帳票IDを参照してステップS251以降の処理を行った場合(ステップS212;NO)、帳票ID抽出部102Aは、次に、入力画像から抽出した線分にj+1番の線分があるか否かを判定する(ステップS213)。また、大分類辞書テーブルにおけるステップS206で算出した座標のセルに帳票IDが登録されていない場合(ステップS207;NO)、帳票ID抽出部102Aは、ステップS208〜S211の処理を省略してステップS213の判定を行う。
j+1番の線分がある場合(ステップS213;YES)、帳票ID抽出部102Aは、変数jをj+1に更新し(ステップS214)、ステップS206以降の処理を繰り返す。一方、j+1番の線分がない場合(ステップS213;NO)、帳票ID抽出部102Aは、次に、入力画像から抽出した線分にi+2番の線分があるか否かを判定する(ステップS215)。i+2番の線分がある場合(ステップS215;YES)、帳票ID抽出部102Aは、変数iをi+1に更新し(ステップS216)、ステップS205以降の処理を繰り返す。
そして、i+2番の線分がない場合(ステップS215;NO)、帳票ID抽出部102Aを含む候補抽出部102は、続けて、図10D〜図10Fに示したステップS217〜S238の処理を行う。ステップS238の処理を終えると、候補抽出部102は、1つの入力画像(認識対象である帳票)についての候補抽出処理を終了する(リターン)。
また、候補抽出処理の後、帳票認識装置1では、帳票ID特定部103が、帳票ID毎に、対応線分ペアを表す情報と、詳細識別辞書の線分情報とを参照して、認識対象である帳票の帳票IDを特定する詳細認識処理を行う。本実施形態に係る詳細認識処理は、例えば、第1の実施形態で説明した詳細認識処理(図15A及び図15B参照)でよい。帳票ID特定部103は、詳細識別処理により特定した帳票IDを認識結果出力部104に出力する。認識結果出力部104は、入力画像、特定された帳票ID等を表示装置3に表示させる。
このように、本実施形態の候補抽出処理では、帳票IDの線分ペアと、入力画像の線分ペアとの対応付けを行う際に、各線分ペアの線分の長さ及び位置関係に加え、線分同士の角度差及び色差を用いて対応付けを行う。そのため、帳票IDの候補を抽出する段階における帳票IDの抽出精度が向上する。
なお、本実施形態に係る帳票認識処理は、図1に示した帳票認識装置1で行ってもよいしよいし、図21に示した帳票認識装置1が行ってもよい。更に、本実施形態に係る帳票認識処理は、図22に示した帳票認識システム6における帳票認識装置1が行ってもよい。
また、図24A及び図24Bのフローチャートは、本実施形態に係る大分類辞書の作成処理の一例に過ぎない。同様に、図25A〜図25Cのフローチャートは、本実施形態に係る候補抽出処理の一例に過ぎない。本実施形態に係る帳票認識処理において用いる大分類辞書(大分類辞書テーブル)は、例えば、帳票IDの配下に線分ペアの各線分の線分IDとともに、角度及び色のいずれか一方を登録したものでもよい。
また、本実施形態のように帳票に含まれる線分についての情報として、線分の角度や色の情報を抽出する場合、帳票ID特定部103が行う詳細識別処理において線分の角度や色の情報を利用してもよい。すなわち、対応線分ペアにおける認識対象の帳票の線分と帳票IDの線分との重なり度合いを算出する際に、線分の角度の差や色の差に応じて重なり度合いを加減してもよい。
[第3の実施形態]
図26は、第3の実施形態に係る帳票認識処理で用いる大分類辞書テーブルの登録情報の例を示す図である。
本実施形態の帳票認識処理では、図26に示すように、大分類辞書テーブル113のセルに帳票IDを登録する際に、第1の実施形態で説明したように、帳票IDの配下に線分ペア(帳票内線分ペア)の各線分の線分IDを登録する。また、本実施形態に係る大分類辞書テーブル113のセルに帳票IDを付与する際には、当該帳票IDが付与された帳票の線分数を対応付けて登録する。帳票IDとともにセルに登録する帳票の線分数は、帳票画像から抽出した線分の総数である。
図27Aは、第3の実施形態に係る大分類辞書の作成処理を説明するフローチャート(その1)である。図27Bは、第3の実施形態に係る大分類辞書の作成処理を説明するフローチャート(その2)である。なお、図27A及び図27Bにおいて、第1の実施形態に係る大分類辞書の作成処理(図8A及び図8B)における処理ステップと同じ処理ステップには、同じステップ番号(例えば、S10)を付している。
本実施形態に係る大分類辞書テーブル113は、例えば、帳票認識装置1とは別の情報処理装置5(図7参照)を用いて作成する。大分類辞書テーブル113を作成する処理を開始すると、情報処理装置5は、図27Aに示すように、まず、帳票画像及び付与する帳票IDとを取得する(ステップS1)。帳票画像は、イメージスキャナを用いて作成した帳票の画像データに限らず、情報処理装置5で動作するアプリケーション・ソフトウェアを用いて作成した原版の電子データ等でもよい。
次に、情報処理装置5は、帳票画像から罫線を表す線分を抽出し、抽出した線分の総数を算出する(ステップS30)。ステップS30において、情報処理装置5は、既知の罫線抽出方法のいずれかに従って、帳票画像に含まれる線分を抽出して位置及び長さを表す情報を算出する。抽出した線分には、線分毎に固有の線分IDを付与する。また、情報処理装置5は、線分を抽出した後、例えば、付与した線分IDの数を計数し、その数を帳票画像から抽出した線分の総数とする。
次に、情報処理装置5は、抽出した線分をy座標の値の小さい順にソートする(ステップS12)。ステップS12において、y座標の値が同じ線分が複数存在する場合、情報処理装置5は、それら線分を、例えば、線分IDが小さい順、或いはx座標が小さい順にソートする。
次に、情報処理装置5は、線分ペアにおける一方の線分のソート順位を表す変数iをi=1に設定する(ステップS13)。次に、情報処理装置5は、図27Bに示すように、線分ペアにおける他方の線分のソート順位を表す変数jをj=i+1に設定する(ステップS14)。
次に、情報処理装置5は、ソート順位がi番の線分とj番の線分との線分ペアに対する大分類辞書テーブルの座標を算出する(ステップS15)。ステップS15において、情報処理装置5は、例えば、式(1−1)及び式(1−2)等を用いて、i番の線分とj番の線分との関係(特徴量)を表す座標(u,v)を算出する。
次に、情報処理装置5は、大分類辞書テーブルにおける算出した座標のセルに、帳票ID及び線分数を登録するとともに、帳票IDの配下に線分ペアの各線分の線分IDを登録する(ステップS31)。なお、該当するセルに既に同じ帳票IDが登録されている場合、情報処理装置5は、ステップS31おいて、登録済みの帳票IDの配下に線分ペアの各線分の線分IDを追加登録する処理を行う。
次に、情報処理装置5は、入力画像の線分にソート順位がj+1番の線分があるか否かを判定する(ステップS17)。j+1番の線分がある場合(ステップS17;YES)、情報処理装置5は、変数jをj+1に更新し(ステップS18)、ステップS15以降の処理を繰り返す。
一方、j+1番の線分がない場合(ステップS17;NO)、情報処理装置5は、次に、入力画像の線分にソート順位がi+2番の線分があるか否かを判定する(ステップS19)。i+2番の線分がある場合(ステップS19;YES)、情報処理装置5は、変数iをi+1に更新し(ステップS20)、ステップS14以降の処理を繰り返す。i+2番の線分がない場合(ステップS19;NO)、情報処理装置5は、大分類辞書を作成する処理を終了する。
大分類辞書テーブル113に登録する帳票が複数種類ある場合、情報処理装置5のオペレータは、帳票種毎に、情報処理装置5に図27A及び図27Bに示した大分類辞書の作成処理を行わせる。
なお、図27A及び図27Bに示した大分類辞書の作成処理は、詳細識別辞書の作成処理とともに行われてもよい。すなわち、図27Aに示した大分類辞書の作成処理におけるステップS30の後、ステップS30で算出した線分の位置及び長さを表す情報を含むレイアウト情報を作成し、当該レイアウト情報を帳票IDと対応付けて詳細識別辞書に登録してもよい。
本実施形態に係る帳票認識装置の機能的構成は、図1に示した帳票認識装置1と同様の構成である。本実施形態の帳票認識装置は、帳票認識処理として、図9に示したステップS1〜S4の処理を行う。なお、本実施形態の帳票認識処理における候補抽出処理(ステップS2)では、第1の実施形態に係る候補抽出処理におけるステップS201〜S216と対応する処理(図10A〜図10C参照)として、図28A〜図28Cに示す処理を行う。
図28Aは、第3の実施形態に係る候補抽出処理の一部を説明するフローチャート(その1)である。図28Bは、第3の実施形態に係る候補抽出処理の一部を説明するフローチャート(その2)である。図28Cは、第3の実施形態に係る候補抽出処理の一部を説明するフローチャート(その3)である。なお、図28A〜図28Cにおいて、第1の実施形態に係る候補抽出処理(図10A〜図10C参照)における処理ステップと同じ処理ステップには、同じステップ番号(例えば、S201)を付している。
本実施形態の帳票認識処理における候補抽出処理は、帳票認識装置1の候補抽出部102が行う。候補抽出部102は、帳票画像受付部101から認識対象の帳票の画像(入力画像)を受け取ると、まず、図28Aに示したような処理を行う。
候補抽出部102は、まず、カウンタの値を初期化する(ステップS201)。ステップS201は、帳票ID抽出部102Aが行う。ステップS201において、帳票ID抽出部102Aは、例えば、下記のカウンタの値をそれぞれ0にする。
(1)大分類辞書に登録されている全帳票IDのそれぞれについての、帳票IDの線分と入力画像の線分との線分ペア(帳票間線分ペア)の対応付けの総数を計数するカウンタの値。
(2)帳票IDの配下に登録された線分ペア(帳票内線分ペア)における線分のそれぞれについての、入力画像の線分と対応付けられた回数を計数するカウンタの値。
次に、帳票ID抽出部102Aは、入力画像から線分を抽出し、抽出した線分の数を算出する(ステップS260)。ステップS260において、帳票ID抽出部102Aは、例えば、既知である罫線抽出処理のいずれかに従って入力画像から線分を抽出し、各線分に線分IDを付与する。線分IDには、例えば、1から始まる正の整数を用いる。また、帳票画像から線分を抽出した後、帳票ID抽出部102Aは、例えば、抽出した線分に付与した線分IDの数に基づいて、抽出した線分の総数を計数する。
次に、帳票ID抽出部102Aは、入力画像から抽出した線分をy座標の値が小さい順にソートする(ステップS203)。ステップS203の処理において、y座標の値が同じ線分が複数存在する場合、それらの線分の並び順は、所定の規則(例えば、x座標の値が小さい順にソートする等)に従って決定する。
次に、帳票ID抽出部102Aは、入力画像の線分ペアにおける一方の線分のソート順位を表す変数iをi=1に設定する(ステップS204)。次に、帳票ID抽出部102Aは、線分ペアにおける他方の線分のソート順位を表す変数jをj=i+1に設定する(ステップS205)。
次に、帳票ID抽出部102Aは、入力画像におけるソート順位がi番の線分とj番の線分との線分ペアに対する大分類辞書テーブルの座標を算出する(ステップS206)。ステップS206において、帳票ID抽出部102Aは、例えば、式(1−1)及び式(1−2)等を用いて線分ペアについての座標(u,v)を算出する。
次に、帳票ID抽出部102Aは、大分類辞書テーブルにおける算出した座標のセルを参照し、そのセルに帳票IDが登録されているか否かを確認する(ステップS207)。帳票IDが登録されていない場合(ステップS207;NO)、帳票ID抽出部102Aは、次に、図28Cに示すように、j+1番の線分があるか否かを判定する(ステップS213)。
一方、参照したセルに帳票IDが登録されている場合(ステップS207;YES)、帳票ID抽出部102Aは、次に、図28Bに示すように、登録されている帳票IDの1つを選択し、当該帳票IDと対応付けられた線分数を読み出す(ステップS261)。セルに登録されている帳票IDが1つである場合、帳票ID抽出部102Aは、その1つの帳票IDを選択する。また、セルに登録されている帳票IDが複数である場合、帳票ID抽出部102Aは、所定の選択規則に従って、ステップS262の処理を行っていない帳票IDの1つを選択する。
次に、帳票ID抽出部102Aは、入力画像の線分数と、選択した帳票IDと対応付けられた線分数の差分の絶対値が閾値TH3よりも小さいか否かを判定する(ステップS262)。線分数の差の絶対値が閾値TH3以上である場合(ステップS262;NO)、帳票ID抽出部102Aは、次に、ステップS211の判定を行う。
差分の絶対値が閾値TH3よりも小さい場合(ステップS262;YES)、帳票ID抽出部102Aは、次に、帳票IDの配下に登録された線分ペアの1つを選択し、選択した線分ペアの線分と入力画像の線分ペアの線分との対応付けを行う(ステップS209)。帳票IDの配下に登録された線分ペアが1つである場合、帳票ID抽出部102Aは、その1つの線分ペアを選択する。また、帳票IDの配下に登録された線分ペアが複数である場合、帳票ID抽出部102Aは、所定の選択規則に従って、ステップS209以降の処理を行っていない線分ペアの1つを選択する。
次に、帳票ID抽出部102Aは、帳票IDの配下の線分ペアにおける各線分に対応付けられたカウンタの値、及び帳票IDに対応付けられたカウンタの値に1を加算する(ステップS210)。帳票IDの配下の線分ペアにおける各線分に対応付けられたカウンタの値は、上記(2)のカウンタの値、すなわち帳票IDの配下に登録された線分ペアにおける線分のそれぞれについての、入力画像の線分と対応付けられた回数を計数するカウンタの値である。また、帳票IDに対応付けられたカウンタの値は、上記(1)のカウンタの値、すなわち帳票IDの線分と入力画像の線分との線分ペア(帳票間線分ペア)の対応付けの総数を計数するカウンタの値である。
次に、帳票ID抽出部102Aは、ステップS261で選択した帳票IDの配下に登録されている線分ペアのなかに、入力画像の変数i,jで表される線分ペアとの対応付けを行っていない線分ペアがあるか否かを判定する(ステップS211)。また、入力画像の線分数と帳票IDの線分数との差分の絶対値が閾値TH3よりも小さい場合(ステップS262;NO)、帳票ID抽出部102Aは、ステップS209〜S211の処理を省略してステップS211の判定を行う。
対応付けを行っていない線分ペアがある場合(ステップS211;YES)、帳票ID抽出部102Aは、ステップS209以降の処理を繰り返す。そして、全ての線分ペアで対応付けを行った場合(ステップS211;NO)、帳票ID抽出部102Aは、次に、図28Cに示すように、セル内にステップS261で参照(選択)していない帳票IDがあるか否かを判定する(ステップS212)。セル内に参照していない帳票IDがある場合(ステップS212;YES)、帳票ID抽出部102Aは、ステップS261以降の処理を繰り返す。
そして、セル内の全ての帳票IDを参照してステップS251以降の処理を行った場合(ステップS212;NO)、帳票ID抽出部102Aは、次に、入力画像から抽出した線分にj+1番の線分があるか否かを判定する(ステップS213)。また、大分類辞書テーブルにおけるステップS206で算出した座標のセルに帳票IDが登録されていない場合(ステップS207;NO)、帳票ID抽出部102Aは、ステップS261〜S211の処理を省略してステップS213の判定を行う。
j+1番の線分がある場合(ステップS213;YES)、帳票ID抽出部102Aは、変数jをj+1に更新し(ステップS214)、ステップS206以降の処理を繰り返す。一方、j+1番の線分がない場合(ステップS213;NO)、帳票ID抽出部102Aは、次に、入力画像から抽出した線分にi+2番の線分があるか否かを判定する(ステップS215)。i+2番の線分がある場合(ステップS215;YES)、帳票ID抽出部102Aは、変数iをi+1に更新し(ステップS216)、ステップS205以降の処理を繰り返す。
そして、i+2番の線分がない場合(ステップS215;NO)、帳票ID抽出部102Aを含む候補抽出部102は、続けて、図10D〜図10Fに示したステップS217〜S238の処理を行う。ステップS238の処理を終えると、候補抽出部102は、1つの入力画像(認識対象である帳票)についての候補抽出処理を終了する(リターン)。
また、候補抽出処理の後、帳票認識装置1では、帳票ID特定部103が、帳票ID毎に、対応線分ペアを表す情報と、詳細識別辞書の線分情報とを参照して、認識対象である帳票の帳票IDを特定する詳細認識処理を行う。本実施形態に係る詳細認識処理は、例えば、第1の実施形態で説明した詳細認識処理(図15A及び図15B参照)でよい。帳票ID特定部103は、詳細識別処理により特定した帳票IDを認識結果出力部104に出力する。認識結果出力部104は、入力画像、特定された帳票ID等を表示装置3に表示させる。
このように、本実施形態の候補抽出処理では、候補抽出処理において帳票IDの線分ペアと、入力画像の線分ペアとの対応付けを行う前に、帳票IDの線分数と、入力画像の線分数との差分の絶対値を算出する。認識対象である帳票が選択した帳票IDを付与した帳票である場合、両者の線分数は同じ値である。すなわち、線分数の差分の絶対値が閾値TH3よりも小さい場合には、認識対象である帳票が、選択した帳票IDを付与した帳票である可能性が高い。そのため、線分数の差分の絶対値が閾値TH3よりも小さい場合には、帳票IDの線分ペアと入力画像の線分ペアとの対応付けを行う。逆に、入力画像の線分数と選択した帳票IDの線分数との差が大きい場合、認識対象である帳票が、選択した帳票IDを付与した帳票である可能性は低い。そのため、線分数の差分の絶対値が閾値TH3以上である場合には、帳票IDの線分ペアと入力画像の線分ペアと対応付けを省略する。これにより、認識対象である帳票が、選択した帳票IDを付与した帳票である可能性が低い場合に、帳票間線分ペアに基づいて対応付けられた回数をカウントすることがない。よって、本実施形態によれば、例えば、正しくない対応付けにより対応付けられた回数の増加を防止し、より適切な帳票ID及び対応線分ペアを抽出することが可能となる。
更に、認識対象である帳票が、選択した帳票IDを付与した帳票である可能性は低い場合、ステップS209〜S211の処理を省略するので、候補抽出処理の処理負荷を軽減することが可能となる。
なお、本実施形態に係る帳票認識処理は、図1に示した帳票認識装置1が行ってもよいしよいし、図21に示した帳票認識装置1が行ってもよい。更に、本実施形態に係る帳票認識処理は、図22に示した帳票認識システム6における帳票認識装置1が行ってもよい。
また、図27A及び図27Bのフローチャートは、本実施形態に係る大分類辞書の作成処理の一例に過ぎない。同様に、図28A〜図28Cのフローチャートは、本実施形態に係る候補抽出処理の一例に過ぎない。本実施形態に係る帳票認識処理において用いる大分類辞書(大分類辞書テーブル)は、例えば、第2の実施形態で説明したように、帳票IDの配下に線分ペアの各線分の線分IDとともに角度及び色を登録したものでもよい。
また、上記の各実施形態に係る帳票認識装置1は、例えば、コンピュータと、当該コンピュータに実行させるプログラムとを用いて実現することが可能である。以下、コンピュータとプログラムとを用いて実現される帳票認識装置1について、図29を参照して説明する。
図29は、コンピュータのハードウェア構成を示す図である。
図29に示すように、コンピュータ15は、プロセッサ1501と、主記憶装置1502と、補助記憶装置1503と、入力装置1504と、出力装置1505と、媒体駆動装置1506と、通信制御装置1507と、を備える。コンピュータ15におけるこれらの要素1501〜1507は、バス1510により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
プロセッサ1501は、Central Processing Unit(CPU)やMicro Processing Unit(MPU)等である。プロセッサ1501は、オペレーティングシステムを含む各種のプログラムを実行することによりコンピュータ15の全体の動作を制御する。また、プロセッサ1501は、例えば、図9、図10A〜図10F、並びに図15A及び図15Bに示した帳票認識処理における演算処理を含む各種の演算処理を行う。
主記憶装置1502は、図示しないRead Only Memory(ROM)及びRandom Access Memory(RAM)を含む。主記憶装置1502のROMには、例えば、コンピュータ15の起動時にプロセッサ1501が読み出す所定の基本制御プログラム等が予め記録されている。また、主記憶装置1502のRAMは、プロセッサ1501が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。主記憶装置1502のRAMは、例えば、認識対象の帳票の画像(入力画像)、帳票IDの候補及び対応線分ペア、対応付けられた回数等の一時的な記憶に利用可能である。
補助記憶装置1503は、例えば、フラッシュメモリ等の不揮発性メモリ(Solid State Drive(SSD)を含む)やHard Disk Drive(HDD)である。補助記憶装置1503には、プロセッサ1501によって実行される各種のプログラムや各種のデータ等を記憶させることができる。補助記憶装置1503は、例えば、図9、図10A〜図10F、並びに図15A及び図15Bに示した処理等を含む帳票認識プログラム等の記憶に利用可能である。また、補助記憶装置1503は、例えば、入力画像、大分類辞書テーブル、詳細識別辞書、帳票IDの候補及び対応線分ペア等の記憶に利用可能である。
入力装置1504は、例えば、キーボード装置1504A、マウス装置1504B、及びイメージスキャナ2を含む。コンピュータ15のオペレータ(利用者)がキーボード装置1504Aやマウス装置1504Bに対し所定の操作を行うと、これらの装置1504A,1504Bは、その操作内容に対応付けられている入力情報をプロセッサ1501に送信する。また、イメージスキャナ2は、帳票画像の入力に利用可能である。
出力装置1505は、例えば、液晶表示装置等のディスプレイ装置やプリンタを含む。出力装置1505は、例えば、コンピュータ15の動作状態や、帳票認識処理の結果等の表示に利用可能である。
媒体駆動装置1506は、可搬型記憶媒体16に記録されているプログラムやデータの読み出し、補助記憶装置1503に記憶されたデータ等の可搬型記憶媒体16への書き込みを行う。コンピュータ15が媒体駆動装置1506として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体16として利用可能である。可搬型記録媒体16として利用可能な光ディスクには、例えば、Compact Disc(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等がある。また、可搬型記憶媒体16としては、例えば、Secure Digital(SD)規格のメモリカード(フラッシュメモリ)や、Universal Serial Bus(USB)規格のコネクタを備えたフラッシュメモリが利用可能である。可搬型記録媒体16は、上記の帳票認識プログラム、入力画像、大分類辞書、及び詳細識別辞書等の記憶に利用可能である。
通信制御装置1507は、コンピュータ15をネットワークに接続し、ネットワークを介したコンピュータ15と他の電子機器との各種通信を制御する装置である。通信制御装置1507は、例えば、図22に示した帳票認識システム6における大分類辞書及び詳細識別辞書の取得に利用可能である。
コンピュータ15は、オペレータが入力装置1504を用いて帳票認識処理を含むプログラムの開始命令を入力すると、プロセッサ1501が補助記憶装置1503等からプログラムを読み出して実行する。この際、プロセッサ1501は、帳票認識装置1の帳票画像受付部101、候補抽出部102、帳票ID特定部103、及び認識結果出力部104等として機能(動作)する。また、コンピュータ15が帳票認識処理を含むプログラムを実行した際には、主記憶装置1502のRAM、補助記憶装置1503、及び可搬型記憶媒体16等が、大分類辞書記憶部110、及び詳細識別辞書記憶部120として機能する。
なお、帳票認識装置1として動作させるコンピュータ15は、図15に示した全ての要素1501〜1507を含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ15は、媒体駆動装置1506や通信制御装置1507が省略されたものであってもよい。
以上記載した各実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータが、
認識対象の帳票の画像に含まれる複数の線分から選択した線分の組み合わせで構成される複数の第1の線分ペアを抽出し、
抽出した前記複数の第1の線分ペアのそれぞれを構成する線分同士の関係を表す第1の特徴量を算出し、
算出した前記第1の線分ペアの前記第1の特徴量と、予め登録された帳票識別子と対応付けられた複数の第2の線分ペアを構成する線分同士の第2の特徴量とに基づいて、前記認識対象の帳票の帳票識別子の候補を抽出し、
前記第1の線分ペアにおける各線分と、前記帳票識別子の候補と対応付けられた前記第2の線分ペアにおける各線分との対応関係に基づいて、前記帳票識別子の候補と対応付けられた線分と、前記認識対象の帳票の線分との対応線分ペアを抽出し、
前記対応線分ペアにおける前記認識対象の帳票から抽出した線分と、前記帳票識別子の候補と対応付けられた線分との重なり度合に基づいて、前記認識対象の帳票の帳票識別子を特定する、
処理を実行することを特徴とする帳票認識方法。
(付記2)
前記対応線分ペアを抽出する処理において、前記コンピュータは、前記帳票識別子の候補と対応付けられた線分の数よりも少ない数の前記対応線分ペアを抽出する、
ことを特徴とする付記1に記載の帳票認識方法。
(付記3)
前記第1の特徴量を算出する処理において、前記コンピュータは、前記線分ペアにおける各線分の長さと、前記線分同士の位置関係とに基づいて表される値を前記第1の特徴量として算出する、
ことを特徴とする付記1に記載の帳票認識方法。
(付記4)
前記帳票識別子には、前記第2の線分ペアにおける各線分の角度又は色の情報が対応付けられており、
認識対象の帳票の画像から前記複数の第1の線分ペアを抽出する処理において、前記コンピュータは、抽出した前記線分の角度及び色を算出し、
前記帳票識別子の候補を抽出する処理において、前記コンピュータは、前記第1の特徴量に基づいて抽出される前記帳票識別子の候補のうち、前記第1の線分ペアにおける線分と前記第2の線分ペアにおける線分との角度の差又は色の差が所定の閾値範囲内となる前記帳票識別子の候補のみを抽出する、
ことを特徴とする付記1に記載の帳票認識方法。
(付記5)
前記帳票識別子には、前記第2の線分ペアにおける各線分の角度及び色のいずれかの情報が対応付けられており、
認識対象の帳票の画像から前記複数の第1の線分ペアを抽出する処理において、前記コンピュータは、抽出した前記線分の角度及び色を算出し、
前記帳票識別子の候補を抽出する処理において、前記コンピュータは、前記第1の特徴量と前記第2の特徴量とに基づいて抽出される前記帳票識別子の候補のうち、前記第1の線分ペアにおける線分と前記第2の線分ペアにおける線分との角度の差及び色の差が所定の閾値範囲内となる前記帳票識別子の候補のみを抽出する、
ことを特徴とする付記1に記載の帳票認識方法。
(付記6)
前記帳票識別子には、当該帳票識別子が付与された帳票における線分の数が対応付けられており、
前記認識対象の帳票の画像から前記複数の第1の線分ペアを抽出する処理において、前記コンピュータは、前記認識対象の帳票の画像に含まれる前記線分の数を算出し、
前記帳票識別子の候補を抽出する処理において、前記コンピュータは、前記第1の特徴量と前記第2の特徴量とに基づいて抽出される前記帳票識別子の候補のうち、前記認識対象の帳票の画像に含まれる前記線分の数と前記帳票識別子に対応付けられた前記線分の数との差が所定の閾値範囲内となる前記帳票識別子の候補のみを抽出する、
ことを特徴とする付記1に記載の帳票認識方法。
(付記7)
前記対応線分ペアを抽出する処理において、前記コンピュータは、
前記帳票識別子の候補と対応付けられた前記第2の線分ペアの線分毎に、前記第1の線分ペアの線分のうち、前記第2の線分ペアの線分と線分ペアとして対応付けられた線分及び対応付けられた回数を算出し、
前記第2の線分の線分ペアと前記第1の線分ペアの線分との線分ペアのうち、前記対応付けられた回数が多い線分同士の線分ペアから順に所定数の線分ペアを前記対応線分ペアとして抽出する、
ことを特徴とする付記1に記載の帳票認識方法。
(付記8)
前記対応線分ペアを抽出する処理において、前記コンピュータは、
前記帳票識別子の候補と対応付けられた前記第2の線分ペアの線分毎に、前記第1の線分ペアの線分のうち、前記第2の線分ペアの線分と線分ペアとして対応付けられた線分及び対応付けられた回数を算出し、
前記第2の線分の線分ペアと前記第1の線分ペアの線分との線分ペアのうち、前記対応付けられた回数が所定の回数よりも多い線分同士の線分ペアを前記対応線分ペアとして抽出する、
ことを特徴とする付記1に記載の帳票認識方法。
(付記9)
認識対象の帳票の画像に含まれる複数の線分から抽出した複数の第1の線分ペアのそれぞれを構成する線分同士の関係を表す第1の特徴量を算出し、前記第1の線分ペアの前記第1の特徴量と、予め登録された帳票識別子と対応付けられた複数の第2の線分ペアを構成する線分同士の第2の特徴量とに基づいて、前記認識対象の帳票の帳票識別子の候補を抽出する帳票識別子抽出部と、
前記第1の線分ペアにおける各線分と、前記帳票識別子の候補と対応付けられた前記第2の線分ペアにおける各線分との対応関係に基づいて、前記帳票識別子の候補と対応付けられた線分と、前記認識対象の帳票の線分との対応線分ペアを抽出する対応線分ペア抽出部と、
前記対応線分ペアにおける前記認識対象の帳票から抽出した線分と、前記帳票識別子の候補と対応付けられた線分との重なり度合いに基づいて、前記認識対象の帳票の帳票識別子を特定する特定部と、
を備えることを特徴とする帳票認識装置。
(付記10)
認識対象の帳票の画像に含まれる複数の線分から選択した線分の組み合わせで構成される複数の第1の線分ペアを抽出し、
抽出した前記複数の第1の線分ペアのそれぞれを構成する線分同士の関係を表す第1の特徴量を算出し、
前記第1の線分ペアの前記第1の特徴量と、予め登録された帳票識別子と対応付けられた複数の第2の線分ペアを構成する線分同士の第2の特徴量とに基づいて、前記認識対象の帳票の帳票識別子の候補を抽出し、
前記第1の線分ペアにおける各線分と、前記帳票識別子の候補と対応付けられた前記第2の線分ペアにおける各線分との対応関係に基づいて、前記帳票識別子の候補と対応付けられた線分と、前記認識対象の帳票の線分との対応線分ペアを抽出し、
前記対応線分ペアにおける前記認識対象の帳票から抽出した線分と、前記帳票識別子の候補と対応付けられた線分との重なり度合いに基づいて、前記認識対象の帳票の帳票識別子を特定する、
処理をコンピュータに実行させる帳票認識プログラム。
(付記11)
帳票の画像に含まれる複数の線分から選択した線分の組み合わせで構成される複数の線分ペアのそれぞれにおける線分同士の関係を表す特徴量と対応付けられたセルに、前記帳票に付与した帳票識別子が登録されるとともに、当該帳票識別子の配下に前記線分ペアの各線分の線分識別子が登録されている、
ことを特徴とする帳票認識用辞書データ。
(付記12)
前記線分識別子に、当該線分識別子が付与された線分の角度及び色のいずれかの情報が対応付けられている、
ことを特徴とする付記11に記載の帳票認識用辞書データ。
(付記13)
前記帳票識別子に、当該帳票識別子が付与された帳票における線分の数が対応付けられている、
ことを特徴とする付記11に記載の帳票認識用辞書データ。