(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0004】
本開示の様々な実施形態に従うシステムおよび方法は、電子環境とやりとりすることに対する従来のアプローチにおいて経験される前述および他の欠点のうちの1つ以上を克服し得る。特に、デバイスが、低電力、スリープ、または他のそのようなモードであって、デバイスの少なくともいくつかの構成要素または機能が容易に利用可能ではない可能性があるモードにあるときでさえも、様々なアプローチが、ジェスチャー、行動、および/または動きをベースとした入力が電子デバイスに提供されることを可能にする。少なくともいくつかの実施形態において、デバイスは、アプリケーションプロセッサ、1次センサ処理コア、センサ処理構成要素、あるいは、デバイス上の1つ以上のセンサを管理して、1つ以上のセンサからのデータを分析して、ユーザによって行われたか提供された1つ以上のジェスチャーまたは入力を検出することを試みることができる他のそのような処理構成要素を含む。センサ処理構成要素などの構成要素が、スリープモード、または他のそのような低電力動作状態に入る場合には、少なくともいくつかの実施形態において1次センサ処理コードを実行することができるセンサ処理構成要素は、センサと関連付けられたマイクロコントローラ(またはマイクロプロセッサ等)に連絡を取ることができ、そのマイクロコントローラにセンサの管理に対する責任を取らせる。いくつかの実施形態において、1次センサ処理コードが、類似の機能を行うためのアプリケーションプロセッサまたは他のそのような構成要素によって実行され得る。マイクロコントローラは、ユーザによって行われる起こり得る起動行動を決定するために少なくとも基本分析を行うことができ、例えば、あるレベルの信頼性または他のそのような測定基準が、少なくとも最小限の閾値か他のそのような基準を満たすときに、マイクロコントローラは、センサ処理構成要素をアクティブモードに入らせて、センサの管理を再開させることができる。イベントが起動行動に対応することが決定される場合、センサ処理構成要素は、センサの管理を再開することができる。イベントが起動行動に対応しないことが決定される場合、センサの管理がマイクロコントローラにとどまり得、センサ処理構成要素はスリープ状態に戻り得る。そのようなアプローチは、そのようなジェスチャーを決定するために使用される典型的なデバイスプロセッサもまた低電力状態にあり、それ故、起動イベントを検出するように利用可能ではない場合でさえも、デバイスが低電力モードにある間に起動行動を検出することを可能にする。
【0005】
様々な他の適用、処理および使用が、様々な実施形態に関して以下に提示される。
【0006】
図1は、ユーザ102がジェスチャーおよび/または動きをベースとした入力を計算デバイス104にもたらすことを望む状況例100を例示する。ポータブル計算デバイス(例えば、スマートホン、電子書籍リーダー、またはタブレットコンピュータ)が図示されるが、入力を決定して処理することができる様々な他の種類の電子デバイスが、本明細書において記述される様々な実施形態に従って使用され得ることが理解されるべきである。これらのデバイスは、数ある中でも、例えば、ノートブックコンピュータ、パーソナルデータアシスタント、携帯電話、ビデオゲーミングコンソールまたはコントローラ、およびポータブルメディアプレイヤを含むことができる。この例において、計算デバイス104は、例えば自画像取り込みもしくはビデオチャットなどの目的のために、例えば画像および/またはビデオ取り込みなどの機能を行うように動作可能な少なくとも1つのカメラ106を有する。デバイスはまた、ジェスチャー検出などのような目的のために、低解像度画像を取り込むように動作可能な少なくとも2つのジェスチャーセンサ108、110を含む。デバイス上のカメラ、ジェスチャーセンサ、および任意の他のそのような画像取り込要素は、例えば、カメラ、電荷結合デバイス(CCD)、動き検出センサ、または赤外線センサであり得、あるいは、別の適切な画像取り込み技術を利用することができる。更に、他の数の構成要素、例えば1つまたは4つのジェスチャーセンサなども同様に、様々な実施形態の範囲内において使用され得る。
【0007】
この例において、ユーザ102は、例えば、デバイスを低電力、スリープ、もしくは他のそのような状態からアクティブ、通常、もしくは他のそのような状態に入らせることができる「起動のために手を振る」または類似のジェスチャーなどを行うように、ユーザの手110を使用して選択された動きあるいはジェスチャーを行っている。動きは、特定の入力もしくは行動に対応することがデバイスによって認識された特定の動きあるいは1組の動きまたはジェスチャーのうちの1つであり得る。動きがデバイス上の1対のジェスチャーセンサ108、110の可視領域または角度範囲112内で行われる場合、デバイスが、少なくとも1つの画像分析もしくは特徴認識アルゴリズムを使用して画像を分析して、後続のフレーム間のユーザの特徴の運動を決定することができるように、センサは、動きを含む1つ以上の画像を取り込むことができる。これは、動きを決定するために既知であるか使用される任意の処理、例えば1つ以上の最初の画像における「固有の」特徴の位置を特定して、次いで、後続の画像におけるそれらの特徴の位置を追跡して、それによって、それらの特徴の運動が、1組の動きまたはジェスチャーに対応する1組の運動に対して比較され得ることなどを使用して行われ得る。動きまたはジェスチャーをベースとした入力を決定するための他のアプローチは、例えば、2008年12月10日に出願され「Movement Recognition and Input Mechanism」と題された同時係属の米国特許出願第12/332,049号において見出され得、その米国出願は、本明細書によって参照によって本明細書に組み込まれる。既知の動きもしくはジェスチャーに一致する動きまたはジェスチャーが検出される場合、対応する入力を計算デバイス上で実行するソフトウェアに提供するという決定がなされ得る。これは、例えば、デバイス上で実行するユーザインターフェースアプリケーションに入力を送信することを含むことができ、それによって、ユーザは、1つ以上のジェスチャーカメラまたは他のそのような要素の視野内で1つ以上のジェスチャーを行うことによって、入力をユーザインターフェースアプリケーションにもたらすことができる。
【0008】
他の種類の起動行動も同様に、様々な実施形態の範囲内において検出され得る。これらは、例えば、デバイスの少なくとも1つのマイクロホンまたは他の音響センサによって検出されるユーザによって発行される音響コマンドを含むことができる。別の起動行動は、少なくとも1つの動きもしくは配向センサを使用して検出され得るような、デバイスの特定の運動または再配向を含み得る。更に別の起動行動は、圧力センサ、容量性タッチセンサ、超音波センサ等を使用して検出され得るような、ユーザがデバイスにタッチすること、またはほぼタッチすることを含み得る。
【0009】
図2は、様々な実施形態に従って使用され得る計算デバイス例200を例示する。この例において、デバイスは、デバイスの、表示要素202と同じ側面上に従来のデジタルカメラ204を有しており、ユーザが少なくとも部分的に表示要素の前にいる典型的な動作の間に、デバイスがデバイスのユーザについての画像情報を取り込むことを可能にする。加えて、相対的に同じ位置におけるときにユーザからのジェスチャー入力を決定するために使用され得るデバイスの同じ側面上に位置付けられた2つのジェスチャーセンサ210、212がある。例えば、デバイスに関して任意の所望の方向もしくは位置からのジェスチャーまたは画像入力を可能にし得るような、追加的なカメラ、ジェスチャーセンサ、あるいは他のそのような要素が、様々な実施形態の範囲内においてデバイスの同じもしくは他の側面または位置上にも同様にあり得ることが理解されるべきである。カメラおよび少なくとも1つのジェスチャーセンサは共に、様々な状況において、例えば、デバイスが、(複数の)ジェスチャーセンサを使用して長期間にわたって比較的低い電力におけるジェスチャー認識を可能にして、従来の、より高い解像度のカメラを使用して特定の時間において顔面認識または他のプロセッサおよび電力集約的処理を行うことを望む場合などにおいて、有利に使用され得る。
【0010】
このデバイス例はまた、本明細書において後で記述される際に使用され得る追加的な要素も例示しており、取り込まれることになる画像の一般的な方向における光の量を決定するための光センサ206と、例えば光センサによって決定された不十分な周辺光があるときに、方向の特定の範囲に照明を提供するために、本明細書において後で記述されることになるような白色発光ダイオード(LED)または赤外線(IR)エミッタなどのような、照明要素208と、を含む。デバイスはまた、音声または音響入力がデバイスに提供されることを可能にするマイクロホン214も含む。様々な他の要素および要素の組み合わせも同様に、本明細書に含まれる教示や提案を考慮すると明白であるように様々な実施形態の範囲内において使用され得る。
【0011】
しかしながら、上記のように、1つ以上のカメラによって取り込まれた画像データなどのようなデータを分析することは、特にモバイルデバイスの場合、非常にプロセッサ、リソース、および電力集約的であり得、少なくともいくつかのデバイスについては、ジェスチャー検出のために従来の構成要素を絶えず動作させることが現実的ではない。デバイスが低電力モードに入るときに、最高のレートの電力消費を伴う構成要素が、低電力モード、スリープ状態、または、構成要素がわずかな電力を取るか電力を取らない他のそのような構成に入るためにことが望ましくあり得る。プロセッサなどのような構成要素を低電力状態に置くことは、かなりの量の電力を節約し得るが、そのような使用は、特定のタスクを行うデバイスの機能を妨げ得る。例えば、従来のデバイスにおいて、アプリケーションプロセッサ(すなわち、データベースサーバのような機能を制御する代わりにデータを処理するプロセッサ)などのような構成要素は、対応する入力信号がデバイス上で実行するアプリケーションに提供されることになることを決定するために、動きが行われているときを決定するために、センサデータを監視して分析するために使用され得る。しかしながら、プロセッサが通常またはアクティブ動作状態ではない場合、プロセッサは、センサデータを評価して、「起動」ジェスチャーなどのようなジェスチャーが行われているかどうかを決定することができない可能性がある。
【0012】
いくつかの実施形態において、センサによる動きの検出は、動きが起動ジェスチャーに対応するかどうかを決定するために、アプリケーションプロセッサまたは別のそのような構成要素を通常動作モードに入らせ得、そうではない場合、構成要素は低電力モードに戻ることができる。そのようなアプローチは、特にデバイスの運動がセンサに動きを検出させ得るポータブルデバイスの場合に、プロセッサが、絶えず通常動作モードに置かれることを結果としてもたらし得、それは、プロセッサが通常動作状態にある時間についてのみならず、プロセッサが動作状態に変化しており、次いで、低電力状態に戻る時間についてもまた同様に、かなりの量の電力およびリソースを浪費し得る。追加的なセンサデータの使用は、これらのおよび他の誤判定の数を潜在的に限定し得る一方、センサからのデータは、分析されることを依然として必要としており、それは、プロセッサが動作状態にとどまることを要求することになる。
【0013】
図3は、様々な実施形態に従って計算デバイスを用いて使用され得る構成要素の構成例300を例示する。計算デバイスにおける様々な種類の機能を提供するために既知であるような、様々な構成において、同様に使用される様々な他の構成要素があり得ることが理解されるべきである。この例において、計算デバイスは、特定の種類の機能のために利用され得る様々なプロセッサもしくはプロセッサコアを含有する、チップセットまたはマルチプロセッサコアなどのようなプロセッササブシステム304を含有する。例えば、例示されるようなプロセッササブシステムは、計算デバイスにおける従来のアプリケーションプロセッサであり得るような、データおよび命令を処理するための少なくとも1つのアプリケーションプロセッサ306を含有する。この例におけるサブシステムはまた、例えば、1次センサ処理コードを実行するように構成された専用のセンサプロセッサ308、コプロセッサ、プロセッサコア、またはセンサ処理構成要素を含有して、それは、ジェスチャー認識などのような目的のためにデバイス302上で様々なセンサ314、316、318から受信したデータを分析するために使用され得る。
【0014】
専用のセンサ処理構成要素の使用は、ジェスチャー認識の速度の改善や他のタスクに集中するアプリケーションプロセッサの機能を含む、様々な利点を有し得る。潜在的な弱点は、センサプロセッサ308が、かなりの量の電力を依然として消費し得る比較的高い負荷のプロセッサコアであり得ることである。更に、プロセッササブシステムが低電力モードに入るときに、センサプロセッサ308は、アプリケーションプロセッサ306と共にスリープモードに入ることになり、それ故、プロセッササブシステムが低電力モードにある間に行われ得る「起動するために手を振る」ジェスチャーなどのようなイベントまたは行動をサポートすることができない。
【0015】
図3のデバイスは、計算デバイスが、デバイスのプロセッササブシステム304が低電力モードにある期間にジェスチャー検出を提供するために、別個のマイクロコントローラ312を利用することを可能にする。少なくともいくつかの実施形態において、マイクロコントローラ312は、適切なラインまたはセンサバス320、例えばI
2Cバスなどを使用してプロセッササブシステム304に接続され得、マイクロコントローラ310と、例えばセンサプロセッサ308との間の通信を可能にする。マイクロコントローラは、デバイスおよび/またはプロセッササブシステムが低電力モードにあるときでさえも、通常モードにおいて動作するように構成され得、マイクロコントローラは、プロセッササブシステムのプロセッサまたはプロセッサコアに関して比較的少ない電力を消費し得る。マイクロコントローラ312はセンサ314、316、318と共に、センサプロセッサ308によって制御され得るマイクロセンサハブとして呼ばれ得る。
【0016】
例示されるように、少なくとも1つのセンサバス320を使用してマイクロコントローラ312およびセンサプロセッサ308に接続された、同じまたは異なる種類の複数のセンサ314、316、318があり得る。デバイスが起動状態にあるときに、センサプロセッサ308は、センサがデータを取り込むことを試みるべきであるときなどに、センサを制御すること、例えばセンサの動作状態を決定することなどができる。センサプロセッサ308は、次いで、センサの1つ以上によって取り込まれたデータを受信して分析することができる。デバイスがスリープモードに入るときに、例えば、センサプロセッサ308は、マイクロコントローラがセンサの管理を現在担当していることを示すためにマイクロコントローラ312に連絡を取ることができる。マイクロコントローラは、次いで、起動イベントまたは他のそのような出来事を検出することを試みるために、センサを管理および/または制御して、センサデータを分析することができる。本明細書における他の場所により詳しく記述されるように、起動イベントは、ユーザによって行われた起動するために手を振る動きを含むことができるのみならず、また、ユーザによって発行された起動音声コマンド、フリックもしくは傾けることなどの計算デバイスの特定の動き、またはデバイスの少なくとも1つのセンサによって検出され得る別のそのような出来事に対応することもできる。
【0017】
プロセッササブシステムがアクティブ状態にある間、センサプロセッサは、数あるそのような態様の中でも特に、I
2Cバス320の上でセンサやマイクロコントローラ312と通信することができ、センサデータを取得して、センサ動作を管理する。この状態において、マイクロコントローラ312は、I
2Cバス上で別のデバイスのように働く。しかしながら、センサプロセッサ308がスリープ状態にあるときに、制御はマイクロコントローラ312に渡り、次いで、マイクロコントローラがセンサのためのマスターとして機能して、(少なくともこの例では)同じI
2Cバス320の上でセンサと通信する。少なくともいくつかの実施形態において、アプリケーションプロセッサ306、電力管理構成要素310、およびセンサプロセッサ308を含むプロセッササブシステム304内のコアの全ては、プロセッササブシステムがスリープ状態にあるときにスリープ状態にあることになるので、センサ管理をマイクロコントローラに渡すことが必要であり得る。この状態におけるアプリケーションプロセッサまたはセンサプロセッサは、プロセッサがセンサデータを取得していないので、起動ジェスチャーを決定することができない。
【0018】
この例において、1対の汎用の入力/出力線(GPIO)322は、センサプロセッサ308が、マイクロコントローラ312と直接的に通信することを可能にする。チップセット304上の汎用ピンとしてそれぞれ機能するGPIOは、ソフトウェアを通して制御され得、それらのGPIOが、センサ制御を渡すための要求/承認ラインとして機能することを可能にする。いくつかの実施形態において、本明細書において後で記述されるように、GPIO線の一方は、センサプロセッサがセンサを制御しているときに使用され得、もう一方は、マイクロコントローラがセンサを管理しているときに使用され得る。I
2Cバス320ひいてはセンサ314、316、318の制御を引き継ぐことを相手に尋ねる要求が、センサプロセッサ308とマイクロコントローラとの間で送信され得る。ユーザまたはアプリケーションは、インターフェースを利用して、デバイス上の機能をアクティブにするか非アクティブにすることができ、それは、センサプロセッサ308に対する一連のメッセージとして受信され得る。インターフェースは、マイクロコントローラ312との通信を可能にして、マイクロコントローラレベルにおける(例えば、起動イベントのための)関連サービスを決定することができる。そのようなアプローチは、センサプロセッサが、アプリケーションプロセッサ306または他のそのような構成要素の代わりにマイクロコントローラ構成のための仲介役として機能することを可能にする。
【0019】
センサプロセッサ308がスリープモードにあるときに、マイクロコントローラは、デバイスセンサ314、316、318の1つ以上からセンサデータを取得し分析して、起動ジェスチャーの決定を試みることができる。記述されるように、これは、カメラまたは超音波センサを使用して検出された動き、マイクロホンを使用して検出された音響、動きセンサを使用するデバイス配向変化等を含むことができる。マイクロコントローラ312がセンサデータを分析して、起動ジェスチャーであるように見えるものを認識すると、例えば、マイクロコントローラは、プロセッササブシステム304の電力管理構成要素310にインタラプトを送信して、プロセッササブシステムおよびプロセッサまたはプロセッサコアを起動することができる。いくつかの実施形態において、マイクロコントローラは、全ジェスチャーが検出されるときにインタラプトだけを送信することになる一方、他の実施形態において、マイクロコントローラは、特定の最小限の量の確実性をもってジェスチャーであるように見えるものを検出する必要があり得、例えば、その時点においてマイクロコントローラがプロセッササブシステムを起動して、センサプロセッサ308による分析に利用可能なセンサデータを作成することができ、例えば、それは、より強固なおよび/または正確な分析を行うことができる。いくつかの実施形態におけるセンサプロセッサはまた、分析において支援するために他のセンサからデータを取得し得る。例えば、動きがカメラを使用して検出された場合、センサプロセッサは、デバイスの動きセンサの1つからデータを取得して、検出された動きがデバイスの動きに対応するかどうかを決定し得、その時点において、プロセッサは、動きが、起動するために手を振るまたは類似のジェスチャーに対応しなかったことを決定し得る。同様に、センサプロセッサが、デバイスがその時間の間に動かなかった、少し動いた、または異なる方向に動いたことを決定することができる場合、センサプロセッサは、検出された動きがユーザによって行われた実際の起動ジェスチャーであったことをより確実性をもって決定することができ得る。様々な他の種類の分析や結論は、様々な実施形態の範囲内においてこれらのおよび他の種類のデータを用いて到達され得る。
【0020】
それ故、少なくともいくつかの実施形態において、マイクロコントローラは、起動行動を検出することを試みるために1つ以上のセンサからデータの第1の分析を行うことができ、興味のある項目または行動が発生すると、マイクロコントローラは、センサプロセッサ308を起動状態に入らせ得、それによって、センサプロセッサが、追加的なセンサからのデータ、ならびに他の情報、例えばモデル、アルゴリズム等を分析することができ、興味のある項目または行動が実際に起動行動であったかどうかを決定して、次いで、興味のある項目または行動が起動行動に対応することが決定されるときにアプリケーションプロセッサ306および/あるいは他の構成要素に通知することができる。
【0021】
いくつかの実施形態において、マイクロコントローラ312は、それらのプロセッサがアクティブ状態にあるときでさえも、アプリケーションプロセッサおよび/またはセンサプロセッサから分析のうちのいくつかをオフロードし得る。現在のデバイス負荷、構成、または他のそのような情報に基づいて、アプリケーションプロセッサまたはセンサプロセッサは、マイクロコントローラが、センサを監視し続けて、次いで、可能性のあるジェスチャーが検出されるときにインタラプトまたは他の通信を送信することを可能にするよう決断し得る。ある時点で、プロセッサまたはプロセッサコアのうちの1つは、センサ管理を引き継ぐことを決断し得、その時間において、センサプロセッサ308などのようなプロセッサが、マイクロコントローラからセンサプロセッサへのコントローラのハンドオーバーをもたらすために、適切な通信チャネル、信号方式、ハンドシェイク、要求/承認アプローチ、または他のそのような機構を通してマイクロプロセッサと通信することができる。類似の通信が、コントローラをセンサプロセッサからマイクロコントローラに移すために使用され得る。いくつかの実施形態において、センサプロセッサは、マイクロコントローラが、例えば特定の動きのジェスチャーについて取り込まれた画像データを分析するなどのために、一定の種類のジェスチャーまたはイベントについて監視するべきである一方、センサプロセッサもしくは別の構成要素が、他の種類の行動またはイベントについての他のセンサデータを監視することをマイクロコントローラに示し得る。複数のマイクロコントローラが使用される場合、センサプロセッサまたはアプリケーションプロセッサは、どのマイクロコントローラまたは他のそのような構成要素が、様々な時間において様々な目的のために使用されるかを決定することができる。
【0022】
いくつかの実施形態において、マイクロコントローラは、ジェスチャーまたはイベントを検出し得、直接的な割り込み線324上で電力管理構成要素310に連絡を取ることによってセンサプロセッサを起動することを決定し得る。電力管理構成要素は、センサプロセッサ308を起動することができ、例えば、センサプロセッサに、イベントについての情報を決定することと、その情報に基づいて行動するか否かを決定することとをマイクロコントローラ312に問い合わさせ得る。少なくともいくつかの実施形態において、データは、タイムスタンプと共にセンサバッファ内に記憶され得、特定のイベントとのデータの関連付けを可能にする。少なくともいくつかの実施形態において、マイクロコントローラは、センサプロセッサがアクティブ状態にあるときでさえも、センサプロセッサが、センサプロセッサが制御を行っていることをマイクロコントローラに示すような時間、あるいは別のそのような通信を同じまたは異なる通信パス上で提供するような時間まで、センサおよびセンサバスの制御を維持することができる。類似の機構が、アプリケーションプロセッサまたはセンサプロセッサが、別の機構か構成要素によってアクティブ状態に起動されるときに使用され得、センサのうちの少なくとも1つが、デバイス上のセンサ管理の少なくとも一部の制御を行うことを望む。
【0023】
デバイスプロセッサよりも少ない電力を消費するマイクロコントローラを使用することの追加的な利益は、マイクロコントローラが、デバイスプロセッサのためのフィルタとして機能し得ることであり、かなりの数の検出されたイベントまたは行動がデバイスプロセッサを起動すること、あるいは、デバイスプロセッサに1つ以上の行動を行わせることを、それらの検出されたイベントがジェスチャーまたは他のそのような入力に対応しないことをまず決定することによって防ぐ。マイクロコントローラは、検出されたイベントの約90%以上が本物のジェスチャーに対応しないことを決定し得、それ故、これらのイベントについてデバイスプロセッサに連絡を取らないことによってかなりの量の電力消費を防ぐことができる。デバイスプロセッサの上に渡された多数の誤判定についての情報が依然としてあり得るが、これらの誤判定のために消費される電力が、マイクロコントローラが誤判定のためのデータをフィルタにかけるために使用されていないときよりもかなり少なくすることができるように、その数は、かなり減らされ得る。
【0024】
異なる実施形態において、マイクロコントローラは、異なる信頼性または確実性の閾値を有し得、それは、少なくともいくつかの実施形態において、ユーザ、アプリケーション、または他のそのような実体によって構成可能であり得る。いくつかの実施形態において、確実性の閾値は、利用可能なセンサデータの種類、例えば、加速度計または動きのデータが画像データを用いてマイクロコントローラに利用可能であるかどうか等に少なくとも一部依存し得る。閾値の変更は、誤判定の数を減らすことができるが、多数の本物の起動ジェスチャーが、例えば部屋の照明またはデバイスの動きなどの要因に起因して誤判定であるとして無視されることになるように、閾値が設定されるべきではない。いくつかの場合において、デバイスは、2つの閾値を含み得、ここで、第1の閾値を下回る信頼性を伴うイベントは誤判定として無視され、第2の閾値を超える信頼性を伴うイベントは、本物のジェスチャーとしてみなされ、これらの閾値間の信頼性を伴うイベントは、更なる分析を要求する可能性のあるジェスチャーとしてみなされて、それ自体は、アプリケーションプロセッサまたはセンサプロセッサ等によって追加的なデータを用いて分析され得る。
【0025】
いくつかの実施形態において、一定の種類のデータは、一定の状況において各構成要素によって分析されたデータの少なくとも一部を決定することができる一定の構成要素によってより良く取り扱われる。例えば、フル解像度のカメラによって取り込まれた画像データは、要求された帯域幅および接続性がカメラとデバイスプロセッサとの間に既に存在するものの、マイクロコントローラに対する接続性が迅速に与えられ得るので、ジェスチャーセンサによって有利に取り扱われ得る。より低い解像度のジェスチャーセンサの場合、例えば、マイクロコントローラは、少なくともいくつかの状況において検出および分析を管理することができ得る。マイクロコントローラはまた、センサから照明、動き、および環境データを取得することができ、マイクロコントローラによって検出されている可能性のあるジェスチャーに応答してアプリケーションまたはセンサプロセッサによる後続の読み出しのために、例えばI
2Cレジスタに、そのデータの少なくとも一部を置くことができる。
【0026】
少なくともいくつかの実施形態において、機能を追加するか更新するように構成可能および/または拡張可能であり得るアプリケーションプロセッサとマイクロコントローラとの間のインターフェースがあり得る。例えば、プロセッサが、アクティブ状態に置かれる時間であって、例えば照明または動きデータ等などを含み得るように、現在の環境についてのデータを取得することを望む時間について、メッセージングが追加され得る。取得されるデータは、処理され得るか生であり得、少なくともいくつかの実施形態において、最後までアプリケーションプロセッサへのバックアップを要求され得る。この通信チャネルはまた、様々な実施形態の範囲内において、他の情報も同様に伝達するためのルートとして使用され得る。
【0027】
一実施形態において、マイクロコントローラ312は、センサ制御に関してマスターまたはスレーブとして機能すること、ジェスチャー検出を(すなわち、全てまたは一部)行うこと、センサデータの調整や取得を行うこと、様々なデバッギングおよび/またはロギング機能を行うこと、を含み得るように、様々なタスクを行うための論理部を含む。マイクロコントローラはまた、センサデータバッファ、I
2Cレジスタマッピング構成要素、起動および他のジェスチャーの認識における使用のためのジェスチャーライブラリ等を含み得るように、様々な構成要素を含有することができる。マイクロコントローラは、他の構成要素も同様に、数あるそのような選択肢の中でも特に、例えば新たなアプリケーション画像および構成データをアップロードするブートローダー、ならびに様々な通信チャネルのためのジェスチャーアルゴリズムマネージャおよびドライバなど、を含むことができる。いくつかの実施形態におけるマイクロコントローラはまた、様々なセンサから受信したデータを平滑化するためのまたはそうではない場合には予め処理するための論理部を含むことができる。
【0028】
いくつかの実施形態において、様々な規則が、数あるそのような態様の中でも特に、マスター制御を管理するためにマイクロプロセッサおよび/またはセンサプロセッサによって使用され得る。例えば、マイクロコントローラユニット(MCU)は、パラメータの値、例えばSPC_Masterなどを監視することができ、それは、センサ処理構成要素(「SPC」)の状態のことを言う。SPC_Masterが高い場合には、MCU_Masterは、すぐに低くなる。これは、それが優先順位を有することを確実にするために駆動されるインタラプトであり得る。この例におけるセンサ処理構成要素(例えば、マクロセンサプロセッサ)は、MCU_Masterが低く、SPC_Masterが高いときにだけマスターである。記述されるように、SPC_Masterは、GPIOの1つに対応し得、MCU_Masterが他のGPIOに対応する。
【0029】
様々なプロセッサによって管理されるセンサは、様々な種類の情報を検出するためのおよび/または測定するための様々な種類のセンサを含むことができる。これらのセンサは、例えば、1つ以上のカメラ、比較的低い解像度のジェスチャーセンサ、加速度計、電子ジャイロスコープ、慣性センサ、電子コンパス、マイクロホン、超音波センサ、磁力計、周辺光または赤外光センサ、近接センサ、温度センサ等を含むことができる。プロセッサはまた、デバイスの様々な他の構成要素、例えばLEDまたは他の発光素子、カメラフラッシュ機構、および同様のものなどを制御することができる。
【0030】
図4は、様々な実施形態に従って使用され得る異なる動作モードにおいて計算デバイスに対するジェスチャー入力を可能にするための処理例400を例示する。本明細書において記述される任意の処理について、別段述べられない限り、様々な実施形態の範囲内において、類似もしくは代替の順序で、または並行して行われる追加的な、より少ない、あるいは代替のステップがあり得ることが理解されるべきである。この例において、デバイス、またはデバイスの少なくとも処理構成要素がスリープモードに入るべきであることを示す要求が受信される402。記述されるように、これは、ユーザまたはアプリケーションからの入力に応答し得るか、あるいはイベント、例えば時間の経過または残りのバッテリ寿命のある量に達することなどに応答し得る。記述されるように、いくつかの実施形態における処理構成要素は、アプリケーションプロセッサおよびセンサ処理構成要素を含むことができ、スリープ状態は、これらの処理構成要素のそれぞれをスリープ状態または他のそのような低電力モードに設定することを含むことができる。
【0031】
要求の受信に応答して、この例におけるセンサ処理構成要素は、センサと関連付けられたマイクロコントローラ、またはマイクロセンサハブの一部に、例えば、マイクロコントローラが、センサ管理の制御を行い、センサ管理の目的のためにマスターとして機能するべきであることを通知する404ならびに/あるいはアサートすることができる。マイクロコントローラは、次いで、マスターとして動作することに切り換えることができ406、センサを管理して、センサ処理構成要素は、スリープ状態に入らせられ得る408。センサは、次いで、マイクロコントローラによって監視され得る410。
【0032】
マイクロコントローラがセンサを監視している間、センサデータが、マイクロコントローラに受信され得412、センサによって検出されている起動ジェスチャーの可能性が、可能性のあるジェスチャーを検出するセンサの少なくともいくつかからのデータを分析することによって少なくとも一部決定され得る414。可能性が、最小限の信頼性の閾値416、または他のそのような測定基準もしくは基準を少なくとも満たさないことが決定される場合、監視が続き得る。一方、可能性が最小限の信頼性の閾値を少なくとも満たすことが決定される場合、センサ処理構成要素と関連付けられた電力管理構成要素は、通知され得418、それは、センサ処理構成要素をアクティブ状態に入らせ得る420。センサ処理構成要素は、センサ処理構成要素がセンサの管理を再開することをマイクロコントローラに通知し得422、センサ処理構成要素が、センサの監視を再開することができる424。いくつかの実施形態において、センサ処理構成要素がマイクロコントローラに通知する代わりに、マイクロコントローラは、バスの制御を解除して、次いで、プロセッサを起動することができる。センサ処理構成要素は、マイクロコントローラの状態を決定することができ、センサ処理構成要素がセンサ管理を引き継ぐべきであることを決定することができる。様々な他のアプローチも同様に、様々な実施形態の範囲内において使用され得る。
【0033】
述べたように、いくつかの実施形態において、マイクロコントローラは、ジェスチャーの可能性について最初の推定だけを行い得るか、あるいはジェスチャーは、最小限の信頼性の閾値だけを満たしている可能性がある。これらのおよび他のそのような場合において、センサ処理構成要素は、少なくとも1つの適切なセンサキャッシュからのセンサデータ、ならびに他の関連データを取得して、ジェスチャーが起動ジェスチャーに対応する可能性があるかどうかを決定することができる。そうではない場合、センサ処理構成要素は、マイクロコントローラを用いる制御から離れ得、スリープモードに再び入り得る。そうである場合、センサ処理構成要素は、上記のようにそれがアクティブ状態に入っていることをマイクロコントローラに通知することができて、少なくとも最小限の期間にジェスチャー決定の少なくとも一部に対する制御を行うことができる。
【0034】
記述されるように、少なくともいくつかの実施形態において、起動ジェスチャーは、ユーザによって行われる「手を振る」動きを含むことができる。多くの場合において、そのようなジェスチャーを認識する機能は、高解像度の画像取り込みを要求しないことが多い。例えば、
図5(a)に例示された画像500を考える。手の高品質画像の分析は、正確なジェスチャーの決定をもたらすことができる一方、そのような画像の分析は、本明細書における他の場所に記述されるように、かなりプロセッサおよび電力集約的であり得る。しかしながら、
図5(b)の画像520に見られ得るように、非常に低い解像度の画像でさえも、妥当なレベルの信頼性を伴ってジェスチャー入力を決定するために使用され得る。
図5(b)において、デバイスは、手が男性の手または女性の手であるかどうかを認識することができない可能性があり得るが、
図5(c)の画像540に例示されるように、手を振るまたは他のそのような動きに起因して位置の変化が、十分な精密さをもって迅速に識別され得るように、画像において手の基本形状および位置を識別することができる。この低い解像度においてでさえも、デバイスは、ユーザが、個人の指を動かしていたかまたは別のそのような行動を行っていたかどうかを伝えることができるであろう可能性が高い。更に、特定のパスまたはパターンに続くことが検出される任意のレベルの動きが、様々な実施形態において可能性のあるジェスチャーとして識別され得る。一実施形態において、多くのレベルを用いて、約1から3までの画素を有する光センサが、LED制御と共に使用され得る。手が十分なサイズおよび/または幅のものであり、照明が十分であり、手が特定の速度範囲内で動く限り、手の動きは、適切なアルゴリズムを使用して検出され得る。検出は、測定信号におけるスパイクまたは他のそのような兆候を含み得る。
【0035】
いくつかの実施形態において、複数のジェスチャーセンサが、ジェスチャーセンサの視野間の対象の追跡を可能にするために利用され得、同期され得る。一実施形態において、同期コマンドがI
2Cバス上で送信され得、あるいは専用のラインが、同期を確実にするために、2つのセンサをつなげるために使用され得る。
【0036】
いくつかの実施形態において、ユーザは、例えば、起動コマンドを話すこと、特定の調律をハミングするか口笛を吹くこと、特定の音の拍子パターンをたたくこと、または別のそのような行動を行うことなどによって、音響起動イベントを提供することができ得る。デバイスのマイクロホンまたは他の音響センサは、音響を検出することができ、その音響は、次いで、起動イベントのための1つ以上の音響パターンと音響入力を照合することを試みるために、マイクロコントローラまたは別のそのような処理要素によって分析され得る。いくつかの場合において、音響の照合は、音響周波数における固有の特徴を利用し得るような、従来の音響照合アルゴリズムを使用することができる。他の実施形態において、デバイスは、音声および/または発話認識を利用し得、話された(複数の)言葉、ならびに可能性として、言葉を話している人間の識別を決定することを試みる。様々な他の音響コマンドまたは行動も同様に、利用され得る。
【0037】
いくつかの実施形態において、ユーザは、起動イベントとして検出され得るデバイスの動きを行うことができる。例えば、ユーザは、加速度計、電子ジャイロスコープ、電子コンパス、慣性センサ、または他の動きセンサによって検出され得るように、デバイスを迅速に裏返すか傾けることができて、例えば速度、範囲および/または方向など様相が、起動イベントを検出することを試みるために分析され得る。他の実施形態において、特定のパターン、例えばデバイスがテーブルから持ち上げられることなどが、分析され得、起動イベントを検出するためにパスまたはパターンのライブラリと照合され得る。ユーザは、代替的に、ダブルタップまたは他のそのような行動を行い得、それは、計算デバイスの加速度計、慣性センサ、または他のそのような構成要素によって検出され得る。
【0038】
いくつかの実施形態において、特定のタップ、デバイス上の(またはデバイスの近くの)動き、数々のタッチすること、あるいは特定の位置においてタッチすることが、起動イベントとして検出され得る。この場合におけるセンサは、例えば、容量性タッチセンサ、圧力センサ、超音波センサ、および同様のものなどのセンサを含むことができる。少なくとも1つのデバイスセンサによって検出され得る様々な他の種類の入力も同様に、様々な実施形態の範囲内において使用され得る。
【0039】
本明細書において説明した様々な機能を提供するために、
図6は、
図1に関して説明したデバイス104などのような計算デバイス600の基本構成要素の組例を例示する。この例において、デバイスは、少なくとも1つのメモリデバイスまたは要素604内に記憶され得る命令を実行するための少なくとも1つの中央プロセッサ602を含む。当業者に明らかであろうように、デバイスは、多くの種類のメモリ、データ記憶装置またはコンピュータで読み取り可能な記憶媒体、例えば、プロセッサ602による実行のためのプログラム命令用の第1のデータ記憶装置などを含むことができ、同じもしくは別個の記憶装置が、画像またはデータのために使用され得、取り外し可能な記憶メモリが、他のデバイス等と情報を共有するために利用可能であり得る。デバイスは、典型的には、いくつかの種類の表示要素606、例えばタッチスクリーン、電子インク(e−インク)、有機発光ダイオード(OLED)または液晶ディスプレー(LCD)などを含むことになるが、ポータブルメディアプレイヤなどのようなデバイスが、他の手段によって、例えば音響スピーカなどを通して、情報を伝達してもよい。少なくともいくつかの実施形態において、表示画面は、例えば容量もしくは抵抗性タッチ技術を使用して、タッチまたはスワイプをベースとした入力を提供する。
【0040】
記述されるように、多くの実施形態におけるデバイスは、複数の画像取り込み要素608、例えば、デバイスの近くのユーザ、人間、または対象を撮像することができる1つ以上の高解像度カメラなどを含む。画像取り込要素はまた、ユーザのジェスチャーもしくは動きを決定する際の使用のために画像情報を取り込むように動作可能な少なくとも1つの別個のジェスチャーセンサを含むことができ、それは、ユーザが、実際にポータブルデバイスに接触することおよび/またはポータブルデバイスを移動すること無く、ポータブルデバイスを通して入力をもたらすことを可能にする。画像取り込み要素は、任意の適切な技術に少なくとも一部基づいて、例えば決定解像度、焦点範囲、可視領域、および取り込みレートを有するCCDもしくはCMOS画像取り込み要素などを含むことができるか、あるいはそれらであり得る。記述されるように、様々な機能が、ジェスチャーセンサまたはカメラデバイスを用いて、あるいは別個の回路またはデバイス上等に含まれ得る。ジェスチャーセンサは、デバイス上の少なくとも1つのカメラと同じもしくは類似の形状因子を有し得るが、例えば異なる解像度、画素サイズ、および/または取り込みレートなどのような異なる様相を備える。
図1における計算デバイス例は、デバイスの「前面」上に1つの画像取り込み要素と2つのジェスチャーセンサを含むが、そのような要素がまた、あるいは代替的に、デバイスの側面、裏面、または角部上に置かれ得ること、ならびに、様々な実施形態における任意の数の目的のために類似のもしくは異なる種類の任意の適切な数の取り込み要素があり得ることが理解されるべきである。デバイス例は、例えばデバイスの位置および/または配向における変更を検出するための1つ以上の動きセンサなどのような、他の種類のセンサも同様に含むことができる。これらのセンサは、例えば、加速度計、電子ジャイロスコープ、電子コンパス、慣性センサ、および同様のものを含むことができる。デバイスはまた、周辺光もしくは強度を検出するための1つ以上の光センサ、温度または圧力センサ等を含み得るように、少なくとも1つの環境決定センサ要素612を含むことができる。
【0041】
デバイス例は、ユーザからの従来の入力を受信することができる少なくとも1つの追加的な入力デバイスを含むことができる。この従来の入力は、例えば、押しボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、トラックボール、キーパッド、あるいは任意の他のそのようなデバイスまたは要素を含むことができて、それによって、ユーザは、コマンドをデバイスに入力することができる。これらのI/Oデバイスは、いくつかの実施形態において無線の赤外線もしくはブルートゥースまたは他のリンクによってでさえも同様に接続され得る。しかしながら、いくつかの実施形態において、そのようなデバイスは、ユーザが、デバイスと接触していなくてもデバイスを制御することができるように、ボタンを全く含まなくてもよいし、視覚(例えば、ジェスチャー)および音響(例えば、話された)コマンドの組み合わせだけによって制御されてもよい。
【0042】
記述されるように、異なるアプローチが、説明した実施形態に従って様々な環境において実施され得る。例えば、
図7は、様々な実施形態に従って態様を実施するための環境の例700を例示する。認識されることになるように、ウェブをベースとした環境が説明の目的のために使用されるが、異なる環境が、様々な実施形態を実施するために必要に応じて使用されてもよい。システムは、電子クライアントデバイス702を含み、それは、適切なネットワーク704上で要求、メッセージまたは情報を送受信して、デバイスのユーザに情報を運び戻すように動作可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの例は、パーソナルコンピュータ、携帯電話、手持ち式メッセージングデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダーおよび同様のものを含む。ネットワークは、任意の適切なネットワークを含むことができ、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワークもしくは任意の他のそのようなネットワークまたはそれらの組み合わせを含む。そのようなシステムのために使用される構成要素は、選択されたネットワークおよび/または環境の種類に少なくとも一部依存し得る。そのようなネットワーク経由で通信するためのプロトコルおよび構成要素はよく知られており、本明細書では詳細に記述されない。ネットワーク上の通信は、有線または無線接続およびそれらの組み合わせによって有効にされ得る。この例において、環境が、要求を受信して、それに応答してコンテンツを供給するためのウェブサーバ706を含むように、ネットワークはインターネットを含むが、当業者に明らかであろうように、他のネットワークの場合、類似の目的を果たす代替のデバイスが使用され得る。
【0043】
例示的な環境は、少なくとも1つのアプリケーションサーバ708およびデータストア710を含む。連鎖され得るか、そうではない場合には構成され得るいくつかのアプリケーションサーバ、層もしくは他の要素、処理もしくは構成要素があり得、それらは、例えば適切なデータストアからのデータを取得することなどのようなタスクを行うように相互作用し得ることが理解されるべきである。本明細書において使用される際、「データストア」という用語は、データを記憶して、データにアクセスして、データを読み出すことが可能な任意のデバイスまたはデバイスの組み合わせのことを言い、それは、任意の標準の分散型またはクラスタ型環境における、任意の組み合わせおよび任意の数のデータサーバ、データベース、データ記憶デバイスならびにデータ記憶媒体を含み得る。アプリケーションサーバ708は、クライアントデバイスのための1つ以上のアプリケーションの態様を実行するために必要とされるようなデータストア710と統合するための、ならびに、アプリケーションのためのデータアクセスおよびビジネス論理の大半を取り扱うための、任意の適切なハードウェアやソフトウェアを含むことができる。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供して、ユーザに伝達されることになる例えばテキスト、図形、音響および/またはビデオなどのようなコンテンツを生成することができ、それらは、この例においてHTML、XMLまたは別の適切な構造化言語の形態でウェブサーバ706によってユーザに供され得る。全ての要求および応答の取り扱い、ならびにクライアントデバイス702とアプリケーションサーバ708との間のコンテンツの配信は、ウェブサーバ706によって取り扱われ得る。本明細書において記述される構造化コードは、本明細書における他の場所に記述されるような任意の適切なデバイスまたはホストマシン上で実行され得るので、ウェブおよびアプリケーションサーバは、要求されず、単なる構成要素例であることが理解されるべきである。
【0044】
データストア710は、特定の態様に関するデータを記憶するためのいくつかの別個のデータ表、データベースまたは他のデータ記憶機構および媒体を含むことができる。例えば、例示されたデータストアは、コンテンツ(例えば、生産データ)712およびユーザ情報716を記憶するための機構を含み、それは、生産側にコンテンツを供給するために使用され得る。データストアはまた、ログまたはセッションデータ714を記憶するための機構を含むように図示される。例えばページ画像情報やアクセス権情報などのようなデータストアに記憶される必要があり得る多くの他の態様があり得、それらは、必要に応じて上記でリスト化された機構のいずれかにまたはデータストア710における追加的な機構に記憶され得ることが理解されるべきである。データストア710は、それと関連付けられた論理部を介して、アプリケーションサーバ708からの命令を受信して、それに応答してデータを取得して、更新して、または別様に処理するように、動作可能である。一例において、ユーザは、一定の種類の項目についての検索要求を提出し得る。この場合において、データストアは、ユーザの同一性を確認するためにユーザ情報にアクセスし得、その種類の項目についての情報を取得するためにカタログ詳細情報にアクセスすることができる。情報は、次いで、例えばユーザがユーザデバイス702上のブラウザ経由で見ることができるウェブページ上にリスト化している結果などにおいて、ユーザに戻され得る。興味のある特定の項目についての情報は、ブラウザの専用のページまたはウィンドウにおいて見られ得る。
【0045】
各サーバは、典型的には、そのサーバの一般管理および動作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、典型的には、命令であって、サーバのプロセッサによって実行されるときに、サーバが、それの意図された機能を行うことを可能にする命令を記憶するコンピュータで読み取り可能な媒体を含む。サーバのオペレーティングシステムおよび一般機能についての適切な実施は、既知であるか商業的に利用可能であり、特に本明細書における開示を考慮して、当業者によって容易に実施される。
【0046】
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンク経由で相互接続されるいくつかのコンピュータシステムおよび構成要素を利用する分散型コンピューティング環境である。しかしながら、そのようなシステムが、
図7に例示されたものより少ないまたは多い数の構成要素を有するシステムにおいても同等にうまく動作し得ることは、当業者によって認識されるであろう。それ故、
図7におけるシステム700の描写は、本来は例示的なものであり、開示の範囲を限定しないものとして受け取られるべきである。
【0047】
様々な実施形態が、多種多様のオペレーティング環境において更に実施され得、それは、いくつかの場合において、多数のアプリケーションのいずれかを動作するために使用され得る1つ以上のユーザコンピュータまたは計算デバイスを含むことができる。ユーザまたはクライアントデバイスは、多数の汎用のパーソナルコンピュータ、例えば、標準オペレーティングシステムを動かすデスクトップまたはラップトップコンピュータ、ならびにモバイルソフトウェアを動かすとともに多数のネットワーキングプトロコルとメッセージングプロトコルをサポートすることが可能なセルラー式の無線および手持ち式デバイスなどのいずれかを含むことができる。そのようなシステムはまた、開発やデータベース管理などのような目的のために、種々の商業的に利用可能なオペレーティングシステムおよび他の既知のアプリケーションのいずれかを実行する多数のワークステーションを含むことができる。これらのデバイスはまた、他の電子デバイス、例えば、ダミー端末、シンクライアント、ゲーミングシステムおよびネットワーク経由で通信することが可能な他のデバイスなどを含むことができる。
【0048】
大部分の実施形態は、種々の商業的に利用可能なプロトコルのいずれか、例えばTCP/IP、OSI、FTP、UPnP、NFS、CIFSおよびAppleTalkなどを使用して通信をサポートするための、当業者になじみのあるであろう少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想私設ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワークおよびそれらの任意の組み合わせであり得る。
【0049】
ウェブサーバを利用する実施形態において、ウェブサーバは、種々のサーバまたはミッドティアアプリケーションのいずれかを動かすことができ、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Java(登録商標)サーバおよびビジネスアプリケーションサーバを含む。(複数の)サーバはまた、ユーザデバイスからの要求に応答して、例えば、任意のプログラミング言語、例えばJava(登録商標)、C、C♯もしくはC++または例えばPerl、PythonもしくはTCLなどの任意のスクリプト言語、ならびにそれらの組み合わせなどで書かれた1つ以上のスクリプトあるいはプログラムとして実施され得る1つ以上のウェブアプリケーションを実行することなどによって、プログラムまたはスクリプトを実行することができ得る。(複数の)サーバはまた、データベースサーバを含み得、限定無しに、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)およびIBM(登録商標)から商業的に利用可能なものを含む。
【0050】
環境は、上記のような種々のデータストアや他のメモリおよび記憶媒体を含むことができる。これらは、種々の場所に、例えばコンピュータの1つ以上の近くの(および/またはコンピュータの1つ以上内に存在する)あるいはネットワークを通してコンピュータのいずれかまたは全てから離れた記憶媒体上などに、存在することができる。特定の組の実施形態において、情報は、当業者になじみのあるストレージ・エリア・ネットワーク(SAN)に存在し得る。同様に、コンピュータ、サーバまたは他のネットワークデバイスに帰属された機能を行うための任意の必要なファイルが、必要に応じてローカルにおよび/または遠隔に記憶され得る。システムがコンピュータ化されたデバイスを含む場合、そのようなデバイスのそれぞれは、バス経由で電気的に結合され得るハードウェア要素を含むことができ、その要素は、例えば、少なくとも1つの中央処理装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチセンサ式の表示要素またはキーパッド)および少なくとも1つの出力デバイス(例えば、表示デバイス、プリンタまたはスピーカ)を含む。そのようなシステムはまた、1つ以上の記憶デバイス、例えばディスクドライブなど、光記憶デバイスおよび固体記憶デバイス、例えばランダムアクセスメモリ(RAM)または読み取り専用メモリ(ROM)など、ならびに取り外し可能な媒体デバイス、メモリカード、フラッシュカード等を含み得る。
【0051】
そのようなデバイスはまた、上記のようなコンピュータで読み取り可能な記憶媒体リーダー、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス)およびワーキングメモリを含むことができる。コンピュータで読み取り可能な記憶媒体リーダーは、遠隔の、ローカルの、固定されたおよび/または取り外し可能な記憶デバイスに相当するコンピュータで読み取り可能な記憶媒体、ならびにコンピュータで読み取り可能な情報を一時的におよび/またはより永続的に含有して、記憶して、伝達して、検索するための記憶媒体と接続され得るか、あるいはそれらを受信するように構成され得る。システムおよび様々なデバイスはまた、典型的には、例えばクライアントアプリケーションまたはウェブブラウザなどのようなオペレーティングシステムおよびアプリケーションプログラムを含む、少なくとも1つのワーキングメモリデバイス内に位置する多数のソフトウェアアプリケーション、モジュール、サービスあるいは他の要素を含む。代替の実施形態が、上記したものからの多数の変形を有し得ることが認識されるべきである。例えば、カスタマイズされたハードウェアがまた使用され得、および/または特定の要素が、ハードウェア、(例えばアプレットなどのようなポータブルソフトウェアを含む)ソフトウェアまたはそれらの両方において実施され得る。更に、他の計算デバイス、例えばネットワーク入力/出力デバイスなどに対する接続が利用されてもよい。
【0052】
コードまたはコードの一部を含有するための記憶媒体およびコンピュータで読み取り可能な媒体は、当分野において既知であるか使用される任意の適切な媒体を含むことができ、記憶媒体および通信媒体、限定されるものではないが、例えばコンピュータで読み取り可能な命令、データ構造、プログラムモジュールもしくは他のデータなどの情報の記憶および/または伝達のための任意の方法あるいは技術において実施される、例えば揮発性や不揮発性の、取り外し可能なおよび取り外し不可能な媒体などを含み、RAM、ROM、EEPROM(登録商標)、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは所望された情報を記憶するために使用され得るとともにシステムデバイスによってアクセスされ得る任意の他の媒体を含む。本明細書に提供された開示や教示に基づいて、当業者は、様々な実施形態を実施するための他の手法および/または方法を認識するであろう。
【0053】
したがって、明細書と図面は、限定的な意味ではなくて例示的な意味に見なされることになる。しかしながら、様々な修正や変更が、特許請求の範囲に規定されるような発明のより広い趣旨および範囲から逸脱すること無く、それになされ得ることは明白であろう。
【0054】
付記
付記1.計算デバイスであって、
複数のデバイスセンサと、
少なくともアプリケーションプロセッサおよびセンサ処理構成要素を含むプロセッササブシステムと、
複数のデバイスセンサおよびプロセッササブシステムに接続されたマイクロコントローラと、
1組の行動を行うことが実行されるように動作可能である命令であって、計算デバイスが、
センサ処理構成要素を使用して、プロセッササブシステムがアクティブ状態にある時間間隔の少なくとも一部の間に、複数のデバイスセンサのうちの少なくとも1つによって取り込まれたセンサデータを監視することと、
プロセッササブシステムにおいて、スリープ状態に入るための命令を受信することと、
命令の受信に応答して、センサ処理構成要素に、センサデータの監視を引き継ぐことをマイクロコントローラに通知させることと、
プロセッササブシステムをスリープ状態に入らせることと、
プロセッササブシステムがスリープ状態にある間にマイクロコントローラを使用してセンサデータを監視することと、
マイクロコントローラを使用して、センサデータに少なくとも一部基づいて、計算デバイスに関して行われた起動行動を認識することと、
起動行動の認識に応答してプロセッササブシステムに通知することと、
通知に応答してプロセッササブシステムをアクティブ状態に入らせることであって、センサ処理構成要素が、アクティブ状態にある間にセンサデータの監視を再開する、入らせることと、を可能にする命令を含む、少なくとも1つのメモリデバイスと、を備える、計算デバイス。
付記2.プロセッササブシステムが、電力管理構成要素を更に含み、起動行動の認識に応答してプロセッササブシステムに通知することが、電力管理構成要素に通知することを含み、電力管理構成要素が、センサ処理構成要素をアクティブ状態に入らせるように構成される、付記1の計算デバイス。
付記3.マイクロコントローラの通知およびセンサ処理構成要素の通知が、マイクロコントローラとセンサプロセッサとを接続する1対の汎用の入力/出力線を使用して行われる、付記1の計算デバイス。
付記4.計算デバイスであって、
少なくとも1つのデバイスセンサと、
少なくとも1つのデバイスセンサに接続されたセンサ処理構成要素を少なくとも含むプロセッササブシステムと、
少なくとも1つのデバイスセンサおよびプロセッササブシステムに接続されたマイクロコントローラと、
1組の行動を行うことが実行されるように動作可能である命令であって、計算デバイスが、
センサ処理構成要素を使用して、センサ処理構成要素がアクティブ状態において動作している時間間隔の少なくとも一部の間に、少なくとも1つのデバイスセンサによって取り込まれたセンサデータを監視することと、
アクティブ状態よりも低い電力状態において動作することを命令されているセンサ処理構成要素に応答して、マイクロコントローラにセンサデータを監視させることと、
マイクロコントローラがセンサデータを監視している間に可能性のある起動行動を検出するマイクロコントローラに応答して、センサ処理構成要素に、センサデータを監視させて、アクティブ状態における動作を再開させることと、を可能にする命令を含む、少なくとも1つのメモリデバイスと、を備える、計算デバイス。
付記5.デバイスが、少なくとも2つの種類の複数のデバイスセンサを含み、マイクロコントローラが、センサ処理構成要素がより低い電力状態において動作している時間間隔の少なくとも一部の間に、少なくとも2つの種類のうちの少なくとも1つのデバイスセンサを監視するように構成される、付記4に記載の計算デバイス。
付記6.少なくとも2つの種類は、カメラ、ジェスチャーセンサ、マイクロホン、超音波センサ、容量センサ、抵抗センサ、圧力センサ、加速度計、力センサ、電子ジャイロスコープ、磁力計、触覚センサ、温度センサ、慣性センサ、または電子コンパスのうちの少なくとも1つを含む、付記5に記載の計算デバイス。
付記7.マイクロコントローラが、可能性のある起動行動に対応することが決定されたセンサデータの少なくとも一部を記憶するように構成され、センサ処理構成要素が、記憶されたセンサデータの少なくとも一部を取得して、可能性のある起動行動が、実際の起動行動に対応するかどうかを決定するように構成される、付記5に記載の計算デバイス。
付記8.センサ処理構成要素が、少なくとも1つの他の種類のデバイスセンサからデータを取得して、可能性のある起動行動が実際の起動行動に対応するかどうかを決定することを支援するように構成される、付記7の計算デバイス。
付記9.マイクロコントローラが、少なくとも最小限のレベルの信頼性を伴って可能性のある起動行動のために記憶された情報に一致するセンサデータに応答して、可能性のある起動行動の検出だけを決定するように構成される、付記4に記載の計算デバイス。
付記10.マイクロコントローラが、少なくとも1つのデバイスセンサのうちの少なくとも1つによって取り込まれたセンサデータを監視して、少なくとも最小限のレベルの信頼性を伴って記憶された情報に一致することが検出されたユーザ行動に応答して、センサ処理構成要素に通知するように更に構成されており、記憶された情報が、可能性のあるユーザ行動を少なくとも部分的に説明する、付記4に記載の計算デバイス。
付記11.可能性のある起動行動が、手を振るジェスチャー、話されたコマンド、計算デバイスとのユーザの接触、視線方向、顔面の認識、計算デバイスに対する対象の近さ、または計算デバイスの運動のうちの少なくとも1つを含む、付記4に記載の計算デバイス。
付記12.プロセッササブシステムが、マイクロコントローラまたはセンサ処理構成要素のうちの少なくとも1つを使用して検出されたユーザ行動に応答して行動を行うようにプログラムされたアプリケーションのための命令を実行するように構成された少なくとも1つのアプリケーションプロセッサを更に含む、付記4の計算デバイス。
付記13.プロセッササブシステムが、電力管理構成要素を更に含み、マイクロコントローラが、可能性のある起動行動の検出に応答して電力管理構成要素に通知して、電力管理構成要素が、センサ処理構成要素に、アクティブ状態での動作を再開させるように構成される、付記4に記載の計算デバイス。
付記14.センサ処理構成要素が、アプリケーションプロセッサの少なくとも一部である、付記4の計算デバイス。
付記15.少なくとも1つのデバイスセンサが、カメラと、カメラよりも低い解像度を有する少なくとも1つのジェスチャーセンサと、を含み、マイクロコントローラが、カメラによってではなくて少なくとも1つのジェスチャーセンサによって取り込まれたセンサデータを取り込むように構成される、付記4に記載の計算デバイス。
付記16.マイクロコントローラおよびセンサ処理構成要素が、通知を送信するための少なくとも1対の汎用の入力/出力線を使用して接続される、付記4に記載の計算デバイス。
付記17.センサ処理構成要素が、処理サブシステムの専用の処理コアである、付記4に記載の計算デバイス。
付記18.コンピュータで実施される方法であって、
計算デバイスの処理サブシステムのセンサ処理構成要素を使用して、センサ処理構成要素がアクティブ状態にある時間間隔の少なくとも一部の間に、計算デバイスの少なくとも1つのデバイスセンサによって取り込まれたセンサデータを監視することと、
センサ処理構成要素を使用して、スリープ状態に入ることを命令されているセンサ処理構成要素に応答して、センサデータの監視に対する責任を計算デバイスのマイクロコントローラに移すことと、
マイクロコントローラがセンサデータの監視を行っている間にマイクロコントローラが可能性のある起動行動を検出したこと応答して、センサ処理構成要素を、アクティブ状態に再び入らせて、センサデータを監視させることと、を含む、方法。
付記19.マイクロコントローラに、センサ処理構成要素がスリープ状態にある時間間隔の少なくとも一部の間に、起動行動を検出することを試みるためにセンサデータを分析させることを更に含み、センサ処理構成要素が、マイクロコントローラがセンサデータから起動行動を決定したことに応答して、アクティブ状態に再び入らされる、付記18に記載のコンピュータで実施される方法。
付記20.マイクロコントローラが、センサ処理構成要素がアクティブ状態において動作している時間間隔の少なくとも一部の間に、スレーブモードにおいて動作するように構成される、付記18に記載のコンピュータで実施される方法。
付記21.センサ処理構成要素に、センサ処理構成要素がアクティブ状態にある時間間隔の少なくとも一部の間に、少なくとも1つのデバイスセンサを制御させることを更に含む、付記18に記載のコンピュータで実施される方法。
付記22.命令を含む非一時的なコンピュータで読み取り可能な記憶媒体であって、命令は、実行されるときに、計算デバイスが、
センサ処理構成要素がアクティブ状態にある時間間隔の少なくとも一部の間に、計算デバイスの処理サブシステムのセンサ処理構成要素を使用して、計算デバイスの少なくとも1つのデバイスセンサによって取り込まれたセンサデータを監視することと、
センサ処理構成要素を使用して、センサ処理構成要素がスリープ状態に入ることを命令されたことに応答して、センサデータの監視に対する責任を計算デバイスのマイクロコントローラに移すことと、
マイクロコントローラがセンサデータの監視を行っている間に、マイクロコントローラが可能性のある起動行動を検出したことに応答して、センサ処理構成要素をアクティブ状態に再び入らせて、センサデータを監視させることと、を可能にする、非一時的なコンピュータで読み取り可能な記憶媒体。
付記23.命令が、実行されるときに、計算デバイスに、更に、
センサ処理構成要素がスリープ状態にある時間間隔の少なくとも一部の間に、マイクロコントローラに起動行動を検出することを試みるためにセンサデータを分析させることをもたらして、センサ処理構成要素が、マイクロコントローラがセンサデータから起動行動を決定したことに応答して、アクティブ状態に再び入らされる、付記22の非一時的なコンピュータで読み取り可能な記憶媒体。
付記24.命令が、実行されるときに、マイクロコントローラに、更に、可能性のある起動行動に対応することが決定されたセンサデータの少なくとも一部を記憶させて、命令が、センサ処理構成要素に、更に、記憶されたセンサデータの少なくとも一部を取得させて、可能性のある起動行動が実際の起動行動に対応するかどうかを決定させる、付記22の非一時的なコンピュータで読み取り可能な記憶媒体。
付記25.命令が、実行されるときに、センサ処理構成要素に、更に、少なくとも1つの他の種類のデバイスセンサからデータを取得させて、可能性のある起動行動が実際の起動行動に対応するかどうかを決定することを支援させる、付記24の非一時的なコンピュータで読み取り可能な記憶媒体。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]計算デバイスであって、
少なくとも1つのデバイスセンサと、
前記少なくとも1つのデバイスセンサに接続されたセンサ処理構成要素を少なくとも含むプロセッササブシステムと、
前記少なくとも1つのデバイスセンサおよび前記プロセッササブシステムに接続されたマイクロコントローラと、
1組の行動を行うことが実行されるように動作可能である命令であって、前記計算デバイスが、
前記センサ処理構成要素を使用して、前記センサ処理構成要素がアクティブ状態において動作している時間間隔の少なくとも一部の間に、前記少なくとも1つのデバイスセンサによって取り込まれたセンサデータを監視することと、
前記センサ処理構成要素が前記アクティブ状態より低い電力状態において動作することを命令されることに応答して、前記マイクロコントローラに前記センサデータを監視させることと、
前記マイクロコントローラが、前記マイクロコントローラが前記センサデータを監視する間に可能性のある起動行動を検出することに応答して、前記センサ処理構成要素に、前記センサデータを監視させて、前記アクティブ状態における動作を再開させることと、を可能にする命令を含む、少なくとも1つのメモリデバイスと、を備える、計算デバイス。
[2]前記デバイスが、少なくとも2つの種類の複数のデバイスセンサを含み、前記マイクロコントローラが、前記センサ処理構成要素が前記より低い電力状態において動作している時間間隔の少なくとも一部の間に、前記少なくとも2つの種類のうちの少なくとも1つの前記デバイスセンサを監視するように構成される、[1]に記載の計算デバイス。
[3]前記少なくとも2つの種類は、カメラ、ジェスチャーセンサ、マイクロホン、超音波センサ、容量センサ、抵抗センサ、圧力センサ、加速度計、力センサ、電子ジャイロスコープ、磁力計、触覚センサ、温度センサ、慣性センサ、または電子コンパスのうちの少なくとも1つを含む、[2]に記載の計算デバイス。
[4]前記マイクロコントローラが、前記可能性のある起動行動に対応することが決定された前記センサデータの少なくとも一部を記憶するように構成され、前記センサ処理構成要素が、前記記憶されたセンサデータの少なくとも一部を取得して、前記可能性のある起動行動が、実際の起動行動に対応するかどうかを決定するように構成される、[2]に記載の計算デバイス。
[5]前記マイクロコントローラが、前記センサデータが少なくとも最小限のレベルの信頼性を伴って可能性のある起動行動のために記憶された情報に一致することに応答して、潜在的な起動行動の検出だけを決定するように構成される、[1]に記載の計算デバイス。
[6]前記マイクロコントローラが、前記少なくとも1つのデバイスセンサのうちの少なくとも1つによって取り込まれた前記センサデータを監視して、少なくとも最小限のレベルの信頼性を伴って記憶された情報に一致するユーザ行動が検出されることに応答して、前記センサ処理構成要素に通知するように更に構成されており、前記記憶された情報が、可能性のあるユーザ行動を少なくとも部分的に説明する、[1]に記載の計算デバイス。
[7]前記可能性のある起動行動が、手を振るジェスチャー、話されたコマンド、前記計算デバイスとのユーザの接触、視線方向、顔面の認識、前記計算デバイスに対する対象の近さ、または前記計算デバイスの運動のうちの少なくとも1つを含む、[1]に記載の計算デバイス。
[8]前記プロセッササブシステムが、電力管理構成要素を更に含み、前記マイクロコントローラが、前記可能性のある起動行動の検出に応答して前記電力管理構成要素に通知して、前記電力管理構成要素が、前記センサ処理構成要素に、前記アクティブ状態で動作を再開させるように構成される、[1]に記載の計算デバイス。
[9]前記少なくとも1つのデバイスセンサが、カメラと、前記カメラよりも低い解像度を有する少なくとも1つのジェスチャーセンサと、を含み、前記マイクロコントローラが、前記カメラによってではなくて前記少なくとも1つのジェスチャーセンサによって取り込まれたセンサデータを取り込むように構成される、[1]に記載の計算デバイス。
[10]前記マイクロコントローラおよび前記センサ処理構成要素が、通知を送信するための少なくとも1対の汎用の入力/出力線を使用して接続される、[1]に記載の計算デバイス。
[11]前記センサ処理構成要素が、前記処理サブシステムの専用の処理コアである、[1]に記載の計算デバイス。
[12]コンピュータで実施される方法であって、
計算デバイスの処理サブシステムのセンサ処理構成要素を使用して、前記センサ処理構成要素がアクティブ状態にある時間間隔の少なくとも一部の間に、前記計算デバイスの少なくとも1つのデバイスセンサによって取り込まれたセンサデータを監視することと、
前記センサ処理構成要素を使用して、前記センサ処理構成要素がスリープ状態に入ることを命令されることに応答して、前記センサデータの監視に対する責任を前記計算デバイスのマイクロコントローラに移すことと、
前記マイクロコントローラが、前記マイクロコントローラが前記センサデータの前記監視を行っている間に可能性のある起動行動を検出することに応答して、センサ処理構成要素を、前記アクティブ状態に再び入らせて、前記センサデータを監視させることと、を含む、方法。
[13]前記マイクロコントローラに、前記センサ処理構成要素が前記スリープ状態にある時間間隔の少なくとも一部の間に、起動行動を検出することを試みるために前記センサデータを分析させることを更に含み、前記センサ処理構成要素が、前記マイクロコントローラが前記センサデータから前記起動行動を決定することに応答して、前記アクティブ状態に再び入らされる、[12]に記載のコンピュータで実施される方法。
[14]前記マイクロコントローラが、前記センサ処理構成要素が前記アクティブ状態において動作している時間間隔の少なくとも一部の間に、スレーブモードにおいて動作するように構成される、[12]に記載のコンピュータで実施される方法。
[15]前記センサ処理構成要素に、前記センサ処理構成要素が前記アクティブ状態にある時間間隔の少なくとも一部の間に、前記少なくとも1つのデバイスセンサを制御させることを更に含む、[12]に記載のコンピュータで実施される方法。