(57)【特許請求の範囲】
【請求項１】
文字枠に入力されるストロークで構成されるパターンを文字認識する文字認識装置であって、
少なくとも１つ以上の特定パターンに関する情報を記憶する記憶手段と、
１つの文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶手段に記憶されている特定パターンであるか否かを判定する判定手段と、
前記判定手段によって前記特定パターンであると判定された場合、当該特定パターンであると判定された当該最初のｎ本のストローク或いは最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識し、一方、前記判定手段によって前記特定パターンでないと判定された場合、前記読み出された複数のストロークで構成されるパターンを用いて文字認識する認識手段と、
前記判定手段によって前記特定パターンであると判定された場合は、前記判定手段によって判定された特定パターンと前記認識手段による前記除外後のストロークで構成されるパターンの文字認識結果とを出力し、一方、前記判定手段によって前記特定パターンでないと判定された場合は、前記認識手段による前記読み出された複数のストロークで構成されるパターンの文字認識結果を出力する出力手段と
を備えることを特徴とする文字認識装置。
【請求項２】
前記記憶手段は、前記特定パターンを構成する文字コードと該特定パターンを構成するストロークの許容ストローク数と該特定パターンが記入されるべき入力順の位置を示す情報とを記憶する
ことを特徴とする請求項１に記載の文字認識装置。
【請求項３】
前記判定手段は、前記記憶手段に記憶される特定パターンを構成するストロークの許容ストローク数ｎと該特定パターンが記入されるべき入力順の位置を示す情報に基づいて、前記読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶手段に記憶されている特定パターンであるか否かを判定する
ことを特徴とする請求項２に記載の文字認識装置。
【請求項４】
前記特定パターンは、少なくとも記号や句読点を含む
ことを特徴とする請求項１に記載の文字認識装置。
【請求項５】
前記文字枠が行末の文字枠である場合、前記判定手段は、当該文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最後のｎ本のストロークで構成されるパターンが、前記記憶手段に記憶されている特定パターンであるか否かを判定し、
前記判定手段により特定パターンであると判定された場合、前記認識手段は、当該特定パターンであると判定された当該最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識して、前記出力手段は、前記除外後のストロークで構成されるパターンの文字認識結果と前記判定手段によって判定された特定パターンとを出力する
ことを特徴とする請求項１に記載の文字認識装置。
【請求項６】
文字枠に入力されるストロークで構成されるパターンを文字認識する文字認識方法であって、
少なくとも１つ以上の特定パターンに関する情報を記憶媒体に記憶する記憶工程と、
１つの文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶工程で記憶媒体に記憶されている特定パターンであるか否かを判定する判定工程と、
前記判定工程によって前記特定パターンであると判定された場合、当該特定パターンであると判定された当該最初のｎ本のストローク或いは最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識し、一方、前記判定工程によって前記特定パターンでないと判定された場合、前記読み出された複数のストロークで構成されるパターンを用いて文字認識する認識工程と、
前記判定工程によって前記特定パターンであると判定された場合は、前記判定工程によって判定された特定パターンと前記認識工程による前記除外後のストロークで構成されるパターンの文字認識結果とを出力し、一方、前記判定工程によって前記特定パターンでないと判定された場合は、前記認識工程による前記読み出された複数のストロークで構成されるパターンの文字認識結果を出力する出力工程と
を備えることを特徴とする文字認識方法。
【請求項７】
前記記憶工程は、前記特定パターンを構成する文字コードと該特定パターンを構成するストロークの許容ストローク数と該特定パターンが記入されるべき入力順の位置を示す情報とを記憶媒体に記憶する
ことを特徴とする請求項６に記載の文字認識方法。
【請求項８】
前記判定工程は、前記記憶工程で記憶媒体に記憶される特定パターンを構成するストロークの許容ストローク数ｎと該特定パターンが記入されるべき入力順の位置を示す情報に基づいて、前記読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶工程で記憶媒体に記憶されている特定パターンであるか否かを判定する
ことを特徴とする請求項７に記載の文字認識方法。
【請求項９】
前記特定パターンは、少なくとも記号や句読点を含む
ことを特徴とする請求項６に記載の文字認識方法。
【請求項１０】
前記文字枠が行末の文字枠である場合、前記判定工程は、当該文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最後のｎ本のストロークで構成されるパターンが、前記記憶工程で記憶媒体に記憶されている特定パターンであるか否かを判定し、
前記判定工程により特定パターンであると判定された場合、前記認識工程は、当該特定パターンであると判定された当該最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識して、前記出力工程は、前記除外後のストロークで構成されるパターンの文字認識結果と前記判定工程によって判定された特定パターンとを出力する
ことを特徴とする請求項６に記載の文字認識方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字入力領域の文字枠に入力される文字を認識する文字認識装置及びその方法に関するものである。
【０００２】
【従来の技術】
従来のオンライン手書き文字認識装置は、ユーザが入力する手書き文字の文字パターンを予め装置内に認識辞書として用意されている標準文字の文字パターンと比較し、類似度の高い標準文字の文字パターンの文字コードを認識結果として出力するものである。通常、文字を入力する際には、文字入力板と呼ばれる記入エリアが設けられており、ユーザが入力する手書き文字を装置に取り込むためのインタフェースアプリケーションが備えられている。
【０００３】
手書きオンライン手書き文字認識装置内での文字認識処理は、１文字毎にユーザが入力する文字を認識し、その認識結果を出力する方式で構成されていることが多いが、一方で、書き手となるユーザには文章等の複数の文字を入力したい場合が生じる。この場合、装置では、これらの複数の文字を構成する文字ストロークから文字の区切りを検出し、１文字分の文字ストロークを確定させた後、認識処理を行っていた。また、全く自由に（大きさ、位置の制限によらない）書かれた複数の文字から、それぞれの文字を検出するための文字の区切り方法がいくつか提案されているが、いずれの方法も実用レベルには至っておらず、その認識精度は低いものであった。
【０００４】
上述の認識精度を向上させるために、既に市販されているMicrosoft社のWindows for Pens（商標）、Go社のPenPoint（商標）等の入力ペンを用いて文字を入力するＯＳに用いられる文字入力板では、各文字の区切りをガイドする複数の文字枠（長方形矩形）を設け、文字枠毎に１つの文字を記入するものであった。この場合、文字枠毎に文字を認識すれば良いので、複数の文字が入力されても精度良く文字認識をすることができた。更に、この複数の文字枠を用いた文字入力板は、文字の区切り方法を容易にするだけでなく、同形状異字種における大文字小文字判別にも応用されていた。
【０００５】
また、このような文字枠付き文字入力板では、文字が入力された文字枠内に認識結果の文字を表示した。更には、文字入力板において、認識対象文字種の設定や、出力モードの設定を行うことで、ユーザの要求に従って、認識処理の制御が可能となっていた。例えば、全角文字／半角文字のいずれかで文字を出力する指定を行うことにより、認識結果の文字フォントを全角文字、あるいは半角文字で出力することができた。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来のオンライン手書き文字認識装置文字では、以下のような問題点があった。つまり、例えば、「１０」のような複数の数字の文字群や、「（図」のように括弧等と他の文字を一緒にした文字群を、ユーザは１つの文字枠に一緒にして記入してしまう場合がある。この場合、１つの文字枠に記入されたすべての文字の文字ストロークは、１つの文字として認識を行うため誤った文字認識を行ってしまうという問題点があった。このような例は他にも存在し、特に数字や記号等を含む文字に多く見られる。
【０００７】
また、我々が日常、文章を書く際の日本文書特有の書式によっても、同様の問題点が生じていた。例えば、句読点等の記号を行頭に出現させない習慣がある。そのため、行頭に出現しそうな場合は行末に他の文字と連結して記入するというものであり、学校教育等においても指導されている。
更には、文字入力板に関し、１つの文字枠に記入できる文字数が１文字のみという制限が、文章を記入するユーザには一般的な習慣や、あるいは個人特有の書式といった日常の記入方法とは異なる作法を強いられ、文字を入力する操作の操作性を低下させるという問題点があった。
【０００８】
本発明は上記の問題点に鑑みてなされたものであり、複数の文字枠からなる文字入力板の文字枠に複数の文字を記入しても、これら複数の文字をそれぞれ認識することができる文字認識装置及びその方法を提供することを目的としている。
また、複数の文字枠からなる文字入力板の文字枠に１文字を記入する制限をなくし、文字を入力する操作の操作性を向上することができる文字認識装置及びその方法を提供することを目的としている。
【０００９】
【発明が解決しようとする課題】
上記の目的を達成するための本発明による文字認識装置は以下の構成を備える。即ち、
文字枠に入力されるストロークで構成されるパターンを文字認識する文字認識装置であって、
少なくとも１つ以上の特定パターンに関する情報を記憶する記憶手段と、
１つの文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶手段に記憶されている特定パターンであるか否かを判定する判定手段と、
前記判定手段によって前記特定パターンであると判定された場合、当該特定パターンであると判定された当該最初のｎ本のストローク或いは最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識し、一方、前記判定手段によって前記特定パターンでないと判定された場合、前記読み出された複数のストロークで構成されるパターンを用いて文字認識する認識手段と、
前記判定手段によって前記特定パターンであると判定された場合は、前記判定手段によって判定された特定パターンと前記認識手段による前記除外後のストロークで構成されるパターンの文字認識結果とを出力し、一方、前記判定手段によって前記特定パターンでないと判定された場合は、前記認識手段による前記読み出された複数のストロークで構成されるパターンの文字認識結果を出力する出力手段と
を備える。
【００１０】
また、好ましくは、前記記憶手段は、前記特定パターンを構成する文字コードと該特定パターンを構成するストロークの許容ストローク数と該特定パターンが記入されるべき入力順の位置を示す情報とを記憶する。
【００１１】
また、好ましくは、前記判定手段は、前記記憶手段に記憶される特定パターンを構成するストロークの許容ストローク数ｎと該特定パターンが記入されるべき入力順の位置を示す情報に基づいて、前記読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶手段に記憶されている特定パターンであるか否かを判定する。
また、好ましくは、前記特定パターンは、少なくとも記号や句読点を含む。
また、好ましくは、前記文字枠が行末の文字枠である場合、前記判定手段は、当該文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最後のｎ本のストロークで構成されるパターンが、前記記憶手段に記憶されている特定パターンであるか否かを判定し、
前記判定手段により特定パターンであると判定された場合、前記認識手段は、当該特定パターンであると判定された当該最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識して、前記出力手段は、前記除外後のストロークで構成されるパターンの文字認識結果と前記判定手段によって判定された特定パターンとを出力する。
【００１２】
上記の目的を達成するための本発明による文字認識方法は以下の構成を備える。即ち、
文字枠に入力されるストロークで構成されるパターンを文字認識する文字認識方法であって、
少なくとも１つ以上の特定パターンに関する情報を記憶媒体に記憶する記憶工程と、
１つの文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶工程で記憶媒体に記憶されている特定パターンであるか否かを判定する判定工程と、
前記判定工程によって前記特定パターンであると判定された場合、当該特定パターンであると判定された当該最初のｎ本のストローク或いは最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識し、一方、前記判定工程によって前記特定パターンでないと判定された場合、前記読み出された複数のストロークで構成されるパターンを用いて文字認識する認識工程と、
前記判定工程によって前記特定パターンであると判定された場合は、前記判定工程によって判定された特定パターンと前記認識工程による前記除外後のストロークで構成されるパターンの文字認識結果とを出力し、一方、前記判定工程によって前記特定パターンでないと判定された場合は、前記認識工程による前記読み出された複数のストロークで構成されるパターンの文字認識結果を出力する出力工程と
を備える。
【００１３】
また、好ましくは、前記記憶工程は、前記特定パターンを構成する文字コードと該特定パターンを構成するストロークの許容ストローク数と該特定パターンが記入されるべき入力順の位置を示す情報とを記憶媒体に記憶する。
また、好ましくは、前記判定工程は、前記記憶工程で記憶媒体に記憶される特定パターンを構成するストロークの許容ストローク数ｎと該特定パターンが記入されるべき入力順の位置を示す情報に基づいて、前記読み出された複数のストロークのうち、最初のｎ本のストロークで構成されるパターン或いは最後のｎ本のストロークで構成されるパターンが、前記記憶工程で記憶媒体に記憶されている特定パターンであるか否かを判定する。
【００１４】
また、好ましくは、前記特定パターンは、少なくとも記号や句読点を含む。
また、好ましくは、前記文字枠が行末の文字枠である場合、前記判定工程は、当該文字枠に入力された複数のストロークを読み出し、当該読み出された複数のストロークのうち、最後のｎ本のストロークで構成されるパターンが、前記記憶工程で記憶媒体に記憶されている特定パターンであるか否かを判定し、
前記判定工程により特定パターンであると判定された場合、前記認識工程は、当該特定パターンであると判定された当該最後のｎ本のストロークを前記読み出された複数のストロークから除外して、当該除外後のストロークで構成されるパターンを用いて文字認識して、前記出力工程は、前記除外後のストロークで構成されるパターンの文字認識結果と前記判定工程によって判定された特定パターンとを出力する。
【００１６】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施の形態を詳細に説明する。
＜実施の形態１＞
図１は実施の形態１のオンライン手書き文字認識装置の概略構成を示すブロック図である。
【００１７】
図１において、２００はＣＰＵであり、ＲＯＭ２０１に記憶された制御プログラム（文字認識処理等）やデータ等に従って装置全体を制御する。また、後述するフローチャートの制御プログラムもＲＯＭ２０１に格納される。２０２はＲＡＭであり、ＣＰＵ２００のワークエリアとして使用されると共に、入力された文字ストロークデータ等を記憶する。２０３はディジタイザ等の座標入力部で、この座標入力部２０３上で入力ペン２０４等の入力手段を用いて描かれた文字パターン等の座標データが、入力データとしてＲＡＭ２０２に格納される。また、座標入力部２０３には、文字を入力するための複数の文字枠からなる文字入力板２０３ａ（図３参照）を有している。２０５は表示部を制御するための表示コントローラ、２０６はＣＲＴや液晶等で構成される表示部である。２０７はフロッピーディスクやハードディスク等とのインターフェイスを制御するＤＣ（ドライブコントローラ）であり、２０８はフロッピーディスクやハードディスク等の外部メモリである。
【００１８】
尚、座標入力部２０３は、例えば、透明電極で構成されており、表示部２０６と重ね合わせた構成となっている。そして、ＣＰＵ２００は、入力ペン２０４が座標入力部２０３を指示している（以下、ペンドラッグと呼ぶ）期間内に入力される座標位置を検出する。そして、その検出された座標位置に対応して表示部２０６上にドットを表示する。これによって、あたかも、ペンで紙に文字や図形を書いたような動作が、表示部２０６上で実行される。２０９は装置を構成する各要素を接続するためのシステムバスである。
【００１９】
次に、実施の形態１で実行される処理の機能構成について、図２を用いて説明する。
尚、ＣＰＵ２００の制御によって、ＲＯＭ２０１に格納された実施の形態１で説明される処理を実行するための制御プログラムをＲＡＭ２０２に読み込むことで、その処理が実行される。
【００２０】
図２は実施の形態１のオンライン文字認識装置の機能構成を示すブロック図である。
以下、各機能構成と、各機能によって実行される処理について説明する。
まず、文字入力部１００（ＣＰＵ２００、座標入力部２０３、文字入力板２０３ａ、入力ペン２０４、表示部２０６に対応する）より入力された各文字枠に記入される複数の文字ストロークは、文字ストローク記憶部１０３に記憶される。この文字ストロークは、座標入力部２０３から送られるペンダウン（入力ペン２０４の入力開始を示す）信号からペンアップ（入力ペン２０４の入力終了を示す）信号までの間に送られた複数の座標群から成っている。そして、文字ストローク記憶部１０３に格納されている複数の文字ストロークを用いて、文字枠位置検出部１０６では、入力された文字ストロークが、文字入力板２０３ａのどの文字枠に記入されたかを検出する。
【００２１】
尚、この文字枠位置検出方法は、文字ストロークの始点座標が含まれる文字枠位置としてもよく、また、文字枠をはずれて記入された場合を想定して、文字ストローク全体の重心座標が含まれる文字枠としてもよい。いずれの場合も文字枠を構成する矩形の頂点座標が、装置内に記憶されていれば検出可能である。
文字抽出部１０４では、複数の文字ストロークの中に特定文字情報テーブル１０５に設定されている特定文字の文字ストロークが含まれているかどうかを判断する。また、文字抽出部１０４には、文字枠に記入された文字ストロークのストローク数ｊ（ｊは正の整数）をカウントするカウンタ１０４ａ、後述する文字ストロークの最小ストローク数ｋをカウントするカウンタ１０４ｂが構成される。
【００２２】
尚、文字抽出部１０４において、文字枠内に特定文字が存在しないと判断された場合は、その文字枠に記入されているすべての文字ストロークを１文字としてして認識する。認識された文字ストロークを、認識部１０１に送り、文字認識処理を実行させる。一方、文字枠内に特定文字が存在すると判断された場合は、その文字枠に記入されている特定文字の文字ストロークと特定文字以外の文字ストロークとして認識する。認識されたそれぞれの文字ストロークを、認識部１０１に送り、文字認識処理を実行させる。
【００２３】
尚、特定文字とは、括弧や句読点等の他の文字と一緒になって、１つの文字枠に記入されることがある文字（以下、特定文字と呼ぶ）のことである。
特定文字情報テーブル１０５には、特定文字の文字コードやその他の付加情報が格納されており、外部メモリ２０８にファイルとして存在している。このファイルの内容は、変更可能であり、ファイルの読込／書込が許可されている。
【００２４】
認識部１０１において、得られた認識結果は結果出力部１０２のバッファメモリ１０２ａに転送される。転送された認識結果は、認識結果として適当であると判断された複数の文字コードと、その文字コードの付加情報として認識処理で生成された演算値が認識候補として含まれている。結果出力部１０２は、第一位の認識候補の文字コードが表す文字フォントを表示部２０６に表示する。
【００２５】
尚、文字フォントの表示はユーザが筆跡入力した文字枠に表示することが可能で、その際には、入力された文字筆跡を消去して表示すれば良い。また、第一位の認識候補結果に限らず、下位の認識候補を表示する構成にしても良い。
次に、上述の文字抽出部１０４が起動されるまでの処理について、図３と図４のフローチャートを用いて詳細に説明する。
【００２６】
図３は実施の形態１のオンライン文字認識装置の文字入力板を示す図である。図３に示される文字入力板２０３ａは、座標入力部２０３の一部または全部に構成され、複数の文字を入力するための文字枠が備えられている。
図３では、文字枠の中に「説明する（図８」が、手書きで記入されている様子を示している。また、各文字枠左上に記載されている数字は文字枠位置番号である。
【００２７】
図４は実施の形態１の文字抽出部１０４が起動されるまでの処理フロー示すフローチャートである。
ステップＳ４００で、文字ストローク記憶部１０３に記憶されている文字ストロークを読み出し、文字枠位置検出部１０６に送る。ステップＳ４０１で、文字枠位置検出部１０６によって、文字ストロークと対応する文字入力板２０３ａの文字枠位置を決定し、その位置番号を文字ストロークの付加情報として対応付ける。
【００２８】
ステップＳ４０２で、読み出した文字ストロークに付加されている文字枠位置番号が、直前に読み出された文字ストロークの文字枠位置番号と異なるかどうかを判定する。同じである場合（ステップＳ４０２でＮＯ）、ステップＳ４００に戻り、引き続き、次のストロークを読み出す。異なっている場合（ステップＳ４０２でＹＥＳ）、ステップＳ４０３に進む。
【００２９】
ステップＳ４０３で、直前に読み出された文字ストロークの文字枠位置番号に該当する複数の文字ストロークを、文字ストローク記憶部１０３から読み出し文字抽出部１０４に送る。
上述の図４のフローチャートで説明した処理が実行された後、文字抽出部１０４が起動され、以下、図５のフローチャートに示すような処理が実行される。
【００３０】
図５は実施の形態１の文字抽出部１０４で実行される処理フローを示すフローチャートである。
ステップＳ５００で、外部メモリ２０８に格納されている特定文字情報テーブル１０５をオープンする。図８を用いて、特定文字情報テーブル１０５の構成を説明する。
【００３１】
図８は実施の形態１の特定文字情報テーブル１０５の構成を示す図である。
例えば、図に示すように特定文字情報テーブル１０５には、特定文字の文字コードの文字コード情報を複数格納する「文字コード」欄が構成される。また、「文字コード」欄に格納される特定文字の文字コードに対し、実際に書かれる画数の許容範囲のストローク数の最小と最大を格納する「最大ストローク数」欄と、「最小ストローク数」欄からなる「許容範囲ストローク数」欄が構成される。更に、「文字コード」欄に格納される特定文字の文字コードに対し、その文字コードが他の文字の前に書かれるか、後ろに書かれるかを示す情報を格納する「場所」欄が構成される（図に示すように、前の場合「前」、後ろの場合「後」と記述される）。
【００３２】
ステップＳ５０１で、文字抽出部１０４に送られてきた文字ストロークのストローク数ｊをカウンタ１０４ａにセットする。ステップＳ５０２で、特定文字情報テーブル１０５から任意の文字コード情報を読み出す。ステップＳ５０３で、特定文字情報テーブル１０５より読み出されていない特定文字の文字コード情報があるか否かを判定する。読み出されていない特定文字の文字コード情報がある場合（ステップＳ５０３でＹＥＳ）、ステップＳ５０４に進む。一方、読み出されていない特定文字の文字コード情報がない場合（ステップＳ５０４でＮＯ）、ステップＳ５１０に進む。
【００３３】
ステップＳ５０４で、読み出された文字コード情報に対応する最小ストローク数ｋがカウンタ１０４ｂにセットされる。ステップＳ５０５で、カウンタ１０４ｂにセットされた値ｋが読み出された文字コード情報に対応する最大ストローク数よりも大きい否かを判定する。カウンタ１０４ｂにセットされた値ｋが読み出された文字コード情報に対応する最大ストローク数よりも大きい場合（ステップＳ５０５でＹＥＳ）、ステップＳ５０１に戻る。一方、カウンタ１０４ｂにセットされた値ｋが読み出された文字コード情報に対応する最大ストローク数よりも小さい場合（ステップＳ５０５でＮＯ）、ステップＳ５０６に進む。
【００３４】
ステップＳ５０６で、カウンタ１０４ｂにセットされた値ｋがカウンタ１０４ａにセットされた値ｊよりも大きい否かを判定する。カウンタ１０４ｂにセットされた値ｋがカウンタ１０４ａにセットされた値ｊよりも大きい場合（ステップＳ５０６でＹＥＳ）、ステップＳ５０１に戻る。一方、カウンタ１０４ｂにセットされた値ｋがカウンタ１０４ａにセットされた値ｊよりも小さい場合（ステップＳ５０６でＮＯ）、ステップＳ５０７に進む。
【００３５】
ステップＳ５０７で、読み出された文字コード情報に対応する「場所」欄に記載されている内容に応じて特殊認識処理を行う。以下、特殊認識処理の詳細を図６のフローチャートを用いて説明する。
図６は実施の形態１の特殊認識処理の処理フローを示すフローチャートである。
【００３６】
ステップＳ６００で、読み出された文字コード情報に対応する特定文字情報テーブル１０５に記載されている「場所」欄を参照し、その文字コード情報に対応する特定文字の書かれる場所が、「前」であるか「後」であるかを判定する。他の文字より「後」の場合、ステップＳ６０１に進む。一方、他の文字より「前」の場合、ステップＳ６０２に進む。
【００３７】
ステップＳ６０１で、送られてきたストロークに対し、ｊ−ｋ＋１番目の文字ストロークからｊ番目までの文字ストロークによって特定文字が構成されるものとして、認識部１０１に送り、特定文字の文字認識処理を行う。
ステップＳ６０２で、送られてきたストロークに対し、１番目の文字ストロークからｋ番目の文字ストロークによって特定文字が構成されるものとして、認識部１０１に送り、文字認識処理を行う。
【００３８】
尚、特定文字が構成されるものとした複数の文字ストロークを認識部１０１に送る際、文字枠のサイズ情報も合わせて送る。このようにすることで、例えば、「（」の特定文字のように「＜」や「｛」等の類似する特定文字が存在して、その特定文字「（」の文字ストロークのみでは詳細に特定文字を判別できない場合でも、その文字枠のサイズ情報によって与えられる文字枠の位置と文字ストロークの位置の相対的な位置によって、類似文字間の識別の精度を向上させることができる。
【００３９】
再び、図５のフローチャートの説明に戻る。
ステップＳ５０７で、特殊認識処理が実行された後、ステップＳ５０８で、認識部１０１から得られる文字認識結果は、図９に示すような構成でバッファメモリ１０２ａに保存格納される。
図９は実施の形態１のバッファメモリ１０２ａに格納される文字認識結果の構成を示す図である。
【００４０】
図９の「文字コード」欄は、図８に示される同文字種の文字コード情報が記載されている。「使用ストローク数」欄には、記載されている数値をｎとすると、最初のｎ本、あるいは最後のｎ本の文字ストロークを用いて認識処理した結果が「認識結果コード」欄と「認識結果スコア」欄に記載される。「認識スコア」欄の数値は、認識結果の信頼度を示す数値であり、数値が大きいほど認識結果の信頼性が高いことを表している。また、「認識結果コード」欄には、認識された文字コード情報が格納される。更に、図８に示されるように「最小ストローク数」と「最大ストローク数」が異なる場合の文字コード情報に対しては、その「最小ストローク数」と「最大ストローク数」間の各ストローク数毎において実行された文字認識の認識結果が格納されることになる（例えば、図９の文字コード情報「（０ｘ２１５６）等である）。
【００４１】
ステップＳ５０９で、カウンタ１０４ａの値ｋを＋１インクリメントする。
以上の処理を、特定文字情報テーブル１０５に格納されているすべての文字コード情報について実行すると、ステップＳ５１０に進む。
ステップＳ５１０で、バッファメモリ１０２ａに格納された認識結果に対し、結果出力処理を行う。以下、結果出力処理の詳細を図７のフローチャートを用いて説明する。
【００４２】
図７は実施の形態１の結果出力処理の処理フローを示すフローチャートである。
まず、ステップＳ７００で、文字枠に記入された文字の中に特定文字が存在しているか否かを判定する。文字枠に記入された文字の中に特定文字が存在する場合（ステップＳ７００でＹＥＳ）、ステップＳ７０３に進む。一方、文字枠に記入された文字の中に特定文字が存在しない場合（ステップＳ７００でＮＯ）、ステップＳ７０１に進む。
【００４３】
尚、特定文字が存在しているか否かの判定方法は、例えば、図９の認識結果の「文字コード」欄と「認識結果コード」欄に格納されている文字コード情報が等しく、かつ「認識結果スコア」欄が設定された所定の閾値以上である場合に、特定文字が存在するものとする。また、閾値の値は予め実験システム等を用いて、認識処理における認識スコアと正解率の関係を用いて統計的に算出される。
【００４４】
例えば、図９に示される認識結果によれば、上記の条件に該当するのは「（」であり、文字枠に記入された文字には、「（」が他の文字と共に書かれていたことになる。
ステップＳ７０３で、文字枠に記入された文字によって構成されるすべての文字ストロークの中から、特定文字の文字ストロークとして書かれたものを除き（図３の例では、最初の文字ストロークを取り除く）残りの文字ストロークを１文字として認識部１０１にて、文字認識処理を行う。この際、文字枠に特定文字のみが記入されていた場合には、残りの文字ストロークは無いので認識処理させる必要性は当然ない。
【００４５】
ステップＳ７０４で、認識結果を表示部２０６に表示する順番を決定するために、特定文字の文字コード情報に対応する特定文字情報テーブル１０５に記載されている「場所」欄を参照し、その文字コード情報に対応する特定文字の書かれる場所が、「前」であるか「後」であるかを判定する。他の文字より「後」の場合、ステップＳ７０５に進む。一方、他の文字より「前」の場合、ステップＳ７０７に進む。
【００４６】
ステップＳ７０５で、ステップＳ７０３にて得られた文字の認識結果を最初に結果表示部１０２に送り、ステップＳ７０６で、続いてステップＳ７００にて得られた特定文字を送る。
ステップＳ７０７で、ステップＳ７００にて得られた特定文字を結果表示部１０２に送り、ステップＳ７０８で、続いてステップＳ７０３にて得られた文字の認識結果を送る。
【００４７】
一方、ステップＳ７０１で、文字枠に記入された文字を構成するすべての文字ストロークを認識部１０１にて、文字認識処理を行う。ステップＳ７０２で、その認識結果を結果出力部１０２に送る。
以上の処理をすべての文字枠に対して行うことで処理が完了する。
図３に示される記入例の場合、ステップＳ７００より、ステップＳ７０３へ進むのは、文字枠位置番号４の文字枠であり、記入されている文字からは、「（」が特定文字、その他の文字として「図」が得られる。そして、図３に示される手書きの「説明する（図８」は、図１０に示すような認識結果として、表示部２０６に表示される。
【００４８】
尚、実施の形態１で用いた特定文字情報テーブル１０５の内容は、図８に示される内容に限定されない。例えば、ユーザが数字等の追加の変更を行えるような構成にすることも容易に可能である。また、ＧＵＩ等のインタフェース画面を表示部２０６に表示して、特定文字情報テーブル１０５内の各欄を設定する構成にすることもできる。
【００４９】
以上説明したように、実施の形態１によれば、文字入力板２０３ａに構成される文字枠毎に、特定文字と文字の識別処理を行うので、１つの文字枠に特定文字と文字の文字群が記入された場合でも、それぞれを認識しその認識結果を出力することができる。また、ユーザは、１つの文字枠に記入できる文字数が１文字であるという絶対的な制限を考慮することなく、１つの文字枠に特定文字と文字が組み合わさる複数の文字群を記入することが可能となる。その結果、文字を記入する操作が容易になる。
【００５０】
更に、文字枠内に複数の文字を記入しても、これらの文字を分離して認識、結果表示することができ、ユーザは文章などを文字入力板に記入する際に、日常習慣に即した記入法で入力できるようになる。
＜実施の形態２＞
実施の形態１では、文字入力板のすべての文字枠に関して、文字と特定文字の識別処理を実行していたが、実施の形態２では、文字入力板の所定の文字枠に対して文字抽出部による文字と特定文字の識別処理を行う。ここでは、所定の文字枠として、行末の文字枠に記入される文字と禁則文字の識別処理を例に挙げて説明する。
【００５１】
尚、実施の形態２のオンライン手書き文字認識装置の概略構成は、実施の形態１の図１と同様の構成を有するものとし、その詳細な説明は省略する。また、文字入力板の構成も実施の形態１と同様の構成を有するものとし、その詳細な説明は省略する。
実施の形態２で実行される処理の機能構成について、図１１を用いて説明する。
【００５２】
尚、ＣＰＵ２００の制御によって、ＲＯＭ２０１に格納された実施の形態２で説明される処理を実行するための制御プログラムをＲＡＭ２０２に読み込むことで、その処理が実行される。
図１１は実施の形態２のオンライン文字認識装置の機能構成を示すブロック図である。
【００５３】
以下、各機能構成と、各機能によって実行される処理について説明する。
まず、文字入力部１１００（ＣＰＵ２００、座標入力部２０３、文字入力板２０３ａ、入力ペン２０４、表示部２０６に対応する）より入力された各文字枠に記入される複数の文字ストロークは、文字ストローク記憶部１１０３に記憶される。この文字ストロークは、座標入力部２０３から送られるペンダウン（入力ペン２０４の入力開始を示す）信号からペンアップ（入力ペン２０４の入力終了を示す）信号までの間に送られた複数の座標群から成っている。そして、文字ストローク記憶部１１０３に格納されている複数の文字ストロークを用いて、文字枠位置検出部１１０６では、入力された文字ストロークが、文字入力板２０３ａのどの文字枠に記入されたかを検出する。また、文字枠位置検出部１１０６で検出された文字枠の位置が、文字抽出部起動文字枠１１０７（例えば、文字入力板の文字枠の位置が行頭文字枠、行末文字枠等の所定の文字枠）である場合は、文字ストローク記憶部１１０３に格納されている複数の文字ストロークの中から、該当する文字枠の文字ストロークをすべて文字抽出部１１０４に送る。
【００５４】
尚、この文字枠位置検出方法は、文字ストロークの始点座標が含まれる文字枠位置としてもよく、また、文字枠をはずれて記入された場合を想定して、文字ストローク全体の重心座標が含まれる文字枠としてもよい。いずれの場合も文字枠を構成する矩形の頂点座標が、装置内に記憶されていれば検出可能である。
文字抽出部１１０４では、複数の文字ストロークの中に禁則文字情報テーブル１１０５に設定されている禁則文字の文字ストロークが含まれているかどうかを判断する。また、文字抽出部１１０４には、文字枠に記入された文字ストロークのストローク数ｊ（ｊは正の整数）をカウントするカウンタ１１０４ａ、後述する文字ストロークの最小ストローク数ｋをカウントするカウンタ１１０４ｂが構成される。
【００５５】
尚、文字抽出部１１０４において、文字枠内に禁則文字が存在しないと判断された場合は、その文字枠に記入されているすべての文字ストロークを１文字としてして認識する。認識された文字ストロークを、認識部１１０１に送り、文字認識処理を実行させる。一方、文字枠内に禁則文字が存在すると判断された場合は、その文字枠に記入されている禁則文字の文字ストロークと禁則文字以外の文字ストロークとして認識する。認識されたそれぞれの文字ストロークを、認識部１１０１に送り、文字認識処理を実行させる。
【００５６】
尚、禁則文字とは、実施の形態１で説明した特定文字の中で、特に、行頭あるいは行末に文法上記入することがない句読点等の文字（以下、禁則文字と呼ぶ）のことである。
禁則文字情報テーブル１１０５には、禁則文字の文字コードやその他の付加情報が格納されており、外部メモリ２０８にファイルとして存在している。このファイルの内容は、変更可能であり、ファイルの読込／書込が許可されている。
【００５７】
認識部１１０１において、得られた認識結果は結果出力部１１０２のバッファメモリ１１０２ａに転送される。転送された認識結果は、認識結果として適当であると判断された複数の文字コードと、その文字コードの付加情報として認識処理で生成された演算値が認識候補として含まれている。結果出力部１１０２は、第一位の認識候補の文字コードが表す文字フォントを表示部２０６に表示する。
【００５８】
尚、文字フォントの表示はユーザが筆跡入力した文字枠に表示することが可能で、その際には、入力された文字筆跡を消去して表示すれば良い。また、第一位の認識候補結果に限らず、下位の認識候補を表示する構成にしても良い。
次に、上述の文字抽出部起動文字枠１１０７が「行末文字枠」と設定された場合（つまり、行頭に記入されることがない禁則文字が記入された場合）に、文字抽出部１１０４が起動されるまでの処理について、図１２と図１３のフローチャートを用いて詳細に説明する。
【００５９】
図１２は実施の形態１のオンライン文字認識装置の文字入力板を示す図である。
図１２では、文字枠の中に「サンプルです。」が、手書きで記入されている様子を示している。また、各文字枠左上に記載されている数字は文字枠位置番号である。
【００６０】
図１３は実施の形態２の文字抽出部１１０４が起動されるまでの処理フロー示すフローチャートである。
ステップＳ１３００で、文字ストローク記憶部１１０３に記憶されている文字ストロークを読み出し、文字枠位置検出部１１０６に送る。ステップＳ１３０１で、文字枠位置検出部１１０６によって、文字ストロークと対応する文字入力板２０３ａの文字枠位置を決定し、その位置番号を文字ストロークの付加情報として対応付ける。
【００６１】
ステップＳ１３０２で、読み出した文字ストロークに付加されている文字枠位置番号が、直前に読み出された文字ストロークの文字枠位置番号と異なるかどうかを判定する。同じである場合（ステップＳ１３０２でＮＯ）、ステップＳ１３００に戻り、引き続き、次のストロークを読み出す。異なっている場合（ステップＳ１３０２でＹＥＳ）、ステップＳ１３０３に進む。
【００６２】
ステップＳ１３０３で、直前に読み出された文字ストロークの文字枠位置番号に該当する複数の文字ストロークを、文字ストローク記憶部１０３から読み出す。
ステップＳ１３０４で、その文字枠位置番号が行末文字枠（図１２の文字入力板２０３ａの場合、５、１１、１７、また、文字入力板の行数が３行以上ある場合は、６ｎ＋５（ｎは正の整数）で表せられる文字枠位置番号の文字枠）であるか否かを判定する。行末文字枠であると判定されない場合（ステップＳ１３０４でＮＯ）、ステップＳ１３０５に進む。一方、行末文字枠であると判定さらた場合（ステップＳ１３０４でＹＥＳ）、ステップＳ１３０６に進む。
ステップＳ１３０５で、複数の文字ストロークを１文字を構成する文字ストロークとして認識部１１０１に送出する。ステップＳ１３０６で、複数の文字ストロークを文字抽出部１１０４に送出する。
【００６３】
上述の図１３のフローチャートで説明したステップＳ１３０６の処理が実行された後、文字抽出部１１０４が起動され、以下、図１４のフローチャートに示すような処理が実行される。
図１４は実施の形態２の文字抽出部１１０４で実行される処理フローを示すフローチャートである。
【００６４】
ステップＳ１４００で、外部メモリ２０８に格納されている禁則文字情報テーブル１１０５をオープンする。図１５を用いて、禁則文字情報テーブル１０５の構成を説明する。
図１５は実施の形態２の禁則文字情報テーブル１１０５の構成を示す図である。
【００６５】
例えば、図に示すように禁則文字情報テーブル１１０５には、禁則文字の文字コードの文字コード情報を複数格納する「文字コード」欄が構成される。また、「文字コード」欄に格納される禁則文字の文字コードに対し、実際に書かれる画数の許容範囲のストローク数の最小と最大を格納する「最大ストローク数」欄と、「最小ストローク数」欄からなる「許容範囲ストローク数」欄が構成される。
【００６６】
ステップＳ１４０１で、文字抽出部１１０４に送られてきた文字ストロークのストローク数ｊをカウンタ１１０４ａにセットする。ステップＳ１４０２で、禁則文字情報テーブル１１０５から任意の文字コード情報を読み出す。ステップＳ１４０３で、禁則文字情報テーブル１１０５より読み出されていない禁則文字の文字コード情報があるか否かを判定する。読み出されていない禁則文字の文字コード情報がある場合（ステップＳ１４０３でＹＥＳ）、ステップＳ１４０４に進む。一方、読み出されていない禁則文字の文字コード情報がない場合（ステップＳ１４０４でＮＯ）、ステップＳ１４１０に進む。
【００６７】
ステップＳ１４０４で、読み出された文字コード情報に対応する最小ストローク数ｋがカウンタ１１０４ｂにセットされる。ステップＳ１４０５で、カウンタ１１０４ｂにセットされた値ｋが読み出された文字コード情報に対応する最大ストローク数よりも大きい否かを判定する。カウンタ１１０４ｂにセットされた値ｋが読み出された文字コード情報に対応する最大ストローク数よりも大きい場合（ステップＳ１４０５でＹＥＳ）、ステップＳ１４０１に戻る。一方、カウンタ１１０４ｂにセットされた値ｋが読み出された文字コード情報に対応する最大ストローク数よりも小さい場合（ステップＳ１４０５でＮＯ）、ステップＳ１４０６に進む。
【００６８】
ステップＳ１４０６で、カウンタ１１０４ｂにセットされた値ｋがカウンタ１１０４ａにセットされた値ｊよりも大きい否かを判定する。カウンタ１１０４ｂにセットされた値ｋがカウンタ１１０４ａにセットされた値ｊよりも大きい場合（ステップＳ１４０６でＹＥＳ）、ステップＳ１４０１に戻る。一方、カウンタ１１０４ｂにセットされた値ｋがカウンタ１１０４ａにセットされた値ｊよりも小さい場合（ステップＳ１４０６でＮＯ）、ステップＳ１４０７に進む。
【００６９】
ステップＳ１４０７で、送られてきたストロークに対し、ｊ−ｋ＋１番目の文字ストロークからｊ番目までの文字ストロークによって禁則文字が構成されるものとして、認識部１１０１に送り、禁則文字の文字認識処理を行う。
尚、禁則文字が構成されるものとした複数の文字ストロークを認識部１１０１に送る際、文字枠のサイズ情報も合わせて送る。このようにすることで、例えば、「。」の禁則文字のように「Ｏ」や「ｏ」等の類似する文字が存在して、その禁則文字「。」の文字ストロークのみでは詳細に禁則文字を判別できない場合でも、その文字枠のサイズ情報によって与えられる文字枠の位置と文字ストロークの位置の相対的な位置によって、類似文字間の識別の精度を向上させることができる。
【００７０】
ステップＳ１４０８で、認識部１１０１から得られる文字認識結果は、図１６に示すような構成でバッファメモリ１１０２ａに保存格納される。
図１６は実施の形態２のバッファメモリ１１０２ａに格納される文字認識結果の構成を示す図である。
図１６の「文字コード」欄は、図１５に示される同文字種の文字コード情報が記載されている。「使用ストローク数」欄には、記載されている数値をｎとすると、最初のｎ本、あるいは最後のｎ本の文字ストロークを用いて認識処理した結果が「認識結果コード」欄と「認識結果スコア」欄に記載される。「認識スコア」欄の数値は、認識結果の信頼度を示す数値であり、数値が大きいほど認識結果の信頼性が高いことを表している。また、「認識結果コード」欄には、認識された文字コード情報が格納される。更に、図１５に示されるように「最小ストローク数」と「最大ストローク数」が異なる場合の文字コード情報に対しては、その「最小ストローク数」と「最大ストローク数」間の各ストローク数毎において実行された文字認識の認識結果が格納されることになる（例えば、図１５の文字コード情報」（０ｘ２１５７）等である）。
【００７１】
ステップＳ１４０９で、カウンタ１１０４ａの値ｋを＋１インクリメントする。
以上の処理を、禁則文字情報テーブル１１０５に格納されているすべての文字コード情報について実行すると、ステップＳ１４１０に進む。
ステップＳ１４１０で、文字枠に記入された文字の中に禁則文字が存在しているか否かを判定する。文字枠に記入された文字の中に禁則文字が存在する場合（ステップＳ１４１０でＹＥＳ）、ステップＳ１４０３に進む。一方、文字枠に記入された文字の中に禁則文字が存在しない場合（ステップＳ１４１０でＮＯ）、ステップＳ１４１１に進む。
【００７２】
尚、禁則文字が存在しているか否かの判定方法は、例えば、図１６の認識結果の「文字コード」欄と「認識結果コード」欄に格納されている文字コード情報が等しく、かつ「認識結果スコア」欄が設定された所定の閾値以上である場合に、特定文字が存在するものとする。また、閾値の値は予め実験システム等を用いて、認識処理における認識スコアと正解率の関係を用いて統計的に算出される。
【００７３】
例えば、図１６に示される認識結果によれば、上記の条件に該当するのは「。」であり、文字枠に記入された文字には、「。」が他の文字と共に書かれていたことになる。
ステップＳ１４１３で、文字枠に記入された文字によって構成されるすべての文字ストロークの中から、禁則文字の文字ストロークとして書かれたものを除き（図１２の例では、最後の文字ストロークを取り除く）残りの文字ストロークを１文字として認識部１１０１にて、文字認識処理を行う。この際、文字枠に禁則文字のみが記入されていた場合には、残りの文字ストロークは無いので認識処理させる必要性は当然ない。
【００７４】
ステップＳ１４１４で、得られた文字の認識結果を最初に結果出力部１１０２に送り、ステップＳ１４１５で、続いて得られた禁則文字を送る。
一方、ステップＳ１４１１で、文字枠に記入された文字を構成するすべての文字ストロークを認識部１１０１にて、文字認識処理を行う。ステップＳ１４１２で、その認識結果を結果出力部１１０２に送る。
【００７５】
以上の処理をすべての文字枠に対して行うことで処理が完了する。
図１２に示される記入例の場合、ステップＳ１４１０より、ステップＳ１４１３へ進むのは、文字枠位置番号５の文字枠であり、記入されている文字からは、「。」が禁則文字、その他の文字として「す」が得られる。そして、図１２に示される手書きの「サンプルです。」は、図１７に示すような認識結果として、表示部２０６に表示される。
【００７６】
尚、図１４のフローチャートに示される文字抽出部１１０４の処理動作手順は、これに限らない。最終的に、禁則文字に使われている文字ストローク数とその文字コードが判断できれば、いかなる処理手順で実行することができる。また、実施の形態２では、禁則文字の例として行頭に記入されることがないない禁則文字の場合の処理について説明したが、行末に記入されることがない禁則文字であっても良い。また、所定の位置の文字枠に依存した禁則文字が存在するのであれば、どの場所においても同様の処理手順によって、処理を実行することができることは明らかである。
【００７７】
更に、禁則文字情報テーブル１１０５の内容は、図１５に示される内容に限定されない。例えば、ユーザが数字等の追加の変更を行えるような構成にすることも容易に可能である。また、ＧＵＩ等のインタフェース画面を表示部２０６に表示して、禁則文字情報テーブル１１０５内の各欄を設定する構成にすることもできる。
【００７８】
以上説明したように、実施の形態２によれば、文字入力板２０３ａに構成される行末の文字枠に、禁則文字と文字の識別処理を行うので、行末の文字枠に禁則文字と文字の文字群が記入された場合でも、それぞれを認識しその認識結果を出力することができる。また、ユーザは、１つの文字枠に記入できる文字数が１文字であるという絶対的な制限を考慮することなく、１つの行末の文字枠に禁則文字と文字が組み合わさる複数の文字群を記入することが可能となる。その結果、文字を記入する操作が容易になる。
【００７９】
また、行頭に記入されることがない禁則文字を行末の文字と共に記入するような一般的な日本文章書式においても、文字枠を有する文字入力板２０３ａを使用することが可能であり、原稿用紙書式のような文字入力板の実現が可能となる。更に、行末等の特定の文字枠のみに処理が成されるので、処理負荷も軽減され、実用的となる。
【００８０】
＜実施の形態３＞
実施の形態１では特定文字情報テーブルに、その特定文字の文字コードと画数許容範囲の欄を設けることにより、１つの文字枠内に記入された特定文字と文字の識別を実現し、１つの文字枠内に記入された特定文字と文字の文字認識を可能とした。また、実施の形態２では禁則文字情報テーブルに、その禁則文字の文字コードと画数許容範囲の欄を設けることにより、１つの文字枠内に記入された禁則文字と文字の識別を実現し、１つの文字枠内に記入された禁則文字と文字の文字認識を可能とした。
【００８１】
実施の形態３では、特に、１つの文字枠内に記入された禁則文字と文字の文字認識の方法として、１つの文字を構成する複数の文字ストロークをいくつかの部分パターンに分類し、その分類パターンの組み合わせで文字認識を行う部分パターン認識処理を用いて文字認識を行う。
尚、実施の形態３のオンライン手書き文字認識装置の概略構成は、実施の形態１の図１と同様の構成を有するものとし、その詳細な説明は省略する。また、文字入力板の構成も実施の形態１と同様の構成を有するものとし、その詳細な説明は省略する。
【００８２】
実施の形態３で実行される処理の機能構成について、図１８を用いて説明する。
尚、ＣＰＵ２００の制御によって、ＲＯＭ２０１に格納された実施の形態３で説明される処理を実行するための制御プログラムをＲＡＭ２０２に読み込むことで、その処理が実行される。
【００８３】
図１８は実施の形態３のオンライン文字認識装置の機能構成を示すブロック図である。
以下、各機能構成と、各機能によって実行される処理について説明する。
まず、文字入力部１８００（ＣＰＵ２００、座標入力部２０３、文字入力板２０３ａ、入力ペン２０４、表示部２０６に対応する）より入力された各文字枠に記入される複数の文字ストロークは、文字ストローク記憶部１８０３に記憶される。この文字ストロークは、座標入力部２０３から送られるペンダウン（入力ペン２０４の入力開始を示す）信号からペンアップ（入力ペン２０４の入力終了を示す）信号までの間に送られた複数の座標群から成っている。そして、文字ストローク記憶部１８０３に格納されている複数の文字ストロークを用いて、文字枠位置検出部１８０６では、入力された文字ストロークが、文字入力板２０３ａのどの文字枠に記入されたかを検出する。
【００８４】
尚、この文字枠位置検出方法は、文字ストロークの始点座標が含まれる文字枠位置としてもよく、また、文字枠をはずれて記入された場合を想定して、文字ストローク全体の重心座標が含まれる文字枠としてもよい。いずれの場合も文字枠を構成する矩形の頂点座標が、装置内に記憶されていれば検出可能である。
部分パターン認識部１８０１では、複数の文字ストロークからなる文字に関し、その一部を構成するいくつかの文字ストロークの部分パターンに分類し、この部分パターンの組み合わせによって認識結果を得る。一般に、部分パターン認識では外部メモリ２０８、あるいはＲＯＭ２０１に部分パターン辞書と呼ばれる文字の一部を構成する文字ストロークの部分パターンコードと文字を構成するための部分パターンコード集合と、文字がどの部分パターンから構成されているかを示す構成辞書を所有している。
【００８５】
禁則文字情報テーブル１８０５には、禁則文字の文字コードやその他の付加情報が格納されており、外部メモリ２０８にファイルとして存在している。このファイルの内容は、変更可能であり、ファイルの読込／書込が許可されている。
尚、禁則文字とは、実施の形態１で説明した特定文字の中で、特に、行頭あるいは行末に文法上記入することがない句読点等の文字（以下、禁則文字と呼ぶ）のことである。また、禁則文字情報テーブル１８０５の構成は図１５に示される禁則情報テーブルと同様の構成であるとする。
【００８６】
認識結果制御部１８０４は、部分パターン認識部１８０１より得られる認識結果を考慮し、禁則文字情報テーブル１８０５と照らし合わせて、結果出力部１８０２に送る認識結果文字の個数を制御する。また、得られた認識結果は結果出力部１１０２のバッファメモリ１１０２ａに転送される。転送された認識結果は、認識結果として適当であると判断された複数の文字コードと、文字コードの付加情報として認識処理にて生成された演算値が認識候補として含まれている。結果出力部１８０２は、第一位の認識候補の文字コードが表す文字フォントを文字認識装置の表示部２０６に表示する。
【００８７】
尚、文字フォントの表示はユーザが筆跡入力した文字枠に表示することが可能で、その際には、入力された文字筆跡を消去して表示すれば良い。また、第一位の認識候補結果に限らず、下位の認識候補を表示する構成にしても良い。
次に、実施の形態２と同様に、文字入力板２０３ａの行末の文字枠に行頭にされることがない禁則文字を含んで文字が記入された場合、例えば、図１２に示される文字入力板の文字枠位置番号５の行末文字枠に「す。」が記入された場合に実施の形態３で実行される動作手順を図１９のフローチャートを用いて詳細に説明する。
【００８８】
図１９は実施の形態３の処理フローを示すフローチャートである。
尚、ステップＳ１９０３、ステップＳ１９０４で条件に合わなかった場合は、ステップＳ１９０２における処理が不適であり、行末には１文字の筆跡しか存在していなかったと判断されるため、ステップＳ１９０５へと進む。ここで、ステップＳ１９００〜ステップＳ１９０２、ステップＳ１９０６は部分パターン認識部１８０１で処理し、ステップＳ１９０３〜１９０５、ステップＳ１９０７は認識結果制御部１８０４で処理する。
【００８９】
ステップＳ１９００で、読み出された文字ストロークを用いて複数の部分パターンを抽出する。この抽出方法は、部分パターン辞書に収められている標準的な文字ストロークの部分パターンの書き方と文字枠に記入された文字の文字ストロークとの間で、ユークリッド距離比較演算する。そして、標準的な文字ストロークの部分パターン毎に演算値が算出され、演算値が少ない（標準的の文字の文字ストロークの位置と文字枠に記入された文字の文字ストロークの位置の相対的な位置の距離が短い）程、該当する部分パターンが記入された文字に含まれている可能性が高いと判断する。まず、１回目の処理によって、第一の部分パターン候補群が得られる。また、第一の部分パターン候補群それぞれは、文字の一部である。更に、第１の部分パターンに用いられた文字ストロークを除いた残りの文字ストロークを用いて、再度、上述の処理によって部分パターンを抽出し、繰り返し処理することで第２、第３、…、第ｎ（ｎは正の整数）の部分パターン候補群の探索を行う。
【００９０】
ステップＳ１９０１で、記入された文字の文字枠の位置が行末であるか否かを判定する。行末でない場合（ステップＳ１９０１でＮＯ）、ステップＳ１９０６に進む。一方、行末である場合（ステップＳ１９０１でＹＥＳ）、ステップＳ１９０２に進む。
ステップＳ１９０６で、抽出した第１〜第ｎまでの部分パターンすべてが構成パターンとなるような文字を探索を構成辞書を用いて行い、探索によって得られる結果を文字認識結果として文字を作成する。ステップＳ１９０７で、文字認識結果を結果出力部１８０２へ送る。
【００９１】
一方、ステップＳ１９０２では、第１〜第ｎの部分パターンすべてを用い、それぞれの部分パターンが重複しないようにして部分パターンを組み合わせ、２文字を作成する。
尚、この組み合わせ方法は、入力された文字ストロークの順番を考慮して、連続した部分パターンから組み合わせるように作成する。例えば、３つの部分パターンが抽出されたとすると、（第１の部分パターン＋第２の部分パターン）から成る文字と（第３の部分パターン）からなる文字に分け、（第１の部分パターン＋第３の部分パターン）から成る文字と（第２の部分パターン）から成る文字の組み合わせは作成しな。また、この２文字の組み合わせが複数できる場合は、各２文字の組み合わせ認識スコア（すなわち、構成する部分パターンの距離比較演算値）の合計が最小となる組を選択する。
【００９２】
ステップＳ１９０３で、この２文字のそれぞれの認識スコアが予め定められた所定の閾値以上であるか否かを判定する。所定の閾値でない場合（ステップＳ１９０３でＮＯ）、ステップＳ１９０６に進む。一方、所定の閾値である場合（ステップＳ１９０３でＹＥＳ）、ステップＳ１９０４に進む。
ステップＳ１９０４で、２文字のうちいずれかが、禁則文字情報テーブル１８０５に格納されている禁則文字の文字コード情報であるか否かを判定する。禁則文字の文字コード情報がない場合（ステップＳ１９０４でＮＯ）、ステップＳ１９０６に進む。一方、禁則文字の文字コード情報がある場合（ステップＳ１９０４でＹＥＳ）、ステップＳ１９０５に進む。
【００９３】
ステップＳ１９０５で、認識結果として得られた２文字を結果出力部１８０２へ送る。
尚、実施の形態３では、実施の形態２と同様に、行末の文字枠に記入された禁則文字と文字の識別における処理について説明したが、これに限らない。例えば、実施の形態１のように、特定文字の文字コードをもつ特定文字情報テーブルを用意し、すべての文字枠について部分パターン認識による特定文字抽出も行えることは明らかである。
【００９４】
以上説明したように、実施の形態３によれば、文字認識の認識方法として、文字を構成する文字ストロークの一部の部分パターンを組み合わせて文字認識を行うパターン認識処理を用いることで、標準文字を構成する文字ストロークの一部の部分パターン群を外部メモリ２０８に記憶させるだけで、文字認識を行うことができる。その結果、標準文字を構成する各文字の文字ストロークをすべて外部メモリ２０８に記憶させる必要がなくなるため、外部メモリ２０８の記憶容量を節約することができる。
【００９５】
尚、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００９６】
この場合、記憶媒体から読出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００９７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００９８】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９９】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図２０のメモリマップ例に示す各モジュールを記憶媒体に格納することになる。
すなわち、少なくとも「記憶モジュール」、「判定モジュール」、「抽出モジュール」および「認識モジュール」の各モジュールのプログラムコードを記憶媒体に格納すればよい。
【０１００】
尚、「記憶モジュール」は、少なくとも１つ以上のパターンを記憶媒体に記憶する。「判定モジュール」は、文字枠に入力されたパターンの中に、記憶媒体に記憶されているパターンが含まれているか否かを判定する。「抽出モジュール」は、記憶媒体に記憶されているパターンが含まれていると判定された場合、該パターンを抽出する。「認識モジュール」は、文字枠に入力されたパターンより、抽出したパターンを除外して得られるパターンから文字を認識する。
【０１０１】
【発明の効果】
以上の説明からも明らかなように、本発明によれば、複数の文字枠からなる文字入力板の文字枠に複数の文字を記入しても、これら複数の文字をそれぞれ認識することができる文字認識装置及びその方法を提供できる。
また、複数の文字枠からなる文字入力板の文字枠に１文字を記入する制限をなくし、文字を入力する操作の操作性を向上することができる文字認識装置及びその方法を提供できる。
【０１０２】
更に、既存の文字入力板のＧＵＩ部分は変更することなく上述の効果を得ることができるので、特殊な文字入力板を別途用意する必要性がない。
【図面の簡単な説明】
【図１】実施の形態１のオンライン手書き文字認識装置の構成を示すブロック図である。
【図２】実施の形態１のオンライン手書き文字認識装置の機能構成を示すブロック図である。
【図３】実施の形態１のオンライン手書き文字認識装置の文字入力板を示す図である。
【図４】実施の形態１の文字抽出部１０４が起動されるまでの処理フロー示すフローチャートである。
【図５】実施の形態１の文字抽出部１０４で実行される処理フローを示すフローチャートである。
【図６】実施の形態１の特殊認識処理の処理フローを示すフローチャートである。
【図７】実施の形態１の結果出力処理の処理フローを示すフローチャートである。
【図８】実施の形態１の特定文字情報テーブル１０５の構成を示す図である。
【図９】実施の形態１のバッファメモリ１０２ａに格納される文字認識結果の構成を示す図である。
【図１０】実施の形態１の図３に示される手書き文字の認識処理結果を示す図である。
【図１１】実施の形態２のオンライン手書き文字認識装置の機能構成を示すブロック図である。
【図１２】実施の形態２のオンライン手書き文字認識装置の文字入力板を示す図である。
【図１３】実施の形態２の文字抽出部１１０４が起動されるまでの処理フロー示すフローチャートである。
【図１４】実施の形態２の文字抽出部１１０４で実行される処理フローを示すフローチャートである。
【図１５】実施の形態２の禁則文字情報テーブル１１０５の構成を示す図である。
【図１６】実施の形態２のバッファメモリ１１０２ａに格納される文字認識結果の構成を示す図である。
【図１７】実施の形態２の図１２に示される手書き文字の認識処理結果を示す図である。
【図１８】実施の形態３のオンライン手書き文字認識装置の機能構成を示すブロック図である。
【図１９】実施の形態３のの処理フローを示すフローチャートである。
【図２０】本発明で実行される処理フローのプログラムを記憶させたＦＤのメモリマップの構造を示す図である。
【符号の説明】
２００  ＣＰＵ
２０１  ＲＯＭ
２０２  ＲＡＭ
２０３  座標入力部
２０３ａ  文字入力板
２０４  入力ペン
２０５  表示コントローラ
２０６  表示部
２０７  ＤＣ
２０８  外部メモリ
【図１】
0003780023.tif 000002
【図２】
0003780023.tif 000003
【図３】
0003780023.tif 000004
【図４】
0003780023.tif 000005
【図５】
0003780023.tif 000006
【図６】
0003780023.tif 000007
【図７】
0003780023.tif 000008
【図８】
0003780023.tif 000009
【図９】
0003780023.tif 000010
【図１０】
0003780023.tif 000011
【図１１】
0003780023.tif 000012
【図１２】
0003780023.tif 000013
【図１３】
0003780023.tif 000014
【図１４】
0003780023.tif 000015
【図１５】
0003780023.tif 000016
【図１６】
0003780023.tif 000017
【図１７】
0003780023.tif 000018
【図１８】
0003780023.tif 000019
【図１９】
0003780023.tif 000020
【図２０】
0003780023.tif 000021