(57)【特許請求の範囲】
【請求項１】
モバイルデバイスの屋内/屋外状態を判定するための方法であって、
前記モバイルデバイスの屋内/屋外状態を維持するステップであって、前記屋内/屋外状態が、屋内状態および屋外状態を含む複数のあり得る状態から選択され、前記モバイルデバイスが、少なくとも1つの第1のセンサと複数の第2のセンサとを含み、前記少なくとも1つの第1のセンサが前記複数の第2のセンサよりも多い電力消費量に関連付けられ、前記複数の第2のセンサが、運動検出器、および周辺光センサ(ALS)を含む、ステップと、
前記複数の第2のセンサが前記モバイルデバイスの前記屋内/屋外状態を示す読取値を生成できる場合に、前記少なくとも1つの第1のセンサをゲートオフし、前記複数の第2のセンサを使用してセンサ読取値を取得するステップと、
前記第2のセンサが前記モバイルデバイスの前記屋内/屋外状態を示す読取値を生成できない場合に、前記少なくとも1つの第1のセンサを使用してセンサ読取値を取得するステップと、
前記取得された読取値に基づいて前記モバイルデバイスの前記屋内/屋外状態を更新するステップと
を含む方法。
【請求項２】
タイマを使用して前記複数の第2のセンサを周期的に検査するステップと、
前記運動検出器の周期的な検査に基づいて移動が生じたかどうかを判定するステップと
をさらに含み、
前記少なくとも1つの第1のセンサを使用してセンサ読取値を取得するステップが、移動が生じたと判定された場合であって、前記第2のセンサが前記モバイルデバイスの前記屋内/屋外状態を示す読取値を生成できない場合に、前記少なくとも1つの第1のセンサからの読取値を使用して前記モバイルデバイスの前記屋内/屋外状態を更新するステップを含む、
請求項1に記載の方法。
【請求項３】
前記複数の第2のセンサは、加速度計を備え、前記方法は、
前記加速度計に基づいて、前記モバイルデバイスが移動する車両の内部にあるかどうかを判定するステップと、
前記モバイルデバイスが前記移動する車両の内部にあるという前記判定に基づいて前記屋内/屋外状態を更新するステップとをさらに含む、請求項1に記載の方法。
【請求項４】
前記方法は、
前記モバイルデバイスに関連する現地時間を判定するステップと、
前記現地時間が昼光時間に対応するときにのみ前記ALSからの読取値を使用するステップとを含む、請求項1に記載の方法。
【請求項５】
前記方法は、
前記ALSからの読取値が第1の所定の値を超えている場合に、前記モバイルデバイスの前記屋内/屋外状態を前記屋外状態に更新するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記少なくとも1つの第1のセンサはカメラを備え、
前記ALSからの読取値が第2の所定の値を超えない場合では、前記第2のセンサが前記モバイルデバイスの前記屋内/屋外状態を示す読取値を生成できない場合であっても、前記カメラを使用して前記モバイルデバイスの前記屋内/屋外状態を示す前記読取値を生成しない、請求項1に記載の方法。
【請求項７】
前記カメラからカメラ画像をキャプチャするステップであって、前記カメラ画像が、前記カメラ画像内の各画素の赤色、緑色、および青色(RGB)の値を含む、ステップと、
前記カメラ画像内の画素の前記RGB値を算出することに基づいて前記モバイルデバイスの前記屋内/屋外状態を示す前記読取値を生成するステップとをさらに含む、請求項6に記載の方法。
【請求項８】
前記複数の第2のセンサは加速度計を備え、前記方法は、
前記加速度計によって運動の変化を判定するステップと、
前記運動の変化を、前記屋内/屋外状態の変化を示すものとして分類するステップと、
前記分類に基づいて前記モバイルデバイスの前記屋内/屋外状態を示す前記読取値を生成するステップと
をさらに含む、請求項1に記載の方法。
【請求項９】
前記少なくとも1つの第1のセンサはカメラを備え、
前記第2のセンサが前記モバイルデバイスの前記屋内/屋外状態を示す読取値を生成できない場合に、前記少なくとも1つの第1のセンサを使用してセンサ読取値を取得するステップが、前記運動検出器からの読取値が移動を示し、かつ前記モバイルデバイスが使用中である場合にのみ、前記カメラを使用して前記モバイルデバイスの前記屋内/屋外状態を示す前記読取値を生成するステップを含む、請求項1に記載の方法。
【請求項１０】
実行されたときに、モバイルデバイスに含まれる1つまたは複数のコンピューティングデバイスに、請求項1乃至9の何れか1項に記載の方法を行わせるコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読記憶媒体。
【請求項１１】
モバイルデバイスの屋内/屋外状態を判定するための装置であって、
前記モバイルデバイスの屋内/屋外状態を維持するための手段であって、前記屋内/屋外状態が、屋内状態および屋外状態を含む複数のあり得る状態から選択され、前記モバイルデバイスが、少なくとも1つの第1のセンサと複数の第2のセンサとを含み、前記少なくとも1つの第1のセンサが前記複数の第2のセンサよりも多い電力消費量に関連付けられ、前記複数の第2のセンサが、運動検出器、および周辺光センサ(ALS)を含む、手段と、
前記複数の第2のセンサが前記モバイルデバイスの前記屋内/屋外状態を示す読取値を生成できる場合に、前記少なくとも1つの第1のセンサをゲートオフし、前記複数の第2のセンサを使用してセンサ読取値を取得するための手段と、
前記第2のセンサが前記モバイルデバイスの前記屋内/屋外状態を示す読取値を生成できない場合に、前記少なくとも1つの第1のセンサを使用してセンサ読取値を取得するための手段と、
前記取得された読取値に基づいて前記モバイルデバイスの前記屋内/屋外状態を更新するための手段とを備える装置。
【請求項１２】
前記複数の第2のセンサは運動の変化を判定するための加速度計を含み、前記少なくとも1つの第1のセンサはカメラを備え、前記装置は、
前記運動の変化を、前記屋内/屋外状態の変化を示すものとして分類するための手段と、
前記分類に基づいて前記前記モバイルデバイスの前記屋内/屋外状態を示す前記読取値を生成するための手段とをさらに備える、請求項11に記載の装置。
【請求項１３】
前記モバイルデバイスが電車または運転中の車両の内部にあることによる前記運動の変化は、前記屋内/屋外状態の変化を示さない、請求項12に記載の装置。
【請求項１４】
前記複数のあり得る状態が不明状態を含む、請求項11に記載の装置。
【請求項１５】
前記少なくとも1つの第1のセンサは、
GPS受信機、
WLAN受信機、
オーディオ受信機、
Bluetooth（登録商標）受信機、
セルラー受信機、および
カメラのうちの少なくとも1つを含み、かつ／または
前記複数の第2のセンサは、
加速度計、
クロック、
天候センサ、および
温度センサのうちの少なくとも1つをさらに含む、請求項11に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様は、コンピュータソフトウェアおよびコンピュータハードウェアを含むコンピューティング技術に関する。特に、本開示の様々な態様は、1つまたは複数のセンサを使用してモバイルデバイスの屋内状態または屋外状態を判定することに関する。モバイルデバイスにおいてコンテキストアウェアコンピューティングを利用して屋内/屋外状態を判定することができる。
【背景技術】
【０００２】
モバイル電話、タブレットコンピュータ、およびラップトップコンピュータなどのパーソナルコンピューティングデバイスがますます普及している。さらに、コンピューティングデバイス上に設けることのできるいくつかのソフトウェアアプリケーションおよびその他の機能は、屋内/屋外状態情報を使用して、そのようなデバイスを使用する際のユーザの体験をさらに向上させることができる。
【０００３】
たとえば、屋内/屋外状態情報を使用すると、電力を消耗する位置判定(たとえば、全地球測位システム(GPS)フィックス)をゲートすること、電力を消耗するワイヤレスローカルエリアネットワーク(WLAN)の探索をゲートすること、オンデバイス屋内ナビゲーションシステムをトリガまたは無効化すること、および状況認識情報(たとえば、ユーザが街中にいる、バスに乗っている、地下鉄に乗っている)を他のアプリケーションに供給することなどの一連のアプリケーションを容易にすることができる。
【０００４】
しかしながら、いくつかの例では、デバイスがその現在の屋内/屋外状態を認識できないことがあり、ならびに/あるいはデバイスの現在の屋内/屋外状態を判定する際に使用できる特定の専用のハードウェア、ソフトウェア、基準情報、および/またはその他のリソースを有さないことがある。
【０００５】
これらの問題を解消する1つの方法では、そのようなデバイスに多くの電力を消費するセンサ(たとえば、GPS、カメラ、Bluetooth（登録商標）、GPS、WLAN)を使用してデバイスの現在位置で情報を観測させ、次いでこの情報をセンサデータの実質的な後処理に使用して屋内/屋外状態を正確に判定する。たとえば、屋内/屋外状態を判定する従来の方法では、デバイスが複数の高電力センサ(たとえば、GPS、WLAN、カメラ、運動情報)を同時に使用し、すべてのセンサデータに基づいて判定を下す。従来の方法の別の例は、GPSフィックスを経時的に使用し、衛星の可視性に基づいて屋内/屋外状態を判定することを含む。しかしながら、従来の方法は、非常に多くの電力を消費し、したがって、常時接続モードにはできない。さらに、従来の方法は、屋内/屋外状態を正確に判定できないことがある。
【発明の概要】
【課題を解決するための手段】
【０００６】
モバイルデバイスの屋内/屋外状態を判定するための方法、システム、コンピュータ可読媒体、および装置を提示する。1つまたは複数のセンサを使用してデバイスの屋内/屋外状態を常時接続モードで正確に判定することに関する特定の実施形態について説明する。
【０００７】
これは、デバイスがその屋内/屋外状態の低電力常時接続判定を下すのを可能にする特徴および要素について説明する概要である。
【０００８】
いくつかの実施形態では、モバイルデバイスが屋内/屋外状態を維持してよい。モバイルデバイスは、少なくとも1つの第1のセンサと少なくとも1つの第2のセンサとを含んでよく、第1のセンサは、第2のセンサよりも多い電力消費量に関連付けられる。モバイルデバイスは、第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できる場合には、第1のセンサをゲートオフし、第2のセンサを使用してセンサ読取値を取得してよい。モバイルデバイスは、第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できない場合には、第1のセンサを使用してセンサ読取値を取得してよい。モバイルデバイスは、第1および/または第2のセンサから受け取られた読取値に基づいてモバイルデバイスの屋内/屋外状態を更新してよい。
【０００９】
いくつかの実施形態では、モバイルデバイスは、モバイルデバイスの屋内/屋外状態を判定するための1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されたときに、モバイルデバイスの屋内/屋外状態を維持させることであって、屋内/屋外状態が、屋内状態および屋外状態を含む複数のあり得る状態から選択され、モバイルデバイスが少なくとも1つの第1のセンサおよび少なくとも1つの第2のセンサを含み、少なくとも1つの第1のセンサが、少なくとも1つの第2のセンサよりも多い電力消費量に関連付けられることと、少なくとも1つの第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できる場合には、少なくとも1つの第1のセンサをゲートオフし、少なくとも1つの第2のセンサを使用してセンサ読取値を取得することと、第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できない場合には、少なくとも1つの第1のセンサを使用してセンサ読取値を取得することと、少なくとも1つの第1のセンサおよび少なくとも1つの第2のセンサから受け取られた読取値に基づいてモバイルデバイスの屋内/屋外状態を更新することとをモバイルデバイスに行わせるコンピュータ可読命令を記憶するメモリとを備えてよい。
【００１０】
いくつかの実施形態では、実行されたときに、モバイルデバイスの屋内/屋外状態を維持させることであって、屋内/屋外状態が、屋内状態および屋外状態を含む複数のあり得る状態から選択され、モバイルデバイスが少なくとも1つの第1のセンサおよび少なくとも1つの第2のセンサを含み、少なくとも1つの第1のセンサが、少なくとも1つの第2のセンサよりも多い電力消費量に関連付けられることと、少なくとも1つの第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できる場合には、少なくとも1つの第1のセンサをゲートオフし、少なくとも1つの第2のセンサを使用してセンサ読取値を取得することと、第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できない場合には、少なくとも1つの第1のセンサを使用してセンサ読取値を取得することと、少なくとも1つの第1のセンサおよび少なくとも1つの第2のセンサから受け取られた読取値に基づいてモバイルデバイスの屋内/屋外状態を更新することとをモバイルデバイスに含まれる1つまたは複数のコンピューティングデバイスに行わせるコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読媒体。
【００１１】
いくつかの実施形態では、モバイルデバイスの屋内/屋外状態を判定するための装置は、モバイルデバイスの屋内/屋外状態を維持するための手段であって、屋内/屋外状態が、屋内状態および屋外状態を含む複数のあり得る状態から選択され、モバイルデバイスが少なくとも1つの第1のセンサおよび少なくとも1つの第2のセンサを含み、少なくとも1つの第1のセンサが、少なくとも1つの第2のセンサよりも多い電力消費量に関連付けられる、手段と、少なくとも1つの第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できる場合には、少なくとも1つの第1のセンサをゲートオフし、少なくとも1つの第2のセンサを使用してセンサ読取値を取得するための手段と、第2のセンサがモバイルデバイスの屋内/屋外状態を示す読取値を生成できない場合には、少なくとも1つの第1のセンサを使用してセンサ読取値を取得するための手段と、少なくとも1つの第1のセンサおよび少なくとも1つの第2のセンサのうちの1つから受け取られた読取値に基づいてモバイルデバイスの屋内/屋外状態を更新するための手段とを備えてよい。
【００１２】
1つまたは複数の構成では、モバイルデバイスは、タイマを使用して少なくとも1つの第2のセンサを周期的に検査してよく、少なくとも1つの第2のセンサは運動検出器を備える。さらに、モバイルデバイスは、運動検出器を周期的に検査することに基づいて移動が生じたかどうかを判定し、移動が生じたと判定された場合に、少なくとも1つの第1のセンサからの読取値を使用してモバイルデバイスの屋内/屋外状態を更新してよい。
【００１３】
1つまたは複数の構成では、少なくとも1つの第2のセンサは、周辺光センサ(ALS)を備え、少なくとも1つの第1のセンサはカメラを備え、モバイルデバイスは、ALSからの読取値が第2の所定の値よりも大きい場合にのみカメラを使用してモバイルデバイスの屋内/屋外状態を示す読取値を生成してよい。
【００１４】
1つまたは複数の構成では、モバイルデバイスはカメラからカメラ画像をキャプチャしてよく、カメラ画像は、カメラ画像内の各画素の赤色、緑色、および青色(RGB)の値を含む。さらに、モバイルデバイスは、カメラ画像内の画素のRGB値を算出することに基づいてモバイルデバイスの屋内/屋外状態を示す読取値を生成してよい。
【００１５】
本開示の態様が例として示される。添付の図面において、同様の参照番号は類似の要素を示す。
【図面の簡単な説明】
【００１６】
【図１】本発明の1つまたは複数の実施形態を組み込むことができるモバイルデバイスシステムの簡略図である。
【図２】いくつかの実施形態による屋内/屋外判定のための低電力常時接続アーキテクチャを示す図である。
【図３】光の種類に応じた光の色のスペクトルのチャートである。
【図４】いくつかの実施形態による、モバイルデバイスの屋内/屋外状態を判定するための例示的な方法を示す図である。
【図５】いくつかの実施形態による、高電力センサをゲートすることによる低電力屋内/屋外判定のための常時接続方法を示す図である。
【図６】1つまたは複数の実施形態が実施され得るコンピューティングシステムの一例を示す図である。
【発明を実施するための形態】
【００１７】
次に、いくつかの例示的な実施形態について、それらの実施形態の一部を形成する添付の図面に関連して説明する。本開示の1つまたは複数の態様が実装され得る特定の実施形態について以下で説明するが、本開示の範囲、または添付の特許請求の範囲の趣旨を逸脱することなく、他の実施形態を使用することができ、様々な変更を行うことができる。
【００１８】
本開示の態様は、モバイルデバイスからのセンサデータを使用した屋内判定または屋外判定に関する。様々な高電力センサおよび低電力センサを使用してデバイスが屋内にあるかそれとも屋外にあるかを判定する特定の実施形態について説明する。これによって、デバイスはその屋内/屋外状態について正確な低電力常時接続判定を下すことができる。高電力センサ150は、限定はしないが、GPS受信機155、WLAN受信機160、オーディオ受信機170、Bluetooth（登録商標）受信機180、セルラー受信機190、およびカメラ195を含む。低電力センサ105は、限定はしないが、加速度計110、周辺光センサ(ALS)120、クロック130、および天候/温度センサ140を含む。
【００１９】
従来のシステムは屋内/屋外位置情報を提供することができるが、これらのシステムは、低電力常時接続モードでは実現できない多くの電力を消費するセンサに依存する。本開示の様々な態様に従って、低電力センサを使用して屋内/屋外状態判定を下し、ならびに/あるいは高電力センサの使用をゲートすることによって、本発明の実施形態はデバイスの屋内/屋外状態について低電力常時接続判定を下すことができる。
【００２０】
いくつかの実施形態によれば、常時接続低電力センサを使用してデバイスの屋内/屋外状態を判定してよい。しかしながら、低電力センサ105が屋内/屋外状態を示す読取値を生成することができない場合、システムは高電力センサ150を使用してよい。
【００２１】
次に、添付の図面を参照して、様々な実施形態をより詳細に説明するが、まず図1から説明する。
【００２２】
低電力センサ
図1は、本発明の1つまたは複数の実施形態を組み込むことができるモバイルデバイスシステム100の簡略図である。システム100は、いくつかのある構成要素の中で特に、低電力センサ105と高電力センサ150とを備える。低電力センサ105には、たとえば、加速度計110、周辺光センサ120、クロック130、および天候/温度センサ140を含めてよい。高電力センサには、たとえば、GPS受信機155、WLAN受信機160、オーディオ受信機170、Bluetooth（登録商標）受信機180、セルラー受信機190、およびカメラ195を含めてよい。いくつかの実施形態によれば、システムは低電力センサ105を常時接続で使用してシステムが屋内/屋外状態を判定するのを助ける。さらに、低電力センサ105を高電力センサ150のゲート機構として使用してよい。
【００２３】
いくつかの実施形態によれば、システム100は加速度計110を使用してシステム100が屋内/屋外状態を判定するのを助けてよい。さらに、加速度計110を高電力センサ150のゲート機構として使用してよい。加速度計110を使用してユーザの運動タイプを低電力常時接続モードで算出することができる。
【００２４】
たとえば、ユーザが運転していることを加速度計110が示している場合、システムは、ユーザが屋外にいると推定してよい。代替として、システム100が、タイマが最後に満了して以来動いていないと、加速度計110が判定した場合、システム100はこの情報を使用して高電力センサ150の使用をゲートしてバッテリー電力を節約してよい。
【００２５】
さらに、図1では、システム100は、ALS120を使用して屋内/屋外状態を判定してよい。さらに、システム100は、ALS120を高電力センサ150のゲート機構として使用してよい。たとえば、屋外で観測されるルクス(すなわち、光強度)値の範囲は通常、屋内で観測されるルクス値の範囲よりもはるかに広い。したがって、ALSが非常に大きい読取値(たとえば、高_しきい値=500ルクス)を出力した場合、システムは、デバイスが屋外にあると推定してよい。代替として、たとえば、ALS読取値が低い場合(たとえば、ステップ260において、低_しきい値=5ルクス)、システムは、デバイスが隠れていると推定し、カメラ195の使用をゲートしてよい。システムは、デバイス上で利用可能な任意のALS120を利用してよい(たとえば、ALSは、デバイスの前部および/または後部に存在することがある)。
【００２６】
昼光の間、屋外環境のルクス値は500から20000までの範囲になることがある。屋内環境の光強度が500ルクスを超えることはないと仮定されてよい。したがって、システムは、特定の高しきい値(たとえば、500ルクス)よりも大きいときのALS読取値を屋外環境と屋内環境との明確な違いを表す値として使用してよい。したがって、デバイスが屋外にあり、隠れていない場合、高ルクス値によってデバイスが屋外にあることを容易に判定することができ、状態を屋外に設定してよい。
【００２７】
たとえば、ALSからの光強度のルクス値が5未満である場合、システムは、デバイスが隠れておりカメラを起動しないと仮定してよい。さらに、システムは、ALSを使用して、ALSが高_しきい値よりも大きい値を返したときにデバイスが屋外にあると直ちに判定してよい。たとえば、ALSからの光強度のルクス値が500よりも大きい場合、システムは、デバイスが屋外にあると仮定してよい。さらに、低_しきい値および高_しきい値はデフォルト値を有してよいが、これらの値は、システム100および/またはユーザによっても設定可能である。
【００２８】
いくつかの実施形態によれば、図1に示すシステムは、屋内/屋外状態を判定するのを助けるためにクロック130を含んでよい。さらに、システム100は、クロック130を高電力センサ150のゲート機構として使用してよい。たとえば、システム100は、時刻を使用して、ユーザが特定の時刻(たとえば、夜遅く)に屋内にいる可能性が高いと推定してよい。さらに、非昼光時間の間、カメラ195の使用をゲートするためにシステム100によってクロックが使用されてよい。
【００２９】
いくつかの実施形態によれば、図1に示すシステム100は、天候読取値および/または温度読取値のための天候/温度センサ140を含んでよい。これらの読取値を使用してシステム100の屋内/屋外状態を判定してよい。たとえば、特定の状況(たとえば、寒さ、雨天、降雪)の間、ユーザが屋内にいる可能性が高いと推定されてよい。天候/温度センサ140は、デバイスの物理的環境における読取値のためのシステム100上の物理的センサであってよい。代替として、天候/温度センサ140は外部データに(たとえば、インターネットを介して天気予報ウェブサイトに)リンクされてよい。
【００３０】
したがって、システム100は、これらの低電力センサ105からの読取値を使用してシステム100の屋内/屋外状態を判定してよい。これらのセンサが最低電力を使用することを仮定すれば、1つまたは複数の低電力センサ105をデバイスのバッテリーを過度に消耗せずに常時接続モードで実施することができる。さらに、システム100は、これらの低電力センサ105のみではデバイスの屋内/屋外状態を判定できない場合、高電力センサ150の使用をトリガして屋内/屋外状態を判定する。
【００３１】
高電力センサ
低電力センサ105とは異なり、システム100の高電力センサ150は、デバイスのバッテリーを過度に消耗することがあるので常時接続することはできない。したがって、いくつかの実施形態によれば、システム100は常時接続低電力センサ105をゲート機構として使用してこれらの高電力センサ150を作動させてよい。
【００３２】
いくつかの実施形態によれば、図1に示すシステム100は、無線環境を監視するための高電力センサ150または受信機(たとえば、GPS、モバイル通信用グローバルシステム(Global System for Mobile Communications(GSM（登録商標）))ネットワーク、ユニバーサルモバイル通信システム(UMTS)、ワイヤレスローカルエリアネットワーク(WLAN))を含んでよく、監視されたデータを使用してモバイルデバイスの屋内/屋外状態を判定してよい。
【００３３】
たとえば、図1に示すシステム100は、屋内/屋外状態を判定するのを助けるためにGPS受信機155を使用してよい。いくつかの例では、可視衛星の数および可視衛星の受信信号強度インジケータ(RSSI)が、デバイスが屋内にあるかそれとも屋外にあるかを示すことができる。たとえば、RSSIの強度が高い場合、デバイスが屋外にあると推定してよい。システムは、場合によっては、グローバルナビゲーション衛星システム(GNSS)読取値を受信または導出してもよい。しかしながら、デバイスが屋内の窓の近く、建物の床の上、または屋外のビルの谷間にある場合には不正確な判定が行われることがある。したがって、システム100は、屋内/屋外状態判定の間GPS155読取値を因子として使用してよい(たとえば、ステップ230)。
【００３４】
いくつかの実施形態によれば、システム100はWLAN受信機160を使用して無認可の周波数の信号を監視してよい。WLAN受信機160は、デバイスの屋内/屋外状態を判定するためにシステム100によって使用されてよい。いくつかの例では、可視アクセスポイント(AP)の数および可視アクセスポイントのRSSIが、デバイスが屋内にあるかそれとも屋外にあるかを示すことができる。たとえば、RSSIの強度が高いAPがほとんどまたはまったくないことは、ユーザが屋外にいることを示す。
【００３５】
さらに、図1に示すシステム100はオーディオ受信機170を含んでよい。いくつかの実施形態によれば、システム100はオーディオ受信機170からのオーディオデータを使用してデバイスの屋内/屋外状態を判定してよい。たとえば、オーディオセンサ(たとえば、マイクロフォン)によってキャプチャされたオーディオデータに対して対象音声検出を実行し、ユーザが屋内にいるかそれとも屋外にいるかを判定してよい。そのようなシステムは、屋内オーディオ環境と屋外オーディオ環境とを区別するように機械学習手法を使用した例を介してトレーニングされてよい。さらに、オーディオ信号中の残響(すなわち、遅延拡散)を測定することが屋内/屋外判定に寄与することがある(たとえば、ステップ230)。
【００３６】
さらに、いくつかの実施形態によれば、図1に示すシステム100はBluetooth（登録商標）受信機180を含んでよい。システム100は、Bluetooth（登録商標）受信機180を使用したBluetooth（登録商標）信号を監視してデバイスの屋内/屋外状態を判定してよい。いくつかの例では、システム100は、Bluetooth（登録商標）スキャンを使用して近位デバイスのデバイスクラスを判定してよい。たとえば、固定デバイス(たとえば、デスクトップコンピュータ、プリンタ)の存在を特定すると、ユーザが屋内にいることがわかる。代替として、車両のBluetooth（登録商標）にリンクすると、デバイスが屋外にあることがわかる。
【００３７】
さらに、いくつかの実施形態によれば、図1に示すシステム100はセルラー受信機190を含んでよい。システム100は、セルラー信号(たとえば、GSM（登録商標）、UMTS、ロングタームエボリューション(LTE)、符号分割多元接続(CDMA))を監視してデバイスの屋内/屋外状態を判定してよい。いくつかの例では、RSSI測定値、到着時間(TOA)測定値、到着の時間差(TDOA)測定値、到着の角度(AOA)測定値、往復時間(RTT)測定値、および/またはその他の測定値(たとえば、パイロットEc/No)が、デバイスが屋内にあるかそれとも屋外にあるかの表示になり得る。たとえば、ユーザが(たとえば、10km/hを超える)高速で移動していることを測定値が示す場合、システムは、ユーザが屋外にいると推定してよい。別の例では、良好なセルラーカバレージを有する領域において信号強度が弱い(たとえば、RSSI測定値が低い)とき、システム100は、ユーザが建物の内部にいると仮定してよい。
【００３８】
いくつかの実施形態では、図1に示すシステム100は、カメラ195を使用してデバイスの屋内/屋外状態を判定してよい。システム100は、デバイス上で利用可能な任意のカメラ195(たとえば、前部カメラ、後部カメラ)を利用してよい。たとえば、図3に示すように、カメラ195による画像キャプチャの色分析によって、存在する光の種類(たとえば、日光、蛍光)を示すことができる。したがって、存在する光の種類を使用して、システム100は、デバイスが屋内にあるかそれとも屋外にあるかを正確に判定することができる。いくつかの例では、カメラ195からのデータに基づく屋内/屋外状態判定は非常に正確であり、不明235の状態結果はない。
【００３９】
しかし、システム100がカメラを使用して画像を取得し、画像に基づく屋内/屋外判定を連続的にまたは長期間にわたって実行すると極めて多くの電力が消費されることがある。したがって、システム100は、カメラの使用が不要と見なされるときはカメラの使用をゲートするための機構を有する。いくつかの実施形態によれば、ALS120は、デバイスが隠れていないことを確認し(たとえば、ステップ260)、加速度計110は、カメラが使用される前に十分な移動が生じたことを確認する(たとえば、ステップ270)。
【００４０】
図3に示すように、光の色は、デバイスが屋内にあるかそれとも屋外にあるかを示すことができる。カメラ195を使用してピクチャを取得することによって光のスペクトルをキャプチャしてよい。光の色は、光の赤色、緑色、および青色(RGB)成分の相対強度を使用することによって判定されてよい。すべての画素にわたって平均化されたRGB強度を算出することによって、光の色を評価してよい。図3は、様々な光源について波長に対する光強度の変化を示す。したがって、いくつかの例では、カメラ195が光のスペクトルをキャプチャすると、システム100は、たとえば、図3に示す比較チャートに基づいて光の種類(たとえば、蛍光、ハロゲン、白熱、太陽)を判定してよい。
【００４１】
さらに、図3は、光の色のスペクトルを光の種類にマップすることができ、そのマップを使用して光が屋内型の光であるかそれとも屋外型の光であるかを判定できることを示す。図3では、RGB成分同士を組み合わせて、全体的な波長を比較している。別の実施形態によれば、各RGB成分の相対強度(たとえば、赤色対緑色、赤色対青色の相対強度)に基づいてクラシファイアを求めてよい。クラシファイアは複数のデータサンプル(たとえば、様々な屋内環境、様々な屋外環境)に基づいてよい。データサンプルを使用してクラシファイアをトレーニングして色スペクトルマップに基づいて屋内環境または屋外環境を区別してよい。
【００４２】
カメラ画像から抽出された他の特徴を使用してデバイスが屋内にあるかそれとも屋外にあるかを判定してもよい。たとえば、画像テクスチャが有用であり、特定のテクスチャが屋内環境を示し、他のテクスチャが屋外環境を示してもよい。テクスチャ特徴は、離散コサイン変換(DCT)係数を算出することによって抽出されてよい。画像内に特定の物体が存在することが情報であってもよい。たとえば、画像内の空または草を特定すると、デバイスが屋外にある可能性が高いことがわかる。エッジ検出が有用であることもあり、カメラ画像内の多数のエッジが屋内環境を示す。
【００４３】
システムアーキテクチャ
図2は、いくつかの実施形態による屋内/屋外判定のための低電力常時接続アーキテクチャ200を示す図である。図2では、図1における高電力センサおよび低電力センサを使用してシステム100についての屋内/屋外判定を下すことができる。
【００４４】
高レベルでは、アーキテクチャ200は、屋内/屋外状態の効率的な低電力常時接続判定に寄与するいくつかの特徴を備える。
【００４５】
第1に、アーキテクチャ200は、屋内対屋外ステータスに関する現在の状態を維持し、周期的にウェークアップのための呼を発行して状態を更新するように実現されてよい。たとえば、あり得る状態には屋内240、屋外245、または不明235を含めてよい。いくつかの例では、図2の一次分岐に示すように、アーキテクチャ200は、高電力センサ150を周期的にウェークアップして測定値を取得しそれに応じて状態を更新するように設計されてよい。いくつかの他の例では、図2の二次分岐に示すように、アーキテクチャは常時接続低電力センサ105を使用して状態が変化したかどうかを瞬時に判定してよい。
【００４６】
第2に、アーキテクチャ200は、常時接続運動状態クラシファイアによってタイマが最後にウェークアップして以来十分な移動が検出されているか否かに基づいて状態の更新をゲートしてよい。たとえば、システム100は、常時接続運動クラシファイア用に加速度計110を使用してよい。いくつかの例では、運動クラシファイアは常時接続されてよく、低電力プロセッサ上でバックグラウンドにおいて実行されてよい。運動クラシファイアは、デバイスが十分な距離にわたって移動したかどうかまたはデバイスが固定されているかどうかをシステム100に対して示してよい。したがって、運動クラシファイアを使用して任意のさらなる処理をゲートしてよい。たとえば、システムが最後にウェークアップして以来デバイスが十分に移動していないと運動クラシファイアが判定したときは、デバイスの屋内/屋外状態が変化した可能性は低いのであらゆる追加の処理が無駄になる。
【００４７】
第3に、ALS120を使用して高電力センサ150をさらにゲートしてよい。いくつかの例では、ALS120は、ALS120によって何らかの光が観測されたかどうかに基づいてカメラ195の作動をゲートしてよい。たとえば、ALS120が非常に小さい読取値(たとえば、低_しきい値よりも小さい読取値)を示す場合、デバイスが隠れており(たとえば、ユーザのポケットにあり)、カメラを使用して屋内/屋外状態を判定することは無駄になると仮定される。
【００４８】
第4に、システム100は、高電力センサ150の作動またはユーザの地理的位置に関する時刻に基づくALS120の検査をゲートしてよい。たとえば、ユーザの現在の地理的位置において現在夜間であると判定された場合、あらゆる追加のセンサ処理が無駄になる。
【００４９】
いくつかの実施形態によれば、図2に示すアーキテクチャは一次分岐および二次分岐を有してよい。いくつかの例では、一次分岐の目的は、主として移動が生じていないことに基づいて多くの電力を消費する処理を行う高電力センサ150をゲートすることである。いくつかの例では、二次分岐の目的は、カメラ195から判定される光の色に基づくがALS120および移動(たとえば、加速度計110)によってゲートされる迅速な屋内/屋外判定を下すことを試みることである。
【００５０】
一次分岐
一次分岐に関して、低電力センサ105は、高電力センサ150は必要ではないとシステム100が判定したときに、多くの電力を消費する高電力センサ150の処理をゲートし妨げてよい。
【００５１】
いくつかの実施形態によれば、システム100は、低電力センサ105を使用するプロセッサを有してよく、低電力センサ105から導出された情報に基づいて、システム100は他のプロセッサをウェークアップしてよい。常時接続低電力センサ105を使用することによって、屋内/屋外状態の常時接続判定が実現可能になる。
【００５２】
いくつかの例では、一次分岐における仮定は、システムがカメラに基づく判定を下すことができる場合(たとえば、カメラが隠れていないとき)、システムはすでに、二次分岐における前の時点で判定を下しているであろうということである。したがって、一次分岐では、カメラを使用せずにデバイスの屋内/屋外状態を判定することを試みる。システム100は、タイマを使用することによって、他の高電力センサ150を周期的にウェークアップしてデバイスの屋内/屋外状態を更新してよい。
【００５３】
アーキテクチャ200は、いくつかの実施形態によるシステムの実装形態を例示するものである。前述のように、図2の一次分岐は周期的であり、タイマ上で実行される。ステップ205において、タイマが満了すると、プロセスが開始される。
【００５４】
いくつかの実施形態によれば、タイマはデフォルト設定(たとえば、30秒)を有する設定可能なパラメータであってよい。ステップ205においてタイマが満了すると、システムはステップ210において、カメラ_フラグをOFFに設定してよい。システムは、カメラ_フラグが二次分岐においてONにされた場合、カメラ_フラグをOFFに設定することによって、一次分岐からのタイマを使用してカメラ_フラグをリセットすることができる。ステップ250において説明するように、カメラ_フラグは、すでに二次分岐においてカメラ画像が取得されている場合、システム100が不要なカメラ画像を取得するのを防止する。
【００５５】
いくつかの実施形態によれば、図3には示されていないステップ210の後の任意の検査では、タイマが最後に満了して以来任意の時点で、高しきい値(たとえば、500ルクス)よりも大きいALS値が観測されているかどうかが判定される。ALSが高しきい値よりも大きい場合、このことは、デバイスが屋外光にさらされたことを明確に示すことができ、したがって、状態は直ちに屋外に変更される。ALS値が高しきい値を超えていない場合、システム100は、ステップ215において十分な移動が検出されたかどうかを判定する。
【００５６】
ステップ215において、システム100は、主として移動が生じていないことに基づいて多くの電力を消費する処理をゲートしてよい。ステップ215は多数の異なる方法で実施されてよい。たとえば、運動検出器を使用して、ユーザの運動(たとえば、歩いていること、走っていること、座っていること、立っていること、デバイスをいじっていること、休んでいること、運転していること)を判定するわずかにより多くの電力を消費する運動状態クラシファイアをゲートしてよい。十分な量の運動(たとえば、歩行者、車両)が検出された場合、ユーザが位置を変更した可能性が高く、システムは、ステップ225におけるより多くの電力を消費するセンサスキャンおよび高電力センサ150を使用する処理を実行して現在の状態を再確立する必要がある。
【００５７】
ステップ215において、十分な移動が検出されていないと判定された場合、システム100はタイマ216をリセットし、プロセスが再開してステップ205に戻る。代替として、ステップ215において十分な移動が生じているとシステムが判定した場合、システム100はステップ225に進みセンサスキャンを実行する。
【００５８】
ステップ220、すなわち、任意のステップにおいて、システム100は、デバイスが運転されている車両の内部にあるかどうかを検出するための運転検出器を含んでよい。デバイスが運転中の車両の内部にあると判定された場合、屋内/屋外状態が屋外245に設定される確率が高くなる。たとえば、デバイスが10mphを超える速度で走行している場合、ユーザが歩いているのではなく車両の内部にいると仮定してよい。しかしながら、運転検出器は正確でないことがあり、したがって、ステップ230において、システムはすべてのセンサデータに基づいて屋内/屋外判定を下す。たとえば、車両が停止信号で停止している場合、システムは、車両が運転されていると判定することができない。代替として、実際はそうではないのに車両が運転されていると判定される場合がある(たとえば、電車の例)。したがって、正確な判定を下すために、運転検出器およびその他のセンサ出力に基づいてデバイスの屋内/屋外状態を推定するようにシステムを構成してよい。
【００５９】
一例では、最後にタイマが満了して以来ステップ220において十分な量の運転が検出されている場合、システム100は自動的に屋内/屋外状態を屋外245に設定しステップ230を飛ばしてよい。
【００６０】
ステップ225において、システムは、センサスキャンを実行し、センサからのすべての出力を利用して状態を判定する。前述のように、デバイスは隠れていると仮定されるので、一次分岐では、光読取値を取得せずに高電力センサスキャンを実行する。たとえば、システムは、カメラまたはALSを使用して光情報を取り込む必要はない。
【００６１】
たとえば、ステップ225において使用することのできる高電力センサは、限定はしないが、GPS受信機155、WLAN受信機160、時刻(たとえば、クロック130)、セルラー受信機190、オーディオ受信機170、およびBluetooth（登録商標）受信機180を含む。センサスキャンブロック(図2の1番上に示されている)は、本開示の高電力センサ150の節において概略的に説明した屋内/屋外状態判定に高電力センサ150および時刻を使用することからなる。
【００６２】
ステップ230において、システムは、ステップ225において様々なセンサからから取得された情報を収集して屋内/屋外状態判定を下す。たとえば、極めて多くのクラシファイア(たとえば、単純ベイズ、決定木、SVM)を使用して様々なセンサからの情報を融合させてよい。いくつかの例では、情報が不十分である場合または情報が曖昧であるとき、状態は不明235に設定される。したがって、ステップ230において判定が完了した後、推定によって屋内240状態、屋外245状態、または不明235状態のいずれかに分類することができる。
【００６３】
いくつかの実施形態によれば、様々なアルゴリズムを様々な高電力センサの組合せとともに使用して消費電力および精度の優先度に基づいて屋内/屋外状態を判定してよい。
【００６４】
さらに、ステップ230では運転検出器からの読取値を組み込む。たとえば、車両が運転されていると運転検出器が判定した場合、ステップ230における推定ではOUTDOOR状態により重い重みを加えてよい。したがって、屋内/屋外判定を下す際、車両が運転されていると仮定された場合に状態がOUTDOORに設定される確率が高くなる。
【００６５】
いくつかの実施形態によれば、前述の任意のステップを使用する場合、ALSを利用して屋外245状態を自動的に判定してよい。システム100は、ALSを使用して、ALS120が(たとえば、500ルクスを超える)大きい値を返した場合にデバイスが屋外245にあると直ちに判定してよい。たとえば、ALS120からの光強度のルクス値が500よりも大きい場合、システムは、デバイスが屋外245にあると仮定してよい。昼光の間、屋外環境のルクス値は500から20000までの範囲になることがある。屋内環境の光強度が500ルクスを超えることはないと仮定されてよい。したがって、システムは、特定の高しきい値(たとえば、500ルクス)よりも大きいときのALS読取値を屋外環境と屋内環境との明確な違いを表す値として使用してよい。したがって、デバイスが屋外にあり、隠れていない場合、高ルクス値によってデバイスが屋外にあることを容易に判定することができ、状態を屋外に設定してよい。
【００６６】
二次分岐
図2における二次分岐では、システム100は、デバイスが隠れていない(たとえば、ユーザのポケットから出されている)ときに屋内/屋外状態を判定してよい。この判定は、常時接続ALS120が周辺光レベルの変化を検出しカメラをトリガして画像をキャプチャすることに基づいてよい。カメラ195と比較して、ALSを動作させるのに使用する電力は少ない。たとえば、ALS120レベルが低しきい値を超えている場合、システム100は、少なくとも一部の光がデバイスによって検出されていると判定する。したがって、システムは、カメラ195を起動して画像をキャプチャし、画像を使用して光の色を判定してよい。
【００６７】
いくつかの実施形態によれば、二次分岐を機会主義的に探索してよい。たとえば、システム100は、二次分岐を使用して、カメラ195から判定される光の色に基づくがALS120および移動によってゲートされる迅速な屋内/屋外状態判定を下すことを試みる。
【００６８】
たとえば、ユーザが自分のポケットから瞬間的にデバイスを取り出した場合、非ゼロALS値によってカメラ195をトリガして画像をキャプチャしてよい。カメラによる光の色の判定では、たいていの場合、デバイスが屋内240にあるかそれとも屋外245にあるかについての最終的な判定を下すことができる。したがって、システム100は、カメラ画像を使用して屋内/屋外状態を判定してよい。
【００６９】
さらに、カメラ画像を使用すると、二次状態において不明235状態がなくなることがある。たとえば、システムは、カメラ画像から光強度を調べることができる。システム100は、光強度から、屋内の照明であるかそれとも屋外の照明であるかを判定し、屋内/屋外状態を判定してよい。したがって、システム100は、カメラ画像を使用して、スリープする前に画像の屋内/屋外状態を判定し更新してよい。さらに、ALS120は、デバイスがポケットの内部にあるときにデバイスがカメラによって多くの電力を消費する測定を行うのを妨げてよい。
【００７０】
一次分岐とは対照的に、二次分岐は、タイマが満了していないときでも高電力センサ(たとえば、カメラ195)を起動してよい。たとえば、二次分岐では、システム100は、ALS120読取値に基づいてカメラ195を起動して画像をキャプチャしてよい。一方、一次分岐では、判定は周期的であり、タイマに基づく。
【００７１】
さらに、いくつかの実施形態によれば、二次分岐は、一次分岐からのタイマ周期よりも早く満了する第2のクロックに結合されてよい。代替として、別の実施形態によれば、二次分岐は、プロセッサクロックと同じ速度であってよい第2のクロックに結合されてよい。
【００７２】
二次分岐は、ステップ250から始まり、システム100が検査を行って、最後のタイマ周期以来カメラ画像が取得されたかどうかを判定する。たとえば、カメラ_フラグは、最後のタイマ周期以来カメラ画像が取得されている場合、システム100が二次分岐を実行するのを妨げてよい。一次分岐からのタイマ周期が再び満了するまでシステム100を待機させることによって、システム100が複数の不要なカメラ画像を取得するのを妨げる。一次分岐におけるタイマクロック(たとえば、30秒)と比較して、二次分岐はプロセッサクロックと同じ速度で生じることができる。さらに、システム100には、カメラ195によって1タイマクロック内で複数の画像がキャプチャされるのを妨げるための機構が必要である。したがって、カメラ_フラグがONである場合、システム100はステップ205に戻る。したがって、カメラ_フラグがOFFである場合、システム100はステップ255に進む。
【００７３】
ステップ255において、システムは、クロック130を使用して現在の地理的位置についての現在時間に昼光が存在することを確認する。前述のように、システム100は、時刻を使用して、ユーザが特定の時刻(たとえば、夜の就寝時間)に屋内にいる可能性が高いと推定してよい。さらに、システム100は、非昼光時間の間、カメラ195の使用をゲートしてよい。たとえば、ユーザが特定の位置にいて昼光がない場合、光の画像をキャプチャしても屋内/屋外状態の判定の助けにならない。いくつかの実施形態によれば、システム100は、特定の位置についての昼光時間および非昼光時間を判定し、この情報を高電力センサのゲート機構として使用してよい。したがって、昼光時間である場合、システム100はステップ260に進む。したがって、昼光時間ではない場合、システム100はステップ205に戻る。
【００７４】
いくつかの例では、昼光ゲート機構は、ALS120の近くに存在する小型プロセッサであってよい。したがって、ALS値がしきい値を超えると、小型プロセッサが、昼光時間条件が満たされているかどうかも検査する。次いで、小型プロセッサは、検査を行い、カメラフラグ条件が満たされているかどうかを確認する。この実施形態では、小型プロセッサは、ALS120に結合されたサブシステムである。この例に示すように、これらのトリガイベントの順序を異なる順序で実施してよい。
【００７５】
ステップ260において、システムは、ALSを使用して、デバイスが隠れているかどうかを検査する。たとえば、システムは、現在のALS読取値が低しきい値(たとえば、低_しきい値=5ルクス)を超えており、デバイスが隠れていない（たとえば、ユーザのポケットの外にある）ことが示されているかどうかを検査する。
【００７６】
いくつかの例では、ユーザがステップ265においてデバイスを使用する際、デバイスが隠れていないと仮定されているのでシステムは周辺光センサを検査する必要がない。この例では、システムは、ステップ260においてALS試験を飛ばし、ステップ270に進む。代替として、ステップ265においてデバイスは使用されていないと判定された場合、システムは、ステップ260においてALS試験を行う。
【００７７】
代替として、ユーザは、デバイスの画面を作動させずにデバイスをポケットから取り出してよい。したがって、ステップ260において、システム100は、最後のタイマ満了以来の最大ALS値が低しきい値を超えているかどうかを検査する。低しきい値は、タイマ周期の間デバイスが何らかの光にさらされていたかどうかをシステムが判定するのを可能にするように設定されてよい。たとえば、5ルクスよりも低いあらゆる光強度は、デバイスが隠れていることを示すと解釈されるので、低しきい値は5ルクスであってよい。したがって、ステップ260は、デバイスが隠れているときにカメラが使用されるのを妨げるためのゲート機構であってよい。ステップ260においてデバイスは隠れているとシステムが判定した場合、プロセスは開始ステップ205に戻る。しかしながら、ステップ260においてデバイスは隠れていない場所にないとシステムが判定した場合、システムはステップ270へと続く。
【００７８】
ステップ260の後で、システム100は、ステップ270において十分な移動が検出されたかどうかを検査する。いくつかの例では、デバイスはデスク上に位置していてよい。この例では、ALS値は低_しきい値よりも大きいが、デバイスは移動しておらず、したがって、屋内/屋外状態は変化していない。そのような場合、システム100は、タイマが最後に満了して以来十分な移動が生じていることを検証し、より多くの電力を消費する計算を実行することを保証する。たとえば、システム100は、デバイスは移動していないと判定した場合、屋外屋内/屋外状態は変化していないと仮定してよい。
【００７９】
ステップ270は、システム100が顕著な移動を検出しなかった場合にシステムがカメラ画像を取得するのを妨げるための別のゲート機構である。たとえば、このゲート機構がないと、デバイスが移動しなかった場合であっても(たとえば、デバイスがデスク上に放置されている)、タイマが満了するたびに、カメラがピクチャをキャプチャする。ステップ270におけるゲート機構は、システムのリソースを節約するためにデバイスの移動が顕著な距離にわたるものでない場合にカメラが起動するのを妨げる。いくつかの実施形態によれば、顕著な移動が生じていないとき、プロセスはステップ205に戻る。代替として、顕著な移動が生じている場合、システムは、画像をキャプチャしてステップ275およびステップ280に進む。
【００８０】
ステップ275において、顕著な移動が生じていると判定された後、カメラ_フラグがONに設定される。二次分岐におけるクロックはタイマクロックよりも高速であるので、カメラ_フラグがONに設定され、システムが単一のタイマ周期の間に複数のカメラ画像を取得するのを妨げる。したがって、ステップ270においてカメラ_フラグがONに設定され、それによって、システム100が繰り返し二次分岐に入ることはなくなる。
【００８１】
ステップ270において十分な移動が検出された場合、システム100はステップ280においてカメラ画像をキャプチャしてよい。たとえば、システム100は、カメラ130に画像の色を受け取るように要求してよい。システム100は、画像の色から平均RGB強度を算出してよい。図3に示すように、平均RGB強度を使用して屋内状態または屋外状態を判定してよい。
【００８２】
たとえば、次いで、この3次元ベクトル(平均RGB強度)を使用して、デバイス上の光が自然光であるかそれとも人工の光であるかを判定する。この判定は、屋内/屋外状態をかなり正確にINDOOR240またはOUTDOOR245のいずれかに設定することができる。
【００８３】
ステップ280においてシステムが光の色を判定して屋内/屋外判定を下した場合、システム100は、ステップ285においてタイマをリセットしてよい。
【００８４】
要約すれば、二次分岐では、周辺光が低しきい値よりも高く(たとえば、ステップ260)、カメラ_フラグがOFFに設定され(たとえば、ステップ250)、ならびに/あるいはシステムが昼光時間であると判定した(たとえば、ステップ255)ときにはいつでもイベントトリガが生じてよい。次いで、イベントトリガは別のプロセッサをウェークアップする。たとえば、この他のプロセッサを使用して十分な移動が検出されたかどうかを判定してよい(たとえば、ステップ270)。十分な移動が検出された場合、システムはカメラを使用して(たとえば、ステップ275、ステップ280)デバイスの屋内/屋外状態を判定する。これらのイベントトリガは互いに独立していてよい。さらに、これらのイベントトリガの組合せおよび/または順序は様々な実施形態に応じて異なってよい。
【００８５】
たとえば、二次分岐では、システムは、カメラを運動ゲートおよび周辺光ゲートと一緒に使用することによって屋内/屋外状態を判定することを連続的に試みる。しかし、デバイスがタイマ周期(たとえば、30秒)よりも長時間にわたって隠れている場合、その時点で、一次分岐のタイマは満了し、一次分岐を開始させる。システムは、カメラに基づいて判定を下すことができないので、システムは、一次分岐を使用して屋内/屋外状態判定を下すことを試みる。
【００８６】
上記で説明した方法およびシステムアーキテクチャは例である。様々な実施形態では、様々なゲート機構またはセンサを適宜、省略、置換、または追加することができる。たとえば、代替構成では、説明した方法は、説明した順序とは異なる順序で実行されてもよく、かつ/または、様々なステージが加えられ、省略され、および/もしくは組み合わされてもよい。
【００８７】
屋内/屋外状態判定の例
図4は、いくつかの実施形態による、モバイルデバイスの屋内/屋外状態を判定するための例示的な方法を示す図である。図4に示される処理は、1つまたは複数のプロセッサおよび/または他のハードウェア構成要素によって実行できる、ソフトウェア(たとえば、コンピュータ可読命令、コード、プログラムなど)で実施することができる。加えて、または代替として、ソフトウェアは、非一時的なコンピュータ可読記憶媒体上に記憶することができる。
【００８８】
図4に示されているように、この方法は、ステップ405から開始されてよく、ステップ405では、システム100がモバイルデバイスの屋内/屋外状態を維持する。いくつかの実施形態では、屋内/屋外状態は、屋内状態および屋外状態を含む複数のあり得る状態から選択される。
【００８９】
ステップ410において、システム100は、低電力センサ105が屋内/屋外状態を判定できる場合には高電力センサ150をゲートオフしてよい。たとえば、ステップ220およびALS値が高_しきい値よりも大きい任意のステップでは、屋内/屋外状態を自動的に屋外245に設定してよい。代替として、ステップ255において、システムが真夜中であると判定した場合、システム100は、屋内/屋外状態を屋内240に設定してよい。
【００９０】
ステップ415において、システム100は、低電力センサ105が屋内/屋外状態を判定できない場合には高電力センサ150を使用して屋内/屋外状態を判定してよい。たとえば、ステップ225およびステップ230において、システム100は、高電力センサスキャンを実行して屋内/屋外状態を判定する。さらに、ステップ280では、システム100は、カメラを起動して画像をキャプチャして屋内/屋外を判定する。
【００９１】
ステップ420において、システム100は、低電力センサ105および/または高電力センサ150からの読取値に基づいて、デバイスの屋内/屋外状態を更新してよい。
【００９２】
常時接続モード用の高電力センサをゲートする例
図5は、いくつかの実施形態による、高電力センサをゲートすることによる低電力屋内/屋外判定のための常時接続方法を示す図である。
【００９３】
ステップ505において、システムは、屋内、屋外、または不明のいずれかである状態を維持してよい。さらに、いくつかの実施形態によれば、システムは、周期的にウェークアップのための呼を発行して状態を更新してよい。
【００９４】
ステップ510において、システムは、最後のウェークアップ以来、常時接続運動状態クラシファイアによって十分な移動が検出されているか否かに基づいて状態の更新をゲートしてよい(たとえば、図2のステップ215およびステップ270)。たとえば、最後のウェークアップ以来移動がほとんどまたはまったく検出されていない(たとえば、歩いていない、走っていない、運転していない)場合、ユーザの屋内/屋外状態が変化した可能性は低いので追加の処理は不要である。
【００９５】
ステップ515において、システムは、ALSによって何らかの光が観測されたかどうかに基づいてカメラの作動をゲートしてよい。たとえば、図2のステップ260において、ALSが非常に小さい読取値(たとえば、5ルクス未満)を示す場合、システムは、デバイスが隠れている(たとえば、ユーザのポケット、財布、バッグの中)と判定してよい。したがって、デバイスが隠れているときはカメラを使用して屋内/屋外を判定する必要はない。
【００９６】
ステップ520において、システムは、時刻に基づいてカメラを作動させることをゲートしてよい。たとえば、図2のステップ255において、ユーザの現在の地理的位置において現在夜間であると判定された場合、あらゆる追加のカメラ処理またはALS処理が無駄になることがある。
【００９７】
ステップ525において、システム100は、カメラ195を使用して画像をキャプチャしてよい。システムは、カメラ画像から得たRGB強度を平均化することによって、デバイスの屋内/屋外状態を判定してよい。本実施形態によれば、ステップ525は、ステップ510、ステップ515、およびステップ520においてカメラがトリガイベントからゲートされない場合にのみ生じる。したがって、システム100は、カメラをゲートすることによって、バッテリー電力を節約し、それによって常時接続モードが実現可能になる。
【００９８】
正しい屋内/屋外判定
システム100が低電力常時接続モードで動作してデバイスの屋内/屋外状態を判定することができるいくつかの方法を図4および図5において説明したが、次に、正確な屋内/屋外状態判定を下す必要があることを示すいくつかの例について説明する。
【００９９】
例示すると、中庭/居間の例において、従来の方法は、ユーザが実際には中庭にいるときに誤ってユーザが屋内にいると判定する可能性がある。たとえば、従来の方法は、WLAN受信機を使用して信号を監視しデバイスの屋内/屋外状態を判定することに基づいて屋内/屋外状態判定を下すことがある。従来の方法は、可視APの数および可視APのRSSIが、デバイスが屋内にあることを示すことができる。たとえば、システムは、多数のAPまたは強いRSSIを有するAPを見て、ユーザが屋内にいると判定することができる。さらに、ユーザが居間から中庭に歩くとき、または中庭から居間に歩くときに、GPS緯度/経度情報に基づく従来の方法では、屋内/屋外状態が変化したことを確認することができない。
【０１００】
従来の方法とは異なり、本開示に開示されたいくつかの実施形態によれば、システム100は、中庭/居間の例においてデバイスの屋内/屋外状態を正しく判定することができる。たとえば、ユーザが居間から中庭に歩くとき、または中庭から居間に歩くときに、加速度計110は、図2のステップ215またはステップ270において十分な移動が生じたことを検出することができる。次いで、システムは、高電力センサ150を使用して、屋内/屋外状態が変化したかどうかを判定してよい。いくつかの例では、カメラ195は、画像をキャプチャし、ステップ280においてRGB強度を平均化することによって屋内/屋外状態を正しく判定することができる。別の例では、システム100は、ステップ225においてセンサスキャンを実行し、ステップ230においてセンサデータを使用して屋内/屋外状態を正しく判定することができる。
【０１０１】
エレベータの例では、従来の方法は、実際にはユーザが建物の屋上にいるときに誤ってユーザが屋内にいると判定することがある。たとえば、従来の方法は、GPS受信機を使用することに基づいて屋内/屋外判定を下すことができる。従来の方法は、単にGPS位置情報を使用することにより、GPS位置情報およびマップ情報が、ユーザが建物の内部に位置することを示すことに起因して、誤ってユーザが屋内にいると判定することがある。
【０１０２】
従来の方法とは異なり、システム100は、エレベータの例においてデバイスの屋内/屋外状態を正しく判定することができる。たとえば、ユーザがエレベータを使用して屋上に昇り降りする際、加速度計110は、ステップ215またはステップ270において十分な移動が生じたことを検出することができる。次いで、システムは、高電力センサ150を使用して、屋内/屋外状態が変化したかどうかを判定してよい。いくつかの例では、カメラ195は、画像をキャプチャし、ステップ280を使用して屋内/屋外状態を正しく判定することができる。他の例では、システム100は、ステップ225においてセンサスキャンを実行し、ステップ230においてセンサデータを使用して屋内/屋外状態を正しく判定することができる。たとえば、システムは、セルラー受信機190を使用して高いセルラー信号強度を測定し、WLAN受信機160を使用して低いAP信号強度を測定して、ユーザが屋上および屋外245にいると判定することができる。
【０１０３】
電車の例では、従来の方法は、GPS受信機および/またはセルラー受信機からの速度読取値に基づいてユーザの屋内/屋外状態を誤って判定することがある。たとえば、従来の方法は、速度および/または位置の変化に基づいてユーザの位置が変化していると仮定することができる。したがって、従来のシステムは、デバイスの位置が常に変化しているときにはさらなる更新を明確にゲートすることができない。その結果、デバイスが屋内(たとえば、電車内)にあっても、従来のシステムは常に、高電力センサを使用して屋内/屋外状態判定を下し、それによって、デバイスのバッテリーを消耗させる可能性がある。
【０１０４】
この特定の電車の例は、この屋内/屋外状態は、システム100が異なるようにふるまったシナリオを提示することによって、運動が検出されたときに更新がゲートされる種類の位置状態とは見なされないことを示す。従来の方法とは異なり、システム100は、電車の例においてデバイスの屋内/屋外状態を正しく判定することができる。たとえば、ユーザが電車で移動している場合、システムは、運動分類部に基づいてユーザが電車に乗っていると判定し、屋内/屋外状態が変化していないときにさらなる更新をゲートすることができる。たとえば、運動分類部(たとえば、加速度計110)は、ステップ215またはステップ270において十分な移動が生じたことを検出することができる。次いで、システムは、運動分類部からの読取値に基づいてデバイスが電車内にあると判定することができる。その結果、屋内/屋外状態を更新する必要がないので、システムは、高電力センサ150をゲートしてバッテリー電力を節約することができる。他の例では、システム100は、ステップ225においてセンサスキャンを実行し、センサデータを運動分類部とともに使用して、システム100が電車内にいると判定することができる。たとえば、APが電車の走行中ずっと一定であることをWLAN受信機が判定することができるので、システム100は、ユーザが高速に移動しているにもかかわらず屋内にいると推定することができる。
【０１０５】
本開示で説明した方法、システム、およびデバイスは例である。様々な実施形態は、様々な手順または構成要素を、適宜、省略、置換、または追加することができる。たとえば、代替構成では、説明した方法は、説明した順序とは異なる順序で実行されてもよく、かつ/または、様々なステージが加えられ、省略され、および/もしくは組み合わされてもよい。また、いくつかの実施形態に関して説明する特徴が、様々な他の実施形態と組み合わされてもよい。実施形態の様々な態様および要素を同様に組み合わせることができる。また、技術は発展し、したがって、要素の多くは、本開示の範囲をそれらの特定の例に限定しない例である。
【０１０６】
1つまたは複数の態様によれば、図6に示されるようなコンピュータシステムは、本明細書で説明される特徴、方法、および/または方法ステップのいずれか、および/またはすべてを実施し、実行し、および/または遂行できるコンピューティングデバイスの一部として組み込むことができる。たとえば、コンピュータシステム600は、システム100の構成要素のうちのいくつか、またはラップトップコンピュータ、タブレットコンピュータ、モバイルデバイスなどの他の任意のコンピューティングデバイスの構成要素のいくつかを表すことができる。図6は、本明細書において説明するように様々な他の実施形態によって実現される方法を実行することができるコンピュータシステム600の一実施形態の概略図である。図6は、様々な構成要素を含む一般化された図を提供することをもっぱら意図しており、様々な構成要素のいずれか、および/またはすべてを、適宜、利用することができる。したがって、図6は、個別のシステム要素が、比較的分離方式でまたは比較的より一体方式で、どのように実装され得るかを広範囲に示している。
【０１０７】
コンピュータシステム600は、バス605を介して電気的に結合され得る(あるいはその他の様式で、適宜、通信し得る)ハードウェア要素を含むように示されている。ハードウェア要素は、限定することなく、1つもしくは複数の汎用プロセッサ、ならびに/または(デジタル信号処理チップ、および/もしくはグラフィックス加速プロセッサなど)1つもしくは複数の専用プロセッサを含む、1つまたは複数のプロセッサ610と、限定することなく、カメラ、マウス、および/またはキーボードなどを含むことができる、1つまたは複数の入力デバイス615と、限定することなく、ディスプレイユニット、および/またはプリンタなどを含むことができる、1つまたは複数の出力デバイス620とを含むことができる。システム100における低電力センサ105および高電力センサ150は入力デバイス615の例である。さらに、図2におけるステップ(たとえば、ステップ215、ステップ230、ステップ260、ステップ270、ステップ280)の処理が1つまたは複数のプロセッサ610によって実行されてよい。
【０１０８】
コンピュータシステム600は、1つもしくは複数の非一時的記憶デバイス625をさらに含むこと(および/またはそれらと通信すること)ができ、非一時的記憶デバイス625は、限定することなく、ローカルおよび/もしくはネットワークアクセス可能なストレージを備えることができ、かつ/または限定することなく、プログラム可能、フラッシュ更新可能などであり得る、ディスクドライブ、ドライブアレイ、光記憶デバイス、ランダムアクセスメモリ(「RAM」)および/もしくは読取り専用メモリ(「ROM」)などのソリッドステート記憶デバイスを含み得る。このような記憶デバイスは、様々なファイルシステム、データベース構造体などを限定することなく含む、任意の適切なデータストレージを実装するように構成されてよい。たとえば、カメラ_フラグ、低_しきい値、高_しきい値を記憶デバイス625に記憶してよい。
【０１０９】
コンピュータシステム600は、通信サブシステム630も含むことができ、通信サブシステム630は、限定することなく、モデム、ネットワークカード(ワイヤレスもしくはワイヤード)、赤外線通信デバイス、ならびに/または(Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備などの)ワイヤレス通信デバイスおよび/もしくはチップセットなどを含むことができる。たとえば、セルラー受信機190、WLAN受信機160、およびBluetooth（登録商標）受信機180は通信サブシステムの一部であってよい。
【０１１０】
通信サブシステム630は、ネットワーク(一例を挙げると、以下で説明するネットワークなど)、他のコンピュータシステム、および/または本明細書で説明した任意の他のデバイスとデータを交換することを可能にし得る。多くの実施形態では、コンピュータシステム600は、上で説明したRAMまたはROMデバイスを含み得る非一時的ワーキングメモリ635をさらに備えることになる。
【０１１１】
コンピュータシステム600は、本明細書で説明するように、オペレーティングシステム640、デバイスドライバ、実行可能ライブラリ、および/または様々な実施形態によって提供されるコンピュータプログラムを含み得、かつ/もしくは方法を実装し、かつ/もしくは他の実施形態によって実現されるシステムを構成するように設計され得る、1つもしくは複数のアプリケーションプログラム645などの他のコードを含む、作業メモリ635内に現在配置されているものとして図示されている、ソフトウェア要素をも含むことができる。単に例として、たとえば、図4および図5に関して説明した、上述の方法に関して説明した1つまたは複数の手順は、コンピュータ(および/または、コンピュータ内のプロセッサ)によって実行可能なコードおよび/または命令として実装することができ、次いで、ある態様では、そのようなコードおよび/または命令は、説明した方法による1つまたは複数の動作を実行するために、汎用コンピュータ(または他のデバイス)を構成および/または適合するために使用され得る。
【０１１２】
これらの命令および/またはコードのセットは、上で説明した記憶デバイス625などのコンピュータ可読記憶媒体上に記憶されてよい。場合によっては、記憶媒体は、コンピュータシステム600などのコンピュータシステム内に組み込まれることが可能である。他の実施形態では、ストレージ媒体が、命令/コードを記憶された汎用コンピュータをプログラム、構成、および/または適用するために使用され得るように、ストレージ媒体は、コンピュータシステムから分離され得(たとえば、コンパクトディスクなどの取外し可能媒体)、かつ/またはインストールパッケージ内に備えられ得る。これらの命令は、コンピュータシステム600で実行可能であり、かつ/または、(たとえば、様々な一般的に利用できるコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを使用して)コンピュータシステム600上にコンパイルおよび/またはインストールすると、実行可能コードの形態を取るソースコードおよび/またはインストール可能コード(installable code)の形態を取り得る、実行可能コードの形態を取り得る。
【０１１３】
大幅な変形が、特定の要件に従ってなされてよい。たとえば、カスタマイズされたハードウェアが使用されてもよく、および/または特定の要素が、ハードウェア、(アプレットなどのポータブルソフトウェアを含む)ソフトウェア、または両方で実装されてよい。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を使用することができる。
【０１１４】
いくつかの実施形態は、本開示における方法を実行するために、(コンピュータシステム600などの)コンピュータシステムを使用することができる。たとえば、説明した方法の手順のうちのいくつかまたはすべては、ワーキングメモリ635に収容されている、(オペレーティングシステム640、および/またはアプリケーションプログラム645などの他のコード内の中に組み込まれることがある)1つまたは複数の命令の1つまたは複数のシーケンスを実行しているプロセッサ610に応答して、コンピュータシステム600によって実行されてよい。そのような命令は、記憶デバイス625のうちの1つまたは複数などの別のコンピュータ可読媒体からワーキングメモリ635内に読み込まれてよい。単なる例として、ワーキングメモリ635内に含まれる命令のシーケンスを実行することで、プロセッサ610に、本明細書で説明した方法の1つまたは複数の手順、たとえば、図4および図5に関して説明した方法の1つまたは複数のステップを実行させることができる。
【０１１５】
本明細書で使用する「機械可読媒体」および「コンピュータ可読媒体」という用語は、特定の方式で機械を動作させるデータを供給することに関与する任意の媒体を指す。コンピュータシステム600を使用して実装される一実施形態では、様々なコンピュータ可読媒体が、実行のためにプロセッサ610に命令/コードを与えることに関与し、かつ/またはそのような命令/コード(たとえば、信号)を記憶および/または搬送するために使用されることがある。多くの実装形態では、コンピュータ可読媒体は、物理的および/または有形のストレージ媒体である。そのような媒体は、限定はしないが、不揮発性媒体、揮発性媒体、および伝送媒体を含む多くの形態を取り得る。不揮発性媒体には、たとえば、記憶デバイス625などの光ディスクおよび/または磁気ディスクが含まれる。揮発性媒体は、限定はしないが、ワーキングメモリ635などの動的メモリを含む。伝送媒体は、限定はしないが、バス605、ならびに通信サブシステム630(および/または通信サブシステム630が他のデバイスとの通信を提供する媒体)の様々な構成要素を備える線を含めて、同軸ケーブル、銅線、および光ファイバーを含む。したがって、伝送媒体はまた、(限定はしないが、無線波通信および赤外線データ通信中に生成されるような無線波、音波、および/または光波を含めて)波の形態を取り得る。
【０１１６】
物理的および/または有形なコンピュータ可読媒体の一般的な形態は、たとえば、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくは他の任意の磁気媒体、CD-ROM、他の任意の光媒体、パンチカード、紙テープ、孔のパターンを有する他の任意の物理的媒体、RAM、PROM、EPROM、FLASH-EPROM、他の任意のメモリチップもしくはカートリッジ、以下で説明されるような搬送波、またはコンピュータが命令および/もしくはコードを読み取ることができる他の任意の媒体を含む。
【０１１７】
様々な形態のコンピュータ可読媒体は、実行用にプロセッサ610に1つまたは複数の命令の1つまたは複数のシーケンスを搬送することに関与することができる。単に例として、命令は、最初に、リモートコンピュータの磁気ディスクおよび/または光ディスク上で搬送されてよい。リモートコンピュータは、そのダイナミックメモリ内に命令をロードし、コンピュータシステム600によって受信および/または実行されるべき送信媒体上の信号として命令を送信することができる。電磁信号、音響信号、光信号などの形態であることができるこれらの信号は、すべて、本発明の様々な実施形態における、命令がその上で符号化され得る搬送波の例である。
【０１１８】
通信サブシステム630(および/またはその構成要素)は、一般に信号を受信し、次いで、バス605は、信号(および/または、信号によって搬送されるデータ、命令など)をワーキングメモリ635に搬送することができ、プロセッサ610は、ワーキングメモリ635から命令を取り出し、実行する。ワーキングメモリ635によって受信された命令は、オプションで、プロセッサ610による実行の前または後のいずれかに、非一時的記憶デバイス625上に記憶され得る。
【０１１９】
実施形態の完全な理解を与えるために、説明に具体的な詳細が与えられている。しかしながら、実施形態は、これらの具体的な詳細なしに実践され得る。たとえば、実施形態が不明瞭になることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細を記載せずに示されている。この説明は、例示的な実施形態のみを提供し、本発明の範囲、適用可能性、または構成を限定しようとするものではない。むしろ、これらの実施形態の上述の説明は、本発明の実施形態を実装することを可能にする説明を当業者に提供することになる。本発明の趣旨および範囲から逸脱することなく、要素の機能および構成に様々な変更を行うことができる。
【０１２０】
また、いくつかの実施形態を、フロー図またはブロック図として示すプロセスとして説明した。各々は動作を逐次プロセスとして説明し得るが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並び替えられ得る。プロセスは、図に含まれていない追加のステップを有し得る。さらに、本方法の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、関連するタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体などのコンピュータ可読媒体に記憶され得る。プロセッサは関連するタスクを実行し得る。
【０１２１】
いくつかの実施形態について説明してきたが、様々な変更、代替構造、および均等物は、本開示の趣旨から逸脱することなく使用され得る。たとえば、いくつかの実施形態では、小型セル340以外のデバイスが、上述の構成要素および/または機能を含みならびに/あるいは場合によっては上述の構成要素および/または機能を実現してよく、したがって、本明細書で説明する1つまたは複数の実施形態を実現してよい。
【０１２２】
さらなる実施形態および/または代替実施形態では、上記の要素は単により大きいシステムの構成要素であってもよく、他のルールが本発明の適用に優先してもよく、または他の方法で本発明の適用を修正してもよい。また、上記の要素が考慮される前に、その間に、またはその後に、いくつかのステップが行われ得る。したがって、上記の説明は、本開示の範囲を制限しない。
【符号の説明】
【０１２３】
100  モバイルデバイスシステム
105  低電力センサ
110  加速度計
120  周辺光センサ
130  クロック
140  天候/温度センサ
150  高電力センサ
155  GPS受信機
160  WLAN受信機
170  オーディオ受信機
180  Bluetooth（登録商標）受信機
190  セルラー受信機
195  カメラ
200  低電力常時接続アーキテクチャ
216  タイマ
235  不明状態
240  屋内状態
245  屋外状態
600  コンピュータシステム
605  バス
610  プロセッサ
615  入力デバイス
625  非一時的記憶デバイス
630  通信サブシステム
635  ワーキングメモリ
640  オペレーティングシステム
645  アプリケーションプログラム
【図１】
0006266016.tif 000002
【図２】
0006266016.tif 000003
【図３】
0006266016.tif 000004
【図４】
0006266016.tif 000005
【図５】
0006266016.tif 000006
【図６】
0006266016.tif 000007