JP2004062251A - 手書きデータ記録装置および手書きデータ出力装置 - Google Patents

手書きデータ記録装置および手書きデータ出力装置 Download PDF

Info

Publication number
JP2004062251A
JP2004062251A JP2002215907A JP2002215907A JP2004062251A JP 2004062251 A JP2004062251 A JP 2004062251A JP 2002215907 A JP2002215907 A JP 2002215907A JP 2002215907 A JP2002215907 A JP 2002215907A JP 2004062251 A JP2004062251 A JP 2004062251A
Authority
JP
Japan
Prior art keywords
information
point
coordinate
handwritten data
feature point
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.)
Pending
Application number
JP2002215907A
Other languages
English (en)
Inventor
Naohiko Kamae
釜江 尚彦
Rumiko Suzuki
鈴木 ルミ子
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.)
NIPPON RAD Inc
SAN DESIGN ATORI KK
Laboratories of Image Information Science and Tech
Original Assignee
NIPPON RAD Inc
SAN DESIGN ATORI KK
Laboratories of Image Information Science and Tech
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 NIPPON RAD Inc, SAN DESIGN ATORI KK, Laboratories of Image Information Science and Tech filed Critical NIPPON RAD Inc
Priority to JP2002215907A priority Critical patent/JP2004062251A/ja
Publication of JP2004062251A publication Critical patent/JP2004062251A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】従来技術において、手書き文字の正確な再現が困難であり、手書きデータの文字認識や図形認識や個人筆跡認証が困難であった。
【解決手段】座標情報と筆圧情報と時間情報を適切に組み合わせた特徴点情報を2以上有する情報を2以上取得し、記録する手書きデータを取得して記録するプログラムにより、手書きする場合のペンの動きに関する情報も記録でき、従って、手書き文字の正確な再現ができ、よって手書きデータの文字認識や図形認識や個人筆跡認証が容易になる。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、手書きの文字や手書きの図形等のデータを取得し記録するプログラムや当該データを出力する手書きデータ出力装置等に関するものである。
【0002】
【従来の技術】
従来技術として、ディジタイザと呼はれている装置がある。ディジタイザは、ペンの動きのx,y座標列を取得するための装置である。ディジタイザの目的は以下である。第一は手書きのストロークデータを取得することである。第二は、そのデータから文字を認識し、文字コードに変換することである。第三は、x,y座標とコマンドの組合せから図形を入力することである。したがって第一の目的を達成するために、単に手書きのストロークのみを表現すればよい。第二の目的を達成するために、手書きのストロークなどから認識した結果を文字コードで表現すればよい。第三の目的を達成するために、ポイントだけを(x,y)座標で表現すればよい。
【0003】
このように既存の技術はディジタイザからの出力をストロークデータとして変換する、認識して文字コードにする、ポイントデータとそれから読み取るコマンドの組合せでグラフィックデータとして表現する、という三種に分類することができる。
【0004】
ストロークデータを作る方法として以下のものが知られている。第一は、ディジタイザからの出力を一定時間間隔でサンプリングし、そのサンプルした(x,y)座標または前のサンプル点(代表点)からのx,yの変移を手書きデータとする。この方法では、同じ所に留まっているときは、同じ(x,y)が複数個、代表点として選択されることになる。第二は、ディジタイザからの出力の隣接データ間の直線性を調べ、予め設定した範囲の直線からずれた点をサンプルデータとしてその列を手書きデータとする。第三は、第一、第二の方法を組み合わせて手書きデータを作る、という方法である。このように従来は手書きされた図形を上記3方法でサンプリングし、サンプル点を手書きデータとし、復元はサンプリングされた点を直線でつなぐことによって行う方法をとっていた。
【0005】
通常ディジタイザの出力はペンダウンとともに始まり、ディジタイザの内部クロックで決まるタイミングでそのときの(x,y)が出力される。ペンが同じ場所に留まっていると同じ(x,y)が数多く出力される。これをほぼ直線状をペンが動く場合は粗く、直線上から逸脱し始めると細かく、代表点を選択してその(x,y)の座標系列で手書き情報を記述するのが第二の方法である。同じ所に留っているときはほぼ直線上に乗っているときと同様に、ほぼ留り始めと次に動いた点が代表点となる。
【0006】
【発明が解決しようとする課題】
しかしながら、上記の従来技術における手書きデータは、平面上の座標情報(x,y)をサンプリングして記録しているので、手書きする場合のペンの細かい動きに関する情報が欠落している。従って、手書き文字の正確な認識が困難であり、また、個人認証に手書き入力を用いる場合にも限界があった。具体的には、記述された手書きデータからはどこでペンが早く動き、どこで留ったかはわからない。さらに、手書きストロークの変曲点がわからない。図22に従来の記述方法の欠点を示す。図22(a)に示すように、第二の方法では直線から逸脱したとき代表点を選択するので直角に曲がってしばらくたってから代表点が選ばれる。従って、代表点は直角に曲がった点を少し外れる。また、ペンでカーブを描く場合には、例えば、第一の方法でも、第二の方法でも図22(b)のようにサンプリグされる。この図22(b)のデータを復元する場合は、サンプル点が直線で結ばれ、図22(c)のようになる。
【0007】
以上のように、従来技術において、手書き文字の正確な再現が困難であり、よって、手書きデータの文字認識や図形認識や個人認証が困難であった。
【0008】
【課題を解決するための手段】
以上の課題を解決するために、本発明は、座標情報と筆圧情報と時間情報を適切に組み合わせた特徴点情報を2以上有する情報を2以上取得し、記録する手書きデータを取得して記録するプログラムにより、手書きする場合のペンの動きに関する情報も記録できる。従って、手書き文字の正確な再現ができ、よって手書きデータの文字認識や図形認識や個人筆跡認証が容易になる。
【0009】
また、特徴点として一定の点を選択して手書きデータを記録することにより、データ量は減り、かつ、さらに手書き文字の正確な再現ができ、よって手書きデータの文字認識や図形認識や個人筆跡認証がさらに容易になる。
【0010】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面を用いて詳細に説明する。なお、本実施の形態において、同一の符号を用いた構成要素やフローチャートのステップなどは、同じ機能を果たすので、一度説明したものについて説明を省略する場合がある。
【0011】
(実施の形態1)
図1は、本実施の形態に係る手書きデータ取得装置のブロック図である。手書きデータ取得装置は、座標情報取得部101、筆圧情報取得部102、手書きデータ記録部103、入力受付部104、手書きデータ出力部105を有する。
【0012】
座標情報取得部101は、平面上の座標位置を示す情報である座標情報(x,y)を定期的に取得する。座標情報取得部101は、例えば、以下の技術により実現され得る。本技術は、アノト日本株式会社の紙とペンの組合せ技術である。本技術は、インターネットのホームページ(http://www.anoto.co.jp/)に掲載されている。以下に、本技術について説明する。
【0013】
わかりやすくするため”0””1”の数字を並べこれを相隣る2個ずつ取り上げてきたとき同じ数字列が登場しない並べ方は、たとえば「00110」である。こうすると相隣る2個の数字列は”00”、01”、”11”、”10”となるので同じものはない。これを相隣る3個の数字で同じものがないようにするには、例えば「0001110100」と並べればよい。一般に0と1のみのとき相隣るk個ずつの数字列が同じものが登場しないようにする並べ方の長さは2+k−1になる。これを2次元に配列してすべての垂直,水平に相隣るk×kのマトリクスが異なるようにすることも同様にしてできる。このようなマトリクスは少なくとも2次の正方マトリクスは存在する。
【0014】
図2(a)の例は0と1ではなく4通りあるパターンを基本パターンにする。これは4進数の数字0,1,2,3と考えれば全く同じようにして並べることができる。これを図2(b)のように1次元に並べると、例えば、「1213303…」の配列となる。これを図2(c)に示すように2次元に配列する。この例は「1213303−−−−」「100020−−−−」「20121−−−」「2102−−−」の行が縦に並ぶ。相隣る2つの組み合わせがすべて異なる1次元配列の例が「00112233102132030」である。また、相隣るk数字の組み合わせがすべて異なる1次元配列は「4+k−1」の長さにある。2進数の場合と同様、2次元配列にもできる。図2(c)はその2次元配列の例であり、こうして4次の正方マトリクスが得られる。
【0015】
このようなパターンをぎっしり薄く印刷した紙を作り、その上をボールペンの先端部にCCDなどのイメージンセンサを装置したものをイメージペンと呼ぶことにすれば、それにイメージ処理機能を内蔵させればボールペンの動きに従って、紙の上のその場所に印刷されたパターンの配列の相当部分を読取ることができる。紙の上のパターンの配列をイメージペンの光のイメージセンサの視野の範囲に先ほどの2×2のマトリクスが入るように設計しておけば、いまペンが書いている場所のマトリクスのパターンが取得できる。紙に印刷されたパターンの相隣る2×2のマトリクスに同じものが無いとすれば、ペン先のイメージセンサが取得した2×2のマトリクスにより紙の上の位置が一義的に決まる。こうしてペンxy平面上での動きが取得できる。
【0016】
また、座標情報取得部101は、タッチパネル上を電子ペンが動く場合に、当該電子ペンが動いた2次元座標値(x,y)を取得する技術により実現することも考えられる。かかる技術は、手書き文字入力や手書き文字認識機能を有する携帯端末が保持する既存技術であるので、詳細な説明は省略する。
【0017】
筆圧情報取得部102は、座標情報取得部101が座標情報を取得した時の筆圧に関する情報である筆圧情報(z)を取得する。筆圧情報取得部102は、例えば、圧力センサにより実現されえる。具体的には、筆圧情報取得部102は、例えば、上記のイメージペンのボールペンの根元に圧力センサを搭載し、ボールペンにかかる圧力データを取得することにより筆圧情報(z)を取得する。
【0018】
手書きデータ記録部103は、座標情報取得部101が取得した座標情報と筆圧情報取得部102が取得した筆圧情報を対に有する記録情報(x,y,z)を記録する。記録する先は、手書きデータ取得装置が保持している記録媒体(図示しない)である。手書きデータ記録部103は、通常、ソフトウェアにより実現されるが、ハードウェア(専用回路)により実現されても良い。
【0019】
入力受付部104は、手書きデータを出力する指示を受け付ける。この出力指示は、ボタンの押下や、一定のペンの動き等である。入力受付部104は、例えば、ボタンとその押下を認識するソフトウェアにより実現され得る。
【0020】
手書きデータ出力部105は、入力受付部104で出力指示を受け付けた場合に、手書きデータ記録部103が記録した記録情報(x,y,z)に基づいて、手書きデータを出力する。ここでの出力は、ディスプレイへの表示、または/およびプリンタへの印字、さらにはデータ伝送装置などの外部の装置への出力(送信も含む)等を言う。
【0021】
以下、手書きデータ取得装置の動作について図3のフローチャートを用いて説明する。
(ステップS301)筆圧情報取得部102が筆圧情報(z)を取得する。そして、取得した筆圧情報(z)が0であるか否かを判断する。筆圧情報(z)が0でなければステップS302に行き、筆圧情報(z)が0であればステップS306に飛ぶ。
【0022】
(ステップS302)座標情報取得部101は、座標情報(x,y)を取得する。
(ステップS303)手書きデータ記録部103は、記録情報(x,y,z)を構成する。
【0023】
(ステップS304)手書きデータ記録部103は、ステップS303で構成した記録情報(x,y,z)を記録する。
(ステップS305)ステップS304における記録情報の記録から一定時間が経過したか否かを判断する。一定時間が経過すればステップS301に行き、一定時間が経過しなければステップS305に戻る。
【0024】
(ステップS306)筆圧情報(z)が0である時間が一定時間以上であるか否かを判断する。一定時間以上でなければステップS301に戻り、一定時間以上であれば処理を終了する。
【0025】
なお、図3のフローチャートは、一つの手書きストロークのデータ(例えば、1文字のデータ)を取得するフローチャートであった。しかし、複数のデータを取得する場合には、繰り返し適用すれば良い。かかる場合、手書き開始時点からの時間である全体時間情報を取得する全体時間情報取得部を具備し、手書きデータ記録部103は、全体時間情報取得部が取得した全体時間情報をも記録することにより、複数の手書きストローク間の時間関係をも記録することがきる。
【0026】
次に、本手書きデータ取得装置は、入力受付部104が手書きデータの出力指示を受け付けた場合に、手書きデータ記録部103が記録した手書きデータの中から、指示された手書きデータを選択して出力する。つまり、座標情報と筆圧情報を有する2以上の記録情報を読み出し、強弱(太くしたり細くしたり、または色の濃淡)のある線から構成される文字や図形が出力される。
【0027】
以下、本実施の形態における手書きデータ取得装置の具体的な動作について説明する。手書きデータ取得装置の第一の具体例を図4に示す。本手書きデータ取得装置は、タッチパネルと電子ペンが付属している携帯端末である。また、本手書きデータ取得装置のタッチパネルには圧力センサが付いており、ペンで押下したときの圧力が検知できる。ここで、ユーザは「電源ボタン」を押下して、手書き文字の入力モードとする。そして、ユーザはペンを用いて「り」の文字を入力する、とする。すると、手書きデータ取得装置は、図5に示す記録情報を記録する。記録情報(x,y,z)は、手書きデータ取得装置のタッチパネル上をペンが移動した際の座標情報(x,y)と筆圧情報(z)を有する。筆圧情報(z)は、圧力センサが読み取る情報である。そして、記録された情報は、筆圧情報も有するので、出力する場合に、筆圧によって線の太さや色の濃淡を変えるなどすることにより、実際のデータ記述に合致した文字や図形が再現できる。特に、毛筆による文字の記録には好適である。筆圧によって線の太さを変えて出力した「り」の例を図6に示す。
【0028】
次に、手書きデータ取得装置の第二の具体例を図7に示す。図7は、カメラとインクとプロセッサとメモリーと通信手段と圧力センサを有する。なお、プロセッサは、上記のフローチャート等で説明した処理を行う。また、メモリーは揮発性のメモリーでも良いし、不揮発性のメモリーでも良い。また、通信手段は、ブルートゥース等の無線通信手段が好適であるが、有線の通信手段でも良い。さらに、圧力センサは、ペンのボールペンの根元に搭載されているのが好適である。本手書きデータ取得装置は、上述したアノト日本株式会社の紙上に記載された文字や図形の位置座標(x,y)と筆圧情報(z)を読み取る。そして、ユーザが上記の手書きデータ取得装置を用いて「り」の文字を記載すれば、プロセッサによって位置座標(x,y)と筆圧情報(z)が取得され、記録情報(x,y,z)がメモリーに一旦蓄えられる。この蓄えられた記録情報(x,y,z)の例が図5の情報である。そして、記録情報(x,y,z)は通信手段により外部の情報処理装置に送信される。
【0029】
次に、外部の情報処理装置は、例えば、図5の記録情報(x,y,z)を受信し、格納する。そして、外部の情報処理装置で表示しても良い。かかる場合、上述したように、実際のデータ記述に合致した文字や図形が再現できる。特に、毛筆による文字の記録には好適である。また、個人認証に用いる場合に、筆圧を考慮した個人認証が可能になる。具体的には、予めユーザに決められた文字を入力してもらい、その際の記録情報(x,y,z)を格納しておくとする。そして、例えば、入り口で予め決められた文字を入力してもらい、登録されている人に合致するか否かを判断する。かかる場合、筆圧情報も考慮した個人認証ができるので、文字の形だけで個人認証を行うより精度の高い個人認証が可能である。
【0030】
以上、本実施の形態によれば、手書きデータを取得する場合に、二次元の座標情報と筆圧情報を取得することにより、実際のデータ記述に合致した文字や図形が記録できる。特に、毛筆による文字の記録には好適である。また、個人認証に用いる場合に、筆圧を考慮した精度の高い個人認証が可能になる。
【0031】
なお、本実施の形態において、入力受付部、手書きデータ出力部は必須ではない。かかる場合、手書きデータ取得装置は、座標情報取得部、筆圧情報取得部、手書きデータ記録部を有することとなる。
【0032】
また、本実施の形態において、例えば、図5のデータを読み出して図6のような文字を出力する装置である手書きデータ出力装置は以下の構成になる。つまり、手書きデータ出力装置は、座標情報と筆圧情報を有する2以上の記録情報を格納しており、当該2以上の記録情報を読み出して出力する手書きデータ出力装置である。
【0033】
さらに、本実施の形態において説明した手書きデータ取得装置の動作について、ソフトウェアで実現し、当該ソフトウェアを例えば、サーバ上に置いて、ソフトウェアダウンロードにより当該ソフトウェアを配布しても良い。さらにソフトウェアをCD−ROM等の記録媒体に記録して流布しても良い。このことも、すべての実施の形態において同様である。なお、本実施の形態において説明した手書きデータ取得装置の動作をソフトウェアで実現した場合のプログラムは、以下のようになる。つまり、本プログラムは、手書きデータを取得して記録するプログラムであって、コンピュータに、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得ステップと、座標情報と筆圧情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム、である。なお、手書きデータ記録ステップにおける記録は、一時メモリーへの一時的な記憶も含む。
【0034】
また、手書きデータを出力するためのプログラムは、以下のようになる。本プログラムは、データの出力指示を受け付けるデータ出力指示受付ステップと、データの出力指示を受け付けた場合に、格納されている座標情報と筆圧情報を有する2以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム、である。通常、本プログラムは、データの出力指示を受け付けた場合にデータ出力が行われるので、データの出力指示を受け付けるデータ出力指示受付ステップを有する。
【0035】
(実施の形態2)
図8は、本実施の形態に係る手書きデータ取得装置のブロック図である。手書きデータ取得装置は、座標情報取得部101、筆圧情報取得部102、時間情報取得部801、手書きデータ記録部802、入力受付部104、手書きデータ出力部105を有する。
【0036】
時間情報取得部801は、座標情報取得部101が座標情報を取得したときの時間に関する情報である時間情報を取得する。具体的には、時間情報取得部801は、例えば、ストロークが始まってからの時間を取得する。時間情報取得部801は、時計を保持しており、当該時計から時間情報を取得するソフトウェア等で実現され得る。
手書きデータ記録部802は、座標情報取得部101が取得した座標情報(x,y)と筆圧情報取得部102が取得した筆圧情報(z)と時間情報取得部801が取得した時間情報(t)を対に有する記録情報(x,y,z,t)を記録する。
【0037】
以下、手書きデータ取得装置の動作について図9のフローチャートを用いて説明する。
(ステップS901)初期化を行う。初期化とは、座標情報(x,y)を(0,0)、筆圧情報(z)を(0)、時間情報(t)を(0)にし、さらに各種カウンタを0にすることである。
【0038】
(ステップS902)筆圧情報取得部102が筆圧情報(z)を取得する。そして、取得した筆圧情報(z)が0であるか否かを判断する。筆圧情報(z)が0でなければステップS903に行き、筆圧情報(z)が0であればステップS909に飛ぶ。
【0039】
(ステップS903)座標情報取得部101は、座標情報(x,y)を取得する。
(ステップS904)時間情報取得部801は、ストローク開始(筆圧情報が0でなくなったとき)からの時間である時間情報を取得する。
【0040】
(ステップS905)手書きデータ記録部802は、記録情報(x,y,z,t)を構成する。
【0041】
(ステップS906)手書きデータ記録部802は、ステップS905で構成した記録情報と既に記録している記録情報から、前に記録した記録情報が不要か否かを判断する。前に記録した記録情報が不要であればステップS907に行き、前に記録した記録情報が不要でなければステップS908に飛ぶ。なお、前に記録した記録情報が不要か否かは、例えば、以下のアルゴリズムでチェックする。直前に記録した記録情報の筆圧情報とステップS905で構成した記録情報の筆圧情報の変化がないこと、および直前に記録した2つの記録情報の座標情報とステップS905で構成した記録情報の座標情報(3つの座標情報)により、直前に記録した記録情報の座標情報が示す点が、直線上の中点にあたる(端点でない)という2つの条件を満たす場合に、前に記録した記録情報が不要である、ということになる。
【0042】
(ステップS907)手書きデータ記録部802は、ステップS906で構成した記録情報(x,y,z)を、前の不要な記録情報に上書き記録する。
【0043】
(ステップS908)手書きデータ記録部802は、ステップS906で構成した記録情報(x,y,z)を、新たに記録する。
(ステップS909)筆圧情報(z)が0である時間が一定時間以上であるか否かを判断する。一定時間以上でなければステップS902に戻り、一定時間以上であれば処理を終了する。
【0044】
なお、図9のフローチャートは、一つの手書きストロークのデータ(例えば、1文字のデータ)を取得するフローチャートであった。しかし、複数のデータを取得する場合には、繰り返し適用すれば良い。かかる場合、手書きストロークの始点からカウントする時間情報とは別に手書き開始時点からの時間である全体時間情報を取得する全体時間情報取得部を具備し、手書きデータ記録部802は、全体時間情報取得部が取得した全体時間情報をも記録することにより、複数の手書きストローク間の時間関係をも記録することがきる。
【0045】
以下、本実施の形態における手書きデータ取得装置の具体的な動作について説明する。手書きデータ取得装置の具体例は図7の装置である。本手書きデータ取得装置のプロセッサにおいて、図9のフローチャートで説明した処理を行う。そして、ユーザは、例えば、図7のペンを用いて特殊な紙に「口」という漢字を書く、とする。かかる場合、手書きデータ取得装置は、図10に示すような筆圧情報、座標情報、時間情報を取得する、とする。なお、時間情報は、筆圧が0より大きくなった後(ストローク開始後)からカウントされた値である。なお、ユーザがペンを用いて書いた「口」のイメージ図を図11に示す。
【0046】
上記の場合、いわゆる不要な点の記録情報は記録されずに、図12に示す記録情報が記録される。つまり、直線上の中点で、かつ筆圧情報の変化がない点の記録情報は最終的には記録されない。
【0047】
以上、本実施の形態によれば、手書きデータを取得する場合に、二次元の座標情報と筆圧情報と時間情報を取得することにより、ペンの動きに関する情報をも記録できる。かかる技術を個人認証に用いる場合に、筆圧を考慮した精度の高い個人認証が可能になる。さらに、時間情報を記録することにより、不要な情報を記録せずに済み、全体のデータ量を削減することができる。また、時間情報を記録することにより、個人の筆を走らせる速度なども容易に把握でき、精度の高い個人認証が可能になる。
【0048】
なお、本実施の形態において、中点の情報を間引いて記録情報を記録した。しかし、記録しない情報を決定するアルゴリズムは、上記で説明したアルゴリズムに限られない。
【0049】
また、本実施の形態において、筆圧情報は「0」または「0でない」の2つの状態の情報でも良い。さらに、上述の手書きデータ取得装置において、入力受付部、手書きデータ出力部は必須ではない。かかる場合、手書きデータ取得装置は、座標情報取得部、時間情報取得部、「0」または「0でない」の2つの状態のみを取得する筆圧情報取得部、手書きデータ記録部を有することとなる。
【0050】
また、本実施の形態において、例えば、図12のデータを読み出して図11のような文字を出力する装置である手書きデータ出力装置は以下の構成になる。つまり、手書きデータ出力装置は、座標情報と筆圧情報と時間情報を有する2以上の記録情報を格納しており、当該2以上の記録情報を読み出して出力する手書きデータ出力装置である。または、本手書きデータ出力装置は、座標情報と時間情報を有する2以上の記録情報を格納しており、当該2以上の記録情報を読み出して出力する手書きデータ出力装置である。
【0051】
さらに、本実施の形態において説明した手書きデータ取得装置の動作について、ソフトウェアで実現し、当該ソフトウェアを例えば、サーバ上に置いて、ソフトウェアダウンロードにより当該ソフトウェアを配布しても良い。さらにソフトウェアをCD−ROM等の記録媒体に記録して流布しても良い。なお、本実施の形態において説明した手書きデータ取得装置の動作をソフトウェアで実現した場合のプログラムは、以下のようになる。つまり、本プログラムは、手書きデータを取得して記録するプログラムであって、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の時間に関する情報である時間情報を取得する時間情報取得ステップと、座標情報と時間情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラムである。
【0052】
また、本実施の形態における別のプログラムは、手書きデータを取得して記録するプログラムであって、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得ステップと、座標情報取得ステップにおいて座標情報を取得した時の時間に関する情報である時間情報を取得する時間情報取得ステップと、座標情報と筆圧情報と時間情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラムである。
【0053】
また、手書きデータを出力するためのプログラムは、以下のようになる。本プログラムは、データの出力指示を受け付けるデータ出力指示受付ステップと、データの出力指示を受け付けた場合に、格納されている座標情報と筆圧情報と時間情報を有する2以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム、である。通常、本プログラムは、データの出力指示を受け付けた場合にデータ出力が行われるので、データの出力指示を受け付けるデータ出力指示受付ステップを有する。
【0054】
(実施の形態3)
図13は、本実施の形態に係る手書きデータ取得装置のブロック図である。手書きデータ取得装置は、座標情報取得部101、筆圧情報取得部102、入力受付部104、手書きデータ出力部105、時間情報取得部801、特徴点認識部1301、手書きデータ記録部1302を有する。
【0055】
特徴点認識部1301は、座標情報取得部101または/および筆圧情報取得部102または/および時間情報取得部801で取得した二以上の座標情報または/および筆圧情報または/および時間情報に基づいて、二種類以上の特徴点を認識する。特徴点認識部1301は、通常、ソフトウェアで実現されるが、ハードウェア(専用回路)で実現しても良い。
【0056】
手書きデータ記録部1302は、特徴点認識部1301が認識した特徴点を識別する情報である特徴点識別情報と、座標情報と、筆圧情報(z)または/および時間情報(t)を対に有する特徴点情報(x,y,z,t)または(x,y,z)または(x,y,t)を記録する。記録する特徴点識別情報と特徴点情報を記録情報という。記録する先は、手書きデータ取得装置が保持している記録媒体(図示しない)である。手書きデータ記録部1302は、通常、ソフトウェアにより実現されるが、ハードウェア(専用回路)により実現されても良い。
【0057】
以下、手書きデータ取得装置の動作について図14のフローチャートを用いて説明する。以下、特徴点情報が(x,y,z,t)である場合について説明する。
(ステップS1401)初期化を行う。初期化とは、座標情報(x,y)を(0,0)、筆圧情報(z)を(0)、時間情報(t)を(0)にし、さらに各種カウンタを0にすることである。
【0058】
(ステップS1402)筆圧情報取得部102が筆圧情報(z)を取得する。そして、取得した筆圧情報(z)が0であるか否かを判断する。筆圧情報(z)が0でなければステップS1403に行き、筆圧情報(z)が0であればステップS1409に飛ぶ。なお、ステップS1402でz=0でないときは、筆圧情報(z)の値を取得する。
【0059】
(ステップS1403)座標情報取得部101は、座標情報(x,y)を取得する。
【0060】
(ステップS1404)時間情報取得部801は、ストローク開始(筆圧情報が0でなくなったとき)からの時間である時間情報を取得する。
【0061】
(ステップS1405)特徴点認識部1301は、ステップS1403で取得した座標情報が示す点が特徴点であるか否かを判断する。特徴点認識部1301は、特徴点であると判断するための条件を保持しており、座標情報取得部101および筆圧情報取得部102および時間情報取得部801で取得した二以上の座標情報および筆圧情報および時間情報に基づいて、当該条件を満たすか否かを判断する。特徴点を認識する詳細なアルゴリズムは、以下で説明する。特徴点であればステップS1406に行き、特徴点でなければステップS1402に戻る。
【0062】
(ステップS1406)特徴点認識部1301は、特徴点の種類を識別する特徴点識別子を取得する。
(ステップS1407)手書きデータ記録部1302は、特徴点情報(x,y,z,t)を構成する。
【0063】
(ステップS1408)手書きデータ記録部1302は、ステップS1406で取得した特徴点識別子と、ステップS1407で構成した記録情報(x,y,z)を記録する。
【0064】
(ステップS1409)筆圧情報(z)が0である時間が一定時間以上であるか否かを判断する。一定時間以上でなければステップS1402に戻り、一定時間以上であれば処理を終了する。
以上、特徴点情報が(x,y,z,t)である場合について説明したが、特徴点情報が(x,y,z)である場合は、時間情報の取得が不要である。また、特徴点情報が(x,y,t)である場合は、筆圧情報の取得が不要である。
【0065】
以下、本実施の形態における手書きデータ取得装置の具体的な動作について説明する。手書きデータ取得装置の具体例は、図4の装置または図7の装置である。かかる手書きデータ取得装置により特徴点識別子と特徴点情報(x,y,z,t)を取得し、記録する。以下、特徴点を認識する詳細な第一のアルゴリズムを示す。特徴点認識部1301は、以下の8種類の条件に合致する点を特徴点(第一点から第七点、および第十二点)として認識する。ここで、x,yは平面上の座標情報を示す。zは筆圧情報である。tは時間情報である。
【0066】
第一点は、筆圧が一定時間以上かからない状態(これを筆圧データz=0とする)ののち筆圧がかかり始めた点である。第二点は、zがノンゼロの状態でxまたはyの変化の累積がある一定値を超えた点である。第三点は、zがノンゼロ状態でxおよびyの値の変化がある小さな値以下の状態が一定時間以上続いた点である。第四点は、x/yの変化またはy/xの変化が小さな変化の範囲内の一定値からはみ出た点である。第五点は、zがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復したさいのゼロになった点である。第六点は、zがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復したさいのノンゼロに復した点である。第七点は、zがゼロになり一定時間以上ゼロが継続したときzがゼロになった点である。第十二点はハネの開始の点である。
【0067】
上記第一点は、ペンダウンしたストロークの開始点であり、ストロークデータの時間カウントの開始点である。第二点は、x座標またはy座標の前の代表点から差分が一定値Dを超える点であり、直線的なストロークが書かれているとき、適当な距離間隔で標本化するために代表点にする。第三点は、同じ所にペンがしばらく留まることはそれなりの理由があるので代表点に選定する。留まる理由としてはその点でペンの動く方向が大きく変化するストロークの終端で”ハネ”ではなく、”トメ”で終わる、そこで考え事をしたり、躊躇したりする、などがある。いずれの場合も手書きを再現させるとき大切な情報である。特に文字や図形を描くときの角や頂点に相当することが多く、これによって図22に示した従来技術の欠点を克服することができる。
【0068】
第四点は、曲線を描いているときに主に発生し、これによって曲線に沿った代表点を選定する。この一定値kを小さくすればそれだけ忠実に曲線に沿った代表点を選定することができる。第五点および第六点は、速い速度でストロークを描く場合、または、ひらがなの”さ”や”り”など、ひらがなを書く場合によく発生する。たとえば”り”の左側のストロークと右側のストロークが切れているかどうかより、ほぼ継続してかかれていたことがわかることが”り”を認識する上で大切である。それ以外に漢字などで”画(カク)”と”画”の接続のさいペンが紙から外される。このために第五点および第六点が効果を発揮する。一般にひらがなの文字認識が難しいとされているのはこのようなデータが不足していたことに大きな原因がある。第五点および第六点はそれを改めることに効果を発揮する。第七点は、ストロークの終端を代表点とするためにあり、これによって第一点に始まり、第七点で終わる一連のデータが1つの文字ストロークを表すことになる。第十二点は筆圧が次第に小さくなって、遂にゼロになる場合の筆圧が小さくなり始める点である。
【0069】
次に、第一点、第五点、第六点および第七点を認識するアルゴリズムの例を図15のフローチャートを用いて説明する。
(ステップS1501)各種カウンタや一時記憶バッファをリセットする。
【0070】
(ステップS1502)ペンが下され、筆圧情報zがノンゼロになるのを待つ。
(ステップS1503)筆圧情報zがノンゼロになると、後の処理のためにゼロカウンタをフルカウントにセットする。なお、ゼロカウンタとは、筆圧情報が0である状態の時間を測定するカウンタである。
【0071】
(ステップS1504)この時点(ちょうどzがゼロからノンゼロになった時点)のx(ti),y(ti),z(ti)をバッファNに一時記憶しておく。この点が第一点である。
【0072】
(ステップS1505)ゼロカウンタがノンゼロかどうかを判断する。ノンゼロであればステップS1507に行く。ノンゼロでなければ次の認識処理ルーチン(A(S+1))に行く。つまり、ゼロカウンタがゼロのときは継続的にz≠0であり、何かがかかれていることを意味するのでそれ以上は何もしない。ステップS1505において、第六点の選定のための処理が合流するが、これは後に述べる。
【0073】
(ステップS1506)ゼロカウンタが一定値H以下であるか否かを判断する。一定値H以下であればステップS1507に行き、一定値Hより大きければステップS1511に行く。ステップS1506でゼロカウンタが一定時間H以下のときは第五点および第六点の選定プロセスに入る。つまり、このときは一度z=0になったが、速やかにz≠0に、すなわちペンが下されたケースである。
【0074】
(ステップS1507)この前にz=0になった時点のx,y,z,tを出力する。この点が第五点である。
【0075】
(ステップS1508)zが再びノンゼロにあった時点のx,y,z,tを出力する。この点が第六点である。
【0076】
(ステップS1509)ゼロカウンタをリセットする。
(ステップS1510)ノンゼロカウンタをリセットする。次の認識処理ルーチン(A(S+1))に行く。
【0077】
(ステップS1511)新しく書き始められたと判断し、時間カウントtをゼロにする。
【0078】
(ステップS1512)ゼロからノンゼロになった時点でバッファNに一時記憶されたx(ti),y(ti),z(ti),tiを第一点として出力する。
【0079】
(ステップS1513)ゼロカウンタをリセットする。
(ステップS1514)ノンゼロカウンタをリセットする。次の認識処理ルーチン(A(S+1))に行く。
【0080】
(ステップS1515)筆圧情報(z)が0であるか否かを判断する。筆圧情報(z)が0であればステップS1516に行き、筆圧情報(z)が0でなければ次の認識処理ルーチン(A(S+1))に行く。
【0081】
(ステップS1517)ゼロカウンタを1インクリメントする。
(ステップS1518)ゼロカウンタが1であるか否かを判断する。ゼロカウンタが1でればステップS1518に行き、ゼロカウンタが1でなければステップS1519に飛ぶ。
【0082】
(ステップS1518)この時点の特徴点情報(x,y,z,t)を一時記憶(M)する。このMは、第五点または第七点の候補である。
【0083】
(ステップS1519)ゼロカウンタが一定値を越えているか否かを判断する。一定値を越えていればステップS1520に行き、一定値を越えていなければ次の認識処理ルーチン(A(S+1))に行く。
【0084】
(ステップS1520)第七点として、ステップS1520で一時記憶(M)した(x,y,z,t)を出力する。
【0085】
(ステップS1521)ゼロカウンタをリセットする。
(ステップS1522)ノンゼロカウンタをリセットする。処理を終了する。
(ステップS1523)使用され始めてからもzが0でないかどうかを調べ、ゼロのときは次の認識処理ルーチン(A(S+1))に行く。
【0086】
(ステップS1524)ステップS1523でzが0でないときに、ノンゼロカウンタを+1する。
(ステップS1525)ノンゼロカウンタが1か否かを判断する。ノンゼロカウンタが1であればステップS1526に行き、ノンゼロカウンタが1でなければステップS1505に戻る。
【0087】
(ステップS1526)この時点のx,y,z,tを、第六点の候補点として、バッファNに一時記憶する。ステップS1505に戻る。
【0088】
なお、図15のフローチャートで取得した記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子(第一点や第五点や第六点や第七点を識別する情報)を記録する。
【0089】
また、本明細書におけるフローチャートにおいて、認識処理ルーチンA(S)とは、S回目の認識を行うルーチンで、1種類以上の特徴点を抽出するために、1以上の認識処理ルーチンが並行して、またシーケンシャルに実行される。また、A(S)の認識処理ルーチンの次に、A(S+1)の認識処理ルーチンに行く。
【0090】
次に、第二点を認識するアルゴリズムの例を図16のフローチャートを用いて説明する。図15のフローチャートにおいて筆圧情報z=0ではないことを確認すると図16のフローチャートは開始される。なお、図16のフローチャートにおいて前に選択した代表点を(x1,y1,z1,t1)とする。なお、図16のフローチャートが示す動作は、S番目の認識処理ルーチンの一つにより実行される。
(ステップS1601)筆圧情報z=0でないか否かを判断する。zが0でなければステップS1602に行き、zが0であれば次の認識処理ルーチン(A(S+1))に行く。
【0091】
(ステップS1602)前に選択した代表点(x1,y1,z1,t1)と現在の座標(x,y)との差|x1−x|、|y1−y|を計算する。
【0092】
(ステップS1603)|x1−x|が一定値D以上であるか否かを判断する。一定値D以上であればステップS1605に行く。一定値D未満であれば次の認識処理ルーチン(A(S+1))に行く。この時点では、(x,y,z,t)は第二点でないので、次の特徴点に移る。
【0093】
(ステップS1604)|y1−y|が一定値D以上であるか否かを判断する。一定値D以上であればステップS1605に行く。一定値D未満であればステップS1602に戻る。
【0094】
(ステップS1605)この特徴点情報(x,y,z,t)を出力する。この特徴点情報は、第二点を示す情報である。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。次の認識処理ルーチン(A(S+1))に行く。
【0095】
次に、第三点を認識するアルゴリズムの例を図17のフローチャートを用いて説明する。図17のフローチャートにおける動作は、認識処理ルーチン(A(S))である。
(ステップS1701)筆圧情報(z)が0でないか否かを判断する。zが0でなければステップS1702に行き、zが0であれば次の認識処理ルーチン(A(S+1))に行く。
【0096】
(ステップS1702)時点tに対して1時点前の時点t−1の位置情報の差、すなわち|x(t)−x(t−1)|、|y(t)−y(t−1)|を計算する。
【0097】
(ステップS1703)|x(t)−x(t−1)|が十分小さいか否かを判断する。十分小さければステップS1704に行き、十分小さくなければ次の認識処理ルーチン(A(S+1))に行く。
【0098】
(ステップS1704)|y(t)−y(t−1)|が十分小さいか否かを判断する。十分小さければステップS1705に行き、十分小さくなければ次の認識処理ルーチン(A(S+1))に行く。なお、|x(t)−x(t−1)|および|y(t)−y(t−1)|が小さな一定値より小さいときにはペンが滞留していることを意味する。
【0099】
(ステップS1705)この状態を滞留クロックuで1カウントアップする。滞留クロックとは、手書きの点が滞留している時間を測定するためのカウンタである。
【0100】
(ステップS1706)カウントした滞留クロックuが一定時間(U)を超えているか否かを判断する。一定時間を超えていればステップS1706に行き、一定時間を超えていなければ次の認識処理ルーチン(A(S+1))に行く。
(ステップS1707)滞留クロックuをリセットする。
【0101】
(ステップS1708)その時点の(x,y,z,t)を滞留点(第三点)として出力する。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【0102】
次に、第四点を認識するアルゴリズムの例を図18のフローチャートを用いて説明する。なお、前の代表点を(x3,y3,z3,t3)とする。図18のフローチャートにおける動作は、認識処理ルーチン(A(S))である。
【0103】
(ステップS1801)筆圧情報(z)が0でないか否かを判断する。zが0でなければステップS1802に行き、zが0であれば次の認識処理ルーチン(A(S+1))に行く。
(ステップS1802)x(t)−x3が0に近いか否かを判断する。0に近ければステップS1803に行く。0に近くなければステップS1804に行く。これは、分母が0に近いものを回避する処置である。
【0104】
(ステップS1803)y(t)−y3が0に近いか否かを判断する。0に近ければ次の認識処理ルーチン(A(S+1))に行く。0に近くなければステップS1805に行く。
【0105】
(ステップS1804)時々刻々の勾配(y(t)−y3)/(x(t)−x3)の時間平均値を計算する。
【0106】
(ステップS1805)時々刻々の勾配(x(t)−x3)/(y(t)−y3)の時間平均値を計算する。
【0107】
(ステップS1806)その平均値と現時点tnの勾配(y(t)−y3)/(x(t)−x3)の差が一定値Kを超えているのかどうかを判断する。超えていればステップS1808に行く。超えていなければ次の認識処理ルーチン(A(S+1))に行く。
【0108】
(ステップS1807)その平均値と現時点tの勾配(x(t)−x3)/(y(t)−y3)の差が一定値Kを超えているのかどうかを判断する。超えていればステップS1808に行く。超えていなければ次の認識処理ルーチン(A(S+1))に行く。
【0109】
(ステップS1808)(x(t),y(t),z(t),t(t))を第四点として出力する。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【0110】
次に、第十二点を認識するアルゴリズムの例を図19のフローチャートを用いて説明する。第十二点はハネの開始の点である。
(ステップS1901)筆圧情報z(t)=0であるか否かを判断する。z(t)=0であればステップS1910に行き、z(t)=0でなければステップS1902に行く。
【0111】
(ステップS1902)z(t)とz(ti―1)の差が一定値を超えているか否かを判断する。一定値を以下であればステップS1903に行き、一定値を超えていれば次の認識処理ルーチン(A(S+1))に行く。
【0112】
(ステップS1903)筆圧情報の変化から、筆圧が減少に転じているか否かを判断する。減少していればステップS1904に行き、減少していなければステップS1907に飛ぶ。
【0113】
(ステップS1904)カウンタnの値を+1する。なお、nは、ハネの続いている時間を測定するカウンタである。
【0114】
(ステップS1905)n=1であるか否かを判断する。n=1であればステップS1906に行き、n=1でなければ次の認識処理ルーチン(A(S+1))に行く。
【0115】
(ステップS1906)その時点の(x,y,z,t)を、第十二点の候補として一時記憶する。次の認識処理ルーチン(A(S+1))に行く。
【0116】
(ステップS1907)nが一定値uを超えているか否かを判断する。一定値を超えていればステップS1914に行き、一定値を超えていなければステップS1908に行く。
【0117】
(ステップS1908)m、nをリセットする。なお、mは筆圧情報が前の段階より大きくなった(強い筆圧になった)時間を測定するカウンタである。
【0118】
(ステップS1909)一時記憶をリセットする。次の認識処理ルーチン(A(S+1))に行く。
【0119】
(ステップS1910)z(ti―1)が0より大きいか否かを確認する。z(ti―1)が0より大きければステップS1911に行き、0であれば次の認識処理ルーチン(A(S+1))に行く。
【0120】
(ステップS1911)nが一定値vを超えているか否かを判断する。一定値を超えていればステップS1912に行き、nが一定値を超えていなければハネではないと判断して、ステップS1908に行く。
【0121】
(ステップS1912)一時記憶している特徴点(x,y,z,t)を第十二点として出力する。なお、記録情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【0122】
(ステップS1913)m、nをリセットする。次の認識処理ルーチン(A(S+1))に行く。
(ステップS1914)mカウンタを1インクリメントする。
【0123】
(ステップS1915)mが一定値以内か否かを判断する。mが一定値以内であれば、未だハネが継続していると判断して、次の認識処理ルーチン(A(S+1))に行き、mが一定値より大きければ、ハネでなかったと判断してステップS1908に戻る。
【0124】
次に、特徴点を認識する詳細な第二のアルゴリズムを示す。第二のアルゴリズムは、第一のアルゴリズムで認識した第一点から第七点まで、および第十二点の特徴点の認識に加えて、以下の第八点または第九点を認識するアルゴリズムである。第一点から第七点、および第十二点までの特徴点を認識するアルゴリズムは説明済みであるので、第八点または第九点を認識するアルゴリズムについて、以下に説明する。第八点はペン速度が最大になる点であり、第九点はペン速度が最少になる点である。ペン速度の最大点が発生するのは直線描写のほぼ中央や曲率が小さい長い曲線部の中央付近である。逆にペン速度の極小点は細部の描写、角や頂点の描写で発生する。第八点を認識するアルゴリズムのx軸の例を図20のフローチャートを用いて説明する。なお、図20のフローチャートは、ペン速度の極大点を選定するアルゴリズムである。図20において、前の代表点を(x0,y0,z0,t0)、x0=x(t)、y0=y(t)とし、現時点をtとする。
【0125】
(ステップS2001)筆圧情報(z)が0でないか否かを判断する。zが0でなければステップS2002に行き、zが0であれば次の認識処理ルーチン(A(S+1))に行く。
【0126】
(ステップS2002)前の代表点からのxの変化率(x(t)−x0)/(t−t)を計算する。
【0127】
(ステップS2003)1つ前の時点ti−1から現在までのxの変化率(x(t)−x(ti−1))/(t−ti−1)とステップS2001で計算した前の代表点から変化率と比較する。1ステップ前の時点からの変化率が同じか大きい場合はペンの加速が続いているので、ステップS2004に行く。1ステップ前の時点からの変化率が小さいときは加速が止まったので、ステップS2008に飛ぶ。
【0128】
(ステップS2004)1ステップ前の時点からの変化率が一定値以上か否かを判断する。一定値以上であればステップS2005に行き、一定値未満であればステップS2006に飛ぶ。
【0129】
(ステップS2005)x加速カウンタを+1する。x加速カウンタとは、xの方向に加速されている状態が続いている時間を測定するカウンタである。
【0130】
(ステップS2006)x加速カウンタをリセットする。これは、1ステップ前の時点からの変化率が大きくないときは第八点とは無関係だからである。
【0131】
(ステップS2007)極大カウンタをリセットして、次の認識処理ルーチン(A(S+1))に行く。
【0132】
(ステップS2008)x加速カウンタが一定値を越えているか否かを判断する。一定値を越えていれば、xの加速が止まったときに相当し、その時点でステップS2009に行き、一定値を越えていなければステップS2014に飛ぶ。
【0133】
(ステップS2009)極大カウンタを+1としてペン速度が極大値に達したので、ステップS2010に行く。
【0134】
(ステップS2010)極大カウンタが1になったかを判断する。極大カウンタが1のときは極大点なのでステップS1011に行き、極大カウンタが1でなければステップS1012に行く。
【0135】
(ステップS2011)その時点の(x,y,z,t)を第八点の候補として、一時記憶する。次の認識処理ルーチン(A(S+1))に行く。
(ステップS2012)x加速カウンタと極大カウンタをリセットする。
【0136】
(ステップS2013)一時記憶した(x,y,z,t)を第八点として出力する。なお、情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【0137】
(ステップS2014)x加速カウンタが一定値を越えていないので、第八点ではないと判断し、x加速カウンタをリセットし、次の認識処理ルーチン(A(S+1))に行く。
【0138】
図20のフローチャートにおいて、x方向のペン速度の極大点を検出したが、図20のxをyに置き換えることによってy方向のペン速度の極大点が検出でき、そのときも第八点として(x,y,z,t)を出力する。さらに極小点については上記のステップS2003で不等号を逆向きにし、ステップS2003を一定値以下と変え、ステップS2007、S2010などで極大カウンタを極小カウンタとし,さらに加速カウンタを減速カウンタにすることによって検出できる。極小点は第九点であり、選択される代表点の性格として極大点と極小点は区別しておくことが好適である。
【0139】
次に、特徴点を認識する詳細な第三のアルゴリズムを示す。第二のアルゴリズムは、第一のアルゴリズムで認識した第一点から第七点までの特徴点の認識に加えて、以下の第十点および第十一点を認識するアルゴリズムである。第一点から第七点までの特徴点を認識するアルゴリズムは説明済みであるので、第十点および第十一点を認識するアルゴリズムについて、以下に説明する。
【0140】
第十点および第十一点は、筆圧の極大点と極小点である。第十点の極大点は角や頂点を代表点として選択することに効果があり、上記第三点を見つけるときの補助情報になる。第十一点の極小点はひらがなの曲線やストロークのつなぎできれたりきれなかったりする微妙なタッチを極小点で代表させる。切れたときは上記の第五点または第六点に相当し、切れないときは極小点になるので、これは第五点または第六点を補助していることになる。
【0141】
次に、第十点および第十一点を認識するアルゴリズムの例を図21のフローチャートを用いて説明する。
(ステップS2101)筆圧情報(z)が0でないか否かを判断する。zが0でなければステップS2102に行き、zが0であれば次の認識処理ルーチン(A(S+1))に行く。
【0142】
(ステップS2102)(z(t)−z0)/(t−t))を計算する。
(ステップS2103)1ステップ前の時点からの筆圧の変化率を見て、変化率が一定値以下であればステップS2104に行き、1ステップ前の時点との変化率のほうが大きければステップS2108に飛ぶ。
【0143】
(ステップS2104)|(z(t)−z(ti―1))/(t―ti―1)|は一定値以下か否かを判断する。一定値以下であればステップS2105に行き、一定値より大きければステップS2106に飛ぶ。
(ステップS2105)z減速カウンタを+1する。z減速カウンタとは、筆圧が減少している時間を測定するカウンタである。
【0144】
(ステップS2106)z減速カウンタをリセットする。一定値より大きいときは筆圧最少点とは無関係と見なし得るからである。
(ステップS2107)極小カウンタをリセットする。次の認識処理ルーチン(A(S+1))に行く。
(ステップS2108)z減速カウンタが一定値を越えているか否かを判断する。一定値を越えていればステップS2109に行き、一定値を越えていなければステップS2114に飛ぶ。
(ステップS2109)極小カウンタを+1する。
(ステップS2110)極小カウンタの値が1であるか否かを判断する。1であればステップS2111に行き、2でなければステップS2112に飛ぶ。
【0145】
(ステップS2111)(x,y,z,t)を一時記憶する。次の認識処理ルーチン(A(S+1))に行く。
【0146】
(ステップS2112)極小カウンタ、z減速カウンタをリセットする。z減速カウンタが一定値を超えていることを確認すると極小点を通過したと見なすからである。
(ステップS2113)ステップS2111で一時記憶した(x,y,z,t)を第十点として出力する。なお、情報を記録する際には、上述したように、通常、特徴点情報と特徴点識別子を記録する。
【0147】
(ステップS2114)z減速カウンタをリセットする。次の認識処理ルーチン(A(S+1))に行く。
【0148】
図21のフローチャートは筆圧の極小点の検出を行うフローチャートであるが、筆圧の極大点の検出も同様にして可能である。
なお、以上のアルゴリズムで抽出した特徴点の特徴点識別子と特徴点情報(x,y,z,t)を有する記録情報は、例えば、(第一点,x1,y1,z1,t1)、(第五点,x2,y2,z2,t2)、(第二点,x3,y3,z3,t3)、(第十点,x4,y4,z4,t4)、・・・・・(第七点,x5,y5,z5,t)のように記録される。なお、記録情報を処理するソフトウェアまたはハードウェアは、「第一点」という情報により、どのような特徴点の情報であるかを認識できる。
【0149】
イメージペンのボールペンの根元に圧力センサを搭載し、ボールペンにかかる圧力データを取得することにしておき、その圧力がゼロの状態から、圧力を感じ始めた時点をオリジナルにクロックを刻む仕掛けをイメージペンに持たせれば、イメージペンはペンの紙の上の位置(x,y)、圧力z、時間tの組合せ(x,y,z,t)なるデータをペンの動きに完全に追随するように取得することができる。
【0150】
次に、特徴点を認識する詳細な第四のアルゴリズムを示す。第四のアルゴリズムは、第一点から第七点までの特徴点、第八点、第九点の特徴点、および第十点、第十一点の特徴点を認識するアルゴリズムである。各特徴点の認識を行うアルゴリズムは上記で説明済みである。
【0151】
以上、本実施の形態によれば、手書きデータを取得する場合に、特徴点を抽出し、その特徴点を識別する特徴点情報と、二次元の座標情報と筆圧情報と時間情報を取得することにより、実際のデータ記述に合致した文字や図形が記録できる。つまり、本実施の形態によれば、記述した代表点によって手書きされた結果だけでなく、手書きするペンの動きの主要情報を記述できる。このように記述された手書き情報から、例えば、その手書き情報が署名により記載された情報であった場合に、正当な署名かどうかを認識することができる。署名の場合、部分的なペンの動きの速度や速度変化、さらには筆圧の変化が大きな意味をもつのでそれらをも記述する本実施の形態における手書きデータの記述法が大きな効果を発揮する。
【0152】
また、記述された手書き情報からその中の文字を認識する場合にも大きな効果を発揮する。一般にひらがなの認識が難しいとされているが、本実施の形態における手書きデータの記述法によれば、手書きのペンの動く速度や動き速度の極大、極小などを記述し、さらに筆圧の変化を記述しているので、ひらがなの認識に大きな効果を発揮する。また、グラフィックデータについてはペン速度の極小点や筆圧の極大点がコーナーで発生することが多いので図形の頂点を検出するのに大きな効果を発揮する。従来の手書き情報の記述が、記述結果である線の形のみに注目してなされていたのに対して、本実施の形態によれば、手書きの過程でのペンの動きに関する情報を記述しているので、署名認識、文字認識に大きな効果を発揮するだけでなく、手書きされた図形のコーナーなどをきちんと押さえた再現にも効果を発揮する。
【0153】
なお、本実施の形態において、記録した情報を用いて手書きされたデータを表示するだけではなく、通信回線を用いて遠隔地に伝送することも可能である。図5におけるペンを利用すれば、手書きデータの遠隔地への伝送も可能である。
【0154】
また、本実施の形態において、例えば、手書きデータ記録装置により記録された2以上の記録情報を読み出して図11のような文字を出力する装置である手書きデータ出力装置は以下の構成になる。つまり、手書きデータ出力装置は、座標情報を含む特徴点情報と、特徴点識別情報を有する2以上の記録情報を格納しており、当該2以上の記録情報を読み出して出力する手書きデータ出力装置である。また、手書きデータ出力装置は、座標情報と、筆圧情報または/および時間情報を含む特徴点情報と、特徴点識別情報を有する2以上の記録情報を格納しており、当該2以上の記録情報を読み出して出力する手書きデータ出力装置である。
【0155】
さらに、本実施の形態において説明した手書きデータ取得装置の動作について、ソフトウェアで実現し、当該ソフトウェアを例えば、サーバ上に置いて、ソフトウェアダウンロードにより当該ソフトウェアを配布しても良い。さらにソフトウェアをCD−ROM等の記録媒体に記録して流布しても良い。なお、本実施の形態において説明した手書きデータ取得装置の動作をソフトウェアで実現した場合のプログラムは、以下のようになる。つまり、手書きデータを取得して記録するプログラムであって、コンピュータに、平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、座標情報取得ステップで取得した二以上の座標情報に基づいて、二種類以上の特徴点を認識する特徴点認識ステップと、特徴点認識ステップで認識した二種類以上の特徴点を識別する特徴点識別情報と、前記特徴点における座標情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム、である。また、上記のプログラムにおける特徴点認識ステップは、座標情報と筆圧情報と時間情報のうちの一以上の情報に基づいて特徴点を認識しても良い。
【0156】
さらに、手書きデータを出力するためのプログラムは、以下のようになる。つまり、コンピュータに、データの出力指示を受け付けるデータ出力指示受付ステップと、データの出力指示を受け付けた場合に、格納されている座標情報と筆圧情報または/および時間情報を含む特徴点情報と特徴点識別情報を有する2以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム、である。
【発明の効果】
以上のように、本発明によれば、手書きデータを取得する場合に、手書きの過程でのペンの動きに関する情報を取得できる。
【図面の簡単な説明】
【図1】実施の形態1における手書きデータ取得装置のブロック図
【図2】実施の形態1における座標情報取得部の一実現例を説明する図
【図3】実施の形態1における手書きデータ取得装置の動作を説明するフローチャート
【図4】実施の形態1における手書きデータ取得装置の具体例を示す図
【図5】実施の形態1における記録情報の例を示す図
【図6】実施の形態1における記録情報の出力例を示す図
【図7】実施の形態1における手書きデータ取得装置の具体例を示す図
【図8】実施の形態2における手書きデータ取得装置のブロック図
【図9】実施の形態2における手書きデータ取得装置の動作を説明するフローチャート
【図10】実施の形態2における取得された筆圧情報、座標情報、時間情報の例示す図
【図11】実施の形態2における入力されたデータの例を示す図
【図12】実施の形態2における記録情報の例を示す図
【図13】実施の形態3における手書きデータ取得装置のブロック図
【図14】実施の形態3における手書きデータ取得装置の動作を説明するフローチャート
【図15】実施の形態3における特徴点を認識する動作を説明するフローチャート
【図16】実施の形態3における特徴点を認識する動作を説明するフローチャート
【図17】実施の形態3における特徴点を認識する動作を説明するフローチャート
【図18】実施の形態3における特徴点を認識する動作を説明するフローチャート
【図19】実施の形態3における特徴点を認識する動作を説明するフローチャート
【図20】実施の形態3における特徴点を認識する動作を説明するフローチャート
【図21】実施の形態3における特徴点を認識する動作を説明するフローチャート
【図22】従来技術の欠点を示す図
【符号の説明】
101 座標情報取得部
102 筆圧情報取得部
103、802、1302 手書きデータ記録部
104 入力受付部
105 手書きデータ出力部
801 時間情報取得部
1301 特徴点認識部

Claims (14)

  1. 手書きデータを取得して記録するプログラムであって、
    コンピュータに、
    平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、
    前記座標情報取得ステップにおいて座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得ステップと、
    前記座標情報と前記筆圧情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム。
  2. 前記座標情報取得ステップにおいて座標情報を取得したときの時間に関する情報である時間情報を取得する時間情報取得ステップをさらに具備し、
    前記手書きデータ記録ステップは、前記座標情報と前記筆圧情報と前記時間情報を対応付けて記録する請求項1記載のプログラム。
  3. 手書きデータを取得して記録するプログラムであって、
    コンピュータに、
    平面上の座標位置を示す情報である座標情報を取得する座標情報取得ステップと、
    前記座標情報取得ステップで取得した二以上の座標情報に基づいて、二種類以上の特徴点を認識する特徴点認識ステップと、
    前記特徴点認識ステップで認識した二種類以上の特徴点を識別する特徴点識別情報と、前記特徴点における座標情報を対応付けて記録する手書きデータ記録ステップを実行させるためのプログラム。
  4. 前記座標情報と前記筆圧情報と前記時間情報の1以上の情報に基づいて、二種類以上の特徴点を認識する特徴点認識ステップをさらに具備し、前記手書きデータ記録ステップは、前記特徴点における座標情報と前記筆圧情報と前記時間情報のうちの一以上の情報と、前記特徴点認識ステップで認識した二種類以上の特徴点を識別する特徴点識別情報を対応付けて記録する請求項1または請求項2いずれか記載のプログラム。
  5. 前記手書きデータ記録ステップにおいて記録する情報は、前記特徴点における座標情報(x,y)と筆圧情報(z)と時間情報(t)を有する特徴点情報(x,y,z,t)と、特徴点識別情報を有し、
    前記特徴点認識ステップは、
    a)筆圧が一定時間以上かからない状態(これを筆圧情報z=0とする)ののち筆圧がかかり始めた第一点と、
    b)zがノンゼロの状態でxまたはyの変化の累積がある一定値を超えた第二点と、
    c)zがノンゼロ状態でx,y,zの値の変化がある小さな値以下の状態が一定時間以上続いた第三点と、
    d)x/yまたはy/xが小さな変化の範囲内の一定値からはみ出た第四点と、
    e)zがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復した際のゼロになった第五点と、
    f)zがノンゼロからゼロとなり小さなある値以下の時間内にノンゼロに復した際のノンゼロに復した第六点と、
    g)zがゼロになり一定時間以上ゼロが継続したときzがゼロになった第七点を認識する請求項4記載のプログラム。
  6. 平面上の座標位置を示す情報である座標情報を取得する座標情報取得部と、
    前記座標情報取得部が座標情報を取得した時の筆圧に関する情報である筆圧情報を取得する筆圧情報取得部と、
    前記座標情報と前記筆圧情報を対応付けて記録する手書きデータ記録部を具備する手書きデータ記録装置。
  7. 前記座標情報取得部が座標情報を取得したときの時間に関する情報である時間情報を取得する時間情報取得部をさらに具備し、
    前記手書きデータ記録部は、前記座標情報と前記筆圧情報と前記時間情報を対応付けて記録する請求項6記載の手書きデータ記録装置。
  8. 平面上の座標位置を示す情報である座標情報を取得する座標情報取得部と、
    前記座標情報取得部が取得した二以上の座標情報に基づいて、二種類以上の特徴点を認識する特徴点認識部と、
    前記特徴点認識部が認識した二種類以上の特徴点を識別する特徴点識別情報と、前記特徴点における座標情報を対応付けて記録する手書きデータ記録部を具備する手書きデータ記録装置。
  9. 座標情報と前記筆圧情報と前記時間情報の1以上の情報に基づいて、二種類以上の特徴点を認識する特徴点認識部をさらに具備し、
    前記手書きデータ記録部は、前記特徴点における座標情報と前記筆圧情報と前記時間情報のうちの一以上の情報と、前記特徴点認識部が認識した二種類以上の特徴点を識別する特徴点識別情報を対応付けて記録する請求項6から請求項8いずれか記載の手書きデータ記録装置。
  10. 座標情報と筆圧情報を有する2以上の記録情報を格納しており、当該2以上の記録情報を読み出して出力する手書きデータ出力装置。
  11. 座標情報を含む特徴点情報と、特徴点識別情報を有する2以上の記録情報を格納しており、当該2以上の記録情報を読み出して出力する手書きデータ出力装置。
  12. 前記特徴点情報は、筆圧情報または/および時間情報をも含む請求項11記載の手書きデータ出力装置。
  13. コンピュータに、
    データの出力指示を受け付けるデータ出力指示受付ステップと、
    前記データの出力指示を受け付けた場合に、格納されている座標情報と、筆圧情報または/および時間情報を有する2以上の記録情報を読み出して出力する記録情報出力ステップを実行させるためのプログラム。
  14. 前記記録情報が特徴点識別情報と座標情報を有する特徴点情報を有する請求項13記載のプログラム。
JP2002215907A 2002-07-24 2002-07-24 手書きデータ記録装置および手書きデータ出力装置 Pending JP2004062251A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002215907A JP2004062251A (ja) 2002-07-24 2002-07-24 手書きデータ記録装置および手書きデータ出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002215907A JP2004062251A (ja) 2002-07-24 2002-07-24 手書きデータ記録装置および手書きデータ出力装置

Publications (1)

Publication Number Publication Date
JP2004062251A true JP2004062251A (ja) 2004-02-26

Family

ID=31937804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002215907A Pending JP2004062251A (ja) 2002-07-24 2002-07-24 手書きデータ記録装置および手書きデータ出力装置

Country Status (1)

Country Link
JP (1) JP2004062251A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334420A (ja) * 2006-06-12 2007-12-27 Dainippon Printing Co Ltd 処理装置及びプログラム
JP2008027020A (ja) * 2006-07-19 2008-02-07 Hitachi Ltd 筆記用具及び照合システム
JP2008523495A (ja) * 2004-12-13 2008-07-03 フィンガー システム インコーポレイテッド 絶対座標認識システムおよび方法
JP2011227580A (ja) * 2010-04-15 2011-11-10 Panasonic Corp 手書き入力装置、手書き入力方法、及び手書き入力プログラム
CN103677601A (zh) * 2012-09-10 2014-03-26 联想(北京)有限公司 信息处理设备和信息处理方法
WO2014188635A1 (ja) * 2013-05-20 2014-11-27 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
KR20150126185A (ko) * 2014-05-02 2015-11-11 엘지이노텍 주식회사 병렬식 데이터 처리 기능이 가능한 터치펜 입력처리 장치

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008523495A (ja) * 2004-12-13 2008-07-03 フィンガー システム インコーポレイテッド 絶対座標認識システムおよび方法
JP4729048B2 (ja) * 2004-12-13 2011-07-20 フィンガー システム インコーポレイテッド パターン記録媒体、絶対座標認識方法、記憶媒体および絶対座標認識システム
US8270775B2 (en) 2004-12-13 2012-09-18 Finger System, Inc. System and method of detecting absolute coordinates
JP2007334420A (ja) * 2006-06-12 2007-12-27 Dainippon Printing Co Ltd 処理装置及びプログラム
JP2008027020A (ja) * 2006-07-19 2008-02-07 Hitachi Ltd 筆記用具及び照合システム
JP2011227580A (ja) * 2010-04-15 2011-11-10 Panasonic Corp 手書き入力装置、手書き入力方法、及び手書き入力プログラム
CN103677601A (zh) * 2012-09-10 2014-03-26 联想(北京)有限公司 信息处理设备和信息处理方法
US9886107B2 (en) 2013-05-20 2018-02-06 Sony Corporation Information processing apparatus, information processing method, and program
CN105210014A (zh) * 2013-05-20 2015-12-30 索尼公司 信息处理装置、信息处理方法和程序
KR20160013009A (ko) * 2013-05-20 2016-02-03 소니 주식회사 정보 처리 장치, 정보 처리 방법 및 프로그램
JPWO2014188635A1 (ja) * 2013-05-20 2017-02-23 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
WO2014188635A1 (ja) * 2013-05-20 2014-11-27 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
TWI626569B (zh) * 2013-05-20 2018-06-11 Sony Corp Information processing device, information processing method and program
KR102212846B1 (ko) * 2013-05-20 2021-02-05 소니 주식회사 정보 처리 장치, 정보 처리 방법 및 기록 매체
KR20150126185A (ko) * 2014-05-02 2015-11-11 엘지이노텍 주식회사 병렬식 데이터 처리 기능이 가능한 터치펜 입력처리 장치
KR102193796B1 (ko) * 2014-05-02 2020-12-22 엘지이노텍 주식회사 병렬식 데이터 처리 기능이 가능한 터치펜 입력처리 장치

Similar Documents

Publication Publication Date Title
US20210200935A1 (en) Method of processing analog data and electronic device thereof
CN101317148B (zh) 基于视频的手写输入方法和装置
US8073649B2 (en) Portable electronic apparatus, operation control method, operation control program, signal generation apparatus and signal generation method
JP5255773B2 (ja) 教育支援システム、情報処理装置、およびプログラム
US20020056576A1 (en) Method, system and product for information management
WO2009145024A1 (ja) 入力検出装置、入力検出方法、プログラムおよび記録媒体
KR20070114795A (ko) 시각 패스워드 방식을 이용하기 위한 시스템 및 방법
CN103733172A (zh) 用于文本选择/光标放置的自动缩放
CN103218595A (zh) 一种终端及二维码的识别方法
WO2022016654A1 (zh) 点阵书写内容的记录方法、装置及电子设备
TW201017557A (en) Video based handwritten character input device and method thereof
JP2004062251A (ja) 手書きデータ記録装置および手書きデータ出力装置
KR20090111913A (ko) 모션 검출 방법 및 장치
US20040017940A1 (en) Document information input apparatus, document information input method, document information input program and recording medium
JP5084087B2 (ja) 手書きコマンド
CN106845190B (zh) 显示控制系统及方法
CN110069148B (zh) 手写笔笔迹偏移补偿方法、手写笔、存储介质及装置
CN108446067B (zh) 触控显示终端及其虚拟按键位置调整方法和存储介质
JP4247190B2 (ja) 二次元コード認識装置とそのプログラム
JP7036966B2 (ja) 方法、コンピュータ、及びプログラム
CN112068748A (zh) 基于点阵的音频信息处理方法
JP6872123B2 (ja) 画像処理装置、及びプログラム
JP6124594B2 (ja) 電力系統監視制御装置およびその制御プログラム
CN112163103A (zh) 搜索目标内容的方法、装置、电子设备及存储介质
JP7095703B2 (ja) 録音装置、録音制御プログラムおよび録画装置