(57)【要約】  ユーザーと画面上のオブジェクトとの間のインタラクションを制御するために画面上のグラフィカルなハンドルを提供するシステムが開示される。ハンドルは、例えばテキスト又はグラフィカルなナビゲーションメニュー内をスクロールするなど、ユーザーがオブジェクトに対してどのようなアクションを実行することができるかを定義する。ハンドルとのインタラクションのプロセスを通じてユーザーを導くためにアフォーダンスが提供される。
2013519175.tif 000002
【特許請求の範囲】
【請求項１】
ユーザーの位置を取得するキャプチャーデバイスに結合されて人間とコンピューターのインターフェースを提供するコンピューティング環境を含むシステムにおいて、人間とコンピューターのインターフェースのための表示領域とのユーザーのインタラクションを容易にする方法をであって、
（ａ）インターフェースの領域に関連付けられるハンドルを生成するステップと、
（ｂ）ユーザーの動きを検知するカメラを介して、前記ステップ（ａ）において生成されたハンドルとの前記ユーザーによる係合を検出するステップと、
（ｃ）前記ユーザーによるジェスチャーの指示を受信するステップと、
（ｄ）前記ステップ（ｃ）に応答して前記ユーザーインターフェースの領域に対してアクションを実行するステップと
を含む方法。
【請求項２】
前記ステップ（ａ）は前記ユーザーインターフェースの領域に前記ハンドルを表示するステップを含む請求項１に記載の方法。
【請求項３】
前記ステップ（ａ）は前記ユーザーインターフェースの領域に隣接した前記ハンドルをを表示するステップを含む請求項１に記載の方法。
【請求項４】
前記ステップ（ａ）は、分離したハンドルが表示されないように前記ユーザーインターフェースの領域の一部として前記ハンドルを統合するステップを含む請求項１に記載の方法。
【請求項５】
ハンドルとのユーザーによる係合を検出する前記ステップ（ｂ）は、カーソルを前記ハンドルへと引っ張る前記ハンドルのまわりの引力をシミュレートすることによって容易にされ、前記カーソルが前記ハンドルへと引っ張られる際に係合が検出される請求項１に記載の方法。
【請求項６】
ユーザーインターフェースの領域に関連付けられるハンドルを生成する前記ステップ（ａ）は、前記ハンドルを係合する間にユーザーによって実行されるジェスチャーの検出の際に前記領域に対して実行されるべきアクションに基づいて、ハンドルを前記領域に関連付けるステップを含む請求項１に記載の方法。
【請求項７】
前記ステップ（ａ）において生成されたハンドルとユーザーがどのようにインタラクトすることができるかを示す、前記ハンドルに関連付けられるアフォーダンスを表示するステップ（ｆ）をさらに含む請求項１に記載の方法。
【請求項８】
ユーザーの位置を取得するキャプチャーデバイスに結合されて人間とコンピューターのインターフェースを提供するコンピューティング環境のためのプロセッサー読み取り可能な記憶媒体であって、前記プロセッサー読み取り可能な記憶媒体は、人間とコンピューターのインターフェースのためのディスプレイのアクション領域とのユーザーのインタラクションを容易にする方法を実行するようにプロセッサーをプログラミングし、前記方法は、
（ａ）前記インターフェースの領域と関連付けられるグラフィカルなハンドルをディスプレイに表示するステップであって、前記グラフィカルなハンドルは前記アクション領域を係合するための明示的な係合ポイントを提供し、前記グラフィカルなハンドルはユーザーによる所定のジェスチャーの受信の際にユーザーが前記アクション領域とどのようにインタラクトすることができるかを定義する、ステップと、
（ｂ）前記ユーザーの位置の検出の結果として前記ユーザーが前記ハンドルを追跡しているという指示を受信するステップと、
（ｃ）前記ユーザーが前記ハンドルを追跡する場合に前記ハンドルとの係合を確立するステップと、
（ｄ）前記ユーザーによるジェスチャーの指示を受信するステップと、
（ｅ）前記グラフィカルなハンドルによって定義される前記ディスプレイのアクション領域に対してアクションを実行するステップであって、前記ステップ（ｄ）において受信された前記ジェスチャーの指示が前記ステップ（ａ）の前記所定のジェスチャーと一致する、ステップと
を含む、プロセッサー読み取り可能な記憶媒体。
【請求項９】
前記方法が、ハンドルとの係合を確立する前記ステップ（ｂ）の際に、ユーザが前記ハンドルとどのようにインタラクトすることができるかを定義するアフォーダンスを表示するステップ（ｆ）をさらに含む請求項８に記載のプロセッサー読み取り可能な記憶媒体。
【請求項１０】
前記ステップ（ｆ）は前記ハンドルを移動することができる方向を示すレールを表示するステップを含む請求項９に記載のプロセッサー読み取り可能な記憶媒体。
【請求項１１】
ユーザーによるジェスチャーの指示を受信する前記ステップ（ｄ）は、前記ステップ（ｆ）における前記レールによって定義される方向に前記ハンドルを移動するためのジェスチャーを受信するステップを含む請求項１０に記載のプロセッサー読み取り可能な記憶媒体。
【請求項１２】
前記ステップ（ｅ）は、前記ステップ（ｄ）で前記ハンドルを上、下、左又は右に移動する指示を受信すると、オブジェクトのメニュー内をナビゲートするステップを含む請求項１１に記載のプロセッサー読み取り可能な記憶媒体。
【請求項１３】
ユーザーの位置を取得するキャプチャーデバイスに結合され、ディスプレイに結合されるコンピューターシステムにおける、人間とコンピューターのインターフェースであって、
アクションを実行すること及びアクションを実行させることのうちの少なくとも１つを可能にする、ディスプレイ上のアクション領域と、
前記ディスプレイ上に表示され前記アクション領域と関連付けられるハンドルであって、アクション領域との明示的な係合ポイントを提供し、ユーザーが前記アクション領域とどのようにインタラクトすることができるかを定義する、ハンドルと、
ユーザーが前記ハンドルをどのように操作することができるかを定義する、前記ハンドルに関連付けられる前記ディスプレイ上に表示されるレールと
を備える人間とコンピューターのインターフェース。
【請求項１４】
前記アクション領域はナビゲーションメニューであり、前記ハンドルは前記ナビゲーションメニュー内のナビゲーションパスを定義する請求項１３に記載の人間とコンピューターのインターフェース。
【請求項１５】
ユーザーによる前記ハンドルとの係合を確立することを容易にするために、シミュレートされた力が前記ハンドルのまわりに生成される請求項１３に記載の人間とコンピューターのインターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人間とコンピューターのインターフェースのためのインタラクションの処理に関する。
【背景技術】
【０００２】
[0001]過去、コンピューターゲームやマルチメディアアプリケーションなどのコンピューティングアプリケーションは、コントローラー、リモコン、キーボード、マウスなどを使用して、ユーザーがゲームのキャラクターやアプリケーションの他の側面を操作できるようにしていた。最近では、コンピューターゲームやマルチメディアアプリケーションは、人間とコンピューターのインターフェース（「ＨＣＩ」）を提供するために、カメラ及びソフトウェアのジェスチャー認識エンジンを採用し始めている。ＨＣＩによって、ユーザーのジェスチャーが検出されて解釈され、ゲームのキャラクターやアプリケーションの他の側面を制御するために使用される。
【０００３】
[0002]ＨＣＩシステムでは、手のジェスチャーが、しばしば、ゲームや他のアプリケーションとのインタラクションを制御するために使用される。既存のジェスチャー認識システムは、一般に、位置ベースのポインティングジェスチャー又はモーションベースのシンボリックなジェスチャーのいずれかに注目する。ポインティングジェスチャーを使用して、ユーザーは、ユーザーの手に従う画面上のカーソルに指示をする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
そのようなジェスチャー認識システムは、手の動きとカーソル位置との間のジッター及び遅延（又は遅延時間）、並びにユーザーインターフェース（ＵＩ）の密度の制限を含む、様々な欠点を有する。モーションベースのシンボリックジェスチャーによると、ユーザーの動きが解釈され、所定のジェスチャーに一致する場合には、いくつかの関連付けられるアクションがとられる。モーションベースのシステムは、誤検出、ジェスチャーの不一致並びにアフォーダンス及びフィードバックを即座に提供できないこと（特定のジェスチャーが最初に認識されなければならない）などを含む、いくつかの欠点を有する。
【課題を解決するための手段】
【０００５】
[0003]一般に、本技術は、ユーザーと画面上のオブジェクトとの間のインタラクションを制御する画面上のグラフィカルなハンドルを使用するシステムに関連する。実施例において、ハンドルは所与のオブジェクトと関連してディスプレイ上に表示されるＵＩオブジェクトである。ハンドルは、例えばテキストの又はグラフィカルなナビゲーションメニューをスクロールするなど、ユーザーがオブジェクトに対してどのようなアクションを実行することができかを規定する。ユーザーは、ハンドルを使って、例えば表示画面上でハンドルを上下左右に動かすといったようにハンドルを操作するジェスチャーを実行する。この操作はオブジェクトに対して実行される関連付けられるアクションをもたらす。ハンドルとのインタラクションのプロセスを通じてユーザーを導くアフォーダンスが提供される。
【０００６】
[0004]実施例において、本技術は、ユーザーの位置をキャプチャーして人間とコンピューターのインターフェースを提供するために、キャプチャーデバイスに結合されたコンピューティング環境に関連する。このシステムは、（ａ）ユーザーインターフェースの領域に関連付けられるハンドルを生成するステップ、（ｂ）ステップ（ａ）で生成されたハンドルとのユーザーの係合（engagement）を検出するステップ、（ｃ）ユーザーによるジェスチャーの指示を受信するステップ、及び（ｄ）ステップ（ｃ）に応答してユーザーインターフェースの領域上でアクションを実行するステップを含む、人間とコンピューターのインターフェースのための表示領域とのユーザーのインタラクションを容易にする方法を実行する。
【０００７】
[0005]さらなる実施例は、ユーザーの位置をキャプチャーして人間とコンピューターのインターフェースを提供するキャプチャーデバイスに結合された、コンピューティング環境のためのプロセッサー読み取り可能な記憶媒体に関し、プロセッサー読み取り可能な記憶媒体は、人間とコンピューターのインターフェースのためにディスプレイの動作領域とのユーザーのインタラクションを容易にする方法を実行するようにプロセッサーをプログラミングする。この実施例は、（ａ）ユーザーインターフェースの領域に関連付けられるグラフィカルなハンドルをディスプレイ上に表示することであって、当該グラフィカルなハンドルがアクション領域と係合するための明確な係合点（engagement point）を提供し、当該グラフィカルなハンドルが、ユーザーによる所定のジェスチャーが受信されたときにユーザーがアクション領域とどのようにインタラクトすることができるかを規定する、グラフィカルなハンドルを表示すること、（ｂ）ユーザーの位置を検出した結果として、ユーザーがハンドルの方へ進んでいるという指示を受信すること、（ｃ）ユーザーがハンドルを突き止めた場合にハンドルとの係合を確立すること、（ｄ）ユーザーによるジェスチャーの指示を受信すること、及び（ｅ）ステップ（ｄ）で受信されたジェスチャーの指示がステップ（ａ）の所定のジェスチャーと一致する場合にグラフィカルなハンドルによって規定されるディスプレイのアクション領域に対してアクションを実行することを含む。
【０００８】
[0006]さらなる実施例は人間とコンピューターのインターフェースに関連し、アクションを実行すること及びアクションを実行させることのうちの少なくとも１つを可能にする、ディスプレイ上のアクション領域、ディスプレイ上に表示されてアクション領域に関連付けられるハンドルであって、アクション領域との明確な係合点を提供してユーザーがアクション領域とどのようにインタラクトすることができるかを規定する、ハンドル、並びに、ユーザーがハンドルをどのように操作することができるかを規定するためにハンドルに関連付けられる、ディスプレイ上に表示されるレールを含む。
【図面の簡単な説明】
【０００９】
【図１】[0007]目標の認識、分析及び追跡システムの例示的な実施例を、当該システムとインタラクトするユーザーとともに示す。
【図２】[0008]本発明の実施例による、ハンドルを含むサンプル画面表示を示す。
【図３】[0009]目標の認識、分析及び追跡システムで使用することができるキャプチャーデバイスの例示的な実施例を示す。
【図４Ａ】[0010]本発明の目標認識、分析及び追跡システムで使用することができるコンピューティング環境の例示的な実施例を示す。
【図４Ｂ】[0011]本発明の目標認識、分析及び追跡システムで使用することができるコンピューティング環境の別の例示的な実施例を示す。
【図５】[0012]本発明の実施例の動作を示すフローチャートである。
【図６】[0013]カーソルを引き付けるハンドルの動作のフローチャートである。
【図７】[0014]ジェスチャーを認識するための本発明のシステムの動作のフローチャートである。
【図８】[0015]本発明の実施例による、ハンドル及びレールを含むサンプル画面表示を示す。
【図９】[0016]本発明のさらなる実施例による、ハンドル及びレールを含むサンプル画面表示を示す。
【発明を実施するための形態】
【００１０】
[0017]本発明の実施例は、図１−９を参照して説明され、一般に、ユーザーと画面上のオブジェクトとの間のインタラクションを制御するために画面上のハンドルを使用する、ジェスチャー認識及びインタラクションシステムに関連する。実施例において、ハンドルは、人間とコンピューターのインターフェースとインタラクトし、ナビゲートし、制御するためのＵＩオブジェクトである。実施例において、ハンドルは、ＵＩ上のオブジェクトなどの、アクション領域との明示的な係合点（エンゲージメントポイント）を提供し、ユーザーがそのオブジェクトとどのようにインタラクトすることができるかについてアフォーダンスを提供する。ユーザーが一旦ハンドルと係合すると、ユーザーは、例えば、ハンドルを動かしたり、そのハンドルに関連付けられる１つ又は複数のジェスチャーを行ったりすることにより、ハンドルを操作することができる。
【００１１】
[0018]図１−３を最初に参照すると、本発明を実施するためのハードウェアは、ユーザー１８などの人間の目標を認識し、分析し、及び／又は追跡するために使用することができる目標認識、分析及び追跡システム１０を含む。目標認識、分析及び追跡システム１０の実施例は、ゲームや他のアプリケーションを実行するためのコンピューティング環境１２、並びに、ゲームや他のアプリケーションからの音声及び視覚表現を提供する視聴覚装置１６を含む。システム１０は、さらに、ゲームや他のアプリケーションを制御するためにコンピューティング環境１２が受信し、解釈し、使用する、位置及びユーザー１８によって実行される動きをキャプチャーするキャプチャーデバイス２０を含む。これらのコンポーネントの各々は以下により詳細に説明される。
【００１２】
[0019]図１に示すように、例示的な実施例では、コンピューティング環境１２上で実行されるアプリケーションは、ユーザー１８にＵＩ１９を提示してもよい。ＵＩは、ゲームアプリケーションやプラットフォームの一部であってもよく、実施例においては、ゲームアプリケーションやプラットフォームの選択された領域にアクセスするためのナビゲーションメニューであってもよい。コンピューティング環境１２は、ＵＩ上に１つ又は複数のハンドル２１を生成し、各ハンドルはＵＩ１９上のアクション領域２３に結び付けられるかその他の方法で関連付けられる。各ハンドルは、一般に、以下により詳細に説明されるように、関連付けられるアクション領域に関して動作を制御するための、画面に表示されるグラフィカルなオブジェクトである。
【００１３】
[0020]実施例において、ハンドル２１は、ディスプレイ上の円又は３次元の球体の形状であってもよいが、当業者であれば、ハンドルが代替的な実施例において様々な他の形状のうちの任意のものであってもよいことを理解するであろう。以下に説明するように、ハンドル２１の存在及び外観は、ユーザーが存在するかどうかに依存して、及びユーザーがハンドルを使用しているかどうかに依存して、変化してもよい。実施例において、ハンドルの形状は、すべてのアクション領域２３と同一であってもよいが、さらなる実施例においては異なるアクション領域が異なる形状のハンドルを有すると考えられる。図１は単一のハンドル２１を示すが、後述するように、ＵＩ１９は、各々が異なるアクション領域２３に関連付けられる複数のハンドル２１を含んでもよい。
【００１４】
[0021]本明細書中で使用される「アクション領域」は、それに関連付けられるハンドルを有し得るＵＩ１９上の任意の領域であり、そのハンドルの操作のときにアクションを実行することができるか、又はハンドルの操作のときにアクションを実行させることができる。実施例において、アクション領域２３は、ナビゲーションメニューの一部として表示されるテキスト又はグラフィカルオブジェクトであってもよい。しかし、実施例において、アクション領域２３は、ナビゲーションメニューの一部である必要はなく、特定の表示されるグラフィカルオブジェクトである必要はない。アクション領域２３は代替的にＵＩの領域であってもよく、それは、ハンドルを介してアクセスされると、その領域において又は一般にＵＩ上で、いくつかのアクションを実行させる。
【００１５】
[0022]アクション領域がディスプレイ上の特定のグラフィックオブジェクトである場合、そのグラフィカルオブジェクトに関連付けられるハンドル２１は、グラフィカルオブジェクト上に表示されてもよいし、又は、グラフィカルオブジェクトの周囲の任意の位置において、グラフィカルオブジェクトに隣接して表示されてもよい。さらなる実施例では、ハンドル２１は、特定のオブジェクトにマッピングされなくてもよい。この実施例では、アクション領域２３は、多くのグラフィカルオブジェクトを含む、ＵＩ１９上の領域であってもよい。そのアクション領域に関連付けられるハンドル２１が操作される場合、アクションがアクション領域２３内のすべてのオブジェクトに実行されてもよい。さらなる実施例では、ハンドル２１は、グラフィカルオブジェクトに統合されてもよい。このような実施例では、オブジェクトとは別個のハンドル２１についての視覚的な表示はない。そうではなく、オブジェクトが把握されるか又は選択されると、当該オブジェクトはハンドル２１として機能し、ハンドルに関連付けられるアクションが実行される。これらのアクションは以下でより詳細に説明される。
【００１６】
[0023]インターフェース１９は、ユーザーの動きを介して制御されるカーソル２５をさらに含んでもよい。特に、以下で説明するように、キャプチャーデバイス２０はユーザーが指しているところをキャプチャーし、コンピューティング環境は、この画像データを解釈して、視聴覚装置１６上の決定されたスポットにおいてカーソル２５を表示する。カーソルは、ユーザーが視聴覚装置１６上の具体的にどこを指しているかについて閉ループフィードバックをユーザーに提供することができる。以下に説明するように、これは視聴覚装置１６上のハンドルの選択を容易にする。同様に、各ハンドルは、カーソルがハンドルに対して十分近い時にハンドルへとカーソルを引き付けるために、磁場に似た引力（attractive force）を有してもよい。この特徴は以下により詳細に説明される。カーソル２５は、ユーザーが視界に存在する場合にのみ、又はユーザーがディスプレイ上の特定のオブジェクトを追跡している場合にのみ、常に可視であってもよい。
【００１７】
[0024]ハンドル２１の１つの目的は、ユーザーがアクション領域２３とインタラクトすることができる明示的な係合点を提供することである。動作において、ユーザーは、ハンドル２１へとカーソル２５を導き、ハンドルにくっつくようにジェスチャーを実行する。ユーザーが動作をする３次元実空間は、z軸がキャプチャーデバイス２０から水平方向にまっすぐに延びる軸であり、x軸がｚ軸に対して垂直な水平軸であり、y軸がz軸に対して垂直な垂直軸である座標系として定義することができる。この座標系を考えると、ユーザーは、ハンドルの上にカーソルを配置するようにxy平面において自分の手を動かし、次いで、キャプチャーデバイスに向かってz軸に沿ってその手を動かすことによってハンドルにくっつくことができる。カーソルがハンドルの上に配置される場合、コンピューティング環境１２は、内側に向かうユーザーの手の内側の動き（すなわち、z軸に沿って、画面上のハンドル２１により近づく）を、ユーザーがハンドルにくっつこうとしているものとして解釈し、コンピューティング環境はこのアクションを実行する。実施例において、画面上のxyの動きは湾曲した座標空間で達成される。つまり、ユーザーの動きはいまだ主にx方向及びy方向であるが、ある大きさのz方向の曲がり（warping）は、人間の腕が従う湾曲した経路の原因となるように考慮される。
【００１８】
[0025]様々な係合の方法をもつ異なる種類のハンドルが存在する。第１のハンドルは片手ハンドルであってもよい。これらの種類のハンドルはユーザーの右手又は左手の両方ではなくいずれかによって係合することができる。第２の種類のハンドルはデュアルハンドル（dual-handed handle）であってもよい。これらの種類のハンドルは、ユーザーの右手又は左手によって係合することができる。デュアルハンドルの別の例は、ハンドルがユーザーにとって３Ｄ空間でのより自然な係合のために配置することができるように、右手及び左手のバージョン用に作成され、アクション領域の左又は右に配置することができる。第３の種類のハンドルは両手ペアのハンドルである。これらのハンドルは、インタラクションを達成するのにユーザーの両手を必要とする。これらのインタラクションは、以下に説明するようにより複雑なインタラクションをどのように達成するかをユーザーに通知するために、視覚的なアフォーダンス、及び、実施例において、聴覚アフォーダンスを利用する。
【００１９】
[0026]図１は片手ハンドル２１の例を含む。図２はハンドルの追加の例を含むディスプレイの図である。図２においてＵＩ１９の上部に向かうハンドル２１はアクション領域２３に関連付けられる片手ハンドル２１であり、この例ではテキストのナビゲーションメニューである。ＵＩ１９の底部に向かう２つのハンドル２１は、アクション領域２３に関連付けられるデュアルハンドルの例である。図２の例において、アクション領域２３は、特定のソフトウェアのタイトルを示す１つ又は複数のグラフィカルナビゲーションオブジェクト（「スロット」とも呼ばれる）であって、スロットの下型のコーナーにおいてユーザーが両方のハンドル２１を選択することによって、いくつかのアクションを実行することができる。
【００２０】
[0027]異なるハンドル２１はまた、ユーザーによって係合されると異なる動作をすることができてもよい。たとえば、いくつかのハンドルは単一の方向に（例えば、画面のx軸又はy軸に沿って）移動するように制約される。他のハンドルがx軸及びy軸に沿った２軸の移動のために用意される。さらなるハンドルが、x−y平面の周りでの多方向運動のために用意される。さらなるハンドルを、排他的に又は多次元運動の一部として、z軸に沿って移動させることができる。各ハンドルは、ハンドルを操作する方法を明確にユーザーに示すためのアフォーダンスを含んでもよい。たとえば、ユーザーがハンドル２１に近づくと、本明細書において「レール」と呼ばれるグラフィカルな指示がハンドルに隣接したディスプレイ上に現れる。当該レールは、関連付けられるアクション領域２３上でいくつかのアクションを達成するためにハンドル２１を動かすことができる方向を示す。レールは以下でより詳細に説明されるが、図１はハンドル２１がx軸に沿って（図１における左側へ）移動させることができることを示すレール２７を示す。示されるように、レールは、ユーザーがハンドル２１に近づくか又はハンドル２１と係合するときに、現れるにすぎない。そうでない場合は、レールは、ディスプレイを乱雑にしないようにするために、画面に表示されない。しかし、代替的な実施例において、ハンドルに関連付けられる任意のレールは、そのハンドルが見えているときは常に表示されてもよい。
【００２１】
[0028]さらなる実施例において、カーソル２５もまた、可能性のあるハンドル操作についてフィードバック及び指示（cues）を提供してもよい。つまり、カーソルの位置は、レールを表示させ、又は、ハンドル自体に加えて操作のフィードバックを提供してもよい。
【００２２】
[0029]図３は、目標認識、分析及び追跡システム１０で使用することができるキャプチャーデバイス２０の例示的な実施例を示す。本発明で使用するキャプチャーデバイスに関連するさらなる詳細については、その全体が参照により本明細書に組み込まれる「Device For Identifying And Tracking Multiple Humans Over Time」と題する同時係属の特許出願第１２／４７５，３０８号に記載されている。しかし、例示的な実施例では、キャプチャーデバイス２０は、例えば、飛行時間型、構造化された光、ステレオイメージ等を含む任意の適切な技術による奥行き値（深度値、depth value）を含み得る奥行き画像を有する動画をキャプチャーするように構成することができる。１つの実施例によれば、キャプチャーデバイス２０は、計算された深さ情報を、「Ｚ層」、又は視線（line of sight）に沿ってデプスカメラ（depth camera）から延在する、Z軸に垂直な層へと整理することができる。
【００２３】
[0030]図３に示すように、キャプチャーデバイス２０は画像カメラコンポーネント２２を含んでもよい。例示的な実施例によれば、画像カメラコンポーネント２２は、シーンの奥行き画像をキャプチャーすることができるデプスカメラであってもよい。奥行き画像はキャプチャーされたシーンの２次元の（２−Ｄ）画素領域を含んでもよく、２次元の（２−Ｄ）画素領域内の各ピクセルは、カメラからのキャプチャーしたシーンにおける物体の、例えば、センチメートル、ミリメートルなどの単位の長さを表すことができる。
【００２４】
[0031]図３に示すように、例示的な実施例によれば、画像カメラコンポーネント２２は、シーンの奥行き画像をキャプチャーするために使用される、ＩＲ光コンポーネント２４、３次元（３−Ｄ）カメラ２６、及びＲＧＢカメラ２８を含んでもよい。例えば、飛行時間分析において、キャプチャーデバイス２０のＩＲ光コンポーネント２４は、シーンに赤外光を発することができ、その後、例えば３次元カメラ２６及び／又はＲＧＢカメラ２８を使用してシーン内の１つ又は複数の目標及び物体の表面からの後方散乱光を検出するためにセンサー（図示せず）を使用することができる。
【００２５】
[0032]別の実施例によれば、キャプチャーデバイス２０は、奥行き情報を生成するために分解することができる視覚的なステレオデータを取得するために、異なる角度からシーンを見ることができる２つ以上の物理的に分離されたカメラを含んでもよい。
【００２６】
[0033]キャプチャーデバイス２０はさらにマイク３０を含んでもよい。マイク３０は、音声を受信して電気信号に変換することができるトランスデューサーやセンサーを含んでもよい。１つの実施例によれば、マイク３０は、目標認識、分析及び追跡システム１０におけるキャプチャーデバイス２０とコンピューティング環境１２との間のフィードバックを減らすために使用することができる。さらに、マイク３０は、コンピューティング環境１２により実行され得るゲームアプリケーション、ゲーム以外のアプリケーションなどのアプリケーションを制御するためにユーザーによって提供され得る音声信号を受信するために使用することができる。
【００２７】
[0034]例示的な実施例において、キャプチャーデバイス２０は、画像カメラコンポーネント２２と動作可能に通信するプロセッサー３２をさらに含んでもよい。プロセッサー３２は、奥行き画像を受信し、適切な目標が奥行き画像に含まれるかどうかを決定し、当該適切な目標を当該目標の骨格表現もしくはモデルに変換するための命令又は他の適切な命令を実行することができる、標準化されたプロセッサー、専用プロセッサー、マイクロプロセッサーなどを含んでもよい。
【００２８】
[0035]キャプチャーデバイス２０はさらに、プロセッサー３２により実行することができる命令、３−ＤカメラやＲＧＢカメラで撮影した画像のイメージもしくはフレーム、又は任意の他の適切な情報、画像などを格納することができるメモリーコンポーネント３４を含んでもよい。例示的な実施例によれば、メモリーコンポーネント３４は、ランダムアクセスメモリー（ＲＡＭ）、読み取り専用メモリー（ＲＯＭ）、キャッシュ、フラッシュメモリー、ハードディスク、又は任意の他の適切なストレージコンポーネントを含んでもよい。図３に示すように、１つの実施例では、メモリーコンポーネント３４は、画像カメラコンポーネント２２及びプロセッサー３２と通信する別個のコンポーネントであってもよい。別の実施例によれば、メモリーコンポーネント３４は、プロセッサー３２及び／又は画像カメラコンポーネント２２に統合することができる。
【００２９】
[0036]図３に示すように、キャプチャーデバイス２０は、通信リンク３６を介してコンピューティング環境１２と通信することができる。通信リンク３６は、例えば、ＵＳＢ接続、ＦｉｒｅＷｉｒｅ（商標）接続、イーサネット（商標）ケーブル接続等を含む有線接続及び／又は無線８０２．１１ｂ、ｇ、ａもしくはｎ接続などの無線接続であってもよい。１つの実施例によれば、コンピューティング環境１２は、例えば通信リンク３６を介してシーンをいつキャプチャーするかを決定するために使用することができるキャプチャーデバイス２０にクロックを提供してもよい。
【００３０】
[0037]さらに、キャプチャーデバイス２０は、例えば３−Ｄカメラ２６及び／又はＲＧＢカメラ２８によって取得された奥行き情報及び画像、並びにキャプチャーデバイス２０によって生成することができる骨格モデルを、通信リンク３６を介してコンピューティング環境１２に提供してもよい。キャプチャーデバイス２０によって検出された目標又は物体が人間の目標に対応するかどうか決定するための様々な既知の技術が存在する。骨格のマッピング技術は、そのユーザーの骨格、手、手首、肘、膝、鼻、足首、肩の関節、及び骨盤が背骨と接する部分上の、さまざまなスポットを決定するために使用することができる。他の技術は、画像を人の体のモデル表現へと変換し、画像を人のメッシュモデル表現へと変換することを含む。
【００３１】
[0038]骨格モデルは、例えばユーザーが指している場所及びユーザーが行っている動作を識別するためにコンピューティング環境が骨格モデルを追跡することができるように、コンピューティング環境１２に対して提供することができる。以下に説明するように、ユーザーは、ハンドル２１とのインタラクション及びある所定のジェスチャーの実行を介して、ＵＩ１９とインタラクトすることができる。コンピューティング環境１２は、さらに、ユーザー１８からのこれらの所定のジェスチャーを認識するジェスチャー認識エンジン１９０を含んでもよい。ジェスチャー認識エンジン１９０のさらなる詳細は以下に示される。
【００３２】
[0039]図４Ａは、ハンドル２１とのユーザーインタラクションを解釈し、１つ又は複数のジェスチャーを認識するために使用することができるコンピューティング環境の例示的な実施例を示す。図１及び３に関して上述したコンピューティング環境１２などのコンピューティング環境は、ゲーム機などのマルチメディアコンソール１００であってもよい。図４Ａに示すように、マルチメディアコンソール１００は、レベル１キャッシュ１０２、レベル２キャッシュ１０４、及びフラッシュＲＯＭ１０６を有する中央処理装置（ＣＰＵ）１０１を有する。レベル１キャッシュ１０２及びレベル２キャッシュ１０４は、一時的にデータを格納し、したがってメモリーアクセスサイクル数を減らし、それによって処理速度及びスループットを向上させる。ＣＰＵ１０１は、複数のコアを有してもよく、したがって、追加のレベル１キャッシュ１０２及びレベル２キャッシュ１０４を有してもよい。フラッシュＲＯＭ１０６は、マルチメディアコンソール１００の電源がオンになったときにブートプロセスの初期段階中にロードされる実行可能コードを格納してもよい。
【００３３】
[0040]グラフィックスプロセッシングユニット（ＧＰＵ）１０８及びビデオエンコーダー／ビデオコーデック（コーダー／デコーダー）１１４は、高速で高解像度のグラフィックス処理のための動画処理パイプラインを形成する。データはバスを介してＧＰＵ１０８からのビデオエンコーダ／ビデオコーデック１１４に運ばれる。動画処理パイプラインは、テレビや他のディスプレイへの送信のために、Ａ／Ｖ（オーディオ／ビデオ）ポート１４０にデータを出力する。メモリーコントローラー１１０は、ＲＡＭなどの（しかしこれに限定されない）様々な種類のメモリー１１２へのプロセッサーのアクセスを容易にするために、ＧＰＵ１０８に接続される。
【００３４】
[0041]マルチメディアコンソール１００は、好ましくはモジュール１１８上に実装される、Ｉ／Ｏコントローラー１２０、システム管理コントローラー１２２、音声処理部１２３、ネットワークインターフェースコントローラー１２４、第１のＵＳＢホストコントローラー１２６、第２のＵＳＢホストコントローラー１２８及びフロントパネルＩ／Ｏサブアセンブリー１３０を含む。ＵＳＢコントローラー１２６及び１２８は、周辺コントローラー１４２（１）−１４２（２）、ワイヤレスアダプター１４８、及び外部メモリーデバイス１４６（例えば、フラッシュメモリー、外付けＣＤ／ＤＶＤ−ＲＯＭドライブ、取り外し可能な媒体など）のホストとして機能する。ネットワークインターフェース１２４及び／又はワイヤレスアダプター１４８は、ネットワーク（例えば、インターネット、ホームネットワークなど）へのアクセスを提供し、イーサネットカード、モデム、ブルートゥース（登録商標）モジュール、ケーブルモデムなどを含むさまざまな有線又は無線アダプターコンポーネントのうちのいずれであってもよい。
【００３５】
[0042]システムメモリー１４３は、ブートプロセス中にロードされるアプリケーションデータを格納するために提供される。メディアドライブ１４４が提供され、メディアドライブ１４４は、ＤＶＤ／ＣＤドライブ、ハードドライブ、又は他の取り外し可能なメディアドライブなどを含んでもよい。メディアドライブ１４４はマルチメディアコンソール１００の内部にあってもよいし外部にあってもよい。アプリケーションデータは、マルチメディアコンソール１００による実行、再生などのために、メディアドライブ１４４を介してアクセスすることができる。メディアドライブ１４４は、シリアルＡＴＡバスや他の高速接続（例えば、ＩＥＥＥ１３９４）などのバスを介してＩ／Ｏコントローラー１２０に接続される。
【００３６】
[0043]システム管理コントローラー１２２は、マルチメディアコンソール１００の利用可能性を保証することに関連する様々なサービス機能を提供する。音声処理部１２３及び音声コーデック１３２は、高忠実度のステレオ処理を備えた対応する音声処理パイプラインを形成する。音声データは通信リンクを介して音声処理部１２３及びオーディオコーデック１３２の間で運ばれる。音声処理パイプラインは、オーディオ機能を有する外部のオーディオプレーヤーやデバイスによる再生のために、Ａ／Ｖポート１４０にデータを出力する。
【００３７】
[0044]フロントパネルＩ／Ｏアセンブリー１３０は、電源ボタン１５０及び取り出しボタン１５２のほか、マルチメディアコンソール１００の外側表面に露出している任意のＬＥＤ（発光ダイオード）や他のインジケーターの機能をサポートする。システムの電源モジュール１３６はマルチメディアコンソール１００のコンポーネントに電力を供給する。ファン１３８はマルチメディアコンソール１００内の回路を冷却する。
【００３８】
[0045]マルチメディアコンソール１００内のＣＰＵ１０１、ＧＰＵ１０８、メモリーコントローラー１１０、及び様々な他のコンポーネントは、様々なバスアーキテクチャーのうちのいずれかを使用する、シリアル及びパラレルバス、メモリーバス、周辺バス、及びプロセッサー又はローカルバスを含む、１又は複数のバスを介して相互接続される。例として、このようなアーキテクチャーは、周辺コンポーネント相互接続（ＰＣＩ）バス、ＰＣＩ−Ｅｘｐｒｅｓｓバスなどを含んでもよい。
【００３９】
[0046]マルチメディアコンソール１００の電源がオンになると、アプリケーションデータがシステムメモリー１４３からメモリー１１２及び／又はキャッシュ１０２、１０４へとロードされて、ＣＰＵ１０１上で実行することができる。アプリケーションは、マルチメディアコンソール１００上で利用できるさまざまなメディアタイプにナビゲートするときに一貫したユーザーエクスペリエンスを提供する、グラフィカルユーザーインターフェースを提示してもよい。動作において、アプリケーション及び／又はメディアドライブ１４４内に含まれる他のメディアは、マルチメディアコンソール１００に追加の機能を提供するために、メディアドライブ１４４から起動又は再生することができる。
【００４０】
[0047]マルチメディアコンソール１００は、単にテレビや他のディスプレイにシステムを接続することにより、スタンドアロンのシステムとして動作させることができる。このスタンドアロンモードでは、マルチメディアコンソール１００は、１人又は複数のユーザーがシステムとインタラクトしたり、映画を見たり、音楽を聴いたりすることを可能にする。しかし、ネットワークインターフェース１２４又はワイヤレスアダプター１４８を介して利用可能となるブロードバンド接続の統合によって、マルチメディアコンソール１００は、より大規模なネットワークコミュニティの参加者としてさらに動作させることができる。
【００４１】
[0048]マルチメディアコンソール１００の電源がオンになると、ある量のハードウェアリソースが、マルチメディアコンソールのオペレーティングシステムによるシステム使用のために用意される。これらのリソースは、メモリー（例えば、１６ＭＢ）、ＣＰＵ及びＧＰＵのサイクル（例えば、５％）、ネットワーク帯域幅（例えば、８ｋｂｓ）などの予約を含んでもよい。これらのリソースはシステムのブート時に予約されるので、予約されたリソースはアプリケーションからは見えない。
【００４２】
[0049]特に、メモリー予約は、好ましくは、起動カーネル、並行システムアプリケーション及びドライバを格納するのに十分に大きい。ＣＰＵ予約は、予約されたＣＰＵ使用がシステムアプリケーションによって使用されていない場合にアイドルスレッドが未使用のサイクルを消費するよう、好ましくは一定である。
【００４３】
[0050]ＧＰＵの予約に関して、システムアプリケーションによって生成される軽量の（lightweight）メッセージ（例えば、ポップアップ）が、オーバーレイにポップアップをレンダリングするコードをスケジューリングするためにＧＰＵ割り込みを使用することによって、表示される。オーバーレイのために必要なメモリーの量はオーバーレイ領域のサイズに依存し、オーバーレイは好ましくは画面の解像度に対応する。完全なユーザーインターフェースが並行システムアプリケーションによって使用される場合には、アプリケーションの解像度から独立した解像度を使用することが好ましい。スケーラーは、周波数を変更したりテレビの再同期を引き起こす必要性が排除されるように、この解像度を設定するために使用することができる。
【００４４】
[0051]マルチメディアコンソール１００がブートしてシステムリソースが予約された後に、並行システムアプリケーションがシステムの機能を提供するために実行される。システムの機能は、上述した予約システムリソース内で実行されるシステムアプリケーションのセットへとカプセル化される。オペレーティングシステムのカーネルは、ゲームアプリケーションスレッドに対してシステムアプリケーションのスレッドを識別する。システムアプリケーションは、好ましくは、アプリケーションに対して一貫したシステムリソース表示（view）を提供するために、所定の時間や間隔で、ＣＰＵ１０１上で実行するようにスケジューリングされる。スケジューリングは、コンソール上で実行するゲームアプリケーションのキャッシュの中断を最小限にする。
【００４５】
[0052]並行システムアプリケーションが音声を必要とする場合は、音声処理は、時間感度（time sensitivity）に起因して、ゲームアプリケーションに対して非同期的にスケジューリングされる。システムアプリケーションがアクティブなとき、マルチメディアコンソールアプリケーションマネージャー（後述）は、ゲームアプリケーションの音声レベルを制御する（例えば、ミュート、減衰）。
【００４６】
[0053]入力装置（例えば、コントローラー１４２（１）及び１４２（２））はゲームアプリケーションとシステムアプリケーションによって共有される。入力装置は予約されるリソースではなく、各々がデバイスに注目するように、システムアプリケーションとゲームアプリケーションとの間で切り替えられるものである。アプリケーションマネージャーは、好ましくは、ゲームアプリケーションの知識なしに入力ストリームの切り替えを制御し、ドライバーはフォーカススイッチ（focus switch）に関する状態情報を保持する。カメラ２６、２８及びキャプチャーデバイス２０は、コンソール１００のための追加の入力装置を定義してもよい。
【００４７】
[0054]図４Ｂは、ハンドル２１とのユーザーインタラクションを解釈してシステム１０内の１つ又は複数のジェスチャーを解釈するために使用される図１及び３に示すコンピューティング環境１２であってもよいコンピューティング環境２２０の別の例示的な実施例を示す。コンピューティングシステム環境２２０は、適切なコンピューティング環境の一例に過ぎず、本開示の主題の使用又は機能の範囲について何ら限定を示唆するものではない。コンピューティング環境２２０は、例示的な動作環境２２０に示すコンポーネントのうちのいずれか又は組み合わせに関連する依存関係も要件も有するものとして解釈されるべきではない。いくつかの実施例では、様々な図示されたコンピューティング要素は、本発明の特定の側面を例示化するように構成される回路を含んでもよい。例えば、本開示で使用される回路という用語は、ファームウェア又はスイッチによって機能を実行するように構成される専門のハードウェアコンポーネントを含んでもよい。他の例示的な実施例では、回路という用語は、機能を実行するように動作可能なロジックを具体化するソフトウェア命令によって構成される汎用処理装置、メモリーなどを含んでもよい。回路がハードウェアとソフトウェアの組み合わせを含む例示的な実施例では、実施者がロジックを具体化するソースコードを書いてもよいし、ソースコードは汎用処理装置によって処理できる機械読み取り可能なコードへとコンパイルされてもよい。当業者は、最先端の技術がハードウェア、ソフトウェア、又はハードウェア／ソフトウェアの組み合わせの間にほとんど差がないところにまで進化したことを理解できるので、特定の機能を達成するためのハードウェアとソフトウェアの選択は実装者に任される設計上の選択である。より具体的には、当業者は、ソフトウェアプロセスを等価なハードウェア構造に変換することができ、ハードウェア構造が等価なソフトウェアプロセスに変換することができることを理解することができる。したがって、ソフトウェア実施対ハードウェア実施の選択は、設計上の選択の１つであって、実装者に委ねられる。
【００４８】
[0055]図４Ｂにおいて、コンピューティング環境２２０は、通常、様々なコンピューター読み取り可能な媒体を含むコンピューター２４１を含む。コンピューター読み取り可能な媒体は、コンピューター２４１によってアクセスすることができる任意の利用可能な媒体とすることができ、揮発性及び不揮発性の媒体、取り外し可能な及び取り外し不能な媒体の両方を含む。システムメモリー２２２は、ＲＯＭ２２３及びＲＡＭ２６０などの揮発性及び／又は不揮発性メモリーの形式のコンピューター記憶媒体を含む。起動中などにコンピューター２４１内の要素間で情報を転送することを助ける基本ルーチンを含む基本入出力システム２２４（ＢＩＯＳ）は、通常はＲＯＭ２２３に格納される。ＲＡＭ２６０は、通常、すぐにアクセスすることができ及び／又は現在処理装置２５９によって動作されているデータ及び／又はプログラムモジュールを含む。限定ではなく例として、図４Ｂは、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７、及びプログラムデータ２２８を示す。
【００４９】
[0056]コンピューター２４１はまた、他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピューター記憶媒体を含んでもよい。単なる例として、図４Ｂは、取り外し不能な不揮発性磁気媒体に対して読み取り又は書き込みを行うハードディスクドライブ２３８、取り外し可能な不揮発性磁気ディスク２５４に対して読み取り又は書き込みを行う磁気ディスクドライブ２３９、及び、ＣＤ−ＲＯＭや他の光学媒体などの取り外し可能な不揮発性光ディスク２５３に対して読み取り又は書き込みを行う光ディスクドライブ２４０を示す。例示的な動作環境で使用することができる他の取り外し可能な／取り外し不能な、揮発性／不揮発性のコンピューター記憶媒体は、磁気テープカセット、フラッシュメモリーカード、デジタルバーサタイルディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むが、これらに限定されない。ハードディスクドライブ２３８は、通常、インターフェース２３４などの取り外し不能なメモリーインターフェースを介してシステムバス２２１に接続され、磁気ディスクドライブ２３９及び光ディスクドライブ２４０は、通常、インターフェース２３５などの取り外し可能なメモリーインターフェースによってシステムバス２２１に接続される。
【００５０】
[0057]上述の図４Ｂに示されるドライブ及び関連するコンピューター記憶媒体は、コンピューター２４１のためのコンピューター読み取り可能な命令、データ構造、プログラムモジュール、及び他のデータの記憶を提供する。図４Ｂにおいて、例えば、ハードディスクドライブ２３８は、オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６、及びプログラムデータ２５５を格納するものとして示される。これらのコンポーネントが、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７、及びプログラムデータ２２８と同じであってもよいし又は異なっていてもよいことに留意されたい。オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６、及びプログラムデータ２５５は、少なくとも、それらが異なるコピーであることを示すために、ここでは異なる番号を与えられている。ユーザーは、キーボード２５１及び一般にマウス、トラックボール又はタッチパッドと呼ばれるポインティングデバイス２５２などの入力装置を介してコンピューター２４１にコマンド及び情報を入力することができる。他の入力装置（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナーなどを含んでもよい。これら及び他の入力装置は、しばしば、システムバスに結合されたユーザー入力インターフェース２３６を介して処理装置２５９に接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェース及びバス構造によって接続することができる。カメラ２６、２８、及びキャプチャーデバイス２０は、コンソール１００のための追加の入力装置を規定することができる。モニター２４２又は他のタイプの表示装置もまた、ビデオインターフェース２３２などのインターフェースを介してシステムバス２２１に接続される。モニターに加えて、コンピューターはまた、出力周辺インターフェース２３３を介して接続することができるスピーカー２４４、プリンター２４３などの他の周辺出力装置を含んでもよい。
【００５１】
[0058]コンピューター２４１は、リモートコンピューター２４６などの１つ又は複数のリモートコンピューターへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピューター２４６は、パーソナルコンピューター、サーバー、ルーター、ネットワークＰＣ、ピアデバイス又は他の共通ネットワークノードであってもよく、通常、コンピューター２４１に関連して上述した要素の多く又はすべてを含むが、メモリー記憶装置２４７のみが図４Ｂに示されている。図４Ｂに示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）２４５及びワイドエリアネットワーク（ＷＡＮ）２４９を含むが、他のネットワークを含んでもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット及びインターネットにおいて一般的である。
【００５２】
[0059]ＬＡＮネットワーキング環境で使用する場合、コンピューター２４１はネットワークインターフェース又はアダプター２３７を介してＬＡＮ２４５に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピューター２４１は、通常、インターネットなどのＷＡＮ２４９を介した通信を確立するためのモデム２５０又は他の手段を含む。内部にあってよいし外部にあってもよいモデム２５０は、ユーザー入力インターフェース２３６又は他の適切な機構を介してシステムバス２２１に接続することができる。ネットワーク環境において、コンピューター２４１に関連して示したプログラムモジュール又はその一部は、リモートメモリー記憶装置に格納することができる。限定ではなく例として、図４Ｂは、メモリーデバイス２４７に存在するものとして、リモートアプリケーションプログラム２４８を示す。示されるネットワーク接続が例示的なものであって、コンピューター間の通信リンクを確立する他の手段が使用されてもよいことが理解されよう。
【００５３】
[0060]ここで本発明の実施例は図５のフローチャートを参照して説明される。以下の手順は、コンピューティング環境１２に関連付けられるプロセッサー１０１（図４Ａ）又は２９９（図４Ｂ）によって実行されてもよい。ステップ３００において、システムは、キャプチャーデバイス２０の視野に入るユーザーを追跡する。上に示したように、装置２０は、視野内のユーザーを追跡し、その動きの骨格モデルを生成することができる。ステップ３０４において、システムはシステムとのユーザーによる係合を検出する。実施例において、このような係合は、物理的インタラクションゾーンと本明細書において呼ばれる領域へとユーザーが片手又は両手を持ち上げることによって、検出されてもよい。物理的インタラクションゾーンは、ユーザーがＵＩ１９とインタラクトする可能性が最も高い、ユーザー１８の物理空間内の領域である。
【００５４】
[0061]しかし、実施例では、システムは、ユーザーがシステム１０と係合しているかどうかを決定するときに様々なファクターを分析することができる。一緒にとられるファクターは信頼性レベルをもたらしてもよく、信頼性レベルがある所定の閾値を超える場合にシステムが係合を検出する。これらのファクターは、ユーザーの体の動き（手のみに対して全身を動かすと信頼性が減少する）、ユーザーの体の向き（カメラに向いていると信頼性が増す）、どの手が物理的インタラクションゾーンにあるか（ユーザーの側面上の手がカメラに向いていると信頼性が増す）、並びに、どのように及びいつ、ユーザーが最後に解放するか（時間が増加すると信頼性が減少する）を含んでもよい。この信頼性レベルは時間の経過とともに蓄積されてもよく、信頼性レベルの合計がある確立されたしきい値を超える場合、システムは係合を検出する。
【００５５】
[0062]ユーザーが係合しようとするが信頼性がまだこのしきい値に達していない間の短い期間において、リアルタイムのフィードバック（例えば、徐々に現れるカーソル）が、システムがユーザーを認識しているがまだジェスチャーコントロールを許可していないことを示すために提供することができる。
【００５６】
[0063]係合が確立された後、システムは、ステップ３０６において、目標のＵＩオブジェクトへのユーザーの追跡を検出する。特に、システムは、ユーザーが目標のＵＩオブジェクトを指していることを検知する。実施例のＵＩオブジェクトはハンドル２１であってもよい。システムは、目標のハンドル２１に対してカーソル２５を中心に置くように適切な指示動作を達成するためにユーザーに依存してもよい。さらなる実施例では、ハンドル２１は、実質的に引力を有してもよい。したがって、ハンドル２１に対するカーソル２５の近接性を含むファクターに基づいて、コンピューティング環境は、ハンドル２１へとカーソル２５を引き寄せて、したがってカーソル２５をハンドル２１の右に配置する際にユーザーが必要とする正確さに関して誤りの許容範囲を提供することができる。代替的な実施例において引力はカーソルの位置に影響を与えなくてもよい。代わりに、カーソルが以下に説明する１つ又は複数の基準を満たしている場合に、カーソルは、それがハンドルの上にホバリングしていたかのように、特性を示してもよい。たとえば、ハンドル及び／又はカーソルの外観が変化してもよく、視覚的アフォーダンス及びフィードバックがユーザーに対して表示されて、自分がハンドルとどのようにインタラクトすることができるかをユーザーに示してもよい。
【００５７】
[0064]図６は引力がハンドル２１のまわりでシミュレートされる実施例を示す。このような実施例では、ステップ３２４において、システムはユーザーが目標のハンドルへと追跡していることを検出する。ステップ３２６において、システムは、カーソル２５が、ハンドル２１へと引っ張られてハンドル２１上の中心に置かれる基準を満たしているかどうかを決定する。カーソルがステップ３２６の基準を満たしている場合、ステップ３３０において、目標オブジェクト上に中心に置かれ、容易に（lightly）保持することができる（容易に保持されるとは、カーソルがハンドル上で中心に置かれていない場合よりも、カーソルを動かすためにより大きな（significant）手の動きが必要とされることを意味する）。その時点で、ハンドル及び／又はカーソルの外観はまた、ハンドルの活性化を示すために変化してもよく、視覚的アフォーダンス及びフィードバックがユーザーに対して表示されてもよい。また、上述したように、カーソルの位置は変化しないままでもよいが、ハンドルが活性化して、視覚的アフォーダンス及びフィードバックが提供されてもよい。
【００５８】
[0065]カーソル２５がハンドル２１の引力で捕獲されるかどうかについてステップ３２６において適用される基準は、ハンドル２１に対するカーソル２５の近接性を含んでもよく、その結果、近ければ近いほど、ハンドルへと引っ張られやすくなる。当該基準は、ユーザーの体に対するユーザーの指し示す手の奥行きの変化を含んでもよく、その結果、動きがキャプチャーデバイス２０に近いほど、カーソルがハンドルへと引っ張られる可能性が高くなる。さらに当該基準はハンドルの近くで費やした時間を含んでもよく、ハンドルの近くでより多くの時間が費やされるほど、カーソルがハンドルへと引っ張られる可能性が高くなる。他の基準がさらなる実施例において適用されてもよい。実施例において、カーソル２５は、ハンドルに引っ張られるときにその形状を維持する。さらなる実施例では、カーソル２５はハンドルへと引っ張られても引っ張られなくてもよいが、カーソルは形状を変形又は変化させて、ハンドルとの係合を示してもよい。
【００５９】
[0066]図５に戻ると、ユーザーが一旦目標のハンドルを追跡すると、システムはステップ３０８において、ユーザーが目標のハンドルにくっつくことを検出する。上述のように、カーソルがハンドルの上に配置される場合、コンピューティング環境１２は、ユーザーがz軸に沿って自分の手をより近くへ動かすときにオブジェクトへの付着を検知してもよい。代替的に又はさらに、ユーザーは取り付け動作（attaching motion）（開いた位置から閉じた位置へ指を動かす）を実行してもよく、そのジェスチャーは、カーソルが中央に配置されるオブジェクトにユーザーがくっつくものとして解釈される。ハンドルと係合するためのユーザーの要望を感知するさらなる方法は、身体活動（physical activity）内の具体的なホットスポットを規定することを含み、ユーザーは、ハンドルにくっついて所定の期間の間オブジェクト上を単にホバリングするように自分の手を置くことを知っている。ユーザーがハンドルに係合することを望むことを検知する他の方法はさらなる実施例において提供することができる。
【００６０】
[0067]ユーザーがハンドルに一旦くっつくと（又はその代わりに、カーソルが近くにあると）、システムは、ステップ３１０において、そのハンドル２１のアフォーダンスを表示してもよい。ハンドル２１は多種多様なアフォーダンスを含んでもよく、いくつかが図１、８及び９に示される。図１において、アフォーダンスは、ユーザーがハンドルをつかみ、（図１の観点から）左へスライドさせることができることを示すレール２７である。これは、ハンドル２１が一旦つかまれるとユーザーが自分の手を左に動かすことによって達成される。ハンドルが一旦つかまれると、所与の手の動きに対してハンドルが移動する長さは、ディスプレイ上の他のオブジェクトを動かすことに関して同じ割合となってもよいし、より鈍感になってもよいし（すなわち、ハンドルは所与の手の動きに対してより小さく動く）より敏感になってもよい（すなわち、ハンドルは所与の手の動きに対してより大きく動く）。
【００６１】
[0068]レール２７は、一般に、一旦ユーザーがハンドルにくっつくか又はほぼくっつくと所与のハンドル２１に関連付けて表示されるグラフィカルオブジェクトであり、そのハンドルを操作する方法をユーザーに示す。当該レールは、ハンドルに対して行うことができる動きを明確にする矢印を有してもよい。実施において、レール２７は、関連付けられるハンドルが水平方向及び／又は垂直方向に操作することができることを示すように、水平及び／又は垂直であってもよい。さらなる例においてはレール２７は水平又は垂直である必要はない。たとえば、レールは、ユーザーがx−y平面内で斜めに又は全面的にハンドルを移動できることを示してもよい。レール２７は、さらに、ハンドルが、例えば円を描くように、非直線的な方向に操作することができることを示してもよい。
【００６２】
[0069]図８は、後にユーザーが画面の上部近くでハンドル２１にくっついたときにおける図２の画面の説明を示す。このように、レール２７ａ及び２７ｂがユーザーに対して表示される。レール２７ａは、ユーザーがハンドルを上下に移動することができることを示す。ハンドル２１についてのそのような操作に関連付けられるアクションは、アクション領域２３におけるテキストのメニューを上下にスクロールすることである。レール２７ｂは、ユーザーがハンドルを（図８の視点から）右に移動することができることを示す。ハンドル２１についてのそのような操作に関連付けられるアクションは、ハンドルがその後に配置されるメニュー項目のサブトピックへとアクション領域２３内でスクロールすることである。一旦サブトピックへとスクロールされると、新たな水平のレールが現れて、ユーザーが（図８の視点から）左にハンドルを移動させて次の高位のメニューに戻ることができることをユーザーに示してもよい。
【００６３】
[0070]図９は、後にユーザーが画面の下部付近でハンドル２１ａ、２１ｂにくっついたときにおける図２の画面の説明を示す。このように、レール２７ｃ及び２７ｄがユーザーに対して表示される。スロットのコーナーにおいて一緒に表示されるハンドル２１ａ、２１ｂ及びレール２７ｃ、２７dは、ユーザーが２つの手で（それぞれのハンドルに対して1つの手）そのスロットを選択することができることを示す。図９はさらに、ＵＩ１９のいずれかの側に向かうハンドル２１ｃ及び２１ｄを示す。ハンドル２１ｃの係合及び（図９の視点から）左への動きにより、スロット２９を介した左へのスクロールのアクションが達成される。ハンドル２１ｄの係合及び（図９の視点から）右への動きにより、スロット２９を介した右へのスクロールのアクションが達成される。
【００６４】
[0071]図５のフローチャートに戻ると、ユーザーがハンドルにくっついてアフォーダンスを示された後、ユーザーは、ステップ３１１においてハンドルを操作したり、ステップ３１４においてオブジェクトを解放すると決定したりしてもよい。ユーザーがステップ３１１においてオブジェクトを操作することを選択した場合、操作がステップ３１２においてで実行される。ハンドル２１のいくつかの操作及び関連するアクションは、図８及び９に関して上で説明された。しかし、一般に、ハンドル２１の操作は、x軸及び／又はy軸に沿ってハンドルをスライドさせること、z軸に沿ってハンドルを引くこと、円を描くようにハンドルを回転させること、又はx−y平面内のジョイスティックとしてハンドルを使用することを含んでもよい。特定のアクションを実行するための特定のハンドルが以下で説明される。
【００６５】
[0072]ここでハンドル２１の操作が図７のフローチャートに関してより詳細に説明される。ステップ３３８において、一旦ユーザーが特定のハンドルにくっつくと、システムは、ユーザーの動きを探す。ステップ３３８において動きが検出されると、システムはステップ３４０において、ユーザーが実行する動作と一致する事前に定義されたジェスチャーを探す。そのような所定のジェスチャーがハンドル２１によって許可されると分かると、そのアクションは、ステップ３４６において、関連付けられるアクション領域２３に対して実行される。ハンドルを使用する利点の1つは、予め定義されたあるジェスチャーのみがそのハンドルに適用できるということである。したがって、以下で説明するようにコンピューティング環境１２に知られている様々なジェスチャーが存在し得るが、コンピューティング環境１２が気にする必要のある所定のジェスチャーの数は選択される特定のハンドル２１に依存して狭められる。
【００６６】
[0073]当業者であれば、ユーザーの位置及び／又は動きが所定のジェスチャーに一致するかどうかを決定するためにユーザーの位置及び動きを分析する様々な方法を理解するであろう。そのような方法は、例えば、上述した本願に組み込まれる出願第１２／４７５，３０８号のほか、参照によりその全体が本願に組み込まれる「Gesture-Controlled Interfaces For Self-Service Machines And Other Applications」と題する米国特許出願公開公報第２００９／００７４２４８号に開示される。しかし、一般に、ユーザーの位置及び動きはキャプチャーデバイス２０によって検出される。このデータから、体の各部分の位置／動きに関連するさまざまなパラメーターを収集して、コンピューティング環境１２内のジェスチャー認識エンジンに転送することができる。ジェスチャー認識エンジン１９０は、しきい値の信頼性レベルより高い一致があるかどうかを決定するために、格納されているジェスチャーのライブラリーに対して、位置／動きのパラメーターを比較する。そのような一致がある場合、ユーザーはその一致したジェスチャーを実行したとされ、関連付けられるアクションがとられる。
【００６７】
[0074]ジェスチャー認識エンジンが調べる必要のある格納されているジェスチャーの数を大幅に減らすことに加えて、オブジェクトに係合するためにハンドルを使用することはまた、所与のジェスチャーが実行されたかどうかについての誤検出及び検出漏れのリスクを大幅に低減する。特に、所与のハンドル２１に対して実行され得る可能性のあるジェスチャーの組を制限することによって、誤って識別されたかもしれない他のジェスチャーは検討されない。
【００６８】
[0075]上述のように、ハンドル２１は、ハンドルを係合することができる方法を定義するいくつかのグループのうちの１つに属するものとして広く分類することができる。つまり、ハンドルは、片手ハンドル、両手ハンドル（dual-handed handle）又は両手ペアのハンドル（two-handed paired handle）のいずれかであってもよい。しかし、ハンドル２１は、それらが関連するアクション領域２３に対して又は関連するアクション領域２３によって実行させることができる特定の種類のアクションへとさらに分けることができる。つまり、特定のハンドルは、アクション領域が実行できるアクション及びアクション領域に対して実行できるアクションに基づいて、特定のアクション領域に割り当てられる。したがって、例えば、アクション領域がスクロールアップ、スクロールダウン又は両側にスクロールすることを意図される場合、そのアクション領域には、それらのアクション、すなわち、ユーザーがそのハンドルにくっついている間にユーザーの手を上、下又は横へと動かすことを実行するジェスチャーを具体的に認識するハンドルが割り当てられる。以下は、所与のハンドルについて認識されるジェスチャーのセットに含まれ得るいくつかのジェスチャーである。以下のものは、所与のハンドルに適用することができるすべての可能なジェスチャーについての排他的なリストとして意図されるものではない。
【００６９】
[0076]ほとんどの場合、アクションがアクション領域２３に対して又はアクション領域２３によって実行されるように必要とされるジェスチャーは、ハンドルをそのレールのうちの１つに沿って移動させることにすぎない。これを行うためのユーザーの動きは、単に、ユーザーがハンドルにくっついている間、レールの方向に沿って自分の手を動かすことである。しかし、ハンドルをそのレールに沿ってスライドさせることを単に含むのではない他のジェスチャーが、所与のハンドルに対して認識され得ることが考えられる。以下には、ハンドルに関連付けられるアクション項目に対して又はアクション項目によって実行されるアクションを記述する多くのハンドルの名が記載される。
・クランクハンドル−ユーザーは、クランクハンドルと係合し、それが適用される特定のアクション領域に依存して、３つの平面（ｘ−ｙ、ｙ−ｚ及びｘ−ｚ）のいずれかにおいて円形のジェスチャーを実行することができる。このハンドルは、スロット又はリストのナビゲーションに使用することができ、円上の点にオブジェクトをマッピングすることにより、ファイングレイン制御（fine grain control）や加速制御のために調整することができる。
・スライダーハンドル（１方向及び双方向）−関連付けられるレールによって示されるように、１つ又は２つの方向に操作することができる単一の次元のハンドル。図１に示すバックハンドルは単一方向のスライダーハンドルの例であるが、例えば図９に示すリストスクロールスライダーハンドルは双方向のスライダーハンドルの例である。
・仮想ジョイスティックハンドル−コントローラーＤパッド（D-pad）の状態を模倣することができ、ＵＩナビゲーションに使用することができる、多次元、多方向のハンドル。ユーザーは、１つの状態から次の状態に遷移する前に中間の中心点を通過してもよいししなくてもよい。
・ドロップダウンメニューハンドル−係合されているときに追加のＵＩを見せる、部分的に画面上にあるハンドル。これは、たとえば、選択できる項目のクイック起動パネルを提示するのに使用することができる。
・コンテキストメニューハンドル（マーキングメニューハンドルとも呼ばれる）−アクション領域内でオブジェクトと係合して３つの方向（上、左、又は右）のいずれかに引くことによって提示されるハンドル。以下に説明するように、ユーザーは下方向に動くことによって、このハンドルから離れることができる。
・ボタンハンドル−アクションを実行するためにこのハンドルに係合することによってハンドルを選択することをユーザーに単に要求する、オブジェクトに取り付けられた簡易なハンドル。その後のレールやユーザーの操作はインタラクションを完了するのに必要ではない。
・ドラッグアンドドロップ（自由形式）ハンドル−画面上及び３Ｄ空間内のハンドルの位置を、新たな位置に対して見えるハンドルを係合して操作することによって変更することができるようハンドル。
・ピール（バック及びスロット）ハンドル−ＵＩ１９のオブジェクト又は背景シーンの一部とすることができる統合されたハンドル。このハンドルの直接的なインタラクション及び操作によって、以前のシーンや表示を見せたり（バックナビゲーションの場合）、スロットなどのオブジェクトの追加データを見せたりすることができる。
・両手引き離し（two-handed pull apart）ハンドル−両手が係合される必要がある選択のための機構。ユーザーがいずれかのハンドルと係合した後、他方の手に係合するようにユーザーに警告するためにフィードバックが提供される。一旦両手が係合されると、両方のレールの端に達するまで両方の手を引き離すことによってジェスチャーが達成される。
・両手フリップ（two-handed flip）ハンドル−これもまた、両手が係合される必要があるハンドルであるが、互いに向かって両手を動かすことによってジェスチャーが実行される。スロットの視覚的なレール及びアナログ動作によって、ユーザーに、自身がジェスチャーの達成にどれだけ近づいているかを通知する。
・スクラブハンドル−係合された後に項目のリストの直接的な操作を可能にするハンドル。これは、より少ない数のコンテンツ項目についてのよりきめ細かい操作を可能にする。
・ギアシフトハンドル−ギアシフトハンドルが、（文字「Ｅ」の形状のように）主要な方向に対して各々が垂直である複数の並列な二次的な方向をサポートすることを意図されることを除いて、仮想ジョイスティックに類似した、多次元、多方向のハンドル。
・ラチェット（ratchet）ハンドル−解放することなくトラックに沿った繰り返し動作を可能にすることを除いて、スライダーに類似したハンドル。
【００７０】
上記の開示を考えると、当業者であれば、アクション領域のオブジェクトや背景に関して追加のアクションを実行するために使用することができるさらなるハンドルがあることを理解するであろう。
【００７１】
[0077]再び図５を参照すると、ユーザーが所与のアクションを達成するためにハンドルを操作した後（又は、ステップ３１１においてユーザーがオブジェクトを操作しないと決定した場合）、ユーザーはステップ３１４においてハンドルを解放することができる。実施例において、ハンドルはジェスチャーの完了の際に自動的に解放されてもよい。オブジェクトの解放は、代替的に、システムに対するユーザーによるある手動のアクションによって指示されてもよい。このような手動のアクションは、z軸に沿ってさらに遠くにユーザーの手を動かすこと、物理的な双方向性（インタラクティビティ）ゾーン内の特定のホットスポットへ又はその外へ移動すること、ユーザーの手を特定の距離動かしたりサポートされていない方向に動かしたりすること、又は他のユーザーの動作を含む。
【００７２】
[0078]実施例において、シミュレートされた引力は、シミュレートされた引力を有していない他のオブジェクトを解放するために必要とされるよりも大きな動作を、ハンドルから離すためにユーザーに実行させてもよい。解放が検出されない場合、システムはステップ３１２において再びさらなるオブジェクトの操作を探す。
【００７３】
[0079]ユーザーがステップ３１４においてオブジェクトを解放する場合、ステップ３１６において、システムは、ユーザーが例えば手を降ろすことによるなどしてインタラクションから離れているかどうかを見る。そのような解放が検出されない場合、システムはステップ３０６に戻って、オブジェクト（以前にくっつけられたオブジェクトと同一であってもよいし異なっていてもよい）に対する追跡を探す。
[0080]ステップ３１６においてユーザーが離れる場合、ステップ３２０においてシステムはユーザーが視野から離れるかどうかを確認する。視野から離れない場合、システムはステップ３０４に戻ってさらにユーザーの係合を検出する。一方、ユーザーが視界を離れる場合、システムは、ステップ３００に戻って、ユーザーが再び視野に入るときを監視する。
【００７４】
[0081]実施例において、ハンドル２１の外観は、ユーザーが図５のフローチャートのどこにいるかに依存して変化してもよい。視界にユーザーがいない間、いずれのハンドルも表示されなくてもよい。一旦ユーザーが視界において検出されると、ハンドルが表示されてもよい。ハンドルは最初にＵＩ１９のどの位置にハンドルがあるかについてユーザーに警告するために光で表示されてもよい。その後、ハンドルはユーザーがそれに近づくまで中立のままであってもよく、その時点において、ハンドルは接近について認識したことを示すために光ってもよい。その後、一旦ユーザーがハンドル上でホバリングするとハンドルの外観は変化してもよく、一旦ユーザーがハンドルにくっつこうと試みると再び外観が変化してもよく、ユーザーがハンドルにくっついた後に再び変化してもよく、一旦ユーザーがハンドルを操作すると再び変化してもよい。これらの変化の一部又はすべてが、さらなる実施例において省略されてもよい。
【００７５】
[0082]上記の説明を考えると、本発明は、人間とコンピューターのインターフェースシステムにおいて画面上のオブジェクト及びアクション領域との容易なインタラクションを可能にするシステムを提供する。ハンドルによって提供される明示的な係合ポイント、及び適用され得るジェスチャーを狭めることにより、誤検出及び検出漏れの少ない信頼性の高いシステムが提供される。システムはまた使いやすいものとなる。何にくっつくことができるかを示し、ハンドルにくっついた際にハンドルによってどのように何をすることができるかを、明確なアフォーダンスが示す。インタラクションは記憶しやすく、実行するのが容易である。インタラクションはまた、システムの一部を使用する方法を学ぶことによってシステム全体の使用を可能にするように、一貫性している。
【００７６】
[0083]本発明のシステムの上記の詳細な説明は、例示及び説明の目的のために提示された。完全であることや開示された正確な形式に本発明のシステムを限定することは意図されていない。多くの変更及び変形が上記の教示に照らして可能である。説明した実施例は、本発明の原理及び実際の応用をよく説明し、それによって当業者が様々な実施例において及び考えられる特定の使用に適するような様々な修正をして本発明のシステムをよく利用することを可能にするために、選択されたものである。本発明のシステムの範囲は添付の特許請求の範囲によって規定されることが意図される。
【図１】
2013519175.tif 000003
【図２】
2013519175.tif 000004
【図３】
2013519175.tif 000005
【図４Ａ】
2013519175.tif 000006
【図４Ｂ】
2013519175.tif 000007
【図５】
2013519175.tif 000008
【図６】
2013519175.tif 000009
【図７】
2013519175.tif 000010
【図８】
2013519175.tif 000011
【図９】
2013519175.tif 000012
【国際調査報告】
2013519175.tif 000013
2013519175.tif 000014