特許第6342292号(P6342292)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通フロンテック株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6342292
(24)【登録日】2018年5月25日
(45)【発行日】2018年6月13日
(54)【発明の名称】帳票処理プログラム及び帳票処理装置
(51)【国際特許分類】
   G06K 9/20 20060101AFI20180604BHJP
【FI】
   G06K9/20 340C
【請求項の数】3
【全頁数】24
(21)【出願番号】特願2014-213755(P2014-213755)
(22)【出願日】2014年10月20日
(65)【公開番号】特開2016-81380(P2016-81380A)
(43)【公開日】2016年5月16日
【審査請求日】2016年11月7日
(73)【特許権者】
【識別番号】000237639
【氏名又は名称】富士通フロンテック株式会社
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】金元 浩一
(72)【発明者】
【氏名】小原 勝利
【審査官】 板垣 有紀
(56)【参考文献】
【文献】 特開平11−102416(JP,A)
【文献】 特開2003−109007(JP,A)
【文献】 特開平10−027208(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 9/20
(57)【特許請求の範囲】
【請求項1】
帳票処理装置のコンピュータを、
画像読取装置で読み込んだ帳票画像から罫線レイアウトを抽出する罫線抽出手段、
前記罫線抽出手段によって抽出された罫線レイアウトに基づいて、複数の帳票レイアウトが格納された帳票定義体データベースを参照し、前抽出された罫線レイアウトと所定範囲内で一致する罫線レイアウトを含む帳票レイアウトを照合する罫線レイアウト照合手段、
前記罫線レイアウト照合手段によって照合された罫線レイアウトと帳票レイアウトについて、対応する文字認識項目の罫線同士を照合する文字認識項目照合手段、
前記文字認識項目照合手段によって照合された前記帳票レイアウトの文字認識項目の罫線の位置前記罫線レイアウトの文字認識項目の罫線の位置と一致するように補正する文字認識項目補正手段、
として機能させるための帳票処理プログラム。
【請求項2】
前記コンピュータを、更に、
前記文字認識項目補正手段によって補正された帳票レイアウトに従って、前記抽出された罫線レイアウト内の文字を認識する文字認識手段、
として機能させるための請求項1に記載の帳票処理プログラム。
【請求項3】
帳票処理装置において、
画像読取装置で読み込んだ帳票画像から罫線レイアウトを抽出する罫線抽出部と、
前記罫線抽出部によって抽出された罫線レイアウトに基づいて、複数の帳票レイアウトが格納された帳票定義体データベースを参照し、前抽出された罫線レイアウトと所定範囲内で一致する罫線レイアウトを含む帳票レイアウトを照合する罫線レイアウト照合部と、
前記罫線レイアウト照合部によって照合された罫線レイアウトと帳票レイアウトについて、対応する文字認識項目の罫線同士を照合する文字認識項目照合部と、
前記文字認識項目照合部によって照合された前記帳票レイアウトの文字認識項目の罫線の位置前記罫線レイアウトの文字認識項目の罫線の位置と一致するように補正する文字認識項目補正部と、
を備えることを特徴とする帳票処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、帳票IDで管理されていない私製帳票を処理するための帳票処理プログラム及び帳票処理装置に関する。
【背景技術】
【0002】
従来、金融機関や公共機関をはじめとする様々な組織において、各種の帳票が利用されている。例えば、紙の帳票をスキャナ等の読取装置で読み取り、読み取り結果の画像からOCR(光学式文字読取:Optical Character Reader)技術によりテキスト情報を得ることが行われている。これにより、データ入力などの事務処理を効率化させることが図られている。
【0003】
OCR処理は、帳票種類の特定後、帳票種類に対応する定義体情報を使用して文字認識を行う。帳票種類の特定は、一般的には帳票ID(帳票種類を特定するために帳票に印刷された数値等)が使用される。しかしながら、OCR利用分野を拡大し、帳票IDが無い帳票もOCR対象とするニーズが高まっている。このようなケースでは、帳票上の罫線レイアウト(本数、長さ、配置)や、帳票固有情報(帳票タイトル等)を定義体に登録し、認識対象イメージと突合して帳票種類の判別を行っている。そして、帳票種類の判別後、帳票種類に対応する定義体を参照して文字認識を行っている。
【0004】
このような処理を行うには、認識対象の全帳票を事前に定義体登録する必要がある。しかしながら、帳票フォーマットが類似する帳票は多種類が流通しているため、全種類を定義体登録することはできない。このため、帳票種類を限定して定義体登録し、OCRを行うしかなく、OCR利用分野拡大の妨げになっている。
【0005】
また、帳票処理に関して、下記のような従来技術が開示されている。
例えば、帳票を複数の部分領域に分割し、部分領域ごとに予め登録された部分書式情報と比較し、部分領域ごとに最適な部分書式情報を選択する。そして、選択した部分書式情報を合成して帳票全体の書式情報を生成し、生成した書式情報に基づいて文字認識を行う技術が開示されている(例えば、特許文献1参照。)。
【0006】
また、帳票の画像から罫線で区切られたセルの配置を決めるとともに見出し項目を抽出し、見出し項目を含むセルのうちの文字又は文字列が記入された記入済みセルを検出する。そして、画像中の記入済みセルのみを二値化して記入済みセルに記入された文字を認識する技術が開示されている(例えば、特許文献2参照。)。
【0007】
また、帳票の種類を識別できなかった第1の帳票画像と、第1の帳票画像と類似する特徴を持つ既存の第2の帳票画像とを画面に表示し、第1の帳票画像又は第2の帳票画像に対する新たな特徴情報を入力し、入力された特徴情報を第1の帳票画像又は第2の帳票画像とを対応付けて登録する技術が開示されている(例えば、特許文献3参照。)。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2009−087378号公報
【特許文献2】特開2012−141670号公報
【特許文献3】特開2011−118513号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述したように、OCRを行う帳票は全種類を定義体登録する必要があるが、流通する帳票は非常に種類が多く、定義体作成は利用者にとって大きな負荷となっている。また、類似する帳票では、利用者が帳票の相違箇所を見つけ出し、相違箇所を帳票固有情報として定義体に登録する必要があり、ノウハウが必要となるため、利用者が限定されてしまい、定義体登録を効率的に行うことができない、という問題点があった。
【0010】
本発明は、上述のような実状に鑑みたものであり、OCR処理において、帳票上の罫線、および帳票上の固有情報を利用して類似する帳票種類の判別を行い、その帳票種類に対応する定義体を使用して文字認識を行うことにより、帳票IDで管理されていない私製帳票であっても、適切に処理することが可能な帳票処理プログラム及び帳票処理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明の帳票処理プログラムは、帳票処理装置のコンピュータを、画像読取装置で読み込んだ帳票画像から罫線レイアウトを抽出する罫線抽出手段、前記罫線抽出手段によって抽出された罫線レイアウトに基づいて、複数の帳票レイアウトが格納された帳票定義体データベースを参照し、所定範囲内で前記罫線レイアウトと一致する帳票レイアウトを照合する罫線レイアウト照合手段、前記罫線レイアウト照合手段によって照合された罫線レイアウトと帳票レイアウトについて、対応する文字認識項目を照合する文字認識項目照合手段、前記文字認識項目照合手段によって照合された前記帳票レイアウトの文字認識項目を前記罫線レイアウトの文字認識項目と一致するように補正する文字認識項目補正手段として機能させるための帳票処理プログラムである。
【0012】
また、本発明の帳票処理プログラムは、更に、前記文字認識項目補正手段によって補正された帳票レイアウトに従って、前記罫線レイアウト内の文字を認識する文字認識手段として機能させることが望ましい。
【0013】
また、本発明の一態様によれば、本発明の帳票処理装置は、画像読取装置で読み込んだ帳票画像から罫線レイアウトを抽出する罫線抽出部と、前記罫線抽出部によって抽出された罫線レイアウトに基づいて、複数の帳票レイアウトが格納された帳票定義体データベースを参照し、所定範囲内で前記罫線レイアウトと一致する帳票レイアウトを照合する罫線レイアウト照合部と、前記照合部によって照合された罫線レイアウトと帳票レイアウトについて、対応する文字認識項目を照合する文字認識項目照合部と、前記文字認識項目照合部によって照合された前記帳票レイアウトの文字認識項目を前記罫線レイアウトの文字認識項目と一致するように補正する文字認識項目補正部とを備えることを特徴とする帳票処理装置である。
【発明の効果】
【0014】
本発明によれば、帳票フォーマットが類似している帳票群に対して1つの定義体で文字認識が可能となるため、定義体作成負荷を軽減できる。また、帳票の一部が変更された場合でも文字認識が可能となるため、定義体修正負荷も軽減できる。また、類似する帳票では、利用者が帳票の相違箇所を見つけ出し、相違箇所を帳票固有情報として定義体に登録する必要がなくなるため、高度なノウハウが不要となり、多くの利用者による定義体作成が可能となり、業務効率全般を向上させることが可能となる。
【図面の簡単な説明】
【0015】
図1】本実施の形態における帳票処理装置を備えるシステム構成図である。
図2】本実施の形態における帳票処理装置の機能ブロック図である。
図3】本実施の形態における帳票処理装置のハードウェア構成図である。
図4】本実施の形態において実行される帳票処理の流れを示すフローチャート(その1)である。
図5】帳票イメージの例を示す図である。
図6】帳票イメージから抽出した罫線レイアウトの例を示す図である。
図7】罫線レイアウトから抽出した横罫線情報の例を示す図である。
図8】罫線レイアウトから抽出した縦罫線情報の例を示す図である。
図9】本実施の形態において実行される帳票処理の流れを示すフローチャート(その2)である。
図10】定義体に登録されている帳票イメージの例を示す図である。
図11】定義体に登録されている罫線レイアウトの例を示す図である。
図12】定義体に登録されている横罫線情報の例を示す図である。
図13】定義体に登録されている縦罫線情報の例を示す図である。
図14】サブルーチン「罫線レイアウト照合処理」の流れを示すフローチャート(その1)である。
図15】横罫線情報の照合の例を示す図である。
図16】サブルーチン「罫線レイアウト照合処理」の流れを示すフローチャート(その2)である。
図17】サブルーチン「文字認識項目照合/補正処理」の流れを示すフローチャートである。
図18】サブルーチン「文字項目罫線照合処理」の流れを示すフローチャートである。
図19】定義体に登録されている項目定義情報の例を示す図である。
図20】帳票と定義体の認識項目の比較を示す図である。
図21】項目情報の横罫線の比較を示す図である。
図22】項目情報の縦罫線の比較を示す図である。
図23】サブルーチン「文字項目定義補正処理」の流れを示すフローチャート(その1)である。
図24】項目情報の横罫線の補正を示す図である。
図25】定義体の補正を示す図である。
図26】サブルーチン「文字項目定義補正処理」の流れを示すフローチャート(その2)である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施の形態における帳票処理装置を備えるシステム構成図である。
【0017】
図1において、帳票処理システム1は、画像読取装置10、画像読取装置10と接続された帳票処理装置20を備える。ここで、本実施の形態の帳票処理システム1は、例えば金融機関や公共機関等における帳票処理に用いられている。
【0018】
画像読取装置10は、例えば、イメージスキャナであり、帳票を光学的に読み取り、帳票処理装置20に送出する。
【0019】
帳票処理装置20は、例えば、ワークステーション、サーバ、パーソナルコンピュータ等のコンピュータの機能を備えており、後述する帳票処理を実行する。
【0020】
図2は、本実施の形態における帳票処理装置の機能ブロック図である。
図2において、帳票処理装置20は、罫線抽出部21、罫線レイアウト照合部22、文字認識項目照合部23、文字認識項目補正部24及び文字認識部25を備え、定義帳票情報データベース(DB)30とアクセス可能に接続する。
【0021】
罫線抽出部21は、画像読取装置10で読み込んだ帳票画像から罫線レイアウトを抽出する。
【0022】
罫線レイアウト照合部22は、前記罫線抽出部21によって抽出された罫線レイアウトに基づいて、複数の帳票レイアウトが格納された定義帳票情報データベース30を参照し、所定範囲内で前記罫線レイアウトと一致する帳票レイアウトを照合する。
【0023】
文字認識項目照合部23は、前記罫線レイアウト照合部によって照合された罫線レイアウトと帳票レイアウトについて、対応する文字認識項目を照合する。
【0024】
文字認識項目補正部24は、前記文字認識項目照合部23によって照合された前記帳票レイアウトの文字認識項目を前記罫線レイアウトの文字認識項目と一致するように補正する。
【0025】
文字認識部25は、前記文字認識項目補正部24によって補正された帳票レイアウトに従って、前記罫線レイアウト内の文字を認識する。
【0026】
図3は、本実施の形態における帳票処理装置のハードウェア構成図である。
図3において、帳票処理装置20は、CPU(Central Processing Unit)201、入力装置202、出力装置203、ROM(Read Only Memory)204、RAM(Random Access Memory)205、インターフェース(I/F)206がバス207に接続されて構成されている。入力装置202は、例えば、キーボード、ジョイスティック、ライトペン、マウス、タッチパッド、タッチパネル、トラックボール等、各種のデータや信号等を入力する。出力装置203は、例えば、LCD(Liquid Crystal Display)等の各種ディスプレイ、プリンタ等、画像やその他の情報を出力する。ROM204は、帳票処理装置20において実行する帳票処理を実行するプログラムの他、帳票処理装置20の各機能を制御し実行するための制御プログラム及びテーブルデータなどを収納する。RAM205は、出力装置203用のフレームバッファや一部のアプリケーションプログラム等を格納する。インターフェース206は、USB(Universal Serial Bus)等のシリアルインターフェースやイーサネット(登録商標)等のパラレルインターフェース等、外部機器と接続するためのユニットである。CPU201は、これらの各部を制御している。
【0027】
本実施の形態における帳票処理は、上述した帳票処理装置20によって実行される。帳票処理装置20によって実行される帳票処理は、まず、予め登録した定義体から、帳票の画像データにおける第1の罫線レイアウトとの一致度が高い第2の罫線レイアウトを有する定義体を抽出する。第1の罫線レイアウトと第2の罫線レイアウトとの間に相違があり、かつその相違箇所に文字認識項目が含まれている場合、第2の罫線レイアウトの相違箇所を第1の罫線レイアウトにおける文字認識項目が含まれるよう補正した定義体を作成する。そして、この補正した定義体を使用して帳票の画像データに対する文字認識を行う。これにより、帳票の一部分が異なる複数種類の類似帳票に対する文字認識を、1つの共通の定義体に基づいて行うことが可能となる。また、本実施の形態における帳票処理によれば、作成する定義体の数を減らすことができ、作成作業の負荷を軽減できる。
【0028】
次に、図4乃至図26を用いて、本実施の形態を詳細に説明する。
図4及び図9は、本実施の形態において実行される帳票処理の流れを示すフローチャートである。図5は、帳票イメージの例を示す図である。図6は、帳票イメージから抽出した罫線レイアウトの例を示す図である。図7は、罫線レイアウトから抽出した横罫線情報の例を示す図である。図8は、罫線レイアウトから抽出した縦罫線情報の例を示す図である。図10は、定義体に登録されている帳票イメージの例を示す図である。図11は、定義体に登録されている罫線レイアウトの例を示す図である。図12は、定義体に登録されている横罫線情報の例を示す図である。図13は、定義体に登録されている縦罫線情報の例を示す図である。図14及び図16は、サブルーチン「罫線レイアウト照合処理」の流れを示すフローチャートである。図15は、横罫線情報の照合の例を示す図である。図17は、サブルーチン「文字認識項目照合/補正処理」の流れを示すフローチャートである。図18は、サブルーチン「文字項目罫線照合処理」の流れを示すフローチャートである。図19は、定義体に登録されている項目定義情報の例を示す図である。図20は、帳票と定義体の認識項目の比較を示す図である。図21は、項目情報の横罫線の比較を示す図である。図22は、項目情報の縦罫線の比較を示す図である。図23及び図26は、サブルーチン「文字項目定義補正処理」の流れを示すフローチャートである。図24は、項目情報の横罫線の補正を示す図である。図25は、定義体の補正を示す図である。
【0029】
まず、帳票処理装置20は、図4のステップS401において、オペレータからの指示として、帳票に対するイメージ読み取りの指示、及び読み取った帳票のOCR処理の指示を受け取る。
【0030】
ステップS402において、ステップS401で受け取った指示に基づいて、イメージスキャナを用いて帳票を走査し、図5に示すような帳票イメージ(認識対象イメージ)を取得する。
【0031】
ステップS403において、ステップS402で取得した帳票イメージから、図6に示すように、同一色の画素が縦、または横方向に連続して並んでいる箇所を罫線として検出する。そして、検出した罫線に関する罫線レイアウト情報を作成する。ここで、罫線レイアウト情報は、開始座標情報、終了座標情報、及び太さ情報を含む。また、ここで作成される罫線レイアウト情報は、所定の長さを超える罫線を対象にしており、例えば、金額欄の縦の罫線は対象外である。
【0032】
ステップS404において、ステップS403で作成した罫線レイアウト情報から、帳票照合用に横罫線情報と縦罫線情報を取出し、それぞれに番号を付す。例えば、図7に示すように、取り出された9本の横罫線701乃至709に順に番号を付す。また、図8に示すように、取り出された4本の縦罫線801乃至804に順に番号を付す。
【0033】
次に、帳票処理装置20は、定義帳票情報データベース30に格納された帳票について、図9のステップS901乃至S905のループ処理を実行する。
【0034】
まず、ステップS901において、定義帳票情報データベース30から、図10に示すような帳票の定義体を順に取り出す。図10に示すような帳票の定義体は、図11に示すような罫線レイアウト、図12に示すような横罫線情報、及び図13に示すような縦罫線情報を含む。図12に示すような定義体の横罫線情報には、9本の横罫線1201乃至1209に番号が順に付されている。また、図13に示すような定義体の縦罫線情報には、4本の縦罫線1301乃至1304に番号が順に付されている。
【0035】
そして、帳票処理装置20は、ステップS902において、サブルーチン「罫線レイアウト照合処理」を実行し、イメージスキャナを用いて取得した帳票の罫線レイアウトと、ステップS901で定義帳票情報データベース30から取り出した定義体の罫線レイアウトとを比較する。
【0036】
サブルーチン「罫線レイアウト照合処理」について、図14図15及び図16を用いて説明する。
【0037】
まず、定義体及び帳票の基準横罫線の組み合わせについて、図14のステップS1401乃至S1405のループ処理を実行する。定義体をベースにして基準横罫線を変更しながら、一致率の高い横罫線を探索する。例えば、定義体の横罫線1201と帳票の横罫線701、定義体の横罫線1201と帳票の横罫線702、定義体の横罫線1201と帳票の横罫線703、・・・、定義体の横罫線1202と帳票の横罫線701等と、基準横罫線を変更しながら、図14のステップS1401乃至S1405のループ処理をそれぞれ実行して探索する。
【0038】
このループ処理内において、定義体の横罫線について、ステップS1401乃至S1403のループ処理を実行する。
【0039】
ステップS1401において、「定義体の基準横罫線」と「定義体の横罫線」の差を求め、「帳票の基準横罫線」に求めた差を適用し、所定のマージン内にある帳票の横罫線を探索する。例えば、図12に示した横罫線1201乃至1209の任意の1本、横罫線1201を定義体の基準横罫線とし、図7に示した横罫線701乃至709の任意の1本、横罫線701を帳票の基準横罫線とした場合を例にして説明する。まず、定義体の基準横罫線1201と、1番目の横罫線としての横罫線1201の差を求める。ここでは、図15の(A)中に記した(1)に示すように、縦方向の座標値の差を求める。横罫線1201は、基準横罫線1201そのものであるので、差は「0」となる。帳票の基準横罫線701に求めた差「0」を適用し、図15の(B)中に記した(1)に示すように、所定のマージン内にある帳票の横罫線を探索する。例えば、「帳票の基準横罫線701の縦方向の座標値」+「0」±「マージン」内にある帳票の横罫線を探索する。
【0040】
ステップS1402において、ステップS1401で帳票の横罫線が探索できたか否かを判断する。探索できた場合(ステップS1402:Yes)、上述の例では、横罫線701が探索されるので、ステップS1403において、横罫線1201と横罫線701の一致した長さを算出し、記録する。ここでは、「定義側の罫線」と「帳票側の罫線」の長さの小さい方を一致と見なす。上述の例では、図15の(C)に示すように、一致長さ「23」を記録してステップS1401に戻る。ここで、1回目のループ処理から抜ける。
【0041】
2回目のループ処理のステップS1401において、定義体の基準横罫線1201と、2番目の横罫線としての横罫線1202の差を求める。図15の(A)中に記した(2)に示すように、縦方向の座標値の差「1」を求める。帳票の基準横罫線701に求めた差「1」を適用し、図15の(B)中に記した(2)に示すように、所定のマージン内にある帳票の横罫線702を探索する。そして、ステップS1402で探索すると(ステップS1402:Yes)、ステップS1403において、横罫線1202と横罫線702の一致した長さ「8」を算出し、図15の(C)に示すように、一致長さ「8」を記録してステップS1401に戻る。
【0042】
同様に、3回目のループ処理のステップS1401において、定義体の基準横罫線1201と、3番目の横罫線としての横罫線1203の差を求める。図15の(A)中に記した(3)に示すように、縦方向の座標値の差「3」を求める。帳票の基準横罫線701に求めた差「3」を適用し、図15の(B)中に記した(3)に示すように、所定のマージン内にある帳票の横罫線703を探索する。そして、ステップS1402で探索すると(ステップS1402:Yes)、ステップS1403において、横罫線1203と横罫線703の一致した長さ「12」を算出し、図15の(C)に示すように、一致長さ「12」を記録してステップS1401に戻る。
【0043】
同様に、4回目のループ処理のステップS1401において、定義体の基準横罫線1201と、4番目の横罫線としての横罫線1204の差を求める。図15の(A)中に記した(4)に示すように、縦方向の座標値の差「5」を求める。帳票の基準横罫線701に求めた差「5」を適用し、図15の(B)中に記した(4)に示すように、所定のマージン内にある帳票の横罫線704を探索する。そして、ステップS1402で探索すると(ステップS1402:Yes)、ステップS1403において、横罫線1204と横罫線704の一致した長さ「12」を算出し、図15の(C)に示すように、一致長さ「12」を記録してステップS1401に戻る。
【0044】
このような定義体の横罫線の数だけループを繰り返した後、ステップS1404に進む。
【0045】
ステップS1404において、上述のようにして算出した一致長さの合計を算出し、バッファに一時的に退避した一致長さの合計と比較して大きいか否かを判断する。最初は、一致長さの合計が退避されていないので、例えば、初期値「0」と比較する。
【0046】
そして、大きいと判断された場合(ステップS1404:Yes)、ステップS1405において、算出した一致長さの合計、及び基準罫線として使用した罫線を、バッファに一時的に退避する。他方、大きいと判断されなかった場合(ステップS1404:No)、ステップS1405をスキップする。
【0047】
以上のステップS1401乃至S1405のループ処理を、定義体及び帳票の基準横罫線の組み合わせの数だけ繰り返す。
【0048】
次に、ステップS1406において、一致長さの合計から一致率を算出する。例えば、一致長さの合計を定義体の横罫線の長さの合計で除算して求める。図15の(C)に示した例の場合、一致率は、およそ92.1%となる。
【0049】
ステップS1407において、ステップS1406で算出した一致率が所定値以上であるか否か、例えば80%以上であるか否かを判断する。
【0050】
所定値以上でなければ(ステップS1407:No)、サブルーチン「罫線レイアウト照合処理」を終了し、イメージスキャナを用いて取得した帳票の罫線レイアウトと、定義帳票情報データベース30から取り出した定義体の罫線レイアウトの比較結果が、「不一致」であるとして図9の「帳票処理」に戻る。
【0051】
他方、所定値以上であれば(ステップS1407:Yes)、図16のステップS1601に進む。
【0052】
図16のステップS1601乃至S1607は、横罫線について実行した図14のステップS1401乃至1407と同様の処理を、縦罫線について実行する。
【0053】
まず、定義体及び帳票の基準縦罫線の組み合わせについて、図16のステップS1601乃至S1605のループ処理を実行する。定義体をベースにして基準縦罫線を変更しながら、一致率の高い縦罫線を探索する。例えば、定義体の縦罫線1301と帳票の縦罫線801、定義体の縦罫線1301と帳票の縦罫線802、定義体の縦罫線1301と帳票の縦罫線803、・・・、定義体の縦罫線1302と帳票の縦罫線801等と、基準横罫線を変更しながら、図16のステップS1601乃至S1605のループ処理をそれぞれ実行して探索する。
【0054】
このループ処理内において、定義体の縦罫線について、ステップS1601乃至S1603のループ処理を実行する。
【0055】
ステップS1601において、「定義体の基準縦罫線」と「定義体の縦罫線」の差を求め、「帳票の基準縦罫線」に求めた差を適用し、所定のマージン内にある帳票の縦罫線を探索する。例えば、図13に示した縦罫線1301乃至1304の任意の1本、縦罫線1301を定義体の基準縦罫線とし、図8に示した縦罫線801乃至804の任意の1本、縦罫線801を帳票の基準縦罫線とした場合を例にして説明する。まず、定義体の基準縦罫線1301と、1番目の縦罫線としての縦罫線1301の差を求める。ここでは、横方向の座標値の差を求める。縦罫線1301は、基準縦罫線1301そのものであるので、差は「0」となる。帳票の基準縦罫線801に求めた差「0」を適用し、所定のマージン内にある帳票の縦罫線を探索する。例えば、「帳票の基準縦罫線801の横方向の座標値」+「0」±「マージン」内にある帳票の縦罫線を探索する。
【0056】
ステップS1602において、ステップS1601で帳票の縦罫線が探索できたか否かを判断する。探索できた場合(ステップS1602:Yes)、上述の例では、縦罫線801が探索されるので、ステップS1603において、縦罫線1301と縦罫線801の一致した長さを算出し、記録する。ここでは、「定義側の罫線」と「帳票側の罫線」の長さの小さい方を一致と見なす。上述の例では、図15の(D)に示すように、一致長さ「19」を記録してステップS1601に戻る。ここで、1回目のループ処理から抜ける。
【0057】
2回目のループ処理のステップS1601において、定義体の基準縦罫線1301と、2番目の縦罫線としての縦罫線1302の差を求める。例えば、横方向の座標値の差「1」を求める。帳票の基準縦罫線801に求めた差「1」を適用し、所定のマージン内にある帳票の縦罫線802を探索する。そして、ステップS1602で探索すると(ステップS1602:Yes)、ステップS1603において、縦罫線1302と縦罫線802の一致した長さ「19」を算出し、図15の(D)に示すように、一致長さ「19」を記録してステップS1601に戻る。
【0058】
同様に、3回目のループ処理のステップS1601において、定義体の基準縦罫線1301と、3番目の縦罫線としての縦罫線1303の差を求める。例えば、横方向の座標値の差「2」を求める。帳票の基準縦罫線801に求めた差「2」を適用し、所定のマージン内にある帳票の縦罫線803を探索する。そして、ステップS1602で探索すると(ステップS1602:Yes)、ステップS1603において、縦罫線1303と縦罫線803の一致した長さ「16」を算出し、図15の(D)に示すように、一致長さ「16」を記録してステップS1601に戻る。
【0059】
同様に、4回目のループ処理のステップS1601において、定義体の基準縦罫線1301と、4番目の縦罫線としての縦罫線1304の差を求める。例えば、横方向の座標値の差「13」を求める。帳票の基準縦罫線801に求めた差「13」を適用し、所定のマージン内にある帳票の縦罫線804を探索する。そして、ステップS1602で探索すると(ステップS1602:Yes)、ステップS1603において、縦罫線1304と縦罫線804の一致した長さ「19」を算出し、図15の(D)に示すように、一致長さ「19」を記録してステップS1601に戻る。
【0060】
このような定義体の縦罫線の数だけループを繰り返した後、ステップS1604に進む。
【0061】
ステップS1604において、上述のようにして算出した一致長さの合計を算出し、バッファに一時的に退避した一致長さの合計と比較して大きいか否かを判断する。最初は、一致長さの合計が退避されていないので、例えば、初期値「0」と比較する。
【0062】
そして、大きいと判断された場合(ステップS1604:Yes)、ステップS1605において、算出した一致長さの合計、及び基準罫線として使用した罫線を、バッファに一時的に退避する。他方、大きいと判断されなかった場合(ステップS1604:No)、ステップS1605をスキップする。
【0063】
以上のステップS1601乃至S1605のループ処理を、定義体及び帳票の基準縦罫線の組み合わせの数だけ繰り返す。
【0064】
次に、ステップS1606において、一致長さの合計から一致率を算出する。例えば、一致長さの合計を定義体の縦罫線の長さの合計で除算して求める。図15の(D)に示した例の場合、一致率は、100%となる。
【0065】
ステップS1607において、ステップS1606で算出した一致率が所定値以上であるか否か、例えば80%以上であるか否かを判断する。
【0066】
所定値以上でなければ(ステップS1607:No)、サブルーチン「罫線レイアウト照合処理」を終了し、イメージスキャナを用いて取得した帳票の罫線レイアウトと、定義帳票情報データベース30から取り出した定義体の罫線レイアウトの比較結果が、「不一致」であるとして図9の「帳票処理」に戻る。
【0067】
他方、所定値以上であれば(ステップS1607:Yes)、サブルーチン「罫線レイアウト照合処理」を終了し、イメージスキャナを用いて取得した帳票の罫線レイアウトと、定義帳票情報データベース30から取り出した定義体の罫線レイアウトの比較結果が、「一致」であるとして図9の「帳票処理」に戻る。
【0068】
図9のステップS903において、サブルーチン「罫線レイアウト照合処理」で実行した帳票と定義体の罫線レイアウトの比較結果が「一致」であるか否(「不一致」である)かを判断する。
【0069】
不一致であれば(ステップS903:No)、ステップS901において、定義帳票情報データベース30から、次の帳票の定義体を順に取り出す。
【0070】
他方、一致(ステップS903:Yes)であれば、ステップS904において、サブルーチン「文字認識項目照合/補正処理」を実行し、項目罫線を含む項目定義情報が登録された定義体と比較することにより、読み取った帳票の認識項目の項目罫線を補正する。
【0071】
サブルーチン「文字認識項目照合/補正処理」について、図17のフローチャートを用いて説明する。
【0072】
まず、図17のステップS1701において、サブルーチン「文字項目罫線照合処理」を実行し、定義体に登録された項目罫線と読み取った帳票の項目罫線を照合する。
【0073】
サブルーチン「文字項目罫線照合処理」について、図18図19図20図21及び図22を用いて説明する。
【0074】
図18のフローチャートで示すサブルーチン「文字項目罫線照合処理」は、図20に示すように、図6に示すような帳票の認識項目の項目罫線(図20の(B))を、図19に示すような定義体(図20の(A))と比較して照合する。図19に示す定義体には、項目罫線を含む項目定義情報が登録されている。
【0075】
項目の横罫線数で、図18のステップS1801乃至S1802のループ処理を実行する。
【0076】
まず、ステップS1801において、「定義体の基準横罫線」と「定義体の項目横罫線」の差を求め、「帳票の基準横罫線」に求めた差を適用し、所定のマージン内にある帳票の横罫線を探索する。例えば、図21の(A)に示すように、定義体の基準横罫線1201と、1番目の横罫線としての横罫線1201の縦方向の差を求める。横罫線1201は、基準横罫線1201そのものであるので、差は「0」となる。帳票の基準横罫線701に求めた差「0」を適用し、図21の(B)に示すように、所定のマージン内にある帳票の横罫線を探索する。例えば、「帳票の基準横罫線701の縦方向の座標値」+「0」±「マージン」内にある帳票の横罫線を探索する。
【0077】
ステップS1802において、ステップS1801で帳票の横罫線が探索できたか否かを判断する。探索できた場合(ステップS1802:Yes)、上述の例では、図21の(B)に示すように、横罫線701が探索されるので、ステップS1801に戻る。
【0078】
2回目のループ処理のステップS1801において、定義体の基準横罫線1201と、2番目の横罫線としての横罫線1202の縦方向の座標値の差「1」を求める。帳票の基準横罫線701に求めた差「1」を適用し、所定のマージン内にある帳票の横罫線702を探索する。
【0079】
同様に、3回目のループ処理のステップS1801において、定義体の基準横罫線1201と、3番目の横罫線としての横罫線1203の縦方向の座標値の差「3」を求める。帳票の基準横罫線701に求めた差「3」を適用し、所定のマージン内にある帳票の横罫線を探索する。図21に示した例では、横罫線1203に対応する帳票の横罫線は探索できない(図21の(B)を参照)。
【0080】
ステップS1802で帳票の横罫線が探索できなかった場合(ステップS1802:No)、例えば、図21に示した例のように、横罫線1203に対応する帳票の横罫線が探索できなかった場合、サブルーチン「文字項目罫線照合処理」を終了し、定義体に登録された項目罫線と読み取った帳票の項目罫線の照合結果が、「不一致」であるとして図17のサブルーチン「文字認識項目照合/補正処理」に戻る。
【0081】
次に、項目の縦罫線数で、図18のステップS1803乃至S1804のループ処理を実行する。
【0082】
まず、ステップS1803において、「定義体の基準縦罫線」と「定義体の項目縦罫線」の差を求め、「帳票の基準縦罫線」に求めた差を適用し、所定のマージン内にある帳票の縦罫線を探索する。例えば、図22の(A)に示すように、定義体の基準縦罫線1304と、1番目の縦罫線としての縦罫線1304の横方向の差を求める。縦罫線1304は、基準縦罫線1304そのものであるので、差は「0」となる。帳票の基準縦罫線804に求めた差「0」を適用し、図22の(B)に示すように、所定のマージン内にある帳票の縦罫線を探索する。例えば、「帳票の基準縦罫線804の横方向の座標値」+「0」±「マージン」内にある帳票の縦罫線を探索する。
【0083】
ステップS1804において、ステップS1803で帳票の縦罫線が探索できたか否かを判断する。探索できた場合(ステップS1804:Yes)、上述の例では、図22の(B)に示すように、縦罫線804が探索されるので、ステップS1803に戻る。
【0084】
2回目のループ処理のステップS1803において、定義体の基準縦罫線1304と、2番目の縦罫線としての縦罫線2201の横方向の座標値の差「1」を求める。帳票の基準縦罫線804に求めた差「1」を適用し、図22の(B)に示すように、所定のマージン内にある帳票の縦罫線2211を探索する。
【0085】
同様に、3回目のループ処理のステップS1803において、定義体の基準縦罫線1304と、3番目の縦罫線としての縦罫線2202の横方向の座標値の差「2」を求める。帳票の基準縦罫線804に求めた差「2」を適用し、図22の(B)に示すように、所定のマージン内にある帳票の縦罫線2212を探索する。
【0086】
図22に示した例では、同様にして、定義体の横罫線2209に対応する帳票の横罫線2219までの探索を繰り返し、全ての横罫線が探索できた場合(ステップS1804:Yes)、サブルーチン「文字項目罫線照合処理」を終了し、定義体に登録された項目罫線と読み取った帳票の項目罫線の照合結果が、「一致」であるとして図17のサブルーチン「文字認識項目照合/補正処理」に戻る。
【0087】
他方、ステップS1804で帳票の縦罫線が探索できなかった場合(ステップS1804:No)、サブルーチン「文字項目罫線照合処理」を終了し、定義体に登録された項目罫線と読み取った帳票の項目罫線の照合結果が、「不一致」であるとして図17のサブルーチン「文字認識項目照合/補正処理」に戻る。
【0088】
サブルーチン「文字項目罫線照合処理」が終了すると、ステップS1702において、定義体に登録された項目罫線と読み取った帳票の項目罫線の照合結果が、「一致」であるか否(「不一致」である)かを判断する。
【0089】
一致であれば(ステップS1702:Yes)、定義体の次の項目について、ステップS1701のサブルーチン「文字項目罫線照合処理」を実行する。
【0090】
他方、不一致であれば(ステップS1702:No)、ステップS1703において、サブルーチン「文字項目定義補正処理」を実行し、ステップS1703において、定義体の認識項目の項目罫線を補正する。なお、補正の対象である定義体は、本「帳票処理」が実行されている間だけ一時的にバッファに複製されたものを用いる。
【0091】
サブルーチン「文字項目定義補正処理」について、図23図24図25及び図26を用いて説明する。
【0092】
図23及び図26のフローチャートで示すサブルーチン「文字項目定義補正処理」は、上述したサブルーチン「文字項目罫線照合処理」で「不一致」となった定義体が対象となる。
【0093】
項目の横罫線数で、図23のステップS2301乃至S2306のループ処理を実行する。
【0094】
まず、ステップS2301において、「定義体の基準横罫線」と「定義体の項目横罫線」の差を求め、「帳票の基準横罫線」に求めた差を適用し、所定のマージン内にある帳票の横罫線を探索する。例えば、図24の(A)に示すように、定義体の基準横罫線1201と、1番目の横罫線としての横罫線1201の縦方向の差を求める。横罫線1201は、基準横罫線1201そのものであるので、差は「0」となる。帳票の基準横罫線701に求めた差「0」を適用し、図24の(B)に示すように、所定のマージン内にある帳票の横罫線を探索する。例えば、「帳票の基準横罫線701の縦方向の座標値」+「0」±「マージン」内にある帳票の横罫線を探索する。
【0095】
ステップS2302において、ステップS2301で帳票の横罫線が探索できたか否かを判断する。探索できた場合(ステップS2302:Yes)、上述の例では、図24の(B)に示すように、横罫線701が探索されるので、ステップS2301に戻る。
【0096】
2回目のループ処理のステップS2301において、定義体の基準横罫線1201と、2番目の横罫線としての横罫線1202の縦方向の座標値の差「1」を求める。帳票の基準横罫線701に求めた差「1」を適用し、所定のマージン内にある帳票の横罫線702を探索する。
【0097】
同様に、3回目のループ処理のステップS2301において、定義体の基準横罫線1201と、3番目の横罫線としての横罫線1203の縦方向の座標値の差「3」を求める。帳票の基準横罫線701に求めた差「3」を適用し、所定のマージン内にある帳票の横罫線を探索する。図24に示した例では、横罫線1203に対応する帳票の横罫線は探索できない(図24の(B)を参照)。
【0098】
ステップS2302で帳票の横罫線が探索できなかった場合(ステップS2302:No)、例えば、図24に示した例のように、横罫線1203に対応する帳票の横罫線が探索できなかった場合、ステップS2303において、ステップS2301で用いたマージンを拡張したマージンを適用して、帳票の横罫線を探索する。
【0099】
そして、ステップS2304において、ステップS2303で帳票の横罫線が探索できたか否かを判断する。
【0100】
探索できなかった場合(ステップS2304:No)、サブルーチン「文字項目定義補正処理」を終了し、定義体の認識項目の項目罫線の補正が失敗したとして図17のサブルーチン「文字認識項目照合/補正処理」に戻る。
【0101】
他方、検索できた場合(ステップS2304:Yes)、上述の例では、図24の(B)に示すように、横罫線704が探索される。
【0102】
そして、ステップS2305において、補正値を算出し、算出した補正値で定義体の横罫線を補正する。補正した横罫線は、図25の(A)の横罫線2503となる。ここで、補正値は、例えば、(「ステップS2303で探索した帳票の横罫線704の縦方向の座標値」−「帳票の基準横罫線701の縦方向の座標値」)−(「検索により横罫線704と対応した定義体の横罫線1203の縦方向の座標値」−「定義体の基準横罫線1201の縦方向の座標値」)を算出して求める。
【0103】
次に、項目の縦罫線数で、ステップS2306のループ処理を実行する。
ステップS2306において、「項目の縦罫線」の縦方向の座標値に、ステップS2305で算出した補正値を加算する。
【0104】
次に、項目の縦罫線数で、図26のステップS2601乃至S2606のループ処理を実行する。
【0105】
まず、ステップS2601において、「定義体の基準縦罫線」と「定義体の項目縦罫線」の差を求め、「帳票の基準縦罫線」に求めた差を適用し、所定のマージン内にある帳票の縦罫線を探索する。例えば、「帳票の基準縦罫線の横方向の座標値」+「0」±「マージン」内にある帳票の縦罫線を探索する。
【0106】
ステップS2602において、ステップS2601で帳票の縦罫線が探索できたか否かを判断する。探索できた場合(ステップS2602:Yes)、ステップS2601に戻る。
【0107】
他方、ステップS2602で帳票の縦罫線が探索できなかった場合(ステップS2602:No)、ステップS2603において、ステップS2601で用いたマージンを拡張したマージンを適用して、帳票の縦罫線を探索する。
【0108】
そして、ステップS2604において、ステップS2603で帳票の縦罫線が探索できたか否かを判断する。
【0109】
探索できなかった場合(ステップS2604:No)、サブルーチン「文字項目定義補正処理」を終了し、定義体の認識項目の項目罫線の補正が失敗したとして図17のサブルーチン「文字認識項目照合/補正処理」に戻る。
【0110】
他方、検索できた場合(ステップS2604:Yes)、ステップS2605において、補正値を算出し、算出した補正値で定義体の縦罫線を補正する。
【0111】
次に、項目の横罫線数で、ステップS2606のループ処理を実行する。
ステップS2606において、「項目の横罫線」の横方向の座標値に、ステップS2605で算出した補正値を加算する。
【0112】
そして、サブルーチン「文字項目定義補正処理」を終了し、定義体の認識項目の項目罫線の補正が成功したとして図17のサブルーチン「文字認識項目照合/補正処理」に戻る。
【0113】
図17のステップS1704において、サブルーチン「文字項目定義補正処理」により定義体の認識項目の項目罫線の補正が成功したか否(失敗)かを判断する。
【0114】
成功した場合(ステップS1704:Yes)、サブルーチン「文字認識項目照合/補正処理」を終了し、定義体に登録された項目罫線と読み取った帳票が補正により一致したとして図9の「帳票処理」に戻る。
【0115】
他方、失敗した場合(ステップS1704:No)、サブルーチン「文字認識項目照合/補正処理」を終了し、定義体に登録された項目罫線と読み取った帳票が補正によっても一致しなかった(不一致)であるとして図9の「帳票処理」に戻る。
【0116】
図9のステップS905において、定義体に登録された項目罫線と読み取った帳票が一致しているか否かを判断する。
【0117】
一致していない場合(ステップS905:No)、ステップS901に戻り、次の定義体を取り出す。
【0118】
他方、一致している場合(ステップS905:Yes)、ステップS906において、一致した定義体があるか否かを判断する。
【0119】
一致した定義体がない場合(ステップS906:No)、ステップS907において、認識対象イメージを新規の帳票として、その定義体を新規登録し帳票処理を終了する。
【0120】
他方、一致した定義体がある場合(ステップS906:Yes)、ステップS908において、一致した定義体に従い、項目内の文字認識を行った後、帳票処理を終了する。
【0121】
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、本発明が適用される帳票処理装置は、上述の実施の形態に限定されない。
【0122】
上述してきた本発明の実施の形態は、帳票処理装置の一機能としてハードウェアまたはDSP(Digital Signal Processor)ボードやCPUボードでのファームウェアもしくはソフトウェアにより実現することができる。
【0123】
また、本発明が適用される帳票処理装置は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、LAN、WAN等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【0124】
また、バスに接続されたCPU、ROMやRAMのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムを記録したROMやRAMのメモリ、外部記録装置、可搬記録媒体を、帳票処理装置に供給し、その帳票処理装置のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
【0125】
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
【0126】
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、DVD−RAM、磁気テープ、不揮発性のメモリーカード、ROMカード、電子メールやパソコン通信等のネットワーク接続装置(言い換えれば、通信回線)を介して記録した種々の記録媒体などを用いることができる。
【0127】
また、コンピュータ(情報処理装置)がメモリ上に読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【0128】
さらに、可搬型記録媒体から読み出されたプログラムやプログラム(データ)提供者から提供されたプログラム(データ)が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
【0129】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成又は形状を取ることができる。
【符号の説明】
【0130】
1 帳票処理システム
10 画像読取装置
20 帳票処理装置
21 罫線抽出部
22 罫線レイアウト照合部
23 文字認識項目照合部
24 文字認識項目補正部
25 文字認識部
30 定義帳票情報データベース(DB)
201 CPU(Central Processing Unit)
202 入力装置
203 出力装置
204 ROM(Read Only Memory)
205 RAM(Random Access Memory)
206 インターフェース(I/F)
207 バス
701、702、703、704、705、706、707、708、709 横罫線
801、802、803、804 縦罫線
1201、1202、1203、1204、1205、1206、1207、1208、1209 横罫線
1301、1302、1303、1304 縦罫線
2201、2202、2209、2211、2212、2219 縦罫線
2503 横罫線
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26