特許第6039072号(P6039072)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フェイスブック,インク.の特許一覧

特許6039072ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置
<>
  • 特許6039072-ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置 図000002
  • 特許6039072-ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置 図000003
  • 特許6039072-ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置 図000004
  • 特許6039072-ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置 図000005
  • 特許6039072-ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置 図000006
  • 特許6039072-ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置 図000007
  • 特許6039072-ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6039072
(24)【登録日】2016年11月11日
(45)【発行日】2016年12月7日
(54)【発明の名称】ユーザの意図および/または識別情報に基づくモバイルデバイス状態の調整のための方法、記憶媒体、及び装置
(51)【国際特許分類】
   H04M 1/67 20060101AFI20161128BHJP
【FI】
   H04M1/67
【請求項の数】23
【全頁数】25
(21)【出願番号】特願2015-523151(P2015-523151)
(86)(22)【出願日】2013年7月15日
(65)【公表番号】特表2015-528253(P2015-528253A)
(43)【公表日】2015年9月24日
(86)【国際出願番号】US2013050446
(87)【国際公開番号】WO2014014800
(87)【国際公開日】20140123
【審査請求日】2015年8月26日
(31)【優先権主張番号】13/554,838
(32)【優先日】2012年7月20日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】シリングス、ブノワ エム.
(72)【発明者】
【氏名】ガルシア、デイビッド ハリー
【審査官】 白川 瑞樹
(56)【参考文献】
【文献】 特開2011−182080(JP,A)
【文献】 特開2011−197719(JP,A)
【文献】 特表2004−535000(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F1/26−1/32
3/01
3/03−3/0489
H04M1/00
1/24−3/00
3/16−3/20
3/38−3/58
7/00−7/16
11/00−11/10
99/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のコンピューティングシステムによって、
前記1つまたは複数のコンピューティングシステムが第1の状態にある間、複数の第1のセンサからの第1の入力のセットを検出し、
第1のセンサ値アレイ内の複数のセンサ値の各々が前記第1の入力のセットのうちの1つに対応するものである、前記第1のセンサ値アレイを生成し、
前記第1のセンサ値アレイを、第1のニューラルネットワークによって生成された第1の関数に入力として給送し、
前記第1の関数に少なくとも部分的に基づいて、1つまたは複数の第1の出力値を計算し、
前記1つまたは複数の第1の出力値に少なくとも部分的に基づいて、第1の動作が発生したかどうかを判断し、
前記第1の動作が発生したという判断に応答して、
第2のセンサ入力のセットに関する1つまたは複数の第2のセンサをポーリングし、
複数のセンサ値からなる第2のセンサ値セットを含む第2のセンサ値アレイであって、前記第2のセンサ値セットの各センサ値が前記第2のセンサ入力のセットのうちの1つに対応するものである、前記第2のセンサ値セットを含む第2のセンサ値アレイを生成し、
前記第2のセンサ値アレイを、第2のニューラルネットワークによって生成された第2の関数に入力として給送し、
前記第2の関数に少なくとも部分的に基づいて、1つまたは複数の第2の出力値を計算し、
前記第2の関数によって戻された前記1つまたは複数の第2の出力値に少なくとも部分的に基づいて、前記第1の状態を終了すること
を備える方法。
【請求項2】
前記1つまたは複数の第1の出力値が低電力マイクロコントローラによって計算され、前記第1の動作が発生したという判断に応答して、前記マイクロコントローラが、前記1つまたは複数の第2の出力値を計算するために、プロセッサをスリープモードから起動させる、請求項1に記載の方法。
【請求項3】
前記複数の第1のセンサが複数のタッチセンサを備える、請求項1に記載の方法。
【請求項4】
前記タッチセンサが容量式である、請求項3に記載の方法。
【請求項5】
前記1つまたは複数の第2のセンサが、
加速度計、
光センサ、または
マルチタッチディスプレイ表面
を備える請求項1に記載の方法。
【請求項6】
前記第1の状態はロック状態である、請求項1に記載の方法。
【請求項7】
前記第1の動作は手に取る動作である、請求項1に記載の方法。
【請求項8】
前記第1の関数および前記第2の関数はサーバの前記第1のニューラルネットワーク及び前記第2のニューラルネットワークによって生成される、請求項1に記載の方法。
【請求項9】
1つまたは複数のコンピューティングシステム内の1つまたは複数の非一時的なコンピュータ可読記憶媒体であって、1つまたは複数のプロセッサによって実行されたときに、
前記1つまたは複数のコンピューティングシステムが第1の状態にある間、複数の第1のセンサからの第1の入力のセットを検出し、
第1のセンサ値アレイ内の複数のセンサ値の各々が前記第1の入力のセットのうちの1つに対応するものである、前記第1のセンサ値アレイを生成し、
前記第1のセンサ値アレイを、第1のニューラルネットワークによって生成された第1の関数に入力として給送し、
前記第1の関数に少なくとも部分的に基づいて、1つまたは複数の第1の出力値を計算し、
前記1つまたは複数の第1の出力値に少なくとも部分的に基づいて、第1の動作が発生したかどうかを判断し、
前記第1の動作が発生したという判断に応答して、
第2のセンサ入力のセットに関する1つまたは複数の第2のセンサをポーリングし、
複数のセンサ値からなる第2のセンサ値セットを含む第2のセンサ値アレイであって、前記第2のセンサ値セットの各センサ値が前記第2のセンサ入力のセットのうちの1つに対応するものである、前記第2のセンサ値セットを含む第2のセンサ値アレイを生成し、
前記第2のセンサ値アレイを、第2のニューラルネットワークによって生成された第2の関数に入力として給送し、
前記第2の関数に少なくとも部分的に基づいて、1つまたは複数の第2の出力値を計算し、
前記第2の関数によって戻された前記1つまたは複数の第2の出力値に少なくとも部分的に基づいて、前記第1の状態を終了する
ように動作可能なロジックを実施するものである、記憶媒体。
【請求項10】
前記1つまたは複数の第1の出力値が低電力マイクロコントローラによって計算され、前記第1の動作が発生したという判断に応答して、前記マイクロコントローラが、前記1つまたは複数の第2の出力値を計算するために、プロセッサをスリープモードから起動させる、
請求項に記載の記憶媒体。
【請求項11】
前記複数の第1のセンサが複数の容量式タッチセンサを備える、請求項に記載の記憶媒体。
【請求項12】
前記1つまたは複数の第2のセンサが、
加速度計、
光センサ、または
マルチタッチディスプレイ表面
を備える、請求項に記載の記憶媒体。
【請求項13】
前記第1の状態はロック状態である、請求項に記載の記憶媒体。
【請求項14】
前記第1の動作は手に取る動作である、請求項に記載の記憶媒体。
【請求項15】
前記第1の関数および前記第2の関数はサーバの前記第1のニューラルネットワーク及び前記第2のニューラルネットワークによって生成される、請求項9に記載の記憶媒体。
【請求項16】
プロセッサと、複数の第1のセンサと、1つまたは複数の第2のセンサと、前記プロセッサに接続されて前記プロセッサによって実行可能な指令を備えるメモリと、を備える装置であって、前記プロセッサが、前記指令を実行したときに、
前記装置が第1の状態にある間、複数の第1のセンサからの第1の入力のセットを検出し、
第1のセンサ値アレイ内の複数のセンサ値の各々が前記第1の入力のセットのうちの1つに対応するものである、前記第1のセンサ値アレイを生成し、
前記第1のセンサ値アレイを、第1のニューラルネットワークによって生成された第1の関数に入力として給送し、
前記第1の関数に少なくとも部分的に基づいて、1つまたは複数の第1の出力値を計算し、
前記1つまたは複数の第1の出力値に少なくとも部分的に基づいて、第1の動作が発生したかどうかを判断し、
前記第1の動作が発生したという判断に応答して、
第2のセンサ入力のセットに関する1つまたは複数の前記第2のセンサをポーリングし、
複数のセンサ値からなる第2のセンサ値セットを含む第2のセンサ値アレイであって、前記第2のセンサ値セットの各センサ値が前記第2のセンサ入力のセットのうちの1つに対応するものである、前記第2のセンサ値セットを含む第2のセンサ値アレイを生成し、
前記第2のセンサ値アレイを、第2のニューラルネットワークによって生成された第2の関数に入力として給送し、
前記第2の関数に少なくとも部分的に基づいて、1つまたは複数の第2の出力値を計算し、
前記第2の関数によって戻された前記1つまたは複数の第2の出力値に少なくとも部分的に基づいて、前記第1の状態を終了するように動作可能である
ことを特徴とする装置。
【請求項17】
低電力マイクロコントローラを更に備え、前記1つまたは複数の第1の出力値は前記低電力マイクロコントローラによって計算されたものであり、前記第1の動作が発生したという判断に応答して、前記マイクロコントローラが、前記1つまたは複数の第2の出力値を計算するために、前記プロセッサをスリープモードから起動させる、請求項16に記載の装置。
【請求項18】
前記複数の第1のセンサが複数のタッチセンサを備える、請求項16に記載の装置。
【請求項19】
前記複数のタッチセンサが容量式である、請求項16に記載の装置。
【請求項20】
前記1つまたは複数の第2のセンサが、
加速度計、
光センサ、または
マルチタッチディスプレイ表面
を備える請求項16に記載の装置。
【請求項21】
前記第1の状態はロック状態である、請求項16に記載の装置。
【請求項22】
前記第1の動作は手に取る動作である、請求項16に記載の装置。
【請求項23】
前記第1の関数および前記第2の関数はサーバの前記第1のニューラルネットワーク及び前記第2のニューラルネットワークによって生成される、請求項16に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、モバイル電子デバイスに関する。
【背景技術】
【0002】
スマートフォン、タブレット、ノートブックコンピュータなどのモバイル電子デバイスは、複数の動作状態を有することが可能である。例えば、モバイルデバイスがそのユーザによって使用されていない間、モバイルデバイスは、電力消費レベルを低減して、電池寿命を長持ちさせるために、電力節約状態、すなわち、スリープ状態であること(例えば、スクリーンを薄暗すること、もしくは暗くすること)が可能である。場合によっては、モバイルデバイスは、モバイルデバイスが意図しない動作または誤った動作を実行しないように、(例えば、モバイルデバイスのタッチスクリーンまたはキーパッドがロックされる)入力ロック状態であることも可能である。他の場合では、モバイルデバイスは、デバイスをロック解除して使用するために、ユーザが正確なパスワードまたは個人識別番号(PIN)を提供することが要求されるように、セキュリティロックであり得る。他方で、モバイルデバイスがそのユーザによって盛んに使用されている間、モバイルデバイスは、(例えば、全出力レベルで、スクリーンまたはキーパッドがロック解除されて、ユーザ入力を受け取る準備ができている)通常動作状態であり得る。
【図面の簡単な説明】
【0003】
図1】ある例示的なモバイル電子デバイスを示す図。
図2】ある例示的なモバイルデバイスの外観を示す図。
図3】1つまたは複数のモバイルデバイスからトレーニングデータを受信するための、ある例示的なネットワーク環境を示す図。
図4】トレーニングデータを取得および送信する、ある例示的な方法を示す図。
図5】ニューラルネットワークによって関数を生成する、ある例示的な方法を示す図。
図6】モバイルデバイスセンサによってモバイルデバイスの物理的状態を検出する、ある例示的な方法を示す図。
図7】ある例示的なコンピュータシステムを示す図。
【発明を実施するための形態】
【0004】
本開示は、次に、添付の図面に示される、それらの少数の実施形態を参照して詳細に説明される。以下の説明では、本開示の十分な理解をもたらすために、多数の特定の詳細が記載される。しかし、本開示は、これらの特定の詳細のうちのいくつかまたはすべてを伴わずに実践され得る。他の場合では、本開示を不必要にあいまいにしないために、よく知られている方法工程および/または構造は詳細に説明されていない。加えて、本開示は特定の実施形態に関して説明されるが、この説明は本開示を説明される実施形態に限定することが意図されないことを理解されたい。それと反対に、この説明は、添付の請求項によって定義される、本開示の趣旨内および範囲内に含まれ得る改変形態、修正形態、および均等物をカバーすることが意図される。
【0005】
スマートフォン、タブレット、またはノートブックなど、モバイル電子デバイスは、複数の動作状態を有することが可能である。例えば、モバイルデバイスがある期間(例えば、数秒)にわたってそのユーザによって使用されていないとき、モバイルデバイスは、電力節約状態に入ることができる。電力節約状態で、モバイルデバイスは、エネルギーを節約して、電池寿命を長持ちさせるために、低電力レベルで動作することができる。モバイルデバイスのスクリーンを薄暗くすること、または暗くすることができる。モバイルデバイスを電力節約状態から通常の電力状態にするために、ユーザはモバイルデバイスに動作を実行すること(例えば、モバイルデバイスの電力ボタンを押すこと)が必要な場合がある。場合によっては(例えば、モバイルデバイスが数秒にわたって電力節約状態にあった後)、モバイルデバイスは入力ロック状態に入ることも可能である。入力ロック状態で、モバイルデバイスの入力構成要素(例えば、キーパッドまたはタッチ感応スクリーン)はロックされて、意図しない動作を引き起こす誤った入力を防ぐことができる。モバイルデバイスのキーパッドまたはスクリーンをロック解除するために、ユーザはモバイルデバイスに別の動作を実行することが必要な場合がある。例えば、モバイルデバイスがキーパッドを有する場合、ユーザは、キーを押下することが必要な場合がある。モバイルデバイスがタッチ感応スクリーンを有する場合、ユーザは、制御部を押下して、デバイスの出力を上げて、スクリーン上でスワイプジェスチャーを行うことが必要な場合がある。加えて、モバイルデバイスは、セキュリティロック状態を有することが可能である。セキュリティロック状態で、モバイルデバイスは、パスワードもしくはPIN(個人識別番号)でロックされて、モバイルデバイスに対する未許可のアクセスまたはモバイルデバイスの未許可の使用を防ぐ。モバイルデバイスをロック解除するために、ユーザは、適切なパスワードまたはPINを入力することが必要な場合がある。モバイルデバイスがそのユーザによって盛んに使用されているとき、モバイルデバイスは(例えば、全出力レベルで動作し、ユーザ入力を受け取る準備ができている)通常動作であり得る。場合によっては、モバイルデバイスは、その音声出力がオンにされる動作状態、その音声出力がオフにされる動作状態、またはその音声出力が(例えば、大きい、小さい、振動など)特定のモードである動作状態であり得る。他の動作状態もやはり可能であり、本開示は任意の適用可能な動作状態を企図する。
【0006】
任意の所与の時点で、モバイルデバイスは、例えば、ユーザが現在そのモバイルデバイスを使用しているかどうか、ユーザの最後のモバイルデバイス使用から経過した時間量、または(例えば、携帯用ケース内、ユーザのポケットまたはハンドバッグの中など)モバイルデバイスの位置に応じて、これらの動作状態のうちのいずれか1つであり得る。
【0007】
例えば、ユーザが、しばらくの間自らのモバイルデバイス(例えば、Apple iPhone)を使用しておらず、モバイルデバイスがユーザのポケット内に格納されていたと仮定する。この場合、モバイルデバイスは、電池を節約するために電力節約状態であると同様に、誤った入力を防ぐために入力ロック状態である可能性が高い。加えて、モバイルデバイスは、モバイルデバイスに対する未許可のアクセスを防ぐためにセキュリティロック状態である可能性もある。さらに、ユーザが、このとき、自らのモバイルデバイスを使用することを望むと仮定する。ユーザは、(1)モバイルデバイスを自らのポケットから取り出し、(2)電源ボタンを押下して、モバイルデバイスを電力節約状態から解き、(3)タッチスクリーンをスワイプして、モバイルデバイスの入力構成要素をロック解除することが必要な場合がある。加えて、モバイルデバイスが同様にセキュリティロックされている場合、ユーザは、パスワードまたはPINを入力して、モバイルデバイスをロック解除することも必要である。少なくとも、ユーザは少数の動作を実行する必要があり、これは、モバイルデバイスを使用する準備が整うまでに数秒かかる場合がある。そのような一連の動作が1日に(例えば、自らのモバイルデバイスをある期間にわたって使用しない後で、ユーザがそのモバイルデバイスを使用する必要があるたびに)何度も実行される必要があることを考えると、これは不便になる可能性がある。
【0008】
したがって、特定の実施形態は、モバイル電子デバイスに関するユーザの意図に基づいて、モバイル電子デバイスの現在の状態を自動的に調整することができる。特定の実施形態では、モバイルデバイスなどのモバイル電子デバイスは、例えば、限定なく、ユーザが(例えば、1本または複数の指を使用して)モバイル電子デバイスの表面に触れたことを検出するための、(例えば、デバイスのディスプレイ、デバイスの背面、および/またはデバイスの1つもしくは複数の外側縁の上に配置された)タッチセンサ、モバイル電子デバイスが移動しているかどうか、およびその移動の速度を検出するための加速度計、モバイル電子デバイス付近の温度変化を測定するための温度計、別のオブジェクト(例えば、手、机、または他のオブジェクト)に対するモバイル電子デバイスの近接性を検出するための近接センサ、モバイル電子デバイスの周囲の周辺光を測定するための光センサ、モバイル電子デバイス付近のオブジェクトのデジタル画像を捕捉するための画像センサ(例えば、カメラ)、モバイル電子デバイスの(例えば、緯度および経緯の点で)位置を判断するための位置センサ(例えば、全地球測位システム(GPS))、近距離通信(NFC)センサ、Bluetoothセンサなど、様々なタイプのセンサを含み得る。本開示は、モバイル電子デバイスが任意の適用可能なタイプのセンサを含み得ることを企図する。これらのセンサは、所与の時点で、モバイル電子デバイスに関するユーザの意図を判断するために解析され得る、様々なタイプのセンサデータを提供することが可能である。
【0009】
図1は、ある例示的なモバイル電子デバイス100を示す。特定の実施形態では、モバイル電子デバイス100は、プロセッサ110と、メモリ120と、通信構成要素130(例えば、ワイヤレス通信のためのアンテナおよび通信インターフェース)と、(例えば、タッチセンサ、加速度計、温度計、近接センサ、光センサ、画像センサなど)様々なタイプのいくつかのセンサ150とを含み得る。特定の実施形態では、センサハブ140を、オプションで、モバイルデバイス100内に含めることが可能である。センサ150は、センサ150を制御して、センサ150用の電力を管理して、センサ入力を処理して、センサデータを集約して、ある種のセンサ機能を実行する低電力消費プロセッサであり得るセンサハブ140に接続され得る。加えて、特定の実施形態では、いくつかのタイプのセンサ150をコントローラ160に接続することが可能である。この場合、センサハブ140は、次に、センサ150に接続されるコントローラ160に接続され得る。あるいは、特定の実施形態では、センサ150を管理するために、センサハブ140の代わりにセンサモニタが存在し得る。
【0010】
特定の実施形態では、モバイル電子デバイス100(例えば、モバイルデバイス)は、その入力構成要素としてタッチスクリーンを有することが可能である。図2は、ある例示的なモバイルデバイス200の外観を示す。モバイルデバイス200は、6つの側面、すなわち、正面、背面、上面、底面、左側面、および右側面を有する。タッチセンサは、モバイルデバイス200の6つの側面のうちのいずれか任意の場所に配置され得る。例えば、図2では、タッチセンサ210Aを組み込んだタッチスクリーンがモバイルデバイス200の正面に配置されている。タッチスクリーンは、モバイルデバイス200用の入出力(IO)構成要素として機能し得る。加えて、タッチセンサ210Bおよび210Cは、モバイルデバイス200の左側面および右側面にそれぞれ配置される。タッチセンサ210Bおよび210Cは、ユーザの手がモバイルデバイス200の側面に触れるのを検出することができる。特定の実施形態では、タッチセンサ210A、210B、および210Cは、抵抗タッチセンサ、容量タッチセンサ、および/または誘導タッチセンサを使用して実装され得る。タッチセンサ210A、210B、および210Cの電極は、薄い固体材料片上または薄いワイヤメッシュ上に配列され得る。容量タッチセンサの場合、2つのタイプの電極、すなわち、送信電極および受信電極が存在し得る。これらの電極は、電気パルスを用いて送信電極を駆動して、ユーザのタッチの位置を検出するために、ユーザのタッチによって引き起こされた、受信電極からの容量の変化を測定するように設計されたマイクロチップであってよいコントローラ(例えば、図1に示されたコントローラ160)に接続され得る。
【0011】
モバイルデバイス200は、モバイル電子デバイス100の1例であり、実際には、デバイスは、任意の数の側面を有することが可能である。本開示は、任意の数の側面を有するデバイスを企図する。タッチセンサは、デバイスの任意の側面上に配置され得る。モバイルデバイスは、各デバイスに関して異なる位置に配列された複数のタッチセンサ210A〜Cを有することが可能である。
【0012】
特定の実施形態では、モバイルデバイス200は、その背面に配置された近接センサ220(例えば、赤外線LED(発光ダイオード))を有することが可能である。近接センサ220は、別のオブジェクトに対するその近接性、したがって、モバイルデバイス200の近接性を判断するためのセンサデータを供給することが可能であり得る。
【0013】
特定の実施形態では、正面に加えて、モバイルデバイスは、左側面上および右側面上にタッチセンサを有することが可能である。オプションで、モバイルデバイスは、背面、上面、または底面にタッチセンサを有することも可能である。したがって、ユーザの手がモバイルデバイスに触れて、モバイルデバイスをしっかりと手に取ると、タッチセンサは、ユーザの指または手のひらがモバイルデバイスに触れるのを検出することができる。タッチセンサデータを解析して、ユーザがモバイルデバイスのどこをいつ触れたかを判断することができる。ユーザがモバイルデバイスに触れるとき、それは、ユーザがモバイルデバイスを使用することを望む可能性があることの表示であり得る。特定の実施形態では、ユーザがモバイルデバイスに触れたことを検出するとすぐに、モバイルデバイスを電力節約状態から通常動作状態にすることができる。メインCPUを電力投入状態に遷移させることができ、モバイルデバイスのスクリーンをオンにして、明るくすることができ、モバイルデバイスの入力構成要素(例えば、正面のキーパッドまたはタッチスクリーン)を自動的にロック解除することができる。結果として、ユーザが使用するためにモバイルデバイスを自らのポケットから出すときには、モバイルデバイスは、ユーザ入力を受け取り、通常動作を開始する準備が整っている。
【0014】
特定の実施形態では、タッチセンサを左側面、右側面、上面、および/または底面に配置することは、ユーザがモバイルデバイスの両方の側面に触れているか(すなわち、ユーザがモバイルデバイスを手に取っているか)どうかを感知することを可能にし得る。したがって、タッチセンサは、モバイルデバイスに単に触れることに加えて、モバイルデバイスを手に取っていることを区別することができる。特定の実施形態では、ユーザがモバイルデバイスを手に取っていることを検出することができることは、ユーザの意図のより正確な、したがってより良好な表示をもたらすことができる。この意図を使用して、モバイルデバイスを電力節約状態から通常動作状態にすることができる。メインCPUを電力投入状態に遷移させることができ、モバイルデバイスのスクリーンをオンにして、明るくすることができ、モバイルデバイスの入力構成要素(例えば、正面のキーパッドまたはタッチスクリーン)を自動的にロック解除することができる。結果として、ユーザが使用するためにモバイルデバイスを自らのポケットから出すときには、モバイルデバイスは、ユーザ入力を受け取り、通常動作を開始する準備が整っている。それでもなお、上で説明したように、単一のタッチを使用して、ユーザの意図を推定することが可能である。
【0015】
特定の実施形態では、モバイルデバイスは、タッチセンサに加えて、またはその代わりに、加速度計を左側面上および右側面上に有することが可能である。時には、ユーザは、その時点でユーザがモバイルデバイスを使用する意図がないときですら、モバイルデバイスが格納されているポケットの中に自らの手を入れ、したがって、モバイルデバイスに触れる場合がある。モバイルデバイスが加速度計をやはり有する場合、加速度計が提供するセンサデータを使用して、ユーザがモバイルデバイスを使用する意図があるかどうかを推定することができる。モバイルデバイスがユーザのポケット内に格納されている場合、ユーザが移動するにつれて、モバイルデバイスは移動し得る。しかし、そのような移動は、通常、比較的遅い。他方で、ユーザがモバイルデバイスをしっかりと手に取って、使用するためにモバイルデバイスをポケットから取り出すとき、モバイルデバイスの移動速度に比較的突然の増加が存在し得る。モバイルデバイスの移動速度のこの変更は、加速度計が供給するセンサデータに基づいて検出され得る。特定の実施形態では、モバイルデバイスの移動の速度に著しい増加が存在することを検出するとすぐに、単独で、または、ユーザがモバイルデバイスに触れたことを検出することに加えて、モバイルデバイスを電力節約状態から通常動作状態にすること(例えば、モバイルデバイスのスクリーンをオンにすること)ができ、モバイルデバイスの入力構成要素を自動的にロック解除することができる。
【0016】
特定の実施形態では、モバイルデバイスは、タッチセンサ(例えば、モバイルデバイスの左側面上および右側面上のタッチセンサ)に加えて、またはその代わりに、ジャイロメータを有することが可能である。ジャイロスコープとしても知られているジャイロメータは、1つまたは複数の空間的次元に沿って向きを測定するためのデバイスである。特定の実施形態では、ジャイロメータを使用して、モバイルデバイスの向きを測定することができる。モバイルデバイスがユーザのポケット内に格納されているとき、モバイルデバイスは、大抵、1つの向きにとどまる可能性がある。しかし、ユーザがモバイルデバイスをしっかりと手に取って、使用するためにモバイルデバイスをポケットから取り出すとき、モバイルデバイスの向きに比較的突然の変化が存在し得る。モバイルデバイスの向きは、ジャイロメータによって検出および測定され得る。モバイルデバイスの向きが著しく変化した場合、それは、ユーザが自らのポケットからデバイスを取り出した可能性があるという別の表示であり得る。
【0017】
特定の実施形態では、モバイルデバイスは光センサを有することが可能である。モバイルデバイスがユーザのポケット内に格納されているとき、モバイルデバイスの周囲は比較的暗い。他方で、ユーザがモバイルデバイスを自らのポケットから取り出すとき、特に、日中の間、または明るい領域内で、モバイルデバイスの周囲は比較的明るい可能性がある。光センサが供給するセンサデータを解析して、モバイルデバイスの周囲の周辺光レベルの著しい変化がいつ発生するかを検出することができる。特定の実施形態では、モバイルデバイスの周囲に周辺光レベルの著しい増加が存在することを検出するとすぐに、単独で、またはユーザがモバイルデバイスに触れたことを検出すること、もしくはモバイルデバイスの移動の速度に著しい増加が存在することを検出することを含めて(しかし、これらに限定されない)他の特性を検出することに加えて、モバイルデバイスを電力節約状態から通常動作状態にすることができ、モバイルデバイスの入力構成要素を自動的にロック解除することができる。
【0018】
特定の実施形態では、モバイルデバイスは近接センサを有することが可能である。近接センサが供給するセンサデータを解析して、モバイルデバイスが、ユーザの手など、オブジェクトにいつ近接するかを検出することができる。例えば、図2に示すように、モバイルデバイス200は、その背面上に配置された赤外線LED220(すなわち、近接センサ)を有することが可能である。ユーザがそのようなモバイルデバイスを手に取っているとき、ユーザの手のひらは赤外線LED220をカバーし得る。結果として、赤外線LED220は、ユーザの手がモバイルデバイス200にいつ近接するかを検出することができる。特定の実施形態では、モバイルデバイスがユーザの手に近接していることを検出するとすぐに、単独で、または本明細書で説明される他のタイプのセンサ表示と組合せて、モバイルデバイスを電力節約状態から通常動作状態にすることができ、モバイルデバイスの入力構成要素を自動的にロック解除することができる。
【0019】
モバイルデバイスは、様々なタイプの任意の数のセンサを有することが可能であり、これらのセンサは、異なるタイプのセンサデータを供給することができる。個々のタイプのセンサデータの異なる組合せを一緒に使用して、モバイルデバイスに関するユーザの意図(例えば、ユーザがモバイルデバイスを自らのポケットから取り出して、それを使用することを意図しているかどうか)を検出および推定することができる。複数のタイプのセンサデータを組合せて使用することは、単一のタイプのセンサデータを使用するよりも、所与の時点で、モバイルデバイスに関するユーザの意図のより正確な、したがって、より良好な推定をもたらすことができる。それでもなお、単一のタイプのセンサデータ(例えば、タッチセンサデータ)を使用して、ユーザの意図を推定することが可能であり、多くの場合、これが望ましい。加えて、すべてのユーザは自らのモバイルデバイスを異なって手に取っている可能性があるため、手に取る動作に関するセンサ入力はユーザおよびデバイスを通して一貫しない可能性がある。ユーザがモバイルデバイスを手に取るときの特定のセンサ値に関して、すべてのユーザおよびデバイスを通したパターンを検出することは、数千人時を費やす可能性があり、したがって、このタスクは、特定の実施形態では、人工ニューラルネットワークによって実行されるのに適切な場合がある。
【0020】
図3は、クライアントモバイルデバイスからのトレーニングデータを利用する特定の実施形態に関する、ある例示的なネットワーク環境を示す。図3は、複数のモバイルデバイス200a〜200nを示す。モバイルデバイス200a〜nは、上で説明した任意のタイプのものであってよい。特定の実施形態では、モバイルデバイス200a〜nは、スマートフォンなど、特定のクラスのモバイルデバイスのものであってよい。特定の実施形態では、モバイルデバイス200a〜nは、特定のタイプまたはモデルのスマートフォンのものであってよい。しかし、特定の実施形態では、モバイルデバイス200a〜nの各々は、任意の製造業者またはモデルのものであってよい。
【0021】
特定の実施形態では、モバイルデバイス200a〜nの各々は、トレーニングデータ305を記録して、中央ニューラルネットワークサーバ301に送信するためのアプリケーションプログラムを含み得る。モバイルデバイス200a〜nが収集するトレーニングデータ305を使用して、1次ニューラルネットワーク302と2次ニューラルネットワーク303とをトレーニングすることができる。特定の実施形態では、任意の適切な数のニューラルネットワークを利用することができる。特定の実施形態では、1つのニューラルネットワークだけを使用することができる。本開示は、任意の数のニューラルネットワークが任意の数の出力または関数を生成することを企図する。
【0022】
モバイルデバイス200a〜nの各々の上に常駐するアプリケーションプログラムは、トレーニング段階の間、所定の期間内に特定の運動を実行するようにユーザに催促することができる。例えば、アプリケーションは、「あなたの電話を平面上に置いて、次の15秒以内に、通常行うように、使用するために取り上げてください」とユーザに催促することができる。ユーザが応じるとき、トレーニングアプリケーションは、特定の動作に関して様々なセンサ150からのセンサデータを記録することができ、値のアレイおよび状態値として、それらのセンサ値を送信することができる。例えば、トレーニングデータ305は、容量C0〜Cnとセンサ値S0〜Snとを有する1次元アレイを示す。特定の実施形態では、容量C0〜Cnはタッチセンサ210A〜Cによって生成される。特定の実施形態では、タッチセンサ210A〜Cは抵抗方式であってよく、トレーニングデータ305は、タッチセンサ210A〜Cによって測定されたインピーダンスを含む。トレーニングデータ305は状態も含む。例えば、トレーニングアプリケーションは、使用するために、テーブルから電話を手に取って、持ち上げることを表す第1の状態に「0」を割り当てることができる。別の例として、トレーニングアプリケーションは、使用するために電話をポケットから手に取ることを表す第2の状態に「1」を割り当てることができ、トレーニングアプリケーションは、ポケットまたはハンドバッグの中の電話を表す第3の状態に「2」を割り当てることができる。特定の実施形態では、トレーニングアプリケーションは、任意の適切な動作または移動を表す、任意の数の状態を有することが可能である。本開示は、任意の数の可能な状態を企図する。
【0023】
モバイルデバイス200a〜n上のトレーニングアプリケーションは、インターネット304を介して、トレーニングデータをニューラルネットワークサーバ301に送信する。ニューラルネットワークサーバ301は、1つまたは複数のニューラルネットワーク、この例では、1次ニューラルネットワーク302および2次ニューラルネットワーク303を維持する。ニューラルネットワーク302および303は、複数のモバイルデバイス200a〜nからトレーニングデータを受信して、機械学習アルゴリズムを使用して、1つまたは複数の状態と相関するセンサ値のパターンを認識することができる。特定の実施形態では、ニューラルネットワーク302および303は、リカレントニューラルネットワーク(recurrent neural network)であり得る。特定の実施形態では、ニューラルネットワークは、フィードフォーワードニューラルネットワーク(feedforward neural network)であり得る。特定の実施形態では、通時的逆伝播(BPTT:backpropagation through time)トレーニングが利用される。特定の実施形態では、逆伝播トレーニングが利用される。本開示は、任意の適切なニューラルネットワークと、ニューラルネットワーク302および303をトレーニングする任意に適切な方法とを使用することを企図する。
【0024】
1次ニューラルネットワーク302および2次ニューラルネットワーク303は、トレーニングデータ305内に含まれたセンサ値の一部だけを利用することができる。例えば、特定の実施形態では、1次ニューラルネットワーク302は、複数のモバイルデバイス200a〜nのうちの1つまたは複数のタッチセンサ210A〜Cからの容量値だけを入力として受信する。特定の実施形態では、1次ニューラルネットワーク302は、常に実行しているセンサから、または低電力センサからだけセンサ値を受信することができる。特定の実施形態では、2次ニューラルネットワーク303は、1次ニューラルネットワーク302のセンサセットとは異なるか、またはそのセンサセットと重複するセンサセットから入力を受信することができる。例えば、2次ニューラルネットワーク303は、スリープモードまたはロックモードの間に活性化されない、複数のモバイルデバイス200a〜nのうちの1つもしくは複数の加速度計、ジャイロメータ、光センサ、近接センサ、または別のセンサからセンサ値を受信することができる。
【0025】
1次ニューラルネットワーク302は、センサ値C0〜Cnのセットに関して実行されるか、またはそのセットと畳み込むことが可能な関数f0を出力する。特定の実施形態では、関数f0は、コントローラ160など、モバイルデバイス200内の低電力マイクロコントローラの処理機能に限定され得る。特定の実施形態では、関数f0は、メモリリソースまたはプロセッサリソースを節約することができる、左シフト、もしくは右シフトなど、一連の論理動作であってよい。数学演算を実装する任意の適切な方法を使用することが可能である。同様に、2次ニューラルネットワーク303は、センサ値S0〜Snのセットに関して実行されるか、またはそのセットと畳み込まれることが可能な関数f1を出力する。特定の実施形態では、関数f1は、より高い機能の浮動小数点演算装置または他の処理要素を必要とする関数f0よりも、計算的により著しく複雑な場合がある。特定の実施形態では、関数f1は、モバイルデバイス200のメインプロセッサ110によってのみ実行可能である。計算の後、ニューラルネットワークサーバ301は、インターネット304を介して、関数f0およびf1をモバイルデバイス200a〜nに送信することができる。
【0026】
特定の実施形態では、ニューラルネットワーク302および303は、所定の間隔で、関数f0および関数f1をそれぞれ計算する。特定の実施形態では、この間隔は、1週間であってよい。特定の実施形態では、トレーニングデータ305の量が所定のサンプル数を超えるとき、ニューラルネットワーク302および303は、関数f0およびf1を計算する。特定の実施形態では、ニューラルネットワーク302および303は、関数f0および関数f1を連続的に計算して、関数f0またはf1が、それぞれ、最近送信された関数値とは所定の量だけ異なる場合だけ、モバイルデバイス200a〜nのユーザに更新を送信する。本開示は、関数f0またはf1を計算して、モバイルデバイス200a〜nに送信するための任意の適切な間隔を企図する。
【0027】
ニューラルネットワーク302および303によって生成される関数f0ならびにf1は、受信されたトレーニングデータ305のセットの数に関する精度を改善する。特定の実施形態では、ニューラルネットワークサーバ301およびトレーニングアプリケーションは、ソーシャルネットワーキングシステムなど、アプリケーションまたはサービスのユーザからトレーニングデータを取得することができる。特定の実施形態では、ニューラルネットワークサーバ301は、モバイルデバイス200a〜n上に常駐するソーシャルネットワーキングアプリケーションを有するソーシャルネットワーキングシステムによってホストされ得る。
【0028】
図4は、特定の実施形態による、トレーニングデータを収集するための、ある例示的な方法を示す。工程400で、トレイナーアプリケーションは、所定の時間量内で1つまたは複数の状態によって表される動作を実行するようにユーザに催促する。前に議論したように、この動作は、電話をポケットから取り出すこと、電話を平面から手に取ること、または電話をポケットもしくはハンドバッグの中に残しておくことを含み得る。特定の実施形態では、トレーニングアプリケーションは、遷移状態を含めて、任意の数の状態を有することが可能である。例えば、トレーニングアプリケーションは、第1の状態として、モバイルデバイス200をポケットの中に入れて、第2の状態を表す、モバイルデバイス200をポケットから取り出して、データを収集することをユーザに要求することができる。特定の実施形態では、この催促は、可視であってよく、または可聴であってもよい。例えば、モバイルデバイス200を自らのポケット内に入れた後、モバイルデバイス200のセンサが「雑音」、すなわち、例えば、ポケットまたはバッグの中で使用されない間の移動によって生成されるデータの例を記録することができるように、ある数の歩数を歩くように可聴式にユーザに催促することができる。本開示は、任意の適切な数の状態、およびそれらの状態によって表される動作を実行するようにユーザに催促する任意の適切な手段を企図する。
【0029】
工程401で、トレーニングアプリケーションは、所定の存続期間内にセンサ値を記録する。特定の実施形態では、モバイルデバイス200は、すべての利用可能なセンサから記録する。特定の実施形態では、モバイルデバイス200は、利用可能なセンサのサブセットからだけ記録する。本開示は、モバイルデバイス200の複数のセンサからのセンサデータを捕捉する任意の適切な方法を企図する。特定の実施形態では、トレーニングアプリケーションは、異なるモデルのモバイルデバイス200a〜nに関する各タッチセンサ120A〜Cの位置を考慮に入れる。例えば、モバイルデバイス200aは、モバイルデバイス200bとは異なる位置内にタッチセンサを有することが可能である。特定の実施形態では、トレーニングアプリケーションは、センサ出力の各々がニューラルネットワーク302および303の正確な入力にマッピングされ得るように、自らの特定のモバイルデバイスの型式(make)およびモデルを入力するようにユーザに要求することができる。特定の実施形態では、トレーニングアプリケーションは、モバイルデバイス自体から、例えば、モバイルデバイスのファームウェアまたはBIOSからモバイルデバイスの型式およびモデルを読み取ることができる。
【0030】
工程402で、各モバイルデバイス200a〜200n内のトレーニングアプリケーションは、センサ値および状態をニューラルネットワークサーバ301に送信する。特定の実施形態では、各状態に関して工程400および401の方法が繰り返されて、特定の状態によって表される各動作からのすべてのトーニングデータが同時に集約および送信される。特定の実施形態では、方法は各状態に関して工程400〜402を繰り返し、トレーニングデータ305が捕捉されるとすぐに、トレーニングデータ305はニューラルネットワークサーバ301に送信される。特定の実施形態では、すべてのモバイルデバイス200a〜nがトレーニングに参加するとは限らないことになる。例えば、モバイルデバイス200nは、トレーニングデータ305をニューラルネットワークサーバ301に提供せずに、関数f0およびf1を受信することができる。より多くのデバイスがトレーニングデータ305を提出すればするほど、関数f0およびf1はより正確かつ頑強になる。特定の実施形態では、トレーニングは、モバイルデバイス200a〜nに要求され得る。特定の実施形態では、様々なデバイスが図4のトレーニングを周期的に実行することが必要とされる場合がある。本開示は、トレーニングデータ305を収集する任意の適切な方法を企図する。
【0031】
図5は、関数f0およびf1を生成するために、ニューラルネットワークサーバ301によって実行される、ある例示的な方法を示す。工程500で、ニューラルネットワークサーバ301は、様々なモバイルデバイス200a〜nからトレーニングデータ305を受信する。特定の実施形態では、受信されたトレーニングデータ305のセットの数が所定の閾値を超えるとき、ニューラルネットワークサーバ301は、関数f0およびf1を生成することができる。特定の実施形態では、ニューラルネットワークサーバ301は、関数f0およびf1を連続的に生成するが、生成された関数をモバイルデバイス200a〜nに周期的に送信することだけが可能である。本開示は、任意の適切なタイミングの関数生成、関数更新、および関数送信を企図する。
【0032】
工程501で、ニューラルネットワークサーバ301は、センサタイプに基づいてセンサ値を分別する。特定の実施形態では、1次ニューラルネットワーク302および2次ニューラルネットワーク303は、入力として、異なるセンサを利用することができる。例えば、1次ニューラルネットワーク302は、入力として、容量タッチセンサ120A〜Cからのセンサ値だけを受け入れることができる。したがって、容量値C0〜Cnおよび状態インジケータが1次ニューラルネットワーク302内に給送され得る。対照的に、2次ニューラルネットワーク302は、ジャイロメータ、加速度計、光センサなどからのセンサ値だけを受け入れることができる。したがって、センサ値S0〜Snおよび状態インジケータが2次ニューラルネットワーク303に供給され得る。特定の実施形態では、各ニューラルネットワークによって受け入れられるセンサ入力同士の間に著しい重複が存在し得る。例えば、2次ニューラルネットワーク303は、1つまたは複数のタッチセンサ120A〜Cからのセンサ値、ならびに、カメラ、光センサ、近接センサなど、他の高電力センサからのセンサ値の両方を受け入れることができる。本開示は、ニューラルネットワーク302および303に対する入力の任意の組合せを企図する。
【0033】
工程502aおよび502bで、特定のセンサ値がニューラルネットワーク302および303に送信される。特定の実施形態では、トレーニングデータ305内に含まれた状態値とともに、特定のセンサ値が送信される。したがって、1次ニューラルネットワーク302は、センサ入力の間、例えば、デバイスが手に取られていた、デバイスがテーブルの上に水平に置かれていた、またはデバイスがバッグもしくはポケット内にあったという、デバイスの状態とともに、タッチセンサ120A〜Cから容量C0〜Cnを受信することができる。同様に、2次ニューラルネットワーク303は、状態値とともに、センサ値S0〜Sn(および、特定の実施形態では、C0〜Cn)を受信することができる。
【0034】
工程503および504で、ニューラルネットワーク302および303は、関数f0およびf1をそれぞれ生成する。ニューラルネットワーク302および303は、任意のタイプのニューラルネットワークのものであり得る。特定の実施形態では、ニューラルネットワーク302および303は、リカレントニューラルネットワークであり得る。特定の実施形態では、ニューラルネットワーク302および303は、Hopfieldリカレントニューラルネットワーク、Elmanリカレントニューラルネットワーク、Jordanリカレントニューラルネットワーク、Echo状態リカレントニューラルネットワーク、長期短期メモリ(long short−term memory)リカレントニューラルネットワーク、双方向リカレントニューラルネットワーク、または連続時間リカレントニューラルネットワークであり得る。特定の実施形態では、ニューラルネットワーク302および303は、フィードフォーワードニューラルネットワークであり得る。特定の実施形態では、ニューラルネットワーク302および303は、適応型線形要素(ADALINE:adaptive linear elements)と多重適応型線形要素(MADALINE:multiple adaptive linear elements)とを利用することができる。本開示は、関数f0およびf1を生成するための、任意の適切なニューラルネットワーク302および303を企図する。特定の実施形態では、ニューラルネットワーク302は、ニューラルネットワーク303とは異なるタイプ、トレーニング方法、またはアーキテクチャのものであってよい。特定の実施形態では、ニューラルネットワーク302および303の計算の複雑性は、関数f0またはf1が実行されることになるプロセッサによって制限される。例えば、f0は、低電力マイクロコントローラ上で実行するために、計算的に単純になるように設計され得る。対照的に、関数f1は、プロセッサ110など、高電力メインプロセッサユニットによって実行するために、計算的により複雑またはプロセッサ集約的になるように設計され得る。
【0035】
工程505で、ニューラルネットワークサーバ301は、関数f0およびf1をクライアントデバイス200a〜200nに送信する。前に議論したように、ニューラルネットワークサーバ301は、関数f0およびf1を任意のモバイルデバイス200に送信することができる。特定の実施形態では、モバイルデバイス200は、トレーニングデータ305をニューラルネットワークサーバ301に送信することによって、ニューラルネットワークトレーニングに参加したことを必要とされない。特定の実施形態では、ニューラルネットワークサーバ301は、所定の間隔で関数f0およびf1を送信することができる。前に説明したように、関数f0またはf1が前に送信された関数とは所定の量異なるとき、関数f0またはf1が送信され得る。本開示は、任意の適切な送信方法または送信タイミングを企図する。
【0036】
図6は、センサデータを使用して、ロック状態を選択的に終了するために、モバイルデバイス200a〜nによって実行される、ある例示的な方法を示す。例えば、ユーザがデバイスを手動でロックした後、または長期的な不活性の後、工程が開始するとき、モバイルデバイス200はアイドルであるか、またはロックされている。
【0037】
工程601で、マイクロコントローラ、すなわち、センサコントローラ160は、その1次センサの入力を検出する。特定の実施形態では、1次センサは、1次ニューラルネットワーク302によって生成された関数f0によって利用されるセンサである。特定の実施形態では、1次センサは、タッチセンサ120A〜Cであり、アイドル状態の場合ですら、マイクロコントローラ、すなわち、センサコントローラ160によって連続的に監視される。
【0038】
工程602で、マイクロコントローラ、すなわちセンサコントローラ160は、入力値として、1次センサによって生成された値を有する関数f0を実行する。特定の実施形態では、1次センサのセンサ値は、アレイなど、データ構造の形で特定の順序で配列され得る。例えば、関数f0は、入力が、左側面容量タッチセンサ、背面容量タッチセンサ、右側面容量タッチセンサの順番に配列されることを要求する場合がある。特定の実施形態では、センサ値をベクトルとして表現することが可能である。特定の実施形態では、関数f0は、入力ベクトル内の値の各々によって乗算されることになる重みのセットであり得る。特定の実施形態では、関数f0は、センサ値の入力ベクトルと単に畳み込まれることが可能である。そのような実施形態では、計算的な効率性を保つために、一連のビットシフト、およびf0と入力ベクトルとの間の論理演算として畳み込み演算を実行することができ、関数f0が、アセンブリなど、低レベル言語で実行されるのを可能にする。
【0039】
関数f0は、入力ベクトルとの畳み込みの結果として、1つまたは複数の値を出力する。特定の実施形態では、単一の出力値だけが存在し得る。特定の実施形態では、「手に取る」、「テーブル」、または(例えば、デバイスがポケットもしくはバッグの中にあることを示す)「雑音」など、可能な出力状態の各々に関する出力値が存在し得る。特定の実施形態では、1つまたは複数の出力値は離散的であり得る。特定の実施形態では、1つまたは複数の出力値は連続的であり得、これは、モバイルデバイス200が1つまたは複数の状態である確率を表す。本開示は、関数f0からの任意の適切な出力値を企図する。
【0040】
工程603で、モバイルデバイス200は、関数f0の出力にアクセスして、メインプロセッサ110を起動させて関数f1に進むかどうかを判断する。そのような判断は、f0の出力値が、手に取る動作が起こる可能性が高いことを示すという判断に対応する。特定の実施形態では、この判断は、すべての出力値の平均に基づくことが可能である。特定の実施形態では、この判断は、単一の出力値、例えば、「手に取る」動作に対応する値が特定の閾値を超えるかどうかに基づくことが可能である。特定の実施形態では、この判断は、「雑音」状態に関連する値など、特定の出力値が所定の閾値未満であるかどうかに基づくことが可能である。本開示は、関数f0からの出力に基づく任意の適切な決定アルゴリズムを企図する。
【0041】
工程604で、工程603で手に取る動作が起こる可能性が高いという肯定的な判断時に、マイクロコントローラ、すなわち、センサプロセッサ160は、通知メッセージを送信して、モバイルデバイス200のメインプロセッサ110を起動させることができる。特定の実施形態では、この通知メッセージは、メインプロセッサ110を起動させるためのハードウェア割込みであり得る。特定の実施形態では、マイクロコントローラ、すなわち、センサプロセッサ160は、特に、メインプロセッサ110を起動させるように設計されたハードワイヤ回路を有することが可能である。本開示は、メインプロセッサ110を起動させる任意の適切な手段を企図する。
【0042】
工程605で、モバイルデバイス200は、関数f1によって使用される2次センサからセンサデータを取得する。特定の実施形態では、2次センサは加速度計を含み得る。例えば、2次ニューラルネットワーク303は、モバイルデバイス200がポケットから取り出されていること、またはテーブルから取り上げられていることを示す特定の加速度計パターンを認識するために、関数f1を生成した可能性がある。したがって、マイクロコントローラによる最初の起動の後、メインプロセッサ110は、加速度計からセンサ値を引き出すことができる。特定の実施形態では、2次センサは、ジャイロメータを含み得る。例えば、2次ニューラルネットワーク303は、モバイルデバイス200がポケットから取り出されていること、またはテーブルから取り上げられていることを信号伝達する1つもしくは複数の軸の周囲の回転を示す特定のジャイロメータセンサ値パターンを認識するために、関数f1を生成した可能性がある。特定の実施形態では、2次センサは、光センサを含み得る。特定の日中の環境で、暗いところから明るいこところへの遷移は、モバイルデバイス200がポケットから引き出されたことを信号伝達することができる。特定の実施形態では、2次センサは、センサ値の任意の組合せを含み得る。特定の実施形態では、2次センサは、モバイルデバイス200のカメラサブシステムからの値を含み得る。特定の実施形態では、2次センサは、システムクロックを含むことが可能であり、例えば、関数f1は、時刻に応じて、所与の入力のセットが手に取ることに対応する確率を調整することができる。本開示は、工程605で、任意の数のセンサまたはセンサの組合せからデータを取得することを企図する。
【0043】
工程606で、モバイルデバイス200は、メインプロセッサ110を介して、工程605で入力として取得された2次センサ値を使用して、関数f1を実行する。前に議論したように、2次センサ値は、アレイまたはベクトルデータ構造の形に配列され得る。特定の実施形態では、センサデータS0〜Snは、データ構造の形に特定の順次で配列され得る。特定の実施形態では、関数f1は、入力ベクトルを関数重みと畳み込むことによって実行可能である。本開示は、2次センサから取得された値を入力として使用して関数f1を実行する任意の適切な方法を企図する。
【0044】
工程607で、メインプロセッサ110は、関数f1の出力からモバイルデバイス200の物理的状態(すなわち、ユーザの意図)を判断する。前に議論したように、関数f1は、各々がモバイルデバイス200の特定の物理的状態に対応する、1つまたは複数の値を出力することができる。例えば、関数f1は、デバイスが手に取られた可能性があること、テーブルの上に水平に置かれている可能性があること、またはポケット内にあること(「雑音」)を信号伝達する値を出力することができる。特定の実施形態では、各値は、離散的であってよく、または連続的であってもよい。特定の実施形態では、この判断は、和、平均、加重平均、または所定の閾値を上回る値、もしくは所定の閾値未満の値の別の数学的組合せに基づくことが可能である。工程608および610で、モバイルデバイス200が「テーブル」状態または「雑音」状態にある場合、モバイルデバイスは、アイドル/ロック状態に戻って、メインプロセッサ110の電源を落とす。しかし、モバイルデバイス200が、ユーザがそのデバイスを使用することを意図すると判断した場合、モバイルデバイス200は、工程611で、ロック解除状態に自動的に遷移することができる。
【0045】
特定の実施形態では、モバイルデバイスを現在扱っているユーザの識別情報を検証することができる。モバイルデバイスを現在扱っているユーザがモバイルデバイスの真の所有者である場合、モバイルデバイスは自動的にロック解除することができる。他方で、モバイルデバイスを現在扱っているユーザの識別情報が満足に検証され得ない場合、ユーザは、モバイルデバイスをロック解除して使用するために、パスワードまたはPINを提供するように催促され、かつそれが必要とされ得る。
【0046】
ユーザの識別情報を検証するための様々な手段が存在し得る。特定の実施形態では、モバイルデバイスは、画像センサ(例えば、カメラ)を有することが可能である。ユーザがモバイルデバイスを自らの顔の前に持ってくると、カメラは、ユーザの顔を捕捉するために、そのレンズの前面でオブジェクトの捕捉されたデジタル画像を解析することができる。これらの画像は、ユーザの顔を位置特定して、モバイルデバイスの所有者の顔(例えば、モバイルデバイスに接続されたファイル上に記憶された顔)と比較するために、1つまたは複数の適切な顔認識アルゴリズムを使用して解析され得る。2つの顔の間に十分な量の類似(すなわち、整合)が存在する場合、モバイルデバイスを現在扱っているユーザをモバイルデバイスの実際の所有者として検証することができ、ユーザにパスワードまたはPINを明示的に提供することを要求せずに、モバイルデバイスをロック解除することができる。モバイルデバイスの所有者の顔を表す画像は、モバイルデバイス自体の上にまたはその他の場所に(例えば、モバイルデバイスにアクセス可能なサーバ上に)記憶可能である。
【0047】
特定の実施形態では、モバイルデバイスのユーザは、ソーシャルネットワーキングシステムのメンバーであり得る。ソーシャルネットワークは、一般に、友情、親族関係、共通の関心、金融取引、または信仰もしくは知識の関係など、1つもしくは複数のタイプの相互依存性あるいは関係によって結びついた、個人または組織などのエンティティで構成された社会構造である。さらに近年では、ソーシャルネットワークは、インターネットから利益を得ている。インターネット上には、ソーシャルネットワーキングウェブサイトの形でソーシャルネットワーキングシステムが存在する。そのようなソーシャルネットワーキングウェブサイトは、一般に、ウェブサイトユーザと呼ばれる、そのメンバーが様々な社会的活動を実行するのを可能にする。例えば、www.facebook.comでFacebook Inc.によって運営されたソーシャルネットワーキングウェブサイトは、そのユーザが、電子メール、インスタントメッセージ、またはブログ投稿を介してその友人たちと通信すること、社交行事(social event)を組織すること、写真を共有すること、その友人たちまたは興味あるイベントのニュースを受信すること、ゲームをすることなどを可能にする。
【0048】
ユーザは、ユーザに関連する情報(例えば、人口統計データ、社会的な関係者および活動、関心、趣味など)を含むソーシャルネットワーキングシステムにプロファイルを有することができる。特定の実施形態では、ユーザのプロファイル内に見出される情報を使用して、所与の時点でのモバイルデバイスに関するユーザの意図を判断すること、またはユーザの識別情報を推定することを助けることも可能である。例えば、ソーシャルネットワーキングシステムに記憶されたユーザのカレンダーに基づいて、ユーザがあるイベント(例えば、会議)に参加していると判断された場合、モバイルデバイスは、ある状態に遷移することが可能であり、この場合、スクリーンはオフにされて、入力構成要素がロックされる。別の例では、ソーシャルネットワーキングシステムで利用可能な情報に基づいて、ユーザが、所与の時点および場所でその社会的な関係者(例えば、友人)といると判断することができる。モバイルデバイスがその所有者に関して非典型的な場所にあるものの、同時に、所有者の家族または友人のうちの何人かもはやりそこにいる場合、これは、モバイルデバイスがその真の所有者とともにあることを示唆することができ、この場合、デバイスは、パスワードまたはPINを必要とせずに、ロック解除され得る。他方で、モバイルデバイスが非典型的な場所にあり、その所有者の社会的な関係者のうちのいずれもそこにいない場合、そのデバイスのユーザが実際にその真の所有者であることを確実にするために、デバイスをロック解除するためのパスワードまたはPINが必要とされる可能性がある。
【0049】
特定の実施形態では、モバイルデバイスの真の所有者は、設定を指定して、パスワードまたはPINを必要とせずにデバイスをロック解除するための条件を示すことが可能であり得る。例えば、所有者は、(例えば、NFC、音声認識または顔認識など、任意の適切な手段を使用して)何人かのその社会的関係者(例えば、友人または家族)がそのデバイスの近くに検出されたとき、パスワードもしくはPINを必要とせずに電話がロック解除可能であるか、またはセキュリティに関して低い閾値を有することが可能であることを指定することができ、逆もまた同様である。
【0050】
特定の実施形態では、ソーシャルネットワーキングシステムにおけるユーザの状態更新は、ユーザを認証するのに役立つ信号として使用され得る。例えば、ユーザの状態更新は、ユーザが実際に特定の場所にいることを示すことができ、ユーザの友人が近くにいることを検出するために使用可能であり、またはユーザはチェックインの際に友人によってタグ付され、これは、次に、ユーザが特定の場所にいることを示す。
【0051】
特定の実施形態では、モバイルデバイス内に含まれたセンサを使用して、ソーシャルネットワーキングシステムを介して提供された第三者アプリケーション(例えば、オンラインゲーム)を含めて、ソーシャルネットワーキングシステム内をナビゲートすることができる。
【0052】
特定の実施形態は、1つまたは複数のコンピュータシステム上で実装可能である。図7は、ある例示的なコンピュータシステム700を示す。特定の実施形態では、1つまたは複数のコンピュータシステム700は、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程を実行する。特定の実施形態では、1つまたは複数のコンピュータシステム700は、本明細書で説明または例示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム700上で実行しているソフトウェアは、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程を実行するか、あるいは本明細書で説明または例示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム700の1つまたは複数の部分を含む。
【0053】
本開示は、任意の適切な数のコンピュータシステム700を企図する。本開示は、任意の適切な物理形態をとるコンピュータシステム700を企図する。限定ではなく、ある例として、コンピュータシステム700は、埋め込み式コンピュータシステム、システムオンチップ(SOC)、(例えば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップコンピュータシステムまたはノートブックコンピュータシステム、インタラクティブキオスク(interactive kiosk)、メインフレーム、コンピュータシステムのメッシュ、モバイルデバイス、携帯情報端末(PDA)、サーバ、ツール、トイ、ウェアラブル品目(wearable item)、またはこれらのうちの2つ以上の組合せであり得る。必要に応じて、コンピュータシステム700は、単体でまたは分散されて、複数の場所にわたって、複数のマシンにわたって、あるいは、1つまたは複数のネットワーク内に1つもしくは複数のクラウド構成要素を含み得るクラウド内に常駐する、1つもしくは複数のコンピュータシステム700を含むことが可能である。必要に応じて、1つまたは複数のコンピュータシステム700は、実質的な空間的または時間的な限定なしに、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程を実行することが可能である。限定としてではなく、ある例として、1つまたは複数のコンピュータシステム700は、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程をリアルタイムで、あるいはバッチモードで実行することができる。1つまたは複数のコンピュータシステム700は、必要に応じて、異なる時点で、または異なる場所で、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程を実行することが可能である。
【0054】
特定の実施形態では、コンピュータシステム700は、プロセッサ702と、メモリ704と、ストレージ706と、入出力(I/O)インターフェース708と、通信インターフェース710と、バス712とを含む。本開示は特定の数の特定の構成要素を特定の配列で有する特定のコンピュータシステムを説明および例示するが、本開示は、任意の適切な数の任意の適切な構成要素を任意の適切な配列で有する任意の適切なコンピュータシステムを企図する。
【0055】
特定の実施形態では、プロセッサ702は、コンピュータプログラムを構成する命令など、命令を実行するためのハードウェアを含む。限定ではなく、ある例として、命令を実行するために、プロセッサ702は、内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706から命令を取り出して(すなわち、フェッチして)、それらを復号および実行し、次いで、1つもしくは複数の結果を内部レジスタ、内部キャッシュ、メモリ704、またはストレージ706に書き込むことができる。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレスのための1つもしくは複数の内部キャッシュを含み得る。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ702を企図する。限定ではなく、ある例として、プロセッサ702は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB:translation lookaside buffers)とを含み得る。命令キャッシュ内の命令は、メモリ704またはストレージ706の中の、命令の複製であり得、命令キャッシュは、プロセッサ702によるそれらの命令の取り出しを加速することができる。データキャッシュ内のデータは、プロセッサ702において実行する後続の命令によってアクセスする目的で、プロセッサ702において実行される前の命令の結果に関して動作するためにプロセッサ702において実行する命令のための、またはメモリ704もしくはストレージ706に書き込むための、メモリ704内もしくはストレージ706内のデータ、あるいは他の適切なデータの複製であり得る。データキャッシュは、プロセッサ702による読取りまたは書込み動作を加速することができる。TLBは、プロセッサ702に関する仮想アドレス変換を加速することができる。特定の実施形態では、プロセッサ702は、データ、命令、またはアドレスのための1つもしくは複数の内部レジスタを含み得る。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ702を企図する。必要に応じて、プロセッサ702は、1つもしくは複数の算術論理演算装置(ALU)を含むことが可能であり、マルチコアプロセッサであってよく、または1つもしくは複数のプロセッサ702を含むことが可能である。本開示は特定のプロセッサを説明および例示するが、本開示は任意の適切なプロセッサを企図する。
【0056】
特定の実施形態では、メモリ704は、プロセッサ702が実行するための命令、またはプロセッサ702が動作するためのデータを記憶するためのメインメモリを含む。限定ではなく、ある例として、コンピュータシステム700は、ストレージ706または(例えば、別のコンピュータシステム700など)別のソースからメモリ704に命令をロードすることができる。プロセッサ702は、次いで、メモリ704から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ702は、内部レジスタまたは内部キャッシュから命令を取り出して、それらを復号することができる。命令の実行の間またはその後、プロセッサ702は、(中間結果または最終結果であり得る)1つもしくは複数の結果を内部レジスタあるいは内部キャッシュに書き込むことができる。プロセッサ702は、次いで、それらの結果のうちの1つまたは複数をメモリ704に書き込むことができる。特定の実施形態では、プロセッサ702は、(ストレージ706または他の場所ではなく)1つもしくは複数の内部レジスタまたは内部キャッシュ内、あるいはメモリ704内の命令だけを実行して、(ストレージ706または他の場所ではなく)1つもしくは複数の内部レジスタまたは内部キャッシュ内あるいはメモリ704内のデータに関してだけ動作する。(各々がアドレスバスとデータバスとを含み得る)1つまたは複数のメモリバスは、プロセッサ702をメモリ704に結合することができる。バス712は、下で説明するように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)がプロセッサ702とメモリ704との間に常駐して、プロセッサ702が要求するメモリ704に対するアクセスを円滑にする。特定の実施形態では、メモリ704はランダムアクセスメモリ(RAM)を含む。このRAMは、必要に応じて、揮発性メモリであり得る。必要に応じて、このRAMは、ダイナミックRAM(DRAM)または静的RAM(SRAM)であり得る。さらに、必要に応じて、このRAMは、単一ポートRAMであってよく、または複数ポートRAMであってもよい。本開示は任意の適切なRAMを企図する。メモリ704は、必要に応じて、1つまたは複数のメモリ704を含み得る。本開示は特定のメモリを説明および例示するが、本開示は任意の適切なメモリを企図する。
【0057】
特定の実施形態では、ストレージ706は、データまたは命令のための大容量記憶装置を含む。限定ではなく、ある例として、ストレージ706は、HDD、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組合せを含み得る。ストレージ706は、必要に応じて、取外し可能媒体、または取外し不可能(すなわち、固定)媒体を含み得る。ストレージ706は、必要に応じて、コンピュータシステム700の内部であってよく、または外部であってもよい。特定の実施形態では、ストレージ706は、不揮発性メモリ、固体メモリである。特定の実施形態では、ストレージ706は、読出し専用メモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気的に変更可能なROM(EAROM:electrically alterable ROM)、もしくはフラッシュメモリ、またはこれらのうちの2つ以上の組合せであり得る。本開示は、任意の適切な物理形態をとる大容量記憶装置706を企図する。ストレージ706は、必要に応じて、プロセッサ702とストレージ706との間の通信を円滑にする、1つまたは複数の記憶制御装置を含み得る。必要に応じて、ストレージ706は、1つまたは複数のストレージ706を含み得る。本開示は特定のストレージを説明および例示するが、本開示は、任意の適切なストレージを企図する。
【0058】
特定の実施形態では、I/Oインターフェース708は、コンピュータシステム700と1つもしくは複数のI/Oデバイスとの間の通信のための1つもしくは複数のインターフェースを提供するハードウェア、ソフトウェア、またはそれらの両方を含む。コンピュータシステム700は、必要に応じて、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人物とコンピュータシステム700との間の通信を可能にし得る。限定ではなく、ある例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、静止カメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイス、またはこれらのうちの2つ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサを含み得る。本開示は、これらに関して任意の適切なI/Oデバイスおよび任意の適切なI/Oインターフェース708を企図する。必要に応じて、I/Oインターフェース708は、プロセッサ702がこれらのI/Oデバイスのうちの1つもしくは複数を駆動させるのを可能にする、1つもしくは複数のデバイスドライバまたはソフトウェアドライバを含み得る。I/Oインターフェース708は、必要に応じて、1つまたは複数のI/Oインターフェース708を含み得る。本開示は特定のI/Oインターフェースを説明および例示するが、本開示は任意の適切なI/Oインターフェースを企図する。
【0059】
特定の実施形態では、通信インターフェース710は、コンピュータシステム700と1つもしくは複数の他のコンピュータシステム700または1つもしくは複数のネットワークとの間の(例えば、パケットベースの通信など)通信のために1つもしくは複数のインターフェースを提供するハードウェア、ソフトウェア、あるいはそれらの両方を含む。限定ではなく、ある例として、通信インターフェース710は、Ethernet、もしくは他のワイヤーベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI−FIネットワークなど、ワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、そのために任意の適切なネットワークおよび任意の適切な通信インターフェース710を企図する。限定ではなく、ある例として、コンピュータシステム700は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つもしくは複数の1つもしくは複数の部分は、ワイヤードであってよく、またはワイヤレスであってもよい。ある例として、コンピュータシステム700は、(例えば、BLUETOOTH WPANなど)ワイヤレスPAN(WPAN)、WI−FIネットワーク、WI−MAXネットワーク、(例えば、広域移動通信システム(GSM)ネットワークなど)モバイルデバイスネットワーク、もしくは他の適切なワイヤレスネットワーク、またはこれらのうちの2つ以上の組合せと通信することができる。コンピュータシステム700は、必要に応じて、これらのネットワークのうちのいずれかに関する任意の適切な通信インターフェース710を含み得る。通信インターフェース710は、必要に応じて、1つまたは複数の通信インターフェース710を含み得る。本開示は特定の通信インターフェースを説明および例示するが、本開示は任意の適切な通信インターフェースを企図する。
【0060】
特定の実施形態では、バス712は、コンピュータシステム700の構成要素を互いに結合するハードウェア、ソフトウェア、またはそれら両方を含む。限定ではなく、ある例として、バス712は、アクセラレーテッドグラフィックスポート(AGP)もしくは他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マクロチャネルアーキテクチャ(MCA)バス、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCI−エクスプレス(PCI−X)バス、シリアルアドバンストテクノロジーアタッチメント(SATA:serial advanced technology attachment)バス、ビデオエレクトロニクススタンダードアソーシエーションローカル(VLB:Video Electronics Standards Association local)バス、もしくは別の適切なバス、またはこれらのうちの2つ以上の組合せを含み得る。バス712は、必要に応じて、1つまたは複数のバス712を含み得る。本開示は特定のバスを説明および例示するが、本開示は任意の適切なバスまたは相互接続を企図する。
【0061】
本明細書で、コンピュータ可読記憶媒体の参照は、1つまたは複数の非一時的な有形コンピュータ可読記憶媒体所有構造(possessing structure)を包含する。限定ではなく、ある例として、コンピュータ可読記憶媒体は、必要に応じて、半導体ベース集積回路もしくは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)もしくは特定用途向けIC(ASIC))、ハードディスク、HDD、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、固体ドライブ(SSD)、RAMドライブ、SECURE DIGITALカード、SECURE DIGITALドライブ、または別の適切なコンピュータ可読記憶媒体、あるいはこれらのうちの2つ以上の組合せを含み得る。本明細書においてコンピュータ可読記憶媒体を参照する場合、米国特許法第101条に基づく特許保護の資格を有さない媒体は除外される。本明細書においてコンピュータ可読記憶媒体を参照する場合、米国特許法第101条に基づく特許保護の資格を有さない(電気信号または電磁信号自体を伝搬するなど)の一時的形式の信号伝送は除外される。非一時的なコンピュータ可読記憶媒体は、揮発性であってよく、不揮発性であってよく、または必要に応じて揮発性と不揮発性の組合せであってよい。
【0062】
本開示は、任意の適切なストレージを実装する、1つまたは複数のコンピュータ可読記憶媒体を企図する。特定の実施形態では、必要に応じて、コンピュータ可読記憶媒体は、プロセッサ702の1つもしくは複数の部分(例えば、1つもしくは複数の内部レジスタまたはキャッシュ)、メモリ704の1つもしくは複数の部分、ストレージ706の1つもしくは複数の部分、あるいはそれらの組合せを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、RAMまたはROMを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、揮発性メモリまたは永続メモリを実装する。特定の実施形態では、1つまたは複数のコンピュータ可読記憶媒体はソフトウェアを実施する。本明細書で、ソフトウェアの参照は、必要に応じて、1つもしくは複数のアプリケーション、バイトコード、1つもしくは複数のコンピュータプログラム、1つもしくは複数の実行可能物、1つもしくは複数の命令、ロジック、マシンコード、1つもしくは複数のスクリプト、またはソースコードを包含することが可能であり、逆もまた同様である。特定の実施形態では、ソフトウェアは、1つまたは複数のアプリケーションプログラミングインターフェース(API)を含む。本開示は、任意の適切なプログラミング言語またはプログラミング言語の組合せで書き込まれるか、あるいは、表現された任意の適切なソフトウェアを企図する。特定の実施形態では、ソフトウェアは、ソースコードまたはオブジェクトコードとして表現される。特定の実施形態では、ソフトウェアは、例えば、C、Perl、またはそれらの適切な拡張など、高水準プログラミング言語で表現される。特定の実施形態では、ソフトウェアは、アセンブリ言語(すなわち、マシンコード)など、低水準プログラミング言語で表現される。特定の実施形態では、ソフトウェアは、JAVA、C、またはC++で表現される。特定の実施形態では、ソフトウェアは、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、または他の適切なマークアップ言語で表現される。
【0063】
本明細書で、別段に明記されているか、あるいは、文脈によって記述されていない限り、「または」は包括的であるが、排他的ではない。したがって、別段に明記されているか、あるいは、文脈によって記述されていない限り、本明細書で、「AまたはB」は、「A、B、またはこれらの両方」を意味する。さらに、別段に明記されているか、あるいは、文脈によって記述されていない限り、「および」は、ともに(joint)、および別々に(several)、の両方である。したがって、別段に明記されているか、あるいは、文脈によって記述されていない限り、本明細書で、「AおよびB」は「AおよびBをともに、または別々に」を意味する。
【0064】
本開示は、当業者が理解するであろう、本明細書の例示的な実施形態に対するすべての変更、置換、変種、改変、および修正を包含する。さらに、本開示は、特定の構成要素、要素、機能、動作、または工程を含むとして、本明細書でそれぞれの実施形態を説明および例示するが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のいずれかの場所で説明もしくは例示されたこれらの構成要素、要素、機能、動作、または工程のうちのいずれかの任意の組合せあるいは交換を含み得る。さらに、添付の請求項において、特定の機能を実行するように適合された、実行するように配列された、実行することが可能な、実行するように構成された、実行することができる、実行するように動作可能な、または実行するように動作する装置、もしくはシステム、あるいは装置またはシステムの構成要素の参照は、その装置、システム、または構成要素がそのように適合されるか、そのように配列されるか、そのように可能であるか、そのように構成されるか、そのようにできるか、そのように動作可能であるか、またはそのように動作する限り、その機能、またはその特定機能が活性化されるか、オンにされるか、またはロック解除にされるか、否かにかかわらず、その装置、システム、構成要素を包含する。
図2
図1
図3
図4
図5
図6
図7