(58)【調査した分野】(Int.Cl.,DB名)
表示された物体の制御のためにユーザー行為を追跡するソフトウェアを実行するコンピューター実装システムにおいて、前記システムのユーザー行為を追跡する能力についてユーザーにフィードバックを供給する方法であって、
キャプチャー・システムによって、キャプチャー・エリアにおいてユーザーを検出するステップであって、前記ユーザーが、前記システム上の第1のゲームアプリケーションと相互作用し、前記第1のゲームアプリケーションが、前記システム上の少なくとも2つのゲームアプリケーションのうちの1つであり、前記少なくとも2つのゲームアプリケーションの各々が、異なったインタラクティブ表示オブジェクトを有し、各アプリケーションが、ゲームのプレイ中にインタラクティブ表示オブジェクトを用いてアプリケーションインターフェースを表示するように構成され、各アプリケーションが、少なくとも1つの身体特徴のユーザー動きに応答して、インタラクティブ表示オブジェクトを操作して、ゲームのプレイに参加するステップと、
前記キャプチャー・システムによって生成されたデーターに基づいて、前記ユーザーの少なくとも1つの身体特徴を追跡するステップと、
前記第1のゲームアプリケーションを実行している間であって、ゲームのプレイ中にユーザー追跡規準が満たされていないことに応答して、フィードバック応答を決定するステップであって、前記フィードバック応答が、前記アプリケーションのコンテキストにおいてレンダリングされ、前記アプリケーション・コンテキストにおいて前記フィードバック応答を生成して、前記キャプチャー・エリアの中心に向かう前記少なくとも1つの身体特徴のユーザー動きを誘起する、ステップと、
ゲームのプレイ中にインタラクティブ表示オブジェクトのレンダリングを決定して、前記キャプチャー・エリアの中心に向かう前記少なくとも1つの身体部分のユーザー動きを誘起するステップと、
ゲームのプレイ中にインタラクティブ表示オブジェクトをレンダリングして、ゲームのプレイ中にインタラクティブ表示オブジェクトと相互作用するための、ユーザによる動作が、前記ユーザの少なくとも1つの身体部分を、前記キャプチャー・エリアの中央に向かう方向に位置変更させるステップと、
を含み、
前記フィードバック応答が、前記ユーザーの年齢を含む前記ユーザーのプロファイルに基づいて決定され、前記フィードバック応答が年齢に適した応答となるようにする、
方法。
表示された物体の制御のためにユーザー行為を追跡するソフトウェアを実行するコンピューター実装システムにおいて、前記システムのユーザー行為を追跡する能力についてユーザーにフィードバックを供給する方法であって、
キャプチャー・システムによって、キャプチャー・エリアにおいてユーザーを検出するステップであって、前記ユーザーが、前記システム上の第1のゲームアプリケーションと相互作用し、
前記第1のゲームアプリケーションが、前記システム上の少なくとも2つのゲームアプリケーションのうちの1つであり、前記少なくとも2つのゲームアプリケーションの各々が、異なったインタラクティブ表示オブジェクトを有し、各アプリケーションが、ゲームのプレイ中にインタラクティブ表示オブジェクトを用いてアプリケーションインターフェースを表示するように構成され、各アプリケーションが、少なくとも1つの身体特徴のユーザー動きに応答して、
インタラクティブ表示オブジェクトを操作して、ゲームのプレイに参加するステップと、
前記キャプチャー・システムによって生成されたデーターに基づいて、前記ユーザーの少なくとも1つの身体特徴を追跡するステップと、
前記第1のゲームアプリケーションを実行している間であって、ゲームのプレイ中にユーザー追跡規準が満たされていないことに応答して、フィードバック応答を決定するステップであって、前記フィードバック応答が、前記アプリケーションのコンテキストにおいてレンダリングされ、前記アプリケーションのコンテキストにおいて前記フィードバック応答を生成して、前記キャプチャー・エリアの中心に向かう前記少なくとも1つの身体特徴のユーザー動きを誘起する、ステップと、
ゲームのプレイ中にインタラクティブ表示オブジェクトのレンダリングを決定して、前記キャプチャー・エリアの中心に向かう前記少なくとも1つの身体部分のユーザー動きを誘起するステップと、
ゲームのプレイ中にインタラクティブ表示オブジェクトをレンダリングして、ゲームのプレイ中にインタラクティブ表示オブジェクトと相互作用するための、ユーザによる動作が、前記ユーザの少なくとも1つの身体部分を、前記キャプチャー・エリアの中央に向かう方向に位置変更させるステップと、
を含み、
前記ユーザーにフィードバック応答を出力するステップが、ユーザー追跡規準が満たされていないことを示す音声インディケーターを前記ユーザーに出力するステップを含む、
方法。
表示された物体の制御のためにユーザー行為を追跡するソフトウェアを実行するコンピューター実装システムにおいて、前記システムのユーザー行為を追跡する能力についてユーザーにフィードバックを供給する方法であって、
キャプチャー・システムによって、キャプチャー・エリアにおいてユーザーを検出するステップであって、前記ユーザーが、前記システム上の第1のゲームアプリケーションと相互作用し、
前記第1のゲームアプリケーションが、前記システム上の少なくとも2つのゲームアプリケーションのうちの1つであり、前記少なくとも2つのゲームアプリケーションの各々が、異なったインタラクティブ表示オブジェクトを有し、各アプリケーションが、ゲームのプレイ中にインタラクティブ表示オブジェクトを用いてアプリケーションインターフェースを表示するように構成され、各アプリケーションが、少なくとも1つの身体特徴のユーザー動きに応答して、
インタラクティブ表示オブジェクトを操作して、ゲームのプレイに参加するステップと、
前記キャプチャー・システムによって生成されたデーターに基づいて、前記ユーザーの少なくとも1つの身体特徴を追跡するステップと、
前記第1のゲームアプリケーションを実行している間であって、ゲームのプレイ中にユーザー追跡規準が満たされていないことに応答して、フィードバック応答を決定するステップであって、前記フィードバック応答が、前記アプリケーションのコンテキストにおいてレンダリングされ、前記アプリケーションのコンテキストにおいて前記フィードバック応答を生成して、前記キャプチャー・エリアの中心に向かう前記少なくとも1つの身体特徴のユーザー動きを誘起する、ステップと、
ゲームのプレイ中にインタラクティブ表示オブジェクトのレンダリングを決定して、前記キャプチャー・エリアの中心に向かう前記少なくとも1つの身体部分のユーザー動きを誘起するステップと、
ゲームのプレイ中にインタラクティブ表示オブジェクトをレンダリングして、ゲームのプレイ中にインタラクティブ表示オブジェクトと相互作用するための、ユーザによる動作が、前記ユーザの少なくとも1つの身体部分を、前記キャプチャー・エリアの中央に向かう方向に位置変更させるステップと、
を含み、
更に、ユーザー追跡規準が、
音量、および
音声の区別可能性、
の内の1つから成る音声要因である、区別可能性要因に基づく、
方法。
請求項1から3のいずれかに記載の方法において、前記表示される物体がアバターであり、前記ユーザーにフィードバック応答を出力するステップが、前記ユーザーを現すアバターの表示されている外観を変化させるステップを含む、方法。
請求項1から3のいずれかに記載の方法において、前記ユーザーにフィードバック応答を出力するステップが、ユーザー追跡規準が満たされていないことを示す視覚インディケーターを前記ユーザーに表示するステップを含む、方法。
請求項1から3のいずれかに記載の方法において、前記ユーザーにフィードバック応答を出力するステップが、更に、前記ユーザーの表示されているビューの視覚的特性を変化させるステップを含む、方法。
請求項8記載の方法において、フィードバック応答を前記ユーザーに出力するステップが、更に、前記ユーザーの前記身体がキャプチャー・デバイスの視野の中心に向かって動くにつれ、前記表示されたビューの視覚的特性をぼかしたビューから鮮明なビューへレンダリングすることを含む、方法。
【発明を実施するための形態】
【0006】
[0019] コンピューター・システムにおいて実行アプリケーションの制御のために、ユーザー行為を追跡する実行アプリケーションの能力についてのフィードバックをユーザーに供給する技術を紹介する。ユーザーを追跡する能力に影響を及ぼす可能性がある区別可能性要因(distinguishability factor)の一例は、表示物体を制御するユーザーの身体部分が画像キャプチャー・システムの視野から少なくとも部分的に出ているときである。他の要因には、照明効果のような周囲要因、ある種のタイプの障害物、ならびに音声(例えば、音節または単語)の大きさ(loudness)および区別可能性というような音声的要因が含まれる。
【0007】
[0020] 実施形態の中には、本技術が、ユーザーに対して明示的な提案となるフィードバック応答を提示する場合もある。他の実施形態では、フィードバックは、実行アプリケーションのコンテキスト内で供給されることによって、分かり難く(subtle)なるかまたは暗示的になる。例えば、ユーザーがキャプチャー・システムの視野の境界に近過ぎるとき、場面内において恐ろしい怪物(scary monster)のようなオブジェクト(object)がその境界に近いディスプレイ側に現れる。ユーザーは、この怪物から逃げるために、視野の境界から離れて、視野の中心に向かって動く気にさせられる。
【0008】
[0021] フィードバック応答の選択を決定することができる要因の例については、以下で更に論ずる。
[0022]
図1Aは、ユーザー・フィードバックを供給する技術の実施形態が動作することができる、ターゲット認識、分析、および追跡システム10の実施形態例を、ゲームをプレーするユーザー18と共に示す。この例では、ターゲット認識、分析、および追跡システム10は、人間の自然環境において、対象者に特殊な検知デバイスを取り付けることなく、人間を認識し、彼らを一意に識別し、三次元空間において彼らを追跡する。しかしながら、本技術は、 ユーザーがセンサを着用するセンサ・ベース・システムというような、他のユーザー追跡メカニズムにも適用可能である。
【0009】
[0023] この実施形態例によれば、ターゲットは、人間のターゲット(例えば、ユーザー18)、物体を持った人間のターゲット、2人以上の人間のターゲット等とすることができ、このターゲットを走査して、スケルトン・モデル、メッシュ人間モデル、またはその任意の他の適した表現を生成することができる。このモデルを追跡すれば、ターゲットの物理的動き(movement)または運動(motion)がリアルタイムのユーザー・インターフェースとして作用し、アプリケーションのパラメータを調節および/または制御するというようなことが可能になる。更に、このモデルをアプリケーションに対してモデルとして提示され、リアルタイムでアプリケーションに伝えることができる。例えば、ユーザーの動きを追跡し、電子ロール・プレーイング・ゲームにおける画面上のキャラクターまたはアバターを動かすために、追跡したユーザーの動きを使用することができる。
【0010】
[0024] モデルがマルチ・ポイント・スケルトン・モデルである一例では、ターゲット認識、分析、および追跡システム10は、人間の筋肉−骨格系の自然な力学および能力を理解することによって、効率的に人間およびその自然な動きを追跡する。また、システム例10は、複数の人間がその四肢および身体の自然な動きによって本システムと対話処理できるようにするために、個人を一意に認識する。
【0011】
[0025] ユーザーの動きを追跡して、アバターを動かすことができる。アバターとは、通例人であるユーザーを表す、コンピューター生成イメージとすることができる。アバターは、ユーザーが実際に見える様子を高度に表すユーザーのイメージを描写することができ、あるいはユーザーに対する類似度が変化するか全く変化しないキャラクター(例えば、人間、架空の物体、動物、動く物体)であってもよい。
【0012】
[0026] 具体的には、
図1Aは、ターゲット認識、分析、および追跡システム10の構成の実施形態例を、ボクシング・ゲームをプレーしているユーザー18と共に示す。この例では、コンピューター12において実行するソフトウェアが、通信可能に結合されているカメラ・システム20およびオーディオビジュアル・ディスプレイ・ユニット16の他のコンピューター・システムにおけるソフトウェアを制御するまたはこのソフトウェアと相互作用を行い、このオーディオビジュアル・ディスプレイ・ユニット16が、取り込まれた画像データーに基づいてユーザー18の動きを追跡し、これらを分析し、ユーザーの動きが直接彼の関連のあるアバターの動作を直接リアルタイムで制御する命令を得る。つまり、この例では、ユーザー18は、彼の身体を動かして、ボクシング・ゲームにおいて、彼の対戦相手のアバター22に対して表示画面14上の彼のアバター24を制御することができる。
【0013】
[0027] オーディオビジュアル・ディスプレイ・システム16は、 高品位テレビジョン(HDTV)のような高度ディスプレイ・システムとすることができる。他の実施形態では、ディスプレイは、解像度がそれよりも低いディスプレイであってもよく、その例には、テレビジョン、コンピューター・モニター、または移動体デバイスのディスプレイが含まれる。オーディオビジュアル・システム16は、オーディオビジュアル信号を計算システム12から通信インターフェース(例えば、S−ビデオ・ケーブル、同軸ケーブル、HDMIケーブル、DVIケーブル、VGAケーブル)を介して受信することができ、次いでこのオーディオビジュアル信号と関連のあるゲームまたはアプリケーションのビジュアルおよび/またはオーディオをユーザー18に出力することができる。
【0014】
[0028] ジェスチャーは動きまたは姿勢を含み、実行アプリケーションを制御するためのユーザー入力として作用する。ユーザーは、彼の身体を動かすことによって、ジェスチャーを行うことができる。例えば、ユーザーを画像データーに取り込むことができる。ユーザーのジェスチャーを識別し、アプリケーションに対する制御または実行すべき動作としての意味を求めて解析することができる。例えば、ユーザー18は
図1Aのボクシング・ゲームにおいてジャブを出す。このゲーム・アプリケーションは、それをボクシングの試合において表し、それがアバター22と接触するか否か判断し、そうである場合、ユーザーの採点を増やす。ジェスチャーは、胴体の前で腕を組んだままにするというような静止姿勢であってもよく、または1つ以上の動きであってもよい。更に、ジェスチャーは、両手を一緒にたたくというような、1つよりも多い身体部分を含むのでもよい。
【0015】
[0029] 例えば、ターゲット認識、分析、および追跡システム10は、キャプチャー・エリア30においてユーザー18のパンチを認識し分析するために使用して、このパンチをジェスチャーとして、この場合、ゲーム空間において彼のプレーヤ・アバター24が行うパンチのゲーム制御として解釈することもできる。また、ユーザー18による他のジェスチャーも、軽く叩く、行ったり来たりする、あちこち動き回る、防御する、ジャブを出す、または種々の異なる力のパンチを出す制御するというように、他の制御または動作として解釈することができる。ユーザー18のパンチおよびジャブを追跡することによって、ボクシング・ゲームのソフトウェア・アプリケーションは、彼のアバター24のスコアを判断し、どちらのアバター(22または24)がその試合に勝つか判断する。異なるアプリケーションであれば、異なるジェスチャーを認識し追跡する。例えば、野球ゲームにおけるユーザーによる投球を追跡して、それがストライクかまたはボールか判断する。
【0016】
[0030] 他の実施形態例によれば、ジェスチャー・ベース・システム10は、更に、ゲームの世界の外側にあるオペレーティング・システムおよび/またはアプリケーション制御として、ターゲットの動きを解釈するために使用することもできる。例えば、オペレーティング・システムおよび/またはアプリケーションの事実上あらゆる制御可能な態様(aspect)が、ユーザー18のようなターゲットの動きによって制御することもできる。
【0017】
[0031] カメラ・システム20は、カメラ・システム20の視野内にあるキャプチャー・エリア30におけるユーザーの画像データーを取り込む。この例では、カメラ・システム20の視野におけるキャプチャー・エリア30は、台形30であり、ユーザーの視点からは、このキャプチャー・エリアの上辺(front)である短い方の線30f、底辺(back line)30b(例えば、壁がこの線を形成することができる)、ならびに左側辺30lおよび右側辺30rを有する。視野は、異なる幾何学的形状を有することができる。例えば、キャプチャー・エリアの境界および障害物が、その幾何学的形状に影響を及ぼす可能性がある。例えば、ユーザーが体操を行っている場合であれば、視野が台形よりも円錐形になるように後ろの壁は遙か後方にするとよい。他の場合では、カメラのレンズの種類も視野に影響を及ぼす可能性がある。
【0018】
[0032]
図1Aでは、ユーザーは以前の位置、即ち、前の位置18bにいることが示されており、この位置では、彼の身体の一部が左境界線301側でキャプチャー・エリア30の外側に出ている。ユーザー18の位置は、キャプチャー・エリア30およびカメラの視野の中心にもっと近い彼の現在の位置にある。以下で更に詳しく論ずるが、このアプリケーションのコンテキストにおけるフィードバックは、ユーザーに彼の右側に動くことを提案するため、またはそうする気にさせるために与えられた。他のアバター22の位置は、画面上で右側に動いており、したがってユーザー18は彼を殴るためには動く必要があった。他の例では、表示されている光景(view)の視点(perspective)が対戦相手のアバター22の左展望(left perspective)から右展望(right perspective)に変化したということもあり得る。右展望では、ユーザー18が位置18bに留まる場合、彼のアバターは彼の対戦相手のアバター22の視野を遮ることになる。この動作(action)のために、彼の対戦相手のアバター22がもっと良く見えるように、ユーザー18が右に動く気になる。
【0019】
[0033] また、ユーザー追跡フィードバックを供給するために、1つ以上の画面外のディスプレイ・エレメント(off-screen display element)も使用することができる。図示されている例では、発光ダイオード(LED)のようなディスプレイ・ライト32が特定のユーザーを満足させる(satisfy)ことができる。例えば、追跡品質を示すために、異なる色を使用することができる。黄色は警告とすることができ、緑は満足とすることができ、赤は問題を示すことができる。他の例では、異なる照明パターンが追跡品質を示すことができる。例えば、各ライトに視野の境界を関連付けることができる。ライト・エレメントがある色に変わった場合、その色は、ユーザーが境界に近過ぎるというフィードバックを含意することができる。
【0020】
[0034]
図1Bは、追跡規準を満たすためにユーザーが取るべき行為を提案するためのユーザー追跡フィードバック応答の他の例を示す。ユーザーに追跡問題を知らせるために、アバターの外観変更を使用することができる。アバター24は、この例では強調されている。更に、矢印33の形態とした明示的なフィードバックが、視覚インディケーターの一例となっている。この例では、フィードバックは、アバター24と関連のあるユーザーに右に動くことを推薦する。これらの視覚インディケーターは、アプリケーション独立ユーザー追跡フィードバックの例である。何故なら、これらはアプリケーションのコンテキストには繋がれていないからである。
【0021】
[0035] アプリケーションのコンテキストは、そのアプリケーションの目的である動作(activity)を含む。例えば、メニュー・ユーザー・インターフェース・アプリケーションでは、ファイルを開くまたは閉じることは、アプリケーションにとって前後関係で決まる(contextual)ことである。ゲームの動作にしたがって動くアバターおよび場面のオブジェクトは、ゲームにとって前後関係で決まることである。ゲーミング・アプリケーションにおいて前後関係で決まる動作の例には、パンチを打つ、障害物のような新たな敵または怪物の到来、いつボールが投げられたまたは捕球されたか、アバターまたはユーザーの視野(view)が仮想環境にわたって動くときの場面における変化、またはゲーム動作のユーザーのビューの方向または視点の変化である。
【0022】
[0036]
図1Cは、可視性要因(visibility factor)のいくつかの例を示す。窓44から入ってくる日光45のために、周囲の照明がカメラ・システム20にとって可視性の問題になる可能性がある。画像キャプチャー・システム20の光メータ(light meter)は、ユーザーが画像データーにおいて褪せてしまうことを示すことができる。あるいは、暗くなり過ぎる可能性がある。
【0023】
[0037] コーヒー・テーブル15は、ユーザーの身体の一部を遮る可能性がある障害物の一例である。ボクシング・ゲームは、ユーザー18の足が部分的にコーヒー・テーブルによって遮られることのために、ボクシングにおける「摺り足」(shuffle)ジェスチャーを検出するのに困難を来す可能性がある。
【0024】
[0038]
図1Dは、物体を保持しているユーザーが、ターゲット認識、分析、および追跡システム10と対話処理する他の実施形態を示す。このような実施形態では、電子ゲームのユーザー19は、例えば、画面上のボール(on-screen ball)68を打つというように、ユーザー19および物体21の動きを使用してゲームのパラメータを調節および/または制御するように、物体を保持していることがある。他の例では、ラケット21を保持しているユーザーの動きを追跡して、電子スポーツ・ゲームにおいて画面上のラケットを制御するために利用することもできる。他の実施形態例では、物体を保持しているユーザーの動きを追跡して、電子戦争ゲームにおいて画面上の兵器を制御するために利用することもできる。また、1つ以上のグローブ、ボール、バット、クラブ、ギター、マイクロフォン、スティック、ペット、動物、ドラムなどというような、任意の他の物体も含むことができる。
【0025】
[0039]
図1Dは、ユーザーにカメラ・システム20の視野内におけるより良い位置に動くことの提案または動機付けを与えるために、アプリケーションのコンテキストにおいてフィードバックを使用する他の例を示す。位置19bにおけるユーザーは、カメラに対して左に動き過ぎたので、彼の右腕およびラケット21を含む彼の上半身が視野の左境界301の外側に出ている。直前に打ってきたボール68bは、画面の左上角に表示されていた。このゲームの実行アプリケーションは、次に打って来るボール68を、ディスプレイの中央に移して、ユーザー19が、キャプチャー・エリア30を覆う視野の中心に動く気にさせる。ユーザー19は、彼の現在の位置19に示すように、既にそうしている。
【0026】
[0040] 尚、
図1Dは、ユーザーの描写が画面上にレンダリングされない代案を提示することは認められてしかるべきである。
図1Dでは、ユーザーは一人称で(in the first person)テニスをプレーし、画面上にレンダリングされたボールを見て、そして、一例では、ボールを打つラケットの全てまたは一部を見ているかもしれないが、ユーザーのアバターは画面上にはレンダリングされず、あるいはユーザーの身体部分の一部のみがレンダリングされる。
【0027】
[0041]
図1Eは、ユーザーが境界に近過ぎるときまたは境界の外側に出たときにユーザーに知らせることができる視覚インディケーターの一例を示す。特に非常に幼い子供のユーザーには、表示物体28l(左境界問題)および28r(右境界問題)は、視野の中心に向かって戻るようにユーザーに伝えるフィードバックとなることができる。同様の視覚インディケーターは、前後の境界にも同様に使用することができる。任意選択肢をあげると、各視覚インディケーターが現れるとき、またはある回数の境界違反の後に、音響を各視覚インディケーターに関連付けることができる。
【0028】
[0042]
図1Fは、視覚インディケーターの他の例を示し、ユーザー19uがボーリング・ゲームをプレーしており、ユーザーの腕19−1が動いて視野外に出ている。画面上の描写28bでは、ユーザーの腕28Aが徐々に消えて、腕がカメラの視野の外側にあることをユーザーに示す。ユーザーまたはユーザーが関与しているエレメントの画面上の外観を変化させる他の代替案には、ユーザーの画面上の表現の全てまたは一部の色を変えること、ユーザーの描写の焦点を変えること(例えば、画面上の表現をぼかすまたは徐々に消す)が含まれる。
【0029】
[0043]
図1Gに示す更に他の例では、警告グラフィック29が、ディスプレイ16の左上角に示されている。このグラフィックは、ユーザー34および視野35の表現を小さくして描写しており、ユーザーが動いて視野の外側に出たときに、常にまたは間欠的に現れる(flash)ことができる。
【0030】
[0044] ユーザー追跡フィードバックを供給するソフトウェアは、キャプチャー・エリアの境界および異なるフィードバック応答が何を意味するかについて、ユーザーが感触を得るのを補助するために、ディスプレイ上においてユーザーのための訓練を設けることができる。ある種の音響によって、視野の中心にいること、または正しい可視性(visibility)を有することを確認することができ、一方他の音響は、ユーザーが境界に近づき過ぎていること、または追跡品質を劣化させる障害物あるいは他の効果または品目があることを示す。
【0031】
[0045] 一例では、追跡品質または追跡規準は、ユーザーの存在ならびにターゲット認識および追跡システムとの関与が確定されている間の所与の時間期間において、特定できなかったジェスチャーがどれだけあるかに基づくことができる。追跡品質または追跡規準は、存在および関与を検出することができるが、例えば、野球ゲームにおける腕のように、アプリケーションに対する画像データーにおいて主要な身体部分を認識することができない。追跡規準または品質に影響を及ぼす可視性要因の他に、アプリケーションの中には、単に身体部分である身体の特徴の動きだけではなく、音声のような身体特徴を拠り所にするものもあるので、区別可能性要因(distinguishability factor)には、音声要因も該当する可能性がある。
【0032】
[0046]
図2は、ユーザー追跡フィードバックを供給するシステム200の機能的コンピューター実装アーキテクチャーの例示的実施形態である。このようなアーキテクチャー・システムは、1つ以上のプロセッサーおよび/またはコンピューター・ハードウェアにおいて実行するソフトウェアによって、あるいはハードウェアまたはファームウェアとして動作することができる1つ以上の処理モジュールとして実現することができる。
【0033】
[0047] 本技術は、その主旨や本質的な特性から逸脱せずに、他の特定の形態においても実現することができる。同様に、モジュール、ルーチン、特徴、属性、方法、および他の態様の特定の命名や分割は義務的ではなく、本技術またはその特徴を実現するメカニズムは、異なる名称、分割、および/またはフォーマットを有することもできる。更に、関連技術における当業者には明白であろうが、開示される実施形態のモジュール、ルーチン、特徴、属性、方法、および他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはこれら3つの任意の組み合わせとして実現することができる。勿論、モジュールが一例であるコンポーネントがソフトウェアとして実現されるときはいつでも、そのコンポーネントは、単体のプログラムとして、もっと大きなプログラムの一部として、複数の別々のプログラムとして、静的または動的にリンクされたライブラリーとして、カーネル・ロード可能なモジュールとして、デバイス・ドライバとして、および/またはプログラミングの技術分野における当業者に現在知られているまたは今後知られることになるあらゆるそして任意の他の方法で実現される。例えば、一実施形態では、以下で論じられる追跡フィードバック・ソフトウェア213は、部分的にアプリケーション独立フィードバック応答を扱うためにアプリケーション・プログラミング・インターフェース(API)で実現し、部分的にコンテキスト・アプリケーション・フィードバックを扱うために特定のアプリケーションのソフトウェアで実現することができる。
【0034】
[0048] ディスプレイ・ビュー制御システム202は、動きモジュール204を含む。動きモジュール204は、着信画像データー205、および任意選択肢をあげると、オーディオ・データー217のためにデーター・バッファ223にアクセスする。図示されている実施形態例では、ディスプレイ・ビュー制御システム202は、オーディオビジュアル・データー・キャプチャー・システム20からローカルに動き追跡データー205を受ける。加えて、ディスプレイ・ビュー制御システム202は、インターネット203または他のネットワークから離れて動き追跡データー205iを受信することもできる。ユーザーに関して、動き追跡データーは、画像データー自体、またはそのデーターをダウンサンプルしたバージョンを含むことができる。加えて、深度データー、ならびに画像および/または深度データーから導き出される種々の形態のデーターも、動き追跡データーに含めることができる。その例には、ユーザーの身体に対するモデル、そのモデルを参照する数学的原形における動きデーター、またはモデルの以前の状態との比較に使用するために導き出されるビットマスク画像がある。ディスプレイ・ビュー制御システム202は、このデーターを分析して、ユーザーの動きを認識し、その動きを追跡してディスプレイ上のオブジェクト、例えば、ユーザーの画面上のアバターを動かす。アバターは、場面または表示オブジェクトの一種である。
【0035】
[0049] 動きモジュール204は、通信可能にアバター表示制御モジュール209、オブジェクト制御モジュール211、追跡フィードバック・ソフトウェア213、ジェスチャー認識ソフトウェアおよびデーター206、オーディビジュアル・データー・キャプチャー・システム20、およびインターネット203に結合されている。また、動きモジュール204は、ユーザー216u、アバター216a、およびディスプレイ216o上の物体またはユーザーによって保持されている物体の各々の少なくとも1つについてのモデル・データー216というような、メモリーに格納されているデーターストア220にもアクセスすることができる。モデル・データーは、キャプチャー・エリアにおけるユーザー、あるいは場面またはディスプレイ・ビューにおけるアバターまたは物体の動きモジュール204による動き検出のための基準として使用される。ユーザーの身体の動きがアバターの動きにマッピングされる(例えば、ユーザーの画像取り込み、またはユーザーの身体に付けられたセンサに基づいて)システムでは、ユーザー216uを表すモデル・データーと、アバター216aを表すモデル・データーとがあることが可能である。アバターの体形が全く異なる場合、動きモジュール204は、2つのモデルの間でマッピングを実行する。例えば、少年のユーザー18は、彼のアバター・ボクサー24よりも背が低く、腕の長さがありそうもない。言い換えると、スケルトン・モデルが使用された場合、これらはユーザーおよびアバターに対して同一でなくてもよい。しかしながら、実施形態の中には、アプリケーションが、同じモデル・データー216を使用して、ユーザーの身体の動きを分析し、更に対応するアバターの動きを命令する場合もある。一例では、身体モデルは、身体部分と、空間における(in dimensions)それらの位置および/または基準に対する回転角度とを表す1つ以上のデーター構造として実現することができる。モデル・データー216は、絶対位置に関する更新または位置および回転の変化で更新することができる。位置および回転の変化は、ベクトルおよび角度で表すとよい。
【0036】
[0050] また、動きモジュール204は、プロファイル・データー214にもアクセスすることができる。この例では、ユーザー214u、アバター214a、および物体214oについてのプロファイルがある。また、動きモジュール204は、アバター画像データー219および物体画像データー221を含むディスプレイ・データー218にアクセスすることもできる。
【0037】
[0051] アバター表示制御モジュール209は、ジェスチャー認識ソフトウェア206によって認識されたジェスチャー、および動きモジュール204によって特定された他の該当する動きに基づいて、アバター画像データー219を更新する。一例では、動きまたは姿勢を表す画像データー219は、アバターについての動き追跡データーとすることができる。一例では、このような動き追跡データーをモーション・キャプチャー・ファイルに格納することができ、動きモジュール204は、新たな動き追跡データー205が受けられる毎に、経時的にモーション・キャプチャー・ファイルを更新する。
【0038】
[0052] オブジェクト制御モジュール211は、ユーザーの認識されたジェスチャーによって変化が生じたオブジェクトについての画像データー221を更新する。更に、アバター制御モジュール209およびオブジェクト制御モジュール211は、動作制御モジュール210からの命令に応答して、それらのそれぞれの画像データー(219、221)を更新する。動作制御モジュール210は、実行アプリケーションを監督する(supervise)。例えば、ゲーム環境では、スコアを取り続け、アバターが新たなレベルのゲーム・プレーに移るに連れて新たな背景が必要になると判断し、場面において他の非ユーザー制御アバターまたはオブジェクトをどのように配置するか判断する。ゲーム以外の環境では、ユーザーが要求している動作は何か特定する。例えば、ユーザーのジェスチャーがファイルを開く要求である場合、ファイル自体にアクセスするか、またはファイルにアクセスしそれをディスプレイ16上に表示する命令をオブジェクト制御モジュール211に供給することができる。表示処理モジュール207は、表示を更新するために、表示データー218を組み合わせる。
【0039】
[0053] 表示データー218は、場面またはビューのコンテキストを規定し、その場面またはビューにおける他のオブジェクトを定義する。例えば、表示データー218は、
図1Aおよび
図1Bではボクシングの試合というコンテキスト環境を規定しており、更にボクシング・リングのロープおよび対戦相手のボクサーのアバター22の存在を含むオブジェクトの位置を規定している。この場面における他のボクサー・アバター22の最後の動き、特徴、および身体部分は、アバター・プロファイル・データー・ストア214において他のプロファイルとして格納することもできる。表示データー218に対する更新は、アバター表示制御モジュール209または動きモジュール204のような1つ以上のモジュールによって、インターネット203または離れたモジュールからの他のネットワークを介して受信することができる。
【0040】
[0054] アバター表示制御モジュール209およびオブジェクト制御モジュール211は、周期的にまたは動きモジュール204からのメッセージに応答して、それらのそれぞれのプロファイル(1つまたは複数)214への更新を読み、アバターまたはオブジェクトの動きまたは姿勢を表す画像データー219、221を処理する。画像データー219、221は、ローカルにディスプレイ16にレンダリングすることができ、またはインターネット203または他のネットワークを介して送信することができる。
【0041】
[0055] アバター・プロファイル・データー214aの例は、髪、顔の特徴、肌の色、衣服、場面におけるアバターの位置、それと関連のある任意のプロップというような、アバターの特徴についての色画像データーとすることができる。
【0042】
[0056] ユーザーのプロファイル214uに格納することができる情報の例は、典型的な使用またはプレー・モード、年齢、身長、体重情報、名前、障害(disability)、高スコア、あるいはシステムのユーザーまたは使用に関連のある任意の他の情報を含むことができる。
【0043】
[0057] フィードバック応答の選択に影響を及ぼす要因の例には、ユーザー・プロファイル情報を含むことができる。例えば、ユーザーの年齢または障害は、身体的または精神的のいずれでも、あるタイプのフィードバック応答を他のものよりも一層適したものにすることができる。例えば、5歳では、読むことができないかもしれないので、アプリケーションのコンテキストにおける巧妙なフィードバックが、画面上にある明示的なテキストよりも適している場合もある。プレーヤが難聴であるかもしれないので、音声応答は適していない。
【0044】
[0058] 先に論じたように、一部の動きおよび姿勢、ジェスチャーは、娯楽用プログラムまたは他のアプリケーションのコンテキストにおいて特殊な意味を有し、ディスプレイ・ビュー制御システム202は、これらを識別する命令を実行する。具体的には、動きモジュール204はジェスチャー認識ソフトウェア206およびデーターにアクセスし、モデルおよび動き追跡データーに基づいて、ジェスチャーを認識または識別する。
【0045】
[0059] ジェスチャー認識ソフトウェア206は、ジェスチャー・フィルターを含むことができる。一例では、動きモジュール204は、例えば、身体部分インデックスのような、関連データー・インデックスに基づいて、1つ以上のジェスチャー・フィルター206を選択することができる。例えば、動き追跡データー・セット更新がディスプレイ・ビュー制御システム202によって受け入れられ、ある身体部分に対して動きの変化が示された場合、動きモジュール204は、これらのある種の身体部分と関連のあるジェスチャー・フィルターをインデックス化する。
【0046】
[0060] ジェスチャー・フィルター206は、動き追跡データー205に基づいて特定のジェスチャーが行われたか否か判断する規準を定めるパラメータ・データーに基づいて命令を実行する。一実施形態では、各ジェスチャー・フィルター206は、ジェスチャー・ライブラリーにおける特定のジェスチャーに対するライブラリー・モジュールとリンクされている。ジェスチャーと関連付けられた各ライブラリー・モジュールは、ジェスチャーに応答して処理を実行する実行可能命令を含む。この処理は、多くの場合、ジェスチャーに何らかの形態で反映するために、アバターの動きまたは画像を更新することを伴う。
【0047】
[0061] 例えば、
図1Aにおける十代の少年ユーザー18は、彼のアバター24のボクサーよりも体格が遙かに小さい。アバターとゲームをプレーする楽しさの一部は、アバターの方が実生活におけるユーザーよりも上手に事を行うことが多いということにある。
図1Aにおいて、居間における少年18のパンチは、表示画面14上において彼のアバター24による遙かに強力なパンチに変換される。ボクシング・ゲームにおける「パンチ」についてのライブラリー・モジュールは、ユーザーの踝が彼の肘から繰り出される速度の加速度(acceleration in speed)から、これはゲームにおけるこのユーザー18の「強力なパンチ」であると判断することができ、彼のアバター24のパンチは、ライブラリー・パンチ・モジュールの命令によって、これをディスプレイ上に反映する。また、動作制御モジュール210にはジェスチャーが知らされ、それに応答する。例えば、ユーザー18のスコアを更新する。
【0048】
[0062] システムの中には、アバターがある種の身体部分または領域、例えば、手および腕に対して行うことができる動きまたは姿勢を一定数だけに限って、その組み合わせを与えつつ、他の身体部分または領域、例えば、脚部の直接追跡を可能にするとよい場合もある。
【0049】
[0063] アバターまたは他のディスプレイ・ビュー・オブジェクトの表示を更新するためのユーザーの動きの追跡は、リアルタイムで行われ、ユーザーが実行アプリケーションとリアルタイムで対話処理できるようにする。リアルタイムの表示とは、ジェスチャーの仮想表現を指し、このディスプレイは、物理空間におけるジェスチャーの実行と同時にまたは殆ど同時に表示される。例えば、本システムがユーザーにオウム返しする表示を提供することができる表示更新レートは、20Hz以上のレートとするとよく、この場合、些細な処理の遅れは、最小限の表示の遅れにしかならず、またはユーザーには全く見えない。つまり、リアルタイムには、自動データー処理のために必要な時間だけ遅れているデーターの適時性(timeliness)に関する些細な遅れはいずれも含まれる。
【0050】
[0064] 追跡フィードバック・ソフトウェア213は、追跡問題を特定するメッセージを動きモジュール204から受ける。追跡問題の一例は、ユーザーが動いて視野の外側に出たこと、または視野内にユーザーがいないことである。追跡問題の他の例には、身体部分に対するジェスチャーを判断することができないこと、あるいは動きまたは姿勢が任意の特定のジェスチャーに対応するしきい値確率が満たされないことがあげられる。追跡問題の他の例は、ユーザーの音響を検出するには、音声またはソング認識ソフトウェアに対する音響の大きさ(loudness)が十分でないことである。他の例では、ユーザーからの音響が区別不可能な音節を有しているので、単語を検出することができない。例えば、音楽娯楽アプリケーションでは、ユーザーの歌唱を識別または検出できないと、ユーザー・プレーヤが感じる苛々に重大な影響を及ぼす可能性がある。
【0051】
[0065] また、動きモジュール204は、オーディオビジュアル・キャプチャー・システム20から受けたデーター、またはオーディオビジュアル・キャプチャー・システム20からのメッセージにおけるデーターに基づいて、複数の区別可能性要因についてのフィードバックを供給することができる。区別可能性要因の一種は、前述のように音量および示差(distinctiveness)が十分でないというような、音声要因である。区別可能性要因の他の例に、可視性要因がある。可視性要因の一例は、アプリケーションを制御するユーザーまたは身体部分が、少なくとも部分的に視野から出ていることである。他の例には、取り込まれた画像においてユーザーが褪せる(wash out)照明問題がある。他の例には障害物がある。可視性要因の他の例は、障害物である。これの例は、
図1Cにおけるコーヒー・テーブル15のような、視野自体の中にある家具とすることができる。視野の境界上、または視野自体の中に多くの品目があり過ぎると(two many)、区別可能性要因または可視性要因が生ずる可能性がある。障害物の他の例には、衣服、または他の品目と組み合わせた衣服がある。ポンチョ(poncho top)は、腕の動きを検出するのを妨げる可能性がある。長いスカートは、ユーザーが歩行ジェスチャーまたは走行ジェスチャーを行う可能性があるゲームにおいて脚の動きを検出するのを妨げる可能性がある。黒い長椅子に対する黒いズボンは、コントラストの欠如により、可視性問題を生ずる可能性がある。キャプチャー・システム20は、ユーザーが黒い長椅子の近くにいるとき、脚の動きを区別することができない。衣服の色がコントラストの問題を生し、その結果区別可能性の問題に至る可能性がある。加えて、人々がユーザーに近過ぎて立っていることも、彼らの腕や脚が重なり合うので、区別可能性の問題が生ずる可能性がある。深度データーは、ユーザーを区別するのに役立つことができるが、画像キャプチャー・システム20の深度分解能に基づく問題になる可能性がある。
【0052】
[0066] 追跡フィードバック・ソフトウェア213は、追跡問題を示すタイプのフィードバックを、ユーザーに供給するために選択することができる。例の中には、フィーバックが、アプリケーションの動作(activity)とは独立している視覚インディケーターまたは音声インディケーターによって、追跡品質を向上するように、ユーザーに命令を与える場合もある。例えば、明示的な矢印33が
図1Bにおいて画面上に重なっている。また、視野30の中心を指し示しつつ、「右に動け」というテキスト・メッセージまたは音声メッセージを付随させることもできる。
【0053】
[0067] 他のフィードバックは、もう少し暗示的で巧妙にすることができる。ディスプレイの視覚的特性を変化させることができる。例えば、フィードバックは、ユーザーが視野の境界からある距離の範囲内に入ると、ディスプレイ・ビューの鮮明さを多少低下させることができる。例えば、それが徐々にぼけて行く。ユーザーが視野の中心に向かって動くと、場面の鮮明さが高まる。ユーザーは、鮮明さの変化に意識して気がつかなくてもよい。鮮明さの他に、場面またはビューの表示を変えるために変化させることができる他の視覚的特性の例には、色の刺激(vibrancy)がある。他の例には、色自体がある。例えば、ユーザーが動いて視野の外側に出ると、ディスプレイ上の色が白黒になる。
【0054】
[0068] 例の中には、追跡フィードバック・ソフトウェア213が、アプリケーションのコンテキストにおけるフィードバックが適していることを判断する場合もある。これらの例のいくつかについては、ユーザーが近づき過ぎている境界上の怪物、またはユーザーが動くべき方向に送られユーザーが「打つ」ボールというように、既に述べられている。他の例には、動く方向において撃つべき敵が含まれ、あるいは他のアバター・プレーヤが入って来て、ユーザーにぶつかって中央に向かって後戻りさせたり、または他のキャラクターが視野に戻る方向に走る。他の例では、ある一定の方向に音響を流し、ユーザーがその方向から遠ざかるようにそれに向かって走る気にさせることができる。ユーザーが、システム20によって取り込まれた深度データーにおいて示されるように、画像キャプチャー・システム20から遠すぎる場合、ユーザーが前進して視野の中に入ることを誘うために、点滅する物体または他の注意喚起表示物体を用いることができる。ユーザーがカメラ20に近過ぎている場合、例えば、視野の前方境界30fとカメラとの間にいる場合、ユーザーに後戻りさせるために、画面をほぼ満たす表示物体を作ることができる。
【0055】
[0069] このコンテキスト・アプリケーション・フィードバックでは、追跡フィードバック・モジュール213は、コンテキスト・フィードバックの要求を動作制御ソフトウェア・モジュール210に送る。動作制御モジュール210または追跡ソフトウェア213は、繰り返しをできるだけ避けるために、どのコンテキスト・フィードバック技法が使用されたか追跡することができる。コンテキスト・フィードバック要求は、取り組むべき区別可能性要因のタイプを含むことができる。更に、動作に対する提案も含むことができる。例えば、ユーザーが視野に戻る動きを促進するために物体を置くディスプレイ上のターゲット・ゾーンも含むことができる。他の場合では、動作制御モジュール210は、取るべき措置を決定することができる。
【0056】
[0070] 追跡フィードバック・ソフトウェア213は、そのフィードバック応答の選択を、規準に基づくことができる。前述のように、このような規準の一例は、ユーザーの年齢である。3歳または4歳では、画面上のターゲット・ゾーンに品目をおいて、そのユーザーを移動させることは、この年齢の子供にとっては、余りに反復型であり過ぎる(repetitive)かもしれない。7歳では、特定のコンテキスト・フィードバック技法をもう少し変化させる必要があるかもしれない。
【0057】
[0071] アプリケーションの競合性(competitiveness)も他の要因となり得る。他のユーザーに対抗してプレーするゲームでは、ユーザーの動きを煽るために撃つべくターゲットを表示ゾーン内に置くことは、不適切である可能性がある。しかしながら、視野の境界付近に爆発物を置くと、ターゲットの予測可能性を高めることなく、ユーザーを動かすことができる。
【0058】
[0072] アプリケーションの中には、ディスプレイ上においてそのアプリケーションによって表示される動作を邪魔するものを全く望まない場合がある。これらの場合、ディスプレイ16またはコンソール12は、画面外ディスプレイ・デバイスを含むことができる。例えば、コンソール12またはカメラ20上の発光ダイオード(LED)32をユーザーと関連付けて、ユーザーを追跡するアプリケーションの能力をカラー・パレットによって示すことができる。例えば、緑色は正常を示す。黄色は追跡能力が劣化していることを警告しており、赤色は、追跡能力が容認できないレベルまで劣化したことを示す。コンソール12、ディスプレイ16、またはカメラ20上において、追跡能力の等級を示すバー・グラフあるいは他の照明というような、他の画面外ディスプレイ・デバイスまたはビューも使用することができる。
【0059】
[0073] 妥協案として、境界に近づき過ぎているユーザー、または追跡が追跡規準を満たしていないユーザーのアバター上に、小さいアイコンを出現させることができる。ユーザーは、望ましければ、このアイコンを選択することができる。他の例では、ユーザーまたは彼のアバターを示す小さな箱、ピクチャー・イン・ピクチャーを表示して、追跡問題、およびそれに取り組むための提案までも示すことができる。他の例では、ユーザーがポーズ・ボタンを押した場合、このユーザーまたは彼のアバターを追跡問題メッセージと共に示す箱を表示することができる。
【0060】
[0074] 他の例では、追跡フィードバック・ソフトウェア213は、アバターの外観変更要求を、アバター表示制御モジュール209に送ることができる。外観変更の例は、アバターの強調とすることができる。他の例には、アバターの外観をぼやけさせるというような視覚的特性を変化させること、あるいはカラーではなく全て黒、または全て白、または白黒にすることが含まれる。他の例では、アバターが徐々に消えて行くようにすることができる。特に、アプリケーションの開始前に訓練セッションが行われる場合、ユーザーには、彼のアバターの外観変更は、彼のジェスチャーに追跡問題があることを意味することを知らせることができる。視野の問題では、これは、競合動作(competitive action)を変更し過ぎることなく、効果的にすることができる。
【0061】
[0075] フィードバックは、オーディオまたはオーディオビジュアルとすることができる。例えば、アプリケーションの動作開始前の訓練セッションでは、特定の可視性要因がユーザーのジェスチャーの認識に影響を及ぼすことを、特定のアイコンが意味することをユーザーに知らせることができる。アイコンには特定の音響を伴わせることができるので、ユーザーは、例えば、外から中に動くことを知っているのは彼であることが分かる。
【0062】
[0075] ユーザーのジェスチャーを適正に検出することができないと、アプリケーションの実行に重大な影響を及ぼす可能性があるので、動作の一時中止は、恐らくはユーザーのアバターの外観変更と合わせられて、同様に選択されたフィードバック応答であることができる。他の例では、音響を止めることができる。
【0063】
[0077] 実施形態の中には、追跡フィードバック・ソフトウェアが、特定のアプリケーションとは別個であることができる場合もある。例えば、追跡フィードバック・ソフトウェアは、APIを提供することができ、このAPIに対してアプリケーションがフィードバック応答の要求を送ることができる。これは、デフォルトのフィードバック応答を使用することを望むアプリケーション開発者には、便利なインターフェースであることができる。勿論、API以外の他の構造も使用することができる。アプリケーション・ソフトウェアは、追加のタイプのユーザー追跡フィードバック応答を、APIによって供給されたものに対して供給することができ、またはアプリケーション開発者がデフォルト・メカニズムの代わりに使用することを好むものに対して供給することができる。他の実施形態では、アプリケーション内部で完全に、またはアプリケーションとは無関係なソフトウェアによって完全に追跡フィードバック・ソフトウェアを扱うことができる。本明細書において記載される技術は、特定のコード・レベルの実施態様に限定されるのではない。画像キャプチャー・システム20は、 人間のターゲットおよび人間以外のターゲットをキャプチャー・エリア内で認識し(対象に特殊な検知デバイスが取り付けられているまたは取り付けられていない)、これらを一意に識別し、三次元空間においてこれらを追跡する。
【0064】
[0078] 実施形態例によれば、画像キャプチャー・システム20は、深度画像を含む深度情報と共にビデオを取り込むように構成することができる。深度画像は、例えば、飛行時間、構造化光、立体画像などを含む任意の適した技法によって、深度値を含むことができる。
図2に示されるように、実施形態例によれば、撮像カメラ・コンポーネント70は、IR発光コンポーネント72、三次元(3D)カメラ74、およびキャプチャー・エリアの深度画像を取り込むために用いることができるRGBカメラ76を含むことができる。例えば、飛行時間分析では、キャプチャー・システム20のIR発光コンポーネント72は、キャプチャー・エリアに向けて赤外線光を放出することができ、次いでセンサを用いて、そのキャプチャー・エリアの中にある1つ以上のターゲットおよび物体の表面からの後方散乱光を、例えば、3Dカメラ74および/またはRGBカメラ76を用いて検出することができる。実施形態の中には、パルス状赤外線光を用いて、発信光パルスと対応する入射光パルスとの間の時間を測定し、深度カメラ・システム20からキャプチャー・エリア内にあるターゲットまたは物体上における特定の場所までの物理的距離を判定するために用いることができるようにするとよい場合がある。加えて、他の実施形態例では、発信光波の位相を着信光波の位相と比較して、位相ずれを判定することもできる。次いで、位相ずれを用いて、キャプチャー・システムからターゲットまたは物体上の特定の場所までの物理的距離を判定することができる。
【0065】
[0079] 他の実施形態例によれば、飛行時間分析を使用して、例えば、散乱光パルス撮像(shuttered light pulse imaging)を含む種々の技法によって、経時的な光の反射ビームの強度を分析することによって、キャプチャー・システム20からターゲットまたは物体上の特定の場所までの物理的距離を間接的に判定することができる。
【0066】
[0080] 他の一実施形態例では、キャプチャー・システム20は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光(即ち、格子パターン、縞パターンのような既知のパターンとして表示される光)を、例えば、IR発光コンポーネント72によって、キャプチャー・エリアに向けて投射する。キャプチャー・エリアにおいて1つ以上のターゲットまたは物体の表面に衝突したときに、パターンが、それに応答して、変形する可能性がある。このようなパターンの変形を、例えば、3Dカメラ74および/またはRGBカメラ76によって取り込むことができ、次いで分析して、深度カメラ・システムからターゲットまたは物体上における特定の場所までの物理的距離を判定することができる。
【0067】
[0081] 他の実施形態によれば、キャプチャー・システム20は、2つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度からのキャプチャー・エリアを捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を生成することができる。
【0068】
[0082] これらのエレメントによって得られる相乗効果の一例として、IR発光コンポーネント72および3−Dカメラ74がキャプチャー・エリアの深度画像を供給するが、ある状況では、深度画像のみでは、人間のターゲットの位置または動きを識別するのに十分ではない可能性がある場合について考える。これらの状況では、RGBカメラ76が3−Dカメラからの情報を「引き継ぎ」または補充して、人間のターゲットの動きまたは位置の一層完全な認識を可能にすることができる。例えば、RGBカメラは、とりわけ、1つ以上のターゲットと関連のある色を認識するために使用することができる。ユーザーが模様のあるシャツを着用しており、深度カメラがこのパターンを検出することができない場合、そのパターンを追跡し、ユーザーが行っている動きについての情報を提供するために、RGBカメラを使用することができる。他の例として、ユーザーが体を捻った場合、ユーザーのこの動きを判断するために1つ以上の他のセンサからの情報を補充するために、RGBカメラを使用することができる。更に他の例として、ユーザーが壁または第2ターゲットというような他の物体の隣にいる場合、2つの物体間で区別するためにRGBデーターを使用することができる。また、RGBカメラは、追加の情報を提供するために使用することができる、顔の認識、髪の色等のような、ユーザーの特徴を判定することもできるとよい。例えば、ユーザーが後ろを向いた場合、RGBカメラは髪の色および/または顔の特徴がないことを使用して、ユーザーがキャプチャー・システムに背を向けていると判断することができる。
【0069】
[0083] キャプチャー・システム20は、インタラクティブ・レート(interactive rate)でデーターを取り込むことができ、データーの忠実性を高め、開示する技法が生の深度データーを処理し、場面における物体をディジタル化し、物体の表面および模様を抽出し、ディスプレイ(16)がその表示画面(例えば、54)上に場面のリアルタイム描画を供給できるように、これらの技法の内任意のものをリアルタイムで実行することを可能にする。
【0070】
[0084]
図2のシステムの実施形態では、画像キャプチャー・システム20は、動き追跡データー205lおよび任意選択肢をあげると、オーディオ・データー217を送るために、
図3Aおよび
図3Bにおけるコンピューター・システム例のような計算環境に、通信可能に結合されている。この通信結合は、例えば、USB接続、Firewire接続、イーサネット(登録商標)・ケーブル接続等および/またはワイヤレス802.11b、g、a、またはn接続のようなワイヤレス接続というような、1つ以上の有線接続またはワイヤレス接続で実現することができる。
【0071】
[0085] 更に、キャプチャー・システム20は、プロセッサー80によって実行することができる命令、およびフレーム・フォーマットで取り込むことができる画像データーを格納するためにメモリー・コンポーネント82も含むことができる。メモリー・コンポーネント82は、ランダム・アクセス・メモリー(RAM)、リード・オンリー・メモリー(ROM)、キャッシュ、フラッシュ・メモリー、ハード・ディスク、または任意の他の適した記憶コンポーネントを含むことができる。一実施形態では、メモリー・コンポーネント82は、図示されているように、画像取り込みコンポーネント70およびプロセッサー80と通信可能な(90)別個のコンポーネントであってもよい。他の実施形態によれば、メモリー・コンポーネント82をプロセッサー80および/または画像キャプチャー・コンポーネント70の中に統合してもよい。
【0072】
[0086] 更に、キャプチャー・システム20は、撮像カメラ・コンポーネント70および画像データーを格納するメモリー82を制御するために、撮像カメラ・コンポーネント70に通信可能に結合(90)されているプロセッサー80も含む。プロセッサー80は、標準プロセッサー、特殊プロセッサー、マイクロプロセッサー等を含むことができ、プロファイルを格納し、深度画像データーを受け取り、そのデーターを指定フォーマットでメモリー82に格納し、深度画像に適したターゲットが含まれるかもしれないか否か判断し、適したターゲットをスケルトン表現または他のタイプのターゲットのモデルに変換する命令、または任意の他の適した命令を含むことができる命令を実行することができる。更に、この処理の一部は、1つ以上の通信可能に結合されている計算環境において他のプロセッサーによって実行することもできる。
【0073】
[0087] 処理能力を画像キャプチャー・システム20に含ませることによって、ユーザーのマルチポイント・スケルトン・モデルのようなモデルを、リアルタイムで配信することが可能になる。一実施形態では、キャプチャー・システムの複数のコンポーネントの1つずつ別個のプロセッサーがあってもよく、または1つの中央プロセッサーがあってもよい。他の例として、中央プロセッサーと、少なくとも1つの他の関連プロセッサーがあってもよい。高コストの計算タスクがある場合、2つ以上のプロセッサーが任意の方法でこの処理タスクを分配することができる。これらのプロセッサー(1つまたは複数)は、前述のようなメモリーを含むことができ、このメモリーは1つ以上のユーザー・プロファイルを格納することができる。これらのプロファイルは、身体走査、典型的な使用モードまたはプレー・モード、年齢、身長、体重情報、名前、アバター、高スコア、あるいはシステムのユーザーまたは使用に関連のある任意の他の情報を格納することができる。
【0074】
[0088] キャプチャー・システム20は、更に、ユーザーによって生成されたオーディオ信号を受けるために使用することができるマイクロフォン78も含むことができる。つまり、この実施形態では、画像キャプチャー・システム20は、オーディオビジュアル・データーキャプチャー・システムとなる。キャプチャー・システムにおけるマイクロフォン(1つまたは複数)は、本システムがターゲットの位置または動きの態様をより良く識別することを可能にするように、ターゲットについて追加の情報および補足情報を提供するために使用することができる。例えば、マイクロフォン(1つまたは複数)は、指向性マイクロフォン(1つまたは複数)、または指向性マイクロフォンのアレイを含むことができ、人間のターゲットの位置を更に識別するため、または2つのターゲット間で区別するために使用することができる。例えば、2人のユーザーが同様の形状または大きさであり、キャプチャー・エリア内にいる場合、例えば、彼らの別々の音声を認識してこれらのユーザーを互いに区別することができるように、ユーザーについての情報を提供するためにマイクロフォンを使用することができる。他の例として、マイクロフォンは、ユーザーについてのユーザー・プロファイルに情報を提供するために、または「音声−テキスト」型実施形態において、使用することもでき、計算システムにおいてテキストを作るために少なくとも1つのマイクロフォンを使用するとよい。
【0075】
[0089] 画像についての深度値を有する画素データーを、深度画像と呼ぶ。一実施形態によれば、この深度画像は、取り込まれた場面の二次元(2−D)画素エリアを含むことができ、2−D画素エリアにおける各画素は、例えば、カメラ・コンポーネント70の何らかの態様に関する基準点からの、取り込まれた場面における物体の、例えば、センチメートル、ミリメートル等の単位とした、長さまたは距離のような、関連する深度値を有する。例えば、画素に対する深度値は、「Z層」で表すことができる。Z層は、深度カメラ70からその見通し線に沿って延びるZ軸に対して垂直であるとよい。これらの深度値は、纏めて深度マップと呼ぶことができる。
【0076】
[0090] 深度画像をより簡単に使用し、より少ない計算オーバーヘッドで素早く処理できるように、深度画像をより低い処理分解能にダウンサンプルするとよい。例えば、観察された深度画像の種々の領域を、背景領域と、ターゲットの画像が占める領域に分けることができる。背景領域は、画像から除去するか、または識別して、1つ以上の後続の処理ステップの間これらを無視できるようにすることができる。加えて、1つ以上の高分散および/またはノイズ深度値を除去する、および/または深度画像からスムージングすることができる。失われた深度情報および/または除去された深度情報の部分は、充填すること、および/または再現することができる。このようなバックフィリング(backfilling)は、最も近い近隣を平均化すること、フィルタリング、および/または任意の他の適した方法で行うことができる。スケルトン・モデルのようなモデルを生成するために深度情報を使用できるように、他の適した処理を実行することもできる。
【0077】
[0091]
図3Aは、
図1Aから
図1Eにおけるようなゲーミング・コンソールにおいて使用することができる計算環境の実施形態の詳細な例を示し、この計算環境において、ユーザー追跡フィードバックを供給する1つ以上の実施形態が動作することができる。
図3Aに示すように、マルチメディア・コンソール12は、レベル1キャッシュ102、レベル2キャッシュ104、およびフラッシュROM(リード・オンリー・メモリー)106を有する中央処理ユニット(CPU)101を有する。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデーターを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。CPU101は、1つよりも多いコア、したがって追加のレベル1およびレベル2キャッシュ102および104を有して設けることもできる。フラッシュROM106は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール12の電源をオンにしたときに、ブート・プロセスの初期段階中にロードされる。
【0078】
[0092] グラフィクス処理ユニット(GPU)108およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)114は、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを介して、GPU108からビデオ・エンコーダー/ビデオ・コデック114に伝達される。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをA/V(オーディオ/ビデオ)ポート140に出力する。メモリー・コントローラー110がGPU108に接続されており、限定ではなく、RAM(ランダム・アクセス・メモリー)のような、種々のタイプのメモリー112にプロセッサーがアクセスし易くなっている。
【0079】
[0093] マルチメディア・コンソール12は、I/Oコントローラー120、システム管理コントローラー122、オーディオ処理ユニット123、ネットワーク・インターフェース・コントローラー124、第1USBホスト・コントローラー126、第2USBコントローラー128、およびフロント・パネルI/Oサブアセンブリ130を含む。これらは、モジュール118上に実装されている。USBコントローラー126および128は、周辺コントローラー142(1)〜142(2)、ワイヤレス・アダプター148、および外部メモリー・デバイス146(例えば、フラッシュ・メモリー、外部CD/DVD ROMドライブ、リムーバブル媒体等)のためのホストとしての役割を果たす。ネットワーク・インターフェース124および/またはワイヤレス・アダプター148は、ネットワーク(例えば、インターネット、ホーム・ネットワーク等)へのアクセスを与え、イーサネット(登録商標)・カード、モデム、Bluetooth(登録商標)モジュール、ケーブル・モデム等を含む広範囲の種々の有線またはワイヤレス・アダプター・コンポーネントの内任意のものでよい。
【0080】
[0094] システム・メモリー143は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ144が設けられており、DVD/CDドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブを備えることができる。メディア・ドライブ144は、マルチメディア・コンソール100の内部にあっても外部にあってもよい。アプリケーション・データーには、実行、再生等のためにマルチメディア・コンソール12がメディア・ドライブを介してアクセスすることができる。メディア・ドライブ144は、シリアルATAバスまたはその他の高速接続(例えば、IEEE1394)のようなバスを介して、I/Oコントローラー120に接続されている。
【0081】
[0095] 一実施形態では、ディスプレイ・ビュー制御システム202のためのソフトウェアおよびデーターのコピーをメディア・ドライブ144に格納することができ、実行するときにシステム・メモリー143にロードすることができる。
【0082】
[0096] システム管理コントローラー122は、メディア・コンソール12が利用できることを確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット123およびオーディオ・コデック132は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データーは、通信リンクを介して、オーディオ処理ユニット123とオーディオ・コデック132との間で伝達される。オーディオ処理パイプラインは、外部オーディオ・プレーヤまたはオーディオ処理能力を有するデバイスによる再生のために、データーをA/Vポート140に出力する。
【0083】
[0097] フロント・パネルI/Oサブアセンブリ130は、電力ボタン150およびイジェクト・ボタン152の機能をサポートするだけでなく、マルチメディア・コンソール12の外面上に露出する任意のLED(発光ダイオード)またはその他のインディケーターもサポートする。システム電源モジュール136が、マルチメディア・コンソール12のコンポーネントに電力を供給する。ファン138は、マルチメディア・コンソール12内部にある回路を冷却する。
【0084】
[0098] CPU101、GPU108、メモリー・コントローラー110、およびマルチメディア・コンソール100内部にある種々のその他のコンポーネントは、1系統以上のバスを介して相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、および種々のバス・アーキテクチャーの内任意のものを用いるプロセッサー・バスまたはローカル・バスが含まれる。一例として、このようなアーキテクチャーは、ペリフェラル・コンポーネント相互接続(PCI)バス、PCI-Expressバス等を含むことができる。
【0085】
[0099] マルチメディア・コンソール12の電源をオンにすると、システム・メモリー143からメモリー112および/またはキャッシュ102、104にアプリケーション・データーをロードし、CPU101において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。このグラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール100において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび/またはメディア・ドライブ144内に収容されている他のメディアをメディア・ドライブ144から起動または再生して、マルチメディア・コンソール12に追加の機能を設けることもできる。
【0086】
[00100] マルチメディア・コンソール12は、単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール12は、一人以上のユーザーがシステムと対話処理を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース124またはワイヤレス・アダプター148によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール12を更に大きなネットワーク・コミュニティにおける関与個体(participant)として動作させることもできる。
【0087】
[00101] マルチメディア・コンソール12の電源をオンにすると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー(例えば、16MB)、CPUおよびGPUサイクル(例えば、5%)、ネットワーキング帯域幅(例えば、8kbs)等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【0088】
[00102] 特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを含めるのに十分大きいことが好ましい。確保されたCPU使用枠(usage)がシステム・アプリケーションによって用いられない場合、アイドルのスレッドが任意の未使用サイクルを消費するように、CPUの確保は、一定であることが好ましい。
【0089】
[00103] GPUの確保に関して、GPU割り込みを用いることによって、システム・アプリケーション(例えば、ポップアップ)によって発生される軽量メッセージ(lightweight message)を表示して、ポップアップをオーバーレイにレンダリングするコードをスケジューリングする。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズに依存し、オーバーレイは画面の解像度と共にスケーリングする(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しTVの同期を取り直す必要性をなくすように、この解像度を設定するためにスケーラーを用いるとよい。
【0090】
[00104] マルチメディア・コンソール12がブートして、システム・リソースが確保された後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する1組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、ゲーミング・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点および間隔でCPU101において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソールにおいて実行しているゲーミング・アプリケーションに対するキャッシュ破壊(disruption)を最少に抑えるためにある。
【0091】
[00105] コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、オーディオ処理を非同期にゲーミング・アプリケーションにスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー(以下で説明する)は、システム・アプリケーションがアクティブのとき、ゲーミング・アプリケーションのオーディオ・レベル(例えば、無音化、減衰)を制御する。
【0092】
[00106] 入力デバイス(例えば、コントローラー142(1)および142(2))は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されるリソースではないが、システム・アプリケーションとゲーミング・アプリケーションとの間で切り換えられて、各々がデバイスのフォーカス(focus)を有するようにする。アプリケーション・マネージャは、ゲーミング・アプリケーションの知識を使用せずに(without knowledge the ...)入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。画像キャプチャー・システム20は、コンソール12に対して(例えば、そのカメラ・システムに対して)追加の入力デバイスを定めることができる。
【0093】
[00107]
図3Bは、パーソナル・コンピューターのような、計算環境の他の実施形態例を示す。
図3Bを参照すると、本技術を実現するシステム例は、コンピューター310の形態とした汎用計算機を含む。コンピューター310のコンポーネントは、限定ではなく、処理ユニット320、システム・メモリー330、およびシステム・バス321を含むことができる。システム・バス321は、システム・メモリーを含む種々のシステム・コンポーネントを処理ユニット320に結合する。システム・バス321は、メモリー・バスまたはメモリー・コントローラー、周辺バス、および種々のバス・アーキテクチャーの内任意のものを用いるローカル・バスを含む、様々なタイプのバス構造の内任意のものとすることができる。一例として、そして限定ではなく、このようなアーキテクチャーは、業界標準アーキテクチャー(ISA)バス、マイクロ・チャネル・アーキテクチャー(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス標準連盟(VESA)ローカル・バス、および メザニン・バス(Mezzanine bus)としても知られている周辺素子相互接続(PCI)バスを含む。
【0094】
[00108] コンピューター310は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター310によってアクセス可能な任意の入手可能な媒体とすることができ、揮発性および不揮発性、リムーバブルおよび非リムーバブル双方の媒体を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターというような情報の格納のために、任意の方法または技術で実現される、揮発性および不揮発性の双方、リムーバブル媒体および非リムーバブル媒体を含む。コンピューター記憶媒体は、限定ではなく、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができしかもコンピューター310がアクセス可能なその他の任意の媒体を含む。通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを、搬送波またはその他の移送機構のような変調データー信号において具体化し、任意の情報配信媒体を含む。「変調データー信号」という用語は、その特性の1つ以上が、信号の中に情報をエンコードするようなやり方で設定または変更されている信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体、ならびに音響、RF、赤外線、およびその他のワイヤレス媒体というようなワイヤレス媒体を含む。前述の内任意のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
【0095】
[00109] システム・メモリー330は、リード・オンリ・メモリー(ROM)331およびランダム・アクセス・メモリー(RAM)332のような揮発性および/または不揮発性メモリーの形態をなすコンピューター記憶媒体を含む。基本入出力システム333(BIOS)は、起動中のように、コンピューター310内のエレメント間における情報転送を補助する基本的なルーチンを含み、通例ROM331内に格納されている。RAM332は、通例、処理ユニット320が直ちにアクセス可能であるデーターおよび/またはプログラム・モジュール、あるいは現在処理ユニット320によって処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、
図3は、オペレーティング・システム334、アプリケーション・プログラム335、その他のプログラム・モジュール336、およびプログラム・データー337を示す。
【0096】
[00110] また、コンピューター310は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例として示すに過ぎないが、
図3Bは、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ340、リムーバブル不揮発性磁気ディスク312からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ351、ならびにCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク356からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ356を示す。本動作環境例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、限定ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれる。ハード・ディスク・ドライブ341は、通例、インターフェース340のような非リムーバブル・メモリー・インターフェースを介してシステム・バス321に接続され、磁気ディスク・ドライブ351および光ディスク・ドライブ355は、通例、インターフェース350のようなリムーバブル・メモリー・インターフェースによって、システム・バス321に接続されている。
【0097】
[00111] 先に論じ
図3Bに示すドライブおよびそれらと関連のあるコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター310のその他のデーターを格納する。
図3Bでは、例えば、ハード・ディスク・ドライブ341は、オペレーティング・システム344、アプリケーション・プログラム345、その他のプログラム・モジュール346、およびプログラム・データー347を格納するように示されている。尚、これらのコンポーネントは、オペレーティング・システム334、アプリケーション・プログラム335、その他のプログラム・モジュール336、およびプログラム・データー337と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム344、アプリケーション・プログラム345、その他のプログラム・モジュール346、およびプログラム・データー347は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。
【0098】
[00112] 一実施形態では、ディスプレイ・ビュー制御システム202のソフトウェアおよびデーターのコピーを、ハード・ドライブ238に格納されているまたは離れて格納されている(例えば、248)アプリケーション・プログラム345およびプログラム・データー347に格納することができる。また、実行するときに、システム・メモリー222におけるアプリケーション・プログラム226およびプログラム・データー228としてコピーをロードすることもできる。
【0099】
[00113] ユーザーは、キーボード362のような入力デバイス、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス361によって、コマンドおよび情報をコンピューター20に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース360を介して、処理ユニット320に接続されている。ユーザー入力インターフェース360は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)のようなその他のインターフェースおよびバス構造によって接続することも可能である。モニター391またはその他の形式のディスプレイ・デバイスも、ビデオ・インターフェース390のようなインターフェースを介して、システム・バス321に接続されている。モニターに加えて、コンピューターは、スピーカー397およびプリンター396のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース390を介して接続することができる。
【0100】
[00114] コンピューター310は、リモート・コンピューター380のような1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター380は、パーソナル・コンピューター、サーバー、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター310に関して先に説明したエレメントの多くまたは全てを含むが、
図3にはメモリー記憶装置381のみが示されている。
図3に示す論理接続は、ローカル・エリア・ネットワーク(LAN)371およびワイド・エリア・ネットワーク(WAN)373を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては、一般的である。
【0101】
[00115] LANネットワーク環境で用いる場合、コンピューター310は、ネットワーク・インターフェースまたはアダプター370を介してLAN371に接続される。WANネットワーク環境で用いる場合、コンピューター310は、通例、モデム372、またはインターネットのようなWAN373を介して通信を行うその他の手段を含む。モデム372は、内蔵でも外付けでもよく、ユーザー入力インターフェース310またはその他のしかるべきメカニズムを介してシステム・バス321に接続することができる。ネットワーク接続環境では、コンピューター310に関して図示したプログラム・モジュール、またはその一部は、離れたメモリー記憶装置に格納することもできる。一例として、そして限定ではなく、
図3Bは、リモート・アプリケーション・プログラム385がメモリー・デバイス381上に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを作る他の手段も使用可能であることは認められよう。
【0102】
[00116]
図4は、追跡フィードバックをユーザーに供給する1つ以上の実施形態が動作することができる、ネットワーク接続計算環境の実施形態例を示す。
図4に示されるように、複数のコンソール400A〜400Xまたは
図3Aおよび
図3Bに示されたような処理デバイスを、ネットワーク402に結合することができ、更に互いに通信すること、およびネットワーク402を介して、1つ以上のサーバー(1つまたは複数)406を有するネットワーク・ゲーミング・サービス404と通信することができる。サーバー(1つまたは複数)406は、コンソール400A〜400Xから情報を受信することおよびコンソール400A〜400Xに情報を送信することが可能な通信コンポーネントを含むことができ、コンソール400A〜400Xにおいて実行しているアプリケーションが呼び出して利用することができるサービスの集合体を提供することもできる。
【0103】
[00117] コンソール400A〜400Xは、ユーザー・ログイン・サービス408を呼び出すことができる。ユーザー・ログイン・サービス408は、コンソール400A〜400Xにおいてユーザーを認証し特定するために使用される。ログインの間、ログイン・サービス408はゲーマー・タグ(gamer tag)(ユーザーと関連付けられている一意の識別子)およびパスワードをユーザーから取得し、更にユーザーが使用しているコンソールを一意に識別するコンソール識別子、およびこのコンソールへのネットワーク・パスも取得する。ゲーマー・タグおよびパスワードは、これらをユーザー・グローバル・プロファイル・データーベース416と比較することによって認証される。グローバル・ユーザー・プロファイル・データーベース416は、ユーザー・ログイン・サービス408と同じサーバーに配置することができ、あるいは1つの異なるサーバーまたは異なるサーバーの集合体に分散することもできる。一旦認証されたなら、ユーザー・ログイン・サービス408はコンソール識別子およびネットワーク・パスをグローバル・ユーザー・プロファイル・データーベース416に格納し、メッセージおよび情報をコンソールに送ることができるようにする。
【0104】
[00118] 一実施形態では、コンソール400A〜400Xは、ゲーミング・サービス410、共有サービス412、ユーザー共有データー428、および交換データーベース418を含むことができる。ゲーミング・サービスは、ユーザーがオンライン・インタラクティブ・ゲームをプレーすること、コンソール間で合同ゲーム・プレーのためのゲーミング環境を作り共有すること、そしてオンライン市場、種々のゲームに跨がる集中達成追跡、および他の共有体験機能というような、他のサービスを提供することを可能にするのであるとよい。共有サービス412は、ユーザーが他のユーザーとゲーム・プレー・エレメントを共有することを可能にする。例えば、コンソール400xにおけるユーザーが、ゲームにおいて使用するためのエレメントを作り、これらを他のユーザーと共有するまたはこれらを他のユーザーに販売することができる。加えて、ユーザーは、ゲームにおけるレースのムービーまたは種々の場面というような、ゲーム・プレー体験のエレメントを記録し、これらを他のユーザーと共有することもできる。共有または販売のためにユーザーによって提供される情報は、ユーザー共有データー428に格納することができる。
【0105】
[00119] グローバル・ユーザー・プロファイル・データーベース416は、ユーザーのアカウント情報、および各ユーザーが使用している個々のコンソールを一意に識別するコンソール識別子というような、コンソール400A〜400Xにおけるユーザー全てについての情報を含むことができる。また、グローバル・ユーザー・プロファイル・データーベース416は、コンソール400A〜400Xにおける全てのユーザーと関連のあるユーザー好み情報も含むことができる。また、グローバル・ユーザー・プロファイル・データーベース416は、ユーザーと関連のあるゲーム記録および友人リストのような、ユーザーに関する情報も含むことができる。
【0106】
[00120] 追跡フィードバック・ソフトウェア414は、ゲーミング・サービス404において提供することもできる。この追跡フィードバック・ソフトウェアは、追跡問題に対して、サーバーにアップロードされユーザー共有データー428に格納されているゲーム・プレー・エレメントにおけるジェスチャーおよび動きで応答することができる。
【0107】
[00121]
図4に示されているゲーミング・システムによれば、任意の数の処理デバイスをネットワーク接続して設けることができる。したがって、本明細書において紹介された技術は、1つ以上のサーバー406においてゲーミング・サービス404と共に動作することができ、またはネットワーク接続環境において、デバイス400A〜400xのような、個々の処理デバイスに設けることもできる。
【0108】
[00122]
図5は、キャプチャー・システム20および計算環境12を使用して作ることができる人間のユーザー500のモデルを示す。ユーザーのスケルトン・マッピング例500は、オーディオビジュアル・データー・キャプチャー・システム20によって取り込まれた動き追跡データー205から生成されていてもよい。このモデルは、ジェスチャーなどを判定するために、ジェスチャー・ベース・システム10の1つ以上の態様によって使用することができる。このモデルは、関節および骨で構成することができる。これらの関節および骨を追跡することによって、ジェスチャー・ベース・システムは、ユーザーがどのジェスチャーを行っているのか判断することが可能になるとよい。これらのジェスチャーは、ジェスチャー・ベース・システムを制御するために使用することができる。この実施形態では、種々の関節および骨が識別されている。各手首502a、502b、各前腕504a、504b、各肘506a、506b、各二頭筋508a、508b、各肩510a、510b、各臀部512a、512b、各腿514a、514b、各膝516a、516b、各前肢518a、518b、各足520a、520b、頭部522、胴体524、脊椎の上端526および下端528、ならびにウェスト530である。追跡するポイントが多い程、鼻および目というような、顔の個々の容貌(feature)も識別するとよい。しかしながら、追跡するデーター変化が多い程、アバターの表示が遅くなる可能性がある。
【0109】
[00123]
図6は、手602を振るまたは上げる、腕604でXを作る、またはハイファイブ606を行うというような、一連のジェスチャーを示す。図示されているこれら少数のジェスチャーには全く限定されないが、これらのジェスチャーは、他の任意のものと共に、ジェスチャー・ベース・システム10に対するコマンドであることができる。一実施形態では、ジェスチャーは普遍的であるとよい。これが意味するのは、ジェスチャーが特定のソフトウェアやハードウェア・アプリケーションには限定されないということである。他の実施形態では、計算環境12において動作されているゲームまたは他のプログラムは、プログラム特定のジェスチャーを有するのであってもよい。例えば、ゲームの制御を他のプレーヤに引き継ぐための普遍的なジェスチャーは、握手にするとよいが、レスリング・ゲームのようなゲームが、ユーザーがハイファイブ524を行う場合に、制御の引き継ぎを行うプログラム特定ジェスチャーを有してもよい。
【0110】
[00124]
図7および
図8の方法の実施形態について、それぞれ、
図2の機能的コンピューター実装アーキテクチャーの実施形態のコンテキストで論ずるが、限定ではなく例示を目的とする。
【0111】
[00125]
図7は、ユーザーの動きを追跡するアプリケーションの能力についてユーザーにフィードバックを供給する方法の実施形態700のフローチャートである。キャプチャー・システムは、キャプチャー・エリアにおいてユーザーを検出する(702)。動きモジュール204は、動き追跡データー2051、および、任意選択肢をあげると、オーディオ・データー217を受けて、キャプチャー・システムによって生成されたデーターに基づいて、このユーザーの少なくとも1つの身体特徴を追跡する(704)。実行アプリケーションに対してユーザー追跡規準が満たされていないことに応答して、追跡フィードバック・ソフトウェア213は、フィードバック応答を決定し(706)、ユーザーへのフィードバックの出力を行わせる(708)。先に説明したように、フィードバックの出力は、視覚インディケーターを表示すること、音声インディケーターを供給すること、またはアプリケーションの動作のコンテキストの範囲における動作を与えることを含むことができる。
【0112】
[00126]
図8は、キャプチャー・エリアを選択するときにユーザーを補助する方法の実施形態800のフローチャートである。追跡フィードバック・ソフトウェア213は、ユーザーにカメラの視野を試験用キャプチャー・エリアに向けることを命令する命令を表示し(802)、キャプチャー・システム20はこの試験用キャプチャー・エリアの画像データーを取り込む(804)。一実施形態では、追跡フィードバック・ソフトウェア213は、ユーザーが彼自身を見ることができるように、試験用キャプチャー・エリアの画像データーをディスプレイ上に表示することができる。追跡フィードバック・ソフトウェア213は、実行アプリケーションの動作を制御するために使用される少なくとも1つの身体部分を使用して、少なくとも1つのジェスチャーを行うことをユーザーに指示する命令を表示する(806)。動きモジュール204は、ジェスチャーを行う少なくとも1つの身体部分の動きを追跡する(808)。ソフトウェア213は、追跡規準が満たされているか否か判断する(811)。ユーザー追跡規準が満たされたことに応答して、追跡フィードバック・ソフトウェア213は、試験用キャプチャー・エリアに対して追跡品質スコアを決定する(812)。
【0113】
[00127] 動きモジュール204は、スコアまたは重み、あるいは試験用キャプチャー・エリアについてある種の可視性要因の品質を表す何らかのを、追跡フィードバック・ソフトウェア213に供給することができ、追跡フィードバック・ソフトウェア213は、可視性要因に基づいて、それを追跡規準と比較する。一実施形態では、次に、重み付けアルゴリズムをこれらの要因に適用して、スコアを決定することができる。要因の例には、キャプチャー・システムの視野におけるジェスチャーに対するユーザーの身体部分の位置、キャプチャー・エリアにおける照明、および身体部分の障害が含まれる。
【0114】
[00128] 異なるキャプチャー・エリアが格付けまたは採点され、最良のものが推薦される(818)。他の代替案では、画像キャプチャー・システム20がある範囲の角度回転させられて、室内における異なるビューを取り込み、最良の追跡能力を備えるものをキャプチャー・エリアとして提案する。最良の追跡能力があるキャプチャー・エリアは、ユーザーにそれを知らせるために表示処理モジュール207を介してディスプレイ16上に表示することができる。
【0115】
[00129] 動きモジュール204は、ジェスチャーを、ユーザーが行っている動きと照合できない場合もあり、追跡フィードバック・ソフトウェア213にメッセージを送って、それを示すことができる。また、動きモジュール204は、ユーザー追跡規準が満たされないことに寄与している可視性要因を示すこともできる。例えば、可視性要因照明(visibility factor lighting)に対する代表的な品質値が、それが貧弱であることを示すことができる。
【0116】
[00130] ユーザー追跡規準が満たされていないことに応答して、追跡フィードバック・ソフトウェア213は、可視性要因の内1つ以上を追跡に対してどのようにして改良できるか判定し、ユーザーにフィードバックを出力して(802)、可視性要因を改良するために、キャプチャー・エリアにおいて少なくとも1つの変化を特定する。このフィードバックは、視覚表示を介してまたは音声メッセージとして出力することができる。
【0117】
[00131] 追跡フィードバック・ソフトウェア213は、試験用キャプチャー・エリアに対する追跡品質スコアを決定する(812)。動きモジュール204は、試験用キャプチャー・エリアに対してスコアまたは重み、またはある種の可視性要因の品質を現す何らかの値を、追跡フィードバック・ソフトウェア213に供給する。追跡フィードバック・ソフトウェア213は、重み付けアルゴリズムをこれらの要因に適用して、スコアを決定することができる。
【0118】
[00132] 追跡フィードバック・ソフトウェア213は、試験すべき他の試験用キャプチャー・エリアがあるか否か判定する(814)。例えば、他に試験用キャプチャー・エリアがあるか否かに関するユーザー入力を、ディスプレイを介して要求する。他に試験用キャプチャー・エリアがある場合、この試験用エリアについて、以上のステップが繰り返される。他に試験用エリアがない場合、追跡フィードバック・ソフトウェア213は、最良の可視性スコアを有する試験用キャプチャー・エリアの推薦を表示する。例えば、最良のスコアを有する試験用キャプチャー・エリアが、ディスプレイ上に表示される。他にキャプチャー・エリアがある場合、ソフトウェア213は、カメラの視野を次のキャプチャー・エリアに向け、以上のステップを繰り返す命令を表示する(802)。
【0119】
[00133] 以上の詳細な説明は、例示および説明を目的として提示された。これは、網羅的であることも、開示された技術を開示された形態そのものに限定することを意図するのではない。以上の教示に照らして、多くの変更や変形が可能である。記載された実施形態は、本技術の原理およびその実用的な用途を最良に説明し、それによって当業者が本技術を種々の実施形態において、そして個々の考えられる使用に適するような種々の変更と共に、最良に利用することを可能にするために選択されたのである。更に、本明細書において用いられた文言は、主に読みやすさのためそして教育的な目的のために選択されたことは、注記してしかるべきであろう。
【0120】
[00134] 主題は、構造的特徴および/または方法論的動作に特定の文言で記載されたが、添付されている特許請求の範囲において定められている主題は、必ずしも、前述した特定の特徴や動作には限定されないことは理解されてしかるべきである。逆に、先に記載した特定の特徴および動作は、特許請求の範囲を実現する形態例として、開示したまでである。