説明

手書き入力方法、手書き入力プログラムおよび手書き入力装置

【課題】利用者による手書き入力時に領域および属性の設定を簡単に行うことができること。
【解決手段】手書きされたストロークを検出するストローク検出部201と、ストローク検出部201により検出されたストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であればこのストロークを同じブロックに含ませ、ブロックの範囲を広げていく入力ブロック判断部211と、この入力ブロック判断部211により判断されたブロックに含まれるストロークを文字入力の条件と比較して、所定の条件を満たせばこのブロックを文字列と判断し、それ以外は文字列以外と判断し、属性を付与する属性判断部213と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、手書き入力されたストロークによりブロックを認識する手書き入力装置に関し、特に、文字単位で手書き入力されたストロークの集合をブロック化する手書き入力方法、手書き入力プログラムおよび手書き入力装置に関する。
【背景技術】
【0002】
従来、文字や図形等を手書き入力する手書き入力装置があり、特にPDA等の携帯端末においてペンを用いて手軽にメモを作成できるようになっている。このような手書き入力装置においては、手書きによるストロークを領域別に文字属性、図形属性を付与することにより、後に領域別のデータ編集が可能となっている。例えば、文字属性の領域に対し文字認識を実行することにより、文書データ化できる。
【0003】
このような手書き入力における領域別の属性判断技術としては、入力された後のデータに対し、文字(文字列)、図、写真等、領域分離を行い、フラグ(属性)を付与する技術がある(例えば、下記特許文献1参照。)。また、手書き入力されたブロックの切れ目までを一つのブロックにおける文字属性として設定し、各ブロックに対し、操作者が文字であるか図形であるかを操作して属性を付与する技術がある(例えば、下記特許文献2参照。)。この技術では、さらに操作者による範囲指定の操作入力があったとき、その範囲を別ブロックとする点についても記載されている。
【0004】
【特許文献1】特開平5−303619号公報
【特許文献2】特開平8−263682号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の技術では、操作者が領域分離の境界を書き込むことで行うため、操作が面倒となる問題があった。また、領域分離を自動で行う点についても記載されているが、利用者が手書き入力を終了した後に領域分離を行うため、自動で行った領域分離が誤っていると結局操作者による領域分離の指定操作が必要となった。また、特許文献2の技術についても、文字や図形等がある場合、操作者の操作による属性の設定が必要となる点で同様の問題があった。
【0006】
また、手書きされた文字を1文字ごとにパターンマッチングする等により、文字であるか否かを認識する構成となっており、装置に対し文字認識の処理負担がかかるとともに、手書きの文字は人それぞれであるため、マッチングの精度向上を図ることができず、付与する属性の精度を向上できなかった。
【0007】
この発明は、上述した従来技術による問題点を解消するため、利用者による手書き入力時に領域および属性の設定を簡単に行うことができる手書き入力方法、手書き入力プログラムおよび手書き入力装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するため、この発明にかかる手書き入力方法は、手書きされたストロークを検出する検出工程と、前記検出工程により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断工程と、前記ブロック判断工程により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断工程と、を含むことを特徴とする。
【0009】
この発明によれば、手書きされたストロークがあれば、このストロークの入力範囲に基づいてブロックに含まれるか否かだけを判断し、ブロックの範囲を広げていくので、ブロック範囲の設定を簡単な処理で行えるようになる。また、文字に特有の条件を満たせば文字列のブロックの属性を付与し、それ以外は文字列以外と判断するため、ブロックの属性付与についても簡単な処理で行える。
【0010】
また、前記検出工程により検出された前記ストロークの範囲が既に入力されたストロークの入力範囲と比較した結果、所定の範囲外であれば当該ストロークを新たなブロックと判断し、新たなブロックに対して前記ブロック判断工程によるブロック判断を継続させるブロック設定工程を含むことを特徴とする。
【0011】
この発明によれば、異なるブロックとして意識して手書きしたブロックについて、簡単な処理で新たなブロックと判断することができる。特に、異なる行を異なるブロックとして、文字列の内容を分けたい場合に有効である。
【0012】
また、前記ブロック判断工程は、前記検出工程により検出された前記ストロークの位置および大きさを既に入力されたストロークの位置および大きさと比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませることを特徴とする。
【0013】
この発明によれば、ストロークが入力された位置と大きさだけでブロックに含ませるか否かを判断するため、1文字単位等での内容解析は不要であり、簡単な処理でブロック判断が行え、ブロックを広げていくことができる。
【0014】
また、前記ブロック判断工程は、入力済みのブロックの行に対し、異なる行となるストロークであっても、入力済みのブロックの行の開始位置に対し所定の範囲内のストロークの開始であれば、当該入力済みのブロックと同じブロックであると判断することを特徴とする。
【0015】
この発明によれば、異なる行として手書きした場合でも開始位置が前の行とほぼ同じ開始位置の場合には、同じブロックと判断し、ブロックの分割を防ぐことができる。
【0016】
また、前記属性判断工程は、予め設定された文字の大きさを基準として前記ストロークが文字列であるか判断することを特徴とする。
【0017】
この発明によれば、予め設定された文字の大きさに基づく大きさの比較で簡単に文字であるか否かを判断できる。
【0018】
また、前記属性判断工程は、前記ストロークの縦横の比率が大きく異なる場合、当該ストロークは文字以外と判断することを特徴とする。
【0019】
この発明によれば、文字を想定した縦横の比率を検出するだけで簡単に文字以外であると判断できる。
【0020】
また、前記属性判断工程は、複数のストローク間が短くても全体のストロークが前記文字の大きさを超える場合には、文字以外と判断することを特徴とする。
【0021】
この発明によれば、複数のストローク間が短い点線等の場合、全体のストロークの長さが文字を想定した大きさを超えたかを検出するだけで簡単に文字以外と判断できる。
【0022】
また、前記属性判断工程により前記文字列のブロックと判断されたブロックの大きさに基づき、以降に入力されるストロークに対して基準となる文字の大きさを変更する学習工程を含むことを特徴とする。
【0023】
この発明によれば、使用者個人ごとに、あるいは同一の使用者であっても使用ごとに文字の大きさが変わった場合の経時的な使用に対応できるようになる。
【0024】
また、この発明にかかる手書き入力プログラムによれば、上記の手書き入力方法をコンピュータに実行させることができる。
【0025】
また、この発明にかかる手書き入力装置は、手書きされたストロークを検出する検出手段と、前記検出手段により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断手段と、前記ブロック判断手段により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断手段と、を備えたことを特徴とする。
【0026】
この発明によれば、手書きされたストロークがあれば、このストロークの入力範囲に基づいてブロックに含まれるか否かだけを判断し、ブロックの範囲を広げていくので、ブロック範囲の設定を簡単な処理で行えるようになる。また、文字に特有の条件を満たせば文字列のブロックの属性を付与し、それ以外は文字列以外と判断するため、ブロックの属性付与についても簡単な処理で行える。
【発明の効果】
【0027】
本発明によれば、手書きされるストロークの領域と属性の設定を簡単に行うことができ、特に、連続して行われる手書き時に同時に処理していくことができるという効果を奏する。
【発明を実施するための最良の形態】
【0028】
以下に添付図面を参照して、この発明にかかる手書き入力方法、手書き入力プログラムおよび手書き入力装置の好適な実施の形態を詳細に説明する。
【0029】
(手書き入力装置のハードウェア構成)
まず、この発明の実施の形態にかかる手書き入力装置のハードウェア構成について説明する。図1は、本実施の形態にかかる手書き入力装置のハードウェア構成を示すブロック図である。図1のように、手書き入力装置100は、CPU101と、ROM102と、RAM103と、HDD(ハードディスクドライブ)104と、HD(ハードディスク)105と、FDD(フレキシブルディスクドライブ)106と、FD(フレキシブルディスク)107と、CD−RWD(CD−RWドライブ)108と、CD−RW109と、ディスプレイ110と、キーボード111と、ストローク入力部112と、ネットワークI/F113とを含んで構成されている。なお、上記の各構成101〜113は、それぞれバス120に接続されている。また、ネットワークI/F(インターフェース)113には、NET(ネットワーク)に接続するための通信ケーブル114が備えられている。
【0030】
上述のような構成の手書き入力装置100において、CPU101は、手書き入力装置100全体を制御する。また、ROM102は、本発明にかかる手書き入力プログラムを記憶している。ROM102に記憶されたCPU101からの制御に応じて読み出され実行される。また、RAM103は、CPU101のワークエリアとして使用される。
【0031】
HDD104は、CPU101の制御にしたがってHD105に対するデータのリード/ライトを制御する。HD105は、HDD104の制御にしたがって書き込まれたデータを記憶する記憶媒体である。また、HD105に記憶されたデータは、HDD104の制御に応じて適宜読み出される。
【0032】
FDD106は、CPU101の制御にしたがってFD107に対するデータのリード/ライトを制御する。FD107は、FDD106の制御にしたがって書き込まれたデータを記憶する着脱自在の記憶媒体である。また、FD107に記憶されたデータは、FDD106の制御に応じて適宜読み出される。
【0033】
CD−RWD108は、CPU101の制御にしたがってCD−RW109に対するデータのリード/ライトを制御する。CD−RW109は、CD−RWD108の制御にしたがって書き込まれたデータを記憶する着脱自在な記憶媒体である。また、CD−RW109に記憶されたデータは、CD−RWD108の制御に応じて適宜読み出される。
【0034】
ディスプレイ110は、CPU101の制御によって、カーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示する。また、キーボード111は、文字、数値、各種指示などの入力のための複数のキーを備えた入力ディバイスであり、ストローク入力部112は、手書き入力時に指やペンによりストロークの入力を受けるタッチパネルが用いられる。このストローク入力部112は、ディスプレイ110と、ディスプレイ110上に設けられる透明なタッチパネルで構成されたタブレットを用いることができる。
【0035】
ネットワークI/F113は、通信ケーブル114を介してLANやWANなどのネットワークに接続され、当該ネットワークとCPU101とのインターフェースとして機能する。
【0036】
本実施の形態にかかる手書き入力装置100は、上述したようなハードウェアを備えており、CPU101の制御によりROM102に記憶された手書き入力プログラムを実行することにより、手書き入力が行える。
【0037】
(手書き入力装置の機能的構成)
次に、手書き入力装置100の機能的構成について説明する。図2は、本実施の形態にかかる手書き入力装置の機能的構成を示すブロック図である。この図には、本発明の主要な構成である手書き入力時の属性判断の構成についてのみ記載してある。図2に示す手書き入力装置100は、ストローク検出部201と、処理部202と、格納部203とを備えている。
【0038】
ストローク検出部201は、ストローク入力部112上で入力された手書きのストロークが入力される。手書きの文字は、始点からはじまり終点まで連続した一つのストロークが、1文字あたり一つあるいは複数入力される。
【0039】
処理部202は、入力ブロック判断部211と、入力ブロック設定部212と、属性判断部213からなる。入力ブロック判断部211にはストローク検出部201によって検出されたストロークが入力され、入力された新規のストロークが現在のブロックに追加されるか否かを判断する。
【0040】
入力ブロック設定部212は、入力ブロック判断部211によって判断されたブロックを設定する。すなわち、新規のストロークデータが現在のブロックへの追加であるか、あるいは、新規のブロックであるかを設定する。
【0041】
属性判断部213は、現在のブロックに入力されているストロークデータが文字であるか否か(図形)を判断する。現在のブロックが文字である場合には、現在のブロックに文字の属性を付与して格納部203に格納する。また、現在のブロックが文字以外である場合には、現在のブロックに図形の属性を付与して格納部203に格納する。この属性判断については、後述するが、手書き開始時のストロークデータを一つの文字単位で判断していき、最初のストロークデータが文字であれば、属性が「文字」のブロックであると判断し、以降のストロークデータについては、同じ「文字(文字列)」であるか否かを判断する。
【0042】
(手書き入力されたストロークの属性判断、ブロック判断について)
手書きの文字は、始点からはじまり終点まで連続した一つのストロークが、1文字あたり一つあるいは複数入力されてなる。1文字は縦横(座標上のx,y)に所定の大きさ(領域)を有している。文字の大きさは個人ごとに差があるが、文字であれば所定の範囲内に収まるものとする。
【0043】
処理部202は、以下の判断処理を行う。手書き入力されたストロークデータを「文字」または「文字以外(図形)」のブロックごとに判断する。具体的には、文字入力の条件が予め設定されており、この条件を逸脱しなければ「文字」であると判断する。例えば、入力された一文字のサイズ(長さおよび高さ)が予め設定されていた大きさ以内であれば「文字」の一部であると判断し、入力された文字のサイズが予め設定されていた大きさを大きく超えるものは「文字以外」と判断する。
【0044】
文字の大きさは予め推定されるサイズが保持されている。また、操作者ごとに予め入力させ、この際のサイズを保持しておいてもよい。さらには、操作者ごとの過去の入力情報から推測してもよい。加えて、操作者が特定できる状態であれば、操作者の文字の大きさに相当するガイドラインをディスプレイ110に表示させてもよい。
【0045】
したがって、文字の倍以上の大きさで描かれた矩形、文字の倍以上の長さの任意方向への線については、「文字以外(図形)」と判断する。また、ストローク間が短い場合は一連の入力であるとし、一連の入力全体の大きさが文字のサイズを大きく超えるものは「文字以外(図形)」と判断する。例えば、点線、一点鎖線、二点鎖線等がこれに相当する。
【0046】
さらに、ストロークデータの縦横の比率が1.0から大きく外れる場合は「文字以外」と判断する。例えば、上下のブロックをまとめるような記号「{」、ブロック間をリンクするための矢印の元となる波線、は「文字以外」と判断する。
【0047】
上記処理によれば、次々に入力されるストロークデータが示している「文字」による複数の文字のまとまりを、連続した線の情報を詳細に解析せずとも、位置および大きさを用いて以前の入力と比較するだけで簡単に判断できる。この際、判断基準となる文字の大きさを計算し、その大きさから逸脱しない限り、「文字」を入力し続けていると判断する。判断基準となる文字の大きさは、上述した固定のサイズであってもよいし、入力ブロック判断部211によって「文字」であると判断された1文字目を基準として、次以降に入力される文字の大きさに基づき判断してもよい。
【0048】
また、入力された文字が、文字の大きさ程度下にずれて入力され、かつ、入力していた「文字」の先頭付近から改めて入力を開始されている場合には、一つの「文字」の続きを次の行として入力していると判断する。この場合、上下が同じ「文字」のブロックであると判断する。
【0049】
また、入力している行(縦位置)から異なる位置で、かつ、文字の大きさ以上の間隔を有して入力されたストロークがあれば、異なるブロックの入力開始と判断する。これにより、異なるブロックとして意識して手書きしたブロックについては、簡単な処理で新たなブロックと判断することができる。特に、異なる行を異なるブロックとして、文字列の内容を分けることができるようになる。また、開始位置(横位置)が文字(文字列)の行の先頭の位置から大きくずれている(例えば文字の大きさ以上のずれ)の場合には、「文字以外」と判断する。
【0050】
上記構成により、処理部202は入力されたストロークデータが「文字」であるものに対し、「文字」のブロック範囲を設定し、格納部203に格納する。これにより、手書きされたストロークのデータのうち、「文字」のブロックに対し文字の属性が付与されて格納部203に格納されていく。
【0051】
(ブロックに対する属性付与の状態確認について)
上記構成により、文字あるいは図形のブロックが判断される。この際、文字のブロックと図形のブロックとが異なる背景色にする。また、ブロックを示す囲み線の色を変更してもよい。このほか、文字のブロックは特定の背景色とし、図形のブロックは囲み線としてもよい。これらにより、操作者は、ブロックが文字、図形のいずれとして判断されているかを容易に確認できるようになる。
【0052】
(ブロックに対する属性付与後の修正について)
ブロックに対する属性付与後には、操作者の操作により、ブロックの属性を変更することができる。操作者の意図に反して、文字のブロックが図形のブロックと誤って判断された場合、逆に図形ブロックが文字ブロックと判断された場合には、ブロックを指定して属性を他に変更することができる。例えば、ブロックをペンでタッチ(タップ)操作することにより、変更することができる。このタップ以外に、ダブルタップ(連続してタップ)により切り替えたり、情報選択後に他の独立した切替ボタンを押す構成としてもよい。
【0053】
(ブロック自体の修正について)
さらに、既存のブロックに対する修正、追記、分割が行える。ブロックが認識された後において、ブロック全体に対する大きなストロークを入力した際には、文字や図形の入力ではないと判断し、ブロックに対する分割、合成、追記を行うことができる。ブロック自体の大きさを修正する場合には、例えばブロック間を分断するように、右端から左端までの間でいっぱいの横線を引くことにより、ブロックを強制的に分割することができる。
【0054】
また、複数のブロック同士を囲む操作により、複数のブロックを一つにまとめることができる。また、隣接するブロック、例えば縦に隣接するブロックの上のブロックの下端と下のブロックの上端にまたがった大きな消去の指示「×」を書くことにより、上下のブロックを一つにまとめることができる。また、ブロックをダブルタップ(ペンで2回叩く)することでブロックへの追記モードに移行することができる。上記のようなストロークによるブロック修正に限らず、修正キーを操作することにより、ブロック修正用モードに移行する構成にもできる。
【0055】
(ブロック間の関連付けについて)
異なるブロック間を引き出し線や矢印線等で結ぶ操作を行うことにより、結ばれたブロック間のデータを互いに関連付けすることができる。この際、ブロック間における従属関係、並列関係、参照等の付加情報を加えることができる。例えばある文字のブロックに対する注釈のブロックがあれば、これらのブロックを線で結ぶことにより、文字のブロックと注釈のブロックとが関連付けられる。また、文字のブロックに対して注釈のブロックの内容が注釈である属性が付与される。
【0056】
この際、関連付けに用いる図形の形状(ブロックの形)ごとに予め対応する属性を設定することができる。また、ある形状の図形の入力により関連付けを行った後、その図形のブロックに属性を意味する文字等を設定する構成としてもよい。これらの場合、特定の図形であるかどうか図形の形状の判断が必要となる。この判断を簡略化するためには、ストロークデータを大まかに(細部まで見ないで概要の形状だけで)判断すればよい。この場合、特定の図形以外は通常の文書入力用のストロークデータと判断する。
【0057】
(入力情報のグルーピングについて)
入力済みの複数のブロックの先頭あるいは末尾に囲み図形、例えば「{」、「}」等を入力することで、複数のブロックを同じグループにグループ化することができる。この際、属性が異なる文字のブロックと図形のブロックを同じグループにグループ化することもでき、複数のブロック間のグループ化についての並列情報や従属情報を属性として付与することができる。
【0058】
また、複数のブロック同士を大きく囲むストロークにより、複数のブロックを同じグループにグループ化することもできる。さらには、ブロックに対する操作を行うことにより、例えば、複数のブロックを囲む一つのグループのブロックを作成することもできる。
【0059】
また、このようなブロックに対する囲みの操作だけではなく、参照付けを続けて入力することにより、参照の属性を付与することもできる。例えば、箇条書きを意味する行頭の「・」や、「→」等を入力すると、それまでの入力に対する従属情報を属性として付与することができる。この場合、「・」や、「→」等のストロークの内容については、ストローク入力ではないと判断するために、特定の「・」や、「→」等のストロークをパターン判別等で装置が内容識別する。
【0060】
また、既にグループ化されたブロックに対して、解除する操作を行うことで、自動判別されたグループを解除することもできる。例えば、グループ化された領域全体に大きく×を描く、といった操作でグループ化を解除することができる。
【0061】
(学習について)
ブロックの大きさや、ブロックの属性の操作による変更を学習することにより、判断ミスを少なくするための情報を蓄積することができる。このような自動的な学習だけではなく、判断結果を切り替える際に強制的に重みを変えて利用者の入力癖に合わせていくことも考えられる。また、予め、利用者毎に特定の操作は行わない構成としたり、操作の内容に予め優先順位を付けておくこともでき、これらにより利用者別に最初からカスタマイズしておくこともできる。ブロックへの修正等についても同様に変更した操作を学習する構成とすれば、利用者の癖を蓄積していくことができ、ブロックの判別等に用いることができるようになる。
【0062】
利用者は、この装置を使用し始めるときに、予め文字を手書きして基準となる文字の大きさを利用者毎に登録することができる。また、経時的な使用により、使用を重ねる経過で文字の大きさが大きくなっていったり、小さくなっていく場合がある。このような経時的使用に対応するために、判断後における文字のブロックの大きさ(縦の長さ)を毎回記憶しておき、次回の使用時にこの縦の長さを基準として文字の大きさを判断する構成としてもよい。また、最近の複数回分のブロックの大きさ(縦の長さ)の平均を用いてもよい。これにより、経時的な使用で文字の大きさが変化しても基準となる文字の大きさ自体を変更できるため、誤判断を低減できるようになる。
【0063】
(手書き入力装置の処理内容)
次に、手書き入力時における属性判断の処理内容について説明する。図3は、手書き入力装置による属性判断処理を示すフローチャートである。以下の処理は、図1に示したCPU101が手書き入力処理のプログラムを実行することにより得られるものであり、図2に示した処理部202による処理内容を示している。
【0064】
初めに、ストローク以外の入力があったか判断する(ステップS301)。ストローク検出部201以外の不図示のスイッチからの入力があった場合には(ステップS301:Yes)、ストロークデータに関する各種処理を終了する。このスイッチとは、手書き状態をon/off操作するスイッチや、手書き後の編集スイッチなどがある。このような独立したスイッチを設けるに限らず、ストローク検出部201を構成するタッチパネルを用いてもよい。この場合、既に設定されているブロックの外側で新たなブロックの範囲の設定を手書きしたり、一つのブロックの内側にこのブロックを分割する設定を手書きすることができる。このほか、ストローク以外のタッチ(タップ)等の操作や、ストローク入力用の領域以外に配置したスイッチ領域に対するタッチ操作があったときストローク以外の入力であると判断することもできる。
【0065】
ストローク検出部201によるストローク入力の場合には(ステップS301:No)、以下に説明する入力中のストロークデータに対する属性判断等の処理を実行する。まず、ストローク検出部201は、手書き入力されたストロークデータを検出する(ステップS302)。具体的には一つのストロークデータごとに入力の開始位置と終了位置およびこれらの間の軌跡の座標データが検出される。
【0066】
次に、このストロークデータが現在入力中のブロック内への入力であるか判断する(ステップS303)。この際、上述したように、入力済みのストロークデータの入力位置に対して新たに入力されたストロークデータの位置等に基づいてこの入力されているストロークデータが同一ブロックであるか否かを判断する。判断の結果、現在入力中のブロックと同じブロックの場合には(ステップS303:Yes)、入力されているストロークデータを現在のブロックに追加し(ステップS304)、ステップS301に戻り次の入力を待つ。一方、現在入力中のブロックと異なるブロックと判断された場合には(ステップS303:No)、ステップS305以下の処理を実行する。
【0067】
まず、新規にブロックを作成し、入力されたストロークデータをこの新規なブロックに追加する。そして、この新規ブロックを入力中のブロックとして登録する(ステップS305)。これにより、以降に入力されるストロークデータは、この新規ブロックに対する追加が判断される。
【0068】
次に、入力されたストロークデータが文字入力としての条件を逸脱していないか判断する(ステップS306)。属性判断部213は、上述したような文字入力であるかを1文字ごとの大きさ、比率等に基づき判断する。判断の結果、文字入力と判断された場合には(ステップS306:Yes)、この新規ブロックが文字ブロックであると判断し、この文字ブロックに対するストロークデータの入力(追加)を継続する(ステップS307)。すなわち、ステップS301に移行し、新たなストロークデータの入力を待つ。
【0069】
一方、文字入力としての条件を逸脱したストロークデータの場合には(ステップS306:No)、現在のブロックに対する操作のためのストロークデータであるか判断する(ステップS308)。ブロックに対する操作ではないと判断されたときには(ステップS308:No)、この新規ブロックを「文字以外」すなわち「図形」ブロックと判断し、この図形ブロックに対するストロークデータの入力(追加)を継続する(ステップS309)。すなわち、ステップS301に移行して、新たなストロークデータの入力を待つ。
【0070】
現在のブロックに対する操作のためのストロークデータの場合には(ステップS308:Yes)、入力されたストロークに対応したブロックへの操作を実行する(ステップS310)。例えば、既存のブロックに対するブロック分割等の操作がこれに該当する。この後、ステップS301に移行し、新たなストロークデータの入力を待つ。
【0071】
以上の処理により、手書き入力時にストロークデータが入力された都度、文字のブロックと図形のブロックとが判断され、判断後のブロックの属性が付与されたストロークデータを格納部203に順次格納していくことができる。
【0072】
(手書きによるストローク入力のイメージ)
次に、具体的に手書き入力時におけるストロークデータの入力状態を説明する。図4−1〜図4−6は、手書き入力によるブロックの大きさ変更の状態を示す図である。各状態において図2の構成および図3の処理に対応する説明を付記する。
【0073】
まず、図4−1に示すように、ある文字「み」401の一部を手書きしたとする。これにより、入力ブロック判断部211は、連続する一つのストロークデータ(1角目相当)を検出する(ステップS302)。そして、図4−2に示すように、新たなブロックを作成し、この文字「み」が新規ブロックを入力中のブロックBK1とされ(ステップS305)、格納部203に格納される。ブロックBK1は文字の外接矩形の大きさを有しており、この大きさが文字入力の条件を満たし(ステップS306:Yes)、文字の属性が付され文字ブロックとして入力が継続される(ステップS307)。この後、手書きが継続されて図4−3に示すように、文字「み」の2角目のストロークデータが検出される(ステップS302)。
【0074】
図4−3では、2角目のストロークデータがブロックBK1より外にはみ出している。しかし、入力ブロック判断部211は、文字の入力の条件のうち文字の大きさと位置が現在入力中のBK1に対する入力であると判断し(ステップS303:Yes)、現在のブロックBK1にデータを追加する(ステップS304)。また、ブロックBK1は図4−4に示すように、文字「み」全体の外接矩形の大きさに変更される。図4−3と比較して上下方向の大きさが大きくなるよう変更されている。
【0075】
図4−5に示すように、次の文字「む」の一部が手書きされたときにも、文字入力の条件のうち大きさと位置が現在入力中のブロックBK1に対する入力であると判断し(ステップS303:Yes)、現在のブロックBK1にデータを追加する(ステップS304)。対応して、ブロックBK1は図4−5に示すように、横方向の大きさが次第に大きくなるよう変更されている。この後、図4−6に示すように、直線上に横書きで手書き入力された文字「みむめも」については、同じブロックBK1であると判断され(ステップS303:Yes)、このブロックBK1に対してデータが追加されていく(ステップS304)。
【0076】
次に、複数のブロックの識別について説明する。図5−1〜図5−8は、手書き入力によるブロックの識別を示す図である。図5−1に示すブロックBK1については、「あいうえお」の文字列と、「かきくけこ」の文字列が上下2段であるが開始位置(横位置)がほぼ同じであり、文字の大きさもほぼ同じであるため、同一の文字のブロックBK1であると判断されている。そして、新たな手書きの文字「さ」502の一部の開始位置は、ブロックBK1から1文字以上離れた下方である。このため、図5−2に示すように、入力ブロック判断部211は、現在入力中のブロックBK1への入力ではないと判断する(ステップS303:No)。これにより、入力ブロック設定部212は、新たなブロックBK2を設定し、以後の入力はこのブロックBK2に対するものとする。
【0077】
次に、図5−3に示すように、ブロックBK2に対する文字「さしすせそ」の入力が継続されると、ブロックBK2は、入力ごとに横方向の大きさが大きくなるよう変更されていく。
【0078】
この後、図5−4に示すように、記号「{」503が手書きされたとする。この記号「{」503は、横の大きさに対し縦の大きさの比率が1.0を超えたものであり、属性判断部213は文字ではなく図形であると判断する(ステップS306:No)。また、入力ブロック判断部211は、手書きされた開始位置および終了位置が、ブロックBK1とBK2とをつなぐ位置であるため、図5−5に示すように、この記号「{」503は、新たなブロックBK3であると判断する。
【0079】
上記処理により、手書き入力と同時に、ブロックの属性が判断され、また、入力されたストロークが同一ブロックであるか否かが判断されるようになっている。この処理の後、複数のブロックをまとめる処理も行える。
【0080】
例えば、図5−6に示すように、記号「{」503は、文字のブロックBK1、BK2をつなぐ意味を有している。対応して、手書きにより、ブロックBK1、BK2を囲むブロックBK4がストロークデータで入力されたとする。このブロックBK4は、ブロックに対する操作のためのストロークデータと判断され(ステップS306:NoおよびステップS308)、ストロークに対応したブロックBK4への操作が実行される(ステップS310)。すなわち、ブロックBK4は、ブロックBK3が意味するブロックBK1、BK2が同一のブロックに属する属性が付与される。
【0081】
ところで、ブロックBK4は、ストローク入力により設定されるに限らず、自動設定することもできる。すなわち、記号「{」503のブロックBK3は、ブロックの範囲を自動設定する構成とすれば、この範囲に含まれるブロックBK1とBK2とが新たに含まれるブロックBK4を自動的に設定する構成にできる。
【0082】
また、一つのブロックを分割する処理が行える。例えば、図5−7に示すように、ブロックBK1は上下に2行の文字「あいうえお」と「かきくけこ」から構成されている。このブロックBK1内で上下の行を分割するストロークデータL1が入力されたとする。この場合、このストロークデータL1は、既にあるブロックBK1に対する分割操作のためのストロークデータと判断され(ステップS308:Yes)、ストロークに対応したブロックBK1の分割操作が実行される(ステップS310)。すなわち、図5−8に示すように、ブロックBK1の内部で上下に2行の文字「あいうえお」と「かきくけこ」との間が分割ラインL1で分割され、ブロックBK1をブロックBK11とブロックBK12とに2分割することができる。
【0083】
図6は、複数の属性を持つブロックの状態を示す図である。この図に示すようにブロックBK1〜BK7はそれぞれ属性を有している。ブロックBK1〜BK3は、それぞれ文字の属性を有してる。ブロックBK4は、文字のブロックBK1〜BK3をつなぐ記号であり、図形の属性を有している。ブロックBK5は、文字のブロックBK1〜BK3と、図形のブロックBK4とが同一のブロックに属する属性を有する。ブロックBK6、BK7については、文字の大きさや、入力の開始位置が、文字入力の条件から外れており、図形と判断される。
【0084】
上述した実施の形態では、ブロックの開始位置と終了位置を装置が判断する構成としたが、ブロックの開始および終了を操作者のボタン操作等で明示的に指定する構成にもできる。この場合、ブロックの開始が指定されてから終了が指定される迄の間は、全てのストロークを一つのブロックとして判断する。この際、文字の大きさや、各ストロークの間隔、入力位置に関わらずに一つのブロックとして判断する。また、ボタン操作で文字の入力モードと、文字以外(図形)入力モードを有していてもよい。
【0085】
また、上述の実施の形態では、文字については、1行を左から右の方向に手書きし、上から下の方向が異なる行として手書きしていくことを前提として説明した。このような横書きモードを初期設定としておく。本発明はこれに限らず、縦書きモードにも適用できる。縦書きの場合、文字は、1行を上から下の方向に手書きしていき、右から左の方向が異なる行とすればよい。縦書きモードは、スイッチ操作で切り替えればよい。また、携帯型機器のPDA等が、方向検出センサ(ジャイロセンサ等)を内蔵し、縦書きと横書きで異なる方向に向けることにより、自動的に横書きモードと縦書きモードとを切り替える構成にすることもできる。
【0086】
特に、PDA等の携帯型機器は小型化のための操作ボタン数が少なく、また、できるだけボタン操作せずに入力できることが好ましい。したがって、本発明はこのような携帯型機器であるPDA等に用いて効果的である。
【0087】
なお、本実施の形態で説明した手書き入力方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0088】
以上のように、本発明にかかる手書き入力方法、手書き入力プログラムおよび手書き入力装置は、文字や図形等を手書き入力するコンピュータ装置に適しており、特に、手書きでメモ入力するPDA等の携帯型機器に適している。
【図面の簡単な説明】
【0089】
【図1】本実施の形態にかかる手書き入力装置のハードウェア構成を示すブロック図である。
【図2】本実施の形態にかかる手書き入力装置の機能的構成を示すブロック図である。
【図3】手書き入力装置による属性判断処理を示すフローチャートである。
【図4−1】手書き入力によるブロックの大きさ変更の状態を示す図である(その1)。
【図4−2】手書き入力によるブロックの大きさ変更の状態を示す図である(その2)。
【図4−3】手書き入力によるブロックの大きさ変更の状態を示す図である(その3)。
【図4−4】手書き入力によるブロックの大きさ変更の状態を示す図である(その4)。
【図4−5】手書き入力によるブロックの大きさ変更の状態を示す図である(その5)。
【図4−6】手書き入力によるブロックの大きさ変更の状態を示す図である(その6)。
【図5−1】手書き入力によるブロックの識別を示す図である(その1)。
【図5−2】手書き入力によるブロックの識別を示す図である(その2)。
【図5−3】手書き入力によるブロックの識別を示す図である(その3)。
【図5−4】手書き入力によるブロックの識別を示す図である(その4)。
【図5−5】手書き入力によるブロックの識別を示す図である(その5)。
【図5−6】手書き入力によるブロックの識別を示す図である(その6)。
【図5−7】手書き入力によるブロックの識別を示す図である(その7)。
【図5−8】手書き入力によるブロックの識別を示す図である(その8)。
【図6】複数の属性を持つブロックの状態を示す図である。
【符号の説明】
【0090】
100 手書き入力装置
101 CPU
102 ROM
103 RAM
112 ストローク入力部
201 ストローク検出部
202 処理部
203 格納部
211 入力ブロック判断部
212 入力ブロック設定部
213 属性判断部

【特許請求の範囲】
【請求項1】
手書きされたストロークを検出する検出工程と、
前記検出工程により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断工程と、
前記ブロック判断工程により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断工程と、
を含むことを特徴とする手書き入力方法。
【請求項2】
前記検出工程により検出された前記ストロークの範囲が既に入力されたストロークの入力範囲と比較した結果、所定の範囲外であれば当該ストロークを新たなブロックと判断し、新たなブロックに対して前記ブロック判断工程によるブロック判断を継続させるブロック設定工程を含むことを特徴とする請求項1に記載の手書き入力方法。
【請求項3】
前記ブロック判断工程は、前記検出工程により検出された前記ストロークの位置および大きさを既に入力されたストロークの位置および大きさと比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませることを特徴とする請求項1または2に記載の手書き入力方法。
【請求項4】
前記ブロック判断工程は、入力済みのブロックの行に対し、異なる行となるストロークであっても、入力済みのブロックの行の開始位置に対し所定の範囲内のストロークの開始であれば、当該入力済みのブロックと同じブロックであると判断することを特徴とする請求項3に記載の手書き入力方法。
【請求項5】
前記属性判断工程は、予め設定された文字の大きさを基準として前記ストロークが文字列であるか判断することを特徴とする請求項1〜4のいずれか一つに記載の手書き入力方法。
【請求項6】
前記属性判断工程は、前記ストロークの縦横の比率が大きく異なる場合、当該ストロークは文字以外と判断することを特徴とする請求項5に記載の手書き入力方法。
【請求項7】
前記属性判断工程は、複数のストローク間が短くても全体のストロークが前記文字の大きさを超える場合には、文字列以外と判断することを特徴とする請求項5に記載の手書き入力方法。
【請求項8】
前記属性判断工程により前記文字列のブロックと判断されたブロックの大きさに基づき、以降に入力されるストロークに対して基準となる文字の大きさを変更する学習工程を含むことを特徴とする請求項1〜7のいずれか一つに記載の手書き入力方法。
【請求項9】
請求項1〜8のいずれか一つに記載の方法をコンピュータに実行させることを特徴とする手書き入力プログラム。
【請求項10】
手書きされたストロークを検出する検出手段と、
前記検出手段により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断手段と、
前記ブロック判断手段により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断手段と、
を備えたことを特徴とする手書き入力装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4−1】
image rotate

【図4−2】
image rotate

【図4−3】
image rotate

【図4−4】
image rotate

【図4−5】
image rotate

【図4−6】
image rotate

【図5−1】
image rotate

【図5−2】
image rotate

【図5−3】
image rotate

【図5−4】
image rotate

【図5−5】
image rotate

【図5−6】
image rotate

【図5−7】
image rotate

【図5−8】
image rotate

【図6】
image rotate


【公開番号】特開2009−238045(P2009−238045A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−85048(P2008−85048)
【出願日】平成20年3月27日(2008.3.27)
【出願人】(390024350)株式会社ジャストシステム (123)
【Fターム(参考)】