(57)【要約】【課題】候補文字に類似文字が含まれていたときに、認識率を向上する。【解決手段】１文字ごとの入力ストロークデータを認識辞書の辞書ストロークデータとマッチングし、複数の候補文字を得て、該複数の候補文字に類似文字が存在するか判断して、類似文字が存在する場合は、該類似文字の辞書ストロークデータで互いに相違する部分を抽出して、該相違する部分を使って入力ストロークデータと比較し、該比較結果に基づいて候補文字を補正する。【選択図】        図３
2004185264.tif 000002
【特許請求の範囲】
【請求項１】
手書き入力文字を位置座標のデータに変換し、入力ストロークデータを生成する入力ステップと、
前記入力ストロークデータと、文字全体形状の辞書ストロークデータとをマッチングを行い、候補文字を抽出し、評価する全体形状マッチングステップと、
前記候補文字に相互に類似する類似文字が存在するか否か判定する類似文字抽出ステップと、
前記類似文字について、辞書ストロークデータにおける、相互に類似していない相違部分を抽出する相違部分抽出ステップと、
前記入力ストロークデータと前記各候補文字の相違部分とをマッチングし、評価する相違部分マッチングステップと、
前記相違部分マッチングステップによる候補文字の評価結果に基づいて、全体形状マッチングステップにおける候補文字の評価結果を補正する補正ステップと、を備えた文字認識方法。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、オンラインで入力された手書き文字の軌跡を認識する文字認識方法に関する。
【０００２】
【従来の技術】
従来、文字認識装置として、特公平７−１１３９５３号（従来例１という。）に記載のオンライン認識のための装置や、特開２０００−２３５６２１号（従来例２という。）に記載の光学的な認識装置が知られている。
【０００３】
従来例１は、入力パターンと標準パターンとの比較により、複数の候補文字パターンを抽出し、候補文字パターン同士の対比から、候補文字パターンの局所的特徴を識別特徴として複数点抽出し、識別特徴に関して距離を算出すると共に累積して入力パターンと比較し、候補文字パターンの中から累積距離の小さいものを認識結果として決定する。
【０００４】
従来例２は、可変領域マッチング相対判定手段を用い、入力ストロークデータと辞書パターンの画像データについて、画素単位の排他的論理和を算出し、不一致部分を抽出するマッチングを行っていた。
【０００５】
【発明が解決しようとする課題】
従来例１は、全体部分でのマッチング結果に抽出特徴のマッチング結果を累積し、評価しているため、抽出した特徴部分が全体に対して小さい場合、全体的評価結果の影響が顕著となり、認識結果はさほど改善されない。
【０００６】
さらに、従来例１は、候補文字パターンの局所的特徴抽出において、平均的特徴点間距離により判断を行っており、特徴点間距離の平均値は、全体に対して局所的部分が占める割合によって変動する。このため、文字によって効果が異なり、全ての文字の認識率向上は困難であった。
【０００７】
従来例２の可変領域マッチング相対判定手段は、文字を光学的に入力するため、ストロークの区切れ等の区別は無いため、そのままオンライン認識に適応することは難しい。
【０００８】
本発明はこのような従来の問題点を解消すべく創案されたもので、複数の候補文字が抽出され、これら候補文字に類似文字が含まれていたときに、認識率を向上することを目的とする。
【０００９】
【課題を解決するための手段】
本発明に係る文字認識方法は、手書き入力文字を位置座標のデータに変換し、入力ストロークデータを生成する入力ステップと、前記入力ストロークデータと、文字全体形状の辞書ストロークデータとをマッチングを行い、候補文字を抽出し、評価する全体形状マッチングステップと、前記候補文字に相互に類似する類似文字が存在するか否か判定する類似文字抽出ステップと、前記類似文字について、辞書ストロークデータにおける、相互に類似していない相違部分を抽出する相違部分抽出ステップと、前記入力ストロークデータと前記各候補文字の相違部分とをマッチングし、評価する相違部分マッチングステップと、前記相違部分マッチングステップによる候補文字の評価結果に基づいて、全体形状マッチングステップにおける候補文字の評価結果を補正する補正ステップとを備える。これによって、複数の候補文字が抽出され、これら候補文字に類似文字が含まれていたときに、認識率を向上し得る。
【００１０】
【発明の実施の形態】
次に、本発明に係る文字認識方法の好適な実施形態を図面に基づいて説明する。
【００１１】
［第１の実施形態］
図１は、本発明に係る文字認識方法の第１の実施形態を実施する、携帯情報端末の使用状態を示す図、図２は、図１の携帯情報端末を示すブロック図、図３は、図１の携帯情報端末を示す機能ブロック図、図４は、本発明に係る文字認識方法の第１の実施形態で処理される入力ストロークデータと辞書ストロークデータを示す概念図、図５は、図４の辞書ストロークデータの構成図、図６は、図５の辞書ストロークデータにおける９画文字の辞書ストロークデータを示す表、図７は、図４における、辞書ストロークデータと、入力ストロークデータとのマッチング処理を示す表、図８は、図４における、辞書から抽出した部分ストロークと、入力ストロークデータとの、マッチング処理を示す表、図９は、本発明に係る文字認識方法の第１の実施形態を示すフローチャート、図１０は、図７の処理に続く処理を示すフローチャートである。
【００１２】
図１および図２において、携帯情報機器１はカメラ部４および表示部２を有し、表示部２には、液晶表示部２１と位置座標入力部２０が重ねて設けられている。位置座標入力部２に対する入力はペン３等によって行われる。さらに携帯情報機器１は、ＣＰＵ６（図２）、ＲＯＭ８（同図）、ＲＡＭ７（同図）、記録メディア等を差し込むスロット９、パーソナルコンピュータ等の情報機器５と接続するためのＵＳＢ等のインターフェイス１０を有する。
【００１３】
カメラ部４で撮影した画像（以下「撮像画像」という。）は液晶表示部２１に表示される。
【００１４】
位置座標入力部２０においてペン３によって手書きの軌跡データＴＤを入力でき、軌跡データをそのまま画像（以下「入力画像」という。）として記録し、あるいは軌跡データＴＤを文字認識してテキストデータとして記録し得る。入力画像として記録する場合、カメラ部４で撮影した画像に付加するメモ情報等を生成し得る。
【００１５】
ＲＯＭ８には、ＣＣＤの制御プログラム、液晶表示部の制御プログラム等が記憶され、さらに、軌跡データＴＤの認識プログラム、軌跡データＴＤのための辞書ストロークデータ等の処理手順および必要なデータが記憶されている。すなわち本実施形態の文字認識方法はＲＯＭ８に格納されたプログラムによって実行される。
【００１６】
ＲＡＭ７には、撮像画像や入力画像の画像データ、およびメモ情報等が記憶され、またプログラムのワーク領域として使われる。
【００１７】
画像データはユーザの指示操作によって、ＵＳＢインターフェイス１０から、パーソナルコンピュータ５へ送られ、あるいは記録メディアＩ／Ｆ９（図２）にセットされる記録メディアを介してパーソナルコンピュータ５やプリンター（図示省略）に送られる。
【００１８】
パーソナルコンピュータ５は、携帯情報機器１からＵＳＢインターフェイス１０を介して伝送された手書き軌跡データＴＤや、画像データを定められた処理手順で処理する。
【００１９】
記録メディアは、例えば、画像データ等を記憶し得るコンパックトフラッシュカードであり、記憶メディアＩ／Ｆ９は、コンパクトフラッシュカードのインターフェイス部である。コンパクトフラッシュカードはカメラ等で一般的であり、差し込まれたコンパックトフラッシュカードのデータ読書が可能である。
【００２０】
位置座標入力部２０は液晶表示部２１表面に貼り付けられた透明抵抗膜デジタイザであり、その表示画面上を３のペンで押圧することにより軌跡データＴＤを入力することができる。ペン３は、軌跡データＴＤの入力のみならず、液晶表示部２に表示されるソフトボタン等の入力にも利用される。
【００２１】
位置座標入力部２０は制御回路（図示省略）を介して、システムバス１１に接続され、システムバス１１経由でＣＰＵ６に接続されている。ペン３を使って、位置座標入力部２０を押圧することにより、押圧した位置の位置座標データがＣＰＵ６によって読み取られる。認識すべき文字を入力した場合、読み取られた位置座標データは、ＲＡＭ７に記憶され、ＲＯＭ８内の処理手順に従って、手書き軌跡の辞書ストロークデータとのマッチング処理等が実行される。
【００２２】
カメラ部４は、レンズ４１、ＣＣＤ４２等の撮像素子で構成されたデジタルカメラである。ＣＣＤ４２は制御回路（図示省略）によって制御され、制御回路はシステムバス１１経由でＣＰＵ６に接続されている。ＣＣＤ４２は、ＣＰＵ６によって制御され、撮像画像はＲＡＭ７に記憶される。
【００２３】
表示部２は液晶表示部２１と表示制御部３−８とを備え、軌跡データＴＤは表示制御部３−８内のＶＲＡＭ（図示省略）に書き込まれて、液晶表示部２１に表示する。表示部２は、システムバス１１経由でＣＰＵ６に接続され、ＣＰＵ６からの指示で、画像データや軌跡データＴＤを表示する。
【００２４】
ＣＰＵ６は、システムバス１１を介して、ＲＡＭ７、ＲＯＭ８、位置座標入力部２０、表示部２等と接続されており、ＲＯＭ８に記憶されているプログラムよって処理動作を行う。
【００２５】
ＵＳＢインターフェイス部１０は、ＣＰＵ６によって制御され、パーソナルコンピュータ５と、軌跡データＴＤや画像データ等のやり取りを行う。
【００２６】
図３において、文字認識処理は以下の処理により実行される。
【００２７】
まず、位置座標入力部２０において、ペン３で押圧した位置の位置座標が入力され、軌跡データＴＤにより手書き文字を描くことにより、手書き文字を入力し得る。軌跡データＴＤは液晶表示部２によって表示される。
【００２８】
軌跡データＴＤを構成する位置座標は、文字切り手段３−１に入力され、１画面分の複数文字の位置座標データを１文字単位に切り分ける処理を行う。文字切り手段３−１は１文字ごとの位置座標を生成する。これは文字認識のための最初の処理である。
【００２９】
位置座標入力部２０における位置座標入力操作から、文字切り手段３−１の処理開始、すなわち文字認識処理開始までのタイミングは、ユーザの指定によって変更可能である。既定値では、１０秒ペンアップが続く（ペン３が位置座標入力部２０に接していない時間が１０秒間継続したとき）か、他のスイッチ等が押されたときに、文字切り手段３−１に、画面上の位置座標データが送られる。文字切り方法としては、公知の任意の方法を採用し得る。
【００３０】
文字切り手段３−１が生成した１文字ごとの位置座標（以下「入力ストロークデータ」という。）は、マッチング手段３−２に入力される。マッチング手段３−２は、文字全体形状に関して、入力ストロークデータと認識辞書３−３の辞書ストロークデータとのマッチングを実行し、辞書ストロークデータとの一致度が高い順に候補を出力する。認識辞書３−３は図２のＲＯＭ８に格納されている。文字全体形状のマッチングは、各文字の辞書ストロークデータにおける全てのストローク（以下「辞書全ストロークデータ」という。）を使用して行う。
【００３１】
マッチング方法としては、特許第３１５５５７７号（従来例３という。）等に記載の公知の方法を採用し得る。従来例３では、入力ストロークデータの始点終点位置座標と、辞書ストロークデータの位置座標間の距離を計算して、入力全ストロークの一致度を判定する。入力文字画数と同一画数の辞書ストロークデータとのマッチングを行って、一番類似している辞書ストロークデータから順に、文字認識の候補文字として出力する。
【００３２】
認識辞書３−３の辞書ストロークデータには、各文字の文字コードと、各文字を構成するストロークの形状データが登録されている。
【００３３】
マッチング手段３−２で抽出された１個または複数の候補文字は、候補列の評価手段３−４に入力される。候補列の評価手段３−４は候補文字における一致度第１位の候補文字と第２位の候補文字を、その評価値の差分等で評価する。
【００３４】
評価の結果、候補文字が認識結果となる可能性が高ければ、候補文字をそのまま認識結果の表示制御手段３−８に出力し、表示部２において表示する。候補文字が認識結果となる可能性が低ければ、部分辞書作成手段３−５および候補列の補正手段３−７に候補文字を送りストローク部分データの抽出を行う。
【００３５】
部分辞書作成手段３−５は、候補文字の辞書ストロークデータを認識辞書３−３から読み出し、読み出した辞書ストロークデータのストロークを比較する。比較の結果、ストロークが類似している辞書ストロークデータを削除し、ストロークが異なる部分ストロークのみを抽出し、これら部分ストロークのみよりなる部分辞書を生成する。
【００３６】
部分辞書作成手段３−５で抽出された部分ストロークは、部分辞書データとのマッチング手段３−６に入力され、マッチング手段３−６は、部分辞書の部分ストロークのデータと、入力ストロークデータとのマッチング処理を行う。
【００３７】
候補列の補正手段３−７は、評価手段３−４の評価結果に基づき、候補文字の一致度順位を修正する。
【００３８】
認識結果の表示制御手段３−８は、候補列の評価手段３−４または候補列の補正手段３−７から送られてくる候補文字を表示部２に表示する。
【００３９】
図４において、入力ストロークデータＡと、辞書ストロークデータＢ、Ｃの例が示されており、入力ストロークデータＡは、手書きの入力文字「湯」である。
【００４０】
辞書ストロークデータＢは、入力ストロークデータＡが入力された時に、３−２の文字全体形状とのマッチング手段３−２から出力される候補文字の第１位の例であり、「場」の文字が抽出されている。辞書ストロークデータＣは、候補文字の第２位の例であり、「湯」が抽出されている。
【００４１】
辞書ストロークデータＢ、Ｃは部分辞書作成手段３−５によって比較され、共通ストロークが削除される。その結果、辞書ストロークデータＢの「土偏」が部分辞書の部分ストロークＤとして抽出され、辞書ストロークデータＣの「三水」が部分辞書の部分ストロークＥとして抽出される。
【００４２】
部分辞書ストロークデータとのマッチング手段３−６によって、部分ストロークデータＤ、Ｅと、入力ストロークデータＡとのマッチング処理を行い、マッチング結果を修正し、第１位の候補文字Ｆを抽出する。
【００４３】
図７の表では、列方向に入力ストロークデータをストローク順に配列し、行方向に辞書ストロークデータをストローク順に配列している。入力ストロークデータと辞書ストロークデータとの、マッチング処理に際しては、まず、入力筆順（ストローク順）を比較する。入力ストロークデータＡの筆順はユーザの自由とし、入力筆順と、辞書ストロークデータのストローク順との一致度を求める。例えば、入力ストロークデータが入力ストローク１〜入力ストローク９の筆順で描かれたとする。図７の○印は、入力筆順に最も類似していた辞書ストロークデータを示している。
【００４４】
図８の表では、列方向に入力ストロークデータのストローク順を配列し、行方向に辞書ストロークデータにおける部分ストロークを配列し、ストローク順を示している。部分辞書ストロークデータとのマッチング手段３−６は、入力ストローク１〜入力ストローク９のうち入力ストローク４〜入力ストローク９はストロークが類似していると判断し、マッチング処理から削除する。図８の○印は、入力ストローク１〜入力ストローク３についてのみ、部分辞書の部分ストロークと比較し、部分ストローク１〜部分ストローク３の組合せが、最も類似することを示している。
【００４５】
図９は、文字認識における辞書全ストロークとのマッチング手段３−２および候補列の評価手段３−３に相当する。その処理は以下のステップにより実行される。
【００４６】
ステップＳ７−１：位置座標入力部２０に入力され、文字切り手段３−１で切り出された、１文字の入力ストロークデータについて、認識辞書３−３を用いて認識処理を開始する。このとき、認識辞書３−３の辞書ストロークデータを順次読み込むための辞書インデックスを初期化する。
【００４７】
ユーザは、位置座標入力部２０の文字枠２５内にペンで手書き文字を入力し、認識開始ボタンを押す等の処理、あるいは、ペンアップからの経過時間で、認識を開始する。認識開始に先立って、入力ストロークの記憶領域等の初期化を行う。
【００４８】
１文字の入力ストロークデータ（筆跡データ）は、入力ストロークの時系列ＸＹ座標データ列と、ペンアップ時のストロークの区切りコード等で構成されている。
【００４９】
ステップＳ７−２：入力文字の画数と同一画数の辞書ストロークデータを読み込む。認識辞書３−３との比較においては、入力筆順（ストローク順）を自由とし、画数は辞書に登録してある画数とする。文字の画数は、同一文字であっても略字等おいて大幅に変化するので、多くの人が実際に書く略字を含む文字を多数登録しておく。なお、続け字については、例えば、所定長よりも長い部分ストロークであって、変曲点が存在するものついては、その変曲点で、部分ストロークを分断することにより、辞書に登録された画数に対応させることが可能である。
【００５０】
図５において、認識辞書３−３には、１画の辞書ストロークデータを先頭に、２画の辞書ストロークデータ、３画の辞書ストロークデータと順に記憶されている。各画数の辞書ストロークデータの先頭にはヘッダー部が設けられ、各画数について、辞書ストロークデータの先頭位置（ポインタ）、および辞書ストロークデータの個数が記憶されている。入力筆数が例えば、９筆のとき、９画の辞書ストロークデータの先頭アドレスをヘッダー部から読み出し、そのアドレスを元に、９画の辞書ストロークデータを読み込む。
【００５１】
図６において、例えば、９画の辞書ストロークデータにおいて、１文字分の辞書ストロークデータには、文字コード（例えばＪＩＳコード）と、１番目から９番目までのストロークの始点終点のＸＹ座標データが含まれる。９番目の始点終点のＸＹ座標データに続いて、次の辞書ストロークデータの文字コードが記憶される。ヘッダー部には、辞書ストロークデータの個数が登録され、辞書ストロークデータ個数に１個の辞書ストロークデータのデータ長を乗ずれば、各画数の辞書ストロークデータの終端を検出し得る。
【００５２】
認識辞書３−３における辞書ストロークデータの追加を可能とする場合には、画像メディアに辞書ストロークデータを記録し、画像メディアを図２の画像メディアＩ／Ｆ９に接続し、辞書ストロークデータをＲＡＭ７に読み込む等の構成を採用し得る。
【００５３】
辞書ストロークデータは、複数のサンプルの平均値が採用される。始点終点の座標は正規化され、例えばＸＹ座標の最小値を０、最大値を１００とする。
【００５４】
入力ストロークデータの最大Ｘ座標＝ｍａｘＩＳｘ、入力ストロークデータの最小Ｘ座標＝ｍｉｎＩＳｘ、入力ストロークデータの最大Ｙ座標＝ｍａｘＩＳｙ、入力ストロークデータの最小Ｙ座標＝ｍｉｎＩＳｙ、正規化されたＸ座標Ｎｘ、正規化されたＹ座標Ｎｙとすると、正規化の方式は、式（１）〜式（４）で表現される。
【００５５】
【数１】
2004185264.tif 000003
【００５６】
第１の実施形態では、各ストロークの始点終点のＸＹ座標のみに注目しているが、ストロークの中間点の座標点を併せて参照し認識処理を行ってもよい。
【００５７】
ステップＳ７−３：１文字分の辞書ストロークデータを読み込む。認識辞書の文字コードと、ストロークの始点終点のＸＹ座標データを記憶領域に読み込む。例えば、入力筆数が９筆であれば、９画の辞書の、文字コード１について、ストローク１からストローク９までの始点終点のＸＹ座標データを読み込む。
【００５８】
ステップＳ７−４：入力ストロークデータと辞書ストロークデータの一番近い組合せを見つける処理を行う。図７のマトリックス表において、入力ストロークデータの１筆目のストロークの始点終点座標と、辞書ストロークデータ１の始点終点座標との距離（以下「ストローク距離」という。）を順次算出する。辞書ストロークデータ１から、ストロークデータ１との距離が最も小さい組合せ抽出し、入力ストロークデータ１とする。同様に、入力ストロークデータの２筆目〜９筆目について、辞書ストロークデータとの距離が最も小さい組合せを抽出する。図７では、１筆目〜９筆目のストロークにおいて最も距離が小さい組合せを○印で示している。
【００５９】
ステップＳ７−５：距離最小の組合せの辞書ストロークデータについて、入力ストロークデータとのストローク距離を積算する。すなわち各ストロークの始点間距離の和と終点距離の和を加算する。
【００６０】
ここで、入力ストロークデータｋ筆目のストロークの始点、終点を（ＸＩｋｓ，ＹＩｋｓ）、（ＸＩｋｅ，ＹＩｋｅ）、認識辞書３−３におけるｊ番目の辞書ストロークデータｋ筆目のストロークの始点、終点を（ＸＤｊｋｓ，ＹＤｊｋｓ）、（ＸＤｊｋｅ，ＹＤｊｋｅ）とすると、ｋ筆目のストロークのストローク距離Ｄｋ、および認識評価値ＲＥは、それぞれ式（５）、（６）で算出される。
【００６１】
【数２】
2004185264.tif 000004
【００６２】
ストローク距離Ｄｋは、辞書ストロークデータと、入力ストロークデータの始点、終点座標が同一ならば０となる。認識評価値ＲＥは、辞書ストロークデータと、入力ストロークデータの始点、終点座標が全て同一ならば０となり、それが一致度に関する最高得点となる。
【００６３】
ステップＳ７−６：ステップ７−５において算出した認識評価値ＲＥの高い順に、ＲＡＭ７の候補記憶領域（図示省略）に、辞書ストロークデータの文字コードと、認識評価値ＲＥを順次格納する。新たに、候補文字となる辞書ストロークデータに関する演算を実行したときには、文字コードと、認識評価値ＲＥを、候補記憶領域に記憶して、さらに認識評価値ＲＥの少ない順に候補文字をソートする。
【００６４】
認識評価値ＲＥが同一の辞書ストロークデータは、文字コード順にならべる。なお、同一形状の文字でなければ認識評価値ＲＥは同一とならないので、認識評価値ＲＥが同一の辞書ストロークデータが抽出される可能性は低い。
【００６５】
ステップ７−７：未処理の辞書ストロークデータがあるかどうかを判断する。未処理の辞書ストロークデータが存在する場合は、辞書インデックスのカウンタを１加算して、ステップＳ７−３に戻り、次の辞書ストロークデータの１文字分データを読み込む。全ての辞書ストロークデータの処理が終了したら、ステップＳ７−８に進む。
【００６６】
辞書ストロークデータ個数は、各画数の辞書ストロークデータの先頭にあるヘッダー部に記録されているので、処理済の辞書ストロークデータをカウントし、このカウント値を辞書ストロークデータ個数とを比較すれば判定し得る。
【００６７】
ステップＳ７−１〜ステップＳ７−７の処理は、従来例３等に記載の公知の認識マッチング処理であり、文字全体形状とのマッチング手段３−２に相当する。
【００６８】
ステップＳ７−８：ステップＳ７−１〜ステップＳ７−７の処理によって抽出された上位の候補文字、例えば第１位、第２位、第３位の文字について、これらの候補文字が類似文字か否かを判断する。
【００６９】
ここで言う類似文字とは、例えば「場」、「湯」、「揚」等のように、同一画数（これら文字は１２画である。）であって、共通部分が９画（比率にして９／１２＝７５％）を占め、全体的に見て似通った文字である。
【００７０】
この様な文字の場合、全体の形状が類似するため誤認識が生じ易く、例えば「湯」を手書き入力したときに、第１位の候補が「場」、第２位の候補が「湯」というように、逆転した順位になってしまうことがある。
【００７１】
第１位の候補文字と第２位候補文字の認識評価値ＲＥの差が所定の閾値以下のときは、両者を類似文字と判定し、ステップＳ７−１０の部分辞書作成処理に進む。第１位の候補文字と第２位候補文字の認識評価値ＲＥの差が所定の閾値より大きいときは、類似文字ではなく、正しく認識された可能性が高いので、ステップＳ７−９の通常の候補文字表示に進む。ステップＳ７−８の処理は、図３の候補列の評価手段３−４に相当する。
【００７２】
辞書ストロークデータによっては、各辞書ストロークデータの共通部分の座標値が微妙にずれていることがあり、一致度の差が閾値以上になる可能性がある。この場合、「類似文字コードテーブル」に基づいて類似文字か否かを判断し得る。すなわち、相互に類似文字の関係にある文字の文字コードを示す「類似文字コードテーブル」をあらかじめ生成しておき、候補文字が抽出されたときに、その第１位、第２位の候補文字を類似文字コードテーブルで参照する。
【００７３】
類似文字コードテーブルによって類似文字であることが分かったときは、類似文字として、ステップＳ７−１０に進む。
【００７４】
認識評価値ＲＥの差が閾値以上の候補文字で、類似文字コードテーブルによって類似文字でないことが判明したときは、正しく認識された可能性が高いので、ステップＳ７−９の通常の候補文字表示に進む。
【００７５】
この類似文字コードテーブルの処理は、作成した認識辞書によっては、必ずしも必要な処理ではないので、場合によっては省略可能である。
【００７６】
ステップＳ７−９：公知の認識処理の候補文字表示を行う。第１位の候補文字を画面上に表示し、次候補表示ボタン等が押下されたら、次候補を表示し、ユーザの選択指示によって候補文字の表示を入れ替える。
【００７７】
ステップＳ７−１０：部分辞書作成処理に進む、詳細は図１０のフローチャートに沿って説明するが、入力された文字に類似文字が存在し、文字全体形状の認識では誤認識の確率が高い場合はより局所的な相違点に注目する。
【００７８】
ステップＳ８−１：部分辞書作成処理を開始する。ＲＡＭ７のワーク領域等の初期化を行い、図３の候補列の評価手段３−４から送られてくる認識結果の候補文字の文字コードに基づいて、部分辞書作成の処理を開始する。
【００７９】
ステップＳ８−２：候補文字の類似文字について、辞書ストロークデータを読み込む。すなわち、ステップＳ７ー８で類似文字と判定した候補文字の辞書ストロークデータを認識辞書３−３から読み出す。
【００８０】
ステップＳ８−３：相互に類似文字の関係にある候補文字の、辞書ストロークデータにおける、類似のストロークを検出する。
【００８１】
例えば、図４において、第１位の候補が「場」、第２位の候補が「湯」のとき、「場」の辞書ストロークデータＢの各ストロークと、「湯」の辞書ストロークデータＣの各ストロークについて、始点終点距離が最小のストロークの組合せを見つける。
【００８２】
すなわち、データＢのストローク１の始点終点ＸＹ座標と、データＣストローク１の始点終点ＸＹ座標の距離を計算し、次に、データＢのストローク１の始点終点ＸＹ座標とデータＣストローク２の始点終点ＸＹ座標の距離を計算するというように、データＣの全てのストロークとデータＢのストローク１との距離を計算して、データＢのストローク１との距離が最小のストロークをデータＣから抽出する。データＢのストローク２以下についても同様の処理を行い、データＢの全てのストロークとデータＣの全てのストロークとの組合せについて、最小距離のストロークの組合せを抽出する。
【００８３】
ステップＳ８−４：ステップＳ８−３で抽出したストロークの組合せについて、式（５）の距離を算出する。
【００８４】
ステップＳ８−５：ステップＳ８−４で算出された距離に基づいて、ステップＳ８−３で抽出したストロークの組合せのうち、距離が所定閾値以下のストロークを削除する。
【００８５】
同一位置の同一ストロークの距離は０であり、ストローク距離が所定閾値以下であれば、共通ストローク（共通部分）と判断し得る。共通部分は文字候補を絞り込む上では無用であるので、認識処理対象から除外する。これによって、データＢとデータＣの局所的相違部分が顕著になる。
【００８６】
ステップＳ８−６：ステップＳ８−５において削除すべきストロークが存在しなかった場合などの補正を行う。補正方法としては例えば以下の３種がある。
【００８７】
［辞書の補正］
認識辞書３−３にあらかじめ登録された辞書ストロークデータ（標準辞書という。）が正確に生成されていなかった場合、その補正を可能とする。また、ユーザ辞書（ユーザ登録モードを設け、ユーザに登録したい文字を書いてもらい、それを通常の文字認識処理と同様の処理で特徴抽出し、登録した辞書）の文字形状が標準辞書の形状と異なる場合、その補正を可能とする。
【００８８】
［閾値の補正］
閾値の範囲を広げて、ステップＳ８−５と同様に削除ストロークを検索する処理を行う。すなわち閾値を補正する。
【００８９】
［共通部分抽出処理の補正］
閾値を変化させても、共通部分の抽出が出来ない場合、対象の文字コードから文字形状指定の処理により、共通部分の削除を行う。例えば、文字「謀」、「諜」は、言偏および右側下部の「木」が共通であり、これら共通部分を削除すべきである。このように複雑な共通部分抽出について、文字形状ごとに共通部分抽出プログラムを予め設けておき、ユーザの指定により共通部分抽出プログラムを選択する。認識結果に対する候補修正指示のタイミングを設定し、ユーザが、候補文字を類似文字と判断したときに、候補文字の文字コードを登録する。次回の同一文字の認識に際して、再び候補文字にその文字が含まれれば、補正を行う。
【００９０】
ステップＳ８−７：ステップＳ８−５で共通ストロークを除去した後の、各候補文字における各ストロークの始点終点座標を、文字コードとともに記憶する。
【００９１】
ステップＳ８−８：共通ストロークを除去した後の候補文字における各ストロークと、それに対応した入力ストロークデータのストロークについて、始点終点距離を算出し、より局部的な相違に基づく一致度を算出する。
【００９２】
図４では、辞書ストロークデータＢ「場」の部分ストロークＤ「土」と、入力ストロークデータ「湯」の共通部分を除いた部分パターンとについて、始点終点の距離の計算を行う。次に辞書ストロークデータＣ「湯」の部分ストロークＣ「三水」と、入力ストロ−クデータ「湯」の共通部分を除いた部分パターンとについて、始点終点の距離の計算を行う。
【００９３】
ステップＳ８−９：ステップＳ８−８において、計算した部分パターンによる距離の値によって、候補文字の順番を補正する。例えば、「湯」の入力ストロークデータＡに対して、ステップＳ７−８で出力した候補文字が「場」、「湯」、「陽」、「揚」であり、文字全体形状の評価において、始点終点距離が閾値以下の候補が、「場」および「揚」だったとき、ステップＳ８−８におけるストローク部分辞書による一致度判定結果に基づき候補文字の順位を変更する。
【００９４】
ステップＳ８−８におけるストローク部分辞書による一致度判定結果において、「場」よりも「湯」の部分パターンの方が距離が小さいと判明したときは、候補文字の順位を、第１位「湯」、第２位「場」、第３位「陽」、第４位「揚」に変更する。
【００９５】
候補文字の順位は、例えば第１位を１００、第２位を９０、第３位を８０等の規定勾配の評価値に変更する。あるいは、「場」を「陽」、「揚」のマッチング結果の差と同等の差になるように変更する等の方法がある。これにより、第１位の候補として「湯」が表示画面上に表示される。
【００９６】
本実施形態の文字認識方法、および同方法を実施する文字認識装置においては、類似文字が存在する文字が入力された場合でも、文字全体形状とのマッチング結果で類似文字があると判断した場合に、認識辞書から部分辞書を作成し、その部分辞書とのマッチング結果により、認識候補順位を補正するので、候補文字に類似文字が含まれた際の認識率を高めることができる。
また、認識辞書から動的に部分辞書を作成するので、認識辞書が、標準辞書とユーザ辞書の２つの辞書構成等で、１つの辞書が時間経過毎に変更する構成についても適応可能である。
［第２の実施形態］
次に、本発明に係る文字認識方法の第２の実施形態を図面に基づいて説明する。図１１は、本発明に係る文字認識方法の第２の実施形態を実施する、携帯情報端末を示す機能ブロック図、図１２は、図９の入力ストロークデータと辞書ストロークデータとの、マッチング処理を表したマトリックスの表、図１３は、図１２のデータで注目しているストロークのデータを示す図、図１４は、本発明に係る文字認識方法の第２の実施形態を示すフローチャート、図１５は、図１４の処理に続く処理を示すフローチャートである。図中、第１の実施形態と同一もしくは相当部分には同一符号を付す。
第１の実施形態では、漢字等の高画数文字認識時の類似文字問題を解決する方法を説明してきた。しかし、平仮名等の低画数の類似文字、例えば、「わ」、「れ」「ね」などの場合は、１つのストロークの部分的形状特徴によって文字を識別する必要がある。入力ストロークデータの全体形状のみのマッチング処理では、「わ」を入力した場合に、認識結果が「れ」になってしまうこともある。従来は、このような場合、類似文字群１つに対して、複数の識別関数を作成して対応していた。そのような構成だと、認識辞書の変更や、認識対象文字の追加に際して、識別関数の追加や変更を要し、操作が繁雑であった。
本実施形態は、第１の実施形態における図３の処理構成を、図１１の処理構成に変更することによって、低画数の類似文字識別に対応する。
図１１は、処理構成図であり、符号２−１、２−２、３−１、３−２、３−３、３−４、３−５、３−６、３−７、３−８は、図３に関連して説明した処理手段なので、説明を省く。
部分辞書ストロークデータとのマッチング手段３−６において、部分辞書ストロークデータと、入力ストロークデータとのマッチング処理によって、マッチング結果を修正して得られた第１位の候補文字は、ストロークの一部とのマッチング手段９−１に入力される。
【００９７】
一方、部分辞書作成手段３−５において抽出された、ストロークが異なる部分ストロークは、マッチング手段３−６およびストローク部分辞書作成手段９−２に入力される。
【００９８】
マッチング手段９−１は、ストローク部分辞書作成手段９−２で作成された部分ストロークと入力ストロークデータの座標点とのマッチング処理を行う。マッチング手段９−１の処理結果は候補列の補正手段３−７に入力される。
ストローク部分辞書作成手段９−２は、各候補文字の各部分ストロークの座標点位置を比較することにより、個々のストローク内の共通座標点を省き、相違点を抽出して、ストローク部分辞書を作成する。
図１２において、入力ストロークデータＧと、第１位〜第３位の候補文字Ｈ、Ｉ、Ｊの例を示す。入力ストロークデータＧは手書き文字「ね」であり、候補文字はＨ「わ」、Ｉ「ね」、Ｊ「れ」である。
候補文字Ｈ、Ｉ、Ｊは、入力ストロークデータＧに対して、辞書全ストロークとのマッチング手段３−２によって抽出される。
ストローク部分辞書作成手段９−２は、候補文字Ｈ、Ｉ、Ｊの辞書ストロークデータを相互に比較し、ストロークの共通部分を削除して、相違する部分ストロークを抽出する。
【００９９】
候補列の補正手段３−７は、マッチング手段９−１および候補列の評価手段３−４の出力に基づいて、第１位の候補をＨ「わ」からＮ「ね」（当初第２位の候補文字Ｉ）に補正する。
図１３において、平仮名などの低画数文字の辞書ストロークデータは、１ストロークを９等分する１０点の座標点で定義されており、図１３ではＨ「わ」、Ｉ「ね」、Ｊ「れ」の座標点が示されている。
【０１００】
Ｈ「わ」における辞書ストロークデータの始点をＨ−１、第２点をＨ−２、．．．．．、終点をＨ１０とし、Ｉ「ね」における辞書ストロークデータの始点Ｉ−１、第２点目をＩ−２、…終点をＩ−１０とし、Ｊ「れ」の辞書ストロークデータの始点をＪ−１、第２点目をＪ−２、…終点をＪ−１０とする。図１４において、図１１のストローク部分辞書作成手段９−２に相当する処理は以下のステップにより実行される。図１４の処理では、文字全体形状とのマッチング手段３−２の結果に基づいて、候補列の評価手段３−４によって、類似文字として送られてきた候補文字の辞書ストロークデータから、ストローク部分データを作成する。
【０１０１】
ステップＳ１２−１：ストローク部分データを作成する処理を開始する。ストローク部分データ作成のための、座標点のインデックスアドレス、辞書ストロークデータ読み込みバッファやワーク等の初期化を行う。
ステップＳ１２−２：候補文字の辞書ストロークデータにおける形状的に相違のあるストロークを読み込む。候補文字の文字コードから、辞書ストロークデータを検索し、検索した辞書ストロークデータの中で、形状的に相互に差があるストロークを検出する。形状の差は、座標点の位置差に基づいて検出する。候補文字Ｈ「わ」、Ｉ「ね」、Ｊ「れ」では、１筆目の縦線は大体同一形状であるので２筆目のストロークを読み込む。
ステップＳ１２−３：対応ストローク上の対応座標点同士の距離を計算する。ストロークの同一形状部分の座標点は、大体同一位置に存在するので、距離が小さい。
例えば、候補文字Ｈの始点を（Ｈ１ｘ，Ｈ１ｙ）、候補文字Ｉの始点を（Ｉ１ｘ，Ｉ１ｙ）、候補文字Ｊの始点を（Ｊ１ｘ，Ｊ１ｙ）とすると、これら始点の距離は、式（７）で算出される。
【０１０２】
【数３】
2004185264.tif 000005
【０１０３】
となる。
ステップＳ１２−４：ステップＳ１２−３で算出した距離が誤差範囲以上なら、ストローク部分データとして記憶する。距離が０に近ければ、その部分は共通部分（同一点）と考えられるので、共通部分を削除する。文字入力時や、辞書作成時にストロークデータは正規化され、文字サイズは例えば（１００×１００）であるので、共通部分の座標点は大体同一である。誤差範囲と評価する閾値は、認識辞書ごとに所定値に設定する。
ステップＳ１２−５：次の座標点に進めるために、座標点のインデックスアドレスを１つ進める。これによって、順次ストロークの始点から終点までをチェックしていく。
ステップＳ１２−６：ストロークの終点まで、処理が終了したか否かのチェックを行う。処理が終了していなければ、ステップＳ１２ー３に戻り、次の座標点の距離計算を行い、終点まで距離計算が終了していれば、ステップＳ１２−７へ進む。
ステップＳ１２−７：抽出したストローク部分データを次の処理手段へ出力する。
図１３の「わ」、「ね」、「れ」の例において、「わ」のストローク部分データとして、Ｈ−７、Ｈ−８、Ｈ−９、Ｈ−１０の各点が出力され、「ね」のストローク部分データとして、Ｉ−７、Ｉ−８、Ｉ−９、Ｉ−１０の各点が出力され、「れ」のストローク部分データとして、Ｊ−７、Ｊ−８、Ｊ−９、Ｊ−１０の各点が出力される。
ステップＳ１２ー８：処理を終了する。
図１５は、図１１のストロークの一部とのマッチング手段９−１に相当する処理であり、以下の各ステップにより実行される。
ステップＳ１３−１：ストローク部分データとのマッチング処理を開始する。以下の処理で、図１４のフローチャートで抽出したストローク部分辞書のストローク部分データと、入力ストロークデータとのマッチングを実行するが、その前に、マッチング処理用のワークバッファ等の初期化を行う。
ステップＳ１３−２：１個のストローク部分辞書のデータをマッチング用のバッファに読み込む。１個のストローク部分辞書のデータは、文字コードと、ステップＳ１２−７で抽出したストロークの一部の座標点と、その座標点がストロークのどの部分であるかを示すインデックスとよりなる。
ステップＳ１３−３：ストローク部分辞書のストローク部分データの座標点と入力ストロークデータの座標点との距離計算を行う。すなわち、ストローク部分辞書におけるストローク部分データの座標点と、入力ストロークデータの同一インデックス座標点との距離を計算する。
【０１０４】
例えば、ストローク部分データの座標点が始点から７番目の座標点Ｈ−７なら、入力ストロークデータについて、始点から７番目の座標点に注目し、両者の距離を計算する。このステップで順次、座標点間の距離を計算する。
ステップＳ１３−４：ステップＳ１３−３で計算した距離を加算しする。全てのストローク部分辞書のストローク部分データの座標点と入力ストロークデータの座標点との距離の積算値を算出し、この積算値を一致度とする。
ステップＳ１３−５：ストローク部分データの次の座標点に移動する。すなわち、読み込んでいるストローク部分辞書のインデックスを１加算して、次の座標点を読み込む。
ステップＳ１３−６：ステップＳ１３−２で読み込んだストローク部分データの全ての座標点の計算が終わったか否かチェックする。終了していれば、ステップＳ１３−７に進み、未処理の座標点があれば、ステップＳ１３−３に戻って、次の座標点の処理を行う。
ステップＳ１３ー７：文字コードと、ストローク部分データとの距離（一致度）を、距離が小さい順に候補記憶領域に記憶する。辞書ストロークデータと入力ストロークデータが完全に同一であれば、座標点間の距離は０になり、位置や形状が異なれば異なるほど、距離は大きくなる。
ステップＳ１３−８：次のストローク部分データに進む処理を行う。ストローク部分辞書のストローク部分データのインデックスを１加算して、次のストローク部分データに進む。
ステップＳ１３−９：ストローク部分辞書の全データの処理を終了したか否かをチェックする。全てのデータの処理が終了していれば、一致度が最も高い文字コードを第１位の候補として出力して、処理を終了する。未処理のデータが存在すれば、ステップＳ１３−２に戻る。
本実施形態によれば、平仮名等の低画数文字の認識時に、ストロークの一部の特徴のみが異なる類似文字を識別が可能である。
ストロークの一部のみを抽出して認識処理の補正を行う処理は、低画数文字のみに限定するものではなく、高画数文字についても、対象となる類似文字によっては有効である。
【０１０５】
また本発明の趣旨と範囲は、本発明の特定の説明と図に限定されるものではなく、本願特許請求の範囲に述べられた内容の様々な修正および変更に及ぶことは当業者にとって理解されるであろう。
上述した本発明の第１実施形態及び第２実施形態の特徴を以下に総括する。
［実施態様１］  手書き入力文字を位置座標のデータに変換し、入力ストロークデータを生成する入力ステップと、前記入力ストロークデータと、文字全体形状の辞書ストロークデータとをマッチングを行い、候補文字を抽出し、評価する全体形状マッチングステップと、前記候補文字に相互に類似する類似文字が存在するか否か判定する類似文字抽出ステップと、前記類似文字について、辞書ストロークデータにおける、相互に類似していない相違部分を抽出する相違部分抽出ステップと、前記入力ストロークデータと前記各候補文字の相違部分とをマッチングし、評価する相違部分マッチングステップと、前記相違部分マッチングステップによる候補文字の評価結果に基づいて、全体形状マッチングステップにおける候補文字の評価結果を補正する補正ステップとを備えた文字認識方法。
［実施態様２］  手書き入力文字を位置座標のデータに変換し、入力ストロークデータを生成する入力手段と、前記入力ストロークデータと、文字全体形状の辞書ストロークデータとをマッチングを行い、候補文字を抽出し、評価する全体形状マッチング手段と、前記候補文字に相互に類似する類似文字が存在するか否か判定する類似文字抽出手段と、前記類似文字について、辞書ストロークデータにおける、相互に類似していない相違部分を抽出する相違部分抽出手段と、前記入力ストロークデータと前記各候補文字の相違部分とをマッチングし、評価する相違部分マッチング手段と、前記相違部分マッチングステップによる候補文字の評価結果に基づいて、全体形状マッチングステップにおける候補文字の評価結果を補正する補正手段とを備えた文字認識装置。
【０１０６】
［実施態様３］  前記類似文字抽出ステップは、前記全体形状マッチングステップで抽出した複数の候補文字に対応する辞書ストロークデータについて、形状が類似するものを類似文字として判断することを特徴とする実施態様１記載の文字認識方法。
【０１０７】
［実施態様４］  前記相違部分抽出ステップは、対応する個々の辞書ストロークデータの始点相互の距離および終端相互の距離に基づいて相違部分を抽出することを特徴とする実施態様３記載の文字認識方法。
【０１０８】
［実施態様５］  前記相違部分抽出ステップは、対応する個々の辞書ストロークデータ上における複数の位置座標に基づいて相違部分を抽出することを特徴とする実施態様３記載の文字認識方法。
【０１０９】
［実施態様６］  前記相違部分抽出ステップは、対応する個々の辞書ストロークデータを複数の部分ストロークに分割し、形状が類似する部分ストローク以外の部分ストロークを前記相違部分として抽出することを特徴とする実施態様１記載の文字認識方法。
【０１１０】
［実施態様７］  前記相違部分抽出ステップは、対応する部分ストロークの始点相互の距離および終端相互の距離に基づいて相違部分を判断することを特徴とする実施態様６記載の文字認識方法。
【０１１１】
［実施態様８］  手書き入力文字を位置座標のデータに変換し、入力ストロークデータを生成する入力ステップと、前記入力ストロークデータと、文字全体形状の辞書ストロークデータとをマッチングを行い、候補文字を抽出し、評価する全体形状マッチングステップと、前記候補文字に相互に類似する類似文字が存在するか否か判定する類似文字抽出ステップと、前記類似文字について、辞書ストロークデータにおける、相互に類似していない相違部分を抽出する相違部分抽出ステップと、前記入力ストロークデータと前記各候補文字の相違部分とをマッチングし、評価する相違部分マッチングステップと、前記相違部分マッチングステップによる候補文字の評価結果に基づいて、全体形状マッチングステップにおける候補文字の評価結果を補正する補正ステップと、をコンピュータに実行させるためのコンピュータプログラム。
【０１１２】
【発明の効果】
本発明によれば、複数の候補文字が抽出され、これら候補文字に類似文字が含まれていたときに、認識率を向上し得る。
【図面の簡単な説明】
【図１】本発明に係る文字認識方法の第１の実施形態を実施する、携帯情報端末の使用状態を示す図である。
【図２】図１の携帯情報端末を示すブロック図である。
【図３】図１の携帯情報端末を示す機能ブロック図である。
【図４】本発明に係る文字認識方法の第１の実施形態で処理される入力ストロークデータと辞書ストロークデータを示す概念図である。
【図５】図４の辞書ストロークデータの構成図である。
【図６】図５の辞書ストロークデータにおける９画文字の辞書ストロークデータを示す表である。
【図７】図４における、辞書ストロークデータと、入力ストロークデータとのマッチング処理を示す表である。
【図８】図４における、辞書から抽出した部分ストロークと、入力ストロークデータとの、マッチング処理を示す表である。
【図９】本発明に係る文字認識方法の第１の実施形態を示すフローチャートである。
【図１０】図７の処理に続く処理を示すフローチャートである。
【図１１】本発明に係る文字認識方法の第２の実施形態を実施する、携帯情報端末を示す機能ブロック図である。
【図１２】図９の入力ストロークデータと辞書ストロークデータとの、マッチング処理を示す表である。
【図１３】図１２の辞書ストロークデータで注目しているストロークのデータを示す図である。
【図１４】本発明に係る文字認識方法の第２の実施形態を示すフローチャートである。
【図１５】図１４の処理に続く処理を示すフローチャートである。
【符号の説明】
１  携帯情報端末
２−１  位置座標入力部
２−２  画像表示部
３  ペン
４    カメラ部
５  パソコン
６  ＣＰＵ
７  ＲＡＭ
８  ＲＯＭ
９  画像メディアインターフェイス
１０  ＵＳＢインターフェイス
１１  システムバス
【図１】
2004185264.tif 000006
【図２】
2004185264.tif 000007
【図３】
2004185264.tif 000008
【図４】
2004185264.tif 000009
【図５】
2004185264.tif 000010
【図６】
2004185264.tif 000011
【図７】
2004185264.tif 000012
【図８】
2004185264.tif 000013
【図９】
2004185264.tif 000014
【図１０】
2004185264.tif 000015
【図１１】
2004185264.tif 000016
【図１２】
2004185264.tif 000017
【図１３】
2004185264.tif 000018
【図１４】
2004185264.tif 000019
【図１５】
2004185264.tif 000020