(57)【特許請求の範囲】
【請求項１】
動き検出部と、
プロセッサとを備えるジェスチャー検出装置であって、
前記動き検出部は、前記ジェスチャー検出装置へのジェスチャーに応じて、３次元のセンサー軸方向にそれぞれ変位情報を出力し、
前記プロセッサは、
前記ジェスチャー検出装置への前記ジェスチャーに応じて、第１のセンサー軸の第１の変位情報が、閾値を上回って変化した後に、前記第１のセンサー軸の前記第１の変位情報が閾値を下回って変化したとき、前記ジェスチャー検出装置の傾きを検出し、前記第１のセンサー軸に対する第１の方向判定値を取得し、
前記ジェスチャー検出装置への前記ジェスチャーに応じて、第２のセンサー軸の第２の変位情報が、閾値を上回って変化した後に、前記第２のセンサー軸の前記第２の変位情報が閾値を下回って変化したとき、前記ジェスチャー検出装置の傾きを検出し、前記第２のセンサー軸に対する第２の方向判定値を取得し、
前記ジェスチャー検出装置への前記ジェスチャーに応じて、第３のセンサー軸の第３の変位情報が閾値を上回って変化している間、前記第１の方向判定値および前記第２の方向判定値を取得しないことにより、前記ジェスチャー検出装置へのジェスチャーを検出する
ことを特徴とするジェスチャー検出装置。
【請求項２】
前記プロセッサは、
前記ジェスチャー検出装置への前記ジェスチャーに応じて、前記第１のセンサー軸の前記第１の変位情報が、閾値を上回って変化した後に、前記第１のセンサー軸の前記第１の変位情報が前記閾値とは異なる第２の閾値を上回って変化したとき、前記ジェスチャー検出装置の回転を検出し、前記第１のセンサー軸に対するスピンジェスチャーを示す判定値を取得し、
前記ジェスチャー検出装置への前記ジェスチャーに応じて、前記第２のセンサー軸の前記第２の変位情報が、閾値を上回って変化した後に、前記第２のセンサー軸の前記第２の変位情報が前記閾値とは異なる第２の閾値を上回って変化したとき、前記ジェスチャー検出装置の回転を検出し、前記第２のセンサー軸に対するスピンジェスチャーを示す判定値を取得する、
ことを特徴とする請求項１に記載のジェスチャー検出装置。
【請求項３】
前記プロセッサは、
前記第１のセンサー軸に対する第１の方向判定値のみを取得した場合、前記ジェスチャー検出装置が、前記第１の方向判定値が特定する方向へ傾けられたことを示すジェスチャー判定値を出力し、
前記第２のセンサー軸に対する第２の方向判定値のみを取得した場合、前記ジェスチャー検出装置が、前記第２の方向判定値が特定する方向へ傾けられたことを示すジェスチャー判定値を出力し、
前記第１のセンサー軸に対する第１の方向判定値と、前記第２のセンサー軸に対する第２の方向判定値との双方を取得した場合、前記ジェスチャー検出装置が、前記第１の方向判定値が特定する方向と、前記第２の方向判定値が特定する方向との略中間方向へ傾けられたことを示すジェスチャー判定値を出力し、
前記第１のセンサー軸に対するスピンジェスチャーを示す判定値のみを取得した場合、前記ジェスチャー検出装置が、前記第１のセンサー軸に対するスピンジェスチャーを示す判定値が特定する方向へ回転されたことを示すジェスチャー判定値を出力し、
前記第２のセンサー軸に対するスピンジェスチャーを示す判定値のみを取得した場合、前記ジェスチャー検出装置が、前記第２のセンサー軸に対するスピンジェスチャーを示す判定値が特定する方向へ回転されたことを示すジェスチャー判定値を出力し、
前記第１のセンサー軸に対するスピンジェスチャーを示す判定値と、前記第２のセンサー軸に対するスピンジェスチャーを示す判定値との双方を取得した場合、前記ジェスチャー検出装置が、前記第１のセンサー軸に対するスピンジェスチャーを示す判定値が特定する方向と、前記第２のセンサー軸に対するスピンジェスチャーを示す判定値が特定する方向との略中間方向へ回転されたことを示すジェスチャー判定値を出力する
ことを特徴とする請求項２に記載のジェスチャー検出装置。
【請求項４】
前記ジェスチャー判定値を出力するタイミングで、前記ジェスチャー判定値と関連付けられた情報を表示部に表示する
ことを特徴とする請求項３に記載のジェスチャー検出装置。
【請求項５】
前記ジェスチャー判定値を出力するタイミングで、前記ジェスチャー判定値と関連付けられた操作を表示部に表示されたユーザーインターフェースに与える
ことを特徴とする請求項３に記載のジェスチャー検出装置。
【請求項６】
前記ジェスチャー判定値を出力するタイミングで、前記ジェスチャー判定値と関連付けられた前記ジェスチャー検出装置のジェスチャーの態様を示す出力を行う
ことを特徴とする請求項３に記載のジェスチャー検出装置。
【請求項７】
前記ジェスチャー検出装置のジェスチャーの態様を示す出力は音出力であり、
前記プロセッサは、
前記ジェスチャー判定値を出力するタイミングで、前記ジェスチャーの態様を示す音出力をスピーカーを介して出力する
ことを特徴とする請求項６に記載のジェスチャー検出装置。
【請求項８】
前記ジェスチャー検出装置のジェスチャーの態様を示す出力は画像出力であり、
前記プロセッサは、
前記ジェスチャー判定値を出力するタイミングで、前記ジェスチャーの態様を示す画像出力を表示部に表示する
ことを特徴とする請求項６に記載のジェスチャー検出装置。
【請求項９】
前記ジェスチャー検出装置は記憶部をさらに備え、
前記プロセッサは、
前記ジェスチャー判定値を時系列の組み合わせとして前記記憶部に記憶し、
時系列の組み合わせとして記憶された前記ジェスチャー判定値を、予め定められた情報と適合するか判定することによって認証処理を行う
ことを特徴とする請求項３乃至請求項８のいずれか１項に記載のジェスチャー検出装置。
【請求項１０】
請求項１から請求項９のいずれか１項に記載のジェスチャー検出装置と、
ニューラルネットワーク演算部を備えたジェスチャー認識装置であって、
前記ジェスチャー検出装置のプロセッサは、
前記ジェスチャー検出装置が検出した第１の一連のジェスチャー判定値を、時系列に組み合わせて記憶部に記憶し、
前記ニューラルネットワーク演算部は、
前記記憶部に記憶された前記第１の一連のジェスチャー判定値を、ニューラルネットワーク入力信号に変換し、前記変換されたニューラルネットワーク入力信号と、教師信号とを階層型ニューラルネットワークに入力することにより、前記階層型ニューラルネットワークを学習させ、
前記ジェスチャー検出装置の前記プロセッサは、
前記ジェスチャー検出装置が検出した第２の一連のジェスチャー判定値を、時系列に組み合わせて前記記憶部に記憶し、
前記ニューラルネットワーク演算部は、
前記記憶部に記憶された前記第２の一連のジェスチャー判定値を、ニューラルネットワーク入力信号に変換し、前記変換されたニューラルネットワーク入力信号を学習させた前記階層型ニューラルネットワークに入力することにより、前記階層型ニューラルネットワークからの出力信号を取得し、
前記ジェスチャー検出装置の前記プロセッサは、
取得した前記出力信号と前記教師信号との差を判定し、判定された前記差が許容値以下であった場合に、前記第２の一連のジェスチャー判定値は、前記ジェスチャー検出装置が前記第１の一連のジェスチャー判定値を検出した一連のジェスチャーと同じジェスチャーによって検出されたものと認識する
ことを特徴とするジェスチャー認識装置。
【請求項１１】
コンピュータに請求項１乃至請求項９のいずれか１項に記載の装置として機能させるためのコンピュータ実行可能命令からなるジェスチャー検出プログラム。
【請求項１２】
コンピュータに請求項１０に記載の装置として機能させるためのコンピュータ実行可能命令からなるジェスチャー認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の詳細な説明］
本発明はジェスチャー検出装置、ジェスチャー検出プログラム、ジェスチャー認識装置およびジェスチャー認識プログラムに関する。より詳細には、ジェスチャーを検出することができるジェスチャー検出装置およびジェスチャー検出プログラムならびにジェスチャーを認識することができるジェスチャー認識装置およびジェスチャー認識プログラムに関する。
【０００２】
スマートフォン等のスマートデバイスに対して、文字等の情報を認識させる方式としては、スマートデバイスのタッチスクリーンディスプレイ上に表示されたスマートキーボードを介しての入力方法が知られている。また、スマートデバイスのタッチスクリーンディスプレイ上に表示されたインターフェース等の操作には、ユーザーが指やスタイラスペンを用いてタッチ操作を行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２５６１００号公報
【特許文献２】特開２０１３−１３１８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、スマートデバイスのタッチスクリーンディスプレイの大きさには制限があり、スマートキーボードを介しての文字等の情報の入力はユーザーにとって行い難い場合があった。また、冬季外出等で手袋装着時には、スマートデバイスは、スクリーンタッチへのタッチ操作を認識する事が出来ないという問題がある。更に、工場等の現場作業に於いて、手袋装着が義務付けられている職場では、スマートデバイスへのタッチ操作をすることは困難である。
【０００５】
上記課題を解決するため、スマートデバイスのタッチスクリーンディスプレイを介してユーザーの指によるジェスチャーを認識し、ジェスチャーに関連付けられた操作を行うスマートデバイスについて開示されている。
【０００６】
また、スマートデバイスに対する空間中のジェスチャーを認識し、認識されたジェスチャーに応じて、キーボードオブジェクトの表示内容を変更するスマートフォンについて開示されている。
【０００７】
しかし、特許文献１に係るスマートデバイスでは、ユーザーがタッチスクリーンディスプレイを介してジェスチャーを行うという点で、スマートキーボードを介しての入力処理と操作性の点で大きな差異は無い。
【０００８】
また、特許文献２に係るスマートデバイスにおいても、最終的にユーザーがタッチスクリーンディスプレイを介して入力処理を行うという点で、スマートキーボードを介しての入力処理と操作点の点で大きな差異は無い。
【０００９】
また、スマートデバイスへのタッチ操作が困難な場合、音声によりスマートデバイスを操作する技術も存在するが、スマートデバイスのタッチスクリーンディスプレイに表示される各種ボタンや各種インターフェースを操作するときの操作性の問題があった。
【００１０】
本発明は、上述の課題に鑑みてなされたものであり、スマートフォン等のスマートデバイスがジェスチャーを検出し、検出されたジェスチャーに基づいて種々の処理を実行する。これにより、スマートフォン等のスマートデバイスにおいて、ユーザーに対して新たな操作性を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係るジェスチャー検出装置は、動き検出部と、プロセッサとを備えるジェスチャー検出装置であって、前記動き検出部は、前記ジェスチャー検出装置へのジェスチャーに応じて、３次元のセンサー軸方向にそれぞれ変位情報を出力し、前記プロセッサは、前記ジェスチャー検出装置への前記ジェスチャーに応じて、第１のセンサー軸の第１の変位情報が、閾値を上回って変化した後に、前記第１のセンサー軸の前記第１の変位情報が閾値を下回って変化したとき、前記ジェスチャー検出装置の傾きを検出し、前記第１のセンサー軸に対する第１の方向判定値を取得し、前記ジェスチャー検出装置への前記ジェスチャーに応じて、第２のセンサー軸の第２の変位情報が、閾値を上回って変化した後に、前記第２のセンサー軸の前記第２の変位情報が閾値を下回って変化したとき、前記ジェスチャー検出装置の傾きを検出し、前記第２のセンサー軸に対する第２の方向判定値を取得し、前記ジェスチャー検出装置への前記ジェスチャーに応じて、第３のセンサー軸の第３の変位情報が閾値を上回って変化している間、前記第１の方向判定値および前記第２の方向判定値を取得しないことにより、前記ジェスチャー検出装置へのジェスチャーを検出することを特徴とする。
【００１２】
本発明に係るジェスチャー検出装置は、上記の特徴に加え、前記プロセッサは、前記ジェスチャー検出装置への前記ジェスチャーに応じて、前記第１のセンサー軸の前記第１の変位情報が、閾値を上回って変化した後に、前記第１のセンサー軸の前記第１の変位情報が前記閾値とは異なる第２の閾値を上回って変化したとき、前記ジェスチャー検出装置の回転を検出し、前記第１のセンサー軸に対するスピンジェスチャーを示す判定値を取得し、前記ジェスチャー検出装置への前記ジェスチャーに応じて、前記第２のセンサー軸の前記第２の変位情報が、閾値を上回って変化した後に、前記第２のセンサー軸の前記第２の変位情報が前記閾値とは異なる第２の閾値を上回って変化したとき、前記ジェスチャー検出装置の回転を検出し、前記第２のセンサー軸に対するスピンジェスチャーを示す判定値を取得する、ことを特徴とする。
【００１３】
本発明に係るジェスチャー検出装置は、上記の特徴を備えるジェスチャー検出装置と、ニューラルネットワーク演算部を備えたジェスチャー認識装置であって、前記ジェスチャー検出装置のプロセッサは、前記ジェスチャー検出装置が検出した第１の一連のジェスチャー判定値を、時系列に組み合わせて記憶部に記憶し、前記ニューラルネットワーク演算部は、前記記憶部に記憶された前記第１の一連のジェスチャー判定値を、ニューラルネットワーク入力信号に変換し、前記変換されたニューラルネットワーク入力信号と、教師信号とを階層型ニューラルネットワークに入力することにより、前記階層型ニューラルネットワークを学習させ、前記ジェスチャー検出装置の前記プロセッサは、前記ジェスチャー検出装置が検出した第２の一連のジェスチャー判定値を、時系列に組み合わせて前記記憶部に記憶し、前記ニューラルネットワーク演算部は、前記記憶部に記憶された前記第２の一連のジェスチャー判定値を、ニューラルネットワーク入力信号に変換し、前記変換されたニューラルネットワーク入力信号を学習させた前記階層型ニューラルネットワークに入力することにより、前記階層型ニューラルネットワークからの出力信号を取得し、前記ジェスチャー検出装置の前記プロセッサは、取得した前記出力信号と前記教師信号との差を判定し、判定された前記差が許容値以下であった場合に、前記第２の一連のジェスチャー判定値は、前記ジェスチャー検出装置が前記第１の一連のジェスチャー判定値を検出した一連のジェスチャーと同じジェスチャーによって検出されたものと認識することを特徴とする。
【００１４】
本発明に係るジェスチャー検出プログラムは、コンピュータに上記の特徴を機能させるためのコンピュータ実行可能命令からなる。
【発明の効果】
【００１５】
本発明のジェスチャー検出装置、ジェスチャー検出プログラム、ジェスチャー認識装置およびジェスチャー認識プログラムによれば、スマートフォン等のスマートデバイスにおいて、ユーザーに対して新たな操作性を提供することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】実施形態におけるスマートフォンの外観正面図である。
【図２】実施形態におけるスマートフォンの外観斜視図である。
【図３】実施形態におけるスマートフォンの機能を示すブロック構成図である。
【図４】実施形態におけるスマートフォンのジェスチャー例である。
【図５】実施形態におけるスマートフォンのジェスチャー例である。
【図６】実施形態におけるスマートフォンのシェイクジェスチャー例である。
【図７】実施形態におけるスマートフォンのジェスチャー検出態様を説明するタイミングチャートである。
【図８】実施形態におけるスマートフォンのジェスチャー検出態様を説明するタイミングチャートである。
【図９】別実施形態におけるスマートフォンのスピンジェスチャー例である。
【図１０】別実施形態におけるスマートフォンのジェスチャー検出態様を説明するタイミングチャートである。
【図１１】別実施形態におけるスマートフォンのジェスチャー検出態様を説明するタイミングチャートである。
【図１２】実施形態におけるジェスチャーと判定値の関係を示すテーブルである。
【図１３】実施形態におけるスマートフォンの画面遷移図である。
【図１４】実施形態におけるスマートフォンの処理フローチャートである。
【図１５】実施形態におけるスマートフォンの処理フローチャートである。
【図１６】実施形態におけるスマートフォンの処理フローチャートである。
【図１７】実施形態におけるスマートフォンの処理フローチャートである。
【図１８】実施形態におけるスマートフォンの処理フローチャートである。
【図１９】実施形態におけるスマートフォンの処理フローチャートである。
【図２０】実施形態におけるスマートフォンの処理フローチャートである。
【図２１】実施形態におけるスマートフォンの処理フローチャートである。
【図２２】実施形態におけるスマートフォンの処理フローチャートである。
【図２３】実施形態におけるスマートフォンの処理フローチャートである。
【図２４】実施形態におけるスマートフォンの処理フローチャートである。
【図２５】実施形態におけるスマートフォンの処理フローチャートである。
【図２６】第２実施形態におけるスマートフォンの処理フローチャートである。
【図２７】第２実施形態におけるスマートフォンの画面遷移図である。
【図２８】第３実施形態におけるスマートフォンの画面表示例である。
【図２９】第３実施形態におけるジェスチャー判定値と出力の関係を示すテーブルである。
【図３０】第３実施形態におけるスマートフォンの音・画像出力例である。
【図３１】第３実施形態におけるスマートフォンのジェスチャー態様の説明図である。
【図３２】第３実施形態におけるスマートフォンのジェスチャー態様の説明図である。
【図３３】第３実施形態におけるスマートフォンの処理フローチャートである。
【図３４】第４実施形態におけるスマートフォンの画面表示例である。
【図３５】第４実施形態におけるスマートフォンの画面遷移図である。
【図３６】第４実施形態におけるジェスチャーと操作内容の関係を示すテーブルである。
【図３７】第５実施形態におけるスマートフォンの機能を示すブロック構成図である。
【図３８】第５実施形態におけるニューラルネットワーク演算部の機能を示すブロック構成図である。
【図３９】第５実施形態におけるデータテーブルを示す説明図である。
【図４０】第５実施形態におけるニューラルネットワークの詳細を示す説明図である。
【図４１】第５実施形態におけるスマートフォンの処理フローチャートである。
【図４２】第５実施形態におけるスマートフォンの画面遷移図である。
【発明を実施するための形態】
【００１７】
＜第１実施形態＞
本発明の実施形態について図面を参照して説明する。以下の実施形態では、空間中のジェスチャーを検出することができる機能を有するジェスチャー検出装置について説明する。ジェスチャー検出装置として、スマートフォンを例に説明する。
【００１８】
図１および図２は、本発明の実施形態における、ジェスチャー検出装置としてのスマートフォン１の外観図である。図１および図２に示すように、スマートフォン１は、筐体２、タッチスクリーンディスプレイ１３０、操作ボタン１４０、スピーカー１５０、マイク１６０、カメラ１７０を有する。タッチスクリーンディスプレイ１３０は、指やスタイラスペン等の接触を検出することができる。
【００１９】
図３は、本発明の実施形態における、ジェスチャー検出装置としてのスマートフォン１のブロック構成図である。図３に示すように、スマートフォン１は、プロセッサ１００と、プロセッサ１００にそれぞれ接続された動き検出部１１０、記憶部１２０、タッチスクリーンディスプレイ１３０、操作ボタン１４０、スピーカー１５０、マイク１６０、カメラ１７０、通信部１８０を有する。
【００２０】
プロセッサ１００は、中央処理演算装置（ＣＰＵ:Central Processing Unit）等の演算回路からなり、スマートフォン１の処理を統括制御する。例えば、プロセッサ１００は、記憶部１２０に記憶されたデータを適宜呼び出し、制御プログラム１２１に記憶されている命令を実行する。あるいは、プロセッサ１００は、動き検出部１１０によって出力された値を適宜呼び出し、ジェスチャー処理プログラム１２２に記憶されている命令を実行する。
【００２１】
動き検出部１１０は、加速度センサー１１１、角速度センサー１１２、地磁気センサー１１３からなり、各センサーが距離、速度、方向、角度などの変位を検出することができる。空間内におけるスマートフォン１の動きを検出するために、加速度センサー、角速度センサー、地磁気センサーからの出力結果は、組み合わせて利用される。
【００２２】
記憶部１２０は、半導体記憶装置や磁気記憶装置等の記憶装置からなり、プログラムおよびデータを記憶する。記憶部１２０は、制御プログラム１２１、ジェスチャー処理プログラム１２２、認証アプリケーション１２３、データ記憶部１２４を有する。
【００２３】
制御プログラム１２１は、スマートフォン１の各制御を機能させるためのものである。具体的には、タッチスクリーンディスプレイ１３０または操作ボタン１４０からの入力をデータとしてデータ記憶部１２４に保存し、当該データを適宜呼び出して、制御プログラム１２１に記憶されている命令を実行することによって、データ処理を実行する。
【００２４】
ジェスチャー処理プログラム１２２は、スマートフォン１のジェスチャーを検出し、検出されたジェスチャーをジェスチャー判定値としてデータ記憶部１２４に記憶することができる。
【００２５】
認証アプリケーション１２３は、タッチスクリーンディスプレイ１３０を介して入力された文字、図形、記号等の情報に基づいて、ユーザーの個人認証を行うアプリケーションプログラムである。また、認証アプリケーション１２３は、ジェスチャー処理プログラム１２２が検出する情報に基づいても、ユーザーの個人認証を行うことができる。詳細は後述する。
【００２６】
データ記憶部１２４は、スマートフォン１の設定に関する種々の設定データ、スマートフォン１に入力される種々の入力データ、ジェスチャー処理プログラム１２２および認証アプリケーション１２３が使用する種々のデータを記憶するためのデータ記憶領域である。
【００２７】
タッチスクリーンディスプレイ１３０は、表示部として機能し、ユーザーによる指やスタイラスペン等の接触を検出することができるとともに、文字、画像、記号等を表示する。
【００２８】
操作ボタン１４０は、スマートフォン１の複数箇所に設けられ、ユーザーが押下することにより、スマートフォン１に種々の動作をさせることができる。例えば、１４０Ａ、１４０Ｂは、それぞれホームボタン、スリープ／スリープ解除ボタンである。また、１４０Ｃ、１４０Ｄは、ボリュームボタンである。本明細書中においては、各ボタンの種類には言及せず、単に「ボタン１４０」として表記することがある。
【００２９】
スピーカー１５０は、例えば着信音や音楽を出力するためのものである。具体的には、プロセッサ１００の命令に基づいて、データ記憶部１２４に記憶された音声データを、音声信号に変換してスピーカー１５０に送信し、音声信号を受信したスピーカー１５０は、音声の出力を行う。
【００３０】
マイク１６０は、例えばユーザーの発話を入力するためのものである。具体的には、プロセッサ１００の命令に基づいて、マイク１６０を通じて音声を音声信号に変換する。
【００３１】
カメラ１７０は、物体を撮影するためのものである。カメラ１７０によって撮影された信号は、プロセッサ１００によってデータ形式に変換され、当該データはデータ記憶部１２４に記憶される。
【００３２】
通信部１８０は、公知の無線通信規格に定められた方式に基づいて、無線により通信を行うためのものである。無線通信規格として、４Ｇ等のセルラーフォンの通信規格があり、これらセルラーフォンの通信規格として、例えばＬＴＥ(Long Term Evolution)、ＷｉＭＡＸ(Worldwide Interoperability for Microwave Access)、Ｗｉ−Ｆｉ等がある。通信部１８０は、少なくともこれら通信規格のうち１つをサポートすることができる。
【００３３】
図４は、本発明の実施形態に係る、スマートフォン１の左右方向へのジェスチャーを３次元座標位置に示した図である。図４（ａ）は、スマートフォン１を左方向に傾けるところを３次元座標位置に示した斜視図であり、図４（ｂ）は、スマートフォン１を左方向に傾けるところを３次元座標位置に示した正面図である。
【００３４】
図４（ａ）および図４（ｂ）において、ポイントＰは、スマートフォン１の略中央に位置し、３次元座標軸の原点（０、０、０）と重合している。ポイントＰを略中心にして、ｚ軸を中心としたｘｙ軸平面内でスマートフォン１を左方向に傾けると、スマートフォン１はタッチスクリーンディスプレイ１３０をユーザー方向に向けたまま、図４（ａ）および図４（ｂ）の破線部に示される姿勢に傾けられる。このとき、ジェスチャー処理プログラム１２２は、加速度センサー１１１から出力される変位情報を用いてｚ軸を中心としたｘｙ軸平面内でのスマートフォン１の傾き角度を演算する。
【００３５】
ここで、スマートフォン１の傾き角度の演算について説明する。図４（ａ）および図４（ｂ）のように、ｚ軸を中心としたｘｙ軸平面内でのスマートフォン１の傾きを検出するためには、センサー軸（ｘ１、ｙ１、ｚ１）で検出された変位情報をそれぞれ（ａｘ１、ａｙ１、ａｚ１）とすると、地軸（ｘ、ｙ、ｚ）との傾き演算式は下記のようになる。
【００３６】
ｚ軸を中心としたスマートフォン１の傾き角度θ：ａｔａｎ（ａｙ１／ａｘ１）。
【００３７】
上記算出式は公知の技術であり、演算方法を限定するものではなく、変位情報（ａｘ１、ａｙ１、ａｚ１）、その他のセンサー出力、またはその他の演算式を適用してもよい。
【００３８】
本実施形態においては、上記の演算式によりｚ軸を中心としたｘｙ軸平面内でのスマートフォン１の傾き角度θは、左方向に傾けると−（マイナス）の値を出力し、右方向に傾けると＋（プラス）の値を出力する。
【００３９】
更に、本実施形態においては、スマートフォン１の傾き角度が所定角度を超えた場合、当該スマートフォン１が回転するジェスチャー（以下、スピンジェスチャーと記す）を検出することができる。
【００４０】
スマートフォン１がｙ軸に対してどの程度傾いたかを検出するために、本例では加速度センサー１１１の変位情報ａｙ１を用いる。すなわち、図４（ａ）および図４（ｂ）において、スマートフォン１が実線部に位置しているときは、加速度センサーが出力するａｙ１の値は「−１」となる。以下、図４（ａ）および図４（ｂ）において、スマートフォン１が破線部の方向に傾いていくと、ａｙ１の値は、９０度傾けた場合には「０」となる。
【００４１】
以上より、加速度センサー１１１が出力する変位情報ａｙ１が所定の値（本実施形態では、「０」）を上回った場合は、スマートフォン１がスピンジェスチャー挙動を行っていると判定する。
【００４２】
図５は、本発明の実施形態に係る、スマートフォン１の前後方向へのジェスチャーを３次元座標位置に示した図である。図５（ａ）は、スマートフォン１を後方向に傾けるところを３次元座標位置に示した斜視図であり、図５（ｂ）は、スマートフォン１を後方向に傾けるところを３次元座標位置に示した正面図である。
【００４３】
図５（ａ）および図５（ｂ）において、ポイントＰは、スマートフォン１の略中央に位置し、３次元座標軸の原点（０、０、０）と重合している。ポイントＰを略中心にして、ｘ軸を中心としたｙｚ軸平面内でスマートフォン１を後方向に傾けると、スマートフォン１はタッチスクリーンディスプレイ１３０をユーザー方向から上部方向に向きを変えて、図５（ａ）および図５（ｂ）の破線部に示される姿勢に傾けられる。このとき、ジェスチャー処理プログラム１２２は、加速度センサー１１１から出力される変位情報を用いてｘ軸を中心としたｙｚ軸平面内でスマートフォン１の傾き角度を演算する。
【００４４】
ここで、ｘ軸を中心としたｙｚ軸平面内でスマートフォン１の傾き角度の演算について説明する。図５（ａ）および図５（ｂ）のように、ｘ軸を中心としたｙｚ軸平面内でスマートフォン１の傾きを検出するためには、センサー軸（ｘ１、ｙ１、ｚ１）で検出された変位情報をそれぞれ（ａｘ１、ａｙ１、ａｚ１）とすると、地軸（ｘ、ｙ、ｚ）との傾き角度の演算式は下記のようになる。
【００４５】
ｘ軸を中心としたスマートフォン１の傾き角度θ：ａｔａｎ（ａｙ１／ａｚ１）。
【００４６】
上記算出式は公知の技術であり、演算方法を限定するものではなく、変位情報（ａｘ１、ａｙ１、ａｚ１）、その他のセンサー出力、またはその他の演算式を適用してもよい。
【００４７】
本実施形態においては、上記の演算式によりｘ軸を中心としたｙｚ軸平面内でスマートフォン１の傾きの傾き角度θは、後方向に傾けると−（マイナス）の値を出力し、前方向に傾けると＋（プラス）の値を出力する。
【００４８】
更に、本実施形態においては、スマートフォン１の傾き角度が所定角度を超えた場合、当該スマートフォン１のスピンジェスチャーを検出することができる。
【００４９】
スマートフォン１がｙ軸に対してどの程度傾いたかを検出するために、本例では加速度センサー１１１の変位情報ａｙ１を用いる。すなわち、図５（ａ）および図５（ｂ）において、スマートフォン１が実線部に位置しているときは、加速度センサーが出力するａｙ１の値は「−１」となる。以下、図５（ａ）および図５（ｂ）において、スマートフォン１が破線部の方向に傾いていくと、ａｙ１の値は、９０度傾けた場合には「０」となる
以上より、加速度センサー１１１が出力する変位情報ａｙ１が所定の値（本実施形態では、「０」）を上回った場合は、スマートフォン１がスピンジェスチャー挙動を行っていると判定する。
【００５０】
図６は、ユーザーがスマートフォン１を手に持って所定の方向に振り、スマートフォン１を所定の方向に振るジェスチャー（以下、本明細書において「シェイクジェスチャー」と記す）を検出する態様を図示した概念図である。図６において、ユーザーは、スマートフォン１を（０）基本姿勢から所定角度左側に傾け、再度基本姿勢位置に戻す（１）左方向へのシェイクジェスチャーを行うことができる。同様に、ユーザーは、（２）左後方向へのシェイクジェスチャー、（３）後方向へのシェイクジェスチャー、（４）右後方向へのシェイクジェスチャー、（５）右方向へのシェイクジェスチャー、（６）右前方向へのシェイクジェスチャー、（７）前方向へのシェイクジェスチャー、（８）左前方向へのシェイクジェスチャーを行うことができる。本実施形態において、ジェスチャー検出装置としてのスマートフォン１は、左、左後、後、右後、右、右前、前、左前の８方向へのシェイクジェスチャーを検出することができる。
【００５１】
スマートフォン１のジェスチャー検出について、図７を参照して詳細に説明する。
【００５２】
ｘは、ｘ軸上の座標情報である。すなわち、加速度センサー１１１が出力する変位情報ａｘ１より座標情報を特定する。例えば、図４の正面視の状態で、スマートフォン１が実線部に位置しているときは、加速度センサー１１１からの出力は「０」である。このときジェスチャー処理プログラム１２２はｘ軸の座標値として「０」を特定する。スマートフォン１を破線部方向に傾けると、加速度センサー１１１が出力する変位情報ａｘ１は段階的に減少するため、ｘ軸の座標値も段階的に減少する。さらに、スマートフォン１を左方向に傾け、丁度９０度傾けた場合、加速度センサー１１１からの出力は「−１」となる。このときジェスチャー処理プログラム１２２はｘ軸の座標値として「−１」を特定する。
【００５３】
ｚは、ｚ軸上の座標情報である。すなわち、加速度センサー１１１が出力する変位情報ａｚ１より座標情報を特定する。例えば、図５の正面視の状態で、スマートフォン１が実線部に位置しているときは、加速度センサー１１１からの出力は「０」である。このときジェスチャー処理プログラム１２２はｚ軸の座標値として「０」を特定する。スマートフォン１を破線部方向に傾けると、加速度センサー１１１が出力する変位情報ａｚ１は段階的に減少するため、ｚ軸の座標値も段階的に減少する。さらに、スマートフォン１を後方向に傾け、丁度９０度傾けた場合、加速度センサー１１１からの出力は「−１」となる。このときジェスチャー処理プログラム１２２はｚ軸の座標値として「−１」を特定する。
【００５４】
ｙは、ｙ軸上の座標情報である。すなわち、加速度センサー１１１が出力する変位情報ａｙ１より座標情報を特定する。例えば、図４または図５において、スマートフォン１が実線部に位置しているときは、加速度センサー１１１からの出力は「−１」である。このときジェスチャー処理プログラム１２２はｙ軸の座標値として「−１」を特定する。スマートフォン１を、破線部方向に傾けると、加速度センサー１１１が出力する変位情報ａｙ１は段階的に増加するため、ｙ軸の座標値も段階的に増加する。さらに、スマートフォン１を傾け、丁度９０度傾けた場合、加速度センサー１１１からの出力は「０」となる。このときジェスチャー処理プログラム１２２はｙ軸の座標値として「０」を特定する。
【００５５】
Ｆ（ｘ）は、ｘ軸判定Ｆであり、左右方向のスマートフォン１のジェスチャーを判定することができる。具体的には、スマートフォン１の振り出し時に、振り出し時の閾値を上回るタイミングで方向判定値としての左右判定値を取得する。同様に、スマートフォン１の振り戻し時にも、振り戻し時の閾値を下回るタイミングで方向判定値としての左右判定値を取得する。左右判定値にはそれぞれ方向が対応付けられており、取得した左右判定値の組み合わせにより、いずれの方向に所定角度以上の傾き角度が発生したかを判定することができる。
【００５６】
同様に、Ｆ（ｚ）は、ｚ軸判定Ｆであり、前後方向のスマートフォン１のジェスチャーを判定することができる。具体的には、スマートフォン１の振り出し時に、振り出し時の閾値を上回るタイミングで方向判定値としての前後判定値を取得する。同様に、スマートフォン１の振り戻し時にも、振り戻し時の閾値を下回るタイミングで方向判定値としての前後判定値を取得する。前後判定値にはそれぞれ方向が対応付けられており、取得した左右判定値の組み合わせにより、いずれの方向に所定角度以上の傾き角度が発生したかを判定することができる。さらに、Ｆ（ｙ）は、ｙ軸傾き判定Ｆであり、加速度センサー１１１が出力するｙが所定の値を上回ると＋１を出力する。
【００５７】
ｔｒ（ｘ）は、トリガー信号であり、スマートフォン１がｘ軸上において特定の挙動を行ったタイミングで立ち下げおよび立ち上げを行う。本実施例では、ｔｒ（ｘ）の立ち上げを契機として、後述のトグル信号ｔｇ（ｘ）の状態検出を行うとともに、後述の判定Ｇの処理が開始される。
【００５８】
ｔｒ（ｚ）は、トリガー信号であり、スマートフォン１がｚ軸上において特定の挙動を行ったタイミングで立ち下げおよび立ち上げを行う。本実施例では、ｔｒ（ｚ）の立ち上げを契機として、後述のトグル信号ｔｇ（ｚ）の状態検出を行うとともに、後述の判定Ｇの処理が開始される。
【００５９】
ｔｇ（ｘ）は、トグル信号であり、スマートフォン１のジェスチャーの切り替わりを判定するために、所定のタイミングで立ち下げおよび立ち上げを行う。さらに、本ｔｇ（ｘ）の状態変化に基づいて、判定Ｇの判定処理が行われる。詳細は後述する。
【００６０】
ｔｇ（ｚ）は、トグル信号であり、スマートフォン１のジェスチャーの切り替わりを判定するために、所定のタイミングで立ち下げおよび立ち上げを行う。さらに、本ｔｇ（ｚ）の状態変化に基づいて、判定Ｇの判定処理が行われる。詳細は後述する。
【００６１】
判定Ｇは、ジェスチャー判定Ｇであり、Ｆ（ｘ）、Ｆ（ｚ）、Ｆ（ｙ）、ｔｒ（ｘ）、ｔｒ（ｚ）、ｔｇ（ｘ）およびｔｇ（ｚ）の出力に基づいて、ジェスチャー判定値を出力する。ジェスチャー判定値は、それぞれＬ、ｌｂ、Ｂ、ｒｂ、Ｒ、ｒｆ、Ｆ、ｌｆの値を出力し、それぞれ左、左後、後、右後、右、右前、前、左前の８種類の方向に対応する。本実施形態におけるスマートフォン１は、当該ジェスチャー判定値をあらかじめ記憶されたテーブルと参照する等の処理によって左、左後、後、右後、右、右前、前、左前の８種類の方向へのシェイクジェスチャーを判定することができる。また、ジェスチャー判定Ｇの設定によってはより細かな方向を設定することも可能である。
【００６２】
次に、スマートフォン１のジェスチャー検出について、図７のタイムチャートに沿って詳細に説明する。
【００６３】
スマートフォン１が左に振り出されると、ｘは段階的に減少する。ｘが閾値ｓ２ｉｎを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ１）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−２を取得する。Ｆ（ｘ）は方向判定値である左右判定値−２に基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ１）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ１）、ｔｇ（ｘ）は０から＋１に信号を立ち上げる（ｔ１）。
【００６４】
スマートフォン１が右に振り戻されると、ｘは段階的に増加する。ｘが閾値ｓ２ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ２）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−３を取得する。Ｆ（ｘ）は、ｔ１における左右判定値が−２であること、およびｔ２における左右判定値が−３であることに基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ１）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ２）。
【００６５】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ２）。本例では、ｔｇ（ｘ）の値が０（ｔ０）から＋１（ｔ２）になる一方で、ｔｇ（ｚ）の値は０（ｔ０）から０（ｔ２）のままである。判定Ｇは、ｔｇ（ｘ）に状態変化があったことに基づいて、ｔ２におけるＦ（ｘ）の出力値である「Ｌ」を採用する。以上より、判定Ｇは「Ｌ」を採用したことに基づいて、スマートフォン１のジェスチャーは左方向へのシェイクジェスチャーであることを表す「Ｌ」を判定する（ｔ２）。
【００６６】
スマートフォン１が左後に振り出されると、ｘおよびｚは段階的に減少する。ｘが閾値ｓ２ｉｎを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ３）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−２を取得する。Ｆ（ｘ）は方向判定値である左右判定値−２に基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ３）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ３）、ｔｇ（ｘ）は＋１から０に信号を立ち下げる（ｔ３）。同様に、ｚが閾値ｓ４ｉｎを下回ると、スマートフォン１が所定の角度を超えて後に傾けられたことが検知される（ｔ３）。このとき、Ｆ（ｚ）は方向判定値である前後判定値−２を取得する。Ｆ（ｚ）は方向判定値である前後判定値−２に基づいて判定処理を行い、Ｆ（ｚ）は後方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ３）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ３）、ｔｇ（ｚ）は０から＋１に信号を立ち上げる（ｔ３）。
【００６７】
スマートフォン１が右前に振り戻されると、ｘおよびｚは段階的に増加する。ｘが閾値ｓ２ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ４）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−３を取得する。Ｆ（ｘ）は、ｔ３における左右判定値が−２であること、およびｔ４における左右判定値が−３であることに基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ４）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ４）。同様に、ｚが閾値ｓ４ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて前に傾けられたことが検知される（ｔ４）。このとき、Ｆ（ｚ）は方向判定値である前後判定値−３を取得する。Ｆ（ｚ）はｔ３における前後判定値が−２であること、およびｔ４における前後判定値が−３であることに基づいて判定処理を行い、Ｆ（ｚ）は後方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ４）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ４）。
【００６８】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ４）。本例では、ｔｇ（ｘ）の値が＋１（ｔ２）から０（ｔ４）になり、ｔｇ（ｚ）の値も０（ｔ２）から＋１（ｔ４）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、ｔ４におけるＦ（ｘ）およびＦ（ｚ）の双方の判定値である「Ｌ」および「Ｂ」を採用する。以上より、判定Ｇは「Ｌ」および「Ｂ」を採用したことに基づいて、スマートフォン１のジェスチャーは左後方向へのシェイクジェスチャーであることを表す「ｌｂ」を判定する（ｔ４）。
【００６９】
スマートフォン１が後に振り出されると、ｚは段階的に減少する。ｚが閾値ｓ４ｉｎを下回ると、スマートフォン１が所定の角度を超えて後に傾けられたことが検知される（ｔ５）。このとき、Ｆ（ｚ）は方向判定値である前後判定値−２を取得する。Ｆ（ｚ）は方向判定値である前後判定値−２に基づいて判定処理を行い、Ｆ（ｚ）は後方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ５）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ５）、ｔｇ（ｚ）は＋１から０に信号を立ち下げる（ｔ５）。
【００７０】
スマートフォン１が前に振り戻されると、ｚは段階的に増加する。ｚが閾値ｓ４ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて前に傾けられたことが検知される（ｔ６）。このとき、Ｆ（ｚ）は方向判定値である前後判定値−３を取得する。Ｆ（ｚ）はｔ５における前後判定値が−２であること、およびｔ６における前後判定値が−３であることに基づいて判定処理を行い、Ｆ（ｚ）は後方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ６）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ６）。
【００７１】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ６）。本例では、ｔｇ（ｘ）の値が０（ｔ４）から０（ｔ６）のままである一方で、ｔｇ（ｚ）の値は＋１（ｔ４）から０（ｔ６）になる。判定Ｇは、ｔｇ（ｚ）に状態変化があったことに基づいて、ｔ６におけるＦ（ｚ）の出力値である「Ｂ」を採用する。以上より、判定Ｇは「Ｂ」を採用したことに基づいて、スマートフォン１のジェスチャーは後方向へのシェイクジェスチャーであることを表す「Ｂ」を判定する（ｔ６）。
【００７２】
スマートフォン１が右後に振り出されると、ｘは段階的に増加し、ｚは段階的に減少する。ｘが閾値ｓ１ｉｎを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ７）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋２を取得する。Ｆ（ｘ）は方向判定値である左右判定値＋２に基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ７）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ７）、ｔｇ（ｘ）は０から＋１に信号を立ち上げる（ｔ７）。同様に、ｚが閾値ｓ４ｉｎを下回ると、スマートフォン１が所定の角度を超えて後に傾けられたことが検知される（ｔ７）。このとき、Ｆ（ｚ）は方向判定値である前後判定値−２を取得する。Ｆ（ｚ）は方向判定値である前後判定値−２に基づいて判定処理を行い、Ｆ（ｚ）は後方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ７）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ７）、ｔｇ（ｚ）は０から＋１に信号を立ち上げる（ｔ７）。
【００７３】
スマートフォン１が左前に振り戻されると、ｘは段階的に減少し、ｚは段階的に増加する。ｘが閾値ｓ１ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ８）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋３を取得する。Ｆ（ｘ）はｔ７における左右判定値が＋２であること、およびｔ８における左右判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ８）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ８）。同様に、ｚが閾値ｓ４ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて前に傾けられたことが検知される（ｔ８）。このとき、Ｆ（ｚ）は方向判定値である前後判定値−３を取得する。Ｆ（ｚ）はｔ７における前後判定値が−２であること、およびｔ８における前後判定値が−３であることに基づいて判定処理を行い、Ｆ（ｚ）は後方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ８）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ８）。
【００７４】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ８）。本例では、ｔｇ（ｘ）の値が０（ｔ６）から＋１（ｔ８）になり、ｔｇ（ｚ）の値も０（ｔ６）から＋１（ｔ８）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、ｔ８におけるＦ（ｘ）およびＦ（ｚ）の双方の判定値である「Ｒ」および「Ｂ」を採用する。以上より、判定Ｇは「Ｒ」および「Ｂ」を採用したことに基づいて、スマートフォン１のジェスチャーは右後方向へのシェイクジェスチャーであることを表す「ｒｂ」を判定する（ｔ８）。
【００７５】
スマートフォン１が右に振り出されると、ｘは段階的に増加する。ｘが閾値ｓ１ｉｎを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ９）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋２を取得する。Ｆ（ｘ）は方向判定値である左右判定値＋２に基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ９）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ９）、ｔｇ（ｘ）は＋１から０に信号を立ち下げる（ｔ９）。
【００７６】
スマートフォン１が左に振り戻されると、ｘは段階的に減少する。ｘが閾値ｓ１ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ１０）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋３を取得する。Ｆ（ｘ）はｔ９における左右判定値が＋２であること、およびｔ１０における左右判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ１０）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ１０）。
【００７７】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１０）。本例では、ｔｇ（ｘ）の値が＋１（ｔ８）から０（ｔ１０）になる一方で、ｔｇ（ｚ）の値は＋１（ｔ８）から＋１（ｔ１０）のままである。判定Ｇは、ｔｇ（ｘ）に状態変化があったことに基づいて、ｔ１０におけるＦ（ｘ）の出力値である「Ｒ」を採用する。以上より、判定Ｇは「Ｒ」を採用したことに基づいて、スマートフォン１のジェスチャーは右方向へのシェイクジェスチャーであることを表す「Ｒ」を判定する（ｔ１０）。
【００７８】
スマートフォン１が右前に振り出されると、ｘおよびｚは段階的に増加する。ｘが閾値ｓ１ｉｎを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ１１）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋２を取得する。Ｆ（ｘ）は方向判定値である左右判定値＋２に基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ１１）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ１１）、ｔｇ（ｘ）は０から＋１に信号を立ち上げる（ｔ１１）。同様に、ｚが閾値ｓ３ｉｎを上回ると、スマートフォン１が所定の角度を超えて前に傾けられたことが検知される（ｔ１１）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋２を取得する。Ｆ（ｚ）は方向判定値である前後判定値＋２に基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ１１）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ１１）、ｔｇ（ｚ）は＋１から０に信号を立ち下げる（ｔ１１）。
【００７９】
スマートフォン１が左後に振り戻されると、ｘおよびｚは段階的に減少する。ｘが閾値ｓ１ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ１２）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋３を取得する。Ｆ（ｘ）はｔ１１における左右判定値が＋２であること、およびｔ１２における左右判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ１２）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ１２）。同様に、ｚが閾値ｓ３ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて後に傾けられたことが検知される（ｔ１２）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋３を取得する。Ｆ（ｚ）はｔ１１における前後判定値が＋２であること、およびｔ１２における前後判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ１２）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ１２）。
【００８０】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１２）。本例では、ｔｇ（ｘ）の値が０（ｔ１０）から＋１（ｔ１２）になり、ｔｇ（ｚ）の値も＋１（ｔ１０）から０（ｔ１２）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、ｔ１２におけるＦ（ｘ）およびＦ（ｚ）の双方の判定値である「Ｒ」および「Ｆ」を採用する。以上より、判定Ｇは「Ｒ」および「Ｆ」を採用したことに基づいて、スマートフォン１のジェスチャーは右前方向へのシェイクジェスチャーであることを表す「ｒｆ」を判定する（ｔ１２）。
【００８１】
スマートフォン１が前に振り出されると、ｚは段階的に増加する。ｚが閾値ｓ３ｉｎを上回ると、スマートフォン１が所定の角度を超えて前に傾けられたことが検知される（ｔ１３）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋２を取得する。Ｆ（ｚ）は方向判定値である前後判定値＋２に基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ１３）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ１３）、ｔｇ（ｚ）は０から＋１に信号を立ち上げる（ｔ１３）。
【００８２】
スマートフォン１が後に振り戻されると、ｚは段階的に減少する。ｚが閾値ｓ３ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて後に傾けられたことが検知される（ｔ１４）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋３を取得する。Ｆ（ｚ）はｔ１３における前後判定値が＋２であること、およびｔ１４における前後判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ１４）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ１４）。
【００８３】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１４）。本例では、ｔｇ（ｘ）の値が＋１（ｔ１２）から＋１（ｔ１４）のままである一方で、ｔｇ（ｚ）の値は０（ｔ１２）から＋１（ｔ１４）になる。判定Ｇは、ｔｇ（ｚ）に変化があったことに基づいて、ｔ１４におけるＦ（ｚ）の出力値である「Ｆ」を採用する。以上より、判定Ｇは「Ｆ」を採用したことに基づいて、スマートフォン１のジェスチャーは前方向へのシェイクジェスチャーであることを表す「Ｆ」を判定する（ｔ１４）。
【００８４】
スマートフォン１が左前に振り出されると、ｘは段階的に減少し、ｚは段階的に増加する。ｘが閾値ｓ２ｉｎを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ１５）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−２を取得する。Ｆ（ｘ）は方向判定値である左右判定値−２に基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ１５）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ１５）、ｔｇ（ｘ）は＋１から０に信号を立ち下げる（ｔ１５）。同様に、ｚが閾値ｓ３ｉｎを上回ると、スマートフォン１が所定の角度を超えて前に傾けられたことが検知される（ｔ１５）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋２を取得する。Ｆ（ｚ）は方向判定値である前後判定値＋２に基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ１５）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ１５）、ｔｇ（ｚ）は＋１から０に信号を立ち下げる（ｔ１５）。
【００８５】
スマートフォン１が右後に振り戻されると、ｘは段階的に増加し、ｚは段階的に減少する。ｘが閾値ｓ２ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ１６）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−３を取得する。Ｆ（ｘ）はｔ１５における左右判定値が−２であること、およびｔ１６における左右判定値が−３であることに基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ１６）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ１６）。同様に、ｚが閾値ｓ３ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて後に傾けられたことが検知される（ｔ１６）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋３を取得する。Ｆ（ｚ）はｔ１５における前後判定値が＋２であること、およびｔ１６における前後判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ１６）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ１６）。
【００８６】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１６）。本例では、ｔｇ（ｘ）の値が＋１（ｔ１４）から０（ｔ１６）になり、ｔｇ（ｚ）の値も＋１（ｔ１４）から０（ｔ１６）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、ｔ１６におけるＦ（ｘ）およびＦ（ｚ）の双方の判定値である「Ｌ」および「Ｆ」を採用する。以上より、判定Ｇは「Ｌ」および「Ｆ」を採用したことに基づいて、スマートフォン１のジェスチャーは左前方向へのシェイクジェスチャーであることを表す「ｌｆ」を判定する（ｔ１６）。
【００８７】
図７のタイミングチャートにおいては、スマートフォン１が左右方向と前後方向に略同じタイミングで振り出される場合について説明したが、スマートフォン１が左右方向と前後方向に異なるタイミングで振り出されても、判定Ｇはスマートフォン１のジェスチャーを判定することができる。
【００８８】
以下、スマートフォン１のジェスチャー検出について、図８のタイムチャートに沿って詳細に説明する。尚、図７と重複する態様のジェスチャー検出を割愛し、図８におけるｔ７からｔ１２までのジェスチャー検出について以下説明する。
【００８９】
図８のｔ７において、スマートフォン１が左に振り出されると、ｘは段階的に減少する。ｘが閾値ｓ２ｉｎを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ７）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−２を取得する。Ｆ（ｘ）は方向判定値である左右判定値−２に基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ７）。このタイミングと同期して、ｔｒ（ｘ）は＋１から０に信号を立ち下げ（ｔ７）、ｔｇ（ｘ）は０から＋１に信号を立ち上げる（ｔ７）。
【００９０】
スマートフォン１が前に振り出されると、ｚは段階的に増加する。ｚが閾値ｓ３ｉｎを上回ると、スマートフォン１が所定の角度を超えて前に傾けられたことが検知される（ｔ８）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋２を取得する。Ｆ（ｚ）は方向判定値である前後判定値＋２に基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ８）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ８）、ｔｇ（ｚ）は０から＋１に信号を立ち上げる（ｔ８）。
【００９１】
スマートフォン１が右に振り戻されると、ｘは段階的に増加する。ｘが閾値ｓ２ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ９）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−３を取得する。Ｆ（ｘ）はｔ７における左右判定値が−２であること、およびｔ９における左右判定値が−３であることに基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ９）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ９）。
【００９２】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ９）。本例では、ｔｇ（ｘ）の値が０（ｔ６）から＋１（ｔ９）になり、ｔｇ（ｚ）の値も０（ｔ６）から＋１（ｔ９）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、ｔ９におけるＦ（ｘ）およびＦ（ｚ）の双方の判定値である「Ｌ」および「Ｆ」を採用する。以上より、判定Ｇは「Ｌ」および「Ｆ」を採用したことに基づいて、スマートフォン１のジェスチャーは左前方向へのシェイクジェスチャーであることを表す「ｌｆ」を判定する（ｔ９）。
【００９３】
スマートフォン１が右に振り出されると、ｘは段階的に増加する。ｘが閾値ｓ１ｉｎを上回ると、スマートフォン１が所定の角度を超えて右に傾けられたことが検知される（ｔ１０）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋２を取得する。Ｆ（ｘ）は方向判定値である左右判定値＋２に基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ１０）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ１０）、ｔｇ（ｘ）は＋１から０に信号を立ち下げる（ｔ１０）。
【００９４】
スマートフォン１が左に振り戻されると、ｘは段階的に減少する。ｘが閾値ｓ１ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて左に傾けられたことが検知される（ｔ１１）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋３を取得する。Ｆ（ｘ）はｔ１０における左右判定値が＋２であること、およびｔ１１における左右判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ１１）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ１１）。
【００９５】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１１）。本例では、ｔｇ（ｘ）の値が＋１（ｔ９）から０（ｔ１１）になる一方で、ｔｇ（ｚ）の値は＋１（ｔ９）から＋１（ｔ１１）のままである。判定Ｇは、ｔｇ（ｘ）に状態変化があったことに基づいて、ｔ１１におけるＦ（ｘ）の出力値である「Ｒ」を採用する。以上より、判定Ｇは「Ｒ」を採用したことに基づいて、スマートフォン１のジェスチャーは右方向へのシェイクジェスチャーであることを表す「Ｒ」を判定する（ｔ１１）。
【００９６】
スマートフォン１が後に振り戻されると、動き検出部１１０が出力する値ｚは、段階的に減少する。ｚが閾値ｓ３ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて後に傾けられたことが検知される（ｔ１２）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋３を取得する。Ｆ（ｚ）はｔ８における前後判定値が＋２であること、およびｔ１２における前後判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ１２）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ１２）。
【００９７】
このタイミングと同期して、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１２）。本例では、ｔｇ（ｘ）の値が０（ｔ１１）から０（ｔ１２）のままであり、ｔｇ（ｚ）の値も＋１（ｔ１１）から＋１（ｔ１２）のままである。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化が無かったことに基づいて、ｔ１２におけるＦ（ｘ）およびＦ（ｚ）出力を行わない。以上の処理結果より、判定Ｇはスマートフォン１のジェスチャー判定処理を行わない（ｔ１２）。
【００９８】
以上説明したように、スマートフォン１が左右方向と前後方向に異なるタイミングで傾けられても、判定Ｇはスマートフォン１のジェスチャー態様を判定することができる。
【００９９】
上述の通り、スマートフォン１がいずれの方向に傾いたかを判定することで、スマートフォン１のジェスチャー検出について説明をした。そして、検出可能なジェスチャーは所定方向へのシェイクジェスチャーのみならず、例えば、スマートフォン１を回転させる、スピンジェスチャーについても検出することが可能である。
【０１００】
本別実施例について、図９から図１１を参照して詳細に説明する。図９において、中央に図示されているスマートフォン１は（０）基本姿勢にある。そして、Ｐを略中心としてｚ軸を中心としたｘｙ軸平面内で左方向に１回転させて基本姿勢に戻る態様を（９）左スピンジェスチャーといい、Ｐを略中心としてｘ軸を中心としたｙｚ軸平面内で後方向に１回転させて基本姿勢に戻る態様を（１１）後スピンジェスチャーといい、Ｐを略中心としてｚ軸を中心としたｘｙ軸平面内で右方向に１回転させて基本姿勢に戻る態様を（１３）右スピンジェスチャーといい、Ｐを略中心としてｘ軸を中心としたｙｚ軸平面内で前方向に１回転させて基本姿勢に戻る態様を（１５）前スピンジェスチャーという。さらに、（９）左スピンジェスチャーと（１１）後スピンジェスチャーとの中間方向に１回転させて基本姿勢に戻る態様を（１０）左後スピンジェスチャーといい、（１１）後スピンジェスチャーと（１３）右スピンジェスチャーとの中間方向に１回転させて基本姿勢に戻る態様を（１２）右後スピンジェスチャーといい、（１３）右スピンジェスチャーと（１５）前スピンジェスチャーとの中間方向に１回転させて基本姿勢に戻る態様を（１４）右前スピンジェスチャーといい、（１５）前スピンジェスチャーと（９）左スピンジェスチャーとの中間方向に１回転させて基本姿勢に戻る態様を（１６）左前スピンジェスチャーという。
【０１０１】
スマートフォン１が各スピンジェスチャーを検出したとき、ジェスチャー判定値は、それぞれｃｌ、ｃｒ、ｃｆ、ｃｂ、ｃｌｂ、ｃｌｆ、ｃｒｂ、ｃｒｆの値を出力し、それぞれ左回転、右回転、前回転、後回転、左後回転、左前回転、右後回転、右前回転の８種類の方向に対応する。
【０１０２】
スマートフォン１のジェスチャー検出について、図１０を参照して説明する。
【０１０３】
スマートフォン１が前方向に回転され始めると、ｚは段階的に増加する。ｚが閾値ｓ３ｉｎを上回ると、スマートフォン１が所定の角度を超えて傾いたことが検知される（ｔ１）。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋２を取得する。Ｆ（ｚ）は方向判定値である前後判定値＋２に基づいて判定処理を行い、Ｆ（ｚ）は前方向へのシェイクジェスチャーを表す「Ｆ」を判定する（ｔ１）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ１）、ｔｇ（ｚ）は０から＋１に信号を立ち上げる（ｔ１）。
【０１０４】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に増加する。ｙが閾値ｓ５を上回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｘ軸を中心としたｙｚ軸平面内で前方向に９０度）を超えて傾いたことが検知される（ｔ２）。このタイミングと同期して、Ｆ（ｙ）は＋１の値を出力する（ｔ２）。
【０１０５】
スマートフォン１が回転を続けると、ｚはｔ２を過ぎると段階的に減少する。ｚが閾値ｓ３ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｘ軸を中心としたｙｚ軸平面内で前方向に９０度を超えて回転し、１８０度の姿勢に近づいたことが検知される。ここで、スマートフォン１のスピンジェスチャーの検出では、Ｆ（ｙ）の値が＋１の間は、Ｆ（ｚ）の判定処理を行わない。同様に、Ｆ（ｙ）の値が＋１の間は、ジェスチャー判定Ｇの判定処理も行わない。ｔ３での前後判定値に基づいてＦ（ｚ）による判定およびジェスチャー判定Ｇを行った場合、前方向へのシェイクジェスチャーが行われたことを表す「Ｆ」と判定されてしまうため、これを回避するためである。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ３）。
【０１０６】
スマートフォン１が回転を続けると、ｚは段階的に減少する。ｚが閾値ｓ４ｉｎを下回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｘ軸を中心としたｙｚ軸平面内で前方向に１８０度を超えて回転し、２７０度の姿勢に近づいたことが検知される（ｔ４）。ここで、ｔ４におけるＦ（ｙ）の値は＋１なので、Ｆ（ｚ）の判定処理を行わない。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ４）、ｔｇ（ｚ）は＋１から０に信号を立ち下げる（ｔ４）。
【０１０７】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に減少する。ｙが閾値ｓ５を下回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｘ軸を中心としたｙｚ軸平面内で前方向に２７０度）を超えて傾いたことが検知される（ｔ５）。このタイミングと同期して、Ｆ（ｙ）は０の値を出力する（ｔ５）。
【０１０８】
スマートフォン１が回転を続けると、ｚはｔ５を過ぎると段階的に増加する。ｚが閾値ｓ４ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｘ軸を中心としたｙｚ軸平面内で前方向に２７０度以上回転したことが検知される（ｔ６）。ここで、Ｆ（ｙ）の値が０となっているために、Ｆ（ｚ）の判定処理を行う。このとき、Ｆ（ｚ）は方向判定値である前後判定値−３を取得する。Ｆ（ｚ）は、ｔ１における前後判定値が＋２であること、およびｔ６における前後判定値が−３であることに基づいて判定処理を行い、Ｆ（ｚ）は前方向へのスピンジェスチャーを表す「ｃｆ」を判定する（ｔ６）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ６）。
【０１０９】
ｔ６において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ６）。本例では、ｔｇ（ｘ）の値が＋１（ｔ３）から＋１（ｔ６）のままである一方で、ｔｇ（ｚ）の値は＋１（ｔ３）から０（ｔ６）になる。判定Ｇは、ｔｇ（ｚ）に状態変化があったことに基づいて、Ｆ（ｚ）の出力値である「ｃｆ」を採用する。以上より、判定Ｇは「ｃｆ」を採用したことに基づいて、スマートフォン１のジェスチャーは前方向へのスピンジェスチャーであることを表す「ｃｆ」を判定する（ｔ６）。
【０１１０】
スマートフォン１が後方向に回転され始めると、ｚは段階的に減少する。ｚが閾値ｓ４ｉｎを下回ると、スマートフォン１が所定の角度を超えて傾いたことが検知される（ｔ７）。このとき、Ｆ（ｚ）は方向判定値である前後判定値−２を取得する。Ｆ（ｚ）は方向判定値である前後判定値−２に基づいて判定処理を行い、Ｆ（ｚ）は後方向へのシェイクジェスチャーを表す「Ｂ」を判定する（ｔ７）。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ７）、ｔｇ（ｚ）は０から＋１に信号を立ち上げる（ｔ７）。
【０１１１】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に増加する。ｙが閾値ｓ５を上回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｘ軸を中心としたｙｚ軸平面内で後方向に９０度）を超えて傾いたことが検知される（ｔ８）。このタイミングと同期して、Ｆ（ｙ）は＋１の値を出力する（ｔ８）。
【０１１２】
スマートフォン１が回転を続けると、ｚはｔ８を過ぎると段階的に増加する。ｚが閾値ｓ４ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｘ軸を中心としたｙｚ軸平面内で後方向に９０度を超えて回転し、１８０度の姿勢に近づいたことが検知される。ここで、スマートフォン１のスピンジェスチャーの検出では、Ｆ（ｙ）の値が＋１の間は、Ｆ（ｚ）の判定処理を行わない。同様に、Ｆ（ｙ）の値が＋１の間は、ジェスチャー判定Ｇの判定処理も行わない。ｔ９での前後判定値に基づいてＦ（ｚ）による判定およびジェスチャー判定Ｇを行った場合、後方向へのシェイクジェスチャーが行われたことを表す「Ｂ」と判定されてしまうため、これを回避するためである。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ９）。
【０１１３】
スマートフォン１が回転を続けると、ｚは段階的に増加する。ｚが閾値ｓ３ｉｎを上回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｘ軸を中心としたｙｚ軸平面内で後方向に１８０度を超えて回転し、２７０度の姿勢に近づいたことが検知される（ｔ１０）。ここで、ｔ１０におけるＦ（ｙ）の値は＋１なので、Ｆ（ｚ）の判定処理を行わない。このタイミングと同期して、ｔｒ（ｚ）は、＋１から０に信号を立ち下げ（ｔ１０）、ｔｇ（ｚ）は＋１から０に信号を立ち下げる（ｔ１０）。
【０１１４】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に減少する。ｙが閾値ｓ５を下回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｘ軸を中心としたｙｚ軸平面内で後方向に２７０度）を超えて傾いたことが検知される（ｔ１１）。このタイミングと同期して、Ｆ（ｙ）は０の値を出力する（ｔ１１）。
【０１１５】
スマートフォン１が回転を続けると、ｚはｔ１１を過ぎると段階的に減少する。ｚが閾値ｓ３ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｘ軸を中心としたｙｚ軸平面内で後方向に２７０度以上回転したことが検知される（ｔ１２）。ここで、Ｆ（ｙ）の値が０となっているために、Ｆ（ｚ）の判定処理を行う。このとき、Ｆ（ｚ）は方向判定値である前後判定値＋３を取得する。Ｆ（ｚ）は、ｔ７における前後判定値が−２であること、およびｔ１２における前後判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｚ）は前方向へのスピンジェスチャーを表す「ｃｂ」を判定する（ｔ１２）。このタイミングと同期して、ｔｒ（ｚ）は、０から＋１に信号を立ち上げる（ｔ１２）。
【０１１６】
ｔ１２において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１２）。本例では、ｔｇ（ｘ）の値が＋１（ｔ９）から＋１（ｔ１２）のままである一方で、ｔｇ（ｚ）の値は＋１（ｔ９）から０（ｔ１２）になる。判定Ｇは、ｔｇ（ｚ）に状態変化があったことに基づいて、Ｆ（ｚ）の出力値である「ｃｂ」を採用する。以上より、判定Ｇは「ｃｂ」を採用したことに基づいて、スマートフォン１のジェスチャーは後方向へのスピンジェスチャーであることを表す「ｃｂ」を判定する（ｔ１２）。
【０１１７】
スマートフォン１が右方向に回転され始めると、ｘは段階的に増加する。ｘが閾値ｓ１ｉｎを上回ると、スマートフォン１が所定の角度を超えて傾いたことが検知される（ｔ１３）。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋２を取得する。Ｆ（ｘ）は方向判定値である左右判定値＋２に基づいて判定処理を行い、Ｆ（ｘ）は右方向へのシェイクジェスチャーを表す「Ｒ」を判定する（ｔ１３）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ１３）、ｔｇ（ｘ）は＋１から０に信号を立ち下げる（ｔ１３）。
【０１１８】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に増加する。ｙが閾値ｓ５を上回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｚ軸を中心としたｘｙ軸平面内で右方向に９０度）を超えて傾いたことが検知される（ｔ１４）。このタイミングと同期して、Ｆ（ｙ）は＋１の値を出力する（ｔ１４）。
【０１１９】
スマートフォン１が回転を続けると、ｘはｔ１４を過ぎると段階的に減少する。ｘが閾値ｓ１ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｚ軸を中心としたｘｙ軸平面内で右方向に９０度を超えて回転し、１８０度の姿勢に近づいたことが検知される（ｔ１５）。ここで、スマートフォン１のスピンジェスチャーの検出では、Ｆ（ｙ）の値が＋１の間は、Ｆ（ｘ）の判定処理を行わない。同様に、Ｆ（ｙ）の値が＋１の間は、ジェスチャー判定Ｇの判定処理も行わない。ｔ１３での左右判定値に基づいてＦ（ｘ）による判定およびジェスチャー判定Ｇを行った場合、右方向へのシェイクジェスチャーが行われたことを表す「Ｒ」と判定されてしまうため、これを回避するためである。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ１５）。
【０１２０】
スマートフォン１が回転を続けると、ｘは段階的に減少する。ｘが閾値ｓ２ｉｎを下回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｚ軸を中心としたｘｙ軸平面内で右方向に１８０度を超えて回転し、２７０度の姿勢に近づいたことが検知される（ｔ１６）。ここで、ｔ１６におけるＦ（ｙ）の値は＋１なので、Ｆ（ｘ）の判定処理を行わない。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ１６）、ｔｇ（ｘ）は０から＋１に信号を立ち上げる（ｔ１６）。
【０１２１】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に減少する。ｙが閾値ｓ５を下回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｚ軸を中心としたｘｙ軸平面内で右方向に２７０度）を超えて傾いたことが検知される（ｔ１７）。このタイミングと同期して、Ｆ（ｙ）は０の値を出力する（ｔ１７）。
【０１２２】
スマートフォン１が回転を続けると、ｘはｔ１７を過ぎると段階的に増加する。ｘが閾値ｓ２ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｚ軸を中心としたｘｙ軸平面内で右方向に２７０度以上回転したことが検知される（ｔ１８）。ここで、Ｆ（ｙ）の値が０となっているために、Ｆ（ｘ）の判定処理を行う。このとき、Ｆ（ｘ）は方向判定値である左右判定値−３を取得する。Ｆ（ｘ）は、ｔ１３における左右判定値が＋２であること、およびｔ１８における左右判定値が−３であることに基づいて判定処理を行い、Ｆ（ｘ）は右方向へのスピンジェスチャーを表す「ｃｒ」を判定する（ｔ１８）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ１８）。
【０１２３】
ｔ１８において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ１８）。本例では、ｔｇ（ｘ）の値が０（ｔ１５）から＋１（ｔ１８）になる一方で、ｔｇ（ｚ）の値は０（ｔ１５）から０（ｔ１８）のままである。判定Ｇは、ｔｇ（ｘ）に状態変化があったことに基づいて、Ｆ（ｘ）の出力値である「ｃｒ」を採用する。以上より、判定Ｇは「ｃｒ」を採用したことに基づいて、スマートフォン１のジェスチャーは右方向へのスピンジェスチャーであることを表す「ｃｒ」を判定する（ｔ１８）。
【０１２４】
スマートフォン１が左方向に回転され始めると、ｘは段階的に減少する。ｘが閾値ｓ２ｉｎを下回ると、スマートフォン１が所定の角度を超えて傾いたことが検知される（ｔ１９）。このとき、Ｆ（ｘ）は方向判定値である左右判定値−２を取得する。Ｆ（ｘ）は方向判定値である左右判定値−２に基づいて判定処理を行い、Ｆ（ｘ）は左方向へのシェイクジェスチャーを表す「Ｌ」を判定する（ｔ１９）。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ１９）、ｔｇ（ｘ）は＋１から０に信号を立ち下げる（ｔ１９）。
【０１２５】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に増加する。ｙが閾値ｓ５を上回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｚ軸を中心としたｘｙ軸平面内で左方向に９０度）を超えて傾いたことが検知される（ｔ２０）。このタイミングと同期して、Ｆ（ｙ）は＋１の値を出力する（ｔ２０）。
【０１２６】
スマートフォン１が回転を続けると、ｘはｔ２０を過ぎると段階的に増加する。ｘが閾値ｓ２ｏｕｔを上回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｚ軸を中心としたｘｙ軸平面内で左方向に９０度を超えて回転し、１８０度の姿勢に近づいたことが検知される。ここで、スマートフォン１のスピンジェスチャーの検出では、Ｆ（ｙ）の値が＋１の間は、Ｆ（ｘ）の判定処理を行わない。同様に、Ｆ（ｙ）の値が＋１の間は、ジェスチャー判定Ｇの判定処理も行わない。ｔ１９での左右判定値に基づいてＦ（ｘ）による判定およびジェスチャー判定Ｇを行った場合、左方向へのシェイクジェスチャーが行われたことを表す「Ｌ」と判定されてしまうため、これを回避するためである。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ２１）。
【０１２７】
スマートフォン１が回転を続けると、ｘは段階的に増加する。ｘが閾値ｓ１ｉｎを上回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｚ軸を中心としたｘｙ軸平面内で左方向に１８０度を超えて回転し、２７０度の姿勢に近づいたことが検知される（ｔ２２）。ここで、ｔ２２におけるＦ（ｙ）の値は＋１なので、Ｆ（ｘ）の判定処理を行わない。このタイミングと同期して、ｔｒ（ｘ）は、＋１から０に信号を立ち下げ（ｔ２２）、ｔｇ（ｘ）は０から＋１に信号を立ち上げる（ｔ２２）。
【０１２８】
スマートフォン１がｙ軸に対して所定角度以上傾けられると、ｙは段階的に減少する。ｙが閾値ｓ５を下回ると、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｚ軸を中心としたｘｙ軸平面内で左方向に２７０度）を超えて傾いたことが検知される（ｔ２３）。このタイミングと同期して、Ｆ（ｙ）は０の値を出力する（ｔ２３）。
【０１２９】
スマートフォン１が回転を続けると、ｘはｔ２３を過ぎると段階的に減少する。ｘが閾値ｓ１ｏｕｔを下回ると、スマートフォン１が所定の角度を超えて傾いたこと、すなわち基本姿勢からｚ軸を中心としたｘｙ軸平面内で左方向に２７０度以上回転したことが検知される（ｔ２４）。ここで、Ｆ（ｙ）の値が０となっているために、Ｆ（ｘ）の判定処理を行う。このとき、Ｆ（ｘ）は方向判定値である左右判定値＋３を取得する。Ｆ（ｘ）は、ｔ１９における左右判定値が−２であること、およびｔ２４における左右判定値が＋３であることに基づいて判定処理を行い、Ｆ（ｘ）は左方向へのスピンジェスチャーを表す「ｃｌ」を判定する（ｔ２４）。このタイミングと同期して、ｔｒ（ｘ）は、０から＋１に信号を立ち上げる（ｔ２４）。
【０１３０】
ｔ２４において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ２４）。本例では、ｔｇ（ｘ）の値が０（ｔ２１）から＋１（ｔ２４）になる一方で、ｔｇ（ｚ）の値は０（ｔ２１）から０（ｔ２４）のままである。判定Ｇは、ｔｇ（ｘ）に状態変化があったことに基づいて、Ｆ（ｘ）の出力値である「ｃｌ」を採用する。以上より、判定Ｇは「ｃｌ」を採用したことに基づいて、スマートフォン１のジェスチャーは左方向へのスピンジェスチャーであることを表す「ｃｌ」を判定する（ｔ２４）。
【０１３１】
続いて、スマートフォン１のジェスチャー検出について、図１１を参照して説明する。尚、図１０と重複する部分については省略して説明する。
【０１３２】
判定Ｇは、Ｆ（ｘ）、Ｆ（ｚ）、Ｆ（ｙ）、ｔｒ（ｘ）、ｔｒ（ｚ）、ｔｇ（ｘ）およびｔｇ（ｚ）の出力を参照して、さらに右前方向へのスピンジェスチャーを判定することができる。すなわち、ｔ３０において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ３０）。本例では、ｔｇ（ｘ）の値が０（ｔ２７）から＋１（ｔ３０）になり、ｔｇ（ｚ）の値も＋１（ｔ２７）から０（ｔ３０）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、Ｆ（ｘ）およびＦ（ｚ）の出力値である「ｃｒ」および「ｃｆ」を採用する。以上より、判定Ｇは「ｃｒ」および「ｃｆを採用したことに基づいて、スマートフォン１のジェスチャーは右前方向へのスピンジェスチャーであることを表す「ｃｒｆ」を判定する（ｔ３０）。
【０１３３】
同様に、ｔ３６において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ３０）。本例では、ｔｇ（ｘ）の値が０（ｔ３３）から＋１（ｔ３６）になり、ｔｇ（ｚ）の値も＋１（ｔ３３）から０（ｔ３６）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、Ｆ（ｘ）およびＦ（ｚ）の出力値である「ｃｌ」および「ｃｂ」を採用する。以上より、判定Ｇは「ｃｌ」および「ｃｂ」を採用したことに基づいて、スマートフォン１のジェスチャーは左後方向へのスピンジェスチャーであることを表す「ｃｌｂ」を判定する（ｔ３３）。
【０１３４】
同様に、ｔ４２において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ４２）。本例では、ｔｇ（ｘ）の値が０（ｔ３９）から＋１（ｔ４２）になり、ｔｇ（ｚ）の値も＋１（ｔ３９）から０（ｔ４２）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、Ｆ（ｘ）およびＦ（ｚ）の出力値である「ｃｒ」および「ｃｂ」を採用する。以上より、判定Ｇは「ｃｒ」および「ｃｂ」を採用したことに基づいて、スマートフォン１のジェスチャーは右後方向へのスピンジェスチャーであることを表す「ｃｒｂ」を判定する（ｔ３０）。
【０１３５】
同様に、ｔ４８において、スマートフォン１のジェスチャーの切り替わりを判定するために、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化の有無を判定する（ｔ４８）。本例では、ｔｇ（ｘ）の値が０（ｔ４５）から＋１（ｔ４８）になり、ｔｇ（ｚ）の値も＋１（ｔ４５）から０（ｔ４８）になる。判定Ｇは、ｔｇ（ｘ）およびｔｇ（ｚ）に状態変化があったことに基づいて、Ｆ（ｘ）およびＦ（ｚ）の出力値である「ｃｌ」および「ｃｆ」を採用する。以上より、判定Ｇは「ｃｌ」および「ｃｆ」を採用したことに基づいて、スマートフォン１のジェスチャーは左前方向へのスピンジェスチャーであることを表す「ｃｌｆ」を判定する（ｔ４８）。
【０１３６】
以上説明した通り、プロセッサ１００、動き検出部１００、ジェスチャー処理プログラム１２２の動作により、スマートフォン１の所定方向へのシェイクジェスチャーのみならず、スピンジェスチャーについてもジェスチャー態様を判定することができる。
【０１３７】
図１２は、ジェスチャーと判定値の関係を示すテーブルである。図１２において、例えば、左右判定値として振り出し時に−２、振り戻し時に−３が取得された場合、図７、図８で説明した通り、Ｆ（ｘ）は「Ｌ」となる。このとき、判定Ｇは、ｔｇ（ｚ）の状態変化が発生していないことを条件に、ジェスチャー判定値として「Ｌ」を判定する。これにより、スマートフォン１の挙動は左方向へのシェイクジェスチャーであることを検出することができる。
【０１３８】
図１２において、例えば、左右判定値として振り出し時に＋２、振り戻し時に＋３が取得され、前後判定値として振り出し時に＋２、振り戻し時に＋３が取得された場合、図７、図８で説明した通り、Ｆ（ｘ）およびＦ（ｚ）はそれぞれ「Ｒ」「Ｆ」となる。このとき、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化が発生していることを条件に、ジェスチャー判定値として「Ｒ」と「Ｆ」の中間方向を示す「ｒｆ」を判定する。これにより、スマートフォン１の挙動は右前方向へのシェイクジェスチャーであることを検出することができる。
【０１３９】
図１２において、例えば、前後判定値として振り出し時に２、振り戻し時に−３が取得された場合、図１０で説明した通り、Ｆ（ｚ）は「ｃｆ」となる。このとき、判定Ｇはジェスチャー判定値として「ｃｆ」を判定する。これにより、スマートフォン１の挙動は前方向へのスピンジェスチャーであることを検出することができる。
【０１４０】
図１２において、例えば、左右判定値として振り出し時に−２、振り戻し時に＋３が取得され、前後判定値として振り出し時に＋２、振り戻し時に−３が取得された場合、図１０で説明した通り、Ｆ（ｘ）およびＦ（ｚ）はそれぞれ「ｃｌ」「ｃｆ」となる。このとき、判定Ｇはｔｇ（ｘ）およびｔｇ（ｚ）の状態変化が発生していることを条件に、ジェスチャー判定値として「ｃｌ」と「ｃｆ」の中間方向を示す「ｃｌｆ」を判定する。これにより、スマートフォン１の挙動は左前方向へのスピンジェスチャーであることを検出することができる。
【０１４１】
このように、左右判定値および前後判定値は、対応するジェスチャーそれぞれに一意な組み合わせが定められている。そのため、本発明における一実施形態においては、シェイクジェスチャーとスピンジェスチャーを組み合わせて、合計１６種類のジェスチャー検出を実現することもできる。
【０１４２】
次に、上記説明したジェスチャー検出の原理を応用した、入力処理について図１３を参照して説明する。
【０１４３】
図１３（１）は、ジェスチャー検出装置における、ＩＤ入力フォーム画面の表示例である。ＩＤ入力フォーム画面は、スマートフォン１のタッチスクリーンディスプレイ１３０上に表示され、ＩＤ入力フォーム１３０１、カーソル１３０２、認証ボタン１３０３、クリアボタン１３０４を含む。
【０１４４】
ＩＤ入力フォーム画面は、例えばスマートフォン１上で動作する認証アプリケーション１２３が、ユーザーに対して認証用ＩＤの入力を促す際に表示される。また、タッチスクリーンディスプレイ１３０上には、スマートフォン１のジェスチャー方向を誘導指示するナビゲーターが表示される。各ナビゲーターは、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉの８種類であり、それぞれスマートフォン１の周辺方向である、左、左後、後、右後、右、右前、前、左前の方向に対応する。
【０１４５】
ＩＤ入力フォーム１３０１にカーソル１３０２があるとき、ユーザーがスマートフォンを手に持ち、所定のジェスチャーをスマートフォン１に検出させる。そして、スマートフォン１がジェスチャー判定値を出力するタイミングで、スマートフォン１は与えられたジェスチャーに対応する情報をＩＤ入力フォーム１３０１に表示する。
【０１４６】
図１３（２）を例にとって説明すると、ユーザーがスマートフォン１を手に持ち「右前」「左」「後」「右」へのシェイクジェスチャーをスマートフォン１に連続して検出させる。そして、スマートフォン１がジェスチャー判定値を出力するタイミングで、スマートフォン１は各々のシェイクジェスチャーに対応した文字情報である「Ｆ」「Ａ」「Ｃ」「Ｅ」をＩＤ入力フォーム１３０１に表示させる。
【０１４７】
そして、文字情報「Ｆ」「Ａ」「Ｃ」「Ｅ」がＩＤ入力フォーム１３０１に表示されているときに、ユーザーが認証ボタン１３０３を押下すると、認証アプリケーション１２３が認証処理を実行する。具体的には、ＩＤ入力フォーム１３０１に表示された文字情報が、予め登録されたＩＤ情報と適合するかを判定し、ＩＤ情報と適合した場合は認証が認められたと判定し、適合しなかった場合は認証が認められなかったものと判定する。なお、本例では認証ボタン１３０３を押下することで認証判定を行う態様について説明したが、予め登録されたＩＤ情報に相当する文字情報がＩＤ入力フォーム１３０１に入力された段階で自動的に認証を行う態様であってもよい。
【０１４８】
ナビゲーターとしてタッチスクリーンディスプレイ１３０に表示するアルファベット順の文字情報の配列は一例であり、認証アプリケーション１２３の要請により任意の文字、記号等を対応付けることができる。また、後述の通りユーザー自身によってもナビゲーターに表示する文字情報を設定することができる。
【０１４９】
以上説明した通り、検出されたジェスチャーに基づいて入力情報を選択することにより、スマートフォン等のスマートデバイスを使用するユーザーに対して新たな操作性を提供することができる。
【０１５０】
次に、ジェスチャー検出装置としての、スマートフォン１の処理について、図１４から図２５のフローチャートを参照して説明する。
【０１５１】
図１４は、本発明の実施形態に係る、スマートフォン１のジェスチャー処理プログラム１２２の処理フローチャートである。
【０１５２】
図１４において、スマートフォン１のプログラムがスタートすると、Ｓ１の初期設定が行われる。
【０１５３】
Ｓ２において、動き検出部１１０の加速度センサー１１１等から変位情報等を取得する（Ｓ２）。
【０１５４】
Ｓ３において、Ｓ２で取得した変位情報等に基づいて、スマートフォン１のスタート位置設定（キャリブレーション）を行う。スタート位置設定（キャリブレーション）（Ｓ３）については、図１５において後述する。
【０１５５】
Ｓ４において、不感帯設定を行う。不感帯設定（Ｓ４）については、図１６において詳述する。
【０１５６】
Ｓ５において、ジェスチャー判定Ｇの処理を行うジェスチャー判定Ｇスレッドを起動する。
【０１５７】
Ｓ６において、再び動き検出部１１０の加速度センサー１１１等から変位情報等を取得する。
【０１５８】
Ｓ７において、Ｓ６で取得した加速度センサー１１１等からの変位情報等を、傾き角度へ変換する演算を行う。あるいはまた、加速度センサー１１１等から出力される変位情報をそのまま用いる場合は、Ｓ７の処理をスキップしてもよい。
【０１５９】
Ｓ８において、Ｓ７で演算した傾き角度に基づいて、傾き・回転判定を行う。
【０１６０】
Ｓ９において、ジェスチャー判定Ｇスレッドを終了する。本実施形態では、ジェスチャー判定値はジェスチャー判定Ｇスレッド実行中に出力され、図１１に示されるＲ、Ｌ、Ｆ、Ｂ、ｒｆ、ｆｂ、ｃｒ、ｃｆ、ｃｒｂ等の形式で出力される。
【０１６１】
図１５は、図１４の全体フローチャートにおけるスタート位置設定（Ｓ３）のサブルーチンを表すフローチャートである。Ｓ３−１において、スマートフォンの傾き角度（左右方向）をアプリケーション開始時の左右の傾き角度に設定する。同様に、Ｓ３−２において、スマートフォンの傾き角度（前後方向）をアプリケーション開始時の前後の傾き角度に設定する。以上の処理により、スタート位置設定（キャリブレーション）が実行される。
【０１６２】
図１６は、図１４の全体フローチャートにおける不感帯設定（Ｓ４）のサブルーチンを表すフローチャートである。ここで、不感帯とはスマートフォン１の加速度センサー１１１等が左右方向または前後方向双方への変位情報の出力を行わない帯域をいう。例えば、図４において、スマートフォン１が破線部に位置した時を「基準角度：−３０度」とすると、スマートフォン１を左方向に振り出したときに−３５度（３０＋５）を超えたら左判定値−２を出力する。同様に、スマートフォン１を右方向に振り戻したときに−２５度（３０−５）以内になったら右判定値−３を出力する。上記の通り、振り出し時および振り戻し時での角度の差異を設けることにより、チャタリング等のノイズ除去を行うことができる。
【０１６３】
Ｓ４−１において、ｚ軸を中心としたｘｙ平面内でのスマートフォン１の基準角度および基準角度を中心とした不感帯を設定する。基準角度および不感帯は、例えば「基準角度：−３０度、不感帯：−２５度（振り戻し）〜−３５度（振り出し）」「基準角度：＋３０度、不感帯：＋２５度（振り戻し）〜＋３５度（振り出し）」と設定される。そして、Ｓ４−２において、不感帯の上限角度および下限角度に対応する座標値を演算し、閾値ｓ１ｉｎ、ｓ１ｏｕｔ、ｓ２ｉｎ、ｓ２ｏｕｔとして設定する。この場合、ｓ１ｉｎは「＋３５度」、ｓ１ｏｕｔは「＋２５度」、ｓ２ｉｎは「−３５度」、ｓ２ｏｕｔは「−２５度」がそれぞれ対応する。
【０１６４】
Ｓ４−３において、ｘ軸を中心としたｙｚ平面内でのスマートフォン１の基準角度および基準角度を中心とした不感帯を設定する。基準角度および不感帯は、例えば「基準角度：−３０度、不感帯：−２５度（振り戻し）〜−３５度（振り出し）」「基準角度：＋３０度、不感帯：＋２５度（振り戻し）〜＋３５度（振り出し）」と設定されるそして、Ｓ４−４において、不感帯の上限角度および下限角度に対応する座標値を演算し、閾値ｓ３ｉｎ、ｓ３ｏｕｔ、ｓ４ｉｎ、ｓ４ｏｕｔとして設定する。この場合、ｓ３ｉｎは「＋３５度」、ｓ３ｏｕｔは「＋２５度」、ｓ４ｉｎは「−３５度」、ｓ４ｏｕｔは「−２５度」がそれぞれ対応する。
【０１６５】
図１７は、図１４の全体フローチャートにおける変位情報から傾き角度への変換（Ｓ７）のサブルーチンを表すフローチャートである。Ｓ７−１において、加速度センサー１１１から出力される、ｘ軸およびｙ軸の変位情報からスマートフォンの傾き角度（左右方向）を演算する。同様に、Ｓ７−２において、動き検出部１１０の加速度センサー１１１から出力される、ｙ軸およびｚ軸の変位情報からスマートフォンの傾き角度（前後方向）を演算する。以上の処理により、スマートフォンの左右方向および前後方向の傾き角度が演算される。
【０１６６】
図１８は、図１４の全体フローチャートにおける傾き・回転判定（Ｓ８）のサブルーチンを表すフローチャートである。Ｓ８−１において、各信号情報および判定値情報をスマートフォン１のデータ記憶部１２４の対応箇所に退避する処理を行う。具体的には、ｔｒ（ｘ）をｔｒ（ｘ）’に、ｔｒ（ｚ）をｔｒ（ｚ）’に、ｔｇ（ｘ）をｔｇ（ｘ）’に、ｔｇ（ｚ）をｔｇ（ｚ）’に、左右判定値を左右判定値’に、前後判定値を前後判定値’に退避する処理を行う。
【０１６７】
Ｓ８−２において、Ｓ４で設定した不感帯かを判定する。ここでは、スマートフォン１の左右への振り出しおよび振り戻しが不感帯として設定された傾き角度となるかが判定される。Ｓ８−２で肯定判定された場合（Ｓ８−２：Ｙｅｓ）、左右判定処理（Ｓ３００）に移行する。不感帯内と判定されなかった場合（Ｓ８−２：Ｎｏ）、左右方向のスマートフォンの傾き角度の増減を判定する（Ｓ８−３）。スマートフォンの傾き角度が減少している場合（Ｓ８−３：減少）、スマートフォンの傾き角度（例えば、左方向への振り出し）が検出され、Ｓ１００に移行する。左判定（Ｓ１００）は、スマートフォンが左側に所定の角度以上傾けられたジェスチャーを検出した場合に、左右判定値を出力する処理である。一方、スマートフォンの傾き角度が増加している場合（Ｓ８−３：増加）、スマートフォンの傾き角度（例えば、右方向への振り出し）が検出され、Ｓ２００に移行する。右判定（Ｓ２００）は、スマートフォンが右側に所定の角度以上傾けられたジェスチャーを検出した場合に、左右判定値を出力する処理である。次に、Ｓ３００において左右判定が行われる。左右判定（Ｓ３００）は、図１１に示されるスマートフォンの左右判定値に基づいて、ｘ軸方向のジェスチャーを判定する処理である。
【０１６８】
Ｓ８−４において、Ｓ４で設定した不感帯かを判定する。ここでは、スマートフォン１の前後への振り出しおよび振り戻しが不感帯として設定された傾き角度となるかが判定される。Ｓ８−４で肯定判定された場合（Ｓ８−４：Ｙｅｓ）、前後判定処理（Ｓ６００）に移行する。不感帯内と判定されなかった場合（Ｓ８−４：Ｎｏ）、前後方向のスマートフォンの傾き角度の増減を判定する（Ｓ８−５）。スマートフォンの傾き角度が増加している場合（Ｓ８−５：増加）、スマートフォンの傾き角度（例えば、前方向への振り出し）が検出され、Ｓ４００に移行する。前判定（Ｓ４００）は、スマートフォンが前側に所定の角度以上傾けられたジェスチャーを検出した場合に、前後判定値を出力する処理である。一方、スマートフォンの傾き角度が減少している場合（Ｓ８−５：減少）、スマートフォンの傾き角度（例えば、後方向への振り出し）が検出され、Ｓ５００に移行する。後判定（Ｓ５００）は、スマートフォンが後側に所定の角度以上傾けられたジェスチャーを検出した場合に、前後判定値を出力する処理である。次に、Ｓ６００において前後判定が行われる。前後判定（Ｓ６００）は、図１１に示されるスマートフォンの前後判定値に基づいて、ｚ軸方向のジェスチャーを判定する処理である。
【０１６９】
図１９は、図１８の傾き・回転フローチャートにおける左判定（Ｓ１００）のサブルーチンを表すフローチャートである。Ｓ１０１において、ｔｒ（ｘ）が＋１であるかを判定する。ｔｒ（ｘ）が＋１である場合（Ｓ１０１：Ｙｅｓ）、ｘ軸上の座標情報であるｘが、閾値ｓ２ｉｎを下回るかを判定する（Ｓ１０２）。すなわち、Ｓ１０２において、スマートフォン１がｚ軸を中心としてｘｙ平面内の左方向に所定角度振り出されたかを判定する。ｘが閾値ｓ２ｉｎを下回ると判定された場合（Ｓ１０２：Ｙｅｓ）、ｔｒ（ｘ）の値に「０」、左右判定値に「−２」を設定する処理を行い、さらにｔｇ（ｘ）の値（０または１）を切り替える処理を行う（Ｓ１０３）。
【０１７０】
一方、ｔｒ（ｘ）が＋１でない場合（Ｓ１０１：Ｎｏ）、ｘ軸上の座標情報であるｘが、閾値ｓ１ｏｕｔを下回るかを判定する（Ｓ１０５）。すなわち、Ｓ１０５において、スマートフォン１がｚ軸を中心としてｘｙ平面内の左方向に所定角度振り戻されたかを判定する。ｘが閾値ｓ１ｏｕｔを下回ると判定された場合（Ｓ１０５：Ｙｅｓ）、Ｓ１０６に移行する。Ｓ１０６において、Ｆ（ｙ）が＋１であるかを判定する。すなわち、Ｓ１０６において、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｚ軸を中心としたｘｙ軸平面内で右方向に９０度）を超えて傾いているかが判定される。Ｆ（ｙ）が＋１でなかった場合（Ｓ１０６：Ｎｏ）、ｔｒ（ｘ）の値に「＋１」、左右判定値に「＋３」を設定する処理を行う（Ｓ１０７）。
【０１７１】
一方、ｘが閾値ｓ２ｉｎを上回ると判定された場合（Ｓ１０２：Ｎｏ）、ｘが閾値ｓ１ｏｕｔを上回ると判定された場合（Ｓ１０５：Ｎｏ）、Ｆ（ｙ）が＋１であった場合（Ｓ１０６：Ｙｅｓ）は、Ｓ１０４に移行する。Ｓ１０４において、ｔｒ（ｘ）の値を切り替えせず、左右判定値も設定しない。Ｓ１０３、Ｓ１０４またはＳ１０７の処理を終えると、左判定（Ｓ１００）を終了する。
【０１７２】
図２０は、図１８の傾き・回転フローチャートにおける右判定（Ｓ２００）のサブルーチンを表すフローチャートである。Ｓ２０１において、ｔｒ（ｘ）が＋１であるかを判定する。ｔｒ（ｘ）が＋１である場合（Ｓ２０１：Ｙｅｓ）、ｘ軸上の座標情報であるｘが、閾値ｓ１ｉｎを上回るかを判定する（Ｓ２０２）。すなわち、Ｓ２０２において、スマートフォン１がｚ軸を中心としてｘｙ平面内の右方向に所定角度振り出されたかを判定する。ｘが閾値ｓ１ｉｎを上回ると判定された場合（Ｓ２０２：Ｙｅｓ）、ｔｒ（ｘ）の値に「０」、左右判定値に「＋２」を設定する処理を行い、さらにｔｇ（ｘ）の値（０または１）を切り替える処理を行う（Ｓ２０３）。
【０１７３】
一方、ｔｒ（ｘ）が＋１でない場合（Ｓ２０１：Ｎｏ）、ｘ軸上の座標情報であるｘが、閾値ｓ２ｏｕｔを上回るかを判定する（Ｓ２０５）。すなわち、Ｓ２０５において、スマートフォン１がｚ軸を中心としてｘｙ平面内の右方向に所定角度振り戻されたかを判定する。ｘが閾値ｓ２ｏｕｔを上回ると判定された場合（Ｓ２０５：Ｙｅｓ）、Ｓ２０６に移行する。Ｓ２０６において、Ｆ（ｙ）が＋１であるかを判定する。すなわち、Ｓ２０６において、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｚ軸を中心としたｘｙ軸平面内で左方向に９０度）を超えて傾いているかが判定される。Ｆ（ｙ）が＋１でなかった場合（Ｓ２０６：Ｎｏ）、ｔｒ（ｘ）の値に「＋１」、左右判定値に「−３」を設定する処理を行う（Ｓ２０７）。
【０１７４】
一方、ｘが閾値ｓ１ｉｎを下回ると判定された場合（Ｓ２０２：Ｎｏ）、ｘが閾値ｓ２ｏｕｔを下回ると判定された場合（Ｓ２０５：Ｎｏ）、Ｆ（ｙ）が＋１であった場合（Ｓ２０６：Ｙｅｓ）は、Ｓ２０４に移行する。Ｓ２０４において、ｔｒ（ｘ）の値を切り替えせず、左右判定値も設定しない。Ｓ２０３、Ｓ２０４またはＳ２０７の処理を終えると、右判定（Ｓ２００）を終了する。
【０１７５】
図２１は、図１８の傾き・回転フローチャートにおける左右判定（Ｓ３００）のサブルーチンを表すフローチャートである。Ｓ３０１において、ｔｒ（ｘ）が＋１であるかを判定する。ｔｒ（ｘ）が＋１であると判定された場合（Ｓ３０１：Ｙｅｓ）、左右判定値’および左右判定値を特定する（Ｓ３０２、Ｓ３０４、Ｓ３０６、Ｓ３０８）。Ｓ３０２において、左右判定値’が「−２」および左右判定値が「−３」の場合、Ｆ（ｘ）の出力は「Ｌ」となる（Ｓ３０３）。Ｓ３０４において、左右判定値’が「＋２」および左右判定値が「＋３」の場合、Ｆ（ｘ）の出力は「Ｒ」となる（Ｓ３０５）。Ｓ３０６において、左右判定値’が「−２」および左右判定値が「＋３」の場合、Ｆ（ｘ）の出力は「ｃｌ」となる（Ｓ３０７）。Ｓ３０８において、左右判定値’が「＋２」および左右判定値が「−３」の場合、Ｆ（ｘ）の出力は「ｃｒ」となる（Ｓ３０９）。
【０１７６】
一方、Ｓ３０１において、ｔｒ（ｘ）が＋１でないと判定された場合（Ｓ３０１：Ｎｏ）、Ｓ３１０に移行する。Ｓ３１０において、ｔｒ（ｘ）が０であるかを判定する。ｔｒ（ｘ）が０であると判定された場合（Ｓ３１０：Ｙｅｓ）、左右判定値を特定する（Ｓ３１１、Ｓ３１３）。Ｓ３１１において、左右判定値が「−２」の場合、Ｆ（ｘ）の出力は「Ｌ」となる（Ｓ３１２）。Ｓ３１３において、左右判定値が「＋２」の場合、Ｆ（ｘ）の出力は「Ｒ」となる（Ｓ３１４）。一方、Ｓ３１０において、ｔｒ（ｘ）が０でないと判定された場合（Ｓ３１０：Ｎｏ）、Ｆ（ｘ）処理（Ｓ３０３、Ｓ３０５、Ｓ３０７、Ｓ３０９、Ｓ３１２、Ｓ３１４）終了後と同様に、左右判定（Ｓ３００）を終了する。
【０１７７】
図２２は、図１８の傾き・回転フローチャートにおける前判定（Ｓ４００）のサブルーチンを表すフローチャートである。Ｓ４０１において、ｔｒ（ｚ）が＋１であるかを判定する。ｔｒ（ｚ）が＋１である場合（Ｓ４０１：Ｙｅｓ）、ｚ軸上の座標情報であるｚが、閾値ｓ３ｉｎを上回るかを判定する（Ｓ４０２）。すなわち、Ｓ４０２において、スマートフォン１がｘ軸を中心としてｙｚ平面内の前方向に所定角度振り出されたかを判定する。ｚが閾値ｓ３ｉｎを上回ると判定された場合（Ｓ４０２：Ｙｅｓ）、ｔｒ（ｚ）の値に「０」、前後判定値に「＋２」を設定する処理を行い、さらにｔｇ（ｚ）の値（０または１）を切り替える処理を行う（Ｓ４０３）。
【０１７８】
一方、ｔｒ（ｚ）が＋１でない場合（Ｓ４０１：Ｎｏ）、ｚ軸上の座標情報であるｚが、閾値ｓ４ｏｕｔを上回るかを判定する（Ｓ４０５）。すなわち、Ｓ４０５において、スマートフォン１がｘ軸を中心としてｙｚ平面内の前方向に所定角度振り戻されたかを判定する。ｚが閾値ｓ４ｏｕｔを上回ると判定された場合（Ｓ４０５：Ｙｅｓ）、Ｓ４０６に移行する。Ｓ４０６において、Ｆ（ｙ）が＋１であるかを判定する。すなわち、Ｓ４０６において、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｘ軸を中心としたｙｚ軸平面内で後方向に９０度）を超えて傾いているかが判定される。Ｆ（ｙ）が＋１でなかった場合（Ｓ４０６：Ｎｏ）、ｔｒ（ｚ）の値に「＋１」、前後判定値に「−３」を設定する処理を行う（Ｓ４０７）。
【０１７９】
一方、ｚが閾値ｓ３ｉｎを下回ると判定された場合（Ｓ４０２：Ｎｏ）、ｚが閾値ｓ４ｏｕｔを下回ると判定された場合（Ｓ４０５：Ｎｏ）、Ｆ（ｙ）が＋１であった場合（Ｓ４０６：Ｙｅｓ）は、Ｓ４０４に移行する。Ｓ４０４において、ｔｒ（ｚ）の値を切り替えせず、前後判定値も設定しない。Ｓ４０３、Ｓ４０４またはＳ４０７の処理を終えると、前判定（Ｓ４００）を終了する。
【０１８０】
図２３は、図１８の傾き・回転フローチャートにおける後判定（Ｓ５００）のサブルーチンを表すフローチャートである。Ｓ５０１において、ｔｒ（ｚ）が＋１であるかを判定する。ｔｒ（ｚ）が＋１である場合（Ｓ５０１：Ｙｅｓ）、ｚ軸上の座標情報であるｚが、閾値ｓ４ｉｎを下回るかを判定する（Ｓ５０２）。すなわち、Ｓ５０２において、スマートフォン１がｘ軸を中心としてｙｚ平面内の後方向に所定角度振り出されたかを判定する。ｚが閾値ｓ４ｉｎを下回ると判定された場合（Ｓ５０２：Ｙｅｓ）、ｔｒ（ｚ）の値に「０」、前後判定値に「−２」を設定する処理を行い、さらにｔｇ（ｚ）の値（０または１）を切り替える処理を行う（Ｓ５０３）。
【０１８１】
一方、ｔｒ（ｚ）が＋１でない場合（Ｓ５０１：Ｎｏ）、ｚ軸上の座標情報であるｚが、閾値ｓ３ｏｕｔを下回るかを判定する（Ｓ５０５）。すなわち、Ｓ５０５において、スマートフォン１がｘ軸を中心としてｙｚ平面内の後方向に所定角度振り戻されたかを判定する。ｚが閾値ｓ３ｏｕｔを下回ると判定された場合（Ｓ５０５：Ｙｅｓ）、Ｓ５０６に移行する。Ｓ５０６において、Ｆ（ｙ）が＋１であるかを判定する。すなわち、Ｓ５０６において、スマートフォン１がｙ軸に対して所定の角度（例えば、基本姿勢からｘ軸を中心としたｙｚ軸平面内で前方向に９０度）を超えて傾いているかが判定される。Ｆ（ｙ）が＋１でなかった場合（Ｓ５０６：Ｎｏ）、ｔｒ（ｚ）の値に「＋１」、前後判定値に「＋３」を設定する処理を行う（Ｓ５０７）。
【０１８２】
一方、ｚが閾値ｓ４ｉｎを上回ると判定された場合（Ｓ５０２：Ｎｏ）、ｚが閾値ｓ３ｏｕｔを上回ると判定された場合（Ｓ５０５：Ｎｏ）、Ｆ（ｙ）が＋１であった場合（Ｓ５０６：Ｙｅｓ）は、Ｓ５０４に移行する。Ｓ５０４において、ｔｒ（ｚ）の値を切り替えせず、前後判定値も設定しない。Ｓ５０３、Ｓ５０４またはＳ５０７の処理を終えると、後判定（Ｓ５００）を終了する。
【０１８３】
図２４は、図１８の傾き・回転フローチャートにおける前後判定（Ｓ６００）のサブルーチンを表すフローチャートである。Ｓ６０１において、ｔｒ（ｚ）が＋１であるかを判定する。ｔｒ（ｚ）が＋１であると判定された場合（Ｓ６０１：Ｙｅｓ）、前後判定値’および前後判定値を特定する（Ｓ６０２、Ｓ６０４、Ｓ６０６、Ｓ６０８）。Ｓ６０２において、前後判定値’が「−２」および前後判定値が「−３」の場合、Ｆ（ｚ）の出力は「Ｂ」となる（Ｓ６０３）。Ｓ６０４において、前後判定値’が「＋２」および前後判定値が「＋３」の場合、Ｆ（ｚ）の出力は「Ｆ」となる（Ｓ６０５）。Ｓ６０６において、前後判定値’が「−２」および前後判定値が「＋３」の場合、Ｆ（ｚ）の出力は「ｃｂ」となる（Ｓ６０７）。Ｓ６０８において、前後判定値’が「＋２」および前後判定値が「−３」の場合、Ｆ（ｚ）の出力は「ｃｆ」となる（Ｓ６０９）。
【０１８４】
一方、Ｓ６０１において、ｔｒ（ｚ）が＋１でないと判定された場合（Ｓ６０１：Ｎｏ）、Ｓ６１０に移行する。Ｓ６１０において、ｔｒ（ｚ）が０であるかを判定する。ｔｒ（ｚ）が０であると判定された場合（Ｓ６１０：Ｙｅｓ）、前後判定値を特定する（Ｓ６１１、Ｓ６１３）。Ｓ６１１において、前後判定値が「−２」の場合、Ｆ（ｚ）の出力は「Ｂ」となる（Ｓ６１２）。Ｓ６１３において、前後判定値が「＋２」の場合、Ｆ（ｚ）の出力は「Ｆ」となる（Ｓ６１４）。一方、Ｓ６１０において、ｔｒ（ｚ）が０でないと判定された場合（Ｓ６１０：Ｎｏ）、Ｆ（ｚ）処理（Ｓ６０３、Ｓ６０５、Ｓ６０７、Ｓ６０９、Ｓ６１２、Ｓ６１４）終了後と同様に、前後判定（Ｓ６００）を終了する。
【０１８５】
図２５は、図１４の全体フローチャートにおけるジェスチャー判定Ｇスレッドの処理を表すフローチャートである。Ｓ５−１において、ｔｒ（ｘ）が＋１であり、かつｔｒ（ｘ）’とｔｒ（ｘ）が同じではない、すなわちｔｒ（ｘ）に変化があったかを判定する。ｔｒ（ｘ）が＋１であり、かつｔｒ（ｘ）に変化があったと判定された場合（Ｓ５−１：Ｙｅｓ）、Ｓ５−３に移行する。一方、Ｓ５−１において否定された場合（Ｓ５−１：Ｎｏ）、ｔｒ（ｚ）が＋１であり、かつｔｒ（ｚ）’とｔｒ（ｚ）が同じではない、すなわちｔｒ（ｚ）に変化があったかを判定する（Ｓ５−２）。ｔｒ（ｚ）が＋１であり、かつｔｒ（ｚ）に変化があったと判定された場合（Ｓ５−２：Ｙｅｓ）、Ｓ５−３に移行する。一方、Ｓ５−２において否定された場合（Ｓ５−２：Ｎｏ）、再度Ｓ５−１の処理に戻る。
【０１８６】
次に、Ｓ５−３において、ｔｇ（ｘ）’とｔｇ（ｘ）が同じか、すなわちｔｇ（ｘ）に変化があったかを判定する。ｔｇ（ｘ）’とｔｇ（ｘ）が異なると判定された場合（Ｓ５−３：Ｙｅｓ）、ｔｇ（ｚ）’とｔｇ（ｚ）に変化があったかをさらに判定する（Ｓ５−４）。ｔｇ（ｚ）’とｔｇ（ｚ）が異なると判定された場合（Ｓ５−４：Ｙｅｓ）、Ｆ（ｘ）およびＦ（ｚ）の出力を採用しｒｆ、ｒｂ、ｌｆ、ｌｂ、ｃｒｆ、ｃｒｂ、ｃｌｆ、ｃｌｂのいずれかを出力する（Ｓ５−５）。一方、Ｓ５−４において、ｔｇ（ｚ）’とｔｇ（ｚ）が同じと判定された場合（Ｓ５−４：Ｎｏ）、Ｆ（ｘ）の出力を採用しＬ、Ｒ、ｃｌ、ｃｒのいずれかを出力する（Ｓ５−６）。
【０１８７】
また、Ｓ５−３において、ｔｇ（ｘ）’とｔｇ（ｘ）が同じと判定された場合（Ｓ５−３：Ｎｏ）、ｔｇ（ｚ）’とｔｇ（ｚ）に変化があったかをさらに判定する（Ｓ５−７）。ｔｇ（ｚ）’とｔｇ（ｚ）が異なると判定された場合（Ｓ５−７：Ｙｅｓ）、Ｆ（ｚ）の出力を採用しＦ、Ｂ、ｃｆ、ｃｂのいずれかを出力する（Ｓ５−８）。一方、Ｓ５−７において否定された場合（Ｓ５−７：Ｎｏ）、再度Ｓ５−１の処理に戻る。以上の通り、ジェスチャー判定スレッドＧにおいては、ジェスチャー判定値を出力する処理を実行する。スマートフォン１が「右方向へのシェイクジェスチャー」等のジェスチャーの態様を検出する際には、例えば図１１に示されるテーブルとの照合処理を行ってジェスチャー態様を検出する。すなわち、ジェスチャー判定値として「Ｒ」が出力された場合、図１１に示されるテーブルを参照することにより、ジェスチャー態様である「右方向のシェイクジェスチャー」であることを検出することができる。Ｓ５−５、Ｓ５−６、Ｓ５−８においてジェスチャー判定値の出力が行われると、ジェスチャー判定Ｇスレッドを終了する。
【０１８８】
以上説明した通り、本実施形態におけるスマートフォンは、ユーザーによる空間中のジェスチャーを検出し、検出された空間中のジェスチャーに基づいて入力処理等を実行することができる。
【０１８９】
＜第２実施形態＞
第２実施形態では、ジェスチャー判定値をデータ記憶部１２４に記憶し、記憶されたジェスチャー判定値を時系列の組み合わせとして認識することを特徴とするジェスチャー検出装置について説明する。本実施形態におけるジェスチャー検出装置の応用例として、認証処理を例に説明する。
【０１９０】
図２６は、本発明の第２実施形態におけるスマートフォン１のジェスチャー処理プログラム１２２および認証アプリケーション１２３の処理フローチャートである。以下、図２６を参照して説明するが、図１４と重複する部分は省略して説明を行い、参照先の各サブルーチンでは第１の実施形態と同様の処理を実行するものとする。
【０１９１】
ＳＡ５において、ジェスチャー判定Ｇスレッドを起動した後に、加速度センサー等から変位情報等を取得し（ＳＡ６）、変位情報から傾き角度への変換処理を実行する（ＳＡ７）。そして、傾き・回転判定（ＳＡ８）処理を終了すると、スマートフォン１のプロセッサ１００は、ジェスチャー判定Ｇスレッドからの出力をデータ記憶部１２４に記憶する（ＳＡ９）。
【０１９２】
ＳＡ１０において、認証処理を実行するかの判定処理を行う（ＳＡ１０）。認証処理を実行するか否かの判定処理は、後述の図２７における認証ボタン２７０１を押下するか、またはジェスチャー判定値が所定の数に達した場合に自動的に実行するようにしてもよい。
【０１９３】
ＳＡ１０において認証処理を実行すると判定された場合（ＳＡ１０：Ｙｅｓ）、スマートフォン１のプロセッサはジェスチャー判定Ｇスレッドを終了し（ＳＡ１１）、認証処理を実行する（ＳＡ１２）。一方、ＳＡ１０において認証処理を実行しないと判定された場合（ＳＡ１０：Ｎｏ）、再びＳＡ６の処理の実行に戻る。
【０１９４】
ＳＡ１３において、認証処理が成功すると（ＳＡ１３：Ｙｅｓ）、本実施形態における認証アプリケーションを終了する。一方、ＳＡ１３において、認証処理が不成功だった場合（ＳＡ１３：Ｎｏ）、再びＳＡ２の処理の実行に戻る。
【０１９５】
第２実施形態におけるジェスチャー処理プログラム１２２の処理では、ジェスチャー判定値をデータ記憶部１２４に記憶し、記憶されたジェスチャー判定値を時系列の組み合わせとして認識する。そのため、ジェスチャー判定値を時系列に記憶し、これら記憶された出力の値の組み合わせを認証処理に用いることができる。
【０１９６】
図２７は、本発明の第２実施形態における認証処理の画面遷移例を示す図である。認証処理を実行する、ジェスチャー処理プログラム１２２および認証アプリケーション１２３が開始されると、認証ボタン２７０１、再入力ボタン２７０２がタッチスクリーンディスプレイ１３０の略中央に表示される。同時に、スマートフォン１のシェイクジェスチャー方向（左、左後、後、右後、右、右前、前、左前）の８方向にそれぞれ対応する、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈがナビゲーターとして表示される。この表示により、ユーザーはいずれの方向へのシェイクジェスチャーによっていずれの値が出力されるかを認識することができる。
【０１９７】
図２７（１）の認証処理画面が表示されているときに、ユーザーがスマートフォン１を手に持ち、所定の方向への連続したジェスチャーをスマートフォン１に検出させると、スマートフォン１のプロセッサ１００は、ジェスチャー判定値をデータ記憶部１２４に記憶させる処理を実行する。
【０１９８】
例えば、ユーザーがスマートフォン１を手に持ち、「左」「左後」「後」「左」「後」「左」「後」方向への連続したシェイクジェスチャーをスマートフォン１に検出させると、ジェスチャー判定値「Ｌ」「ｌｂ」「Ｂ」「Ｌ」「Ｂ」「Ｌ」「Ｂ」をデータ記憶部１２４に記憶させる処理を実行する。
【０１９９】
図２７（２）は認証結果画面表示例を示す図である。上述のジェスチャー判定値の結果、データ記憶部１２４に記憶された出力の値が、予め登録されているユーザーのＩＤ情報と一致している場合は、例えば「認証成功」等の画面を表示する。一方、上述のジェスチャー判定Ｇの出力の結果、データ記憶部１２４に記憶されたジェスチャー判定値が、予め登録されているユーザーのＩＤ情報と一致していない場合は、例えば「認証不成功」等の画面を表示する。
【０２００】
以上説明した通り、本実施形態におけるスマートフォンは、ユーザーによる空間中のジェスチャーを検出し、検出された空間中のジェスチャーに基づいて判定される値をデータ記憶部１２４に記憶する。そして、記憶されたジェスチャー判定値を時系列の組み合わせとして認識することができるため、ジェスチャーによる認証処理等を実行することができる。
【０２０１】
＜第３実施形態＞
第３実施形態は、第１実施形態および第２実施形態の変形例であり、ユーザーがスマートフォン１にジェスチャーを検出させるタイミングで音階情報や画像情報を付与して、入力処理を支援する機能を有するジェスチャー検出装置について以下説明する。
【０２０２】
図２８は、本発明の実施形態における、出力設定の画面表示例を示したものである。出力設定２８００は、タッチスクリーンディスプレイ１３０上に表示される。出力設定２８００は、ジェスチャー、ジェスチャー判定値、音出力および画像出力の各々の項目をテーブル形式で表示する。ジェスチャーには「右方向へのシェイクジェスチャー」「左方向へのシェイクジェスチャー」「前方向へのシェイクジェスチャー」「後方向へのシェイクジェスチャー」等のジェスチャーの態様が表示される。ジェスチャー判定値には「Ｒ」、「Ｌ」、「Ｆ」、「Ｂ」等の、ジェスチャー態様に対応するジェスチャー判定値がそれぞれ表示される。
【０２０３】
音出力が表示される近傍部には、チェックボックス２８０１が表示される。ユーザーは、チェックボックス２８０１を選択することで、スマートフォン１がジェスチャー判定値を出力するタイミングにおいて、音による出力を行う音出力を選択することができる。
【０２０４】
音出力が表示される列には、ジェスチャー判定値の各々に対応する箇所にドロップダウンボックス２８０２が表示される。例えば、ユーザーは、ドロップダウンボックス２８０２に表示される音出力のいずれかを選択することにより、ジェスチャー判定値に所定の音出力を関連付ける設定を行うことができる。図２８では、ジェスチャー判定値「Ｒ」に、音出力「ド」を関連付ける設定が例示される。本実施形態において、ドロップダウンボックス２８０２はジェスチャー判定値の各々に対応して配置される。
【０２０５】
画像出力が表示される近傍部には、チェックボックス２８０３が表示される。ユーザーは、チェックボックス２８０３を選択することで、スマートフォン１がジェスチャー判定値を出力するタイミングにおいて、画像による出力を行う画像出力を選択することができる。
【０２０６】
画像出力が表示される列には、ジェスチャー判定値の各々に対応する箇所にドロップダウンボックス２８０４が表示される。例えば、ユーザーは、ドロップダウンボックス２８０４に表示される画像出力のいずれかを選択することにより、ジェスチャー判定値に所定の画像出力を関連付ける設定を行うことができる。図２８では、ジェスチャー判定値「Ｒ」に、画像出力「Ａ」を関連付ける設定が例示される。本実施形態において、ドロップダウンボックス２８０４はジェスチャー判定値の各々に対応して配置される。
【０２０７】
図２９は、ジェスチャー判定値と出力との対応テーブル２９００を示したものである。図１１と同様に、本実施形態におけるジェスチャー態様である「右方向へのシェイクジェスチャー」「左方向へのシェイクジェスチャー」「前方向へのシェイクジェスチャー」「後方向へのシェイクジェスチャー」「右前方向へのシェイクジェスチャー」「右後方向へのシェイクジェスチャー」「左前方向へのシェイクジェスチャー」「左後方向へのシェイクジェスチャー」「右スピンジェスチャー」「左スピンジェスチャー」「前スピンジェスチャー」「後スピンジェスチャー」「右前スピンジェスチャー」「左前スピンジェスチャー」「右後スピンジェスチャー」「左後スピンジェスチャー」それぞれに対応して、ジェスチャー判定値である「Ｒ」「Ｌ」「Ｆ」「Ｂ」「ｒｆ」「ｒｂ」「ｌｆ」「ｌｂ」「ｃｒ」「ｃｌ」「ｃｆ」「ｃｂ」「ｃｒｆ」「ｃｌｆ」「ｃｒｂ」「ｃｒｆ」がそれぞれ対応付けられて記憶されている。
【０２０８】
ジェスチャー判定値と出力との対応テーブル２９００では、さらに、図２８のドロップダウンボックス２８０２を通じて設定された音出力の値が記憶される。ジェスチャー判定値である「Ｒ」「Ｌ」「Ｆ」「Ｂ」「ｒｆ」「ｒｂ」「ｌｆ」「ｌｂ」「ｃｒ」「ｃｌ」「ｃｆ」「ｃｂ」「ｃｒｆ」「ｃｒｂ」「ｃｌｆ」「ｃｌｂ」それぞれに対応して、音出力である「ド」「レ」「ミ」「ファ」「ソ」「ラ」「シ」「ド＋１」「効果音１」「効果音２」「効果音３」「効果音４」「効果音５」「効果音６」「効果音７」「効果音８」がそれぞれ対応付けられて記憶されている。なお、効果音は後述のオクターブを超えた音出力であってもよい。
【０２０９】
ここで、「ド＋１」とは、ジェスチャー判定値「Ｒ」と対応する音出力「ド」を基準の音階とすると、１オクターブ高音の音出力「ド」であることを示す。また、「効果音１」「効果音２」「効果音３」「効果音４」「効果音５」「効果音６」「効果音７」「効果音８」は任意に設定される音出力であり、スマートフォン１に記憶される音データを用いてもよいし、ユーザーが設定する音データを用いてもよい。
【０２１０】
上述の通り、ジェスチャー判定値と出力との対応テーブル２９００の設定によれば、各シェイクジェスチャーに対応して「ド」「レ」「ミ」「ファ」「ソ」「ラ」「シ」「ド＋１」の音階情報を付与する。そして、スマートフォン１がジェスチャー判定値を出力するタイミング、すなわち所定のシェイクジェスチャー挙動を検出したタイミングで、ジェスチャー判定値と出力との対応テーブル２７００に関連付けられた音出力を、スマートフォン１のスピーカー１５０を通じて実際に出力する。
【０２１１】
ジェスチャー判定値と出力との対応テーブル２９００では、さらに、図２８のドロップダウンボックス２８０４を通じて設定された画像出力の値が記憶される。ジェスチャー判定値である「Ｒ」「Ｌ」「Ｆ」「Ｂ」「ｒｆ」「ｒｂ」「ｌｆ」「ｌｂ」「ｃｒ」「ｃｌ」「ｃｆ」「ｃｂ」「ｃｒｆ」「ｃｒｂ」「ｃｌｆ」「ｃｌｂ」それぞれに対応して、画像出力である「Ａ」「Ｂ」「Ｃ」「Ｄ」「Ｅ」「Ｆ」「Ｇ」「Ｈ」「Ｉ」「Ｊ」「Ｋ」「Ｌ」「Ｍ」「Ｎ」「Ｏ」「Ｐ」がそれぞれ対応付けられて記憶されている。
【０２１２】
上述の通り、ジェスチャー判定値と出力との対応テーブル２９００の設定によれば、各ジェスチャーに対応して「Ａ」「Ｂ」「Ｃ」「Ｄ」「Ｅ」「Ｆ」「Ｇ」「Ｈ」「Ｉ」「Ｊ」「Ｋ」「Ｌ」「Ｍ」「Ｎ」「Ｏ」「Ｐ」のアルファベットを示す画像情報を付与する。そして、スマートフォン１がジェスチャー判定値を出力するタイミングにおいて、ジェスチャー判定値と出力との対応テーブル２９００に関連付けられた画像出力を、スマートフォン１のタッチスクリーンディスプレイ１３０を通じて実際に出力する。
【０２１３】
図３０は、本発明の実施形態における、音・画像出力例を示したものである。図３０に示される音・画像出力は、例えば、図１２または図２７に示される認証におけるＩＤ入力時に、スマートフォン１のタッチスクリーンディスプレイ１３０またはスピーカー１５０を介して出力される。図２８における出力設定２８００において、チェックボックス２８０１を選択すると、図２８に示される（１）音ナビゲーター画面が表示される。すなわち、スマートフォン１のプロセッサ１００は、ジェスチャー処理プログラム１２２および認証アプリケーション１２３起動時に、ジェスチャー判定値と出力との対応テーブル２９００を参照して、タッチスクリーンディスプレイ１３０上に（１）音ナビゲーター画面を表示する。
【０２１４】
図３０（１）の音ナビゲーター画面表示例に示される通り、認証が開始されると、認証ボタン３００１、再入力ボタン３００２がタッチスクリーンディスプレイ１３０の略中央に表示される。同時に、スマートフォン１のシェイクジェスチャー方向（左、左後、後、右後、右、右前、前、左前）の８方向にそれぞれ「ド」「レ」「ミ」「ファ」「ソ」「ラ」「シ」「ド＋１」がそれぞれの方向に対応するナビゲーターとして表示される。この表示により、ユーザーはいずれの方向へのシェイクジェスチャーによっていずれの音出力がなされるかを認識することができる。
【０２１５】
図２８（１）の音ナビゲーター画面表示例が示されているときに、例えばユーザーがスマートフォン１を手に持ち、スマートフォン１に左方向へのシェイクジェスチャーを検出させると、スマートフォン１は図２８（２）の音出力例に示される音出力３００３がなされる。すなわち、スマートフォン１が左方向へのシェイクジェスチャーを検出したタイミングと同期して、音出力３００３として音階「ド」が、スマートフォン１のスピーカー１５０を通じて出力される。尚、図２８（２）の音出力例では、音出力３００３と同期してタッチスクリーンディスプレイ１３０に「ド」を画像出力する態様が例示されているが、音出力３００３のみの出力でもよい。
【０２１６】
一方、図２８における出力設定２８００において、チェックボックス２８０３を選択すると、図３０に示される（３）画像ナビゲーター画面が表示される。すなわち、スマートフォン１のプロセッサ１００は、ジェスチャー処理プログラム１２２および認証アプリケーション１２３起動時に、ジェスチャー判定値と出力との対応テーブル２９００を参照して、タッチスクリーンディスプレイ１３０上に（３）画像ナビゲーター画面を表示する。
【０２１７】
図３０（３）の画像ナビゲーター画面表示例に示される通り、認証が開始されると、認証ボタン３００１、再入力ボタン３００２がタッチスクリーンディスプレイ１３０の略中央に表示される。同時に、スマートフォン１のシェイクジェスチャー方向（左、左後、後、右後、右、右前、前、左前）の８方向にそれぞれ「Ａ」「Ｂ」「Ｃ」「Ｄ」「Ｅ」「Ｆ」「Ｇ」「Ｈ」がそれぞれの方向に対応するナビゲーターとして表示される。この表示により、ユーザーはいずれの方向へのシェイクジェスチャーによっていずれの画像出力がなされるかを認識することができる。
【０２１８】
図３０（３）の画像ナビゲーター画面表示例が示されているときに、例えばユーザーがスマートフォン１を手に持ち、スマートフォン１に右前方向へのシェイクジェスチャーを検出させると、スマートフォン１は図３０の（４）画像出力例に示される画像出力３００４がなされる。すなわち、スマートフォン１が右前方向へのシェイクジェスチャーを検出したタイミングと同期して、画像出力３００４としてアルファベット文字画像「Ｆ」が、スマートフォン１のタッチスクリーンディスプレイ１３０上に表示される。
【０２１９】
図３１は、入力処理と音出力の対応を示した、ジェスチャー対応表３１００である。ジェスチャー対応表３１００において、順番１〜順番７それぞれにジェスチャーと対応するジェスチャー判定値および音出力が関連付けて示されている。ユーザーは、順番１〜順番７に対応する一連のジェスチャーをスマートフォン１に検出させることで、ジェスチャー判定値を時系列の組み合わせとしてデータ記憶部１２４に記憶することができる。
【０２２０】
ジェスチャー対応表３１００において、スマートフォン１が順番１に対応する左方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｌ」に対応する音出力として「ド」を、スピーカー１５０を通じて出力する。スマートフォン１が順番２に対応する左後方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「ｌｂ」に対応する音出力として「レ」を、スピーカー１５０を通じて出力する。スマートフォン１が順番３に対応する後方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｂ」に対応する音出力として「ミ」を、スピーカー１５０を通じて出力する。スマートフォン１が順番４に対応する左方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｌ」に対応する音出力として「ド」を、スピーカー１５０を通じて出力する。スマートフォン１が順番５に対応する後方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｂ」に対応する音出力として「ミ」を、スピーカー１５０を通じて出力する。スマートフォン１が順番６に対応する左方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｌ」に対応する音出力として「ド」を、スピーカー１５０を通じて出力する。スマートフォン１が順番７に対応する後方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｂ」に対応する音出力として「ミ」を、スピーカー１５０を通じて出力する。
【０２２１】
ユーザーが順番１から順番７に対応する一連のジェスチャーを行うと、「ド」「レ」「ミ」「ド」「ミ」「ド」「ミ」という連続する音出力がスピーカー１５０を通じてなされる。ユーザーが好適な時間間隔で一連のジェスチャーを行うことで、「ドレミの歌」の一節に対応する音出力を行うことで、あたかも楽器による演奏を行うように音出力を行うことができる。
【０２２２】
このように、ジェスチャー態様に対応する音出力を設定し、ジェスチャー態様に対応した音出力を行うことで、例えばユーザーは、多くの入力情報で構成される認証装置のＩＤ情報をメロディと関連付けて記憶することができる。
【０２２３】
図３２は、一連の入力処理と画像出力の対応を示した、ジェスチャー対応表３２００である。ジェスチャー対応表３２００において、順番１〜順番４それぞれにジェスチャーと対応するジェスチャー判定値および画像出力が関連付けて示されている。ユーザーは、順番１〜順番４に対応する一連のジェスチャーをスマートフォン１に検出させることで、ジェスチャー判定値を時系列の組み合わせとしてデータ記憶部１２４に記憶することができる。
【０２２４】
ジェスチャー対応表３２００において、スマートフォン１が順番１に対応する右前方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「ｒｆ」に対応する画像出力として「Ｆ」をタッチスクリーンディスプレイ１３０上に表示する。スマートフォン１が順番２に対応する左方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｌ」に対応する画像出力として「Ａ」をタッチスクリーンディスプレイ１３０上に表示する。スマートフォン１が順番３に対応する後方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｂ」に対応する画像出力として「Ｃ」をタッチスクリーンディスプレイ１３０上に表示する。スマートフォン１が順番１に対応する右方向へのシェイクジェスチャーを検出すると、ジェスチャー判定値「Ｒ」に対応する画像出力として「Ｅ」をタッチスクリーンディスプレイ１３０上に表示する。
【０２２５】
ユーザーが順番１から順番４に対応する一連のジェスチャーを行うと、スマートフォン１がジェスチャーを認識するタイミングで「Ｆ」「Ａ」「Ｃ」「Ｅ」という一連の画像出力がタッチスクリーンディスプレイ１３０上に表示される。ユーザーが一連のジェスチャーを行うことで、「顔」を意味する英単語である「ＦＡＣＥ」を、タッチスクリーンディスプレイ１３０上に連続して表示を行うことができる。
【０２２６】
このように、ジェスチャー態様に対応する画像出力を設定し、ジェスチャー態様に対応した画像出力を行うことで、例えばユーザーは、多くの入力情報で構成される認証装置のＩＤ情報を画像出力に関連付けて記憶することができる。
【０２２７】
図３３は、図２５におけるジェスチャー判定Ｇスレッドの別実施形態における処理を表すフローチャートである。尚、重複する処理については説明を省略し、本実施形態における処理に必要なＳＡ５−３処理以降の説明のみ行うものとする。
【０２２８】
ＳＡ５−３において、ｔｇ（ｘ）’とｔｇ（ｘ）が同じか、すなわちｔｇ（ｘ）に変化があったかを判定する。ｔｇ（ｘ）’とｔｇ（ｘ）が異なると判定された場合（ＳＡ５−３：Ｙｅｓ）、ｔｇ（ｚ）’とｔｇ（ｚ）に変化があったかをさらに判定する（ＳＡ５−４）。ｔｇ（ｚ）’とｔｇ（ｚ）が異なると判定された場合（ＳＡ５−４：Ｙｅｓ）、Ｆ（ｘ）およびＦ（ｚ）の出力を採用しｒｆ、ｒｂ、ｌｆ、ｌｂ、ｃｒｆ、ｃｒｂ、ｃｌｆ、ｃｌｂのいずれかを出力する（ＳＡ５−５）。次いで、ＳＡ５−９において、出力されたｒｆ、ｒｂ、ｌｆ、ｌｂ、ｃｒｆ、ｃｒｂ、ｃｌｆ、ｃｌｂに対応する音または画像を出力する（ＳＡ５−９）。
【０２２９】
一方、ＳＡ５−４において、ｔｇ（ｚ）’とｔｇ（ｚ）が同じと判定された場合（ＳＡ５−４：Ｎｏ）、Ｆ（ｘ）の出力を採用しＬ、Ｒ、ｃｌ、ｃｒのいずれかを出力する（ＳＡ５−６）。次いで、ＳＡ５−１０において、出力されたＬ、Ｒ、ｃｌ、ｃｒに対応する音または画像を出力する（ＳＡ５−１０）。
【０２３０】
また、ＳＡ５−３において、ｔｇ（ｘ）’とｔｇ（ｘ）が同じと判定された場合（ＳＡ５−３：Ｎｏ）、ｔｇ（ｚ）’とｔｇ（ｚ）に変化があったかをさらに判定する（ＳＡ５−７）。ｔｇ（ｚ）’とｔｇ（ｚ）が異なると判定された場合（ＳＡ５−７：Ｙｅｓ）、Ｆ（ｚ）の出力を採用しＦ、Ｂ、ｃｆ、ｃｂのいずれかを出力する（ＳＡ５−８）。次いで、ＳＡ５−１１において、出力されたＦ、Ｂ、ｃｆ、ｃｂに対応する音または画像を出力する（ＳＡ５−１１）。
【０２３１】
一方、ＳＡ５−７において否定された場合（ＳＡ５−７：Ｎｏ）、再度ＳＡ５−１の処理に戻る。また、ＳＡ５−９、ＳＡ５−１０、ＳＡ５−１１においてジェスチャー判定値に対応する音または画像の出力が行われると、ジェスチャー判定Ｇスレッドを終了する。
【０２３２】
以上説明した通り、本実施形態におけるスマートフォンは、ジェスチャーを検出するタイミングで音や画像等の情報を出力させることで、ユーザーによる入力処理を支援することができる。ユーザーは、ＩＤ等に用いられる文字列が長文の文字列や、複雑な文字列であったとしても、上記音や画像と関連付けて記憶することができると共に、スマートフォンへの入力処理を行う際においても、上記音や画像と関連付けて容易に入力処理を行うことができる。
【０２３３】
＜第４実施形態＞
第４実施形態は、ユーザーがスマートフォン１にジェスチャーを検出させて、タッチスクリーンディスプレイ１３０に表示される各種インターフェースを操作することができる機能を有するジェスチャー検出装置に関する。以下、図面を参照して説明する。
【０２３４】
図３４は、スマートフォン１の操作画面３４０１を示す説明図である。操作画面３４０１は、例えばスマートフォン１上で稼動するアプリケーションの設定画面としてタッチスクリーンディスプレイ１３０に表示される。操作画面３４０１は、終了ボタン３４１０、スイッチインターフェース３４１１、選択ボタンインターフェース３４１２、ドラムインターフェース３４１３、実行ボタン３４１４、スイッチコントロール３４１５、ドラム部３４１６が含まれる。
【０２３５】
終了ボタン３４１０は、操作画面３４０１を終了させるために用いられる。終了ボタン３４０１を押下することでスイッチインターフェース３４１１からドラムインターフェース３４１３までの各ボタンの設定情報を更新することなく、操作画面３４０１またはアプリケーションを終了させることができる。
【０２３６】
スイッチインターフェース３４１１は、ユーザーがＯＮ／ＯＦＦの値を選択するために用いられるインターフェースである。スイッチコントロール３４１５を右方向に操作するとＯＮへの切り替えがなされ、スイッチコントロール３４１５を左方向に操作するとＯＦＦへの切り替えが実行される。
【０２３７】
選択ボタンインターフェース３４１２は、ユーザーがその中から１つの値を選択するために用いられるインターフェースである。選択ボタンインターフェース３４１２では、ユーザーが選択できる値が予め表示されており、その中から１つの値を選択することができる。本例では、ユーザーが選択することができる値として「左」「中」「右」が表示される。
【０２３８】
ドラムインターフェース３４１３は、ユーザーがその中から１つの値を選択するために複数の値を表示するインターフェースである。ドラムインターフェース３４１３では、ドラム部３４１６にユーザーが選択できる値が表示されており、その中から１つの値を選択することができる。本例では、「月」「火」「水」「木」「金」「土」「日」の順番で各曜日の値がドラム部３４１６に表示される。例えば、ドラムインターフェース３４１３の正面に「水」が表示されているときに、ドラム部３４１６を下方向に回転させた場合、次に「火」がドラムインターフェース３４１６の正面に表示される。一方、ドラムインターフェース３４１３の正面に「水」が表示されているときに、ドラム部３４１６を上方向に回転させた場合、次に「木」がドラムインターフェース３４１６の正面に表示される。このように、ユーザーはドラムインターフェース３４１６に表示される中から１つの値を選択することができる。
【０２３９】
実行ボタン３４１４は、各ボタンまたは各インターフェースで選択した値を確定させるために用いられる。実行ボタン３４１４を押下することでアプリケーションの次の処理を実行させることができる。
【０２４０】
本例における操作画面３４０１では、各ボタンおよび各インターフェースが上下に４列に配置され、上部から３列目には選択ボタンインターフェース３４１２およびドラムインターフェース３４１３が水平方向に並んで配置される。
【０２４１】
そして、操作画面３４０１に表示される終了ボタン３４１０、スイッチインターフェース３４１１、選択ボタンインターフェース３４１２、ドラムインターフェース３４１３、実行ボタン３４１４のうち、いずれか１つのボタンまたはインターフェースが有効となる。
【０２４２】
ここで「有効」とは、ジェスチャーによるによる入力操作を受け付ける場合の有効対象を定義するものである。ボタンまたはインターフェースが有効である場合、当該ボタンまたは当該インターフェースはジェスチャーによる入力操作を受け付けることができる状態である。ただし、ユーザーがタッチスクリーンディスプレイ１３０への直接タッチ操作を行う場合には、全てのボタンおよびインターフェースはタッチ操作を受け付けることができる。
【０２４３】
有効なボタンまたは有効なインターフェースは、当該ボタンまたは当該インターフェースが有効であることをユーザーに示すため、通常の表示とは異なる態様で表示される。図３６の操作画面３４０２を例に説明すると、スイッチインターフェース３４１１はジェスチャーによる操作を受け付けることができる有効なインターフェースである。このとき、スイッチインターフェース３４１１は、インターフェースを通常と異なる色彩である黄色等で表示される。一方、操作画面３４０２において、ドラムインターフェース３４１３はジェスチャーによる操作を受け付けることができないインターフェースである。このとき、ドラムインターフェース３４１３は、インターフェースを通常の表示であるグレーアウトした色彩で表示する。上記の通り、有効なボタンおよび有効なインターフェースの色彩を切り替えて表示することで、ユーザーが有効なボタンおよび有効なインターフェースを簡単に識別することができる。なお、有効なボタンまたは有効なインターフェースを通常の表示とは異なる態様で表示する方法は、色彩を変更することに限定されない。例えば、各ボタンおよび各インターフェースの上方にＬＥＤを模した点灯を表示させ、有効なボタンまたは有効なインターフェースの上方に配置されたＬＥＤを点灯表示させる態様等でもよい。
【０２４４】
次に、スマートフォン１が検出するジェスチャーと、スマートフォン１が実行する操作の関係について、図３５を参照して説明する。
【０２４５】
図３５は、操作定義テーブル３５００を説明する図である。操作定義テーブルには、スマートフォン１が検出するジェスチャーの種類と、ジェスチャーに対応するジェスチャー判定値と、スマートフォンが実行する操作とが対応付けられて記憶されている。
【０２４６】
操作定義テーブル３５００において、ローカル操作とは、有効なインターフェースに対して実行する選択操作または切り替え操作のことをいう。
【０２４７】
具体的には、右方向へのシェイクジェスチャーは、有効なインターフェースに対して右方向の選択または右方向への切り替えを実行することができる。左方向へのシェイクジェスチャーは、有効なインターフェースに対して左方向の選択または左方向への切り替えを実行することができる。前方向へのシェイクジェスチャーは、有効なインターフェースに対して下方向の選択または下方向への切り替えを実行することができる。後方向へのシェイクジェスチャーは、有効なインターフェースに対して上方向の選択または上方向への切り替えを実行することができる。
【０２４８】
一方、操作定義テーブル３５００において、グローバル操作とは、ボタンまたはインターフェースを有効にするための選択操作、または各インターフェースで選択した値を初期化する操作のことをいう。
【０２４９】
本実施形態では、スマートフォン１が所定間隔以内（例えば、０．５秒以内等）に連続して２回のシェイクジェスチャーが行われた場合、ダブルシェイクジェスチャーが検出されたと判定する。スマートフォン１がシェイクジェスチャーを検出する間隔によって、相互に異なるジェスチャーとして検出することができる。これにより、ローカル操作とグローバル操作とで、スマートフォン１に相互に異なるジェスチャーを検出させ、相互に異なる操作を実行させることができる。
【０２５０】
具体的には、右方向へのダブルシェイクジェスチャーは、右方向に配置されるボタンまたはインターフェースを選択することができる。左方向へのダブルシェイクジェスチャーは、左方向に配置されるインターフェースを選択することができる。前方向へのダブルシェイクジェスチャーは、下方向に配置されるボタンまたはインターフェースを選択することができる。後方向へのダブルシェイクジェスチャーは、上方向に配置されるボタンまたはインターフェースを選択することができる。
【０２５１】
また、左・右・左・右・左・右方向への連続したシェイクジェスチャーは、各ボタンまたはインターフェースで選択した値を初期値に戻し、選択した値をすべて無効にする操作を実行することができる。この場合、ユーザーがスマートフォン１にジェスチャーを認識させ、ジェスチャー判定値としてＬ、Ｒ、Ｌ、Ｒ、Ｌ、Ｒが取得された場合は、スマートフォン１は当該ジェスチャーが実行されたものと判定する。その結果、スマートフォン１は、各インターフェースで選択した値を初期値に戻すとともに終了ボタン３４１０を有効にする。そして、終了ボタン３４１０を押下したことと同一の処理を実行する。
【０２５２】
次に、ユーザーがスマートフォン１にジェスチャーを検出させて、各ボタンおよび各インターフェースを操作する態様について、図３６を参照して説明する。
【０２５３】
図３６は、各ボタンおよび各インターフェースの操作画面３４０１から操作画面３４０７までの画面遷移を説明する図である。操作画面３４０１は初期画面であり、各ボタンおよび各インターフェースが表示される。
【０２５４】
操作画面３４０１では、終了ボタン３４１０が有効であることをユーザーに示すために、終了ボタン３４１０は通常と異なる色彩である黄色等で表示される。
【０２５５】
操作画面３４０１において、スマートフォン１が前方向へのダブルシェイクジェスチャーを検出すると、終了ボタン３４１０の下部に配置されるスイッチインターフェース３４１１が選択され、有効なインターフェースとなる。
【０２５６】
操作画面３４０２において、スマートフォン１が右方向へのシェイクジェスチャーを検出すると、スイッチコントロール３４１５が右方向に操作され、スイッチインターフェース３４１１がＯＮに切り替えられる。
【０２５７】
操作画面３４０３において、スマートフォン１が前方向へのダブルシェイクジェスチャーを検出すると、スイッチインターフェース３４１１の下部に配置されるドラムインターフェース３４１３が選択され、有効なインターフェースとなる。本例では、このときドラムインターフェース３４１３の正面には「月」が表示されている。
【０２５８】
操作画面３４０４において、スマートフォン１が前方向へのシェイクジェスチャーを検出すると、ドラム部３４１６の正面に表示される値が「月」から「火」に切り替えられる。なお、このときドラム部３４１６は上部方向に回転する挙動を表示する。
【０２５９】
操作画面３４０５において、スマートフォン１が前方向へのダブルシェイクジェスチャーを検出すると、ドラムインターフェース３４１３の下部に配置される実行ボタン３４１４が選択され、有効なインターフェースとなる。
【０２６０】
操作画面３４０６において、スマートフォン１が実行ボタン３４１４の押下を検出すると、各インターフェースで選択した値で処理を実行することが決定される。
【０２６１】
あるいはまた、操作画面３４０６において、スマートフォン１が左、右、左、右、左、右方向への連続したシェイクジェスチャーを検出すると、各インターフェースで選択した値が初期化され（操作画面３４０７）、再び初期画面である操作画面３４０１と同じ画面に表示が戻る。
【０２６２】
なお、図３６の画面遷移では説明を行わなかったが、選択インターフェース３４１２が有効なインターフェースであるときも、スマートフォン１が左右方向のシェイクジェスチャーを検出することで切り替え操作を実行することができる。すなわち、選択インターフェース３４１２が有効な状態で、スマートフォン１が左方向のシェイクジェスチャーを検出すると、例えば「中」に対して「左」のように、左方向に表示される値を選択するように切り替えることができる。
【０２６３】
さらに、本例では終了ボタン３４１０および実行ボタン３４１４にはローカル操作を実行するジェスチャーを対応付けていないが、例えば先行する実施形態で説明したスピンジェスチャーを対応付けてもよい。この場合、例えば実行ボタン３４１４が有効なときに、スマートフォン１に所定の方向のスピンジェスチャーを検出させて、実行ボタン３４１４の押下に相当する処理を実行させてもよい。
【０２６４】
以上説明した通り、第４実施形態におけるジェスチャー検出装置は、ユーザーがスマートフォン１にジェスチャーを検出させることにより、タッチスクリーンディスプレイ１３０に表示される各種インターフェースを操作することができる機能を有する。
【０２６５】
そのため、手袋等の装着によりスマートフォン１にタッチ操作を認識させることができない場合には、所定のジェスチャーをスマートフォン１に検出させることにより、タッチスクリーンディスプレイへの操作を代替することができる。これは、一般ユーザーが冬季外出時にスマートフォンを操作するときに有効であるばかりでなく、工場等において手袋装着が義務付けられている環境下で効果を奏する。
【０２６６】
＜第５実施形態＞
第５実施形態では、ニューラルネットワークを用いて空間中のジェスチャー（以下、本実施形態において「空間ジェスチャー」と記す）を学習・認識させる機能を有するジェスチャー認識装置について説明する。
【０２６７】
ここで、ニューラルネットワークとは、生物の脳内の神経細胞の動作を人工ニューロンという単純化したモデルで再現し、これら人工ニューロンを階層型等に相互接続したものをいう。そして、これら接続間の結合係数の重荷または閾値などを学習させることによって、特定の情報処理を実行させることができるようにしたものである。
【０２６８】
図４０に模式的に示すように、ニューラルネットワーク１９２は、コントローラ１９１、入力層１９３、中間層１９４、出力層１９５、教師信号層１９６、結合係数１９７から構成される。
【０２６９】
コントローラ１９１は、ジェスチャー判定値をニューラルネットワーク入力信号に変換して、入力層１９３に入力する。同時に、ニューラルネットワーク入力信号に対応する教師信号を教師信号層１９６に入力する。
【０２７０】
中間層１９４および出力層１９５は、結合係数１９７を用いて演算を実行する。コントローラ１９１は、出力層１９５の出力が教師信号に近づくように、各階層間の結合係数１９７の重荷または閾値を更新する。更新においては、コントローラ１９１が出力層１９５からの出力と教師信号の差を判定し、その差が一定の許容値以下に収斂するまでニューラルネットワーク入力信号と教師信号の組を繰り返し入力して結合係数１９７の更新を行う。出力層１９５からの出力と教師信号の差が一定の許容値以下に収斂されると、当該教師信号の学習を終了する。
【０２７１】
１つの教師信号に対する学習が終了すると、今度は別の教師信号に対する学習を開始する。以下同様に学習を繰り返し、Ｎ番目の教師信号まで学習を実行することで、Ｎ種類の認識が可能なニューラルネットワーク１９２を形成することができる。
【０２７２】
次に、学習済みのニューラルネットワーク１９２を用いた認識について説明する。コントローラ１９１はジェスチャー判定値をニューラルネットワーク入力信号に変換して、入力層１９３に入力する。中間層１９４および出力層１９５は更新された結合係数１９７を用いて演算を実行する。コントローラ１９１は、出力層１９５からの出力信号をニューラルネットワーク出力信号としてスマートフォン１のプロセッサ１００に出力する。
【０２７３】
プロセッサ１００は、ニューラルネットワーク出力信号と対応する教師信号の差を判定し、その差が一定の許容値以下かを判定する。このとき、ニューラルネットワーク出力信号と対応する教師信号との差が一定の許容値以下であれば、スマートフォン１に対して行った空間ジェスチャーを、学習済みの空間ジェスチャーとして認識される。
【０２７４】
一方、ニューラルネットワーク出力信号と対応する教師信号との差が一定の許容値を超えている場合、プロセッサ１００は、スマートフォン１に対して行った空間ジェスチャーを、学習済みの空間ジェスチャーとして認識しない。このとき、当該空間ジェスチャーを学習済みの空間ジェスチャーとして認識させたい場合、追加で学習を実行可能なように、ニューラルネットワーク１９２を構成してもよい。
【０２７５】
図３７は、本発明の第５実施形態における、ジェスチャー認識装置としてのスマートフォン１のブロック構成図である。図３７に示すように、スマートフォン１は、プロセッサ１００と、プロセッサ１００にそれぞれ接続された動き検出部１１０、記憶部１２０、タッチスクリーンディスプレイ１３０、操作ボタン１４０、スピーカー１５０、マイク１６０、カメラ１７０、通信部１８０、ニューラルネットワーク演算部１９０を有する。ここで、ニューラルネットワーク演算部１９０は、通信部１８０を介して接続される態様でもよい。この場合、プロセッサ１００は通信部１８０を介して、例えばサーバに組み込まれたニューラルネットワーク演算部１９０で処理を実行することにより、プロセッサ１００の処理負担を軽減することができる。以下、図３と重複する構成については説明を省略する。
【０２７６】
ニューラルネットワーク演算部１９０は、例えばニューロプロセッサによって構成され、ニューラルネットワーク１９２による学習・認識処理を実行することができる。
【０２７７】
図３８は、ニューラルネットワーク演算部１９０の機能ブロックを説明する図である。データ記憶部１２４とニューラルネットワーク演算部１９０はプロセッサ１００（図示せず）を介して相互に接続されており、ニューラルネットワーク入力信号およびニューラルネットワーク出力信号を送受信可能に構成されている。
【０２７８】
データ記憶部１２４は、ジェスチャー判定値記憶部１２５、変換テーブル記憶部１２６、教師信号定義テーブル記憶部１２７、意味テーブル１２８を含む。
【０２７９】
ジェスチャー判定値記憶部１２５は、ジェスチャー判定値を記憶することが可能な記憶領域である。
【０２８０】
変換テーブル記憶部１２６は、ジェスチャー判定値をニューラルネットワーク入力信号に変換するときに参照される変換テーブル３９０１の記憶領域である。
【０２８１】
教師信号定義テーブル記憶部１２７は、教師信号定義テーブル３９０２の記憶領域である。
【０２８２】
意味テーブル記憶部１２８は、意味テーブル３９０３の記憶領域である。
【０２８３】
ニューラルネットワーク演算部１９０は、コントローラ１９１と、入力層１９３、中間層１９４、出力層１９５、教師信号層１９６から構成されるニューラルネットワーク１９２を含む。コントローラ１９１は、ニューラルネットワーク演算部１９０を統括制御し、ニューラルネットワーク１９２の学習・認識処理を制御する。
【０２８４】
図３６は、変換テーブル３９０１と、教師信号定義テーブル３９０２と、意味テーブル３９０３の内容を示す説明図である。
【０２８５】
変換テーブル３９０１は、ジェスチャー判定値をニューラルネットワーク入力信号に変換する際に参照されるテーブルである。図３６の変換テーブル３９０１では、一例としてジェスチャー判定値「Ｒ」「Ｌ」「Ｆ」「Ｂ」「ｒｆ」「ｒｂ」「ｌｆ」「ｌｂ」に対してそれぞれ「＋１」「−１」「＋４」「−４」「−２」「−３」「＋３」「＋２」が対応付けられて記憶されている。
【０２８６】
教師信号定義テーブル３９０２は、コードと教師信号を相互に参照するためのテーブルである。ここで「コード」とは、教師信号と空間ジェスチャーとを対応づける情報のことをいう。例えば、コード「１」に対応する空間ジェスチャーを学習する場合、当該空間ジェスチャーに対応するニューラルネットワーク入力信号が入力層１９３に入力されると同時に、同様にコード「１」に対応する教師信号が教師信号層１９６に入力される。
【０２８７】
図３９の教師信号定義テーブル３９０２では、一例としてコード「１」「２」「３」「４」に対してそれぞれ「１、０、０、０」「０、１、０、０」「０、０、１、０」「０、０、０、１」が対応付けられて記憶されている。本実施形態ではコードを数字としたが、文字、記号、意味を持つ言葉またはフレーズ等であってもよい。
【０２８８】
意味テーブル３９０３は、さらにコードと定義情報を相互に参照するためのテーブルである。ここで「定義情報」とは、ユーザーにとって何らかの意味ある情報であって、コードを特定することができる情報である。
【０２８９】
図３９の意味テーブル３９０３では、一例としてコード「１」「２」「３」「４」に対してそれぞれ「あ」「△」「Ｚ」「山田太郎」が対応付けられて記憶されている。定義情報により、例えば学習済みの空間ジェスチャーに対して、ユーザーにとって何らかの意味ある情報を対応付けることができる。詳細は図４２において後述する。
【０２９０】
次に、図４０を参照して、空間ジェスチャーを学習・認識する処理について説明する。
【０２９１】
本実施形態における空間ジェスチャーは、先行する実施形態のシェイクジェスチャーやスピンジェスチャー（以下、本実施形態において「基本ジェスチャー」と記す）の任意の組み合わせによって構成される。例えば、図６を参照して説明すると、「基本姿勢から左方向と右方向へのシェイクジェスチャーの組み合わせ」「基本姿勢から前方向と後方向へのシェイクジェスチャーの組み合わせ」「基本姿勢から左方向、後方向、右方向、前方向へのシェイクジェスチャーの組み合わせ」等によって空間ジェスチャーを構成することができる。
【０２９２】
一例として、「基本姿勢から左方向、後方向、右方向、前方向へのシェイクジェスチャーの組み合わせ」を、コード「１」の空間ジェスチャーとして学習する処理について説明する。
【０２９３】
上記シェイクジェスチャーの組み合わせが検出されると、スマートフォン１のプロセッサ１００は、ジェスチャー判定値「Ｌ、Ｂ、Ｒ、Ｆ」をジェスチャー判定値記憶部１２５に出力する。
【０２９４】
次に、ニューラルネットワーク演算部１９０のコントローラ１９１は、変換テーブル３９０１を参照してニューラルネットワーク入力信号「−１、−４、＋１、＋４」を取得する。
【０２９５】
コントローラ１９１は、ニューラルネットワーク入力信号「−１、−４、＋１、＋４」を入力層１９３に入力する。同時に、コントローラ１９１は教師信号定義テーブル３９０２を参照して、コード「１」に対応する教師信号「１、０、０、０」を教師信号層１９６に入力する。
【０２９６】
続いて、中間層１９４および出力層１９５は、結合係数１９７を用いて演算を実行する。コントローラ１９１は、出力層の出力が教師信号に近づくように、各階層間の結合係数１９７の重荷または閾値を更新する。更新においては、コントローラ１９１が出力層１９５からの出力と教師信号の差を判定し、その差が一定の許容値以下に収斂するまでニューラルネットワーク入力信号と教師信号の組を繰り返し入力して結合係数１９７の更新を行う。
【０２９７】
次に、学習済みのニューラルネットワーク１９２を用いて、コード「１」の空間ジェスチャーを認識する処理について説明する。コントローラ１９１はジェスチャー判定値をニューラルネットワーク入力信号に変換して、入力層１９３に入力する。中間層１９４および出力層１９５は更新された結合係数１９７を用いて演算を実行する。コントローラ１９１は、出力層１９５からの出力信号をニューラルネットワーク出力信号としてスマートフォン１のプロセッサ１００に出力する。
【０２９８】
スマートフォン１に検出させる空間ジェスチャーが「（１）基本姿勢から左方向、後方向、右方向、前方向へのシェイクジェスチャーの組み合わせ」だった場合、ジェスチャー判定値は「Ｌ、Ｂ、Ｒ、Ｆ」であり、ニューラルネットワーク入力信号は「−１、−４、＋１、＋４」である。
【０２９９】
このとき、ニューラルネットワーク入力信号「−１、−４、＋１、＋４」は、コード「１」の空間ジェスチャーとして学習したニューラルネットワーク入力信号と同一である。そのため、ニューラルネットワーク入力信号「−１、−４、＋１、＋４」を、学習済みのニューラルネットワーク１９２の入力層１９３に入力すると、出力層１９５からは「１、０、０、０」と同一または近似のニューラルネットワーク出力信号を取得することができる。
【０３００】
一方、コード「１」に対応する教師信号も「１、０、０、０」である。そのため、ニューラルネットワーク出力信号と、コード「１」に対応する教師信号との差は、一定の許容値以下であると判定される。以上より、「（１）基本姿勢から左方向、後方向、右方向、前方向へのシェイクジェスチャーの組み合わせ」は、コード「１」の空間ジェスチャーであると認識される。
【０３０１】
スマートフォン１に検出させる空間ジェスチャーが「（２）基本姿勢から前方向、右方向、後方向、左方向へのシェイクジェスチャーの組み合わせ」だった場合、ジェスチャー判定値は「Ｆ、Ｒ、Ｂ、Ｌ」であり、ニューラルネットワーク入力信号は「＋４、＋１、−４、−１」である。
【０３０２】
このとき、ニューラルネットワーク入力信号「＋４、＋１、−４、−１」は、コード「１」の空間ジェスチャーとして学習したニューラルネットワーク入力信号と相異する。そのため、ニューラルネットワーク入力信号「＋４、＋１、−４、−１」を、学習済みのニューラルネットワーク１９２の入力層１９３に入力しても、ニューラルネットワーク出力信号としてコード「１」に対応する教師信号「１、０、０、０」と同一または近似の値を取得することができない。
【０３０３】
コード「１」に対応する教師信号は「１、０、０、０」であるため、ニューラルネットワーク出力信号と、コード「１」の教師信号との差は、一定の許容値を超えるものと判定される。以上より、「（２）基本姿勢から前方向、右方向、後方向、左方向へのシェイクジェスチャーの組み合わせ」は、コード「１」の空間ジェスチャーとは認識されない。
【０３０４】
スマートフォン１に検出させる空間ジェスチャーが「（３）基本姿勢から左方向、後方向、右方向、左前方向へのシェイクジェスチャーの組み合わせ」だった場合、ジェスチャー判定値は「Ｌ、Ｂ、Ｒ、ｌｆ」であり、ニューラルネットワーク入力信号は「−１、−４、＋１、＋３」である。この場合、最後に検出された基本ジェスチャーのみが（１）のものと相異する。
【０３０５】
このとき、ニューラルネットワーク入力信号「−１、−４、＋１、＋３」は、コード「１」の空間ジェスチャーとして学習したニューラルネットワーク入力信号と一部のみ相異する。そのため、ニューラルネットワーク入力信号「−１、−４、＋１、＋３」を、学習済みのニューラルネットワーク１９２の入力層１９３に入力すると、出力層１９５からは、例えば「１、０、０、０」と近似の「０．８、０．２、０、０」等のニューラルネットワーク出力信号を取得することができる。
【０３０６】
コード「１」に対応する教師信号は「１、０、０、０」であるため、ニューラルネットワーク出力信号「０．８、０．２、０、０」との差分は、「０．２、０．２、０、０」となる。ここでは「１」と「０．８」との差分として「０．２」を、「０」と「０．２」との差分として「０．２」を比較する例を示したが、実施形態はこれに限られない。
【０３０７】
それぞれの信号における許容値として「０．３」が設定されていた場合、ニューラルネットワーク出力信号と、コード「１」の教師信号との差は、それぞれ許容値以下の「０．２」である。そのため、この場合「（３）基本姿勢から左方向、後方向、右方向、左前方向へのシェイクジェスチャーの組み合わせ」は、コード「１」の空間ジェスチャーであると認識することができる。
【０３０８】
同一のユーザーが、同一の空間ジェスチャーをスマートフォン１に検出させようとしても、時間・場所によっては空間ジェスチャーの検出結果の一部にゆらぎや微妙に異なるジェスチャーが発生する可能性が考えられる。スマートフォン１が予め十分な学習処理を実行しておくことで、空間ジェスチャーの検出結果の一部にゆらぎや微妙に異なるジェスチャーが含まれていても、スマートフォン１に空間ジェスチャーとして認識させることができる。
【０３０９】
尚、図４０のニューラルネットワーク１９２の入力層１９３、中間層１９４、出力層１９５および教師信号層１９６はそれぞれ信号を処理する形態で説明をしたが、別実施形態においてはこれに限られない。例えば、入力データおよび出力データとしてデータを処理する形態でニューラルネットワーク１９２を構成してもよい。
【０３１０】
図４１は、空間ジェスチャー学習・認識処理を説明するフローチャートである。以下、図面を参照して説明する。
【０３１１】
まず、空間ジェスチャーの学習処理を行う、学習フェーズについて説明する。Ｓ７０１において、変数ｎに１を入力する。ｎは、学習対象のコードを特定するために用いられる（Ｓ７０１）。次に、Ｓ７０２において、最後のコードまで学習が完了したかを判定する。すなわち、最後のコードまでの学習を実行し、かつ、全てのコードに対する学習においてニューラルネットワーク出力信号と教師信号との差が一定の許容値以下に収斂されると、最後のコードまで学習が完了したと判定する（Ｓ７０２）。
【０３１２】
Ｓ７０３において、コントローラ１９１はニューラルネットワーク入力信号および教師信号をそれぞれ入力層１９３および教師信号層１９６に与える（Ｓ７０３）。
【０３１３】
Ｓ７０４において、コントローラ１９１は中間層１９４の演算を実行する（Ｓ７０４）。中間層１９４の演算は結合係数１９７を用いて実行され、出力層１９５に出力される。
【０３１４】
Ｓ７０５において、コントローラ１９１は出力層１９５の演算を実行する（Ｓ７０５）。出力層１９５の演算は結合係数１９７を用いて実行され、出力層１９５から出力値が出力される。
【０３１５】
Ｓ７０６において、コントローラ１９１は出力層１９５から出力された出力信号と教師信号とを比較する。当該比較の結果、出力信号と教師信号との差分を算出し、算出された差分に基づいて出力層１９５の結合係数１９７の重荷または閾値の更新量を演算する。
【０３１６】
Ｓ７０７において、同様に、算出された差分に基づいて中間層１９４の結合係数１９７の重荷または閾値の更新量を演算する。
【０３１７】
Ｓ７０８において、Ｓ７０６およびＳ７０７において演算された結合係数１９７の重荷または閾値の更新量に基づいて、中間層１９４および出力層１９５の結合係数１９７の重荷または閾値を更新する。
【０３１８】
Ｓ７０９において、コード「ｎ」の学習を継続するかを判定する（Ｓ７０９）。すなわち、コード「ｎ」の学習が、ニューラルネットワーク出力信号と教師信号の差が一定の許容範囲以下に収斂される程学習が進んだかを判定する。コード「ｎ」の学習を継続すると判定された場合（Ｓ７０９：Ｙｅｓ）、再びＳ７０３からＳ７０８の処理を繰り返して学習を継続する。一方、コード「ｎ」の学習を継続しないと判定された場合（Ｓ７０９：Ｎｏ）、Ｓ７１０に移行して次の教師信号を特定するために「ｎ＝ｎ＋１」の処理を実行する。
【０３１９】
Ｓ７１０の処理が終了すると、再びＳ７０２に戻り、最後のコードまで学習が完了したかを判定する（Ｓ７０２）。以上のような処理フローにより、Ｎ番目の教師信号まで学習を実行することで、Ｎ種類の認識が可能なニューラルネットワーク１９２を形成することができる。
【０３２０】
次に、空間ジェスチャーの認識処理を行う、実行フェーズの処理について説明する。Ｓ７１１において、コントローラ１９１はニューラルネットワーク入力信号を学習済みのニューラルネットワーク１９２の入力層１９３に与える。
【０３２１】
Ｓ７１２において、コントローラ１９１はＳ７０４の処理と同様に、中間層１９４の演算を実行する（Ｓ７１１）。中間層１９４の演算は結合係数１９７を用いて実行され、出力層１９５に出力される。
【０３２２】
Ｓ７１３において、コントローラ１９１はＳ７０５の処理と同様に、出力層１９５の演算を実行する（Ｓ７１２）。出力層１９５の演算は結合係数１９７を用いて実行される。
【０３２３】
Ｓ７１４において、コントローラ１９１はＳ７１３における演算結果をニューラルネットワーク出力信号として出力する（Ｓ７１３）。
【０３２４】
次に、Ｓ７１５において、スマートフォン１のプロセッサ１００は、ニューラルネットワーク出力信号と対応する教師信号の差を判定し、その差が一定の許容値以下かを判定する（Ｓ７１５）。許容値以下であった場合（Ｓ７１５：Ｙｅｓ）、プロセッサ１００は空間ジェスチャーを認識する（Ｓ７１６）。一方、許容値をこえていた場合（Ｓ７１５：Ｎｏ）、プロセッサ１００は空間ジェスチャーを認識しない（Ｓ７１７）。
【０３２５】
Ｓ７１６またはＳ７１７の処理が終了すると、空間ジェスチャー学習・認識フローを終了する。
【０３２６】
図４２は、スマートフォン１が空間ジェスチャーを学習・認識する際の画面遷移例を示したものである。以下、図面を参照して説明する。
【０３２７】
初期画面４２０１において、タッチスクリーンディスプレイ１３０には選択ボタン４２１０および４２２０が表示される。
【０３２８】
まず、スマートフォン１に空間ジェスチャーを学習させるときの一連の画面遷移について説明する。選択ボタン４２１０を押下すると、タッチスクリーンディスプレイ１３０には定義情報入力画面４２０２が表示される。
【０３２９】
定義情報入力画面４２０２において、本例では定義情報として「あ」を入力する。定義情報入力フォーム４２３０に「あ」を入力し、決定ボタン４２４０を押下すると、ジェスチャー学習画面４２０３が表示される。
【０３３０】
ジェスチャー学習画面４２０３が表示されているときに、ユーザーが任意の基本ジェスチャーの組み合わせをスマートフォン１に検出させると、当該基本ジェスチャーの組み合わせは、定義情報「あ」に対応する空間ジェスチャーとして学習される。
【０３３１】
定義情報「あ」に対応する空間ジェスチャーとして学習を継続することが判定された場合（図４１、Ｓ７０９）、タッチスクリーンディスプレイ１３０には学習継続画面４２０４が表示される。学習継続画面４２０４が表示されると、再びジェスチャー学習画面４２０３が表示され、定義情報「あ」に対応する空間ジェスチャーの実行を促す表示がなされる。
【０３３２】
一方、定義情報「あ」に対応する空間ジェスチャーとして学習を終了することが判定された場合（図４１、Ｓ７０９）、タッチスクリーンディスプレイ１３０には選択画面４２０５が表示される。
【０３３３】
選択画面４２０５において、選択ボタン４２５０が押下されると、再び定義情報入力画面４２０２が表示される。ユーザーは、定義情報入力フォーム４２３０に次の定義情報（例えば、「△」）を入力することで、次の定義情報に対応する空間ジェスチャーをスマートフォン１に学習させることができる。
【０３３４】
選択画面４２０５において、選択ボタン４２６０が押下されると、学習を終了し再び初期画面４２０１が表示される。
【０３３５】
次に、スマートフォン１に空間ジェスチャーを認識させるときの一連の画面遷移について説明する。初期画面４２０１が表示されているときに、選択ボタン４２２０が押下されると、タッチスクリーンディスプレイ１３０には定義情報入力画面４２０６が表示される。定義情報入力画面４２０６において、本例では定義情報として「あ」を入力する。定義情報入力フォーム４２７０に「あ」を入力し、決定ボタン４２８０を押下すると、ジェスチャー認識画面４２０７が表示される。
【０３３６】
ジェスチャー認識画面４２０７が表示されているときに、ユーザーは所定の空間ジェスチャーをスマートフォン１に認識させる。ユーザーは、定義情報「あ」に対応付けて学習させた空間ジェスチャーをスマートフォン１に認識させることができれば（図４１、Ｓ７１５）、タッチスクリーンディスプレイ１３０にはジェスチャー認識成功画面４２０８が表示される。
【０３３７】
一方、ジェスチャー認識画面４２０７が表示されているときに、ユーザーは所定の空間ジェスチャーをスマートフォン１に認識させる。ユーザーは、定義情報「あ」に対応付けて学習させた空間ジェスチャーをスマートフォン１に認識させるこができなければ（図４１、Ｓ７１５）、タッチスクリーンディスプレイ１３０にはジェスチャー認識失敗画面４２０９が表示される。その後、初期画面４２０１が再び表示される。
【０３３８】
本実施形態の別例において、スマートフォン１の認証アプリケーション１２３は、空間ジェスチャーの認識可否をユーザー認証に応用することができる。すなわち、ユーザーが定義情報に対応付けて学習させた空間ジェスチャーを、スマートフォン１に認識させることができれば、認証アプリケーション１２３は空間ジェスチャーを行った主体を正当なユーザーと判断する。この場合、認証アプリケーション１２３は、ユーザー認証がなされたものとして、ジェスチャー認識成功画面４２０８に続いて、サービスへのログイン機能等を提供する。一方、ユーザーが定義情報に対応付けて学習させた空間ジェスチャーを、スマートフォン１に認識させることができなければ、認証アプリケーション１２３は空間ジェスチャーを行った主体を正当なユーザーではないと判断する。
【０３３９】
以上説明した通り、第５実施形態におけるジェスチャー認識装置では、ニューラルネットワークを用いて空間ジェスチャーを学習・認識させる機能を有することを特徴とする。これにより、ジェスチャー認識装置は、任意の空間ジェスチャーをユーザーにとって何らかの意味ある値として認識することが可能となる。
【０３４０】
以上説明した通り、本発明の実施形態におけるスマートフォンは、ジェスチャーを検出し、検出された空間中のジェスチャーに基づいて種々の処理を実行する。これにより、スマートフォン等のスマートデバイスにおいて、ユーザーに対して新たな操作性を提供することすることができる。
【０３４１】
また、以上説明した実施形態は、情報処理装置上で実行されるコンピュータプログラムによるものであり、本発明はコンピュータプログラムによる形態をとることができる。また、コンピュータプログラムはＣＤ−ＲＯＭ等のコンピュータ記憶媒体に格納され、当該コンピュータが記憶媒体を読み取ることで実行することができるため、本発明はコンピュータ記憶媒体による形態をとることができる。
【符号の説明】
【０３４２】
１  スマートフォン
２  筐体
１００  プロセッサ
１１０  動き検出部
１１１  加速度センサー
１１２  角速度センサー
１１３  地磁気センサー
１２０  記憶部
１２１  制御プログラム
１２２  ジェスチャー検出アプリケーション
１２３  認証アプリケーション
１２４  データ記憶部
１３０  タッチスクリーンディスプレイ
１４０  操作ボタン
１５０  スピーカー
１６０  マイク
１７０  カメラ
１８０  通信部
１９０  ニューラルネットワーク演算部
１９１  コントローラ
１９２  ニューラルネットワーク
１２０１  ＩＤ入力フォーム
２８００  出力設定
２９００  ジェスチャー判定値と出力との対応テーブル
３００３  音出力
３００４  画像出力
３１００  ジェスチャー対応表
３２００  ジェスチャー対応表
３４１１  スイッチインターフェース
３４１２  選択ボタンインターフェース
３４１３  ドラムインターフェース
３５００  操作定義テーブル
３９０１  変換テーブル
３９０２  教師信号定義テーブル
３９０３  意味テーブル
ｘ１  センサー軸（ｘ軸）
ｚ１  センサー軸（ｚ軸）
ｙ１  センサー軸（ｙ軸）
ｔｒ（ｘ）  トリガー信号（ｘ軸）
ｔｇ（ｘ）  トグル信号（ｘ軸）
ｔｒ（ｚ）  トリガー信号（ｚ軸）
ｔｇ（ｚ）  トグル信号（ｚ軸）
Ｆ（ｘ）  ｘ軸判定Ｆ
Ｆ（ｚ）  ｚ軸判定Ｆ
Ｆ（ｙ）  ｙ軸傾き判定Ｆ
判定Ｇ  ジェスチャー判定Ｇ
【要約】
【課題】ジェスチャーを検出し、検出されたジェスチャーに基づいて種々の処理を実行することで新たな操作性を提供することができるジェスチャー検出装置およびジェスチャー検出プログラムを提供すること。
【解決手段】ジェスチャー検出装置としてのスマートフォンは、動き検出部とプロセッサを備える。プロセッサは、動き検出部が出力する変位情報を演算して空間中の座標情報を取得する。座標情報が、スマートフォンの振り出し時の閾値を上回るタイミングでは振り出し時の方向判定値を取得し、スマートフォンの振り戻し時の閾値を下回るタイミングでは振り戻し時の方向判定値を取得する。そして、振り出し時の方向判定値および振り戻し時の方向判定値の組み合わせによりジェスチャー検出装置のジェスチャーを検出する。
【選択図】図７【図１】
0005613314.tif 000002
【図２】
0005613314.tif 000003
【図３】
0005613314.tif 000004
【図４】
0005613314.tif 000005
【図５】
0005613314.tif 000006
【図６】
0005613314.tif 000007
【図７】
0005613314.tif 000008
【図８】
0005613314.tif 000009
【図９】
0005613314.tif 000010
【図１０】
0005613314.tif 000011
【図１１】
0005613314.tif 000012
【図１２】
0005613314.tif 000013
【図１３】
0005613314.tif 000014
【図１４】
0005613314.tif 000015
【図１５】
0005613314.tif 000016
【図１６】
0005613314.tif 000017
【図１７】
0005613314.tif 000018
【図１８】
0005613314.tif 000019
【図１９】
0005613314.tif 000020
【図２０】
0005613314.tif 000021
【図２１】
0005613314.tif 000022
【図２２】
0005613314.tif 000023
【図２３】
0005613314.tif 000024
【図２４】
0005613314.tif 000025
【図２５】
0005613314.tif 000026
【図２６】
0005613314.tif 000027
【図２７】
0005613314.tif 000028
【図２８】
0005613314.tif 000029
【図２９】
0005613314.tif 000030
【図３０】
0005613314.tif 000031
【図３１】
0005613314.tif 000032
【図３２】
0005613314.tif 000033
【図３３】
0005613314.tif 000034
【図３４】
0005613314.tif 000035
【図３５】
0005613314.tif 000036
【図３６】
0005613314.tif 000037
【図３７】
0005613314.tif 000038
【図３８】
0005613314.tif 000039
【図３９】
0005613314.tif 000040
【図４０】
0005613314.tif 000041
【図４１】
0005613314.tif 000042
【図４２】
0005613314.tif 000043