(57)【特許請求の範囲】
【請求項１】
座標入力装置上でペンが当該座標入力装置に触れてから離れるまでの間に当該座標入力装置により検出されるペン先の座標系列で表現されるストロークの列をもとに文字認識を行い、表示装置上に認識結果を表示するオンライン文字認識装置において、
複数の認識可能文字の各々について、当該文字を構成するストロークの形状情報、及びストローク間の構造関係が記述された辞書情報を登録した文字構造辞書と、
前記複数の認識可能文字のうちの続けて筆記される各２文字の組み合わせについて、当該２文字間の構造関係が記述された辞書情報を登録した文字間構造辞書と、
前記座標入力装置により検出されるストロークを逐次取り込む筆跡情報取得手段と、
前記筆跡情報取得手段によりストロークが取り込まれる毎に、当該ストロークを含む認識すべき既取り込みストローク列に対する認識候補となり得る少なくとも１つの認識候補文字列を生成する認識候補文字列生成手段と、
前記少なくとも１つの認識候補文字列毎に、当該認識候補文字列を構成する各候補文字についての前記文字構造辞書中の辞書情報に基づいて前記既取り込みストローク列を前記各候補文字と照合し、当該認識候補文字列において連続する２候補文字間の夫々についての前記文字間構造辞書中の辞書情報に基づいて前記既取り込みストローク列を前記連続する２候補文字間の夫々と照合することによって、前記少なくとも１つの認識候補文字列のうち前記既取り込みストローク列に最も類似した認識文字列を推定し、前記認識文字列のうち前記少なくとも１つの認識候補文字列の全てについて先頭から共通する文字列を認識確定文字列として、前記認識文字列のうち前記認識確定文字列を除外した残余文字列を認識未確定文字列として夫々出力する入力文字列推定手段と、
少なくとも前記認識確定文字列を表示する認識結果表示手段と、
を具備することを特徴とするオンライン文字認識装置。
【請求項２】
前記座標入力装置の前記ペンで文字を筆記するための文字筆記領域が前記表示装置の筆跡表示領域に重ねて配置され、
前記文字筆記領域に前記ストロークが筆記される度に、この最新のストロークを含め最新の所定のＮ本（但し、Ｎは整数）のストロークを前記筆跡表示領域に表示することを特徴とする請求項１記載のオンライン文字認識装置。
【請求項３】
前記座標入力装置上からペンが離れた後、前記ストロークの筆記以外のペン操作を検出する検出手段を具備し、
この検出手段の検出結果に応じて、前記筆跡表示領域に表示されているストロークの表示を消去することを特徴とする請求項２記載のオンライン文字認識装置。
【請求項４】
前記筆跡表示領域に前記予め定められた数のストロークを表示する際には、ストロークの入力された順番に基づいて、各ストロークの色と太さと該ストロークを表す線の種類とのうちのいずれかを違えて表示することを特徴とする請求項２記載のオンライン文字認識装置。
【請求項５】
前記認識結果表示手段は、さらに前記認識未確定文字列も表示することを特徴とする請求項１記載のオンライン文字認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、座標入力装置を介して手書き入力される文字列筆跡（ストローク列）情報から、随時自動的に文字を切り出して認識し、結果を表示するオンライン文字認識装置に係り、特に文字の連続筆記入力に好適なオンライン文字認識装置に関する。
【背景技術】
【０００２】
従来、座標入力タブレット等の座標入力装置を介して手書き入力される文字列筆跡情報から、自動的に文字を切り出して認識し、結果を表示するオンライン文字認識装置では、次の４つの認識技術（認識手法）、即ち
（１）複数の文字枠が用意されており、１つの文字枠に１文字が順に書かれていくことで、文字を切出して認識する技術
（２）座標入力タブレットからペンが一定時間以上離れたことを検知して、文字の終りと判断して文字を切り出して認識する技術
（３）認識実行ボタン等で１文字筆記終了が明示的に指示されることにより文字を切出して認識する技術
（４）１文字を特殊な一筆書きで定義し、ストロークが入力されてペンがタブレットから離れたことを検知して１文字入力と判定し、文字を切り出して認識する技術
のいずれかが適用されるのが一般的である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記した従来の認識技術、例えば（１）では、ユーザは文字筆記時に文字枠の大きさや位置を意識して入力せねばならず、自然な入力ができないという問題点があった。また、小型情報機器への搭載を考えた場合、十分な大きさの文字筆記領域が確保できないため、複数の文字枠を用意すると、１文字当たりの筆記領域の大きさが小さくなり、ユーザにとって筆記しづらいものとなるという問題点もあった。
【０００４】
一方、従来の認識技術（２），（３）では、文字枠を複数用意する必要はないため、１文字当たりの筆記領域を大きくとることが可能となり、（１）の問題を回避することが可能である。しかし、（２）では、連続して複数の文字を入力したいときに、１文字筆記毎に、タブレットからペンを一定時間以上離さねばらない。また、（３）では、１文字入力毎に認識実行ボタンを押すという、文字の筆記とは本来関係のない操作が、１文字筆記毎に必要となる。このため、（２），（３）の認識技術は文字列のスムーズな入力が困難であるという問題点があった。
【０００５】
また、従来の認識技術（４）では、上記した（１），（２），（３）における問題点を回避することが可能となるものの、ユーザに対して各文字の一筆書きを予め覚えておくことを強いる。このため、特に認識対象となる文字が多数存在する場合には、ユーザにとって大変な苦痛となる。
【０００６】
本発明は上記事情を考慮してなされたものでその目的は、ユーザが文字の区切りを意識することなく、ただ文字を続けて書いていくだけであっても、自動的に文字列を認識できるようにすることにある。  
本発明の他の目的は、文字の重ね書き入力が行えるようにすることにある。
【課題を解決するための手段】
【０００７】
本発明は、座標入力装置上でペンが当該座標入力装置に触れてから離れるまでの間に当該座標入力装置により検出されるペン先の座標系列で表現されるストロークの列をもとに文字認識を行い、表示装置上に認識結果を表示するオンライン文字認識装置であって、前記ストロークが検出される度に、それまでに検出されたストロークの形状および続けて筆記される各２文字の組み合わせについて、当該２文字間のストロークの位置関係に基づき最適な文字列を求めて、該文字列を前記表示装置上に表示することを特徴とする。本発明によれば、ユーザが文字の区切りを意識することなく、座標入力装置上で文字を続けて書いていっても、最も確からしい文字列（認識確定文字列）を推定して表示することが可能となる。ここでは、文字間の各文字を構成するストロークの位置関係も考慮されているため、文字の重ね書き入力も可能となる。よって、小さな筆記スペースしか用意できない小型情報機器等においても、快適な手書き文字入力手段を提供することが可能となる。
【０００８】
また、本発明は、座標入力装置上でペンが当該座標入力装置に触れてから離れるまでの間に当該座標入力装置により検出されるペン先の座標系列で表現されるストロークの列をもとに文字認識を行い、表示装置上に認識結果を表示するオンライン文字認識装置であって、前記座標入力装置は、前記ペンで文字を筆記するための１文字分の文字筆記領域を有し、前記筆記領域に筆記された前記ストロークが検出される度に、それまでに検出されたストロークの形状および重ねて筆記される各２文字の組み合わせについて、当該２文字間のストロークの位置関係に基づき最適な文字列を求めて、該文字列を前記表示装置上に表示することを特徴とする。本発明によれば、ユーザが文字の区切りを意識することなく、座標入力装置上で文字を重ねて書いていっても、最も確からしい文字列（認識確定文字列）を推定して表示することが可能となる。文字間の各文字を構成するストロークの位置関係も考慮されているため、文字の重ね書き入力が可能となる。よって、小さな筆記スペースしか用意できない小型情報機器等においても、快適な手書き文字入力手段を提供することが可能となる。
【０００９】
本発明に係るオンライン文字認識装置は、複数の認識可能文字の各々について、当該文字を構成するストロークの形状情報、及びストローク間の構造関係が記述された辞書情報を登録した文字構造辞書と、上記複数の認識可能文字のうちの続けて筆記される各２文字の組み合わせについて、当該２文字間の構造関係が記述された辞書情報を登録した文字間構造辞書と、座標入力装置上でペンが当該座標入力装置に触れてから離れるまでの間に当該座標入力装置により検出されるペン先の座標系列で表現されるストロークを逐次取り込む筆跡情報取得手段と、この筆跡情報取得手段によりストロークが取り込まれる毎に、当該ストロークを含む認識すべき既取り込みストローク列に対する認識候補となり得る認識候補文字列を生成する認識候補文字列生成手段と、この生成された認識候補文字列毎に、当該認識候補文字列を構成する各候補文字についての上記文字構造辞書中の辞書情報と連続する２候補文字間についての上記文字間構造辞書中の辞書情報とに基づいて、当該認識候補文字列に対応する文字列構造辞書を作成して、上記既取り込みのストローク列を当該認識候補文字列毎の文字列構造辞書とそれぞれ照合することにより、当該ストローク列中のいずれのストロークがいずれの候補文字を構成しているのかを決定する文字切出しを行う照合手段（文字列尤度計算手段）と、上記各認識候補文字列について先頭からの上記文字切出しの結果が共通している文字列部分を認識確定文字列として推定して出力する入力文字列推定手段と、この推定された認識確定文字列を表示する認識結果表示手段とを備えたことを特徴とする。
【００１０】
このような構成においては、ストローク（筆跡）が入力される都度、当該ストロークを最後のストロークとする認識対象ストローク列に対する認識候補文字列毎に、文字構造辞書中の対応する辞書情報と文字間構造辞書中の対応する辞書情報とを組み合わせた文字列構造辞書が生成されて、その認識候補文字列毎の文字列構造辞書が認識対象ストローク列（入力筆跡）とそれぞれ照合されるため、ユーザが文字の区切りを意識することなく、座標入力装置上で文字を続けて書いていっても、最も確からしい入力文字列（認識確定文字列）を推定して表示することが可能となる。ここでは、文字間の構造関係も考慮されているため、文字の重ね書きを前提とした文字間構造辞書を用意することで、文字の重ね書き入力も可能となる。よって、小さな筆記スペースしか用意できない小型情報機器等においても、快適な手書き文字入力手段を提供することが可能となる。
【００１１】
ここで、筆跡情報取得手段により取り込まれるストローク（入力ストローク）を格納するためのストロークバッファと、認識候補文字列生成手段により生成される認識候補文字列を格納するための認識候補バッファとを設けると共に、照合手段によるストローク列（入力ストローク列）と各認識候補文字列の文字列構造辞書との照合結果が当該認識候補文字列に対応付けて認識候補バッファ内に格納される構成とするならば、オンライン文字認識装置での処理を効率的に行うことが可能となる。
【００１２】
また、筆跡情報取得手段によりストロークバッファに入力ストロークを格納する際に、当該ストロークの特徴（例えば形状特徴）、及び当該ストロークと先行するストロークとの間の特徴（例えば構造特徴）を筆跡情報取得手段にて抽出し、認識候補文字列生成手段では、ストロークバッファ内のストローク列に対する認識候補文字列を、筆跡情報取得手段にて抽出された当該ストローク列を構成する各ストロークの特徴及び各ストローク間の特徴に基づいて生成するとよい。
【００１３】
また、上記照合手段での照合処理で、入力ストローク列が認識候補文字列として筆記された確からしさ（を表す例えば尤度）が計算される構成とすると共に、入力文字列推定手段が、次に述べる２つの手段、即ち上記認識確定文字列を推定して出力する認識確定文字列推定手段と、認識未確定文字列及び認識未確定ストローク列情報を推定して出力する認識未確定文字列及び認識未確定ストローク列情報推定手段とから構成され、更に認識結果表示手段では、認識確定文字列推定手段から出力される認識確定文字列に加えて、認識未確定文字列及び認識未確定ストローク列情報推定手段から出力される認識未確定文字列と認識未確定ストローク列情報とを表示する構成とするとよい。
【００１４】
このような構成においては、ユーザは、座標入力装置上で文字を重ね書きにより続けて筆記しても、１ストローク筆記する毎に、その時点における認識確定文字列と認識未確定文字列と認識未確定ストローク列情報とが表示されるため、自身の筆跡の認識処理結果を画面上で逐次確認することができ、快適な文字入力が可能となる。ここで、認識確定文字列と認識未確定文字列とが識別可能な表示属性を付加して表示するとよい。また、認識未確定ストローク列情報についても、認識未確定ストローク列の有無が識別可能なように表示するとよい。
【００１５】
また、上記認識結果表示手段により認識確定文字列が表示される毎に、上記ストロークバッファから当該認識確定文字列に対応する入力ストローク列を削除すると共に、上記認識候補バッファから当該認識確定文字列に対応する情報を取り除くバッファ更新手段を設けるならば、処理量を減らすことが可能となる。
【００１６】
また、認識候補バッファ内の全ての認識候補文字列について、ストロークバッファ内の入力ストローク列との照合がなされた後に、この照合で各認識候補文字列毎に求められた、入力ストローク列が当該認識候補文字列として筆記された確からしさ（尤度）を予め定められた確からしさ（尤度の閾値）と比較し、確からしさが低い認識候補文字列は、全て認識候補バッファから削除する構成とすることによってとも、処理量を減らすことが可能となる。
【００１７】
また、最後のストロークが入力された後、予め定められた一定時間以上の間、次のストローク入力がないことを検出する検出手段（ペン操作判定手段）と、この検出手段の検出結果に応じて上記認識未確定文字列を上記認識確定文字列として出力する認識文字列確定手段とを設けるならば、ユーザの文字入力の操作性を一層向上できる。
【００１８】
ここで、上記座標入力装置が上記表示装置の表示面に重ねて配置され、且つ当該座標入力装置の入力面には文字筆記領域と認識結果表示領域とが分かれて確保される構成とすると共に、この文字筆記領域にペンが触れたことを検出する検出手段（ペン操作判定手段）を設けるようにしてもよい。
【００１９】
この他に、座標入力装置の入力面に文字筆記領域と認識結果表示領域とを兼ねた共通の領域が確保される構成とすると共に、上記検出手段と認識文字列確定手段とに代えて、それぞれ、ペンの先端が上記共通領域の一定座標範囲内に一定時間以上存在する場合には、そのペン入力は認識結果表示のカーソル移動を目的としたジェスチャであり、それ以外の場合には文字筆記を目的とした入力であると判定する判定手段（ペン操作判定手段）と、この判定手段によりペン入力がジェスチャであると判定された場合に、上記認識未確定文字列を上記認識確定文字列として出力する認識文字列確定手段とを設けるようにしてもよい。
【００２０】
また、１文字後退削除を指示操作するための１文字後退削除指示手段と、この１文字後退削除指示手段により１文字後退削除が指示された場合、認識未確定ストローク列が存在する状態では、当該認識未確定ストローク列を削除し、認識未確定ストローク列が存在せず認識未確定文字列が存在する状態では、当該認識未確定文字列の最後尾を１文字後退削除すると共に残りの認識未確定文字列を認識確定文字列とし、認識未確定ストローク列及び認識未確定文字列が共に存在しない状態では、認識確定文字列を１文字後退削除する認識結果編集手段とを設けるとよい。
【００２１】
このような構成においては、文字の削除、文字の筆記操作をスムーズに行うことが可能となる。
【００２２】
また、今回推定された認識未確定文字列を、該認識未確定文字列を含む認識候補文字列の確からしさが予め定められた条件を満たすとき、あるいは、今回推定された前記認識未確定文字列を含む前記認識候補文字列の確からしさが、前回推定された前記認識未確定文字列を含む前記認識候補文字列の確からしさに基づく予め定められた条件を満たすとき、前回推定された前記認識未確定文字列に替えて今回推定された前記認識未確定文字列を表示するようにしてもよい。１ストローク入力される度に、その入力ストロークを含め、それまでに入力された入力ストロークに最適な認識結果を逐次表示することができるので、ユーザは、筆記後すぐに認識結果を確認することができ、効率のよい手書き文字入力が行える。
【００２３】
また、座標入力装置の前記ペンで文字を筆記するための文字筆記領域が表示装置の筆跡表示領域に重ねて配置され、文字筆記領域に前記ストロークが筆記される度に、この最新のストロークを含め最新の所定のＮ本（但し、Ｎは整数）のストロークを筆跡表示領域に表示することにより、入力された筆跡が適切に表示されるので、ユーザに快適な文字筆記環境を提供できる。
【００２４】
また、前記座標入力装置上からペンが離れた後、予め定められた一定時間以上の間、前記ペンが前記座標入力装置に触れないこと、あるいは、前記ストロークの筆記以外のペン操作を検出する検出手段を具備し、この検出手段の検出結果に応じて、前記筆跡表示領域に表示されているストロークの表示を消去するようにしてもよい。
【００２５】
また、筆跡表示領域に前記予め定められた数のストロークを表示する際には、各ストロークの色と太さと該ストロークを表す線の種類とのうちのいずれかを違えて表示するようにしてもよい。
【００２６】
上記各手段は、ハードウェア構成によっても実現できるが、当該手段として機能させるためのプログラムをコンピュータのＣＰＵが読み込み実行することによって実現することも可能である。この場合、本発明のオンライン文字認識装置を、携帯情報端末等の情報機器により容易に実現できる。
【００２７】
なお、以上のオンライン文字認識装置に係る本発明は、方法（オンライン文字認識方法）に係る発明としても成立する。  
また、本発明は、コンピュータに当該発明に相当する手順を実行させるための（或いはコンピュータを当該発明に相当する各手段として機能させるための、或いはコンピュータに当該発明に相当する機能を実現させるための）プログラムを記憶したコンピュータ読み取り可能な記憶媒体に係る発明としても成立し、更に当該プログラム自体に係る発明としても成立する。
【発明の効果】
【００２８】
以上詳述したように本発明によれば、ユーザが文字列を筆記する場合に、文字の区切りを意識する必要がなく、ただ文字を続けて書いていくだけであっても、文字間の構造関係も考慮した認識処理により自動的に文字列を認識でき、よってスムーズな文字の連続筆記入力が実現できる。
【００２９】
また本発明によれば、文字の重ね書き入力も可能となるため、小さな筆記領域しか用意できない携帯情報端末等の小型情報機器においても、快適な手書き文字入力環境を提供できる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施の形態につき図面を参照して説明する。
【００３１】
（オンライン文字認識装置の構成および動作）
図１は本発明の一実施形態に係わるオンライン文字認識装置を実現する情報機器のハードウェア構成を示す。  
図１の情報機器は、例えば携帯情報端末等の小型情報機器であり、ＣＰＵ１、ＲＯＭ２、ＲＡＭ３、タブレット（タブレット装置）４、ディスプレイ（ディスプレイ装置）５、データ読み込み装置６、記憶媒体７、及びインタフェース部（Ｉ／Ｆ）８，９，１０等から構成されている。
【００３２】
ＣＰＵ１は、図１の情報機器の中枢をなし、各種データ処理のための演算やシステム全体の制御を行う演算・制御手段である。  
ＲＯＭ２は基本ソフトウェア等が予め格納された不揮発性メモリ（記憶媒体）、ＲＡＭ３はＣＰＵ１の作業エリア等に利用される揮発性メモリである。  
タブレット４は筆跡データの入力が可能な座標入力装置、ディスプレイ５は各種情報を表示する液晶ディスプレイ等の表示装置である。
【００３３】
記憶媒体７は、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、光ディスク等のコンピュータ読み取り可能な記憶手段である。この記憶媒体７には、データ及びプログラムが格納されている。データ読み込み装置６は、記憶媒体７に格納されているデータやプログラムを読み込むことのできる、ハードディスクドライブ、フロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブ、光ディスクドライブ等のデータ読み込み手段である。
【００３４】
インタフェース部８、インタフェース部９及びインタフェース部１０は、それぞれ、タブレット４、ディスプレイ５及びデータ読み込み装置６のインタフェースをなす。
【００３５】
記憶媒体７には、上記プログラムとして、入力筆跡の文字認識を行うためのオンライン文字認識プログラムが予め格納されている。このオンライン文字認識プログラムは、装置の起動時にデータ読み込み装置６によって読み込まれてＲＡＭ３に格納される。ＣＰＵ１はＲＡＭ３に格納されたオンライン文字認識プログラムに従って入力筆跡の文字認識処理を行う。
【００３６】
なお、オンライン文字認識プログラムがＲＯＭ２に予め格納されているものであっても構わない。この場合、ＣＰＵ１は当該ＲＯＭ内のオンライン文字認識プログラムに従って入力筆跡の文字認識処理を行えばよい。また、装置の起動時に、ＲＯＭ２からＲＡＭ３にオンライン文字認識プログラムを転送し、このＲＡＭ３内のオンライン文字認識プログラムに従って入力筆跡の文字認識処理を行うようにしても構わない。また、オンライン文字認識プログラムが通信回線を介してダウンロードされるものであっても構わない。
【００３７】
タブレット４は例えば透明であり、ディスプレイ５の表示画面上に重ねて配置されている。タブレット４の入力面には文字筆記領域３０１（図５参照）が設けられている。この筆記領域にユーザが専用ペンＰを利用して文字を筆記すると、その筆跡データ（座標値の時系列情報）がタブレット装置４により検出され、インタフェース部８を通じてＣＰＵ１に転送される。
【００３８】
図２は図１の情報機器により実現されるオンライン文字認識装置の機能構成を示すブロック図である。  
このオンライン文字認識装置は、図１中のタブレット４に相当する手書き文字入力装置１０１と、筆跡情報取得手段１０２、認識手段１０３、認識結果表示手段１０４の各機能手段と、文字構造辞書１０６及び文字間構造辞書１０７の各辞書と、図１中のディスプレイ５に相当するディスプレイ１０５とから構成される。
【００３９】
筆跡情報取得手段１０２、認識手段１０３、認識結果表示手段１０４は、図１中のＣＰＵ１がＲＡＭ３に格納されたオンライン文字認識プログラムを読み込み、実行することにより実現される。文字認識処理の際、発生する（生成される）各種データは、例えばＲＡＭ３上に一時記憶されるようになっている。
【００４０】
文字構造辞書１０６及び文字間構造辞書１０７は、上記オンライン文字認識プログラムと共に例えば図１中の記憶媒体７に予め格納されており、当該プログラムがデータ読み込み装置６によって読み込まれてＲＡＭ３に格納される際に、このＲＡＭ３に格納される。なお、文字構造辞書１０６及び文字間構造辞書１０７をＲＯＭ２に予め格納しておくことも可能である。
【００４１】
手書き文字入力装置１０１は、例えばタブレットであり、ペンＰが当該タブレットに触れている間のペン先の位置を表す２次元座標データを一定時間間隔でサンプリングする。得られた座標データは筆跡情報取得手段１０２に送られる。
【００４２】
筆跡情報取得手段１０２は、ペンＰがタブレットに触れてから離れるまでの間の座標データ列、つまり筆跡の座標データ列をストロークと呼ぶひとまとまりのデータとして扱い、これをストロークデータとして取得する。筆跡情報取得手段１０２でストロークデータが取得されるたびに、それは認識手段１０３に送られる。
【００４３】
認識手段１０３は、ストロークデータが入力するたびに、それまでに入力されたストロークデータから、文字構造辞書１０６および文字間構造辞書１０７とを用いて、最適な文字列を認識する。
【００４４】
文字構造辞書１０６は、認識対象となる各文字の構造が表現されたデータ（文字構造辞書情報）、すなわち、各文字について、その文字を構成するストロークの形状やストローク間の位置関係（構造）などの特徴情報を登録した辞書である。
【００４５】
文字間構造辞書１０７は、文字構造辞書１０６に登録された複数の文字のうちの続けて筆記される各２文字の組み合わせについて、その２文字の間の構造関係が表現されたデータ（文字間辞書情報）を登録した辞書である。
【００４６】
タブレットには、連続する２文字が左右に並べて筆記される場合もあれば、重ねて筆記される場合（例えば、ペンで文字を筆記するための文字筆記領域が１文字分だけである場合）もある。前者の場合の文字間辞書情報とは、２文字が左右に並べて筆記される場合の一方の文字のストロークと他方の文字のストロークとの間の位置関係（構造）の特徴情報であり、後者の場合の文字間辞書情報とは、２文字が重ねて筆記される場合の一方の文字のストロークと他方の文字のストロークとの間の位置関係（構造）の特徴情報である。
【００４７】
認識手段１９３は、ストロークデータが入力するたびに、上記文字構造辞書１０６と文字間構造辞書１０７を用いて、それまでに入力されたストロークの形状およびストローク間の位置関係に基づき、最も確からしい、最適な文字列を求めるようになっている。
【００４８】
認識結果表示手段１０４は、認識手段１０３で求められた最適な文字列をディスプレイ１０５に出力する。  
なお、タブレットの文字筆記領域が、複数文字分の筆記領域が確保されているものと、１文字分の筆記領域のみしか確保されていないものもあるが、いずれの場合であっても本実施形態は適用可能である。両者の異なる点は、上記の文字間辞書情報のみである。
【００４９】
次に、図２に示したような構成のオンライン文字認識装置におけるオンライン文字認識処理の手順について、図３のフローチャートを参照して説明する。
【００５０】
ステップＳ１では、文字筆記領域内にストロークが１本筆記されると、そのストロークの座標データ列、即ちストロークデータが、筆跡情報取得手段１０２によって取り込まれて、認識手段１０３に送られる。
【００５１】
ステップＳ２では、認識手段１０３は、それまでに入力されたストロークデータから、文字構造辞書１０６および文字間構造辞書１０７とを用いて、最適な文字列を認識する。例えば、この認識処理により、それまでに入力されたストロークのうち確かにその文字字列が筆記されたと断定できる認識確定文字と、最もそれらしい文字（認識未確定文字）と、筆記途中の文字のストローク（認識未確定ストローク）とを推定することができる。
【００５２】
ステップＳ３では、認識結果表示手段１０４は、文字認識手段１０３で認識された最適な文字列（例えば、認識確定文字列と認識未確定文字列）をディスプレイ１０５に表示する。
【００５３】
以上のステップＳ１〜Ｓ３を、ストロークの入力が終了するまで、あるいは、それまでに入力された全ての入力ストロークが認識確定文字列として推定されるまで繰り返す（ステップＳ４）。これにより、ユーザが文字の区切りを意識することなく、手書き文字入力装置１０１にただ文字を続けて筆記していくだけで、図２のオンライン文字認識装置では、その筆跡を自動的に文字列として認識することができる。
【００５４】
図４は、図１の情報機器により実現されるオンライン文字認識装置の機能構成をさらに詳細に示すブロック図である。  
このオンライン文字認識装置は、図１中のタブレット４に相当するタブレット２０１と、筆跡情報取得手段２０２、認識候補文字列生成手段２０３、文字列尤度計算手段２０４、入力文字列推定手段２０５、バッファ更新手段２０６、及び認識結果表示手段２０７の各機能手段と、ストロークバッファ２０８、認識候補バッファ２０９及び認識結果バッファ２１０の各バッファと、文字構造辞書２１１及び文字間構造辞書２１２の各辞書と、図１中のディスプレイ５に相当するディスプレイ２１３とから構成される。
【００５５】
筆跡情報取得手段２０２、認識候補文字列生成手段２０３、文字列尤度計算手段２０４、入力文字列推定手段２０５、バッファ更新手段２０６、及び認識結果表示手段２０７は、図１中のＣＰＵ１がＲＡＭ３に格納されたオンライン文字認識プログラムを読み込み実行することにより実現される。
【００５６】
ストロークバッファ２０８、認識候補バッファ２０９及び認識結果バッファ２１０は、例えばＲＡＭ３上に確保される。
【００５７】
文字構造辞書２１１及び文字構造辞書２１２は、上記オンライン文字認識プログラムと共に例えば図１中の記憶媒体７に予め格納されており、当該プログラムがデータ読み込み装置６によって読み込まれてＲＡＭ３に格納される際に、このＲＡＭ３に格納される。なお、文字構造辞書２１１及び文字間構造辞書２１２をＲＯＭ２に予め格納しておくことも可能である。
【００５８】
図４の筆跡情報取得手段２０２は、図２の筆跡情報取得手段１０２に対応し、図４の認識候補文字列生成手段２０３と文字列尤度計算手段２０４と入力文字列推定手段２０５とバッファ更新手段２０６は、図３の認識手段１０３に対応し、図４の認識結果表示手段２０７は、図２の認識結果表示手段１０４に対応する。また、図４の文字構造辞書２１１は図２の文字構造辞書１０６に対応し、図４の文字間構造辞書２１２は、図２の文字間構造辞書１０７に対応する。
【００５９】
タブレット２０１は、ペンＰが当該タブレット２０１に触れている間のペン先の位置を表す２次元座標データを一定時間間隔でサンプリングする。得られた座標データは筆跡情報取得手段２０２に送られる。  
筆跡情報取得手段２０２は、ペンＰがタブレット２０１に触れてから離れるまでの間の座標データ列、つまり筆跡の座標データ列をストロークと呼ぶひとまとまりのデータとして扱い、ストロークバッファ２０８に格納する。
【００６０】
認識候補文字列生成手段２０３は、ストロークバッファ２０８内のストローク（ストロークデータ）の列に対する認識候補となる認識候補文字列群を生成し、認識候補バッファ２０９に格納する。  
文字列尤度計算手段２０４は、認識候補バッファ２０９内の各認識候補文字列についてその照合用辞書（文字列構造辞書）を文字構造辞書２１１と文字間構造辞書２１２とから作成し、それとストロークバッファ２０８中のストローク列との照合を行う。文字列尤度計算手段２０４は、認識候補文字列の各々について、ストローク列と認識候補文字列との照合結果として、当該ストローク列がその文字列である確からしさ（尤度）と、当該ストローク列中のどのストロークがどの文字に対応しているかを示す文字切り出し結果とを取得する。文字列尤度計算手段２０４は、取得した認識候補文字列毎の照合結果を当該認識候補文字列と対応付けて認識候補バッファ２０９に格納する。
【００６１】
入力文字列推定手段２０５は、認識候補バッファ２０９内の認識候補文字列とその照合結果から、認識確定文字列、認識未確定文字列、及び認識未確定ストローク列情報を求め、認識結果バッファ２１０に格納する。認識確定文字列とは、ストローク列（入力ストローク列）で構成される文字列のうち、この文字列が入力されたと断定できる文字列部分である。認識未確定文字列とは、入力ストローク列で構成される文字列のうち、断定はできないがこの文字列が入力されたと推測される文字列部分である。認識未確定ストローク列情報とは、１文字筆記途中のストロークと推測されるストロークが入力ストローク列中に存在するかどうかを示す情報である。
【００６２】
認識結果表示手段２０６は、入力文字列推定手段２０５によって推定された認識結果バッファ２１０内の推定入力文字列（認識確定文字列、認識未確定文字列、及び認識未確定ストローク列情報）をディスプレイ２１３に出力する。  
バッファ更新手段２０７は、認識結果バッファ２１０内の情報を基に、ストロークバッファ２０８と認識候補バッファ２０９とから認識確定文字列に対応する部分の情報を削除し内容を更新する。
【００６３】
図５は図１の情報機器の外観を示す。  
同図に示すように、図１の情報機器の主面、即ちディスプレイ５（２１３）の表示画面上に透明なタブレット４（２０１）が積層された面には、ユーザがペンＰでタブレット４（２０１）に文字を筆記するための文字筆記領域３０１と、この文字筆記領域３０１に筆記された筆跡を文字列として認識した結果と文字挿入位置を示すカーソルＣとを表示する認識結果表示領域３０２と、カーソル位置の直前の文字の削除を指示する１文字後退削除ボタン３０３とが確保されている。
【００６４】
図６は図４中のストロークバッファ２０８のデータ構造例を示す。  
ストロークバッファ２０８に格納されるストローク列の情報は、当該バッファ２０８内のストロークの数（ストローク数）を示すNSTRKとNSTRK個のストロークデータから構成される。第Iストロークデータ（I=1〜NSTRK）は、それを構成する（座標点の数を示す）座標点数NPOINT[I]と、NPOINT[I]個のx，y座標データからなる。ここで、第Iストロークデータの第J点（J=1〜NPOINT[I]）のx，y座標データは、x[I][J]，y[I][J]のように表される。
【００６５】
図７は認識候補バッファ２０９のデータ構造例を示す。  
認識候補バッファ２０９は、ストロークバッファ２０８内のストローク列に対する認識候補となる文字列と照合結果とを格納するのに用いられる。本実施形態において認識候補バッファ２０９に格納される情報（認識候補情報）は、候補（認識候補文字列）数を示すNCANDとNCAND個の候補（候補データ）とから構成される。
【００６６】
候補#I、即ち第I候補（I=1〜NCAND）のデータは文字切り出し結果を含む。この文字切り出し結果は、第I候補が認識棄却対象であるかどうかを示す棄却フラグCNAD_REJFLAG[I]と、その候補を構成する文字列（認識候補文字列）の文字数CAND_NCODE[I]と、CAND_NCODE[I]個の文字（第J文字（J=1〜CAND_NCODE[I]））の各々の文字構造辞書２１１中のエントリ番号CAND_REFID[I][J]と、その候補文字列の総ストローク数CAND_NSTRK[I]と、その候補文字列の最終文字に対応するストロークバッファ２０８内の入力ストロークの本数CAND_STRKCTR[I]と、CAND_NCODE[I]個の文字（第J文字）の各々に対応するストロークバッファ２０８内の入力ストローク列の開始ストローク番号CAND_BS[I][J]及び終了ストローク番号CAND_ES[I][J]とからなる。
【００６７】
第I候補（I=1〜NCAND）のデータは、上記した文字切り出し結果と、CAND_NCODE[I]個の文字（第J文字）の文字構造辞書２１１と対応する入力ストローク列を照合した結果の尤度の対数値（対数尤度）CAND_L1[I][J]と、第J文字と第J+1文字の間の文字間構造辞書２１２と対応する入力ストローク間構造特徴（第J文字の最後のストロークと次の第J+1文字の最初のストロークとの間の構造特徴）を照合した結果の対数尤度CAND_L2[I][J]と、対数尤度の総和、即ち第I候補の文字列と入力ストローク列全体とを照合した結果の対数尤度CAND_L[I]とから構成される。
【００６８】
図７の例では、認識候補バッファ２０９内の候補（認識候補文字列）は第１候補（候補#1）乃至第１０候補（候補#10）の１０個存在する。第１候補については、棄却フラグは０にセットされており、認識候補文字列は文字構造辞書２１１の第１エントリ「あ」と第２エントリ「い」とからなる２文字長の文字列「あい」である。この認識候補文字列の総ストローク数は５本である。ここでは、認識候補文字列「あい」の最後の文字「い」の第１ストロークまでが入力されて照合された結果が格納されている。認識候補文字列「あい」の第１文字「あ」に対応する入力ストロークは第１ストロークから第３ストロークまでの３本である。認識候補文字列「あい」の第２文字「い」に対応する入力ストロークは第４ストロークの１本だけである。つまり「い」の左側の１画までが入力されている。
【００６９】
認識候補文字列「あい」の第１文字「あ」の文字構造辞書２１１と、第１ストロークから第３ストロークまでの入力ストローク列とを照合した結果の尤度の対数値（対数尤度）は-0.70である。「あ」と「い」の間の文字間構造辞書２１２と、第３ストローク（「あ」の最後のストローク）と第４ストローク（「い」の最初のストローク）とのストローク間構造との照合をした結果の尤度の対数値（文字間対数尤度）は-0.36である。「い」の文字構造辞書２１１中の先頭ストローク部分と、入力ストローク列の第４ストロークとを照合した結果の尤度の対数値（対数尤度）は-0.22である。「あ」の対数尤度、「あ」と「い」の文字間対数尤度、「い」の最初のストロークの対数尤度を足し合わせた全体の対数尤度が-1.28である。
【００７０】
図８は文字構造辞書２１１のデータ構造例を示す。  
文字構造辞書２１１は認識対象となる文字の構造が表現されたデータ（文字構造辞書情報）を登録した辞書である。この文字構造辞書２１１は、認識対象となる文字の数を示すNREFと、NREF個の文字各々の構造辞書からなる。
【００７１】
第I番目（I=1〜NREF）の文字の構造辞書（辞書#I）は、その文字をコード（例えばSHIFT-JISコード）で表したREF_CODE[I]と、その文字を構成する総ストローク数REF_NSTRK[I]と、REF_NSTRK[I]個のストローク（第Jストローク（J=1〜REF_NSTRK[I]））の特徴としての形状特徴の平均ベクトルs[I][J][1〜6]及び共分散ベクトルσ[I][J][1〜6]と、第J-1ストロークと第Jストロークとの間のストローク間構造特徴の平均ベクトルs2[I][J][1〜2]及び共分散ベクトルσ2[I][J][1〜2]とから構成される。ここでs[I][J][1〜6]はs[I][J][1]，s[I][J][2]，…s[I][J][6]からなる６次元ベクトルを表現するものとする。σ[I][J][1〜6]，s2[I][J][1〜2]、σ2[I][J][1〜2]についても同様のベクトル表現である。ストローク形状特徴とストローク間構造特徴については後述する。
【００７２】
図９は文字間構造辞書２１２のデータ構造例を示す。  
文字間構造辞書２１２は、文字構造辞書２１１に登録されたNREF個の文字（認識可能文字）のうちの続けて筆記される各２文字の組み合わせについて、その２文字の間の構造関係が表現されたデータ（文字間辞書情報）を登録した辞書である。図９では、１組の２文字について、その文字間の構造関係を表す文字間構造辞書情報のデータ構造を示してある。この文字間構造情報は、文字間構造特徴の平均ベクトルz[1〜2]と共分散ベクトルθ[1〜2]とから構成される。文字間構造特徴としては、前の文字の最終ストロークと後ろの文字の先頭ストロークとの間のストローク構造特徴を用いる。
【００７３】
次に、以上のように構成されたオンライン文字認識装置におけるオンライン文字認識処理の手順について、図１０乃至図２４のフローチャートを適宜参照して説明する。
【００７４】
まず、全体の処理を図１０のフローチャートに従って説明する。  
ステップ８０１は、オンライン文字認識装置内の各バッファを初期化するステップである。
【００７５】
ステップ８０２では、文字筆記領域３０１内にストロークが１本筆記されると、そのストロークの座標データ列、即ちストロークデータが、筆跡情報取得手段２０２によってストロークバッファ２０８に取り込まれ、当該ストロークデータの特徴抽出がなされる。
【００７６】
ステップ８０３では、ストロークバッファ２０８に取り込まれているストローク列に対する認識候補となり得る候補文字列（認識候補文字列）が認識候補文字列生成手段２０３によって生成されて認識候補バッファ２０９に格納される。
【００７７】
ステップ８０４では、ステップ８０３で生成された認識候補バッファ２０９内の認識候補文字列とステップ８０２で取り込まれたストローク列とが文字列尤度計算手段２０４によって照合され、その認識候補文字列としてストローク列が筆記された確からしさが計算される。
【００７８】
ステップ８０５では、ステップ８０４での各認識候補文字列との照合結果に基づき、入力ストローク列のうち確かにその認識候補文字列が筆記されたと断定できる認識確定文字列部分と、最もそれらしい文字列（認識未確定文字列）部分と、文字筆記途中のストローク列（認識未確定ストローク列）部分とが、入力文字列推定手段２０５によって推定される。
【００７９】
ステップ８０６では、ステップ８０５における推定結果が認識結果表示手段２０７によって認識結果表示領域３０２に表示される。  
ステップ８０７，８０８では、ストロークバッファ２０８と認識候補バッファ２０９とがバッファ更新手段２０６によって更新される。
【００８０】
以上のステップ８０２〜８０８を、全ての入力ストローク列が認識確定文字列として推定されるまで（認識候補バッファ２０９が空になるまで）繰り返す（ステップ８０９）。これにより、ユーザが文字の区切りを意識することなく、文字筆記領域３０１にただ文字を続けて筆記していくだけで、図４のオンライン文字認識装置では、その筆跡を自動的に文字列として認識することができる。
【００８１】
以下、図１０のフローチャート中の各ステップの処理内容を詳細に説明する。  
まず、ステップ８０１において、ストロークバッファ２０８及び認識候補バッファ２０９の初期化が行われる。ここでは、図６に示したデータ構造を持つストロークバッファ２０８内のストローク数NSTRKと、図７に示したデータ構造を持つ認識候補バッファ２０９内の認識候補文字列数NCANDとに、それぞれ“０”をセットすることで、両バッファ２０８，２０９の初期化が行われる。
【００８２】
次のステップ８０２は、（ディスプレイ５の表示画面上に重ねて配置された）タブレット２０１上に確保された文字筆記領域３０１にユーザによりペンＰでストロークが１本筆記される毎に実行される。筆記されたストロークのデータ（座標データ列）はタブレット２０１により取得される。ステップ８０２では、このタブレット２０１により取得されたストロークのデータが、筆跡情報取得手段２０２により取り込まれてストロークバッファ２０８に格納される。またステップ８０２では、ストロークバッファ２０８に格納されたストロークデータ（の示すストロークの形状）の特徴を抽出する処理が行われる。
【００８３】
この筆跡情報取得手段２０２によるステップ８０２の処理の詳細を、図１１のフローチャートを参照して説明する。  
まず、ステップ９０１において、図６のデータ構造のストロークバッファ２０８内のストローク数NSTRKが１インクリメントされる。
【００８４】
次のステップ９０２からステップ９０５では、ペンＰがタブレット２０１から離れるまでの間に当該タブレット２０１によって取得されるペン先のｘ座標及びｙ座標データが逐次ストロークバッファ２０８に取り込まれる。ここでは、第Iストロークの第J点のx座標、ｙ座標は、図６に示すストロークバッファ２０８内のそれぞれx[I][J]、y[I][J]にセットされる。  
ステップ９０６では、ペンＰがタブレット２０１から離れるまでの間に取り込まれた（１ストロークを構成する）座標点の数がNPOINT[I]にセットされる。
【００８５】
ステップ９０７では、ストロークバッファ２０８に取り込まれた最新のストローク、つまり第NSTRKストロークデータから、ストローク形状を表現するストローク形状特徴ベクトルu[1〜6]が抽出される。ここでu[1〜6]は、u[1]，u[2]，…u[6]からなる６次元のベクトルを表現するものとする。形状特徴としては、例えばストロークデータの全曲率関数を指数関数の指数部に持つ複素数値関数をフーリエ展開して得られるＰ形フーリエ記述子の２次までの低域成分を表現する６つの係数を用いるものとする。Ｐ形フーリエ記述子の算出手順については、文献「線図形の曲りを特徴としたオンライン手書き漢字認識」（電子情報通信学会論文誌 1990年4月 Vol.J73-D-II No.4 pp.519-525）に詳述されている方法を用いる。
【００８６】
入力されたストロークが第２ストローク以降である場合には、ステップ９０９において、第NSTRKストロークと１つ前に入力された第NSTRK-1ストロークとの間の構造関係を表現する２次元のストローク間構造特徴ベクトルu2[1〜2]が抽出される。構造特徴としては、例えば、第NTRK-1ストロークの終点から第NSTRKストロークの始点を結ぶベクトルのノルムを１に正規化したベクトルを用いる。  
以上が、ステップ８０２における詳細な処理手順である。
【００８７】
次に、ステップ８０３では、認識候補文字列生成手段２０３により、認識候補バッファ２０９内の認識候補文字列が更新される。ステップ８０３は、この時点でストロークバッファ２０８に格納されている入力ストローク列に対する認識候補となり得る文字列を生成する処理である。
【００８８】
このステップ８０３の処理の詳細を、図１２のフローチャートを参照して説明する。  
まず、ステップ１００２において、認識候補バッファ２０９中の現在の認識候補文字列数を示すNCANDに基づいて、認識候補文字列が存在するかしないかが判定される。
【００８９】
存在しない（NCAND=0の）場合には、ステップ１０１０に飛んで、図８に示したデータ構造の文字構造辞書２１１に登録されているNREF個の文字の各々をCAND_NCODE[I]（I=1〜NREF）が“１”の第I認識候補文字列（新認識候補文字列）として認識候補バッファ２０９に格納（生成）する処理がなされる。このステップ１０１０における詳細な処理手順を図１３のフローチャートに示す。
【００９０】
一方、認識候補バッファ２０９中に既に認識候補文字列が存在する（NCAND>0の）場合には、各第I認識候補文字列について以下の処理がなされる。  
まずステップ１００５において、今、筆記入力されたストロークが現在の第I認識候補文字列に続く次の新しい１文字の最初のストロークであるかどうかが、ストロークバッファ２０８内のストローク数NSTRKが第I認識候補文字列の総ストローク数CAND_NSTRK[I]を超えたか否かにより判定される。
【００９１】
新しい１文字の最初のストロークではないと判定された場合には、ステップ１００６において、第I認識候補文字列の最終文字を構成するストローク数を示すカウンタCAND_STRKCTR[I]を１だけ増加させる。
【００９２】
これに対し、新しい１文字の最初のストロークであると判定された場合には、ステップ１００８において、現在の第I認識候補文字列に１文字を追加した新たな認識候補文字列を生成し認識候補バッファ２０９に登録する処理がなされる。追加する１文字は文字構造辞書２１１に含まれるNREF個の文字の全てであり、その数だけ認識候補バッファ２０９に新しい第K認識候補文字列（K=1〜NREF）が登録されることになる。ステップ１００８における詳細な処理手順を図１４のフローチャートに示す。  
現在の第I認識候補文字列については、ステップ１００９において旧認識候補文字列として棄却フラグが立てられる。
【００９３】
このようにしてNCAND個の全ての認識候補文字列に対して、それぞれNREF個の新認識候補文字列が認識候補バッファ２０９に生成・登録されると（ステップ１００４）、棄却フラグが立てられた旧認識候補文字列を認識候補バッファ２０９から除去すると共に新認識候補文字列を整列する認識候補文字列更新処理がステップ１０１１において行われる。このステップ１０１１における詳細な処理手順を図１５のフローチャートに示す。  
以上が、ステップ８０３における詳細な処理手順である。
【００９４】
次に、ステップ８０４では、認識候補バッファ２０９内の各認識候補文字列について、ストロークバッファ２０８内の入力ストローク列との照合が文字列尤度計算手段２０４によって行われ、その照合結果（尤度計算結果）が認識候補バッファ２０９に格納される。
【００９５】
このステップ８０４の処理の詳細を、図１６のフローチャートを参照して説明する。  
まず、ステップ１４０３において、認識候補バッファ２０９の各第I認識候補文字列について、入力ストローク列の照合に用いられる文字列構造辞書が作成される。次のステップ１４０４では、入力ストローク列と作成された文字列構造辞書との照合が行われる。
【００９６】
上記ステップ１４０３における第I認識候補文字列の文字列構造辞書の作成処理は、図１７のフローチャートに従って次のように行われる。まず、ステップ１５０２において、ストロークバッファ２０８中にストロークが２本以上存在するかどうかが、当該バッファ２０８内のストローク数NSTRKが１より大きいか否かにより判定される。ストロークが１本しか存在しない場合にはステップ１５０６へ飛ぶ。２本以上の場合には、ステップ１５０３において、最新ストロークが第I認識候補文字列の最終文字の最初のストロークであるかどうかが判定される。
【００９７】
最初のストロークの場合には、そのストロークと１つ前のストロークとの間は文字間であると見なされる。この場合、ステップ１５０４において、文字間構造辞書２１２から対応する文字間の文字間構造辞書情報が取り出されて、当該辞書情報を構成する平均ベクトルz[1〜2]及び共分散ベクトルθ[1〜2]が、それぞれv2[1〜2]及びφ2[1〜2]にセットされた後、ステップ１５０６に進む。
【００９８】
一方、最初のストロークでない場合には、そのストロークと１つ前のストロークとの間は第I認識候補文字列の最終文字内のストローク間であると見なされ、ステップ１５０５において、最終文字についての文字構造辞書２１１中の辞書情報に記述されている対応するストローク間構造特徴の平均ベクトル及び共分散ベクトルが、それぞれv2[1〜2]及びφ2[1〜2]にセットされた後、ステップ１５０６に進む。
【００９９】
ステップ１５０６では、最新入力ストロークに対応する最終文字についての文字構造辞書２１１中の辞書情報に記述されているストローク形状特徴の平均べクトル及び共分散ベクトルが、それぞれv[1〜6]及びφ[1〜6]にセットされる。
【０１００】
次に、上記ステップ１４０４における第I認識候補文字列の文字列構造辞書と入力ストローク列との照合処理は、図１８のフローチャートに従って次のように行われる。
【０１０１】
まず、ステップ１６０２において、ストロークバッファ２０８中にストロークが２本以上存在するかどうかが、上記ステップ１５０２と同様にして判定される。ストロークが１本しか存在しない場合にはステップ１６０７へ飛ぶ。２本以上の場合には、ステップ１６０３において、最新ストロークが現在の第I認識候補文字列の最終文字の最初のストロークであるかどうかが判定される。
【０１０２】
最初のストロークの場合には、そのストロークと１つ前のストロークとの間は文字間であると見なされる。この場合、ステップ１６０４において、先のステップ９０９で抽出された入力ストローク間構造特徴ベクトルu2[1〜2]とステップ１５０４でセットされた文字間構造特徴の平均ベクトルv2[1〜2]及び共分散ベクトルφ2[1〜2]との間で尤度の計算が行われ、その対数値log f(u2｜v2,φ2)が第I認識候補文字列の対応する文字間構造部分、即ち最新のストロークの１つ前のストロークを最後のストロークとする文字と次の文字（現在の第I認識候補文字列の最終文字）との文字間構造部分の対数尤度としてセットされた後、ステップ１６０６に進む。
【０１０３】
ここで上記尤度は、平均ベクトルをv2[1〜2]、共分散ベクトルをφ2[1〜2]とした多次元無相関正規分布を確率密度関数とした場合の、入力ベクトルu2[1〜2]の確率密度関数値として、次式（１）により算出される。
【数１】
0004686502.tif 000002
【０１０４】
一方、ステップ１６０３において最新ストロークが現在の第I認識候補文字列の最終文字の最初のストロークでないと判定された場合には、そのストロークと１つ前のストロークとの間は第I認識候補文字列の最終文字内のストローク間であると見なされる。この場合、ステップ１６０５において、ステップ９０９で抽出された入力ストローク間構造特徴ベクトルu2[1〜2]とステップ１５０５でセットされたストローク間構造特徴の平均ベクトルv2[1〜2]及び共分散ベクトルφ2[1〜2]との間で尤度の計算が行われ、その対数値log f(u2｜v2,φ2)が第I認識候補文字列の対応する文字構造部分、即ち現在の第I認識候補文字列の最終文字の文字構造部分の対数尤度に累積してセットされた後、ステップ１６０６に進む。尤度の計算にはステップ１６０４と同様の形式の確率密度関数を用いる。
【０１０５】
ステップ１６０６では、当該ステップ１６０６に先行するステップ１６０４または１６０５で算出された尤度の対数値log f(u2｜v2,φ2)が、現時点までに求められている、第I認識候補文字列と入力ストローク列全体とを照合した結果の対数尤度CAND_L[I]に累積してセットされる。
【０１０６】
ステップ１６０７では、ステップ９０７で抽出された入力ストロークの形状特徴ベクトルu[1〜6]と第I認識候補文字列の最終文字の文字構造辞書の対応するストローク形状特徴の平均べクトルv[1〜6]及び共分散ベクトルφ[1〜6]との間で尤度の計算が行われ、その対数値log f(u｜v,φ)が求められる。
【０１０７】
ここで上記尤度は、平均ベクトルをv[1〜6]、共分散ベクトルをφ[1〜6]とした多次元無相関正規分布を確率密度関数とした場合の、入力ベクトルu[1〜6]の確率密度関数値として、次式（２）により算出される。
【数２】
0004686502.tif 000003
【０１０８】
ステップ１６０８では、ステップ１６０７で求められた対数値log f(u｜v,φ)、即ちストローク形状特徴を照合して得られた尤度の対数値log f(u｜v,φ)が、第I認識候補文字列の対応する文字構造部分、即ち第I認識候補文字列の最終文字の文字構造部分の対数尤度に累積してセットされる。
【０１０９】
ステップ１６０９では、ステップ１６０７で求められた対数値log f(u｜v,φ)が、現時点までに求められている、第I認識候補文字列と入力ストローク列全体とを照合した結果の対数尤度CAND_L[I]に累積してセットされる。
【０１１０】
認識候補バッファ２０９内の全ての認識候補文字列について、ストロークバッファ２０８内の入力ストローク列との照合がなされると（ステップ１４０５）、ステップ１４０６において認識候補文字列の絞込みが行われる。
【０１１１】
このステップ１４０６における絞込み処理は図１９のフローチャートに従って実行される。ここでは、認識候補バッファ２０９内の各第I認識候補文字列（I=1〜NCAND）について取得された対数尤度の総和、即ち第I認識候補文字列と入力ストローク列全体とを照合した結果の対数尤度CAND_L[I]が、予め定められ閾値αに満たない場合には、その認識候補文字列が入力された可能性は低いと判断される（ステップ１７０３）。この場合、その認識候補文字列は認識候補バッファ２０９から削除される。
【０１１２】
一方、対数尤度CAND_L[I]が閾値α以上の認識候補文字列は、その認識候補文字列が入力された可能性は高いと判断され、第J認識候補文字列として認識候補バッファ２０９内に残される（ステップ１７０４）。
【０１１３】
以上に述べた図１６のフローチャート（ステップ８０４での認識候補文字列に対する尤度計算処理の詳細手順）におけるステップ１４０３及びステップ１４０４の処理を、文字筆記領域３０１内で「あい」という文字を重ね書きした筆跡と、認識候補文字列「あい」との間の尤度計算の具体例について、図２５を参照して筆記順に説明する。
【０１１４】
まず、最初のストロークが筆記されると、そのストローク（第１入力ストローク）から抽出された形状特徴u[1〜6]と「あ」の文字構造辞書の第１ストロークの形状特徴s[1][1][1〜6]，σ[1][1][1〜6]との間で照合が行われる。
【０１１５】
第２入力トロークが筆記されると、１つ前の入力ストローク（第１入力ストローク）との間のストローク間構造特徴u2[1〜2]と、「あ」の文字構造辞書の第１ストロークと第２ストロークとの間のストローク間構造特徴s2[1][1][1〜2]，σ2[1][1][1〜2]との間で照合が行われると共に、第２入力ストロークの形状特徴u[1〜6]と「あ」の文字構造辞書の第２ストロークの形状特徴s[1][2][1〜6]，σ[1][2][1〜6]との間での照合も行われる。
【０１１６】
第３入力ストロークについても同様に尤度計算がなされるが、第４入力ストロークについては、そのストロークは「い」の最初のストロークであると判定されるため、第３入力ストロークと第４入力ストロークの間の入力ストローク間構造特徴u2[1〜2]は、「あ」と「い」の文字間構造特徴z[1〜2]，θ[1〜2]との間で照合される。これらの照合により計算される尤度の対数値の累積値が、入力ストローク列と認識候補文字列との間の対数尤度となる。
【０１１７】
ステップ８０４の次のステップ８０５では、認識候補バッファ２０９に格納されている各認識候補文字列と当該認識候補文字列毎の照合結果とから、入力文字列推定手段２０５により、認識確定文字列、認識未確定文字列、及び認識未確定ストローク列情報が決定される。
【０１１８】
図２０はステップ８０５における処理手順を説明するためのフローチャートである。このフローチャートに示すように、ステップ８０５の入力文字列推定処理は、認識確定文字列の推定ステップ１８０１と、認識未確定文字列及び認識未確定ストローク情報の推定ステップ１８０２とからなる。
【０１１９】
図２１はステップ１８０１における詳細な処理手順を説明するためのフローチャートである。ここでは、認識候補バッファ２０９内の全ての第I認識候補文字列（I=1〜NCAND）について（ステップ１９０２，１９０６，１９０８）、第１認識候補文字列を基準に、先頭から共通しているNSTRING1個の文字からなる文字列部分の文字コードSTRING1[J]の列（J=1〜NSTRING1）が認識確定文字列STRING1として抽出され（ステップ１９０７）、認識結果バッファ２１０にセットされる。ステップ１９０７では、NSTRING1個の文字の総ストローク数NSTRK1も求められ、認識確定文字列STRING1に対応付けて認識結果バッファ２１０にセットされる。
【０１２０】
図２２はステップ１８０２における処理手順を説明するためのフローチャートである。ここでは、まず認識候補バッファ２０９内の全ての第I認識候補文字列（I=1〜NCAND）の中で最も対数尤度CAND_L[I]の大きい第MI認識候補文字列（最尤認識候補文字列）（MIは1〜NCANDのいずれか）を求める（ステップ２００１〜２００５）。
【０１２１】
次に求めた最尤認識候補文字列について、当該候補文字列の最終文字が筆記途中であるか否かを、当該最終文字に対応する入力ストローク列の終了ストローク番号CAND_ES[MI][CAND_NCODE[MI]]が当該候補文字列の総ストローク数を表すCAND_NSTRK[MI]の値より小さいか否かにより判定する（ステップ２００６）。
【０１２２】
もし、最尤認識候補文字列の最終文字が筆記途中である場合には、認識未確定ストローク列情報USTRK_FLAGを“１”とし、更に最尤認識候補文字列から認識確定文字列と最終文字を除いたNSTRING2個の文字からなる文字列部分を取り出して、その文字列部分の文字コードSTRING2[J]の列（J=1〜NSTRING2）を認識未確定文字列STRING2として認識結果バッファ２１０にセットする（ステップ２００７，２００９〜２０１１）。その際、当該認識未確定文字列を含む最尤認識候補文字列の対数尤度も、当該認識未確定文字列STRING2とともに認識結果バッファ２１０に格納するようにしてもよい。認識結果バッファ２１０に格納された当該最尤認識候補文字列の対数尤度は、後に、認識結果表示手段２０７で当該認識未確定文字列STRING2を表示する際に用いることもできる。
【０１２３】
一方、最尤認識候補文字列の最終文字のストロークが全て筆記されている場合には、認識未確定ストローク情報USTRK_FLAGを“０”とし、更に最尤認識候補文字列から認識確定文字列を除いたNSTRING2個の文字からなる文字列部分を取り出して、その文字列部分の文字コードSTRING2[J]の列（J=1〜NSTRING2）を認識未確定文字列STRING2として認識結果バッファ２１０にセットする（ステップ２００８〜２０１１）。
【０１２４】
以上の説明から明らかなように、認識確定文字列STRING1は、入力ストローク列のうち、今後の筆記によって推定結果が変わらないという意味で断定された部分の文字列である。同様に、認識未確定文字列STRING2は、今後の筆記により推定結果が変わる可能性はあるが、現時点における尤度最大の意味で最もそれらしいと推測される部分の文字列である。そして、認識未確定ストローク列情報USTRK_FLAGは、未だ文字を書き終えていないストローク列の有無を表現している。
【０１２５】
ステップ８０５の次のステップ８０６では、認識結果表示手段２０７により、認識結果バッファ２１０内の認識確定文字列、認識未確定文字列及び認識未確定ストローク列情報が表示パターンに変換されて、ディスプレイ２１３の表示画面中の認識結果表示領域３０２に表示される。
【０１２６】
このような、ストロークが筆記される都度推定される認識確定文字列、認識未確定文字列及び認識未確定ストローク列情報の表示の例を、文字筆記領域３０１内で「あい」という文字を重ね書きした筆跡の各ストローク（入力ストローク）とストローク番号とに対応付けて、図２６の第３列に示す。
【０１２７】
同図において、黒四角の記号は文字挿入位置を示すカーソルであり、図５中のカーソルＣに相当する。また、下線のない文字列部分は認識確定文字列を、下線のある文字列部分は認識未確定文字列を、それぞれ表す。また、記号“⇒”は認識未確定ストローク列情報USTRK_FLAGが“１”の場合に認識未確定文字列の次の文字位置に表示され、認識未確定ストローク列が存在することを表す。
【０１２８】
このように本実施形態においては、認識確定文字列、認識未確定文字列及び認識未確定ストローク列情報をユーザが容易に識別（視認）できるような表示属性を付加して、ストローク入力の都度、画面表示しているため、ユーザは自分の筆跡の認識処理結果を逐次確認することができ、快適な文字入力が可能となる。
【０１２９】
ステップ８０６が終了すると、バッファ更新手段２０６により、ステップ８０７において認識候補バッファ２０９の更新が行われ、ステップ８０８においてストロークバッファ２０８の更新が行われる。
【０１３０】
ステップ８０７における詳細な処理手順を図２３のフローチャートに示す。ここでは、認識確定文字列NSTRING1が存在する場合、認識候補バッファ２０９内の各第I認識候補文字列（I=1〜NCAND）について、当該各候補文字列から認識確定文字列NSTRING1に相当する部分の情報が除去される。
【０１３１】
次にステップ８０８における詳細な処理手順を図２４のフローチャートに示す。ここでは、ストロークバッファ２０８内のNSTRK個の第Iストロークデータ（I=1〜NSTRK）のうち、I=NSTRK1+1〜NSTRKの第Iストロークデータ、即ち第NSTRK1+1ストロークデータ〜第NSTRKストロークデータを、新たなNSTRK個（新NSTRK=旧NSTRK-NSTRK1）の第Jストロークデータとすることにより、認識確定文字列NSTRING1に対応する（第１ストロークデータ〜第NSTRK1ストロークデータからなる）入力ストローク列データを当該ストロークバッファ２０８から除去するストロークバッファ更新処理が行われる。
【０１３２】
このバッファ更新処理は、ステップ２１０７，２１０８のループと、ステップ２１０９〜２１１１とに大別される。ステップ２１０７，２１０８のループでは、認識確定文字列NSTRING1中の最終文字を除く文字列に対応する入力ストローク列データがストロークバッファ２０８から削除され、ステップ２１０９〜２１１１では、認識確定文字列NSTRING1中の最終文字に対応する入力ストローク列データがストロークバッファ２０８から削除される。
【０１３３】
ステップ８０８の次のステップ８０９では、認識候補バッファ２０９が空であるかどうかの判定が例えばバッファ更新手段２０６によってなされ、認識候補文字列が存在する場合にはステップ８０２に戻って筆跡情報取得手段２０２に制御が渡され、次のストロークの取り込みがなされる。
【０１３４】
これに対し、認識候補バッファ２０９が空の場合には、入力されたストローク列全てについて認識結果が確定した文字列が表示出力されたとして、認識処理は終了となる。
【０１３５】
よって本実施形態におけるオンライン文字認識装置では、以上に述べた処理手順により、ユーザが文字の区切りを意識することなく続けて書いた文字列を高精度に認識して入力することができる。
【０１３６】
（認識結果の表示方法）
図４の認識結果表示手段２０７は、前述したように、認識結果バッファ２１０内の認識確定文字列、認識未確定文字列及び認識未確定ストローク列情報を表示パターンに変換して、ディスプレイ２１３の表示画面中の認識結果表示領域３０２に表示する。
【０１３７】
次に、図１０のステップ８０６における認識結果表示手段２０７での認識結果の表示手順の一例を図２７に示すフローチャートを参照して説明する。図２７に示すフローチャートは、認識結果のうち、認識確定文字列と認識未確定文字列を表示する手順を示したものであるが、特に、認識未確定文字列を表示する際には、その尤度と予め定められた閾値とを比較して、表示更新を行う点に特徴がある。この認識未確定文字列の尤度とは、入力文字列推定手段２０５で認識未確定文字列が推定されたときに、その認識未確定文字列を含む最尤認識候補文字列の対数尤度である。この対数尤度は、当該認識未確定文字列とともに、認識結果バッファ２１０に格納されるものとする。
【０１３８】
まず、認識結果表示手段２０７は、認識結果バッファ２１０から認識確定文字列を取出して表示する。すなわち、当該認識確定文字列が表示パターンに変換されて、ディスプレイ２１３の表示画面中の認識結果表示領域３０２に表示される（ステップＳ１１）。
【０１３９】
次に、認識未確定文字列の表示を行うわけであるが、ここでは、まず、認識結果バッファ２１０から、認識未確定文字列と当該認識未確定文字列とともに格納されている対数尤度を取り出す。そして、この対数尤度の値が予め定められた閾値より大きい（あるいは、閾値以上である）ときは、この今回の認識未確定文字列を表示する。すなわち、当該認識未確定文字列が表示パターンに変換されて、ディスプレイ２１３の表示画面中の認識結果表示領域３０２に表示される（ステップＳ１２、ステップＳ１３）。
【０１４０】
一方、当該認識未確定文字列とともに格納されている対数尤度の値が予め定められた閾値以下である（あるいは、閾値より小さい）ときは、この今回の認識未確定文字列は表示せずに、現在表示されている認識未確定文字列をそのまま表示する（ステップＳ１２、ステップＳ１４）。
【０１４１】
次に、図１０のステップ８０６における認識結果表示手段２０７での認識結果の表示手順の他の例を図２８に示すフローチャートを参照して説明する。図２８に示すフローチャートも、認識結果のうち、認識確定文字列と認識未確定文字列を表示する手順を示したものであるが、特に、認識未確定文字列を表示する際には、その尤度と現在表示されている認識未確認文字列の尤度とを比較して、表示更新を行う点に特徴がある。なお、この認識未確定文字列の尤度とは、入力文字列推定手段２０５で認識未確定文字列が推定されたときに、その認識未確定文字列を含む最尤認識候補文字列の対数尤度である。この対数尤度は、当該認識未確定文字列とともに、認識結果バッファ２１０に格納されるものとする。
【０１４２】
まず、認識結果表示手段２０７は、認識結果バッファ２１０から認識確定文字列を取出して表示する。すなわち、当該認識確定文字列が表示パターンに変換されて、ディスプレイ２１３の表示画面中の認識結果表示領域３０２に表示される（ステップＳ２１）。
【０１４３】
次に、認識未確定文字列の表示を行うわけであるが、ここでは、まず、認識結果バッファ２１０から、認識未確定文字列と当該認識未確定文字列とともに格納されている対数尤度を取り出す。そして、この対数尤度の値が、現在表示されている認識未確定文字列の尤度（認識結果表示手段２０７に保持されている）の値より大きい（あるいは、以上である）ときは、この今回の認識未確定文字列を表示する。すなわち、当該認識未確定文字列が表示パターンに変換されて、ディスプレイ２１３の表示画面中の認識結果表示領域３０２に表示される（ステップＳ２２、ステップＳ２３）。そして、今回表示された認識未確定文字列の尤度を保持する（ステップＳ２４）
一方、当該認識未確定文字列とともに格納されている対数尤度の値が、現在表示されている認識未確定文字列の尤度（認識結果表示手段２０７に保持されている）の値以下である（あるいは、小さい）ときは、この今回の認識未確定文字列は表示せずに、現在表示されている認識未確定文字列をそのまま表示する（ステップＳ２２、ステップＳ２５）。
【０１４４】
このような、ストロークが筆記される都度推定される認識確定文字列、認識未確定文字列の表示の例を、文字筆記領域３０１内で「てがき」という文字を重ね書きした筆跡の各ストローク（「て」の１画目、「が」の１画目、２画目、…）と、ストロークが筆記される都度推定された認識確定文字列と認識未確定文字列とに対応付けて、図２９の第４列に示す。
【０１４５】
同図第４列において、下線の引かれていない文字列部分は認識確定文字列であり、下線の引かれている文字列部分は認識未確定文字列を、それぞれ表す。
【０１４６】
このように本実施形態においては、認識確定文字列、認識未確定文字列をユーザが容易に識別（視認）できるような表示属性を付加して、ストローク入力の都度、画面表示しているため、ユーザは自分の筆跡の認識処理結果を逐次確認することができ、快適で効率のよい、手書き文字入力が可能となる。
【０１４７】
（筆跡表示方法）
文字筆記領域３０１上に文字を筆記する場合、その筆跡が全く表示されないのであれば、前のストロークの位置が確認できないため、次に筆記するストロークが本来入力したい位置からずれていまい、正しい文字が入力する事ができないばかりか、誤認識の原因ともなる。また、特に、１文字分の文字筆記領域３０１上に文字を重ね書きする場合、入力したストロークが全て表示されると現在入力中の文字以外のストロークまで表示されていまうので、かえってわかりづらい。
【０１４８】
そこで、次に、タブレット２０１の文字筆記領域３０１に筆記されたストロークの表示手法について説明する。
【０１４９】
図３０は、タブレット２０１の文字筆記領域３０１に筆記されたストロークを表示するための筆跡表示手段を有したオンライン文字認識装置の構成を示したものである。なお、図３０において、図４と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、上記筆跡表示手段２２０とペン操作判定手段２２１が新たに追加されている。また、タブレット２０１は透明で、しかもこのタブレットは、その文字筆記領域上に筆記された筆跡を表示するためのディスプレイ２１３の筆跡表示領域上に設けられていて、ディスプレイ２１３に、タブレット２０１上にペンＰを用いてユーザにより筆記されたストロークが表示されると、ユーザは、このタブレット２０１を介して、この表示されたストロークを見ることができるようになっている。
【０１５０】
筆跡表示手段２２０は、筆跡情報取得手段２０２で取得されたストロークデータを用いてディスプレイ２１３上の筆跡表示領域に筆跡を表示するようになっている。
【０１５１】
ペンＰが当該タブレットに触れているときのペン先の位置を表す座標データが筆跡情報取得手段２０２で取得されるので、ペン操作判定手段２２１は、この座標データを基に、ペン操作の種類を判定し、その判定結果に応じて、筆跡表示手段２２０などに所定の指示を行うようになっている。
【０１５２】
筆跡表示手段２２０は、現在入力中のストロークを含め最新のＮ本の入力ストロークを表示する。表示するストロークの数Ｎは、予め設定されるものである。
【０１５３】
次に、図３１に示すフローチャートを参照して、筆跡表示手段２２０の筆跡表示処理動作について説明する。なお、図３１に示す処理は、図３のステップＳ１において実行される。
【０１５４】
最新のＮ本の入力ストロークの表示制御のために、筆跡表示手段２２０は、タブレット２０１上で入力されたストロークの数をＮに達するまで計数するストロークカウンタＭと、入力ストロークデータを格納するストロークバッファＢと、当該ストロークバッファ上の格納位置を示すリングバッファポインタＰを有する。ストロークバッファＢは１番目からＮ番目のＮ個の入力ストロークデータを格納する領域をもち、リングバッファポインタＰは、ストロークバッファＢの１番目の格納領域から２番目、３番目…と順に指し示し、Ｎ番目に達したときは再び１番目に戻ることによって、ストロークバッファＢの格納領域をエンドレスに指し示す。なお、ここでは、説明の簡単のため、リングバッファポインタＰの取り得る値をストロークバッファＢのストロークデータの１番目からＮ番目までの各格納領域を示す値、すなわち、１〜Ｎとし、ストロークバッファＢのＰ番目の格納領域をＢ（Ｐ）と表すことにする。
【０１５５】
まず、ペンＰによる手書き文字入力の開始とともに、筆跡表示手段２２０が初期化される。この初期化とは、例えば、現在筆跡表示領域に表示されている筆跡が存在するのであれば、これを消去し、ストロークカウンタＭと、リングバッファポインタＰを「０」にセットする（ステップＳ１０１）。
【０１５６】
１ストローク入力されると（ステップＳ１０２）、そのときのリングバッファポインタＰの値とＮとが比較され、ＰがＮと等しくなければ（ステップＳ１０３）、ステップＳ１０４へ進み、リングバッファポインタＰを１つインクリメントする。一方、ステップＳ１０３で、ＰがＮと等しければ、ステップＳ１０５ヘ進み、リングバッファポインタＰがストロークバッファＢの１番目の格納領域を指し示すように、リングバッファポインタＰの値を「１」に戻す。
【０１５７】
次に、ステップＳ１０６へ進む。ステップＳ１０６では、ストロークバッファＢのＰ番目の格納領域に、ステップＳ１０２で入力された当該ストロークデータを格納する（ステップＳ１０６）。そして、現在までに入力されたストロークの数ＭがＮよりも小さい（あるいは、Ｎ以下である）とき（ステップＳ１０７）、ステップＳ１０８へ進み、ストロークカウンタＭを１つインクリメントした後、ステップＳ１０９で、ストロークバッファＢから今回Ｐ番目の格納領域に格納したストロークデータを含め最新のＰ本のストロークを取出し、筆跡の表示を行う。この場合、ストロークバッファＢに格納されているストロークデータは、新しいものから順に並べると、Ｂ（Ｐ）、Ｂ（Ｐ−１）、…Ｂ（１）となる。
【０１５８】
一方、ステップＳ１０７で、現在までに入力されたストロークの数ＭがＮ以上である（あるいは、Ｎより小さい）ときは、ストロークカウンタＭの更新は行わずに、ステップＳ１１０へ進み、ストロークバッファＢから今回Ｐ番目の格納領域に格納したストロークデータを含め最新のＮ本のストロークを取出し、筆跡の表示を行う。この場合、ストロークバッファＢに格納されているストロークデータは、新しいものから順に並べると、Ｂ（ｐ）、Ｂ（Ｐ−１）、…Ｂ（１）、Ｂ（Ｎ）、Ｂ（１）、Ｂ（２）、…Ｂ（Ｐ＋１）となる。
【０１５９】
ここで、ストロークデータの表示方法について説明する。前述したように、各ストロークデータは、ペンＰがタブレット２０１に触れている間のペン先の位置を表す２次元座標データ列である。１本のストロークがＪ個の座標データからなるとする。各座標データを（x[ｊ]、y[ｊ]）と表す。ここで、ｊ＝１〜Ｊである。例えば、ユーザが「の」という文字（１ストロークで構成される文字）を筆記したときの筆跡表示例を図３２に示す。この場合の入力ストロークを構成する座標点は全部で１２個であるので、この１２個の座標データ列（x[ｊ]、y[ｊ]）、ｊ＝１〜Ｊを順に結んで折れ線で当該入力ストロークを表現することができる。
【０１６０】
図３１に示した手順で入力ストロークの筆跡の表示を行うと、例えば、Ｎが「２」に設定されている場合には、ディスプレイ２１３の筆跡表示領域には、図３３に示すような筆跡が表示される。図３３（ａ）は、タブレット２０１の文字筆記領域３０１に、「い」という文字の２番目のストロークを入力し終えたときの筆跡表示例を示している。図３３（ｂ）は、タブレット２０１の文字筆記領域３０１に、「あ」という文字の３番目のストロークを入力し終えたときの筆跡表示例を示している。同図からも明らかなように、１番目のストロークは表示されていない。同様に、図３３（ｃ）は、タブレット２０１の文字筆記領域３０１に、「た」という文字の４番目のストロークを入力し終えたときの筆跡表示例を示している。同図からも明らかなように、１番目と２番目のストロークは表示されていない。
【０１６１】
ディスプレイ２１３の筆跡表示領域には、タブレット２０１上にペンＰを用いてユーザにより筆記されたストロークが、筆記と同時にリアルタイムに表示されることが望ましい。そのための筆跡表示手段２２１の処理動作について、図３４に示すフローチャートを参照して説明する。なお、図３４に示した、入力中のストロークの表示処理は、図３１のステップＳ１０２で実行される。
【０１６２】
前述したように、ペンＰが当該タブレットに触れている間のペン先の位置を表す座標データが筆跡情報取得手段２０２で取得される。すなわち、ユーザが１ストローク筆記している間に取得される座標データが筆跡表示手段２２１に入力するわけだが、その際、前回ペン先がタブレットを離れた後（すなわち、１ストロークの筆記終了後）に初めてペン先がタブレットに触れたことにより、最初に座標データが入力してきた時点で筆跡表示を開始する。まず、座標点数を計数するための変数Ｋを「０」にセットする（ステップＳ２０１）。そして、変数Ｋを１つインクリメントして（ステップＳ２０２）、そのときの座標データ（ｘ［Ｋ］、ｙ［Ｋ］）を取得する（ステップＳ２０３）。今回取得した座標データを含めて、筆跡表示を開始してから取得した座標データが１つのとき、すなわち、Ｋ＝１のときは（ステップＳ２０４）、ステップＳ２０６へ進み、当該座標点の表示を行う。一方、筆跡表示を開始してから取得した座標データが２つ目以上であるとき、すなわち、Ｋ＞１のときは、ステップＳ２０５へ進み、今回の座標データが（ｘ［Ｋ］、ｙ［Ｋ］）であるとすると、この今回の座標点と前回表示した座標点（ｘ［Ｋ―１］、ｙ［Ｋ―１］）とを結ぶ線分を表示する。以上ステップＳ２０２〜ステップＳ２０６を、ペン先がタブレットを離れたこと（１ストロークの筆記の終了）が検出されるまで繰り返す（ステップＳ２０７）。
【０１６３】
なお、１ストロークの筆記の終了の判断は、ペン先がタブレットを離れたことをペン操作判定手段２２０が検知して、それを筆跡表示手段２２１に通知するようにしてもよいし、筆跡表示手段２２１が筆跡情報取得手段２０２からの座標データの入力が一時中断した時点を１ストロークの筆記の終了の判断してもよい。
【０１６４】
また、Ｎ本のストロークを表示する際には、その１つ１つのストロークが区別できるように表示するようにしてもよい。例えば、各ストロークの色や太さを違えて表示するようにしてもよいし、図３５に示すように、各ストロークを実線、点線、波線など、線の種類を違えて表示するようにしてもよい。
【０１６５】
なお、上記Ｎの値は、ユーザにより所望な値に設定可能であってもよいし、Ｎ本の入力ストロークを表示するか否かもユーザにより設定可能であってもよい。このようにすることで、ユーザ毎に、そのユーザにとって最適な手書き文字の入力環境を提供することができる。
【０１６６】
ペン操作判定部２２０は、上記のように、ペンＰがタブレット上のどの位置に触れているかを判定して、ペン操作の種類を判定するものである。ペン操作の「種類には、例えば、筆記（文字）入力のための操作と、その他の操作（例えばカーソル移動など）とがある。
【０１６７】
ペンＰがタブレット上の所定の文字筆記領域上を触れたときには、筆記（文字）入力の開始と判断するようにしてもよい。文字入力が開始されたと判断すると、図３や、図３１に示した処理動作が行われる。
【０１６８】
例えば、ペンＰがタブレット上の所定の文字筆記領域以外の所定の領域に触れたときや、ペンＰがタブレットに触れてから予め定められた所定時間、その接触点を基準に予め定められた所定の範囲にペン先がとどまっているときなどには、筆記入力以外の操作であると判断するようにしてもよい。
【０１６９】
また、ペン先がタブレットを離れてからの時間を計測し、予め定められた時間を超えた場合に、筆跡表示手段２２１の初期化を行って、その時点で、ディスプレイ２１３の筆跡表示領域に表示されていた筆跡の消去を行うようにしてもよい。
【０１７０】
このように、重ね書き文字入力のように、文字の切り出し位置が明示的ではない場合であっても、入力された筆跡を適切に表示することができ、手書き文字を入力しやすい環境を提供することができる。
【０１７１】
（オンライン文字認識装置の付加機能）
以下、図３０に示すオンライン文字認識装置の構成例を参照して、その付加機能について説明する。
【０１７２】
今まで説明してきた実施形態では、図５に示したように、文字筆記領域３０１と認識結果表示領域３０２とが分かれている。しかし、認識結果表示領域３０２においても、文字挿入位置を示すカーソルＣの移動を指示するペン入力が実現可能である。すなわち、本実施形態では、ディスプレイ２１３に筆跡表示領域と認識結果表示領域とがある場合、透明のタブレット２０１が、それらを覆うように設けられていて、ユーザは、このタブレット２０１を介して、ディスプレイ２１３に表示された筆跡を見ることができるとともに、認識結果表示領域３０２内の任意の位置をペンＰで指定することにより、認識結果として得られた文字列に対し編集操作を行うことができる。この編集操作のための指示を「ジェスチャ」と呼ぶこともある。
【０１７３】
例えば、図３０に示すような構成において、認識結果表示領域３０２内の任意の位置がペンＰで指定された（触れられた）ことがペン操作判定手段２２０により検出された場合には、カーソル移動指示がなされ、現在筆記中の文字列について筆記が完了したものと判断する。そして、入力文字列推定手段２０５に対しては、その時点で認識未確定文字列がある場合には、それを確定文字列として、認識結果表示手段２０７により認識結果表示領域３０２に表示させる確定処理を行わせる指示（確定指示）を行う。また、このとき、入力文字列推定手段２０５は、認識未確定ストローク列がある場合には、当該認識未確定ストローク列をストロークバッファ２０８から削除する。この削除処理をバッファ更新手段２０６により行わせることも可能である。
【０１７４】
こうすることで、文字挿入位置の指示と、文字列筆記操作をスムーズに繰り返すことが可能となり、快適な文字入力が可能となる。なお、上記ペン操作判定手段２２０は、各手段２０２〜２０７と同様に、図１の情報機器中のＣＰＵ１がオンライン文字認識プログラムを実行することにより実現可能である。
【０１７５】
また本実施形態では、最後のストロークが入力された後、予め定められた一定時間以上次のストローク入力がないことが上記ペン操作判定手段２２０によって検出される構成となっている。そして、一定時間以上次のストローク入力がないことが検出された場合にも、ペン操作判定手段２２０では、現在筆記中の文字列について筆記が完了したものとみなし、上記と同様の確定処理を行う。
【０１７６】
このような確定処理前後の表示画面の変更例を、「あした」という文字を重ね書きした筆跡の各ストローク（入力ストローク）とストローク番号とに対応付けて、図２６の第３列及び第５列に示す。
【０１７７】
また、図５に示した文字筆記領域３０１と認識結果表示領域３０２とを図３６に示すように共通にすることも可能である。このような構成では、ペン先の座標が一定時間以上、一定座標範囲内から移動しない場合には、ペン操作判定手段２２０は、ペン入力が認識文字挿入位置を示すカーソルＣの移動を指示するジェスチャであると判定する。ペン操作判定手段２２０によりペン入力がジェスチャであると判定された場合には、入力文字列推定手段２０５が認識未確定文字列を認識確定文字列として出力する上記と同様の確定処理を行うようにすればよい。
【０１７８】
さて、本実施形態のオンライン文字認識装置は、誤って入力した文字を削除するための編集操作手段（１文字後退削除指示手段）として、図５に示した１文字後退削除ボタン３０３を有している。ユーザは、この１文字後退削除ボタン３０３をペンＰで触れると、ペン操作判定手段２２０は、その座標データが１文字後退削除ボタン３０３の領域内であることから、１文字後退削除指示がなされたことを判定し、カーソルＣの指す文字位置の直前の文字の削除を指示することができる。
【０１７９】
本実施形態では、図２６の第３列に示すように、認識結果表示領域３０２に認識未確定ストローク列の存在を示す記号“⇒”が表示されている状態で１文字後退削除指示がなされた場合に、当該“⇒”を削除する認識結果編集手段（図示せず）が設けられる。
【０１８０】
この認識結果編集手段は、認識未確定ストローク列は存在しないものの認識未確定文字列が存在する状態で１文字後退削除指示がなされた場合には、認識未確定文字列の最後尾を１文字後退削除すると共に、残りの認識未確定文字列を認識確定文字列として確定表示する。また認識結果編集手段は、認識未確定ストローク列も認識未確定文字列も存在しない状態で１文字後退削除指示がなされた場合には、確定文字列を１文字後退削除する。
【０１８１】
このような処理が実行されることにより、文字の削除、文字の筆記操作を連続してスムーズに行うことが可能となり、快適な文字編集環境が実現される。１文字後退削除指示前後の表示画面の変更例を、「あした」という文字を重ね書きした筆跡の各ストローク（入力ストローク）とストローク番号とに対応付けて、図２６の第３列及び第４列に示す。
【０１８２】
上記した１文字後退削除の指示はボタン（１文字後退削除ボタン３０３）によるものに限らない。例えば、ペン操作判定手段２２０は、文字筆記領域３０１に筆記された特定の形状のストロークを、１文字後退削除を指示するジェスチャであると判定することも可能である。この他に、例えば通常の文字筆記では入力されることのない、右から左方向への直線状のストローク入力を１文字後退削除のジェスチャと定めることもできる。ペン操作判定手段２２０は、文字認識で使用しているストローク形状特徴の照合により容易に実現可能である。
【０１８３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【０１８４】
【図１】本発明の一実施形態に係わるオンライン文字認識装置を実現する情報機器のハードウェア構成を示すブロック図。
【図２】本発明の一実施形態に係わるオンライン文字認識装置の機能構成を示すブロック図。
【図３】図２のオンライン文字認識装置におけるオンライン文字認識処理全体の手順を説明するためのフローチャート。
【図４】図１の情報機器により実現されるオンライン文字認識装置のより詳細な機能構成を示すブロック図。
【図５】図１の情報機器の外観を示す図。
【図６】図４中のストロークバッファ２０８のデータ構造例を示す図。
【図７】図４中の認識候補バッファ２０９のデータ構造例を示す図。
【図８】図４中の文字構造辞書２１１のデータ構造例を示す図。
【図９】図４中の文字間構造辞書２１２のデータ構造例を示す図。
【図１０】図１の情報機器により実現される図４のオンライン文字認識装置におけるオンライン文字認識処理全体の手順を説明するためのフローチャート。
【図１１】図１０中のステップ８０２における詳細な処理手順を説明するためのフローチャート。
【図１２】図１０中のステップ８０３における詳細な処理手順を説明するためのフローチャート。
【図１３】図１２中のステップ１０１０における詳細な処理手順を説明するためのフローチャート。
【図１４】図１２中のステップ１００８における詳細な処理手順を説明するためのフローチャート。
【図１５】図１３中のステップ１０１１における詳細な処理手順を説明するためのフローチャート。
【図１６】図１０中のステップ８０４における詳細な処理手順を説明するためのフローチャート。
【図１７】図１６中のステップ１４０３における詳細な処理手順を説明するためのフローチャート。
【図１８】図１６中のステップ１４０４における詳細な処理手順を説明するためのフローチャート。
【図１９】図１６中のステップ１４０６における詳細な処理手順を説明するためのフローチャート。
【図２０】図１０中のステップ８０５における詳細な処理手順を説明するためのフローチャート。
【図２１】図２０中のステップ１８０１における詳細な処理手順を説明するためのフローチャート。
【図２２】図２０中のステップ１８０２における詳細な処理手順を説明するためのフローチャート。
【図２３】図１０中のステップ８０７における詳細な処理手順を説明するためのフローチャート。
【図２４】図１０中のステップ８０８における詳細な処理手順を説明するためのフローチャート。
【図２５】入力特徴と辞書特徴との間の照合関係を説明するための図。
【図２６】認識結果表示例を示す図。
【図２７】認識確定文字列と認識未確定文字列の表示処理動作について説明するためのフローチャート。
【図２８】認識確定文字列と認識未確定文字列の他の表示処理動作について説明するためのフローチャート。
【図２９】ストロークが筆記される都度推定される認識確定文字列、認識未確定文字列の表示の例を示した図。
【図３０】図１の情報機器により実現されるオンライン文字認識装置のより詳細な機能構成を示すブロック図で、図４に示した構成にさらに、筆跡表示手段と、ペン操作判定手段とが追加されている。
【図３１】筆跡表示手段の筆跡表示処理動作について説明するためのフローチャート。
【図３２】筆跡の表示例を示した図。
【図３３】Ｎが「２」に設定されている場合の筆跡表示例を示した図。
【図３４】タブレット上に筆記最中のストロークを筆記と同時にリアルタイムに表示するための処理動作を説明するためのフローチャート。
【図３５】最新のＮ本のストロークの表示例を示した図。
【図３６】図１の情報機器の外観の変形例を示す図。
【符号の説明】
【０１８５】
１…ＣＰＵ
２…ＲＯＭ
３…ＲＡＭ
４，２０１…タブレット（座標入力装置）
５，２１３…ディスプレイ（表示装置）
６…データ読み込み装置
７…記憶媒体
２０２…筆跡情報取得手段
２０３…認識候補文字列生成手段
２０４…文字列尤度計算手段（照合手段）
２０５…入力文字列推定手段
２０６…バッファ更新手段
２０７…認識結果表示手段
２０８…ストロークバッファ
２０９…認識候補バッファ
２１０…認識結果バッファ
２１１…文字構造辞書
２１２…文字間構造辞書
２２０…ペン操作表示手段
２２１…筆跡表示手段
３０１…文字筆記領域
３０２…認識結果表示領域
３０３…１文字後退削除ボタン
Ｐ…ペン
Ｃ…カーソル
【図１】
0004686502.tif 000004
【図２】
0004686502.tif 000005
【図３】
0004686502.tif 000006
【図４】
0004686502.tif 000007
【図５】
0004686502.tif 000008
【図６】
0004686502.tif 000009
【図７】
0004686502.tif 000010
【図８】
0004686502.tif 000011
【図９】
0004686502.tif 000012
【図１０】
0004686502.tif 000013
【図１１】
0004686502.tif 000014
【図１２】
0004686502.tif 000015
【図１３】
0004686502.tif 000016
【図１４】
0004686502.tif 000017
【図１５】
0004686502.tif 000018
【図１６】
0004686502.tif 000019
【図１７】
0004686502.tif 000020
【図１８】
0004686502.tif 000021
【図１９】
0004686502.tif 000022
【図２０】
0004686502.tif 000023
【図２１】
0004686502.tif 000024
【図２２】
0004686502.tif 000025
【図２３】
0004686502.tif 000026
【図２４】
0004686502.tif 000027
【図２５】
0004686502.tif 000028
【図２６】
0004686502.tif 000029
【図２７】
0004686502.tif 000030
【図２８】
0004686502.tif 000031
【図２９】
0004686502.tif 000032
【図３０】
0004686502.tif 000033
【図３１】
0004686502.tif 000034
【図３２】
0004686502.tif 000035
【図３３】
0004686502.tif 000036
【図３４】
0004686502.tif 000037
【図３５】
0004686502.tif 000038
【図３６】
0004686502.tif 000039