(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023175845
(43)【公開日】2023-12-12
(54)【発明の名称】手書き入力装置、手書き入力方法、プログラム、入力システム
(51)【国際特許分類】
G06F 21/31 20130101AFI20231205BHJP
G06F 3/03 20060101ALI20231205BHJP
G06F 3/042 20060101ALI20231205BHJP
G06F 3/0482 20130101ALI20231205BHJP
G06F 3/0483 20130101ALI20231205BHJP
G06F 3/04883 20220101ALI20231205BHJP
【FI】
G06F21/31
G06F3/03 400B
G06F3/042 482
G06F3/0482
G06F3/0483
G06F3/04883
【審査請求】有
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2023155454
(22)【出願日】2023-09-21
(62)【分割の表示】P 2020034338の分割
【原出願日】2020-02-28
(31)【優先権主張番号】P 2019075826
(32)【優先日】2019-04-11
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】笠谷 潔
(57)【要約】 (修正有)
【課題】サインインが容易な手書き入力装置、手書き入力方法、プログラム及び入力システムを提供する。
【解決手段】タッチパネルに接触して、タッチパネルにユーザーが手書きが可能な、ペン2500、人の指や手又は棒状部材などのペン入力d1に基づいて、手書きされたストロークデータを表示する手書き入力装置であって、ストロークデータを認識してテキストデータに変換する手書き認識制御部26と、ストロークデータに基づき、ユーザーを認証する認証制御部38と、認証制御手段がユーザーの認証が成功したと判定した場合、テキストデータと共にサインインを受け付ける表示部品を表示する表示部22と、を有する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置であって、
前記ストロークデータを認識してテキストデータに変換する手書き認識制御手段と、
前記ストロークデータに基づき、ユーザーを認証する認証制御手段と、
前記認証制御手段がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を表示する表示手段と、
を有することを特徴とする手書き入力装置。
【請求項2】
前記手書き認識制御手段が変換したテキストデータに基づいて前記手書き入力装置が実行する操作コマンドを認識する操作コマンド認識制御手段を、有し、
前記表示手段は、前記操作コマンドとして前記表示部品を表示することを特徴とする請求項1に記載の手書き入力装置。
【請求項3】
前記手書き認識制御手段が変換したテキストデータが、前記手書きサインデータを登録する前記操作コマンドの文字列と部分一致した場合、
前記表示手段は、前記手書きサインデータを登録するための前記操作コマンドを前記テキストデータと共に表示することを特徴とする請求項2に記載の手書き入力装置。
【請求項4】
前記手書き認識制御手段が変換したテキストデータが、サインアウトするための前記操作コマンドの文字列と部分一致した場合、
前記表示手段は、サインアウトするための前記操作コマンドを前記テキストデータと共に表示することを特徴とする請求項2又は3に記載の手書き入力装置。
【請求項5】
前記入力手段と通信する入力手段通信手段と、
前記入力手段の識別情報に対応付けて、前記入力手段の制御データを保存する制御データ保存手段と、
サインインを受け付ける前記表示部品の押下を受け付けた場合、前記表示部品の押下時に前記入力手段通信手段が受信した前記入力手段の識別情報に対応付けて、認証が成功したと前記認証制御手段が判定したユーザーの識別情報を前記制御データ保存手段に登録する制御手段と、を有することを特徴とする請求項2~4のいずれか1項に記載の手書き入力装置。
【請求項6】
サインインを受け付ける前記表示部品の押下を受け付けた後、
前記制御手段は前記入力手段通信手段が受信した前記入力手段の識別情報に、前記制御データ保存手段において対応付けられている前記ユーザーの識別情報を取得し、
前記ユーザーの識別情報により特定される、ユーザーに関するユーザー定義データを用いて、前記操作コマンドを実行することを特徴とする請求項5に記載の手書き入力装置。
【請求項7】
前記ユーザー定義データには、ユーザーごとにユーザー名、パスワード、又は、フォルダーファイル名が定義されており、
前記制御手段は、前記ユーザーの識別情報により特定されるユーザー名、パスワード、又は、フォルダーファイル名を前記操作コマンドに設定して該操作コマンドを実行することを特徴とする請求項6に記載の手書き入力装置。
【請求項8】
前記手書き認識制御手段が変換したテキストデータが、前記ユーザー定義データを変更するための前記操作コマンドの文字列と部分一致した場合、
前記表示手段は、前記ユーザー定義データを変更するための前記操作コマンドを前記テキストデータと共に表示することを特徴とする請求項6又は7に記載の手書き入力装置。
【請求項9】
前記手書きサインデータを登録するための前記操作コマンドの押下を受け付けた場合、
前記表示手段は、手書きサインデータを登録するためのフォームを表示し、
前記認証制御手段は前記フォームに入力された前記手書きサインデータを登録することを特徴とする請求項5に記載の手書き入力装置。
【請求項10】
前記認証制御手段は前記手書きサインデータを登録する場合、前記手書きサインデータを識別する識別情報を採番し、前記ユーザーの識別情報を採番して、ユーザーに関する情報を定義するユーザー定義データに前記手書きサインデータの識別情報と前記ユーザーの識別情報を対応付けて登録することを特徴とする請求項9に記載の手書き入力装置。
【請求項11】
前記ユーザー定義データを変更するための前記操作コマンドの押下を受け付けた場合、
前記表示手段は、前記ユーザー定義データの変更を受け付けるためのフォームを表示し、
前記手書き認識制御手段は、前記フォームに入力された変更値で前記ユーザー定義データを変更することを特徴とする請求項8に記載の手書き入力装置。
【請求項12】
サインアウトするための前記操作コマンドの押下を受け付けた場合、
前記制御手段は、前記操作コマンドの押下時に前記入力手段通信手段が受信した前記入力手段の識別情報に対応付けられている、前記ユーザーの識別情報を前記制御データ保存手段から削除することを特徴とする請求項5に記載の手書き入力装置。
【請求項13】
前記制御手段は、フォームへの手書き入力とフォーム以外の手書き入力を区別せずに手書き入力を受け付けることを特徴とする請求項9又は11に記載の手書き入力装置。
【請求項14】
前記表示手段は、前記ストロークデータの位置に応じた位置に前記操作コマンドを含む操作ガイドを表示することを特徴とする請求項2~13のいずれか1項に記載の手書き入力装置。
【請求項15】
前記表示手段は、前記ストロークデータの位置に基づいた画面内の位置に、前記操作コマンドを含む操作ガイドを表示することを特徴とする請求項2~13のいずれか1項に記載の手書き入力装置。
【請求項16】
前記認証制御手段は、前記ストロークデータが予め登録されている手書きサインデータと適合するかに基づきユーザーを認証することを特徴とする請求項1に記載の手書き入力装置。
【請求項17】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを手書き入力装置が表示する手書き入力方法であって、
手書き認識制御手段が、前記ストロークデータを認識してテキストデータに変換するステップと、
認証制御手段が、前記ストロークデータに基づきユーザーを認証するステップと、
表示手段が、前記認証制御手段がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を表示するステップと、
を有することを特徴とする手書き入力方法。
【請求項18】
タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置に、
前記ストロークデータを認識してテキストデータに変換するステップと、
前記ストロークデータに基づきユーザーを認証するステップと、
認証するステップでユーザーの認証が成功したと判定された場合、前記テキストデータと共にサインインを受け付ける表示部品を表示するステップと、
を実行させることを特徴とするプログラム。
【請求項19】
手書き入力装置と情報処理システムとが通信する入力システムであって、
前記手書き入力装置は、
ディスプレーに接触しているペン又はユーザーの指の位置を用いて、ストロークデータを受け付ける手書き入力手段と、
前記手書き入力手段が受け付けた前記ストロークデータを表示手段に表示する表示制御手段と、
前記手書き入力手段が受け付けた前記ストロークデータを前記情報処理システムに送信して、前記ストロークデータから変換されたテキストデータとサインインを受け付ける表示部品を受信する受信手段と、を有し、
前記情報処理システムは、
前記手書き入力装置から送信された前記ストロークデータを認識してテキストデータに変換する手書き認識制御手段と、
前記ストロークデータに基づきユーザーを認証する認証制御手段と、
前記認証制御手段がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を前記手書き入力装置に送信する送信手段と、
を有する入力システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、手書き入力装置、手書き入力方法、プログラム、及び入力システムに関する。
【背景技術】
【0002】
一般的なコンピュータ制御のホワイトボード装置又は手書き入力が可能なアプリケーション(以下、手書き入力装置という)では、入力手段がペン又は指に限られている。このため、文字の色などを変更するペン機能と文字の消去などの編集機能をユーザーが切り替えて使えるように操作メニューが用意されている。通常、ペン機能メニューでは色や太さ等を選択でき、編集機能メニューでは消去、移動、変倍、回転、切り取り、コピー、貼り付け等を選択できる(例えば、特許文献1参照。)。
【0003】
特許文献1には、ペンボタンの押下により、色設定、透明度設定、太さ設定、線種設定、スタンプ設定、及び動作設定のメニューが表示される手書き入力装置について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の手書き入力装置では、サインインが容易でないという問題があった。すなわち、手書き入力装置にユーザーがサインインするために、例えば多くの操作が必要であったり、ユーザー名とパスワードの入力が容易でなかったり、ICカードリーダーなど特別なハードウェアが必要であったりした。
【0005】
本発明は、上記課題に鑑み、サインインが容易な手書き入力装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題に鑑み、本発明は、タッチパネルに接触している入力手段の位置に基づいて手書きされたストロークデータを表示する手書き入力装置であって、前記ストロークデータを認識してテキストデータに変換する手書き認識制御部と、前記ストロークデータに基づき、ユーザーを認証する認証制御部と、前記認証制御部がユーザーの認証が成功したと判定した場合、前記テキストデータと共にサインインを受け付ける表示部品を表示する表示部と、を有することを特徴とする。
【発明の効果】
【0007】
サインインが容易な手書き入力装置を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】手書き入力装置にユーザーがサインインする際のサインイン操作方法の比較例を示す図である。
【
図2】手書き入力装置へのサインインの概略を説明する図である。
【
図4】手書き入力装置の全体構成図の一例を示す図である。
【
図5】手書き入力装置のハードウェア構成図の一例である。
【
図6】手書き入力装置とペンが有する機能について説明する図である。
【
図8】手書き認識辞書部の辞書データの一例を示す図である。
【
図9】文字列変換辞書部の辞書データの一例を示す図である。
【
図10】予測変換辞書部の辞書データの一例を示す図である。
【
図11】操作コマンド定義部が保持する操作コマンド定義データとシステム定義データの一例を示す図である。
【
図12】手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す図である。
【
図13】操作コマンド定義部が保持するユーザー定義データの一例を示す図である。
【
図14】手書きサインデータ保存部が保持する手書きサインデータの一例を示す図である。
【
図15】手書き入力保存部が保存している手書き入力保存データの一例を示す図である。
【
図16】ペンID制御データ保存部が保存するペンID制御データを説明する図である。
【
図17】操作ガイドと操作ガイドが表示する選択可能候補の一例を示す図である。
【
図18】操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。
【
図19】手書きオブジェクト矩形領域表示の上方に表示された操作ガイドを示す図である。
【
図20】選択オブジェクトの指定例を説明する図の一例である。
【
図21】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【
図22】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【
図23】90度の角度情報の入力方法を説明する図である。
【
図24】角度情報の別の入力方法を説明する図である。
【
図25】手書きサインデータの登録方法を説明する図である。
【
図26】ユーザーが登録した手書きサインデータである「すずき」を手書きした場合に表示される操作ガイドの一例を示す図である。
【
図27】ユーザー定義データの変更方法を説明する図である。
【
図28】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その1)。
【
図29】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その2)。
【
図30】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その3)。
【
図31】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その4)。
【
図32】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その5)。
【
図33】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その6)。
【
図34】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その7)。
【
図35】手書き入力装置の他の構成例を示す図である。
【
図36】手書き入力装置の他の構成例を示す図である。
【
図37】手書き入力装置の他の構成例を示す図である。
【
図38】手書き入力装置の他の構成例を示す図である。
【
図39】手書き入力システムのシステム構成図の一例である(実施例2)。
【
図40】情報処理システムのハードウェア構成図の一例である。
【
図41】手書き入力システムが有する機能をブロック状に示す機能ブロック図の一例である。
【
図42】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その1)。
【
図43】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その2)。
【
図44】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その3)。
【
図45】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その4)。
【
図46】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その5)。
【
図47】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その6)。
【
図48】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その7)。
【
図49】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その8)。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態の一例として、手書き入力装置及び手書き入力装置が行う手書き入力方法について図面を参照しながら説明する。
【実施例0010】
<手書き入力装置の比較例について>
本実施形態における手書き入力装置の説明の便宜上、まず、手書き入力装置へのサインインに関する比較例について簡単に説明する。
【0011】
図1は、手書き入力装置2にユーザーがサインインする際のサインイン操作方法の比較例を示す。
図1(a)はディスプレーの操作画面101を示す。
図1(b)はサインイン画面102を示す。
図1(c)はサインイン画面102の拡大図とソフトキーボード105を示す。サインイン画面102は、ユーザー名入力欄103とパスワード入力欄104を有しており、ユーザーが入力したユーザー名とパスワードの組み合わせが手書き入力装置2に登録されていれば、認証が成功してユーザーが識別された状態で手書き入力装置2を使用できるようになる。
【0012】
手書き入力装置2にはペンが付属しており、文字、数字、記号、アルファベット等(以下単に、文字等という)等を手書きできるようになっているが、サインイン時は操作画面101に表示されたソフトキーボード105をユーザーが操作して、ユーザー名とパスワードをペンで押下する必要がある。キーボードは両手を下向きにして打鍵するのに使いやすい入力装置であって、操作画面101に表示されたソフトキーボード105の各キーをペンで押下しやすいようには設計されていない。つまり、ソフトキーボード105は、キーボードが付属していない装置でもユーザーがキー入力できるように実物のキーボードが模倣されているに過ぎない。
【0013】
操作画面101上に表示されたソフトキーボード105は使いにくいため、
図1(c)に示すように、ユーザーはICカードでサインインすることもできる。ユーザーは「ICカードを使用する」ボタン106を押して、ICカードをICカードリーダーにかざすだけでサインインできる。ICカードをすでに導入している企業などであれば、ICカードリーダーを装着するだけでICカードを用いたサインインが可能になるが、ICカードは会社ごとに異なるデータを保持しているため、テレワークが導入されている企業などで新規に導入すると莫大なコストがかかる。
【0014】
手書き入力装置2では文字等を手書き入力できることを利用して、ペンでユーザー名等を手書してサインインできればよいが、ユーザーが手書きでサインインするための特別な枠を表示させる必要があるなどの余分な操作が必要であった。すなわち、文字等の入力と手書きサインの入力を区別せずにユーザーが手書きすることができなかった。
【0015】
<本実施形態における手書き入力装置のサインインの概略>
そこで、本実施形態の手書き入力装置2は文字等の入力と区別なく手書きされたユーザー名等でユーザーを認証する。ユーザー名等、ユーザーがサインインするためのストロークデータを手書きサインデータという。ユーザーはサインインするための操作を何ら必要とせずに、ユーザーは文字等を手書き入力する場合と同様に、ユーザー名等を手書きすればサインインすることができる。
【0016】
図2は、本実施形態の手書き入力装置2へのサインインの概略を説明する図である。
図2(a)は操作画面101を示す。まず、ユーザーがサインインする場合、操作画面101にユーザー名を手書きする。任意の文字等を手書きする場合と同様に、単にユーザー名を手書きすればよく、これからサインイン操作を行う旨を入力したり、サインイン画面を表示したりする操作は不要である。手書き入力装置2には予め手書きサインデータが登録されている。
【0017】
図2(b)は操作ガイド500の一例を示す。ユーザーが手書きを開始すると、手書き入力装置2は手書きオブジェクト504の下方に操作ガイド500を表示する。
図2ではユーザー名(すずき)が手書きオブジェクト504である。
【0018】
また、操作ガイド500には1つ以上の選択可能候補530が表示されている。
図2(b)では選択可能候補530の中に操作コマンド512(表示部品の一例)と文字列候補539(後述する手書き認識文字列/言語文字列候補、変換文字列候補、文字列/予測変換の候補)が表示されている。操作コマンド512は「手書きサインインする」ための操作コマンドで、ユーザーが手書きした「すずき」というストロークデータが予め登録されている手書きサインデータに適合し、認証が成功した場合に表示される。すなわち、ユーザーの認証が成功した場合に表示される。ユーザーが操作コマンド512をペン2500等で押下すると、手書き入力装置2にサインインすることができる。ユーザーの認証が成功しなければ、手書きオブジェクト504の認識結果が表示される。
【0019】
手書き入力装置2には操作コマンド512に他にも各種の操作コマンドが用意されている。手書きされたストロークデータから変換されたテキストデータが、予め登録されている操作コマンドを呼び出すための文字列と部分一致(一部又は全体で一致すること)すれば対応する操作コマンドが表示される。つまり、ユーザーは他の操作コマンドを呼び出す場合と同様に手書きすることでサインインするための操作コマンド512を呼び出すことができる。
【0020】
このように、本実施形態の手書き入力装置2は、文字等の入力と手書きサインの入力を区別せずにユーザーが手書きすることができ、各種の操作コマンドとサインインするための操作コマンド512を区別せずにユーザーが手書きで呼び出すことができる。
【0021】
また、本実施形態の手書き入力装置2は、画面上のソフトキーボードを使わず、ICカードのような特別なハードウェアを追加することなく、また、ユーザーが直感的に手書きするだけでユーザー認証することが可能になる。
【0022】
<用語について>
入力手段とはタッチパネルに手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。また、視線入力が可能でもよい。
【0023】
ストロークデータとは自由に手書きされた線である。連続した点の集合を有し、適宜、補間されてよい。
【0024】
操作コマンドとは手書き入力装置2を操作するために用意されている、特定の処理の実行を指示する命令をいう。本実施形態では一例として、編集系、修飾系、入出力系、ペン状態の操作コマンドを例にするが、画面反転、ページ切り替え、動作モードの設定など、手書き入力装置2を操作する全てのコマンドが対象となる。
【0025】
手書きサインデータは、手書きでサインインするためのストロークデータである。手書きサインデータ保存部に登録されているストロークデータであればユーザー名には限られない。
【0026】
サインインとはコンピュータに自分の身元を示す情報を入力し、接続や利用開始を申請することをいう。コンピュータが保管している身元情報に一致すると、予め決められた権限に基づいてそのコンピュータを利用することが可能になる。ログイン又はログオンともいう。
【0027】
サインインを受け付ける表示部品は、サインインを受け付けるために表示されるソフトキーであればよく、操作コマンドに限らず、アイコン、ボタンなどでもよい。
【0028】
<ペンの外観の一例>
図3は、ペン2500の斜視図の一例を示す。
図3は多機能なペン2500の一例を示す。電源を内蔵して手書き入力装置2に命令を送信できるペン2500をアクティブペンという(電源を内蔵しないペンをパッシブペンという)。
図3のペン2500は、物理的なスイッチがペン先に一つ、ペン尻に一つ、ペン側面に二つあり、ペン先が筆記用、ペン尻が消去用、ペン側面はユーザー機能割り当て用である。本実施形態では、更に、不揮発性のメモリーを有しており、他のペンと重複しないペンIDを記憶している。
【0029】
なお、スイッチ付きのペンであれば、ユーザーの手書き入力装置2の操作手順を減らすことも可能である。スイッチ付きのペンとは主にアクティブペンを言うが、電磁誘導方式では電源を内蔵しないパッシブペンでもLC回路だけで電力を発生できるため、アクティブペンだけでなく電磁誘導方式のパッシブペンを含む。電磁誘導方式以外の光学方式、赤外線方式、及び、静電容量方式のスイッチのあるペンはアクティブペンである。
【0030】
なお、ペン2500のハードウェア構成は、通信機能とマイコンを備えた一般的な制御方式と同様であるとする。ペン2500は、電磁誘導方式、アクティブ静電結合方式などがある。また、筆圧検知、傾き検知、ホバー機能(ペンが触れる前にカーソルを表示)、などの機能を有していてよい。
【0031】
<装置の全体構成>
図4を用いて、本実施形態に係る手書き入力装置2の全体構成を説明する。
図4は、手書き入力装置2の全体構成図を示した図である。
図4(a)では、手書き入力装置2の一例として、壁につり下げられた横長の電子黒板として使用される手書き入力装置2を示している。
【0032】
図4(a)に示されているように、手書き入力装置2の上部には表示装置の一例としてのディスプレー220が設置されている。ユーザーUは、ペン2500を用いて、ディスプレー220に文字等を手書きする(入力、描画ともいう)ことができる。
【0033】
図4(b)は壁につり下げられた縦長の電子黒板として使用される手書き入力装置2を示している。
【0034】
図4(c)は机230に平置きされた手書き入力装置2を示す。手書き入力装置2は厚みが1cm程度なので、一般の机に平置きしても机の高さを調整する必要がない。また、容易に移動できる。
【0035】
<装置のハードウェア構成>
続いて、
図5を用いて、手書き入力装置2のハードウェア構成を説明する。手書き入力装置2は図示するように情報処理装置又はコンピュータの構成を有している。
図5は、手書き入力装置2のハードウェア構成図の一例である。
図5に示されているように、手書き入力装置2は、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、及び、SSD(Solid State Drive)204を備えている。
【0036】
これらのうち、CPU201は、手書き入力装置2全体の動作を制御する。ROM202は、CPU201やIPL(Initial Program Loader)等のCPU201の駆動に用いられるプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。SSD204は、手書き入力装置2用のプログラム等の各種データを記憶する。
【0037】
また、手書き入力装置2は、ディスプレーコントローラー213、タッチセンサーコントローラー215、タッチセンサー216、ディスプレー220、電源スイッチ227、チルトセンサー217、シリアルインターフェイス218、スピーカー219、マイク221、無線通信装置222、赤外線I/F223、電源制御回路224、ACアダプター225、及びバッテリー226を備えている。
【0038】
ディスプレーコントローラー213は、出力画像をディスプレー220等へ出力するために画面表示の制御及び管理を行う。タッチセンサー216は、ディスプレー220上にペン2500やユーザーの手等(ペンやユーザーの手は入力手段となる)が接触したことを検知する。また、タッチセンサー216はペンIDを受信する。
【0039】
タッチセンサーコントローラー215は、タッチセンサー216の処理を制御する。タッチセンサー216は、座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、例えば、光学式の場合、ディスプレー220の上側両端部に設置された2つ受発光装置が、ディスプレー220に平行して複数の赤外線を放射し、ディスプレー220の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。タッチセンサー216は、物体によって遮断された2つの受発光装置が放射した赤外線の位置情報をタッチセンサーコントローラー215に出力し、タッチセンサーコントローラー215が、物体の接触位置である座標位置を特定する。また、タッチセンサーコントローラー215は通信ユニット215aを有しており、ペン2500と無線で通信することができる。例えば、Bluetooth(登録商標)などの規格で通信している場合は、市販されているペンを使用することができる。通信ユニット215aに予め1つ以上のペン2500を登録しておくと、ユーザーはペン2500を手書き入力装置2と通信させる接続設定を行わなくても通信できる。
【0040】
電源スイッチ227は、手書き入力装置2の電源のON/OFFを切り換えるためのスイッチである。チルトセンサー217は、手書き入力装置2の傾き角度を検出するセンサーである。主に、手書き入力装置2が
図4(a)、
図4(b)又は、
図4(c)のいずれかの設置状態で使用されているかを検出するために使用され、設置状態に応じて文字等の太さを自動で変更することができる。
【0041】
シリアルインターフェイス218はUSBなどの外部との通信インターフェースである。外部からの情報の入力などに使用される。スピーカー219は音声の出力に使用され、マイク221は音声の入力に使用される。無線通信装置222は、ユーザーが携帯する端末と通信し、例えばインターネットへの接続を中継する。無線通信装置222はWi-FiやBluetooth(登録商標)などで通信するが、通信規格は問われない。無線通信装置222はアクセスポイントを形成しており、ユーザーが入手したSSID(Service Set Identifier)とパスワードをユーザーが携帯する端末に設定すると、アクセスポイントに接続できる。
【0042】
なお、無線通信装置222に2つのアクセスポイントが用意されているとよい。
a. アクセスポイント→インターネット
b. アクセスポイント→社内ネットワーク→インターネット
aのアクセスポイントは社外のユーザー用で、ユーザーは社内ネットワークにはアクセスできないが、インターネットを利用できる。bのアクセスポイントは社内のユーザー用で、ユーザーは社内ネットワーク及びインターネットを利用できる。
【0043】
赤外線I/F223は隣に配置された手書き入力装置2を検出する。赤外線の直進性を利用して、隣に配置された手書き入力装置2のみを検出できる。赤外線I/F223は各辺に1つずつ設けられることが好ましく、手書き入力装置2のどの方向に他の手書き入力装置2が配置されたのかを検出できる。隣の手書き入力装置2には過去に手書きされた手書き情報(1つのディスプレー220の広さを1ページとして別のページの手書き情報)を表示できる。
【0044】
電源制御回路224は手書き入力装置2の電源であるACアダプター225とバッテリー226を制御する。ACアダプター225は商用電源が共有する交流を直流に変換する。
【0045】
ディスプレー220がいわゆる電子ペーパーの場合、画像が描画された後の画像を維持するためにほとんど又は一切電力を消費しないので、バッテリー226による駆動も可能である。これにより、屋外など電源を接続しにくい場所でもデジタルサイネージなどの用途で手書き入力装置2を使用することが可能になる。
【0046】
更に、手書き入力装置2は、バスライン210を備えている。バスライン210は、
図5に示されているCPU201等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0047】
なお、タッチセンサー216は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。タッチセンサー216は、ペン先のタッチの有無を検知するのに電子ペンが必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。なお、ペン2500は、細長いペン型である必要はない。
【0048】
<装置の機能について>
次に、
図6を用いて、手書き入力装置2とペン2500が有する機能について説明する。
図6(a)は手書き入力装置2が有する機能をブロック状に示す機能ブロック図の一例である。手書き入力装置2は、手書き入力部21、表示部22、手書き入力表示制御部23、候補表示タイマー制御部24、手書き入力保存部25、手書き認識制御部26、手書き認識辞書部27、文字列変換制御部28、文字列変換辞書部29、予測変換制御部30、予測変換辞書部31、操作コマンド認識制御部32、操作コマンド定義部33、ペンID制御データ保存部36、手書きサイン認証制御部38、及び、手書きサインデータ保存部39を備えている。手書き入力装置2が有する各機能は、
図5に示されている各構成要素のいずれかが、SSD204からRAM203上に展開されたプログラムに従ったCPU201からの命令によって動作することで実現される機能又は手段である。
【0049】
手書き入力部21はタッチセンサー216等により実現されており、ユーザーによる手書き入力を受け付け、ペンIDを受信する。手書き入力部21はユーザーのペン入力d1をペンID付きのペン操作データd2(ペンアップ、ペンダウン、又はペン座標データ)に変換し、手書き入力表示制御部23に送信する。ペン座標データは離散値として定期的に送信され、離散値間の座標は補完計算される。
【0050】
表示部22はディスプレー220等により実現され、手書きされたオブジェクトや操作メニューを表示する。表示部22は手書き入力表示制御部23がビデオメモリーに書き込んだ描画データd3をディスプレー220の特性に応じたデータに変換し、ディスプレー220に送信する。
【0051】
手書き入力表示制御部23は手書き入力と表示に関する全体的な制御を行う。手書き入力表示制御部23は手書き入力部21からのペン操作データd2を処理し、表示部22に送信することで表示させる。ペン操作データd2の処理及びストロークの表示の詳細は後述の
図28~
図34にて説明する。
【0052】
候補表示タイマー制御部24は、選択可能候補の表示制御タイマーである。タイマーを開始又は停止して選択可能候補の表示を開始するタイミングと表示を消去するタイミングを生成する。選択可能候補とは、後述する操作ガイドに選択可能に表示される手書き認識文字列/言語文字列候補、変換文字列候補、文字列/予測変換の候補、操作コマンドの候補、である。候補表示タイマー制御部24は手書き入力表示制御部23からタイマー開始要求d4(タイマー停止要求の場合もある)を受信し、タイムアウトイベントd5を手書き入力表示制御部23に送信する。
【0053】
手書き入力保存部25はユーザーデータ(手書きオブジェクト/文字列オブジェクト)を保存しておくストレージの機能を有する。手書き入力保存部25は手書き入力表示制御部23からユーザーデータd6-1を受信し、手書き入力保存部25に保存する。手書き入力保存部25は手書き入力表示制御部23から取得要求d6-2を受け取って、手書き入力保存部25に保存されたユーザーデータd7を送信する。手書き入力保存部25は、確定オブジェクトの位置情報d36を操作コマンド認識制御部32に送信する。
【0054】
手書き認識制御部26はオンライン手書き認識を行う認識エンジンである。一般的なOCR(Optical Character Reader)とは異なり、ユーザーのペン操作と並行して文字(日本語だけでなく英語などの多国語)、数字、記号(%、$、&など)、図形(線、丸、三角など)等を認識していく。認識方法については様々なアルゴリズムが考案されているが、本実施形態では公知の技術を利用できるとして詳細を割愛する。
【0055】
手書き認識制御部26はペン操作データd8-1を手書き入力表示制御部23から受信し、手書き認識を実行して手書き認識文字列候補を保持する。また、手書き認識制御部26は手書き認識辞書部27を使用して手書き認識文字列候補d12から変換した言語文字列候補を保持しておく。別途、取得要求d8-2を手書き入力表示制御部23から受信した場合、手書き認識制御部26は保持している手書き認識文字列候補及び言語文字列候補d9を手書き入力表示制御部23に送信する。
【0056】
手書き認識辞書部27は手書き認識の言語変換用の辞書データである。手書き認識辞書部27は手書き認識文字列候補d12を手書き認識制御部26から受信し、言語的に確からしい言語文字列候補d13に変換して手書き認識制御部26に送信する。例えば、日本語の場合は、平仮名を漢字や片仮名へ変換する。
【0057】
文字列変換制御部28は変換文字列候補の文字列への変換を制御する。変換文字列とは手書き認識文字列又は言語文字列を含んで生成される可能性が高い文字列である。文字列変換制御部28は手書き認識文字列及び言語文字列候補d11を手書き認識制御部26から受信し、文字列変換辞書部29を使用して変換文字列候補に変換して保持しておく。別途、取得要求d14を手書き入力表示制御部23から受信した場合、保持している変換文字列候補d15を手書き入力表示制御部23に送信する。
【0058】
文字列変換辞書部29は文字列変換用の辞書データである。文字列変換辞書部29は文字列変換制御部28から手書き認識文字列及び言語文字列候補d17を受信し、変換文字列候補d18を文字列変換制御部28に送信する。
【0059】
予測変換制御部30は手書き認識文字列及び言語文字列候補d10を手書き認識制御部26から受信し、変換文字列候補d16を文字列変換制御部28から受信する。予測変換制御部30は手書き認識文字列、言語文字列候補、及び、変換文字列候補それぞれについて予測変換辞書部31を使用して予測文字列候補に変換しておく。予測変換文字列とは手書き認識文字列、言語文字列又は変換文字列を含んで生成される可能性が高い文字列である。別途、取得要求d19を手書き入力表示制御部23から受信した場合、予測文字列候補d20を手書き入力表示制御部23に送信する。
【0060】
予測変換辞書部31は予測変換用の辞書データである。予測変換辞書部31は手書き認識文字列及び言語文字列候補と変換文字列候補d21を予測変換制御部30から受信し、予測文字列候補d22を予測変換制御部30に送信する。
【0061】
操作コマンド認識制御部32は手書き認識文字列及び言語文字列候補d30を手書き認識制御部26から受信し、変換文字列候補d28を文字列変換制御部28から受信する。操作コマンド認識制御部32は予測文字列候補d29を予測変換制御部30から受信する。操作コマンド認識制御部32は手書き認識文字列、言語文字列候補、変換文字列候補、及び、予測文字列候補それぞれについて操作コマンド変換要求d26を操作コマンド定義部33に送信し、操作コマンド定義部33から操作コマンドの候補d27を受信する。操作コマンド認識制御部32は操作コマンドの候補d27を保持しておく。
【0062】
操作コマンド定義部33は操作コマンド変換要求d26が操作コマンド定義と部分一致している場合は操作コマンドの候補d27を操作コマンド認識制御部32に送信する。
【0063】
また、操作コマンド認識制御部32はペン操作データd24-1を手書き入力表示制御部23から受信する。操作コマンド認識制御部32は過去に入力され確定した確定オブジェクトの位置情報取得要求d23を手書き入力保存部25に送信する。操作コマンド認識制御部32はペン操作データが指定している確定オブジェクトを選択オブジェクト(位置情報を含む)として保持しておく。操作コマンド認識制御部32はペン操作データd24-1の位置と所定の基準を満たす選択オブジェクトを特定する。別途、取得要求d24-2を手書き入力表示制御部23から受信した場合、保持している操作コマンドの候補と特定した選択オブジェクトd25を手書き入力表示制御部23に送信する。
【0064】
ペンID制御データ保存部36は、ペンID制御データを保持している(記憶手段といってもよい)。手書き入力表示制御部23が表示部22に表示データを送信する前に、ペンID制御データ保存部36はペンID制御データd41を手書き入力表示制御部23に送信する。手書き入力表示制御部23は、ペンIDに対応付けて保存されている動作条件で表示データを描画する。また、手書き認識制御部26が手書き認識を実行する前に、ペンID制御データ保存部36は手書き認識制御部26にペンID制御データの角度情報d44を送信して、手書き認識制御部26はペンIDに対応づけて保存されている角度情報でストロークを回転して手書き認識を実行する。
【0065】
また、手書き認識制御部26が、ユーザーが文字等を手書きする時の角度情報を設定するための直線を認識した後、手書き認識制御部26はペンID制御データの角度情報d43をペンID制御データ保存部36に送信して、ペンIDに対応付けて角度情報d43を保存する。また、手書き入力表示制御部23が角度情報を設定する操作コマンドを実行後に、手書き入力表示制御部23はペンID制御データd42をペンID制御データ保存部36に送信して、操作コマンドの実行結果(ユーザーが設定した角度情報)をペンIDに対応付けて保存する。以降、そのペンIDのストロークは設定した角度情報で回転してから手書き認識が実行される。
【0066】
また、手書き認識制御部26はペンID制御データの角度情報で時計回りに回転させたストロークデータd49を手書きサイン認証制御部38に送信する。これにより、ユーザーの位置(手書き入力装置2に対しどの方向から手書きするか)に関わりなく手書きサインの認証が可能になる。
【0067】
手書きサインデータ保存部39は、手書きサインデータを保持する。手書きサインデータ保存部39は、手書きサインデータ取得要求d45を手書きサイン認証制御部38から受信した場合、手書きサインデータd46を手書きサイン認証制御部38に送信する。手書きサインデータのフォーマットは手書きサイン認証制御部38の手書きサイン認証のアルゴリズムに依存するものとする。手書きサインデータ保存部39のデータについては
図14にて説明する。
【0068】
手書きサイン認証制御部38は手書き認識制御部26から時計回りに回転したストロークデータd49を受信すると、手書きサインデータ保存部39に手書きサインデータ取得要求d45を送信し、手書きサインデータ保存部39は手書きサインデータd46を手書きサイン認証制御部38に送信する。
【0069】
手書きサイン認証制御部38は手書きサインデータに基づいてユーザーの認証を行う。手書きサインデータに基づくユーザーの認証には様々なアルゴリズムが考案されているが、本実施形態では実用に支障がない認識率で認識できる技術を使用するものとする。例えば、手書きサインデータを構成する座標、筆圧、ストロークを書く時間などを要素とする特徴ベクトルを生成して、要素に適宜重み付けをして、登録済みの手書きサインデータの特徴ベクトルとサインイン時にユーザーが手書きしたユーザー名等の特徴ベクトルを比較する。一致度が閾値以上の場合、認証成功と判定し、閾値未満の場合、認証失敗と判定する。
【0070】
手書きサイン認証制御部38はストロークデータd49と手書きサインデータd46の比較結果である手書きサインの認証結果を保持しておき、別途、手書き入力表示制御部23から取得要求d48を受信した場合、保持している手書きサインの認証結果d47を手書き入力表示制御部23に送信する。手書きサインの認証結果は、ストロークデータd49と手書きサインデータd46が一致したと見なせるか否か、及び、一致したと見せる場合は、一致した手書きサインデータd46に対応付けられている後述するSignatureIdを有する。
【0071】
手書き認識制御部26の手書き認識結果が手書きサイン登録の実行を指示する操作コマンドに適合する場合、手書き認識制御部26は手書き入力保存部25から手書きサイン登録フォーム(後述するように、手書きサインデータが入力される枠)に入力されたデータd52を取得し、データd52のうち手書きサインデータd50を手書きサイン認証制御部38に送信する。手書きサイン認証制御部38は受信した手書きサインデータd50を手書きサインデータ保存部39に送信して登録する。
【0072】
手書き認識制御部26の手書き認識結果が手書きサインの取消指示又は登録の実行の場合、手書き認識制御部26は手書き入力保存部25に手書きサイン登録フォームの削除要求d51を送信して、手書き入力保存部25から手書きサイン登録フォームを削除する。
【0073】
手書き認識制御部26の手書き認識結果がユーザー定義データ変更の実行指示の場合、手書き認識制御部26は手書き入力保存部25からユーザー定義データ変更フォームに入力されたデータd53を取得する。手書き認識制御部26はデータd53のうち変更値d54を操作コマンド定義部33に送信し、ユーザー定義データを変更する。ユーザー定義データについては
図13にて説明する。
【0074】
手書き認識制御部26の手書き認識結果がユーザー定義データ変更フォームの取消指示又は登録の実行の場合、手書き認識制御部26は手書き入力保存部25にユーザー定義データ変更フォームの削除要求d55を送信し、手書き入力保存部25からユーザー定義データ変更フォームを削除する。
【0075】
図6(b)は、ペン2500の機能をブロック状に示す機能ブロック図である。ペン2500はペンイベント送信部41を有している。ペンイベント送信部41はペンアップ、ペンダウン、ペン座標のイベントデータにペンIDをつけて手書き入力装置2に送信する。
【0076】
<定義済み制御データについて>
次に、
図7を用いて、手書き入力装置2が各種の処理に使用する定義済み制御データについて説明する。
図7は定義済み制御データの一例を示す。
図7の例では制御項目ごとに制御データを示す。
【0077】
選択可能候補表示タイマー401は、選択可能候補を表示するまでの時間を定義する(第一の時間の一例)。手書き中に選択可能候補を表示しないためである。
図7では、ペンアップからTimerValue=500〔ms〕以内にペンダウンが発生しなければ選択可能候補が表示されることを意味している。選択可能候補表示タイマー401は候補表示タイマー制御部24が保持している。選択可能候補表示タイマー401は、後述する
図30のステップS18-2において選択可能候補表示タイマー開始時に使用される。
【0078】
選択可能候補消去タイマー402は表示した選択可能候補を消去するまでの時間を定義する(第二の時間の一例)。ユーザーが選択可能候補を選択しない場合に選択可能候補を消去するためである。
図7では、選択可能候補の表示からTimerValue=5000〔ms〕以内に選択可能候補が選択されなければ選択可能候補表示データが消去されることを意味している。選択可能候補消去タイマー402は候補表示タイマー制御部24が保持している。選択可能候補消去タイマー402は
図32のステップS64において選択可能候補表示消去タイマー開始時に使用される。
【0079】
手書きオブジェクト近傍矩形領域403は手書きオブジェクトの近傍とみなす矩形領域を定義する。
図7の例では、手書きオブジェクト近傍矩形領域403は、手書きオブジェクトの矩形領域を水平方向に推定文字サイズの50%(Horizontal)拡大し、垂直方向に推定文字サイズの80%(Vertical)拡大した矩形領域となる。
図7の例では推定文字サイズの割合(%指定)となっているが、単位を"mm"等とすれば固定長にすることも可能である。手書きオブジェクト近傍矩形領域403は手書き入力保存部25が保持している。推定文字サイズ405は
図29のステップS10において、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況の判定で使用される。
【0080】
推定書字方向/文字サイズ判定条件404は、書字方向と文字サイズの測定方向を判定するための定数を定義する。
図7の例では、手書きオブジェクト矩形領域の最初にストロークが追加された時刻と最後にストロークが追加された時刻の差分がMinTime=1000〔ms〕以上で、手書きオブジェクト矩形領域の水平距離(幅)と垂直距離(高さ)の差分がMinDiff=10〔mm〕以上あり、水平距離が垂直距離より長い場合は、推定書字方向は「横書き」、推定文字サイズは垂直距離と判定することを意味する。水平距離が垂直距離より短い場合は、推定書字方向は「縦書き」、推定文字サイズは水平距離と判定することを意味する。以上の条件を満たさない場合は、推定書字方向は「横書き」(DefaultDir="Horizontal")、推定文字サイズは水平距離と垂直距離の長い方の距離と判定する。推定書字方向/文字サイズ判定条件404は手書き入力保存部25が保持している。推定書字方向/文字サイズ判定条件404は
図32のステップS59における推定書字方向取得と、
図34のステップS81における文字列オブジェクトフォント取得で使用される。
【0081】
推定文字サイズ405は文字等のサイズを推定するためのデータを定義する。
図7の例では、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズが、推定文字サイズ405の小さめ文字405a(以下、最小フォントサイズ、と呼ぶ)と大きめ文字405c(以下、最大フォントサイズ)と比較されることを意味する。推定文字サイズが最小フォントサイズより小さい場合、推定文字サイズは最小フォントサイズと判定される。推定文字サイズが最大フォントサイズより大きい場合、推定文字サイズは最大フォントサイズと判定される。それ以外は、中くらい文字405bの文字サイズと判定される。推定文字サイズ405は手書き入力保存部25が保持している。推定文字サイズ405は、
図34のステップS81における文字列オブジェクトフォント取得で使用される。
【0082】
手書き入力保存部25は具体的には、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズを推定文字サイズ405のFontSizeと比較して、最も近いサイズのフォントを使用する。例えば、推定文字サイズが25〔mm〕(小さめ文字のFontSize)以下の場合は「小さめ文字」、推定文字サイズが25mm超50mm(中くらい文字のFontSize)以下の場合は「中くらい文字」、推定文字サイズが100mm(大きめ文字のFontSize)超の場合は「大きめ文字」と判定する。「小さめ文字」405aは明朝体の25mmフォント(FontStyle="明朝体" FontSize="25mm")、「中くらい文字」405bは明朝体の50mmフォント(FontStyle="明朝体" FontSize="50mm")、「大きめ文字」405cはゴシック体の100mmフォント(FontStyle="ゴシック体" FontSize="100mm")を使用する。もっとフォントのサイズ又はスタイルの種類を増やしたい場合は、推定文字サイズ405の種類を増やせばよい。
【0083】
跨ぎ線判定条件406は複数のオブジェクトが選択されたか否かの判定に使用されるデータを定義する。手書きオブジェクトが単数のストロークであり、
図7の例では、手書きオブジェクトの長辺の長さが100〔mm〕以上(MinLenLongSide="100mm")、かつ、短辺の長さが50〔mm〕以下(MaxLenShortSide="50mm")、かつ、手書きオブジェクトとの長辺方向と短辺方向の重なり率が80〔%〕以上(MinOverLapRate="80%")のオブジェクトがあれば、複数のオブジェクトが選択された(選択オブジェクト)と判定する。跨ぎ線判定条件406は操作コマンド認識制御部32が保持している。跨ぎ線判定条件406は
図31のステップS50における選択オブジェクトの判定の跨ぎ線判定で使用される。
【0084】
囲み線判定条件407は、オブジェクトが囲み線か否かの判定に使用されるデータを定義する。
図7の例では、操作コマンド認識制御部32は手書きオブジェクトの長辺方向と短辺方向の重なり率が100%以上(MinOverLapRate="100%")の確定オブジェクトを選択オブジェクトと判定する。囲み線判定条件407は、操作コマンド認識制御部32が保持している。囲み線判定条件407は、
図31のステップS50における選択オブジェクトの判定の囲み線判定で使用される。
【0085】
なお、跨ぎ線判定条件406と囲み線判定条件407はどちらが優先して判定されてもよい。例えば、跨ぎ線判定条件406を緩やかにして(跨ぎ線を選択しやすくした場合)、囲み線判定条件407は厳密にした場合(囲み線のみを選択できるような値とした場合)、操作コマンド認識制御部32は囲み線判定条件407を優先して判定するのがよい。
【0086】
<辞書データの一例>
図8~
図10を用いて辞書データについて説明する。
図8は手書き認識辞書部27の辞書データの一例である。
図9は文字列変換辞書部29の辞書データの一例である。
図10は予測変換辞書部31の辞書データの一例である。なお、これらの辞書データはそれぞれ
図31のステップS33~S42で使用される。
【0087】
本実施形態では、
図8の手書き認識辞書部27の辞書データによる変換結果を言語文字列候補、
図9の文字列変換辞書部29の辞書データによる変換結果を変換文字列候補、
図10の予測変換辞書部31の辞書データによる変換結果を予測文字列候補と呼ぶ。各辞書データの「変換前」は辞書データを検索する文字列、「変換後」は検索する文字列に対応した変換後の文字列、「確率」はユーザーが選択する確率を表す。確率は過去にユーザーが各文字列を選択した結果から算出されている。したがって、ユーザーごとに確率が算出されてもよい。確率の計算方法として様々なアルゴリズムが考案されているが、適宜、適切な方法で計算するものとすればよく、詳細は割愛する。本実施形態では、推定書字方向から文字列候補を選択確率降順で表示することを特徴とする。
【0088】
図8の手書き認識辞書部27の辞書データでは、手書きされた「ぎ」は、確率0.55で「議」、確率0.4で「技」、手書きされた「ぎし」は、確率0.5で「技士」、確率0.45で「技師」に変換されることを示す。その他の「変換前」の文字列についても同様である。
図8では「変換前」の文字列が手書きされた平仮名となっているが、平仮名以外を「変換前」に登録してもよい。
【0089】
図9の文字列変換辞書部29の辞書データでは、文字列「議」は確率0.95で「議事録」に、文字列「技」は確率0.85で「技量試」に変換されることを示す。その他の「変換前」の文字列についても同様である。
【0090】
図10の予測変換辞書部31の辞書データでは、文字列「議事録」は確率0.65で「議事録の送付先」に、文字列「技量試」は確率0.75で「技量試を決裁」に変換されることを示す。
図10の例では変換前の文字列がすべて漢字になっているが、漢字以外を登録してもよい。
【0091】
なお、辞書データに言語依存はなく、変換前と変換後にどのような文字列が登録されていてもよい。
【0092】
<操作コマンド定義部が保持する操作コマンド定義データ>
次に、
図11、
図12を用いて操作コマンド認識制御部32が使用する操作コマンド定義データについて説明する。
図11は、操作コマンド定義部33が保持する操作コマンド定義データとシステム定義データの一例を示す。
【0093】
図11(a)は操作コマンド定義データの一例を示す。
図11(a)の操作コマンド定義データは、手書きオブジェクトにより選択された選択オブジェクトがない場合の操作コマンド定義データ例であり、手書き入力装置2を操作する全ての操作コマンドが対象となる。
図11(a)の操作コマンドは操作コマンド名(Name)、文字列候補と部分一致する文字列(String)、実行する操作コマンド文字列(Command)を有する。操作コマンド文字列内の「%~%」は変数であり、
図11(b)に示すようにシステム定義データと対応付けられている。つまり、「%~%」は
図11(b)に示すシステム定義データで置き換えられる。
【0094】
まず、操作コマンド定義データ701は、操作コマンド名が「議事録テンプレートを読み込む」、文字列候補と部分一致する文字列が「議事録」又は「テンプレート」、実行する操作コマンド文字列が「ReadFile https://%username%:%password%@server.com/template/minutes.pdf」であることを示す。この例では、実行する操作コマンド文字列に「%~%」のシステム定義データが含まれており「%username%」「%password%」はそれぞれシステム定義データ704、705で置き換えられることを示す。したがって、最終的に実行する操作コマンド文字列は「ReadFile https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」という文字列となり、「https://taro.tokkyo:x2PDHTyS@server.com/template/minutes.pdf」というファイルを読み込む(ReadFile)ことを示す。
【0095】
操作コマンド定義データ702は、操作コマンド名が「議事録フォルダーに保存する」、文字列候補と部分一致する文字列が「議事録」又は「保存」、実行する操作コマンド文字列が「WriteFile https://%username%:%password%@server.com/minutes/%machinename%_%yyyy-mm-dd%.pdf」であることを示す。操作コマンド定義データ701と同様に、操作コマンド文字列の「%username%」「%password%」「%machinename%」はそれぞれシステム定義データ704~706で置き換えられる。なお、「%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)ことを示す。
【0096】
操作コマンド定義データ703は、操作コマンド名が「印刷する」、文字列候補と部分一致する文字列が「印刷」又は「プリント」、実行する操作コマンド文字列が「PrintFile https://%username%:%password%@server.com/print/%machinename%-"%yyyy-mm-dd%.pdf」であることを示す。操作コマンド定義データ702と同様に操作コマンド文字列を置き換えると、最終的に実行する操作コマンドは「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)ことを示す。つまり、ファイルがサーバーに送信される。ユーザーがプリンターをサーバーと通信させ、ファイルを指定するとプリンターが用紙にファイルの内容を印刷する。
【0097】
このように、文字列候補から操作コマンド定義データ701~703を特定できるため、ユーザーが手書きすることで操作コマンドを表示させることができる。また、ユーザーの認証が成功した場合にはユーザー情報で操作コマンド定義データの「%username%」「%password%」等が置き換えられるので、ユーザーに対応付けてファイルの入出力が可能になる。
【0098】
ユーザーの認証が行われない場合(認証が失敗したがユーザーが手書き入力装置2を使用できる場合は認証失敗の場合も含む)、手書き入力装置2は、予め設定されている手書き入力装置2の「%username%」「%password%」等に置き換える。したがって、ユーザー認証なしでも手書き入力装置2に対応付けてファイルの入出力が可能になる。
【0099】
操作コマンド定義データ709、710、711は、ペン状態を変更する操作コマンドである。ペン状態とはペンの種類と称してもよい。操作コマンド定義データ709、710、711それぞれの操作コマンド名は「細ペン」「太ペン」「マーカー」、文字列候補と部分一致する文字列が「細」、「ペン」、「太」「ペン」、「マーカー」又は「ペン」、操作コマンド文字列が「ChangePen fine」「ChangePen bold」又は「Changepen marking」である。この操作コマンドが実行されると、ペン状態はペンID制御データ保存部36に保存されるので、ユーザーは設定したペン状態でストロークを手書きできる。
【0100】
操作コマンド定義データ712は、テキストデータの方向を一定方向に揃えるための操作コマンドである。操作コマンド定義データ712の操作コマンド名は「テキスト方向を揃える」、文字列候補と部分一致する文字列が「テキスト」「向き」又は「方向」、操作コマンド文字列が「AlignTextDirection」である。ユーザーが天地方向以外から書き込んだテキストデータは向きがばらばらなので、ある1つの方向から全てを読み取りにくい。操作コマンド定義データ712をユーザーが実行すると、手書き入力装置2は手書き認識した文字列を同一方向(例えば、天地方向)に揃える。この場合の揃えるとは、テキストデータを角度情報だけ回転させることをいう。
【0101】
操作コマンド定義データ713は、操作コマンド名が「手書きサイン登録する」、文字列候補と部分一致する文字列が「サイン」と「登録」、操作コマンド文字列が「RegistSignature」であることを示す。RegistSignatureコマンドが実行されると、手書き入力保存部25に手書きサイン登録フォームが追加され、操作画面101に手書きサイン登録フォームが表示される。手書きサイン登録フォームの一例については後述する(
図25参照)。
【0102】
操作コマンド定義データ714は、操作コマンド名が「手書きサインインする」、文字列候補と部分位置する文字列が「%signature%」、操作コマンドが「Signin」であることを示す。ここで「%signature%」はシステム定義データの予約語であり、登録済みの手書きサインデータとユーザー名等のストロークデータが適合した事実を表すものとする。つまり適合すると操作コマンド定義データ714に基づく操作コマンド512が操作ガイド500に表示される(
図2、
図26参照)。
【0103】
Singinコマンドが実行されると、ユーザー名等のストロークデータを手書きしたペン2500のペンID制御データに、適合した手書きサインデータのSignatureIdをもつユーザーのAccountIdが保存される。これによってペンIDとAccountIdが対応付けられ、このAccountIdで特定されるユーザー定義データを手書き入力装置2が使用することができる(
図16(a)参照)。
【0104】
操作コマンド定義データ715は、操作コマンド名が「手書きサインアウトする」、文字列候補と部分一致する文字列が「サイン」又は「アウト」、操作コマンドが「Signout」であることを示す。Signoutコマンドが実行されると、手書きサインアウトを操作したペン2500のペンID制御データからAccountIdが削除される。これによってペンIDとAccountIdの対応付けがなくなり、ペン2500を任意のユーザーが使用できるようになる。
【0105】
操作コマンド定義データ716は、操作コマンド名が「設定変更する」、文字列候補と部分一致する文字列が「設定」又は「変更」、操作コマンドが「ConfigSettings」であることを示す。ConfigSettingsコマンドが実行されると、手書き入力保存部25にユーザー定義データ変更フォームが追加され、操作画面101にユーザー定義データ変更フォームが表示される。ユーザー定義データ変更フォームについては後述する(
図27参照)。
【0106】
続いて、手書きオブジェクトがある場合の操作コマンド定義データ、つまり編集系及び修飾系の操作コマンド定義データについて説明する。
図12は手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す。
図12の操作コマンド定義データは、操作コマンド名(Name)、操作コマンドの候補のグループ名(Group)、実行する操作コマンド文字列(Command)を有する。
【0107】
操作コマンド定義データ707は編集系(Group="Edit")の操作コマンドを定義しており、編集系の操作コマンド名「消去」「移動」「回転」「選択」の定義データ例である。つまり、選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。
【0108】
操作コマンド定義データ708は修飾系(Group="Decorate")の操作コマンドを定義しており、修飾系の操作コマンド名「太く」「細く」「大きく」「小さく」「下線」の定義データ例である。選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。この他、色の操作コマンドが表示されてもよい。
【0109】
したがって、ユーザーが選択オブジェクトを手書きオブジェクトで選択することで、操作コマンド定義データ707、708が特定されるため、ユーザーが手書きすることで操作コマンドを表示させることができる。
【0110】
<ユーザー定義データ>
次に、
図13を用いてユーザー定義データについて説明する。
図13は、操作コマンド定義部33が保持するユーザー定義データの一例を示す。
図13のユーザー定義データは一人分のユーザーの定義データ例である。ユーザー定義データ717のAccountIdはユーザーごとに自動的に採番されるユーザーの識別情報、AccountUsernameとAccountPasswordはユーザー名とパスワード、SignatureIdは手書きサインデータ登録時に自動的に採番される手書きサインデータの識別情報、username, password, machinenameはそれぞれシステム定義データ704~706の替わりに操作コマンド定義データ701~703に設定される文字列である。これにより、ユーザー定義データを使用した操作コマンドの実行が可能になる。
【0111】
ユーザーがユーザー名などを手書きしてサインインした場合、ペンIDとAccountIdがペンID制御データに対応付けられていることを利用して(
図16(a)参照)、ユーザーが使用するペン2500のペンIDで対応付けられているAccountIdを有するユーザー定義データの文字列が操作コマンドの実行時に使用される。ユーザーがサインアウトした後は、ユーザーがサインインに使用したペン2500を使用しても、システム定義データの文字列が操作コマンドの実行時に使用される。
【0112】
ユーザー定義データ718は、ユーザー定義データ変更フォームで使用されるデータである。Nameはユーザー定義データ717のAccountUsername、AccountPassword、username, password, 又はmachinenameの項目名であり、DataはAccountUsername、AccountPassword、username, password, 又はmachinenameの変更値になる。この例では、「名前」のデータは「%AccountName%」、「パスワード」のデータは「%AccountPassword%」、「フォルダーユーザー名」のデータは「%username%」、「フォルダーパスワード」のデータは「%password」、「フォルダーファイル名」のデータは「%machinename」であり、ユーザー定義データ717の各項目と対応している。ユーザー定義データ変更フォームで入力されたこれらの項目は、ユーザー定義データ717に反映される。
【0113】
<手書きサインデータ>
次に、
図14を用いて、手書きサインデータについて説明する。
図14は、手書きサインデータ保存部39が保持する手書きサインデータの一例を示す。手書きサインデータはSignatureIdに対応付けられた手書きサインを表すDataを有する。SignatureIdは手書きサインデータ登録時に自動的に採番される識別情報、Dataは手書きサイン認証制御部38の手書きサイン認証アルゴリズムが、手書きサイン認証制御部38から受信したストロークデータから計算したデータである。
【0114】
<手書き入力保存部が保存する手書き入力保存データ>
次に、
図15を用いて、手書き入力保存データについて説明する。
図15は、手書き入力保存部25が保存している手書き入力保存データの一例を示す。
図15の1行が1つのストロークを表す。1つの手書き入力保存データは、DataId、Type、PenId, Color, Width, Pattern, Angle、AccountId 、StartPoint、StartTime、EndPoint、EndTime、Point、及び、Pressureの各項目を有している。
【0115】
DataIdはストロークの識別情報である。Typeはストロークの種別である。種別にはストローク(Stroke)、グループ(Group)、及びテキスト(Text)がある。手書き入力保存データ801、802の種別はStrokeであり、手書き入力保存データ803の種別はGroupである。Groupとは他のストロークをグループ化することを意味し、種別がGroupの手書き入力保存データは、DataIdでグループ化の対象のストロークを指定する。PenId、Color, Width, Pattern, Angle、AccountIdは次述するペンID制御データが転記されたものである。StartPointはストロークの始点座標であり、StartTimeはストロークの始点時刻である。EndPointはストロークの終点座標であり、EndTimeはストロークの終点時刻である。Pointは始点から終点までの座標列であり、Pressureは始点から終点までの筆圧である。Angleに示すように、手書き入力保存データ804,805はそれぞれ180度、270度だけ時計回りに回転してから手書き認識されたことを示す。802,805はユーザー定義データのAccountId=1のユーザーが入力したデータであることを示す。
【0116】
<ペンID制御データ保存部が保存するペンID制御データ>
次に、
図16を用いて、ペンID制御データについて説明する。
図16は、ペンID制御データ保存部36が保存するペンID制御データを説明する図である。
図16(a)の1行が1つのペンのペンID制御データを示す。また、
図16(b)は手書き入力装置2に対しユーザーが手書きする時の角度情報を説明する図である。角度情報はユーザーが存在する方向の角度とも言えるし、ペンが使用される方向の角度とも言えるし、ユーザーが手書きした文字の回転に関する角度とも言える。手書き入力装置2の所定の方向(例えば天地方向)を0度(基準)として、各ユーザーの角度情報は反時計回りに45度、90度、135度、180度、225度、270度、315度、である。
【0117】
ユーザーの角度情報は、手書き入力装置2が平置きされた場合に、手書き入力装置2に対しユーザーが存在する位置である。すなわちユーザーの角度情報は位置に関する情報ということができる。手書き入力装置2から見てどの方向にユーザーがいるかを特定できる。角度情報の他、手書き入力装置2から見た方向を時計に見立て、0度:6時方向、45度:4時方向と5時方向の間、90度:3時方向、135度:1時方向と2時方向の間、180度:12時方向、225度:10時方向と11時方向の間、270度:9時方向、315度:7時方向と8時方向の間、と表現してもよい。
【0118】
なお、角度情報はユーザーの位置によって自動的に決まるわけではなく、各ユーザーが角度情報を入力する(指定する)。指定可能な角度情報の分解能(
図16では45度)は一例に過ぎず、より小さい5度~30度などでもよい。ただし、45度くらいで回転した文字であれば、ユーザーは読めると考えられる。
【0119】
ペンID制御データは、PenId、Color、Width、Pattern、Angle及びAccountIdを有している。PenIdはペン内部に保存されている識別情報である。Colorはこのペンに設定されているストロークの色である(ユーザーが任意に変更可能)。Widthはこのペンに設定されているストロークの太さである(ユーザーが任意に変更可能)。Patternはこのペンに設定されているストロークの線種である(ユーザーが任意に変更可能)。Angleはこのペンに設定されているストロークの角度情報である(ユーザーが任意に変更可能)。
図16(a)の例では、各ペンの角度情報は反時計回りに0度、90度、180度、270度となっている。AccountIdはユーザーの識別情報である。ペンIDにAccountIdが対応付けられることで、ユーザーが使用するペン2500のペンIDに対応付けられているAccountIdを特定でき、ユーザー定義データを使用して操作コマンドを実行できる。
【0120】
ペンID制御データ901はペンIDが1の制御データで、色は黒(Black)、太さは1ピクセル(1 px)、パターンはベタ塗り(Solid)、角度情報は0度、AccountId=1である。AccountId=1のユーザーは
図13のユーザー定義データ717のユーザーである。このユーザーがペンID=1のペンでユーザー名などを手書きしてサインインしたことを示す。AccountIdがないペンID制御データはサインアウト状態(ユーザーと対応付けられていない)であることを示す。
【0121】
同様に、ペンID制御データ902はペンIDが2である。色は黒である。太さは1ピクセルである。パターンはベタ塗りである。角度情報は90度である。AccountIdはなしである。ペンID制御データ903は、ペンIDが3である。色は黒である。太さは10ピクセルである。パターンはベタ塗りである。角度情報は180度である。AccountIdはなしである。ペンID制御データ904は、色が黒である。太さは10ピクセルである。パターンはハーフトーンドットである。角度情報は270度である。AccountIdはなしである。
【0122】
このデータは、
図28のステップS5(ペンID制御データ取得)、
図30のステップS20(ペンID制御データの角度情報を保存)、
図30のステップS21(ペンID制御データの角度情報を取得)、
図32のステップS60(ペンID制御データの取得)、
図34のステップS88(ペンID制御データの角度情報を保存)、で使用される。
【0123】
<選択可能候補の表示例>
図17は操作ガイドと操作ガイドが表示する選択可能候補530の一例である。ユーザーが手書きオブジェクト504を手書きすることで(選択可能候補表示タイマーのタイムアウトにより)、操作ガイド500が表示される。操作ガイド500は、操作ヘッダー520、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508、及び、手書きオブジェクト矩形領域表示503を有している。選択可能候補530は、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508である。この例では言語変換文字列がないが表示される場合がある。また、操作コマンドの候補510を除く選択可能候補530を文字列候補539という。
【0124】
操作ヘッダー520はボタン501、509、502、505を有する。ボタン501は予測変換とカナ変換の切り替え操作を受け付ける。
図17の例ではユーザーが「予測」と表示されているボタン509を押下すると手書き入力部21がそれを受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が「かな」というボタン509に表示を変更する。予測変換からカナ変換への変更後は、文字列候補539が「カナ変換」の確率降順で並ぶ。
【0125】
ボタン502は候補表示のページ操作をする。
図17の例では候補表示ページは3ページあり、現在は1ページ目を表示している。ボタン505は操作ガイド500の消去を受け付ける。ユーザーがボタン505を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きオブジェクト以外の表示を消去する。ボタン509は一括表示消去を受け付ける。ユーザーがボタン509を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知する。表示部22が手書きオブジェクトを含め、
図17に示されているすべての表示を消去する。ユーザーは最初から手書きをしなおすことができる。
【0126】
手書きオブジェクト504はユーザーが手書きした「ぎ」という文字である。手書きオブジェクト504を囲む手書きオブジェクト矩形領域表示503が表示される。表示の手順は
図28~
図34のシーケンス図で説明する。
図17の例では点線枠で手書きオブジェクト矩形領域表示503が表示されている。
【0127】
手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508にはそれぞれの文字列候補が確率降順で並んでいる。手書き認識文字列候補506の「ぎ」は認識結果の候補である。この例では正しく「ぎ」を認識している。
【0128】
変換文字列候補507は言語文字列候補から変換された変換文字列候補である。この例の「技量試」とは「技術量産試作」の略名である。文字列/予測変換の候補508は言語文字列候補又は変換文字列候補から変換された予測文字列候補である。この例では「技量試を決裁」と「議事録の送付先」が表示されている。
【0129】
操作コマンドの候補510は
図11(a)の操作コマンド定義データ701~703、709~716に基づいて選択された操作コマンドの候補である。
図17の例では行頭文字の「》」511が操作コマンドの候補であることを示している。
図17では手書きオブジェクト504である「ぎ」が選択する選択オブジェクトがなく、「ぎ」の文字列候補である「議事録」が、
図11(a)の操作コマンド定義データ701,702と部分一致したため、操作コマンドの候補510として表示されている。
【0130】
ユーザーが「議事録テンプレートを読み込む」を選択すると、操作コマンド定義データ701で定義された操作コマンドが実行され、「議事録フォルダーに保存する」を選択すると、操作コマンド定義データ702で定義された操作コマンドが実行される。このように操作コマンドの候補は、変換された文字列を含む操作コマンド定義データが見つかる場合に表示されるため、常に表示されるとは限らない。
【0131】
図17に示すように、文字列候補と操作コマンドの候補が同時に(共に)表示されるため、ユーザーは自分が入力しようとした文字列候補と操作コマンドのどちらも任意に選択できる。
【0132】
<操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係>
表示部22は、ストロークデータの位置に応じた位置にテキストデータを含む操作ガイド500を表示する。表示部22は、ストロークデータの位置に基づいた画面内の位置に、テキストデータを含む操作ガイド500を表示する。このように、操作ガイド500の位置はストロークデータの位置によって定まる。
【0133】
図18は、操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。まず、操作ガイド500の横幅A及び高さH1は一定である。手書きオブジェクト矩形領域表示503の右端と操作ガイド500の右端は一致する。
【0134】
手書きオブジェクト矩形領域表示503の横幅Bは、ユーザーが手書きした手書きオブジェクト504の長さによって定まる。
図18(a)では、手書きオブジェクト矩形領域表示503の横幅Bが1文字分であり、A>Bなので、操作ガイド500の左上コーナーPの座標(x0、y0)は以下のように算出される。なお、手書きオブジェクト矩形領域表示503の左上コーナーQの座標を(x1、y1)とする。手書きオブジェクト矩形領域表示503の高さをH2とする。
x0 = x1 -(A-B)
y0 = y1+H2
一方、
図18(b)に示すように、手書きオブジェクト矩形領域表示の横幅BがAより大きい場合、操作ガイド500の左上コーナーPの座標(x0、y0)は以下のように算出される。
x0 = x1+(B-A)
y0 = y1+H2
なお、
図18等では手書きオブジェクト矩形領域表示503の下方に操作ガイド500が表示されているが、操作ガイド500は手書きオブジェクト矩形領域表示503の上方に表示されてもよい。
【0135】
図19は、手書きオブジェクト矩形領域表示503の上方に表示された操作ガイド500を示す。x1の算出方法は
図18と同様であるが、y
図18は、操作ガイドの位置と手書きオブジェクト矩形領域表示の位置の関係を説明する図である。まず、操作ガイド500の横幅A及び高さH1は一定である。手書きオブジェクト矩形領域表示503の右端と操作ガイド500の右端は一致する。
【0136】
手書きオブジェクト矩形領域表示503の横幅Bは、ユーザーが手書きした手書きオブジェクト504の長さによって定まる。
図18(a)では、手書きオブジェクト矩形領域表示503の横幅Bが1文字分であり、A>Bなので、操作ガイド500の左上コーナーPの座標(x
0、y
0)は以下のように算出される。なお、手書きオブジェクト矩形領域表示503の左上コーナーQの座標を(x
1、y
1)とする。手書きオブジェクト矩形領域表示503の高さをH
2とする。
x
0 = x
1 -(A-B)
y
0 = y
1+H
2
一方、
図18(b)に示すように、手書きオブジェクト矩形領域表示の横幅BがAより大きい場合、操作ガイド500の左上コーナーPの座標(x
0、y
0)は以下のように算出される。
x
0 = x
1+(B-A)
y0 = y
1+H
2
なお、
図18等では手書きオブジェクト矩形領域表示503の下方に操作ガイド500が表示されているが、操作ガイド500は手書きオブジェクト矩形領域表示503の上方に表示されてもよい。
【0137】
図19は、手書きオブジェクト矩形領域表示503の上方に表示された操作ガイド500を示す。x
1の算出方法は
図18と同様であるが、y
0の算出方法が変わる。
y
0 = y
1- H
1
なお、操作ガイド500は手書きオブジェクト矩形領域表示503の右側又は左側に表示されてもよい。また、ユーザーがディスプレーの端に手書きしたため操作ガイド500の表示スペースがない場合、操作ガイド500は表示スペースがある側に表示される。
0の算出方法が変わる。
【0138】
<選択オブジェクトの指定例>
本実施形態の手書き入力装置2は確定オブジェクトをユーザーが手書きにより選択することで選択オブジェクトを指定できる。選択オブジェクトは編集又は修飾の対象となる。
【0139】
図20は、選択オブジェクトの指定例を説明する図の一例である。
図20では、手書きオブジェクト11は黒色実線、手書きオブジェクト矩形領域12を灰色網掛け、確定オブジェクト13を黒線、選択オブジェクト矩形領域14を点線でそれぞれ表示している。なお、それぞれを区別する場合に小文字のアルファベットを符号に付加する。また、確定オブジェクトを選択オブジェクトと判定するための判定条件(所定の関係にあるか否か)として、
図7に示した定義済み制御データの跨ぎ線判定条件406又は囲み線判定条件407を使用している。
【0140】
図20(a)は横書きの2つの確定オブジェクト13a、13bをユーザーが跨ぎ線(手書きオブジェクト11a)で指定した例である。この例では、手書きオブジェクト矩形領域12aの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、確定オブジェクト13a、13bとの重なり率が跨ぎ線判定条件406の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト13a、13bが選択オブジェクトとして指定されている。
【0141】
図20(b)は横書きの確定オブジェクト13cを囲み線(手書きオブジェクト11b)で指定した例である。この例では、確定オブジェクト13cと手書きオブジェクト矩形領域12cの重なり率が囲み線判定条件407の条件を満たしている「議事録」という確定オブジェクト13cだけが選択オブジェクトとして指定されている。
【0142】
図20(c)は縦書きの複数の確定オブジェクト13d、13eを跨ぎ線(手書きオブジェクト11c)で指定した例である。この例では、
図20(a)と同様に、手書きオブジェクト矩形領域12dの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、「議事録」と「ぎじ」という2つの確定オブジェクト13d、13eそれぞれとの重なり率が跨ぎ線判定条件406の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト13d、13eが選択オブジェクトとして指定されている。
【0143】
図20(d)は縦書きの確定オブジェクト13fを囲み線(手書きオブジェクト11d)で指定した例である。この例では、
図20(b)と同様に、「議事録」という確定オブジェクト13fだけが選択オブジェクトとして指定されている。
【0144】
<操作コマンドの候補の表示例>
図21は、
図12に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。
図21(a)は編集系の操作コマンドの候補であり、
図21(b)は修飾系の操作コマンドの候補である。また、
図21(a)は
図20(a)の手書きオブジェクト11aで選択オブジェクトが指定された例を示す。
【0145】
図21(a)(b)に示すように、行頭文字「》」511に続いて表示された操作コマンドの候補がメインメニュー550である。メインメニュー550には最後に実行された操作コマンド名又は操作コマンド定義データで先頭の操作コマンド名が表示される。1行目の行頭文字「》」511aは編集系の操作コマンドの候補であり、2行目の行頭文字「》」511bは修飾系の操作コマンドの候補である。
【0146】
行末の「〉」512はサブメニューがあることを示す(サブメニューボタンの一例)。1行目の「〉」512aは編集系の操作コマンドの候補についてサブメニュー(最後に選択された)を表示させる。2行目の「〉」512bは修飾系の操作コマンドの候補について残りのサブメニューを表示させる。ユーザーが「〉」512を押下すると、その右側にサブメニュー560が表示される。サブメニュー560には操作コマンド定義データで定義されている全ての操作コマンドが表示される。
図21(a)の表示例ではメインメニューが表示された時から1行目の「〉」512aに対応したサブメニュー560も表示されている。1行目の「〉」512aの押下により表示されてもよい。
【0147】
ユーザーがペンでいずれかの操作コマンド名を押下すると、操作コマンド名に対応付けられた操作コマンド定義データのCommandを手書き入力表示制御部23が選択オブジェクトに対して実行する。すなわち「消去」521が選択されると「Delete」、「移動」522が選択されると「Move」、「回転」523が選択されると「Rotate」、「選択」524が選択されると「Select」をそれぞれ実行する。
【0148】
例えば、ユーザーが「消去」521をペンで押下すると「議事録」と「ぎじ」を消去でき、「移動」522,「回転」523、「選択」524を押すとバウンディングボックス(選択オブジェクトの外接矩形)が表示され、「移動」522と「回転」523ではペンのドラッグ動作で移動又は回転でき、「選択」524ではその他のバウンディングボックスの操作を実行できる。
【0149】
操作コマンドの候補以外の文字列候補である「一」541、「一、」542、「~」543、「→」544、「⇒」545は跨ぎ線(手書きオブジェクト11a)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【0150】
図21(b)では2行目の「〉」512bの押下により、
図21(b)のサブメニューが表示される。
図21(b)の表示例も
図21(a)と同様にメインメニュー550とサブメニュー560が表示されている。
図12の操作コマンド定義データに基づいて、「太く」531が選択されると「Thick」、「細く」532が選択されると「Thin」、「大きく」533が選択されると「Large」、「小さく」534が選択されると「Small」、下線535が選択されると「Underline」を手書き入力表示制御部23が選択オブジェクトに対してそれぞれ実行する。
【0151】
なお、「太く」531が選択された場合にどのくらい太くするか、「細く」532が選択された場合にどのくらい細くするか、「大きく」533が選択された場合にどのくらい大きくするか、「小さく」534が選択された場合にどのくらい小さくするか、下線535が選択された場合の線種等は、固定値が別途定義されている。あるいは、
図21(b)のサブメニューが選択されると別途、選択メニューが開かれユーザーが調整できるようになっているとなおよい。
【0152】
ユーザーが「太く」531をペンで押下すると「議事録」と「ぎじ」という確定オブジェクト13a、13bを構成する線を手書き入力表示制御部23が太くする。「細く」532をペンで押下すると、「議事録」と「ぎじ」を構成する線を手書き入力表示制御部23が細くでき、「大きく」533をペンで押下すると手書き入力表示制御部23が大きくでき、「小さく」534をペンで押下すると手書き入力表示制御部23が小さくでき、「下線」535をペンで押下すると下線を手書き入力表示制御部23が追加できる。
【0153】
図22は、
図12に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。
図21(a)(b)との相違は、
図22(a)(b)は
図20(b)の手書きオブジェクト11b(囲み線)で選択オブジェクトが指定された例を示す。
図21と
図22を比較すると分かるように手書きオブジェクトが線か囲み線かによって表示される操作コマンドの候補に違いはない。手書き入力表示制御部23は選択オブジェクトが指定されると操作コマンドの候補を表示部22に表示させるためである。しかし、手書きオブジェクトを認識して手書きオブジェクトに応じて表示する操作コマンドの候補を変更してもよい。この場合、認識された手書きオブジェクト(一や○など)に
図12のような操作コマンド定義データを対応付けておく。
【0154】
図22において操作コマンドの候補以外の文字列候補である「○」551、「∞」552、「0」553、「00」554、「ロ」555は囲み線(手書きオブジェクト11b)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【0155】
<角度情報の入力例>
次に、
図23を用いて角度情報の入力方法を説明する。
図23は、角度情報の入力方法を説明する図の一例である。
図23では手書き入力装置2の3時の方向に存在するユーザーが角度情報を入力する場合を説明する。3時の方向から手書きされた文字等は時計回りに90度回転されると正しく認識されるので、90度の角度情報が入力されるとよい。
【0156】
図23(a)は、ペンID制御データの角度情報が0度(初期値)の状態で、手書き入力装置2の3時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド500が表示された状態を示す。手書き入力装置2は3時の方向から手書きした「ぎ」を、角度情報が0度のまま文字認識するため、期待とは違う選択可能候補530が表示されている。
【0157】
角度情報を入力する場合、ユーザーは操作ガイド500内に、ユーザーから見て上から下方向に直線を手書きする。
図23(b)はこの直線521の一例を示す。角度情報が0度である6時の方向とこの直線521との反時計回りのなす角αが角度情報である。すなわち、始点Sから6時の方向に下ろした直線522と、ユーザーが入力した直線521の反時計回りのなす角αが角度情報である。簡単には、直線521の終点方向が角度情報である。したがって、
図23(b)でユーザーが入力した角度情報は90度である。
【0158】
なお、直線の検出には、例えば、始点Sから終点Eまでの座標を最小二乗法で直線に変換し、得られた相関係数と閾値を比較して直線か否かを判定する方法がある。
【0159】
ユーザーが直線521を書き始めた直後(ペン2500を直線521の始点Sに触れた直後)、手書き入力装置2は操作ガイド500を消去する。また、直線521を書き終わった直後(ペン2500を直線521の終点Eから離した直後)、手書き入力装置2は、45度、90度、135度、180度、215度、270度、315度、360度から上記のなす角αが最も近い値を探してそれを角度情報に決定する。なす角αそのものを角度情報としてもよい。ペンID制御データのAngleには決定した角度情報が設定される。ペン2500のペンイベント送信部41は、手書きなどのためにペン先が押圧されると、ペンIDを手書き入力装置2に送信するので、手書き入力装置2はペンID制御データに角度情報を対応付けることができる。
【0160】
なお、ユーザーが直線を手書きして角度情報を入力できるのは操作ガイド500に限られている。これにより、ユーザーが操作ガイド500以外で直線を手書きすると「1」や「一」などと認識され、操作ガイド500で直線を手書きすると角度情報を入力できる。すなわち、手書き認識制御部26は、所定範囲から直線を検出し、所定範囲外に手書きされたストロークデータをテキストデータに変換する。
【0161】
図23(c)は、
図23(b)の操作直後の操作ガイド500を示す。ペンID制御データには角度情報(Angle)として90度が設定されたので、手書きオブジェクト(ストロークデータ)が内部的に90度だけ時計回りに回転して手書き認識され、操作ガイド500は90度だけ反時計回りに回転して表示されている。
【0162】
図24は、角度情報の別の入力方法を説明する図の一例である。
図24では手書き入力装置2の3時の方向にユーザーが存在するものとする。
図24は、角度情報が0度(初期値)の状態で、手書き入力装置2の3時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド500と選択可能候補530が表示されている。
図24の操作ガイド500は操作ヘッダー520に回転操作ボタン511を有している。
【0163】
回転操作ボタン511は、ユーザーがペン2500で押下するたびに、ペンID制御データの角度情報を90度ずつ加算して360度で割った余りに変更するボタンである。この余りが角度情報となる。なお、回転操作ボタン511の1回の押下で加算される角度を45度としてもよい。
【0164】
<手書きサインデータの登録例>
次に、
図25を用いて手書きサインデータの登録例を説明する。
図25は手書きサインデータの登録方法を説明する図である。まず、
図25(a)は「サイン」とユーザーが手書きした場合に表示される選択可能候補530の一例である。「サイン」という文字列と部分一致する、操作コマンド定義データ713,715に基づく「手書きサイン登録する」と「手書きサインアウトする」の二つの操作コマンド513,514と、「サイン」「サイン会」「サイン入り」の文字列候補が表示されている。2つの操作コマンド513,514が表示されたのは、
図11の操作コマンド定義データ713,715のStringが「サイン」を有するためである。
【0165】
ユーザーがペン2500で「手書きサイン登録する」を押下すると、手書き入力保存部25に
図25(b)の手書きサイン登録フォーム561が追加され、操作画面101に表示される。例えば、
図25(a)の操作ガイド500が消去され、操作ガイド500と同じ場所に手書きサイン登録フォーム561が表示される。手書きサイン登録フォーム561は上段から、名前入力欄561a、サイン入力欄561b~561d、及び、登録確定欄561eを有する。ユーザーは、名前入力欄561aに名前のテキスト、サイン入力欄561b~561dに1回目の手書きサイン、2回目の手書きサイン、3回目の手書きサイン、登録確定欄561eにチェックマーク又は取消マークを入力する。名前のテキストはこのユーザーの表示名であり、テキストデータに変換される。手書きサインが3回も入力されるのは、手書きサインはユーザーが書くたびに異なり完全一致しない前提で特徴量を登録しておくためである。
【0166】
なお、手書きサインは一般にはユーザー名等、ユーザーに関する文字等であり、ユーザー名の他、社員番号などの数字、ニックネーム、似顔絵などでもよい。また、手書きサインはユーザーに関する文字等に限られず、何らかの手書きオブジェクトであればよい。例えば、丸、三角形、四角形、記号やその組み合わせでもよい。手書きサインは、座標だけが特徴データとなるわけではないので、同姓のユーザー(例えば、鈴木さん)がどちらも「すずき」という手書きサインを登録しても正しく認証できる。
【0167】
手書きサイン登録フォーム561にユーザーが指示通りに手書きをすると、
図25(c)に示す手書きサイン登録フォーム561となる。登録確定欄561eに「チェックマーク」をユーザーが手書きすると手書きサインデータが手書きサインデータ保存部39に登録され手書きサイン登録フォーム561は削除される。登録によりSignatureIdが採番される。同様に採番されたAccountIdと名前入力欄561aに名前のテキストがSignatureIdに対応付けてユーザー定義データに登録される。ユーザーがユーザー名等を手書きしてサインインすると、ユーザー定義データでAccountIdに対応付けられたSignatureIdが取得され手書きサインインに使用したペン2500のペンIDに対応づけてペンID制御データに登録される。以降は、ユーザーがペン2500を使用すればペンIDが手書き入力装置2に送信されので、ペンID制御データでペンIDに対応付けられたAccountIdが特定される。ユーザーが意識しなくてもユーザー定義データを使用した操作コマンドの実行が可能になる。
【0168】
登録確定欄561eに「×」をユーザーが手書きすると手書きサイン登録は取消され手書きサイン登録フォーム561は削除される。なお、登録に関して何らかのエラーが発生した場合、操作画面101のシステム予約領域などにその旨が表示される。
【0169】
このように、手書き入力表示制御部23はフォームへの手書き入力とフォーム以外の手書き入力を区別せずに手書き入力を受け付けることができる。
【0170】
<手書きよるサインインの一例>
次に、
図26を用いて、手書きサインデータの登録後に、ユーザーがサインインする方法を説明する。
図26は、ユーザーが登録した手書きサインデータである「すずき」と手書きした場合に表示される操作ガイド500の一例である。「すずき」が手書きサインデータとして操作コマンド定義部33に登録されているので、「すずき」が手書きサインデータと適合する。このため、「手書きサインインする」という操作コマンド512が表示されている。
【0171】
また、手書きサインデータが適合したので「すずき」を表すSignatureIdが特定され、このSignatureIdに対応付けられているAccountIdを有するユーザー定義データが特定される。
【0172】
ユーザーが「手書きサインインする」という操作コマンド512を選択すると、使用しているペン2500のペンIDに「すずき」のAccountIdを対応付けてペンID制御データに追加され、「すずき」のユーザー定義データが操作コマンドの使用時に使用されるようになる。
【0173】
図26の手書きサイン登録フォーム561を用いた手書きサインデータの登録は、文字等の通常の手書き入力における処理の一環として制御されるので、手書きサイン登録フォーム561は文字等が手書きされる操作画面と同じ操作画面に表示される。手書きサイン登録フォーム561の内外の手書き操作に違いはなく、ユーザーは手書きサイン登録フォーム561の罫線で区切られた領域に手書き入力するだけで手書きサイン登録フォーム561への入力を完了させることができる。
【0174】
<ユーザー定義データの変更操作例>
次に、
図27を用いて、ユーザー定義データの変更方法を説明する。
図27は、ユーザー定義データの変更方法を説明する図である。
図27(a)は、ユーザーが「せ」と手書きした時に表示される操作ガイド500の一例である。
図11に示した操作コマンド定義データ716はStringに「設定」が定義されており、「せ」の予測文字列に「設定」があったため、「設定変更する」という操作コマンドが表示された。
【0175】
ユーザーが、手書きでサインインしたペン2500で「設定変更する」を選択すると、ペンID制御データでこのペン2500のペンIDに対応付けられているユーザーのAccountIdが特定される。これにより、サインインしたユーザーのユーザー定義データが特定される。
図27(b)のユーザー定義データ変更フォーム562が手書き入力保存部25に追加され、操作画面101に表示される。
図27の例では、
図13のユーザー定義データ718に従ってユーザー定義データ変更フォーム562が作成される。ユーザー定義データ変更フォーム562は名前欄562a、パスワード欄562b、フォルダーユーザー名欄562c、フォルダーパスワード欄562d、フォルダーファイル名欄562e、及び、登録又は取消欄562fを有する。
【0176】
なお、予めユーザーが手書きでサインインしていないと手書き入力装置2はユーザーのAccountIdを特定できないのでエラーとなり、操作画面101のシステム予約領域などにエラーメッセージが表示される。
【0177】
図27(b)のユーザー定義データ変更フォーム562の、パスワード欄562bにパスワードを、フォルダーユーザー名欄562cにフォルダーユーザー名を、フォルダーパスワード欄562dにフォルダーパスワードを、フォルダーファイル名欄562eにフォルダーファイル名を、及び、登録又は取消欄562fに「チェックマーク」又は「×」をユーザーが手書きするとユーザー定義データの変更が実行され、ユーザー定義データ変更フォーム562は削除される。
【0178】
このように、ユーザーはユーザー定義データ変更フォーム562を呼び出すストロークデータを手書きすることで、ユーザー定義データ変更フォーム562を表示させ、ユーザー定義データを任意に変更できる。手書き入力表示制御部23はフォームへの手書き入力とフォーム以外の手書き入力を区別せずに手書き入力を受け付ける。
【0179】
なお、名前欄562aには、ユーザー定義データが有するAccountUsernameが自動で表示される。また、ユーザー定義データ変更フォーム562は変更だけでなく登録にも使用可能である。
【0180】
図27のユーザー定義データ変更フォーム562を用いたユーザー定義データの変更は、文字等の通常の手書き入力における処理の一環として制御されるので、ユーザー定義データ変更フォーム562は文字等が手書きされる操作画面と同じ操作画面に表示される。ユーザー定義データ変更フォーム562の内外の手書き操作に違いはなく、ユーザーはユーザー定義データ変更フォーム562の罫線で区切られた領域に手書き入力するだけでユーザー定義データ変更フォーム562への入力を完了させることができる。
【0181】
<動作手順>
以上の構成と
図28~
図34を用いて、手書き入力装置2の動作について説明する。
図28~
図34は手書き入力装置2が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。
図28の処理は、手書き入力装置2が起動すると(アプリケーションが起動すると)スタートする。なお、
図28~
図34ではスペースの都合上、符号で
図6の機能を示した。
【0182】
S1:まず、手書き入力表示制御部23が手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域(手書きオブジェクトを保存するメモリー領域)を確保する。ユーザーがペンを手書き入力部21に接触させてから手書きオブジェクト領域を確保してもよい。
【0183】
S2:次にユーザーが手書き入力部21にペンを接触させる。手書き入力部21はペンダウンを検出して手書き入力表示制御部23に送信する。
【0184】
S3:手書き入力表示制御部23は手書き入力保存部25にストローク開始を送信し、手書き入力保存部25はストローク領域を確保する。
【0185】
S4:ユーザーがペンを手書き入力部21に接触させたまま移動させると、手書き入力部21はペン座標を手書き入力表示制御部23に送信する。
【0186】
S5:手書き入力表示制御部23は座標の入力と同時にペン2500から受信したペンIDを指定して、ペンID制御データ保存部36に保存されている現在のペンID制御データを取得する。ペンIDは座標の入力時に送信されるので、ストロークとペンIDが対応付けられる。ペンID制御データ保存部36はペンID制御データ(色、太さ、パターン、角度情報)を手書き入力表示制御部23に送信する。なお、角度情報はまだ初期値のゼロである。
【0187】
S6:手書き入力表示制御部23はペン座標補完表示データ(離散的なペン座標を補間するデータ)を表示部22に送信する。表示部22はペン座標補完表示データを用いてペン座標を補間して線を表示する。
【0188】
S7:手書き入力表示制御部23はペン座標とその受信時刻を手書き入力保存部25に送信する。手書き入力保存部25はペン座標をストロークに追加する。ユーザーがペンを動かしている間は、手書き入力部21は定期的に手書き入力表示制御部23へのペン座標の送信を繰り返すため、ステップS4~S7の処理がペンアップされるまで繰り返される。
【0189】
S8:ユーザーが手書き入力部21からペンを離すと、手書き入力部21はペンアップを手書き入力表示制御部23に送信する。
【0190】
S9:手書き入力表示制御部23は手書き入力保存部25にストローク終了を送信し、手書き入力保存部25はストロークのペン座標を確定させる。ストロークのペン座標の確定により以降はストロークにペン座標を追加できなくなる。
【0191】
S10:次に、手書き入力表示制御部23は手書きオブジェクト近傍矩形領域403に基づいて、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況取得を手書き入力保存部25に送信する。手書き入力保存部25は重なり状況を計算して重なり状況を手書き入力表示制御部23に送信する。
【0192】
続く、ステップS11~S17は、手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合に実行される。
【0193】
S11:手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合、1つの手書きオブジェクトが確定するので、手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
【0194】
S12~S14:手書き認識制御部26は保持データクリアをそれぞれ文字列変換制御部28、予測変換制御部30、操作コマンド認識制御部32に送信する。手書き認識制御部26、文字列変換制御部28、予測変換制御部30及び操作コマンド認識制御部32がこれまでに保持している文字列候補と操作コマンドの候補に係るデータをクリアする。なお、クリアの時点では最後に手書きされたストロークは手書きオブジェクトに追加されていない。
【0195】
S15:手書き入力表示制御部23は手書きオブジェクト終了を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクトを確定させる。手書きオブジェクトの確定とは1つの手書きオブジェクトが完成したこと(これ以上、ストロークが追加されないこと)をいう。
【0196】
S16:手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。次の手書きオブジェクトの手書きが開始(ペンダウン)されることに備えて、手書き入力保存部25は新しい手書きオブジェクト領域を確保する。
【0197】
S17:次に手書き入力表示制御部23はステップS9で終了したストロークに関してストローク追加を手書き入力保存部25に送信する。ステップS11~S17が実行された場合、追加されるストロークは手書きオブジェクトの最初のストロークであり、手書き入力保存部25は開始中の手書きオブジェクトにストロークデータを追加する。ステップS11~S17が実行されてない場合、追加されるストロークはすでに手書き中の手書きオブジェクトに追加される。
【0198】
S18:続いて手書き入力表示制御部23はストローク追加を手書き認識制御部26に送信する。手書き認識制御部26は文字列候補が格納されるストロークデータ保持領域(ストロークデータが一時的に格納される領域)にストロークデータを追加する。
【0199】
S19:手書き認識制御部26はストロークデータ保持領域に対してジェスチャー手書き認識を実行する。ジェスチャー手書き認識とは、直線から角度情報を認識することをいう。なお、ジェスチャー手書き認識は操作ガイド500の内部で行われるため、手書き認識制御部26は操作ガイド500の内部の直線を検出する。操作ガイド500の位置情報は後述するステップS67で手書き認識制御部26に送信される。
【0200】
S20:操作ガイド500内の直線が検出された場合、直線の始点から6時の方向に下ろした直線522と、ユーザーが入力した直線521の反時計回りのなす角αを、45度単位で決定する。そして、手書き認識制御部26は、決定した角度情報を直線521のストロークデータが有するペンIDに対応付けてペンID制御データ保存部36に保存する。なお、ステップS20は操作ガイド500内で直線が検出された場合に実行される。
【0201】
S21:次に、手書き認識制御部26は、手書き入力部21から受信したペンIDを指定して、ペンID制御データ保存部36から現在のペンID制御データの角度情報を取得する。
【0202】
S22:手書き認識制御部26は、ストロークデータ保持領域のストロークデータを取得した角度情報で時計回りに回転する。
【0203】
S23:手書き認識制御部26は、手書きサイン認証制御部38に回転後のストロークデータを送信する。このようにストロークデータが手書きサインかどうかは不明な状態で常に手書きサイン認証制御部38に送信する。
【0204】
S24:手書きサイン認証制御部38はストロークデータを受信し、手書きサインデータ保存部39から登録済みの手書きサインデータを受信する。そして、ストロークデータと手書きサインデータの比較(マッチング)を行い、後段のステップS61で手書きサインの認証結果を取得できるように手書きサインの認証結果を保持しておく。
【0205】
S25:次に、手書き認識制御部26はストロークデータに手書き認識を実行し、フォームの登録又は取消欄の「チェックマーク」又は「×」である場合はフォームの処理を行い、そうでない場合は通常の手書き認識の処理を行う。
【0206】
S26:手書きサインデータ登録フォームの登録又は取消欄内が「チェックマーク」であった場合、後述するステップS86で手書き入力表示制御部23が手書き入力保存部25に生成した手書きサイン登録フォームに対しユーザーが入力した手書きサインデータ(ストロークデータ)を、手書き認識制御部26が手書きサイン認証制御部38に送信する。
【0207】
S27:手書きサイン認証制御部38は受信した手書きサインデータ(ストロークデータ)を手書きサインデータ保存部39に登録する。これにより、SignatureIdが採番される。SignatureIdは手書き認識制御部26に返却される。手書き認識制御部26はSignatureId及び手書きサイン登録フォーム561の名前入力欄561aに入力された名前がユーザー定義データにない場合、ユーザー定義データを新規に追加しAccountIdを採番する。手書き認識制御部26はそのユーザー定義データにSignatureIdを保存する。名前入力欄561aに入力された名前がユーザー定義データにある場合は、そのユーザー定義データにSignatureIdを保存する。この処理によってAccountIdとSignatureIdは紐づけられる。なお、ユーザー定義データを新規に追加した場合はその他の値が設定されていないが、ユーザー定義データ変更フォーム562からユーザーが登録及び変更可能である。
【0208】
S28:手書きサインデータの登録により、手書き認識制御部26は手書きサイン登録フォーム561を手書き入力保存部25から削除する。
【0209】
S29:ユーザー定義データ変更フォームの登録又は取消欄内が「チェックマーク」であった場合、後述するステップS86で手書き入力表示制御部23が手書き入力保存部25に生成したユーザー定義データ変更フォーム562に入力された変更値を手書き認識制御部26が操作コマンド定義部33に送信する。
【0210】
S30:ユーザー定義データの変更の実行により、手書き認識制御部26はユーザー定義データ変更フォーム562を手書き入力保存部25から削除する。
【0211】
S31:後述するステップS86で追加したフォームの登録又は取消欄内が「×」であった場合、手書き認識制御部26はステップS86で追加したフォームを手書き入力保存部25から削除する。
【0212】
S33:フォーム処理でなかった場合、手書き認識制御部26はこの実行結果である手書き認識文字列候補を手書き認識辞書部27に送信する。手書き認識辞書部27は言語的に確からしい言語文字列候補を手書き認識制御部26に送信する。
【0213】
S34:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を文字列変換制御部28に送信する。
【0214】
S35:文字列変換制御部28は手書き認識文字列候補及び言語文字列候補を文字列変換辞書部29に送信する。文字列変換辞書部29は変換文字列候補を文字列変換制御部28に送信する。
【0215】
S36:文字列変換制御部28は受信した変換文字列候補を予測変換制御部30に送信する。
【0216】
S37:予測変換制御部30は受信した変換文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
【0217】
S38:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
【0218】
S39:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0219】
以降ステップS40~S47で説明される操作コマンドの候補の送信まで同様に処理を行う。
S40:文字列変換制御部28は受信した変換文字列候補を操作コマンド認識制御部32に送信する。
【0220】
S41:操作コマンド認識制御部32は受信した変換文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は変換文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0221】
S42:手書き認識制御部26は手書き認識文字列候補及び言語文字列候補を予測変換制御部30に送信する。
【0222】
S43:予測変換制御部30は手書き認識文字列候補及び受信した言語文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
【0223】
S44:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
【0224】
S45:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0225】
S46:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド認識制御部32に送信する。
【0226】
S47:操作コマンド認識制御部32は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は言語文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0227】
S48:次に手書き認識制御部26はストローク追加を操作コマンド認識制御部32に送信する。
【0228】
S49:操作コマンド認識制御部32は確定オブジェクトの位置情報取得を手書き入力保存部25に送信する。手書き入力保存部25は確定オブジェクトの位置情報を操作コマンド認識制御部32に送信する。
【0229】
S50:操作コマンド認識制御部32は選択オブジェクトの判定のため、ステップS48のストローク追加で手書き認識制御部26から受信したストロークの位置情報と、手書き入力保存部25から受信した確定オブジェクトの位置情報が所定の関係にあるか否かを跨ぎ線判定条件406及び囲み線判定条件407に基づいて判定し、選択されていると判定できる確定オブジェクトを選択オブジェクトとして保存しておく。また、この場合、選択オブジェクトが特定されるので入出力系の操作コマンドの候補を操作コマンド定義部33から取得する。
【0230】
また、手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はそれぞれ手書き認識文字列候補、言語文字列候補、変換文字列候補、予測文字列候補、操作コマンドの候補、及び、選択オブジェクトに係るデータを後段のステップS55~S58で取得できるよう保持しておく。
【0231】
S18-2:手書き入力表示制御部23はステップS18でストローク追加を手書き認識制御部26に送信した直後、選択可能候補表示タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
【0232】
続く、ステップS51~S53は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生した場合に実行される。
【0233】
S51:タイマーがタイムアウトする前に、ユーザーが手書き入力部21にペンを接触させた場合、手書き入力部21はペンダウン(ステップS2と同じイベント)を手書き入力表示制御部23に送信する。
【0234】
S52:手書き入力表示制御部23はストローク開始(ステップS3と同じ)を手書き入力保存部25に送信する。この後のシーケンスはステップS3以降と同じである。
【0235】
S53:更に手書き入力表示制御部23は選択可能候補表示タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はタイマーを停止させる。ペンダウンが検出されたのでタイマーが不要になるからである。
【0236】
ステップS54~S89は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生しない場合に実行される。したがって、
図17に示した操作ガイド500が表示される。
【0237】
S54:選択可能候補表示タイマー開始中にユーザーが手書き入力部21にペンを接触させなかった場合、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
【0238】
S55:手書き入力表示制御部23は手書き認識文字列/言語文字列候補取得を手書き認識制御部26に送信する。手書き認識制御部26は現在保持している手書き認識文字列/言語文字列候補を手書き入力表示制御部23に送信する。
【0239】
S56:手書き入力表示制御部23は変換文字列候補取得を文字列変換制御部28に送信する。文字列変換制御部28は現在保持している変換文字列候補を手書き入力表示制御部23に送信する。
【0240】
S57:手書き入力表示制御部23は予測文字列候補取得を予測変換制御部30に送信する。予測変換制御部30は現在保持している予測文字列候補を手書き入力表示制御部23に送信する。
【0241】
S58:手書き入力表示制御部23は操作コマンドの候補取得を操作コマンド認識制御部32に送信する。操作コマンド認識制御部32は現在保持している操作コマンドの候補と選択オブジェクトを手書き入力表示制御部23に送信する。
【0242】
S59:更に、手書き入力表示制御部23は推定書字方向取得を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト矩形領域のストローク追加時間と水平距離と垂直距離から判定して、推定書字方向を手書き入力表示制御部23に送信する。
【0243】
S60:次に、手書き入力表示制御部23は、手書き入力部21から受信したペンIDを指定して、ペンID制御データ保存部36から現在のペンID制御データの角度情報を取得する。
【0244】
S61:手書き入力表示制御部23は手書きサイン認証制御部38から手書きサインの認証結果を取得する。これにより、ユーザーのSignatureIdが得られるので、後述する操作コマンドの実行時にペンIDにAccountIdが対応付けて登録される。
【0245】
S62:手書き入力表示制御部23はこれらの手書き認識文字列候補(
図17では「ぎ」)、言語文字列候補(
図17では表示がないが例えば「議」)、変換文字列候補(
図17では「議事録」「技量試」)、予測文字列候補(
図17では「技量試を決済」「議事録の送付先」)、操作コマンドの候補(
図17では「議事録テンプレートを読み込む」「議事録フォルダーに保存する)、各選択確率、及び、推定書字方向から
図17のような選択可能候補表示データを作成する。また、手書き入力表示制御部23はステップS60で取得した角度情報で選択可能候補表示データ(操作ガイド500)を反時計回りに回転させ、回転後の選択可能候補表示データ(操作ガイド500)を表示部22に送信することで表示させる。
【0246】
S63:また、手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ(矩形枠)(
図17では手書きオブジェクト矩形領域表示503)を、ステップS60で取得した角度情報で反時計回りに回転させ、表示部22に送信することで表示させる。
【0247】
S64:手書き入力表示制御部23は選択可能候補表示データの表示から一定時間後に消去するため選択可能候補表示消去タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
【0248】
ステップS65~S70は、選択可能候補消去タイマー開始中に、ユーザーが表示部22に表示された選択可能候補表示を消去したか、手書きオブジェクトの変化が発生した場合(即ち手書きオブジェクトのストロークの追加、削除、移動、変形又は分割された場合)、又は、タイムアウトまでに候補が選択されなかった場合に実行される。
【0249】
更に、ステップS65~S67は、候補表示が消去されるか、又は、手書きオブジェクトの変化が発生した場合に実行される。
【0250】
S65:手書き入力部21は選択可能候補表示消去又は手書きオブジェクトの変化の発生を手書き入力表示制御部23に送信する。
【0251】
S66:手書き入力表示制御部23は選択可能候補消去タイマー停止を送信する。候補表示タイマー制御部24はそのタイマーを停止する。一定時間内に手書きオブジェクトに対し操作があったためタイマーが不要になるからである。
【0252】
S67:手書き入力表示制御部23は、ステップS19のジェスチャー手書き認識のジェスチャー判定で使用できるよう、操作ガイド500の位置情報を手書き認識制御部26に保存する。位置情報は例えば左上コーナーと右下コーナーの座標又はこれと同等の座標である。これにより、手書き認識制御部26は角度情報の入力に使用される直線が操作ガイド500内かどうかを判定できる。
【0253】
S69:手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで、表示を消去させる。
【0254】
S70:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで、表示を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
【0255】
S68:一方、選択可能候補消去タイマー開始中に、選択可能候補表示消去又は手書きオブジェクトの変化が発生しなかった場合(ユーザーがペン操作をしなかった場合は)、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
【0256】
選択可能候補表示消去タイマーのタイムアウトの後も同様に、手書き入力表示制御部23はステップS69とS70を実行する。一定時間の経過で選択可能候補表示データ、手書きオブジェクトと選択オブジェクトの矩形領域表示データを消去してよいためである。
【0257】
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS71~S89が実行される。
【0258】
S71:選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部21は文字列候補又は操作コマンドの候補選択を手書き入力表示制御部23に送信する。
【0259】
S71-2:手書き入力表示制御部23は選択可能候補表示消去タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを停止する。
【0260】
S72:次に手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
【0261】
S73:手書き認識制御部26は保持データクリアを文字列変換制御部28に送信する。
【0262】
S74:手書き認識制御部26は保持データクリアを予測変換制御部30に送信する。
【0263】
S75:手書き認識制御部26は保持データクリアを操作コマンド認識制御部32に送信する。
【0264】
手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はこれまで保持していた文字列候補及び操作コマンドの候補に係るデータをクリアする。
【0265】
S76:次に手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで表示を消去させる。
【0266】
S77:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで表示を消去させる。
【0267】
S78:手書き入力表示制御部23は手書きオブジェクト表示データ消去及びステップS6で送信したペン座標補完表示データ消去を表示部22に送信することで表示を消去させる。文字列候補又は操作コマンドの候補が選択されたため、手書きオブジェクト等が不要になるためである。
【0268】
S79:手書き入力表示制御部23は手書きオブジェクト削除を手書き入力保存部25に送信する。
【0269】
文字列候補が選択された場合、ステップS80~S82が実行される。
【0270】
S80:文字列候補が選択された場合、手書き入力表示制御部23は文字列オブジェクト追加を手書き入力保存部25に送信する。
【0271】
S81:更に手書き入力表示制御部23は文字列オブジェクトフォント取得を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクトの推定文字サイズから定義済みフォントを選択して手書き入力表示制御部23に送信する。
【0272】
S82:次に手書き入力表示制御部23は手書き入力保存部25から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを表示部22に送信させることで、表示させる。
【0273】
操作コマンドの候補が選択された場合、ステップS83~S88が実行される。更に、選択オブジェクトがある場合はステップS83~S85が実行される。
【0274】
S83:選択オブジェクトへの操作コマンドの候補が選択された場合(選択オブジェクトが存在する場合)は、手書き入力表示制御部23は選択オブジェクト表示データ消去を表示部22に送信することで表示を消去させる。いったん、元の選択オブジェクトを消去するためである。
【0275】
S84:次に、手書き入力表示制御部23は選択オブジェクトへの操作コマンド実行を手書き入力保存部25に送信する。手書き入力保存部25は新しい選択オブジェクトの表示データ(編集又は修飾後の表示データ)を手書き入力表示制御部23に送信する。
【0276】
S85:次に手書き入力表示制御部23は選択オブジェクト表示データを表示部22に送信することで、操作コマンド実行後の選択オブジェクトを再表示させる。
【0277】
S86:入出力系の操作コマンドである操作コマンド定義データ713の「手書きサイン登録する」又は操作コマンド定義データ716の「設定変更する」が指定された場合、手書き入力表示制御部23は手書きサイン登録フォーム561又はユーザー定義データ変更フォームを手書き入力保存部25に追加する。
【0278】
S87:その他、入出力系の操作コマンドが選択された場合、手書き入力表示制御部23はユーザーが選択した操作コマンドに対応する操作コマンド定義データの操作コマンド文字列(Command)を実行する。
【0279】
サインインするための操作コマンド512が実行された場合、手書き入力表示制御部23は操作コマンド512の実行時に入力手段通信部37が受信したペンIDを取得する。手書き入力表示制御部23はステップS61で取得したSignatureIdを有するユーザー定義データを特定してAccountIdをユーザー定義データから取得する。そして、ペンIDに対応付けてAccountIdをペンID制御データに登録する。これにより、ペン2500とユーザーが紐付いた形となり、手書き入力装置2はユーザー定義データを使って処理が可能になる。
【0280】
ユーザーがサインインした後に操作コマンドが実行された場合、手書き入力表示制御部23は、操作コマンドの実行時に入力手段通信部37が受信したペンIDに対応付けられているAccountIdをペンID制御データから取得する。手書き入力表示制御部23は、このAccountIdでユーザー定義データを特定し、操作コマンドの%~%に設定して実行する。
【0281】
S88:
図24に示したように、操作ヘッダー520の回転操作ボタン511をユーザーが押下した場合、手書き入力表示制御部23は回転操作ボタン511の押下数によって、角度情報を受け付ける。手書き入力表示制御部23は受け付けた角度情報を、回転操作ボタン511の押下時にペン2500から受信したペンIDに対応付けてペンID制御データ保存部36に保存する。
【0282】
S89:次の手書きオブジェクトのために手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域を確保する。これ以降、ステップS2~S89の処理が繰り返される。
【0283】
<まとめ>
以上説明したように、本実施形態の手書き入力装置2は、文字等の入力と手書きサインの入力を区別せずにユーザーが手書きすることができ、各種の操作コマンドとサインインするための操作コマンド512を区別せずにユーザーが手書きで呼び出すことができる。
【0284】
また、本実施形態の手書き入力装置2は画面上のキーボードを使わず、また、ICカードのような特別なハードウェアを追加することなく、ユーザーが直感的に手書きするだけでユーザー認証することが可能になる。手書きという作業は直感的なのでユーザーが手書き入力装置を操作する方法を学習するコストを下げる効果が期待できる。また、同様に、所定の文字等を手書きするだけでサインアウトできる。また、ユーザーは手書きだけで手書きサインデータを登録できる。
【0285】
手書きでサインインした後は、サインインに使用したペンにユーザーの識別情報(AccountId)が対応付けられ、ユーザー定義データを使用して操作コマンドを実行できる。また、手書きでユーザー定義データを変更できる。
【0286】
また、本実施形態の手書き入力装置2は、操作メニューを選択してボタンのリストから操作を選択するという作業が必要なく、文字等を手書きする場合と同様に操作コマンドを入力できる。操作ガイドには操作コマンドと選択可能候補530が同時に表示されるので、ユーザーは文字等の入力と操作コマンドの選択を区別せずに手書き入力装置2を使用できる。ユーザーが手書きオブジェクトを手書きしたり確定オブジェクトを囲み線で囲んだりすることで、任意の操作コマンドの候補を表示させることができる。したがって、手書きした状態から任意の機能(編集機能、入出力機能、又はペン機能等)を呼び出すことができる。これにより、メニューボタンを押下して所望の機能を呼び出すステップバイステップの操作を不要にでき、ユーザーが手書きしている状態から任意の機能を呼び出すまでの操作手順を低減できる。
【0287】
<<手書き入力装置の構成の別の例1>>
本実施形態の手書き入力装置2は大型のタッチパネルを有するものとして説明されているが、手書き入力装置はタッチパネルを有するものに限られない。
【0288】
図35は、手書き入力装置の他の構成例を示す図である。
図35では、通常のホワイトボード413の上辺にプロジェクター411が設置されている。このプロジェクター411が手書き入力装置に相当する。通常のホワイトボード413とは、タッチパネルと一体のフラットパネルディスプレーではなく、ユーザーがマーカーで直接、手書きするホワイトボードである。なお、ホワイトボードは黒板でもよく、映像を投影するだけの広さの平面であればよい。
【0289】
プロジェクター411は超短焦点の光学系を有しており、10cm程度から歪みの少ない映像をホワイトボード413に投影できる。この映像は、無線又は有線で接続されたPC400ー1から送信されてもよいし、プロジェクター411が記憶していてもよい。
【0290】
ユーザーは専用の電子ペン2501を使ってホワイトボード413に手書きする。電子ペン2501は、ユーザーが手書きのためにホワイトボード413に押しつけるとスイッチがONになり発光する発光部を例えば先端部に有している。光の波長は近赤外や赤外なのでユーザーの目には見えない。プロジェクター411はカメラを有しており、発光部を撮像して画像を解析し電子ペン2501の方向を特定する。また、電子ペン2501は発光と共に音波を発信しており、プロジェクター411は音波の到達時間により距離を算出する。方向と距離により電子ペン2501の位置を特定できる。電子ペン2501の位置にはストロークが描画(投影)される。
【0291】
プロジェクター411はメニュー430を投影するので、ユーザーが電子ペン2501でボタンを押下すると、プロジェクター411が電子ペン2501の位置とスイッチのON信号により押下されたボタンを特定する。例えば、保存ボタン431が押下されると、ユーザーが手書きしたストローク(座標の集合)がプロジェクター411で保存される。プロジェクター411は、予め定められたサーバー412又はUSBメモリー2600等に手書き情報を保存する。手書き情報はページごとに保存されている。画像データではなく座標のまま保存されるので、ユーザーが再編集することができる。ただし、本実施形態では操作コマンドを手書きで呼び出せるのでメニュー430は表示されなくてもよい。
【0292】
<<手書き入力装置の構成の別の例2>>
図36は、手書き入力装置2の他の構成例を示す図である。
図36の例では、手書き入力装置2として、端末装置600、画像投影装置700A、及び、ペン動作検出装置810を有する。
【0293】
端末装置600は、画像投影装置700A及びペン動作検出装置810と有線で接続されている。画像投影装置700Aは、端末装置600により入力された画像データをスクリーン800に投影させる。
【0294】
ペン動作検出装置810は、電子ペン820と通信を行っており、スクリーン800の近傍における電子ペン820の動作を検出する。具体的には、電子ペン820は、スクリーン800上において、電子ペン820が示している点を示す座標情報を検出し、端末装置600へ送信する。
【0295】
端末装置600は、ペン動作検出装置810から受信した座標情報に基づき、電子ペン820によって入力されるストローク画像の画像データを生成する。端末装置600は、画像投影装置700Aによってストローク画像をスクリーン800に描画させる。
【0296】
また、端末装置600は、画像投影装置700Aに投影させている背景画像と、電子ペン820によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【0297】
<<手書き入力装置の構成の別の例3>>
図37は、手書き入力装置の構成例を示す図である。
図37の例では、手書き入力装置として、端末装置600とディスプレー800Aと、ペン動作検出装置810とを有する。
【0298】
ペン動作検出装置810は、ディスプレー800Aの近傍に配置される。ペン動作検出装置810は、ディスプレー800A上で電子ペン820Aが示している点を示す座標情報を検出し、端末装置600へ送信する。なお、
図37の例では、電子ペン820Aは、端末装置600によってUSBコネクタを介して充電されても良い。
【0299】
端末装置600は、ペン動作検出装置810から受信した座標情報に基づき、電子ペン820Aによって入力されるストローク画像の画像データを生成する。端末装置600ディスプレー800Aに表示させる。
【0300】
<<手書き入力装置の構成の別の例4>>
図38は、手書き入力装置の構成例を示す図である。
図38の例では、手書き入力装置として、端末装置600と、画像投影装置700Aとを有する。
【0301】
端末装置600は、電子ペン820Bと無線通信(例えばBluetooth:登録商標)を行って、スクリーン800上において電子ペン820Bが示す点の座標情報を受信する。そして、端末装置600は、受信した座標情報に基づき、電子ペン820Bにより入力されるストローク画像の画像データを生成する。端末装置600は、画像投影装置700Aにストローク画像を投影させる。
【0302】
また、端末装置600は、画像投影装置700Aに投影させている背景画像と、電子ペン820によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
【0303】
以上のように、上記した各実施形態は、様々なシステム構成において適用することができる。
本実施例では、ネットワーク上の情報処理システムが手書き認識等の処理を行って、処理の結果を手書き入力装置2に返すシステム形態の手書き入力システムについて説明する。
なお、本実施例の説明においては、実施例1で同一の符号を付した構成要素又は図の内容については同様の機能を果たすので、一度説明した構成要素の説明を省略あるいは相違点についてのみ説明する場合がある。
手書き入力装置2は社内などの施設に配置されており、施設内に敷設されたLANやWi-Fiに接続されている。情報処理システム10は例えばデータセンタ等に配置されている。手書き入力装置2はファイアウォール8を介してインターネットiと接続しており、情報処理システム10もデータセンタ内の高速なLAN等を経由してインターネットiに接続している。
手書き入力装置2は電話回線網等の無線通信を使用してインターネットiに接続してもよい。この場合、無線通信は、3G(3rd Generation)、4G(4rd Generation)、5G(5rd Generation)、LTE(Long Term Evolution)、WiMAX(Worldwide Interoperability for Microwave Access)等である。
更に、ある実施形態では、情報処理システム10は、サーバークラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリーなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。
手書き入力装置2の構成は実施例1と同様でよいが、本実施例ではタッチパネル、ディスプレー、及び、通信機能を有していればよい。手書き入力装置2は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。
本実施例ではPCやタブレットなどの一般的な情報処理装置がWebブラウザや専用のアプリケーションを実行することができる。Webブラウザや専用のアプリケーションは情報処理システム10と通信する。Webブラウザが動作する場合、ユーザーが情報処理システム10のURLを入力又は選択して、手書き入力装置を情報処理システム10に接続させる。手書き入力装置2は情報処理システム10が提供するWebアプリをWebブラウザで実行する。Webアプリとは、Webブラウザ上で動作するプログラミング言語(たとえばJavaScript(登録商標))によるプログラムとWebサーバー側のプログラムが協調することによって動作し、Webブラウザ上で実行されるソフトウェア又はその仕組みを言う。
専用のアプリケーションが動作する場合、予め登録されている情報処理システム10のURLに接続する。専用のアプリケーションはプログラムやユーザインタフェースを有しているので、プログラムが必要な情報を情報処理システム10と送受信してユーザインタフェースに表示する。
また、キーボード611は、文字、数値、各種指示などの入力のための複数のキーを備える。ポインティングデバイス612は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ614は、着脱可能な記録媒体の一例としてのDVD-RW613に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F616は、フラッシュメモリー等の記録メディア615に対するデータの読み出し又は書き込み(記憶)を制御する。
本実施例の手書き入力部21の機能は実施例1と同様でよい。手書き入力部21はユーザーのペン入力d1をペン操作データda(ペンアップ、ペンダウン、又はペン座標データ)に変換し、表示制御部44に送信する。
表示制御部44は、手書き入力装置2の表示に関する制御を行う。まず、表示制御部44は、離散値であるペン座標データの離散値間の座標を補完計算してペンダウンからペンアップまでのペン座標データを1本のストロークdbにして表示部22に送信する。
通信部42は、ペン操作データdcを情報処理システム10に送信し、情報処理システム10から各種の表示データddを受信して表示制御部44に送信する(第一の通信部の一例)。通信部42は例えばJSON形式やXML形式などでデータを送受信する。
表示部22の機能は実施例1と同様でよい。表示部22はストロークdbや表示データdeを表示する。表示部22は表示制御部44がビデオメモリーに書き込んだストロークdbや表示データdeをディスプレー220の特性に応じたデータに変換し、ディスプレー220に送信する。
通信部43は、ペン操作データdcを手書き入力装置2から受信し、手書き入力表示制御部23にペン操作データdfを送信する。通信部43は、手書き入力表示制御部23から表示データddを受信して、手書き入力装置2に送信する(第二の通信部の一例)。通信部43は例えばJSON形式やXML形式などでデータを送受信する。
S1:通信が確立すると手書き入力装置2のメモリー領域を確保するため、手書き入力表示制御部23が手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域(手書きオブジェクトを保存するメモリー領域)を確保する。ユーザーがペンを手書き入力部21に接触させてから手書きオブジェクト領域を確保してもよい。
S6:表示制御部44はペン座標補完表示データ(離散的なペン座標を補間するデータ)を表示部22に送信する。表示部22はペン座標補完表示データを用いてペン座標を補間して線を表示する。ステップS7の処理は実施例1と同様になる。
S51a:タイマーがタイムアウトする前に、ユーザーが手書き入力部21にペンを接触させた場合、手書き入力部21はペンダウン(ステップS2と同じイベント)を表示制御部44に送信する。ステップS51b~S51dの処理はステップS2b~S2dと同様でよい。また、ステップS52~S61の処理は実施例1と同様になる。
S65a:ユーザーが選択可能候補を消去したり、手書きオブジェクトに追加で手書きしたりすると、手書き入力部21は選択可能候補表示消去又は手書きオブジェクトの変化の発生を表示制御部44に送信する。
S65d:情報処理システム10の通信部43は選択可能候補表示消去又は手書きオブジェクトの変化の発生を受信して、手書き入力表示制御部23に送信する。ステップS66、S67、S68の処理は実施例1と同様になる。
S70d:表示制御部44は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を受信したので、表示部22に送信することで手書きオブジェクトと選択オブジェクトの矩形領域を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
S71a:選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部21は文字列候補又は操作コマンドの候補選択を表示制御部44に送信する。
S71d:情報処理システム10の通信部43は文字列候補又は操作コマンドの候補選択を受信して、手書き入力表示制御部23に送信する。ステップS72~S75の処理は実施例1と同様になる。
S78d:表示制御部44は手書きオブジェクト表示データ消去を受信したので、表示部22に手書きオブジェクトとペン座標補完表示データを消去させる。ステップS79の処理は実施例1と同様でよい。
S82a: 次に手書き入力表示制御部23は手書き入力保存部25から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを通信部43に送信する。
S83a:選択オブジェクトへの操作コマンドの候補が選択された場合(選択オブジェクトが存在する場合)は、手書き入力表示制御部23は選択オブジェクト表示データ消去を通信部43に送信する。いったん、元の選択オブジェクトを消去するためである。
S84:次に、手書き入力表示制御部23は選択オブジェクトへの操作コマンド実行を手書き入力保存部25に送信する。手書き入力保存部25は新しい選択オブジェクトの表示データ(編集又は修飾後の表示データ)を手書き入力表示制御部23に送信する。
S85d:表示制御部44は選択オブジェクト表示データを受信したので、表示部22に操作コマンド実行後の選択オブジェクトを再表示させる。ステップS86~S89の処理は実施例1と同様でよい。
例えば、本実施形態では電子黒板を一例として説明したが、タッチパネルを有する情報処理装置であれば好適に適用できる。タッチパネルを搭載した情報処理装置としては、例えば、PJ(Projector:プロジェクター)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC又はデスクトップPC等であってもよい。
また、本実施形態ではペン先の座標をタッチパネルで検知する方法でペンの座標を検出したが、ペン先の座標を超音波により検出してもよい。また、ペンは発光と共に超音波を発信しており、手書き入力装置2は超音波の到達時間により距離を算出する。方向と距離によりペンの位置を特定できる。ペンの軌跡をストロークとしてプロジェクターが描画(投影)する。
また、本実施形態では、選択オブジェクトがある場合に編集系及び修飾系の操作コマンドの候補を表示し、選択オブジェクトがない場合に入出力系の操作コマンドの候補を表示した。しかし、編集系及び修飾系の操作コマンドの候補と入出力系の操作コマンドの候補を同時に表示してもよい。
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
ペンID制御データ保存部36は制御データ保存手段の一例である。表示部22は請求項1の表示手段の一例である。手書き認識制御部26は手書き認識制御手段の一例である。通信部42は受信手段の一例である。通信部43は送信手段の一例である。操作コマンド認識制御部32は操作コマンド認識制御手段の一例である。入力手段通信部37は入力手段通信手段の一例である。手書きサイン認証制御部38は認証制御手段の一例である。手書き入力部21は手書き入力手段の一例である。ディスプレー220は表示制御手段の一例である。