(57)【要約】【課題】従来技術において、手書き文字の正確な再現が困難であり、手書きデータの文字認識や図形認識や個人筆跡認証が困難であった。【解決手段】座標情報と筆圧情報と時間情報を適切に組み合わせた特徴点情報を２以上有する情報を２以上取得し、記録する手書きデータを取得して記録するプログラムにより、手書きする場合のペンの動きに関する情報も記録でき、従って、手書き文字の正確な再現ができ、よって手書きデータの文字認識や図形認識や個人筆跡認証が容易になる。【選択図】　図１
2004062251.tif 000002
【特許請求の範囲】
【請求項１】
手書きデータを取得して記録するプログラムであって、
コンピュータに、
平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、
前記座標情報取得ステップにおいて座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得ステップと、
前記座標情報と前記筆圧情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム。
【請求項２】
前記座標情報取得ステップにおいて座標情報を取得したときの時間に関する情報である時間情報を取得する時間情報取得ステップをさらに具備し、
前記手書きデータ記録ステップは、前記座標情報と前記筆圧情報と前記時間情報を対応付けて記録する請求項１記載のプログラム。
【請求項３】
手書きデータを取得して記録するプログラムであって、
コンピュータに、
平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、
前記座標情報取得ステップで取得した二以上の座標情報に基づいて、二種類以上の特徴点を認識する特徴点認識ステップと、
前記特徴点認識ステップで認識した二種類以上の特徴点を識別する特徴点識別情報と、前記特徴点における座標情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム。
【請求項４】
前記座標情報と前記筆圧情報と前記時間情報の１以上の情報に基づいて、二種類以上の特徴点を認識する特徴点認識ステップをさらに具備し、前記手書きデータ記録ステップは、前記特徴点における座標情報と前記筆圧情報と前記時間情報のうちの一以上の情報と、前記特徴点認識ステップで認識した二種類以上の特徴点を識別する特徴点識別情報を対応付けて記録する請求項１または請求項２いずれか記載のプログラム。
【請求項５】
前記手書きデータ記録ステップにおいて記録する情報は、前記特徴点における座標情報（ｘ，ｙ）と筆圧情報（ｚ）と時間情報（ｔ）を有する特徴点情報（ｘ，ｙ，ｚ，ｔ）と、特徴点識別情報を有し、
前記特徴点認識ステップは、
ａ）筆圧が一定時間以上かからない状態（これを筆圧情報ｚ＝０とする）ののち筆圧がかかり始めた第一点と、
ｂ）ｚがノンゼロの状態でｘまたはｙの変化の累積がある一定値を超えた第二点と、
ｃ）ｚがノンゼロ状態でｘ，ｙ，ｚの値の変化がある小さな値以下の状態が一定時間以上続いた第三点と、
ｄ）ｘ／ｙまたはｙ／ｘが小さな変化の範囲内の一定値からはみ出た第四点と、
ｅ）ｚがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復した際のゼロになった第五点と、
ｆ）ｚがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復した際のノンゼロに復した第六点と、
ｇ）ｚがゼロになり一定時間以上ゼロが継続したときｚがゼロになった第七点を認識する請求項４記載のプログラム。
【請求項６】
平面上の座標位置を示す情報である座標情報を取得する座標情報取得部と、
前記座標情報取得部が座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得部と、
前記座標情報と前記筆圧情報を対応付けて記録する手書きデータ記録部を具備する手書きデータ記録装置。
【請求項７】
前記座標情報取得部が座標情報を取得したときの時間に関する情報である時間情報を取得する時間情報取得部をさらに具備し、
前記手書きデータ記録部は、前記座標情報と前記筆圧情報と前記時間情報を対応付けて記録する請求項６記載の手書きデータ記録装置。
【請求項８】
平面上の座標位置を示す情報である座標情報を取得する座標情報取得部と、
前記座標情報取得部が取得した二以上の座標情報に基づいて、二種類以上の特徴点を認識する特徴点認識部と、
前記特徴点認識部が認識した二種類以上の特徴点を識別する特徴点識別情報と、前記特徴点における座標情報を対応付けて記録する手書きデータ記録部を具備する手書きデータ記録装置。
【請求項９】
座標情報と前記筆圧情報と前記時間情報の１以上の情報に基づいて、二種類以上の特徴点を認識する特徴点認識部をさらに具備し、
前記手書きデータ記録部は、前記特徴点における座標情報と前記筆圧情報と前記時間情報のうちの一以上の情報と、前記特徴点認識部が認識した二種類以上の特徴点を識別する特徴点識別情報を対応付けて記録する請求項６から請求項８いずれか記載の手書きデータ記録装置。
【請求項１０】
座標情報と筆圧情報を有する２以上の記録情報を格納しており、当該２以上の記録情報を読み出して出力する手書きデータ出力装置。
【請求項１１】
座標情報を含む特徴点情報と、特徴点識別情報を有する２以上の記録情報を格納しており、当該２以上の記録情報を読み出して出力する手書きデータ出力装置。
【請求項１２】
前記特徴点情報は、筆圧情報または／および時間情報をも含む請求項１１記載の手書きデータ出力装置。
【請求項１３】
コンピュータに、
データの出力指示を受け付けるデータ出力指示受付ステップと、
前記データの出力指示を受け付けた場合に、格納されている座標情報と、筆圧情報または／および時間情報を有する２以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム。
【請求項１４】
前記記録情報が特徴点識別情報と座標情報を有する特徴点情報を有する請求項１３記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、手書きの文字や手書きの図形等のデータを取得し記録するプログラムや当該データを出力する手書きデータ出力装置等に関するものである。
【０００２】
【従来の技術】
従来技術として、ディジタイザと呼はれている装置がある。ディジタイザは、ペンの動きのｘ，ｙ座標列を取得するための装置である。ディジタイザの目的は以下である。第一は手書きのストロークデータを取得することである。第二は、そのデータから文字を認識し、文字コードに変換することである。第三は、ｘ，ｙ座標とコマンドの組合せから図形を入力することである。したがって第一の目的を達成するために、単に手書きのストロークのみを表現すればよい。第二の目的を達成するために、手書きのストロークなどから認識した結果を文字コードで表現すればよい。第三の目的を達成するために、ポイントだけを（ｘ，ｙ）座標で表現すればよい。
【０００３】
このように既存の技術はディジタイザからの出力をストロークデータとして変換する、認識して文字コードにする、ポイントデータとそれから読み取るコマンドの組合せでグラフィックデータとして表現する、という三種に分類することができる。
【０００４】
ストロークデータを作る方法として以下のものが知られている。第一は、ディジタイザからの出力を一定時間間隔でサンプリングし、そのサンプルした（ｘ，ｙ）座標または前のサンプル点（代表点）からのｘ，ｙの変移を手書きデータとする。この方法では、同じ所に留まっているときは、同じ（ｘ，ｙ）が複数個、代表点として選択されることになる。第二は、ディジタイザからの出力の隣接データ間の直線性を調べ、予め設定した範囲の直線からずれた点をサンプルデータとしてその列を手書きデータとする。第三は、第一、第二の方法を組み合わせて手書きデータを作る、という方法である。このように従来は手書きされた図形を上記３方法でサンプリングし、サンプル点を手書きデータとし、復元はサンプリングされた点を直線でつなぐことによって行う方法をとっていた。
【０００５】
通常ディジタイザの出力はペンダウンとともに始まり、ディジタイザの内部クロックで決まるタイミングでそのときの（ｘ，ｙ）が出力される。ペンが同じ場所に留まっていると同じ（ｘ，ｙ）が数多く出力される。これをほぼ直線状をペンが動く場合は粗く、直線上から逸脱し始めると細かく、代表点を選択してその（ｘ，ｙ）の座標系列で手書き情報を記述するのが第二の方法である。同じ所に留っているときはほぼ直線上に乗っているときと同様に、ほぼ留り始めと次に動いた点が代表点となる。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記の従来技術における手書きデータは、平面上の座標情報（ｘ，ｙ）をサンプリングして記録しているので、手書きする場合のペンの細かい動きに関する情報が欠落している。従って、手書き文字の正確な認識が困難であり、また、個人認証に手書き入力を用いる場合にも限界があった。具体的には、記述された手書きデータからはどこでペンが早く動き、どこで留ったかはわからない。さらに、手書きストロークの変曲点がわからない。図２２に従来の記述方法の欠点を示す。図２２（ａ）に示すように、第二の方法では直線から逸脱したとき代表点を選択するので直角に曲がってしばらくたってから代表点が選ばれる。従って、代表点は直角に曲がった点を少し外れる。また、ペンでカーブを描く場合には、例えば、第一の方法でも、第二の方法でも図２２（ｂ）のようにサンプリグされる。この図２２（ｂ）のデータを復元する場合は、サンプル点が直線で結ばれ、図２２（ｃ）のようになる。
【０００７】
以上のように、従来技術において、手書き文字の正確な再現が困難であり、よって、手書きデータの文字認識や図形認識や個人認証が困難であった。
【０００８】
【課題を解決するための手段】
以上の課題を解決するために、本発明は、座標情報と筆圧情報と時間情報を適切に組み合わせた特徴点情報を２以上有する情報を２以上取得し、記録する手書きデータを取得して記録するプログラムにより、手書きする場合のペンの動きに関する情報も記録できる。従って、手書き文字の正確な再現ができ、よって手書きデータの文字認識や図形認識や個人筆跡認証が容易になる。
【０００９】
また、特徴点として一定の点を選択して手書きデータを記録することにより、データ量は減り、かつ、さらに手書き文字の正確な再現ができ、よって手書きデータの文字認識や図形認識や個人筆跡認証がさらに容易になる。
【００１０】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面を用いて詳細に説明する。なお、本実施の形態において、同一の符号を用いた構成要素やフローチャートのステップなどは、同じ機能を果たすので、一度説明したものについて説明を省略する場合がある。
【００１１】
（実施の形態１）
図１は、本実施の形態に係る手書きデータ取得装置のブロック図である。手書きデータ取得装置は、座標情報取得部１０１、筆圧情報取得部１０２、手書きデータ記録部１０３、入力受付部１０４、手書きデータ出力部１０５を有する。
【００１２】
座標情報取得部１０１は、平面上の座標位置を示す情報である座標情報（ｘ，ｙ）を定期的に取得する。座標情報取得部１０１は、例えば、以下の技術により実現され得る。本技術は、アノト日本株式会社の紙とペンの組合せ技術である。本技術は、インターネットのホームページ（ｈｔｔｐ：／／ｗｗｗ．ａｎｏｔｏ．ｃｏ．ｊｐ／）に掲載されている。以下に、本技術について説明する。
【００１３】
わかりやすくするため”０””１”の数字を並べこれを相隣る２個ずつ取り上げてきたとき同じ数字列が登場しない並べ方は、たとえば「００１１０」である。こうすると相隣る２個の数字列は”００”、０１”、”１１”、”１０”となるので同じものはない。これを相隣る３個の数字で同じものがないようにするには、例えば「０００１１１０１００」と並べればよい。一般に０と１のみのとき相隣るｋ個ずつの数字列が同じものが登場しないようにする並べ方の長さは２ｋ＋ｋ−１になる。これを２次元に配列してすべての垂直，水平に相隣るｋ×ｋのマトリクスが異なるようにすることも同様にしてできる。このようなマトリクスは少なくとも２ｋ次の正方マトリクスは存在する。
【００１４】
図２（ａ）の例は０と１ではなく４通りあるパターンを基本パターンにする。これは４進数の数字０，１，２，３と考えれば全く同じようにして並べることができる。これを図２（ｂ）のように１次元に並べると、例えば、「１２１３３０３…」の配列となる。これを図２（ｃ）に示すように２次元に配列する。この例は「１２１３３０３−−−−」「１０００２０−−−−」「２０１２１−−−」「２１０２−−−」の行が縦に並ぶ。相隣る２つの組み合わせがすべて異なる１次元配列の例が「００１１２２３３１０２１３２０３０」である。また、相隣るｋ数字の組み合わせがすべて異なる１次元配列は「４ｋ＋ｋ−１」の長さにある。２進数の場合と同様、２次元配列にもできる。図２（ｃ）はその２次元配列の例であり、こうして４ｋ次の正方マトリクスが得られる。
【００１５】
このようなパターンをぎっしり薄く印刷した紙を作り、その上をボールペンの先端部にＣＣＤなどのイメージンセンサを装置したものをイメージペンと呼ぶことにすれば、それにイメージ処理機能を内蔵させればボールペンの動きに従って、紙の上のその場所に印刷されたパターンの配列の相当部分を読取ることができる。紙の上のパターンの配列をイメージペンの光のイメージセンサの視野の範囲に先ほどの２×２のマトリクスが入るように設計しておけば、いまペンが書いている場所のマトリクスのパターンが取得できる。紙に印刷されたパターンの相隣る２×２のマトリクスに同じものが無いとすれば、ペン先のイメージセンサが取得した２×２のマトリクスにより紙の上の位置が一義的に決まる。こうしてペンｘｙ平面上での動きが取得できる。
【００１６】
また、座標情報取得部１０１は、タッチパネル上を電子ペンが動く場合に、当該電子ペンが動いた２次元座標値（ｘ，ｙ）を取得する技術により実現することも考えられる。かかる技術は、手書き文字入力や手書き文字認識機能を有する携帯端末が保持する既存技術であるので、詳細な説明は省略する。
【００１７】
筆圧情報取得部１０２は、座標情報取得部１０１が座標情報を取得した時の筆圧に関する情報である筆圧情報（ｚ）を取得する。筆圧情報取得部１０２は、例えば、圧力センサにより実現されえる。具体的には、筆圧情報取得部１０２は、例えば、上記のイメージペンのボールペンの根元に圧力センサを搭載し、ボールペンにかかる圧力データを取得することにより筆圧情報（ｚ）を取得する。
【００１８】
手書きデータ記録部１０３は、座標情報取得部１０１が取得した座標情報と筆圧情報取得部１０２が取得した筆圧情報を対に有する記録情報（ｘ，ｙ，ｚ）を記録する。記録する先は、手書きデータ取得装置が保持している記録媒体（図示しない）である。手書きデータ記録部１０３は、通常、ソフトウェアにより実現されるが、ハードウェア（専用回路）により実現されても良い。
【００１９】
入力受付部１０４は、手書きデータを出力する指示を受け付ける。この出力指示は、ボタンの押下や、一定のペンの動き等である。入力受付部１０４は、例えば、ボタンとその押下を認識するソフトウェアにより実現され得る。
【００２０】
手書きデータ出力部１０５は、入力受付部１０４で出力指示を受け付けた場合に、手書きデータ記録部１０３が記録した記録情報（ｘ，ｙ，ｚ）に基づいて、手書きデータを出力する。ここでの出力は、ディスプレイへの表示、または／およびプリンタへの印字、さらにはデータ伝送装置などの外部の装置への出力（送信も含む）等を言う。
【００２１】
以下、手書きデータ取得装置の動作について図３のフローチャートを用いて説明する。
（ステップＳ３０１）筆圧情報取得部１０２が筆圧情報（ｚ）を取得する。そして、取得した筆圧情報（ｚ）が０であるか否かを判断する。筆圧情報（ｚ）が０でなければステップＳ３０２に行き、筆圧情報（ｚ）が０であればステップＳ３０６に飛ぶ。
【００２２】
（ステップＳ３０２）座標情報取得部１０１は、座標情報（ｘ，ｙ）を取得する。
（ステップＳ３０３）手書きデータ記録部１０３は、記録情報（ｘ，ｙ，ｚ）を構成する。
【００２３】
（ステップＳ３０４）手書きデータ記録部１０３は、ステップＳ３０３で構成した記録情報（ｘ，ｙ，ｚ）を記録する。
（ステップＳ３０５）ステップＳ３０４における記録情報の記録から一定時間が経過したか否かを判断する。一定時間が経過すればステップＳ３０１に行き、一定時間が経過しなければステップＳ３０５に戻る。
【００２４】
（ステップＳ３０６）筆圧情報（ｚ）が０である時間が一定時間以上であるか否かを判断する。一定時間以上でなければステップＳ３０１に戻り、一定時間以上であれば処理を終了する。
【００２５】
なお、図３のフローチャートは、一つの手書きストロークのデータ（例えば、１文字のデータ）を取得するフローチャートであった。しかし、複数のデータを取得する場合には、繰り返し適用すれば良い。かかる場合、手書き開始時点からの時間である全体時間情報を取得する全体時間情報取得部を具備し、手書きデータ記録部１０３は、全体時間情報取得部が取得した全体時間情報をも記録することにより、複数の手書きストローク間の時間関係をも記録することがきる。
【００２６】
次に、本手書きデータ取得装置は、入力受付部１０４が手書きデータの出力指示を受け付けた場合に、手書きデータ記録部１０３が記録した手書きデータの中から、指示された手書きデータを選択して出力する。つまり、座標情報と筆圧情報を有する２以上の記録情報を読み出し、強弱（太くしたり細くしたり、または色の濃淡）のある線から構成される文字や図形が出力される。
【００２７】
以下、本実施の形態における手書きデータ取得装置の具体的な動作について説明する。手書きデータ取得装置の第一の具体例を図４に示す。本手書きデータ取得装置は、タッチパネルと電子ペンが付属している携帯端末である。また、本手書きデータ取得装置のタッチパネルには圧力センサが付いており、ペンで押下したときの圧力が検知できる。ここで、ユーザは「電源ボタン」を押下して、手書き文字の入力モードとする。そして、ユーザはペンを用いて「り」の文字を入力する、とする。すると、手書きデータ取得装置は、図５に示す記録情報を記録する。記録情報（ｘ，ｙ，ｚ）は、手書きデータ取得装置のタッチパネル上をペンが移動した際の座標情報（ｘ，ｙ）と筆圧情報（ｚ）を有する。筆圧情報（ｚ）は、圧力センサが読み取る情報である。そして、記録された情報は、筆圧情報も有するので、出力する場合に、筆圧によって線の太さや色の濃淡を変えるなどすることにより、実際のデータ記述に合致した文字や図形が再現できる。特に、毛筆による文字の記録には好適である。筆圧によって線の太さを変えて出力した「り」の例を図６に示す。
【００２８】
次に、手書きデータ取得装置の第二の具体例を図７に示す。図７は、カメラとインクとプロセッサとメモリーと通信手段と圧力センサを有する。なお、プロセッサは、上記のフローチャート等で説明した処理を行う。また、メモリーは揮発性のメモリーでも良いし、不揮発性のメモリーでも良い。また、通信手段は、ブルートゥース等の無線通信手段が好適であるが、有線の通信手段でも良い。さらに、圧力センサは、ペンのボールペンの根元に搭載されているのが好適である。本手書きデータ取得装置は、上述したアノト日本株式会社の紙上に記載された文字や図形の位置座標（ｘ，ｙ）と筆圧情報（ｚ）を読み取る。そして、ユーザが上記の手書きデータ取得装置を用いて「り」の文字を記載すれば、プロセッサによって位置座標（ｘ，ｙ）と筆圧情報（ｚ）が取得され、記録情報（ｘ，ｙ，ｚ）がメモリーに一旦蓄えられる。この蓄えられた記録情報（ｘ，ｙ，ｚ）の例が図５の情報である。そして、記録情報（ｘ，ｙ，ｚ）は通信手段により外部の情報処理装置に送信される。
【００２９】
次に、外部の情報処理装置は、例えば、図５の記録情報（ｘ，ｙ，ｚ）を受信し、格納する。そして、外部の情報処理装置で表示しても良い。かかる場合、上述したように、実際のデータ記述に合致した文字や図形が再現できる。特に、毛筆による文字の記録には好適である。また、個人認証に用いる場合に、筆圧を考慮した個人認証が可能になる。具体的には、予めユーザに決められた文字を入力してもらい、その際の記録情報（ｘ，ｙ，ｚ）を格納しておくとする。そして、例えば、入り口で予め決められた文字を入力してもらい、登録されている人に合致するか否かを判断する。かかる場合、筆圧情報も考慮した個人認証ができるので、文字の形だけで個人認証を行うより精度の高い個人認証が可能である。
【００３０】
以上、本実施の形態によれば、手書きデータを取得する場合に、二次元の座標情報と筆圧情報を取得することにより、実際のデータ記述に合致した文字や図形が記録できる。特に、毛筆による文字の記録には好適である。また、個人認証に用いる場合に、筆圧を考慮した精度の高い個人認証が可能になる。
【００３１】
なお、本実施の形態において、入力受付部、手書きデータ出力部は必須ではない。かかる場合、手書きデータ取得装置は、座標情報取得部、筆圧情報取得部、手書きデータ記録部を有することとなる。
【００３２】
また、本実施の形態において、例えば、図５のデータを読み出して図６のような文字を出力する装置である手書きデータ出力装置は以下の構成になる。つまり、手書きデータ出力装置は、座標情報と筆圧情報を有する２以上の記録情報を格納しており、当該２以上の記録情報を読み出して出力する手書きデータ出力装置である。
【００３３】
さらに、本実施の形態において説明した手書きデータ取得装置の動作について、ソフトウェアで実現し、当該ソフトウェアを例えば、サーバ上に置いて、ソフトウェアダウンロードにより当該ソフトウェアを配布しても良い。さらにソフトウェアをＣＤ−ＲＯＭ等の記録媒体に記録して流布しても良い。このことも、すべての実施の形態において同様である。なお、本実施の形態において説明した手書きデータ取得装置の動作をソフトウェアで実現した場合のプログラムは、以下のようになる。つまり、本プログラムは、手書きデータを取得して記録するプログラムであって、コンピュータに、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得ステップと、座標情報と筆圧情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム、である。なお、手書きデータ記録ステップにおける記録は、一時メモリーへの一時的な記憶も含む。
【００３４】
また、手書きデータを出力するためのプログラムは、以下のようになる。本プログラムは、データの出力指示を受け付けるデータ出力指示受付ステップと、データの出力指示を受け付けた場合に、格納されている座標情報と筆圧情報を有する２以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム、である。通常、本プログラムは、データの出力指示を受け付けた場合にデータ出力が行われるので、データの出力指示を受け付けるデータ出力指示受付ステップを有する。
【００３５】
（実施の形態２）
図８は、本実施の形態に係る手書きデータ取得装置のブロック図である。手書きデータ取得装置は、座標情報取得部１０１、筆圧情報取得部１０２、時間情報取得部８０１、手書きデータ記録部８０２、入力受付部１０４、手書きデータ出力部１０５を有する。
【００３６】
時間情報取得部８０１は、座標情報取得部１０１が座標情報を取得したときの時間に関する情報である時間情報を取得する。具体的には、時間情報取得部８０１は、例えば、ストロークが始まってからの時間を取得する。時間情報取得部８０１は、時計を保持しており、当該時計から時間情報を取得するソフトウェア等で実現され得る。
手書きデータ記録部８０２は、座標情報取得部１０１が取得した座標情報（ｘ，ｙ）と筆圧情報取得部１０２が取得した筆圧情報（ｚ）と時間情報取得部８０１が取得した時間情報（ｔ）を対に有する記録情報（ｘ，ｙ，ｚ，ｔ）を記録する。
【００３７】
以下、手書きデータ取得装置の動作について図９のフローチャートを用いて説明する。
（ステップＳ９０１）初期化を行う。初期化とは、座標情報（ｘ，ｙ）を（０，０）、筆圧情報（ｚ）を（０）、時間情報（ｔ）を（０）にし、さらに各種カウンタを０にすることである。
【００３８】
（ステップＳ９０２）筆圧情報取得部１０２が筆圧情報（ｚ）を取得する。そして、取得した筆圧情報（ｚ）が０であるか否かを判断する。筆圧情報（ｚ）が０でなければステップＳ９０３に行き、筆圧情報（ｚ）が０であればステップＳ９０９に飛ぶ。
【００３９】
（ステップＳ９０３）座標情報取得部１０１は、座標情報（ｘ，ｙ）を取得する。
（ステップＳ９０４）時間情報取得部８０１は、ストローク開始（筆圧情報が０でなくなったとき）からの時間である時間情報を取得する。
【００４０】
（ステップＳ９０５）手書きデータ記録部８０２は、記録情報（ｘ，ｙ，ｚ，ｔ）を構成する。
【００４１】
（ステップＳ９０６）手書きデータ記録部８０２は、ステップＳ９０５で構成した記録情報と既に記録している記録情報から、前に記録した記録情報が不要か否かを判断する。前に記録した記録情報が不要であればステップＳ９０７に行き、前に記録した記録情報が不要でなければステップＳ９０８に飛ぶ。なお、前に記録した記録情報が不要か否かは、例えば、以下のアルゴリズムでチェックする。直前に記録した記録情報の筆圧情報とステップＳ９０５で構成した記録情報の筆圧情報の変化がないこと、および直前に記録した２つの記録情報の座標情報とステップＳ９０５で構成した記録情報の座標情報（３つの座標情報）により、直前に記録した記録情報の座標情報が示す点が、直線上の中点にあたる（端点でない）という２つの条件を満たす場合に、前に記録した記録情報が不要である、ということになる。
【００４２】
（ステップＳ９０７）手書きデータ記録部８０２は、ステップＳ９０６で構成した記録情報（ｘ，ｙ，ｚ）を、前の不要な記録情報に上書き記録する。
【００４３】
（ステップＳ９０８）手書きデータ記録部８０２は、ステップＳ９０６で構成した記録情報（ｘ，ｙ，ｚ）を、新たに記録する。
（ステップＳ９０９）筆圧情報（ｚ）が０である時間が一定時間以上であるか否かを判断する。一定時間以上でなければステップＳ９０２に戻り、一定時間以上であれば処理を終了する。
【００４４】
なお、図９のフローチャートは、一つの手書きストロークのデータ（例えば、１文字のデータ）を取得するフローチャートであった。しかし、複数のデータを取得する場合には、繰り返し適用すれば良い。かかる場合、手書きストロークの始点からカウントする時間情報とは別に手書き開始時点からの時間である全体時間情報を取得する全体時間情報取得部を具備し、手書きデータ記録部８０２は、全体時間情報取得部が取得した全体時間情報をも記録することにより、複数の手書きストローク間の時間関係をも記録することがきる。
【００４５】
以下、本実施の形態における手書きデータ取得装置の具体的な動作について説明する。手書きデータ取得装置の具体例は図７の装置である。本手書きデータ取得装置のプロセッサにおいて、図９のフローチャートで説明した処理を行う。そして、ユーザは、例えば、図７のペンを用いて特殊な紙に「口」という漢字を書く、とする。かかる場合、手書きデータ取得装置は、図１０に示すような筆圧情報、座標情報、時間情報を取得する、とする。なお、時間情報は、筆圧が０より大きくなった後（ストローク開始後）からカウントされた値である。なお、ユーザがペンを用いて書いた「口」のイメージ図を図１１に示す。
【００４６】
上記の場合、いわゆる不要な点の記録情報は記録されずに、図１２に示す記録情報が記録される。つまり、直線上の中点で、かつ筆圧情報の変化がない点の記録情報は最終的には記録されない。
【００４７】
以上、本実施の形態によれば、手書きデータを取得する場合に、二次元の座標情報と筆圧情報と時間情報を取得することにより、ペンの動きに関する情報をも記録できる。かかる技術を個人認証に用いる場合に、筆圧を考慮した精度の高い個人認証が可能になる。さらに、時間情報を記録することにより、不要な情報を記録せずに済み、全体のデータ量を削減することができる。また、時間情報を記録することにより、個人の筆を走らせる速度なども容易に把握でき、精度の高い個人認証が可能になる。
【００４８】
なお、本実施の形態において、中点の情報を間引いて記録情報を記録した。しかし、記録しない情報を決定するアルゴリズムは、上記で説明したアルゴリズムに限られない。
【００４９】
また、本実施の形態において、筆圧情報は「０」または「０でない」の２つの状態の情報でも良い。さらに、上述の手書きデータ取得装置において、入力受付部、手書きデータ出力部は必須ではない。かかる場合、手書きデータ取得装置は、座標情報取得部、時間情報取得部、「０」または「０でない」の２つの状態のみを取得する筆圧情報取得部、手書きデータ記録部を有することとなる。
【００５０】
また、本実施の形態において、例えば、図１２のデータを読み出して図１１のような文字を出力する装置である手書きデータ出力装置は以下の構成になる。つまり、手書きデータ出力装置は、座標情報と筆圧情報と時間情報を有する２以上の記録情報を格納しており、当該２以上の記録情報を読み出して出力する手書きデータ出力装置である。または、本手書きデータ出力装置は、座標情報と時間情報を有する２以上の記録情報を格納しており、当該２以上の記録情報を読み出して出力する手書きデータ出力装置である。
【００５１】
さらに、本実施の形態において説明した手書きデータ取得装置の動作について、ソフトウェアで実現し、当該ソフトウェアを例えば、サーバ上に置いて、ソフトウェアダウンロードにより当該ソフトウェアを配布しても良い。さらにソフトウェアをＣＤ−ＲＯＭ等の記録媒体に記録して流布しても良い。なお、本実施の形態において説明した手書きデータ取得装置の動作をソフトウェアで実現した場合のプログラムは、以下のようになる。つまり、本プログラムは、手書きデータを取得して記録するプログラムであって、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の時間に関する情報である時間情報を取得する時間情報取得ステップと、座標情報と時間情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラムである。
【００５２】
また、本実施の形態における別のプログラムは、手書きデータを取得して記録するプログラムであって、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の時間に関する情報である時間情報を取得する時間情報取得ステップと、座標情報と筆圧情報と時間情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラムである。
【００５３】
また、手書きデータを出力するためのプログラムは、以下のようになる。本プログラムは、データの出力指示を受け付けるデータ出力指示受付ステップと、データの出力指示を受け付けた場合に、格納されている座標情報と筆圧情報と時間情報を有する２以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム、である。通常、本プログラムは、データの出力指示を受け付けた場合にデータ出力が行われるので、データの出力指示を受け付けるデータ出力指示受付ステップを有する。
【００５４】
（実施の形態３）
図１３は、本実施の形態に係る手書きデータ取得装置のブロック図である。手書きデータ取得装置は、座標情報取得部１０１、筆圧情報取得部１０２、入力受付部１０４、手書きデータ出力部１０５、時間情報取得部８０１、特徴点認識部１３０１、手書きデータ記録部１３０２を有する。
【００５５】
特徴点認識部１３０１は、座標情報取得部１０１または／および筆圧情報取得部１０２または／および時間情報取得部８０１で取得した二以上の座標情報または／および筆圧情報または／および時間情報に基づいて、二種類以上の特徴点を認識する。特徴点認識部１３０１は、通常、ソフトウェアで実現されるが、ハードウェア（専用回路）で実現しても良い。
【００５６】
手書きデータ記録部１３０２は、特徴点認識部１３０１が認識した特徴点を識別する情報である特徴点識別情報と、座標情報と、筆圧情報（ｚ）または／および時間情報（ｔ）を対に有する特徴点情報（ｘ，ｙ，ｚ，ｔ）または（ｘ，ｙ，ｚ）または（ｘ，ｙ，ｔ）を記録する。記録する特徴点識別情報と特徴点情報を記録情報という。記録する先は、手書きデータ取得装置が保持している記録媒体（図示しない）である。手書きデータ記録部１３０２は、通常、ソフトウェアにより実現されるが、ハードウェア（専用回路）により実現されても良い。
【００５７】
以下、手書きデータ取得装置の動作について図１４のフローチャートを用いて説明する。以下、特徴点情報が（ｘ，ｙ，ｚ，ｔ）である場合について説明する。
（ステップＳ１４０１）初期化を行う。初期化とは、座標情報（ｘ，ｙ）を（０，０）、筆圧情報（ｚ）を（０）、時間情報（ｔ）を（０）にし、さらに各種カウンタを０にすることである。
【００５８】
（ステップＳ１４０２）筆圧情報取得部１０２が筆圧情報（ｚ）を取得する。そして、取得した筆圧情報（ｚ）が０であるか否かを判断する。筆圧情報（ｚ）が０でなければステップＳ１４０３に行き、筆圧情報（ｚ）が０であればステップＳ１４０９に飛ぶ。なお、ステップＳ１４０２でｚ＝０でないときは、筆圧情報（ｚ）の値を取得する。
【００５９】
（ステップＳ１４０３）座標情報取得部１０１は、座標情報（ｘ，ｙ）を取得する。
【００６０】
（ステップＳ１４０４）時間情報取得部８０１は、ストローク開始（筆圧情報が０でなくなったとき）からの時間である時間情報を取得する。
【００６１】
（ステップＳ１４０５）特徴点認識部１３０１は、ステップＳ１４０３で取得した座標情報が示す点が特徴点であるか否かを判断する。特徴点認識部１３０１は、特徴点であると判断するための条件を保持しており、座標情報取得部１０１および筆圧情報取得部１０２および時間情報取得部８０１で取得した二以上の座標情報および筆圧情報および時間情報に基づいて、当該条件を満たすか否かを判断する。特徴点を認識する詳細なアルゴリズムは、以下で説明する。特徴点であればステップＳ１４０６に行き、特徴点でなければステップＳ１４０２に戻る。
【００６２】
（ステップＳ１４０６）特徴点認識部１３０１は、特徴点の種類を識別する特徴点識別子を取得する。
（ステップＳ１４０７）手書きデータ記録部１３０２は、特徴点情報（ｘ，ｙ，ｚ，ｔ）を構成する。
【００６３】
（ステップＳ１４０８）手書きデータ記録部１３０２は、ステップＳ１４０６で取得した特徴点識別子と、ステップＳ１４０７で構成した記録情報（ｘ，ｙ，ｚ）を記録する。
【００６４】
（ステップＳ１４０９）筆圧情報（ｚ）が０である時間が一定時間以上であるか否かを判断する。一定時間以上でなければステップＳ１４０２に戻り、一定時間以上であれば処理を終了する。
以上、特徴点情報が（ｘ，ｙ，ｚ，ｔ）である場合について説明したが、特徴点情報が（ｘ，ｙ，ｚ）である場合は、時間情報の取得が不要である。また、特徴点情報が（ｘ，ｙ，ｔ）である場合は、筆圧情報の取得が不要である。
【００６５】
以下、本実施の形態における手書きデータ取得装置の具体的な動作について説明する。手書きデータ取得装置の具体例は、図４の装置または図７の装置である。かかる手書きデータ取得装置により特徴点識別子と特徴点情報（ｘ，ｙ，ｚ，ｔ）を取得し、記録する。以下、特徴点を認識する詳細な第一のアルゴリズムを示す。特徴点認識部１３０１は、以下の８種類の条件に合致する点を特徴点（第一点から第七点、および第十二点）として認識する。ここで、ｘ，ｙは平面上の座標情報を示す。ｚは筆圧情報である。ｔは時間情報である。
【００６６】
第一点は、筆圧が一定時間以上かからない状態（これを筆圧データｚ＝０とする）ののち筆圧がかかり始めた点である。第二点は、ｚがノンゼロの状態でｘまたはｙの変化の累積がある一定値を超えた点である。第三点は、ｚがノンゼロ状態でｘおよびｙの値の変化がある小さな値以下の状態が一定時間以上続いた点である。第四点は、ｘ／ｙの変化またはｙ／ｘの変化が小さな変化の範囲内の一定値からはみ出た点である。第五点は、ｚがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復したさいのゼロになった点である。第六点は、ｚがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復したさいのノンゼロに復した点である。第七点は、ｚがゼロになり一定時間以上ゼロが継続したときｚがゼロになった点である。第十二点はハネの開始の点である。
【００６７】
上記第一点は、ペンダウンしたストロークの開始点であり、ストロークデータの時間カウントの開始点である。第二点は、ｘ座標またはｙ座標の前の代表点から差分が一定値Ｄを超える点であり、直線的なストロークが書かれているとき、適当な距離間隔で標本化するために代表点にする。第三点は、同じ所にペンがしばらく留まることはそれなりの理由があるので代表点に選定する。留まる理由としてはその点でペンの動く方向が大きく変化するストロークの終端で”ハネ”ではなく、”トメ”で終わる、そこで考え事をしたり、躊躇したりする、などがある。いずれの場合も手書きを再現させるとき大切な情報である。特に文字や図形を描くときの角や頂点に相当することが多く、これによって図２２に示した従来技術の欠点を克服することができる。
【００６８】
第四点は、曲線を描いているときに主に発生し、これによって曲線に沿った代表点を選定する。この一定値ｋを小さくすればそれだけ忠実に曲線に沿った代表点を選定することができる。第五点および第六点は、速い速度でストロークを描く場合、または、ひらがなの”さ”や”り”など、ひらがなを書く場合によく発生する。たとえば”り”の左側のストロークと右側のストロークが切れているかどうかより、ほぼ継続してかかれていたことがわかることが”り”を認識する上で大切である。それ以外に漢字などで”画（カク）”と”画”の接続のさいペンが紙から外される。このために第五点および第六点が効果を発揮する。一般にひらがなの文字認識が難しいとされているのはこのようなデータが不足していたことに大きな原因がある。第五点および第六点はそれを改めることに効果を発揮する。第七点は、ストロークの終端を代表点とするためにあり、これによって第一点に始まり、第七点で終わる一連のデータが１つの文字ストロークを表すことになる。第十二点は筆圧が次第に小さくなって、遂にゼロになる場合の筆圧が小さくなり始める点である。
【００６９】
次に、第一点、第五点、第六点および第七点を認識するアルゴリズムの例を図１５のフローチャートを用いて説明する。
（ステップＳ１５０１）各種カウンタや一時記憶バッファをリセットする。
【００７０】
（ステップＳ１５０２）ペンが下され、筆圧情報ｚがノンゼロになるのを待つ。
（ステップＳ１５０３）筆圧情報ｚがノンゼロになると、後の処理のためにゼロカウンタをフルカウントにセットする。なお、ゼロカウンタとは、筆圧情報が０である状態の時間を測定するカウンタである。
【００７１】
（ステップＳ１５０４）この時点（ちょうどｚがゼロからノンゼロになった時点）のｘ（ｔｉ），ｙ（ｔｉ），ｚ（ｔｉ）をバッファＮに一時記憶しておく。この点が第一点である。
【００７２】
（ステップＳ１５０５）ゼロカウンタがノンゼロかどうかを判断する。ノンゼロであればステップＳ１５０７に行く。ノンゼロでなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。つまり、ゼロカウンタがゼロのときは継続的にｚ≠０であり、何かがかかれていることを意味するのでそれ以上は何もしない。ステップＳ１５０５において、第六点の選定のための処理が合流するが、これは後に述べる。
【００７３】
（ステップＳ１５０６）ゼロカウンタが一定値Ｈ以下であるか否かを判断する。一定値Ｈ以下であればステップＳ１５０７に行き、一定値Ｈより大きければステップＳ１５１１に行く。ステップＳ１５０６でゼロカウンタが一定時間Ｈ以下のときは第五点および第六点の選定プロセスに入る。つまり、このときは一度ｚ＝０になったが、速やかにｚ≠０に、すなわちペンが下されたケースである。
【００７４】
（ステップＳ１５０７）この前にｚ＝０になった時点のｘ，ｙ，ｚ，ｔを出力する。この点が第五点である。
【００７５】
（ステップＳ１５０８）ｚが再びノンゼロにあった時点のｘ，ｙ，ｚ，ｔを出力する。この点が第六点である。
【００７６】
（ステップＳ１５０９）ゼロカウンタをリセットする。
（ステップＳ１５１０）ノンゼロカウンタをリセットする。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００７７】
（ステップＳ１５１１）新しく書き始められたと判断し、時間カウントｔをゼロにする。
【００７８】
（ステップＳ１５１２）ゼロからノンゼロになった時点でバッファＮに一時記憶されたｘ（ｔｉ），ｙ（ｔｉ），ｚ（ｔｉ），ｔｉを第一点として出力する。
【００７９】
（ステップＳ１５１３）ゼロカウンタをリセットする。
（ステップＳ１５１４）ノンゼロカウンタをリセットする。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００８０】
（ステップＳ１５１５）筆圧情報（ｚ）が０であるか否かを判断する。筆圧情報（ｚ）が０であればステップＳ１５１６に行き、筆圧情報（ｚ）が０でなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００８１】
（ステップＳ１５１７）ゼロカウンタを１インクリメントする。
（ステップＳ１５１８）ゼロカウンタが１であるか否かを判断する。ゼロカウンタが１でればステップＳ１５１８に行き、ゼロカウンタが１でなければステップＳ１５１９に飛ぶ。
【００８２】
（ステップＳ１５１８）この時点の特徴点情報（ｘ，ｙ，ｚ，ｔ）を一時記憶（Ｍ）する。このＭは、第五点または第七点の候補である。
【００８３】
（ステップＳ１５１９）ゼロカウンタが一定値を越えているか否かを判断する。一定値を越えていればステップＳ１５２０に行き、一定値を越えていなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００８４】
（ステップＳ１５２０）第七点として、ステップＳ１５２０で一時記憶（Ｍ）した（ｘ，ｙ，ｚ，ｔ）を出力する。
【００８５】
（ステップＳ１５２１）ゼロカウンタをリセットする。
（ステップＳ１５２２）ノンゼロカウンタをリセットする。処理を終了する。
（ステップＳ１５２３）使用され始めてからもｚが０でないかどうかを調べ、ゼロのときは次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００８６】
（ステップＳ１５２４）ステップＳ１５２３でｚが０でないときに、ノンゼロカウンタを＋１する。
（ステップＳ１５２５）ノンゼロカウンタが１か否かを判断する。ノンゼロカウンタが１であればステップＳ１５２６に行き、ノンゼロカウンタが１でなければステップＳ１５０５に戻る。
【００８７】
（ステップＳ１５２６）この時点のｘ，ｙ，ｚ，ｔを、第六点の候補点として、バッファＮに一時記憶する。ステップＳ１５０５に戻る。
【００８８】
なお、図１５のフローチャートで取得した記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子（第一点や第五点や第六点や第七点を識別する情報）を記録する。
【００８９】
また、本明細書におけるフローチャートにおいて、認識処理ルーチンＡ（Ｓ）とは、Ｓ回目の認識を行うルーチンで、１種類以上の特徴点を抽出するために、１以上の認識処理ルーチンが並行して、またシーケンシャルに実行される。また、Ａ（Ｓ）の認識処理ルーチンの次に、Ａ（Ｓ＋１）の認識処理ルーチンに行く。
【００９０】
次に、第二点を認識するアルゴリズムの例を図１６のフローチャートを用いて説明する。図１５のフローチャートにおいて筆圧情報ｚ＝０ではないことを確認すると図１６のフローチャートは開始される。なお、図１６のフローチャートにおいて前に選択した代表点を（ｘ１，ｙ１，ｚ１，ｔ１）とする。なお、図１６のフローチャートが示す動作は、Ｓ番目の認識処理ルーチンの一つにより実行される。
（ステップＳ１６０１）筆圧情報ｚ＝０でないか否かを判断する。ｚが０でなければステップＳ１６０２に行き、ｚが０であれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００９１】
（ステップＳ１６０２）前に選択した代表点（ｘ１，ｙ１，ｚ１，ｔ１）と現在の座標（ｘ，ｙ）との差｜ｘ１−ｘ｜、｜ｙ１−ｙ｜を計算する。
【００９２】
（ステップＳ１６０３）｜ｘ１−ｘ｜が一定値Ｄ以上であるか否かを判断する。一定値Ｄ以上であればステップＳ１６０５に行く。一定値Ｄ未満であれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。この時点では、（ｘ，ｙ，ｚ，ｔ）は第二点でないので、次の特徴点に移る。
【００９３】
（ステップＳ１６０４）｜ｙ１−ｙ｜が一定値Ｄ以上であるか否かを判断する。一定値Ｄ以上であればステップＳ１６０５に行く。一定値Ｄ未満であればステップＳ１６０２に戻る。
【００９４】
（ステップＳ１６０５）この特徴点情報（ｘ，ｙ，ｚ，ｔ）を出力する。この特徴点情報は、第二点を示す情報である。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００９５】
次に、第三点を認識するアルゴリズムの例を図１７のフローチャートを用いて説明する。図１７のフローチャートにおける動作は、認識処理ルーチン（Ａ（Ｓ））である。
（ステップＳ１７０１）筆圧情報（ｚ）が０でないか否かを判断する。ｚが０でなければステップＳ１７０２に行き、ｚが０であれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００９６】
（ステップＳ１７０２）時点ｔに対して１時点前の時点ｔ−１の位置情報の差、すなわち｜ｘ（ｔ）−ｘ（ｔ−１）｜、｜ｙ（ｔ）−ｙ（ｔ−１）｜を計算する。
【００９７】
（ステップＳ１７０３）｜ｘ（ｔ）−ｘ（ｔ−１）｜が十分小さいか否かを判断する。十分小さければステップＳ１７０４に行き、十分小さくなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【００９８】
（ステップＳ１７０４）｜ｙ（ｔ）−ｙ（ｔ−１）｜が十分小さいか否かを判断する。十分小さければステップＳ１７０５に行き、十分小さくなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。なお、｜ｘ（ｔ）−ｘ（ｔ−１）｜および｜ｙ（ｔ）−ｙ（ｔ−１）｜が小さな一定値より小さいときにはペンが滞留していることを意味する。
【００９９】
（ステップＳ１７０５）この状態を滞留クロックｕで１カウントアップする。滞留クロックとは、手書きの点が滞留している時間を測定するためのカウンタである。
【０１００】
（ステップＳ１７０６）カウントした滞留クロックｕが一定時間（Ｕ）を超えているか否かを判断する。一定時間を超えていればステップＳ１７０６に行き、一定時間を超えていなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
（ステップＳ１７０７）滞留クロックｕをリセットする。
【０１０１】
（ステップＳ１７０８）その時点の（ｘ，ｙ，ｚ，ｔ）を滞留点（第三点）として出力する。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【０１０２】
次に、第四点を認識するアルゴリズムの例を図１８のフローチャートを用いて説明する。なお、前の代表点を（ｘ３，ｙ３，ｚ３，ｔ３）とする。図１８のフローチャートにおける動作は、認識処理ルーチン（Ａ（Ｓ））である。
【０１０３】
（ステップＳ１８０１）筆圧情報（ｚ）が０でないか否かを判断する。ｚが０でなければステップＳ１８０２に行き、ｚが０であれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
（ステップＳ１８０２）ｘ（ｔｎ）−ｘ３が０に近いか否かを判断する。０に近ければステップＳ１８０３に行く。０に近くなければステップＳ１８０４に行く。これは、分母が０に近いものを回避する処置である。
【０１０４】
（ステップＳ１８０３）ｙ（ｔｎ）−ｙ３が０に近いか否かを判断する。０に近ければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。０に近くなければステップＳ１８０５に行く。
【０１０５】
（ステップＳ１８０４）時々刻々の勾配（ｙ（ｔｉ）−ｙ３）／（ｘ（ｔｉ）−ｘ３）の時間平均値を計算する。
【０１０６】
（ステップＳ１８０５）時々刻々の勾配（ｘ（ｔｉ）−ｘ３）／（ｙ（ｔｉ）−ｙ３）の時間平均値を計算する。
【０１０７】
（ステップＳ１８０６）その平均値と現時点ｔｎの勾配（ｙ（ｔｉ）−ｙ３）／（ｘ（ｔｉ）−ｘ３）の差が一定値Ｋを超えているのかどうかを判断する。超えていればステップＳ１８０８に行く。超えていなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１０８】
（ステップＳ１８０７）その平均値と現時点ｔｎの勾配（ｘ（ｔｉ）−ｘ３）／（ｙ（ｔｉ）−ｙ３）の差が一定値Ｋを超えているのかどうかを判断する。超えていればステップＳ１８０８に行く。超えていなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１０９】
（ステップＳ１８０８）（ｘ（ｔｎ），ｙ（ｔｎ），ｚ（ｔｎ），ｔ（ｔｎ））を第四点として出力する。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【０１１０】
次に、第十二点を認識するアルゴリズムの例を図１９のフローチャートを用いて説明する。第十二点はハネの開始の点である。
（ステップＳ１９０１）筆圧情報ｚ（ｔｉ）＝０であるか否かを判断する。ｚ（ｔｉ）＝０であればステップＳ１９１０に行き、ｚ（ｔｉ）＝０でなければステップＳ１９０２に行く。
【０１１１】
（ステップＳ１９０２）ｚ（ｔｉ）とｚ（ｔｉ―１）の差が一定値を超えているか否かを判断する。一定値を以下であればステップＳ１９０３に行き、一定値を超えていれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１１２】
（ステップＳ１９０３）筆圧情報の変化から、筆圧が減少に転じているか否かを判断する。減少していればステップＳ１９０４に行き、減少していなければステップＳ１９０７に飛ぶ。
【０１１３】
（ステップＳ１９０４）カウンタｎの値を＋１する。なお、ｎは、ハネの続いている時間を測定するカウンタである。
【０１１４】
（ステップＳ１９０５）ｎ＝１であるか否かを判断する。ｎ＝１であればステップＳ１９０６に行き、ｎ＝１でなければ次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１１５】
（ステップＳ１９０６）その時点の（ｘ，ｙ，ｚ，ｔ）を、第十二点の候補として一時記憶する。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１１６】
（ステップＳ１９０７）ｎが一定値ｕを超えているか否かを判断する。一定値を超えていればステップＳ１９１４に行き、一定値を超えていなければステップＳ１９０８に行く。
【０１１７】
（ステップＳ１９０８）ｍ、ｎをリセットする。なお、ｍは筆圧情報が前の段階より大きくなった（強い筆圧になった）時間を測定するカウンタである。
【０１１８】
（ステップＳ１９０９）一時記憶をリセットする。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１１９】
（ステップＳ１９１０）ｚ（ｔｉ―１）が０より大きいか否かを確認する。ｚ（ｔｉ―１）が０より大きければステップＳ１９１１に行き、０であれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１２０】
（ステップＳ１９１１）ｎが一定値ｖを超えているか否かを判断する。一定値を超えていればステップＳ１９１２に行き、ｎが一定値を超えていなければハネではないと判断して、ステップＳ１９０８に行く。
【０１２１】
（ステップＳ１９１２）一時記憶している特徴点（ｘ，ｙ，ｚ，ｔ）を第十二点として出力する。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【０１２２】
（ステップＳ１９１３）ｍ、ｎをリセットする。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
（ステップＳ１９１４）ｍカウンタを１インクリメントする。
【０１２３】
（ステップＳ１９１５）ｍが一定値以内か否かを判断する。ｍが一定値以内であれば、未だハネが継続していると判断して、次の認識処理ルーチン（Ａ（Ｓ＋１））に行き、ｍが一定値より大きければ、ハネでなかったと判断してステップＳ１９０８に戻る。
【０１２４】
次に、特徴点を認識する詳細な第二のアルゴリズムを示す。第二のアルゴリズムは、第一のアルゴリズムで認識した第一点から第七点まで、および第十二点の特徴点の認識に加えて、以下の第八点または第九点を認識するアルゴリズムである。第一点から第七点、および第十二点までの特徴点を認識するアルゴリズムは説明済みであるので、第八点または第九点を認識するアルゴリズムについて、以下に説明する。第八点はペン速度が最大になる点であり、第九点はペン速度が最少になる点である。ペン速度の最大点が発生するのは直線描写のほぼ中央や曲率が小さい長い曲線部の中央付近である。逆にペン速度の極小点は細部の描写、角や頂点の描写で発生する。第八点を認識するアルゴリズムのｘ軸の例を図２０のフローチャートを用いて説明する。なお、図２０のフローチャートは、ペン速度の極大点を選定するアルゴリズムである。図２０において、前の代表点を（ｘ０，ｙ０，ｚ０，ｔ０）、ｘ０＝ｘ（ｔ０）、ｙ０＝ｙ（ｔ０）とし、現時点をｔｉとする。
【０１２５】
（ステップＳ２００１）筆圧情報（ｚ）が０でないか否かを判断する。ｚが０でなければステップＳ２００２に行き、ｚが０であれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１２６】
（ステップＳ２００２）前の代表点からのｘの変化率（ｘ（ｔｉ）−ｘ０）／（ｔｉ−ｔ０）を計算する。
【０１２７】
（ステップＳ２００３）１つ前の時点ｔｉ−１から現在までのｘの変化率（ｘ（ｔｉ）−ｘ（ｔｉ−１））／（ｔｉ−ｔｉ−１）とステップＳ２００１で計算した前の代表点から変化率と比較する。１ステップ前の時点からの変化率が同じか大きい場合はペンの加速が続いているので、ステップＳ２００４に行く。１ステップ前の時点からの変化率が小さいときは加速が止まったので、ステップＳ２００８に飛ぶ。
【０１２８】
（ステップＳ２００４）１ステップ前の時点からの変化率が一定値以上か否かを判断する。一定値以上であればステップＳ２００５に行き、一定値未満であればステップＳ２００６に飛ぶ。
【０１２９】
（ステップＳ２００５）ｘ加速カウンタを＋１する。ｘ加速カウンタとは、ｘの方向に加速されている状態が続いている時間を測定するカウンタである。
【０１３０】
（ステップＳ２００６）ｘ加速カウンタをリセットする。これは、１ステップ前の時点からの変化率が大きくないときは第八点とは無関係だからである。
【０１３１】
（ステップＳ２００７）極大カウンタをリセットして、次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１３２】
（ステップＳ２００８）ｘ加速カウンタが一定値を越えているか否かを判断する。一定値を越えていれば、ｘの加速が止まったときに相当し、その時点でステップＳ２００９に行き、一定値を越えていなければステップＳ２０１４に飛ぶ。
【０１３３】
（ステップＳ２００９）極大カウンタを＋１としてペン速度が極大値に達したので、ステップＳ２０１０に行く。
【０１３４】
（ステップＳ２０１０）極大カウンタが１になったかを判断する。極大カウンタが１のときは極大点なのでステップＳ１０１１に行き、極大カウンタが１でなければステップＳ１０１２に行く。
【０１３５】
（ステップＳ２０１１）その時点の（ｘ，ｙ，ｚ，ｔ）を第八点の候補として、一時記憶する。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
（ステップＳ２０１２）ｘ加速カウンタと極大カウンタをリセットする。
【０１３６】
（ステップＳ２０１３）一時記憶した（ｘ，ｙ，ｚ，ｔ）を第八点として出力する。なお、情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【０１３７】
（ステップＳ２０１４）ｘ加速カウンタが一定値を越えていないので、第八点ではないと判断し、ｘ加速カウンタをリセットし、次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１３８】
図２０のフローチャートにおいて、ｘ方向のペン速度の極大点を検出したが、図２０のｘをｙに置き換えることによってｙ方向のペン速度の極大点が検出でき、そのときも第八点として（ｘ，ｙ，ｚ，ｔ）を出力する。さらに極小点については上記のステップＳ２００３で不等号を逆向きにし、ステップＳ２００３を一定値以下と変え、ステップＳ２００７、Ｓ２０１０などで極大カウンタを極小カウンタとし，さらに加速カウンタを減速カウンタにすることによって検出できる。極小点は第九点であり、選択される代表点の性格として極大点と極小点は区別しておくことが好適である。
【０１３９】
次に、特徴点を認識する詳細な第三のアルゴリズムを示す。第二のアルゴリズムは、第一のアルゴリズムで認識した第一点から第七点までの特徴点の認識に加えて、以下の第十点および第十一点を認識するアルゴリズムである。第一点から第七点までの特徴点を認識するアルゴリズムは説明済みであるので、第十点および第十一点を認識するアルゴリズムについて、以下に説明する。
【０１４０】
第十点および第十一点は、筆圧の極大点と極小点である。第十点の極大点は角や頂点を代表点として選択することに効果があり、上記第三点を見つけるときの補助情報になる。第十一点の極小点はひらがなの曲線やストロークのつなぎできれたりきれなかったりする微妙なタッチを極小点で代表させる。切れたときは上記の第五点または第六点に相当し、切れないときは極小点になるので、これは第五点または第六点を補助していることになる。
【０１４１】
次に、第十点および第十一点を認識するアルゴリズムの例を図２１のフローチャートを用いて説明する。
（ステップＳ２１０１）筆圧情報（ｚ）が０でないか否かを判断する。ｚが０でなければステップＳ２１０２に行き、ｚが０であれば次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１４２】
（ステップＳ２１０２）（ｚ（ｔｉ）−ｚ０）／（ｔｉ−ｔ０））を計算する。
（ステップＳ２１０３）１ステップ前の時点からの筆圧の変化率を見て、変化率が一定値以下であればステップＳ２１０４に行き、１ステップ前の時点との変化率のほうが大きければステップＳ２１０８に飛ぶ。
【０１４３】
（ステップＳ２１０４）｜（ｚ（ｔｉ）−ｚ（ｔｉ―１））／（ｔｉ―ｔｉ―１）｜は一定値以下か否かを判断する。一定値以下であればステップＳ２１０５に行き、一定値より大きければステップＳ２１０６に飛ぶ。
（ステップＳ２１０５）ｚ減速カウンタを＋１する。ｚ減速カウンタとは、筆圧が減少している時間を測定するカウンタである。
【０１４４】
（ステップＳ２１０６）ｚ減速カウンタをリセットする。一定値より大きいときは筆圧最少点とは無関係と見なし得るからである。
（ステップＳ２１０７）極小カウンタをリセットする。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
（ステップＳ２１０８）ｚ減速カウンタが一定値を越えているか否かを判断する。一定値を越えていればステップＳ２１０９に行き、一定値を越えていなければステップＳ２１１４に飛ぶ。
（ステップＳ２１０９）極小カウンタを＋１する。
（ステップＳ２１１０）極小カウンタの値が１であるか否かを判断する。１であればステップＳ２１１１に行き、２でなければステップＳ２１１２に飛ぶ。
【０１４５】
（ステップＳ２１１１）（ｘ，ｙ，ｚ，ｔ）を一時記憶する。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１４６】
（ステップＳ２１１２）極小カウンタ、ｚ減速カウンタをリセットする。ｚ減速カウンタが一定値を超えていることを確認すると極小点を通過したと見なすからである。
（ステップＳ２１１３）ステップＳ２１１１で一時記憶した（ｘ，ｙ，ｚ，ｔ）を第十点として出力する。なお、情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【０１４７】
（ステップＳ２１１４）ｚ減速カウンタをリセットする。次の認識処理ルーチン（Ａ（Ｓ＋１））に行く。
【０１４８】
図２１のフローチャートは筆圧の極小点の検出を行うフローチャートであるが、筆圧の極大点の検出も同様にして可能である。
なお、以上のアルゴリズムで抽出した特徴点の特徴点識別子と特徴点情報（ｘ，ｙ，ｚ，ｔ）を有する記録情報は、例えば、（第一点，ｘ１，ｙ１，ｚ１，ｔ１）、（第五点，ｘ２，ｙ２，ｚ２，ｔ２）、（第二点，ｘ３，ｙ３，ｚ３，ｔ３）、（第十点，ｘ４，ｙ４，ｚ４，ｔ４）、・・・・・（第七点，ｘ５，ｙ５，ｚ５，ｔ）のように記録される。なお、記録情報を処理するソフトウェアまたはハードウェアは、「第一点」という情報により、どのような特徴点の情報であるかを認識できる。
【０１４９】
イメージペンのボールペンの根元に圧力センサを搭載し、ボールペンにかかる圧力データを取得することにしておき、その圧力がゼロの状態から、圧力を感じ始めた時点をオリジナルにクロックを刻む仕掛けをイメージペンに持たせれば、イメージペンはペンの紙の上の位置（ｘ，ｙ）、圧力ｚ、時間ｔの組合せ（ｘ，ｙ，ｚ，ｔ）なるデータをペンの動きに完全に追随するように取得することができる。
【０１５０】
次に、特徴点を認識する詳細な第四のアルゴリズムを示す。第四のアルゴリズムは、第一点から第七点までの特徴点、第八点、第九点の特徴点、および第十点、第十一点の特徴点を認識するアルゴリズムである。各特徴点の認識を行うアルゴリズムは上記で説明済みである。
【０１５１】
以上、本実施の形態によれば、手書きデータを取得する場合に、特徴点を抽出し、その特徴点を識別する特徴点情報と、二次元の座標情報と筆圧情報と時間情報を取得することにより、実際のデータ記述に合致した文字や図形が記録できる。つまり、本実施の形態によれば、記述した代表点によって手書きされた結果だけでなく、手書きするペンの動きの主要情報を記述できる。このように記述された手書き情報から、例えば、その手書き情報が署名により記載された情報であった場合に、正当な署名かどうかを認識することができる。署名の場合、部分的なペンの動きの速度や速度変化、さらには筆圧の変化が大きな意味をもつのでそれらをも記述する本実施の形態における手書きデータの記述法が大きな効果を発揮する。
【０１５２】
また、記述された手書き情報からその中の文字を認識する場合にも大きな効果を発揮する。一般にひらがなの認識が難しいとされているが、本実施の形態における手書きデータの記述法によれば、手書きのペンの動く速度や動き速度の極大、極小などを記述し、さらに筆圧の変化を記述しているので、ひらがなの認識に大きな効果を発揮する。また、グラフィックデータについてはペン速度の極小点や筆圧の極大点がコーナーで発生することが多いので図形の頂点を検出するのに大きな効果を発揮する。従来の手書き情報の記述が、記述結果である線の形のみに注目してなされていたのに対して、本実施の形態によれば、手書きの過程でのペンの動きに関する情報を記述しているので、署名認識、文字認識に大きな効果を発揮するだけでなく、手書きされた図形のコーナーなどをきちんと押さえた再現にも効果を発揮する。
【０１５３】
なお、本実施の形態において、記録した情報を用いて手書きされたデータを表示するだけではなく、通信回線を用いて遠隔地に伝送することも可能である。図５におけるペンを利用すれば、手書きデータの遠隔地への伝送も可能である。
【０１５４】
また、本実施の形態において、例えば、手書きデータ記録装置により記録された２以上の記録情報を読み出して図１１のような文字を出力する装置である手書きデータ出力装置は以下の構成になる。つまり、手書きデータ出力装置は、座標情報を含む特徴点情報と、特徴点識別情報を有する２以上の記録情報を格納しており、当該２以上の記録情報を読み出して出力する手書きデータ出力装置である。また、手書きデータ出力装置は、座標情報と、筆圧情報または／および時間情報を含む特徴点情報と、特徴点識別情報を有する２以上の記録情報を格納しており、当該２以上の記録情報を読み出して出力する手書きデータ出力装置である。
【０１５５】
さらに、本実施の形態において説明した手書きデータ取得装置の動作について、ソフトウェアで実現し、当該ソフトウェアを例えば、サーバ上に置いて、ソフトウェアダウンロードにより当該ソフトウェアを配布しても良い。さらにソフトウェアをＣＤ−ＲＯＭ等の記録媒体に記録して流布しても良い。なお、本実施の形態において説明した手書きデータ取得装置の動作をソフトウェアで実現した場合のプログラムは、以下のようになる。つまり、手書きデータを取得して記録するプログラムであって、コンピュータに、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップで取得した二以上の座標情報に基づいて、二種類以上の特徴点を認識する特徴点認識ステップと、特徴点認識ステップで認識した二種類以上の特徴点を識別する特徴点識別情報と、前記特徴点における座標情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム、である。また、上記のプログラムにおける特徴点認識ステップは、座標情報と筆圧情報と時間情報のうちの一以上の情報に基づいて特徴点を認識しても良い。
【０１５６】
さらに、手書きデータを出力するためのプログラムは、以下のようになる。つまり、コンピュータに、データの出力指示を受け付けるデータ出力指示受付ステップと、データの出力指示を受け付けた場合に、格納されている座標情報と筆圧情報または／および時間情報を含む特徴点情報と特徴点識別情報を有する２以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム、である。
【発明の効果】
以上のように、本発明によれば、手書きデータを取得する場合に、手書きの過程でのペンの動きに関する情報を取得できる。
【図面の簡単な説明】
【図１】実施の形態１における手書きデータ取得装置のブロック図
【図２】実施の形態１における座標情報取得部の一実現例を説明する図
【図３】実施の形態１における手書きデータ取得装置の動作を説明するフローチャート
【図４】実施の形態１における手書きデータ取得装置の具体例を示す図
【図５】実施の形態１における記録情報の例を示す図
【図６】実施の形態１における記録情報の出力例を示す図
【図７】実施の形態１における手書きデータ取得装置の具体例を示す図
【図８】実施の形態２における手書きデータ取得装置のブロック図
【図９】実施の形態２における手書きデータ取得装置の動作を説明するフローチャート
【図１０】実施の形態２における取得された筆圧情報、座標情報、時間情報の例示す図
【図１１】実施の形態２における入力されたデータの例を示す図
【図１２】実施の形態２における記録情報の例を示す図
【図１３】実施の形態３における手書きデータ取得装置のブロック図
【図１４】実施の形態３における手書きデータ取得装置の動作を説明するフローチャート
【図１５】実施の形態３における特徴点を認識する動作を説明するフローチャート
【図１６】実施の形態３における特徴点を認識する動作を説明するフローチャート
【図１７】実施の形態３における特徴点を認識する動作を説明するフローチャート
【図１８】実施の形態３における特徴点を認識する動作を説明するフローチャート
【図１９】実施の形態３における特徴点を認識する動作を説明するフローチャート
【図２０】実施の形態３における特徴点を認識する動作を説明するフローチャート
【図２１】実施の形態３における特徴点を認識する動作を説明するフローチャート
【図２２】従来技術の欠点を示す図
【符号の説明】
１０１　座標情報取得部
１０２　筆圧情報取得部
１０３、８０２、１３０２　手書きデータ記録部
１０４　入力受付部
１０５　手書きデータ出力部
８０１　時間情報取得部
１３０１　特徴点認識部
【図１】
2004062251.tif 000003
【図２】
2004062251.tif 000004
【図３】
2004062251.tif 000005
【図４】
2004062251.tif 000006
【図５】
2004062251.tif 000007
【図６】
2004062251.tif 000008
【図７】
2004062251.tif 000009
【図８】
2004062251.tif 000010
【図９】
2004062251.tif 000011
【図１０】
2004062251.tif 000012
【図１１】
2004062251.tif 000013
【図１２】
2004062251.tif 000014
【図１３】
2004062251.tif 000015
【図１４】
2004062251.tif 000016
【図１５】
2004062251.tif 000017
【図１６】
2004062251.tif 000018
【図１７】
2004062251.tif 000019
【図１８】
2004062251.tif 000020
【図１９】
2004062251.tif 000021
【図２０】
2004062251.tif 000022
【図２１】
2004062251.tif 000023
【図２２】
2004062251.tif 000024