(57)【特許請求の範囲】
【請求項１】
文字認識のための認識辞書である分類木を生成する方法であって、
所定の学習用ストロークを、複数の区間に分割する分割工程と、
前記分割工程で分割された各区間のストロークをベクトル量子化するベクトル量子化工程と、
前記ベクトル量子化工程で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成工程と、
前記階層化ストロークベクトル生成工程で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから所定のエントロピー関数が最大となるストロークベクトルを選択して、より下位のストロークベクトルの組に展開して分類木を生成してゆく分類木生成工程と
を備えることを特徴とする分類木生成方法。
【請求項２】
前記ベクトル量子化工程は、前記分割工程で分割された各区間のストロークを、近傍ベクトルの交差角が互いに等しい８つの方向ベクトルに量子化することを特徴とする請求項１に記載の分類木生成方法。
【請求項３】
前記ベクトル量子化工程は、前記分割工程で分割された各区間のストロークを、近傍ベクトルの交差角が互いに等しい１６の方向ベクトルに量子化することを特徴とする請求項１に記載の分類木生成方法。
【請求項４】
前記エントロピー関数は、前記階層化ストロークベクトル生成工程で生成された階層化ストロークベクトル系列のより上位のストロークベクトルのうちの１つのストロークベクトルの下位のベクトル組の情報が得られた時のエントロピーの減少値を出力する関数であることを特徴とする請求項１に記載の分類木生成方法。
【請求項５】
分類木生成工程はさらに、前記より下位のストロークベクトルの組に対応する学習用ストロークが存在しなければ、前記分類木から前記より下位のストロークベクトルの組を無効とすることを特徴とする請求項１に記載の分類木生成方法。
【請求項６】
分類木生成工程はさらに、前記より下位のストロークベクトルの組に対応する単一カテゴリーの学習用ストロークが存在すれば、前記より下位のストロークベクトルの組に前記カテゴリーの番号を添付することを特徴とする請求項５に記載の分類木生成方法。
【請求項７】
分類木生成工程はさらに、前記より下位のストロークベクトルの組に対応する複数カテゴリーの学習用ストロークが存在すれば、前記より下位のストロークベクトルの組の上位のストロークベクトルから所定のエントロピー関数が最大となるストロークベクトルを選択して、より下位のストロークベクトルの組に展開して分類木を生成することを特徴とする請求項６に記載の分類木生成方法。
【請求項８】
請求項１に記載の分類木生成方法に基づいて生成された分類木を用いて文字認識を行う文字認識方法であって、
入力したストロークを、複数の区間に分割する分割工程と、
前記分割工程で分割された各区間のストロークをベクトル量子化するベクトル量子化工程と、
前記ベクトル量子化工程で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成工程と、
前記階層化ストロークベクトル生成工程で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから下位に向かって順に前記分類木をたどることによって、前記入力したストロークのカテゴリーを獲得する認識工程と
を備えることを特徴とする文字認識方法。
【請求項９】
文字認識のための認識辞書である分類木を生成する装置であって、
所定の学習用ストロークを、複数の区間に分割する分割手段と、
前記分割手段で分割された各区間のストロークをベクトル量子化するベクトル量子化手段と、
前記ベクトル量子化手段で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成手段と、
前記階層化ストロークベクトル生成手段で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから所定のエントロピー関数が最大となるストロークベクトルを選択して、より下位のストロークベクトルの組に展開して分類木を生成してゆく分類木生成手段と
を備えることを特徴とする分類木生成装置。
【請求項１０】
前記ベクトル量子化手段は、前記分割手段で分割された各区間のストロークを、近傍ベクトルの交差角が互いに等しい８つの方向ベクトルに量子化することを特徴とする請求項９に記載の分類木生成装置。
【請求項１１】
前記ベクトル量子化手段は、前記分割手段で分割された各区間のストロークを、近傍ベクトルの交差角が互いに等しい１６の方向ベクトルに量子化することを特徴とする請求項９に記載の分類木生成装置。
【請求項１２】
前記エントロピー関数は、前記階層化ストロークベクトル生成手段で生成された階層化ストロークベクトル系列のより上位のストロークベクトルのうちの１つのストロークベクトルの下位のベクトル組の情報が得られた時のエントロピーの減少値を出力する関数であることを特徴とする請求項９に記載の分類木生成装置。
【請求項１３】
分類木生成手段はさらに、前記より下位のストロークベクトルの組に対応する学習用ストロークが存在しなければ、前記分類木から前記より下位のストロークベクトルの組を無効とすることを特徴とする請求項９に記載の分類木生成装置。
【請求項１４】
分類木生成手段はさらに、前記より下位のストロークベクトルの組に対応する単一カテゴリーの学習用ストロークが存在すれば、前記より下位のストロークベクトルの組に前記カテゴリーの番号を添付することを特徴とする請求項１３に記載の分類木生成装置。
【請求項１５】
分類木生成手段はさらに、前記より下位のストロークベクトルの組に対応する複数カテゴリーの学習用ストロークが存在すれば、前記より下位のストロークベクトルの組の上位のストロークベクトルから所定のエントロピー関数が最大となるストロークベクトルを選択して、より下位のストロークベクトルの組に展開して分類木を生成することを特徴とする請求項１４に記載の分類木生成装置。
【請求項１６】
請求項９に記載の分類木生成装置に基づいて生成された分類木を用いて文字認識を行う文字認識装置であって、
入力したストロークを、複数の区間に分割する分割手段と、
前記分割手段で分割された各区間のストロークをベクトル量子化するベクトル量子化手段と、
前記ベクトル量子化手段で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成手段と、
前記階層化ストロークベクトル生成手段で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから下位に向かって順に前記分類木をたどることによって、前記入力したストロークのカテゴリーを獲得する認識手段と
を備えることを特徴とする文字認識装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字認識方法とその装置、特に、ペンコンピュータ等のペンストローク入力装置で入力されたオンライン手書き文字入力パターンを実時間で認識するオンライン手書き文字認識方法及び装置に関する。
【０００２】
【従来の技術】
従来、手書き文字認識を行う方法として、分類木を用いて段階的にパターンをカテゴリーに選別していく方法がある。例えば、特公平６−５２５３７に記載されているパターン認識方法は、特徴軸に順番を付けて、その順番に従ってカテゴリー分けを行っている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の分類木を用いた認識方法では、ノードを作っていく際に、個々の特徴量のみに注目しているので、パターンの大局的な様子を判断できない。
特に、特公平６−５２５３７に従って分類木を作成し、この分類木を用いて手書き文字認識を行うと、高い認識率を達成することができなかった。
【０００４】
かといって、特徴量の多いパターンを認識するための分類木を作るためには、計算機での計算時間の問題から、特公平６−５２５３７のように、各々のノードで特徴軸を選ぶ方法を用いなければならないというジレンマがあった。
本発明は、上記従来例に鑑みてなされたもので、特徴量の多いパターンの大局的構造特性をうまく反映し、かつ、カテゴリー間の競合関係をうまく反映したストロークベクトルの分類木を生成する分類木生成方法とその装置と、生成された分類木を用いて、高速で高認識率の文字認識を行う文字認識方法とその装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、本発明の文字認識方法とその装置は以下の構成を備える。即ち、
文字認識のための認識辞書である分類木を生成する方法であって、
所定の学習用ストロークを、複数の区間に分割する分割工程と、
前記分割工程で分割された各区間のストロークをベクトル量子化するベクトル量子化工程と、
前記ベクトル量子化工程で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成工程と、
前記階層化ストロークベクトル生成工程で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから所定のエントロピー関数が最大となるストロークベクトルを選択して、より下位のストロークベクトルの組に展開して分類木を生成してゆく分類木生成工程とを備える。
【０００６】
また、別の発明は、上述の方法に基づいて生成された分類木を用いて文字認識を行う方法であって、入力したストロークを、複数の区間に分割する分割工程と、前記分割工程で分割された各区間のストロークをベクトル量子化するベクトル量子化工程と、前記ベクトル量子化工程で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成工程と、前記階層化ストロークベクトル生成工程で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから下位に向かって順に前記分類木をたどることによって、前記入力したストロークのカテゴリーを獲得する認識工程とを備える。
【０００７】
また、別の発明は、文字認識のための認識辞書である分類木を生成する装置であって、
所定の学習用ストロークを、複数の区間に分割する分割手段と、
前記分割手段で分割された各区間のストロークをベクトル量子化するベクトル量子化手段と、
前記ベクトル量子化手段で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成手段と、
前記階層化ストロークベクトル生成手段で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから所定のエントロピー関数が最大となるストロークベクトルを選択して、より下位のストロークベクトルの組に展開して分類木を生成してゆく分類木生成手段とを備える。
【０００８】
また、別の発明は、上述の装置に基づいて生成された分類木を用いて文字認識を行う文字認識装置であって、入力したストロークを、複数の区間に分割する分割手段と、前記分割手段で分割された各区間のストロークをベクトル量子化するベクトル量子化手段と、前記ベクトル量子化手段で量子化された各区間のストロークの近傍ストロークの組を合成して、より上位のストロークベクトルを生成してゆき、階層化ストロークベクトル系列を生成する階層化ストロークベクトル生成手段と、前記階層化ストロークベクトル生成手段で生成された階層化ストロークベクトル系列のより上位のストロークベクトルから下位に向かって順に前記分類木をたどることによって、前記入力したストロークのカテゴリーを獲得する認識手段とを備える。
【０００９】
【発明の実施の形態】
はじめに、本実施の形態の文字認識方法とその装置のポイントを説明した後、その詳細な説明に入るものとする。
本実施の形態の文字認識方法は、学習用ストロークを分割し、この分割されたストローク切片をベクトル量子化し、その結果得られたベクトル系列を階層的に処理し、階層化されたベクトル系列に基づいて、分類木を作成する。
【００１０】
また、ベクトル系列を階層的に処理する工程では、学習用ストロークを構成するベクトル系列情報を段階的に縮退する。
また、分類木を作成する場合、上の階層でカテゴリーの競合が最も激しく、かつ、すぐ下の階層でカテゴリーがよく分離されるベクトルを、後述するエントロピー基準に基づいて選び、その結果に基づき縮退されたベクトルを下の階層に向かって展開する。
【００１１】
また、オンライン手書き文字認識用辞書は、上述の分類木を内容として保持する。
さらに、上述の分類木に基づいて、ユーザーが筆記したストロークのカテゴリーを判別する。
以下、図面に基づいて、本発明に係る一実施の形態の文字認識方法とその装置を説明する。
【００１２】
尚、以下、本発明に係る第１、第２の実施の形態の主題はそれぞれ、分類木の構造とその作成方法、生成された分類木を用いた文字認識方法である。
＜実施の形態１＞
図１は、本実施の形態のオンライン手書き文字認識方法が適用される情報処理装置の概要構成の一例を示す図である。
【００１３】
本実施の形態のオンライン手書き文字認識装置は、ストローク入力装置４０１、表示装置４０２、中央処理装置（ＣＰＵ）４０３、メモリ４０４から、主に構成される。
ストローク入力装置４０１は、例えば、デジタイザとペンを有し、デジタイザの上にペンによって入力された文字や図形の座標データをＣＰＵ４０３に渡す。
【００１４】
表示装置４０２は、ストローク入力装置４０１に入力されたストロークデータやＣＰＵ４０３が認識した結果を表示する。
ＣＰＵ４０３は、入力されたストロークデータで構成される文字や図形の認識を行ったり、装置全体の制御を行ったりする。
メモリ４０４は、ＣＰＵ４０３が使用する認識プログラムや辞書を記録したり、入力されたストロークデータ、認識プログラムの使用する変数等を一次的に記録する。
【００１５】
図２は、本発明に係る一実施の形態のオンライン手書き文字認識用の辞書作成方法を最もよく表わす処理フロー図である。
図２を参照して、Ｓ１０１は「学習用ストロークの入力ステップ」、Ｓ１０２は入力した「学習用ストローク」を分割する「ストローク分割ステップ」である。
【００１６】
また、Ｓ１０３は、「ストローク分割ステップ」において分割されたストローク切片をベクトル量子化する「ベクトル化ステップ」である。
Ｓ１０４は、「ベクトル化ステップ」の処理結果得られたベクトル系列を階層的に処理する「階層化前処理ステップ」である。
１０５は、「階層化前処理ステップ」で生成された「階層化されたベクトル系列」である。
【００１７】
Ｓ１０６は、「階層化されたベクトル系列」に基づいて、分類木を作成する「分類木作成ステップ」である。
Ｓ１０７は、「分類木作成ステップ」が分類木を作成する過程で使用する「展開ベクトル判別ステップ」である。
１０８は最終的に生成された「分類木」である。
本実施の形態におけるインプットは、１０１の「学習用ストローク」で、アウトプットは１０８の「分類木」となる。
【００１８】
以下、図３から図７に基づいて、本発明に係る一実施の形態の文字認識処理における分類木作成処理の方法を以下に説明する。
ここで、理解を容易にするために、認識対象のカテゴリーとして、１画で書かれた「く」「し」「つ」の３種類の文字を想定する。
そして、辞書作成用の学習パターンは「く」「し」「つ」それぞれに対し１００個存在すると仮定する。ここで、これらを、
ＴＰi,j  （Training Pattern i,j）
ここで、ｉはカテゴリーを表わすサフィックスで、
０ ＜＝ ｉ ＜＝ ２
の範囲の値をとる。また、ｊは学習パターンナンバーを示すサフィックスで、
１ ＜＝ ｊ ＜＝ １００
の範囲の値をとるものとする。
【００１９】
本実施の形態のオンライン手書き文字認識用辞書作成方法は、図３のフローチャートに示すように、ベクトル生成フェーズ、階層化前処理フェーズ、分類木作成フェーズの３段階のステップをへて実行される。以下、各フェーズの説明を行う。
（１）ベクトル生成フェーズ
図４に基づいて、ベクトル生成フェーズの様子を詳しく述べる。
【００２０】
まず、学習用ストロークはｎ分割（図４の例ではｎ＝８となっている）される。図４では、このｎ分割は、ストローク距離に関するｎ等分となっているが、本発明ではこれに制限されるものではない。
例えば、始点終点付近のストロークの状態が不安定なストローク入力装置であれば、始点終点付近のストロークをいくら詳しくベクトル化してもあまり意味がない。この様な場合は、ｎ分割における最初と最後の分割は、その他の分割に比べて長くとっても構わない。
【００２１】
次に、ｎ分割されたそれぞれの切片がベクトル量子化される。
図４においては、番号０から番号１１までの１２方向の基本ベクトルに量子化している。この基本ベクトルの方向は、３６０度の中で等間隔に並んでいるが、本発明は、これに制限されるものではない。
例えば、図４の１２方向の基本ベクトルの中で、実際左上方向の（例えば番号１０や番号１１）基本ベクトルは、筆記ストロークの中にはあまり出てこない。よって、これらの部分はもっと角度の間隔の開いた基本ベクトルのセットを用いてもよい。
【００２２】
以上ベクトル生成フェーズにおいて、図２のストローク分割ステップとベクトル化ステップが学習用ストロークすべてに施される。
図４の例でいうと、入力例のストロークが基本ベクトル系列「１２４５５４２１」に変換される。
（２）階層化前処理フェーズ
次に、ベクトル化された学習用ストロークは、ピラミッド上に階層化前処理が施される。
【００２３】
図５にその１例を示す。
図５に於いては、ベクトル化ステップの結果得られたベクトル系列の隣り合う２個のベクトルの平均ベクトルを上の階層に格納することによって、ベクトル情報が順次半分になっている（言い換えれば、縮退している）。
結局、図４において、８個の基本ベクトル系列で表されたストロークを、順次４個、２個、１個のベクトルに変換することになる。
【００２４】
この隣り合う２個のベクトルを平均する１方法を、図６に基づいて詳しく述べる。
尚、図５においては、基本ベクトルを１２方向としたが、説明の便宜上、図６では８方向とする。この様に、基本ベクトルの総数や個々の基本ベクトルの方向が変わっても、本発明の本質は変らない。
【００２５】
以下、基本ベクトルは８方向であるという前提で、以下の説明を行う。
また、隣り合う２個のベクトルの最初の番号を、ｐｅｒ、後の番号をｐｏｓｔで示すことにする。
この時、２個のベクトルの平均は単純には、
（ｐｒｅ＋ｐｏｓｔ）／２
となるが、これが基本ベクトルにならない場合が存在する。
【００２６】
一般的に、８方向の等分割ベクトルと８方向の等分割ベクトルの平均ベクトルは１６方向存在するので、これを８方向にしなくてはいけない。
図６はこの方法を示している。
図６の「→」（８００）は、上の階層で右向き（番号２）のベクトルが存在することを意味し、その下に書かれた８組のベクトルは、下の階層で存在しうるベクトルの組を意味する。
【００２７】
つまり、上の階層で番号２のベクトルになる（ｐｒｅ，ｐｏｓｔ）の組は、
（２，２）、（１，３）
（３，１）、（０，４）
（２，３）、（３，２）
（３，４）、（４，３）
の８組存在する。これは、ｐｒｅとｐｏｓｔの値の平均（ｐｒｅ＋ｐｏｓｔ）／２が１．５より大、かつ２．５以下という条件の元で成立する組である。
【００２８】
上の階層のベクトルの番号が番号２以外の場合は、図６のベクトル組み合わせを全て４５度ずつ回転して得られるベクトル組み合わせを用いる。
尚、この上の階層のベクトルと下の階層の２個のベクトルの組み合わせは図６に限ったものではなく、上の階層のベクトルが下の階層の２個の平均ベクトルと見なせうる組み合わせであれば、何でもよい。
（３）分類木作成フェーズ
（２）の階層化前処理フェーズを経て、学習用ストローク（ＴＰi,j）の全てが、図５に示すようなベクトルのピラミッド形式に下から上へ展開される。分類木の作成は、このベクトルのピラミッド化とは逆に、上から下へ行われる。
【００２９】
なお、以下の説明においては、基本ベクトルは図６にある番号０から番号７までの８方向（個）であると仮定する。この場合、ベクトルのピラミッド上にあるベクトルも全てこの基本ベクトルのどれかである。
最上位の層のベクトルの状態は８個存在するので、ルートノードから８本の枝が伸びることになる（図７）。
【００３０】
このとき、枝に存在する学習用ストローク（ＴＰi,j）の数を数える。この結果によって、以後の処理が３つにわかれる。
１  学習用ストローク（ＴＰi,j）が１つも存在しない場合：
この場合は、その枝を削除する。
２  学習用ストローク（ＴＰi,j）の中で、あるカテゴリー（例えば「つ」）のストロークのみ存在する場合：
この場合は、この枝を葉とし、カテゴリーの番号（例えば「つ」）を割り振る。  ３  上記１、２以外の場合、即ち、複数カテゴリーのストロークが混在して存在する場合：
この場合、この枝をノードとして、更に分類木作成を続ける。
【００３１】
図７に、この処理の結果を示す。図７は、枝の状態を、図５の最上位の層（以下、第１層と呼ぶ）のベクトルを図示することによって示している。
存在するカテゴリーの種類の欄が「×」となっている枝は、学習用ストローク（ＴＰi,j）が１つも存在しない場合に相当し、削除される。
左から３番目の枝は、「つ」のカテゴリーの学習用ストロークしか存在しない。これは、学習用ストローク（ＴＰi,j）の中で、あるカテゴリー（例えば「つ」）のストロークのみが存在する場合に相当し、葉となる。
【００３２】
例えば、左から４番目と５番目の枝には「く」「し」「つ」のカテゴリーの学習用ストロークが存在し、上記１、２以外の場合、即ち、複数カテゴリーのストロークが混合して存在する場合に相当し、ノードとなる。
次に、このノードから枝を作成する方法について述べる。
このノードから枝を作成する際に、最も効率の良い枝の作成を行ないたい。最も効率が良いとは、結局、枝を展開した時に、最も多くカテゴリーに関する情報が得られるということである。
【００３３】
以下、展開した時に最も効率の良くなるベクトルを選ぶ方法を説明する。
あるノードに存在する学習用ストローク（ＴＰi,j）の中で、カテゴリー番号ｉの数をＮｉで表わす。また、このノードに存在する学習用ストロークの総数をＮとすると、このノードにおけるそれぞれのカテゴリーの存在確率ｐｉは、
ｐｉ＝Ｎｉ／Ｎ
で表される。また、あるノードのカテゴリーの種類の数を、例えば、２とすれば、
なお、
0003636525.tif 000002
よって、このノードの情報が得られた時のエントロピーは、以下の式で表される。
【００３４】
【数１】
0003636525.tif 000003
0003636525.tif 000004
次に、このノードにおいて、あるベクトルを選択して、そこから枝を展開した時のエントロピーの減少量を計算する。
【００３５】
上述のとおり、１つのベクトルを下の層にむかって展開した時の枝の数は８本である。この８本の枝に学習用ストローク（ＴＰｉ，ｊ）がどの様に分布するかを、展開したときの枝に存在する学習用ストローク（ＴＰｉ，ｊ）の数、即ち、
Ｎi,b
で表す。Ｎi,bのｉはカテゴリー番号を示し、ｂは枝（ｂｒａｎｃｈ）の番号を示す。
【００３６】
このとき、それぞれの枝の情報が得られたときのエントロピーは、上の議論と同じく、
【００３７】
【数２】
0003636525.tif 000005
0003636525.tif 000006
この式で、
0003636525.tif 000007
は枝に存在する学習用ストローク（ＴＰi,j）の総数を表す。
【００３８】
それぞれの枝にいく確率は、
Ｎb／Ｎ
ここで、Ｎは（１）式のＮと同じである。そのため、枝を展開したときの平均エントロピーは、
【００３９】
【数３】
0003636525.tif 000008
0003636525.tif 000009
となる。
【００４０】
結局、エントロピーの平均減少値は、
【００４１】
【数４】
0003636525.tif 000010
0003636525.tif 000011
となる。
【００４２】
そして、Ｋの値を枝の数の対数で割った値
【００４３】
【数５】
0003636525.tif 000012
0003636525.tif 000013
が、枝を展開したときの分類効率を表す。
【００４４】
この値が最高となるベクトルを選び、枝を展開していく。
なお、１つのベクトルのみを展開するのではなく、複数のベクトルのグループに関して枝を展開してもよい。この場合、（５）式のＢｒａｎｃｈＮｕｍｂｅｒは、
（選択されたベクトルの数）×８
となる。
【００４５】
尚、本実施の形態においては、（５）式で表される値を枝を展開したときの分類効率を表わす値として採用したが、例えば、文献「Ｃｌａｓｓｆｉｃａｔｉｏｎ  ａｎｄ  Ｒｅｇｒｅｓｓｉｏｎ  Ｔｒｅｅｓ」に記載されている”Ｇｉｎｉｃｒｉｔｅｒｉｏｎ”等の枝の展開効率を表す関数ならば（５）式に限らず何でもよいことは言うまでもない。
【００４６】
以上、展開するベクトル、またはベクトルの組が決定されれば、それに従って、枝を展開し、葉及びノードを作成していく。そして、最後、全部、葉になったところで、分類木作成を完了する。
以上説明した処理をフローチャートとして表現した図が第１０図である。以下、図８に示したような分類木の生成手順を説明する。
【００４７】
まず、ステップＳ１０００では、注目ノードをルートノード（図８）とする。
ステップＳ１００１では、設定された注目ノードに関して、以下の３条件、即ち、
１．  学習用ストロークが存在する。
２．  単一カテゴリー学習パターンのみが存在する。
【００４８】
３．  複数のカテゴリーの学習パターンが存在する。
のどれに当てはまるかチェックして、１．の条件を満たせば、ステップＳ１００２へ進む。また、２．の条件を満たせば、ステップＳ１００５へ進む。また、３．の条件を満たせば、ステップＳ１００６へ進む。
ステップＳ１００２では、分類木からそのノードを削除する。
【００４９】
ステップＳ１００３では、他の全ノードは、全てリーフノードになったかどうかチェックして、イエスであれば、処理を終了する。また、ノーであれば、ステップＳ１００４に進み、注目ノードとして次のノードを選ぶ。そして、ステップＳ１００１に戻り、同様の処理を繰り返す。
ステップＳ１００５では、そのノードをリーフノードとして、そのカテゴリー番号をアサインする。そして、ステップＳ１００３に進む。
【００５０】
ステップＳ１００６では、そのノードに含まれるベクトル列の中から、上述のエントロピー基準に基づいて、そのベクトル列中の１つのベクトルを選択する。ステップＳ１００７では、選択されたベクトルの下位階層のベクトルの組の枝を生成する。
図１１は、このステップでの処理を説明するための図であり、下位階層のベクトルの組の例を示す。
【００５１】
図１１を参照して、５０００が、ステップＳ１００６で選択された方向”２”を有するベクトルであるとする。このベクトルに対応する下位層でのベクトルの組は、８通りの組み合わせベクトル、即ち、５００１、５００２、５００３、５００４、５００５、５００６、５００７、５００８が存在する。そして、これらの組み合わせベクトルの各々を新しいノードとする各枝を生成する。
【００５２】
以上、ステップＳ１００７での処理の具体例を示した。
次に、ステップＳ１００８へ進み、生成された枝のノードの１つを次の注目ノードとする。そして、ステップＳ１００１へ戻り、同様の処理を繰り返す。
以上説明した手順によって、図８に示すような分類木を生成することにより、特徴量の多いストロークパターンの大局的分類を維持しながら、類似のカテゴリー間の細かい特徴の違いを反映した分類木を生成でき、この分類木を探索することで、高速かつ高認識率の文字認識が可能になる。
【００５３】
尚、本実施の形態では、学習ストロークが１本という前提で、本発明に係わるオンライン手書き文字認識用の辞書作成方法を述べてきたが、実際には何本のストロークが入力文字として切り出されるシステムであっても、それぞれのストロークを本実施の形態と同様に処理することによって対応できることも言うまでもない。
【００５４】
次に、図８の分類木の生成について、更に、具体的に説明する。
図８は、図７を更に下の階層まで表示した図で、削除した枝は省いてある。図８の四角（□）で囲ってある枝は葉であることを示す。
葉以外の全ての枝はノードとなるので、更に、深く枝の展開が行われるわけであるが、図８においては、左から２番目のノード（２０１）に関する更なる枝の展開結果を図示した。
【００５５】
左から２番目のノード（２０１）は、「く」「し」「つ」の３種類のカテゴリーが共存しており、枝の展開が必要となっている。
このノードの状態を表現するベクトルは１つしか存在しない（○の中に表示されているベクトル）ので、展開するべきベクトルは一意的に決定する。この時の展開するベクトルの組み合わせは、図６に記載されているベクトルの組みに準ずる。つまり、上の階層のベクトルが右下の方向（番号３）のベクトルでありうる下の階層の２個のベクトルの８つの組合わせに相当する枝の展開が行われる。この状況は図５において、ベクトルの展開が第２層まで進んだことを意味する。
【００５６】
更に、展開した左から２番目の枝のノード（２０２）には「し」「く」の２つのカテゴリーが存在する。よって、更なる枝の展開が必要になる。ここで、ノードを表現する２個のベクトルのうち、どのベクトルを展開すべきかについて、「展開ベクトル判別ステップ」（Ｓ１０７）での処理で、最初のベクトルという答えを出したとする。すると、最初のベクトルの状態に関して、上の階層と同様に８本の枝が展開され、ある枝は削除され、ある枝は葉となり、ある枝はノードとなる。ノードとなった枝は、更に展開しなければならなく、最終的に全ての枝の末端は葉となる。
＜実施の形態２＞
第２の実施の形態では、上述実施の形態で示した処理手順により生成された分類木を探索して、オンライン手書き文字の認識を行う認識方法を説明する。
【００５７】
図９は、この処理手順を最もよく表わすフローチャートである。
図９を参照して、３０１は、ユーザーが入力した「筆記ストローク」のデータを示す。この筆記ストロークは、第１の実施の形態で示した「学習用ストローク」（１０１）と同様のものである。
ステップＳ３０２は、「筆記ストローク」を分割する「ストローク分割ステップ」である。
【００５８】
ステップＳ３０３は、前記「ストローク分割ステップ」において分割されたストローク切片をベクトル量子化する「ベクトル化ステップ」、
ステップＳ３０４は、前記「ベクトル化ステップ」の結果得られたベクトル系列を階層的に処理する「階層化前処理ステップ」である。
そして、３０５は、「階層化前処理ステップ」で処理された後の「階層化されたベクトル系列」である。
【００５９】
ステップＳ３０７は、「階層化されたベクトル系列」（３０５）を元に「分類木」（３０６）の分類内容に従って、「筆記ストローク」（３０１）のカテゴリーを決定する「カテゴリー判別ステップ」である。
ここで、「分類木」（３０６）は、カテゴリー分類に必要な情報をまとめた分類木であり、その内容は、第１の実施の形態ですでに説明した方法で作成しうる分類木であることが望ましい。
【００６０】
尚、上述の「ストローク分割ステップ」（Ｓ３０２）、「ベクトル化ステップ」（Ｓ３０３）、「階層化前処理ステップ」（Ｓ３０４）の３つのステップでの処理はそれぞれ、第１の実施の形態の「ストローク分割ステップ」（Ｓ１０２）、「ベクトル化ステップ」（Ｓ１０３）、「階層化前処理ステップ」（Ｓ１０４）の各処理３つのステップでの処理と同様である。
【００６１】
また、「階層化されたベクトル系列」（３０５）については、第１の実施の形態での場合は、学習パターンの数だけ存在したが、本実施の形態においては、筆記されたストロークから導き出された１つのみである。
また、「カテゴリー判別ステップ」（Ｓ３０７）では、図８の分類木に基づき、「階層化されたベクトル系列」（３０５）をたぐって葉に到達した時点で、その葉に存在するカテゴリーを認識結果として出力する。
【００６２】
尚、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用しても良い。また、本発明はシステム或は装置にプログラムを供給することによって実施される場合にも適用できることは言うまでもない。この場合、本発明に係るプログラムを格納した記憶媒体が本発明を構成することになる。そして、該記憶媒体からそのプログラムをシステム或は装置に読み出すことによって、そのシステム或は装置が、予め定められた仕方で動作する。
【００６３】
以上説明したように、本実施の形態によれば、第１の実施の形態の分類木生成方法によって生成された、カテゴリー間の競合関係をうまく反映したストロークベクトルの分類木を用いることで、極めて高速で認識率の高いオンライン手書き文字認識を実現できる。
【００６４】
【発明の効果】
以上説明したように本発明によれば、特徴量の多いパターンの大局的構造特性をうまく反映し、かつ、カテゴリー間の競合関係をうまく反映したストロークベクトルの分類木を生成でき、生成された分類木を用いて、高速で高認識率の文字認識が可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態の情報処理方法が適用される情報処理装置の構成を示すブロック図である。
【図２】本発明の一実施の形態のオンライン手書き文字認識辞書の生成方法を表わす図である。
【図３】本発明の一実施の形態のオンライン手書き文字認識辞書の生成方法の処理の流れを示すフローチャートである。
【図４】ストローク生成フェーズの処理を説明するための図である。
【図５】階層化されたベクトル系列を示す図である。
【図６】ベクトル平均化処理を説明するための図である。
【図７】分類木の様子を示す図である。
【図８】オンライン手書き文字認識辞書の分類木のデータ構成を表わす図である。
【図９】第２の実施の形態のオンライン手書き文字認識方法を最もよく表わす図である。
【図１０】第１の実施の形態の分類木生成処理の詳細なフローチャートである。
【図１１】図１０のステップＳ１００７の枝生成の一例を示した図である。
【符号の説明】
４０１  ストローク入力装置
４０２  表示装置
４０３  中央処理装置（ＣＰＵ）
４０４  メモリ
【図１】
0003636525.tif 000014
【図２】
0003636525.tif 000015
【図３】
0003636525.tif 000016
【図４】
0003636525.tif 000017
【図５】
0003636525.tif 000018
【図６】
0003636525.tif 000019
【図７】
0003636525.tif 000020
【図８】
0003636525.tif 000021
【図９】
0003636525.tif 000022
【図１０】
0003636525.tif 000023
【図１１】
0003636525.tif 000024