JP3817281B2 - Information processing apparatus and method - Google Patents

Information processing apparatus and method Download PDF

Info

Publication number
JP3817281B2
JP3817281B2 JP19523395A JP19523395A JP3817281B2 JP 3817281 B2 JP3817281 B2 JP 3817281B2 JP 19523395 A JP19523395 A JP 19523395A JP 19523395 A JP19523395 A JP 19523395A JP 3817281 B2 JP3817281 B2 JP 3817281B2
Authority
JP
Japan
Prior art keywords
point
stroke
vector
feature
comparison
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
JP19523395A
Other languages
Japanese (ja)
Other versions
JPH0944599A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP19523395A priority Critical patent/JP3817281B2/en
Publication of JPH0944599A publication Critical patent/JPH0944599A/en
Application granted granted Critical
Publication of JP3817281B2 publication Critical patent/JP3817281B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は情報処理装置及び方法、詳しくは、入力された手書きストロークから、当該ストロークを構成する点データ群の中の特徴点を抽出し、当該特徴点に基づく情報を下位の処理に渡す情報処理装置及び方法に関するものである。
【0002】
【従来の技術】
従来、入力された筆跡を文字認識して、文字コードに変換する文字認識方法には数々の手法が考案されている。その手法の中にベクトルマッチング方式と呼ばれるものがある。この手法は以下のとおりである。
【0003】
まず、入力された筆跡に対し、ペンダウン情報とペンアップ情報によって区切られた座標点列を1ストロークと呼び、そのストロークをベクトル化してストロークベクトルとして表現する。次に、複数のストロークベクトルの個々について、予め認識辞書に納められている標準ストロークベクトルと比較し、相違度を計算する。さらに、認識辞書には文字を構成するいくつかの標準ベクトルが定義されており、この定義された標準ストロークベクトル集合を参照して、入力されたストロークベクトル集合との一致度を計算して最も類似していると判断される文字を認識結果として出力するというものである。
【0004】
ここで、ストロークをベクトル化する方法は、一般的に、入力された座標点を始点から終点までつないでストローク化した後、ストローク線分全体をn分割することによりn本のベクトルを作成している。このベクトル列がストローク特徴として抽出されている。n分割の方法はストロークの全長をnで割り、ストロークを等距離間隔で分割するものであった。
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来例のような、オンライン手書き文字認識方法ではストロークの全長をn等分した距離を元に分割点を決定していたが、類似文字、例えば「る」と「ろ」、「ぬ」と「め」のようにストロークの最終点近辺にその文字の特徴がある場合、単なる等距離間隔の分割では精度の良い分割ができず、その分割点によるベクトル列も類似文字間で識別が困難であるという問題点があった。
【0006】
【課題を解決するための手段】
本発明は上記問題点に鑑みなされたものであり、入力された手書きストローク情報から、当該ストロークの精度良い特徴情報を抽出して下位の処理に渡す情報処理装置及び方法を提供しようとするものである。
【0007】
この課題を解決するため、例えば本発明の情報処理装置は以下に示す構成を備える。すなわち、
所定の入力装置より入力された手書きストロークから、当該ストロークを構成する点データ群P(0), …, P(k)から特徴点を抽出し、当該特徴点に基づく情報を下位の処理に渡す情報処理装置であって、
前記入力装置より入力された手書きストローク情報である点データP(0)、…、P(k)を記憶するストローク記憶手段と、
該ストローク記憶手段に記憶された点データにおいて、
前記点データの起点P(i)(初期値i=0)、
参照点P(i+1+j)(初期値j=1)とし、
起点P(i)とP(i+1)で定められるベクトルを基準ベクトル、P(i+1)と前記参照点P(i+1+j)で定められるベクトルを参照ベクトルと定義したとき、
前記基準ベクトルと参照ベクトルとの成す角度θと所定閾値とを比較する比較手段と、
該比較手段の比較結果、前記角度θが所定閾値以下である場合には、点P(i+j)を削除対象に設定すると共に、前記変数jを“1”だけ増加させて前記比較手段を再実行し、
前記比較手段の比較結果、前記角度θが所定閾値を越えた場合、点P(i+j)を特徴点として判断し、その際の変数jに基づいて前記変数iを更新すると共に、前記変数jを“1”で再初期化し、前記比較手段を再実行する第1の制御手段と
前記第1の制御手段で得られた特徴点の個数が、注目ストロークに関してn個の連続したベクトル列を特定し得る数になったか否かを判別する判別手段と、
該判別手段によって、n個の連続したベクトル列を特定し得る数より少ないと判別した場合は、前記所定閾値を減じた後、前記第1の制御手段による処理を再度実行する第2の制御手段とを備える。
【0009】
また、この場合には、更に、前記判別手段によって、連続したベクトルの数が前記n個を越えたと判別された場合は、前記第1の制御手段で得られた特徴点のうち、前記角度θの大きいものから上位n+1個の特徴点データを抽出する抽出手段を備えることが望ましい。これによって常にn本のベクトルデータを抽出できるようになる。
【0010】
また、下位処理は、文字認識処理であることが望ましい。これによって、文字認識率を向上させることが可能になる。
【0011】
【発明の実施の形態】
以下、添付図面にしたがって本発明にかかる実施形態の例を詳細に説明する。
【0012】
<第1の実施形態>
図1は本第1の実施形態におけるオンライン手書き文字認識装置の機能構成を示すブロック図である。図示において、101は座標入力ペンを操作することで座標を入力するダブレット、ディジタイザ等の座標入力装置であり、本実施形態では、入力された文字データを獲得する文字入力部である。102はストローク格納部で、101の文字入力部にて得られた座標点を用いて、ペンダウン情報とペンアップ情報の間の座標点集合を一本のストロークとして格納する。103は特徴抽出部であって、ストローク格納部102中のストロークデータの中から特徴点となるデータを抽出する。また、104は特徴点消去部であり、特徴点抽出部104で得られた特徴点データからn個のベクトルを構成するためのn+1個の点データを生成するため、不要なデータを消去する特徴点消去部である。105はベクトル化部であって、特徴点消去部105から得られたn+1個の点データに基づきn個のベクトルデータを生成する。以上の如く、文字入力部101でもって1文字分の手書き文字を入力した場合、ペンダウンからペンアップまでのストローク情報が順次取り出され、ベクトル化部105には、各ストロークに対するn本のベクトルが格納される。
【0013】
106は認識部であり、ベクトル化部105から各ストロークに対するベクトルデータを入力し、認識辞書部108に納められている基本ベクトルとの間で比較演算処理して文字認識する。107は、認識部106から出力された認識結果(文字コード)を出力する結果出力部である。尚、文字認識処理では、通常、最も確からしい候補を第1候補とし、次いで第2候補、第3候補、…として出力する。本実施形態でもこれに準拠する。
【0014】
上記構成における特徴抽出部103の処理内容を図2、図3のフローチャートを用いて説明する。
【0015】
図2は記入されたストローク(ペンダウンとペンアップの間の筆跡)の図であり、構成する座標点を図示している。座標点P0は始点、座標点Pkは終点となる。従って座標点の個数は全部でk+1個になる。
【0016】
図3はストロークの特徴点を抽出する処理内容を示すフローチャートである。尚、以下の説明で、点Pnから点P(n+1)に向かうベクトルをV(PnP(n+1))として表わす。
【0017】
まず、ステップS301にて開始点カウンタiを0にセットする。ステップS302にて対象点カウンタjを1にセットする。そして、ステップS303では、変数i,jの合計値がk以下であるか否か、すなわち、本処理が終了したか否かを判断する。否の場合には、以下のステップS304に進む。
【0018】
ステップS304では、ベクトルV(PiP(i+1))とベクトルV(P(i+1)P(i+1+j))の成す角度θが予め設定された閾値角度θt以下であるか否かを判断する。θ≦θtであれば、ステップS305に進み、座標点P(i+j)を削除対象点としてマーキングし、ステップS306では対象点カウンタjをインクリメントして次の座標点の削除チェックを行うためにステップS303に戻る。
【0019】
以下、この処理を繰り返していくが、この期間中、2つのベクトルのなす角度θとθtの関係が、θ>θt、という関係になっていると判断した場合には、ステップS307に進み、変数iを“i+1+j”で更新し、ステップS302に戻る。
【0020】
さて、ステップS305にて全ての座標点のチェックを終了すると、本処理は完了する。この処理終了後、マーキングされた座標点は、角度変化の少ない連続している座標点であるので、この点群を削除して残されたものは角度の大きい部分の座標点となる。尚、始点P0と終点Pkは共に特徴点とみなすこととする。また、尚、上記処理における閾値角度θtはパラメータ化されており、可変である。理由は後述する。
【0021】
上記処理内容を図4に従ってより詳しく説明する。今、点Piを基点とし、j=1の場合を想定する。この場合、2つのベクトルは、
V(PiP(i+1))、V(P(i+1)P(i+2))
となる。
【0022】
これら2つのベクトルのなす角度θ1が閾値角度θt以下であるとした場合、2つ目のベクトルV(P(i+1)P(i+2))の終点P(i+2)の1つ手前の点P(i+1)は削除対象として設定される。この結果、変数jが1つインクリメントされるので(j=2となる)、次に、
V(PiP(i+1))、V(P(i+1)P(i+3))
のなす角度θ2と閾値角度θtと比較されることになる。ここでθ2も閾値角度θt以下である場合には、点P(i+2)が削除対象として設定され、変数jがインクリメントされる(j=3)。この結果、次の2つのベクトルのなし角度θ3と閾値角度θtとが比較される。すなわち、
V(PiP(i+1))、V(P(i+1)P(i+4))
このθ3が閾値角度θtより大きい場合には、点P(i+3)は特徴点(特異点)として設定される。
【0023】
以上の結果、θ1,θ2が共に閾値角度θt以下であって、θ3が閾値角度θtより大きい場合、点P(i+1),P(i+2)が削除対象として設定されることになる。すなわち、ストロークを構成している各座標点の並びの曲がり具合が小さい場合には、それぞれの点が削除対象として設定されることになる。
【0024】
尚、ステップS307では、変数iを“i+1+j”で更新し、ステップS302で変数jを“1”で初期化するので、点Piは図4における点“P(i+4)”の位置に移動し、そこから上述した処理が繰り返し実行されることになる。
【0025】
さて、ストロークをn分割するためには(1ストロークからn個のベクトルを抽出するためには)、特徴点の個数はn+1個必要になる。ところが、上記の処理を行った場合には、閾値角度θtや注目しているストロークに依存して得られる個数が不定であり、一律にn+1の点を得ることができない。そこで、本実施形態では、上記図3の処理を行う場合の閾値θtを可変にし、それでもって適当な数の特徴点を抽出するようにした。この処理を図5のフローチャートに従って説明する。
【0026】
先ず、ステップS501では特徴抽出処理で用いた閾値角度θtに初期値として180°にセットする。ステップS502では、設定されている閾値角度θtを用いて図3で説明した特徴抽出処理を行う。
【0027】
この後、処理はステップS503に進んで、ステップS502で得られた特徴点の個数をチェックし、n+1個以上の特徴点数になったか否かを判断する。ここで、抽出された特徴点の個数がn+1に満たない場合には、ステップS504に進み、閾値角度θtを所定角度(例えば1°)減じ、ステップS502に戻る。
【0028】
以下、閾値角度θtを順次減じ、特徴点抽出部103による処理を行うと、得られる特徴点の数は増えていき、ついにはn+1個以上の特徴点が得られることになる。このとき、処理はステップS503からステップS505に進み、得られた特徴点データを特徴点消去部104に出力し、本処理を終える。
【0029】
次に、特徴点消去部145の処理動作を図6のフローチャートを用いて説明する。
【0030】
先に説明した様に、特徴点抽出部103からは、少なくともn+1個の特徴点が出力される(n+1個以上のの特徴点が得られる)。しかし、注目ストロークからn個のベクトルを抽出する場合、特徴点がn+1個より多い場合には、その分の特徴点を除去することが望まれる。そこで、特徴点消去部104では、図6に示すフローチャートに従って処理することで、余分な特徴点を消去した。
【0031】
先ず、ステップS601では特徴点の個数チェックを行い、特徴点の個数がn+1個となった時点で終了する。特徴点の個数がn+1個より多い場合は、ステップS602にて、隣接する特徴点の角度変化が最も少ない点は特徴点から外す処理を行う。この処理は特徴点抽出処理で用いている手法を利用しても良い。
【0032】
以上の結果、特徴点消去部104からは、ストロークデータで表される軌跡の曲率が大きい付近の点は最終的に残り、曲率が小さい部分の点は消去され、最終的にn個のベクトルデータを生成するためのデータのみが生成される。
【0033】
次に、ベクトル化部105の処理動作を図7のフローチャートに従って説明する。
【0034】
ステップS701にてカウンタiを“0”で初期化する。次いで、ステップS702ではn+1個の特徴点すべてに対してベクトル処理したかどうかのチェックをしている。このチェック結果が否の場合には、以下のステップS703〜705の処理を行う。
【0035】
先ず、ステップS703では隣接する特徴点2点を通る直線の方向ベクトルを求める。方向ベクトルは図8に示す8方向ベクトルとする。求められた方向ベクトルはステップS704でベクトル値として保存される。ステップS705にて次の特徴点に移る処理を行ない、ステップS02に戻る。
【0036】
こうして、全ての特徴点に対してベクトル値が求められると、ステップS706にてn本のベクトル値が生成される。
【0037】
文字認識部106は1つの文字入力に対する全ストロークの入力が完了した段階で、ベクトル化部105から送られてきた全ベクトルデータに基づき文字認識処理を行なう。すなわち、入力した各ストロークのベクトルデータと辞書部108内の標準的なベクトルデータとを比較し、最も類似するとされる文字から順番に第1候補、第2候補、…とし、最終結果として結果出力部107に送る。
【0038】
尚、説明が前後するが、入力されたストロークデータを構成している時系列な座標データがほぼ直線上に並んでいる場合(例えば直線もしくはそれに近い線を手書き入力した場合)、両端点は特徴点として処理されるものの、中間に位置する点の中では特徴点を特定することが難しい。しかし、ベクトル化部105から出力される注目ストロークに対するベクトルデータ(図8参照)としては、同じベクトルコードが連続するものとなるわけであるから、どの点を特徴点としても結果は同じである。従って、図5の処理では、1つの閾値角度θt(ほとんど0°に近い値)で一挙に多くの特徴点が抽出され、図6の処理に渡されるがステップS602では同じ角度のものが複数あった場合には、単純にいずれか1つを特徴点として決定すれば対処できるので、何等問題はない。
【0039】
また、上記実施形態において、結果出力部107は、文字認識結果として、下位の処理部に渡す処理を行う。下位の処理としては、例えば文書処理等がある。要は、文字認識処理して得られた結果に基づいて処理するものであれば如何なるものであっても良い。
【0040】
以上説明した様に、曲がりの程度が大きい、或いは曲がりの程度が大きい部分を有するストロークのデータ(座標データ群)については、その曲率が大きい付近の座標データを積極的に有効な点として処理するので、例えば平かなの「る」と入力した場合には最後の部分はもとより、ベクトルの向きが大きい部分に関しては確実に保持されるので、手書き文字の精度良い特徴ベクトルを常に得ることができ、結果として認識率を上げることが可能になる。
【0041】
なお、本実施形態では、特徴抽出処理にベクトル角度を用いて特徴点を抽出したが、角度に限らず、ある一定距離内の座標点を消去して座標点を間引く処理を使用、併用してもかまわない。
【0042】
<第2の実施の形態>
上述した実施形態(第1の実施形態)ではストロークの特徴を抽出する抽出処理を用いてn分割する手法を説明したが、本第2の実施形態ではストローク内のある範囲内における座標点密度を計算し、この密度に応じて分割数を変化させてn分割する手法を説明する。
【0043】
図9は本第2の実施形態におけるオンライン手書き文字認識方法の機能構成を示すブロック図である。図9において901、902、906、907、908はそれぞれ、図1の101、102、106、107、108とほぼ同等の処理をするので、その動作の説明は省略する。
【0044】
異なるのは、点密度計算部903を新たに設けた点である。以下、この点密度計算部903の処理内容を図10のフローチャートに従って説明する。
【0045】
まず、ステップS1001では、ストロークの全長を計算する。ストロークの全長算出はストロークを構成する隣接座標二点間のユークリッド距離を求め、始点座標から開始して終点座標まで加算していくことで得られる。そっして、求まった全長をn等分し、その値をlとする。
【0046】
ステップS1002でストローク上に長さlを持つ座標点をマッピングし、この座標点をn分割点Pi(0≦i≦n+1)と呼ぶことにする。ここで言う、「ストローク上」とは座標点を結んでできる直線のことを指している(図11参照)。
【0047】
次にステップS1003で第1のn分割点Piと第2のn分割点Pi+1(0≦i≦n+1)の区間をRj(0<=j<=n)とし、区間Rj内の座標点数をカウントする。カウントされた座標点数が点密度となる。いま、あるストロークの場合の4分割(nが4)の分割の様子と、区間別の点密度を図12、図13で示す。
【0048】
次に分割点決定部904の動作を図14を用いて説明する。
【0049】
先ず、ステップS1401にて、点密度計算部で得られた各区間から点密度(全体の点数に対する区間の点数)が最大のものを探し出す。ステップS1402で、その区間の点密度が予め定められたしきい値より大きければステップS1403に進み、閾値以下の場合はその処理を終える。
【0050】
さて、処理がステップS1403に進んだ場合には、点密度が閾値以下になるように再分割する。例えば、その区間の長さを求めて2等分し、新たな区間を作成して区間の点密度をそれぞれ算出する。点密度の算出方法は点密度算出部と同様の処理とする。この処理で分割数が増えたので(n+1個の区間が発生したので)、ステップS1404では点密度が最小の区間を探し出し、ステップS1405でそれに隣接する区間(両側にある場合には、点密度の低い区間)と合併する。また、合併した両区間を元々分割していたn分割点は削除する。これによって、再び注目ストロークはn分割状態に戻す。また、合併後の点密度は両区間の点密度平均を算出して求める。以下、このような動作を繰り返し、処理が終了すると、新しく生成されたn分割点が求まる。そして、分割点の両端にある点座標をベクトルとして有効な座標データとして出力する。この結果、人間が無意識にストロークの方向が変化する部分で筆記速度が遅くなり、その部分で多くの座標点が検出されることに対処し、精度良く分割することが可能になる。これ以降、求まったn分割点を用いてベクトル化し、第1の実施形態と同様の処理を行う。
【0051】
<第3の実施の形態>
上記第1、第2の実施形態では、図1或いは図9に示す構成を有する装置で実現させたが、本発明はこれに限るものではなく、プログラムでもって実現させても良い。
【0052】
図15に第3の実施形態における装置のブロック構成を示す。図示において、1は装置全体の制御を司るCPU、2はブートプログラム等を記憶しているROM、3はCPU1が処理するプログラムやデータを記憶するRAMである。4は座標入力板であって、5は座標入力板4上で操作者による不図示の入力ペンでなぞった座標を検出する座標検出部である。尚、入力ペンには、座標入力板4に対して押下したか否かを検出するためのスイッチが設けられており、このスイッチの押下状況はCPU1に出力されるようになっている。6は、座標入力板4の下面に設けられた液晶表示器(LCD)であって、7は液晶表示器6の駆動を制御するLCDドライバである。
【0053】
ここで、CPU1は、ペンダウンを検出している間に、座標検出部5から順次入力される点座標データを線分で結ぶようLCDドライバ7を制御することで、あたかも紙上に文字を書くかのごとく、LCD6にはその筆跡を表示することが可能になっている。
【0054】
8は例えばフロッピーディスクやハードディスク装置等の外部記憶装置であって、オペレーティングシステム、各種アプリケーションプログラムをはじめ、本実施形態にかかる文字認識処理にかかるプログラムを記憶している。そして、認識処理するときに参照される文字認識辞書や認識結果(文字コード)を記憶する領域も確保されている。
【0055】
上記構成において、CPU1は文字認識を行う場合には、文字認識にかかるプログラムをRAM3にロードし、そのロードしたプログラムに従って文字認識処理を行うことになる。
【0056】
外部記憶装置8に記憶されている文字認識プログラムの例を図16に示す。尚、図示では記憶媒体160を示しており、上記実施形態における外部記憶装置8に適合するものであるが、具体的には、フロッピーディスク、ハードディスク、CD−ROM等情報を記憶する媒体であれば如何なる物であっても良いのは勿論である。
【0057】
図示において、161は、入力したストロークの点データ群のベクトル方向の変化の度合を検出する検出モジュールであり、162は、検出されたベクトル方向の変化が所定の閾値と比較する比較モジュール、163は比較結果によりベクトル方向の変化が前記閾値以上の場合、当該ベクトルを構成する一部の点データを有効とし、所定変化以下の場合には当該ベクトルを構成する点データを構成する一部の点データを除去する制御モジュールである。
【0058】
ここで、更に、記憶媒体には、更に、制御モジュールで得られた有効な点データの個数が、注目ストロークに関してn個の連続したベクトル列を特定し得るだけの数になったか否かを判別する判別モジュールと、n個の連続したベクトル列を特定し得るだけの数が得られないと判別した場合、閾値を調整して、検出モジュール、比較モジュール、及び制御モジュールを再度実行する第2の制御モジュールを備えることが望ましい。
【0059】
また、更に、記憶媒体は、第2の制御モジュールでもって調整された閾値に基づいて得られた有効な点データの数がn+1個以上あると判別モジュールが判別した場合、得られた特徴点のベクトル変化の大きいものから上位のn+1個の点データを抽出するモジュールを備えることが望ましい。
【0060】
また、更に、下位処理として文字認識処理モジュールを備えることが望ましい。
【0061】
以上の記憶媒体160は第1の実施形態に対応するものであるが、第2の実施形態に適応するものであれば、入力したストロークの点データ群の密度分布を検出する点密度検出モジュールと、得られた点密度の高低に基づいて区画を設定する区画設定モジュール、設定された各区画の両端点を特徴点として抽出する抽出モジュールを備えることになるのは、上記例からすれな容易に想到できよう。
【0062】
この場合、点密度検出モジュールには、入力されたストロークの時系列の点座標データで表されるストローク長をn等分する分割モジュールと、分割した各区画に含まれる座標点の個数を計数する計数モジュールとを含むことが望ましい。
【0063】
また、区画設定モジュールには、点密度検出モジュールで検出された各区画のうちの最大点密度と所定密度とを比較する比較モジュールと、最大点密度が所定密度以上であるとした場合、当該最大点密度の区画を、当該区画長で2等分することでn+1個の区画を生成する第1の区画補正モジュールと、生成されたn+1個の区画のうち、最低点密度の区画とその隣接する区画とを結合してn個の区画を再設定すると共に比較モジュールを再度実行する第2の区画補正モジュールを備えることが望ましい。
【0064】
また、この場合にも、文字認識装置として機能させるためには、下位処理としての文字認識モジュールを備えることが望ましい。
【0065】
以上説明した様に、本実施形態によれば、オンライン手書き文字を認識する場合に、入力されたストロークデータから精度の良いベクトルデータを抽出することが可能になる。
【0066】
尚、実施形態では、文字入力部を介して直接手書き情報が入力されるものとして説明したが、手書き情報を記憶した記憶媒体から、或いは、通信を介して手書き情報を入力しても良いので、上記実施形態に限定されるものではない。
【0067】
また、上記第3実施形態で説明した様に、本発明は、入力したストローク情報から特徴点を抽出して、その特徴点に対応する情報を下位の処理に渡す技術に関するものであり、下位処理としてはどのようなものであっても構わない。しかしながら、下位処理として文字認識処理を採用した場合には、その認識率を向上させることが可能なので、文字認識処理に適応するのが望ましい。
【0068】
また、上記の如く、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明はシステム或は装置にプログラムを供給することによって実施される場合にも適用できることは言うまでもない。この場合、本発明にかかるプログラムを格納した記憶媒体が、本発明を構成することになる。そして、該記憶媒体からそのプログラムをシステム或は装置に読み出すことによって、そのシステム或は装置が、予め定められたし方で動作する。
【0069】
【発明の効果】
以上説明したように本発明によれば、入力された手書きストローク情報から、当該ストロークの精度良い特徴情報を抽出して下位の処理に渡すことが可能になる。
【0070】
【図面の簡単な説明】
【図1】本実施形態におけるオンライン手書き文字認識方法の機能構成を示すブロック図である。
【図2】本実施形態における記入されたストロークの例を示す図である。
【図3】第1の実施形態における特徴抽出処理を示すフローチャートである。
【図4】特徴抽出処理の原理を説明するための図である。
【図5】第1の実施形態における特徴点数の制御を示すフローチャートである。
【図6】第1の実施形態における特徴点消去部の動作を示すフローチャートである。
【図7】本実施形態におけるベクトル化部の動作を示すフローチャートである。
【図8】本実施形態における方向ベクトルを示す図である。
【図9】第2の実施形態におけるオンライン手書き文字認識装置の機能ブロック図である。
【図10】第2の実施形態における点密度計算部の動作を示すフローチャートである。
【図11】第2の実施形態におけるn分割点を示す図である。
【図12】第2の実施形態におけるストローク分割の様子を示す図である。
【図13】第2の実施形態におけるストローク分割後の点密度を示す図である。
【図14】第2の実施形態における分割点決定部の動作を示すフローチャートである。
【図15】第3の実施形態における具体的な装置構成を示すブロック図である。
【図16】第3の実施形態における記憶媒体に記憶されているプログラムモジュールを示す図である。
【符号の説明】
101、901 文字入力部
102、902 ストローク格納部
103 特徴抽出部
104 特徴点消去部
105、905 ベクトル化部
106、906 認識部
107、907 結果出力部
108、908 辞書部
903 点密度計算部
904 分割点決定部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information processing apparatus and method, and more specifically, information processing that extracts a feature point in a point data group constituting the stroke from an input handwritten stroke and passes information based on the feature point to a lower-level process The present invention relates to an apparatus and a method.
[0002]
[Prior art]
Conventionally, a number of methods have been devised for character recognition methods for recognizing input handwriting and converting it into character codes. Some of these methods are called vector matching methods. This method is as follows.
[0003]
First, a coordinate point sequence delimited by pen-down information and pen-up information is called one stroke for the input handwriting, and the stroke is vectorized and expressed as a stroke vector. Next, each of the plurality of stroke vectors is compared with a standard stroke vector stored in advance in the recognition dictionary, and the degree of difference is calculated. In addition, the recognition dictionary defines several standard vectors that make up the character. By referring to the defined standard stroke vector set, the degree of coincidence with the input stroke vector set is calculated, and the most similar A character that is determined to be a character is output as a recognition result.
[0004]
Here, the method of vectorizing the stroke is generally to create an n number of vectors by dividing the entire stroke line segment into n after connecting the input coordinate points from the start point to the end point to make the stroke. Yes. This vector sequence is extracted as a stroke feature. The n-division method divides the entire length of the stroke by n and divides the stroke at equidistant intervals.
[0005]
[Problems to be solved by the invention]
However, in the conventional handwritten character recognition method as in the above-described conventional example, the division point is determined based on the distance obtained by dividing the total length of the stroke by n, but similar characters such as “RU”, “RO”, “N” If the character of the character is near the final point of the stroke, such as There was a problem that it was difficult.
[0006]
[Means for Solving the Problems]
The present invention has been made in view of the above problems, and it is an object of the present invention to provide an information processing apparatus and method that extract accurate feature information of a stroke from input handwritten stroke information and pass it to lower processing. is there.
[0007]
In order to solve this problem, for example, an information processing apparatus of the present invention has the following configuration. That is,
A feature point is extracted from a point data group P (0),..., P (k) constituting the stroke from a handwritten stroke input from a predetermined input device, and information based on the feature point is passed to a lower-level process. An information processing apparatus,
Stroke storage means for storing point data P (0),..., P (k) which is handwritten stroke information input from the input device;
In the point data stored in the stroke storage means,
Starting point P (i) of the point data (initial value i = 0),
Reference point P (i + 1 + j) (initial value j = 1)
When a vector defined by the starting points P (i) and P (i + 1) is defined as a reference vector, and a vector defined by P (i + 1) and the reference point P (i + 1 + j) is defined as a reference vector,
A comparison means for comparing an angle θ between the reference vector and the reference vector with a predetermined threshold;
If the angle θ is equal to or smaller than a predetermined threshold as a result of comparison by the comparison means, the point P (i + j) is set as a deletion target, and the variable j is increased by “1” and the comparison means is re-executed. And
As a result of comparison by the comparison means, when the angle θ exceeds a predetermined threshold value, the point P (i + j) is determined as a feature point, the variable i is updated based on the variable j at that time, and the variable j is "1" re-initialized, a first control means for re-executing said comparing means,
Discriminating means for discriminating whether or not the number of feature points obtained by the first control means has reached a number that can specify n consecutive vector sequences with respect to the target stroke;
A second control unit that executes the process by the first control unit again after reducing the predetermined threshold when the determination unit determines that the number of n consecutive vector sequences is less than the number that can be specified; With .
[0009]
In this case, when the number of consecutive vectors exceeds the n, the angle θ among the feature points obtained by the first control unit is further determined. It is desirable to provide an extraction means for extracting the top n + 1 feature point data from the one with the largest. As a result, n vector data can always be extracted.
[0010]
Further, it is desirable that the lower-order process is a character recognition process. As a result, the character recognition rate can be improved.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
[0012]
<First Embodiment>
FIG. 1 is a block diagram showing a functional configuration of the online handwritten character recognition apparatus according to the first embodiment. In the figure, reference numeral 101 denotes a coordinate input device such as a doublet or a digitizer that inputs coordinates by operating a coordinate input pen. In this embodiment, 101 is a character input unit that acquires input character data. A stroke storage unit 102 stores a set of coordinate points between pen-down information and pen-up information as a single stroke using the coordinate points obtained by the character input unit 101. Reference numeral 103 denotes a feature extraction unit, which extracts data as feature points from the stroke data in the stroke storage unit 102. Reference numeral 104 denotes a feature point erasure unit, which generates n + 1 point data for constructing n vectors from the feature point data obtained by the feature point extraction unit 104, so that unnecessary data is erased. It is a point erasure unit. Reference numeral 105 denotes a vectorization unit, which generates n vector data based on n + 1 point data obtained from the feature point erasure unit 105. As described above, when one handwritten character is input by the character input unit 101, stroke information from pen down to pen up is sequentially extracted, and the vectorization unit 105 stores n vectors for each stroke. Is done.
[0013]
A recognition unit 106 receives vector data for each stroke from the vectorization unit 105 and performs a comparison operation with a basic vector stored in the recognition dictionary unit 108 to recognize characters. Reference numeral 107 denotes a result output unit that outputs the recognition result (character code) output from the recognition unit 106. In the character recognition process, the most likely candidate is normally output as the first candidate, and then output as the second candidate, the third candidate,. This embodiment also complies with this.
[0014]
The processing contents of the feature extraction unit 103 in the above configuration will be described with reference to the flowcharts of FIGS.
[0015]
FIG. 2 is a diagram of the strokes that have been entered (handwriting between pen-down and pen-up), and illustrates the coordinate points that make up the stroke. The coordinate point P0 is the start point, and the coordinate point Pk is the end point. Accordingly, the total number of coordinate points is k + 1.
[0016]
FIG. 3 is a flowchart showing processing contents for extracting feature points of a stroke. In the following description, a vector from the point Pn to the point P (n + 1) is represented as V (PnP (n + 1)).
[0017]
First, the start point counter i is set to 0 in step S301. In step S302, the target point counter j is set to 1. In step S303, it is determined whether or not the total value of the variables i and j is equal to or less than k, that is, whether or not the present process is completed. If not, the process proceeds to the following step S304.
[0018]
In step S304, whether or not the angle θ formed by the vector V (PiP (i + 1)) and the vector V (P (i + 1) P (i + 1 + j)) is equal to or smaller than a preset threshold angle θt. Determine whether. If θ ≦ θt, the process proceeds to step S305, where the coordinate point P (i + j) is marked as a deletion target point. In step S306, the target point counter j is incremented to check the deletion of the next coordinate point. Return to.
[0019]
Hereinafter, this process is repeated. If it is determined that the relationship between the angles θ and θt formed by the two vectors is such that θ> θt during this period, the process proceeds to step S307, and the variable i is updated with “i + 1 + j”, and the process returns to step S302.
[0020]
Now, when all the coordinate points have been checked in step S305, this processing is completed. After this processing is completed, the marked coordinate points are continuous coordinate points with little change in angle, and what remains after deleting this point group becomes the coordinate point of the portion with a large angle. Note that both the start point P0 and the end point Pk are regarded as feature points. The threshold angle θt in the above process is parameterized and is variable. The reason will be described later.
[0021]
The processing contents will be described in more detail with reference to FIG. Assume that the point Pi is the base point and j = 1. In this case, the two vectors are
V (PiP (i + 1)), V (P (i + 1) P (i + 2))
It becomes.
[0022]
If the angle θ1 formed by these two vectors is less than or equal to the threshold angle θt, one of the end points P (i + 2) of the second vector V (P (i + 1) P (i + 2)) The previous point P (i + 1) is set as a deletion target. As a result, the variable j is incremented by 1 (j = 2).
V (PiP (i + 1)), V (P (i + 1) P (i + 3))
Is compared with the threshold angle θt. Here, when θ2 is also equal to or smaller than the threshold angle θt, the point P (i + 2) is set as a deletion target, and the variable j is incremented (j = 3). As a result, the nose angle θ3 of the next two vectors is compared with the threshold angle θt. That is,
V (PiP (i + 1)), V (P (i + 1) P (i + 4))
When this θ3 is larger than the threshold angle θt, the point P (i + 3) is set as a feature point (singular point).
[0023]
As a result, when both θ1 and θ2 are equal to or smaller than the threshold angle θt and θ3 is larger than the threshold angle θt, the points P (i + 1) and P (i + 2) are set as deletion targets. . In other words, when the degree of bending of the coordinate points constituting the stroke is small, each point is set as a deletion target.
[0024]
In step S307, the variable i is updated with “i + 1 + j”, and in step S302, the variable j is initialized with “1”. Therefore, the point Pi moves to the position of the point “P (i + 4)” in FIG. Then, the processing described above is repeatedly executed from there.
[0025]
In order to divide a stroke into n (to extract n vectors from one stroke), the number of feature points is n + 1. However, when the above processing is performed, the number obtained depending on the threshold angle θt and the stroke of interest is indefinite, and n + 1 points cannot be obtained uniformly. Therefore, in the present embodiment, the threshold value θt when performing the processing of FIG. 3 is made variable so that an appropriate number of feature points can be extracted. This process will be described with reference to the flowchart of FIG.
[0026]
First, in step S501, the threshold angle θt used in the feature extraction process is set to 180 ° as an initial value. In step S502, the feature extraction process described with reference to FIG. 3 is performed using the set threshold angle θt.
[0027]
Thereafter, the process proceeds to step S503, where the number of feature points obtained in step S502 is checked to determine whether or not the number of feature points is n + 1 or more. If the number of extracted feature points is less than n + 1, the process proceeds to step S504, the threshold angle θt is decreased by a predetermined angle (for example, 1 °), and the process returns to step S502.
[0028]
Hereinafter, when the threshold angle θt is sequentially decreased and the processing by the feature point extraction unit 103 is performed, the number of obtained feature points increases, and finally n + 1 or more feature points are obtained. At this time, the process proceeds from step S503 to step S505, the obtained feature point data is output to the feature point erasing unit 104, and this process ends.
[0029]
Next, the processing operation of the feature point erasing unit 145 will be described with reference to the flowchart of FIG.
[0030]
As described above, at least n + 1 feature points are output from the feature point extraction unit 103 (n + 1 or more feature points are obtained). However, when n vectors are extracted from the target stroke, if there are more than n + 1 feature points, it is desirable to remove the corresponding feature points. Therefore, the feature point deletion unit 104 deletes the extra feature points by performing processing according to the flowchart shown in FIG.
[0031]
First, in step S601, the number of feature points is checked, and the process ends when the number of feature points reaches n + 1. If the number of feature points is greater than n + 1, in step S602, processing is performed to remove the point with the smallest angle change between adjacent feature points from the feature point. This process may use the technique used in the feature point extraction process.
[0032]
As a result of the above, from the feature point erasure unit 104, the points in the vicinity where the curvature of the trajectory represented by the stroke data is large remain finally, the points having a small curvature are erased, and finally, n vector data Only data for generating is generated.
[0033]
Next, the processing operation of the vectorization unit 105 will be described with reference to the flowchart of FIG.
[0034]
In step S701, the counter i is initialized to “0”. In step S702, it is checked whether vector processing has been performed for all n + 1 feature points. If this check result is negative, the following steps S703 to S705 are performed.
[0035]
First, in step S703, a direction vector of a straight line passing through two adjacent feature points is obtained. The direction vector is an eight-direction vector shown in FIG. The obtained direction vector is stored as a vector value in step S704. In step S705, a process for moving to the next feature point is performed, and the process returns to step S02.
[0036]
When vector values are obtained for all feature points in this way, n vector values are generated in step S706.
[0037]
The character recognition unit 106 performs character recognition processing based on all vector data sent from the vectorization unit 105 when input of all strokes for one character input is completed. That is, the input vector data of each stroke is compared with the standard vector data in the dictionary unit 108, and the first candidate, the second candidate,. Send to part 107.
[0038]
In addition, although explanation is mixed, when the time series coordinate data which constitutes the input stroke data are arranged almost on a straight line (for example, when a straight line or a line close to it is input by handwriting), both end points are features. Although it is processed as a point, it is difficult to specify a feature point among points located in the middle. However, as the vector data (see FIG. 8) for the target stroke output from the vectorization unit 105, the same vector code is continuous, so the result is the same regardless of which point is the feature point. Therefore, in the process of FIG. 5, many feature points are extracted at a stroke with one threshold angle θt (a value close to 0 °) and passed to the process of FIG. 6, but there are a plurality of feature points having the same angle in step S602. In such a case, it can be dealt with by simply determining any one as a feature point, so there is no problem.
[0039]
In the above embodiment, the result output unit 107 performs a process of passing the result to the lower processing unit as a character recognition result. As the lower-level processing, for example, there is document processing. In short, any processing is possible as long as processing is performed based on the result obtained by the character recognition processing.
[0040]
As described above, with respect to stroke data (coordinate data group) having a portion with a large degree of bending or a portion with a large degree of bending, the coordinate data in the vicinity where the curvature is large is positively processed as an effective point. So, for example, if you input a flat “RU”, you can always get a feature vector with good accuracy of handwritten characters, because the last part, as well as the part where the vector direction is large, will be held reliably. As a result, the recognition rate can be increased.
[0041]
In the present embodiment, feature points are extracted using vector angles for feature extraction processing. However, the present invention is not limited to angles, and it is used in combination with a process of erasing coordinate points within a certain distance and thinning out coordinate points. It doesn't matter.
[0042]
<Second Embodiment>
In the above-described embodiment (first embodiment), the method of performing n-division using the extraction process for extracting the feature of the stroke has been described. However, in the second embodiment, the coordinate point density within a certain range in the stroke is calculated. A method of calculating and dividing n by changing the number of divisions according to the density will be described.
[0043]
FIG. 9 is a block diagram showing a functional configuration of the online handwritten character recognition method in the second embodiment. In FIG. 9, 901, 902, 906, 907, and 908 perform substantially the same processing as 101, 102, 106, 107, and 108 in FIG.
[0044]
The difference is that a point density calculation unit 903 is newly provided. Hereinafter, processing contents of the point density calculation unit 903 will be described with reference to the flowchart of FIG.
[0045]
First, in step S1001, the total length of the stroke is calculated. The total length of the stroke can be obtained by calculating the Euclidean distance between two adjacent coordinates constituting the stroke, and starting from the start point coordinates and adding to the end point coordinates. Then, the obtained total length is equally divided into n, and the value is set to l.
[0046]
In step S1002, a coordinate point having a length l on the stroke is mapped, and this coordinate point is called an n-divided point Pi (0 ≦ i ≦ n + 1). Here, “on the stroke” refers to a straight line formed by connecting coordinate points (see FIG. 11).
[0047]
Next, in step S1003, the interval between the first n dividing point Pi and the second n dividing point Pi + 1 (0 ≦ i ≦ n + 1) is Rj (0 <= j <= n), and the number of coordinate points in the interval Rj is set. Count. The number of coordinate points counted is the point density. FIG. 12 and FIG. 13 show a state of division into four (n is 4) and a point density for each section for a certain stroke.
[0048]
Next, the operation of the dividing point determination unit 904 will be described with reference to FIG.
[0049]
First, in step S1401, the section having the maximum point density (the number of sections in the section relative to the total number of points) is searched from each section obtained by the point density calculation unit. If it is determined in step S1402 that the point density of the section is larger than a predetermined threshold value, the process proceeds to step S1403.
[0050]
If the process proceeds to step S1403, the image is re-divided so that the point density is equal to or less than the threshold value. For example, the length of the section is obtained and divided into two equal parts, a new section is created, and the point density of each section is calculated. The point density calculation method is the same as that of the point density calculation unit. Since the number of divisions has increased in this process (because n + 1 sections have occurred), in step S1404, a section having the smallest point density is searched for, and in step S1405, a section adjacent to it (if there is a point density on both sides) Merged with lower section). In addition, the n division points that originally divided the merged sections are deleted. As a result, the target stroke is returned to the n-division state again. The point density after the merger is obtained by calculating the point density average of both sections. Hereinafter, when such an operation is repeated and the process is completed, a newly generated n-division point is obtained. Then, the point coordinates at both ends of the dividing point are output as effective coordinate data as a vector. As a result, it is possible to cope with the fact that the writing speed is slowed at a portion where the direction of the stroke is unconsciously changed by humans, and that many coordinate points are detected at that portion, so that the division can be performed with high accuracy. Thereafter, vectorization is performed using the obtained n division points, and the same processing as in the first embodiment is performed.
[0051]
<Third Embodiment>
In the first and second embodiments, the present invention is realized by the apparatus having the configuration shown in FIG. 1 or FIG. 9, but the present invention is not limited to this, and may be realized by a program.
[0052]
FIG. 15 shows a block configuration of an apparatus according to the third embodiment. In the figure, 1 is a CPU that controls the entire apparatus, 2 is a ROM that stores a boot program and the like, and 3 is a RAM that stores programs and data processed by the CPU 1. Reference numeral 4 denotes a coordinate input board. Reference numeral 5 denotes a coordinate detection unit that detects coordinates traced on the coordinate input board 4 with an input pen (not shown) by an operator. Note that the input pen is provided with a switch for detecting whether or not the coordinate input plate 4 is pressed, and the pressing state of the switch is output to the CPU 1. Reference numeral 6 denotes a liquid crystal display (LCD) provided on the lower surface of the coordinate input plate 4. Reference numeral 7 denotes an LCD driver for controlling driving of the liquid crystal display 6.
[0053]
Here, the CPU 1 controls the LCD driver 7 so as to connect the point coordinate data sequentially input from the coordinate detection unit 5 with line segments while detecting pen-down, so that it is as if characters are written on the paper. Thus, the handwriting can be displayed on the LCD 6.
[0054]
Reference numeral 8 denotes an external storage device such as a floppy disk or a hard disk device, which stores an operating system, various application programs, and programs related to character recognition processing according to the present embodiment. An area for storing a character recognition dictionary and a recognition result (character code) to be referred to when the recognition process is performed is also secured.
[0055]
In the above configuration, when the character recognition is performed, the CPU 1 loads a program for character recognition into the RAM 3 and performs character recognition processing according to the loaded program.
[0056]
An example of a character recognition program stored in the external storage device 8 is shown in FIG. In the figure, a storage medium 160 is shown, which is compatible with the external storage device 8 in the above embodiment. Specifically, any medium that stores information, such as a floppy disk, a hard disk, or a CD-ROM, is used. Of course, anything can be used.
[0057]
In the figure, 161 is a detection module that detects the degree of change in the vector direction of the point data group of the input stroke, 162 is a comparison module that compares the detected change in vector direction with a predetermined threshold, and 163 If the change in the vector direction is greater than or equal to the threshold value as a result of the comparison, some point data constituting the vector is valid. It is a control module that removes.
[0058]
Here, the storage medium further determines whether or not the number of effective point data obtained by the control module has become a number that can specify n consecutive vector sequences with respect to the target stroke. A determination module and a second module that adjusts the threshold and executes the detection module, the comparison module, and the control module again when it is determined that a number sufficient to identify n consecutive vector sequences cannot be obtained. It is desirable to have a control module.
[0059]
Further, when the determination module determines that the number of effective point data obtained based on the threshold value adjusted by the second control module is n + 1 or more, the storage medium has the obtained feature points. It is desirable to provide a module that extracts the upper n + 1 point data from those having a large vector change.
[0060]
Furthermore, it is desirable to provide a character recognition processing module as a lower level process.
[0061]
The above storage medium 160 corresponds to the first embodiment, but if applicable to the second embodiment, a point density detection module that detects the density distribution of the point data group of the input stroke, and It is easy from the above example to include a section setting module that sets sections based on the level of the obtained point density, and an extraction module that extracts both end points of each set section as feature points. I can think of it.
[0062]
In this case, the point density detection module counts the number of coordinate points included in each divided section, and a division module that equally divides the stroke length represented by the time-series point coordinate data of the input stroke. And a counting module.
[0063]
The partition setting module includes a comparison module that compares the maximum point density of each partition detected by the point density detection module with a predetermined density, and the maximum point density when the maximum point density is equal to or higher than the predetermined density. A first partition correction module that generates n + 1 partitions by dividing the point density partition into two by the partition length, and the lowest point density partition of the generated n + 1 partitions and the adjacent one. It is desirable to have a second partition correction module that combines the partitions to reset n partitions and run the comparison module again.
[0064]
Also in this case, in order to function as a character recognition device, it is desirable to include a character recognition module as a low-order process.
[0065]
As described above, according to this embodiment, when recognizing online handwritten characters, it is possible to extract highly accurate vector data from the input stroke data.
[0066]
In the embodiment, the handwritten information is directly input via the character input unit. However, the handwritten information may be input from a storage medium storing the handwritten information or via communication. The present invention is not limited to the above embodiment.
[0067]
Further, as described in the third embodiment, the present invention relates to a technique for extracting a feature point from input stroke information and passing information corresponding to the feature point to a lower-level process. As long as it does not matter. However, when character recognition processing is adopted as the lower-level processing, the recognition rate can be improved, so it is desirable to adapt to character recognition processing.
[0068]
As described above, the present invention may be applied to a system constituted by a plurality of devices or an apparatus constituted by one device. Needless to say, the present invention can also be applied to a case where the present invention is implemented by supplying a program to a system or apparatus. In this case, the storage medium storing the program according to the present invention constitutes the present invention. Then, by reading the program from the storage medium to the system or apparatus, the system or apparatus operates in a predetermined manner.
[0069]
【The invention's effect】
As described above, according to the present invention, it is possible to extract feature information with high accuracy of the stroke from the input handwritten stroke information and pass it to a lower-level process.
[0070]
[Brief description of the drawings]
FIG. 1 is a block diagram showing a functional configuration of an online handwritten character recognition method in the present embodiment.
FIG. 2 is a diagram showing an example of strokes written in the present embodiment.
FIG. 3 is a flowchart showing a feature extraction process in the first embodiment.
FIG. 4 is a diagram for explaining the principle of feature extraction processing;
FIG. 5 is a flowchart showing control of the number of feature points in the first embodiment.
FIG. 6 is a flowchart showing an operation of a feature point erasing unit in the first embodiment.
FIG. 7 is a flowchart showing the operation of the vectorization unit in the present embodiment.
FIG. 8 is a diagram showing direction vectors in the present embodiment.
FIG. 9 is a functional block diagram of an on-line handwritten character recognition apparatus according to the second embodiment.
FIG. 10 is a flowchart illustrating an operation of a point density calculation unit according to the second embodiment.
FIG. 11 is a diagram illustrating n division points according to the second embodiment.
FIG. 12 is a diagram showing a state of stroke division in the second embodiment.
FIG. 13 is a diagram showing a point density after stroke division in the second embodiment.
FIG. 14 is a flowchart illustrating an operation of a division point determination unit according to the second embodiment.
FIG. 15 is a block diagram showing a specific device configuration according to the third embodiment.
FIG. 16 is a diagram showing program modules stored in a storage medium according to the third embodiment.
[Explanation of symbols]
101, 901 Character input unit 102, 902 Stroke storage unit 103 Feature extraction unit 104 Feature point deletion unit 105, 905 Vectorization unit 106, 906 Recognition unit 107, 907 Result output unit 108, 908 Dictionary unit 903 Point density calculation unit 904 Division Point determination part

Claims (6)

所定の入力装置より入力された手書きストロークから、当該ストロークを構成する点データ群P(0), …, P(k)から特徴点を抽出し、当該特徴点に基づく情報を下位の処理に渡す情報処理装置であって、
前記入力装置より入力された手書きストローク情報である点データP(0)、…、P(k)を記憶するストローク記憶手段と、
該ストローク記憶手段に記憶された点データにおいて、
前記点データの起点P(i)(初期値i=0)、
参照点P(i+1+j)(初期値j=1)とし、
起点P(i)とP(i+1)で定められるベクトルを基準ベクトル、P(i+1)と前記参照点P(i+1+j)で定められるベクトルを参照ベクトルと定義したとき、
前記基準ベクトルと参照ベクトルとの成す角度θと所定閾値とを比較する比較手段と、
該比較手段の比較結果、前記角度θが所定閾値以下である場合には、点P(i+j)を削除対象に設定すると共に、前記変数jを“1”だけ増加させて前記比較手段を再実行し、
前記比較手段の比較結果、前記角度θが所定閾値を越えた場合、点P(i+j)を特徴点として判断し、その際の変数jに基づいて前記変数iを更新すると共に、前記変数jを“1”で再初期化し、前記比較手段を再実行する第1の制御手段と
前記第1の制御手段で得られた特徴点の個数が、注目ストロークに関してn個の連続したベクトル列を特定し得る数になったか否かを判別する判別手段と、
該判別手段によって、n個の連続したベクトル列を特定し得る数より少ないと判別した場合は、前記所定閾値を減じた後、前記第1の制御手段による処理を再度実行する第2の制御手段と
を備えることを特徴とする情報処理装置。
A feature point is extracted from a point data group P (0),..., P (k) constituting the stroke from a handwritten stroke input from a predetermined input device, and information based on the feature point is passed to a lower-level process. An information processing apparatus,
Stroke storage means for storing point data P (0),..., P (k) which is handwritten stroke information input from the input device;
In the point data stored in the stroke storage means,
Starting point P (i) of the point data (initial value i = 0),
Reference point P (i + 1 + j) (initial value j = 1)
When a vector defined by the starting points P (i) and P (i + 1) is defined as a reference vector, and a vector defined by P (i + 1) and the reference point P (i + 1 + j) is defined as a reference vector,
A comparison means for comparing an angle θ between the reference vector and the reference vector with a predetermined threshold;
If the angle θ is equal to or smaller than a predetermined threshold as a result of comparison by the comparison means, the point P (i + j) is set as a deletion target, and the variable j is increased by “1” and the comparison means is re-executed. And
As a result of comparison by the comparison means, when the angle θ exceeds a predetermined threshold value, the point P (i + j) is determined as a feature point, the variable i is updated based on the variable j at that time, and the variable j is "1" re-initialized, a first control means for re-executing said comparing means,
Discriminating means for discriminating whether or not the number of feature points obtained by the first control means has reached a number that can specify n consecutive vector sequences with respect to the target stroke;
A second control unit that executes the process by the first control unit again after reducing the predetermined threshold when the determination unit determines that the number of n consecutive vector sequences is less than the number that can be specified; the information processing apparatus characterized in that it comprises and.
更に、前記判別手段によって、連続したベクトルの数が前記n個を越えたと判別された場合は、前記第1の制御手段で得られた特徴点のうち、前記角度θの大きいものから上位n+1個の特徴点データを抽出する抽出手段を備えることを特徴とする請求項第項に記載の情報処理装置。Further, when the determining means determines that the number of consecutive vectors exceeds the n, among the feature points obtained by the first control means, the top n + 1 from the features having the large angle θ. the information processing apparatus according to claim paragraph 1, characterized in that it comprises an extraction means for extracting feature points data of. 前記下位処理は文字認識処理であることを特徴とする請求項第1項に記載の情報処理装置。  The information processing apparatus according to claim 1, wherein the lower-order process is a character recognition process. 所定の入力装置より入力された手書きストロークから、当該ストロークを構成する点データ群P(0), …, P(k)から特徴点を抽出し、当該特徴点に基づく情報を下位の処理に渡す情報処理方法であって、
前記入力装置より入力された手書きストローク情報である点データP(0)、…、P(k)をストローク記憶手段に格納する格納工程と、
該ストローク記憶手段に記憶された点データにおいて、
前記点データの起点をP(i)(初期値i=0)、
参照点をP(i+1+j)(初期値j=1)とし、
起点P(i)とP(i+1)で定められるベクトルを基準ベクトル、P(i+1)と前記参照点P(i+1+j)で定められるベクトルを参照ベクトルと定義したとき、
前記基準ベクトルと参照ベクトルとの成す角度θと所定閾値とを比較する比較工程と、
該比較工程の比較結果、前記角度θが所定閾値以下である場合には、点P(i+j)を削除対象に設定すると共に、前記変数jを“1”だけ増加させて前記比較工程を再実行し、
前記比較工程の比較結果、前記角度θが所定閾値を越えた場合、点P(i+j)を特徴点として判断し、その際の変数jに基づいて前記変数iを更新すると共に、前記変数jを“1”で再初期化し、前記比較工程を再実行する第1の制御工程と、
前記第1の制御工程で得られた特徴点の個数が、注目ストロークに関してn個の連続したベクトル列を特定し得る数になったか否かを判別する判別工程と、
該判別工程によって、n個の連続したベクトル列を特定し得る数より少ないと判別した場合は、前記所定閾値を減じた後、前記第1の制御手段による処理を再度実行する第2の制御工程と
を備えることを特徴とする情報処理方法。
A feature point is extracted from a point data group P (0),..., P (k) constituting the stroke from a handwritten stroke input from a predetermined input device, and information based on the feature point is passed to a lower-level process. An information processing method,
A step of storing point data P (0),..., P (k), which is handwritten stroke information input from the input device, in a stroke storage means;
In the point data stored in the stroke storage means,
The starting point of the point data is P (i) (initial value i = 0),
The reference point is P (i + 1 + j) (initial value j = 1),
When a vector defined by the starting points P (i) and P (i + 1) is defined as a reference vector, and a vector defined by P (i + 1) and the reference point P (i + 1 + j) is defined as a reference vector,
A comparison step of comparing an angle θ formed by the reference vector and the reference vector with a predetermined threshold;
When the comparison result of the comparison step shows that the angle θ is equal to or smaller than a predetermined threshold, the point P (i + j) is set as a deletion target, and the variable j is increased by “1” and the comparison step is re-executed. And
As a result of the comparison in the comparison step, when the angle θ exceeds a predetermined threshold value, the point P (i + j) is determined as a feature point, the variable i is updated based on the variable j at that time, and the variable j is "1" re-initialized, a first control step of re-executing said comparing step,
A discriminating step for discriminating whether or not the number of feature points obtained in the first control step has reached a number that can identify n consecutive vector sequences with respect to the target stroke;
A second control step of executing the processing by the first control means again after subtracting the predetermined threshold when it is determined by the determination step that the number of n consecutive vector sequences is less than the number that can be specified; an information processing method characterized in that it comprises and.
更に、前記判別工程によって、連続したベクトルの数が前記n個を越えたと判別された場合は、前記第1の制御工程で得られた特徴点のうち、前記角度θの大きいものから上位n+1個の特徴点データを抽出する抽出工程を備えることを特徴とする請求項第項に記載の情報処理方法。Further, when it is determined by the determination step that the number of consecutive vectors exceeds the n, among the feature points obtained in the first control step, n + 1 high-order points from the one having the large angle θ. The information processing method according to claim 4, further comprising an extraction step of extracting the feature point data. 前記下位処理は文字認識処理であることを特徴とする請求項第項に記載の情報処理方法。The information processing method according to claim 4, wherein the lower-order process is a character recognition process.
JP19523395A 1995-07-31 1995-07-31 Information processing apparatus and method Expired - Fee Related JP3817281B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19523395A JP3817281B2 (en) 1995-07-31 1995-07-31 Information processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19523395A JP3817281B2 (en) 1995-07-31 1995-07-31 Information processing apparatus and method

Publications (2)

Publication Number Publication Date
JPH0944599A JPH0944599A (en) 1997-02-14
JP3817281B2 true JP3817281B2 (en) 2006-09-06

Family

ID=16337704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19523395A Expired - Fee Related JP3817281B2 (en) 1995-07-31 1995-07-31 Information processing apparatus and method

Country Status (1)

Country Link
JP (1) JP3817281B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009042970A (en) * 2007-08-08 2009-02-26 Dainippon Printing Co Ltd Terminal apparatus, program and electronic pen processing system
US9846920B2 (en) * 2014-01-27 2017-12-19 Tactual Labs Co. Decimation strategies for input event processing

Also Published As

Publication number Publication date
JPH0944599A (en) 1997-02-14

Similar Documents

Publication Publication Date Title
US7302099B2 (en) Stroke segmentation for template-based cursive handwriting recognition
JP5071914B2 (en) Recognition graph
JP3176023B2 (en) Handwriting input collation method and apparatus
US5854855A (en) Method and system using meta-classes and polynomial discriminant functions for handwriting recognition
US7437001B2 (en) Method and device for recognition of a handwritten pattern
US5841902A (en) System and method for unconstrained on-line alpha-numerical handwriting recognition
US7630551B2 (en) Method and system for line extraction in digital ink
US5768417A (en) Method and system for velocity-based handwriting recognition
US7369702B2 (en) Template-based cursive handwriting recognition
CA2481828C (en) System and method for detecting a hand-drawn object in ink input
EP1854047A1 (en) Segmentation-based recognition
JP3761937B2 (en) Pattern recognition method and apparatus, and computer control apparatus
Chiang et al. Recognizing arbitrarily connected and superimposed handwritten numerals in intangible writing interfaces
JP2015099566A (en) Feature calculation device, method and program
JP3817281B2 (en) Information processing apparatus and method
CN115311674A (en) Handwriting processing method and device, electronic equipment and readable storage medium
Nguyen et al. Semi-incremental recognition of on-line handwritten Japanese text
JP3977473B2 (en) Handwritten character recognition method and handwritten character recognition apparatus
JPH09319828A (en) On-line character recognition device
JP3419251B2 (en) Character recognition device and character recognition method
JP3470541B2 (en) Online handwritten character recognition device
JP3357847B2 (en) Character recognition method, character recognition device, and storage medium
JP2785438B2 (en) Character recognition method
JP3146046B2 (en) Online character recognition device
JP2658137B2 (en) Character recognition method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060317

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: 20060602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060612

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: 20090616

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees