JP2022023456A - 表示装置、音響デバイス制御方法、プログラム - Google Patents

表示装置、音響デバイス制御方法、プログラム Download PDF

Info

Publication number
JP2022023456A
JP2022023456A JP2020126407A JP2020126407A JP2022023456A JP 2022023456 A JP2022023456 A JP 2022023456A JP 2020126407 A JP2020126407 A JP 2020126407A JP 2020126407 A JP2020126407 A JP 2020126407A JP 2022023456 A JP2022023456 A JP 2022023456A
Authority
JP
Japan
Prior art keywords
pen
data
display
user
display device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020126407A
Other languages
English (en)
Inventor
未来 袴谷
Miku Hakamatani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2020126407A priority Critical patent/JP2022023456A/ja
Publication of JP2022023456A publication Critical patent/JP2022023456A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

【課題】表示装置の周囲のユーザーの存在により音響デバイスが処理する音声の品質が低下することを抑制できる表示装置を提供すること。【解決手段】ペン2500により入力された手書きデータを表示する表示装置2であって、前記表示装置の少なくとも一辺以上に配置された音響デバイス219,221と、入力手段によるディスプレーへの手書きを受け付け、前記入力手段から該入力手段の識別情報を受信する受付手段21と、前記入力手段から受信した前記入力手段の識別情報に対応づけられているユーザーの位置情報に基づいて、前記入力手段を用いて入力するユーザーが存在する前記表示装置の辺を特定し、前記ユーザーが存在する前記辺に配置されている前記音響デバイスを制御する音響デバイス制御手段71と、を有することを特徴とする。【選択図】図1

Description

本発明は、表示装置、音響デバイス制御方法、及び、プログラムに関する。
マイク又はスピーカーを搭載した電子黒板等の表示装置が知られている。各表示装置はネットワークを介して接続されており、遠隔地の表示装置と画面を共有する。また、各表示装置は音声を送受信するので、各拠点のユーザーは会議ができる。軽量な表示装置はユーザーが簡単に設置向きを変えることもできる。表示装置はチルトセンサーを有しており、ディスプレーの設置向きに応じて表示画面の向きも切り替えることができる。したがって、縦向き、横向き、又は、平置きでも使用可能にする。
マイク又はスピーカーの音を改善する技術が考案されている(例えば、特許文献1参照。)。特許文献1には、複数のマイクを使用したマイクアレイにより音の位相差やインパルス応答から障害物を検出し、障害物が置かれている場所を特定したうえで話者の相対位置をあらかじめROMに記憶することで障害物の検出を行い、検出された障害物の位置に応じてスピーカーの出力を制御することで音の改善を行う方法が開示されている。
しかしながら、従来の技術であっても、音響デバイスが処理する音声の品質が表示装置の周囲のユーザーの存在自身により低下する場合があるという問題については解決されていない。ここで、近年、表示装置のディスプレーも薄型化及びフレームベゼルの細型化が進み、マイク又はスピーカー等の音響デバイスをディスプレーの正面向きに設置することが困難になっている。このため、ディスプレーの側面にマイク又はスピーカーを実装せざるを得ない場合がある。
しかし、ディスプレーの側面にマイク又はスピーカーが配置された場合、マイク又はスピーカーの開口部の近くにユーザーが存在することが少なくなく、人の手や体等でマイク又はスピーカーが塞がれてしまう場合があった。
これらの不都合は、ブレーンストーミング等で表示装置が平置きで使用された場合にも顕著になる。すなわち、書き手が複数人いたり、人が動いたりするため、表示装置に対する周囲の障害物の位置の変更が断続的に発生する。
本発明は、上記課題に鑑み、表示装置の周囲のユーザーの存在により音響デバイスが処理する音声の品質が低下することを抑制できる表示装置を提供することを目的とする。
上記課題に鑑み、本発明は、入力手段により入力された手書きデータを表示する表示装置であって、前記表示装置の少なくとも一辺以上に配置された音響デバイスと、入力手段によるディスプレーへの手書きを受け付け、前記入力手段から該入力手段の識別情報を受信する受付手段と、前記入力手段から受信した前記入力手段の識別情報に対応づけられているユーザーの位置情報に基づいて、前記入力手段を用いて入力するユーザーが存在する前記表示装置の辺を特定し、前記ユーザーが存在する前記辺に配置されている前記音響デバイスを制御する音響デバイス制御手段と、を有することを特徴とする。
表示装置の周囲のユーザーの存在により音響デバイスが処理する音声の品質が低下することを抑制できる表示装置を提供することができる。
表示装置がマイク又はスピーカーを制御する処理の概略を説明する図である。 表示装置の全体構成図の一例を示す図である。 平置きされた表示装置の一例である。 ペンの斜視図の一例を示す図である。 表示装置のハードウェア構成図の一例である。 表示装置とペンが有する機能について説明する図である。 音響デバイス制御部の機能の一例を示す図である。 表示装置の辺と角度(Angle)の対応例を示す図である。 定義済み制御データの一例を示す図である。 手書き認識辞書部の辞書データの一例を示す図である。 文字列変換辞書部の辞書データの一例を示す図である。 予測変換辞書部の辞書データの一例を示す図である。 操作コマンド定義部が保持する操作コマンド定義データとシステム定義データの一例を示す図である。 手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す図である。 操作コマンド定義部が保持するユーザー定義データの一例を示す図である。 手書き入力保存部が保存している手書き入力保存データの一例を示す図である。 ペンID制御データ保存部が保存するペンID制御データを説明する図である。 カラー定義データの一例を示す図である。 図18のカラー定義データを使用して、白黒強調表示されたデータとカラー表示方法で表示されたデータの一例を示す図である。 ペン色選択ボタン定義データの一例を示す図である。 ディスプレーに表示されるペン色選択ボタンの一例を示す図である。 操作ガイドと操作ガイドが表示する選択可能候補の一例を示す図である。 90度の角度情報の入力方法を説明する図である。 平置きされた表示装置の上面図の一例である。 下側のユーザー用の操作メニューの操作ボタン定義データの一例を示す図である(その1)。 下側のユーザー用の操作メニューの操作ボタン定義データの一例を示す図である(その2)。 上側のユーザー用の操作メニューの操作ボタン定義データの一例を示す図である(その1)。 上側のユーザー用の操作メニューの操作ボタン定義データの一例を示す図である(その2)。 表示装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その1)。 表示装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その2)。 表示装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その3)。 表示装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その4)。 表示装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その5)。 表示装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その6)。 表示装置が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である(その7)。 ペン操作パネルのボタンが押下された場合の処理を説明するフローチャート図の一例である。 ペンIDに対応づけられているAngleに基づいて音響デバイス制御部が音響デバイスを制御する手順を示すフローチャート図の一例である。 ペンホルダーの配置例を説明する図である。 収納部センサーが検出するペンの装着状態に基づいて音響デバイス制御部が音響デバイスを制御する手順を示すフローチャート図の一例である。 インパルス応答を説明する図である。 インパルス応答測定部として音響エコーキャンセラーを用いた例を示す図である。 インパルス応答によりユーザーを検出して、音響デバイス制御部が音響デバイスを制御する手順を示すフローチャート図の一例である。 表示装置の他の構成例を示す図である。 表示装置の他の構成例を示す図である。 表示装置の他の構成例を示す図である。 表示装置の他の構成例を示す図である。
以下、本発明を実施するための形態の一例として、表示装置及び表示装置が行う音響デバイス制御方法について図面を参照しながら説明する。
<処理又は動作の概略>
図1は本実施形態の表示装置2がマイク又はスピーカーを制御する処理の概略を説明する図である。図1(a)は、表示装置2が収納するペン2500a~2500dの収納例を示す図である。図1(a)では表示装置2が4つのペンの収納部15a~15dを有している。収納部15a~15dはハードウェアによる検出スイッチを有し、ペン2500a~2500dが収納されているか否かを検出することができる。
また、表示装置2の4つの辺の側面にはそれぞれマイク221又はスピーカー219が配置されている。マイク221又はスピーカー219の少なくとも一方を音響デバイスという場合がある。表示装置2はそれぞれの辺の音響デバイスを個別に制御できる。音響デバイスは表示装置2の少なくとも一辺以上に配置される。
図1(b)は、四人のユーザーがそれぞれ収納部15a~15dからペン2500a~2500dを取り出した状態を示す。表示装置2は、3つの方法でユーザーの位置情報[HY1]を決定する。
1.ペン2500a~2500dがペンID(ペンの識別情報)を有し、表示装置2ではペンIDとユーザーの位置情報[HY2](後述するAngle)の対応を保持している。ペン2500a~2500dがペンダウンした場合、表示装置2がそのペンIDを送信するので、ユーザーの位置情報が判明する。
2.収納部15a~15dが有する検出スイッチによる装着状態
3.音源信号のインパルス応答
例えば、2の方法では以下のように判断できる。
・ペンが引き出された本数=筆記ユーザー数(筆記者数)と判断する。
・ペンが引き出された方向=ユーザーが存在する方向と判断する。
A.筆記ユーザー数が1~3人の場合
表示装置2は、ユーザーが存在するディスプレーの辺の側面に配置された音響デバイスをOFFにし(又はゲインを下げ)、その代わりにそれ以外の音響デバイスのゲインを上げる等の音声処理を行う。なお、ゲインとは、電気信号の増幅率である。利得とも言う。スピーカーの場合はゲインを大きくすることで出力の音量が大きくなり、マイクの場合はゲインを大きくすることで入力の音量が大きくなる。OFFとは電気信号を遮断することをいう。表示装置2がゲインをゼロまたはゼロに近い値に制御することでもOFFと同様の効果を得られる。
B.筆記ユーザー数が4人の場合
(i) 全方向から同時に筆記された場合にはディスプレーの全ての辺の音響デバイスが塞がれている可能性が高いため、表示装置2は相手拠点へ正確な音声データが送信できていない可能性があることを表示させる。
(ii)全ての音響デバイスをOFFにする(又はゲインを下げる)。
このように、ユーザーが存在する表示装置2の辺にある音響デバイスをOFFにする又はゲインを下げることにより、障害物による、音圧低下、音のひずみ、ノイズ混入、及び、エコーキャンセラーの性能劣化を防ぐことができる。
<用語について>
入力手段とはタッチパネルに座標を指定して手書きが可能な手段であればよい。例えば、ペン、人の指や手、棒状部材などがある。ユーザーがディスプレーに入力手段を押しつけてから連続的に移動させた後、ディスプレーから離すという一連の操作をストロークという。人の指や手が入力手段の場合、表示装置は個人が身につけているスマートウォッチやスマートリングから識別情報を取得する。予め、ユーザのデバイス(スマートウォッチ、スマートリング等)の識別情報と位置情報をユーザ等が表示装置2に登録しておくことで、ペンによる入力でなくても、指によって手書き入力を実現することができる。ユーザのデバイスについては、ユーザのデバイスをONさせることで、表示装置2は入力手段が利用されていることがわかる。ユーザのデバイスがONされている場合、装着状態検出手段は、ユーザがいる位置を判断できる。
ストロークデータとは、入力手段により入力される座標の軌跡に基づいてディスプレーに表示される情報である。ストロークデータは適宜、補間されてよい。ストロークにより手書きされたデータをストロークデータという。手書きデータは1つ以上のストロークデータを有する。ストロークデータに基づいてディスプレーに表示される表示物をオブジェクトという。
文字認識とは手書きデータを文字コードに変換することを言う。日本語だけでなく英語などの多国語に変換することもできる。また、数字、記号(%、$、&など)、図形(線、丸、三角など)等にも変換できる。
白黒対応装置…白若しくは黒、又は、グレースケールしか出力できない装置である。例えば、電子ペーパー、モノクロプリンタなどがある。カラーに対応していない装置とも言える。
カラー対応装置…白黒だけでなくカラーを出力できる装置である。液晶や有機ELディスプレーを有する装置、カラープリンタなどがある。カラー対応機器は白黒対応機器でもある。
白黒強調対応装置…白若しくは黒、又は、グレースケールしか出力できない装置であるが、手書き由来のデータに関して手書きデータに対応付けられている色情報に基づいて、白黒強調表示を行う装置である。本実施形態の表示装置が挙げられる。なお、表示装置は手書き入力が可能であり、入力装置又は手書き入力装置と呼ばれる場合もある。
手書き由来のデータとは、タッチパネルに手書きされたことで入力されたデータをいう。入力後に手書きのままか、テキストデータに変換されたかは問わない。また、外部機器から取得されたデータも手書き由来であることは失われない。手書き由来のデータは文字認識して変換されたテキストデータの他、「済」「秘」などの決まった文字やマークとして表示されるスタンプ、円や星などの図形、直線等、ユーザーの操作に基づいて変換されたデータも含まれてよい。
手書き由来のデータでないデータはタッチパネルに手書きされたことで入力されたデータ以外のデータをいい、例えば、画像(イメージ)データ、白黒強調対応装置でない装置で入力された手書きデータ又はテキストデータをいう。
<装置の配置例>
図2を用いて、本実施形態に係る表示装置2の全体構成を説明する。図2は、表示装置2の全体構成図を示した図である。図2(a)では、表示装置2の一例として、壁につり下げられた横長の電子黒板として使用される表示装置2を示している。
図2(a)に示されているように、表示装置2の上部には表示装置の一例としてのディスプレー220が設置されている。ユーザーUは、ペン2500を用いて、ディスプレー220に文字等を手書きする(入力、描画ともいう)することができる。
図2(b)は壁につり下げられた縦長の電子黒板として使用される表示装置2を示している。
図2(c)は机230に平置きされた表示装置2を示す。表示装置2は厚みが1cm程度なので、一般の机に平置きしても机の高さを調整する必要がない。また、容易に移動できる。
なお、チルトセンサーによりどの置き方で使用されているかは自動的に検出される。
図3は平置きされた表示装置2のユースケースの一例である。図3ではユーザーが向かい合っている。平置きされ、複数人の手書きを行う場合、どの方向からも筆記が可能なため、表示装置はどの方向から何人の筆記者が手書きを行うか予測ができない。平置きされた場合、筆記者は自分が居る方向の辺を体で覆うようにして文字を筆記することが多い。複数人で1つの表示装置を囲んで手書きする場合、断続的にその筆記者が変わる可能性がある。
音響デバイスをユーザーが覆ってしまうとスピーカー出力の音圧低下、音のひずみ、マイク入力への音圧低下、ノイズ混入、又は、エコーキャンセラーの性能劣化が生じるおそれがある。音声の自動録音や音声認識、又は、議事録作成サービスの利用時にユーザーがこれらを利用できなくなるおそれがある。また、企業での遠隔会議や学校での遠隔授業や交流の際には手書き文字を共有しながら本体に搭載されている音響デバイスで会話をするという利用シーンも想定されるが、平置きされた場合はこのような利用が困難になるおそれがある。
<ペンの外観の一例>
図4は、ペン2500の斜視図の一例を示す。図4は多機能なペン2500の一例を示す。電源を内蔵して表示装置2に命令を送信できるペン2500をアクティブペンという(電源を内蔵しないペンをパッシブペンという)。図4のペン2500は、物理的なスイッチがペン先に一つ、ペン尻に一つ、ペン側面に二つあり、ペン先が筆記用、ペン尻が消去用、ペン側面はユーザー機能割り当て用である。本実施形態では、更に、不揮発性のメモリーを有しており、他のペンと重複しないペンIDを記憶している。
なお、スイッチ付きのペンであれば、ユーザーの表示装置2の操作手順を減らすことも可能である。スイッチ付きのペンとは主にアクティブペンを言うが、電磁誘導方式では電源を内蔵しないパッシブペンでもLC回路(コイルとコンデンサの回路)だけで電力を発生できるため、アクティブペンだけでなく電磁誘導方式のパッシブペンを含む。電磁誘導方式以外の光学方式、赤外線方式、及び、静電容量方式のスイッチのあるペンはアクティブペンである。
なお、ペン2500のハードウェア構成は、通信機能とマイコンを備えた一般的な制御方式と同様であるとする。ペン2500は、電磁誘導方式、アクティブ静電結合方式などがある。また、筆圧検知、傾き検知、ホバー機能(ペンが触れる前にカーソルを表示)、などの機能を有していてよい。
<装置のハードウェア構成>
続いて、図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を備えている。
これらのうち、CPU201は、表示装置2全体の動作を制御する。ROM202は、CPU201やIPL(Initial Program Loader)等のCPU201の駆動に用いられるプログラムを記憶する。RAM203は、CPU201のワークエリアとして使用される。SSD204は、表示装置2用のプログラム等の各種データを記憶する。なお、このプログラムは汎用的なOS(Windows(登録商標)、Mac OS(登録商標)、Android(登録商標)、iOS(登録商標)等)を搭載した情報処理装置でアプリケーションプログラムでもよい。
また、表示装置2は、ディスプレーコントローラー213、タッチセンサーコントローラー215、タッチセンサー216、ディスプレー220、電源スイッチ227、チルトセンサー217、シリアルインターフェース218、スピーカー219、マイク221、無線通信装置222、赤外線I/F223、電源制御回路224、ACアダプター225、バッテリー226、及び、収納部センサー228を備えている。
ディスプレーコントローラー213は、出力画像をディスプレー220等へ出力するために画面表示の制御及び管理を行う。タッチセンサー216は、ディスプレー220上にペン2500やユーザーの手等(ペンやユーザーの手は入力手段となる)が接触したことを検知する。また、タッチセンサー216はペンIDを受信する。
タッチセンサーコントローラー215は、タッチセンサー216の処理を制御する。タッチセンサー216は、座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、例えば、光学式の場合、ディスプレー220の上側両端部に設置された2つ受発光装置が、ディスプレー220に平行して複数の赤外線を放射し、ディスプレー220の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。タッチセンサー216は、物体によって遮断された2つの受発光装置が放射した赤外線の位置情報をタッチセンサーコントローラー215に出力し、タッチセンサーコントローラー215が、物体の接触位置である座標位置を特定する。また、タッチセンサーコントローラー215は通信ユニット215aを有しており、ペン2500と無線で通信することができる。例えば、Bluetooth(登録商標)などの規格で通信している場合は、市販されているペンを使用することができる。通信ユニット215aに予め1つ以上のペン2500を登録しておくと、ユーザーはペン2500を表示装置2と通信させる接続設定を行わなくても通信できる。
電源スイッチ227は、表示装置2の電源のON/OFFを切り換えるためのスイッチである。チルトセンサー217は、表示装置2の傾き角度を検出するセンサーである。主に、表示装置2が図2(a)、図2(b)又は、図2(c)のいずれかの設置状態で使用されているかを検出するために使用され、設置状態に応じて文字等の太さを自動で変更することができる。
シリアルインターフェース218はUSBやLANインターフェースなどの外部との通信インターフェースである。外部からの情報の入力などに使用される。スピーカー219は音声の出力に使用され、マイク221は音声の入力に使用される。マイク221とスピーカー219は表示装置2の辺ごとに、表示装置2の側面に配置されている。各辺の全てに配置されていなくてもよい。表示装置2の全体(外縁)の形状が多角形(主に四角形)の場合、表示装置2は辺を有している。辺とは、多角形を構成する線分である。表示装置2は5角形以上の多角形でもよいし、円形でもよい。
無線通信装置222は、ユーザーが携帯する端末と通信し、例えばインターネットへの接続を中継する。無線通信装置222はWi-FiやBluetooth(登録商標)などで通信するが、通信規格は問われない。無線通信装置222はアクセスポイントを形成しており、ユーザーが入手したSSID(Service Set Identifier)とパスワードをユーザーが携帯する端末に設定すると、アクセスポイントに接続できる。
なお、無線通信装置222に2つのアクセスポイントが用意されているとよい。
a. アクセスポイント→インターネット
b. アクセスポイント→社内ネットワーク→インターネット
aのアクセスポイントは社外のユーザー用で、ユーザーは社内ネットワークにはアクセスできないが、インターネットを利用できる。b.のアクセスポイントは社内のユーザー用で、ユーザーは社内ネットワーク及びインターネットを利用できる。
赤外線I/F223は隣に配置された表示装置2を検出する。赤外線の直進性を利用して、隣に配置された表示装置2のみを検出できる。赤外線I/F223は各辺に1つずつ設けられることが好ましく、表示装置2のどの方向に他の表示装置2が配置されたのかを検出できる。隣の表示装置2には過去に手書きされた手書き情報(1つのディスプレー220の広さを1ページとして別のページの手書き情報)を表示できる。
収納部センサー228は、収納部15a~15dにペンが収納されている場合に電気的な接点がONになり、収納部15a~15dにペンが収納されていない場合に電気的な接点がOFFになるスイッチである。収納部15a~15dにペンが収納されている場合に電気的な接点がOFFになり、収納部15a~15dにペンが収納されていない場合に電気的な接点がONになってもよい。収納部センサー228は収納部15a~15dの数だけ(ペンの数だけ)設けられている。
電源制御回路224は表示装置2の電源であるACアダプター225とバッテリー226を制御する。ACアダプター225は商用電源が共有する交流を直流に変換する。
ディスプレー220がいわゆる電子ペーパーの場合、画像が描画された後の画像を維持するためにほとんど又は一切電力を消費しないので、バッテリー226による駆動も可能である。これにより、屋外など電源を接続しにくい場所でもデジタルサイネージなどの用途で表示装置2を使用することが可能になる。
更に、表示装置2は、バスライン210を備えている。バスライン210は、図5に示されているCPU201等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
なお、タッチセンサー216は、光学式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。タッチセンサー216は、ペン先のタッチの有無を検知するのに電子ペンが必要ない方式であってよい。この場合はタッチ操作をするのに指先やペン型の棒を使用できる。なお、ペン2500は、細長いペン型である必要はない。
<装置の機能について>
次に、図6を用いて、表示装置2とペン2500が有する機能について説明する。図6(a)は表示装置2が有する機能をブロック状に示す機能ブロック図の一例である。表示装置2は、手書き入力部21、表示部22、手書き入力表示制御部23、候補表示タイマー制御部24、手書き入力保存部25、手書き認識制御部26、手書き認識辞書部27、文字列変換制御部28、文字列変換辞書部29、予測変換制御部30、予測変換辞書部31、操作コマンド認識制御部32、操作コマンド定義部33、ペンID制御データ保存部36、及び、音響デバイス制御部71を備えている。
表示装置2が有する各機能は、図5に示されている各構成要素のいずれかが、SSD204からRAM203上に展開されたプログラムに従ったCPU201からの命令によって動作することで実現される機能又は手段である。
手書き入力部21はタッチセンサー216等により実現されており、ユーザーによる手書き入力を受け付け、ペン2500からペンIDを受信する。手書き入力部21はユーザーのペン入力d1をペンID付きのペン操作データd2(ペンアップ、ペンダウン、又はペン座標データ)に変換し、手書き入力表示制御部23に送信する。ペン座標データは離散値として定期的に送信され、離散値間の座標は補完計算される。
表示部22はディスプレー220等により実現され、手書きされたオブジェクトや操作メニュー等を表示する。表示部22は手書き入力表示制御部23がビデオメモリーに書き込んだ描画データd3をディスプレー220の特性に応じたデータに変換し、ディスプレー220に送信する。
手書き入力表示制御部23は手書き入力と表示に関する全体的な制御を行う。手書き入力表示制御部23は手書き入力部21からのペン操作データd2を処理し、表示部22に送信することで表示させる。ペン操作データd2の処理及びストロークの表示の詳細は後述の図29~図35にて説明する。手書き入力表示制御部23は後述する操作ボタン定義データを保持しており、手書き入力部21からのペン操作データd2に基づいて操作された操作メニュー(ボタン)を検出して、操作メニューに応じた制御を行う。
候補表示タイマー制御部24は、選択可能候補の表示制御タイマーである。タイマーを開始又は停止して選択可能候補の表示を開始するタイミングと表示を消去するタイミングを生成する。選択可能候補とは、後述する操作ガイド(図22参照)に選択可能に表示される手書き認識文字列/言語文字列候補、変換文字列候補、文字列/予測変換の候補、及び、操作コマンドの候補、である。候補表示タイマー制御部24は手書き入力表示制御部23からタイマー開始要求d4(タイマー停止要求の場合もある)を受信し、タイムアウトイベントd5を手書き入力表示制御部23に送信する。
手書き入力保存部25はユーザーデータ(手書きオブジェクト/文字列オブジェクト)を保存しておくストレージの機能を有する。手書き入力保存部25は手書き入力表示制御部23からユーザーデータd6-1を受信し、手書き入力保存部25に保存し、手書き入力表示制御部23から取得要求d6-2を受け取って、手書き入力保存部25に保存されたユーザーデータd7を送信する。手書き入力保存部25は、確定オブジェクト(すでに認識が終了した文字列オブジェクト又は変換しないことが確定した手書きオブジェクト)の位置情報d36を操作コマンド認識制御部32に送信する。
手書き認識制御部26はオンライン手書き認識を行う認識エンジンである。一般的なOCR(Optical Character Reader)とは異なり、ユーザーのペン操作と並行して文字(日本語だけでなく英語などの多国語)、数字、記号(%、$、&など)、図形(線、丸、三角など)等を認識していく。認識方法については様々なアルゴリズムが考案されているが、本実施形態では公知の技術を利用できるとして詳細を割愛する。
手書き認識制御部26はペン操作データd8-1を手書き入力表示制御部23から受信し、手書き認識を実行して手書き認識文字列候補を保持する。また、手書き認識制御部26は手書き認識辞書部27を使用して手書き認識文字列候補d12から変換した言語文字列候補を保持しておく。別途、取得要求d8-2を手書き入力表示制御部23から受信した場合、手書き認識制御部26は保持している手書き認識文字列候補及び言語文字列候補d9を手書き入力表示制御部23に送信する。
手書き認識辞書部27は手書き認識の言語変換用の辞書データである。手書き認識辞書部27は手書き認識文字列候補d12を手書き認識制御部26から受信し、言語的に確からしい言語文字列候補d13に変換して手書き認識制御部26に送信する。例えば、日本語の場合は、平仮名を漢字や片仮名へ変換する。
文字列変換制御部28は変換文字列候補の文字列への変換を制御する。変換文字列とは手書き認識文字列又は言語文字列を含んで生成される可能性が高い文字列である。文字列変換制御部28は手書き認識文字列及び言語文字列候補d11を手書き認識制御部26から受信し、文字列変換辞書部29を使用して変換文字列候補に変換して保持しておく。別途、取得要求d14を手書き入力表示制御部23から受信した場合、保持している変換文字列候補d15を手書き入力表示制御部23に送信する。
文字列変換辞書部29は文字列変換用の辞書データである。文字列変換辞書部29は文字列変換制御部28から手書き認識文字列及び言語文字列候補d17を受信し、変換文字列候補d18を文字列変換制御部28に送信する。
予測変換制御部30は手書き認識文字列及び言語文字列候補d10を手書き認識制御部26から受信し、変換文字列候補d16を文字列変換制御部28から受信し、それぞれについて予測変換辞書部31を使用して予測文字列候補に変換しておく。予測変換文字列とは手書き認識文字列、言語文字列又は変換文字列を含んで生成される可能性が高い文字列である。別途、取得要求d19を手書き入力表示制御部23から受信した場合、予測文字列候補d20を手書き入力表示制御部23に送信する。
予測変換辞書部31は予測変換用の辞書データである。予測変換辞書部31は手書き認識文字列、言語文字列候補及び変換文字列候補d21を予測変換制御部30から受信し、予測文字列候補d22を予測変換制御部30に送信する。
操作コマンド認識制御部32は手書き認識文字列及び言語文字列候補d30を手書き認識制御部26から受信し、変換文字列候補d28を文字列変換制御部28から受信し、予測文字列候補d29を予測変換制御部30から受信する。そして、それぞれについて操作コマンド変換要求d26を操作コマンド定義部33に送信し、操作コマンド定義部33から操作コマンドの候補d27を受信する。操作コマンド認識制御部32は操作コマンドの候補d27を保持しておく。
操作コマンド定義部33は操作コマンド変換要求d26が操作コマンド定義と部分一致している場合は操作コマンドの候補d27を操作コマンド認識制御部32に送信する。
また、操作コマンド認識制御部32はペン操作データd24-1を手書き入力表示制御部23から受信し、過去に入力され確定した確定オブジェクトの位置情報取得要求d23を手書き入力保存部25に送信し、ペン操作データが指定している確定オブジェクトを選択オブジェクト(位置情報を含む)として保持しておく。操作コマンド認識制御部32はペン操作データd24-1の位置と所定の基準を満たす選択オブジェクトを特定する。別途、取得要求d24-2を手書き入力表示制御部23から受信した場合、保持している操作コマンドの候補と特定した選択オブジェクトd25を手書き入力表示制御部23に送信する。
ペンID制御データ保存部36は、ペンID制御データを保持している(記憶手段といってもよい)。手書き入力表示制御部23が表示部22に表示データを送信する前に、ペンID制御データ保存部36はペンID制御データd41を手書き入力表示制御部23に送信する。手書き入力表示制御部23は、ペンIDに対応付けて保存されている動作条件で表示データを描画する。また、手書き認識制御部26が手書き認識を実行する前に、ペンID制御データ保存部36は手書き認識制御部26にペンID制御データの角度情報d44を送信して、手書き認識制御部26はペンIDに対応づけて保存されている角度情報でストロークを回転して手書き認識を実行する。
また、手書き認識制御部26が、ユーザーが文字等を手書きする時の角度情報を設定するための直線を認識した後、手書き認識制御部26はペンID制御データの角度情報d43をペンID制御データ保存部36に送信して、ペンIDに対応付けて角度情報d43を保存する。また、手書き入力表示制御部23が角度情報を設定する操作コマンドを実行後に、手書き入力表示制御部23はペンID制御データd42をペンID制御データ保存部36に送信して、操作コマンドの実行結果(ユーザーが設定した角度情報)をペンIDに対応付けて保存する。以降、そのペンIDのストロークは設定した角度情報で回転してから手書き認識が実行される。
手書き認識制御部26の手書き認識結果が手書きサイン登録の実行を指示する操作コマンドに適合する場合、手書き認識制御部26は手書き入力保存部25から手書きサイン登録フォーム(本実施形態では、手書きサインデータについて詳細は省略する)に入力されたデータd52を取得する。
手書き認識制御部26の手書き認識結果が手書きサインの取消指示又は登録の実行の場合、手書き認識制御部26は手書き入力保存部25に手書きサイン登録フォームの削除要求d51を送信して、手書き入力保存部25から手書きサイン登録フォームを削除する。
手書き認識制御部26の手書き認識結果がユーザー定義データ変更の実行指示の場合、手書き認識制御部26は手書き入力保存部25からユーザー定義データ変更フォームに入力されたデータd53を取得し、データd53のうち変更値d54を操作コマンド定義部33に送信し、ユーザー定義データを変更する。ユーザー定義データについては図15にて説明する。
手書き認識制御部26の手書き認識結果がユーザー定義データ変更フォームの取消指示又は登録の実行の場合、手書き認識制御部26は手書き入力保存部25にユーザー定義データ変更フォームの削除要求d55を送信し、手書き入力保存部25からユーザー定義データ変更フォームを削除する。
音響デバイス制御部71は、手書き入力表示制御部23からのユーザーの位置情報(角度情報、Angle。ペンIDに対応づけられている)に基づいて、ペンを用いて入力するユーザーが存在する前記表示装置の辺を検出し、ディスプレーの辺ごとに音響デバイスのゲインを制御したり、ON/OFFを制御したりする。なお、音響デバイス制御部71は、収納部センサー228からの信号に応じて同様の制御を行うことができる。ユーザの位置情報は、ペンIDに対応づけられている角度情報、Angleにより、その角度情報、Anguleの方向にユーザが存在していることを推定していることを示している。
また、音響デバイス制御部71は、スピーカーが出力するインパルスをマイクが受信したインパルス応答や周波数特性の解析結果からユーザーの有無を検出し、同様の制御を行う。
図6(b)は、ペン2500の機能をブロック状に示す機能ブロック図である。ペン2500はペンイベント送信部41を有している。ペンイベント送信部41はペンアップ、ペンダウン、ペン座標のイベントデータにペンIDを付与して表示装置2に送信する。
<音響デバイス制御部の機能>
図7は音響デバイス制御部71の機能の一例を示す図である。音響デバイス制御部71は利得制御部72と障害物検出部73を有している。障害物検出部73は、手書き入力表示制御部23からのペンダウンの通知と共にAngleを受信し、ユーザーがどの辺にいるかの位置を検出する。Angleについては後述されるが、表示装置の中心から見てどの方向にユーザーがいるかを示しており、換言すると、Angleは、ユーザの位置情報を示している。
障害物検出部73は、表示装置2の辺ごとのユーザーの有無に応じて、各辺に配置されている音響デバイスのゲインの制御を利得制御部72に要求する。
障害物検出部73は同様の処理を、収納部センサー228からの信号によっても行うことができる。装着状態検出部75a~75dは、収納部センサー228ごとに設けられており、収納部センサー228からペン2500a~2500dの装着状態を示す信号を取得する。ペン2500a~2500dの装着状態は、装着中又は取り外し中のいずれかである。装着状態検出部75a~75dは表示装置2の起動時及び障害物検出部73が要求したタイミングで収納部センサー228からペン2500a~2500dの装着状態を示す信号を取得する。また、装着状態検出部75a~75dは、収納部センサー228が装着された又は取り外しされた時にCPUに通知される割り込み信号によって、収納部センサー228からペンの装着状態を示す信号を取得する。
障害物検出部73は、各装着状態検出部75a~75dから送信される装着状態に応じて表示装置2の辺ごとにユーザーの有無を判断する。そして、障害物検出部73は、表示装置2の辺ごとのユーザーの有無に応じて、各辺の音響デバイスのゲインの制御を利得制御部72に要求する。
障害物検出部73は、ユーザーが存在する辺の音響デバイスI/F74a~74dに対し、音声の入出力のOFF、又は、ゲインの低減を要求する。例えば、A辺にユーザーがいると判断される場合、障害物検出部73はA辺の音響デバイスI/F74aに音声の入出力のOFF又はゲインの低減を要求する。B辺~D辺にユーザーが存在する場合も同様である。
図8は、表示装置2の辺と角度(Angle)の対応例を示す図である。例えば、表示装置2にはある辺がAngle=0度のA辺であると固定して登録されている。残りの辺は、反時計回りにB辺=90度、C辺=180度、D辺=270度、のように登録されている。したがって、ユーザーがいる位置(辺)が分かれば、対応する音響デバイスも判明する。
また、障害物検出部73は、ユーザーが存在する辺の音響デバイスI/F74a~74dに対し、音声の入出力のOFF又はゲインの低減を要求した場合、ユーザーが存在しない辺の音響デバイスI/F74a~74dに対し、音声の入出力のゲインの増加を要求する。ユーザーが存在する辺で音響デバイスの音声の入出力がOFF又はゲイン低減されたことを補うためである。
利得制御部72は、各辺に配置された音響デバイスを個別に制御する音響デバイスI/F74a~74dに対し、音声の入出力のOFF、ON、ゲインの低減、又は、ゲインの増加を要求する。
なお、障害物検出部73は、収納部センサー228を用いて音響デバイスを制御する場合、装着状態が変化するまで現在の制御を継続する。一方、ペンIDに対応づけられているAngle(ペンID制御データ)を用いて音響デバイスを制御する場合、ペンダウンからペンアップまでの間だけ、音響デバイスを制御する。ペンIDとAngleは利用開始(ペンによるボタンの押下)により対応づけられるため、何らトリガーがないと(ここではペンダウン)障害物検出部73はペンIDにAngleが対応づけられているかどうかを定期的に確認する必要があるからである。一方、ペンIDとAngleの対応は不揮発メモリーに保存されるので、ペンIDにAngleが対応づけられていることだけではユーザーが存在するとは限らないからである。
<定義済み制御データについて>
次に、図9を用いて、表示装置2が各種の処理に使用する定義済み制御データについて説明する。図9は定義済み制御データの一例を示す。図9の例では制御項目ごとに制御データを示す。
選択可能候補表示タイマー401は、選択可能候補を表示するまでの時間を定義する。手書き中に選択可能候補を表示しないためである。図9では、ペンアップからTimerValue=500〔ms〕以内にペンダウンが発生しなければ選択可能候補が表示されることを意味している。選択可能候補表示タイマー401は候補表示タイマー制御部24が保持している。選択可能候補表示タイマー401は、後述する図31のステップS18-2において選択可能候補表示タイマー開始時に使用される。
選択可能候補消去タイマー402は表示した選択可能候補を消去するまでの時間を定義する。ユーザーが選択可能候補を選択しない場合に選択可能候補を消去するためである。図9では、選択可能候補の表示からTimerValue=5000〔ms〕以内に選択可能候補が選択されなければ選択可能候補表示データが消去されることを意味している。選択可能候補消去タイマー402は候補表示タイマー制御部24が保持している。選択可能候補消去タイマー402は図33のステップS54において選択可能候補消去タイマー開始時に使用される。
手書きオブジェクト近傍矩形領域403は手書きオブジェクトの近傍とみなす矩形領域を定義する。図9の例では、手書きオブジェクト近傍矩形領域403は、手書きオブジェクトの矩形領域を水平方向に推定文字サイズの50%(Horizontal)拡大し、垂直方向に推定文字サイズの80%(Vertical)拡大した矩形領域となる。図9の例では推定文字サイズの割合(%指定)となっているが、単位を"mm"等とすれば固定長にすることも可能である。手書きオブジェクト近傍矩形領域403は手書き入力保存部25が保持している。フォントデータ405は図30のステップS10において、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況の判定で使用される。
推定書字方向/文字サイズ判定条件404は、書字方向と文字サイズの測定方向を判定するための定数を定義する。図9の例では、手書きオブジェクト矩形領域の最初にストロークが追加された時刻と最後にストロークが追加された時刻の差分がMinTime=1000〔ms〕以上で、手書きオブジェクト矩形領域の水平距離(幅)と垂直距離(高さ)の差分がMinDiff=10〔mm〕以上あり、水平距離が垂直距離より長い場合は、推定書字方向は「横書き」、推定文字サイズは垂直距離と判定することを意味する。水平距離が垂直距離より短い場合は、推定書字方向は「縦書き」、推定文字サイズは水平距離と判定することを意味する。以上の条件を満たさない場合は、推定書字方向は「横書き」(DefaultDir="Horizontal")、推定文字サイズは水平距離と垂直距離の長い方の距離と判定する。推定書字方向/文字サイズ判定条件404は手書き入力保存部25が保持している。推定書字方向/文字サイズ判定条件404は図33のステップS50における推定書字方向取得と、図35のステップS72における文字列オブジェクトフォント取得で使用される。
フォントデータ405は文字等のサイズを推定するためのデータを定義する。図9の例では、推定書字方向/文字サイズ判定条件404で判定された推定文字サイズが、フォントデータ405の小さめ文字405a(以下、最小フォントサイズ、と呼ぶ)と大きめ文字405c(以下、最大フォントサイズ)と比較されることを意味する。推定文字サイズが最小フォントサイズより小さい場合、推定文字サイズは最小フォントサイズと判定される。推定文字サイズが最大フォントサイズより大きい場合、推定文字サイズは最大フォントサイズと判定される。それ以外は、中くらい文字405bの文字サイズと判定される。フォントデータ405は手書き入力保存部25が保持している。フォントデータ405は、図35のステップS72における文字列オブジェクトフォント取得で使用される。
手書き入力保存部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の種類を増やせばよい。
跨ぎ線判定条件406は複数のオブジェクトが選択されたか否かの判定に使用されるデータを定義する。手書きオブジェクトが単数のストロークであり、図9の例では、手書きオブジェクトの長辺の長さが100〔mm〕以上(MinLenLongSide="100mm")、かつ、短辺の長さが50〔mm〕以下(MaxLenShortSide="50mm")、かつ、手書きオブジェクトとの長辺方向と短辺方向の重なり率が80〔%〕以上(MinOverLapRate="80%")のオブジェクトがあれば、複数のオブジェクトが選択された(選択オブジェクト)と判定する。跨ぎ線判定条件406は操作コマンド認識制御部32が保持している。跨ぎ線判定条件406は図32のステップS41における選択オブジェクトの判定の跨ぎ線判定で使用される。
囲み線判定条件407は、オブジェクトが囲み線か否かの判定に使用されるデータを定義する。図9の例では、操作コマンド認識制御部32は手書きオブジェクトの長辺方向と短辺方向の重なり率が100%以上(MinOverLapRate="100%")の確定オブジェクトを選択オブジェクトと判定する。囲み線判定条件407は、操作コマンド認識制御部32が保持している。囲み線判定条件407は、図32のステップS41における選択オブジェクトの判定の囲み線判定で使用される。
なお、跨ぎ線判定条件406と囲み線判定条件407はどちらが優先して判定されてもよい。例えば、跨ぎ線判定条件406を緩やかにして(跨ぎ線を選択しやすくした場合)、囲み線判定条件407は厳密にした場合(囲み線のみを選択できるような値とした場合)、操作コマンド認識制御部32は囲み線判定条件407を優先して判定するのがよい。
<辞書データの一例>
図10~図12を用いて辞書データについて説明する。図10は手書き認識辞書部27の辞書データの一例であり、図11は文字列変換辞書部29の辞書データの一例であり、図12は予測変換辞書部31の辞書データの一例である。なお、これらの辞書データはそれぞれ図32のステップS24~S32で使用される。
本実施形態では、図10の手書き認識辞書部27の辞書データによる変換結果を言語文字列候補、図11の文字列変換辞書部29の辞書データによる変換結果を変換文字列候補、図12の予測変換辞書部31の辞書データによる変換結果を予測文字列候補と呼ぶ。各辞書データの「変換前」は辞書データを検索する文字列、「変換後」は検索する文字列に対応した変換後の文字列、「確率」はユーザーが選択する確率を表す。確率は過去にユーザーが各文字列を選択した結果から算出されている。従って、ユーザーごとに確率が算出されてもよい。確率の計算方法として様々なアルゴリズムが考案されているが、適宜、適切な方法で計算するものとすればよく、詳細は割愛する。本実施形態では、推定書字方向から文字列候補を選択確率降順で表示することを特徴とする。
図10の手書き認識辞書部27の辞書データでは、手書きされた「ぎ」は、確率0.55で「議」、確率0.4で「技」、手書きされた「ぎし」は、確率0.5で「技士」、確率0.45で「技師」に変換されることを示す。その他の「変換前」の文字列についても同様である。図10では「変換前」の文字列が手書きされた平仮名となっているが、平仮名以外を「変換前」に登録してもよい。
図11の文字列変換辞書部29の辞書データでは、文字列「議」は確率0.95で「議事録」に、文字列「技」は確率0.85で「技量試」に変換されることを示す。その他の「変換前」の文字列についても同様である。
図12の予測変換辞書部31の辞書データでは、文字列「議事録」は確率0.65で「議事録の送付先」に、文字列「技量試」は確率0.75で「技量試を決裁」に変換されることを示す。図12の例では変換前の文字列がすべて漢字になっているが、漢字以外を登録してもよい。
なお、辞書データに言語依存はなく、変換前と変換後にどのような文字列が登録されていてもよい。
<操作コマンド定義部が保持する操作コマンド定義データ>
次に、図13を用いて操作コマンド認識制御部32が使用する操作コマンド定義データについて説明する。図13は、操作コマンド定義部33が保持する操作コマンド定義データとシステム定義データの一例を示す。
図13(a)は操作コマンド定義データの一例を示す。図13(a)の操作コマンド定義データは、手書きオブジェクトにより選択された選択オブジェクトがない場合の操作コマンド定義データ例であり、表示装置2で実行可能な全ての操作コマンドが対象となる。図13(a)の操作コマンドは操作コマンド名(Name)、文字列候補と部分一致する文字列(String)、実行する操作コマンド文字列(Command)を有する。操作コマンド文字列内の「%~%」は変数であり、図13(b)に示すようにシステム定義データと対応付けられている。つまり、「%~%」は図13(b)に示すシステム定義データで置き換えられる。
まず、操作コマンド定義データ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)ことを示す。
操作コマンド定義データ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)ことを示す。
操作コマンド定義データ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)ことを示す。つまり、ファイルがサーバーに送信される。ユーザーがプリンターをサーバーと通信させ、ファイルを指定するとプリンターが用紙にファイルの内容を印刷する。
このように、文字列候補から操作コマンド定義データ701~703を特定できるため、ユーザーが手書きすることで操作コマンドを表示させることができる。また、ユーザーの認証が成功した場合にはユーザー情報で操作コマンド定義データの「%username%」「%password%」等が置き換えられるので、ユーザーに対応付けてファイルの入出力が可能になる。
ユーザーの認証が行われない場合(認証が失敗したがユーザーが表示装置2を使用できる場合は認証失敗の場合も含む)、表示装置2は、予め設定されている表示装置2の「%username%」「%password%」等に置き換える。従って、ユーザー認証なしでも表示装置2に対応付けてファイルの入出力が可能になる。
操作コマンド定義データ709、710、711、720、721、722、723、724、725、726は、ペン色を変更する操作コマンドである。ペン色とはユーザーが使用しているペンで入力された手書きデータの色である。操作コマンド定義データ709、710、711、720、721、722、723、724、725、726のそれぞれの操作コマンド名は「黒ペン」「赤ペン」「青ペン」「緑ペン」「マゼンタペン」「シアンペン」「黒細ペン」「赤細ペン」「青細ペン」「緑細ペン」である。例えば、「黒ペン」「黒細ペン」の場合、文字列候補と部分一致する文字列が「くろ」又は「ペン」であり、ユーザーが「くろ」と書けば、操作コマンド候補には「黒ペン」「黒細ペン」のみが表示される。一方、「ペン」は「赤ペン」等においても文字列候補と部分一致する文字列(String)に該当するので、ユーザーが「ペン」と書けば、操作コマンド候補には「黒ペン」~「シアンペン」、「黒細ペン」~「緑細ペン」が表示される。これらの操作コマンドが実行されると、図17に示すように、ユーザーが操作に使用したペン2500のペンIDに対応付けられた制御データが更新され、このペンIDのペンの色としてペンID制御データのColorIdに設定される(例えば「Command="ChangePen Black"」のBlackがColorIdになる)。
操作コマンド定義データ719は、操作コマンド名が「ファイルを読み込む」、文字列候補と部分一致する文字列(String)が「ファイル」「読み込む」「読み込み」、実行する操作コマンドが「ReadFile https://%username%:%password%@server.com/files/」である。操作コマンド定義データ702と同様にシステム定義データと置き換えると、操作コマンドは「ReadFile https://taro.tokkyo:x2PDHTyS@server.com/files/」となり、このアドレス(フォルダー)のファイルを読み出す(ReadFile)ことを示す。この操作コマンドが実行されると、ファイル選択ウィンドウを表示装置2が表示する。
操作コマンド定義データ712は、テキストデータの方向を一定方向に揃えるための操作コマンドである。操作コマンド定義データ712の操作コマンド名は「テキスト方向を揃える」、文字列候補と部分一致する文字列が「テキスト」「向き」又は「方向」、操作コマンド文字列が「AlignTextDirection」である。ユーザーが天地方向以外から書き込んだテキストデータは向きがばらばらなので、ある1つの方向から全てを読み取りにくい。操作コマンド定義データ712をユーザーが実行すると、表示装置2は手書き認識した文字列を同一方向(例えば、天地方向)に揃える。この場合の揃えるとは、テキストデータを角度情報だけ回転させることをいう。
操作コマンド定義データ713は、操作コマンド名が「手書きサイン登録する」、文字列候補と部分一致する文字列が「サイン」と「登録」、操作コマンド文字列が「RegistSignature」であることを示す。RegistSignatureコマンドが実行されると、手書き入力保存部25に手書きサイン登録フォームが追加され、操作画面101に手書きサイン登録フォームが表示される(詳細は省略する)。
操作コマンド定義データ714は、操作コマンド名が「手書きサインインする」、文字列候補と部分位置する文字列が「%signature%」、操作コマンドが「Signin」であることを示す。ここで「%signature%」はシステム定義データの予約語であり、登録済みの手書きサインデータとユーザー名等のストロークデータが適合した事実を表すものとする。つまり適合すると操作コマンド定義データ714に基づく操作コマンド512が操作ガイド500に表示される。
Singinコマンドが実行されると、ユーザー名等のストロークデータを手書きしたペン2500のペンID制御データに、適合した手書きサインデータのSignatureIdをもつユーザーのAccountIdが保存される。これによってペンIDとAccountIdが対応付けられ、このAccountIdで特定されるユーザー定義データを表示装置2が使用することができる(図17(a)参照)。
操作コマンド定義データ715は、操作コマンド名が「手書きサインアウトする」、文字列候補と部分一致する文字列が「サイン」又は「アウト」、操作コマンドが「Signout」であることを示す。Signoutコマンドが実行されると、手書きサインアウトを操作したペン2500のペンID制御データからAccountIdが削除される。これによってペンIDとAccountIdの対応付けがなくなり、ペン2500を任意のユーザーが使用できるようになる。
操作コマンド定義データ716は、操作コマンド名が「設定変更する」、文字列候補と部分一致する文字列が「設定」又は「変更」、操作コマンドが「ConfigSettings」であることを示す。ConfigSettingsコマンドが実行されると、手書き入力保存部25にユーザー定義データ変更フォームが追加され、操作画面101にユーザー定義データ変更フォームが表示される。
続いて、手書きオブジェクトがある場合の操作コマンド定義データについて説明する。図14は手書きオブジェクトにより選択された選択オブジェクトがある場合の操作コマンド定義データの一例を示す。図14の操作コマンド定義データは、操作コマンド名(Name)、操作コマンドの候補のグループ名(Group)、実行する操作コマンド文字列(Command)を有する。
操作コマンド定義データ707は編集系(Group="Edit")の操作コマンドを定義しており、編集系の操作コマンド名「消去」「移動」「回転」「選択」の定義データ例である。つまり、選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。
操作コマンド定義データ708は修飾系(Group="Decorate")の操作コマンドを定義しており、修飾系の操作コマンド名「太く」「細く」「大きく」「小さく」「下線」の定義データ例である。選択オブジェクトに対してこれらの操作コマンドが表示され、ユーザーが所望の操作コマンドを選択できる。この他、色の操作コマンドが表示されてもよい。
従って、ユーザーが選択オブジェクトを手書きオブジェクトで選択することで、操作コマンド定義データ707、708が特定されるため、ユーザーが手書きすることで操作コマンドを表示させることができる。
操作コマンド定義データ731は、グループ化しない(Group="None")操作コマンドであり、操作コマンド名が「ページ名に設定」のデータ例である。操作コマンド定義データ731が選択された場合、表示装置2は選択オブジェクトに対して「SetPageName」を実行し、選択オブジェクトの文字列を現在表示中のページのページ名に設定する。このページ名は後述するページナビにリアルタイムに表示される。
<ユーザー定義データ>
次に、図15を用いてユーザー定義データについて説明する。図15は、操作コマンド定義部33が保持するユーザー定義データの一例を示す。図15のユーザー定義データは一人分のユーザーの定義データ例である。ユーザー定義データ717のAccountIdはユーザーごとに自動的に採番されるユーザーの識別情報、AccountUsernameとAccountPasswordはユーザー名とパスワード、SignatureIdは手書きサインデータ登録時に自動的に採番される手書きサインデータの識別情報、username, password, machinenameはそれぞれシステム定義データ704~706の替わりに操作コマンド定義データ701~703に設定される文字列である。これにより、ユーザー定義データを使用した操作コマンドの実行が可能になる。
ユーザーがユーザー名などを手書きしてサインインした場合、ペンIDとAccountIdがペンID制御データに対応付けられていることを利用して(図17(a)参照)、ユーザーが使用するペン2500のペンIDで対応付けられているAccountIdを有するユーザー定義データの文字列が操作コマンドの実行時に使用される。ユーザーがサインアウトした後は、ユーザーがサインインに使用したペン2500を使用しても、システム定義データの文字列が操作コマンドの実行時に使用される。
ユーザー定義データ718は、ユーザー定義データ変更フォームで使用されるデータである。Nameはユーザー定義データ717のAccountUsername、AccountPassword、username, password, 又はmachinenameの項目名であり、DataはAccountUsername、AccountPassword、username、password、又はmachinenameの変更値になる。この例では、「名前」のデータは「%AccountName%」、「パスワード」のデータは「%AccountPassword%」、「フォルダーユーザー名」のデータは「%username%」、「フォルダーパスワード」のデータは「%password」、「フォルダーファイル名」のデータは「%machinename」であり、ユーザー定義データ717の各項目と対応している。ユーザー定義データ変更フォームで入力されたこれらの項目は、ユーザー定義データ717に反映される。
後述するカラー定義データをユーザー定義データ717にユーザーが登録することも可能であり、ユーザーは自分が定義したカラー定義データで入力できる。
<手書き入力保存部が保存する手書き入力保存データ>
次に、図16を用いて、手書き入力保存データについて説明する。図16は、手書き入力保存部25が保存している手書き入力保存データの一例を示す。図16の1行が1つのストローク、1文(テキスト)、又は画像(イメージ)を表す。
Typeがストロークの場合、1つの手書き入力保存データは、DataId、Type、PenId、ColorId、Angle、StartPoint、StartTime、EndPoint、EndTime、Point、及び、Pressureの各項目を有している。DataIdはストロークの識別情報である。Typeは手書き入力保存データの種別である。種別にはストローク(Stroke)、グループ(Group)、テキスト(Text)、及び、イメージ(Image)がある。手書き入力保存データ801、802の種別はStrokeであり、手書き入力保存データ803の種別はGroupであり、手書き入力保存データ804、805、806の種別はTextであり、手書き入力保存データ807の種別はImageである。
Groupとは他のストロークをグループ化することを意味し、種別がGroupの手書き入力保存データは、DataIdでグループ化の対象のストロークを指定する。PenId、ColorId、Angle、は次述するペンID制御データが転記されたものである。StartPointはストロークの始点座標であり、StartTimeはストロークの始点時刻である。EndPointはストロークの終点座標であり、EndTimeはストロークの終点時刻である。Pointは始点から終点までの座標列であり、Pressureは始点から終点までの筆圧である。Angleに示すように、手書き入力保存データ804,805はそれぞれ180度、270度だけ時計回りに回転してから手書き認識されたことを示す。
また、Typeがテキスト(Text)の手書き入力保存データ804、805、806は、FontName、FontSize、Textを有している。FontNameはテキストのフォント名、FontSizeは文字サイズ、Textはテキストの内容(文字コード)である。
ペンID制御データにFontNameがなければ、図9の定義済み制御データのフォントデータ405のFontStyleを手書き入力保存部25が手書き入力保存データにコピーする。FontSizeは、図9の定義済み制御データのフォントデータ405からコピーする。
手書き入力保存データ801~805は手書き由来のデータとしてファイル保存時にはそのままメタデータとして添付されるとよい。従って、ファイル読み込み時も手書き入力保存データ801~805を表示装置2が取得できる。表示装置2が手書き入力保存データを外部機器に送信する場合は、カラー対応機器では手書き入力保存データをカラーに変換し、白黒対応装置の場合はカラーに変換せずに送信してもカラーに変換して送信してもよい。白黒強調対応装置に送信する場合は、手書き入力保存データを送信すればよい。このように手書き入力保存データ801~805は白黒強調及びカラー変換のいずれにも対応している。
手書き入力保存データ801~805が手書き由来のデータであるのに対し、手書き入力保存データ806、807は手書き由来のデータでない。これらはファイル読み込みコマンドで読み込まれたファイルである。このことはColorIdに後述するカラー定義データが定義するカラーの値が登録されているか否かによって判定される。例えば、手書き入力保存データ801のColorIdは「Black」であるが、手書き入力保存データ806のColorIdは「#e6001200」である。これは#と16進数8桁で表し、2桁ごとにR(赤)、G(緑)、B(青)、A(透明度)の値を表す。
このように、手書き由来のテキストデータでは、ColorIdに色情報を表す文字列が入っているが、手書き由来でないテキストデータでは、ColorIdが「#カラー値」となっている。このように、手書き由来のテキストデータかどうかはColorIdに着目して判定できる。
手書き入力表示制御部23は、ColorIdで手書き由来のデータかどうかを判定して、手書き由来でない場合はRGBAからグレースケール値を計算して表示する。表示装置2がカラー対応装置の場合はRGBAそのままを表示する。
手書き入力保存データ807もファイル読み込みコマンドで記憶媒体から読み込まれた画像ファイルである。TypeがImageの場合、手書き入力保存データ807はFileId、FileNameを有する。FileIdは手書き入力保存データ内の管理番号、FileNameはオリジナルのファイル名である。
手書き入力保存データは、図29のステップS7(ペン座標と受信時刻)等で使用される。
<ペンID制御データ保存部が保存するペンID制御データ>
次に、図17を用いて、ペンID制御データについて説明する。図17は、ペンID制御データ保存部36が保存するペンID制御データ901~904を説明する図である。ペンID制御データは手書き由来のデータの色などを制御する。図17では4つのペン2500があることを示す。4つは一例であり、1つ以上であればよい。
図17(a)の1行が1つのペンのペンID制御データを示す。また、図17(b)は表示装置2に対しユーザーが手書きする時の角度情報を説明する図である。角度情報は操作位置に相当し、ユーザーが存在する方向の角度とも言えるし、ペンが使用される方向の角度とも言えるし、ユーザーが手書きした文字の回転に関する角度とも言える。表示装置2の所定の方向(例えば天地方向)を0度(基準)として、各ユーザーの角度情報は反時計回りに45度、90度、135度、180度、225度、270度、315度、である。
なお、角度情報はユーザーの操作位置によって自動的に決まるわけではなく、各ユーザーが角度情報を設定する。設定方法には、後述する直線の入力による方法と、操作メニューを選択する方法がある。直線の入力による指定可能な角度情報の分解能(図17では45度)は一例に過ぎず、より小さい5度~30度などでもよい。ただし、45度くらいで回転した文字であれば、ユーザーは読めると考えられる。
ペンID制御データ901~904は、PenId、ColorId、Angle、FontName(フォント指定)、手書き認識候補オフ状態(RecommendMenuOff)、及びAccountIdを有することができる。PenId以外は任意である。AccountIdはユーザーがサインインに使用したペンについて対応付けられる。PenIdはペン2500のペン内部に保存されている識別情報である。ColorIdはこのペン2500を使用するユーザーが何色を選択したかを示す(ユーザーが任意に変更可能)。ColorIdには後述するカラー定義データのカラーIDが設定される。カラー定義データで各カラーの詳細(太さ等)が定義されている。
Angleはこのペン2500に設定されているストロークの角度情報である(ユーザーが任意に変更可能)。図17(a)の例では、各ペンの角度情報は反時計回りに0度、90度、180度、270度となっている。AccountIdはユーザーの識別情報である。ペンIDにAccountIdが対応付けられることで、ユーザーが使用するペン2500のペンIDに対応付けられているAccountIdを特定でき、ユーザー定義データを使用して操作コマンドを実行できる。
FontNameは、図21のペン色選択ボタンをユーザーが押下すると追加される。FontNameが追加されると、図35のステップS72における文字列オブジェクトフォント取得で、図9の定義済み制御データのフォントデータ405のFontStyleの代わりにFontNameが取得され、文字列オブジェクトはこのFontNameのフォントで表示される。
ペンID制御データ901はPenIdが1のペンID制御データで、色は黒(Black)、角度情報は0度、AccountId=1、FontNameなし、RecommendMenuOffなし、である。AccountId=1のユーザーは図15のユーザー定義データ717のユーザーである。このユーザーがPenId=1のペンでユーザー名などを手書きしてサインインし、黒を選択したことを示す。AccountIdがないペンID制御データはサインアウト状態(ユーザーと対応付けられていない)であることを示す。同様にペンID制御データ902は、PenIdが2のペンID制御データで、色は赤(Red)、角度は90度、AccountIdはなし、FontNameはポップ体、RecommendMenuOffはなし、である。
ペンID制御データ903には、手書き認識候補オフ状態(RecommendMenuOff)が設定されている。手書き認識候補オフ状態(RecommendMenuOff)は、操作ガイド500が文字列候補539を表示しないように制御するか(操作コマンドのみを表示)、又は、操作コマンドの候補510さえも表示しないように制御するための制御データである。後者の場合、操作ガイド500自体が表示されない。手書き認識候補オフ状態(RecommendMenuOff)はメニューのボタンの押下により設定される。図形など文字認識が必要ない手書きデータをユーザーが入力する場合、操作ガイド500を邪魔に感じるユーザーがいる場合もある。本実施形態では手書き認識候補オフ状態に制御できるため、操作ガイド500を非表示にできるし、表示装置2が文字認識しない場合には処理負荷を低減できる。ペンID制御データ903はPenIDが3、色は青(Blue)、角度は180度、AccountIdはなし、FontNameはなし、である。
ペンID制御データ904は、PenIdが4のペンID制御データで、色は緑(Green)、角度は270度、AccountIdはなし、FontNameはなし、RecommendMenuOffはなし、である。
ペンID制御データにRecommendMenuOff="True"が追加されている場合に、操作コマンドを表示しない制御を採用すると操作コマンドも実行されなくなるため、RecommendMenuOff="True"の解除を行うためには所定のボタン操作が必要になる。
また、図21のペン色選択ボタンをユーザーが押下したペン2500のペンID制御データは、そのボタンに定義されたColorId、Angle、FontName、及び、RecommendMenuOffで更新される。
ペンID制御データは、図29のステップS5(ペンID制御データ取得)、図31のステップS20(ペンID制御データの角度情報を保存)、図31のステップS21(ペンID制御データの角度情報を取得)、図33のステップS51(ペンID制御データの取得)で使用される。
<カラー定義データ>
図18は、カラー定義データの一例を示す。カラー定義データの1行が1つの色を定義する。カラー定義データは、ColorIdに対する白黒対応機器上の白黒強調表示(白黒のパターンと幅(Pattern)と縁取り(Edged)の表示方法)、及び、カラー変換方法(カラー対応機器上の色情報(Color)と幅(Width)の表示方法)を定義している。色情報は#と16進数8桁で表し、2桁ごとに#R(赤)、G(緑)、B(青)、A(透明度)を表し、pxはピクセル幅を表す。なお、カラー定義データは手書き由来のデータのみに適用される。
カラー定義データ1001はColorIdが"Black"の線種又は色の定義例である。カラー表示できない白黒強調対応装置では線種により色を表す。Patternはストローク又はテキストの縁の中身を表し、Edgedは縁の有無を表し、ColorはRGBAの色情報を表し、Widthは線幅を表す。カラー定義データ1001は、白黒強調対応装置ではベタ黒5ピクセル幅+縁なしで手書き入力保存データを表示し、カラー対応装置では黒の透明度0%+5ピクセル幅で表示することを示す。同様に、カラー定義データ1002はColorIdが"Red"の線種又は色の定義例であり、白黒強調対応装置では、ベタ黒3ピクセル幅+外側から黒縁1ピクセル幅+白縁2ピクセル幅で表示し、カラー対応装置では、カラーチャートの赤の透明度0%+5ピクセル幅で表示することを示す。カラー定義データ1003はColorIdが"Blue"の線種又は色の定義例であり、白黒強調対応装置では、ベタ白4ピクセル幅+黒縁1ピクセル幅で表示し、カラー対応装置では、カラーチャートの青の透明度0%+5ピクセル幅で表示することを示す。カラー定義データ1004はColorIdが"Green"の線種又は色の定義例であり、白黒強調対応装置では、黒のドットパターン4ピクセル幅+黒縁1ピクセル幅で表示し、カラー対応装置では、カラーチャートの緑の透明度0%+5ピクセル幅で表示することを示す。カラー定義データ1005はColorIdが"Magenta"の線種又は色の定義例であり、白黒強調対応装置では、黒の右上斜線パターンで白は透明の5ピクセル幅+フチなしで表示、カラー対応装置では、カラーチャートのマゼンタの透明度60%で表示することを示す。カラー定義データ1006はColorIdが"Cyan"の線種又は色の定義例であり、白黒強調対応装置では、黒の水平線パターンで白は透明の5ピクセル幅で表示し、カラー対応装置では、カラーチャートのシアンの透明度60%、で表示することを示す。
カラー定義データ1007はColorIdが"ThinBlack"の線種又は色を定義しており、白黒強調対応装置では、ベタ黒3ピクセル幅+縁なし、カラー対応装置では、黒の透明度0%+3ピクセル幅で表示することを示す。カラー定義データ1008はColorIdが"ThinRed"の線種又は色を定義しており、白黒強調対応装置では、ベタ黒1ピクセル幅+外側から黒縁1ピクセル幅+白縁1ピクセル幅、白黒強調対応装置では、カラーチャートの赤の透明度0%+3ピクセル幅で表示することを示す。カラー定義データ1009はColorIdが"ThinkBlue"の線種又は色を定義しており、白黒強調対応装置では、ベタ白2ピクセル幅+黒縁1ピクセル幅、カラー対応装置では、カラーチャートの青の透明度0%+3ピクセル幅で表示することを示す。カラー定義データ1010はColorIdが"ThinGreen"の線種又は色を定義しており、白黒強調対応装置では、黒のドットパターン2ピクセル幅+黒縁1ピクセル、カラー対応装置では、カラーチャートの緑の透明度0%+3ピクセル幅で表示することを示す。
このように、カラー定義データは白黒強調及びカラー変換可能データを有している。カラー定義データは手書き入力保存部25が保持しており、手書き入力保存データの変換に使用される。
カラー定義データをシステム定義データとユーザー定義データに定義しておき、ユーザー定義データにカラー定義データを変更するフォームを追加すれば、サインイン後にユーザーは個人好みのカラー定義に変更することができる。
図19は、図18のカラー定義データを使用して、白黒強調表示されたデータとカラー表示方法で表示されたデータを示す。図19(a)は白黒強調対応装置が白黒強調表示したもので、図19(b)はカラー対応装置がカラーに変換して表示したものである。作図の都合で、図19(b)も白黒(ハッチング)になっている。
符号C1は手書き由来の「黒」「赤」「青」緑」「マゼンタ」「シアン」のテキスト、符号C2は「黒」「赤」「緑」「マゼンタ」「シアン」のストローク(手書き)、符号C3はバネ状の一筆書きのストローク(手書き)、符号C4はドーナツ状のカラーチャート(画像)、符号C5はカラーチャートの内側のRGBCMY(手書き由来ではないテキスト)である。符号C3の下には手書き由来の黒の「Transparent」というテキストがある。
符号C4のカラーチャートと符号C5のRGBCMYというテキストはPDFファイル等から読み込まれたデータであり、手書き由来ではないものとする。従って、図16に示した手書き入力保存部25が保存する手書き入力保存データとして説明すると、符号C2のストローク(手書き)は図16の手書き入力保存データ801、802、符号C1の手書き由来のテキストは図16の手書き入力保存データ804,805、符号C5の手書き由来でないテキストは図16の手書き入力保存データ806、符号C4の画像は図16の手書き入力保存データ807のような手書き入力保存データとして保存される。各手書き入力保存データの色情報はColorIdで定義されている。
図19(a)と(b)を比較すると分かるように、図19(b)の符号C10のカラーチャート内側のテキスト「R」の赤は手書き由来ではないので、図19(a)ではグレースケールで表示されている。これに対し、符号C6のテキスト「赤」は手書き由来なので図19(a)では白黒強調表示される。
また、マゼンタとシアンは透過色であり、図19(b)では「Transparent」が透過して見えており、図19(a)でもマゼンタとシアンでは白が透明のパターンを使用しているため透過して表示される。このように、白黒強調対応装置では目立たせる目的のカラーを白黒強調表示することができ、カラーデバイスではカラーに変換して表示できるようになる。
カラー定義データは、手書き入力表示制御部23が保持しており、図29のステップS6(座標補完表示データ)、図35のステップS73(文字列オブジェクト表示データ)で使用される。
<ペン色選択ボタン定義データ>
次に、図20と図21を用いてユーザーによるペン色の選択方法を説明する。図20は、ペン色選択ボタン定義データの一例である。ペン色選択ボタン定義データは、ディスプレー220に表示されるペンボタンとColorIdを対応付けるデータである。ペン色選択ボタン定義データは、ペンボタンID(PenButtonId)、アイコンファイル(Icon)、カラーID(ColorId)、及び、フォント名(FontName)を有している。
図21は、ディスプレーに表示されるペン色選択ボタン81~86の一例である。ペン色選択ボタン81~86は上記アイコンファイルで表示される。ペン色選択ボタン81~86はペンボタンIDが若い順に左から右に並んで表示されているものとする。ペン色選択ボタン81~86をユーザーがペン2500で押下するとペンID制御データにColorIdとFontNameが追加され、以降そのペン2500で入力した手書きオブジェクト又は文字列オブジェクトはColorIdとFontNameを使用して表示される。
ペン色選択ボタン定義データ1101は最も左に表示されるペン色選択ボタン81の定義データである。ユーザーがペン色選択ボタン81をペン2500で押下すると、そのペン2500で手書きされるストロークデータはColorIdが"Black"になり、手書き認識後のテキストのフォントは明朝体となる。ペン色選択ボタン定義データ1102は左から2番目に表示されるペン色選択ボタン82で、ストロークデータのColorIdは"Red"、手書き認識後のテキストのフォントはポップ体となる。同様に、ペン色選択ボタン定義データ1103~1106は、ペン色選択ボタン83から86の、ボタンの表示位置、ColorId、テキストのフォントを定義する。
図21(a)はペン色選択ボタン定義データに基づいて白黒強調表示されたテキストフォント表示例を示す。テキストフォント表示例は説明のための表示であるが、ユーザーがペン2500をホバーさせると表示されてよい。図21(b)はペン色選択ボタン定義データに基づいてカラー対応装置でカラー表示されたテキストフォント表示例を示す(実際はカラーだが作図の都合上白黒となっている)。
図21(a)に示すように、白黒強調だけでなく、フォントを変更することで、より効果的に白黒強調表示することができるようになる。
ペン色選択ボタン定義データもシステム定義データとユーザー定義データに定義しておき、ユーザー定義データにペン色選択ボタン定義データを変更するフォームを追加すれば、手書きサイン認証後に個人好みのペン色選択ボタンに変更することができる。従って、ColorIdとフォントの対応は一例に過ぎない。
ペン色選択ボタンは、手書き入力表示制御部23が保持しており、図29のステップS6(座標補完表示データ)、図35のステップS73(文字列オブジェクト表示データ)で使用される。
<選択可能候補の表示例>
図22は操作ガイドと操作ガイドが表示する選択可能候補530の一例である。ユーザーが手書きオブジェクト504を手書きすることで(選択可能候補表示タイマーのタイムアウトにより)、操作ガイド500が表示される。操作ガイド500は、操作ヘッダー520、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508、及び、手書きオブジェクト矩形領域表示503を有している。選択可能候補530は、操作コマンドの候補510、手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508である。この例では言語変換文字列がないが表示される場合がある。また、操作コマンドの候補510を除く選択可能候補530を文字列候補539という。
操作ヘッダー520はボタン501、509、502、505を有する。ボタン501は予測変換と、「かな変換」の切り替え操作を受け付ける。図22の例ではユーザーが「予測」と表示されているボタン509を押下すると手書き入力部21がそれを受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が「かな」というボタン509に表示を変更する。手書きオブジェクト504の認識後は、文字列候補539が「かな変換」の確率降順で並ぶ。
ボタン502は候補表示のページ操作をする。図22の例では候補表示ページは3ページあり、現在は1ページ目を表示している。ボタン505は操作ガイド500の消去を受け付ける。ユーザーがボタン505を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きオブジェクト以外の表示を消去する。ボタン509は一括表示消去を受け付ける。ユーザーがボタン509を押下すると手書き入力部21が受け付けて手書き入力表示制御部23にその旨を通知し、表示部22が手書きオブジェクトを含め、図22に示されているすべての表示を消去して、ユーザーが最初から手書きをしなおすことを可能にする。
手書きオブジェクト504はユーザーが手書きした「ぎ」という文字である。手書きオブジェクト504を囲む手書きオブジェクト矩形領域表示503が表示される。表示の手順は図29~図35のシーケンス図で説明する。
手書き認識文字列候補506、変換文字列候補507、文字列/予測変換の候補508にはそれぞれの文字列候補が確率降順で並んでいる。手書き認識文字列候補506の「ぎ」は認識結果の候補である。この例では正しく「ぎ」を認識している。
変換文字列候補507は言語文字列候補から変換された変換文字列候補である。この例の「技量試」とは「技術量産試作」の略名である。文字列/予測変換の候補508は言語文字列候補又は変換文字列候補から変換された予測文字列候補である。この例では「技量試を決裁」と「議事録の送付先」が表示されている。
操作コマンドの候補510は図13(a)の操作コマンド定義データ701~703、709~716に基づいて選択された操作コマンドの候補である。図22の例では行頭文字の「》」511が操作コマンドの候補であることを示している。図22では手書きオブジェクト504である「ぎ」が選択する選択オブジェクトがなく、「ぎ」の文字列候補である「議事録」が、図13(a)の操作コマンド定義データ701,702と部分一致したため、操作コマンドの候補510として表示されている。
ユーザーが「議事録テンプレートを読み込む」を選択すると、操作コマンド定義データ701で定義された操作コマンドが実行され、「議事録フォルダーに保存する」を選択すると、操作コマンド定義データ702で定義された操作コマンドが実行される。このように操作コマンドの候補は、変換された文字列を含む操作コマンド定義データが見つかる場合に表示されるため、常に表示されるとは限らない。
図22に示すように、文字列候補と操作コマンドの候補が同時に(共に)表示されるため、ユーザーは自分が入力しようとした文字列候補と操作コマンドのどちらも任意に選択できる。
<角度情報の入力例>
次に、図23を用いて角度情報の入力方法を説明する。図23は、角度情報の入力方法を説明する図の一例である。図23では表示装置2の3時の方向に存在するユーザーが角度情報を入力する場合を説明する。3時の方向から手書きされた文字等は時計回りに90度回転されると正しく認識されるので、90度の角度情報が入力されるとよい。
図23(a)は、ペンID制御データの角度情報が0度(初期値)の状態で、表示装置2の3時の方向に存在するユーザーが「ぎ」を手書きしたため、操作ガイド500が表示された状態を示す。表示装置2は3時の方向から手書きした「ぎ」を、角度情報が0度のまま文字認識するため、期待とは違う選択可能候補530が表示されている。
角度情報を入力する場合、ユーザーは操作ガイド500内に、ユーザーから見て上から下方向に直線を手書きする。図23(b)はこの直線521の一例を示す。角度情報が0度である6時の方向とこの直線521との反時計回りのなす角αが角度情報である。すなわち、始点Sから6時の方向に下ろした直線522と、ユーザーが入力した直線521の反時計回りのなす角αが角度情報である。簡単には、直線521の終点方向が角度情報である。従って、図23(b)でユーザーが入力した角度情報は90度である。
なお、直線の検出には、例えば、始点Sから終点Eまでの座標を最小二乗法で直線に変換し、得られた相関係数と閾値を比較して直線か否かを判定する方法がある。
ユーザーが直線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制御データに角度情報を対応付けることができる。
なお、ユーザーが直線を手書きして角度情報を入力できるのは操作ガイド500に限られている。これにより、ユーザーが操作ガイド500以外で直線を手書きすると「1」や「一」などと認識され、操作ガイド500で直線を手書きすると角度情報を入力できる。すなわち、手書き認識制御部26は、所定範囲から直線を検出し、所定範囲外に手書きされたストロークデータをテキストデータに変換する。
図23(c)は、図23(b)の操作直後の操作ガイド500を示す。ペンID制御データには角度情報(Angle)として90度が設定されたので、手書きオブジェクト(ストロークデータ)が内部的に90度だけ時計回りに回転して手書き認識され、操作ガイド500は90度だけ反時計回りに回転して表示されている。なお、角度情報はメニューからユーザーが手動で入力してもよい。
<操作メニューの表示例>
続いて、図24を用いて表示位置に応じたデータ処理に関する情報を有する操作メニューについて説明する。図24は平置きされた表示装置2の上面図である。図24では図面の上側と下側にそれぞれユーザー250,251が存在して、二人のユーザーが下側と上側の二方向から同時に操作メニュー301,302を操作できる。ただし、ユーザーは一人でも支障はない。表示装置2は操作ボタン定義データに応じて操作メニューを表示する。操作メニューの数は想定されているユーザーの数と同じになる。
各操作メニュー301,302は、操作メニューの表示位置に応じたデータ処理に関する情報を有している。本実施形態では操作メニューの表示位置に応じた角度情報を有している。操作メニュー301,302のデザイン(アイコンの外観)は同じだが、操作メニューの表示位置に応じたデータ処理に関する情報を有する。
1つの操作メニュー301、302は、ユーザーがペン種選択やペン操作を行うペン操作パネル2001、2008、ユーザーがページ操作を行うページ操作パネル2002、2009、ユーザーがファイル名又はページの一覧表示を操作するページナビ操作パネル2003、2010、及び、ファイル名又はページ名の一覧表示からページ切り替えをするページナビ2004、2011を有している。それぞれ、ユーザーが使いやすいように、下側のユーザー用の操作メニュー301は画面下寄せ(ディスプレー220の下の縁に沿って配置され)、上側のユーザー用は画面上寄せ(ディスプレー220の上の縁に沿って配置され)に配置される。
下側のユーザー用の操作メニュー301は、ペン操作パネル2001、ページ操作パネル2002、ページナビ操作パネル2003、及び、ページナビ2004を有している。ページナビ2004はページナビウィンドウ領域2005を上から下方向に伸びていく。ページナビウィンドウ領域2005を単にページナビウィンドウと呼ぶ場合がある。
同様に、上側のユーザー用の操作メニュー302は、ペン操作パネル2008、ページ操作パネル2009、ページナビ操作パネル2010、及び、ページナビ2011を有している。ページナビ2011はページナビウィンドウ領域2012を上側のユーザーから見て上から下方向に伸びていく。
ディスプレー220の中央付近には、手書きオブジェクトや文字列オブジェクトが表示されている。手書きオブジェクト2006は下側のユーザーが黒ペン(ベタ黒)で書いたものであり、文字列オブジェクト2007は下側のユーザーが黒ペンで書いて認識された文字列であり、手書きオブジェクト2013は上側のユーザーが青ペン(ベタ白+黒縁)で書いた手書きデータである。
ペン操作パネル2001、2008、ページ操作パネル2002、2009、ページナビ操作パネル2003、2010、ページナビ2004、2011は、下側のユーザー用と上側のユーザー用の2つあるが、操作メニュー302に含まれる、上側のユーザー用のアイコン(ボタン)、ファイル名、及び、ページ名は180度回転した状態で表示される。この角度情報は予め操作ボタン定義データ(後述する)に設定されている。
操作メニュー301,302のボタン領域、ページナビ2004、2011のファイル名又はページ名のいずれかをユーザーがペン2500で押下すると、表示装置2は操作ボタン定義データに設定された角度情報をそのペン2500のペンID制御データに保存する。この角度情報がデータ処理に関する情報となる。
図25~図28の操作ボタン定義データに示すように、各ボタンにはボタンの識別子(ButtonId)、ボタンの表示位置(Position)、ボタンのアイコン画像(Icon)、ボタンの角度情報(Angle)、及び、押下時に表示装置2が実行するコマンド(Command)が定義されている。ユーザーがペン2500でボタン2101~2115を押下すると、表示装置2はそのボタンに定義された角度情報をそのペン2500のペンID制御データに保存し、そのボタンに定義されたコマンドを実行する。なお、ボタン2101~2115は左から順番に操作ボタン定義データのButtonId=1~15に対応しているものとする。
ボタン2101~2110に対応する操作ボタン定義データ2401~2410のコマンドは、図13の操作コマンド定義データ709~711、720~726と同じChangePenコマンドに、カラー定義データのColorIdを指定する。表示部22は最後に選択されたペンのボタンには枠260を表示して選択されたことがわかるようにする。
ボタン2111、2112に対応する操作ボタン定義データ2411,2412はUndo/Redoのコマンドを定義する。ボタン2111、2112(アンドゥー/リドゥー)はそれぞれUndo/Redoのコマンドの実行を受け付ける。Undoは一つ前の操作状態に戻すコマンド、RedoはUndoされた操作状態を一つ先に進めるコマンドである。
ボタン2113に対応する操作ボタン定義データ2413はEragePageのコマンドを定義する。ボタン2113(ページ消去)はEragePageのコマンドの実行を受け付ける。EragePageは現在ページに入力されたすべてのデータを消去して再表示する。
ボタン2114に対応する操作ボタン定義データ2414はSweepPageのコマンドを定義する。ボタン2114(スウィープボタン)はSweepPageのコマンドの実行を受け付ける。電子ペーパー等のディスプレイデバイスでは、高速描画モードでは消え残りが発生する。これを再表示して一掃する。
ボタン2115に対応する操作ボタン定義データ2415はToggleRecommendMenuのコマンドを定義する。ボタン2115(手書き認識候補オンオフ)はToggleRecommendMenuのコマンドの実行を受け付ける。ToggleRecommendMenuは手書き認識で得た文字列候補539の表示のオン及びオフを切り替える。この結果、オフ状態になった場合は、押下したペン2500のペンID制御データにRecommendMenuOff="True"が追加される。文字列候補539の表示がオンの状態では、文字列候補539がすべて表示されるが、オフの状態では、操作コマンドだけが表示される。操作コマンドがなければ選択可能候補全体が表示されないため、ユーザーが手書きに集中できるようになる。表示装置2がToggleRecommendMenuを実行すると、現在のオンオフ状態を返却するため、その状態に応じてアイコンを切り替える。
なお、ボタン2101~2110は図21のペン色選択ボタン81~86とは別のボタンを定義しており、ペン色選択ボタン81~86によりColorIdが重複して設定され得るので、その場合はボタン2101~2110の押下結果が優先してペンID制御データに設定される。
<動作手順>
以上の構成と図29~図35を用いて、表示装置2の動作について説明する。図29~図35は表示装置2が文字列候補と操作コマンドの候補を表示する処理を説明する一例のシーケンス図である。図29の処理は、表示装置2が起動すると(アプリケーションが起動すると)スタートする。
手書きデータの入力を開始する前に、ユーザーはペン操作パネル2001、2008のボタン2101~2110を選択済みである(PenIdが特定されている)。従って、
a.操作ボタン定義データでペンボタンID、ColorId及びAngleが特定され、
b.ペンID制御データにはPenId、ColorId及びAngleが登録されている。
S1:まず、手書き入力表示制御部23が手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域(手書きオブジェクトを保存するメモリー領域)を確保する。ユーザーがペンを手書き入力部21に接触させてから手書きオブジェクト領域を確保してもよい。
S2:次にユーザーが手書き入力部21にペンを接触させる。手書き入力部21はペンダウンを検出して手書き入力表示制御部23に送信する。
S3:手書き入力表示制御部23は手書き入力保存部25にストローク開始を送信し、手書き入力保存部25はストローク領域を確保する。
S4:ユーザーがペンを手書き入力部21に接触させたまま移動させると、手書き入力部21はペン座標を手書き入力表示制御部23に送信する。
S5:手書き入力表示制御部23は座標の入力と同時にペン2500から受信したペンIDを指定して、ペンID制御データ保存部36に保存されている現在のペンID制御データを取得する。ペンIDは座標の入力時に送信されるので、ストロークとペンIDが対応付けられる。ペンID制御データ保存部36はペンID制御データを手書き入力表示制御部23に送信する。なお、ユーザーがサインインしていないのでAccountIdはない。
S6:手書き入力表示制御部23はペン座標補完表示データ(離散的なペン座標を補間するデータ)を表示部22に送信する。表示部22はペン座標補完表示データでペン座標を補間し、ColorIdに基づいてカラー定義データから線種と太さを特定してストロークを表示する。
S7:手書き入力表示制御部23はペン座標、その受信時刻、ColorId及び角度情報を手書き入力保存部25に送信する。手書き入力保存部25はペン座標をストロークに追加する。ユーザーがペンを動かしている間は、手書き入力部21は定期的に手書き入力表示制御部23へのペン座標の送信を繰り返すため、ステップS4~S7の処理がペンアップされるまで繰り返される。
S8:ユーザーが手書き入力部21からペンを離すと、手書き入力部21はペンアップを手書き入力表示制御部23に送信する。
S9:手書き入力表示制御部23は手書き入力保存部25にストローク終了を送信し、手書き入力保存部25はストロークのペン座標を確定させる。ストロークのペン座標の確定により以降はストロークにペン座標を追加できなくなる。
S10:次に、手書き入力表示制御部23は手書きオブジェクト近傍矩形領域403に基づいて、手書きオブジェクト近傍矩形領域とストローク矩形領域の重なり状況取得を手書き入力保存部25に送信する。手書き入力保存部25は重なり状況を計算して重なり状況を手書き入力表示制御部23に送信する。
続く、ステップS11~S17は、手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合に実行される。
S11:手書きオブジェクト近傍矩形領域とストローク矩形領域が重なっていない場合、1つの手書きオブジェクトが確定するので、手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
S12~S14:手書き認識制御部26は保持データクリアをそれぞれ文字列変換制御部28、予測変換制御部30、操作コマンド認識制御部32に送信する。手書き認識制御部26、文字列変換制御部28、予測変換制御部30及び操作コマンド認識制御部32がこれまでに保持している文字列候補と操作コマンドの候補に係るデータをクリアする。なお、クリアの時点では最後に手書きされたストロークは手書きオブジェクトに追加されていない。
S15:手書き入力表示制御部23は手書きオブジェクト終了を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクトを確定させる。手書きオブジェクトの確定とは1つの手書きオブジェクトが完成したこと(これ以上、ストロークが追加されないこと)をいう。
S16:手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。次の手書きオブジェクトの手書きの開始(ペンダウン)に備えて、手書き入力保存部25は新しい手書きオブジェクト領域を確保する。
S17:次に手書き入力表示制御部23はステップS9で終了したストロークに関してストローク追加を手書き入力保存部25に送信する。ステップS11~S17が実行された場合、追加されるストロークは手書きオブジェクトの最初のストロークであり、手書き入力保存部25は開始中の手書きオブジェクトにストロークデータを追加する。ステップS11~S17が実行されてない場合、追加されるストロークはすでに手書き中の手書きオブジェクトに追加される。
S18:続いて手書き入力表示制御部23はストローク追加を手書き認識制御部26に送信する。手書き認識制御部26は文字列候補が格納されるストロークデータ保持領域(ストロークデータが一時的に格納される領域)にストロークデータを追加する。
S19:手書き認識制御部26はストロークデータ保持領域に対してジェスチャー手書き認識を実行する。ジェスチャー手書き認識とは、直線から角度情報を認識することをいう。なお、ジェスチャー手書き認識は操作ガイド500の内部で行われるため、手書き認識制御部26は操作ガイド500の内部の直線を検出する。操作ガイド500の位置情報は後述するステップS57で手書き認識制御部26に送信される。
S20:操作ガイド500内の直線が検出された場合、直線の始点から6時の方向に下ろした直線522と、ユーザーが入力した直線521の反時計回りのなす角αを、45度単位で決定する。そして、手書き認識制御部26は、決定した角度情報を直線521のストロークデータが有するペンIDに対応付けてペンID制御データ保存部36に保存する。なお、ステップS20は操作ガイド500内で直線が検出された場合に実行される。従って、ペン操作パネル2001,2008のボタン2101~2115の押下で決まったAngleに優先して別のAngleを設定することもできる。
S20-2:手書き認識制御部26は選択可能な候補表示矩形をクリアする。
S21:次に、手書き認識制御部26は、手書き入力部21から受信したペンIDを指定して、ペンID制御データ保存部36から現在のペンID制御データの角度情報を取得する。
S22:手書き認識制御部26は、ストロークデータ保持領域のストロークデータを取得した角度情報で時計回りに回転する。このように表示位置に応じたデータ処理に関する情報に応じてストロークデータを回転して文字認識できる。
S23:次に、手書き認識制御部26は通常の手書き認識の処理を行う。
S24:手書き認識制御部26はユーザーが手書きした手書き認識文字列候補を手書き認識辞書部27に送信する。手書き認識辞書部27は言語的に確からしい言語文字列候補を手書き認識制御部26に送信する。
なお、現在ペンID制御データに「RecommendMenuOff="True"」が設定されており、更に、操作コマンドも表示しない設定である場合、手書き認識制御部26はステップS24~S38の認識に関する制御を行わない。こうすることで、処理負荷を低減できる。
S25:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を文字列変換制御部28に送信する。
S26:文字列変換制御部28は手書き認識文字列候補及び言語文字列候補を文字列変換辞書部29に送信する。文字列変換辞書部29は変換文字列候補を文字列変換制御部28に送信する。
S27:文字列変換制御部28は受信した変換文字列候補を予測変換制御部30に送信する。
S28:予測変換制御部30は受信した変換文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
S29:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
S30:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
以降ステップS31~S38の操作コマンドの候補の送信まで同様に処理を行う。
S31:文字列変換制御部28は受信した変換文字列候補を操作コマンド認識制御部32に送信する。
S32:操作コマンド認識制御部32は受信した変換文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は変換文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S33:手書き認識制御部26は手書き認識文字列候補及び言語文字列候補を予測変換制御部30に送信する。
S34:予測変換制御部30は手書き認識文字列候補及び受信した言語文字列候補を予測変換辞書部31に送信する。予測変換辞書部31は予測文字列候補を予測変換制御部30に送信する。
S35:予測変換制御部30は受信した予測文字列候補を操作コマンド認識制御部32に送信する。
S36:操作コマンド認識制御部32は受信した予測文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は予測文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S37:手書き認識制御部26は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド認識制御部32に送信する。
S38:操作コマンド認識制御部32は手書き認識文字列候補及び受信した言語文字列候補を操作コマンド定義部33に送信する。操作コマンド定義部33は操作コマンドの候補を操作コマンド認識制御部32に送信する。これにより、操作コマンド認識制御部32は言語文字列候補と一致する文字列(String)を有する操作コマンド定義データに対応する操作コマンドの候補を取得できる。
S39:次に手書き認識制御部26はストローク追加を操作コマンド認識制御部32に送信する。
S40:操作コマンド認識制御部32は確定オブジェクトの位置情報取得を手書き入力保存部25に送信する。手書き入力保存部25は確定オブジェクトの位置情報を操作コマンド認識制御部32に送信する。
S41:操作コマンド認識制御部32は選択オブジェクトの判定のため、ステップS39のストローク追加で手書き認識制御部26から受信したストロークの位置情報と、手書き入力保存部25から受信した確定オブジェクトの位置情報が所定の関係にあるか否かを跨ぎ線判定条件406及び囲み線判定条件407に基づいて判定し、選択されていると判定できる確定オブジェクトを選択オブジェクトとして保存しておく。また、この場合、選択オブジェクトが特定されるので選択オブジェクトがある場合の操作コマンドの候補を操作コマンド定義部33から取得する。
また、手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はそれぞれ手書き認識文字列候補、言語文字列候補、変換文字列候補、予測文字列候補、操作コマンドの候補、及び、選択オブジェクトに係るデータを後段のステップS46~S49で取得できるよう保持しておく。
S18-2:手書き入力表示制御部23はステップS18でストローク追加を手書き認識制御部26に送信した直後、選択可能候補表示タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。
続く、ステップS42~S44は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生した場合に実行される。
S42:タイマーがタイムアウトする前に、ユーザーが手書き入力部21にペンを接触させた場合、手書き入力部21はペンダウン(ステップS2と同じイベント)を手書き入力表示制御部23に送信する。
S43:手書き入力表示制御部23はストローク開始(ステップS3と同じ)を手書き入力保存部25に送信する。この後のシーケンスはステップS3以降と同じである。
S44:更に手書き入力表示制御部23は選択可能候補表示タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はタイマーを停止させる。ペンダウンが検出されたのでタイマーが不要になるからである。
ステップS45~S78は一定時間が経過する前に(タイマーがタイムアウトする前に)ペンダウンが発生しない場合に実行される。従って、図22に示した操作ガイド500が表示される。
S45:選択可能候補表示タイマー開始中にユーザーが手書き入力部21にペンを接触させなかった場合、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
S46:手書き入力表示制御部23は手書き認識文字列/言語文字列候補取得を手書き認識制御部26に送信する。手書き認識制御部26は現在保持している手書き認識文字列/言語文字列候補を手書き入力表示制御部23に送信する。
S47:手書き入力表示制御部23は変換文字列候補取得を文字列変換制御部28に送信する。文字列変換制御部28は現在保持している変換文字列候補を手書き入力表示制御部23に送信する。
S48:手書き入力表示制御部23は予測文字列候補取得を予測変換制御部30に送信する。予測変換制御部30は現在保持している予測文字列候補を手書き入力表示制御部23に送信する。
S49:手書き入力表示制御部23は操作コマンドの候補取得を操作コマンド認識制御部32に送信する。操作コマンド認識制御部32は現在保持している操作コマンドの候補と選択オブジェクトを手書き入力表示制御部23に送信する。
S50:更に、手書き入力表示制御部23は推定書字方向取得を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト矩形領域のストローク追加時間と水平距離と垂直距離から判定して、推定書字方向を手書き入力表示制御部23に送信する。
S51:次に、手書き入力表示制御部23は、手書き入力部21から受信したペンIDを指定して、ペンID制御データ保存部36から現在のペンID制御データのColorId、AccountId(ない場合もある)及びAngleを取得する。
S52: 手書き入力表示制御部23は、ユーザーが使用しているペン2500のペンID制御データに「RecommendMenuOff="True"」が設定されているか否かを判断し、「RecommendMenuOff="True"」の場合は文字列候補539を表示しない。この場合、操作コマンドのみを表示するが、操作コマンドも表示しないようにしてもよい。「RecommendMenuOff="False"」の場合、手書き入力表示制御部23はこれらの手書き認識文字列候補(図22では「ぎ」)、言語文字列候補(図22では表示がないが例えば「議」)、変換文字列候補(図22では「議事録」「技量試」)、予測文字列候補(図22では「技量試を決済」「議事録の送付先」)、操作コマンドの候補(図22では「議事録テンプレートを読み込む」「議事録フォルダーに保存する)、各選択確率、及び、推定書字方向から図22のような選択可能候補表示データを作成する。また、手書き入力表示制御部23はステップS51で取得したAngleで選択可能候補表示データ(操作ガイド500)を反時計回りに回転させ、回転後の選択可能候補表示データ(操作ガイド500)を表示部22に送信することで表示させる。
S53:また、手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ(矩形枠)(図22では手書きオブジェクト矩形領域表示503)を、ステップS51で取得した角度情報で反時計回りに回転させ、表示部22に送信することで表示させる。
S54:手書き入力表示制御部23は選択可能候補表示データの表示から一定時間後に消去するため選択可能候補消去タイマー開始を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを開始する。「RecommendMenuOff="True"」であるため操作コマンドも含め操作ガイド500が表示されない場合は、選択可能候補消去タイマー開始を行わない。
ステップS55~S60は、選択可能候補消去タイマー開始中に、ユーザーが表示部22に表示された選択可能候補表示を消去したか、手書きオブジェクトの変化が発生した場合(即ち手書きオブジェクトのストロークの追加、削除、移動、変形又は分割された場合)、又は、タイムアウトまでに候補が選択されなかった場合に実行される。
更に、ステップS55~S57は、候補表示が消去されるか、又は、手書きオブジェクトの変化が発生した場合に実行される。
S55:手書き入力部21は選択可能候補表示消去又は手書きオブジェクトの変化の発生を手書き入力表示制御部23に送信する。
S56:手書き入力表示制御部23は選択可能候補消去タイマー停止を送信する。候補表示タイマー制御部24はそのタイマーを停止する。一定時間内に手書きオブジェクトに対し操作があったためタイマーが不要になるからである。
S57:手書き入力表示制御部23は、ステップS19のジェスチャー手書き認識のジェスチャー判定で使用できるよう、操作ガイド500の位置情報を手書き認識制御部26に保存する。位置情報は例えば左上コーナーと右下コーナーの座標又はこれと同等の座標である。これにより、手書き認識制御部26は角度情報の入力に使用される直線が操作ガイド500内かどうかを判定できる。
S59:手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで、表示を消去させる。「RecommendMenuOff="True"」の場合、操作コマンドのみを消去するか、又は、何も消去する必要がない。
S60:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで、表示を消去させる。従って、操作コマンド候補が選択される以外の条件で、操作コマンド候補の表示を消去した場合、手書きオブジェクトはそのまま表示が維持される。
S58:一方、選択可能候補消去タイマー開始中に、選択可能候補表示消去又は手書きオブジェクトの変化が発生しなかった場合(ユーザーがペン操作をしなかった場合は)、候補表示タイマー制御部24はタイムアウトを手書き入力表示制御部23に送信する。
選択可能候補消去タイマーのタイムアウトの後も同様に、手書き入力表示制御部23はステップS59とS60を実行する。一定時間の経過で選択可能候補表示データ、手書きオブジェクトと選択オブジェクトの矩形領域表示データを消去してよいためである。
選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、ステップS61~S78が実行される。
S61:選択可能候補消去タイマー開始中に、ユーザーが選択可能候補を選択した場合、手書き入力部21は文字列候補又は操作コマンドの候補選択を手書き入力表示制御部23に送信する。
S62:手書き入力表示制御部23は選択可能候補消去タイマー停止を候補表示タイマー制御部24に送信する。候補表示タイマー制御部24はこのタイマーを停止する。
S63:次に手書き入力表示制御部23は保持データクリアを手書き認識制御部26に送信する。
S64:手書き認識制御部26は保持データクリアを文字列変換制御部28に送信する。
S65:手書き認識制御部26は保持データクリアを予測変換制御部30に送信する。
S66:手書き認識制御部26は保持データクリアを操作コマンド認識制御部32に送信する。手書き認識制御部26、文字列変換制御部28、予測変換制御部30、及び、操作コマンド認識制御部32はこれまで保持していた文字列候補及び操作コマンドの候補に係るデータをクリアする。
S67:次に手書き入力表示制御部23は選択可能候補表示データ消去を表示部22に送信することで表示を消去させる。
S68:手書き入力表示制御部23は手書きオブジェクトと選択オブジェクトの矩形領域表示データ消去を表示部22に送信することで表示を消去させる。
S69:手書き入力表示制御部23は手書きオブジェクト表示データ消去及びステップS6で送信したペン座標補完表示データ消去を表示部22に送信することで表示を消去させる。文字列候補又は操作コマンドの候補が選択されたため、手書きオブジェクト等が不要になるためである。
S70:手書き入力表示制御部23は手書きオブジェクト削除を手書き入力保存部25に送信する。
文字列候補が選択された場合、ステップS71~S73が実行される。
S71:文字列候補が選択された場合、手書き入力表示制御部23は文字列オブジェクト追加を手書き入力保存部25に送信する。
S72:更に手書き入力表示制御部23は文字列オブジェクトフォント取得を手書き入力保存部25に送信する。手書き入力保存部25はペンID制御データのPenIdに対応付けられた文字列オブジェクトのフォント名をペン色選択ボタン定義データから特定し、また、手書きオブジェクトの推定文字サイズを手書き入力表示制御部23に送信する。
S73:次に手書き入力表示制御部23は手書き入力保存部25から受信した定義済みフォントを使用して、手書きオブジェクトと同じ位置に表示させる文字列オブジェクト表示データを表示部22に送信させることで、表示させる。手書き入力表示制御部23はペンID制御データのColorIdに基づいてカラー定義データから線種と太さを特定し、角度情報で回転させたテキスト(文字列オブジェクト)を表示する。従って、ユーザーの操作位置から見て上下方向を天地とする文字列オブジェクトを表示できる。
操作コマンドの候補が選択された場合、ステップS74~S76が実行される。
S74:選択オブジェクトへの操作コマンドの候補が選択された場合(選択オブジェクトが存在する場合)は、手書き入力表示制御部23は選択オブジェクト表示データ消去を表示部22に送信することで表示を消去させる。いったん、元の選択オブジェクトを消去するためである。
S75:次に、手書き入力表示制御部23は選択オブジェクトへの操作コマンド実行を手書き入力保存部25に送信する。手書き入力保存部25は新しい選択オブジェクトの表示データ(編集又は修飾後の表示データ)を手書き入力表示制御部23に送信する。
S76:次に手書き入力表示制御部23は選択オブジェクト表示データを表示部22に送信することで、操作コマンド実行後の選択オブジェクトを再表示させる。
S77:ユーザーがマニュアルで角度情報を入力した場合は、手書き入力表示制御部23は受け付けた角度情報を、回転操作ボタン511の押下時にペン2500から受信したペンIDに対応付けてペンID制御データ保存部36に保存する。
S78:次の手書きオブジェクトのために手書き入力表示制御部23は手書きオブジェクト開始を手書き入力保存部25に送信する。手書き入力保存部25は手書きオブジェクト領域を確保する。これ以降、ステップS2~S78の処理が繰り返される。
<ペンID音声制御ニューの表示>
以下では、シーケンス図で説明しきれなかった処理の詳細を説明する。
図36を用いてペン操作パネル2001、2008のボタン2101~2115が選択された場合を説明する。図36はペン操作パネルのボタン2101~2115が押下された場合の処理を説明するフローチャート図の一例である。
まず、手書き入力部21がボタン2101~2115のいずれか1つの選択を受け付ける(S301)。ここではボタン2101が押下されたものとする。ペン2500がタッチした座標は手書き入力部21が検出しており、ボタン2101~2115は操作ボタン定義データ2401~2415に登録されているため、押下されたボタン2101が特定される。
次に、手書き入力表示制御部23は押下されたボタン2101に対応する操作ボタン定義データ2401の「ChangePen ThinBlack」を実行するので、手書き入力表示制御部23はペンID制御データにユーザーが使用しているペン2500のPenIdとColorId="ThinBlack"を設定する(S302)。
また、手書き入力表示制御部23は押下されたボタン2101に対応する操作ボタン定義データ2401の「Angle」をペンID制御データに設定する(S303)。
ペンID制御データにペンの色が設定されたので、手書きオブジェクトと文字列オブジェクトを表示部22がディスプレー220に表示する場合、カラー定義データで定義された線種で表示できる。また、角度(Angle)がペンID制御データに設定されたので、手書きデータを回転させてから文字認識することができる。
なお、図36ではペン操作パネル2001、2008のボタンを例にして説明したが、ページ操作パネル2002、2009、ページナビ操作パネル2003、2010、及び、ページナビ2004、2011のいずれが押下されてもペンID制御データにPenId、Angleを設定できる。
<音響デバイスの制御>
<<ペンIDに対応づけられているAngleを利用>>
続いて、図37を参照して、音響デバイスの制御について説明する。まず、図37はペンIDに対応づけられているAngleに基づいて音響デバイス制御部71が音響デバイスを制御する手順を示すフローチャート図の一例である。図37の処理は、音響デバイス制御部71がペンアップ又はペンダウンを手書き入力表示制御部23から受信するとスタートする。
ペンダウン又はペンアップのどちらかを受信すると、障害物検出部73は手書き入力表示制御部23からペンアップ又はペンダウンしたペンのAngleを受信する(S501)。Angleはこのペン2500のペンID制御データに登録されている。
次に、障害物検出部73は予め登録されているAngleと辺の対応に基づいて、Angleをユーザーの位置情報に変換する(S502)。例えば、0度=A辺、90度=B辺、180度=C辺、270度=D辺のように変換する。
障害物検出部73はペンダウン又はペンアップのどちらかを手書き入力表示制御部23から受信したか否かを判断する(S503)。
ペンダウンを受信した場合、障害物検出部73は筆記しているペンのAngleを記録する(S504)。
ペンアップを受信した場合、障害物検出部73は記録してあるペンのAngleを削除する(S505)。
障害物検出部73は、記録しているAngleに基づいて筆記しているユーザーの人数をカウントし、ユーザーが三人以下かどうかを判断する(S506)。
ユーザーが三人以下の場合、利得制御部72はユーザーが存在する辺の音響デバイスをOFFにするか、又は、ゲインを低下させる(S507)。すでにゲインを低下させている音響デバイスについてはそのままでよい。
また、利得制御部72はユーザーが存在しない辺の音響デバイスのゲインを増加させる(S508)。すでにゲインを増加させている音響デバイスについてはそのままでよい。 すなわち、ペン2500から受信したペンIDに基づいて決定した辺以外の辺に配置されている音響デバイスのゲインを利得制御部72が増大させる。
ユーザーが四人の場合(全ての辺にユーザーがいる場合)、障害物検出部73は全ての辺の音響デバイスをOFFにするか、又は、ゲインを低下させる(S509)。
また、障害物検出部73は音声の状態が低下した旨を表示し、遠隔会議を行っている場合はネットワークを介して音声の状態が低下した旨を送信する(S510)。
このような制御により、障害物による、音圧低下、音のひずみ、ノイズ混入、エコーキャンセラーの性能劣化を防ぐことができる。
<<収納部センサーが検出する装着状態を利用>>
続いて、図38を用いてペン2500を収容するペンの収容部について説明する。図38はペンの収容部の配置例を説明する図である。図38では、机に表示装置2が平置き設置(水平上向き設置)されている場合のペンの収容部の配置例を示す。なお、ディスプレー220には図24と同様の手書きデータ等が表示されている。
表示装置2は下側のユーザー用のペンの収容部2603、2604を有している。ペンの収容部2603は配置例1、ペンの収容部2604は配置例2である。つまり、どちらか一方のペンの収容部があればよいが両方のペンの収容部があってもよい。また、表示装置2は上側のユーザー用のペンの収容部2612、2613を有している。ペンの収容部2612は配置例1、ペンの収容部2613は配置例2である。
各ペンの収容部2603、2612は、操作メニューが沿って表示されているディスプレー220の縁からペンを取り出し可能であり、各ペンの収容部2604、2613は、該縁と平行にペン2500を収納する。
配置例1も配置例2も下側のユーザー又は上側のユーザーから使いやすい位置にあり、かつ下側のユーザー又は上側のユーザーの操作メニュー301,302から近い位置にあるため、無意識に操作メニュー301,302を使って表示位置に応じたデータ処理に関する情報(角度情報)が自動的にペンID制御データに設定される可能性が高い。
一度、表示位置に応じたデータ処理に関する情報(角度)がペンID制御データに設定されると、次回の起動後も有効なため、ユーザーはペン2500をペンの収容部から取り出して操作メニュー301,302を使うことなく手書きを始めてもすでに表示位置に応じたデータ処理に関する情報はペンID制御データに設定済みのため、あたかも下側のユーザー又は上側のユーザーの専用ペンであるかの如く使うことができる。
図39は収納部センサーが検出するペンの装着状態に基づいて音響デバイス制御部71が音響デバイスを制御する手順を示すフローチャート図の一例である。図39の処理は、表示装置2の起動時又は割り込みにより装着状態の変化が検出された場合にスタートする。
まず、障害物検出部73は各辺のペンの装着状態を各装着状態検出部75a~75dから取得する(S601)。収納部センサー228から割り込みが検出された場合も、各装着状態検出部75a~75dから装着状態を取得する。
障害物検出部73は、ペンの装着状態に基づいてユーザーの人数をカウントし、ユーザーが三人以下かどうかを判断する(S602)。
ユーザーが三人以下の場合、利得制御部72はユーザーが存在する辺(ペン2500が装着されていない辺)の音響デバイスをOFFにするか、又は、ゲインを低下させる(S603)。すでにゲインを低下させている音響デバイスについてはそのままでよい。このように、利得制御部72は、ペン2500が装着されていないことが検出された収納部がある辺に配置されている音響デバイスを制御する。
また、利得制御部72はユーザーが存在しない辺(ペン2500が装着されている辺)の音響デバイスのゲインを増加させる(S604)。すでにゲインを増加させている音響デバイスについてはそのままでよい。このように、利得制御部72は、ペン2500が装着されていることが検出された収納部がある辺に配置されている音響デバイスを制御する。換言すると、ペン2500が装着されていないことを装着状態検出手段75が検出した収納部がある辺以外の辺に配置されている音響デバイスを利得制御部72が制御する。なお、ペンでなくユーザのスマートリングなどのデバイスがONされている場合、装着状態検出手段75では、予めデバイスに対応付けられている辺にユーザがいると判断する。
ユーザーが四人の場合、利得制御部72は全ての辺の音響デバイスをOFFにするか、又は、ゲインを低下させる(S605)。
また、障害物検出部73は音声の状態が低下した旨を表示し、遠隔会議を行っている場合はネットワークを介して音声の状態が低下した旨を送信する(S606)。
このような制御により、障害物による、音圧低下、音のひずみ、ノイズ混入、エコーキャンセラーの性能劣化を防ぐことができる。
<<インパルス応答による障害物の検出結果を利用>>
続いて、図40,図41を参照して、インパルス応答の測定による音響デバイスの制御について説明する。
図40はインパルス応答で障害物が監視される空間の一例を示す。図40では音響デバイス制御部71が、各辺ごとに、インパルス応答測定部60(インパルス音声信号出力部61、インパルス応答演算部62)、及び、物体移動情報検出部63を有している。
インパルス応答演算部62は部屋11内の音波に関する2点間のインパルス応答を測定する。つまりインパルス音声信号出力部61が出力する音源信号x(k)で部屋11の一側部に設けられたスピーカー219が駆動され、スピーカー219から音波が部屋11へ放射され、部屋11からの音波がスピーカー219と同一側に設けられたマイク221で収音され、その出力y(k)と音源信号x(k)とがインパルス応答演算部62へ供給される。
スピーカー219から放射された音波は、回折効果などにより障害物14の向こう側(図の左側)にも伝搬する。この時、物体13に達した音波は、物体13による散乱や反射などの影響を受ける。その後、音波は障害物14に対しスピーカー219と反対側(図の左側)の壁面などで反射されて再度部屋11の右側、つまりスピーカー219、マイク221側に伝搬し、マイク221で受音される。ここで重要なことは、物体13の位置によって、物体13により音波に与える影響が異なる。従って、図の左側から戻って来る音波を継続的に観測すると、物体13が移動した場合には音波の戻り方が異なる。このことを利用して、物体の移動情報を検出することが可能である。しかし、実際には左側から戻ってくる音波のみを選別して観測することはできない。そこで、インパルス応答演算部62において、スピーカー219からマイク221までの音響的なインパルス応答を測定する。インパルス応答の具体的測定手段は、例えば非特許文献1に記載されている。
インパルス応答は部屋11内全体の音響伝達特性を表しているので、物体13が移動した場合には、その物体13がスピーカー219、マイク221に対し障害物14の向こう側にあったとしても、インパルス応答が変化することが予測される。インパルス応答の変化は、物体が移動した結果、それまで物体のあった場所では音波が物体の影響を受けなくなり、また新たに物体が移動した場所では音波が物体の影響を受けるようになることで生じる。つまり、物体が移動したことによるインパルス応答の変化はスピーカー219から移動物体13に達した後にマイク221に到達する。従って、物体13が移動したことによるインパルス応答の変化は、スピーカー219から移動物体13まで、そして、移動物体13からマイク221までの距離を音波が最短経路で伝搬する時間に相当する時間遅れの後に大きな振幅を持つ。この遅れ時間のことをこの明細書では「最短到達時間」と呼ぶことにする。
図40(b)は物体13の移動によるインパルス応答の変化(異なる2つの時刻で測定したインパルス応答の差分)の模式図であるが、この波形のなかで大きな変化がある最も早い時刻が最短到達時間である。
図40(c)にこの最短到達時間から移動物体13の位置を推定する簡単な例を示す。L字状に曲った通路64の一端部にスピーカー219、マイク221が設けられ、移動物体13がスピーカー219に対し通路64の曲った先に位置している。スピーカー219から出て、移動物体13で折り返してマイク221に至る矢印の付いた破線は音波の伝搬経路を示している。この図に示すように、スピーカー219とマイク221との間隔より移動物体13までの距離が十分大きければ、スピーカー219、マイク221から移動物体13までの距離は、最短到達時間に音速を乗じた距離の約半分と推定される。
図40(c)ではスピーカー219、マイク221が通路64の片方の端に配置されているので、物体移動情報検出部63は1つの最短到達時間から移動物体の位置が特定可能となる。物体移動情報検出部63は物体の有無を利得制御部72に通知する。
スピーカー219、マイク221、移動物体13が3次元に任意に配置されている場合は複数のマイクロホンを用いることで物体の位置または方向が推定可能である。最短到達時間はマイクロホンごとに異なり、例えば、移動物体に近いマイクロホンは、移動物体から遠いマイクロホンに比べて最短到達時間が短い。このような最短到達時間の差からソナー、レーダー等の分野で知られている方法により移動物体の位置、方向の推定が可能である。また、時間間隔をおいて移動物体の位置を検出して、位置の変化を測定することで、移動物体の移動速度や移動方向を検出することができる。
なお、音波を物体に当て、その反射波から物体の位置を推定するというソナーの原理をそのまま室内のような反射音の多い環境で用いても、室内の他の多数の反射音に物体からの反射音が埋もれてしまい、物体の位置の推定は困難である。例えば、図40(c)におけるインパルス応答では移動物体からの反射音が、通路、壁面からの多数の反射音に埋もれている。しかし、本実施形態では、壁面等の反射音は時間的に変化しないことに着目し、インパルス応答の時間変化を利用することで移動物体の方向または位置の推定が可能となった。静止物体の場合は、物体移動情報検出部63が最短到達時間を閾値と比較することで物体を検出できる。
図41(a)にインパルス応答測定部60として音響エコーキャンセラー51を用いた例を示す。よく知られているように、音響エコーキャンセラー51は、スピーカー219に会議識別から送出された音がマイク221で受音されてハウリングなどの問題が発生することを防止する装置である。音響エコーキャンセラー51の動作は、スピーカー219とマイク221の間のインパルス応答をインパルス応答推定部53で推定し、推定されたインパルス応答を持つフィルタとスピーカー219の音源信号x(k)とを、畳み込み部52で畳み込み演算して疑似エコーy(k)を合成し、これをマイク221の出力y(k)から引算することで、スピーカー219から出てマイク221で受音された信号(音響エコー)を消去するものである。音響エコーキャンセラー51におけるインパルス応答の推定は適応アルゴリズムを用いるのが通例である。適応アルゴリズムとは、ディジタル化された音源信号x(k)と残留エコーeを利用して、各サンプル時間毎に逐次的にインパルス応答を推定するアルゴリズムであって、学習同定法、LMS法などが代表例として知られている。音響エコーキャンセラー51の詳細については、特許文献2などに詳しい。
図41(a)のような構成において、音源信号x(k)を入力し、音響エコーキャンセラー51を動作させる。音源信号x(k)としては、周波数帯域の広い定常信号(例えば白色雑音や疑似音声)が望ましいが、楽音や音声信号などの信号であってもよい。音響エコーキャンセラー51の動作開始後、適応アルゴリズムが収束するのに要する時間(通常は数秒程度)が経過した後には、インパルス応答推定部53にはインパルス応答が良好に推定されていると考えられる。そして、サンプル時間毎に、インパルス応答の推定値は更新される。言い換えると、継続的なインパルス応答の測定(推定)が行われる。そして推定されたインパルス応答は、物体移動情報検出部63に転送される。物体移動情報検出部63では、時刻kに推定されたインパルス応答h(k)={h(k)0,h(k)1,h(k)2,…}と、mサンプル分の時間過去に推定されたインパルス応答h(k-m)との差分波形Δh(k,m)を計算する。
Δh(k,m)=h(k)-h(k-m) ……(1)
次に、Δh(k,m)の包絡線、又は短時間パワー波形を求める。例えば、図40(b)に示す波形をΔh(k,m)とすると、その短時間パワーは図41(b)に示す波形になる。包絡線、又は時間パワー波形が予め定められたしきい値TΔを最初に越えた時刻t0を求める。そして、このt0に音速cを乗ずることで、「音源(スピーカー219)-移動物体13-マイク221」の音響伝搬経路長が求められ、前述した原理で図40(c)に示しているような移動物体13の位置が検出される。
一方、インパルス応答の変動量の検出には、音響エコーキャンセラー51で得られる残留エコーe(k)を利用することも可能である。スピーカー219とマイク221の間のインパルス応答は、通常、物体13の移動に伴って急激に変化する。しかし、音響エコーキャンセラー51で推定されるインパルス応答は、急激な変化に追従できず、推定の遅れを生じる。言い換えると、実際のインパルス応答がhaからhbに変化した直後には、音響エコーキャンセラー51のインパルス応答推定値は変化前のhaの値に留まっている。従って、疑似エコーy′(k)、音響エコーy(k)は、それぞれ入力信号x(k)との畳み込みとして、
y'(k)=x(k)*ha ……(2)
y(k)=x(k)*hb ……(3)
と表される。ただし、*は畳み込み演算を表す。
これより、残留エコーe(k)は
e(k)=y(k)-y'(k)=x(k)*(hb-ha) ……(4)
と表される。(4)式より、残留エコーe(k)は、インパルス応答の変化量(hb-ha)を反映した量であることがわかる。
図42はインパルス応答によりユーザーを検出して、音響デバイス制御部71が音響デバイスを制御する手順を示すフローチャート図の一例である。図42の処理は、表示装置2の起動時に実行され、更に、周期的に繰り返して実行されてよい。
音響デバイス制御部71はインパルス応答により各辺のユーザーを検出する(S701)。音響デバイス制御部71は、ユーザーの人数をカウントし、ユーザーが三人以下かどうかを判断する(S702)。以降の処理は、図39と同様でよい。
このように表示装置2はインパルス応答によっても各辺のユーザーを検出し、障害物による、音圧低下、音のひずみ、ノイズ混入、エコーキャンセラーの性能劣化を防ぐことができる。
<主な効果>
以上説明したように、本実施形態の表示装置2は、ユーザーが存在する表示装置2の辺にある音響デバイスをOFFにする又はゲインを下げることにより、障害物による、音圧低下、音のひずみ、ノイズ混入、及び、エコーキャンセラーの性能劣化を防ぐことができる。
実施例1では表示装置2が大型のタッチパネルを有するものとして説明されているが、表示装置はタッチパネルを有するものに限られない。本実施例ではプロジェクター型の表示装置について説明する。
<<表示装置の構成の別の例1>>
図43は、表示装置の他の構成例を示す図である。図43では、通常のホワイトボード413の上辺にプロジェクター411が設置されている。このプロジェクター411が表示装置に相当する。通常のホワイトボード413とは、タッチパネルと一体のフラットパネルディスプレーではなく、ユーザーがマーカーで直接、手書きするホワイトボードである。なお、ホワイトボードは黒板でもよく、映像を投影するだけの広さの平面であればよい。
プロジェクター411は超短焦点の光学系を有しており、10cm程度から歪みの少ない映像をホワイトボード413に投影できる。この映像は、無線又は有線で接続されたPC400ー1から送信されてもよいし、プロジェクター411が記憶していてもよい。
ユーザーは専用の電子ペン2700を使ってホワイトボード413に手書きする。電子ペン2700は、ユーザーが手書きのためにホワイトボード413に押しつけるとスイッチがONになり発光する発光部を例えば先端部に有している。光の波長は近赤外や赤外なのでユーザーの目には見えない。プロジェクター411はカメラを有しており、発光部を撮像して画像を解析し電子ペン2700の方向を特定する。また、電子ペン2700は発光と共に音波を発信しており、プロジェクター411は音波の到達時間により距離を算出する。方向と距離により電子ペン2700の位置を特定できる。電子ペン2700の位置にはストロークが描画(投影)される。
プロジェクター411はメニュー430を投影するので、ユーザーが電子ペン2700でボタンを押下すると、プロジェクター411が電子ペン2700の位置とスイッチのON信号により押下されたボタンを特定する。例えば、保存ボタン431が押下されると、ユーザーが手書きしたストローク(座標の集合)がプロジェクター411で保存される。プロジェクター411は、予め定められたサーバー412又はUSBメモリー2600等に手書き情報を保存する。手書き情報はページごとに保存されている。画像データではなく座標のまま保存されるので、ユーザーが再編集することができる。ただし、本実施形態では操作コマンドを手書きで呼び出せるのでメニュー430は表示されなくてもよい。
<<表示装置の構成の別の例2>>
図44は、表示装置2の他の構成例を示す図である。図44の例では、表示装置2として、端末装置600、画像投影装置700A、及び、ペン動作検出装置810を有する。
端末装置600は、画像投影装置700A及びペン動作検出装置810と有線で接続されている。画像投影装置700Aは、端末装置600により入力された画像データをスクリーン800に投影させる。
ペン動作検出装置810は、電子ペン820と通信を行っており、スクリーン800の近傍における電子ペン820の動作を検出する。具体的には、電子ペン820は、スクリーン800上において、電子ペン820が示している点を示す座標情報を検出し、端末装置600へ送信する。
端末装置600は、ペン動作検出装置810から受信した座標情報に基づき、電子ペン820によって入力されるストローク画像の画像データを生成し、画像投影装置700Aによってストローク画像をスクリーン800に描画させる。
また、端末装置600は、画像投影装置700Aに投影させている背景画像と、電子ペン820によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
<<表示装置の構成の別の例3>>
図45は、表示装置の構成例を示す図である。図45の例では、表示装置として、端末装置600とディスプレー800Aと、ペン動作検出装置810とを有する。
ペン動作検出装置810は、ディスプレー800Aの近傍に配置され、ディスプレー800A上に、電子ペン820Aが示している点を示す座標情報を検出し、端末装置600へ送信する。なお、図45の例では、電子ペン820Aは、端末装置600によってUSBコネクタを介して充電されても良い。
端末装置600は、ペン動作検出装置810から受信した座標情報に基づき、電子ペン820Aによって入力されるストローク画像の画像データを生成し、ディスプレー800Aに表示させる。
<<表示装置の構成の別の例4>>
図46は、表示装置の構成例を示す図である。図46の例では、表示装置として、端末装置600と、画像投影装置700Aとを有する。
端末装置600は、電子ペン820Bと無線通信(Bluetooth(登録商標)等)を行って、スクリーン800上において電子ペン820Bが示す点の座標情報を受信する。そして、端末装置600は、受信した座標情報に基づき、電子ペン820Bにより入力されるストローク画像の画像データを生成し、画像投影装置700Aにストローク画像を投影させる。
また、端末装置600は、画像投影装置700Aに投影させている背景画像と、電子ペン820によって入力されたストローク画像とを合成した重畳画像を示す重畳画像データを生成する。
以上のように、上記した各実施形態は、様々なシステム構成において適用することができる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、本実施形態の表示方法は、タッチパネルを有する情報処理装置であれば好適に適用できる。また、表示装置と同様の機能を有する装置を、電子黒板、電子ホワイトボード、電子情報ボード、インタラクティブボードなどともいう。タッチパネルを搭載した情報処理装置としては、例えば、PJ(Projector:プロジェクター)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC又はデスクトップPC等であってもよい。これら情報処理装置では専用のアプリケーションが動作し、本実施形態で説明した処理を行う。
また、本実施形態では、表示装置2が行う処理の一部をサーバーが行ってもよい。例えば、表示装置はストローク情報をサーバーに送信し、サーバーから操作ガイド500に表示する情報を取得して表示する。
また、本実施形態ではペン先の座標をタッチパネルで検知する方法でペンの座標を検出したが、ペン先の座標を超音波により検出してもよい。また、ペンは発光と共に超音波を発信しており、表示装置2は超音波の到達時間により距離を算出する。方向と距離によりペンの位置を特定できる。ペンの軌跡をストロークとしてプロジェクターが描画(投影)する。
また、本実施形態では、選択オブジェクトがある場合に編集系、修飾系及び「ページ名に追加」の操作コマンドの候補を表示し、選択オブジェクトがない場合に入出力系の操作コマンドの候補を表示した。しかし、編集系、修飾系及び「ページ名に追加」の操作コマンドの候補と入出力系の操作コマンドの候補を同時に表示してもよい。
また、ユーザーの手書きサインデータは表示装置2が持っていなくてもよい。クラウド上や社内の情報処理装置が保持していてもよい。
また、図6などの構成例は、表示装置2による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。表示装置2の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
また、本実施形態において、比較の対象として閾値が例示されていたとしても閾値は例示された値には限定されない。このため、本実施形態では、全ての閾値に関し、閾値未満と閾値以下という記載は同等の意味を持ち、閾値超過と閾値以上という記載は同等の意味を持つ。例えば、閾値を11とした場合の閾値未満という記載は閾値が10である場合の閾値以下と同等の意味を持つ。また、閾値を10とした場合の閾値超過という記載は閾値が11である場合の閾値以上と同等の意味を持つ。
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
なお、音響デバイス制御部71は音響デバイス制御手段の一例である。装着状態検出部75は装着状態検出手段の一例である。インパルス応答測定部60はインパルス応答測定手段の一例である。手書き入力部21は受付手段の一例である。
表示装置2
特開2006-180039号公報 特開平05-244043号公報
中溝 高好著、"信号解析とシステム同定"、第1版、株式会社コロナ社、1988年2月

Claims (10)

  1. 入力手段により入力された手書きデータを表示する表示装置であって、
    前記表示装置の少なくとも一辺以上に配置された音響デバイスと、
    入力手段によるディスプレーへの手書きを受け付け、前記入力手段から該入力手段の識別情報を受信する受付手段と、
    前記入力手段から受信した前記入力手段の識別情報に対応づけられているユーザーの位置情報に基づいて、前記入力手段を用いて入力するユーザーが存在する前記表示装置の辺を特定し、前記ユーザーが存在する前記辺に配置されている前記音響デバイスを制御する音響デバイス制御手段と、
    を有することを特徴とする表示装置。
  2. 前記表示装置の少なくとも一辺以上に配置された前記入力手段を収納する収納部と、
    前記収納部における前記入力手段の装着状態を検出する装着状態検出手段と、を有し、
    前記音響デバイス制御手段は、前記入力手段が装着されていないことを前記装着状態検出手段が検出した前記収納部がある辺に配置されている前記音響デバイスを制御することを特徴とする請求項1に記載の表示装置。
  3. 前記表示装置の少なくとも一辺以上に配置された、音源信号のインパルス応答により障害物を検出するインパルス応答測定手段を有し、
    前記音響デバイス制御手段は、前記障害物を検出した前記インパルス応答測定手段がある辺に配置されている前記音響デバイスを制御することを特徴とする請求項1に記載の表示装置。
  4. 前記音響デバイス制御手段は、前記音響デバイスのゲインを低下させるか、又は、OFFにすることを特徴とする請求項1~3のいずれか1項に記載の表示装置。
  5. 前記音響デバイス制御手段は、前記入力手段から受信した入力手段の識別情報に基づいて決定した辺以外の辺に配置されている前記音響デバイスのゲインを増大させることを特徴とする請求項1に記載の表示装置。
  6. 前記音響デバイス制御手段は、前記入力手段が装着されていないことを前記装着状態検出手段が検出した前記収納部がある辺以外の辺に配置されている前記音響デバイスのゲインを増大させることを特徴とする請求項2に記載の表示装置。
  7. 前記音響デバイス制御手段は、前記障害物を検出した前記インパルス応答測定手段がある辺以外に配置されている前記音響デバイスのゲインを増大させることを特徴とする請求項3に記載の表示装置。
  8. 前記音響デバイス制御手段が全ての辺の前記音響デバイスのゲインを低下させるか、又は、OFFにした場合、音声の状態が低下した旨を出力することを特徴とする請求項4に記載の表示装置。
  9. 表示装置の少なくとも一辺以上に音響デバイスが配置され、入力手段により入力された手書きデータを表示する表示装置が行う音響デバイス制御方法であって、
    入力手段によるディスプレーへの手書きを受け付け、前記入力手段から該入力手段の識別情報を受信するステップと、
    前記入力手段から受信した前記入力手段の識別情報に対応づけられているユーザーの位置情報に基づいて、前記入力手段を用いて入力するユーザーが存在する前記表示装置の辺を特定し、前記ユーザーが存在する前記辺に配置されている前記音響デバイスを制御するステップと、
    を有することを特徴とする音響デバイス制御方法。
  10. 表示装置の少なくとも一辺以上に音響デバイスが配置され、入力手段により入力された手書きデータを表示する表示装置を、
    入力手段によるディスプレーへの手書きを受け付け、前記入力手段から該入力手段の識別情報を受信する受付手段と、
    前記入力手段から受信した前記入力手段の識別情報に対応づけられているユーザーの位置情報に基づいて、前記入力手段を用いて入力するユーザーが存在する前記表示装置の辺を特定し、前記ユーザーが存在する前記辺に配置されている前記音響デバイスを制御する音響デバイス制御手段、
    として機能させるためのプログラム。
JP2020126407A 2020-07-27 2020-07-27 表示装置、音響デバイス制御方法、プログラム Pending JP2022023456A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020126407A JP2022023456A (ja) 2020-07-27 2020-07-27 表示装置、音響デバイス制御方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020126407A JP2022023456A (ja) 2020-07-27 2020-07-27 表示装置、音響デバイス制御方法、プログラム

Publications (1)

Publication Number Publication Date
JP2022023456A true JP2022023456A (ja) 2022-02-08

Family

ID=80226151

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020126407A Pending JP2022023456A (ja) 2020-07-27 2020-07-27 表示装置、音響デバイス制御方法、プログラム

Country Status (1)

Country Link
JP (1) JP2022023456A (ja)

Similar Documents

Publication Publication Date Title
US11250253B2 (en) Handwriting input display apparatus, handwriting input display method and recording medium storing program
US11733830B2 (en) Display apparatus for displaying handwritten data with displayed operation menu
JP2023175845A (ja) 手書き入力装置、手書き入力方法、プログラム、入力システム
JP7452155B2 (ja) 手書き入力装置、手書き入力方法、プログラム
US11048408B2 (en) Display apparatus, recording medium, and display method
JP7259828B2 (ja) 表示装置、表示方法、プログラム
JP2022023456A (ja) 表示装置、音響デバイス制御方法、プログラム
US20220066720A1 (en) Display apparatus, display method, and recording medium
JP7354878B2 (ja) 手書き入力装置、手書き入力方法、プログラム、入力システム
CN112825135A (zh) 显示装置、显示方法及介质
US20230266875A1 (en) Display apparatus, input method, and program
US11853636B2 (en) Display apparatus, display method, medium, and display system
JP7268479B2 (ja) 表示装置、プログラム、表示方法
EP4064019A1 (en) Display system, display method, and carrier means
EP4246301A1 (en) Display apparatus, formatting method, carrier means, and information sharing system
JP2021064366A (ja) 表示装置、カラー対応装置、表示方法、プログラム
JP2021082292A (ja) 表示装置、表示方法、プログラム
JP2021096844A (ja) 表示装置、表示方法、プログラム
JP2022013424A (ja) 表示装置、表示方法、プログラム
JP2022057931A (ja) 表示装置、表示方法、プログラム
JP2021152884A (ja) 表示装置、表示方法、プログラム、情報処理装置
JP2022147384A (ja) 表示装置、表示方法、プログラム
JP2021149662A (ja) 表示装置、表示方法、プログラム