(57)【特許請求の範囲】
【請求項１】
コンテクスト分類を管理するための方法であって、
前記コンテクスト分類の要求と、前記要求に関連付けされた粒度入力とを、分類部コントローラによって受け付けるステップであって、前記粒度入力が、コンテクスト分類出力が選択される利用可能な状態のサブセットを特定するとともに前記コンテクスト分類出力を選択するためにどのデータ特性がデータソースから収集されるかを判定するための、コンテクスト分類出力の粒度レベルを示し、利用可能な状態の前記サブセットが、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含み、前記判定されたデータ特性が、第1の粒度レベルより大きい第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ないデータ特性が分類に使用されるように、前記粒度入力に示された前記粒度レベルに基づいて判定された数のデータ特性を含む、ステップと、
前記コンテクスト分類のために、前記粒度入力に基づいて複数のコンフィギュレーションパラメータから1つのコンフィギュレーションパラメータを、コンテクスト分類部によって選択するステップであって、前記複数のコンフィギュレーションパラメータは、前記粒度入力に示された異なる粒度レベルについての異なる値を含む、ステップと、
前記コンテクスト分類についての前記選択されたコンフィギュレーションパラメータを使用して、前記データソースから収集された前記データ特性のデータを分類することで前記要求に応じて、前記コンテクスト分類出力の前記粒度レベルを示す前記粒度入力に従って、前記コンテクスト分類部によって前記コンテクスト分類を実行するステップと、
を含み、
高い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、低いリソース利用レベルに対応付けされる、方法。
【請求項２】
前記コンテクスト分類部から前記コンテクスト分類出力を、前記分類部コントローラによって取得するステップと、
前記コンテクスト分類出力を要求元のエンティティに、前記分類部コントローラによって送るステップと、
をさらに含む、請求項1に記載の方法。
【請求項３】
前記選択したコンフィギュレーションパラメータは、利用したセンサ特性の数、または前記コンテクスト分類部のデューティサイクルのうち少なくとも1つを含む、請求項1に記載の方法。
【請求項４】
前記粒度入力は、粒度設定の既定のセットから選択される、請求項1に記載の方法。
【請求項５】
コンテクスト分類について利用可能な出力のサブセットを、前記分類部コントローラによって特定するステップと、
前記コンテクスト分類について利用可能な出力のサブセットのそれぞれに、前記分類部コントローラによって粒度レベルを割り当てるステップと、
をさらに含む、請求項1に記載の方法。
【請求項６】
前記受け付けるステップは、コンテクスト分類について利用可能な出力のサブセットのいずれかを含む前記粒度入力を、前記分類部コントローラによって受け付けるステップを含み、
前記実行するステップは、前記粒度入力として受け付けた前記コンテクスト分類について利用可能な出力の前記サブセットの1つから前記コンテクスト分類出力を選択することで、前記コンテクスト分類部によって前記コンテクスト分類を実行するステップを含む、請求項5に記載の方法。
【請求項７】
前記コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、またはオーディオ状態分類を含む、請求項1に記載の方法。
【請求項８】
前記選択されたコンフィギュレーションパラメータは、前記高い粒度レベルに対するより前記低い粒度レベルに対して、より少ない数の分類モデルパラメータを含む、請求項1に記載の方法。
【請求項９】
前記分類モデルパラメータは、ガウシアンミクスチャーモデル用のミクスチャー成分、ニューラルネットワーク分類部用のサポートベクトル、または最近傍分類部用のデータポイントの少なくとも1つを含む、請求項8に記載の方法。
【請求項１０】
利用可能な状態の前記サブセットは、利用可能な状態の前記サブセットが、前記第1の粒度レベルより大きい前記第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ない状態を有するように、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含む、請求項1に記載の方法。
【請求項１１】
前記コンテクスト分類部は、ガウシアンミクスチャーモデルベースのモーション状態分類部であり、
前記粒度レベルが粗い粒度レベルに対応するとき、利用可能な状態の前記サブセットは、停止の状態、歩行モーションの状態、および車両モーションの状態を有する３つの状態を含み、前記データ特性は、特性ごとに1つのミクスチャー成分とともに、加速度計のノルムの偏差値および中間値を含み、
前記粒度レベルが緻密な粒度レベルに対応するとき、利用可能な状態の前記サブセットは、歩く状態、走る状態、座る状態、立つ状態、いらだつ状態、休む状態、および運転状態を有する７つの状態を含み、前記データ特性は、特性ごとに4つのミクスチャー成分とともに、加速度計のノルムの前記偏差値、前記中間値、ピッチおよび転がり、複数のメル周波数ケプストラム係数(MFCC)、エントロピースペクトル、および前記加速度計のノルムの中間値を有する、請求項1に記載の方法。
【請求項１２】
調節可能な粒度を有するコンテクスト分類を実行するための方法であって、
前記コンテクスト分類の要求と、前記要求に関連付けされた粒度入力とを、分類部コントローラによって受け付けるステップであって、前記粒度入力が、コンテクスト分類出力が選択される利用可能な状態のサブセットを特定するとともに前記コンテクスト分類出力を選択するためにどのデータ特性がデータソースから収集されるかを判定するための、コンテクスト分類出力の粒度レベルを示し、利用可能な状態の前記サブセットが、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含み、前記判定されたデータ特性が、第1の粒度レベルより大きい第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ないデータ特性が分類に使用されるように、前記粒度入力に示された前記粒度レベルに基づいて判定された数のデータ特性を含む、ステップと、
前記コンテクスト分類のために、前記粒度入力に基づいて複数のコンフィギュレーションパラメータから1つのコンフィギュレーションパラメータを、コンテクスト分類部によって選択するステップであって、前記複数のコンフィギュレーションパラメータは、前記粒度入力に示された異なる粒度レベルについての異なる値を含み、高い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、低いリソース利用レベルに対応付けされるステップと、
前記コンテクスト分類のために選択したコンフィギュレーションパラメータを使用して、前記データソースから収集した前記データ特性のデータを分類することで、前記コンテクスト分類出力の前記粒度レベルを示す前記粒度入力に従って前記コンテクスト分類を、前記コンテクスト分類部によって実行するステップと、
を含む、方法。
【請求項１３】
前記選択したコンフィギュレーションパラメータは、利用したセンサ特性の数、または分類頻度のうち少なくとも1つを含む、請求項12に記載の方法。
【請求項１４】
前記粒度入力は、粒度設定の既定のセットから選択される、請求項12に記載の方法。
【請求項１５】
前記コンテクスト分類のために前記コンフィギュレーションパラメータを前記選択するステップは、
分類部コンフィギュレーションパラメータのセットを、前記コンテクスト分類部によって取得するステップであって、前記分類部コンフィギュレーションパラメータのセットのそれぞれは、リソース利用レベルと、粒度設定の前記既定のセットのうち対応するものとの割り当てを示すステップと、
前記受け付けられた粒度入力に割り当てられた分類部コンフィギュレーションパラメータのセットをコンテクスト分類のためのコンフィギュレーションパラメータとして、前記コンテクスト分類部によって選択するステップと
を含む、請求項14に記載の方法。
【請求項１６】
コンテクスト分類について利用可能な出力のサブセットを、前記分類部コントローラによって特定するステップと、
前記コンテクスト分類について前記利用可能な出力のサブセットのそれぞれを、前記分類部コントローラによって分類部粒度コンフィギュレーションのそれぞれに割り当てるステップであって、前記分類部粒度コンフィギュレーションは、対応するリソース利用レベルを定義するステップと
をさらに含む、請求項12に記載の方法。
【請求項１７】
前記受け付けるステップは、前記コンテクスト分類について利用可能な出力のサブセットのいずれかを含む粒度入力を、前記分類部コントローラによって受け付けるステップを含み、
前記コンテクスト分類を実行するステップは、前記粒度入力として受け付けた前記コンテクスト分類について利用可能な出力のサブセットに割り当てられた分類部粒度コンフィギュレーションを用いて前記コンテクスト分類を、前記コンテクスト分類部によって実行するステップを含む、請求項16に記載の方法。
【請求項１８】
前記コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、またはオーディオ状態分類を含む、請求項12に記載の方法。
【請求項１９】
前記コンテクスト分類の出力をアプリケーションプログラミングインターフェース(API)に、前記コンテクスト分類部によって戻すステップをさらに含む、請求項12に記載の方法。
【請求項２０】
前記コンテクスト分類の要求は、要求元のアプリケーションに由来するものであり、
さらに、前記コンテクスト分類出力を要求元のアプリケーションに、前記分類部コントローラによって戻すステップを含む、請求項12に記載の方法。
【請求項２１】
調節可能な粒度を有するコンテクスト分類を実行するための装置であって、
メモリと、
前記メモリに通信可能に結合されたプロセッサとを具備し、
前記プロセッサは、
前記コンテクスト分類の要求と、前記要求に関連付けされた粒度入力とを受け付けるように構成された分類部コントローラであって、前記粒度入力が、コンテクスト分類出力が選択される利用可能な状態のサブセットを特定するとともに前記コンテクスト分類出力を選択するためにどのデータ特性がデータソースから収集されるかを判定するための、コンテクスト分類出力の粒度レベルを示し、利用可能な状態の前記サブセットが、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含み、前記判定されたデータ特性が、第1の粒度レベルより大きい第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ないデータ特性が分類に使用されるように、前記粒度入力に示された前記粒度レベルに基づいて判定された数のデータ特性を含む、分類部コントローラと、
前記分類部コントローラと通信可能に結合されたコンテクスト分類部であって、
前記分類部コントローラから前記要求および前記粒度入力を受け付け、
前記コンテクスト分類のために、前記粒度入力に基づいて複数のコンフィギュレーションパラメータから1つのコンフィギュレーションパラメータを選択し、前記複数のコンフィギュレーションパラメータは、前記粒度入力に示された異なる粒度レベルについての異なる値を含み、高い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、低いリソース利用レベルに対応付けされ、
前記コンテクスト分類のために選択したコンフィギュレーションパラメータを使用して、前記データソースから収集した前記データ特性のデータを分類することで、前記コンテクスト分類出力の前記粒度レベルを示す前記粒度入力に従って前記コンテクスト分類を実行し、
前記コンテクスト分類出力を出力する、ように構成されたコンテクスト分類部と、を備える、装置。
【請求項２２】
前記分類部コントローラは、さらに、前記コンテクスト分類部から前記コンテクスト分類出力を取得し、要求元のエンティティに前記コンテクスト分類出力を送るように構成されている、請求項21に記載の装置。
【請求項２３】
前記選択したコンフィギュレーションパラメータは、利用したセンサ特性の数または分類部のデューティサイクルのうち少なくとも1つを含む、請求項21に記載の装置。
【請求項２４】
前記粒度入力は、粒度設定の既定のセットから選択される、請求項21に記載の装置。
【請求項２５】
前記コンテクスト分類部は、さらに、
分類部コンフィギュレーションパラメータのセットを取得するように構成され、
分類部コンフィギュレーションパラメータのセットのそれぞれは、リソース利用レベルと粒度設定の前記既定のセットのうち対応するものとの割り当てを示し、
前記コンテクスト分類部は、さらに、受け付けた粒度入力に割り当てられた分類部コンフィギュレーションパラメータのセットをコンテクスト分類のために選択したコンフィギュレーションパラメータとして選択するように構成されている、請求項24に記載の装置。
【請求項２６】
前記粒度入力は、前記コンテクスト分類について利用可能な出力のサブセットを含む、請求項21に記載の装置。
【請求項２７】
前記コンテクスト分類部は、さらに、粒度入力として受け付けた前記コンテクスト分類について利用可能な出力のサブセットを分類部粒度コンフィギュレーションに割り当てるように構成され、
前記分類部粒度コンフィギュレーションは、対応するリソース利用レベルを定義する、請求項26に記載の装置。
【請求項２８】
前記コンテクスト分類部は、さらに、粒度入力として受け付けた利用可能な出力のサブセットから前記コンテクスト分類出力を選択することで前記コンテクスト分類を実行するように構成されている、請求項27に記載の装置。
【請求項２９】
前記コンテクスト分類部は、1つまたは複数のモーション状態分類部、ロケーション状態分類部、またはオーディオ状態分類部を含む、請求項21に記載の装置。
【請求項３０】
前記分類部コントローラは、アプリケーションプログラミングインターフェース(API)を含み、さらに、要求元のアプリケーションから前記コンテクスト分類の要求を受け付けるように構成されている、請求項21に記載の装置。
【請求項３１】
前記コンテクスト分類部は、さらに、前記コンテクスト分類出力をAPIまたは要求元のアプリケーションのうち少なくとも1つに提供するように構成されている、請求項30に記載の装置。
【請求項３２】
さらに、前記コンテクスト分類部に通信可能に結合された1つまたは複数のデータソースを備え、
前記コンテクスト分類部は、前記1つまたは複数のデータソースからサンプリングした前記データに基づいて前記コンテクスト分類を実行するように構成されている、請求項21に記載の装置。
【請求項３３】
前記1つまたは複数のデータソースは、オーディオセンサ、ロケーションセンサ、ネットワークセンサ、モーションセンサ、カレンダー、時計、デバイス利用統計のセット、または光センサのうち少なくとも1つを備える、請求項32に記載の装置。
【請求項３４】
コンテクスト分類を管理するための装置であって、
前記コンテクスト分類の要求と、前記要求に関連付けされた粒度入力とを受け付けるための手段であって、前記粒度入力が、コンテクスト分類出力が選択される利用可能な状態のサブセットを特定するとともに前記コンテクスト分類出力を選択するためにどのデータ特性がデータソースから収集されるかを判定するための、コンテクスト分類出力の粒度レベルを示し、利用可能な状態の前記サブセットが、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含み、前記判定されたデータ特性が、第1の粒度レベルより大きい第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ないデータ特性が分類に使用されるように、前記粒度入力に示された前記粒度レベルに基づいて判定された数のデータ特性を含む、手段と、
前記コンテクスト分類のために、前記粒度入力に基づいて複数のコンフィギュレーションパラメータから1つのコンフィギュレーションパラメータを選択するための手段であって、前記複数のコンフィギュレーションパラメータは、前記粒度入力に示された異なる粒度レベルについての異なる値を含む、手段と、
前記要求に応じて、前記コンテクスト分類のために選択したコンフィギュレーションパラメータを使用して、前記データソースから収集した前記データ特性のデータを分類することで、前記コンテクスト分類出力の前記粒度レベルを示す前記粒度入力に従って前記コンテクスト分類を実行するための手段と、
を備え、
高い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、低いリソース利用レベルに対応付けされる、装置。
【請求項３５】
前記選択したコンフィギュレーションパラメータは、利用したセンサ特性の数またはコンテクスト分類部のデューティサイクルのうち少なくとも1つを含む、請求項34に記載の装置。
【請求項３６】
前記粒度入力は、粒度設定の既定のセットから選択される、請求項34に記載の装置。
【請求項３７】
前記粒度入力は、前記コンテクスト分類について利用可能な出力のサブセットを含む、請求項34に記載の装置。
【請求項３８】
前記コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、またはオーディオ状態分類を含む、請求項34に記載の装置。
【請求項３９】
調節可能な粒度を有するコンテクスト分類を実行するための装置であって、
前記コンテクスト分類の要求と、前記要求に関連付けされた粒度入力とを受け付けるための手段であって、前記粒度入力が、コンテクスト分類出力が選択される利用可能な状態のサブセットを特定するとともに前記コンテクスト分類出力を選択するためにどのデータ特性がデータソースから収集されるかを判定するための、コンテクスト分類出力の粒度レベルを示し、利用可能な状態の前記サブセットが、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含み、前記判定されたデータ特性が、第1の粒度レベルより大きい第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ないデータ特性が分類に使用されるように、前記粒度入力に示された前記粒度レベルに基づいて判定された数のデータ特性を含む、手段と、
前記コンテクスト分類のために、前記粒度入力に基づいて複数のコンフィギュレーションパラメータから1つのコンフィギュレーションパラメータを選択するための手段であって、前記複数のコンフィギュレーションパラメータは、前記粒度入力に示された異なる粒度レベルについての異なる値を含み、高い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、低いリソース利用レベルに対応付けされる手段と、
前記コンテクスト分類のために選択したコンフィギュレーションパラメータを使用して、前記データソースから収集した前記データ特性のデータを分類することで、前記コンテクスト分類出力の前記粒度レベルを示す前記粒度入力に従ってコンテクスト分類を実行するための手段と、を備える、装置。
【請求項４０】
前記選択したコンフィギュレーションパラメータは、利用したセンサ特性の数または分類頻度のうち少なくとも1つを含む、請求項39に記載の装置。
【請求項４１】
前記粒度入力は、粒度設定の既定のセットから選択される、請求項39に記載の装置。
【請求項４２】
前記粒度入力は、前記コンテクスト分類について利用可能な出力のサブセットを含む、請求項39に記載の装置。
【請求項４３】
前記コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、またはオーディオ状態分類を含む、請求項39に記載の装置。
【請求項４４】
さらに、前記コンテクスト分類出力を、コンテクスト分類の要求のソースへ戻すための手段を備える、請求項39に記載の装置。
【請求項４５】
プロセッサ読み取り可能なコンピュータ記憶媒体に存在し、プロセッサ実行可能な命令を含むコンピュータプログラムであって、前記命令は、プロセッサに、
コンテクスト分類の要求と、前記要求に関連付けされた粒度入力とを受け付けさせ、前記粒度入力が、コンテクスト分類出力が選択される利用可能な状態のサブセットを特定するとともに前記コンテクスト分類出力を選択するためにどのデータ特性がデータソースから収集されるかを判定するための、コンテクスト分類出力の粒度レベルを示し、利用可能な状態の前記サブセットが、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含み、前記判定されたデータ特性が、第1の粒度レベルより大きい第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ないデータ特性が分類に使用されるように、前記粒度入力に示された前記粒度レベルに基づいて判定された数のデータ特性を含み、
前記コンテクスト分類のために、前記粒度入力に基づいて複数のコンフィギュレーションパラメータから1つのコンフィギュレーションパラメータを選択させ、前記複数のコンフィギュレーションパラメータは、前記粒度入力に示された異なる粒度レベルについての異なる値を含み、
前記要求に応じて、前記コンテクスト分類のために選択したコンフィギュレーションパラメータを使用して、前記データソースから収集した前記データ特性のデータを分類することで、前記コンテクスト分類出力の前記粒度レベルを示す前記粒度入力に従ってコンテクスト分類部によって前記コンテクスト分類を実行するように構成され、
高い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、低いリソース利用レベルに対応付けされる、コンピュータプログラム。
【請求項４６】
前記選択したコンフィギュレーションパラメータは、利用したセンサ特性の数または前記コンテクスト分類部の分類頻度のうち少なくとも1つを含む、請求項45に記載のコンピュータプログラム。
【請求項４７】
前記粒度入力は、粒度設定の既定のセットから選択される、請求項45に記載のコンピュータプログラム。
【請求項４８】
前記粒度入力は、前記コンテクスト分類について利用可能な出力のサブセットを含む、請求項45に記載のコンピュータプログラム。
【請求項４９】
プロセッサ読み取り可能なコンピュータ記憶媒体に存在し、プロセッサ実行可能な命令を含むコンピュータプログラムであって、前記命令は、プロセッサに、
コンテクスト分類の要求と、前記要求に関連付けされた粒度入力とを受け付けさせ、前記粒度入力が、コンテクスト分類出力が選択される利用可能な状態のサブセットを特定するとともに前記コンテクスト分類出力を選択するためにどのデータ特性がデータソースから収集されるかを判定するための、コンテクスト分類出力の粒度レベルを示し、利用可能な状態の前記サブセットが、前記粒度入力に示された前記粒度レベルに基づいて判定された数の状態を含み、前記判定されたデータ特性が、第1の粒度レベルより大きい第2の粒度レベルが示されるときより、前記第1の粒度レベルが示されるときに、より少ないデータ特性が分類に使用されるように、前記粒度入力に示された前記粒度レベルに基づいて判定された数のデータ特性を含み、
前記コンテクスト分類のために、前記粒度入力に基づいて複数のコンフィギュレーションパラメータから1つのコンフィギュレーションパラメータを選択させ、前記複数のコンフィギュレーションパラメータは、前記粒度入力に示された異なる粒度レベルについての異なる値を含み、
高い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力についてのコンフィギュレーションパラメータは、低いリソース利用レベルに対応付けされ、
前記コンテクスト分類のために選択したコンフィギュレーションパラメータを使用して、前記データソースから収集した前記データ特性のデータを分類することで、前記コンテクスト分類出力の前記粒度レベルを示す前記粒度入力に従ってコンテクスト分類を実行させるように構成される、コンピュータプログラム。
【請求項５０】
前記選択したコンフィギュレーションパラメータは、利用したセンサ特性の数または分類頻度のうち少なくとも1つを含む、請求項49に記載のコンピュータプログラム。
【請求項５１】
前記粒度入力は、粒度設定の既定のセットから選択される、請求項49に記載のコンピュータプログラム。
【請求項５２】
前記粒度入力は、前記コンテクスト分類について利用可能な出力のサブセットを含む、請求項49に記載のコンピュータプログラム。
【請求項５３】
前記命令は、さらに、前記プロセッサに、前記コンテクスト分類出力を前記コンテクスト分類の要求のソースに戻させるように構成される命令を含む、請求項49に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
電力効率のよい分類のためのアプリケーションによって制御される粒度
【背景技術】
【０００２】
ワイヤレス通信技術の進歩により、今日のワイヤレス通信デバイスの多用途性が非常に高まっている。かかる進歩により、ワイヤレス通信デバイスは、単なるモバイルフォンやポケットベルの形態から高機能なコンピューティングデバイスの形態へと進化し、当該コンピューティングデバイスは、マルチメディアレコーディングおよびプレイバック機能、イベントスケジューリング機能、ワープロ機能、電子商取引機能等の幅広い機能を果たすことが可能である。そのため、今日のワイヤレス通信デバイスのユーザは、従来は複数のデバイスまたは大型かつ非携帯型の機器を必要とした広範囲なタスクを、単一の携帯型デバイスから実行することができる。当該タスクは、デバイスの機能を実行およびカスタマイズする際に、デバイスおよびユーザコンテクスト情報を検出して用いるデバイスの機能によって補助されることが可能である。当該コンテクスト情報は、たとえば、デバイスのロケーション、デバイスが存在するエリアにおいて行われているイベントである。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書において、アプリケーションによって制御される、電力効率のよいコンテクスト(状態)分類を提供するためのシステムおよび方法について説明する。本明細書に説明するコンテクスト分類を管理する方法の一例は、コンテクスト分類の要求と、当該要求に関連付けされた粒度入力とを受け付けることと、要求に応じて、分類部に、粒度入力に対応するリソース利用レベルでコンテクスト分類を実行させることと、を含む。高い粒度レベルを示す粒度入力は、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力は、低いリソース利用レベルに対応付けされる。
【０００４】
この方法の実装には、1つまたは複数の以下の特徴が含まれ得る。分類部からコンテクスト分類の結果を取得することと、要求元のエンティティに当該結果を送ること。コンテクスト分類のためのリソース利用レベルは、利用したセンサ特性の数、適用した分類技法、分類部のデューティサイクル、または適用した分類技法に関するパラメータのうち少なくとも1つに関する。粒度入力は、粒度設定の既定のセットから選択される。コンテクスト分類について利用可能な出力のサブセットを特定することと、利用可能な出力のサブセットのそれぞれに、粒度レベルを割り当てること。コンテクスト分類について利用可能な出力のサブセットのいずれかを含む粒度入力を受け付けることと、分類部に、粒度レベルに割り当てられたリソース利用レベルで、粒度入力として受け付けられた利用可能な出力のサブセットから1つの出力を選択することでコンテクスト分類を実行させる。コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、あるいはオーディオ状態分類を含む。要求元のアプリケーションから、コンテクスト分類の要求をアプリケーションプログラミングインターフェース(API)を介して受け付けること。
【０００５】
本明細書に説明する調節可能な粒度を有するコンテクスト分類を実行するための方法の一例は、コンテクスト分類の要求と、当該要求に関連付けされた粒度入力とを受け付けることと、粒度入力に基づいてコンテクスト分類のためのリソース利用レベルを選択することと、選択されたリソース利用レベルでコンテクスト分類を実行することとを含む。高い粒度レベルを示す粒度入力は、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力は、低いリソース利用レベルに対応付けされる。
【０００６】
この方法の実装には、1つまたは複数の以下の特徴が含まれ得る。リソース利用レベルは、利用したセンサ特性の数、適用した分類技法、分類の頻度、または、適用した分類技法に関するパラメータのうち少なくとも1つに関する。粒度入力は、粒度設定の既定のセットから選択される。分類部コンフィギュレーションパラメータのセットを取得する。ここで、分類部コンフィギュレーションパラメータのセットは、それぞれ、リソース利用レベルと粒度設定のセットのうちの対応するセットと間の割り当てを示す。また、リソース利用レベルとして、分類部コンフィギュレーションパラメータのセットにおいて示される受け付けた粒度入力に割り当てられたリソース利用レベルを選択すること。コンテクスト分類について利用可能な出力のサブセットを特定することと、利用可能な出力のサブセットのそれぞれを、分類部粒度コンフィギュレーションのそれぞれに割り当てることとを含む。ここで、分類部粒度コンフィギュレーションは、対応するリソース利用レベルを定義する。利用可能な出力のサブセットのうちのいずれかを含む粒度入力を受け付けることと、粒度入力として受け付けられた利用可能な出力のサブセットに割り当てられた分類部粒度コンフィギュレーションを用いてコンテクスト分類を実行すること。コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、あるいはオーディオ状態分類を含む。コンテクスト分類の要求と粒度入力とをAPIから受け付けること。コンテクスト分類の出力をAPIに戻すこと。コンテクスト分類の要求は、要求元のアプリケーションに由来するものであり、また上記の方法は、要求元のアプリケーションにコンテクスト分類の出力を戻すことを含む。
【０００７】
本明細書に説明する調節可能な粒度を有するコンテクスト分類を実行するための装置の一例は、コンテクスト分類の要求と、当該要求に関連付けされた粒度入力とを受け付けるように構成された分類部コントローラと、分類部コントローラに通信可能に結合され、当該分類部コントローラから要求および粒度入力を受け付け、粒度入力に基づいてコンテクスト分類のためのリソース利用レベルを選択し、選択したリソース利用レベルでコンテクスト分類を行うように構成されたコンテクスト分類部と、を備える。高い粒度レベルを示す粒度入力は、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力は、低いリソース利用レベルに対応付けされる。
【０００８】
この装置の実装には、1つまたは複数の以下の特徴が含まれ得る。分類部コントローラは、さらに、分類部からコンテクスト分類の結果を取得して要求元のエンティティに当該結果を転送するように構成される。コンテクスト分類のためのリソース利用レベルは、利用したセンサ特性の数、適用した分類技法、分類部のデューティサイクル、または適用した分類技法に関するパラメータのうち少なくとも1つに関する。粒度入力は、粒度設定の既定のセットから選択される。コンテクスト分類部は、さらに、分類部コンフィギュレーションパラメータのセットを取得するように構成されており、分類部コンフィギュレーションパラメータのセットのそれぞれは、リソース利用レベルと粒度設定のセットのうち対応するものとの割り当てを示す。また、コンテクスト分類部は、分類部コンフィギュレーションパラメータのセットにおいて示される、受け付けた粒度入力に割り当てられたリソース利用レベルとして、リソース利用レベルを選択するように構成されている。
【０００９】
この装置の実装には、1つまたは複数の以下の特徴が追加的あるいは代替的に含まれ得る。粒度入力は、コンテクスト分類について利用可能な出力のサブセットを含む。コンテクスト分類部は、さらに、粒度入力として受け付けた利用可能な出力のサブセットを1つの分類部粒度コンフィギュレーションに割り当てるように構成され、この分類部粒度コンフィギュレーションは、選択したリソース利用レベルを定義する。コンテクスト分類部は、さらに、粒度入力として受け付けた利用可能な出力のサブセットから1つの出力を選択することでコンテクスト分類を実行するように構成されている。コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、あるいはオーディオ状態分類を含む。分類部コントローラは、APIを含み、また、要求元のアプリケーションからコンテクスト分類の要求を受け付けるように構成されている。コンテクスト分類部は、さらに、コンテクスト分類の結果をAPIまたは要求元のアプリケーションのうち少なくとも1つに提供するように構成されている。1つまたは複数のデータソースがコンテクスト分類部と通信可能に結合され、ここでコンテクスト分類部は、データソースからサンプリングされたデータに基づいてコンテクスト分類を実行するように構成されている。データソースは、オーディオセンサ、ロケーションセンサ、ネットワークセンサ、モーションセンサ、カレンダー、時計、デバイス利用統計のセット、または光センサのうち少なくとも1つを備える。
【００１０】
本明細書に説明するコンテクスト分類を管理するための装置の一例は、コンテクスト分類の要求と、当該要求に関連付けされた粒度入力とを受け付けるための手段と、粒度入力に対応するリソース利用レベルで要求に応じて分類部にコンテクスト分類を実行させるための手段と、を備える。高い粒度レベルを示す粒度入力は、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力は、低いリソース利用レベルに対応付けされる。
【００１１】
この装置の実装には、1つまたは複数の以下の特徴が含まれ得る。コンテクスト分類のためのリソース利用レベルは、利用したセンサ特性の数、適用した分類技法、分類部のデューティサイクル、または適用した分類技法に関するパラメータのうち少なくとも1つに関する。粒度入力は、粒度設定の既定のセットから選択される。粒度入力は、コンテクスト分類について利用可能な出力のサブセットを含む。コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、あるいはオーディオ状態分類を含む。
【００１２】
本明細書に説明する調節可能な粒度を有するコンテクスト分類を実行するための装置の一例は、コンテクスト分類の要求と、当該要求に関連付けされた粒度入力とを受け付けるための手段と、粒度入力に基づいてコンテクスト分類のためのリソース利用レベルを選択するための手段と、選択したリソース利用レベルでコンテクスト分類を行うための手段と、を備える。高い粒度レベルを示す粒度入力は、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力は、低いリソース利用レベルに対応付けされる。
【００１３】
この装置の実装には、1つまたは複数の以下の特徴が含まれ得る。リソース利用レベルは、利用したセンサ特性の数、適用した分類技法、分類頻度、または適用した分類技法に関するパラメータのうち少なくとも1つに関する。粒度入力は、粒度設定の既定のセットから選択される。粒度入力は、コンテクスト分類について利用可能な出力のサブセットを含む。コンテクスト分類は、1つまたは複数のモーション状態分類、ロケーション状態分類、あるいはオーディオ状態分類を含む。さらに、コンテクスト分類の結果を、コンテクスト分類の要求のソースへ戻すための手段。
【００１４】
本明細書に説明するコンピュータプログラムプロダクトの一例は、プロセッサ実行可能なコンピュータ記憶媒体に存在し、プロセッサに、コンテクスト分類の要求と、当該要求に関連付けされた粒度入力とを受け付けさせ、粒度入力に対応するリソース利用レベルで要求に応じて分類部にコンテクスト分類を実行させるように構成された、プロセッサ実行可能な命令を含む。高い粒度レベルを示す粒度入力は、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力は、低いリソース利用レベルに対応付けされる。
【００１５】
このコンピュータプログラムプロダクトの実装には、1つまたは複数の以下の特徴が含まれ得る。コンテクスト分類のためのリソース利用レベルは、利用したセンサ特性の数、適用した分類技法、分類部のデューティサイクル、または適用した分類技法に関するパラメータのうち少なくとも1つに関する。粒度入力は、粒度設定の既定のセットから選択される。粒度入力は、コンテクスト分類について利用可能な出力のサブセットを含む。
【００１６】
本明細書に説明するコンピュータプログラムプロダクトの別の例は、プロセッサ実行可能なコンピュータ記憶媒体に存在し、プロセッサに、コンテクスト分類の要求と、当該要求に関連付けされた粒度入力とを受け付けさせ、粒度入力に基づいてコンテクスト分類のためのリソース利用レベルを選択させ、選択されたリソース利用レベルでコンテクスト分類を実行させるように構成された、プロセッサ実行可能な命令を含む。高い粒度レベルを示す粒度入力は、高いリソース利用レベルに対応付けされ、低い粒度レベルを示す粒度入力は、低いリソース利用レベルに対応付けされる。
【００１７】
このコンピュータプログラムプロダクトの実装には、1つまたは複数の以下の特徴が含まれ得る。リソース利用レベルは、利用したセンサ特性の数、適用した分類技法、分類頻度、または適用した分類技法に関するパラメータのうち少なくとも1つに関する。粒度入力は、粒度設定の既定のセットから選択される。粒度入力は、コンテクスト分類について利用可能な出力のサブセットを含む。さらに、プロセッサに、コンテクスト分類の結果を、コンテクスト分類の要求のソースへ戻させるように構成される命令。
【発明の効果】
【００１８】
本明細書に説明する項目および/または技法によって、1つまたは複数の以下の能力のみならず、特に説明していない他の能力が提供される。かかるメカニズムにより、調節可能な分類部精度が提供され、高度な分類精度を必要としていないアプリケーションによる消費電力およびリソース利用の節約を可能にする。アプリケーションプログラミングインターフェース(API)および/または他の制御メカニズムは、デバイス上で実行されるアプリケーションによって、状態またはコンテクスト分類ルーチンへのアクセスのためのシンプルかつ一様な手順を提供する。他の能力も提供され得るが、本開示に基づく実施の全てが、上述した能力のいずれかを必ず提供するものではない。さらに、上述した効果は、上述したもの以外の手段によっても達成することが可能であり、説明する特徴/技法が、説明した効果を必ずしも達成しなければならない訳ではない。
【図面の簡単な説明】
【００１９】
【図１】モバイルコンピューティングデバイスの構成要素を示すブロック図である。
【図２】コンテクスト分類を実行および管理するためのシステムのブロック図である。
【図３】コンテクスト分類の要求を処理するためのシステムのブロック図である。
【図４】コンテクスト分類の要求を処理するためのシステムのブロック図である。
【図５】コンテクスト分類の要求を処理するためのシステムのブロック図である。
【図６】APIで管理される、アプリケーションによって制御される分類のシステムのブロック図である。
【図７】コンテクスト分類の管理のブロック式フローチャートである。
【図８】利用可能な分類出力サブセットのセットに基づいてコンテクスト分類を管理するための処理を示すブロック式フローチャートである。
【図９】制御可能な粒度を用いてコンテクスト分類を実行するための処理を示すブロック式フローチャートである。
【図１０】既定の粒度設定に基づいてコンテクスト分類を実行するための処理を示すブロック式フローチャートである。
【図１１】利用可能な分類出力サブセットのセットに基づいてコンテクスト分類を実行するための処理を示すブロック式フローチャートである。
【図１２】コンピュータシステムの一例のブロック図である。
【発明を実施するための形態】
【００２０】
本明細書においてコンテクスト分類のための、アプリケーションによって制御される粒度を提供するためのシステムおよび方法について説明する。本明細書に説明する技法は、デバイスのコンテクスト判断において、スマートフォン、ノート型またはタブレット型コンピュータ、パーソナルデジタルアシスタント(PDA)、その他現在存在しているあるいは将来存在するコンピューティングデバイスの一助として用いることができる。他の用途において用いることも可能である。以下に説明する多様な例はモバイルコンピューティングデバイスに関するものであるが、本明細書に説明する技法は、コンテクストインターフェースとして好適な任意のデバイスに適用可能である。
【００２１】
モバイルデバイス技術の進歩により、モバイルデバイスは、当該デバイスの機能の実行およびカスタム化の際に、デバイスのロケーション、デバイスが存在するエリアにおいて行われているイベント等のデバイスおよびユーザコンテクスト情報を検出して利用する能力を持つようになっている。モバイルコンテクスト認識の目的の1つは、そのユーザが行っていることについて、デバイスに推測をさせることである。これは、たとえば、ユーザが位置する場所の種類(たとえばオフィス、会議室、大教室、家、ジム、レストラン、コーヒーショップ、バー、等)またはユーザが置かれている状況(たとえばミーティング中、単独での作業中、運転中、ランチ中、運動中、睡眠中、等)の複数の次元に沿って評価することができる。本明細書において、当該各次元を、コンテクストと呼ぶ。ユーザコンテクストを推測することで、アプリケーションの範囲をたとえば以下のものとすることが容易となるが、以下に限定されるものではない。
【００２２】
1)ユーザが応答できない際に、通話をボイスメールに変換したり、テキストメールに返信したり、環境に応じて呼出し音の音量を調節したり、ユーザが予定に遅れた際にその旨をミーティングの参加者に通知したりする、等のデバイス機能を自動化すること。
【００２３】
2)チェックイン、ユーザが近くにいる場合に友人にその旨を通知する、等のソーシャルネットワーキング対話を自動化すること。
【００２４】
3)消費カロリー、歩いたマイル数、遊戯に比して仕事に費やした時間等のヘルスケア情報を提供すること。
【００２５】
4)レストラン、ショップ、消費財、ガソリン等に関する正確かつタイムリーな提案を容易とすること。
【００２６】
ユーザコンテクストの推測の手法としては、コンテクストを統計的に、または逆に下位レベルのコンピュータ化された推測および特性から学習することである。下位レベルの推測としては、たとえば、オーディオデータストリーム中に発話があるか否か、加速度計データストリームに基づいて判別された、ユーザのモーション状態(歩く、座る、運転する等)、ユーザが家にいるか、職場にいるか、移動中か、あるいは所在が不明かどうか、ユーザが屋内にいるか屋外にいるか(たとえば、これは、接続可能なグローバルポジショニングシステム(GPS)または他の接続可能なSPS衛星の数に基づく)、が挙げられる。下位レベルの特性としては、たとえば、GPS速度、範囲内のブルートゥースデバイスの数、接続可能なWi-Fiアクセスポイントの数、近傍のセンサのカウント、周辺光量、カメラ明暗度の平均、時刻、曜日、平日または週末、周辺オーディオエネルギーレベルが挙げられる。上述したものは完全なリストではなく、他の下位レベルの特性および/または推測を使用することも可能である。
【００２７】
上述したように、モバイルデバイス(たとえば、スマートフォン)は、コンテクスト認識サービスを提供するための処理においてセンサデータを分類する。これらの分類には、たとえば、加速度計データに基づくモーション状態分類、オーディオデータに基づく発話検出が含まれる。デバイスのオリジナルイクップメントマニュファクチャラー(OEM)レベル、および/または、オペレーティングシステム(OS)より上位のレベルにおけるアプリケーションは、ベンダーによって提供されたAPIを介してコンテクスト認識サービスの出力を利用する。しかしながら、異なるアプリケーションは、それぞれ、異なる要求を有する場合がある。たとえば、モーション状態分類部は、APIを介してクラス{歩く、走る、座る、立つ、いらだつ、休む、運転}のセットを出力し、その中で、ジオフェンシングアプリケーションは、ユーザが移動した距離を測定するために、{停止、歩行モーション、車両モーション}のセットからモーション状態を判別するためにコンテクストを利用する。端末間システムという観点からすると、この場合のAPIは、アプリケーションによって使用されるものよりも高い粒度の分類出力を提供する。このため、電力という観点からすると、効率が低下する。
【００２８】
少なくとも上記を鑑み、本明細書に説明するシステムおよび方法は、アプリケーションによって制御されるコンテクスト分類を提供する。コンテクスト分類を要求するアプリケーションおよび/または他のエンティティは、1つまたは複数の粒度定義手法に応じて望ましい粒度レベルを特定する能力が与えられている。そのようにするために、アプリケーションは、望ましい分類精度と電力消費および/または他のシステムリソース消費との間のトレードオフの関係を管理する、拡張された能力を備えている。
【００２９】
本明細書に説明する技法は、たとえば、図1に示すモバイルデバイス100等のモバイルデバイスで利用可能である。モバイルデバイス100は、ワイヤレスネットワーク上で、ワイヤレス信号123をワイヤレスアンテナ122を介して送受信するワイヤレス送受信部121を含む。送受信部121は、ワイヤレス送受信バスインターフェース120によってバス101に接続されている。図1において個別の構成要素として図示しているが、ワイヤレス送受信バスインターフェース120は、ワイヤレス送受信部121の一部であってもよい。ここでは、モバイルデバイス100は、単一のワイヤレス送受信部121を有するとして図示されている。しかしながら、モバイルデバイス100は、代わりに複数のワイヤレス送受信部121および複数のワイヤレスアンテナ122を有してもよく、これにより、Wi-Fi、コードディビジョンマルティプルアクセス(CDMA)、ワイドバンドCDMA(WCDMA(登録商標))、ロングタームエボリューション(LTE)、ブルートゥース等の複数の通信規格をサポートする。
【００３０】
汎用プロセッサ111、メモリ140、デジタル信号プロセッサ(DSP)112、および/または、(図示しない)専用プロセッサが、ワイヤレス信号123を全体的または部分的に処理するために利用され得る。ワイヤレス信号123からの情報のストレージはメモリ140または(図示しない)レジスタを用いて行われる。汎用プロセッサ111、DSP112、およびメモリ140を、それぞれ1つずつ、図1に示しているが、モバイルデバイス100はこれらの構成要素のいずれかを複数使用し得る。汎用プロセッサ111およびDSP112は、直接あるいはバスインターフェース110によってバス101に接続されている。また、メモリ140は、直接あるいは(図示しない)バスインターフェースによってバス101に接続されている。バスインターフェース110は、実装される際に、関連する汎用プロセッサ111、DSP112、および/またはメモリ140と一体であってもよいし、これらと独立してもよい。
【００３１】
メモリ140は、非一時的コンピュータ可読記憶媒体(あるいは複数の記憶媒体)を含み、当該媒体は、1つまたは複数の命令またはコードとして機能を記憶する。メモリ140を構成可能な媒体としては、以下に限定されるものではないが、RAM、ROM、フラッシュメモリ、ディスクドライブ等が挙げられる。メモリ140に記憶される機能は、汎用プロセッサ111、専用プロセッサ、またはDSP112によって実行される。そのため、メモリ140は、プロセッサ可読メモリおよび/またはコンピュータ可読メモリであって、ソフトウェアコード(プログラミングコード、命令等)を記憶するメモリである。ここで、当該ソフトウェアコードは、上述した機能をプロセッサ111および/またはDSP112に実行させるように構成される。代替的に、モバイルデバイス100の1つまたは複数の機能が、全体的または部分的にハードウェアにおいて実行されてもよい。
【００３２】
モバイルデバイス100は、さらに、1つまたは複数のセンサ135を含み、当該センサは、モバイルデバイス100および/またはその周辺環境に関連するデータを取得する。センサ135は、たとえば、以下に限定されるものではないが、マイクロフォンまたはオーディオセンサ、カメラ、光センサ、圧力センサ、慣性センサ(たとえば、加速度計および/またはジャイロスコープ)、磁気計を含む。センサ135は個別に用いられてもよいし、センサアレイあるいは他の組合せのように組み合わせて用いられてもよい。複数のセンサ135は、モバイルデバイス100によって実装される場合、相互動作してもよいし、個別に動作してもよい。センサ135は、独立して、あるいは、(図示しない)バスインターフェースを介してバス101に接続される。たとえば、センサ135は、当該センサ135が取得したデータを処理するために、バス101を介してDSP112と通信可能である。センサ135は、さらに、汎用プロセッサ111および/またはメモリ140と通信可能であり、取得したデータに関連するメタデータを生成または取得する。いくつかの実施形態においては、アンテナ122および/または送受信部121は、センサとして利用してもよく、たとえば、Wi-Fi信号等のワイヤレス信号を感知または検出する。
【００３３】
図2は、コンテクスト分類を実行および管理するためのシステム200を示す。システム200は、たとえば図1に示すモバイルデバイス100等のコンピューティングデバイスが利用可能なものである。このシステム200は、1つまたは複数のデータソース210を備え、当該データソースは、以下に限定されるものではないが、マイクロフォン等のオーディオセンサ212と、GPS送受信機等のロケーションセンサ214と、Wi-Fiおよび/または他の無線送受信機等のネットワークセンサ216と、加速度計またはジャイロスコープ等のモーションセンサ218と、カレンダー/アポイントメント記録220と、システムクロックまたは他の機構である日時情報源222と、デバイス利用モニタ224と、光および/またはカメラセンサ226とを含み得る。
【００３４】
データセンサ210からのデータは、コンテクスト分類部230に供給(たとえば、サンプリング)される。当該コンテクスト分類部は、収集したデータを利用して、当該データによって示されるコンテクスト状態を推測する。たとえば、コンテクスト分類部は、データセンサ210からのデータを利用してシステム200と関連したモーション状態を推測するモーション状態分類部である。後述するように、他の分類も可能である。コンテクスト分類部230は、定期的に、および/または、1つまたは複数の要求元ソースから与えられる分類要求に応じてコンテクスト分類を実行する。分類要求を受け付けて応答する技法は後述する。
【００３５】
データソース210から収集したデータは、コンテクスト分類部230が利用可能な任意の形式のものであり得る。たとえば、収集したデータは、オーディオセンサ212からのオーディオサンプル、ロケーションセンサ214からのGPS読取り情報および/または他の位置計測情報、ネットワークセンサ216からのネットワーク強度および/または他のネットワーク関連の読取り情報、モーションセンサ218からのモーション、加速、または方向データ、カレンダー220に関連付けられたエントリーを含み得る。データに加え、当該データに適用するラベルを利用してもよい。たとえば、カレンダーエントリーは、たとえば、「ユーザのオフィス」または「医者とのアポイントメント」等のロケーションまたはタイトルにラベリングされる。
【００３６】
分類部コントローラ240は、コンテクスト分類の要求を、アプリケーションまたは他のソースから受け付け、コンテクスト分類部240に、要求に応じた特定の粒度レベルでコンテクスト分類を実行させることで、コンテクスト分類部230の動作を管理する。たとえば、図3に示すシステム300においては、分類要求のソース310(たとえば、モバイルデバイス100等に実行されたアプリケーション)が、分類部コントローラ240にコンテクスト分類の要求を送るように構成されている。分類要求は、入力として粒度設定を含み、これは、粒度パラメータまたはクラスのサブセットの特定セットの形態を取り得る。この点については後述する。分類部コントローラ240は、粒度入力を処理し、要求および粒度入力に応じてコンテクスト分類部230に適切な命令を与える。コンテクスト分類部230の内部メカニズムは、異なる粒度の出力で動作し、あるいは、クラスのサブセットの特定セットであって、異なるセットを出力するように再構成可能であり、これは、コンテクスト分類部230からの命令によって特定される。その結果、コンテクスト分類部230を動作させるために必要な電力が、粒度が粗い場合、あるいは、特定されたクラスのサブセットが広い場合には低減される。特定の粒度レベルでコンテクスト分類を実行すると、分類出力が分類要求のソース310に直接あるいは分類部コントローラ240を介して提供される。分類部コントローラ240を、コンテクスト分類部230と分類要求元のエンティティとの間の介在手段として機能させることで、当該分類部コントローラは、たとえば、APIおよび/または他のメカニズムを介して、関連するデバイスおよび/または関連するデバイスの他の属性によって利用されるオペレーティングシステムであって、コンテクスト分類部230の動作に影響を与える可能性のあるオペレーティングシステムにかかわらず、コンテクスト分類部230と要求元のエンティティとの間における対話のための簡略的かつ一様な手段を提供することが可能である。APIとして実装される分類部コントローラ240の一例は、後述してさらに詳細に説明する。他の形態で実現することも可能である。
【００３７】
粗い粒度が要求される場合、または、クラスについて広いサブセットが特定された場合、コンテクスト分類部230は、その出力を、以下の1つまたは複数に基づいて、粗い粒度および/またはより下位の精度で計算する。(1)データソース210によって提供されたデータから、より少ない特性を取得および/または利用する。(2)より粗い分類技法を適用する。(3)ガウシアンミクスチャーモデル(GMM)用のより少ないミクスチャーモデル、より少ない(ニューラルネットワーク分類部用の)サポートベクトル、最近傍分類部用に考慮されるより少ないデータポイント等の、より簡易なパラメータ設定を採用する。(4)たとえば、センササブシステムを短期間のみ起動する、等のより短期間の低デューティサイクルを使用する。他の調整も可能である。
【００３８】
図4は、粒度設定のセットに基づいてコンテクスト分類部230の動作を粒度に応じて制御する一例をシステム400によって示す。ここでは、分類部コントローラ240は、要求ソース310から、分類要求とともに粒度パラメータを入力として受け付けるように構成されている。粒度パラメータは、1つまたは複数の設定を含み、それぞれがコンテクスト分類部230におけるコンフィギュレーションパラメータ410のセットに関連付けされている。コンテクスト分類部230は、分類要求に応じて分類部コントローラ240から分類命令を受け付け、関連する粒度入力に基づいて適切なコンフィギュレーションパラメータ410のセットを特定し、要求された分類を実行し、そして、分類結果を、分類部コントローラ240および/または要求ソース310へ戻す。ここで、分類部コントローラ240は、粒度パラメータを分類部設定命令に変換し、また、コンテクスト分類子230は、命令されたコンフィギュレーションパラメータ410のセットを利用して分類を行うものとして示されている。代替的に分類部コントローラ240は、粒度パラメータを要求とともにコンテクスト分類部230に送り、コンテクスト分類部230は、粒度パラメータに基づいて適切なコンフィギュレーション410のセットを判定してもよい。
【００３９】
システム400の動作の一例として、コンテクスト分類部230は、2つの設定、粗いおよび緻密を有する粒度パラメータに応じてモーション状態分類を行うように構成されている。この場合、粗い設定では、コンテクスト分類部230は、GMMベースのモーション状態分類部として動作し、当該モーション状態分類部は、加速度計のノルムの偏差値(以下、「sa」という)と、その中間値とを特性として利用する。また、当該モーション状態分類部は、特性ごとに1つのミクスチャー成分を利用し、第1の状態セット{停止、歩行モーション、車両モーション}から出力する。対照的に緻密な設定では、コンテクスト分類部230は、粗い設定における上述した2つの特性に加え、ピッチおよび転がり、複数のメル周波数ケプストラム係数(MFCC)、エントロピースペクトル、加速度計ノームの中間値を使用し、特性ごとに4つのミクスチャー成分を利用し、第2の状態セット{歩く、走る、座る、立つ、いらだつ、休む、運転する}から出力するモーション状態分類部として動作する結果となる。一般に、粗い設定では、緻密な設定と比較して演算を減らすことになり、コンテクスト分類部230は、当該設定においては少ない電力で動作する。
【００４０】
図5は、分類部出力サブセットのセットに基づいてコンテクスト分類部230の動作を粒度に応じて制御する別の例をシステム500によって示す。コンテクスト分類部230によって実行され、また分類部コントローラ240によって管理される各分類の種類(たとえば、モーション状態分類、ロケーション分類)について、コンテクスト分類部は、利用可能な分類出力のセット(たとえば、コンテクスト状態)を維持する。利用可能な出力のセットは、サブセットに分割され、コンテクスト分類部230に関連付けされた分類部コンフィギュレーションマネージャ510は、各サブセットを分類部コンフィギュレーションパラメータに関連付ける。たとえば、{A、B、C}という出力が考えられる分類について、分類部コンフィギュレーションマネージャ510は、サブセット群{A/B、C}、{A/C、B}、{B/C、A}および{A、B、C}についてコンフィギュレーションプロファイルを維持する。言い換えれば、この例では、コンテクスト分類部は、異なるコンフィギュレーションに関連付けされており、各コンフィギュレーションにおいて、コンテクスト分類部230は、(1)A/BもしくはC、(2)A/CもしくはB、(3)B/CもしくはA、または、(4)AもしくはBもしくはCのいずれかを出力する。他の数の出力が考えられる分類について、同様のサブセット群を適用することも可能である。任意の分類に関連付けされた出力サブセットは、考えられる出力の可能な組合せの全て、あるいは、それ未満に対応する。また、サブセットは、単一の考えられる出力(たとえば、任意の状態出力Aを戻すこと、あるいは状態出力をしないこと)または複数の考えられる出力を含む。さらに、いくつかの出力は、様々なサブセットにおいて組み合わされる。たとえば、上述した考えられる出力{A、B、C}を有する分類の例に戻ると、分類部コンフィギュレーションマネージャ510は、{(AまたはB)、C}、{A、(BまたはC)}等のサブセットについて、コンフィギュレーションプロファイルを維持する。他の構成も使用され得る。
【００４１】
システム500において示されるように、分類要求のソース310は、分類部コントローラ230に、分類について利用可能な出力コンテクストクラスのサブセットとともに要求を送る。分類要求に関連付けされた出力のセットは、利用可能な分類出力のサブセットを示し、当該サブセットから、コンテクスト分類部230がコンテクスト判断をするために分類出力を選択する。システム500は、分類要求のソース310が、任意の分類について望ましい出力サブセットを特定し、要求とともに当該サブセットを分類部コントローラ240に送ることを示す。代替的に、分類出力サブセットの選択は、分類要求のソース310に対して透明に、分類部コントローラ240が行い得る。たとえば、分類要求のソース310は、コンテクスト分類の要求を、関連する一般化された粒度設定とともに分類部コントローラに送る。この場合、分類部コントローラ240は、与えられた粒度レベルを出力サブセットに変換し、当該出力サブセットをコンテクスト分類部230に送る。同様に、分類部コントローラ240は、コンテクスト分類部230に粒度レベル入力を送り、コンテクスト分類部230は、考えられる出力の適切なサブセットを判定する。分類部コントローラ240および/またはコンテクスト分類部230は、分類要求とともに粒度入力を分類要求のソース310から得られなかった場合、デフォルトの粒度コンフィギュレーションおよび/または分類出力サブセットを利用できる。
【００４２】
システム500の動作の一例として、分類部コントローラ240は、要求のソース310から、クラスのサブセットの特定セットの入力を受け付ける。また、コンテクスト分類部230は、GMMベースのモーション状態分類部を含み、このモーション状態分類部は、クラス{歩く、座る、立つ}のデフォルトセットを有する。したがって、クラスのサブセットのセットについて考えられる入力は、{{歩く}、{座る}、{立つ}}、{{歩く、座る}、{立つ}}、{{歩く}、{座る、立つ}}、{{歩く、立つ}、{座る}}、および{{歩く、座る、立つ}}である。コンテクスト分類部230は、特定したセットによっては、異なる特性や異なる数のミクスチャー成分を利用してもよい。たとえば、特定した入力セットが、{{歩く}、{座る、立つ}}であった場合、コンテクスト分類部230は、単一のミクスチャー成分とともに(上述した)単一の特性saを使用して、データを分類する。場合によっては、これによって、特定した入力セットが{{歩く、座る}、{立つ}}であった場合であって、同じ精度で分類を行うためにより多くの特性およびミクスチャー成分を用いる場合と比較して、電力を節約することになる。
【００４３】
コンテクスト分類部230および/または分類部コントローラ240は、ハードウェア、ソフトウェア(非一時的なコンピュータ可読メモリ140に記憶され、プロセッサ111によって実行されるソフトウェアコード等)、あるいは、ハードウェアおよびソフトウェアの組合せによって実装できる。アプリケーションによって制御される粒度を有するコンテクスト分類システム600の実装例を、図6に示す。図6に示すシステム600は、1つまたは複数のアプリケーション620と対話し、アプリケーション620とモーション状態分類部630との間を仲介するAPI610を含む。図6に具体的なモーション状態分類部の一例を用いているが、上述した他のコンテクスト分類部についても同様の概念を適用できる。
【００４４】
一般に、システム600に示したアプリケーション620は、図3から図5に示した分類要求のソース310と同様に動作し、コンテクスト分類の要求をAPI610に送る。アプリケーション620は、その分類要求とともに粒度入力を含む。API610は、図3から図5に示した分類部コントローラ240と同様に、この粒度入力および/または他の適切な特定粒度命令をモーション状態分類部630に提供する。ここで、モーション状態分類部630は、2つの設定を利用するように構成されている。すなわち、分類出力サブセット{停止する、歩く、運転}に対応する粗い設定と、分類出力サブセット{歩く、走る、座る、立つ、いらだつ、休む、運転する}に対応する緻密な設定と、である。図2から図5に関して上述したように、他の設定を使用してもよい。
【００４５】
モーション状態分類部630に使用される設定は、システム400と同様な粒度設定パラメータ(たとえば、粗いまたは緻密)、システム500と同様な分類出力サブセットのいずれかの特定、および/またはこれら手法の組合せおよび/もしくは他の手法との組合せのいずれかに基づいて選択されてよい。粗い設定が選択された場合、モーション状態分類部は、粗い粒度のモーション状態分類部632を用いてコンテクスト分類を実行する。代替的に、緻密な設定が選択された場合には、粒度が緻密なモーション状態分類部634が用いられる。いずれの場合においても、分類によって結果として得られるモーション状態は、モーション状態分類部630によってAPI610に戻される。次に、API610は、出力を要求元のアプリケーション620に提供する。
【００４６】
粒度が粗いモーション状態分類部632および粒度が緻密なモーション状態分類部634は、センササンプル率および/または分類デューティサイクル、利用したセンサ特性、分類部の種類、等の1つまたは複数の特性において異なる場合がある。一般に、粒度が粗いモーション状態分類部632は、分類精度が低くなる代わりに、粒度が緻密なモーション状態分類部634よりも消費電力が低レベルになる。したがって、粒度が粗いモーション状態分類部632は、緻密な粒度での分類出力を要しないか、または逆に電力消費が分類粒度よりも重要と判断されるアプリケーションに利用される。たとえば、低電力デバイス、アプリケーションあるいは動作モード、指定された閾値よりも関連するデバイスのバッテリ充電レベルが下位のデバイスのセンサ等である。
【００４７】
ここでAPI610は、関連するデバイス上で実行されるアプリケーション620が利用可能なインターフェースである。このAPIは、グーグル社によって開発されたアンドロイドオペレーティングシステム、マイクロソフト社によって開発されたウィンドウズ(登録商標)およびウィンドウズ(登録商標)モバイルオペレーティングシステム、および/または現在存在しているまたは将来存在する他のオペレーティングシステム等のデバイスオペレーティングシステムに組み込まれ得る。たとえば、API610は、キャリアまたはベンダーに固有なオペレーティングシステムの拡張パッケージの一部としてデバイスオペレーティングシステムに組み込まれる。代替的に、要求元のアプリケーション620と分類部630との間で要求および分類出力を伝達するのに十分なアクセス特権が与えられている場合には、API610は、デバイスオペレーティングシステムとは独立したスタンドアローン型のソフトウェアコンポネントとして実装される。上記のいずれの実装においても、API610は、デバイスの配布に先立ってまたは当該配布に続いて、(たとえば、ソフトウェアパッチあるいはアップデートの形態で)モバイルデバイスに取り込まれる。
【００４８】
API610は、アプリケーション620によって使用される機能および設定のセットを提供して、モーション状態分類部630および/またはデバイスもしくはコンピューティング環境に関連する他の分類部を利用する。API610によって提供される機能および/または設定は、複数の分類部を通じて同一であり、あるいは、分類部ごとに異なってもよい(たとえば、機能および設定の第1セットがモーション分類用で、第2セットがロケーション分類用、等)。API610は、アプリケーション620から、入力として、関連する機能および/または設定を受け付けるように構成されており、受け付けた入力を1つまたは複数の関連するコンテクスト分類部が利用可能な形態に変換し、当該変換した入力を分類部に伝達する。API610は、さらに、分類部から分類結果出力を受け付け、当該出力を適切な要求元のアプリケーション620に戻すようにさらに構成される。上述のとおり、API610および/または分類部630は、粒度設定を1つの形態から他の形態に変換するように構成されており、たとえば、粒度設定から考えられる分類出力のセットのサブセット、あるいはその逆の変換を行う。
【００４９】
システム600に示す分類部630はモーション状態分類部であるが、他の種の分類部も同様に動作することができる。コンテクスト分類部の他の例を、以下に記載する。
【００５０】
1)オーディオベースの分類部、たとえば、話者の数を報告するものである。これは、異なる粒度またはクラス出力を有する場合がある。たとえば、粗い={会話なし、会話あり}、中間={会話なし、会話者1名、会話者複数名}、緻密={会話なし、会話者1名、会話者2名、会話者3名、等}である。
【００５１】
2)ロケーション(位置)分類部、たとえば緻密={家、オフィス、ミーティング}と粗い={家、仕事}とを含む設定を有する。この例では、粗い設定は、家状態と仕事状態とを衛星による位置測定に基づいて区別し、緻密な設定は、さらに、オフィス状態とミーティング状態とをオーディオデータ、Wi-Fiサインデータ等の追加の測定結果に基づいて区別する。
【００５２】
また、他の種のコンテクスト分類部も、上述した技法を用いて動作することができる。
【００５３】
図2に戻り、コンテクスト分類部230は、データソース210によって提供された出力ストリームに対応するデータをサンプリングおよび/または逆に取得する。データソース210から収集することが可能で、かつ、コンテクスト分類部230が利用可能な異なるストリームは、以下のものがある。他のデータストリームおよび/またはデータタイプであってもよい。
【００５４】
オーディオ環境。マイクロフォンデータのバッチを含み、当該バッチは、それぞれ、たとえば約1分等の特定の期間において取得される。
【００５５】
緯度/経度座標。(たとえば、GPSまたは別の衛星測位システムからの)ロケーション決定によって得られる。
【００５６】
Wi-Fiフィンガープリント。接続可能なWi-Fiアクセスポイントのセットと、それぞれから受信した信号強度とを含み、当該信号強度は、たとえば、信号強度表示(RSSI)として与えられ、またそれぞれの応答率(すなわち、連続スキャンが行われた際に接続可能な時間の割合)を含む。
【００５７】
ブルートゥース(BT)フィンガープリント。接続可能なBTデバイスと、それぞれの信号強度(たとえば、RSSIによって与えられる)と、それらのデバイスクラスと、それぞれの応答率と、を含む。
【００５８】
モーション状態。加速度計、ジャイロスコープ、および/または磁力計データのバッチを含み、当該バッチは、それぞれ、特定の期間において取得される(たとえば、約10から30秒)。
【００５９】
カレンダーイベント。イベントの説明および/またはタイトル、日時、ロケーション、参加者および/または他の関係のある人の名前等の情報を含む。
【００６０】
またコンテクスト分類部230は、データソース210を介して取得した下位レベルの特性および推測に基づいてコンテクスト分類を実行する。デバイスセンサデータまたは外部のソース(たとえばデータソース210)から計算できる、考えられる下位レベルの特性のリストは、以下の特性を含むが、以下に限定されるものではない。
GPS速度、精度、および高度。
接続可能なGPS衛星の数。
時刻、曜日、平日/週末、祝日。
天候および温度。
周辺光センサの読み。
近接センサの読み。
カメラデータ、強度、R/G/B強度、DCT(離散コサイン変換)係数などの特性、カメラの視野に検出された被写体。
興味のある最も近い地理的位置(POI)。
接続可能なブルートゥースデバイスおよび対応するRSSI、通信範囲内にある新規/既存のブルートゥースデバイス。
接続可能なWi-Fiアプリケーションおよび対応するRSSI、接続可能な新規/既存のWi-Fiアプリケーション。
周辺オーディオエネルギーレベル。
移動検出(何らかのデバイス移動ありかデバイス移動なしか)。
【００６１】
同様に、デバイスセンサデータまたは外部のソースから計算できる、考えられる下位レベルの推測のリストは、以下の推測を含むが、以下に限定されるものではない。
モーション状態(歩いている、走っている、運転している、等)。
デバイス位置(ポケット、手の中、机上、バッグ内、等)。
発話検出(発話あり/発話なし)。
スピーカ認識(デバイス所有者が話し中/他の人が話し中)。
話をしている人の数。
目的音の検出(赤ん坊が泣いている/泣いていない、等)。
ゾーン(家/仕事/その他/移動中または在宅中/ビジネス活動中、等)。
デバイス利用(1分ごとのスクリーンタッチの回数、1分ごとの文字のタイピング回数、等)。
ディスプレイがオンかオフか。
アプリケーション利用(実行しているアプリケーションの種類(たとえば、ゲーム、電子メール、等)、同時に実行しているアプリケーションの数、等)。
【００６２】
図1から図6に加え、さらに図7を参照し、コンテクスト分類を管理する処理700は、以下に示すステップを含むが、処理700は単なる一例であって以下に限定されるものではない。処理700は、たとえば、ステップを追加、省略、再配置、組み合わせる、および/または並行して実行することで変更可能である。説明および図示する以外の処理700に対するさらなる変更も可能である。
【００６３】
ステップ702において、コンテクスト分類の要求と、当該要求に関連付けされた粒度レベルとが受け付けられる。ここでは、たとえば、分類部コントローラ240が、アプリケーション620および/または他のソース等の1つまたは複数の分類要求のソース310から要求および粒度レベルを(たとえば、API610を介して実装されている)受け付ける。粒度レベルは、既定の粒度設定(たとえば、システム600によって示された、粗いおよび緻密な設定のように、利用できる設定のリストから選択された設定)として特定されていてもよく、システム400に関して上述のように処理される。代替的に、粒度レベルは、システム500に関して説明したように、利用可能な分類出力(状態、コンテクストクラス)のセットのサブセットに対応する。この点についてはさらに後述する。
【００６４】
ステップ704において、分類部コントローラ240は、受け付けた粒度レベルに対応するリソース利用レベルで、分類部(たとえば、コンテクスト分類部230)に、ステップ702で受け付けた分類要求に応じてコンテクスト分類を実行させる。リソース利用レベルは、電力利用、計算の複雑さ、ならびに/またはコンテクスト分類部230の性能および/もしくは効率を測定するための他の基準のうち少なくとも1つに関し定められる。上述したように、コンテクスト分類部230が所定の分類を実行するリソースレベルは、利用したセンサ特性の数、適用した分類技法および/もしくは当該分類技法に関するパラメータ、分類部のデューティサイクル、ならびに/またはデータソース210のサンプリングが実行される割合等に応じて調整してもよい。一般に、より上位の粒度入力は、高いリソース利用レベルに対応付けされ、より下位の粒度入力レベルは、低いリソース利用レベルに対応付けされる。
【００６５】
図1から図6に加え、さらに図8を参照し、利用可能な分類出力サブセットのセットに基づいてコンテクスト分類を管理する処理800は、以下のステップを含む。しかしながら、処理800は単なる例であって、以下に限定されるものではない。処理800は、たとえば、ステップを追加、省略、再配置、組み合わせる、および/または並行して実行することで変更可能である。説明および図示する以外のさらなる変更を処理800に対して行うことも可能である。
【００６６】
ステップ802において、コンテクスト分類について利用可能または許容された出力のセットが、たとえば、分類部コントローラ240によって特定される。利用可能な出力のセットのサブセットはそれぞれ、システム500に関して上述したように、このステップにおいて生成されてもよい。
【００６７】
ステップ804において、たとえばアプリケーション620および/または他の分類要求のソース310から、コンテクスト分類の要求が受け付けられる。当該要求は、ステップ802において特定された分類について利用可能な出力のセットのサブセットのうち、選択されたサブセットを含む。ステップ804において受け付けられた出力サブセットは、次に実行される分類についての分類出力を示すものである。判定において選択しなかった出力は分類部によって無視されてもよいし、システム500に関して上述したように、他の選択した出力にグループ化されてもよい。
【００６８】
ステップ806において、粒度レベルが、ステップ804において示された出力サブセットに割り当てられる。システム500に関して上述したように、粒度レベルの割り当ては、コンテクスト分類部230を管理する分類部コントローラ240および/またはコンテクスト分類部230自体によって行われる。
【００６９】
ステップ808において、分類部コントローラ240は、要求とともに、示された出力サブセットから1つの出力を選択することで、ステップ804において受け付けられた分類要求に応じて、分類部(たとえば、コンテクスト分類部230)に、ステップ806で判定した粒度レベルに対応するリソース利用レベルでコンテクスト分類を実行させる。リソース利用レベルは、処理700のステップ704に使用された基準と同様の基準に基づいて管理される。
【００７０】
図1から図6に加え、さらに図9を参照し、制御可能な粒度を有するコンテクスト分類を実行する処理900は、以下のステップを含む。しかしながら、処理900はあくまでも例であって、以下に限定されるものではない。処理900は、たとえば、ステップを追加、省略、再配置、組み合わせる、および/または並行して実行することで変更可能である。説明および図示する以外のさらなる変更を処理900に対して行うことも可能である。
【００７１】
ステップ902において、コンテクスト分類の要求と、当該要求に関連付けされた粒度レベルとが受け付けられる。ここでは、コンテクスト分類部230が、これらの入力を1つまたは複数のアプリケーション620または分類要求のソース310から受け付ける。ソース310からの入力は、直接的、または、たとえば分類部コントローラ240(API610として実装されている)を介して間接的に受け付けられる。上述したように、粒度レベルは、既定の粒度設定、利用可能な分類出力(たとえば、クラス)のサブセット、および/または他の情報に対応するものであり得る。
【００７２】
ステップ904において、ステップ902で受け付けられた粒度レベルに基づいてコンテクスト分類のためにリソース利用レベルが選択される。図7に示した処理700と同様に、リソースレベルは、1つまたは複数の基準に基づいて構成され得、当該基準としては、以下に限定されるものではないが、利用したセンサ特性の数、適用した分類技法および/または当該分類技法に関するパラメータ、分類部のデューティサイクル、および/またはデータソース210のサンプリングが実行される割合、等が挙げられる。一般に、より上位の粒度入力は、高いリソース利用レベルに対応付けされ、より下位の粒度入力レベルは、低いリソース利用レベルに対応付けされる。
【００７３】
ステップ906において、ステップ902で要求されたコンテクスト分類が、ステップ904において選択されたリソース利用レベルに従って実行される。コンテクスト分類が完了すると、分類結果が要求のソースへと直接的、または、(たとえば、分類部コントローラ240を介して)間接的に戻される。
【００７４】
図1から図6に加え、さらに図10を参照し、既定の粒度設定に基づいてコンテクスト分類を実行する処理1000は、以下に示すステップを含む。しかしながら、処理1000はあくまでも例であって、以下に限定されるものではない。処理1000は、たとえば、ステップを追加、省略、再配置、組み合わせる、および/または並行して実行することで変更可能である。説明および図示する以外のさらなる変更を処理1000に対して行うことも可能である。
【００７５】
ステップ1002において、関連する粒度レベルとともにコンテクスト(状態)分類要求が受け付けられる。粒度レベルは、既定の粒度レベルのセットから選択され、ここでは、粗い、および緻密、を示す値を含む。追加の、および/または他の設定を、処理1000に関する説明と同様にして使用でき得る。
【００７６】
ステップ1004において、ステップ1002で受け付けられた粒度入力の値に応じて処理1000が分岐する。粗い、を示す値が受け付けられた場合、粒度が粗い分類部コンフィギュレーションを使用して、ステップ1006において要求されたコンテクスト分類が実行される。代わりに緻密、を示す値が受け付けられた場合には、粒度が緻密な分類部コンフィギュレーションを適用して、ステップ1008において要求されたコンテクスト分類が実行される。システム400に関して上述したように、コンテクスト分類部230は、当該コンテクスト分類部230が利用可能な粒度設定のそれぞれに対応するコンフィギュレーションパラメータ410の各セットを維持する。これらのコンフィギュレーションパラメータ410は、各粒度設定におけるコンテクスト分類部230のリソース利用レベルを定義する。ステップ1006およびステップ1008における分類に関し、粒度が粗い分類部コンフィギュレーションは、粒度が緻密な分類部コンフィギュレーションと比較して、電力および/または他のリソース利用が低くなる。これは、一般に、上述のとおり、粒度が緻密な分類部コンフィギュレーションと比較して、デューティサイクルが低く、分類技法が粗いもので、分類部特性が少なく、および/または他の属性が少ないことによる。
【００７７】
ステップ1010において、ステップ1006あるいはステップ1008において実行された分類の結果が要求元のエンティティ、たとえば、アプリケーション620および/または他の要求のソース310、API610および/または分類部コントローラ240等に戻される。
【００７８】
図1から図6に加え、さらに図11を参照し、利用可能な分類出力サブセットのセットに基づいてコンテクスト分類を実行する処理1100は、以下のステップを含む。しかしながら、処理1100はあくまでも例であって、以下に限定されるものではない。処理1100は、たとえば、ステップを追加、省略、再配置、組み合わせる、および/または並行して実行することで変更可能である。説明および図示する以外のさらなる変更を処理1100に対して行うことも可能である。
【００７９】
ステップ1102において、コンテクスト分類について利用可能な出力のサブセットのセットが特定される。ステップ1102において実行された動作は、上述した処理800のステップ802において実行された動作と同様であり、また、システム500に関して説明した動作とも同様である。
【００８０】
ステップ1104において、ステップ1102にて特定した各サブセットが、分類部粒度コンフィギュレーションに割り当てられる。この分類部粒度コンフィギュレーションは、たとえば、利用したセンサ特性の数、適用した分類技法および/または当該分類技法に関するパラメータ、分類部のデューティサイクル、および/またはデータソース210のサンプリングが実行される割合等の関連するコンテクスト分類部230の様々な属性を制限する。したがって、ステップ1104において割り当てられた分類部粒度コンフィギュレーションは、コンテクスト分類部230のリソース利用レベルを定義するものであり、これは、処理700のステップ704に関しての上記の説明と同様である。
【００８１】
ステップ1106において、コンテクスト分類の要求が、分類について利用可能な出力のサブセットの1つのセットとともに(たとえば、要求のソース310または分類部コントローラ240からコンテクスト分類部230で)受け付けられる。これは、処理800のステップ804において実行される動作と同様である。
【００８２】
ステップ1108において、ステップ1106において要求されたコンテクスト分類が、分類要求とともに受け付けられた利用可能な出力のサブセットにステップ1104で割り当てられた分類部粒度コンフィギュレーションを用いて実行される。ここで、システム500に関して上述したように、利用可能な出力のサブセットであって受け付けられたサブセットから、サンプリングしたセンサデータ(たとえば、データソース210から取得されたデータ)に最も近い特徴を有する出力を選択することによって、分類が実行される。
【００８３】
図12に示すコンピュータシステム1200は、上述したコンピュータ式デバイスの機能を少なくとも部分的に実装するために利用することができる。たとえば、コンピュータシステム1200は、図7から図11に示した処理700、800、900、1000および1100を少なくとも部分的にソフトウェアで実装することができる。コンピュータシステム1200は、また、たとえば、汎用プロセッサ111、および/またはメモリ140等の図1に示すモバイルデバイス100の1つまたは複数の構成要素によって実現することができる。さらに、コンピュータシステム1200は、追加的に、あるいは、代替的に、図2に示すシステム200および/または1つまたは複数のその構成要素、たとえば、モジュール230、240を少なくとも部分的にソフトウェアで実現するために用いることもできる。
【００８４】
図12は、本明細書に説明するように他の様々な実施の形態によって提供される方法を実行でき、および/またはモバイルデバイスあるいは他のコンピュータシステムとして機能することができるコンピュータシステム1200の1つの実施の形態の概要を示す図である。図12は、あくまでも様々な構成要素を一般的に示すものであり、これらのいずれかまたは全部を適宜利用することが可能である。したがって、図12は、システムの個別の要素が、相対的に別で、あるいは相対的により一体的にどのようにして実装されるのかを広義に示すものである。
【００８５】
図示するコンピュータシステム1200は、バス1205を介して電気的に結合された(あるいはそうでなければ、適宜通信可能である)ハードウェア要素を備える。当該ハードウェア要素は、1つまたは複数のプロセッサ1210を含み、当該プロセッサには、1つまたは複数の汎用プロセッサおよび/または1つまたは複数の専用プロセッサ(たとえば、デジタル信号処理チップ、グラフィックアクセレレーションプロセッサ、等)が含まれてよい。また、ハードウェア構成要素には、以下に限定されるものではないが、マウス、キーボード等の1つまたは複数の入力デバイス1215と、同様に以下に限定されるものではないが、ディスプレイ装置、プリンタ等の1つまたは複数の出力デバイス1220と、を含む。プロセッサ1210は、たとえば、インテル(登録商標)社やAMD(登録商標)社が製造するセントラルプロセッシングユニット(CPU)や、マイクロコントローラや、ASIC等の高度なハードウェアデバイスを含んでもよい。他の種のプロセッサを用いることも可能である。
【００８６】
コンピュータシステム1200は、さらに、1つまたは複数の非一時的なストレージデバイス1225を含み(および/または通信状態である)当該ストレージデバイスは、以下に限定されるものではないが、ローカルおよび/もしくはネットワークアクセス可能なストレージを備え、ならびに/または以下に限定されるものではないが、ディスクドライブ、ドライブアレイ、光学式ストレージデバイス、ランダムアクセスメモリ(RAM)および/もしくはリードオンリーメモリ(ROM)等のプログラミング可能、フラッシュアップデート可能等であるソリッドステートストレージデバイスを含む。当該ストレージデバイスは、様々なファイルシステム、データベース構造等を含むがそれに限定されない、任意の適切なデータストアを実装するように構成され得る。
【００８７】
コンピュータシステム1200は、また、通信サブシステム1230を備えてもよく、当該通信サブシステムは、以下に限定されるものではないが、モデム、(無線または有線式)ネットワークカード、赤外線通信デバイス、ワイヤレス通信デバイスおよび/またはチップセット(たとえば、ブルートゥース(商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備)等を含む。通信サブシステム1230は、また、ネットワーク(たとえば、以下に説明する一例としてのネットワーク)、他のコンピュータシステム、および/または本明細書に説明する他のデバイスとのデータ交換を可能とする。多くの実施の形態において、コンピュータシステム1200は、さらに、上述したRAMまたはROMデバイスを含む作業メモリ1235を備える。
【００８８】
コンピュータシステム1200はまた、ソフトウェア要素を備えることも可能であり、これらは、作業メモリ1235内に現在位置していると示されるが、オペレーティングシステム1240と、デバイスドライバと、実行可能なライブラリと、および/または、たとえば1つまたは複数のアプリケーションプログラム1245等の他のコードとを含む。当該アプリケーションプログラムは、様々な実施の形態によって提供されるコンピュータプログラムを含み、および/または、上記方法を実装するように設計され、および/または、本明細書で説明する、他の実施の形態によって提供されるシステムを構成する。単に一例にすぎないが、上述した方法に関して説明した1つまたは複数の手順は、コンピュータ(および/またはコンピュータ内のプロセッサ)が実行可能なコードおよび/または命令として実装され、当該コードおよび/または命令は、汎用コンピュータ(あるいは他のデバイス)を構成および/または適応させて、上述した方法に従った1つまたは複数の動作を実行させるように使用できる。
【００８９】
これらの命令および/またはコードのセットは、上述したストレージデバイス1225等のコンピュータ可読記憶媒体に記憶され得る。場合によっては、記憶媒体は、システム1200等のコンピュータシステムに組み込まれ得る。他の実施の形態においては、記憶媒体は、コンピュータシステムとは別体(たとえば、コンパクトディスク等の取り外し可能な媒体)、および/または、インストレーションパッケージとして提供され得、当該記憶媒体は、汎用のコンピュータを、記憶された命令/コードを用いてプログラミング、構成、および/または適応するために用いられ得る。これらの命令は、コンピュータシステム1200が実行可能なコードの形態を取ることが可能であり、ならびに/または、(たとえば、一般的に利用可能なコンパイラ、インストレーションプログラム、圧縮/解凍ユーティリティのいずれかを用いて)コンピュータシステム1200にコンパイルおよび/もしくはインストールされるソースおよび/もしくはインストール可能なコードの形態を取ることもあり、そして、実行可能なコードの形態を取る。
【００９０】
特定の要望に応じて、実体的な変更を行うことも可能である。たとえば、カスタマイズされたハードウェアを使用することも可能であり、および/または、特定の要素をハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、あるいは両方で実装してもよい。さらに、ネットワーク入力/出力デバイス等の他のコンピュータデバイスへの接続を採用し得る。
【００９１】
コンピュータシステム(たとえば、コンピュータシステム1200)は、本開示に従う方法を実行するために用いられる。当該方法のいくつかのあるいは全ての手順は、作業メモリ1235に記憶された1つまたは複数の命令(これは、オペレーティングシステム1240および/またはアプリケーションプログラム1245等の他のコードに取り込まれている場合がある)の1つまたは複数のシーケンスを実行するプロセッサ1210に応じて、コンピュータシステム1200に実行される。当該命令は、他のコンピュータ可読媒体、たとえば、1つまたは複数のストレージデバイス1225から作業メモリ1235に読み込まれる場合もある。あくまでも一例であるが、作業メモリ1235に記憶された命令のシーケンスの実行は、プロセッサ1210に、本明細書で説明した方法の1つまたは複数の手順を実行させる。
【００９２】
本明細書において使用される、「機械可読媒体」および「コンピュータ可読媒体」の語は、機械を特定の方法で動作させるデータを提供するのに関与する任意の媒体を意味する。コンピュータシステム1200を用いて実装される1つの実施の形態においては、プロセッサ1210に命令/コードを提供する多様なコンピュータ可読媒体が用いられ得、これら命令/コードは、実行されるために提供され、ならびに/または、記憶および/もしくは(たとえば信号として)搬送するために用いられ得る。多くの実現形態において、コンピュータ可読媒体は、物理的および/または有体の記憶媒体である。当該媒体は、多様な形態を取り、以下に限定されるものではないが、不揮発性媒体、揮発性媒体、および伝送媒体を含む。不揮発性媒体としては、たとえば、ストレージデバイス1225のような光および/または磁気ディスクが含まれる。揮発性媒体としては、以下に限定されるものではないが、作業メモリ1235等のダイナミックメモリが含まれる。伝送媒体としては、以下に限定されるものではないが、バス1205および通信サブシステム1230の他の構成要素(および/または通信サブシステム1230を他のデバイスと通信可能とする媒体)を構成する配線を含む、同軸ケーブル、銅線、光ファイバが含まれる。したがって、伝送媒体は、(以下に限定されるものではないが、たとえば、無線波通信および赤外線データ通信の際に生成される無線、音響および/または光波形を含む)波形の形態を取ることができる。
【００９３】
物理的および/または有体のコンピュータ可読媒体の一般的な形態としては、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープもしくは他の磁気的媒体、CD-ROM、ブルーレイディスク、他の光学媒体、パンチカード、紙テープ、穴のパターンを有する他の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、他のメモリチップもしくはカートリッジ、以下に説明する搬送波、またはコンピュータが命令および/もしくはコードを読み取ることが可能なその他の任意の媒体が含まれる。
【００９４】
コンピュータ可読媒体の多様な形態は、プロセッサ1210に、実行のために1つまたは複数の命令の1つまたは複数のシーケンスを搬送する動作にも関連する。あくまでも一例であるが、最初に、命令はリモートコンピュータの磁気ディスクおよび/または光ディスクに記憶される。当該リモートコンピュータは、命令を自己のダイナミックメモリにロードし、信号として命令をコンピュータシステム1200に伝送媒体を介して送り、当該コンピュータシステム1200は命令を受け付け、および/または実行する。これらの信号は、たとえば、電磁信号、音響信号、光信号等の形態を取り得るが、これらは全て、本発明の様々な実施の形態に従って、命令をエンコードする搬送波の例である。
【００９５】
通信サブシステム1230(および/またはその構成要素)は、一般に、信号を受信し、次に、バス1205は、信号(および/または信号によって伝送されたデータ、命令、等)を作業メモリ1235に送り、プロセッサ1205は、当該命令を読み出して実行する。作業メモリ1235が受け付けた命令は、プロセッサ1210に実行される前または後に任意にストレージデバイス1225に記憶されてもよい。
【００９６】
上述した方法、システム、およびデバイスは例である。様々な代替的な構成により、多様な手順または構成要素を適宜省略、代替、あるいは追加することを可能にする。たとえば、代替的な方法においては、上述した順序とは異なる順序でステップを実行してもよいし、多様なステップを追加、省略、あるいは組み合わせてもよい。特定の構成に関して説明した特徴についても、他の様々な構成と組み合わせてもよい。構成について、異なる技術的視点や要素を、同様に組み合わせてもよい。また、技術は進歩してゆくものであるから、多くの要素は例であり、本明細書の開示および特許請求の範囲の技術的範囲を限定するものではない。
【００９７】
(実装を含む)構成の例について理解を容易にするため、本明細書において具体的な説明を行っている。しかしながら、当該構成は、具体的な詳細なしで実施可能である。たとえば、公知の回路、処理、アルゴリズム、構成、および技法については、構成を不明確とすることを避けるため、詳細について説明しなかった。本明細書は、構成の例を提示するためだけのものであり、特許請求の範囲に記載した範囲、利用可能性、または構成を限定するためのものではない。むしろ、構成についての前述の説明によって、当業者は、上述した技法を実現可能になる。本開示の精神または範囲から逸脱することなく、要素の機能や配置に様々な変更を加えてもよい。
【００９８】
構成については、フローチャートやブロック図で示すように処理としても説明できる。それぞれ連続した処理として示したが、多くの動作については、並行または同時に行うことが可能である。また、動作の順序については、変更してもよい。処理は、図に示したもの以外のステップを追加で含んでもよい。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、あるいは任意のこれらの組合せによって実装できる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装する場合、必須のタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体等の非一時的なコンピュータ可読媒体に記憶される。プロセッサが上述したタスクを実行する。
【００９９】
特許請求の範囲の記載を含み、本明細書において使用されるように、複数の項目のリストにおいて「少なくとも1つ」の表現の前置きとして用いた「または」の語は、選語的なリストを示すもので、たとえば、「A、B、またはCの少なくとも1つ」は、AまたはBまたはCまたはABまたはACまたはBCまたはABC(すなわち、AおよびBおよびC)、あるいは複数の特徴の組合せ(たとえば、AA、AAB、ABBC、等)をリストアップするものである。
【０１００】
特に断りがない限り、特許請求の範囲の記載を含み、本明細書において使用されるように、項目や条件に「基づく」機能や動作は、記載した項目や条件に基づく機能や動作であり、記載した項目や条件に加えて、1つまたは複数の項目および/または条件に基づくものであり得る。
【０１０１】
いくつかの構成の例について説明したが、多様な変更、代替的な構成および均等物を本明細書による開示の精神から逸脱することなく使用できる。たとえば、上述した要素は、より大規模なシステムの構成要素でもあってよく、そこでは、上位の規則が本発明の適用よりも優先され、あるいは、本発明の適用に変更を加え得る。また上述した要素を考慮する前に、その間に、あるいはその後に、いくつかのステップが実行されてもよい。したがって、上記の説明は特許請求の範囲から逸脱するものではない。
【符号の説明】
【０１０２】
100  モバイルデバイス
101  バス
111  汎用プロセッサ
112  DSP
120  インターフェース
121  ワイヤレス送受信部
135  センサ
140  メモリ
210  データソース
212  オーディオセンサ
214  ロケーションセンサ
216  ネットワークセンサ
218  モーションセンサ
220  カレンダー/アポイントメント記録
222  日時
224  デバイス利用
226  光および/またはカメラセンサ
230  コンテクスト分類部
240  分類部コントローラ
310  分類要求ソース
410  コンフィギュレーションパラメータ
510  分類部コンフィギュレーションマネージャ
610  アプリケーションプログラミングインターフェース
620、1245  アプリケーション
632  粗い粒度のモーション状態分類部
634  緻密な粒度のモーション状態分類部
1200  コンピュータシステム
1210  プロセッサ
1215  入力デバイス
1220  出力デバイス
1225  ストレージデバイス
1230  通信サブシステム
1235  作業メモリ
1240  オペレーティングシステム
【図１】
0006410787.tif 000002
【図２】
0006410787.tif 000003
【図３】
0006410787.tif 000004
【図４】
0006410787.tif 000005
【図５】
0006410787.tif 000006
【図６】
0006410787.tif 000007
【図７】
0006410787.tif 000008
【図８】
0006410787.tif 000009
【図９】
0006410787.tif 000010
【図１０】
0006410787.tif 000011
【図１１】
0006410787.tif 000012
【図１２】
0006410787.tif 000013