(57)【特許請求の範囲】
【請求項１】
携帯可能な電子デバイスの動作を処理して当該携帯可能な電子デバイスを制御する方法において：
前記携帯可能な電子デバイス上で、前記携帯可能な電子デバイスの動作センサから取り出した検出動作データを受信するステップであって、当該検出したデータが前記携帯可能な電子デバイスの空中での動作に基づくものであり、前記動作センサが６軸動作検出を提供するとともに、少なくとも３つの回転動作センサと少なくとも３つの加速度計を具える、受信ステップと；
前記携帯可能な電子デバイスのオリエンテーションを決定するために前記検出動作データを利用するステップであって、当該利用ステップは：
前記少なくとも３つの回転動作センサから検出動作データを受信するステップと；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの角速度および拡張センサデータの第１の部分を提供するステップと；
前記少なくとも３つの加速度計から検出動作データを受信するステップと；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの加速を提供するステップと；
前記キャリブレートした検出動作データから重力の影響を取り除き、拡張センサデータの第２の部分を提供するステップであって、前記拡張センサデータの第１および第２の部分を組み合わせて前記携帯可能な電子デバイスのオリエンテーションモデルを作成する、提供ステップとを具え、
前記拡張センサデータの第１および第２の部分を処理して単一パッケージの拡張センサデータを提供し、前記拡張センサデータはデバイス座標からワールド座標に座標変換することによって提供される、利用ステップと；
前記携帯可能な電子デバイス上で前記携帯可能な電子デバイスの動作が生じる間にアクティブである特定の動作モードを決定するステップであって、当該特定の動作モードが前記携帯可能な電子デバイスの動作において可能な複数の異なる動作モードのうちの一つである、決定ステップと；
前記携帯可能な電子デバイスの上で前記拡張センサデータから一又はそれ以上の身振りを認識するステップであって、当該一又はそれ以上の身振りが前記携帯可能な電子デバイスのアクティブ動作モードにおいて認識できる複数の身振りセットから認識され、前記携帯可能な電子デバイスの異なる動作モードが各々アクティブなときに、認識可能な異なる身振りセットを有する、認識ステップと；
前記一又はそれ以上の認識された身振りに基づいて前記携帯可能な電子デバイスの一又はそれ以上の状態を変更するステップであって、前記携帯可能な電子デバイスのディスプレイスクリーンの出力の変更を含む、変更ステップと；
を具えることを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記一又はそれ以上の身振りが、震えるゼスチュアを具え、当該震えるゼスチュアが前記携帯可能な電子デバイスの動作を一の角度方向において表わし、少なくともバックグラウンドノイズレベルを超えるスレッシュホールドレベルである振幅を具える、前記拡張センサデータから検出される、ことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記一又はそれ以上の身振りが、タップゼスチュアを具え、当該タップゼスチュアが、前記携帯可能な電子デバイスの動作を空中の前記デバイスの動きのパルスとして表わす前記拡張センサデータから検出される、ことを特徴とする方法。
【請求項４】
請求項３に記載の方法において、前記タップゼスチュアのパルスが、前記拡張センサデータにおけるバックグラウンドノイズを超えるピークを調べることによって検出され、前記タップゼスチュアが、少なくとも前記バックグラウンドノイズを超えるスレッシュホールドレベルにある振幅を有し、前記ゼスチュアに対応する前記携帯可能な電子デバイスの動きの終端において前記拡張センサデータ中のスパイクを除去するステップを具える、ことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記一又はそれ以上の身振りが円形ゼスチュアを具え、当該円形ゼスチュアが空中におけるほぼ円形の動作で前記携帯可能な電子デバイスの動作を表わす前記拡張センサデータから検出されることを特徴とする方法。
【請求項６】
請求項１に記載の方法において、前記一又はそれ以上の身振りが特性ゼスチュアを具え、当該特性ゼスチュアが空中における前記携帯可能な電子デバイスの少なくとも一の線形動作と、少なくとも一のほぼ円形の動作の組み合わせを表わす前記拡張センサデータから検出されることを特徴とする方法。
【請求項７】
請求項１に記載の方法が更に：
前記携帯可能な電子デバイスの動作コントロールがユーザによって活性化されたことを表示する入力モード制御信号を受信するステップと；
前記入力モード制御信号の受信に応答して、前記拡張センサデータを前記一又はそれ以上の身振りの認識に使用できるようにする、前記携帯可能な電子デバイスの動作モードを入力するステップと；
前記携帯可能な電子デバイスによって決定された終了事象に基づいて前記携帯可能な電子デバイスの動作モードを終了するステップと；
を具えることを特徴とする方法。
【請求項８】
請求項７に記載の方法が更に、前記動作センサから取り出した追加の検出動作データを、前記携帯可能な電子デバイスが動作モードにない間に、当該追加の検出動作データから身振りを検出する目的で無視するステップと、を具えることを特徴とする方法。
【請求項９】
請求項８に記載の方法において、前記携帯可能な電子デバイスが、前記入力モード制御信号がユーザによって前記動作コントロールをアクティブに維持されている場合のみ前記動作モードにとどまり、前記動作モードは、終了モード制御信号の受信に応じて終了し、当該終了モード制御信号が前記動作コントロールをユーザが解除することに対応する、ことを特徴とする方法。
【請求項１０】
請求項７に記載の方法において、前記携帯可能な電子デバイスが、前記ユーザが動作コントロールをクリックした後は動作モードにとどまり、前記終了事象が前記拡張センサデータ内の予め規定した終了ゼスチュアを検出していることを特徴とする方法。
【請求項１１】
請求項７に記載の方法において、前記携帯可能な電子デバイスが、前記ユーザが動作コントロールをクリックした後は動作モードにとどまり、前記終了事象が一又はそれ以上の身振りの一つの完了であることを特徴とする方法。
【請求項１２】
請求項１に記載の方法において、前記検出した一又はそれ以上の身振りを用いて、前記携帯可能な電子デバイスのディスプレイスクリーン上で画像を移動させ、当該画像が前記拡張センサデータで検出した前記携帯可能な電子デバイスの動く方向に対応する方向に移動することを特徴とする方法。
【請求項１３】
身振り検出用携帯可能な電子デバイスにおいて：
前記携帯可能な電子デバイスの空中での動きに基づいて検出したデータを提供する複数の動作センサであって、６軸の動作検出を提供し、少なくとも３つの回転動作センサと少なくとも３つの加速度計を具える、複数の動作センサと；
ディスプレイスクリーンと；
一又はそれ以上のプロセッサと；を具え、
当該一又はそれ以上のプロセッサが：
前記動作センサによって提供された検出されたデータから取り出した動作センサデータを受け取って；
前記動作センサデータを利用して、
前記少なくとも３つの回転動作センサから動作センサデータを受信し；
前記動作センサデータをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの角速度および拡張センサデータの第１の部分を提供し；
前記少なくとも３つの加速度計から動作センサデータを受信し；
前記動作センサデータをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの加速を提供し；
前記キャリブレートした動作センサデータから重力の影響を取り除き、拡張センサデータの第２の部分を提供し、前記拡張センサデータの第１および第２の部分を組み合わせて前記携帯可能な電子デバイスのオリエンテーションモデルを作成することによって、前記携帯可能な電子デバイスのオリエンテーションを決定し；
前記拡張センサデータの第１および第２の部分を処理して単一パッケージの拡張センサデータを提供し、前記拡張センサデータはデバイス座標からワールド座標に座標変換することによって提供され；
前記携帯可能な電子デバイスに動きが生じている間アクティブである特定の動作モードを決定し、ここで、当該特定の動作モードが前記携帯可能な電子デバイスの動作中に入手可能な複数の異なる動作モードの一つであり；
前記拡張センサデータから一又はそれ以上の身振りを認識し、ここで、当該一又はそれ以上の身振りが前記携帯可能な電子デバイスのアクティブな動作モードにおいて認識可能な複数の身振りセットから認識され、前記携帯可能な電子デバイスの前記異なる動作モードが各々アクティブである場合に、認識可能な異なる身振りセットを有し；
前記ディスプレイスクリーンの出力を変更することを含めて、前記一又はそれ以上の認識された身振りに基づいて前記携帯可能な電子デバイスの一又はそれ以上の状態を変更する；
ことを特徴とする携帯可能な電子デバイス。
【請求項１４】
請求項１３に記載の携帯可能な電子デバイスにおいて、前記一又はそれ以上の身振りが震えるゼスチュアを具え、当該震えるゼスチュアが、前記携帯可能な電子デバイスの動作を一の角度方向において表わし、少なくともバックグラウンドノイズレベルを超えるスレッシュホールドレベルである振幅を具える、前記拡張センサデータから検出されることを特徴とする携帯可能な電子デバイス。
【請求項１５】
請求項１３に記載の携帯可能な電子デバイスにおいて、前記一又はそれ以上の身振りがタップゼスチュアを具え、当該タップゼスチュアが、前記携帯可能な電子デバイスの動作を空中の前記デバイスの動きのパルスとして表わす前記拡張センサデータから検出され、前記タップゼスチュアのパルスが、少なくともバックグラウンドノイズレベルを超えるスレッシュホールドレベルにある振幅を有し、前記拡張センサデータ中の振幅のスパイクが、携帯可能な電子デバイスの空中での動きの終端で発生した場合に、タップジェスチュアとして除去される、ことを特徴とする携帯可能な電子デバイス。
【請求項１６】
請求項１３に記載の携帯可能な電子デバイスにおいて、前記一又はそれ以上の身振りが円形ゼスチュアを具え、当該円形ゼスチュアが空中におけるほぼ円形の動作で前記携帯可能な電子デバイスの動作を表わす前記拡張センサデータから検出されることを特徴とする携帯可能な電子デバイス。
【請求項１７】
請求項１３に記載の携帯可能な電子デバイスにおいて、前記一又はそれ以上の身振りが特性ゼスチュアを具え、当該特性ゼスチュアが、空中における前記携帯可能な電子デバイスの少なくとも一の線形動作と、少なくとも一のほぼ円形の動作の組み合わせを表わす前記拡張センサデータから検出されることを特徴とする携帯可能な電子デバイス。
【請求項１８】
請求項１３に記載の携帯可能な電子デバイスが更に、前記携帯可能な電子デバイスのユーザによって活性化できる動作コントロールを具え、前記一又はそれ以上のプロセッサの少なくとも一つが：
前記携帯可能な電子デバイスの動作コントロールがユーザによって活性化された事を表示する入力モード制御信号を受信し；
前記入力モード制御信号の受信に応答して、前記拡張センサデータを前記一又はそれ以上の身振りの認識に使用できるようにする、前記携帯可能な電子デバイスの動作モードを入力し；
前記プロセッサによって決定された終了事象に基づいて前記携帯可能な電子デバイスの動作モードを終了し；
前記少なくとも一つのプロセッサが、前記動作センサから取り出した追加の検出動作データを、前記携帯可能な電子デバイスが動作モードにない間に当該追加の検出動作データから身振りを検出する目的で無視する；
ことを特徴とする携帯可能な電子デバイス。
【請求項１９】
請求項１８に記載の携帯可能な電子デバイスにおいて、少なくとも一のプロセッサが、前記入力モード制御信号がユーザによって前記動作コントロールをアクティブに維持されている場合のみ前記動作モードで携帯可能な電子デバイスを維持し、前記少なくとも一のプロセッサが前記動作コントロールをユーザが解除することに対応して動作モードを終了する、ことを特徴とする携帯可能な電子デバイス。
【請求項２０】
請求項１４に記載の携帯可能な電子デバイスにおいて、前記検出した一又はそれ以上の身振りを用いてディスプレイスクリーン上で画像を移動させ、当該画像が前記拡張センサデータで検出した前記携帯可能な電子デバイスの動く方向に対応する方向に移動することを特徴とする携帯可能な電子デバイス。
【請求項２１】
携帯可能な電子デバイスの動作検出デバイスを用いてユーザが実行するゼスチュアを認識する方法において：
前記デバイスの動きを表わすデバイス座標における動作センサデータを受け取るステップであって、当該動作センサデータが前記動作検出デバイスの複数の動作センサから受信され、前記動作センサが複数の回転動作センサと複数の線形動作センサを具える、受け取りステップと；
前記携帯可能な電子デバイスのオリエンテーションを決定するために検出動作データを利用するステップであって、当該利用するステップは：
少なくとも３つの回転動作センサから検出動作データを受信するステップと；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの角速度および拡張センサデータの第１の部分を提供するステップと；
少なくとも３つの加速度計から検出動作データを受信するステップと；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの加速を提供するステップと；
前記キャリブレートした検出動作データから重力の影響を取り除き、拡張センサデータの第２の部分を提供するステップであって、前記拡張センサデータの第１および第２の部分を組み合わせて前記携帯可能な電子デバイスのオリエンテーションモデルを作成する、提供ステップとを具え、
前記拡張センサデータの第１および第２の部分を処理して単一パッケージの拡張センサデータを提供し、前記拡張センサデータはデバイス座標からワールド座標に座標変換することによって提供される、利用するステップと；
前記デバイス座標中の拡張センサデータをワールド座標の拡張センサデータに変換するステップであって、前記デバイス座標中の拡張センサデータが前記デバイス内の基準フレームに対する前記デバイスの動きを表わしており、前記ワールド座標中の拡張センサデータが前記デバイスに外付けした基準フレームに対する前記デバイスの動きを表わしている、変換ステップと；
前記ワールド座標における前記拡張センサデータからゼスチュアを検出するステップと；
を具えることを特徴とする方法。
【請求項２２】
請求項２１に記載の方法が更に、前記拡張センサデータを、前記ワールド座標からローカルワールド座標へ変換するステップを具え、前記ローカルワールド座標の前記拡張センサデータが前記デバイスのユーザの身体に対する動きを表わしていることを特徴とする方法。
【請求項２３】
請求項２２に記載の方法において、前記ローカルワールド座標が前記ワールド座標を更新して、前記動作検出デバイスが、所定のスレッシュホールドを下回る速度で移動するときの前記動作検出デバイスの動きを追跡することで決定されることを特徴とする方法。
【請求項２４】
請求項２３に記載の方法において、前記所定のスレッシュホールドを下回る速度が、前記動作検出デバイスの角速度と前記動作検出デバイスの先鋭速度から得られることを特徴とする方法。
【請求項２５】
請求項２３に記載の方法において、前記ゼスチュアを行う間に上記所定のスレッシュホールドを上回る速度での前記動作検出デバイスの移動に応答して、前記ローカルワールド座標が前記ゼスチュアを行う間固定されたままであり、前記ワールド座標が前記ゼスチュアが開始したことを決定する前に少なくとも前記動作検出デバイスの最終位置とオリエンテーションで固定される、ことを特徴とする方法。
【請求項２６】
請求項２１に記載の方法において、前記ゼスチュアが、前記拡張センサデータからの一又はそれ以上のデータ特徴を抽出して、前記一又はそれ以上のデータ特徴を処理して前記ゼスチュアを検出することによって検出され、前記データ特徴が、前記データ特徴を含む前記拡張センサデータの一部の上に前記拡張センサデータより少ないデータポイントを具える、ことを特徴とする方法。
【請求項２７】
請求項２６に記載の方法において、前記少なくとも一又はそれ以上のデータ特徴が：
前記拡張センサデータの最大振幅あるいは最小振幅と；
正の値から負の値へ、あるいは負の値から正の値への、前記拡張センサデータのゼロクロスと；
前記拡張センサデータのグラフによって規定される、インターバルの積分値と；
を具えることを特徴とする方法。
【請求項２８】
請求項２６に記載の方法において、前記ゼスチュアが、一又はそれ以上のデータ特徴について以下の一又はそれ以上の観点から前記拡張センサデータを調べることによって検出され、前記観点が：
一又はそれ以上の動作特徴間の相対的タイミング；
前記一又はそれ以上のデータ特徴間の相対的振幅；
であることを特徴とする方法。
【請求項２９】
請求項２６に記載の方法において、前記ゼスチュアが、前記一又はそれ以上のデータ特徴の各々をタイミング付け、かつ、互いに対して所定の時間内に生じるデータ特徴に応じて前記ゼスチュアを認識することによって、検出されることを特徴とする方法。
【請求項３０】
請求項２６に記載の方法において、前記複数のデータ特徴が前記拡張センサデータ中のピークであり、前記ゼスチュアが：
前記拡張センサデータ中の最大ピークのみを選択すること；及び
前記拡張センサデータ中の最大ピークの前のピークを調べること；
のいずれか一方によって、検出されることを特徴とする、方法。
【請求項３１】
請求項２１に記載の方法が更に、ゼスチュアを検出した後に前記動作検出デバイスの機能をトリガするステップであって、前記機能が前記検出したゼスチュアに関連しているトリガステップと、更に当該関連する機能をトリガする前に少なくとも一の中断条件を試験するステップとを具え、前記中断条件が合う場合は前記関連する機能がトリガされず、前記中断条件が前記ゼスチュアの前及び後に最小時間があり、その時間に前記動作検出デバイスの有意な動きが生じないことを特徴とする方法。
【請求項３２】
請求項２１に記載の方法において、前記ゼスチュアを検出するステップが、前記動作検出デバイスの動作の間の角速度を前記動作検出デバイスの線形加速度と関係づけるステップと、当該関係を用いて実質的にすべて回転である前記動作検出デバイスのノイズ動作を除去するステップと、を具えることを特徴とする方法。
【請求項３３】
携帯可能な電子デバイスにおける身振りを検出するシステムにおいて：
動作センサデータを提供する複数の動作センサであって、複数の回転動作センサと複数の線形動作センサを具える動作センサと；
少なくとも一の特徴検出器であって、各特徴検出器が前記動作センサデータから取り出した関連するデータ特徴を検出するよう動作し、各データ特徴が前記動作センサデータの特性であり、各特徴検出器が前記検出したデータ特徴を表す一又はそれ以上の特徴値を出力する、特徴検出器と、
少なくとも一のゼスチュア検出器であって、当該ゼスチュア検出器が前記一又はそれ以上の特徴値に基づいてゼスチュア検出器に関連するゼスチュアを検出するよう動作する、ゼスチュア検出器と；を具えており、
前記動作センサデータを利用して、
前記少なくとも３つの回転動作センサから動作センサデータを受信し；
前記動作センサデータをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの角速度および拡張センサデータの第１の部分を提供し；
前記少なくとも３つの加速度計から動作センサデータを受信し；
前記動作センサデータをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの加速を提供し；
前記キャリブレートした動作センサデータから重力の影響を取り除き、拡張センサデータの第２の部分を提供し、前記拡張センサデータの第１および第２の部分を組み合わせて前記携帯可能な電子デバイスのオリエンテーションモデルを作成することによって、前記携帯可能な電子デバイスのオリエンテーションを決定し；
前記拡張センサデータの第１および第２の部分を処理して単一パッケージの拡張センサデータを提供し、前記拡張センサデータはデバイス座標からワールド座標に座標変換することによって提供される、ことを特徴とするシステム。
【請求項３４】
請求項３３に記載のシステムにおいて、前記少なくとも一の特徴検出器が前記拡張センサデータにおけるピークを検出するよう動作するピーク特徴検出器を具えることを特徴とするシステム。
【請求項３５】
請求項３３に記載のシステムにおいて、前記少なくとも一の特徴検出器が前記拡張センサデータにおけるゼロクロスを検出するよう動作するゼロクロス特徴検出器を具え、前記ゼロクロスが動作軸における動作の方向の変化を表わすことを特徴とするシステム。
【請求項３６】
請求項３３に記載のシステムにおいて、前記拡張センサデータが更に前記携帯可能な電子デバイスの追加センサからのセンサデータを具えており、当該追加センサが、温度センサ、圧力センサ、及びコンパスのうちの少なくとも一つを具えることを特徴とするシステム。
【請求項３７】
請求項３３に記載のシステムにおいて、前記回転動作センサが、ジャイロスコープ又はコンパスを具え、前記線形動作センサが加速度計を具えることを特徴とするシステム。
【請求項３８】
複数の身振り反応性動作モードで動作可能な携帯型電子デバイスにおいて、少なくとも１つの認識可能な身振りが各身振り反応性動作モードに対応しており、当該電子デバイスが：
少なくとも３軸周りの回転速度および少なくとも３軸に沿った線形加速度を検出する一セットの動作センサと；
ディスプレイと；
前記電子デバイスの物理的動きに反応する前記動作センサの少なくとも１つから取り出した動作データおよび前記電子デバイスのその時のアクティブ動作モードに基づいて、前記物理的動きに相当する少なくとも１つのタップゼスチュアを認識し、前記電子デバイスの少なくとも１つの動作モードを変更することがきる処理ロジックと；を具えており、
前記検出した動作データを利用して、
前記少なくとも３つの回転動作センサから検出動作データを受信し；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの角速度および拡張センサデータの第１の部分を提供し；
前記少なくとも３つの加速度計から検出動作データを受信し；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの加速を提供し；
前記キャリブレートした検出動作データから重力の影響を取り除き、前記拡張センサデータの第２の部分を提供し、前記拡張センサデータの第１および第２の部分を組み合わせて前記携帯可能な電子デバイスのオリエンテーションモデルを作成することによって、前記携帯可能な電子デバイスのオリエンテーションを決定し、
前記拡張センサデータの第１および第２の部分を処理して単一パッケージの拡張センサデータを提供し、前記拡張センサデータはデバイス座標からワールド座標に座標変換することによって提供されるように構成されていることを特徴とする電子デバイス。
【請求項３９】
身振りを検出するための携帯可能な電子デバイスにおいて、当該携帯可能な電子デバイスが：
前記携帯可能な電子デバイスの空中での動きに基づいて検出したデータを提供する複数の動作センサであって、６軸の動作検出を提供し、少なくとも３つの回転動作センサと少なくとも３つの加速度計を具える、複数の動作センサと；
ディスプレイスクリーンと；
一又はそれ以上のプロセッサと；を具え、
当該一又はそれ以上のプロセッサが：
前記動作センサによって提供された検出されたデータから取り出した検出動作データを受け取って；
前記検出動作データを利用して、
前記少なくとも３つの回転動作センサから検出動作データを受信し；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの角速度および拡張センサデータの第１の部分を提供し；
前記少なくとも３つの加速度計から前記検出動作データを受信し；
前記検出動作データをキャリブレートして精度を上げて、前記携帯可能な電子デバイスの加速を提供し；
前記キャリブレートした検出動作データから重力の影響を取り除き、前記拡張センサデータの第２の部分を提供し、前記拡張センサデータの第１および第２の部分を組み合わせて前記携帯可能な電子デバイスのオリエンテーションモデルを作成することによって、前記携帯可能な電子デバイスのオリエンテーションを決定し；
前記拡張センサデータの第１および第２の部分を処理して単一パッケージの拡張センサデータを提供し、前記拡張センサデータはデバイス座標からワールド座標に座標変換することによって提供され；
前記携帯可能な電子デバイスに動きが生じている間アクティブである特定の動作モードを決定し、ここで、当該特定の動作モードが前記携帯可能な電子デバイスの動作中に入手可能な複数の異なる動作モードの一つであり；
前記拡張センサデータから一又はそれ以上の身振りを認識し、ここで、当該一又はそれ以上の身振りが前記携帯可能な電子デバイスのアクティブな動作モードにおいて認識可能な複数の身振りセットから認識され、前記携帯可能な電子デバイスの前記異なる動作モードが各々アクティブである場合に、認識可能な異なる身振りセットを有し；
前記ディスプレイスクリーンの出力を変更することを含めて、前記一又はそれ以上の認識された身振りに基づいて前記携帯可能な電子デバイスの一又はそれ以上の状態を変更し；
動作制御ボタンを具え、当該動作制御ボタンがアクティブである場合に前記携帯可能な電子デバイスを動作モードにし、前記携帯可能な電子デバイスが動作モードである場合には、前記携帯可能な電子デバイスの動作は身振りとして検出することができ、前記携帯可能な電子デバイスが動作モードでない場合には、前記携帯可能な電子デバイスの動作は身振りとして検出することができないことを特徴とする携帯可能な電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願のクロスリファレンス
本出願は、２００８年１月１８日に出願された、米国暫定特許出願第６１／０２２，１４３号“Ｍｏｔｉｏｎ  Ｓｅｎｓｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ”の利益を請求する。
【０００２】
この出願は、２００８年４月２１日に出願された、米国特許出願第１２／１０６，９２１号（４３６０Ｐ）“Ｉｎｔｅｒｆａｃｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｓ  ａｎｄ  Ｍｏｔｉｏｎ  Ｓｅｎｓｏｒｓ  ｏｆ  ａ  Ｄｅｖｉｃｅ”の継続出願である。
【０００３】
これらはすべて、全体的にここに引用されている。
【０００４】
技術分野
本発明は一般的に動作検出デバイスに関するものであり、特に、動作検出デバイスの動作センサに基づく身振り認識に関する。
【背景技術】
【０００５】
加速度計やジャイロスコープといった慣性センサなどの動作センサは、電子デバイスに使用することができる。加速度計は線形加速度の測定に使用することができ、ジャイロスコープは移動する物体の加速度の測定に使用することができる。動作センサ市場には、移動電話、ビデオゲームコントローラ、ＰＤＡ、移動インターネットデバイス（ＭＩＤ）、パーソナルナビゲーションデバイス（ＰＮＤ）、デジタルスチルカメラ、デジタルビデオカメラ、などが含まれる。例えば、携帯電話は加速度計を使用して空間内のデバイスの傾きを検出することができ、これによって映像をその傾斜に応じた方向に表示することができる。ビデオゲームコンソールのコントローラに加速度計を使用して、ゲームに入力を提供するハンドコントローラの動きを検出することができる。写真や映像の安定化は、レンズあるいは画像センサがシフトして手振れをジャイロスコープで検出して補正するものであり、低性能あるいは中程度の性能のデジタルカメラにおいても重要な特性である。全地球測位システム（ＧＰＳ）と位置情報サービス（ＬＢＳ）のアプリケーションは、デバイスの正確な位置決めに依存しており、ＧＰＳ信号が減衰したり入らなかったりした場合、あるいはＧＰＳ位置検出の精度を上げるためには、動作センサがしばしば必要である。
【０００６】
現在の携帯用（移動）電子デバイスのほとんどが、「ピーク検出」あるいは定常状態検出を行う加速度計のような、非常に基本的な動作センサのみを使用する傾向にある。例えば、現在の移動電話は、定常状態での重力測定を用いて検出できるデバイスの傾きを検出するのに加速度計を用いている。このような単純な検出は、例えば、ジャイロスコープなどのより高機能なアプリケーションや、正確なタイミング必要条件があるその他のアプリケーションには使用することができない。デバイスにジャイロスコープを具えることなくしては、デバイスの傾きと加速が確実に検出されない。また、デバイスの動きは常に直線的、あるいは地面に平行であるわけではないので、より正確な検出には、加速度計あるいはジャイロスコープを使用した様々な移動軸の測定が必要である。
【０００７】
より高機能な動作センサは、通常、電子デバイスには使用されていない。ある種の動きを伴う動作の検出といった特定のアプリケーションでは、より高機能の動作センサを必要とする試みがなされてきた。しかし、これらの試みのほとんどが失敗するか、製品として十分なロバスト性がなかった。これは、動作を取り出す動作センサの使用が複雑なためである。例えば、ジャイロスコープを使用する場合、デバイスの傾斜あるいは動きを特定することは些細なことではない。画像安定化用、位置検出用、あるいはその他のより高機能なアプリケーション用に動作センサを使用するには、移動センサを掘り下げて理解することが必要であり、これが、動作検出の設計を非常に難しいものにしている。
【０００８】
更に、消費者市場用の平凡な携帯可能なコンシューマ電子デバイスは、低価格であることが求められる。更に、ジャイロスコープや加速度計といった最も信頼性が高く正確な慣性センサは、通常多くのコンシューマ製品には通常高価すぎる。低価格の慣性センサを用いても、携帯電子デバイスに多くの動作検出特性をもたらすことができる。しかしながら、このような低価格のセンサの精度は、より洗練された機能性についての要因を制限するものである。
【０００９】
このような機能性には、例えば動作検出デバイスに実装された身振り認識が含まれる。これはユーザがデバイスを動かすことによってコマンドあるいはデータを入力することができ、さもなければデバイスにユーザの動きを検出させることができる。例えば、ゼスチュア認識によって、ユーザは単に動く、震える、デバイスをトントン叩くことによって、特定のデバイス機能を容易に選択することができる。以前の動作検出デバイス用のゼスチュア認識は、通常、ジャイロスコープ又は加速度計からのデータなどの生のセンサデータを分析するステップと、この生のデータを探すハードコーディングパターンか、あるいは、このデータからパターンを学習するマシン学習技術（ニューラルネットワーク又はサポートベクターマシンなど）の使用と、からなっていた。いくつかの場合は、ゼスチュアを学習するのにまずマシン学習を使用することと、次いで、このマシン学習アルゴリズムの結果をハードコーディングして最適化することによって、マシン学習を用いたゼスチュアの検出に必要な処理リソースを減らすことができる。
【００１０】
これらの従来技術にはいくつかの問題点がある。問題の一つは、携帯可能なデバイスに実装した場合そのアプリケーションと機能性においてゼスチュアが非常に限定されていることである。もう一つの問題は、ゼスチュアが時には信頼性を持って認識されないことである。例えば、生のセンサデータは、ゼスチュアを調べるのに最も良いデータではない。なぜなら、このデータは、特定のゼスチュアについてユーザによって大きく変わることがあるからである。このような場合、一人のユーザが学習システムをトレーニングするかあるいはそのユーザのゼスチュア用にパターン検出器をハードコード化すると、別のユーザがこのデバイスを使用するときにこれらのゼスチュアは正しく認識されないからである。この一例は、腕の回転運動である。あるユーザは、手首を回転させることなくそのデバイスを用いて空中でパターンを描くことができるが、別のユーザはそのパターンを描きながら手首を回転させることがある。結果としての生データは、ユーザによって非常に異なって見えるであろう。典型的な解決策は、あるゼスチュアの可能性のあるバリエーションをすべてハードコード化するか、トレーニングすることであるが、このソリューションは処理時間に費用がかかるうえ、実装が困難である。
【００１１】
従って、変化に富み、ロバスト性が高く、正確なゼスチュア認識を低コストの慣性センサで提供するシステムと方法が多くのアプリケーションで望まれている。
【発明の概要】
【００１２】
本出願の発明は、身振り認識を提供する移動デバイスに関する。一の態様では、携帯可能な電子デバイスを制御するために動作を処理する方法であり、デバイスの動作センサから取り出した検出した動作データをデバイスで受信するステップを具え、この検出動作データが携帯可能な電子デバイスの空中での動きに基づいている。動作センサは、６軸の動作検出を提供し、少なくとも３つの回転動作センサと、少なくとも３つの加速度計を具える。デバイスの動きが生じる間は特定の動作モードがアクティブになるよう決定され、この特定の動作モードは、デバイスの動作中に入手可能な複数の異なる動作モードの一つである。一又はそれ以上の身振りが動作データから認識され、この一又はそれ以上の身振りは、デバイスがアクティブ動作モードにあるとき認識可能な身振りセットから認識される。デバイスの様々な動作モードは、各々、アクティブであるときに、認識可能な別の身振りセットを有する。このデバイスの一又はそれ以上の状態は一又はそれ以上の認識された身振りに基づいて変化する。この変化にはデバイスのディスプレイ画面の出力を変えることが含まれる。
【００１３】
本発明の別の態様においては、動作検出デバイスを使用しているユーザによって実行されたゼスチュアを認識する方法であって、デバイスの動作を表わすデバイス座標における動作センサデータを受信するステップを具え、複数の回転動作センサと線形動作センサを具える動作検出デバイスの複数の動作センサから受信される。この動作センサデータはデバイス座標からワールド座標へ変換される。デバイス座標中の動作センサデータはデバイスの基準フレームに対するデバイスの動作を示すものであり、ワールド座標中の動作センサデータは、デバイス外の基準フレームに対するデバイスの動作を示す。ゼスチュアは、ワールド座標中の動作センサデータから検出される。
【００１４】
本発明の別の態様では、ゼスチュア検出システムが、動作センサデータを提供する複数の動作センサを具え、この動作センサは、複数の回転動作センサと線形動作センサを具える。少なくとも一の特徴検出器がそれぞれ動作して、動作センサデータから取り出した関連するデータ特徴を検出し、各データ特徴は、動作センサデータの特性であり、各特徴検出器は、検出したデータ特徴を示す特徴値を出力する。少なくとも一のゼスチュア検出器がそれぞれ動作して、特徴値に基づいて、ゼスチュア検出器に関連するゼスチュアを検出する。
【００１５】
本発明の態様は、移動可能なあるいはハンドヘルドの動作検出デバイスの慣性センサから、よりフレキシブルで、多様性があり、ロバスト性が高く正確な身振り認識を提供する。複数の回転動作センサと線形動作センサが使用されており、デバイスの様々な動作モードで、適宜のゼスチュアセットを認識することができる。検出した動作データにワールド座標を使用することで、ゼスチュアを入力する間のユーザによる動作のわずかな違いを、多大な追加の処理を行うことなく同じゼスチュアとして認識することができる。動作センサデータにデータ特徴を使用することによって、すべての動作センサデータを処理する場合に比べて少ない処理でゼスチュアを認識することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の使用に適した動作検出デバイスを示すブロック図である。
【図２】図２は、本発明の使用に適した動作処理ユニットの一実施例を示すブロック図である。
【図３】図３Ａ及び３Ｂは、ゼスチュアを行っているユーザによって動作しているときの、空中におけるデバイスの様々な動きを図形にして示す図である。
【図４】図４Ａ及び４Ｂは、拡張センサデータを用いて出現した図３Ａ及び３Ｂの動作を図形にして示す図である。
【図５】図５Ａ乃至５Ｃは、動作検出デバイスを用いたときの様々なユーザのポジションを図形にして示す図である。
【図６】図６Ａ乃至６Ｃは、動作データを検出する様々な座標システムを示す図である。
【図７】図７は、身振りを認識する増加データを生成する本発明のシステムを示す図である。
【図８】図８Ａ及び８Ｂは、ユーザがゼスチュアを入力しようとしているか否かを表示するデバイスの回転運動を示す図である。
【図９】図９は、携帯可能な電子デバイスの動作モードに基づいてゼスチュアを認識する本発明の方法を示すフローチャートである。
【図１０】図１０Ａ及び１０Ｂは、震えるゼスチュア例の動作データを示す図である。
【図１１】図１１Ａ乃至１１Ｆは、ゼスチュア認識のための最大振幅を示す図である。
【図１２】図１２Ａ及び１２Ｂは、タップゼスチュアの２つの例を示す図である。
【図１３】図１３Ａ及び１３Ｂは、動作データ中の特定のスパイクを排除することによるタップゼスチュアの検出を示す図である。
【図１４】図１４は、円ゼスチュアの一例の動作データを示す図である。
【図１５】図１５は、文字ゼスチュアの例を示す図である。
【図１６】図１６は、ゼスチュア用に処理できるデバイスの動きに関するデータ特徴セットの一例を示す図である。
【図１７】図１７は、データ特徴を含むゼスチュア認識及び処理システムの一例を示すブロック図である。
【図１８】図１８は、図１６に示すゼスチュア認識システムの機能分布の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
本発明は、一般的に、動作検出システムに関し、特に、動作検出デバイスの動作センサを用いた身振りの認識に関する。以下の記載は、当業者が本発明を製造し使用することができるようになされており、本出願のコンテキストと要求において、提供されている。好ましい実施例の様々な変形例と、ここに記載されている一般的原理と特徴は、当業者には自明である。従って、本発明はここに示す実施例に限定することを意図するものではなく、ここに述べた原理と特徴に合致した最も広範囲に一致するものである。
【００１８】
本発明の特徴をより詳細に述べるために、以下の記載と共に図１乃至１８を参照されたい。
【００１９】
図１は、本発明の使用に適した身振り検出システム又はデバイス１０の一例を示すブロック図である。デバイス１０は、ユーザによって空中で移動できる携帯デバイスなどのデバイス又は装置として実装することができ、その空中での動作及び／又はオリエンテーションを検出することができる。例えば、このような携帯デバイスは、移動電話、パーソナルデジタルアシスタント（ＰＤＡ）、ビデオゲームプレーヤ、ビデオゲームコントローラ、ナビゲーションデバイス、モバイルインターネットデバイス（ＭＩＤ）、パーソナルナビゲーションデバイス（ＰＮＤ）、デジタルスチルカメラ、デジタルビデオカメラ、双眼鏡、望遠レンズ、あるいはその他の携帯可能なデバイス、あるいはこれらのデバイスの一又はそれ以上の組み合わせである。いくつかの実施例では、デバイス１０は、入力デバイスに加えて、自身のディスプレイ及びその他の出力デバイスを具えている、内蔵型デバイスである。その他の実施例では、携帯可能なデバイス１０は、例えばネットワークコネクションを介して移動可能なあるいは携帯可能なデバイス１０と通信できる、デスクトップコンピュータ、電子テーブルトップデバイス、サーバコンピュータ、などの非携帯可能なデバイスと共働してのみ機能する。
【００２０】
デバイス１０は、アプリケーションプロセッサ１２と、メモリ１４と、インターフェースデバイス１６と、動作処理ユニット２０と、アナログセンサ２２と、デジタルセンサ２４と、を具える。アプリケーションプロセッサ１２は、一又はそれ以上のマイクロプロセッサ、中央処理ユニット（ＣＰＵ）、あるいはデバイス１０でソフトウエアプログラムを稼働するその他のプロセッサであっても良い。例えば、メニューナビゲーションソフトウエア、ゲーム、カメラ機能コントロール、ナビゲーションソフトウエア、電話又は広範囲にわたるその他ソフトウエア及び機能インターフェースなどの様々なソフトウエアアプリケーションプログラムが考えられる。いくつかの実施例では、複数の異なるアプリケーションを単一のデバイス１０に設けることができ、これらの実施例のいくつかは、複数のアプリケーションをデバイス１０で同時に稼働させることができる。いくつかの実施例では、デバイス１０に複数の異なる動作モードを実装しており、アプリケーションプロセッサが各モードによって異なるアプリケーションセットをデバイス上で使用することができ、別のゼスチュアセットを検出することができる。この点については、図９を参照して後により詳細に述べる。
【００２１】
アプリケーションプロセッサ１２と共に使用するために、電子メモリ、あるいはハードディスク、光ディスクといったその他のストレージ媒体などのコンピュータで読み取り可能な媒体に多重ソフトウエアを設けることができる。例えば、オペレーティングシステム層をデバイス１０に提供して、システムリソースをリアルタイムで制御及び管理することができ、アプリケーションソフトウエアの機能とその他の層を有効にし、デバイス１０のその他のソフトウエアと機能にアプリケーションプログラムをインターフェースすることができる。動作アルゴリズム層は、動作センサ及びその他のセンサからの生のセンサデータを低レベルで処理する動作アルゴリズムを提供できる。センサデバイス駆動層は、デバイス１０のハードウエアセンサとインターフェースを取るソフトウエアを提供することができる。
【００２２】
これらの層のいくつかあるいはすべては、プロセッサ１２のソフトウエア１３において提供することができる。例えば、いくつかの実施例では、プロセッサ１２は、動作処理ユニット（ＭＰＵ（商標））２０（以下に述べる）からのセンサ入力に基づいて、ここで述べているゼスチュア処理と認識を実行することができる。その他の実施例では、いくつかの層（低レベルソフトウエア層など）がＭＰＵに提供されており、使用するアプリケーション及び／又はハードウエアに適しているため、ＭＰＵ２０とプロセッサ１２の間で処理を分割することができる。例えば、ＭＰＵ２０による処理を行っている実施例では、ＡＰＩ層をプロセッサ１２の層１３に実装して、プロセッサ１２で稼働しているアプリケーションプログラムのステータスをＭＰＵ２０並びにＡＰＩコマンド（例えば、バス２１を介して）に通信させて、ＭＰＵ２０がここに述べるゼスチュア処理及び認識のいくつかあるいはすべてを実行できるようにする。動作検出デバイスにおけるＡＰＩ実装のいくつかの実施例は、同時継続中の米国特許出願第１２／１０６，９２１号に記載されている。この出願は全体がここに引用されている。
【００２３】
デバイス１０は又、メモリ１４（ＲＡＭ、ＲＯＭ、フラッシュ、その他）及びインターフェースデバイス１６など、アプリケーションプロセッサ１２を支援する構成部品を具える。インターフェースデバイス１６は、ディスプレイスクリーン、オーディオスピーカ、ボタン、タッチスクリーン、ジョイスティック、スライダ、ノブ、プリンタ、スキャナ、カメラ、コンピュータネットワークＩ／Ｏデバイス、その他の接続周辺機器等、ユーザに入力及び／又は出力を提供する様々なデバイスである。例えば、多くの実施例に設けられている一のインターフェースデバイス１６は、ユーザが見ることができる画像を出力するディスプレイスクリーン１６ａである。メモリ１４とインターフェースデバイス１６は、バス１８によってアプリケーションプロセッサ１２に接続することができる。
【００２４】
デバイス１０は又、動作処理ユニット（ＭＰＵ（商標））２０を具えている。ＭＰＵは、デバイス１０（あるいはその一部）の空中での動作を測定する動作センサを具えるデバイスである。例えば、ＭＰＵは、一又はそれ以上の回転軸と一又はそれ以上のデバイスの加速軸を測定することができる。好ましい実施例では、少なくともいくつかの動作センサがジャイロスコープ及び／又は加速度計などの慣性センサである。いくつかの実施例では、これらの機能を実行する構成要素が単一パッケージに集積されている。ＭＰＵ２０は動作センサデータを、例えば、１２Ｃ又はシリアル周辺インターフェース（ＳＰＩ）バスなどのインターフェースバス２１に通信することができる。このバスには、アプリケーションプロセッサ１２も接続されている。一の実施例では、プロセッサ１２がバス２１のコントローラ又はマスタである。いくつかの実施例では、バス１８をインターフェースバス２１と同じバスにすることができる。
【００２５】
ＭＰＵ２０は、一又はそれ以上の回転動作センサ２６と一又はそれ以上の線形動作センサ２８を含む動作センサを具える。例えば、いくつかの実施例では慣性センサが用いられており、ここでは回転動作センサがジャイロスコープであり、線形動作センサが加速度計である。ジャイロスコープ２６は、ジャイロスコープ２６を収納しているデバイス１０の角速度（又はその一部）を測定することができる。特定の実施例で検出が望まれる動作に応じて、通常１乃至３のジャイロスコープが設けられている。加速度計２８は、加速度計２８を収納しているデバイス１０の線形加速度（又はその一部）を測定することができる。特定の実施例で検出が望まれる動作に応じて、通常１乃至３の加速度計が設けられている。例えば、３つのジャイロスコープ２６と３つの加速度計２８が使用されている場合、６軸検出デバイスが提供され、全部で６の自由度で検出を行うことができる。
【００２６】
いくつかの実施例では、ジャイロスコープ２６及び／又は加速度計２８を、Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ（ＭＥＭＳ）として実装することができる。ストレージレジスタなどの動作センサ２６及び２８からのデータの支援ハードウエアも提供されている。
【００２７】
いくつかの実施例では、ＭＰＵ２０もハードウエア処理ブロック３０を具えていてもよい。ハードウエア処理ブロック３０も、ハードウエアで動作センサデータの処理を行うロジック又はコントローラを具えていても良い。例えば、いくつかの実施例ではブロック３０によって、及び／又は、ここに述べたゼスチュア認識の一部あるいはすべてによって、動作アルゴリズム、あるいはアルゴリズムの一部を実装することができる。このような実施例では、アプリケーションプロセッサ１２用にＡＰＩを設けて、上述したように所望のセンサ処理タスクをＭＰＵ２０に通信することができる。いくつかの実施例は、ブロック３０にハードウエアバッファを設けて、動作センサ２６及び２８から受信したセンサデータを保存することができる。以下に詳細に述べるように、いくつかの実施例ではボタンなどの動作コントロール３６を設けて、電子デバイス１０へのゼスチュアの入力を制御することができる。
【００２８】
ＭＰＵ２０の一例を、図２を参照して以下に述べる。本発明の使用に適したＭＰＵのその他の例は、２００７年７月６日に出願された、同時継続中の米国特許出願第１１／７７４，４８８号“Ｉｎｔｅｇｒａｔｅｄ  Ｍｏｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）Ｗｉｔｈ  ＭＥＭＳ  Ｉｎｅｒｔｉａｌ  Ｓｅｎｓｉｎｇ  ａｎｄ  Ｅｍｂｅｄｄｅｄ  Ｄｉｇｉｔａｌ  Ｅｌｅｃｔｒｏｎｉｃｓ”に記載されている。この出願は全体がここに引用されている。デバイス１０におけるＭＰＵ２０の好適な実装は、Ｓｕｎｎｙｖａｌｅ，ＣＡ所在のＩｎｖｅｎｓｅｎｓｅ，Ｉｎｃ．社から入手することができる。
【００２９】
デバイス１０は、その他のタイプのセンサも具えていても良い。アナログセンサ２２及びデジタルセンサ２４を用いて、デバイス１０がおかれている環境周辺の追加のセンサデータを提供することができる。例えば、一又はそれ以上のバロメータ、コンパス、温度センサ、光センサ（カメラセンサ、赤外線センサ等）、超音波センサ、無線周波数センサ、あるいはその他のタイプのセンサといったセンサを設けることができる。図に示す実装例では、デジタルセンサ２４が、インターフェースバス２１に直接的にセンサデータを提供しており、一方で、アナログセンサはアナログ−デジタルコンバータ（ＡＤＣ）３４にセンサデータを提供して、デジタル形式でのセンサデータをインターフェースバス２１に供給している。図１に示す例では、ＡＤＣ３４がＭＰＵ２０に設けられており、ＡＤＣ３４が変換したデジタルデータをＭＰＵのハードウエアプロセッサ３０あるいはバス２１に提供するようにしている。その他の実施例では、ＡＤＣ３４をデバイス１０のどこに実装しても良い。
【００３０】
図２は、ここに述べる発明に好適に使用できる動作処理ユニット（ＭＰＵ）２０の一実施例を示す。図２０のＭＰＵ２０は、演算論理装置（ＡＬＵ）３６を具えており、センサデータ上で処理を行う。ＡＬＵ３６は、プログラムＲＡＭ（ランダムアクセスメモリ）３７に保存されているあるいはこのプログラムから取り出した一又はそれ以上のプログラムによって知的に制御されている。ＡＬＵ３６は、ジャイロスコープ２６及び加速度計２８並びに温度センサ３９といったその他のセンサなどの動作センサからのダイレクトメモリアクセス（ＤＭＡ）ブロック３８を制御することができる。ＤＭＡブロック３８は、ＡＬＵ３６又はその他の処理ユニットのセンサデータを個別に読み取ることができる。いくつかのあるいはすべてのセンサは、ＭＰＵ２０内に、あるいはＭＰＵ２０に外付けして設けることができる。例えば、加速度計２８は、ＭＰＵ２０の外付けしたものが図２に示されている。ＤＭＡ３８は、読取あるいは書き込み動作のステータスに関する中断をＡＬＵへ提供することができる。ＤＭＡ３８は、センサから読み取ったセンサデータをデータＲＡＭ４０に提供して保存することができる。データＲＡＭ４０は、ＡＬＵ３６にデータを提供して処理を行い、ＡＬＵ３６は、処理済みデータを含む出力をデータＲＡＭ４０に提供して保存する。バス２１（これも図１に示す）は、データＲＡＭ４０及び／又はＦＩＦＯバッファ４２の出力に接続されており、アプリケーションプロセッサ１２がＭＰＵ２０によって読みだされた及び／又は処理されたデータを読み取ることができる。
【００３１】
ＦＩＦＯ（先入れ、先出し）バッファ４２をセンサデータの保存用ハードウエアバッファとして使用することができる。このバッファには、バス２１を介してアプリケーションプロセッサ１２がアクセスできる。バッファ４２などのハードウエアバッファの使用が、以下のいくつかの実施例に記載されている。例えば、マルチプレクサ４４を用いて、生のセンサデータをＦＩＦＯバッファ４２に書き込むＤＭＡ３８か、ＦＩＦＯバッファ４２に処理したデータ（例えば、ＡＬＵ３６で処理したデータ）を書き込むデータＲＡＭ４０かを選択することができる。 
【００３２】
従って図２に示すようなＭＰＵ２０は、ここに述べるゼスチュア処理及び認識を含む動作センサデータの処理の一又はそれ以上の実装をサポートしている。例えば、ＭＰＵ２０は、生のセンサデータを完全に処理することができ、プログラムＲＡＭ３７のプログラムがＡＬＵ３６を制御して、センサデータを知的に処理してアプリケーションプロセッサ１２とそこで稼働しているアプリケーションプログラムに高レベルのデータを提供する。あるいは、ＡＬＵ３６を用いて生のセンサデータをＭＰＵ２０で予め処理する、あるいは部分的に処理をすることができ、この場合処理したデータをアプリケーションプロセッサ１２を用いてＭＰＵ２０によって取り出して、結果としての高レベルの情報をアプリケーションプログラムへ提供する前に、アプリケーションプロセッサ１２で追加の低レベルの処理を行うようにしても良い。あるいは、生のセンサデータをＭＰＵ２０で単にバッファしておき、アプリケーションプロセッサ１２によってこの生のセンサデータを低レベルの処理用に取り出すようにしても良い。いくつかの実施例では、同じデバイス１０で稼働している異なるアプリケーションあるいはアプリケーションプログラムを用いて、これらの処理方法のうちの異なるものをこのアプリケーションあるいはプログラムに最も適したものとして使用することができる。
【００３３】
動作ゼスチュアの認識
図３Ａ及び３Ｂは、ユーザがゼスチュアを行うことによって生じる、空中におけるデバイス１０の様々な動作を示す図である。ここで使用されている「ゼスチュア」又は「身振り」は、予め決められたデバイスの動作あるいは動作セットであり、デバイスによる認識が生じたときに、デバイスの一又はそれ以上の関連する機能をトリガする。この動作は、震える又は円を描く動作といった、含まれている動作セットであってもよく、あるいは、特定の軸あるいは角度においてデバイスを傾けるといったデバイスの単純な動きであってもよい。関連する機能には、例えば、デバイスのディスプレイスクリーン上に表示されたリストあるいはメニューを特定の方向にスクロールすること、表示されたアイテム（ボタン、メニュー、コントロール）を選択する及び／又は操作すること、所望のコマンド又はデータ（文字、その他など）といった入力をプログラム又はデバイスのインターフェースに提供すること、デバイスの主電源を入れるあるいは切ること、などが含まれる。
【００３４】
本発明の一態様は、座標システムを変更する、あるいはその他の物理的パラメータに変換することによって、デバイス１０の生のセンサデータを予め処理して、結果として「拡張データ」が、ユーザの動きを小さく何気ない違いに関係なく、すべてのユーザについて同じに見えるようにする。次いで、この拡張データを用いて、学習システムあるいはハードコードパターン認識者を訓練し、よりロバスト性の高いゼスチュア認識を行う。これは、低コストの慣性センサからの動作センサデータを用いて、反復可能でありロバスト性のあるゼスチュア認識を提供する費用対効果のある方法である。
【００３５】
本発明のいくつかの実施例では、ジャイロスコープ及び／又は加速度計などの慣性センサを使用している。ジャイロスコープはデバイス座標における角速度を出力し、加速度計はデバイス座標における線形加速度と重力による傾きの和を出力する。ジャイロスコープと加速度計の出力は、ユーザによって、又は同じユーザが使用している間でも、ユーザが同じゼスチュアを行うあるいは繰り返しているにもかかわらず、しばしば同じではない。例えば、ユーザがデバイスを縦方向に回転させる場合に、Ｙ軸ジャイロスコープがその動きを検出することができるが、Ｚ軸ジャイロスコープは、ユーザの手首の方向性の違いを用いてその動きを検出する。
【００３６】
デバイスの傾きに応じて（この傾きは加速度計とＸ軸ジャイロスコープから抽出される）ジャイロスコープ信号に様々に応答するようにシステムをトレーニングすることは、非常に困難である。しかし、デバイス座標からワールド座標に座標変換することが、この問題を簡単にする。異なるデバイスの傾きを提供している二人のユーザが、デバイス外のワールドに対して下側にデバイスを回転させている。ワールド座標において拡張データの角速度を使用する場合、センサデータは両方のユーザに対して同じに見るように処理されているので、システムはより簡単にトレーニングするあるいはハードコード化することができる。
【００３７】
図３Ａ及び３Ｂに示す例では、ゼスチュアとしてあるいはゼスチュアの一部として、デバイス１０が「下にさがる」動きをする間に、一人のユーザは図３Ａに示す線形移動を使用し、別のユーザは図３Ｂに示す傾いた動きを用いるであろう。
【００３８】
図３Ａに示す動作を検出する場合、ジャイロスコープは大きな検出信号を有しており、加速度計は重力に応答するであろう。図３Ｂの動作を検出する場合は、ジャイロスコープには検出信号がなく、加速度計は線形加速度に応答するが、これは重力とは大きく異なって見える。両ユーザは、同じ動きをしていると考えるが、これは、彼らがそれぞれ、下に動いているデバイスの先端を見ているからである。
【００３９】
２つのスタイルの動きを行って、まず、デバイス座標からワールド座標へセンサデータを変換して拡張データを提供することによって、同じに見せることができる。図４Ａは、ピボット点を中心にした回転運動の場合を示しており、ここでは、デバイス１０が外側に突出してデバイス先端１００の線形動作を見つけている。この場合、ゼスチュア認識者への入力として使用されている増強したデータは、回転情報をモーメントアームに対してスケーリングすることによって得たデバイス先端の線形軌道１０１である。ジャイロスコープの導関数から得た角加速度を重力の影響を取り除いた後、加速度計から得た線形化速度と比較することによって、このモーメントアームを概算することができる。図４Ｂは、線形移動の場合を示しており、デバイス１０の先端１０２の線形軌道１０１は、デバイス上で加速度計を読み出すことによって直接得ることができる。従って、デバイスが回転しているか線形に移動しているかにかかわらず、線形軌道１０１を示す拡張データは同じになり、この動作にマッピングされたゼスチュアを動作のタイプから認識することができ、デバイスの一又はそれ以上の関連する機能を選択するのに使用することができる。
【００４０】
いくつかの場合、ワールド座標のみに関連するゼスチュアの認識が、所望の増大されたデータを生成しなくてもよい。携帯可能なデバイス１０を使用する場合、ユーザは、ワールド座標に対して動作ゼスチュアを行うことを意図していないことがある。例えば、図５Ａ、５Ｂ及び５Ｃに示すように、ユーザは、きちんと座るゼスチュアを行って（図５Ａ）、後にベッドに横たわる（図５Ｃ）動作を行う。この例では、きちんと座る縦のゼスチュアは、後にベッドにあるときのワールド座標に対して水平方向に行われる。別の例では、一のユーザは真っ直ぐ座っている間（図５Ａ）、縦（ワールド座標に対して）のゼスチュアを行い、別のユーザは、前かがみ（図５Ｂ）の間にゼスチュアを行い、真っ直ぐ座っているときよりも、ワールド座標に対してデバイス１０を水平に近づけるようにしている。
【００４１】
これらの問題を避ける一つの方法は、ユーザがしようとしていることを分析することである。ユーザは、自身の身体に対してゼスチュアを行っており、これが縦方向あるいは水平方向である。これは、「人体座標」と呼ばれる。「人体座標」を表わすもう一つの方法は、「ローカルワールド座標」である。図６Ａ、６Ｂ、及び６Ｃは、ワールド座標（図６Ａ）、デバイス座標（図６Ｂ）、及びローカルワールド座標（図６Ｃ）を示す。
【００４２】
しかしながら、ユーザの身体にセンサをつけずに、直接ローカルワールド座標を測定することはできない。同じ課題を遂行する間接的な方法は、ゼスチュアが意図されているときに、ユーザの身体に対してデバイスがユーザによる特定の方法で保持されていることを仮定して、ユーザの身体位置をデバイス位置に基づいて概略のローカルワールド座標と推定できるという方法である。デバイスがゆっくり移動する場合、ローカルワールド座標システムが更新されて、デバイスが移動している間に移動し、ローカルワールド座標システムがユーザの身体の方向を追跡する。ゆっくりとした動作は、ユーザはなんらゼスチュアを入力しようとすることなく、単にデバイスを見ているか調整しているかであると仮定し、ローカルワールド座標システムはユーザのオリエンテーションを追跡しなければならない。ゆっくりとした動きは、所定のスレッシュホールド速度あるいはその他の動作関連スレッシュホールドの下での動きであると決定することができる。例えば、デバイス１０の角速度（ジャイロスコープのデータから決定される）は、スレッシュホールド角速度の下であり、デバイス１０の線形速度（加速度計のデータから決定される）は、スレッシュホールド線形化速度の下であり、動きはローカルワールド座標システムをデバイスの動きを用いて更新するのに十分にゆっくりとしていると考えられる。代替的に、角速度あるいは線形速度の一方をこの目的のために調べることができる。
【００４３】
しかしながら、デバイスが早く動く場合（スレッシュホールドを超えて）、この動きは、ゼスチュアを入力するものであると仮定され、ローカルワールド座標システムは、デバイスが移動している間固定され続ける。従って、ゼスチュア用のローカルワールド座標システムは、ゼスチュアが始まる直前にローカルワールド座標システムとなり、この仮定は、ゼスチュアが始まる前にデバイスのスクリーンをユーザが直接的に見ており、ユーザがゼスチュアの間ほとんど同じ位置にいることである。従って、デバイスが静止しているか、ゆっくり移動している間に「ワールド座標」が更新され、デバイスが速く移動するときは、ゼスチュアは最後に更新された「ワールド座標」あるいは「ローカルワールド座標」に対して分析される。
【００４４】
このようにして、デバイス座標の動作センサデータをデバイスのセンサから受信する。デバイス座標のデータは、デバイスの基準フレームに対するデバイスの動作を表わしている。デバイス座標のデータは、ローカルワールド座標などのワールド座標において、拡張動作センサデータに変換される。ここで、ワールド座標のデータは、デバイス外の基準フレームに対するデバイスの動作を示す。ローカルワールド座標の場合は、基準フレームはユーザの身体である。ゼスチュアは、ワールド座標の動作センサデータからより精度良くかつ高いロバスト性で検出される。
【００４５】
図７は、身振りを認識するための上述の増強されたデータを生成する本発明のシステム１５０を示すブロック図である。システム１５０は、デバイス１０、例えばプロセッサ１２及び／又はＭＰＵ２０に実装されており、ジャイロスコープ２６と加速度計２８からの生のセンサデータを用いて、デバイスの動作を決定し、その動作から増強されたデータを取り出して、動作データからより精度よくゼスチュアの認識ができるようにしている。
【００４６】
システム１５０は、ジャイロスコープ２６から生センサデータを受信するジャイロスコープキャリブレーションブロック１５２を具え、データをキャリブレートして精度を上げる。キャリブレーションブロック１５２の出力はデバイス座標１７０の角速度であり、システム１５０によって提供される増強されたセンサデータの一部として考えることができる。
【００４７】
システム１５０は、また、加速度計キャリブレーションブロック１５４を具え、加速度計２８からの生センサデータを受信して、このデータをキャリブレートして精度を上げる。例えば、このようなキャリブレーションは、特定の加速度計あるいはデバイス１０について決定した既知の定数を減算するあるいは加算することである。重力除去ブロック１５６は、このキャリブレートした加速度計データを受信して、センサデータから重力の影響を取り除き、デバイス１０の線形加速度を表わすデータを残す。この線形加速度データ１８０は、システム１５０によって適用された増強センサデータの一部である。重力の除去は、以下に述べるように、その他の構成部品から得た重力加速度を使用している。
【００４８】
重力基準ブロック１５８でも、キャリブレーションブロック１５４からキャリブレートした加速度データを受け取って、ジャイロスコープキャリブレーションブロック１５２と３Ｄ集積ブロック１６０に重力ベクトルを提供する。３−Ｄ集積ブロック１６０は、重力基準ブロック１５８から重力ベクトルを、キャリブレーションブロック１５２からキャリブレートしたジャイロスコープデータを受け取る。３−Ｄ集積ブロックは、このジャイロスコープデータと加速度データを組み合わせて、ワールド座標を用いてデバイスのオリエンテーションモデルを作る。このデバイスオリエンテーションの結果的モデルは、四元数／回転行列１７４であり、システム１５０によって提供された増強したセンサデータの一部である。行列１７４を用いて、現存のデバイス座標からセンサデータのワールド座標を提供することができる。
【００４９】
座標変換ブロック１６２は、キャリブレーションブロック１５２からキャリブレートしたジャイロスコープデータ、並びに、３−Ｄ集積ブロック１６０からモデルデータを受け取って、ワールド座標におけるデバイスの角速度１７２を作る。これは、システム１５０によってできた増強されたセンサデータの一部である。座標変換ブロック１６４は、除去重力ブロック１５６からのキャリブレートした線形加速度データ、並びに、３−Ｄ集積ブロック１６０からモデルデータを受け取って、ワールド座標におけるデバイスの線形加速度１７６を作る。これは、システム１５０によってできた増強されたセンサデータの一部である。
【００５０】
デバイス座標における重力加速度データ１７８は、システム１５０の増強されたセンサデータの一部として作られる。加速度データ１７８は、四元数／回転行列１７４によって提供され、重力加速度データを得るためのジャイロスコープデータと加速度データとの組み合わせである。加速度データ１７８は、除去重力ブロック１５６にも設けられており、加速度データから重力加速度を除去できるようにしている（線形加速度データ１８０を得るため）。
【００５１】
一例では、ジャイロスコープデータと加速度データを組み合わせる３−Ｄ集積ブロックに従って、ワールド座標を用いてデバイスのオリエンテーションモデルを作る。その他の方法を他の実施例に使用することもできる。
【００５２】
デバイスのオリエンテーションは、四元数形式と、回転行列形式の両方で保存される。四元数を更新するには、まず、前回の回転行列を用いて生の加速度データをワールド座標に回転させる：
ａ’＝  Ｒａ
【００５３】
ベクトルａは、生の加速時計データを含み、Ｒはデバイスのオリエンテーションを表す回転行列であり、ａ’は、ワールド座標における結果としての加速度タームである。フィードバックタームは、重力を表すベクトルａと、ａ’の外積から生じる：
ｆ  ＝  ｋ（ａ  Ｘ  ｇ）
【００５４】
定数ｋは時定数であり、加速度データを使用するタイムスケールを決定する。四元数更新タームは、現四元数に乗算することで、以下の式から生成される：
ｑａｃｃｅｌｅｒｏｍｅｔｅｒ  ＝  ｆｑ
【００５５】
同様に、四元数積分を用いてジャイロスコープデータから更新タームが生成される：
ｑｇｙｒｏｓｃｏｐｅ  ＝  ０．５ｑｗ（ｄｔ）
【００５６】
ベクトルｗは、生のジャイロスコープデータを含み、ｑは、現在の四元数であり、ｄｔは、センサデータのサンプリング時間である。四元数は以下のように更新される：
ｑ’  ＝  ｎｏｒｍａｌｉｚｅ（ｑ  ＋  ｑａｃｃｅｌｅｒｏｍｅｔｅｒ    ＋  ｑｇｙｒｏｓｃｏｐｅ  ）
【００５７】
この新しい四元数が、「現在の四元数」になり、回転行列に変換される。加速度計とジャイロスコープからの角速度は以下のようにして得られる：
Ｗｄｅｖｉｃｅ    ＝  ｑ−１  （ｑａｃｃｅｌｅｒｏｍｅｔｅｒ  ＋  ｑｇｙｒｏｓｃｏｐｅ  ／（０．５ｄｔ））
【００５８】
ワールド座標における角速度は以下の通り得られる：
ｗｗｏｒｌｄ  ＝  Ｒｗｄｅｖｉｃｅ
【００５９】
ワールド座標における線形加速度は以下の通り得られる：
ａｗｏｒｌｄ  ＝  ａ’  −  ｇ
【００６０】
デバイス座標における線形加速度は以下の通り得られる：
Ａｄｅｖｉｃｅ＝  Ｒ−１  ａｗｏｒｌｄ
【００６１】
改善されたゼスチュア認識用のその他の技術
動作データにおける特徴の相対的タイミングを用いて、ゼスチュア認識を改良することができる。異なるユーザがゼスチュアを互いに対してより速くあるいはより遅く行うことがあり、これがゼスチュア認識を困難にすることがある。いくつかのゼスチュアでは、センサデータの特別な特徴（すなわち、特性）が、特定のシークエンスで、特定のタイミングを持って生じることが必要である。例えば、ゼスチュアは、順次生じる３つの特徴として規定することができる。一のユーザについて、特徴２は、特徴１の１００ｍｓ後に生じ、特徴３は特徴２の２００ｍｓ後に生じるであろう。このゼスチュアをよりゆっくり行っている別のユーザでは、特徴２は、特徴１の２００ｍｓ後に生じ、特徴３は特徴２の４００ｍｓ後に生じる。必要なタイミング値がハードコード化されている場合は、様々な異なるレンジの値を保存する必要が生じ、生じ得るユーザの変化とシナリオを全てカバーすることが困難となるであろう。
【００６２】
ゼスチュアの特徴タイミングにおける変化を考慮したよりフレキシブルなゼスチュア認識を提供するために、本発明の一態様では、相対的タイミング必要条件を用いてゼスチュアを認識している。従って、動作データ中の異なる特徴間のタイミングは、そのゼスチュアで使用されている基本時間ピリオドの倍数及び／又は一部に基づいて表し、検出することができる。この基本時間ピリオドは、例えば、２つのデータ特徴間の時間であっても良い。例えば、相対タイミングを使用する場合、ゼスチュアの特徴１と特徴２との間にタイミングｔ１が存在するものは何であれ、特徴２及び３の間のタイミングをほぼ二倍のタイミングｔ１であると規定することができる。これによって、異なるユーザが、異なるレートで、ＣＰＵ時間内に高価なＤｙｎａｍｉｃ  Ｔｉｍｅ  Ｗａｒｐｉｎｇなどのアルゴリズムを必要とすることなくゼスチュアを行うことができる。
【００６３】
動作センサデータの相対的なピークあるいは振幅を使用して、ゼスチュア認識を改善することもできる。上述したようにゼスチュアが異なるユーザによって異なるタイミングで行われる場合のタイミングの特徴の変化と同様に、一人のユーザが、ゼスチュアを行う、あるいは、別のユーザより一層大きいエネルギィ、又は速度、又は早さを伴う、又は、異なるタイミングで変化を伴う特徴を提供する。例えば、第１のユーザが動作を行って、ジャイロスコープによって検出される第１の特徴を、秒あたり１００度として生じさせ、ジャイロスコープによって検出される第２の特徴を、秒当たり２００度として生じさせる。一方で、第２のユーザが動作を行って、第１の特徴を、秒あたり２００度として生じさせ、第２の特徴を、秒当たり４００度として生じさせる。認識を行うために３つの値をハードコード化するには、システムをあらゆる可能性のある組み合わせトレーニングする必要がある。本発明の一の態様は、複数の基本ピーク大きさあるいはその部分を、ゼスチュア中の互いに関連するピーク値（最大あるいは最小）として特徴を表現している。このように、ゼスチュアの第1のピークが、振幅ｐ１として検出されると、第２のピークは、このゼスチュアの要求を満たすよう認識するには、ほぼ２倍の振幅ｐ１を有する必要がある。
【００６４】
ゼスチュア認識におけるノイズの排除
図８Ａ及び８Ｂは、デバイス１０の回転運動を示す図であり、ユーザがゼスチュアを入力しようとしているかどうかを示している。ゼスチュア認識における生のセンサノイズは、良好な動作センサでは通常無視できるが、人間の動きからのノイズは有意なことがある。このノイズは、ユーザの意図しない手の震えによって、デバイス上でのユーザのグリップの調整から、あるいはその他の偶発的な動作から生じることがあり、大きな角運動とスパイクがセンサデータに現れることがある。非常に繊細なゼスチュアについては、ゼスチュアを意図しない偶発的な動きと、関連するデバイス機能をトリガするゼスチュアを意図した動きを区別することは困難である。
【００６５】
検出した動作がゼスチュアを意図したものであるかどうかをより正確に決定する本発明の一方法は、角度ゼスチュアを線形加速度に関連づけることである。線形加速度の存在は、手の中でデバイスを調整しているだけではなく、ユーザが手首あるいは肘を使ってデバイスを動かしていることをを示している。
【００６６】
図８Ａは、線形加速度が存在しないデバイス１０の純粋な回転１９０を示しており、ユーザが例えばデバイス上で手首を調整することから生じる。図８Ｂは、付随する線形動作１９２に関連する回転１９０を表しているデバイス１０を示す図であり、これは、意図的なゼスチュアにより対応している。線形加速度を生じるデバイスの動きの存在は、ジャイロスコープセンサデータを微分すること、角速度を得ること、及び角速度を線形加速度と比較することによって検出することができる。それぞれの比率は、それを中心にデバイスが回転しているモーメントアーム１９４を表わすことができる。このパラメータをチェックとして有することで、ゼスチュアエンジンは、ユーザがデバイスを調整することによって生じる全て（あるいはほぼ全て）の回転である動作を排除することができる。
【００６７】
別の方法では、ゼスチュアを含むことがある動作センサデータを、ゼスチュアが検出されない間に取得したバックグラウンドノイズフロアと比較する。このノイズフロアは、手が震えるユーザによって生じた動作、あるいは、例えば汽車の中など、多くのバックグラウンド動作がある環境によって生じた動作を除去することができる。ノイズに起因してゼスチュアがトリガされることを防ぐためには、動作センサデータの信号対ノイズ比が、予め決められた条件、あるいは現在検出された条件に基づいて動的に検出されたノイズフロア値（例えば、現在のノイズレベルは、所定の時間動作センサデータをモニタすることによって検出することができる）を上回らなければならない。バックグラウンドノイズが大きい場合は、ユーザはゼスチュアを送出することができるが、そのゼスチュアを実行するときにより多くのパワーを用いる必要がある。
【００６８】
ゼスチュア及び動作モード
図９は、携帯可能な電子デバイス１０の動作モードに基づいてゼスチュアを認識する本発明の方法２００を示す図である。方法２００は、デバイス１０にハードウエア及び／又はソフトウエア、例えば、プロセッサ１２及び／又はＭＰＵ２０で実装することができる。
【００６９】
この方法は、ステップ２０２で始まり、ステップ２０３で検出した動作データを、上述した複数のジャイロスコープ（又は他の回転センサ）と加速時計を含むセンサ２６及び２８が受け取る。この動作データは、空中におけるデバイス１０の動きに基づいている。ステップ２０４では、デバイス１０のアクティブ動作モード、すなわち、動作データが受信された時にアクティブであった動作モードが検出される。
【００７０】
デバイスの「動作モード」は、そのモードに基づくユーザに対する機能と出力セットを提供し、ここでは、デバイス１０上で複数の動作モードを得ることができ、各動作モードがユーザに対して異なる機能セットを提供している。いくつかの実施例では、各動作モードによって異なるアプリケーションセットをデバイスで使用することができる。例えば、一の動作モードは、電話モードであっても良く、電話機能用のアプリケーションプログラムを提供するが、一方別の動作モードは、デバイス１０のディスプレイスクリーン１６ａで使用する写真あるいは映像ビューアを提供することができる。いくつかの実施例では、動作モードは、ゲーム、画像捕捉及び処理、位置検出（例えば、同時継続出願第１２／１０６，９２１号に記載されている）など、広くアプリケーションに対応している。代替的に、別の実施例では、動作モードをその他の機能又はアプリケーションプログラムに基づいて、より狭く規定することができる。
【００７１】
アクティブ動作モードは、動作データを受信した場合の方法２００の目的のために選択された一動作モードであり、このモードは、一又はそれ以上のデバイス動作特性に基づいて決定することができる。例えば、このモードは、モード選択ボタンあるいはコントロールの事前選択、あるいはユーザからの検出した身振り、あるいは空中におけるデバイス１０のその他の動き及び／又はオリエンテーション、といったユーザ入力に基づいて決めることができる。このモードは、代替的にあるいは追加で、以前生じた事象あるいは現在生じている事象に基づいて決めることができる。例えば、デバイス１０が電話コールあるいはテキストメッセージを受け取ったとき、および、ユーザがこのコールに答えている間に、携帯電話動作モードは自動的にアクティブ動作モードに指定される。
【００７２】
ステップ２０５で、ゼスチュアセットが選択され、このゼスチュアセットはアクティブ動作モードにおいて認識することができる。好ましい実施例では、デバイス１０の少なくとも２つの異なる動作モードが、そのモードがアクティブであるときに認識可能な別のゼスチュアセットを有する。例えば、一の動作モードは、特性ゼスチュアと震えるゼスチュアを取り入れようとするが、別の動作モードは、震えるゼスチュアのみを取り入れようとする。
【００７３】
ステップ２０６では、受信した動作データ（及びその他の関係するデータ）を分析して、このようなゼスチュアが存在して正しく認識されている場合、一又はそれ以上の身振りを動作データにおいて認識する。認識されたゼスチュアは、アクティブ動作モードで入手できるゼスチュアセットに含まれる。ステップ２０７では、デバイス１０の一又はそれ以上のステータスが、認識された身振りに基づいて変化する。このデバイスのステータスの変更は、ステータス又は表示、機能の選択、及び／又は機能又はプログラムの実行又は活性化の変更であっても良い。例えば、ディスプレイスクリーン１６ａの更新、電話の呼び出しへの応答、別のデバイスへのデータの送信、新しい動作モードの入力、その他の、ゼスチュア認識の基礎になる、デバイスの一又はそれ以上の機能を実行することができる。このプロセス２００は、ステップ２０８において完了する。
【００７４】
デバイス１０の使用に適した身振りタイプの例を以下に述べる。
【００７５】
震えるゼスチュア
震えるゼスチュアは、通常、ユーザが動作検出デバイスを一の角度方向に意図的に振動させて、デバイスの一又はそれ以上の関連する機能をトリガすることを含む。例えば、このデバイスは、一のジャイロスコープ軸のみに現れるピークを伴って、「ヨー方向」に振動することがある。ユーザがある交差軸エラーを伴って振動すると（例えば、一のジャイロスコープ軸以外の別の軸における動作）、別の軸に沿ってもピークが生じる。この２つのピークは同時に生じ、ゼロクロス（振動している間の動作検出デバイスの方向の変化に対応する）も同時に生じる。３本の回転軸（ロール、ピッチ、及びヨー）があるので、各軸を別の振えコマンドとして使用することができる。
【００７６】
例えば、図１０Ａは、振えの大部分がヨー軸に生じるヨー振えゼスチュアを形成する線形ヨー振え動作データ２１４を示すグラフ２１２である。ピッチ軸における振幅が小さい交差軸動作がピッチ動作データ２１６を提供しており、ここでは、ヨーとピッチの出力が同相でありピークとゼロクロスが同時に生じる。図１０Ｂは、振えの大部分がピッチ軸にあるピッチ振えゼスチュアを形成するピッチ振え動作データ２１８を示すグラフ２１７である。ヨー動作データ２１９で示すように、ピッチ軸動作と同相である交差軸動作がヨー軸においても生じる。
【００７７】
図１０Ａ乃至１０Ｆは、ゼスチュア認識の振幅ピークをグラフで示す。振えゼスチュアは、ユーザによる様々な意図的なデバイス１０の振えであってもよい。振動ゼスチュアとして認めるのに必要な振えは、振幅が少なくともバックグラウンドノイズレベルより大きいスレッシュホールドレベルにあり、意図的な振えが意図的でない振えから区別されることが必要である。振えゼスチュアは、所定の数の方向変更あるいはゼロクロス（例えば、角度のあるあるいは線形の移動）を有することと規定することができる。振えゼスチュアは、追加の大きな振幅パルスが検出されない所定の時間ピリオドが経過したら完了すると規定することができる。
【００７８】
図１０Ａでは、振えゼスチュア２２０の基本波形の一例が示されており、これは、軸の周りのデバイス１０の時計回り方向の回転（ジャイロスコープで測定される）を含み、次いで、この軸の周りをデバイスが反時計回り方向に回転する（その他の振えゼスチュアの実施例は、類似のピークを作る、異なる軸に沿った線形移動を含むものでも良い）。ピーク（縦線２２２と２２４で示す）と、回転が方向を変換するゼロクロス（縦線２２６で示す）を探す特徴検出器によってこのゼスチュアが処理される。この例では、角回転において正のピークと負のピークの両方が検出され、両方ともスレッシュホールド振幅を超えている場合にゼスチュアをトリガできる。
【００７９】
図１０Ｂには、図１０Ａと同様のゼスチュア２２８が示されているが、このゼスチュアは、ユーザによってより素早く実行され、ピーク２３０と２３２、及びゼロクロス２３４がより速く、及び互いにより近くで行われている。この場合に使用する従来の標準的な技術は、Ｄｙｎａｍｉｃ  Ｔｉｍｅ  Ｗａｒｐｉｎｇであり、ここでは時間内にデータをワープさせたり引き延ばしたりすること、及び、結果を予め規定したゼスチュアデータのデータベースと比較することによって、大量に処理される。大量処理が必要となるため、これはほとんどの携帯可能なデバイスで実行できる解決策ではない。本発明では、これに代えて、ピーク及びゼロクロスなどの各特徴が生じる時期を選ぶことができる。例えば、各タイマーが一の特徴に関連しているデータ特徴用の一揃いのタイマーを用いることができる。この特徴が互いに所定の時間内に生じた場合はゼスチュアが認識されたと考えられ、トリガされるであろう。このことは、Ｄｙｎａｍｉｃ  Ｔｉｍｅ  Ｗａｒｐｉｎｇと同じ結果をもたらすが、処理がより少なく、メモリの使用が最小で済む。
【００８０】
図１０Ｃは、ゼスチュア２４０を形成する動作データを示しており、これは図１０Ａ及び１０Ｂに示すものより大きなパワーで実行される、すなわち、ピーク２４２と２４４がより高い（より大きな振幅を有する）。また、同じグラフに重畳されている破線カーブ２４６で示すように、誤ったゼスチュアが現れる。この誤ったゼスチュアは、ユーザの動きがあまり正確でないために、所望のゼスチュアに対する誤った軸で検出された動作データである。誤ったゼスチュアは最初に上側スレッシュホールド２４８と交差しているため、ゼスチュアエンジンがうまく実装されていない場合は、最初にトリガが生じることがある。従って、本発明は、デバイスの動きが終わってゼロになる（あるいは、スレッシュホールドの下でゼロになる）まで、ゼスチュアのトリガを遅らせ、次いで、検出された最初のピークが正しいピークではないかも知れないため、ゼスチュア認識用に最も高いピークを選択する。
【００８１】
図１０Ｄは、動作データ中の最も高いピークを単純に検出することが当てにならない例を示している。動作データ２５０中の最も高いピーク２５２は、所望のゼスチュアに対して誤った方向にある。すなわち、ピークが正でなく負である。このように最も高いピークが正しいピークではなく、ゼスチュアが認識されないので、図１０Ｃに示す例に用いる方法はこの例では機能しない。このような場合の誤検出を減らすために、本発明は、少なくとも一の以前のピーク認識方法を覚えておき、最も高いピークが同じ軸の以前のピークを有するかどうかを決定することができる。この以前のピークは、この場合ピーク２５２であり、このピークを調べてゼスチュアの基準を満たしているかどうかを決定する。
【００８２】
図１０Ｅは、動作データ２６０中の最も高いピーク２６２が所望のゼスチュア用の認識に正しいピークであるが、最も高いピークの前にピーク２６４が生じている例を示す。このような以前のピークは「ワインドアップ」動作として良く生じることがあり、この動作は、時々、所望のゼスチュアを送る前にユーザによって無意識に行なわれる。この場合、３つのピークの全てが、最も高いピークとして調べられている（負のピークを含む）。一のピークが他のピークより高い場合、より低いピークが、意図したピークの前の「ワインドアップ」動作、あるいは意図したピーク後の「引き戻し」動作などの意図していない動作であると仮定され、最も振幅が大きいピークが唯一の意図したゼスチュアデータとして選択されると仮定される。しかしながら、一又はそれ以上のピークの振幅が互いに近い場合、各ピークは、意図したゼスチュアデータであると仮定することができる。典型的には、ワインドアップ及び引き戻し動作によって、意識された所望のゼスチュアのピークと特徴に関連する小さなピークとデータ特徴が生じる。スレッシュホールドを使用して、ピークが意図したものとして求められるかどうかを決定することができる。例えば、最も高いピークに対する一のピーク（最初のピークなど）の比を、スレッシュホールド比と比較することができ、ここでは、スレッシュホールド比を下回って落ちているピークは、意図的なものではないと考えられ、無視される。
【００８３】
図１０Ｆは、ユーザが、ゼスチュアをトリガする意図なくしてデバイスを移動させたため、長く、混沌とした数連のピークとゼロクロスを有する動作データ２７０を示す。図１０Ａ乃至Ｅに示すデータ特徴と同様の特徴が、破線で示すボックス２７２に示されている。これは、関連するゼスチュアが誤ってトリガされるほど十分にデータ特徴に似ている。このような結果を減らすために、「中断条件」と「トリガ条件」のセットを加えることができ、関連するデバイスが機能して実際にトリガ（実行）するためには、この条件を試験してこの条件が回避されるかあるいは満たされていなければならない。この場合、トリガ条件には、ゼスチュアが有意な動きが生じない所定の期間の前にあるいは後に生じなくてはならないとの条件が含まれる。多すぎる動きがある場合、ゼスチュアのトリガを防止する中断条件を設定することができる。中断条件は、例えばデバイスがゼスチュアを容易に受信するときに唯一見ることができる、例えばアイコンを介してユーザと通信することができる。
【００８４】
タップゼスチュア
タップゼスチュアは、通常、ユーザが指、手、あるいは大きなパルスで空中でのデバイスを動かすのに十分なものを用いて、デバイス１０をたたくあるいはタッピングすることを含む。このタップゼスチュアを用いて、デバイスの様々な機能を制御することができる。
【００８５】
図１１Ａと１１Ｂは、タップゼスチュアの動作データの２つの例を示すグラフである。これらの例において、タップゼスチュアの検出は、動作センサデータを調べて上述したバックグラウンドノイズフロアに関連するゼスチュアを検出することによって行われる。図１１Ａは、デバイス１０がユーザの手の中に緩く保持されている場合のタップゼスチュアによる波形２８０を示す図であり、振幅が大きいパルスとして示す、検出したタップパルス２８２を含む。この場合、パルス２８４で表示される多くのバックグラウンドノイズがあり、タップゼスチュアを誤ってトリガすることがある。しかしながら、実際に意図されたタップゼスチュアは、上述のノイズレベル２８４とはかけ離れたパルス振幅２８２を作る。なぜなら、デバイスが緩く保持されているため、タップゼスチュアが空中でデバイスを大きく移動させるためである。これに対して、図１１Ｂは、デバイス１０が机又はその他の堅い表面の上に置かれてタップされた場合のタップゼスチュアから生じる波形２８８を示す。このタップゼスチュアは、デバイスがタップに応答してそれほど大きく空中で動くことができないので、振幅がより小さいパルス２９０ができる。従って、この場合の実際のタップは大きな音響応答になるであろう。なお、検出されたタップ２９０は、通常、ノイズレベル２９２上でかけ離れている。従って、タップ検出においてバックグラウンドノイズレベルを考慮する場合、より高いロバスト性でタップゼスチュアを検出することができる。
【００８６】
タッピング以外の動きによる動作センサデータ中のスパイクを除去することは困難である。この除去をより高いロバスト性をもって行う一の方法では、デバイスの動きの終端で有意な振幅を有するスパイクが生じる場合にこれを除去する（例えば、調べている動作データ部分の端部）。この過程は、タップゼスチュアが生じる前はデバイス１０に比較的動きがないことであり、タップゼスチュアが、動作の開始時にスパイクを引き起こすことである。しかしながら、ユーザによってデバイスが突然止められるため、スパイクは動作の端部においても現れる。この端部スパイクは、除去すべきである。
【００８７】
図１２Ａ及び１２Ｂは、動作データ中の特定のスパイクを除去することによるタップゼスチュアの検出を示す。図１２Ａでは、スパイク２９４は、デバイスの動きを示す動作データの波形カーブ２９６の前に生じている。図１２Ｂでは、スパイク２９８は、この波形のカーブ２９９の後に生じている。タップ検出は、図１２Ｂに示すように、カーブ２９９の後に生じる、及び／又は、調べた動きの端部において、あるいはその近傍（スレッシュホールド内）で生じるスパイク２９８を除去することによって、本発明において改善される。これは、動きの端部におけるデバイス１０の動きの中断を示しており、意図されたゼスチュアではない。このようなスパイクは、通常、デバイスの停止と、意図的なゼスチュアではないことを示す。図１２Ａに示すように、スパイク２９４がカーブ２９６の前に生じる場合、スパイクはタップゼスチュアとして検出され、後に振幅が小さい動き（カーブ）が生じる意図されたスパイクを表示している。このスパイクとカーブは、様々なセンサに、あるいはデバイスの動作軸に生じることがある。
【００８８】
タップゼスチュアは、デバイス上で稼働しているアプリケーションやその他のプログラムにおいて、デバイス機能を開始する様々な方法に使用することができる。例えば、一の実施例では、タッピングは、画像セットをディスプレイスクリーン上で移動させ、予め見ることができるあるいは強調された画像が移動して、次の画像が強調されるかあるいは見ることができるように構成することができる。タッピングは、タッピングに関連する方向がないため、このタップ検出は、どの方向に画像が動くべきかを決定する追加の入力方向検出と組み合わせることができる。例えば、デバイスが左方向に傾いている場合、画像はディスプレイスクリーン上を左に移動する。デバイスが後方向に傾いている場合、画像は後に動く。例えば、シミュレートされた三次元深さにおいて、スクリーンの「中に」移動する。この特徴によって、ユーザは画像（あるいはその他の表示された物体）の移動時間と画像の移動方向を傾き及びタップゼスチュアを用いて同時に制御することができる。
【００８９】
その他のゼスチュア
本発明の使用に適したその他のゼスチュアの例をいくつか以下に述べる。
【００９０】
図１３は、円を描くゼスチュアの動作データの一例を示すグラフ３００である。このゼスチュアでは、ユーザは、空中で動作検出デバイスを素早くほぼ円運動するように動かす。振幅のピークは、例えば図１３に示すようなピッチ３０２とヨー３０４など、２本の軸に現れる。図に示すように、ピークとゼロクロスは、円ゼスチュアの位相から外れており、異なる時間で生じている。
【００９１】
図１４は、文字ゼスチュアの例を示すグラフ３１０である。文字ゼスチュアは、特定の文字の形をほぼなぞる空中でのデバイス１０の動作によって作られる。この身振りは、特別な特性として認識され、この特性に応じた機能を活性化することができる。例えば、特定のアプリケーションプログラムにおけるコマンドは、いくつかの実施例では、ある文字に対応するキーボード上のキーを押すことによって活性化される。代替的に、同じ特性として検出される身振りを、単独であるいはデバイスへのいくつかのその他の入力と組み合わせて入力することによってこのようなコマンドをアクティブにすることもできる。
【００９２】
特性（文字、数字、及びその他のシンボルを含む）は、デバイス１０の線形及び円運動の組み合わせとして考えることができる。線及び円の検出アルゴリズムを組み合わせることによって、この特性を検出することができる。通常、正確な角度動作をユーザの一部で行うことができないので、この表示は概算することができる。
【００９３】
図１４に、いくつかの実施例を示す。線形ピッチのゼスチュア３１２、線形ヨーのゼスチュア３１４、及び半円ゼスチュア３１６を個別に検出して、組み合わせて文字を作ることができる。例えば、「１」の数字３２０は、線形ピッチゼスチュアとして検出することができる。「２」の数字３２２は、半円の後に水平なラインが続くとして規定することができる。「３」の数字３２４は、２つの半円ゼスチュアとして規定することができる。同じ表示を有する他のゼスチュアがない限り、この表示は、十分に正確であり、ユーザに不明確な動作に対する余裕を与える。その他のゼスチュアを検出して、三角、円、ホック、角度、その他、所望の特性のその他の部分を提供することができる。様々なゼスチュアを様々な特性に規定して、デバイスが空間を移動してこれらの特性を追跡するときに認識することができる。
【００９４】
その他のゼスチュアも所望するように規定することができる。特定のゼスチュアは、上述のゼスチュア、あるいはその他のタイプのゼスチュアの一又はそれ以上を、様々に組み合わせて規定することができる。例えば、デバイス１０の基本的なヨー、ピッチ、及びロール動作についてのゼスチュアを、これらの各軸における動作として規定することができる。これらのゼスチュアをその他のゼスチュアと組み合わせて、複合ゼスチュアを規定することもできる。
【００９５】
更に、いくつかの実施例では、ロバスト性をあげる、すなわち、意図したゼスチュアが確実に検出されるようにするために、ゼスチュアを複数回入力して検出することが必要とされる。例えば、３回の震えるゼスチュアは続けて検出して、この３回を単独のゼスチュアとして検出し、この震えるゼスチュアに関連する機能を実装することが要求される。あるいは、１回ではなく３回のタップゼスチュアを検出することが要求される。
【００９６】
動作コントロールを用いたアプリケーション
正確に身振りを検出する能力を高める本発明の特徴の一つは、ゼスチュア（デバイスの動作）を動作検出デバイス１０の入力制御デバイスから検出した入力と組み合わせて使用することである。入力制御デバイスはデバイスについての表示を提供して、ゼスチュア入力のためにユーザが意図するデバイス動作が行われている間ゼスチュアを検出する。例えば、ここで「動作コントロール」３６と呼ばれる（図１に示す）、ボタン、スイッチ、ノブ、ホイール、あるいはその他の入力制御デバイスは、動作検出デバイス１０のハウジングに設けて、ユーザが押すあるいは活性化することができる。専用のハードウエアコントロールを使用する、あるいは、代替的にソフトウエア／表示コントロール（例えば、表示ボタン又はタッチスクリーン上のコントロール）を動作コントロールとして使用することもできる。
【００９７】
デバイスの動作コントロールを用いて、デバイスが「動作モード」にあるかどうかを決定することができる。デバイスが動作モードにある場合、デバイス１０のプロセッサあるいはその他のコントローラによってデバイスの動作を検出して、例えばゼスチュアとして検出されたデバイスの状態を変更することができる。例えば、ユーザによってアクティブにされて保持されていない場合など動作コントロールが不活性状態にあるときは、ユーザはデバイスの状態を変更することなくデバイスを自然に動かす。しかしながら、ユーザによって動作コントロールがアクティブになっている間は、デバイスが移動してデバイスの一又はそれ以上の状態を変更する。このデバイスの状態の変更は、機能の選択及び／又は機能又はプログラムの実行又は活性化である。例えば、機能は、動作モード中に受け取る動作データからのゼスチュア検出に応じてデバイス上で実行することができる。検出された終了事象に基づいてデバイスは動作モードを終了する。例えば、この実施例では、動作コントロールがユーザによって解除され、動作コントロールからの活性信号が検出されなくなったときに終了事象が生じる。いくつかの実施例における動作データに基づくデバイスの状態の変更は、例えば、この実施例では、ボタンが解除された後といった、動作モードが終了した後にのみ生じる。動作モードにない場合は、デバイス（例えば、プロセッサあるいはデバイス内のその他の適用可能なコントローラ）は、身振り認識のための入力検出動作データを無視する。いくつかの実施例では、検出した動作データをまだ入力することができ、上述したようなデバイスのオリエンテーションモデルを計算する、といった他の機能あるいは目的に使用することができる。あるいは、例えば、いくつかの実施例においては動作コントロールの実施例と共に使用するとうまく機能しないことがあるタップゼスチュアなど、特定のあらかじめ決められたタイプのゼスチュアあるいはその他の動作のみを入力及び／又は認識することができる。その他の実施例では、例えばセンサをオフにするなどの動作モードにない場合は、検出した動作データはどのような目的に対してもすべて無視される。例えば、ボタンを解除することによってスパイクがデバイス動作で検出されることがあるが、このスパイクはボタンの解除後に生じているため無視される。
【００９８】
デバイスの動作モードの操作は、デバイスの動作モードに依存させてもよい。例えば、動作モードに入るための動作コントロールを活性化するには、デバイスがいくつかの動作モードにある間にユーザが動作ゼスチュアを入力することが要求されるが、デバイスのその他の動作モードでは動作コントロールの活性化は不要である。例えば、デバイスの移動に基づいてディスプレイスクリーン１６ａ上でデバイスの画像セットあるいはその他の物体をスクロールすることができる画像ディスプレイ動作モードの場合は、動作モードの活性化が必要である（例えば、ユーザが動作コントロールを押し下げるなど）。しかし、ユーザが携帯電話をかけるあるいは応答する電話モードの場合は、電話に応答したり、デバイス１０のその他の電話機能を実行するのにユーザは身振りを入力して動作モードの活性化や動作コントロールの活性化を行う必要はない。更に、デバイス１０の様々な動作モードは動作コントロールや動作モードを様々な方法で用いることができる。例えば、一の動作モードでは、ユーザが動作コントロールを不活性化することによってのみ動作モードを終了させることができ、一方、別の動作モードでは、ユーザが特定の身振りを入力することで動作モードを終了させることができる。
【００９９】
一例として、動作コントロールがアクティブでない間はデバイスの動きによって影響を受けないアイコンセットをデバイスのディスプレイスクリーンに表示する。デバイスの動作コントロールが押されると、動作センサによって検出されるデバイスの動作を用いて、例えば、カーソル又はインディケータを様々なアイコンに移動させるなど、どのアイコンが強調されているかを決定することができる。この動作は、例えば、特定の軸、あるいは一以上の軸における回転（回転ゼスチュアと考えられる）として検出することができる。ここでは、デバイスが空中で回転するが、代替的に、デバイスが空中で線形に移動する場合は線形動作あるいは線形ゼスチュアと考えられる。動作コントロールが解除されると、解除時に強調されているアイコンが実行され、例えば、強調されているアイコンに関連するアプリケーションプログラムを開始するといった関連する機能を実行して、デバイスの一又はそれ以上の状態を変化させる。ユーザのアイコン選択を支援するために、アイコンからアイコンへ直接移動する個別移動インディケータ又はカーソルに加えてアイコンの上に乗せた連続的に移動するカーソルを含める、あるいはアイコンを連続的に少し（デバイスの動作に比例して）移動させて動作コントロールが解除されたら特定のアイコンが選択される、といったデバイスの動作に関連する更なる視覚的フィードバックを提供することができる。
【０１００】
別のアプリケーションでは、画像セットをディスプレイスクリーン上に一列に表示することができる。動作コントロールが押されると、ユーザは、例えばデバイスを前（ユーザがデバイスを見ているときはユーザの方向に）あるいは後に（ユーザから遠くへ）傾ける、あるいは線形移動させるといったゼスチュアとしてデバイスを正方向あるいは負の方向に移動させることとでこの画像セットを前後に操作することができる。ユーザが所定のスレッシュホールド振幅を超えてデバイスを移動させると（例えば、所定量以上デバイスを傾ける）、ユーザからの追加の入力なしでスクリーン上で画像が連続的に移動する。動作コントロールが解除されると、デバイス１０は画像の移動を止めるように制御する。
【０１０１】
別のアプリケーションでは、ボタンを押すと、デバイスのディスプレイスクリーンに表示された画像、マップ、ウエブページ内でパニングあるいはズーミングが開始される。異なる軸に沿ってデバイスを回転させることで、対応する軸に沿ってディスプレイスクリーンの画面をパニングさせたり、これらの軸に沿ってズーミングさせることができる。様々な動きによって様々な機能をトリガすることができ、あるいは様々なボタンを用いて機能をトリガするようにしても良い。例えば、一の動作コントロールでパニングを行い、別の動作コントロールでズーミングを行うことができる。タイプが異なる動作を用いる場合、スレッシュホールドを使用することで、どの機能をトリガするべきかを決定する際の支援となる。例えば、パニング動作が一軸でデバイスを動かしており、ズーミング動作が別の一軸でデバイスを動かしている場合、デバイスを両方の軸に沿って同時に移動させることで、パニングとズーミングの両方を行うことができる。しかしながら、パニング動作が所定のスレッシュホールド動作量を超えて行われた場合、デバイスはパニングのみを行って、ズーミング軸上での動きは無視する。
【０１０２】
いくつかの実施例では、デバイスの動作モードを活性化するのに、ユーザは動作コントロールを保持する必要がない、及び／又は、終了事象は動作コントロールの解除ではない。例えば、動作コントロールを「クリック」、すなわち活性化（例えば、押す）させてすぐに解除することで、動作モードを活性化して、デバイス動作によってデバイスの一又はそれ以上の状態を変更することができる。動作コントロールがクリックされた後は、デバイスはその動作モードを維持する。所望の予め規定された終了事象を用いて、事象検出時に動作モードを終了させて、デバイス動作がデバイスの状態をそれ以上変更しないようにすることができる。例えば、動作データから、あるいはユーザによって提供された動作（所定数の振動を有する震えゼスチュアなど）から特定の震えゼスチュアを検出することができ、検出したら、動作モードを終了する。その他の実施例ではその他のタイプのゼスチュアを用いて動作モードを終了させることができる。更に別の実施例では、終了事象がユーザの動作に基づいていない。例えば、検出したゼスチュアの完了（ゼスチュアがデバイスで正しく検出される場合）など、その他の基準に基づいて動作モードを自動的に終了させることができる。
【０１０３】
ゼスチュア認識用のデータ特徴
デバイス１０で人間の動作を分解して処理するためには、センサデータを高速で得ることが必要である。例えば、１００Ｈｚといったサンプリングレートが必要になる。一秒のゼスチュアについて及び６軸の動作センサをデバイスに設けるには、このようなサンプリングレートでは、６の動作自由度について６００のデータポイントを処理する必要がある。しかしながら、人間の動作は、動作波形のピーク振幅、あるいはゼロクロスの特定の回数などの重要な特徴をセンサデータから抽出することによって減らすことができるので、６００のデータポイントすべてを処理しなければならないことはまれである。このようなデータ特徴は、ユーザがゼスチュアを行っている場合、通常、約２Ｈｚで生じる。従って、例えば、４つの特徴を６の各自由度について調べる場合、一秒の動作を行う間のデータポイント総数は、４８ポイントになる。従って、動作データの特定の特徴にのみ集中することによって、全動作についてのすべてのデータポイントを処理するのではない処理すべきデータ量は１０倍以上少なくなる。
【０１０４】
ハードウエアを用いてデバイスプロセッサで必要なデータのサンプリングレートを減らして動作センサの特徴を見つけるいくつかの例示的方法は、同時継続中の特許出願第１２／１０６，９２１号に記載されている。この出願はここに引用されている。
【０１０５】
図１５は、ゼスチュア用に処理できるデバイス動作のデータ特徴セットの一例を示すグラフである。波形３５０は、時間軸（水平軸）におけるデバイスの動きの大きさ（垂直軸）を示す。デッドゾーン３５２は、ゼスチュアのデータ特徴を検出時の所望の振幅で示すことができ、ここでこのデッドゾーンは、典型的なあるいは決められたノイズ振幅レベルとほぼ等しい正の値及び負の値を示している。デッドゾーン内でこれらの値の間に入る動作データはすべて、バックグラウンドノイズと区別できないとして無視される（ユーザが意図しないでデバイス１０を振動させるなど）。
【０１０６】
ここで言うデータ特徴は、波形３５０から検出できる動作センサデータの波形３５０の特性であり、これを用いて特定のゼスチュアが行われたことを認識することができる。データ特徴は、例えば、波形３５０の最大（又は最小）高さ（又は振幅）３５４と、最大高さ３５４が生じる時間であるピーク時の値３５６などを含む。更なるデータ特徴には、波形３５０がゼロクロスとなる時間３５８（すなわち、正の値から負の値への、あるいはその逆の遷移といった、動作軸における動作方向の変更）が含まれる。更なるデータ特徴には、図１５に示すような２つのゼロクロス３５８間のインターバルの積分値などの、波形３５０の特定の領域を提供する積分３６０が含まれる。更なるデータ特徴には、特定のゼロクロス３５８における波形３５０の微分が含まれる。これらのデータ特徴は、動作センサデータから抽出して波形の全動作センサをゼスチュア認識用に保存して処理するより、より迅速かつ容易に処理することができる。動作波形３５０の曲率（例えば、異なるポイントにおいて、波形がどれだけ滑らかであるか）など、その他のデータ特徴を別の実施例に使用することができる。いくつかの実施例では、調べている特定のデータ特徴がデバイス１０の現在の動作モードに基づいており、ここでは、特定の動作モードで稼働しているアプリケーションに応じて、異なる動作モードが異なるデータ特徴を抽出して処理する必要がある。
【０１０７】
図１６は、ゼスチュアを認識して処理するシステム３７０の一例を示すブロック図であり、図１５を参照して上述したデータ特徴を具える。システム３７０は、デバイス１０に、ＭＰＵ２０に、あるいはプロセッサ１２に設けられており、あるいは別のユニットとして設けるようにしても良い。
【０１０８】
システム３７０は生データと前処理ブロック３７２を具え、センサからの生データを受け取って、図７を参照して上述した通り、例えばデバイス座標とワールド座標に関連するデータといった、増大させたデータを提供する、あるいは受け取る。生のセンサデータと拡張センサデータは、ゼスチュア認識の基礎として使用することができる。例えば、前処理ブロック３７２は、図７を参照して上述したシステム１５０の全部あるいは一部を具えていても良い。
【０１０９】
ブロック３７２から生データと拡張データを複数の低レベルデータ特徴検出器３７４に提供する。ここで、各検出器３７４はセンサデータ中の異なる特徴を検出する。例えば、ブロック３７４ａの特徴１は動作波形のピークを検出し、ブロック３７４ｂの特徴２は動作波形のゼロクロスを検出し、ブロック３７４ｃの特徴３は波形下の領域の積分値を検出して決定することができる。追加の特徴検出器を様々な実施例で用いることができる。各特徴検出器３７４は検出したデータ特徴に近い時間値を表わすタイマー値３７６を提供し、検出したデータ特徴（ピーク振幅、積分値、その他）に近い振幅を表示する振幅値３７８を提供する。
【０１１０】
タイマー値及び振幅値３７８及び３７６は高レベルのゼスチュア検出器３８０に提供される。ゼスチュア検出器３８０は、全特徴検出器３７４からのタイミングと振幅値３７８及び３７６を用いて、その検出器に関連する特定のゼスチュアが生じたかどうかを検出する。例えば、ゼスチュア検出器３８０ａは、ピーク特徴検出器３７４ａなどの特徴検出器３７４から適宜の時間と振幅データを調べることによって、タップゼスチュアである特定のゼスチュア１を検出する。同様に、ゼスチュア検出器３８０ｂは特定のゼスチュア２を検出し、ゼスチュア検出器３８０ｃは特定のゼスチュア３を検出する。デバイス１０で認識することが望まれるタイプの異なるゼスチュアを検出するだけの多くのゼスチュア検出器３８０が設けられている。
【０１１１】
各ゼスチュア検出器３８０は、ゼスチュアが検出された時間を表わすタイマー値３８２を提供し、検出されたゼスチュアのデータ特徴（ピーク、積分値、等）を示す振幅値である振幅値３８４を提供する。
【０１１２】
生及び拡張データ３７２は、デバイス１０の状態及び中断条件をモニタするモニタ３９０にも提供される。モニタ３９０は、処理ブロック３７２からのこの生の及び拡張データを用いてデバイス１０のオリエンテーションを決めるオリエンテーションブロック３９２を具える。このデバイスオリエンテーションは、水平、垂直、あるいは望ましいその他の状態で表示することができる。このオリエンテーションはゼスチュア検出器３８０に提供され、適宜のゼスチュア（特定のデバイスオリエンテーション、又は、一のオリエンテーションから別のオリエンテーションに変更を必要とするゼスチュア）を検出するのに使用される。モニタ３９０はまた、ブロック３７２からの生及び拡張センサデータを用いて例えば角運動あるいは線運動など、デバイス１０が空中で動いた動作量を決定する動作ブロック３９４を具える。この動作量はゼスチュア検出器３８０に提供されて、ゼスチュア（デバイス１０の最少量の動作を必要とするゼスチュアなど）の検出に使用される。
【０１１３】
中断条件３９６もモニタ３９０に含まれており、デバイス１０の動きを用いて潜在的に認識されたゼスチュアを中断するかどうかを決定する。この中断条件は、実行された場合に、特定のデバイスの動作がゼスチュアでないことを表示する条件を含む。例えば、上述したバックグラウンドノイズを測定して、このノイズの振幅内の動作が、中断条件３９６を用いて無視されるようにすることができる。別の例では、図１２Ａ及び１２Ｂを参照して上述したようなカーブに続いて生じるスパイクなど、動作のある種のスパイクを無視する、すなわち、そのスパイクについてゼスチュア認識を中断させることができる。別の例では、全部のゼスチュア検出器３８０で、小さなあるいは微細な動きを調べている場合、中断条件３９６を用いて所定のスレッシュホールド振幅を超える大きな動きを無視することができる。中断条件ブロック３９６は、センサデータの現在の（あるいは指定された）部分に対応する中断表示をゼスチュア検出器３８０に送り、更に、最終ゼスチュア出力ブロック３９８にも中断表示を送ることができる。
【０１１４】
最終ゼスチュア出力ブロック３９８は、ゼスチュア検出器３８０からのタイマー値及び振幅値をすべて受け取ると共に、中断条件ブロック３９６からの中断表示も受け取る。最終ゼスチュアブロック３９８は、ゼスチュア検出器３８０で認識された非中断ゼスチュアについてのデータを出力する。この出力データは、このゼスチュアを処理して認識したゼスチュアに応じて機能を実行するデバイス１０の構成要素（ソフトウエア及び／又はハードウエア）へ送ることができる。
【０１１５】
図１７は、図１６に示すゼスチュア認識システム３５０の機能を分配する一例を示す図４００である。この例では、６軸の動作センサ出力（例えば、３つのジャイロスコープ２６と３つの加速度計２８）が、配線で接続されたハードウエア４０２として提供されている。動作センサは、その生のセンサデータを拡張データとして出力して、ブロック４０４のデータ特徴として処理する。この特徴処理ブロック４０４も、配線で接続されたハードウエアブロック４０２に含まれている。このように、ゼスチュア認識システム３７０のいくらかあるいは全部を、各動作センサ自体（ジャイロスコープ及び／又は加速度計）のハードウエアに含めることができる。例えば、動作センサは、デバイス座標からワールド座標への座標変換など、拡張データを計算するハードウエアアクセレレータを具えていてもよい。ハードウエアアクセレレータは、変換したデータを出力する。ハードウエアアクセレレータは、拡張データを更に小さくしてデータ特徴にする追加の処理を含むものでもよい。代替的に、アクセレレータは、配線で接続されたブロック４０２からの変換データを出力することができる。
【０１１６】
ブロック４０４からの特徴は、デバイス１０のプログラム可能なブロック４０８に含まれている動作ロジック処理ブロック４０６に出力される。プログラム可能なブロック４０８は、例えば、プロセッサ又はコントローラによって実装されるソフトウエア及び／又はファームウエアとして実装することができる。動作ロジックは、数値の出力を含み、いくつかの実施例では、ゼスチュアの出力を含む。
【０１１７】
代替の実施例では、ゼスチュアシステム３７０全体を、動作センサ及び配線で接続されたブロック４０２から生のデータを受け取る外部プロセッサで稼働するようにしても良い。いくつかの実施例では、ゼスチュアシステム３７０全体が、動作センサ上の、あるいは動作センサを伴う、配線で接続されたハードウエアで稼働するものでも良い。
【０１１８】
上述した技術及びシステムの多くは、上述のジャイロスコープ及び／又は加速度計以外の、追加のあるいは代替のセンサを用いて実装することができる。例えば、上述のゼスチュア認識技術を含む６軸の動作検出デバイスは、３つの加速度計と３つのコンパスを具えていても良い。その他のタイプの使用できるセンサには、光学センサ（可視型、赤外線、紫外線、その他）、磁気センサ、その他が含まれる。
【０１１９】
図に示す実施例に従って本発明を説明したが、当業者であれば、この実施例の変形例があり、これらの変形例は本発明の精神及び範囲内にあることを容易に認識することができる。従って、多くの変形例は、特許請求の範囲の精神及び範囲から外れることなく、当業者によって製作することができる。
【図１】
0005675627.tif 000002
【図２】
0005675627.tif 000003
【図３Ａ】
0005675627.tif 000004
【図３Ｂ】
0005675627.tif 000005
【図４Ａ】
0005675627.tif 000006
【図４Ｂ】
0005675627.tif 000007
【図５Ａ】
0005675627.tif 000008
【図５Ｂ】
0005675627.tif 000009
【図５Ｃ】
0005675627.tif 000010
【図６Ａ】
0005675627.tif 000011
【図６Ｂ】
0005675627.tif 000012
【図６Ｃ】
0005675627.tif 000013
【図７】
0005675627.tif 000014
【図８Ａ】
0005675627.tif 000015
【図８Ｂ】
0005675627.tif 000016
【図９】
0005675627.tif 000017
【図１０】
0005675627.tif 000018
【図１１Ａ】
0005675627.tif 000019
【図１１Ｂ】
0005675627.tif 000020
【図１１Ｃ】
0005675627.tif 000021
【図１１Ｄ】
0005675627.tif 000022
【図１１Ｅ】
0005675627.tif 000023
【図１１Ｆ】
0005675627.tif 000024
【図１２Ａ】
0005675627.tif 000025
【図１２Ｂ】
0005675627.tif 000026
【図１３Ａ】
0005675627.tif 000027
【図１３Ｂ】
0005675627.tif 000028
【図１４】
0005675627.tif 000029
【図１５】
0005675627.tif 000030
【図１６】
0005675627.tif 000031
【図１７】
0005675627.tif 000032
【図１８】
0005675627.tif 000033