(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023167505
(43)【公開日】2023-11-24
(54)【発明の名称】情報入力システム、情報入力方法、及び情報入力プログラム
(51)【国際特許分類】
G06F 3/03 20060101AFI20231116BHJP
G06F 3/0346 20130101ALI20231116BHJP
【FI】
G06F3/03 400Z
G06F3/0346 424
G06F3/0346 425
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022078749
(22)【出願日】2022-05-12
(71)【出願人】
【識別番号】000108328
【氏名又は名称】ゼブラ株式会社
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【弁理士】
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100136722
【弁理士】
【氏名又は名称】▲高▼木 邦夫
(74)【代理人】
【識別番号】100224546
【弁理士】
【氏名又は名称】小松 龍
(72)【発明者】
【氏名】岩間 卓吾
(72)【発明者】
【氏名】武田 政樹
【テーマコード(参考)】
5B087
【Fターム(参考)】
5B087AA02
5B087AA07
5B087AB02
5B087AB09
5B087AD01
5B087BC03
5B087DD03
5B087DD17
(57)【要約】
【課題】入力情報をより確実に取得する。
【解決手段】一実施形態に係る情報入力システム1は、筆記具20が配置される空間に仮想面Sを設定する設定部14と、当該空間における筆記具20の位置を示すペン先204を取得する位置取得部5と、ペン先204を通る仮想線VLと仮想面Sとの交点を、筆記具20による描画点Pとして設定する描画点設定部162と、仮想面Sでの描画点Pの軌跡が示す情報を、筆記具20による筆記情報D4として表示部13に出力する出力部19と、を備える。
【選択図】
図9
【特許請求の範囲】
【請求項1】
入力機器が配置される空間に仮想面を設定する仮想面設定部と、
前記空間における前記入力機器の位置を示す入力点を取得する位置取得部と、
前記入力点を通る仮想線と前記仮想面との交点を、前記入力機器による描画点として設定する描画点設定部と、
前記仮想面での前記描画点の軌跡が示す情報を、前記入力機器による入力情報として表示装置に出力する出力部と、を備える、情報入力システム。
【請求項2】
前記入力機器は、軸線方向の一端にペン先を有する筆記具であり、
前記入力点は、前記空間における前記ペン先の位置を示す、請求項1に記載の情報入力システム。
【請求項3】
前記仮想線は、前記入力点を通り且つ前記軸線方向に沿って延びる仮想的な直線である、請求項2に記載の情報入力システム。
【請求項4】
前記仮想面における前記描画点の軌跡が示す情報から、前記仮想面に対する筆記情報を前記入力情報として抽出する筆記情報取得部を更に備え、
前記筆記情報取得部は、
前記仮想面での前記描画点の軌跡を示す描画点軌跡情報を取得する軌跡情報取得部と、
前記入力点と前記描画点との距離の変化に基づいて、前記描画点軌跡情報から前記筆記情報を抽出する筆記情報抽出部と、を有する、請求項2又は3に記載の情報入力システム。
【請求項5】
前記筆記情報を鑑定する鑑定部を更に備え、
前記軌跡情報取得部は、前記空間での前記入力点の軌跡を示す入力点軌跡情報を取得し、
前記鑑定部は、現在のユーザの筆記動作により得られた前記筆記情報及び前記入力点軌跡情報を、過去のユーザの筆記動作により得られた前記筆記情報及び前記入力点軌跡情報とそれぞれ比較することにより、前記現在のユーザと前記過去のユーザとが同一であるか否かを判定する、請求項4に記載の情報入力システム。
【請求項6】
前記鑑定部は、
前記入力点と前記描画点との距離の変化に基づいて、前記描画点軌跡情報から、前記筆記情報を除く前記入力点軌跡情報に対応する情報を非筆記情報として抽出する非筆記情報抽出部と、
前記現在のユーザの筆記動作により得られた前記筆記情報及び前記非筆記情報と、前記過去のユーザの筆記動作により得られた前記筆記情報及び前記非筆記情報とをそれぞれ比較する比較部と、を有する、請求項5に記載の情報入力システム。
【請求項7】
前記仮想面と前記入力点との位置を調整する調整部を更に備え、
前記調整部は、前記仮想面の許容範囲内に前記描画点が位置していない場合に、前記許容範囲内に前記描画点が位置するように、前記仮想面と前記入力点との位置を調整する、請求項1~3のいずれか一項に記載の情報入力システム。
【請求項8】
プロセッサを備える情報入力システムにより実行される情報入力方法であって、
入力機器が配置される空間に仮想面を設定するステップと、
前記空間における前記入力機器の位置を示す入力点を取得するステップと、
前記入力点を通る仮想線と前記仮想面との交点を、前記入力機器による描画点として設定するステップと、
前記仮想面での前記描画点の軌跡が示す情報を、前記入力機器による入力情報として表示装置に出力するステップと、を備える、情報入力方法。
【請求項9】
入力機器が配置される空間に仮想面を設定するステップと、
前記空間における前記入力機器の位置を示す入力点を取得するステップと、
前記入力点を通る仮想線と前記仮想面との交点を、前記入力機器による描画点として設定するステップと、
前記仮想面での前記描画点の軌跡が示す情報を、前記入力機器による入力情報として表示装置に出力するステップと、をコンピュータに実行させる、情報入力プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報入力システム、情報入力方法、及び情報入力プログラムに関する。
【背景技術】
【0002】
情報入力システムに関する技術として、例えば特許文献1~5に記載された技術が知られている。例えば特許文献1には、3次元空間に電子ペンで手書きしたときのペン先の軌跡を表示装置に表示する空間手書きシステムが記載されている。このシステムでは、電子ペンのペン先の座標を検出して複数のポイントが特定され、特定したポイントに基づいて3次元空間内に2次元の仮想平面が作成される。そして、作成された仮想平面上で電子ペンを動かすことで、仮想平面上において筆記された文字が認識される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2013-125487号公報
【特許文献2】特開2018-067131号公報
【特許文献3】特表2016-530612号公報
【特許文献4】特開2021-033563号公報
【特許文献5】特開2003-114754号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したようなシステムにおいて、ユーザが動かす電子ペンのペン先は3次元的に移動するため、仮想平面上でペン先を動かすことは難しい。その結果、仮想平面とペン先との距離が変化することで、仮想平面におけるペン先の軌跡を認識できなくなり、ユーザによる筆記情報を確実に取得できなくなるという問題が生じ得る。特に、3次元空間において3次元的に変化する仮想曲面が設定される場合、仮想曲面に対するペン先の軌跡を認識することは極めて困難である。
【0005】
本開示は、入力情報をより確実に取得することが可能な情報入力システム、情報入力方法、及び情報入力プログラムを提供する。
【課題を解決するための手段】
【0006】
本開示の一形態に係る情報入力システムは、入力機器が配置される空間に仮想面を設定する仮想面設定部と、空間における入力機器の位置を示す入力点を取得する位置取得部と、入力点を通る仮想線と仮想面との交点を、入力機器による描画点として設定する描画点設定部と、仮想面での描画点の軌跡が示す情報を、入力機器による入力情報として表示装置に出力する出力部と、を備える。
【0007】
本開示の一形態に係る情報入力方法は、プロセッサを備える情報入力システムにより実行される情報入力方法であって、入力機器が配置される空間に仮想面を設定するステップと、空間における入力機器の位置を示す入力点を取得するステップと、入力点を通る仮想線と仮想面との交点を、入力機器による描画点として設定するステップと、仮想面での描画点の軌跡が示す情報を、入力機器による入力情報として表示装置に出力するステップと、を備える。
【0008】
本開示の一形態に係る情報入力プログラムは、入力機器が配置される空間に仮想面を設定するステップと、空間における入力機器の位置を示す入力点を取得するステップと、入力点を通る仮想線と仮想面との交点を、入力機器による描画点として設定するステップと、仮想面での描画点の軌跡が示す情報を、入力機器による入力情報として表示装置に出力するステップと、をコンピュータに実行させる。
【0009】
上記の形態では、入力機器が配置される空間に設定される仮想面と、入力機器の位置を示す入力点を通る仮想線との交点が、入力機器による描画点と設定される。そして、仮想面での描画点の軌跡が示す情報が、入力機器による入力情報として表示装置に出力される。この構成によれば、仮想面と入力点との距離の変化に関わらず、入力機器による描画点を常に仮想面に設定できるので、ユーザの入力動作に伴い仮想面から入力点がずれた場合であっても、仮想面に対する入力情報を確実に取得できる。更に上記の構成によれば、3次元的に変化する仮想面が設定された場合であっても、仮想面の形状に関わらず、仮想面に設定された描画点の軌跡に基づいて仮想面に対する入力情報を容易に取得できる。
【0010】
入力機器は、軸線方向の一端にペン先を有する筆記具であり、入力点は、空間におけるペン先の位置を示してもよい。この場合、仮想面に対する筆記具の筆記動作を確実に取得できる。
【0011】
仮想線は、入力点を通り且つ軸線方向に沿って延びる仮想的な直線であってもよい。この場合、仮想線と仮想面との交点を簡易な計算によって求めることができる。
【0012】
情報入力システムは、仮想面における描画点の軌跡が示す情報から、仮想面に対する筆記情報を入力情報として抽出する筆記情報取得部を更に備え、筆記情報取得部は、仮想面での描画点の軌跡を示す描画点軌跡情報を取得する軌跡情報取得部と、入力点と描画点との距離の変化に基づいて、描画点軌跡情報から筆記情報を抽出する筆記情報抽出部と、を有してもよい。この場合、ユーザが仮想面に対して筆記を行う際の動きの変化を利用して、描画点軌跡情報から筆記情報を正確に抽出できる。
【0013】
情報入力システムは、筆記情報を鑑定する鑑定部を更に備え、軌跡情報取得部は、空間での入力点の軌跡を示す入力点軌跡情報を取得し、鑑定部は、現在のユーザの筆記動作により得られた筆記情報及び入力点軌跡情報を、過去のユーザの筆記動作により得られた筆記情報及び入力点軌跡情報とそれぞれ比較することにより、現在のユーザと過去のユーザとが同一であるか否かを判定してもよい。この場合、現在のユーザによる筆記情報と過去のユーザによる筆記情報とが類似している場合であっても、現在のユーザによる描画点軌跡情報と過去のユーザによる描画点軌跡情報とを比較することによって、現在のユーザと過去のユーザとが同一であるかを正確に判定できる。つまり、仮想面での描画点の軌跡を示す筆記情報だけでなく、仮想面に対する空中での入力点の軌跡を示す入力点軌跡情報も比較対象に含めることによって、より多くの情報に基づいて筆記情報を正確に鑑定できる。
【0014】
鑑定部は、入力点と描画点との距離の変化に基づいて、描画点軌跡情報から、筆記情報を除く入力点軌跡情報に対応する情報を非筆記情報として抽出する非筆記情報抽出部と、現在のユーザの筆記動作により得られた筆記情報及び非筆記情報と、過去のユーザの筆記動作により得られた筆記情報及び非筆記情報とをそれぞれ比較する比較部と、を有してもよい。現在のユーザと過去のユーザとが同一であるか否かを判定する際、非筆記情報にはユーザの筆記動作の際の癖などが表れやすいので、筆記情報が類似させたとしても、非筆記情報に違いが表れやすい。そこで、非筆記情報を比較対象に含めることによって、筆記情報をより正確に鑑定できる。
【0015】
情報入力システムは、仮想面と入力点との位置を調整する調整部を更に備え、調整部は、仮想面の許容範囲内に描画点が位置していない場合に、許容範囲内に描画点が位置するように、仮想面と入力点との位置を調整してもよい。この場合、仮想面に描画点をより確実に設定することができるので、仮想面での描画点の軌跡に基づく入力情報をより確実に取得できる。
【発明の効果】
【0016】
本開示の一形態によれば、入力情報をより確実に取得することが可能となる。
【図面の簡単な説明】
【0017】
【
図1】
図1は、一実施形態に係る情報入力システムの適用の一例を示す図である。
【
図2】
図2は、情報入力システムに関連するハードウェア構成の一例を示す図である。
【
図3】
図3は、情報入力システムが備える筆記具の構成の一例を示す断面図である。
【
図4】
図4は、情報入力システムに関連する機能構成の一例を示す図である。
【
図5】
図5は、設定部が設定する仮想面の一例を示す図である。
【
図6】
図6は、推定部の構成の一例を示す図である。
【
図7】
図7は、
図6の推定部の構成の一部をより詳細に示す図である。
【
図8】
図8(a)は、仮想面と筆記具との位置関係を示す図である。
図8(b)は、
図8(a)を別の角度から見た図である。
【
図9】
図9は、認識部の構成の一例を示す図である。
【
図10】
図10は、仮想面に描画点が設定される様子を示す図である。
【
図11】
図11(a)及び
図11(b)は、キャリブレーション処理のイメージの一例を示す図である。
【
図12】
図12(a)及び
図12(b)は、キャリブレーション処理のイメージの一例を示す図である。
【
図14】
図14は、筆記情報が抽出されるイメージの一例を示す図である。
【
図15】
図15(a)は、現在筆跡情報の一例を示す図である。
図15(b)は、過去筆跡情報の一例を示す図である。
【
図16】
図16は、情報入力システムにおいて実施される情報入力方法の処理内容の一例を示すフローチャートである。
【
図17】
図17は、推定処理の一例を示すフローチャートである。
【
図18】
図18は、フィードバック処理の一例を示すフローチャートである。
【
図19】
図19は、ドリフト補正処理の一例を示すフローチャートである。
【
図20】
図20は、認識処理の一例を示すフローチャートである。
【
図21】
図21は、調整処理の一例を示すフローチャートである。
【
図22】
図22は、鑑定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0018】
[情報入力システムの構成]
図1は、本実施形態に係る情報入力システム1の適用の一例を示す図である。情報入力システム1は、ユーザUによる筆記動作に関する筆記情報D4(入力情報)を電子機器の表示画面に入力するためのシステムである。情報入力システム1は、例えば、端末10と、筆記具20(入力機器)と、データベース30とを備える。筆記具20とは、文字、記号及びイラストなどの筆記に使用される道具である。筆記具20は、例えば、ボールペン、万年筆、マーカー及びシャープペンシルといった、インク又は黒鉛を用いて筆記できるペンであってもよいし、スタイラスペンといったポインティングデバイスであってもよい。ユーザUは、筆記具20を用いて筆記を行う筆記者としてよい。
【0019】
筆記具20は、近距離無線通信により端末10と接続されている。近距離無線通信は、例えば、Bluetooth(登録商標)又はWi-Fi(登録商標)などの通信方式としてよい。筆記具20と端末10との間の通信方式は限定されない。本実施形態においては、1つの筆記具20が端末10と通信を行う場合を例示するが、筆記具20の個数は限定されない。例えば、2つ以上の筆記具20が1つの端末10と通信を行ってもよい。
【0020】
端末10は、筆記者によって用いられるコンピュータである。端末10は、例えば高機能携帯電話機(スマートフォン)、タブレット端末、ウェアラブル端末(例えば、ヘッドマウントディスプレイ(HMD)、スマートグラス、或いはスマートウォッチ)、ラップトップ型パーソナルコンピュータ、又は携帯電話機などの携帯端末としてよい。端末10は、デスクトップ型パーソナルコンピュータなどの据置型端末としてもよい。端末10は、通信ネットワークを介してデータベース30と接続されている。通信ネットワークは、例えば、インターネットを含んで構成されてもよいし、イントラネットを含んで構成されてもよい。
【0021】
データベース30は、情報入力システム1によって用いられる各種のデータを記憶する非一時的な記憶装置である。本実施形態では、データベース30は、閾値情報D11と過去筆跡情報D12と筆記具モデルD13(入力機器モデル)とを記録する。データベース30は、例えば、複数のユーザUについて閾値情報D11及び過去筆跡情報D12を記憶してもよい。データベース30は、複数の種類の筆記具モデルD13を記憶してもよい。データベース30は、単一のデータベースとして構築されてもよいし、複数のデータベースの集合であってもよい。
【0022】
図2は、情報入力システム1に関連するハードウェア構成の一例を示す図である。
図2は、端末10として機能する端末コンピュータ100を示す。端末コンピュータ100は、ハードウェア構成要素として、例えば、プロセッサ101と、主記憶部102と、補助記憶部103と、通信部104と、入力インタフェース105と、出力インタフェース106とを備える。プロセッサ101は、オペレーティングシステム及びアプリケーションプログラムを実行する演算装置である。プロセッサ101は、例えばCPU又はGPUであり得るが、プロセッサ101の種類はこれらに限定されない。
【0023】
主記憶部102は、端末10を実現させるためのプログラム、及びプロセッサ101から出力された演算結果などを記憶する装置である。主記憶部102は、例えばROM及びRAMのうちの少なくとも一つにより構成される。補助記憶部103は、一般に主記憶部102よりも大量のデータを記憶することが可能な装置である。補助記憶部103は、例えばハードディスク又はフラッシュメモリなどの不揮発性記憶媒体によって構成される。補助記憶部103は、端末コンピュータ100を端末10として機能させるためのクライアントプログラムP1と、各種のデータとを記憶する。通信部104は、通信ネットワークを介して他のコンピュータとの間でデータ通信を実行する装置である。通信部104は、例えばネットワークカード又は無線通信モジュールにより構成される。
【0024】
入力インタフェース105は、ユーザUの操作又は動作に基づいてデータを受け付ける装置である。例えば、入力インタフェース105は、キーボード、操作ボタン、ポインティングデバイス、マイクロフォン、センサ、及びカメラのうちの少なくとも1つによって構成される。キーボード及び操作ボタンは、タッチパネル上に表示されてもよい。入力インタフェース105に入力されるデータは限定されない。例えば、入力インタフェース105は、キーボード、操作ボタン、又はポインティングデバイスによって、入力又は選択されたデータを受け付けてもよい。或いは、入力インタフェース105は、マイクロフォンにより入力された音声データを受け付けてもよい。或いは、入力インタフェース105は、カメラによって撮影された画像データ(例えば、映像データ又は静止画データ)を受け付けてもよい。
【0025】
出力インタフェース106は、端末コンピュータ100で処理されたデータを出力する装置である。例えば、出力インタフェース106は、モニタ、タッチパネル、HMD及びスピーカのうちの少なくとも1つによって構成される。モニタ、タッチパネル、HMDなどの表示装置は、処理されたデータを画面上に表示する。スピーカは、処理された音声データで示される音声を出力する。
【0026】
端末10の各機能要素は、情報入力システム1の一例であるクライアントプログラムP1をプロセッサ101又は主記憶部102に読み込ませて、プロセッサ101にそのプログラムを実行させることで実現される。クライアントプログラムP1は、端末10の各機能要素を実現するためのコードを含む。プロセッサ101は、クライアントプログラムP1に従って通信部104、入力インタフェース105または出力インタフェース106を動作させ、主記憶部102又は補助記憶部103におけるデータの読み出し及び書き込みを行う。この処理により端末10の各機能要素が実現される。
【0027】
クライアントプログラムP1は、CD-ROM、DVD-ROM、又は半導体メモリなどの有形の記録媒体に非一時的に記録された上で提供されてもよい。或いは、クライアントプログラムP1は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0028】
図3は、筆記具20の構成の一例を示す模式図である。
図3は、筆記具20を軸線方向Lに沿う面において切断した際の断面を示している。本実施形態では、筆記具20がボールペンである場合を例示する。
図3に示すように、筆記具20は、例えば、筒部201と、リフィル203と、基板206と、圧力センサ207と、動作センサ208(センサ)とを備える。
【0029】
筒部201は、筆記具20の軸線方向Lに沿って延びる略円筒状の部材である。筒部201は、軸線方向Lの先端に開口202を有する。リフィル203は、その内部にインクが充填された円筒状の部材である。リフィル203は、筒部201の内径よりも小さい外径を有し、筒部201の内部に収容されている。リフィル203が筒部201に収容された状態において、リフィル203の先端(以下、「ペン先204」と称する)は、筒部201の開口202から露出する。基板206は、筒部201の内部において、リフィル203の基端205(すなわち、軸線方向Lにおいてペン先204とは反対側の端部)の後方に収容されている。筆記者が筒部201を把持し、ペン先204を媒体に押し当てることにより、リフィル203の内部のインクがペン先204からにじみ出る。従って、筆記者は、媒体にペン先204を押し当てた状態で筆記具20を動かすことで、筆記を行うことができる。
【0030】
圧力センサ207は、例えば、筒部201の内部においてリフィル203の基端205と基板206との間に設けられている。圧力センサ207は、筆記具20による筆記の際にペン先204が媒体から受ける圧力を筆圧として検出する。但し、空中での筆記動作が行われる場合には、筆記具20に筆圧が発生しないため、圧力センサ207は筆圧を検出しない。本実施形態では、空中で筆記動作が行われる状況を想定し、圧力センサ207が筆圧を検出する処理については説明を省略する。
【0031】
動作センサ208は、例えば、筒部201の内部の基板206に設けられている。動作センサ208は、筆記具20の動作を検出する。例えば、動作センサ208は、互いに直交する3軸方向の加速度を検出する加速度センサと、当該3軸方向の角速度を検出するジャイロセンサとを含む6軸センサである。この場合、動作センサ208は、筆記具20による筆記の際に、3軸方向の加速度の観測値と3軸方向の角速度の観測値とを検出する。
【0032】
筆記具20は、機能的構成として、通信部21及び取得部22を含む。取得部22は、筆記動作に伴い動作センサ208が検出した加速度及び角速度の観測値を、連続的又は所定頻度で断続的に取得する。通信部21は、取得部22が取得した加速度及び角速度の観測値を端末10に送信する。通信部21は、前述の通り、例えば、Bluetooth(登録商標)等の近距離無線通信により、端末10と通信可能である。通信部21及び取得部22は、簡易なコンピュータ装置として、筆記具20に組み込まれていてもよい。
【0033】
図4は、情報入力システム1に関連する機能構成の一例を示す図である。端末10は、機能要素として、通信部11と、取得部12と、表示部13(表示装置)と、設定部14(仮想面設定部)と、推定部15と、認識部16と、調整部17と、鑑定部18と、出力部19とを有する。通信部11は、筆記具20の通信部21から送信される情報を受信する。筆記具20の通信部21から送信される情報には、例えば、筆記具20の取得部22が取得した加速度及び角速度の観測値が含まれる。取得部12は、通信部11が受信した加速度及び角速度の観測値を取得する。
【0034】
表示部13は、例えば、実空間(ワールド座標系)に対応付けられた仮想物体を表示する。表示部13は、例えば、ユーザUに装着されるHMDを含む情報処理端末などによって実現されてもよいし、タブレット端末及びプロジェクションマッピングなどによって実現されてもよい。表示部13は、例えば、ユーザUの目線と同様の撮像方向などで撮像し、撮像した画像に仮想空間を重畳して表示する。ユーザUは、表示部13を通して、実空間に配置された実体物の配置に応じた、現実にはない仮想物体を見ることができる。
【0035】
表示部13は、3次元座標である仮想空間を用いて仮想物体を表示する。表示部13は、仮想空間上の予め設定された位置に仮想物体を配置し、仮想空間と実空間との対応関係を算出する。以下の説明では、仮想空間における座標系を仮想座標系αという。表示部13は、実空間での撮像位置及び撮像方向に対応する仮想空間での位置及び方向から見た画像を、仮想物体の表示とする。つまり、表示部13は、仮想的なユーザUの視線から仮想物体を見た画像を表示する。上記の仮想物体の表示は、従来のMR技術を用いて実施することができる。
【0036】
設定部14は、仮想空間に仮想面Sを設定する。仮想面Sは、ユーザUによる筆記具20の筆記動作を認識するための仮想的な筆記面である。設定部14は、仮想空間の任意の位置に仮想面Sを設定する。設定部14が設定した仮想面Sは、表示部13によって仮想空間に表示される。
図5は、仮想面Sの一例を示す図である。
図5に示すように、仮想面Sは、例えば、仮想座標系αにおける任意の位置に設定される2次元の仮想平面である。以下、仮想面Sを規定する座標系をスクリーン座標系βという。
【0037】
仮想面Sは、
図5に示す例に限られず、例えば、3次元的に変化する仮想曲面であってもよい。この場合、仮想空間に表示される任意の3次元仮想物体の表面に仮想面Sを設定できる。仮想面Sの種類は、例えば、ユーザUからの入力を受け付けることによって決定される。従って、設定部14は、ユーザUからの入力を受け付けたときに、当該入力に対応する仮想面Sを仮想空間に設定する。設定部14は、ユーザUの入力に応じて仮想面Sを設定しなくてもよく、例えば、仮想空間の一定の位置に予め仮想面Sを設定してもよい。また、仮想面Sは、仮想空間に固定される必要はなく、仮想空間において移動するように設定されてもよい。
【0038】
図6は、推定部15の構成の一例を示す図である。推定部15は、仮想空間における筆記具20の状態の推定値を推定する。仮想空間における筆記具20の状態とは、仮想空間に配置される筆記具20の位置及び姿勢を意味する。従って、筆記具20の状態の推定値は、筆記具20の位置の推定値であってもよいし、筆記具20の姿勢の推定値であってもよい。筆記具20の位置の推定値は、例えば、ペン先204(
図5参照)の位置の推定値である。
【0039】
ペン先204の位置の推定値は、ペン先204の位置を示す仮想座標系αの座標値によって表される。筆記具20の姿勢の推定値とは、例えば、筆記具20の移動に伴って変化する軸線方向Lの角度の推定値である。筆記具20の角度の推定値は、例えば、仮想座標系αにおいて筆記具20の軸線方向Lの初期角度を基準としたときの、現在の筆記具20の軸線方向Lの角度としてよい。以下では、加速度の観測値と角速度の観測値とをまとめて「観測値D10」と称し、筆記具20の位置の推定値と筆記具20の姿勢の推定値とをまとめて「推定値D20」と称する。
【0040】
推定部15は、筆記具20をモデル化した筆記具モデルD13を用いて、筆記具20の動作のシミュレーションを実行することにより、推定値D20を推定する。
図6に示すように、推定部15は、例えば、モデル処理部151と、解析部152と、推定値導出部153と、フィードバック部154とを有する。モデル処理部151は、例えば、モデル取得部155と初期化処理部156とを有する。モデル取得部155は、データベース30から筆記具モデルD13を取得する。筆記具モデルD13は、例えば、筆記具20のCADデータであり、数値解析が可能な有限個の要素で分割されている。数値解析が可能とは、例えば、有限要素法、有限体積法、差分法又は境界要素法といった数値解析法にて取り扱い可能であることを意味する。なお、筆記具モデルD13は、予めデータベース30に保存されていなくてもよく、端末10によって生成されてもよい。
【0041】
筆記具モデルD13には、筆記具20の仕様を示すモデル情報D21が付与されている。筆記具20の仕様とは、例えば、筆記具20の形状、寸法、材料、及び質量などである。これらの情報は、筆記具モデルD13を構成する要素ごとに付与され、筆記具モデルD13に反映されている。筆記具20の質量を示す情報は、例えば、筆記具20の部位ごとの質量の分布を示す質量情報としてよい。質量情報は、筆記具モデルD13の要素ごとの質量の分布を示す情報として筆記具モデルD13に付与される。質量情報を参照すれば、筆記具モデルD13において質量の高い部位と質量の低い部位とを把握できる。筆記具20の形状及び寸法を示す情報からは、ペン先204の太さを把握できる。モデル情報D21には、ペン先204の色を示す色情報が含まれてもよい。なお、モデル情報D21は、筆記具モデルD13に予め付与されていてもよいし、シミュレーション実行時に筆記具モデルD13に付与されてもよい。
【0042】
初期化処理部156は、筆記具モデルD13の状態(位置及び姿勢)を初期化する。初期化とは、シミュレーション空間における筆記具モデルD13の位置及び姿勢を初期値に設定することを意味する。筆記具モデルD13の位置の初期値は、シミュレーション空間における座標系の任意の座標値としよい。筆記具モデルD13の角度の初期値は、シミュレーション空間における座標系の任意の基準線からの角度としてよい。
【0043】
シミュレーション空間における座標系は、仮想空間における仮想座標系αと必ずしも一致している必要はないが、仮想座標系αに対応付けられている。シミュレーション空間における座標系の座標値は、仮想座標系αの座標値に変換できる。初期化処理部156は、モデル取得部155が筆記具モデルD13を取得したタイミング、又は初期化が必要とされる任意のタイミングで、筆記具モデルD13の位置及び姿勢の初期化を実行する。モデル処理部151は、初期化処理部156により初期化された筆記具モデルD13、及び筆記具モデルD13に付与されたモデル情報D21を解析部152に提供する。
【0044】
解析部152は、例えば、外乱計算部157と解析実行部158とを有する。外乱計算部157は、観測値D10及びモデル情報D21を用いて、筆記具モデルD13に付与すべき外乱を計算する。外乱は、筆記具20の動作の際にユーザによって筆記具20に付与される力及びトルクである。外乱計算部157は、観測値D10が示す加速度及び角速度、並びにモデル情報が示す質量情報から、筆記具モデルD13の各要素に付与すべき力及びトルクを算出する。筆記具モデルD13の要素に付与すべき力Fは、当該要素の質量をm、加速度をSaとすると、次の式(1)のように表される。式(1)において、Aは、質量m及び加速度Saから力Fを導出するために定義される任意の関数である。また、外乱計算部157は、力Fに基づいてトルクを算出する。外乱計算部157は、計算した外乱を外乱条件D22として、筆記具モデルD13及びモデル情報D21と共に解析実行部158に提供する。
【数1】
【0045】
解析実行部158は、筆記具モデルD13を用いて筆記具20の動作のシミュレーションを実行する。解析実行部158は、外乱条件D22を、筆記具20の動作のシミュレーションを実行するための解析条件として設定する。解析実行部158は、筆記具モデルD13に外乱条件D22を付与することにより、筆記具モデルD13をシミュレーション空間で動作させる。これにより、シミュレーション空間における筆記具モデルD13の位置及び姿勢が変化する。シミュレーションが実行される際、外乱条件D22に含まれる力F及びトルク、並びにモデル情報D21に含まれる質量情報は、筆記具モデルD13の要素ごとに付与されている。
【0046】
ここで、力Fは質量mに比例するため、質量mの高い要素には大きな力Fが付与され、質量mの低い要素には小さな力Fが付与される。例えば、ペン先204の付近の質量mが他の部位に比べて高い場合には、比較的大きな力Fがペン先204に付与され、シミュレーション空間におけるペン先204の位置の変化量が大きくなる。一方、ペン先204の付近の質量mが他の部位に比べて低い場合には、比較的小さな力Fがペン先204に付与され、シミュレーション空間におけるペン先204の位置の変化量が小さくなる。
【0047】
その結果、シミュレーション空間における筆記具モデルD13の動作は、筆記具20の質量mを加味した自然な動作、すなわち実際の筆記具20の動作に近い動作となる。このようなシミュレーションが実行されることによって、シミュレーション空間において、シミュレーションの実行後の筆記具モデルD13の位置及び姿勢は、シミュレーションの実行前の筆記具モデルD13の位置及び姿勢から変化する。解析実行部158は、シミュレーションの実行結果を推定値導出部153に提供する。シミュレーションの実行結果は、シミュレーションの実行後の筆記具モデルD13の位置及び姿勢を示す結果であってもよいし、シミュレーションの実行によって生じた筆記具モデルD13の位置及び姿勢の変化量を示す結果であってもよい。
【0048】
推定値導出部153は、シミュレーションの実行結果から、現在の筆記具20の位置及び姿勢の推定値D20を導出する。具体的には、推定値導出部153は、シミュレーション空間における筆記具モデルD13の位置及び姿勢を、仮想空間における筆記具20の位置及び姿勢に対応付けることにより、推定値D20を導出する。筆記具モデルD13の位置及び姿勢を筆記具20の位置及び姿勢に対応付けるとは、シミュレーション空間の座標系における筆記具モデルD13の位置及び姿勢を、仮想座標系αにおける筆記具モデルD13の位置及び姿勢に変換し、変換した筆記具モデルD13の位置及び姿勢を、仮想空間における筆記具20の位置及び姿勢とみなすことを意味する。
【0049】
このように、推定値導出部153は、シミュレーション空間における座標系と、仮想空間における仮想座標系αとの対応関係を利用して、例えば、シミュレーションの実行結果が示す(シミュレーション実行後の)筆記具モデルD13の位置及び姿勢を、仮想空間における現在の筆記具20の位置及び姿勢に反映することにより、現在の筆記具20の位置及び姿勢の推定値D20を導出する。
【0050】
推定値導出部153は、シミュレーションの実行によって生じた筆記具モデルD13の位置及び姿勢の変化量を、仮想空間における筆記具モデルD13の位置及び姿勢の変化量に変換し、変換後の筆記具モデルD13の位置及び姿勢の変化量を、仮想空間における動作前(シミュレーション実行前)の筆記具20の位置及び姿勢に加えてもよい。この場合、推定値導出部153は、当該変化量が加えられた後の筆記具20の位置及び姿勢を、現在の筆記具20の位置及び姿勢の推定値D20として導出する。推定値導出部153は、推定した推定値D20を、認識部16及びフィードバック部154にそれぞれ提供する。
【0051】
シミュレーション空間において、筆記具モデルD13のペン先204の位置は、動作センサ208からの観測値D10を用いて求めることができる。動作センサ208からの観測値D10は、ペン先204の位置ではなく、動作センサ208が設けられる位置における加速度及び角速度を示す。これら加速度及び角速度の少なくとも一方を積分計算することにより、動作センサ208の位置が求められる。動作センサ208の位置は、例えば次の式(2)を用いて、ペン先204の位置に変換できる。
【数2】
【0052】
式(2)において、VSは動作センサ208の位置を示す位置ベクトル、VS
0は動作センサ208の位置の初期値を示す位置ベクトル、VHはペン先204の位置を示す位置ベクトル、VH
0はペン先204の位置の初期値を示す位置ベクトル、RSは動作センサ208の回転を示す回転ベクトル、RS
0は動作センサ208の回転の初期値を示す回転ベクトル、RotはVHとVSとの角度から得られる変換回転行列を示す。動作センサ208に対するペン先204の位置は変化しないので、(VH-VS)は常に一定となる(
図5参照)。そして、式(2)において、VS、RS、及びRS
0は、観測値D10が示す加速度及び角速度から得られる。従って、推定値導出部153は、式(2)を用いて、観測値D10からペン先204の位置及び筆記具20の姿勢を推定することができる。
【0053】
図7は、フィードバック部154の構成の一例を示す図である。フィードバック部154は、仮想座標系αにおける現在の筆記具20の位置及び姿勢の推定値D20を監視し、監視結果のフィードバックを解析部152に行う。
図7に示すように、フィードバック部154は、例えば、監視部141と調整部142とを有する。監視部141は、仮想座標系αにおける仮現在の筆記具20の位置及び姿勢の変化量を監視する。監視部141は、例えば、計算部143と判定部144とを含む。計算部143は、仮想面Sに対する筆記具20の所定の位置及び姿勢を基準値として、基準値からの推定値D20の変化量を計算する。
【0054】
基準値とは、仮想座標系αにおける筆記具20の位置及び姿勢の初期値としてよい。初期値とは、例えば、仮想座標系αにおいて、ペン先204の向く先が仮想面Sの中心Scを向くように配置された状態における筆記具20の位置及び姿勢としてよい。ペン先204の向く先が仮想面Sの中心Scを向く状態とは、ペン先204から延びる仮想線が仮想面Sの中心Scと交差する状態である。ペン先204の向く先が仮想面Sの中心Scを向く状態であれば、筆記具20の軸線方向Lは、例えば仮想面Sの法線方向に対して傾いていてもよいし、仮想面Sの法線方向に沿っていてもよい。初期状態とは、ペン先204の向く先が仮想面Sの中心Scを向いている状態に限らず、ペン先204の向く先が仮想面Sの中心Scからずれた位置を向いている状態であってもよい。
【0055】
図8(a)は、仮想面Sと筆記具20との位置関係を示す図である。
図8(b)は、
図8(a)を別の角度から見た図である。
図8(a)及び
図8(b)には、基準値が示す筆記具20Aと、推定値D20が示す現在の筆記具20とが示されている。基準値からの推定値D20の変化量は、例えば、筆記具20Aのペン先204が向く単位方向ベクトルV1と、筆記具20Aのペン先204が向く単位方向ベクトルV2との内積をとることによって表すことができる。単位方向ベクトルV1と単位方向ベクトルV2との内積をとることにより、単位方向ベクトルV1と単位方向ベクトルV2とがなす角度θを計算できる。
【0056】
基準値からの推定値D20の変化量が大きいほど、単位方向ベクトルV1と単位方向ベクトルV2とがなす角度θは大きくなり、基準値からの推定値D20の変化量が小さいほど、当該角度θは小さくなる。そこで、計算部143は、基準値からの推定値D20の変化量を示す指標として、単位方向ベクトルV1と単位方向ベクトルV2とがなす角度θを計算する。計算部143は、計算した角度θを示す計算結果D41を判定部144に提供する。
【0057】
判定部144は、計算結果D41が示す変化量(角度θ)が許容範囲内であるか否かを判定する。判定部144は、まず、仮想面Sに第1領域R1と第2領域R2(許容範囲)とを設定する。
図8(a)及び
図8(b)に示すように、第1領域R1は、例えば、仮想面Sの外縁よりも内側であって少なくとも中心Scを含む領域である。第1領域R1の境界は、仮想面Sの外縁と中心Scとの中間に位置してもよいし、当該中間よりも内側又は外側にずれていてもよい。第2領域R2は、第1領域R1よりも大きい領域である。第2領域R2は、例えば、仮想面Sの外縁よりも内側の領域としてよい。
【0058】
判定部144は、単位方向ベクトルV2と仮想面Sとの交点PV2が第1領域R1に位置するときの、単位方向ベクトルV1に対する単位方向ベクトルV2のなす角度θの範囲を、第1許容範囲に設定する。角度θが第1許容範囲内にあることは、交点PV2が第2領域R2内に収まっていることを意味する。また、判定部144は、交点PV2が第2領域R2に位置するときの角度θの範囲を、第2許容範囲に設定する。角度θが第2許容範囲内にあることは、単位方向ベクトルV2と仮想面Sとの交点PV2が第2領域R2内に収まっていることを意味する。第2許容範囲は、第1許容範囲よりも大きな角度θの範囲となる。
【0059】
判定部144は、まず、角度θが第2許容範囲内であるか否かを判定する。判定部144は、角度θが第2許容範囲内でないと判定した場合、すなわち、単位方向ベクトルV2と仮想面Sとの交点PV2が第2領域R2内に収まっていないと判定した場合、角度θが第2許容範囲内でないことを示す判定結果D42を調整部142に提供する。一方、判定部144は、角度θが第2許容範囲内であると判定した場合、すなわち、交点PV2が第2領域R2内に収まっていると判定した場合、角度θが第1許容範囲内であるか否かを判定する。判定部144は、角度θが第1許容範囲内でないと判定した場合、すなわち、交点PV2が第1領域R1内に収まっていないと判定した場合、角度θが第2許容範囲内であって第1許容範囲内でないことを示す判定結果D42を調整部142に提供する。一方、判定部144は、角度θが第1許容範囲内であると判定した場合、次の推定値D20に基づいて得られる角度θに対して再び上記の判定を繰り返す。
【0060】
調整部142は、監視部141による監視結果(具体的には、判定部144による判定結果D42)に基づいて、仮想座標系αにおける現在の筆記具20の位置及び姿勢の推定値D20を調整する。調整部142は、角度θが第2許容範囲内でないことを示す判定結果D42を受け取った場合、仮想座標系αにおける現在の筆記具20の位置及び姿勢の推定値D20を基準値に戻すキャリブレーション処理を実行する。具体的には、調整部142は、推定値D20が基準値となるように(すなわち、筆記具20のペン先204が仮想面Sの中心Scを向くように)、シミュレーション空間における筆記具モデルD13の位置及び姿勢を調整する。
【0061】
調整部142は、例えば、推定値D20が示す筆記具20の単位方向ベクトルV2を、基準値が示す筆記具20Aの単位方向ベクトルV1に移動させるために必要な外乱を計算し、計算した外乱を解析実行部158に提供する。この外乱は、上述した式(1)の関数Aを調整することによって設定できる。解析実行部158は、調整部142から提供された外乱を筆記具モデルD13に付与することにより、シミュレーション空間における筆記具モデルD13の位置及び姿勢を変化させる。そして、調整部142は、シミュレーションの実行後の筆記具モデルD13の位置及び姿勢を、仮想空間における現在の筆記具20の位置及び姿勢に反映させることにより、現在の筆記具20の位置及び姿勢の推定値D20を基準値に戻す。
【0062】
調整部142は、角度θが第2許容範囲内であって第1許容範囲内でないことを示す判定結果D42を受け取った場合、基準値に対する推定値D20の変化量を調整する。推定値D20の変化量は、シミュレーションの実行によって生じる筆記具モデルD13の位置及び姿勢の変化量に対応する。筆記具モデルD13の位置及び姿勢の変化量は、シミュレーションの実行の際に解析条件として設定される外乱に依存する。外乱は、式(1)に示す関数Aの大きさによって調整できる。
【0063】
そこで、調整部142は、シミュレーションの実行時に筆記具モデルD13に付与する外乱の関数Aを、外乱計算部157によって計算された外乱の関数Aよりも小さくする。外乱計算部157によって計算された外乱の関数Aは、観測値D10及びモデル情報D21に基づいて計算される値であり、この外乱は、実際の筆記具20に付与される外乱とみなしてよい。従って、関数Aを小さくすれば、筆記具モデルD13に付与される外乱を、実際の筆記具20に付与される外乱よりも小さくすることができる。
【0064】
つまり、シミュレーションの実行によって生じる筆記具モデルD13の位置及び姿勢の変化量を、実際の筆記具20の位置及び姿勢の変化量よりも小さくすることができる。その結果、シミュレーション空間における筆記具モデルD13の動作が、実際の筆記具20の動作よりも小さくなる。これに応じて、シミュレーションの実行結果が示す仮想空間での推定値D20の動きが小さくなる。つまり、実際の筆記具の動作に対して推定値D20の動きが鈍くなる。これにより、推定値D20が基準値から更に大きく外れることが抑制される。
【0065】
調整部142は、筆記具モデルD13に付与される外乱を小さくする際、推定値D20が基準値から外れるほど、すなわち角度θが第1許容範囲から外れるほど、外乱計算部157によって計算された外乱の関数Aに対する、シミュレーションの実行時に筆記具モデルD13に付与する外乱の関数Aの減少率が大きくなるように、筆記具モデルD13に付与する外乱の関数Aを設定する。例えば、調整部142は、角度θが第1許容範囲から大きく外れていない場合(例えば、角度θが第2許容範囲の上限よりも第1許容範囲の上限に近い場合)には、筆記具モデルD13に付与する外乱の関数Aを、外乱計算部157によって計算された外乱の関数Aの半分に設定する。この場合、シミュレーションの実行結果が示す推定値D20の移動量が、実際の筆記具20の移動量の半分程度に抑えられる。
【0066】
一方、角度θが第1許容範囲から大きく外れている場合(例えば、角度θが第1許容範囲の上限よりも第2許容範囲の上限に近い場合)には、筆記具モデルD13に付与する外乱の関数Aをゼロに設定する。これにより、シミュレーション空間において筆記具モデルD13に付与される外乱がゼロになり、筆記具モデルD13の動作に実際の筆記具20の動作が反映されなくなる。この場合、シミュレーションの実行結果が示す推定値D20が仮想空間において移動しなくなるので、ユーザが筆記具20を大きく動かしたとしても、仮想空間において推定値D20は移動しない。このように角度θの大きさに応じて、筆記具モデルD13に付与される外乱の減少率を変化させることによって、仮想空間において、基準値から推定値D20が外れるほど、推定値D20の動きが小さくすることができる。その結果、現在の筆記具20の位置及び姿勢が仮想面Sに対して大きく逸脱していることをユーザに認識させることができる。
【0067】
監視部141は、推定値D20のドリフト補正を行うか否かを監視してもよい。この場合、監視部141は、推定値D20のドリフト補正が必要となるドリフト補正条件を設定する。動作センサ208には、一般にドリフト誤差と呼ばれる検出誤差が発生する場合がある。このような誤差が累積すると、仮想空間において仮想面Sに対して推定値D20が徐々にずれていく現象が生じる。このような現象が生じた場合、仮想面Sに推定値D20の分布を反映させたときの一定時間内の推定値D20の分布の中心が、ドリフト誤差が累積していない場合における一定時間内の推定値D20の分布の中心から徐々にずれる。一定時間内の推定値D20の分布の中心とは、一定時間内の推定値D20の分布の平均値又は中央値としてよい。ドリフト誤差が累積していない場合において、一定時間内の推定値D20の分布の中心は、例えば、仮想面Sの中心Sc付近に位置する。
【0068】
そこで、計算部143は、ドリフト誤差が累積していない場合における一定時間内の推定値D20の分布の中心を基準値として、一定時間内の現在の推定値D20の分布の中心のずれ量を計算してもよい。この場合、判定部144は、計算されたずれ量が予め設定される閾値を超えたときに、ドリフト補正条件を満たしたと判定する。一方、判定部144は、計算されたずれ量が当該閾値を超えていないときに、ドリフト補正条件を満たしていないと判定する。上記の「閾値」は、データベース30に記憶された閾値情報D11から得ることができる。上記の閾値は、例えば、情報入力システム1、情報入力システム1の提供者、又はユーザにより予め設定されてよい。上記の閾値は、例えば、一定時間内の推定値D20の分布の中心を示す過去の統計値に基づいて設定されてもよいし、ユーザにより任意に設定されてもよい。
【0069】
調整部142は、ドリフト補正条件を満たしたと判定部144が判定した場合、推定値D20を基準値に戻すキャリブレーション処理を実行する。具体的には、調整部142は、推定値D20が基準値となるように(すなわち、筆記具20のペン先204が仮想面Sの中心Scを向くように)、シミュレーション空間における筆記具モデルD13の位置及び姿勢を調整する。具体的には、調整部142は、前述したキャリブレーション処理と同一の処理を行う。これにより、一定時間内の現在の推定値D20の分布の中心を仮想面Sの中心Sc付近に戻すことができる。一方、判定部144は、ドリフト補正条件を満たしていないと判定した場合、次の推定値D20に対して再び上記の判定を繰り返す。
【0070】
図9は、認識部16の構成の一例を示す図である。認識部16は、推定部15が推定した推定値D20に基づく筆記具20の軌跡を認識する。
図9に示すように、認識部16は、例えば、仮想線設定部161と、描画点設定部162と、筆記情報取得部163とを有する。仮想線設定部161は、仮想空間に仮想線VL(仮想レイ)を設定する。
図10は、仮想線VLにより仮想面Sに描画点Pが設定される様子を示す図である。仮想線VLは、仮想面Sに描画点Pを設定するために仮想的に設定される直線である。
図10に示すように、仮想線VLは、筆記具20のペン先204から仮想面Sに向かって直線状に延びている。
【0071】
描画点Pは、仮想面Sに対する筆記具20の筆記動作を認識するために仮想面S上に設定される座標点である。推定値D20は、仮想座標系αにおけるペン先204の位置の座標値と、仮想座標系αにおける筆記具20の姿勢(すなわち、軸線方向Lの角度)とを示す。そこで、仮想線設定部161は、推定値D20を用いて、推定値D20が示すペン先204の位置を通り且つ筆記具20の軸線方向Lに沿った直線を仮想線VLとして設定する。なお、推定値D20が示すペン先204の位置とは、正確には、仮想座標系αにおけるペン先204の位置を示す座標点(入力点)を意味する。取得部12及び推定部15は、推定値D20が示すペン先204の位置を取得するための位置取得部5を構成する。
【0072】
仮想座標系αにおける筆記具20の姿勢は、筆記具20の軸線方向Lに沿った方向ベクトルVによって表すことができる。仮想座標系αにおけるスクリーン座標系βの原点の座標値を(x1、y1、z1)とし、仮想座標系αにおけるペン先204の位置の座標値を(x2、y2、z2)とし、方向ベクトルVを(Vx、Vy、Vz)とすると、仮想線VLは、座標値(x2、y2、z2)を通る方向ベクトル(Vx、Vy、Vz)に沿った直線として表される。
【0073】
具体的には、仮想線VLは、任意の実数(媒介変数)をtとして、次の式(3)によって表される。仮想線設定部161は、推定値D20及び式(3)を用いて、ペン先204の位置を通り且つ筆記具20の軸線方向Lに沿った仮想線VLを設定する。仮想線VLは、ペン先204からペン先204が向く方向に直線状に延び、仮想面Sと交差する。仮想線設定部161は、仮想線VLを示す仮想線情報D1を描画点設定部162に提供する。
【数3】
【0074】
描画点設定部162は、仮想線情報D1が示す仮想線VLと、仮想空間に設定される仮想面Sとの交点を、描画点Pとして設定する。仮想座標系αにおいて仮想面Sの法線ベクトルを(Nx、Ny、Nz)とすると、仮想面Sを示す平面方程式は、次の式(4)によって表される。そこで、描画点設定部162は、仮想線VLを示す式(3)を、仮想面Sを示す式(4)に代入することによって、仮想線VLと仮想面Sとの交点を求める。具体的には、式(3)を式(4)に代入すると、式(5)が得られる。式(5)をtについて解くと、式(6)が得られる。そして、式(6)を式(3)に代入することにより、仮想面Sと仮想線VLとの交点を求めることができる。
【数4】
【数5】
【数6】
【0075】
描画点設定部162は、仮想面Sと仮想線VLとの交点を描画点Pとして設定する。描画点設定部162は、例えば、描画点Pの位置を、スクリーン座標系βにおける座標値として設定する。描画点設定部162は、描画点Pの位置の座標値を含む座標情報D2を調整部17及び筆記情報取得部163に提供する。座標情報D2には、描画点Pの位置の座標値のほか、ペン先204の位置の座標値も含まれる。
【0076】
再び
図9を参照する。調整部17は、座標情報D2を参照して、仮想座標系αにおける仮想面Sと筆記具20との位置を調整する必要があるか否かを判定する。調整部17は、仮想面Sと筆記具20との位置を調整する必要があると判定した場合、仮想面Sと筆記具20との位置を調整する調整処理を行う。調整処理は、前述したフィードバック部154によるフィードバック処理に類似した処理を含む。調整部17は、前述したフィードバック処理と共に調整処理を行ってもよいし、フィードバック処理が行われない場合に調整処理を行ってもよい。或いは、調整部17は、フィードバック処理が行われる場合には、調整処理を行わなくてもよい。
【0077】
図8(a)に示すように、調整部17は、まず、フィードバック処理と同様に、仮想面Sに第1領域R1と第2領域R2とを設定する。そして、調整部17は、仮想面Sの第2領域R2内に描画点Pが位置しているか否かを判定する。すなわち、調整部17は、仮想面S内に描画点Pが収まっているか否かを判定する。調整部17は、描画点Pが第2領域R2内に位置していないと判定した場合、仮想面Sと筆記具20との位置を調整する必要があると判定し、筆記具20に対する仮想面Sの位置を基準位置に戻すキャリブレーション処理を実行する。ここでのキャリブレーション処理は、前述した調整部142によるキャリブレーション処理とは処理方法が異なる。
【0078】
図11(a)、
図11(b)、
図12(a)、及び
図12(b)は、調整部17によるキャリブレーション処理のイメージの一例を示す図である。
図11(a)に示す状態では、筆記具20のペン先204が仮想面Sに向いており、描画点Pが仮想面S内に位置している。この状態から
図11(b)に示す状態に変化すると、ペン先204の向きが仮想面Sから逸れるため、仮想面Sに描画点Pが設定されない。このような場合に、調整部17は、仮想面S内に描画点Pが設定されるように、筆記具20に対する仮想面Sの位置を基準位置に戻すキャリブレーションを実行する。
【0079】
筆記具20に対する仮想面Sの位置が基準位置にある状態とは、例えば、ペン先204の向く先が仮想面Sの中心Scを向くように仮想面Sと筆記具20とが配置される状態としてよい。ペン先204の向く先が仮想面Sの中心Scを向く状態とは、ペン先204から延びる仮想線VLが仮想面Sの中心Scと交差する状態(すなわち、仮想線VLと仮想面Sとの交点が中心Scに位置する状態)である。ペン先204の向く先が仮想面Sの中心Scを向く状態であれば、筆記具20の軸線方向Lは、例えば仮想面Sの法線方向に対して傾いていてもよいし、仮想面Sの法線方向に沿っていてもよい。仮想面Sと筆記具20とが基準位置にある状態は、ペン先204の向く先が仮想面Sの中心Scを向いている状態に限らず、ペン先204の向く先が仮想面Sにおける中心Scからずれた位置を向いている状態であってもよい。つまり、ペン先204から延びる仮想線VLが仮想面Sと交差する状態であれば、仮想線VLと仮想面Sとの交点が仮想面Sの中心Scからずれていてもよい。
【0080】
調整部17は、キャリブレーション処理を実行する際、仮想面Sと筆記具20との位置が基準位置となるように、仮想座標系αにおいて仮想面S及び筆記具20の少なくとも一方を移動させる。このとき、調整部17は、仮想座標系αにおいて筆記具20を移動させずに仮想面Sのみを移動させてもよいし、仮想面Sを移動させずに筆記具20のみを移動させてもよいし、仮想面S及び筆記具20の両方を移動させてもよい。
【0081】
図12(a)及び
図12(b)に示す例では、調整部17は、仮想座標系αにおいて筆記具20に対して仮想面Sのみを回転させている。このとき、仮想面Sの回転に伴い、仮想座標系αにおいて仮想面Sを規定するスクリーン座標系βの位置も回転する。その結果、仮想面S及びスクリーン座標系βは、
図12(b)に示す位置に移動する。
図12(b)に示す状態では、ペン先204の向く先が仮想面Sの中心Scを向くように筆記具20と仮想面Sとの位置が調整されているので、ペン先204から延びる仮想線VLが仮想面Sの中心Scと交差する。これにより、仮想座標系αにおける仮想面Sと筆記具20との位置を基準位置に戻すキャリブレーション処理が完了する。
【0082】
調整部17は、描画点Pが第2領域R2内であると判定した場合、描画点Pが第1領域R1内であるか否かを判定する。判定部144は、描画点Pが第1領域R1内でないと判定した場合、仮想面Sに対する筆記具20の所定の位置及び姿勢を基準値として、基準値に対する推定値D20の変化量を調整する調整処理を行う。この調整処理は、前述した調整部142による調整処理と同一の処理である。すなわち、調整部17は、シミュレーションの実行時に筆記具モデルD13に付与する外乱の関数Aを、外乱計算部157によって計算された外乱の関数Aよりも小さくする。
【0083】
これにより、シミュレーションの実行によって生じる筆記具モデルD13の位置及び姿勢の変化量を、実際の筆記具20の位置及び姿勢の変化量よりも小さくすることができる。その結果、シミュレーションの実行結果が示す仮想空間での推定値D20の動きが小さくなる。これにより、推定値D20が基準値から更に大きく外れることが抑制される。一方、判定部144は、描画点Pが第1領域R1内であると判定した場合、次の推定値D20に基づいて得られる描画点Pに対して再び上記の判定を繰り返す。
【0084】
図13は、筆記情報取得部163の構成の一例を示す図である。
図13に示すように、筆記情報取得部163は、例えば、軌跡情報取得部164と筆記情報抽出部165とを有する。軌跡情報取得部164は、例えば、座標列記録部166と距離計算部167とを含む。座標列記録部166は、描画点設定部162から座標情報D2を受け取ると、描画点Pの座標値を時系列で記録すると共に、ペン先204の座標値を時系列で記録する。座標列記録部166は、描画点Pの座標値とペン先204の座標値とを時系列で関連付けて記録する。座標列記録部166は、描画点Pの座標値を時系列で記録した描画点軌跡情報D31と、ペン先204の座標値を時系列で記録したペン先軌跡情報D32(入力点軌跡情報)と、を距離計算部167及び筆記情報抽出部165に提供する。描画点軌跡情報D31は、仮想面Sにおける描画点Pの座標値の2次元的な軌跡を示す情報である。ペン先軌跡情報D32は、仮想空間におけるペン先204の座標値の3次元的な軌跡を示す情報である。
【0085】
距離計算部167は、描画点軌跡情報D31及びペン先軌跡情報D32を用いて、描画点Pとペン先204との距離を計算する。具体的には、距離計算部167は、描画点軌跡情報D31及びペン先軌跡情報D32から、或る時刻における描画点Pの座標値と、当該時刻におけるペン先204の座標値(すなわち、描画点Pの座標値に関連付けられたペン先204の座標値)との間の距離を計算する。距離計算部167は、計算した距離を時系列で記録し、描画点Pの座標値及びペン先204の座標値に時系列で関連付ける。距離計算部167は、描画点Pの座標値とペン先204の座標値との距離を示す距離情報D33を筆記情報抽出部165に提供する。結果として、軌跡情報取得部164は、描画点軌跡情報D31、ペン先軌跡情報D32、及び距離情報D33を含む情報を、筆記具20の軌跡を示す軌跡情報D3として筆記情報抽出部165に提供する。以下、ペン先204の座標値を単に「ペン先204」と称し、描画点Pの座標値を単に「描画点P」と称する。
【0086】
筆記情報抽出部165は、距離情報D33を参照しながら、描画点軌跡情報D31から、ユーザUが仮想面Sでの筆記を意図した描画点Pの軌跡を示す筆記情報D4を抽出する。筆記情報D4が示す描画点Pの軌跡は、例えば、筆記具20を用いて仮想面Sに筆記された文字を表す。従って、筆記情報D4は、例えば、ユーザUによって筆記された文字情報としてよい。描画点軌跡情報D31が示す描画点Pの軌跡は、一筆書きのようにつながった状態になっている。そのため、例えば筆記情報D4が文字情報を含むような場合には、描画点軌跡情報D31から、ユーザUが仮想面Sに対して筆記することを意図した描画点Pの軌跡と、ユーザUが仮想面Sに対して筆記することを意図しない描画点Pの軌跡とを判別することによって、仮想面Sにおいて筆記された文字を正確に抽出する必要がある。
【0087】
ユーザUが仮想面Sに対して筆記することを意図した描画点Pの軌跡とは、例えば、筆記情報D4が文字情報を含む場合に、文字ストロークの切れ目を除く描画点Pの座標値の軌跡としてよい。文字ストロークとは、仮想面Sに対して文字を構成する線を描画する動作をいい、文字ストロークの切れ目とは、文字を構成する任意の線と次の線との間の箇所をいう。ユーザUは、仮想面Sに対して筆記することを意図しない場合(すなわち、ユーザUが文字ストロークの切れ目に対応する動作を行う場合)、仮想面Sに対して筆記することを意図する場合(すなわち、ユーザUが文字ストロークの動作を行う場合)と比べて、仮想面Sから筆記具20から離す動作を行う。
【0088】
その結果、ユーザUが仮想面Sに対する筆記を意図しないで筆記具20を動作させる場合には、ユーザUが仮想面Sに対する筆記を意図して筆記具20を動作させる場合よりも、仮想面Sと筆記具20との距離が大きくなる。そこで、筆記情報抽出部165は、仮想面Sと筆記具20との距離の変化を参照して、描画点軌跡情報D31から、ユーザUが仮想面Sに対して筆記することを意図した描画点Pの軌跡を筆記情報D4として抽出する。具体的には、筆記情報抽出部165は、描画点Pとペン先204との距離の変化が、予め設定された閾値未満であるか否かを判定する。そして、筆記情報抽出部165は、描画点Pとペン先204との距離の変化が閾値未満であると判定した場合、当該距離の変化に関連付けられた描画点Pの軌跡を、ユーザUが仮想面Sでの筆記を意図した筆記情報D4として抽出する。
【0089】
一方、筆記情報抽出部165は、描画点Pとペン先204との距離の変化が閾値未満でないと判定した場合、当該距離の変化に関連付けられた描画点Pの軌跡を、ユーザUが仮想面Sでの筆記を意図した筆記情報D4でないと判断する。上記の「閾値」は、データベース30に記憶された閾値情報から得ることができる。上記の閾値は、例えば、情報入力システム1、情報入力システム1の提供者、又はユーザUにより予め設定されてよい。上記の閾値は、例えば、同一のユーザUの描画点Pとペン先204との距離の変化を示す過去の統計値に基づいて設定されてもよいし、ユーザUにより任意に設定されてもよい。人工知能(AI)技術を使って、同一のユーザUの描画点Pとペン先204との距離の変化の閾値が事前に設定されてもよい。
【0090】
図14は、筆記情報D4が抽出されるイメージの一例を示す図である。
図14に示すように、ユーザUは、文字を構成する線を筆記してから次の線を筆記する動作を行う際、仮想面Sと筆記具20とのSz軸方向の距離が大きくなる。
図14において、軌跡T1,T2は、筆記時のペン先204が仮想面Sにあると仮定したときのペン先204の軌跡を示している。実線で示した軌跡T1は、ユーザUが仮想面Sでの筆記を意図したペン先204の軌跡を示している。一方、破線で示した軌跡T2は、ユーザUが仮想面Sでの筆記を意図しない、空中でのペン先204の軌跡を示している。
【0091】
図14に示すように、ユーザUが仮想面Sでの筆記を意図する動作(すなわち、軌跡T1に対応する動作)を行う場合における描画点Pとペン先204との距離と比べて、ユーザUが仮想面Sでの筆記を意図しない動作(すなわち、軌跡T2に対応する動作)を行う場合における描画点Pとペン先204との距離の方が大きくなる。そこで、筆記情報抽出部165は、描画点Pとペン先204との距離の変化Δdが予め設定された閾値未満であるか否かを判定することによって、描画点軌跡情報D31から、軌跡T1が示す描画点Pの座標値を筆記情報D4として抽出する。
【0092】
筆記情報抽出部165は、描画点Pとペン先204との距離の変化Δdに基づいて筆記情報D4を抽出しなくてもよく、例えば、例えば、ペン先204の移動速度の変化に基づいて筆記情報D4を抽出してもよい。或いは、筆記情報抽出部165は、描画点Pとペン先204との距離の変化Δd、及びペン先204の移動速度の変化の両方に基づいて、筆記情報D4を抽出してもよい。
【0093】
筆記情報抽出部165は、抽出した筆記情報D4を出力部19に提供する。出力部19は、筆記情報D4を表示部13に出力する。表示部13は、仮想空間に配置された仮想面Sに筆記情報D4をリアルタイムに表示する。これにより、ユーザUは、仮想面Sに表示された筆記情報D4を見ることができる。出力部19は、表示部13に限らず、他の表示装置に筆記情報D4を出力してもよい。例えば、出力部19は、パーソナルコンピュータ、クラウドサーバ、又はスマートデバイス(スマートフォン或いはタブレット端末)などの表示画面に筆記情報D4を出力してもよい。
【0094】
再び
図13を参照する。鑑定部18は、ユーザUによる筆記動作が終了すると、軌跡情報取得部164に記録された軌跡情報D3を受け取り、筆記情報D4の鑑定を行う。鑑定部18は、ユーザUが筆記を終了したことを知らせる信号を受信したときに、ユーザUによる筆記動作が終了したと判断してもよいし、筆記動作が停止してから所定時間経過したタイミングで筆記動作が終了したと判断してもよい。鑑定部18は、例えば、非筆記情報抽出部181と、比較部182とを有する。非筆記情報抽出部181は、ペン先軌跡情報D32から、ユーザUが仮想面Sでの筆記を意図しないペン先204の軌跡を非筆記情報D5として抽出する。非筆記情報D5の抽出は、筆記情報D4を抽出する方法と同様に行うことができる。
【0095】
つまり、非筆記情報抽出部181は、描画点Pとペン先204との距離の変化Δdが、予め設定された閾値未満でないと判定した場合、当該距離の変化に関連付けられたペン先204の軌跡を、ユーザUが仮想面Sでの筆記を意図しない非筆記情報D5として抽出する。非筆記情報D5は、ペン先軌跡情報D32のうち、筆記情報D4を除く描画点軌跡情報D31に対応する情報である。一方、非筆記情報抽出部181は、描画点Pとペン先204との距離の変化Δdが閾値未満でないと判定した場合、当該距離の変化に関連付けられたペン先204の軌跡を、ユーザUが仮想面Sでの筆記を意図しない非筆記情報D5でないと判断する。
【0096】
比較部182は、非筆記情報抽出部181から非筆記情報D5を受け取り、筆記情報D4及び非筆記情報D5を含む情報を、現在のユーザUの筆跡を示す現在筆跡情報D45(後述する
図15(a)参照)として取得する。比較部182は、軌跡情報D3から筆記情報D4を抽出してもよいし、筆記情報抽出部165から筆記情報D4を受け取ってもよい。更に、比較部182は、データベース30から過去筆跡情報D12を取得する。過去筆跡情報D12は、過去のユーザUの筆跡を示す情報であり、現在筆跡情報D45に対応する。比較部182は、現在筆跡情報D45と過去筆跡情報D12とを比較する。具体的には、比較部182は、現在筆跡情報D45と過去筆跡情報D12との一致度を計算する。
【0097】
上記の「一致度」とは、現在筆跡情報D45と過去筆跡情報D12とがどれくらい類似しているかを示す指数である。現在筆跡情報D45が示す各座標値と、過去筆跡情報D12が示す各座標値とが似通っていれば、一致度は高くなり、そうでなければ一致度は低くなる。比較部182は、例えば、現在筆跡情報D45が示す各座標値と、過去筆跡情報D12が示す各座標値とを時系列でそれぞれ比較し、時系列ごとの座標値のずれの程度を一致度として算出してもよい。この場合、比較部182は、時系列ごとの座標値のずれの程度の統計値(例えば、平均値又は中央値)を一致度として算出してもよい。
【0098】
比較部182は、算出した一致度が予め設定された閾値以上であるか否かを判定する。比較部182は、一致度が閾値以上であると判定した場合、現在筆跡情報D45と過去筆跡情報D12とが同一であると判断し、現在筆跡情報D45を提供したユーザUと、過去筆跡情報D12を提供したユーザUとが同一人物であると判断する。一方、比較部182は、一致度が閾値以上でないと判定した場合、現在筆跡情報D45と過去筆跡情報D12とが同一でないと判断し、現在筆跡情報D45を提供したユーザUと、過去筆跡情報D12を提供したユーザUとが異なる人物であると判断する。
【0099】
上記の「閾値」は、データベース30に記憶された閾値情報D11から得ることができる。上記の閾値は、例えば、情報入力システム1、情報入力システム1の提供者、又はユーザUにより予め設定されてよい。上記の閾値は、例えば、現在筆跡情報D45と過去筆跡情報D12との一致度を示す過去の統計値に基づいて設定されてもよいし、ユーザUにより任意に設定されてもよい。人工知能(AI)技術を使って、現在筆跡情報D45と過去筆跡情報D12との一致度の閾値が事前に設定されてもよい。
【0100】
図15(a)は、現在筆跡情報D45のイメージの一例を示す図である。
図15(a)は、過去筆跡情報D12のイメージの一例を示す図である。
図15(a)及び
図15(b)に示す例では、現在筆跡情報D45の筆記情報D4は、過去筆跡情報D12のうち筆記情報D4に対応する過去筆記情報D14に類似している。しかし、現在筆跡情報D45の非筆記情報D5は、過去筆跡情報D12のうち非筆記情報D5に対応する過去非筆記情報D15とは大きく異なっている。この場合、比較部182は、過去筆記情報D14及び非筆記情報D5を含めた現在筆跡情報D45と、筆記情報D4及び過去非筆記情報D15を含めた過去筆跡情報D12とを全体的に比較する。
【0101】
その結果、比較部182は、現在筆跡情報D45と過去筆跡情報D12との一致度が閾値以上でないと判定し、現在筆跡情報D45と過去筆跡情報D12とが同一でないと判断し、現在筆跡情報D45を提供したユーザUと、過去筆跡情報D12を提供したユーザUとが異なる人物であると判断する。このように、比較部182は、単に筆記情報D4と過去筆記情報D14との比較のみを行うのではなく、ユーザUが筆記を意図しない非筆記情報D5と過去非筆記情報D15との比較を含めて、筆記情報D4の鑑定を行う。そのため、本実施形態では、
図15(a)及び
図15(b)に示すように、筆記情報D4と過去筆記情報D14とが類似している場合であっても、非筆記情報D5と過去非筆記情報D15との違いによって、ユーザUが本人でない(すなわち、ユーザUがなりすましである)と判断することができる。
【0102】
比較部182は、過去筆跡情報D12から過去筆記情報D14及び過去非筆記情報D15を抽出し、筆記情報D4と過去筆記情報D14との一致度、及び非筆記情報D5と過去非筆記情報D15との一致度をそれぞれ算出してもよい。この場合、比較部182は、それぞれの一致度が閾値以上であるか否かを判定してもよい。また、比較部182は、現在筆跡情報D45と過去筆跡情報D12とを比較する際に、ペン先204の動きの速度を比較してもよい。比較部182は、現在筆跡情報D45と過去筆跡情報D12との一致度が閾値以上であるか否かを判定することにより、筆記情報D4を提供したユーザUが本人であるか否かを鑑定する。そして、比較部182は、筆記情報D4を提供したユーザUが本人であるか否かを示す鑑定結果D6を出力部19に出力する。出力部19は、鑑定結果D6を表示部13に出力して表示部13に出力してもよいし、鑑定結果D6をスピーカなどの報知部に出力してもよい。
【0103】
[情報入力システムの動作]
続いて、本実施形態に係る情報入力システム1の動作について説明する。
図16は、情報入力システム1において実施される情報入力方法の処理内容の一例を示すフローチャートである。
【0104】
まず、
図16を参照して、情報入力システム1による処理の全体像を説明する。情報入力システム1による処理は、動作センサ208から観測値D10を取得する観測処理(ステップS1)と、推定値D20を推定する推定処理(ステップS2)と、筆記具20の軌跡を認識する認識処理(ステップS3)と、筆記情報D4を出力する出力処理(ステップS4)と、に大別される。ステップS1~ステップS4は、例えば、所定の間隔を空けて繰り返し実行される。
【0105】
ステップS1では、筆記具20の動作に応じて、筆記具20の動作センサ208が加速度及び角速度の観測値D10を取得する。次に、端末10の取得部12が、動作センサ208から観測値D10を取得する。ステップS2では、推定部15が、観測値D10に基づいて、筆記具20の位置及び姿勢の推定値D20を推定する。ステップS3では、認識部16が、推定値D20に基づいて仮想面Sにおける描画点Pを設定する。次に、認識部16は、描画点Pが示す軌跡に基づいて仮想面Sに対する筆記情報D4を取得する。ステップS4では、出力部19が、筆記情報D4を表示部13に出力する。以上のステップS1~ステップS4が繰り返されることにより、ユーザUは、筆記具20により筆記した筆記情報D4を、表示部13を介してリアルタイムで視認できる。
【0106】
図17は、推定部15が行う推定処理の一例を示すフローチャートである。まず、モデル取得部155は、データベース30から、筆記具20をモデル化した筆記具モデルD13を取得する(ステップS21)。次に、初期化処理部156は、筆記具モデルD13の状態(位置及び姿勢)を初期化する(ステップS22)。一方、取得部12が観測値D10を取得すると、外乱計算部157は、筆記具モデルD13に付与すべき外乱を計算する(ステップS23)。外乱は、筆記具20の動作の際にユーザによって筆記具20に付与される力及びトルクである。次に、解析実行部158は、外乱条件D22を、筆記具20の動作のシミュレーションを実行するための解析条件として設定する(ステップS24)。
【0107】
次に、解析実行部158は、筆記具モデルD13を用いて筆記具20の動作のシミュレーションを実行する(ステップS25)。解析実行部158は、筆記具モデルD13に外乱条件D22を付与することにより、筆記具モデルD13をシミュレーション空間で動作させる。これにより、シミュレーション空間における筆記具モデルD13の位置及び姿勢が変化する。次に、推定値導出部153は、シミュレーションの実行結果から、現在の筆記具20の位置及び姿勢の推定値D20を導出する(ステップS26)。具体的には、推定値導出部153は、シミュレーション空間における筆記具モデルD13の位置及び姿勢を、仮想空間における筆記具20の位置及び姿勢に対応付けることにより、推定値D20を導出する。以上のステップS21~ステップS26を経て、観測値D10に基づいて推定値D20が推定される。
【0108】
図18は、フィードバック部154が行うフィードバック処理の一例を示すフローチャートである。推定部15が推定値D20を推定すると、計算部143は、仮想面Sに対する筆記具20の所定の位置及び姿勢を基準値として、基準値からの推定値D20の変化量を計算する(ステップS31)。基準値からの推定値D20の変化量は、例えば、筆記具20Aのペン先204が向く単位方向ベクトルV1と、筆記具20Aのペン先204が向く単位方向ベクトルV2との内積をとることによって表すことができる。単位方向ベクトルV1と単位方向ベクトルV2との内積をとることにより、単位方向ベクトルV1と単位方向ベクトルV2とがなす角度θを計算できる。そこで、計算部143は、基準値からの推定値D20の変化量を示す指標として、単位方向ベクトルV1と単位方向ベクトルV2とがなす角度θを計算する。
【0109】
次に、判定部144は、計算部143が計算した角度θ(推定値D20の変化量)が第2許容範囲内であるか否かを判定する(ステップS32)。判定部144は、角度θが第2許容範囲内でないと判定した場合(ステップS32:No)、調整部142は、推定値D20を基準値に戻すキャリブレーションを実行する(ステップS33)。調整部142は、例えば、推定値D20が示す筆記具20の単位方向ベクトルV2を、基準値が示す筆記具20Aの単位方向ベクトルV1に移動させるために必要な外乱を計算し、計算した外乱を筆記具モデルD13に付与することにより、シミュレーション空間における筆記具モデルD13の位置及び姿勢を変化させる。そして、調整部142は、シミュレーションの実行後の筆記具モデルD13の位置及び姿勢を、仮想空間における現在の筆記具20の位置及び姿勢に反映させることにより、現在の筆記具20の位置及び姿勢の推定値D20を基準値に戻す。
【0110】
一方、判定部144は、角度θが第2許容範囲内であると判定した場合、角度θが第1許容範囲内であるか否かを判定する(ステップS34)。判定部144は、角度θが第1許容範囲内でないと判定した場合(ステップS34:No)、基準値に対する推定値D20の変化量を調整する。具体的には、調整部142は、シミュレーションの実行時に筆記具モデルD13に付与する外乱の関数Aを、外乱計算部157によって計算された外乱の関数Aよりも小さくすることによって、筆記具モデルD13に付与される外乱を、実際の筆記具20に付与される外乱よりも小さくする。
【0111】
これにより、シミュレーション空間における筆記具モデルD13が、実際の筆記具20の動作よりも小さくなる。つまり、シミュレーションの実行結果が示す推定値D20の動きが小さくなる。判定部144は、角度θが第1許容範囲内であると判定した場合(ステップS34:Yes)、再びステップS31に戻り、次の推定値D20に基づいて得られる角度θに対して、ステップS31~ステップS35を繰り返す。
【0112】
図19は、フィードバック部154が行うドリフト補正処理の一例を示すフローチャートである。推定部15が推定値D20を推定すると、判定部144は、ドリフト補正条件を満たすか否かを判定する(ステップS41)。ドリフト補正条件は、ドリフト誤差が累積していない場合における一定時間内の推定値D20の分布の中心を基準値として、一定時間内の現在の推定値D20の分布の中心が閾値を超えたときに満たされる。判定部144は、ドリフト補正条件を満たすと判定した場合(ステップS41:Yes)、調整部142は、推定値D20を基準値に戻すキャリブレーションを実行する(ステップS42)。一方、判定部144は、ドリフト補正条件を満たしてないと判定した場合(ステップS41:No)、再びステップS41に戻り、次の推定値D20に対して、ステップS41及びステップS42を繰り返す。
【0113】
図20は、認識部16が行う認識処理の一例を示すフローチャートである。推定部15が推定値D20を推定すると、仮想線設定部161は、ペン先204の位置を通り且つ筆記具20の軸線方向Lに沿った直線を仮想線VLとして設定する(ステップS51)。仮想線VLは、ペン先204からペン先204が向く方向に直線状に延び、仮想面Sと交差する。次に、描画点設定部162は、仮想線VLと仮想面Sとの交点を算出する(ステップS52)。次に、描画点設定部162は、仮想線VLと仮想面Sとの交点を描画点Pとして設定する。描画点Pの位置は、例えば、スクリーン座標系βにおける座標値として設定される。
【0114】
次に、軌跡情報取得部164は、筆記具20の軌跡を示す軌跡情報D3を取得する(ステップS54)。軌跡情報D3は、描画点Pの座標値を時系列で記録した描画点軌跡情報D31と、ペン先204の座標値を時系列で記録したペン先軌跡情報D32と、描画点Pの座標値とペン先204の座標値との距離を示す距離情報D33とを含む。次に、筆記情報抽出部165は、距離情報D33を参照しながら、描画点軌跡情報D31から、ユーザUが仮想面Sでの筆記を意図した描画点Pの軌跡を示す筆記情報D4を抽出する(ステップS55)。筆記情報抽出部165は、例えば、距離情報D33が示す描画点Pとペン先204との距離の変化が、予め設定された閾値未満であるか否かを判定する。そして、筆記情報抽出部165は、描画点Pとペン先204との距離の変化が閾値未満であると判定した場合、当該距離の変化に関連付けられた描画点Pの軌跡を筆記情報D4として抽出する。
【0115】
図21は、調整部17が行う調整処理の一例を示すフローチャートである。描画点設定部162が描画点Pを設定すると、調整部17は、仮想面Sの第2領域R2内に描画点Pが位置しているか否かを判定する(ステップS61)。調整部17は、描画点Pが第2領域R2内に位置していないと判定した場合(ステップS61:No)、筆記具20に対する仮想面Sの位置を基準位置に戻すキャリブレーション処理を実行する(ステップS62)。一方、調整部17は、描画点Pが第2領域R2内であると判定した場合(ステップS61:Yes)、描画点Pが第1領域R1内であるか否かを判定する(ステップS63)。判定部144は、描画点Pが第1領域R1内でないと判定した場合(ステップS63:No)、仮想面Sに対する筆記具20の所定の位置及び姿勢を基準値として、基準値に対する推定値D20の変化量を調整する(ステップS64)。調整部17は、描画点Pが第1領域R1内であると判定した場合(ステップS63:Yes)、再びステップS61に戻り、次の推定値D20に基づいて得られる描画点Pに対して、ステップS61~ステップS64を繰り返す。
【0116】
図22は、鑑定部18が行う鑑定処理の一例を示すフローチャートである。まず、鑑定部18は、ユーザUによる筆記動作が終了したか否かを判定する(ステップS71)。鑑定部18は、ユーザUによる筆記動作が終了していないと判定した場合(ステップS71:No)、ユーザUによる筆記動作が終了したと判定するまでステップS71を繰り返す。一方、鑑定部18は、ユーザUによる筆記動作が終了したと判定した場合(ステップS71:Yes)、軌跡情報D3から非筆記情報D5を抽出する。具体的には、非筆記情報抽出部181が、描画点Pとペン先204との距離の変化Δdに基づいて、ユーザUが仮想面Sでの筆記を意図しないペン先204の軌跡を非筆記情報D5として抽出する(ステップS72)。
【0117】
次に、比較部182は、筆記情報D4及び非筆記情報D5を含む情報を、現在のユーザUの筆跡を示す現在筆跡情報D45として取得し、現在筆跡情報D45と過去筆跡情報D12との一致度を計算する(ステップS73)。次に、比較部182は、現在筆跡情報D45と過去筆跡情報D12との一致度に基づいて筆記情報D4を鑑定する(ステップS74)。具体的には、比較部182は、一致度が予め設定された閾値以上であるか否かを判定する。比較部182は、一致度が閾値以上であると判定した場合、現在筆跡情報D45を提供したユーザUと過去筆跡情報D12を提供したユーザUとが同一人物であると判断する。つまり、比較部182は、筆記情報D4を提供したユーザUが本人であると判断する。一方、比較部182は、一致度が閾値以上でないと判定した場合、現在筆跡情報D45を提供したユーザUと過去筆跡情報D12を提供したユーザUとが異なる人物であると判断する。つまり、比較部182は、筆記情報D4を提供したユーザUがなりすましであると判断する。
【0118】
[作用効果]
以上に説明した、本実施形態に係る情報入力システム1、情報入力方法、及び情報入力プログラムが奏する作用効果について説明する。本実施形態では、仮想面Sと仮想線VLとの交点が描画点Pと設定される。そして、仮想面Sでの描画点Pの軌跡が示す情報が、筆記具20による筆記情報D4として表示部13に出力される。この構成によれば、仮想面Sとペン先204との距離の変化に関わらず、筆記具20による描画点Pを常に仮想面Sに設定できるので、ユーザUの入力動作に伴い仮想面Sからペン先204がずれた場合であっても、仮想面Sに対する筆記情報D4を確実に取得できる。更に上記の構成によれば、3次元的に変化する仮想面Sが設定された場合であっても、仮想面Sの形状に関わらず、仮想面Sに設定された描画点Pの軌跡に基づいて仮想面Sに対する筆記情報D4を容易に取得できる。
【0119】
本実施形態のように、軸線方向Lの一端にペン先204を有する筆記具20が入力機器として用いられてよい。この場合、仮想面Sに対する筆記具20の筆記動作を確実に取得できる。
【0120】
本実施形態のように、仮想線VLは、ペン先204を通り且つ軸線方向Lに沿って延びる仮想的な直線であってもよい。この場合、仮想線VLと仮想面Sとの交点を簡易な計算によって求めることができる。
【0121】
本実施形態のように、情報入力システム1は、仮想面Sにおける描画点Pの軌跡が示す軌跡情報D3から、仮想面Sに対する筆記情報D4を抽出する筆記情報取得部163を備え、筆記情報取得部163は、仮想面Sでの描画点Pの軌跡を示す描画点軌跡情報D31を取得する軌跡情報取得部164と、ペン先204と描画点Pとの距離の変化に基づいて、描画点軌跡情報D31から筆記情報D4を抽出する筆記情報抽出部165と、を有してもよい。この場合、ユーザUが仮想面Sに対して筆記を行う際の動きの変化を利用して、描画点軌跡情報D31から筆記情報D4を正確に抽出できる。
【0122】
本実施形態のように、情報入力システム1は、筆記情報D4を鑑定する鑑定部18を備え、軌跡情報取得部164は、空間でのペン先204の軌跡を示すペン先軌跡情報D32を取得し、鑑定部18は、現在のユーザUの筆記動作により得られた筆記情報D4及びペン先軌跡情報D32を、過去のユーザUの筆記動作により得られた筆記情報D4及びペン先軌跡情報D32とそれぞれ比較することにより、現在のユーザUと過去のユーザUとが同一であるか否かを判定してもよい。この場合、現在のユーザUによる筆記情報D4と過去のユーザUによる筆記情報D4とが類似している場合であっても、現在のユーザUによる描画点軌跡情報D31と過去のユーザUによる描画点軌跡情報D31とを比較することによって、現在のユーザUと過去のユーザUとが同一であるかを正確に判定できる。つまり、仮想面Sでの描画点Pの軌跡を示す筆記情報D4だけでなく、仮想面Sに対する空中でのペン先204の軌跡を示すペン先軌跡情報D32も比較対象に含めることによって、より多くの情報に基づいて筆記情報D4を正確に鑑定できる。
【0123】
本実施形態のように、鑑定部18は、ペン先204と描画点Pとの距離の変化に基づいて、描画点軌跡情報D31から非筆記情報D5として抽出する非筆記情報抽出部181と、現在のユーザUの筆記動作により得られた筆記情報D4及び非筆記情報D5と、過去のユーザUの筆記動作により得られた筆記情報D4及び非筆記情報D5とをそれぞれ比較する比較部182と、を有してもよい。現在のユーザUと過去のユーザUとが同一であるか否かを判定する際、非筆記情報D5にはユーザUの筆記動作の際の癖などが表れやすいので、筆記情報D4を類似させた場合であっても、非筆記情報D5に違いが表れやすい。そこで、非筆記情報D5を比較対象に含めることによって、筆記情報D4をより正確に鑑定できる。
【0124】
本実施形態のように、情報入力システム1は、仮想面Sとペン先204との位置を調整する調整部17を備え、調整部17は、仮想面Sの第2領域R2内に描画点Pが位置していない場合に、第2領域R2内に描画点Pが位置するように、仮想面Sとペン先204との位置を調整してもよい。この場合、仮想面Sに描画点Pをより確実に設定することができるので、仮想面Sでの描画点Pの軌跡に基づく筆記情報D4をより確実に取得できる。
【0125】
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上述した実施形態に限定されない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0126】
上述した実施形態では、端末10が、機能要素として、通信部11と、取得部12と、表示部13と、設定部14と、推定部15と、調整部17と、認識部16と、鑑定部18と、出力部19とを有する場合を例示した。しかし、これらの機能要素の少なくともいずれか1つが筆記具20に実装されてもよい。これらの機能要素の全てが筆記具20に実装される場合には、情報入力システム1は、端末10を用いることなく、筆記情報D4の取得を行うことができる。情報入力システム1は、端末10とは別にサーバを備えてもよい。この場合、端末10が備える上記の各機能要素のうち少なくともいずれか1つがサーバに実装されてもよい。上述した実施形態では、端末10又はデータベース30が閾値情報D11、過去筆跡情報D12、及び筆記具モデルD13などの各種情報を記憶する場合を例示した。しかし、筆記具20が記憶装置を備える場合には、当該記憶装置が各種情報を記憶してもよい。
【0127】
上述した実施形態では、動作センサ208が、加速度センサ及びジャイロセンサを有する場合を例示した。しかし、動作センサ208は、加速度センサ又はジャイロセンサに代えて、互いに直交する3軸方向の磁場を検出する磁場センサを有してもよいし、加速度センサ及びジャイロセンサに加えて磁場センサを有してもよい。また、上述した実施形態では、入力機器として筆記具20が用いられる場合を例示したが、ユーザUによる入力動作を検出可能な機器であれば、筆記具20以外の機器であってもよい。
【0128】
情報入力システム1において実行される処理手順は、上述した実施形態で示した例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正又は削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0129】
入力機器としての筆記具20の利用目的および利用場面は限定されない。筆記具20は、筆記を伴う学習の場面において利用されてもよいし、学習の場面以外の場面において利用されてもよい。筆記を伴う学習は、学校、自宅、又はそれ以外の場所において行われる学習であってもよい。筆記具20は、イラスト又は図表の作成の場面において利用されてもよい。入力情報システムは、上述した場面に限られず、筆記具20を例とする入力機器を利用する種々の場面に適用可能である。
【0130】
以下、本発明の要旨を示す。
[1] 入力機器が配置される空間に仮想面を設定する仮想面設定部と、
前記空間における前記入力機器の位置を示す入力点を取得する位置取得部と、
前記入力点を通る仮想線と前記仮想面との交点を、前記入力機器による描画点として設定する描画点設定部と、
前記仮想面での前記描画点の軌跡が示す情報を、前記入力機器による入力情報として表示装置に出力する出力部と、を備える、情報入力システム。
[2] 前記入力機器は、軸線方向の一端にペン先を有する筆記具であり、
前記入力点は、前記空間における前記ペン先の位置を示す、[1]に記載の情報入力システム。
[3] 前記仮想線は、前記入力点を通り且つ前記軸線方向に沿って延びる仮想的な直線である、[2]に記載の情報入力システム。
[4] 前記仮想面における前記描画点の軌跡が示す情報から、前記仮想面に対する筆記情報を前記入力情報として抽出する筆記情報取得部を更に備え、
前記筆記情報取得部は、
前記仮想面での前記描画点の軌跡を示す描画点軌跡情報を取得する軌跡情報取得部と、
前記入力点と前記描画点との距離の変化に基づいて、前記描画点軌跡情報から前記筆記情報を抽出する筆記情報抽出部と、を有する、[2]又は[3]に記載の情報入力システム。
[5] 前記筆記情報を鑑定する鑑定部を更に備え、
前記軌跡情報取得部は、前記空間での前記入力点の軌跡を示す入力点軌跡情報を取得し、
前記鑑定部は、現在のユーザの筆記動作により得られた前記筆記情報及び前記入力点軌跡情報を、過去のユーザの筆記動作により得られた前記筆記情報及び前記入力点軌跡情報とそれぞれ比較することにより、前記現在のユーザと前記過去のユーザとが同一であるか否かを判定する、[4]に記載の情報入力システム。
[6] 前記鑑定部は、
前記入力点と前記描画点との距離の変化に基づいて、前記描画点軌跡情報から、前記筆記情報を除く前記入力点軌跡情報に対応する情報を非筆記情報として抽出する非筆記情報抽出部と、
前記現在のユーザの筆記動作により得られた前記筆記情報及び前記非筆記情報と、前記過去のユーザの筆記動作により得られた前記筆記情報及び前記非筆記情報とをそれぞれ比較する比較部と、を有する、[5]に記載の情報入力システム。
[7] 前記仮想面と前記入力点との位置を調整する調整部を更に備え、
前記調整部は、前記仮想面の許容範囲内に前記描画点が位置していない場合に、前記許容範囲内に前記描画点が位置するように、前記仮想面と前記入力点との位置を調整する、[1]~[6]のいずれかに記載の情報入力システム。
[8] プロセッサを備える情報入力システムにより実行される情報入力方法であって、
入力機器が配置される空間に仮想面を設定するステップと、
前記空間における前記入力機器の位置を示す入力点を取得するステップと、
前記入力点を通る仮想線と前記仮想面との交点を、前記入力機器による描画点として設定するステップと、
前記仮想面での前記描画点の軌跡が示す情報を、前記入力機器による入力情報として表示装置に出力するステップと、を備える、情報入力方法。
[9] 入力機器が配置される空間に仮想面を設定するステップと、
前記空間における前記入力機器の位置を示す入力点を取得するステップと、
前記入力点を通る仮想線と前記仮想面との交点を、前記入力機器による描画点として設定するステップと、
前記仮想面での前記描画点の軌跡が示す情報を、前記入力機器による入力情報として表示装置に出力するステップと、をコンピュータに実行させる、情報入力プログラム。
【符号の説明】
【0131】
1…情報入力システム、5…位置取得部、13…表示部(表示装置)、14…設定部(仮想面設定部)、17…調整部、18…鑑定部、19…出力部、20…筆記具(入力機器)、101…プロセッサ、162…描画点設定部、163…筆記情報取得部、164…軌跡情報取得部、165…筆記情報抽出部、181…非筆記情報抽出部、182…比較部、204…ペン先、D4…筆記情報(入力情報)、D5…非筆記情報、D31…描画点軌跡情報、D32…ペン先軌跡情報(入力点軌跡情報)、L…軸線方向、P…描画点、R2…第2領域(許容範囲)、S…仮想面、T1…軌跡、U…ユーザ、VL…仮想線。