IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7649599センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出)
<>
  • 特許-センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出) 図1
  • 特許-センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出) 図2
  • 特許-センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出) 図3
  • 特許-センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出) 図4
  • 特許-センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出) 図5
  • 特許-センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出) 図6
  • 特許-センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出) 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-12
(45)【発行日】2025-03-21
(54)【発明の名称】センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品(センサ非依存のジェスチャ検出)
(51)【国際特許分類】
   G06F 3/01 20060101AFI20250313BHJP
   G06T 7/20 20170101ALI20250313BHJP
【FI】
G06F3/01 570
G06T7/20 300A
【請求項の数】 20
(21)【出願番号】P 2021170704
(22)【出願日】2021-10-19
(65)【公開番号】P2022068123
(43)【公開日】2022-05-09
【審査請求日】2024-03-19
(31)【優先権主張番号】17/075,741
(32)【優先日】2020-10-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】バーゲン、リャマス、ポール
(72)【発明者】
【氏名】ゴンザレス、バラハス、エマニュエル
【審査官】冨永 昌彦
(56)【参考文献】
【文献】特表2017-506794(JP,A)
【文献】米国特許出願公開第2016/0345407(US,A1)
【文献】特表2014-535100(JP,A)
【文献】特開2018-142313(JP,A)
【文献】特開2015-130172(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048 - 3/04895
G06T 7/00 - 7/90
(57)【特許請求の範囲】
【請求項1】
第1のユーザ装置からのセンサ出力を使用して、ユビキタスジェスチャエージェントに関連付けられた第1のユーザプロファイルにジェスチャを記録することと、
前記ジェスチャを示し、前記センサ出力に基づくトリガ閾値と、前記ユーザプロファイルに関連付けられた複数のユーザデバイスの1つによって実行可能なプロセッサ実行可能アクションとに、前記ジェスチャを関連付けることと、
前記トリガ閾値を異なるタイプのセンサに対応するトリガ閾値に変換することと、
前記対応するトリガ閾値を満たす前記異なるタイプのセンサからのデータを使用して前記ジェスチャを識別することと、
前記複数のユーザデバイスのうちの1つによって、前記ジェスチャに関連付けられた前記プロセッサ実行可能アクションを実装することと、
を含む、コンピュータ実装方法。
【請求項2】
前記ユビキタスジェスチャエージェントは、パブリッククラウド環境でホストされる、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記異なるタイプのセンサは、前記第1のユーザプロファイルに関連付けられる、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記異なるタイプのセンサは、前記ユビキタスジェスチャエージェントに記憶された異なるユーザプロファイルに関連付けられる、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記異なるタイプのセンサは、スマートビルディング内のカメラである、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記センサ出力は、加速度計からの加速度データを含み、前記対応するトリガ閾値は、前記スマートビルディング内の前記カメラからのビデオデータから推測される加速度に基づく、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記プロセッサ実行可能アクションは、アクチュエータを起動すること、リモートサーバにアクセスすること、およびスマートフォン上でアクションを実行することからなるグループから選択される、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記方法は、遠隔データ処理システムから1つまたは複数のコンピュータにダウンロードされるソフトウェアに従って、前記1つまたは複数のコンピュータによって実行される、請求項1に記載のコンピュータ実装方法。
【請求項9】
前記方法は、
前記ソフトウェアの使用量を計測することと、
前記使用量を測定することに基づいて請求書を生成することと、
をさらに含む、請求項8に記載のコンピュータ実装方法。
【請求項10】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行された場合に、前記1つまたは複数のプロセッサに方法を実行させるように構成された、プログラム命令を記憶する1つまたは複数のコンピュータ可読記憶媒体と、を含み、前記方法は、
第1のユーザ装置からのセンサ出力を使用して、ユビキタスジェスチャエージェントに関連付けられた第1のユーザプロファイルにジェスチャを記録することと、
前記ジェスチャを示し、前記センサ出力に基づくトリガ閾値と、前記ユーザプロファイルに関連付けられた複数のユーザデバイスの1つによって実行可能なプロセッサ実行可能アクションとに、前記ジェスチャを関連付けることと、
前記トリガ閾値を異なるタイプのセンサに対応するトリガ閾値に変換することと、
前記対応するトリガ閾値を満たす前記異なるタイプのセンサからのデータを使用して前記ジェスチャを識別することと、
前記複数のユーザデバイスのうちの1つによって、前記ジェスチャに関連付けられた前記プロセッサ実行可能アクションを実装することと、
を含む、システム。
【請求項11】
前記異なるタイプのセンサは、前記第1のユーザプロファイルに関連付けられる、請求項10に記載のシステム。
【請求項12】
前記異なるタイプのセンサは、前記ユビキタスジェスチャエージェントに記憶された異なるユーザプロファイルに関連付けられる、請求項10に記載のシステム。
【請求項13】
前記異なるタイプのセンサは、スマートビルディング内のカメラであり、前記センサ出力は、加速度計からの加速度データを含み、前記対応するトリガ閾値は、前記スマートビルディング内の前記カメラからのビデオデータから推測される加速度に基づく、請求項10に記載のシステム。
【請求項14】
前記プロセッサ実行可能アクションは、アクチュエータを起動すること、リモートサーバにアクセスすること、およびスマートフォン上でアクションを実行することからなるグループから選択される、請求項10に記載のシステム。
【請求項15】
1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令とを含み、前記プログラム命令は、前記1つまたは複数のプロセッサに、
第1のユーザ装置からのセンサ出力を使用して、ユビキタスジェスチャエージェントに関連付けられた第1のユーザプロファイルにジェスチャを記録することと、
前記ジェスチャを示し、前記センサ出力に基づくトリガ閾値と、前記ユーザプロファイルに関連付けられた複数のユーザデバイスの1つによって実行可能なプロセッサ実行可能アクションとに、前記ジェスチャを関連付けることと、
前記トリガ閾値を異なるタイプのセンサに対応するトリガ閾値に変換することと、
前記対応するトリガ閾値を満たす前記異なるタイプのセンサからのデータを使用して前記ジェスチャを識別することと、
前記複数のユーザデバイスのうちの1つによって、前記ジェスチャに関連付けられた前記プロセッサ実行可能アクションを実装することと、
を含む方法を実行させるように構成された命令を含む、コンピュータプログラム製品。
【請求項16】
前記異なるタイプのセンサは、前記第1のユーザプロファイルに関連付けられる、請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記異なるタイプのセンサは、前記ユビキタスジェスチャエージェントに記憶された異なるユーザプロファイルに関連付けられる、請求項15に記載のコンピュータプログラム製品。
【請求項18】
前記異なるタイプのセンサは、スマートビルディング内のカメラであり、前記センサ出力は、加速度計からの加速度データを含み、前記対応するトリガ閾値は、前記スマートビルディング内の前記カメラからのビデオデータから推測される加速度に基づく、請求項15に記載のコンピュータプログラム製品。
【請求項19】
前記プロセッサ実行可能アクションは、アクチュエータを起動すること、リモートサーバにアクセスすること、およびスマートフォン上でアクションを実行することからなるグループから選択される、請求項15に記載のコンピュータプログラム製品。
【請求項20】
前記プログラム命令は、遠隔データ処理システムから前記1つまたは複数のコンピュータ可読記憶媒体にダウンロードされ、前記方法は、
前記プログラム命令の使用量を計測することと、
前記使用量を測定することに基づいて請求書を生成することと、
をさらに含む、請求項15に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モノのインターネット(IoT)に関し、より具体的には、IoT環境におけるセンサ非依存のジェスチャ検出に関する。
【背景技術】
【0002】
IoTとは、センサ、ソフトウェア、その他のデータ処理機能が組み込まれた物理オブジェクトのネットワークを指し、物理オブジェクトと他のデバイスとの間でさまざまな目的のためにデータを交換することを集合的に可能にする。ユーザーはますます、IoT対応デバイスに囲まれるようになっている。その結果、ヒューマンマシンインタフェースでのユーザビリティを容易にするために、IoT対応デバイスがますます使用されるようになっている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
センサ非依存のジェスチャ検出のためのコンピュータ実装方法、システムおよびコンピュータプログラム製品を提供する。
【課題を解決するための手段】
【0004】
本開示の態様は、第1のユーザ装置からのセンサ出力を使用して、ユビキタスジェスチャエージェントに関連付けられた第1のユーザプロファイルにジェスチャを記録することを含むコンピュータ実装方法に向けられる。この方法は、ジェスチャを示し、センサ出力に基づくトリガ閾値と、ユーザプロファイルに関連付けられた複数のユーザデバイスのうちの1つによって実行可能なプロセッサ実行可能アクションとにジェスチャを関連付けることをさらに含む。本方法は、トリガ閾値を異なるタイプのセンサに対応するトリガ閾値に変換することをさらに含む。本方法は、対応するトリガ閾値を満たす異なるタイプのセンサからのデータを用いてジェスチャを識別することをさらに含む。本方法は、複数のユーザ装置のうちの1つによって、ジェスチャに関連付けられたプロセッサ実行可能アクションを実行することをさらに含む。
【0005】
本開示のさらなる態様は、上述の方法を実行するように構成されたシステムおよびコンピュータプログラム製品に向けられる。本概要は、本開示の各局面、各実施例、もしくは各実施形態またはその組み合わせを説明することを意図したものではない。
【0006】
本願に含まれる図面は、明細書に組み込まれ、明細書の一部を形成する。これらは、本開示の実施形態を例示し、説明と共に、本開示の原理を説明するのに役立つ。図面は、特定の実施形態の例示に過ぎず、開示を限定するものではない。
【図面の簡単な説明】
【0007】
図1】本開示のいくつかの実施形態による、ユビキタスジェスチャエージェントを含むコンピュータ環境の例を示すブロック図である。
図2】本開示のいくつかの実施形態による、ユビキタスジェスチャエージェントを利用するための方法の例を示すフローチャートである。
図3】本開示のいくつかの実施形態による、ユビキタスジェスチャエージェントを使用してジェスチャを定義するための方法の例を示すフローチャートである。
図4】本開示のいくつかの実施形態による、ジェスチャに当初関連付けられたセンサと同じまたは異なるセンサを使用してジェスチャを識別するための方法の例を示すフローチャートである。
図5】本開示のいくつかの実施形態による、コンピュータの例を示すブロック図である。
図6】本開示のいくつかの実施形態によるクラウドコンピューティング環境を示す図である。
図7】本開示のいくつかの実施形態による抽象モデルレイヤを示す図である。
【発明を実施するための形態】
【0008】
本開示は、種々の修正および代替形態に応じるが、その詳細は、例として図面に示されており、詳細に説明される。しかしながら、本開示を説明した特定の実施形態に限定する意図はないことを理解されたい。反対に、意図は、本開示の精神および範囲内にあるすべての改変、均等物および代替物を包含することである。
【0009】
本開示の態様は、モノのインターネット(IoT)、より具体的には、IoT環境におけるセンサ非依存のジェスチャ検出に向けられる。そのような用途に限定されないが、本開示の実施形態は、前述の文脈を踏まえ、よりよく理解され得る。
【0010】
ジェスチャ(身振り)とは、アイデアや意味を表現する、体の1つ以上の部分(一般的には手や頭)の動きのことである。ジェスチャは、ジェスチャを検出することができるセンサを備えたデバイス、またはジェスチャを検出することができるセンサを備えたデバイスと通信可能に結合されたデバイスにおいて、予めプログラムされた機能を動作するために使用することができる。例えば、デバイスは、スマートウォッチ、スマートフォン、イヤホン、鍵(例えば、車両、家屋などの)、健康モニタなどを含むことができるが、これらに限定されない。検出され、予めプログラムされたジェスチャは、デバイス上でアクションを実行するように構成することができる。アクションには、たとえば、スマートフォンのロック解除、緊急サービスへの連絡、緊急信号の発行、通話、メッセージの送信、アプリケーションとの対話(例えば、健康関連のアプリケーションにおける運動の開始または停止)、リモートサーバへのアクセス(例えば、データの書き込みもしくはデータの取り出しまたはその両方)、物理アクチュエータの起動(例えば、ドアのロック解除)などがある。全体として、ジェスチャを事前にプログラムされたアクションと関連付けることは、IoT環境におけるさまざまなデバイスの使いやすさを向上させるのに役立つ可能性がある。
【0011】
予めプログラムされたジェスチャに関連する1つの課題は、様々なデバイスにそれぞれ関連する様々なジェスチャに関する。つまり、スマートウォッチを振るジェスチャは、スマートフォンのアプリを起動させるために使われるのが一般的だが、ユーザが自分のスマートウォッチを忘れてしまった場合、そのジェスチャは役に立たない。事前にプログラムされたジェスチャに関連するこの課題および他の課題に対処するために、本開示の態様は、センサ非依存のジェスチャ検出のための方法、システム、およびコンピュータプログラム製品に向けられる。
【0012】
本開示の態様は、種々の記録されたジェスチャおよびそれらの関連するアクションを記憶するためのユビキタスジェスチャエージェントを使用することによって、センサに依存しないジェスチャ検出を可能にする。ユビキタスジェスチャエージェントは、続いて、第1のデバイスからの第1のタイプのセンサ出力によって定義されるジェスチャを、第2のデバイスからの第2のタイプのセンサ出力によって測定可能な変換された出力に変えることができる。例えば、スマートウォッチを振る前述の例に続いて、ユビキタスジェスチャエージェントは、スマートウォッチに関連する加速度計データを、スマートフォンに関連する加速度計データに変換することができる。これにより、ユーザは、スマートウォッチを振る代わりに、スマートフォンを振ることによって同様の結果を得ることができる(例えば、アプリケーションの起動)。別の例として、ユビキタスジェスチャエージェントは、スマートウォッチに関連する加速度計データをカメラに関連するモーションデータに変換することができる(例えば、スマートビルディングのIoT機能を利用するためにユーザーがオプトインできるスマートビルディングのカメラ)。このように、ユーザは、スマートウォッチを振る代わりに、その代わりに手を振ることができ、これが、スマートビルディングのカメラによって検出されると、ユビキタスエージェントに命令を送信し、次に、スマートフォンにアクション(例えば、アプリケーションの起動)を実行させる。
【0013】
したがって、本開示の態様は、多くの利点および改善を実現する。1つの一般的な例として、本開示の態様は、典型的にまたは最初にそれらのジェスチャを検出した装置がなくても、ユーザがジェスチャを利用できるようにすることによって、ユーザビリティを向上させる。より具体的には、本開示の態様は、1つのタイプのセンサによって検出可能なトリガ閾値を、別のタイプのセンサによって検出可能な対応するトリガ閾値に変換することができる。さらに、本開示の態様は、クラウドにホストされたユビキタスジェスチャエージェントを利用して、この機能を可能にする。クラウドにホストされたユビキタスジェスチャエージェントを使用することで、ユーザデバイスから計算資源を浪費することなく、ほぼ継続的可用性を実現する。さらに、ユビキタスジェスチャエージェントは、スマートビルディングやその他のIoTリソースとのやり取りの簡素化を助長し、ユーザーが自分の領域でIoTリソースを活用できるようにします。まとめると、これらの改善点、利点、および機能性はセンサ非依存のジェスチャ検出として要約できる。
【0014】
図を参照すると、図1は、本開示のいくつかの実施形態による、コンピュータ環境の例を示している。コンピュータ環境は、ネットワーク138を介して、ユーザプロファイル102に関連付けられた複数のユーザ装置132と、1つまたは複数の環境センサ136とに通信可能に結合されたユビキタスジェスチャエージェント100を含む。ユビキタスジェスチャエージェント100は、センサ非依存のジェスチャ検出を可能にする機能を提供するように構成することができる。換言すれば、ユビキタスジェスチャエージェント100は、第1のセンサ1 134-1によって記録され、それによって検出可能なジェスチャを、例えば、センサ2 134-2(例えば、ユーザプロファイル102に関連する別のセンサ)または環境センサ136(例えば、異なるユーザプロファイル(不図示)に関連付けられているが、それでもユビキタスジェスチャエージェント100を介してユーザプロファイル102に機能を提供することができるセンサ)などの異なるタイプのセンサによって検出可能にする機能性を提供することができる。
【0015】
ユビキタスジェスチャエージェント100は、ユーザプロファイル102のような多数のユーザプロファイルを含むことができる。ユーザプロファイルは、個々のユーザ(例えば人)、事業、企業、自治体、商業ビル、住宅ビルなどに関連付けることができる。ユーザプロファイル102は、記録されたジェスチャ104を含むことができる。記録されたジェスチャ104は、記録されたジェスチャ104を示すセンサ出力108を提供する複数のユーザ装置132のうちの少なくとも1つのユーザデバイスに関連付けられた少なくとも1つのセンサ134を識別するセンサID106を含むことができる。センサ出力108は、記録されたジェスチャ104を示す少なくとも1つのセンサ134から収集された生データを提示することができる。値カテゴリ110は、生データのタイプもしくはセンサ出力108からの生データに関連する測定単位またはその両方を識別することができる。一例として、値カテゴリ110は、生データのタイプもしくは生データに関連する測定単位またはその両方として、それぞれ、「加速度」もしくは「メートル/秒2」またはその両方をリストすることができる。
【0016】
ユーザプロファイル102は、閾値112をさらに含むことができる。閾値112は、センサID106、センサ出力108、もしくは値カテゴリ110またはその組み合わせを取り込み、記録されたジェスチャ104を識別するのに有用な閾値を生成するように構成することができる。したがって、閾値112は、サニタイズ化データ114、正規化データ116、もしくはスケール化データ118またはその組み合わせを含むことができる。サニタイズ化データ114は、誤りのあるデータ、異常なデータ、または不要なデータを除去することによって生成することができる。サニタイズ化データ114は、センサ出力108から他のデータを推測するためにも使用することができる。例えば、センサ出力108が加速度を測定する場合、サニタイズ化データ114は、生の加速度測定値を加速度のそれぞれの変化に変換することができ、加速度の変化は、加速度データ自体よりも、記録されたジェスチャ104を識別するためのより有用な測定基準である場合がある。正規化データ116は、センサ出力108を0と1との間(両端を含む)で正規化するように構成することができる。スケール化データ118は、正規化データ116の代替である。スケール化データ118は、センサ出力108の平均(または中央値)が0に設定されるように、センサ出力108をシフトするように構成することができる。正規化データ116もしくはスケール化データ118またはその両方は、データ評価を単純化しもしくは標準化しまたはその両方をすることができる。
【0017】
サニタイズ化データ114、正規化データ116、もしくはスケール化データ118またはその組み合わせが、センサ出力108をクリーンにし、単純化するために使用され得るかどうか、またはどのように使用され得るかにかかわらず、閾値112は、最終的にトリガ閾値120を生成する。トリガ閾値120は、記録されたジェスチャ104を識別するセンサID106からの値、値のシーケンス、または値のパターンである。例えば、スマートウォッチ(例えば、複数のユーザ装置132のうちの1つ)の加速度計データから(例えば、センサ1 134-1から)振動を検出するために、トリガ閾値120は、各加速度変化が閾値の大きさを満たす、閾値時間内の加速度変化の閾値数を含むことができる。
【0018】
有利には、本開示の態様は、1つまたは複数の対応するトリガ閾値122をさらに生成する。対応するトリガ閾値122は、1つまたは複数の異なるタイプのセンサを用いて記録されたジェスチャ104を識別することができる閾値である。例えば、対応するトリガ閾値122の一つは、複数のユーザ装置132(例えばスマートフォン)の異なる1つに関連付けられた異なるセンサ2 134-2に関連付けることができる。この例では、対応するトリガ閾値122は、トリガ閾値120を、異なるタイプのモーションセンサ(例えば、重力センサ、ジャイロスコープ、直線加速度計など)の異なるセンサ2 134-2によって検出可能な対応するトリガ閾値122に変換することができる。別の例として、別の対応するトリガ閾値122を1つまたは複数の環境センサ136に関連付けることができる。例えば、環境センサ136は、スマートビルディング内でビデオデータを生成するカメラとすることができる。この例では、対応するトリガ閾値122は、加速度データに基づくトリガ閾値120を、ビデオデータから加速度を推測するのに有用なモーション閾値に変換することができる。このように、本開示の態様は、記録されたジェスチャ104を、記録されたジェスチャ104を最初に作成した装置およびセンサよりも、追加のタイプの装置およびセンサによって識別することを可能にする。
【0019】
いくつかの実施形態では、機械学習アルゴリズムを利用することによって、閾値112を自動的に生成することができる。機械学習アルゴリズムには、決定木学習、相関ルール学習、人工ニューラルネットワーク(ANN)、リカレントニューラルネットワーク(RNN)、ディープラーニング、帰納論理プログラミング、サポートベクターマシン、クラスタリング、ベイジアンネットワーク、強化学習、表現学習、類似性/計量トレーニング、スパース辞書学習、遺伝的アルゴリズム、ルールベース学習、もしくは他の機械学習技術またはその組み合わせが含まれるが、これらに限定されない。
【0020】
たとえば、機械学習アルゴリズムでは、k近傍法(KNN)、学習ベクトル量子化(LVQ)、自己組織化マップ(SOM)、ロジスティック回帰、最小二乗回帰(OLSR)、線形回帰、ステップワイズ回帰、多変量適応回帰スプライン(MARS)、リッジ回帰、ラッソ回帰(LASSO)、弾性ネット、最小角度回帰(LARS)、確率的分類子、単純ベイズ分類子、二項分類、線形分類子、階層分類子、正準相関分析(CCA)、因子分析、独立成分分析(ICA)、線形判別分析(LDA)、多次元尺度構成法(MDS)、非負値行列因子分解(NMF)、部分最小二乗回帰(PLSR)、主成分分析(PCA)、主成分回帰(PCR)、サモンマッピング、t分布型確率的近傍埋め込み法(SNE)、ブートストラップ・アグリゲーティング、アンサンブル平均、勾配ブースト決定木(GBRT)、勾配ブースト機械(GBM)、帰納的バイアスアルゴリズム、Q学習、状態-アクション-報酬-状態-アクション(SARSA)、時間的差分学習(TD学習)、アプリオリアルゴリズム、等価クラス変換アルゴリズム(ECLATアルゴリズム)、ガウス過程回帰、遺伝子発現プログラミング、グループデータ処理法(GMDH)、帰納的論理プログラミング、インスタンスベース学習、ロジスティックモデルツリー、情報ファジーネットワーク(IFN)、隠れマルコフモデルガウシアンナイーブベイズ、多項式ナイーブベイズ、平均1依存性推定子(AODE)、ベイジアンネットワーク(BN)、分類および回帰ツリー(CART)、カイ二乗自動相互作用検出器(CHAID)、期待値最大化アルゴリズム、フィードフォワードニューラルネットワーク、論理学習機械、自己組織化マップ、単一リンケージクラスタリング、ファジークラスタリング、階層的クラスタリング、ボルツマンマシン、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、階層型時間メモリ(HTM)、もしくはその他の機械学習技術またはその組み合わせの1つまたは複数の例を利用することができる。
【0021】
まとめると、機械学習アルゴリズムを使用して、サニタイズ化データ114、正規化データ116、スケール化データ118、トリガ閾値120、もしくは対応するトリガ閾値122またはその組み合わせを生成することができる。図示されていないが、いくつかの実施形態では、機械学習アルゴリズムを使用して、センサ出力108の顕著な特徴(特徴検出または特徴選択と呼ばれることもある)を識別することができる。
【0022】
ユーザプロファイル102は、各記録されたジェスチャ104に関連付けられたプロセッサ実行可能アクション124をさらに含むことができる。プロセッサ実行可能アクション124は、アクチュエータを起動すること(例えば、ドアのロックまたはロック解除)、リモートサーバにアクセスすること(例えば、データの読み取り、書き込み、またはその他のアクセス、送信、もしくはリフレッシュまたはその組み合わせ)、およびスマートフォン上でアクションを実行すること(例えば、スマートフォンのロックを解除、スマートフォン上でメッセージを送信、スマートフォンを使用して電話、スマートフォンを使用して緊急信号を発信、スマートフォンによって実行可能なアプリケーションを開く、または対話するなど)を含むことができるが、これらに限定されない。プロセッサ実行可能アクション124は、複数のユーザ装置132のうちの1つに関連付けることができる。プロセッサ実行可能アクション124は、アクションを識別するアクションID126と、プロセッサ実行可能アクション124を実行するデバイスを識別するターゲット128と、ターゲット128によってプロセッサ実行可能アクション124を実行するように構成されたロジックを含む1つまたは複数の関数130とを含むことができる。
【0023】
ユーザプロファイル102に関連付けられた複数のユーザ装置132は、現在知られているか、または後で開発される任意の数のユーザ装置を含むことができる。例えば、複数のユーザ装置132は、スマートフォン、スマートウォッチ、スマート衣類、家庭、電化製品、ドア、カメラ、車両、ウェアラブル装置、健康監視装置、アクセサリ(リング、イヤリング、ヘッドバンド等)などを含むことができる。センサ134(センサ1 134-1、センサ2 134-2、もしくはセンサN 134-Nまたはその組み合わせのいずれか1つ以上を指す)は、データを収集することができるあらゆる種類のハードウェア装置もしくはソフトウェア装置またはその両方を指すことができる。センサ134は、限定されるものではないが、温度センサ、化学センサ、湿度センサ、圧力センサ、角度または直線のモーションセンサ(例えば、加速度計、直線加速度計、ステップカウンタ、ジャイロスコープ、重力センサなど)、回転センサ、角運動センサまたは直線運動センサ、角速度センサまたは直線速度センサ、生体計測センサ、マイクロホン、カメラなどを含むことができる。
【0024】
環境センサ136は、ユビキタスジェスチャエージェント100によって記憶された、ユーザプロファイル102ではない別のユーザプロファイルに関連付けられたセンサであり得る。言い換えれば、環境センサ136は、ユーザプロファイル102のユーザに属していないにもかかわらず、ユーザプロファイル102に関連付けられたユーザの近傍にあるセンサであり得る。環境センサ136は、前述のセンサ134のいずれであってもよい。いくつかの実施形態では、環境センサ136は、スマートビルディングに関連付けられたカメラであってもよい。有利には、ユビキタスジェスチャエージェント100は、ユーザプロファイル102が利用可能な環境センサ136を使用することを選択した場合、ユーザプロファイル102のユーザの近傍にある対応センサをユーザプロファイル102が利用することを可能にする。
【0025】
ここで図2を参照すると、本開示のいくつかの実施形態による、ユビキタスジェスチャエージェントを利用するための方法200のフローチャートが示されている。いくつかの実施形態では、方法200は、プロセッサ、コンピュータ、サーバ、図1のユビキタスジェスチャエージェント100、またはハードウェアもしくはソフトウェアまたはその両方の別の構成によって実施することができる。
【0026】
動作202は、第1のユーザ装置からのセンサ出力を用いたジェスチャを、ユビキタスジェスチャエージェントに関連付けられた第1のユーザプロファイルに登録することを含む。一例として、ジェスチャは、スマートウォッチ(例えば、第1のユーザ装置)に内蔵された加速度計からの加速度計データ(例えば、センサ出力)によって検出されるような手を振ることであり得る。
【0027】
動作204は、ジェスチャをトリガ閾値およびアクションに関連付けることを含む。上記の例に続けて、トリガ閾値は、加速度変化の閾値数を含むことができ、ここで、各加速度変化は閾値時間間隔内で閾値の大きさを超える。いくつかの実施形態では、アクションは、図1に関して前述したプロセッサ実行可能アクションなどのプロセッサ実行可能アクションであり得る。動作204については、図3を参照してより詳細に後述する。
【0028】
動作206は、トリガ閾値を異なるタイプのセンサに対する対応するトリガ閾値に変換することを含む。上記の例に続けて、スマートウォッチの加速度計によって出力された加速度データに基づくトリガ閾値は、スマートビルディング内で機能するビデオカメラによって生成されたビデオデータに基づく、対応するトリガ閾値に変換され得、ユビキタスジェスチャエージェントを介してユーザプロファイルに利用可能である。
【0029】
動作208は、異なるタイプのセンサからのデータを使用してジェスチャを識別することを含む。上記の例に続けて、動作208は、ユーザがスマートウォッチを装着していない場合、またはスマートウォッチが誤動作している場合に、ビデオカメラからのビデオデータに基づいて、手を振っているユーザを識別することを含む。
【0030】
動作210は、異なるタイプのセンサからのデータを使用してジェスチャを識別することに応答して、ジェスチャに関連付けられたアクションを実装することを含む。有利には、動作210は、ユーザがジェスチャを識別するために通常使用される特定のデバイスを忘れた場合であっても、ユーザがジェスチャをうまく利用してデバイスを制御することを可能にする。
【0031】
図3は、本開示のいくつかの実施形態による、ユビキタスジェスチャエージェントを使用してジェスチャを定義するための方法の例を示すフローチャートである。いくつかの実施形態では、方法300は、プロセッサ、コンピュータ、サーバ、図1のユビキタスジェスチャエージェント100、またはハードウェアもしくはソフトウェアまたはその両方の別の構成によって実施することができる。いくつかの実施形態では、方法300は、図2の動作204のサブメソッドである。
【0032】
動作302は、ジェスチャ記録間隔中に、1つまたは複数のユーザ装置に関連付けられた1つまたは複数のセンサからのセンサ出力を記録することによって、記録されたジェスチャを定義することを含む。いくつかの実施形態では、ユーザは、ジェスチャ記録間隔を開始および終了するように1つまたは複数のユーザ装置を操作することができ、ここで、開始と終了の間に1つまたは複数のユーザ装置に関連付けられた1つまたは複数のセンサから収集されたデータは、記録されたジェスチャを示すセンサ出力を構成することができる。
【0033】
動作304は、記録されたジェスチャを識別子、センサ出力、カテゴリ、およびプロセッサ実行可能アクションに関連付けることを含む。いくつかの実施形態では、動作304は、ジェスチャを定義してジェスチャを様々なプロセッサ実行可能アクションに関連付けるためのインタフェースを提供する装置にユーザ入力を提供するユーザによって、実施され得る。
【0034】
動作306は、センサ出力を異なるタイプのセンサによって検出可能にするために、センサ出力にデータ変換を適用することを含む。データ変換には、特に、データのサニタイズ、データの正規化、もしくはデータのスケーリングまたはその組み合わせを含めることができる。さらに、データ変換は、例えば、加速度データを位置データに変換すること、または他のタイプのデータ変換を含むことができる。いくつかの実施形態では、動作306は、機械学習アルゴリズムを利用して、異なるタイプのセンサによってセンサ出力を検出可能にするのに適したセンサ出力にデータ変換を適用する。
【0035】
動作308は、データ変換に基づいて、様々なセンサのトリガ閾値および複数の対応するトリガ閾値を定義することを含む。有利には、動作308は、1つのセンサ(又は1組のセンサ)を使用して記録されたジェスチャが、異なるタイプのセンサ(又は異なる1組のセンサ)によって検出可能であることを可能にし、それによってセンサ非依存のジェスチャ検出を可能にする。
【0036】
図4は、本開示のいくつかの実施形態による、ジェスチャに当初関連付けられたセンサと同じまたは異なるセンサを使用してジェスチャを識別するための方法の例を示すフローチャートである。いくつかの実施形態では、方法400は、プロセッサ、コンピュータ、サーバ、図1のユビキタスジェスチャエージェント100、またはハードウェアもしくはソフトウェアまたはその両方の別の構成によって実施することができる。いくつかの実施形態では、方法400は、図2の動作208のサブメソッドである。
【0037】
動作402は、複数のユーザ装置もしくは環境センサまたはその両方から複数のセンサのセンサデータを収集することを含む。センサーデータは、連続的、半連続的、または所定のポーリング間隔で収集できる。
【0038】
動作404は、収集されたセンサデータからセンサもしくは対応するユーザデバイスまたはその両方が欠落しているかどうかを判定することを含む。そうでない場合(動作404でNO)、方法400は動作408に進み、収集されたセンサデータのいずれかがトリガ閾値と一致するかどうかを判定する。しかしながら、いずれかのセンサもしくは対応するユーザ装置またはその両方が、収集されたセンサデータから欠落している場合(動作404でYES)、方法400は、動作406に進み、収集されたセンサデータと対応するトリガ閾値とを相互参照して、1つまたは複数の欠落センサもしくは対応するユーザ装置またはその両方によって検出されたであろう何らかのジェスチャが検出されているかどうかを判定する。
【0039】
動作408は、収集されたセンサデータのいずれかと、トリガ閾値または対応するトリガ閾値のいずれかとの間に一致があるかどうかを判定することを含む。そうでない場合(動作408でNO)、方法400は動作402に戻り、センサデータの収集を継続する。もしそうであれば(動作408でYES)、方法400は動作410に進む。
【0040】
動作410は、一致に関連するジェスチャを識別することを含む。有利には、方法400は、ジェスチャーを検出するために従来使用されてきたセンサもしくはユーザ装置またはその両方が、他のユーザ装置の他のセンサもしくは環境センサまたはその両方に関連する対応するトリガ閾値を活用することによって利用できない状況において、ジェスチャを識別することができる。
【0041】
図5は、本開示のいくつかの実施形態による例示的なコンピュータ500のブロック図である。様々な実施形態では、コンピュータ500は、図2図4で説明した方法のいずれかの部分またはすべての部分を実行すること、もしくは図1で説明した機能を実装することまたはその両方ができる。いくつかの実施形態では、コンピュータ500は、プロセッサ実行可能命令をネットワーク550を介して遠隔データ処理システムからダウンロードすることによって、上述の方法および機能に関連する命令を受信する。他の実施形態では、コンピュータ500は、クライアントマシンがコンピュータ500によって提供される命令に基づいて方法または方法の一部を実行するように、前述の方法もしくは機能のための命令をクライアントマシンに提供する。いくつかの実施形態では、コンピュータ500は、コンピュータ環境(例えば、ユビキタスジェスチャエージェント100)の1つまたは複数のエンティティもしくは本開示の他の態様またはその両方に組み込まれる(または、コンピュータ500と同様の機能が仮想的にプロビジョニングされる)。
【0042】
コンピュータ500は、メモリ525、記憶装置530、相互接続520(例えば、バス)、1つまたは複数のCPU505(本明細書ではプロセッサとも呼ぶ)、I/Oデバイスインターフェース510、I/Oデバイス512、およびネットワークインタフェース515を含む。
【0043】
各CPU505は、メモリ525または記憶装置530に記憶されたプログラミング命令を取得して実行する。相互接続520は、プログラミング命令などのデータをCPU505、I/Oデバイスインターフェース510、記憶装置530、ネットワークインタフェース515、およびメモリ525の間で移動するために使用される。相互接続520は、1つまたは複数のバスを用いて実施することができる。CPU505は、様々な実施形態において、単一のCPU、複数のCPU、または複数の処理コアを有する単一のCPUとすることができる。いくつかの実施形態では、CPU505は、デジタルシグナルプロセッサ(DSP)であり得る。いくつかの実施形態では、CPU505は、1つまたは複数の3D集積回路(3DICs)(例えば、3Dウェハレベルパッケージング(3DWLP)、3Dインターポーザベースの集積、3D積層IC(3D-SICs)、モノリシック3D ICs、3D不均一集積、3Dシステムインパッケージ(3DSip)、もしくはパッケージオンパッケージ(PoP)CPU構成)またはその組み合わせを含む。メモリ525は、一般に、ランダムアクセスメモリ(スタティック・ランダム・アクセス・メモリ(SRAM)、ダイナミック・ランダム・アクセス・メモリ(DRAM)、フラッシュなど)を代表とするものが含まれる。記憶装置530は、一般に、ハード・ディスク・ドライブ、ソリッド・ステート・デバイス(SSD)、リムーバブル・メモリ・カード、光学記憶装置、またはフラッシュ・メモリ・デバイスなどの不揮発性メモリを代表とするものが含まれる。別の実施形態では、ストレージ530は、ストレージエリアネットワーク(SAN)デバイス、クラウド、またはI/Oデバイスインターフェース510を介してコンピュータ500に接続された他のデバイス、またはネットワークインタフェース515を経由したネットワーク550を介してコンピュータ500に接続された他のデバイスによって置き換えることができる。
【0044】
いくつかの実施形態では、メモリ525は、命令560を格納する。しかし、様々な実施形態では、命令560は、部分的にメモリ525に格納されるか、部分的に記憶装置530に格納されるか、または、メモリ525に全体的に格納されるか、または、記憶装置530に全体的に格納されるか、または、ネットワークインタフェース515を経由したネットワーク550を介してアクセスされる。
【0045】
命令560は、図2図4の方法のいずれかの部分またはすべてを実行するための、もしくは図1のいずれかの部分で説明した機能を実装するための、またはその両方のためのコンピュータ読み取り可能およびコンピュータ実行可能な命令とすることができる。命令560はメモリ525に示されているが、命令560は、多数のコンピュータ可読記憶媒体にわたって集合的に記憶され、1つまたは複数のCPU505によって実行可能なプログラム命令を含むことができる。
【0046】
様々な実施形態では、I/Oデバイス512は、情報を提示し、入力を受信することができるインタフェースを含む。例えば、I/Oデバイス512は、コンピュータ500と対話するユーザに情報を提示し、ユーザからの入力を受け取ることができる。
【0047】
コンピュータ500は、ネットワークインタフェース515を介してネットワーク550に接続される。ネットワーク550は、物理的、無線、セルラー、または異なるネットワークを含むことができる。
【0048】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載する教示の実施はクラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているか、または後に開発される任意の他のタイプのコンピューティング環境と共に実施することができる。
【0049】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
【0050】
特性は以下の通りである。
【0051】
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0052】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0053】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0054】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0055】
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0056】
サービスモデルは次のとおりである。
【0057】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0058】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0059】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0060】
展開モデルは以下の通りである。
【0061】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織またはサードパーティーによって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0062】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0063】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0064】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0065】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0066】
ここで図6を参照すると、例示的なクラウドコンピューティング環境50が示されている。図示するように、クラウドコンピューティング環境50は、例えば、パーソナルデジタルアシスタント(PDA)または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはその組み合わせのような、クラウド消費者によって使用されるローカルコンピューティング装置が通信することができる、1つまたは複数のクラウドコンピューティングノード10を含む。ノード10は互いに通信することができる。それらは、物理的または仮想的に、上述のプライベート、コミュニティ、パブリック、またはハイブリッドクラウドのような1つまたは複数のネットワーク、またはそれらの組み合わせにグループ化(不図示)されてもよい。これにより、クラウドコンピューティング環境50は、クラウド消費者がローカルのコンピューティング装置上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはその組み合わせを提供することができる。図6に示されるタイプのコンピューティング装置54A~54Nは、例示のみを意図しており、コンピューティングノード10およびクラウドコンピューティング環境50は、任意のタイプのネットワークもしくはネットワークアドレス指定可能な接続またはその両方を介して(例えば、Webブラウザを使用して)任意のタイプのコンピュータ化された装置と通信することができることを理解されたい。
【0067】
次に図7を参照すると、クラウドコンピューティング環境50(図6)によって提供される機能抽象化レイヤのセットが示されている。図7に示される構成要素、層、および機能は、例示のみを意図したものであり、本発明の実施形態はこれに限定されないことを予め理解されたい。図示されるように、以下の層および対応する機能が提供される。
【0068】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ネットワークおよびネットワーキングコンポーネント66が含まれる。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0069】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、および仮想クライアント75。
【0070】
一例では、管理レイヤ780は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0071】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、センサ非依存のジェスチャ検出96が含まれる。
【0072】
本発明の実施形態は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法、もしくはコンピュータプログラム製品またはその組み合わせであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータが読み取り可能なプログラム命令をその上に有するコンピュータ可読記憶媒体を含むことができる。
【0073】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持および記憶することができる有形の装置であり得る。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはこれらの任意の適切な組み合わせが挙げられるが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、以下を含む。ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、および前述の任意の適切な組み合わせが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を通って伝搬する電磁波、またはワイヤを通って伝送される電気信号などのそれ自体が一時的な信号と解釈されるべきではない。
【0074】
本明細書に記載されるコンピュータが読み取り可能なプログラム命令は、コンピュータ可読記憶媒体から、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせを介して外部コンピュータまたは外部記憶装置に、それぞれのコンピューティング/処理装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはその組み合わせを含むことができる。各コンピューティング/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータが読み取り可能なプログラム命令を受信し、各コンピューティング/処理装置内のコンピュータ可読記憶媒体に記憶するためにコンピュータが読み取り可能なプログラム命令を転送する。
【0075】
本発明の動作を実行するためのコンピュータが読み取り可能なプログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械依存命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータが読み取り可能なプログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータが読み取り可能なプログラム命令の状態情報を利用することによって、コンピュータが読み取り可能なプログラム命令を実行することができる。
【0076】
本発明の各態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータが読み取り可能なプログラム命令によって実行可能である。
【0077】
上記のコンピュータが読み取り可能なプログラム命令は、機械を生産するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。上記のコンピュータが読み取り可能なプログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0078】
また、コンピュータが読み取り可能なプログラム命令は、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0079】
本開示の図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、1つの工程として達成してもよいし、同時もしくは略同時に実行してもよいし、部分的もしくは全体的に時間的に重複した態様で実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う専用ハードウェアベースのシステムによって、または専用ハードウェアとコンピュータ命令との組み合わせによって実行可能である。
【0080】
プロセスソフトウェア(例えば、図5の命令560に格納された命令のいずれか、もしくは、図2図4に関して説明した方法のいずれかの部分を実行するもしくは図1において説明した機能のいずれかの部分を実装するまたはその両方をするように構成された任意のソフトウェア、またはその両方)は、CD、DVDなどの記憶媒体をロードして、クライアント、サーバ、およびプロキシコンピュータに直接手動でロードすることによって展開できることが理解されるが、プロセスソフトウェアを中央サーバまたは中央サーバのグループに送信することによって、コンピュータシステムに自動的または半自動的に展開することもできる。次に、プロセスソフトウェアは、プロセスソフトウェアを実行するクライアントコンピュータにダウンロードされる。あるいは、プロセスソフトウェアは、電子メールを介してクライアントシステムに直接送信される。次いで、プロセスソフトウェアは、ディレクトリにデタッチされるか、またはプロセスソフトウェアをディレクトリにデタッチする一連のプログラム命令を実行することによって、ディレクトリにロードされる。もう1つの方法は、プロセスソフトウェアをクライアントコンピュータのハードドライブ上のディレクトリに直接送信することである。プロキシサーバーが存在する場合、プロセスはプロキシサーバーコードを選択し、そのコードを配置するコンピュータを決定し、プロキシサーバーコードを送信し、プロキシサーバーコードをプロキシコンピュータにインストールする。プロセスソフトウェアはプロキシサーバに転送され、プロキシサーバに保存される。
【0081】
本発明の実施形態は、クライアント企業、非営利組織、政府機関、内部組織構造などとのサービス契約の一部として提供することもできる。これらの実施形態は、本明細書に記載する方法の一部または全部を実行するようにコンピュータシステムを構成し、ソフトウェア、ハードウェア、およびWebサービスを配備することを含むことができる。これらの実施形態はまた、消費者の動作を分析すること、分析に応答して勧告を作成すること、勧告のサブセットを実装するシステムを構築すること、システムを既存のプロセスおよびインフラストラクチャに統合すること、システムの使用を計測すること、システムのユーザに費用を割り当てること、およびシステムの使用のための請求、支払い(例えば、請求書の作成)、またはその他の方法で支払いを受け取ることを含むことができる。
【0082】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、限定することを意図するものではない。本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈が明確に他のことを示さない限り、複数形も含むことを意図している。本明細書で使用される場合、「含む(includes)」という用語もしくは「含む(including)」という用語またはその両方は、記載された特徴、整数、ステップ、操作、要素、もしくはコンポーネントまたはその組み合わせの存在を特定するが、1つ以上の他の機能、整数、ステップ、操作、要素、コンポーネント、もしくはそれらのグループまたはその組み合わせの存在または追加を排除するものではない。様々な実施形態の例示的な実施形態の前述の詳細な説明では、本明細書の一部を形成し、様々な実施形態を実施することができる具体的な例示的な実施形態を例示するように示されている添付の図面(同様の番号は同様の要素を表す)を参照した。これらの実施形態は、当業者が実施形態を実施できるように十分に詳細に説明されたが、他の実施形態を使用することができ、様々な実施形態の範囲から逸脱することなく、論理的、機械的、電気的、および他の変更を行うことができる。前述の説明では、様々な実施形態を完全に理解するために、多数の具体的な詳細が説明された。しかし、様々な実施形態は、これらの特定の詳細なしに実施することができる。他の例では、実施形態を不明瞭にしないために、周知の回路、構造、および技術は詳細には示されていない。
【0083】
本明細書において使用される「実施形態」という語の異なる例は、必ずしも同じ実施形態を指すものではないが、参照することができる。本明細書に図示または説明される任意のデータおよびデータ構造は、例に過ぎず、他の実施形態では、異なる量のデータ、データのタイプ、フィールド、フィールドの数およびタイプ、フィールド名、行の数およびタイプ、記録、エントリ、またはデータの組織を使用することができる。さらに、任意のデータを論理と組み合わせることができるので、別個のデータ構造は必要ない。したがって、上述の詳細な説明は、限定的な意味では解釈されない。
【0084】
本開示の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。説明された実施形態の範囲および精神から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
【0085】
本開示は特定の実施形態に関して説明されてきたが、その変更及び修正は当業者に明らかになると予想されるので、以下の特許請求の範囲は、本開示の真の精神及び範囲内にあるすべての変更及び修正を包含するものと解釈されることを意図する。
【0086】
本開示において議論される任意の利点は、例示的な利点であり、本開示の精神および範囲内にありながら、議論される任意の利点のすべて、いくつかを実現、またはいずれも実現しない本開示の実施形態が存在し得る。
【0087】
本開示のいくつかの態様を示すために、実施例の非限定的なリストを以下に提供する。実施例1は、コンピュータによって実施される方法である。この方法は、第1のユーザ装置からのセンサ出力を使用して、ユビキタスジェスチャエージェントに関連付けられた第1のユーザプロファイルにジェスチャを記録することを含む。この方法は、ジェスチャを示し、センサ出力に基づくトリガ閾値と、ユーザプロファイルに関連付けられた複数のユーザデバイスの1つによって実行可能なプロセッサ実行可能アクションとに、ジェスチャを関連付けることを含む。この方法は、トリガ閾値を異なるタイプのセンサに対応するトリガ閾値に変換することを含む。この方法は、対応するトリガ閾値を満たす異なるタイプのセンサからのデータを使用してジェスチャを識別することを含む。この方法は、複数のユーザ装置のうちの1つによって、ジェスチャに関連付けられたプロセッサ実行可能アクションを実装することを含む。
【0088】
実施例2は、任意の特徴を含むかまたは除外する実施例1の方法を含む。この例では、ユビキタスジェスチャエージェントがパブリッククラウド環境でホストされている。
【0089】
実施例3は、任意の特徴を含むかまたは含まない、実施例1~2のいずれかの方法を含む。この例では、異なるタイプのセンサが第1のユーザプロファイルに関連付けられている。
【0090】
実施例4は、任意の特徴を含むかまたは含まない実施例1~2のいずれかの方法を含む。この例では、異なるタイプのセンサは、ユビキタスジェスチャエージェントに格納された異なるユーザプロファイルに関連付けられる。
【0091】
実施例5は、任意の特徴を含むかまたは含まない、実施例1~4のいずれかの方法を含む。この例では、異なるタイプのセンサーはスマートビルディング内のカメラである。任意に、センサ出力は、加速度計からの加速度データを含み、対応するトリガ閾値は、スマートビルディング内のカメラからのビデオデータから推測される加速度に基づく。
【0092】
実施例6は、任意の特徴を含むかまたは含まない、実施例1~5のいずれかの方法を含む。この例では、プロセッサ実行可能アクションは、アクチュエータの起動、リモートサーバへのアクセス、およびスマートフォン上でのアクションの実装からなるグループから選択される。
【0093】
実施例7は、任意の特徴を含むかまたは含まない、実施例1~6のいずれかの方法を含む。この例では、方法は、遠隔データ処理システムから1つまたは複数のコンピュータにダウンロードされるソフトウェアに従って、1つまたは複数のコンピュータによって実行される。任意に、本方法は、ソフトウェアの使用量の計測、使用量の計測に基づく請求書の作成をさらに含む。
【0094】
実施例8はシステムである。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行される場合に、1つまたは複数のプロセッサに実施例1~7のいずれか1つによる方法を実行させるように構成されたプログラム命令を記憶する1つまたは複数のコンピュータ可読記憶媒体とを含む。
【0095】
実施例9は、コンピュータプログラム製品である。コンピュータプログラム製品は、1つまたは複数のコンピュータ可読記憶媒体と、1つまたは複数のコンピュータ可読記憶媒体上に集合的に記憶されたプログラム命令とを含む。プログラム命令は、1つまたは複数のプロセッサに、実施例1~7のいずれか1つに従って方法を実行させるように構成された命令を含む。
図1
図2
図3
図4
図5
図6
図7