以下に、本発明にかかる入力方法、入力プログラムおよび入力装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
最初に、実施例1に係る入力装置を用いて入力を行う入力システムの一例を説明する。図1は、入力システムのシステム構成の一例を説明する図である。図1に示すように、入力システム10は、ウェアブルデバイス11と、ヘッドマウントディスプレイ12と、入力装置13と有する。ウェアブルデバイス11とヘッドマウントディスプレイ12と入力装置13は、ネットワークを介して通信可能に接続され、各種の情報を交換することが可能とされている。かかるネットワークの一態様としては、有線または無線を問わず、携帯電話などの移動体通信、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。本実施例では、ウェアブルデバイス11とヘッドマウントディスプレイ12と入力装置13が無線通信により通信を行う場合を例に説明する。
入力システム10は、ユーザの入力の支援を行うシステムである。例えば、入力システム10は、工場などでのユーザの作業支援に用いられ、ユーザがメモなどをジェスチャにより入力する場合に使用される。ユーザは、様々な場所を移動しながら作業する場合がある。このため、パーソナルコンピュータなどの固定端末ではなく、ウェアブルデバイス11を用いてジェスチャにより入力を可能とすることにより、ユーザは、様々な場所を移動しながら入力を行うことができる。
ウェアブルデバイス11は、ユーザが身に着けて使用し、ユーザのジェスチャを検出するデバイスである。本実施例では、ウェアブルデバイス11を、指に装着するデバイスとする。ウェアブルデバイス11は、ユーザのジェスチャとして、指の姿勢変化を検出し、指の姿勢変化に関する情報を入力装置13へ送信する。
図2A〜図2Cは、ウェアブルデバイスの一例を示す図である。ウェアブルデバイス11は、指輪のように、リング形状とされており、図2Cに示すように、リングに指を通すことで指への装着が可能とされている。ウェアブルデバイス11は、リングの一部分が他の部分より厚く且つ幅広に形成され、主要な電子部品を内蔵する部品内蔵部とされている。また、ウェアブルデバイス11は、リングの部品内蔵部の内面が平面状に形成されている。すなわち、ウェアブルデバイス11は、部品内蔵部を指の上側にした場合に指とフィットしやすい形状となっている。ウェアブルデバイス11は、図2Cに示すように、部品内蔵部を指の上側としてほぼ同様の向きで指に装着される。また、ウェアブルデバイス11は、図2Aに示すように、リングの側面側のスイッチ20が設けられている。スイッチ20は、図2Cに示すように、ウェアブルデバイス11を右手の人差指に装着した場合に親指に対応する位置に配置されている。ウェアブルデバイス11は、スイッチ20の周辺部分が、スイッチ20の上面と同様の高さまで隆起させた形状に形成されている。これにより、ウェアブルデバイス11は、指をスイッチ20部分に置いただけではスイッチ20がオンとならない。図2Dは、ウェアブルデバイスのスイッチに対する操作の一例を示す図である。図2Dの例は、ウェアブルデバイス11を人差指に装着してスイッチ20を親指で操作する場合を示している。ウェアブルデバイス11は、図2Dの左側に示すように、親指をスイッチ20部分に置いただけではスイッチ20をオンされず、図2Dの右側に示すように、親指を押し込むことでスイッチ20がオンされる。ユーザは、入力開始時においては、指を入力ポジションにそえ、入力を行う際に指で押し込むことで入力を開始する。スイッチ20は、伸縮した状態でオン状態となり、伸長した状態でオフ状態となり、内蔵されたバネなどの弾性体により伸張した状態となるように付勢されている。これにより、スイッチ20は、指で押し込まれるとことでオン状態となり、指の力を抜き緩めることでオフ状態となる。このように構成とすることで、ウェアブルデバイス11は、正常な状態で装着されないと入力を開始することができず、指に装着した際に装着位置が正常な状態の位置に自然に矯正される。また、ユーザは、指をスイッチ20から離さずに入力、非入力区間のコントロールできる。
図1に戻り、ヘッドマウントディスプレイ12は、ユーザが頭に装着し、各種の情報をユーザに視認可能に表示するデバイスである。ヘッドマウントディスプレイ12は、両眼に対応したものであってもよく、片眼のみに対応したものであってもよい。
図3は、ヘッドマウントディスプレイの一例を示す図である。本実施例では、ヘッドマウントディスプレイ12は、両眼に対応する眼鏡形状とされている。ヘッドマウントディスプレイ12は、ユーザが装着したままでも、外部の現実環境を視認可能なように、レンズ部分に透過性を有する。また、ヘッドマウントディスプレイ12は、レンズ部分の一部に透過性を有する表示部が内蔵され、表示部に画像などの各種の情報の表示が可能とされている。これにより、ヘッドマウントディスプレイ12は、装着したユーザに現実環境を視認させつつ、視界の一部で各種の情報を視認させて現実環境を拡張する拡張現実を実現する。図3には、装着したユーザの視界12Aの一部に設けられた表示部30が模式的に示されている。
また、ヘッドマウントディスプレイ12は、2つのレンズ部分の間にカメラが内蔵され、当該カメラにより、装着したユーザの視線方向の画像の撮影が可能とされている。
図1に戻り、入力装置13は、ユーザのジェスチャによる入力を支援する装置である。入力装置13は、例えば、スマートフォンやタブレット端末など、携帯可能な情報処理装置である。なお、入力装置13は、データセンタなどに設けられた1台または複数台のコンピュータとして実装してもよい。すなわち、入力装置13は、ウェアブルデバイス11およびヘッドマウントディスプレイ12と通信可能であれば、クラウドのコンピュータであってもよい。
入力装置13は、ウェアブルデバイス11から送信される指の姿勢変化に関する情報を基に、ユーザのジェスチャのよる入力を認識し、認識された入力の内容に応じた情報をヘッドマウントディスプレイ12に表示させる。
[各装置の構成]
次に、ウェアブルデバイス11、ヘッドマウントディスプレイ12および入力装置13の各装置の装置構成について説明する。図4は、装置構成の一例を示す図である。
最初に、ウェアブルデバイス11について説明する。図4に示すように、ウェアブルデバイス11は、スイッチ20と、姿勢センサ21と、無線通信I/F(インタフェース)部22と、制御部23と、電源部24とを有する。なお、ウェアブルデバイス11は、上記の機器以外の他の機器を有してもよい。
スイッチ20は、ユーザからの入力を受け付けるデバイスである。スイッチ20は、図2Cに示したように、ウェアブルデバイス11のリングの側面側に設けられている。スイッチ20は、押されるとオンとなり、離されるとオフとなる。スイッチ20は、ユーザからの操作入力を受け付ける。例えば、ウェアブルデバイス11がユーザの人差指に装着された場合、スイッチ20は、ユーザの親指による操作入力を受け付ける。スイッチ20は、受け付けた操作内容を示す操作情報を制御部23へ出力する。ユーザは、スイッチ20を操作して各種の入力を行う。例えば、ユーザは、ジェスチャによる入力を開始する際、スイッチ20をオンする。
姿勢センサ21は、ユーザのジェスチャを検出するデバイスである。例えば、姿勢センサ21は、3軸のジャイロセンサである。姿勢センサ21は、図2Cに示すように、ウェアブルデバイス11が正しく指に装着された場合、3軸が指の回転軸と対応するようにウェアブルデバイス11に内蔵されている。図5は、指の回転軸の一例を示す図である。図5の例では、互いに直交するX、Y、Zの3軸が示されている。図5の例では、指を曲げる動作方向の回転軸がY軸とされ、指を左右に振る動作方向の回転軸がZ軸とされ、指を回す動作方向の回転軸がX軸とされている。姿勢センサ21は、制御部23からの制御に応じて、X、Y、Zの各回転軸の回転を検出し、検出された3軸の回転を指の姿勢変化を示す姿勢変化情報として制御部23へ出力する。
無線通信I/F部22は、他の装置との間で無線の通信制御を行うインタフェースである。無線通信I/F部22としては、無線チップなどのネットワークインタフェースカードを採用できる。
無線通信I/F部22は、無線により通信を行うデバイスである。無線通信I/F部22は、無線により他の装置と各種情報を送受信する。例えば、無線通信I/F部22は、制御部23の制御により、操作情報および姿勢変化情報を入力装置13へ送信する。
制御部23は、ウェアブルデバイス11を制御するデバイスである。制御部23としては、マイコン、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部23は、スイッチ20の操作情報を無線通信I/F部22を制御して入力装置13へ送信する。また、制御部23は、スイッチ20がオンとなると、姿勢センサ21を制御して姿勢変化を検出させる。制御部23は、姿勢センサ21により検出される姿勢変化情報を無線通信I/F部22を制御して入力装置13へ送信する。
電源部24は、バッテリや電池などの電力源を含み、ウェアブルデバイス11の各電子部品に電力を供給する。
次に、ヘッドマウントディスプレイ12について説明する。図4に示すように、ヘッドマウントディスプレイ12は、表示部30と、カメラ31と、無線通信I/F部32と、制御部33と、電源部34とを有する。なお、ヘッドマウントディスプレイ12は、上記の機器以外の他の機器を有してもよい。
表示部30は、各種情報を表示するデバイスである。表示部30は、図3に示したように、ヘッドマウントディスプレイ12のレンズ部分に設けられている。表示部30は、各種情報を表示する。例えば、表示部30は、後述するメニュー画面や、仮想的なレーザポインタ、入力の軌跡などを表示する。
カメラ31は、画像を撮影するデバイスである。カメラ31は、図3に示したように、2つのレンズ部分の間に設けられている。カメラ31は、制御部33の制御に応じて、画像を撮影する。
無線通信I/F部32は、無線により通信を行うデバイスである。無線通信I/F部32は、無線により他の装置と各種情報を送受信する。例えば、無線通信I/F部32は、表示部30に表示する画像の画像情報や撮影を指示する操作コマンドを入力装置13から受信する。また、無線通信I/F部32は、カメラ31により撮影された画像の画像情報を入力装置13へ送信する。
制御部33は、ヘッドマウントディスプレイ12を制御するデバイスである。制御部33としては、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、マイコン、ASIC、FPGA等の集積回路を採用できる。制御部33は、入力装置13から受信した画像情報を表示部30に表示させる制御を行う。また、制御部33は、入力装置13から撮影を指示する操作コマンドを受信すると、カメラ31を制御して画像を撮影する。そして、制御部33は、撮影された画像の画像情報を無線通信I/F部32を制御して入力装置13へ送信する。
電源部34は、バッテリや電池などの電力源を含み、ヘッドマウントディスプレイ12の各電子部品に電力を供給する。
次に、入力装置13について説明する。図4に示すように、入力装置13は、無線通信I/F部40と、記憶部41と、制御部42と、電源部43とを有する。なお、入力装置13は、上記の機器以外の他の機器を有してもよい。
無線通信I/F部40は、無線により通信を行うデバイスである。無線通信I/F部40は、無線により他の装置と各種情報を送受信する。例えば、無線通信I/F部40は、操作情報および姿勢変化情報をウェアブルデバイス11から受信する。また、無線通信I/F部40は、ヘッドマウントディスプレイ12で表示させる画像の画像情報や各種の操作コマンドをヘッドマウントディスプレイ12へ送信する。また、無線通信I/F部40は、ヘッドマウントディスプレイ12のカメラ31により撮影された画像の画像情報を受信する。
記憶部41は、ハードディスク、SSD(Solid State Drive)、光ディスクなどの記憶装置である。なお、記憶部41は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)などのデータを書き換え可能な半導体メモリであってもよい。
記憶部41は、制御部42で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部41は、入力の支援に用いる各種のプログラムを記憶する。さらに、記憶部41は、制御部42で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部41は、認識辞書データ50と、メモ情報51と、画像情報52とを記憶する。
認識辞書データ50は、手書き入力された文字の認識ための辞書データである。例えば、認識辞書データ50には、各種の文字の標準的な軌跡情報が記憶されている。
メモ情報51は、手書き入力されたメモに関する情報を記憶したデータである。例えば、メモ情報51には、手書き入力された文字の画像と、手書き入力された文字を認識した結果の文字情報とが対応付けて記憶される。
画像情報52は、ヘッドマウントディスプレイ12のカメラ31により撮影された画像の画像情報である。
制御部42は、入力装置13を制御するデバイスである。制御部42としては、CPU、MPU等の電子回路や、マイコン、ASIC、FPGA等の集積回路を採用できる。制御部42は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部42は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部42は、入力検出部60と、表示制御部61と、キャリブレーション部62と、軸検出部63と、軌跡記録部64と、判定部65と、認識部66と、格納部67と、操作コマンド出力部68とを有する。
入力検出部60は、ウェアブルデバイス11から受信される操作情報および姿勢変化情報に基づいて、各種の入力の検出を行う。例えば、入力検出部60は、操作情報に基づいて、スイッチ20に対する操作を検出する。例えば、入力検出部60は、所定時間以内にスイッチ20が押された回数からシングルクリック、ダブルクリック、トリプルクリックや、スイッチ20の長押し操作を検出する。また、入力検出部60は、ウェアブルデバイス11から受信される姿勢変化情報から3軸の回転による指の姿勢変化を検出する。
表示制御部61は、各種の表示制御を行う。例えば、表示制御部61は、入力検出部60による検出結果に応じて各種の画面の画像情報を生成し、生成した画像情報を無線通信I/F部40を制御してヘッドマウントディスプレイ12へ送信する。これにより、ヘッドマウントディスプレイ12の表示部30には、画像情報の画像が表示される。例えば、表示制御部61は、入力検出部60によりダブルクリックが検出されると、ヘッドマウントディスプレイ12の表示部30にメニュー画面を表示させる。
図6は、メニュー画面の一例を示す図である。図6に示すように、メニュー画面70には、「1 キャリブレーション」、「2 メモ入力」、「3 メモ閲覧」、「4 撮影」の各項目が表示されている。「1 キャリブレーション」の項目は、検出される指の姿勢情報のキャリブレーションするキャリブレーションモードを指定するものである。「2 メモ入力」の項目は、手書きによりメモの入力するメモ入力モードを指定するものである。「3 メモ閲覧」の項目は、入力済みのメモの閲覧する閲覧モードを指定するものである。「4 撮影」の項目は、ヘッドマウントディスプレイ12のカメラ31による画像の撮影する撮影モードを指定するものである。
本実施例に係る入力装置13は、手書き入力、または、カーソルによりメニュー画面70の項目の選択が可能とされている。例えば、表示制御部61は、手書きの入力された軌跡が、後述する認識部66により「1」〜「4」の数字であると認識された場合、認識された数字に対応する項目のモードが選択されたと判定する。また、表示制御部61は、画面上にカーソルを表示させ、入力検出部60により検出される指の姿勢変化に応じてカーソルを移動させる。例えば、表示制御部61は、Y軸の回転が検出されると回転に応じた速度でカーソルを画面の左右方向に移動させる。また、表示制御部61は、Z軸の回転が検出されると回転に応じた速度でカーソルを画面の上下方向に移動させる。表示制御部61は、メニュー画面70の何れかの項目の上にカーソルが位置し、入力検出部60によりシングルクリックが検出されると、カーソルが位置する項目のモードが選択されたと判定する。表示制御部61は、メニュー画面70の何れの項目が選択されると、メニュー画面70を消去する。
キャリブレーション部62は、検出される指の姿勢情報のキャリブレーションを行う。例えば、メニュー画面70でキャリブレーションモードが選択された場合、キャリブレーション部62は、検出される指の姿勢情報のキャリブレーションを行う。
ここで、ウェアブルデバイス11は、指に対して周方向に回転したずれ状態で装着される場合がある。ウェアブルデバイス11が指に対してずれ状態で装着された場合、ウェアブルデバイス11により検出される姿勢変化に回転分のずれが生じ、検出される動作がユーザの意図と異なるものとなる場合がある。このような場合、ユーザは、メニュー画面70でキャリブレーションモードを選択する。ユーザは、メニュー画面70でキャリブレーションモードを選択すると、指にウェアブルデバイス11が装着された手を開閉させる。ウェアブルデバイス11は、手を開閉させた際の指の姿勢変化の姿勢変化情報を入力装置13へ送信する。
キャリブレーション部62は、姿勢変化情報に基づき、手を開閉によるウェアブルデバイス11が装着された指を屈伸させた際の指の動作を検出する。キャリブレーション部62は、検出した指の動作に基づいて、指の動作の基準方向をキャリブレーションする。
図7は、指の動作の基準方向を説明する図である。図7には、手を開閉させた図が示されている。手を開閉させた際、指の動作は、屈伸の動作に制限される。この指の屈伸の動作による姿勢の変化は、図7のように、Y軸の回転に主に表れる。
図8および図9には、ウェアブルデバイス11を装着した状態で手を開閉させて検出されたX、Y、Zの各回転軸の回転速度の経時的な変化が示されている。図8は、ウェアブルデバイスを正常に装着した状態での回転速度の変化を示す図である。図9は、ウェアブルデバイスをななめにずらして装着した状態での回転速度の変化を示す図である。図8(A)、(B)および図9(A)、(B)には、それぞれ手を開いた状態および手を閉じた状態でのウェアブルデバイス11のX、Y、Zの各回転軸が示されている。ウェアブルデバイス11を正常に装着した状態では、図8(C)に示すように、Y軸で主に回転が検出される。一方、ウェアブルデバイス11をずらして装着した状態では、図9(C)に示すように、Y軸およびZ軸で主に回転が検出される。
キャリブレーション部62は、指を屈伸させた際の姿勢変化情報に基づいて、指の動作の基準方向を補正する補正情報を算出する。例えば、キャリブレーション部62は、補正情報として、図8(C)のX、Y、Zの各回転軸を、図9(C)のX、Y、Zの各回転軸に補正する回転角を算出する。
キャリブレーション部62によるキャリブレーションが終了すると、入力検出部60は、キャリブレーション部62により算出された補正情報を用いて姿勢変化情報を補正して姿勢変化を検出する。このように、補正情報を用いて姿勢変化情報を補正することにより、姿勢変化情報は、図8に示すX、Y、Zの各回転軸を基準としたものに補正される。
軸検出部63は、入力検出部60により検出される指の姿勢変化に基づき、姿勢を示す軸を検出する。例えば、軸検出部63は、指の姿勢変化に応じて方向移動する軸を検出する。例えば、軸検出部63は、3次元空間上で原点を通り、X、Y、Zの各回転軸についてそれぞれの回転方向および回転速度に応じて、X、Y、Zの各方向に移動する軸の方向ベクトルを算出する。なお、姿勢だけで動きを検出する場合、手首を正対方向から離れれば離れるほど大きく動かすことは困難である。また、手のひらを水平にした場合、上下方向の自由度は高いが左右方向の自由度は低い場合がある。そこで、軸検出部63は、キャリブレーション部62により補正された軸の方向の中心点から上下と左右のポインティング感度を変えてもよい。例えば、軸検出部63は、手の上下方向の回転より、手の左右方向の回転を大きく補正して軸の方向ベクトルを算出する。すなわち、軸検出部63は、回転量が同じ場合、上下方向の回転による移動量より、左右方向の回転による移動量を大きく補正する。また、軸検出部63は、補正された軸の方向の中心点から離れれば離れるほど感度を大きくしてもよい。例えば、軸検出部63は、軸の方向の中心点から離れるほど回転を大きく補正して軸の方向ベクトルを算出する。すなわち、軸検出部63は、回転量が同じ場合、軸の方向の中心点から離れた周辺部分での回転による移動量を、中心点付近での回転による移動量よりも大きく補正する。これにより、分析装置10は、手首の可動のし易さに対応して回転の感度が設定されるため、正確なポインティングがしやすくすることができる。
表示制御部61は、軸検出部63により検出される軸に連動する仮想的なレーザポインタをヘッドマウントディスプレイ12の表示部30に表示させる。例えば、メニュー画面70でキャリブレーションモードが選択された場合、表示制御部61は、軸検出部63により検出される軸に連動する仮想的なレーザポインタを配置した画面の画像情報を生成する。そして、表示制御部61は、生成した画像情報を無線通信I/F部40を制御してヘッドマウントディスプレイ12へ送信する。これにより、ヘッドマウントディスプレイ12の表示部30には、仮想的なレーザポインタの画像が表示される。
図10は、表示される仮想的なレーザポインタの一例を示す図である。図10には、原点Xから正面に設けられた仮想面Bに向かって仮想的なレーザーポインタPが示されている。この仮想的なレーザーポインタPは、ウェアブルデバイス11により検出される姿勢変化に連動して移動する。
軌跡記録部64は、入力に関するジェスチャを検出する。例えば、軌跡記録部64は、自由空間上にジェスチャにより手書きされた文字を検出する。例えば、軌跡記録部64は、入力検出部60によりスイッチ20の長押し操作が検出されると、長押し操作の間の軸の軌跡を記録することにより、手書きされた文字を検出する。
表示制御部61は、軌跡記録部64により記録された軸の軌跡を合わせて表示させる。図10の例では、仮想面Bに軌跡Lが表示されている。軌跡Lの始点L1は、スイッチ20が押された位置である。なお、軌跡Lは、レーザーポインタPと合わせ表示しなくもてもよい。例えば、表示制御部61は、画面を2つの領域に分けて軌跡LとレーザーポインタPを別な領域に表示してもよい。
このようにレーザーポインタPを表示させることにより、ヘッドマウントディスプレイ12を装着したユーザは、自由空間への入力が行いやすくなる。ユーザが指により自由空間へ入力を行う場合、検出される指の動作には、並進成分と回転成分とがある。この並進成分は、手の平行移動やユーザの身体全体の移動によるもので、指の動作のみの検出が困難である。このため、検出される動作がユーザの意図と異なり、指による入力が難しい場合がある。そこで、入力装置13は、指の姿勢の変化である回転成分を検出し、検出される回転成分から指の姿勢を示す軸を検出して軸に連動する仮想的なレーザポインタを表示させ、検出結果をユーザにフィードバックする。
図11は、ユーザへのフィードバックの一例を示す図である。図11(A)には、ヘッドマウントディスプレイ12の表示部30に仮想的なレーザポインタが表示されている。ユーザは、ヘッドマウントディスプレイ12を通して仮想的なレーザポインタを見ることで、指の姿勢の変化でどのような入力が行われるかが把握しやくなり、入力が容易になる。また、ユーザは、ヘッドマウントディスプレイ12を通して仮想的なレーザポインタを見ることで、現実環境を視認させつつ、現実環境を拡張する拡張現実を実現できる。例えば、図11(B)に示すように、自由空間の現実環境に仮想的な壁が現れ、仮想的な壁にレーザーポインタで手書きを行っているように視認させることができる。このように、入力装置13が検出結果をユーザにフィードバックすることにより、ユーザが入力の細かい変化を把握しやすくなるため、例えば、漢字など複雑な文字を手書き入力する場合の認識率も向上させることができる。また、入力装置13は、指の姿勢の変化である回転成分を検出して入力を行うため、例えば、ユーザが移動中であっても入力を行うことができる。
判定部65は、入力対象外とするジェスチャを判定する。例えば、検出したジェスチャのうち、所定条件を満たすジェスチャを入力対象外と判定する。
ここで、自由空間上にジェスチャにより手書きされた文字の軌跡には、文字を構成する所謂、画(かく)と呼ばれる線部分と、線部分の間を移動する移動部分が含まれる。手書きされた文字は、この移動部分が含まれると、認識し難く、ユーザが意図した文字と異なる文字に認識される場合がある。手書きされた文字は、画数の多い文字ほど誤認識されやすい。特に、一筆書きされた文字は、移動部分が多く含まれるため、文字の認識が困難となる。
一方、漢字などの文字は、左から右、上から下へ移動して書くものが多い。左上への移動は、線部分の間を移動であることが多い。
そこで、この所定条件を、左上に移動するジェスチャとする。判定部65は、左上へ移動するジェスチャを入力対象外と判定し、左上へ移動するジェスチャ以外を入力対象と判定する。図12は、ジェスチャの判定の一例を示す図である。図12には、長押し操作の間の軸の位置を所定周期でサンプリングした結果が示されている。点X1〜X5は、サンプリングされた位置を示している。判定部65は、各サンプリングされた位置をそれぞれ1つ前のサンプリングされた位置と比較し、サンプリングされた位置が1つ前のサンプリングされた位置に対して左上となる場合、入力対象外と判定する。例えば、点X4、X5は、Y座標がマイナスかつZ座標がマイナスとなり、左上となるため、入力対象外と判定される。
表示制御部61は、判定部65による判定結果に基づき、入力対象外と入力対象とを区別して表示する。例えば、表示制御部61は、入力対象外を入力対象よりも視認性を低く表示する。例えば、表示制御部61は、入力対象外とされたジェスチャの軌跡を、入力対象とされたジェスチャの軌跡より薄く表示する。図12の例では、点X4、X5の軌跡は、点X1〜X3の軌跡より階調値が低くされ、薄く表示されている。なお、以下では、薄く表示する線部分を識別しやすくするため、薄く表示する線部分を破線で示す。図12の例では、薄く表示される線部分を破線で示している。
図13は、手書き入力された文字の軌跡の表示結果の一例を示す図である。図13(A)は、「鳥」を手書き入力した例である。図13(B)は、「神」を手書き入力した例である。図13(C)は、「瀬」を手書き入力した例である。図13(D)は、「枝」を手書き入力した例である。図13(E)は、「磯」を手書き入力した例である。図13(F)は、「薔」を手書き入力した例である。図13(G)は、「薇」を手書き入力した例である。図13(A)〜図13(G)に示すように、左上に移動する軌跡を薄く区別して表示することにより、軌跡で示される文字が認識しやくなる。なお、図13の例では、薄く表示される線部分を破線で示している。
なお、表示制御部61は、色を変えて入力対象外を入力対象よりも視認性を低く表示してもよい。例えば、表示制御部61は、入力対象を赤で表示し、入力対象外をグレーで表示してもよい。また、表示制御部61は、入力対象外とされたジェスチャの軌跡を消去し、入力対象とされたジェスチャの軌跡を表示してもよい。すなわち、表示制御部61は、図12の例の点X4、X5の軌跡を表示しないように表示制御してもよい。
認識部66は、軌跡記録部64により記録された軌跡から文字の認識を行う。例えば、認識部66は、軌跡記録部64により記録された軌跡のうち、入力対象とされた軌跡の文字認識を行う。例えば、認識部66は、図13(A)〜図13(G)の濃い線で示された軌跡について文字認識を行う。認識部66は、入力対象とされた軌跡を、認識辞書データ50に記憶された各種の文字の標準的な軌跡と比較し、最も類似度の高い文字を特定する。認識部66は、特定した文字の文字コードを出力する。ここで、ユーザは、文字の手書き入力を行う場合、文字ごとに、スイッチ20の長押し操作して入力を行う。すなわち、スイッチ20は、1文字ごとに一旦、離される。軌跡記録部64は、1文字ずつ手書き入力の軌跡を記録する。認識部66は、1文字ずつ軌跡から文字を認識する。
図14は、文字認識の結果の一例を示す図である。図14の例では、薄く表示される線部分を破線で示している。図14(A)は、手書き入力された「森」について文字認識を行った結果である。図14(B)は、手書き入力された「村」について文字認識を行った結果である。図14(C)は、手書き入力された「通」について文字認識を行った結果である。図14(D)は、手書き入力された「利」について文字認識を行った結果である。図14(A)〜図14(D)には、左上へ移動した左上軌跡を削除せずに文字認識した場合と、左上軌跡を削除して文字認識した場合について、候補となる文字と、類似度を示すスコア(score)が示されている。候補となる文字は、「code:」の後に示されている。スコアは、類似度を示し、値が大きいほど類似度が高いことを示す。例えば、手書き入力された「森」は、左上軌跡を削除せずに文字認識した場合、スコアが920であり、左上軌跡を削除して文字認識した場合、スコアが928であり、左上軌跡を削除した方がスコアが高くなる。また、左上軌跡を削除した方が、誤変換も抑制できる。例えば、手書き入力された「森」は、認識の候補となる文字に「森」、「蘇」、「穀」があるが、左上軌跡を削除した方がスコアが高くなるため、誤変換を抑制できる。
表示制御部61は、認識部66により認識された文字に撥ねがある場合、入力対象外とされたジェスチャの軌跡のうち、文字の撥ねに対応する軌跡を入力対象とされたジェスチャの軌跡と同様に表示する。例えば、軌跡記録部64は、記録した軌跡のうち、文字の撥ねに対応する軌跡を文字部分の軌跡と同様に変更する。表示制御部61は、軌跡記録部64により変更された文字の画像を表示する。
図15は、文字の撥ねに対応する軌跡の表示結果の一例を示す図である。図15の例では、薄く表示される線部分を破線で示している。図15は、手書き入力された「村」についての表示結果を示している。手書き入力された「村」は、文字の撥ねに対応する軌跡80が他の文字部分と同様に表示されている。このように、文字の撥ねに対応する軌跡を表示することにより、手書きされた文字が認識しやすくなる。
格納部67は、各種の格納を行う。例えば、格納部67は、手書きされた文字の軌跡および認識された文字をメモ情報51に格納する。例えば、メニュー画面70でメモ入力モードが選択された場合、格納部67は、軌跡記録部64に記録された文字の画像と、認識部66により認識された文字とを対応付けて、日時情報と共に、メモ情報51に格納する。メモ情報51に格納された情報は、参照可能である。例えば、メニュー画面70でメモ入力モードが選択された場合、表示制御部61は、記憶部41のメモ情報51に格納された情報を表示する。
図16は、メモ情報の保続内容を表示した一例を示す図である。図16の例では、薄く表示される線部分を破線で示している。図16の例では、メモ入力の入力日時と、手書きされた文字を認識したテキストの文章と、手書きされた文字の画像による文章が対応付けて表示されている。このようにテキストの文章と、手書きされた文字の画像による文章と対応付けて表示することで、ユーザは、手書きされた文字が正しく認識されているかを確認できる。また、テキストの文章と、手書きされた文字の画像による文章と対応付けて表示することで、ユーザは、軌跡の認識で文字が誤変換された場合でも、対応する文字の画像を参照することで、手書きした文字を把握できる。また、手書きされた文字の画像には、ユーザの筆跡の特徴が記録される。このため、手書きされた文字の画像も格納することで、例えば、サインのように、ユーザが入力したことの証明に用いることもできる。
操作コマンド出力部68は、認識した文字または記号に基づいて、他の機器へ操作コマンドを出力する。例えば、ユーザは、ヘッドマウントディスプレイ12のカメラ31による撮影を行う場合、メニュー画面70で撮影モードを選択する。そして、ユーザは、撮影を希望するタイミングでウェアブルデバイス11のスイッチ20の長押し操作して所定文字を手書き入力する。この所定文字は、文字、数字、記号の何れであってもよく、例えば、「1」とする。操作コマンド出力部68は、メニュー画面70で撮影モードが選択された場合、撮影準備の状態となる。軌跡記録部64は、撮影準備の状態で手書き入力された軌跡を記録する。認識部66は、軌跡から文字を認識する。操作コマンド出力部68は、認識部66により所定文字が認識されると、撮影を指示する操作コマンドをヘッドマウントディスプレイ12へ送信する。ヘッドマウントディスプレイ12は、撮影を指示する操作コマンドを受信すると、カメラ31による撮影を行い、撮影された画像の画像情報を入力装置13へ送信する。格納部67は、撮影された画像の画像情報を画像情報52として記憶部41に格納する。このように、入力装置13は、他の機器へ操作コマンドを出力して操作を行うことができる。
電源部43は、バッテリや電池などの電力源を含み、入力装置13の各電子部品に電力を供給する。
[処理の流れ]
次に、入力装置13により入力を行う流れについて説明する。最初に、メニュー画面によりモードの選択を受け付けるメニュー処理の流れについて説明する。図17は、メニュー処理の手順の一例を示すフローチャートである。このメニュー処理は、所定のタイミング、例えば、入力検出部60によりダブルクリックが検出されたタイミングで実行される。
図17に示すように、表示制御部61は、メニュー画面70を表示領域の一部に配置した画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信して表示部30にメニュー画面70を表示させる(S10)。入力検出部60は、ウェアブルデバイス11から受信される姿勢変化情報から3軸の回転による指の姿勢変化を検出する(S11)。軸検出部63は、入力検出部60により検出される指の姿勢変化に基づき、姿勢を示す軸を検出する(S12)。表示制御部61は、メニュー画面70の表示領域と異なる表示領域に仮想的なレーザポインタを配置した画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信して表示部30に仮想的なレーザポインタも表示させる(S13)。
表示制御部61は、入力検出部60によりスイッチ20の長押し操作が検出されているか判定する(S14)。スイッチ20の長押し操作が検出されている場合(S14肯定)、軌跡記録部64は、軸の軌跡を記録する(S15)。判定部65は、ジェスチャが入力対象外であるか判定する(S16)。例えば、判定部65は、左上へ移動するジェスチャを入力対象外と判定し、左上へ移動するジェスチャ以外を入力対象と判定する。表示制御部61は、仮想的なレーザポインタの表示領域の仮想面に、記録された軸の軌跡を表示させた画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信して表示部30に軸の軌跡も表示させる(S17)。この際、表示制御部61は、入力対象外と入力対象とを区別して表示させる。例えば、表示制御部61は、入力対象外の軌跡を入力対象の軌跡よりも視認性を低く表示する。表示制御部61は、入力検出部60により検出されるスイッチ20の長押し操作が終了したか否か判定する(S18)。スイッチ20の長押し操作が終了していない場合(S18否定)、上述のS11に移行する。
一方、スイッチ20の長押し操作が終了した場合(S18肯定)、認識部66は、軌跡記録部64により記録された軌跡から文字の認識を行う(S19)。表示制御部61は、認識部66により「1」〜「4」の数字が認識されたか否かを判定する(S20)。「1」〜「4」の数字が認識されていない場合(S20否定)、軌跡記録部64は、軸の軌跡を消去する(S21)。表示制御部61は、仮想的なレーザポインタの表示領域の仮想面に表示した軸の軌跡を消去した画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信して軸の軌跡を消去し(S22)、上述のS11に移行する。
一方、「1」〜「4」の数字が認識された場合(S20肯定)、表示制御部61は、認識された数字に対応する項目のモードが選択されたと判定してメニュー画面70を消去し(S23)、処理を終了する。
一方、スイッチ20の長押し操作が検出されていない場合(S14否定)、表示制御部61は、入力検出部60によりスイッチ20のシングルクリックが検出されたかを判定する(S24)。スイッチ20のシングルクリックが検出されない場合(S24否定)、上述のS11へ移行する。
一方、スイッチ20のシングルクリックが検出された場合(S24肯定)、表示制御部61は、シングルクリックが検出された位置がメニュー画面70の何れかの項目の上であるか否かを判定する(S25)。シングルクリックが検出された位置がメニュー画面70の何れの項目の上でもない場合(S25否定)、上述のS11に移行する。一方、シングルクリックが検出された位置がメニュー画面70の何れかの項目の上である場合(S25肯定)、表示制御部61は、カーソルが位置する項目のモードが選択されたと判定してメニュー画面70を消去し(S26)、処理を終了する。
次に、指の姿勢情報のキャリブレーションするキャリブレーション処理の流れについて説明する。図18は、キャリブレーション処理の手順の一例を示すフローチャートである。このメニュー処理は、所定のタイミング、例えば、メニュー画面70によりキャリブレーションモードが選択されたタイミングで実行される。ユーザは、メニュー画面70でキャリブレーションモードを選択すると、指にウェアブルデバイス11が装着された手を開閉させる。
図18に示すように、キャリブレーション部62は、ウェアブルデバイス11から受信される姿勢変化情報に基づき、手を開閉によるウェアブルデバイス11が装着された指を屈伸させた際の指の動作を検出する(S30)。キャリブレーション部62は、指を屈伸させた際の姿勢変化情報に基づいて、指の動作の基準方向を補正する補正情報を算出し(S31)、処理を終了する。
次に、手書きによりメモの入力するメモ入力処理の流れについて説明する。図19は、メモ入力処理の手順の一例を示すフローチャートである。このメモ入力処理は、所定のタイミング、例えば、メニュー画面70によりメモ入力モードが選択されたタイミングで実行される。
図19に示すように、入力検出部60は、ウェアブルデバイス11から受信される姿勢変化情報から3軸の回転による指の姿勢変化を検出する(S40)。軸検出部63は、入力検出部60により検出される指の姿勢変化に基づき、姿勢を示す軸を検出する(S41)。表示制御部61は、表示領域の一部に仮想的なレーザポインタを配置した画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信して表示部30に仮想的なレーザポインタを表示させる(S42)。
表示制御部61は、入力検出部60によりスイッチ20の長押し操作が検出されるか判定する(S43)。スイッチ20の長押し操作が検出されない場合(S43否定)、上述のS40へ移行する。
一方、スイッチ20の長押し操作が検出される場合(S43肯定)、軌跡記録部64は、軸の軌跡を記録する(S44)。判定部65は、ジェスチャが入力対象外であるか判定する(S45)。例えば、判定部65は、左上へ移動するジェスチャを入力対象外と判定し、左上へ移動するジェスチャ以外を入力対象と判定する。表示制御部61は、仮想的なレーザポインタの表示領域の仮想面に、記録された軸の軌跡を表示させた画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信して表示部30に軸の軌跡も表示させる(S46)。この際、表示制御部61は、入力対象外と入力対象とを区別して表示させる。例えば、表示制御部61は、入力対象外の軌跡を入力対象の軌跡よりも視認性を低く表示する。表示制御部61は、入力検出部60により検出されるスイッチ20の長押し操作が終了したか否か判定する(S47)。スイッチ20の長押し操作が終了していない場合(S47否定)、上述のS40に移行する。
一方、スイッチ20の長押し操作が終了した場合(S47肯定)、認識部66は、軌跡記録部64により記録された軌跡から文字の認識を行う(S48)。表示制御部61は、認識部66により認識された文字に撥ねがあるか否か判定する(S49)。撥ねがない場合(S49否定)、後述のS52へ移行する。一方、撥ねがある場合(S49肯定)、軌跡記録部64は、記録した軌跡のうち、文字の撥ねに対応する軌跡を文字部分の軌跡と同様に変更する(S50)。表示制御部61は、軌跡記録部64により変更された軌跡を表示する(S51)。
格納部67は、文字の軌跡の画像および認識部66により認識された文字をメモ情報51に格納する(S52)。軌跡記録部64は、軸の軌跡を消去する(S53)。表示制御部61は、仮想的なレーザポインタの表示領域の仮想面に表示した軸の軌跡を消去した画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信して表示部30の仮想面に表示した軸の軌跡を消去する(S54)。なお、表示制御部61は、認識部66により認識された文字を一時的に表示させてもよい。
表示制御部61は、入力検出部60により手書き入力を終了する所定の終了操作が検出されたか否かを判定する(S55)。この終了操作は、例えば、トリプルクリックとする。所定の終了操作が検出されていない場合(S55否定)、上述のS40に移行する。一方、終了操作が検出された場合(S55肯定)、処理を終了する。
次に、メモを閲覧するメモ閲覧処理の流れについて説明する。図20は、メモ閲覧処理の手順の一例を示すフローチャートである。このメモ閲覧処理は、所定のタイミング、例えば、メニュー画面70により閲覧モードが選択されたタイミングで実行される。
図20に示すように、表示制御部61は、記憶部41のメモ情報51を読み出し、メモ情報51の内容を表示領域の一部に配置した画面の画像情報を生成し、生成した画像情報をヘッドマウントディスプレイ12へ送信してメモ情報51を表示させる(S60)。
表示制御部61は、入力検出部60により手書き入力を終了する所定の終了操作が検出されたか否かを判定する(S61)。この終了操作は、例えば、トリプルクリックとする。所定の終了操作が検出されていない場合(S61否定)、上述のS61に移行する。一方、終了操作が検出された場合(S61肯定)、表示制御部61は、メモ情報51の情報の表示を終了して、処理を終了する。
次に、撮影の操作コマンドを出力する操作コマンド出力処理の流れについて説明する。図21は、操作コマンド出力処理の手順の一例を示すフローチャートである。この操作コマンド出力処理は、所定のタイミング、例えば、メニュー画面70により撮影モードが選択されたタイミングで実行される。
図21に示すように、入力検出部60は、ウェアブルデバイス11から受信される姿勢変化情報から3軸の回転による指の姿勢変化を検出する(S70)。軸検出部63は、入力検出部60により検出される指の姿勢変化に基づき、姿勢を示す軸を検出する(S71)。なお、本実施例では、撮影モードについて撮影の邪魔にならないよう仮想的なレーザポインタを表示させないが、仮想的なレーザポインタを表示させてもよい。
表示制御部61は、入力検出部60によりスイッチ20の長押し操作が検出されているか判定する(S72)。スイッチ20の長押し操作が検出されない場合(S72否定)、後述のS81へ移行する。
一方、スイッチ20の長押し操作が検出されている場合(S72肯定)、軌跡記録部64は、軸の軌跡を記録する(S73)。判定部65は、ジェスチャが入力対象外であるか判定する(S74)。例えば、判定部65は、左上へ移動するジェスチャを入力対象外と判定し、左上へ移動するジェスチャ以外を入力対象と判定する。表示制御部61は、入力検出部60により検出されるスイッチ20の長押し操作が終了したか否か判定する(S75)。スイッチ20の長押し操作が終了していない場合(S75否定)、上述のS70に移行する。
一方、スイッチ20の長押し操作が終了した場合(S75肯定)、認識部66は、軌跡記録部64により記録された軌跡から文字の認識を行う(S76)。操作コマンド出力部68は、認識部66により所定文字が認識されたか否かを判定する(S77)。所定文字が認識された場合(S77肯定)、操作コマンド出力部68は、撮影を指示する操作コマンドをヘッドマウントディスプレイ12へ送信する(S78)。格納部67は、ヘッドマウントディスプレイ12から受信した撮影された画像の画像情報を画像情報52として記憶部41に格納する(S79)。
一方、所定文字が認識されない場合(S77否定)、後述のS80へ移行する。
軌跡記録部64は、軸の軌跡を消去する(S80)。
表示制御部61は、入力検出部60により手書き入力を終了する所定の終了操作が検出されたか否かを判定する(S81)。この終了操作は、例えば、トリプルクリックとする。所定の終了操作が検出されていない場合(S81否定)、上述のS70に移行する。一方、終了操作が検出された場合(S81肯定)、処理を終了する。
[効果]
上述してきたように、本実施例に係る入力装置13は、入力に関するジェスチャを検出する。入力装置13は、検出したジェスチャのうち、所定条件を満たすジェスチャを入力対象外と判定する。入力装置13は、判定結果に基づき、入力対象外と入力対象とを区別して表示する。これにより、入力装置13は、手書きされた文字を認識しやすくすることができる。
また、本実施例に係る入力装置13は、左上へ移動するジェスチャを入力対象外と判定する。これにより、入力装置13は、手書き入力された文字の各画の間の移動部分を判別でき、ユーザが見た場合および文字認識する場合で共に手書きされた文字を認識しやすくすることができる。
また、本実施例に係る入力装置13は、入力対象外とされたジェスチャの軌跡を、入力対象とされたジェスチャの軌跡より薄く表示する。これにより、入力装置13は、表示された文字の軌跡において、文字の各画の軌跡を区別して表示できるため、手書きされた文字を認識しやすくすることができる。また、入力装置13は、入力対象外とされたジェスチャの軌跡を薄く表示することで、各画の間の移動部分の軌跡も区別して認識できる。
また、本実施例に係る入力装置13は、入力対象外とされたジェスチャの軌跡を消去し、入力対象とされたジェスチャの軌跡を表示する。これにより、入力装置13は、文字の各画の軌跡が表示できるため、手書きされた文字を認識しやすくすることができる。
また、本実施例に係る入力装置13は、入力対象とされたジェスチャの軌跡の文字認識を行う。これにより、入力装置13は、手書き入力された文字を精度よく文字認識できる。
また、本実施例に係る入力装置13は、文字認識により認識された文字に撥ねがある場合、入力対象外とされたジェスチャの軌跡のうち、文字の撥ねに対応する軌跡を入力対象とされたジェスチャの軌跡と同様に表示する。これにより、入力装置13は、手書き入力された撥ねがある文字で撥ねが同様に表示されるため、文字を認識しやすくすることができる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、上記の実施例では、入力システム10が、ウェアブルデバイス11、ヘッドマウントディスプレイ12および入力装置13を有する場合について説明したが、これに限定されない。例えば、ウェアブルデバイス11またはヘッドマウントディスプレイ12が入力装置13の機能を有してもよい。
また、上記の実施例では、ウェアブルデバイス11を用いて手書き入力を行う場合について説明したが、これに限定されない。例えば、スマートフォン、タブレット端末など、タッチパネルを有する情報処理装置のタッチパネルに手書き入力された文字にも適用できる。また、パーソナルコンピュータでマウスなどに位置を指定可能な入力デバイスを用いて手書き入力された文字にも適用できる。この場合も手書きされた文字を認識しやすくすることができる。
また、上記の実施例では、ヘッドマウントディスプレイ12に表示を行う場合について説明したが、これに限定されない。例えば、外部のディスプレイやスマートフォン、タブレット端末などタッチパネルに表示してもよい。
また、上記の実施例1〜3で用いた入力対象外とするジェスチャの判定は、組み合わせて行ってもよい。例えば、圧力が所定以下のジェスチャを入力対象外とする判定と、左上に移動するジェスチャを入力対象外とする判定とを組み合わせて行ってもよい。
また、上記の実施例2では、手書き入力された文字を構成する線部分の区切りを圧力により判定する場合について説明したが、これに限定されない。例えば、手書き入力された文字と文字の区切りを圧力により判定してもよい。この場合、圧力値が所定値以下のジェスチャを文字を構成する線部分の区切りとするか、文字の区切りとするかをモードとして設定可能としてもよい。
また、上記の実施例では、手書き入力により文字の削除を受け付けてもよい。例えば、メモ入力において、「一」との文字を手書き入力で右から左に記載した場合、削除コマンドとして直前のテキストの削除を行ってもよい。図25は、メモ入力の削除の説明する図である。図25の例では、メモ入力の入力日時と、手書きされた文字を認識したテキストの文章と、手書きされた文字の画像による文章が対応付けて表示されている。図25の例では、薄く表示される線部分を破線で示している。また、図25の例では、削除の内容が説明しやすいように、削除された文字を四角(□)で囲んで示している。この四角で囲んだ文字は、実際には記憶されてない。例えば、図25の例では、ユーザが手書きで「明日」と入力したが、手書きの「日」が文字「田」と認識されている。ユーザは、「一」との文字を手書き入力で右から左に記載して削除を指示する。この結果、文字「田」が削除される。図25の例では、その後、ユーザが手書きで「日は会議中止」と入力したが、手書きの「止」が文字「込」と認識されている。ユーザは、「一」との文字を手書き入力で右から左に記載して削除を指示する。この結果、文字「込」が削除される。図25の例では、その後、ユーザが手書きで「止」と入力し、文字「止」が認識されている。
また、上記の実施例では、認識部66が、軌跡記録部64により記録された軌跡のうち、入力対象とされた軌跡の文字認識を行う場合について説明したが、これに限定されない。認識部66は、ウェアブルデバイス11での手書き入力特有の事象に着目した各種のフィルタ処理を行った後、文字認識を行ってもよい。
例えば、手書き入力では、上下方向や左右方向に入力を行おうとしても、軌跡が上下方向や左右方向から角度がずれた入力となる場合がある。特に、自由空間への手書き入力では、入力の対象とする面が無いため、ずれが発生しやすい。そこで、認識部66は、軌跡が上下方向または左右方向から所定角度以内の線と見なせる場合、軌跡に対して角度の補正を行って文字認識を行ってもよい。認識部66は、軌跡の始点と終点を結ぶ直線が、上下方向または左右方向から所定角度以内であり、軌跡が直線から所定幅以内である場合、上下方向または左右方向からの角度のずれ分、軌跡の角度の補正を行って文字認識を行ってもよい。所定角度は、例えば、30度とする。所定幅は、例えば、始点と終点の距離の1/10とする。この所定角度および所定幅は、外部から設定可能としてもよい。また、ユーザに上下方向または左右方向の軌跡の入力を行わせ、認識部66が、入力された軌跡から始点と終点を結ぶ直線の角度のずれ、軌跡の直線から幅を検出して、所定角度および所定幅を学習してもよい。図26は、軌跡の補正の一例を示す図である。図26の例では、数字の「1」が手書き入力されたが、上下方向に対して軌跡に角度のずれが発生している。図26の例では、認識部66は、軌跡の始点と終点を結ぶ直線110が上下方向からずれている角度分、軌跡の角度の補正を行って文字認識を行う。これにより、入力装置13は、手書き入力された軌跡を精度よく文字認識できる。
また、例えば、ウェアブルデバイス11による手書き入力では、スイッチ20の操作が遅くなる場合や早くなる場合がある。そこで、認識部66は、スイッチ20の長押し操作の開始前後の姿勢変化情報に基づいて、軌跡の補正を行って文字認識を行ってもよい。例えば、認識部66は、スイッチ20の長押し操作の終了の前後で、姿勢の急激な変化および加速度の急激な変化の何れか一方、または両方が検出された場合、急激な変化に対応する軌跡の部分を除いて軌跡の文字認識を行う。この急激な変化を検出する閾値は、固定で定めてもよく、ユーザに所定の文字を手書き入力させ、文字の終了前後の姿勢変化情報から学習してもよい。図27は、軌跡の補正の一例を示す図である。図27の例では、数字の「6」が手書き入力を行った際に、スイッチ20の長押し操作の終了が遅れて、軌跡の終了部分111で急激な変化が発生している。認識部66は、終了部分111を除いて軌跡の文字認識を行う。なお、姿勢の急激な変化は、長押し操作の間に所定周期でサンプリングされる位置の変化から検出してもよい。これにより、入力装置13は、手書き入力された軌跡を精度よく文字認識できる。
また、例えば、認識部66は、スイッチ20の長押し操作の前の軌跡を追加する補正を行って文字認識を行ってもよい。例えば、認識部66は、文字の認識の結果、認識率が低い場合や、長押し操作の前から長押し操作開始時と同様の姿勢変化が継続している場合、所定時間分前の軌跡、またはスイッチ20の長押し操作の直前の停止状態からの軌跡を追加する補正を行って文字認識を行ってもよい。図28は、軌跡の補正の一例を示す図である。図28の例では、数字の「3」が手書き入力されたが、スイッチ20の長押し操作が遅れて、最初の部分112の軌跡が不足している。認識部66は、スイッチ20の長押し操作の前の部分112の軌跡を追加する補正を行って文字認識を行う。これにより、入力装置13は、手書き入力された軌跡を精度よく文字認識できる。
また、例えば、認識部66は、軌跡記録部64により記録された軌跡のうち、入力対象とされた軌跡の文字認識を行う場合について説明したが、これに限定されない。例えば、認識部66は、軌跡記録部64により記録された軌跡のうち、入力対象とされた軌跡の文字認識と、記録された軌跡の文字認識を行う。すなわち、認識部66は、入力対象外とされた部分も含めて軌跡の文字認識を行う。そして、認識部66は、入力対象とされた軌跡の文字認識の結果と、記録された軌跡の文字認識の結果を比較し、認識結果のよい方の文字を認識結果としてもよい。例えば、認識部66は、入力対象とされた軌跡を文字認識した結果のスコアと、記録された軌跡の文字認識した結果のスコアを比較し、スコアの高い方の文字を、認識結果の文字としてもよい。このように、入力対象とされた軌跡と、入力対象外とされた部分も含めた軌跡の文字認識を行い認識結果のよい方の文字を認識結果とすることで、入力装置13は、手書きされた文字をより高い精度で認識できる。
図29は、メモ入力処理の手順の他の一例を示すフローチャートである。なお、図18に示した上述の実施例1に係るメモ入力処理と同一の部分については、同一の符号を付して、主に異なる部分について説明する。
スイッチ20の長押し操作が終了した場合(S47肯定)、認識部66は、軌跡記録部64により記録された軌跡のうち、入力対象とされた軌跡の文字認識と、記録された軌跡の文字認識を行う(S56)。認識部66は、入力対象とされた軌跡の文字認識の結果と、記録された軌跡の文字認識の結果を比較し、認識結果のよい方の文字を、認識結果の文字と選択する(S57)。表示制御部61では、選択された文字に撥ねがあるか否か判定する(S49)。これにより、入力装置13は、手書きされた文字をより高い精度で認識できる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、入力検出部60、表示制御部61、キャリブレーション部62、軸検出部63、軌跡記録部64、判定部65、認識部66、格納部67および操作コマンド出力部68の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[入力プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図30は、入力プログラムを実行するコンピュータを示す図である。
図30に示すように、コンピュータ300は、CPU(Central Processing Unit)310、HDD(Hard Disk Drive)320、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス400を介して接続される。
HDD320には上記の入力検出部60、表示制御部61、キャリブレーション部62、軸検出部63、軌跡記録部64、判定部65、認識部66、格納部67および操作コマンド出力部68と同様の機能を発揮する入力プログラム320aが予め記憶される。なお、入力プログラム320aについては、適宜分離しても良い。
また、HDD320は、各種情報を記憶する。例えば、HDD320は、OSや発注量の決定に用いる各種データを記憶する。
そして、CPU310が、入力プログラム320aをHDD320から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、入力プログラム320aは、入力検出部60、表示制御部61、キャリブレーション部62、軸検出部63、軌跡記録部64、判定部65、認識部66、格納部67および操作コマンド出力部68と同様の動作を実行する。
なお、上記した入力プログラム320aについては、必ずしも最初からHDD320に記憶させることを要しない。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。