(57)【要約】  標準的なジェスチャーの補完的な組をジェスチャーライブラリーへとグループ化する、システム、方法及びコンピューター読み取り可能な媒体が開示される。ジェスチャーは、あるコンテキストにおいて一緒に頻繁に使用されるという点又はそれらのパラメーターが相互に関連するという点において、補完的であり得る。ジェスチャーのパラメーターが第１の値で設定される場合、ジェスチャーのすべての他のパラメーター及び第１の値に依存するジェスチャーパッケージ中の他のジェスチャーのすべての他のパラメーターは、第１の値を使用して決定されるそれら自身の値で設定されてもよい。
2012516507.tif 000002
【特許請求の範囲】
【請求項１】
補完的なジェスチャーフィルターのパッケージをアプリケーションに提供する方法であって、
複数のフィルターを含むパッケージを提供するステップであって、各フィルターはジェスチャーに関する情報を含み、少なくとも１つのフィルターは前記パッケージの中の少なくとも１つの他のフィルターと補完しあう、ステップ（９０２）と、
第１のフィルターのパラメーターに第１の値を割り当てる指示を受け取るステップ（９０４）と、
前記パラメーターに値を割り当てるステップ（９０６）と、
前記第１の値を使用して決定される第２の値を第２のフィルターの第２のパラメーターに割り当てるステップ（９０８）と
を含む方法。
【請求項２】
前記第１のフィルターのパラメーターは、体の部分、空間の体積、速度、動作の方向、角度、二次元（２Ｄ）平面、又は動作が生じる場所を表す請求項１に記載の方法。
【請求項３】
前記ジェスチャーは、しゃがむこと、ジャンプ、寄りかかること、腕で投げること、トス、スイング、よけること、キック、又はブロックを含む請求項１に記載の方法。
【請求項４】
（ｉ）フィルターが前記パッケージ中の少なくとも１つの他のフィルターのパラメーターに基づいて決定される少なくとも１つのパラメーターを有し、（ｉｉ）フィルターが、前記パッケージ中の前記少なくとも１つの他のフィルターによって表されるジェスチャーについての短期間内にユーザーによって共通になされるジェスチャーを表し、又は（ｉｉｉ）フィルターによって表されるジェスチャーが、前記パッケージ中の前記少なくとも１つの他のフィルターによって表されるジェスチャーと同時に行うことができる場合、前記フィルターは前記パッケージ中の前記少なくとも１つの他のフィルターと補完しあう請求項１に記載の方法。
【請求項５】
前記パラメーターに前記値を割り当てる前記指示は、ユーザーが前記ジェスチャーをすることの結果として受け取られる請求項１に記載の方法。
【請求項６】
前記値は、固定値、範囲又は許容範囲を備えた値である請求項１に記載の方法。
【請求項７】
前記第２の値は、比例の関係、反比例の関係、線形の関係、指数関数的な関係又は入力として前記第１の値をとる関数に基づいて前記第１の値を使用して決定される請求項１に記載の方法。
【請求項８】
前記パッケージは特定のジャンルのための補完的なジェスチャーフィルターを含み、前記ジャンルは、一人称のシューティングゲーム、アクション、ドライビング又はスポーツジャンルのうちの１つである請求項１に記載の方法。
【請求項９】
前記アプリケーションはビデオゲーム又はオペレーティングシステムである請求項１に記載の方法。
【請求項１０】
前記第２のパラメーターに第３の値を割り当てる指示を受け取るステップと、
前記第２のパラメーターに前記第３の値を割り当てるステップと
をさらに含む請求項１に記載の方法。
【請求項１１】
補完的なフィルターのパッケージをアプリケーションに提供するためのシステムであって、
少なくとも１つのフィルターのパッケージを含むフィルターライブラリーであって、各フィルターはジェスチャーに関する情報を含み、前記少なくとも１つのパッケージの少なくとも１つのフィルターは前記パッケージ中の少なくとも１つの他のフィルターと補完しあう、フィルターライブラリー（８０２）と、
前記アプリケーションにフィルターパッケージを提供し、ユーザーの少なくとも一部についての少なくとも１つの画像に対応するデータを受け取り、少なくとも２つの整合フィルターに対応するデータを決定し、前記整合フィルターのうちの第１のフィルターが前記整合フィルターのうちの少なくとも１つの他のフィルターとどのように動作するかを決定し、各々の整合フィルターに対応する出力を前記アプリケーションに送る回路（１２）と
を備えるシステム。
【請求項１２】
前記出力は信頼水準を含み、前記回路が、前記少なくとも１つの他の整合フィルターの信頼水準に基づいて前記第１のフィルターの信頼水準を変更することにより、第１の整合フィルターが少なくとも１つの他の整合フィルターとどのように動作するかを決定する請求項１１に記載のシステム。
【請求項１３】
前記回路はさらに、
前記パッケージ中にないフィルターについてのデータを解析する前に、データが前記パッケージのフィルターの１つ以上との一致を示すかどうかを決定するために、前記パッケージ中の各フィルターについてデータを解析する請求項１１に記載のシステム。
【請求項１４】
前記回路はさらに、
前記データに対応する前記少なくとも１つのフィルターと同時に解析することができないフィルターについて前記データを解析する前に、前記データに対応する前記少なくとも１つのフィルターと同時に解析することができる前記パッケージ中の各々の他のフィルターについて前記データを解析する請求項１１に記載のシステム。
【請求項１５】
プロセッサー上で実行されると前記プロセッサーに動作を実行させるコンピューター読み取り可能な命令を含む、コンピューター読み取り可能な記憶媒体であって、前記動作は、
複数のフィルターを含むパッケージを提供するステップであって、各フィルターはジェスチャーに関する情報を含み、各フィルターは前記パッケージ中の少なくとも１つの他のフィルターと補完しあい、ジェスチャーは、ユーザーが距離カメラにより得られるそのジェスチャーと関連付けられる動作又は姿勢を行うことにより入力される、提供するステップ（９０２）と、
第１のフィルターのパラメーターに第１の値を割り当てる指示を受け取るステップ（９０４）と、
前記パラメーターに前記値を割り当てるステップ（９０６）と、
第２のフィルターの第２のパラメーターに、前記第１の値を使用して決定される第２の値を割り当てるステップ（９０８）と
を含む、コンピューター読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、標準的なジェスチャーに関する。
【背景技術】
【０００２】
[0001]コンピューターゲーム、マルチメディアアプリケーション、オフィスアプリケーションなどの多くのコンピューターアプリケーションは、ユーザーがゲームキャラクター又はアプリケーションの他の側面を操作することを可能にするためにコントロールを使用する。通常、そのようなコントロールは、例えば、コントローラー、リモコン、キーボード、マウスなどを使用して入力される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念ながら、そのようなコントロールは学習するのが難しく、したがって、ユーザーとそのようなゲーム及びアプリケーションとの間の障壁を作成することになり得る。さらに、そのようなコントロールは、コントロールが使用される実際のゲーム動作又は他のアプリケーション動作と異なることがある。例えば、ゲームキャラクターに野球のバットをスイングさせるゲームの制御は野球のバットをスイングする実際の動作に対応しないかもしれない。
【課題を解決するための手段】
【０００４】
[0002]ユーザーの骨格の動きを反映するデータを受け取り、ユーザーが１つ以上のジェスチャーを行ったかどうかをそのデータから決定するシステム及び方法が本明細書において開示される。アプリケーション開発者がアプリケーションにジェスチャー認識を組み入れることができる、標準的なジェスチャーのパッケージが開示される。
【０００５】
[0003]例示的な実施例において、ジェスチャーライブラリーは複数のジェスチャーを含む。これらのジェスチャーが互いに補完する場合、それらはジェスチャーパッケージへとグループ化されてもよい。その後、これらのジェスチャーパッケージはジェスチャー認識エンジンによる使用のためにアプリケーションへ提供される。アプリケーションは１つ以上のジェスチャーパッケージを利用してもよい。
【０００６】
[0004]アプリケーションは、認識されるべきフットボールを投げるジェスチャーのために到達しなければならない腕の速度の最小のしきい値などの、ジェスチャーの第１のパラメーターに値を割り当ててもよい。認識エンジン（recognizer engine）はその値によって第１のパラメーターを設定し、そのジェスチャー又は第１のジェスチャーの値に依存するジェスチャーパッケージ中の他のジェスチャーについての任意の他のパラメーターの値をさらに設定する。例えば、ジェスチャーパッケージがフットボールを投げるジェスチャーを含むスポーツのジェスチャーパッケージである場合、パッケージはまた、フットボールを投げるジェスチャーと相互に関連する、野球のカーブボール（curveball）を投げるジェスチャー及び野球の速球を投げるジェスチャーを含んでもよい。野球のカーブボールを投げるジェスチャーがフットボールを投げるジェスチャーの８０％の腕の速度の最小しきい値を有するべきであり、野球の速球を投げるジェスチャーがフットボールを投げるジェスチャーの９０％の腕の速度の最小しきい値を有するべきであると決定された場合、次にそれらのパラメーターは、当該値の８０％及び９０％にそれぞれ設定されてもよい。
【０００７】
[0005]本開示の１つ以上の様々な態様が、本開示の明細書において参照される態様をもたらす回路及び／又はプログラミングを含み得るがそれに限定されないことは当業者によって理解される；回路及び／又はプログラミングは、システム設計者の設計選択に依存する、本明細書において参照される態様をもたらすように構成された、ハードウェア、ソフトウェア及び／又はファームウェアの実質的に任意の組み合わせであってもよい。
【０００８】
[0006]前述のものは概要であり、したがって、必然的に、詳細についての単純化、一般化及び省略を含む。当業者であれば、概要が単に実例のためのものであって、いかなるようにも限定的であるようには意図されないことを認識するであろう。
【０００９】
[0007]本出願に従う補完的なジェスチャーのジェスチャーパッケージのためのシステム、方法及びコンピューター読み取り可能な媒体は、添付の図面に関してさらに記載される： 
【図面の簡単な説明】
【００１０】
【図１Ａ】[0008]目標認識、分析及び追跡システムの例示的な実施例をゲームをするユーザーとともに示す。
【図１Ｂ】目標認識、分析及び追跡システムの例示的な実施例をゲームをするユーザーとともに示す。
【図２】[0009]目標認識、分析及び追跡システムにおいて使用され得る取り込み装置の例示的な実施例を示す。
【図３Ａ】[0010]目標認識、分析及び追跡システムにおいて１つ以上のジェスチャーを解釈するために使用され得るコンピューター環境の例示的な実施例を示す。
【図３Ｂ】[0011]目標認識、分析及び追跡システムにおいて１つ以上のジェスチャーを解釈するために使用され得るコンピューター環境の別の例示的な実施例を示す。
【図４Ａ】[0012]図２の目標認識、分析及び追跡システムから生成されたユーザーの骨格マッピングを示す。
【図４Ｂ】[0013]図２に示されるジェスチャー認識アーキテクチャーのさらなる詳細を示す。
【図５Ａ】[0014]より複雑なジェスチャーフィルターを作成するためにジェスチャーフィルターをどのように積み重ねることができるかを示す。
【図５Ｂ】より複雑なジェスチャーフィルターを作成するためにジェスチャーフィルターをどのように積み重ねることができるかを示す。
【図６Ａ】[0015]ユーザー５０２がフットボール・ビデオゲームにおける「フェアキャッチ（fair catch）」のための信号に対して行い得る例示的なジェスチャーを示す。
【図６Ｂ】ユーザー５０２がフットボール・ビデオゲームにおける「フェアキャッチ」のための信号に対して行い得る例示的なジェスチャーを示す。
【図６Ｃ】ユーザー５０２がフットボール・ビデオゲームにおける「フェアキャッチ」のための信号に対して行い得る例示的なジェスチャーを示す。
【図６Ｄ】ユーザー５０２がフットボール・ビデオゲームにおける「フェアキャッチ」のための信号に対して行い得る例示的なジェスチャーを示す。
【図６Ｅ】ユーザー５０２がフットボール・ビデオゲームにおける「フェアキャッチ」のための信号に対して行い得る例示的なジェスチャーを示す。
【図７Ａ】[0016]画像データの各フレームがユーザーの骨格マップを生成するために解析されたときの図６Ａ−Ｅの例示的な「フェアキャッチ」のジェスチャーを示す。
【図７Ｂ】画像データの各フレームがユーザーの骨格マップを生成するために解析されたときの図６Ａ−Ｅの例示的な「フェアキャッチ」のジェスチャーを示す。
【図７Ｃ】画像データの各フレームがユーザーの骨格マップを生成するために解析されたときの図６Ａ−Ｅの例示的な「フェアキャッチ」のジェスチャーを示す。
【図７Ｄ】画像データの各フレームがユーザーの骨格マップを生成するために解析されたときの図６Ａ−Ｅの例示的な「フェアキャッチ」のジェスチャーを示す。
【図７Ｅ】画像データの各フレームがユーザーの骨格マップを生成するために解析されたときの図６Ａ−Ｅの例示的な「フェアキャッチ」のジェスチャーを示す。
【図８】[0017]ジェスチャーライブラリーからの包括的なジェスチャーが特定のタスクのための補完的なジェスチャーのジャンル（genre）パッケージへとどのようにグループ化されるかを示す。
【図９】[0018]アプリケーションが１つのジェスチャーの１つのパラメーターに対する値を提供する場合に、ジェスチャーパッケージ中の補完的なジェスチャーを調整するための例示的な動作手順を示す。
【発明を実施するための形態】
【００１１】
[0019]本明細書において記載されるように、ユーザーは、１つ以上のジェスチャーを行うことによって、ゲーム機、コンピューターなどのコンピューター環境上で実行するアプリケーションを制御してもよい。１つの実施例によれば、ジェスチャーは、例えば、取り込み装置によって受け取られてもよい。例えば、取り込み装置は、シーンの奥行き画像（depth image）を得てもよい。１つの実施例において、取り込み装置は、シーンにおける１つ以上の目標又は物がユーザーなどの人間の目標（human target）に対応するかどうかを決定してもよい。シーンにおける目標又は物が人間の目標に対応するかどうかを決定するために、目標の各々は、一杯に満たされ、人体モデルのパターンと比較されてもよい。その後、人体モデルと一致する目標又は物の各々は、それに関連付けられる骨格モデルを生成するためにスキャンされてもよい。その後、コンピューター環境が、骨格モデルを追跡し、骨格モデルに関連付けられるアバターをレンダリングし、例えば、骨格モデルから認識されたユーザーのジェスチャーに基づいてコンピューター環境上で実行するアプリケーションにおいてどのコントロールを実行するかを決定し得るように、骨格モデルがコンピューター環境に提供されてもよい。そのアーキテクチャーがより完全に以下に記載されるジェスチャー認識エンジンは、特定のジェスチャーがユーザーによっていつなされたかを決定するために使用される。
【００１２】
[0020]図１Ａ及び１Ｂは、目標認識、分析及び追跡システム１０の構成の例示的な実施例を、ボクシングゲームをするユーザー１８とともに示す。例示的な実施例において、目標認識、分析及び追跡システム１０は、ユーザー１８などの人間の目標を認識し、分析し及び／又は追跡するために使用され得る。
【００１３】
[0021]図１Ａに示されるように、目標認識、分析及び追跡システム１０は、コンピューター環境１２を含んでもよい。コンピューター環境１２は、コンピューター、ゲームシステム又はゲーム機などであってもよい。例示的な実施例によれば、コンピューター環境１２がゲームアプリケーション、ゲーム以外のアプリケーションなどのアプリケーションを実行するために使用され得るように、コンピューター環境１２は、ハードウェアコンポーネント及び／又はソフトウェアコンポーネントを含んでもよい。
【００１４】
[0022]図１Ａに示されるように、目標認識、分析及び追跡システム１０は、さらに取り込み装置２０を含んでもよい。取り込み装置２０は、例えば、ユーザー１８などの１人以上のユーザーを視覚的に監視するのに使用され得るカメラであってもよく、その結果、以下により詳細に記載されるように、１人以上のユーザーによって行われるジェスチャーが、アプリケーション内で１つ以上の制御又は動作を行うために得られ、分析され、追跡されてもよい。
【００１５】
[0023]１つの実施例によれば、目標認識、分析及び追跡システム１０は、ユーザー１８などのユーザーにゲーム又はアプリケーションの映像及び／又は音声を提供し得るテレビ、モニター、ハイビジョンテレビ（ＨＤＴＶ）などの視聴覚装置１６に接続されてもよい。例えば、コンピューター環境１２は、ゲームアプリケーション、ゲームでないアプリケーションなどに関連した視聴覚信号を提供し得るグラフィックスカードなどのビデオアダプター及び／又はサウンドカードなどの音声アダプターを含んでもよい。視聴覚装置１６は、コンピューター環境１２から視聴覚信号を受け取り、次に、視聴覚信号に関連したゲーム又はアプリケーションの映像及び／又は音声をユーザー１８に対して出力してもよい。１つの実施例によれば、視聴覚装置１６は、例えば、Ｓ−ビデオケーブル、同軸ケーブル、ＨＤＭＩケーブル、ＤＶＩケーブル、ＶＧＡケーブルなどを介してコンピューター環境１２に接続されてもよい。
【００１６】
[0024]図１Ａ及び１Ｂに示されるように、目標認識、分析及び追跡システム１０は、ユーザー１８などの人間の目標を認識し、分析し及び／又は追跡するために使用され得る。例えば、ユーザー１８は、ユーザー１８の動作がコンピューター環境１２によって実行されているアプリケーションに影響を及ぼすために使用され得るコントロールとして解釈され得るように、取り込み装置２０を使用して追跡されてもよい。したがって、１つの実施例によれば、ユーザー１８は、アプリケーションを制御するために自身の体を動かしてもよい。
【００１７】
[0025]図１Ａ及び１Ｂに示されるように、例示的な実施例において、コンピューター環境１２上で実行するアプリケーションは、ユーザー１８が遊んでいるかもしれないボクシングゲームであってもよい。例えば、コンピューター環境１２は、ボクシングの対戦相手２２の視覚表示をユーザー１８へ提供するために視聴覚装置１６を使用してもよい。コンピューター環境１２はまた、ユーザー１８が自身の動作によって制御し得るプレーヤーアバター２４の視覚表示を提供するために、視聴覚装置１６を使用してもよい。例えば、図１Ｂに示されるように、プレーヤーアバター２４にゲーム空間においてパンチを繰り出させるために、ユーザー１８は物理空間中でパンチを繰り出してもよい。したがって、例示的な実施例によれば、目標認識、分析及び追跡システム１０のコンピューター環境１２及び取り込み装置２０は、パンチがゲーム空間のプレーヤーアバター２４についてのゲームの制御として解釈され得るように、物理空間中のユーザー１８のパンチを認識し分析するために使用され得る。
【００１８】
[0026]ユーザー１８による他の動作もまた、軽く叩き、擦り抜け、すり足で動き、ブロックし、ジャブで突き、又は様々な異なるパワーのパンチを繰り出すための制御などの、他の制御又はアクションとして解釈されてもよい。さらに、幾つかの動作は、プレーヤーのアバター２４の制御以外のアクションに対応し得る制御として解釈されてもよい。例えば、プレーヤーは、ゲームを終了し、中止し又はセーブし、レベルを選択し、ハイスコアを見て、友達と通信したりするための動作を使用してもよい。
【００１９】
[0027]例示的な実施例において、ユーザー１８などの人間の目標は物を有していてもよい。そのような実施例において、コンピューターゲームのユーザーは、プレーヤーと物の動作がゲームのパラメーターを調節及び／又は制御するために使用され得るように、物を保持していてもよい。例えば、ラケットを保持するプレーヤーの動作は、電子スポーツゲームにおけるスクリーン上のラケットの制御のために追跡され利用されてもよい。別の例示的な実施例において、物を保持するプレーヤーの動作は、電子戦闘ゲームにおけるスクリーン上の武器の制御のために追跡され利用されてもよい。
【００２０】
[0028]他の例示的な実施例によれば、目標認識、分析及び追跡システム１０は、さらに、ゲームの領域の外にあるオペレーティングシステム及び／又はアプリケーション制御として目標の動作を解釈するために使用されてもよい。例えば、オペレーティングシステム及び／又はアプリケーションの実質的に任意の制御可能な態様も、ユーザー１８などの目標の動作によって制御されてもよい。
【００２１】
[0029]図２は、目標認識、分析及び追跡システム１０で使用され得る取り込み装置２０の例示的な実施例を示す。例示的な実施例によれば、取り込み装置２０は、例えば、飛行時間、構造化された光、ステレオイメージなどを含む任意の適切な技術を介して、奥行き値を含んでもよい奥行き画像を含む奥行き情報を備えた動画を得るように構成されてもよい。１つの実施例によれば、取り込み装置２０は、計算された奥行き情報を、「Ｚ層」、又はそのライン・オブ・サイトに沿って奥行きカメラから延在するＺ軸に垂直であり得る層へと組織化してもよい。
【００２２】
[0030]図２に示されるように、取り込み装置２０は画像カメラコンポーネント２２を含んでもよい。例示的な実施例によれば、画像カメラコンポーネント２２はシーンの奥行き画像を捕捉することのできる奥行きカメラであってもよい。奥行き画像は捕らえられたシーンの二次元の（２−Ｄ）画素領域を含んでもよく、２−Ｄ画素領域の各画素は、カメラからの得られたシーンにおける物についての、例えば、センチメートル、ミリメートルなどの長さを表してもよい。
【００２３】
[0031]図２に示されるように、例示的な実施例によれば、画像カメラコンポーネント２２は、シーンの奥行き画像を得るために使用され得る、ＩＲ光コンポーネント２４、三次元（３−Ｄ）カメラ２６及びＲＧＢカメラ２８を含んでもよい。例えば、飛行時間分析において、取り込み装置２０のＩＲ光コンポーネント２４は、シーン上に赤外光を放射し、次に、例えば、３−Ｄカメラ２６及び／又はＲＧＢカメラ２８を使用して、シーンにおける１つ以上の目標及び物の表面からの後方散乱光を検出するためにセンサー（図示せず）を使用してもよい。いくつかの実施例において、出ていく光パルスと対応する入ってくる光パルスとの間の時間が測定され、取り込み装置２０からシーンにおける目標又は物の上の特定の位置までの物理的な距離を決定するために使用され得るように、パルス赤外光が使用されてもよい。さらに、他の例示的な実施例において、出ていく光波の位相は、位相シフトを決定するために、入ってくる光波の位相と比較されてもよい。その後、位相シフトは、取り込み装置から目標又は物の上の特定の位置までの物理的な距離を決定するために使用されてもよい。
【００２４】
[0032]別の例示的な実施例によれば、飛行時間の分析は、例えば、シャッターされた（shuttered）光パルス画像化を含む様々な技術によって、時間にわたって、反射された光ビームの強度を分析することにより、取り込み装置２０から目標又は物の上の特定の位置までの物理的な距離を間接的に決定するために使用され得る。
【００２５】
[0033]別の例示的な実施例において、取り込み装置２０は、奥行き情報を得るために構造化された光を使用してもよい。そのような分析において、パターン化された光（すなわち、グリッドパターン又はストライプパターンなどの既知のパターンとして表示される光）は、例えば、ＩＲ光コンポーネント２４を介して、シーン上に投影されてもよい。シーンにおける１つ以上の目標又は物の表面を打つと、パターンは応答して変形されるようになってもよい。パターンのそのような変形は、例えば、３−Ｄカメラ２６及び／又はＲＧＢカメラ２８によって捕らえられ、次に、取り込み装置から目標又は物の上の特定の位置までの物理的な距離を決定するために分析されてもよい。
【００２６】
[0034]別の実施例によれば、取り込み装置２０は、奥行き情報を生成するために解像することができる視覚的なステレオデータを得るために、異なる角度からシーンを見ることができる、２つ以上の物理的に分離されたカメラを含んでもよい。
【００２７】
[0035]取り込み装置２０はさらにマイクロホン３０を含んでもよい。マイクロホン３０は、音声を受け取って電気信号へ変換し得るトランスデューサー又はセンサーを含んでもよい。１つの実施例によれば、マイクロホン３０は、目標認識、分析及び追跡システム１０における取り込み装置２０とコンピューター環境１２との間のフィードバックを低減するために使用され得る。さらに、マイクロホン３０は、コンピューター環境１２によって実行されてもよいゲームアプリケーション、ゲームでないアプリケーションなどのアプリケーションを制御するために、ユーザーによって提供され得る音声信号を受け取るために使用されてもよい。
【００２８】
[0036]例示的な実施例において、取り込み装置２０は、画像カメラコンポーネント２２と動作可能に通信し得るプロセッサー３２をさらに含んでもよい。プロセッサー３２は、奥行き画像を受け取り、適切な目標が奥行き画像に含まれ得るかどうかを決定し、適切な目標を当該目標の骨格表現又はモデルに変換するための命令、又は任意の他の適切な命令を含んでもよい命令を実行し得る、標準化されたプロセッサー、専用のプロセッサー、マイクロプロセッサーなどを含んでもよい。
【００２９】
[0037]取り込み装置２０は、さらに、プロセッサー３２によって実行され得る命令、３−ＤカメラもしくはＲＧＢカメラによって捕らえられる画像もしくは画像のフレーム、又は任意の他の適切な情報などを格納し得るメモリーコンポーネント３４を含む。例示的な実施例によれば、メモリーコンポーネント３４は、ランダム・アクセス・メモリー（ＲＡＭ）、読み取り専用メモリー（ＲＯＭ）、キャッシュ、フラッシュメモリー、ハードディスク又は任意の他の適切な記憶コンポーネントを含んでもよい。図２に示されるように、１つの実施例において、メモリーコンポーネント３４は、画像取り込みコンポーネント２２及びプロセッサー３２と通信する別個のコンポーネントであってもよい。別の実施例によれば、メモリーコンポーネント３４は、プロセッサー３２及び／又は画像取り込みコンポーネント２２へ統合されてもよい。
【００３０】
[0038]図２に示されるように、取り込み装置２０は通信リンク３６を介してコンピューター環境１２と通信してもよい。通信リンク３６は、例えば、ＵＳＢ接続、ファイヤーワイヤー（商標）（Ｆｉｒｅｗｉｒｅ）接続、イーサネット（商標）ケーブル接続などを含む有線接続、及び／又は無線８０２．１１ｂ、ｇ、ａ又はｎ接続などの無線接続であってもよい。１つの実施例によれば、コンピューター環境１２は、例えば、通信リンク３６を介していつシーンを捕らえるかを決定するために使用され得る取り込み装置２０にクロックを提供してもよい。
【００３１】
[0039]さらに、取り込み装置２０は、例えば３−Ｄカメラ２６及び／又はＲＧＢカメラ２８によって捕らえられる奥行き情報及び画像イメージ、並びに、取り込み装置２０によって生成され得る骨格モデルを、通信リンク３６を介してコンピューター環境１２へ提供してもよい。その後、コンピューター環境１２は、例えば、ユーザーのジェスチャーを認識し、これに応答してゲーム又はワードプロセッサーなどのアプリケーションを制御するために、骨格モデル、奥行き情報及び取得された画像を使用してもよい。例えば、図２に示されるように、コンピューター環境１２はジェスチャー認識エンジン１９０を含んでもよい。ジェスチャー認識エンジン１９０は一群のジェスチャーフィルターを含んでもよく、その各々は、（ユーザーが動くときに）骨格モデルによって実行され得るジェスチャーに関する情報を含んでもよい。ユーザーが（骨格モデルによって表されるように）いつ１つ以上のジェスチャーを行ったかを識別するために、カメラ２６、２８及び装置２０によって捕らえられた骨格モデルの形式のデータ並びにそれに関連付けられる動作は、ジェスチャー認識エンジン１９０におけるジェスチャーフィルターと比較されてもよい。それらのジェスチャーは、アプリケーションの様々な制御と関連付けられてもよい。したがって、コンピューター環境１２は、骨格モデルの動作を解釈し、かつ動作に基づいてアプリケーションを制御するために、ジェスチャー認識エンジン１９０を使用してもよい。
【００３２】
[0040]図３Ａは、目標認識、分析及び追跡システムにおいて１つ以上のジェスチャーを解釈するために使用され得るコンピューター環境の例示的な実施例を示す。図１Ａ−２に関して上に記載されたコンピューター環境１２などのコンピューター環境は、ゲーム機などのマルチメディアコンソール１００であってもよい。図３Ａに示されるように、マルチメディアコンソール１００は、１次キャッシュ１０２、２次キャッシュ１０４及びフラッシュＲＯＭ（読み取り専用メモリー）１０６を備える中央処理装置（ＣＰＵ）１０１を有する。１次キャッシュ１０２及び２次キャッシュ１０４は、一時的にデータを格納し、従ってメモリーアクセスサイクルの数を減らし、それによって、処理速度とスループットを改善する。ＣＰＵ１０１には１つより多くのコアが提供され、したがって、追加の１次及び２次キャッシュ１０２及び１０４を備える。フラッシュＲＯＭ１０６は、マルチメディアコンソール１００が電源を入れられている場合、ブート処理の初期段階中にロードされる実行可能コードを格納してもよい。
【００３３】
[0041]グラフィック処理装置（ＧＰＵ）１０８及びビデオエンコーダー／ビデオコーデック（コーダー／デコーダー）１１４は、高速及び高解像度のグラフィック処理のためのビデオ処理パイプラインを形成する。データは、バスを介してグラフィック処理装置１０８からビデオエンコーダー／ビデオコーデック１１４まで運ばれる。ビデオ処理パイプラインは、テレビ又は他のディスプレイへの送信のために、Ａ／Ｖ（音声／ビデオ）ポート１４０へデータを出力する。ＲＡＭ（ランダム・アクセス・メモリー）などであるがこれに限定されない様々な種類のメモリー１１２へのプロセッサーのアクセスを容易にするために、メモリーコントローラー１１０がＧＰＵ１０８に接続される。
【００３４】
[0042]マルチメディアコンソール１００は、好ましくはモジュール１１８上に実装される、Ｉ／Ｏコントローラー１２０、システム管理コントローラー１２２、音声処理部１２３、ネットワークインターフェースコントローラー１２４、第１のＵＳＢホストコントローラー１２６、第２のＵＳＢコントローラー１２８及び前面パネルＩ／Ｏサブアセンブリー１３０を含む。ＵＳＢコントローラー１２６及び１２８は、周辺機器コントローラー１４２（１）―１４２（２）、無線アダプター１４８及び外部記憶装置１４６（例えば、フラッシュメモリー、外部ＣＤ／ＤＶＤＲＯＭドライブ、取り外し可能な媒体など）のホストとして働く。ネットワークインターフェース１２４及び／又は無線アダプター１４８は、ネットワーク（例えば、インターネット、ホームネットワークなど）へのアクセスを提供し、イーサネット（商標）カード、モデム、ブルートゥース（商標）モジュール、ケーブルモデムなどを含む、種々様々の有線又は無線アダプターコンポーネントのうち任意のものであってもよい。
【００３５】
[0043]システムメモリー１４３はブート処理中にロードされるアプリケーションデータを格納するために提供される。メディアドライブ１４４が提供され、ＤＶＤ／ＣＤドライブ、ハードドライブ又は他の取り外し可能な媒体ドライブなどを含んでもよい。メディアドライブ１４４はマルチメディアコンソール１００の内部であってもよいし又は外部にあってもよい。アプリケーションデータは、マルチメディアコンソール１００による実行、再生などのために、メディアドライブ１４４を介してアクセスされてもよい。メディアドライブ１４４は、シリアルＡＴＡバス又は他の高速接続（例えば、ＩＥＥＥ１３９４）などのバスを介してＩ／Ｏコントローラー１２０に接続される。
【００３６】
[0044]システム管理コントローラー１２２は、マルチメディアコンソール１００の能力の保証に関連する様々なサービス機能を提供する。音声処理部１２３及び音声コーデック１３２は、ハイファイ及びステレオ処理を備えた対応する音声処理パイプラインを形成する。音声データは、通信リンクを介して音声処理部１２３と音声コーデック１３２との間で運ばれる。音声能力を有する外部音声プレーヤー又は装置による再生のために、音声処理パイプラインはＡ／Ｖポート１４０へデータを出力する。
【００３７】
[0045]前面パネルＩ／Ｏサブアセンブリー１３０は、マルチメディアコンソール１００の外側表面上に露出した、電源ボタン１５０及び取り出しボタン１５２のほか、任意のＬＥＤ（発光ダイオード）又は他のインジケーターの機能をサポートする。システム電源モジュール１３６はマルチメディアコンソール１００のコンポーネントに電力を提供する。ファン１３８は、マルチメディアコンソール１００内の回路を冷やす。
【００３８】
[0046]ＣＰＵ１０１、ＧＰＵ１０８、メモリーコントローラー１１０及びマルチメディアコンソール１００内の様々な他のコンポーネントは、シリアル及びパラレルバス、メモリーバス、周辺バス、及び様々なバスアーキテクチャーのうちの任意のものを使用するプロセッサー又はローカルバスを含む、つ以上のバスを介して相互に接続される。例として、そのようなアーキテクチャーは、周辺コンポーネント相互接続（ＰＣＩ）バス、ＰＣＩエクスプレスバスなどをを含んでもよい。
【００３９】
[0047]マルチメディアコンソール１００が電源を入れられる場合、アプリケーションデータはシステムメモリー１４３からメモリー１１２及び／又はキャッシュ１０２、１０４にロードされ、ＣＰＵ１０１上で実行されてもよい。アプリケーションは、マルチメディアコンソール１００上で利用可能な異なるメディアタイプにナビゲートする場合、一貫したユーザー経験を提供するグラフィカルユーザーインターフェースを提示してもよい。動作において、マルチメディアコンソール１００に追加の機能を提供するために、メディアドライブ１４４内に含まれるアプリケーション及び／又は他の媒体は、メディアドライブ１４４から始められてもよいし再生されてもよい。
【００４０】
[0048]マルチメディアコンソール１００は、テレビ又は他のディスプレイに単にシステムを接続することにより、スタンドアローンのシステムとして動作されてもよい。このスタンドアローンモードでは、マルチメディアコンソール１００は、１人以上のユーザーがシステムと対話したり、映画を見たり、又は音楽を聞いたりすることを可能にする。しかしながら、ネットワークインターフェース１２４又は無線アダプター１４８を介して利用可能になる広帯域の接続の統合により、マルチメディアコンソール１００は、さらに、より大きなネットワークコミュニティにおける参加者として動作される。
【００４１】
[0049]マルチメディアコンソール１００が電源を入れらる場合、一定のハードウェア資源がマルチメディアコンソール・オペレーティングシステムによるシステムの使用のために用意される。これらの資源は、メモリー（例えば、１６ＭＢ）の予約、ＣＰＵ及びＧＰＵのサイクル（例えば、５％）、ネットワーキング帯域幅（例えば、８ｋｂｓ）などを含んでもよい。これらの資源がシステムブート時間において予約されるので、予約される資源はアプリケーションの視界からは存在しない。
【００４２】
[0050]特に、メモリーの予約は、好ましくは、開始カーネル（launch kernel）、並行システムアプリケーション及びドライバーを含むのに十分に大きい。ＣＰＵの予約は、好ましくは、予約されるＣＰＵの使用がシステムアプリケーションによって使用されなければ、待機スレッドが任意の未使用のサイクルを消費するように、一定である。
【００４３】
[0051]ＧＰＵの予約に関して、システムアプリケーション（例えば、ポップアップ）によって生成された軽量のメッセージは、オーバーレイ（overlay）へとポップアップをレンダリングするためのコードを確保するためにＧＰＵの割り込みを使用することにより表示される。オーバーレイに必要なメモリーの量はオーバーレイ領域のサイズに依存し、オーバーレイは、好ましくは、スクリーン解像度に対応する。十分なユーザーインターフェースが並行システムアプリケーションによって使用される場合、アプリケーション解像度と無関係に解像度を使用することが望ましい。周波数を変化させてテレビの再同期化（resynch）を引き起こす必要性が除去されるように、スケーラーが、この解像度を設定するために使用され得る。
【００４４】
[0052]マルチメディアコンソール１００がブートし、システムリソースが予約された後、並行システムアプリケーションはシステム機能を提供するために実行する。システム機能は、上に記載された予約されたシステムリソース内で実行する１組のシステムアプリケーションにおいてカプセル化される。オペレーティングシステムカーネルは、ゲームアプリケーションスレッドに対してシステムアプリケーションスレッドであるスレッドを識別する。システムアプリケーションは、好ましくは、アプリケーションに対して一貫したシステム資源表示（system resource view）を提供するために、所定の時間及び間隔でＣＰＵ１０１上で動作するように予定される。このスケジューリングは、コンソール上で動作するゲームアプリケーションについてのキャッシュの混乱を最小化することである。
【００４５】
[0053]並行システムアプリケーションが音声を要求する場合、音声処理は時間感度のためにゲームアプリケーションに対して非同期に予定される。システムアプリケーションがアクティブである場合、マルチメディアコンソールアプリケーション・マネージャー（下記に述べられる）は、ゲームアプリケーションの音声レベルを制御（例えば、ミュート、減衰）する。
【００４６】
[0054]入力装置（例えば、コントローラー１４２（１）及び１４２（２））は、ゲームアプリケーション及びシステムアプリケーションによって共有される。入力装置は予約される資源ではないが、各々が装置の焦点を有するように、システムアプリケーションとゲームアプリケーションとの間で切り替えられるべきである。アプリケーションマネージャーは、好ましくは、ゲームアプリケーショの知識なしに入力ストリームのスイッチングを制御し、ドライバーは、フォーカススイッチに関する状態情報を保持する。カメラ２６、２８及び取り込み装置２０は、コンソール１００のための追加の入力装置を定義してもよい。
【００４７】
[0055]図３Ｂは、目標認識、分析及び追跡システムにおいて１つ以上のジェスチャーを解釈するために使用される、図１Ａ−２に示されるコンピューター環境１２であってもよいコンピューター環境２２０の別の例示的な実施例を示す。コンピューターシステム環境２２０は、適切なコンピューター環境の１つの例にすぎず、本明細書に開示された主題の使用又は機能の範囲に関していかなる限定を示唆するようにも意図されない。コンピューター環境２２０は、例示的な動作環境２２０に示されるコンポーネントの任意の１つ又は組み合わせに関連するいかなる依存性も要件も有するように解釈されるべきではない。いくつかの実施例において、様々な描かれた計算要素は、本開示の特有の態様を説明するように構成された回路を含んでもよい。例えば、本開示の中で使用される回路という用語は、ファームウェア又はスイッチによって機能を実行するように構成された専用のハードウェアコンポーネントを含んでもよい。他の例示的な実施例において、回路という用語は、機能を実行するように動作可能なロジックを具体化するソフトウェア命令によって構成される、汎用演算処理装置、メモリーなどを含んでもよい。回路が装置とソフトウェアの組み合わせを含む例示的な実施例において、開発者は、ロジックを具体化するソースコードを書いてもよく、ソースコードは、汎用演算処理装置によって処理することができる機械読み取り可能なコードへとコンパイルすることができる。当業者は、ハードウェア、ソフトウェア又はハードウェア／ソフトウェアの組み合わせの間に違いがほとんどない点へと最先端技術が発展したことを認識することができるので、特定の機能を有効にするためのハードウェア対ソフトウェアの選択は、開発者に委ねられた設計選択である。より具体的には、当業者は、ソフトウェアプロセスを等価なハードウェア構造に変換することができ、ハードウェア構造はそれ自体、等価なソフトウェアプロセスに変換することができることを認識することができる。したがって、ハードウェア実装対ソフトウェア実装の選択は設計選択のうちの１つであり、開発者に委ねられている。
【００４８】
[0056]図３Ｂにおいて、コンピューター環境２２０はコンピューター２４１を含み、それは通常様々なコンピューター読み取り可能な媒体を含む。コンピューター読み取り可能な媒体は、コンピューター２４１によってアクセスすることができ、揮発性及び不揮発性の媒体の両方、取り外し可能及び取り外し不能な媒体の両方を含む、任意の利用可能な媒体であってもよい。システムメモリー２２２は、コンピューター記憶媒体を、読み取り専用メモリー（ＲＯＭ）２２３及びランダムアクセスメモリー（ＲＡＭ）２６０などの、揮発性及び／又は不揮発性メモリーの形式で含む。起動中などにコンピューター２４１内の要素間で情報を転送するのを支援する基本的なルーチンを含む基本入出力システム２２４（ＢＩＯＳ）は、通常、ＲＯＭ２２３に格納される。ＲＡＭ２６０は、通常、直ちにアクセス可能な及び／又は演算処理装置２５９によって現在動作されている、データ及び／又はプログラムモジュールを含む。限定ではなく例として、図３Ｂは、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７及びプログラムデータ２２８を示す。
【００４９】
[0057]コンピューター２４１はまた、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピューター記憶媒体を含んでもよい。ほんの一例として、図３Ｂは、取り外し不能な不揮発性の磁気媒体から読み出し、書き込む、ハードディスクドライブ２３８、取り外し可能な不揮発性の磁気ディスク２５４から読み出し、書き込む、磁気ディスクドライブ２３９、及び、ＣＤＲＯＭ又は他の光学媒体などの取り外し可能な不揮発性の光ディスク２５３から読み出し、書き込む、光ディスクドライブ２４０を示す。例示的な動作環境において使用することができる他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピューター記憶媒体は、磁気カセットテープ、フラッシュメモリーカード、デジタルバーサタイルディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むがこれらに限定されない。ハードディスクドライブ２３８は、通常、インターフェース２３４などの取り外し不能なメモリーインターフェースを介してシステムバス２２１に接続され、磁気ディスクドライブ２３９及び光ディスクドライブ２４０は、通常、インターフェース２３５などの取り外し可能なメモリーインターフェースによって、システムバス２２１に接続される。
【００５０】
[0058]上で述べられ図３Ｂに示されたドライブ及びそれらの関連するコンピューター記憶媒体は、コンピューター２４１のための、コンピューター読み取り可能な命令、データ構造、プログラムモジュール及び他のデータの記憶を提供する。図３Ｂにおいて、例えば、ハードディスクドライブ２３８は、オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６及びプログラムデータ２５５を格納するものとして示される。これらのコンポーネントが、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７及びプログラムデータ２２８と同じであり得るし又は異なり得ることに注目されたい。オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６及びプログラムデータ２５５は、少なくとも、それらが異なるコピーであることを示すために、ここでは異なる数を与えられる。ユーザーは、キーボード２５１並びに一般にマウス、トラックボール又はタッチパッドと呼ばれるポインティングデバイス２５２などの入力装置を介してコンピューター２４１へコマンド及び情報を入力してもよい。他の入力装置（図示せず）は、マイクロホン、ジョイスティック、ゲームパッド、衛星放送アンテナ、スキャナーなどを含んでもよい。これら及び他の入力装置は、システムバスに結合されるユーザー入力インターフェース２３６を介して演算処理装置２５９にしばしば接続されるが、パラレルポート、ゲームポート又はユニバーサル・シリアル・バス（ＵＳＢ）などの他のインターフェース及びバス構造によって接続されてもよい。カメラ２６、２８及び取り込み装置２０は、コンソール１００用の追加の入力装置を定義してもよい。モニター２４２又は他の種類のディスプレイ装置もまた、ビデオインターフェース２３２などのインターフェースを介してシステムバス２２１に接続される。モニターに加えて、コンピューターはまた、出力周辺インターフェース２３３を介して接続され得る、スピーカー２４４及びプリンター２４３などの他の周辺出力装置を含んでもよい。
【００５１】
[0059]コンピューター２４１は、リモートコンピューター２４６などの１つ以上のリモートコンピューターへの論理接続を使用して、ネットワーク化された環境において動作してもよい。リモートコンピューター２４６は、パーソナルコンピューター、サーバー、ルーター、ネットワークＰＣ、ピアデバイス又は他の共通ネットワークノードであってもよく、通常、コンピューター２４１に関連して上に記載した要素の多く又はすべてを含むが、メモリー記憶装置２４７のみが図３Ｂに示された。図３Ｂに描かれた論理接続はローカルエリアネットワーク（ＬＡＮ）２４５及び広域ネットワーク（ＷＡＮ）２４９を含むが、他のネットワークを含んでもよい。そのようなネットワーキング環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット及びインターネットにおいて普通である。
【００５２】
[0060]ＬＡＮネットワーキング環境で使用される場合、コンピューター２４１はネットワークインターフェース又はアダプター２３７を介してＬＡＮ２４５に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピューター２４１は、通常、モデム２５０、又はインターネットなどのＷＡＮ２４９を介して通信を確立するための他の手段を含む。モデム２５０は、内部にあっても外部にあってもよく、ユーザー入力インターフェース２３６又は他の適切な機構を介してシステムバス２２１に接続されてもよい。ネットワーク化された環境では、コンピューター２４１又はその一部に関連して描かれるプログラムモジュールは、遠隔メモリー記憶装置に格納されてもよい。限定ではなく例として、図３Ｂは、リモートアプリケーションプログラム２４８を、メモリー装置２４７上に存在するものとして示す。示されたネットワーク接続が例示的なものであり、コンピューター間で通信リンクを確立する他の手段が使用され得ることが認識されるであろう。
【００５３】
[0061]図４Ａは、取り込み装置２０から生成され得るユーザーの例示的な骨格マッピングを描く。この実施例において、様々な関節（joints）及び骨格が識別される：各手３０２、各前腕３０４、各肘３０６、各二頭筋３０８、各肩３１０、各腰３１２、各もも３１４、各膝３１６、各前足３１８、各足３２０、頭３２２、トルソー（胴）３２４、背骨の最上部３２６及び最下部３２８、並びにウエスト３３０。より多くの点が追跡される場合、指もしくはつま先の骨及び関節などの追加の特徴が識別されてもよく、又は、鼻もしくは目などの顔の個々の特徴が識別されてもよい。
【００５４】
[0062]自分の体を動かすことによって、ユーザーはジェスチャーを作成してもよい。ジェスチャーは、画像データとして捕らえられ、意図について解析されてもよい、ユーザーによる動作又は姿勢を含む。ジェスチャーは、ボールを投げるまねなどの動作を含む、動的なものであってもよい。ジェスチャーは、自分の胴３２４の前で交差した前腕３０４を保持するなど、静的な姿勢であってもよい。ジェスチャーはまた、模擬の剣を振ることによるなどして、支柱（props）を組込んでもよい。ジェスチャーは、手３０２を一緒に叩くことなど、１つより多くの体の部分、又は自分の唇をすぼめるなど、さらに微妙な動作を含んでもよい。
【００５５】
[0063]ジェスチャーは一般的なコンピューティング・コンテキストにおいて入力のために使用され得る。例えば、手３０２又は他の体の部分の様々な動作は、階層的リストにおいて上又は下へナビゲートし、ファイルを開き、ファイルを閉じ、ファイルを保存するなどの、共通のシステムの広範なタスクに対応してもよい。ジェスチャーはまた、ゲームに依存して、ビデオゲームに特有のコンテキストにおいて使用され得る。例えば、ドライビングゲームで、手３０２及び足３２０の様々な動作は、ある方向に車両を操縦し、ギヤをシフトし、加速し、及びブレーキをかけることに対応してもよい。
【００５６】
[0064]ユーザーは、適当な位置で自分を歩かせたり走らせたりすることにより、ウォーキング又はランニングに対応するジェスチャーを生成してもよい。ユーザーは、移動することなくウォーキングを模倣するために、各脚３１２−３２０を交互に上げ下げしてもよい。システムは各腰３１２及び各もも３１４の分析によりこのジェスチャーを解析してもよい。１つの腰−もも角度（垂直な線に対して測定され、立っている脚は０°の腰−もも角度を有し、前方に水平に伸ばされた脚は９０°の腰−もも角度を有する）が、他のももに対してあるしきい値を越える場合、歩み（step）が認識されてもよい。歩行又は走りは、脚を交互にすることによる幾つかの数の連続的な歩みの後に認識されてもよい。最も最近の２つのステップの間の時間が期間として考えられてもよい。そのしきい値角度が満たされない幾つかの数の期間の後、システムは、歩行又は走りのジェスチャーが終わったと決定してもよい。
【００５７】
[0065]「歩行又は走り」のジェスチャーを考えると、アプリケーションは、このジェスチャーに関連付けられるアプリケーションが決定したパラメーターの値を設定してもよい。これらのパラメーターは、上記のしきい値角度、歩行又は走りのジェスチャーを開始するのに要する歩みの数、ジェスチャーを終了するステップが生じない多くの期間、及びジェスチャーが歩行かどうかを決定するしきい値期間を含んでもよい。ユーザーが自分の脚を素早く動かすとき、速い期間は走りに対応してもよく、より遅い期間は歩行に対応してもよい。
【００５８】
[0066] ジェスチャーは、最初に、アプリケーションがそれ自身のパラメーターによって無効にし得る１組のデフォルトパラメーターに関連付けられてもよい。このシナリオでは、アプリケーションは、パラメーターを提供することは強いられず、その代わりに、ジェスチャーがアプリケーションで定義されるパラメーターがない状態で認識されることを可能にする１組のデフォルトパラメーターを使用してもよい。
【００５９】
[0067]ジェスチャーに関連付けられてもよい様々な出力が存在する。ジェスチャーが生じているかどうかに関して「はい又はいいえ」の基準があってもよい。また、ユーザーの追跡される動作がジェスチャーに対応する可能性に相当する、信頼水準がさらにあってもよい。これは、包括的な、０と１との間の浮動小数点数に及ぶ均等な尺度（linear scale）であってもよい。このジェスチャー情報を受け取るアプリケーションが入力として誤検出（誤判定、false-positives）を受け入れることができない場合、それは、少なくとも０．９５などの高い信頼水準を有する認識されたジェスチャーのみを使用してもよい。アプリケーションがジェスチャーのすべてのインスタンス（instance）を認識しなければならない場合、誤検出を犠牲にしてでも、０．２より大きいにすぎないものなどの、はるかに低い信頼水準を少なくとも有するジェスチャーを使用してもよい。ジェスチャーは、最も最近の２つのステップ（歩み、steps）間の時間についての出力を有してもよく、第一歩のみが登録された場合、（任意の２つのステップ間の時間が正でなければならないので）これは、−１などの予約された値に設定されてもよい。ジェスチャーはまた、最も最近のステップの間に到達した最も高いもも角度についての出力を有してもよい。
【００６０】
[0068]別の例示的なジェスチャーは「かかと上げジャンプ」である。この場合、ユーザーは、地面から自分のかかとを上げるがつま先はつけたままにすることにより、ジェスチャーを作成してもよい。代替的に、ユーザーは、自分の足３２０が地面から完全に離れる空気中へとジャンプしてもよい。システムは、まっすぐに立っていることと等しい配置の位置にあるかどうかを見るために、肩３１０、腰３１２及び膝３１６の角度の関係を分析することにより、このジェスチャーについての骨格を解析してもよい。その後、これらの点及び背骨上部の点３２６の及び背骨下部の点３２８は、任意の上向きの加速について監視されてもよい。加速の十分な組み合わせによりジャンプのジェスチャーが引き起こされてもよい。
【００６１】
[0069]この「かかと上げジャンプ」のジェスチャーを考えると、アプリケーションはこのジェスチャーに関連したアプリケーションで決定されるパラメーターについて値を設定してもよい。パラメーターは上記の加速しきい値を含んでもよく、それは、ユーザーの肩３１０、腰３１２及び膝３１６のある組み合わせがジェスチャーを引き起こすためにどれくらい速く上方へ移動しなければならないかのほか、ジャンプがいまだ引き起こされ得る、肩３１０、腰３１２及び膝３１６の間の配置の最大角度を決定する。
【００６２】
[0070]出力は、信頼水準のほか、ジャンプの時のユーザーの体の角度を含んでもよい。
【００６３】
[0071]ジェスチャーを受け取るアプリケーションの詳細に基づくジェスチャーの設定パラメーターは、ジェスチャーを正確に識別する際に重要である。ジェスチャー及びユーザーの意図を適切に識別することは、好意的なユーザー経験を生み出す際に大きな助けとなる。ジェスチャー認識システムの感度が良すぎて、手３０２がほんの少し前に運いただけで投げる動作として解釈される場合、ユーザーは、ジェスチャーをするための意図がないときにジェスチャーが認識されるので苛立ち、したがって、システムに対するコントロールを欠く。ジェスチャー認識システムが十分な感度を持たない場合、システムは、投げるジェスチャーをするためのユーザーによる意識的な試みを認識しないかもしれず、同様にユーザーを苛立たせる。感度スペクトルの両端において、ユーザーは、自分がシステムに適切に入力を提供することができないので苛立つことになる。
【００６４】
[0072]ジェスチャーに対する別のパラメーターは動いた距離であってもよい。ユーザーのジェスチャーが仮想環境中のアバターのアクションを制御する場合、そのアバターはボールからの腕の長さ（arm’s length from a ball）であってもよい。ユーザーがボールとインタラクトしてそれをつかみたい場合、これは、ユーザーが、つかむジェスチャーをしている間に自分の腕３０２−３１０をいっぱいに伸ばすことを要求してもよい。この状況において、ユーザーが部分的に自分の腕３０２−３１０を伸ばすにすぎない場合、同様のつかむジェスチャーは、ボールとのインタラクトという結果を達成できない。
【００６５】
[0073]ジェスチャー又はその一部は、それが生じなければならない空間体積（volume of space）をパラメーターとして有してもよい。の空間体積は、通常、体に関して表現することができ、ジェスチャーは体の動きを含む。例えば、右利きのユーザーについてのフットボールを投げるジェスチャーは、右肩３１０ａよりも低くなく、頭３２２について投げる腕３０２ａ−３１０ａと同じ側の、空間体積中でのみ認識され得る。体積のすべての境界はこの投げるジェスチャーなどとともに定義する必要はなく、体からの離れた外側の境界が未定義にされ、体積は無制限に広がり、又は監視されているシーンの端まで延在する。
【００６６】
[0074]図４Ｂは、図２のジェスチャー認識エンジン１９０の１つの例示的な実施例のさらなる詳細を提供する。示されるように、ジェスチャー認識エンジン１９０は、１つ以上のジェスチャーを決定するために少なくとも１つのフィルター４１８を含んでもよい。フィルター４１８は、ジェスチャー４２６（以下、「ジェスチャー」と呼ぶ）を定義する情報を含み、そのジェスチャーについてのパラメーター４２８又はメタデータをさらに含んでもよい。例えば、体の後部の背後から体の前を過ぎる、手のうちの１つを動きを含む、投げる動作は、その動作が奥行きカメラによって捕らえられるとき、体の後部の背後から体の前を過ぎる、ユーザーの手のうちの１つの動きを表す情報を含むジェスチャー４２６として実施されてもよい。その後、パラメーター４２８は、そのジェスチャー４２６について設定されてもよい。ジェスチャー４２６が投げる動作である場合、パラメーター４２８は、手が達しなければならないしきい値速度、手が移動しなければならない距離（絶対的なもの、又は全体としてユーザーのサイズに対して相対的なもののいずれか）、及びジェスチャーが生じた認識エンジンによる信頼性評価（confidence rating）であってもよい。ジェスチャー４２６についてのこれらのパラメーター４２８は、アプリケーション間で、単一のアプリケーションのコンテキスト間で、又は時間にわたる１つのアプリケーションの１つのコンテキスト内で、変化してもよい。
【００６７】
[0075]フィルターはモジュールであってもよいし交換可能であってもよい。実施例において、フィルターは、各々が種類を有する多くの入力、及び各々が種類を有する多くの出力を有する。この状況において、第１のフィルターは、認識エンジンアーキテクチャーのいかなる他の側面も変えることなく、第１のフィルターと同じ数及び同じ種類の入力及び出力を有する第２のフィルターと取り替えられてもよい。例えば、入力として骨格のデータをとり、フィルターに関連したジェスチャーが生じているという信頼性及びステアリングの角度を出力する、駆動のための第１のフィルターが存在してもよい。おそらくは第２の駆動フィルターがより効率的であってより少数の処理リソースを必要とするので−この第１の駆動フィルターを第２の駆動フィルターで置き換えたいと望む場合、第２のフィルターがそれらの同じ入力及び出力−骨格のデータ型についての１つの入力、並びに信頼性の種類及び角度の種類についての２つの出力、を有している限り、第１のフィルターを第２のフィルターに単に取り替えることにより、そうしてもよい。
【００６８】
[0076]フィルターはパラメーターを有している必要はない。例えば、ユーザーの身長を返す「ユーザー身長（user’s height）」フィルターは、調整され得る任意のパラメーターを考慮に入れなくてもよい。代わりの「ユーザー身長」フィルターは、ユーザーの身長を決定する際に、ユーザーの履物、ヘアスタイル、帽子及び姿勢を説明するべきかどうかなど、調整可能なパラメーターを有してもよい。
【００６９】
[0077]フィルターへの入力は、ユーザーの関節の位置に関する関節のデータなどのもの、関節において交わる骨によって形成される角度のようなもの、シーンからのＲＧＢ色データ、及びユーザーの側面の変化率を含んでもよい。フィルターからの出力は、所与のジェスチャーがなされているという信頼性、ジェスチャーの動作がなされる速度、及びジェスチャーの動作がなされる時間などのものを含んでもよい。
【００７０】
[0078]コンテキストは文化的背景（cultural context）であってもよく、環境状況（environmental context）であってもよい。文化的背景は、システムを使用するユーザーの文化を指す。異なる文化は、著しく異なる意味を与えるために類似したジェスチャーを使用することがある。例えば、別のユーザーに「見たり」「自分の目を使ったり」するように言いたいアメリカ人のユーザーは、自分の目の遠位端（distal end）に近い自分の頭の上に自分の人差し指を置くかもしれない。しかし、イタリア人のユーザーにとっては、このジェスチャーは、マフィアへの言及として解釈され得る。
【００７１】
[0079]同様に、単一のアプリケーションの異なる環境間に異なるコンテキストが存在してもよい。自動車を操作することを含む一人称のシューティングゲームを例に挙げる。ユーザーが歩いている間に、指を地面へ向けて拳を作り、拳を前に体から離れるように伸ばすことは、パンチするジェスチャーを表してもよい。ユーザーがドライブの状況にある間、その同じ動作は、「ギアシフト」のジェスチャーを表してもよい。１つ以上のメニュー環境がさらに存在してもよく、ユーザーは、自分のゲームをセーブし、自分のキャラクターの装備を選択し、又は直接的なゲームプレイを含まない同様のアクションを実行することができる。その環境において、この同じジェスチャーは、何かを選択するとか別の画面に進むとかするためなどの、第３の意味を有していてもよい。
【００７２】
[0080]ジェスチャー認識エンジン１９０は、ジェスチャーフィルター４１８に機能を提供する基礎（base）認識エンジン４１６を有してもよい。実施例において、認識エンジン４１６が実施する機能は、認識されたジェスチャー及び他の入力を追跡する時間にわたる入力（input-over-time）アーカイブ、隠れマルコフモデルの実施（モデル化されたシステムは、現在の状態が将来の状態を決定するのに必要な任意の過去の状態情報をカプセル化し、したがって他の過去の状態情報はこの目的のために保持されてはならない、未知のパラメーターを備えたマルコフ過程であると仮定され、隠されたパラメーターは観察されたデータから決定される）のほか、ジェスチャー認識の特定の例を解決するのに必要な他の機能を含む。
【００７３】
[0081]フィルター４１８は、基礎認識エンジン４１６の上にロードされて実施され、エンジン４１６によってすべてのフィルター４１８に提供されるサービスを利用することができる。実施例において、基礎認識エンジン４１６は、任意のフィルター４１８の要件を満たすかどうかを決定するために、受信されたデータを処理する。入力の解析などのこれらの提供されるサービスは、各フィルター４１８によってではなく基礎認識エンジン４１６によって一度提供されるので、フィルター４１８につき一度とは対照的に、そのようなサービスは、期間中に一度処理される必要があるにすぎず、そのため、ジェスチャーを決定するために要求される処理は低減される。
【００７４】
[0082]アプリケーションは、認識エンジン１９０によって提供されるフィルター４１８を使用してもよく、又は、基礎認識エンジン４１６にプラグインする自身のフィルター４１８を提供してもよい。実施例において、フィルター４１８はすべて、このプラグイン特性を可能にするために共通インターフェースを有している。さらに、すべてのフィルター４１８はパラメーター４２８を利用してもよく、したがって、以下に記載されるような単一のジェスチャーツールがフィルターシステム４１８全体をデバッグし調整するために使用され得る。
【００７５】
[0083]これらのパラメーター４２８はジェスチャーツール４２０によってアプリケーション又はアプリケーションのコンテキストのために調整されてもよい。実施例において、ジェスチャーツール４２０は、各々がパラメーター４２８に対応する複数のスライダー４２２のほか、体４２４の胸部の表現を含む。パラメーター４２８が対応するスライダー４２２で調節されるとき、体４２４は、そういうものとして識別される、それらのパラメーター４２８を備えたジェスチャーとして認識される動作、及び、それらのパラメーター４２８を備えたジェスチャーとして認識されない動作の両方を示してもよい。ジェスチャーのパラメーター４２８のこの視覚化は、ジェスチャーをデバッグすること及び良く調整することの両方に有効な手段を提供する。
【００７６】
[0084]図５は、積み重ねられたジェスチャー又はフィルター４１８から作成されるより複雑なジェスチャー又はフィルター４１８を描く。ジェスチャーは互いに重ねることができ、重ねられたフィルターはその後複数の他のフィルターを含むフィルターとして見なされてもよい。すなわち、１つより多くのジェスチャーは一度にユーザーによって表現することができる。例えば、投げるジェスチャーがなされる場合に投げること以外のいかなる入力も否定したり、ユーザーがジェスチャーのコンポーネントを除いて静止したままでいる（例えば、１つの腕のみを含む投げるジェスチャーをする間にじっと立っている）ことを要求するのではない。ジェスチャーが積み重なる場合、ユーザーはジャンプするジェスチャー及び投げるジェスチャーを同時にしてもよく、これらのジェスチャーは両方ともジェスチャーエンジンによって認識される。
【００７７】
[0085]図５Ａは積み重ねの実例による簡易なジェスチャーフィルター４１８を描く。ＩＦｉｌｔｅｒフィルター５０２はすべてのジェスチャーフィルターにおいて使用され得る基本的なフィルター４１８である。ＩＦｉｌｔｅｒ５０２はユーザー位置データ５０４をとり、ジェスチャーが生じた信頼水準５０６を出力する。さらに、入力として位置データをとるハンドル（Steering Wheel）フィルター５０８にその位置データ５０４を供給し、ユーザーが操縦する角度５１０（例えば、ユーザーの現在の姿勢の右に対して４０度）を出力する。
【００７８】
[0086]図５Ｂは、図５Ａのジェスチャーフィルター上にフィルター４１８を積み重ねる、より複雑なジェスチャーを描く。ＩＦｉｌｔｅｒ５０２及びハンドル５０８に加えて、ＩＦｉｌｔｅｒ５０２から位置データ５０４を受け取り、ユーザーがジェスチャー５１４を通じて行った進行の量を出力する、ＩＴｒａｃｋｉｎｇフィルター５１２が存在する。ＩＴｒａｃｋｉｎｇ５１２はまた、位置データ５０４をＧｒｅａｓｅＬｉｇｈｔｎｉｎｇ５１４及びＥＢｒａｋｅ５１６へ供給し、それらは、緊急ブレーキの使用など、車両を操作する際になされ得る他のジェスチャーに関するフィルター４１８である。
【００７９】
[0087]ジェスチャーを積み重ねるための他の実施例が存在する。実施例において、位置データ５０４は、ＩＦｉｌｔｅｒ５０２を介してではなく、積み重ねられたジェスチャーのすべてのフィルターに直接渡され、認識エンジンのコンポーネントは、各フィルターがどのように相互運用するかを決定する。例えば、ジャンプフィルター及びスロー（throw）フィルターがある場合、各々は他のユーザー動作が生じていないとき独立して認識されてもよいが、このコンポーネントは、各フィルターからのそれぞれの出力に基づいて、ジャンプと投げることあってもよいあるユーザー入力とが同時に生じていることを認識するであろう。その後、このコンポーネントは、スローフィルターをそれほど厳格に解釈しなくてもよく（例えば、パラメーターを満たす値の許容範囲を拡張することによる）、「ある入力が投げることであり得る」ことに基づいて投げることとして認識されてもよい。
【００８０】
[0088]図６は、ユーザー６０２がフットボールのビデオゲームにおいて「フェアキャッチ」の合図をするためになし得る例示的なジェスチャーを描く。これらの図は複数の時点におけるユーザーを描き、図６Ａは最初の時点であり、図６Ｅは最後の時点である。奥行きカメラ４０２はユーザーが距離をカバーし得るよりも迅速にフレームを得ることができるので、これらの図の各々は、必ずしも連続した画像データのフレームではないが、奥行きカメラ４０２によって捕らえられるような画像データのスナップショット又はフレームに対応してもよい。例えば、このジェスチャーは３秒の期間にわたって生じてもよく、奥行きカメラが１秒あたり４０フレームでデータを得る場合、ユーザー６０２がこのフェアキャッチのジェスチャーをする間に画像データの６０フレームを得る。
【００８１】
[0089]図６Ａにおいて、ユーザー６０２は、自分の脇に腕６０４を下した状態で開始する。その後、図６Ｂに描かれるように、ユーザーは腕を上へ肩より上まで上げ、次に、図６Ｃに描かれるように、ほぼ頭の位置までさらに上げる。そこから、図６Ｄに描かれるように、ユーザーは、自分の腕６０４を肩の位置まで下げ、次に、図６Ｅに描かれるように、ほぼ頭の位置まで再び腕を上げる。ジェスチャーがキャンセルされること又は別のジェスチャーがなされていることを合図し得るいかなる間の位置（intervening position）もなしにシステムがユーザー６０２によってこれらの位置を得る場合、フェアキャッチのジェスチャーをユーザー６０２によってなされたものとして認識し得る。
【００８２】
[0090]図７は、画像データの各フレームがユーザーの骨格マップを生成するために解析されたように、図５の例示的な「フェアキャッチ」ジェスチャーを描く。ユーザーの奥行き画像から骨格マップを生成したシステムは、そのユーザーの体が時間にわたってどのように動作するかを決定し、それからジェスチャーを解析してもよい。
【００８３】
[0091]図７Ａにおいて、ユーザーの肩３１０は肘３０６より上にあり、肘３０６は同じく手３０２より上にある。肩３１０、肘３０６及び手３０２は次に図７Ｂにおいて同一の高さにある。その後、システムは、手３０２が肘より上にあり、肘が肩３１０より上にあることを図７Ｃにおいて検出する。図７Ｄにおいて、ユーザーは図７Ｂの位置へ戻り、肩３１０、肘３０６及び手３０２は同一の高さにある。図７Ｅに示されるジェスチャーの最後の位置において、ユーザーは図７Ｃの位置へ戻り、手３０２は肘より上にあり、肘は肩３１０より上にある。
【００８４】
[0092]奥行きカメラ４０２は一連の静止画像を捕らえ、その結果、任意の１つの画像においてユーザーが動いていないように見えるが、ユーザーは（上記のような固定されたジェスチャーとは対照的に）このジェスチャーを行う過程で動いている。システムは、各静止画像におけるこの一連の姿勢をとり、それから、ユーザーが行っている動いているジェスチャーを決定することができる。
【００８５】
[0093]ジェスチャーを行う際に、ユーザーは、自分の右肩３１０ａ、右肘３０６ａ及び右手３０２ａによって形成される角度を、例えば、１４０°と１４５°との間で生成することはおそらくできない。したがって、フェアキャッチのジェスチャー４２８のためにフィルター４１８を使用するアプリケーションは、アプリケーションの詳細に最も良く役立つように、関連するパラメーター４２６を調整してもよい。例えば、ユーザーが肘３０６の位置に配慮をせずに自分の肩３１０より上に自分の手３０２をもってくる時はいつでも、図７Ｃ及び７Ｅにおける位置が認識されてもよい。より厳密な１組のパラメーターは、手３０２が頭３１０より上にあり、肘３０６が、肩３１０より上にあって、頭３２２と手３０２との間にあることを必要としてもよい。さらに、フェアキャッチのジェスチャー４２８のパラメーター４２６は、１．５秒などの時間の特定の期間内に図７Ａの位置から図７Ｅの位置へとユーザーが動くことを要求してもよく、ユーザーがこれらの位置を通じて動くのに１．５秒より多くの時間を要する場合、それはフェアキャッチ４１８として認められない。
【００８６】
[0094]図８は、ジェスチャーフィルター・ライブラリー８０２からの包括的なジェスチャーフィルター８０６が、特定のタスクのための補完的なジェスチャーフィルターのジャンルパッケージ８０４へとどのようにグループ化されるかを描く。ジェスチャーフィルター・ライブラリー８０２は、システムによって提供されるすべてのジェスチャーフィルター８０６を集める。実施例において、アプリケーションはそのアプリケーションの使用のための追加のジェスチャーフィルターを提供してもよい。包括的なジェスチャーフィルターは、「腕による投げ」８０６ａ及び「しゃがむ」８０６ｂなどのものを含む。その後、これらのジェスチャーフィルターはジャンルパッケージ８０４に一緒にグループ化される。
【００８７】
[0095]ジャンルパッケージ８０４は、ジャンル内で共通に使用されるジェスチャーを含んでもよい。例えば、一人称のシューティングゲーム（ＦＰＳ）のジャンルパッケージ８０４ａは、武器を放ち８１２ｃ、発射物を投げ８１２ｄ、パンチし８１２ｅ、ドアを開け８１２ｆ、しゃがみ８１２ｇ、ジャンプし８１２ｈ、走り８１２ｉ、回転する８１２ｊためのジェスチャーフィルターを有していてもよい。このＦＰＳジャンルパッケージ８０４ａは、多くのＦＰＳアプリケーションとともに容認できるように動作するのに適したように調整又は設定されたジェスチャーフィルターパラメーターを備える、包括的なＦＰＳジャンルパッケージ８０８ａを提供するものと考えられてもよい。
【００８８】
[0096]ジャンルパッケージは、既知のジャンル又はアプリケーションのために動作する補完的なジェスチャーフィルターのグループに限定されない。ジャンルパッケージは、アプリケーションもしくはジャンルによって使用されるフィルターのサブセット（部分集合）、又は補完的なフィルターを含むジェスチャーフィルター含んでもよいが、それらのための適切なジャンルはまだ識別されていない。
【００８９】
[0097]その後、アプリケーションは、そのアプリケーションの詳細を満たすようにそれらの包括的なジャンルパッケージを調整してもよい。アプリケーションは、ジャンルパッケージ中のフィルターのパラメーターの値を設定することによって包括的なジャンルパッケージを調整してもよい。例えば、ゲームＡ８１０ａの創作者は、ドアを開くジェスチャーのフィルター８１２ｆを登録するのに指示動作が要求される場合にゲームが最もよく機能することを決定してもよい。というのは、そうでなければ、それはパンチするジェスチャーフィルター８１２ｅに類似しすぎるからである。しかし、ゲームＢの創作者は、これが問題ではないことを決定してもよく、ドアを開くジェスチャーのフィルター８１２ｆＢを登録するためにより適度な動作のみを要求してもよい。
【００９０】
[0098]ジャンルパッケージが機械読み取り可能な命令を含む実施例において、ジャンルパッケージは、ソースコードの形式のそれらの命令、又はそれらの命令のある量の編集（compilation）を反映する形式の命令として提供されてもよい。
【００９１】
[0099]図９は、アプリケーションが１つのフィルターの１つのパラメーターに対する値を提供する場合に、フィルターパッケージ中の補完的なジェスチャーフィルターを調整する例示的な動作手順を示す。
【００９２】
[0100]動作９０２は複数のフィルターを含むパッケージを提供することを示し、各フィルターはジェスチャー及び少なくとも１つのパラメーターに関する情報を含み、各フィルターはパッケージ中の少なくとも１つの他のフィルターと補完しあう。パッケージは、特定のジャンルのためのジェスチャーフィルターを表してもよい。例えば、ビデオゲームのためのジャンルパッケージは、一人称のシューティングゲーム、アクション、ドライブ、及びスポーツなどのジャンルを含んでもよい。
【００９３】
[0101]本明細書において及び少なくとも１つの実施例において使用されるとき、「パッケージを提供する」ことは、パッケージ中のフィルターに対応するプログラミング言語ライブラリーファイルへのアクセスを許可すること又はアプリケーションに対するアプリケーションプログラムインターフェース（ＡＰＩ）へのアクセスを許可することを指してもよい。アプリケーションの開発者は、ライブラリーファイルをロードし、次に、適切なように方法（メソッド）呼び出しを行ってもよい。例えば、スポーツパッケージでは、対応するスポーツ・パッケージ・ライブラリーファイルが存在していてもよい。
【００９４】
[0102]アプリケーションに含まれる場合、その後、アプリケーションは、所与のＡＰＩに従ってスポーツパッケージを使用する呼び出しを行ってもよい。そのようなＡＰＩ呼び出しは、フィルターのパラメーターの値を返すこと、フィルターのパラメーターの値を設定すること、及び、適切なテニスラケット・スイング・ジェスチャーをユーザーが行う場合にユーザーによって制御されるテニスプレーヤーにテニスラケットをスイングさせるなど、フィルターの識別をアプリケーションのある部分をトリガーすることと関連させることを含んでもよい。
【００９５】
[0103]上に記載されるように、ジェスチャーは種々様々のものを含んでもよい。例えば、しゃがむこと、ジャンプ、寄りかかること、腕で投げること、トス、スイング、かわすこと、キック、及びブロックのいずれであってもよい。同様に、ジェスチャーはユーザーインターフェースのナビゲーションに対応してもよい。例えば、ユーザーは、指が３Ｄカメラを指し、手のひらが３Ｄカメラと向かい合うように自分の手を保ってもよい。その後、ユーザーは、拳を作るために手のひらのほうへ指を閉じてもよく、これは、ウィンドウベースのユーザーインターフェース・コンピューター環境における集中した（focused）ウィンドウが閉じられるべきであることを示すジェスチャーであってもよい。
【００９６】
[0104]ジェスチャーが、アプリケーション中のアバターがパンチを繰り出すべき任意のものをアプリケーションのウィンドウが閉じられるべきであることを示すために示すために使用され得るので、ビデオゲームからテキストエディターまで種々様々のアプリケーションがジェスチャーを利用してもよい。
【００９７】
[0105]ともに共通に使用されるものにおけるように補完的であるか、又は、１つのもののパラメーターの変化が別のもののパラメーターを変化させるように補完的である、補完的なジェスチャーフィルターは、そのジャンルにおいてアプリケーションによって使用されてもよいジャンルパッケージへとグループ化されてもよい。これらのパッケージはアプリケーションにとって利用可能であってもよいか又は識別され得るものであってもよく、少なくとも１つを選択してもよい。アプリケーションは、アプリケーションの独自の側面に最も適合するように、選択されたパッケージ中のフィルターのパラメーターを調整又は修正してもよい。パラメーターが調整される場合、パラメーターが補完的なままであるように、当該フィルター又は第２のフィルターのうち一方の第２の補完的なパラメーター（相互依存の意味で）が調整されてもよい。
【００９８】
[0106]アプリケーションにより決定されるパラメーターは、アプリケーションが置かれている状況に基づいて変化し得る。その目的のために、アプリケーションは、フィルターについてのアプリケーションにより決定されるパラメーターに対して複数の値を割り当ててもよく、各値は異なるコンテキストに対応する。上述のように、このコンテキストは文化的背景又は環境状況であってもよい。
【００９９】
[0107]動作９０４は、第１のフィルターのパラメーターに値を割り当てる指示を受け取ることを示す。アプリケーションにより決定されるパラメーターは、体の部分、空間の体積、速度、動作の方向、角度、及び動作が生じる場所などの、フィルターの種々様々の特性のうちのいずれを含んでもよい。
【０１００】
[0108]実施例において、アプリケーションにより決定されるパラメーターの値は、ジェスチャーをすることを通じてアプリケーションのエンドユーザーによって決定される。例えば、アプリケーションは、ユーザーがアプリケーションを訓練することを可能にしてもよく、その結果、ユーザーは、ジェスチャーがどの動作を含むべきであると自分が考えているかを指定することができる。これは、ユーザーの運動技能（motor skill）に対するよい制御なしに、ユーザーが、ユーザーが行うことができる動作を対応するジェスチャーとリンクさせることができるようにすることを可能にするのに有益となり得る。これが利用可能でなかった場合、ユーザーは、ジェスチャーを生成するためにアプリケーションによって必要とされる方法で自分の体を動かすことができないので、苛立つかもしれない。
【０１０１】
[0109]相互に関連するパラメーターを有する複数のフィルターである補完的なフィルターが存在する実施例において、第１のフィルターのアプリケーションにより決定されるパラメーターの値をアプリケーションから受け取ることは、当該値によって第１のフィルターのアプリケーションにより決定されるパラメーターを設定すること、及び、第１のフィルターのパラメーターの値に基づいて、第２の補完的なフィルターの補完的なアプリケーションにより決定されるパラメーターを設定することの両方を含んでもよい。例えば、あるやり方でフットボールを投げるユーザーがあるやり方で野球のボールも投げるだろうと決定してもよい。したがって、フットボールを投げるジェスチャーについてのフィルターにおける速度パラメーターなどの、１つのフィルターのあるアプリケーションにより決定されるパラメーターが、特定のやり方で設定されるべきことが決定される場合、野球のボールを投げるジェスチャーについての速度パラメーターなどの他の補完的なアプリケーションにより決定されるパラメーターは、その第１のアプリケーションにより決定されるパラメーターがどのように設定されるかに基づいて設定されてもよい。
【０１０２】
[0110]これは、所与のアプリケーションにより決定されるパラメーターについて同じ値である必要はなく、また、フィルターにわたって同じ種類のアプリケーションにより決定されるパラメーターである必要さえない。例えば、Ｘｍ／ｓの前への腕の速度でフットボール・スローを行わなければならない場合、その後、フットボールのキャッチが胴から少なくとも距離Ｙｍだけ離れて手でなされなければならないということがあり得る。
【０１０３】
[0111]値は、腕の速度がＸより大きいなど、しきい値であってもよい。それは、腕の速度がＸに等しいなど、絶対的なものであってもよい。腕の速度がＸのうちのＹ内と等しいなど、フォールトトレランスがあってもよい。また、腕の速度がＸ以上だがＺ未満であるなど、ある範囲を含んでもよい。
【０１０４】
[0112]動作９０６は、第１のフィルターのパラメーターに値を割り当てることを描く。パラメーターとそれらの値との間の関連性がデータベースに格納される場合、これはパラメーターとの関連と共にデータベースに値を格納することを含んでもよい。
【０１０５】
[0113]動作９０８は、第２のフィルターの第２のパラメーターに第２の値を割り当てることを示し、第２の値は、第１のフィルターのパラメーターに割り当てられた値を使用して決定される。上述のように、第２の値は様々な方法で第１の値に関連してもよい。２つのパラメーターがしきい値のジャンプの高さなど、実質的に類似したものを含む場合、第２の値は最初の値と等しくてもよい。第２の値及び第１の値は、比例の関係、反比例の関係、線形の関係、指数関数的な関係、入力として値をとる関数などの様々な他の関係を有していてもよい。
【０１０６】
[0114]フィルターがオブジェクト指向の実施においてなど、互いから特性を引き継いでもよい実施例において、第２のフィルターは第１のフィルターの子を含んでもよく、同様に第１のフィルターは第２のフィルターにとって親であってもよい。「平手打ち」フィルターを例に挙げる。このフィルターは、「ハイタッチ（high five）」、「両手のハイタッチ（high ten）」及び「腰の高さで手を打ち合わせること（low five）」などの平手打ちについての変化に対する親として働いてもよい。「平手打ち」が「手の移動距離のしきい値」パラメーターを有する場合、そのパラメーターに対する値が設定されると、すべての子フィルターについての「手の移動距離のしきい値」パラメーターは、その同じ値で設定されてもよい。
【０１０７】
[0115]同様に、２つのパラメーターの補完的な性質は、別のフィルターに組み入れられるべき積み重ねられている１つのフィルターによってもよい。１つのフィルターはステアリングフィルターであってもよく、ドライビングフィルターを作成するためにギアシフト、加速及び減速などの他のフィルターで積み重ねられる。ステアリングフィルターの「最小のステアリング角のしきい値」パラメーターが修正されるとき、ドライビングフィルターの対応する「最小のステアリング角のしきい値」パラメーターも修正されてもよい。
【０１０８】
[0116]動作９１０は、人の画像を含むデータを受信するオプションの動作を描き、データが特定のフィルターと一致する（したがって特定のジェスチャーを示す）かどうかを決定するためにフィルターを解析する場合、パッケージ中にないフィルターについてデータを解析する前に、選択されたパッケージ中の各フィルターのデータを解析する。アプリケーションがそのフィルターパッケージのためのライブラリーファイルを含むことによるなどして、使用のためのフィルターパッケージを選択する場合、それらのフィルターがアプリケーションのユーザーによって頻繁に使用されることになっているので、そうするのが好ましい。さらに、フィルターパッケージ中のフィルターは、一人称のシューティングゲームパッケージにおいて走り、ジャンプし、攻撃し、しゃがみ、銃器を発射するフィルターなどの、接近した連続において使用されてもよい。この目的のために、フィルターパッケージがアプリケーションによって使用されるものとして識別された場合、上述の基礎フィルターエンジンなどのシステム処理フィルターは、選択されたフィルターパッケージを含むそれらのフィルターについてデータを最初に処理することによって、ユーザー入力に対応する画像データを処理するのに要する処理資源をおそらくは低減することができる。
【０１０９】
[0117]動作９１２は、第２のパラメーターに第３の値を割り当てる指示を受信し、第２のパラメーターに第３の値を割り当てる、オプションの動作を描く。２つのパラメーター間の関係は対称的（互恵的）である必要はない。値の変化が第２の値に影響するが、第２の値の変化が第１の値に影響しないということがあり得る。
【０１１０】
[0118]動作９１４は、パラメーターに第３の値を使用して決定された第４の値を割り当てるオプションの動作を描く。また、２つのパラメーター間の関係は対称的であってもよい。この実施例において、第２のパラメーターの新たな値を使用して決定されるように、第２のパラメーターの値の変化は第１のパラメーターの値の変更に帰着する。
【０１１１】
[0119]動作９１６は、人の画像を含むデータを受け取り；データがパッケージの第１のフィルターと一致することを決定し；フィルターと同時にユーザーによって示すことのできないフィルターについてのデータを解析する前に、第１のフィルターと同時にユーザーによって示すことのできるパッケージ中の各々の他のフィルターについてのデータを解析する、オプションの動作を描く。実施例において、フィルターパッケージ中のフィルターは、一人称のシューティングゲームパッケージにおける同時の走るフィルター及び銃器発射フィルターなど、同時に使用され得る。この目的のために、フィルターパッケージがアプリケーションによって使用されるものとして識別された場合、上述の基礎認識エンジンなどのシステム処理フィルターは、フィルターパッケージを含むそれらのフィルターについてのデータを最初に処理することによって、ユーザー入力に対応する画像データを処理するのに要する処理資源をおそらくは低減することができる。
結論
[0120］様々な図の中で示されるように、本開示は好ましい態様に関して記載されてきた一方、他の同様の態様が使用され得ること、又は、本開示から逸脱することなく本開示の同じ機能を行うために、修正及び追加が記載された態様に対してなされてもよいことが理解される。したがって、本開示はいかなる単一の態様にも限定されるべきでなく、むしろ添付の特許請求の範囲に従う幅及び範囲において解釈されるべきである。例えば、本明細書において記載された様々な手続きは、ハードウェアもしくはソフトウェア、又は両方の組み合わせによって実施されてもよい。したがって、開示された実施例の方法及び装置、又はそれらのある態様又は部分は、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ又は任意の他の機械読み取り可能な記憶媒体などの有形の媒体に具体化されたプログラムコード（すなわち、命令）の形式をとってもよい。プログラムコードがコンピューターなどの機械へロードされ、機械によって実行される場合、機械は、開示された実施例を実施するために構成された装置になる。本明細書において明示的に述べられた特定の実施例に加えて、他の態様及び実施は、本明細書に開示された明細書の考察から当業者にとって明白であろう。明細書及び示された実施例は単に例として考えられることが意図される。
【図１Ａ】
2012516507.tif 000003
【図１Ｂ】
2012516507.tif 000004
【図２】
2012516507.tif 000005
【図３Ａ】
2012516507.tif 000006
【図３Ｂ】
2012516507.tif 000007
【図４Ａ】
2012516507.tif 000008
【図４Ｂ】
2012516507.tif 000009
【図５Ａ】
2012516507.tif 000010
【図５Ｂ】
2012516507.tif 000011
【図６Ａ】
2012516507.tif 000012
【図６Ｂ】
2012516507.tif 000013
【図６Ｃ】
2012516507.tif 000014
【図６Ｄ】
2012516507.tif 000015
【図６Ｅ】
2012516507.tif 000016
【図７Ａ】
2012516507.tif 000017
【図７Ｂ】
2012516507.tif 000018
【図７Ｃ】
2012516507.tif 000019
【図７Ｄ】
2012516507.tif 000020
【図７Ｅ】
2012516507.tif 000021
【図８】
2012516507.tif 000022
【図９】
2012516507.tif 000023
【国際調査報告】
2012516507.tif 000024
2012516507.tif 000025
2012516507.tif 000026
2012516507.tif 000027
2012516507.tif 000028
2012516507.tif 000029