【文献】
Junichi Hirayama et al.,Development of Template-Free Form Recognition System,2011 International Conference on Document Analysis and Recognition,IEEE,2011年11月 3日,pp.237-241,URL,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6065311
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施の形態における帳票処理装置を備えるシステム構成図である。
【0018】
図1において、帳票処理システム1は、画像読取装置2、画像読取装置2と接続された帳票処理装置3を備える。ここで、本実施の形態の帳票処理システム1は、例えば金融機関や公共機関等における帳票処理に用いられている。
【0019】
画像読取装置2は、例えば、イメージスキャナであり、帳票を光学的に読み取り、帳票処理装置3に送出する。
【0020】
帳票処理装置3は、例えば、ワークステーション、サーバ、パーソナルコンピュータ等のコンピュータの機能を備えており、後述する帳票処理を実行する。
【0021】
図2は、本実施の形態における帳票処理装置の構成を示す図である。
図2において、帳票処理装置3は、制御部20、スキャナ制御部21、項目位置特定部22、文字認識処理部23、認識結果表示部24、及び特定項目処理部25を備える。
【0022】
制御部20は、スキャナ制御部21、項目位置特定部22、文字認識処理部23、認識結果表示部24及び特定項目処理部25による一連の処理を制御する。
【0023】
スキャナ制御部21は、画像読取装置2を制御し、帳票の記載面を帳票画像データとして取得する。
【0024】
文字認識処理部23は、スキャナ制御部21によって取得した帳票画像データから、帳票記載面に記載されている文字を認識する。その際、帳票に記載された文字の認識には、文字認識辞書26を使用する。この文字認識処理は、公知の文字認識技術を使用することが可能であるので、詳細な説明は省略する。
【0025】
認識結果表示部24は、文字認識処理部23における文字認識結果を帳票処理装置3のディスプレイ上に表示させる制御を行う。
【0026】
項目位置特定部22は、文字認識処理部23で認識された文字列、例えば「依頼人」等の項目名、その「依頼人」項目に対応する「依頼人名」が記載されている位置を特定する。
【0027】
特定項目処理部25は、位置が特定された文字列の属性を判断し、その属性に基づいて認識された文字列を帳票に記載された特定の内容項目として取得する。また、特定項目処理部25は、キーワードテーブル27を参照して、その文字列が予め定められた項目名を含むか否かを判断する。
【0028】
図3は、本実施の形態における帳票処理装置のハードウェア構成図である。
図3において、帳票処理装置3は、CPU(Central Processing Unit)201、入力装置202、出力装置203、ROM(Read Only Memory)204、RAM(Random Access Memory)205、インターフェース(I/F)206がバス207に接続されて構成されている。
【0029】
入力装置202は、例えば、キーボード、ジョイスティック、ライトペン、マウス、タッチパッド、タッチパネル、トラックボール等、各種のデータや信号等を入力する。
【0030】
出力装置203は、例えば、LCD(Liquid Crystal Display)等の各種ディスプレイ、プリンタ等、画像やその他の情報を出力する。
【0031】
ROM204は、帳票処理装置3において実行する帳票処理を実行するプログラムの他、帳票処理装置3の各機能を制御し実行するための制御プログラム及びテーブルデータなどを収納する。
【0032】
RAM205は、出力装置203用のフレームバッファや一部のアプリケーションプログラム等を格納する。
【0033】
インターフェース206は、USB(Universal Serial Bus)等のシリアルインターフェースやイーサネット(登録商標)等のパラレルインターフェース等、外部機器と接続するためのユニットである。
【0034】
CPU201は、これらの各部を制御している。
本実施の形態における帳票処理は、前述した帳票処理装置3によって実行される。
【0035】
図4は、本実施の形態における帳票処理装置の機能ブロック図である。
図4において、帳票処理装置3は、画像読取部31、罫線抽出部32、セル領域認識部33、文字列認識部34、行情報取得部35、文字列属性判断部36、内容項目取得部37、および項目名判断部38を備える。帳票処理装置3は、コンピュータの機能を備えており、帳票処理プログラムに従って後述する帳票処理を実行する。帳票処理装置3は、金融機関や公共機関をはじめとする様々な組織において使用する、各種の帳票を処理する。処理する帳票は、例えば、独自にレイアウトした私製帳票を含む。
【0036】
画像読取部31は、イメージスキャナ等の画像読取装置2に帳票を読み取らせて帳票画像を取得する。
【0037】
罫線抽出部32は、画像読取部31によって読み取らせた帳票画像から縦罫線および横罫線を抽出する。例えば、縦罫線であれば、縦方向に連続する画素、すなわち縦方向の直線があるか否かを抽出し、その結果を縦罫線抽出結果として出力する。また、横罫線であれば、横方向に連続する画素、すなわち横方向の直線があるか否かを抽出し、その結果を横罫線抽出結果として出力する。
【0038】
セル領域認識部33は、罫線抽出部32によって抽出された縦横罫線に基づいてセル領域を認識する。例えば、2本の縦罫線と2本の横罫線で囲われた領域をセル領域として認識する。
【0039】
文字列認識部34は、帳票の帳票画像に対して文字認識処理を実行して文字列を認識する。文字列認識部34は、例えば、セル領域認識部33によって認識されたセル領域毎に文字認識処理を実行して文字列を認識する。文字認識処理は、一般的には、画像を解析し、その中に含まれる文字に相当するパターンを検出し、書かれている内容を文字データとして取り出す処理を実行する。その際、文字の画像特徴と識別情報とを対応付けて格納した文字認識辞書26を利用する。
【0040】
行情報取得部35は、文字列認識部34によって認識された文字列から構成される行情報を取得する。
【0041】
文字列属性判断部36は、文字列認識部34によって認識された文字列の属性を判断する。文字列属性判断部36は、例えば、行情報取得部35によって取得された行情報毎に文字列認識部34によって認識された文字列の属性を判断する。文字列の属性には、漢字、ひらがな、カタカナ、英字(アルファベット)、数字、記号等の属性がある。
【0042】
内容項目取得部37は、文字列属性判断部36によって判断された属性に基づいて、文字列認識部34によって認識された文字列を帳票に記載された特定の内容項目として取得する。例えば、文字列属性判断部36によって判断された属性が「カタカナ」であれば、キーワードテーブル27を参照して、文字列認識部34によって認識された文字列を「依頼人のカナ氏名」の内容項目として取得することができる。
【0043】
項目名判断部38は、文字列認識部34によって認識された文字列が予め定められた項目名を含むか否かを、キーワードテーブル27を参照して判断する。
【0044】
内容項目取得部37は、セル領域認識部33によって認識されたセル領域内で、行情報取得部35によって2以上の行情報が取得された場合、文字列属性判断部36によって判断された属性に基づいて、文字列認識部34によって認識された文字列を帳票に記載された特定の内容項目として取得する。内容項目取得部37は、項目名判断部38によって項目名を含まないと判断された文字列を帳票に記載された特定の内容項目として取得する。
【0045】
なお、キーワードテーブル27および文字認識辞書26は、帳票処理装置3が備えていても良いし、外部の記憶装置に格納されていても良い。
【0046】
次に、
図5乃至
図25を用いて、本実施の形態を詳細に説明する。
図5は、帳票の例を示す図である。
図6は、本実施の形態における帳票処理の流れを示すフローチャートである。
図7は、抽出された縦横罫線の例を示す図である。
図8は、抽出されたセル領域の例を示す図である。
図9は、認識された文字列の例を示す図である。
図10は、キーワードテーブルの例を示す図である。
図11は、抽出された見出し項目の例を示す図である。
図12は、1つのセル領域に複数の見出し項目が存在する例を示す図である。
図13は、帳票処理のサブルーチン「複数項目特定処理」の流れを示すフローチャートである。
図14は、起点セルの例を示す図である。
図15は、探索範囲決定条件の例を示す図である。
図16は、複数項目特定処理のサブルーチン「探索範囲決定処理」の流れを示すフローチャートである。
図17は、決定された探索範囲の例を示す図である。
図18は、複数項目特定処理のサブルーチン「行情報取得処理」の流れを示すフローチャートである。
図19および
図20は、行情報を取得する処理を説明するための図である。
図21は、取得された行情報の例を示す図である。
図22は、行情報の属性の例を示す図である。
図23は、複数項目特定処理のサブルーチン「無効化処理」の流れを示すフローチャートである。
図24は、無効化された行情報の例を示す図である。
図25は、抽出された項目の例を示す図である。
【0047】
本実施の形態における帳票処理は、
図1乃至4を用いて説明した帳票処理装置3が帳票処理プログラムに従って実行する。帳票処理装置3は、定義体が登録されていない私製の帳票を対象とする。例えば、
図5に示すように、縦および横の罫線で囲われた1つの矩形領域内に、「使用者コード」と「フリガナ」等の複数の見出し項目と、これらの見出し項目に対応する内容項目「12345678」と「トウキョウタロウ」がそれぞれ存在する帳票を対象とする。
【0048】
まず、帳票処理装置3が備える制御部20は、
図6のステップS601において、スキャナ制御部21によって取得した帳票画像の全体から罫線を抽出する。
図5に示した帳票の帳票画像から罫線を抽出すると、
図7に示したような抽出結果が得られる。罫線の抽出は、例えば、縦罫線と横罫線をそれぞれ抽出する。
【0049】
制御部20は、ステップS602において、ステップS601で抽出された縦罫線と横罫線に基づいてセル領域を認識する。例えば、2本の縦罫線と2本の横罫線で囲われた領域をセル領域として認識する。認識されたセル領域には、それぞれ固有の識別子(ID)を付与する。また、認識されたセル領域の数を変数「セルMAX」に代入する。
図5に示した帳票の場合は、
図8に示すように、セル領域C1乃至C25の25個のセル領域が認識され、それぞれ「セル1」乃至「セル25」のIDが付与される。そして、変数「セルMAX」には「25」が代入される。
【0050】
制御部20は、ステップS603において、スキャナ制御部21によって取得した帳票画像から、帳票に記載されている文字を認識する。例えば、ステップS602で抽出されたセル領域毎に文字認識処理を実行して文字を認識する。そして、各セル領域内で認識された文字数および、帳票画像における各文字の位置情報(例えば、左上座標(x、y)、右下座標(x、y))をそれぞれ保持しておく。
図5に示した帳票の場合は、
図9に示すような文字認識結果が得られる。
【0051】
制御部20は、ステップS604において、ステップS603で認識した文字列のうち、定義体情報が登録されていない帳票のOCR処理における、項目位置特定に必要な「見出し項目」を抽出する。例えば、
図10に示したようなキーワードテーブル27を参照して、キーワードテーブル27の「見出し文字」に登録された文字列を抽出する。
【0052】
キーワードテーブル27は、
図10に示すように、「項目名」毎に「項目No」が「1」乃至「11」に分類されている。各「項目No」は、その「項目名」として帳票に記載される可能性のある文字列候補が対応付けられている。例えば、「項目No」が「1」には、「銀行名」として帳票に記載される可能性のある文字列候補「銀行名」「振込先銀行名」等が対応付けられている。また、OCR処理対象の「文字属性」(例えば、「漢字」「カナ」等)が対応付けて格納されている。
【0053】
このステップS604の見出し項目抽出では、
図9に示した文字認識結果の場合、
図11に示すように、「銀行名」「支店名」「受取人」「口座番号」「振込依頼人」「使用者コード」「フリガナ」「住所」「TEL」の認識文字列が抽出される(
図11中の破線内)。例えば、セル領域C6内で文字認識された「銀行名」は、キーワードテーブル27の「項目No」「1」の「見出し文字」に登録されているので、見出し項目「銀行名」が抽出される。ここで抽出された見出し項目は、定義体情報が登録されていない帳票のOCR処理における見出し項目の対象となる。
【0054】
次に、制御部20は、帳票の見出し項目とその見出し項目に対応する内容項目とを対応付けて取得するために、ステップS605乃至S609を実行する。例えば、
図5中の見出し項目「フリガナ」と内容項目「トウキョウタロウ」とを対応付けて取得するために実行する。ステップS605乃至S609の処理は、例えば、キーワードテーブル27の「項目No」毎に実行する。
図10に示した例では「項目No」の1から11までを繰返し実行する。
【0055】
まず、ステップS605において、繰返し実行している処理中の「項目No」中に、ステップS604で抽出した見出し項目と一致する「見出し文字」が含まれるか否かを判断する。例えば、キーワードテーブル27(
図10)の「項目No」「1」の処理中に、「見出し文字」にステップS604で抽出した「銀行名」が含まれるので、ステップS605の判断は「Yes」となり、ステップS606に進む。
【0056】
他方、繰返し実行している処理中の「項目No」中に、ステップS604で抽出した見出し項目と一致する「見出し文字」が含まれないと判断された場合(ステップS605:No)、次の「項目No」に進む。
【0057】
繰返し実行している処理中の「項目No」中に、ステップS604で抽出した見出し項目と一致する「見出し文字」が含まれると判断された場合(ステップS605:Yes)、ステップS606において、ステップS605で「見出し文字」が含まれると判断されたセル領域中に、他の「項目No」の「見出し文字」が含まれるか否かを判断する。
【0058】
ステップS606で含まれていないと判断された場合(ステップS606:No)は、1つの矩形領域内に1つの見出し項目しか存在しないので、ステップS607において、従来の定義体情報が登録されていないOCR処理と同様の処理を実行する。この従来の処理については説明を省略する。
【0059】
他方、ステップS606で含まれると判断された場合(ステップS606:Yes)、1つの矩形領域内に複数の見出が存在するので、ステップS608において、後述するステップS609の「複数項目特定処理」を実行したか否かを判断する。例えば、「見出し文字」「フリガナ」が登録されている「項目No」「9」の処理においては、
図12に示したように、セル領域C20に「項目No」「10」の「見出し文字」「使用者コード」が含まれている。このステップS608の判断は、重複して処理することを回避するためである。
【0060】
ステップS608で既に実行済みであると判断された場合(ステップS608:Yes)、次の「項目No」に進む。
【0061】
他方、ステップS608で未だ実行済みでないと判断された場合(ステップS608:No)、ステップS609において、サブルーチン「複数項目特定処理」を実行した後、次の「項目No」に進む。
図5に示した帳票の例では、サブルーチン「複数項目特定処理」が実行されるのは「項目No」「9」における処理のみである。「複数項目特定処理」については、
図13を用いて詳細に説明する。
【0062】
キーワードテーブル27の項目数だけステップS605乃至S609を実行した後、制御部20は、ステップS610において、認識結果を認識結果表示部24に通知する。
【0063】
次に、ステップS609で実行するサブルーチン「複数項目特定処理」について、
図13を用いて詳細に説明する。
【0064】
制御部20は、ステップS1301において、処理中の見出し文字の中で特定の見出し文字が含まれるセル領域を起点となるセル領域として特定する。起点となるセル領域は、ステップS1302で実行するサブルーチン「探索範囲決定処理」を行う上で基準となるセル領域である。通常、帳票の見出し項目は、左から右に向かって大見出し、中見出し、小見出しと階層的な構成をとるので、処理「項目No」中の見出し文字の中で帳票の一番左側にある見出し文字が含まれるセル領域を起点セル領域SCとして特定する。例えば、矩形状の起点セル領域SCの位置情報の値(左上角部(start)の座標SCs(SCsx、SCsy)と右下角部(end)の座標SCe(SCex、SCey)をメモリ上に格納する。本サブルーチン「複数項目特定処理」が実行されるのは、上述の例では「項目No」「9」の処理中であるので、
図14に示すように、「項目No」「9」中の見出し文字「フリガナ」「振込依頼人」の中で一番左側にある見出し文字は「振込依頼人」である。したがって、見出し文字「振込依頼人」が含まれるセル領域C19を起点セル領域SCとして保持する。
【0065】
制御部20は、ステップS1302において、サブルーチン「探索範囲決定処理」を実行する。「探索範囲決定処理」については、
図16を用いて詳細に説明する。
【0066】
制御部20は、ステップS1303において、サブルーチン「行情報取得処理」を実行する。「行情報取得処理」については、
図18を用いて詳細に説明する。
【0067】
制御部20は、ステップS1304において、サブルーチン「無効化処理」を実行する。「無効化処理」については、
図23を用いて詳細に説明する。
【0068】
図15に例示した探索範囲決定条件を用いて、
図16に示すサブルーチン「探索範囲決定処理」について説明する。
図15に例示した探索範囲決定条件は、
図5に例示したような「振込依頼書」の条件例である。
【0069】
まず、
図16のステップS1601において、1つの矩形領域内に複数の見出し項目とこれらの見出し項目に対応する内容項目とが存在する範囲を探索するために、変数SRsx、SRsy、SRex、SReyを0で初期化する。例えば、変数SRsx、SRsy、SRex、SReyは、帳票画像の左上を原点(0、0)とした場合の、探索する範囲(後述する探索範囲1701:
図17参照)の左上角部の座標SRs(SRsx、SRsy)と右下角部の座標SRe(SRex、SRey)それぞれのx座標及びy座標の値に対応する。
【0070】
次に、制御部20は、予め定められた条件に従って、探索する範囲の上端、下端、左端、右端を決定する。例えば、
図15に例示するような条件に従い、ステップS1602乃至S1607を実行する。
【0071】
まず、制御部20は、ステップS1602において、
図15の条件に従って、探索する範囲のうち上端を決定するために、探索範囲のSRsyに起点セル領域SCのSCsyの値を代入する。これにより、探索範囲の上端の座標SRsyが定まる。すなわち、起点セル領域SCの上端が探索範囲の上端となる。
【0072】
制御部20は、ステップS1603において、
図16の条件に従って、探索する範囲のうち下端を決定するために、探索範囲のSReyに起点セル領域SCのSCeyの値を代入する。これにより、探索範囲の下端の座標SReyが定まる。すなわち、起点セル領域SCの下端が探索範囲の下端となる。
【0073】
制御部20は、ステップS1604において、
図16の条件に従って、探索する範囲のうち左端を決定するために、探索範囲のSRsxに起点セル領域SCのSCexの値を代入する。これにより、探索範囲の左端の座標SRsxが定まる。すなわち、起点セル領域SCの右端が探索範囲の左端となる。
【0074】
そして、制御部20は、
図16の条件に従って、探索する範囲のうち右端を決定するために、ステップS1605乃至S1607を実行する。ステップS1605乃至S1607の処理は、例えば、
図6のS602で変数「セルMAX」代入されたセル領域の数(
図8に示した例ではセル領域C1からC25まで)だけ繰返し実行する。
図8に示した例では、1番目のセル領域C1から25番目のセル領域25までを、初期値1の変数xをインクリメントしながらステップS1605乃至S1607の処理を繰返す。
【0075】
ステップS1605において、x番目のセル領域のC[x]syが探索範囲のSRsy以上であり、かつ、x番目のセル領域のC[x]eyが探索範囲のSRey以下であるか否かを判断する。すなわち、x番目のセル領域が起点セル領域SCの上端と下端の間に入っているか否かを判断する。
【0076】
x番目のセル領域のC[x]syが探索範囲のSRsy以上でないか、または、x番目のセル領域のC[x]eyが探索範囲のSRey以下でないと判断された場合(ステップS1605:No)、繰返し処理を続ける。すなわち、x番目のセル領域が起点セル領域SCの上端と下端の間に入っていない場合、繰返し処理を続ける。
【0077】
他方、x番目のセル領域のC[x]syが探索範囲のSRsy以上であり、かつ、x番目のセル領域のC[x]eyが探索範囲のSRey以下であると判断された場合(ステップS1605:Yes)、ステップS1606に進む。すなわち、x番目のセル領域が起点セル領域SCの上端と下端の間に入っている場合、ステップS1606に進む。
【0078】
ステップS1606において、x番目のセル領域のC[x]exが、起点セル領域SCのSCexより大きいか否かを判断する。すなわち、x番目のセル領域が起点セル領域SCの右端より右にあるか否かを判断する。
【0079】
x番目のセル領域のC[x]exが、起点セル領域SCのSCexより大きくないと判断された場合(ステップS1606:No)、繰返し処理を続ける。すなわち、x番目のセル領域が起点セル領域SCの右端より右にない場合、繰返し処理を続ける。
【0080】
他方、x番目のセル領域のC[x]exが、起点セル領域SCのSCexより大きいと判断された場合(ステップS1606:Yes)、ステップS1607において、探索範囲のSRXexに、x番目のセル領域のC[x]exの値を代入する。
【0081】
これにより、
図5に示した帳票の場合は、
図17に示すように、起点セル領域SC(セル領域C19)についての探索範囲1701が決定する。上述の例では、探索範囲1701の左上角部の座標SRsのx座標値「SRsx」とy座標値「SRsy、右下角部の座標SReのx座標値「SRex」とy座標値「SRey」が決定する。探索範囲1701は、セル領域C20乃至C23を含む。探索範囲1701は、サブルーチン「行情報取得処理」の対象となる。
【0082】
図18を用いてサブルーチン「行情報取得処理」について説明する。
まず、ステップS1801において、行情報の数を入力するための変数zを1で初期化する。
【0083】
次に、制御部20は、サブルーチン「探索範囲決定処理」で決定した探察範囲について、行情報を取得するために、ステップS1802乃至S1808を実行する。例えば、
図6のS602で変数「セルMAX」代入されたセル領域の数だけ繰返し実行する。
図8に示した例では、1番目のセル領域C1から25番目のセル領域25までを、初期値1の変数xをインクリメントしながらステップS1802乃至S1808の処理を繰返す。
【0084】
ステップS1802において、x番目のセル領域が探索範囲内か否かを判断する。例えば、x番目のセル領域のC[x]syが探索範囲のSRsy以上、x番目のセル領域のC[x]eyが探索範囲1701のSRey以下、x番目のセル領域のC[x]sxが探索範囲1701のSRsx以上、および、x番目のセル領域のC[x]exが探索範囲1701のSRex以下の全ての条件を満たすか否かを判断する。
図17に示して例では、セル領域C20乃至C23が前述の全ての条件を満たす。すなわち、セル領域C20乃至C23が探索範囲1701内であると判断される。それ以外のセル領域C1乃至C19、C24、C25は、探索範囲1701内に無いと判断される。
【0085】
前述の条件の何れかを満たさない場合(ステップS1802:No)、繰返し処理を続ける。
【0086】
他方、前述の全ての条件を満たす場合(ステップS1802:Yes)、ステップS1803において、セル領域内の文字数を入力するための変数yを1で初期化し、ステップS1804乃至S1808の繰返し処理に進む。変数yをインクリメントしながら、セル領域内の文字数分、ステップS1804乃至S1808が繰り返される。例えば、
図19に示すように、セル領域C
21の場合は、文字数が21であるので、ステップS1804乃至S1808が21回繰り返される。
【0087】
ステップS1804において、セル領域内の文字数を入力するための変数yが1であるか否かを判断する。
【0088】
変数yが1であると判断された場合(ステップS1804:Yes)、すなわち、1文字目の場合、ステップS1805において、z行目の行情報の領域を獲得する。例えば、z番目の行(z行目)のGsxにy番目の文字(y文字目)のLsxを代入し、z行目のGsyにy文字目のLsyを代入し、z行目のGexにy文字目のLexを代入し、z行目のGeyにy文字目のLeyを代入する(
図19を参照)。更に、z行目の変数「文字属性」に、
図6のステップS603で文字認識したy文字目の文字の属性を代入する。
【0089】
他方、変数yが1でないと判断された場合(ステップS1804:No)、すなわち、2文字目以降の場合、ステップS1806において、1つ前の文字との間隔が所定値未満であるか否かを判断する。例えば、
図20に示したように、条件Aとして、1つ前の文字との縦(y)方向の間隔がMドット未満、かつ、1つ前の文字との横(x)方向の間隔がNドット未満であるか否かを判断する。
【0090】
1つ前の文字との間隔が所定値未満であると判断された場合(ステップS1806:Yes)、ステップS1807において、z行目のGexにy文字目のLexを代入し、z行目のGeyにy文字目のLeyを代入し、z行目の変数「文字属性」に、
図6のステップS603で文字認識したy文字目の文字の属性を代入する。
【0091】
他方、1つ前の文字との間隔が所定値未満でないと判断された場合(ステップS1806:No)、ステップS1808において、zをインクリメントして、z行目の行情報の領域を獲得する。例えば、z番目の行(z行目)のGsxにy番目の文字(y文字目)のLsxを代入し、z行目のGsyにy文字目のLsyを代入し、z行目のGexにy文字目のLexを代入し、z行目のGeyにy文字目のLeyを代入する。更に、z行目の変数「文字属性」に、
図6のステップS603で文字認識したy文字目の文字の属性を代入する。例えば、1つ前の文字とのy方向の間隔がMドット以上であるか、または、1つ前の文字とのx方向の間隔がNドット以上である場合、1つ前の文字との間隔が所定値未満でないと判断される。すなわち、1つ前の文字と文字位置の高さがずれていたり、間隔が開き過ぎていたりした場合が該当する。
【0092】
サブルーチン「行情報取得処理」により、探索範囲1701内のセル領域C20乃至C23について、
図21に示すような、行情報L1乃至L11を得ることが出来る。また、
図22に示すように、行情報L1乃至L11における「文字属性」を取得することができる。
【0093】
図23を用いてサブルーチン「無効化処理」について説明する。
制御部20は、サブルーチン「行情報取得処理」で取得した行について、無効化の処理をするために、ステップS2301乃至S2304を実行する。例えば、
図6のS602で変数「セルMAX」代入されたセル領域の数だけ繰返し実行する。
【0094】
ステップS2301において、x番目のセル領域が探索範囲内か否かを判断する。例えば、x番目のセル領域のC[x]syが探索範囲のSRsy以上、x番目のセル領域のC[x]eyが探索範囲1701のSRey以下、x番目のセル領域のC[x]sxが探索範囲1701のSRsx以上、および、x番目のセル領域のC[x]exが探索範囲1701のSRex以下の全ての条件を満たすか否かを判断する。
図17に示し
た例では、セル領域C20乃至C23が前述の全ての条件を満たす。すなわち、セル領域C20乃至C23が探索範囲1701内であると判断される。それ以外のセル領域C1乃至C19、C24、C25は、探索範囲1701内にないと判断される。
【0095】
前述の条件の何れかを満たさない場合(ステップS2301:No)、繰返し処理を続ける。
【0096】
他方、前述の全ての条件を満たす場合(ステップS2301:Yes)、ステップS2302乃至S2304の繰返し処理に進む。行情報の数を入力するための変数zをインクリメントしながら、セル領域内の行数分、ステップS2302乃至S2304が繰り返される。
【0097】
ステップS2302において、文字属性が一致するか否かを判断する。具体的には、z行目の文字列の文字属性と処理中の「項目No」の文字属性が一致するか否かを判断する。また、z行目の文字列の文字属性と処理中の「項目No」と対となる項目の文字属性が一致するか否かを判断する。何れかが一致すると判断された場合(ステップS2302:Yes)、例えば、z行目の文字列の文字属性と処理中の「項目No」の文字属性が一致した場合は、ステップS2303に進む。他方、何れも一致しないと判断された場合(ステップS2302:No)、繰返し処理を続ける。
【0098】
ステップS2303において、文字属性が一致したz行目に見出し文字列が含まれるか否かを判断する。含まれると判断された場合(ステップS2304:Yes)、特定したい文字列ではないため、ステップS2304において、z行目を有効な文字列として変数「候補セル[y]」に代入する。
【0099】
サブルーチン「無効化処理」により、探索範囲1701内のセル領域C20乃至C23について、
図21に示すような、行情報L1乃至L11を得ることが出来る。また、
図24に示すように、行情報L1、L2、L5乃至L11が無効化され、
図25に示すように、セル領域C21中の行情報L3およびL4だけが無効化されない。
【0100】
図13の説明に戻る。
制御部20は、ステップS1305において、変数「候補セル[y]」を参照し文字属性が一致した項目を内容項目に割り当てる。例えば、
図5に示した帳票の例では、「使用者コード」および依頼人の「フリガナ」が特定される。
【0101】
上述した帳票処理は、帳票処理装置3が帳票処理プログラムに従って実行する。本実施の形態における帳票処理によれば、帳票の記入枠などのレイアウト情報を参照することなく、数字などの文字属性、「フリガナ」などの見出し文字を利用して、例えば、帳票の「使用者コード」や「フリガナ」の配置を考慮して、見出し項目「フリガナ」に対応する内容項目「トウキョウタロウ」の位置を特定することが出来る。また、「使用者コード」と「フリガナ」が1つの領域に記入されるレイアウトであっても、内容項目「トウキョウタロウ」の位置を特定し、文字認識結果を通知することでオペレータのデータエントリーの効率化を図ることが出来る。
【0102】
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、本発明が適用される帳票処理装置は、前述の実施の形態に限定されない。
【0103】
前述してきた本発明の実施の形態は、帳票処理装置の一機能としてハードウェアまたはDSP(Digital Signal Processor)ボードやCPUボードでのファームウェアもしくはソフトウェアにより実現することができる。
【0104】
また、本発明が適用される帳票処理装置は、その機能が実行されるのであれば、前述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、LAN、WAN等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【0105】
また、バスに接続されたCPU、ROMやRAMのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムを記録したROMやRAMのメモリ、外部記録装置、可搬記録媒体を、帳票処理装置に供給し、その帳票処理装置のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
【0106】
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
【0107】
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、DVD−RAM、磁気テープ、不揮発性のメモリーカード、ROMカード、電子メールやパソコン通信等のネットワーク接続装置(言い換えれば、通信回線)を介して記録した種々の記録媒体などを用いることができる。
【0108】
また、コンピュータ(情報処理装置)がメモリ上に読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【0109】
さらに、可搬型記録媒体から読み出されたプログラムやプログラム(データ)提供者から提供されたプログラム(データ)が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
【0110】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成又は形状を取ることができる。