手書き文字認識装置
【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は手書き文字を動的計画法を用いて認識させる手書き文字認識装置に関する。
【0002】
【従来の技術】従来から文字認識装置において、入力文字パターンを認識するための手法として比較的簡単で有効な方法であるパターンマッチング法が用いられていた。このパターンマッチング法では、入力文字パターンと予め登録された複数の標準文字パターンとの間の累積距離(相違度)を求め、最も累積距離の小さい標準パターンの属するカテゴリを認識結果とする方法である。文字認識装置の一般的なパターンマッチング方法としては、動的計画法が用いられてきた。動的計画法では手書きによりストローク単位に入力した文字を、ある定められたデータ列に変換し、その変換されたデータ列と予め登録されている複数の標準パターン文字のデータ列とを比較する。そしてそのうち最も累積距離(相違度)の小さいパターンを認識結果として出力していた。詳しい内容については例として、文一総合出版社から出版されている「パターン認識と学習のアルゴリズム(P91〜P108)」を参照されたい。
【0003】動的計画法の計算には以下の漸化式を用いる。
【0004】
g(i,j) = d(i,j) + min{g(i-1,j),g(i,j-1),g(i-1,j-1)} (1) g(i,0) = d(0,0) + d(1,0) + ・・・+ d(imax,0) (2) g(0,j) = d(0,0) + d(0,1) + ・・・+ d(0,jmax) (3)ここで、入力パターンAと標準パターンBをベクトルの部分列で表わす。
【0005】
A = a0,a1,a2,a3,・・・ai,・・・,aimax (4)B = b0,b1,b2,b3,・・・bj,・・・,bjmax (5)aiは入力パターンAを構成するi番目の部分ベクトルであり、同様にbjは標準パターンBを構成するj番目の部分ベクトルである。(1)式のg(i,j)は、図4(a)に示すように、iを横軸、jを縦軸にとった場合の各格子点における入力パターンAと標準パターンBとのパターンマッチングの演算結果を意味している。d(i,j)はaiとbjとの距離‖ai-bj‖である。g(i,j)は(1)式からわかるように、g(i-1,j)とg(i,j-1)とg(i-1,j-1)の中で最小値を求めた値とd(i,j)との関係から成り立っており、距離d(i,j)の累積距離を表わしている。(2)(3)式は、(1)式の初期値を求める式である。これら漸化式から最小値を求めることは、図4(b)における3方向から逐次計算をすることを意味している。また、図4(b)の■はg(i-1,j)、■はg(i-1,j-1)、■はg(i,j-1)の漸化式に相当する。これら■■■の最小値を選択して(1)式のg(i,j)を求め、パターンの最終ベクトルにたどり着くまでの経路をグラフに表わすことができる。例として図4(a)にg(i,j)のパターンマッチングの最小累積距離となる経路を示す。この経路は、パターンマッチングする入力パターンAと標準パターンBの部分ベクトル列の内容により変化する。
【0006】次に、図面を用いて従来の文字認識装置を説明する。図3はその原理を示すブロック図である。タブレット等から書き込まれた手書き文字のイメージデータがストローク単位で手書き文字入力部10に入力される。入力した手書き文字のストロークは、データ列変換部20においてストロークの特徴を抽出し、ある定められたベクトル列データに変換される。そしてこのベクトル列はパターン距離演算部70に送られ、動的計画法を用いて標準パターン文字辞書40との間で累積距離が求められる。その結果標準パターン文字辞書40の中で最も累積距離の小さい標準パターン文字を、認識結果とした。パターン距離演算部70では、上記(1)の漸化式が用いられ、累積距離が計算される。
【0007】
【発明が解決しようとする課題】ところで、従来の文字認識装置には以下の問題点がある。タブレット等で書き込まれた手書き文字のイメージデータの中には、ノイズ成分が含まれている場合が多く、イメージデータの書き始めの部分に乗ることが多い。このノイズの発生原因としては、タブレット等のハードウエアの性能に依存することが多い。また、手書き文字は書き込む人各々によって異なり癖がある。そのため、ノイズ以外にハネ、おさえや同一文字でも書き込む人により大小様々な文字の部分的な変形が発生する。そしてそれらは特に手書き文字の書き始めや書き終わりの部分に発生しやすい。その結果、データ列変換部20においてノイズ成分やハネ、おさえや大小様々な文字の部分的な変形が手書き文字のストロークの特徴点として抽出され、ベクトル列として変換されていた。また、標準パターン文字辞書40には、手書き文字は楷書で書き込まれることを前提とした標準的なパターンが予め登録されていた。そしてパターン距離演算部70では、ノイズ成分やハネ、おさえや大小様々な文字の部分変形の部分ベクトルを含んだ部分ベクトル列と、それらを含まない標準的なパターンを予め登録してある標準パターン文字辞書40との間で累積距離演算を行なっていた。そのため楷書で書き込まれた入力パターンの部分ベクトル列の累積距離よりも部分変形した入力パターンの部分ベクトルが加えられただけ累積距離が大きくなり、手書き文字入力者の意図しない別の標準パターン文字との累積距離が最小となってしまった。その結果、誤認識の割合が増加してしまったと言う問題を含んでいた。また、この誤認識を減らすために標準パターン文字辞書40内に部分的に変形した標準パターン文字を新たに追加登録する方法で対処することができる。しかし、パターン距離演算部70では標準パターン文字辞書40内の全ての標準パターン文字との間の累積距離を計算するため、標準パターン文字を登録すればするほど計算時間が長くなってしまう。その結果文字認識速度が遅くなり装置全体の使い勝手が低下してしまうことと、標準パターン文字辞書40のメモリ容量が増加してハードウエアのコストを増加させてしまうと言う問題を含んでいた。
【0008】
【課題を解決するための手段】上記課題を解決するために、第1の手書き文字認識装置は、手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから始点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する始点不確定パターン領域検出手段と、前記累積距離を累積せず固定とする距離固定手段とを有し、前記始点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記不確定パターン領域の前記累積距離を前記距離固定手段を用いて固定とし、前記不確定パターン領域の周辺から前記累積距離演算手段を用いて前記累積距離を求めることを特徴とする。また、第2の発明の手書き文字認識装置は、手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから終点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する終点不確定パターン領域検出手段と、前記距離の前記累積距離への寄与を減少させる減衰手段とを有し、前記終点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記減衰手段を用いて前記累積距離を求めることを特徴とする。
【0009】また、第1および第2の手書き文字認識装置は、手書き文字のストロークの特徴をある定められたデータ列に変換したデータ列と複数の標準パターンとの距離を動的計画法を用いて演算し、前記データ列の始点不確定パターン領域では距離固定手段を用いて累積距離を0とし、終点不確定パターン領域では減衰手段を用いて前記距離を0とすることを特徴とする。
【0010】
【作用】第1の発明の手書き文字認識装置によれば、入力部に手書き文字のイメージがストローク単位に入力される。入力されたストロークデータはデータ列変換部である定められたデータ列に変換される。その後ある定められたデータ列に変換された入力ストロークのデータ列と全ての標準パターンとの間で、累積距離演算手段を用いて累積距離を求める。その際、始点不確定パターン領域検出手段で不確定パターン領域が検出されると、不確定パターン領域の累積距離を、距離固定手段で累積せず固定する。そして、全ての標準パターン文字の中で累積距離が最小となる標準パターン文字を認識文字とする。
【0011】第2の発明の手書き文字認識装置によれば、入力部に手書き文字のイメージがストローク単位に入力される。入力されたストロークデータはデータ列変換部である定められたデータ列に変換される。その後ある定められたデータ列に変換された入力ストロークのデータ列と全ての標準パターンとの間で、累積距離演算手段を用いて累積距離を求める。その際、終点不確定パターン領域検出手段で不確定パターン領域が検出されると、不確定パターン領域の入力ストロークデータ列と標準パターンとの距離の累積距離への寄与を減衰手段で減少させる。そして、全ての標準パターン文字の中で累積距離の最小となる標準パターン文字を認識文字とする。
【0012】また、第1および第2の手書き文字認識装置は、始点不確定パターン領域検出手段または終点不確定パターン領域検出手段により不確定パターン領域が検出されると、始点不確定パターン領域内では距離固定手段により累積距離を0とし、終点不確定パターン領域内では減衰手段により距離を0として累積距離を求める。
【0013】
【実施例】以下、第1の発明の手書き文字認識装置および第2の発明の手書き文字認識装置の実施例について添付図面を参照して説明する。
【0014】本実施例では不確定パターン領域として、標準パターンを構成する部分ベクトル列のbit6またはbit7がセットされた部分ベクトルと、入力パターンの最初または最後の部分ベクトルとの間で距離を求める場合の領域とする。また不確定パターン領域での距離は0とした。
【0015】図1は、第1および第2の発明の手書き文字認識装置の実施例の構成を示すブロック図である。同図より、手書き文字認識装置には、手書き文字を書き込むためのタブレット11およびぺン12、タブレット11から送られてくる手書き文字のイメージをストローク単位に取り込み、取り込んだストロークを部分ベクトル列に変換し認識結果を出力するまでを制御するプログラムが組み込まれた読み出し専用の認識プログラムメモリ100、認識プログラムメモリ100にはタブレット11から時系列的に順次入力される手書き文字の座標データをストローク単位にサンプリングする処理や、サンプリングしたストロークの位置及び大きさを縮小したり拡大して正規化する処理等を行なう前処理21、前処理21で得られたストロークデータは、ストロークの始点、終点、そしてストロークの屈曲している点等を演算処理により算出し取り出し、取り出した点をストロークの特徴点とするストローク特徴点抽出22、ストローク特徴点抽出22で取り出された特徴点を図5(a)に示す16方向ベクトルで直線近似化するベクトル化23、後述する標準パターン文字辞書40に予め登録してある全ての標準パターンとベクトル化23で16方向ベクトル列化されたストロークの特徴点との間で累積距離を求める累積距離演算手段31と、標準パターン文字辞書40に予め登録してある標準パターンの部分ベクトル中に存在してもしなくてもよい不確定パターンがあり、かつ入力した16方向ベクトル列の最初または最後の部分ベクトルでの距離計算であるのかを検出する始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33と、始点不確定パターン領域検出手段32で不確定パターン領域が検出されると、不確定パターン領域での距離を累積せずに固定する距離固定手段34と、終点不確定パターン領域検出手段33で不確定パターン領域が検出されると、不確定パターン領域内の距離の累積距離への寄与を減少させる減衰手段35とからなるプログラムである。そしてこれらの手段を用いて全ての標準パターンとの間の累積距離を求め、累積距離の最小となった標準パターン文字辞書40内の標準パターンを認識結果とする。バッファメモリ80は、タブレット11で取り込んだ手書き文字の座標データや、認識プログラムメモリ100等で一時的にデータを記憶させておくときのためのメモリである。標準パターン文字辞書40は、複数の標準パターン文字のシフトJISコードと、そのパターンを構成する16方向部分ベクトル列で構成され、読みだし専用メモリ内に納められている。CPU90は、文字認識装置全体を制御する。ディスプレイ50は、手書き文字のイメージデータや書き込むための複数の情報を表示したり、認識プログラムメモリ100で認識された認識文字等を表示する。なお、ディスプレイ50とタブレット11は、一体化された構造になっている。
【0016】次に第1および第2の実施例の処理の流れについて、図2の(a)(b)を用いて説明する。
【0017】まず、図2の(a)の概念図を用いて、第1の実施例の処理の流れを説明する。手書き文字入力部10に入力された手書き文字のイメージデータが座標データとしてデータ列変換部20に送られ、座標データのサンプリング、特徴抽出、16方向部分ベクトル列化等の処理が行なわれる。そしてデータ列変換部20で部分ベクトル列化された手書き文字のイメージデータがパターンマッチング部30に送られる。パターンマッチング部30では、入力した16方向部分ベクトル列と全ての標準パターン文字辞書40内の標準パターンとの間の累積距離を累積距離演算手段31で計算する。ここで始点不確定パターン領域検出手段32において、標準パターン文字辞書40内の標準パターンの部分ベクトル列中に、存在してもしなくてもよい不確定パターンがあり、かつ入力した部分ベクトル列の最初の部分ベクトルとの間の距離計算であることが検出されると、距離固定手段34から距離を0とする指令が出される。そしてその距離の値0を累積距離とする。このようにして全ての標準パターン文字辞書40内の標準パターンとの累積距離を求める。そして一番累積距離の小さい標準パターンのシフトJISコードが手書き文字のイメージデータの認識結果となり、そのシフトJISコードが文字に変換されディスプレイ50に表示される。
【0018】次に、図2の(b)の概念図を用いて、第2の実施例の処理の流れを説明する。手書き文字入力部10に入力された手書き文字のイメージデータが座標データとしてデータ列変換部20に送られ、座標データのサンプリング、特徴抽出、16方向部分ベクトル列化等の処理が行なわれる。そしてデータ列変換部20で部分ベクトル列化された手書き文字のイメージデータがパターンマッチング部30に送られる。パターンマッチング部30では、入力した16方向部分ベクトル列と標準パターン文字辞書40内の標準パターンとの間の累積距離を累積距離演算手段31で計算する。ここで終点不確定パターン領域検出手段33において、標準パターン文字辞書40内の標準パターンの部分ベクトル列中に、存在してもしなくてもよい不確定パターンがあり、かつ入力した部分ベクトル列の最後の部分ベクトルとの間の距離計算であることが検出されると、減衰手段35から距離を0とする指令が出される。そしてその距離の値0を累積距離とする。このようにして全ての標準パターン文字辞書40内の標準パターンとの累積距離を求める。そして一番累積距離の小さい標準パターンのシフトJISコードが手書き文字のイメージデータの認識結果となり、そのシフトJISコードが文字に変換されされディスプレイ50に表示される。
【0019】次に、各処理ごとの動作について図8および図9の全体の処理の流れと対応させながら説明する。図8および図9は認識プログラムメモリ100内の処理の流れを示したフロチャートである。この処理は装置に電源が投入されると処理がスタートし、電源が切られるまでこの処理を続ける。まず、手書き文字入力部10では、手書き文字のイメージデータをぺン12を用いてタブレット11に書き込むと、書き込まれた手書き文字のイメージデータの軌跡が、タブレット11上の座標データに変換される。この座標データには、タブレット11に書き込まれた手書き文字イメージデータの他に、ぺン12がタブレット11に接したこと(以下ペンダウンと呼ぶ)および離れたこと(以下ペンアップと呼ぶ)を示す監視データが含まれている。そしてイメージデータと監視データは、お互いに区別することができるデータの構成になっている。
【0020】データ列変換部20では、タブレット11の座標データを前処理21でサンプリングし(ステップ111)、サンプリングした座標データからペンダウンしたのかを判断する(ステップ112)。ペンダウンでない場合にはステップ111に戻りたタブレット11の座標データを再びサンプリングする。ペンダウンした場合には、ペンアップするまでタブレット11に書き込まれた手書き文字の座標データをサンプリングする(ステップ112、113)。ステップ111とステップ113でサンプリングされた座標データはバッファメモリ80に転送され、後の処理で再び読み込まれ使用される。ペンアップになるとストローク数がカウントアップされ、サンプリングした座標データと対応させた状態でバッファメモリ80に転送される(ステップ115)。その後タブレット11に再び手書き文字が書き込まれるのかを判断するためにディレイタイマーが働き、ここで設定された時間を経過してもタブレット11に書き込みが無い場合は、手書き文字の入力が終了したと判断する(ステップ116、117、118、120)。ディレイ時間を経過する前にペンダウンが確認されると、ディレイタイマーをストップさせ(ステップ119)、再びタブレット11の座標データのサンプリングを開始する(ステップ111に戻る)。ディレイ時間を経過してペンダウンでないことが確認されると、タブレット11に書き込まれた手書き文字の大きさを一定にするために、サンプリングしてバッファメモリ80に記憶させておいた座標データを正規化する(ステップ121)。正規化された座標データは、ストローク特徴点抽出22において、ストロークごとにデータ列の中から特徴点となる始終点や屈曲点を演算処理により抽出される(ステップ122、図6)。そして抽出した特徴点をベクトル化23において、16方向のベクトル(図5(a))で直線近似する(ステップ123)。ストロークの特徴点および16方向でベクトル化された部分ベクトル列は、バッファメモリ80に転送され記憶されている。
【0021】次にパターンマッチング部30では、バッファメモリ80に記憶されている16方向部分ベクトル列と標準パターン文字辞書40との間で、動的計画法を用いて距離を計算する。パターンマッチング部30は、距離を計算し累積距離を求める累積距離演算手段31と、標準パターンの中に存在してもしなくてもよい不確定パターンがあるのかを確認し、かつ入力した16方向部分ベクトル列の最初または最後の部分ベクトルに対して距離を計算するのかを確認する始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33と、始点不確定パターン領域検出手段32で不確定パターン領域を検出すると、不確定パターン領域内の距離を0として累積距離を求める距離固定手段34と、終点不確定パターン領域検出手段33で不確定パターン領域を検出すると、不確定パターン領域内の距離を0として累積距離を求める減衰手段35とによって構成されている(ステップ124)。これらパターンマッチング部30の処理の流れについて図10〜図12のフロチャートを用いて説明する。累積距離演算手段31では前述の漸化式(1)を用いて計算する。まず累積距離演算手段31では、入力パターンAと標準パターンBの累積距離g(i,j)の初期値として、g(0,0)を求める(ステップ130、131)。次に、g(1,0)から入力パターンAの最終部分ベクトル(aimax)までの標準パターンBの部分ベクトルb0との累積距離を求める(ステップ132、133、134、135)。同様に、g(0,1)から標準パターンBの最終部分ベクトル(bjmax)までの入力パターンAの部分ベクトルa0との累積距離を求める(ステップ136、137、138、139)。そして、g(1,1)から入力パターンAの最終部分ベクトル(aimax)および標準パターンBの最終部分ベクトル(bjmax)までの各々の部分ベクトルの格子点における累積距離を求める(ステップ140、141、142、143、144、145)。
【0022】また、各々の格子点における累積距離を求めるときに始点不確定パターン領域検出手段32、終点不確定パターン領域検出手段33、距離固定手段34および減衰手段35を用いており、その処理内容を図12のフロチャートに示す。これは、図10および図11のフロチャートにおいてサブルーチン化されている「距離計算」(ステップ131、133、137、141)に相当する。図12では、始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33がステップ146および148に相当し、距離固定手段34および減衰手段35がステップ149および151に相当し、累積距離演算手段31がステップ147、152に相当する。ステップ150は累積距離の初期値であるg(0,0)を演算するときの判断に用いる。まず、標準パターンBの部分ベクトルのbit6またはbit7がセットされているのかを確認する。セットされている場合には入力パターンAの部分ベクトルがa0またはaimaxとの間での距離計算を実行しようとしているのかを確認する(ステップ146、148)。bit6は標準パターンBの部分ベクトルが終点不確定パターン領域を示すビットで、bit7は始点不確定パターン領域を示すビットで、入力パターンAの部分ベクトル列中に存在してもしなくてもよい不確定なパターンであることを表わしている。bit6またはbit7が標準パターンBの部分ベクトルにセットされていて、かつ入力パターンAの部分ベクトルがa0またはaimaxで距離を計算する場合は、距離d(i,j)の値をを0にセットする(ステップ149)。そして更にその距離d(i,j)を累積距離g(i,j)としてセットする(ステップ151)。bit6またはbit7がセットされていない場合、またはセットされていても入力パターンAの部分ベクトルがa0またはaimax以外では、距離d(i,j)に‖ai-bj‖をセットする(ステップ147)。そして累積距離の初期値g(0,0)を求める計算であるのかを確認する(ステップ150)。初期値g(0,0)を求める場合はステップ151に進み、それ以外はステップ152に進み累積距離を計算する。このようにして求められた累積距離g(i,j)の最短距離を示す経路の例を図13に示す。横軸は入力パターンA、縦軸は標準パターンBで、標準パターンBの部分ベクトルb0、b1およびbjmax-1、bjmaxは不確定パターンとして登録されている。図13で太線で囲った領域は、始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33でそれぞれ始点領域または終点領域で不確定パターンであることが検出され、距離固定手段34または減衰手段35により距離d(i,j)の値を0として累積距離を求めた領域である。すなわちこの太線で囲った領域内では累積距離が0となる。従って、入力パターンAの部分ベクトルa0またはaimaxが如何なるベクトルであっても標準パターンBの部分ベクトルb0,b1またはbjmax-1,bjmaxと一致していることとなる。その結果、太線で囲った不確定パターン領域内における標準パターンBの部分ベクトルb0,b1またはbjmax-1,bjmaxが入力パターンAの最初または最後の部分ベクトルに存在してもしなくても、距離d(i,j)は0で固定される。よって、入力パターンAと標準パターンBとの累積距離演算を開始する際において、始点不確定パターン領域の周辺である(a0,b2),(a1,b0),(a1,b1),(a1,b2)の何れかの格子点から累積距離演算を開始しても、始点不確定パターン領域内のg(0,0)から計算を開始した場合と等価になる。また、終点不確定パターン領域内では距離が全て0となり累積距離も0となる。従って累積距離演算を終了させる際において、終点不確定パターン領域の周辺である(aimax,bjmax-2),(aimax-1,bjmax-2),(aimax-1,bjmax-1),(aimax-1,bjmax)の何れかの格子点で終了しても、累積距離演算の最終であるg(imax,jmax)で終了した場合と等価になる。
【0023】では、図6の手書き文字入力部10に入力したサンプルを用い、パターンマッチング部30について説明する。図6は手書き文字「て、h、b」を入力し、データ列変換部20で16方向部分ベクトル列に変換されるまでを示した図である。パターンマッチング部30に部分ベクトル列が引き渡されるときには、16方向の部分ベクトル列(16進表示)の数値で引き渡される。各々のデータが16方向化された1本の部分ベクトルを表わしている。また、図6の(a)は手書き文字の始点と終点にハネやおさえの含まれたサンプルの一例である。また、図6の(b)(c)は「h」を筆記体とブロック体で書き込んだ手書き文字、(d)は「b」をブロック体で書き込んだ手書き文字のサンプルの一例である。図7の(c)は標準パターン文字辞書40を構成する辞書の一部を示した図で、標準パターン文字のシフトJISコード(16進表示)と16方向ベクトル列で表現された部分ベクトル列(16進表示)からなる。ここで、例として図6の(b)(c)の「h」をパターンマッチング部30で累積距離を計算することとする。標準パターン文字辞書40の「h」には、図6(c)のブロック体で書かれた「h」の形をした文字のみが標準パターンとして登録されているものとして累積距離を計算してみる。その結果、筆記体「h」は始点付近と終点付近の部分ベクトル列の中に、ブロック体「h」には存在しない部分ベクトルがあるため、その存在しない部分ベクトルの距離だけ筆記体「h」の累積距離が大きくなる。従って、同じ小文字の「h」ではあるが累積距離が異なる。よって、ブロック体の「h」は標準パターン文字の「h」との累積距離が0となり最小となるが、筆記体「h」は「h」以外の標準パターン文字との累積距離が最小となる可能性が高くなる。しかし、図6(b)(c)の「h」文字の形に着目すると、文字全体としては形は異なるが、図6(b)の筆記体文字の書き始めの部分と書き終わりの部分を取り去るとブロック体で書かれた図6(c)と類似した形となる。図7(a)にその過程を示す。筆記体で書かれた手書き文字「h」は、図7R>7(a)の点線で示す部分を削除することで、ブロック体で書かれた手書き文字「h」と類似した形にすることができる。このことから筆記体で書かれた「h」は、ブロック体で書かれた「h」の形を基本として、始点付近と終点付近の形が部分的に変形した文字として扱うことができる。よって図6の(b)(c)の文字は、図7(a)の書き始めの点線部分の部分ベクトルを始点不確定パターンとし、書き終わりの点線部分の部分ベクトルを終点不確定パターンとして標準パターン文字辞書40に登録することで、始点不確定パターン領域検出手段32または終点不確定パターン領域検出手段33により不確定パターン領域として検出することが可能となる。そして、標準パターンとの距離は始点不確定パターン領域では距離固定手段34で0となり、終点不確定パターン領域では減衰手段35で0となるため、図7(a)の点線部分の入力パターンは存在してもしなくても筆記体およびブロック体「h」の累積距離は同じになる。従って、図6(b)(c)の文字は不確定パターンを登録した標準パターン文字「h」を介することで、1つの同じ標準パターン文字を最小累積距離として計算することができる。図7(c)に不確定パターンを登録した標準パターン文字辞書40の構成を示す。「h」では、16方向部分ベクトル列の中で「81、81、81、87、88(16進データ)」が始点不確定パターンとして登録したパターンで、「41、42(16進データ)」が終点不確定パターンとして登録したパターンである。「て」においては「87(16進データ)」と「44(16進データ)」とがそれぞれ始点不確定パターンと終点不確定パターンである。また、図14(a)に図6(b)の筆記体で書かれた「h」と、不確定パターンを登録した標準パターンである図7(c)の「h」との累積距離である漸化式(1)のg(i,j)の演算結果の経路を示す。図14(b)も同様に、図6(c)と図7(c)の「h」とのg(i,j)の演算結果の経路を示した図である。図14(a)と(b)において、太線で囲った領域は始点または終点不確定パターン領域を示す。始点不確定パターン領域では、距離固定手段34により各格子点の距離d(i,j)が0となるため、累積距離g(i,j)は0で固定される。また、終点不確定パターン領域では減衰手段35により入力パターンと標準パターンの部分ベクトル間の距離d(i,j)が如何なる値であっても距離d(i,j)は0となる。その結果、図14(b)の終点不確定パターン領域内の距離のように、実際に求められた標準パターンと入力パターンの部分ベクトル間の距離より小さい距離となる。最終的な累積距離g(i,j)は、図14(a)では入力パターン「2」と標準パターン「42」とのg(i,j)であり、図14(b)では入力パターン「b」と標準パターン「42」との累積距離g(i,j)を求めることである。そしてそれら累積距離を求めると0となる。従って、図7(c)の「h」の標準パターンを登録することで、図6(b)(c)の筆記体およびブロック体「h」は同じ文字としてマッチングすることができる。
【0024】次に、入力パターンにブロック体の「h」と類似した形の図6(d)のブロック体「b」を入力し、不確定パターンを登録した標準パターンに図7(c)「h」との間の累積距離を求めてみる。図15が漸化式(1)のg(i,j)の演算結果の経路を示した図である。パターンマッチング部30の累積距離演算手段31において、始点不確定パターン領域と終点不確定パターン領域の距離d(i,j)は距離固定手段34または減衰手段35により0となる。しかし、入力パターン「b」の中の最後から2番目の部分ベクトル「9」が標準パターンの中に存在しないため、入力パターン「9」と標準パターン「41」との累積距離g(i,j)の演算結果は「8」となる。その結果、最終的な累積距離g(i,j)の演算結果である入力パターン「8」と標準パターン42」との累積距離は「2」となる。従って、不確定パターンを登録した「h」の標準パターンと入力パターン「b」との間で累積距離を求めると、図7(b)のブロック体「b」の文字における点線部分が不確定パターンとして登録したパターンと異なる。よって、前述のように不確定パターンとして登録した筆記体の「h」を入力したときよりも累積距離が大きくなる。従って、「h」と「b」のように形の類似している文字に対しては同じ累積距離にならず、「h」と「b」を区別することができる。
【0025】次に、ハネとおさえを含んだ文字例である図6(a)の「て」についてパターンマッチング部30で累積距離を求めてみる。ハネやおさえは入力パターンの最初の部分ベクトルまたは最後の部分ベクトルに含まれることが多い。ハネやおさえが含まれた部分ベクトル列で累積距離を計算すると、ハネやおさえの部分ベクトルだけ累積距離が増加してしまう。そこで、標準パターンの最初の部分ベクトルおよび最後の部分ベクトルを不確定パターンとして登録しておくことで、ハネやおさえの部分ベクトルを削除することができる。これは、パターンマッチング部30では入力パターンの最初または最後の部分ベクトルは不確定パターン領域では、距離固定手段34または減衰手段35により距離が0となるからである。従って、ハネやおさえに影響されない標準パターンとの間の累積距離を求めることができる。
【0026】このようにしてパターンマッチング部30では、標準パターン文字辞書40に予め登録してある全ての標準パターンとの間で累積距離を求め、その結果をバッファメモリ80に転送する。
【0027】その後バッファメモリ80に記憶させてあった累積距離値の中から、最小となる累積距離を示した標準パターン文字辞書40内の標準パターンのシフトJISコードを文字に変換する(ステップ125)。そして、変換した文字を認識結果としてディスプレイ50上に表示する(ステップ126)。
【0028】なお、図12ステップ149、151の距離固定手段34が実行される条件として、標準パターンの部分ベクトルのbit6またはbit7がセットされていて、かつ入力パターンAの部分ベクトルの範囲をa0またはaimaxの時の距離d(i,j)を求める場合に限定したが(ステップ148)、入力パターンAの部分ベクトルの範囲を1つに限定することなく複数の部分ベクトルにまで範囲を拡大することができ、入力パターンAの部分ベクトルの範囲を可変することができる。
【0029】また、本実施例では不確定パターン領域が検出されると距離固定手段34で距離d(i,j)を0としたが(図12のステップ149)、入力パターンAと標準パターンBとの部分ベクトル間の距離‖ai-bj‖を用いてもよい。
【0030】また、上記のように距離d(i,j)に部分ベクトル間の距離‖ai-bj‖の値を用いる場合、終点不確定パターン領域内では減衰手段35において、距離‖ai-bj‖の値に0より大きく1より小さい範囲での定数を掛け合わせ、距離‖ai-bj‖を減少させた値を用いてもよい。
【0031】また、データ列変換部20においてストロークの特徴点を16方向でベクトル化したが、図5(b)に示す8方向ベクトルを用いてもよい。
【0032】
【発明の効果】以上のように本発明によれば、手書き文字の部分的に変形した文字の大小に関わらず、変形していない文字として扱うことができ、精度の高い認識を行なうことができる。また、標準パターンに部分変形していない文字の他に部分変形している文字までを登録する必要が無く、1または数個の標準パターンで累積距離演算をすることができることで累積距離演算時間が短くなり、スピーディーで快適な認識環境が実現でき、更に標準パターンのメモリサイズをコンパクトな容量にすることができる。
【図面の簡単な説明】
【図1】 本発明の手書き文字認識装置の構成を示すブロック図。
【図2】 本発明の手書き文字の処理の流れを示す概略図。
【図3】 従来の手書き文字認識装置の処理の流れを示す概略図。
【図4】 動的計画法によるパターンマッチングの原理を説明するための図。
【図5】 手書き文字をベクトル列化するための方向図。
【図6】 手書き文字入力部とデータ列変換部の処理結果を示す図。
【図7】 部分変形した手書き文字と不確定パターンを登録した標準パターン文字辞書内の構成を説明する図。
【図8】 認識プログラムメモリの処理の流れを示すフロチャート。
【図9】 認識プログラムメモリの処理の流れを示すフロチャート(図8のつづき)。
【図10】 パターンマッチング部の処理の流れを示すフロチャート。
【図11】 パターンマッチング部の処理の流れを示すフロチャート(図10のつづき)。
【図12】 始点不確定パターン領域検出手段、終点不確定パターン領域検出手段、距離固定手段および減衰手段の処理の流れを示すフロチャート。
【図13】 パターンマッチング部の動的計画法によるパターンマッチングを説明するための図。
【図14】 部分変形した文字と部分変形していない文字の累積距離演算経路を説明するための図。
【図15】 類似文字の累積距離演算経路を説明するための図。
【符号の説明】
10 手書き文字入力部
20 データ列変換部
30 パターンマッチング部
31 累積距離演算手段
32 始点不確定パターン領域検出手段
33 終点不確定パターン領域検出手段
34 距離固定手段
35 減衰手段
40 標準パターン文字辞書
【0001】
【産業上の利用分野】本発明は手書き文字を動的計画法を用いて認識させる手書き文字認識装置に関する。
【0002】
【従来の技術】従来から文字認識装置において、入力文字パターンを認識するための手法として比較的簡単で有効な方法であるパターンマッチング法が用いられていた。このパターンマッチング法では、入力文字パターンと予め登録された複数の標準文字パターンとの間の累積距離(相違度)を求め、最も累積距離の小さい標準パターンの属するカテゴリを認識結果とする方法である。文字認識装置の一般的なパターンマッチング方法としては、動的計画法が用いられてきた。動的計画法では手書きによりストローク単位に入力した文字を、ある定められたデータ列に変換し、その変換されたデータ列と予め登録されている複数の標準パターン文字のデータ列とを比較する。そしてそのうち最も累積距離(相違度)の小さいパターンを認識結果として出力していた。詳しい内容については例として、文一総合出版社から出版されている「パターン認識と学習のアルゴリズム(P91〜P108)」を参照されたい。
【0003】動的計画法の計算には以下の漸化式を用いる。
【0004】
g(i,j) = d(i,j) + min{g(i-1,j),g(i,j-1),g(i-1,j-1)} (1) g(i,0) = d(0,0) + d(1,0) + ・・・+ d(imax,0) (2) g(0,j) = d(0,0) + d(0,1) + ・・・+ d(0,jmax) (3)ここで、入力パターンAと標準パターンBをベクトルの部分列で表わす。
【0005】
A = a0,a1,a2,a3,・・・ai,・・・,aimax (4)B = b0,b1,b2,b3,・・・bj,・・・,bjmax (5)aiは入力パターンAを構成するi番目の部分ベクトルであり、同様にbjは標準パターンBを構成するj番目の部分ベクトルである。(1)式のg(i,j)は、図4(a)に示すように、iを横軸、jを縦軸にとった場合の各格子点における入力パターンAと標準パターンBとのパターンマッチングの演算結果を意味している。d(i,j)はaiとbjとの距離‖ai-bj‖である。g(i,j)は(1)式からわかるように、g(i-1,j)とg(i,j-1)とg(i-1,j-1)の中で最小値を求めた値とd(i,j)との関係から成り立っており、距離d(i,j)の累積距離を表わしている。(2)(3)式は、(1)式の初期値を求める式である。これら漸化式から最小値を求めることは、図4(b)における3方向から逐次計算をすることを意味している。また、図4(b)の
【0006】次に、図面を用いて従来の文字認識装置を説明する。図3はその原理を示すブロック図である。タブレット等から書き込まれた手書き文字のイメージデータがストローク単位で手書き文字入力部10に入力される。入力した手書き文字のストロークは、データ列変換部20においてストロークの特徴を抽出し、ある定められたベクトル列データに変換される。そしてこのベクトル列はパターン距離演算部70に送られ、動的計画法を用いて標準パターン文字辞書40との間で累積距離が求められる。その結果標準パターン文字辞書40の中で最も累積距離の小さい標準パターン文字を、認識結果とした。パターン距離演算部70では、上記(1)の漸化式が用いられ、累積距離が計算される。
【0007】
【発明が解決しようとする課題】ところで、従来の文字認識装置には以下の問題点がある。タブレット等で書き込まれた手書き文字のイメージデータの中には、ノイズ成分が含まれている場合が多く、イメージデータの書き始めの部分に乗ることが多い。このノイズの発生原因としては、タブレット等のハードウエアの性能に依存することが多い。また、手書き文字は書き込む人各々によって異なり癖がある。そのため、ノイズ以外にハネ、おさえや同一文字でも書き込む人により大小様々な文字の部分的な変形が発生する。そしてそれらは特に手書き文字の書き始めや書き終わりの部分に発生しやすい。その結果、データ列変換部20においてノイズ成分やハネ、おさえや大小様々な文字の部分的な変形が手書き文字のストロークの特徴点として抽出され、ベクトル列として変換されていた。また、標準パターン文字辞書40には、手書き文字は楷書で書き込まれることを前提とした標準的なパターンが予め登録されていた。そしてパターン距離演算部70では、ノイズ成分やハネ、おさえや大小様々な文字の部分変形の部分ベクトルを含んだ部分ベクトル列と、それらを含まない標準的なパターンを予め登録してある標準パターン文字辞書40との間で累積距離演算を行なっていた。そのため楷書で書き込まれた入力パターンの部分ベクトル列の累積距離よりも部分変形した入力パターンの部分ベクトルが加えられただけ累積距離が大きくなり、手書き文字入力者の意図しない別の標準パターン文字との累積距離が最小となってしまった。その結果、誤認識の割合が増加してしまったと言う問題を含んでいた。また、この誤認識を減らすために標準パターン文字辞書40内に部分的に変形した標準パターン文字を新たに追加登録する方法で対処することができる。しかし、パターン距離演算部70では標準パターン文字辞書40内の全ての標準パターン文字との間の累積距離を計算するため、標準パターン文字を登録すればするほど計算時間が長くなってしまう。その結果文字認識速度が遅くなり装置全体の使い勝手が低下してしまうことと、標準パターン文字辞書40のメモリ容量が増加してハードウエアのコストを増加させてしまうと言う問題を含んでいた。
【0008】
【課題を解決するための手段】上記課題を解決するために、第1の手書き文字認識装置は、手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから始点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する始点不確定パターン領域検出手段と、前記累積距離を累積せず固定とする距離固定手段とを有し、前記始点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記不確定パターン領域の前記累積距離を前記距離固定手段を用いて固定とし、前記不確定パターン領域の周辺から前記累積距離演算手段を用いて前記累積距離を求めることを特徴とする。また、第2の発明の手書き文字認識装置は、手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから終点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する終点不確定パターン領域検出手段と、前記距離の前記累積距離への寄与を減少させる減衰手段とを有し、前記終点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記減衰手段を用いて前記累積距離を求めることを特徴とする。
【0009】また、第1および第2の手書き文字認識装置は、手書き文字のストロークの特徴をある定められたデータ列に変換したデータ列と複数の標準パターンとの距離を動的計画法を用いて演算し、前記データ列の始点不確定パターン領域では距離固定手段を用いて累積距離を0とし、終点不確定パターン領域では減衰手段を用いて前記距離を0とすることを特徴とする。
【0010】
【作用】第1の発明の手書き文字認識装置によれば、入力部に手書き文字のイメージがストローク単位に入力される。入力されたストロークデータはデータ列変換部である定められたデータ列に変換される。その後ある定められたデータ列に変換された入力ストロークのデータ列と全ての標準パターンとの間で、累積距離演算手段を用いて累積距離を求める。その際、始点不確定パターン領域検出手段で不確定パターン領域が検出されると、不確定パターン領域の累積距離を、距離固定手段で累積せず固定する。そして、全ての標準パターン文字の中で累積距離が最小となる標準パターン文字を認識文字とする。
【0011】第2の発明の手書き文字認識装置によれば、入力部に手書き文字のイメージがストローク単位に入力される。入力されたストロークデータはデータ列変換部である定められたデータ列に変換される。その後ある定められたデータ列に変換された入力ストロークのデータ列と全ての標準パターンとの間で、累積距離演算手段を用いて累積距離を求める。その際、終点不確定パターン領域検出手段で不確定パターン領域が検出されると、不確定パターン領域の入力ストロークデータ列と標準パターンとの距離の累積距離への寄与を減衰手段で減少させる。そして、全ての標準パターン文字の中で累積距離の最小となる標準パターン文字を認識文字とする。
【0012】また、第1および第2の手書き文字認識装置は、始点不確定パターン領域検出手段または終点不確定パターン領域検出手段により不確定パターン領域が検出されると、始点不確定パターン領域内では距離固定手段により累積距離を0とし、終点不確定パターン領域内では減衰手段により距離を0として累積距離を求める。
【0013】
【実施例】以下、第1の発明の手書き文字認識装置および第2の発明の手書き文字認識装置の実施例について添付図面を参照して説明する。
【0014】本実施例では不確定パターン領域として、標準パターンを構成する部分ベクトル列のbit6またはbit7がセットされた部分ベクトルと、入力パターンの最初または最後の部分ベクトルとの間で距離を求める場合の領域とする。また不確定パターン領域での距離は0とした。
【0015】図1は、第1および第2の発明の手書き文字認識装置の実施例の構成を示すブロック図である。同図より、手書き文字認識装置には、手書き文字を書き込むためのタブレット11およびぺン12、タブレット11から送られてくる手書き文字のイメージをストローク単位に取り込み、取り込んだストロークを部分ベクトル列に変換し認識結果を出力するまでを制御するプログラムが組み込まれた読み出し専用の認識プログラムメモリ100、認識プログラムメモリ100にはタブレット11から時系列的に順次入力される手書き文字の座標データをストローク単位にサンプリングする処理や、サンプリングしたストロークの位置及び大きさを縮小したり拡大して正規化する処理等を行なう前処理21、前処理21で得られたストロークデータは、ストロークの始点、終点、そしてストロークの屈曲している点等を演算処理により算出し取り出し、取り出した点をストロークの特徴点とするストローク特徴点抽出22、ストローク特徴点抽出22で取り出された特徴点を図5(a)に示す16方向ベクトルで直線近似化するベクトル化23、後述する標準パターン文字辞書40に予め登録してある全ての標準パターンとベクトル化23で16方向ベクトル列化されたストロークの特徴点との間で累積距離を求める累積距離演算手段31と、標準パターン文字辞書40に予め登録してある標準パターンの部分ベクトル中に存在してもしなくてもよい不確定パターンがあり、かつ入力した16方向ベクトル列の最初または最後の部分ベクトルでの距離計算であるのかを検出する始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33と、始点不確定パターン領域検出手段32で不確定パターン領域が検出されると、不確定パターン領域での距離を累積せずに固定する距離固定手段34と、終点不確定パターン領域検出手段33で不確定パターン領域が検出されると、不確定パターン領域内の距離の累積距離への寄与を減少させる減衰手段35とからなるプログラムである。そしてこれらの手段を用いて全ての標準パターンとの間の累積距離を求め、累積距離の最小となった標準パターン文字辞書40内の標準パターンを認識結果とする。バッファメモリ80は、タブレット11で取り込んだ手書き文字の座標データや、認識プログラムメモリ100等で一時的にデータを記憶させておくときのためのメモリである。標準パターン文字辞書40は、複数の標準パターン文字のシフトJISコードと、そのパターンを構成する16方向部分ベクトル列で構成され、読みだし専用メモリ内に納められている。CPU90は、文字認識装置全体を制御する。ディスプレイ50は、手書き文字のイメージデータや書き込むための複数の情報を表示したり、認識プログラムメモリ100で認識された認識文字等を表示する。なお、ディスプレイ50とタブレット11は、一体化された構造になっている。
【0016】次に第1および第2の実施例の処理の流れについて、図2の(a)(b)を用いて説明する。
【0017】まず、図2の(a)の概念図を用いて、第1の実施例の処理の流れを説明する。手書き文字入力部10に入力された手書き文字のイメージデータが座標データとしてデータ列変換部20に送られ、座標データのサンプリング、特徴抽出、16方向部分ベクトル列化等の処理が行なわれる。そしてデータ列変換部20で部分ベクトル列化された手書き文字のイメージデータがパターンマッチング部30に送られる。パターンマッチング部30では、入力した16方向部分ベクトル列と全ての標準パターン文字辞書40内の標準パターンとの間の累積距離を累積距離演算手段31で計算する。ここで始点不確定パターン領域検出手段32において、標準パターン文字辞書40内の標準パターンの部分ベクトル列中に、存在してもしなくてもよい不確定パターンがあり、かつ入力した部分ベクトル列の最初の部分ベクトルとの間の距離計算であることが検出されると、距離固定手段34から距離を0とする指令が出される。そしてその距離の値0を累積距離とする。このようにして全ての標準パターン文字辞書40内の標準パターンとの累積距離を求める。そして一番累積距離の小さい標準パターンのシフトJISコードが手書き文字のイメージデータの認識結果となり、そのシフトJISコードが文字に変換されディスプレイ50に表示される。
【0018】次に、図2の(b)の概念図を用いて、第2の実施例の処理の流れを説明する。手書き文字入力部10に入力された手書き文字のイメージデータが座標データとしてデータ列変換部20に送られ、座標データのサンプリング、特徴抽出、16方向部分ベクトル列化等の処理が行なわれる。そしてデータ列変換部20で部分ベクトル列化された手書き文字のイメージデータがパターンマッチング部30に送られる。パターンマッチング部30では、入力した16方向部分ベクトル列と標準パターン文字辞書40内の標準パターンとの間の累積距離を累積距離演算手段31で計算する。ここで終点不確定パターン領域検出手段33において、標準パターン文字辞書40内の標準パターンの部分ベクトル列中に、存在してもしなくてもよい不確定パターンがあり、かつ入力した部分ベクトル列の最後の部分ベクトルとの間の距離計算であることが検出されると、減衰手段35から距離を0とする指令が出される。そしてその距離の値0を累積距離とする。このようにして全ての標準パターン文字辞書40内の標準パターンとの累積距離を求める。そして一番累積距離の小さい標準パターンのシフトJISコードが手書き文字のイメージデータの認識結果となり、そのシフトJISコードが文字に変換されされディスプレイ50に表示される。
【0019】次に、各処理ごとの動作について図8および図9の全体の処理の流れと対応させながら説明する。図8および図9は認識プログラムメモリ100内の処理の流れを示したフロチャートである。この処理は装置に電源が投入されると処理がスタートし、電源が切られるまでこの処理を続ける。まず、手書き文字入力部10では、手書き文字のイメージデータをぺン12を用いてタブレット11に書き込むと、書き込まれた手書き文字のイメージデータの軌跡が、タブレット11上の座標データに変換される。この座標データには、タブレット11に書き込まれた手書き文字イメージデータの他に、ぺン12がタブレット11に接したこと(以下ペンダウンと呼ぶ)および離れたこと(以下ペンアップと呼ぶ)を示す監視データが含まれている。そしてイメージデータと監視データは、お互いに区別することができるデータの構成になっている。
【0020】データ列変換部20では、タブレット11の座標データを前処理21でサンプリングし(ステップ111)、サンプリングした座標データからペンダウンしたのかを判断する(ステップ112)。ペンダウンでない場合にはステップ111に戻りたタブレット11の座標データを再びサンプリングする。ペンダウンした場合には、ペンアップするまでタブレット11に書き込まれた手書き文字の座標データをサンプリングする(ステップ112、113)。ステップ111とステップ113でサンプリングされた座標データはバッファメモリ80に転送され、後の処理で再び読み込まれ使用される。ペンアップになるとストローク数がカウントアップされ、サンプリングした座標データと対応させた状態でバッファメモリ80に転送される(ステップ115)。その後タブレット11に再び手書き文字が書き込まれるのかを判断するためにディレイタイマーが働き、ここで設定された時間を経過してもタブレット11に書き込みが無い場合は、手書き文字の入力が終了したと判断する(ステップ116、117、118、120)。ディレイ時間を経過する前にペンダウンが確認されると、ディレイタイマーをストップさせ(ステップ119)、再びタブレット11の座標データのサンプリングを開始する(ステップ111に戻る)。ディレイ時間を経過してペンダウンでないことが確認されると、タブレット11に書き込まれた手書き文字の大きさを一定にするために、サンプリングしてバッファメモリ80に記憶させておいた座標データを正規化する(ステップ121)。正規化された座標データは、ストローク特徴点抽出22において、ストロークごとにデータ列の中から特徴点となる始終点や屈曲点を演算処理により抽出される(ステップ122、図6)。そして抽出した特徴点をベクトル化23において、16方向のベクトル(図5(a))で直線近似する(ステップ123)。ストロークの特徴点および16方向でベクトル化された部分ベクトル列は、バッファメモリ80に転送され記憶されている。
【0021】次にパターンマッチング部30では、バッファメモリ80に記憶されている16方向部分ベクトル列と標準パターン文字辞書40との間で、動的計画法を用いて距離を計算する。パターンマッチング部30は、距離を計算し累積距離を求める累積距離演算手段31と、標準パターンの中に存在してもしなくてもよい不確定パターンがあるのかを確認し、かつ入力した16方向部分ベクトル列の最初または最後の部分ベクトルに対して距離を計算するのかを確認する始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33と、始点不確定パターン領域検出手段32で不確定パターン領域を検出すると、不確定パターン領域内の距離を0として累積距離を求める距離固定手段34と、終点不確定パターン領域検出手段33で不確定パターン領域を検出すると、不確定パターン領域内の距離を0として累積距離を求める減衰手段35とによって構成されている(ステップ124)。これらパターンマッチング部30の処理の流れについて図10〜図12のフロチャートを用いて説明する。累積距離演算手段31では前述の漸化式(1)を用いて計算する。まず累積距離演算手段31では、入力パターンAと標準パターンBの累積距離g(i,j)の初期値として、g(0,0)を求める(ステップ130、131)。次に、g(1,0)から入力パターンAの最終部分ベクトル(aimax)までの標準パターンBの部分ベクトルb0との累積距離を求める(ステップ132、133、134、135)。同様に、g(0,1)から標準パターンBの最終部分ベクトル(bjmax)までの入力パターンAの部分ベクトルa0との累積距離を求める(ステップ136、137、138、139)。そして、g(1,1)から入力パターンAの最終部分ベクトル(aimax)および標準パターンBの最終部分ベクトル(bjmax)までの各々の部分ベクトルの格子点における累積距離を求める(ステップ140、141、142、143、144、145)。
【0022】また、各々の格子点における累積距離を求めるときに始点不確定パターン領域検出手段32、終点不確定パターン領域検出手段33、距離固定手段34および減衰手段35を用いており、その処理内容を図12のフロチャートに示す。これは、図10および図11のフロチャートにおいてサブルーチン化されている「距離計算」(ステップ131、133、137、141)に相当する。図12では、始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33がステップ146および148に相当し、距離固定手段34および減衰手段35がステップ149および151に相当し、累積距離演算手段31がステップ147、152に相当する。ステップ150は累積距離の初期値であるg(0,0)を演算するときの判断に用いる。まず、標準パターンBの部分ベクトルのbit6またはbit7がセットされているのかを確認する。セットされている場合には入力パターンAの部分ベクトルがa0またはaimaxとの間での距離計算を実行しようとしているのかを確認する(ステップ146、148)。bit6は標準パターンBの部分ベクトルが終点不確定パターン領域を示すビットで、bit7は始点不確定パターン領域を示すビットで、入力パターンAの部分ベクトル列中に存在してもしなくてもよい不確定なパターンであることを表わしている。bit6またはbit7が標準パターンBの部分ベクトルにセットされていて、かつ入力パターンAの部分ベクトルがa0またはaimaxで距離を計算する場合は、距離d(i,j)の値をを0にセットする(ステップ149)。そして更にその距離d(i,j)を累積距離g(i,j)としてセットする(ステップ151)。bit6またはbit7がセットされていない場合、またはセットされていても入力パターンAの部分ベクトルがa0またはaimax以外では、距離d(i,j)に‖ai-bj‖をセットする(ステップ147)。そして累積距離の初期値g(0,0)を求める計算であるのかを確認する(ステップ150)。初期値g(0,0)を求める場合はステップ151に進み、それ以外はステップ152に進み累積距離を計算する。このようにして求められた累積距離g(i,j)の最短距離を示す経路の例を図13に示す。横軸は入力パターンA、縦軸は標準パターンBで、標準パターンBの部分ベクトルb0、b1およびbjmax-1、bjmaxは不確定パターンとして登録されている。図13で太線で囲った領域は、始点不確定パターン領域検出手段32および終点不確定パターン領域検出手段33でそれぞれ始点領域または終点領域で不確定パターンであることが検出され、距離固定手段34または減衰手段35により距離d(i,j)の値を0として累積距離を求めた領域である。すなわちこの太線で囲った領域内では累積距離が0となる。従って、入力パターンAの部分ベクトルa0またはaimaxが如何なるベクトルであっても標準パターンBの部分ベクトルb0,b1またはbjmax-1,bjmaxと一致していることとなる。その結果、太線で囲った不確定パターン領域内における標準パターンBの部分ベクトルb0,b1またはbjmax-1,bjmaxが入力パターンAの最初または最後の部分ベクトルに存在してもしなくても、距離d(i,j)は0で固定される。よって、入力パターンAと標準パターンBとの累積距離演算を開始する際において、始点不確定パターン領域の周辺である(a0,b2),(a1,b0),(a1,b1),(a1,b2)の何れかの格子点から累積距離演算を開始しても、始点不確定パターン領域内のg(0,0)から計算を開始した場合と等価になる。また、終点不確定パターン領域内では距離が全て0となり累積距離も0となる。従って累積距離演算を終了させる際において、終点不確定パターン領域の周辺である(aimax,bjmax-2),(aimax-1,bjmax-2),(aimax-1,bjmax-1),(aimax-1,bjmax)の何れかの格子点で終了しても、累積距離演算の最終であるg(imax,jmax)で終了した場合と等価になる。
【0023】では、図6の手書き文字入力部10に入力したサンプルを用い、パターンマッチング部30について説明する。図6は手書き文字「て、h、b」を入力し、データ列変換部20で16方向部分ベクトル列に変換されるまでを示した図である。パターンマッチング部30に部分ベクトル列が引き渡されるときには、16方向の部分ベクトル列(16進表示)の数値で引き渡される。各々のデータが16方向化された1本の部分ベクトルを表わしている。また、図6の(a)は手書き文字の始点と終点にハネやおさえの含まれたサンプルの一例である。また、図6の(b)(c)は「h」を筆記体とブロック体で書き込んだ手書き文字、(d)は「b」をブロック体で書き込んだ手書き文字のサンプルの一例である。図7の(c)は標準パターン文字辞書40を構成する辞書の一部を示した図で、標準パターン文字のシフトJISコード(16進表示)と16方向ベクトル列で表現された部分ベクトル列(16進表示)からなる。ここで、例として図6の(b)(c)の「h」をパターンマッチング部30で累積距離を計算することとする。標準パターン文字辞書40の「h」には、図6(c)のブロック体で書かれた「h」の形をした文字のみが標準パターンとして登録されているものとして累積距離を計算してみる。その結果、筆記体「h」は始点付近と終点付近の部分ベクトル列の中に、ブロック体「h」には存在しない部分ベクトルがあるため、その存在しない部分ベクトルの距離だけ筆記体「h」の累積距離が大きくなる。従って、同じ小文字の「h」ではあるが累積距離が異なる。よって、ブロック体の「h」は標準パターン文字の「h」との累積距離が0となり最小となるが、筆記体「h」は「h」以外の標準パターン文字との累積距離が最小となる可能性が高くなる。しかし、図6(b)(c)の「h」文字の形に着目すると、文字全体としては形は異なるが、図6(b)の筆記体文字の書き始めの部分と書き終わりの部分を取り去るとブロック体で書かれた図6(c)と類似した形となる。図7(a)にその過程を示す。筆記体で書かれた手書き文字「h」は、図7R>7(a)の点線で示す部分を削除することで、ブロック体で書かれた手書き文字「h」と類似した形にすることができる。このことから筆記体で書かれた「h」は、ブロック体で書かれた「h」の形を基本として、始点付近と終点付近の形が部分的に変形した文字として扱うことができる。よって図6の(b)(c)の文字は、図7(a)の書き始めの点線部分の部分ベクトルを始点不確定パターンとし、書き終わりの点線部分の部分ベクトルを終点不確定パターンとして標準パターン文字辞書40に登録することで、始点不確定パターン領域検出手段32または終点不確定パターン領域検出手段33により不確定パターン領域として検出することが可能となる。そして、標準パターンとの距離は始点不確定パターン領域では距離固定手段34で0となり、終点不確定パターン領域では減衰手段35で0となるため、図7(a)の点線部分の入力パターンは存在してもしなくても筆記体およびブロック体「h」の累積距離は同じになる。従って、図6(b)(c)の文字は不確定パターンを登録した標準パターン文字「h」を介することで、1つの同じ標準パターン文字を最小累積距離として計算することができる。図7(c)に不確定パターンを登録した標準パターン文字辞書40の構成を示す。「h」では、16方向部分ベクトル列の中で「81、81、81、87、88(16進データ)」が始点不確定パターンとして登録したパターンで、「41、42(16進データ)」が終点不確定パターンとして登録したパターンである。「て」においては「87(16進データ)」と「44(16進データ)」とがそれぞれ始点不確定パターンと終点不確定パターンである。また、図14(a)に図6(b)の筆記体で書かれた「h」と、不確定パターンを登録した標準パターンである図7(c)の「h」との累積距離である漸化式(1)のg(i,j)の演算結果の経路を示す。図14(b)も同様に、図6(c)と図7(c)の「h」とのg(i,j)の演算結果の経路を示した図である。図14(a)と(b)において、太線で囲った領域は始点または終点不確定パターン領域を示す。始点不確定パターン領域では、距離固定手段34により各格子点の距離d(i,j)が0となるため、累積距離g(i,j)は0で固定される。また、終点不確定パターン領域では減衰手段35により入力パターンと標準パターンの部分ベクトル間の距離d(i,j)が如何なる値であっても距離d(i,j)は0となる。その結果、図14(b)の終点不確定パターン領域内の距離のように、実際に求められた標準パターンと入力パターンの部分ベクトル間の距離より小さい距離となる。最終的な累積距離g(i,j)は、図14(a)では入力パターン「2」と標準パターン「42」とのg(i,j)であり、図14(b)では入力パターン「b」と標準パターン「42」との累積距離g(i,j)を求めることである。そしてそれら累積距離を求めると0となる。従って、図7(c)の「h」の標準パターンを登録することで、図6(b)(c)の筆記体およびブロック体「h」は同じ文字としてマッチングすることができる。
【0024】次に、入力パターンにブロック体の「h」と類似した形の図6(d)のブロック体「b」を入力し、不確定パターンを登録した標準パターンに図7(c)「h」との間の累積距離を求めてみる。図15が漸化式(1)のg(i,j)の演算結果の経路を示した図である。パターンマッチング部30の累積距離演算手段31において、始点不確定パターン領域と終点不確定パターン領域の距離d(i,j)は距離固定手段34または減衰手段35により0となる。しかし、入力パターン「b」の中の最後から2番目の部分ベクトル「9」が標準パターンの中に存在しないため、入力パターン「9」と標準パターン「41」との累積距離g(i,j)の演算結果は「8」となる。その結果、最終的な累積距離g(i,j)の演算結果である入力パターン「8」と標準パターン42」との累積距離は「2」となる。従って、不確定パターンを登録した「h」の標準パターンと入力パターン「b」との間で累積距離を求めると、図7(b)のブロック体「b」の文字における点線部分が不確定パターンとして登録したパターンと異なる。よって、前述のように不確定パターンとして登録した筆記体の「h」を入力したときよりも累積距離が大きくなる。従って、「h」と「b」のように形の類似している文字に対しては同じ累積距離にならず、「h」と「b」を区別することができる。
【0025】次に、ハネとおさえを含んだ文字例である図6(a)の「て」についてパターンマッチング部30で累積距離を求めてみる。ハネやおさえは入力パターンの最初の部分ベクトルまたは最後の部分ベクトルに含まれることが多い。ハネやおさえが含まれた部分ベクトル列で累積距離を計算すると、ハネやおさえの部分ベクトルだけ累積距離が増加してしまう。そこで、標準パターンの最初の部分ベクトルおよび最後の部分ベクトルを不確定パターンとして登録しておくことで、ハネやおさえの部分ベクトルを削除することができる。これは、パターンマッチング部30では入力パターンの最初または最後の部分ベクトルは不確定パターン領域では、距離固定手段34または減衰手段35により距離が0となるからである。従って、ハネやおさえに影響されない標準パターンとの間の累積距離を求めることができる。
【0026】このようにしてパターンマッチング部30では、標準パターン文字辞書40に予め登録してある全ての標準パターンとの間で累積距離を求め、その結果をバッファメモリ80に転送する。
【0027】その後バッファメモリ80に記憶させてあった累積距離値の中から、最小となる累積距離を示した標準パターン文字辞書40内の標準パターンのシフトJISコードを文字に変換する(ステップ125)。そして、変換した文字を認識結果としてディスプレイ50上に表示する(ステップ126)。
【0028】なお、図12ステップ149、151の距離固定手段34が実行される条件として、標準パターンの部分ベクトルのbit6またはbit7がセットされていて、かつ入力パターンAの部分ベクトルの範囲をa0またはaimaxの時の距離d(i,j)を求める場合に限定したが(ステップ148)、入力パターンAの部分ベクトルの範囲を1つに限定することなく複数の部分ベクトルにまで範囲を拡大することができ、入力パターンAの部分ベクトルの範囲を可変することができる。
【0029】また、本実施例では不確定パターン領域が検出されると距離固定手段34で距離d(i,j)を0としたが(図12のステップ149)、入力パターンAと標準パターンBとの部分ベクトル間の距離‖ai-bj‖を用いてもよい。
【0030】また、上記のように距離d(i,j)に部分ベクトル間の距離‖ai-bj‖の値を用いる場合、終点不確定パターン領域内では減衰手段35において、距離‖ai-bj‖の値に0より大きく1より小さい範囲での定数を掛け合わせ、距離‖ai-bj‖を減少させた値を用いてもよい。
【0031】また、データ列変換部20においてストロークの特徴点を16方向でベクトル化したが、図5(b)に示す8方向ベクトルを用いてもよい。
【0032】
【発明の効果】以上のように本発明によれば、手書き文字の部分的に変形した文字の大小に関わらず、変形していない文字として扱うことができ、精度の高い認識を行なうことができる。また、標準パターンに部分変形していない文字の他に部分変形している文字までを登録する必要が無く、1または数個の標準パターンで累積距離演算をすることができることで累積距離演算時間が短くなり、スピーディーで快適な認識環境が実現でき、更に標準パターンのメモリサイズをコンパクトな容量にすることができる。
【図面の簡単な説明】
【図1】 本発明の手書き文字認識装置の構成を示すブロック図。
【図2】 本発明の手書き文字の処理の流れを示す概略図。
【図3】 従来の手書き文字認識装置の処理の流れを示す概略図。
【図4】 動的計画法によるパターンマッチングの原理を説明するための図。
【図5】 手書き文字をベクトル列化するための方向図。
【図6】 手書き文字入力部とデータ列変換部の処理結果を示す図。
【図7】 部分変形した手書き文字と不確定パターンを登録した標準パターン文字辞書内の構成を説明する図。
【図8】 認識プログラムメモリの処理の流れを示すフロチャート。
【図9】 認識プログラムメモリの処理の流れを示すフロチャート(図8のつづき)。
【図10】 パターンマッチング部の処理の流れを示すフロチャート。
【図11】 パターンマッチング部の処理の流れを示すフロチャート(図10のつづき)。
【図12】 始点不確定パターン領域検出手段、終点不確定パターン領域検出手段、距離固定手段および減衰手段の処理の流れを示すフロチャート。
【図13】 パターンマッチング部の動的計画法によるパターンマッチングを説明するための図。
【図14】 部分変形した文字と部分変形していない文字の累積距離演算経路を説明するための図。
【図15】 類似文字の累積距離演算経路を説明するための図。
【符号の説明】
10 手書き文字入力部
20 データ列変換部
30 パターンマッチング部
31 累積距離演算手段
32 始点不確定パターン領域検出手段
33 終点不確定パターン領域検出手段
34 距離固定手段
35 減衰手段
40 標準パターン文字辞書
【特許請求の範囲】
【請求項1】 手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから始点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する始点不確定パターン領域検出手段と、前記累積距離を累積せず固定とする距離固定手段とを有し、前記始点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記不確定パターン領域の前記累積距離を前記距離固定手段を用いて固定とし、前記不確定パターン領域の周辺から前記累積距離演算手段を用いて前記累積距離を求めることを特徴とする手書き文字認識装置。
【請求項2】 手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから終点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する終点不確定パターン領域検出手段と、前記距離の前記累積距離への寄与を減少させる減衰手段とを有し、前記終点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記減衰手段を用いて前記累積距離を求めることを特徴とする手書き文字認識装置。
【請求項3】 手書き文字のストロークの特徴をある定められたデータ列に変換したデータ列と複数の標準パターンとの距離を動的計画法を用いて演算し、前記データ列の始点不確定パターン領域では距離固定手段を用いて累積距離を0とし、終点不確定パターン領域では減衰手段を用いて前記距離を0とすることを特徴とする、請求項1および請求項2記載の手書き文字認識装置。
【請求項1】 手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから始点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する始点不確定パターン領域検出手段と、前記累積距離を累積せず固定とする距離固定手段とを有し、前記始点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記不確定パターン領域の前記累積距離を前記距離固定手段を用いて固定とし、前記不確定パターン領域の周辺から前記累積距離演算手段を用いて前記累積距離を求めることを特徴とする手書き文字認識装置。
【請求項2】 手書き文字のイメージデータをストローク単位に入力する手書き文字入力部と、前記手書き文字入力部に入力した前記ストロークの特徴をある定められたデータ列に変換するデータ列変換部と、ある定められたデータ列を標準パターンとして複数登録してある標準パターン文字辞書と、前記データ列変換部で変換された前記データ列と複数の前記標準パターンとを演算処理によりマッチングをとるパターンマッチング部とを有し、前記パターンマッチング部は前記データ列と複数の前記標準パターンとの距離を動的計画法を用いて演算し累積距離を求める累積距離演算手段と、前記データ列変換部で変換された前記データ列と前記標準パターン文字辞書のパターンとから終点近傍パターンに存在してもしなくてもよいパターンである不確定パターン領域を検出する終点不確定パターン領域検出手段と、前記距離の前記累積距離への寄与を減少させる減衰手段とを有し、前記終点不確定パターン領域検出手段で不確定パターン領域であることが検出されると、前記減衰手段を用いて前記累積距離を求めることを特徴とする手書き文字認識装置。
【請求項3】 手書き文字のストロークの特徴をある定められたデータ列に変換したデータ列と複数の標準パターンとの距離を動的計画法を用いて演算し、前記データ列の始点不確定パターン領域では距離固定手段を用いて累積距離を0とし、終点不確定パターン領域では減衰手段を用いて前記距離を0とすることを特徴とする、請求項1および請求項2記載の手書き文字認識装置。
【図3】
【図1】
【図5】
【図13】
【図2】
【図4】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図15】
【図12】
【図14】
【図1】
【図5】
【図13】
【図2】
【図4】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図15】
【図12】
【図14】
【特許番号】特許第3125432号(P3125432)
【登録日】平成12年11月2日(2000.11.2)
【発行日】平成13年1月15日(2001.1.15)
【国際特許分類】
【出願番号】特願平4−106902
【出願日】平成4年4月24日(1992.4.24)
【公開番号】特開平5−303666
【公開日】平成5年11月16日(1993.11.16)
【審査請求日】平成11年4月22日(1999.4.22)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【参考文献】
【文献】特開 昭60−243782(JP,A)
【文献】特開 昭64−65679(JP,A)
【文献】特開 平3−48985(JP,A)
【文献】特開 平1−253078(JP,A)
【登録日】平成12年11月2日(2000.11.2)
【発行日】平成13年1月15日(2001.1.15)
【国際特許分類】
【出願日】平成4年4月24日(1992.4.24)
【公開番号】特開平5−303666
【公開日】平成5年11月16日(1993.11.16)
【審査請求日】平成11年4月22日(1999.4.22)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【参考文献】
【文献】特開 昭60−243782(JP,A)
【文献】特開 昭64−65679(JP,A)
【文献】特開 平3−48985(JP,A)
【文献】特開 平1−253078(JP,A)
[ Back to top ]