(58)【調査した分野】(Int.Cl.,DB名)
前記第1ステップでは、前記文字列に沿う軸に直交して投影対象位置を通過するラインをそのライン上の一点を中心に所定の角度まで回転させる場合の回転範囲に含まれる複数のライン毎に、そのライン内の最大濃度および最小濃度のうちの前記選択に応じた濃度を抽出し、最大濃度が選択されている場合には各ラインで抽出された値の中の最小値を前記投影対象位置に投影し、最小濃度が選択されている場合には各ラインで抽出された値の中の最大値を前記投影対象位置に投影する、
請求項1に記載された文字切り出し方法。
前記第2ステップで設定された直線を前記第1ステップにより生成された投影パターンと共に表示して、投影パターンに対する直線の高さまたは傾きを変更操作に応じて変更するステップを実行する、
請求項1に記載された文字切り出し方法。
文字列の撮像により生成された濃淡画像を認識対象として入力して、当該画像中の文字列内の個々の文字を切り出した後に、切り出された文字をそれぞれあらかじめ登録されたモデルと照合して各文字を認識する文字認識装置において、
認識対象の濃淡画像中の文字列を横切る方向に沿うラインにおける最大濃度または最小濃度を前記文字列に沿う軸に投影する投影処理を、投影対象位置を文字列に沿って移動させながら繰り返す投影処理手段と、
前記投影処理により生成された投影パターンから極大値および極小値を抽出し、極大値の変動範囲と極小値の変動範囲との間にこれらの値の変化に応じた傾きを持つ直線を設定する直線設定手段と、
前記投影処理手段が最大濃度を投影した場合には前記直線より濃度が高くなる範囲を切り出しの対象とし、前記投影処理手段が最小濃度を投影した場合には前記直線より濃度が低くなる範囲を切り出しの対象として、前記濃淡画像中の切り出し対象範囲の画像を切り出す切り出し処理手段とを具備し、
前記投影処理手段は、認識対象の濃淡画像中の文字が背景より暗い場合には最小濃度を選択し、前記濃淡画像中の文字が背景より高い場合には最大濃度を選択するように設定される、文字認識装置。
前記投影処理手段は、前記文字列に沿う軸に直交して投影対象位置を通過するラインをそのライン内の一点を中心に所定の角度まで回転させる場合の回転範囲に含まれる複数のラインを設定して、これらのライン毎にライン内の最大濃度または最小濃度を抽出し、各ラインで最大濃度を抽出した場合には抽出された値の中の最小値を前記投影対象位置に投影し、各ラインで最小濃度を抽出した場合には抽出された値の中の最大値を前記投影対象位置に投影する、
請求項4に記載された文字認識装置。
前記直線設定手段により設定された直線を前記投影処理手段により生成された投影パターンと共に表示して、表示画面中の投影パターンに対する直線の高さまたは傾きを変更する操作を受け付ける変更操作受付手段をさらに具備し、
前記直線設定手段は、変更操作受付手段が受け付けた操作に応じて前記投影パターンに対する直線の高さまたは傾きを変更する、請求項4に記載された文字認識装置。
前記投影処理手段に最大濃度および最小濃度のいずれを選択させるかを指定するための入力を受け付ける指定入力受付手段を、さらに具備する請求項4または5に記載された文字認識装置。
コンピュータを、文字列の撮像により生成されて当該コンピュータに入力された濃淡画像から、当該画像中の文字列内の個々の文字を切り出した後に、切り出された文字をそれぞれあらかじめ登録されたモデルと照合して各文字を認識する文字認識装置として動かすためのプログラムであって、
認識対象の濃淡画像中の文字列を横切る方向に沿うラインにおける最大濃度または最小濃度を前記文字列に沿う軸に投影する投影処理を、投影対象位置を文字列に沿って移動させながら繰り返す投影処理手段、
前記投影処理により生成された投影パターンから極大値および極小値を抽出し、極大値の変動範囲と極小値の変動範囲との間にこれらの値の変化に応じた傾きを持つ直線を設定する直線設定手段、
前記投影処理手段が最大濃度を投影した場合には前記直線より濃度が高くなる範囲を切り出しの対象とし、前記投影処理手段が最小濃度を投影した場合には前記直線より濃度が低くなる範囲を切り出しの対象として、前記文字列における対象範囲の画像を切り出す切り出し処理手段、
の各手段の機能を前記コンピュータに設定するためのプログラムを含む文字認識処理用のプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般的な文字切り出し処理では、投影方向に沿う1ライン内の画像データ(2値または多値)を累計する方法をとる。しかし、認識対象の文字列が印刷されている媒体の模様やシェーディングなどにより、背景部分の濃度のむらが大きくなると、背景部分の投影値と文字部分の投影値との差が小さくなり、切り出しの精度が低下する。
【0007】
また、処理対象の文字列の文字間のピッチや文字幅が不揃いであったり、隣り合う文字の間の隙間が微小であったりすると、投影パターンでも、文字に対応する箇所と背景部分に対応する箇所との違いが不明確になり、文字の切り出しに失敗する場合がある。
このように文字を切り出す処理に失敗が生じると、その後のマッチング処理でも誤認識が生じるので、文字の認識精度が低下する。
【0008】
上記の問題点に関して、特許文献1,2には、文字の切り出し後に認識処理を行い、認識の精度が悪い箇所を対象に再度の切り出しを行う技術思想が示されているが、このような方法では、処理が複雑で時間もかかるため、処理の高速化が要求される用途には不向きである。
【0009】
本発明は上記の問題点に着目し、簡単な処理によって、文字列中の個々の文字を精度良く切り分けることにより、安定した切り出し処理を高速で行うことを課題とする。
【課題を解決するための手段】
【0010】
上記の課題を解決するために、本発明による文字切り出し方法では、以下の第1、第2、第3のステップを実行する。
第1ステップでは、処理対象の濃淡画像中の文字列を横切る方法に沿うラインにおける最大濃度または最小濃度を文字列に沿う軸に投影する投影処理を、濃淡画像中の文字が背景より暗い場合には最小濃度を選択し、濃淡画像中の文字が背景より高い場合には最大濃度を選択して、投影対象位置を文字列に沿って移動させながら繰り返す。
【0011】
第2ステップでは、第1ステップにより生成された投影パターンから極大値および極小値を抽出し、極大値の変動範囲と極小値の変動範囲との間にこれらの値の変化に応じた傾きを持つ直線を設定する。第3ステップでは、第1ステップで最大濃度を投影した場合には投影パターン中の直線より高い濃度が投影された範囲を切り出し対象範囲とし、第1ステップで最小濃度を投影した場合には投影パターン中の直線より低い濃度が投影された範囲を切り出し対象範囲として、濃淡画像中の切り出し対象範囲の画像を切り出す。
【0012】
上記の方法によれば、たとえば、文字が背景より暗い状態の画像を処理対象とする場合には、第1ステップの投影処理では、文字列を横切る方向に沿うラインにおける最小濃度を文字列に沿う軸に投影する。この処理を、投影対象位置を文字列に沿う軸に沿って移動させながら繰り返すと、文字に対応する箇所が谷となり、文字間の隙間に対応する箇所が山となる投影パターンが生成される。この投影パターンの極小値(文字部分)の変動範囲と極大値(文字間の隙間部分)との変動範囲との間に設定された直線を切り出し範囲の特定の基準とすることによって、切り出しのための基準値を場所によって変更することができる。
【0013】
したがって、模様などにより背景に濃淡むらが生じる画像であっても、その濃度のばらつき範囲に対して十分な余裕のある位置に直線を設定することができる。また、シェーディングなどの影響により文字列の一部が暗くなっている場合でも、濃度の変化に応じた傾きを持つ直線を設定することができるので、文字列に沿ういずれの場所でも、文字の切り出しの範囲を正しく判別することができる。
【0014】
上記の方法にかかる第1の態様では、第1ステップにおいて、文字列に沿う軸に直交して投影対象位置を通過するラインをそのライン上の一点を中心に所定の角度まで回転させる場合の回転範囲に含まれる複数のライン毎に、そのライン内の最大濃度および最小濃度のうちの前記選択に応じた濃度を抽出し、最大濃度が選択されている場合には各ラインで抽出された値の中の最小値を投影対象位置に投影し、最小濃度が選択されている場合には各ラインで抽出された値の中の最大値を投影対象位置に投影する。
【0015】
文字列を横切る1ラインのみを投影の対象とすると、文字間の間隔が狭い文字列では、文字間の隙間部分の隣の文字の一部が隙間内に突出し、その突出部分が投影対象のラインに載って、文字部分の濃度が投影されてしまうおそれがある。しかし、上記の態様によれば、文字間の隙間部分に対する投影処理では、設定された複数のラインの中の文字の画像が載らないラインから抽出された濃度を投影することができるので、文字の切り出しの精度を高めることができる。
【0016】
第2の態様による方法では、第2ステップで設定された直線または傾きを第1ステップにより生成された投影パターンと共に表示して、投影パターンに対する直線の高さまたは傾きを変更操作に応じて変更する。
この方法によれば、ユーザ自身が、投影パターンと直線との関係を確認しながら、各極大値のグループと各極小値のグループとを切り分けるのに適した状態に直線を変更することができるので、文字の切り出しの精度を高めることができる。
【0017】
本発明による文字認識装置は、文字列の撮像により生成された濃淡画像を認識対象として入力して、当該画像中の文字列内の個々の文字を切り出した後に、切り出された文字をそれぞれあらかじめ登録されたモデルと照合して各文字を認識する機能を具備する。
さらにこの文字認識装置は、上記の文字切り出し方法を実施するために、認識対象の濃淡画像中の文字列を横切る方向に沿うラインにおける最大濃度または最小濃度を文字列に沿う軸に投影する投影処理を、投影対象位置を文字列に沿って移動させながら繰り返す投影処理手段と、投影処理により生成された投影パターンから極大値および極小値を抽出し、極大値の変動範囲と極小値の変動範囲との間にこれらの値の変化に応じた傾きを持つ直線を設定する直線設定手段と、投影処理手段が最大濃度を投影した場合には直線より濃度が高くなる範囲を切り出しの対象とし、投影処理手段が最小濃度を投影した場合には直線より濃度が低くなる範囲を切り出しの対象として、前記濃淡画像中の切り出し対象範囲の画像を切り出す切り出し処理手段を具備する。
【0018】
投影処理手段は、認識対象の濃淡画像中の文字が背景より暗い場合には最小濃度を選択し、濃淡画像中の文字が背景より高い場合には最大濃度を選択するように設定される。
【0019】
上記の文字認識装置の一実施形態の投影処理手段は、文字列に沿う軸に直交して投影対象位置を通過するラインをそのライン内の一点を中心に所定の角度まで回転させる場合の回転範囲に含まれる複数のラインを設定して、これらのライン毎にライン内の最大濃度または最小濃度を抽出し、各ラインで最大濃度を抽出した場合には抽出された値の中の最小値を前記投影対象位置に投影し、各ラインで最小濃度を抽出した場合には抽出された値の中の最大値を前記投影対象位置に投影する。この実施形態によれば、文字列に沿う方向において、各文字に対応する範囲を個別に切り出す処理を、精度良く実施することができる。
【0020】
他の実施形態による文字認識装置は、直線設定手段により設定された直線を前記投影処理手段により生成された投影パターンと共に表示して、表示画面中の投影パターンに対する直線の高さまたは傾きを変更する操作を受け付ける変更操作受付手段をさらに具備する。また直線設定手段には、変更操作受付手段が受け付けた操作に応じて前記投影パターンに対する直線の高さまたは傾きを変更する機能が設けられる。この構成により、ユーザは、表示中の投影パターンと直線との関係を確認し、切り出しの精度が向上するように基準直線を変更することができる。
【0021】
他の実施形態による文字認識装置には、投影処理手段に最大濃度および最小濃度のいずれを選択させるかを指定するための入力を受け付ける指定入力受付手段とが、さらに設ける。この手段によれば、処理対象の画像における文字と背景部分との明暗の関係に応じて投影の対象を変更することができるので、利便性が高められる。
【0022】
さらに本発明では、上記の投影処理手段、直線設定手段、切り出し処理手段を具備する文字認識装置としてコンピュータを動かすためのプログラムを提供する。
【発明の効果】
【0023】
本発明によれば、文字列の画像から個々の文字を切り出す処理を、簡単な手順で精度良く実施することができるので、文字認識処理を高速化することができる。また処理対象の画像に複雑な模様やシェーディングなどによるノイズが含まれる場合にも、そのノイズの影響を受けずに安定した処理を実施することができる。
【発明を実施するための形態】
【0025】
図1は、本発明が適用される文字認識処理装置の構成例を示す。
この文字認識処理装置は、文字列を対象にした撮像を行い、生成された画像中の文字を読み取ってその読み取り結果を出力するもので、制御部10を含む本体部1、撮影用のカメラ2、表示部3、操作部4などにより構成される。表示部3は、たとえば液晶モニタにより構成され、操作部4にはマウスやキーボードが含まれる。
【0026】
本体部1は、汎用のコンピュータ装置(パーソナルコンピュータ)であって、CPUを含む制御部10のほか、主記憶部11、画像メモリ12、撮像インタフェース13、表示用インタフェース14、入力用インタフェース15、外部インタフェース16、外部ディスク用読取部17などを有する。
【0027】
主記憶部11はたとえばハードディスクであり、画像メモリ12はたとえばRAMボードである。主制御部11には、外部ディスク用読取部17により外部ディスク18から読み取られた専用のプログラムや、文字認識処理に用いられるフォントデータなどが登録される。カメラ2から出力された画像は、撮像インタフェース13に取り込まれてディジタル変換された後、変換後の画像データが画像メモリ12に格納される
【0028】
制御部10には、主記憶部11に格納されたプログラムによって、画像メモリ12に格納された画像から文字を1文字ずつ切り出す機能と、切り出された文字の内容を認識する機能とが設定される。また、制御部10には、これらの処理でユーザに提示されるグラフィカルユーザインタフェースとしての機能も設定される。この機能により、制御部10は、表示用インタフェース14を介して表示部3に処理対象の画像を含む画面を表示し、入力用インタフェース15を介して操作部4による操作を受け付ける。
【0029】
この実施例の文字認識処理装置では、処理対象の画像を表示する画面において、文字の読み取りを指示する操作を受け付けた後、後述する
図3の処理により画像中の文字を認識し、認識結果を画面に表示する。また、外部インタフェース16を介して、認識結果を外部の機器に出力することも可能である。
【0030】
図2は、文字認識処理のために表示部3に表示される画面の例を示す。
この例の画面30には、認識対象の文字列の画像の表示欄31、分析結果の表示欄32、読み取りボタン33、モデル登録ボタン34などが含まれる。なお、この例では、画像の右端部にシェーディングが生じているものとして、斜線によって影を表している。
【0031】
図2(1)は、読み取り処理が開始される前の画面であって、画像表示欄31内の画像には、ユーザにより設定された処理対象領域を示す矩形枠35が表示されている。ユーザは、マウスの操作などにより矩形枠35の位置および大きさを定めることにより処理対象領域を設定し、続いて読み取りボタン33を操作する。この操作により、制御部10は、矩形枠35に対応する領域を処理対象領域と認識して、その領域内の画像に対する文字認識処理(文字の切り出しおよびマッチング処理を含む。)を実施し、画面を
図2(2)に示すように変化させる。
【0032】
認識処理後の画面30の画像表示欄31では、各文字がそれぞれ切り出し処理により特定された文字領域を示す枠36により囲まれる。また、各枠36の左上位置には、その枠36内の画像から読み取られた文字が表示されている。また、画像表示欄31の右手の余白には、文字領域毎の認識結果から導き出された文字列が、読み取り結果として表示される。また、文字列の下方には、この文字列に最も適合したフォントの名称(F1)が表示される。
【0033】
ブランク状態であった分析結果の表示欄32にも、文字の切り出しのための投影処理により生成された投影パターンPが、切り出しの基準として設定された直線M(以下、「基準直線M」という。)と共に表示される。
【0034】
以下、文字が背景より暗い横並びの文字列を認識対象とすることを前提として、この例で実施される認識処理を詳細に説明する。
【0035】
図3は、文字認識のために制御部10により実施される処理の概略手順を示す。
この処理は、
図2に示した画面で処理対象領域が設定され、読み取りボタン33が操作されたことに応じて開始される。最初に、制御部10は、矩形枠35の位置情報に基づき、処理対象領域内の画像を取得する(ステップS1)。
【0036】
図2の例では、一列分の文字列を含む範囲が指定されたとして説明したが、実際には、複数列の文字列を含む範囲が指定される場合もある。この点を考慮して、ステップS2では、まずy軸に対する投影処理を行い、生成された投影パターンにより文字列を1列ずつに切り分ける(ステップS2)。
【0037】
以下、切り分けられた文字列を順に処理対象に設定して、ステップS4以下の処理を実行する。
ステップS4では、先の文字列の切り分け処理の結果に基づき、y軸における処理範囲の上限値y1と下限値y2とを設定する(文字列に対応すると判別された範囲より若干外側のy座標をy1,y2とする。)。ステップS5では、これらy1からy2までの範囲内の画像を対象にして、x軸に対する投影処理を実行する。
【0038】
上記の処理によりx軸方向に沿う投影パターンが生成されると、ステップS6において、投影パターンから極大値と極小値とを抽出し、続くステップS7において、極大値の分布に近似する直線と極小値の分布に近似する直線とを導出する。さらにステップS8では、これら2本の近似直線に基づき、切り出し対象範囲を特定するための基準直線Mを設定する。
【0039】
ステップS9では、投影パターン内の各値を上記の基準直線Mと照合し、切り出し対象範囲を特定する。そして、切り出し対象範囲毎に、その範囲の左右端縁のx座標とy軸の処理対象範囲を示す座標y1,y2とに基づき、文字領域を抽出し(ステップS10)、各種フォントデータに含まれる文字モデルを用いたマッチング処理を実行する(ステップS11)。
【0040】
この後は、ステップS3に戻り、未処理の文字列がある場合(ステップS3が「NO」)には、未処理の一文字列に対してステップS4〜S11を実行する。全ての文字列に対する処理が終了すると(ステップS3が「YES」)、ステップS12に進んで認識結果を出力する。この出力をもって、ユーザの指示に対する処理が終了する。
【0041】
上記の処理のうち、y軸に対する投影処理(ステップS2)では、処理対象領域内のx軸に沿うライン毎に、そのライン内の最小濃度を投影する。このようにすれば、1画素でも文字の画像が含まれるラインからは文字の画像の濃度が投影され、文字の画像を全く含まないラインからのみ背景部分の濃度が投影されるので、y軸方向においては、文字列全体を含む範囲を精度良く抽出することができる。
【0042】
文字列に沿うx軸に対する投影処理(ステップS5)では、投影対象位置毎に傾きが異なる複数のラインを設定して、各ラインの最小濃度を抽出し、抽出された最小濃度の中の最大値を投影値として採用する。このラインの設定方法を
図4に示す。図中のxiは投影対象位置のx座標であり、y1,y2はy軸における処理範囲の上限値および下限値(ステップS4で求めたもの)である。
【0043】
図4を参照して、座標xiに対して設定される投影用のラインの概念を言うと、座標xiを通りy軸に並行なラインL0を、点(xi,y1)と点(xi,y2)との中点を軸に左右に所定角度αまでの範囲で回転させる間に生じる各ラインが、それぞれ座標xiに対する投影用のラインとなる。制御部10が実行するアルゴリズムでは、y軸方向の処理対象範囲y1,y2の位置における座標xiからの距離dを用いてラインの傾きを変更するため、角度αに代えて、距離dの最大値Dαが設定される。
【0044】
通常の投影処理のように、y軸に沿うラインL0のみを投影の方向とした場合、
図4の例のように、文字の間の隙間が狭く、その狭い隙間に隣の文字の一部が突出し、その突出部分がラインL0に載る状態になることがある。したがって、y軸に対する投影処理と同じ手法に基づき、y軸に沿うラインL0内の最小濃度をxiに投影すると、
図4の例のxiには文字の濃度が投影されてしまう。
【0045】
この点に鑑み、この実施例では、様々な傾きのラインを設定して、ライン毎にそのラインの最小濃度を抽出し、抽出された濃度の中の最大値を座標xiへの投影値として採用する。背景部分が文字より明るい画像では、
図4中のラインL2のように、隙間部分のみを通過するラインで抽出される最小濃度が最大となるので、この最大の濃度が座標xiに投影される。よって、文字間の隙間部分の濃度が反映されて、文字に対応する箇所が谷となり、隙間部分に対応する箇所が山となる投影パターンが生成される。
【0046】
図5は、上記の投影処理により生成された投影パターンPの例(x座標を横軸とし、濃度を縦軸とするもの)を、基準直線Mを設定する方法と共に示す。
図中のM1,M2は、
図3のステップS7で求められた近似直線である。先に説明したように、このステップS7では、投影パターン中の極大値の変化に近似する直線M1と極小値の変化に近似する直線M2とを求める。次のステップS8では、たとえば、x座標を1つずつ動かして、各直線M1,M2の着目中のx座標に該当する点どおしを組み合わせて、これらの点の中点(各点の濃度の平均値による。)を求め、各中点の分布に近似する直線を設定し、この第3の近似直線を基準直線Mとする。
【0047】
基準直線Mの設定方法は、上記に限定されるものではない。たとえば、処理対象領域の両端点の座標x1,x2のみを対象に、直線M1上の対応点と直線M2上の対応点との中点を求め、各中点を結ぶ、という簡易な方法によって、基準直線Mを設定してもよい。または直線M1,M2を設定することなく、極大値および極小値の分布のパターンに基づき、直線Mの高さや傾きを決定してもよい。
【0048】
図5の投影パターンは、
図2(2)の欄32内に示したものと同じであるので、再び
図2(2)を参照する。この実施例で認識対象とした画像には、右側端縁部にシェーディングが発生しているので、投影パターンP内の山も、左から右に向かうにつれて低くなり、文字を表す谷部分と山部分との差も縮小している。しかし、この濃度の変化に応じて、基準曲線Mも左上から右下に向かって傾き、シェーディングの発生箇所においても、隙間部分を反映した山と文字を反映した谷とを切り分けることが可能な位置に基準直線Mが位置づけられている。よって、シェーディングによる濃度の変化の影響を受けることなく、基準直線Mに基づき個々の文字に対応する範囲を切り出すことが可能である。
【0049】
図6は、x軸に対する投影処理(
図3のステップS5に相当)の詳細な手順を示す。以下、この
図6のほか、前出の
図4,
図5も合わせて参照しつつ、投影処理の手順を説明する。
【0050】
図6では、
図4の例に合わせて、x軸上の投影対象位置の座標をxiとする。このxiには、初期値として処理対象領域の左端縁のx座標x1が設定される(ステップS101)。以下、xiが処理対象領域の右端縁のx座標のx2になるまでで、xiが1画素ずつ動かされて(ステップST110,111)、以下の処理が実行される。
【0051】
まず、ステップS102において、最小濃度の最大値MAXに初期値の0を設定すると共に、ずれ量dに初期値として−Dαを設定する。Dαが正の値であるとすると、dの初期値は負の値となる。
【0052】
ステップS103では、座標(xi+d,y1)と座標(xi−d,y2)とを結ぶラインを設定する。ステップS101,S102で設定したxi,dの初期値によれば、初回に設定されるラインは
図4のラインL1となる。一方、d=Dαとなったときには、
図4のラインL2が設定されることになる。
【0053】
よって、ずれ量dがDαになるまでdを1ずつ増やして(ステップS107,108)毎回のdにつきステップS103を実行することにより、ラインL1からL2までの範囲で、毎回、異なる傾きのラインが設定される。またステップS104において、設定されたライン内の最小濃度Iminが抽出される。さらにIminが最大値MAXを超える場合には、MAXがIminに書き換えられる(ステップS105,S106)。IminがMAX以下の場合(ST105が「NO」)には、MAXは現在値で維持される。
【0054】
このように、投影対象の一点xiに対し、傾きが異なる複数のラインを設定してライン毎に最小濃度を求めると共に、それらの中の最大値MAXを抽出する。全てのラインに対する処理が終了すると(ステップS108が「YES」)、その時点での最大値MAXが座標xiの投影値P(xi)に設定される(ステップS109)。
【0055】
上記の処理が毎時の座標xiに対して実行され、xiが終点であるx2に設定されて上記の投影値の設定が終了すると、ステップS111が「YES」となり、投影処理を終了する。
【0056】
なお、上記の例とは反対に、背景よりも文字の方が明るい画像を処理対象とする場合には、各ラインではそれぞれそのラインにおける最大濃度を抽出し、抽出された濃度の中の最小値を投影値として選択する。これにより、文字に対応する箇所が山になり、隙間部分に対応する箇所が谷となる投影パターンが生成される。この投影パターンに対しても、
図5に示したのと同様の手法で、2本の近似直線M1,M2を設定し、これらの直線M1,M2の中間位置に基準直線Mを設定するが、切り出しの対象範囲は、投影パターンの中で基準直線Mより濃度が高い範囲となる。
【0057】
図1の主記憶部11に登録される認識処理用のプログラムは、背景よりも文字が暗い画像に対する処理を実行するように設定されているが、背景よりも文字が明るい画像に対する処理を実行するためのプログラムも組み込み、いずれのプログラムによる認識処理を実行するかをユーザの選択に応じて決定してもよい。
【0058】
また、上記の例では、極大値の分布範囲と極小値の分布範囲との真ん中あたりに基準曲線Mが設定されるようにしたが、あらかじめ定めたオフセット値により基準直線Mの高さを調整してもよい。
【0059】
さらにこの実施例では、
図2に示した画面において、ユーザが欄32内の基準直線をドラッグする操作によって、基準直線Mの高さや傾きを変更することもできる。よって、自動的な文字の切り出し処理に失敗した場合には、ユーザは欄32内の投影パターンの山や谷との関係に基づき基準直線Mを変更した後に、再度読み取りボタン33を操作することによって、正しい認識結果を得ることができる。
【0060】
以上に述べたように、この実施例では、文字の間に僅かでも隙間があれば、その隙間と文字とを精度良く切り分けることが可能である。しかし、各文字の間の間隔が十分であれば、y軸に沿う方向のみの投影処理でも、文字の切り出しの精度を確保することができる。この点に鑑み、主記憶部11に、y軸に沿う方向のみの投影を行う簡単投影モード用のプログラムと、
図6に示した投影処理を行う詳細投影モード用のプログラムとを登録しておき、認識対象の文字列の状態に応じてユーザに実行するモードを選択させるようにしてもよい。
【0061】
ただし、簡単投影モード、詳細投影モードのいずれにおいても、ライン内における文字に対応する画素の数に応じた値ではなく、文字の画像の濃度が投影されるので、隣り合う文字同士が連結していると、これらを一文字ずつに切り分けることが不可能になる。
たとえば、欧文の小文字の文字列(”tt”,”rt”など)では、文字が連結される場合があるので、そのような構成の文字列を正しく認識できるようにする必要がある。
【0062】
図7は、
図2と同じ構成の画面30により、”Schimitt”という語の末尾の2つの”t”を連結した形態にして表された文字列を対象にした処理が行われたケースを例にして、上記の問題に対する対応を示したものである。
【0063】
図7(1)の画面は、読み取りボタン35の操作に応じて先の
図3に示した処理が実施され、読み取り結果が表示された段階の表示例である。画像表示欄31では、
図2(2)の例と同様に、切り出し処理により特定された文字領域を示す枠36や認識された文字が表示されているが、図中の枠36Aに示すように、文字列の末尾の”tt”を含む範囲が1つの文字領域として抽出されている。また、読み取り結果の表示では、この枠36Aに対応する文字に該当する文字がないことが、記号ERにより表されている。
【0064】
このような誤認識が生じた場合、この実施例のユーザインタフェースでは、モデル登録ボタン34の操作によって、モデル登録用のウィンドウ300が呼び出される。このウィンドウ300には、誤抽出された文字領域(枠36Aに相当)から抽出された画像301と共に、登録先のフォントを指定するコンボボックス302、画像に対応する文字列の入力ボックス303、OKボタン304、キャンセルボタン305などが表示される。
【0065】
ユーザが、画像301に対応する文字列を欄303内に入力して、OKボタン304を操作すると、制御部10は、画像301を入力された文字列に紐付けて登録する。なお、コンボボックス302には、マッチング処理で認識されたフォント(F2)が自動設定されるが、ユーザはこの設定を自由に変更して、登録先を変更することもできる
【0066】
上記の登録処理後に、ユーザが、元の画面30の読み取りボタン35を再度操作すると、制御部10は,再度、
図3の処理を実行する。
図7(3)は、この再度の認識処理の結果が表示された画面を示すもので、先に登録されたモデルとの照合によって、”tt”も正しく認識されている。
【0067】
図8は、上記のモデル登録処理として制御部10が実行する手順を示す。
この処理は、先の
図3に示した処理の後に、その処理結果を示す画面30内のモデル登録ボタン34が操作されたことに応じて開始される。
【0068】
まず、マッチング処理の結果を参照して、文字モデルに対する認識対象の文字列の倍率Qと、誤認識が生じた文字領域の画像とを取得する(ステップS21,22)。なお、マッチング処理では、文字モデルの倍率を複数とおりに設定して倍率毎に文字領域内の画像と照合し、最も高い類似度が得られたときの文字モデルを文字領域にあてはめており、この文字領域に適合した文字モデルの倍率が上記の倍率Qとして認識される。
ステップS22の画像の取得は、自動に限らず、切り出された文字領域の中の1つを選択するユーザの操作に応じて、選択された領域内の画像を取り込むようにしてもよい。
【0069】
ステップS23では、上記の倍率Qや画像を示す登録処理用のウィンドウ300を立ち上げる。このウィンドウ300内の入力欄303に文字列が入力されてOKボタン304が操作されると(ステップS24が「YES」)、欄303に入力されている文字列を取得する(ステップS25)。
【0070】
さらにステップS26において、取得した画像を1/Q倍することにより、この画像のサイズを登録対象のフォントデータのサイズに合わせ(ステップS26)、サイズ変更後の画像を入力された文字列に対応づけて登録する(ステップS27)。
【0071】
ウィンドウ300の立ち上げ後にキャンセルボタン305が操作された場合(ステップS24が「NO」でステップS28が「YES」)には、ウィンドウ300を閉じて処理を終了する。
【0072】
上記の登録処理により、
図7(3)に示すように、複数の文字が連結されている箇所でも、各文字を正しく読み取ることができるようになるので、利便性がさらに向上する。
なお、このモデル登録処理は、一般的な投影処理による文字の切り出しを行う文字認識処理装置でも、実施することができる。