(57)【要約】【課題】仮想的な操作部材の操作状態に応じた入力データを的確に決定する入力装置、入力方法及び入力プログラムを提供すること。【解決手段】１つ以上の仮想的な操作部材を操作する手の動きに応じた入力データを決定する入力装置において、操作部材の操作が継続される時間が閾値以下である通常操作と、操作部材の操作が継続される時間が閾値よりも長い継続操作を開始する開始操作と、継続操作を止める解除操作とを含む操作状態毎に、手が操作部材を操作したタイミングである入力タイミングを含み、且つ、第１所定長さの取得期間内の検出データと、割当データとが対応付けられて学習データとして記憶手段に記憶される（Ｓ１６０）。取得期間内の検出データと、記憶手段に記憶された操作状態毎の学習データとが比較されて、検出データに対応する割当データが、入力データとして決定される（Ｓ２１０）。【選択図】図１２
2011113439.tif 000002
【特許請求の範囲】
【請求項１】
手に取り付けられ、当該手の動きに応じた電気信号を発生するセンサと、前記センサによって発生された前記電気信号を含むデータを検出データとして出力する出力手段とを備え、前記出力手段によって出力された前記検出データに基づき、１つ以上の仮想的な操作部材を操作する前記手の動きに応じた入力データを決定する入力装置であって、
前記操作部材の操作が継続される時間が閾値以下である操作である通常操作と、前記操作部材の操作が継続される時間が閾値よりも長い操作である継続操作を開始する開始操作と、前記継続操作を止める解除操作とを含む操作状態毎に、前記手が前記操作部材をいずれかの前記操作状態で操作したタイミングである入力タイミングを含む前記取得期間であって、第１所定長さの前記取得期間内の前記検出データと、当該操作部材に割り当てられたデータである割当データとを対応付けて学習データとして記憶手段に記憶させる記憶制御手段と、
前記出力手段から出力された前記取得期間内の前記検出データと、前記記憶手段に記憶された前記操作状態毎の前記学習データとを比較して、当該検出データに対応する前記割当データを、前記入力データとして決定する決定手段とを備えたことを特徴とする入力装置。
【請求項２】
前記出力手段から出力された前記取得期間内の前記検出データと、前記記憶手段に記憶された前記学習データとを比較して、前記開始操作が検出されてから前記解除操作が検出されるまでの期間を、前記継続操作期間として検出する期間検出手段と、
前記記憶手段は、前記期間検出手段によって検出された前記継続操作期間中に、前記通常操作が実行された場合の操作である組合せ操作に対応する前記学習データを組合せ学習データとして記憶し、
前記決定手段は、前記期間検出手段によって検出された前記継続操作期間中、前記出力手段から出力された前記検出データと、前記記憶手段に記憶された前記組合せ学習データとを比較して、当該検出データに対応する前記組合せ学習データが前記記憶手段に記憶されている場合に、当該検出データに対応する前記入力データを決定することを特徴とする請求項１に記載の入力装置。
【請求項３】
前記第１所定長さは、前記通常操作と、前記開始操作及び前記解除操作とで異なることを特徴とする請求項１又は２に記載の入力装置。
【請求項４】
前記出力手段によって出力された第２所定長さの期間内の前記検出データの変化に基づき、前記入力タイミングを検出するタイミング検出手段を備え、
前記決定手段は、前記タイミング検出手段によって前記入力タイミングが検出された場合に、前記入力データを決定する処理を実行し、
前記取得期間の開始から前記入力タイミングまでの期間をＬ１とし、前記入力タイミングから前記取得期間の終わりまでの期間をＬ２とし、前記通常操作を連続して実行する場合の最小時間間隔をＴ１とし、前記組合せ操作の前記開始操作が検出されてから前記解除操作が検出されるまでの最小時間間隔をＴ２とし、前記第２所定長さをＡとした場合に、
前記開始操作の前記第１所定長さは、Ｌ１＜Ｔ１及びＬ２＜Ｔ２及びＡ＜Ｌ１＋Ｌ２を満たし、
前記解除操作の前記第１所定長さは、Ｌ１＜Ｔ２及びＬ２＜Ｔ１及びＡ＜Ｌ１＋Ｌ２を満たし、
前記通常操作の前記第１所定長さは、Ｌ１＜Ｔ１及びＬ２＜Ｔ１及びＡ＜Ｌ１＋Ｌ２を満たすことを特徴とする請求項３に記載の入力装置。
【請求項５】
手に取り付けられ、当該手の動きに応じた電気信号を発生するセンサによって発生された前記電気信号を含むデータを検出データとして出力する出力工程を備え、前記出力工程において出力された前記検出データに基づき、１つ以上の仮想的な操作部材を操作する前記手の動きに応じた入力データを決定する入力方法であって、
前記操作部材の操作が継続される時間が閾値以下である操作である通常操作と、前記操作部材の操作が継続される時間が閾値よりも長い操作である継続操作を開始する開始操作と、前記継続操作を止める解除操作とを含む操作状態毎に、前記手が前記操作部材をいずれかの前記操作状態で操作したタイミングである入力タイミングを含む取得期間であって、第１所定長さの前記取得期間内の前記検出データと、当該操作部材に割り当てられたデータである割当データとを対応付けて学習データとして記憶手段に記憶させる記憶制御工程と、
前記出力工程から出力された前記取得期間内の前記検出データと、前記記憶手段に記憶された記憶された前記操作状態毎の前記学習データとを比較して、当該検出データに対応する前記割当データを、前記入力データとして決定する決定工程とを備えたことを特徴とする入力方法。
【請求項６】
請求項１から４のいずれかに記載の入力装置の各種処理手段としてコンピュータを機能させるための入力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの手の動きを示す検出データに基づいて、入力データを決定する入力装置、入力方法及び入力プログラムに関する。
【背景技術】
【０００２】
従来、ユーザがキーボードを使用せずにデータを入力するための入力装置が知られている。例えば特許文献１には、手の仕草によって情報を入力することが可能なデータ入力デバイス（入力装置）が提案されている。従来の入力装置では、ユーザの指に取り付けられたセンサから所定期間内に出力された検出データが、予め登録された学習データと比較され、指の動きに応じた入力データが決定される。通常のキーボードと同様に、入力装置は、特定の複数のキーが同時に押された場合に相当する検出データが取得された場合、各キーが別々に押下された場合とは異なる入力データを決定する。例えば、Ｓｈｉｆｔキーと、ａのキーとが同時に押下された場合、入力装置は、入力データとして大文字の「Ａ」を決定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００６−５０３３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の入力装置では、検出データに基づき仮想的なキーの操作状態を的確に把握できないという問題があった。より具体的には、従来の入力装置では、仮想的なキーを打鍵する操作（以下、「通常操作」と言う。）と、仮想的なキーを継続的に押し続ける操作（以下、「継続操作」と言う。）とが的確に区別されないことがあった。このため、従来の入力装置では、仮想的なキーの操作状態に応じた適切な入力データが決定されないという問題があった。
【０００５】
本発明は上述の問題点を解決するためになされたものであり、仮想的な操作部材の操作状態に応じた入力データを的確に決定する入力装置、入力方法及び入力プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、第１態様の入力装置は、手に取り付けられ、当該手の動きに応じた電気信号を発生するセンサと、前記センサによって発生された前記電気信号を含むデータを検出データとして出力する出力手段とを備え、前記出力手段によって出力された前記検出データに基づき、１つ以上の仮想的な操作部材を操作する前記手の動きに応じた入力データを決定する入力装置であって、前記操作部材の操作が継続される時間が閾値以下である操作である通常操作と、前記操作部材の操作が継続される時間が閾値よりも長い操作である継続操作を開始する開始操作と、前記継続操作を止める解除操作とを含む操作状態毎に、前記手が前記操作部材をいずれかの前記操作状態で操作したタイミングである入力タイミングを含む前記取得期間であって、第１所定長さの前記取得期間内の前記検出データと、当該操作部材に割り当てられたデータである割当データとを対応付けて学習データとして記憶手段に記憶させる記憶制御手段と、前記出力手段から出力された前記取得期間内の前記検出データと、前記記憶手段に記憶された前記操作状態毎の前記学習データとを比較して、当該検出データに対応する前記割当データを、前記入力データとして決定する決定手段とを備えている。
【０００７】
ユーザが操作部材を操作した際の検出データの変化パターンは、操作状態に応じて異なる。例えば、操作部材として仮想的なキーボードのキーが用いられ、センサとして加速度センサを用いた場合、同じキーを操作した場合でも、通常操作と、開始操作と、解除操作とでは、検出データの変化パターンが異なる。第１態様の入力装置は、検出データに基づき、通常操作と、開始操作と、解除操作とを的確に区別することができる。すなわち、入力装置は、継続操作が通常操作と区別されなかったり、継続操作の開始操作と通常操作とが２つの異なる通常操作であると誤認識されたりことを回避することができる。したがって、複数の操作状態が組み合わされた入力操作が実行される場合であっても、入力装置は、操作状態に応じた入力データを的確に決定することができる。また、入力装置は、通常操作と、継続操作を的確に区別するため、例えば、同じキーを操作する場合でも、操作状態毎に異なる入力データが入力されるように学習データを設定することが可能である。例えば、入力装置は、通常操作でキー「ａ」が操作された場合には入力データとして「ａ」を決定し、継続操作でキー「ａ」が操作された場合には、継続操作が実行されている期間に応じた数の「ａ」を入力データとして決定することも可能である。このように、第１態様の入力装置は、操作状態に応じて学習データを適宜設定することによって、操作性を向上させることができる。
【０００８】
第１態様の入力装置において、前記出力手段から出力された前記取得期間内の前記検出データと、前記記憶手段に記憶された前記学習データとを比較して、前記開始操作が検出されてから前記解除操作が検出されるまでの期間を、前記継続操作期間として検出する期間検出手段と、前記記憶手段は、前記期間検出手段によって検出された前記継続操作期間中に、前記通常操作が実行された場合の操作である組合せ操作に対応する前記学習データを組合せ学習データとして記憶し、前記決定手段は、前記期間検出手段によって検出された前記継続操作期間中、前記出力手段から出力された前記検出データと、前記記憶手段に記憶された前記組合せ学習データとを比較して、当該検出データに対応する前記組合せ学習データが前記記憶手段に記憶されている場合に、当該検出データに対応する前記入力データを決定してもよい。この場合の入力装置は、検出データと、組合せ学習データとに基づき、組合せ操作が実行された場合の入力データを的確に決定することができる。
【０００９】
第１態様の入力装置において、前記第１所定長さは、前記通常操作と、前記開始操作及び前記解除操作とで異なってもよい。この場合の入力装置において、操作状態毎に第１所定長さを適宜定めることによって、入力データの決定精度を向上させることができる。
【００１０】
第１態様の入力装置において、前記出力手段によって出力された第２所定長さの期間内の前記検出データの変化に基づき、前記入力タイミングを検出するタイミング検出手段を備え、前記決定手段は、前記タイミング検出手段によって前記入力タイミングが検出された場合に、前記入力データを決定する処理を実行し、前記取得期間の開始から前記入力タイミングまでの期間をＬ１とし、前記入力タイミングから前記取得期間の終わりまでの期間をＬ２とし、前記通常操作を連続して実行する場合の最小時間間隔をＴ１とし、前記組合せ操作の前記開始操作が検出されてから前記解除操作が検出されるまでの最小時間間隔をＴ２とし、前記第２所定長さをＡとした場合に、前記開始操作の前記第１所定長さは、Ｌ１＜Ｔ１及びＬ２＜Ｔ２及びＡ＜Ｌ１＋Ｌ２を満たし、前記解除操作の前記第１所定長さは、Ｌ１＜Ｔ２及びＬ２＜Ｔ１及びＡ＜Ｌ１＋Ｌ２を満たし、前記通常操作の前記第１所定長さは、Ｌ１＜Ｔ１及びＬ２＜Ｔ１及びＡ＜Ｌ１＋Ｌ２を満たしてもよい。この場合の入力装置は、入力タイミングが検出されたか否かによらず入力データを決定するための処理（以下、決定処理と言う。）を実行する場合に比べ、入力装置で実行される処理の負荷を軽減させることができる。入力装置は、操作状態に応じて第１所定長さが的確に設定されるので、操作状態に応じた入力データの決定精度を向上させることができる。
【００１１】
第２態様の入力方法は、手に取り付けられ、当該手の動きに応じた電気信号を発生するセンサによって発生された前記電気信号を含むデータを検出データとして出力する出力工程を備え、前記出力工程において出力された前記検出データに基づき、１つ以上の仮想的な操作部材を操作する前記手の動きに応じた入力データを決定する入力方法であって、前記操作部材の操作が継続される時間が閾値以下である操作である通常操作と、前記操作部材の操作が継続される時間が閾値よりも長い操作である継続操作を開始する開始操作と、前記継続操作を止める解除操作とを含む操作状態毎に、前記手が前記操作部材をいずれかの前記操作状態で操作したタイミングである入力タイミングを含む取得期間であって、第１所定長さの前記取得期間内の前記検出データと、当該操作部材に割り当てられたデータである割当データとを対応付けて学習データとして記憶手段に記憶させる記憶制御工程と、前記出力工程から出力された前記取得期間内の前記検出データと、前記記憶手段に記憶された前記操作状態毎の前記学習データとを比較して、当該検出データに対応する前記割当データを、前記入力データとして決定する決定工程とを備えている。第２態様の入力方法は、第１態様の入力装置と同様の作用効果を得ることができる。
【００１２】
第３態様の入力プラグラムは、上記第１態様の入力装置の各種処理手段としてコンピュータを機能させるための入力プログラムである。第３態様の入力プログラムは、コンピュータに実行させることにより第１態様の入力装置の各種処理手段としての作用効果を奏することができる。
【図面の簡単な説明】
【００１３】
【図１】入力装置１の物理的構成を示す模式図である。
【図２】データ収集装置２の電気的構成を示すブロック図である。
【図３】データ決定装置４の電気的構成を示すブロック図である。
【図４】ウィンドウ情報記憶エリア３８３に記憶されているウィンドウ情報の説明図である。
【図５】検出データパターン２２０に設定された識別ウィンドウ３００と、入力判断ウィンドウ４００との説明図である。
【図６】検出データパターン２２０に設定された入力判断ウィンドウ４００の説明図である。
【図７】通常操作が連続して実行された場合の検出データ２３２と、検出データ２３６とを含む検出データパターン２３１を例示する説明図である。
【図８】組合せ操作の継続操作が実行された場合の検出データ２４３を含む検出データパターン２４０を例示する説明図である。
【図９】学習データ記憶エリア３８４の説明図である。
【図１０】組合せ学習データ記憶エリア３８５の説明図である。
【図１１】データ収集装置２及びデータ収集装置３で実行される検出処理のフローチャートである。
【図１２】データ決定装置４で実行されるメイン処理のフローチャートである。
【図１３】図１２のメイン処理で実行される入力モード処理のフローチャートである。
【図１４】小文字のＡと、大文字のＫ及びＬとが順に入力される具体例２における、検出データパターン２５１（左手、小指、Ｚ軸）と、検出データパターン２５２（右手、中指、Ｚ軸）と、検出データパターン２５３（右手、薬指、Ｚ軸）とを例示する説明図である。
【図１５】図１３の入力モード処理において実行される複合処理のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を具現化した実施形態の入力装置１について、図面を参照して順に説明する。なお、これらの図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、記載されている装置の構成、各種処理のフローチャートなどは、それのみに限定する趣旨ではなく、単なる説明例である。
【００１５】
まず、図１を参照して、入力装置１の物理的構成について説明する。入力装置１は、仮想的な操作部材を操作するユーザの手の動きを検出して、入力データを決定する。本実施形態の入力装置１は、特に、仮想的なキーボードのキーを操作する手（指）の動作を検出し、その操作に対応するキーに基づき入力データを決定する。図１のように、入力装置１は、データ収集装置２と、データ収集装置３と、データ決定装置４とを備える。データ収集装置２は、ユーザの右手に取り付けられる。データ収集装置３は、ユーザの左手に取り付けられる。データ収集装置２と、データ収集装置３とはそれぞれ、データ決定装置４に検出データを送信する。データ決定装置４は、ユーザの確認可能な位置に配置され、データ収集装置２と、データ収集装置３とから送信された検出データに基づき、入力データを決定する。
【００１６】
データ収集装置２と、データ収集装置３との物理的構成を説明する。データ収集装置２と、データ収集装置３との物理的構成は、基本的に同様である。データ収集装置２を例に、データ収集装置２と、データ収集装置３との物理的構成を説明する。図１のように、データ収集装置２は、手袋部２３（データ収集装置３では、手袋部３３）と、センサ２１と、筐体２２と、ハーネス２４とを備える。以下、データ収集装置２が備える各部材について説明する。
【００１７】
手袋部２３は、ユーザの右手に装着される右手用の手袋である。センサ２１は、データ収集装置２が取り付けられた手の各指に対応して５つ設けられ、センサ２１が取り付けられた指の動作を検出する。各センサ２１は、手袋部２３の甲側の表面のうち、指先部分に取り付けられている。センサ２１は、手、特に指の動作を検出する機能を備えていればよく、例えば、加速度センサと、ジャイロセンサとのいずれかが用いられる。本実施形態のセンサ２１は、加速度センサである。センサ２１は、データ収集装置２の電源がＯＮにされた場合に、検出方向（軸）毎にセンサ２１が取り付けられた指の加速度（Ｇ）を示す電気信号を常時、後述する制御部２５（図２参照）に対して出力する。本実施形態では検出方向（軸）として、直交座標系におけるｘ軸方向（ｘ軸）と、ｙ軸方向（ｙ軸）と、ｚ軸方向（ｚ軸）との３方向（３軸）が設定されている。
【００１８】
筐体２２は、直方体の形状を有し、手袋部２３の甲側の表面の手首部分に取り付けられている。筐体２２は、制御部２５（図２参照）を収容する。ハーネス２４は、センサ２１と制御部２５とを電気的に接続する。センサ２１から出力された信号は、ハーネス２４を介して制御部２５に伝送される。
【００１９】
次に、データ決定装置４の物理的構成について説明する。図１のように、データ決定装置４は、筐体３６と、表示部３９と、入力部４０とを備える。筐体３６は、直方体の形状を有し、後述する制御部３７（図３参照）を収容する。表示部３９は、平面視矩形の液晶ディスプレイである。表示部３９には、入力装置１の動作モードと、入力データと、指示を含む各種情報が表示される。入力部４０は、ユーザが入力装置１の動作モードを設定する際に用いるボタンである。
【００２０】
次に、入力装置１の電気的構成について説明する。データ収集装置２と、データ収集装置３との電気的構成は、同様である。データ収集装置２を例に、データ収集装置２と、データ収集装置３との電気的構成を説明する。
【００２１】
図２のように、データ収集装置２は、制御部２５と、センサ２１とを備える。制御部２５は、ＣＰＵ４１と、ＲＯＭ４２と、ＲＡＭ４３と、Ａ／Ｄコンバータ４５と、ＲＦモジュール４６と、アンテナ４７と、バス４４とを備える。ＣＰＵ４１は、ＲＯＭ４２と、ＲＡＭ４３とのそれぞれとバス４４を介して接続されている。以下、制御部２５が備える各構成について説明する。
【００２２】
ＣＰＵ４１は、データ収集装置２の主制御を司り、ＲＯＭ４２のプログラム記憶エリア（図示せず）に記憶された各種プログラムに従って、入力データの決定に関わる各種演算及び処理を実行する。なお、プログラムはフレキシブルディスク等の外部記憶装置に記憶されていてもよい。
【００２３】
ＲＯＭ４２は、図示しないが、プログラム記憶エリアと、設定記憶エリアを含む複数の記憶エリアを備える。プログラム記憶エリアには、検出プログラムを含む各種プログラムが記憶される。検出プログラムは、後述する検出処理を実行させるためのプログラムである。設定記憶エリアには、データ収集装置２の初期設定と、パラメータとが記憶される。ＲＡＭ４３は、任意に読み書き可能な記憶装置であり、ＣＰＵ４１の演算結果等を記憶する。
【００２４】
Ａ／Ｄコンバータ４５は、センサ２１から出力される電気信号（アナログ信号）をデジタル信号に変換する。Ａ／Ｄコンバータ４５は、センサ２１と、ＣＰＵ４１とに接続されている。アンテナ４７は、データ収集装置２と外部装置との間でデータを送受信する。本実施形態では、アンテナ４７は、例えば、検出データを無線でデータ決定装置４に送信する。ＲＦモジュール４６は、アンテナ４７とＣＰＵ４１との間に接続され、変調制御を司る。
【００２５】
次に、データ決定装置４の電気的構成を説明する。図３のように、データ決定装置４の制御部３７は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、フラッシュメモリ３８と、ＲＦモジュール１０５と、アンテナ１０６と、表示部３９と、入力部４０とを備える。ＣＰＵ１０１は、ＲＯＭ１０２と、ＲＡＭ１０３と、フラッシュメモリ３８と、バス１０４を介して接続されている。以下、データ決定装置４が備える各構成について説明する。
【００２６】
ＣＰＵ１０１は、データ決定装置４の主制御を司り、ＲＯＭ１０２のプログラム記憶エリア（図示せず）に記憶された各種プログラムに従って、入力データの決定に関わる各種演算及び処理を実行する。なお、プログラムはフレキシブルディスク等の外部記憶装置に記憶されていてもよい。
【００２７】
ＲＯＭ１０２は、図示しないが、プログラム記憶エリアを含む複数の記憶エリアを備える。プログラム記憶エリアには、メインプログラムを含む各種プログラムが記憶される。メインプログラムは、データ収集装置２及びデータ収集装置３から出力された検出データに基づき、入力データを決定するメイン処理を実行させるためのプログラムである。取得プログラムは、後述する取得処理を実行するためのプログラムである。ＲＡＭ１０３は、ＣＰＵ１０１が演算処理した演算結果等を記憶する。
【００２８】
フラッシュメモリ３８は、検出データ記憶エリア３８１と、動作モード記憶エリア３８２と、ウィンドウ情報記憶エリア３８３と、学習データ記憶エリア３８４と、組合せ学習データ記憶エリア３８５と、その他の情報記憶エリア３８６とを含む複数の記憶エリアを備える。検出データ記憶エリア３８１には、センサ２１から出力された電気信号と、その電気信号に対して付与されたタイムスタンプとが、検出データとして記憶される。検出データに含まれるタイムスタンプは、センサ２１から出力された電気信号が制御部２５において取得された際の、タイムスタンプクロック値を示す。検出データは、センサ２１が取り付けられている手及び指の種類と、検出方向（軸）とを組み合わせた検出条件毎に記憶される。動作モード記憶エリア３８２には、入力装置１の動作モードが記憶されている。本実施形態では、動作モードとして、学習モードと、入力モードとのいずれかが設定可能である。動作モードに学習モードが設定されている場合、学習データ記憶エリア３８４を更新する処理が実行される。動作モードに入力モードが設定されている場合、検出データに基づき、入力データを決定する処理が実行される。ウィンドウ情報記憶エリア３８３には、後述するメイン処理が実行される際のウィンドウを設定する条件が記憶されている。ウィンドウ情報記憶エリア３８３の詳細は後述する。学習データ記憶エリア３８４には、学習データが記憶されている。組合せ学習データ記憶エリア３８５には、組合せ学習データが記憶されている。学習データ及び組合せ学習データの詳細については後述する。その他の情報記憶エリア３８６には、メイン処理が実行される際に参照される条件などのその他の情報が記憶されている。
【００２９】
アンテナ１０６は、データ決定装置４と外部装置との間で、無線でデータの送受信を行う。外部装置には、データ収集装置２と、データ収集装置３と、入力データの出力先となるＰＣ等の外部装置とが含まれる。ＲＦモジュール１０５は、ＣＰＵ１０１とアンテナ１０６とに接続され、変復調制御を司る。表示部３９は、ＣＰＵ１０１と接続され、ＣＰＵ１０１によって制御される。入力部４０は、ＣＰＵ１０１と接続されている。
【００３０】
次に、ウィンドウ情報記憶エリア３８３について、図４から図８を参照して説明する。図４のように、ウィンドウ情報記憶エリア３８３には、ウィンドウの設定条件が操作状態毎に記憶されている。ウィンドウは、後述するメイン処理において、データ決定装置４が経時的に取得する検出データに基づき入力データを決定する処理で設定される検出データの取得期間を規定する。本実施形態では、メイン処理において、図５に例示する入力判断ウィンドウ４００と、識別ウィンドウ３００との２種類のウィンドウが設定される。入力判断ウィンドウ４００は、入力タイミング２２１を検出する処理に用いられる検出データの取得期間を規定する。図６のように、本実施形態では、入力判断ウィンドウ４００内の検出データの最大値と最小値との差（矢印２２６で図示）が所定値（例えば、１０００ｍｇ）以上である場合、入力判断ウィンドウ４００内の最も新しいデータ取得時点（入力判断ウィンドウ４００の右端）を入力タイミングとする。所定値は、入力操作が実行された場合の検出データの経時変化と、及び入力操作が実行されていない場合の検出データの経時変化とを考慮して定められることが好ましい。識別ウィンドウ３００は、入力データを決定する処理に用いられる検出データの取得期間（取得範囲）を規定する。図５のように、識別ウィンドウ３００によって規定される範囲には、入力タイミング２２１及び入力判断ウィンドウ４００が含まれる。
【００３１】
本実施形態では、操作状態として、通常操作と、継続操作と、組合せ操作とが設定されている。通常操作とは、仮想的なキーを継続して押下する時間が閾値（例えば、０．５ｍｓｅｃ）以下である操作を言う。継続操作とは、仮想的なキーを継続して押下する時間が閾値よりも長い操作を言う。継続操作は、開始操作と、解除操作とを含む。開始操作は、継続操作を開始する操作を言う。解除操作とは、継続操作を止める操作を言う。組合せ操作とは、継続操作が実行されている期間（以下、「継続操作期間」と言う。）中に、通常操作が実行される操作である。継続操作期間は、開始操作が検出されてから、解除操作が検出されるまでの期間である。本実施形態では、継続操作が実行された場合の検出データのパターンは、開始操作前後と、解除操作前後とを除く期間は、ほとんど変化しない。このため、入力装置１は、開始操作と、解除操作とを検出することによって、継続期間を特定する。なお、上記閾値は、通常操作と、継続操作とが区別される値が適宜設定されればよい。入力装置１のように、仮想的なキーボードの操作を検出する場合、通常操作（打鍵）及び継続操作を規定する閾値は、個人差があるため、ユーザ毎に設定されることが好ましい。また、本実施形態では、組合せ操作の継続操作と、通常操作とは、それぞれ異なる手でキーが操作される場合が想定されている。本実施形態では、上記操作を総称して、入力操作という。
【００３２】
一般に、識別ウィンドウの幅は、一定の範囲内であれば、幅が長いほど、すなわち、入力データを決定する処理に用いる検出データの数が多いほど、入力データの決定精度は高くなる。一方で、識別ウィンドウの幅が一定の範囲を超えた場合には、複数の入力操作に対応する検出データが同一の識別ウィンドウ内に含まれる可能性があり、このような場合には入力データの決定精度が悪化する。これに対し、図７および図８のように、入力操作が実行された場合の検出データ２３２と、開始操作が実行された場合の検出データ２４１と、解除操作が実行された場合の検出データ２４２とは変化パターンが互いに異なる。特に、入力操作が実行された場合の入力タイミング２３３と、開始操作が実行された場合の入力タイミング２４５と、解除操作が実行された場合の入力タイミング２４６とでは、各入力タイミングの前後の検出データが収束するのに要する時間は、操作状態毎に異なる。
【００３３】
このため、本実施形態では、通常操作と、開始操作と、解除操作とのそれぞれに識別ウィンドウ３００の設定条件Ｌ１とＬ２とを定めている。図５のように、Ｌ１は、識別ウィンドウ３００の開始２２２から入力タイミング２２１までの期間を表し、Ｌ２は入力タイミング２２１から識別ウィンドウ３００の終わり２２３までの期間を表す。Ｌ１と、Ｌ２とは、以下のように定められることが好ましい。図７のように、通常操作が連続して実行された場合の最小時間間隔、すなわち、通常操作が連続して実行された場合に検出される入力タイミング２３３と、入力タイミング２３４との最小時間間隔をＴ１とする。図８のように、組合せ操作の検出データ２４３において、開始操作の入力タイミング２４５が検出されてから解除操作の入力タイミング２４６が検出されるまでの最小時間間隔をＴ２とする。入力判断ウィンドウ４００の幅をＡとする。
【００３４】
図５のように、開始操作のＬ１及びＬ２は、Ｌ１＜Ｔ１と、Ｌ２＜Ｔ２と、Ａ＜Ｌ１＋Ｌ２とを満たすことが好ましい。同様に、解除操作のＬ１及びＬ２は、Ｌ１＜Ｔ２と、Ｌ２＜Ｔ１と、Ａ＜Ｌ１＋Ｌ２とを満たし、通常操作のＬ１及びＬ２は、Ｌ１＜Ｔ１と、Ｌ２＜Ｔ１と、Ａ＜Ｌ１＋Ｌ２とを満たすことが好ましい。このように、Ｌ１と、Ｌ２と、Ａとが設定されることによって、入力データの決定に必要な検出データの数を確保しつつ、識別ウィンドウ内にノイズが含まれることを回避することができる。より好ましくは、Ｌ１及びＬ２には、識別ウィンドウ３００外の入力タイミング２２４又は入力タイミング２２５の前後の変動が含まれないことが好ましい。例えば、図７において、入力タイミング２３４を検出する際に用いられるウィンドウには、期間２３５の変動が含まれないように、上記関係式では、Ｔ１に代えて、Ｔ１´が用いられることがより好ましい。このようにＬ１と、Ｌ２と、Ａとが設定されれば、識別ウィンドウ内に、ノイズが含まれることをより確実に回避することができるので、入力タイミングを決定する精度をさらに向上させることができる。なお、本実施形態では、Ａは操作状態によらず、同じ値２５ｍｓｅｃが設定されている。Ｔ１及びＴ２は、個人差があるため、ユーザ毎に設定されることが好ましいが、複数のユーザに共通する設定値であってもよい。本実施形態のＴ１は１００ｍｓｅｃであり、Ｔ２は７０ｍｓｅｃである。図５のように、各操作状態のＬ１及びＬ２は、上記関係式を満たす値である。
【００３５】
次に、図９と、図１０とを参照して、学習データ記憶エリア３８４及び組合せ学習データ記憶エリア３８５について説明する。学習データは、割当データと、割当データに対応するキーが操作された場合の検出データの特徴量とが対応付けられたデータである。検出データの特徴量は、識別ウィンドウ３００内の検出データに基づき、以下の手順で算出された５つの平均値である。まず図５のように、識別ウィンドウ３００の範囲が、矢印３０１で示す長さの５つの範囲に等分割される。次に分割された範囲毎に、検出データの平均値が算出される。図９のように、本実施形態の学習データは、操作状態毎に、且つ、検出条件毎に記憶されている。検出条件は、手の種類と、指の種類と、検出方向とを組み合わせた条件である。手の種類には、右手と左手とが含まれる。指の種類には、親指と、人差し指と、中指と、薬指と、小指とが含まれる。
【００３６】
本実施形態の入力装置１は、学習データを操作状態毎に記憶することで、検出データに基づき、操作状態と、割当データとを特定することが可能である。入力装置１は、後述するように、検出データに基づき特定された、操作状態と、割当データとを組み合わせて入力データを決定する。操作状態が通常操作である場合には、学習データに含まれる割当データが、入力データとして決定される。
【００３７】
一方、操作状態が組合せ操作である場合には、学習データに基づき割当データが特定され、さらに、特定された割当データの組合せに基づき組合せ学習データに含まれる割当データが、入力データとして決定される。このため、組合せ操作が実行された場合の割当データは、学習データ記憶エリア３８４とは別に設けられた組合せ学習データ記憶エリア３８５に記憶されている。図１０のように、組合せ学習データ記憶エリア３８５には、組合せ操作毎に割当データが対応付けられている。組合せ操作がされた場合のキー種別は、学習データ記憶エリア３８４に記憶された学習データと、検出データとに基づき特定される。
【００３８】
次に、入力装置１で実行される処理について説明する。まず、データ収集装置２と、データ収集装置３とで実行される処理について説明する。データ収集装置２と、データ収集装置３とで実行される処理は、基本的に同様である。データ収集装置２とデータ収集装置３とでは、電源がＯＮにされた場合に、データ決定装置４に開始指示が送信されるとともに、出力処理と、検出処理とを含む複数の処理が実行される。データ収集装置２とデータ収集装置３とでは、電源がＯＦＦにされた場合に、データ決定装置４に終了指示が送信される。出力処理と、検出処理とは、それぞれ、図２のＲＯＭ４２に記憶されたプログラムに従って、ＣＰＵ４１によって実行される。
【００３９】
出力処理では、データ収集装置２の電源がＯＮにされている期間、センサ２１から３種類の検出方向（ｘ軸方向、ｙ軸方向、ｚ軸方向）の加速度（ｍｇ）を示す電気信号が制御部２５に常時出力される。検出処理では、出力処理において出力された電気信号が、制御部２５が備えるＣＰＵ４１（図２参照）によって所定期間毎に検出される。図１１を参照して、検出処理について説明する。図１１のように、検出処理ではまず、図示外のクロックが参照され、検出時間か否かが判断される（Ｓ５）。Ｓ５では、前回の検出時から所定期間（例えば、１ｍｓｅｃ）経過している場合に、検出時間であると判断される。所定期間は、その他の情報記憶エリア３８６に記憶されている。
【００４０】
検出時間ではない場合（Ｓ５：Ｎｏ）、検出時間に達するまで待機される。検出時間である場合（Ｓ５：Ｙｅｓ）、センサ２１から出力されている電気信号が取得され、取得された電気信号にタイムスタンプが付与される（Ｓ１０）。Ｓ１０で取得される電気信号は、指の種類５種類と、検出方向３種類とを組み合わせた１５種類の電気信号である。各電気信号に付与されるタイムスタンプは、例えば、電気信号が取得された際の、タイムスタンプクロック値である。次に、Ｓ１０で取得された電気信号と、電気信号に対して付与されたタイムスタンプとが検出データとして、データ決定装置４に出力される（Ｓ１５）。Ｓ１５で送信される検出データは、検出条件を示す情報を含む。次に、データ収集装置２の電源がＯＮの場合は（Ｓ２０：Ｎｏ）、処理はＳ５に戻り、電源がＯＦＦの場合は（Ｓ２０：Ｙｅｓ）、検出処理は終了する。
【００４１】
次に、データ決定装置４で実行される処理について説明する。データ決定装置４は、データ収集装置２又はデータ収集装置３から送信された開始指示を取得した場合に起動する。データ決定装置４は、起動後、取得処理と、メイン処理とを含む複数の処理を開始させる。なお、データ決定装置４では、データ収集装置２と、データ収集装置３とのいずれかから終了指示が送信された場合、又はデータ決定装置４の電源がＯＦＦにされた場合には、各種処理を終了させる処理が、上記処理とは別途実行される。取得処理と、メイン処理とは、それぞれ、図３のＲＯＭ１０２に記憶されたプログラムに従って、ＣＰＵ１０１によって実行される。取得処理では、データ収集装置２又はデータ収集装置３から出力された検出データが受信され、受信された検出データが検出データ記憶エリア３８１に記憶される。データ決定装置４は、検出条件毎に検出データを記憶させる。
【００４２】
メイン処理では、入力装置１の動作モードに応じた処理が実行される。図１２から図１５を参照して、メイン処理を説明する。まずメイン処理の概要について説明する。本実施形態の入力装置１は、メイン処理において、データ収集装置２及びデータ収集装置３から送信された検出データに基づき、入力データを決定する。本実施形態の入力データは、仮想的なキーボードの各キーに予め対応付けられた文字又は記号である。
【００４３】
図１２のように、メイン処理では、まず、初期化処理が実行される（Ｓ１０５）。Ｓ１０５では、例えば、メイン処理を実行するための各種設定値が図３のＲＯＭ１０２又はフラッシュメモリ３８から読み出される、読み出された設定値は、ＲＡＭ１０３に記憶される。次に、動作モードに入力モードが設定され、設定された動作モードは動作モード記憶エリア３８２に記憶される（Ｓ１１０）。
【００４４】
次に、入力装置１の動作モードが学習モードであるか否かが判断される（Ｓ１１５）。学習モードでは、学習データ記憶エリア３８４の学習データに含まれる特徴量を更新する処理が実行される。ユーザが入力部４０を操作して所定の指示を入力した場合に、動作モードに学習モードが設定される。動作モードが学習モードではない場合（Ｓ１１５：Ｎｏ）の処理は後述する。動作モードが学習モードである場合（Ｓ１１５：Ｙｅｓ）、学習モード時の処理が実行される。
【００４５】
学習モード時の処理では、まず、操作状態が設定され、設定された操作状態は図３のＲＡＭ１０３に記憶される（Ｓ１２０）。Ｓ１２０は、操作状態毎に学習データを更新するための処理である。Ｓ１２０では、操作状態として、通常操作と、継続操作とのいずれかが設定される。次に、割当データが表示部３９に表示される（Ｓ１２５）。Ｓ１２５では、本実施形態では、仮想的なキーボードのキー種別（例えば、「ａ」）が割当データとして表示される。ユーザは、表示部３９を確認した後、表示部３９に示されたキー「ａ」を打鍵する場合の動作を行う。次に、Ｓ１２０で設定された操作状態に応じたウィンドウ条件が設定され、設定されたウィンドウ条件はＲＡＭ１０３に記憶される（Ｓ１３０）。Ｓ１２０において、操作状態として通常操作が設定された場合を具体例１とする。具体例１では、図４のウィンドウ情報記憶エリア３８３が参照され、Ｌ１として８０ｍｓｅｃが設定され、Ｌ２として８０ｍｓｅｃが設定され、Ａとして２５ｍｓｅｃが設定される。なお、操作状態として、継続操作が設定された場合、Ｓ１３０では、まず開始操作のウィンドウ条件が設定され、Ｓ１９０の処理後に実行されるＳ１３０では、解除操作のウィンドウ条件が設定される。
【００４６】
次に、取得順序が新しい順に所定個の検出データが取得され、取得された検出データは図３のＲＡＭ１０３に記憶される（Ｓ１３５）。Ｓ１３５は、識別ウィンドウを設定する処理である。Ｓ１３５における検出データの取得数は、Ｓ１２５で設定された識別ウィンドウの幅（Ｌ１＋Ｌ２）と、取得処理における検出データの取得頻度Ｊとに応じて決定される。具体例１において、取得間隔Ｊが１ｍｓｅｃである場合、検出データの取得数は、１６０となる。次に、Ｓ１３５で取得された検出データに、入力判断ウィンドウが設定される（Ｓ１４０）。
【００４７】
次に、Ｓ１４０で設定された入力判断ウィンドウ内の検出データに基づき、入力操作が実行されたか否かが判断される（Ｓ１４５）。Ｓ１４５ではまず、Ｓ１４０で設定された入力判断ウィンドウが所定個の期間に等分割され、分割された期間毎に、検出データの平均値（以下、「期間平均値」という。）が算出される。次に、いずれかの検出条件の検出データについて、期間平均値の最大値と、最小値との差が閾値以上であった場合に、すなわち、入力タイミングが検出された場合に、入力操作が実行されたと判断される。入力操作が実行された場合の期間平均値の最大値と、最小値との差を比較すると、一般に、入力操作をした指のｚ軸方向の期間平均値の最大値と、最小値との差が最も大きい。したがって、本実施形態では、入力操作をした指の検出データに基づき、入力タイミングが検出されることになる。閾値は、入力操作が実行された場合の検出データの経時変化と、入力操作が実行されていない場合の検出データの変化とを考慮して適宜定められ、フラッシュメモリ３８に記憶されている。本実施形態では、閾値に１０００ｍｇが設定されている。入力操作が実行されていない場合（Ｓ１４５：Ｎｏ）、処理はＳ１３５に戻る。図６のように、入力判断ウィンドウ４００は、Ｓ１３５及びＳ１４０が繰り返し実行されることによって、左側から右側に向かって順にシフトする。
【００４８】
Ｓ１４５で、入力操作が実行された場合（Ｓ１４５：Ｙｅｓ）、Ｓ１３０で設定された識別ウィンドウに含まれる検出データ（８０＋８０＝１６０ｍｓｅｃ間のデータ）がＲＡＭ１０３から読み出され（Ｓ１５０）、読み出された検出データに基づき特徴量が算出される（Ｓ１５５）。Ｓ１５５では、識別ウィンドウ３００の期間が、５つの期間に等分割され、分割された期間毎に、検出データの特徴量として平均値が算出される。次に、Ｓ１５５で算出された特徴量と、Ｓ１２５で表示された割当データとが対応付けられて、学習データとして学習データ記憶エリア３８４に記憶される（Ｓ１６０）。
【００４９】
次に、動作モード記憶エリア３８２が参照され、動作モードが入力モードであるか否かが判断される（Ｓ１６５）。ユーザが入力部４０を操作して所定の指示を入力した場合に、動作モードは学習モードから入力モードに変更される。Ｓ１６５において、動作モードが入力モードである場合（Ｓ１６５：Ｙｅｓ）、データ決定装置４の電源がＯＦＦにされていない場合には（Ｓ２１５：Ｎｏ）、処理はＳ１１５に戻る。データ決定装置４の電源がＯＦＦにされた場合には（Ｓ２１５：Ｙｅｓ）、メイン処理は終了する。動作モードが入力モードではない場合（Ｓ１６５：Ｎｏ）、ＲＡＭ１０３が参照され、Ｓ１２０で設定された操作状態が、継続操作であるか否かが判断される（Ｓ１８０）。継続操作である場合（Ｓ１８０：Ｙｅｓ）、解除操作の学習データが取得済みであるか否かが判断される（Ｓ１８５）。操作状態が継続操作に設定された場合、まず、Ｓ１２５で表示されたキー種別のキーの開始操作の学習データが更新され、次に、そのキーの解除操作の学習データが更新される。解除操作の学習データが取得済みではない場合（Ｓ１８５：Ｎｏ）、解除操作を促す指示が表示部３９に表示され（Ｓ１９０）、処理はＳ１３０に戻る。Ｓ１９０後のＳ１３０では、解除操作のウィンドウ条件が設定される。
【００５０】
Ｓ１２０で設定された操作状態が継続操作ではない場合（Ｓ１８０：Ｎｏ）、又は解除操作の学習データが既に取得された場合（Ｓ１８５：Ｙｅｓ）には、仮想的なキーボードの全てのキー種別がＳ１２５において表示されたか否かが判断される（Ｓ１９５）。Ｓ１２５で表示されていないキー種別がある場合（Ｓ１９５：Ｎｏ）、処理はＳ１２５に戻り、次のキー種別が表示される（Ｓ１２５）。全てのキー種別が表示された場合（Ｓ１９５：Ｙｅｓ）、Ｓ１２０で全ての操作状態が設定されたか否かが判断される（Ｓ２００）。未設定の操作状態がある場合（Ｓ２００：Ｎｏ）、処理はＳ１２０に戻り、次の操作状態が設定される。Ｓ１６５において、動作モードが入力モードである場合（Ｓ１６５：Ｙｅｓ）、又は全ての操作状態が設定された場合（Ｓ２００：Ｙｅｓ）、動作モードに入力モードが設定される（Ｓ２０５）。次に、データ決定装置４の電源がＯＦＦにされていない場合には（Ｓ２１５：Ｎｏ）、処理はＳ１１５に戻る。データ決定装置４の電源がＯＦＦにされた場合には（Ｓ２１５：Ｙｅｓ）、メイン処理は終了する。
【００５１】
Ｓ１１５において、動作モードが学習モードではない場合（Ｓ１１５：Ｎｏ）、入力モード処理が実行される（Ｓ２１０）。入力モード処理を、図１３から図１５を参照して説明する。一例として、図１４のように、小文字のＡと、大文字のＫ及びＬとが、この順で入力される具体例２を想定する。図１４のように、具体例２では、ｔ１タイミングでＡキーが通常操作され、ｔ２タイミングからｔ５タイミングまでの期間、Ｓｈｉｆｔキーが継続操作される。さらに、具体例２では、ｔ３タイミングでＫキーが通常操作され、ｔ４タイミングでＬキーが通常操作される。
【００５２】
図１３のように、入力モード処理では、まず、ウィンドウ情報記憶エリア３８３が参照され、ウィンドウ情報が読み込まれる（Ｓ３０５）。次に、取得順序が新しい順に所定個の検出データが取得され、取得された検出データはＲＡＭ１０３に記憶される（Ｓ３１０）。
Ｓ３１０で取得される検出データの数は、入力判断ウィンドウの幅Ａと、取得処理における検出データの取得間隔Ｊとによって規定される（Ｓ３１０）。入力判断ウィンドウの長さＡが２５ｍｓｅｃであり、取得間隔Ｊが１ｍｓｅｃである場合、２５個の検出データが取得される。Ｓ３１０の処理によって、入力判断ウィンドウ内の検出データが取得される。
【００５３】
次に、Ｓ３１０で取得された検出データに基づき、入力操作が実行されたか否かが判断される（Ｓ３１５）。Ｓ３１５の処理はＳ１４５の処理と同様である。入力操作が実行されていない場合には（Ｓ３１５：Ｎｏ）、処理はＳ３１０に戻る。入力操作が実行された場合には（Ｓ３１５：Ｙｅｓ）、経過時間をカウントするための変数Ｃがインクリメントされ、インクリメントされた変数Ｃは、ＲＡＭ１０３に記憶される（Ｓ３２０）。変数Ｃの初期値は０である。
【００５４】
次に、Ｓ３１５で検出された入力タイミングからの経過時間が開始操作のＬ２（以下、単に「Ｓ＿Ｌ２」と言う。）以上であるか否かが判断される（Ｓ３３０）。Ｓ３３０では、Ｓ３１５で検出された入力タイミングからの経過時間がＳ＿Ｌ２以上であるか否かは、ＲＡＭ１０３に記憶された変数Ｃに基づき判断される。経過時間がＳ＿Ｌ２以上ではない場合（Ｓ３３０：Ｎｏ）、処理はＳ３２０に戻る。経過時間がＳ＿Ｌ２以上である場合（Ｓ３３０：Ｙｅｓ）、開始操作の識別ウィンドウ（以下、「ウィンドウＰ」と言う。）が設定され、設定されたウィンドウＰはＲＡＭ１０３に記憶される（Ｓ３３５）。次に、取得順序が新しい順に所定個の検出データが取得され、取得された検出データはＲＡＭ１０３に記憶される（Ｓ３４０）。ウィンドウＰの幅（Ｌ１＋Ｌ２）と、取得処理における検出データの取得間隔Ｊとによって規定される。図４のように、ウィンドウＰの幅が１４０ｍｓｅｃであり、取得間隔Ｊが１ｍｓｅｃである場合、Ｓ３４０において１４０個の検出データが取得される。
【００５５】
次に、Ｓ３４０で取得された検出データが加工され、加工された検出データはＲＡＭ１０３に記憶される（Ｓ３４５）。Ｓ３４５の処理は、Ｓ１５５と同様であり、Ｓ３４０で取得された検出データに基づき、ウィンドウＰの期間１４０ｍｓｅｃを５等分した２８ｍｓｅｃ期間毎の平均値が５個得られる。次に、学習データ記憶エリア３８４が参照され、Ｓ３４５で加工された検出データと、開始操作の学習データとが比較される（Ｓ３５０）。次に、Ｓ３５０での比較結果に基づき、Ｓ３１５で検出された入力操作が開始操作であるか否かが判断される（Ｓ３５５）。いずれかの開始操作の学習データと、Ｓ３４５で加工された検出データとの差が所定値未満である場合に、開始操作が実行されたと判断される。Ｓ３５５における所定値は、同一の操作が実行された場合の検出データのバラツキと、他の操作が実行された場合の検出データ間の差とを含む条件を考慮して適宜定められ、フラッシュメモリ３８に記憶されている。
【００５６】
Ｓ３１５で検出された入力操作が開始操作である場合（Ｓ３５５：Ｙｅｓ）、Ｓ３１５で検出された入力操作に対応する割当データがＲＡＭ１０３に記憶される（Ｓ３６０）。Ｓ３１５で検出された入力操作に対応する割当データは、Ｓ３４５で加工された検出データとの差が所定値未満である開始操作の学習データに含まれる割当データである。次に、後述する複合処理が実行される（Ｓ３６５）。
【００５７】
Ｓ３１５で検出された入力操作がいずれの開始操作の学習データにも該当しない場合（Ｓ３５５：Ｎｏ）、Ｓ３１５で検出された入力操作が通常操作であるか否かを判断するための処理が実行される。具体的には、まず、変数Ｃがインクリメントされ、インクリメントされた変数ＣはＲＡＭ１０３に記憶される（Ｓ３７０）。本実施形態では、通常操作のＬ２（以下、単に「Ｎ＿Ｌ２」と言う。）には、Ｓ＿Ｌ２よりも大きい値が設定されているため、Ｓ３７０及びＳ３７５の処理が実行される。次に、Ｓ３１５で検出された入力タイミングからの経過時間がＮ＿Ｌ２以上であるか否かが判断される（Ｓ３７５）。Ｓ３７５では、ＲＡＭ１０３に記憶された変数Ｃに基づき判断される。
【００５８】
経過時間がＮ＿Ｌ２以上ではない場合（Ｓ３７５：Ｎｏ）、処理はＳ３７０に戻る。経過時間がＮ＿Ｌ２以上である場合（Ｓ３７５：Ｙｅｓ）、通常操作の識別ウィンドウ（以下、「ウィンドウＱ」と言う。）が設定され、設定されたウィンドウＱはＲＡＭ１０３に記憶される（Ｓ３８５）。次に、取得順序が新しい順に所定個の検出データが取得され、取得された検出データはＲＡＭ１０３に記憶される（Ｓ３９０）。Ｓ３９０における所定個は、ウィンドウＱの幅Ａと、取得処理における検出データの取得間隔Ｊとによって規定される。ウィンドウＱの幅Ａが１６０ｍｓｅｃであり、取得間隔が１ｍｓｅｃである場合、Ｓ３９０において取得順序が新しい順に１６０個の検出データが取得される。
【００５９】
次に、Ｓ３９０で取得された検出データが加工され、加工された検出データはＲＡＭ１０３に記憶される（Ｓ３９５）。Ｓ３９５の処理は、Ｓ１５５と同様であり、Ｓ３９０で取得された検出データに基づき、５つの平均値が算出される。次に、学習データ記憶エリア３８４が参照され、Ｓ３９５で加工された検出データと、通常操作の学習データとが比較される（Ｓ４００）。次に、Ｓ４００での比較結果に基づき、Ｓ３１５で検出された入力操作が通常操作であるか否かが判断される（Ｓ４０５）。いずれかの通常操作の学習データと、Ｓ３９５で加工された検出データとの差が所定値未満である場合に、通常操作が実行されたと判断される。
【００６０】
Ｓ３１５で検出された入力操作が通常操作である場合（Ｓ４０５：Ｙｅｓ）、Ｓ３１５で検出された入力操作に対応する入力データが決定され、決定された入力データはＲＡＭ１０３に記憶される（Ｓ４１０）。Ｓ４１０で決定される入力データは、Ｓ３９５で加工された検出データとの差が所定値未満である学習データに含まれる割当データである。具体例２では、図１４のｔ１タイミングでＡキーが通常操作された場合の入力タイミングが検出され（Ｓ３１５：Ｙｅｓ）、検出データの特徴量（平均値）と、通常操作の学習データとの比較結果に基づき、入力データとして「ａ」が決定される（Ｓ４１０）。次に、アンテナ１０６を介して、Ｓ４１０で決定された入力データがＰＣ等の外部装置（図示せず）に送信される（Ｓ４１５）。
【００６１】
Ｓ３１５で検出された入力操作がいずれの通常操作の学習データにも該当しない場合（Ｓ４０５：Ｎｏ）、又はＳ４１５の次に、データ決定装置４の電源がＯＦＦにされていない場合には（Ｓ４２０：Ｎｏ）、処理はＳ３０５に戻る。データ決定装置４の電源がＯＦＦにされた場合には（Ｓ４２０：Ｙｅｓ）、入力モード処理（メイン処理）は終了する。
【００６２】
具他例２では、図１４のｔ２タイミングで、「Ｓｈｉｆｔキー」の開始操作の入力タイミングが検出される（Ｓ３１５：Ｙｅｓ）。この場合、Ｓ３５５において開始操作であると判断され（Ｓ３５５：Ｙｅｓ）、加工された検出データに対応する割当データ「Ｓｈｉｆｔ」がＲＡＭ１０３に記憶される（Ｓ３６０）。Ｓ３６０では、Ｓ３４５で加工された検出データとの差が所定値未満である学習データに含まれる割当データが、ＲＡＭ１０３に記憶される。
【００６３】
次に、複合処理が実行される（Ｓ３６５）。複合処理は、継続操作期間中に実行される。複合処理では、組合せ操作に対応する入力データを決定するための処理が実行される。図１５を参照して複合処理を説明する。図１５のように、まず、取得順序が新しい順に所定個の検出データが取得され、取得された検出データはＲＡＭ１０３に記憶される（Ｓ５００）。Ｓ５００での所定個は、Ｓ３９０と同様である。次に、データ決定装置４の電源がＯＦＦにされた場合には（Ｓ５０５：Ｙｅｓ）、複合処理（メイン処理）は終了する。データ決定装置４の電源がＯＦＦにされていない場合には（Ｓ５０５：Ｎｏ）、Ｓ５００で取得された検出データに入力判断ウィンドウが設定され、設定された入力判断ウィンドウはＲＡＭ１０３に記憶される（Ｓ５１０）。Ｓ５１０の処理は、Ｓ１４０と同様である。
【００６４】
次に、入力判断ウィンドウ内の検出データに基づき、入力操作が実行されたか否かが判断される（Ｓ５１５）。Ｓ５１５の処理は、Ｓ１４５と同様である。入力操作が実行されていない場合（Ｓ５１５：Ｎｏ）、処理はＳ５００に戻る。入力操作が実行された場合（Ｓ５１５：Ｙｅｓ）、Ｓ５００で取得された検出データが図３のＲＡＭ１０３から読み出され（Ｓ５２０）、読み出された検出データが加工される（Ｓ５２５）。Ｓ５２５の処理は、Ｓ１５５と同様であり、Ｓ５２０で取得された検出データに基づき、５つの平均値が算出される。
【００６５】
次に、学習データ記憶エリア３８４が参照され、Ｓ５２５で加工された検出データと、通常操作及び解除操作の学習データとが比較される（Ｓ５３０）。次に、Ｓ４０５と同様に、Ｓ５１５で検出された入力操作が通常操作であるか否かが判断される（Ｓ５３５）。Ｓ５１５で検出された入力操作が通常操作である場合（Ｓ５３５：Ｙｅｓ）、Ｓ３１５から開始された継続操作と、Ｓ５１５で検出された通常操作とが組み合わされた組合せ操作が、組合せ学習データ記憶エリア３８４に記憶されているか否かが判断される（Ｓ５５０）。組合せ学習データ記憶エリア３８５に記憶されている組合せ操作を、「有効組合せ」と言う。組合せ操作が、有効組合せではない場合（Ｓ５５０：Ｎｏ）、処理はＳ５００に戻る。この場合、組合せ操作に対応する入力データは決定されない。具体例２では、図１４のように、「Ｓｈｉｆｔキー」の継続操作期間中であるｔ３タイミングで、「Ｌキー」の通常操作の入力タイミングが検出され（Ｓ５３５：Ｙｅｓ）、有効組合せであると判断される（Ｓ５５０：Ｙｅｓ）。この場合、組合せ操作「Ｓｈｉｆｔ＋Ｌ」と一致する組合せ学習データに含まれる割当データである大文字のＬが、入力データとして決定される（Ｓ５５５）。決定された入力データはＲＡＭ１０３に記憶される。次に、アンテナ１０６を介して、Ｓ５５５で決定された入力データがＰＣ等の外部装置（図示せず）に送信される（Ｓ５６０）。次に、処理はＳ５００に戻る。
【００６６】
Ｓ５３５において、Ｓ５１５で検出された入力操作がいずれの通常操作の学習データにも該当しない場合（Ｓ５３５：Ｎｏ）、Ｓ５１５で検出された入力操作が解除操作であるか否かが判断される（Ｓ５４０）。解除操作の学習データと、Ｓ５２５で加工された検出データとの差が所定値未満である場合に、解除操作が実行されたと判断される。Ｓ５４０で検出される解除操作は、図１３のＳ３１５で検出された開始操作に対応する操作である。Ｓ５１５で検出された入力操作がＳ３１５で検出された開始操作に対応する解除操作に該当しない場合（Ｓ５４０：Ｎｏ）、処理はＳ５００に戻る。Ｓ５１５で検出された入力操作が解除操作である場合（Ｓ５４０：Ｙｅｓ）、複合処理は終了し、処理は図１３の入力モード処理に戻る。具体例２では、図１４のｔ５タイミングで、「Ｓｈｉｆｔキー」の解除操作の入力タイミングが検出され（Ｓ５１５：Ｙｅｓ）、Ｓ５４０において解除操作が実行されたと判断される（Ｓ５３５：Ｎｏ，Ｓ５４０：Ｙｅｓ）。
【００６７】
以上のように、入力装置１は、ユーザの手の動きを検出して入力データを決定する。図１１のＳ１５は、本発明の出力工程に相当し、Ｓ１５において、検出データをデータ決定装置４に出力するＣＰＵ４１は、本発明の出力手段として機能する。図１２のＳ１６０は、本発明の記憶制御工程に相当し、Ｓ１６０の処理を実行するＣＰＵ１０１は、本発明の記憶制御手段として機能する。組合せ学習データを含む学習データを記憶するフラッシュメモリ３８は本発明の記憶手段に相当する。図１３のＳ４１０及び図１５のＳ５５５は、本発明の決定工程に相当し、Ｓ４１０及びＳ５５５の処理を実行するＣＰＵ１０１は、本発明の決定手段として機能する。Ｓ３１５及びＳ５１５で入力タイミングを検出するＣＰＵ１０１は、本発明のタイミング検出手段として機能する。
【００６８】
入力装置１によれば、検出データに基づき、通常操作と、開始操作と、解除操作とを的確に区別することができる。すなわち、入力装置１は、継続操作が通常操作と区別されなかったり、継続操作の開始操作と解除操作とが２つの異なる通常操作であると誤認識されたりことを回避することができる。したがって、入力装置１は、複数の操作状態が組み合わされた入力操作が実行される場合であっても、操作状態に応じて入力データを的確に決定することができる。すなわち、入力装置１は、検出データに基づき、どの仮想キーがどの操作状態で操作されたかを判別することができる。さらに、入力装置１は、検出データと、組合せ学習データとに基づき、組合せ操作が実行された場合の入力データを的確に決定することができる。例えば、上記具体例２のように、同じ通常操作（例えば、「Ａ」の打鍵）が実行された場合でも、継続操作期間中に実行されたか否かに応じて、異なる入力データ（例えば、小文字の「Ａ」と大文字の「Ａ」）を決定することができる。
【００６９】
また、入力装置１は、操作状態毎に識別ウィンドウの幅が適宜定められることによって、入力データの決定精度を向上させることができる。入力装置１は、メイン処理のＳ３１５及びＳ５１５において入力タイミングが検出された場合に、決定処理を実行する。このため、入力装置１は、入力タイミングが検出されたか否かによらず決定処理が実行される場合に比べ、入力装置１で実行される処理の負荷を軽減させることができる。入力装置１は、操作状態に応じて、識別ウィンドウの幅、及び識別ウィンドウと入力判断ウィンドウとの対応が的確に設定されるので、操作状態によらずウィンドウの条件が設定される場合に比べ、入力データの決定精度を向上させることができる。
【００７０】
なお、本発明は上記の実施の形態に限定されるものではなく、種々の変更が可能である。例えば、次の（ａ）から（ｅ）の変形を適宜加えてもよい。
【００７１】
（ａ）入力装置１の構成は適宜変更可能である。例えば、入力装置１が備えるセンサの種類と、センサの取り付け位置と、センサの個数とは適宜変更可能である。より具体的には、入力装置は、センサとして、加速度センサを、各指の指先と、各指の第３関節とに設置してもよい。また例えば、入力装置１は、データ収集装置２と、データ収集装置３と、データ決定装置４とは別体であったが、これに限定されない。例えば、データ収集装置２と、データ収集装置３との少なくともいずれかが、データ決定装置４としての機能を有していてもよい。また例えば、データ収集装置２及びデータ収集装置３と、データ決定装置４とは、無線で接続されていたが、有線で接続されていてもよい。
【００７２】
（ｂ）上記実施形態では、仮想的な操作部材として、仮想キーボードのキーが想定されていたが、他の仮想的な操作部材が想定されてもよい。例えば、以下の（ｂ−１）から（ｂ−３）に例示する仮想的な操作部材が想定されてもよい。
【００７３】
（ｂ−１）仮想的な操作部材として、マウスが備えるボタン及びマウス本体が用いられてもよい。この場合の操作状態は、例えば、ボタンのクリック操作と、ダブルクリック操作と、継続操作とが挙げられる。また、操作状態として、マウス本体の移動操作が挙げられる。組合せ操作としては、例えば、ボタンを継続操作しながら、マウス本体を移動させるドラッグが挙げられる。
【００７４】
（ｂ−２）仮想的な操作部材として、ジョイスティックコントローラが備えるスティック及びボタンが用いられてもよい。この場合の操作状態は、例えば、ボタンの通常操作と、継続操作とに加え、スティックの傾倒操作が挙げられる。組合せ操作としては、例えば、ボタンを押下しながら、スティックを傾倒させる操作が挙げられる。
【００７５】
（ｂ−３）仮想的な操作部材として、タッチパネルが用いられてもよい。この場合の操作は、例えば、タッチパネルの通常操作と、継続操作とが挙げられる。
【００７６】
（ｃ）入力装置で実行される各種処理は、適宜変更可能である。例えば、次の（ｃ−１）から（ｃ−５）の変形が加えられてもよい。
【００７７】
（ｃ−１）例えば、図１３の入力モード処理において、次のような手順で入力データが決定されてもよい。Ｓ３４０で所定個（例えば、１００個）の検出データが取得される。Ｓ３４５で、Ｓ３４０で取得された検出データの、特徴量が算出される。特徴量としては、例えば、分散値と、振幅とがあげられる。Ｓ３５０では、Ｓ３４５で算出された特徴量と学習データとが比較されて、検出データに対応する入力データが決定される。この場合の学習データは、予め割当データと対応付けられた特徴量である。また例えば、上記実施形態の入力システムは、各検出条件の検出データについて、検出パターンのそれぞれと、比較値とを比較して入力データを決定していたが、特定の検出条件の検出データと、学習データとを比較して入力データを決定してもよい。また、例えば、Ｓ３４０で取得された検出データと学習データとが比較されて、検出データに対応する入力データが決定されてもよい。
【００７８】
（ｃ−２）メイン処理の入力モード時に参照される学習データ及び組合せ学習データは、他の記憶メディアから取得されてもよい。他の記憶メディアとしては、例えば、ＣＤ−ＲＯＭと、メモリカードとが挙げられる。
【００７９】
（ｃ−３）入力タイミングを検出する処理に用いる検出データは、入力操作が検出されるデータであればよく、適宜変更可能である。例えば、入力操作をした指を含む側の手の検出データに基づき、入力タイミングが検出されてもよい。この場合、例えば、入力操作をした指は、検出データの経時変化に基づき特定されればよい。また例えば、全検出条件の検出データに基づき、入力タイミングが検出されてもよい。一般に、入力操作を行った指の検出データが最も変化するため、入力操作を行った指を含む検出データが、入力タイミングを検出する処理に用いる検出データとして用いられることが好ましい。また例えば、センサとして、加速度センサ以外のセンサが用いられる場合には、センサから得られたデータに基づき算出された加速度を用いて入力タイミングが検出されてもよい。
【００８０】
（ｃ−４）入力タイミングの検出基準は適宜変更可能である。例えば、検出データが所定値（例えば、１５００ｍｇ）以上になったか否かを検出基準とされてもよい。この場合の所定値は、入力操作が実行された場合の検出データの値と、入力操作が実行されていない場合の検出データの値とを考慮された値であることが好ましい。また例えば、極大値があるか否かを検出基準とされてもよい。極大値は公知の方法で検出されればよい。
【００８１】
（ｃ−５）入力タイミングが検出されたか否かによらず、検出データ（特徴量）と、学習データとが比較され、検出データに対応する入力データが決定されてもよい。
【００８２】
（ｅ）メイン処理において参照される各種設定値は、適宜変更可能である。例えば、識別ウィンドウの幅を規定するＬ１及びＬ２は、操作状態によらず同じ値が設定されてもよい。上記実施形態の学習データ及び組合せ学習データは、仮想的な操作部材と、想定される操作状態と、センサの種類とに応じて適宜変更可能である。例えば、上記実施形態では、継続操作と、通常操作とが異なる手で実行される場合が想定されていたが、両操作が同じ手で実行される場合が想定されてもよい。また例えば、キーボードの「Ｃｔｒｌ＋Ａｌｔ＋Ｄｅｌｅｔｅ」のように、同じ手で複数の継続操作が実行される場合が想定されてもよい。この場合は、各操作毎に学習データが記憶されていれば、上記実施形態と同様に検出データに基づき入力操作の種類を特定可能である。具体的には、特定の２つ以上のキーを同時に打鍵された操作が１つの操作として学習、識別されればよい。前述の例では、「Ｃｔｒｌ＋Ａｌｔ」が同時に打鍵された操作が１つの継続操作として学習され、Ｄｅｌｅｔｅが通常操作として学習される。このようにすれば、上記実施形態と同様の処理によって「Ｃｔｒｌ＋Ａｌｔ＋Ｄｅｌｅｔｅ」に対応する入力データを決定可能である。具体的には、特定の２つ以上のキーが同時に打鍵された操作が１つの操作として学習、識別されればよい。前述の例では、「Ｃｔｒｌ＋Ａｌｔ」が同じ期間に打鍵された操作が１つの継続操作として学習され、Ｄｅｌｅｔｅが打鍵される操作が通常操作として学習されればよい。このようにすれば、上記実施形態と同様の処理によって「Ｃｔｒｌ＋Ａｌｔ＋Ｄｅｌｅｔｅ」に対応する入力データを決定可能である。
【符号の説明】
【００８３】
１      入力装置
２，３  データ収集装置
４      データ決定装置
２１    センサ
２２    制御部
３８    フラッシュメモリ
４１，１０１    ＣＰＵ
４２，１０２    ＲＯＭ
４３，１０３    ＲＡＭ
４５    Ａ／Ｄコンバータ
４７，１０６    アンテナ
３８３  ウィンドウ情報記憶エリア
３８４  学習データ記憶エリア
３８５  組合せ学習データ記憶エリア
【図１】
2011113439.tif 000003
【図２】
2011113439.tif 000004
【図３】
2011113439.tif 000005
【図４】
2011113439.tif 000006
【図５】
2011113439.tif 000007
【図６】
2011113439.tif 000008
【図７】
2011113439.tif 000009
【図８】
2011113439.tif 000010
【図９】
2011113439.tif 000011
【図１０】
2011113439.tif 000012
【図１１】
2011113439.tif 000013
【図１２】
2011113439.tif 000014
【図１３】
2011113439.tif 000015
【図１４】
2011113439.tif 000016
【図１５】
2011113439.tif 000017