(57)【特許請求の範囲】
【請求項１】
コンピューティング環境において、少なくとも１つのプロセッサ上で少なくとも部分的に実行される方法であって、
１以上のエンティティとコンピュータ化された装置コンポーネントとの間の対話を可能にするセンサフュージョンインタフェースを介して、前記コンピュータ化された装置コンポーネントから受信した要求を処理する処理ステップにおいて、
前記１以上のエンティティについての少なくとも２つの入力モダリティに対応する複数のセンサモジュールに結合される共有ライブラリにアクセスするステップであって、前記共有ライブラリは、センサ横断の合成を表す、前記複数のセンサモジュールからのマルチモーダル入力データの体系化されたバージョンを備える、ステップと、
前記マルチモーダル入力データの前記体系化されたバージョンを、前記１以上のエンティティによる記号的活動を含むエンティティ状態データへ変換するステップと、
前記コンピュータ化された装置コンポーネントに前記エンティティ状態データへのアクセスを提供するステップと、
を含む、処理ステップ
を具備する方法。
【請求項２】
前記コンピュータ化された装置コンポーネントに前記エンティティ状態データへのアクセスを提供するステップは、エンティティ姿勢の変化に対応するイベントを伝達するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記コンピュータ化された装置コンポーネントに前記エンティティ状態データへのアクセスを提供するステップは、前記１以上のエンティティから前記コンピュータ化された装置コンポーネントのための１つ以上のコマンドを伝達するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記コンピュータ化された装置コンポーネントに前記エンティティ状態データへのアクセスを提供するステップは、異なる時点に対応する前記エンティティ状態データに基づいて制御データを生成するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記１以上のエンティティにより操作されている装置の位置及び向きを決定するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記マルチモーダル入力データ内の不要な摂動を取り除くステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記共有ライブラリにアクセスするステップは、前記マルチモーダル入力データを精緻化するように前記複数のセンサモジュールを較正するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記コンピュータ化された装置コンポーネントのためのコマンドに変換される記号的活動を定義するステップをさらに含む、請求項１に記載の方法。
【請求項９】
エンティティの動きに応答して前記エンティティ状態データを更新するステップをさらに含む、請求項１に記載の方法。
【請求項１０】
前記１以上のエンティティに関連付けられた環境モデルを作成するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
第１のエンティティに関連付けられる前記エンティティ状態データの第１の部分と第２のエンティティに関連付けられる前記エンティティ状態データの第２の部分とを抽出するステップと、前記第１の部分を前記第２の部分と相互に関連付けてエンティティ対話を決定するステップとをさらに含む、請求項１に記載の方法。
【請求項１２】
コンピューティング環境において、少なくとも１つのプロセッサと、該少なくとも１つのプロセッサに通信可能に結合され、コンピュータ化された装置コンポーネントにセンサフュージョンインタフェースを提供するように構成される対話メカニズムを備えるコンポーネントを含むメモリと、
を具備するシステムであって、
前記センサフュージョンインタフェースは、環境内の各エンティティについて、該エンティティによる記号的活動を含むエンティティ状態データを備えたプロファイルを、前記コンピュータ化された装置コンポーネントに公開し、エンティティ活動に応答して前記プロファイルを更新するように共通知識データコンポーネントに指示するように構成され、前記共通知識データコンポーネントは、複数のエンティティ活動を定義する一定方式のスキーマに従って、少なくとも２つの入力モダリティに対応する複数のセンサモジュールからのマルチモーダル入力データを統合し、前記エンティティ活動を識別したとき正確性のレベルが達成されるまで前記マルチモーダル入力データを精緻化するように構成される、システム。
【請求項１３】
前記対話メカニズムは、
前記エンティティ活動に基づいて、物理的環境内のコンピュータ化された装置を操作するようにさらに構成される、
請求項１２に記載のシステム。
【請求項１４】
前記対話メカニズムは、
前記コンピュータ化された装置コンポーネントにより生成された仮想の環境における仮想のキャラクタを制御するようにさらに構成される、
請求項１２に記載のシステム。
【請求項１５】
前記対話メカニズムは、
前記コンピュータ化された装置コンポーネントに応答して前記複数のセンサモジュールを初期化するようにさらに構成される、
請求項１２に記載のシステム。
【請求項１６】
前記対話メカニズムは、
複数のエンティティ間における衝突を識別するようにさらに構成される、
請求項１２に記載のシステム。
【請求項１７】
前記対話メカニズムは、
エンティティの動きが装置の範囲から出たことを示すイベントを公開するようにさらに構成される、
請求項１２に記載のシステム。
【請求項１８】
前記複数のセンサモジュールは、カメラ、マイクロフォン、デジタイザ、モーションプロセッサ、ゲーム用コントローラ、発話認識モジュール、ジェスチャ認識モジュール、顔認識モジュール、携帯電話若しくはポインティング装置、又はカメラ、マイクロフォン、デジタイザ、モーションプロセッサ、ゲーム用コントローラ、発話認識モジュール、ジェスチャ認識モジュール、顔認識モジュール、携帯電話若しくはポインティング装置のうち任意の組み合わせを含む、請求項１２に記載のシステム。
【請求項１９】
プロセッサによって実行されると、
物理的環境内のエンティティに関連付けられるエンティティ状態データを求める、コンピュータ化された装置コンポーネントからの要求を処理する工程であって、前記エンティティ状態データは、前記エンティティによる記号的活動を含む工程と、
前記エンティティ状態データを生成するために、複数のセンサモジュールに対応する複数の入力モダリティのうち少なくとも２つの入力モダリティを選択する工程であって、当該工程は、タイプシステムを処理して前記選択された少なくとも２つの入力モダリティに対応するマルチモーダル入力データをフォーマットすることを含む、選択する工程と、
前記マルチモーダル入力データを融合して前記エンティティ状態データを生成する工程と、
前記エンティティ状態データを前記コンピュータ化された装置コンポーネントに伝達する工程と、
を備えるステップを実行させる、コンピュータプログラム。
【請求項２０】
複数のエンティティに関連付けられるエンティティ対話を分析する工程と、
前記物理的環境内の前記エンティティ対話に対応する競合を示すイベントを前記コンピュータ化された装置コンポーネントに伝達する工程と、
をさらに具備する、請求項１９に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
センサを使用してデータを収集及び合成する種々の物理的環境及びインフラストラクチャに関する。
【背景技術】
【０００２】
種々の物理的環境及びインフラストラクチャが、センサを使用してデータを収集及び合成する。例えば、家庭又は工場がビデオカメラシステムを使用して高価かつ重要な文書及び／又は機器を守ることができる。家庭用のサーモスタットがセンサネットワークを使用して平均気温を調節することができる。一般的なコンシューマ装置が、写真を撮るための携帯電話カメラなどの、データを収集するためのセンサを採用する。こうしたセンサのいくつかは、加速度計、ジャイロスコープ、微小電気機械システム（ＭＥＭＳ）及び／又は同様のものなどであるが、実世界に関する測定を行う。コンピュータシステム及びソフトウェアコンポーネントが、実世界に関する豊富な情報を提供するために、センサを毎日の生活に組み入れる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
非常に多くのコンピュータ化された装置コンポーネントについて、複数センサを活用して知覚の質を向上させることがしばしば望まれる。多くの状況において、センサ測定は有効かつ正確である必要がある。空間及び時間にわたって物理的環境の観察結果を処理することによって、センサ測定は、特定の特徴のより正確な推定へと調整されることができる。それに応じて、コンピュータシステム及びソフトウェアコンポーネントは、満足な信頼レベルが達成されるまで、種々のセンサ入力処理動作を実行する。このことは、拡張されたユーザエクスペリエンスとともに適切な動作を確かにする。
【課題を解決するための手段】
【０００４】
本要約は、以下で詳細な説明においてさらに説明される代表的な概念のうち選ばれたものを簡素化された形式で紹介するために提供される。本要約は、請求される対象事項の重要特性又は必須特性を特定することを目的とするものではなく、請求される対象事項の範囲を限定するであろういずれかの方法で使用されることを目的とするものでもない。
【０００５】
簡潔には、本明細書に説明される対象事項の種々の態様は、複数センサ入力のためのセンサフュージョンインタフェースに向けられる。１つの態様において、種々のセンサモジュールと（入力）装置とが、物理的環境に関連付けられた入力データを提供する。物理的環境についての監視コンポーネントが、入力データに合わせ、より有意な情報を解釈するために、完全に異なる情報源から入力データを集め、センサ横断の（cross-sensor）合成を実行する。１つの態様において、監視コンポーネントのための対話メカニズムが、コンピュータ化された装置コンポーネント（例えば、アプリケーション、オペレーティングシステムコンポーネント、ファームウェア及び／又は同様のものを含むプログラミングロジック装置、マイクロコード及び／又はプログラムなどの、ハードウェア及び／又はソフトウェアコンポーネント）に、上記情報へのアクセスを、センサフュージョンインタフェースを介して提供する。
【０００６】
１つの態様において、センサフュージョンインタフェースは、エンティティ（例えば、人間のユーザ）とコンピュータ化された装置コンポーネントとの間の対話を可能にする。センサフュージョンインタフェースは、複数のセンサモジュールに結合された共有ライブラリにアクセスし、エンティティに関連付けられた複数センサ入力データを記憶する。１つの態様において、共有ライブラリは、一般的なスキーマを使用して複数センサ入力データを体系化して、他のセンサモジュールがこうしたデータを精緻化し、精緻化されたデータを共有ライブラリに再公表することを可能にし、さらに別のセンサモジュールがまたさらに精緻化すること（の可能性）を支援する。ある時点で、複数センサ入力は、物理的環境に対してエンティティの状態に関する特定の信頼レベルと情報とを獲得する。コンピュータ化された装置コンポーネントに利するように、センサフュージョンインタフェースと対話メカニズムとは、共有ライブラリからエンティティ状態データを抽出し、コンピュータ化された装置コンポーネントにエンティティ状態データへのアクセスを提供する。
【０００７】
別の態様において、物理的環境には複数のエンティティを含み、上記複数のエンティティは互いに対話してよく、あるいは対話しなくてよい。物理的環境を監視しながら、対話メカニズムは、センサフュージョンインタフェースを介してエンティティ状態データについての要求を受信することができる。１つの態様において、こうした要求のいくつかには、センサ入力データを融合するときにどの入力モダリティを選択すべきかを示す設定データを含む。対話メカニズムは、複数のセンサモジュールを設定して、コンピュータ化された装置コンポーネントが所望する種類の複数センサ入力データを生成する。いったん複数センサ入力データが生成されると、対話メカニズムは、エンティティ状態データを抽出し、コンピュータ化された装置コンポーネントにインスタンス（instance）を伝達する。上記インスタンスは、（共有）記憶装置ユニット内のエンティティ状態データのコピー又は上記エンティティ状態データへの参照とすることができる。
【０００８】
他の利点が、下記の詳細な説明から、図面と関連して解されると、明らかになるであろう。
【図面の簡単な説明】
【０００９】
本発明は、例として図示されており、添付図面に限定されない。添付図面において、同様の参照番号が類似の要素を示す。
【図１】１つの実装例に従う、センサフュージョンインタフェースのための例示的なシステムを図示するブロック図である。
【図２】１つの実装例に従う、エンティティとコンピュータ化された装置コンポーネントとの間の対話を可能にするセンサフュージョンインタフェースのための例示的なアーキテクチャを表す。
【図３】１つの実装例に従う、コンピュータ化された装置コンポーネントにセンサフュージョンインタフェースを公開する例示的なステップを図示するフロー図である。
【図４】１つの実装例に従う、複数センサ入力から、コンピュータ化された装置コンポーネント制御データを生成する例示的なステップを図示するフロー図である。
【図５】１つの実装例に従う、エンティティ対話を管理する例示的なステップを図示するフロー図である。
【図６】本明細書において説明される種々の実施形態を実装することができる、例示的な非限定的なネットワーク化された環境を表すブロック図である。
【図７】本明細書において説明される種々の実施形態のうち１又は複数の態様を実装することができる、例示的な非限定的なコンピューティングシステム又は動作環境を表すブロック図である。
【発明を実施するための形態】
【００１０】
本明細書において説明される技術の種々の態様は、概して、コンピュータ化された（ユーザ）装置コンポーネントとの対話を可能にするセンサフュージョンインタフェースに向けられている。１つの実装例において、物理的環境内の各エンティティ（例えば、人間）について、対話（interaction）メカニズムが、特定の時点における位置及び／又は向きを含むエンティティプロファイルを定義する。エンティティプロファイルはさらに、発話及び／又はジェスチャコマンドとエンティティがセンサ境界を出たときのインスタンスを示すイベントフックとを含むことができる。１つの実装例において、エンティティプロファイルは、コンピュータ化された計算装置に対して公開された（exposed）ときに１又は複数のコマンド／制御入力を示すことができる。１つの実装例において、対話メカニズムは、センサフュージョンインタフェースを介して、共通知識データコンポーネントに指示して、エンティティ活動に応答してエンティティプロファイルを更新することができる。１つの実施例において、共通知識データコンポーネントは、複数のセンサモジュールからの複数センサ入力を一定方式のスキーマに従って統合し、上記複数センサ入力に基づいてエンティティ活動を識別する。
【００１１】
本明細書における例示のいずれも非限定的であることを理解されたい。したがって、本発明は、本明細書に説明されるいかなる特定の実施形態、態様、概念、構造、機能性又は例示にも限定されない。むしろ、本明細書に説明される実施形態、態様、概念、構造、機能性又は例示のいずれもが非限定的であり、本発明は一般にコンピューティング及びデータ管理において利益及び利点を提供する種々の方法で使用されることができる。
【００１２】
図１は、１つの実装例に従う、センサフュージョンインタフェースのための例示的なシステムを図示するブロック図である。上記例示的なシステムのコンポーネントには、複数のコンピュータ化された装置１０２１〜Ｎ（装置１０２１〜装置１０２Ｎとして図示され、以降、装置１０２と呼ぶ）と監視コンポーネント１０４とを含む。
【００１３】
装置１０２は、監視コンポーネント１０４にセンサ入力信号を提供することができ、今度は監視コンポーネント１０４が、さらなる処理のために適切な生データを記憶することができる。１つの実装例において、装置１０２は、電子デジタイザ、携帯電話、マイクロフォン、マルチメディアキャプチャ装置（例えば、カメラ）、イメージング装置、奥行きカメラ（depth  camera）、一般にマウス、トラックボール又はタッチパッドと呼ばれるキーボード及びポインティング装置などの、エンティティ及び／又は物理的環境に関連付けられた入力データを提供する任意の感知装置を含むことができる。装置１０２の他の実施形態には、ジョイスティック、ゲームパッド、及び任意の他の無線又は有線のコントローラを含むことができる。装置１０２の各々は、監視コンポーネント１０４に物理的に取り付けられることができ、あるいは遠隔に設置されることができる。
【００１４】
装置１０２の例にはさらに、コンピュータビジョン装置、マイクロフォン、加速度計、ジャイロスコープ、磁力計、コンパス、速度計、全地球測位システム（ＧＰＳ）装置、温度計、湿度センサ、光センサ、赤外線センサ、近くの装置若しくはアクセスポイント若しくは他の送信機の信号強度、深さセンサ、及び／又は同様のものを含むことができる。こうした例示の装置１０２は、現在の部屋及び／又は装置の温度、ユーザが動いているかどうか及びどんな速度で動いているのか、ユーザはひとりでいるのかあるいは他の誰かと一緒にいるのか、周辺光の量、コンピュータ関連の又は出力装置関連のデータ（例えば、装置バッテリ寿命、使用可能な電力、実行中のプログラム及びサービス）などの、環境の及び他のデータを感知することができる。
【００１５】
１つの実装例において、監視コンポーネント１０４は、装置１０２により生成される入力データのための統合ポイントを提供するように構成することができ、１又は複数のコンピュータ化された装置コンポーネントにセンサフュージョンインタフェース１０８を公開する対話メカニズム１０６を含むことができる。上記１又は複数のコンピュータ化された装置コンポーネントは、１又は複数のエンティティに関連付けられたマルチモーダル（センサ）入力データを処理する。監視コンポーネント１０４はさらに、共有ライブラリ１１０、エンティティ状態データ１１２、設定データ１１４、制御データ１１６及びセンサモジュール１１８を含むことができる。本明細書において説明されるとおり、共有ライブラリ１１０は、複数センサ入力データ（例えば、共通の形式又はタイプシステムにおけるオーディオデータ、ビデオデータ、画像データ及び／又は同様のもの）の体系化されたバージョンに対応することができる。エンティティ状態データ１１２は、（例えば、デカルト座標を物理的環境に基づいた位置及び向きに関して基準座標として）各エンティティについての姿勢を示すことができる。設定データ１１４と制御データ１１６とは、各エンティティとコンピュータ化された装置コンポーネント１２０（例えば、ある種のハードウェア、又はプログラムなどのソフトウェアコンポーネント）との間の対話を表すことができる。
【００１６】
共有ライブラリ１１０は、本明細書において説明されるとおり、装置１０２及び／又はセンサモジュール１１８からの、測定値などの入力データを含む。こうした測定値は、横断合成（cross-synthesis）を受け、それにより、装置１０２及び／又はセンサモジュール１１６のうち種々のものが、入力データにアクセスし、発話／顔／ジェスチャ認識などのさらなる処理を実行する。上記さらなる処理は、共有ライブラリ１１０内で公表されて、別の装置及び／又はセンサモジュールが有意で有用な情報を追加することを支援する。一定期間後、監視メカニズム１０４は、種々の入力データを相互に関連付け、複数センサ入力からエンティティ状態を決定する。上記エンティティ状態は、姿勢、話された言葉、ジェスチャ及び／又は同様のもののうち任意の組み合わせとして定義され、エンティティ状態データ１１２に記憶されることができる。対話メカニズム１０６は、エンティティ状態データ１１０を抽出し、コンピュータ化された装置コンポーネント１２０にコピーを提供する。
【００１７】
１つの実装例において、１又は複数のエンティティには、ゲーム／シミュレータのプログラムにおける１又は複数のプレーヤ、拡張現実コンテンツ及び／又はサービスを所望する携帯電話ユーザ、ミュージックプレイリストシステムユーザ（群）などを含むことができる。コンピュータ化された装置コンポーネント性能及びユーザ／プレーヤエクスペリエンスは、複数センサ入力データを処理し、エンティティの動き（例えば、ジェスチャコマンドなどの記号的（symbolic）活動）、複数のエンティティ間の対話、及び／又は同様のものなどの、意味／意図を決定するこうしたコンピュータ化された装置コンポーネントの能力に比例的に関連し得る。
【００１８】
１つの実装例において、設定データ１１４は、コンピュータ化された装置コンポーネント１２０に関する制御入力／コマンドに翻訳される種々の形式のエンティティ活動を定義することができる。上記制御入力／コマンドは、制御データ１１４に記憶され、コンピュータ化された計算装置１２０に伝達されることができる。一定期間にわたって、対話メカニズム１０６は、エンティティ状態についての変化を追跡することによって、こうしたエンティティ活動のうち１つを識別する。発話／ジェスチャベースの制御に対する追加又は組み合わせにおいて、エンティティ姿勢における変化が、コンピュータ化された装置コンポーネント１２０の動作の意図された変化を明示的又は暗黙的に示すことができる。例えば、携帯電話ユーザは、装置カメラを空に向かって上に向け、携帯電話コンポーネントに「私の現在の夜空の画面ビューを星座名とともに拡大する」ように明確に指示することができる。上記のことは、監視コンポーネント１０４に、発話認識結果を備えるオーディオデータと画像データとを融合させる。同様にして、エンティティに操作されている装置の位置又は向きにおける変化がさらに、装置コンポーネント動作における所望の変化を示すことができる。
【００１９】
別の例として、対話メカニズム１０６は、特定のエンティティの動き（例えば、数歩歩いている、空中でジャンプしている、及び／又は同様のもの）と向き（例えば、眼差し、又は向いている／身体の方向）とを、意味ある（semantic）制御入力として解釈して、仮想のキャラクタ（例えば、エンティティのアバター）を動かし、その向きを変えることができる。ポインティング装置における奥行きカメラとジャイロスコープとは、エンティティの動きと身体の向きとに関する測定値を提供することができる。さらに、ヘルメット装置上の別のジャイロスコープが、顔の方向に関する測定値を提供することができる。エンティティがジャンプし、かがみ、又はその他の方法で上下に動いた場合、動作中の加速度計（例えば、微小機械加速度計又は重力計）が、重力（すなわち、重力加速度）、方向、変位及び／又は継続期間に関してエンティティの加速を測定することができる。こうした測定値は、複数センサ入力データへと組み合わせられ、種々の時点についてのエンティティ状態データ１１２を生成するように相互に関連付けられることができる。
【００２０】
装置１０２とセンサモジュール１１８との組み合わせが、複数モダリティから監視コンポーネント１０４へのセンサ入力（データ）のセットを提供することができる。装置１０２はさらに、環境のデータ及び／又は他の感知されたデータを監視コンポーネント１０４に提供することができる。より具体的には、まとめると、装置１０２は、物理的環境と監視コンポーネント１０４により追跡及び／又は解析されている１又は複数のエンティティとに関する詳細な情報を集める能力を有する。設定データ１１４は、複数センサ入力データを生成するために使用する装置１０２及び／又はセンサモジュール１１８のうち特定のものを示すことができる。デフォルト設定で、対話メカニズム１０６は、装置１０２及び／又はセンサモジュール１１８のすべてからセンサ入力を集める。設定データ１１４は、装置１０２及び／又はセンサモジュール１１８のうちいずれかが利用可能でない場合にエラーが返されるべきであることを、示すことができる。
【００２１】
１つの実装例において、センサモジュール１１８は、装置１０２のうち１又は複数のためのソフトウェアコンポーネント又はエージェントを含むことができる。例えば、加速度計を含む携帯電話は、監視コンポーネント１０４上のエージェントを使用してモーションデータを伝達することができる。別の例として、カメラがソフトウェアモジュールを使用して、生の画像データを形式合わせされたバージョンに変換し、及び／又は画像データから特性データを抽出することができる。別法として、カメラは、監視コンポーネント１０４上に生データを記憶することができる。
【００２２】
別の実装例において、センサモジュール１１８のいくつかは、物理的環境及び／又はエンティティに関連付けられるハイレベルの又はきめ細かい情報を提供するソフトウェアベースのセンサを含む。生のセンサ入力に加えて、こうしたセンサモジュール１１８は、適切な入力データを処理して有意な情報を提供する。例えば、センサモジュール１１８には、装置１０２により提供されたセンサ入力を処理し、特定のエンティティの顔の特性、話された言葉、及び／又は身体の姿勢／動きをそれぞれ識別する顔認識モジュール、発話認識モジュール、ジェスチャ認識モジュール、及び／又は同様のものを含むことができる。
【００２３】
図２は、１つの実装例に従う、エンティティとコンピュータ化された装置コンポーネントとの間の対話を可能にするセンサフュージョンインタフェースのための例示的なアーキテクチャを表す。本明細書において説明され、図１に示されるとおり、装置１０２とセンサモジュール１１８との組み合わせは、１又は複数のゲームコンソールカメラ（例えば、奥行き感知カメラ）、ウェブカメラ、マイクロフォン、デジタイザ、ペン／ポインティング装置、加速度計、及び「他の」装置のセットを含むことができ、有り得る入力モダリティに対応するデータ（例えば、知識データ）の情報源２０２１〜２０２ｍを表すことができる。
【００２４】
情報源２０２１〜２０２６は、種々の装置及び／又はセンサモジュールの特定の例を示すことができる。こうした例は、装置及び／又はセンサモジュールの潜在的な構成を網羅するものではなく、他の情報源（群）２０２ｍには、磁力計、赤外線の構造化された光、及び／又は同様のものなどの、モーションコントローラコンポーネントを含む任意の数の装置及び／又はセンサモジュールを含むことができる。活用されることができる他の入力データには、ペン装置からの電子インク、注視（方向、経過時間）、近接の感知、発話、エアジェスチャ、身体位置／ボディランゲージ、顔の表情、強化（reinforcement）として忠実に写し出すこと（例えば、指している方向を見ること、まねること）、タッチ、マルチタッチマウス、脳波コンピュータ入力、キーボード、空中のマウス（in-air  mouse）（例えば、ｓｏａｐ）、楽器（例えば、ＭＩＤＩ）、物理的インタフェース（例えば、グローブ、又は触覚のインタフェース）を操作することなどを含む。顔の表情と顔色変化、温度、握りの圧力、及び／又は他の有り得るムードの指標とを組み合わせるなどの、ムード感知が、さらに実現可能な入力モダリティである。
【００２５】
１つの実装例において、モーション感知入力装置２０２１は、１又は複数のエンティティ（例えば、ゲーム用コンソールと対話している１又は複数のプレーヤ）がジェスチャ、身体の動き、及び／又は音声コマンドを用いてインタフェース（例えば、ゲーム用コンソールインタフェース）と自然に対話する（interact）ことを可能にすることができる。モーション感知入力装置２０２１には、ビジュアルデータを捕捉するカラーカメラ（例えば、赤、緑、青（ＲＧＢ）のカメラ）、エンティティの存在と装置の前からの距離とを検出する奥行きカメラ、物理的環境内のオーディオデータを捕捉するマイクロフォンアレイ、及び／又は同様のものなどの、種々のメディア又はマルチメディアのキャプチャメカニズムを含むことができる。
【００２６】
１つの実装例において、モーション感知入力装置２０２１は、１又は複数のエンティティ（例えば、人々、動物、ロボット及び／又は類似のもの）を表す画像データに対応する骨格追跡情報などの、種々の環境及び／又はエンティティデータを提供する。骨格追跡情報は、視野の範囲内でエンティティの動きを説明することができる。視野の一部分が、モーション感知入力装置２０２１がエンティティの動きを捕捉及び／又は解析することができないところとなる可能性がある（例えば、デッドゾーン、又はニュートラルゾーン）。１つの実装例において、この一部分の範囲内のエンティティの動き又はジェスチャが、モーション感知入力装置２０２１により採用されるキャプチャメカニズムを較正することができる。
【００２７】
１つの実装例において、モーション感知入力装置２０２１はさらに、ＸＹＺ奥行きカメラにより生成された環境及び／又はエンティティデータを提供することができる。上記ＸＹＺ奥行きカメラは、カラーカメラストリームデータと奥行きデータとを分析して、オブジェクト又はエンティティとカメラとの間の距離を計算する。別の実装例において、モーション感知入力装置２０２１は、４つの素子のマイクロフォンアレイにより提供されるオーディオデータを処理することができる。例えば、モーション感知入力装置２０２１は、音響のノイズ及びエコーのキャンセル手法及び／又はビーム形成を適用して現在の音源を識別することができる。
【００２８】
１つの実装例において、発話認識モジュール２０２２は、話された言語文法に従い、オーディオデータを単語／文に解釈することができる。発話認識モジュール２０２２は、モーション感知入力装置２０２１のマイクロフォンアレイ、又は、コンピュータマイクロフォン、携帯電話音声レコーダ、及び／若しくは同様のものなどの１若しくは複数の「他の」情報源（群）２０２ｍなどの、任意の情報源からのオーディオデータを処理することができる。発話認識モジュール２０２２は、話された言語文法において使用される単語を含む辞書を用いて開始されることができる。発話認識モジュール２０２２は、発話を単語に識別／分類するために、オーディオに任意の手法を適用することができる。
【００２９】
１つの実装例において、コンシューマ装置２０２３には、任意のコンピューティング装置（例えば、ラップトップ、デスクトップ、タブレット型、及び／又は同様のもの）、モバイル装置（例えば、携帯電話、スマートフォン、及び／又は同様のものなどの任意のハンドセット装置）、ゲーム用コンソールコントローラ、モーションポインタリモートコントローラ、及び／又は同様のものを含むことができる。コンシューマ装置２０２３には、１若しくは複数のセンサモジュール及び／又は１若しくは複数の（入力）装置を含むことができる。例えば、コンシューマ装置２０２３には、内蔵のジャイロスコープを、加速度計と、磁力計（コンパス）との通信のためのインタフェース（例えば、外部のバス及びポート）とともに、含むことができる。コンシューマ装置２０２３はさらに、１又は複数のエンティティに関連付けられた画像データを提供するカメラを（マイクロフォンの有無にかかわらず）含むことができる。こうした低電力で高精度のＭＥＭＳ装置は、エンティティ姿勢及び／又は装置姿勢（例えば、エンティティ又は装置の位置及び／又は向き）に関するかなりきめ細かい情報を提供する。
【００３０】
１つの実装例において、顔認識モジュール２０２４は、画像データ（例えば、１つの画像又は一式の画像）及び／又はビデオデータ（例えば、ビデオフレーム）の中の（人間の）顔を検出及び識別することができる。顔認識モジュール２０２４の実施形態には、ハードウェアコンポーネント及び／又はソフトウェアコンポーネントを含むことができる。顔認識モジュール２０２４は、展開（deployment）に先行して、事前に検証されたエンティティの顔について、正しくラベル付けされた特性を有する画像セットを用いて訓練されることができる。訓練された後、顔認識モジュール２０２４は、モーション感知入力装置２０２１、コンシューマ装置２０２３、及び／又は他の情報源（群）２０２ｍ（例えば、ウェブカメラ、携帯電話カメラ、別のエンティティに属する３次元若しくは２次元のデジタルカメラ、及び／又は同様のもの）のうちの１つにより捕捉された画像を処理し、画像セットからのどのエンティティが環境内に存在する可能性があるのかを決定することができる。訓練セットの大きさは、環境の種類に依存し得る。例えば、比較的に小さい画像セットが家族又は小さいオフィスに対して十分となり得、一方、より大きな画像セットが世界的な組織に対して使用され得る。環境内でエンティティのアイデンティティを検証する代替的なメカニズムとして、エンティティに取り付けられた個人の無線ＩＤ（（Radio  Frequency（RF）Identification）タグが、場所データを周期的に送信することができる。
【００３１】
１つの実装例において、ジェスチャ認識モジュール２０２５は、任意の身体のモーション及び／又は状態に由来するエンティティ（例えば、人間）のジェスチャを、種々の手法（例えば、コンピュータビジョン及び画像処理手法）を用いて解釈することができる。ジェスチャ認識ライブラリを使用して、顔及び手のジェスチャから、感情、体位／姿勢、歩き方、及び／又は近位（proxemics）などの、ジェスチャと人間のボディランゲージとを識別することができる。ジェスチャ認識モジュール２０２５は、モーション感知入力装置２０２１、コンシューマ装置２０２３、ジャイロスコープ、モーション処理ユニット２０２６、及び／又は同様のものなどの適切な装置からの、記録され、事前に検証されたジェスチャを用いて訓練されることができる。ジェスチャ認識モジュール２０２５は、同一のジェスチャについての将来の呼び出しを認識するために、ジェスチャをモデル化することができる。
【００３２】
１つの実装例において、モーション処理ユニット２０２６は、別の装置又は構造内に組み込まれた集積回路（例えば、チップ）を含むことができる。例えば、モーション処理ユニット２０２６の実施形態には、タブレット型コンピュータ、携帯電話、（遠隔の）モーションコントローラ、モーションポインタリモート制御、及び／又は同様のものを含むことができる。１つの実装例において、モーション処理ユニット２０２６は、組み込み型の３軸のジャイロスコープと、３軸の加速度計と、磁力計などのサードパーティのデジタルセンサとインタフェースをとる補助ポートを有するハードウェアアクセラレータエンジンとを含むことができる。したがって、モーション処理ユニットは、統合された９軸のセンサフュージョンと正確な６つの自由度のモーションキャプチャとを容易にすることができる。例示的なモーション処理ユニットは、ＩＮＶＥＮＳＥＳＮＥ（登録商標）ＭＰＵ−６０Ｘ０  Ｍｏｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔとすることができる。
【００３３】
モーション処理ユニット２０２６は、加速度と回転運動とに向きの（heading）情報を加えて組み合わせて、共通知識データコンポーネント２０４に対して単一のデータストリームにすることができる。上記データストリームは、ジャイロスコープ、加速度計及び／又は磁力計からの、エンティティ／装置の向き及び／又は姿勢における変化を示すことができる。上記データストリームは、加速度計データとジャイロスコープデータとを融合することによって部分的に補正されることができる、一定期間にわたるドリフトなどの、データストリーム内の不要な摂動を提示し、データストリームにカルマンフィルタを適用し、かつ／あるいは磁気コンパスを用いてジャイロスコープを周期的に較正することができる。
【００３４】
共通知識データコンポーネント２０４（例えば、当分野において周知のソフトウェア設計パターンを一般に参照する、ブラックボード）は、知識の情報源２０２１〜２０２ｍのすべての上に構成される大域的なデータ構造、スキーマ、又はタイプシステムを定義することができる。大域的なデータ構造、スキーマ、又はタイプシステムを用いて、共通知識データコンポーネント２０４は、生の入力データ、問題点、部分的な解決策、代替手段、示唆、貢献された情報、最終的な解決策、制御情報、及び通信媒体／バッファの、共有ライブラリを維持する。共通知識データコンポーネント２０４は、すべての装置についての共通のプロパティ（例えば、メソッド、属性、データメンバ、及び／又は同様のもの）を定義するセンサインタフェースと、複数センサ入力データ２０６を提供するセンサモジュール（以降、集合的にセンサと呼ぶ）とを実施する。例えば、センサインタフェースは、センサ名、初期化／非初期化メソッド、較正メソッド及び状態フラグを有するオブジェクトインスタンスを作成して、センサがエンティティを追跡しているかどうかを表すことができる。センサインタフェースは、任意のセンサと通信するように拡張することができる。
【００３５】
１つの実装例において、共通知識データコンポーネント２０４はさらに、情報源２０２１〜２０２ｍが共通知識データコンポーネント２０４上の変化に機を見て（opportunistically）応答することを許可する明示的な制御メカニズムを実施することができる。共通知識データコンポーネント２０４により解決される問題点の１つの種類が、特異性とともに、エンティティ活動の背後の意味及び意図を定義し、上記意味及び意図をコンピュータ化された装置コンポーネント（例えば、アプリケーション）の動作へと翻訳することである。
【００３６】
１つの実装例において、共通知識データコンポーネント２０４には、装置１０２及び／又はセンサモジュール１１８が書き込み／読み出しすることができ、センサフュージョンインタフェース２０８がコンピュータ化された装置コンポーネント２１０にアクセスを提供することができる集中的にアクセス可能なデータストアを含む。センサフュージョンインタフェース２０４はさらに、データストアのコンテンツを受信者に伝達することができる。共通知識データコンポーネント２０４は、カメラ画像、音声／ジェスチャコマンド、カメラ画像内のエンティティのアイデンティティ、エンティティ（例えば、プレーヤ）のリスト、及び／又は同様のものなどの、現在の及び／又は履歴のデータを記憶する。共通知識データコンポーネント２０４は、特定のシナリオにおいて初期化される任意のセンサからの入力データを収容するように動的に変更されることができる。
【００３７】
共通知識データコンポーネント２０４のコンテンツが変化する（例えば、新しいカメラ画像フレームが到着する）場合、共通知識データコンポーネント２０４は、イベントを生成し、上記イベントをコンピュータ化された装置コンポーネント２１０に公開する。上記コンテンツを使いたい他のモジュールが、このイベントに対して予約し（subscribe）、共通知識データコンポーネント２０４のインスタンスから新しいデータを読み出すことができる。この方式のセンサは、各々の他の存在についてのいかなる詳細な知識をも有することなく、明確かつ十分な方式で横断通信する（cross-communicate）ことができる。
【００３８】
共通知識データコンポーネント２０４はさらに、エンティティ状態を追跡し、監視し、及び／又は解析することができる。例として、センサ又は一式のセンサが、エンティティ／プレーヤが存在していることを検出した（例えば、モーション感知入力装置２０２１が骨格を認識し、かつ／あるいは顔認識モジュールが顔を検出した）とき、上記センサ又は一式のセンサは、共通知識データコンポーネント２０４のＡｄｄＰｌａｙｅｒ（）メソッドを呼び出す。上記メソッドは、エンティティを新しいプレーヤとして、現在追跡されているエンティティのリストに追加し、追加されたエンティティに関連付けられた入力データを集め、かつ融合するように共通知識データコンポーネント２０４を較正し、他のセンサが予約し得る大域的なイベントを、コンピュータ化された装置コンポーネント２１０に放つ（fires）。
【００３９】
１つの実装例において、アイデンティティ２１４、位置２１６、向き２１８、発話／ジェスチャ、及び／又は同様のものなどの、追加されたエンティティに関連付けられた任意のデータは、一式のプロファイル２１２の対応するものに追加されることができる。位置２１６は、３次元空間における全身の位置及び／又は身体部分の位置（例えば、手の位置）を参照することができる。同様にして、向き２１８は、身体の向き、及び／又は顔の向きなどの特定の身体部位の向きを参照することができる。さらに、位置２１６と向き２１８とは、携帯電話又はポインティング装置などの、エンティティにより操作されている装置を参照することができる。１つの実装例において、プロファイル２１２の例の１つは、任意の特定のエンティティについての複数センサ入力データを捕捉する下記のデータ、すなわち、骨格の位置、手の位置、現在の発話コマンド、頭の位置、及びアイデンティティをカプセル化する。いったんこうした領域が実質的に完成されると、センサフュージョンインタフェース２０８は、コンピュータ化された装置コンポーネント２１０にプロファイルを伝達することができる。
【００４０】
センサフュージョンインタフェース２０８は、コンピュータ化された装置コンポーネント２１０及び／又はプログラム開発者にエンティティ関連の情報を提供することによって、マルチセンサ及び複数人のプログラム開発を容易にする。１つの実装例において、センサフュージョンインタフェース２０８は、例えばエンティティがセンサに関連付けられた検出境界又は範囲を出た場合に、現在のエンティティ状態と１又は複数のイベント（フック）２２０とを公開する。センサフュージョンインタフェース２０８はさらに、コンピュータ化された装置コンポーネント２１０に対してエンティティにより発行された現在のコマンド／制御入力を公開する。別の実装例において、センサフュージョンインタフェース２０８はさらに、コンピュータ化された装置コンポーネント２１０に、選択されたセンサについてのデフォルトオプション及び／又はカスタムオプションを用いて、センサ初期化を提供する。
【００４１】
さらに別の実装例において、センサフュージョンインタフェース２０８はさらに、エンティティと対話するための１又は複数のサポートツール２２２を提供する。１つの例示的なサポートツール２２２にはソフトウェアコードを含み、上記ソフトウェアコードは、実行されると、モーション感知入力装置２０２１又はコンシューマ装置２０２３などのセンサからの生の方向入力データ又は他のモーションデータを、意味ある制御入力に変換する。上記のことは、本明細書において概して説明されたとおり、較正とデッドゾーン割り当てとを通じて達成されることができる。
【００４２】
別の例示的なサポートツール２２２には、実行されると、開発者が抽象的な環境モデル（例えば、家の中の部屋と部屋の間のつながりを示すモデル）を作成することが可能となるソフトウェアコードを含む。特定のセンサが、上記環境モデルの特定の領域（例えば、部屋）に追加されることができる。例えば、３部屋の家の中の各部屋がモーション感知入力装置２０２１を取り付けられることができ、モーション感知入力装置２０２１は環境についてエンティティ追跡を可能にする。エンティティが別の領域に移動するにつれて、コンピュータ化された装置コンポーネント２１０は、エンティティのより近くに存在し得る１つのセンサから別のセンサへとエンティティ追跡義務を移すことができる。
【００４３】
一例として、コンピュータ化された装置コンポーネント２１０は、入力データの情報源としてモーション感知入力装置２０２１とコンシューマ装置２０２３（例えば、ポインティング装置に埋め込まれたジャイロスコープ）とを採用する没入型の一人称シューティングゲーム体験とすることができる。モーション感知入力装置２０２１は、身体関節の動きとプレーヤ位置とに関連付けられた粗い／低分解能の／ハイレベルの情報を提供する。加えて、コンシューマ装置２０２３は、装置の向きに関連付けられたきめ細かい、高分解能の情報を提供する。コンシューマ装置２０２３が手持ちされる場合、コンシューマ装置２０２３は、エンティティがどこを「見ている」かあるいは狙っているかを決定することができる。
【００４４】
上記の例を継続すると、センサフュージョンインタフェース２０８は、モーション感知入力装置２０２１とサポートツール２２２のうち適切な１つとからの位置データを使用して、仮想のキャラクタがどのように動くかを決定する。中心となるデッドゾーンから、前に一歩移動することが、仮想のキャラクタを前に移動させ、ニュートラルの、デッドゾーンに戻ることが、仮想のキャラクタを停止させる。コンシューマ装置２０２３からのデータは、エンティティの「眼差し」、又は仮想のキャラクタが向いている方向を制御することができる。コンシューマ装置２０２３を、ポインタ又はワンドにおけるように、エンティティ自身の手の中に保持することによって、エンティティは、仮想のキャラクタの見る及び歩く方向を指示することができる。上記２つの入力モードを組み合わせることによって、エンティティは、１）前後左右に移動すること、及びコンシューマ装置２０２３を特定の方向に向けることによって、仮想のキャラクタを制御することが可能となる。
【００４５】
別の例として、コンピュータ化された装置コンポーネント２１０は、家、オフィス又は他の室内環境の方々でエンティティの動きを追跡する、複数の部屋の、マルチセンサのミュージックプレイリストシステム（例えば、ハードウェア、又はアプリケーション若しくはオペレーティングシステムコンポーネントなどのソフトウェアコンポーネント）とすることができる。センサフュージョンインタフェースは、追跡されたエンティティの動きデータをミュージックプレイリストシステムに、エンティティ状態データ又はプロファイル２１２を介して提供し、プレイリストに関連付けられたデジタルミュージック（サウンド）が別の部屋へ行くエンティティを追いかけることを可能にする。モーション感知入力装置２０２１のためのカメラが、あらゆる関与している部屋に取り付けられ、エンティティが室内を歩くにつれてエンティティの顔を捕捉することができる。上記カメラは、ミュージックプレイリストを実行し、スピーカシステムを通じて音楽を再生している、中心となるパーソナルコンピュータに接続されることができる。エンティティは、１つの実装例に従い、家族のメンバによって作成されたプレイリストをミュージックプレイリストシステムに提供することができる。各メンバの１０〜１５個の画像において顔認識モジュール２０２４を訓練した後、ミュージックプレイリストシステムは、種々のメンバを区別し、適切なプレイリストを再生することができる。
【００４６】
エンティティがカメラの前を歩く場合、センサフュージョンインタフェース２０８は、誰かが部屋に入ったというイベントを起こす。このイベントを受信すると、顔認識モジュール２０２４は、カメラから画像を捕捉し、画像を処理して顔を認識する。画像内の顔がプレーヤのうちの１人に一致すると、プレーヤに関連付けられたプレイリストが検索され、再生される。カメラが室内のエンティティの位置を追跡するとき、ミュージックプレイリストシステムは、エンティティのビジュアルディスプレイからの距離に基づいて、ビジュアルディスプレイの詳細のレベルを調整することができる。必要ではないが、プレーヤがディスプレイに近い場合、ミュージックプレイリストシステムは、プレイリスト内の歌曲のうち１又は複数についてのアルバムアートワークの表現を提示する。プレーヤが遠くに立っているとき、ミュージックプレイリストシステムは、現在再生中の歌曲のみについて、ズームされたバージョンのアートワークを示す。他の対話モードが、音声である。「フュージョン」というキーワードを前に付けられたコマンドを用いて、エンティティは、歌曲を「一時停止し」、「再開し」、「最初から再生し」、あるいは「スキップする」ことができる。発話認識モジュール２０２２は、周辺のノイズ、室内で互いに話している人々、又は再生されている歌曲の実際の歌詞を解析するときにあいまいさに直面する可能性があり、前に付けられるキーワードは、発話認識モジュール２０２２がいかなるあいまいさをも除外することを可能にする。
【００４７】
エンティティが部屋を出るとき、ミュージックプレイリストシステムは、プレイリストの状態（例えば、現在の歌曲、歌曲内での位置、及び／又は同様のもの）を保存する。同一のエンティティが別の部屋に入り、あるいは同一の部屋に再び入り、明確に識別された場合、ミュージックプレイリストシステムは、最後の位置から音楽の再生を再開する。エンティティが寝室で歌曲を聴いているシナリオを考える。エンティティが寝室を出てキッチンに入るとき、上記歌曲は寝室において徐々に消え、キッチンにおいて再生が始まり、途切れのないリスニング体験が提供される。複数のエンティティが同じ部屋にいる場合、コンピュータ化された装置コンポーネント２１０は、双方のプレーヤのプレイリスト内の歌曲を識別し、交互に再生し、あるいはその他の方法で上記歌曲を切り替える。代替手段として、コンピュータ化された装置コンポーネントは、「協同的に作成された」プレイリストを再生し、あるいは個人の関心に基づいたミュージック推奨サービスを使用することができる。
【００４８】
図３は、１つの実装例に従う、コンピュータ化された装置コンポーネントにセンサフュージョンインタフェースを公開する例示的なステップを示すフロー図である。上記例示的なステップはステップ３０２において始まり、ステップ３０４に進むことができる。ステップ３０４において、センサフュージョンインタフェース２０８は、コンピュータ化された装置コンポーネントからの要求を処理する。１つの実装例において、センサフュージョンインタフェース２０８は、監視メカニズム１０４により追跡及び統合される複数センサ入力データへのアクセスを、コンピュータ化された装置コンポーネントに提供する。監視メカニズム１０４は、例えばゲーム用コンソールとモーション感知入力装置（例えば、マイクロソフト（登録商標）Ｋｉｎｅｃｔ（商標）とＸｂｏｘ（商標））の組み合わせのための監視メカニズムなどである。
【００４９】
ステップ３０６は、センサモジュール及び装置からの複数センサ入力を含む共有ライブラリにアクセスすることに向けられる。１つの実装例において、共有ライブラリは、ブラックボード設計パターンとして知られるソフトウェア設計パターンを実施するシステムによって作成されることができる。随意のステップ３０８は、入力データからノイズを除去するために、複数センサ入力の中の不要な摂動を取り除くことに向けられる。ステップ３１０は、１又は複数のエンティティについてのエンティティ状態データを抽出することに向けられる。ステップ３１２は、コンピュータ化された装置コンポーネントに、エンティティ状態データへのアクセスを提供することに言及する。１つの実装例において、エンティティ状態データは、エンティティ姿勢とコンピュータ化された装置コンポーネントについての現在のコマンド／制御入力と１又は複数のイベント（例えば、エンティティが感知範囲の外側に行ったことを示すイベント）とを含むマルチモーダル入力データの一部とすることができる。ステップ３１４は、図３に表される例示的なステップを終了する。
【００５０】
図４は、１つの実装例に従う、複数センサ入力から制御データを生成する例示的なステップを示すフロー図である。上記例示的なステップは、ステップ４０２において始まり、ステップ４０４に進むことができる。ステップ４０４において、対話メカニズムは、プログラム又は他のソフトウェアコンポーネント（例えば、ゲーム用アプリケーション）などのコンピュータ化された装置コンポーネントのための制御入力に翻訳されるエンティティ活動を定義する設定データを処理する。対話メカニズムは、センサフュージョンインタフェースを介して設定データを受信する。エンティティ活動には、特定のコマンドを表す、組み合わせられた発話／ジェスチャデータなどの（マルチモーダルの）記号的活動を含むことができる。エンティティ活動にはさらに、ディスプレイに投影され、仮想のキャラクタ（例えば、エンティティを表すアバター）により実行されることになる実際の動きを含むことができる。
【００５１】
ステップ４０６は、エンティティ姿勢及び／又は装置姿勢の決定に言及する。装置は、エンティティにより操られ、又は操作される手持ち式の装置とすることができる。ステップ４０８は、エンティティ姿勢及び／又は装置姿勢が前の時点から変化したかどうかに関しての決定を表す。エンティティ姿勢及び／又は装置姿勢が変化した場合、ステップ４０８はステップ４１０に進む。エンティティ姿勢及び／又は装置姿勢が、前の時点におけるエンティティ姿勢及び／又は装置姿勢と同じままである場合、ステップ４０８はステップ４０６に戻り、姿勢の計算を繰り返す。ステップ４１０は、エンティティ状態データ、及び／又は環境モデルの現在の表現を更新することに向けられる。
【００５２】
ステップ４１２は、エンティティ姿勢変化及び／又は装置姿勢変化を、物理的環境又は仮想の環境のいずれかについてのコマンド／制御入力として解釈することに向けられる。上記姿勢変化及び／又は装置姿勢変化が、物理的環境内のコンピュータ化された装置についてのコマンド／制御入力を表す場合、ステップ４１２はステップ４１４に進む。ステップ４１４において、エンティティは、プログラムを使用してコンピュータ化された装置を操作する。上記姿勢変化及び／又は装置姿勢変化が、仮想の環境（すなわち、ディスプレイ上）におけるアバター又は別のオブジェクトについてのコマンド／制御入力を表す場合、ステップ４１２は、ステップ４１６に進む。ステップ４１６において、エンティティは、プログラムを使用して仮想の環境内のアバター及び／又はオブジェクトを制御する。ステップ４１８は、融合すべきさらなるセンサ入力が存在するかどうかに関しての決定を表す。融合すべきさらなるセンサ入力が存在する場合、ステップ４１８はステップ４０６に戻る。融合すべきさらなるセンサ入力が存在しない場合、ステップ４１８はステップ４２０に進む。ステップ４２０は上記例示的なステップを終了する。
【００５３】
図５は、１つの実装例に従う、エンティティ対話を管理する例示的なステップを示すフロー図である。上記例示的なステップは、ステップ５０２において始まり、ステップ５０４に進むことができる。ステップ５０４において、対話メカニズム１０６は、センサモジュールを設定し、コンピュータ化された装置からの設定データに基づいて１又は複数の入力モードを選択する。デフォルト設定で、対話メカニズムはすべての起こり得る入力モードを採用することができる。１つの実装例において、設定データは、選択された入力モードのうち１つが利用可能でない場合にエラーが返されるべきであることを示すことができる。ステップ５０６は、物理的環境内にいる複数のエンティティについてのプロファイルを公開することを表す。ステップ５０８は、エンティティ対話を分析することに向けられる。例えば、コンピュータ化された装置コンポーネントが１人称シューティングゲームである場合、対話メカニズム１０６は、仮想の環境内でどのエンティティが撃たれた／殺されたかを示す種々のエンティティに関連する測定値を分析する。
【００５４】
ステップ５１０は、衝突を識別することに言及する。コンピュータ化された装置コンポーネントが「家の方々で音楽を再生する」コンピュータ化された装置コンポーネントである場合、プレイリストを有する２つのエンティティが家の中の同じ部屋を使用しているときに衝突が生じる可能性がある。ステップ５１２は、衝突関連のイベントを伝達してコンピュータ化された装置コンポーネントに衝突を解決することを促すことに言及する。ステップ５１４は図５に表されるステップを終了する。
【００５５】
例示的なネットワーク化された分散型の環境
本明細書において説明される種々の実施形態及び方法は任意のコンピュータ又は他のクライアント若しくはサーバ装置と関連して実施されることができ、上記任意のコンピュータ又は他のクライアント若しくはサーバ装置はネットワークコンピュータの一部として又は分散型コンピューティング環境において展開されることができ、任意の種類の１又は複数のデータストアに接続されることができることを、当業者は十分理解するであろう。これに関して、本明細書において説明される種々の実施形態は、任意の数のメモリ又は記憶装置ユニットを有する任意のコンピュータシステム又は環境において、任意の数の記憶装置ユニットにわたって生じる任意の数のアプリケーション及びプロセスにおいて実施されることができる。上記には、これらに限定されないが、リモート又はローカルの記憶装置を有する、ネットワーク環境又は分散型コンピューティング環境に展開されたサーバコンピュータ及びクライアントコンピュータを有する環境を含む。
【００５６】
分散型コンピューティングは、コンピューティング装置及びシステムの間の通信の交換によって、コンピュータのリソース及びサービスの共有を提供する。上記リソース及びサービスには、ファイルなどのオブジェクトのための情報の交換、キャッシュ記憶装置、及びディスク記憶装置を含む。上記リソース及びサービスにはさらに、負荷分散、リソースの拡大、処理の特化、及び同様のもののため、複数処理ユニットにわたって処理能力を共有することを含む。分散型コンピューティングは、ネットワーク接続性を生かし、クライアントがクライアント自体の集合体の能力を活用してエンタープライズ全体の利益を得ることを可能にする。これに関して、様々な装置が、対象の開示の種々の実施形態について説明されたとおりのリソース管理メカニズムに関与し得るアプリケーション、オブジェクト又はリソースを有することができる。
【００５７】
図６は、例示的なネットワーク化された又は分散型のコンピューティング環境の概略図を与える。分散型コンピューティング環境には、コンピューティングオブジェクト６１０、６１２等と、コンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等とを含み、上記コンピューティングオブジェクトとコンピューティングオブジェクト又は装置とは、例示的なアプリケーション６３０、６３２、６３４、６３６、６３８により表されるとおり、プログラム、メソッド、データストア、プログラマブルロジックなどを含むことができる。コンピューティングオブジェクト６１０、６１２等とコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等とには、パーソナルデジタルアシスタント（ＰＤＡ）、オーディオ／ビデオ装置、携帯電話、ＭＰ３プレーヤ、パーソナルコンピュータ、ラップトップなどの、種々の装置を含むことができることを、十分理解されたい。
【００５８】
各々のコンピューティングオブジェクト６１０、６１２等とコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等とは、通信ネットワーク６４０によって、直接的又は間接的のいずれかで、１又は複数の他のコンピューティングオブジェクト６１０、６１２等及びコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等と通信することができる。図６において単一の要素として示されているが、通信ネットワーク６４０は、図６のシステムにサービスを提供する他のコンピューティングオブジェクト及びコンピューティング装置を含むことができ、かつ／あるいは図示されていない複数の相互接続されたネットワークを表すことができる。各々のコンピューティングオブジェクト６１０、６１２等とコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等とはさらに、アプリケーション６３０、６３２、６３４、６３６、６３８などのアプリケーションを含むことができ、上記アプリケーションは、対象の開示の種々の実施形態に従い提供されるアプリケーションに対して通信又は実装に適したＡＰＩ、又は他のオブジェクト、ソフトウェア、ファームウェア及び／若しくはハードウェアを使用することができる。
【００５９】
分散型コンピューティング環境をサポートする様々なシステム、コンポーネント及びネットワーク設定が存在する。例えば、コンピューティングシステムは、有線又は無線のシステムによって、ローカルネットワーク又は広い分散型のネットワークによって、ともに接続されることができる。現在、多くのネットワークがインターネットに結合され、上記インターネットは、広い分散型コンピューティングのためのインフラストラクチャを提供し、多くの種々のネットワークを包含する。しかしながら、任意のネットワークインフラストラクチャが、種々の実施形態において説明されるとおりシステムに対して起こりやすい例示的な通信に対して使用されることができる。
【００６０】
したがって、クライアント／サーバ、ピアツーピア又はハイブリッドのアーキテクチャなどの、ネットワークトポロジ及びネットワークインフラストラクチャのホストが、活用されることができる。「クライアント」は、あるクラス又はグループのメンバであり、上記メンバは、上記メンバが関連していない別のクラス又はグループのサービスを使用する。クライアントは、プロセス、例えば大まかには命令又はタスクのセットとすることができ、上記プロセスは、別のプログラム又はプロセスにより提供されるサービスを要求する。クライアントプロセスは、他のプログラム又はサービス自体に関するいかなる動作の詳細をも「知る」必要なく、要求されたサービスを活用する。
【００６１】
クライアント／サーバアーキテクチャ、具体的にはネットワーク化されたシステムにおいて、クライアントは、大抵、別のコンピュータ、例えばサーバにより提供される共有ネットワークリソースにアクセスするコンピュータである。図６の図示において、非限定的な例として、コンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等は、クライアントと解されることができ、コンピューティングオブジェクト６１０、６１２等はサーバと解されることができる。上記において、サーバとして動作するコンピューティングオブジェクト６１０、６１２等は、クライアントコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等からデータを受信すること、データを記憶すること、データを処理すること、クライアントコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等にデータを送信することなどの、データサービスを提供する。しかしながら、いかなるコンピュータも、環境に依存して、クライアント、サーバ、又は双方と見なすことができる。
【００６２】
サーバは典型的には、インターネット又は無線ネットワークインフラストラクチャなどのリモート又はローカルのネットワークを通じてアクセス可能なリモートのコンピュータシステムである。クライアントプロセスは、第１のコンピュータシステムにおいてアクティブとなることができ、サーバプロセスは、第２のコンピュータシステムにおいてアクティブとなり、通信媒体を通じて互いに通信することができ、したがって、分散型の機能性を提供し、複数クライアントがサーバの情報収集能力を活用することを可能にする。
【００６３】
通信ネットワーク６４０又はバスがインターネットであるネットワーク環境において、例えば、コンピューティングオブジェクト６１０、６１２等はウェブサーバとすることができ、上記ウェブサーバと他のコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等とがハイパーテキスト転送プロトコル（ＨＴＴＰ）などの複数の既知のプロトコルのいずれかを介して通信する。サーバとして動作するコンピューティングオブジェクト６１０、６１２等はさらに、分散型コンピューティング環境の特徴であり得るとおり、クライアント、例えばコンピューティングオブジェクト又は装置６２０、６２２、６２４、６２６、６２８等として動作することができる。
【００６４】
例示的なコンピューティング装置
言及されたとおり、有利なことに、本明細書において説明される手法は、いかなる装置にも適用されることができる。ゆえに、すべての種類の手持ち式の、ポータブルの、及び他のコンピューティング装置及びコンピューティングオブジェクトが、種々の実施形態に関連しての使用に考えられることを、理解されたい。したがって、図７において以下に説明される下記の汎用目的リモートコンピュータは、コンピューティング装置の一例に過ぎない。
【００６５】
実施形態は部分的に、装置又はオブジェクトについてのサービスの開発者による使用のため、オペレーティングシステムを介して実装されることができ、かつ／あるいは、本明細書において説明される種々の実施形態の１又は複数の機能の態様を実行するように動作するアプリケーションソフトウェア内に含まれることができる。ソフトウェアは、プログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈において説明されることができ、クライアントワークステーション、サーバ又は他の装置などの１又は複数のコンピュータにより実行されることができる。コンピュータシステムが、データを通信するために使用することができる様々な設定及びプロトコルを有し、したがって特定の設定又はプロトコルは限定と見なされないことを、当業者は理解するであろう。
【００６６】
図７はしたがって、本明細書に説明される実施形態の１又は複数の態様を実施することができる適切なコンピューティングシステム環境の例を示す。しかしながら、上記で明らかにされているとおり、コンピューティングシステム環境７００は、適切なコンピューティング環境の単に一例であり、使用又は機能性の範囲に関して何らかの限定を示唆することを目的としない。加えて、コンピューティングシステム環境７００は、例示的なコンピューティングシステム環境７００に示されるコンポーネントの任意の１又は複数の組み合わせに関して、何らかの依存性を有するものと解釈されることを目的としない。
【００６７】
図７を参照すると、１又は複数の実施形態を実装する例示的なリモート装置が、コンピュータ７１０の形で汎用目的コンピューティング装置を含む。コンピュータ７１０のコンポーネントは、これらに限定はされないが、処理ユニット７２０と、システムメモリ７３０と、システムメモリを含む種々のシステムコンポーネントを処理ユニット７２０に結合するシステムバス７２２とを含むことができる。
【００６８】
コンピュータ７１０は典型的には、様々なコンピュータ読取可能媒体を含み、コンピュータ７１０によりアクセスされることができる任意の利用可能な媒体とすることができる。システムメモリ７３０は、読取専用メモリ（ＲＯＭ）及び／又はランダムアクセスメモリ（ＲＡＭ）などの揮発性及び／又は不揮発性のメモリの形式のコンピュータ記憶媒体を含むことができる。限定ではなく例として、システムメモリ７３０はさらに、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含むことができる。
【００６９】
ユーザは、入力装置７４０を通じてコンピュータ７１０にコマンド及び情報を入力することができる。モニタ、又は他の種類のディスプレイ装置が、出力インタフェース７５０などのインタフェースを介してシステムバス７２２にさらに接続される。モニタに加えて、コンピュータはさらに、スピーカ又はポインタなどの他の周辺出力装置を含むことができ、上記他の周辺出力装置は、出力インタフェース７５０を通じて接続されることができる。
【００７０】
コンピュータ７１０は、ネットワーク化された又は分散型の環境において、リモートコンピュータ７７０などの１又は複数の他のリモートコンピュータへの論理的接続を用いて動作することができる。リモートコンピュータ７７０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置若しくは他の共通ネットワークノード、又は任意の他のリモート媒体消費若しくは送信装置とすることができ、コンピュータ７１０に関連して上記で説明された要素のいくつか又はすべてを含むことができる。図７に表される論理的接続には、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）などのネットワーク７２２を含み、しかしさらに、他のネットワーク／バスを含むことができる。こうしたネットワーキング環境は、家庭、オフィス、企業規模のコンピュータネットワーク、イントラネット、及びインターネットにおいて一般的である。
【００７１】
上記で言及されたとおり、例示的な実施形態が種々のコンピューティング装置及びネットワークアーキテクチャに関連して説明されてきたが、基本的な概念は、リソース使用法の効率を向上したい任意のネットワークシステムと任意のコンピューティング装置又はシステムとに適用されることができる。
【００７２】
さらに、アプリケーション及びサービスが本明細書において提供される手法を活用することを可能にする同一の又は類似の機能性を実施する複数の方法が存在する。上記機能性は、例えば、適切なＡＰＩ、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロン又はダウンロード可能ソフトウェアオブジェクトなどである。したがって、本明細書における実施形態は、本明細書に説明されるとおりの１又は複数の実施形態を実施するソフトウェア又はハードウェアオブジェクトからだけでなく、ＡＰＩ（又は他のソフトウェアオブジェクト）の観点からも考えられる。したがって、本明細書に説明される種々の実施形態は、全体的にハードウェア内にある態様、部分的にハードウェア内にあり部分的にソフトウェア内にある態様、及びソフトウェア内にある態様を有することができる。
【００７３】
「模範的」という単語は、本明細書において、例、実例又は例解としての役割を果たすことを意味するように使用される。誤解を避けるため、本明細書に開示される対象事項は、上記の例によって限定されない。加えて、「模範的」は、必ずしも他の態様又は設計を上回って好適又は有利であると見なされるものではなく、当業者に知られる均等の例示的な構造及び手法を除外することを意味するものでもない。さらに、「含む」「有する」「包含する」という用語及び他の類似の単語が使用される限りにおいて、誤解を避けるため、上記用語は、請求項において用いられたときにいかなる追加の又は他の要素をも除外することなく、開放的な移行語として、「備える」という用語と類似する方式で包括的であることが意図される。
【００７４】
言及されたとおり、本明細書に説明される種々の手法が、ハードウェア又はソフトウェアを用いて、あるいは適切な場合は双方の組み合わせを用いて、関連して実施されることができる。本明細書において、「コンポーネント」、「モジュール」、「システム」及び同様のものの用語は、コンピュータ関連のエンティティ、いずれかのハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア、又は実行中のソフトウェアに言及することが同様に意図される。例えば、コンポーネントは、これらに限定されないが、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、及び／又はコンピュータとすることができる。例示として、コンピュータ上で実行中のアプリケーションとコンピュータとの双方が、コンポーネントであってよい。１又は複数のコンポーネントが、プロセス、及び／又は実行のスレッドの中に存在することができ、コンポーネントは、１つのコンピュータ上でローカライズされ、かつ／あるいは複数のコンピュータ間で分散されることができる。
【００７５】
前述のシステムは、複数のコンポーネント間の対話に関して説明されてきた。こうしたシステム及びコンポーネントは、前述についての種々の順列及び組み合わせに従い、上記コンポーネント若しくは特定のサブコンポーネント、特定のコンポーネント若しくはサブコンポーネントのいくつか、及び／又はさらなるコンポーネントを含むことができることを、十分理解されたい。サブコンポーネントはさらに、親コンポーネント（階層的な）内に含まれること以外に、他のコンポーネントに通信可能に結合されるコンポーネントとして実施されることができる。さらに、１又は複数のコンポーネントが、複合の機能性を提供する単一のコンポーネントに組み合わせられ、あるいはいくつかの別個のサブコンポーネントに分割されることができることと、管理レイヤなどの任意の１又は複数のミドルレイヤが、統合された機能性を提供するために上記サブコンポーネントに通信可能に結合するように提供されることができることとに、留意されたい。本明細書に説明されるいかなるコンポーネントも、本明細書に具体的に説明されていないが当業者に一般的に知られる１又は複数の他のコンポーネントと対話することができる。
【００７６】
本明細書に説明される例示的なシステムの観点で、説明される対象事項に関連して実施されることができる方法論もまた、種々の図面のフローチャートを参照して十分理解されることができる。説明の簡素化の目的で、上記方法論は一連のブロックとして図示及び説明されているが、種々の実施形態は上記ブロックの順序によって限定されるものではなく、いくつかのブロックが、本明細書に表現及び説明されているものとは異なる順序で、かつ／あるいは他のブロックと同時に生じる場合があることを、十分理解されたい。非順序的な、又は分岐されたフローがフローチャートにより示されている場合、同一の又は類似の結果を達成する種々の他の分岐、フロー経路、及びブロックの順序を実装することができることを、十分理解されたい。その上、いくつかの図示されているブロックは、その後に説明される方法論を実施することにおいて随意的である。
【００７７】
結び
本発明は、種々の変更と代替的な構成とを受け入れる余地があるが、特定の図示されている本発明の実施形態が、図面において示され、上記で詳細に説明されてきた。しかしながら、開示された特定の形式に本発明を限定する意図はまったくなく、しかし対照的に、本発明は、本発明の主旨及び範囲に入るすべての変更、代替的な構成、及び均等物を含むものであることを、理解されたい。
【００７８】
本明細書に説明される種々の実施形態に加えて、他の類似の実施形態を使用することができ、あるいは、説明された実施形態（群）に対して、対応する実施形態（群）の同一の又は均等の機能を実行するため、上記説明された実施形態（群）から逸脱することなく、変更及び追加をなすことができることを、理解されたい。またさらに、複数の処理チップ又は複数の装置が、本明細書に説明される１又は複数の機能の実行を共有することができ、同様にして、記憶装置が、複数の装置にわたってもたらされることができる。したがって、本発明は、いかなる単一の実施形態にも限定されるものではなく、むしろ、添付の特許請求の範囲に従った広がり、主旨及び範囲の中にあると見なされるものである。
【図１】
0006553124.tif 000002
【図２】
0006553124.tif 000003
【図３】
0006553124.tif 000004
【図４】
0006553124.tif 000005
【図５】
0006553124.tif 000006
【図６】
0006553124.tif 000007
【図７】
0006553124.tif 000008