(57)【要約】【課題】利用者による手書き入力時に領域および属性の設定を簡単に行うことができること。【解決手段】手書きされたストロークを検出するストローク検出部２０１と、ストローク検出部２０１により検出されたストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であればこのストロークを同じブロックに含ませ、ブロックの範囲を広げていく入力ブロック判断部２１１と、この入力ブロック判断部２１１により判断されたブロックに含まれるストロークを文字入力の条件と比較して、所定の条件を満たせばこのブロックを文字列と判断し、それ以外は文字列以外と判断し、属性を付与する属性判断部２１３と、を備える。【選択図】図２
2009238045.tif 000002
【特許請求の範囲】
【請求項１】
手書きされたストロークを検出する検出工程と、
前記検出工程により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断工程と、
前記ブロック判断工程により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断工程と、
を含むことを特徴とする手書き入力方法。
【請求項２】
前記検出工程により検出された前記ストロークの範囲が既に入力されたストロークの入力範囲と比較した結果、所定の範囲外であれば当該ストロークを新たなブロックと判断し、新たなブロックに対して前記ブロック判断工程によるブロック判断を継続させるブロック設定工程を含むことを特徴とする請求項１に記載の手書き入力方法。
【請求項３】
前記ブロック判断工程は、前記検出工程により検出された前記ストロークの位置および大きさを既に入力されたストロークの位置および大きさと比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませることを特徴とする請求項１または２に記載の手書き入力方法。
【請求項４】
前記ブロック判断工程は、入力済みのブロックの行に対し、異なる行となるストロークであっても、入力済みのブロックの行の開始位置に対し所定の範囲内のストロークの開始であれば、当該入力済みのブロックと同じブロックであると判断することを特徴とする請求項３に記載の手書き入力方法。
【請求項５】
前記属性判断工程は、予め設定された文字の大きさを基準として前記ストロークが文字列であるか判断することを特徴とする請求項１〜４のいずれか一つに記載の手書き入力方法。
【請求項６】
前記属性判断工程は、前記ストロークの縦横の比率が大きく異なる場合、当該ストロークは文字以外と判断することを特徴とする請求項５に記載の手書き入力方法。
【請求項７】
前記属性判断工程は、複数のストローク間が短くても全体のストロークが前記文字の大きさを超える場合には、文字列以外と判断することを特徴とする請求項５に記載の手書き入力方法。
【請求項８】
前記属性判断工程により前記文字列のブロックと判断されたブロックの大きさに基づき、以降に入力されるストロークに対して基準となる文字の大きさを変更する学習工程を含むことを特徴とする請求項１〜７のいずれか一つに記載の手書き入力方法。
【請求項９】
請求項１〜８のいずれか一つに記載の方法をコンピュータに実行させることを特徴とする手書き入力プログラム。
【請求項１０】
手書きされたストロークを検出する検出手段と、
前記検出手段により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断手段と、
前記ブロック判断手段により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断手段と、
を備えたことを特徴とする手書き入力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、手書き入力されたストロークによりブロックを認識する手書き入力装置に関し、特に、文字単位で手書き入力されたストロークの集合をブロック化する手書き入力方法、手書き入力プログラムおよび手書き入力装置に関する。
【背景技術】
【０００２】
従来、文字や図形等を手書き入力する手書き入力装置があり、特にＰＤＡ等の携帯端末においてペンを用いて手軽にメモを作成できるようになっている。このような手書き入力装置においては、手書きによるストロークを領域別に文字属性、図形属性を付与することにより、後に領域別のデータ編集が可能となっている。例えば、文字属性の領域に対し文字認識を実行することにより、文書データ化できる。
【０００３】
このような手書き入力における領域別の属性判断技術としては、入力された後のデータに対し、文字(文字列)、図、写真等、領域分離を行い、フラグ（属性）を付与する技術がある（例えば、下記特許文献１参照。）。また、手書き入力されたブロックの切れ目までを一つのブロックにおける文字属性として設定し、各ブロックに対し、操作者が文字であるか図形であるかを操作して属性を付与する技術がある（例えば、下記特許文献２参照。）。この技術では、さらに操作者による範囲指定の操作入力があったとき、その範囲を別ブロックとする点についても記載されている。
【０００４】
【特許文献１】特開平５−３０３６１９号公報
【特許文献２】特開平８−２６３６８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の技術では、操作者が領域分離の境界を書き込むことで行うため、操作が面倒となる問題があった。また、領域分離を自動で行う点についても記載されているが、利用者が手書き入力を終了した後に領域分離を行うため、自動で行った領域分離が誤っていると結局操作者による領域分離の指定操作が必要となった。また、特許文献２の技術についても、文字や図形等がある場合、操作者の操作による属性の設定が必要となる点で同様の問題があった。
【０００６】
また、手書きされた文字を１文字ごとにパターンマッチングする等により、文字であるか否かを認識する構成となっており、装置に対し文字認識の処理負担がかかるとともに、手書きの文字は人それぞれであるため、マッチングの精度向上を図ることができず、付与する属性の精度を向上できなかった。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、利用者による手書き入力時に領域および属性の設定を簡単に行うことができる手書き入力方法、手書き入力プログラムおよび手書き入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、この発明にかかる手書き入力方法は、手書きされたストロークを検出する検出工程と、前記検出工程により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断工程と、前記ブロック判断工程により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断工程と、を含むことを特徴とする。
【０００９】
この発明によれば、手書きされたストロークがあれば、このストロークの入力範囲に基づいてブロックに含まれるか否かだけを判断し、ブロックの範囲を広げていくので、ブロック範囲の設定を簡単な処理で行えるようになる。また、文字に特有の条件を満たせば文字列のブロックの属性を付与し、それ以外は文字列以外と判断するため、ブロックの属性付与についても簡単な処理で行える。
【００１０】
また、前記検出工程により検出された前記ストロークの範囲が既に入力されたストロークの入力範囲と比較した結果、所定の範囲外であれば当該ストロークを新たなブロックと判断し、新たなブロックに対して前記ブロック判断工程によるブロック判断を継続させるブロック設定工程を含むことを特徴とする。
【００１１】
この発明によれば、異なるブロックとして意識して手書きしたブロックについて、簡単な処理で新たなブロックと判断することができる。特に、異なる行を異なるブロックとして、文字列の内容を分けたい場合に有効である。
【００１２】
また、前記ブロック判断工程は、前記検出工程により検出された前記ストロークの位置および大きさを既に入力されたストロークの位置および大きさと比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませることを特徴とする。
【００１３】
この発明によれば、ストロークが入力された位置と大きさだけでブロックに含ませるか否かを判断するため、１文字単位等での内容解析は不要であり、簡単な処理でブロック判断が行え、ブロックを広げていくことができる。
【００１４】
また、前記ブロック判断工程は、入力済みのブロックの行に対し、異なる行となるストロークであっても、入力済みのブロックの行の開始位置に対し所定の範囲内のストロークの開始であれば、当該入力済みのブロックと同じブロックであると判断することを特徴とする。
【００１５】
この発明によれば、異なる行として手書きした場合でも開始位置が前の行とほぼ同じ開始位置の場合には、同じブロックと判断し、ブロックの分割を防ぐことができる。
【００１６】
また、前記属性判断工程は、予め設定された文字の大きさを基準として前記ストロークが文字列であるか判断することを特徴とする。
【００１７】
この発明によれば、予め設定された文字の大きさに基づく大きさの比較で簡単に文字であるか否かを判断できる。
【００１８】
また、前記属性判断工程は、前記ストロークの縦横の比率が大きく異なる場合、当該ストロークは文字以外と判断することを特徴とする。
【００１９】
この発明によれば、文字を想定した縦横の比率を検出するだけで簡単に文字以外であると判断できる。
【００２０】
また、前記属性判断工程は、複数のストローク間が短くても全体のストロークが前記文字の大きさを超える場合には、文字以外と判断することを特徴とする。
【００２１】
この発明によれば、複数のストローク間が短い点線等の場合、全体のストロークの長さが文字を想定した大きさを超えたかを検出するだけで簡単に文字以外と判断できる。
【００２２】
また、前記属性判断工程により前記文字列のブロックと判断されたブロックの大きさに基づき、以降に入力されるストロークに対して基準となる文字の大きさを変更する学習工程を含むことを特徴とする。
【００２３】
この発明によれば、使用者個人ごとに、あるいは同一の使用者であっても使用ごとに文字の大きさが変わった場合の経時的な使用に対応できるようになる。
【００２４】
また、この発明にかかる手書き入力プログラムによれば、上記の手書き入力方法をコンピュータに実行させることができる。
【００２５】
また、この発明にかかる手書き入力装置は、手書きされたストロークを検出する検出手段と、前記検出手段により検出された前記ストロークの範囲を既に入力されたストロークの入力範囲と比較し、所定の範囲内であれば当該ストロークを同じブロックに含ませ、当該ブロックの範囲を広げていくブロック判断手段と、前記ブロック判断手段により判断されたブロックに含まれる前記ストロークを文字入力の条件と比較して、所定の条件を満たせば当該ブロックを文字列と判断し、それ以外は文字列以外と判断し、当該ブロックに対応した属性を付与する属性判断手段と、を備えたことを特徴とする。
【００２６】
この発明によれば、手書きされたストロークがあれば、このストロークの入力範囲に基づいてブロックに含まれるか否かだけを判断し、ブロックの範囲を広げていくので、ブロック範囲の設定を簡単な処理で行えるようになる。また、文字に特有の条件を満たせば文字列のブロックの属性を付与し、それ以外は文字列以外と判断するため、ブロックの属性付与についても簡単な処理で行える。
【発明の効果】
【００２７】
本発明によれば、手書きされるストロークの領域と属性の設定を簡単に行うことができ、特に、連続して行われる手書き時に同時に処理していくことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照して、この発明にかかる手書き入力方法、手書き入力プログラムおよび手書き入力装置の好適な実施の形態を詳細に説明する。
【００２９】
（手書き入力装置のハードウェア構成）
まず、この発明の実施の形態にかかる手書き入力装置のハードウェア構成について説明する。図１は、本実施の形態にかかる手書き入力装置のハードウェア構成を示すブロック図である。図１のように、手書き入力装置１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、ＦＤ（フレキシブルディスク）１０７と、ＣＤ−ＲＷＤ（ＣＤ−ＲＷドライブ）１０８と、ＣＤ−ＲＷ１０９と、ディスプレイ１１０と、キーボード１１１と、ストローク入力部１１２と、ネットワークＩ／Ｆ１１３とを含んで構成されている。なお、上記の各構成１０１〜１１３は、それぞれバス１２０に接続されている。また、ネットワークＩ／Ｆ（インターフェース）１１３には、ＮＥＴ（ネットワーク）に接続するための通信ケーブル１１４が備えられている。
【００３０】
上述のような構成の手書き入力装置１００において、ＣＰＵ１０１は、手書き入力装置１００全体を制御する。また、ＲＯＭ１０２は、本発明にかかる手書き入力プログラムを記憶している。ＲＯＭ１０２に記憶されたＣＰＵ１０１からの制御に応じて読み出され実行される。また、ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。
【００３１】
ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御にしたがって書き込まれたデータを記憶する記憶媒体である。また、ＨＤ１０５に記憶されたデータは、ＨＤＤ１０４の制御に応じて適宜読み出される。
【００３２】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御にしたがって書き込まれたデータを記憶する着脱自在の記憶媒体である。また、ＦＤ１０７に記憶されたデータは、ＦＤＤ１０６の制御に応じて適宜読み出される。
【００３３】
ＣＤ−ＲＷＤ１０８は、ＣＰＵ１０１の制御にしたがってＣＤ−ＲＷ１０９に対するデータのリード／ライトを制御する。ＣＤ−ＲＷ１０９は、ＣＤ−ＲＷＤ１０８の制御にしたがって書き込まれたデータを記憶する着脱自在な記憶媒体である。また、ＣＤ−ＲＷ１０９に記憶されたデータは、ＣＤ−ＲＷＤ１０８の制御に応じて適宜読み出される。
【００３４】
ディスプレイ１１０は、ＣＰＵ１０１の制御によって、カーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示する。また、キーボード１１１は、文字、数値、各種指示などの入力のための複数のキーを備えた入力ディバイスであり、ストローク入力部１１２は、手書き入力時に指やペンによりストロークの入力を受けるタッチパネルが用いられる。このストローク入力部１１２は、ディスプレイ１１０と、ディスプレイ１１０上に設けられる透明なタッチパネルで構成されたタブレットを用いることができる。
【００３５】
ネットワークＩ／Ｆ１１３は、通信ケーブル１１４を介してＬＡＮやＷＡＮなどのネットワークに接続され、当該ネットワークとＣＰＵ１０１とのインターフェースとして機能する。
【００３６】
本実施の形態にかかる手書き入力装置１００は、上述したようなハードウェアを備えており、ＣＰＵ１０１の制御によりＲＯＭ１０２に記憶された手書き入力プログラムを実行することにより、手書き入力が行える。
【００３７】
（手書き入力装置の機能的構成）
次に、手書き入力装置１００の機能的構成について説明する。図２は、本実施の形態にかかる手書き入力装置の機能的構成を示すブロック図である。この図には、本発明の主要な構成である手書き入力時の属性判断の構成についてのみ記載してある。図２に示す手書き入力装置１００は、ストローク検出部２０１と、処理部２０２と、格納部２０３とを備えている。
【００３８】
ストローク検出部２０１は、ストローク入力部１１２上で入力された手書きのストロークが入力される。手書きの文字は、始点からはじまり終点まで連続した一つのストロークが、１文字あたり一つあるいは複数入力される。
【００３９】
処理部２０２は、入力ブロック判断部２１１と、入力ブロック設定部２１２と、属性判断部２１３からなる。入力ブロック判断部２１１にはストローク検出部２０１によって検出されたストロークが入力され、入力された新規のストロークが現在のブロックに追加されるか否かを判断する。
【００４０】
入力ブロック設定部２１２は、入力ブロック判断部２１１によって判断されたブロックを設定する。すなわち、新規のストロークデータが現在のブロックへの追加であるか、あるいは、新規のブロックであるかを設定する。
【００４１】
属性判断部２１３は、現在のブロックに入力されているストロークデータが文字であるか否か（図形）を判断する。現在のブロックが文字である場合には、現在のブロックに文字の属性を付与して格納部２０３に格納する。また、現在のブロックが文字以外である場合には、現在のブロックに図形の属性を付与して格納部２０３に格納する。この属性判断については、後述するが、手書き開始時のストロークデータを一つの文字単位で判断していき、最初のストロークデータが文字であれば、属性が「文字」のブロックであると判断し、以降のストロークデータについては、同じ「文字(文字列)」であるか否かを判断する。
【００４２】
（手書き入力されたストロークの属性判断、ブロック判断について）
手書きの文字は、始点からはじまり終点まで連続した一つのストロークが、１文字あたり一つあるいは複数入力されてなる。１文字は縦横（座標上のｘ，ｙ）に所定の大きさ（領域）を有している。文字の大きさは個人ごとに差があるが、文字であれば所定の範囲内に収まるものとする。
【００４３】
処理部２０２は、以下の判断処理を行う。手書き入力されたストロークデータを「文字」または「文字以外（図形）」のブロックごとに判断する。具体的には、文字入力の条件が予め設定されており、この条件を逸脱しなければ「文字」であると判断する。例えば、入力された一文字のサイズ（長さおよび高さ）が予め設定されていた大きさ以内であれば「文字」の一部であると判断し、入力された文字のサイズが予め設定されていた大きさを大きく超えるものは「文字以外」と判断する。
【００４４】
文字の大きさは予め推定されるサイズが保持されている。また、操作者ごとに予め入力させ、この際のサイズを保持しておいてもよい。さらには、操作者ごとの過去の入力情報から推測してもよい。加えて、操作者が特定できる状態であれば、操作者の文字の大きさに相当するガイドラインをディスプレイ１１０に表示させてもよい。
【００４５】
したがって、文字の倍以上の大きさで描かれた矩形、文字の倍以上の長さの任意方向への線については、「文字以外（図形）」と判断する。また、ストローク間が短い場合は一連の入力であるとし、一連の入力全体の大きさが文字のサイズを大きく超えるものは「文字以外（図形）」と判断する。例えば、点線、一点鎖線、二点鎖線等がこれに相当する。
【００４６】
さらに、ストロークデータの縦横の比率が１．０から大きく外れる場合は「文字以外」と判断する。例えば、上下のブロックをまとめるような記号「｛」、ブロック間をリンクするための矢印の元となる波線、は「文字以外」と判断する。
【００４７】
上記処理によれば、次々に入力されるストロークデータが示している「文字」による複数の文字のまとまりを、連続した線の情報を詳細に解析せずとも、位置および大きさを用いて以前の入力と比較するだけで簡単に判断できる。この際、判断基準となる文字の大きさを計算し、その大きさから逸脱しない限り、「文字」を入力し続けていると判断する。判断基準となる文字の大きさは、上述した固定のサイズであってもよいし、入力ブロック判断部２１１によって「文字」であると判断された１文字目を基準として、次以降に入力される文字の大きさに基づき判断してもよい。
【００４８】
また、入力された文字が、文字の大きさ程度下にずれて入力され、かつ、入力していた「文字」の先頭付近から改めて入力を開始されている場合には、一つの「文字」の続きを次の行として入力していると判断する。この場合、上下が同じ「文字」のブロックであると判断する。
【００４９】
また、入力している行（縦位置）から異なる位置で、かつ、文字の大きさ以上の間隔を有して入力されたストロークがあれば、異なるブロックの入力開始と判断する。これにより、異なるブロックとして意識して手書きしたブロックについては、簡単な処理で新たなブロックと判断することができる。特に、異なる行を異なるブロックとして、文字列の内容を分けることができるようになる。また、開始位置（横位置）が文字(文字列)の行の先頭の位置から大きくずれている（例えば文字の大きさ以上のずれ）の場合には、「文字以外」と判断する。
【００５０】
上記構成により、処理部２０２は入力されたストロークデータが「文字」であるものに対し、「文字」のブロック範囲を設定し、格納部２０３に格納する。これにより、手書きされたストロークのデータのうち、「文字」のブロックに対し文字の属性が付与されて格納部２０３に格納されていく。
【００５１】
（ブロックに対する属性付与の状態確認について）
上記構成により、文字あるいは図形のブロックが判断される。この際、文字のブロックと図形のブロックとが異なる背景色にする。また、ブロックを示す囲み線の色を変更してもよい。このほか、文字のブロックは特定の背景色とし、図形のブロックは囲み線としてもよい。これらにより、操作者は、ブロックが文字、図形のいずれとして判断されているかを容易に確認できるようになる。
【００５２】
（ブロックに対する属性付与後の修正について）
ブロックに対する属性付与後には、操作者の操作により、ブロックの属性を変更することができる。操作者の意図に反して、文字のブロックが図形のブロックと誤って判断された場合、逆に図形ブロックが文字ブロックと判断された場合には、ブロックを指定して属性を他に変更することができる。例えば、ブロックをペンでタッチ（タップ）操作することにより、変更することができる。このタップ以外に、ダブルタップ（連続してタップ）により切り替えたり、情報選択後に他の独立した切替ボタンを押す構成としてもよい。
【００５３】
（ブロック自体の修正について）
さらに、既存のブロックに対する修正、追記、分割が行える。ブロックが認識された後において、ブロック全体に対する大きなストロークを入力した際には、文字や図形の入力ではないと判断し、ブロックに対する分割、合成、追記を行うことができる。ブロック自体の大きさを修正する場合には、例えばブロック間を分断するように、右端から左端までの間でいっぱいの横線を引くことにより、ブロックを強制的に分割することができる。
【００５４】
また、複数のブロック同士を囲む操作により、複数のブロックを一つにまとめることができる。また、隣接するブロック、例えば縦に隣接するブロックの上のブロックの下端と下のブロックの上端にまたがった大きな消去の指示「×」を書くことにより、上下のブロックを一つにまとめることができる。また、ブロックをダブルタップ（ペンで２回叩く）することでブロックへの追記モードに移行することができる。上記のようなストロークによるブロック修正に限らず、修正キーを操作することにより、ブロック修正用モードに移行する構成にもできる。
【００５５】
（ブロック間の関連付けについて）
異なるブロック間を引き出し線や矢印線等で結ぶ操作を行うことにより、結ばれたブロック間のデータを互いに関連付けすることができる。この際、ブロック間における従属関係、並列関係、参照等の付加情報を加えることができる。例えばある文字のブロックに対する注釈のブロックがあれば、これらのブロックを線で結ぶことにより、文字のブロックと注釈のブロックとが関連付けられる。また、文字のブロックに対して注釈のブロックの内容が注釈である属性が付与される。
【００５６】
この際、関連付けに用いる図形の形状（ブロックの形）ごとに予め対応する属性を設定することができる。また、ある形状の図形の入力により関連付けを行った後、その図形のブロックに属性を意味する文字等を設定する構成としてもよい。これらの場合、特定の図形であるかどうか図形の形状の判断が必要となる。この判断を簡略化するためには、ストロークデータを大まかに（細部まで見ないで概要の形状だけで）判断すればよい。この場合、特定の図形以外は通常の文書入力用のストロークデータと判断する。
【００５７】
（入力情報のグルーピングについて）
入力済みの複数のブロックの先頭あるいは末尾に囲み図形、例えば「｛」、「｝」等を入力することで、複数のブロックを同じグループにグループ化することができる。この際、属性が異なる文字のブロックと図形のブロックを同じグループにグループ化することもでき、複数のブロック間のグループ化についての並列情報や従属情報を属性として付与することができる。
【００５８】
また、複数のブロック同士を大きく囲むストロークにより、複数のブロックを同じグループにグループ化することもできる。さらには、ブロックに対する操作を行うことにより、例えば、複数のブロックを囲む一つのグループのブロックを作成することもできる。
【００５９】
また、このようなブロックに対する囲みの操作だけではなく、参照付けを続けて入力することにより、参照の属性を付与することもできる。例えば、箇条書きを意味する行頭の「・」や、「→」等を入力すると、それまでの入力に対する従属情報を属性として付与することができる。この場合、「・」や、「→」等のストロークの内容については、ストローク入力ではないと判断するために、特定の「・」や、「→」等のストロークをパターン判別等で装置が内容識別する。
【００６０】
また、既にグループ化されたブロックに対して、解除する操作を行うことで、自動判別されたグループを解除することもできる。例えば、グループ化された領域全体に大きく×を描く、といった操作でグループ化を解除することができる。
【００６１】
（学習について）
ブロックの大きさや、ブロックの属性の操作による変更を学習することにより、判断ミスを少なくするための情報を蓄積することができる。このような自動的な学習だけではなく、判断結果を切り替える際に強制的に重みを変えて利用者の入力癖に合わせていくことも考えられる。また、予め、利用者毎に特定の操作は行わない構成としたり、操作の内容に予め優先順位を付けておくこともでき、これらにより利用者別に最初からカスタマイズしておくこともできる。ブロックへの修正等についても同様に変更した操作を学習する構成とすれば、利用者の癖を蓄積していくことができ、ブロックの判別等に用いることができるようになる。
【００６２】
利用者は、この装置を使用し始めるときに、予め文字を手書きして基準となる文字の大きさを利用者毎に登録することができる。また、経時的な使用により、使用を重ねる経過で文字の大きさが大きくなっていったり、小さくなっていく場合がある。このような経時的使用に対応するために、判断後における文字のブロックの大きさ（縦の長さ）を毎回記憶しておき、次回の使用時にこの縦の長さを基準として文字の大きさを判断する構成としてもよい。また、最近の複数回分のブロックの大きさ（縦の長さ）の平均を用いてもよい。これにより、経時的な使用で文字の大きさが変化しても基準となる文字の大きさ自体を変更できるため、誤判断を低減できるようになる。
【００６３】
（手書き入力装置の処理内容）
次に、手書き入力時における属性判断の処理内容について説明する。図３は、手書き入力装置による属性判断処理を示すフローチャートである。以下の処理は、図１に示したＣＰＵ１０１が手書き入力処理のプログラムを実行することにより得られるものであり、図２に示した処理部２０２による処理内容を示している。
【００６４】
初めに、ストローク以外の入力があったか判断する（ステップＳ３０１）。ストローク検出部２０１以外の不図示のスイッチからの入力があった場合には（ステップＳ３０１：Ｙｅｓ）、ストロークデータに関する各種処理を終了する。このスイッチとは、手書き状態をｏｎ／ｏｆｆ操作するスイッチや、手書き後の編集スイッチなどがある。このような独立したスイッチを設けるに限らず、ストローク検出部２０１を構成するタッチパネルを用いてもよい。この場合、既に設定されているブロックの外側で新たなブロックの範囲の設定を手書きしたり、一つのブロックの内側にこのブロックを分割する設定を手書きすることができる。このほか、ストローク以外のタッチ（タップ）等の操作や、ストローク入力用の領域以外に配置したスイッチ領域に対するタッチ操作があったときストローク以外の入力であると判断することもできる。
【００６５】
ストローク検出部２０１によるストローク入力の場合には（ステップＳ３０１：Ｎｏ）、以下に説明する入力中のストロークデータに対する属性判断等の処理を実行する。まず、ストローク検出部２０１は、手書き入力されたストロークデータを検出する（ステップＳ３０２）。具体的には一つのストロークデータごとに入力の開始位置と終了位置およびこれらの間の軌跡の座標データが検出される。
【００６６】
次に、このストロークデータが現在入力中のブロック内への入力であるか判断する（ステップＳ３０３）。この際、上述したように、入力済みのストロークデータの入力位置に対して新たに入力されたストロークデータの位置等に基づいてこの入力されているストロークデータが同一ブロックであるか否かを判断する。判断の結果、現在入力中のブロックと同じブロックの場合には（ステップＳ３０３：Ｙｅｓ）、入力されているストロークデータを現在のブロックに追加し（ステップＳ３０４）、ステップＳ３０１に戻り次の入力を待つ。一方、現在入力中のブロックと異なるブロックと判断された場合には（ステップＳ３０３：Ｎｏ）、ステップＳ３０５以下の処理を実行する。
【００６７】
まず、新規にブロックを作成し、入力されたストロークデータをこの新規なブロックに追加する。そして、この新規ブロックを入力中のブロックとして登録する（ステップＳ３０５）。これにより、以降に入力されるストロークデータは、この新規ブロックに対する追加が判断される。
【００６８】
次に、入力されたストロークデータが文字入力としての条件を逸脱していないか判断する（ステップＳ３０６）。属性判断部２１３は、上述したような文字入力であるかを１文字ごとの大きさ、比率等に基づき判断する。判断の結果、文字入力と判断された場合には（ステップＳ３０６：Ｙｅｓ）、この新規ブロックが文字ブロックであると判断し、この文字ブロックに対するストロークデータの入力（追加）を継続する（ステップＳ３０７）。すなわち、ステップＳ３０１に移行し、新たなストロークデータの入力を待つ。
【００６９】
一方、文字入力としての条件を逸脱したストロークデータの場合には（ステップＳ３０６：Ｎｏ）、現在のブロックに対する操作のためのストロークデータであるか判断する（ステップＳ３０８）。ブロックに対する操作ではないと判断されたときには（ステップＳ３０８：Ｎｏ）、この新規ブロックを「文字以外」すなわち「図形」ブロックと判断し、この図形ブロックに対するストロークデータの入力（追加）を継続する（ステップＳ３０９）。すなわち、ステップＳ３０１に移行して、新たなストロークデータの入力を待つ。
【００７０】
現在のブロックに対する操作のためのストロークデータの場合には（ステップＳ３０８：Ｙｅｓ）、入力されたストロークに対応したブロックへの操作を実行する（ステップＳ３１０）。例えば、既存のブロックに対するブロック分割等の操作がこれに該当する。この後、ステップＳ３０１に移行し、新たなストロークデータの入力を待つ。
【００７１】
以上の処理により、手書き入力時にストロークデータが入力された都度、文字のブロックと図形のブロックとが判断され、判断後のブロックの属性が付与されたストロークデータを格納部２０３に順次格納していくことができる。
【００７２】
（手書きによるストローク入力のイメージ）
次に、具体的に手書き入力時におけるストロークデータの入力状態を説明する。図４−１〜図４−６は、手書き入力によるブロックの大きさ変更の状態を示す図である。各状態において図２の構成および図３の処理に対応する説明を付記する。
【００７３】
まず、図４−１に示すように、ある文字「み」４０１の一部を手書きしたとする。これにより、入力ブロック判断部２１１は、連続する一つのストロークデータ（１角目相当）を検出する（ステップＳ３０２）。そして、図４−２に示すように、新たなブロックを作成し、この文字「み」が新規ブロックを入力中のブロックＢＫ１とされ（ステップＳ３０５）、格納部２０３に格納される。ブロックＢＫ１は文字の外接矩形の大きさを有しており、この大きさが文字入力の条件を満たし（ステップＳ３０６：Ｙｅｓ）、文字の属性が付され文字ブロックとして入力が継続される（ステップＳ３０７）。この後、手書きが継続されて図４−３に示すように、文字「み」の２角目のストロークデータが検出される（ステップＳ３０２）。
【００７４】
図４−３では、２角目のストロークデータがブロックＢＫ１より外にはみ出している。しかし、入力ブロック判断部２１１は、文字の入力の条件のうち文字の大きさと位置が現在入力中のＢＫ１に対する入力であると判断し（ステップＳ３０３：Ｙｅｓ）、現在のブロックＢＫ１にデータを追加する（ステップＳ３０４）。また、ブロックＢＫ１は図４−４に示すように、文字「み」全体の外接矩形の大きさに変更される。図４−３と比較して上下方向の大きさが大きくなるよう変更されている。
【００７５】
図４−５に示すように、次の文字「む」の一部が手書きされたときにも、文字入力の条件のうち大きさと位置が現在入力中のブロックＢＫ１に対する入力であると判断し（ステップＳ３０３：Ｙｅｓ）、現在のブロックＢＫ１にデータを追加する（ステップＳ３０４）。対応して、ブロックＢＫ１は図４−５に示すように、横方向の大きさが次第に大きくなるよう変更されている。この後、図４−６に示すように、直線上に横書きで手書き入力された文字「みむめも」については、同じブロックＢＫ１であると判断され（ステップＳ３０３：Ｙｅｓ）、このブロックＢＫ１に対してデータが追加されていく（ステップＳ３０４）。
【００７６】
次に、複数のブロックの識別について説明する。図５−１〜図５−８は、手書き入力によるブロックの識別を示す図である。図５−１に示すブロックＢＫ１については、「あいうえお」の文字列と、「かきくけこ」の文字列が上下２段であるが開始位置（横位置）がほぼ同じであり、文字の大きさもほぼ同じであるため、同一の文字のブロックＢＫ１であると判断されている。そして、新たな手書きの文字「さ」５０２の一部の開始位置は、ブロックＢＫ１から１文字以上離れた下方である。このため、図５−２に示すように、入力ブロック判断部２１１は、現在入力中のブロックＢＫ１への入力ではないと判断する（ステップＳ３０３：Ｎｏ）。これにより、入力ブロック設定部２１２は、新たなブロックＢＫ２を設定し、以後の入力はこのブロックＢＫ２に対するものとする。
【００７７】
次に、図５−３に示すように、ブロックＢＫ２に対する文字「さしすせそ」の入力が継続されると、ブロックＢＫ２は、入力ごとに横方向の大きさが大きくなるよう変更されていく。
【００７８】
この後、図５−４に示すように、記号「｛」５０３が手書きされたとする。この記号「｛」５０３は、横の大きさに対し縦の大きさの比率が１．０を超えたものであり、属性判断部２１３は文字ではなく図形であると判断する（ステップＳ３０６：Ｎｏ）。また、入力ブロック判断部２１１は、手書きされた開始位置および終了位置が、ブロックＢＫ１とＢＫ２とをつなぐ位置であるため、図５−５に示すように、この記号「｛」５０３は、新たなブロックＢＫ３であると判断する。
【００７９】
上記処理により、手書き入力と同時に、ブロックの属性が判断され、また、入力されたストロークが同一ブロックであるか否かが判断されるようになっている。この処理の後、複数のブロックをまとめる処理も行える。
【００８０】
例えば、図５−６に示すように、記号「｛」５０３は、文字のブロックＢＫ１、ＢＫ２をつなぐ意味を有している。対応して、手書きにより、ブロックＢＫ１、ＢＫ２を囲むブロックＢＫ４がストロークデータで入力されたとする。このブロックＢＫ４は、ブロックに対する操作のためのストロークデータと判断され（ステップＳ３０６：ＮｏおよびステップＳ３０８）、ストロークに対応したブロックＢＫ４への操作が実行される（ステップＳ３１０）。すなわち、ブロックＢＫ４は、ブロックＢＫ３が意味するブロックＢＫ１、ＢＫ２が同一のブロックに属する属性が付与される。
【００８１】
ところで、ブロックＢＫ４は、ストローク入力により設定されるに限らず、自動設定することもできる。すなわち、記号「｛」５０３のブロックＢＫ３は、ブロックの範囲を自動設定する構成とすれば、この範囲に含まれるブロックＢＫ１とＢＫ２とが新たに含まれるブロックＢＫ４を自動的に設定する構成にできる。
【００８２】
また、一つのブロックを分割する処理が行える。例えば、図５−７に示すように、ブロックＢＫ１は上下に２行の文字「あいうえお」と「かきくけこ」から構成されている。このブロックＢＫ１内で上下の行を分割するストロークデータＬ１が入力されたとする。この場合、このストロークデータＬ１は、既にあるブロックＢＫ１に対する分割操作のためのストロークデータと判断され（ステップＳ３０８：Ｙｅｓ）、ストロークに対応したブロックＢＫ１の分割操作が実行される（ステップＳ３１０）。すなわち、図５−８に示すように、ブロックＢＫ１の内部で上下に２行の文字「あいうえお」と「かきくけこ」との間が分割ラインＬ１で分割され、ブロックＢＫ１をブロックＢＫ１１とブロックＢＫ１２とに２分割することができる。
【００８３】
図６は、複数の属性を持つブロックの状態を示す図である。この図に示すようにブロックＢＫ１〜ＢＫ７はそれぞれ属性を有している。ブロックＢＫ１〜ＢＫ３は、それぞれ文字の属性を有してる。ブロックＢＫ４は、文字のブロックＢＫ１〜ＢＫ３をつなぐ記号であり、図形の属性を有している。ブロックＢＫ５は、文字のブロックＢＫ１〜ＢＫ３と、図形のブロックＢＫ４とが同一のブロックに属する属性を有する。ブロックＢＫ６、ＢＫ７については、文字の大きさや、入力の開始位置が、文字入力の条件から外れており、図形と判断される。
【００８４】
上述した実施の形態では、ブロックの開始位置と終了位置を装置が判断する構成としたが、ブロックの開始および終了を操作者のボタン操作等で明示的に指定する構成にもできる。この場合、ブロックの開始が指定されてから終了が指定される迄の間は、全てのストロークを一つのブロックとして判断する。この際、文字の大きさや、各ストロークの間隔、入力位置に関わらずに一つのブロックとして判断する。また、ボタン操作で文字の入力モードと、文字以外（図形）入力モードを有していてもよい。
【００８５】
また、上述の実施の形態では、文字については、１行を左から右の方向に手書きし、上から下の方向が異なる行として手書きしていくことを前提として説明した。このような横書きモードを初期設定としておく。本発明はこれに限らず、縦書きモードにも適用できる。縦書きの場合、文字は、１行を上から下の方向に手書きしていき、右から左の方向が異なる行とすればよい。縦書きモードは、スイッチ操作で切り替えればよい。また、携帯型機器のＰＤＡ等が、方向検出センサ（ジャイロセンサ等）を内蔵し、縦書きと横書きで異なる方向に向けることにより、自動的に横書きモードと縦書きモードとを切り替える構成にすることもできる。
【００８６】
特に、ＰＤＡ等の携帯型機器は小型化のための操作ボタン数が少なく、また、できるだけボタン操作せずに入力できることが好ましい。したがって、本発明はこのような携帯型機器であるＰＤＡ等に用いて効果的である。
【００８７】
なお、本実施の形態で説明した手書き入力方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【００８８】
以上のように、本発明にかかる手書き入力方法、手書き入力プログラムおよび手書き入力装置は、文字や図形等を手書き入力するコンピュータ装置に適しており、特に、手書きでメモ入力するＰＤＡ等の携帯型機器に適している。
【図面の簡単な説明】
【００８９】
【図１】本実施の形態にかかる手書き入力装置のハードウェア構成を示すブロック図である。
【図２】本実施の形態にかかる手書き入力装置の機能的構成を示すブロック図である。
【図３】手書き入力装置による属性判断処理を示すフローチャートである。
【図４−１】手書き入力によるブロックの大きさ変更の状態を示す図である（その１）。
【図４−２】手書き入力によるブロックの大きさ変更の状態を示す図である（その２）。
【図４−３】手書き入力によるブロックの大きさ変更の状態を示す図である（その３）。
【図４−４】手書き入力によるブロックの大きさ変更の状態を示す図である（その４）。
【図４−５】手書き入力によるブロックの大きさ変更の状態を示す図である（その５）。
【図４−６】手書き入力によるブロックの大きさ変更の状態を示す図である（その６）。
【図５−１】手書き入力によるブロックの識別を示す図である（その１）。
【図５−２】手書き入力によるブロックの識別を示す図である（その２）。
【図５−３】手書き入力によるブロックの識別を示す図である（その３）。
【図５−４】手書き入力によるブロックの識別を示す図である（その４）。
【図５−５】手書き入力によるブロックの識別を示す図である（その５）。
【図５−６】手書き入力によるブロックの識別を示す図である（その６）。
【図５−７】手書き入力によるブロックの識別を示す図である（その７）。
【図５−８】手書き入力によるブロックの識別を示す図である（その８）。
【図６】複数の属性を持つブロックの状態を示す図である。
【符号の説明】
【００９０】
１００  手書き入力装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１１２  ストローク入力部
２０１  ストローク検出部
２０２  処理部
２０３  格納部
２１１  入力ブロック判断部
２１２  入力ブロック設定部
２１３  属性判断部
【図１】
2009238045.tif 000003
【図２】
2009238045.tif 000004
【図３】
2009238045.tif 000005
【図４−１】
2009238045.tif 000006
【図４−２】
2009238045.tif 000007
【図４−３】
2009238045.tif 000008
【図４−４】
2009238045.tif 000009
【図４−５】
2009238045.tif 000010
【図４−６】
2009238045.tif 000011
【図５−１】
2009238045.tif 000012
【図５−２】
2009238045.tif 000013
【図５−３】
2009238045.tif 000014
【図５−４】
2009238045.tif 000015
【図５−５】
2009238045.tif 000016
【図５−６】
2009238045.tif 000017
【図５−７】
2009238045.tif 000018
【図５−８】
2009238045.tif 000019
【図６】
2009238045.tif 000020