(57)【特許請求の範囲】
【請求項１】
所定の用紙に記入された文字を画像データとして取得する画像入力手段と、
前記取得した画像データから各文字を切り出し、各文字の位置及び大きさを文字座標から認識する認識手段と、
同一行の中で隣接する文字の間隔が所定の条件を連続で満たす場合に、これらの認識文字を１つのブロックに設定し、該ブロックの位置及び大きさを当該各文字の文字座標からブロック座標として認識するブロック認識手段と、
認識されたブロックのブロック座標を格納する第1の記憶手段と、
ブロックの高さが所定値以上であることを判定するサイズ判定条件を格納する第２の記憶手段と、
認識された前記ブロックのブロック座標より求まるブロックの高さが前記サイズ判定条件に該当するか否かを判定するサイズ判定手段と、
前記サイズ判定条件に該当すると判定されたブロックに対し、後処理を行う制御手段とを備えることを特徴とする文字読取装置。
【請求項２】
前記誤切り出し判定条件は、スクリプトにより記述されることを特徴とする請求項１に記載の文字読取装置。
【請求項３】
前記制御手段は、前記サイズ判定の結果に応じて、当該文字を別の文字に置換する処理、未処理、削除処理のうち、いずれか１つを前記後処理として行うことを特徴とする請求項１に記載の文字読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、読み取った文字、あるいは文字列に対して誤って文字を認識した可能性を判別し、誤認識したときは、読み取られた文字列について知識処理あるいは後処理を行うような文字読取装置に関する。
【０００２】
【従来の技術】
従来より、帳票イメージ上に記録された文字を読み取る文字読取装置が知られている。
【０００３】
従来の文字読取装置では、画像上の指定された領域を走査し、行切り出し処理によって行の座標を切り出し、文字切り出し処理によって行の座標内の文字の座標を検出する。そして、検出後、各文字の座標の画像についての文字認識処理を行う。
【０００４】
文字読取装置では、一般に、行の切り出し、文字の切り出しを行ってから文字認識が行われる。
行の切り出しを行うには、画像を横方向に走査し、黒画素数のヒストグラムを作成し、ヒストグラムの値が０になった箇所で各行を区切る。
【０００５】
また、文字の切り出しを行うには、画像を縦方向に走査し、黒画素数のヒストグラムを作成し、ヒストグラムの値が０になった箇所で区切り、各文字に分離する。
誤って文字を認識したときは、単語照合辞書等を用いた知識処理あるいは後処理と呼ばれる処理を行うことにより、誤読や不読の文字を置換して認識率を向上させる。
【０００６】
【発明が解決しようとする課題】
ところで、かかる従来の文字読取装置では、ヒストグラムを作成して行あるいは文字の切り出しを行うようにしているので、正しく行切り出し、文字切り出しを行えない場合がある。
【０００７】
図２は、かかる従来の説明図である。
例えば、図２（ａ）は、複数の文字に対して抹消線が施されている例を示す。尚、図中、破線で示す矩形は、１文字の正しい区分を示す。この場合、抹消線があるために文字間を正しく識別できなくなってしまう。従って、すべての文字を１つの文字と誤認識してしまい、正しく行切り出しを行えない。
【０００８】
また、図２（ｂ）は、複数の文字を丸囲いした例を示す。この場合、丸囲い線のために、２行の文字を縦長の１文字と認識してしまい、正しい行切り出しを行うことができない。
【０００９】
また、図２（ｃ）は、印字にずれが生じた例を示す。この場合、行間に間隙がなくなってしまい、行を正しく識別できず、２行の文字を縦長の１文字として切り出してしまう。
【００１０】
また、図２（ｄ）は、桁区切りの線が行に含まれている例を示す。この場合、文字認識処理には不要である桁線が文字として切り出されてしまう。
このように行切り出しや文字切り出し結果に誤りがあると、明らかに文字サイズや文字の位置が正しくなくても、検出された文字の矩形を各文字としてそのまま文字認識の処理がなされ、誤読が生じたり不要な文字が出力されたりして文字認識装置としての信頼性が低下する。
【００１１】
また、このような認識結果の修正するには、オペレータが手作業で行う必要があり、オペレータの負担も増大する。
従って、誤って文字を認識した可能性があるか否かを正しく判断し、誤って文字を認識したときは、後処理を自動的に行えるようにする必要がある。
【００１２】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
本発明の文字読取装置は、所定の用紙に記入された文字を画像データとして取得する画像入力手段と、前記取得した画像データから各文字を切り出し、各文字の位置及び大きさを文字座標から認識する認識手段と、同一行の中で隣接する文字の間隔が所定の条件を連続で満たす場合に、これらの認識文字を１つのブロックに設定し、該ブロックの位置及び大きさを当該各文字の文字座標からブロック座標として認識するブロック認識手段と、認識されたブロックのブロック座標を格納する第1の記憶手段と、ブロックの高さが所定値以上であることを判定するサイズ判定条件を格納する第２の記憶手段と、認識された前記ブロックのブロック座標より求まるブロックの高さが前記サイズ判定条件に該当するか否かを判定するサイズ判定手段と、前記サイズ判定条件に該当すると判定されたブロックに対し、後処理を行う制御手段とを備えることを特徴とする。
【００１３】
〈構成２〉
構成１の構成の文字読取装置では、誤切り出し判定条件は、スクリプトにより記述されることを特徴とする。
【００１４】
〈構成３〉
構成１の構成の文字読取装置では、制御手段は、前記サイズ判定の結果に応じて、当該文字を別の文字に置換する処理、未処理、削除処理のうち、いずれか１つを前記後処理として行うことを特徴とする。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例１〉
具体例１は、画像データから文字を認識し、認識された文字の位置及び大きさに対して、読み取り領域に適応したサイズ判定データを誤読判定条件として指定してサイズ判定を行い、誤読の可能性があるときは、不読等の後処理を行うようにしたものである。
【００２４】
図１は、具体例１の構成を示すブロック図である。
具体例１の文字読取装置は、画像入力部１と、表示部２と、入力部３と、制御部４と、認識部５と、サイズ判定部６と、画像メモリ２１と、読み取り領域情報格納メモリ２２と、認識結果格納メモリ２３と、判定データ格納メモリ２４と、判定結果格納メモリ２５と、参照座標格納メモリ２６と、を備えて構成されている。
【００２５】
画像入力部１は、イメージスキャナおよびＦＡＸ等のように、帳票上に記入された文字、図形を画像データとして入力する機能を有する画像入力手段である。
表示部２は、ディスプレイ等のように、オペレータに対して情報を表示する機能を有するものである。
入力部３は、キーボード、マウス等のように、オペレータからの入力を受け付ける機能を有するものである。
【００２６】
認識部５は、画像メモリ２１に格納されている画像データを参照して読み取り領域を走査し、行の切り出し及び文字の切り出しを行って各文字の位置及び大きさを文字座標で特定し、各文字の認識を行い、認識した文字を文字コードに変換する機能を有する認識手段である。
【００２７】
図３は文字座標の説明図である。
この図３に示すように、文字「あ」は認識対象の文字であって、この文字の位置及び大きさは、図中、破線で示すように文字「あ」を囲む矩形によって特定される。
この矩形は、所定の位置を原点とし、図中、左上の座標を（l,t）、右下の座標を（r,b）として、座標（l,t）−（r,b）で表され、この座標が文字座標となる。
【００２８】
サイズ判定部６は、認識部５によって認識された結果に対して、文字の位置及びサイズについてのサイズ判定を行い、これにより誤読の可能性を判定する機能を有する誤読判定処理手段である。
【００２９】
図４は、具体例１のサイズ判定に用いるサイズ判定データの一例を示す説明図である。
この図４に示すように、サイズ判定データには、複数の条件式及びその条件式に該当したときの処理方法が含まれている。
【００３０】
ここで、処理方法としての不読は、認識されて変換された文字コードを、例えば「？」などの認識結果として含まれるべきでない文字に置換してオペレータによる認識結果の修正作業を容易にするための処理である。
【００３１】
未処理は、予め後処理を行わないように指定条件が設定された文字を不読や削除などの処理から除外するための処理である。
削除は、不要と考えられる文字を削除する処理である。
尚、処理方法は条件式に応じて適宜、設定される。
【００３２】
制御部４は、文字読取装置の各ブロックを制御する機能を有するものである。
画像メモリ２１は、画像入力部１によって入力された画像データを格納するためのメモリである。
【００３３】
読み取り領域情報格納メモリ２２は、読み取り処理を行うための領域情報を格納するためのメモリである。
図５は具体例１の読み取り領域の説明図である。
一例として帳票を示す。この帳票には、文字が印字された読み取り領域Ａ〜Ｆが設定されている。認識対象の文字の大きさ、字体等は各領域毎に異なっており、サイズ判定は、この読み取り領域Ａ〜Ｆ毎に行われる。領域情報は、この領域の座標を指定するための領域指定情報とこの領域に適用されるサイズ判定用の条件式等を指定するためのサイズ判定データ指定情報とであり、読み取り領域Ａ〜Ｆ毎に格納されている。
【００３４】
認識結果格納メモリ２３は、各領域の座標及び、認識部５によって認識された文字座標及び文字コードを格納するものである。
判定データ格納メモリ２４は、図４に示すようなサイズ判定データを格納するためのメモリである。
【００３５】
判定結果格納メモリ２５は、サイズ判定を行った結果、最終的に得られた文字コード及びその文字座標を格納するためのメモリであり、この判定結果格納メモリ２５に格納されるこの文字コード及びその文字座標は、認識結果格納メモリ２３に格納されているデータ形式と同じ形式で格納される。
【００３６】
参照座標格納メモリ２６は、サイズ判定部６が認識結果格納メモリ２３を参照するための参照座標及び文字位置を格納するためのメモリである。具体例１では、参照座標として、認識部５によって認識された文字の文字座標が格納される。文字位置は、認識部５に格納されている文字のうち、参照する文字の位置を示すデータであり、参照する文字が例えば１文字目のときは１となる。
【００３７】
〈動作〉
次に具体例１の動作を説明する。
制御部４は各ブロックを制御して文字の読み取りを実行する。
【００３８】
図６は具体例１の動作を示すフローチャートである。
ステップ（図中、ステップを「Ｓ」と記す。）１では、画像入力部１が帳票等から画像データを読み込む。
画像データは画像メモリ２１に格納され、その領域情報は読み取り領域情報格納メモリ２２に格納される。
【００３９】
制御部４は、読み取り領域情報格納メモリ２２に領域情報が格納されているか否かを判定する（ステップ２）。
最初は、図５に示すように読み取り領域Ａが指定される。
認識部５は、画像メモリ２１に格納されている画像データを参照し、読み取り領域Ａの領域指定情報に基づいてこの読み取り領域Ａ内の画像イメージに対して行の切り出し、文字の切り出しを行い、各文字の座標を検出する。そして、この文字の認識を行う。認識された文字は文字コードに変換され、この文字座標及び変換された文字コードは認識結果格納メモリ２３に格納される（ステップ３）。
【００４０】
サイズ判定部６は、この認識結果に対してサイズ判定を行う（ステップ４）。
図７は、具体例１のサイズ判定部６が行うサイズ判定処理を示すフローチャートである。
ステップ１１では、認識結果格納メモリ２３から判定対象の文字座標及びその文字位置を取得し、取得した文字座標及び文字位置を参照座標格納メモリ２６に格納する。尚、最初の文字位置は１である。また、次の判定対象となる文字の文字座標及び文字位置がなければ、例えば文字座標及び文字位置をすべて０にした「矩形なし」の情報を参照座標格納メモリ２６に格納する。
【００４１】
ステップ１２では、参照座標格納メモリ２６に格納されている文字座標を参照し、判定対象となる次の文字座標の有無を判定する。
参照座標格納メモリ２６に「矩形なし」の情報が格納されていなければ、ステップ１３に進む。
【００４２】
ステップ１３では、サイズ判定データを用いて条件計算を行う。
サイズ判定の条件は便宜上、数式によって記述される。次式（１）〜（３）は、そのサイズ判定に用いる条件式の一例である。
（ｂ−ｔ＋１）＞Ｗth    …（１）
（ｒ−ｌ＋１）＞Ｈth    …（２）
ｔ＜ｔmin             …（３）
但し、ｌ、ｒ：矩形のｘ座標
ｔ，ｂ：矩形のｙ座標
Ｗth：幅（ｘ）方向の矩形の下限値（例えば４０）
Ｈth：高さ（ｙ）方向の矩形の下限値（例えば４０）
ｔmin：座標ｔの最小値（例えば１２００）
【００４３】
式（１）は文字座標から得られる矩形の高さ（ｙ方向）による誤読判定条件を示し、式（２）は文字座標から得られる矩形の幅（ｘ方向）による誤読判定条件を示し、式（３）は文字座標自体を誤読判定条件にしたものである。
【００４４】
尚、次式（４）に示すように、２つ以上の条件式を論理積（ＡＮＤ）あるいは、論理和（ＯＲ）で複合化してもよい。
（ｂ−ｔ＋１）＞４０ ＡＮＤ（ｒ−ｌ＋１）＞４０  …（４）
【００４５】
このサイズ判定データは判定データ格納メモリ２４に格納されている。読み取り領域情報格納メモリ２２に格納されているサイズ判定データ指定情報を参照し、このサイズ判定データ指定情報を用いて読み取り領域Ａに適応したサイズ判定データが指定される。文字座標は参照座標格納メモリ２６から取り出され、この文字座標にこの読み取り領域Ａのサイズ判定データを適用して誤読判定のための条件計算を行う。
【００４６】
この装置には、これらの条件式の真偽を計算する制御プログラムが格納されている。
条件計算は、まず、図４に示す最初の条件式に文字座標を代入することにより行われる。計算の結果、偽のとき、即ち、条件式を満足しないときは、次の条件式に文字座標を代入する。このように、順次、文字座標を条件式に代入し、真になったとき、そこで計算を終了させる。
【００４７】
例えば、図２（ａ）、（ｂ）に示すように、複数の文字に対して抹消線が施されている場合、複数の文字を丸囲いした場合には、式（１）、（２）を満足するようになる。また、図２（ｃ）、（ｄ）に示すように、印字がずれた場合、桁区切りの線が行に含まれている場合には、式（３）を満足するようになる。このような場合、各条件式の計算結果は真となる。
所定の条件式の計算結果が真となったとき、誤読の可能性があると判定され、それ以上の条件計算は行わない。
【００４８】
一方、すべての条件式についての計算結果が偽となったとき、このサイズ判定データによる条件計算は偽となる。このときは、誤読の可能性はないと判定される。
この計算結果は、判定結果格納メモリ２５に格納される。
【００４９】
ステップ１４では、まず、計算結果の真偽を判別する。
計算結果が偽のときは、ステップ１５に進む。
ステップ１５では、偽となった文字の文字位置を参照座標格納メモリ２６から取得し、誤読の可能性はないと判定されているので、認識結果格納メモリ２３に格納されているその文字位置の文字座標及び文字コードをそのまま判定結果格納メモリ２５へコピーする。
また、ステップ１４において、条件計算の結果が真となったときは、ステップ１６に進む。
【００５０】
ステップ１６では、処理方法を判別する。
例えば、図４において、認識対象文字の文字座標が条件式２を満足することにより計算結果が偽になったとき、処理方法は未処理となる。
【００５１】
処理方法が未処理のときは、ステップ１５に進み、予め設定された指定条件を満足する文字を不読や削除などの処理から除外するために認識結果格納メモリ２３に格納されているその文字位置の文字座標及び文字コードをそのまま判定結果格納メモリ２５へコピーする。
【００５２】
また、条件式１を満足することにより計算結果が偽になったとき、処理方法は不読となる。
処理方法が不読のときは、ステップ１７に進み、その文字の文字位置を参照座標格納メモリ２６から取得し、認識結果格納メモリ２３に格納されているその文字位置の文字座標を判定結果格納メモリ２５へコピーし、その文字の文字コードを、例えば「？」などの認識結果として含まれるべきでない文字に置換して判定結果格納メモリ２５に格納する。従って、オペレータは、この文字を視認することにより誤読の可能性を一目で識別できる。
また、処理方法が削除のときは、例えばゴミ等によってイメージ化され、誤読されたと考えられる不要な文字あるいは記号を削除する。
【００５３】
最初の文字についてのこのような処理が終了した後、ステップ１１に戻り、次の文字座標及び文字位置を取得して同じようにステップ１２〜１７を実行する。
そして、参照座標格納メモリ２６に「矩形なし」の情報が格納されたときは、ステップ１２において、読み取り領域Ａにおいて認識された全ての文字について、サイズ判定が行われたと判定し、ステップ２に戻る。
このような処理は、読み取り領域Ｂ〜Ｆについても行われ、全ての読み取り領域についてこのような処理が行われたとき、処理が完了する。
【００５４】
〈具体例１の効果〉
以上、説明したように具体例１によれば、文字認識対象の文字の読み取りを行うときに、各文字の座標および座標から求められる高さや幅等に対してサイズ判定データを設定し、サイズ判定を行うようにしたので、その文字座標から認識結果の各文字の誤読の可能性についての評価を適切に行うことができる。
【００５５】
また、処理方法が未処理のときは、予め不読処理を行わないように設定された指定条件を満足するような文字に対しては、未処理とすることにより、この文字を不読処理、削除処理から除外することができる。
【００５６】
また、認識結果に誤読の可能性が高いと考えられる文字に対しては、不読処理を行うことにより、その対象となった文字が「？」のような含まれるべきでない文字に置換されるので、オペレータは一目で視認でき、オペレータによる認識結果の修正作業が容易となる。
【００５７】
また、例えばゴミ等によってイメージ化されて誤読されたと考えられる明らかに不要な文字、記号に対しては、この文字を削除することにより、オペレータによる修正作業の負荷を軽減できる。
【００５８】
さらに、このようなサイズ判定を読み取り領域毎に行うようにしたので、読み取り領域毎に字体、文字種、大きさ異なっているような帳票においても各領域毎に適切な文字認識、サイズ判定を行うことができ、文字認識精度が向上する。
【００５９】
〈具体例２〉
具体例２は、文字座標に基づいて３つの文字の前後関係を算出し、この前後関係に対して誤読判定条件を設定し、サイズ判定を行うようにしたものである。
具体例２の文字読取装置は、具体例１と同様に、画像入力部１と、表示部２と、入力部３と、制御部４と、認識部５と、サイズ判定部６と、画像メモリ２１と、読み取り領域情報格納メモリ２２と、認識結果格納メモリ２３と、判定データ格納メモリ２４と、判定結果格納メモリ２５と、参照座標格納メモリ２６と、を備えて構成されている。
【００６０】
但し、参照座標格納メモリ２６には３つの格納エリアが備えられている。
図８は、その参照座標格納メモリ２６の説明図である。
格納エリアｂは、認識対象である現在文字の文字座標及び文字位置を格納するためのエリアであり、格納エリアａ，ｃは、それぞれ現在文字の１つ前の文字座標及び文字位置、その次の文字の文字座標及び文字位置を格納するためのエリアである。
尚、具体例１と同一要素については同一符号を付して説明を省略する。
【００６１】
〈動作〉
次に具体例２の動作を説明する。
具体例２においても、具体例１と同様に、図６のフローチャートを実行し、ステップ４においてサイズ判定処理を実施する。
【００６２】
図９は具体例２のサイズ判定処理を示すフローチャートである。
ステップ２１では、先頭文字の文字座標及び文字位置を取得する。
取得した文字座標及び文字位置は参照座標格納メモリ２６の格納エリアｃに格納され、格納エリアａ、ｂにはともに「矩形なし」の情報が格納される。
【００６３】
ステップ２２では、次の文字の文字座標及び文字位置を取得する。
次の文字座標及び文字位置が取得されたとき、参照座標格納メモリ２６の格納エリアｃに格納されていた先頭文字の文字座標及び文字位置は格納エリアｂに格納され、取得した次の文字座標及び文字位置が格納エリアｃに格納される。
【００６４】
以後、文字座標及び文字位置を取得する毎に、格納エリアｂ，ｃに格納されている文字座標及び文字位置をそれぞれ格納エリアａ，ｂに格納し、取得した文字座標及び文字位置を格納エリアｃに格納する。
【００６５】
尚、次にサイズ判定を行う文字の文字座標及び文字位置がなければ、例えば文字座標及び文字位置をすべて０にした「矩形なし」の情報を格納エリアｃに格納する。
【００６６】
ステップ２３では、判定対象の現在の文字の有無を判定する。
格納エリアｂに「矩形なし」の情報が格納されていないときは、判定対象の現在の文字があると判定してステップ２４に進む。
【００６７】
ステップ２４では、３つの文字の文字座標に対し、サイズ判定データを用いて条件計算を行う。
図１０は具体例２の説明図である。
３つの文字座標を図１０（ａ）に示すように設定する。
この３つの文字座標から文字間の間隔を算出し、この間隔に誤読判定条件としてのサイズ判定データを適用してサイズ判定を行う。
式（５）、（６）は、サイズ判定データとしての条件式の一例である。
ｌ−ｐｒ−１＝０    …（５）
ｎｌ−ｒ−１＝０    …（６）
【００６８】
式（５）は、図１０（ｂ）に示すように、現在の文字と前の文字の間隔が０となる条件式であり、式（６）は、図１０（ｃ）に示すように、現在の文字と次の文字の間隔が０となる条件式である。
【００６９】
尚、式（５）及び（６）を具体例１と同様に論理積（ＡＮＤ）あるいは論理和（ＯＲ）で複合化してもよい。
また、３つの文字の前後関係は各文字の間隔に限られるものではなく、３つの文字の大きさの関係等を条件にしてもよい。
【００７０】
このサイズ判定データは判定データ格納メモリ２４に格納されており、具体例１と同じように、読み取り領域情報格納メモリ２２に格納されているサイズ判定データ指定情報を参照し、このサイズ判定データ指定情報を用いて図５に示す読み取り領域Ａに適応したサイズ判定データを指定し、参照座標格納メモリ２６から３つの文字座標を取り出して、この読み取り領域Ａのサイズ判定データを適用して誤読判定のための条件計算を行う。
【００７１】
条件計算の方法は具体例１と同様であり、計算結果は判定結果格納メモリ２５に格納される。
但し、参照座標格納メモリ２６の格納エリアａ、または格納エリアｃに「矩形なし」の情報が格納されているときは、その条件式の計算結果は偽となる。
【００７２】
ステップ２５では、計算結果の真偽を判別する。
計算結果が偽のときは、どの条件式にも該当しないので誤読の可能性はないと判定し、ステップ２６に進んで参照座標格納メモリ２６の格納エリアｂに格納されている文字位置を取得し、具体例１と同様に認識結果格納メモリ２３に格納されているその文字位置の文字座標及び文字コードを判定結果格納メモリ２５にそのままコピーする。
【００７３】
また、計算結果が真のときは、誤読の可能性があると判定し、ステップ２７に進んで条件式に対応する処理方法を判別し、処理方法が未処理のときは、格納エリアｂに格納されている現在の文字の文字座標及び文字コードをそのまま判定結果格納メモリ２５へコピーする（ステップ２６）。
【００７４】
処理方法が不読のときは、ステップ２８に進み、その文字の文字位置を参照座標格納メモリ２６から取得し、認識結果格納メモリ２３に格納されているその文字位置の文字座標を判定結果格納メモリ２５へコピーし、その文字の文字コードを、例えば「？」などのように認識結果として含まれるべきでない文字に置換して判定結果格納メモリ２５に格納する。
そして、処理方法が削除のときは、不要と考えられる文字あるいは記号を削除する。
【００７５】
このような処理を全ての文字について行い、全ての文字についてサイズ判別が行われたとき（ステップ２３）、このサイズ判定処理を終了させ、全ての読み取り領域についてこのような処理が行われたとき（ステップ２）、処理が完了する。
【００７６】
〈具体例２の効果〉
以上、説明したように具体例２によれば、３つの文字の前後関係に対してサイズ判定を行うようにしたので、具体例１と同様の効果が得られるだけでなく、誤読の可能性を、より的確に判別することができる。
【００７７】
〈具体例３〉
具体例３は、文字座標に基づいて算出された現在文字の行位置、文字位置、行先頭からの文字位置、その行の文字数に誤読判定条件を設定し、サイズ判定を行うようにしたものである。
【００７８】
図１１は、具体例３の構成を示すブロック図である。
具体例３の文字読取装置は、画像入力部１と、表示部２と、入力部３と、制御部４と、認識部５と、サイズ判定部６と、画像メモリ２１と、読み取り領域情報格納メモリ２２と、認識結果格納メモリ２３と、判定データ格納メモリ２４と、判定結果格納メモリ２５と、参照座標格納メモリ２６と、関連情報格納メモリ２７と、を備えて構成されている。
【００７９】
この関連情報格納メモリ２７は、現在文字に関する情報として、現在文字の行位置、文字位置、行先頭からの文字位置およびその行の文字数などの関連情報を格納するメモリである。
【００８０】
図１２は具体例３の関連情報の説明図である。
この行位置Ｌ、文字位置Ｉ、行先頭からの文字位置ＬＩ、その行の文字数ＬＮは１以上の値とする。
尚、具体例１及び具体例２と同一要素については同一符号を付して説明を省略する。
【００８１】
〈動作〉
次に具体例３の動作を説明する。
具体例３においても、具体例１と同様に、図６のフローチャートを実行し、ステップ４においてサイズ判定処理を実施する。
【００８２】
図１３は具体例３のサイズ判定処理を示すフローチャートである。
ステップ３１〜３３では、具体例２のステップ２１〜２３と同様に先頭文字及び次の文字の文字座標及び文字位置を取得し、それぞれ参照座標格納メモリ２６の格納エリアｂ，ｃに格納し、ステップ３４に進む。
【００８３】
ステップ３４では、判定対象である現在文字の関連情報を設定する。
即ち、認識結果格納メモリ２３を参照し、図１２に示すように、判定対象の文字についての行位置Ｌ、文字位置Ｉ、行先頭からの文字位置ＬＩ、その行の文字数ＬＮ等を取得する。そして、これらの関連情報を関連情報メモリＳ１３に格納する。
【００８４】
ステップ３５では、判定対象である現在の文字の文字座標及びその関連情報に対し、サイズ判定データを用いて条件計算を行う。
式（７）、（８）は、サイズ判定データとしての条件式の一例である。
Ｉ＝２                  …（７）
ＬＮ  ＝  ３            …（８）
式（７）は２文字目の場合の条件式であり、式（８）は行文字数が３の場合の条件式である。
【００８５】
尚、具体例１、２と同様に、これら２つの条件式を論理積（ＡＮＤ）あるいは論理和（ＯＲ）で複合化してもよい。
このサイズ判定データは判定データ格納メモリ２４に格納されており、具体例１、２と同じように、読み取り領域情報格納メモリ２２に格納されているサイズ判定データ指定情報を参照し、このサイズ判定データ指定情報を用いて読み取り領域に適応したサイズ判定データを指定し、参照座標格納メモリ２６から３つの文字座標を取り出して、この読み取り領域のサイズ判定データを適用して誤読判定のための条件計算を行う。
【００８６】
条件計算の方法は具体例１と同様であり、計算結果は判定結果格納メモリ２５に格納される。
但し、具体例２と同様に、参照座標格納メモリ２６の格納エリアａ、または格納エリアｃに「矩形なし」の情報が格納されているときは、その条件式の計算結果は偽となる。
そして、ステップ３６〜３９では、具体例１，２と同様に後処理を行う。
【００８７】
このような処理を全ての文字について行い、全ての文字についてサイズ判別が行われたとき（ステップ３３）、このサイズ判定処理を終了させ、全ての読み取り領域についてこのような処理が行われたとき（ステップ２）、処理が完了する。
【００８８】
〈具体例３の効果〉
以上、説明したように具体例３によれば、現在文字と前後の文字との位置関係だけでなく、現在文字の関連情報として行位置Ｌ、文字位置Ｉ、行先頭からの文字位置ＬＩ、その行の文字数ＬＮに対してサイズ判定を行うようにしたので、具体例１，２の効果が得られるとともに、特定の行や文字について処理条件を設定でき、行切り出し処理や文字切り出し処理の誤りによる誤読や不要な文字への、より的確な処理を適用することができる。
【００８９】
〈具体例４〉
具体例４は、文字座標に基づいて３つの文字の行座標を算出し、この行座標に誤読判定条件を設定し、サイズ判定を行うようにしたものである。
【００９０】
具体例４の文字読取装置は、具体例３と同様に、画像入力部１と、表示部２と、入力部３と、制御部４と、認識部５と、サイズ判定部６と、画像メモリ２１と、読み取り領域情報格納メモリ２２と、認識結果格納メモリ２３と、判定データ格納メモリ２４と、判定結果格納メモリ２５と、参照座標格納メモリ２６と、関連情報格納メモリ２７と、を備えて構成されている。
尚、具体例１〜３と同一要素については同一符号を付して説明を省略する。
【００９１】
〈動作〉
次に具体例４の動作を説明する。
具体例４においても、具体例１と同様に、図６のフローチャートを実行し、ステップ４においてサイズ判定処理を実施する。
【００９２】
図１４は具体例４のサイズ判定処理を示すフローチャートである。
ステップ４１では、先頭行の矩形領域を作成する。
図１５は具体例４の行座標の作成方法を示す説明図である。
この図１５に示すように、破線で示す矩形領域▲１▼、▲２▼、▲３▼はそれぞれ１つの文字を囲む矩形領域を示す。
【００９３】
矩形領域▲１▼〜▲３▼は例えば、以下の文字座標によって表す。
矩形領域▲１▼の文字座標：（pl,pt）−（pr,pb）
矩形領域▲２▼の文字座標：（l,t）−（r,b）
矩形領域▲３▼の文字座標：（nl,nt）−（nr,nb）
【００９４】
先頭行の行座標を作成するには、この全文字を含むようにして最小の矩形領域▲４▼を設定する。この矩形領域▲１▼〜▲３▼の文字座標を認識結果格納メモリ２３から取り出して、行座標（nl,pt）−（nr,b）が作成される。
【００９５】
また、この行の最終文字の文字位置をこの行の文字位置として、作成された先頭行の行座標（nl,pt）−（nr,b）及びこの文字位置を参照座標格納メモリ２６の格納エリアｃに格納し、格納エリアａ，ｂには「矩形なし」の情報を格納する。
【００９６】
ステップ４２では、ステップ４１と同様に、次の行の矩形領域を作成する。
次の行の矩形領域が作成されたとき、参照座標格納メモリ２６の格納エリアｃに格納されていた先頭行の行座標及びその行の最終文字の文字位置は格納エリアｂに格納され、作成された次の行座標及びその行の最終文字の文字位置が格納エリアｃに格納される。
【００９７】
以後、行座標が作成される毎に、格納エリアｂ，ｃに格納されているデータをそれぞれ格納エリアａ，ｂに格納し、作成した文字座標及び文字位置を格納エリアｃに格納する。
【００９８】
尚、次にサイズ判定を行うべき行の行座標がなければ、例えば行座標及びその行の最終文字の文字位置をすべて０にした「矩形なし」の情報を格納エリアｃに格納する。
【００９９】
ステップ４３では、判定対象である現在の行の有無を判定する。
格納エリアｂに「矩形なし」の情報が格納されていないときは、判定対象の現在の行があると判定してステップ４４に進む。
【０１００】
ステップ４４では、判定対象の現在行の関連情報を設定する。
即ち、現在行の最終文字を参照座標格納メモリ２６の格納エリアｂから取得し、その文字位置の文字に関して認識結果格納メモリ２３を参照し、その行位置Ｌ、文字位置Ｉ、行先頭からの文字位置ＬＩ、その行の文字数ＬＮ等を取得する。そして、これらの関連情報を関連情報メモリＳ１３に格納する。
【０１０１】
ステップ４５では、現在行及びその関連情報に対し、サイズ判定データを用いて条件計算を行う。
条件式については、現在行の位置関係、現在行の大きさ等について設定することができる。
また、具体例１〜３と同様に、２つの条件式を論理積（ＡＮＤ）あるいは論理和（ＯＲ）で複合化してもよい。
【０１０２】
サイズ判定データは判定データ格納メモリ２４に格納されており、具体例１〜３と同じように、読み取り領域情報格納メモリ２２に格納されているサイズ判定データ指定情報を参照し、このサイズ判定データ指定情報を用いて読み取り領域に適応したサイズ判定データを指定し、参照座標格納メモリ２６から３つの文字座標を取り出して、この読み取り領域のサイズ判定データを適用して誤読判定のための条件計算を行う。
【０１０３】
サイズ判定データには、具体例１（図４）と同じような条件式とそれに対応した処理方法が含まれている。
条件計算の方法は具体例１と同様であり、計算結果は判定結果格納メモリ２５に格納される。
【０１０４】
但し、具体例２と同様に、参照座標格納メモリ２６の格納エリアａ、または格納エリアｃに「矩形なし」の情報が格納されているときは、その条件式の計算結果は偽となる。
【０１０５】
ステップ４６では、計算結果を判別し、計算結果が偽のときは、ステップ４７に進む。
ステップ４７では、関連情報格納メモリ２７から現在行の文字位置Ｉ、即ち、現在行の最終文字位置とその行の文字数ＬＮを取得し、この行の開始文字位置（Ｉ−ＬＮ＋１）から最終文字位置Ｉまでの文字座標及び文字コードを認識結果格納メモリ２３から判定結果格納メモリ２５へそのままコピーする。
【０１０６】
また、計算結果が真のときは、誤読の可能性があると判定してステップ４８に進んで条件式に対応する処理方法を判別する。
処理方法が未処理のときは、ステップ４７に進み、判定結果が偽のときと同じ処理を行う。
処理方法が不読のときは、ステップ４９に進む。
【０１０７】
ステップ４９では、関連情報格納メモリ２７から現在行の文字位置Ｉ、即ち、最終文字位置とその行の文字数ＬＮを取得し、この行の開始文字位置（Ｉ−ＬＮ＋１）から最終文字位置Ｉまでの文字座標を認識結果格納メモリ２３から判定結果格納メモリ２５へコピーし、文字コードを、例えば「？」などのように認識結果として含まれるべきでない文字に置換して判定結果格納メモリ２５に格納する。
処理方法が削除のときは、その文字を削除する。
【０１０８】
このような処理を全ての行について行い、全ての行についてサイズ判別が行われたとき（ステップ４３）、このサイズ判定処理を終了させ、全ての読み取り領域についてこのような処理が行われたとき（ステップ２）、処理が完了する。
【０１０９】
〈具体例４の効果〉
以上、説明したように具体例４によれば、現在行前後の位置関係を算出し、この位置関係に対してサイズ判定を行うようにしたので、行単位で行の切り出し処理や文字の切り出し処理の誤りを判別し、後処理を行うことができる。
【０１１０】
〈具体例５〉
具体例５は、同一行で同じ位置条件の文字が連続したとき、これらの文字をブロックにまとめ、ブロック単位でサイズ判定を行うようにしたものである。
【０１１１】
具体例５の関連情報格納メモリ２７には、前後の文字間隔に基づいてブロックにまとめるための条件式が格納されている。
例えば、文字位置ｉ，ｉ＋１の文字座標をそれぞれ（Ｌ(i)，Ｔ(i)）−（Ｒ(i)，Ｂ(i)）、文字座標（Ｌ(i+1)，Ｔ(i+1)）−（Ｒ(i+1)，Ｂ(i＋1)）とすると、間隔Ｄは以下の式（９）によって計算される。
Ｄ＝Ｌ(i+1)−Ｒ(i)−１    …（９）
【０１１２】
式（１０）〜（１５）は、間隔Ｄに基づいてブロックを作成する条件を示す式である。
Ｄ＝Ｄthl    …（１０）
Ｄ≠Ｄthl    …（１１）
Ｄ＜Ｄthl    …（１２）
Ｄ≦Ｄthl    …（１３）
Ｄ＞Ｄthl    …（１４）
Ｄ≧Ｄthl    …（１５）
但し、Ｄthl：所定値
【０１１３】
これらの式（１０）〜（１５）が関連情報格納メモリ２７に格納されている。
具体例５の判定データ格納メモリ２４には、このブロックに対して適用されるサイズ判定データが格納されている。
【０１１４】
図１６は具体例５のサイズ判定データの一例を示す説明図である。
具体例５の参照座標格納メモリ２６は、具体例２と同様に３つの格納エリアａ〜ｃを有している。
尚、具体例１〜４と同一要素については同一符号を付して説明を省略する。
【０１１５】
〈動作〉
次に具体例５の動作を説明する。
具体例５においても、具体例１と同様に、図６のフローチャートを実行し、ステップ４においてサイズ判定処理を実施する。
【０１１６】
図１７は具体例５のサイズ判定処理を示すフローチャートである。
ステップ５１では、認識結果格納メモリ２３から取得したその領域の文字を先頭から参照して、その間隔Ｄを計算し、条件式（１０）〜（１５）を評価して、いずれかの条件が同一行で連続して該当するときは、これらの文字を含む最小の矩形領域を１つのブロックとする。
【０１１７】
図１８はこのブロックの説明図である。
この図１８に示すように、同一行に文字Ｐ，Ｑ，Ｒが並んでいる場合、文字Ｐ，Ｑの間隔Ｄは、前述のように式（９）によって表される。
【０１１８】
例えば、文字Ｐ，Ｑの間隔Ｄが式（１０）〜（１５）のいずれか１つに該当しているときは文字Ｐ，Ｑが１つのブロックにまとめられる。図１８の破線で示す領域がこのようにして作成された１つのブロックを示す。
【０１１９】
尚、文字が、図１５に示すように領域▲１▼、▲２▼、▲３▼に印字されているときは、実線で示す領域▲４▼が最小の矩形領域となり、これが１つのブロックになる。
このブロックはブロック座標（Ｌ(i)，Ｔ(i)）−（Ｒ(i+1)，Ｂ(i+1)）によって特定される。
【０１２０】
まず、最初、参照座標格納メモリ２６の格納エリアａ、ｂには、「矩形なし」の情報を格納し、格納エリアｃにこの先頭ブロックのブロック座標をそのブロックの最終文字位置とともに格納する。
【０１２１】
ステップ５２では、次のブロックをステップ５１と同じように作成する。
参照座標格納メモリ２６の格納エリアａ，ｂ，ｃに格納されている参照情報を１つずつ移動させ、次のブロックの参照座標を認識結果格納メモリ２３から取得し、このブロックの参照座標を格納エリアｃにそのブロックの最終文字位置とともに格納する。もし次の行がないときは、「矩形なし」の情報を格納する。
【０１２２】
ステップ５３では、サイズ判定を行うべきブロックの有無を判定する。
サイズ判定を行うべきブロックがあるときは、ステップ５４に進む。
ステップ５４では、判定対象である現在ブロックの関連情報を設定する。
この関連情報を設定するには、現在ブロックの最終文字の文字位置を、参照座標格納メモリ２６に格納されている現在ブロックの文字位置から取得し、その文字位置の文字について認識結果格納メモリ２３を参照し、行位置Ｌ、文字位置Ｉ、行先頭からの文字位置ＬＩ，その行の文字数ＬＮおよびブロック文字数ＢＮを取得し、関連情報格納メモリ２７に格納する。尚、Ｌ，Ｉ，ＬＩ，ＬＮ、ＢＮは１以上の値とする。
【０１２３】
ステップ５５では、参照座標格納メモリ２６のエリアａ，ｂ，ｃに格納されている現在ブロックの１つ前のブロック、現在ブロック、その次のブロックのブロック座標、及び関連情報格納メモリ２７に格納されているブロック関連情報を参照し、読み取り領域情報格納メモリ２２に格納されているその領域の領域情報に従って、判定データ格納メモリ２４に格納されているサイズ判定データを参照し、このサイズ判定データの条件式の真偽を計算する。
尚、条件式は、具体例１〜４と同じような条件式であってもよいし、論理積(ＡＮＤ)や論理和(ＯＲ)によって複合化させたものでもよい。
【０１２４】
サイズ判定データには、具体例１（図４）と同じような条件式とそれに対応した処理方法が含まれている。
条件計算の方法は具体例１と同様であり、計算結果は判定結果格納メモリ２５に格納される。
【０１２５】
但し、具体例２と同様に、参照座標格納メモリ２６の格納エリアａ、または格納エリアｃに「矩形なし」の情報が格納されているときは、その条件式の計算結果は偽となる。
【０１２６】
ステップ５６では、計算結果の真偽を判別し、計算結果が偽のときは、ステップ５７に進む。
ステップ５７では、関連情報格納メモリ２７から現在ブロックの文字位置Ｉ、即ち、現在ブロックの最終文字位置とそのブロックの文字数ＢＮを取得し、このブロックの開始文字位置（Ｉ−ＢＮ＋１）から最終文字位置Ｉまでの文字座標及び文字コードを認識結果格納メモリ２３から判定結果格納メモリ２５へそのままコピーする。
【０１２７】
また、計算結果が真のときは、誤読の可能性があると判定してステップ５８に進んで条件式に対応する処理方法を判別する。
処理方法が未処理のときは、ステップ５７に進み、判定結果が偽のときと同じ処理を行う。
処理方法が不読のときは、ステップ５９に進む。
【０１２８】
ステップ５９では、関連情報格納メモリ２７から現在ブロックの文字位置Ｉ、即ち、最終文字位置とそのブロックの文字数ＢＮを取得し、このブロックの開始文字位置（Ｉ−ＢＮ＋１）から最終文字位置Ｉまでの文字座標を認識結果格納メモリ２３から判定結果格納メモリ２５へコピーし、その文字コードを、例えば「？」などのように認識結果として含まれるべきでない文字に置換して判定結果格納メモリ２５に格納する。
処理方法が削除のときは、その文字を削除する。
【０１２９】
このような処理を全てのブロックについて行い、全てのブロックについてのサイズ判定が終了したとき（ステップ５３）、ステップ２に戻り、全ての領域情報について認識処理（ステップ３）、サイズ判定処理（ステップ４）が行われたとき（ステップ２）、すべての処理を終了させる。
【０１３０】
〈具体例５の効果〉
以上、説明したように具体例５によれば、同一行で同じ条件の文字が連続したとき、これらの文字をブロックにまとめ、このブロックに対してサイズ判定を行うようにしたので、ブロック単位で行の切り出し処理や文字の切り出し処理の誤りを判別し、後処理を行うことができる。
【０１３１】
〈具体例６〉
具体例６は、サイズ判定データをスクリプトデータで記述するようにしたものである。
【０１３２】
図１９は、具体例６の構成を示すブロック図である。
具体例６の文字読取装置は、画像入力部１と、表示部２と、入力部３と、制御部４と、認識部５と、サイズ判定部６と、スクリプトデータ解析部７と、画像メモリ２１と、読み取り領域情報格納メモリ２２と、認識結果格納メモリ２３と、判定データ格納メモリ２４と、判定結果格納メモリ２５と、参照座標格納メモリ２６と、関連情報格納メモリ２７と、スクリプトデータ格納メモリ２８と、を備えて構成されている。
【０１３３】
スクリプトデータ格納メモリ２８は、スクリプトで記述されたサイズ判定データを格納するメモリであり、このスクリプトはテキストで記述されている。
スクリプトデータ解析部７は、スクリプトデータ格納メモリ２８に格納されているサイズ判定データを参照し、構文解析を行い、サイズ判定部６が使用できる内部的なサイズ判定データに変換する機能を有する解析部である。
尚、具体例１〜５と同一要素については同一符号を付して説明を省略する。
【０１３４】
〈動作〉
次に具体例６の動作を説明する。
具体例２においても、具体例１と同様に、図６のフローチャートを実行し、ステップ４においてサイズ判定処理を実施する。
【０１３５】
図２０は具体例６のサイズ判定処理を示すフローチャートである。
ステップ６１では、スクリプトで記述されたサイズ判定データを解析する。
サイズ判定データを解析するには、読み取り領域情報格納メモリ２２に格納されているその領域の情報に従ってスクリプトデータ格納メモリ２８からスクリプトを取得する。
【０１３６】
スクリプトデータ解析部７はこのスクリプトを構文解析し、サイズ判定部６が使用できる内部的なサイズ判定データに変換し、変換されたサイズ判定データを判定データ格納メモリ２４に格納する。
【０１３７】
式（１６）は、このスクリプトで記述されたサイズ判定データの一例を示す式である。
処理単位，（条件１）処理１｜（条件２）処理２｜…｜（条件ｎ）処理ｎ…（１６）
【０１３８】
処理単位には、文字単位、行単位等の処理単位が記述され、条件１〜ｎには、例えば、条件式（１０）〜（１５）が記述される。そして、その条件１〜ｎに対応した処理１〜ｎを列挙する。
【０１３９】
ステップ６２〜６６では、具体例５のステップ５２〜５５と同様に現在行の関連情報を設定し、判定データ格納メモリ２４に格納されているサイズ判定データを用いて条件計算を行う。
そして、ステップ６７〜７０では、具体例５と同じような後処理を行う。
【０１４０】
このような処理を全てのブロックについて行い、全てのブロックについてのサイズ判定が終了したとき（ステップ６４）、ステップ２に戻り、全ての領域情報について認識処理（ステップ３）、サイズ判定処理（ステップ４）が行われたとき（ステップ２）、すべての処理を終了させる。
【０１４１】
〈具体例６の効果〉
以上、説明したように具体例６によれば、サイズ判定データをスクリプトで記述することにより、具体例１〜５と同様の効果を得ることができるとともに、条件式を容易に定義できる。このため、サイズ判定データの誤り等による変更に容易に対応することができる。
【図面の簡単な説明】
【図１】具体例１の構成を示すブロック図である。
【図２】従来の説明図である。
【図３】具体例１の文字座標の説明図である。
【図４】具体例１のサイズ判定データの一例を示す説明図である。
【図５】具体例１の読み取り領域の説明図である。
【図６】具体例１の動作を示すフローチャートである。
【図７】具体例１のサイズ判定処理を示すフローチャートである。
【図８】具体例２の参照座標格納メモリの説明図である。
【図９】具体例２のサイズ判定処理を示すフローチャートである。
【図１０】具体例２の説明図である。
【図１１】具体例３の構成を示すブロック図である。
【図１２】具体例３の関連情報の説明図である。
【図１３】具体例３のサイズ判定処理を示すフローチャートである。
【図１４】具体例４のサイズ判定処理を示すフローチャートである。
【図１５】具体例４の行座標の作成方法を示す説明図である。
【図１６】具体例５のサイズ判定データの一例を示す説明図である。
【図１７】具体例５のサイズ判定処理を示すフローチャートである。
【図１８】具体例５のブロックの説明図である。
【図１９】具体例６の構成を示す説明図である。
【図２０】具体例６のサイズ判定処理を示すフローチャートである。
【符号の説明】
１  画像入力部
４  制御部
５  認識部
６  サイズ判定部
２２  読み取り領域情報格納メモリ
２３  認識結果格納メモリ
２４  判定データ格納メモリ
２５  判定結果格納メモリ
２６  参照座標格納メモリ
【図１】
0004544691.tif 000002
【図２】
0004544691.tif 000003
【図３】
0004544691.tif 000004
【図４】
0004544691.tif 000005
【図５】
0004544691.tif 000006
【図６】
0004544691.tif 000007
【図７】
0004544691.tif 000008
【図８】
0004544691.tif 000009
【図９】
0004544691.tif 000010
【図１０】
0004544691.tif 000011
【図１１】
0004544691.tif 000012
【図１２】
0004544691.tif 000013
【図１３】
0004544691.tif 000014
【図１４】
0004544691.tif 000015
【図１５】
0004544691.tif 000016
【図１６】
0004544691.tif 000017
【図１７】
0004544691.tif 000018
【図１８】
0004544691.tif 000019
【図１９】
0004544691.tif 000020
【図２０】
0004544691.tif 000021