(57)【特許請求の範囲】
【請求項１】
枠または罫線に、その一部が接触してループを形成している文字パターンを検出する手段と、
該検出手段によって検出された文字パターンから、上記枠または罫線を除去した後に残されるパターンをループ候補を有するものとして抽出し、上記枠または罫線と前記ループ部分のストロークの文字輪郭線との、白画素から黒画素に変化する左部接触点（Ｏ１，Ｏ２，・・・）と黒画素から白画素に変化する右部接触点（Ｅ１，Ｅ２，・・・）を全て求め、次にそれらの接触点の中の２つの接触点間を結ぶ文字輪郭線について、該文字輪郭線の始点と終点が、右部接触点Ｅｎと左部接触点Ｏｎ＋１であるか、もしくは左部接触点Ｏｎと右部接触点Ｅｎ−１であるか否かを調べて、該文字輪郭線が上記ループ候補に該当するか否かを判定して、上記文字輪郭線の中から前記ループ候補を抽出する抽出手段と、
を備えることを特徴とする文字ループ候補抽出装置
【請求項２】
請求項１記載の文字ループ候補抽出装置において、
前記抽出手段によって抽出されたループ候補の中から、上記枠または罫線の除去によって途切れた部分を有する補完対象のループ候補を選別する選別手段をさらに備え、
前記選別手段は、前記ループ候補を、それと接触している枠または罫線と平行な方向に走査して、該走査線と交差する交差点を求め、得られた交差点の最大数が、予め定められたしきい値よりも大きいループ候補を、補完対象から除外することを特徴とする文字ループ候補抽出装置。
【請求項３】
請求項１記載の文字ループ候補抽出装置において、
前記抽出手段によって抽出されたループ候補の中から、上記枠または罫線の除去によって途切れた部分を有する補完対象のループ候補を選別する選別手段をさらに備え、
前記選別手段は、前記ループ候補の左部と右部の曲線らしさの度合いを求める曲線度算出手段と、該曲線度算出手段によって得られた結果に基づいて、上記左部と右部が直線であるか否か判定する直線判定手段と、該直線判定手段により、上記左部と右部が共にほぼ直線に近いと判定されたループ候補を、補完対象から除外する除外手段とを有することを特徴とする文字ループ候補抽出装置。
【請求項４】
請求項１記載の文字ループ候補抽出装置において、
前記抽出手段によって抽出されたループ候補の中から、上記枠または罫線の除去によって途切れた部分を有する補完対象のループ候補を選別する選別手段をさらに備え、
前記選別手段は、前記ループ候補の枠接触点付近での左部と右部の線分の傾きを求める傾き算出手段と、該傾き算出手段によって得られた上記左部と右部の線分の傾きの組み合わせに基づいて、補完対象から除外すべきループ候補を判定し、そのループ候補を、補完対象から除外する除外手段とを有することを特徴とする文字ループ候補抽出装置。
【請求項５】
請求項１記載の文字ループ候補抽出装置において、
前記抽出手段によって抽出されたループ候補の中から、上記枠または罫線の除去によって途切れた部分を有する補完対象のループ候補を選別する選別手段をさらに備え、
前記選別手段は、前記ループ候補の枠または罫線との接触幅を算出する第１の算出手段と、前記ループ候補の内周部における、上記枠または罫線と平行な方向での最大幅を算出する第２の算出手段と、上記第１及び第２の算出手段によって求められた上記接触幅と最大幅とを基に、補完対象から除外すべきループ候補を判定し、そのループ候補を、補完対象から除外する除外手段とを有することを特徴とする文字ループ候補抽出装置。
【請求項６】
請求項２乃至５いずれか一つに記載の文字ループ候補抽出装置を備えた文字補完装置において、
前記選別手段によって選別されたループ候補の上記途切れたループ部分を補完する補完手段を備えたことを特徴とする文字補完装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、文字認識装置において文字を切り出す装置に係わり、特に枠や罫線等に接した文字パターン中の上記枠や罫線等を除去したときに除去されてしまう部分を正しく補完する装置に関する。
【０００２】
【従来の技術】
近年、手書き用紙から情報処理装置に該手書きデータをテキスト・データとして入力する周辺装置として、手書き文字認識装置の需要が増加している。この手書き文字認識装置は、前処理として文字列から一文字ずつを切り出す文字の切りだし処理を行う。この文字の切り出し処理は、個々の文字を正確に認識するために重要な処理である。
【０００３】
帳票等では、予め、文字を手書きする位置や領域等が、罫線、一文字枠、横または縦一行のブロック枠、表形式のブロック枠、さらには、フリーフォーマット枠として印刷されている。この場合、上記印刷色がドロップ・アウト・カラーであれば、手書きされた文字のみをイメージ・スキャナー等により読み取ることができるが、上記印刷色がドロップ・アウト・カラーではなく、黒色等の手書きされる色と同一色の非ドロップ・アウト・カラーである場合には、上記罫線や枠等も手書き文字と一緒に読み取られてしまう。このため、例えば、文字枠内に記入された文字が枠からはみ出していたり、接触していたりする場合、枠を抽出・除去すると切り出した文字の一部が欠けてしまい、誤読が生ずる。
【０００４】
このため、従来は、例えば、図１９に示すように、枠１１からはみ出して手書きされた文字の場合（同図（ａ）参照）、一度、枠１１を除去した後に（同図（ｂ）参照）、枠１１付近における枠１１からはみ出した部分１３と枠内の文字線分１５のストロークの方向性や距離を判定して、該枠１１の除去により欠けてしまった部分を補完する方法が採用されている（同図（ｃ）参照）。
【０００５】
【発明が解決しようとする課題】
しかし、上記従来の方法では、文字が枠と接していて、該文字が該枠からはみ出していない場合、該文字を補完することが出来ないという問題があった。
【０００６】
このような例を図２０に示す。同図では、文字「Ｂ」の下部のループ部分の一部が枠１１と接してしまったために（同図（ａ）参照）、枠１１を除去した結果（同図（ｂ）参照）、補完が行われずに（同図（ｃ）参照）、同図（ｄ）に示すように、別の文字「Ｒ」に誤読されてしまう。
【０００７】
本発明は、枠や罫線等に接した文字を正確に補完できるようにすることを、目的とする。
【０００８】
【課題を解決するための手段】
図１は、本発明（第一の発明）の原理を説明する図でる。
この第一の発明は、以下の各手段を備える。
【０００９】
検出手段３２は、枠または罫線に、その一部が接触してループを形成している文字パターンを検出する。
抽出手段３４は、該検出手段３２によって検出された文字パターンから、上記枠または罫線を除去した後に残されるパターンを、ループ候補として抽出する。そして、枠または罫線と、文字ストロークとの交点を全て求め、次に、それらの交点の中の２つの交点間を結ぶ文字輪郭線について、該文字輪郭線の始点と終点が互いに隣接する交点であるか否かを調べて、該文字輪郭線が上記ループ候補に該当するか否かを判定する。
【００１０】
次に、図２は、本発明（第二の発明）の原理を説明する図である。
この第二の発明は、以下の各手段を備える。
検出手段４２は、枠または罫線に、その一部が接触してループを形成している文字パターンを検出する。
【００１１】
抽出手段４４は、該検出手段４２によって検出された文字パターンから、上記枠または罫線を除去した後に残されるパターンを、ループ候補として抽出する。
選別手段４６は、該抽出手段４４によって抽出されたループ候補の中から、そのループ候補の幾何学的特徴を調べることにより、上記枠または罫線の除去によって途切れたループ部分を有する補完対象のループ候補を選別する。
【００１２】
前記選別手段４６は、例えば、前記ループ候補を、それと接触している枠または罫線と平行な方向に走査して、該走査線と交差する交差点を求め、得られた交差点の最大数が、予め定められたしきい値よりも大きいループ候補を、補完対象から除外する。
【００１３】
また、前記選別手段４６は、前記ループ候補の左部と右部の曲線らしさの度合いを求める曲線度算出手段と、該曲線度算出手段によって得られた結果に基づいて、上記左部と右部が直線であるか否か判定する直線判定手段と、該直線判定手段により、上記左部と右部が共にほぼ直線に近いと判定されたループ候補を、補完対象から除外する除外手段と、を備える。
【００１４】
また、さらに、前記選別手段４６は、前記ループ候補の枠接触点付近での左部と右部の線分の傾きを求める傾き算出手段と、該傾き算出手段によって得られた上記左部と右部の線分の傾きの組み合わせに基づいて、補完対象から除外すべきループ候補を判定し、そのループ候補を、補完対象から除外する除外手段と、を備える。
【００１５】
また、さらに、前記選別手段４６は、前記ループ候補の枠または罫線との接触幅を算出する第１の算出手段と、前記ループ候補の内周部における、上記枠または罫線と平行な方向での最大幅を算出する第２の算出手段と、上記第１及び第２の算出手段によって求められた上記接触幅と最大幅とを基に、補完対象から除外すべきループ候補を判定し、そのループ候補を、補完対象から除外する除外手段と、を備える。
【００１６】
図３は、本発明（第三の発明）の原理を説明する図である。
この第三の発明は、以下の各手段を備える。
検出手段５２は、枠または罫線に、その一部が接触してループを形成している文字パターンを検出する。
【００１７】
抽出手段５４は、該検出手段５２によって検出された文字パターンから、上記枠または罫線を除去した後に残されるパターンを、ループ候補として抽出する。
選別手段５６は、該抽出手段５４によって抽出されたループ候補の中から、そのループ候補の幾何学的特徴を調べることにより、上記枠または罫線の除去によって途切れたループ部分を有する補完対象のループ候補を選別する。
【００１８】
補完手段５８は、該選別手段５４によって選別されたループ候補の上記途切れたループ部分を補完する。
【００１９】
【作用】
前記第一の発明では、まず、検出手段３２が、枠または罫線に、その一部が接触してループを形成している文字パターンを検出する。次に、抽出手段３４が、該検出手段３２によって検出された文字パターンから、上記枠または罫線を除去した後に残されるループ部分を、ループ候補として抽出する。続いて、抽出手段３４は、上記枠または罫線と、前記ループ部分のストロークの文字輪郭線との交点を全て求め、次に、それらの交点の中の２つの交点間を結ぶ文字輪郭線について、該文字輪郭線の始点と終点が互いに隣接する交点であるか否かを調べて、該文字輪郭線が上記ループ候補に該当するか否かを判定して、上記文字輪郭線の中から前記ループ候補を抽出する。
【００２０】
したがって、枠または罫線に、その一部が接触してループを形成している文字パターンについて、それから枠または罫線に接触している部分を除去した残りのパターンを、ループ候補として抽出することができる。
【００２１】
前記第二の発明では、まず、検出手段４２が、枠または罫線に、その一部が接触してループを形成している文字パターンを検出する。次に、抽出手段４４は、該検出手段４２によって検出された文字パターンから上記枠または罫線を除去したパターンを、ループ候補として抽出する。そして、さらに、選別手段４６が、該抽出手段４４によって抽出されたループ候補の中から、そのループ候補の幾何学的特徴を調べることにより、上記枠または罫線の除去によって途切れた部分を有するループ候補を選別する。
【００２２】
したがって、枠または罫線に接触してループを形成している文字パターンから該枠または罫線に接触している部分を除去したパターンであるループ候補の中から、それらの幾何学的特徴を調べることにより、本来、ループであるにもかかわらず、枠または罫線除去後に、その一部が途切れてしまったループ部分を補完する必要のあるループ候補を、選別することができる。
【００２３】
第三の発明では、まず、検出手段５２が、枠または罫線に、その一部が接触してループを形成している文字パターンを検出する。次に、抽出手段５４は、該検出手段５２によって検出された文字パターンから、上記枠または罫線を除去した結果得られるパターンを、ループ候補として抽出する。続いて、選別手段５６が、該抽出手段５４によって抽出されたループ候補の中から、そのループ候補の幾何学的特徴を調べることにより、上記枠または罫線の除去によってループ部分の一部が途切れたループ候補を選別する。そして、補完手段５８が、該選別手段５６によって選別されたループ候補の上記途切れたループ部分を補完する。
【００２４】
したがって、そのループ部分が枠または罫線に接触してしまったために、該枠または罫線除去後に、そのループ部分が途切れてしまった文字パターンを、上記抽出したループ候補の幾何学的特徴を調べることにより、正しく、補完することができる。
【００２５】
【実施例】
図４は、本発明の一実施例である光学的文字認識装置（ＯＣＲ）１００の構成を示すブロック図である。
【００２６】
観測部１０１は、帳票上に記入された文字及び該文字と同一色の文字枠または罫線等をイメージ・スキャナ等で光学的に読み取って、それらのイメージ・データを光電変換して二値の画像データに変換する。
【００２７】
文字切出し部１０３は、該観測部１０１から入力される画像データから、枠や罫線等の画像データを除去して、文字を一文字ずつ切り出す。
正規化部１０５は、該文字切出し部１０３によって切り出された文字パターンの大きさを、拡大・縮小したり、画像変換によって文字の変形を減少させる等の文字パターンの正規化処理を行う。
【００２８】
特徴抽出部１０７は、該正規化部１０５から入力される文字パターンから特徴値を抽出する。
辞書部１０９は、各文字種の代表的特徴値が格納されている複数の辞書を記憶しているメモリである。
【００２９】
照合部１１１は、上記特徴抽出部１０７から入力される特徴値と該辞書部１０９の各辞書に格納されている特徴値との距離計算を行い、最も該距離が短い特徴値が格納されている辞書の属する文字種を中間認識結果として出力する。
【００３０】
後処理部１１３は、例えば、読み取られた文字が書かれていた位置が、人名の入力領域または、住所の入力領域であるなどの情報を基に、上記照合部１１１から入力される認識結果を再判定する。そして、必要に応じて該認識結果を補正して、最終的な認識結果を外部のホスト装置に出力する。
【００３１】
図５は、本実施例の要部である上記文字切出し部１０３の一構成例を示すブロック図である。
枠抽出部１０３１は、上記観測部１０１から入力される二値の画像データ内に枠や罫線の画像データが含まれているか否かを判定し、含まれている場合には該枠や罫線の画像データを抽出する。
【００３２】
枠除去部１０３２は、該枠抽出部１０３１によって抽出された枠または罫線の画像を上記二値の画像データから除去する。
一文字切り出し部１０３３は、該枠除去部１０３３から入力される文字列の画像データから既存の手法（枠幅による分離、ラベリング等）を用いて、一文字毎に文字を切り出す。
【００３３】
ストローク補完部１０３４は、該一文字切り出し部１０３３から入力される文字の内、上記枠除去部１０３２によってストロークの途切れた文字について、前述した既存の手法を用いて補完する。
【００３４】
ループ候補抽出部１０３５は、該ストローク補完部１０３４から入力される文字の内、枠または罫線に接してループを構成する（形成する）文字をループ候補として抽出する。
【００３５】
ループ判定部１０３６は、該ループ候補抽出部１０３５によってループ候補として抽出された文字について、そのループ候補の幾何学的特徴を調べて、枠または罫線の除去によって、ループが切れてしまった文字を補完すべき文字として判定（選別）する。
【００３６】
ループ補完部１０３７は、該ループ判定部１０３６によって補完すべきであると判定された文字について、その途切れているループ部分を補完する。
次に、上記構成の実施例の動作を説明する。
【００３７】
図６は、下部が枠または罫線と接触したときに、該接触部でループを構成する文字の例を示す図である。これらの文字は、上記枠または罫線除去後に、そのループ部分を補完する必要がある文字とそうでない文字に分けられる。
【００３８】
同図に示す文字群２１０、２２０は、共に、その下部が、枠あるいは罫線と接触して、ループを形成する複数の文字を示している。
文字群２１０に属する文字は、そのループ部分が枠または罫線と接触した文字である。これらの文字は、該枠あるいは罫線を除去した後に、該除去に伴ってそのループ部分が消失されるため、その消失されたループ部分を補完する必要のあるものである。
【００３９】
一方、右側に示す文字群２２０に属する文字は、本来、ループ状でない下部が、枠あるいは罫線と接触することによってループを形成する文字である。これらの文字は、該ループがその文字本来のものではないために、上記枠あるいは罫線を除去した後に、その下部を補完する必要が無いものである。
【００４０】
このように、枠または罫線を除去した後にループ判定（枠または罫線と接してループを形成するか否かの判定）をすべき文字は、そのループを補完すべき文字とその必要が無い文字とに分けられる。
【００４１】
次に、上記ループ候補抽出部１０３５、ループ判定部１０３６、及びループ候補抽出部１０３５の一連の動作を説明する。
まず、ループ候補抽出部１０３５は、枠の一辺に着目して、当該文字パターンが該枠と接触しているか否か判別する（Ｓ１１）。そして、該接触が無ければ（Ｓ１１、ＮＯ）、ループ補完処理を中止する。
【００４２】
一方、該接触が生じていれば、次に該文字パターンが上記枠からはみ出していないか調べ、もし、はみ出していなければ、上記文字パターンに上記ループ候補（ループ候補部）があるか否か調べ、あれば、そのループ候補部を抽出する（Ｓ１２）。次に、上記ステップＳ１２で該ループ候補部が抽出されているか否か調べ、抽出されていなければ（Ｓ１３、ＮＯ）、ループ補完処理を中止する。
【００４３】
一方、上記ステップＳ１３で、上記文字パターンにループ候補部が抽出されていれば（Ｓ１３，ＹＥＳ）、該ループ候補部に補完すべきループがあるか否かを判定する（Ｓ１４）。そして、補完すべきループが存在しなければ、（Ｓ１５、ＮＯ）、ループ補完処理を中止する。
【００４４】
一方、補完すべきループが存在すれば（Ｓ１５、ＹＥＳ）、上記ループ候補部に該当するループ部分の、枠または罫線の除去後に、途切れてしまった部分を補完する（Ｓ１６）。
【００４５】
次に、上述したループ候補抽出部１０３５の処理（Ｓ１１〜Ｓ１２）をより詳細に説明する。
まず、ループ候補の抽出方法を説明する。
【００４６】
図８は、接触部における座標軸の設定方法を示す図である。
枠または罫線との接触の形態は、例えば、同図に示すように、下部接触、左部接触、上部接触、または右部接触の４種類がある。これら各形態に応じて同図（ａ），（ｂ），（ｃ），（ｄ）に示すような二次元の直交Ｘ−Ｙ座標系を設定する。
【００４７】
上記のような座標系において、まず、上述したように文字パターンが接触し、かつ該パターンが枠外にはみ出していない場合、上記文字パターンと該枠との接触点を求める。該接触点は、Ｘ軸の原点に近い方から上記枠を形成する方向に上記文字パターンを走査していったときに、画素値が変化する文字輪郭線上の点とする。
【００４８】
図９は、「Ｄ」の文字が枠の一辺に接触した場合のループ候補の抽出方法の一例を説明する図である。
ループ候補抽出部１０３５は、この場合、同図に示すように、白画素から黒画素に変化する左部接触点をｏ１，ｏ２，．．．とし、黒画素から白画素に変化する右部接触点をｅ１，ｅ２，．．．とする。そして、第Ｎ番目の右部接触点ｅｎ（または左部接触点ｏｎ）から文字輪郭線上を追跡していったときに、終点が第Ｎ＋１番目の左部接触点ｏｎ＋１（または第Ｎ−１番目の右部接触点ｅｎ−１）で終わるものを、ル−プ候補とする。  図６の場合には、ｐａｔｈ１（ｅ１〜ｏ１），２（ｅ２〜ｏ３），３（ｅ３〜ｏ２）の３つのパスにより、文字輪郭線の追跡がなされ、最終的にｐａｔｈ２（ｅ２〜ｏ３）がループ候補として抽出される。
【００４９】
続いて、上述したループ判定部１０３６の処理（Ｓ１３〜Ｓ１４）を詳細に説明する。
この場合にも、図８に示す直交Ｘ−Ｙ座標系を用いる。また、Ｙ軸の向きは、枠との接触点がＹ座標の最大値となるように定める。また、以下の説明で用いるしきい値は、予め、実験結果等から得られる最良の値が用いられる。
【００５０】
上記補完すべきループ候補の判定は、例えば、以下に述べる１）〜３）の方法を用いる。
１）  曲線度による判定
抽出したループ候補を、接触枠線分と平行の方向に走査して、該走査線との交差点を検出する。そして、上記ループ候補の中で、その得られた交差点数が、予め、定められた最大交差点数よりも大きいものを、ループ候補から除外する。次に、除外されずに残った各ループ候補について、その全体を、左部、右部、上部に分け、該左部と該右部について曲線らしさの度合いを求める。そして、左部、右部共に、直線と判定されたものを、ループ候補から除外する。
【００５１】
２）  枠接触点付近のループ候補の傾きによる判定
各ループ候補について、その枠接触点近傍の数画素から構成される近似直線の平均の傾きを求め、その傾きが、予め、定められた条件を満足しないものについては、それを、ループ候補から除外する。
【００５２】
３）  枠接触点間距離（接触幅）と最大幅の比による判定
各ループ候補について、枠接触幅に対するループ内部での最大幅との比を求め、その値が予め定められたしきい値以下のものについては、それをループ候補から除外する。
【００５３】
上記１）〜３）の方法を単独で、または、組み合わせて使用することにより、最終的に補完すべきループ候補を判定する。
続いて、上記１）〜３）の方法を、図面を用いて、具体的に説明する。
【００５４】
この場合、ｎ×ｍ画素の矩形に切り出された文字パターン（文字ループ候補）に対し、そのループ部分に接する枠の線分と平行な方向を、平面座標系のＸ軸とし、該Ｘ軸に垂直となるようにＹ軸を選ぶ。該Ｙ軸の向きは、枠接触点がＹ座標の最大値となるように定める。また、各しきい値には、予め、実験によって得られた最良な値を定める。
【００５５】
図１０は、上記１）の曲線度による判定方法を説明する図である。
この方法では、各Ｙ座標値に対し、Ｘ軸方向に走査し、画素値が”１”から”０”に変化する点の数を計数する。そして、その計数値の中の最大値をｎmax とする。また、真のループの判定基準となる最大交差点数のしきい値をｎt とする。そして、
ｎmax −ｎt ＞０                      （１−１）
となるものを、ループ候補から除外する。
【００５６】
これにより、図１０（ａ）に示す、下部が枠と接触した「Ｍ」等の例外となる凹型のループ候補を、補完対象から除くことができる。また、図１０（ｂ）に示す「Ｏ」等のような、補完対象となる凸型のループ候補は、除外されない。
尚、上記ｎt の値は、理想的には「２」が適切であるが、実際には、「３」程度が最も良い。
【００５７】
次に、図１１に示すように、同図（ａ）に示すループ部分をＹ軸方向に投影し、同図（ｂ）に示すように、該ループ部分のＹ軸方向での画素数のヒストグラムを求める。このとき、ループ部分の左右の枠接触点を、それぞれ、Ｐs ,Ｐf とする。又、ヒストグラムの値が、しきい値ｔをこえたときのＹ座標の値をｙt とする。さらに、Ｙ座標値が、ｙt −１となるループ上の左右の点を、それぞれ、Ｐl 、Ｐr とする。尚、ｙt が無い場合には、Ｙ座標値が最小のループ部分上の点をＰとし、Ｐ＝Ｐs ＝Ｐf とする。ところで、ｙt は、ループ部分での中央部のＹ座標値の指標となるものである。
【００５８】
次に、Ｐl とＰs 間を結ぶ線分、又は、Ｐl 、Ｐs 間に含まれる点列について、それらを表す直線の方程式を、最小二乗法により
ｆ1 （ｘ）＝ａl ×ｘ＋ｂl               （１−２）
として、求める。同様に、Ｐf 、Ｐr 間についても、その直線の方程式を、
ｆr （ｘ）＝ａr ×ｘ＋ｂr               （１−３）
として、求める。
【００５９】
ここで、ａは直線の傾き、ｂはＹ軸切片を表す。また、ｆ1 （ｘ）、ｆr （ｘ）は、それぞれ、ループ部分での左部、右部の近似直線である。
続いて、ループ候補の左右のループ部分の曲線らしさの度合いを、それぞれ、ｄl , d r で表し、これらを、上記式（１−２）、（１−３）で表される直線の、実際のループ曲線からの距離の二乗和で定義する。
【００６０】
ｄl ＝Σ（ｙi −ａl ×ｘi −ｂl ）2         （１−４）
；和は、Ｐl 、Ｐs 間に含まれるループ候補上の全ての点（ｘi 、ｙi ）についてとる
ｄr ＝Σ（ｙi −ａr ×ｘi −ｂr ）2         （１−５）
；和は、Ｐl 、Ｐs 間に含まれるループ候補上の全ての点（ｘi 、ｙi ）についてとる
但し、このままだと、ｄl 、ｄr が、上記Ｐl 、Ｐs 間、及びＰr 、Ｐf 間の長さ（画素数）に依存してしまうので、これらｄl 、ｄr を、それぞれ、下記の式（１−６）、（１−７）により、正規化する。
【００６１】
ｄl ' ＝ｄl ／ｇl                           （１−６）
ｄr ' ＝ｄr ／ｇr                           （１−７）
ここで、ｇl はループ部分上のＰl 、Ｐs 間に含まれる画素数、
ｇr はループ部分上のＰr 、Ｐf 間に含まれる画素数である。
【００６２】
そして、このｄl ' 、ｄr ' を用いて、ループ判定を行う。すなわち、これらｄl ' 、ｄr ' の値が小さい程、ループ候補のストロークの各部分は直線に近く、該ループ候補は文字ループでは無いという可能性が高くなる。左右の部分が、共に、直線から構成される文字ループは、殆ど存在しないので、曲線らしさの度合いのしきい値をｑとすれば、判定すべきループ候補の中で、
ｄl ' ＜ｑ  かつ  ｄr ' ＜ｑ                （１−８）
であるものを、ループ候補から除外する。すなわち、ループ候補を左、中央、右の各部に分割し、左右の部分が双方共、直線とみなされるものを、補完対象となるループ候補から除外する。但し、ヒストグラム値がしきい値ｔを越えるＹ座標値が無い場合には、中央部は存在しない。
【００６３】
次に、図１２は、上記２）の枠接触点付近のループ候補の傾きによる判定方法を説明する図である。
同図において、検出されたループ候補と枠との二つの接触点の内、一方の接触点をＰs , 他方の接触点をＰf する。そして、Ｐs 、Ｐf からｍ番目の画素を、それぞれ、Ｐsm, ＝（ｘsm，ｙsm），Ｐfm＝（ｘfm，ｙfm）とする。また、線分Ｐs −Ｐsm、Ｐf −Ｐfmの傾きを、それぞれ、ａs ａf で表し、これらを、
ａs ＝（ｘs −ｘsm）／（ｙs −ｙsm）        （２−１）
ａf ＝（ｘfm−ｘf ）／（ｙfm−ｙf ）        （２−２）
と、定義する。
【００６４】
尚、（ｘi ，ｙi ；ｉ＝s,smまたは、ｉ＝f,fm）を，ループ候補の各画素ＰI の座標とする。
そして、この傾きａs 、ａf の符号によって、上記ループ候補の左右部の線分の傾きの方向を判定する。
【００６５】
図１２において、Ｐs を左部の接触点、Ｐf を右部の接触点とすれば、
ａs ＞０  または  ａf ＞０  のとき  ＼方向（右下がりの方向）  （２−３）
ａs ＜０  または  ａf ＜０  のとき  ／方向（右上がりの方向）  （２−４）
ａs ＝０  または  ａf ＝０  のとき  ―方向（垂直方向）        （２−５）
の傾きとなる。但し、実際には、読み取られるループの画像には、多少の凹凸があるので、ごくわずかな傾きを無視するために、しきい値ｈ（＞０）を定めて−ｈ＜ａs またはａf ＜ｈ                    （２−６）
である場合は、
ａs 、ａf ＝０                                    （２−７）
とみなす。
【００６６】
上記傾きの判定によって、左右の各部の接触点付近のストロークの傾きの組が
左部      右部
＼        ／          ；例  「０」、「６」等の下部接触
―        ／          ；例  「Ｂ」、「Ｄ」等の下部接触
＼        ―          ；例  「Ｐ」等の上部接触
であるものを、補完すべきループとして判定する。
【００６７】
また、
左部      右部
／        ＼          ；例  「Ａ」、「Ｘ」等の下部接触
―        ＼          ；例  「Ｒ」、「Ｎ」等の下部接触
／        ―          ；例  「Ｋ」等の上部接触
を、補完すべきでないループと判定する。
【００６８】
左部      右部
／        ／
―        ―
＼        ＼
の組み合わせについては、手書き文字の傾きによって、補完すべきループと補完すべきでないループに分かれるので、この場合は、判定の対象外とする。
【００６９】
続いて、図１３は、上記３）の枠接触点間距離（枠接触幅）と最大幅の比による判定方法を、より詳細に説明する図である。
この場合、同図に示すように、枠接触幅（左部接触点と右部接触点間の距離）をＷd ，ループ候補の内周部をＸ軸方向に走査して求めた最大値、すなわち、該内周部の枠または罫線と平行な方向の最大幅をＷmax とする。そして、枠接触幅Ｗd に対する上記最大値Ｗmax の比Ｗmax ／Ｗd のしきい値をＷt とする。
【００７０】
この場合、真のループは、
Ｗmax ／Ｗd ＞Ｗt           （３−１）
を、満足する。
【００７１】
図１３の例では、（ａ）が上記条件を満足する。これは、例えば、「Ｏ」、「８」等の下部接触の場合が該当する。一方、（ｂ）は、例えば、Ｗt ≧１で上記条件が満足されない例であり、例えば、「Ｈ」等の下部接触が該当する。
【００７２】
次に、上記ループ候補抽出部１０３５が、ストローク補完部１０３４から入力される各文字の文字パターンについて、ループ候補を抽出する動作を、図１４のフローチャートを参照しながら説明する。
【００７３】
まず、ストローク補完部１０３４から入力される文字について、枠接触文字（罫線との枠接触文字も含む）であるか否かを判別する（Ｓ２１）。そして、枠接触文字で無ければ（Ｓ１１、ＮＯ）、以後の処理を中止する。
【００７４】
一方、枠接触文字で有れば（Ｓ１１、ＹＥＳ）、左部接触点ｏi （ｉ＝１，２，．．．）と右部接触点ｅi （ｉ＝１，２，．．．）の座標を求める（Ｓ２２）。続いて、ｅi を始点として文字輪郭線を追跡する（Ｓ２３）。そして、終点がｏi+1 であるか否か判別し（Ｓ２４）、ｏi+1 であれば、上記文字輪郭線をループ候補として、記憶する（Ｓ２５）。他方、終点がｏi+1 で無ければ（Ｓ２４、ＮＯ）、ループ候補では無いと判別して（Ｓ２４、ＮＯ），上記ステップＳ２２に戻る。
【００７５】
上記ステップＳ２２〜Ｓ２５の処理を、全ての右部接触点ｅ1 、ｅ2 、．．．について行い、上記入力文字パターンの文字輪郭線の中から、ループ候補を抽出する。そして、該ループ候補が抽出された文字パターンは、ループ判定部１０３６に出力される。
【００７６】
次に、図１５〜１７のフローチャートを参照しながら、ループ判定部１０３６がループ候補抽出部１０３５によって抽出されたループ候補の中から、補完対象とすべきループ候補（真のループ候補）を判定する処理を説明する。
【００７７】
図１５は、上記１）の曲線度による判定を用いた処理を、説明するフローチャートである。
まず、文字ループ候補をそれが接触している枠辺と平行な方向に走査し、上記最大交差点数ｎmax を導出する（Ｓ３１）。
【００７８】
続いて、該ｎmax を上記しきい値ｎt と比較し、ｎmax ＞ｎt であるか否か判別する（Ｓ３２）。そして、上記条件を満足していれば（Ｓ３２、ＹＥＳ），このループ候補を真のループ候補から除去する。
【００７９】
一方、上記条件を満足していなければ（Ｓ３２、ＮＯ），ループ候補をＹ軸方向に投影して、Ｙ軸での該ループ候補の画素数のヒストグラムを作成する（Ｓ３４）。そして、ヒストグラム値がしきい値ｔを越える（ヒストグラム値＞ｔ）Ｙ座標ｙt が存在するか調べる（Ｓ３５）。
【００８０】
そして、該Ｙ座標ｙt が存在しない場合には（Ｓ３５、ＮＯ），上記ループ候補上のＹ座標値が最小の点（画素）のＹ座標値ｙｍinを、上記ｙt に設定して、ステップＳ３７の処理に移る。一方、上記ステップＳ３５でｙt が存在すれば（Ｓ３５、ＹＥＳ）、直ちにステップＳ３７の処理に移る。
【００８１】
ステップＳ３７では、Ｙ座標値がｙt −１であるループ候補の２点Ｐl 、Ｐr を求める。また、該ループ候補の左の枠接触点Ｐs 、右の枠接触点Ｐf も求める。
【００８２】
次に、Ｐs 、Ｐl を通過する左部ストロークを、上記式（１−２）で表される直線ｆ1 （ｘ）で近似すると共に、Ｐf 、Ｐr を通過する右部ストロークを、上記式（１−３）で表される直線ｆr （ｘ）で近似する（Ｓ３８）。
【００８３】
続いて、例えば、上述のようにして、上記左部ストロークの曲線度ｄl ' と、上記右部ストロークの曲線度ｄr ' を計算する（Ｓ３９）。そして、該ｄl ' とｄr ' が共にしきい値ｑよりも小さい（ｄl ' 、ｄr ' ＜ｑ）か否か、すなわち、上記左右のストロークが共に直線であるか否かを、判別する（Ｓ４０）。
【００８４】
そして、上記条件が満足されており、上記両ストロークが直線であれば（Ｓ４０、ＹＥＳ）、このループ候補を真のループ候補から除去する。一方、上記条件が満足されず、少なくとも、いずれか一方のストロークが、直線でないときには（Ｓ４０、ＮＯ），このループ候補を保存する（Ｓ４１）。
【００８５】
次に、図１６は、ループ判定部１０３６が、上記２）の枠接触点付近のループ線分の傾きによる判定により、真のループ候補を判定する処理を説明するフローチャートである。
【００８６】
まず、ループ候補の枠との２つの接触点Ｐs 、Ｐf を求める。次に、該ループ候補上における、これらの枠接触点Ｐs 、Ｐf からｍ番目に位置する画素（点）Ｐsm、Ｐfmを求める（Ｓ５１）。
【００８７】
続いて、上記方法により、線分Ｐs −Ｐsmの傾きａs と、線分Ｐf −Ｐfmの傾きａf を計算する（Ｓ５２）。そして、−ｈ＜ａs またはａf ＜ｈ（ｈはしきい値）となっているか判別する（Ｓ５３）。そして、該条件が満足されていれば（Ｓ５３、ＹＥＳ）、ａs 、ａf を共に”０”に設定し（Ｓ５４）、ステップＳ５５に移る。また、上記ステップＳ５３で上記上記条件が満足されていなければ（Ｓ５３、ＮＯ），直ちに、該ステップＳ５５に移る。
【００８８】
ステップＳ５５では、以下の条件式（３−１）〜（３−３）が満足されているか否か調べる。
ａs ＞０  かつ  ａf ＜０                        （３−１）
ａs ＞０  かつ  ａf ＝０                        （３−２）
ａs ＝０  かつ  ａf ＜０                        （３−３）
そして、上記式（３−１）〜（３−３）の条件が、いずれも満足されない場合には（Ｓ５５、ＮＯ）、このループ候補を真のループ候補から除去する。
【００８９】
一方、上記式（３−１）〜（３−３）の条件が、いずれか一つでも満足される場合には、このループ候補を真のループ候補として保存する（Ｓ５６）。
次に、図１７は、ループ判定部１０３６が、上記３）の枠接触幅と最大幅の比による判定方法を用いて、ループ候補抽出部１０３５によって抽出された文字ループ候補の中から、真のループ候補を判定する処理を説明するフローチャートである。
【００９０】
まず、枠とループ候補との２つの接触点、すなわち、左右の接触点Ｐs 、Ｐf 間の距離Ｗd を計算する（Ｓ６１）。
次に、ループ候補の内周部をＸ軸方向に走査して、該内周部の最大幅Ｗmax を求める（Ｓ６２）。
【００９１】
続いて、上記Ｗmax に対するＷd x の比Ｗmax ／Ｗd を計算する（Ｓ６３）。
そして、該比Ｗmax ／Ｗd がしきい値Ｗt よりも大きいか（Ｗmax ／Ｗd ＞Ｗt ）否か判別する（Ｓ６４）。そして、該条件が満足されていなければ（Ｓ６４、ＮＯ）、このループ候補を真のループ候補から除去する。
【００９２】
一方、該条件が満足されていれば（Ｓ６２、ＹＥＳ）、このループ候補を真のループ候補として保存・記憶する（Ｓ６５）。
ループ判定部１０３６は、上述した図１５〜図１７の判定方法を単独に、または組み合わせて、ループ候補抽出部１０３５によって抽出されたループ候補の中から真のループ候補を判定し、それを、保存する。
【００９３】
以上のようにして、真のループ候補が保存された文字パターンは、ループ補完部１０３７に出力される。
図１８は、ループ判定部１０３６によって、真のループ候補と判定され、枠または罫線除去後に、ループ補完部１０３７によって、その枠または罫線と接触しているループ部分が補完される文字の例を示す図である。
【００９４】
同図（ａ）は、枠に右部接触した「０」の数字が補完される例である。また、同図（ｂ）は、枠に右部接触した「６」の数字が補完される例である。さらに、同図（ｃ）は、枠に右部接触した「８」の数字が補完される例である。
これらのいずれの例の場合においても、右部接触した各数字は、上記１）〜３）の判定によって、そのループ候補が真のループ候補と判定・保存される。
【００９５】
尚、上記実施例では、主に、英数字のループ補完の処理について述べているが、本発明は、これに限定されることなく、そのループ部分が枠または罫線と接する可能性のある全ての文字（漢字やその他の言語で用いられる文字等）や、図形等のル−プ形状部分の補完にも適用可能なものである。
【００９６】
【発明の効果】
本発明によれば、枠または罫線等に接してループを構成している（形成している）文字パターンから、該枠または罫線等を除去した後に残されるパターンを、ループ候補として抽出することができる。また、該抽出されたループ候補の中から、該枠または罫線除去後に、その本来のループ部分の一部が途切れてしまった、補完をすべき必要がある真のループ候補を、判定・抽出することができる。また、該補完すべきと判定された真のループ候補について、枠または罫線等を除去したために途切れてしまったループ部分を補完することができる。また、これにより、ループ部分が枠または罫線等に接触した文字の誤読を防止できる。
【図面の簡単な説明】
【図１】本発明の原理を説明する図（その１）である。
【図２】本発明の原理を説明する図（その２）である。
【図３】本発明の原理を説明する図（その３）である。
【図４】本発明の一実施例である光学的文字認識装置のシステム構成を示すブロック図である。
【図５】上記光学的文字認識装置内の文字切出し部の一構成例を示すブロック図である。
【図６】枠と下部接触してループを形成する文字の例を示す図である。
【図７】ループ候補抽出部、ループ判定部、及びループ補完部の一連の動作を説明するフローチャートである。
【図８】枠または罫線との接触の種類に応じた座標軸の設定方法を説明する図である。
【図９】ループ候補の抽出方法を説明する図ある。
【図１０】最大交差点数に基づき、抽出されたループ候補の中から、補完対象外のものを除外する方法を説明する図である。
【図１１】ループ候補の左右部の曲線度を導出する方法を説明する図である。
【図１２】ループ候補の左右部の枠接触点付近での傾きを、求める方法を説明する図である。
【図１３】枠接触幅とループ候補の内周方向での最大幅の求めかたを説明する図である。
【図１４】ループ候補抽出部の動作を説明するフローチャートである。
【図１５】ループ判定部が、曲線度により、補完すべきループ候補を判定・保存する処理を説明するフローチャートである。
【図１６】ループ判定部が、枠接触点付近での傾きを用いて、補完すべきループ候補を判定・保存する処理を説明するフローチャートである。
【図１７】  ループ判定部が、上記枠接触幅と上記ループ候補の内周方向での最大幅を用いて、補完すべきループ候補を判定・保存する処理を説明するフローチャートである。
【図１８】本実施例により、ループ部分が枠または罫線と左部接触した数字が、正しく補完される例を示す図である。
【図１９】従来の方法により、枠からはみ出して手書きされた数字が、補完される例を示す図である。
【図２０】ループ部分が枠と接触してしまったため、補完がなされず、誤読されてしまう例を示す図でる。
【符号の説明】
３２、４２、５２    検出手段
３４、４４、５４    抽出手段
４６、５６          選別手段
５８                補完手段
【図１】
0003662967.tif 000002
【図２】
0003662967.tif 000003
【図３】
0003662967.tif 000004
【図４】
0003662967.tif 000005
【図５】
0003662967.tif 000006
【図６】
0003662967.tif 000007
【図７】
0003662967.tif 000008
【図８】
0003662967.tif 000009
【図９】
0003662967.tif 000010
【図１０】
0003662967.tif 000011
【図１１】
0003662967.tif 000012
【図１２】
0003662967.tif 000013
【図１３】
0003662967.tif 000014
【図１４】
0003662967.tif 000015
【図１５】
0003662967.tif 000016
【図１６】
0003662967.tif 000017
【図１７】
0003662967.tif 000018
【図１８】
0003662967.tif 000019
【図１９】
0003662967.tif 000020
【図２０】
0003662967.tif 000021