JP3925247B2 - Online handwritten character recognition device without real time frame and program for realizing the same - Google Patents

Online handwritten character recognition device without real time frame and program for realizing the same Download PDF

Info

Publication number
JP3925247B2
JP3925247B2 JP2002067850A JP2002067850A JP3925247B2 JP 3925247 B2 JP3925247 B2 JP 3925247B2 JP 2002067850 A JP2002067850 A JP 2002067850A JP 2002067850 A JP2002067850 A JP 2002067850A JP 3925247 B2 JP3925247 B2 JP 3925247B2
Authority
JP
Japan
Prior art keywords
segment
character
unit
input
recognition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002067850A
Other languages
Japanese (ja)
Other versions
JP2003271899A (en
Inventor
宏 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002067850A priority Critical patent/JP3925247B2/en
Publication of JP2003271899A publication Critical patent/JP2003271899A/en
Application granted granted Critical
Publication of JP3925247B2 publication Critical patent/JP3925247B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、タブレット等の手書き文字入力装置にスタイラスペンなどで筆記された手書き文字を認識して文字コードに変換し、コンピュータ上のプログラムで利用するような手書き文字認識装置に関するものである。
【0002】
特に、文字の筆記に一文字毎の文字領域(例えば文字枠)を使わずに筆記面上の自由な位置に文字列を筆記でき、入力しながら同時に文字認識を行なう実時間枠なしオンライン手書き文字認識に関する。
【0003】
【従来の技術】
手書き文字認識装置には、大きく分けて、一文字毎の文字入力領域のある枠あり手書き文字認識装置と一文字毎の文字入力領域のない枠なし手書き文字認識装置がある。本明細書でいう「一文字毎の文字入力領域」とは、一文字毎に手書き文字を入力する領域を区切ったものであり、文字枠や縦線や下線やカンマ等の区切り記号で区切ったり、一文字毎に色を変えるなどしてもよく、一文字毎の領域の区切り方に関しては、特に限定しない。従来の多くのオンライン手書き文字認識装置は、文字と文字の区切りの判定が不要な一文字毎の文字入力領域を利用していた。その理由は、一文字毎の文字入力領域がない場合、文字の認識する前に入力された手書き文字列を文字単位に分ける処理が必要となるが、正確かつ高速に文字を分ける事が困難だからである。 しかし、一文字毎の文字入力領域があると、一文字毎に区切って文字入力領域内に文字を書く必要があり、自然な手書き入力を損なうため、近年では紙の上に文字列を書く場合のように、画面上でも一文字毎の文字入力領域を使わずに、出来る限り自然な形で自由に文字列を書く事ができる枠なし手書き文字認識の技術の開発が進んでいる。
【0004】
一文字毎の手書き文字入力領域がない場合、例えば、図17に示すように、「女子大生」と手書き入力したつもりなのに、「女」と「子」の文字間隔がほとんどないため、文字の区切り位置の判定が正しく行なわれずに「好大生」と変換されるように、文字の区切り位置の判断が正しくないと、文字認識そのものも誤ってしまうため、枠なし手書き文字認識においては、正確に文字を切り出すことが大きな問題となる。
【0005】
現在提案されている枠なし文字認識方法の一例として、入力された文字列パターン全体を一括して認識する方法について、以下に説明する。
【0006】
仙田氏らの論文「切り出し・認識・言語の確信度を統合した枠なしオンライン文字列認識手法(信学技報,PRMU98-138,1998.12 )」および福島氏らの論文「確率モデルに基づくオンライン枠なし手書き文字列認識(信学技報,PRMU98-139, 1999.12 )」において、入力された文字列パターン全体を一括して、個々の文字を構成する個別のセグメントに分割し、それらを組み合わせて構成した文字領域ごとに文字認識を行い、可能な文字領域の組み合わせの中で最も尤度が高い組み合わせを文字列の認識結果とする方法が提案されている(以下、従来例1とする)。セグメントとは、一又は複数のストロークから成り、文字の構成要素となるものであり、一文字は、一又は複数のセグメントから構成される。
【0007】
従来例1で用いられるセグメントを組みあわせて文字領域を判定する方法は、図18で示すように、個別セグメントをネットワーク状に構成し、このネットワークから最適なパスを求める方法と等価である。図18の手書き文字に外接する四角がセグメントと判定された部分であり、点線の矢印がセグメント間のパスを示し、太線の矢印が最適パス、つまり、次の文字の始まりを表す。
【0008】
このように、入力文字列パターン全体を一括して認識する枠なし文字認識方法の構成図を図19に示す。まず、文字列パターン入力部30から文字列パターンを入力し、セグメント判定部31で入力された文字列パターンをセグメントに分割し、続いて、文字領域判定部32でセグメントを組み合わせた文字領域の候補を作成し、隣り合った文字領域の間にリンクを張る事により、図18に示すようなネットワーク構造を生成する事ができる。最後に、個別文字認識部33は、個々の文字領域について文字認識を行って認識候補を作成し、最適パス生成部34は、ネットワークから最適パスを求める事によって文字領域を決定し、決定した文字領域に基づいて、各文字領域の文字認識結果文字列を得る。
【0009】
以上の方法を用いた場合、文字列を全て書き終えてから文字の切り出しおよび認識を行うため、ユーザが長い文字列を書いた場合には筆記終了から認識結果が得られるまでに無視できないタイムラグが生じ、ユーザにとっての使い勝手の低下につながっている
そのため、認識時のタイムラグを減らす方法として、入力文字列を行単位に分割したり、ペンアップ時のペンの移動量(オフストローク)が筆記方向とは逆の方向に一定量以上の長さか判定することにより、行の終了を検出し、その時点で枠なし文字認識の処理を起動する方法やペンアップ時間が一定値以上となった場合または筆記した文字列領域の縦横比がある値以上になった場合に認識を開始する方法が提案されている。これらの方法によると、長い文字列を筆記した場合でもある程度の長さを書いた時点でそこまでの認識処理が行われるため、ユーザが認識結果を待つ時間(タイムラグ)はある範囲内に抑える事ができる。そこまでに書かれた文字列を認識する。
【0010】
以上は、ある程度の量が筆記された時点でそこまで入力された文字パターン列単位に認識処理を行い、筆記中に途中結果としての文字認識結果を得るものである。しかしながら、これらの方法は行あるいは数文字の単位で認識処理を起動するものであるため、依然として認識結果が得られるまでのタイムラグは、枠あり文字認識に比べて非常に長いため、枠あり文字認識を利用したことのあるユーザにとっては枠なし認識の印象は非常に悪く、枠なし文字認識装置が普及しない主原因となっている。
【0011】
そのため、筆記した文字がほとんど待ち時間なく認識され、即座にユーザに認識結果が提示されるような、実時間枠なしオンライン手書き文字認識の実現が求められている。次に、タイムラグの少ない実時間枠なしオンライン手書き文字認識を実現させるための従来例について説明する。
【0012】
実時間枠なし認識を実現するためには、筆記と同時に文字切り出しを行う必要がある。実時間で枠なし入力文字の切り出しを行う方法については、相澤氏らの論文「複数のストローク特徴を用いた手書き文字列からの実時間文字切り出し(信学技報,PRU95-185,pp57-62,1995-12)」に示されている(以下、従来例2とする)。この方法は、ストロークの間隔やオフストロークの方向など複数の特徴を併用して、1ストローク入力するごとにそれが文字の先頭ストロークであるか否かを判定するものである。
【0013】
本方法を用いた実時間枠なし認識の構成図を図20に示す。またその動作フローチャートを図21に示す。以下、これらの図を用いて従来例2の動作を説明する。
【0014】
まず、ユーザが筆記した文字の筆跡データが、ストローク入力部40から1ストロークずつ入力される(ステップS40)。入力されたストロークは文字境界判定部41にて、そのストロークが文字の先頭ストロークであるか否かが判定される(ステップS41)。具体的には、文字境界判定部41は、ストロークが「文字の先頭である」「文字の先頭ではない」「文字の先頭である可能性はあるが確定ではない」の3つのいずれかを判定する。ここでは、入力されたストロークが行の先頭の場合も、文字の先頭とみなす。ここで、ストロークが文字の先頭でない(ステップS41:no)か、文字の先頭である可能性はあるが確定ではない(ステップS41:未決)場合は、そのストロークデータをストローク一時格納部44に追加して格納し(ステップS42)、ストロークが文字の先頭であれば(ステップS41:yes)、文字列パターン生成部42は、既にストローク一時格納部44に格納されているストロークデータ群を抽出し、文字列パターンを生成し(ステップS43)、枠なし文字認識部43は、文字列パターンを枠なし手書き文字認識処理をする。(ステップS44)。認識されたストロークデータは、ストローク一時格納部44からクリアされ(ステップS45)、文字の先頭と見なされたストロークデータがストローク一時格納部44に格納される(ステップS42)。そして、所定時間t1(通常0.5〜2.0秒)が経過してタイムアウトとなるか、手書き文字入力装置に設けられた認識ボタンが押される(ステップS45:YES)と、文字列パターン生成部42は、既にストローク一時格納部44に格納されているストロークデータ群を抽出し、文字列パターンを生成し(ステップS46)、枠なし文字認識部43は、文字列パターンを枠なし手書き文字認識処理を行い(ステップS47)、認識されたストロークデータは、ストローク一時格納部44からクリアされる(ステップS48)。所定時間t2(通常3〜5秒)が経過してタイムアウトとなるか、手書き文字入力装置に設けられた確定ボタンが押される(ステップS49:YES)と、認識結果がアプリケーション等に送出され(ステップS50)、処理を終了する。それ以外の場合(ステップS49:no)は、ステップS40に戻る。 枠なし文字認識部43での認識方法は、入力されたストロークが文字の先頭であるか否かを明確に判定可能で、「文字の先頭である可能性はあるが確定ではない」ストロークがなければ、ストローク一時格納部44に格納されているストロークデータの中には1文字分のストロークデータが格納されるため、枠あり認識方法を用いることも可能だが、現実には、入力されたストロークが文字の先頭であるか否かを明確に判定出来ない場合があるため、複数文字分のストロークデータが格納されている可能性がある。そのため、いずれの場合にも対応出来るように、枠なし認識方法を用いる必要がある。
【0015】
図22に、従来例2による文字切り出しの成功例と失敗例を示す。図中、太線は文字の先頭だと判定されたストロークであり、点線は文字の先頭ではないストローク、細い実線は文字の先頭になり得るが確定ではないストロークである。(a)の例では太線のストロークは全てが文字の先頭であり、判定結果は正しい。しかし、(b)の例では、「仙」の字の中に2つの太線が存在する。これは、「仙」の3画目の縦線を書いた時点ではこのストロークは前の2画との間隔が十分に開いており文字の先頭だと判定されたが、その後で4画目のストロークが書かれると、前の2画との間隔が狭くなり、文字の先頭だと確定できる条件が失われてしまう。本従来例では、これを回避することは出来ない。
【0016】
以上の誤りは、文字の境界位置はストロークを筆記しているその時点では確定出来ないのに、文字の境界位置を判定しようとしたことに起因している。すなわち、本従来例のように1ストローク入力されるごとに文字の先頭か否かを判定するという方法では、文字境界を正確に判定出来ないため、正確な実時間枠なし文字認識は実現出来ないという事になる。
【0017】
【発明が解決しようとする課題】
このように、従来例1のような一括型の枠なし文字認識では、一括して文字認識を行なうため、認識に時間がかかり、筆記と平行して認識処理が行われるような実時間枠なし文字認識を実現する事はできない。
【0018】
一方、従来例2では実時間認識が実現されているが、入力パターンの文字境界位置はストロークが入力されるたびに判定されるため、あるストロークが文字の先頭だと判定された後で、別のストロークが書き足された事によってそのストロークが文字の先頭でないという判定に変わる場合があり、その場合、文字の先頭だと判定したストロークの前のストローク群で枠なし文字認識を行なうと、正確な枠なし文字認識を行えない。つまり、1ストロークだけでは文字の先頭か否か正確には判定出来ないため、文字切り出しの精度が低下し、正確な文字認識が出来ないという問題があった。
【0019】
【課題を解決するための手段】
簡単に述べると本発明は、従来例1にあるようなタイムラグを最小限に抑えるために、筆記と並行して文字認識処理を行うと同時に、従来例2にあるような文字の切り出し誤りを生じにくく、誤りを生じても修正が容易な精度のよい実時間枠なし文字認識を実現するものである。
【0020】
即ち、本発明にかかる実時間枠なしオンライン手書き文字認識装置は、手書き文字のストロークを入力し、ストロークデータに変換するストローク入力部と、前記ストロークデータと既存の未確定セグメントに基づいて、前記ストロークデータを、新しい未確定セグメントとするか既存の未確定セグメントに追加するかを判定するセグメント判定部と、前記セグメントに基づき、前記セグメントが確定セグメントか未確定セグメントか判定し、セグメントの確定を行なうセグメント確定部と、前記確定セグメントに基づき、確定セグメントの組み合わせから成る一文字毎の文字領域を判定する文字領域判定部と、各文字領域に含まれる前記ストロークデータに基づいて、前記文字領域毎に前記手書き文字をオンライン認識して、文字候補を生成する個別文字認識部と、前記文字領域毎の文字候補の組み合わせの最適パスを生成し、最適の文字組み合わせを認識結果として出力する最適パス生成部と、前記ストロークデータが確定セグメントに対して入力された場合、前記ストロークデータが削除指示か否かを判定し、削除指示の場合は、前記ストロークデータが入力された確定セグメントを削除してそれ以降の確定セグメントを未確定状態にし、削除指示でない場合は、前記ストロークデータが入力された確定セグメント以降の確定セグメントを未確定状態にするセグメント確定取消部と、前記セグメント確定取消部が処理したセグメントに対して、前記文字領域の判定を取り消す文字領域取消部と、前記セグメント確定取消部が処理したセグメントに対して、前記最適パスを取り消す最適パス取消部と、前記ストロークデータが削除指示の場合は、前記セグメント判定部に対して、前記セグメント確定取消部により未確定状態に戻されたセグメントの判定をやり直すよう指示するセグメント確定指示部と、前記セグメント確定の取消により修正された文字以降の認識結果文字列と出力済みの認識結果文字列の何文字目から修正したかという修正開始位置情報とから成る修正情報を出力する認識結果情報出力部を具備し、前記ストロークデータが確定セグメントに対して入力された場合は、前記セグメント確定取り消し部と文字領域取り消し部と最適パス取り消し部とセグメント確定指示部の処理を行い、未確定セグメントに対してセグメント判定から処理をやり直すことにより、手書き文字の修正を可能とし、連携するアプリケーションに対して、出力済みの認識結果文字列に対する修正情報を出力し、前記ストロークデータが確定セグメントに対して入力されていない場合は、1ストローク入力される度に、セグメント判定部とセグメント確定部と文字領域判定部と個別文字認識部と最適パス生成部の処理を実行し、入力が確定したセグメント部分の文字認識を行なうことを特徴とする。
【0021】
かかる構成により、本発明にかかる実時間枠なしオンライン認識装置は、筆記している位置から所定距離以上離れている部分までの認識結果が実時間で高い精度で得られ、ユーザは枠なし文字認識の待ち時間を気にする必要が無くなるようにすることが可能となる。
【0022】
また、かかる構成により、本発明にかかる実時間枠なしオンライン認識装置は、手書き文字の修正が可能となり、もし認識・確定処理を誤っても、誤った部分のみをやり直す事が可能となり、筆記位置と認識位置のズレを小さくしても(=後述の閾値dを小さくしても)問題は起きず、セグメント確定処理の誤りによる性能劣化を回避させることが可能となる。
【0023】
また、かかる構成により、本発明にかかる実時間枠なしオンライン認識装置は、既に確定した手書き文字を削除したり、手書き文字にストロークを書き足しして、修正文字以降のセグメントが未確定になった場合でも、次のストロークが入力されるのを待つこと無く、即座に未確定セグメントに対する認識処理を行なうことが可能となる。
【0024】
また、かかる構成により、本発明にかかる実時間枠なしオンライン手書き文字認識装置は、認識結果文字列が修正された場合でも、修正内容を連携しているアプリケーション通知することが可能となる。」、
【0025】
また、本発明にかかる実時間枠なしオンライン手書き文字認識プログラムは、実時間枠なしオンライン手書き文字認識するためにコンピュータを、手書き文字のストロークを入力し、ストロークデータに変換する手段、前記ストロークデータと既存の未確定セグメントに基づいて、前記ストロークデータを、新しい未確定セグメントとするか既存の未確定セグメントに追加するかを判定するセグメント手段、前記セグメントに基づき、前記セグメントが確定セグメントか未確定セグメントか判定し、セグメントの確定を行なうセグメント手段、前記確定セグメントに基づき、確定セグメントの組み合わせから成る一文字毎の文字領域を判定する文字領域判定手段、各文字領域に含まれる前記ストロークデータに基づいて、前記文字領域毎に前記手書き文字をオンライン認識して、文字候補を生成する個別文字認識手段、前記文字領域毎の文字候補の組み合わせの最適パスを生成し、最適の文字組み合わせを認識結果として出力する最適パス生成手段、前記ストロークデータが確定セグメントに対して入力された場合、前記ストロークデータが削除指示か否かを判定し、削除指示の場合は、前記ストロークデータが入力された確定セグメントを削除してそれ以降の確定セグメントを未確定状態にし、削除指示でない場合は、前記ストロークデータが入力された確定セグメント以降の確定セグメントを未確定状態にするセグメント確定取消手段、前記セグメント確定取消手段が処理したセグメントに対して、前記文字領域の判定を取り消す文字領域取消手段、前記セグメント確定取消手段が処理したセグメントに対して、前記最適パスを取り消す最適パス取消手段、前記ストロークデータが削除指示の場合は、前記セグメント判定手段に対して、前記セグメント確定取消手段により未確定状態に戻されたセグメントの判定をやり直すよう指示するセグメント確定指示手段、及び前記セグメント確定の取消により修正された文字以降の認識結果文字列と出力済みの認識結果文字列の何文字目から修正したかという修正開始位置情報とから成る修正情報を出力する認識結果情報出力手段、として機能させることを特徴とする。
【0026】
かかる構成のプログラムをコンピュータに読み込ませて実行することにより、実時間枠なしオンライン手書き文字認識装置においても、筆記している位置から所定距離以上離れている部分までの認識結果が実時間で高い精度で得られ、ユーザは枠なし文字認識の待ち時間を気にする必要が無い実時間オンライン枠なし手書き文字入力装置を実現出来るようになる。
【0027】
また、かかる構成のプログラムをコンピュータに読み込ませて実行することにより、本発明にかかる実時間枠なしオンライン認識装置においても、手書き文字の修正が可能となり、もし認識・確定処理を誤っても、誤った部分のみをやり直す事が可能となり、筆記位置と認識位置のズレを小さくしても(=後述の閾値dを小さくしても)問題は起きず、セグメント確定処理の誤りによる性能劣化を回避させることが可能な実時間オンライン枠なし手書き文字入力装置を実現出来るようになる。
【0028】
また、かかる構成のプログラムをコンピュータに読み込ませて実行することにより、本発明にかかる実時間枠なしオンライン認識装置においても、既に確定した手書き文字を削除したり、手書き文字にストロークを書き足しして、修正文字以降のセグメントが未確定になった場合でも、次のストロークが入力されるのを待つこと無く、即座に未確定セグメントに対する認識処理を行なうことが可能な実時間オンライン枠なし手書き文字入力装置を実現出来るようになる。
【0029】
また、かかる構成のプログラムをコンピュータに読み込ませて実行することにより、本発明にかかる実時間枠なしオンライン手書き文字認識装置においても、認識結果文字列が修正された場合でも、修正内容を連携しているアプリケーション通知することが可能な実時間オンライン枠なし手書き文字入力装置を実現出来るようになる。」。
【0030】
【発明の実施の形態】
本発明の基本的な実施形態の原理について、以下に述べる。
【0031】
まず、本発明が、従来例2における精度低下をどのようにして解決するかについて述べる。
【0032】
従来例2においては、従来例1におけるタイムラグは解消しているが、ストロークごとに文字境界を判定していたため、文字境界を正確に判定出来なかった。各ストロークが文字の境界位置にあるか否かを正確に判定するためには、入力されたストロークの周辺に存在するストロークも含めて判断しなければならない。例えば、図23に示すように、「仙」という文字は「人」偏と「山」との組み合わせであり、それぞれの部分を構成するストロークが近傍に位置し、グループ化が可能である。このグループは文字を構成する部分であり、複数の文字にまたがる事はない。このような、文字を構成する部分となるグループを「セグメント」と呼ぶ。従来例1のような一括型の枠なし文字認識では、入力された文字列パターンを一括してセグメントに分け、それから文字境界を決定していたため、認識するまでのタイムラグが長いが、文字境界が変動することはない。それに対し、従来例2は、ストローク単位で文字境界を判定しているため、認識するまでのタイムラグは短いが、ストロークの入力により文字境界が変動する場合がしばしばあり、文字境界を正確に判定出来ないという問題点があった。
【0033】
この問題点を解決するために、本発明では、ストロークが入力される度に文字境界を判定するのではなく、ストロークが入力される度に、まず、それ以前に入力されたストローク群も含めてセグメントを判定してセグメント分割し、その後で文字境界の判定を行なうようにする。ここで、問題となるのは、入力されたストローク群をセグメントに分割した時点では個々のセグメントが文字の先頭であるか否かは未定であるということである。つまり、単にセグメントに分割しただけでは確定した文字境界位置は存在しない事となる。そのため、セグメントが抽出されたら、そのセグメントを組み合わせて文字境界の判定を行う必要がある。ここでは、一つの文字を構成する領域を判定するという意味で、文字領域の判定と呼ぶ事とする。
【0034】
文字領域を決めるためには、その文字領域を構成するセグメントが確定している必要がある。例えば、従来例2では文字領域やセグメントを判定する際に個々の領域を構成する先頭のストロークを用いていたが、文字領域を判定するためにはセグメントを構成する全てのストロークが必要であるため、先頭のストロークが分かるだけでは不十分である。セグメントの抽出は、ユーザが文字を筆記している最中に行うので、一つのセグメントを抽出しても、そのセグメントに更にユーザがストロークを書き足す事によってセグメントが変化する可能性がある。したがって、文字領域の判定を行う際には、その文字領域を構成するセグメントが確定している状態、つまり、ユーザの入力によってセグメントに変化が起こらない状態である必要がある。即ち、セグメントを判定する手段と共に、セグメントが確定したか否かを判定するセグメント確定判定手段が必要となる。
【0035】
文字領域を判定すると、現在確定しているセグメントのみを用いたネットワーク構造(図18参照)を作成する事ができる。したがって、このネットワークを用いて個別文字認識および最適パスの計算が可能となり、文字列の筆記中に、途中結果としての文字認識結果を得る事ができる。
【0036】
以上が本発明の原理であり、実時間枠なし文字認識を精度良く実現する方法である。本発明のポイントを大まかにまとめると以下のようになる。
【0037】
文字列を筆記中には、最新のストロークを含む文字認識結果は未確定であるため、筆記した全てのストロークを用いた認識結果を求めると必然的に誤認識が起きる。そこで本発明では、筆記中のストロークよりも少し前の、入力が確定した部分までの認識結果を途中結果として計算して出力する。これにより、筆記している場所からさほど離れていない部分までの認識結果が実時間で得られ、ユーザは、枠なし文字認識の待ち時間をほとんど気にする必要が無くなる。
【0038】
(実施形態1)
本発明の実施形態を、図1の構成図に基づいて説明する。
【0039】
通常、手書き文字の入力は、パソコンではタブレットに、PDAでは表示画面と一体となった透明タブレットに、スタイラスペンを用いて入力される。それ以外にも、マウス等のポインティングデバイスを用いて入力することもある。
【0040】
まず、利用者が入力した筆跡は、Windows(マイクロソフト社商標)等の汎用OSの機能を利用することにより、一画入力される毎に、連続した座標点列データとして入力され、ストローク入力部1により、連続した座標点列データから所定時間間隔毎の座標点を抽出してストロークデータが生成される。生成されたストロークデータは、通常、連続しない座標点列データとなるが、エコーバック表示する際には、それらの座標点列を線でつないで表示される。
【0041】
入力された手書き文字の文字列パターンデータをC言語で表現した例をあげると、ストロークデータの配列として、図2に示すようなデータ構造となり、メモリ上に記憶される。nPointは、ストロークデータを構成する座標点列の何番目のデータかを指し、pPointは、ストロークデータを構成する座標点列の座標点を指し、x,yは、それぞれpPointの座標点のx座標,y座標を指す。nStrokeは、文字列パターンデータの何番目のストロークデータかを指し、pStrokeは、ストロークデータを指す。
【0042】
入力されたストロークデータは、セグメント判定部2に渡され、そのストロークデータを含むセグメントの抽出が行われる。ここで抽出されたセグメントは、未確定セグメントとして、セグメント一時格納部3に収められる。セグメント一時格納部3は、ハードディスク等の記憶装置上に設けることも可能だが、容量も小さく、速度が求められるため、メモリ上に設ける方が好ましい。
【0043】
セグメント判定で重要なのは、新しくストロークが入力された事により、既にセグメント一時格納部3に収められている未確定セグメントが影響されることである。具体的には、新しいストロークの入力により、ストローク入力前の未確定セグメントが確定セグメントになり、新しく入力したストロークが新しい未確定セグメントを形成したり、新しく入力されたストロークが未確定セグメントに追加されたりするという点である。このように、ストロークが入力される度に、入力された文字列パターンデータを、その時点で文字認識に使う確定セグメントと文字認識に使わない未確定セグメントに切りわけることが、本発明の大きな特徴である。
【0044】
「仙」という文字を例にとって、「仙」の第3画から第5画が入力された時点での未確定セグメント(太線の外接枠で囲まれたセグメント)が変化する様子を図3に示す。最初に、2ストローク分が入力されているとする。第3画が入力されると、図3の(a)のように、3画目のストロークで新たな未確定セグメントが作られる。第4画が入力されると、第3画と第4画による2ストロークのセグメントが新たな未確定セグメントとなる。同様に第5画が入力されると、第3画から第5画の3ストロークが新たな未確定セグメントとなる。以上のように未確定セグメントは、ストロークが入力される度に変化する。
【0045】
図3の説明において、「仙」という文字を書く際に、未確定セグメントがどのように変わるか説明したが、未確定セグメントが複数ある場合に、セグメント判定部3が、複数の未確定セグメントを結合させるか否かをどのようにして判定するかについて述べる。
【0046】
セグメント判定部2では、図4のフローチャートに示す手順で未確定セグメントを作成する。図4に従って、セグメント判定部1が、実際に未確定セグメントを登録する様子を図5に示す。
【0047】
まず、セグメント判定部2の動作について、図4のフローチャートを用いて説明する。
【0048】
最初に、ストローク入力部1からストロークが入力される(ステップS1)。次に、入力されたストローク1つのみを新規セグメントとして登録し(ステップS2)、既に入力済みのストロークで構成される未確定セグメント群の内の末尾の未確定セグメントにインデクスを設定する(ステップS3)。インデクス位置が空でない場合、つまり、新規セグメントの前に未確定セグメントが存在する場合(ステップS4:no)は、インデックスが設定されている位置にある未確定セグメントの情報を獲得する(ステップS6)。そして、新規セグメントと獲得した未確定セグメントの位置情報(本実施例ではx座標)を比較し(ステップS7)、両セグメントが接続可能か否か判定する(ステップS8)。両セグメントが接続可能でない場合(ステップS8:no)は、インデクスを一つ前に移動し(ステップS9)、ステップS4に戻る。両セグメントが接続可能な場合(ステップS8:yes)は、両セグメントを接続して新たに新規セグメントとし(ステップS10)、接続した未確定セグメントを削除し(ステップS11)、インデクスを未確定セグメントの末尾に再設定し(ステップS12)、ステップS4に戻る。これらの処理を繰り返し、インデクス位置が空になると、つまり、新規セグメントの前に未確定セグメントが存在しなくなる(ステップS4:yes)と、新規セグメントを未確定セグメントとしてセグメント一時格納部3に登録する(ステップS5)。
【0049】
図5を用いて、新規セグメントと未確定セグメントを接続して新しい未確定セグメントを登録する具体的な例を説明する。図5において、点線の枠が未確定セグメントを表し、実線の枠が新規セグメントを表し、太い矢印は一つ前の未確定セグメントを示すインデクスを表すものとする。
【0050】
本実施形態では、現在の入力位置よりも文字サイズ2つ分以上左にあるセグメントを確定セグメントとする。
【0051】
まず、図5の(a)は、「枠なし」の「な」の第3ストロークまで書いた時点でのセグメントの分割状態であり、各セグメントは、x座標方向に間隔があるため、4つの未確定セグメントに分かれている。
【0052】
(a)の初期状態に、次のストローク(「な」の第4ストローク)が入力されると、(b)のように、「な」の第4ストロークが新規セグメントとなり、(c)に示すように、未確定セグメントの末尾(ここでは、「な」の第3ストロークの未確定セグメント)にインデクスが設定される。続いて、インデクス位置の未確定セグメントと新規セグメントのx座標データが比較され、所定の判定基準を満たす位置にあると、(d)に示すように両セグメントが結合されて新たな新規セグメントが作られる。次に、(e)に示すように、更に1つ前の未確定セグメントにインデクスが再設定される。同様にして、(f),(g)に示すように、セグメント結合およびインデクスの再設定が行われる。(f)の状態では新規セグメント(「な」)と未確定セグメント(「卆」)の間には明確な間隔があるため、(g)に示すように、両者は結合されない。そのため、インデクスは更に前に移動する。インデクスが指すセグメント(「卆」)と1つ前のセグメント(「木」)の間にも明確な間隔があるため結合されず、(h)に示すように、インデックスは1つ前の未確定セグメント(「木」)に再設定される。「木」のセグメントの前には未確定セグメントがないため、(i)に示すように、インデクスのみ前に移動して、最終的に先頭セグメントよりも前に達して何も指していない状態(=インデクス位置が空の状態)になると、新規セグメントが新たな未確定セグメントとして登録される。更に、前にセグメントがある場合、この未確定セグメントの判定は、確定セグメントの手前(この例では、最新のセグメントから2文字分以内のセグメント)まで、行なう。
【0053】
ここで、未確定セグメントと新規セグメントを接続するか否かの判定基準の例をあげる。一つの実現例として、ここでは「(A)二つのセグメントのx方向の領域がある一定値以上重なっている」、「(B)二つのセグメントの片方のx方向の領域がもう片方のx方向の領域を包含している」のいずれかが成り立つ場合にセグメントを接続する事とする。具体的には、セグメントに含まれる1又は複数のストロークデータの座標点のx座標の最大値と最小値を、セグメントのx座標の最大値と最小値とし、新規セグメントと未確定セグメントのx座標の最大値・最小値を比較して、前述の条件を満たすか調べるとよい。これは、横書きの際の判定基準であり、縦書きの場合は、y方向の領域で判定を行なう。なお、セグメント接続の判定基準は、特にこれに限定するものではない。
【0054】
セグメント一時格納部3の内部には、未確定セグメントの配列と確定セグメントの配列が別々に格納される。新しい未確定セグメントと確定セグメントは、それぞれ、未確定セグメントの配列と確定セグメントの配列の末尾に追加される。セグメント情報のデータ構造の例を、C言語を用いて表すと図6のようになる。nStrokeはセグメントを構成するストロークの数であり、pStrIdxはセグメントを構成するストロークを示すインデクスの配列である。インデクスは1から始まる整数で、入力パターンの中の何番目のストロークかを示す。topおよびbtmはセグメントの外接枠の左上と右下の頂点の座標を示す。これらの座標はセグメント判定部において未確定セグメントと新規セグメントのx領域の重なりを判定する場合など、セグメントの位置関係を調べるのに用いられる。セグメント一時格納部3の格納の仕方は、未確定セグメントと確定セグメントをメモリ上の別領域又は別ファイルに格納してもよいし、未確定セグメントと確定セグメントを識別出来るようにして、同一のファイルに混在させてもよく、特に格納の仕方は限定しない。
【0055】
セグメント判定を行なった後は、セグメント確定判定部5が、セグメント一時格納部3に格納されている未確定セグメントの中で確定状態にできるものを判定する。セグメントの確定とは、新たにストロークを入力してもセグメントが変形しないとみなせるセグメントのことである。例えば、横書きの文字列の場合、文字は左から右(縦書きの場合は上から下)へ順に書かれるので、新しいストロークが入力済みのストローク以上左(縦書きの場合は上)に書かれるのは一つの文字の内部でのみの現象だと言える。従って、手書き文字の大きさがある程度変動することや文字の間隔を考慮しても、現在筆記中のストロークよりも文字幅の最大値w以上左(縦書きの場合は上)にあるセグメントは確定したと言って良い。従って、セグメント確定判定部5は、このような判定基準を用いて、筆記中のストロークの含まれるセグメントよりも、ある一定の閾値d以上左に離れているセグメントを確定状態にするようにすればよい。つまり、横書きの場合は、「現在の入力位置よりも文字サイズ1つ分よりも左にあるセグメントを確定とする」、縦書きの場合は、「現在の入力位置よりも文字サイズ1つ分よりも上にあるセグメントを確定とする」などの所定の判定基準により判定することになる。
【0056】
以上の方法によるセグメント確定判定部5の動作例を図7に示す。図7の(a)では「 枠な」 までが筆記済みであり、それ以降の点線の文字は未記入の文字である。ここで、全てのセグメントが点線で示してあるのは全て未確定セグメントである事を示す。(b)においては次の「し」が記入された状態を示す。ここでは「し」のセグメントの左端よりも閾値d以上左に離れた位置にあるセグメント「木」が確定状態となっている。同様に、「認」の「言」偏を入力した時点では、「卆」のセグメントは閾値d以上離れているため確定し、「な」のセグメントは閾値d以上離れていないため確定せず、「認」の「忍」を入力した時点では、「な」のセグメントが閾値d以上離れるため確定する。このように、筆記が進むにつれて、最新のストロークから閾値d以上左に離れた位置にあるセグメントが確定される。未確定セグメントから、新しく確定セグメントになったセグメントの情報は、セグメント一時格納部3の対応する未確定セグメントの情報をコピーして確定セグメントのリストに追加し、対応する未確定セグメントの情報を削除することにより行なう。ここで、閾値dはあらかじめ適当な値、例えば、文字幅の最大値wや文字サイズを所定値として持っていてもよいし、手書き文字入力が一行入力である場合は一行入力の枠の高さを用いてもよく、特に限定しない。また、閾値dは、文字幅の最大値wや文字サイズや一行入力の枠の高さそのものを用いるのではなく、例えば、文字幅の最大値w×nなどのようにして求めてもよい。通常、nは1.0〜2.0の範囲であるが、特に限定しない。
【0057】
文字領域判定部4は、確定セグメントの系列から一文字となり得る確定セグメントのセットを文字領域候補として作成し、個々の文字領域をリンクで接続したネットワークを作成する。そして、隣り合ったセグメントを複数個組み合わせて文字領域を決定する。図8は、「枠なし認識」と手書きした場合の「枠な」の部分のセグメントの組み合わせの例である。個々の文字領域は隣り合う可能性があるものの間でリンクが張られる。図9は、「枠なし」と手書きした場合の組み合わせ可能なリンクを矢印で示したものである。例えば、先頭の「木」と「卆」は接続し得るため、「卆」から「木」へのリンクが張られているが、「木」と「な」は、間に「卆」があるため、文字領域が隣接しないため、接続出来ず、リンクは張られない。
【0058】
隣り合ったセグメントを組み合わせるだけなら非常に多くの組み合わせが可能だが、一つの文字として尤もらしい組み合わせでなければならないので、組み合わせはかなり限定される。図9では、文字領域のx方向の幅が標準文字サイズwの1.5倍以内であるセグメントのみ組みあわせるという判定基準を採用しているが、特にこの数字に限定するものではない。
【0059】
文字領域のデータ構造を、定義した例を図10に示す。nSegmentおよびpSegIdxを、それぞれ、文字領域を構成する確定セグメントの数とインデクスとする。文字領域には1から順に通し番号を付けておき、nLinkおよびpLinkによってリンク先の文字領域を示すものとする。なお、nCandおよびpCandには、文字領域単位に個別に認識される文字の結果が格納される。これは、次で述べる個別文字認識部6で利用される。
【0060】
個別文字認識部6は、各文字領域を構成するセグメントに含まれるストロークデータを基に、各文字領域毎にオンライン手書き文字認識を行い、文字認識結果として1又は複数の文字候補を得る。文字領域毎の文字候補毎に文字のコードと認識スコアの組のリストで得られ、図10の文字領域の構造体であるcodeとscoreの中に格納される。個別文字の認識の方法は、オンライン認識であれば特に限定しないが、オンイライン認識とオフライン認識を組みあわせたハイブリッド認識でもよい。
【0061】
最適パス生成部7は、DPマッチングを用いてネットワークから累積スコアの最も高い遷移パスを求め、そのパス上にある認識候補文字から文字認識結果を得る。文字認識結果は、通常、ワープロ等のアプリケーションに通知され、アプリケーションは、認識結果を画面に表示したり、他の何らかの処理に使用する。DPマッチングは、従来例1の文献の中でも用いられている方法であり、既知の方法であるため説明は省略する。
【0062】
かかる構成により、枠なしオンライン認識装置において、筆記している位置から所定距離以上離れている部分までの認識結果が実時間で高い精度で得られ、ユーザは枠なし文字認識の待ち時間を気にする必要が無くなるようにすることが可能となる。
【0063】
(実施形態2)
次に、図11の構成図と図12のフローチャートに基づいて、手書きした文字の削除や書き足し等により、一旦、確定したセグメントを未確定状態に戻す場合の実施形態について説明する。
【0064】
本実施形態は、手書き文字の削除や書き足し等により確定セグメントの変動が生じた場合に備えて、実施形態1の構成に、削除した場合は、削除した文字の部分に相当するセグメントの削除し、それ以降の確定セグメントを未確定状態に戻し、書き足した場合は、書き足しを行なった確定セグメント以降のセグメントを未確定状態に戻し、未確定セグメントに戻したセグメントの文字領域と最適パスを取り消すセグメント確定取消手段と、未確定状態に戻されたセグメントを確定可能か判定し、確定可能なセグメントを確定するセグメント確定処理手段を設けるものである。
【0065】
これは主に二つの効果を狙ったものである。一つ目は、セグメント確定判定部5の判定結果に誤りがあった場合、例えば、新しく入力したストロークが、閾値dを越えた一にある確定セグメントにまで及んだ場合に、その確定判定を取り消してやり直すためである。実施形態1で述べたように、一旦確定したセグメントはそれを用いて文字認識処理まで実行されてしまう。そのため、単に確定したセグメントをセグメント一時格納部3に登録しなおしたところで、処理をやり直した事にはならない。セグメントの確定を取り消すためには、誤って確定したセグメントによって得られた文字認識結果まで取り戻さなければならない。本実施形態はそのための手段を提供するものである。
【0066】
二つ目は、ユーザが既に入力したストロークを取り消した場合である。ユーザが文字を誤って書いてしまい、既に認識結果が得られている部分まで含めて削除した場合や、または文字の一部分(例えば小さな点など)を書き忘れてしまい、後から確定セグメントが存在する領域に書き足した場合などには、確定セグメントの修正、すなわち確定セグメントの未確定状態への移動と未確定セグメントの変形が必要となる。
【0067】
図11において、点線で表示してある部分が実施形態1に対して追加された部分である。実施形態1の構成図1に対し、セグメント取消手段として、セグメント一時格納部3に格納されている確定セグメントを取り消し、未確定セグメントにするセグメント確定取消部8と、確定セグメントが未確定セグメントになったことにより、当該セグメントを使用していた文字領域に関する情報(文字領域判定部4内に保持)を取り消す文字領域取消部9と、当該セグメントを使用していた最適パスに関する情報(最適パス生成部7内に保持)を取り消す最適パス取消部10を追加している。確定セグメントに対してストロークが入力されたか否かの判断をどこで行なうかは、ストローク入力部1で行い、確定セグメントにストロークが入力されるとセグメント確定取消部8に処理を移し、それ以外の場合は、セグメント判定部2に制御を移すようにしてもよいし、セグメント判定部2で判断を行い、確定セグメントにストロークが入力されるとセグメント確定取消部8に処理を移すようにしてもよいし、ストローク入力部1の処理の直後にセグメント確定取消部8に制御を移し、セグメント確定取消部8で確定セグメントに対してストロークが入力されたか否かの判断を行い、確定セグメントにストロークが入力されるとセグメント確定取消処理を行い、それ以外の場合は、セグメント判定部2に処理を移すようにしてもよい。文字領域取消部9と最適パス取消部10は、それぞれセグメント確定取消部8の処理を受けて起動するようになっている。
【0068】
手書き文字を削除した場合のセグメント確定取消処理の流れを、図12のフローチャートを用いて説明する。処理の開始は、手書き文字の削除指示を受けて行なわれる。削除指示の方法は、手書き文字に対して、特定のジェスチャを書いたりする(例えば確定した手書き文字の上に横線を引く)場合等であるが、方法は特に限定しない。
【0069】
まず、入力されたストロークが削除指示か否か判定する(ステップS20)。削除指示の場合(ステップS20:yes)は、削除する手書き文字に対応する確定セグメントをセグメント一時格納部3から削除する(ステップS21)。削除したセグメント以降の確定セグメントは、文字領域と最適パスの見直しを行なうために、未確定セグメントに戻す必要がある。また、削除指示でない場合(ステップS20:no)も、ストロークが入力された確定セグメント以降の確定セグメントは、文字領域と最適パスの見直しを行なうために、未確定セグメントに戻す必要がある。そのため、確定セグメントから未確定セグメントに戻すセグメントに関して、セグメント一時格納部3の確定セグメントのリストからコピーして、新しく、未確定セグメントのリストに加え(ステップS22)、セグメント一時格納部3の確定セグメントのリストから削除する(ステップS23)。こうすることにより、処理対象となる確定セグメントは、未確定セグメントに戻る。次に、文字領域と最適パスを見直す必要があるため、文字領域判定部4に保持されている文字領域から、削除した確定セグメント(未確定セグメントに戻したセグメントを含む)の文字領域を削除し(ステップS24)、最適パス生成部7に保持されているリンクから、削除した文字領域へのリンクを削除する(ステップS25)。
【0070】
次に、認識済みの部分が削除された場合の具体的な動作例を図13に示す。図13の(a)は「枠なし認識」と筆記した直後の状態を示す。まだ、「識」の字に関しては、入力が終わった直後なのでセグメントに分割されただけで、文字領域の判定は行われていない。すなわち末尾の二つのセグメントは未確定状態であり、それを点線の枠で示している。また、このネットワーク図の右側に、ユーザに対して出力されている認識結果文字列を示す。(a)の時点では、「枠なし認」までのセグメントが確定し、そこまでの文字領域候補が判定され、最適パスが計算されて認識結果文字列が得られている。なお、ネットワーク中には文字領域ごとの個別文字認識結果の文字が表示されており、最適パス上の文字は四角で囲まれている。
【0071】
ここで、認識済みの文字「し」の筆跡が削除された場合を考える。削除された直後の状態が(b)である。ここで、削除された「し」よりも後ろの「認」を構成するセグメント部分は「し」のパターンとの位置関係も含めて既にセグメントの確定が行われているので、「し」が削除されれば一旦は未確定状態に戻す必要がある。そこで、「し」以降を未確定に戻した状態が(c)である。ここでは、「認」を構成するセグメントである「 言」と「忍」が未確定になっただけではなく、ネットワークパスや認識結果文字列も削除されている。これは、文字領域取消部9、最適パス取消部10によって、「し」以降の文字領域・最適パスが削除された事による。その結果、認識結果文字列も「枠な」のみが残る事となる。
【0072】
以上のように、筆跡を削除するとそれに関連する文字認識結果や、それよりも後ろにある認識済みパターンの確定セグメントや文字領域やリンクも含めて元の状態に戻される。
【0073】
本実施形態を実現する上で一点だけ問題となるのは、フローチャートのステップS22で確定セグメントをコピーして作成した未確定セグメントをリストに加える処理である。これは未確定セグメントをセグメント一時格納部3に加える処理である。実施形態1の説明では、未確定セグメントを追加する際はリストの末尾に加えれば良いと書いたが、これは、手書き文字を右から左(縦書きの場合は上から下)に順番に書いた場合であり、本実施形態では、確定した文字を修正すると、未確定セグメントは筆記順に登録されるとは限らず、リストの途中に加えなければならない場合もある。そのため、未確定セグメントをリストに加える際に、リスト中の未確定セグメントが、セグメントの右端のx座標の昇順(縦書きの場合はy座標の降順)にソートされるように並べるとよい。これにより、新たにストロークから生成された未確定セグメントを追加する場合も、確定セグメントの取消に伴って未確定セグメントを追加する場合も、同様に処理することが出来るようになる。
【0074】
実施形態1による実時間枠なし手書き文字認識装置では、現在筆記している部分よりも少し前の部分までを認識して結果を出力する。したがって、誤ってセグメントの確定をしてしまわないためには、筆記位置よりも十分に余裕を見て(=閾値dを大きくとって)セグメントの確定を行う必要がある。すなわち、筆記位置と認識位置とのズレを大きく取る必要がある。
【0075】
しかし、実施形態2による認識・確定処理のやり直し機能が加わる事により、もしも誤って確定してもそれが致命的ではなく、誤った部分のみをやり直す事が可能となるので、筆記位置と認識位置のズレを小さくしても(=閾値dを小さくしても)問題は起きない。つまり、実施形態1では、通常、閾値dを文字幅の最大値w×n(nは1.0〜2.0)としていたが、nを1.0未満とすることが出来、よりタイムラグを少なくすることが出来る。また、実施形態2によって、セグメント確定処理の誤りによる性能劣化を回避できる。
【0076】
(実施形態3)
実施形態3は、実施形態2によって確定セグメントが未確定状態に戻された直後に、新たに確定可能なセグメントについて再びセグメント確定処理を行うものである。実施形態2では、次のストロークが入力されるまでセグメントの再確定処理は行われない。しかし、セグメントが確定取消された場合には未確定セグメントの数が増えているので、タイムラグを最小限に抑えるには、確定取消後にすぐに再確定処理を行うのが望ましい。
【0077】
実施形態3の構成を図14に示す。本構成図では、実施形態2のセグメント確定取消手段であるセグメント確定取消部8・文字領域取消部9・最適パス取消部10に、セグメント確定指示部11を加えた4つの処理ブロックにより構成されたセグメント再確定部12がセグメント再確定手段として実現される。これは、確定セグメントが取り消されるのに続いてセグメントを再確定する指示を行う事により、新たなストロークが入力されなくても最新のセグメント確定状態を実現するものである。確定セグメントの取り消しとセグメントの再確定の指示は、特に、利用者が行なう必要はなく、文字の修正指示を行なうと自動的に動くようにするのが好ましい。
【0078】
通常、ストロークが入力されるとセグメント判定部2にて未確定セグメントが作成され、セグメント一時格納部3に格納される。その後、セグメント確定判定部5にて、セグメント一時格納部3に格納された未確定セグメントの内、確定可能なセグメントが判定され、確定可能なセグメントを確定セグメントとしているが、本実施形態では、手書き文字を削除した場合や手書き文字を書き足した場合に、ストローク入力を行なわなくても続いてセグメント確定取消処理とセグメント確定処理を行なう。
【0079】
セグメント確定指示部11は、セグメント確定取消部8・文字領域取消部9・最適パス取消部10の処理の後、セグメント判定部2に対して確定処理の起動を指示する。セグメント判定部2は、セグメント判定をやり直し、確定セグメントから未確定セグメントに戻ったセグメントを、セグメント一時格納部3の確定セグメントのリストから未確定セグメントのリストに移す。セグメント判定部2が未確定セグメントの格納を終えると、セグメント確定判定部5は、セグメント確定処理を開始する。これにより、未確定セグメントのうち確定可能なものが確定セグメントとして、セグメント一時格納部3に格納される。
【0080】
具体的には、図13の例をとると、手書き文字「枠なし認識」の「し」を削除した場合、確定セグメント「し」が削除され、「認」の確定セグメント「言」と「忍」が未確定セグメントに戻される。実施形態2の場合は、次のストロークが入力されるまでセグメント判定・セグメント確定判定や文字領域判定・文字認識・最適パス生成は行なわれないが、本実施形態では、次のストロークの入力を待つ必要がなく、(c)で未確定セグメントであった「認」の「言」と「忍」に対して、続いてセグメント判定・セグメント確定判定や文字領域判定・文字認識・最適パス生成が実行され、(d)に示すように、認識結果が「枠な」から「枠な認」となる。
【0081】
かかる構成により、手書き文字の削除や書き足しにより、修正文字以降のセグメントが未確定になった場合でも、次のストロークが入力されるのを待つこと無く、即座に未確定セグメントに対する認識処理が可能となる。
【0082】
(実施形態4)
実施形態4の構成を図15に示す。実施形態2・3においては、確定セグメントを取り消して再びセグメントの確定処理を行う機能を説明した。その結果、例えば図13にあるように、認識結果文字列も修正可能となる。本実施形態では、実施形態2から4において、手書き文字の修正が発生して、認識文字列が変化した場合、既にアプリケーションに通知した認識結果文字列がどのように変化したかについて通知する例について、手書き文字入力を使用するスケジュール管理やワープロ等のソフトウェアに含まれる手書き文字認識文字を画面に表示するアプリケーションを例にとって説明する。
【0083】
まず最初に、本発明において、手書き認識された文字がどのように表示されるのかについて説明する。本発明は、1ストローク入力される度に、入力された手書き文字を確定セグメントと未確定セグメントに分け、確定セグメントに対してのみ文字認識を行なう。1ストローク入力する度にこの処理が繰り返されるが、1ストローク入力したからといって新しく認識された文字が増えるとは限らないため、アプリケーションへの認識結果文字は、1回または複数回のストローク入力に1回、新しく認識された文字が増えた時のみ通知される。そのため、前から順番にストロークを入力していくと、通常、1文字ずつ認識結果として表示アプリケーションに通知され、表示アプリケーションは、通知された認識結果文字を画面上に追加表示していく。既に認識されている手書き文字(確定セグメントで構成されている)に対して、削除指示を出すかストロークを書き足すと、当該セグメント以降は全て未確定セグメントとなり(削除指示の場合は、当該文字の確定セグメントは削除され、それ以降のセグメントは未確定セグメントになる)、再度、セグメント判定から最適パス生成までの処理が実行され、新しい認識結果が生成された場合にのみ、新しい認識結果文字列(文字数は1以上)が表示アプリケーションに通知される。この場合、表示アプリケーションは、このまま新しい認識結果文字列を受け取って、画面に追加表示すると、一度表示されている手書き文字を修正することなく追加表示することになり、誤った表示をすることになる。
【0084】
つまり、既に認識した手書き文字を削除したり、書き足したりすると、認識結果文字列が変化し、アプリケーションは受け取った認識結果の修正に対してユーザに示す文字列を変更するなど、何らかの処理が必要となる。つまり、既にアプリケーションに通知した認識結果に修正が生じた場合、認識エンジン側が修正内容をアプリケーションに通知する必要がある。
【0085】
以下に、確定セグメントの取り消しによって認識結果が修正された内容を、本発明の実時間枠なしオンライン文字認識装置がアプリケーションに通知する実施例を示す。
【0086】
図15は、実施形態3の図14に認識結果修正情報出力部14を追加したものである。実施形態1・2では、最適パス生成部7が認識結果文字列をアプリケーションに通知していたが、本実施形態では、認識結果情報出力部13が認識結果文字列又は認識結果修正情報のいずれか一方をアプリケーションに通知するものとする。
【0087】
認識結果情報出力部13は、最適パス生成部7を含み、修正がない場合は、認識結果文字列を、修正がある場合は、何文字目から修正したかという情報と修正された認識結果文字列(修正開始位置以降の全ての認識結果文字列)をアプリケーションに通知する。
【0088】
まず、最適パス取消部10は、手書き文字の修正により確定セグメントが未確定セグメントになった場合、最適パス生成部7が保持しているパス情報から未確定セグメントになったセグメントのパス情報を削除するが、その際、何文字目からパスを削除したかというパス削除情報を認識結果情報出力部13に渡す。
【0089】
認識結果情報出力部13は、パス削除情報を受け取った直後に最適パス生成部で生成される認識結果文字列は修正された認識結果文字列であると判定し、何文字目から修正されたかという修正開始位置情報(=パス削除情報)と修正された認識結果文字列をアプリケーションに通知し、直前にパス削除情報を受け取っていないと、最適パス生成部で生成された認識結果文字列は修正された認識結果文字列ではないと判定し、認識結果文字列のみアプリケーションに通知する。
【0090】
以下に、認識結果修正情報がどのようにして作られるか説明する。
【0091】
「枠なし文字認識エンジン」が既に認識された結果だとする。「認識エンジン」の「認識」を削除し、「認識」が書かれていた位置に「入力」を手書き入力するものとする。「認識」を削除すると、「エンジン」という手書き文字を構成するセグメントは未確定セグメントとなる。「認識」が削除された時点で、セグメント確定取消処理が実行され、最適パス取消部10は、「枠なし文字認識エンジン」の5文字目までのパスを残して、6文字目以降のパスを削除し、6文字目から削除したというパス削除情報を認識結果情報出力部13に渡す。最適パスの取り消し処理の後、セグメント確定指示部11により、セグメント判定部2から最適パス生成部7までの処理が、6文字目以降の未確定セグメントに対して再度行われ、修正後の6文字目以降の認識結果文字列「入力エンジン」が、最適パス生成部7の認識結果文字列として生成される。認識結果情報出力部13は、直前に最適パス取消部から受け取った6文字目からパスを削除したというパス削除情報を、6文字目から修正されたという修正開始位置情報(=「6」)として、修正された認識結果文字列「入力エンジン」と共に表示アプリケーションに通知する。既に画面上に、「枠なし文字認識エンジン」と表示している表示アプリケーションは、修正開始位置情報「6」と修正された認識結果文字列「入力エンジン」を受け取り、表示している「枠なし文字認識エンジン」の6文字目からの表示を「入力エンジン」に変更して、「枠なし文字入力エンジン」と表示し直す。
【0092】
かかる構成により、認識結果文字列が修正された場合でも、本発明の実時間枠なしオンライン手書き文字認識装置は、連携しているアプリケーションに修正内容を通知することが可能となる。
【0093】
(実施形態5)
次に、本発明の実施の形態にかかる実時間オンライン枠なし手書き文字認識装置を実現するプログラムは、図16に示す記録媒体の例のように、CD−ROM90−1やフレキシブルディスク90−2等の可搬型記録媒体90に記録されたプログラムだけではなく、通信回線の先に蓄えられた他の記憶装置91や、コンピュータのハードディスクやRAM等の記録媒体92のいずれに記録されたプログラムでも良く、本発明にかかる実時間オンライン枠なし手書き文字認識装置を利用する際に、コンピュータ93により読み込まれ、主メモリ上で実行される。
【0094】
このプログラムをコンピュータにローディングすることにより、筆記中に認識結果を逐次得ることが可能な実時間オンライン枠なし手書き文字入力装置を実現出来るようになる。
【0095】
【発明の効果】
本発明の実時間オンライン枠なしオンライン認識装置によれば、筆記している位置から所定距離以上離れている部分までの認識結果が実時間で高い精度で得られ、ユーザは枠なし文字認識の待ち時間を気にする必要が無くなるようにすることが可能となる。
【0096】
また、本発明の実時間オンライン枠なし手書き文字認識装置によれば、認識・確定処理のやり直し機能が加わる事により、もしも誤って確定してもそれが致命的ではなく、誤った部分のみをやり直す事が可能となるので、筆記位置と認識位置のズレを小さくしても(=閾値dを小さくしても)問題は起きず、セグメント確定処理の誤りによる性能劣化を回避できる。
【0097】
また、本発明の実時間オンライン枠なし手書き文字認識装置によれば、手書き文字の削除や書き足しにより、修正文字以降のセグメントが未確定になった場合でも、次のストロークが入力されるのを待つこと無く、即座に未確定セグメントに対する認識処理が可能となる。
【0098】
また、本発明の実時間オンライン枠なし手書き文字認識装置によれば、認識結果文字列が修正された場合でも、連携しているアプリケーションに修正内容を通知することが可能となる。
【0099】
また、このプログラムをコンピュータにローディングすることにより、筆記中に認識結果を逐次得ることが可能な実時間オンライン枠なし手書き文字入力装置を実現出来るようになる。
【図面の簡単な説明】
【図1】 本発明の実施形態1の構成図
【図2】 入力データのデータ構造(C言語表現)
【図3】 文字切り出しの改善方法を説明する図
【図4】 セグメント判定部の動作フローチャート
【図5】 セグメント判定部の動作例
【図6】 セグメントのデータ構造(C言語表現)
【図7】 セグメント確定判定部の動作例
【図8】 文字領域候補の生成
【図9】 文字領域リンクの生成
【図10】 文字領域のデータ構造(C言語表現)
【図11】 本発明の実施形態2の構成図
【図12】 セグメント確定取消処理の流れ
【図13】 セグメント確定取消処理
【図14】 本発明の実施形態3の構成図
【図15】 本発明の実施形態4の構成図
【図16】 記録媒体の例示図
【図17】 枠なし認識の文字切り出し誤り
【図18】 枠なし文字認識
【図19】 従来例1の構成図
【図20】 従来例2の構成図
【図21】 枠なし文字認識の従来例2の動作フローチャート
【図22】 従来例2による文字切り出しの例
【図23】 文字切り出しの改善方法を説明する図
【符号の説明】
1 ストローク入力部
2 セグメント判定部
3 セグメント一時格納部
4 文字領域判定部
5 セグメント確定判定部
6 個別文字領域認識部
7 最適パス生成部
8 セグメント確定取消部
9 文字領域取消部
10 最適パス取消部
11 セグメント確定指示部
12 セグメント再確定部
13 認識結果情報出力部
30 従来例1の文字列パターン入力部
31 従来例1のセグメント判定部
32 従来例1の文字領域判定部
33 従来例1の個別文字識別部
34 従来例1の最適パス生成部
40 従来例2のストローク入力部
41 従来例2の文字境界判定部
42 従来例2の文字パターン生成部
43 従来例2の枠なし文字認識部
44 従来例2のストローク一時格納部
90 CD−ROMやフレキシブルディスク等の可搬型記録媒体
90−1 CD−ROM
90−2 フレキシブルディスク
91 通信回線の先に蓄えられた他の記憶装置
92 コンピュータ上のRAM/ハードディスク等の記録媒体
93 コンピュータ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a handwritten character recognition device that recognizes a handwritten character written with a stylus pen or the like on a handwritten character input device such as a tablet, converts it into a character code, and uses it in a program on a computer.
[0002]
In particular, it is possible to write a character string at any position on the writing surface without using a character area (for example, a character frame) for writing each character. About.
[0003]
[Prior art]
The handwritten character recognition device is roughly classified into a handwritten character recognition device with a frame having a character input area for each character and a handwritten character recognition device without a frame without a character input region for each character. In this specification, the “character input area for each character” is an area in which handwritten characters are input for each character, separated by a delimiter such as a character frame, vertical line, underline or comma, The color may be changed every time, and there is no particular limitation on how to divide the area for each character. Many conventional on-line handwritten character recognition devices use a character input area for each character that does not require the determination of character separation. The reason is that if there is no character input area for each character, it is necessary to separate the handwritten character string input before character recognition into character units, but it is difficult to separate characters accurately and quickly. is there. However, if there is a character input area for each character, it is necessary to write characters in the character input area by separating each character, and this will impair natural handwriting input. In addition, the development of a frameless handwritten character recognition technology that allows a character string to be freely written as naturally as possible without using a character input area for each character even on the screen.
[0004]
When there is no handwritten character input area for each character, for example, as shown in FIG. 17, there is almost no character spacing between “woman” and “child” even though the intention is to input handwritten as “female college student”. If the character separation position is not determined correctly, the character recognition itself will be incorrect. Cutting out is a big problem.
[0005]
As an example of the frameless character recognition method currently proposed, a method for collectively recognizing the entire input character string pattern will be described below.
[0006]
Senda et al.'S paper “Unframed online string recognition method that integrates segmentation, recognition, and language certainty” (Science Technical Report, PRMU98-138, 1998.12) ”and Fukushima et al. "None handwritten character string recognition (Science Technical Report, PRMU98-139, 1999.12)", the entire input character string pattern is collectively divided into individual segments that make up each character, and these are combined. A method has been proposed in which character recognition is performed for each character region, and the combination having the highest likelihood among the possible combinations of character regions is used as a character string recognition result (hereinafter referred to as Conventional Example 1). A segment is composed of one or a plurality of strokes and is a constituent element of a character, and one character is composed of one or a plurality of segments.
[0007]
The method of determining the character area by combining the segments used in Conventional Example 1 is equivalent to the method of configuring the individual segments in a network shape and obtaining the optimum path from this network, as shown in FIG. A square circumscribing the handwritten character in FIG. 18 is a portion determined as a segment, a dotted arrow indicates a path between segments, and a thick arrow indicates an optimal path, that is, the start of the next character.
[0008]
FIG. 19 shows a configuration diagram of a frameless character recognition method for collectively recognizing the entire input character string pattern in this way. First, a character string pattern is input from the character string pattern input unit 30, the character string pattern input by the segment determination unit 31 is divided into segments, and then the character region candidates are combined by the character region determination unit 32. By creating a link between adjacent character areas, a network structure as shown in FIG. 18 can be generated. Finally, the individual character recognition unit 33 performs character recognition on each character region to create recognition candidates, and the optimum path generation unit 34 determines the character region by obtaining the optimum path from the network, and determines the determined character. Based on the area, a character recognition result character string of each character area is obtained.
[0009]
When the above method is used, the character is cut out and recognized after all the character strings have been written. Therefore, when the user writes a long character string, there is a time lag that cannot be ignored from the end of writing until the recognition result is obtained. Resulting in reduced usability for users
Therefore, as a method to reduce the time lag at the time of recognition, the input character string is divided into line units, or whether the pen movement amount (off stroke) at the time of pen-up is longer than a certain amount in the direction opposite to the writing direction By detecting the end of the line, the method of starting the frameless character recognition process at that time or when the pen-up time exceeds a certain value or the aspect ratio of the written text area exceeds a certain value There has been proposed a method of starting recognition when it becomes. According to these methods, even when a long character string is written, the recognition process up to that point is performed when a certain length is written, so the time for which the user waits for the recognition result (time lag) should be kept within a certain range. Can do. Recognize character strings written so far.
[0010]
As described above, when a certain amount is written, a recognition process is performed for each character pattern string input so far, and a character recognition result as an intermediate result is obtained during writing. However, since these methods start recognition processing in units of lines or several characters, the time lag until a recognition result is still obtained is much longer than character recognition with a frame. The impression of frameless recognition is very bad for users who have used, and this is the main cause of the lack of widespread use of frameless character recognition devices.
[0011]
Therefore, realization of on-line handwritten character recognition without a real time frame is required in which written characters are recognized with almost no waiting time and the recognition result is immediately presented to the user. Next, a conventional example for realizing online handwritten character recognition without a real time frame with a small time lag will be described.
[0012]
In order to realize real time frameless recognition, it is necessary to cut out characters simultaneously with writing. For a method of extracting unframed input characters in real time, see Aizawa et al.'S paper, “Real-time character extraction from handwritten character strings using multiple stroke features (IEICE Technical Report, PRU95-185, pp57-62). 1995-12) ”(hereinafter referred to as Conventional Example 2). In this method, a plurality of features such as stroke intervals and off-stroke directions are used in combination, and each time one stroke is input, it is determined whether or not it is the first stroke of the character.
[0013]
FIG. 20 shows a configuration diagram of real time frameless recognition using this method. The operation flowchart is shown in FIG. Hereinafter, the operation of Conventional Example 2 will be described with reference to these drawings.
[0014]
First, handwriting data of characters written by the user is input for each stroke from the stroke input unit 40 (step S40). In the input stroke, the character boundary determination unit 41 determines whether or not the stroke is the head stroke of the character (step S41). Specifically, the character boundary determination unit 41 determines any one of the three strokes “the beginning of the character”, “not the beginning of the character”, “possibly the beginning of the character but not fixed” To do. Here, even if the input stroke is the beginning of a line, it is regarded as the beginning of a character. Here, if the stroke is not the beginning of the character (step S41: no), or there is a possibility that it is the beginning of the character but it is not fixed (step S41: undecided), the stroke data is added to the temporary stroke storage unit 44. If the stroke is the head of the character (step S41: yes), the character string pattern generation unit 42 extracts the stroke data group already stored in the stroke temporary storage unit 44, A character string pattern is generated (step S43), and the frameless character recognition unit 43 performs a frameless handwritten character recognition process on the character string pattern. (Step S44). The recognized stroke data is cleared from the temporary stroke storage unit 44 (step S45), and the stroke data regarded as the head of the character is stored in the temporary stroke storage unit 44 (step S42). Then, when a predetermined time t1 (normally 0.5 to 2.0 seconds) elapses or a time-out occurs or a recognition button provided on the handwritten character input device is pressed (step S45: YES), a character string pattern is generated. The unit 42 extracts the stroke data group already stored in the temporary stroke storage unit 44, generates a character string pattern (step S46), and the frameless character recognition unit 43 recognizes the character string pattern without framed handwritten characters. Processing is performed (step S47), and the recognized stroke data is cleared from the temporary stroke storage unit 44 (step S48). When a predetermined time t2 (usually 3 to 5 seconds) elapses and a time-out occurs or a confirmation button provided on the handwritten character input device is pressed (step S49: YES), the recognition result is sent to an application or the like (step S49). S50), the process is terminated. In other cases (step S49: no), the process returns to step S40. The recognition method in the frameless character recognition unit 43 can clearly determine whether or not the input stroke is the beginning of the character, and there must be a stroke that may be the beginning of the character but is not fixed. For example, since stroke data for one character is stored in the stroke data stored in the temporary stroke storage unit 44, it is possible to use the frame recognition method. Since it may not be possible to clearly determine whether the character is at the beginning, stroke data for a plurality of characters may be stored. Therefore, it is necessary to use a frameless recognition method so that it can cope with either case.
[0015]
FIG. 22 shows a success example and a failure example of character segmentation according to Conventional Example 2. In the figure, a bold line is a stroke determined to be the beginning of a character, a dotted line is a stroke that is not the beginning of the character, and a thin solid line is a stroke that can be the beginning of the character but is not definite. In the example of (a), all bold strokes are at the beginning of the character, and the determination result is correct. However, in the example of (b), there are two thick lines in the character “sen”. This is because at the time when the vertical line of the 3rd stroke of "Sen" was written, this stroke was determined to be at the beginning of the character with a sufficient distance from the previous 2 strokes. When a stroke is written, the interval between the previous two strokes is narrowed, and the condition that can be determined at the beginning of the character is lost. In the conventional example, this cannot be avoided.
[0016]
The above errors are caused by trying to determine the boundary position of the character, although the boundary position of the character cannot be determined at the time of writing the stroke. That is, the method of determining whether or not the beginning of the character is input every time one stroke is input as in the conventional example cannot accurately determine the character boundary, so that accurate character recognition without a real time frame cannot be realized. That's it.
[0017]
[Problems to be solved by the invention]
As described above, in the batch type frameless character recognition as in the conventional example 1, since character recognition is performed collectively, there is no real time frame in which recognition takes time and recognition processing is performed in parallel with writing. Character recognition cannot be realized.
[0018]
On the other hand, although the real-time recognition is realized in Conventional Example 2, the character boundary position of the input pattern is determined every time a stroke is input. May be changed to the determination that the stroke is not the beginning of the character, and in that case, if frameless character recognition is performed with the stroke group before the stroke determined to be the beginning of the character, Unrecognizable character without frame. That is, since it cannot be accurately determined whether or not it is the beginning of a character with only one stroke, there is a problem in that the accuracy of character extraction is reduced and accurate character recognition cannot be performed.
[0019]
[Means for Solving the Problems]
Briefly, the present invention performs character recognition processing in parallel with writing in order to minimize the time lag as in the conventional example 1, and at the same time, causes a character cut-out error as in the conventional example 2. It is difficult to achieve accurate real-time frameless character recognition that is easy to correct even if an error occurs.
[0020]
That is, the online handwritten character recognition device without a real time frame according to the present invention inputs a stroke of a handwritten character and converts it into stroke data; Said Based on stroke data and existing indoubt segments, Said A segment determination unit that determines whether stroke data is a new unconfirmed segment or an addition to an existing unconfirmed segment, and based on the segment, determines whether the segment is a deterministic segment or an unconfirmed segment, and confirms the segment. A segment determination unit to perform, a character region determination unit for determining a character region for each character composed of a combination of determined segments based on the determined segment, and for each character region based on the stroke data included in each character region An individual character recognition unit that recognizes the handwritten character online and generates a character candidate, and an optimal path generation unit that generates an optimal path of a combination of character candidates for each character region and outputs an optimal character combination as a recognition result When the stroke data is input to a confirmed segment, it is determined whether or not the stroke data is a deletion instruction. In the case of a deletion instruction, the determined segment to which the stroke data is input is deleted and thereafter If the confirmed segment is in an unconfirmed state and there is no deletion instruction, a segment confirmed canceling unit that places the confirmed segment after the confirmed segment in which the stroke data is input in an unconfirmed state, and a segment processed by the segment confirmed canceling unit On the other hand, when the character area canceling unit cancels the determination of the character region, the optimum path canceling unit canceling the optimal path for the segment processed by the segment confirmation canceling unit, and when the stroke data is a deletion instruction, Returned to the unconfirmed state by the segment confirmation cancellation unit for the segment determination unit A segment confirmation instructing section for instructing to redo the determination of the segment, and a correction start of the recognition result character string after the character modified by the cancellation of the segment confirmation and the number of characters in the output recognition result character string. Recognition result information output that outputs correction information consisting of position information Comprising When the stroke data is input to a confirmed segment, the segment confirmation cancellation unit, character area cancellation unit, optimum path cancellation unit, and segment determination instruction unit are processed. If the stroke data is not input to the confirmed segment, the correction information for the output recognition result character string is output to the linked application. Every time one stroke is input, Execute the process of the segment determination unit, segment determination unit, character region determination unit, individual character recognition unit and optimal path generation unit, Character recognition is performed on a segment portion for which input has been confirmed.
[0021]
With this configuration, the real-time frameless online recognition apparatus according to the present invention can obtain a recognition result up to a portion that is a predetermined distance or more away from the writing position in real time with high accuracy, and the user can perform frameless character recognition. It is possible to eliminate the need to worry about the waiting time.
[0022]
Also, With this configuration, The online recognition device without a real time frame according to the present invention is: Handwritten characters can be corrected, and even if the recognition / confirmation process is wrong, it is possible to redo only the wrong part, and even if the deviation between the writing position and the recognition position is reduced (= threshold value d described later is reduced). No problem will occur, and it will be possible to avoid performance degradation due to errors in segment confirmation processing. The
[0023]
Also, With such a configuration, the online recognition device without a real time frame according to the present invention is Even if a handwritten character that has already been confirmed is deleted or a stroke is added to the handwritten character, the segment after the corrected character becomes unconfirmed, without waiting for the next stroke to be input. Perform recognition processing for definite segments It becomes possible.
[0024]
Also, With this configuration, An online handwritten character recognition device without a real time frame according to the present invention is: Even if the recognition result character string is modified, it is possible to notify the linked application of the modified content. The "
[0025]
Also , Online handwritten character recognition without real time frame according to the present invention The program recognizes online handwritten characters without real time frame, means for inputting strokes of handwritten characters and converting them into stroke data, the stroke data based on the stroke data and existing undefined segments, Segment means for determining whether a new unconfirmed segment or an addition to an existing unconfirmed segment, segment means for determining whether or not the segment is a definite segment or an indeterminate segment based on the segment, and confirming the segment Based on the segment, character area determination means for determining a character area for each character consisting of a combination of confirmed segments, on the basis of the stroke data included in each character area, the handwritten characters are recognized online for each character area, Individual generation of character candidates Character recognition means, optimal path generation means for generating an optimum path of a combination of character candidates for each character area, and outputting an optimum character combination as a recognition result, and when the stroke data is input to a definite segment, It is determined whether or not the stroke data is a delete instruction, and if it is a delete instruction, the determined segment to which the stroke data has been input is deleted and the subsequent determined segment is set to an unconfirmed state. Segment finalization canceling means for setting the final segment after the finalized segment to which data is input to an indeterminate state, character area canceling means for canceling the determination of the character area for the segment processed by the segment finalization canceling means, and the segment finalization For the segment processed by the canceling means, the best path to cancel A path cancellation means, a segment confirmation instruction means for instructing the segment determination means to redo the determination of the segment returned to the unconfirmed state by the segment confirmation cancellation means when the stroke data is a deletion instruction; and A recognition result information output means for outputting correction information including a recognition result character string after the character corrected by canceling the segment confirmation and correction start position information indicating from which character of the output recognition result character string has been corrected; It is characterized by functioning as The
[0026]
By reading the program having such a configuration into a computer and executing it, Online handwritten character recognition device without real time frame In real-time online frames, the recognition result up to a part more than a predetermined distance from the writing position can be obtained with high accuracy in real time, and the user does not have to worry about the waiting time for frameless character recognition None Handwritten character input device can be realized The
[0027]
Also, Such configuration By loading and running the program on your computer, Online recognition apparatus without real time frame according to the present invention In this case, it is possible to correct handwritten characters, and even if the recognition / confirmation process is wrong, it is possible to redo only the wrong part, and even if the deviation between the writing position and the recognition position is reduced (= threshold d described later). This will not cause any problems, and a real-time online frameless handwritten character input device that can avoid performance degradation due to an error in segment determination processing can be realized. The
[0028]
Moreover, the program according to the present invention is executed by causing the computer to read the program having such a configuration and execute the program. Online recognition device without real time frame Even in the case of deleting the already determined handwritten character or adding a stroke to the handwritten character, even if the segment after the corrected character is unconfirmed, without waiting for the next stroke to be input, Real-time online frameless handwritten character input device capable of instant recognition processing for unconfirmed segments can be realized. The
[0029]
Moreover, the program according to the present invention is executed by causing the computer to read the program having such a configuration and execute the program. Online handwritten character recognition device without real time frame Even if the recognition result character string is modified, it is possible to notify the linked application of the modified content. Real-time online frameless handwritten character input device can be realized. "
[0030]
DETAILED DESCRIPTION OF THE INVENTION
The principle of the basic embodiment of the present invention will be described below.
[0031]
First, it will be described how the present invention solves the decrease in accuracy in Conventional Example 2.
[0032]
In Conventional Example 2, the time lag in Conventional Example 1 is eliminated, but the character boundary cannot be accurately determined because the character boundary is determined for each stroke. In order to accurately determine whether or not each stroke is at the boundary position of the character, it is necessary to make a determination including a stroke existing around the input stroke. For example, as shown in FIG. 23, the character “sen” is a combination of “people” and “mountain”, and the strokes constituting each part are located in the vicinity and can be grouped. This group is a part that constitutes a character and does not extend over a plurality of characters. Such a group that forms a part of a character is called a “segment”. In batch type frameless character recognition as in Conventional Example 1, the input character string pattern is divided into segments and then the character boundary is determined, so the time lag until recognition is long, but the character boundary is It does not fluctuate. In contrast, Conventional Example 2 determines the character boundaries in units of strokes, so the time lag until recognition is short. There was no problem.
[0033]
In order to solve this problem, in the present invention, instead of determining a character boundary every time a stroke is input, each time a stroke is input, first, a group of strokes input before that is also included. The segment is determined and segmented, and then the character boundary is determined. Here, the problem is that at the time when the input stroke group is divided into segments, it is undecided whether or not each segment is the head of a character. That is, there is no fixed character boundary position by simply dividing the segment. For this reason, when segments are extracted, it is necessary to determine character boundaries by combining the segments. Here, it is referred to as character area determination in the sense of determining an area constituting one character.
[0034]
In order to determine the character area, it is necessary to determine the segments constituting the character area. For example, in the conventional example 2, when the character area or segment is determined, the first stroke constituting each area is used. However, in order to determine the character area, all strokes constituting the segment are necessary. It is not enough to know the leading stroke. Since the segment is extracted while the user is writing characters, even if one segment is extracted, there is a possibility that the segment may change when the user adds a stroke to the segment. Therefore, when the character area is determined, it is necessary that the segment constituting the character area is fixed, that is, the segment is not changed by a user input. That is, a segment determination determination unit that determines whether or not a segment has been determined is required in addition to a segment determination unit.
[0035]
When the character area is determined, a network structure (see FIG. 18) using only the currently determined segment can be created. Therefore, individual character recognition and optimum path calculation can be performed using this network, and a character recognition result as an intermediate result can be obtained while writing a character string.
[0036]
The above is the principle of the present invention, which is a method for accurately realizing character recognition without a real time frame. The points of the present invention can be roughly summarized as follows.
[0037]
While writing a character string, since the character recognition result including the latest stroke is unconfirmed, erroneous recognition will inevitably occur when the recognition result using all the written strokes is obtained. Therefore, in the present invention, the recognition result up to the part where the input is confirmed, slightly before the stroke being written, is calculated and output as an intermediate result. As a result, a recognition result up to a portion not far from the writing location is obtained in real time, and the user does not need to worry about the waiting time for frameless character recognition.
[0038]
(Embodiment 1)
An embodiment of the present invention will be described based on the configuration diagram of FIG.
[0039]
Normally, handwritten characters are input using a stylus pen on a tablet in a personal computer and on a transparent tablet integrated with a display screen in a PDA. In addition, input may be performed using a pointing device such as a mouse.
[0040]
First, the handwriting input by the user is input as continuous coordinate point sequence data every time one stroke is input by using a function of a general-purpose OS such as Windows (trademark of Microsoft Corporation). Thus, stroke data is generated by extracting coordinate points at predetermined time intervals from continuous coordinate point sequence data. The generated stroke data is normally non-continuous coordinate point sequence data. However, when echo back display is performed, these coordinate point sequences are connected by lines.
[0041]
Taking an example of character string pattern data of input handwritten characters expressed in C language, the data structure shown in FIG. 2 is formed as an array of stroke data and stored in the memory. nPoint indicates the data of the coordinate point sequence constituting the stroke data, pPoint indicates the coordinate point of the coordinate point sequence constituting the stroke data, and x and y are the x coordinates of the coordinate points of pPoint, respectively. , Y coordinate. nStroke indicates the number of stroke data of the character string pattern data, and pStroke indicates the stroke data.
[0042]
The input stroke data is transferred to the segment determination unit 2, and a segment including the stroke data is extracted. The segment extracted here is stored in the segment temporary storage unit 3 as an undetermined segment. The segment temporary storage unit 3 can be provided on a storage device such as a hard disk, but it is preferably provided on a memory because the capacity is small and speed is required.
[0043]
What is important in the segment determination is that an undefined segment already stored in the segment temporary storage unit 3 is affected by a new stroke input. Specifically, when a new stroke is input, the unconfirmed segment before the stroke input becomes a definite segment, the newly input stroke forms a new unconfirmed segment, or the newly input stroke is added to the unconfirmed segment. It is a point to do. In this way, each time a stroke is input, the input character string pattern data is divided into a definite segment that is used for character recognition at that time and an undefined segment that is not used for character recognition. It is.
[0044]
Taking the character “sen” as an example, FIG. 3 shows how the unconfirmed segment (segment surrounded by a bold circumscribing frame) changes when the fifth to fifth drawings of “sen” are input. . First, assume that two strokes have been input. When the third image is input, a new unconfirmed segment is created with the stroke of the third image, as shown in FIG. When the fourth image is input, the 2-stroke segment of the third image and the fourth image becomes a new unconfirmed segment. Similarly, when the fifth image is input, three strokes from the third image to the fifth image become a new unconfirmed segment. As described above, the unconfirmed segment changes each time a stroke is input.
[0045]
In the description of FIG. 3, it has been described how the unconfirmed segment changes when the character “sen” is written. When there are a plurality of unconfirmed segments, the segment determination unit 3 selects a plurality of unconfirmed segments. How to determine whether or not to combine will be described.
[0046]
The segment determination unit 2 creates an undetermined segment according to the procedure shown in the flowchart of FIG. FIG. 5 shows how the segment determination unit 1 actually registers an undetermined segment according to FIG.
[0047]
First, the operation of the segment determination unit 2 will be described using the flowchart of FIG.
[0048]
First, a stroke is input from the stroke input unit 1 (step S1). Next, only one input stroke is registered as a new segment (step S2), and an index is set for the final unconfirmed segment of the unconfirmed segment group composed of already input strokes (step S3). ). If the index position is not empty, that is, if an undefined segment exists before the new segment (step S4: no), information on the undefined segment at the position where the index is set is acquired (step S6). . Then, the position information (x coordinate in the present embodiment) of the new segment and the acquired uncertain segment is compared (step S7), and it is determined whether or not both segments can be connected (step S8). If both segments are not connectable (step S8: no), the index is moved forward (step S9), and the process returns to step S4. If both segments can be connected (step S8: yes), both segments are connected to form a new segment (step S10), the connected unconfirmed segment is deleted (step S11), and the index is determined as an unconfirmed segment. It resets to the end (step S12) and returns to step S4. When these processes are repeated and the index position becomes empty, that is, when there is no unconfirmed segment before the new segment (step S4: yes), the new segment is registered in the segment temporary storage unit 3 as an unconfirmed segment. (Step S5).
[0049]
A specific example of registering a new unconfirmed segment by connecting a new segment and an unconfirmed segment will be described with reference to FIG. In FIG. 5, it is assumed that a dotted line frame represents an undetermined segment, a solid line frame represents a new segment, and a thick arrow represents an index indicating the previous undetermined segment.
[0050]
In this embodiment, a segment that is at least two character sizes to the left of the current input position is set as a confirmed segment.
[0051]
First, (a) of FIG. 5 is a segment division state at the time of writing up to the third stroke of “No” of “No frame”, and each segment has an interval in the x-coordinate direction. Divided into unconfirmed segments.
[0052]
When the next stroke (the fourth stroke of “NA”) is input in the initial state of (a), the fourth stroke of “NA” becomes a new segment, as shown in (b), as shown in (c). Thus, the index is set at the end of the unconfirmed segment (here, the unconfirmed segment of the third stroke of “NA”). Subsequently, the x-coordinate data of the indeterminate segment at the index position and the new segment are compared. If the x-coordinate data is at a position that satisfies the predetermined criteria, both segments are combined to create a new new segment as shown in (d). It is done. Next, as shown in (e), the index is reset to the previous unconfirmed segment. Similarly, as shown in (f) and (g), segment combination and index resetting are performed. In the state of (f), since there is a clear interval between the new segment (“NA”) and the unconfirmed segment (“)”), as shown in FIG. Therefore, the index moves further forward. There is a clear interval between the segment pointed to by the index (“卆”) and the previous segment (“Tree”), and as shown in (h), the index is undecided by the previous one. Reset to segment ("tree"). Since there is no unconfirmed segment in front of the “tree” segment, as shown in (i), only the index is moved forward and finally it reaches before the first segment and points to nothing ( = Index position is empty), a new segment is registered as a new unconfirmed segment. Further, when there is a segment before, the determination of the unconfirmed segment is performed up to the confirmed segment (in this example, the segment within two characters from the latest segment).
[0053]
Here, an example of a criterion for determining whether or not to connect an indeterminate segment and a new segment is given. As one example of implementation, here, “(A) two segments in the x-direction region overlap each other by a certain value” or “(B) one segment in the x-direction is the other in the x-direction. The segment is connected when either of the following is true. Specifically, the maximum value and minimum value of the x coordinate of the coordinate point of one or more stroke data included in the segment are the maximum value and minimum value of the x coordinate of the segment, and the x coordinate of the new segment and the undefined segment It is recommended to compare the maximum value and the minimum value of these to check whether the above-mentioned conditions are satisfied. This is a criterion for horizontal writing. In the case of vertical writing, the determination is made in the y-direction area. Note that the criterion for determining segment connection is not particularly limited to this.
[0054]
In the segment temporary storage unit 3, an undefined segment array and a confirmed segment array are stored separately. The new undefined segment and the definite segment are added to the end of the undefined segment array and the definite segment array, respectively. FIG. 6 shows an example of the data structure of the segment information using C language. nStroke is the number of strokes constituting the segment, and pStrIdx is an array of indexes indicating the strokes constituting the segment. The index is an integer starting from 1, indicating the number of strokes in the input pattern. top and btm indicate the coordinates of the upper left and lower right vertices of the circumscribed frame of the segment. These coordinates are used to check the positional relationship of the segments, such as when the segment determination unit determines the overlap of the x region of the undefined segment and the new segment. The segment temporary storage unit 3 may store the unconfirmed segment and the deterministic segment in different areas or files on the memory, or the undetermined segment and the deterministic segment can be identified so that the same file The storage method is not particularly limited.
[0055]
After performing the segment determination, the segment determination determination unit 5 determines which of the unconfirmed segments stored in the segment temporary storage unit 3 can be determined. Segment determination is a segment that can be regarded as not deformed even when a new stroke is input. For example, in the case of a horizontally written character string, characters are written in order from left to right (from top to bottom in vertical writing), so new strokes are written to the left (up in vertical writing) beyond the input strokes. It can be said that this is a phenomenon only within one character. Therefore, even if the size of the handwritten character varies to some extent and the character spacing is taken into account, the segment that is to the left of the character width maximum value w or more than the stroke currently being written (above for vertical writing) is fixed. You can say that. Therefore, the segment determination determination unit 5 uses such a determination criterion to set a segment that is left to the left by a certain threshold d or more than the segment including the stroke being written. Good. In other words, in the case of horizontal writing, “determine the segment to the left of one character size from the current input position”, in the case of vertical writing, “from one character size from the current input position. In other words, the determination is made based on a predetermined determination criterion such as “determine the upper segment”.
[0056]
An example of the operation of the segment determination determination unit 5 by the above method is shown in FIG. In FIG. 7 (a), up to “frame” has been written, and the dotted character after that is an unfilled character. Here, all the segments indicated by dotted lines indicate that they are all undetermined segments. (B) shows a state where the following “shi” is entered. Here, the segment “tree” located at the left of the threshold “d” or more from the left end of the “shi” segment is in a definite state. Similarly, at the time when the “verification” bias of “approval” is input, the “卆” segment is determined because it is separated by more than the threshold value d, and the “na” segment is not determined because it is not separated by more than the threshold value d, At the time when “Ninja” of “approval” is inputted, the “na” segment is determined because it is more than the threshold value d. In this way, as writing progresses, the segment located at the left of the latest stroke by more than the threshold value d is determined. For the information of the segment that has become a new confirmed segment from the unconfirmed segment, copy the information of the corresponding unconfirmed segment in the segment temporary storage unit 3, add it to the list of confirmed segments, and delete the information of the corresponding unconfirmed segment To do so. Here, the threshold value d may have an appropriate value in advance, for example, the maximum value w of the character width or the character size as a predetermined value, and if the handwritten character input is a single line input, the height of the frame of the single line input There is no particular limitation. Further, the threshold value d may be obtained as, for example, the maximum value w × n of the character width, instead of using the maximum value w of the character width, the character size, or the height of the frame for one line input. Usually, n is in the range of 1.0 to 2.0, but is not particularly limited.
[0057]
The character area determination unit 4 creates a set of confirmed segments that can be one character from a series of confirmed segments as a character area candidate, and creates a network in which individual character areas are connected by links. Then, a character region is determined by combining a plurality of adjacent segments. FIG. 8 is an example of a combination of segments of the “frame” portion when handwritten as “frameless recognition”. Individual character areas are linked between those that may be adjacent. FIG. 9 shows, by arrows, links that can be combined when handwritten as “no frame”. For example, since the first “tree” and “卆” can be connected, a link from “卆” to “tree” is set, but “tree” and “na” have “卆” between them. Therefore, since the character area is not adjacent, it cannot be connected and the link is not established.
[0058]
A lot of combinations are possible only by combining adjacent segments, but the combination is quite limited because it must be a plausible combination as one character. In FIG. 9, the criterion of combining only segments whose width in the x direction of the character area is 1.5 times or less of the standard character size w is used, but it is not particularly limited to this number.
[0059]
An example in which the data structure of the character area is defined is shown in FIG. Let nSegment and pSegIdx be the number and index of the definite segments that make up the character area, respectively. A serial number is assigned to the character area in order from 1, and the linked character area is indicated by nLink and pLink. In nCand and pCand, the result of the character individually recognized for each character area is stored. This is used in the individual character recognition unit 6 described below.
[0060]
The individual character recognition unit 6 performs online handwritten character recognition for each character area based on the stroke data included in the segments constituting each character area, and obtains one or more character candidates as a character recognition result. A character code / recognition score pair list is obtained for each character candidate for each character region, and stored in code and score, which are character region structures in FIG. The method for recognizing individual characters is not particularly limited as long as it is online recognition, but may be hybrid recognition combining on-line recognition and offline recognition.
[0061]
The optimal path generation unit 7 obtains a transition path with the highest cumulative score from the network using DP matching, and obtains a character recognition result from recognition candidate characters on the path. The character recognition result is normally notified to an application such as a word processor, and the application displays the recognition result on the screen or uses it for some other processing. DP matching is a method used in the literature of Conventional Example 1, and since it is a known method, description thereof is omitted.
[0062]
With such a configuration, in the frameless online recognition device, recognition results up to a portion that is more than a predetermined distance from the writing position can be obtained with high accuracy in real time, and the user cares about the waiting time for frameless character recognition. It is possible to eliminate the need to do this.
[0063]
(Embodiment 2)
Next, based on the configuration diagram of FIG. 11 and the flowchart of FIG. 12, an embodiment will be described in which a confirmed segment is once returned to an unconfirmed state by deleting or adding handwritten characters.
[0064]
In this embodiment, in the case where the confirmed segment changes due to the deletion or addition of handwritten characters, the configuration corresponding to the first embodiment deletes the segment corresponding to the deleted character portion. When the confirmed segment after that is returned to the unconfirmed state and added, the segment after the confirmed confirmed segment is returned to the unconfirmed state, and the character area and optimum path of the segment returned to the unconfirmed segment are returned. Segment cancellation / cancellation means for canceling, and segment determination processing means for determining whether or not a segment returned to an indeterminate state can be determined and determining a determinable segment are provided.
[0065]
This is mainly aimed at two effects. First, when there is an error in the determination result of the segment determination determination unit 5, for example, when a newly input stroke reaches one fixed segment that exceeds the threshold value d, the determination is determined. This is to cancel and start over. As described in the first embodiment, the segment once determined is used to execute the character recognition process. For this reason, when the determined segment is simply re-registered in the segment temporary storage unit 3, the processing is not restarted. In order to cancel the confirmation of the segment, the character recognition result obtained by the erroneously determined segment must be recovered. This embodiment provides means for that purpose.
[0066]
The second case is a case where a stroke already input by the user is canceled. If the user accidentally writes a character and deletes it including the part where the recognition result has already been obtained, or forgets to write a part of the character (for example, a small dot) and there is a confirmed segment later For example, when a region is written, it is necessary to correct the confirmed segment, that is, move the confirmed segment to the unconfirmed state and transform the unconfirmed segment.
[0067]
In FIG. 11, a portion indicated by a dotted line is a portion added to the first embodiment. Configuration of Embodiment 1 Compared to FIG. 1, as a segment canceling means, a segment fixed cancellation unit 8 that cancels a confirmed segment stored in the segment temporary storage unit 3 and sets it as an unconfirmed segment, and the confirmed segment becomes an unconfirmed segment. Thus, the character area canceling unit 9 for canceling the information related to the character area using the segment (held in the character area determining unit 4), and the information regarding the optimal path using the segment (optimal path generating unit) 7 is added to the optimum path canceling unit 10. Where to determine whether or not a stroke has been input to the confirmed segment is determined by the stroke input unit 1. When a stroke is input to the confirmed segment, the process is transferred to the segment finalization canceling unit 8. The control may be transferred to the segment determination unit 2, or the determination may be performed by the segment determination unit 2, and the process may be transferred to the segment confirmation cancellation unit 8 when a stroke is input to the determined segment. Immediately after the processing of the stroke input unit 1, the control is transferred to the segment confirmation / cancellation unit 8, and the segment confirmation / cancellation unit 8 determines whether or not a stroke is input to the confirmed segment, and the stroke is input to the confirmed segment. Then, the segment confirmation cancellation process is performed, and in other cases, the process may be moved to the segment determination unit 2. The character area canceling unit 9 and the optimum path canceling unit 10 are activated in response to the processing of the segment confirmation canceling unit 8, respectively.
[0068]
The flow of the segment confirmation / cancellation process when the handwritten character is deleted will be described with reference to the flowchart of FIG. The processing is started in response to an instruction to delete handwritten characters. The method for instructing deletion is a case where a specific gesture is written on a handwritten character (for example, a horizontal line is drawn on a confirmed handwritten character), but the method is not particularly limited.
[0069]
First, it is determined whether or not the input stroke is a deletion instruction (step S20). In the case of a deletion instruction (step S20: yes), the confirmed segment corresponding to the handwritten character to be deleted is deleted from the segment temporary storage unit 3 (step S21). The confirmed segment after the deleted segment needs to be returned to the unconfirmed segment in order to review the character area and the optimum path. Even if it is not a deletion instruction (step S20: no), it is necessary to return the confirmed segment after the confirmed segment to which the stroke is input to the unconfirmed segment in order to review the character area and the optimum path. Therefore, the segment to be returned from the confirmed segment to the unconfirmed segment is copied from the confirmed segment list in the segment temporary storage unit 3 and added to the new unconfirmed segment list (step S22), and the confirmed segment in the segment temporary storage unit 3 Are deleted from the list (step S23). By doing so, the confirmed segment to be processed returns to the unconfirmed segment. Next, since it is necessary to review the character area and the optimum path, the character area of the deleted confirmed segment (including the segment returned to the unconfirmed segment) is deleted from the character area held in the character area determination unit 4. (Step S24), the link to the deleted character area is deleted from the link held in the optimum path generation unit 7 (Step S25).
[0070]
Next, FIG. 13 shows a specific operation example when the recognized part is deleted. FIG. 13A shows a state immediately after writing “frameless recognition”. As for the character of “K”, it is just divided into segments because it is immediately after input, and the character area is not determined. That is, the last two segments are in an indeterminate state, which is indicated by a dotted frame. Moreover, the recognition result character string output to the user is shown on the right side of the network diagram. At the time point (a), segments up to “no frame recognition” are determined, character area candidates up to that are determined, an optimum path is calculated, and a recognition result character string is obtained. In the network, characters of individual character recognition results for each character area are displayed, and characters on the optimum path are surrounded by squares.
[0071]
Here, consider a case where the handwriting of the recognized character “shi” is deleted. The state immediately after being deleted is (b). Here, the segment part that constitutes the “recognition” after the deleted “Shi” has already been determined including the positional relationship with the “Shi” pattern, so “Shi” is deleted. Once done, it is necessary to return to the indeterminate state. Therefore, (c) is a state in which “SHI” and after are returned to undetermined. Here, not only “word” and “shinobi”, which are segments constituting “approval”, are unconfirmed, but also the network path and the recognition result character string are deleted. This is because the character area / optimum path after “shi” is deleted by the character area cancellation unit 9 and the optimum path cancellation unit 10. As a result, the recognition result character string is left with only “frame”.
[0072]
As described above, when the handwriting is deleted, the character recognition result related to the handwriting and the confirmed segment, the character area, and the link of the recognized pattern behind it are restored to the original state.
[0073]
The only problem in realizing this embodiment is the process of adding the unconfirmed segment created by copying the confirmed segment in step S22 of the flowchart to the list. This is a process of adding an undetermined segment to the segment temporary storage unit 3. In the description of the first embodiment, when adding an indeterminate segment, it was written that it should be added to the end of the list, but this is because handwritten characters are written in order from right to left (from top to bottom in the case of vertical writing). In this embodiment, when a confirmed character is corrected, unconfirmed segments are not necessarily registered in the order of writing, and may have to be added in the middle of the list. Therefore, when an unconfirmed segment is added to the list, the unconfirmed segments in the list may be arranged so as to be sorted in the ascending order of the x coordinate at the right end of the segment (in the descending order of the y coordinate in the case of vertical writing). As a result, the same processing can be performed when an unconfirmed segment newly generated from a stroke is added or when an unconfirmed segment is added in association with the cancellation of the confirmed segment.
[0074]
The handwritten character recognition apparatus without a real time frame according to the first embodiment recognizes up to a portion slightly before the currently written portion and outputs the result. Therefore, in order not to determine the segment by mistake, it is necessary to determine the segment with a sufficient margin (= threshold value d larger) than the writing position. That is, it is necessary to make a large difference between the writing position and the recognition position.
[0075]
However, by adding the recognition / determination process redo function according to the second embodiment, it is not fatal if the mistaken decision is made, and only the wrong part can be redone. Even if the deviation is reduced (= threshold d is reduced), no problem occurs. That is, in the first embodiment, the threshold value d is normally set to the maximum character width w × n (n is 1.0 to 2.0). However, n can be less than 1.0, and the time lag is further reduced. It can be reduced. Further, according to the second embodiment, performance degradation due to an error in segment determination processing can be avoided.
[0076]
(Embodiment 3)
In the third embodiment, immediately after the confirmed segment is returned to the undetermined state according to the second embodiment, the segment deciding process is performed again for a newly decidable segment. In the second embodiment, the segment reconfirmation process is not performed until the next stroke is input. However, since the number of unconfirmed segments increases when a segment is confirmed and canceled, it is desirable to perform the reconfirmation process immediately after canceling the confirmation in order to minimize the time lag.
[0077]
The configuration of the third embodiment is shown in FIG. In this configuration diagram, the segment confirmation cancellation unit 8, the character area cancellation unit 9, and the optimum path cancellation unit 10, which are the segment determination cancellation unit of the second embodiment, are configured by four processing blocks including a segment determination instruction unit 11. The segment reconfirmation unit 12 is realized as a segment reconfirmation unit. In this case, by issuing an instruction to re-establish the segment after the confirmed segment is canceled, the latest segment confirmed state is realized even if a new stroke is not input. The instruction for canceling the confirmed segment and re-establishing the segment is not particularly required by the user, and it is preferable to automatically move when a character correction instruction is issued.
[0078]
Normally, when a stroke is input, an undefined segment is created by the segment determination unit 2 and stored in the segment temporary storage unit 3. Thereafter, the segment confirmation determination unit 5 determines a definable segment among the unconfirmed segments stored in the segment temporary storage unit 3, and uses the determinable segment as a definite segment. When a character is deleted or a handwritten character is added, segment confirmation cancellation processing and segment confirmation processing are subsequently performed without performing stroke input.
[0079]
The segment confirmation instruction unit 11 instructs the segment determination unit 2 to start the confirmation process after the processing of the segment confirmation cancellation unit 8, the character area cancellation unit 9, and the optimum path cancellation unit 10. The segment determination unit 2 redoes the segment determination, and moves the segment that has returned from the confirmed segment to the unconfirmed segment from the confirmed segment list in the segment temporary storage unit 3 to the unconfirmed segment list. When the segment determination unit 2 finishes storing the undetermined segment, the segment determination determination unit 5 starts the segment determination process. As a result, of the unconfirmed segments that can be confirmed are stored in the segment temporary storage unit 3 as confirmed segments.
[0080]
Specifically, in the example of FIG. 13, when “shi” of the handwritten character “frameless recognition” is deleted, the confirmed segment “shi” is deleted, and the confirmed segments “word” and “shinobi” of “acknowledgment” are deleted. Is returned to the indoubt segment. In the case of the second embodiment, segment determination / segment confirmation determination, character area determination / character recognition / optimum path generation is not performed until the next stroke is input, but in this embodiment, the input of the next stroke is awaited. There is no need to perform segment determination / segment determination / character area determination / character recognition / optimum path generation for “acknowledgement” and “shinobi” of “acknowledgement” that were unconfirmed segments in (c) Then, as shown in (d), the recognition result changes from “no frame” to “no frame”.
[0081]
With this configuration, even if the segment after the corrected character becomes unconfirmed due to deletion or addition of handwritten characters, recognition processing for the unconfirmed segment can be performed immediately without waiting for the next stroke to be input. It becomes.
[0082]
(Embodiment 4)
The configuration of the fourth embodiment is shown in FIG. In the second and third embodiments, the function of canceling a confirmed segment and performing the segment confirmation process again has been described. As a result, for example, as shown in FIG. 13, the recognition result character string can also be corrected. In this embodiment, in the second to fourth embodiments, when correction of a handwritten character occurs and the recognized character string changes, an example of notifying how the recognized result character string already notified to the application has changed is notified. An example of an application that displays on a screen handwritten character recognition characters included in software such as schedule management using a handwritten character input or word processor will be described.
[0083]
First, how the character recognized by handwriting is displayed in the present invention will be described. In the present invention, every time one stroke is input, the input handwritten character is divided into a confirmed segment and an unconfirmed segment, and character recognition is performed only for the confirmed segment. This process is repeated every time one stroke is input. However, since the number of newly recognized characters does not always increase even if one stroke is input, the recognition result character to the application is input once or a plurality of times. Only once when the number of newly recognized characters increases. For this reason, when strokes are input in order from the front, the display application is usually notified one character at a time as the recognition result, and the display application additionally displays the notified recognition result character on the screen. If a delete instruction is issued or a stroke is added to an already recognized handwritten character (consisting of a confirmed segment), all segments after that segment become unconfirmed segments. The confirmed segment is deleted, and the subsequent segments become undefined segments. The process from segment determination to optimal path generation is executed again, and only when a new recognition result is generated, a new recognition result string ( The number of characters is 1) or more is notified to the display application. In this case, if the display application receives the new recognition result character string as it is and additionally displays it on the screen, the display application will additionally display the handwritten character that has been displayed once without correcting it, resulting in incorrect display. .
[0084]
In other words, if the already recognized handwritten character is deleted or added, the recognition result character string changes, and the application needs to do some processing such as changing the character string shown to the user in response to the correction of the received recognition result. It becomes. That is, when the recognition result already notified to the application is corrected, the recognition engine side needs to notify the application of the correction content.
[0085]
In the following, an embodiment will be described in which the online character recognition device without a real time frame of the present invention notifies the application of the content whose recognition result has been corrected by canceling the confirmed segment.
[0086]
FIG. 15 is obtained by adding a recognition result correction information output unit 14 to FIG. 14 of the third embodiment. In the first and second embodiments, the optimal path generation unit 7 notifies the recognition result character string to the application. However, in this embodiment, the recognition result information output unit 13 selects either the recognition result character string or the recognition result correction information. One of them is notified to the application.
[0087]
The recognition result information output unit 13 includes the optimum path generation unit 7. When there is no correction, the recognition result character string is displayed. When there is a correction, the information indicating what character was corrected and the corrected recognition result character. The column (all recognition result character strings after the correction start position) is notified to the application.
[0088]
First, when the determined segment becomes an undetermined segment due to the correction of handwritten characters, the optimal path cancellation unit 10 deletes the path information of the segment that has become an undetermined segment from the path information held by the optimal path generation unit 7. However, at this time, the path deletion information indicating from which character the path is deleted is passed to the recognition result information output unit 13.
[0089]
The recognition result information output unit 13 determines that the recognition result character string generated by the optimum path generation unit immediately after receiving the path deletion information is a corrected recognition result character string, and determines from what character the character was corrected. When the correction start position information (= path deletion information) and the corrected recognition result character string are notified to the application and the path deletion information has not been received immediately before, the recognition result character string generated by the optimum path generation unit is corrected. It is determined that the character string is not a recognition result character string, and only the recognition result character string is notified to the application.
[0090]
Hereinafter, how the recognition result correction information is created will be described.
[0091]
It is assumed that the result is that the “frameless character recognition engine” has already been recognized. It is assumed that “recognition” of “recognition engine” is deleted and “input” is input by handwriting at the position where “recognition” was written. When “recognition” is deleted, the segment constituting the handwritten character “engine” becomes an undetermined segment. When “recognition” is deleted, the segment confirmation cancellation process is executed, and the optimum path cancellation unit 10 leaves the path up to the fifth character of “frameless character recognition engine”, and passes the path after the sixth character. The path deletion information indicating deletion and deletion from the sixth character is passed to the recognition result information output unit 13. After the optimal path cancellation process, the segment determination instruction unit 11 performs the processes from the segment determination unit 2 to the optimal path generation unit 7 again for the sixth and subsequent undefined segments, and the corrected six characters. The recognition result character string “input engine” after the first is generated as the recognition result character string of the optimum path generation unit 7. The recognition result information output unit 13 uses the path deletion information that the path has been deleted from the sixth character received from the optimum path cancellation unit immediately before as the correction start position information (= “6”) that the path has been corrected from the sixth character. Then, the display application is notified together with the corrected recognition result character string “input engine”. The display application that has already displayed “frameless character recognition engine” on the screen receives the correction start position information “6” and the corrected recognition result character string “input engine”, and displays the “no frame” The display from the sixth character of “Character recognition engine” is changed to “Input engine”, and “Frameless character input engine” is displayed again.
[0092]
With this configuration, even when the recognition result character string is corrected, the online handwritten character recognition device without real time frame of the present invention can notify the cooperating application of the correction content.
[0093]
(Embodiment 5)
Next, the program for realizing the real-time online frameless handwritten character recognition apparatus according to the embodiment of the present invention is a CD-ROM 90-1, a flexible disk 90-2, etc. as in the example of the recording medium shown in FIG. In addition to the program recorded in the portable recording medium 90, the program may be recorded in any of the other storage devices 91 stored at the end of the communication line, the recording medium 92 such as the hard disk or RAM of the computer, When the real-time online frameless handwritten character recognition apparatus according to the present invention is used, it is read by the computer 93 and executed on the main memory.
[0094]
By loading this program into a computer, a real-time online frameless handwritten character input device that can sequentially obtain recognition results during writing can be realized.
[0095]
【The invention's effect】
According to the real-time online frameless online recognition apparatus of the present invention, the recognition result up to a portion more than the predetermined distance from the writing position can be obtained with high accuracy in real time, and the user can wait for the frameless character recognition. It becomes possible to eliminate the need to worry about time.
[0096]
In addition, according to the real-time online no-frame handwritten character recognition apparatus of the present invention, the re-recognition / recognition processing function is added, so that if it is confirmed by mistake, it is not fatal and only the wrong part is redone. Therefore, even if the gap between the writing position and the recognition position is reduced (= threshold d is reduced), no problem occurs, and performance degradation due to an error in segment determination processing can be avoided.
[0097]
In addition, according to the real-time online frameless handwritten character recognition apparatus of the present invention, the next stroke is input even when the segment after the corrected character becomes unconfirmed due to the deletion or addition of the handwritten character. Without waiting, recognition processing for an indeterminate segment can be performed immediately.
[0098]
Moreover, according to the real-time online no-frame handwritten character recognition apparatus of the present invention, even when the recognition result character string is corrected, it is possible to notify the linked application of the correction contents.
[0099]
Also, by loading this program into a computer, a real-time online frameless handwritten character input device capable of sequentially obtaining recognition results during writing can be realized.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of Embodiment 1 of the present invention.
Fig. 2 Data structure of input data (C language representation)
FIG. 3 is a diagram for explaining a method for improving character segmentation.
FIG. 4 is an operation flowchart of a segment determination unit.
FIG. 5 shows an example of operation of the segment determination unit.
[Figure 6] Segment data structure (C language representation)
FIG. 7 shows an example of the operation of the segment confirmation determination unit.
[Figure 8] Generation of character area candidates
[Figure 9] Generation of character area links
FIG. 10: Data structure of character area (C language representation)
FIG. 11 is a configuration diagram of Embodiment 2 of the present invention.
[Figure 12] Flow of segment confirmation cancellation processing
[Figure 13] Segment fixed cancellation processing
FIG. 14 is a configuration diagram of Embodiment 3 of the present invention.
FIG. 15 is a configuration diagram of Embodiment 4 of the present invention.
FIG. 16 is an exemplary diagram of a recording medium.
[Fig.17] Character cutout error for frameless recognition
[Figure 18] Character recognition without frame
FIG. 19 is a configuration diagram of Conventional Example 1;
20 is a configuration diagram of Conventional Example 2. FIG.
FIG. 21 is an operation flowchart of conventional example 2 of frameless character recognition.
FIG. 22 shows an example of character segmentation according to Conventional Example 2.
FIG. 23 is a diagram for explaining a method for improving character segmentation.
[Explanation of symbols]
1 Stroke input section
2 Segment judgment part
3 Segment temporary storage
4 Character area judgment part
5 Segment confirmation section
6 Individual character area recognition unit
7 Optimal path generator
8 Segment Confirmation Cancellation Department
9 Character area cancellation part
10 Optimal path cancellation section
11 Segment confirmation instruction section
12 Segment reconfirmation section
13 Recognition result information output part
30 Character string pattern input unit of Conventional Example 1
31 Segment determination unit of Conventional Example 1
32 Character area determination unit of Conventional Example 1
33 Individual character identification unit of Conventional Example 1
34 Optimal path generation unit of Conventional Example 1
40 Stroke input section of Conventional Example 2
41 Character boundary determination unit of Conventional Example 2
42 Character pattern generation unit of Conventional Example 2
43 Unrecognized character recognition unit of Conventional Example 2
44 Stroke temporary storage section of Conventional Example 2
90 Portable recording media such as CD-ROM and flexible disk
90-1 CD-ROM
90-2 Flexible disk
91 Other storage devices stored at the end of the communication line
92 Recording medium such as RAM / hard disk on computer
93 computers

Claims (2)

1文字毎の文字入力領域がないオンライン手書き文字認識装置において、
手書き文字のストロークを入力し、ストロークデータに変換するストローク入力部と、
前記ストロークデータと既存の未確定セグメントに基づいて、前記ストロークデータを、新しい未確定セグメントとするか既存の未確定セグメントに追加するかを判定するセグメント判定部と、
前記セグメントに基づき、前記セグメントが確定セグメントか未確定セグメントか判定し、セグメントの確定を行なうセグメント確定部と、
前記確定セグメントに基づき、確定セグメントの組み合わせから成る一文字毎の文字領域を判定する文字領域判定部と、
各文字領域に含まれる前記ストロークデータに基づいて、前記文字領域毎に前記手書き文字をオンライン認識して、文字候補を生成する個別文字認識部と、
前記文字領域毎の文字候補の組み合わせの最適パスを生成し、最適の文字組み合わせを認識結果として出力する最適パス生成部と、
前記ストロークデータが確定セグメントに対して入力された場合、前記ストロークデータが削除指示か否かを判定し、削除指示の場合は、前記ストロークデータが入力された確定セグメントを削除してそれ以降の確定セグメントを未確定状態にし、削除指示でない場合は、前記ストロークデータが入力された確定セグメント以降の確定セグメントを未確定状態にするセグメント確定取消部と、
前記セグメント確定取消部が処理したセグメントに対して、前記文字領域の判定を取り消す文字領域取消部と、
前記セグメント確定取消部が処理したセグメントに対して、前記最適パスを取り消す最適パス取消部と、
前記ストロークデータが削除指示の場合は、前記セグメント判定部に対して、前記セグメント確定取消部により未確定状態に戻されたセグメントの判定をやり直すよう指示するセグメント確定指示部と、
前記セグメント確定の取消により修正された文字以降の認識結果文字列と出力済みの認識結果文字列の何文字目から修正したかという修正開始位置情報とから成る修正情報を出力する認識結果情報出力部を具備し、
前記ストロークデータが確定セグメントに対して入力された場合は、前記セグメント確定取り消し部と文字領域取り消し部と最適パス取り消し部とセグメント確定指示部の処理を行い、未確定セグメントに対してセグメント判定から処理をやり直すことにより、手書き文字の修正を可能とし、連携するアプリケーションに対して、出力済みの認識結果文字列に対する修正情報を出力し、前記ストロークデータが確定セグメントに対して入力されていない場合は、1ストローク入力される度に、セグメント判定部とセグメント確定部と文字領域判定部と個別文字認識部と最適パス生成部の処理を実行し、入力が確定したセグメント部分の文字認識を行なうことを特徴とする実時間枠なしオンライン手書き文字認識装置。
In an online handwritten character recognition device that does not have a character input area for each character,
A stroke input unit for inputting a stroke of handwritten characters and converting it to stroke data;
Said stroke data and based on an existing undetermined segment, the stroke data, new undetermined segment that should be added to the existing undetermined segment or determining segment determination unit,
Based on the segment, a segment determination unit that determines whether the segment is a fixed segment or an undefined segment, and determines the segment;
A character area determination unit that determines a character area for each character including a combination of determined segments based on the determined segments;
Based on the stroke data included in each character region, an individual character recognition unit that recognizes the handwritten character online for each character region and generates character candidates;
An optimal path generation unit that generates an optimal path of a combination of character candidates for each character area and outputs an optimal character combination as a recognition result ; and
When the stroke data is input to a confirmed segment, it is determined whether or not the stroke data is a deletion instruction. When the stroke data is a deletion instruction, the determined segment to which the stroke data is input is deleted and the subsequent determination is performed. If the segment is in an unconfirmed state and is not a deletion instruction, a segment confirmation canceling unit that places the confirmed segment after the confirmed segment in which the stroke data is input into an unconfirmed state;
A character area canceling unit that cancels the determination of the character area for the segment processed by the segment confirmation canceling unit,
An optimal path cancellation unit that cancels the optimal path for the segment processed by the segment confirmation cancellation unit;
If the stroke data is a deletion instruction, a segment confirmation instruction unit that instructs the segment determination unit to redo the determination of the segment returned to the unconfirmed state by the segment confirmation cancellation unit;
A recognition result information output unit for outputting correction information including a recognition result character string after the character corrected by the cancellation of the segment confirmation and correction start position information indicating from which character of the already output recognition result character string is corrected Comprising
When the stroke data is input to a confirmed segment, the segment confirmation cancellation unit, character area cancellation unit, optimum path cancellation unit, and segment determination instruction unit are processed. If the stroke data is not input to the confirmed segment, the correction information for the output recognition result character string is output to the linked application. Each time one stroke is input, the segment determination unit, the segment determination unit, the character region determination unit, the individual character recognition unit, and the optimum path generation unit are executed to perform character recognition of the segment portion whose input has been determined. Online handwritten character recognition device without real time frame.
実時間枠なしオンライン手書き文字認識するためにコンピュータを
手書き文字のストロークを入力し、ストロークデータに変換する手段、
前記ストロークデータと既存の未確定セグメントに基づいて、前記ストロークデータを、新しい未確定セグメントとするか既存の未確定セグメントに追加するかを判定するセグメント手段、
前記セグメントに基づき、前記セグメントが確定セグメントか未確定セグメントか判定し、セグメントの確定を行なうセグメント手段、
前記確定セグメントに基づき、確定セグメントの組み合わせから成る一文字毎の文字領域を判定する文字領域判定手段、
各文字領域に含まれる前記ストロークデータに基づいて、前記文字領域毎に前記手書き文字をオンライン認識して、文字候補を生成する個別文字認識手段、
前記文字領域毎の文字候補の組み合わせの最適パスを生成し、最適の文字組み合わせを認 識結果として出力する最適パス生成手段、
前記ストロークデータが確定セグメントに対して入力された場合、前記ストロークデータが削除指示か否かを判定し、削除指示の場合は、前記ストロークデータが入力された確定セグメントを削除してそれ以降の確定セグメントを未確定状態にし、削除指示でない場合は、前記ストロークデータが入力された確定セグメント以降の確定セグメントを未確定状態にするセグメント確定取消手段、
前記セグメント確定取消手段が処理したセグメントに対して、前記文字領域の判定を取り消す文字領域取消手段、
前記セグメント確定取消手段が処理したセグメントに対して、前記最適パスを取り消す最適パス取消手段、
前記ストロークデータが削除指示の場合は、前記セグメント判定手段に対して、前記セグメント確定取消手段により未確定状態に戻されたセグメントの判定をやり直すよう指示するセグメント確定指示手段、及び
前記セグメント確定の取消により修正された文字以降の認識結果文字列と出力済みの認識結果文字列の何文字目から修正したかという修正開始位置情報とから成る修正情報を出力する認識結果情報出力手段として機能させるための実時間枠なしオンライン手書き文字認識プログラム。
Computer to recognize online handwritten characters without real time frame,
Means for inputting strokes of handwritten characters and converting them into stroke data;
Segment means for determining, based on the stroke data and an existing unconfirmed segment, whether the stroke data is a new unconfirmed segment or is added to an existing unconfirmed segment;
Segment means for determining whether the segment is a confirmed segment or an indeterminate segment based on the segment and determining the segment;
A character area determination means for determining a character area for each character comprising a combination of determined segments based on the determined segments;
Based on the stroke data included in each character region, individual character recognition means for generating a character candidate by recognizing the handwritten character online for each character region;
The character generating an optimal path of a combination of character candidates of each region, the optimal path generation means for outputting a character combination of the perfect recognition result,
If the stroke data is entered in to confirm segment, the stroke data is determined whether or not deletion instruction, if the deletion instruction, the subsequent delete the determined segment, wherein the stroke data is input A segment confirmation canceling means for setting a confirmed segment in an unconfirmed state, and in a case where it is not a deletion instruction, a confirmed segment after the confirmed segment to which the stroke data is input is in an unconfirmed state;
Character area cancellation means for canceling the determination of the character area for the segment processed by the segment confirmation cancellation means,
Optimal path cancellation means for canceling the optimal path for the segment processed by the segment confirmation cancellation means,
If the stroke data is a deletion instruction, a segment confirmation instruction means for instructing the segment determination means to redo the determination of the segment returned to the unconfirmed state by the segment confirmation cancellation means; and
Recognition result information output means for outputting correction information composed of a recognition result character string after the character corrected by the cancellation of the segment confirmation and correction start position information indicating from which character of the already output recognition result character string is corrected , An online handwritten character recognition program without a real time frame to function as .
JP2002067850A 2002-03-13 2002-03-13 Online handwritten character recognition device without real time frame and program for realizing the same Expired - Fee Related JP3925247B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002067850A JP3925247B2 (en) 2002-03-13 2002-03-13 Online handwritten character recognition device without real time frame and program for realizing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002067850A JP3925247B2 (en) 2002-03-13 2002-03-13 Online handwritten character recognition device without real time frame and program for realizing the same

Publications (2)

Publication Number Publication Date
JP2003271899A JP2003271899A (en) 2003-09-26
JP3925247B2 true JP3925247B2 (en) 2007-06-06

Family

ID=29199098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002067850A Expired - Fee Related JP3925247B2 (en) 2002-03-13 2002-03-13 Online handwritten character recognition device without real time frame and program for realizing the same

Country Status (1)

Country Link
JP (1) JP3925247B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5053538B2 (en) * 2005-11-22 2012-10-17 任天堂株式会社 Handwriting learning support program and handwritten character recognition program
JP6089879B2 (en) * 2013-03-28 2017-03-08 富士通株式会社 Information processing apparatus, information processing method, and information processing program
JP7298290B2 (en) 2018-06-19 2023-06-27 株式会社リコー HANDWRITING INPUT DISPLAY DEVICE, HANDWRITING INPUT DISPLAY METHOD AND PROGRAM

Also Published As

Publication number Publication date
JP2003271899A (en) 2003-09-26

Similar Documents

Publication Publication Date Title
US9811193B2 (en) Text entry for electronic devices
JP2022116104A (en) Managing real-time handwriting recognition
TWI321294B (en) Method and device for determining at least one recognition candidate for a handwritten pattern
US6587587B2 (en) System and methods for spacing, storing and recognizing electronic representations of handwriting, printing and drawings
JP2641374B2 (en) Method and apparatus for generating a user-specific prototype symbol set
KR20100135281A (en) Method and tool for recognizing a hand-drawn table
JPH06348904A (en) System and method for recognition of handwritten character
JP6464504B2 (en) Electronic device, processing method and program
US20140297276A1 (en) Editing apparatus, editing method, and computer program product
KR20080087793A (en) Script recognition for ink notes
JP2002366895A (en) Method and system for image processing, and program
JP2007058304A (en) Character recognition device and character recognition method
JP3925247B2 (en) Online handwritten character recognition device without real time frame and program for realizing the same
JP2012181653A (en) Scoring method, program of scoring method, and scoring system
JP2023503272A (en) Gesture Stroke Recognition in Touch-Based User Interface Input
JP2007220145A (en) Online handwriting recognition apparatus
CN114663902B (en) Document image processing method, device, equipment and medium
WO2004095361A1 (en) Online hand-written character input device and method
JP3258978B2 (en) Gesture processing device and gesture processing method
JP4698308B2 (en) Character input device, character input program, and recording medium for recording character input program
JP4117648B2 (en) Form, form processing method, form processing program, recording medium recording form processing program, and form processing apparatus
CN105630368A (en) Handwritten content dividing method and device as well as handwritten content editing device
JP3977473B2 (en) Handwritten character recognition method and handwritten character recognition apparatus
JP6575116B2 (en) Character recognition device, character recognition processing system, and program
JP6322291B2 (en) Document processing apparatus and item extraction method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070219

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100309

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110309

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120309

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130309

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140309

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees