(57)【特許請求の範囲】
【請求項１】
手首に着用可能なデバイスでレイズジェスチャを検出するための方法であって、
前記手首に着用可能なデバイス内のモーションコプロセッサにおいて、前記手首に着用可能なデバイスの内部モーションセンサから、ある時間幅に対応する一組のモーションセンサデータサンプルを取得することと、
前記モーションコプロセッサによって、前記モーションセンサデータサンプルに基づいて、前記時間幅の開始に対応する開始姿勢を決定することと、
前記モーションコプロセッサによって、前記開始姿勢に少なくとも部分的に基づいて、前記一組のモーションセンサデータサンプルを使用して可能性のあるレイズジェスチャを特定するための一組の基準を選択することと、
前記モーションコプロセッサによって、前記一組のモーションセンサデータサンプルが、前記選択された一組の基準を満たすか否かに少なくとも部分的に基づいて、前記可能性のあるレイズジェスチャを特定することと、
前記可能性のあるレイズジェスチャの特定に応じて、前記モーションコプロセッサによって、前記手首に着用可能なデバイスのアプリケーションプロセッサをスリープ状態からウェイクさせることと、
前記モーションコプロセッサによって、前記可能性のあるレイズジェスチャのあとに、少なくとも最小限の持続時間にわたってフォーカス姿勢のままである場合に、検出済レイズジェスチャを特定することと、
前記検出済レイズジェスチャの特定に応じて、前記手首に着用可能なデバイスのディスプレイをアクティブにすることと、を含む、方法。
【請求項２】
前記手首に着用可能なデバイスのユーザインタフェースコンポーネントを、前記可能性のあるレイズジェスチャを通知されたことに応じて、非アクティブな状態から部分的にアクティブな状態に遷移させ、前記検出済レイズジェスチャを通知されたことに応じて、前記部分的にアクティブな状態からアクティブな状態に遷移させることをさらに含む、請求項１に記載の方法。
【請求項３】
前記モーションセンサデータは加速度計データを含み、可能性のあるレイズジェスチャを特定するための前記選択された一組の基準は、
前記時間幅の間に前記加速度計データから決定された蓄積した傾斜に基づく基準、
前記時間幅の間に前記加速度計データから決定された、前記デバイスの持ち上げ量に基づく基準、又は、
前記時間幅の間における動きの滑らかさに基づく基準、のうちの１つ以上を含む、請求項１に記載の方法。
【請求項４】
前記モーションセンサデータはジャイロセンサからのジャイロスコープデータを含み、可能性のあるレイズジェスチャを特定するための前記選択された一組の基準は、ユーザの前腕と実質的に平行な軸を中心とした蓄積した回転に基づく基準を含み、前記蓄積した回転は、前記時間幅の間に前記ジャイロスコープデータから決定される、請求項１に記載の方法。
【請求項５】
前記モーションセンサデータは、ジャイロセンサからのジャイロスコープデータと加速度計からの加速度計データを含み、
前記ジャイロスコープデータは、前記可能性のあるレイズジェスチャを特定するのに用いられ、
前記加速度計データは、前記検出済レイズジェスチャを特定するのに用いられる、請求項１に記載の方法。
【請求項６】
前記検出済レイズジェスチャを決定することに続いて、ジェスチャ分類部を使用して前記検出済レイズジェスチャを確認することをさらに含み、
前記デバイスのユーザインタフェースコンポーネントは、前記ジェスチャ分類部による確認に応じてアクティブにされる、請求項１に記載の方法。
【請求項７】
前記モーションコプロセッサによって、プレヒート検出アルゴリズムを実行して前記レイズジェスチャの開始を検出することであって、前記プレヒート検出アルゴリズムは、前記開始姿勢の決定、前記一組の基準の選択、前記可能性のあるレイズジェスチャの特定、及び前記検出済レイズジェスチャの特定の行為をするのと同時に実行される、ことと、
前記アプリケーションプロセッサがスリープ状態にある間に前記レイズジェスチャの開始が検出された場合に、前記アプリケーションプロセッサを前記スリープ状態からウェイクさせることと、をさらに含む、請求項１に記載の方法。
【請求項８】
着用可能デバイスであって、
アクティブな状態と非アクティブな状態とを有するユーザインタフェースコンポーネントと、
前記デバイスの動きを検出するためのモーションセンサと、
モーションコプロセッサであって、
前記モーションセンサから、ある時間幅に対応する一組のモーションセンサデータサンプルを取得し、
前記一組のモーションセンサデータサンプルに基づいて、前記時間幅の開始に対応する開始姿勢を決定し、
前記開始姿勢に少なくとも部分的に基づいて、前記一組のモーションセンサデータサンプルを使用して可能性のあるレイズジェスチャを特定するための一組の基準を選択し、
前記一組のモーションセンサデータサンプルが前記選択された一組の基準を満たすか否かに少なくとも部分的に基づいて、前記可能性のあるレイズジェスチャを特定し、
前記可能性のあるレイズジェスチャの特定に応じて、前記アプリケーションプロセッサをスリープ状態からウェイクさせて、
特定された前記可能性のあるレイズジェスチャのあとに、少なくとも最小限の持続時間にわたってフォーカス姿勢のままである場合に、検出済レイズジェスチャを特定し、
前記検出済レイズジェスチャの特定に応じて、前記ユーザインタフェースコンポーネントをアクティブにするように構成されたモーションコプロセッサと、を備える、着用可能デバイス。
【請求項９】
前記ユーザインタフェースコンポーネントは、
ディスプレイ、
タッチスクリーンディスプレイ、
マイクロフォン、
スピーカ、又は、
ボタン、のうちの１つ以上を含む、請求項８に記載のデバイス。
【請求項１０】
前記モーションセンサは、
加速度計、又は、
ジャイロセンサ、のうちの１つ以上を含む、請求項８に記載のデバイス。
【請求項１１】
手首に着用可能なデバイスのモーションコプロセッサによって実行されると、前記モーションコプロセッサに、
前記手首に着用可能なデバイスの内部モーションセンサから、ある時間幅に対応する一組のモーションセンサデータサンプルを取得することと、
前記一組のモーションセンサデータサンプルに基づいて、前記時間幅の開始に対応する開始姿勢を決定することと、
前記開始姿勢に少なくとも部分的に基づいて、前記一組のモーションセンサデータサンプルを使用して可能性のあるレイズジェスチャを特定するための一組の基準を選択することと、
前記一組のモーションセンサデータサンプルが前記選択された一組の基準を満たすか否かに少なくとも部分的に基づいて、前記可能性のあるレイズジェスチャを特定することと、
前記可能性のあるレイズジェスチャの特定に応じて、前記モーションコプロセッサによって、前記手首に着用可能なデバイスのアプリケーションプロセッサをスリープ状態からウェイクさせることと、
前記可能性のあるレイズジェスチャのあとに、少なくとも最小限の持続時間にわたってフォーカス姿勢のままである場合に、検出済レイズジェスチャを特定することと、
前記検出済レイズジェスチャの特定に応じて、前記手首に着用可能なデバイスのディスプレイをアクティブにすることと、を含む方法を実行させるプログラム命令が記憶された、コンピュータ可読記憶媒体。
【請求項１２】
前記方法が、
前記モーションセンサデータサンプルにおいて、前記デバイスを着用しているユーザの手首の回転に対応する方向での移動を各々が示し、タイムアウト時間より短い時間だけ時間的に離れた第１のインパルスピーク及び第２のインパルスピークを検出することと、
前記第１のインパルスピーク及び前記第２のインパルスピークが検出されたことに少なくとも部分的に基づいて、意図的なレイズジェスチャを検出することと、
レイズジェスチャが検出された場合に、前記アプリケーションプロセッサをウェイクさせることと、をさらに含む、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１３】
前記方法が、
前記第２のインパルスピークに続いて、少なくとも最小限の持続時間にわたって、前記デバイスがほぼ安定した位置に保持されているのを検出することをさらに含み、
前記レイズジェスチャは、前記第１のインパルスピーク及び前記第２のインパルスピークが検出されたことに部分的に基づいて、かつ、前記デバイスが前記ほぼ安定した位置に保持されていると決定されたことに部分的に基づいて検出される、請求項１２に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記モーションセンサは加速度計を含み、前記第１のインパルスピーク及び前記第２のインパルスピークを検出することは、加速度計データサンプルから決定される躍度に少なくとも部分的に基づく、請求項１２に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、広義には電子デバイスに関し、特に、電子デバイスを身につけているか、又は他の方法で電子デバイスを操作しているユーザによってなされる、特定のカテゴリのジェスチャを検出することに関する。
【０００２】
（関連出願の相互参照）
本出願は、２０１４年７月１８日に出願された、発明の名称が「Ｒａｉｓｅ  Ｇｅｓｔｕｒｅ  Ｄｅｔｅｃｔｉｏｎ  ｉｎ  ａ  Ｄｅｖｉｃｅ」である米国仮特許出願第６２／０２６，５３２号の利益を主張するものであり、その開示内容全体を参照により本明細書に援用する。
【背景技術】
【０００３】
ユーザは、ますますモバイル技術に頼るようになっている。例えば、携帯電話技術とハイパワーコンピューティングデバイスとを統合した、ユーザが操作をする際に手の中におさめることが可能なほどフォームファクタが小さい「スマートフォン」を、現在、多くのユーザが携帯している。このようなデバイスは、携帯電話通信、メッセージ送信（例えば、ＳＭＳ／ＭＭＳメッセージ送信又は同様のサービス）、内蔵されたデジタルカメラを使った写真撮影、電子メール、ワールドワイドウェブへのアクセス、さらには、機能面で個人の情報管理（例えば、カレンダー、アドレス帳、しなければならないことのリスト）から位置認識によるナビゲーション及び地図、ゲームにまでおよぶ専用のアプリケーションプログラムからなる、一見すると無限のアレイをはじめとする、様々な機能を提供する。この種のデバイスでは、ユーザの指先に情報と娯楽の世界を置くことができる。
【０００４】
しかしながら、スマートフォンですら、情報に容易にアクセスしたがるユーザの要望を満たすには明らかに不十分である。着用可能技術が、少なからぬ関心を集めている。着用可能デバイスを持つことで、ユーザが、さらに便利なモバイル技術の利益を享受できることが望まれる。
【発明の概要】
【０００５】
着用可能技術が広く普及するのを妨げる障害のひとつに、既存の着用可能デバイスの大半が、スマートフォンほど便利に使えないことがある。例えば、着用可能デバイスは、フォームファクタが小さめのことが多く、デバイスに内蔵できるバッテリの大きさが制限されている。このため、利用できる動作電力も限られる。電力の浪費を避けるために、既存の着用可能デバイスでは通常、ユーザがデバイスと能動的に関わっていないときに、電力を消費する様々なコンポーネント（例えば、ディスプレイ）が停止されるか、電源が切断される。
【０００６】
ディスプレイ及び／又はユーザ入力コンポーネントは常にオンであるわけではないため、既存の着用可能デバイスでは通常、ユーザがデバイスを使いたいことを示すために、着用可能デバイスのボタンに触れるなど、ユーザが何らかの予備的な入力をする必要がある。こうして予備的な入力を行うことで、着用可能デバイスに自機のディスプレイ及び／又は電力を消費する他のコンポーネントをアクティブにするトリガーを与えることができる。このように予備的な対話をすると、特に、これより古い技術で慣れている一層自然で直感的にわかる対話とは対照的に、デバイスの使用を不自然又は不便なものと感じさせてしまうことがある。例えば、腕時計をしたことがある人は誰でも、時刻を確認するために手首を上げる及び／又は回転させる動作に慣れている。腕時計をする人々にとって、手首を素早く上げることは、自然で無意識にできる動きになっている。ところが、この自然な動きは、既存の腕時計だけで機能する。なぜなら、時計文字盤が「常時オン」であるため、表示された情報（通常は時刻）を見るのにユーザがしなければならないのは、時計文字盤を視線内に入れることだけだからである。しかしながら、着用可能コンピューティングデバイスなどの一層進歩した電子デバイスでは、ディスプレイが常時オンであると、デバイスを１日中着用するという日常的なことが妨げられるほど、電池寿命に制約が生じる可能性がある。
【０００７】
したがって、手首に着用可能なコンピューティングデバイス側で、ユーザがデバイスを着用した手首を上げていることを検出し、その動きに応じてデバイスのディスプレイ（及び／又は他のコンポーネント）を自動的にアクティブにすると望ましい場合がある。このようにすることで、ユーザは、既存の腕時計と同じように簡単かつ直感的に、手首に着用可能なコンピューティングデバイスから視覚情報を得られるようになる。
【０００８】
本発明による複数の実施形態では、手首を上げる動作などのレイズジェスチャを検出可能なコンピューティングデバイスを提供する。例えば、デバイスは、当該デバイスの移動をリアルタイムで検出でき、なおかつ（例えばデバイスに作用する重力加速度を検出することによって）デバイスの空間的な向きに関する情報を推定できる、加速度計及び／又はジャイロスコープなどのモーションセンサを含むことができる。モーションセンサからの信号に基づいて、デバイスで実行されるアルゴリズムによって、ユーザがデバイスのディスプレイを自分の視線内に移動している又は移動したことを示す動きのパターンと定義できる「レイズジェスチャ」を検出可能である。このようなジェスチャの検出に応じて、デバイスは、当該デバイスのディスプレイ及び／又は他のコンポーネント（例えば、タッチスクリーンオーバーレイ、音声処理サブシステムなど）をアクティブにすることができる。いくつかの実施形態では、レイズジェスチャの検出は、複数の段階でなされてもよく、異なるコンポーネントが異なる段階でアクティブにされてもよい。
【０００９】
レイズジェスチャの検出には、様々な技術を利用できる。いくつかの実施形態では、検出アルゴリズムはヒューリスティックに開発可能であり、（デバイスを着用しているユーザが、デバイスのディスプレイを見ることができるであろう、手首に着用されたコンピューティングデバイスの向きであってもよい）「フォーカス姿勢」と、（フォーカス姿勢にされる前における、手首に着用されたコンピューティングデバイスの向きであってもよい）特定の開始姿勢の両方に想定される特性を考慮できる。よって、例えば、レイズジェスチャは、ユーザが腕を下げた位置（例えば、立っているときや歩いているとき）から始めるか腕を横に向けた位置（例えば、タイピングしているとき）から始めるかとは関係なく、検出可能である。さらに、ユーザの特定の活動に合わせて、レイズジェスチャ検出アルゴリズムを最適化することができる。例えば、ユーザが走っているのであれば、ユーザの腕の自然な動きによって、低電力モーションセンサ（例えば、加速度計）から収集されるデータにノイズが生じることがあり、これがレイズジェスチャの検出に干渉することがある。走ることに合わせて最適化されたアルゴリズムであれば、ユーザに何ら違うことをさせる必要なく、他のセンサ（例えば、ジャイロセンサ）からのデータを取り込んで、レイズジェスチャを高信頼度で検出しやすくすることができる。
【００１０】
いくつかの実施形態では、レイズジェスチャ検出アルゴリズムを、デバイスの低電力コプロセッサ（例えば、モーションコプロセッサ）で実行することができる。このため、デバイスが能動的に使用されていないときには、デバイスのメインプロセッサ又は中央処理装置（本明細書では、アプリケーションプロセッサともいう）を低電力状態すなわちスリープの状態にして、デバイスの電力消費量をさらに抑えることが可能である。このコプロセッサ上で実行されているアルゴリズムによるレイズジェスチャの検出を用いて、アプリケーションプロセッサをウェイクさせることができる。いくつかの実施形態では、アプリケーションプロセッサをウェイクさせるか否かを決めるために別の「プレヒート」アルゴリズムを提供でき、このアルゴリズムは、ディスプレイ及び／又は他のユーザインタフェースコンポーネントをアクティブにするか否かを決めるのに用いられるレイズジェスチャ検出アルゴリズムとは独立に動作可能である。
【００１１】
さらに、デバイスがフォーカス姿勢になった後、コプロセッサは、ユーザがデバイスを見るのをやめたことを示す、デバイスがフォーカス姿勢ではなくなるときを判断するためのアルゴリズムを実行することができる。（デバイスの状態とユーザがデバイスを見ているか見ていないかの実態とが常に一致するわけではないこともあるが、本明細書で説明するアルゴリズムは、必ずしも完全ではないとはいえ高い信頼度でこれを一致させられることを、理解されたい。）デバイスがフォーカス姿勢ではなくなっていること（本明細書では、フォーカス解消イベントとも呼ぶ）の検出は、ディスプレイ及び／又は他のユーザインタフェースコンポーネントを非アクティブにする、アプリケーションプロセッサがスリープ状態に戻れるようにするなど、様々な節電対策のトリガーとなり得る。
【００１２】
いくつかの実施形態では、コプロセッサは、レイズジェスチャイベント、フォーカス解消（loss of focus）イベント及び／又はプレヒートイベントを検出するための様々なアルゴリズムの実行をいつ開始又は終了するかを決定するためのウェイク制御ロジックを実行することができる。また、ウェイク制御ロジックは、様々なアルゴリズムによって検出されるイベントの通知を受信し、アプリケーションプロセッサ及び／又はユーザインタフェースコンポーネントなどのデバイスの他のコンポーネントに対する対応する通知を調整することもできる。例えば、ウェイク制御ロジックは、レイズジェスチャが検出されるとアプリケーションプロセッサに通知することができ、アプリケーションプロセッサは、ディスプレイ及び／又は他のユーザインタフェースコンポーネントをアクティブにすることで、応答することができる。
【００１３】
以下の詳細な説明及び添付の図面を参照することにより、本発明の性質及び利点に関する理解をより深めることができよう。
【図面の簡単な説明】
【００１４】
【図１Ａ】本発明の一実施形態の一般的な使用事例を示す。
【図１Ｂ】本発明の一実施形態の一般的な使用事例を示す。
【図１Ｃ】本発明の一実施形態の一般的な使用事例を示す。
【図１Ｄ】本発明の一実施形態の一般的な使用事例を示す。
【図２Ａ】本発明の一実施形態によるデバイスのコンポーネントを示すブロック図である。
【図２Ｂ】本発明の一実施形態によるデバイスのコンポーネントを示すブロック図である。
【図３】手首に着用可能なデバイス用のデバイス相対座標系の一例を示す。
【図４】本発明の一実施形態によるレイズジェスチャ検出プロセスのフローチャートである。
【図５】本発明の一実施形態によるジェスチャ分類部を用いてレイズジェスチャを確認するためのプロセスのフローチャートである。
【図６】本発明の一実施形態によるレイズジェスチャ検出アルゴリズムの状態を示す状態図である。
【図７】本発明の一実施形態による自然なレイズジェスチャ検出モジュールの機能ブロック図である。
【図８】本発明の一実施形態による別のレイズジェスチャ検出プロセスのフローチャートである。
【図９】本発明の一実施形態による自然なレイズジェスチャ検出モジュールの機能ブロック図である。
【図１０Ａ】本発明の一実施形態の使用事例を示す。
【図１０Ｂ】本発明の一実施形態の使用事例を示す。
【図１１】本発明の一実施形態による意図的なレイズジェスチャを検出するためのプロセスのフローチャートである。
【図１２】本発明の一実施形態による意図的なレイズジェスチャ検出モジュールの機能ブロック図である。
【図１３】本発明の一実施形態によるフォーカス解消イベントを検出するためのプロセスのフローチャートである。
【図１４】本発明の一実施形態によるフォーカス解消検出モジュールの機能ブロック図である。
【図１５】本発明の一実施形態によるアプリケーションプロセッサをウェイクさせるか否かを決定するためのプロセスのフローチャートである。
【図１６】本発明の一実施形態によるプレヒート検出モジュールの機能ブロック図である。
【図１７】本発明の一実施形態によるウェイク制御ロジックの状態を示す状態図である。
【図１８】本発明の一実施形態によるウェイク制御ロジックで実装可能なプロセスのフローチャートである。
【発明を実施するための形態】
【００１５】
本発明による複数の実施形態では、ディスプレイが常にオンではない、手首に着用可能なデバイスなどのデバイスのユーザにとって、自然な対話を提供することができる。例えば、デバイスは、当該デバイスの移動をリアルタイムで検出でき、なおかつ（例えばデバイスに作用する重力加速度を検出することによって）デバイスの空間的な向きに関する情報を推定できる、加速度計及び／又はジャイロスコープなどのモーションセンサを含むことができる。モーションセンサからの信号に基づいて、着用可能コンピューティングデバイスで実行されるアルゴリズムによって、ユーザがデバイスのディスプレイを自分の視線内に移動している又は移動したことを示す動きのパターンと定義できる「レイズジェスチャ」を検出可能である。（デバイスの状態とユーザがデバイスを見ているか見ていないかの実態とが常に一致するわけではないこともあるが、本明細書で説明するアルゴリズムは、必ずしも完全ではないとはいえ高い信頼度でこれを一致させられることは、理解できよう。）このようなジェスチャが検出されると、着用可能コンピューティングデバイスは、そのディスプレイをアクティブにすることができる。レイズジェスチャの検出に基づいて、ユーザ入力コンポーネント（例えば、タッチスクリーンオーバーレイ、音声処理サブシステムなど）などの他のコンポーネントをアクティブにすることもできる。いくつかの実施形態では、レイズジェスチャの検出は、複数の段階でなされてもよく、異なるコンポーネントが異なる段階でアクティブにされてもよい。
【００１６】
本明細書で使用する場合、「手首に着用可能なデバイス」（又は「手首に着用可能なコンピューティングデバイス」）とは、広義には、フォームファクタがユーザの手首への着用に適しており、ユーザの手首に着用されているときにユーザに情報を提示してユーザから情報を受信できる電子デバイスをいう。いくつかの実施形態では、手首に着用可能なデバイスは、情報を視覚的に提示し、ユーザの指（又はユーザが操作する他の道具）によって、スクリーン又はスクリーン上の特定の領域でなされる接触ジェスチャとしてのユーザ入力を受信するタッチスクリーンディスプレイを有することができる。タッチスクリーンディスプレイに加えて又はタッチスクリーンディスプレイの代わりに、他のユーザインタフェースコンポーネントを提供することもできる。いくつかの実施形態では、手首に着用可能なデバイスは、スタンドアロンのデバイス（例えば、他のデバイスと通信していないデバイス）又は通信相手となる別の電子デバイスに対するコンパニオンデバイスとして動作可能である。例えば、手首に着用可能なデバイスは、ユーザの携帯電話又はユーザの別のパーソナル電子デバイスとペアリングすることが可能である。また、手首に着用可能なデバイスは、着呼、メッセージ又は他の通信が入ってきていることをユーザに通知するなど、他のデバイスの機能を活用又は強化することができる。
【００１７】
手首に着用可能なデバイスは、ユーザにとって便利なものとなり得る。このデバイスは、ユーザの通常の活動を最小限しか妨害しないか全く妨害する可能性がなく、デバイスを手首に位置させることで、容易にアクセスできるようにすることが可能である。ユーザは、単に手首を上げる及び／又は回転させれば、デバイスのディスプレイを自分の視線内に入れることができる。図１Ａ及び図１Ｂは、手首に着用可能なデバイス１０２をユーザ１００が着用している一般的な使用事例を示し、このデバイスは、ディスプレイ１０４を有する。図１Ａでは、ユーザの腕１０６は、ユーザの体側の自然な位置にあり、ディスプレイ１０４はユーザの視線内にない。この位置で、ユーザエクスペリエンスに影響することなく、ディスプレイ１０４を非アクティブ（例えば、情報が見えないような低電力状態又は電源オフの状態）にすることができる。図１Ｂでは、ユーザ１００は、ディスプレイ１０４がユーザの視線内の位置にくるまで、腕１０６を上げて回転させている。この位置では、ディスプレイ１０４がアクティブである（例えば、表示された情報をユーザが見ることができるように、電力が投入されて明るくなっている）と望ましい。
【００１８】
図１Ｃ及び図１Ｄは、ユーザ１００が、手首に着用可能なデバイス１０２を着用したままタイピングなどの活動をしている、別の一般的な使用事例を示す。図１Ｃでは、ユーザの腕１０６は、前腕が地面とほぼ平行で、指がキーに届くように手首をわずかに回内させた状態で、キーボード１２０でタイピングをするための位置にある。この位置では、図１Ａ同様に、ユーザエクスペリエンスに影響することなく、ディスプレイ１０４を非アクティブにすることができる。図１Ｄでは、ユーザ１００は、（指がキーボード１２０から離れるくらいに）腕１０６を少しだけ上げて、ディスプレイに１０４を視線内に入れるよう手首をさらに回内している。この位置では、図１Ｂ同様に、ディスプレイ１０４がアクティブであるのが望ましい。
【００１９】
１つの選択肢として、ディスプレイ１０４を常にアクティブにしておくことがある。しかしながら、ディスプレイ１０４が非アクティブのときよりアクティブのときのほうが多くの電力を消費するとすれば、使用していないときにディスプレイ１０４をアクティブのままにしておくと、デバイス１０２に電力を供給するバッテリに不必要な消耗を生じる可能性がある。別の選択肢として、ユーザ入力に応答したときだけ、ディスプレイ１０４をアクティブにすることがある。例えば、ユーザは、ディスプレイ１０４をウェイクさせるのに、デバイス１０２のボタンを押すかもしれない。しかしながら、これによって、デバイス１０２の便利さが損なわれる場合がある。例えば、図１Ａ及び図１Ｂに示すように、ユーザがもう片方の手で鞄１０８を持っていると、手首に着用可能なデバイス１０２のボタンを押すのに不都合が生じる場合がある。
【００２０】
本発明による複数の実施形態によれば、手首に着用可能なデバイス１０２などのデバイスは、ユーザがデバイスを見ようとしているのを自動的に検出できる。このような検出に基づいて、デバイスは、自機のディスプレイ及び／又は他の電力を消費するコンポーネントをアクティブにすることができる。いくつかの実施形態では、ユーザがデバイスを見ようとしていることの検出には、デバイス内の低電力コプロセッサ（例えば、モーションコプロセッサ）で実行される動き分析アルゴリズムを用いることができる。これによって、デバイスのメインプロセッサ（例えば、アプリケーションプロセッサ）を少なくともいくらかの時間スリープさせることができ、さらに電力が節約される。いくつかの実施形態では、動き分析アルゴリズムは、腕及び／又は手首を上げる及び／又は回転させるなど、ユーザがデバイスを見ようとしていることに関連付けられた動きのカテゴリ（本明細書では「レイズジェスチャ」という）（例えば、図１Ａと図１Ｂ、又は図１Ｃと図１Ｄの腕の位置の差）を検出することができ、レイズジェスチャ又は関連する動きの検出によって、ディスプレイをアクティブにするなどの様々な行為のトリガーとなることができる。レイズジェスチャ検出アルゴリズムは、ユーザの「開始」姿勢を感知できるものであってもよく、特定の開始姿勢が予想されるレイズジェスチャに影響する又はこれを変化させることがある。例えば、最初にユーザの腕が（図１Ａに示すように）下がった状態であるか、（例えば図１Ｂに示すように）肘が曲がった位置にあるかによって、予想されるレイズジェスチャが異なる場合がある。また、このアルゴリズムは、有用なデータのタイプ、開始姿勢及び／又はレイズジェスチャをなす動きの性質に影響する可能性のある、ユーザが走っている場合など動作の多い環境で動作するよう修正可能である。
【００２１】
デバイスを見ることに関連付けられた自然な動きに基づいてレイズジェスチャを検出できる例では、ユーザは、自然に手首を上げる及び／又は回転させて（例えば図１Ｂ又は図１Ｄに示すように）デバイスのディスプレイを視線内に入れ、デバイスに何かを急いで入力しなくても、すみやかに（又は無視できる遅れの後に）表示された情報を見ることができる。しかしながら、状況によっては、このように「自然な」レイズジェスチャを検出することは、実用的ではない場合がある。このため、「意図的な」レイズジェスチャを定義することが可能であり、この意図的なレイズジェスチャの検出が、ディスプレイ及び／又は他のコンポーネントをアクティブにすることにつながるようにすることができる。意図的なレイズジェスチャは、ユーザが、デバイスのディスプレイをアクティブにする意図を持って行うことができる具体的な動作と定義することができる。その動作は、ユーザがディスプレイをアクティブにしようとしていないときには行うことが比較的ないであろう腕又は手首の移動に関する仮定に基づいて、定義することができる。例えば、後述するように、意図的なレイズジェスチャは、短い時間幅内に手首が２回振動した後、デバイスが最終的な姿勢で安定することに対応するものと定義することができる。また、他の定義を使用することもできる。
【００２２】
自然なレイズジェスチャの検出、意図的なレイズジェスチャの検出又はデバイスとユーザとの他の何らかの対話の検出によるか否かを問わず、ユーザがデバイスを見ようとしていると判断されると、デバイスのユーザインタフェースをアクティブにして、ユーザがデバイスと対話できるようにすることが可能である。例えば、ユーザは、デバイスに表示された情報を見て入力コントロールを操作し、デバイスに情報及び／又は命令を与えることができるといった具合である。デバイスを見てデバイスと対話しているとき、おそらくユーザは比較的一定の向きでデバイスを持っているであろう。ユーザが対話を終えると、ユーザの腕はその開始位置に戻るか、デバイスのディスプレイがユーザの視線の方には向いていない別の位置に戻るであろう。いくつかの実施形態では、ユーザの視線からデバイスを外すであろう動きは、「フォーカス解消」ジェスチャとして検出でき、ディスプレイ及び／又は他の電力を消費するコンポーネントを非アクティブにするなど、節電のための様々な動作のトリガーとなり得る。
【００２３】
上記に加えて又は上記に代えて、いくつかの実施形態では、デバイスがアクティブに使用されていないときに、電力消費を抑えるために、デバイスのメインプロセッサ（「アプリケーションプロセッサ」ともいう）が低電力すなわち「スリープ」の状態になることができる。スリープ状態から、デバイスのアクティブな使用に適した「ウェイク」状態への遷移（メインプロセッサを「ウェイクさせる」ともいう）を完了させるには、これに付随していくらか待ち時間が生じることがある。このため、ユーザが実際にデバイスを見る前に、ディスプレイ又は他のユーザインタフェースコンポーネントまでもウェイクさせることなく、メインプロセッサのウェイクを開始すると望ましいことがある。いくつかの実施形態では、おそらくレイズジェスチャが開始されるであろうことを検出し、レイズジェスチャが完了する前にメインプロセッサのウェイクを開始することができる「プレヒート（preheat）」検出アルゴリズムを提供する。この動作によって、ユーザがまさにデバイスを見ている場合に、より短い応答時間とすることができる。プレヒート検出アルゴリズムは、レイズジェスチャ検出アルゴリズムと同時に、かつ通常はレイズジェスチャ検出アルゴリズムとは独立して動作することができる。例えば、これらのアルゴリズムは、受信した同じモーションセンサデータについて、異なる分析を行うことができる。
【００２４】
レイズジェスチャ（自然なレイズジェスチャ及び／又は意図的なレイズジェスチャを含む）及びフォーカス解消ジェスチャの検出を、様々な電子デバイスに実装することができる。図２Ａは、本発明の一実施形態によるデバイス２００のコンポーネントを示すブロック図である。デバイス２００は、例えば、図１Ａから図１Ｄに示す手首に着用可能なデバイス１０２の一実施例であり得る。デバイス２００は、ユーザインタフェース２０２と、アプリケーションプロセッサ２０４と、ストレージサブシステム２０６と、コプロセッサ２０８と、加速度計２１０と、ジャイロスコープ２１２と、を含むことができる。
【００２５】
ユーザインタフェース２０２には、ユーザとデバイス２００との対話を容易にするハードウェアコンポーネント及びソフトウェアコンポーネントを取り入れることができる。このようなコンポーネントは、おおよそ既存の設計のものであってもよいし、他の設計のものであってもよい。例えば、いくつかの実施形態では、ユーザインタフェース２０２は、ユーザの指及び／又は他の物体の接触を検出できる（例えば、容量方式又は抵抗方式の）タッチ感知式オーバーレイを有するディスプレイ（例えば、ＬＥＤベース、ＬＣＤベース、ＯＬＥＤベースなど）を取り入れたタッチスクリーンインタフェースを含むことができる。スクリーンの特定の領域に触れることによって、ユーザは、自分がしようとしている行為を示したり、デバイスからの視覚的なプロンプトに応答したりすることができる。これに加えて又はこれに代えて、ユーザインタフェース２０２は、オーディオコンポーネント（例えば、スピーカ、マイクロフォン）、ボタン、つまみ、ダイアル、触覚入力又は出力装置などを含んでもよい。
【００２６】
アプリケーションプロセッサ２０４は、おおよそ既存の設計のものであってもよいし、他の設計のものであってもよい１つ以上の集積回路を用いて実現可能（例えば、１つ以上のコアを備えたプログラム可能なマイクロコントローラ又はマイクロプロセッサ）であり、デバイス２００の一次処理サブシステムになり得る。ストレージサブシステム２０６は、メモリ回路（例えば、ＤＲＡＭ、ＳＲＡＭ、ＲＯＭ、フラッシュメモリなど）又は他のコンピュータ可読記憶媒体を用いて実装することができ、アプリケーションプロセッサ２０４による実行用のプログラム命令のみならず、その動作の過程でデバイス２００によって生成されたデータ又はデバイス２００に供給されたデータも記憶できる。動作時、アプリケーションプロセッサ２０４は、ストレージサブシステム２０６に記憶されたプログラム命令を実行し、デバイス２００の動作を制御することができる。例えば、プロセッサ２０４は、オペレーティングシステムのみならず、特定のタスク（例えば、時刻の表示、ユーザに対する情報の提示、ユーザからの情報の取得、対になったデバイスとの通信など）に専用の様々なアプリケーションプログラムも実行することができる。アプリケーションプロセッサ２０４が、必要な処理タスクであればどのようなものでも実行可能であり、本発明の実施形態がどのような特定のアプリケーションとも独立して機能できることは、理解できよう。
【００２７】
本明細書に記載の実施形態では、アプリケーションプロセッサ２０４は、アプリケーションプロセッサ２０４による活動（及び電力消費）を減らす又は最小限にすることのできる「スリープ」状態を少なくとも１つと、アプリケーションプロセッサ２０４がフルに動作している「ウェイク」状態を持つことができる。例えば、アプリケーションプロセッサ２０４がスリープ状態にある間、アプリケーションプロセッサ２０４は、アプリケーション及び／又はオペレーティングシステムのプログラムの実行を中断し、再びウェイク状態になったら実行を再開することができる。
【００２８】
コプロセッサ２０８は、アプリケーションプロセッサ２０４と同様に、おおよそ既存の設計のものであってもよいし、他の設計のものであってもよい１つ以上の集積回路（例えば、マイクロプロセッサ及び／又はマイクロコントローラ）を用いて実装することができる。コプロセッサ２０８は、アプリケーションプロセッサ２０４がスリープ状態であるかウェイク状態であるかとは独立して、ファームウェアとしてコプロセッサ２０８内に記憶されているか、又は他の方法でコプロセッサ２０８がアクセス可能なプログラムコード命令を実行することができる。いくつかの実施形態では、コプロセッサ２０８は、アクティブな動作時の電力消費をアプリケーションプロセッサ２０４よりも大幅に少なくすることができる。本明細書に記載する例では、コプロセッサ２０８は、レイズジェスチャ及び／又はフォーカス解消ジェスチャの検出を含む、動きの検出及び分析と関連する動作を行うことができる。また、いくつかの実施形態では、コプロセッサ２０８は、本明細書には記載のない他の動作を行うこともできる。
【００２９】
コプロセッサ２０８は、既存の設計又は他の設計の通信インタフェース（例えば、通信バス）であってもよいアプリケーションプロセッサインタフェース２１４経由で、アプリケーションプロセッサ２０４に動きの分析に基づいて通知を送ることができる。いくつかの実施形態では、この通知は、アプリケーションプロセッサ２０４をスリープ状態からウェイクさせる及び／又はユーザインタフェース２０２をアクティブにする信号を含んでもよい。いくつかの実施形態では、アプリケーションプロセッサインタフェース２１４は、さらに、加速度計２１０及び／又はジャイロスコープ２１２からアプリケーションプロセッサ２０４に、未処理のデータ又は部分的に処理されたデータを送ることができる。
【００３０】
動きの検出及び分析を容易にするために、コプロセッサ２０８は、加速度計２１０及びジャイロセンサ（ジャイロスコープともいう）２１２など、デバイス２００に内蔵されたモーションセンサから入力を受信することができる。加速度計２１０は、既存の設計又は他の設計を用いて実現可能であり、１本以上の軸に沿ってデバイス２００に生じる加速度（重力加速度のみならず、ユーザの動きによる加速度も含む）を感知できるものとすることができる。いくつかの実施形態では、加速度計２１０は、３軸低電力ＭＥＭＳ加速度計を取り入れることができ、固定のサンプリングレート（例えば１００Ｈｚ）で加速度データを提供することができる。ジャイロスコープ２１２も、既存の設計又は他の設計を用いて実現可能であり、１本以上の軸に沿ったデバイス２００の向きの変化を感知できるものとすることができる。また、ジャイロスコープ２１２は、固定のサンプリングレート（例えば１００Ｈｚ）で向きのデータを提供することができる。
【００３１】
本明細書に記載された例では、加速度計２１０及びジャイロスコープ２１２は、デバイス内で方向づけられて、デバイス相対座標系を定めることができる。図３は、手首に着用可能なデバイス３００（これは例えば、図１Ａ及び図１Ｂに示す手首に着用可能なデバイス１０２であってもよい）用のデバイス相対座標系の一例を示す。手首に着用可能なデバイス３００は、ディスプレイ３０６がユーザに見えるように、ストラップ又はバンド３０４によって、ユーザの手首３０２に固定することができる。図に示すように、ユーザがデバイス３００を着用しているとき、ユーザの前腕３０８と実質的に平行にｘ軸を定めることができ、ｘ軸と直交してディスプレイ３０６の平面内でｙ軸を定めることができ、ディスプレイ３０６の平面に直交して（観察者の方を指して）ｚ軸を定めることができる。いくつかの実施形態では、加速度計は、重力による加速度のみならず、ユーザの動きによる加速度も検出することができる。例えば、前腕３０８が水平に保たれている場合、加速度計は、重力の方向に対するｙ軸の角度が変化する際の開始時刻と終了時刻との間の加速度のｙ成分の変化として、ユーザの手首の回転（又はｘ軸を中心とした手首に着用可能なデバイス３００の回転）を検出することができる。また、ｘ軸を中心とした回転として、ジャイロスコープを用いて手首の回転を検出することもできる。図３に示す座標系は、本開示全体を通して使用されるが、他の座標系に置き換えてもよいことは、理解できよう。
【００３２】
もう一度図２Ａを参照すると、いくつかの実施形態では、コプロセッサ２０８は、（例えば、ソフトウェア又はファームウェアプログラムコードを使用して）加速度計２１０及び／又はジャイロスコープ２１２からの信号を分析するための動作及びアルゴリズムを実現する、様々なモジュールを含むことができる。これらのモジュール（「ジェスチャモジュール」又は「ジェスチャ検出モジュール」など、様々な呼称が使われる）のうちのいくつかには、検出レイズジェスチャ及び／又はフォーカス解消ジェスチャに関連する動作及びアルゴリズムを実装することができる。例えば、コプロセッサ２０８は、レイズジェスチャの可能性のある開始を検出するための「プレヒート」検出モジュール２２０と、「動作の少ない」環境における自然なレイズジェスチャを検出するための第１の「メイン」検出モジュール２２２と、「動作の多い」環境における自然なレイズジェスチャを検出するための第２のメイン検出モジュール２２４と、意図的なレイズジェスチャを検出するための「軽い揺らし（jiggle）」検出モジュール２２６と、想定される視線からユーザがデバイスを外したことを検出するためのフォーカス解消モジュール２２８と、を含むことができる。モジュール２２０、２２２、２２４、２２６、２２８に実装することができるアルゴリズムの例については、後述する。
【００３３】
ウェイク制御ロジック２３０は、分析モジュール２２０〜２２８の動作を制御することができ、モジュール２２０〜２２８によって報告されるジェスチャ状態の決定内容を受信することができる。例えば、ウェイク制御ロジックは、現在のジェスチャ状態に基づいて、任意の時点でモジュール２２０〜２２８のうちのどれをイネーブルにすべきか決定することができ、様々なアルゴリズムを選択的にイネーブル又はディセーブルにすることができる。アルゴリズムを選択的にディセーブルにすることで、コプロセッサ２０８による電力消費量を減らすことができる。また、ジェスチャ状態の決定内容に基づいて、ウェイク制御ロジック２３０は、アプリケーションプロセッサインタフェース２１４経由で、アプリケーションプロセッサ２０４及び／又はユーザインタフェース２０２に通知を送ることができる。
【００３４】
いくつかの実施形態では、ウェイク制御ロジック２３０及び／又は動き分析モジュール２２０〜２２８は、アルゴリズム又はオペレーションを選択的に又は継続的に実行できる追加のサポートモジュールを利用することができる。例えば、活動分類部２３２は、加速度計２１０及び／又はジャイロスコープ２１２（並びに、デバイス２００の中にあってもよい、生理センサなどの他のセンサ）からデータを受信することができ、このデータを分析して、例えば、歩いている、座っている又は静かに立っている、ジョギングしている、走っている、自転車に乗っている、自動車に乗っているなど、ユーザが行っている活動のタイプを決定することができる。活動分類部２３２には、様々なタイプの活動に関連付けられた特性を特定する機械学習アルゴリズムを実装可能であり、活動分類部２３２を配備する前にユーザの既知の活動中のセンサのデータを集めることによって、これらのアルゴリズムを訓練することができる。
【００３５】
いくつかの実施形態では、ウェイク制御ロジック２３０は、活動分類部２３２の出力を用いて、デバイス２００が、ローダイナミックメイン検出モジュール２２２を使用できる「動作の少ない」環境（例えば、座っている、歩いている又は他の比較的ゆっくりした移動など）にあるか、そうではなくハイダイナミックメイン検出モジュール２２４を使用すべき「動作の多い」環境（例えば、走っている）にあるかを決定することができる。ウェイク制御ロジック２３０は、活動分類部２３２によって示された環境のタイプに応じて、モジュール２２２又は２２４を選択的にイネーブル又はディセーブルにすることができる。
【００３６】
いくつかの実施形態では、ジェスチャ分類部２３４を使用して、メイン検出モジュール２２２又は２２４によって検出される自然なレイズジェスチャの検出を確認することができる。後述するように、メイン検出モジュール２２２及び２２４は、デバイスの位置を時間の関数として分析し、電力効率のよい方法でレイズジェスチャを検出することができる。しかしながら、これらのアルゴリズムは、視線内に入るまでデバイス２００を上げるのと似ている動きを伴うが実際にはそのような作用のないユーザの動作の結果として、時折、誤検出を生じることがある。例えば、ユーザがドアを開けるためにドアの取っ手を回したり、飲み物を飲むためにグラスを持ち上げていたりすることがある。ジェスチャ分類部２３４には、レイズジェスチャと他の似たような動きとを高信頼度で区別するように訓練された機械学習アルゴリズムを実装することができる。いくつかの実施形態では、ユーザが特定の行動（レイズジェスチャのみならず他の類似の行動を含む）を、実行されるその特定の行動が加速度計データ及び／又はジャイロスコープデータと一緒に記録できる状況で、行っている間に、加速度計データ及び／又はジャイロスコープデータを収集することで、ジェスチャ分類部２３４を訓練することができる。この情報を使用してアルゴリズムを訓練し、レイズジェスチャと他の似たような行動とを高信頼度で区別する出力を生成することができる。このため、メイン検出モジュール２２２又は２２４がジェスチャを検出すると、検出アルゴリズム（又はウェイク制御ロジック２３０）は、以後の確認又は否認のために、関連する特徴データをジェスチャ分類部２３４に提供することができる。ジェスチャ分類部２３４の使用例については、メイン検出モジュール２２２の実施形態に関連して後述する。いくつかの実施形態では、アプリケーションプロセッサ２０４がウェイク状態にあるときに、アプリケーションプロセッサ２０４でジェスチャ分類部２３４を実行することができる。
【００３７】
図２Ｂは、本発明の一実施形態によるデバイス２５０のコンポーネントを示すブロック図である。デバイス２５０は、例えば、図１Ａから図１Ｄに示す手首に着用可能なデバイス１０２の一実施例であり得る。デバイス２５０は、ユーザインタフェースコンポーネント２５２と、アプリケーション処理ユニット２５４と、動き処理ユニット２５８と、モーションセンサ２６０と、を含むことができる。ユーザインタフェースコンポーネント２５２は、図２Ａに示すユーザインタフェース２０２（又はタッチスクリーンディスプレイなど、そのコンポーネント）と類似又は同一であってもよい。メイン処理ユニット２５４は、図２Ａに示すアプリケーションプロセッサ２０４と類似又は同一であってもよい。モーションセンサ２６０は、図２Ａに示す加速度計２１０及び／又はジャイロセンサ２１２と類似又は同一であってもよい１つ以上のモーションセンサを含むことができる。他のユーザインタフェースコンポーネント及び／又はモーションセンサを使用することも可能である。
【００３８】
動き処理ユニット２５８は、図２Ａに示すコプロセッサ２０８と類似又は同一であってもよい。動き処理ユニット２５８は、様々なジェスチャ検出モジュールを取り入れることができる。例えば、プレヒート検出モジュール２７０は、図２Ａに示すプレヒート検出モジュール２２０と類似又は同一であってもよい。自然検出モジュール（ローダイナミック）２７２及び自然検出モジュール（ハイダイナミック）２７４は、図２Ａに示すメイン検出モジュール（ローダイナミック）２２２及びメイン検出モジュール（ハイダイナミック）２２４と類似又は同一であってもよい。意図検出モジュール２７６は、図２Ａに示す軽い揺らし検出モジュール２２６と類似又は同一であってもよい。フォーカス解消検出モジュール２７８は、図２Ａに示すフォーカス解消検出モジュール２２８と類似又は同一であってもよい。活動分類部モジュール２８２は、図２Ａに示す活動分類部２３２と類似又は同一であってもよい。ジェスチャ分類部モジュール２８４は、図２Ａに示すジェスチャ分類部２３４と類似又は同一であってもよい。追加のモジュール又は異なるモジュールを含むことが可能であり、いくつかの実施形態では、図示したよりも多くのモジュール又は少ないモジュールを含むことが可能である。
【００３９】
デバイス２００及び２５０は例示的なものであり、変形及び修正が可能であることが理解されるであろう。デバイス２００又は２５０の実施形態には、図示されたものに加えて、又は図示のものに代えて、他のコンポーネントを含むことができる。例えば、デバイス２００又は２５０は、電源（例えば、バッテリ）及び配電及び／又は電力管理コンポーネントを含んでもよい。デバイス２００又は２５０は、コンパス、温度計又は他の外部温度センサ、絶対位置を決定するための全地球測位システム（ＧＰＳ）受信機若しくは同様のもの、画像を捕捉するためのカメラ、生理センサ（例えば、脈拍センサ、血圧センサ、皮膚コンダクタンスセンサ、皮膚温度センサなど）などの他のセンサを含んでもよい。デバイス２００又は２５０は、パーソナルデバイス及び／又はネットワークアクセスデバイスをはじめとする他のデバイスとの通信を可能にするための通信コンポーネントを含むことができる。例えば、デバイス２００又は２５０は、ＲＦ送受信機及び１つ以上の無線通信標準（例えば、Ｂｌｕｅｔｏｏｔｈ標準、ＩＥＥＥ  ８０２．１１ファミリー標準、３Ｇ、ＬＴＥなどのセルラーデータネットワークデータ標準）を実装している、関連のプロトコルスタックを含むことができる。これに加えて又はこれに代えて、デバイス２００又は２５０は、（例えば、ＵＳＢ、ＵＡＲＴ、イーサネット又は有線通信プロトコルをサポートしている）レセプタクルコネクタなどの有線通信インタフェースを含んでもよい。
【００４０】
さらに、デバイス２００及び２５０は、特定のブロックを参照して説明されているが、これらのブロックは説明の都合上定義されたものであって、構成部品の特定の物理的構成を意味することを意図したものではないことは、理解できよう。さらに、これらのブロックは、物理的に別個のコンポーネントに相当する必要はなく、物理的に同じコンポーネントを使用して、複数のブロックの態様を実装してもよい。ブロックは、例えば、プロセッサをプログラムすることによって、あるいは適切な制御回路を設けることによって様々な動作を行うように構成することができ、最初の構成がどのように得られるかによって、様々なブロックを再構成できることもあれば、できないこともある。本発明の実施形態は、回路とソフトウェアとの任意の組み合わせを使って実装される電子機器を含む様々な装置において実現することができる。さらに、デバイス２００と２５０は完全に入れ替えが可能であり、デバイス２００（又はそのコンポーネント）に言及する説明がいずれもデバイス２５０にも適用されることは、理解できよう。
【００４１】
動作時、コプロセッサ２０８は、「常時オン」（例えば、デバイス２００が着用されている場合は常に）であってもよく、ウェイク制御ロジック２３０は、例えば、ユーザがデバイスを見ているか否かに応じて、モジュール２２０、２２２、２２４、２２６、２２８のいずれか又は全てを選択的にアクティブにする（又はイネーブルにする）ことができる。これらのアルゴリズムは、レイズジェスチャ、プレヒートイベント、フォーカス解消イベントなどをはじめとする様々なジェスチャ状態イベントを検出し、報告することができる。具体例については後述する。アルゴリズムがイベントを報告すると、ウェイク制御ロジック２３０は、アプリケーションプロセッサインタフェース２１４経由で、アプリケーションプロセッサ２０４にイベントを通知することができる。イベントに応じて、アプリケーションプロセッサ２０４は、スリープ状態からウェイク状態への遷移及び／又はアクティブな状態と非アクティブな状態との間でのユーザインタフェース２０２のコンポーネントの遷移など、様々な行動をとることができる。
【００４２】
以下、ジェスチャ関連イベントを検出するための具体的なアルゴリズムの例について説明する。本明細書で使用する場合、「ジェスチャ関連イベント」は概して、モジュール２２０、２２２、２２４、２２６、２２８などのモジュール又はアルゴリズムによって検出される、任意のジェスチャに関連した遷移をいう。このようなイベントの例としては、レイズジェスチャ（後述するような「可能性のある」「検出済」及び／又は「確認済」レイズジェスチャの特定を含む）、プレヒートジェスチャ及び／又はフォーカス解消ジェスチャが挙げられる。後述するような種類のアルゴリズムを、例えば、プログラム可能なプロセッサ（例えば、コプロセッサ２０８）に好適なプログラムコードを与えること及び／又は記載の動作を行うための専用のロジック回路を設けることによって、実装することができる。
【００４３】
いくつかの実施形態では、レイズジェスチャ検出アルゴリズムは、レイズジェスチャが行われたという確信を高める一連の状態を経て進むことができる。例えば、レイズジェスチャ検出アルゴリズムは、対象とする時間幅（例えば、ユーザがレイズジェスチャをするのに、おそらくかかるであろう時間）に対応する、一組のモーションセンサデータサンプル（加速度計及び／又はジャイロセンサのデータを含む）を選択することができる。組の中にある最も古い１つ以上のサンプルを考慮することで、このアルゴリズムは、時間幅の最初におけるデバイスの空間的な向きを反映可能な「開始姿勢」を定めることができる。この向きは、仮定された重力の垂直軸に対して定めることができる。開始姿勢に基づいて、アルゴリズムは、デバイスのディスプレイをユーザが視線内に入れる（デバイスが「フォーカス姿勢」にされているともいう）ためにおそらく生じるであろう動きの量及び／又は１つ以上の方向を、決定することができる。このおそらく生じるであろう動きの量及び／又は１つ以上の方向は、「可能性のある」レイズジェスチャを特定するための基準として表現されることができ、これらの基準を使用して、一組のモーションセンサデータサンプルのうちいくつか又は全てに基づいて、可能性のあるレイズジェスチャが生じているか否かを特定することができる。また、フォーカス姿勢に達しているデバイスが、少なくとも最短の時間、フォーカス姿勢のままであるか否かを決定することで、可能性のあるレイズジェスチャを「検出済」レイズジェスチャとして特定することができる。必要であれば、ジェスチャ分類部を使用して、さらなる確認を行ってもよい。レイズジェスチャ検出アルゴリズムは、可能性のあるレイズジェスチャ、検出済レイズジェスチャ及び／又は確認済レイズジェスチャを特定するたびに、デバイスの他のコンポーネントに通知することができる。
【００４４】
レイズジェスチャ検出の段階的なアプローチの具体例として、図４は、本発明の一実施形態によるレイズジェスチャ検出プロセス４００のフローチャートである。プロセス４００は、例えば、図２Ａに示すメイン検出（ローダイナミック）モジュール２２２において実行可能である。レイズジェスチャ検出プロセス４００は、（可能性のある、検出済の、確認済の）一連のジェスチャ状態を経て進むことができ、各々の状態遷移を、例えば図２Ａに示すウェイク制御ロジック２３０に報告することができる。後述するように、ウェイク制御ロジック２３０は、ジェスチャ状態遷移を使用して、アプリケーションプロセッサ２０４をウェイクさせるか否か及びそれをいつするか、並びに／又はユーザインタフェース２０２をアクティブにするようアプリケーションプロセッサ２０４に命じるか否か及びそれをいつするかを決定することができる。
【００４５】
プロセス４００は、ユーザインタフェース２０２が非アクティブな状態にあるときに開始することができる（ブロック４０２）。このとき、アプリケーションプロセッサ２０４は、必要に応じて、スリープ状態にあってもよいしウェイク状態にあってもよい。加速度計２１０は、一定のサンプリングレート（例えば１００Ｈｚ）で、更新されたデータを提供していることができ、このデータは、図３に示すようなデバイス相対座標を使用して、加速度のベクトル成分（ａx、ａy、ａz）を示すことができる。受信したデータについては、例えば、循環バッファ又はＦＩＦＯなどを用いてバッファすることができる。
【００４６】
ブロック４０４において、プロセス４００は、加速度計データバッファから、データサンプルを読み出すことができる。データ量は、動きを分析するための所望の時間幅とサンプリングレートに依存する場合がある。例えば、プロセス４００は、時間の固定の幅すなわちウィンドウ（例えば、０．５秒、１秒など）に対応するデータを読み出すことができる。
【００４７】
ブロック４０６では、プロセス４００は、時間幅の開始に相当することがある、バッファから読み出された最も古いサンプルなどに基づいて、デバイスの開始姿勢を推測することができる。いくつかの実施形態では、加速度計の測定値は、重力加速度（デバイスの向きに応じた方向で１ｇ）を含む。このため、他の加速度が比較的小さい場合、加速度計データに基づいて、重力に対するデバイスの向きを決定することができる。例えば、図１Ａに示す腕を下げた位置では、加速度計２１０は、約１ｇのａxを検出し、約０のａy及びａzを検出することがある。図１Ｃに示すタイピングをする位置では、加速度計２１０は、約０のａx、０から１ｇの間のａy、０からー１ｇの間のａzを検出することがある。よって、ブロック４０６には、最も古いサンプル（例えば、５〜１０個のサンプルの平均）と、特定の「基準となる」開始姿勢に関連するサンプルパターンとを比較することを含んでもよい。基準となる開始姿勢は、例えば、デバイスを着用している人が特定の姿勢（例えば、図１Ａ又は図１Ｃに示す姿勢）であることがわかっている条件下で収集された加速度計の測定値に基づいて、デバイスの配備前に定義することができる。いくつかの実施形態では、開始姿勢は、基準となる複数の開始姿勢を混合したものと定義することができる。例えば、この混合したものは、基準となる開始姿勢の加重平均と定義することができ、基準となる開始姿勢各々の重みは、基準となる開始姿勢に関連付けられたデバイスの向きと測定されたデバイスの向きがどの程度類似しているかの度合いに基づいている。
【００４８】
ブロック４０８では、推測された開始姿勢に基づいて、プロセス４００は、その開始姿勢から実行される「可能性のある」レイズジェスチャを特定するための基準を選択することができる。異なる開始姿勢には、異なる基準を定義してもよい。例えば、開始姿勢が（例えば、図１Ａに示すような）腕を下げた状態である場合、レイズジェスチャには前腕を持ち上げて手首を回転させることを伴うと予想され、両方とも主にａx及びａyの変化を参照して検出できるが、ａzに対するいくらかの影響も予想されることがある。開始姿勢が（例えば、図１Ｃに示すような）タイピングをする姿勢である場合、前腕はほとんど持ち上げらないか全く持ち上げらない（結果として、ａxがほとんど変化しない）可能性があるが、おそらく傾斜には変化が生じているであろう。これを最も高信頼度で検出できるのは、ａyの変化としてである。（ユーザが経験し得る偶発的な揺れ又は他のランダムな動きとは対照的に、意図的なジェスチャは滑らかになされると仮定して）動きの滑らかさを定量化するパラメータなど、バッファにある加速度計データから導くことが可能な他の基準を使用してもよい。いくつかの実施形態では、開始姿勢を前提とした可能性のあるレイズジェスチャを特定するための一組の基準を、ヒューリスティックに確立することができる。例えば、複数のユーザに、特定の開始姿勢からレイズジェスチャをするよう求め、開始姿勢からレイズジェスチャの完了までの移動の間に、得られる加速度計データを収集することができる。特定の開始姿勢からなされる、可能性のあるレイズジェスチャを認識するための特定の基準（例えば、ａyの変化の閾値、動きの滑らかさなど）を特定するために、統計的アルゴリズムを適用してこのデータを分析することができる。この段階での基準は、検出漏れ（false negative）は比較的少なく保てるが誤検出（false positive）が起こり得るほど粗いことがある。姿勢依存の閾値基準を確立するために、ヒューリスティックな練習を、基準となる開始姿勢に対して何回でも繰り返すことができる。いくつかの実施形態では、ブロック４０６で開始姿勢が推測されると、可能性のあるレイズジェスチャを特定するための対応する一組の基準をブロック４０８においてテーブルを参照して選択できるように、分析の結果を使用して基準のテーブルを生成することができる。いくつかの実施形態では、開始姿勢は、基準となる複数の開始姿勢を混合したものと定義することができ、この場合、ブロック４０８には、基準となる複数の開始姿勢のために定義された選択基準を混合することを含むことができる。
【００４９】
ブロック４１０では、プロセス４００は、例えば、ブロック４０８で選択された基準が満たされているか否かなど、可能性のあるレイズジェスチャが特定されたか否かを判定することができる。いくつかの実施形態では、この判定には、特定の加速度計データサンプル及び／又は加速度計データサンプルから計算された他のパラメータを、ブロック４０８で選択された閾値基準と比較することを含んでもよく、可能性のあるレイズジェスチャは、閾値の基準が満たされた場合に検出される。さらに、レイズジェスチャが行われている場合、このジェスチャが完了すると、デバイスは、自機のディスプレイがユーザの視線内にあることと整合性が取れる向きで静止すると想定されてもよい。このため、ブロック４１０には、例えば、時間幅の終了に対応し得る、バッファから読み出された最も新しいサンプルに基づいて、デバイスの終了姿勢を推測することを含むことができる。この終了姿勢を、ディスプレイがユーザの視線内にあることと整合性が取れる一定範囲の姿勢（例えば、水平に対してｙ及び／又はｘ方向に一定の傾斜角の範囲）と比較することができ、終了姿勢がこの範囲内にある場合に、可能性のあるレイズジェスチャが検出される。「フォーカス姿勢」という用語は、本明細書では、（例えば、傾斜角に基づいて）デバイスがユーザの視線内にあることと整合性が取れると考えられる範囲内の姿勢を総称するのに用いられる。
【００５０】
可能性のあるレイズジェスチャが検出されない場合、プロセス４００は、ブロック４０４に戻り、加速度計データを追加で読み出すことができる。上述したように、ブロック４０４で読み出されたデータは、実時間の固定幅に対応する固定長のウィンドウであってもよい。ブロック４０４の連続した繰り返しの際に読み出される連続したデータウィンドウは、重なることできる。例えば、ウィンドウが実時間の１秒に対応する場合、連続した繰り返しが０．１秒ごとなどで起こり得る（あるいは、これよりも速い速度でもよく、繰り返されるたびにウィンドウが少なくとも１サンプル分だけシフトする限り、ブロック４０６及び４０８の連続した繰り返しでの分析は冗長にはならない）。このようにすることで、ウィンドウの影響で検出漏れが生じる可能性を減らすことができる。
【００５１】
ブロック４１０で可能性のあるレイズジェスチャが検出されると、ブロック４１２において、プロセス４００は、可能性のあるジェスチャが検出されたことをウェイク制御ロジック２３０に通知することができる。後述するように、ウェイク制御ロジック２３０は、この通知に応じて、アプリケーションプロセッサ２０４及び／又はユーザインタフェース２０２に通知をするなどの行動をとることができる。ブロック４１４では、プロセス４００は、加速度計の追加のデータサンプル（例えば、元のウィンドウの外で新たに受信したサンプルを含む）を監視して、デバイスがフォーカス姿勢のままである（例えば、ほぼ同じ位置に保たれている）か移動し続けているかを検出することができる。例えば、上述したように、ユーザがデバイスを見ている間に想定される特定範囲の傾斜角に基づいて、フォーカス姿勢を定めることができる。傾斜角は加速度計データから推定でき、傾斜角がこの範囲に達してこの範囲内にとどまるのであれば、その状態がフォーカス姿勢のままであることに対応している可能性がある。
【００５２】
いくつかの実施形態では、フォーカス姿勢に対応する加速度計データの値の範囲は、少なくとも部分的に開始姿勢に依存することがある。例えば、開始姿勢からフォーカス姿勢への遷移には、ｙ軸に沿った一定量の傾斜（本明細書では「ｙ傾斜」ともいう）の蓄積を伴うことがある。例えば、蓄積したｙ傾斜は、（ユーザの手首が逸らされている間の）０以上である最初のａy成分から（ディスプレイをユーザの目の方に向けるよう手首が回転したときの）０未満である最後のａy成分までの正味の変化として測定することができる。ブロック４１４には、ｙ傾斜が一定のままであるか、蓄積し続けているか、方向が逆になるかを監視することを含むことができ、ｙ傾斜の蓄積がなくなると、動いてフォーカス姿勢から外れた可能性がある。
【００５３】
プロセス４００は、持続時間が閾値（例えば、０．１秒、０．５秒など）に達する又はこれを超えるまで、あるいは、フォーカス姿勢ではなくなったことが加速度計データによって示されるまで、ブロック４１４で持続時間を監視することができる。ブロック４１６では、持続時間が閾値に達する前にフォーカス姿勢ではなくなった場合、プロセス４００はブロック４０４に戻り、新たな開始姿勢を決定して可能性のある別のレイズジェスチャの検出を試みることができる。
【００５４】
ブロック４１６でフォーカス姿勢での持続時間が閾値を超えた場合は、以前に検出された可能性のあるレイズジェスチャを、検出済レイズジェスチャとして再分類することができる。ブロック４１８では、プロセス４００は、検出済レイズジェスチャが生じていることを、ウェイク制御ロジック２３０に通知することができる。後述するように、ウェイク制御ロジック２３０は、この通知に応じて、ユーザインタフェース２０２をアクティブにする、アプリケーションプロセッサ２０４に通知をするなどの行動をとることができる。
【００５５】
いくつかの実施形態では、誤検出を減らすためにレイズジェスチャのさらなる確認をすることが望ましい場合がある。このため、ブロック４２０において、レイズジェスチャを検出した後、プロセス４００は、さらなる分析プロセス、例えば、図２Ａに示すジェスチャ分類部２３４を呼び出すことができる。上述したように、ジェスチャ分類部２３４は、レイズジェスチャを他の類似のジェスチャと区別するように事前に訓練された機械学習アルゴリズムであってもよい。ジェスチャ分類部２３４は、ブロック４２０でプロセス４００によって提供されたデータを分析して、検出済レイズジェスチャを確認又は否認のいずれかをすることができる。ブロック４２２でレイズジェスチャが確認された場合、プロセス４００は、ブロック４２４でウェイク制御ロジック２３０にその旨を通知することができ、その後、プロセス４００を終えることができる（ブロック４２６）。ブロック４２２でレイズジェスチャが確認されない場合、プロセス４００は、ブロック４２８でウェイク制御ロジック２３０にその旨を通知することができ、その後、プロセス４００はブロック４０４に戻り、可能性のある別のレイズジェスチャの検出を試みることができる。いくつかの実施形態では、ブロック４２６で終了した後、例えば（後述するように）フォーカスの解消が検出されたとき又はユーザインタフェース２０２が何らかの理由で非アクティブになったときなど、いつでも（ブロック４０２で）プロセス４００を再開することができる。
【００５６】
図５は、本発明の一実施形態によるジェスチャ分類部を使用してジェスチャを確認するためのプロセス５００のフローチャートである。プロセス５００は、上述した図４に示すプロセス４００との関連で使用することができる。プロセス５００は、例えばメインジェスチャ検出モジュール２２２によって実行可能であり、これによってジェスチャ分類部２３４を呼び出すことができる。
【００５７】
プロセス５００は、メインジェスチャ検出モジュール２２２が、例えばプロセス４００のブロック４１６でレイズジェスチャを検出したときに、ブロック５０２で開始することができる。ブロック５０４において、メインジェスチャ検出モジュール２２２は、検出済レイズジェスチャに信頼スコアを割り当てることができる。いくつかの実施形態では、信頼スコアを、デバイスの姿勢がフォーカス姿勢の予想される特徴といかに良く一致するか（例えば、デバイスの姿勢が、フォーカス姿勢で予想される加速度計データの値及び／又は傾斜値の範囲の端付近にあるか中央付近にあるか）ということと、フォーカス姿勢の持続時間の長さとの組み合わせに基づくものとすることができる。
【００５８】
ブロック５０６では、プロセス５００は、ジェスチャ分類部にとっての目立った開始点を（時刻で）選択することができる。この目立った開始点は、フォーカス姿勢に至る加速度計データサンプルの傾向に基づいて選択可能である。例えば、プロセス５００は、加速度計データサンプルが、レイズジェスチャを示す形で変化し始めた時点を特定することができる。これによって、プロセス５００は、ユーザが異なる速度でレイズジェスチャを行うことができるという事実を考慮できるようになる。ユーザが素早く移動すると、目立った開始点は、ユーザがゆっくり移動する場合よりも現在（すなわち最新のサンプル）に近づくことになる。このように、ジェスチャ分類に関連するデータのウィンドウを可変にすることができる。
【００５９】
ブロック５０８では、プロセス５００は、目立った開始点から現在まで延びるデータのウィンドウから、ジェスチャ分類部が対象とする特徴を抽出することができる。レイズジェスチャの対象とする特徴は、ジェスチャ分類部がどのように訓練されたかに依存することがある。ジェスチャ分類部が加速度計データに基づいて動作するいくつかの実施形態では、対象とする特徴として、加速度計の実際のサンプル（ａx、ａy、ａz）、滑らかさのパラメータ（例えば、加速度計の連続するサンプル間の変化の標準偏差に基づく）、時間の関数としての蓄積した傾斜（例えば、ｙ傾斜）、開始時及び終了時のデバイスの向き又は姿勢（例えば、開始時と終了時の傾斜値）が挙げられる。ジェスチャ分類部がジャイロスコープデータに基づいて動作するいくつかの実施形態では、対象とする特徴として、ジャイロスコープの実際のサンプル（ｒx、ｒy、ｒz）、水平面（すなわち、重力方向に垂直な面）を横切る円弧の長さ、滑らかさのパラメータ（例えば、ジャイロスコープの連続するサンプル間の変化の標準偏差に基づく）が挙げられる。
【００６０】
ブロック５１０では、プロセス５００は、ジェスチャ分類部２３４を呼び出して、抽出された特徴を処理することができる。いくつかの実施形態では、ジェスチャ分類部２３４を、線形判別分析を実行するベイジアン分類部とすることができる。上述したように、配備に先立って線形判別分析アルゴリズムを訓練することができ、これによって、特徴がレイズジェスチャに対応する確率をジェスチャ分類部２３４で迅速に計算できるようにしている。ブロック５１２では、プロセス５００は、ジェスチャ分類部２３４からの出力を受信することができる。この出力は、例えば、レイズジェスチャがなされた（０と１との間の）確率を含んでもよい。
【００６１】
ブロック５１４では、プロセス５００は、レイズジェスチャが確認されたか否かを決定することができる。いくつかの実施形態では、この決定は、ジェスチャ分類部２３４の確率出力についての閾値に基づくことができ、閾値については、例えば０．５、０．７５、０．８５又は必要に応じて他の何らかの閾値に設定できる。通常、閾値が大きいほど誤検出が少なくなるが、検出漏れが多くなり、所与の実装で許容される誤検出及び／又は検出漏れのレベルに基づいて、最適な閾値を選択することができる。いくつかの実施形態では、閾値を、ブロック５０４で割り当てられる信頼スコアの関数として選択することができる。例えば、ブロック５１４での信頼スコアが大きいと、ジェスチャ分類部によって割り当てられる確率に対する閾値が小さくなることがあり、信頼スコアが小さいと、ジェスチャ分類部によって割り当てられる確率に対する閾値が大きくなることがある。
【００６２】
ブロック５１６では、プロセス５００は、判定を下すか、より多くのデータを待つかを決定することができる。例えば、ジェスチャが確認されないが、ジェスチャ分類部からの確率出力が閾値に近い場合、追加のデータを待つことが好ましい場合がある。この場合、プロセス５００は、レイズジェスチャの確認、否認のいずれもせずにブロック５１８で終了することができ、上述したプロセス４００のブロック４１４に制御を戻すことができる。あるいは、プロセス５００は、確認又は否認のいずれかをしてブロック５２０で終了することができ、上述したプロセス４００のブロック４２２に制御を戻すことができる。
【００６３】
プロセス５００は例示的であり、変形及び修正が可能であることが理解されるであろう。逐次として説明されたステップを同時並行で行ってもよく、ステップの順序を変更しても、ステップの修正、組み合わせ、追加又は省略をしても構わない。例えば、他の確認アルゴリズムを使用することができる。いくつかの実施形態では、プロセス５００は、待機する選択肢なしで、常に確認又は否認の判定をすることができる。
【００６４】
いくつかの実施形態では、ジェスチャ分類部２３４による確認又は否認によって、デバイスの挙動が変わることがある。例えば、検出済レイズジェスチャが確認されるまで、いくつか又は全てのユーザインタフェースコンポーネントをアクティブにするのを延期することができる。別の例として、検出済レイズジェスチャに応じてユーザインタフェースコンポーネントがアクティブにされた場合、ジェスチャ分類部２３４によるその後の否認によって、そのユーザインタフェースコンポーネントを非アクティブにすることができる。
【００６５】
図６は、本発明の一実施形態によるプロセス４００）を実行するレイズジェスチャ検出モジュール２２２のジェスチャ状態を示す状態図である。これらの状態間の遷移を、ウェイク制御ロジック２３０に報告することが可能であり、又は他の方法で、ユーザインタフェース２０２及び／又はデバイス２００の他のコンポーネントの状態に影響を及ぼすのに使用することができる。
【００６６】
状態６０２は、ジェスチャ検出モジュール２２２がまだ可能性のあるレイズジェスチャを検出していない「ヌル」状態とすることができる。これは、例えば図４のプロセス４００の初期状態であってもよく、可能性のあるレイズジェスチャが（例えば、図４のブロック４１０で）検出されるまで、モジュール２２２は、この状態にとどまることができる。状態６０４は、モジュール２２２が（例えば、図４のブロック４１０で）可能性のあるレイズジェスチャを検出した「可能性のあるジェスチャ」状態とすることができる。その後に可能性のあるレイズジェスチャが却下された場合は、モジュール２２２は、ヌル状態６０２に戻ることができる。可能性のあるレイズジェスチャが（例えば図４のブロック４１６で）検出済レイズジェスチャになると、モジュール２２２は、「検出済ジェスチャ」状態６０６に遷移することができる。これは、レイズジェスチャが生じている確信度の高まりを反映している。状態６０６にある間に、（例えば、プロセス４００のブロック４２０及び４２２で）さらなる分析を行い、検出済レイズジェスチャを確認することができる。検出済レイズジェスチャが確認されない場合、モジュール２２２は、ヌル状態６０２に戻ることができる。検出済レイズジェスチャが確認されると、モジュール２２２は、確認済ジェスチャ状態６０８に遷移することができる。この時点で、レイズジェスチャの検出が終了し、モジュール２２２のそれ以上の実行を止めることができる。上述したように、レイズジェスチャの検出が再び有用になる（例えば、フォーカス解消が検出されるか、そうでなければ、ユーザインタフェース２０２が非アクティブになる）と、モジュール２２２を再起動することができる。さらに、後述するように、確認済ジェスチャ状態６０８に達すると、フォーカス解消検出モジュール２２８などの他のアルゴリズムを使用して、ジェスチャ状態の監視を続けて、確認済ジェスチャ状態６０８からヌル状態６０２への遷移を検出することができる。プロセス４００は、図６の状態及び遷移を提供するモジュール２２２の例を提供するものであるが、他のアルゴリズムに置き換えてもよいことは、理解できよう。
【００６７】
図７は、本発明の一実施形態による自然なレイズジェスチャ検出モジュール７００の機能ブロック図である。図に示すように、自然なレイズジェスチャ検出モジュール７００を、図２Ｂの動き処理ユニット２５８内で、例えば自然なレイズジェスチャ検出モジュール２７２として実装することができる。また、自然なレイズジェスチャ検出モジュール７００を、図２Ａのメイン（ローダイナミック）検出モジュール２２２として実装することもできる。自然なレイズジェスチャ検出モジュール７００は、開始姿勢推測ユニット７０２と、基準決定ユニット７０４と、可能性のあるレイズジェスチャ決定ユニット７０６と、検出済レイズジェスチャ決定ユニット７０８と、確認ユニット７１０と、を含むことができる。それぞれのユニットを、例えば、プロセッサ及び／又は専用の論理回路上で実行可能なプログラムコードを使用して実装することができる。
【００６８】
開始姿勢推測ユニット７０２は、モーションセンサデータを受信し、モーションセンサデータに基づいて開始姿勢を推測することができる。例えば、開始姿勢推測ユニット７０２には、上述したプロセス４００のブロック４０６を実装することができる。開始姿勢推測ユニット７０２は、推定開始姿勢を、基準決定ユニット７０４に提供することができる。
【００６９】
基準決定ユニット７０４は、開始姿勢推測ユニット７０２によって推測された開始姿勢に少なくとも部分的に基づいて、可能性のあるレイズジェスチャを検出するための基準を決定することができる。例えば、基準決定ユニット７０４には、上述したプロセス４００のブロック４０８を実装することができる。基準決定ユニット７０４は、可能性のあるレイズジェスチャを検出するための基準を、可能性のあるレイズジェスチャ決定ユニット７０６に提供することができる。
【００７０】
可能性のあるレイズジェスチャ決定ユニット７０６は、モーションセンサを受信し、受信データが基準決定ユニット７０４によって決定された基準を満たすか否かを決定することができる。例えば、可能性のあるレイズジェスチャ決定ユニット７０６には、上述したプロセス４００のブロック４１０を実装することができる。基準が満たされた場合、可能性のあるレイズジェスチャ決定ユニット７０６は、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。例えば、可能性のあるレイズジェスチャ決定ユニット７０６には、上述したプロセス４００のブロック４１２を実装することができる。また、可能性のあるレイズジェスチャ決定ユニット７０６は、基準が満たされた場合、検出済レイズジェスチャ決定ユニット７０８にも通知をすることができる。
【００７１】
検出済レイズジェスチャ決定ユニット７０８は、可能性のあるレイズジェスチャ決定ユニット７０６から、可能性のあるレイズジェスチャの通知を受信することができ、加速度計データを追加で監視して、最小限の持続時間が生じる及び／又は検出済レイズジェスチャのための他の条件が満たされるか否かを決定することができる。例えば、検出済レイズジェスチャ決定ユニット７０８には、上述したプロセス４００のブロック４１４及び４１６を実装することができる。検出済レイズジェスチャのための条件が満たされる場合、検出済レイズジェスチャ決定ユニット７０８は、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。例えば、検出済レイズジェスチャ決定ユニット７０８には、プロセス４００のブロック４１８を実装することができる。また、検出済レイズジェスチャ決定ユニット７０８は、検出済レイズジェスチャのための条件が満たされるか否かを確認ユニット７１０に通知することもできる。
【００７２】
確認ユニット７１０は、検出済レイズジェスチャに関連付けられたモーションセンサデータに基づいて、ジェスチャの確認を行うことができる。例えば、確認ユニット７１０には、上述したプロセス４００のブロック４２０及び４２２及び／又はプロセス５００のブロック５０４〜５２０を実装することができる。いくつかの実施形態では、確認ユニット７１０は、図２Ａのジェスチャ分類部２３４又は図２Ｂのジェスチャ分類部モジュール２８４を呼び出すことができる。確認ユニット７１０は、検出済レイズジェスチャが確認されたか否認されたかを、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。
【００７３】
自然なレイズジェスチャ検出モジュール７００は例示的なものであり、変形及び変更が可能であることが理解されるであろう。例えば、自然なレイズジェスチャ検出モジュール７００は、特定のブロック又はユニットを参照して説明されているが、これらのブロックは説明の都合上定義されたものであって、構成部品の特定の物理的構成を意味することを意図したものではないことは、理解できよう。さらに、これらのブロックは、物理的に別個のコンポーネントに相当する必要はなく、物理的に同じコンポーネントを使用して、複数のブロックの態様を実装してもよい。ブロックは、例えば、プロセッサをプログラムすることによって、あるいは適切な制御回路を設けることによって様々な動作を行うように構成することができ、最初の構成がどのように得られるかによって、様々なブロックを再構成できることもあれば、できないこともある。本発明の実施形態は、回路とソフトウェアとの任意の組み合わせを使って実装される電子機器を含む様々な装置において実現することができる。
【００７４】
自然なレイズジェスチャを検出するためのアルゴリズムの別の例が、図２Ａのハイダイナミックメイン検出モジュール２２４であり、これを、ユーザが走るなどの動作の多い活動をしているときの自然なレイズジェスチャの検出に、適合させることができる。本明細書で使用する場合、「動作の多い活動」とは、加速度計データがレイズジェスチャを検出するには信頼できないものとなり得るような腕又は手首の大きな動きを本来的に伴う活動をいうことができる。ユーザが動作の多い活動をしているとき、ハイダイナミック検出モジュール２２４は、加速度計データを、ジャイロセンサ２１２などの他のセンサからのデータで補うか、又はこれで置き換えることができる。
【００７５】
ローダイナミック検出モジュール２２２を使用するかハイダイナミック検出モジュール２２４を使用するかを、例えばウェイク制御ロジック２３０によって決定することができる。例えば、ウェイク制御ロジック２３０は、ユーザが現在動作の多い活動をしている（例えば、走っている）か、他の活動をしている（例えば、歩いている）か、何も活動していないかを示す情報を、活動分類部２３２から受信することができる。別の例として、いくつかの実施形態では、ユーザが、動作の多い活動を開始しようとしているという直接的な指示を提供してもよい。例えば、ユーザは、（例えば、デバイス上のトレーニング追跡アプリケーションプログラムと対話することによって）自分が走り始めようとしていることを示すことができ、このことから、トレーニングが終わるまで、ハイダイナミック検出モジュール２２２を使用すべきであると推定することができる。活動分類部２３２からの入力及び／又は直接的なユーザ入力を含む利用可能な入力のどのような組み合わせでも、ユーザが動作の多い活動をしているか否かをウェイク制御ロジック２３０で推定するのに使用することができる。この推測に応じて、ウェイク制御ロジック２３０は、ローダイナミック検出モジュール２２２（ユーザが動作の多い活動を行っていない場合）又はハイダイナミック検出モジュール２２４のいずれかを選択することができる。いくつかの実施形態では、異なるタイプの活動で使用する異なるアルゴリズムを提供することができる。例えば、複数のハイダイナミック検出アルゴリズム（例えば、走ること対ボートを漕ぐことなど）があり得る。
【００７６】
図８は、本発明の一実施形態による動作の多い活動（例えば、走ること）の間に自然なレイズジェスチャを検出するためのプロセス８００のフローチャートである。プロセス８００は、例えば、図２Ａのデバイス２００のハイダイナミック検出モジュール２２４で実装することができる。この例では、ハイダイナミック検出プロセス８００は、一連のジェスチャ状態（図６に示す状態と類似又は同一であり得る）を経て進むことができ、各々の状態遷移を、例えば図２Ａに示すウェイク制御ロジック２３０に報告することができる。後述するように、ウェイク制御ロジック２３０は、ジェスチャ状態遷移を使用して、アプリケーションプロセッサ２０４をウェイクさせるか否か、及びそれをいつするか、並びに／又はユーザインタフェース２０２をアクティブにするようアプリケーションプロセッサ２０４に命じるか否か、及びそれをいつするかを決定することができる。この例では、プロセス８００は、（例えば、図２Ａの加速度計２１０からの）加速度計のフィルタリングしたデータで補った状態で、主に（例えば、図２Ａのジャイロセンサ２１２からの）ジャイロスコープデータに頼ることができる。
【００７７】
プロセス４００と同様に、プロセス８００は、ユーザインタフェース２０２が非アクティブな状態にあるときに、開始することができる（ブロック８０２）。このとき、アプリケーションプロセッサ２０４は、必要に応じて、スリープ状態にあってもよいしウェイク状態にあってもよい。ジャイロセンサ２１２をアクティブにして、一定のサンプリングレート（例えば、１００ヘルツ）で、更新されたデータサンプル（「ジャイロスコープデータ」という）を提供することが可能であり、図３に示すようなデバイス相対座標を使用して、ジャイロスコープの各々のデータサンプルで回転の成分（ｒx、ｒy、ｒz）を示すことができる。ここで、ｒxは、図３のｘ軸を中心とした回転を示すといった具合である。受信したジャイロスコープデータについては、例えば、循環バッファ又はＦＩＦＯなどを用いてバッファすることができる。
【００７８】
ブロック８０４において、プロセス８００は、ジャイロスコープデータバッファから、データサンプルを読み出すことができる。データ量は、サンプリングレート、バッファサイズ及び動きを分析するための所望の時間幅に依存する場合がある。例えば、プロセス８００は、実時間の固定の幅、例えば、０．３秒、０．５秒、１秒などに対応する固定長のデータウィンドウを読み出すことができる。
【００７９】
ブロック８０６では、プロセス８００は、デバイスの開始姿勢を推測することができる。走っている状況では、例えば、ユーザの腕は、手のひらが（ユーザの身体に向かって）内側に向けられて自然な曲げ位置に保たれていると仮定することができる。図１０Ａ及び図１０Ｂは、手首に着用可能なデバイス１０２を装着している、走っているユーザの一例を示している。図１０Ａに示すように、通常の自然な走る位置において、ディスプレイ１０４は（ユーザの身体から離れる方向に）外側に向いている。厳密な角度はユーザに応じて変化し、ユーザの腕の自然な振れがゆえに、（図３に定義したような）ｘ軸を中心として小さな揺動回転が存在することがある。走りながらデバイスを見るために、ユーザは、図１０Ｂに示すように、（手のひらを下方に回転させて）手首を回内させて、おそらくは腕を上げることで、ディスプレイ１０４を視線内に入れることができる。このような動作は、走者の典型的な腕の振りよりも、ｘ軸を中心とした大きな回転を伴う。このため、ｘ軸を中心とした蓄積した（accrued）回転を、可能性のあるレイズジェスチャの良好な第１の指標とすることができ、ブロック８０８で、プロセス８００は、バッファされたジャイロスコープデータを分析して、ｘ軸を中心とした蓄積した回転を決定することができる。
【００８０】
ブロック８１０では、蓄積した回転に基づいて、プロセス８００は、可能性のあるレイズジェスチャが検出されているか否かを決定することができる。いくつかの実施形態では、この決定には、時間幅の終了時に回転運動が大幅に遅くなった又は停止したか否かを決定することを含んでもよく、これは、ユーザが、デバイスを見ることができるほど十分に安定してと腕を保っていることを示唆している。可能性のあるレイズジェスチャが検出されない場合、プロセス８００は、ブロック８０４に戻って、データを追加で読み出すことができる。上述したように、ブロック８０４で読み出されるデータは、固定長のウィンドウであってもよい。ブロック８０４の連続した繰り返しの際に読み出される連続したデータウィンドウは、重なることができる。例えば、ウィンドウが実時間の０．５秒に対応する場合、連続した繰り返しが０．１秒ごとなどに起こり得る（あるいは、これよりも速い速度で、繰り返されるたびにウィンドウが少なくとも１サンプル分だけシフトする限り、ブロック８０６及び８０８の連続した繰り返しでの分析は冗長にはならない）。ウィンドウを重ねることで、ウィンドウの影響で検出漏れが生じる可能性を減らすことができる。
【００８１】
ブロック８１０で可能性のあるレイズジェスチャが検出されると、ブロック８１２で、プロセス８００は、可能性のあるレイズジェスチャが検出されたことをウェイク制御ロジック２３０に通知することができる。図６の状態図では、これは、ヌル状態６０２から可能性のあるジェスチャ状態６０４への遷移に対応することがある。後述するように、ウェイク制御ロジック２３０は、この通知に応じて、アプリケーションプロセッサ２０４に通知をするなどの行動をとることができる。ブロック８１４では、プロセス８００は、加速度計のフィルタリングしたデータを使用して、終了姿勢の推測を確認することができる。加速度計データを大幅にフィルタリングして、走ることに付随する腕の動きのアーチファクトを除去することができ、デバイスのディスプレイがユーザに見えるであろう姿勢に対応する姿勢を確認するのに使用することができる。終了姿勢の推測に基づいて、ブロック８１６において、プロセス８００は、可能性のあるレイズジェスチャを検出済レイズジェスチャとして再分類するか否かを決定することができる。しない場合、プロセス８００は、ブロック８０４に戻って別の可能性のあるレイズジェスチャの検出を試みることができる。
【００８２】
ブロック８１６でレイズジェスチャが検出された場合、ブロック８１８で、プロセス８００は、検出済レイズジェスチャが生じていることを、ウェイク制御ロジック２３０に通知することができる。後述するように、ウェイク制御ロジック２３０は、この通知に応じて、アプリケーションプロセッサ２０４に通知をする及び／又はユーザインタフェース２０２をアクティブにするなどの行動をとることができる。この状態で、プロセス８００を終えることができる（ブロック８２０）。あるいは（図８には図示せず）、ジェスチャ分類部２３４を使用して、検出済レイズジェスチャを確認することができる。上述したように、ジェスチャ分類部２３４を訓練して、自然なレイズジェスチャを、走っている間にユーザが行うことがある他の類似の行動（例えば、水筒から水を飲む、額の汗を拭うなど）と区別することができ、結果は上述のプロセス４００の確認部分と類似のものとなり得る。
【００８３】
レイズジェスチャ検出プロセス４００及び８００は例示的なものであり、変形及び変更が可能であることが理解されるであろう。逐次として説明されたステップを同時並行で行ってもよく、ステップの順序を変更しても、ステップの修正、組み合わせ、追加又は省略をしても構わない。異なる閾値、基準、及びセンサ入力を使用することができ、必要に応じて、異なる状態の組を定義することができる。いくつかの実施形態では、ユーザが何をしているかに応じて、プロセス４００及び８００を別の方法で呼び出すことができる。例えば、ジャイロセンサは、加速度計よりも多くの電力を消費する場合がある。このため、ユーザが座っている、立っている又は歩いているなど、加速度計データを十分に信頼できてプロセス４００を使用できる状況では、ジャイロセンサの電源を切り、（ジャイロセンサのデータを入力として使用する）プロセス８００を非アクティブにすることが望ましいことがある。上述したように、ウェイク制御ロジック２３０は、活動分類部２３２からの情報に基づいて、所与の時に１つ以上のジェスチャ検出アルゴリズムのどれをアクティブにすべきか決定することができ、所望の１つ以上のアルゴリズムをアクティブにする（又はイネーブルにする）ことができる。活動情報についての他のソースを利用することもできる。例えば、いくつかの実施形態では、ウェイク制御ロジック２３０は、受信した加速度計データのデータ品質分析を行い、プロセス４００が信頼できそうか否かを決定することができる。信頼できそうな場合、プロセス４００を行うことができ、プロセス４００が信頼できそうにない場合、プロセス８００を使用することができる。
【００８４】
図９は、本発明の一実施形態による自然なレイズジェスチャ検出モジュール９００の機能ブロック図である。図に示すように、自然なレイズジェスチャ検出モジュール９００は、例えば、自然なレイズジェスチャ検出モジュール２７４のように、図２Ｂの動き処理ユニット２５８で実装することができる。また、自然なレイズジェスチャ検出モジュール９００は、図２Ａのメイン（ハイダイナミック）検出モジュール２２４として実装することもできる。自然なレイズジェスチャ検出モジュール９００は、開始姿勢推測ユニット９０２と、可能性のあるレイズジェスチャ決定ユニット９０６と、検出済レイズジェスチャ決定ユニット９０８と、を含むことができる。それぞれのユニットを、例えば、プロセッサ及び／又は専用の論理回路上で実行可能なプログラムコードを使用して実装することができる。
【００８５】
開始姿勢推測ユニット９０２は、モーションセンサデータを受信して、モーションセンサデータに基づいて開始姿勢を推測することができる。例えば、開始姿勢推測ユニット９０２には、上述したプロセス８００のブロック８０６を実装することができる。開始姿勢推測ユニット９０２は、推測された開始姿勢を、可能性のあるレイズジェスチャ決定ユニット９０６に提供することができる。
【００８６】
可能性のあるレイズジェスチャ決定ユニット９０６は、推測された開始姿勢及びモーションセンサデータを受信して、受信したデータが、可能性のあるレイズジェスチャの基準を満たすか否かを決定することができる。例えば、可能性のあるレイズジェスチャ決定ユニット９０６には、上述したプロセス８００のブロック８０８及び８１０を実装することができる。基準が満たされている場合、可能性のあるレイズジェスチャ決定ユニット９０６は、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。例えば、可能性のあるレイズジェスチャ決定ユニット９０６には、上述したプロセス８００のブロック８１２を実装することができる。また、可能性のあるレイズジェスチャ決定ユニット９０６は、基準が満たされた場合に、検出済レイズジェスチャ決定ユニット９０８に通知することができる。
【００８７】
検出済レイズジェスチャ決定ユニット９０８は、可能性のあるレイズジェスチャの通知を、可能性のあるレイズジェスチャ決定ユニット９０６から受信することができ、モーションセンサデータを追加で監視して、検出済レイズジェスチャのための条件が満たされているか否かを決定することができる。例えば、検出済レイズジェスチャ決定ユニット９０８には、上述したプロセス８００のブロック８１４及び８１６を実装することができる。検出済レイズジェスチャのため条件が満たされたら、検出済レイズジェスチャ決定ユニット９０８は、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。例えば、検出済レイズジェスチャ決定ユニット９０８には、プロセス８００のブロック８１８を実装することができる。
【００８８】
自然なレイズジェスチャ検出モジュール９００は例示的なものであり、変形及び修正が可能であることが理解されるであろう。例えば、自然なレイズジェスチャ検出モジュール９００は、特定のブロック又はユニットを参照して説明されているが、これらのブロックは説明の都合上定義されたものであって、構成部品の特定の物理的構成を意味することを意図したものではないことは、理解できよう。さらに、これらのブロックは、物理的に別個のコンポーネントに相当する必要はなく、物理的に同じコンポーネントを使用して、複数のブロックの態様を実装してもよい。ブロックは、例えば、プロセッサをプログラムすることによって、あるいは適切な制御回路を設けることによって様々な動作を行うように構成することができ、最初の構成がどのように得られるかによって、様々なブロックを再構成できることもあれば、できないこともある。本発明の実施形態は、回路とソフトウェアとの任意の組み合わせを使って実装される電子機器を含む様々な装置において実現することができる。追加のブロック（例えば、確認が望まれる場合、確認ユニット７１０と同様のブロック）を加えてもよい。
【００８９】
個別に又は組み合わせて使用することで、プロセス４００及び８００によって、多岐にわたる条件下で自然なレイズジェスチャを検出することができる。しかしながら、ユーザが、検出されないレイズジェスチャをする可能性が残っている場合もある。例えば、アルゴリズムの詳細によっては、自然なレイズジェスチャは、ユーザが横になっている場合（これは、ユーザの視線内にデバイスを配置する重力に対する向きについての仮定に反する可能性がある）、ディスプレイが手首の内側に来るようにユーザがデバイスを着用している場合（これは、デバイスをユーザの視線内に入れるのに必要な回転の量及び／又は方向についての仮定に反する可能性がある）、ユーザが加速された環境にいる場合（ジェットコースターなど）などに、信頼性が低いことがある。
【００９０】
このため、いくつかの実施形態では、意図的なレイズジェスチャを検出するためのアルゴリズムを追加で提供することができる。これによって、ユーザは、自分がディスプレイをアクティブにすることを望むとき以外は行わないであろう既定のジェスチャを行うことによって、ディスプレイをアクティブにすることができるようになる。例えば、意図的なレイズジェスチャは、（図３に定められているように）ｘ軸を中心としてデバイスを前後に「ねじる」手首の２回の振動として定義することができる。ユーザは、例えば、元の位置から離れる方向に素早く手首を回転させた後、手首が元の位置に戻るように回転を解除することによって、振動させることができる。２回の振動は、回転、解除、回転、解除という順に従えばよい。振動は、モーションセンサデータ（例えば、加速度計又はジャイロスコープデータ）のインパルスピークとして検出可能である。各振動の間に蓄積して喪失される回転の最小限の量と、振動と振動との間の最大時間とを要求することで、ユーザが日常的に行う可能性がある他のほとんどの動き（例えば、ドアを開いたり、ドライバーを操作したりすること）と意図的なレイズジェスチャとを区別することができ、ユーザがディスプレイをアクティブにすることを意図していない場合に意図的なレイズジェスチャが検出されることを起きにくくすることができる。他のジェスチャに置き換えることも可能である。
【００９１】
図１１は、本発明の一実施形態による意図的なレイズジェスチャを検出するためのプロセス１１００のフローチャートである。この例では、意図的なレイズジェスチャは、ユーザが短時間の間に（視線から離れる方向に続いて、視線に向かう方向に、デバイスを２回回転させる）手首の２回の振動を行う「軽い揺らしの」ジェスチャとして定義されている。プロセス１１００は、例えば、図２Ａに示す軽い揺らし検出モジュール２２６で実行することができる。この例では、軽い揺らし検出プロセス１１００は、可能性のあるジェスチャの状態を経ることなく、ヌル状態（ジェスチャ検出なし）から直接、検出状態に進むことができる。必要であれば、他の状態を定義することもできる。プロセス１１００は、例えば、図２Ａのウェイク制御ロジック２３０に、状態遷移を報告することができる。後述するように、ウェイク制御ロジック２３０は、ジェスチャ状態遷移を使用して、アプリケーションプロセッサ２０４をアクティブにするか否か及びいつアクティブにするか並びに／又はアプリケーションプロセッサ２０４にユーザインタフェース２０２をアクティブにするよう命令するか否か及びいつ命令するかを決定することができる。
【００９２】
プロセス１１００は、ユーザインタフェース２０２が非アクティブな状態にあるときに開始することができる（ブロック１１０２）。このとき、アプリケーションプロセッサ２０４は、必要に応じて、スリープ状態にあってもウェイク状態にあってもよい。加速度計２１０は、一定のサンプリングレート（例えば、１００Ｈｚ）で、更新されたデータを提供していることができ、このデータは、図３に示すようなデバイス相対座標を使用して、加速度のベクトル成分（ａx、ａy、ａz）を示すことができる。受信したデータについては、例えば、循環バッファ又はＦＩＦＯなどを用いてバッファすることができる。
【００９３】
ブロック１１０４において、プロセス１１００は、加速度計データバッファから、データサンプルを読み出すことができる。データ量は、サンプリングレート、バッファサイズ及び動きを分析するための所望の時間に依存する場合がある。例えば、プロセス１１００は、実時間の固定の幅、例えば、０．１秒、０．５秒、１秒などに対応する固定長のデータウィンドウを読み出すことができる。
【００９４】
ブロック１１０６では、プロセス１１００は、加速度計データから腕の位置を決定することができる。このため、ブロック１１０６には、腕の位置を推定することが可能な加速度計データに基づいて、（重力に対する）デバイスの向きを決定することを含んでもよい。
【００９５】
ブロック１１０８では、プロセス１１００は、ユーザの腕が軽い揺らしジェスチャを行うために「準備されている」か否かを決定することができる。例えば、デバイスが視線内に既にあるときにだけ、ユーザが意図的なレイズジェスチャを実行するであろうと仮定できる場合がある。本明細書中で使用する場合、デバイスが短い時間（例えば、０．２秒、０．５秒、１．０秒）比較的静止して保たれ、ユーザがデバイスを見ようとしていることが示唆されている場合に、ユーザの腕が準備されていると考えることができる。ユーザの腕が準備されているか否かを決定することは、バッファ内のいくつか又は全てのデータサンプルを分析することを含んでもよい。例えば、最も古いサンプルを分析することができる。また、デバイスの空間的な向きに基づく基準など、追加の基準を適用してもよい。例えば、重力加速度が主に（図３に定義されるような）ｚ軸に沿っており、ｘ軸に沿った加速はほとんどないか全くない場合、これは、デバイスのディスプレイが地面にほぼ平行であることすなわち、手首に着用可能なデバイス（又は多くの他のデバイス）をチェックしているユーザに共通の位置を示唆できる。このため、追加の基準は、重力の方向に基づいて定義することができる。準備の基準を満たす必要があることで、手首の偶発的な動きから生じる可能性がある誤検出を減らすことができ、これによって電力が節約される。いくつかの実施形態では、ユーザの頭部が通常の垂直の向きでないかもしれない状況（例えば、ユーザが横たわっている場合）を考慮して、準備の基準を緩和することができるが、この基準を緩和すると、誤検出の割合が増す可能性がある。いくつかの実施形態では、ユーザの頭部が垂直であるか否かを示唆するのに、他の情報を利用できることもある（例えば、心拍モニタなどの生理センサによって、ユーザが横たわっていることを決定できることがある）。このような情報も、準備の基準に取り入れることができる。
【００９６】
ブロック１１０８で腕が準備されていない場合、プロセス１１００は、ブロック１１０４に戻って加速度計データを追加で読み出すことができる。上述したように、ブロック１１０４で読み出されるデータは、固定長のウィンドウであってもよい。ブロック１１０４の連続した繰り返しの際に読み出される連続したデータウィンドウは、重なることができる。例えば、ウィンドウが実時間の１秒に対応する場合、連続した繰り返しが０．１秒ごとなどで起こり得る（あるいは、これよりも速い速度でもよく、繰り返されるたびにウィンドウが少なくとも１サンプル分だけシフトする限り、ブロック１１０６及び１１０８の連続した繰り返しでの分析は冗長にはならない）。このようにすることで、ウィンドウの影響で検出漏れが生じる可能性を減らすことができる。
【００９７】
ブロック１１０８でユーザの腕が準備されていたら、プロセス１１００は、軽い揺らしジェスチャの検出を試みることができる。この例における軽い揺らしジェスチャには、ｘ軸を中心とした２回の振動を必要とする。ｘ軸を中心とした回転運動を開始又は停止することには、ｙ軸に沿った加速を伴うため（図３参照）、この例で対象とする振動運動を、加速度のｙ成分におけるインパルスピークに基づいて検出することができる。したがって、ブロック１１１０において、プロセス１１００は、加速度計データを分析して、そのようなピークを検出することができる。いくつかの実施形態では、躍度（jerk）のｙ成分（加速度の時間微分）のピーク又はスパイクを使用して、振動を検出することができる。検出対象となるジェスチャが意図的であることを考えると、ピークは、発生し得るランダムな動きによる（例えば、ユーザが歩いている、乗り物に乗っている、ジョギングしているなどによる）サンプルごとの変動のどのような背景に対しても目立つと思われる。このため、ほぼ同時に測定されたサンプルごとの変動の背景に対して、ねじれ又は振動を検出するための基準を定義することができる。ピーク検出のための特定の基準については、例えば、複数のユーザに軽い揺らしジェスチャを行わせ、加速度計データを分析して加速度及び／又は躍度の具体的な閾値を特定することによって、ヒューリスティックに定義することができる。この閾値は、背景変動の現在のレベルに対する１つ以上の絶対値に基づいて定義することができる。
【００９８】
ブロック１１１２で第１のピークが検出されない場合、プロセス１１００は、ブロック１１０４に戻って加速度計データの監視を継続することができる。第１のピークが検出されると、ブロック１１１４において、プロセス１１００は、第２のピークの検出を試みることができる。この例では、第２のピークは第１のピークと同じ方向にあるはずで、ユーザが振動の動きを繰り返したことを示しており、この基準は、ブロック１１１２で使用した基準と同一又は類似していてもよい。
【００９９】
ブロック１１１６で第２のピークが検出されない場合、ブロック１１１８において、プロセス１１００は、ブロック１１１２で第１のピークを検出して以来、タイムアウト時間が経過しているか否かを判定できる。タイムアウト時間は、意図的な軽い揺らしジェスチャを、手首を回転させる他の動きと区別するのに使用することができ、２回の振動を意図的に行うために様々な個人に必要な時間の測定に基づいて選択することができる。例えば、タイムアウト時間は、０．２秒、０．５秒などであってよい。
【０１００】
第２のピークが検出されるか、タイムアウト時間が経過するまで、プロセス１１００は、第２のピークを探し続けることができる。ブロック１１１８でタイムアウト時間が経過した場合、プロセス１１００は、ブロック１１０４に戻り、加速度計データを追加で収集して２つのピークを再び探すことができる。
【０１０１】
ブロック１１１６で第２のピークが検出されると、ブロック１１２０において、プロセス１１００は、加速度計の追加のデータを分析して、デバイスの位置が安定しているか否かを決定することができる。ブロック１１２２で位置が安定していない場合、これは振動がデバイスを見ることとは関係ない他の何らかの理由で生じたことを示す可能性があり、プロセス１１００は、ブロック１１０４に戻って加速度計データを追加で収集し、２つのピークを再び探すことができる。
【０１０２】
ブロック１１２２で位置が安定している場合、これは軽い揺らしジェスチャの検出に対応する可能性があり、ブロック１１２４において、プロセス１１００は、軽い揺らしジェスチャが検出されていることを、ウェイク制御ロジック２３０に通知することができる。後述するように、ウェイク制御ロジック２３０は、この通知に応じて、ユーザインタフェース２０２をアクティブにする及び／又はアプリケーションプロセッサ２０４をウェイクさせるなどの行動をとることができる。
【０１０３】
プロセス１１００は例示的であり、変形及び修正が可能であることが理解されるであろう。逐次として説明されるステップは並行して行うことができ、ステップの順序を変更することができ、ステップの修正、組み合わせ、追加、又は省略も可能である。異なる閾値、基準、及びセンサ入力を使用することができ、必要に応じて、異なる状態の組を定義することができる。いくつかの実施形態では、デバイスの位置が安定したか否かを決定する前に、第１のピークの検出を可能性のあるレイズジェスチャとして報告してもよいし、２つのピークの検出を可能性のあるレイズジェスチャとして報告してもよい。異なる基準（例えば、より多くの又はより少ないインパルスピーク、異なる方向の加速度など）を定義することによって、他の意図的なレイズジェスチャを検出することもできる。いくつかの実施形態では、プロセス１１００は、プロセス４００又はプロセス８００と同時に実行することが可能である。これにより、ディスプレイが非アクティブなときに、ユーザが自然なレイズジェスチャ又は意図的なレイズジェスチャのいずれかを行っていつでもディスプレイをアクティブにすることができる。
【０１０４】
図１２は、本発明の実施形態による意図的なレイズジェスチャ検出モジュール１２００の機能ブロック図である。図に示すように、意図的なレイズジェスチャ検出モジュール１２００は、例えば意図的なレイズジェスチャ検出モジュール２７６として、図２Ｂの動き処理ユニット２５８で実装することができる。また、自然なレイズジェスチャ検出モジュール７００が、図２Ａの軽い揺らし検出モジュール２２６として実装されてもよい。意図的なレイズジェスチャ検出モジュール１２００は、準備検出ユニット１２０２と、インパルスピーク検出ユニット１２０４と、安定性検出ユニット１２０６と、を含むことができる。それぞれのユニットを、例えば、プロセッサ及び／又は専用の論理回路上で実行可能なプログラムコードを使用して実装することができる。
【０１０５】
準備検出ユニット１２０２は、モーションセンサデータを受信し、このデータから、ユーザの腕が意図的なレイズジェスチャを行うよう準備されているか否かを決定することができる。例えば、準備検出ユニット１２０２には、上述したプロセス１１００のブロック１１０６及び１１０８を実装することができる。準備検出ユニット１２０２が、ユーザの腕が準備されていると決定すると、準備検出ユニット１２０２は、インパルスピーク検出ユニット１２０４に通知を送ることができる。
【０１０６】
インパルスピーク検出ユニット１２０４は、モーションセンサデータを追加で受信し、このデータに基づいて、目標数（例えば、１個、２個又は３個）のインパルスピークの存在を検出することができる。例えば、インパルスピーク検出ユニット１２０４には、上述したプロセス１１００のブロック１１１０から１１１８を実装することができる。レイズジェスチャを表す数（例えば、上記の例では２個）のインパルスピークが検出されると、インパルスピーク検出ユニット１２０４は、安定性検出ユニット１２０６に、通知を送ることができる。
【０１０７】
安定性検出ユニット１２０６は、モーションセンサデータを追加で受信し、そのデータが、１個以上の検出されたインパルスピークの後にデバイスの位置が安定したことを示すか否かを決定することができる。例えば、安定性検出ユニット１２０６には、上述したプロセス１１００のブロック１１２０及び１１２２を実装することができる。安定性が検出された場合、安定性検出ユニット１２０６は、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。例えば、安定性検出ユニット１２０６には、上述したプロセス１１００のブロック１１２４を実装することができる。
【０１０８】
意図的なレイズジェスチャ検出モジュール１２００は例示的なものであり、変形及び修正が可能であることが理解されるであろう。例えば、意図的なレイズジェスチャ検出モジュール１２００は、特定のブロック又はユニットを参照して説明されているが、これらのブロックは説明の都合上定義されたものであって、構成部品の特定の物理的構成を意味することを意図したものではないことは、理解できよう。さらに、これらのブロックは、物理的に別個のコンポーネントに相当する必要はなく、物理的に同じコンポーネントを使用して、複数のブロックの態様を実装してもよい。ブロックは、例えば、プロセッサをプログラムすることによって、あるいは適切な制御回路を設けることによって様々な動作を行うように構成することができ、最初の構成がどのように得られるかによって、様々なブロックを再構成できることもあれば、できないこともある。本発明の実施形態は、回路とソフトウェアとの任意の組み合わせを使って実装される電子機器を含む様々な装置において実現することができる。
【０１０９】
（自然な又は意図的な）レイズジェスチャが検出されると、ユーザが今デバイスにフォーカスしており、デバイスと対話しているかもしれないと仮定することができる。ユーザとのどのようなタイプの対話もサポートすることができ、対話の持続時間は、ユーザが望む間とすることができる。ある時点で、対話が終わるであろうことが想定される。対話が終了すると、節電のために、ディスプレイを非アクティブな状態に戻すことが望ましい場合がある。
【０１１０】
いくつかの実施形態では、ユーザは、例えばデバイスのボタンを押してディスプレイを非アクティブにすることによって、対話の終了を明示することができる。これに加えて又はこれに代えて、デバイスは、十分に長い時間にわたってユーザ入力がないことに基づいて、対話が終了していると推定することができる。ただし、ユーザがまだ提示された情報を見ている場合は、そのような推定が正確ではない可能性がある。このため、いくつかの実施形態では、デバイスは、モーションセンサデータに基づいて、ユーザがデバイスに対するフォーカスを外したことを、自動的に検出することができる。例えば、ユーザがデバイスのディスプレイを視線の外に移動した場合、これは、ユーザがフォーカスを外したことを示す可能性がある。このような動きを、本明細書では、「フォーカス解消ジェスチャ」という。
【０１１１】
フォーカス解消ジェスチャ（本明細書では、「フォーカス解消イベント」ともいう）の自動検出については、動きベースのアルゴリズムを用いることで、容易にすることができる。図１３は、本発明の一実施形態によるフォーカス解消イベントを検出するためのプロセス１３００のフローチャートである。プロセス１３００は、例えば、図２Ａのフォーカス解消検出モジュール２２８で実行することができる。この例では、デバイスがフォーカス状態にある間に（例えば、上述したプロセス４００、８００又は１１００のいずれかを使用してレイズジェスチャを検出及び／又は確認した後に）プロセス１３００を行うことができる。フォーカス解消は、デバイスの傾斜角又は回転の変化、特にｙ傾斜の変化に基づいて検出することができる。プロセス１３００は、例えば、図２Ａのウェイク制御ロジック２３０に、検出されたフォーカス解消イベントを報告することができる。後述するように、ウェイク制御ロジック２３０は、報告されたイベントを使用して、ユーザインタフェース２０２を非アクティブにするか否かを決定することができる。
【０１１２】
プロセス１３００は、ユーザインタフェース２０２がアクティブな状態にあるときに開始することができる（ブロック１３０２）。アクティブな状態は、上述したいずれかのジェスチャ検出プロセスの結果として、他のジェスチャ検出プロセスの結果として、あるいは、ユーザからの手動の指示（例えば、デバイス２００のボタンに触れるなど）に応じて、達成することができる。このとき、アプリケーションプロセッサ２００も、ウェイク状態にあってもよい。加速度計２１０は、一定のサンプリングレート（例えば、１００Ｈｚ）で、更新されたデータを提供していることができ、このデータは、図３に示すようなデバイス相対座標を使用して、加速度のベクトル成分（ａx、ａy、ａz）を示すことができる。受信したデータについては、例えば、循環バッファ又はＦＩＦＯなどを用いてバッファすることができる。
【０１１３】
ブロック１３０４において、プロセス１３００は、加速度計データバッファから、データサンプルを読み出すことができる。データ量は、サンプリングレート、バッファサイズ及び動きを分析するための所望の時間に依存することがある。例えば、プロセス４００は、実時間の固定の幅、例えば、０．５秒、１秒などに対応する固定長のデータウィンドウを読み出すことができる。
【０１１４】
ブロック１３０６では、プロセス１３００は、例えばバッファの先頭に近いサンプルについて加速度又は回転角の測定されたｘ成分及び／又はｙ成分に基づいて、初期傾斜を決定することができる。ユーザが視線内にデバイスを保っている時間は、傾斜（又は少なくともｙ傾斜）がほぼ一定のままであると予想され、プロセス１３００が開始されたときに、基準傾斜を定義することができる。いくつかの実施形態では、レイズジェスチャを自動的に検出することには、傾斜（例えば、ｙ傾斜）の蓄積を検出することを含むことができ、ブロック１３０６で検出された蓄積した傾斜に基づいて、初期傾斜又は基準傾斜を定義することができる。
【０１１５】
ブロック１３０８では、プロセス１３００は、例えば初期傾斜又は基準傾斜に対する傾斜の変化を検出することができる。いくつかの実施形態では、この変化は、それがユーザの視線から離れる方向にディスプレイを移動するものである場合を除いて、無視することができる。例えば、図３のデバイス３００を見ているユーザは、デバイス３００が地面に対して平行になるように、あるいは、重力加速度がｙ軸に沿って負の加速度成分を付与するであろうように傾斜して腕を保持することが多いかもしれない。ゼロ又は負のａyから正のａyへの変化は、ユーザが視線の外にデバイス３００を回転したことを示唆している可能性がある。いくつかの実施形態では、レイズジェスチャを自動的に検出することには、（例えば、図４を参照して上述したような）傾斜の蓄積を検出することを含むことができ、ブロック１３０８は、蓄積した傾斜（例えば、ｙ傾斜）の取り消しの検出（これは、ユーザが、上げられていない位置にデバイスを戻していることを示す）を含むことができる。
【０１１６】
ブロック１３１０で傾斜の十分に大きな変化が検出された場合、ブロック１３１２において、プロセス１３００は、フォーカス解消イベントが検出されたことを、ウェイク制御ロジック２３０に通知することができる。後述するように、ウェイク制御ロジック２３０は、この通知に応じて、ユーザインタフェース２０２を非アクティブにする及び／又はアプリケーションプロセッサ２０４に通知をするなどの行動をとることができる。
【０１１７】
ブロック１３１０で傾斜の大きな変化が検出されない場合は、ブロック１３１４において、プロセス１３００は、加速度計データに基づいて、ユーザの腕の位置を推測することができる。例えば、ユーザが手首を回転させずに腕を下げることができる可能性がある。上述したように、加速度計データと、ユーザがどのようにデバイスを着用しているかについての仮定に基づいて、腕の位置を推測することができる。ブロック１３１６では、プロセス１３００は、ユーザの腕が下がっているか否かを決定することができる。例えば、図３の座標系では、ｘ軸とほぼ一列になる重力加速度に基づいて、下がった腕を検出することができる。いくつかの実施形態では、ブロック１３１６は、腕の開始位置と終了位置とを比較して、ユーザが腕を下の方の位置に移動していることを示す変化を検出することを含むことができる。腕が下がっていることが検出されると、ブロック１３１２において、プロセス１３００は、ウェイク制御ロジック２３０に、フォーカス解消イベントを通知することができる。フォーカス解消イベントが検出されると、プロセス１３００を終えることができる。
【０１１８】
プロセス１３００は例示的であり、変形及び修正が可能であることが理解されるであろう。逐次として説明されたステップを同時並行で行ってもよく、ステップの順序を変更しても、ステップの修正、組み合わせ、追加又は省略をしても構わない。異なる閾値、基準及びセンサ入力を使用することができる。例えば、加速度計データに加えて又はこれに代えて、ジャイロスコープデータを使用してもよい。いくつかの実施形態では、活動分類部２３２によって報告されるユーザの現在の活動に基づいて、使用するセンサ（例えば、加速度計及び／又はジャイロスコープ）を動的に選択することができる。例えば、ユーザが走っている場合、ジャイロスコープデータのほうが信頼できる場合がある。ユーザが静かに座っている場合は、加速度計データを使用してジャイロセンサ２１２の電源を切断するほうが電力効率が良い場合がある。また、フォーカス解消を検出する基準を、ユーザの現在の活動に基づいて変更することができる。例えば、ユーザが走っているときには、腕が動かないとは思えないため、フォーカス解消が検出されにくくするために上記の基準を修正してもよい。
【０１１９】
さらに、いくつかの実施形態では、一時的な動きによってフォーカス解消が誤って検出されるのを回避することが望ましい場合がある。このため、デバイスがフォーカス姿勢から外れて最小限の時間そのままで保たれた後でないとフォーカス解消が検出されないように、フォーカス解消検出にヒステリシスを取り入れることができる。この時間が経過する前にデバイスが再びフォーカス姿勢になったら、フォーカス解消検出アルゴリズムをリセットすることができる。この最小限の時間は、デバイスがどれだけ長くフォーカス姿勢でいたかに依存することができ、フォーカス姿勢での持続時間が長くなると、これに相関して、フォーカス解消イベントをトリガーするのに必要なフォーカスから外れている時間が長くなる。ユーザが実際にまだディスプレイを見ているときに早まってフォーカス解消イベントを検出する（及びディスプレイを非アクティブにする）より、フォーカス解消イベントの検出（及びディスプレイを非アクティブにすること）が遅れるほうがユーザにとって問題が少ないと思われることに、注意されたい。このため、フォーカス解消アルゴリズムを、フォーカス解消の検出が遅くなる方向に誤るように調整してもよい。
【０１２０】
図１４は、本発明の一実施形態によるフォーカス解消検出モジュール１４００の機能ブロック図である。図に示すように、フォーカス解消検出モジュール１４００は、例えばフォーカス解消検出モジュール２７８として、図２Ｂの動き処理ユニット２５８で実装することができる。また、フォーカス解消検出モジュール１４００は、図２Ａのフォーカス解消検出モジュール２２８としても実装することができる。フォーカス解消検出モジュール１４００は、向き決定ユニット１４０２と、向き変化検出ユニット１４０４と、腕位置推測ユニット１４０６と、フォーカス決定ユニット１４０８と、を含むことができる。それぞれのユニットを、例えば、プロセッサ及び／又は専用の論理回路上で実行可能なプログラムコードを使用して実装することができる。
【０１２１】
向き決定ユニット１４０２は、モーションセンサデータを受信して、このデータから、デバイスの向きを決定することができる。例えば、向き決定ユニット１４０２は、上述したプロセス１３００のブロック１３０６を実装することができ、向きは傾斜によって特徴付けられる（これは、加速度計データ、ジャイロスコープの回転角などから決定できる）。向き決定ユニット１４０２は、決定された向きを、向き変化検出ユニット１４０４に提供することができる。
【０１２２】
向き変化検出ユニット１４０４は、例えば、向き決定ユニット１４０２から経時的に受信するデータに基づいて、向きの変化が生じたか否かを決定することができる。例えば、向き変化検出ユニット１４０４には、上述したプロセス１３００のブロック１３０８を実装することができる。向き変化検出ユニット１４０４は、向き変化情報（例えば、変化の定量的な測定値）を、フォーカス決定ユニット１４０８に提供することができる。
【０１２３】
腕位置推測ユニット１４０６は、モーションセンサデータを受信して、このデータから、デバイスが着用されていると思われる腕の推測腕位置を決定することができる。例えば、腕位置推測ユニット１４０６には、上述したプロセス１３００のブロック１３１４を実装することができる。腕位置推測ユニット１４０６は、腕位置に関する情報（例えば、推測腕位置又は腕位置の変化）を、フォーカス決定ユニット１４０８に提供することができる。
【０１２４】
フォーカス決定ユニット１４０８は、向き変化検出ユニット１４０４から向き変化情報を受信し、腕位置推測ユニット１４０６から腕位置情報を受信することができる。受信した情報に基づいて、フォーカス決定ユニット１４０８は、フォーカス解消が生じているか否かを決定することができる。例えば、フォーカス決定ユニット１４０８には、上述したプロセス１３００のブロック１３１０及び／又は１３１６を実装することができる。フォーカス決定ユニット１４０８が、フォーカス解消が生じていると決定した場合、フォーカス決定ユニット１４０８は、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。例えば、フォーカス決定ユニット１４０８には、上述したプロセス１３００のブロック１３１２を実装することができる。
【０１２５】
フォーカス解消検出モジュール１４００は例示的なものであり、変形及び修正が可能であることが理解されるであろう。例えば、フォーカス解消検出モジュール１４００は、特定のブロック又はユニットを参照して説明されているが、これらのブロックは説明の都合上定義されたものであって、構成部品の特定の物理的構成を意味することを意図したものではないことは、理解できよう。さらに、これらのブロックは、物理的に別個のコンポーネントに相当する必要はなく、物理的に同じコンポーネントを使用して、複数のブロックの態様を実装してもよい。ブロックは、例えば、プロセッサをプログラムすることによって、あるいは適切な制御回路を設けることによって様々な動作を行うように構成することができ、最初の構成がどのように得られるかによって、様々なブロックを再構成できることもあれば、できないこともある。本発明の実施形態は、回路とソフトウェアとの任意の組み合わせを使って実装される電子機器を含む様々な装置において実現することができる。
【０１２６】
上述したものなどのプロセス及びモジュールを一緒に使用すると、ユーザがデバイスを見はじめたとき及びデバイスを見るのをやめたときを、デバイスが検出できるようにすることができる。ユーザが現在見ているか否かに応じて、ユーザインタフェースをアクティブ又は非アクティブにすることができる。いくつかの実施形態では、同一又は類似のプロセスを使用して、ユーザの対話に備えてアプリケーションプロセッサ２０４及び／又はデバイスの他のコンポーネントを低電力（スリープ）状態からウェイクさせることができる。しかしながら、実装の仕方次第では、アプリケーションプロセッサ２０４をウェイクさせるのに、ユーザインタフェース２０２をアクティブにするよりも待ち時間が長くなることがあり、所与の時間、アプリケーションプロセッサ２０４をアクティブにしておくには、ユーザインタフェース２０２をアクティブにするより電力消費量が少ないことがある。このため、上述したレイズジェスチャの検出又は確認がなされるのを待つよりも早い段階で（ユーザインタフェース２０２をアクティブにせずに）アプリケーションプロセッサ２０４のウェイクを開始すると望ましいことがある。
【０１２７】
図１５は、本発明の一実施形態によるアプリケーションプロセッサ２０４をウェイクさせるか否かを決定するためのプロセス１５００のフローチャートである。プロセス１５００は、例えば、図２Ａのプレヒート検出モジュール２２０で実行することができる。この例では、プロセス１５００は、自然な（又は意図的な）レイズジェスチャの初期段階と整合性が取れる加速度計のサンプルのシーケンスを検出することができ、このようなシーケンスが検出されると、ウェイク制御ロジック２３０に通知することができる。プロセス１５００は、他のジェスチャ検出アルゴリズム（例えば、上述したプロセス４００、８００、１１００）と同時にかつそれらとは独立して動作することができる。例えば、ユーザインタフェース２０２をアクティブにするか否かを決定するには異なるアルゴリズム（例えば、プロセス４００又はプロセス８００）を使用しながら、アプリケーションプロセッサ２０４をウェイクさせるか否かを決定するにはプロセス１５００を使用できる。
【０１２８】
プロセス１５００は、アプリケーションプロセッサ２０４がスリープ状態にあるときに開始（ブロック１５０２）することができる。加速度計２１０は、一定のサンプリングレート（例えば、１００Ｈｚ）で、更新されたデータを提供していることができ、このデータは、図３に示すようなデバイス相対座標を使用して、加速度のベクトル成分（ａx、ａy、ａz）を示すことができる。受信したデータについては、例えば、循環バッファ又はＦＩＦＯなどを用いてバッファすることができる。
【０１２９】
ブロック１５０４において、プロセス１５００は、加速度計の最新のサンプル（又はサンプルの短いウィンドウ）を評価して、現在の姿勢を決定することができる。ブロック１５０６では、プロセス１５００は、サンプルが、レイズジェスチャの可能のある開始を示す条件を満たすか否かを決定することができる。いくつかの実施形態では、この決定は、連続するサンプル間で測定された加速度の変化に依存することがある。例えば、視線内にデバイスを持ってくるためにユーザが手首を回転させるにつれて、ａy成分がゼロ又は正の（重力による）開始状態から減少すると予測できる。また、ユーザの腕が最初に下がっている場合、ユーザが自分の腕を上げるにつれてａx成分が（重力による）正からゼロに向かって変化する場合がある。このため、ブロック１５０６での条件が、ａy成分により大きな重みが与えられた状態で、連続したサンプル間でのａxの変化とａyの変化の加重和に依存する可能性がある。いくつかの実施形態では、この条件は開始姿勢に依存することがある（例えば、ａxの相対的な重みは、腕が水平な開始姿勢よりも腕が下がった開始姿勢で大きくなる可能性がある）。プロセス１５００は、ブロック１５０６でレイズジェスチャの可能性のある開始が検出されるまで、加速度計データを監視し続けることができる。例えば、新たな加速度計データサンプルが受信されるごとに、そのデータサンプルに対してブロック１５０４及び１５０６を実行することができる。
【０１３０】
ブロック１５０６でレイズジェスチャの可能性のある開始が検出されると、プロセス１５００は、その後のサンプルを監視して、レイズジェスチャが進行し続けるか否かを決定することができる。例えば、ブロック１５０８で、プロセス１５００は、ＮNO及びＮYESと呼ばれる２つのカウンターを初期化することができる。これらのカウンターは、例えば０に初期化することができる。ブロック１５１０では、プロセス１５００は、次の加速度計サンプルを評価することができ、ブロック１５１２で、プロセス１５００は、サンプルが進行中のレイズジェスチャと整合性が取れるか否かを決定することができる。この決定は、デバイス位置の変化（例えば、傾斜及び腕の角度）が、レイズジェスチャを続けること、（ランダムな動きはレイズジェスチャほど滑らかではないと仮定して）動きの滑らかさなどと整合性が取れているか否かといった様々な基準に基づくことができる。いくつかの実施形態では、この基準は開始姿勢に依存することがある。例えば、（例えば、図１Ａに示すような）腕が下がった開始位置からは、（例えば、図１Ｃに示すように）前腕が最初から水平であるときよりも、ａxのより大きな変化が予想される。このため、上記の判定には、加速度計の現在のサンプルのみならず以前のサンプルから推定されたデバイス軌道を取り入れることができる。
【０１３１】
ブロック１５１２で、次のサンプルがジェスチャと整合性が取れる場合、ブロック１５１４で、カウンターＮYESをインクリメントすることができる。ブロック１５１６では、ＮYESと閾値「ＭｉｎＹｅｓ」（例えば、サンプル１０個、サンプル１１個、サンプル１４個など）とを比較して、レイズジェスチャと整合性が取れる十分なサンプルが検出されたか否かを決定することができる。ＮYESが閾値ＭｉｎＹｅｓに達している場合、ブロック１５１８において、プロセス１５００は、プレヒートイベント（本明細書では「プレヒートジェスチャ」ともいう）をウェイクロジック２３０に通知することができる。これに応じて、ウェイクロジック２３０は、例えば、アプリケーションプロセッサ２０４をウェイクさせることができる。この実施形態では、プレヒートイベントによってユーザインタフェース２０２がアクティブになることはなく、ユーザはプレヒートイベントがいつ発生するか又は発生するのか否かを知る必要はない。ブロック１５１６で閾値を超えない場合、プロセス１５００はブロック１５１０に戻り、加速度計データサンプルを蓄積して評価し続けることができる。
【０１３２】
ブロック１５１２で、加速度計の次のデータサンプルがレイズジェスチャと整合性が取れない場合、ブロック１５２０で、カウンターＮNOをインクリメントすることができる。ブロック１５２２では、ＮNOを閾値「ＭａｘＮｏ」（例えば、サンプル２個、サンプル４個、サンプル５個など）と比較して、レイズジェスチャと整合性が取れないサンプルが検出されすぎているか否かを決定することができる。ＮNOが閾値ＭａｘＮｏに達すると、ブロック１５２４で、プロセス１５００をリセットしてブロック１５０４に戻り、レイズジェスチャの新たな可能性のある開始を探すことができる。
【０１３３】
このように、プロセス１５００がプレヒートイベントを検出するか否かが、閾値ＭａｘＮｏに達する前に閾値ＭｉｎＹｅｓに達するか否かに依存することがある。例えば、一実施形態では、閾値ＭｉｎＹｅｓを１１に設定することができ、閾値ＭａｘＮｏを５に設定することができる。ブロック１５０６で、レイズジェスチャの可能性のある開始が検出された後、ジェスチャと整合性が取れない５個のサンプルが受信される前にジェスチャと整合性が取れる１１個のサンプルが受信されると、プロセス１５００はプレヒートイベントを生成することになる。ジェスチャと整合性が取れない５個のサンプルが受信される前にジェスチャと整合性が取れる１１個のサンプルが受信されなかった場合は、プロセス１５００はプレヒートイベントを生成せず、代わりにブロック１５０４に戻って、実質的に最初からやり直しになる。新たなサンプルが１００Ｈｚで受信された場合、プロセス１５００は、その開始後１５０ｍｓ以内にレイズジェスチャの開始を検出することができる。
【０１３４】
プロセス１５００は例示的であり、変形及び修正が可能であることが理解されるであろう。逐次として説明されたステップを同時並行で行ってもよく、ステップの順序を変更しても、ステップの修正、組み合わせ、追加又は省略をしても構わない。例えば、サンプリングレート及び判定基準は変更可能である。アプリケーションプロセッサがスリープ状態からウェイク状態に遷移するのに必要な時間に応じて、プレヒート検出の感度を調整することができる。プレヒートイベントは、ユーザがレイズジェスチャを完了するまでに、アプリケーションプロセッサがウェイク状態にあり、ユーザ入力を処理する準備ができている十分に早い段階で検出することができる。いくつかの実施形態では、プレヒートを早期に検出してアプリケーションプロセッサをウェイクさせることが、自然なレイズジェスチャに対するデバイスの応答におけるユーザが知覚可能な遅延を低減又は排除するのに役立つ場合がある。早く検出すればするだけ誤検出が多くなる可能性があり、アプリケーションプロセッサがウェイク状態に遷移できるだけの十分な時間を許容しつつ、ジェスチャのできるだけ後にプレヒートイベントが検出されるように、感度を調整することができる。
【０１３５】
いくつかの実施形態では、プレヒート解消を検出するための特定のアルゴリズムは実装されていない。例えば、アプリケーションプロセッサ２０４は、ウェイク後の一定の時間幅以内に、ユーザ入力、レイズジェスチャ検出又はユーザがデバイス２００と対話していることを示す他の活動が生じなければ、自動的にスリープ状態に戻ることができる。あるいは、ウェイク制御ロジック２３０が、プレヒートイベントの後のある時間幅内に可能性のあるレイズジェスチャが受信されていないかをアプリケーションプロセッサ２０４に通知し、アプリケーションプロセッサ２０４は、この情報を使用してスリープ状態に戻るか否かを決定することができる。いくつかの実施形態は、例えば、受信したサンプルがレイズジェスチャと整合性が取れ続けるか否かを検出し、レイズジェスチャと整合性が取れた状態が継続しない場合又はプレヒートイベントの後特定の時間内に検出済レイズジェスチャにならない場合にプレヒート解消を示す、プレヒート解消アルゴリズムを提供することができる。
【０１３６】
図１６は、本発明の一実施形態によるプレヒート検出モジュール１６００の機能ブロック図である。図に示すように、プレヒート検出モジュール１６００は、例えば、プレヒート検出モジュール２７０のように、図２Ｂの動き処理ユニット２５８で実装することができる。また、プレヒート検出モジュール１６００は、図２Ａのプレヒート検出モジュール２２０として実装することもできる。プレヒート検出モジュール１６００は、可能性のあるジェスチャ開始決定ユニット１６０２と、サンプル評価ユニット１６０４と、カウンターユニット１６０６と、プレヒート決定ユニット１６０８と、を含むことができる。それぞれのユニットを、例えば、プロセッサ及び／又は専用の論理回路上で実行可能なプログラムコードを使用して実装することができる。
【０１３７】
可能性のあるジェスチャ開始決定ユニット１６０２は、モーションセンサデータのサンプルを受信し、このデータサンプルから、可能性のあるジェスチャ開始が生じたか否かを決定することができる。例えば、可能性のあるジェスチャ開始決定ユニット１６０２には、上述したプロセス１５００のブロック１５０４を実装することができる。可能性のあるジェスチャ開始が生じていると決定されると、可能性のあるジェスチャ開始決定ユニットは、サンプル評価ユニット１６０４及びカウンターユニット１６０６に通知することができる。
【０１３８】
サンプル評価ユニット１６０４は、モーションセンサデータのサンプルを受信し、受信時のそれぞれのサンプルを評価して、これが可能性のあるレイズジェスチャの継続と整合性が取れているか否かを決定することができる。例えば、サンプル評価ユニット１６０４には、上述したプロセス１５００のブロック１５１０及び１５１２を実装することができる。サンプル評価ユニット１６０４は、カウンターユニット１６０６に、サンプルが可能性のあるレイズジェスチャの継続と整合性が取れているか整合性が取れていないかを示す判定出力を提供することができる。
【０１３９】
カウンターユニット１６０６は、第１のカウンターを、サンプル評価ユニット１６０４によって可能性のあるレイズジェスチャの継続と整合性が取れると決定されたサンプルをカウントするように維持することができ、第２のカウンターを、サンプル評価ユニット１６０４によって可能性のあるレイズジェスチャの継続と整合性が取れないと決定されたサンプルをカウントするように維持することができる。これらのカウンターは、上述したＮYESカウンター及びＮNOカウンターに対応してもよい。カウンターユニット１６０６は、可能性のあるジェスチャ開始決定ユニット１６０２によって可能性のあるジェスチャ開始を通知されたことに応じて、２つのカウンターを（例えばゼロに）初期化することができる。例えば、カウンターユニット１６０６には、上述したプロセス１５００のブロック１５０８を実装することができる。２つのカウンターを初期化した後、カウンターユニット１６０６は、サンプル評価ユニット１６０４から受信した各判定出力に応じて、２つのカウンターの１つをインクリメントすることができ、可能性のあるレイズジェスチャの継続とサンプルの整合性が取れることを判定出力が示している場合には第１のカウンターをインクリメントし、可能性のあるレイズジェスチャの継続とサンプルの整合性が取れないことを判定出力が示している場合には第２のカウンターをインクリメントする。例えば、カウンターユニット１６０６には、上述したプロセス１５００のブロック１５４０及び１５２０を実装することができる。カウンターユニット１６０６は、第１のカウンター値及び第２のカウンター値を、プレヒート決定ユニット１６０８に提供することができる。
【０１４０】
プレヒート決定ユニット１６０８は、カウンターユニット１６０６から第１のカウンター値及び第２のカウンター値を受信することができ、プレヒートイベント又はリセットイベントのいずれかが生じているか否かを決定することができる。例えば、プレヒート決定ユニット１６０８には、上述したプロセス１５００のブロック１５１６及び１５２２を実装することができる。プレヒートイベントが発生している場合（例えば、上述したように第１のカウンターが値ＭｉｎＹｅｓを超えている場合）、プレヒート決定ユニット１６０８は、他のシステムコンポーネント（例えば、図２Ａのウェイク制御ロジック２３０又は図２Ｂのウェイク制御ロジックモジュール２８０）に通知することができる。例えば、プレヒート決定ユニット１６０８には、上述したプロセス１５００のブロック１５１８を実装することができる。リセットイベントが生じている場合（例えば、上述したように第２のカウンターが値ＭａｘＮｏを超えている場合）、プレヒート決定ユニット１６０８は、可能性のあるジェスチャ開始決定ユニット１６０２に通知することができ、可能性のあるジェスチャ開始決定ユニット１６０２は、可能性のあるジェスチャ開始が生じているか否かの決定を再び始めることができる。また、プレヒート決定ユニット１６０８も、サンプル評価ユニット１６０４及び／又はカウンターユニット１６０６に、プレヒート又はリセットイベントを通知することができ、通知を受けたユニットは、それに応じて応答することができる。例えば、サンプル評価ユニット１６０４は、次の可能性のあるジェスチャ開始が生じるときまで、プレヒート又はリセットイベントのいずれかの後にサンプルの評価を停止することができる。一方又は他方のカウンターが関連する閾値に達するためにいくつかのサンプルを取ることがあるので、サンプル評価ユニット１６０４によって評価された全てのサンプルがプレヒート又はリセットイベントのいずれかにつながる必要はないことを理解されたい。
【０１４１】
プレヒート検出モジュール１６００は例示的なものであり、変形及び修正が可能であることが理解されるであろう。例えば、プレヒート検出モジュール１６００は、特定のブロック又はユニットを参照して説明されているが、これらのブロックは説明の都合上定義されたものであって、構成部品の特定の物理的構成を意味することを意図したものではないことは、理解できよう。さらに、これらのブロックは、物理的に別個のコンポーネントに相当する必要はなく、物理的に同じコンポーネントを使用して、複数のブロックの態様を実装してもよい。ブロックは、例えば、プロセッサをプログラムすることによって、あるいは適切な制御回路を設けることによって様々な動作を行うように構成することができ、最初の構成がどのように得られるかによって、様々なブロックを再構成できることもあれば、できないこともある。本発明の実施形態は、回路とソフトウェアとの任意の組み合わせを使って実装される電子機器を含む様々な装置において実現することができる。
【０１４２】
上述した様々なジェスチャ検出モジュール及び／又はプロセスを使用して、図２Ａのウェイク制御ロジック２３０（又は図２Ｂのウェイク制御ロジックモジュール２８０）には、本発明の一実施形態によるウェイク制御ロジック２３０の状態を示す状態図である図１７に示されるような状態マシン挙動を実装することができる。状態間の遷移は、プレヒート検出モジュール２２０（例えば、プロセス１５００を実行する）、ローダイナミックメイン検出モジュール２２２（例えばプロセス４００）、ハイダイナミックメイン検出モジュール２２４（例えばプロセス８００）、軽い揺らし検出モジュール２２６（例えば、プロセス１１００）、フォーカス解消検出モジュール２２８（例えば、プロセス１３００）からの通知に応じて起こり得る。
【０１４３】
状態１７０２は、デバイス２００がアイドル状態であり、アプリケーションプロセッサ２０４がスリープ状態にあり、ユーザインタフェース２０２が非アクティブな状態にある「ヌル」状態とすることができる。いくつかの実施形態では、非アクティブ、フォーカス解消及び／又は他の基準に基づいて、状態１７０２に入ることができる。
【０１４４】
状態１７０４は、（例えば、図１５のブロック１５１８において）プレヒート検出モジュール２２０によって報告されたプレヒートイベントに応じて入ることが可能な「プレヒート」状態とすることができる。プレヒート状態１７０４に入ると、ウェイク制御ロジック２３０は、アプリケーションプロセッサ２０４に、スリープ状態からのウェイクを開始するように信号を送ることができる。いくつかの実施形態では、アプリケーションプロセッサ２０４のウェイクには、（おそらくは消費電力が増える以外は）ユーザが認識できる影響がない。ユーザは、アプリケーションプロセッサ２０４がウェイク状態にあるかスリープ状態にあるかを知らされる必要がない。
【０１４５】
状態１７０６は、（例えば、図４のブロック４１２又は図８のブロック８１２において）可能性のあるレイズジェスチャの通知に応じて入ることができる「可能性のあるジェスチャ」状態とすることができる。状態１７０６には、プレヒート状態１７０４から入ることもできるし、ヌル状態１７０２から直接入ることもできる。可能性のあるジェスチャ状態１７０６に入ると、ウェイク制御ロジック２３０は、（プレヒート状態１７０４で既に行われていない場合に）アプリケーションプロセッサ２０４をウェイクさせることができ、ユーザインタフェース２０２をアクティブにすることもできる。
【０１４６】
状態１７０８は、（例えば、図４のブロック４１８、図８のブロック８１８又は図１１のブロック１１２４において）検出済レイズジェスチャの通知に応じて入ることができる「検出済ジェスチャ」状態とすることができる。状態１７０８は、可能性のあるジェスチャ状態１７０６から入ることもできるし、ヌル状態１７０２から直接入ることも、プレヒート状態１７０４から直接入ることもできる。例えば、上述の実施形態では、意図的なレイズジェスチャを検出するためのプロセス１１００は、ウェイク制御ロジック２３０に、ヌル状態１７０２又はプレヒート状態１７０４のいずれかから生じ得る検出済レイズジェスチャを通知するだけである。この場合、可能性のあるジェスチャ状態１７０６はスキップされるかもしれない。他の実施形態では、プロセス１１００は、（例えば、第１又は第２のピークの検出時に）ウェイク制御ロジック２３０に可能性のあるウェイクジェスチャを通知することができ、ヌル状態１７０２又はプレヒート状態１７０４から検出済ジェスチャ状態１７０８への直接遷移は起こらない可能性がある。検出済ジェスチャ状態１７０８に入ると、ウェイク制御ロジック２３０は、アプリケーションプロセッサ２０４をウェイクさせる及び／又はユーザインタフェース２０２をアクティブにすることのいずれか又は両方が以前に生じていない場合に、それをすることができる。
【０１４７】
状態１７１０は、（例えば、図４のブロック４２４で）確認済レイズジェスチャの通知に応じて入ることができる「確認済ジェスチャ」状態とすることができる。いくつかの実施形態では、ウェイク制御ロジック２３０は、確認済ジェスチャ状態１７１０への遷移に応じて何もする必要はない。しかしながら、ウェイク制御ロジック２３０は、必要であれば、確認の通知をアプリケーションプロセッサ２０４に送信するなどの様々な行動をとることができ、アプリケーションプロセッサ２０４で実行されている様々なアプリケーション又は他のプロセスは、必要に応じて、検出済（ただし確認済ではない）レイズジェスチャとは対照的に確認済レイズジェスチャに応じて、異なる挙動をすることができる。
【０１４８】
状態１７１２は、（例えば、図１３のブロック１３１２で）フォーカス解消イベントの通知に応じて入ることができる「フォーカス解消」状態とすることができる。フォーカス解消状態１７１２に入ると、ウェイク制御ロジック２３０は、ユーザインタフェース２０２を非アクティブにすることができ、フォーカス解消をアプリケーションプロセッサ２０４に通知することができる。いくつかの実施形態では、アプリケーションプロセッサ２０４は、フォーカス解消に応じてすぐにスリープ状態に入らない可能性がある。例えば、アプリケーションプロセッサ２０４は、デバイス２００がフォーカス状態（例えば、状態１７０６、１７０８、１７１０のいずれか）にある間に開始したプロセスを、そのプロセスが完了するまで実行し続け、その後でスリープ状態に入ることができる。
【０１４９】
フォーカス解消状態１７１２から、アプリケーションプロセッサ２０４がその後スリープ状態に戻る場合、ウェイク制御ロジック２３０は、ヌル状態１７０２に戻ることができる。いくつかの実施形態では、アプリケーションプロセッサ２０４がスリープ状態に戻る前に、別のフォーカス関連イベント（例えば、プレヒート、可能性のあるレイズジェスチャ、検出済レイズジェスチャ）が生じる可能性があり、この場合、ウェイク制御ロジック２３０は、破線の矢印によって示されるように、まずヌル状態に戻るのではなく、状態１７０４、１７０６、１７０８のうちの適切な状態に戻ることができる。
【０１５０】
図１７に示す状態は例示であり、他の実施形態で、これより多い状態、少ない状態又は異なる状態を定義できることは理解できよう。
【０１５１】
いくつかの実施形態では、ウェイク制御ロジック２３０は、ウェイク制御ロジック２３０の現在の状態に応じて、（例えば、プロセス１５００を実装している）プレヒート検出モジュール２２０、（例えば、プロセス４００を実装している）ローダイナミックメイン検出モジュール２２２、（例えば、プロセス８００を実装している）ハイダイナミックメイン検出モジュール２２４、（例えば、プロセス１１００を実装している）軽い揺らし検出モジュール２２６、（例えば、プロセス１３００を実装している）フォーカス解消検出モジュール２２８のいずれか又は全てを含む、様々なジェスチャ検出アルゴリズム又はモジュールを選択的にイネーブル又はディセーブルにすることができる。
【０１５２】
図１８は、本発明の一実施形態によるウェイク制御ロジック２３０で実装できるプロセス１８００のフローチャートである。プロセス１８００は、図１７のヌル状態で開始することができる（ブロック１８０２）。説明のために、この段階では、アプリケーションプロセッサ２０４はスリープ状態にあり、ユーザインタフェース２０２は非アクティブであると仮定する。
【０１５３】
ブロック１８０４において、ウェイク制御ロジック２３０は、レイズジェスチャを検出するために、１つ以上のジェスチャ検出アルゴリズム又はモジュールをイネーブルにすることができる。例えば、ウェイク制御ロジック２３０は、プレヒート検出モジュール２２０、軽い揺らし検出モジュール２２６並びに、ローダイナミックメイン検出モジュール２２２又はハイダイナミックメイン検出モジュール２２４の一方又は他方をイネーブルにすることができる。いくつかの実施形態では、ハイダイナミックメイン検出モジュール２２４は、ユーザが、上述したように決定できる動作の多い活動をしているときにのみイネーブルにされ、ユーザが動作の多い行動をしていない場合は、動作の少ないメイン検知モジュール２２２がイネーブルにされる。ユーザの活動が変化した場合、ウェイク制御ロジック２３０は、どのアルゴリズムをイネーブルにするかを変更することができる。
【０１５４】
ブロック１８０６において、プロセス１８００は、ジェスチャ検出アルゴリズム又はモジュールのうちの１つがイベントの通知を提供するまで待機することができる。例えば、プレヒート検出モジュール２２０が、プレヒートイベントをウェイク制御ロジック２３０に通知することができ、あるいは、ローダイナミックメイン検出モジュール２２２又はハイダイナミックメイン検出モジュール２２４が、ウェイク制御ロジック２３０に、可能性のあるレイズジェスチャを通知することができる。そのような通知が受信されると、ブロック１８０８で、プロセス１８００はアプリケーションプロセッサ２０４をウェイクさせ（ウェイクアップしていないと仮定して）、プレヒート検出モジュール２２０をディセーブルにすることができる。他のレイズジェスチャ検出アルゴリズム又はモジュールが実行され続けてもよい。実装次第で、アプリケーションプロセッサ２０４がユーザインタフェース２０２をアクティブにすることもあれば、しないこともある。例えば、いくつかの実施形態では、アプリケーションプロセッサ２０４は、可能性のあるレイズジェスチャイベントに応じてユーザインタフェース２０２をアクティブにするが、プレヒートイベントに応じてユーザインタフェース２０２をアクティブにすることはない。
【０１５５】
ブロック１８１０において、ウェイク制御ロジック２３０は、検出済レイズジェスチャの通知が受信されているか否かを決定することができる。そのような通知は、例えば、軽い揺らし検出モジュール２２６、又は動作の少ないモーション検出モジュール２２２若しくは動作の多いモーション検出モジュール２２４のいずれかから受信できる。いくつかの実施形態では、検出済レイズジェスチャの通知が、プレヒート又は可能性のあるレイズジェスチャイベント後のタイムアウト時間内に受信されない場合、ウェイク制御ロジック２３０は、プレヒート又は可能性のあるレイズジェスチャが誤検出されたと推定することができる。よって、ブロック１８１２において、ウェイク制御ロジック２３０は、アプリケーションプロセッサ２０４に誤検出を通知し、プレヒート検出モジュール２２０を再度イネーブルにして、ブロック１８０４に戻ることができる。いくつかの実施形態では、閾値数の誤検出プレヒートイベントが短い時間内に生じた場合、プレヒート検出モジュール２２０は、「バックオフ」状態に入ることができる。この状態では、プレヒート検出モジュールは、誤検出の頻度が閾値を下回るまで、プレヒート通知の送信を停止することができる（あるいは、ウェイク制御ロジック２３０がプレヒート通知を無視することができる）。これにより、アプリケーションプロセッサによる不要な電力消費を削減する一助となり得る。
【０１５６】
ブロック１８１０で検出済レイズジェスチャの通知が受信された場合、ブロック１８１４において、プロセス１８００は、検出済レイズジェスチャを確認するためにジェスチャ分類部２３４をイネーブルにすることができ、なおかつ、軽い揺らし検出モジュール２２６をディセーブルにすることができる。場合によっては、検出済レイズジェスチャの通知が、プレヒートの通知又は可能性のあるレイズジェスチャの通知（例えば、軽い揺らし検出モジュール２２６が検出済レイズジェスチャの通知を生成する場合）に先行することができる。図１８には具体的に示していないが、これが生じると、プロセス１８００は、ブロック１８１４の動作と共にブロック１８０８の動作を行うことができることを理解されたい。
【０１５７】
ブロック１８１６において、プロセス１８００は、検出済レイズジェスチャが確認されたか否かを決定することができる。場合によっては、（例えば、ブロック１８１０で検出済レイズジェスチャ通知が軽い揺らし検出モジュール２２６から受信された場合に）ブロック１８１６での確認を想定してもよく、レイズジェスチャの確認に、ジェスチャ分類部２３４などを使用する必要がない。他の例では、（例えば、ブロック１８１０における検出済レイズジェスチャ通知がローダイナミックメイン検出モジュール２２２から受信された場合など）少なくともいくつかの状況で、確認が必要になることもある。確認が受信されない場合（又は想定されていない場合）又は否認が受信されると、ブロック１８１８において、ウェイク制御ロジック２３０は、未確認のレイズジェスチャ又は否認されたレイズジェスチャをアプリケーションプロセッサ２０４に通知し、プレヒート検出モジュール２２０及び軽い揺らし検出モジュール２２６を再びイネーブルにし、ジェスチャ分類部２３４をディセーブルにすることができる。プロセス１８００は、ブロック１８０４に戻り、確認済レイズジェスチャを待ち続けることができる。
【０１５８】
ブロック１８１６でジェスチャが確認された場合、ブロック１８２０において、プロセス１８００は、アプリケーションプロセッサ２０４にユーザインタフェース２０２をアクティブにするように命令し（まだアクティブでない場合）、フォーカス解消検出モジュール２２８をイネーブルにし、ローダイナミックメイン検出モジュール２２２又はハイダイナミックメイン検出モジュール２２４をディセーブルにすることができる。軽い揺らし検出モジュール２２６又はプレヒートモジュール２２０が依然としてイネーブルのままである場合、これらのモジュールも、ブロック１８２０でディセーブルにすることができる。
【０１５９】
プロセス１８００は、例えばフォーカス解消検出モジュール２２８から、フォーカス解消ジェスチャの通知が受信されるまで、ブロック１８２２で待機することができる。この時間の間、デバイス２００は、フォーカスされているとみなすことができる。アプリケーションプロセッサ２０４は、そのウェイク状態のままでいることができ、ユーザインタフェース２０４はアクティブのままであることができる。
【０１６０】
フォーカスが解消されると、ブロック１８２４で、プロセス１８００はアプリケーションプロセッサ２０４に通知し、ユーザインタフェース２０２を非アクティブにして、フォーカス解消検出モジュール２２８をディセーブルにすることができる。プロセス１８００は、ブロック１８０４に戻り、様々なレイズジェスチャ検出モジュール（例えば、軽い揺らし検出モジュール２２６、ローダイナミックメイン検出モジュール２２２及びハイダイナミックメイン検出モジュール２２４のうちの一方又は他方）を再びイネーブルにすることができる。アプリケーションプロセッサ２０４がスリープ状態に戻った場合は、プロセス１８００は、プレヒート検出モジュール２２０を再びイネーブルにすることができる。
【０１６１】
プロセス１８００は例示的であり、変形及び修正が可能であることが理解されるであろう。逐次として説明されたステップを同時並行で行ってもよく、ステップの順序を変更しても、ステップの修正、組み合わせ、追加又は省略をしても構わない。ユーザインタフェース２０４をアクティブにすることは、必要に応じて、ウェイク制御ロジック２３０によって、あるいは、アプリケーションプロセッサ２０４内のプロセスによって制御することができる。プレヒート検出モジュール２２０は、アプリケーションプロセッサ２０４がそのスリープ状態にある間は連続的に実行することができ、アプリケーションプロセッサ２０４がウェイク状態にあるときはいつでもディセーブルにされることができる。いくつかの実施形態では、フォーカスが外れても、アプリケーションプロセッサ２０４がすぐにスリープ状態に戻されることはない。例えば、アプリケーションプロセッサ２０４上では、実行中の処理タスクのいずれも実行し続けることができ、アプリケーションプロセッサ２０４は、（さらなるレイズジェスチャ又はプレヒートイベントが発生していないと仮定すると）そのようなタスクが完了したときにスリープ状態に戻ることができる。アプリケーションプロセッサ２０４は、ウェイク状態とスリープ状態との間で遷移するたびにウェイク制御ロジック２３０に通知し、ウェイク制御ロジック２３０も、ユーザインタフェース２０２における状態変化（例えば、非アクティブな状態とアクティブな状態との間）の通知を受けることができる。ウェイク制御ロジック２３０は、ジェスチャ検出モジュール又はアルゴリズムから受信した通知に加えて、アプリケーションプロセッサ２０４からの通知に基づいて、ジェスチャ検出モジュール又はアルゴリズムをイネーブル又はディセーブルにすることができる。
【０１６２】
図１８に示す例では、レイズジェスチャが検出されて確認されるまで、ユーザインタフェースはアクティブにされない。いくつかの実施形態では、（例えば、可能性のあるレイズジェスチャ又は検出済レイズジェスチャが報告されたとき）より一層早い段階でユーザインタフェースをアクティブにすることが望ましい場合がある。これにより誤検出が増えるが検出漏れは少なくなる可能性があり、より応答性がよく、満足度が高いユーザエクスペリエンスが提供できる。さらに、ユーザインタフェースについては、段階的にアクティブにすることができる。例えば、可能性のあるレイズジェスチャの通知が受信されたときにインタフェースが部分的にイネーブルにされ（例えば、表示されているが、薄暗くされ、タッチオーバーレイはディセーブルにされている又は低解像度でイネーブルにされている）、その後、検出済レイズジェスチャが受信されたときに、完全にイネーブルになるかもしれない。
【０１６３】
本発明を特定の実施形態に関して説明してきたが、当業者であれば、多数の修正形態が可能であることを認識するであろう。例えば、上記では様々なアルゴリズム又はモジュールがデバイスのコプロセッサで実行されるものとして説明しているが、メインプロセッサ（例えば、アプリケーションプロセッサ）も上述したジェスチャ検出アルゴリズム又はモジュールのいずれか又は全てを実行できることは、当業者であれば認識するであろう。一例として、上述した実施形態では、アプリケーションプロセッサがウェイク状態にあるときにジェスチャ分類部を選択的に呼び出すことができ、ジェスチャ分類部を、コプロセッサではなくアプリケーションプロセッサ上で実行することができる。また、アプリケーションプロセッサがウェイク状態にあれば、他のアルゴリズムもアプリケーションプロセッサ上で完全に又は部分的に実行することもできる。他の実施形態では、アプリケーションプロセッサは、複数の電力状態を有することができる。例えば、スリープ状態は、プロセッサの１つのセクションが上述したものなどのジェスチャ検出アルゴリズムを実行でき、同時に、プロセッサの他のセクションが節電のために非アクティブである状態を含むことができる。（例えば、マルチコアアプリケーションプロセッサでは、１つのコアがアクティブであり、他のコアが非アクティブである可能性がある）。
【０１６４】
可能性のあるレイズジェスチャ若しくは実際のレイズジェスチャの検出、検出済レイズジェスチャの確認及び／又はプレヒートイベント若しくはフォーカス解消イベントの検出に用いられるパラメータに、適応的制御を使用してもよい。適応的制御を使用すると、より甘い又はより厳しい検出基準にパラメータを調整できるようになる。基準が甘くなれば応答速度を上げてトリガーを早めることができるのに対し、基準が厳しくなれば誤検出を減らすことができる（よって、さらに節電になる）。調整可能なパラメータとしては、蓄積したｙ傾斜の必要量、デバイスのフォーカス姿勢範囲、レイズジェスチャを行うときのデバイス軌道に関する基準が挙げられる。いくつかの実施形態では、調整可能なパラメータを、コンフィギュレーションデータブロックによって変更することができ、随時、新たなコンフィギュレーションデータをデバイスにダウンロードすることができる。調整可能なパラメータを調節するために、ユーザインタフェースを提供することもできる（例えば、甘い基準から厳しい基準へのスライド目盛りで、など）。
【０１６５】
別の例として、上述したレイズジェスチャアルゴリズムでは、ジェスチャを検出する前に、最小限の持続時間にわたって、デバイスがフォーカス姿勢にとどまる必要がある場合がある。いくつかの実施形態では、持続時間は、フォーカス姿勢の精度とトレードオフになり得る。例えば、デバイスが、フォーカス姿勢に定められた範囲の近くにあるがその範囲内にはなく（例えば、４つの基準のうちの３つを満たす場合）、その位置で十分な持続時間を経過したら、そのことを、レイズジェスチャとして検出することができる。例えば、ｙ傾斜がゼロ又は負ではなく正であっても、終了姿勢が十分に長く保持されていると仮定すると、大幅な回転の後に終了姿勢が保持されていると認識される場合がある。このようにして持続時間を使用してフォーカス姿勢の全ての基準を完全には満たせなかったことを「相殺」するのであれば、より厳しいフォーカス姿勢基準を指定してもよい。
【０１６６】
本明細書に記載のプロセスを使用して、デバイスのユーザインタフェースをいつアクティブにするかを決定することができる。ひとたびアクティブになると、ユーザインタフェースは、望まれるどのような状態でも提示することができる。例えば、デフォルトの「ホーム」状態、ユーザインタフェースが非アクティブになる前の最後の状態、ユーザインタフェースが最後にアクティブであってから受信された最新の通知又は通知に関する情報を提示している状態、あるいは他の何らかの状態で、ユーザインタフェースを提示することができる。
【０１６７】
いくつかの実施形態では、ユーザインタフェース又はそのコンポーネントを段階的にアクティブにすることができる。例えば、可能性のあるレイズジェスチャが（例えば、上述のようにして）検出された場合、ユーザインタフェースは、部分的にアクティブになる状態に遷移することができる。そのような部分的にアクティブになる状態には、ディスプレイをアクティブにするが薄暗い照明をしているだけである（「薄暗い照明」は、例えば周囲光、ユーザの好みなどに依存することがある、ディスプレイの通常の動作輝度より低いレベルの光を含むことができる）か、ディスプレイをアクティブにするがタッチ感知式オーバーレイをアクティブにしない、ディスプレイをアクティブにするが音声入力回路をアクティブにしないことなどを含んでもよい。可能性のあるレイズジェスチャが検出済レイズジェスチャになると、ユーザインタフェースは、例えば、ディスプレイが標準的な輝度でオンになり、タッチ感知式オーバーレイがアクティブで、音声入力回路がアクティブにされるなど、完全にアクティブになる状態に遷移することができる。別の例として、ユーザインタフェースの異なるコンポーネントが、レイズジェスチャ検出の異なる段階でアクティブにされてもよい。例えば、（例えば上述したように）可能性のあるレイズジェスチャが検出されると、１つ以上のユーザインタフェースコンポーネント（例えば、マイクロフォン又はディスプレイ）をアクティブにすることができる一方で、他のユーザインタフェースコンポーネント（例えば、ディスプレイのタッチ感知式オーバーレイ、スピーカ、音声認識コプロセッサなど）は、非アクティブのままである。可能性のあるレイズジェスチャが検出済レイズジェスチャになると、１つ以上の他のユーザインタフェースコンポーネント（例えば、タッチ感知式オーバーレイ）をアクティブにすることができる。さらに、検出済レイズジェスチャが確認済レイズジェスチャになるまで、１つ以上の他のユーザインタフェースコンポーネント（例えば、音声認識コプロセッサ）を非アクティブのままにすることができる。異なるユーザインタフェースコンポーネントが異なるジェスチャ状態遷移に応じてアクティブな状態に遷移するように、他のアクティベーションシーケンスを実装することもできる。
【０１６８】
いくつかの実施形態では、ウェイク制御ロジック２３０は、デバイス２００がどれだけ長い時間フォーカス状態にあるかを示す情報（例えば、最新の検出済レイズジェスチャイベント又は最新の確認済レイズジェスチャイベントの発生からの経過時間）を、アプリケーションプロセッサ２０４に提供することができる。上記に加えて又はこれに代えて、アプリケーションプロセッサ２０４は、ウェイク制御ロジック２３０が（例えば、検出済レイズジェスチャ又は確認済レイズジェスチャをアプリケーションプロセッサ２０４に通知することによって）フォーカス状態への遷移を示した後に経過した時間及び／又はアプリケーションプロセッサ２０４に利用可能な他の情報に基づいて、フォーカス状態の持続時間を推定することができる。フォーカス状態の持続時間を使用して、ユーザエクスペリエンスに影響を及ぼすことができる。例えば、デバイス２００が、フォーカス状態にあり、通知（例えば、「Ｆｒｅｄからの新しいテキストメッセージ」）を表示していると仮定する。ユーザがどれだけ長く通知を見ているかに応じて、アプリケーションプロセッサ２０４は、ユーザに制御を操作させなくても通知に関する追加情報（例えば、テキストメッセージの内容）を表示することを選択できる。別の例として、アプリケーションプロセッサ２０４は、ユーザが予め定められた時間よりも長い時間見ているならば通知が読まれたと推定して、ユーザに制御を操作させなくても自動的に通知を隠すか破棄することができる。例えば、通知又は他のアイテムのリスト全体又はメッセージの内容全体でスクロール又はページングするなど、ユーザがフォーカス姿勢をどれだけ長く保ち続けているかに基づく他のアクションを実装してもよい。
【０１６９】
フォーカス解消ジェスチャを検出することで、様々な結果にすることができる。例えば、上述したように、ユーザインタフェースを非アクティブにすることができる。さらに、フォーカス解消時に表示されていた全ての通知を破棄することができるか、通知の既読／未読状態を維持することができる。
【０１７０】
さらに、上述したように、アプリケーションプロセッサ２０４は、ジェスチャ状態遷移又はジェスチャイベント（例えば、可能性のあるレイズジェスチャ、検出済レイズジェスチャ、確認済レイズジェスチャ、フォーカス解消）の通知を、ウェイク制御ロジック２３０から受けることができる。いくつかの実施形態では、アプリケーションプロセッサ２０４は、そのクライアント（例えば、アプリケーションプロセッサ上で実行することができる任意のアプリケーション及び／又はオペレーティングシステムプロセス）に、これらの遷移を通知することもでき、クライアントは、必要に応じて応答行為をすることができる。
【０１７１】
本発明のいくつかの実施形態では、本明細書に記載される全部のジェスチャ検出モジュールよりも少ない数のジェスチャ検出モジュールを使用できることを、理解されたい。例えば、いくつかの実施形態は、プレヒート検出モジュールだけを含むかもしれない。いくつかの実施形態は、単一の自然なレイズジェスチャ検出モジュール（例えば、上述したようなローダイナミック検出モジュール又はハイダイナミック検出モジュールのいずれかであり得る）だけを含むかもしれないし、複数の自然なレイズジェスチャ検出モジュールを含むかもしれない。いくつかの実施形態は、意図的なレイズジェスチャ検出モジュール（例えば、上述した軽い揺らし検出モジュール）だけを含むかもしれない。いくつかの実施形態は、フォーカス解消検出モジュールだけを含むかもしれない。いくつかの実施形態は、プレヒート検出モジュール及び１つ以上の自然なレイズジェスチャ検出モジュールを含むかもしれない。いくつかの実施形態は、プレヒート検出モジュール及び意図的なレイズジェスチャ検出モジュールを含むかもしれない。いくつかの実施形態は、プレヒート検出モジュール及びフォーカス解消検出モジュールを含むかもしれない。いくつかの実施形態は、プレヒート検出モジュール、１つ以上の自然なレイズジェスチャ検出モジュール及び意図的なレイズジェスチャ検出モジュールを含むかもしれない。いくつかの実施形態は、１つ以上の自然なレイズジェスチャ検出モジュール及び意図的なレイズジェスチャ検出モジュールを含むかもしれない。いくつかの実施形態は、１つ以上の自然なレイズジェスチャ検出モジュール、意図的なレイズジェスチャ検出モジュール及びフォーカス解消検出モジュールを含むかもしれない。いくつかの実施形態は、意図的なレイズジェスチャ検出モジュール及びフォーカス解消検出モジュールを含むかもしれない。加えて、いくつかの実施形態は、上記に具体的に記載されていない追加のジェスチャ検出モジュールを含むかもしれない。
【０１７２】
また、上述したようなレイズジェスチャ及び／又はフォーカス解消ジェスチャの自動検出を実装するデバイスで、ユーザインタフェースをアクティブ及び／又は非アクティブにするのに使用できるユーザが操作可能な手動制御（例えば、物理的ボタン、タッチセンサなど）を用いてもよいことは、理解されたい。このような制御が提供される場合、ウェイク制御ロジック２３０は、手動制御のユーザ操作に起因するユーザインタフェースの状態の変化の通知を受信し、それに応じて自身の状態を調節することができる（例えば、上述した様々なアルゴリズムをイネーブル又はディセーブルにする）。したがって、本明細書に記載された自動化プロセスがユーザの対話を容易にすることができるが、デバイス（及びユーザ）は、これだけに頼る必要はない。
【０１７３】
本明細書で説明される様々なアルゴリズム及びパラメータ（例えば、重み、閾値、他の基準）については、上述したように、例えば機械学習及び／又は他の技術を用いてヒューリスティックに調整することができる。機械学習の訓練フェーズは、デバイス開発中に（例えば、広範囲に配布する前に）行うことができ、訓練の結果をデバイスのファームウェアに組み込むことができると考えられる。したがって、ユーザがデバイスの訓練を行う必要はない。いくつかの実施形態では、デバイスは、ユーザが意図的なレイズジェスチャを実行するか手動制御を動作させた場合（これは、自然なレイズジェスチャ検出アルゴリズムが検出漏れを生じたことを示す場合がある）に、モーションセンサデータの関連する間隔を記録するなど、通常動作時にフィードバックを収集することができる場合がある。デバイスは、そのような記録されたデータに基づいて自己のアルゴリズム及びパラメータを改良するために、バックグラウンドで訓練アルゴリズムを実行することができる場合がある。いくつかの実施形態では、デバイス製造業者は、そのようなデータをデバイスの大きなまとまり全体で集約し、その情報を使用してジェスチャ検出アルゴリズム及び／又はパラメータを更新することができる。（ユーザのプライバシーを保護するために、この集約は匿名で行うことができ、モーションセンサデータと、データが検出漏れに相当する可能性があるという指示に限定することができる）。
【０１７４】
本開示では、「ほぼ」及び「実質的に」などの用語を使用して、フォーカス姿勢における安定性などの特定の測定値に幅を持たせている。ほとんどのユーザは自分の腕を完全に静止させることができず、これらの用語は、ユーザに自然に生じる不安定さの影響及び様々なモーションセンサの固有の精度を許容できることを示すために使用されることは、当業者であれば理解するであろう。水平、垂直、平行などの他の用語にも同様に幅を持たせて、物理的な完全性が不要であることを示すことができる。また、本明細書で使用する場合、「視線内に」などの表現は概ね、デバイスに対するユーザの頭の向きに関する仮定を示し、そのような仮定は、ユーザの目がデバイスの方に向けられているか否かに必ずしも厳密には一致しないことがある。
【０１７５】
さらに、ここでの説明は、着用可能デバイス及び手首に着用可能なデバイスに具体的に言及しているが、本発明の実施形態は、着用可能デバイス又は手首に着用可能なデバイスに限定されるものではない。例えば、上述のアルゴリズム及びモジュールを、ユーザがデバイスとの対話中に持ち上げて保持するかもしれない携帯電話、タブレットなどの他のポータブルデバイスに実装することができる。上述したようなアルゴリズム及び／又はモジュールは、携帯式のデバイスに実装されると、持ち上げられてユーザの視線内に保たれることと整合性が取れるデバイスの向きの変化（あるいは、逆に下げられる又は離されることと整合性が取れる変化）を検出することができ、そのような変化の検出を用いて、デバイス状態の変化（例えば、ディスプレイ又は他のユーザインタフェースコンポーネントをアクティブにすること、プロセッサをスリープ状態からウェイクさせることなど）を、引き起こすことができる。
【０１７６】
本発明の実施形態は、専用の構成要素及び／又はプログラマブルプロセッサ、及び／又は他のプログラマブルデバイスの任意の組み合わせを使用して実現することができる。本明細書で述べられる様々なプロセスは、同一プロセッサ又は任意の組み合わせの異なるプロセッサ上で実装可能である。構成要素が特定の動作を実行するように構成されていると説明されている場合、このような構成は、例えばこの動作を実行するように電子回路を設計することにより、この動作を実行するように（マイクロプロセッサなどの）プログラマブルな電子回路をプログラムすることにより、又はこれらの任意の組み合わせにより、達成することができる。さらに、上記の実施形態は、特定のハードウェア及びソフトウェア構成要素を参照し得るが、当業者には、異なる組み合わせのハードウェア及び／又はソフトウェア構成要素も利用でき、ハードウェアで実行されると説明されている特定の動作がソフトウェアでも実行し得、またその逆も可能であることが理解されよう。
【０１７７】
本発明の様々な特徴を組み込んだコンピュータプログラムが符号化され、様々なコンピュータ可読記憶媒体上に記憶されてもよい。好適な媒体としては、磁気ディスク若しくはテープ、コンパクトディスク（ＣＤ：compact disk）若しくはＤＶＤ（digital versatile disk、デジタル多用途ディスク）などの光学記憶媒体、フラッシュメモリ、並びにその他の非一時的媒体が挙げられる。（データの「記憶」は、搬送波などの一時的な媒体を使用するデータの伝播とは異なることが理解される）。プログラムコードで符号化されたコンピュータ可読媒体は、互換性のある電子機器と共にパッケージ化することができ、又はプログラムコードを電子機器とは別個に（例えばインターネットダウンロードにより、若しくは別個にパッケージ化されたコンピュータ可読記憶媒体として）提供することができる。
【０１７８】
複数の実施形態が、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、デバイスの動きを検出するためのモーションセンサと、少なくとも第１のプロセッサと、を有することができる、手首に着用可能なデバイス又は他の着用可能デバイスなどのデバイスにおいて、レイズジェスチャを検出するための方法に関する。例えば、第１のプロセッサは、時間幅に対応する一組のモーションセンサデータサンプルに基づいて、時間幅の開始に対応する開始姿勢を決定することができる。第１のプロセッサは、少なくとも部分的に開始姿勢に基づいて、一組のモーションセンサデータサンプルを使用して可能性のあるレイズジェスチャを特定するための一組の基準を決定することができる。第１のプロセッサはさらに、少なくとも部分的に、一組のモーションセンサデータサンプルが選択された一組の基準を満たすか否かに基づいて、可能性のあるレイズジェスチャをさらに決定することができる。第１のプロセッサはさらに、可能性のあるレイズジェスチャの後に、少なくとも最小限の持続時間にわたってフォーカス姿勢のままである場合に、検出済レイズジェスチャを決定することができる。第１のプロセッサは、可能性のあるレイズジェスチャが特定されたとき及び検出済レイズジェスチャが特定されたときに、デバイスの別のコンポーネントに通知することができる。
【０１７９】
いくつかの実施形態では、他のコンポーネントは、ユーザインタフェースコンポーネントを含むことができる。ユーザインタフェースコンポーネントは、可能性のあるレイズジェスチャが通知されたことに応じて、あるいは、検出済レイズジェスチャが通知されたことに応じて、アクティブにされることができる。いくつかの実施形態では、ユーザインタフェースコンポーネントは、可能性のあるレイズジェスチャが通知されたことに応じて、非アクティブな状態から部分的にアクティブな状態に遷移することができ、検出済レイズジェスチャが通知されたことに応じて、部分的にアクティブな状態からアクティブな状態に遷移することができる。
【０１８０】
いくつかの実施形態では、他のコンポーネントは、アプリケーションプロセッサを含むことができる。アプリケーションプロセッサは、例えば、可能性のあるレイズジェスチャが通知されたことに応じて、スリープ状態からウェイク状態に遷移することができ、可能性のあるレイズジェスチャが通知されたことに応じて、あるいは、検出済レイズジェスチャが通知されたことに応じて、デバイスのユーザインタフェースコンポーネントをアクティブにすることができる。
【０１８１】
開始姿勢を、様々な方法で決定することができる。いくつかの実施形態では、開始姿勢を決定することは、一組のモーションセンサデータサンプルにおけるモーションセンサの１つ以上の最も古いデータサンプルを複数の基準となる開始姿勢の各々と比較し、比較結果に基づいて、１つ（又はそれ以上）の基準となる開始姿勢を選択することを含むことができる。いくつかの実施形態では、複数の基準となる開始姿勢が選択された場合、開始姿勢は、選択された基準となる開始姿勢を混合したものと定義することができる。いくつかの実施形態では、開始姿勢を決定することには、活動分類部を使用してユーザの現在の活動を特定することと、少なくとも部分的にユーザの現在の活動に基づいて開始姿勢を決定することを含むことができる。
【０１８２】
可能性のあるレイズジェスチャを特定するための一組の基準については、様々な方法で決定することができる。例えば、可能性のあるレイズジェスチャを特定するための一組の基準を決定することには、決定された開始姿勢を使用してルックアップテーブルにアクセスし、ルックアップテーブルから一組の基準を抽出することを含むことができる。開始姿勢が２つ以上の選択された基準となる開始姿勢を混合したものであると定義される場合、可能性のあるレイズジェスチャを特定するための一組の基準を決定することには、選択された基準となる開始姿勢をそれぞれ使用してルックアップテーブルにアクセスし、選択された基準となる開始姿勢のそれぞれに対応する一組の基準をルックアップテーブルから抽出し、抽出した一組の基準を混合することを含むことができる。
【０１８３】
いくつかの実施形態では、可能性のあるレイズジェスチャを特定するための一組の基準は、モーションセンサの利用可能なデータに依存することがある。例えば、モーションセンサデータが加速度計データを含む場合、可能性のあるレイズジェスチャを特定するための選択された一組の基準は、時間幅の間に加速度計データから決定された蓄積した傾斜に基づく基準、デバイスの持ち上げ量、時間幅の間に加速度計データから決定された持ち上げ量に基づく基準、及び／又は時間幅の間の動きの滑らかさに基づく基準のいずれか又は全てを含むことができる。別の例として、モーションセンサデータがジャイロセンサからのジャイロスコープデータを含む場合、可能性のあるレイズジェスチャを特定するための選択された一組の基準は、ユーザの前腕に実質的に平行な軸を中心とした蓄積した回転に基づく基準を含むことができ、この蓄積した回転は、時間幅の間にジャイロスコープデータから決定される。モーションセンサデータがジャイロセンサからのジャイロスコープデータと加速度計からの加速度計データの両方を含むいくつかの実施形態では、可能性のあるレイズジェスチャを特定するのにジャイロスコープデータを用いることができ、検出済レイズジェスチャを特定するのに加速度計データを用いることができる。
【０１８４】
可能性のあるレイズジェスチャについては、様々な方法で決定することができる。例えば、可能性のあるレイズジェスチャを決定することには、一組のモーションセンサデータサンプルに基づいて、時間幅の終了に対応する終了姿勢を決定することと、終了姿勢がフォーカス姿勢に対応するか否かを決定することを含むことができる。いくつかの実施形態では、可能性のあるレイズを決定することは、開始から時間幅の終了に対応する終了姿勢への動きが、時間幅の終了によって遅くなる又は停止したか否かを決定することを含むことができる。
【０１８５】
フォーカス姿勢については、様々な方法で定義することができる。いくつかの実施形態では、フォーカス姿勢は、少なくとも部分的に開始姿勢に基づいて定義される。いくつかの実施形態では、フォーカス姿勢は、デバイスの一定範囲の向きに対応するものと定義することができ、フォーカス姿勢の最小限の持続時間は、フォーカス姿勢に対応する向きの範囲に対するデバイスの現在の向きの位置に少なくとも部分的に基づいて決定することができる。フォーカス姿勢がデバイスの向きの範囲に対応するものと定義されるいくつかの実施形態では、可能性のあるレイズジェスチャの終了姿勢を特定することができ、終了姿勢の持続時間を決定することができる。フォーカスに対応する向きの範囲は、少なくとも部分的に終了姿勢の持続時間に基づいて、例えば、持続時間が増加すると範囲が増加するように、動的に調節することができる。
【０１８６】
いくつかの実施形態では、可能性のあるレイズジェスチャを決定するための基準を、甘い基準から厳しい基準の範囲内で選択することができる。同様に、フォーカス姿勢の定義（例えば、フォーカス姿勢に対応するデバイスの向きの範囲）を、甘い定義から厳しい定義の範囲内で調節することができる。ユーザが、この甘さ又は厳しさを選択又は調整できる場合もある。
【０１８７】
いくつかの実施形態では、検出済レイズジェスチャを決定した後、ジェスチャ分類部を使用して、検出済レイズジェスチャを確認することができる。例えば、検出済レイズジェスチャに信頼スコアを割り当てることができ、対象とする特徴を、ジェスチャ分類部に入力することができる。モーションセンサデータが加速度計データを含む実施形態では、対象とする特徴は、例えば、対象とする時間ウィンドウに対応する加速度計データサンプル、連続した加速度計データサンプル間の変化の標準偏差に基づく滑らかさのパラメータ、ユーザの前腕に平行な軸に対する蓄積した傾斜（例えば、手首に着用可能なデバイスの場合）、対象とする時間ウィンドウ（例えば、検出済レイズジェスチャが起こっている時間）の開始時におけるデバイスの開始の向き及び／又は対象とする時間ウィンドウの終了時におけるデバイスの終了の向きのうちのいずれか又は全てを含むことができる。モーションセンサデータがジャイロセンサからのジャイロスコープデータサンプルを含む実施形態では、対象とする特徴は、例えば、対象とする時間ウィンドウに対応する個々のジャイロスコープデータサンプル、連続したジャイロスコープデータサンプル間の変化の標準偏差に基づく滑らかさのパラメータ、ユーザの前腕に平行な軸に対する蓄積した回転、対象とする時間ウィンドウの開始時におけるデバイスの開始の向き及び／又は対象とする時間ウィンドウの終了時におけるデバイスの終了の向きのうちのいずれか又は全てを含むことができる。
【０１８８】
例えば線形判別分析を実装したベイジアン分類部を含むことができるジェスチャ分類部は、対象とする特徴から、検出済レイズジェスチャが真のレイズジェスチャである確率を計算することができ、この確率は、対象とする特徴から計算される。信頼スコア及びこの確率に基づいて、レイズジェスチャを確認するか否かを決定することができる。例えば、確率の閾値は、信頼度スコアに少なくとも部分的に基づいて選択することが可能であり、この確率が閾値を超えるか否かに基づいて、決定を行うことができる。いくつかの実施形態では、検出済レイズジェスチャを確認するか否かを決定することには、レイズジェスチャを確認か否認するかのいずれかの前に、モーションセンサの追加のデータを待機するか否かを決定することを含むことができる。いくつかの実施形態では、自然なレイズジェスチャを少なくとも１つの他の類似のジェスチャから区別するように、ジェスチャ分類部を前もって訓練することができる。
【０１８９】
いくつかの実施形態では、ジェスチャ分類部による確認に応じてデバイスのユーザインタフェースコンポーネントをアクティブにすることができ、あるいは、特定された検出済レイズジェスチャがジェスチャ分類部によって否認される場合に、デバイスのユーザインタフェースコンポーネントを非アクティブにすることができる。
【０１９０】
レイズジェスチャを検出することに加えて、いくつかの実施形態では、デバイスは、プレヒートイベントを検出することもできる。例えば、第１のプロセッサ（又は他のプロセッサ）は、プレヒート検出アルゴリズムを実行して、レイズジェスチャの開始を検出することができる。ここで、自然なレイズジェスチャの検出に関連付けられた決定、選択、特定をする行為と同時に、プレヒート検出アルゴリズムが実行される。プロセッサは、レイズジェスチャの開始が検出された場合に、他のコンポーネント（例えば、アプリケーションプロセッサ）に、プレヒートイベントを通知することができる。プレヒートアルゴリズムは、例えば、レイズジェスチャの可能性のある開始を検出するために、一組の１つ以上の最近のモーションセンサデータサンプルを分析し、レイズジェスチャの可能性のある開始が検出されない場合は、その後のモーションセンサデータのサンプルにもこの分析を繰り返し、レイズジェスチャの可能性のある開始が検出されたら、その後の一連のモーションセンサデータのサンプル各々をレイズジェスチャと整合性が取れるか整合性が取れないかのいずれかとして評価することを含むことができる。レイズジェスチャと整合性が取れないモーションセンサデータのサンプルの第２の閾値数に達する前に、レイズジェスチャと整合性が取れるモーションセンサデータのサンプルの第１の閾値数に達した場合は、他のコンポーネントに、プレヒートイベントを通知することができる。他のコンポーネント（例えば、アプリケーションプロセッサ）は、プレヒートイベントに応じて、スリープ状態からウェイク状態に遷移することができる。いくつかの実施形態では、プレヒートイベントの通知のあとにタイムアウト時間内に検出済レイズジェスチャの通知が続かない場合、他のコンポーネントは、ウェイク状態からスリープ状態に戻る遷移をすることができる。いくつかの実施形態では、検出済レイズジェスチャが特定されるまでにアプリケーションプロセッサがウェイク状態への遷移を完了できるほど十分に早い段階で、レイズジェスチャの開始検出することができる。いくつかの実施形態では、プレヒートイベントの通知は、デバイスの非アクティブなユーザインタフェースコンポーネントに影響しない。
【０１９１】
このような方法は、様々なデバイスに実装することができる。例えば、デバイスは、（タッチスクリーンディスプレイ又は他のディスプレイであり得る）ディスプレイ、マイクロフォン、スピーカ及び／又はボタンのいずれか又は全てなどのユーザインタフェースコンポーネントを有することができる。デバイスは、加速度計及び／又はジャイロセンサなどの様々なモーションセンサを有することができる。必要があれば、本明細書に記載されるようなレイズジェスチャの検出を、プライマリーアプリケーションプロセッサ又はコプロセッサで行ってもよい。
【０１９２】
いくつかのデバイスは、アクティブな状態と非アクティブな状態があるユーザインタフェースコンポーネントと、デバイスの動きを示すモーションセンサデータを生成するように動作可能なモーションセンサと、ユーザインタフェースコンポーネント及びモーションセンサに接続された動き処理ユニットと、を含むことができる。動き処理ユニットは、モーションセンサデータを受信して、このモーションセンサデータに基づいて開始姿勢を推定するための開始姿勢推測ユニットと、モーションセンサデータを受信し、受信したデータが可能性のあるレイズジェスチャの基準を満たすか否かを決定し、基準が満たされた場合に、可能性のあるレイズジェスチャの通知を生成するための可能性のあるレイズジェスチャ決定ユニットと、可能性のあるレイズジェスチャ決定ユニットから可能性のあるレイズジェスチャの通知を受信し、検出済レイズジェスチャのための条件が満たされるか否かを決定するために加速度計の追加のデータを監視し、条件が満たされた場合に検出済レイズジェスチャの通知を生成するための検出済レイズジェスチャ決定ユニットと、を取り入れた自然検出モジュールを含むことができる。いくつかの実施形態において、動き処理ユニットは、開始姿勢推測ユニットによって推測された開始姿勢に少なくとも部分的に基づいて可能性のあるレイズジェスチャを検出するための基準を決定し、この基準を可能性のあるレイズジェスチャ決定ユニットに提供するための基準決定ユニットも含むことができる。いくつかの実施形態では、動き処理ユニットは、検出済レイズジェスチャに関連付けられたモーションセンサデータに基づいてジェスチャ確認を行い、確認済レイズジェスチャ又は否認されたレイズジェスチャの通知を生成するための確認ユニットも含むことができる。いくつかの実施形態では、自然検出モジュールを、ヌル状態、可能性のあるレイズジェスチャ状態、検出済レイズジェスチャの状態を含む一組のジェスチャ状態からジェスチャ状態を特定するように構成することができる。例えば、いくつかの実施形態では、可能性のあるレイズジェスチャ状態を、モーションセンサデータから決定される開始姿勢及び開始姿勢から終了姿勢までの変化についての一組の基準に少なくとも部分的に基づいて特定することができ、一組の基準は、少なくとも部分的に開始姿勢に基づいて選択される。いくつかの実施形態では、検出済レイズジェスチャ状態を、少なくとも部分的にフォーカス姿勢での持続時間に基づいて特定することができる。
【０１９３】
複数の実施形態が、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、デバイスの動きを検出するためのモーションセンサ（例えば、加速度計及び／又はジャイロセンサ）と、少なくとも第１のプロセッサと、を有することができる、手首に着用可能なデバイスなどのデバイスにおいて、意図的なレイズジェスチャを検出するための方法に関する。例えば、第１のプロセッサは、一組のモーションセンサデータサンプルをデバイスのモーションセンサから収集することができ、一組のモーションセンサデータサンプルは、時間幅に対応している。第１のプロセッサは、モーションセンサデータのサンプルにおける第１のインパルスピーク及び第２のインパルスピークを検出することができ、第１のインパルスピーク及び第２のインパルスピークは各々、デバイスを着用しているユーザの手首の回転に対応する方向での移動を示し（例えば、デバイスがユーザの手首に着用されていると仮定する）、第１のインパルスピーク及び第２のインパルスピークは、タイムアウト時間より短い時間だけ、時間的に離れている。第１のプロセッサは、少なくとも部分的に第１のインパルスピーク及び第２のインパルスピークの検出に基づいて、レイズジェスチャ（例えば、意図的なレイズジェスチャ）を検出することができ、レイズジェスチャが検出されたら、デバイスの別のコンポーネントに通知をすることができる。いくつかの実施形態では、第１のプロセッサはさらに、第２のインパルスピークの後、デバイスがほぼ安定した位置に少なくとも最小限の持続時間にわたって、保持されていることを決定することができ、第１のインパルスピーク及び第２のインパルスピークの検出に部分的に基づいて、かつ、デバイスがほぼ安定した位置に保持されているという決定に部分的に基づいて、レイズジェスチャが検出される。いくつかの実施形態では、第１のプロセッサは、モーションセンサデータのサンプルに基づいて、時間幅の最初に、デバイスが準備された位置にあるか否かを決定することができる。準備された位置については、例えば、最短の時間、デバイスが静止して保持されているか否かの決定すること、並びに／又はデバイスの向きを決定し、その向きと、デバイスを操作しているユーザの視線内にデバイスを位置付けるとみなされる想定向きとを比較することに少なくとも部分的に基づいて、決定することができる。いくつかの実施形態では、デバイスが準備された位置にあるか否かを決定することは、少なくとも部分的に、デバイスを操作しているユーザの現在の活動についての情報に基づくことができる。
【０１９４】
インパルスピークについては、様々な方法で検出することができる。例えば、モーションセンサが加速度計を含む実施形態では、第１のインパルスピーク及び第２のインパルスピークの検出は、少なくとも部分的に、加速度計データサンプルから決定される躍度に基づくことが可能である。
【０１９５】
インパルスピークに基づくレイズジェスチャの検出を使用して、例えば、レイズジェスチャを通知されたことに応じてアプリケーションプロセッサをスリープ状態からウェイク状態に遷移させる及び／又はレイズジェスチャを通知されたことに応じて、ユーザインタフェースコンポーネントを非アクティブな状態からアクティブな状態に遷移させることができる。
【０１９６】
このような方法は、様々なデバイスに実装することができる。例えば、デバイスは、（タッチスクリーンディスプレイ又は他のディスプレイであり得る）ディスプレイ、マイクロフォン、スピーカ及び／又はボタンのいずれか又は全てなどのユーザインタフェースコンポーネントを有することができる。デバイスは、加速度計及び／又はジャイロセンサなどの様々なモーションセンサを有することができる。必要があれば、本明細書に記載されるような意図的なレイズジェスチャの検出を、プライマリーアプリケーションプロセッサ又はコプロセッサで行ってもよい。
【０１９７】
いくつかのデバイスは、アクティブな状態と非アクティブな状態があるユーザインタフェースコンポーネントと、デバイスの動きを示すモーションセンサデータを生成するように動作可能なモーションセンサと、ユーザインタフェースコンポーネント及びモーションセンサに接続された動き処理ユニットと、を含むことができる。動き処理ユニットは、モーションセンサデータを受信して、このモーションセンサデータから、ユーザの腕が意図的なレイズジェスチャを実行する準備がなされているか否かを決定するための準備検出ユニットと、モーションセンサデータを追加で受信して、追加のモーションセンサデータに基づいて、目標数のインパルスピークの存在を検出するためのインパルスピーク検出ユニットと、さらなるモーションセンサデータを受信して、さらなるモーションセンサデータが、インパルスピーク検出ユニットによる目標数のインパルスピークの検出後にデバイス位置が安定したことを示すか否かを決定するための安定性検出ユニットと、を取り入れた意図検出モジュールを含むことができる。
【０１９８】
複数の実施形態が、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、デバイスの動きを検出するためのモーションセンサと、少なくとも第１のプロセッサと、を有することができる、手首に着用可能なデバイス又は他の着用可能デバイスなどのデバイスにおいて、レイズジェスチャの開始に対応するプレヒートイベントを検出するための方法に関する。例えば、デバイスのモーションセンサ（例えば、加速度計）を、サンプリングレートでデータサンプルを収集するように動作させることができる。デバイスにおける第１のプロセッサは、最新のデータサンプルに少なくとも部分的に基づいて、レイズジェスチャの可能性のある開始を検出することができる。レイズジェスチャの可能性のある開始が検出されない場合には、第１のプロセッサは、その後のデータサンプルの分析を繰り返すことができる。レイズジェスチャの可能性のある開始が検出されると、第１のプロセッサは、その後の一連のデータサンプル各々を、レイズジェスチャと整合性が取れるか整合性が取れないかのいずれかとして評価することができる。第１のプロセッサは、レイズジェスチャと整合性が取れないその後のデータサンプルが第２の閾値数に達する前に、レイズジェスチャと整合性が取れるその後のデータサンプルが第１の閾値数に達した場合に、デバイスの別のコンポーネントに、プレヒートイベントを通知することができる。いくつかの実施形態では、レイズジェスチャと整合性が取れるその後のデータサンプルが第１の閾値数に達する前に、レイズジェスチャと整合性が取れないその後のデータサンプルが第２の閾値数に達した場合に、検出プロセスは、レイズジェスチャの可能性のある開始が検出されていない初期状態に戻り、レイズジェスチャの可能性のある開始の検出を繰り返すことができる。
【０１９９】
いくつかの実施形態では、他のコンポーネントは、アプリケーションプロセッサを含むことができる。アプリケーションプロセッサは、例えば、プレヒートイベントの通知に応じてスリープ状態からウェイク状態に遷移することができる。これは、デバイスのユーザインタフェースコンポーネントの状態に影響を与えることなく起こり得る。いくつかの実施形態では、アプリケーションプロセッサは、プレヒートイベントの通知の後タイムアウト時間内にレイズジェスチャの通知が続かない場合に、ウェイク状態からスリープ状態に遷移することができる。
【０２００】
レイズジェスチャの可能性のある開始については、様々な方法で検出することができる。例えば、最新の２つのデータサンプルを比較して、デバイスの位置又は向きの変化を検出することができ、検出された変化がレイズジェスチャの開始と整合性が取れる方向にあるか否かを決定することができる。いくつかの実施形態では、レイズジェスチャの可能性のある開始を検出することは、少なくとも部分的に、データサンプルから決定される開始姿勢に基づくことができる。
【０２０１】
デバイスが手首に着用可能かつ加速度計を有するデバイスであるいくつかの実施形態では、レイズジェスチャの可能性のある開始の検出には、デバイスを着用しているユーザの前腕にほぼ平行な方向にある、加速度ベクトルの第１の成分の変化を決定し、第１の方向と直交する方向かつデバイスのディスプレイの平面内にある、加速度ベクトルの第２の成分の変化を決定し、第１の成分の変化と第２の成分の変化との組み合わせに基づいて、レイズジェスチャの可能性のある開始を検出することを含むことができる。
【０２０２】
その後のデータサンプルの評価を、様々な方法で行うことができる。例えば、この評価は、データサンプルから決定されるデバイスの位置又は向きの一方又は両方の変化が、レイズジェスチャの継続と整合性が取れるか否かの評価、データサンプルに基づく動きの滑らかさの測定値、レイズジェスチャの可能性のある開始が検出された時点での開始姿勢、及び／又はデータサンプルから推定されるデバイスの軌道のいずれか又は全てに少なくとも部分的に基づくことができる。
【０２０３】
いくつかの実施形態では、プレヒートイベントの他のコンポーネントに通知をした後、第１のプロセッサは、一連のその後のデータサンプル各々をレイズジェスチャと整合性が取れるか整合性が取れないかのいずれかとして評価を続けることができ、その後のデータサンプルがレイズジェスチャと整合性が取れないものとなった場合に、他のコンポーネントに、プレヒートイベント解消を通知することができる。
【０２０４】
このような方法は、様々なデバイスに実装することができる。例えば、デバイスは、（タッチスクリーンディスプレイ又は他のディスプレイであり得る）ディスプレイ、マイクロフォン、スピーカ及び／又はボタンのいずれか又は全てなどのユーザインタフェースコンポーネントを有することができる。デバイスは、加速度計及び／又はジャイロセンサなどの様々なモーションセンサを有することができる。必要があれば、本明細書に記載されるようなプレヒートイベントの検出を、プライマリーアプリケーションプロセッサ又はコプロセッサで行ってもよい。
【０２０５】
いくつかのデバイスは、アクティブな状態と非アクティブな状態があるユーザインタフェースコンポーネントと、デバイスの動きを示すモーションセンサデータを生成するように動作可能なモーションセンサと、ユーザインタフェースコンポーネント及びモーションセンサに接続された動き処理ユニットと、を含むことができる。動き処理ユニットは、モーションセンサデータのサンプルを受信して、このモーションセンサデータに基づいて、可能性のあるジェスチャ開始が起こっているか否かを決定するための可能性のあるジェスチャ開始決定ユニットと、モーションセンサデータのサンプルを受信して、それぞれのモーションセンサデータのサンプルを評価し、これが可能性のあるレイズジェスチャの継続と整合性が取れるか整合性が取れないかを決定するためのサンプル評価ユニットと、第１のカウンターを、サンプル評価ユニットによって可能性のあるレイズジェスチャの継続と整合性が取れると決定されたサンプルをカウントするように維持し、第２のカウンターを、サンプル評価ユニットによって可能性のあるレイズジェスチャの継続と整合性が取れないと決定されたサンプルをカウントするように維持するためのカウンターユニットと、カウンターユニットから第１のカウンター値及び第２のカウンター値を受信して、プレヒートイベントが生じているか否かを決定するプレヒート決定ユニットと、を取り入れたプレヒート検出モジュールを含むことができる。
【０２０６】
複数の実施形態が、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、デバイスの動きを検出するためのモーションセンサ（例えば、加速度計及び／又はジャイロセンサ）と、少なくとも第１のプロセッサと、を有することができる、手首に着用可能なデバイス又は他の着用可能デバイスなどのデバイスにおいて、フォーカス解消イベントを検出するための方法に関する。例えば、第１のプロセッサは、デバイスがフォーカス状態にあることを確立することができ、ここで、フォーカス状態は、デバイスのユーザインタフェースコンポーネントがアクティブな状態にあることを含む。第１のプロセッサは、デバイスのモーションセンサからモーションセンサデータの一連のサンプル（例えば、加速度計データサンプル及び／又はジャイロスコープデータサンプル）を受信することができる。第１のプロセッサは、モーションセンサデータのサンプルに基づいて、デバイスの向きの変化（例えば、傾斜角の変化）を検出することができる。第１のプロセッサは、向きの変化に少なくとも部分的に基づいてフォーカス解消ジェスチャを特定することができる。フォーカス解消ジェスチャが検出されたとき、第１のプロセッサは、デバイスの他のコンポーネントに通知することができる。
【０２０７】
モーションセンサデータサンプルが加速度計からの加速度計データサンプルとジャイロセンサからのジャイロスコープデータサンプルを含むいくつかの実施形態では、第１のプロセッサは、加速度計データサンプルを使用するかジャイロスコープデータサンプルを使用するかを選択することができ、この選択は、少なくとも部分的に、ユーザの現在の活動に基づいている。
【０２０８】
向きの変化を、様々な方法で検出することができる。例えば、向きの変化の検出には、デバイスがフォーカス状態にある間に基準傾斜角を決定し、基準傾斜角に対する傾斜角の正味の変化を決定することを含むことができる。ここで、向きの変化は、傾斜角の正味の変化を含む。基準傾斜角は、例えば、時間ウィンドウの開始を表すモーションセンサデータサンプルに基づいて決定されたデバイスの向きに少なくとも部分的に基づいて、決定することができる。これに加えて又はこれに代えて、基準傾斜角は、以前に検出済みのレイズジェスチャに関連付けられた蓄積した傾斜に少なくとも部分的に基づいて決定される。後者の場合、傾斜角の変化が蓄積した傾斜の閾値量より多くのロスに相当する場合に、フォーカス解消ジェスチャを特定することができる。
【０２０９】
フォーカス解消を特定するための他の技術を実装することができる。例えば、向きの変化が閾値を超えた場合及び／又は向きの変化が連続的に少なくとも最小限の時間にわたって閾値を超えた場合に、フォーカス解消ジェスチャを特定することができる。いくつかの実施形態では、フォーカス状態の持続時間を決定することができ、最小限の時間は、フォーカス状態の持続時間に少なくとも部分的に基づくことができる。例えば、最小限の時間は、フォーカス状態の持続時間が増すにつれて増加することがある。いくつかの実施形態では、フォーカス解消ジェスチャの特定は、向きの変化に部分的に基づくことができ、例えば活動分類部を用いて決定することができるユーザの現在の活動に部分的に基づくことができる。
【０２１０】
このような方法は、様々なデバイスに実装することができる。例えば、デバイスは、（タッチスクリーンディスプレイ又は他のディスプレイであり得る）ディスプレイ、マイクロフォン、スピーカ及び／又はボタンのいずれか又は全てなどのユーザインタフェースコンポーネントを有することができる。デバイスは、加速度計及び／又はジャイロセンサなどの様々なモーションセンサを有することができる。必要があれば、本明細書に記載されるようなフォーカス解消ジェスチャの検出を、プライマリーアプリケーションプロセッサ又はコプロセッサで行ってもよい。
【０２１１】
いくつかのデバイスは、アクティブな状態と非アクティブな状態があるユーザインタフェースコンポーネントと、デバイスの動きを示すモーションセンサデータを生成するように動作可能なモーションセンサと、ユーザインタフェースコンポーネント及びモーションセンサに接続された動き処理ユニットと、を含むことができる。動き処理ユニットは、モーションセンサデータを受信して、このモーションセンサデータに基づいてデバイスの向きを決定するための向き決定ユニットと、向き決定ユニットによって決定された向きに少なくとも部分的に基づいて、向きの変化が生じているか否かを決定するための向き変化検出ユニットと、モーションセンサデータを受信して、このデータから、デバイスが着用されていると思われる腕の推測腕位置を決定するための腕位置推測ユニットと、向き変化検出ユニットから向き変化情報を受信し、腕位置推測ユニットから推測腕位置を受信し、受信した向き変化情報及び推測腕位置に少なくとも部分的に基づいて、フォーカス解消が生じているか否かを決定するためのフォーカス決定ユニットと、を取り入れたフォーカス解消検出モジュールを含むことができる。
【０２１２】
複数の実施形態が、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、デバイスの動きを検出するためのモーションセンサと、１つ以上のプロセッサと、を有することができる、手首に着用可能なデバイス又は他の着用可能デバイスなどのデバイスにおいて、様々なレイズジェスチャ（例えば、上述したような自然なレイズジェスチャ、意図的なレイズジェスチャ、プレヒートイベント及び／又はフォーカス解消ジェスチャのいずれかの組み合わせを含む）を検出するための方法に関する。モーションセンサデータは、デバイスのモーションセンサから受信可能である。モーションセンサデータは、ユーザがデバイスを想定される視線内に移動していることを示すレイズジェスチャ又はレイズジェスチャの開始を示すプレヒートイベントの一方又は両方を検出するための一組のジェスチャ検出モジュール（例えば、上述した自然なレイズジェスチャ検出モジュール、意図的なレイズジェスチャ検出モジュール及び／又はプレヒート検出モジュールのうちのいずれか１つ以上を含む）を使用して、処理され得る。デバイスのアプリケーションプロセッサは、プレヒートイベントが検出された場合に通知を受けることができ、アプリケーションプロセッサは、プレヒートイベントの通知に応じて、スリープ状態からウェイク状態に遷移することができる。デバイスのユーザインタフェースコンポーネントは、レイズジェスチャが検出された場合に通知を受けることができ、ユーザインタフェースコンポーネントは、レイズジェスチャの通知に応じて、非アクティブな状態からアクティブな状態に遷移することができる。いくつかの実施形態では、アプリケーションプロセッサは、プレヒートイベントを検出する前にレイズジェスチャが検出された場合に、レイズジェスチャの通知に応じて、スリープ状態からウェイク状態に遷移する。いくつかの実施形態では、レイズジェスチャの検出後、一組の検出モジュールをディセーブルにすることができ、（例えば上述したような）フォーカス解消検出モジュールをイネーブルにすることができる。
【０２１３】
複数の実施形態が、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、デバイスの動きを検出するためのモーションセンサと、１つ以上のプロセッサと、を有することができる、手首に着用可能なデバイス又は他の着用可能デバイスなどのデバイスで実行可能な方法に関する。デバイスのアプリケーションプロセッサがスリープ状態にあり、デバイスのユーザインタフェースコンポーネントが非アクティブな状態にあるヌル状態を、確立することができる。デバイスのコプロセッサは、レイズジェスチャ（例えば、上述したような自然なレイズジェスチャ又は意図的なレイズジェスチャ）を検出するための１つ以上のレイズジェスチャ検出アルゴリズムと、（例えば、上述したような）レイズジェスチャの開始を検出するためのプレヒート検出アルゴリズムと、を含む一組のジェスチャ検出アルゴリズムを実行することができる。プレヒート検出アルゴリズムは、レイズジェスチャの開始が検出された場合に、プレヒートイベントを生成することができる。少なくとも１つのレイズジェスチャ検出アルゴリズムは、レイズジェスチャが検出された場合に、レイズジェスチャイベントを生成することができる。アプリケーションプロセッサは、プレヒートイベントに応じて、スリープ状態からウェイク状態に遷移することができる。ユーザインタフェースコンポーネントは、レイズジェスチャイベントに応じて、非アクティブな状態からアクティブな状態に遷移することができる。いくつかの実施形態では、プレヒート検出アルゴリズムがプレヒートイベントを生成する前にレイズジェスチャ検出アルゴリズムがレイズジェスチャイベントを生成した場合に、アプリケーションプロセッサは、レイズジェスチャイベントに応じて、スリープ状態からウェイク状態に遷移することができる。いくつかの実施形態では、アプリケーションプロセッサがウェイク状態にあるときにプレヒート検出アルゴリズムをディセーブルにして、アプリケーションプロセッサがウェイク状態からスリープ状態に遷移した場合は、再度イネーブルにすることができる。いくつかの実施形態では、ユーザインタフェースコンポーネントがアクティブな状態にあるときに、全てのレイズジェスチャ検出アルゴリズムをディセーブルにすることができ、ユーザインタフェースコンポーネントがアクティブな状態から非アクティブな状態に遷移した場合に、少なくとも１つのレイズジェスチャ検出アルゴリズムを再びイネーブルにすることができる。
【０２１４】
いくつかの実施形態では、レイズジェスチャ検出アルゴリズムは、動作の少ない環境でレイズジェスチャを検出するための第１の自然なレイズジェスチャ検出アルゴリズム、及び／又は動作の多い環境でレイズジェスチャを検出するための第２の自然なレイズジェスチャ検出アルゴリズムなどの、１つ以上の自然なレイズジェスチャ検出アルゴリズムを含むことができる。第１の自然なレイズジェスチャ検出アルゴリズムと第２の自然なレイズジェスチャ検出アルゴリズムの両方が含まれるいくつかの実施形態では、第１の自然なレイズジェスチャ検出アルゴリズム及び第２の自然なレイズジェスチャ検出アルゴリズムのうちの一方を所定の時間に実行されるように選択することができ、この選択は、例えば活動分類部を使用して決定できるユーザの現在の活動及び／又は加速度計データのデータ品質分析に少なくとも部分的に基づいている。いくつかの実施形態では、意図的なレイズジェスチャ検出アルゴリズムを、第１の自然なレイズジェスチャ検出アルゴリズム及び第２の自然なレイズジェスチャ検出アルゴリズムの一方又は両方と組み合わせて使用することができる。
【０２１５】
いくつかの実施形態では、１つ以上のレイズジェスチャ検出アルゴリズムの第１のものは、可能性のあるレイズジェスチャイベントと検出済レイズジェスチャイベントを含む複数の異なるレイズジェスチャイベントを生成することができる。この場合、ユーザインタフェースコンポーネントのアクティブな状態への遷移が、検出済レイズジェスチャイベントに応じて起こり得る。いくつかの実施形態では、ユーザインタフェースコンポーネントは、可能性のあるレイズジェスチャイベントに応じて、部分的にアクティブな状態に遷移することができ、検出済レイズジェスチャイベントに応じて、完全にアクティブな状態に遷移することができる。いくつかの実施形態では、アプリケーションプロセッサは、プレヒートイベントが検出される前に可能性のあるレイズジェスチャイベントが検出された場合に、スリープ状態からウェイク状態に遷移することができる。
【０２１６】
いくつかの実施形態では、１つ以上のレイズジェスチャ検出アルゴリズムの第１のものは、可能性のあるレイズジェスチャイベント、検出済レイズジェスチャイベント、確認済レイズジェスチャイベントを含む複数の異なるレイズジェスチャイベントを生成することができる。この場合、ユーザインタフェースコンポーネントのアクティブな状態への遷移が、確認済レイズジェスチャイベントに応じて起こり得る。
【０２１７】
いくつかの実施形態では、レイズジェスチャイベントに応じて、フォーカス解消検出アルゴリズムを実行し、（例えば、上述したような）フォーカス解消イベントを検出することができる。フォーカス解消イベントの検出に応じて、ユーザインタフェースコンポーネントは、アクティブな状態から非アクティブな状態に遷移することができる。
【０２１８】
いくつかの実施形態では、レイズジェスチャイベントの検出後、デバイスのフォーカス姿勢での持続時間を決定することができ、持続時間に少なくとも部分的に基づいて、ユーザインタフェースコンポーネントでの情報の提示内容を変えることができる。例えば、提示される情報項目を、第１の情報項目から第２の情報項目に変更することができる。最初に提示された情報項目についての追加情報を、提示することができる。あるいは、最初に提示された情報項目の提示をやめることができる。
【０２１９】
このような方法は、手首に着用可能なデバイス及び他の着用可能デバイスを含む、様々なデバイスに実装することができる。例えば、デバイスは、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、ユーザインタフェースコンポーネントに接続され、スリープ状態とウェイク状態のあるアプリケーションプロセッサと、アプリケーションプロセッサに接続されたコプロセッサと、コプロセッサに接続され、デバイスの動きを検出するためのモーションセンサ（例えば、加速度計及び／又はジャイロセンサ）と、を有することができる。コプロセッサは、様々な処理アルゴリズム（このうちいくつか又は全てが同時に動作可能である）を使用してモーションセンサから受信したモーションセンサデータを処理し、プレヒートイベント及びレイズジェスチャを含むジェスチャ関連イベント（上述したアルゴリズムのいずれか又は全てを含む）を検出し、アプリケーションプロセッサに、プレヒートイベント及びレイズジェスチャを通知するように、構成することができる。アプリケーションプロセッサは、プレヒートイベントの通知に応じてスリープ状態からウェイク状態に遷移し、ユーザインタフェースコンポーネントに、レイズジェスチャの通知に応じて非アクティブな状態からアクティブな状態に遷移するよう命令するように構成することができる。いくつかの実施形態では、アプリケーションプロセッサは、さらに、アプリケーションプロセッサがスリープ状態にある間にレイズジェスチャの通知を受信した場合に、スリープ状態からウェイク状態に遷移するように構成することができる。
【０２２０】
部分的に利用可能なモーションセンサに応じて、処理アルゴリズムの様々な組み合わせを使用することができる。例えば、モーションセンサが加速度計とジャイロセンサとを含むいくつかの実施形態では、処理アルゴリズムは、加速度計からのデータに基づいて自然なレイズジェスチャを検出するためのローダイナミック検出アルゴリズムと、ジャイロセンサからのデータに少なくとも部分的に基づいて自然なレイズジェスチャを検出するためのハイダイナミック検出アルゴリズムと、を含むことができる。いくつかの実施形態では、コプロセッサは、ユーザの現在の活動を動作の少ない活動又は動作の多い活動のいずれかに決定し、ユーザの現在の活動に基づいて、ローダイナミック検出アルゴリズム又はハイダイナミック検出アルゴリズムのうちの１つをディセーブルにするように構成することができる。ユーザの現在の活動の決定は、活動分類部及び／又は加速度計データサンプルに対して実行されるデータ品質分析に少なくとも部分的に基づくことができる。
【０２２１】
いくつかの実施形態では、処理アルゴリズムは、ユーザがデバイスをフォーカス姿勢から外すように移動していることに対応するフォーカス解消イベントを検出するためのフォーカス解消アルゴリズムを含むことができ、コプロセッサはさらに、フォーカス解消イベントが検出されると、アプリケーションプロセッサに通知するように構成することができる。いくつかの実施形態では、アプリケーションプロセッサはさらに、フォーカス解消イベントの通知に応じて、ユーザインタフェースを非アクティブな状態に遷移させるように構成することができる。いくつかの実施形態では、コプロセッサは、レイズジェスチャの検出に応じて、フォーカス解消アルゴリズムをイネーブルにするとともに全てのジェスチャ検出アルゴリズムをディセーブルにし、フォーカス解消イベントを検出したことに応じて、少なくとも２つのジェスチャ検出アルゴリズムをイネーブルにするとともにフォーカス解消アルゴリズムをディセーブルにするように構成することができる。
【０２２２】
ユーザインタフェースコンポーネントは、例えば、ユーザインタフェースコンポーネントが非アクティブな状態にあるときに電源をオフにして、ユーザインタフェースコンポーネントがアクティブな状態にあるときに電源をオンにすることができるディスプレイを含むことができる。別の例として、ユーザインタフェースコンポーネントは、ユーザインタフェースコンポーネントが非アクティブな状態にあるときに電源をオフにして、ユーザインタフェースコンポーネントがアクティブな状態にあるときに電源をオンにすることができるタッチスクリーンディスプレイを含むことができる。
【０２２３】
いくつかの実施形態では、少なくとも１つの処理アルゴリズムが可能性のあるレイズジェスチャを検出可能とすることができ、コプロセッサがさらに、アプリケーションプロセッサに可能性のあるレイズジェスチャを通知するように構成することができる。アプリケーションプロセッサは、レイズジェスチャの通知に応じて、非アクティブな状態から部分的にアクティブな状態に遷移するようにユーザインタフェースコンポーネントに命令するように構成することができる。例えば、ユーザインタフェースコンポーネントは、ユーザインタフェースコンポーネントが非アクティブな状態にあるときに電源をオフにし、ユーザインタフェースコンポーネントが部分的にアクティブな状態にあるときに薄暗い状態で電源をオンにし、ユーザインタフェースコンポーネントがアクティブ状態にあるときに、通常の輝度状態で電源をオンにすることが可能なディスプレイを含むことができる。
【０２２４】
いくつかの実施形態では、デバイスは、手動でユーザインタフェースコンポーネントをアクティブにするように動作可能なユーザ入力制御を含むことができる。コプロセッサは、ユーザインタフェースコンポーネントを手動でアクティブにするようにユーザ入力制御が操作された場合に、通知を受信するように構成することができる。（上述したように、これは、ジェスチャ検出アルゴリズムの調整、訓練又は他の経験に基づく修正のために使用することができる。）
【０２２５】
自然なレイズジェスチャを検出するためのアルゴリズム、動作の少ない環境で自然なレイズジェスチャを検出するためのアルゴリズム、動作の多い環境で自然なレイズジェスチャを検出するためのアルゴリズム、プレヒートイベントを検出するためのアルゴリズム、意図的なレイズジェスチャ（例えば、上述したような軽い揺らしジェスチャ）を検出するためのアルゴリズム及び／又はフォーカス解消ジェスチャを検出するためのアルゴリズムのいずれか又は全てを含む、処理アルゴリズムのどのような組み合わせでも、使用することができる。
【０２２６】
本発明による複数の実施形態は、アクティブな状態と非アクティブな状態のあるユーザインタフェースコンポーネントと、デバイスの動きを示すモーションセンサデータを生成するように動作可能なモーションセンサ（例えば、加速度計及び／又はジャイロセンサ）と、各々が少なくとも部分的にモーションセンサデータに基づいてデバイスのジェスチャ状態を決定するように動作可能な１つ以上のジェスチャ検出モジュールと、１つ以上のジェスチャ検出モジュールに接続されたウェイク制御ロジックと、を含むことができるデバイスに関する。ウェイク制御ロジックは、１つ以上のジェスチャ検出モジュールからジェスチャ状態情報を受信し、受信したジェスチャ状態情報に基づいて、ユーザインタフェースコンポーネントに通知を送信するように構成することができる。いくつかの実施形態では、ウェイク制御ロジックは、受信したジェスチャ状態情報に少なくとも部分的に基づいて、異なるジェスチャ検出モジュールを選択的にイネーブル又はディセーブルにするように構成することができる。
【０２２７】
いくつかの実施形態では、デバイスは、ユーザインタフェースコンポーネントに接続され、スリープ状態とウェイク状態とを有するアプリケーションプロセッサも含むことができる。ウェイク制御ロジックは、受信したジェスチャ状態情報に基づいて、アプリケーションプロセッサに通知を送信するように構成することができる。いくつかの実施形態では、ウェイク制御ロジックは、アプリケーションプロセッサを経由してユーザインタフェースコンポーネントに通知を送信するように構成することができる。いくつかの実施形態では、アプリケーションプロセッサは、ジェスチャ検出モジュールのうちの１つによるプレヒートイベントの検出を示す、ウェイク制御ロジックからの第１の通知に応じて、スリープ状態からウェイク状態に遷移するように構成することができる。アプリケーションプロセッサは、ジェスチャ検出モジュールのうちの１つによるレイズジェスチャの検出を示す、ウェイク制御ロジックからの第２の通知に応じて、スリープ状態からウェイク状態に遷移するようにさらに構成することができる。
【０２２８】
いくつかの実施形態では、ユーザインタフェースコンポーネントは、ジェスチャ検出モジュールのうちの１つによるレイズジェスチャの検出を示す、ウェイク制御ロジックから第２の通知に応じて、スリープ状態からウェイク状態に遷移するように構成することができる。
【０２２９】
ジェスチャ検出モジュールは、上述したジェスチャ検出モジュールのいずれか又は全てを含むことができる。例えば、ジェスチャ検出モジュールは、レイズジェスチャの開始に対応するプレヒートイベントを検出するように動作可能なプレヒート検出モジュールを含むことができる。プレヒート検出モジュールは、モーションセンサデータサンプルを受信して、このモーションセンサデータに基づいて、可能性のあるジェスチャ開始が生じているか否かを決定するための可能性のあるジェスチャ開始決定ユニットと、モーションセンサデータサンプルを受信して、各々のモーションセンサデータサンプルを評価し、これが可能性のあるレイズジェスチャの継続と整合性が取れるか整合性が取れないかを決定するためのサンプル評価ユニットと、第１のカウンターを、サンプル評価ユニットによって可能性のあるレイズジェスチャの継続と整合性が取れると決定されたサンプルをカウントするように維持し、第２のカウンターを、サンプル評価ユニットによって可能性のあるレイズジェスチャの継続と整合性が取れないと決定されたサンプルをカウントするように維持するためのカウンターユニットと、カウンターユニットから第１のカウンター値及び第２のカウンター値を受信して、プレヒートイベントが生じているか否かを決定するプレヒート決定ユニットと、を含むことができる。
【０２３０】
別の例として、ジェスチャ検出モジュールは、自然なレイズジェスチャを検出するように動作可能な自然検出モジュールを含むことができる。自然検出モジュールは、モーションセンサデータを受信して、このモーションセンサデータに基づいて開始姿勢を推測するための開始姿勢推測ユニットと、モーションセンサデータを受信し、受信したデータが可能性のあるレイズジェスチャの基準を満たすか否かを決定し、基準が満たされた場合に、可能性のあるレイズジェスチャの通知を生成するための可能性のあるレイズジェスチャ決定ユニットと、可能性のあるレイズジェスチャ決定ユニットから可能性のあるレイズジェスチャの通知を受信し、検出済レイズジェスチャのための条件が満たされるか否かを決定するために加速度計の追加のデータを監視し、条件が満たされた場合に検出済レイズジェスチャの通知を生成するための検出済レイズジェスチャ決定ユニットと、を含むことができる。いくつかの実施形態では、自然検出モジュールは、開始姿勢推測ユニットによって推測された開始姿勢に少なくとも部分的に基づいて可能性のあるレイズジェスチャを検出するための基準を決定し、この基準を可能性のあるレイズジェスチャ決定ユニットに提供するための基準決定ユニットも含むことができる。これに加えて又はこれに代えて、いくつかの実施形態では、自然検出モジュールは、検出済レイズジェスチャに関連付けられたモーションセンサデータに基づいてジェスチャ確認を行い、確認済レイズジェスチャ又は否認されたレイズジェスチャの通知を生成するための確認ユニットも含むことができる。いくつかの実施形態では、自然検出モジュールは、ヌル状態、可能性のあるレイズジェスチャ状態、検出済レイズジェスチャの状態を含む一組のジェスチャ状態からジェスチャ状態を特定するように構成することができる。可能性のあるレイズジェスチャ状態は、例えば、モーションセンサデータから決定される開始姿勢及び開始姿勢から終了姿勢までの変化についての一組の基準に少なくとも部分的に基づいて特定でき、一組の基準は、少なくとも部分的に開始姿勢に基づいて選択される。検出済レイズジェスチャ状態は、例えば、フォーカス姿勢での持続時間に少なくとも部分的に基づいて特定することができる。
【０２３１】
別の例として、ジェスチャ検出モジュールは、動作の少ない環境で自然なレイズジェスチャを検出するように動作可能なローダイナミック自然検出モジュールと、動作の多い環境で自然なレイズジェスチャを検出するように動作可能なハイダイナミック自然検出モジュールと、を含むことができる。
【０２３２】
別の例として、ジェスチャ検出モジュールは、意図的なレイズジェスチャを検出するように動作可能な意図検出モジュールを含むことができる。意図検出モジュールは、モーションセンサデータを受信して、このモーションセンサデータから、ユーザの腕が意図的なレイズジェスチャを実行する準備がなされているか否かを決定するための準備検出ユニットと、モーションセンサデータを追加で受信して、追加のモーションセンサデータに基づいて、目標数のインパルスピークの存在を検出するためのインパルスピーク検出ユニットと、さらなるモーションセンサデータを受信して、さらなるモーションセンサデータが、インパルスピーク検出ユニットによる目標数のインパルスピークの検出後にデバイス位置が安定したことを示すか否かを決定するための安定性検出ユニットと、を含むことができる。
【０２３３】
別の例として、ジェスチャ検出モジュールは、フォーカス状態から外れるデバイスの遷移を検出するように動作可能なフォーカス解消検出モジュールを含むことができる。フォーカス解消検出モジュールは、モーションセンサデータを受信して、このモーションセンサデータに基づいてデバイスの向きを決定するための向き決定ユニットと、向き決定ユニットによって決定された向きに少なくとも部分的に基づいて、向きの変化が生じているか否かを決定するための向き変化検出ユニットと、モーションセンサデータを受信して、このデータから、デバイスが着用されていると思われる腕の推測腕位置を決定するための腕位置推測ユニットと、向き変化検出ユニットから向き変化情報を受信し、腕位置推測ユニットから推測腕位置を受信し、受信した向き変化情報及び推測腕位置に少なくとも部分的に基づいて、フォーカス解消が生じているか否かを決定するためのフォーカス決定ユニットと、を含むことができる。
【０２３４】
いくつかの実施形態では、デバイスは、モーションセンサからのモーションセンサデータに少なくとも部分的に基づいて、ユーザの現在の活動を決定するように動作可能な活動分類部モジュールも含むことができる。
【０２３５】
いくつかの実施形態では、デバイスは、少なくとも１つのジェスチャ検出モジュールによって検出されたレイズジェスチャを確認するように動作可能なジェスチャ分類部モジュールも含むことができる。
【０２３６】
それゆえ、本発明は、特定の実施形態に関して記載されているが、本発明は、以下の特許請求の範囲内での、全ての修正形態及び均等物を包含することを意図するものであることが理解されるであろう。
【図１Ａ】
0006434144.tif 000002
【図１Ｂ】
0006434144.tif 000003
【図１Ｃ】
0006434144.tif 000004
【図１Ｄ】
0006434144.tif 000005
【図２Ａ】
0006434144.tif 000006
【図２Ｂ】
0006434144.tif 000007
【図３】
0006434144.tif 000008
【図４】
0006434144.tif 000009
【図５】
0006434144.tif 000010
【図６】
0006434144.tif 000011
【図７】
0006434144.tif 000012
【図８】
0006434144.tif 000013
【図９】
0006434144.tif 000014
【図１０Ａ】
0006434144.tif 000015
【図１０Ｂ】
0006434144.tif 000016
【図１１】
0006434144.tif 000017
【図１２】
0006434144.tif 000018
【図１３】
0006434144.tif 000019
【図１４】
0006434144.tif 000020
【図１５】
0006434144.tif 000021
【図１６】
0006434144.tif 000022
【図１７】
0006434144.tif 000023
【図１８】
0006434144.tif 000024