(57)【要約】【課題】ペンに応じて異なる設定で手書き入力することが可能な手書き入力装置を提供すること。【解決手段】タッチパネルに接触している入力手段２５００の位置に基づいて手書きされたストロークデータを表示する手書き入力装置２であって、前記入力手段から受信した前記入力手段の識別情報に対応付けて、前記入力手段の制御データを保存する制御データ保存手段３６と、前記入力手段から受信した前記入力手段の識別情報に対応付けられている前記制御データを前記ストロークデータに反映させて前記ストロークデータに基づく情報を表示部に表示する表示制御手段２２と、を有することを特徴とする。【選択図】図１
2020173794.tif 000002
【特許請求の範囲】
【請求項１】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置であって、
前記入力手段から受信した前記入力手段の識別情報に対応付けて、前記入力手段の制御データを保存する制御データ保存手段と、
前記入力手段から受信した前記入力手段の識別情報に対応付けられている前記制御データを前記ストロークデータに反映させて前記ストロークデータに基づく情報を表示部に表示する表示制御手段と、
を有することを特徴とする手書き入力装置。
【請求項２】
前記表示手段は、ユーザーの位置に応じて前記ストロークデータに基づく情報を表示することを特徴とする請求項１に記載の手書き入力装置。
【請求項３】
前記制御データ保存手段には、前記入力手段を使用するユーザーの位置に関する情報が前記制御データとして保存されており、
前記表示手段は、ユーザーの位置に関する情報を前記ストロークデータに反映させて前記ストロークデータに基づく情報を表示することを特徴とする請求項１に記載の手書き入力装置。
【請求項４】
前記制御データ保存手段には、所定の方向を基準として前記入力手段を使用するユーザーの前記手書き入力装置に対する角度情報が前記制御データとして保存されており、
前記表示手段は、前記角度情報を前記ストロークデータに反映させて前記ストロークデータに基づく情報を表示することを特徴とする請求項１〜３のいずれか１項に記載の手書き入力装置。
【請求項５】
前記ストロークデータを認識してテキストデータに変換する手書き認識制御手段を有し、
前記手書き認識制御手段は、前記角度情報に基づいて前記ストロークデータを回転させてから前記ストロークデータを認識して１つ以上のテキストデータに変換し、
前記表示手段は、１つ以上の前記テキストデータを前記ストロークデータに基づく情報として表示することを特徴とする請求項４に記載の手書き入力装置。
【請求項６】
前記表示手段は、前記角度情報に基づいて回転された１つ以上の前記テキストデータを前記ストロークデータに基づく情報として表示することを特徴とする請求項５に記載の手書き入力装置。
【請求項７】
前記表示手段は、前記テキストデータと共に、ユーザーの操作を受け付ける操作ヘッダーを表示し、
前記表示手段は、前記角度情報に基づいて回転された前記テキストデータ及び前記操作ヘッダーを前記ストロークデータに基づく情報として表示することを特徴とする請求項６に記載の手書き入力装置。
【請求項８】
前記手書き認識制御手段は、所定範囲に手書きされた直線と所定の方向とのなす角に基づいて決定した前記角度情報を、前記直線の前記ストロークデータが手書きされた時に前記入力手段から受信した前記入力手段の識別情報に対応付けて前記制御データ保存手段に保存することを特徴とする請求項５〜７のいずれか１項に記載の手書き入力装置。
【請求項９】
前記手書き認識制御手段は、所定範囲に手書きされた直線の終点方向に基づいて決定した前記角度情報を、前記直線の前記ストロークデータが手書きされた時に前記入力手段から受信した前記入力手段の識別情報に対応付けて前記制御データ保存手段に保存することを特徴とする請求項５〜８のいずれか１項に記載の手書き入力装置。
【請求項１０】
前記所定範囲は、前記手書き認識制御手段が変換した１つ以上の前記テキストデータが表示される範囲であり、
前記手書き認識制御手段は、前記所定範囲から前記直線を検出し、前記所定範囲外に手書きされた前記ストロークデータを前記テキストデータに変換することを特徴とする請求項８又は９に記載の手書き入力装置。
【請求項１１】
前記表示手段が前記テキストデータと共に表示したユーザーの操作を受け付ける操作ヘッダーは、前記角度情報を受け付ける回転操作ボタンを有し、
前記回転操作ボタンの押下と共に前記入力手段から受信した前記入力手段の識別情報に対応付けて前記角度情報を前記制御データ保存手段に保存することを特徴とする請求項５〜７のいずれか１項に記載の手書き入力装置。
【請求項１２】
前記手書き認識制御手段は前記角度情報を９０度単位又は４５度単位で設定することを特徴とする請求項５〜１０のいずれか１項に記載の手書き入力装置。
【請求項１３】
前記表示手段は、回転させて表示された１つ以上の前記テキストデータからユーザーにより選択された１つのテキストデータを表示し、
複数のユーザーがそれぞれ選択した複数のテキストデータを表示し、
所定の操作が検出された場合、複数のテキストデータをまとめて同一方向に揃えて表示することを特徴とする請求項５〜１２のいずれか１項に記載の手書き入力装置。
【請求項１４】
前記表示手段は、前記ストロークデータの位置に応じた位置に前記テキストデータを含む操作ガイドを表示することを特徴とする請求項５〜１３のいずれか１項に記載の手書き入力装置。
【請求項１５】
前記表示手段は、前記ストロークデータの位置に基づいた画面内の位置に、前記テキストデータを含む操作ガイドを表示することを特徴とする請求項５〜１３のいずれか１項に記載の手書き入力装置。
【請求項１６】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを手書き入力装置が表示する手書き入力方法であって、
前記入力手段の識別情報に対応付けられている前記入力手段の制御データを制御データ保存手段から取得して、
表示制御手段が、前記入力手段から受信した前記入力手段の識別情報に対応付けられている前記制御データを前記ストロークデータに反映させて前記ストロークデータに基づく情報を表示部に表示するステップと、
を有することを特徴とする手書き入力方法。
【請求項１７】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置に、
前記入力手段と通信するステップと、
制御データ保存手段から前記入力手段の識別情報に対応付けられている前記入力手段の制御データを取得して、
前記入力手段から受信した前記入力手段の識別情報に対応付けられている前記制御データを前記ストロークデータに反映させて前記ストロークデータに基づく情報を表示部に表示するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、手書き入力装置、手書き入力方法、及び、プログラムに関する。
【背景技術】
【０００２】
一般的なコンピュータ制御のホワイトボード装置又は手書き入力が可能なアプリケーション（以下、手書き入力装置という）では、入力手段がペン又は指に限られている。このため、文字の色などを変更するペン機能と文字の消去などの編集機能をユーザーが切り替えて使えるように操作メニューが用意されている。通常、ペン機能メニューでは色や太さ等を選択でき、編集機能メニューでは消去、移動、変倍、回転、切り取り、コピー、貼り付け等を選択できる（例えば、特許文献１参照。）。
【０００３】
特許文献１には、ペンボタンの押下により、色設定、透明度設定、太さ設定、線種設定、スタンプ設定、及び動作設定のメニューが表示される手書き入力装置について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、ペンに応じて異なる設定で手書き入力することが困難であるという問題があった。例えば、複数のユーザーがペンで手書き入力装置を使用する場合があるが、それぞれのユーザーがペンに応じて異なる設定で手書きすることができない。
【０００５】
本発明は、上記課題に鑑み、ペンに応じて異なる設定で手書き入力することが可能な手書き入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題に鑑み、本発明は、タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置であって、前記入力手段から受信した前記入力手段の識別情報に対応付けて、前記入力手段の制御データを保存する制御データ保存手段と、前記入力手段から送信された前記入力手段の識別情報に対応付けられている前記制御データを前記ストロークデータに反映させて前記ストロークデータに基づく情報を表示部に表示する表示制御手段と、を有することを特徴とする。
【発明の効果】
【０００７】
ペンに応じて異なる設定で手書き入力することが可能な手書き入力装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】手書き入力装置が表示する操作メニューの比較例を示す図である。
【図２】手書き入力装置の使用例を示す図である。
【図３】手書き入力装置の処理の概略を説明する図の一例である。
【図４】ペンの斜視図の一例を示す図である。
【図５】手書き入力装置の全体構成図の一例を示す図である。
【図６】手書き入力装置のハードウェア構成図の一例である。
【図７】手書き入力装置とペンが有する機能について説明する図である。
【図８】手書き入力装置が有するユーザー認証に関する機能をブロック状に示す図である。
【図９】定義済み制御データの一例を示す図である。
【図１０】手書き認識辞書部の辞書データの一例を示す図である。
【図１１】文字列変換辞書部の辞書データの一例を示す図である。
【図１２】予測変換辞書部の辞書データの一例を示す図である。
【図１３】操作コマンド定義部が保持する操作コマンド定義データとシステム定義データの一例を示す図である。
【図１４】手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す図である。
【図１５】手書き入力保存部が保存する手書き入力保存データの一例を示す図である。
【図１６】ペンＩＤ制御データ保存部が保存するペンＩＤ制御データを説明する図である。
【図１７】操作ガイドと操作ガイドが表示する選択可能候補の一例を示す図である。
【図１８】操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。
【図１９】手書きオブジェクト矩形領域表示の上方に表示された操作ガイドを示す図である。
【図２０】選択オブジェクトの指定例を説明する図の一例である。
【図２１】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【図２２】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【図２３】９０度の角度情報の入力方法を説明する図の一例である。
【図２４】４５度の角度情報の入力方法を説明する図の一例である。
【図２５】角度情報の別の入力方法を説明する図の一例である。
【図２６】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その１）。
【図２７】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その２）。
【図２８】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その３）。
【図２９】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その４）。
【図３０】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その５）。
【図３１】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その６）。
【図３２】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その７）。
【図３３】複数のテキストデータの向きを揃えて表示する表示例を示す図である。
【図３４】手書き入力装置の他の構成例を示す図である。
【図３５】手書き入力装置の他の構成例を示す図である。
【図３６】手書き入力装置の他の構成例を示す図である。
【図３７】手書き入力装置の他の構成例を示す図である。
【図３８】手書き入力システムのシステム構成図の一例である（実施例２）。
【図３９】情報処理システムのハードウェア構成図の一例である。
【図４０】手書き入力システムが有する機能をブロック状に示す機能ブロック図の一例である。
【図４１】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その１）。
【図４２】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その２）。
【図４３】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その３）。
【図４４】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その４）。
【図４５】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その５）。
【図４６】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その６）。
【図４７】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その７）。
【図４８】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である（その８）。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態の一例として、手書き入力装置及び手書き入力装置が行う手書き入力方法について図面を参照しながら説明する。
【実施例１】
【００１０】
＜手書き入力装置の比較例について＞
本実施形態における手書き入力装置の説明の便宜上、まず、手書き入力装置の操作手順の比較例について簡単に説明する。
【００１１】
図１は、手書き入力装置２が表示する操作メニューの比較例を示す。操作パネル全体１０１にはペン機能メニュー１０２を表示させるペン機能メニューボタン１０２１、編集機能メニュー１０３を表示させる編集機能メニューボタン１０３１、入出力機能メニュー１０４を表示させる入出力機能メニューボタン１０４１等が表示されている。ペン機能メニュー１０２ではユーザーがペンの色、太さ、動作モードを選択できる。ペン機能メニュー１０２は手書き入力モードボタン１０２２、及び、清書入力モードボタン１０２３を有している。また、編集機能メニュー１０３では、オブジェクトの消去、選択、切り取り、コピー、及び貼り付けを選択でき、入出力機能メニュー１０４ではテンプレートの読み込み、ファイルの読み込み、ファイルへの保存、及び印刷等を実行できる。
【００１２】
手書き入力モードボタン１０２２が押下されるとユーザーが手書きした情報（ペンの座標）がそのまま入力され、清書入力モードボタン１０２３が押下されるとユーザーが手書きした文字、数字、記号、アルファベット等（以下単に、文字等という）が認識され文字等に変換（清書）されたテキストデータが表示される。
【００１３】
従来の手書き入力装置２の操作手順の一例として、ユーザーが直線又は曲線（以下、ストローク、と呼ぶ）を手書きしている状態で、複数のストロークを消去して、再びペンで書き始めるには、以下の操作手順が必要となる。なお、特に明記しない場合、ペンで押下するとはペン先で押下することを意味する。
(A1) 編集機能メニューボタン１０３１をペンで押下して編集機能メニュー１０３を表示する。
(A2) 編集機能メニュー１０３の「消去する」ボタン１０３２をユーザーが押下すると、手書き入力装置２は自動的に編集機能メニュー１０３を消去する。
(A3) ユーザーが消去対象の複数のストロークを跨ぐようにペンで書き込むとストロークが消去される。
(A4) ペン機能メニューボタン１０２１をペンで押下する。
【００１４】
この手順で消去対象のストロークが消去され、引き続き、ユーザーはペンでストロークを手書きできるようになる。ストロークを消去するだけで４ステップもの操作手順が必要になる。ステップ数や画面の遷移に差異はあっても手書き入力装置２は同様の操作体系であることが多い。またこのような操作体系はコンピュータ製品全般に共通しており、ユーザーが必要な機能を呼び出す操作体系が基本になっている。ユーザーが機能の呼び出し方法を知らなければ全く操作ができないため、チュートリアル機能やヘルプ機能によって、手書き入力装置２が機能の呼び出し方法を提供する手法が一般的である。
【００１５】
同様に、ファイルや印刷などの入出力が必要になった場合、ユーザーは入出力機能メニュー１０４を開く。例えば、テンプレートを読み込むには、以下の操作手順が必要になる。
(B1) 入出力機能メニューボタン１０４１をユーザーがペンで押下すると入出力機能メニュー１０４が開く。
(B2) 入出力機能メニュー１０４の「テンプレート選択」ボタン１０４２をユーザーがペンで押下すると入出力機能メニューが閉じてテンプレート選択ウィンドウが開く。
(B3) 所望のテンプレートが表示されるまでスクロールさせるため左右ボタン等をペンで押下する。
(B4) 所望のテンプレートをペンで押下するとそのテンプレートが読み込まれてテンプレート選択ウィンドウが閉じる。
【００１６】
同様に、ユーザーが手書きした文字等をテキストデータに変換するには、以下の操作手順が必要になる。
(C1) ユーザーがペン機能メニューボタン１０２１をペンで押下する。
(C2) ユーザーが清書入力モードボタン１０２３をペンで押下する。
【００１７】
清書入力モードボタン１０２３が押下された状態では、図１（ｂ）に示すように、手書きした「ａｂｃｄｅ」がテキストデータの「ａｂｃｄｅ」に変換されている。テキストデータはフォントで表示されるので清書された状態となる。
【００１８】
このように、従来の手書き入力装置２ではユーザーがステップバイステップで操作する操作手順が必要となる。つまり、手書き入力装置２が説明的に次のステップに導く操作体系が基本となっているため、ユーザーは直感的に操作することが困難であった。
【００１９】
＜手書き入力装置の利用形態の一例＞
手書き入力装置２は床などに対し垂直に保持された状態で使用されるだけでなく、床などに水平に平置きされた状態でも使用される場合がある。
【００２０】
図２は、手書き入力装置２の使用例を示す図である。図２（ａ）では机の上にディスプレーを上向きにして手書き入力装置２が設置されている（このような設置の態様を平置きという）。手書き入力装置２の周り（図２（ａ）では対面）に椅子に座って向かい合ったユーザーがそれぞれ手書きをしている。
【００２１】
この場合、通常のユーザーは自分に対して上下方向に文字等を手書きする（図２（ｂ））。しかし、清書入力モードでは、ある決まった場所（手書き入力装置２から見て決まった方向）のユーザーが文字を手書きした場合にのみ正しく手書き認識できる。図２（ｂ）である決まった場所のユーザーをＡさんとすると、ＢさんとＣさんが手書きした文字等は正しく認識されない。
【００２２】
この理由は、現在の手書き認識エンジンは手書きの天地がある決まった方向である場合しか正しく認識できないためである。正しく認識とは実用性がある程度の認識率で認識が可能であることを言う。また、ある決まった方向は、例えば、手書き入力装置２が床などに対し垂直に保持された状態の天地方向である（後述する図５（ａ）の状態の天地方向）。
【００２３】
手書き入力装置２が床などに対し垂直に保持された状態（壁掛けやスタンドなどで保持された状態）で使用されている場合、ユーザーが上下逆さまに手書きすることはなかったため不都合は生じにくかった。しかし、図２のような使用例では、手書き認識エンジンから見るとＢさんとＣさんの文字等は１８０度回転（天地が逆）しているので正しく手書き認識できない。
【００２４】
コンピュータやＯＳ（Operating  System）によっては、所定の操作（例えば、Ctrl+Alt+矢印キー）で画面全体を９０度単位で回転することができる。つまり、自分が書いた文字等を手書き認識する場合、ユーザーは画面全体を回転すればよい。しかしこの方法では例えば向かい合った複数のユーザーがそれぞれ手書きした文字等を正しく手書き認識することはできない。
【００２５】
＜本実施形態における手書き入力装置の処理の概略＞
そこで、本実施形態の手書き入力装置２では、ユーザーに応じて異なる設定で手書き入力することを可能にする。
【００２６】
図３は、手書き入力装置２の処理の概略を説明する図の一例である。手書き入力装置２の周辺（４辺）にそれぞれ４人のユーザー（Ａ〜Ｄ）が存在している。説明の便宜上、
Ａさんの位置から文字等を手書きする場合の文字の角度を０度、
Ｂさんの位置から文字等を手書きする場合の文字の角度を９０度、
Ｃさんの位置から文字等を手書きする場合の文字の角度を１８０度、
Ｄさんの位置から文字等を手書きする場合の文字の角度を２７０度、
とする。
【００２７】
各ユーザーはそれぞれペン２５００を保持し、ペン２５００で手書きする。このペン２５００は識別情報（以下、ペンＩＤという）を記憶している。これを利用して、手書き入力装置２はペンＩＤと、ユーザーが文字等を手書きする角度情報を対応付けておく。すなわち、ユーザーは手書き入力装置２の使用を開始するに当たって、ペン２５００を使用して、自分が文字等を手書きする時の角度情報（９０度、１８０度、２７０度）を入力する（０度の場合は入力不要）。詳細は後述するが、簡単な操作で自分が文字等を書く時の角度情報を入力でき、ペンＩＤと角度情報を対応付けておくことができる。
【００２８】
図３では各ユーザーが「ａｂｃ」という文字等を手書きしている。手書き入力装置２は、「ａｂｃ」を手書きしたペン２５００のペンＩＤで角度情報を特定し、手書きした「ａｂｃ」を角度情報だけ、時計回りに回転させてから文字認識を行う。回転は内部的に行われ、表示されている文字等は回転しない。内部的にとは手書き入力装置がデータを処理することをいう。ただし、後述する操作ガイドは反時計回りに回転して表示される。図３では一例として、Ｃさんが手書きした「ａｂｃ」という文字等を１８０度回転させた「ａｂｃ」を示す（内部的に回転するだけなので表示はされない）。回転により文字等が天地方向を向くので（角度が０度になる）、手書き入力装置２は正しく文字認識することができる。
【００２９】
このように、本実施形態では、ペン（又はユーザー）に応じて異なる設定（ここでは角度情報）で手書き入力することが可能であるため、平置きされた手書き入力装置２の周囲のユーザーが文字等を手書きしても正しく文字認識できる。角度情報以外にも、文字の太さ、色、テクスチャなどをユーザーごとに設定できる。
【００３０】
＜用語について＞
入力手段とはタッチパネルに手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。また、視線入力が可能でもよい。
【００３１】
ストロークデータとは自由に手書きされた線である。連続した点の集合を有し、適宜、補間されてよい。
【００３２】
操作コマンドとは手書き入力装置２を操作するために用意されている、特定の処理の実行を指示する命令をいう。本実施形態では一例として、編集系、修飾系、入出力系、ペン状態の操作コマンドを例にするが、画面反転、ページ切り替え、動作モードの設定など、手書き入力装置２を操作する全てのコマンドが対象となる。
【００３３】
入力手段の制御データは、入力手段で入力されたストロークデータをどのように処理するかに関する情報である。例えば、色、太さ、パターン、及び、角度などがある。本実施形態ではペンＩＤ制御データとして説明される。これらは、ストロークデータに反映される。
【００３４】
ストロークデータに基づく情報は、ストロークデータに基づいて生成される情報であればよい。例えば、手書き認識後の変換可能候補、操作コマンドなどがある。
【００３５】
＜ペンの外観の一例＞
図４は、ペン２５００の斜視図の一例を示す。図４は多機能なペン２５００の一例を示す。電源を内蔵して手書き入力装置２に命令を送信できるペン２５００をアクティブペンという（電源を内蔵しないペンをパッシブペンという）。図４のペン２５００は、物理的なスイッチがペン先に一つ、ペン尻に一つ、ペン側面に二つあり、ペン先が筆記用、ペン尻が消去用、ペン側面はユーザー機能割り当て用である。本実施形態のペン２５００は不揮発性のメモリーを有しており、他のペンと重複しないペンＩＤを記憶している。
【００３６】
なお、スイッチ付きのペンであれば、ユーザーの手書き入力装置２の操作手順を減らすことも可能である。スイッチ付きのペンとは主にアクティブペンを言うが、電磁誘導方式では電源を内蔵しないパッシブペンでもＬＣ回路だけで電力を発生できるため、アクティブペンだけでなく電磁誘導方式のパッシブペンを含む。電磁誘導方式以外の光学方式、赤外線方式、及び、静電容量方式のスイッチのあるペンはアクティブペンである。
【００３７】
ユーザーはペン側面スイッチのうちの一つをペン機能メニュー１０２、もう一つを編集機能メニュー１０３に割り当てることができる。ユーザーが手に持ったペン２５００の側面ボタンを押すことによってペン機能メニュー１０２又は編集機能メニュー１０３を表示させることができる点で便利にはなるが、操作の対象となるオブジェクトを変更するたびにユーザーが側面ボタンを押下してペン機能メニュー１０２又は編集機能メニュー１０３を開く煩雑さは変わらない。
【００３８】
一方、消去用のペン尻のスイッチを使用すると、図１で説明した(A1)(A2)(A4)のステップが不要になり、前記の(A3)のステップでペン先の代わりにペン尻を使えばよく、消去に要する操作手順を１ステップに短縮できる。
【００３９】
なお、ペン２５００のハードウェア構成は、通信機能とマイコンを備えた一般的な制御方式と同様であるとする。ペン２５００の座標の入力方式には、電磁誘導方式、アクティブ静電結合方式などがある。また、ペン２５００は、筆圧検知、傾き検知、ホバー機能（ペンが触れる前にカーソルを表示）、などの機能を有していてよい。
【００４０】
＜装置の全体構成＞
図５を用いて、本実施形態に係る手書き入力装置２の全体構成を説明する。図５は、手書き入力装置２の全体構成図を示した図である。図５（ａ）では、手書き入力装置２の一例として、壁につり下げられた横長の電子黒板として使用される手書き入力装置２を示している。
【００４１】
図５（ａ）に示されているように、手書き入力装置２の上部には表示装置の一例としてのディスプレー２２０が設置されている。ユーザーＵは、ペン２５００を用いて、ディスプレー２２０に文字等を手書きする（入力、描画ともいう）ことができる。
【００４２】
図５（ｂ）は壁につり下げられた縦長の電子黒板として使用される手書き入力装置２を示している。
【００４３】
図５（ｃ）は机２３０に平置きされた手書き入力装置２を示す。手書き入力装置２は厚みが１ｃｍ程度なので、一般の机に平置きしても机の高さを調整する必要がない。また、容易に移動できる。
【００４４】
＜装置のハードウェア構成＞
続いて、図６を用いて、手書き入力装置２のハードウェア構成を説明する。手書き入力装置２は図示するように情報処理装置又はコンピュータの構成を有している。図６は、手書き入力装置２のハードウェア構成図の一例である。図６に示されているように、手書き入力装置２は、ＣＰＵ(Central Processing Unit)２０１、ＲＯＭ(Read Only Memory)２０２、ＲＡＭ(Random Access Memory)２０３、及び、ＳＳＤ(Solid State Drive)２０４を備えている。
【００４５】
これらのうち、ＣＰＵ２０１は、手書き入力装置２全体の動作を制御する。ＲＯＭ２０２は、ＣＰＵ２０１やＩＰＬ(Initial Program Loader)等のＣＰＵ２０１の駆動に用いられるプログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＳＳＤ２０４は、手書き入力装置２用のプログラム等の各種データを記憶する。
【００４６】
また、手書き入力装置２は、ディスプレーコントローラー２１３、タッチセンサーコントローラー２１５、タッチセンサー２１６、ディスプレー２２０、電源スイッチ２２７、チルトセンサー２１７、シリアルインタフェース２１８、スピーカー２１９、マイク２２１、無線通信装置２２２、赤外線Ｉ/Ｆ２２３、電源制御回路２２４、ＡＣアダプター２２５、及びバッテリー２２６を備えている。
【００４７】
ディスプレーコントローラー２１３は、出力画像をディスプレー２２０等へ出力するために画面表示の制御及び管理を行う。タッチセンサー２１６は、ディスプレー２２０上にペン２５００やユーザーの手等（ペンやユーザーの手は入力手段となる）が接触したことを検知する。また、タッチセンサー２１６はペンＩＤを受信する。
【００４８】
タッチセンサーコントローラー２１５は、タッチセンサー２１６の処理を制御する。タッチセンサー２１６は、座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、例えば、光学式の場合、ディスプレー２２０の上側両端部に設置された２つ受発光装置が、ディスプレー２２０に平行して複数の赤外線を放射し、ディスプレー２２０の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。タッチセンサー２１６は、物体によって遮断された２つの受発光装置が放射した赤外線の位置情報をタッチセンサーコントローラー２１５に出力し、タッチセンサーコントローラー２１５が、物体の接触位置である座標位置を特定する。また、タッチセンサーコントローラー２１５は通信ユニット２１５ａを有しており、ペン２５００と無線で通信することができる。例えば、Bluetooth（登録商標）などの規格で通信している場合は、市販されているペンを使用することができる。通信ユニット２１５ａに予め１つ以上のペン２５００を登録しておくと、ユーザーはペン２５００を手書き入力装置２と通信させる接続設定を行わなくても通信できる。
【００４９】
電源スイッチ２２７は、手書き入力装置２の電源のＯＮ/ＯＦＦを切り換えるためのスイッチである。チルトセンサー２１７は、手書き入力装置２の傾き角度を検出するセンサーである。主に、手書き入力装置２が図５（ａ）、図５（ｂ）、又は、図５（ｃ）のいずれかの設置状態で使用されているかを検出するために使用され、設置状態に応じて文字等の太さを自動で変更することができる。
【００５０】
シリアルインタフェース２１８はＵＳＢなどの外部との通信インタフェースである。外部からの情報の入力などに使用される。スピーカー２１９は音声の出力に使用され、マイク２２１は音声の入力に使用される。無線通信装置２２２は、ユーザーが携帯する端末と通信し、例えばインターネットへの接続を中継する。無線通信装置２２２はWi−FiやBluetooth（登録商標）などで通信するが、通信規格は問われない。無線通信装置２２２はアクセスポイントを形成しており、ユーザーが入手したＳＳＩＤ（Service Set Identifier）とパスワードをユーザーが携帯する端末に設定すると、アクセスポイントに接続できる。
【００５１】
なお、無線通信装置２２２には２つのアクセスポイントが用意されているとよい。
a. アクセスポイント→インターネット
b. アクセスポイント→社内ネットワーク→インターネット
ａのアクセスポイントは社外のユーザー用で、ユーザーは社内ネットワークにはアクセスできないが、インターネットを利用できる。ｂのアクセスポイントは社内のユーザー用で、ユーザーは社内ネットワーク及びインターネットを利用できる。
【００５２】
赤外線Ｉ/Ｆ２２３は隣に配置された手書き入力装置２を検出する。赤外線の直進性を利用して、隣に配置された手書き入力装置２のみを検出できる。赤外線Ｉ/Ｆ２２３は各辺に１つずつ設けられることが好ましく、手書き入力装置２のどの方向に他の手書き入力装置２が配置されたのかを検出できる。これにより画面が広がり、隣の手書き入力装置２に過去に手書きされた手書き情報（１つのディスプレー２２０の広さを１ページとして別のページの手書き情報）等を表示できる。
【００５３】
電源制御回路２２４は手書き入力装置２の電源であるＡＣアダプター２２５とバッテリー２２６を制御する。ＡＣアダプター２２５は商用電源が共有する交流を直流に変換する。
【００５４】
ディスプレー２２０がいわゆる電子ペーパーの場合、画像の表示を維持するためにほとんど又は一切電力を消費しないので、バッテリー２２６による駆動も可能である。これにより、屋外など電源を接続しにくい場所でもデジタルサイネージなどの用途で手書き入力装置２を使用することが可能になる。
【００５５】
更に、手書き入力装置２は、バスライン２１０を備えている。バスライン２１０は、図６に示されているＣＰＵ２０１等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【００５６】
なお、タッチセンサー２１６は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する２つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。タッチセンサー２１６は、ペン先のタッチの有無を検知するのに電子ペンが必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。なお、ペン２５００は、細長いペン型である必要はない。
【００５７】
＜装置の機能について＞
次に、図７を用いて、手書き入力装置２とペン２５００が有する機能について説明する。図７（ａ）は手書き入力装置２が有する機能をブロック状に示す機能ブロック図の一例である。手書き入力装置２は、手書き入力部２１、表示部２２、手書き入力表示制御部２３、候補表示タイマー制御部２４、手書き入力保存部２５、手書き認識制御部２６、手書き認識辞書部２７、文字列変換制御部２８、文字列変換辞書部２９、予測変換制御部３０、予測変換辞書部３１、操作コマンド認識制御部３２、操作コマンド定義部３３、及び、ペンＩＤ制御データ保存部３６、を備えている。手書き入力装置２が有する各機能は、図６に示されている各構成要素のいずれかが、ＳＳＤ２０４からＲＡＭ２０３上に展開されたプログラムに従ったＣＰＵ２０１からの命令によって動作することで実現される機能又は手段である。
【００５８】
手書き入力部２１はタッチセンサー２１６等により実現されており、ユーザーによる手書き入力を受け付け、ペンＩＤを受信する。手書き入力部２１はユーザーのペン入力ｄ１をペンＩＤ付きのペン操作データｄ２（ペンアップ、ペンダウン、又はペン座標データ）に変換し、手書き入力表示制御部２３に送信する。ペン座標データは離散値として定期的に送信され、離散値間の座標は補完計算される。
【００５９】
表示部２２はディスプレー２２０等により実現され、手書きされたオブジェクトや操作メニューを表示する。表示部２２は手書き入力表示制御部２３がビデオメモリーに書き込んだ描画データｄ３をディスプレー２２０の特性に応じたデータに変換し、ディスプレー２２０に送信する。表示部２２は、ユーザーの位置に応じてストロークデータに基づく情報を表示する。
【００６０】
手書き入力表示制御部２３は手書き入力と表示に関する全体的な制御を行う。手書き入力表示制御部２３は手書き入力部２１からのペン操作データｄ２を処理し、表示部２２に送信することで表示させる。ペン操作データｄ２の処理及びストロークの表示の詳細は後述の図２６〜図３２にて説明する。
【００６１】
候補表示タイマー制御部２４は、選択可能候補の表示制御タイマーである。タイマーを開始又は停止して選択可能候補の表示を開始するタイミングと表示を消去するタイミングを生成する。選択可能候補とは、後述する操作ガイドに選択可能に表示される手書き認識文字列/言語文字列候補、変換文字列候補、文字列/予測変換の候補、操作コマンドの候補、である。候補表示タイマー制御部２４は手書き入力表示制御部２３からタイマー開始要求ｄ４（タイマー停止要求の場合もある）を受信し、タイムアウトイベントｄ５を手書き入力表示制御部２３に送信する。
【００６２】
手書き入力保存部２５はユーザーデータ（手書きオブジェクト/文字列オブジェクト）を保存しておくストレージの機能を有する。手書き入力保存部２５は手書き入力表示制御部２３からユーザーデータｄ６−１を受信し、手書き入力保存部２５に保存する。手書き入力保存部２５は手書き入力表示制御部２３から取得要求ｄ６−２を受け取って、手書き入力保存部２５に保存されたユーザーデータｄ７を送信する。手書き入力保存部２５は、確定オブジェクトの位置情報ｄ３６を操作コマンド認識制御部３２に送信する。
【００６３】
手書き認識制御部２６はオンライン手書き認識を行う認識エンジンである。一般的なＯＣＲ(Optical Character Reader)とは異なり、ユーザーのペン操作と並行して文字（日本語だけでなく英語などの多国語）、数字、記号（％、＄、＆など）、図形（線、丸、三角など）等を認識していく。認識方法については様々なアルゴリズムが考案されているが、本実施形態では公知の技術を利用できるとして詳細を割愛する。
【００６４】
手書き認識制御部２６はペン操作データｄ８−１を手書き入力表示制御部２３から受信し、手書き認識を実行して手書き認識文字列候補を保持する。また、手書き認識制御部２６は手書き認識辞書部２７を使用して手書き認識文字列候補ｄ１２から変換した言語文字列候補を保持しておく。別途、取得要求ｄ８−２を手書き入力表示制御部２３から受信した場合、手書き認識制御部２６は保持している手書き認識文字列候補及び言語文字列候補ｄ９を手書き入力表示制御部２３に送信する。
【００６５】
手書き認識辞書部２７は手書き認識の言語変換用の辞書データである。手書き認識辞書部２７は手書き認識文字列候補ｄ１２を手書き認識制御部２６から受信し、言語的に確からしい言語文字列候補ｄ１３に変換して手書き認識制御部２６に送信する。例えば、日本語の場合は、平仮名を漢字や片仮名へ変換する。
【００６６】
文字列変換制御部２８は変換文字列候補の文字列への変換を制御する。変換文字列とは手書き認識文字列又は言語文字列を含んで生成される可能性が高い文字列である。文字列変換制御部２８は手書き認識文字列及び言語文字列候補ｄ１１を手書き認識制御部２６から受信し、文字列変換辞書部２９を使用して変換文字列候補に変換して保持しておく。別途、取得要求ｄ１４を手書き入力表示制御部２３から受信した場合、保持している変換文字列候補ｄ１５を手書き入力表示制御部２３に送信する。
【００６７】
文字列変換辞書部２９は文字列変換用の辞書データである。文字列変換辞書部２９は文字列変換制御部２８から手書き認識文字列及び言語文字列候補ｄ１７を受信し、変換文字列候補ｄ１８を文字列変換制御部２８に送信する。
【００６８】
予測変換制御部３０は手書き認識文字列及び言語文字列候補ｄ１０を手書き認識制御部２６から受信し、変換文字列候補ｄ１６を文字列変換制御部２８から受信する。予測変換制御部３０は手書き認識文字列、言語文字列候補ｄ１０及び変換文字列候補ｄ１６それぞれについて予測変換辞書部３１を使用して予測文字列候補に変換しておく。予測変換文字列とは手書き認識文字列、言語文字列又は変換文字列を含んで生成される可能性が高い文字列である。別途、取得要求ｄ１９を手書き入力表示制御部２３から受信した場合、予測文字列候補ｄ２０を手書き入力表示制御部２３に送信する。
【００６９】
予測変換辞書部３１は予測変換用の辞書データである。予測変換辞書部３１は手書き認識文字列及び言語文字列候補と変換文字列候補ｄ２１を予測変換制御部３０から受信し、予測文字列候補ｄ２２を予測変換制御部３０に送信する。
【００７０】
操作コマンド認識制御部３２は手書き認識文字列及び言語文字列候補ｄ３０を手書き認識制御部２６から受信し、変換文字列候補ｄ２８を文字列変換制御部２８から受信する。操作コマンド認識制御部３２は予測文字列候補ｄ２９を予測変換制御部３０から受信する。そして、それぞれについて操作コマンド変換要求ｄ２６を操作コマンド定義部３３に送信し、操作コマンド定義部３３から操作コマンドの候補ｄ２７を受信する。操作コマンド認識制御部３２は操作コマンドの候補ｄ２７を保持しておく。
【００７１】
操作コマンド定義部３３は操作コマンド変換要求ｄ２６が操作コマンド定義と部分一致（一部又は全体で一致すること）している場合は操作コマンドの候補ｄ２７を操作コマンド認識制御部３２に送信する。
【００７２】
また、操作コマンド認識制御部３２はペン操作データｄ２４−１を手書き入力表示制御部２３から受信し、過去に入力され確定した確定オブジェクトの位置情報取得要求ｄ２３を手書き入力保存部２５に送信する。操作コマンド認識制御部３２はペン操作データが指定している確定オブジェクトを選択オブジェクト（位置情報を含む）として保持しておく。操作コマンド認識制御部３２はペン操作データｄ２４−１の位置と所定の基準を満たす選択オブジェクトを特定する。別途、取得要求ｄ２４−２を手書き入力表示制御部２３から受信した場合、保持している操作コマンドの候補と特定した選択オブジェクトｄ２５を手書き入力表示制御部２３に送信する。
【００７３】
ペンＩＤ制御データ保存部３６は、ペンＩＤ制御データを保持している（記憶手段といってもよい）。手書き入力表示制御部２３が表示部２２に表示データを送信する前に、ペンＩＤ制御データ保存部３６はペンＩＤ制御データｄ４１を手書き入力表示制御部２３に送信する。手書き入力表示制御部２３は、ペンＩＤに対応付けて保存されている動作条件で表示データを描画する。また、手書き認識制御部２６が手書き認識を実行する前に、ペンＩＤ制御データ保存部３６は手書き認識制御部２６にペンＩＤ制御データの角度情報ｄ４４を送信して、手書き認識制御部２６はペンＩＤに対応づけて保存されている角度情報でストロークを回転して手書き認識を実行する。
【００７４】
また、手書き認識制御部２６が、ユーザーが文字等を手書きする時の角度情報を設定するための直線を認識した後、手書き認識制御部２６はペンＩＤ制御データの角度情報ｄ４３をペンＩＤ制御データ保存部３６に送信して、ペンＩＤに対応付けて角度情報ｄ４３を保存する。また、手書き入力表示制御部２３が角度情報を設定する操作コマンドを実行後に、手書き入力表示制御部２３はペンＩＤ制御データｄ４２をペンＩＤ制御データ保存部３６に送信して、操作コマンドの実行結果（ユーザーが設定した角度情報）をペンＩＤに対応付けて保存する。以降、そのペンＩＤのストロークは設定した角度情報で回転してから手書き認識が実行される。
【００７５】
図７（ｂ）は、ペン２５００の機能をブロック状に示す機能ブロック図である。ペン２５００はペンイベント送信部４１を有している。ペンイベント送信部４１はペンアップ、ペンダウン、ペン座標のイベントデータにペンＩＤをつけて手書き入力装置２に送信する。
【００７６】
＜ユーザー認証について＞
本実施形態ではユーザー認証の結果を用いた制御が行われるため、手書き入力装置２がユーザー認証する機能を有することが好ましい。このため、図８を用いてユーザー認証に関する機能について説明する。
【００７７】
図８は、手書き入力装置２が有するユーザー認証に関する機能をブロック状に示す図である。なお、図８ではユーザー認証部３４（ユーザー認証手段）と関連する機能として手書き入力表示制御部２３のみを示したが、ユーザーの認証結果は図７に示した各機能が利用できてよい。
【００７８】
認証情報取得部３５はユーザーＵから認証情報ｄ３１を取得する。認証情報ｄ３１はＩＣカードのカード番号、ユーザーＩＤとパスワード、又は、指紋などの生体情報などでよい。ユーザー認証部３４は認証情報ｄ３２を認証情報取得部３５から取得して、認証情報ｄ３３をユーザー情報ＤＢ３７で検索する。検索に適合するユーザーが存在する場合はユーザー情報ｄ３４をユーザー情報ＤＢ３６から取得する。ユーザー情報はユーザーの属性を表す情報であればよく、例えば、ユーザー名、パスワード、ユーザーのコンピュータ名、部署、権限、などでよい。
【００７９】
ユーザー認証部３４はユーザー情報ｄ３５を手書き入力表示制御部２３に送信するので、手書き入力表示制御部２３はユーザー情報を用いて操作コマンドを実行できるようになる。ユーザー情報を用いた操作コマンドに関しては図１３にて説明される。
【００８０】
なお、認証機能は手書き入力装置２が有する他、外部の認証サーバー等が有していてもよい。この場合、手書き入力装置２は認証情報を認証サーバーに送信し、認証結果とユーザー情報を取得する。
【００８１】
＜定義済み制御データについて＞
次に、図９を用いて、手書き入力装置２が各種の処理に使用する定義済み制御データについて説明する。図９は定義済み制御データの一例を示す。図９の例では制御項目ごとに制御データを示す。
【００８２】
選択可能候補表示タイマー４０１は、選択可能候補を表示するまでの時間を定義する（第一の時間の一例）。手書き中に選択可能候補を表示しないためである。図９では、ペンアップからTimerValue＝５００〔ms〕以内にペンダウンが発生しなければ選択可能候補が表示されることを意味している。選択可能候補表示タイマー４０１は候補表示タイマー制御部２４が保持している。選択可能候補表示タイマー４０１は、後述する図２８のステップS18−2において選択可能候補表示タイマー開始時に使用される。
【００８３】
選択可能候補消去タイマー４０２は表示した選択可能候補を消去するまでの時間を定義する（第二の時間の一例）。ユーザーが選択可能候補を選択しない場合に選択可能候補を消去するためである。図９では、選択可能候補の表示からTimerValue＝５０００〔ms〕以内に選択可能候補が選択されなければ選択可能候補表示データが消去されることを意味している。選択可能候補消去タイマー４０２は候補表示タイマー制御部２４が保持している。選択可能候補消去タイマー４０２は図３０のステップS54において選択可能候補表示消去タイマー開始時に使用される。
【００８４】
手書きオブジェクト近傍矩形領域４０３は手書きオブジェクトの近傍とみなす矩形領域を定義する。図９の例では、手書きオブジェクト近傍矩形領域４０３は、手書きオブジェクトの矩形領域を水平方向に推定文字サイズの50%(Horizontal)拡大し、垂直方向に推定文字サイズの80%(Vertical)拡大した矩形領域となる。図９の例では推定文字サイズの割合（％指定）となっているが、単位を"mm"等とすれば固定長にすることも可能である。手書きオブジェクト近傍矩形領域４０３は手書き入力保存部２５が保持している。推定文字サイズ４０５は図２７のステップS10において、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況の判定で使用される。
【００８５】
推定書字方向/文字サイズ判定条件４０４は、書字方向と文字サイズの測定方向を判定するための定数を定義する。図９の例では、手書きオブジェクト矩形領域の最初にストロークが追加された時刻と最後にストロークが追加された時刻の差分がMinTime＝1000〔ms〕以上で、手書きオブジェクト矩形領域の水平距離（幅）と垂直距離（高さ）の差分がMinDiff＝10〔mm〕以上あり、水平距離が垂直距離より長い場合は、推定書字方向は「横書き」、推定文字サイズは垂直距離と判定することを意味する。水平距離が垂直距離より短い場合は、推定書字方向は「縦書き」、推定文字サイズは水平距離と判定することを意味する。以上の条件を満たさない場合は、推定書字方向は「横書き」(DefaultDir="Horizontal")、推定文字サイズは水平距離と垂直距離の長い方の距離と判定する。推定書字方向/文字サイズ判定条件４０４は手書き入力保存部２５が保持している。推定書字方向/文字サイズ判定条件４０４は図３０のステップS50における推定書字方向取得と、図３２のステップS72における文字列オブジェクトフォント取得で使用される。
【００８６】
推定文字サイズ４０５は文字等のサイズを推定するためのデータを定義する。図９の例では、推定書字方向/文字サイズ判定条件４０４で判定された推定文字サイズが、推定文字サイズ４０５の小さめ文字４０５ａ（以下、最小フォントサイズ、と呼ぶ）と大きめ文字４０５ｃ（以下、最大フォントサイズ）と比較されることを意味する。推定文字サイズが最小フォントサイズより小さい場合、推定文字サイズは最小フォントサイズと判定される。推定文字サイズが最大フォントサイズより大きい場合、推定文字サイズは最大フォントサイズと判定される。それ以外は、中くらい文字４０５ｂの文字サイズと判定される。推定文字サイズ４０５は手書き入力保存部２５が保持している。推定文字サイズ４０５は、図３２のステップS72における文字列オブジェクトフォント取得で使用される。
【００８７】
手書き入力保存部２５は具体的には、推定書字方向/文字サイズ判定条件４０４で判定された推定文字サイズを推定文字サイズ４０５のFontSizeと比較して、最も近いサイズのフォントを使用する。例えば、推定文字サイズが25〔mm〕(小さめ文字のFontSize)以下の場合は「小さめ文字」、推定文字サイズが25mm超50mm(中くらい文字のFontSize)以下の場合は「中くらい文字」、推定文字サイズが100mm(大きめ文字のFontSize)超の場合は「大きめ文字」と判定する。「小さめ文字」４０５ａは明朝体の25mmフォント(FontStyle="明朝体" FontSize="25mm")、「中くらい文字」４０５ｂは明朝体の50mmフォント(FontStyle="明朝体" FontSize="50mm")、「大きめ文字」４０５ｃはゴシック体の100mmフォント(FontStyle="ゴシック体" FontSize="100mm")を使用する。もっとフォントのサイズ又はスタイルの種類を増やしたい場合は、推定文字サイズ４０５の種類を増やせばよい。
【００８８】
跨ぎ線判定条件４０６は複数のオブジェクトが選択されたか否かの判定に使用されるデータを定義する。手書きオブジェクトが単数のストロークであり、図９の例では、手書きオブジェクトの長辺の長さが100〔mm〕以上(MinLenLongSide="100mm")、かつ、短辺の長さが50〔mm〕以下(MaxLenShortSide="50mm")、かつ、手書きオブジェクトとの長辺方向と短辺方向の重なり率が80〔%〕以上(MinOverLapRate="80%")のオブジェクトがあれば、複数のオブジェクトが選択された（選択オブジェクト）と判定する。跨ぎ線判定条件４０６は操作コマンド認識制御部３２が保持している。跨ぎ線判定条件４０６は図２９のステップS41における選択オブジェクトの判定の跨ぎ線判定で使用される。
【００８９】
囲み線判定条件４０７は、オブジェクトが囲み線か否かの判定に使用されるデータを定義する。図９の例では、操作コマンド認識制御部３２は手書きオブジェクトの長辺方向と短辺方向の重なり率が100%以上(MinOverLapRate="100%")の確定オブジェクトを選択オブジェクトと判定する。囲み線判定条件４０７は、操作コマンド認識制御部３２が保持している。囲み線判定条件４０７は、図２９のステップS41における選択オブジェクトの判定の囲み線判定で使用される。
【００９０】
なお、跨ぎ線判定条件４０６と囲み線判定条件４０７はどちらが優先して判定されてもよい。例えば、跨ぎ線判定条件４０６を緩やかにして（跨ぎ線を選択しやすくした場合）、囲み線判定条件４０７は厳密にした場合（囲み線のみを選択できるような値とした場合）、操作コマンド認識制御部３２は囲み線判定条件４０７を優先して判定するのがよい。
【００９１】
＜辞書データの一例＞
図１０〜図１２を用いて辞書データについて説明する。図１０は手書き認識辞書部２７の辞書データの一例である。図１１は文字列変換辞書部２９の辞書データの一例である。図１２は予測変換辞書部３１の辞書データの一例である。なお、これらの辞書データはそれぞれ図２９のステップS24〜S33で使用される。
【００９２】
本実施形態では、図１０の手書き認識辞書部２７の辞書データによる変換結果を言語文字列候補、図１１の文字列変換辞書部２９の辞書データによる変換結果を変換文字列候補、図１２の予測変換辞書部３１の辞書データによる変換結果を予測文字列候補と呼ぶ。各辞書データの「変換前」は辞書データを検索する文字列、「変換後」は検索する文字列に対応した変換後の文字列、「確率」はユーザーが選択する確率を表す。確率は過去にユーザーが各文字列を選択した結果から算出されている。したがって、ユーザーごとに確率が算出されてもよい。確率の計算方法として様々なアルゴリズムが考案されているが、適宜、適切な方法で計算するものとすればよく、詳細は割愛する。本実施形態では、推定書字方向から文字列候補を選択確率降順で表示することを特徴とする。
【００９３】
図１０の手書き認識辞書部２７の辞書データでは、手書きされた「ぎ」は、確率0.55で「議」、確率0.4で「技」、手書きされた「ぎし」は、確率0.5で「技士」、確率0.45で「技師」に変換されることを示す。その他の「変換前」の文字列についても同様である。図１０では「変換前」の文字列が手書きされた平仮名となっているが、平仮名以外を「変換前」に登録してもよい。
【００９４】
図１１の文字列変換辞書部２９の辞書データでは、文字列「議」は確率0.95で「議事録」に、文字列「技」は確率0.85で「技量試」に変換されることを示す。その他の「変換前」の文字列についても同様である。
【００９５】
図１２の予測変換辞書部３１の辞書データでは、文字列「議事録」は確率0.65で「議事録の送付先」に、文字列「技量試」は確率0.75で「技量試を決裁」に変換されることを示す。図１２の例では変換前の文字列がすべて漢字になっているが、漢字以外を登録してもよい。
【００９６】
なお、辞書データに言語依存はなく、変換前と変換後にどのような文字列が登録されていてもよい。
【００９７】
＜操作コマンド定義部が保持する操作コマンド定義データ＞
次に、図１３、図１４を用いて操作コマンド認識制御部３２が使用する操作コマンド定義データについて説明する。図１３は、操作コマンド定義部３３が保持する操作コマンド定義データとシステム定義データの一例を示す。
【００９８】
図１３（ａ）は操作コマンド定義データの一例を示す。図１３（ａ）の操作コマンド定義データは、手書きオブジェクトにより選択された選択オブジェクトがない場合の操作コマンド定義データ例であり、手書き入力装置２を操作する全ての操作コマンドが対象となる。図１３（ａ）の操作コマンドは操作コマンド名(Name)、文字列候補と部分一致する文字列(String)、実行する操作コマンド文字列(Command)を有する。操作コマンド文字列内の「%〜%」は変数であり、図１３（ｂ）に示すようにシステム定義データと対応付けられている。つまり、「%〜%」は図１３（ｂ）に示すシステム定義データで置き換えられる。
【００９９】
まず、操作コマンド定義データ７０１は、操作コマンド名が「議事録テンプレートを読み込む」、文字列候補と部分一致する文字列が「議事録」又は「テンプレート」、実行する操作コマンド文字列が「ReadFile https://%username%:%password%@server.com/template/minutes.pdf」であることを示す。この例では、実行する操作コマンド文字列に「%〜%」のシステム定義データが含まれており「%username%」「%password%」はそれぞれシステム定義データ７０４、７０５で置き換えられることを示す。したがって、最終的に実行する操作コマンド文字列は「ReadFile https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」という文字列となり、「https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」というファイルを読み込む(ReadFile)ことを示す。
【０１００】
操作コマンド定義データ７０２は、操作コマンド名が「議事録フォルダーに保存する」、文字列候補と部分一致する文字列が「議事録」又は「保存」、実行する操作コマンド文字列が「WriteFile https://%username%:%password%@server.com/minutes/%machinename%_%yyyy−mm−dd%.pdf」であることを示す。操作コマンド定義データ７０１と同様に、操作コマンド文字列の「%username%」「%password%」「%machinename%」はそれぞれシステム定義データ７０４〜７０６で置き換えられる。なお、「%yyyy−mm−dd%」は現在日で置き換えることを示す。例えば、現在日が2018年9月26日であれば「2018−09−26」で置き換えることを示す。最終的に実行する操作コマンドは「WriteFile https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My−Machine_2018−09−26.pdf」となり、議事録を「https://taro.tokkyo:x2PDHTyS@server.com/minutes/%My−Machine_2018−09−26.pdf」というファイルに保存する(WriteFile)ことを示す。
【０１０１】
操作コマンド定義データ７０３は、操作コマンド名が「印刷する」、文字列候補と部分一致する文字列が「印刷」又は「プリント」、実行する操作コマンド文字列が「PrintFile https://%username%:%password%@server.com/print/%machinename%−"%yyyy−mm−dd%.pdf」であることを示す。操作コマンド定義データ７０２と同様に操作コマンド文字列を置き換えると、最終的に実行する操作コマンドは「PrintFile https://taro.tokkyo:x2PDHTyS@server.com/print/%My−Machine_2018−09−26.pdf」となり、「https://taro.tokkyo:x2PDHTyS@server.com/print/%My−Machine_2018−09−26.pdf」というファイルを印刷する(PrintFile)ことを示す。つまり、ファイルがサーバーに送信される。ユーザーがプリンターをサーバーと通信させ、ファイルを指定するとプリンターが用紙にファイルの内容を印刷する。
【０１０２】
このように、文字列候補から操作コマンド定義データ７０１〜７０３を特定できるため、ユーザーが手書きすることで操作コマンドを表示させることができる。また、ユーザーの認証が成功した場合にはユーザー情報で操作コマンド定義データの「%username%」「%password%」等が置き換えられるので、ユーザーに対応付けてファイルの入出力が可能になる。
【０１０３】
ユーザーの認証が行われない場合（認証に失敗したがユーザーが手書き入力装置２を使用できる場合は認証失敗の場合も含む）、手書き入力装置２は、予め設定されている手書き入力装置２の「%username%」「%password%」等に置き換える。したがって、ユーザー認証なしでも手書き入力装置２に対応付けてファイルの入出力が可能になる。
【０１０４】
操作コマンド定義データ７０９、７１０、７１１は、ペン状態を変更する操作コマンドである。ペン状態とはペンの種類と称してもよい。操作コマンド定義データ７０９、７１０、７１１それぞれの操作コマンド名は「細ペン」「太ペン」「マーカー」、文字列候補と部分一致する文字列が「細」、「ペン」、「太」「ペン」、「マーカー」又は「ペン」、操作コマンド文字列が「ChangePen fine」「ChangePen bold」又は「Changepen marking」である。この操作コマンドが実行されると、ペン状態はペンＩＤ制御データ保存部３６に保存されるので、ユーザーは設定したペン状態でストロークを手書きできる。
【０１０５】
操作コマンド定義データ７１２は、テキストデータの方向を一定方向に揃えるための操作コマンドである。操作コマンド定義データ７１２の操作コマンド名は「テキスト方向を揃える」、文字列候補と部分一致する文字列が「テキスト」「向き」又は「方向」、操作コマンド文字列が「AlignTextDirection」である。ユーザーが天地方向以外から書き込んだテキストデータは向きがばらばらなので、ある１つの方向から全てを読み取りにくい。操作コマンド定義データ７１２をユーザーが実行すると、手書き入力装置２は手書き認識した文字列を同一方向（例えば、天地方向）に揃える。この場合の揃えるとは、テキストデータを角度情報だけ回転させることをいう。
【０１０６】
続いて、図１４に基づいて手書きオブジェクトがある場合の操作コマンド定義データ、つまり編集系及び修飾系の操作コマンド定義データについて説明する。図１４は手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す。図１４の操作コマンド定義データは、操作コマンド名(Name)、操作コマンドの候補のグループ名(Group)、実行する操作コマンド文字列(Command)を有する。
【０１０７】
操作コマンド定義データ７０７は編集系(Group="Edit")の操作コマンドを定義しており、編集系の操作コマンド名「消去」「移動」「回転」「選択」の定義データ例である。つまり、選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。
【０１０８】
操作コマンド定義データ７０８は修飾系(Group="Decorate")の操作コマンドを定義しており、修飾系の操作コマンド名「太く」「細く」「大きく」「小さく」「下線」の定義データ例である。選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。この他、色の操作コマンドが表示されてもよい。
【０１０９】
したがって、ユーザーが選択オブジェクトを手書きオブジェクトで選択することで、操作コマンド定義データ７０７、７０８が特定されるため、ユーザーが手書きすることで操作コマンドを表示させることができる。
【０１１０】
＜手書き入力保存部が保存する手書き入力保存データ＞
次に、図１５を用いて、手書き入力保存データについて説明する。図１５は、手書き入力保存部２５が保存する手書き入力保存データの一例を示す。図１５の１行が１つのストロークを表す。１つの手書き入力保存データは、DataId、Type、PenId, Color, Width, Pattern, Angle、StartPoint、StartTime、EndPoint、EndTime、Point、及び、Pressureの各項目を有している。
【０１１１】
DataIdはストロークの識別情報である。Typeはストロークの種別である。種別にはストローク(Stroke)、グループ(Group)、及びテキスト(Text)がある。手書き入力保存データ８０１、８０２の種別はStrokeであり、手書き入力保存データ８０３の種別はGroupである。Groupとは他のストロークをグループ化することを意味し、種別がGroupの手書き入力保存データは、DataIdでグループ化の対象のストロークを指定する。PenId、Color, Width, Pattern, Angleは次述するペンＩＤ制御データが転記されたものである。StartPointはストロークの始点座標であり、StartTimeはストロークの始点時刻である。EndPointはストロークの終点座標であり、EndTimeはストロークの終点時刻である。Pointは始点から終点までの座標列であり、Pressureは始点から終点までの筆圧である。Angleに示すように、手書き入力保存データ８０４，８０５はそれぞれ１８０度、２７０度だけ時計回りに回転してから手書き認識されたことを示す。
【０１１２】
＜ペンＩＤ制御データ保存部が保存するペンＩＤ制御データ＞
次に、図１６を用いて、ペンＩＤ制御データについて説明する。図１６は、ペンＩＤ制御データ保存部３６が保存するペンＩＤ制御データを説明する図である。図１６（ａ）の１行が１つのペンのペンＩＤ制御データを示す。また、図１６（ｂ）は手書き入力装置２に対しユーザーが手書きする時の角度情報を説明する図である。角度情報はユーザーが存在する方向の角度とも言えるし、ペンが使用される方向の角度とも言えるし、ユーザーが手書きした文字の回転に関する角度とも言える。手書き入力装置２の所定の方向（例えば天地方向）を０度（基準）として、各ユーザーの角度情報は反時計回りに４５度、９０度、１３５度、１８０度、２２５度、２７０度、３１５度、である。
【０１１３】
ユーザーの角度情報は、手書き入力装置２が平置きされた場合に、手書き入力装置２に対しユーザーが存在する位置である。すなわちユーザーの角度情報は位置に関する情報ということができる。手書き入力装置２から見てどの方向にユーザーがいるかを特定できる。角度情報の他、手書き入力装置２から見た方向を時計に見立て、０度：６時方向、４５度：４時方向と５時方向の間、９０度：３時方向、１３５度：１時方向と２時方向の間、１８０度：１２時方向、２２５度：１０時方向と１１時方向の間、２７０度：９時方向、３１５度：７時方向と８時方向の間、と表現してもよい。
【０１１４】
なお、角度情報はユーザーの位置によって自動的に決まるわけではなく、各ユーザーが角度情報を入力する（指定する）。指定可能な角度情報の分解能（図１６では４５度）は一例に過ぎず、より小さい５度〜３０度などでもよい。ただし、４５度くらいで回転した文字であれば、ユーザーは読めると考えられる。
【０１１５】
ペンＩＤ制御データは、PenId、Color、Width、Pattern、及び、Angleを有している。PenIdはペン内部に保存されている識別情報である。Colorはこのペンに設定されているストロークの色である（ユーザーが任意に変更可能）。Widthはこのペンに設定されているストロークの太さである（ユーザーが任意に変更可能）。Patternはこのペンに設定されているストロークの線種である（ユーザーが任意に変更可能）。Angleはこのペンに設定されているストロークの角度情報である（ユーザーが任意に変更可能）。図１６（ａ）の例では、各ペンの角度情報は、反時計回りに０度、９０度、１８０度、２７０度となっている。
【０１１６】
ペンＩＤ制御データ９０１はペンＩＤが１の制御データで、色は黒(Black)、太さは1ピクセル(1 px)、パターンはベタ塗り(Solid)、角度情報は０度である。同様に、ペンＩＤ制御データ９０２はペンＩＤが２、色は黒、太さは１ピクセル、パターンはベタ塗り、角度情報は９０度である。ペンＩＤ制御データ９０３は、ペンＩＤが３、色は黒、太さは１０ピクセル、パターンはベタ塗り、角度情報は１８０度である。ペンＩＤ制御データ９０４は、色が黒、太さは10ピクセル、パターンはハーフトーンドット、角度情報は２７０度である。
【０１１７】
このデータは、図２６のステップS5（ペンＩＤ制御データ取得）、図２８のステップS20（ペンＩＤ制御データの角度情報を保存）、ステップS21（ペンＩＤ制御データの角度情報を取得）、図３０のステップS51（ペンＩＤ制御データの取得）、図３２のステップS78（ペンＩＤ制御データの角度情報を保存）、で使用される。
【０１１８】
＜選択可能候補の表示例＞
図１７は操作ガイド５００と操作ガイドが表示する選択可能候補５３０の一例である。ユーザーが手書きオブジェクト５０４を手書きすることで（選択可能候補表示タイマーのタイムアウトにより）、操作ガイド５００が表示される。操作ガイド５００は、操作ヘッダー５２０、操作コマンドの候補５１０、手書き認識文字列候補５０６、変換文字列候補５０７、文字列/予測変換の候補５０８、及び、手書きオブジェクト矩形領域表示５０３を有している。選択可能候補５３０は、操作コマンドの候補５１０、手書き認識文字列候補５０６、変換文字列候補５０７、文字列/予測変換の候補５０８である。この例では言語変換文字列がないが表示される場合がある。また、操作コマンドの候補５１０を除く選択可能候補５３０を文字列候補５３９という。
【０１１９】
操作ヘッダー５２０はボタン５０１、５０９、５０２、５０５を有する。ボタン５０１は予測変換とカナ変換の切り替え操作を受け付ける。図１７の例ではユーザーが「予測」と表示されているボタン５０９を押下すると手書き入力部２１がそれを受け付けて手書き入力表示制御部２３にその旨を通知し、表示部２２が「かな」というボタン５０９に表示を変更する。変更後は、文字列候補５３９が「カナ変換」の確率降順で並ぶ。
【０１２０】
ボタン５０２は候補表示のページ操作をする。図１７の例では候補表示ページは３ページあり、現在は１ページ目を表示している。ボタン５０５は操作ガイド５００の消去を受け付ける。ユーザーがボタン５０５を押下すると手書き入力部２１が受け付けて手書き入力表示制御部２３にその旨を通知し、表示部２２が手書きオブジェクト以外の表示を消去する。ボタン５０９は一括表示消去を受け付ける。ユーザーがボタン５０９を押下すると手書き入力部２１が受け付けて手書き入力表示制御部２３にその旨を通知する。表示部２２は手書きオブジェクトを含め、図１７に示されているすべての表示を消去する。ユーザーは最初から手書きしなおすことができる。
【０１２１】
手書きオブジェクト５０４はユーザーが手書きした「ぎ」という文字である。手書きオブジェクト５０４を囲む手書きオブジェクト矩形領域表示５０３が表示される。表示の手順は図２６〜図３２のシーケンス図で説明する。図１７の例では点線枠で手書きオブジェクト矩形領域表示５０３が表示されている。
【０１２２】
手書き認識文字列候補５０６、変換文字列候補５０７、文字列/予測変換の候補５０８にはそれぞれの文字列候補が確率降順で並んでいる。手書き認識文字列候補５０６の「ぎ」は認識結果の候補である。この例では正しく「ぎ」を認識している。
【０１２３】
変換文字列候補５０７は言語文字列候補から変換された変換文字列候補である。この例の「技量試」とは「技術量産試作」の略名である。文字列/予測変換の候補５０８は言語文字列候補又は変換文字列候補から変換された予測文字列候補である。この例では「技量試を決裁」と「議事録の送付先」が表示されている。
【０１２４】
操作コマンドの候補５１０は図１３（ａ）の操作コマンド定義データ７０１〜７０３、７０９〜７１２に基づいて選択された操作コマンドの候補である。図１７の例では行頭文字の「》」５１１が操作コマンドの候補であることを示している。図１７では手書きオブジェクト５０４である「ぎ」が選択する選択オブジェクトがなく、「ぎ」の文字列候補である「議事録」が、図１３（ａ）の操作コマンド定義データ７０１，７０２と部分一致したため、操作コマンドの候補５１０として表示されている。
【０１２５】
ユーザーが「議事録テンプレートを読み込む」を選択すると、操作コマンド定義データ７０１で定義された操作コマンドが実行され、「議事録フォルダーに保存する」を選択すると、操作コマンド定義データ７０２で定義された操作コマンドが実行される。このように操作コマンドの候補は、変換された文字列を含む操作コマンド定義データが見つかる場合に表示されるため、常に表示されるとは限らない。
【０１２６】
図１７に示すように、文字列候補と操作コマンドの候補が同時に（共に）表示されるため、ユーザーは自分が入力しようとした文字列候補と操作コマンドのどちらも任意に選択できる。
【０１２７】
＜操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係＞
表示部２２は、ストロークデータの位置に応じた位置にテキストデータを含む操作ガイド５００を表示する。表示部２２は、ストロークデータの位置に基づいた画面内の位置に、テキストデータを含む操作ガイド５００を表示する。このように、操作ガイド５００の位置はストロークデータの位置によって定まる。
【０１２８】
図１８は、操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。まず、操作ガイド５００の横幅Ａ及び高さＨ１は一定である。手書きオブジェクト矩形領域表示５０３の右端と操作ガイド５００の右端は一致する。
【０１２９】
手書きオブジェクト矩形領域表示５０３の横幅Ｂは、ユーザーが手書きした手書きオブジェクト５０４の長さによって定まる。図１８（ａ）では、手書きオブジェクト矩形領域表示５０３の横幅Ｂが１文字分であり、Ａ＞Ｂなので、操作ガイド５００の左上コーナーＰの座標（ｘ0、ｙ0）は以下のように算出される。なお、手書きオブジェクト矩形領域表示５０３の左上コーナーＱの座標を（ｘ1、ｙ1）とする。手書きオブジェクト矩形領域表示５０３の高さをＨ２とする。
ｘ0 ＝ ｘ1 −（Ａ−Ｂ）
ｙ0 ＝ ｙ１＋Ｈ２
【０１３０】
一方、図１８（ｂ）に示すように、手書きオブジェクト矩形領域表示の横幅ＢがＡより大きい場合、操作ガイド５００の左上コーナーＰの座標（ｘ0、ｙ0）は以下のように算出される。
ｘ0 ＝ ｘ1＋（Ｂ−Ａ）
ｙ0 ＝ ｙ１＋Ｈ２
【０１３１】
なお、図１８等では手書きオブジェクト矩形領域表示５０３の下方に操作ガイド５００が表示されているが、操作ガイド５００は手書きオブジェクト矩形領域表示５０３の上方に表示されてもよい。
【０１３２】
図１９は、手書きオブジェクト矩形領域表示５０３の上方に表示された操作ガイド５００を示す。ｘ1の算出方法は図１８と同様であるが、ｙ0の算出方法が変わる。
ｙ0 ＝ ｙ１− Ｈ１
なお、操作ガイド５００は手書きオブジェクト矩形領域表示５０３の右側又は左側に表示されてもよい。また、ユーザーがディスプレーの端に手書きしたため操作ガイド５００の表示スペースがない場合、操作ガイド５００は表示スペースがある側に表示される。
【０１３３】
＜選択オブジェクトの指定例＞
本実施形態の手書き入力装置２は確定オブジェクトをユーザーが手書きにより選択することで選択オブジェクトを指定できる。選択オブジェクトは編集又は修飾の対象となる。
【０１３４】
図２０は、選択オブジェクトの指定例を説明する図の一例である。図２０では、手書きオブジェクト１１は黒色実線、手書きオブジェクト矩形領域１２を灰色網掛け、確定オブジェクト１３を黒線、選択オブジェクト矩形領域１４を点線でそれぞれ表示している。なお、それぞれを区別する場合に小文字のアルファベットを符号に付加する。また、確定オブジェクトを選択オブジェクトと判定するための判定条件（所定の関係にあるか否か）として、図９に示した定義済み制御データの跨ぎ線判定条件４０６又は囲み線判定条件４０７を使用している。
【０１３５】
図２０（ａ）は横書きの２つの確定オブジェクト１３ａ、１３ｂをユーザーが跨ぎ線（手書きオブジェクト１１ａ）で指定した例である。この例では、手書きオブジェクト矩形領域１２ａの短辺の長さＨ１と長辺の長さＷ１が跨ぎ線判定条件４０６の条件を満たしており、確定オブジェクト１３ａ、１３ｂとの重なり率が跨ぎ線判定条件４０６の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト１３ａ、１３ｂが選択オブジェクトとして指定されている。
【０１３６】
図２０（ｂ）は横書きの確定オブジェクト１３ｃを囲み線（手書きオブジェクト１１ｂ）で指定した例である。この例では、確定オブジェクト１３ｃと手書きオブジェクト矩形領域１２ｃの重なり率が囲み線判定条件４０７の条件を満たしている「議事録」という確定オブジェクト１３ｃだけが選択オブジェクトとして指定されている。
【０１３７】
図２０（ｃ）は縦書きの複数の確定オブジェクト１３ｄ、１３ｅを跨ぎ線（手書きオブジェクト１１ｃ）で指定した例である。この例では、図２０（ａ）と同様に、手書きオブジェクト矩形領域１２ｄの短辺の長さＨ１と長辺の長さＷ１が跨ぎ線判定条件４０６の条件を満たしており、「議事録」と「ぎじ」という２つの確定オブジェクト１３ｄ、１３ｅそれぞれとの重なり率が跨ぎ線判定条件４０６の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト１３ｄ、１３ｅが選択オブジェクトとして指定されている。
【０１３８】
図２０（ｄ）は縦書きの確定オブジェクト１３ｆを囲み線（手書きオブジェクト１１ｄ）で指定した例である。この例では、図２０（ｂ）と同様に、「議事録」という確定オブジェクト１３ｆだけが選択オブジェクトとして指定されている。
【０１３９】
＜操作コマンドの候補の表示例＞
図２１は、図１４に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図２１（ａ）は編集系の操作コマンドの候補であり、図２１（ｂ）は修飾系の操作コマンドの候補である。また、図２１（ａ）は図２０（ａ）の手書きオブジェクト１１ａで選択オブジェクトが指定された例を示す。
【０１４０】
図２１（ａ）（ｂ）に示すように、行頭文字「》」５１１に続いて表示された操作コマンドの候補がメインメニュー５５０である。メインメニュー５５０には最後に実行された操作コマンド名又は操作コマンド定義データで先頭の操作コマンド名が表示される。１行目の行頭文字「》」５１１ａは編集系の操作コマンドの候補であり、２行目の行頭文字「》」５１１ｂは修飾系の操作コマンドの候補である。
【０１４１】
行末の「〉」５１２はサブメニューがあることを示す（サブメニューボタンの一例）。１行目の「〉」５１２ａは編集系の操作コマンドの候補についてサブメニュー（最後に選択された）を表示させる。２行目の「〉」５１２ｂは修飾系の操作コマンドの候補について残りのサブメニューを表示させる。ユーザーが「〉」５１２を押下すると、その右側にサブメニュー５６０が表示される。サブメニュー５６０には操作コマンド定義データで定義されている全ての操作コマンドが表示される。図２１（ａ）の表示例ではメインメニューが表示された時から１行目の「〉」５１２ａに対応したサブメニュー５６０も表示されている。１行目の「〉」５１２ａの押下により表示されてもよい。
【０１４２】
ユーザーがペンでいずれかの操作コマンド名を押下すると、操作コマンド名に対応付けられた操作コマンド定義データのCommandを手書き入力表示制御部２３が選択オブジェクトに対して実行する。すなわち「消去」５２１が選択されると「Delete」、「移動」５２２が選択されると「Move」、「回転」５２３が選択されると「Rotate」、「選択」５２４が選択されると「Select」をそれぞれ実行する。
【０１４３】
例えば、ユーザーが「消去」５２１をペンで押下すると「議事録」と「ぎじ」を消去でき、「移動」５２２，「回転」５２３、「選択」５２４を押すとバウンディングボックス（選択オブジェクトの外接矩形）が表示され、「移動」５２２と「回転」５２３ではペンのドラッグ動作で移動又は回転でき、「選択」５２４ではその他のバウンディングボックスの操作を実行できる。
【０１４４】
操作コマンドの候補以外の文字列候補である「一」５４１、「一、」５４２、「〜」５４３、「→」５４４、「⇒」５４５は跨ぎ線（手書きオブジェクト１１ａ）の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【０１４５】
図２１（ｂ）では２行目の「〉」５１２ｂの押下により、図２１（ｂ）のサブメニューが表示される。図２１（ｂ）の表示例も図２１（ａ）と同様にメインメニュー５５０とサブメニュー５６０が表示されている。図１４の操作コマンド定義データに基づいて、「太く」５３１が選択されると「Thick」、「細く」５３２が選択されると「Thin」、「大きく」５３３が選択されると「Large」、「小さく」５３４が選択されると「Small」、下線５３５が選択されると「Underline」を手書き入力表示制御部２３が選択オブジェクトに対してそれぞれ実行する。
【０１４６】
なお、「太く」５３１が選択された場合にどのくらい太くするか、「細く」５３２が選択された場合にどのくらい細くするか、「大きく」５３３が選択された場合にどのくらい大きくするか、「小さく」５３４が選択された場合にどのくらい小さくするか、下線５３５が選択された場合の線種等は、固定値が別途定義されている。あるいは、図２１（ｂ）のサブメニューが選択されると別途、選択メニューが開かれユーザーが調整できるようになっているとなおよい。
【０１４７】
ユーザーが「太く」５３１をペンで押下すると「議事録」と「ぎじ」という確定オブジェクト１３ａ、１３ｂを構成する線を手書き入力表示制御部２３が太くする。「細く」５３２をペンで押下すると、「議事録」と「ぎじ」を構成する線を手書き入力表示制御部２３が細くでき、「大きく」５３３をペンで押下すると手書き入力表示制御部２３が大きくでき、「小さく」５３４をペンで押下すると手書き入力表示制御部２３が小さくでき、「下線」５３５をペンで押下すると下線を手書き入力表示制御部２３が追加できる。
【０１４８】
図２２は、図１４に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。図２１（ａ）（ｂ）との相違は、図２２（ａ）（ｂ）は図２０（ｂ）の手書きオブジェクト１１ｂ（囲み線）で選択オブジェクトが指定された例を示す。図２１と図２２を比較すると分かるように手書きオブジェクトが線か囲み線かによって表示される操作コマンドの候補に違いはない。手書き入力表示制御部２３は選択オブジェクトが指定されると操作コマンドの候補を表示部２２に表示させるためである。しかし、手書きオブジェクトを認識して手書きオブジェクトに応じて表示する操作コマンドの候補を変更してもよい。この場合、認識された手書きオブジェクト（一や○など）に図１４のような操作コマンド定義データを対応付けておく。
【０１４９】
図２２において操作コマンドの候補以外の文字列候補である「○」５５１、「∞」５５２、「０」５５３、「００」５５４、「ロ」５５５は囲み線（手書きオブジェクト１１ｂ）の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【０１５０】
＜角度情報の入力例＞
次に、図２３を用いて角度情報の入力方法を説明する。図２３は、角度情報の入力方法を説明する図の一例である。図２３では手書き入力装置２の３時の方向に存在するユーザーが角度情報を入力する場合を説明する。３時の方向から手書きされた文字等は時計回りに９０度回転されると正しく認識されるので、９０度の角度情報が入力されるとよい。
【０１５１】
図２３（ａ）は、ペンＩＤ制御データの角度情報が０度（初期値）の状態で、手書き入力装置２の３時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド５００が表示された状態を示す。手書き入力装置２は３時の方向から手書きした「ぎ」を、角度情報が０度のまま文字認識するため、期待とは違う選択可能候補５３０が表示されている。
【０１５２】
角度情報を入力する場合、ユーザーは操作ガイド５００内に（所定範囲の一例）、ユーザーから見て上から下方向に直線を手書きする。図２３（ｂ）はこの直線５２１の一例を示す。角度情報が０度である６時の方向とこの直線５２１との反時計回りのなす角αが角度情報である。すなわち、始点Ｓから６時の方向に下ろした直線５２２と、ユーザーが入力した直線５２１の反時計回りのなす角αが角度情報である。簡単には、直線５２１の終点方向が角度情報である。したがって、図２３（ｂ）でユーザーが入力した角度情報は９０度である。
【０１５３】
なお、直線の検出には、例えば、始点Ｓから終点Ｅまでの座標を最小二乗法で直線に変換し、得られた相関係数と閾値を比較して直線か否かを判定する方法がある。
【０１５４】
ユーザーが直線５２１を書き始めた直後（ペン２５００を直線５２１の始点Ｓに触れた直後）、手書き入力装置２は操作ガイド５００を消去する。また、直線５２１を書き終わった直後（ペン２５００を直線５２１の終点Ｅから離した直後）、手書き入力装置２は、４５度、９０度、１３５度、１８０度、２１５度、２７０度、３１５度、３６０度から上記のなす角αが最も近い値を探してそれを角度情報に決定する。なす角αそのものを角度情報としてもよい。ペンＩＤ制御データのAngleには決定した角度情報が設定される。ペン２５００のペンイベント送信部４１は、手書きなどのためにペン先が押圧されると、ペンＩＤを手書き入力装置２に送信するので、手書き入力装置２はペンＩＤ制御データに角度情報を対応付けることができる。
【０１５５】
なお、ユーザーが直線を手書きして角度情報を入力できるのは操作ガイド５００に限られている。これにより、ユーザーが操作ガイド５００以外で直線を手書きすると「１」や「一」などと認識され、操作ガイド５００で直線を手書きすると角度情報を入力できる。すなわち、手書き認識制御部２６は、所定範囲から直線を検出し、所定範囲外に手書きされたストロークデータをテキストデータに変換する。
【０１５６】
図２３（ｃ）は、図２３（ｂ)の操作直後の操作ガイド５００を示す。ペンＩＤ制御データには角度情報(Angle)として９０度が設定されたので、手書きオブジェクト（ストロークデータ）が内部的に９０度だけ時計回りに回転して手書き認識され、操作ガイド５００は９０度だけ反時計回りに回転して表示されている。
【０１５７】
図２４は、４５度の角度情報の入力方法を説明する図の一例である。図２４では手書き入力装置２の４時と５時の中間の方向に存在するユーザーが角度情報を入力する場合を説明する。４時方向と５時方向の中間から手書きされた文字等は時計回りに４５度回転されると正しく認識されるので、４５度の角度情報が入力されるとよい。
【０１５８】
図２４（ａ）は、角度情報が０度（初期値）の状態で、手書き入力装置２の４時方向と５時方向の中間の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド５００と選択可能候補が表示された状態を示す。手書き入力装置２は４時方向と５時方向の中間の方向から手書きした「ぎ」を、角度情報が０度のまま文字認識するため、期待とは違う選択可能候補が表示されている。
【０１５９】
角度情報を入力する場合、ユーザーは操作ガイド５００内に、ユーザーから見て上から下方向に直線を手書きする。図２４（ｂ）はこの直線５２１の一例を示す。角度情報が０度の６時の方向とこの直線５２１との反時計回りのなす角αが角度情報である。したがって、図２４（ｂ）でユーザーが入力した角度情報は４５度である。ペンＩＤ制御データのAngleにはこの角度情報（４５度）が設定される。
【０１６０】
図２４（ｃ）は、図２４（ｂ)の操作直後の操作ガイド５００を示す。ペンＩＤ制御データには角度情報(Angle)として４５度が設定されたので、手書きオブジェクトが内部的に４５度だけ時計回りに回転して手書き認識され、操作ガイド５００は４５度だけ反時計回りに回転して表示される。
【０１６１】
図２５は、角度情報の別の入力方法を説明する図の一例である。図２５では手書き入力装置２の３時の方向にユーザーが存在するものとする。図２５は、角度情報が０度（初期値）の状態で、手書き入力装置２の３時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド５００が表示されている。また、図２５の操作ガイド５００は操作ヘッダー５２０に回転操作ボタン５１１を有している。回転操作ボタン５１１のアイコンは円形になっており、ユーザーがどの方向から見ても回転操作ボタン５１１を認識しやすくなっている。
【０１６２】
回転操作ボタン５１１は、ユーザーがペン２５００で押下するたびに、ペンＩＤ制御データの角度情報を９０度ずつ加算して３６０度で割った余りに変更するボタンである。この余りが角度情報となる。なお、回転操作ボタン５１１の１回の押下で加算される角度を４５度としてもよい。また、押下のたびに現在の角度情報が分かる表示（例えば、角度情報をポップアップ表示する）をするとよい。
【０１６３】
＜動作手順＞
以上の構成と図２６〜図３２を用いて、手書き入力装置２の動作について説明する。図２６〜図３２は手書き入力装置２が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。図２６の処理は、手書き入力装置２が起動すると（アプリケーションが起動すると）スタートする。なお、図２６〜図３２ではスペースの都合上、符号で図７の機能を示した。
【０１６４】
S1：まず、手書き入力表示制御部２３が手書きオブジェクト開始を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト領域（手書きオブジェクトを保存するメモリー領域）を確保する。ユーザーがペンを手書き入力部２１に接触させてから手書きオブジェクト領域を確保してもよい。
【０１６５】
S2：次にユーザーが手書き入力部２１にペンを接触させる。手書き入力部２１はペンダウンを検出して手書き入力表示制御部２３に送信する。
【０１６６】
S3：手書き入力表示制御部２３は手書き入力保存部２５にストローク開始を送信し、手書き入力保存部２５はストローク領域を確保する。
【０１６７】
S4：ユーザーがペンを手書き入力部２１に接触させたまま移動させると、手書き入力部２１はペン座標を手書き入力表示制御部２３に送信する。
【０１６８】
S5：手書き入力表示制御部２３は座標の入力と同時にペン２５００から受信したペンＩＤを指定して、ペンＩＤ制御データ保存部３６に保存されている現在のペンＩＤ制御データを取得する。ペンＩＤは座標の入力時に送信されるので、ストロークとペンＩＤが対応付けられる。ペンＩＤ制御データ保存部３６はペンＩＤ制御データ（色、太さ、パターン、角度情報）を手書き入力表示制御部２３に送信する。なお、角度情報はまだ初期値のゼロである。
【０１６９】
S6：手書き入力表示制御部２３はペン座標補完表示データ（離散的なペン座標を補間したストロークデータ）を表示部２２に送信する。表示部２２はペン座標補完表示データを用いてペン座標を補間して線を表示する。
【０１７０】
S7：手書き入力表示制御部２３はペン座標とその受信時刻を手書き入力保存部２５に送信する。手書き入力保存部２５はペン座標をストロークに追加する。ユーザーがペンを動かしている間は、手書き入力部２１は定期的に手書き入力表示制御部２３へのペン座標の送信を繰り返すため、ステップS4〜S7の処理がペンアップされるまで繰り返される。
【０１７１】
S4：ユーザーが手書き入力部２１からペンを離すと、手書き入力部２１はペンアップを手書き入力表示制御部２３に送信する。
【０１７２】
S9：手書き入力表示制御部２３は手書き入力保存部２５にストローク終了を送信し、手書き入力保存部２５はストロークのペン座標を確定させる。ストロークのペン座標の確定により以降はストロークにペン座標を追加できなくなる。
【０１７３】
S10：次に、手書き入力表示制御部２３は手書きオブジェクト近傍矩形領域４０３に基づいて、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況取得を手書き入力保存部２５に送信する。手書き入力保存部２５は重なり状況を計算して重なり状況を手書き入力表示制御部２３に送信する。
【０１７４】
続く、ステップS11〜S17は、手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合に実行される。
【０１７５】
S11：手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合、１つの手書きオブジェクトが確定するので、手書き入力表示制御部２３は保持データクリアを手書き認識制御部２６に送信する。
【０１７６】
S12〜14：手書き認識制御部２６は保持データクリアをそれぞれ文字列変換制御部２８、予測変換制御部３０、操作コマンド認識制御部３２に送信する。手書き認識制御部２６、文字列変換制御部２８、予測変換制御部３０及び操作コマンド認識制御部３２がこれまでに保持している文字列候補と操作コマンドの候補に係るデータをクリアする。なお、クリアの時点では最後に手書きされたストロークは手書きオブジェクトに追加されていない。
【０１７７】
S15：手書き入力表示制御部２３は手書きオブジェクト終了を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクトを確定させる。手書きオブジェクトの確定とは１つの手書きオブジェクトが完成したこと（これ以上、ストロークが追加されないこと）をいう。
【０１７８】
S16：手書き入力表示制御部２３は手書きオブジェクト開始を手書き入力保存部２５に送信する。次の手書きオブジェクトの手書きが開始（ペンダウン）されることに備えて、手書き入力保存部２５は新しい手書きオブジェクト領域を確保する。
【０１７９】
S17：次に手書き入力表示制御部２３はステップS9で終了したストロークに関してストローク追加を手書き入力保存部２５に送信する。ステップS11〜S17が実行された場合、追加されるストロークは手書きオブジェクトの最初のストロークであり、手書き入力保存部２５は開始中の手書きオブジェクトにストロークデータを追加する。ステップS11〜S17が実行されてない場合、追加されるストロークはすでに手書き中の手書きオブジェクトに追加される。
【０１８０】
S18：続いて手書き入力表示制御部２３はストローク追加を手書き認識制御部２６に送信する。手書き認識制御部２６は文字列候補が格納されるストロークデータ保持領域（ストロークデータが一時的に格納される領域）にストロークデータを追加する。
【０１８１】
S19：手書き認識制御部２６はストロークデータ保持領域に対してジェスチャー手書き認識を実行する。ジェスチャー手書き認識とは、直線から角度情報を認識することをいう。なお、ジェスチャー手書き認識は操作ガイド５００の内部で行われるため、手書き認識制御部２６は操作ガイド５００の内部の直線を検出する。操作ガイド５００の位置情報は後述するステップS57で手書き認識制御部２６に送信される。
【０１８２】
S20：操作ガイド５００内の直線が検出された場合、直線の始点から６時の方向に下ろした直線５２２と、ユーザーが入力した直線５２１の反時計回りのなす角αを、４５度単位で決定する。そして、手書き認識制御部２６は、決定した角度情報を直線５２１のストロークデータが有するペンＩＤに対応付けてペンＩＤ制御データ保存部３６に保存する。なお、ステップS20は操作ガイド５００内で直線が検出された場合に実行される。
【０１８３】
S21：次に、手書き認識制御部２６は、手書き入力部２１から受信したペンＩＤを指定して、ペンＩＤ制御データ保存部３６からペンＩＤ制御データの角度情報を取得する。
【０１８４】
S22：手書き認識制御部２６は、ストロークデータ保持領域のストロークデータを取得した角度情報で時計回りに回転する。
【０１８５】
S23：これにより、ストロークデータが天地方向に対し０度になるので、手書き認識制御部２６はストロークデータに手書き認識を実行する。
【０１８６】
S24：手書き認識制御部２６はこの実行結果である手書き認識文字列候補を手書き認識辞書部２７に送信する。手書き認識辞書部２７は言語的に確からしい言語文字列候補を手書き認識制御部２６に送信する。
【０１８７】
S25：手書き認識制御部２６は手書き認識文字列候補及び受信した言語文字列候補を文字列変換制御部２８に送信する。
【０１８８】
S26：文字列変換制御部２８は手書き認識文字列候補及び言語文字列候補を文字列変換辞書部２９に送信する。文字列変換辞書部２９は変換文字列候補を文字列変換制御部２８に送信する。
【０１８９】
S27：文字列変換制御部２８は受信した変換文字列候補を予測変換制御部３０に送信する。
【０１９０】
S28：予測変換制御部３０は受信した変換文字列候補を予測変換辞書部３１に送信する。予測変換辞書部３１は予測文字列候補を予測変換制御部３０に送信する。
【０１９１】
S29:予測変換制御部３０は受信した予測文字列候補を操作コマンド認識制御部３２に送信する。
【０１９２】
S30:操作コマンド認識制御部３２は受信した予測文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０１９３】
以降ステップS31〜S38で説明される操作コマンドの候補の送信まで同様に処理を行う。
S31：文字列変換制御部２８は受信した変換文字列候補を操作コマンド認識制御部３２に送信する。
【０１９４】
S32:操作コマンド認識制御部３２は受信した変換文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は変換文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０１９５】
S33：手書き認識制御部２６は手書き認識文字列候補及び言語文字列候補を予測変換制御部３０に送信する。
【０１９６】
S34：予測変換制御部３０は手書き認識文字列候補及び受信した言語文字列候補を予測変換辞書部３１に送信する。予測変換辞書部３１は予測文字列候補を予測変換制御部３０に送信する。
【０１９７】
S35:予測変換制御部３０は受信した予測文字列候補を操作コマンド認識制御部３２に送信する。
【０１９８】
S36:操作コマンド認識制御部３２は受信した予測文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０１９９】
S37:手書き認識制御部２６は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド認識制御部３２に送信する。
【０２００】
S38:操作コマンド認識制御部３２は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド定義部３３に送信する。操作コマンド定義部３３は操作コマンドの候補を操作コマンド認識制御部３２に送信する。これにより、操作コマンド認識制御部３２は言語文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【０２０１】
S39:次に手書き認識制御部２６はストローク追加を操作コマンド認識制御部３２に送信する。
【０２０２】
S40：操作コマンド認識制御部３２は確定オブジェクトの位置情報取得を手書き入力保存部２５に送信する。手書き入力保存部２５は確定オブジェクトの位置情報を操作コマンド認識制御部３２に送信する。
【０２０３】
S41:操作コマンド認識制御部３２は選択オブジェクトの判定のため、ステップS39のストローク追加で手書き認識制御部２６から受信したストロークの位置情報と、手書き入力保存部２５から受信した確定オブジェクトの位置情報が所定の関係にあるか否かを跨ぎ線判定条件４０６及び囲み線判定条件４０７に基づいて判定し、選択されていると判定できる確定オブジェクトを選択オブジェクトとして保存しておく。また、この場合、選択オブジェクトが特定されるので入出力系の操作コマンドの候補を操作コマンド定義部３３から取得する。
【０２０４】
また、手書き認識制御部２６、文字列変換制御部２８、予測変換制御部３０、及び、操作コマンド認識制御部３２はそれぞれ手書き認識文字列候補、言語文字列候補、変換文字列候補、予測文字列候補、操作コマンドの候補、及び、選択オブジェクトに係るデータを後段のステップS46〜S49で取得できるよう保持しておく。
【０２０５】
S18−2：手書き入力表示制御部２３はステップS18でストローク追加を手書き認識制御部２６に送信した直後、選択可能候補表示タイマー開始を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はこのタイマーを開始する。
【０２０６】
続く、ステップS42〜S44は一定時間が経過する前に（タイマーがタイムアウトする前に）ペンダウンが発生した場合に実行される。
【０２０７】
S42：タイマーがタイムアウトする前に、ユーザーが手書き入力部２１にペンを接触させた場合、手書き入力部２１はペンダウン（ステップS2と同じイベント）を手書き入力表示制御部２３に送信する。
【０２０８】
S43:手書き入力表示制御部２３はストローク開始（ステップS3と同じ）を手書き入力保存部２５に送信する。この後のシーケンスはステップS3以降と同じである。
【０２０９】
S44：更に手書き入力表示制御部２３は選択可能候補表示タイマー停止を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はタイマーを停止させる。ペンダウンが検出されたのでタイマーが不要になるからである。
【０２１０】
ステップS45〜S79は一定時間が経過する前に（タイマーがタイムアウトする前に）ペンダウンが発生しない場合に実行される。したがって、図１７に示した操作ガイド５００が表示される。
【０２１１】
S45:選択可能候補表示タイマー開始中にユーザーが手書き入力部２１にペンを接触させなかった場合、候補表示タイマー制御部２４はタイムアウトを手書き入力表示制御部２３に送信する。
【０２１２】
S46:手書き入力表示制御部２３は手書き認識文字列/言語文字列候補取得を手書き認識制御部２６に送信する。手書き認識制御部２６は現在保持している手書き認識文字列/言語文字列候補を手書き入力表示制御部２３に送信する。
【０２１３】
S47:手書き入力表示制御部２３は変換文字列候補取得を文字列変換制御部２８に送信する。文字列変換制御部２８は現在保持している変換文字列候補を手書き入力表示制御部２３に送信する。
【０２１４】
S48:手書き入力表示制御部２３は予測文字列候補取得を予測変換制御部３０に送信する。予測変換制御部３０は現在保持している予測文字列候補を手書き入力表示制御部２３に送信する。
【０２１５】
S49:手書き入力表示制御部２３は操作コマンドの候補取得を操作コマンド認識制御部３２に送信する。操作コマンド認識制御部３２は現在保持している操作コマンドの候補と選択オブジェクトを手書き入力表示制御部２３に送信する。
【０２１６】
S50:更に、手書き入力表示制御部２３は推定書字方向取得を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト矩形領域のストローク追加時間と水平距離と垂直距離から判定して、推定書字方向を手書き入力表示制御部２３に送信する。
【０２１７】
S51：次に、手書き入力表示制御部２３は、手書き入力部２１から受信したペンＩＤを指定して、ペンＩＤ制御データ保存部３６から現在のペンＩＤ制御データの角度情報を取得する。選択可能候補と操作ガイド５００を回転させるためである。
【０２１８】
S52:手書き入力表示制御部２３はこれらの手書き認識文字列候補（図１７では「ぎ」）、言語文字列候補（図１７では表示がないが例えば「議」）、変換文字列候補（図１７では「議事録」「技量試」）、予測文字列候補（図１７では「技量試を決済」「議事録の送付先」）、操作コマンドの候補（図１７では「議事録テンプレートを読み込む」「議事録フォルダーに保存する）、各選択確率、及び、推定書字方向から図１７のような選択可能候補表示データを作成する。また、手書き入力表示制御部２３はステップS51で取得した角度情報で選択可能候補表示データ（操作ガイド５００）を反時計回りに回転させ、回転後の選択可能候補表示データ（操作ガイド５００）を表示部２２に送信することで表示させる。
【０２１９】
S53:また、手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ（矩形枠）（図１７では手書きオブジェクト矩形領域表示５０３）を、ステップS51で取得した角度情報で反時計回りに回転させ、表示部２２に送信することで表示させる。
【０２２０】
S54:手書き入力表示制御部２３は選択可能候補表示データの表示から一定時間後に消去するため選択可能候補表示消去タイマー開始を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はこのタイマーを開始する。
【０２２１】
ステップS55〜S60は、選択可能候補消去タイマー開始中に、ユーザーが表示部２２に表示された選択可能候補表示を消去したか、手書きオブジェクトの変化が発生した場合（即ち手書きオブジェクトのストロークの追加、削除、移動、変形又は分割された場合）、又は、タイムアウトまでに候補が選択されなかった場合に実行される。
【０２２２】
更に、ステップS55、S56、S57は、候補表示が消去されるか、又は、手書きオブジェクトの変化が発生した場合に実行される。
【０２２３】
S55：手書き入力部２１は選択可能候補表示消去又は手書きオブジェクトの変化の発生を手書き入力表示制御部２３に送信する。
【０２２４】
S56：手書き入力表示制御部２３は選択可能候補消去タイマー停止を送信する。候補表示タイマー制御部２４はそのタイマーを停止する。一定時間内に手書きオブジェクトに対し操作があったためタイマーが不要になるからである。
【０２２５】
S57：手書き入力表示制御部２３は、ステップS19のジェスチャー手書き認識のジェスチャー判定で使用できるよう、操作ガイド５００の位置情報を手書き認識制御部２６に保存する。位置情報は例えば左上コーナーと右下コーナーの座標又はこれと同等の座標である。これにより、手書き認識制御部２６は角度情報の入力に使用される直線が操作ガイド５００内かどうかを判定できる。
【０２２６】
S59：手書き入力表示制御部２３は選択可能候補表示データ消去を表示部２２に送信することで、表示を消去させる。
【０２２７】
S60：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部２２に送信することで、表示を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
【０２２８】
S58:一方、選択可能候補消去タイマー開始中に、選択可能候補表示消去又は手書きオブジェクトの変化が発生しなかった場合（ユーザーがペン操作をしなかった場合は）、候補表示タイマー制御部２４はタイムアウトを手書き入力表示制御部２３に送信する。
【０２２９】
選択可能候補表示消去タイマーのタイムアウトの後も同様に、手書き入力表示制御部２３はステップS59とS60を実行する。一定時間の経過で選択可能候補表示データ、手書きオブジェクトと選択オブジェクトの矩形領域表示データを消去してよいためである。
【０２３０】
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS61〜S79が実行される。
【０２３１】
S61：選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部２１は文字列候補又は操作コマンドの候補選択を手書き入力表示制御部２３に送信する。
【０２３２】
S62:手書き入力表示制御部２３は選択可能候補表示消去タイマー停止を候補表示タイマー制御部２４に送信する。候補表示タイマー制御部２４はこのタイマーを停止する。
【０２３３】
S63:次に手書き入力表示制御部２３は保持データクリアを手書き認識制御部２６に送信する。
【０２３４】
S64:手書き認識制御部２６は保持データクリアを文字列変換制御部２８に送信する。
【０２３５】
S65：手書き認識制御部２６は保持データクリアを予測変換制御部３０に送信する。
【０２３６】
S66：手書き認識制御部２６は保持データクリアを操作コマンド認識制御部３２に送信する。
【０２３７】
手書き認識制御部２６、文字列変換制御部２８、予測変換制御部３０、及び、操作コマンド認識制御部３２はこれまで保持していた文字列候補及び操作コマンドの候補に係るデータをクリアする。
【０２３８】
S67:次に手書き入力表示制御部２３は選択可能候補表示データ消去を表示部２２に送信することで表示を消去させる。
【０２３９】
S68：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部２２に送信することで表示を消去させる。
【０２４０】
S69：手書き入力表示制御部２３は手書きオブジェクト表示データ消去及びステップS5で送信したペン座標補完表示データ消去を表示部２２に送信することで表示を消去させる。文字列候補又は操作コマンドの候補が選択されたため、手書きオブジェクト等が不要になるためである。
【０２４１】
S70：手書き入力表示制御部２３は手書きオブジェクト削除を手書き入力保存部２５に送信する。
【０２４２】
文字列候補が選択された場合、ステップS71〜S73が実行される。
【０２４３】
S71:文字列候補が選択された場合、手書き入力表示制御部２３は文字列オブジェクト追加を手書き入力保存部２５に送信する。
【０２４４】
S72：更に手書き入力表示制御部２３は文字列オブジェクトフォント取得を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクトの推定文字サイズから定義済みフォントを選択して手書き入力表示制御部２３に送信する。
【０２４５】
S73:次に手書き入力表示制御部２３は手書き入力保存部２５から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを表示部２２に送信させることで、表示させる。
【０２４６】
操作コマンドの候補が選択された場合、ステップS74〜S78が実行される。更に、選択オブジェクトがある場合はステップS74〜S76が実行される。
【０２４７】
S74：選択オブジェクトへの操作コマンドの候補が選択された場合（選択オブジェクトが存在する場合）は、手書き入力表示制御部２３は選択オブジェクト表示データ消去を表示部２２に送信することで表示を消去させる。いったん、元の選択オブジェクトを消去するためである。
【０２４８】
S75:次に、手書き入力表示制御部２３は選択オブジェクトへの操作コマンド実行を手書き入力保存部２５に送信する。手書き入力保存部２５は新しい選択オブジェクトの表示データ（編集又は修飾後の表示データ）を手書き入力表示制御部２３に送信する。
【０２４９】
S76:次に手書き入力表示制御部２３は選択オブジェクト表示データを表示部２２に送信することで、操作コマンド実行後の選択オブジェクトを再表示させる。
【０２５０】
選択オブジェクトがない場合（入出力系の操作コマンドが選択された場合）はステップS77、S78が実行される。
【０２５１】
S77：入出力系の操作コマンドが選択された場合、手書き入力表示制御部２３はユーザーが選択した操作コマンドに対応する操作コマンド定義データの操作コマンド文字列(Command)を実行する。なお、ユーザー認証部３４がユーザーの認証に成功した場合、手書き入力表示制御部２３は認証に成功したユーザーに関する情報を操作コマンドの％〜％に設定して実行する。
【０２５２】
S78：図２５に示したように、操作ヘッダー５２０の回転操作ボタン５１１をユーザーが押下した場合、手書き入力表示制御部２３は回転操作ボタン５１１の押下数によって、角度情報を受け付ける。手書き入力表示制御部２３は受け付けた角度情報を、回転操作ボタン５１１の押下時にペン２５００から受信したペンＩＤに対応付けてペンＩＤ制御データ保存部３６に保存する。
【０２５３】
S79：次の手書きオブジェクトのために手書き入力表示制御部２３は手書きオブジェクト開始を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト領域を確保する。これ以降、ステップS2〜S79の処理が繰り返される。
【０２５４】
＜複数のテキストデータを揃えて表示する＞
ユーザーが図１７のような選択可能候補表示データから言語文字列候補、変換文字列候補又は、文字列/予測変換の候補を選択した場合、表示部２２は選択された言語文字列候補、変換文字列候補、又は文字列/予測変換の候補をテキストデータとして表示する。
【０２５５】
図３３（ａ）は、６時、３時、１２時、９時の位置のユーザーが手書きしたストロークデータが変換されたテキストデータの一例を示す。図３３（ａ）では、「ａｂｃ」というテキストデータが、それぞれの位置のユーザーに対し表示されている。このようなテキストデータをあるユーザーが読みたい場合、テキストデータの向きがまとめて揃えられたら読みやすい。そこで、本実施形態では操作コマンド定義部３３にテキスト方向を揃えるという操作コマンド定義データ７１２が用意されている。この操作コマンドが実行されると、手書き入力表示制御部２３は、手書き入力保存部２５に保存されている文字列オブジェクトを、文字列オブジェクトと対応付けられている手書き入力保存データの角度（Angle）を用いて、各ストロークを時計回りに回転させる。
【０２５６】
図３３（ｂ）は時計回りに回転された各テキストデータを示す。各テキストデータの角度が天地方向に対し０度になっている。したがって、Ａさんは場所を移動せずにテキストデータを読むことができる。
【０２５７】
＜まとめ＞
以上説明したように、本実施形態の手書き入力装置２は、各ユーザーが異なる設定で手書き入力することが可能であるため、水平に置かれた手書き入力装置２の周囲のユーザーが文字等を手書きしても正しく文字認識できる。すなわち、複数のユーザーがペン２５００で同時に入力や操作をしても、それぞれ独立してペンＩＤの動作条件に反映されるので、他のユーザーのペン操作に影響されずに、自分のペン操作に集中できる。各ユーザーの位置（角度情報）を独立して設定できるので、それぞれのユーザーが同時に異なる角度から手書きしても、正しく手書き認識でき、操作ガイドを表示できる。また、角度情報の設定を、操作ガイド内に直線を手書きすればよいので、直感的に操作することができる。
【０２５８】
また、本実施形態の手書き入力装置２は、操作メニューを選択してボタンのリストから操作を選択するという作業が必要なく、文字等を手書きする場合と同様に操作コマンドを入力できる。操作ガイドには操作コマンドと選択可能候補５３０が同時に表示されるので、ユーザーは文字等の入力と操作コマンドの選択を区別せずに手書き入力装置２を使用できる。ユーザーが手書きオブジェクトを手書きしたり確定オブジェクトを囲み線で囲んだりすることで、任意の操作コマンドの候補を表示させることができる。したがって、手書きした状態から任意の機能（編集機能、入出力機能、又はペン機能等）を呼び出すことができる。これにより、メニューボタンを押下して所望の機能を呼び出すステップバイステップの操作を不要にでき、ユーザーが手書きしている状態から任意の機能を呼び出すまでの操作手順を低減できる。
【０２５９】
＜＜手書き入力装置の構成の別の例１＞＞
本実施形態の手書き入力装置は大型のタッチパネルを有するものとして説明されているが、手書き入力装置はタッチパネルを有するものに限られない。
【０２６０】
図３４は、手書き入力装置の他の構成例を示す図である。図３４では、通常のホワイトボード４１３の上辺にプロジェクター４１１が設置されている。このプロジェクター４１１が手書き入力装置に相当する。通常のホワイトボード４１３とは、タッチパネルと一体のフラットパネルディスプレーではなく、ユーザーがマーカーで直接、手書きするホワイトボードである。なお、ホワイトボードは黒板でもよく、映像を投影するだけの広さの平面であればよい。
【０２６１】
プロジェクター４１１は超短焦点の光学系を有しており、１０ｃｍ程度から歪みの少ない映像をホワイトボード４１３に投影できる。この映像は、無線又は有線で接続されたＰＣ４００ー１から送信されてもよいし、プロジェクター４１１が記憶していてもよい。
【０２６２】
ユーザーは専用の電子ペン２５０１を使ってホワイトボード４１３に手書きする。電子ペン２５０１は、ユーザーが手書きのためにホワイトボード４１３に押しつけるとスイッチがＯＮになり発光する発光部を例えば先端部に有している。光の波長は近赤外や赤外なのでユーザーの目には見えない。プロジェクター４１１はカメラを有しており、発光部を撮像して画像を解析し電子ペン２５０１の方向を特定する。また、電子ペン２５０１は発光と共に音波を発信しており、プロジェクター４１１は音波の到達時間により距離を算出する。方向と距離により電子ペン２５０１の位置を特定できる。電子ペン２５０１の位置にはストロークが描画（投影）される。
【０２６３】
プロジェクター４１１はメニュー４３０を投影するので、ユーザーが電子ペン２５０１でボタンを押下すると、プロジェクター４１１が電子ペン２５０１の位置とスイッチのＯＮ信号により押下されたボタンを特定する。例えば、保存ボタン４３１が押下されると、ユーザーが手書きしたストローク（座標の集合）がプロジェクター４１１で保存される。プロジェクター４１１は、予め定められたサーバー４１２又はＵＳＢメモリー２６００等に手書き情報を保存する。手書き情報はページごとに保存されている。画像データではなく座標のまま保存されるので、ユーザーが再編集することができる。ただし、本実施形態では操作コマンドを手書きで呼び出せるのでメニュー４３０は表示されなくてもよい。
【０２６４】
＜＜手書き入力装置の構成の別の例２＞＞
図３５は、手書き入力装置の他の構成例を示す図である。図３５の例では、手書き入力装置として、端末装置６００、画像投影装置７００Ａ、及び、ペン動作検出装置８１０を有する。
【０２６５】
端末装置６００は、画像投影装置７００Ａ及びペン動作検出装置８１０と有線で接続されている。画像投影装置７００Ａは、端末装置６００により入力された画像データをスクリーン８００に投影させる。
【０２６６】
ペン動作検出装置８１０は、電子ペン８２０と通信を行っており、スクリーン８００の近傍における電子ペン８２０の動作を検出する。具体的には、電子ペン８２０は、スクリーン８００上において、電子ペン８２０が示している点を示す座標情報を検出し、端末装置６００へ送信する。
【０２６７】
端末装置６００は、ペン動作検出装置８１０から受信した座標情報に基づき、電子ペン８２０によって入力されるストローク画像の画像データを生成する。画像投影装置７００Ａによってストローク画像をスクリーン８００に描画させる。
【０２６８】
また、端末装置６００は、画像投影装置７００Ａに投影させている背景画像と、電子ペン８２０によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【０２６９】
＜＜手書き入力装置の構成の別の例３＞＞
図３６は、手書き入力装置の構成例を示す図である。図３６の例では、手書き入力装置として、端末装置６００とディスプレー８００Ａと、ペン動作検出装置８１０とを有する。
【０２７０】
ペン動作検出装置８１０は、ディスプレー８００Ａの近傍に配置される。ペン動作検出装置８１０はディスプレー８００Ａ上に電子ペン８２０Ａが示している点を示す座標情報を検出し、端末装置６００へ送信する。なお、図３６の例では、電子ペン８２０Ａは、端末装置６００によってＵＳＢコネクタを介して充電されても良い。
【０２７１】
端末装置６００は、ペン動作検出装置８１０から受信した座標情報に基づき、電子ペン８２０Ａによって入力されるストローク画像の画像データを生成する。端末装置６００はストローク画像をディスプレー８００Ａに表示させる。
【０２７２】
＜＜手書き入力装置の構成の別の例４＞＞
図３７は、手書き入力装置の構成例を示す図である。図３７の例では、手書き入力装置として、端末装置６００と、画像投影装置７００Ａとを有する。
【０２７３】
端末装置６００は、電子ペン８２０Ｂと無線通信（Ｂｌｕｅｔｏｏｔｈ（登録商標）等）を行って、スクリーン８００上において電子ペン８２０Ｂが示す点の座標情報を受信する。そして、端末装置６００は、受信した座標情報に基づき、電子ペン８２０Ｂにより入力されるストローク画像の画像データを生成する。端末装置６００は画像投影装置７００Ａにストローク画像を投影させる。
【０２７４】
また、端末装置６００は、画像投影装置７００Ａに投影させている背景画像と、電子ペン８２０によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【０２７５】
以上のように、上記した各実施形態は、様々なシステム構成において適用することができる。
【実施例２】
【０２７６】
本実施例では、ネットワーク上の情報処理システムが手書き認識等の処理を行って、処理の結果を手書き入力装置２に返すシステム形態の手書き入力システムについて説明する。
【０２７７】
なお、本実施例の説明においては、実施例１で同一の符号を付した構成要素又は図の内容については同様の機能を果たすので、一度説明した構成要素の説明を省略あるいは相違点についてのみ説明する場合がある。
【０２７８】
図３８は、手書き入力システム１００のシステム構成図の一例である。手書き入力システム１００はネットワークＮを介して通信可能な手書き入力装置２と情報処理システム１０とを有している。
【０２７９】
手書き入力装置２は社内などの施設に配置されており、施設内に敷設されたＬＡＮやＷｉ−Ｆｉに接続されている。情報処理システム１０は例えばデータセンタ等に配置されている。手書き入力装置２はファイアウォール８を介してインターネットｉと接続しており、情報処理システム１０もデータセンタ内の高速なＬＡＮ等を経由してインターネットｉに接続している。
【０２８０】
手書き入力装置２は電話回線網等の無線通信を使用してインターネットｉに接続してもよい。この場合、無線通信は、３Ｇ（3rd  Generation）、４Ｇ（4rd  Generation）、５Ｇ（5rd  Generation）、ＬＴＥ（Long  Term  Evolution）、ＷｉＭＡＸ（Worldwide  Interoperability  for  Microwave  Access）等である。
【０２８１】
情報処理システム１０は１つ以上の情報処理装置を有しており、１つ以上の情報処理装置がサーバーとして手書き入力装置２にサービスを提供する。サーバーとは、クライアントからの要求に対して情報や処理結果を提供する機能を果たすコンピュータやソフトウェアである。情報処理システム１０は後述するように手書き入力装置２からペン座標を受信して、図１７に示した操作ガイド５００を表示するために必要な情報を手書き入力装置２に送信する。
【０２８２】
サーバー側のシステムをクラウドシステムという場合がある。クラウドシステムとは、クラウドコンピューティングを利用したシステムであり、クラウドコンピューティングは、特定ハードウェア資源が意識されずにネットワーク上のリソースが利用される利用形態をいう。クラウドシステムはインターネット上に配置されるとは限らない。図３８では情報処理システムがインターネット上に配置されているが、ローカルネットワーク（この場合をオンプレミスという）に配置される場合がある。
【０２８３】
更に、ある実施形態では、情報処理システム１０は、サーバークラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。
【０２８４】
手書き入力装置２の構成は実施例１と同様でよいが、本実施例ではタッチパネル、ディスプレイ、及び、通信機能を有していればよい。手書き入力装置２は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。
【０２８５】
本実施例ではＰＣやタブレットなどの一般的な情報処理装置がＷｅｂブラウザや専用のアプリケーションを実行することができる。Ｗｅｂブラウザや専用のアプリケーションは情報処理システム１０と通信する。Ｗｅｂブラウザが動作する場合、ユーザーが情報処理システム１０のＵＲＬを入力又は選択して、手書き入力装置を情報処理システム１０に接続させる。手書き入力装置２は情報処理システム１０が提供するＷｅｂアプリをＷｅｂブラウザで実行する。Ｗｅｂアプリとは、Ｗｅｂブラウザ上で動作するプログラミング言語（たとえばJavaScript（登録商標））によるプログラムとＷｅｂサーバー側のプログラムが協調することによって動作し、Ｗｅｂブラウザ上で実行されるソフトウェア又はその仕組みを言う。
【０２８６】
専用のアプリケーションが動作する場合、予め登録されている情報処理システム１０のＵＲＬに接続する。専用のアプリケーションはプログラムやユーザインタフェースを有しているので、プログラムが必要な情報を情報処理システム１０と送受信してユーザインタフェースに表示する。
【０２８７】
通信方法は、ＨＴＴＰ、ＨＴＴＰｓ、WebSocketなど汎用の通信プロトコルでもよいし、専用の通信プロトコルで通信してもよい。
【０２８８】
＜ハードウェア構成例＞
手書き入力装置２のハードウェア構成は図５と同様でよい。本実施例では情報処理システム１０のハードウェア構成例を説明する。
【０２８９】
図３９は、情報処理システム１０のハードウェア構成図である。図３９に示されているように、情報処理システム１０は、コンピュータによって構築されており、図３９に示されているように、ＣＰＵ６０１、ＲＯＭ６０２、ＲＡＭ６０３、ＨＤ６０４、ＨＤＤ(Hard Disk Drive)コントローラ６０５、ディスプレイ６０６、外部機器接続Ｉ/Ｆ(Interface)６０８、ネットワークＩ/Ｆ６０９、バスライン６１０、キーボード６１１、ポインティングデバイス６１２、ＤＶＤ−ＲＷ(Digital Versatile Disk Rewritable)ドライブ６１４、メディアＩ/Ｆ６１６を備えている。
【０２９０】
これらのうち、ＣＰＵ６０１は、情報処理システム１０全体の動作を制御する。ＲＯＭ６０２は、ＩＰＬ等のＣＰＵ６０１の駆動に用いられるプログラムを記憶する。ＲＡＭ６０３は、ＣＰＵ６０１のワークエリアとして使用される。ＨＤ６０４は、プログラム等の各種データを記憶する。ＨＤＤコントローラ６０５は、ＣＰＵ６０１の制御にしたがってＨＤ６０４に対する各種データの読み出し又は書き込みを制御する。ディスプレイ６０６は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続Ｉ/Ｆ６０８は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、ＵＳＢ(Universal Serial Bus)メモリーやプリンター等である。ネットワークＩ/Ｆ６０９は、通信ネットワークを利用してデータ通信をするためのインターフェースである。バスライン６１０は、図３９に示されているＣＰＵ６０１等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【０２９１】
また、キーボード６１１は、文字、数値、各種指示などの入力のための複数のキーを備える。ポインティングデバイス６１２は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。ＤＶＤ−ＲＷドライブ６１４は、着脱可能な記録媒体の一例としてのＤＶＤ−ＲＷ６１３に対する各種データの読み出し又は書き込みを制御する。なお、ＤＶＤ−ＲＷに限らず、ＤＶＤ−Ｒ等であってもよい。メディアＩ/Ｆ６１６は、フラッシュメモリー等の記録メディア６１５に対するデータの読み出し又は書き込み（記憶）を制御する。
【０２９２】
＜装置の機能について＞
次に、図４０を用いて、手書き入力システム１００が有する機能について説明する。図４０は手書き入力システム１００が有する機能をブロック状に示す機能ブロック図の一例である。なお、図４０の説明では、主に図６との相違を説明する。なお、ペン２５００の機能は実施例１と同様でよい。
【０２９３】
本実施例では、手書き入力装置２は表示部２２、表示制御部４４、手書き入力部２１、及び、通信部４２を有している。手書き入力装置２が有する各機能は、図３９に示されている各構成要素のいずれかがＳＳＤ２０４からＲＡＭ２０３上に展開されたプログラムに従ったＣＰＵ２０１からの命令によって動作することで実現される機能又は手段である。
【０２９４】
本実施例の手書き入力部２１の機能は実施例１と同様でよい。手書き入力部２１はユーザーのペン入力ｄ１をペン操作データｄａ（ペンアップ、ペンダウン、又はペン座標データ）に変換し、表示制御部４４に送信する。
【０２９５】
表示制御部４４は、手書き入力装置２の表示に関する制御を行う。まず、表示制御部４４は、離散値であるペン座標データの離散値間の座標を補完計算してペンダウンからペンアップまでのペン座標データを１本のストロークｄｂにして表示部２２に送信する。
【０２９６】
また、表示制御部４４はペン操作データｄｃを通信部４２に送信し、通信部４２から各種の表示データｄｄを取得する。表示データは、図１７の操作ガイド５００を表示するための情報を含んでいる。表示制御部４４は表示データｄｅを表示部２２に送信する。
【０２９７】
通信部４２は、ペン操作データｄｃを情報処理システム１０に送信し、情報処理システム１０から各種の表示データｄｄを受信して表示制御部４４に送信する（第一の通信部の一例）。通信部４２は例えばJSON形式やXML形式などでデータを送受信する。
【０２９８】
表示部２２の機能は実施例１と同様でよい。表示部２２はストロークｄｂや表示データｄｅを表示する。表示部２２は表示制御部４４がビデオメモリーに書き込んだストロークｄｂや表示データｄｅをディスプレー２２０の特性に応じたデータに変換し、ディスプレー２２０に送信する。
【０２９９】
＜＜情報処理システムの機能＞＞
情報処理システム１０は、通信部４３、手書き入力表示制御部２３、候補表示タイマー制御部２４、手書き入力保存部２５、手書き認識制御部２６、手書き認識辞書部２７、文字列変換制御部２８、文字列変換辞書部２９、予測変換制御部３０、予測変換辞書部３１、操作コマンド認識制御部３２、操作コマンド定義部３３、及び、ペンＩＤ制御データ保存部３６、を備えている。情報処理システム１０が有する各機能は、図３９に示されている各構成要素のいずれかが、ＨＤ６０４からＲＡＭ６０３上に展開されたプログラムに従ったＣＰＵ６０１からの命令によって動作することで実現される機能又は手段である。
【０３００】
通信部４３は、ペン操作データｄｃを手書き入力装置２から受信し、手書き入力表示制御部２３にペン操作データｄｆを送信する。通信部４３は手書き入力表示制御部２３から表示データｄｄを受信して、手書き入力装置２に送信する（第二の通信部の一例）。通信部４３は例えばJSON形式やXML形式などでデータを送受信する。
【０３０１】
その他の機能については実施例１と同様か、異なるとしても本実施形態の説明の上では支障がないものとする。
【０３０２】
＜動作手順＞
以上の構成と図４１〜図４８を用いて、手書き入力システム１００の動作について説明する。図４１〜図４８は手書き入力装置２が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。図４１の処理は、手書き入力装置２が起動して（Ｗｅｂブラウザ又は専用のアプリケーションが起動して）、情報処理システム１０との通信が確立するとスタートする。なお、図４１〜図４８の全体的な流れは図３０〜図３６と同様でよい。
【０３０３】
S1：通信が確立すると手書き入力装置２のメモリー領域を確保するため、手書き入力表示制御部２３が手書きオブジェクト開始を手書き入力保存部２５に送信する。手書き入力保存部２５は手書きオブジェクト領域（手書きオブジェクトを保存するメモリー領域）を確保する。ユーザーがペンを手書き入力部２１に接触させてから手書きオブジェクト領域を確保してもよい。
【０３０４】
S2a：次にユーザーが手書き入力部２１にペンを接触させる。手書き入力部２１はペンダウンを検出して表示制御部４４に送信する。
【０３０５】
S2b：表示制御部４４はペンダウンを情報処理システム１０に通知するため、ペンダウンを通信部４２に送信する。
【０３０６】
S2c：通信部４２はペンダウンを情報処理システム１０に送信する。
【０３０７】
S2d：情報処理システム１０の通信部４３はペンダウンを受信して、手書き入力表示制御部２３に送信する。
【０３０８】
S3：手書き入力表示制御部２３は手書き入力保存部２５にストローク開始を送信し、手書き入力保存部２５はストローク領域を確保する。
【０３０９】
S4ａ：ユーザーがペンを手書き入力部２１に接触させたまま移動させると、手書き入力部２１はペン座標を表示制御部４４に送信する。
【０３１０】
S4b：表示制御部４４はペン座標を情報処理システム１０に通知するため、ペン座標を通信部４２に送信する。
【０３１１】
S4c：通信部４２はペン座標を情報処理システム１０に送信する。
【０３１２】
S4d：情報処理システム１０の通信部４３はペン座標を受信して、手書き入力表示制御部２３に送信する。
【０３１３】
S5：表示制御部４４はペン座標補完表示データ（離散的なペン座標を補間するデータ）を表示部２２に送信する。表示部２２はペン座標補完表示データを用いてペン座標を補間して線を表示する。ステップS6の処理は実施例１と同様になる。
【０３１４】
S8a：ユーザーが手書き入力部２１からペンを離すと、手書き入力部２１はペンアップを表示制御部４４に送信する。
【０３１５】
S8b：表示制御部４４はペンアップを情報処理システム１０に通知するため、ペンアップを通信部４２に送信する。
【０３１６】
S8c：通信部４２はペンアップを情報処理システム１０に送信する。
【０３１７】
S8d：情報処理システム１０の通信部４３はペンアップを受信して、手書き入力表示制御部２３に送信する。
【０３１８】
以降のステップS9〜S17、及び、ステップS18〜S41については実施例１と同様になる。
【０３１９】
S42a：タイマーがタイムアウトする前に、ユーザーが手書き入力部２１にペンを接触させた場合、手書き入力部２１はペンダウン（ステップS2と同じイベント）を表示制御部４４に送信する。ステップS42b〜S42dの処理はステップS2b〜S2dと同様でよい。また、ステップS43〜S51の処理は実施例１と同様になる。
【０３２０】
S52a:手書き入力表示制御部２３は図１７に示した各文字列候補、操作コマンドの候補、各選択確率、及び、推定書字方向を含む選択可能候補表示データを作成し、文字列候補と操作コマンドの候補からなる選択可能候補表示データを通信部４３に送信する。
【０３２１】
S52b:通信部４３は手書き入力装置２に選択可能候補表示データを送信する。
【０３２２】
S52c:手書き入力装置２の通信部４２は選択可能候補表示データを受信し、表示制御部４４に送信する。
【０３２３】
S52d:表示制御部４４は選択可能候補表示データを受信したので、表示部２２に送信することで表示させる。
【０３２４】
S53a:また、手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ（矩形枠）（図１７では手書きオブジェクト矩形領域表示５０３）を通信部４３に送信する。
【０３２５】
S53b:通信部４３は手書き入力装置２に矩形領域表示データを送信する。
【０３２６】
S53c:手書き入力装置２の通信部４２は矩形領域表示データを受信し、表示制御部４４に送信する。
【０３２７】
S53d:表示制御部４４は矩形領域表示データを受信したので、表示部２２に送信することで表示させる。ステップS54の処理は実施例１と同様になる。
【０３２８】
S55a：ユーザーが選択可能候補を消去したり、手書きオブジェクトに追加で手書きしたりすると、手書き入力部２１は選択可能候補表示消去又は手書きオブジェクトの変化の発生を表示制御部４４に送信する。
【０３２９】
S55b：表示制御部４４は選択可能候補表示消去又は手書きオブジェクトの変化の発生を情報処理システム１０に通知するため、通信部４２に送信する。
【０３３０】
S55c：通信部４２は選択可能候補表示消去又は手書きオブジェクトの変化の発生を情報処理システム１０に送信する。
【０３３１】
S55d：情報処理システム１０の通信部４３は選択可能候補表示消去又は手書きオブジェクトの変化の発生を受信して、手書き入力表示制御部２３に送信する。ステップS56、S57、S58の処理は実施例１と同様になる。
【０３３２】
S59a：手書き入力表示制御部２３は選択可能候補表示データ消去を通信部４３に送信する。
【０３３３】
S59b:通信部４３は手書き入力装置２に選択可能候補表示データ消去を送信する。
【０３３４】
S59c:手書き入力装置２の通信部４２は選択可能候補表示データ消去を受信し、表示制御部４４に送信する。
【０３３５】
S59d:表示制御部４４は選択可能候補表示データ消去を受信したので、表示部２２に送信することで選択可能候補を消去させる。
【０３３６】
S60a：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を通信部４３に送信する。
【０３３７】
S60b:通信部４３は手書き入力装置２に手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を送信する。
【０３３８】
S60c:手書き入力装置２の通信部４２は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を受信し、表示制御部４４に送信する。
【０３３９】
S60d:表示制御部４４は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を受信したので、表示部２２に送信することで手書きオブジェクトと選択オブジェクトの矩形領域を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
【０３４０】
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS61〜S79が実行される。
【０３４１】
S61a：選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部２１は文字列候補又は操作コマンドの候補選択を表示制御部４４に送信する。
【０３４２】
S61b：表示制御部４４は文字列候補又は操作コマンドの候補選択を情報処理システム１０に通知するため、通信部４２に送信する。
【０３４３】
S61c：通信部４２は文字列候補又は操作コマンドの候補選択を情報処理システム１０に送信する。
【０３４４】
S61d：情報処理システム１０の通信部４３は文字列候補又は操作コマンドの候補選択を受信して、手書き入力表示制御部２３に送信する。ステップS62〜S66の処理は実施例１と同様になる。
【０３４５】
S67a: 次に手書き入力表示制御部２３は選択可能候補表示データ消去を通信部４３に送信する。
【０３４６】
S67b：通信部４３は選択可能候補表示データ消去を手書き入力装置２に送信する。
【０３４７】
S67c：手書き入力装置２の通信部４２は選択可能候補表示データ消去を受信し、表示制御部４４に送信する。
【０３４８】
S67d：表示制御部４４は選択可能候補表示データ消去を受信したので、表示部２２に選択可能候補を消去させる。
【０３４９】
S68a：手書き入力表示制御部２３は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を通信部４３に送信する。
【０３５０】
S68b：通信部４３は矩形領域表示データ消去を手書き入力装置２に送信する。
【０３５１】
S68c：手書き入力装置２の通信部４２は矩形領域表示データ消去を受信し、表示制御部４４に送信する。
【０３５２】
S68d：表示制御部４４は矩形領域表示データ消去を受信したので、表示部２２に矩形領域を消去させる。
【０３５３】
S69a：手書き入力表示制御部２３は手書きオブジェクト表示データ消去を通信部４３に送信する。
【０３５４】
S69b：通信部４３は手書きオブジェクト表示データ消去を手書き入力装置２に送信する。
【０３５５】
S69c：手書き入力装置２の通信部４２は手書きオブジェクト表示データ消去を受信し、表示制御部４４に送信する。
【０３５６】
S69d：表示制御部４４は手書きオブジェクト表示データ消去を受信したので、表示部２２に手書きオブジェクトとペン座標補完表示データを消去させる。ステップS70の処理は実施例１と同様でよい。
【０３５７】
文字列候補が選択された場合、ステップS71〜S73が実行される。ステップS71、S72の処理は実施例１と同様でよい。
【０３５８】
S73a: 次に手書き入力表示制御部２３は手書き入力保存部２５から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを通信部４３に送信する。
【０３５９】
S73b：通信部４３は文字列オブジェクト表示データを手書き入力装置２に送信する。
【０３６０】
S73c：手書き入力装置２の通信部４２は文字列オブジェクト表示データを受信し、表示制御部４４に送信する。
【０３６１】
S73d：表示制御部４４は文字列オブジェクト表示データを受信したので、表示部２２に文字列オブジェクトを表示させる。
【０３６２】
操作コマンドの候補が選択された場合、ステップS74〜S78が実行される。更に、選択オブジェクトがある場合はステップS74〜S76が実行される。
【０３６３】
S74a：選択オブジェクトへの操作コマンドの候補が選択された場合（選択オブジェクトが存在する場合）は、手書き入力表示制御部２３は選択オブジェクト表示データ消去を通信部４３に送信する。いったん、元の選択オブジェクトを消去するためである。
【０３６４】
S74b：通信部４３は選択オブジェクト表示データ消去を手書き入力装置２に送信する。
【０３６５】
S74c：手書き入力装置２の通信部４２は選択オブジェクト表示データ消去を受信し、表示制御部４４に送信する。
【０３６６】
S74d：表示制御部４４は選択オブジェクト表示データ消去を受信したので、表示部２２に選択オブジェクトを消去させる。
【０３６７】
S75:次に、手書き入力表示制御部２３は選択オブジェクトへの操作コマンド実行を手書き入力保存部２５に送信する。手書き入力保存部２５は新しい選択オブジェクトの表示データ（編集又は修飾後の表示データ）を手書き入力表示制御部２３に送信する。
【０３６８】
S76a: 次に手書き入力表示制御部２３は選択オブジェクト表示データを通信部４３に送信する。
【０３６９】
S76b：通信部４３は選択オブジェクト表示データを手書き入力装置２に送信する。
【０３７０】
S76c：手書き入力装置２の通信部４２は選択オブジェクト表示データを受信し、表示制御部４４に送信する。
【０３７１】
S76d：表示制御部４４は選択オブジェクト表示データを受信したので、表示部２２に操作コマンド実行後の選択オブジェクトを再表示させる。ステップS77〜S79の処理は実施例１と同様でよい。
【０３７２】
このように、手書き入力装置２と情報処理システム１０とが通信するシステム形態でも、実施例１と同様の効果を奏することができる。なお、図４１〜図４８の処理の流れは一例であって、手書き入力装置２と情報処理システム１０とが通信することにより生じる処理が含まれていたり、又は、処理が省略されたりしてもよい。また、情報処理システム１０が行う処理の一部を手書き入力装置２が行ってもよい。例えば、削除に関する処理を手書き入力装置２が行ってもよい。
【０３７３】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０３７４】
例えば、本実施形態では電子黒板を一例として説明したが、タッチパネルを有する情報処理装置であれば好適に適用できる。タッチパネルを搭載した情報処理装置としては、例えば、ＰＪ（Projector：プロジェクター）、デジタルサイネージ等の出力装置、ＨＵＤ（Head Up Display）装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートＰＣ（Personal Computer）、携帯電話、スマートフォン、タブレット端末、ゲーム機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ、ウェアラブルＰＣ又はデスクトップＰＣ等であってもよい。
【０３７５】
また、本実施形態ではペン先の座標をタッチパネルで検知する方法でペンの座標を検出したが、ペン先の座標を超音波により検出してもよい。また、ペンは発光と共に超音波を発信しており、手書き入力装置２は超音波の到達時間により距離を算出する。方向と距離によりペンの位置を特定できる。ペンの軌跡をストロークとしてプロジェクターが描画（投影）する。
【０３７６】
また、本実施形態では、選択オブジェクトがある場合に編集系及び修飾系の操作コマンドの候補を表示し、選択オブジェクトがない場合に入出力系の操作コマンドの候補を表示した。しかし、編集系及び修飾系の操作コマンドの候補と入出力系の操作コマンドの候補を同時に表示してもよい。
【０３７７】
また、図７などの構成例は、手書き入力装置２による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。手書き入力装置２の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０３７８】
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP（digital signal processor）、FPGA（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
【０３７９】
ペンＩＤ制御データ保存部３６は制御データ保存手段の一例である。手書き入力表示制御部２３は表示制御手段の一例である。手書き認識制御部２６は手書き認識制御手段の一例である。通信部４２は第一の通信手段の一例である。通信部４３は第二の通信手段の一例である。
【符号の説明】
【０３８０】
２          手書き入力装置
２１        手書き入力部
２２        表示部
２３        手書き入力表示制御部
２４        候補表示タイマー制御部
２５        手書き入力保存部
２６        手書き認識制御部
２７        手書き認識辞書部
２８        文字列変換制御部
２９        文字列変換辞書部
３０        予測変換制御部
３１        予測変換辞書部
３２        操作コマンド認識制御部
３３        操作コマンド定義部
３６        ペンＩＤ制御データ保存部
【先行技術文献】
【特許文献】
【０３８１】
【特許文献１】特開2018−026185号公報
【図１】
2020173794.tif 000003
【図２】
2020173794.tif 000004
【図３】
2020173794.tif 000005
【図４】
2020173794.tif 000006
【図５】
2020173794.tif 000007
【図６】
2020173794.tif 000008
【図７】
2020173794.tif 000009
【図８】
2020173794.tif 000010
【図９】
2020173794.tif 000011
【図１０】
2020173794.tif 000012
【図１１】
2020173794.tif 000013
【図１２】
2020173794.tif 000014
【図１３】
2020173794.tif 000015
【図１４】
2020173794.tif 000016
【図１５】
2020173794.tif 000017
【図１６】
2020173794.tif 000018
【図１７】
2020173794.tif 000019
【図１８】
2020173794.tif 000020
【図１９】
2020173794.tif 000021
【図２０】
2020173794.tif 000022
【図２１】
2020173794.tif 000023
【図２２】
2020173794.tif 000024
【図２３】
2020173794.tif 000025
【図２４】
2020173794.tif 000026
【図２５】
2020173794.tif 000027
【図２６】
2020173794.tif 000028
【図２７】
2020173794.tif 000029
【図２８】
2020173794.tif 000030
【図２９】
2020173794.tif 000031
【図３０】
2020173794.tif 000032
【図３１】
2020173794.tif 000033
【図３２】
2020173794.tif 000034
【図３３】
2020173794.tif 000035
【図３４】
2020173794.tif 000036
【図３５】
2020173794.tif 000037
【図３６】
2020173794.tif 000038
【図３７】
2020173794.tif 000039
【図３８】
2020173794.tif 000040
【図３９】
2020173794.tif 000041
【図４０】
2020173794.tif 000042
【図４１】
2020173794.tif 000043
【図４２】
2020173794.tif 000044
【図４３】
2020173794.tif 000045
【図４４】
2020173794.tif 000046
【図４５】
2020173794.tif 000047
【図４６】
2020173794.tif 000048
【図４７】
2020173794.tif 000049
【図４８】
2020173794.tif 000050