JP3028833B2 - 文書処理方式およびプログラム自動生成方法 - Google Patents

文書処理方式およびプログラム自動生成方法

Info

Publication number
JP3028833B2
JP3028833B2 JP2-175246A JP17524690A JP3028833B2 JP 3028833 B2 JP3028833 B2 JP 3028833B2 JP 17524690 A JP17524690 A JP 17524690A JP 3028833 B2 JP3028833 B2 JP 3028833B2
Authority
JP
Japan
Prior art keywords
data
input
format
field
character
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2-175246A
Other languages
English (en)
Other versions
JPH03179570A (ja
Inventor
晴夫 武田
雅幸 土屋
仁 鈴木
昇司 山田
敏彦 松田
洋 藤瀬
恵章 久野
一太郎 小合
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH03179570A publication Critical patent/JPH03179570A/ja
Application granted granted Critical
Publication of JP3028833B2 publication Critical patent/JP3028833B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、画像データに利用する文書データ処理方式
に関し、更に詳しくは、例えば一般の事務処理分野で、
キーボードからデータベースへのデータ入力、あるいは
キーボードやデータベースからのデータ出力のために必
要とされる、文字データの入力あるいは出力のための空
欄をもつ所定の書式を備えた文書(帳票)の作成のため
のデータ処理方式、及びデータ処理方法に関する。
〔従来の技術〕
ワークステーション、オフィスプロセッサ、パーソナ
ルコンピュータ、あるいはワードプロセッサなどのオフ
ィス機器を利用して、例えば、各種の申込み書、データ
入力票、請求伝票や領収書、あるいは会計、統計、内訳
などのための所定の書式をもつ文書(帳票)を発行した
り、画面上に表示された上記文書のフォーマットを利用
してデータベースにデータを入力しようとする場合、デ
ータ入出力のための空欄をもつ帳票の書式を上述したオ
フィス機器の表示画面上に定義する必要がある。
従来の代表的な書式定義方法は、例えば日立製作所発
行のマニュアルで、ETOILE/OPと題する文献に記載され
ているように、ディスプレイ上でカーソル等を移動させ
て罫線や文字を定義し、さらにプログラムのエディタ等
を用いてこれを発行するためのプログラムを作成編集す
るものである。
〔発明が解決しようとする課題〕
このような従来技術では、機器にとって未知の書式の
帳票を発行したり、書式画面を利用したデータ入力環境
をつくるためには、大きな時間とプログラムに関する専
門的知識および経験を要する。未知の書式は機器の初期
導入ばかりでなく、例えば取引先から指定伝票という形
で指定される場合など、日常的に生じる。このためその
簡単化と高速化が大きな課題となっていた。
尚、OCRで文字読取りを行なうための書式データを、
文書画像データから自動的に生成するようにした文書解
析方式が、本件出願人により、特願昭59−180517号とし
て出願されている。
上記文書解析方式では、文書画像データから、文書に
含まれる線パターンで構成された表形式の物理的な構造
を認識した後、上記表形式を構成している矩形のセル領
域(先願の明細書では、これを枠と言っている)の種
類、属性および従属書係を分析することにより、文書の
論理的な構造の認識も行なわれている。しかしながら、
上記従来技術で行なわれている論理構造の認識は、OCR
への適用を目的としたものであり、セルの種類(項目名
称を設定するためのセルか、データを設定するためのセ
ルかの区別)、セルの属性(セル内に記入される文字の
種類および許容範囲)、およびセル間の従属関係を分析
するに留まっている。
本発明の目的は、オペレータが画面上に表示された書
式表示を参照して、データをデータ処理装置にキー入力
するための文書書式情報を容易に得られるようにした帳
票あるいは書式文書データの処理方法および装置を提供
することにある。
本発明の他の目的は、オペレータがキー入力したデー
タ、あるいはデータファイルから読出されたデータを書
式中の所定の空欄に設定した形の文書を印刷あるいは表
示するのに適した、帳票あるいは書式文書のためのデー
タ処理方法および装置を提供することにある。
本発明の更に他の目的は、データを入力あるいは出力
するための空欄(データ入出力フィールド)の有する所
定のフォーマットの書式表示を参照しながらオペレータ
がデータ処理装置にデータを入力するための、あるい
は、データ入力された帳票を出力するためのデータ処理
プログラムを、オペレータの簡単な操作により生成する
のに適したプログラム自動生成方法および装置を提供す
ることにある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明による帳票あるい
は書式文書の処理方式では、画像入力手段から直接的
に、あるいは他のシステムを介して間接的に供給された
帳票あるいは書式文書の画像を処理するためのプロセッ
サと、表示手段と、オペレータ操作手段とを備えたデー
タ処理システムを用い、固定データまたは可変データを
記入するためのフィールド部分を含む帳票あるいは書式
文書の画像を、上記プロセッサに予め用意された書式認
識プログラムに従って処理させ、入力画像情報から文書
の構造を自動的に認識する。
入力文書の書式認識は、例えば、線分、文字あるいは
円弧などのパターン配置、すなわち入力文書の図形構造
を識別するための物理構造認識と、この物理構造認識結
果に基づいて行なわれる入力文書の論理構造認識とから
なる。ここで言う論理構造は、例えば、帳票中に含まれ
る表(テーブル)の行桁構造やフィールドなどの意味に
及ぶ構造を意味する。この論理構造の認識結果を用いる
ことにより、例えば、表示画面上でオペレータが1つの
フィールドにデータの入力を完了したとき、カーソルを
次のフィールドに自動的に移動させたり、ファイルに予
め準備されたデータを該当するフィールドに正しく設定
したりすることができる。
上記論理構造認識について更に詳述すると、この認識
処理では、例えば可変データを入力するための入出力フ
ィールドと、固定データあるいは項目名称が記入されて
いる固定フィールドとを識別するためのフィールド認識
と、入出力フィールドと固定フィールドあるいはフィー
ルド名称とを対応づけるためのフィールド関係認識と、
知識ベースを参照して入出力フィールド属性認識とが行
なわれる。
本発明によれば、入力文書の論理構造として、各入出
力フィールドに設定すべきデータの供給源を識別するよ
うにしているため、例えば「商品コード」、「商品
名」、「単価」、「数量」、「金額」の記入欄をもつ書
式文書画像を認識処理して、オペレータが商品コードと
数量を入力するだけで、他の欄をデータファイルからの
読出しデータ、あるいは計算結果で自動的に満たすこと
のできるデータ入力用、あるいは帳票発行用のデータ処
理システムを実現することができる。また、上述した文
書の物理構造と論理構造の認識結果を利用することによ
り、データ入力用あるいは帳票出力処理のためのプログ
ラムを自動的に生成することもできる。
本発明の他の特徴は、帳票あるいは書式文書の論理構
造認識の1つとして、物理構造の認識結果を示すデータ
に基づいて、表形式の行方向の寸法、および各入出力フ
ィールドの桁寸法を、表示画面上でのカーソルの基本ピ
ッチあるいは文字ピッチに適合するように修正した正規
化された書式表示を得ることにある。文書の構造データ
とは別に、このように画面上でのデータ入力に適した正
規化された書式表示を生成することにより、データ入力
のためのオペレータのキー操作、およびキーボードある
いはプログラム処理により生成されたデータの画面への
出力が容易になる。
尚、書式文書上の各入出力フィールドに記入できる文
字のサイズ、文字数、および文字ピッチは、各入出力フ
ィールドの物理サイズと、各入出力フィールドに設定さ
れるデータの種類(これは、各入出力フィールドに与え
るべきフィールド名称により決まる)とにより決定でき
る。これらの文字サイズ、文字数、文字ピッチを示す情
報は、フィールド属性の1部として記憶され、上記行桁
の正規化処理は上記フィールド属性を参照して行なわれ
る。
書式表示上の入出力フィールドに設定された文字デー
タは、入力文書の物理構造認識データで定義される文書
フォーマットに、上記フィールド属性で定義されている
文字サイズ、文字ピッチでもって組み合わされ、プリン
タに出力される。これにより、データ入力操作時に画面
上に出力された文字サイズおよび書式表示とは異なる入
力文書と同一フォームの印刷を、空白部にフィールドサ
イズに応じたサイズの文字で満たした形で得ることがで
きる。
本発明において、物理構造認識により得られた文書デ
ータは、キー操作により罫線の移動や消去、文字の変
更、追加、消去を可能とした書式表示を表示画面に産み
出す。従って、オペレータは、表示画面上の書式表示の
1部を修正するための操作を行なうことにより、原文書
とは部分的に異なる書式文書について、上述した論理構
造認識とプログラム自動生成を行なわせることができ
る。
〔作用〕
本発明によれば、例えば罫線により区画された複数の
フィールド(欄)からなる表と、これらのフィールドの
内、あるいは外に記入された文字列とを含む原紙を用
い、これを画像入力装置に入力してプロセッサに画像処
理を行なわせることにより、入力文書の構造を自動的に
認識し、表面画面上に書式表示を行なう。オペレータ
は、キー操作により、画面上で書式データの一部を修正
したり、追加したりすることができるため、書式設計作
業を大幅に改善できる。
また、上記認識結果を利用してデータ入力用、あるい
は帳票発行用の実用的なプログラム、あるいは担当者が
若干の修正を施こすだけで実用できる程度に完成された
プログラムを自動的に生成できるため、書式の変更ある
いは新設に伴なうプログラム開発作業を迅速に済ませる
ことができる。
〔実施例〕
以下本発明の実施例を説明する。
第1図は、本発明の帳票処理装置のハードウェアの構
成の1例を示す。図において、91はオペレータからのコ
マンドを入力するためのディスプレス画面とキーボード
とを備えたコンソール、92は帳票処理を実行するための
プロセッサ、93は画像データをメモリに取り込むための
画像入力装置、94は画像入力装置93のコントローラ、95
はメモリ上のデータを印刷するためのプリンタ、96はプ
リンタ95のコントローラ、97はプロセッサ92が実行する
プログラムを格納するためのメモリ、98はプロセッサ92
が使用する各種データを格納するためのメモリ、99は各
種の数値データや文書(帳票)データを格納するための
メモリ(例えばディスク装置)、90は上記プロセッサ92
とその他の要素とを相互に接続するためのバスである。
メモリ97は、帳票処理の全体動作を制御するためのメイ
ンプログラムを格納する全体制御部970と、画像を入力
するためのサブルーチンプログラムを格納する画像入力
部971と、帳票の書式を認識するためのサブルーチンプ
ログラムを格納する帳票書式認識部972と、帳票を作成
するためのサブルーチンプログラムを格納する帳票作成
部973と、帳票を出力するためのサブルーチンプログラ
ムを格納する帳票出力部974から構成される。メモリ98
は、画像データを格納するための画像格納領域981と、
帳票の書式データを格納するための帳票書式格納領域98
2と、帳票の内容データを格納するための帳票内容格納
領域983と、出力する帳票データを格納するための出力
帳票格納領域984と、プロセッサ92の作業領域985から構
成される。メモリ97はROM(Read Only Memory)、メモ
リ98はRAM(Random Access Memory)を利用して実施す
ることもできるし、またディスクなど外部記憶装置とRA
Mを組み合わせて実施することもできる。
第2図は、メモリ970に格納される帳票処理のメイン
プログラムの基本的実施例を示すフローチャートを示
す。ステップ1〜ステップ4は領域971〜974に格納され
たサブルーチンプログラムにそれぞれ対応する。画像入
力ステップ1では、帳票の書式が記された用紙を画像入
力装置93で読み取って、ディジタル画像情報として画像
格納領域981に格納する。帳票書式認識ステップ2で
は、前記帳票書式の画像を認識してコードデータに変換
された書式情報を求め、帳票書式格納領域982に格納す
る。帳票作成ステップ3では、前記帳票書式に適合する
帳票内容データを作成し、帳票内容格納領域983に格納
すると共に、これらの書式および内容データによる帳票
データの出力用データを作成し、出力帳票格納領域に格
納する。本ステップの特別な場合として帳票内容が存在
せず帳票書式のみの帳票データを作成することもでき
る。帳票出力ステップ4では、前記出力帳票データをプ
リンタ95により印刷したり、データファイル99に格納し
たりする。
第3図、第4図は、以下の実施例の説明に利用する帳
票データの一例を示す。第3図EX1は、前記のステップ
1で画像入力装置93から入力する帳票用紙の1例であ
る。第4図EX2は、前記のステップ4でプリンタ95から
出力する帳票の1例である。本帳票処理装置は、EX1の
ように罫線(線パターン)100、帳票名称(タイトル)1
01、年月日102、項目名称103(103A〜103D)などからな
る帳票の書式が記されている用紙を画像入力して、EX2
のように各項目や日付のデータ内容110を含む帳票をプ
リンタ等から高品質で出力することを目的とするもので
ある。
尚、本明細書では、罫線100によって描かれた表にお
いて、行あるいは列方向に並ぶ各矩形領域を欄あるいは
セルと呼び、これらのうち、項目名称103が記入されて
いるものを項目セルあるいは固定フィールドセル、後で
データを記入するための空白領域を残しているものを入
出力フィールドセルと呼ぶことにする。また、表以外の
領域にある特殊なフィールドは、単に固定フィールドあ
るいは入出力フィールドと呼ぶ。
第5図はメモリ970に格納される帳票処理プログラム
の他の実施例を示すフローチャートである。第2図のプ
ログラム・フローチャートでは、画像の入力から帳票の
印刷までを一連の動作で実行していたが、第5図のプロ
グラムでは、画像の入力から書式の登録までの処理を行
なう書式定義処理と、書式の検索から帳票の印刷までの
処理を行なう帳票発行処理とを入力コマンドにより選択
的に実行できるようにしている。
図において、コマンド入力ステップ5aでは、書式定義
コマンド、帳票発行コマンド、終了コマンドのいずれか
のコマンドを入力する。書式定義コマンドが入力された
場合には、第2図で説明したステップ1,2を実行した
後、ステップ5bにおいて帳票書式格納領域に格納された
書式データを、オペレータが指定する帳票名と対応させ
てディスク装置等99に登録し、最後にコマンド入力ステ
ップ5aを実行する。帳票発行コマンドが入力された場合
には、まず前記ステップ5bで登録した書式データの中か
ら所望の書式を検索し、次に第2図を用いて説明したス
テップ3,4を実行し、最後にコマンド入力ステップ5aを
実行する。本実施例では、オペレータが同一の書式を用
いて複数の帳票の連続発行を行えるようにするため、こ
の最後のコマンド入力ステップでの帳票の連続発行コマ
ンドの入力を許している。
以下、本発明の主要部であるステップ1〜4の処理内
容を詳細に説明する。
第6図は画像入力ステップ1で実行されるサブルーチ
ンプログラムの詳細フローチャートを示す。本プログラ
ムでは、先ず、ステップ11で、画像入力のためのパラメ
ータとして、メモリ98における画像格納領域のアドレス
情報、入力すべき画像の範囲、ディジタル化の標本化密
度等をコントローラ94に設定する。次に、ステップ12
で、前記パラメータに従って画像データを入力すること
をコントローラ94に指示し、画像入力装置93を起動す
る。ステップ13では、コントローラ94から画像入力処理
が終了したか否かを示すフラグ情報を読みだす。終了し
ていない場合にはステップ13を繰り返す。
第7図(A),(B)は入力画像のメモリ98への格納
方法を説明するための図である。図(A)は2次元的な
画像を画素と呼ばれる小さな点の配列に分割した状態を
示す。ここでは、各点の値は白または黒の何れかの状態
をとるものとし、メモリ内では1ビットで表現できるも
のとする。図において、mは左右方向の画素位置、nは
上下方向の画素位置、Mは位置mの最大値、Nは位置n
の最大値を示す。図(B)は、これらの画素がメモリ98
の画像格納領域981に格納された状態を示す。図におい
て、wは1ワードのビット数、aはメモリアドレス、b
はワード内のビット数を表す。m,n,bは1から始まる整
数、aを0から始まる相対アドレスとすると、画素位置
(m,n)の画素120を、次の関係が成立するメモリ内位置
(a,b)に格納することによって、1対1対応とするこ
とができる。
a=↓{M・(n−1)+m}/w↓ b=M・(n−1)+m−a・w ここに記号↓↓で挾まれた式は、結果の小数以下を切
り捨てることを意味する。以下の説明では、説明の簡単
化のため、参照する画素位置を、メモリアドレスではな
く、2次元の画素位置で表現する。
第8図は、帳票書式認識ステップ2で実行されるサブ
ルーチンプログラムの第1の実施例を示すフローチャー
トである。第1の実施例では、帳票書式認識ステップ2
は、帳票の書式としてその物理構造を認識する物理構造
認識ステップ21のみから構成される。ここで言う「帳票
の物理構造」とは、後に詳述するように、線分,文字,
円弧等、帳票の意味には及ばない単なる図形構造を意味
する。
第9図は前記物理構造認識ステップ21で呼び出される
サブルーチンプログラムのフローチャートを示す。上記
サブルーチン21は、メモリ領域972内で、プログラム2
とは異なる領域に格納されている。
ステップ211では、与えられた領域を、黒画素が連結
する領域の外接矩形を単位として複数のブロックに分割
する。与えられる領域は、ステップ2で最初に呼ばれる
ときは画像全体であり、後述のように本ステップ21自身
の中で再帰的に呼ばれるときは画像の一部分となる。ス
テップ212では、ブロック分割ステップ211で求めたブロ
ックの内の1つのブロックを選択する。ステップ213で
は、選択されたブロックの種別が表か表以外かを判別す
る。このブロック種別の判別は、例えば、ブロックの横
幅と高さの値が、両方とも予め定めた閾値より大きい場
合に表を構成するブロックと判断し、それ以外の場合は
表以外の要素を構成するブロックと判断する。ブロック
種別が表以外と判定された場合には、ステップ218で構
成要素を認識する。ブロック種別が表と判定された場合
には、まずステップ214で、そのブロックを白画素連結
領域の外接矩形の単位に分割する。次にステップ215
で、上記領域分割ステップ214で求めた領域の内の1つ
を選択する。次にステップ216で、選択された領域の種
別が欄(セル)か、欄以外かを認識する。領域種別が欄
以外と判定された場合には、ステップ217で非欄領域に
関する認識処理を行う。領域種別が欄と判定された場合
には、ステップ21で物理構造認識サブルーチンプログラ
ムを再帰的に呼び出し、さらにこの領域の物理的な構造
を認識する。尚、上述したプログラムの再帰的な呼び出
しを通常のプロセッサで実行するための方法は、通常の
プログラム言語のコンパイラ技術として公知であり、例
えばN.Wirth氏著、片山卓也氏訳による「アルゴリズム
+データ構造=プログラム」と題する文献(1979年、日
本コンピュータ協会発行)の142ページ以降に詳細に解
説されているので、ここでは説明を省略する。以上の処
理をすべてのブロックおよび領域について繰り返す。
第10図は前記ブロック分割ステップ211の詳細フロー
チャートを示す。図において、変数Iは処理中有効な仮
ブロック数、nは第7図で説明した上下方向画素位置、
iは処理すべき仮ブロックの番号、Nは対象画像または
対象領域の高さ、p(x,y)は画素(x,y)の濃度、mは
左右方向画素位置、liおよびriは第i番目の仮ブロック
の左端画素位置および右端画素位置を示す。
本処理では、先ず、上述した変数の初期設定を行な
い、1行分の画素の処理が終了する毎に、ステップ211a
とステップ211bを繰り返す。ステップ211aでは、当該行
の処理終了時点で、テーブルT1において同一のブロック
が複数の仮ブロックとして検出されていることが判明し
たものについて、仮ブロックの統合処理を行う。ステッ
プ211bでは、当該行において新たに検出される仮ブロッ
クをテーブルT1に登録処理を行う。これらの仮ブロック
の処理により変数Iの値も更新される。各仮ブロックに
ついては、その左端または右端の位置が更新されるか否
かを調べ、更新される場合はステップ211bで仮ブロック
情報を更新する。更新されない場合には、仮ブロックが
当該行において終了しているか否かを調べ、終了してい
る場合にはステップ211eでその仮ブロックを正式ブロッ
クとしてテーブルT2に登録(追加)し、テーブルT1から
仮ブロックを削除する処理を行う。最後に、ステップ21
1Cで、正式ブロックの外接四角形が互いに重なるものに
ついて、これを統合する処理を行う。
以上の処理において、仮ブロックおよび正式ブロック
の情報登録のために用いるテーブルT1,T2の構成を第11
図(A),(B)に示す。図(A)に示すテーブルT1
は、仮ブロックの情報を格納するためのテーブルであ
り、仮ブロック左端の画素位置l、右端の画素位置r、
上端の画素位置n0の各項目から構成される。図(B)に
示すテーブルT2は、正式ブロックの情報を格納するため
のテーブルであり、ブロック左端の画素位置x0、右端の
画素位置x1、上端の画素位置y0、下端の画素位置y1の各
項目から構成される。なお、変数Jは最終的に得られた
ブロックの数を表している。
以上のブロック分割処理の様子を第12図の具体的例を
用いて説明すると次のようになる。記号a〜eはそれぞ
れステップ211a〜211eに対応し、その地点で対応するス
テップが実行されることを示している。まず行L1で、新
規の仮ブロックB1を示す情報がテーブルT1へ登録される
(b)。次の行L2では、上記仮ブロックと接する黒画素
の検出によって、その左端および右端の画素位置の更新
が行われ(d)、同一行に現われる別の仮ブロックB2の
情報がテーブルT1へ登録される(b)。さらに次の行L3
では上記2つの仮ブロックB1,B2の左右端の画素位置の
更新が行われ(d)、更に別の仮ブロックB3が登録され
る。仮ブロックB1とB2は、本行の処理終了後、1つの仮
ブロックB1−2に統合される(a)。さらに次の行L4で
は、上記で統合された仮ブロックB1−2と接する黒画素
は現われないため、即ち仮ブロックが継続していないた
め、この行の処理終了後、上記仮ブロック情報を基に正
式ブロック情報を生成し、テーブルT2に格納すると共
に、その仮ブロック情報をテーブルT1より削減する
(e)。このようにすべての行の処理が終了した後、各
ブロックに外接する四角形が共通領域をもつ(互いに重
なる)ものについてブロック情報を統合する(c)。本
例では、2つのブロックB1−2とB3は部分的に重なるた
め、1つのブロックに統合される。
第13図は前記領域分割ステップ214の詳細なフローチ
ャートを示す。図において、変数Iは処理中に有効な仮
領域の数、nは第7図で説明した上下方向画素位置、i
は処理すべき仮領域の番号、Nは対象領域の高さ、p
(x,y)は画素(x,y)の濃度、mは左右方向画素位置、
liおよびriは第i仮領域の左端画素位置および右端画素
位置を示す。
本処理では、第11図に示したのと同様のテーブルを用
い、先ず、上述した変数の初期設定を行ない、1行分の
画素の処理が終了する毎に、ステップ214aとステップ21
4bを繰り返す。ステップ214aでは、当該行の処理終了時
点で、同一の領域が複数の仮領域として検出されている
ことが判明したものについて、仮領域の統合処理を行
う。ステップ214bでは、当該行において新たに検出され
る仮領域の登録処理を行う。これらの仮領域の処理によ
り、変数Iの値も変更される。
各仮領域については、その左端または右端の位置が更
新されるか否かを調べ、更新される場合は、ステップ21
4dで仮領域情報を更新する。更新されない場合には、仮
領域が当該行において終了しているか否かを調べ、終了
している場合には、ステップ214eで正式領域として登録
(追加)し、仮領域データを削除する処理を行う。最後
に正式、ステップ214cで、領域の外接四角形が重なるも
のを統合する。
第14図(A)〜(C)は、物理構造認識ステップ21の
経過を具体的に説明するための図である。図(A)は、
原画像EX1に対して最初のブロック分割ステップ211を施
したとき認識される領域の構造EX3を示す。ここでは、
検出された各ブロックを、それに外接する四角形で表現
している。図(B)に示すEX4は、EX3中の表と判定され
たブロックに対して領域分割ステップ214を施したとき
認識される領域の状態を示す。特に検出した各領域を、
それに外接する四角形で表現している。図(C)に示す
EX5は、上記EX4において欄と判定された領域に対して、
それぞれブロック分割ステップ211を施した場合に認識
される領域の状態である。
第15図は前記領域種別認識ステップ216のフローチャ
ートである。本実施例では上記認識ステップ216は、そ
れぞれ領域の左右上下の各辺を認識する4つのステップ
216−1〜216−4からなる。物理構造認識ステップ21で
は、この認識結果に基づいて、例えば3辺以上の線分を
もつ領域は欄であると判定する。
これらの4辺の認識ステップのうち、左辺の認識ステ
ップ216−1の詳細を、第16図のフローチャートを用い
て説明する。図において、nは領域の上下方向の画素位
置を示す変数、n0,n1はそれぞれnの最小値および最大
値、mは領域の左右方向の画素位置を示す変数、m0は領
域の境界位置のmの値、wid(n)は上下方向nの位置
の画素行において境界m0の近傍で横方向に連続する黒画
素の個数を示す変数である。
まず最初に各変数の初期設定を行った後、ステップ21
6aでwid(n)を領域の外側について求める。次に、ス
テップ216bでwid(n)を領域の内側について求めて、
上記値に加える。各nについて求めたwid(n)を基
に、ステップ216cで左辺の線分の線幅を決定する。線幅
は、例えば(n1−n0+1)個のwid(n)の値のうち最
も頻度の高い値を線幅とみなす、などの方法で求めるこ
とができる。このようにして求めた線幅が0でない場合
には、以下、ステップ216dで線分位置の特定を行い、ス
テップ216eで線分テーブルTBL1にデータを追加する。
上記左辺認識ステップを実行するために必要なテーブ
ルT3の構成の1例を第17図に示す。テーブルT3は、各n
に対して境界近傍で横方向に連続する黒画素の左端x0、
右端x1、長さwidの各項目から構成される。各nに対し
ては、 式 wid=x1−x0+1 が成立する。本テーブルは作業領域985に用意される。
第18図(A),(B)は上述した左辺認識処理を具体
的に説明するための図である。図において、図(A)は
原画像における左辺の状態を示す。原画像上では、画像
の入力誤差等により黒画素の1部が欠陥したり、余分な
黒画素が生成されたりして、直線の縁が凹凸になるのが
普通である。図(B)は上記入力画像を左辺認識ステッ
プ216−1で処理した結果を示す。最も頻度の高い線分
データにより線幅と線位置を認識し、凹凸を修正した線
分データにより直線画像を形成し表示している。この認
識により、直線の位置情報等を得ると共に、表面に存在
した凹凸を滑らかにした直線を生成することができる。
第19図は、上述した左辺を含めて、一般に座標軸に平
行な線分の認識結果を格納するためのテーブルTBL1の構
成を示す。本テーブルTBL1は、線分を第18図(B)のよ
うに矩形領域と捉えたときの、左上座標(LX0,LY0)、
および右下座標(LX1,LY1)の各項目から構成される。
本テーブルは帳票書式格納領域982に用意され、後述す
る構成要素認識ステップ218で認識された線分データも
上記テーブルに格納される。
次にステップ217で行なう非欄要素認識処理について
説明する。
第20図(A)〜(F)は本実施例で対象とする非欄要
素の代表的なパターンを示す。図(A)と(B)は対角
に斜線が施された欄に対応するパターンPT1,PT2であ
る。これらのパターンは、第13図で説明した領域分割ス
テップ214のステップ214cの直前において、図中の破線
で囲まれた部分がほぼ同サイズの重畳した領域となる。
図(C)−(F)は円弧に丸められている表の角部分に
対応するPT3〜PT6パターンである。これらのパターンは
領域分割ステップ214のステップ214cの直前において、
図中破線で囲まれた部分が、比較的大きな領域の内部に
重畳した小さな領域となる。何れにしても、これらのパ
ターンは、前記領域種別認識ステップ216で左,右,
上,下の4辺として検出できないため、非線領域と判定
される。
次に、第21図を用いて、入力画像から上述した円弧パ
ターンを検出するための処理の一例を説明する。図にお
いて破線で囲まれた部分がステップ214で検出された1
つの領域であり、この領域に第20図(A)〜(F)のい
ずれかのパターンが位置する。まずこの領域を図に示す
6本の一点鎖線で16個の部分領域に分割する。3本の縦
線V1〜V3は、領域境界x0,x1と所定の小さな値をもつ定
数αに基づいて、それぞれのx座標がx0+α、(x0+x
1)/2、x1−αとなるように設定される。3本の横線のH
1〜H3は、領域境界y0,y1と、上記所定の定数αに基づい
て、それぞれのy座標がy0+α、(y0+y1)/2、y1−α
となるように設定される。次に、これらの部分領域のう
ち、特に6本の一点鎖線のみによって囲まれる中央の4
つの領域の内部の黒画素の濃度を調べる。濃度は各部分
領域の全画素に対する黒画素の割合で定義する。この濃
度が所定の閾値より大きい場合には黒領域、小さい場合
には白領域と呼ぶことにすると、黒領域が左上と右下に
存在するものは第20図のパターンPT1、以下同様に右
上、左下はPT2、左上、右上、左下はPT3、左上、右上、
右下はPT4、左上、左下、右下はPT5、右上、左下、右下
はPT6のパターンと判定することができる。
上記の処理で、パターンPT1またはPT2を含むと判定さ
れたものについては、斜線情報を第22図に示すテーブル
TBL2に格納する。本テーブルTBL2は、斜線の最左端の画
素座標(SX0,SY0)、最右端の画素座標(SX1,SY1)、線
幅SWの各項目から構成される。最左端および最右端の座
標は対象領域の角点の座標または角点の近傍の黒画素を
調べることによって容易に求めることができる。
線幅SWは、例えば、領域内の黒画素数BPと線分の長さ
SLA、即ち から、 SW=BP/SLA または、これを四捨五入等により整数化した値として計
算することができる。本テーブルは帳票書式格納領域98
2に用意される。
上記の処理でパターンPT3〜PT6と判定されたものは、
円弧情報を第23図に示すテーブルTBL3に格納する。本テ
ーブルTBL3は、円弧の中心画素座標(AX,AY)、半径A
R、線幅AW、開始角度AA0、終了角度AA1の各項目から構
成される。開始角度および終了角度は、前記の方法で求
めたパターンの種別PT3〜PT6に従って、それぞれ(90,1
80)、(0,90)、(180、270)、(270,0)と定義す
る。半径、線幅は、例えば領域内の黒画素数BP、領域の
長辺の長さAL及び短辺の長さASを用いて、次の方程式を
解くことによって算出することができる。
AS−AW/2=AR AW・(π・AR/2+AL−AS)=BP 中心画素座標はPT3〜PT6の各パターンに対して、領域
の長辺上の端から短辺の長さと同じ点に定義する。本テ
ーブルも帳票書式格納領域982に用意される。
第24図は構成要素認識ステップ218の一実施例を示
す。ここでは、先ず最初に帳票の構成要素の種別が直
線、破線、文字の何れであるか判定し、この判定結果に
基づいて直線認識ステップ2181、破線認識ステップ218
2、または文字認識ステップ2183の何れかの処理を実行
する。
構成要素の種別判定方法の一例を第25図を用いて説明
する。この例では、ブロック分割ステップ211で求めた
各ブロックに外接する四角形の大きさと形状によって、
構成要素の種別を判別する。
図において横軸および縦軸はブロックに外接する四角
形の、それぞれ横幅、即ちX1−X0+1および高さ、即ち
Y1−Y0+1を表す。ここでは予め設定した定数βおよび
γを境界値として、図のように範囲81〜83を定義し、対
象とするブロックが範囲81に属する場合は直線、範囲82
に属すときは破線、範囲83に属すときは文字と判定する
ものとする。
第26図は直線認識ステップ2181のフローチャートを示
す。本ステップでは、例えば前記第16図で説明した左辺
認識ステップと全く同様の方法で、直線に関する情報を
求める。図において、線幅の決定ステップ2181aは、第1
6図のステップ216a−216cに対応する。線位置の決定ス
テップ2181bは、同様にステップ216dに対応する。さら
にステップ2181cはステップ216eに対応し、これと全く
同様に、帳票書式格納領域に用意された線分テーブルTB
L1に認識結果を登録する。
次に、破線認識ステップ2182について説明する。本ス
テップでは検出された破線要素が、すでに検出されてい
る破線を延長するものであるか否かを調べる。まず、2
つの破線要素が1本の破線を構成するための条件を第27
図を用いて説明する。図において2つの破線要素85と86
の左上の画素座標をそれぞれ(x0,y0),(x0′,y0′)
とし、右下の画素座標をそれぞれ(x1,y1),(x1′,y
1′)とするとき、予め定めた定数d1およびd2に関して
以下の不等式を満足する破線要素の組を、同一の破線を
構成する要素と考えるものとする。
Min(|y0−y0′|,|y1−y1′|)<d1 Min(|x1−x0′|,|x0−x1′|)<d2 ここに関数Minはパラメータで示される2つの式の値
のうち、小さい方の値をとる関数である。
第28図は破線認識ステップ2182のフローチャートであ
る。まずステップ2182zで、当該破線要素が、後述する
テーブルTBL4に格納されている既に検出済みの破線を延
長するものであるか否かを調べ、延長するものである場
合には、これらの要素をすべて含むように破線範囲を拡
張する。このようにして順次に結合された破線要素の範
囲について、第26図で説明した直線認識ステップと全く
同様の方法で、以下の如く破線情報を求めることができ
る。図において、線幅の決定ステップ2182aは、第26図
のステップ2181aに対応する。ただし、値WIDの最大頻度
を求める処理(前記ステップ216cの説明参照)では、破
線の場合に破線要素間に間隔が存在することを考慮し
て、値0の頻度を除外する。線位置の決定ステップ2182
bは、第26図のステップ2181bに対応する。また、ステッ
プ2182cはステップ2181cに対応し、直線の場合と同様に
して帳票書式格納領域に用意された破線テーブルTBL4に
認識結果を格納する。
第29図は、破線テーブルTBL4の構成の1例を示す。本
テーブルTBL4は、1つの破線を構成する複数の破線要素
の集合を矩形領域と捉えた場合の左上座標(DX0,DY
0)、および右下座標(DX1,DY1)を示すデータから構成
される。本テーブルも帳票書式格納領域982に用意され
る。
第30図は文字認識ステップ2183のフローチャートであ
る。まず最初に、当該ブロックの近傍にまだブロック種
別が未判定で文字要素と判定される可能性のあるブロッ
クが存在するか否かを調べる。このようなブロックが存
在する場合には、ステップ2183dにおいて当該ブロック
を文字列要素として作業領域985に登録する。近傍に文
字要素と判定される可能性のあるブロックが存在しない
場合には、ステップ2183aで、当該ブロックを含む文字
列を生成する。本処理においては、上記ステップ2183d
で登録した文字列要素のうち、後述する文字構成条件を
満たすブロックを集めて、これらの全ブロックを含む1
つの矩形範囲を文字列の範囲として求める。ステップ21
83bでは、上記文字列の範囲から個別の文字領域を抽出
する。個別の文字領域は、例えば上記長方形の範囲の中
で、短い辺に沿って黒画素の投影データを作成し、長い
辺に沿って現われる上記投影データのギャップが予め定
めた閾値を越える部分で上記長方形範囲をサブ領域に分
割することによって抽出することができる。ステップ21
83cでは、このような個別の文字領域に含まれる文字パ
ターンを、公知の文字認識方式により文字コードに変換
する。文字認識方式としては、例えば、尾上守夫氏編に
よる「画像処理ハンドブック」と題する文献(昭和62
年、昭晃堂発行)の468ページ以降に記されている方法
を用いることができる。
隣接するブロックが同一文字列を構成する要素か否か
の判定は、例えば次のようにして行なう。第31図におい
て、2つのブロック(文字要素)87,88の左上の画素座
標をそれぞれ(x0,y0),(x0′,y0′)とし、右下の画
素座標をそれぞれ(x1,y1),(x1′,y1′)とすると
き、予め定めた定数D3およびD4に関して以下の4つの不
等式、 y0−y1′<D3 y0′−y1<D3 x0−x1′<D4 x0′−x1<D4 を全て満足する場合、これらの文字要素は同一の文字列
を構成する要素とみなす。
第32図(A)〜(C)は以上説明した文字認識ステッ
プ2183の実際の処理の過程を示した図である。図におい
て(A)は上記条件に従って統合されると判定されたブ
ロックの集合を図示したものである。(B)は、ステッ
プ2183aにより実際に文字列が生成された状態を図示し
たものである。(C)はこのような文字列からステップ
2138bにより個別の文字を抽出した結果を図示したもの
である。
本文字認識ステップ2183における認識結果は、第33図
に示すテーブルTBL5の形状で帳票書式格納領域982に記
憶される。上記テーブルTBL5は、1個の文字を囲む矩形
左上点の画素座標(CX0,CY0)、右下点の画素座標(CX
1,CY1)、文字コードCCの各項目から構成される。文字
コードとしては例えばJIS規格で定められた文字コード
の体系を利用する。
以上、第8図に示した帳票書式認識ステップ2の基本
的な動作について説明したが、上記ステップに更に他の
処理機能を付加することによって帳票認識精度を更に向
上することができる。
第34図は、このように拡張した帳票書式認識ステップ
2の他の実施例を示す。この実施例では、前記物理構造
認識ステップ21に先立って入力画像の前処理20を実行
し、物理構造認識ステップ21の後に帳票データの後処理
29を実行する。
第35図は前処理ステップ20で呼び出されるサブルーチ
ンプログラムのフローチャートの一例を示す。ここで、
前処理として入力画像データの傾きの補正を行ってい
る。ステップ201a−201dでは、それぞれ後述する画像の
左辺,右辺,上辺,下辺を検出する。ステップ202では
上記ステップで検出した4辺の傾き情報から画像全体の
傾きを計算する。これは、例えば右辺の傾き+90゜、右
辺の傾き+90゜、上辺の傾き、下辺の傾きの4つの値の
平均値により計算することができる。ステップ203で
は、上記ステップ202で求めた角度を画像の回転処理を
行う。ステップ204で、必要に応じて、帳票画像として
有効な領域の切り出しを行い、ステップ205で、必要に
応じて、画像のノイズ情報を除去する。
上記前処理ステップ20で検出する画像の「辺」につい
て、第36図(A),(B)を用いて説明する。
図(A)、入力画像に含まれる紙面の境界線を画像の
傾き計算の基準線にできる場合を示す。これは、画像入
力装置93において、紙面の地色(例えば白色)に対し
て、これとは異なる背景色を使用して画像入力できる場
合に相当する。例えば、原稿を静止させ、紙面からの反
射光をセンサに入力する方式の画像入力装置では、原稿
カバーの色を黒色とすることによって実現できる。この
ような場合には、上,下,左,右の4辺は、記号70a〜7
0dで示した紙面の各境界線に着目して検出することがで
きる。
図(B)は入力画像71中で紙面の境界が検出できない
ものの、帳票に記載された表の外枠を傾きの計算の基準
線として検出できる場合を示す。この場合には、上記4
辺として、記号71a〜71dで示した表の境界を検出する。
具体的には、白画素連続状態から黒画素に変化する最も
外側の境界を求め、これらの境界線4本の直線を対応づ
けることによって求めることができる。
第37図は後処理ステップ29で呼び出されるサブルーチ
ンプログラムのフローチャートの一例を示す。ここで
は、後処理の1例として、物理構造認識処理により帳票
書式格納領域982に記憶された画像データの修正を行
う。ステップ291では、テーブルTBL1〜TBL4に格納され
た線情報を修正し、ステップ292では、テーブルTBL5に
格納された文字情報を修正する。なお、上記実施例で
は、線の修正ステップ291と文字の修正ステップ292をそ
れぞれ1回ずつ順次に実行するようにしているが、通常
のワードプロセッサやCADシステムで行なわれているよ
うに、オペレータの指示により、任意の時点で線または
文字の修正を繰り返すようにしてもよい。
線の修正ステップ291では、ワードプロセッサやCADシ
ステムの図形処理機能において行なわれているように、
オペレータの指示による線の移動、削除、伸縮等の処理
を実行する。ここでは、線修正ステップ291の特殊な機
能の1例として、他の線との関係から罫線データを自動
的に修正する処理について、第38図を用いて説明する。
ステップ2911では、帳票書式格納領域に格納された全て
の線の交点を求める。このとき、各線の端点と他の線と
の距離を求め、この距離が予め定めた閾値より小さいも
のも交点と扱う。ステップ2912では、各線の端点と他の
線の端点との距離を求め、この距離が予め定めた閾値よ
り小さい位置関係にある複数の線の組を求める。ステッ
プ2913では、上記線の組の中で、線幅の差が予め定めた
閾値より小さいものについて、各線の線幅データをいず
れか一方の線幅、あるいはそれらの平均値に置き換え
る。ステップ2914では、上記線の組について、各線の種
類を最も多い線種類に置換する。ステップ2915では上記
線の組について、線の位置を正規化する。横線について
は、各横線の始点と終点の位置が外枠の縦線に一致する
ように、例えばx座標を各線の平均位置の値に置き換え
る。また、縦線についても、各縦線の始点,終点の位置
(y座標)が外枠横線に一致するように各線の平均位置
に揃える。ステップ2916では、複数の平行線の中から隣
合う2本の線の間隔が略等しいもの、すなわち予め定め
た閾値の誤差以内にあるものを検出し、ステップ2917
で、上記線間隔をそれらの平均値に等しくするように各
線を必要に応じて移動する。
文字の修正ステップ292では、ワードプロセッサやCAD
システムの文字処理機能において行なわれているよう
に、オペレータからの指示による文字の移動,変更,削
除,追加,サイズ変換等の処理を実行する。ここでは、
各文字を他の文字との関係から自動的に修正する特殊な
処理について、第39図を用いて説明する。ステップ2921
では、互いに隣接する複数の文字からなる組を文字列と
して求める。隣接文字は、例えば第31図で説明した方法
を利用して見つけることができる。ステップ2922では、
このようにして求めた文字列について、予め帳票書式認
識部972に用意してある標準の単語群との照合を行う。
各単語を文字列の先頭に順次当てはめ、例えば標準単語
の文字のうち合致する文字数の割合(一致率)が最も大
きい単語を照合結果とする。さらには発明者らが先に出
願済みの特願平1−196586号に記載の方法を利用するこ
ともできる。照合の結果、上記一致率が予め定めた閾値
より大きい場合には、ステップ2923で標準単語と不一致
の文字の文字コードを修正し、文字列中の単語を標準単
語に合致させる。また、ステップ2924で、同一文字列中
の文字位置と文字サイズが互いに揃うように、テーブル
TBL5に登録されている矩形情報CX0,CY0,CX1,CY1の値を
修正する。修正方法としては、単に各文字列中の平均値
を採用する方法や、認識した文字コードを利用して、文
字の形状情報からまず文字枠の大きさを求め、この文字
枠の位置と大きさに基づいて修正する方法などを利用す
ることができる。
このようにして求めた各文字列に含まれる単語情報
は、第40図に示すテーブルTBL6として帳票書式格納領域
982に記憶する。上記テーブルTBL6は、単語を構成する
文字の数WNと、各文字に関する情報として、テーブルTB
L5へのポインタ情報WC1〜WCpの各項目から構成される。
ここで、pは単語当たりの文字数WNの最大値である。上
記テーブルTBL6は以下に説明する帳票書式認識プログラ
ム2の第2の実施例において利用する。
第41図は帳票書式認識ステップ2で実行されるサブル
ーチンプログラムの第2の実施例を示すフローチャート
である。第2の実施例では、以前に説明した帳票の物理
構造を認識するステップ21と、以下に説明する帳票の論
理構造を認識するステップ22とから構成される。尚「帳
票の論理構造」とは、本発明では、後述する帳票の欄の
行桁構造、フィールドに関する情報等、帳票の意味に及
ぶ構造を意味する。
第42図は論理構造認識ステップ22で呼び出されるサブ
ルーチンプログラムの第1の実施例を示す。上記プログ
ラム22は、帳票書式認識部972中の、プログラム2とは
異なる領域に用意される。この第1の実施例では、サブ
ルーチン22は、帳票に記入された文字や罫線等の位置お
よび大きさを行と桁の形に配列するように正規化するス
テップ221のみから構成されている。
第43図は上記行桁正規化ステップ221の詳細なフロー
チャートを示す。ステップ2211では、テーブルTBL5に格
納されている各文字の基準位置、およびテーブルTBL1,T
BL2,TBL4に格納されている各線分の全ての交点および端
点の座標を求め、第44図に示すテーブルTBL7に格納す
る。文字パターンの基準位置については、後に詳細に説
明する。テーブルTBL7は、これらの文字基準位置、およ
び線分の交点、端点について、それらの座標(MX,MY)
と、情報コードMCの各項目から構成される。情報コード
MCは、文字情報では文字パターンを示す文字コード、線
情報では、第45図で後述するように、その端点または交
点のパターン(形状)を示す文字コードを意味する。ス
テップ2212では、上記テーブルTBL7に格納されているデ
ータを、X座標MXの値に従ってソーティングする。ソー
ティングは昇順(小さいデータから順に配置すること)
に行うが、そのアルゴリズムについては公知であり、例
えば前記のN.Wirth氏著の文献の62ページ以降に詳細に
解説されているので説明を省略する。ステップ2213で
は、このソーティング後のテーブルTBL7のデータを順に
取り出し、先ず、そのデータについて正規化すべき量d
を求める。この正規化量dは、正規化すべき行および桁
の幅をRC画素としたとき、RCの整数倍で当該MXの値より
大きく、かつ最も近いものを選択し、これと当該MX値の
差として計算する。ステップ2214では、全てのデータの
MXの値に上記dを加える。ステップ2215では、ステップ
2212と同様に、TBL7をMYの値に従ってソーティングす
る。以下、ステップ2216と2217で、それぞれステップ22
13,2214と同様に、MYの値を順次正規化する。すべての
座標データの正規化が終了した後、ステップ2218で線分
の交点,または端点間の線分パターンを示す文字コード
をその位置情報と共に発生する。最後に、ステップ2219
で、冗長に拡大した欄等を幾何学的構造を保ったまま収
縮する処理を行う。なお、以上の実施例では、座標MX,M
Yの正規化量dを全て正の値としたが、単にRCの倍数に
最も近い値を採用することによって、負の値を許すこと
もできる。
第45図(A),(B)は文字、線分の交点、端点パタ
ーンの位置基準点RP(黒丸)を示す図である。図(A)
は全角の文字パターン、図(B)は半角の文字パターン
の基準点の例を示す。
第46図は前記論理構造認識ステップ22で呼び出される
サブルーチンプログラムの第2の実施例のフローチャー
トである。この第2の実施例は、帳票のフィールド位置
を認識するステップ222を有しており、図(A)のよう
にステップ222のみから構成される場合と、図(B)の
ように前述した行桁正規化ステップ221を実行した後、
このフィールド位置認識ステップ222を実行するように
構成する場合とが存在する。
第47図は上記フィールド位置認識ステップ222の詳細
なフローチャートを示す。ステップ2221では、フィール
ド位置の認識を容易にするために、表形状の正規化処理
を行う。表形状の正規化処理の実例を第48図(A),
(B)に示す。図において図(A)は罫線が省略されて
いる表41に罫線42A,42Bを付加する処理の代表例であ
る。本処理は例えば横線分の各端点に接続する縦線分の
有無を調べ、ない場合には、当該横線分に交わる他の縦
線分を水平方向に複写した線分を新たに生成することに
よって容易に実現できる。またさらに簡単に、平行する
横線分の組に対して、最も上方に存在する線分と最も下
方に存在する線分の各始点間および各終点間に新たに2
本の縦線分を生成することによっても実現できる。ま
た、図(B)は外枠の各コーナーが円弧状となっている
表43を、外枠が直線で構成された表44に変換する処理の
代表例である。本処理は例えば円弧データを、それぞれ
表の角を示す縦および横の2本の線分データに置換する
ことによって簡単に実現できる。より具体的には格納し
たテーブルTBL3(第23図)の各要素について、例えばAA
0=0のとき、LX0=AX+AR、LY0=AY、LX1=LX0、LY1=
AY−ARなる縦線分と、LX0=AX+AR、LY0=AY−AR、LX1
=AX、LY1=LY0Rなる縦線分をTBL1に生成する。AA0が9
0、180、270についても全く同様の処理を行う。
第47図のステップ2222では、標準フィールド、即ち4
本の線分で囲まれ、かつその内部に他のフィールド含ま
ない矩形領域(フィールド)を順次に抽出する。本処理
は、例えば横線分をその縦位置の順にソーティングし、
その順序に従って先ず第1の横線を基準横線として選択
する。次に左側の縦線から順にチェックして上記基準横
線と交わり下方に伸びる2本の縦線の組を選択し、次に
これらの縦線の組と交わり上記基準横線に最も近い位置
にある横線を捜すことにより、上記基準横線を上辺とし
た2本の横線と2本の縦線とを4辺とする領域を見つけ
る。上記動作を繰り返して、1つの基準横線を上辺とす
る全てのフィールドを見つけたら、その次の横線を基準
横線に選んで同様の動作を繰り返すことにより、罫線に
より形成される全てのフィールドを順次に見つけること
ができる。このようにして検出された各四辺形につい
て、上述した標準フィールドの条件を満たすか否かをチ
ェックすることにより、標準フィールドのみを抽出する
ことができる。
ステップ2223では、前記ステップ2921と全く同様にし
て、前記テーブルTBL5に格納された文字情報から文字列
情報を作成し、以下各文字列に対して、ステップ2224と
ステップ2225を繰り返す。
ステップ2224では、上記抽出文字列と、予め登録した
特殊フィールドを生成し得る単語との照合を行う。単語
の照合は、前記ステップ2922と同様にして処理する。照
合の結果、前記所定の条件を満たす単語が存在する場合
には、ステップ2225において、予め定めた手順に従って
特殊フィールドの抽出処理を行う。ここで特殊フィール
ドとは、必ずしも線分情報によって囲まれていないが、
帳票発行の際に内容データを印刷する位置を表す仮想的
なフィールドである。例えば、後記の実例EX6,EX7に示
すように、「年」に対しては、その外接四角形、および
これと同じ大きさでその左隣に所定の距離離れた位置に
特殊フィールドが定義される。本処理は、特殊フィール
ドを生成し得る各単語に対して、実際に特殊フィールド
を生成するための条件、および生成する位置、大きさな
どの情報を、本ステップ2225の処理として記述しておく
ことによって実現できる。上記の、実際に特殊フィール
ドを生成するための条件としては、例えば文字「年」と
文字「月」の間隔の各文字の大きさに対する比が、所定
の値より大きい、など単なる固定フィールドとの判別の
ための条件を記述する。
ステップ2226では、上記ステップ2222およびステップ
2225で抽出した各フィールドが、帳票発行の際にデータ
が記入される可能性がある入出力フィールドであるか、
新たにデータが記入される可能性のない固定フィールド
であるかの判別を行う。この判別は、簡単には例えば、
フィールド(領域範囲)に文字列が存在するか否かをチ
ェックすることによって行うこともできるし、その文字
列の単語としての意味を、予めプログラムが保持してい
る入出力フィールドに存在し得る単語のリストと照合
し、さらにフィールド内での文字列位置が偏っているか
否か等を参照することによって判別を行うこともでき
る。
ステップ2227では、入出力フィールドと判別されたフ
ィールドについて、フィールド定義情報を後述するテー
ブルTBL8に登録する。ステップ2228では、固定フィール
ドと判定されたフィールドについて、フィールド定義情
報を上記テーブルTBL8に登録する。
第49図はフィールドテーブルTBL8の構成を示す。上記
テーブルTBL8は、フィールド領域の左上座標(FX0,FY
0)、右下座標(FX1,FY1)およびフィールドの名称FNの
各項目から構成される。フィールド名称は、固定フィー
ルドについては、その領域範囲に記載されている文字列
をそのまま利用することができ、入出力フィールドにつ
いては、入出力フィールドであることを示す記号を登録
する。上記テーブルは帳票書式格納領域982に形成され
る。
第50図(A),(B)はフィールド位置認識ステップ
222の実行結果の実例を示す。図(A)に示すEX6は、第
3図に示した原画像EX1から認識された固定フィールド
の位置、図(B)に示すEX7は、原画像EX1から認識され
た入出力フィールドの位置をそれぞれ図示したものであ
る。
第51図(A),(B)は、前記録理構造認識ステップ
22で呼び出されるサブルーチンプログラムの第3の実施
例を示すフローチャートである。この第3の実施例は前
記のフィールド位置認識ステップ222と、フィールド位
置の認識結果を利用して複数のフィールド間の関係を認
識するステップ223と、各フィールドの論理的に属性を
認識するステップ224から構成される。フィールド位置
認識ステップ222を直接実行するか、行桁正規化ステッ
プ221を行った後に実行するかにより図(A)の構成と
図(B)の構成の実施例が存在する。
第52図は上記フィールド関係認識ステップ223の詳細
なフローチャートを示す。ステップ2231では、フィール
ドテーブルTBL8から固定フィールドを1つ選択する。ス
テップ2232では、上記選択された固定フィールドに下方
に接して入出力フィールドが存在するか否かを調べる。
入出力フィールドが存在する場合には、そのさらに下方
に接して別の入出力フィールドが存在するか否かの判定
を、下方に接する入出力フィールドがなくなる迄、繰り
返す(ステップ2233A〜2233B)。最初に選択した固定フ
ィールドの下方に入出力フィールドが1個も存在しない
場合には、その右方に接して入出力フィールドが存在す
るか否かを調べ(ステップ2234)、右方に接する入出力
フィールドが存在しなくなるまで、上記固定フィールド
の右方に位置する入出力フィールドの選択動作を繰り返
す(ステップ2235A〜2235B)。下方、および右方のいず
れにも入出力フィールドが存在しない場合にはステップ
2236で例外処理を行う。例外処理では例えば前記のステ
ップ2225で特殊フィールドとして抽出された入出力フィ
ールドを、特殊フィールド抽出のためのキーとなった文
字列である固定フィールドとを組にする等、前記の単な
る位置関係だけでは関連づけることができない処理と、
対応する入出力フィールドが存在しない固定文字列の抽
出処理を行う。ステップ2237では、最初に選択した固定
フィールドと、ステップ2233Aまたはステップ2235Aで選
択された入出力フィールドとを組にしてユニットを生成
する。例外処理2236が行われた場合には、特殊フィール
ドに対するユニット、固定フィールド単独で構成するユ
ニット、またはケイ線で囲まれていないフィールドを含
むユニットが生成される。以上の処理をフィールドテー
ブルTBL8のすべての固定フィールドについて繰り返す。
第53図は、上記ユニット生成ステップ2237で求めたユ
ニット情報を格納するためのユニットテーブルT4の構造
を示す。上記テーブルT4は、ユニットに属する固定フィ
ールドを指すフィールドテーブルTBL8へのポインタFF
と、ユニットに属する入出力フィールド数PNと、ユニッ
ト属する各入出力フィールドを指すフィールドテーブル
TBL8へのポインタPF1〜PFpの各項目から構成される。こ
こで、pは各ユニットにおける入出力フィールド数PNの
最大値を示す。上記テーブルT4は作業領域985に用意さ
れる。第54図は、フィールド位置認識結果EX6およびEX7
に対してフィールド関係認識ステップ223を実行して得
られるユニットの状態の1例を図示している。ステップ
2233で選択された入出力フィールドからなるユニットUV
1〜UV4は縦ユニット,ステップ2235で選択された入出力
フィールドからなるユニットUH1〜UH4は横ユニット、ス
テップ2236で固定フィールドが孤立していると認識され
たユニットUI1は孤立ユニット、同じくステップ2236で
罫線で囲まれていないフィールドからなるユニットUE1
〜UE3は例外ユニットとして示されている。なお本例で
は文字「年」、「月」、「日」の3つの文字(列)に対
して、UE1−UE3の3つのユニットを生成したが、前記ス
テップ2225の処理の定義方法によって、文字列「年月
日」に対する1つのユニットを生成するようにすること
もできる。
第55図はフィールド属性認識ステップ224の詳細なフ
ローチャートを示す。ステップ2241では、ユニットテー
ブルT4からユニットを1つ選択する。ステップ2242で
は、上記のユニットの固定フィールドの名称を、予め帳
票書式認識部972に登録してあるユニット知識テーブル
と照合し、そのユニットの機能を求める。フィールド名
称だけでは機能を決定できない場合には、ステップ2243
で他ユニットとの意味関係、帳票上のユニットの配置な
どの情報を所定のルールと照合して、その機能を決定す
る。これらの処理で求めたユニットの機能が、関数を呼
び出して値を計算し、この値を入出力フィールドに代入
する関数入力ユニットである場合には、上記関数入力属
性を後述するテーブルTBL9,TBL10に設定する(ステップ
2244a〜2245a)。ユニット機能が、ファイルを検索して
値を求め、それを入出力フィールドに代入するファイル
入力ユニットである場合には、ファイル入力属性を上記
テーブルTBL9,TBL11に設定する(ステップ2244b〜2245
b)。ユニットの機能が、他の入出力フィールドに代入
された値に基づいて計算によって求めた値を入出力フィ
ールドに代入する計算入力ユニットである場合には、計
算入力属性を上記テーブルTBL9,TBL12に設定する(ステ
ップ2244c〜2245c)。上記ユニット機能が同一の項目の
組を繰り返す意味をもつユニット繰り返しユニットであ
る場合には、繰り返す属性を上記テーブルTBL9,TBL13に
設定する(ステップ2244d〜2245d)。上記ユニット機能
が、上記の何れでもない場合には、入出力フィールドに
キーボードからの入力値を設定するキー入力ユニットと
判断し、キー入力属性を上記テーブルTBL9,TBL14に設定
する(ステップ2245e)。
第56図から第59図は、上述した名称マッチングステッ
プ2242において、ユニット機能を決定するために参照さ
れる各種の知識テーブルの構成を示す。
第56図に示す知識テーブルKNW1は、関数入力属性をも
つユニットの固定フィールドの名称UNと、呼び出すべき
関数の名称FUNをその項目として管理する。
第57図に示す知識テーブルKNW2は、ファイル入力属性
をもつユニットが検索すべきファイルの一例を示す。こ
の例では「品名」と「単価」とがその項目として含まれ
ており、特に品名から単価を一意に検索できるようにし
てある。
第58図に示す知識テーブルKNW3は、計算入力属性をも
つユニットにおける固定フィールドの名称UNと、計算の
種別OPと、計算に用いるパラメータとして他のユニット
の固定フィールド名称OP1〜OPNをその項目として管理す
る。ここで、計算に必要なパラメータの種類は、計算の
種別OPによって一意に決定できるものとする。第59図に
示す知識テーブルKNW4は、キー入力属性をもつユニット
に設定すべき属性を管理するテーブルであり、固定フィ
ールドの名称UNと、その属性として、例えばそれが数値
情報か文字情報かを示す記号ANを項目としてもつ。
第60図〜第65図は、上述したフィールド属性認識処理
224のステップ2245a〜2245eで用いられる属性設定のた
めのテーブル構造を示す。
第60図に示すテーブルTBL9は、ユニットワークテーブ
ルT4を基に作成されるユニット全体を管理するテーブル
である。上記テーブルは、ユニットに属する固定フィー
ルドを指すフィールドテーブルTBL8へのポインタFFと、
ユニットに属する入出力フィールド数PNと、ユニットに
属する入出力フィールドを指すフィードテーブルTBL8へ
のポインタPF1−PFNと、当該ユニットの機能種別UAと、
その機能詳細情報を格納するテーブルTBL10−TBL14への
ポインタUAPの各項目から構成されている。ここで、N
はユニットあたりの入出力フィールド数PNの最大値を示
す。上記テーブルT4は、以下のテーブルTBL10〜TBL14と
共に、帳票書式格納領域982に用意される。
第61図に示すテーブルTBL10は、関数入力属性ユニッ
トの機能の詳細を示す情報を格納するためのテーブルで
あり、例えば、呼び出すべき関数の名称FUNN、関数を呼
び出すのに必要なパラメータの数RN、およびその実体で
あるPAR1〜PARNの各項目から構成される。ここでNはパ
ラメータ数RNの最大値を示す。
第62図に示すテーブルTBL11は、ファイル入力属性ユ
ニットの機能の詳細を示す情報を格納するためのテーブ
ルであり、例えば、検索すべきファイルの名称DBN、当
該帳票の処理に関係のある項目の数DN、およびその実体
であるTM1〜TMNの各項目から構成される。ここで、Nは
パラメータ数DNの最大値を示す。
第63図に示すテーブルTBL12は、計算入力属性ユニッ
トの機能の詳細を示す情報を格納するためのテーブルで
あり、例えば、計算種別CALN、計算に必要なパラメータ
の数CLN、およびその実態であるOP1−OPCの各項目から
構成される。ここで、Cはパラメータ数CLNの最大値を
示す。
第64図に示すテーブルTBL13は繰り返し属性のユニッ
トの機能の詳細を示す情報を格納するためのテーブルで
あり、例えば、繰り返される固定フィールド数Nと、そ
の実態であるTBL8へのポインタRFF1〜RFFNと、繰り返さ
れるユニット数Mと、その実態であるTBL9へのポインタ
RU1−RUMの各項目から構成される。
第65図に示すTBL14は、キー入力属性ユニットの機能
の詳細を示す情報を格納するためのテーブルであり、例
えば、入力属性を示す記号DA、入力すべきデータの文字
幅DW、文字高さDH、隣接する文字との間隔DD、左寄せ、
中央寄せ、右寄せ等の区別を示す書式情報DJの各項目か
ら構成される。
第66図は、以上の処理によって原画像EX1から生成さ
れる帳票論理構造認識結果の1例として、テーブルTBL9
〜TBL14の具体例をTBL9−EX〜TBL14−EXとして示す。
第67図は、帳票書式認識ステップ2で実行されるサブ
ルーチンプログラムの第3の実施例を示すフローチャー
トである。この第3の実施例は、これまでに説明した帳
票の物理構造を認識するステップ21と、帳票の論理構造
を認識するステップ22と、以下に説明する帳票作成プロ
グラムを自動的に生成するためのステップ23から構成さ
れる。尚、ここで言う帳票作成プログラムとは、その後
に帳票作成処理3で実行されるプログラムを意味する。
第68図は帳票作成プログラム生成ステップ23で呼び出
されるサブルーチンプログラムの1実施例を示すフロー
チャートである。このサブルーチンプログラムは、帳票
書式認識部972内で上記プログラムとは異なる領域に格
納される。以下、上記サブルーチンの処理内容を、第69
図に示す実際の処理結果EX9を参照して詳細に説明す
る。
EX9は、第3図に示した帳票の原画像EX1に対する処理
結果であり、実際には第66図に示したテーブルTBL8−EX
〜TBL14−EXを用いて作成される。本実施例では、生成
されたプログラムの文法はプログラミング言語pascalに
則っている。
まず最初に、ステップ231で、帳票の論理構造認識結
果に依存しないプログラムの固定部を生成する。実例EX
9では、l1,l2,l16,l32などのステートメントが上記プロ
グラム固定部として生成される。上記プログラムの生成
は、実際には、サブルーチンプログラム23の中で定義さ
れた所定のメモリ領域に、上記実例で示されるような文
字の列を定義していくことによって実現される。ステッ
プ232では、上記プログラムで使用する変数を宣言する
部分を生成する。実例EX9では、ステートメントl3−l5
の生成がこれに対応する。上記プログラムで使用する変
数は、論理構造認識結果におけるユニット数、繰り返し
ユニット数などから決定される。次に、ステップ233
で、実例EX9におけるステートメントl6からl15に示され
るような、上記プログラムで利用する関数または手続き
を宣言する部分を生成する。これらの関数、あるいは手
続きは、論理構造認識結果における関数入力属性の関数
名等から決定される。このプログラム部分の生成は、予
めプログラム23内に定義した幾つかの関数宣言文字列の
中から上記ステップで決定されたものの文字列を抽出
し、これをメモリ上の上記の作成プログラム格納領域に
転記することによって実現される。なお上記関数定義
中、ステートメントl6〜l7で特に入力文字列を挿入すべ
き位置にカーソルを表示する機能を設けることにより、
後の帳票発行処理をユーザが容易に行うことができる。
ステップ234ではテーブルTBL13を参照することによっ
て、繰り返し制御部を生成する。繰り返し制御部は、判
定ステップ230cにより終了が検出されるまで、繰り返し
ユニットの数だけ生成される。これによって、実例EX9
では、ステートメントl17,l18,l24が生成される。ステ
ップ230aでは、上記繰り返し部に属する入出力フィール
ドを1つずつ選択し、ステップ235で上記入出力フィー
ルドの処理部を生成する。実例EX9では、これによって
ステートメントl19〜l23が生成される。
すべての繰り返し部の生成が終了する(ステップ230
c)、次に非繰り返し部の生成が行なわれる。まず、ス
テップ230dで非繰り返し部の入力フィールドの1つを選
択した後、ステップ235でその入出力フィールドの処理
部を生成する。これを繰り返すことにより、実例EX9の
ステートメントl25〜l31が生成される。非繰り返し部の
全ての入出力フィールドの処理部生成が終ると(ステッ
プ230d)、後処理ステップ236でプログラム整形を行
い、ステップ237で、このようなソースプログラムと呼
ばれる文字列をCPU92が直接実行できる機械語に翻訳す
る。機械語への翻訳処理は、予めメモリ97の一部に用意
しておいた公知の言語コンパイラ(プログラム)を起動
することによって実現される。
第70図は前記の入出力フィールド処理部生成ステップ
235の詳細な処理内容を示すフローチャートである。本
処理は、まずステップ2350aで、テーブルTBL9を参照す
ることにより、与えられた入出力フィールドの属性を判
定する。判定の結果が関数属性の場合には、ステップ23
51でテーブルTBL10を参照することにより、与すられた
入出力フィールドの属性を判定する。判定の結果が関数
属性の場合には、ステップ2351でテーブルTBL10を参照
することにより関数属性の処理部を生成する。実例EX9
では、l29,l30,l31の3行が本ステップにより生成され
る。判定の結果がファイル入力属性の場合には、ステッ
プ2352でテーブルTBL11を参照することによりファイル
入力属性の処理部が生成する。実例EX9では、l21の1行
が本ステップにより生成される。判定の結果がキー入力
属性の場合には、ステップ2353でテーブルTBL14を参照
することによりキー入力属性の処理部を生成する。実例
EX9では、l19,l20の2行が本ステップにより生成され
る。判定の結果が計算入力属性の場合には、さらにステ
ップ2350bでテーブルTBL12を参照することにより、その
演算種別を求める。演算種別が積の場合には、ステップ
2354で再度テーブルTBL12を参照することにより積演算
の処理部を生成する。実例EX9では、l22の1行が本ステ
ップにより生成される。演算種別が総和の場合には、ス
テップ2355で再度テーブルTBL12を参照することにより
総和演算の処理部を生成する。実例EX9では、l25−l28
の4行が本ステップにより生成される。
なお、以上の帳票書式認識ステップの説明では、説明
の簡単化のため、概ね自動的に認識を行なうように述べ
たが、実際の応用においては、例えば画像入力の状態等
により誤認識が発生することがある。このようなケース
に対応するためには、例えば認識の各段階に、オペレー
タによる確認操作と、必要に応じて上記自動認識結果を
マニュアルで修正するための処理ステップを挿入してお
くとよい。特に物理構造認識ステップ21、論理構造認識
ステップ22における行桁正規化ステップ221、フィール
ド位置認識ステップ222、フィールド関係認識ステップ2
23、フィールド属性認識ステップ224、および帳票作成
プログラム生成ステップ23のそれぞれの直後に、上述し
た処理結果の確認と修正のための処理ステップを挿入す
ると都合がよい。
以上で帳票書式認識ステップ2の説明を終え、次に帳
票作成ステップ3の実施例について説明する。
第71図は帳票作成ステップ3の第1の実施例を示すフ
ローチャートである。この実施例では、帳票作成ステッ
プ3が帳票書式のうち第8図のステップ21で求めた物理
構造(即ち、テーブルTBL1〜TBL5に登録された情報)を
用いて出力(例えば印刷)すべき書式データを生成する
ステップ39だけで構成されている。生成された出力帳票
書式データは、出力帳票格納領域984に格納される。
第72図は、上記出力書式データ生成ステップ39で呼び
出されるサブルーチンプログラムのフローチャートを示
す。このサブルーチンプログラムは、帳票作成部973内
で上記プログラム3とは異なるメモリ領域に用意され
る。最初のステップ391では、線分(直線)の認識結果
が登録されているテーブルTBL1を順次に参照することに
よって、これらの線分を例えばプリンタ95で印刷するた
めの書式データを生成する。ステップ392では、斜線の
認識結果が登録されているテーブルTBL2を順次に参照す
ることによって、これらの斜線をプリンタ95で印刷する
ために必要な書式データを生成する。ステップ393で
は、円弧の認識結果が登録されているテーブルTBL3を順
次に参照することによって、これらの円弧をプリンタ95
で印刷するための書式データを生成する。ステップ394
では、破線の認識結果が登録されているテーブルTBL4を
順次に参照することによって、これらの破線をプリンタ
95で印刷するための書式データを生成する。ステップ39
5では、文字の認識結果が登録されているテーブルTBL5
を順次に参照することによって、これらの文字をプリン
タ95で印刷するための書式データを生成する。
上記のステップ39では、最終的に印刷帳票格納領域98
4に得られる印刷書式データが、接続するプリンタ95の
仕様に合わせたデータ形式で生成される。上記データ形
式は、例えば通常のプリンタが外部インタフェースとし
て有しているビットマップ形式であってもよいし、コマ
ンドシーケンス形式であってもよい。
第73図(A),(B)は、ステップ391においてビッ
トマップ形式で印刷書式データを生成する場合の説明図
である。図(A)はテーブルTBL1に格納された1本の線
分データを示し、図(B)はこれに対応するビットマッ
プの印刷書式データを示す。図(B)のデータは、印刷
されるドットと1対1に対応した白画素の配列をメモリ
上に用意しておき、テーブルTBL1で定義された線分に対
応する部分、即ち図(B)に斜線で示した矩形領域5に
黒画素を代入することによって容易に得ることができ
る。斜線,円弧,破線データについても上記線分の場合
と同様にして印刷書式データを作成することができる。
尚、文字データは、予め別に用意された文字フォントパ
ターンを直接、または必要に応じて拡大縮小等の変形を
施した後、上記白画素配列の上の所定の位置に複写する
形で作成することができる。
一方、第74図は、ステップ391においてコマンドシー
ケンス形式で印刷書式データを生成する場合の説明図で
ある。図(A)はテーブルTBL1に格納された1本の線分
データを示し、図(B)はこれに対応する線分を描くた
めのコマンドシーケンス形式の印刷書式データを示す。
図(B)のデータは、テーブルTBL1の各項目の値に応じ
て所定のコマンドシーケンスを発生するための規則を予
めステップ391の中に定義しておくことによって、容易
に得ることができる。斜線,円弧,破線,文字データに
ついても、上記線分の場合と同様にして作成することが
できる。尚、プリンタ95がTBL1〜TBL5の内容をそのまま
の図形種別や精度で出力できない場合は、印刷書式デー
タからプリンタに合せた近似データを得るための手順も
上記印刷書式データ生成ステップ39に定義しておくこと
になる。
第75図は帳票作成ステップ3の第2の実施例を示すフ
ローチャートである。本実施例では、上述した印刷書式
データ生成ステップ39に先だって、まずテーブルTBL1〜
TBL5に格納された帳票書式データをコンソール91に表示
し(ステップ31)、オペレータの指示により上記書式デ
ータを編集、即ちデータの追加、更新、削除等の処理を
行なう(ステップ32)ようにしている。帳票書式データ
のコンソール91への表示(ステップ31)は、例えば上記
印刷書式データ生成ステップ39と同様の方法で、印刷書
式データをコンソール91のビットマップメモリに展開す
ることによって実現できる。ステップ32で行なう編集処
理は、第37図で説明した後処理ステップ29における線の
修正ステップ291および文字の修正ステップ292と同様、
ワードプロセッサやCADシステムで広く知られた技術を
適用できるので、ここでは説明を省略する。
上記実施例によれば、表示された帳票EX1に対して編
集を加え、例えば第76図に示す如くレイアウト変更され
た帳票EX10の印刷書式データを生成することも可能であ
る。また、上記第2の実施例によれば、例えば第77図に
示すような帳票EX11を作成し、その印刷書式データを生
成することも可能である。この場合、帳票の内容データ
は書式として印刷されている。印刷のみを目的とする場
合には、書式データと内容データを区別する必要はな
く、このような利用方法が可能である。上記処理によっ
て最終的に得られる印刷書式データは、前述した第1の
実施例と同様、印刷帳票格納領域984に登録される。
以上述べた2つの実施例は、帳票書式認識ステップ2
における物理構造認識結果を利用することを前提として
説明したが、論理構造認識結果の一部であるテーブルTB
L7、即ち行桁正規化ステップ221の結果の情報をもと
に、同様の処理を行なうことも可能である。この場合の
処理は、以上の実施例で文字コードを扱う処理と同様の
方法で実現できる。このとき印刷される書式データは、
幾何学的には必ずしも入力した帳票の書式とは一致しな
いが、文字や罫線の素片がすべて格子状に配列されてい
るため、上記の帳票書式編集処理22がオペレータにとっ
ては極めて容易となる。
第78図は帳票作成ステップ3の第3の実施例を示すフ
ローチャートである。この実施例では、まずステップ33
において前述の帳票書式認識結果を利用して、これに適
合する帳票内容データを作成し、帳票内容格納領域983
に格納する。帳票内容データは、例えばテーブルTBL5と
同様の形式で格納することができる。次にステップ34
で、前の実施例における帳票書式データと同様にして、
印刷(出力)用のデータに変換し、出力帳票格納領域98
4に格納する。
第79図は帳票内容データ作成ステップ33の第1の実施
例を示すフローチャートである。ステップ31では、前記
第2の実施例と同様にして、帳票の書式データをコンソ
ール91に表示する。ステップ331では、オペレータがコ
ンソール91から入力したキー情報を読取る。キー情報と
しては、例えばカーソル移動、帳票に記入すべき内容デ
ータ、諸機能を指示するコマンドなどが含まれる。この
情報が終了コマンド以外のときは、ステップ332におい
て、入力されたキー情報に従って帳票の内容データの入
力処理を行なう。上記入力処理では、例えばカーソル位
置に指定した文字または文字列を新たに定義する処理の
他、その後にこれらの入力データを変更、削除する処理
などの処理が可能である。上記入力処理により、帳票内
容格納領域983に、例えば文字テーブルTBL5と同様の形
式の内容データが新たに定義される。
上記帳票内容データ作成ステップ33によれば、例えば
帳票書式EX1,EX10、または第80図に示す書式EX12をもと
にして、それぞれ発行帳票EX2,EX11、および第81図に示
すEX13のような内容データを作成することができる。
第82図は帳票内容データ作成ステップ34の第2の実施
例を示すフローチャートである。ステップ333では、当
該帳票書式のうち任意の入出力フィールドを選択する。
上記選択は、自動的に行なってもよいし、オペレータか
らの指示で行なってもよい。ステップ334では、上記選
択された入出力フィールドに対応する内容データを、フ
ァイル等から検索する。この処理は、選択された入出力
フィールドが属するユニットの名称等に基づいて、対応
するファイルを自動的に検索することもできるし、オペ
レータの指示で行なってもよい。上記検索の結果、入出
力フィールドに対応するデータが存在する場合には、ス
テップ332で上記データを上記入出力フィールドに入力
する。すなわち、第79図における入力処理332と同様に
して、帳票内容格納領域983に、例えば文字テーブルTBL
5と同様の形式と内容データを新たに定義する。
上記第2の実施例による処理の実例を、第80図に示す
帳票書式EX12を例にして説明する。尚、ステップ334で
検索するファイルは、例えば第83図に示すような構成と
する。本ファイルはファイル全体の管理情報F1と、題名
ファイルF2、氏名ファイルF3,要旨ファイルF4,本文ファ
イルF5から構成される。
まず、書式EX12の題名に関する入出力フィールドが自
動的選択されると、これに対応するデータが題名ファイ
ルF2から読みだされ、帳票EX13に示すように、入出力フ
ィールドと対応する位置に内容データとして定義され
る。以下同様にして、氏名、要旨の入出力フィールドの
内容を定義することができる。上記実施例によれば、EX
12のような書式データを画像入力するだけで、基本とな
るファイルから自動的にその内容データを生成し、EX13
のような帳票を容易に作成することができる。
第84図は帳票内容データ作成ステップ33の第3の実施
例である。本実施例では帳票の作成に、第51図と第55図
で説明したステップ224のフィールド属性認識結果を用
いる。最初のステップ31では、帳票の書式をコンソール
91に表示する。次のステップ333では、当該帳票の入出
力フィールドのうち、処理済のフラグが付加されていな
いフィールドを1つ選択する。処理済のフラグは、各フ
ィールドに対して1個からなる配列である。選択した入
出力フィールドの属性が関数入力属性のときは、以下ス
テップ335で、関数の計算を行ないこれを内容データと
して新たに定義すると共に、処理済のフラグを付加す
る。選択した入出力フィールドの属性がファイル入力属
性のときは、まず当該フィールドのファイルを検索する
ために必要なパラメータ、即ちテーブルTBL11におけるT
M1〜TM(DN−1)がすべて入力済か否かを確認する。入
力済の場合には、ステップ334でファイルから内容デー
タを検索し、これを新たな内容データとして定義すると
共に、処理済のフラグを付加する。選択した入出力フィ
ールドの属性が計算入力属性のときは、まず当該フィー
ルドの計算式を実行するために必要なパラメータ、即ち
テーブルTBL12におけるOP1〜OP(N−1)がすべて入力
済か否かを確認する。入力済の場合には、ステップ336
で対応する計算式を実行し、その結果を新たな内容デー
タとして定義すると共に、処理済のフラグを付加する。
選択した入出力フィールドの属性がキー入力属性のとき
は、以下ステップ331で、キーボードからのデータ入力
処理を行い、結果を内容データとして新たに定義すると
共に、処理済のフラグを付加する。1回の入出力フィー
ルドの処理が終了すると、ステップ31で書式および更新
された内容データをコンソール91に表示する。以下前記
の処理済フラグがすべてのフィールドに付加されるまで
上記処理を繰り返す。
第85図は帳票内容データ作成ステップ33の第4の実施
例である。本実施例では帳票の作成に、ステップ23の帳
票作成プログラム生成処理の結果を用いる。ステップ33
7では、ステップ23で求めた帳票作成プログラムの編集
を行なう。本処理により、オペレータは認識誤りを修正
したり、必要に応じて認識したプログラムを拡張するこ
とができる。ステップ338では、上記帳票処理プログラ
ムを起動する。以下このプログラムの制御のもとで帳票
が作成されるので、本プログラムはその終了を監視すれ
ばよい。
以上の実施例においては、行桁の正規化処理を物理構
造認識結果に対して行ない、その後にフィールド位置認
識等の他の論理構造認識処理を実行したが、第51図
(A)の如く上記フィールド位置認識などの論理認識処
理を物理構造認識結果に引き続いて行ない、論理認識結
果を示すデータの行桁正規化を行なうようにすることも
できる。
以上で本発明の基本的実施例の説明を終了するが、以
下この実施例の動作例を中心に、さらに補足説明を行
う。
第86図は本発明におけるオペレータの操作手順と代表
的な画面の遷移を示す図である。図において、A201は、
帳票用紙の例である。このような用紙を、ステップA202
で画像入力装置93(例えばOCRの読取り装置、FAX等)に
入力する。上記ステップA202では、読み込んだ用紙に記
載してある罫線、文字、画像などの情報が画像データか
ら認識され、前記実施例で詳述した文書の物理構造デー
タが生成され、この物理構造データに基づく文書情報が
画面A203のようにディスプレイ画面に表示される。オペ
レータは、このディスプレイ画面上の表示された形式と
読み込んだ用紙の内容との比較確認をステップA204で行
う。
ここで修正、追加があれば、ディスプレイ画面上でカ
ーソルをその修正、追加位置にセットし、修正、追加の
結果を見ながら修正、追加作業を行う。確認、修正が終
れば、続行キーをコンソール91(キーボード等)から入
力し、論理認識処理に入る。論理認識処理では、知識ベ
ースを使いながら罫線の形、文字列等を切り出し、その
内容、意味によって入出力フィールドの位置、大きさ、
属性等を決定する。その結果を、A203のディスプレイ画
面で表示したデータと対応づけ、決定した入出力フィー
ルドを例えば他の部分とは白と黒を反転したリバース形
でA205のディスプレイ画面に表示する。表示された内容
をA206で確認し、入出力フィールドの位置、大きさ、属
性に対して修正、追加があれば、結果を見ながら対話処
理にて修正、追加を行う。このとき、必要に応じて、試
行印刷を行い入出力フィールドの位置の微調整を行う。
確認修正終了後、続行キーをコンソール91のキーボード
等から入力し、次の処理プログラム作成処理に移行す
る。
まず、入出力フィールドの性質、位置、知識ベース34
0を利用し、各入出力フィールドごとに処理ロジックを
生成する。
例えば本データ処理システムで取扱うデータが、ファ
イル800に品番、品名、単価なる項目で整理されて格納
され、一方、知識ベース340に、品番と品名と単価が互
いに関連付けられるものであることを示す情報が予め蓄
えられているものとする。また、上記関連付けにおいて
は、品番がキーになること、および金額=単価×数量、
合計=金額+金額+…+金額である旨の知識も知識ベー
スに格納してあるものとする。
帳票用紙から認識された品番、品名、単価等の文字群
を、知識ベース340と照合すると、これらの内、品番を
入力することにより、他の値がファイル検索により得ら
れることが判る。これにより、品番を入力する処理手続
き、次にファイル800を検索して品名と単価を得る処理
手続きを生成することができる。しかし、実際には用語
がぴったり一致せずに、品番でなく商品番号の如く異な
る場合もある。そこで、知識ベースに品番だけでなく、
品番、商品番号、品名番号、品名Noなどの類似語を予め
登録しておくことにより、帳票から読み取った項目名称
とぴったり一致しない場合にも、処理手続きの生成が可
能になる。
また、数量、金額という文字群について知識ベースを
参照すると、数量を入力することにより、金額の値は単
価×数量を計算することにより得られることが判る。こ
のことから、数量を入力する処理手続き、次に金額を計
算する処理手続きを生成することができる。
更に、品番などの項目欄が複数個あることにより、前
述した品番と数量を入力し、品名、単価及び金額を得る
処理手続きをくり返し、最後に各金額の合計を計算する
処理手続きを生成することもできる。これらの手法によ
り、帳票フォーマットA201に示された、各々の出力すべ
き値を得るための処理手続き(プログラム)が生成され
る。作成したプログラムは、A207のようにディスク等に
格納される。作成されたプログラムは、ステップA208で
すぐに実行出来る。A209は、作成されたプログラムの実
行中の画面を示している。
オペレータは、例えば、キーボードから商品の品番
(コード)と、その商品の数量との組み合せを複数組入
力する。上記プログラムは、オペレータが入力した品番
を検索キーとして、上記商品に該当する品名と単価をあ
らかじめ用意してあるファイル800から検索し、品番毎
に単価と数量を乗算して金額を算出し、更に複数組から
なる取引での金額の合計を算出する。これらの実行結果
は、認識情報として入っている入出力フィールドの微調
整された位置にA210に示すように印刷することが出来
る。
第87図は、第86図の動作シーケンスと対応する主たる
プログラムモジュールの実行シーケンスを示す。以下、
第87図に沿って処理とデータの流れを補足する。
第88図(A)は、認識処理A303の流れを示している。
また、第88図(B)は、認識処理で扱う伝票の様式例を
示している。ここで、例えば記号CE1,CE2で示す部分の
ように三方、又は、四方が罫線100で囲まれた領域をセ
ルと呼ぶことにする。まずステップA401で入力した罫線
の情報からセル群を認識する。ステップA402では、セル
内の文字やセル外の文字から意味のある文字列を探し出
し認識する。次にステップA403でセルの種類や文字列の
意味から入出力フィールドとなるセル内の入出力フィー
ルド、セル外の入出力フィールドなどを決定する。その
後、文字列の意味から入出力フィールドの属性、性質を
決定し、入出力フィールドの位置や大きさの情報と一緒
に認識情報としてステップA404でデータファイル99(デ
ィスク、等)に格納する。
第89図は、セルの認識ステップA401の流れを示す図で
ある。ステップA501で、まず線分の補正を行う。第90図
(A)〜(F)は補正する線分の例を示す。図(A)〜
(C)は、それぞれ表の角部分の補正の例である。角の
補正は、縦線分、横線分を伸ばし、図(A),(B)に
示す円弧や図(C)に示す切り込み形状のものを縦横の
直線が直交して結び付いた形に補正する。また、図
(D)〜(F)のように完全には接触していない線分
は、交点誤差を補正する。
次に、ステップA502で線分の開始座標(X、Y)を
(Y、X)順に並びかえ、1本づつ置きながら領域を分
割し、セルを作成していく。この領域分割処理の動作例
を第91図で説明する。この例では状態A708の中に記号a
〜gで示すように、表は7本の線分から成り立っている
ものとする。
まず、状態A701で一番上にある横方向の線分aを選択
し、次に、状態A702で上記線分と交わる縦方向の線分b
を置くと、記号アとイで示す2つの領域に分かれる。状
態A703で縦方向の次の線分cを置くと、記号イで示す領
域が分割されて、記号ア、イ、ウで示す3つの領域とな
る。状態A704で縦方向の次の線分dを置くと、記号ウで
示す領域が分割されて、記号ア、イ、ウ、エで示す4つ
の領域となる。このようにして、例えば横方向の線分は
上から下、縦方向の線分は左から右に順に選択しなが
ら、互いに交わる線分を次々と置いていくと、状態A707
のように、記号アからケで示す9個の領域に分割され
る。ここで、三方、又は、四方が囲まれていないとセル
と見なさないため、後処理で、ア、エ、ケの3つの領域
を落し、結果として状態A708に示す6つの領域がセルと
して認識される。
セルの認識後は、ステップA402でセル内やセル外にあ
る文字列の認識処理を行う。入力された文字情報から意
味のある文字列を切り出し、左から右方向を基本とし、
先頭の文字の幅に少しでも重複する文字は、同一の行、
又は、列の文字列とみなす。
第92図(A)〜(D)は、この処理の動作例を示した
ものである。即ち、本来例図(A)のように文字の行の
開始位置が揃っているべきものが、図(B)のように各
文字の行開始位置が不揃いとなって認識された場合で
も、先頭の文字「ご」の文字幅にかかっている後続文字
「利」「物」「件」は、全て同一行にあるものとみな
す。また、図(C)のように一つの文字が、2つの行に
掛っている場合は、上の行の文字とみなす。従ってこの
例では、「店」は、「本」と同じ行にある文字と判断す
る。図(D)のように列開始位置が揃っているべき文字
列で各文字の列開始位置が不揃いであっても、上記と同
様に1文字幅以内のものは同一の文字列にあるものと判
断する。
次に、第93図(A)〜(C)によって、同一行、同一
列の文字を対象に、意味のある文字列の切り出す処理の
動作例を説明する。切り出し処理は、文字間隔の変換と
知識ベース340中の用語、単語とのマッチングで行う。
例えば、図(A)の「所」と「氏」の間隔イのように、
文字間隔が途中で広くなった場合は、そこを文字列の境
界と判断し、間隔が広く変化するまでの文字「住所」を
1つの文字列として切り出す。逆に、図(B)の如く、
文字間隔アから狭い文字間隔イに変化した場合、変化す
る前までの文字「電話」を1つの文字列として切り出
す。図(C)の例では、間隔アとイが同じであり、ウで
は、狭く変化し、エで広くしている。この例の場合に
は、間隔が変化したところを文字列の境界と判断する
と、「商品単」が切り出される。ウとエのように間隔が
一旦狭くなって次に広くなっている場合は、一旦変化し
たところを境界として文字列を切り出し、切り出された
文字列を知識ベース340中の用語又は単語と突き合わせ
る。知識ベース340にその文字列が存在すれば、そこま
で文字列の切り出しは正しかったと判断する。該当する
用語または単語が存在しなければ、最後の文字が次の文
字と結びついていると判断し、狭い間隔ウをもつ文字
「単」の前で区切って、「商品」を1つの文字列として
切り出す。このように文字間隔と知識ベースの照合とを
利用することにより、図(C)のような場合でも正しい
文字列「商品」「単価」「売上」を切り出すことができ
る。文字が縦に並んでいる場合も同じである。
行、又は、列ごとの切り出し処理が終ると、次に、同
一セル内で隣接する。複数行、複数列の文字列につい
て、組み合せて一つの意味を持つ文字列となっているか
否かを判断する。第94図(A)〜(E)にその処理の動
作例を示す。図(A)の例では、「取引先」と「コー
ド」が切り出されているが実は、「取引先」と「コー
ド」は、一つの文字列「取引先コード」となるべきもの
である。このように2つ以上の文字列を統合して一つの
文字列とする処理は、行と行の間隔が、標準文字CHの縦
幅α以内で、かつ各々の先頭又は最終の位置が、揃って
いる場合に行う。ただし、位置ずれ量が標準文字の横幅
β以内の場合は、誤差の扱いとする。図(A)の場合、
各文字列の先頭文字「取」と「コ」の縦方向の間隔をW
α、横方向の誤差をWβ、最終文字「先」と「ド」の横
方向の誤差をW′βとすると、Wα<αかつWβ<βま
たは、W′β<βの場合、これらを一つに統合すべき文
字列として認識し「取引先コード」とする。
文字列の切り出しは、基本的には上記方法で行うが、
図(B),(C)に示すように、セルが、縦長で2列n
行(n>2)のものや、図(D)に示すように2行、2
列のものに対しては、以下のような方法を取る。すなわ
ち、セルが縦長で2列n行の場合、各行の先頭の文字間
の間隔W1,W2,…が、図(C)のように標準文字の縦サイ
ズαのより大きい場合は横方向で切り出し、図(B)の
ように小さい場合は縦方向に文字を切り出す。これによ
り図(B)の場合、文字列「ご使用期間日」が切り出さ
れる。図(D)のように2行、2列の場合、特別に縦、
横の両方向から切り出し、知識ベースA340とのマッチン
グにより、決定する。図(D)の場合は、横読みにする
と「都府道県」となり、縦読みにすると「都道府県」と
なる。この場合、知識ベースとの照合により縦読みの
「都道府県」が採用される。知識ベース340でのマッチ
ングで決定できない場合は、横読みを基準とする。
以上述べたケースの他に、文字列の文字によって複数
行で一つの意味をなす場合がある。切り出した文字列の
最終もしくは、次の行の先頭の「の」「と」「又は」
「及び」「および」等の継続文字がある場合、間隔とは
無関係に、一つの文字列とする。図(E)では、先頭の
行が「取扱者の」で終っており、継続を表す文字「の」
が付いていることから次の行と一つにし「取扱者の住
所」として切り出しを行う。
以上説明したセルの認識ステップA401、文字列の認識
切り出しステップA402の後は、これらの情報からデータ
の入出力に使用する入出力フィールドを設定する処理ス
テップA403を行う。セルは、文字列の位置関係により、
例えば95図(A)〜(C)に示す3種類のセルに分類さ
れる。図(A)は、セルの中が文字列だけで出来てお
り、フィールドの作成できる余地のないセルであり、項
目セルあるいは見出しセルと呼ぶ。これは、入出力フィ
ールドの見出しとなるものである。図(B)は、セルの
中に文字列はあるが、面積の半分以下であり、セルの中
に入出力フィールドが出来ると判断される見出し付きセ
ルである。図(C)は、セルの中に「円」「kg」などの
単位を表す単語以外は入っておらず、そのセル自身が、
入出力フィールドになる入出力フィールドセルである。
第96図は第88図(A)のステップA403で実行される上
述の3種類のセルに分類するための処理ルーチンを示
す。ステップA1202で見出しのセルとフィールドとなる
セルの結び付けを行う。次にステップA1203で見出し付
きフィールドセル内の入出力フィールド設定を行い、ス
テップA1204で最後に見出しのセルと結び付かなかった
フィールドセルの見出し文字列を捜して結び付けると共
に、ステップA1205で罫線で囲まれていないセル外の文
字列から入出力フィールドを設定する。見出しのセルと
入出力フィールドとの結び付けは、見出しのセルを基点
として右方向および下方向に結び付ける。
本処理の動作例を第97図(A)〜(F)に示す。図
(A),(B)の場合、見出しセル「CE1」はフィール
ドセルCE2に結び付く。図(C),(D)のようにフィ
ールドセルが複数の領域に分割されている場合は、見出
しセルCE1に対しフィールドセルの全体部分CE2が結び付
く。図(E)の例のようにセル間の結び付きが重複する
場合、見出しセルCE1に対してはフィールドセルCE2が結
び付く。見出しセルCE3の場合は、フィールドセルCE4と
のフィールドセルCE6が結び付く。見出しセルCE5は、下
方にあるフィールドセルCE6が結び付く。ここでフィー
ルドセルCE6は、2つの見出しセルCE3とCE5から結び付
けられている。このような重複の場合には、結び付いて
いるフィールドセルの数の少ない方を優先する。従っ
て、この例の場合は、セルCE3に結び付いているフィー
ルドセルの数が多い為、フィールドセルCE6は見出しセ
ルCE5に結び付くことになる。
ただし、この規則は、図(F)のようなマトリックス
型の例には適用しない。この場合は、各入出力フィール
ドに対し、左側にある見出しが種類を表わし、上にある
見出しが内容を表わすことから、左と上と両方向からの
結び付けをしておく必要がある。図(F)の例では、入
出力フィールドCE5に対しては、見出しセルCE1とCE3
が、入出力フィールドCE7に対しては、見出しセルCE2と
CE3が、入出力フィールドCE6に対しては見出しセルCE1
とCE4が、又、入出力フィールドCE8に対しては見出しセ
ルCE2とCE4が結び付く。
見出し付きフィールドセル内への入出力フィールドの
設定は、空白領域の位置とセル内にある文字列の内容に
よって決定する。
第98図は処理されるフィールドの典型的例である。図
(A)は右半分が空いている例、図(B)は、下半分が
空いている例である。ただし、図(C)のように面積と
しては、半分以上残っていても、セルを4分割すると、
文字列が3つ以上の分割したセルにまたがる場合は、見
出しのセルとして扱い、フィールド領域の生成は行わな
い。フィールドの位置の設定は、中の文字列の内容によ
って左、右、上、下を決定するが、内容が決定出来ない
場合は、空いている領域を設定する。
文字列の内容の確認は、知識ベースA340とのマッチン
グによって行う。第99図は本処理の簡単な例、第100図
はその動作例を説明したものである。知識ベース340に
は、文字列に対応してフィールド位置情報を格納してい
る。例えば、「様」には「左」、「万円」には「左」、
「一」には「左右」といった情報が入っており、この文
字列とフィールド位置の対応情報に従いフィールドの作
成位置を決定する。第100図の(A),(B),(D)
の場合は左に、図(C),(E)の場合は右に作られ
る。知識ベース340に対応する文字列がない場合には、
空いている部分の右か下を入出力フィールドとして設定
する。
以上述べた結び付けの結果まだ結び付かない入出力フ
ィールドセルが存在する。この入出力フィールドセルに
は、その回りに存在する見出しとなるべき文字列を捜
し、これをフィールドセルと結び付ける。本発明の動作
の例を第101図(A)〜(E)を用いて説明する。基本
的には、図(A)に示す如く、入出力フィールドCEに対
し上、下間隔αと左右間隔βの範囲Sにある文字列を捜
す。図(B)の例では、「金額」が、探索範囲S内にあ
る文字列であり、フィールドCE1に対し「金額」が見出
し(項目名)となる。図(C)のように見出しとなる文
字列が複数ある場合は、左、右、下の優先順位で結び付
ける。上記例の場合は、「技術料」が見出しとなる。た
だし、図(D),(E)のように入出力フィールドの回
りに「円」「kg」など単位となりうる文字が付加されて
いる場合は、単位の付加されている方向と逆の方向の文
字列を見出しとする。図(D)の場合は、「技術料」が
見出しとなり、図(E)の場合は「金額」が見出しとな
る。
最後に罫線で囲まれていない文字列から入出力フィー
ルドを設定する。本処理を動作させて得られた結果の例
を第102図に示す。図において、記号ア、イ、ウ、エの
示す文字は、罫線で囲まれておらず、これらの文字列に
対して知識ベース340との付き合わせにより、入出力フ
ィールドを設定する。以上述べてきたように、入出力フ
ィールドの設定とそれに対する見出しが結び付けられ
る。
設定した入出力フィールドに対し、結び付いている見
出しの文字列の内容をもとに属性を決定し認識情報を生
成しながら認識情報ファイルに格納する。第103図は認
識情報の内容の例を説明したものである。各入出力フィ
ールド(ア〜オ…)ごとに位置a、長さb、幅c、入出
力領域内の文字数d、フィールドの領域名称e、属性f
を設定する。a〜cは、例えば1/10mm単位で設定する。
dのフィールド内文字数は、そのフィールド内に入れる
文字数のことであり、フィールドの大きさと標準文字サ
イズから計算し、設定する。
第104図(A)〜(C)は、文字数の求め方を説明す
るものである。図(A)において、フィールドCEに付さ
れた記号lとmは、フィールドの縦横の長さであり、
α、βは、文字の標準間隔を表わす。標準文字サイズを
図(B)のようにQ、Pで表わすと、文字数は次の式で
求められる。
図(C)に示すように、フィールドが細かなセルの連
続で成り立っている場合は、このセルの数が、文字数と
なる。求めた文字数は、あくまで標準文字サイズの場合
であり、オペレータは、後で、この文字数を変更するこ
とが出来る。数を多くすると印刷する文字の大きさは小
さくなり、数を少なくすると大きな文字を印刷する。
フィールドの名称は、見出しの文字列を設定する。例
えば第105図に示すようなマトリックス型の場合は、左
と上のセルが、入出力フィールドと結び付いている。一
般的にこういう形の場合、左の文字列が種類を表わし、
上の文字列が性質を表わしているので、項目名称として
は、「左の見出し+上の見出し」を設定する。従って、
記号CE1で示す入出力フィールド名称は「ボールペン仕
入単価」となり、記号CE2で示すフィールド名称は「ボ
ールペン小売単価」となる。同様に記号CE3で示すフィ
ールド名称は「万年筆仕入単価」、記号CE4で示すフィ
ールド名称は「万年筆小売単価」となる。これら設定し
たフィールド名称は、そのフィールドの属性や性質、処
理手続の組み立てに使われる。
上記方法で決定したフィールド名称をもとにして、知
識ベース340から合致するものを捜し、その属性を認識
情報として設定する。ここで知識ベース340について第1
06図を用いて説明する。知識ベース340は、用語部340A
と常識単語部340Bに分かれている。用語部340Aは、一般
的な用語が入っている。常識単語部340Bは、業務用語の
うち基本となる語尾単語を集めたものである。一般に業
務の用語は、語尾の単語ほどその用語の意味、内容を表
わしている。例えば、「前記売上金額」という用語は、
語尾の「金額」という単語で性質を表わしている。常識
単語部340Bは、性質を持っている単語を集めたものであ
る。また、これらの用語部と常識単語部のデータ構造は
同一形式であり、検索キーとなる用語や単語341の他、
同意語342、入力や出力、英数、漢字などの属性343、演
算式(実行処理ルール)344等の情報から成り立ってい
る。知識ベースに登録されるその他の情報については、
追って説明する。
この知識ベース340を使い、文字列の内容と用語、単
語とのマッチングにより処理を集めていく。このマッチ
ングの方法は、次の3つの方法を順次行っていく。まず
文字列と用語部340Aとの1:1マッチングを行う。次に文
字列と常識単語部340Bの単語との1:1マッチングをし、
さらに常識単語部を使って文字列の語尾単語を切り出
し、該当のものを見つけていく。入出力フィールドの属
性は、このフィールド名称を使って該当のものを捜し、
設定していく。
第107図は、知識データとのマッチング処理を動作例
を中心に説明した図である。図においてステップA2201
でフィールド名称が知識ベースの用語部340Aに登録され
ている用語と一致するかチェックする。あれば、上記フ
ィールド名称に対して該当知識ベース中の属性343を設
定する。なければ、ステップA2202でフィールド名称が
常識単語部340Bに登録されている単語と一致するかチェ
ックする。なければ、ステップA2203で常識単語部340B
の単語が、フィールド名称中に含まれているかをチェッ
クし、含まれている常識単語を選択する。ステップA226
0で選ばれた単語からなるべく語尾にあって、文字数の
多いものを採用し、採用した単語の属性を上記フィール
ド名称に設定する。例えば、ステップA2201とステップA
2202の処理で、フィールド名称を売上商品名とすると、
「売上商品名」は、知識ベースの用語部にも、常識単語
部にもない。従って、3つめのステップA2203の処理が
行なわれ、「品名」、「商品名」、「商品」の3つが候
補にあがる。この中でもっとも語尾にあり、文字数が多
い「商品名」が、選ばれ、「売上商品名」と言うフィー
ルドには、常識単語部340Aの「商品名」を単語とするレ
コードに含まれる属性343が設定される。
以上、全入出力フィールドの位置から属性までを求め
た後、これらの情報を認識情報としてファイルA350に書
込む。上記ファイルA350は、例えば第1図のデータファ
イル99(ディスク等)上に形成できる。それと同時に、
ディスプレイ上に形式と一緒に設定した入出力フィール
ドをリバースし、第85図のA205の画面が表示されて認識
処理が終了する。
次に認識処理の結果作成した認識情報をもとにプログ
ラムの作成を行う。作成したプログラムは、その場で実
行することが出来る形で出力される。プログラムの作成
において使用するファイルの名称は、作成開始後にオペ
レータが指定するか、又は、知識ベース340の中の用語
又は常識単語対応に指定されている。ここで、入出力フ
ィールドのうち、知識ベースの検索キー341となるもの
を、プログラム作成処理では、以降「検索項目」と呼ぶ
ことにする。
一般に伝票や、帳票を使った処理プログラムは、この
伝票や帳票の各項目ごとの処理から成り立っている。そ
してこの項目処理は、大別すると第110図の、記号アや
記号キで示す部分に入力されたデータをもとにファイル
検索し、該当するレコードを選んで来てレコードの内容
を記号イ,ク,ケ,で示す部分に代入したり、記号サや
記号シのように演算により求めた値を代入する処理に分
かれる。前者を検索項目処理、後者を演算処理と呼ぶも
のとする。
プログラムの作成は、第108図のように、まずステッ
プA2301で検索項目の処理ロジックを組み立てる。次に
ステップA2302で演算項目の処理ロジックを組み立て
る。その後、ステップA2303で同一ファイルのオープン
回数の最適化や冗長な処理の最適化を図る。
第109図に検索項目A2301の処理の手続きの流れを示
す。まず、ステップA2401で検索項目となりうるものを
全項目選びだす。次に、ステップA2402で選び出した各
検索項目対応に検索対象となるファイルと検索するファ
イル内の項目を捜し出す。これらを使用してステップA2
403で処理ロジックを組み立てる。
検索項目の選択は、知識ベース340の情報をもとに行
う。知識ベース340には、第106図に示した項目の他に、
第112図に示す如く、各用語、常識単語対応にこの用
語、単語が検索項目となるか否かを示す情報345が入っ
ており、各フィールド名称は、この知識ベースとのマッ
チングによって検索項目になるか否かを判断する。第11
1図は検索項目選択処理A2401のフローチャート、第112
図はその動作を説明するための知識ベースの内容の1例
を示す。ステップA2601とステップA2602で項目名称(フ
ィールド名称)と知識ベース340の用語、あるいは、常
識単語341とのマッチングを行う。マッチングする用語
あるいは単語が知識ベース340中に有れば、ステップA26
05で検索情報345をみて検索項目と成り得るかチェック
する。マッチングする用語あるいは単語が知識ベース中
になければ、ステップA2603で常識単語を使い項目名称
の語尾単語をチェックし、該当の常識単語をみつけ検索
項目と成り得るかチェックを行う。例えば第112図に示
す如く、項目名称が記号103で示され、知識ベースの用
語部と常識単語部が記号341で示される内容となってい
た場合、検索項目は、「顧客コード」、「部品コード」
の2つとなる。次に選出してきた検索項目に対し、検索
するファイルとファイルの上の検索項目を選び出し、ロ
ジックを生成する(ステップA2403)。
検索するファイルと項目のサーチ処理は、指定された
全ファイルの項目と検索項目名称とのマッチング処理、
検索項目名称を同意語に変換して全ファイルの項目との
マッチング処理、常識単語を使って項目名称を切り出
し、切り出した単語を多く持つファイルの項目を選択す
る処理という3段階で行う。
第113図(A)、第113図(B)は上記サーチ処理の流
れを説明する図である。ステップA2701で項目名称をデ
ータ項目の1として含むファイルを指定ファイル800〜8
00Cの中から捜す。あれば、そのファイルと項目が求め
るものである。なければ、ステップA2702で、項目名称
を知識ベース340を使い同意語変換する。ステップA2703
で上記変換した同意語をデータ項目として含むファイル
をサーチする。なければ、ステップA2704で常識単語を
使い項目名称から語尾単語を常識単語を使い切り出す。
ステップA2705では、上記切り出した単語をデータ項目
として持つファイルを捜す。見つかったファイルが一つ
の場合は、それが求めるものである。ない場合は、ファ
イル名と項目を「?」マークとしてロジックの組み立て
を行う。2つ以上のファイルが候補として選択された場
合、ステップA2706で項目名称から知識ベースにある常
識単語を見つける。次のステップA2707で、候補として
あがったファイル中のデータ項目の名称中で、上記ステ
ップA2706でに切り出した単語が一番多く含まれている
ものを見つける。2つ以上の候補が未だ絞り切れない場
合、ステップA2708で、上記切り出した単語を同意語に
変換し、これらの同意語を用いて上記候補となったデー
タ項目の名称を再度チェックし、ステップA2709で絞り
込む。このようにして最終的に一つの検索項目に対し、
一つの検索ファイルと一つの検索項目が決定される。
第114図(A)、第114図(B)は、上述のサーチ処理
の動作例である。ここでは記号700で示される値をもつ
商品コードが検索項目である。記号810はデータファイ
ル800A,800B中のデータ項目を示す。記号341と342は、
知識ベースの常識単語部に登録されている単語とその同
意語を示す。まずステップA2801で検索項目名称「商品
コード」とファイルの項目とをマッチングする。一致す
るものがないため、次に「商品コード」の同意語変換を
試みるが、この場合、知識データベースに「商品コー
ド」がない為、同意語でのマッチングは行なわれない。
次にステップA2803で検索項目名称の語尾単語を常識単
語を用いて切り出す。この例では文字列「コード」が切
り出される。上記語尾単語をもとにステップA2804でフ
ァイルのデータ項目810を捜すと「商品コード」と「コ
ード」が候補として選択される。ステップA2805で、
「商品コード」を常識単語を使って「商品」と「コー
ド」に分ける。「コード」は既に、語尾単語として処理
済みである為、ステップA2806では候補となったデータ
項目の中から「商品」を含んでいるデータ項目をサーチ
する。この場合「品コード」も「コード」も「商品」は
含んでいない。そこでステップA2807で、「商品」を常
識単語部に登録してある同意語342を用いて同意語
「品」に変換する。ステップA2808で上記候補データ項
目の中から同意語の「品」を含むものを選択する。これ
によって「品コード」が選択される。この例では、以上
の処理方式によって、検索項目「商品コード」に対応す
る検索ファイル名は「A」、検索に用いるファイル中の
項目名は「品コード」と決定される。
決定された検索ファイル名とデータ項目名をもとに第
109図のステップA2403でロジックを組み立てる。組み立
てられたロジックの1例を第115図に示す。図において
ステップA2901はファイルのオープン処理、ステップA29
02はオペレータにより入力されたデータをもとに該当レ
コードをファイルから読み出す処理である。ステップA2
903で該当レコードがなければ、ステップA2903でエラー
メッセージを出力し、ステップA2904で再入力待ちとな
る。該当レコードが有れば、ステップA2905で検索ファ
イルをクローズするというロジックを組み立てる。尚、
ファイルからの読出しコードは、メモリ上の作業領域に
記憶される。
第108図の演算項目処理手続の作成ステップA2302で
は、合計の項目を除き基本的に知識ベース340の用語、
単語対応に予め登録されている実行処理ルール344に従
って作成する。知識ベース340にルールが記述されてい
ない場合は、先の検索項目処理でデータファイルから検
索して来たレコードの中から該当の項目を設定し画面に
表示するというロジックを組み込む。知識ベース340の
演算ルールには、第116図に示すように範囲ルール344A
と実行処理ルール344Bがある。演算項目は、その名称と
知識データベースに登録されている用語または単語との
1:1マッチング、同意語と用語または単語との1:1マッチ
ング、常識単語部の単語をもとにした名称の切り出しに
よるサーチを行い、該当するルールを捜してくる。
知識データのこの実行処理ルールには、日付や時刻の
ルールと、項目名や性質を使った演算ルールとがある。
日付時刻のルールは、暦を表示したり、時刻を求めて表
示するための関数処理ルールである。項目名を使った演
算ルールは、ファイル中の項目名を用いて項算式が記入
してあるので、この記述されている項目名を捜し、記述
通りにロジックを組み立てて行く。性質を使った演算の
ルールは、伝票や帳票、ファイル中の項目で、指定され
る性質を持つものの合計を一つとして演算が行えるもの
である。第116図には、1例として、「単価」という性
質をもつ項目の全ての和と「数量」という性質を持つ項
目の和を乗算する例が示されている。知識ベースに登録
されている性質340は、用語又は単語対応に、その用
語、単語の特色を表わしている。上記性質は、例えば34
6′に示す8種類のものがあり、オペレータの追加、変
更が可能である。この性質を伴った演算ルールは、「Σ
性質」で表現する。
範囲ルールは、その項目の入力された値の範囲をチェ
ックするルールであり、生成するロジックの1例を第11
7図に示す。図において、ステップA3101は範囲内である
か否かのチェック処理、ステップA3102はエラーメッセ
ージを出力する処理、ステップA3103は再入力待ちの処
理である。
演算項目の1つである「合計」の項目は、知識データ
ベースに演算式がなくてもロジックを生成することがで
きる。「合計」は、一般的にその位置で何の項目の合計
を取るのかが理解出来る。例えば第118図(A)に示す
表の記号アで示す欄は、合計欄の上の位置にある金額の
合計を取れば良い。又、図(B)に示す表の記号イで示
す合計は、上記(A)と同様に上にある金額の合計を、
記号エで示す総計は、上にある記号ウの税額と記号イの
合計の総計を取れば良い。このように合計は、上に位置
する項目で「合計の性質を持つ項目」までの和を取るロ
ジックを生成する。図(C)に示す表の記号オのよう
に、明細の項目の一つとして合計が有る場合は、実行処
理ルールに従ってロジックを生成する。また、図(D)
に示す表の記号カのように合計の欄が離れている場合
は、合計の項目名称から処理する項目を捜し出し、その
項目の和を取るロジックを生成する。以上、述べた方式
によって認識情報から業務プログラムの生成が行なわれ
る。
印刷ステップA307では、第119図で示すように、認識
情報中の入出力フィールドの位置、幅、長さを使用して
プログラムの実行結果を指定の用紙に指の位置に印刷す
ることができる。記号EX100で示す伝票を入力し、認識
し、記号A305で示す認識情報が出来る。記号A209′に示
す画面を表示してプログラムを実行させ、実行結果は、
項目名と一緒にデータファイルA370に格納される。印刷
は、上記実行結果として記憶されている各項目名と一致
する認識情報を認識情報ファイルA350から捜し出し、そ
の領域位置に結果データを印刷する。このとき認識情報
中の領域に入る文字数から印刷すべき文字フォントの大
きさを求め、その文字の大きさで結果データを印刷する
ことが出来る。この方式により、オペレータは、印刷用
のデータストリームを組み立てる必要なく、すきな位置
に、すきな文字の大きさで印刷を行うことが出来る。
次に、本発明による帳票処理システムの装置構成の変
形例について説明する。
第120図は、システムを1台のデータ処理装置92を用
いて構成した場合のブロック構成図を示す。データ処理
装置92には、文書構造認識機構921、プログラム生成機
構922及び実行機構923が含まれている。画像入力を行な
う画像入力装置93、プリント出力を行なう出力装置95、
データの入力あるいは修正を行なうためのディスプレイ
911とキーボード912を備えたディスプレイ端末装置(コ
ンソール)91がデータ処理装置60に接続されている。
このような構成とすることによって、1台の処理装置
によってプログラムの開発、変更を行うことができる。
第121図は、本発明による帳票処理システムを1台の
データ処理装置92と複数台のディスプレイ端末装置91
A、91Bによって構成した例である。
データ処理装置92には、文書構造認識機構921、プロ
グラム生成機構922及び実行機構923が含まれている。端
末装置91A、91Bは、それぞれデータ伝送路40A、40Bによ
ってデータ処理装置92に接続されており、データ入力あ
るいは修正を行なうためのディスプレイとキーボードを
有している。さらに、画像入力装置93は端末装置91Aに
接続されており、入力された画像データは端末装置91A
およびデータ伝送路40Aを介してデータ処理装置92に伝
えられるようになっている。また、プリント出力を行な
う出力装置95は端末装置91Bに接続されており、データ
処理装置92からの出力データは、データ伝送路40Bおよ
び端末装置91Bを介して出力されるようになっている。
このような構成とすることによって、1台の端末装置
から開発作業を行ない、他方の端末装置から処理の実行
や変更作業を行なうといった使い分けが可能になる。ま
た、データ伝送路40A、40Bの距離を長くすることによっ
て、離れた場所での開発、実行や変更が可能になる。
第122図は、本発明による帳票処理システムを複数台
のデータ処理装置から構成した例である。
データ処理装置92Aには、画像入力装置93が接続され
ており、画像入力を行なう。
データ処理装置92Bには認識機構921が含まれており、
データ処理装置92Aからの画像データをコード形式のデ
ータ及び属性データに変換する。
データ処理装置92Cには生成機構922が含まれており、
コード形式のデータ及び属性データに基づいて生成機構
922で処理手続き(プログラム)の生成を行なう。
データ処理装置92Dは、実行機構923を含んでおり処理
手続きを実行する。このためにデータを入力する入力装
置912Dとプリント出力する出力装置95が接続されてい
る。
データ処理装置92Eは、ディスプレイ911Eとキーボー
ド912Eを備えており、認識機構921の出力情報の修正を
行なう。
データ処理装置92Fは、ディスプレイ911Eとキーボー
ド912Eを備えており、生成機構922の出力した処理手続
きの修正を行なう。
これらのデータ処理装置は、ローカルエリアネットワ
ークのような伝送路41により結合されている。尚、デー
タ処理装置間のデータの伝送には、出力データを一旦フ
ロッピーディスク媒体に入れてデータを持ち運ぶといっ
た方法を採用することも可能である。
このような構成とすることによって、負荷の分散が可
能となる。また、各データ処理装置の代りに、より低価
格な代用機を利用することが可能になる。例えば、デー
タ処理装置92Aの代りにファクシミリ装置を用いてもよ
いし、データ処理装置92Eとして安価なパーソナルコン
ピュータを用いることも可能である。
〔発明の効果〕
以上述べたように、本発明によれば、帳票の書式が記
載された用紙を画像として入力するだけで、データ入力
あるいは帳票発行のための書式情報(罫線,円弧,斜
線,破線,文字,フィールド位置,フィールド属性な
ど)、あるいは帳票作成プログラムなどを、自動的に定
義することができるため、新たなデータ入力フォーマッ
トや帳票発行処理を容易にできるという効果がある。ま
た画像として入力された書式情報を図形コード情報や文
字コード情報に自動的に変換できるため、この書式を高
画質で表示あるいは印刷ことができる。
【図面の簡単な説明】
第1図は本発明による帳票処理システムの全体構成を示
すシステム構成図、第2図は上記システムで実行する帳
票処理プログラムの基本的な動作を示すフローチャー
ト、第3図は画像として入力される帳票の1例を示す
図、第4図は上記システムから出力される帳票の1例を
示す図、第5図は帳票処理プログラムの実用的なフロー
チャートの1例を示す図、第6図は画像入力ステップ1
で実行されるサブルーチンのフローチャート、第7図
(A),(B)は入力画像と入力画像メモリとの関係を
説明するための図、第8図は帳票書式認識ステップ2で
実行されるサブルーチンの第1の実施例を示すフローチ
ャート、第9図は第8図の物理構造認識ステップ21で実
行されるサブルーチンの詳細を示すフローチャート、第
10図は第9図のブロック分割ステップ211の詳細を示す
フローチャート、第11図(A),(B)は上記ブロック
分割ステップで用いるテーブルT1とT2の構成を示す図、
第12図はブロック分割を具体的に説明するための画像の
1例を示す図、第13図は第9図の領域分割ステップ214
の詳細を示すフローチャート、第14図(A)〜(C)は
物理構造認識ステップ21の実行過程を具体的に説明する
ための図、第15図は第9図の領域種別認だ識ステップ21
6の詳細を示すフローチャート、第16図は第15図におけ
る左辺認識ステップ216−1の詳細を示すフローチャー
ト、第17図は左辺認識ステップ216−1で用いられるテ
ーブルT3の構成を示す図、第18図(A),(B)は上記
左辺認識ステップで処理する原画像と認識結果との具体
例を示す図、第19図は線分の認識結果を格納するために
用いるテーブルTBL1の構成を示す図、第20図(A)〜
(F)は非欄要素の代表的なパターンを示す図、第21図
は入力画像から円弧パターンを検出するため処理の説明
図、第22図は斜線情報を格納するためのテーブルTBL2の
構成図、第23図は円弧情報を格納するためのテーブルTB
L3の構成図、第24図は第9図の構成要素認識ステップ21
8の詳細を示すフローチャート、第25図は構成要素の種
別判定を説明するための図、第26図は第24図における直
線認識ステップ2181の詳細を示すフローチャート、第27
図は破線の構成要素の条件に関する説明図、第28図は第
24図における破線認識ステップ2182の詳細を示すフロー
チャート、第29図は破線テーブルTBL4の構成図、第30図
は第24図における文字認識ステップ2183の詳細を示すフ
ローチャート、第31図は文字列の構成要素の条件に関す
る説明図、第32図(A)〜(C)は上記文字認識ステッ
プの処理過程を説明するための図、第33図は文字認識結
果を格納するためのテーブルTBL5の構成図、第34図は帳
票書式認識ステップ2の他の実施例を示すフローチャー
ト、第35図は第34図における前処理ステップ20の詳細を
示すフローチャート、第36図(A),(B)は上記前処
理ステップで処理される入力画像の1例を示す図、第37
図は第34図における後処理ステップ29の詳細を示すフロ
ーチャート、第38図は第37図における線の修正処理ステ
ップ291の詳細を示すフローチャート、第39図は第37図
における文字の修正処理ステップ292の詳細を示すフロ
ーチャート、第40図は単語情報を格納するためのテーブ
ルTBL6の構成図、第41図は帳票書式認識ステップ2の他
の実施例を示すフローチャート、第42図は第41図におけ
る論理構造認識ステップ22の第1の実施例を示すフロー
チャート、第43図は第42図における行桁正規化ステップ
の詳細を示すフローチャート、第44図は上記行桁正規化
ステップで用いるテーブルTBL7の構成図、第45図
(A),(B)は文字等のパターンの基準点を説明する
ための図、第46図(A),(B)はそれぞれ第41図の論
理構造認識ステップの他の実施例を示すフローチャー
ト、第47図は第46図におけるフィールド位置認識ステッ
プ222の詳細を示すフローチャート、第48図(A),
(B)はフィールド位置認識を容易にするために行なわ
れる表形式正規化処理を説明するための図、第49図はフ
ィールドテーブルTBL8の構成図、第50図(A),(B)
はフィールド位置認識の実行結果の1例を説明するため
の図、第51図(A),(B)は第41図における論理構造
認識ステップ22の他の実施例を示すフローチャート、第
52図は第51図におけるフィールド関係認識ステップ223
の詳細を示すフローチャート、第53図はユニット情報を
格納するためのテーブルT4の構成図、第54図はフィール
ド関係認識結果の1例を示す図、第55図は第51図におけ
るフィールド属性認識ステップ224の詳細を示すフロー
チャート、第56図〜第59図は第55図の名称マッチングス
テップ2242で参照される各種のテーブルにKNW1〜KNW4の
構成図、第60図〜第65図はフィールド属性認識ステップ
224で参照される各種の属性情報設定テーブルTBL9〜TBL
14の構成図、第66図は帳票論理構造認識により形成され
るテーブルTBL9〜TBL14の内容の具体例を示す図、第67
図は帳票書式認識ステップ2の第3の実施例を示すフロ
ーチャート、第68図は第67図における帳票作成プログラ
ム生成ステップ23の詳細を示すフローチャート、第69図
は上記生成ステップ23で生成されるプログラムの1例を
示す図、第70図は第68図における入出力フィールド処理
生成ステップ235の詳細を示すフローチャート、第71図
は第2図における帳票作成ステップ3の1実施例を示す
フローチャート、第72図は第71図における印刷書式デー
タ生成ステップ39の詳細を示すフローチャート、第73図
(A),(B)はビットマップ形式の印刷書式データの
生成についての詳細図、第74図(A),(B)はコマン
ドシーケンス形式の印刷書式データの生成についての説
明図、第75図は帳票作成ステップ3の他の実施例を示す
フローチャート、第76図と第77図はそれぞれ印刷して出
力される帳票の1例を示す図、第78図は帳票作成ステッ
プ3の更に他の実施例を示すフローチャート、第79図は
第78図における帳票内容データ作成ステップの実施例を
示すフローチャート、第80図は原稿となる帳票の1例を
示す図、第81図は内容の追加された発行帳票の1例を示
す図、第82図は帳票内容データ作成ステップ33の第2の
実施例を示すフローチャート、第83図は第82図のステッ
プ334で検索されるファイルの1例を示す図、第84図は
帳票内容データ作成ステップ33の第3の実施例を示すフ
ローチャート、第85図は帳票内容データ作成ステップ33
の第4の実施例を示すフローチャートである。 また第86図は本発明システムの動作の1例を説明する
ための帳票と画面のフロー図、第87図は第86図の動作と
対応するデータのフロー図、第88図(A),(B)は認
識処理の流れを示すフローチャートおよび認識処理で扱
う伝票の様式例を示す図、第89図はセルの認識処理の流
れを示すフローチャート、第90図(A)〜(F)は補正
する線分の例を示す図、第91図は領域分割処理の中間状
態を示す模式図、第92図(A)〜(D)は認識する文字
列の例を示す図、第93図(A)〜(C)は同一行列の文
字を対象に意味のある文字列の切り出し処理を説明する
ための説明図、第94図(A)〜(E)は複数行列で一つ
の意味を持つ場合の文字列を切り出す処理を説明するた
めの説明図、第95図(A)〜(C)はセルと文字列の位
置関係の例を示す例示図、第96図は入出力フィールドの
設定処理を示すフローチャート、第97図(A)〜(F)
は見出しのセルと入出力フィールドとの結び付け処理を
説明するための説明図、第98図(A)〜(C)は見出し
つきセルにおけるフィールドの設定例を示す例示図、第
99図は文字列の意味によるフィールドの設定処理を説明
するための説明図、第100図(A)〜(E)は文字列の
意味により設定されるフィールドの例示図、第101図
(A)〜(E)は見出し文字とフィールドセルの結び付
け処理を説明するための説明図、第102図はセルで囲ま
れていない文字列により作成されたフィールドの1例を
示す図、第103図は認識情報の内容を示す例示図、第104
図(A)〜(C)は文字数の求め方を説明するための説
明図、第105図はマトリックス型の場合のフィールド名
称の付け方を示す説明図、第106図は知識ベースの内容
の1例を示す図、第107図は知識ベースとのマッチング
処理を説明するための図、第108図は処理プログラム作
成処理を示すフローチャート、第109図はファイル検索
項目の処理手続き作成処理を示すフローチャート、第11
0図はファイル検索項目と処理項目の1例を示す図、第1
11図は検索項目の選択処理の流れを示すフローチャー
ト、第112図は検索項目の選択処理を説明するための説
明図、第113図(A)は検索するファイルと検索項目と
なる項目のサーチ処理を説明するための説明図、第113
図(B)は検索するファイルと検索項目となる項目のサ
ーチ処理の流れを示すフローチャート、第114図
(A),(B)は検索項目のサーチ処理を説明するため
の説明図、および検索項目のサーチ処理の流れを示すフ
ローチャート、第115図は決定された検索ファイルと項
目に基づくロジック組み立て結果のフローチャートの1
例を示す図、第116図は知識ベースの演算ルールの記述
を説明するための説明図、第117図は範囲チェックロジ
ック組み立て処理の結果を示すフローチャートの1例を
示す図、第118図(A)〜(D)は「合計」の求め方を
説明するための図、第119図は印刷処理の流れを説明す
るための図、第120図〜第122図は本発明による帳票処理
システムの他の構成例を示す図である。 符号の説明 91……コンソール、92……プロセッサ、93……画像入力
装置、95……プリンタ、1……画像入力プログラム、2
……帳票書式認識プログラム、3……帳票作成プログラ
ム、4……帳票出力プログラム。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 土屋 雅幸 神奈川県横浜市中区尾上6丁目81番地 日立ソフトウェアエンジニアリング株式 会社内 (72)発明者 鈴木 仁 愛知県尾張旭市晴丘町池上1番地 株式 会社日立製作所旭工場内 (72)発明者 山田 昇司 神奈川県川崎市幸区鹿島田890番地の12 株式会社日立製作所情報システム工場 内 (72)発明者 松田 敏彦 愛知県尾張旭市晴丘町池上1番地 株式 会社日立製作所旭工場内 (72)発明者 藤瀬 洋 神奈川県横浜市戸塚区戸塚町5030番地 株式会社日立製作所ソフトウェア工場内 (72)発明者 久野 恵章 神奈川県川崎市幸区鹿島田890番地の12 株式会社日立製作所情報システム工場 内 (72)発明者 小合 一太郎 東京都千代田区神田駿河台4丁目6番地 株式会社日立製作所内 (56)参考文献 特開 平1−129358(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 9/00 - 9/40 G06T 11/00 - 11/60 G06F 19/00

Claims (27)

    (57)【特許請求の範囲】
  1. 【請求項1】文字または数値データを書込むための少な
    くとも1つの空フィールドを含む書式表示を画面上に生
    成する方法であって、 原文書画像から1つの文書を構成している文字パターン
    と線パターンとの物理的な配置を認識する第1ステップ
    と、 第1ステップで認識された文字および線パターンの配置
    を、表示画面上でのカーソル移動の基本ピッチの整数倍
    に適合する第2の配置に変換する第2ステップと、 第2ステップで得られた修正された第2の配置の文字お
    よび線パターンからなる書式表示を表示画面に出力する
    第3ステップと、 からなり、キーボードからの入力文字列を所定の文字サ
    イズで、カーソルピッチに応じた位置に表示できる空フ
    ィールドを含む書式表示が得られるようにしたことを特
    徴とする書式表示の生成方法。
  2. 【請求項2】特許請求の範囲第1項において、更に、第
    1ステップで認識された物理的な配列をもつ文字パター
    ンと線パターンとからなる書式表示を表示画面に出力す
    るステップと、 上記表示画面に出力された書式表示に含まれる文字パタ
    ーンまたは線パターンの1部をユーザのキー操作に応じ
    て修正するステップと、 を有し、上記修正後の文字パターンと線パターンに対し
    て、前記第2ステップの配置変換が実行されるようにし
    たことを特徴とする書式表示の生成方法。
  3. 【請求項3】特許請求の範囲第1項において、1つの書
    式文書を画像入力手段により画像データに変換するステ
    ップを有し、該画像データを前記原文書画像として第1
    ステップが実行されるようにしたことを特徴とする書式
    表示の生成方法。
  4. 【請求項4】特許請求の範囲第3項において、画像入力
    手段により入力された画像データから書式文書の傾きを
    検出し、傾きを補正するステップを有し、上記傾きの補
    正された画像データを原文書画像として前記第1ステッ
    プが実行されるようにしたことを特徴とする書式表示の
    生成方法。
  5. 【請求項5】特許請求の範囲第1項において、更に、第
    1ステップで認識された複数の文字パターンの中から、
    互いに隣接する複数の文字からなる複数の文字列を抽出
    するステップと、 予め記憶してある標準的な単語群あるいは用語群と上記
    抽出された文字列とを比較し、文字列を構成する1部の
    文字パターンを、標準的な1つの単語または用語中の文
    字パターンと一致するように自動的に修正するステップ
    と、 を有し、修正後の文字パターンと線パターンに対して、
    前記第2ステップの配置変換が実行されるようにしたこ
    とを特徴とする書式表示の生成方法。
  6. 【請求項6】書式文書の作成方法であって、 原文書画像から、1つの文書を構成している文字パター
    ンと線パターンとの配置を認識し、認識結果を文書の物
    理構造データとして記憶する第1ステップと、 第1ステップで認識された文字および線パターンの配置
    を、表示画面上でのカーソル移動の基本ピッチの整数倍
    に適合する第2の配置に変換し、変換結果を正規化文書
    データとして記憶する第2ステップと、 上記正規化文書データにより作られる第2の配置をもつ
    書式表示を表示画面に出力する第3ステップと、 上記書式表示に含まれる上記線パターンにより形成され
    た少なくとも1つの空フィールド領域に、ユーザが指定
    した文字データまたは数値データを表示する第4ステッ
    プと、 ユーザが第4ステップで入力した文字データまたは数値
    データを前記文書の物理構造データと組み合せてプリン
    タ手段に出力する第5ステップとからなることを特徴と
    する書式文書の作成方法。
  7. 【請求項7】特許請求の範囲第6項において、更に、第
    1ステップで認識された物理的な配列をもつ文字パター
    ンと線パターンとからなる書式表示を表示画面に出力す
    るステップと、 上記表示画面に出力された書式表示に含まれる文字パタ
    ーンまたは線パターンの1部をユーザのキー操作に応じ
    て修正するステップと、 を有し、上記修正後の文字パターンと線パターンに対し
    て、前記第2ステップの配置変換が実行されるようにし
    たことを特徴とする書式文書の作成方法。
  8. 【請求項8】特許請求の範囲第6項において、1つの書
    式文書を画像入力手段により画像データに変換するステ
    ップを有し、該画像データを前記原文書画像として第1
    ステップが実行されることを特徴とする書式文書の作成
    方法。
  9. 【請求項9】特許請求の範囲第8項において、画像入力
    手段により入力された画像データから、書式文書の傾き
    を検出し、傾きを補正するステップを有し、上記傾きの
    補正された画像データを原文書画像として前記第1ステ
    ップが実行されるようにしたことを特徴とする書式文書
    の作成方法。
  10. 【請求項10】特許請求の範囲第6項において、 第1ステップで認識された複数の文字パターンの中か
    ら、互いに隣接する複数の文字からなる複数の文字列を
    抽出するステップと、 予め記憶してある標準的な単語群あるいは用語群と、上
    記抽出された文字列とを比較し、文字列を構成する1部
    の文字パターンを、標準的な1つの単語または用語中の
    文字パターンと一致するように、自動的に修正するステ
    ップと、 を有し、修正後の文字パターンと線パータンに対して、
    前記第2ステップの配置変換が実行されることを特徴と
    する書式文書の作成方法。
  11. 【請求項11】データを書込むべき複数の空入出力フィ
    ールドを有する書式表示を利用するデータ入力方法であ
    って、 原文書画像から、1つの文字を構成している文字パター
    ンと線パターンとの配置を認識し、文書の物理構造デー
    タとして記憶する第1ステップと、 上記物理構造データを分析して、上記文書中に含まれる
    データ入出力フィールドと、各データ入出力フィールド
    に対応する項目名を見つける第2ステップと、 上記項目名に基づいて、予め用意してある知識ベースを
    参照し、上記各入出力フィールド毎に、そこに設定すべ
    きデータの入力源または生成ルールを示すものであり、
    1つの入出力フィールドが、キーボードからの入力デー
    タを設定するためのものか、データファイルから読出さ
    れたデータを設定するためのものか、他の少なくとも1
    つの入出力フィールドに設定されたデータに基づく計算
    により得られたデータを設定するものかの区分であるフ
    ィールド属性を求める第3ステップと、 上記物理構造データに基づいて生成した書式表示を表示
    画面に出力する第4ステップと、 上記表示画面に出力された書式表示に含まれる各データ
    入出力フィールドに、それぞれフィールド属性に応じた
    データ処理により、ユーザからのマニュアル入力データ
    または自動生成データを入力する第5ステップと、 を有することを特徴とするデータ入力方法。
  12. 【請求項12】データを書込むべき複数の空入出力フィ
    ールドを右する書式表示にデータを設定するためのプロ
    グラムを自動的に生成する方法であって、 複数の入出力フィールドを有する書式文書の画像から、
    1つの文書を構成している文字パターンと線パターンと
    の配置を示す物理構造データを抽出する第1ステップ
    と、 上記物理構造データを分析して、上記書式文書画像に含
    まれるデータ入出力のための複数の入出力フィールド
    と、項目名を示す文字列が記入されている少なくとも1
    つの固定フィールドとを認識する第2ステップと、 上記固定フィールドと入出力フィールドとの位置関係を
    調べ、各入出力フィールドに設定すべきデータの項目名
    を求める第3ステップと、 上記項目名に基づいて、予め用意してある知識ベースを
    参照し、各入出力フィールドに設定すべきデータの入力
    源または生成ルールを示すフィールド属性を求める第4
    ステップと、 上記フィールド属性に基づいて、表示画面上に出力した
    書式表示の空入出力フィールドにオペレータがデータを
    入力するためのプログラムを自動生成する第5ステップ
    と、 からなることを特徴とするプログラムの自動生成方法。
  13. 【請求項13】特許請求の範囲第12項において、前記物
    理構造データから、文字パターンおよび線パターンの配
    置を表示画面上のカーソル移動の基本ピッチの整数倍に
    適合するように変換した正規化書式データを得るステッ
    プを有し、前記第2ステップでは、前記物理構造データ
    の代りに上記正規化書式データが分析されて、前記フィ
    ールド認識が行なわれることを特徴とするプログラムの
    自動生成方法。
  14. 【請求項14】特許請求の範囲第12項において、前記第
    2ステップは、それぞれの少なくとも3辺が線パターン
    によって囲まれた矩形領域からなる複数のセル領域を抽
    出するステップと、 上記名セル領域に含まれる文字列の有無、または文字列
    の内容により、セル内の領域を入出力フィールドまたは
    固定フィールドとして識別するステップと、 上記セル領域の外にある特定の単語を見つけて、該単語
    に隣接する空白領域を入出力フィールドとして認識する
    ステップと、 からなることを特徴とするプログラムの自動生成方法。
  15. 【請求項15】特許請求の範囲第13項において、 前記第2ステップは、それぞれの少なくとも3辺が線パ
    ターンによって囲まれた矩形領域からなる複数のセル領
    域を抽出するステップと、 上記各セル領域に含まれる文字列の有無、または文字列
    の内容により、セル内の領域を入出力フィールドまたは
    画定フィールドとして識別するステップと、 上記セル領域の外にある特定の単語を見つけて、該単語
    に隣接する空白領域を入出力フィールドとして認識する
    ステップと、 からなることを特徴とするプログラムの自動生成方法。
  16. 【請求項16】書式表示へのデータ入力のためのデータ
    処理装置であって、 文字データまたは数値データを書込むための複数の空き
    フィールドを含む書式文書画像を格納するための第1メ
    モリ手段と、 所定のカーソル基本ピッチをもつ表示画面を備えた書式
    表示を出力するための表示手段と、 文字データあるいは数値データを入力するためのキー入
    力手段と、 上記キー入力手段から入力されたデータを、上記表示画
    面に出力されている書式表示内のカーソルが位置する空
    きフィールドに入力するよう制御する制御手段と、 からなり、上記制御手段は、第1メモリ手段に格納され
    ている書式文書画像から、1つの文書を構成している複
    数の文字パターンと線パターンの配置を認識して、文書
    の物理構造データを作り出すための手段と、上記文書の
    物理構造データから、文字パターンと線パターンの配置
    が上記表示画面におけるカーソル基本ピッチの整数倍に
    適合するよう修正された正規化文書データを生成するた
    めの手段とを有し、上記表示画面に上記正規化文書デー
    タにより定義される書式表示が、データ入力のために表
    示されることを特徴とするデータ処理装置。
  17. 【請求項17】特許請求の範囲第16項において、更にプ
    リンタ装置を有し、前記制御手段が、前記書式表示の空
    きフィールドに入力されたデータを前記物理構造データ
    で定義される文書フォーマットに組み合せて、上記プリ
    ンタ装置に出力することを特徴とするデータ処理装置。
  18. 【請求項18】特許請求の範囲第16項において、前記デ
    ータ処理装置が、書式文書の画像を入力するための画像
    入力手段を有し、該画像入力手段から入力された書式文
    書画像が前記第1メモリ手段に格納されることを特徴と
    するデータ処理装置。
  19. 【請求項19】書式表示へのデータ入力のためのデータ
    処理装置であって、 文字データまたは数値データを書込むための複数の空き
    フィールドを含む書式文書画像を格納するための第1メ
    モリ手段と、 書式表示を出力するための表示画面を備した表示手段
    と、 文字データあるいは数値データを入力するための入力手
    段と、 それぞれ複数項目からなる複数のデータレコードを格納
    するための第2のメモリ手段と、 単語あるいは用語に対応してそれぞれ複数項目の知識情
    報を記憶している知識ベース手段と、 上記表示画面に出力された書式表示に含まれる空きフィ
    ールドへのデータ入力を制御するための制御手段と、 からなり、上記制御手段は、第1メモリ手段に格納され
    ている書式文書の画像から、1つの文書を構成している
    複数の文字パターンと線パターンの配置を認識し、文書
    の物理構造データを作り出すための第1手段と、上記物
    理構造データを分析して、上記文書中に含まれるデータ
    入出力フィールドと、各データ入出力フィールドに対応
    する項目名を見つけるための第2手段と、 上記項目に基づいて上記知識ベースを参照し、上記各入
    出力フィールド毎に、そこに設定すべきデータの入力源
    または生成ルールを示すフィールド属性を求める第3手
    段と、 上記表示画面に出力される上記物理構造データで定義さ
    れる書式表示の空入出力フィールドにデータを入力する
    ためのプログラムを、上記フィールド属性に基づいて自
    動生成するための第4手段と、 前記文書の物理構造データから文字パターンと線パター
    ンの配置が、上記表示画面におけるカーソルの基本ピッ
    チの整数倍に適合するよう修正された正規化データを生
    成する第5手段と、 を有し、 上記プログラムの実行により、オペレータが入力手段か
    ら入力したデータと、上記第2メモリから読出されたレ
    コードに含まれるいずれかの項目のデータと、計算によ
    り得られるデータとが、上記書式表示の空入出力フィー
    ルドに選択的に設定され、前記第2手段が前記物理構造
    データの代りに上記正規化データを分析し、前記第4手
    段が、上記表示画面に出力される上記正規化データで定
    義される書式表示の空入出力フィールドにデータを入力
    するためのプログラムを自動生成するようにしたことを
    特徴とするデータ処理装置。
  20. 【請求項20】特許請求の範囲第19項において、前記デ
    ータ処理装置が、書式文書の画像を入力するための画像
    入力手段を有し、該画像入力手段から入力された書式文
    書画像が前記第1メモリ手段に格納されることを特徴と
    するデータ処理装置。
  21. 【請求項21】特許請求の範囲第19項において、更にプ
    リンタ装置を有し、前記制御手段が、前記書式表赤の空
    きフィールドに入力されたデータを前記物理構造データ
    で定義される文書フォーマットに組み合せて、上記プリ
    ンタ装置に出力することを特徴とするデータ処理装置。
  22. 【請求項22】データ記入欄を有する帳票の画像から、
    帳票の物理的構造と上記データ記入欄に関する論理的構
    造とを自動的に認識し、該認識結果に基づいて、表示画
    面に表示された上記帳票の書式表示中のデータ記入欄に
    データを入出力するための業務プログラムを自動的に生
    成するようにしたことを特徴とする業務プログラムの自
    動生成方法。
  23. 【請求項23】特許請求の範囲第22項において、前記表
    示画面における文字の表示条件に合致させて前記書式表
    示の様式を生成し、該書式表示に合せて前記業務プログ
    ラムを自動生成することを特徴とする業務プログラムの
    自動生成方法。
  24. 【請求項24】前記物理構造を示すデータに基づいて、
    表示画面に前記帳票画像と対応する書式表示を出力し、
    該書式表示の内容の1部をオペレータ操作により修正し
    た後、前記論理構造の認識を行なうことを特徴とする第
    22項または第23項に記載の業務プログラムの自動生成方
    法。
  25. 【請求項25】データ記入欄を有する帳票の画像から、
    帳票の物理的構造と上記データ記入欄に関する論理的構
    造とを自動的に認識し、該認識結果に基づいて、表示画
    面に形成された上帳票の書式表示中のデータ記入欄にデ
    ータを入出力するための業務プログラムを自動的に生成
    し、上記業務プログラムの実行により上記書式表示デー
    タを入出力した後、上記データが記入されている帳票を
    印刷出力するようにしたことを特徴とする帳票の発行方
    法。
  26. 【請求項26】前記物理構造を示すデータに基づいて、
    表示画面に前記帳票画像と対応する書式表示を出力し、
    該書式表示の内容の1部をオペレータ操作により修正し
    た後、前記論理的構造の認識を行なうことを特徴とする
    第2項記載の帳票の発行方法。
  27. 【請求項27】特許請求の範囲第25項または第26項にお
    いて、前記書式表示の様式を生成し、該書式表示に合せ
    て前記業務プログラムを自動生成し、 上記業務プログラムの実行により上記書式表示に入力さ
    れたデータを、前記認識された物理構造データまたは1
    部修正された物理構造データに基づく書式に組み合せて
    印刷出力することを特徴とする帳票の発行方法。
JP2-175246A 1989-09-25 1990-07-04 文書処理方式およびプログラム自動生成方法 Expired - Lifetime JP3028833B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP17546989 1989-07-10
JP20279489 1989-08-07
JP1-175469 1989-09-25
JP24629089 1989-09-25
JP1-202794 1989-09-25
JP1-246290 1989-09-25

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP11271784A Division JP2000076370A (ja) 1989-07-10 1999-09-27 帳票認識方法および装置
JP11271783A Division JP2000155795A (ja) 1989-07-10 1999-09-27 帳票認識方法および装置

Publications (2)

Publication Number Publication Date
JPH03179570A JPH03179570A (ja) 1991-08-05
JP3028833B2 true JP3028833B2 (ja) 2000-04-04

Family

ID=

Similar Documents

Publication Publication Date Title
KR930009639B1 (ko) 화상데이타를 이용하는 문서데이타 처리방법 및 장치
KR950006410B1 (ko) 서식문서의 화상표시/처리방법 및 장치
KR860001071B1 (ko) 문서편집(文書編輯)방법
US6651221B1 (en) System and methods for spacing, storing and recognizing electronic representations of handwriting, printing and drawings
JP3425408B2 (ja) 文書読取装置
US4195338A (en) Computer typesetting
JPH0581473A (ja) プログラムの作成方法
US20020184261A1 (en) Process of inputting and outputting a display table derived from a worksheet and data storage media programmed to perform the same
JP3028833B2 (ja) 文書処理方式およびプログラム自動生成方法
JP2000076370A (ja) 帳票認識方法および装置
JP3663865B2 (ja) 帳票処理装置及び記憶媒体
JP3509111B2 (ja) 文書出力方法および装置
JPH01229673A (ja) 英殴文印刷制御方式
JPH0452866A (ja) 業務プログラム自動生成方式
JP4276402B2 (ja) 帳票処理装置
JP2019109559A (ja) 機械学習装置及び機械学習プログラム
JP2682873B2 (ja) 表形式文書の認識装置
JPS5971528A (ja) 原稿作成機
JPH11316792A (ja) 情報処理装置及び帳表作成方法
JP3133385B2 (ja) 文字編集システム
JPH08315164A (ja) レイアウト修正装置
JP3071801B2 (ja) 文字編集システム
JPH07271897A (ja) 文字認識装置
JPH02110655A (ja) 文書作成装置
JPS63223955A (ja) 帳票デザインシステム