以下に、添付図面を参照して、本発明に係る帳票項目認識方法、帳票項目認識装置及び帳票項目認識プログラムの好適な実施形態を詳細に説明する。まず、図1を参照しながら、本発明に係る帳票項目認識方法の概要を説明する。
図1は、帳票項目認識方法の概要を説明する図である。図1(A)は、帳票の例を示している。この例では、帳票に「項目A」〜「項目E」の項目名を有する5つの項目が含まれている。各項目は、予め帳票に印刷された項目名を含む枠と、各項目名に対応する情報を記入するための記入枠とによって形成されている。この帳票で、同じ列にある項目A、項目B及び項目Cと、同じ行にある項目D及び項目Eとを、それぞれ同じグループとして事前に定義しておく。帳票上で同じ列にある項目名及び/又は同じ行にある項目名、すなわち帳票上で垂直方向に並ぶ項目名及び/又は水平方向に並ぶ項目名を、それぞれ同じグループとして事前に定義することができる。
図1(B)は、項目A、項目B及び項目Cを同じグループ「1」に定義し、項目D及び項目Eを同じグループ「2」に定義した項目定義情報を示す図である。項目定義情報には、グループ番号、項目名及び出現回数が含まれる。グループ番号は同じグループに属する項目名を示すための情報で、複数のグループを定義する場合には、異なるグループには異なるグループ番号が付される。出現回数は、グループ内で同じ項目名が出現する回数を示す情報で、例えば、同じグループ内に同じ項目名が2つ含まれる場合には、この項目名の出現回数を「2」とする。図1(A)の例では、全項目の項目名が異なるので、同図(B)では全ての項目名の出現回数が「1」となっている。
まず、図1(A)に示す帳票を撮像した帳票画像上で各枠が認識される。具体的には、帳票画像上で罫線を検出した後、周囲を罫線で囲まれた領域を枠として認識し、各枠に、各枠を識別するための枠番号が付される。図1(C)は帳票画像上で認識された10個の枠を示す図である。なお、枠の認識結果には枠線のみが含まれるが、図1(C)では、各枠を示すため、各枠を識別する枠番号を括弧で示している。図1(C)では、枠001〜枠010の10個の枠が認識されている。
こうして、枠001〜枠010の枠が認識されると、次に、各枠内で文字認識処理が行われる。文字認識処理時には、文字認識結果の確からしさを示す信頼度の算出も行われる。図1(D)は各枠内での文字認識結果を示す図である。文字認識の結果、枠001、枠005及び枠007の各枠内で、項目名が「項目A」、「項目C」及び「項目D」と正しく文字認識されている。一方、枠003の項目名は、実際には「項目B」であるが、文字認識結果を特定することができず、信頼度の高い順に「項目E」又は「項目B」とする2つの文字認識結果が得られていることを示している。同様に、枠008では、実際の項目名は「項目E」であるが、信頼度の高い順に「項目E」又は「項目B」とする2つの文字認識結果が得られている。なお、各枠内の項目名を決定する際には、文字認識処理と合わせて項目名認識処理を行って、帳票に含まれる項目名以外の文字認識結果が得られないようになっているが、この処理についての詳細は後述する。
文字認識結果が得られると、所定条件を満たす項目名の枠を候補枠として抽出し、抽出した候補枠のみを利用して以降の処理を続けることができる。具体的には、例えば、文字認識結果の信頼度の数値に基づいて、予め設定された所定のしきい値よりも高い信頼度を示す文字認識結果を得た枠のみを候補枠として抽出する。ただし、候補枠の抽出処理は、項目の数が多い場合や1つの項目に多数の項目名の文字認識結果を得た場合に、処理対象とするデータ量を減らして処理効率を上げることを目的とするもので、この処理を省略することも可能である。このため、図1の例では、候補枠の抽出処理を省略している。
次に、項目名の文字認識結果が得られた枠の1つが着目枠として選択される。具体的には、文字認識結果の信頼度が最も高い枠を着目枠とする。着目枠を選択する条件は変更可能となっており、信頼度に基づいて選択する他、例えば、文字認識結果として所定の項目名が得られた枠を着目枠とすることもできる。図1の例では、同図(D)に示す枠のうち「項目A」との文字認識結果が得られた枠001が着目枠として選択されたものとする。
着目枠が選択されると、次に、帳票画像上で着目枠を基準に所定方向に並ぶ枠を抽出してグルーピングする。例えば、着目枠を形成する枠線を延長して、延長した枠線に、枠線の一部が含まれることになった枠を、着目枠と同じグループとする。すなわち、延長した枠線と周囲を囲う枠線の一部を共有する枠が着目枠と同じグループに分類される。
具体的には、図1(E)に破線で示したように、項目名が「項目A」の着目枠001を形成する左右の枠線を上下方向に延長して、項目名の文字認識結果が得られた枠の中で、延長した枠線と、左右の枠線を共有することになった枠003及び枠005が、着目枠001と同じグループとされる。同様に、着目枠001を形成する上下の枠線を左右方向に延長して、項目名の文字認識結果が得られた枠の中に、延長した枠線と、上下の枠線を共有する枠があれば、この枠も着目枠001と同じグループとされるが、図1(E)の例では、着目枠001の左右方向に、項目名の文字認識結果が得られた枠は存在しない。この結果、「項目A」の枠001、「項目E」又は「項目B」の枠003、「項目C」の枠005の3つの枠が同じグループにグルーピングされる。
グルーピングの処理は、項目名の文字認識結果が得られた枠の全てが、いずれかのグループにグルーピングされるまで繰り返される。このため、枠001を着目枠としたグルーピング処理を行った後、グルーピングされずに残った枠007及び枠008のうち、文字認識結果の信頼度が高い項目名「項目D」が得られた枠007を着目枠として、同様に、グルーピング処理が行われる。この結果、「項目D」の枠007と、「項目E」又は「項目B」の枠008とが同じグループにグルーピングされる。
グルーピング結果が得られると、次に、項目定義情報に基づく判定処理が行われる。まず、同じグループにグルーピングされた枠001の「項目A」、枠003の「項目E」又は「項目B」、枠005の「項目C」の各項目名を、同図(B)に示す項目定義情報に含まれる項目名と照合して判定する処理が行われる。
枠003の項目名は「項目E」又は「項目B」と文字認識されているが、これを「項目E」であるとすると、グルーピング結果は「項目A」、「項目E」及び「項目C」を同じグループとしたことになり、図1(B)に示す項目定義情報と矛盾する結果となる。このため、枠003の項目名は「項目E」ではないと判定される。そして、枠003の項目名を「項目B」とすると、グルーピング結果は「項目A」、「項目B」及び「項目C」を同じグループとしたことになり、項目定義情報を満たす結果となる。よって、枠003の項目名は「項目B」であると判定される。すなわち、枠001の項目名が「項目A」、枠003の項目名が「項目B」、枠005の項目名が「項目C」であるとの判定結果が得られる。
次に、同じグループにグルーピングされた枠007の「項目D」、枠008の「項目E」又は「項目B」の各項目名を、同図(B)に示す項目定義情報に含まれる項目名と照合して判定する処理が行われる。枠008の項目名については、これを、信頼度が高い「項目E」であるとすると、グルーピング結果は「項目D」及び「項目E」を同じグループとしたことになり、項目定義情報を満たす結果となる。また、既に枠003の項目名を「項目B」とする判定結果が得られている所、枠008の項目名をグループ1の「項目B」であるとすると、項目定義情報で出現回数が1回と定義された「項目B」の定義情報と矛盾する結果となる。よって、枠008の項目名を「項目B」とした文字認識結果は採用されず、枠008の項目名は「項目E」であると判定される。すなわち、枠007の項目名が「項目D」、枠008の項目名が「項目E」であるとの判定結果が得られる。
図1(F)は、項目定義情報に基づく判定を行って得られた最終結果を示す図である。項目定義情報に基づく判定を行うことにより、帳票画像から「項目A」〜「項目E」の全ての項目名を得ることができる。そして、「項目A」は枠001、「項目B」は枠003、「項目C」は枠005、「項目D」は枠007、「項目E」は枠008の位置にあることを特定することができる。
このように、本発明に係る帳票項目認識方法によれば、罫線検出による各枠の検出、各枠内の項目名の認識、着目枠による候補枠のグルーピング、項目定義情報に基づくグルーピング結果の判定を行うことにより、項目定義情報に定義された項目名が含まれる枠の位置を特定することができる。この結果、項目名に対応する記入枠の位置を特定して、各項目について記入された文字を文字認識することも可能となる。
また、項目定義情報では、帳票上で同じ列にある複数の項目名及び/又は同じ行にある複数の項目名をそれぞれ同じグループとして定義するが、グループとして定義するのみで、各項目名の座標や各項目の並び順等の位置関係を特定しない。このため、帳票の種類によって各項目名の位置等が異なる非定型の帳票を処理対象とする場合でも、グループとして定義した各項目名の位置を特定することができる。具体的には、図1(A)に示すように同じ列内で上から順に項目A、項目B、項目Cと並ぶ帳票の他、例えば、項目A、項目C、項目Bというように同じ列内で項目の順序が変更された帳票、これらの項目の間に検出対象としない余計な項目が含まれている帳票でも、図1に示す方法により、各項目名の位置を特定することができる。また、これらの項目A、項目B及び項目Cが、列内(縦方向)ではなく同じ行内(横方向)に並んだ帳票でも、グループとして定義した各項目名の位置を特定することができる。
次に、帳票項目認識装置の構成例を説明した後、具体的な帳票を例に帳票項目認識方法を説明する。図2は、帳票項目認識装置の構成例を示すブロック図である。帳票項目認識装置は、画像取得部10、記憶部20、処理結果出力部30及び制御部40から構成される。
画像取得部10は、処理対象となる帳票を撮像した帳票画像を取得する機能を有する。例えば、画像取得部10がスキャナによって構成され、帳票をスキャンして帳票画像を取得する。ただし、帳票画像を取得できればその方法は特に限定されず、例えば、外部装置で生成された帳票画像のデータを通信機能により取得してもよいし、USBメモリやメモリカード等の記憶媒体を介して帳票画像を取得してもよい。
記憶部20は、半導体メモリやハードディスクドライブ等の記憶装置で、画像取得部10によって取得された帳票画像21、位置検出の対象となる複数項目をグループとして定義した項目定義情報22、帳票画像21の枠内の各文字を文字認識するために利用する文字認識用テンプレート23を保存するために利用される。この他、記憶部20は、制御部40による制御を実現するためのソフトウェアプログラムの保存や、制御部40による処理途中のデータや処理結果のデータを保存するためにも利用される。
処理結果出力部30は、制御部40の機能により帳票画像上で各項目名の位置が認識されると、この認識結果に関する情報を出力する機能を有する。また、処理結果出力部30は、項目名の位置の認識結果に代えて又は加えて、各項目に対応して記入された文字を文字認識した処理結果を出力する機能も有している。処理結果出力部30は、例えば、ディスプレイ等の表示装置によって構成され、帳票画像上での各項目名の位置に関する情報や各項目に対応して記入された内容の文字認識結果等をディスプレイ上に表示して出力する。ただし、処理結果の出力方法は特に限定されず、例えば、処理結果をプリンターによって印刷して出力してもよいし、処理結果のデータを着脱可能な記憶媒体へ記録したり通信機能により外部装置に向けて送信したりする出力態様であっても構わない。
制御部40は、予め記憶部20に保存されている項目定義情報22に基づいて、画像取得部10によって取得された帳票画像上で各項目名の位置を特定する機能を有している。また、制御部40は、位置を特定した各項目に対応する記入内容を文字認識する機能を有している。なお、制御部40は、例えば、各種の処理を実現するためのソフトウェアプログラムと、当該ソフトウェアプログラムを実行するCPUと、当該CPUによって制御される各種ハードウェア等によって構成されている。制御部40の動作に必要なソフトウェアプログラムやデータは記憶部20に保存されるが、保存先は特に限定されず、別途専用に設けられたRAMやROM等の記憶装置に保存される態様であってもよいし、通信可能に接続されたサーバや記憶装置等に保存される態様であっても構わない。
制御部40は、罫線検出部41、枠検出部42、文字認識部43、項目名認識部44、グループ判定部45及び項目位置決定部46を有する。罫線検出部41は、帳票画像21から各項目を形成する罫線を検出する機能を有する。罫線を検出する方法については、画像上で連続する画素を検出する従来技術を利用することができるので詳細な説明は省略する。枠検出部42は、罫線検出部41によって罫線が検出された後、周囲を罫線で囲まれた領域を枠として検出すると共に、各枠に、各枠を識別するための枠番号を付す機能を有する。
文字認識部43は、枠検出部42によって枠番号が付された各枠内の文字を文字認識する機能を有する。文字認識は、記憶部20に保存されている文字認識用テンプレート23を利用したOCR(Optical Character Recognition)処理によって行われる。
図3は、文字認識処理時に、1文字とする領域を決定する方法を説明する図である。周囲を罫線で囲まれた枠内で、背景を形成する画素が、文字の並びと垂直な方向につながった領域を検出して、この検出位置で枠内の画像をセグメントに分割する。枠内の文字が横方向に並ぶ図3(A)の例では、背景を形成する白画素が縦方向につながっている領域によって、4つのセグメント51〜54に分割される。4つのセグメント51〜54に分割された後、画像上で文字を形成する黒画素の分布領域から1文字の高さを算出すると共に、算出した高さに基づいて、1文字の幅として取り得る最大幅を決定する。例えば、文字の高さの1.5倍を1文字の最大幅とする。こうして1文字の最大幅を決定した後、1文字である可能性があるセグメントの組合せを決定する。
図3(A)の例では、同図(B)〜(D)に示すように、3つの組合せとなる。図3(B)は、セグメント51を1文字、セグメント52を1文字、セグメント53及びセグメント54を合わせて1文字とする組合せである。図3(C)は、セグメント51を1文字、セグメント52及びセグメント53を合わせて1文字、セグメント54を1文字とする組合せである。図3(D)は、セグメント51を1文字、セグメント52を1文字、セグメント53を1文字、セグメント54を1文字とする組合せである。
こうして1文字とするセグメント51〜54の組合せが決定すると、枠内から1文字として切り出した領域の画像を用いて、文字認識用テンプレート23を利用したOCR処理が行われる。このとき、各文字の文字認識結果として得られる候補文字について、文字認識処理の対象画像が文字認識された文字である可能性、すなわち文字認識結果の確からしさを示す信頼度が算出される。
文字認識用テンプレート23は、例えば、漢字、平仮名、カタカナ、数字、英字等の文字データから成っている。これらの文字データの中から、セグメント51〜54の組合せに基づいて切り出した画像と一致する可能性がある候補文字が、信頼度が高い順に1〜100位まで抽出される。例えば、図3(B)では、セグメント51に含まれる文字として100位までの候補文字が得られ、セグメント52に含まれる文字として100位までの候補文字が得られ、セグメント53及びセグメント54を合わせた文字を1文字として100位までの候補文字が得られる。同様に、セグメント51〜54を図3(C)に示すように組み合わせた3文字のそれぞれについて100位までの候補文字が得られ、セグメント51〜54を同図(D)に示すように組み合わせた4文字のそれぞれについて100位までの候補文字が得られる。
図2に示す項目名認識部44は、文字認識部43によって得られた各文字と、予め項目名が登録された項目定義情報22とに基づいて、項目名を認識する機能を有する。具体的には、各文字について100位までの候補文字が得られると、候補文字を組み合わせて文字列を生成し、項目定義情報22に登録された項目名の中に、生成した文字列と一致する項目名があるか否かを判定する。そして、一致する項目名があった場合には、文字認識した枠内の文字を、一致した項目名であると認識する。このとき、項目名を形成した各候補文字の信頼度に基づいて、項目名の信頼度が算出される。例えば、項目名を形成する全ての候補文字の信頼度から平均値を算出して、これを項目名の信頼度とする。
例えば、図3(A)に示す画像について、同図(B)に示すように3文字から成るとして文字認識が行われ、各文字について100位までの候補文字が得られると、各文字の候補文字を組み合わせて得られる文字列が、項目定義情報22に登録されているか否かが確認される。そして、信頼度の値が101の1文字目の候補文字「表」、信頼度の値が113の2文字目の候補文字「題」、信頼度の値が101の3文字目の候補文字「部」を組み合わせた「表題部」という文字列が、項目定義情報22に項目名として登録されていることが確認されると、この枠内の文字は「表題部」という項目名であると認識される。そして、この項目名「表題部」の信頼度は、3つの候補文字の信頼度の平均値105(=(101+113+101)/3)として算出される。
なお、100位までの候補文字を組み合わせて項目名とするため、1つの文字列の認識結果として、複数の項目名が得られる場合があるが、この場合は、複数の項目名を信頼度と共に記憶部20に保存して以降の処理を行う。
帳票項目認識装置では、100位までの候補文字を組み合わせて項目定義情報22内で一致する項目名を検索する際に、複数文字から成る項目名のうち一部の文字が100位までの候補文字に含まれていない場合でも、この項目名を採用して以降の処理を行うことができる。
具体的には、例えば、枠内にある4文字のそれぞれについて得られた100位までの候補文字を組み合わせながら項目定義情報22を検索した際に、項目定義情報22に登録された「支払金額」という項目名と一致する候補文字の組合せが得られた場合は、図4(A)に示すように、枠内の項目名は「支払金額」であると認識される。これに対して、4文字のうち、2文字目から4文字目までの候補文字から「払金額」との文字列が得られたが、1文字目の候補文字の中に「支」という文字が得られていない場合でも、該当する項目名無しとするのではなく、図4(B)に示すように、該当する文字が得られなかった1文字目を「?」という所定文字として、項目名「支払金額」に対応する「?払金額」との項目名が得られたものと認識して処理を続ける。
また、2文字以上の文字で、候補文字の中に項目名と一致する文字が得られなかった場合でも、一致する文字が得られない2文字が連続して存在しなければ、該当する文字が得られなかった文字を「?」という所定文字として、項目名が得られたものと認識して処理を続ける。具体的には、例えば、2文字目が「払」、4文字目が「額」との文字が得られたが、1文字目及び3文字目の文字で該当する文字が得られなかった場合でも、該当する項目名が無いとするのではなく、図4(C)に示すように、該当する文字が得られなかった文字を「?」という所定文字として、項目名「支払金額」に対応する「?払?額」との項目名が得られたものと認識して処理を続ける。ただし、例えば1文字目と2文字目等、連続する2文字で連続して該当する文字が得られなかった場合には、項目定義情報22の中に該当する項目名が登録されていないものとして処理を続ける。
なお、項目名を形成する文字と一致する候補文字が得られなかった場合に、この文字に割り当てる所定文字を「?」としたが、割り当てる文字は特に限定されない。また、以降の処理では、一部の文字が得られなかった図4(B)及び(C)に示す項目名は、同図(A)と同様に、項目名「支払金額」であるものとして処理される。
項目名の信頼度は、項目名を形成する各候補文字の信頼度から平均値として算出するが、図4(B)及び(C)に示すように、候補文字が得られなかった場合には、この文字の信頼度を予め定めた所定値として平均値を算出する。ただし、信頼度の算出方法がこれに限定されるものではなく、例えば、候補文字が項目名を形成する文字であるとした場合の信頼度を算出して、この算出値を用いて、項目名を形成する各候補文字の信頼度から平均値を算出してもよい。具体的には、図4(B)に示すように、項目名が「支払金額」に対応する「?払金額」であると認識された後、1文字目の文字認識処理の処理対象画像が文字認識用テンプレート23に含まれる「支」の文字であるとしてマッチング処理を行って両者の一致度を示す信頼度を算出する。そして、算出した信頼度と2〜4文字目の文字とされた各候補文字の信頼度とによって平均値を算出し、これを項目名の信頼度とする。
図2に示すグループ判定部45は、項目名認識部44によって認識された各枠の項目名の信頼度に基づいて、所定条件を満たす候補枠を抽出して、候補枠の中から選択した着目枠によって候補枠をグルーピングすると共に、項目定義情報22に基づいてグルーピング結果として得られたグループを判定する機能を有する。
項目位置決定部46は、グループ判定部45による判定結果に基づいて、位置検出の対象とする項目名の位置を決定する機能を有する。ここで決定された項目名の位置に関する情報等が、処理結果出力部30によって出力される。グループ判定部45及び項目位置決定部46の機能についての詳細は後述する。
図5は、帳票項目認識装置によって行う帳票項目認識方法の手順を説明するフローチャートである。以下では具体的な帳票を例に帳票項目認識方法について説明する。
図6は帳票の例を示す図である。また、図7は、図6の帳票で位置検出の対象とする項目をグループ別に定義した項目定義情報22を示す図である。図6に示す帳票で縦方向(上下方向)に並んでいる「受給者番号」、「フリガナ」及び「役職名」の項目名を同じグループとして、図7に示すようにグループ番号を「1」とする。また、図6で横方向(左右方向)に並んでいる「種別」、「支払金額」、「給与所得控除後の金額」、「所得控除の額の合計額」及び「源泉徴収税額」の項目名を同じグループとしてグループ番号を「2」とする。
項目定義情報22は、同じ列に並ぶ複数の項目名及び/又は同じ行に並ぶ複数の項目名をそれぞれ同じグループとして定義する情報であるため、帳票の種類によって、項目が並ぶ順序や方向が異なる場合や、位置検出の対象となる項目の間に検出対象外の項目が含まれるような場合でも、検出対象とする各項目の項目名の位置を特定することができる。また、帳票上で各項目名の位置や複数の項目名の位置関係を座標等で定義する必要がないので、項目定義情報22を容易に作成することができる。帳票を撮像した帳票画像21と項目定義情報22とを記憶部20に保存した状態で項目の検出処理を開始する。
まず、罫線検出部41が帳票画像21上で罫線を検出して、枠検出部42が周囲を罫線で囲まれた領域を枠として検出する(図5ステップS11)。枠には、各枠を識別するための枠番号が付される。図8は、図6に示す帳票の画像から検出した枠を示す図である。なお、枠の認識結果には枠線のみが含まれるが、図8では、以下の説明を簡単にするため、各枠内に各枠を識別する枠番号を示している。図8では、図6に示す帳票から枠1〜枠27が検出される。
枠を検出すると、文字認識部43が各枠内の文字の文字認識処理を行って、項目名認識部44が枠内の項目名を認識する(図5ステップS12)。図3及び図4を参照しながら説明したように、文字認識部43は、検出された各枠について、帳票画像21から枠内の画像を切り出して、切り出した画像と、予め記憶部20に保存されている文字認識用テンプレート23とを利用して、文字認識処理を行う。文字認識処理により各文字について100位までの候補文字と各候補文字の信頼度とが得られると、項目名認識部44が、候補文字及び信頼度と、記憶部20に保存されている項目定義情報22とを利用して項目名を認識する。この結果、各枠内で、項目名の候補となる一又は複数の項目名が認識され、各項目名の信頼度が算出される。
図9は、図6に示す帳票の画像で認識された項目名の認識結果の例を示したものである。項目名の認識結果は、項目名の信頼度と、項目名が得られた枠番号と共に管理される。例えば、No.1とNo.3等にあるように、同じ枠の項目名候補として、異なる項目名が得られる場合もある。なお、図9に示す信頼度は数値が小さいほど信頼度が高いことを示している。
次に、グループ判定部45が、得られた各枠の項目名及び信頼度と、記憶部20に保存されている項目定義情報22とを利用して、候補枠を抽出して、候補枠の中から選択した着目枠によって候補枠をグルーピングすると共に、グルーピング結果を判定する処理を行う(図5ステップS13〜S16)。
まず、グループ判定部45は、しきい値を基準に、項目名の信頼度が高い枠を候補枠として抽出する(ステップS13)。候補枠の抽出は、項目定義情報22に基づいて行われる。図10は、こうして抽出された候補枠を示す図である。
具体的には、第1しきい値を100として、図9に示す項目名の中から、信頼度の値が第1しきい値以下のもの、すなわち第1しきい値より信頼度が高いものを候補枠として抽出すると、No.1〜7の項目名が抽出される。ここで、No.3の項目名「種別」の枠番号は、No.3よりも信頼度が高いNo.1の項目名「役職名」と同じ枠番号9であるため、信頼度の高いNo.1のみが候補枠として抽出される。また、No.5とNo.7は項目名が同じ「支払金額」であるが、この項目名は項目定義情報22で出現回数が1回と定義されているため、信頼度の高いNo.5のみが候補枠として抽出される。この結果、図10に示すように、第1しきい値よりも信頼度が高いNo.1〜7の中からNo.3及びNo.7を除いて、No.1、No.2、No.4〜6が候補枠として抽出される。
候補枠が抽出されると、グループ判定部45は、信頼度が最も高い候補枠を着目枠として選択する(図5ステップS14)。図10では、信頼度が最も高い、すなわち信頼度の数値が最も小さいNo.1の枠番号9の候補枠が着目枠として選択される。
着目枠が選択されると、グループ判定部45は、枠検出部42によって検出された着目枠の枠線を延長して、候補枠をグルーピングする(図5ステップS15)。グルーピング処理では、着目枠の枠線を延長した各方向で、周囲を囲う枠線の一部を、延長した枠線と共有する候補枠が同じグループに分類される。
具体的には、図8に示す枠9が着目枠として選択されると、枠9の左右の枠線を上下方向に延長して、延長した枠線と、左右の枠線を共有する枠7及び枠8が、枠9と同じグループに分類される。同様に、枠9の上下の枠線を左右方向に延長して、延長した枠線と、上下の枠線を共有する枠も枠9と同じグループに分類されるが、図8の例では、左右方向で同じグループに分類される枠は存在しない。こうしてグルーピング処理を行った結果、図10に「グルーピング結果」として示したように、No.1、No.5及びNo.6の枠番号7〜9の候補枠が、同じグループ「A」に分類される。
グループに分類されずに残った候補枠がある場合は、グループ判定部45は、残った候補枠の中で信頼度が最も高い候補枠を着目枠として、この着目枠の枠線を上下方向及び左右方向へ延長して、延長した枠線を共有する候補枠を別のグループに分類する。全ての候補枠が、いずれかのグループに分類されるまで、グルーピング処理が繰り返される。図10の例では、グループAが得られた後、No.2及びNo.4の候補枠がグループAに分類されずに残るので、No.4よりも信頼度が高いNo.2が選択され、No.2の枠番号12の枠を着目枠としたグルーピング処理が行われる。図8に示す枠12の上下の枠線を左右方向に延長して、延長した枠線と、上下の枠線を共有する枠10、枠11、枠13及び枠14が枠12と同じグループに分類される。同様に、枠12の左右の枠線を上下方向に延長して、延長した枠線と、左右の枠線を共有する枠も枠12と同じグループに分類されるが、図8の例では、上下方向で同じグループに分類される枠は存在しない。こうしてグルーピング処理を行った結果、図10に「グルーピング結果」として示したように、枠番号12のNo.2と、枠番号10のNo.4とが、同じグループ「B」に分類される。
全ての候補枠がいずれかのグループにグルーピングされると、グループ判定部45は、項目定義情報22に基づいてグループ判定処理を行う(図5ステップS16)。グルーピングされた結果を項目定義情報22と照合して、項目定義情報22に一致しない候補枠は除外される。
図10で信頼度が最も高いNo.1の項目名「役職名」はグルーピング処理によってグループAに分類されている。この項目名は、図7に示す項目定義情報22でグループ番号1と定義されているので、図10に「グループ判定結果」として示したように、No.1のグループ判定結果が「1」とされる。図10でNo.1と同じくグループAにグルーピングされたNo.6の「フリガナ」は、図7に示す項目定義情報22でもNo.1の「役職名」と同じグループ1に属するので、図10に示すNo.6のグループ判定結果が「1」とされる。同様に、図10でグループBにグルーピングされたNo.2の「給与所得控除後の金額」及びNo.4の「種別」は、図7に示す項目定義情報22でグループ番号2と定義されているので、図10のグループ判定結果が「2」とされる。
これに対して、図10に示すNo.5の「支払金額」は、図7に示す項目定義情報22でグループ番号2と定義されているにも拘わらず、図10のグループ判定結果でグループ番号1とされたグループAにグルーピングされている。このため、グルーピング結果が項目定義情報22と矛盾するものとして、No.5が候補枠から除外される。なお、一度候補枠から除外された項目名は、以降の処理でも利用されない。すなわち、図9の項目名の認識結果からNo.5を削除して以降の処理が実行される。
グループ判定を終えると、グループ判定部45は、項目定義情報22に定義された項目名全てが検出されたか否かを判定する(図5ステップS17)。項目定義情報22に定義された項目名全てが検出されていない場合は(ステップS17;No)、グループ判定を実行した回数を判定する(ステップS18)。
グループ判定の実行回数は、予め定められた所定回数までに制限されているので、グループ判定の実行回数を判定した結果、所定回数に達している場合は(ステップS18;Yes)、項目定義情報22に定義された項目名全てが検出されていない場合でも、グループ判定を再度実行することなく、次の処理(ステップS20)へ移行する。
一方、グループ判定の実行回数が所定回数に達していない場合には(ステップS18;No)、グループ判定部45は、候補枠の抽出基準を変更して(ステップS19)、候補枠の抽出からグループ判定までの処理(ステップS13〜16)を再度実行する。ここで、候補枠の抽出基準とは、ステップS13で候補枠を抽出した際の信頼度のしきい値を示している。
具体的には、図10に示すグループ判定結果では、図7の項目定義情報22に定義された項目名のうち、グループ1として定義された2つの項目名と、グループ2として定義された2つの項目名とが得られているが、項目定義情報22に定義された項目名の一部が得られていない(ステップS17;No)。このため、例えば、グループ判定の実行回数の上限が3回と設定されていれば、グループ判定の実行回数が1回目であり上限回数に達していないと判定されて(ステップS18;No)、候補枠の抽出基準が変更され(ステップS19)、2回目の処理(ステップS13〜S16)が実行される。
例えば、抽出基準、すなわち信頼度のしきい値を第1しきい値の100から第2しきい値の200へ変更して(ステップS19)、図9に示す項目名の認識結果の中から、新たな候補枠を抽出する(ステップS13)。候補枠の抽出基準を緩和して、新たな候補枠を抽出するものである。このとき、1回目の処理で除外されたNo.5を除外して候補枠が抽出される。具体的には、図9に示す枠番号が同じNo.1とNo.3では、信頼度の高いNo.1のみが抽出され、信頼度の低いNo.3は抽出されない。また、項目定義情報22で出現回数が1回とされているのに、同じ項目名「役職名」が2回登場するNo.1とNo.10については、信頼度の高いNo.1のみが抽出され、No.10は抽出されない。この結果、図11に示すように、第2しきい値よりも信頼度が高いNo.1〜11の中からNo.3、No.5及びNo.10を除いて、No.1、No.2、No.4、No.6〜9及びNo.11が候補枠として抽出される。
候補枠が抽出されると、グループ判定部45が、信頼度が最も高いNo.1の枠番号9の候補枠を着目枠として選択し(図5ステップS14)、着目枠の枠線を延長して、候補枠をグルーピングする(ステップS15)。図8に示す枠9の左右の枠線を上下方向に延長して、延長した枠線と、左右の枠線を共有する枠7及び枠8が、枠9と同じグループに分類される。同様に、枠9の上下の枠線を左右方向に延長して、延長した枠線と、上下の枠線を共有する枠も枠9と同じグループに分類されるが、図8の例では、左右方向で同じグループに分類される枠は存在しない。こうしてグルーピング処理を行った結果、図11に「グループ」として示したように、No.1、No.6及びNo.9の枠番号7〜9の候補枠が、同じグループ「A」に分類される。
続いて、グループ判定部45は、グループに分類されずに残った候補枠の中で、項目名の信頼度が最も高いNo.2の枠番号12の候補枠を着目枠として、この着目枠の枠線を上下方向及び左右方向へ延長して、枠線を共有する候補枠を別のグループに分類する。
図8に示す枠12の上下の枠線を左右方向に延長して、延長した枠線と、上下の枠線を共有する枠10、枠11、枠13及び枠14が枠12と同じグループに分類される。同様に、枠12の左右の枠線を上下方向に延長して、延長した枠線と、左右の枠線を共有する枠も枠12と同じグループに分類されるが、図8の例では、上下方向で同じグループに分類される枠は存在しない。こうしてグルーピング処理を行った結果、図11の「グループ」に示すように、No.2、No.4、No.7、No.8及びNo.11の枠番号10〜14の候補枠が、同じグループ「B」に分類される。
こうして全ての候補枠がいずれかのグループにグルーピングされると、グループ判定部45は、項目定義情報22に基づいてグループ判定処理を行う(図5ステップS16)。図11で信頼度が最も高いNo.1の項目名「役職名」は、グルーピング処理によってグループAに分類されている。この項目名は、図7に示す項目定義情報22でグループ番号1と定義されているので、図11に示したように、グループ判定結果が「1」とされる。同様に、図11でグループAに分類されたNo.6の「フリガナ」及びNo.9の「受給者番号」は、図7に示す項目定義情報22でもNo.1の「役職名」と同じグループ1に属しているので、図11のグループ判定結果が「1」とされる。
次に、図11のグループBで信頼度が最も高いNo.2の項目名「給与所得控除後の金額」は、図7に示す項目定義情報22でグループ番号2と定義されているので、図11のグループ判定結果が「2」とされる。同様に、図11でグループBに分類されたNo.4の「種別」、No.7の「支払金額」、No.8の「所得控除の額の合計額」、No.11の「源泉徴収税額」は、図7に示す項目定義情報22でもNo.2の「給与所得控除後の金額」と同じグループ2に属しているので、図11のグループ判定結果が「2」とされる。
グループ判定を終えると、グループ判定部45は、項目定義情報22に定義された項目名全てが検出されたか否かを判定する(図5ステップS17)。この結果、図11では、図7の項目定義情報22に定義された項目名全てが検出されているので(ステップS17;Yes)、項目位置決定部46が、検出結果に基づいて項目名の位置を決定する(ステップS20)。具体的には、図11に示した各項目名の位置が、同図に枠番号として示した枠位置にあると決定される。
すなわち、No.1の項目名「役職名」の項目は図8の枠9、No.6の「フリガナ」の項目は枠8、No.9の「受給者番号」の項目は枠7の位置であると決定される。また、No.2の項目名「給与所得控除後の金額」の項目は枠12、No.4の「種別」の項目は枠10、No.7の「支払金額」の項目は枠11、No.8の「所得控除の額の合計額」の項目は枠13、No.11の「源泉徴収税額」の項目は枠14の位置であると決定される。
このように、図2に示す帳票項目認識装置によって図5に示す帳票項目認識方法を実行することにより、検出対象とする項目のグループを定義した項目定義情報22に基づいて、各項目の枠の位置を正確に特定することができる。また、各項目の枠位置が正確に特定されれば、各項目に対応する記入枠内の文字を文字認識して、帳票で各項目について記入された内容を正確に取得することができる。こうして得られた項目、項目の枠位置、項目に対応して記入された内容等に関する情報は処理結果出力部30の機能により出力される。
なお、本実施形態では、グループ判定処理時に、信頼度が最も高い候補枠のグルーピング結果(図10「役職名」のグループ「A」)を、項目定義情報22に定義されたグループ(図7「役職名」のグループ「1」)と判定する例を示したが、グルーピング結果と項目定義情報22との対応を判定する方法がこれに限定されるものではない。例えば、多数決の原理に基づいて判定する態様であっても構わない。具体的には、グループAに分類された候補枠のうち、項目定義情報22でグループ1として定義されている数が、他のグループとして定義されている数より多いことに基づいて、グループAをグループ1と判定する。例えば、図10でグループAに分類された3つの候補枠のうち、図7に示す項目定義情報22で2つの項目名(No.1及びNo.6)がグループ1として定義され、1つの項目名(No.5)がグループ2として定義されているので、多数決の原理に基づいて、グループAをグループ1と判定する。
また、本実施形態では、候補枠抽出からグループ判定までの処理を、予め設定された所定回数だけ実行する態様を示したが、処理の実行回数を制限せず、項目定義情報22に定義された全ての項目名を含むグループ判定結果が得られるまで、候補枠の抽出基準となるしきい値を緩和しながら処理を繰り返し実行する態様であっても構わない。
また、項目定義情報22についても、図7に示す定義方法に限定されるものではなく、例えば、項目名に対してキーワードを設定して、項目名の認識処理及びグルーピング結果を判定するグループ判定処理を実行する際に、キーワードを利用する態様であってもよい。図12は、健康診断結果通知票を例に、項目名に対してキーワードを設定可能な項目定義情報について説明する図である。図12(A)は項目定義情報を示し、同図(B)及び(C)は、この項目定義情報によって項目名の位置を特定可能な帳票の例を示している。帳票の種類によって、血色素の項目名が、図12(B)に示すように「ヘモグロビン」と表示されたり、同図(C)に示すように「血色素」と表示されたりする場合でも、同図(A)に示す項目定義情報を利用して項目名の認識処理を行うことにより、「ヘモグロビン」及び「血色素」が、いずれも血色素に対応する項目名であると認識することができる。また、グルーピング結果を判定するグループ判定時に、「血色素」及び「ヘモグロビン」のいずれの項目名が得られた場合でも、項目定義情報に基づいて、これらの項目名をグループ1として処理することにより、血色素に対応する項目名「血色素」及び「ヘモグロビン」の位置を正しく認識することができる。
また、本実施形態では、着目枠の枠線を上下方向及び左右方向の2方向へ延長してグルーピング処理を行う例を示したが、グルーピング処理の方法がこれに限定されるものではない。例えば、あるグループの項目名が常に上下方向に並ぶことが分かっているような場合には、左右方向でのグルーピング処理は行わず、上下方向の一方向でのみグルーピング処理を行うようにしてもよい。図13は、図6に示す源泉徴収票を例に、所定方向のみでグルーピング処理を行うための項目定義情報22を示した図である。グループ番号「101」は上下方向にのみグルーピング処理を行って、グループ番号「201」は左右方向にのみグルーピング処理を行うことを示している。上下方向にグルーピングする項目のグループを100番台で101、102と順に定義して、左右方向にグルーピングする項目のグループを200番台で201、202と順に定義すれば、グルーピングの方向を定めながら複数のグループを定義することができる。さらに、帳票の構成によっては、着目枠から右方向のみとか左方向のみというように、グルーピングする項目が存在する方向をさらに限定する態様であってもよい。
上述してきたように、本実施形態に係る帳票項目認識方法によれば、帳票上で所定方向に並ぶ複数項目を同じグループとして予め定義しておくことにより、この定義情報を利用して、帳票を撮像した帳票画像から、同じグループに定義された各項目の項目名の位置を正確に認識することができる。
また、項目定義情報は、複数の項目名の座標や位置関係を定義するものではなく、項目が同じグループに属することのみを定義するものであるため、帳票の種類によって、項目の並ぶ方向が変わったり、同じグループの項目の間にこのグループに属さない項目が含まれたりする場合でも、同じ定義情報を利用して、グループに属する各項目の項目名の位置を特定することができる。また、グループに属する複数項目について、帳票上で同じ行内又は列内で項目の並びが変更されたような場合でも、各項目の項目名の位置を特定することができる。項目間の位置関係や各項目の座標情報が不要であるため、項目定義情報を容易に設定することが可能である上、帳票上の項目の順序等が変更された場合でも、変更後の帳票に合わせて項目定義情報を変更する必要がない。
また、グループを定義する際に、1つの項目に項目名として表示される可能性がある複数のキーワードを設定することができるので、帳票の種類によって表示される項目名が異なるような場合でも、帳票間の項目の対応関係を認識すると共に、各項目の枠位置を正確に認識することができる。また、予め項目名を登録しておいて、登録された項目名に基づいて帳票画像上の項目名を文字認識することができるので、帳票画像上で一部の文字が正確に文字認識できない項目名がある場合でも、この項目名を認識して処理を続けることができる。