(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024111215
(43)【公開日】2024-08-16
(54)【発明の名称】入力装置、入力方法、プログラム、入力システム
(51)【国際特許分類】
G06F 3/04883 20220101AFI20240808BHJP
【FI】
G06F3/04883
【審査請求】有
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2024099801
(22)【出願日】2024-06-20
(62)【分割の表示】P 2019185271の分割
【原出願日】2019-10-08
(31)【優先権主張番号】P 2018194685
(32)【優先日】2018-10-15
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】笠谷 潔
(57)【要約】
【課題】手書き入力の操作性を向上させた入力装置を提供すること。
【解決手段】ディスプレイに接触しているペン又はユーザーの指の位置を用いて、手書き入力を受け付ける手書き入力部と、前記手書き入力部が受け付けた前記手書き入力を手書きオブジェクトとして前記ディスプレイに表示する表示部と、を備え、第一の時間、前記手書きオブジェクトの変化が発生しなかった場合、前記手書きオブジェクトに基づいて1つ以上の操作コマンドを表示することを特徴とする入力装置2を提供する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
ディスプレイに接触しているペン又はユーザーの指の位置を用いて、手書き入力を受け付ける手書き入力部と、
前記手書き入力部が受け付けた前記手書き入力を手書きオブジェクトとして前記ディスプレイに表示する表示部と、を備え、
第一の時間、前記手書きオブジェクトの変化が発生しなかった場合、前記手書きオブジェクトに基づいて1つ以上の操作コマンドを表示することを特徴とする入力装置。
【請求項2】
前記第一の時間、前記手書きオブジェクトの変化が発生しなかった場合、前記手書きオブジェクトを含む手書きオブジェクト矩形領域を表示し、更に、前記手書きオブジェクトを操作コマンドとして認識した1つ以上の操作コマンド候補を表示し、
前記操作コマンド候補が第二の時間、選択されなかった場合、前記操作コマンド候補の表示を消去する操作を受け付けた場合、又は、前記手書きオブジェクトの変化が発生した場合、表示されている前記操作コマンド候補を消去し、
前記操作コマンド候補が選択される以外の条件で、前記操作コマンド候補の表示を消去した場合、前記手書きオブジェクトの表示を維持することを特徴とする請求項1に記載の入力装置。
【請求項3】
前記手書きオブジェクトを文字列として認識した1つ以上の文字列候補を表示し、
前記操作コマンド候補と前記文字列候補が前記第二の時間、選択されなかった場合、又は、前記操作コマンド候補と前記文字列候補の表示を消去する操作を受け付けた場合、前記操作コマンド候補と前記文字列候補の表示を消去し、
前記操作コマンド候補と前記文字列候補が選択される以外の条件で、前記操作コマンド候補と前記文字列候補の表示が消去された場合、前記手書きオブジェクトの表示を維持することを特徴とする請求項2に記載の入力装置。
【請求項4】
前記文字列候補として文字、数字、記号、又は、図形を表示し、
文字、数字、記号、又は、図形と共に、前記操作コマンドを表示することを特徴とする請求項3に記載の入力装置。
【請求項5】
前記操作コマンドに対応付けられた変数を置き換える定数を記憶しており、
前記手書きオブジェクトから認識した前記操作コマンドに対応付けられた変数を前記定数で置き換え、
前記変数が前記定数で置き換えられた前記操作コマンドを実行することを特徴とする請求項1~4のいずれか1項に記載の入力装置。
【請求項6】
ユーザーを認証するユーザー認証手段を有し、
前記ユーザー認証手段が認証に成功した場合、認証に成功したユーザーに関する情報を前記定数に設定し、
認識した前記操作コマンドに対応付けられた変数を前記ユーザーに関する情報で置き換え、
前記変数が前記ユーザーに関する情報で置き換えられた前記操作コマンドを実行することを特徴とする請求項5に記載の入力装置。
【請求項7】
すでに手書きされている確定オブジェクトの位置情報と、前記手書きオブジェクトが所定の関係にある場合、前記手書きオブジェクトと所定の関係にある前記確定オブジェクトに関する前記操作コマンドを認識することを特徴とする請求項1~6のいずれか1項に記載の入力装置。
【請求項8】
前記手書きオブジェクトと所定の関係にある前記確定オブジェクトを編集又は修飾する前記操作コマンドを認識することを特徴とする請求項7に記載の入力装置。
【請求項9】
すでに手書きされている複数の確定オブジェクトのそれぞれの位置情報と、1つの前記手書きオブジェクトが所定の関係にある場合、
1つの前記手書きオブジェクトと所定の関係にある複数の前記確定オブジェクトに関する前記操作コマンドを認識することを特徴とする請求項7又は8に記載の入力装置。
【請求項10】
すでに手書きされている確定オブジェクトと前記手書きオブジェクトが所定の重なり率以上又は重なり率より大きく、重なっている場合、すでに手書きされている確定オブジェクトの位置情報と、前記手書きオブジェクトが前記所定の関係にあると判定することを特徴とする請求項7~9のいずれか1項に記載の入力装置。
【請求項11】
複数の前記操作コマンドを表示する場合、1つ以上の前記操作コマンドとサブメニューボタンを表示し、
前記サブメニューボタンの操作に応じて残りの前記操作コマンドを表示することを特徴とする請求項1~10のいずれか1項に記載の入力装置。
【請求項12】
前記サブメニューボタンと共に表示される前記操作コマンドは、最後にユーザーが選択した前記操作コマンドであることを特徴とする請求項11に記載の入力装置。
【請求項13】
前記操作コマンド候補が選択される以外の条件は、前記操作コマンド候補の表示を消去する操作を受け付けた場合、又は、前記手書きオブジェクトの変化が発生した場合であることを特徴とする請求項2に記載の入力装置。
【請求項14】
手書き入力部が、ディスプレイに接触しているペン又はユーザーの指の位置を用いて、手書き入力を受け付けるステップと、
表示部が、前記手書き入力部が受け付けた前記手書き入力を手書きオブジェクトとして前記ディスプレイに表示するステップと、
第一の時間、前記手書きオブジェクトの変化が発生しなかった場合、前記手書きオブジェクトに基づいて1つ以上の操作コマンドを表示するステップと、
を有することを特徴とする入力方法。
【請求項15】
情報処理装置を、
ディスプレイに接触しているペン又はユーザーの指の位置を用いて、手書き入力を受け付ける手書き入力部と、
前記手書き入力部が受け付けた前記手書き入力を手書きオブジェクトとして前記ディスプレイに表示する表示部、として機能させ、
第一の時間、前記手書きオブジェクトの変化が発生しなかった場合、前記手書きオブジェクトに基づいて1つ以上の操作コマンドを表示するプログラム。
【請求項16】
入力装置と情報処理システムとが通信する入力システムであって、
前記入力装置は、
ディスプレイに接触しているペン又はユーザーの指の位置を用いて、手書き入力を受け付ける手書き入力部と、
前記手書き入力部が受け付けた前記手書き入力を手書きオブジェクトとして前記ディスプレイに表示する表示部と、
前記手書き入力部が受け付けた前記ペン又はユーザーの指の位置を前記情報処理システムに送信して、前記情報処理システムから操作コマンド候補を受信する通信部と、を有し、
前記情報処理システムは、
第一の時間、前記手書きオブジェクトの変化が発生した旨の通知を受信しなかった場合、前記手書きオブジェクトに基づいて1つ以上の前記操作コマンド候補を前記入力装置に送信することを特徴とする入力システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力装置、入力方法、プログラム及び入力システムに関する。
【背景技術】
【0002】
一般的なコンピュータ制御のホワイトボード装置又は手書き入力が可能なアプリケーション(以下、入力装置という)では、入力手段がペン又は指に限られている。このため、文字の色などを変更するペン機能と文字の消去などの編集機能をユーザーが切り替えて使えるように操作メニューが用意されている。通常、ペン機能メニューでは色や太さ等を選択でき、編集機能メニューでは消去、移動、変倍、回転、切り取り、コピー、貼り付け等を選択できる(例えば、特許文献1参照。)。
【0003】
特許文献1には、ペンボタンの押下により、色設定、透明度設定、太さ設定、線種設定、スタンプ設定、及び動作設定のメニューが表示される入力装置について開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の入力装置では、手書き入力の操作性がよくない場合があるという問題があった。例えば、ユーザーが手書きしたオブジェクトを編集したり修飾したりしようとするたびにペン機能メニュー又は編集機能メニューを開く必要がある。開いた後には更に所望の設定又は機能(色、太さ、線種など)を選択する必要がある。
【0005】
本発明は、上記課題に鑑み、手書き入力の操作性を向上させた入力装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題に鑑み、本発明は、ディスプレイに接触しているペン又はユーザーの指の位置を用いて、手書き入力を受け付ける手書き入力部と、前記手書き入力部が受け付けた前記手書き入力を手書きオブジェクトとして前記ディスプレイに表示する表示部と、を備え、第一の時間、前記手書きオブジェクトの変化が発生しなかった場合、前記手書きオブジェクトに基づいて1つ以上の操作コマンドを表示することを特徴とする入力装置を提供する。
【発明の効果】
【0007】
手書き入力の操作性を向上させた入力装置を提供することができる。
【図面の簡単な説明】
【0008】
【
図1】従来の手書き入力装置が表示する操作メニューを示す図である。
【
図3】手書き入力装置が表示する操作コマンドの候補の表示例を説明する図の一例である。
【
図5】手書き入力装置の一例のハードウェア構成図である。
【
図6】手書き入力装置が有する機能をブロック状に示す一例の機能ブロック図である。
【
図7】手書き入力装置が有するユーザー認証に関する機能をブロック状に示す一例の機能ブロック図である。
【
図9】手書き認識辞書部の辞書データの一例を示す図である。
【
図10】文字列変換辞書部の辞書データの一例を示す図である。
【
図11】予測変換辞書部の辞書データの一例を示す図である。
【
図12】操作コマンド定義部が保持する操作コマンド定義データとシステム定義データの一例を示す図である。
【
図13】手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す図である。
【
図14】選択オブジェクトがない場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【
図15】選択オブジェクトの指定例を説明する図の一例である。
【
図16】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【
図17】手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す図である。
【
図18】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その1)。
【
図19】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その2)。
【
図20】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その3)。
【
図21】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その4)。
【
図22】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その5)。
【
図23】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その6)。
【
図24】手書き入力システムのシステム構成図の一例である(実施例2)。
【
図25】情報処理システムのハードウェア構成図の一例である。
【
図26】手書き入力システムが有する機能をブロック状に示す機能ブロック図の一例である。
【
図27】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その1)。
【
図28】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その2)。
【
図29】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その3)。
【
図30】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その4)。
【
図31】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その5)。
【
図32】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その6)。
【
図33】手書き入力装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その7)。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態の一例として、手書き入力装置2及び手書き入力装置2が行う手書き入力方法について図面を参照しながら説明する。
【0010】
<従来の手書き入力装置の操作手順について>
本実施形態の手書き入力装置の説明の便宜上、まず、従来の手書き入力装置の操作手順について簡単に説明する。
【0011】
図1は、従来の手書き入力装置が表示する操作メニューを示す。操作パネル全体101にはペン機能メニュー102を表示させるペン機能メニューボタン1021、編集機能メニューを表示させる編集機能メニューボタン1031、及び、入出力機能メニューを表示させる入出力機能メニューボタン1041等が表示されている。ペン機能メニュー102ではユーザーがペンの色、太さ、動作モードを選択でき、編集機能メニュー103では、オブジェクトの消去、選択、切り取り、コピー、及び貼り付けを選択でき、入出力機能メニュー104ではテンプレートの読み込み、ファイルの読み込み、ファイルへの保存、及び印刷等を実行できる。
【0012】
従来の手書き入力装置の操作手順の一例として、ユーザーが直線又は曲線(以下、ストローク、と呼ぶ)を手書きしている状態で、複数のストロークを消去して、再びペンで書き始めるには、以下の操作手順が必要となる。なお、特に明記しない場合、ペンで押下するとはペン先で押下することを意味する。
(A1) 編集機能メニューボタン1031をペンで押下して編集機能メニュー103を表示する。
(A2) 編集機能メニュー103の「消去する」ボタン1032をユーザーが押下すると、手書き入力装置は自動的に編集機能メニュー103を消去する。
(A3) ユーザーが消去対象の複数のストロークを跨ぐようにペンで書き込むとストロークが消去される。
(A4) ペン機能メニューボタン1021をペンで押下する。
【0013】
この手順で消去対象のストロークが消去され、引き続き、ユーザーはペンでストロークを手書きできるようになる。ストロークを消去するだけで4ステップもの操作手順が必要になる。ステップ数や画面の遷移に差異はあっても手書き入力装置は同様の操作体系であることが多い。またこのような操作体系はコンピュータ製品全般に共通しており、ユーザーが必要な機能を呼び出す操作体系が基本になっている。ユーザーが機能の呼び出し方法を知らなければ全く操作ができないため、チュートリアル機能やヘルプ機能によって、手書き入力装置が機能の呼び出し方法を提供する手法が一般的である。
【0014】
同様に、ファイルや印刷などの入出力が必要になった場合、ユーザーは入出力機能メニュー104を開く。例えば、テンプレートを読み込むには、以下の操作手順が必要になる。
(B1) 入出力機能メニューボタン1041をユーザーがペンで押下すると入出力機能メニュー104が開く。
(B2) 入出力機能メニュー104の「テンプレート選択」ボタン1042をユーザーがペンで押下すると入出力機能メニューが閉じてテンプレート選択ウィンドウが開く。
(B3) 所望のテンプレートが表示されるまでスクロールさせるため左右ボタン等をペンで押下する。
(B4) 所望のテンプレートをペンで押下するとそのテンプレートが読み込まれてテンプレート選択ウィンドウが閉じる。
【0015】
このように、従来の手書き入力装置ではユーザーがステップバイステップで操作する操作手順が必要となる。つまり、手書き入力装置が説明的に次のステップに導く操作体系が基本となっているため、ユーザーは直感的に操作することが困難であった。
【0016】
図2に示すように、操作手順を減らすためにペン側に機能を持たせることも検討されている。
図2は多機能なペン(以下、アクティブペン110という)の一例を示す。アクティブペン110とは電源を内蔵して手書き入力装置に命令を送信できるペンである。
図2のアクティブペン110では、物理的なスイッチがペン先に一つ、ペン尻に一つ、ペン側面に二つあり、ペン先が筆記用、ペン尻が消去用、ペン側面はユーザー機能割り当て用である。
【0017】
ユーザーはペン側面スイッチのうちの一つをペン機能メニュー102、もう一つを編集機能メニュー103に割り当てることができる。ユーザーが手に持ったアクティブペン110の側面ボタンを押すことによってペン機能メニュー102又は編集機能メニュー103を表示させることができる点で便利にはなるが、操作の対象となるオブジェクトを変更するたびにユーザーが側面ボタンを押下してペン機能メニュー102又は編集機能メニュー103を開く煩雑さは変わらない。
【0018】
また、消去用のペン尻のスイッチを使用すると、前記の(A1)(A2)(A4)のステップが不要になり、前記の(A3)のステップでペン先の代わりにペン尻を使えばよく、消去に要する操作手順を1ステップに短縮できるが、アクティブペン110という特別なペンの購入と運用にコストがかかるという別の不都合を生じさせる。また、アクティブペン110は電池交換又は充電が必要になり、利用状況によっては紛失防止への対策も必要となる。
【実施例0019】
<概要>
次に、
図3を用いて、本実施形態の手書き入力装置2の概略について説明する。
図3は、手書き入力装置2が表示する操作コマンドの候補(操作コマンド候補ともいう)の表示例を説明する図の一例である。
図3(a)はユーザーが文字を手書きしたことにより表示される操作コマンドの候補を示し、
図3(b)は囲み線を手書きしたことにより表示される操作コマンドの候補を示す。まず、
図3(a)について説明する。
【0020】
A.ユーザーが「ぎ」という手書きオブジェクト11(ここでは文字)をペンで手書きすると、手書き入力装置2は文字認識を行い、「ぎ」に変換する。
【0021】
B.手書き入力装置2は、更に、「ぎ」を漢字に変換する。
図3(a)では一例として「議」に変換されているが、辞書に入っている漢字であれば変換可能である。
【0022】
C.手書き入力装置2は、更に、「議」から予測される予測文字列に「議」を変換する。
図3(a)では一例として「議事録」に変換されているが、辞書に入っている文字列であれば変換可能である。
【0023】
D.手書き入力装置2は、「ぎ」「議」又は「議事録」を含む操作コマンドの候補を表示する。すなわち、「ぎ」「議」又は「議事録」に対応付けられた操作コマンドとして、入出力機能に関する「議事録テンプレートを読み込む」「議事録フォルダーに保存する」という操作コマンドの候補510を表示する。操作コマンドの候補は二つに限られない。操作コマンドの候補510が選択されると、手書き入力装置2は選択された操作コマンドに応じたファイルの入出力を実行する。
【0024】
したがって、ユーザーとしては「ぎ」を手書きすることで、「議事録テンプレートを読み込む」又は「議事録フォルダーに保存する」という操作コマンドの候補510を表示させることができ、手書きしている状態から、
図1に示した入出力機能を呼び出すことができる。
【0025】
【0026】
E.ユーザーが「議事録」というすでに確定している確定オブジェクト13を手書きオブジェクト11(ここでは囲み線)で囲む。
【0027】
F.手書き入力装置2は、手書きオブジェクト11と確定オブジェクト13が所定の基準を満たすか否か(例えば、重なっているか否か)を判定する。
【0028】
G.手書きオブジェクト11と確定オブジェクト13が所定の基準を満たす場合、手書き入力装置2は編集系又は修飾系の操作コマンドの候補510を表示する。
図3(b)では、編集機能に関する「消去」「移動」「回転」「選択」という操作コマンドの候補510が表示されている。操作コマンドの候補510は四つに限られない。
【0029】
したがって、ユーザーとしては確定オブジェクト13を囲み線で囲むことで、確定オブジェクト13を変更する操作コマンドの候補510を表示させることができ、手書きしている状態から編集機能を呼び出すことができる。
【0030】
このように、本実施形態の手書き入力装置2は、ユーザーが手書きしている状態で入出力機能又は編集機能等を呼び出すことができる。ペン機能についても同様に呼び出すことができる。したがって、ユーザーが手書きしている状態から任意の機能を呼び出すまでの操作手順を低減できる。
【0031】
<用語について>
入力手段とはタッチパネルに座標を指定して手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。また、視線入力が可能でもよい。
【0032】
ユーザーがディスプレイに入力手段を押しつけてから連続的に移動させた後、ディスプレイから離すという一連の操作をストロークという。ストロークデータとは、入力手段により入力される座標の軌跡に基づいてディスプレイに表示される情報である。ストロークデータは適宜、補間されてよい。
【0033】
ストロークデータに基づいてディスプレイに表示される表示物をオブジェクトという。オブジェクトとは対象という意味であるが、本実施形態では表示対象などの意味である。
【0034】
手書きオブジェクトは1つ以上のストロークデータにより構成されるオブジェクトであり、ユーザーが手書きした表示対象をいう。手書きオブジェクト矩形領域は手書きオブジェクトを囲む外接矩形で示される領域である。
【0035】
確定オブジェクトは手書きオブジェクトの文字認識により文字コード(フォント)に変換されユーザーにより選択されたオブジェクト、又は、文字コード(フォント)に変換しないことが確定している手書きオブジェクトである。
【0036】
入力装置はタッチパネルに対する入力手段の接触位置に基づいて情報の入力を受け付ける装置である。本実施形態では手書き入力装置2という用語で説明する。
【0037】
操作コマンドとは手書き入力装置2を操作するために用意されている、特定の処理の実行を指示する命令をいう。本実施形態では一例として、編集系、修飾系、又は、入出力系の操作コマンドを例にするが、画面反転、ページ切り替え、動作モードの設定など、手書き入力装置2を操作する全てのコマンドが対象となる。
【0038】
<装置の全体構成>
図4を用いて、本発明の実施形態に係る手書き入力装置2の全体構成を説明する。
図4は、手書き入力装置2の全体構成図を示した図である。ここでは、手書き入力装置2の一例として、電子黒板を示している。
【0039】
図4に示されているように、手書き入力装置2の上部には表示装置の一例としてのディスプレイ220が設置されている。利用者は、ペン2500を用いて、ディスプレイ220に文字等を入力(描画)することができる。
【0040】
<装置のハードウェア構成>
続いて、
図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を備えている。
【0041】
これらのうち、CPU201は、手書き入力装置2全体の動作を制御する。ROM202は、CPU201やIPL(Initial Program Loader)等のCPU201の駆動に用いられるプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。SSD204は、手書き入力装置2用のプログラム等の各種データを記憶する。
【0042】
また、手書き入力装置2は、ディスプレイコントローラ213、タッチセンサコントローラ215、タッチセンサ216、ディスプレイ220、及び、電源スイッチ222を備えている。
【0043】
ディスプレイコントローラ213は、出力画像をディスプレイ220等へ出力するために画面表示の制御及び管理を行う。タッチセンサ216は、ディスプレイ220上にペン2500やユーザーの手等(ペンやユーザーの手は入力手段となる)が接触したことを検知する。タッチセンサコントローラ215は、タッチセンサ216の処理を制御する。タッチセンサ216は、座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、例えば、光学式の場合、ディスプレイ220の上側両端部に設置された2つ受発光装置が、ディスプレイ220に平行して複数の赤外線を放射し、ディスプレイ220の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。タッチセンサ216は、物体によって遮断された2つの受発光装置が放射した赤外線の位置情報をタッチセンサコントローラ215に出力し、タッチセンサコントローラ215が、物体の接触位置である座標位置を特定する。
【0044】
電源スイッチ222は、手書き入力装置2の電源のON/OFFを切り換えるためのスイッチである。
【0045】
更に、手書き入力装置2は、バスライン210を備えている。バスライン210は、
図5に示されているCPU201等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0046】
なお、タッチセンサ216は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。タッチセンサ216は、ペン先のタッチの有無を検知するのに電子ペンが必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。なお、ペン2500は、細長いペン型である必要はない。
【0047】
<装置の機能について>
次に、
図6を用いて、手書き入力装置2が有する機能について説明する。
図6は手書き入力装置2が有する機能をブロック状に示す機能ブロック図の一例である。手書き入力装置2は、手書き入力部21、表示部22、手書き入力表示制御部23、候補表示タイマー制御部24、手書き入力保存部25、手書き認識制御部26、手書き認識辞書部27、文字列変換制御部28、文字列変換辞書部29、予測変換制御部30、予測変換辞書部31、操作コマンド認識制御部32、及び、操作コマンド定義部33を備えている。手書き入力装置2が有する各機能は、
図5に示されている各構成要素のいずれかが、SSD204からRAM203上に展開されたプログラムに従ったCPU201からの命令によって動作することで実現される機能又は手段である。
【0048】
手書き入力部21はタッチセンサ216等により実現されており、ユーザーによる手書き入力を受け付ける。手書き入力部21はユーザーのペン入力d1をペン操作データd2(ペンアップ、ペンダウン、又はペン座標データ)に変換し、手書き入力表示制御部23に送信する。ペン座標データは離散値として定期的に送信され、離散値間の座標は補完計算される。
【0049】
表示部22はディスプレイ220等により実現され、手書きされたオブジェクトや操作メニューを表示する。表示部22は手書き入力表示制御部23がビデオメモリーに書き込んだ描画データd3をディスプレイ220の特性に応じたデータに変換し、ディスプレイ220に送信する。
【0050】
手書き入力表示制御部23は手書き入力と表示に関する全体的な制御を行う。手書き入力表示制御部23は手書き入力部21からのペン操作データd2を処理し、表示部22に送信することで表示させる。ペン操作データd2の処理及びストロークの表示の詳細は後述の
図18~
図23にて説明する。
【0051】
候補表示タイマー制御部24は、選択可能候補の表示制御タイマーである。タイマーを開始又は停止して選択可能候補の表示を開始するタイミングと表示を消去するタイミングを生成する。候補表示タイマー制御部24は手書き入力表示制御部23からタイマー開始要求d4(タイマー停止要求の場合もある)を受信し、タイムアウトイベントd5を手書き入力表示制御部23に送信する。
【0052】
手書き入力保存部25はユーザーデータ(手書きオブジェクト/文字列オブジェクト)を保存しておくストレージの機能を有する。手書き入力保存部25は手書き入力表示制御部23からユーザーデータd6-1を受信し、手書き入力保存部25に保存し、手書き入力表示制御部23から取得要求d6-2を受け取って、手書き入力保存部25に保存されたユーザーデータd7を送信する。手書き入力保存部25は、確定オブジェクトの位置情報d36を操作コマンド認識制御部32に送信する。
【0053】
手書き認識制御部26はオンライン手書き認識を行う認識エンジンである。一般的なOCR(Optical Character Reader)とは異なり、ユーザーのペン操作と並行して文字(日本語だけでなく英語などの多国語)、数字、記号(%、$、&など)、図形(線、丸、三角など)等を認識していく。認識方法については様々なアルゴリズムが考案されているが、本実施形態では公知の技術を利用できるとして詳細を割愛する。
【0054】
手書き認識制御部26はペン操作データd8-1を手書き入力表示制御部23から受信し、手書き認識を実行して手書き認識文字列候補を保持する。また、手書き認識制御部26は手書き認識辞書部27を使用して手書き認識文字列候補d12から変換した言語文字列候補を保持しておく。別途、取得要求d8-2を手書き入力表示制御部23から受信した場合、手書き認識制御部26は保持している手書き認識文字列候補及び言語文字列候補d9を手書き入力表示制御部23に送信する。
【0055】
手書き認識辞書部27は手書き認識の言語変換用の辞書データである。手書き認識辞書部27は手書き認識文字列候補d12を手書き認識制御部26から受信し、言語的に確からしい言語文字列候補d13に変換して手書き認識制御部26に送信する。例えば、日本語の場合は、平仮名を漢字や片仮名へ変換する。
【0056】
文字列変換制御部28は変換文字列候補の文字列への変換を制御する。変換文字列とは手書き認識文字列又は言語文字列を含んで生成される可能性が高い文字列である。文字列変換制御部28は手書き認識文字列及び言語文字列候補d11を手書き認識制御部26から受信し、文字列変換辞書部29を使用して変換文字列候補に変換して保持しておく。別途、取得要求d14を手書き入力表示制御部23から受信した場合、保持している変換文字列候補d15を手書き入力表示制御部23に送信する。
【0057】
文字列変換辞書部29は文字列変換用の辞書データである。文字列変換辞書部29は文字列変換制御部28から手書き認識文字列及び言語文字列候補d17を受信し、変換文字列候補d18を文字列変換制御部28に送信する。
【0058】
予測変換制御部30は手書き認識文字列及び言語文字列候補d10を手書き認識制御部26から受信し、変換文字列候補d16を文字列変換制御部28から受信し、それぞれについて予測変換辞書部31を使用して予測文字列候補に変換しておく。予測文字列候補とは手書き認識文字列、言語文字列又は変換文字列を含んで生成される可能性が高い文字列である。別途、取得要求d19を手書き入力表示制御部23から受信した場合、予測文字列候補d20を手書き入力表示制御部23に送信する。
【0059】
予測変換辞書部31は予測変換用の辞書データである。予測変換辞書部31は手書き認識文字列及び言語文字列候補と変換文字列候補d21を予測変換制御部30から受信し、予測文字列候補d22を予測変換制御部30に送信する。
【0060】
操作コマンド認識制御部32は手書き認識文字列及び言語文字列候補d30を手書き認識制御部26から受信し、変換文字列候補d28を文字列変換制御部28から受信し、予測文字列候補d29を予測変換制御部30から受信する。そして、それぞれについて操作コマンド変換要求d26を操作コマンド定義部33に送信し、操作コマンド定義部33から操作コマンドの候補d27を受信する。操作コマンド認識制御部32は操作コマンドの候補d27を保持しておく。
【0061】
操作コマンド定義部33は操作コマンド変換要求d26が操作コマンド定義と部分一致している場合は操作コマンドの候補d27を操作コマンド認識制御部32に送信する。
【0062】
また、操作コマンド認識制御部32はペン操作データd24-1を手書き入力表示制御部23から受信し、過去に入力され確定した確定オブジェクトの位置情報取得要求d23を手書き入力保存部25に送信し、ペン操作データが指定している確定オブジェクトを選択オブジェクト(位置情報を含む)として保持しおく。操作コマンド認識制御部32はペン操作データd24-1の位置と所定の基準を満たす選択オブジェクトを特定する。別途、取得要求d24-2を手書き入力表示制御部23から受信した場合、保持している操作コマンドの候補と特定した選択オブジェクトd25を手書き入力表示制御部23に送信する。
【0063】
<ユーザー認証について>
本実施形態ではユーザー認証の結果を用いた制御が行われるため、手書き入力装置2がユーザー認証する機能を有することが好ましい。このため、
図7を用いてユーザー認証に関する機能について説明する。
【0064】
図7は、手書き入力装置2が有するユーザー認証に関する機能をブロック状に示す図である。なお、
図7ではユーザー認証部34(ユーザー認証手段)と関連する機能として手書き入力表示制御部23のみを示したが、ユーザーの認証結果は
図6に示した各機能が利用できてよい。
【0065】
認証情報取得部35はユーザーから認証情報d31を取得する。認証情報d31はICカードのカード番号、ユーザーIDとパスワード、又は、指紋などの生体情報などでよい。ユーザー認証部34は認証情報d32を認証情報取得部35から取得して、認証情報d33をユーザー情報DB36で検索する。検索に適合するユーザーが存在する場合はユーザー情報d34をユーザー情報DB36から取得する。ユーザー情報はユーザーの属性を表す情報であればよく、例えば、ユーザー名、パスワード、ユーザーのコンピュータ名、部署、権限、などでよい。
【0066】
ユーザー認証部34はユーザー情報d35を手書き入力表示制御部23に送信するので、手書き入力表示制御部23はユーザー情報を用いて操作コマンドを実行できるようになる。ユーザー情報を用いた操作コマンドに関しては
図12にて説明される。
【0067】
なお、認証機能は手書き入力装置2が有する他、外部の認証サーバ等が有していてもよい。この場合、手書き入力装置2は認証情報を認証サーバに送信し、認証結果とユーザー情報を取得する。
【0068】
<定義済み制御データについて>
次に、
図8を用いて、手書き入力装置2が各種の処理に使用する定義済み制御データについて説明する。
図8は定義済み制御データの一例を示す。
図8の例では制御項目ごとに制御データを示す。
【0069】
選択可能候補表示タイマー401は、選択可能候補を表示するまでの時間を定義する(第一の時間の一例)。手書き中に選択可能候補を表示しないためである。
図8では、ペンアップからTimerValue=500〔ms〕以内にペンダウンが発生しなければ選択可能候補が表示されることを意味している。選択可能候補表示タイマー401は候補表示タイマー制御部24が保持している。選択可能候補表示タイマー401は、後述する
図20のステップS4.8において選択可能候補表示タイマー開始時に使用される。
【0070】
選択可能候補消去タイマー402は表示した選択可能候補を消去するまでの時間を定義する(第二の時間の一例)。ユーザーが選択可能候補を選択しない場合に選択可能候補を消去するためである。
図8では、選択可能候補の表示からTimerValue=5000〔ms〕以内に選択可能候補が選択されなければ選択可能候補表示が消去されることを意味している。選択可能候補消去タイマー402は候補表示タイマー制御部24が保持している。選択可能候補消去タイマー402は
図21のステップS4.8.1.8において選択可能候補表示消去タイマー開始時に使用される。
【0071】
手書きオブジェクト近傍矩形領域403は手書きオブジェクトの近傍をみなす矩形領域を定義する。
図8の例では、手書きオブジェクト近傍矩形領域403は、手書きオブジェクトの矩形領域を水平方向に推定文字サイズの50%(Horizontal)拡大し、垂直方向に推定文字サイズの80%(Vertical)拡大した矩形領域となる。
図8の例では推定文字サイズの割合(%指定)となっているが、単位を"mm"等とすれば固定長にすることも可能である。手書きオブジェクト近傍矩形領域403は手書き入力保存部25が保持している。推定文字サイズ405は
図19のステップS4.2において、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況の判定で使用される。
【0072】
推定書字方向/文字サイズ判定条件404は、書字方向と文字サイズの測定方向を判定するための定数を定義する。
図8の例では、手書きオブジェクト矩形領域の最初にストロークが追加された時刻と最後にストロークが追加された時刻の差分がMinTime=1000〔ms〕以上で、手書きオブジェクト矩形領域の水平距離(幅)と垂直距離(高さ)の差分がMinDiff=10〔mm〕以上あり、水平距離が垂直距離より長い場合は、推定書字方向は「横書き」、推定文字サイズは垂直距離と判定することを意味する。水平距離が垂直距離より短い場合は、推定書字方向は「縦書き」、推定文字サイズは水平距離と判定することを意味する。以上の条件を満たさない場合は、推定書字方向は「横書き」(DefaultDir="Horizontal")、推定文字サイズは水平距離と垂直距離の長い方の距離と判定する。推定書字方向/文字サイズ判定条件404は手書き入力保存部25が保持している。推定書字方向/文字サイズ判定条件404は
図21のステップS4.8.1.5における推定書字方向取得と、ステップS7.8における文字列オブジェクトフォント取得で使用される。
【0073】
推定文字サイズ405は文字等のサイズを推定するためのデータを定義する。
図8の例では、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズが、推定文字サイズ405の小さめ文字405a(以下、最小フォントサイズ、と呼ぶ)と大きめ文字405c(以下、最大フォントサイズ)と比較されることを意味する。推定文字サイズが最小フォントサイズより小さい場合、推定文字サイズは最小フォントサイズと判定される。推定文字サイズが最大フォントサイズより大きい場合、推定文字サイズは最大フォントサイズと判定される。それ以外は、中くらい文字405bの文字サイズと判定される。推定文字サイズ405は手書き入力保存部25が保持している。推定文字サイズ405は、
図23のステップS7.8における文字列オブジェクトフォント取得で使用される。
【0074】
手書き入力保存部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の種類を増やせばよい。
【0075】
跨ぎ線判定条件406は複数のオブジェクトが選択されたか否かの判定に使用されるデータを定義する。手書きオブジェクトが単数のストロークであり、
図8の例では、手書きオブジェクトの長辺の長さが100〔mm〕以上(MinLenLongSide="100mm")、かつ、短辺の長さが50〔mm〕以下(MaxLenShortSide="50mm")、かつ、手書きオブジェクトとの長辺方向と短辺方向の重なり率が80〔%〕以上(MinOverLapRate="80%")のオブジェクトがあれば(所定の重なり率以上)、複数のオブジェクトが選択された(選択オブジェクト)と判定する。「以上」でなく重なり率が「より大きいか否か」を判定してもよい。跨ぎ線判定条件406は操作コマンド認識制御部32が保持している。跨ぎ線判定条件406は
図20のステップS4.7.6.2における選択オブジェクトの判定の跨ぎ線判定で使用される。
【0076】
囲み線判定条件407は、オブジェクトが囲み線か否かの判定に使用されるデータを定義する。
図8の例では、操作コマンド認識制御部32は手書きオブジェクトの長辺方向と短辺方向の重なり率が100%以上(MinOverLapRate="100%")の確定オブジェクトを選択オブジェクトと判定する(所定の重なり率以上)。「以上」でなく重なり率が「より大きいか否か」を判定してもよい。囲み線判定条件407は、操作コマンド認識制御部32が保持している。囲み線判定条件407は、
図20のステップS4.6.7.2における選択オブジェクトの判定の囲み線判定で使用される。
【0077】
なお、跨ぎ線判定条件406と囲み線判定条件407はどちらが優先して判定されてもよい。例えば、跨ぎ線判定条件406を緩やかにして(跨ぎ線を選択しやすくした場合)、囲み線判定条件407は厳密にした場合(囲み線のみを選択できるような値とした場合)、操作コマンド認識制御部32は囲み線判定条件407を優先して判定するのがよい。
【0078】
<辞書データの一例>
図9~
図11を用いて辞書データについて説明する。
図9は手書き認識辞書部27の辞書データの一例であり、
図10は文字列変換辞書部29の辞書データの一例であり、
図11は予測変換辞書部31の辞書データの一例である。なお、これらの辞書データはそれぞれ
図20のステップS4.7.2~S4.7.4で使用される。
【0079】
本実施形態では、
図9の手書き認識辞書部27の辞書データによる変換結果を言語文字列候補、
図10の文字列変換辞書部29の辞書データによる変換結果を変換文字列候補、
図11の予測変換辞書部31の辞書データによる変換結果を予測文字列候補と呼ぶ。各辞書データの「変換前」は辞書データを検索する文字列、「変換後」は検索する文字列に対応した変換後の文字列、「確率」はユーザーが選択する確率を表す。確率は過去にユーザーが各文字列を選択した結果から算出されている。したがって、ユーザーごとに確率が算出されてもよい。確率の計算方法として様々なアルゴリズムが考案されているが、適宜、適切な方法で計算するものとすればよく、詳細は割愛する。本実施形態では、推定書字方向から文字列候補を選択確率降順で表示することを特徴とする。
【0080】
図9の手書き認識辞書部27の辞書データでは、手書きされた「ぎ」は、確率0.55で「議」、確率0.4で「技」、手書きされた「ぎし」は、確率0.5で「技士」、確率0.45で「技師」に変換されることを示す。その他の「変換前」の文字列についても同様である。
図9では「変換前」の文字列が手書きされた平仮名となっているが、平仮名以外を「変換前」に登録してもよい。
【0081】
図10の文字列変換辞書部29の辞書データでは、文字列「議」は確率0.95で「議事録」に、文字列「技」は確率0.85で「技量試」に変換されることを示す。その他の「変換前」の文字列についても同様である。
【0082】
図11の予測変換辞書部31の辞書データでは、文字列「議事録」は確率0.65で「議事録の送付先」に、文字列「技量試」は確率0.75で「技量試を決裁」に変換されることを示す。
図11の例では変換前の文字列がすべて漢字になっているが、漢字以外を登録してもよい。
【0083】
なお、辞書データに言語依存はなく、変換前と変換後にどのような文字列が登録されていてもよい。
【0084】
<操作コマンド定義部が保持する操作コマンド定義データ>
次に、
図12、
図13を用いて操作コマンド認識制御部32が使用する操作コマンド定義データについて説明する。
図12は、操作コマンド定義部33が保持する操作コマンド定義データとシステム定義データの一例を示す。
【0085】
図12(a)は操作コマンド定義データの一例を示す。
図12(a)の操作コマンド定義データは、手書きオブジェクトにより選択された選択オブジェクトがない場合の操作コマンド定義データ例であり、手書き入力装置2を操作する全ての操作コマンドが対象となる。
図12(a)の操作コマンドは操作コマンド名(Name)、文字列候補と部分一致する文字列(String)、実行する操作コマンド文字列(Command)を有する。操作コマンド文字列内の「%~%」は変数であり、
図12(b)に示すようにシステム定義データと対応付けられている。つまり、「%~%」は
図12(b)に示すシステム定義データで置き換えられる。
【0086】
まず、操作コマンド定義データ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)ことを示す。
【0087】
操作コマンド定義データ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)ことを示す。
【0088】
操作コマンド定義データ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)ことを示す。つまり、ファイルがサーバに送信される。ユーザーがプリンターをサーバと通信させ、ファイルを指定するとプリンターが用紙にファイルの内容を印刷する。
【0089】
このように、文字列候補から操作コマンド定義データ701~703を特定できるため、ユーザーが手書きすることで操作コマンドを表示させることができる。また、ユーザーの認証が成功した場合にはユーザー情報で操作コマンド定義データの「%username%」「%password%」等が置き換えられるので、ユーザーに対応付けてファイルの入出力が可能になる。
【0090】
ユーザーの認証が行われない場合(認証が失敗したがユーザーが手書き入力装置2を使用できる場合は認証失敗の場合も含む)、手書き入力装置2は、予め設定されている手書き入力装置2の「%username%」「%password%」等に置き換える。したがって、ユーザー認証なしでも手書き入力装置2に対応付けてファイルの入出力が可能になる。
【0091】
続いて、手書きオブジェクトがある場合の操作コマンド定義データ、つまり編集系及び修飾系の操作コマンド定義データについて説明する。
図13は手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す。
図13の操作コマンド定義データは、操作コマンド名(Name)、操作コマンドの候補のグループ名(Group)、実行する操作コマンド文字列(Command)を有する。
【0092】
操作コマンド定義データ707は編集系(Group="Edit")の操作コマンドを定義しており、編集系の操作コマンド名「消去」「移動」「回転」「選択」の定義データ例である。つまり、選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。
【0093】
操作コマンド定義データ708は修飾系(Group="Decorate")の操作コマンドを定義しており、修飾系の操作コマンド名「太く」「細く」「大きく」「小さく」「下線」の定義データ例である。選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。この他、色の操作コマンドが表示されてもよい。
【0094】
したがって、ユーザーが選択オブジェクトを手書きオブジェクトで選択することで、操作コマンド定義データ707、708が特定されるため、ユーザーが手書きすることで操作コマンドを表示させることができる。
【0095】
<操作コマンドの候補の表示例>
図14は
図12(a)の操作コマンド定義データ(選択オブジェクトがない場合)に基づく操作コマンドの候補の表示例を示す。操作コマンドの候補の表示手順については
図18~
図23のシーケンス図にて詳細に説明する。
【0096】
図14は操作ガイド500と操作ガイド500が表示する選択可能候補530の一例である。ユーザーが手書きオブジェクト504を手書きすることで(選択可能候補表示タイマーのタイムアウトにより)、操作ガイド500が表示される。操作ガイド500は、操作ヘッダー520、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、予測文字列候補508、及び、手書きオブジェクト矩形領域表示503を有している。選択可能候補530は、操作コマンドの候補510、手書き認識文字列候補506(言語文字列候補571がある場合はこれも含む)、変換文字列候補507、及び、予測文字列候補508である。また、操作コマンドの候補510を除く選択可能候補530を文字列候補539という。
【0097】
操作ヘッダー520はボタン501、509、502、505を有する。ボタン501は予測変換のオンとオフの切り替え操作を受け付ける。
図14の例ではユーザーが「予測」と表示されているボタン501を押下すると手書き入力部21がそれを受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が「かな」というボタン501に表示を変更する。変更後は予測変換が行われず(変換文字列候補507、予測文字列候補508が表示されず)、操作コマンドの候補510、手書き認識文字列候補506、及び、言語文字列候補(カナ漢字変換された例えば議などの漢字)が表示される。
【0098】
ボタン502は候補表示のページ操作をする。
図14の例では候補表示ページは3ページあり、現在は1ページ目を表示している。ボタン505は操作ガイド500の消去を受け付ける。ユーザーがボタン505を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きオブジェクト以外の表示を消去する。ボタン509は一括表示消去を受け付ける。ユーザーがボタン509を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きオブジェクトを含め、
図14に示されているすべての表示を消去して、ユーザーが最初から手書きをしなおすことを可能にする。
【0099】
図14において手書きオブジェクト504はユーザーが手書きした「ぎ」という文字である。手書きオブジェクト504を囲む手書きオブジェクト矩形領域表示503が表示される。表示の手順は
図18~
図23のシーケンス図で説明する。
図14の例では点線枠で手書きオブジェクト矩形領域表示503が表示されている。
【0100】
手書き認識文字列候補506、変換文字列候補507、予測文字列候補508にはそれぞれの文字列候補が確率降順で並んでいる。手書き認識文字列候補506の「ぎ」は認識結果の候補である。この例では正しく「ぎ」を認識している。
【0101】
変換文字列候補507は言語文字列候補から変換された文字列候補である。この例の「技量試」とは「技術量産試作」の略名である。予測文字列候補508は手書き認識文字列、言語文字列候補又は変換文字列候補から変換された予測文字列候補である。この例では「技量試を決裁」と「議事録の送付先」が表示されている。
【0102】
操作コマンドの候補510は
図11(a)の操作コマンド定義データ701~703に基づいて選択された操作コマンドの候補である。
図14の例では行頭文字の「》」511が操作コマンドの候補であることを示している。
図14では手書きオブジェクト504である「ぎ」が選択する選択データがなく、「ぎ」の文字列候補である「議事録」が、
図11(a)の操作コマンド定義データ701,702と部分一致したため、操作コマンドの候補510として表示されている。
【0103】
ユーザーが「議事録テンプレートを読み込む」を選択すると、操作コマンド定義データ701で定義された操作コマンドが実行され、「議事録フォルダーに保存する」を選択すると、操作コマンド定義データ702で定義された操作コマンドが実行される。このように操作コマンドの候補は、変換された文字列を含む操作コマンド定義データが見つかる場合に表示されるため、常に表示されるとは限らない。
【0104】
図14に示すように、文字列候補と操作コマンドの候補が同時に(共に)表示されるため、ユーザーは自分が入力しようとした文字列候補と操作コマンドのどちらも任意に選択できる。
【0105】
<選択オブジェクトの指定例>
本実施形態の手書き入力装置2は確定オブジェクトをユーザーが手書きにより選択することで選択オブジェクトを指定できる。選択オブジェクトは編集又は修飾の対象となる。
【0106】
図15は、選択オブジェクトの指定例を説明する図の一例である。
図15では、手書きオブジェクト11は黒色実線、手書きオブジェクト矩形領域12を灰色網掛け、確定オブジェクト13を黒線、選択オブジェクト矩形領域14を点線でそれぞれ表示している。なお、それぞれを区別する場合に小文字のアルファベットを符号に付加する。また、確定オブジェクトを選択オブジェクトと判定するための判定条件(所定の関係にあるか否か)として、
図8に示した定義済み制御データの跨ぎ線判定条件406又は囲み線判定条件407を使用している。
【0107】
図15(a)は横書きの2つの確定オブジェクト13a、13bをユーザーが跨ぎ線(手書きオブジェクト11a)で指定した例である。この例では、手書きオブジェクト矩形領域12aの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、確定オブジェクト13a、13bとの重なり率が跨ぎ線判定条件406の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト13a、13bが選択オブジェクトとして指定されている。
【0108】
図15(b)は横書きの確定オブジェクト13cを囲み線(手書きオブジェクト11b)で指定した例である。この例では、確定オブジェクト13cと手書きオブジェクト矩形領域12cの重なり率が囲み線判定条件407の条件を満たしている「議事録」という確定オブジェクト13cだけが選択オブジェクトとして指定されている。
【0109】
図15(c)は縦書きの複数の確定オブジェクト13d、13eを跨ぎ線(手書きオブジェクト11c)で指定した例である。この例では、
図15(a)と同様に、手書きオブジェクト矩形領域12dの短辺の長さH1と長辺の長さW1が跨ぎ線判定条件406の条件を満たしており、「議事録」と「ぎじ」という2つの確定オブジェクト13d、13eそれぞれとの重なり率が跨ぎ線判定条件406の条件を満たしているため、「議事録」と「ぎじ」の両方の確定オブジェクト13d、13eが選択オブジェクトとして指定されている。
【0110】
図15(d)は縦書きの確定オブジェクト13fを囲み線(手書きオブジェクト11d)で指定した例である。この例では、
図15(b)と同様に、「議事録」という確定オブジェクト13fだけが選択オブジェクトとして指定されている。
【0111】
<操作コマンドの候補の表示例>
図16は、
図13に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。
図16(a)は編集系の操作コマンドの候補であり、
図16(b)は修飾系の操作コマンドの候補である。また、
図16(a)は
図15(a)の手書きオブジェクト11aで選択オブジェクトが指定された例を示す。
【0112】
図16(a)(b)に示すように、行頭文字「》」511に続いて表示された操作コマンドの候補がメインメニュー550である。メインメニュー550には最後に実行された操作コマンド名又は操作コマンド定義データで先頭の操作コマンド名が表示される。1行目の行頭文字「》」511aは編集系の操作コマンドの候補であり、2行目の行頭文字「》」511bは修飾系の操作コマンドの候補である。
【0113】
行末の「〉」512はサブメニューがあることを示す(サブメニューボタンの一例)。1行目の「〉」512aは編集系の操作コマンドの候補のサブメニュー(最後に選択された)を表示させ、2行目の「〉」512bは修飾系の操作コマンドの候補の残りのサブメニューを表示させる。ユーザーが「〉」512を押下すると、その右側にサブメニュー560が表示される。サブメニュー560には操作コマンド定義データで定義されている全ての操作コマンドが表示される。
図16(a)の表示例ではメインメニューが表示された時から1行目の「〉」512aに対応したサブメニュー560も表示されている。1行目の「〉」512aの押下により表示されてもよい。
【0114】
ユーザーがペンでいずれかの操作コマンド名を押下すると、操作コマンド名に対応付けられた操作コマンド定義データのCommandを手書き入力表示制御部23が選択オブジェクトに対して実行する。すなわち「消去」521が選択されると「Delete」、「移動」522が選択されると「Move」、「回転」523が選択されると「Rotate」、「選択」524が選択されると「Select」をそれぞれ実行する。
【0115】
例えば、ユーザーが「消去」521をペンで押下すると「議事録」と「ぎじ」を消去でき、「移動」522,「回転」523、「選択」524を押すとバウンディングボックス(選択オブジェクトの外接矩形)が表示され、「移動」522と「回転」523ではペンのドラッグ動作で移動又は回転でき、「選択」524ではその他のバウンディングボックスの操作を実行できる。
【0116】
操作コマンドの候補以外の文字列候補である「一」541、「一、」542、「~」543、「→」544、「⇒」545は跨ぎ線(手書きオブジェクト11a)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【0117】
図16(b)では2行目の「〉」512bの押下により、
図16(b)のサブメニューが表示される。
図16(b)の表示例も
図16(a)と同様にメインメニュー550とサブメニュー560が表示されている。
図13の操作コマンド定義データに基づいて、「太く」531が選択されると「Thick」、「細く」532が選択されると「Thin」、「大きく」533が選択されると「Large」、「小さく」534が選択されると「Small」、下線535が選択されると「Underline」を手書き入力表示制御部23が選択オブジェクトに対してそれぞれ実行する。
【0118】
なお、「太く」531が選択された場合にどのくらい太くするか、「細く」532が選択された場合にどのくらい細くするか、「大きく」533が選択された場合にどのくらい大きくするか、「小さく」534が選択された場合にどのくらい小さくするか、下線535が選択された場合の線種等は、固定値が別途定義されている。あるいは、
図16(b)のサブメニューが選択されると別途、選択メニューが開かれユーザーが調整できるようになっているとなおよい。
【0119】
ユーザーが「太く」531をペンで押下すると「議事録」と「ぎじ」という確定オブジェクト13a、13bを構成する線を手書き入力表示制御部23が太くする。「細く」532をペンで押下すると、「議事録」と「ぎじ」を構成する線を手書き入力表示制御部23が細くでき、「大きく」533をペンで押下すると手書き入力表示制御部23が大きくでき、「小さく」534をペンで押下すると手書き入力表示制御部23が小さくでき、「下線」535をペンで押下すると下線を手書き入力表示制御部23が追加できる。
【0120】
図17は、
図13に示した手書きオブジェクトがある場合の操作コマンド定義データに基づく操作コマンドの候補の表示例を示す。
図16(a)(b)との相違は、
図17(a)(b)は
図15(b)の手書きオブジェクト11b(囲み線)で選択オブジェクトが指定された例を示す。
図16と
図17を比較すると分かるように手書きオブジェクトが線か囲み線かによって表示される操作コマンドの候補に違いはない。手書き入力表示制御部23は選択オブジェクトが指定されると操作コマンドの候補を表示部22に表示させるためである。しかし、手書きオブジェクトを認識して手書きオブジェクトに応じて表示する操作コマンドの候補を変更してもよい。この場合、認識された手書きオブジェクト(一や○など)に
図13のような操作コマンド定義データを対応付けておく。
【0121】
図17において操作コマンドの候補以外の文字列候補である「○」551、「∞」552、「0」553、「00」554、「ロ」555は囲み線(手書きオブジェクト11b)の認識結果であり、ユーザーが操作コマンドでなく文字列を入力するつもりであった場合は文字列候補を選択できる。
【0122】
<動作手順>
以上の構成と
図18~
図23を用いて、手書き入力装置2の動作について説明する。
図18~
図23は手書き入力装置2が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。
図18の処理は、手書き入力装置2が起動すると(アプリケーションが起動すると)スタートする。なお、
図18~
図23ではスペースの都合上、符号で
図6の機能を示した。
【0123】
S1:まず、手書き入力表示制御部23が手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域(手書きオブジェクトを保存するメモリ領域)を確保する。ユーザーがペンを手書き入力部21に接触させてから手書きオブジェクト領域を確保してもよい。
【0124】
S2:次にユーザーが手書き入力部21にペンを接触させる。手書き入力部21はペンダウンを検出して手書き入力表示制御部23に送信する。
【0125】
S2.1:手書き入力表示制御部23は手書き入力保存部25にストローク開始を送信し、手書き入力保存部25はストローク領域を確保する。
【0126】
S3:ユーザーがペンを手書き入力部21に接触させたまま移動させると、手書き入力部21はペン座標を手書き入力表示制御部23に送信する。
【0127】
S3.1:手書き入力表示制御部23はペン座標補完表示データ(離散的なペン座標を補間するデータ)を表示部22に送信する。表示部22はペン座標補完表示データを用いてペン座標を補間して線を表示する。
【0128】
S3.2:手書き入力表示制御部23はペン座標とその受信時刻を手書き入力保存部25に送信する。手書き入力保存部25はペン座標をストロークに追加する。ユーザーがペンを動かしている間は、手書き入力部21は定期的に手書き入力表示制御部23へのペン座標の送信を繰り返すため、ステップS3~S3.2の処理がペンアップされるまで繰り返される。
【0129】
S4:ユーザーが手書き入力部21からペンを離すと、手書き入力部21はペンアップを手書き入力表示制御部23に送信する。
【0130】
S4.1:手書き入力表示制御部23は手書き入力保存部25にストローク終了を送信し、手書き入力保存部25はストロークのペン座標を確定させる。ストロークのペン座標の確定により以降はストロークにペン座標を追加できなくなる。
【0131】
S4.2:次に、手書き入力表示制御部23は手書きオブジェクト近傍矩形領域403に基づいて、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況取得を手書き入力保存部25に送信する。手書き入力保存部25は重なり状況を計算して重なり状況を手書き入力表示制御部23に送信する。
【0132】
続く、ステップS4.3~S4.5は、手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合に実行される。
【0133】
S4.3:手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合、1つの手書きオブジェクトが確定するので、手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
【0134】
S4.3.1~4.3.3:手書き認識制御部26は保持データクリアをそれぞれ文字列変換制御部28、予測変換制御部30、操作コマンド認識制御部32に送信する。手書き認識制御部26、文字列変換制御部28、予測変換制御部30及び操作コマンド認識制御部32がこれまでに保持している文字列候補と操作コマンドの候補に係るデータをクリアする。なお、クリアの時点では最後に手書きされたストロークは手書きオブジェクトに追加されていない。
【0135】
S4.4:手書き入力表示制御部23は手書きオブジェクト終了を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクトを確定させる。手書きオブジェクトの確定とは1つの手書きオブジェクトが完成したこと(これ以上、ストロークが追加されないこと)をいう。
【0136】
S4.5:手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。次の手書きオブジェクトの手書きの開始(ペンダウン)に備えて、手書き入力保存部25は新しい手書きオブジェクト領域を確保する。
【0137】
S4.6:次に手書き入力表示制御部23はステップS4.1で終了したストロークに関してストローク追加を手書き入力保存部25に送信する。ステップS4.3~S4.5が実行された場合、追加されるストロークは手書きオブジェクトの最初のストロークであり、手書き入力保存部25は開始中の手書きオブジェクトにストロークデータを追加する。ステップS4.3~S4.5が実行されてない場合、追加されるストロークはすでに手書き中の手書きオブジェクトに追加される。
【0138】
S4.7:続いて手書き入力表示制御部23はストローク追加を手書き認識制御部26に送信する。手書き認識制御部26は文字列候補が格納されるストロークデータ保持領域にストロークデータを追加する。
【0139】
S4.7.1:手書き認識制御部26はこのストロークデータ保持領域に対して手書き認識を実行する。
【0140】
S4.7.2:手書き認識制御部26はこの実行結果である手書き認識文字列候補を手書き認識辞書部27に送信する。手書き認識辞書部27は言語的に確からしい言語文字列候補を手書き認識制御部26に送信する。
【0141】
S4.7.3:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を文字列変換制御部28に送信する。
【0142】
S4.7.3.1:文字列変換制御部28は手書き認識文字列候補及び言語文字列候補を文字列変換辞書部29に送信する。文字列変換辞書部29は変換文字列候補を文字列変換制御部28に送信する。
【0143】
S4.7.3.2:文字列変換制御部28は受信した変換文字列候補を予測変換制御部30に送信する。
【0144】
S4.7.3.2.1:予測変換制御部30は受信した変換文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
【0145】
S4.7.3.2.2: 予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
【0146】
S4.7.3.2.2.1:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0147】
以降ステップS4.7.3.3~S4.7.5.1の操作コマンドの候補の送信まで同様に処理を行う。
S4.7.3.3:文字列変換制御部28は受信した変換文字列候補を操作コマンド認識制御部32に送信する。
【0148】
S4.7.3.3.1:操作コマンド認識制御部32は受信した変換文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は変換文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0149】
S4.7.4:手書き認識制御部26は手書き認識文字列候補及び言語文字列候補を予測変換制御部30に送信する。
【0150】
S4.7.4.1:予測変換制御部30は手書き認識文字列候補及び受信した言語文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
【0151】
S4.7.4.2: 予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
【0152】
S4.7.4.2.1:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0153】
S4.7.5:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド認識制御部32に送信する。
【0154】
S4.7.5.1:操作コマンド認識制御部32は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は言語文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
【0155】
S4.7.6: 次に手書き認識制御部26はストローク追加を操作コマンド認識制御部32に送信する。
【0156】
S4.7.6.1:操作コマンド認識制御部32は確定オブジェクトの位置情報取得を手書き入力保存部25に送信する。手書き入力保存部25は確定オブジェクトの位置情報を操作コマンド認識制御部32に送信する。
【0157】
S4.7.6.2: 操作コマンド認識制御部32は選択オブジェクトの判定のため、ステップS4.7.6のストローク追加で手書き認識制御部26から受信したストロークの位置情報と、手書き入力保存部25から受信した確定オブジェクトの位置情報が所定の関係にあるか否かを跨ぎ線判定条件406及び囲み線判定条件407に基づいて判定し、選択されていると判定できる確定オブジェクトを選択オブジェクトとして保存しておく。また、この場合、選択オブジェクトが特定されるので入出力系の操作コマンドの候補を操作コマンド定義部33から取得する。
【0158】
また、手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はそれぞれ手書き認識文字列候補、言語文字列候補、変換文字列候補、予測文字列候補、操作コマンドの候補、及び、選択オブジェクトに係るデータを後段のステップS4.8.1.2~4.8.1.4で取得できるよう保持しておく。
【0159】
S4.8:手書き入力表示制御部23はステップS4.7でストローク追加を手書き認識制御部26に送信した直後、選択可能候補表示タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
【0160】
続く、ステップS5~S5.2は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生した場合に実行される。
【0161】
S5:タイマーがタイムアウトする前に、ユーザーが手書き入力部21にペンを接触させた場合、手書き入力部21はペンダウン(ステップS2と同じイベント)を手書き入力表示制御部23に送信する。
【0162】
S5.1: 手書き入力表示制御部23はストローク開始(ステップS2.1と同じ)を手書き入力保存部25に送信する。この後のシーケンスはステップS2.1以降と同じである。
【0163】
S5.2:更に手書き入力表示制御部23は選択可能候補表示タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はタイマーを停止させる。ペンダウンが検出されたのでタイマーが不要になるからである。
【0164】
ステップS4.8.1~S7.14は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生しない場合に実行される。したがって、
図14に示した文字列候補や操作コマンドの候補が表示される。
【0165】
4.8.1:選択可能候補表示タイマー開始中にユーザーが手書き入力部21にペンを接触させなかった場合、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
【0166】
S4.8.1.1:手書き入力表示制御部23は手書き認識/言語文字列候補取得を手書き認識制御部26に送信する。手書き認識制御部26は現在保持している手書き認識/言語文字列候補を手書き入力表示制御部23に送信する。
【0167】
S4.8.1.2:手書き入力表示制御部23は変換文字列候補取得を文字列変換制御部28に送信する。文字列変換制御部28は現在保持している変換文字列候補を手書き入力表示制御部23に送信する。
【0168】
S4.8.1.3:手書き入力表示制御部23は予測文字列候補取得を予測変換制御部30に送信する。予測変換制御部30は現在保持している予測文字列候補を手書き入力表示制御部23に送信する。
【0169】
S4.8.1.4:手書き入力表示制御部23は操作コマンドの候補取得を操作コマンド認識制御部32に送信する。操作コマンド認識制御部32は現在保持している操作コマンドの候補と選択オブジェクトを手書き入力表示制御部23に送信する。
【0170】
S4.8.1.5: 更に、手書き入力表示制御部23は推定書字方向取得を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト矩形領域のストローク追加時間と水平距離と垂直距離から判定して、推定書字方向を手書き入力表示制御部23に送信する。
【0171】
S4.8.1.6:手書き入力表示制御部23はこれらの手書き認識文字列候補(
図14では「ぎ」)、言語文字列候補(
図14では表示がないが例えば「議」)、変換文字列候補(
図14では「議事録」「技量試」)、予測文字列候補(
図14では「技量試を決済」「議事録の送付先」)、操作コマンドの候補(
図14では「議事録テンプレートを読み込む」「議事録フォルダーに保存する)、各選択確率、及び、推定書字方向から
図14のような選択可能候補表示データを作成し、文字列候補と操作コマンドの候補からなる選択可能候補表示データを表示部22に送信することで表示させる。
【0172】
S4.8.1.7:また、手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ(矩形枠)(
図14では手書きオブジェクト矩形領域表示503)を表示部22に送信する。
【0173】
S4.8.1.8: 手書き入力表示制御部23は選択可能候補表示データの表示から一定時間後に消去するため選択可能候補表示消去タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
【0174】
ステップS6~S6.3は、選択可能候補消去タイマー開始中に、ユーザーが表示部22に表示された選択可能候補表示を消去したか、手書きオブジェクトの変化が発生した場合(即ち手書きオブジェクトのストロークの追加、削除、移動、変形又は分割された場合)、又は、タイムアウトまでに候補が選択されなかった場合に実行される。
【0175】
更に、ステップS6~S6.1は、候補表示が消去されるか、又は、手書きオブジェクトの変化が発生した場合に実行される。
【0176】
S6:手書き入力部21は選択可能候補表示消去又は手書きオブジェクトの変化の発生を手書き入力表示制御部23に送信する。
【0177】
S6.1:手書き入力表示制御部23は選択可能候補消去タイマー停止を送信する。候補表示タイマー制御部24はそのタイマーを停止する。一定時間内に手書きオブジェクトに対し操作があったためタイマーが不要になるからである。
【0178】
S6.2:手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで、表示を消去させる。
【0179】
S6.3:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで、表示を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
【0180】
4.8.1.8.1:一方、選択可能候補消去タイマー開始中に、選択可能候補表示消去又は手書きオブジェクトの変化が発生しなかった場合(ユーザーがペン操作をしなかった場合は)、候補表示タイマー制御部24は4.8.1.8.1:タイムアウトを手書き入力表示制御部23に送信する。
【0181】
選択可能候補表示消去タイマーのタイムアウトの後も同様に、手書き入力表示制御部23はステップS6.2とS6.3を実行する。一定時間の経過で選択可能候補表示データ、手書きオブジェクトと選択オブジェクトの矩形領域表示データを消去してよいためである。
【0182】
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS7~S7.14が実行される。
【0183】
S7:選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部21は文字列候補又は操作コマンドの候補選択を手書き入力表示制御部23に送信する。
【0184】
S7.1: 手書き入力表示制御部23は選択可能候補表示消去タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを停止する。
【0185】
S7.2: 次に手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
【0186】
S7.2.1: 手書き認識制御部26は保持データクリアを文字列変換制御部28に送信する。
【0187】
S7.2.2:手書き認識制御部26は保持データクリアを予測変換制御部30に送信する。
【0188】
S7.2.3:手書き認識制御部26は保持データクリアを操作コマンド認識制御部32に送信する。
【0189】
手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はこれまで保持していた文字列候補及び操作コマンドの候補に係るデータをクリアする。
【0190】
S7.3: 次に手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで表示を消去させる。
【0191】
S7.4:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで表示を消去させる。
【0192】
S7.5:手書き入力表示制御部23は手書きオブジェクト表示データ消去及びステップS3.1で送信したペン座標補完表示データ消去を表示部22に送信することで表示を消去させる。文字列候補又は操作コマンドの候補が選択されたため、手書きオブジェクト等が不要になるためである。
【0193】
S7.6:手書き入力表示制御部23は手書きオブジェクト削除を手書き入力保存部25に送信する。
【0194】
文字列候補が選択された場合、ステップS7.7~S7.9が実行される。
【0195】
S7.7: 文字列候補が選択された場合、手書き入力表示制御部23は文字列オブジェクト追加を手書き入力保存部25に送信する。
【0196】
S7.8:更に手書き入力表示制御部23は文字列オブジェクトフォント取得を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクトの推定文字サイズから定義済みフォントを選択して手書き入力表示制御部23に送信する。
【0197】
S7.9: 次に手書き入力表示制御部23は手書き入力保存部25から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを表示部22に送信させることで、表示させる。
【0198】
操作コマンドの候補が選択された場合、ステップS7.10~S7.13が実行される。更に、選択オブジェクトがある場合はステップS7.10~S7.12が実行される。
【0199】
S7.10:選択オブジェクトへの操作コマンドの候補が選択された場合(選択オブジェクトが存在する場合)は、手書き入力表示制御部23は選択オブジェクト表示データ消去を表示部22に送信することで表示を消去させる。いったん、元の選択オブジェクトを消去するためである。
【0200】
S7.11:次に、手書き入力表示制御部23は選択オブジェクトへの操作コマンド実行を手書き入力保存部25に送信する。手書き入力保存部25は新しい選択オブジェクトの表示データ(編集又は修飾後の表示データ)を手書き入力表示制御部23に送信する。
【0201】
S7.12: 次に手書き入力表示制御部23は選択オブジェクト表示データを表示部22に送信することで、操作コマンド実行後の選択オブジェクトを再表示させる。
【0202】
選択オブジェクトがない場合(入出力系の操作コマンドが選択された場合)はステップS7.13が実行される。
【0203】
S7.13:入出力系の操作コマンドが選択された場合、手書き入力表示制御部23はユーザーが選択した操作コマンドに対応する操作コマンド定義データの操作コマンド文字列(Command)を実行する。なお、ユーザー認証部34がユーザーの認証に成功した場合、手書き入力表示制御部23は認証に成功したユーザーに関する情報を操作コマンドの%~%に設定して実行する。
【0204】
S7.14:次の手書きオブジェクトのために手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域を確保する。これ以降、ステップS2~S7.14の処理が繰り返される。
【0205】
<まとめ>
以上説明したように、本実施形態の手書き入力装置2は、ユーザーが手書きオブジェクトを手書きしたり確定オブジェクトを囲み線で囲んだりすることで、任意の操作コマンドの候補を表示させることができる。したがって、手書きした状態から任意の機能(編集機能、入出力機能、又はペン機能等)を呼び出すことができる。これにより、メニューボタンを押下して所望の機能を呼び出すステップバイステップの操作を不要にでき、ユーザーが手書きしている状態から任意の機能を呼び出すまでの操作手順を低減できる。
本実施例では、ネットワーク上の情報処理システムが手書き認識等の処理を行って、処理の結果を手書き入力装置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(ペンアップ、ペンダウン、又はペン座標データ)に変換し、表示制御部41に送信する。
表示制御部41は、手書き入力装置2の表示に関する制御を行う。まず、表示制御部41は、離散値であるペン座標データの離散値間の座標を補完計算してペンダウンからペンアップまでのペン座標データを1本のストロークdbにして表示部22に送信する。
表示部22の機能は実施例1と同様でよい。表示部22はストロークdbや表示データdeを表示する。表示部22は表示制御部41がビデオメモリーに書き込んだストロークdbや表示データdeをディスプレイ220の特性に応じたデータに変換し、ディスプレイ220に送信する。
通信部43は、ペン操作データdcを手書き入力装置2から受信し、手書き入力表示制御部23にペン操作データdfを送信し、手書き入力表示制御部23から表示データddを受信して、手書き入力装置2に送信する。
S1:通信が確立すると手書き入力装置2のメモリ領域を確保するため、手書き入力表示制御部23が手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域(手書きオブジェクトを保存するメモリ領域)を確保する。ユーザーがペンを手書き入力部21に接触させてから手書きオブジェクト領域を確保してもよい。
S3.1:表示制御部41はペン座標補完表示データ(離散的なペン座標を補間するデータ)を表示部22に送信する。表示部22はペン座標補完表示データを用いてペン座標を補間して線を表示する。ステップS3.2の処理は実施例1と同様になる。
S5a:タイマーがタイムアウトする前に、ユーザーが手書き入力部21にペンを接触させた場合、手書き入力部21はペンダウン(ステップS2と同じイベント)を表示制御部41に送信する。ステップS5b~S5dの処理はステップS2b~S2dと同様でよい。また、ステップS5.1~S4.8.1.5の処理は実施例1と同様になる。
S4.8.1.7d:表示制御部41は矩形領域表示データを受信したので、表示部22に送信することで表示させる。ステップS4.8.1.8の処理は実施例1と同様になる。
S6a:ユーザーが選択可能候補を消去したり、手書きオブジェクトに追加で手書きしたりすると、手書き入力部21は選択可能候補表示消去又は手書きオブジェクトの変化の発生を表示制御部41に送信する。
S6d:情報処理システム10の通信部43は選択可能候補表示消去又は手書きオブジェクトの変化の発生を受信して、手書き入力表示制御部23に送信する。ステップS6.1、S4.8.1.8.1の処理は実施例1と同様になる。
S6.3d:表示制御部41は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を受信したので、表示部22に送信することで手書きオブジェクトと選択オブジェクトの矩形領域を消去させる。したがって、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
S7a:選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部21は文字列候補又は操作コマンドの候補選択を表示制御部41に送信する。
S7d:情報処理システム10の通信部43は文字列候補又は操作コマンドの候補選択を受信して、手書き入力表示制御部23に送信する。ステップS7.1~S7.2.3の処理は実施例1と同様になる。
S7.5d:表示制御部41は手書きオブジェクト表示データ消去を受信したので、表示部22に手書きオブジェクトとペン座標補完表示データを消去させる。ステップS7.6の処理は実施例1と同様でよい。
S7.9a: 次に手書き入力表示制御部23は手書き入力保存部25から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを通信部43に送信する。
操作コマンドの候補が選択された場合、ステップS7.10~S7.13が実行される。更に、選択オブジェクトがある場合はステップS7.10~S7.12が実行される。
S7.10a:選択オブジェクトへの操作コマンドの候補が選択された場合(選択オブジェクトが存在する場合)は、手書き入力表示制御部23は選択オブジェクト表示データ消去を通信部43に送信する。いったん、元の選択オブジェクトを消去するためである。
S7.11:次に、手書き入力表示制御部23は選択オブジェクトへの操作コマンド実行を手書き入力保存部25に送信する。手書き入力保存部25は新しい選択オブジェクトの表示データ(編集又は修飾後の表示データ)を手書き入力表示制御部23に送信する。
S7.12d:表示制御部41は選択オブジェクト表示データを受信したので、表示部22に操作コマンド実行後の選択オブジェクトを再表示させる。ステップS7.13、S7.14の処理は実施例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)や従来の回路モジュール等のデバイスを含むものとする。